Your IP : 216.73.216.168


Current Path : /home/poliximo/www/da45a/
Upload File :
Current File : /home/poliximo/www/da45a/media.tar

widgetkit/11-69381b648ed6b2a71d2ac4c775707616.jpg000064400000051722152177723720013655 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((���"�������@���X�[�1%�3zJ
UI��*¶�$�!�<�WD+�Wc���.��@V�e�%�~�UK�N��?9��h(uz��N�a��T�ov�uO~4+�����S�`�(]�q��4ZJs�"�Yk���M-Ԁ�KZ�_R;&�|	ų
�V��Vjol���Y���$G���$���U}irZ�c7��h)�o,��-Γx+|�y_������Ͻ0v	pk�o\��'���n�`@&E&�a�(p-O��n4��I����ե�|�!^V�$!M�v��Ikmy:��Q���t���eӄ��>�Zb),���Lr�͗�z5M���q�h�WF%��5���z��l3��iLQ[PY[l�lܖ�}Q����9���`�99X�c6��/
$9�+�;솘B��:1�:�Z�MmQ�Q�5�
��Mw1Q��v#u��J�ڿLs� 1��F�?l�Ϡ�\6�Ξ��ލ�0�6v�������%$��6�5�L\]���<K�2�(��
�y��']CV-���%%�2I�r���4dgX���t�Co6�RtN:1o�7��yg�Tz�R��
�����5����6kw���+�=���[-v2j$tu/'�&��ɚS����@����47um7�W�F�U�(�u}k�1xj��M_��zG<�v��i,+k�@Wh0�"^��J�B�Z���q`�\�g2�Bϫn����o,2vzm��5b��nQ#��C�`�K�� h�U�MέV����+��s(cMc��n!���H�$E%����ɟ#JKM�ޙ9Q�*5�Z�N��Y��Ya[:��pS%tp��1emWgQ?-�sV;���������t��/����)m���|���e1�Wh���;��ZMӸ�F���ܗ���5n��-������j���["�s��E�Y5��*��2#JޢW\I�J���Kj�L�&ExqSfjѿy�<��]󨬄�fu [j64�S�Yl�+*�͆6浰!�UY��x7��mL*�Q�f2�*׷������z�f�}#
 
}�u1��д;l֣2If���H�;��UɏR�����f�;��ymm
Y_�+	��^-�(GT��bA|v4ǣ9��'�d}Έ�v���ƪ�J��jde5SZ�CoGH(q�;���:�
]YV[��t�D����
i�f���j�5�yY1�����2Z�FF�v+�$�6���PGҧ"��`iԢ�9�j=�L9-`��!!�aÁӀ)=;a¬���ƚ�O��+���=�2ޞ�;����\�V�Ey����U�v�$v��䔑��9&ip��D���Zn�qQ댞׷��
6rD�Pҝr��--����aqUsl;+U�os�]�V؞���j��1�k�j�vKnJ�)#�~E��J툩j�J��!��S�Nj�w�S�A�1R��*6*��=�����W������;�ȓ/�}$���O����i�n{_��L���S�yՈn�$��/����,�0O��/! "120#3@A45D$����Sc\��?8=�#7��}?SJ9Dg8�2Y��{�$�;d�?�2��,呕�$=3��`���G���h�fx����,����,�W�/|%arބl����p�>��Ӽ��=��;d���91t� `a>� ��~<$p��R6�L�}�6�9��~����`g69�Td��A�����q��[�Yg�d�<ß![j���_��F��ql��913�����iA��f��3Z�xv��:O9/8偠��T��V?�����C����*ם6���I�(�'|���v��a��	a���]_p�>H�f04��xNO�Qs�k(�3������ϧ���.�NwW���FћgNsm�T9~�c�Dg6��ϣ|�o��-�e��M|/�/����]C��Z�(]�X�F���\aju�Uo�s���?�N`z�PTf�g���1A��YQ��Ŗ?�X_\����?�����f��r���9�5£��^�TqzU%�!K�Q�=v?����l�#8Fp���]�̩�>{�2~{��ϫ�Z�Z�e�/a%��a��gөڊt�)-3�E/�l�Wmk�,��};�s�y���^MЌ-EQ��[�6q#ķ�=����O��/'�S�g�SH�5Uv[x�͝�|m:��Ʒ��}[_��ҽ`�s�O�����J���s���y{�N���'_&���E���bK�FK��:�i�:��VD��bp�چr�f���Z��q�ƽ��t���

1��l�]+�9��η&ݜ�j�Yg�R������A*��;,y�$ZwF�K''��,�XT]����96��Y~y���8.�J�b���6������V7
Q�;�:�@��]�eF���#;k��)�՟��Ǿw#���#��d	y9H�u��¿~�}��L�f��h��C�/�_��ZTzE,F]�y1s�8�桤|b�g���;?���!s��+?�F6Թ?� z����
�[r��f��ɤ�f���NJ�X���N�i���Z�WA�
��ݺƘ��lx���'
j�V�=U�>H�28N��e�iI$P�Y	4�a�2�5�`�<��0X3��|�9f����[QA��Z�5t�8-�"h���
�Q���m��5��t�,(�i�,2{��G����ȋ���l��-���~�����NNxz����v�l��ݠ�a��n c�3����f�i֗z��"��?�.���*�q�l����gR����?!N�&2? F:��q��W�Q[-�겳F.!�:u�6�Y�@2
g}Z
PP��-1A�BNu+ZjƵ��DxV|R�v�CvW��H��Ӽa�..>R�XN%��㚚�s�s�m�Ӟ�q��ON-:����fX>6�s�XUVž��%3$13�"�1جaD�)�>���(�Jb��Lfr�d���c��9�N��'o�f\f��� "�\�ը�uL>5vrc7�X��AP���=Kn����x�fm	�$?p�N�iZ�fr�v�1ƻ�1v$����f�!vJ�e'1��"&DoI��Ė~��Yؕ糀��Q�VV[d���oy��Y�uz2$N-F��ٝ��P��'v6fOۚo{_9����:�y��}�L��-F!`t��G����5�e�@��Lb]+��&���Œ���&0��<��q1Ȉ�]�2%�� l�BC+��^�.N�Y�=�=��"�y��ɾ��;F|��ݦ������g���NY�_��4�pE�W��Ӳ[�j�y%�=�;�c�x-e��%2^"�E�����2t��
:Y������|�u쮣�DmX���Fϫ�1�/��
���}ȷ"� ��O�[>���a6���J��9�0��^?��v��(�6b1��w�
w�������3H���᚛����UF�8eӋG�o�ڙ���j�F0���#Ԙ����њt�5$#��ӈ�#�y���3?>��2}��=(u�f!rX���NbV���Lf���0�1V��Mɡ�m1�v�����ق^�;c���؎���ʙbꦷ�O�O�J6t���Oe�|�nX�3���r���r��;�COY󎚊�Phߨʟ�c�Ez�C�SHo�?����X�9��T�>�����] ,iWLAv�Ga����*�fp��E�M��-���"I.2�o�f�.�lo�!=��5{c75Z\N�\�=Ý�{1�d ��;��ܵ?���4�R+ҬFF���ivz��??��Y��^�b t�B�G9��W�"K��9u���¶=���{��060~�=��Ͱ���!�i�}����g�p���.���*�{�̎�fٶIN	D�H��[3˅8�z���i��08C����F�19�g�~A�s����,`�1���[�Of���6�U��6u]��N����f��y�����d0'?�:}ڱ�=2�h3�~�!��X�Uz���e��H�taa|���W��{�al�g�G/k!��n���V
V��n	dLLz�f0]���y�6�u7�2E��Q��a��G�aG1.�3���W�c���[�61Xm,�:��T���F��}u�mi�V-��M���'�A�d;�sl��q���Z燣��v��}�c��/�9Z7��
�J]�#�[�-\��H+?ԉ�_M�k~>�U�f�U����6ͳl�dC�03�>f�!��*7��h=q����y��J]���d
2Q�iQ+��9��[���:c"	D���6ͼc�	��|''l���C�Ƃ���֗�%1߆LOջ0�8�ޡc�b*�dj������)D�LX2���]��%��l�#���xil$�6ȏv��y�%�ƶ0:�e�ںv�t�g��s�dJ�ȧ˖N�$$5l)�8B9uB�ft���_��T�m6Y���W�9pi�3����s�}�۟��E�l�(^,&&�W!���Q��#̉~<���QӜj ��,�M�r���w����.�L�-�Q
_�'��G�l��f٨��Q�Y��/_��p���g~�;���J���V���k&���r���ꊣ"��&:N���}��0@ Pp��?�pm-�-�\1�A&���1�Q��'�i�� 01!@A��?�(~�J�yX�!�<E�8r��p�qV����QEb���9x�V����t(x��'�!K>ع��<~��r�"Ə�<(���Em��b�z�C/�C������H�C՗�SB�칲�,�Y�,���+�z*��?!"1 2AQaq�#0B�3Rr�@b��Cc�$�������?�V3�H�����������=UΉ��Cx.S>�a�}K^@Xa{��q�K'���kV(�����*�kG�$���)��w%�!��1��'D�,
��~]b{4*C.��\�,�=a���X��F9����ď������R�w=<��P25��%R�c��ǟ�w���%R�kZ#�,��Eky/�=`cZ�\���5��,����5�Ƒ�+7�zxԯY�а���MV���fVq�Xa�sU��*�w2�����Z���Ы�G��M���Ki�5���%�/��P��o,�yaYK�~Q���0;�������$�9�*�*�X�,E���h[E�:�v�Cr�n��!�AR_�ML���K�6�Mq�r��~_!�9X�dT�*2g�$���j�+V|���$PtS2����9˴s%R�^_�>�VP���-Q�UM�Ca�[���e@�uIW��ec��#mC�NMh�s�$3��]�q8�ɍ�q�,��e�@�H�MO��_�Q����s��W߯�f4\�*�k��h����
�v�m:ƍ�ډtS���;;}�Ccywc�Ӈf��y�i]�l�X_��J����ޜ�E�r��*5s��>�t�҉nM�Nd��D��@";	�����p�]��$"�3n�kX-e����l�v�$F�8��w�N�慍/m�ê�D���ޔ��2g�37\�Yl6���L�Dΐ��8a��B���d��
��lZK��+?�jBޫ�7��ۡLX��z4,��%���w8������0z��T���L��7���{�u˷�
�	ਊ�wE������HA�6!�9������桸�2i����t�7>*=�[�V��!���ҩ��tT��ّ1�P�̅���04\�2jT�D���lT�����c�f�$X��ൖ��=TB�J+�X_e��ᎋTtZ��B1{Pt0�q�kNM����Mu�Ӫ�v'���C��{�B �j0K����"A.hOdV݈ͪ�օ�xė��ٌ̉X�$�ʌ�{f�	���F�^4(�;�
��_2.co�ȇ���Ω���FU*�v�%�*�G�v�+���?�/�Q�.�=e��� ���r�}�$���	d�G>��,iH��2$�0�_��[��̬ܮnj>��+�&e;��[�o�dL�i�G�w4qr`�����ތ��	���nOe�q�4�G]�g2����
�P�����?Jwj�6a�N�0a�=�
�B&�;�N��(����FuE����keB�djU,������%A'Q���'lG�u�����
*�USɸ�>`��'�K��%�aO�1i�7�Ğ�!�5��Mt=�Q��Hf��0ɖ�:$�Z={�3��BJ�c8�7v�\�D�=Ag=ɰ��P�V���ĞЉl�B|��	��B��gÇOuy���N�5{��4G�CL�YC��!��@=ם���)��ߘ/�ޫ෪�
�G��c�Vl4�ju�]a�vwcu�~��Ly,R�Ӫ�s���_"�(_
*�qUYjD讗���1��9�"dr(��J�v���$���vi�`�Kj�r���T0��w��#�����M��:`�e,�/�c?k��DۼZ؞���U��f����I6~�ݢ'�a�;씮��I���;K���
��8I^&�z;���O���׷'I��mSN�4+�*�f�9^n�D���Q�;Q#xB]f���C�'-f�=����|�sN$䅏o�$��p�2�wYt���p��蕝�ua���9!ƈC5H{�"
�ovn@2�?`�&H��",
������ �ˁA�)Pg�z�[��V6�I�S�)2�^n��*��4�/f��x3naH���.�#e�F�[�+� �zls�'UW�F�6�h��
�����Y�w)!�+����%x�x.�%2Tu�{��{fKJ�b�:Y��%_}M�@�5��pR�+�ܫ�v�v�BVj�O"����]۶}�4�5f���2�ND�\�{	�ۛN��7XH�)��";t���!U�;��W�-�)4ѢA(t�߸R�����M�Q�fɕKu@�xډ5:�H�n��%x�����R�5�4j
�"��V�/u}�`#�R�X�\9)�\wu���B�[b}�a�CԀ��
�{#F�{keE+�r���w�o0ቻAXt�E��/sd&rW{Q��n(�b��{�.ښP@8�lE�ͨ�6��ْ��j[
�{ND �4^_�pU�eJ�h4; ����r�e� L't]�r䦮��CDG]fқ&��I��dv�:�E�;���kS����[GT�3ɴM���\uH�Aʵ�	؛Qwz;x.j�=��9}ʢ�EL�'>��:e7{!}��…WWc���*�^W���ȡ}��|mϚ�]����#�3@��uа���Gm�M��z������]t�?(A^b3�V��M�R��!�����Uxw0�>A���5x̅0������sX�Uۄ�	�M�|#���ު���n�Y�����g�և��5R ��Pͧ%:���ē��펤�2��t!�Q�h���p�)9�{w �=��4� ���vѱ^��T��������x���aN'��W���-P��۫
J�ݶ�7!/���P�R�y� Q-ȡh�0�aB@�b�pf��;�ׂ�hU4�]�)���)�6!R8�MX.?�r��<J!�V��P��b �5�]{f0�*�l+��E�g�70Ox�E�{T@��Oou,:�=�0�
�qD��xE�|�iF…��N�p#4ᐚ�74hJ#f�~��b����*=�ÈX�Ȭ���P�T��a��d�Tۘ)����s��ZU]�*��f%C�Ъ�*�|;�{h�,��D�����+

{кq���S�}A����	��_'D�����T��ʣ�*��0t|XM+�{�Ϋ'P�i�6]���)�B���m���'K�U�I�z�fSnK �V��u���+b�RC`��&����+�Nb�WTAc�䃈Źc4W��b�0�L�uR�B�����I��B)�/�׋e�e#�)�7���%�U�X�ts���=����Sg�D��6���2�1�I�HX^�t5y����B�lœHn(�7
��_g����B����65�aP�Kr9��U��ރ���ifI���ȴ�C�w,�Λ�^���{���pM�=v��)!1AQaq��� 0������@��?!��0!�{��-��ZY�}p�~߸A���fE�L �P�j���(��m�} Y�.a>��࿸j_�cI�@
������	z�YL,Q�[ 0��\d�ΏZ���p_*���Iڛ�����g�����ó�� >埨��jr-�3P��t��!�:��f��n��Z��S����^'�\����F�C��i��_��)3�Z4�/r|����w��F�A��8�K��|�?�^J�|�}!�]�?A��%ϵ{f�ٙ���8�_�g��'L�0t;QG�9�w���He�t��r/���EJ�u�1/��K���f����&�a_��i5[���6S�R�}4�z~��^t�2W�X�[�ڢm��v�1V�X�@���t��O�ñn|Nt �������f�x�c��*�	+���z�g��#2�opI��.��-n`(�G���\ %��Ԙ~�sUK`�N�j#���c���C�⷟�3�sI�@���5�)[�^=��u��&X��ݥ��$�P��O�bTFs�s��CGxn�!�Cd_G~}�3��Ű�'�|7������0
�o"�A����rF������oE2���P�=�\�^_@�Wr�-U�_�$*}�du�*o���z\�((D�Y�3�_�)�FM�yi�g�2�e�sč��4��n)��t�ǁM��{~&��}��7T�P�
�)������d&j.�*YO�Ə�h�4tg�p�F�U�-�4�̕����Ew�s>��e����?�F�w����_/C�;(���9\��h�_!貈�
C���Z8B�q	�Ǔ�b�=��W�P�.?	����6��ԣ��B�5�~%V�$E�M/��l�������O$O�FA���fG̺^ ��"bPb�x���h�6Լ�������g��|F�@�K�t����7�8��.\Q�a��=�3
��.�_s����}�$���f�Ԧ���b�(��U��h��G�����?�'��r��r�G�ϼ���i8��'YAO@���O,��vu�NpE�ؙ������,�:S��b���w��he5�n�~�XL��/̠�@!,�]!lp��¸\Fnw�K�%,���>#n��N��6�.\�*�W���-�E����̚�5�3~18����.�#}�Y���(��˷�9*��9�HT�S-C�j�/c��6uֿ�)��eWQ�d)���#�9<�@��>Ѝ_��u%�_S.����R��Y�Dg�9t�8�Dves,f��W��+=�:J~�x�b�{9C\�6@��$u�׭X"��$�E�?����Z�RO��ޗ.l�绚��{��*���	�����$��~c�,%Kw5�#>���h꿱.m�"��=3(���]���vu���K
�0#@A�)��H�����9��|�S����%�
�ט9����M��.GD�B��p@�9�N �sj�ܳ! ��h`2��W������M(�3(DT*�=�^e�+�&�Uy��V�"�12��������Rg�_��
)�Y]e��+r�	�1	-��|16�|��*a����l�uF`��@mq�F�
n++�+qƄU�_� K�J����
�[����Zqi;���.)6˪3��~��bR�m9�+�F.����ĥ�Vj��f�XZ�ި���Җ3ܥk�D�p�s�c�[ܛ]�|&M0�����c`�n��h��=�`½�f�֔?���+ˮ�K���7�^�qwJ?��~�4�?�It����DZp@u�5�,�Z�+�f��K_��6w��%A�2P̩�6�P��X2bCڡ�b��x[s]���˪��"7����AL�~�R����,#�|����V��КBnǎ�*ҭ�b~���8g	�5%��[����F�A��윎/����{�K�%���b;GD�3�U+�����Œ�J�[�Ӈ7-�%��C1-,�d��r��:G�S�tI����U�f� [�¶�����Ц�>e�nP6E�F�P���L@�a��lw���>�YR�,���/U�`:�&8ft���I�3� 5a)�Db�e�l׹���B�@k�Bs7!��Ԭ_�rq+K������H�s:�^	W��U�b[��*5���&[<lj�t��	���5��5Z����=��v�cpӱ)h�b�Ha���#�:�T��1��h:J���{�f���d��ZZ�#���7^��G�[K�i�vQ���u�*[SF�(mw��eV��*�u�zz�	Lk�Dl�d���D`c2������5H(N���p��6�3�8�L��b䀇^�5¦eѼ�1�_S4.��2�R�9�ՌVS�)��Wc�Z1*Tt���WS��Ky��:#��x����"X��Ui���z���T���
a���u����s+H�N���u./d��N<�唞F�w,��OJ�a�3����Vs�ɩ����:hx�R�sic���GN%�"��z@�\A�U��&�̴��L����6�¿��:Y��J%��J�.m��G,u@?��yR�n��c�����z֗qG����X"_"�c���k w��,�z��V2N�)܅J��{�j�i�K��h7������ϭ�4X���7�m"�`��-���Vΰn�h�z��L��%82�F@�M^N#yX�-S�pz�fU��XC��	ø�`�e�ȵ��l�V���#�D���[_�=�ED�15[�j���
�r��L��-���{���(�
V��Gڛ#,�#�(��[��ia6�gt��Uk�!t���oP�ث�0x)�
�o�T�9��6����䥨&�
��h�(�0�,�a��u0�mz�GoZ���[W[:õ��I���#���t�Y��\�&�~��/��G7kPO/o���Q:$�]�'R^_L,4� ��H�.G1�:�*��Jv�_'p-щ�
��,�(
}O����وr�V#�6��;�q���.���_�.�n��k�2*��
�+SG8ȿİ�Ay=;�������Dv���!VF�f����B�X�v3���m�@:��lq�(o�p���ܢ�;���Dv>��>>��-:\�h�ҿ��DZ36����\����o��7�Xt�7�_�kTQ�l��%*7��G����y�����Tܰ��2�F�-[�Ioh��g:�i�ѐ����U��Ȉ�<=ĥ�o������O��)��L��b���X���e�_Y���儣�K#�����A���-U�3���,+a�WF)�r�S�?+Tu��_2�z}�gJE��C|M���F ��+�YEA �PǾ������iȮU��+q	s#S@��>`�8�����S�-�%�C��`���f���E��Zz/5:�%�t2��[��w�q8�\�ʛ���u���7�E��6�E����z)pƨ��3�Ԃ�HĹW*'IQ���o�����b���?��7�<Ʈt45ϛ���e��X�v���=J#9�ݘ��9��Q��%4���TG
�^%zh������"�B��-Mt����(�䗄�����(kd	lHkұp��V{�Z�H7�^{�ނ�s�v��F_a��]b����q֘t\���.b�{�V}�#pe��P>��HStj;5Zf����[U7R�S�va�ߑ�:�9����pk��!?h��+���[2��S��N^�Ɔ%G9�
Bc.�/�&苡���ܐpc�%>�c��7��=c�Z�h��<"��E�F�c'X�YgĦ\�2�F �2�a�Sܖ�>EJ���)��7+(z)�=%	KA@v���x���8{�k?3d]0K�^~��Dx�QL�{Q�5U��15
J�y�������WH���KiN�<�sDB�
.�?J����n�	p�y���J�jc�z��Rg䎉&L�P����i8-es_ tu��ѫgj!5|��FC��IH�M����XМU�� ����ջ\�++l��-3(u�S��Y��U�eT ��DwW2�k��ְ_l�!2زu�-k�I=����s��@���3���bQ.�[cG�ml��o��W�W�Y�VY��ҋ1,6Od��;�B�$���.��^��
��/��_�=��Q6���J�J��
�W0
�vJ�h?
��_��S�%#`}��vx�a����b|س{��#*����Լd}�s	�9��?���|D<�
j�5ɡ���|����<��;�<"<��8��<{�<����|�C|��<�WgN=<�/_ɗ��;{�<�"�v�2�@w��[Β�<�k�U�p����N��޼�u<�{�`0�-]���/o�0����i�gA��)�:̟�ph}9�
ia��N�G�9XS����`�Io�nt��U�p�İ1�\�Z�*��t��PI"���!���\���Hާ[�&e	� CH�<>���
<���p�J&�p�i�8��o��[�2{�m�|9�X�=\�3���@��7C)��M����(|�.;�<���ۛܫ��,G�g���<��<��<����<��~��<��<��<�� y��� !1A0@Qa��?�~�>K�LN��'�e)K�q8>�,|R!rK}T^wVMb��5�
W�+•���Տ�����!5���!�5{:�Q�bƖBNiJS�AxDxF��v�'Y�(������[��<��AE�ǖ��lX�b�o��8$Z54��Ϙޢ	G[��4��#(�������~~%��(�e��Hg�C�)xL�:?���F4�(B�T�e#J\��ñ�D�*cS� �5�F3��!1 AQa0@��?�I�OG�8�$�':���m�E��?d݌{�o+K�(�H*��O)�7b��pu����{�_qr��\6��F��+��S1��dȇ�2l��ى}2�[&�k��_K���}��{!DkG4�D�������eexJ���A��Oc�b�G44��j���bSHJ�Z4�'�Z*&���!a#�q���76n���-�;N��q�Z,z!�h�Q:���.��S�*��B�m�Ì7��l�H������
RZX�+�I�Y�cw���]:�j*�'ì.�C�7p�Ʀѱ�m���HJ8��8�%�)7F�.����;9Ǽ1@��k��L�Q>G���#�KxyL�����)
�Ze0�-����*�L�/�G¯�BK,l�V]lJ*�j6c�Y[B��%�G��������)!1AQaq����� 0����@��?���ݕ,̳�G�c~�,1���;�>�,��7>��F�z+�k^��5V%����w�l��Q��k��uf����T������J#U��/@��hsv��|@����DIȟ�o�T�&����~���:�y�}�`+l��P��Z�~�a�w]#Y������x�ϣ7�쵓�+:��r��c¦��m�� �Z	W�>�~ҍ=⏱/�`�[�C�^�t#��]C�?0��D�,U6p���0}�>bTO�����
�{���M�6"ݥf�l�0c��s����%�5^��@�M���}Y[n���OxTl�~���7Ew�أ�/�[��~��g-1�G�SG:��|k��}�|)�M�L�����wȰ�~`��}�!�D�jCv�f��&�_'�1��B��T�۫�>'Ј1������b���P0@��������\�z}�p���S��£�Z�&��K�߳��*��FhZ> W��c>�C��A�m���_�/������z���:��Y
L��W�ub=KU���<�J����^@eV����K>���:~�[�����.�,�Du�Ü�L�F��|0�,p{��*R�6�ك��>Sc��W�f�d�UQ���T�/@�=���:�D�Qe� ��^<0c�4Ah�Τ�@� ��_�!`���h��.s����X�Hݰyf1��	[Y4t/���(�z*���[��v:U´�^-e7��J
}�k߷�v�@59l�+?����f�Ȟ�4�q�����'�0T��]�k����4�tQ�*`���O<|Ǥ�U��ŵ�_P�R�)�rf�g��C@�
^aU�SK-�x�m�ة��@&�s�@������CD��TZ��׫����ro��]-��
�K�uMNz�`3ї�?I��GE�|B#����t����Q6?-0��6�X�D(ʹ�����ի5���`������!DlA�-`b�x�߱��f�E�sDi����oG�O2�fdI�K�g�߬tL���`�.õ��b2��(�9	p��\/�k�#��
bu��*��N�o�1Wx�:�ߡ(._��
g8�&q����jpq��v����Qo�����O��J�1�(1�%�O/���وr�Y�+��lŪA�Pe��PSG�n;6q*���4Mc����KQ�%�=`SO��e��y��;y8��k_;{���{�U�7w���3(��#�
��j2�ٓ5
#t�ī�P}i29�z{,��V��|�����:Zʢ���0.se�a@	����p�4�|��`��3�o�M�1̽u��#c)�Q)�)��m>X��6K*�V��JRpKU�@R�##:{a����Jƿ��1�����|�e�捯~����x��=:Q<
U�`�Im��H����qʘW�!4*�T(�!�co��/`�
-��P���{6�����lW�i�u�{�
|��	@����LǺ��aïդ>Y����>���Д%{̺<���z�CW��n�nh�39\���&��pZߤe
��r�Z��,�ٿ�*A+&�s�#�~������ըl�/x�rR�*��g	���t�c�sּ��)��i�P~r�{��zRV�ifr��g�G���f�\��ǔ�VS}��o�]�zĊ̰�w~ ��b�c
V �^�B�z��=�}����	(��WZo�Ĵ:���"ܡ���@���&��g;`NR�E�4W�@s��G@�f"��A��{�_f1���
t7)*�k-C���n~����Ya��<�S֢�_k�S;{AwF,Ի�z��������Owz�~�B���J@+�X(�eY�̦G���&j��I�!l�����H�2�hIJ��&E�;��\D�'��՗�!�W*6���`}D��jS��e1��Oݐ�X�;��p\WS��@P���<K�jj�M���(%�k(��"Ic2�{���6�Y:V���
�ʗ���z�v'��%�ƹ(m�1}�j4���1?��9K������"ӨZ�ćph��X�I~R�v7)V���lX]
ڸa'�ۣ�Bu#Ԟ s�k,B�H��E��Xc0Y�A�u�	W���R��Vy=�X�jk���݌hz��Tr/H�/�}n�����y�H+]q�K=M���p����Q
��Z���y���:u����w.�_�k��:�LJ�gN 3MJU���M��	��r5�`�[_|�4t��c�rEr"ʆ�Y��1{B��.%��Z��&W��tDtc	�ʹ�y�k��Ҫf����X��3UO��*6LStw_����^��q��M\j��@�d8ޅI��X,���A���_X�O�����exZ!��
�༟xgJ0 7��F�)E(�ƊQ��@�ޚ�
�a��s.�t�P�[����i9X��*���æ-&�����!�F
��IܔU5j՜oDt��㯘�EN+Z�(o��}]��
۲�1�J(eh#���J�i��5���<�g��"Vo��m �w�wma[6Js�[Qv�v���r�ӤBgx���$���[oĢӝbU�1�j�h�߲3e��İ�46��D���+E0/=VԔq�]���lr�k��y�uZ��X��h�z
�}��5w�Xˌ|�.b��w8�l˲'�5��_Q�"-_����@
8+X�	�Pl�+�t�-�HVb�^����?{�+5�1�sh�P���W9]���c	M���ٍ����G+�B��C��x�or͋�3�j��Tq~��w�^�b�#U�/8�]��J{�M��EK=�3�+�b�տпt�:�����eLkg]�h�Y(ո)�1���
j������N�ؽ���`
L
N��M6w+m.�B��ca���`Z���Yǖ�cG��M��ˀ�E�'�ԈY�v�
���:utS™��`�M���g�؏`u���4��Q��[�5�Q
3H�qWt����3��� x	e!��u��{���`�B��us�54�%t[`�=#�z���9ÃT�@��?�[o_C"O_�]�@�����T�m�{Y��X�5�)JcAt����	��i�i�jl �X^&�Y�+c�[��D�^8�'^�eS}n#h􀝽[��:X�����b2e�7n|ě�����Œçģ�Zpq��8և���ꖛp���C�(���\x-��߬L�)s���#�W���-��{D"�6����=5Fl�#���@`(�h'w�AZ

�%j,7
��.�{�٦Q*Hb�!�i�=e/(����$cC���QZ�^��-�PҰ�R0]�+z���)R�/RV�������y�<�*\ww����>����j�܄X���(�^jϐ��eGl-��&���P��LT�<���;�=1�2�[�3C�D/��<1��%b��2�i�u�B�@X�T�!��*�EL��[I���� �d*o�2��A��k�ׇ���*��SaXs���G�o�[u�	�Vk�T4��-b���*���L�ު�T�EKJ��Wim�C������[�G�(�'��V�KɼsP��6[��?l����ӫ��.X�E<�>���"U�t?P��x���0��]D��f���S�S8*���&�{i��ےY�+l*���<����o�0�jX����������yU����B�cF�&�\�b���ښ&�W�AU�������Ŏ��>�"���b=#�����%E�CQ�E�zy��wH�4�LU�!w\��.7;/H����
A����G�U�C+Z4ޔ�}Ad����xH����4�W��1Dfh/��X�ȫ�5�1uL��\'F�T.Mu�pH��q1}Yv��x0�I2+��f�-�Ċ4<;;�qd-���S.��j:#��%��q.�r�H]��iԩw뙗%��o��R �&X���]��e���VbC�Z���.h!3�F���NX��1o( h����;��V"t?���.(W�F���G4+-Ż�|�	h���~����TJ=���@^D%M���4l}�������0��:B��4@��˹�K�-B+q��e����D1��<#6�]����|�\b�'m�:@bcP_0�(e1�B�f��/IQBxij�����V>pD|�
`mw��Ta���
�.�Y��t M�:�UP�ċ��{�pCA~Ѷ����u����;t����J^�����Aޮ:�>!�/�B��E���,�����Jg��D�c҈�z4����e"�DVc�[�U1�0����?E��7�N��Ͷ�3 V��H5�[se^3�e��\��kGY[ɥ*�Q�'�f�.��Bl��\p����Dʡ�۵��Wy��`\�r
�=S�|Ÿ�	������ۃ]k2����|��L��h�[��0��Z0�ݭ1�P4���
0�TJ�w�= OJZ�!B�����\�W�_�8r�%�!Ʊ���@)k�%��G��b�Vo�n&s�}��&�OX�Y�iS���s^��A�ߣ�P{�<Z�C�U��1��n��1vVͷ0�w�s!�U���1(SnH1�\�l��J@VxL%�����RP��_v,��b��cRós'���n�D
�T�ѬB���e[C�-�n@Ժ����0��|AR=c�X�u��)p]�%�Ʈ2q�K�Hi�!�kv��k[&�w-#\a�|�K��v���`���2-��/��E�/��x��,8tsF����u���|��8�-�)�J���
y�h�OA��W������n��h�k�X+L�v�
Έ�s�Y����Gv�1+$��j��EY{&B9m�F���k6tmԸ'�ij4��#+:�o��c�T�8��q{��W�i���0��Nuꥈ	�2�>��-��'�jQ�Ô�hE+���'i�+�g>���f ���3I,9�5j%�tj��s;Pu�Q��nYa0�ЮJ�4�,]��E,�O�_@�nSҢ�d��p�5�n�|Tx�aŪ�v78�<�j���d
�
.%�/g� A0H`�("�]�JlY�Y�F�+<�KL9
{��/#
'�Ł�q!�N����E&L�^���Aw�"(�V<�Z!ge���K9�.���y!��[Y�9�!iÒ?���ДCK�\K�a��B�^�U�ò4��hS��6�h���T9Jz�hD��H��R��;,����ִ/#���'pv<��ճ&��}ܱ+��Y[�m�+��mo����ՕD\������"���*T��ju�>s(�����ġ�@+I�#����n�hoXs0m�G�:(S�N���Ə�f�ejZGJIY�^XZj�+h��h; ���L��-�vna���G5�ѡ캍�򝥸E
�o�P㛍P=E.���kT<�a��\vAH��]G�%�V|�:�kwJ)��c��{ܨ5 ��n	���qE�=�YJ�|��%��	��p����.'3��x4��
ޡ�Q�!��_S|ad�#c�DV�b���BW�[�
�Qž�q0�0P�}�1B�Ba�d�-���Q�ɰ���)R�A8�58�NRbQo�����7-x��P��F�o��(���FXQT�I���'��C_��a��`���aGG��J2�.iAP�E�{��AoS�̸.9�Z�À���MG%��s.�v��Z��
y1s ���
rss
��8���QL�\�^��*`q]>b�t��E�"�,:G�TF�@����6BT%$R�d4/�f���]Όq�Y�<r��0A���u*�Ss)f�S�`F΁���8y��4t��� ���/e�2Q�b���:��@X|�4cs�8���(�9hRh��k�z�[PXDn4�a��k��1�H��g�99��z�Ō�{T�e�(�O���ֹ������R��Ϭw

1��rT.�d�f�|�Q��N��
+;kq�1ȑ�<]�[�����3T��+�2�Lw�3j#8q
��	J�Ĕ�1,8�2���א��V��`����(ĥ�n9,�K*�-6|G�]�P�Ő�~ʚ��,���	{��)^�^5P �5.�f�;�#�+�����7)]������>�A\7��j�J�
��X�kC7�tt��/;�`^�0�hx{@��2クW�>���r
3c�4�h�0
�%�^���Guٮ)�p@	}ӖPg��WיdC!���1M!���Js�Wr!�\T��9\�дR
���1�L2�LA
��F} �C5���!���	�7
ՋqZ�+Me�1? X��29�9N��5��L��)�Mv�\�Į�G�3��6�v�kU��$z]ud	v�,�����X"�^an�׼�^ c#��+��u���7��"�=�N�?[�
}H��=.����W	iN3944lj=�P=!2�L��=cal�n�E��2Ϭ����P���v�fIt����e���@)�Ĥ�!��:�Fe��ʿ��6��]=��4�Q]if5�wI�ޢ��g���[�����%�@��L�"A���b9���m�;�K��t]S�oj��v��b�O[�G���\�_������TG�ݟ1���x���S�L[12�t����{C*�g"���^pǁoP=�M8�s�E�.+�
>�j7�Q�/0t��n�"�/�Y�`���\�ɉ��9�3��i
׬��y�Kݸd�@�y�D�Ɵ����j��;C��#�jAN��2�\�oj��4��(�#Q��5�Z���3�X��P�,L�G�2�I�G؁*q2z~�s(E{�m1��{y�\�Pn��6�;K�(�Ik���O̿�����T;<_��#�>��
A�$�b/�Z�ZU}��K��+)���M��q 8B��
>���)T.\t 'k��� +�V��m�����IO��A�h�CRT)�1~�E�NbѰ���i^��z�%eT%j��٤���ܝQ~��I�|��$ڔ�������!��^k'�'SVb"ˆ���eE��:b+b{���������.��	���+�i�o�s�?������td��OP�u;��f��ٙ+V��ƌ9�b?�~"�!�y���J�ptIa�nDi�?�2�[ءFm�j)o�)�����1�g8sPZ;�?��widgetkit/application-49f85e96.js000064400001322002152177723720012516 0ustar00var widgetkit = widgetkit || {}; widgetkit.templates = {"media":"<div class=\"uk-modal-dialog uk-modal-dialog-large wk-noconflict\" data-media-path=\"images\">\n\n    <div class=\"uk-modal-header\">\n        <div class=\"uk-h2\">{{'Pick Media' | trans }}<\/div>\n    <\/div>\n\n        <div>\n            <span class=\"uk-button uk-button-primary uk-form-file\">{{'Upload' | trans }}<input id=\"wk-upload-select\" type=\"file\"><\/span>\n            <button type=\"button\" ng-click=\"vm.addFolder()\" class=\"uk-button\">{{'Add Folder' | trans }}<\/button>\n            <button type=\"button\" ng-click=\"vm.remove()\" ng-show=\"media | filter : { selected : true } | length\" class=\"uk-button uk-button-danger\">{{'Delete' | trans }}<\/button>\n        <\/div>\n\n        <ul class=\"uk-breadcrumb uk-margin\">\n            <li ng-repeat=\"folder in breadcrumbs\">\n                <span ng-if=\"$last\">{{ folder.title }}<\/span>\n                <a ng-if=\"!$last\" ng-click=\"vm.open(folder.path)\">{{ folder.title }}<\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"uk-overflow-container\">\n            <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-large-1-3 uk-grid-width-xlarge-1-4 uk-form\" data-uk-grid-margin data-uk-grid-match=\"{target:'.uk-panel'}\">\n\n                <li ng-repeat=\"folder in media | filter: { type: 'folder' }\">\n                    <div ng-click=\"selectItem(folder, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"folder.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div class=\"wk-thumbnail wk-thumbnail-folder\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-truncate\">\n                            <input type=\"checkbox\" ng-if=\"folder.title\" ng-click=\"$event.stopPropagation(); folder.selected = !folder.selected\" ng-checked=\"folder.selected\">\n                            <a ng-click=\"vm.open(folder.path)\">{{ folder.title || '..' }}<\/a>\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n                <li ng-repeat=\"file in media | filter: { type: 'file' }\">\n                    <div ng-click=\"selectItem(file, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"file.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div ng-if=\"file.media\" class=\"wk-thumbnail\" style=\"background-image: url('{{ file.href }}');\"><\/div>\n                            <div ng-if=\"!file.media\" class=\"wk-thumbnail wk-thumbnail-file\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-nowrap uk-text-truncate\">\n                            <input type=\"checkbox\" ng-checked=\"file.selected\">\n                            {{ file.title }}\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n            <\/ul>\n        <\/div>\n\n        <div id=\"wk-upload-drop\" class=\"uk-placeholder uk-text-center\">\n            {{'Drop files here' | trans}}\n        <\/div>\n\n        <div id=\"wk-upload-progressbar\" class=\"uk-progress uk-hidden\">\n            <div class=\"uk-progress-bar\" style=\"width: 0%;\"><\/div>\n        <\/div>\n\n    <div class=\"uk-modal-footer\">\n        <button type=\"button\" ng-click=\"vm.close()\" class=\"uk-button\">{{'Close' | trans}}<\/button>\n        <button type=\"button\" ng-click=\"vm.select()\" ng-disabled=\"!(media | filter : { selected : true } | length)\" class=\"uk-button uk-button-primary\">{{'Select' | trans}}<\/button>\n    <\/div>\n\n<\/div>\n","picker":"<div class=\"wk-noconflict\" ng-controller=\"pickerCtrl as vm\" ng-switch=\"vm.view\">\n    <div ng-switch-when=\"content\">\n\n        <div class=\"uk-modal-header uk-form uk-flex uk-flex-middle\">\n\n            <div class=\"uk-flex-item-1 uk-h2 uk-margin-remove\">{{'Select Widget' | trans}}<\/div>\n\n            <input class=\"uk-form-width-small uk-margin-small-right\" type=\"text\" ng-show=\"data.content | length\" ng-model=\"search.name\" placeholder=\"{{'Search...' | trans}}\">\n\n            <select class=\"uk-form-width-small uk-margin-small-right\" ng-model=\"search.data._widget.name\" ng-options=\"widget.name as widget.label for widget in vm.widgets\" ng-show=\"data.content | length\"><\/select>\n\n            <div class=\"uk-button-group uk-margin-small-right\" ng-show=\"data.content | length\">\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'list')}\" ng-click=\"vm.setViewMode('list')\"><i class=\"uk-icon-bars\"><\/i><\/button>\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'blocks')}\" ng-click=\"vm.setViewMode('blocks')\"><i class=\"uk-icon-th\"><\/i><\/button>\n            <\/div>\n\n            <button class=\"uk-button uk-button-primary\" type=\"button\" ng-click=\"vm.createContent()\">{{'New' | trans}}<\/button>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin ng-if=\"(vm.viewmode == 'blocks' && data.content | length)\">\n            <li ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n\n                <div class=\"uk-panel uk-panel-box uk-panel-box-hover uk-visible-hover\" ng-click=\"vm.update(content)\">\n\n                    <div class=\"uk-panel-teaser uk-cover-background wk-image\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n\n                    <a class=\"uk-position-cover\" ng-click=\"vm.update(content)\"><\/a>\n\n                    <p class=\"uk-h4 uk-margin-top-remove uk-flex\">\n                        <span class=\"uk-flex-item-1 uk-text-truncate\">{{ content.name }}<\/span>\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\"><\/a>\n                    <\/p>\n\n                <\/div>\n            <\/li>\n        <\/ul>\n\n        <table class=\"uk-table uk-table-hover uk-table-middle wk-table uk-margin-large-top uk-margin-large-bottom\" ng-if=\"(vm.viewmode == 'list' && data.content | length)\">\n            <tbody>\n                <tr class=\"uk-visible-hover-inline\" ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n                    <td class=\"uk-h4 uk-link-reset\">\n                        <a ng-click=\"vm.update(content)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n                            {{ content.name }}\n                        <\/a>\n                    <\/td>\n                    <td class=\"uk-h5 uk-text-nowrap uk-text-muted\">{{ vm.getWidget(content).label }}<\/td>\n                    <td class=\"wk-table-width-minimum uk-text-nowrap\">\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\" title=\"{{'Delete' | trans}}\"><\/a>\n                    <\/td>\n                <\/tr>\n            <\/tbody>\n        <\/table>\n\n        <p class=\"uk-text-large uk-text-muted uk-text-center\" ng-hide=\"data.content | length\">\n            {{\"You haven't created any widgets yet.\" | trans}}\n        <\/p>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" type=\"button\" ng-click=\"vm.cancel()\">{{'Close' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentConfig\">\n\n        <div class=\"uk-modal-header wk-modal-header-blank\">\n            <div class=\"uk-h2\">{{content.id ? ('Edit %content%' | trans: {'content': content.name}) : 'New Widget' | trans}}<\/div>\n        <\/div>\n\n        <div class=\"uk-modal-header uk-form\">\n\n            <select class=\"uk-form-large uk-width-1-1\" ng-model=\"content.type\" ng-options=\"type.name as type.label for type in data.types | toArray\">\n                <option value=\"\">- {{'Select Content Type' | trans}} -<\/option>\n            <\/select>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n            <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: 'true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                    <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                    <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                <\/a>\n\n            <\/li>\n        <\/ul>\n\n        <div ng-show=\"(data.widgets | toArray | filter:{core: '!true'}).length\">\n\n            <h3 class=\"wk-heading\">{{'Theme' | trans}}<\/h3>\n\n            <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n                <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: '!true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                    <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                        <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                        <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                    <\/a>\n\n                <\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" ng-click=\"content.id ? vm.editContent(content, 'content') : vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n            <button class=\"uk-button uk-button-primary\" ng-click=\"vm.editContent(content, 'content')\" ng-disabled=\"!content.type || !content.data._widget.name\">{{content.id ? 'Apply' : 'Create' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentEdit\">\n\n        <form class=\"uk-margin-remove\" name=\"form\" novalidate>\n\n            <div class=\"uk-modal-header uk-form\">\n                <div class=\"uk-flex uk-flex-middle\">\n                    <div class=\"uk-margin-small-right\">\n                        <img ng-src=\"{{ widget.icon }}\" width=\"30\" height=\"30\" alt=\"{{ widget.label }}\">\n                    <\/div>\n                    <div class=\"uk-flex-item-1 uk-margin-right\">\n                        <input class=\"uk-form-large uk-form-blank wk-form-blank uk-width-1-1\" type=\"text\" ng-model=\"content.name\" placeholder=\"{{'Name' | trans}}\" required autofocus>\n                    <\/div>\n                    <div>\n                        <ul class=\"uk-subnav wk-subnav\">\n                            <li ng-class=\"{'uk-active':(vm.include == 'content')}\"><a ng-click=\"vm.setView('contentEdit', 'content')\">{{'Content' | trans}}<\/a><\/li>\n                            <li ng-class=\"{'uk-active':(vm.include == 'widget')}\"><a ng-click=\"vm.setView('contentEdit', 'widget')\">{{'Settings' | trans}}<\/a><\/li>\n                            <li class=\"wk-subnav-divider\"><a ng-click=\"vm.setView('contentConfig')\"><i class=\"uk-icon-cog\"><\/i><\/a><\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div ng-show=\"vm.include == 'content'\" ng-include=\"content.type + '.edit'\"><\/div>\n            <div ng-show=\"vm.include == 'widget'\" ng-include=\"widget.name + '.edit'\"><\/div>\n\n            <div class=\"uk-modal-footer\">\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode != 'edit'\" ng-click=\"vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode == 'edit'\" ng-click=\"vm.update(content)\">{{'Close' | trans}}<\/button>\n                <button class=\"uk-button uk-button-primary\" ng-click=\"vm.saveContent(content)\" ng-disabled=\"form.$invalid\">{{'Save' | trans}}<\/button>\n            <\/div>\n\n        <\/form>\n\n    <\/div>\n<\/div>\n","custom.edit":"<div ng-controller=\"customCtrl as custom\">\n\n    <div class=\"uk-grid uk-grid-divider uk-form uk-form-stacked\" data-uk-grid-margin>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-1-4' : ''\" class=\"uk-width-medium-1-3\">\n\n            <div class=\"wk-panel-marginless\">\n\n                <ul id=\"js-content-items\" class=\"uk-nav uk-nav-side uk-sortable\" data-uk-sortable=\"{dragCustomClass:'wk-sortable wk-noconflict'}\" ng-show=\"content.data.items.length\">\n                    <li class=\"uk-visible-hover\" ng-repeat=\"item in content.data.items\" ng-class=\"(item === $parent.item ? 'uk-active':'')\">\n                        <div class=\"wk-subnav-right uk-hidden\">\n                            <ol class=\"uk-subnav wk-subnav-icon\">\n                                <li>\n                                    <a ng-click=\"custom.deleteItem(item)\"><i class=\"uk-icon-times\"><\/i><\/a>\n                                <\/li>\n                            <\/ol>\n                        <\/div>\n                        <a ng-click=\"custom.editItem(item)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + custom.previewItem(item) + ')'}\"><\/div>\n                            {{ item.title }}\n                        <\/a>\n                    <\/li>\n                <\/ul>\n\n                <p class=\"uk-margin\">\n                    <button class=\"uk-button\" ng-click=\"custom.addItem()\">{{'Add Item' | trans}}<\/button>\n                    <button class=\"uk-button\" ng-click=\"custom.importItems()\">{{'Add Media' | trans}}<\/button>\n                <\/p>\n\n                <div class=\"uk-form-row uk-margin-large-top\">\n                    <label class=\"uk-form-label\">{{'Settings' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['random'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['random']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Random Order' | trans}}<\/label>\n                    <\/div>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['parse_shortcodes'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['parse_shortcodes']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Parse shortcodes' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-3-4' : ''\" class=\"uk-width-medium-2-3\" ng-show=\"item\">\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-title\">{{'Title' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <input id=\"wk-title\" class=\"uk-width-1-1\" type=\"text\" ng-model=\"item.title\">\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\">{{'Media' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field-media title=\"item.title\" media=\"item.media\" options=\"item.options['media']\"><\/field-media>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-content\">{{'Content' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"editor\" id=\"wk-content\" class=\"uk-width-1-1\" ng-model=\"item.content\" rows=\"10\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-link\">{{'Link' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"text\" options='{\"attributes\":{\"id\":\"wk-link\", \"placeholder\":\"http:\/\/\"}, \"icon\":\"link\"}' ng-model=\"item.link\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\" ng-repeat=\"field in extrafields\" ng-show=\"!custom.editfields\">\n                <label class=\"uk-form-label\" for=\"wk-field-{{ $index }}\">{{ field.label }}<\/label>\n                <div class=\"uk-form-controls\" ng-switch=\"field.type\">\n                    <field-media ng-switch-when=\"media\" media=\"item[field.name]\" options=\"item.options[field.name]\"><\/field-media>\n                    <field ng-switch-default type=\"{{ field.type }}\" options='{{ custom.getFieldOptions(field, $index) }}' ng-model=\"item[field.name]\" options=\"item.options[field.name]\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-panel uk-panel-box uk-panel-box-primary uk-margin-large-top\" ng-show=\"custom.editfields\">\n\n                <h3 class=\"uk-h3\">{{'Manage Custom Fields' | trans}}<\/h3>\n\n                <div class=\"uk-margin uk-sortable\" id=\"js-fields-items\" data-uk-sortable ng-show=\"extrafields.length\">\n                    <div class=\"uk-margin-small\" ng-repeat=\"field in extrafields\">\n                        <div class=\"uk-panel uk-panel-box wk-panel-small\" ng-switch=\"(custom.editField==field ? 'edit':'')\">\n\n                            <div ng-switch-when=\"edit\">\n\n                                <div class=\"uk-grid uk-grid-width-1-3\">\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.name\" placeholder=\"{{'Field name' | trans}}\" disabled>\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <select class=\"uk-width-1-1\" ng-model=\"field.type\" ng-options=\"f.name as f.label for f in custom.fields\" disabled><\/select>\n                                        <\/div>\n\n                                    <\/div>\n                                <\/div>\n\n                                <p class=\"uk-margin-bottom-remove\">\n                                    <button class=\"uk-button\" ng-click=\"custom.editField=false\" type=\"button\">{{'Close' | trans}}<\/button>\n                                <\/p>\n\n                            <\/div>\n\n                            <div ng-switch-default>\n\n                                <span>{{ field.label || field.name }}<\/span>\n\n                                <ul class=\"uk-subnav uk-margin-bottom-remove uk-float-right\">\n                                    <li class=\"uk-disabled\"><span>{{ field.type }}<\/span><\/li>\n                                    <li><a ng-click=\"custom.editField=field\"><i class=\"uk-icon-pencil\"><\/i><\/a><\/li>\n                                    <li><a ng-click=\"custom.deleteField(field)\"><i class=\"uk-icon-trash-o\"><\/i><\/a><\/li>\n                                <\/ul>\n\n                            <\/div>\n\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"custom.addCustomField && !custom.editField\">\n\n                    <div class=\"uk-panel uk-panel-box wk-panel-small\">\n\n                        <div class=\"uk-grid uk-grid-width-1-3\">\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.name\" placeholder=\"{{'Field name' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <select class=\"uk-width-1-1\" ng-model=\"custom.custom.field.type\" ng-options=\"f.name as f.label for f in custom.fields\"><\/select>\n                                <\/div>\n\n                            <\/div>\n\n                        <\/div>\n\n                        <p>\n                            <button class=\"uk-button uk-button-success\" ng-click=\"custom.addField(custom.custom.field);custom.addCustomField=false\" ng-disabled=\"!(custom.custom.field.name && custom.custom.field.label && custom.custom.field.type)\" type=\"button\">{{'Add' | trans}}<\/button>\n                            <button class=\"uk-button\" ng-click=\"custom.addCustomField=false\" type=\"button\">{{'Cancel' | trans}}<\/button>\n                        <\/p>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"!custom.addCustomField\">\n                    <div class=\"uk-button-dropdown\" data-uk-dropdown=\"{ mode: 'click' }\" >\n                        <button class=\"uk-button uk-button-primary\" type=\"button\">{{'New Field' | trans}} &nbsp; <i class=\"uk-icon-caret-down\"><\/i><\/button>\n                        <div class=\"uk-dropdown uk-dropdown-up uk-dropdown-small uk-text-left\">\n                            <ul class=\"uk-nav uk-nav-dropdown\">\n                                <li class=\"uk-nav-header\">{{'Field Types' | trans}}<\/li>\n                                <li ng-repeat=\"(fieldname, fieldsettings) in custom.corefields\" ng-show=\"!custom.hasField(fieldname)\"><a ng-click=\"custom.addField({name:fieldname, type:fieldsettings.type, label:fieldsettings.label, core:true})\">{{ fieldsettings.label}}<\/a><\/li>\n                                <li class=\"uk-nav-divider\"><\/li>\n                                <li><a ng-click=\"custom.custom.field={};custom.addCustomField=true\">{{'Custom' | trans}} <i class=\"uk-icon-magic\"><\/i><\/a><\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Close' | trans}}<\/a>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"uk-margin-large-top\" ng-show=\"!custom.editfields\">\n                <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Manage Fields' | trans}}<\/a>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n<\/div>\n","slideset.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideset<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Dotnav' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav']\"> {{'Show Dotnav' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"above\">{{'Above' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['slidenav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'above'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-filter\">{{'Filter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-filter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['filter']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_position']\">\n                                    <option value=\"top\">{{'Top' | trans}}<\/option>\n                                    <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                                <\/select>\n                                {{'Position' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-stack.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Media Width' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-5\">20%<\/option>\n                            <option value=\"1-4\">25%<\/option>\n                            <option value=\"3-10\">30%<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">67%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"1-1\">100%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-align\">{{'Media Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-breakpoint\">{{'Breakpoint' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-breakpoint\" class=\"uk-form-width-medium\" ng-model=\"widget.data['breakpoint']\">\n                            <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                            <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                            <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Alternate' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['alternate']\"> {{'Alternate the media alignment' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Horizontal Gutter' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['gutter']\"> {{'Show the grid gutter' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter-vertical\">{{'Vertical Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter-vertical\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter_vertical']\">\n                            <option value=\"default\">{{'Same as horizontal' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Divider' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['divider']\"> {{'Show horizontal dividers' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-media\">{{'Animation Media' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-media\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_media']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-content\">{{'Animation Content' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-content\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_content']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                       <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"media\">{{'To Media' | trans}}<\/option>\n                       <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                            <option value=\"sequence1\">{{'Box\/Box Primary' | trans}}<\/option>\n                            <option value=\"sequence2\">{{'Box\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence3\">{{'Box Primary\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence4\">{{'Box Secondary\/Box Primary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-date-format\">{{'Date Format' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <select id=\"wk-date-format\" class=\"uk-form-width-medium\" ng-model=\"widget.data['date_format']\">\n                            <option value=\"full\">{{'Full' | trans}}<\/option>\n                            <option value=\"long\">{{'Long' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"short\">{{'Short' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","switcher-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_min_height']\"> {{'Min. Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-alignment\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-alignment\" class=\"uk-form-width-medium\" ng-model=\"widget.data['alignment']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Link' || trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_media']\"> {{'Link Media' || trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"middle-left\">{{'Center Left' | trans}}<\/option>\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                            <\/select> {{'Animation' | trans}}\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_background']\"> {{'Show panel background' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","accordion.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Accordion<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Collapse Items' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['collapse']\"> {{\"Don't allow multiple opened items\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'First Item' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['first_item']\"> {{\"First item is opened\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as media overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H2<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H4<\/option>\n                            <option value=\"h6\">H4<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","popover.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Popover<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Popover' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top-center\">Top<\/option>\n                            <option value=\"bottom-center\">Bottom<\/option>\n                            <option value=\"left-center\">Left<\/option>\n                            <option value=\"right-center\">Right<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-mode\">{{'Mode' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-mode\" class=\"uk-form-width-medium\" ng-model=\"widget.data['mode']\">\n                            <option value=\"hover\">Hover<\/option>\n                            <option value=\"click\">Click<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-toggle\">{{'Toggle Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-toggle\" class=\"uk-form-width-medium\" ng-model=\"widget.data['toggle']\">\n                            <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                            <option value=\"info\">{{'Info' | trans}}<\/option>\n                            <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                            <option value=\"search\">{{'Search' | trans}}<\/option>\n                            <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                            <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                            <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                            <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                            <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                            <option value=\"map-marker\">{{'Map Marker' | trans}}<\/option>\n                            <option value=\"\">{{'Custom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slide-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slide-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slide_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> {{'Interval (ms)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","parallax.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Parallax<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Background' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-translatey\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['background_translatey']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-color\">{{'Background Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-color\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_start']\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_end']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Min. Width (px)' | trans}}<\/span>\n                    <div class=\"uk-form-controls\">\n                        <label><input id=\"wk-media_query\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['media_query']\" placeholder=\"e.g. 1024\"> {{'Enable parallax effect only on devices with larger screens then the min. width' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Title' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Content' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Advanced' | trans}} ({{'Only Content and Text' | trans}})<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-viewport\">{{'Viewport' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-viewport\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['viewport']\" placeholder=\"1\"> {{'Animation end point, relative to viewport height' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-velocity\">{{'Velocity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-velocity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['velocity']\" placeholder=\"0.5\"> {{'Easing of the animation' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['target']\"> {{'Animation plays as long as media element is visible' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Width' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_small']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_medium']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_large']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slider<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Infinite' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['infinite']\"> {{'Items are looped and you can scroll endless' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Center' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['center']\"> {{'The active item is centered' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slider' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_hover']\"> {{'Toggle content on hover' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-background\">{{'Background' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-background\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_background']\">\n                            <option value=\"none\">None<\/option>\n                            <option value=\"static\">Static<\/option>\n                            <option value=\"hover\">On hover<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-image\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-image\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_image']\">\n                            <option value=\"static\">{{'Static' | trans}}<\/option>\n                            <option value=\"hover\">{{'On hover' | trans}}<\/option>\n                            <option value=\"second\">{{'Second image on hover (If exists)' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay_image != 'static'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['image_animation']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                                    <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                                    <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_link']\"> {{'Link entire overlay, if link exists' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","list.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">List<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'List' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['list']\">\n                            <option value=\"line\">{{'Line' | trans}}<\/option>\n                            <option value=\"striped\">{{'Striped' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title']\">\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                            <option value=\"content\">{{'Content' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"default\">Default<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Truncate' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_truncate']\"> {{'Max. characters' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_color']\">\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"muted\">{{'Muted' | trans}}<\/option>\n                            <option value=\"reset\">{{'Same as text' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","map.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content-map'}\">\n                <li><a href=\"#\">{{'Map' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Style' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content-map\" class=\"uk-switcher\">\n            <li>\n                                <div class=\"uk-alert\">Please add your custom Google Maps API Key in the <a href=\"index.php?option=com_config&view=component&component=com_widgetkit\">Widgetkit settings<\/a>!<\/div>\n                \n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-height\">{{'Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-maptypeid\">{{'Map Type' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-maptypeid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['maptypeid']\">\n                            <option value=\"roadmap\">{{'Roadmap' | trans}}<\/option>\n                            <option value=\"satellite\">{{'Satellite' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Controls' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Default UI' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disabledefaultui']\"> {{'Disable automatic UI behavior' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Type Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['maptypecontrol']\"> {{'Show type controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Map Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['mapctrl']\"> {{'Show map controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Directions Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['directions']\"> {{'Show directions controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-zoom\">{{'Zoom Level' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-zoom\" class=\"uk-form-width-medium\" ng-model=\"widget.data['zoom']\">\n                            <option value=\"0\">0<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                            <option value=\"7\">7<\/option>\n                            <option value=\"8\">8<\/option>\n                            <option value=\"9\">9<\/option>\n                            <option value=\"10\">10<\/option>\n                            <option value=\"11\">11<\/option>\n                            <option value=\"12\">12<\/option>\n                            <option value=\"13\">13<\/option>\n                            <option value=\"14\">14<\/option>\n                            <option value=\"15\">15<\/option>\n                            <option value=\"16\">16<\/option>\n                            <option value=\"17\">17<\/option>\n                            <option value=\"18\">18<\/option>\n                            <option value=\"19\">19<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker\">{{'Marker' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-marker\" class=\"uk-form-width-medium\" ng-model=\"widget.data['marker']\">\n                            <option value=\"0\">{{'Hide' | trans}}<\/option>\n                            <option value=\"1\">{{'Show' | trans}}<\/option>\n                            <option value=\"2\">{{'Show and enable Popup' | trans}}<\/option>\n                            <option value=\"3\">{{'Show with opened Popup' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.marker > '1'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['popup_max_width']\"> {{'Popup max width (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Cluster Markers' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['markercluster']\"> {{'Group markers on zoom out' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Scroll Wheel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['zoomwheel']\"> {{'Zoom map on scroll' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Draggable' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['draggable']\"> {{'Move map on drag' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Invert' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['styler_invert_lightness']\"> {{'Invert lightness' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-hue\">{{'Hue' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-hue\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_hue']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-saturation\">{{'Saturation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-saturation\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_saturation']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-lightness\">{{'Lightness' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-lightness\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_lightness']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-gamma\">{{'Gamma' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-gamma\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_gamma']\"> ({{'%from% to %to%' | trans: {from:0, to:10} }})\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Marker' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker-icon\">{{'Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-marker-icon\" class=\"uk-form-width-small\" type=\"text\" placeholder=\"{{'default' | trans}}\" ng-model=\"widget.data['marker_icon']\"> ({{'Color or image url' | trans}})\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","switcher.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'top' || widget.data.position == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['alignment']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'left' || widget.data.position == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Width' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","gallery.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Lightbox' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">Tablet<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Appearance' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"default\">{{'Image Caption' | trans}}<\/option>\n                            <option value=\"center\">{{'Overlay Center' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Overlay Bottom' | trans}}<\/option>\n                        <\/select>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['panel']\">\n                                    <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                                    <option value=\"box\">{{'Box' | trans}}<\/option>\n                                    <option value=\"primary\">Box Primary<\/option>\n                                    <option value=\"secondary\">Box Secondary<\/option>\n                                    <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                                <\/select>\n                                {{'Panel Style' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_center']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"link\">{{'Link' | trans}}<\/option>\n                                    <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                                    <option value=\"buttons\">{{'Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                                    <option value=\"content\">{{'Content' | trans}} ({{'If enabled' | trans}})<\/option>\n                                <\/select>\n                                {{'Overlay' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default + Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default' || widget.data.overlay == 'center'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_background']\">\n                                    <option value=\"none\">None<\/option>\n                                    <option value=\"static\">Static<\/option>\n                                    <option value=\"hover\">On hover<\/option>\n                                <\/select>\n                                {{'Background' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_image']\"> {{'Use second image as overlay if exists' | trans}}<\/label>\n                        <\/p>\n                        <!-- Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'center'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['hover_overlay']\"> {{'Toggle content on hover' | trans}}<\/label>\n                        <\/p>\n\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Overlay Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['image_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.link_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['link_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">External Link Square<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Lightbox' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox\">{{'Lightbox' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox']\">\n                            <option value=\"\">{{'Disabled' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"slideshow\">{{'Slideshow' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_caption']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"title\">{{'Use Title' | trans}}<\/option>\n                                    <option value=\"content\">{{'Use Content' | trans}}<\/option>\n                                <\/select>\n                                {{'Caption' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_nav_contrast']\"> {{'Invert slidenav color.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_title_size']\">\n                                    <option value=\"panel\">{{'Default' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                    <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Title Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_content_size']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                <\/select>\n                                {{'Content Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['lightbox_content_width']\">\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                    <option value=\"3-4\">75%<\/option>\n                                    <option value=\"4-5\">80%<\/option>\n                                    <option value=\"\">100%<\/option>\n                                <\/select>\n                                {{'Content width on xlarge screens.' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_alt']\"> {{'Show second media element in lightbox.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Button' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_link']\"> {{'Enable lightbox link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.lightbox_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">{{'External Link Square' | trans}}<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-lightbox-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['lightbox_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n"};

(function(b,g){b.module("Application",[]).factory("Application",["name",function(a){return b.extend({url:function(a,e){var c=[],f=this.config.route;b.forEach(b.extend({p:a},e),function(a,d){c.push(d+"="+a)});c.length&&(f+=(-1!=f.indexOf("?")?"&":"?")+c.join("&"));return f},baseUrl:function(){return this.config.url},templateUrl:function(a){return this.url("template",{name:a})}},g[a])}]).filter("first",["$filter",function(a){return function(d){return a("toArray")(d)[0]}}]).filter("length",["$filter",
function(a){return function(d){return a("toArray")(d).length}}]).filter("toArray",function(){return function(a){return b.isObject(a)?Object.keys(a).filter(function(a){return"$"!==a.charAt(0)}).map(function(b){return a[b]}):b.isArray(a)?a:[]}}).config(["$provide","$httpProvider",function(a,d){a.decorator("$templateCache",["$delegate","Application",function(a,c){b.forEach(c.templates,function(c,b){a.put(b,c)});return a}]);a.decorator("$templateRequest",["$delegate","Application",function(a,c){return function(b,
d){c.templates[b]||(b=c.templateUrl(b));return a(b,d)}}]);d.interceptors.push(["Application",function(a){return{request:function(b){if("PUT"==b.method||"DELETE"==b.method)b.headers["X-HTTP-Method-Override"]=b.method,b.method="POST";"POST"==b.method&&(b.headers["X-XSRF-TOKEN"]=a.config.csrf);return b}}}])}]);b.element(g.document).ready(function(){var a=b.element(this).find("[data-app]");b.forEach(a,function(a){var e=b.element(a).data("app");g[e]&&b.bootstrap(a,[e])})})})(angular,window);

(function(l,f){l.module("Application").factory("Translator",function(){return f.Translator}).config(["$provide",function(f){f.decorator("Translator",["$delegate","Application",function(f,h){f.locale=h.config.locale;for(var m in h.config.locales)for(var q in h.config.locales[m])f.add(q,h.config.locales[m][q]);return f}])}]).filter("trans",["Translator",function(f){return function(n,h){return f.trans(n,h)}}]).filter("transChoice",["Translator",function(f){return function(n,h,m){return f.transChoice(n,
h,m)}}])})(angular,window);
var Translator=function(l,f){function q(a,d){var b,e=Translator.placeHolderPrefix,f=Translator.placeHolderSuffix;for(b in d){var c=new RegExp(e+b+f,"g");c.test(a)&&(a=a.replace(c,d[b]))}return a}function n(a,d,b,e,p){b=b||e||p;if(f==g[b]){if(f==g[p])return a;b=p}if(f===d||null===d)for(e=0;e<k.length;e++)if(h(b,k[e],a)||h(p,k[e],a)){d=k[e];break}if(h(b,d,a))return g[b][d][a];for(var c,t;2<b.length;){e=b.length;c=b.split(/[\s_]+/);t=c[c.length-1];t=t.length;if(1===c.length)break;b=b.substring(0,e-(t+
1));if(h(b,d,a))return g[b][d][a]}return h(p,d,a)?g[p][d][a]:a}function h(a,d,b){return f==g[a]||f==g[a][d]||f==g[a][d][b]?!1:!0}function m(a){return"-Inf"===a?Number.NEGATIVE_INFINITY:"+Inf"===a||"Inf"===a?Number.POSITIVE_INFINITY:parseInt(a,10)}function x(a,d){var b=d;"pt_BR"===b&&(b="xbr");3<b.length&&(b=b.split("_")[0]);switch(b){case "bo":case "dz":case "id":case "ja":case "jv":case "ka":case "km":case "kn":case "ko":case "ms":case "th":case "tr":case "vi":case "zh":return 0;case "af":case "az":case "bn":case "bg":case "ca":case "da":case "de":case "el":case "en":case "eo":case "es":case "et":case "eu":case "fa":case "fi":case "fo":case "fur":case "fy":case "gl":case "gu":case "ha":case "he":case "hu":case "is":case "it":case "ku":case "lb":case "ml":case "mn":case "mr":case "nah":case "nb":case "ne":case "nl":case "nn":case "no":case "om":case "or":case "pa":case "pap":case "ps":case "pt":case "so":case "sq":case "sv":case "sw":case "ta":case "te":case "tk":case "ur":case "zu":return 1==
a?0:1;case "am":case "bh":case "fil":case "fr":case "gun":case "hi":case "ln":case "mg":case "nso":case "xbr":case "ti":case "wa":return 0===a||1==a?0:1;case "be":case "bs":case "hr":case "ru":case "sr":case "uk":return 1==a%10&&11!=a%100?0:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?1:2;case "cs":case "sk":return 1==a?0:2<=a&&4>=a?1:2;case "ga":return 1==a?0:2==a?1:2;case "lt":return 1==a%10&&11!=a%100?0:2<=a%10&&(10>a%100||20<=a%100)?1:2;case "sl":return 1==a%100?0:2==a%100?1:3==a%100||4==a%100?2:3;
case "mk":return 1==a%10?0:1;case "mt":return 1==a?0:0===a||1<a%100&&11>a%100?1:10<a%100&&20>a%100?2:3;case "lv":return 0===a?0:1==a%10&&11!=a%100?1:2;case "pl":return 1==a?0:2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?1:2;case "cy":return 1==a?0:2==a?1:8==a||11==a?2:3;case "ro":return 1==a?0:0===a||0<a%100&&20>a%100?1:2;case "ar":return 0===a?0:1==a?1:2==a?2:3<=a&&10>=a?3:11<=a&&99>=a?4:5;default:return 0}}var g={},k=[],u=new RegExp(/^\w+\: +(.+)$/),v=new RegExp(/^\s*((\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]]))\s?(.+?)$/),
w=new RegExp(/^\s*(\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]])/);return{locale:l.documentElement.lang.replace("-","_"),fallback:"en",placeHolderPrefix:"%",placeHolderSuffix:"%",defaultDomain:"messages",pluralSeparator:"|",add:function(a,d,b,e){e=e||this.locale||this.fallback;b=b||this.defaultDomain;g[e]||(g[e]={});g[e][b]||(g[e][b]={});g[e][b][a]=d;a:{for(a=0;a<k.length;a++)if(b===k[a]){a=!0;break a}a=!1}!1===a&&k.push(b);return this},trans:function(a,
d,b,e){a=n(a,b,e,this.locale,this.fallback);return q(a,d||{})},transChoice:function(a,d,b,e,h){var c=n(a,e,h,this.locale,this.fallback);d=parseInt(d,10);if(f!=c&&!isNaN(d))a:{h=h||this.locale||this.fallback;var g,k;a=[];e=[];var r=c.split(Translator.pluralSeparator),c=[];for(g=0;g<r.length;g++)c=r[g],v.test(c)?(c=c.match(v),a[c[0]]=c[c.length-1]):u.test(c)?(c=c.match(u),e.push(c[1])):e.push(c);for(k in a)if(w.test(k))if(c=k.match(w),c[1]){var c=c[2].split(","),l;for(l in c)if(d==c[l]){c=a[k];break a}}else if(g=
m(c[4]),r=m(c[5]),("["===c[3]?d>=g:d>g)&&("]"===c[6]?d<=r:d<r)){c=a[k];break a}c=e[x(d,h)]||e[0]||f}return q(c,b||{})},fromJSON:function(a){"string"===typeof a&&(a=JSON.parse(a));a.locale&&(this.locale=a.locale);a.fallback&&(this.fallback=a.fallback);a.defaultDomain&&(this.defaultDomain=a.defaultDomain);if(a.translations)for(var d in a.translations)for(var b in a.translations[d])for(var e in a.translations[d][b])this.add(e,a.translations[d][b][e],b,d);return this},reset:function(){g={};k=[];this.locale=
l.documentElement.lang.replace("-","_")}}}(document,void 0);

widgetkit/wk-styles-26b26077.css000064400000266032152177723720012236 0ustar00.wk-grid-match>*>*,[class*=wk-grid-width]>*{width:100%;box-sizing:border-box}.wk-panel-box,.wk-panel-box .wk-panel-title,.wk-panel-box-hover:hover,.wk-panel-box-primary .wk-panel-title,.wk-panel-box-primary-hover:hover,.wk-panel-title{color:#444}.wk-tab-center .wk-tab>li>a,.wk-tab-grid>li>a{text-align:center}.wk-modal,.wk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-button-group,.wk-dotnav>*>*,.wk-dropdown-small,.wk-modal-caption,.wk-text-nowrap,.wk-text-truncate{white-space:nowrap}.wk-accordion-content:after,.wk-clearfix:after,.wk-container:after,.wk-dotnav:after,.wk-form-row:after,.wk-grid:after,.wk-list>li:after,.wk-panel:after,.wk-subnav:after,.wk-tab-center:after,.wk-tab:after{clear:both}a[class*=wk-]{text-decoration:none!important;cursor:pointer}a[class*=wk-]:hover{text-decoration:none!important}.wk-dotnav,.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-subnav,.wk-switcher,.wk-tab{margin-left:0;padding:0!important;list-style:none!important}.wk-dotnav,.wk-grid,.wk-list,.wk-list ul,.wk-subnav,.wk-switcher,.wk-tab,.wk-thumbnav{list-style:none}.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-switcher,.wk-tab{margin-bottom:0!important}.wk-dotnav,.wk-subnav{margin-bottom:20px!important}*+.wk-dotnav,*+.wk-subnav{margin-top:20px!important}.wk-dotnav>li>a,.wk-icon-button,.wk-list>li>a,.wk-nav ul>li>a,.wk-nav>li>a,.wk-overlay,.wk-slidenav,.wk-subnav>li>a{border:none!important}.wk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.wk-grid:after,.wk-grid:before{content:"";display:block;overflow:hidden}.wk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-grid>*>:last-child{margin-bottom:0}.wk-grid{margin-left:-25px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:25px}@media (min-width:1220px){.wk-grid{margin-left:-35px}.wk-grid>*{padding-left:35px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:35px}}.wk-grid-collapse{margin-left:0}.wk-grid-collapse>*{padding-left:0}.wk-grid-collapse+.wk-grid-collapse,.wk-grid-collapse>*>.wk-panel+.wk-panel,.wk-grid-collapse>.wk-grid-margin{margin-top:0}.wk-grid-small{margin-left:-10px}.wk-grid-small>*{padding-left:10px}.wk-grid-small+.wk-grid-small,.wk-grid-small>*>.wk-panel+.wk-panel,.wk-grid-small>.wk-grid-margin{margin-top:10px}.wk-grid-medium{margin-left:-25px}.wk-grid-medium>*{padding-left:25px}.wk-grid-medium+.wk-grid-medium,.wk-grid-medium>*>.wk-panel+.wk-panel,.wk-grid-medium>.wk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-grid-large{margin-left:-35px}.wk-grid-large>*{padding-left:35px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:35px}.wk-grid-divider>[class*=wk-width-large-]:not(.wk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1220px){.wk-grid-large{margin-left:-50px}.wk-grid-large>*{padding-left:50px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:50px}}.wk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-grid-divider>[class*=wk-width-9-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-1-]:not(.wk-width-1-1):nth-child(n+2),.wk-grid-divider>[class*=wk-width-2-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-3-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-4-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-5-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-6-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-7-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-8-]:nth-child(n+2){border-left:1px solid #e5e5e5}@media (min-width:1220px){.wk-grid-divider:not(:empty){margin-left:-35px;margin-right:-35px}.wk-grid-divider>*{padding-left:35px;padding-right:35px}.wk-grid-divider:empty{margin-top:35px;margin-bottom:35px}}.wk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none}.wk-grid-width-1-2>*{width:50%}.wk-grid-width-1-3>*{width:33.333%}.wk-grid-width-1-4>*{width:25%}.wk-grid-width-1-5>*{width:20%}.wk-grid-width-1-6>*{width:16.666%}.wk-grid-width-1-10>*{width:10%}.wk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-grid-width-small-1-1>*{width:100%}.wk-grid-width-small-1-2>*{width:50%}.wk-grid-width-small-1-3>*{width:33.333%}.wk-grid-width-small-1-4>*{width:25%}.wk-grid-width-small-1-5>*{width:20%}.wk-grid-width-small-1-6>*{width:16.666%}.wk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-grid-divider>[class*=wk-width-medium-]:not(.wk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-grid-width-medium-1-1>*{width:100%}.wk-grid-width-medium-1-2>*{width:50%}.wk-grid-width-medium-1-3>*{width:33.333%}.wk-grid-width-medium-1-4>*{width:25%}.wk-grid-width-medium-1-5>*{width:20%}.wk-grid-width-medium-1-6>*{width:16.666%}.wk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-grid-width-large-1-1>*{width:100%}.wk-grid-width-large-1-2>*{width:50%}.wk-grid-width-large-1-3>*{width:33.333%}.wk-grid-width-large-1-4>*{width:25%}.wk-grid-width-large-1-5>*{width:20%}.wk-grid-width-large-1-6>*{width:16.666%}.wk-grid-width-large-1-10>*{width:10%}}@media (min-width:1220px){.wk-grid-width-xlarge-1-1>*{width:100%}.wk-grid-width-xlarge-1-2>*{width:50%}.wk-grid-width-xlarge-1-3>*{width:33.333%}.wk-grid-width-xlarge-1-4>*{width:25%}.wk-grid-width-xlarge-1-5>*{width:20%}.wk-grid-width-xlarge-1-6>*{width:16.666%}.wk-grid-width-xlarge-1-10>*{width:10%}}[class*=wk-width]{box-sizing:border-box;width:100%}.wk-width-1-1{width:100%}.wk-width-1-2,.wk-width-2-4,.wk-width-3-6,.wk-width-5-10{width:50%}.wk-width-1-3,.wk-width-2-6{width:33.333%}.wk-width-2-3,.wk-width-4-6{width:66.666%}.wk-width-1-4{width:25%}.wk-width-3-4{width:75%}.wk-width-1-5,.wk-width-2-10{width:20%}.wk-width-2-5,.wk-width-4-10{width:40%}.wk-width-3-5,.wk-width-6-10{width:60%}.wk-width-4-5,.wk-width-8-10{width:80%}.wk-width-1-6{width:16.666%}.wk-width-5-6{width:83.333%}.wk-width-1-10{width:10%}.wk-width-3-10{width:30%}.wk-width-7-10{width:70%}.wk-width-9-10{width:90%}@media (min-width:480px){.wk-width-small-1-1{width:100%}.wk-width-small-1-2,.wk-width-small-2-4,.wk-width-small-3-6,.wk-width-small-5-10{width:50%}.wk-width-small-1-3,.wk-width-small-2-6{width:33.333%}.wk-width-small-2-3,.wk-width-small-4-6{width:66.666%}.wk-width-small-1-4{width:25%}.wk-width-small-3-4{width:75%}.wk-width-small-1-5,.wk-width-small-2-10{width:20%}.wk-width-small-2-5,.wk-width-small-4-10{width:40%}.wk-width-small-3-5,.wk-width-small-6-10{width:60%}.wk-width-small-4-5,.wk-width-small-8-10{width:80%}.wk-width-small-1-6{width:16.666%}.wk-width-small-5-6{width:83.333%}.wk-width-small-1-10{width:10%}.wk-width-small-3-10{width:30%}.wk-width-small-7-10{width:70%}.wk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-width-medium-1-1{width:100%}.wk-width-medium-1-2,.wk-width-medium-2-4,.wk-width-medium-3-6,.wk-width-medium-5-10{width:50%}.wk-width-medium-1-3,.wk-width-medium-2-6{width:33.333%}.wk-width-medium-2-3,.wk-width-medium-4-6{width:66.666%}.wk-width-medium-1-4{width:25%}.wk-width-medium-3-4{width:75%}.wk-width-medium-1-5,.wk-width-medium-2-10{width:20%}.wk-width-medium-2-5,.wk-width-medium-4-10{width:40%}.wk-width-medium-3-5,.wk-width-medium-6-10{width:60%}.wk-width-medium-4-5,.wk-width-medium-8-10{width:80%}.wk-width-medium-1-6{width:16.666%}.wk-width-medium-5-6{width:83.333%}.wk-width-medium-1-10{width:10%}.wk-width-medium-3-10{width:30%}.wk-width-medium-7-10{width:70%}.wk-width-medium-9-10{width:90%}[class*=wk-push-],[class*=wk-pull-]{position:relative}.wk-push-1-2,.wk-push-2-4,.wk-push-3-6,.wk-push-5-10{left:50%}.wk-push-1-3,.wk-push-2-6{left:33.333%}.wk-push-2-3,.wk-push-4-6{left:66.666%}.wk-push-1-4{left:25%}.wk-push-3-4{left:75%}.wk-push-1-5,.wk-push-2-10{left:20%}.wk-push-2-5,.wk-push-4-10{left:40%}.wk-push-3-5,.wk-push-6-10{left:60%}.wk-push-4-5,.wk-push-8-10{left:80%}.wk-push-1-6{left:16.666%}.wk-push-5-6{left:83.333%}.wk-push-1-10{left:10%}.wk-push-3-10{left:30%}.wk-push-7-10{left:70%}.wk-push-9-10{left:90%}.wk-pull-1-2,.wk-pull-2-4,.wk-pull-3-6,.wk-pull-5-10{left:-50%}.wk-pull-1-3,.wk-pull-2-6{left:-33.333%}.wk-pull-2-3,.wk-pull-4-6{left:-66.666%}.wk-pull-1-4{left:-25%}.wk-pull-3-4{left:-75%}.wk-pull-1-5,.wk-pull-2-10{left:-20%}.wk-pull-2-5,.wk-pull-4-10{left:-40%}.wk-pull-3-5,.wk-pull-6-10{left:-60%}.wk-pull-4-5,.wk-pull-8-10{left:-80%}.wk-pull-1-6{left:-16.666%}.wk-pull-5-6{left:-83.333%}.wk-pull-1-10{left:-10%}.wk-pull-3-10{left:-30%}.wk-pull-7-10{left:-70%}.wk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-width-large-1-1{width:100%}.wk-width-large-1-2,.wk-width-large-2-4,.wk-width-large-3-6,.wk-width-large-5-10{width:50%}.wk-width-large-1-3,.wk-width-large-2-6{width:33.333%}.wk-width-large-2-3,.wk-width-large-4-6{width:66.666%}.wk-width-large-1-4{width:25%}.wk-width-large-3-4{width:75%}.wk-width-large-1-5,.wk-width-large-2-10{width:20%}.wk-width-large-2-5,.wk-width-large-4-10{width:40%}.wk-width-large-3-5,.wk-width-large-6-10{width:60%}.wk-width-large-4-5,.wk-width-large-8-10{width:80%}.wk-width-large-1-6{width:16.666%}.wk-width-large-5-6{width:83.333%}.wk-width-large-1-10{width:10%}.wk-width-large-3-10{width:30%}.wk-width-large-7-10{width:70%}.wk-width-large-9-10{width:90%}}.wk-panel{display:block;position:relative}.wk-panel,.wk-panel:hover{text-decoration:none}.wk-panel:after,.wk-panel:before{content:"";display:table}.wk-panel>:not(.wk-panel-title):last-child{margin-bottom:0}.wk-panel-teaser,.wk-panel-title{margin-bottom:20px}.wk-panel-title{margin-top:0;font-size:18px;line-height:24px;font-weight:300;text-transform:none}.wk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-panel-box .wk-panel-badge,.wk-panel-hover .wk-panel-badge{top:10px;right:10px}.wk-panel-body{padding:20px}.wk-panel-box{padding:20px;background:#fff;border:1px solid #e5e5e5;border-radius:2px}.wk-panel-box>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-box>.wk-nav-side{margin:0 -20px}.wk-panel-box-primary{background-color:#fafafa;color:#444}.wk-panel-box-secondary{background-color:#444;color:#fff}.wk-panel-box-secondary .wk-panel-title,.wk-panel-box-secondary-hover:hover{color:#fff}.wk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-nav-dropdown .wk-nav-divider,.wk-nav-navbar .wk-nav-divider,.wk-nav-side .wk-nav-divider{border-top:1px solid #e5e5e5}.wk-panel-hover>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-header .wk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-panel-space{padding:30px}.wk-panel-space .wk-panel-badge{top:30px;right:30px}.wk-panel+.wk-panel-divider{margin-top:50px!important}.wk-panel+.wk-panel-divider:before{content:"";display:block;position:absolute;top:-25px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1220px){.wk-width-xlarge-1-1{width:100%}.wk-width-xlarge-1-2,.wk-width-xlarge-2-4,.wk-width-xlarge-3-6,.wk-width-xlarge-5-10{width:50%}.wk-width-xlarge-1-3,.wk-width-xlarge-2-6{width:33.333%}.wk-width-xlarge-2-3,.wk-width-xlarge-4-6{width:66.666%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-width-xlarge-1-5,.wk-width-xlarge-2-10{width:20%}.wk-width-xlarge-2-5,.wk-width-xlarge-4-10{width:40%}.wk-width-xlarge-3-5,.wk-width-xlarge-6-10{width:60%}.wk-width-xlarge-4-5,.wk-width-xlarge-8-10{width:80%}.wk-width-xlarge-1-6{width:16.666%}.wk-width-xlarge-5-6{width:83.333%}.wk-width-xlarge-1-10{width:10%}.wk-width-xlarge-3-10{width:30%}.wk-width-xlarge-7-10{width:70%}.wk-width-xlarge-9-10{width:90%}.wk-panel+.wk-panel-divider{margin-top:70px!important}.wk-panel+.wk-panel-divider:before{top:-35px}}.wk-cover-object,[data-wk-cover]{position:relative;left:50%;top:50%}.wk-panel-box .wk-panel-teaser>*{border-top-left-radius:2px;border-top-right-radius:2px}.wk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-cover{overflow:hidden}.wk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}[data-wk-cover]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-nav,.wk-nav ul{margin:0;padding:0;list-style:none}.wk-nav li>a{display:block;text-decoration:none}.wk-nav>li>a{padding:5px 15px}.wk-nav ul{padding-left:15px}.wk-nav ul a{padding:2px 0}.wk-nav li>a>div{font-size:12px;line-height:18px}.wk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-nav-header:not(:first-child){margin-top:20px}.wk-nav-divider{margin:9px 15px}ul.wk-nav-sub{padding:5px 0 5px 15px}.wk-nav-parent-icon>.wk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-subnav>*,.wk-tab>li{float:left;position:relative}.wk-nav-parent-icon>.wk-parent.wk-open>a:after{content:"\f107"}.wk-nav-side>li>a{color:#444;border-radius:2px}.wk-nav-side>li>a:focus,.wk-nav-side>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-nav-side>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-side .wk-nav-header{color:#444}.wk-nav-side ul a{color:#999}.wk-nav-side ul a:hover{color:#37a5e5}.wk-nav-dropdown>li>a{color:#444}.wk-nav-dropdown>li>a:focus,.wk-nav-dropdown>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-dropdown .wk-nav-header,.wk-nav-dropdown ul a{color:#999}.wk-nav-dropdown ul a:hover{color:#37a5e5}.wk-nav-navbar>li>a{color:#444}.wk-nav-navbar>li>a:focus,.wk-nav-navbar>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-navbar .wk-nav-header,.wk-nav-navbar ul a{color:#999}.wk-nav-navbar ul a:hover{color:#37a5e5}.wk-nav-offcanvas>li>a{color:#ccc;padding:10px 15px}.wk-nav-offcanvas>.wk-open>a,html:not(.wk-touch) .wk-nav-offcanvas>li>a:focus,html:not(.wk-touch) .wk-nav-offcanvas>li>a:hover{background:#292929;color:#fff;outline:0}html .wk-nav.wk-nav-offcanvas>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-offcanvas .wk-nav-header{color:#777}.wk-nav-offcanvas .wk-nav-divider{border-top:1px solid #424242}.wk-nav-offcanvas ul a{color:#ccc}html:not(.wk-touch) .wk-nav-offcanvas ul a:hover{color:#fff}.wk-panel-box .wk-nav-side>li>a{border-radius:0}.wk-nav-dropdown>li.wk-active>a{color:#37a5e5}.wk-nav-dropdown>li.wk-active>a:hover{color:#fff}.wk-nav-navbar>li.wk-active>a{color:#37a5e5}.wk-nav-navbar>li.wk-active>a:hover{color:#fff}.wk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px}.wk-subnav:after,.wk-subnav:before{content:"";display:block;overflow:hidden}.wk-subnav>*>*{display:inline-block;color:#444}.wk-subnav>*>:focus,.wk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-subnav>.wk-active>*{color:#37a5e5}.wk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-subnav-pill>*>:focus,.wk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-subnav-pill>.wk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-subnav>.wk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-tab{margin:0;padding:0;border-bottom:1px solid #e5e5e5}.wk-tab:after,.wk-tab:before{content:"";display:table}.wk-tab>li{margin-bottom:-1px}.wk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#444;text-decoration:none;border-radius:2px 2px 0 0}.wk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-tab>li.wk-open>a,.wk-tab>li>a:focus,.wk-tab>li>a:hover{border-color:rgba(0,0,0,.06);background:#f5f5f5;color:#444;outline:0}.wk-tab>li.wk-open:not(.wk-active)>a,.wk-tab>li:not(.wk-active)>a:focus,.wk-tab>li:not(.wk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-form>:last-child,.wk-list>li>:last-child,.wk-tab-bottom>li{margin-bottom:0}.wk-tab>li.wk-active>a{border-color:#e5e5e5 #e5e5e5 transparent;background:#fff;color:#37a5e5}.wk-tab>li.wk-disabled>a{color:#999;cursor:text}.wk-tab>li.wk-disabled.wk-active>a,.wk-tab>li.wk-disabled>a:focus,.wk-tab>li.wk-disabled>a:hover{background:0 0;border-color:transparent}.wk-tab-flip>li{float:right}.wk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-tab>li.wk-tab-responsive>a{margin-left:0;margin-right:0}.wk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-tab-center{border-bottom:1px solid #e5e5e5}.wk-tab-center-bottom{border-bottom:none;border-top:1px solid #e5e5e5}.wk-tab-center:after,.wk-tab-center:before{content:"";display:table}.wk-tab-center .wk-tab{position:relative;right:50%;border:none;float:right}.wk-tab-center .wk-tab>li{position:relative;right:-50%}.wk-tab-bottom{border-top:1px solid #e5e5e5;border-bottom:none}.wk-tab-bottom>li{margin-top:-1px}.wk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0;border-radius:0 0 2px 2px}.wk-tab-bottom>li.wk-open:not(.wk-active)>a,.wk-tab-bottom>li:not(.wk-active)>a:focus,.wk-tab-bottom>li:not(.wk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-tab-bottom>li.wk-active>a{border-top-color:transparent;border-bottom-color:#e5e5e5}.wk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #e5e5e5;z-index:-1}.wk-tab-grid>li:first-child>a{margin-left:5px}.wk-tab-grid.wk-tab-bottom{border-top:none}.wk-tab-grid.wk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-tab-left,.wk-tab-right{border-bottom:none}.wk-tab-left>li,.wk-tab-right>li{margin-bottom:0;float:none}.wk-tab-left>li>a,.wk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-tab-left>li:nth-child(n+2)>a,.wk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-tab-left>li.wk-active>a,.wk-tab-right>li.wk-active>a{border-color:#e5e5e5}.wk-tab-left{border-right:1px solid #e5e5e5}.wk-tab-left>li{margin-right:-1px}.wk-tab-left>li>a{border-bottom-width:1px;border-right-width:0;border-radius:2px 0 0 2px}.wk-tab-left>li:not(.wk-active)>a:focus,.wk-tab-left>li:not(.wk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-tab-left>li.wk-active>a{border-right-color:transparent}.wk-tab-right{border-left:1px solid #e5e5e5}.wk-tab-right>li{margin-left:-1px}.wk-tab-right>li>a{border-bottom-width:1px;border-left-width:0;border-radius:0 2px 2px 0}.wk-tab-right>li:not(.wk-active)>a:focus,.wk-tab-right>li:not(.wk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-tab-right>li.wk-active>a{border-left-color:transparent}}.wk-thumbnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-thumbnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;float:left}.wk-thumbnav:after,.wk-thumbnav:before{content:"";display:block;overflow:hidden}.wk-thumbnav:after{clear:both}.wk-thumbnav>*>*{display:block;background:#fff}.wk-thumbnav>*>*>img{opacity:.7;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.wk-thumbnav>*>:focus>img,.wk-thumbnav>*>:hover>img,.wk-thumbnav>.wk-active>*>img{opacity:1}.wk-list{padding:0}.wk-list>li:after,.wk-list>li:before{content:"";display:table}.wk-list ul{margin:0;padding-left:20px}.wk-list-line>li:nth-child(n+2){margin-top:5px;padding-top:5px;border-top:1px solid #e5e5e5}.wk-list-striped>li{padding:5px;border-bottom:1px solid #e5e5e5}.wk-list-striped>li:nth-of-type(odd){background:#fafafa}.wk-list-space>li:nth-child(n+2){margin-top:10px}.wk-list-striped>li:first-child{border-top:1px solid #e5e5e5}.wk-form input,.wk-form select,.wk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-form select{text-transform:none}.wk-form optgroup{font:inherit;font-weight:700}.wk-form input::-moz-focus-inner{border:0;padding:0}.wk-form input[type=checkbox],.wk-form input[type=radio]{padding:0}.wk-form input[type=checkbox]:not(:disabled),.wk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form textarea{-webkit-appearance:none}.wk-form input[type=search]::-webkit-search-cancel-button,.wk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-form input[type=number]::-webkit-inner-spin-button,.wk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-form fieldset{border:none;margin:0;padding:0}.wk-form textarea{overflow:auto;vertical-align:top}.wk-button,.wk-close{-webkit-appearance:none;overflow:visible;text-transform:none;text-align:center}.wk-button,.wk-button-group,.wk-form input:not([type=radio]):not([type=checkbox]),.wk-form select{vertical-align:middle}.wk-form :invalid{box-shadow:none}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form input[type=datetime-local],.wk-form input[type=date],.wk-form input[type=month],.wk-form input[type=time],.wk-form input[type=week],.wk-form input[type=color],.wk-form select,.wk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px}.wk-form input:not([type]):focus,.wk-form input[type=text]:focus,.wk-form input[type=password]:focus,.wk-form input[type=email]:focus,.wk-form input[type=url]:focus,.wk-form input[type=search]:focus,.wk-form input[type=tel]:focus,.wk-form input[type=number]:focus,.wk-form input[type=datetime]:focus,.wk-form input[type=datetime-local]:focus,.wk-form input[type=date]:focus,.wk-form input[type=month]:focus,.wk-form input[type=time]:focus,.wk-form input[type=week]:focus,.wk-form input[type=color]:focus,.wk-form select:focus,.wk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-form input:not([type]):disabled,.wk-form input[type=text]:disabled,.wk-form input[type=password]:disabled,.wk-form input[type=email]:disabled,.wk-form input[type=url]:disabled,.wk-form input[type=search]:disabled,.wk-form input[type=tel]:disabled,.wk-form input[type=number]:disabled,.wk-form input[type=datetime]:disabled,.wk-form input[type=datetime-local]:disabled,.wk-form input[type=date]:disabled,.wk-form input[type=month]:disabled,.wk-form input[type=time]:disabled,.wk-form input[type=week]:disabled,.wk-form input[type=color]:disabled,.wk-form select:disabled,.wk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-form :-ms-input-placeholder{color:#999!important}.wk-form ::-moz-placeholder{opacity:1;color:#999}.wk-form ::-webkit-input-placeholder{color:#999}.wk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-form :disabled::-moz-placeholder{color:#999}.wk-form :disabled::-webkit-input-placeholder{color:#999}.wk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}input:not([type]).wk-form-small,input[type].wk-form-small,select.wk-form-small,textarea.wk-form-small{height:30px;padding:3px;font-size:12px}input:not([type]).wk-form-large,input[type].wk-form-large,select.wk-form-large,textarea.wk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-form select[multiple],.wk-form select[size],.wk-form textarea{height:auto}.wk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#e95555!important}.wk-form-success{border-color:#80c96d!important;background:#fff!important;color:#71bd6a!important}.wk-form-blank{border-color:transparent!important;border-style:dashed!important;background:0 0!important}.wk-form-blank:focus{border-color:#e5e5e5!important}input.wk-form-width-mini{width:40px}select.wk-form-width-mini{width:65px}.wk-form-width-small{width:130px}.wk-form-width-medium{width:200px}.wk-form-width-large{width:500px}.wk-form-row:after,.wk-form-row:before{content:"";display:table}.wk-form-row+.wk-form-row{margin-top:20px}.wk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-form-controls>:first-child{margin-top:0}.wk-form-controls>:last-child{margin-bottom:0}.wk-form-controls-condensed{margin:5px 0}.wk-form-stacked .wk-form-label{display:block;margin-bottom:5px;font-weight:700}@media (max-width:959px){.wk-form-horizontal .wk-form-label{display:block;margin-bottom:5px;font-weight:700}}.wk-button,.wk-button-dropdown,.wk-button-group,.wk-button-group>*,.wk-form-icon{display:inline-block}.wk-overlay-area-content>:last-child,.wk-overlay-panel.wk-flex>*>:last-child,.wk-overlay-panel>:last-child,.wk-overlay>:first-child{margin-bottom:0}@media (min-width:960px){.wk-form-horizontal .wk-form-label{width:200px;margin-top:7px;float:left}.wk-form-horizontal .wk-form-controls{margin-left:215px}.wk-form-horizontal .wk-form-controls-text{padding-top:5px}}.wk-form-icon{position:relative;max-width:100%}.wk-form-icon>[class*=wk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-button-group,.wk-button-group .wk-button:active,.wk-button-group .wk-button:hover,.wk-overlay{position:relative}.wk-form-icon:not(.wk-form-icon-flip)>input{padding-left:30px!important}.wk-form-icon-flip>[class*=wk-icon-]{right:0}.wk-form-icon-flip>input{padding-right:30px!important}.wk-button::-moz-focus-inner{border:0;padding:0}.wk-button{margin:0;font:inherit;color:#444;box-sizing:border-box;padding:0 15px;background:#f5f5f5;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;border:1px solid rgba(0,0,0,.1)!important;border-radius:2px}.wk-button:not(:disabled){cursor:pointer}.wk-button:focus,.wk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)!important}.wk-button.wk-active,.wk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-button-danger,.wk-button-danger.wk-active,.wk-button-danger:active,.wk-button-danger:focus,.wk-button-danger:hover,.wk-button-primary,.wk-button-primary:focus,.wk-button-primary:hover,.wk-button-success,.wk-button-success.wk-active,.wk-button-success:active,.wk-button-success:focus,.wk-button-success:hover{color:#fff;border-color:transparent!important}.wk-button-primary{background-color:#37a5e4}.wk-button-primary:focus,.wk-button-primary:hover{background-color:#2495d6}.wk-button-primary.wk-active,.wk-button-primary:active{background-color:#1889c6;color:#fff;border-color:transparent!important;box-shadow:inset 0 1px 3px rgba(16,90,130,.2)}.wk-button-success{background-color:#80c96d}.wk-button-success:focus,.wk-button-success:hover{background-color:#6dbc58}.wk-button-success.wk-active,.wk-button-success:active{background-color:#61b54c;box-shadow:inset 0 1px 3px rgba(68,128,53,.2)}.wk-button-danger{background-color:#f0615b}.wk-button-danger:focus,.wk-button-danger:hover{background-color:#e54f49}.wk-button-danger.wk-active,.wk-button-danger:active{background-color:#e4463a;box-shadow:inset 0 1px 3px rgba(162,32,22,.2)}.wk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1)!important;box-shadow:none}.wk-button-link,.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:disabled,.wk-button-link:focus,.wk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-button-link{color:#37a5e5}.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:focus,.wk-button-link:hover{color:#1889c7;text-decoration:none}.wk-button-link:disabled,.wk-icon-hover{color:#999}.wk-button-link:focus{outline:dotted 1px}.wk-button-mini{min-height:25px;padding:0 8px;line-height:23px;font-size:12px}.wk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-button-group{font-size:0}.wk-button-group .wk-button{vertical-align:top}.wk-button-dropdown{vertical-align:middle;position:relative}.wk-button-group>.wk-button:not(:first-child):not(:last-child),.wk-button-group>div:not(:first-child):not(:last-child) .wk-button{border-radius:0}.wk-button-group>.wk-button:first-child,.wk-button-group>div:first-child .wk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-button-group>.wk-button:last-child,.wk-button-group>div:last-child .wk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-button-group>.wk-button:nth-child(n+2),.wk-button-group>div:nth-child(n+2) .wk-button{margin-left:-1px}@font-face{font-family:FontAwesome;src:url("/media/widgetkit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/media/widgetkit/fonts/fontawesome-webfont.woff") format("woff"),url("/media/widgetkit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}[class*=wk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=wk-icon-],[class*=wk-icon-]:focus,[class*=wk-icon-]:hover{text-decoration:none}.wk-icon-small{font-size:150%;vertical-align:-10%}.wk-icon-medium{font-size:200%;vertical-align:-16%}.wk-icon-large{font-size:250%;vertical-align:-22%}.wk-overlay,.wk-overlay-area-content,.wk-overlay-area:not(:empty):before{vertical-align:middle;display:inline-block}.wk-icon-justify{width:1em;text-align:center}.wk-icon-spin{display:inline-block;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-icon-hover:hover{color:#444}.wk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-icon-button:focus,.wk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-icon-glass:before{content:"\f000"}.wk-icon-music:before{content:"\f001"}.wk-icon-search:before{content:"\f002"}.wk-icon-envelope-o:before{content:"\f003"}.wk-icon-heart:before{content:"\f004"}.wk-icon-star:before{content:"\f005"}.wk-icon-star-o:before{content:"\f006"}.wk-icon-user:before{content:"\f007"}.wk-icon-film:before{content:"\f008"}.wk-icon-th-large:before{content:"\f009"}.wk-icon-th:before{content:"\f00a"}.wk-icon-th-list:before{content:"\f00b"}.wk-icon-check:before{content:"\f00c"}.wk-icon-close:before,.wk-icon-remove:before,.wk-icon-times:before{content:"\f00d"}.wk-icon-search-plus:before{content:"\f00e"}.wk-icon-search-minus:before{content:"\f010"}.wk-icon-power-off:before{content:"\f011"}.wk-icon-signal:before{content:"\f012"}.wk-icon-cog:before,.wk-icon-gear:before{content:"\f013"}.wk-icon-trash-o:before{content:"\f014"}.wk-icon-home:before{content:"\f015"}.wk-icon-file-o:before{content:"\f016"}.wk-icon-clock-o:before{content:"\f017"}.wk-icon-road:before{content:"\f018"}.wk-icon-download:before{content:"\f019"}.wk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-icon-inbox:before{content:"\f01c"}.wk-icon-play-circle-o:before{content:"\f01d"}.wk-icon-repeat:before,.wk-icon-rotate-right:before{content:"\f01e"}.wk-icon-refresh:before{content:"\f021"}.wk-icon-list-alt:before{content:"\f022"}.wk-icon-lock:before{content:"\f023"}.wk-icon-flag:before{content:"\f024"}.wk-icon-headphones:before{content:"\f025"}.wk-icon-volume-off:before{content:"\f026"}.wk-icon-volume-down:before{content:"\f027"}.wk-icon-volume-up:before{content:"\f028"}.wk-icon-qrcode:before{content:"\f029"}.wk-icon-barcode:before{content:"\f02a"}.wk-icon-tag:before{content:"\f02b"}.wk-icon-tags:before{content:"\f02c"}.wk-icon-book:before{content:"\f02d"}.wk-icon-bookmark:before{content:"\f02e"}.wk-icon-print:before{content:"\f02f"}.wk-icon-camera:before{content:"\f030"}.wk-icon-font:before{content:"\f031"}.wk-icon-bold:before{content:"\f032"}.wk-icon-italic:before{content:"\f033"}.wk-icon-text-height:before{content:"\f034"}.wk-icon-text-width:before{content:"\f035"}.wk-icon-align-left:before{content:"\f036"}.wk-icon-align-center:before{content:"\f037"}.wk-icon-align-right:before{content:"\f038"}.wk-icon-align-justify:before{content:"\f039"}.wk-icon-list:before{content:"\f03a"}.wk-icon-dedent:before,.wk-icon-outdent:before{content:"\f03b"}.wk-icon-indent:before{content:"\f03c"}.wk-icon-video-camera:before{content:"\f03d"}.wk-icon-image:before,.wk-icon-photo:before,.wk-icon-picture-o:before{content:"\f03e"}.wk-icon-pencil:before{content:"\f040"}.wk-icon-map-marker:before{content:"\f041"}.wk-icon-adjust:before{content:"\f042"}.wk-icon-tint:before{content:"\f043"}.wk-icon-edit:before,.wk-icon-pencil-square-o:before{content:"\f044"}.wk-icon-share-square-o:before{content:"\f045"}.wk-icon-check-square-o:before{content:"\f046"}.wk-icon-arrows:before{content:"\f047"}.wk-icon-step-backward:before{content:"\f048"}.wk-icon-fast-backward:before{content:"\f049"}.wk-icon-backward:before{content:"\f04a"}.wk-icon-play:before{content:"\f04b"}.wk-icon-pause:before{content:"\f04c"}.wk-icon-stop:before{content:"\f04d"}.wk-icon-forward:before{content:"\f04e"}.wk-icon-fast-forward:before{content:"\f050"}.wk-icon-step-forward:before{content:"\f051"}.wk-icon-eject:before{content:"\f052"}.wk-icon-chevron-left:before{content:"\f053"}.wk-icon-chevron-right:before{content:"\f054"}.wk-icon-plus-circle:before{content:"\f055"}.wk-icon-minus-circle:before{content:"\f056"}.wk-icon-times-circle:before{content:"\f057"}.wk-icon-check-circle:before{content:"\f058"}.wk-icon-question-circle:before{content:"\f059"}.wk-icon-info-circle:before{content:"\f05a"}.wk-icon-crosshairs:before{content:"\f05b"}.wk-icon-times-circle-o:before{content:"\f05c"}.wk-icon-check-circle-o:before{content:"\f05d"}.wk-icon-ban:before{content:"\f05e"}.wk-icon-arrow-left:before{content:"\f060"}.wk-icon-arrow-right:before{content:"\f061"}.wk-icon-arrow-up:before{content:"\f062"}.wk-icon-arrow-down:before{content:"\f063"}.wk-icon-mail-forward:before,.wk-icon-share:before{content:"\f064"}.wk-icon-expand:before{content:"\f065"}.wk-icon-compress:before{content:"\f066"}.wk-icon-plus:before{content:"\f067"}.wk-icon-minus:before{content:"\f068"}.wk-icon-asterisk:before{content:"\f069"}.wk-icon-exclamation-circle:before{content:"\f06a"}.wk-icon-gift:before{content:"\f06b"}.wk-icon-leaf:before{content:"\f06c"}.wk-icon-fire:before{content:"\f06d"}.wk-icon-eye:before{content:"\f06e"}.wk-icon-eye-slash:before{content:"\f070"}.wk-icon-exclamation-triangle:before,.wk-icon-warning:before{content:"\f071"}.wk-icon-plane:before{content:"\f072"}.wk-icon-calendar:before{content:"\f073"}.wk-icon-random:before{content:"\f074"}.wk-icon-comment:before{content:"\f075"}.wk-icon-magnet:before{content:"\f076"}.wk-icon-chevron-up:before{content:"\f077"}.wk-icon-chevron-down:before{content:"\f078"}.wk-icon-retweet:before{content:"\f079"}.wk-icon-shopping-cart:before{content:"\f07a"}.wk-icon-folder:before{content:"\f07b"}.wk-icon-folder-open:before{content:"\f07c"}.wk-icon-arrows-v:before{content:"\f07d"}.wk-icon-arrows-h:before{content:"\f07e"}.wk-icon-bar-chart-o:before,.wk-icon-bar-chart:before{content:"\f080"}.wk-icon-twitter-square:before{content:"\f081"}.wk-icon-facebook-square:before{content:"\f082"}.wk-icon-camera-retro:before{content:"\f083"}.wk-icon-key:before{content:"\f084"}.wk-icon-cogs:before,.wk-icon-gears:before{content:"\f085"}.wk-icon-comments:before{content:"\f086"}.wk-icon-thumbs-o-up:before{content:"\f087"}.wk-icon-thumbs-o-down:before{content:"\f088"}.wk-icon-star-half:before{content:"\f089"}.wk-icon-heart-o:before{content:"\f08a"}.wk-icon-sign-out:before{content:"\f08b"}.wk-icon-linkedin-square:before{content:"\f08c"}.wk-icon-thumb-tack:before{content:"\f08d"}.wk-icon-external-link:before{content:"\f08e"}.wk-icon-sign-in:before{content:"\f090"}.wk-icon-trophy:before{content:"\f091"}.wk-icon-github-square:before{content:"\f092"}.wk-icon-upload:before{content:"\f093"}.wk-icon-lemon-o:before{content:"\f094"}.wk-icon-phone:before{content:"\f095"}.wk-icon-square-o:before{content:"\f096"}.wk-icon-bookmark-o:before{content:"\f097"}.wk-icon-phone-square:before{content:"\f098"}.wk-icon-twitter:before{content:"\f099"}.wk-icon-facebook-f:before,.wk-icon-facebook:before{content:"\f09a"}.wk-icon-github:before{content:"\f09b"}.wk-icon-unlock:before{content:"\f09c"}.wk-icon-credit-card:before{content:"\f09d"}.wk-icon-rss:before{content:"\f09e"}.wk-icon-hdd-o:before{content:"\f0a0"}.wk-icon-bullhorn:before{content:"\f0a1"}.wk-icon-bell:before{content:"\f0f3"}.wk-icon-certificate:before{content:"\f0a3"}.wk-icon-hand-o-right:before{content:"\f0a4"}.wk-icon-hand-o-left:before{content:"\f0a5"}.wk-icon-hand-o-up:before{content:"\f0a6"}.wk-icon-hand-o-down:before{content:"\f0a7"}.wk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-icon-globe:before{content:"\f0ac"}.wk-icon-wrench:before{content:"\f0ad"}.wk-icon-tasks:before{content:"\f0ae"}.wk-icon-filter:before{content:"\f0b0"}.wk-icon-briefcase:before{content:"\f0b1"}.wk-icon-arrows-alt:before{content:"\f0b2"}.wk-icon-group:before,.wk-icon-users:before{content:"\f0c0"}.wk-icon-chain:before,.wk-icon-link:before{content:"\f0c1"}.wk-icon-cloud:before{content:"\f0c2"}.wk-icon-flask:before{content:"\f0c3"}.wk-icon-cut:before,.wk-icon-scissors:before{content:"\f0c4"}.wk-icon-copy:before,.wk-icon-files-o:before{content:"\f0c5"}.wk-icon-paperclip:before{content:"\f0c6"}.wk-icon-floppy-o:before,.wk-icon-save:before{content:"\f0c7"}.wk-icon-square:before{content:"\f0c8"}.wk-icon-bars:before,.wk-icon-navicon:before,.wk-icon-reorder:before{content:"\f0c9"}.wk-icon-list-ul:before{content:"\f0ca"}.wk-icon-list-ol:before{content:"\f0cb"}.wk-icon-strikethrough:before{content:"\f0cc"}.wk-icon-underline:before{content:"\f0cd"}.wk-icon-table:before{content:"\f0ce"}.wk-icon-magic:before{content:"\f0d0"}.wk-icon-truck:before{content:"\f0d1"}.wk-icon-pinterest:before{content:"\f0d2"}.wk-icon-pinterest-square:before{content:"\f0d3"}.wk-icon-google-plus-square:before{content:"\f0d4"}.wk-icon-google-plus:before{content:"\f0d5"}.wk-icon-money:before{content:"\f0d6"}.wk-icon-caret-down:before{content:"\f0d7"}.wk-icon-caret-up:before{content:"\f0d8"}.wk-icon-caret-left:before{content:"\f0d9"}.wk-icon-caret-right:before{content:"\f0da"}.wk-icon-columns:before{content:"\f0db"}.wk-icon-sort:before,.wk-icon-unsorted:before{content:"\f0dc"}.wk-icon-sort-desc:before,.wk-icon-sort-down:before{content:"\f0dd"}.wk-icon-sort-asc:before,.wk-icon-sort-up:before{content:"\f0de"}.wk-icon-envelope:before{content:"\f0e0"}.wk-icon-linkedin:before{content:"\f0e1"}.wk-icon-rotate-left:before,.wk-icon-undo:before{content:"\f0e2"}.wk-icon-gavel:before,.wk-icon-legal:before{content:"\f0e3"}.wk-icon-dashboard:before,.wk-icon-tachometer:before{content:"\f0e4"}.wk-icon-comment-o:before{content:"\f0e5"}.wk-icon-comments-o:before{content:"\f0e6"}.wk-icon-bolt:before,.wk-icon-flash:before{content:"\f0e7"}.wk-icon-sitemap:before{content:"\f0e8"}.wk-icon-umbrella:before{content:"\f0e9"}.wk-icon-clipboard:before,.wk-icon-paste:before{content:"\f0ea"}.wk-icon-lightbulb-o:before{content:"\f0eb"}.wk-icon-exchange:before{content:"\f0ec"}.wk-icon-cloud-download:before{content:"\f0ed"}.wk-icon-cloud-upload:before{content:"\f0ee"}.wk-icon-user-md:before{content:"\f0f0"}.wk-icon-stethoscope:before{content:"\f0f1"}.wk-icon-suitcase:before{content:"\f0f2"}.wk-icon-bell-o:before{content:"\f0a2"}.wk-icon-coffee:before{content:"\f0f4"}.wk-icon-cutlery:before{content:"\f0f5"}.wk-icon-file-text-o:before{content:"\f0f6"}.wk-icon-building-o:before{content:"\f0f7"}.wk-icon-hospital-o:before{content:"\f0f8"}.wk-icon-ambulance:before{content:"\f0f9"}.wk-icon-medkit:before{content:"\f0fa"}.wk-icon-fighter-jet:before{content:"\f0fb"}.wk-icon-beer:before{content:"\f0fc"}.wk-icon-h-square:before{content:"\f0fd"}.wk-icon-plus-square:before{content:"\f0fe"}.wk-icon-angle-double-left:before{content:"\f100"}.wk-icon-angle-double-right:before{content:"\f101"}.wk-icon-angle-double-up:before{content:"\f102"}.wk-icon-angle-double-down:before{content:"\f103"}.wk-icon-angle-left:before{content:"\f104"}.wk-icon-angle-right:before{content:"\f105"}.wk-icon-angle-up:before{content:"\f106"}.wk-icon-angle-down:before{content:"\f107"}.wk-icon-desktop:before{content:"\f108"}.wk-icon-laptop:before{content:"\f109"}.wk-icon-tablet:before{content:"\f10a"}.wk-icon-mobile-phone:before,.wk-icon-mobile:before{content:"\f10b"}.wk-icon-circle-o:before{content:"\f10c"}.wk-icon-quote-left:before{content:"\f10d"}.wk-icon-quote-right:before{content:"\f10e"}.wk-icon-spinner:before{content:"\f110"}.wk-icon-circle:before{content:"\f111"}.wk-icon-mail-reply:before,.wk-icon-reply:before{content:"\f112"}.wk-icon-github-alt:before{content:"\f113"}.wk-icon-folder-o:before{content:"\f114"}.wk-icon-folder-open-o:before{content:"\f115"}.wk-icon-smile-o:before{content:"\f118"}.wk-icon-frown-o:before{content:"\f119"}.wk-icon-meh-o:before{content:"\f11a"}.wk-icon-gamepad:before{content:"\f11b"}.wk-icon-keyboard-o:before{content:"\f11c"}.wk-icon-flag-o:before{content:"\f11d"}.wk-icon-flag-checkered:before{content:"\f11e"}.wk-icon-terminal:before{content:"\f120"}.wk-icon-code:before{content:"\f121"}.wk-icon-mail-reply-all:before,.wk-icon-reply-all:before{content:"\f122"}.wk-icon-star-half-empty:before,.wk-icon-star-half-full:before,.wk-icon-star-half-o:before{content:"\f123"}.wk-icon-location-arrow:before{content:"\f124"}.wk-icon-crop:before{content:"\f125"}.wk-icon-code-fork:before{content:"\f126"}.wk-icon-chain-broken:before,.wk-icon-unlink:before{content:"\f127"}.wk-icon-question:before{content:"\f128"}.wk-icon-info:before{content:"\f129"}.wk-icon-exclamation:before{content:"\f12a"}.wk-icon-superscript:before{content:"\f12b"}.wk-icon-subscript:before{content:"\f12c"}.wk-icon-eraser:before{content:"\f12d"}.wk-icon-puzzle-piece:before{content:"\f12e"}.wk-icon-microphone:before{content:"\f130"}.wk-icon-microphone-slash:before{content:"\f131"}.wk-icon-shield:before{content:"\f132"}.wk-icon-calendar-o:before{content:"\f133"}.wk-icon-fire-extinguisher:before{content:"\f134"}.wk-icon-rocket:before{content:"\f135"}.wk-icon-maxcdn:before{content:"\f136"}.wk-icon-chevron-circle-left:before{content:"\f137"}.wk-icon-chevron-circle-right:before{content:"\f138"}.wk-icon-chevron-circle-up:before{content:"\f139"}.wk-icon-chevron-circle-down:before{content:"\f13a"}.wk-icon-html5:before{content:"\f13b"}.wk-icon-css3:before{content:"\f13c"}.wk-icon-anchor:before{content:"\f13d"}.wk-icon-unlock-alt:before{content:"\f13e"}.wk-icon-bullseye:before{content:"\f140"}.wk-icon-ellipsis-h:before{content:"\f141"}.wk-icon-ellipsis-v:before{content:"\f142"}.wk-icon-rss-square:before{content:"\f143"}.wk-icon-play-circle:before{content:"\f144"}.wk-icon-ticket:before{content:"\f145"}.wk-icon-minus-square:before{content:"\f146"}.wk-icon-minus-square-o:before{content:"\f147"}.wk-icon-level-up:before{content:"\f148"}.wk-icon-level-down:before{content:"\f149"}.wk-icon-check-square:before{content:"\f14a"}.wk-icon-pencil-square:before{content:"\f14b"}.wk-icon-external-link-square:before{content:"\f14c"}.wk-icon-share-square:before{content:"\f14d"}.wk-icon-compass:before{content:"\f14e"}.wk-icon-caret-square-o-down:before,.wk-icon-toggle-down:before{content:"\f150"}.wk-icon-caret-square-o-up:before,.wk-icon-toggle-up:before{content:"\f151"}.wk-icon-caret-square-o-right:before,.wk-icon-toggle-right:before{content:"\f152"}.wk-icon-eur:before,.wk-icon-euro:before{content:"\f153"}.wk-icon-gbp:before{content:"\f154"}.wk-icon-dollar:before,.wk-icon-usd:before{content:"\f155"}.wk-icon-inr:before,.wk-icon-rupee:before{content:"\f156"}.wk-icon-cny:before,.wk-icon-jpy:before,.wk-icon-rmb:before,.wk-icon-yen:before{content:"\f157"}.wk-icon-rouble:before,.wk-icon-rub:before,.wk-icon-ruble:before{content:"\f158"}.wk-icon-krw:before,.wk-icon-won:before{content:"\f159"}.wk-icon-bitcoin:before,.wk-icon-btc:before{content:"\f15a"}.wk-icon-file:before{content:"\f15b"}.wk-icon-file-text:before{content:"\f15c"}.wk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-icon-sort-amount-asc:before{content:"\f160"}.wk-icon-sort-amount-desc:before{content:"\f161"}.wk-icon-sort-numeric-asc:before{content:"\f162"}.wk-icon-sort-numeric-desc:before{content:"\f163"}.wk-icon-thumbs-up:before{content:"\f164"}.wk-icon-thumbs-down:before{content:"\f165"}.wk-icon-youtube-square:before{content:"\f166"}.wk-icon-youtube:before{content:"\f167"}.wk-icon-xing:before{content:"\f168"}.wk-icon-xing-square:before{content:"\f169"}.wk-icon-youtube-play:before{content:"\f16a"}.wk-icon-dropbox:before{content:"\f16b"}.wk-icon-stack-overflow:before{content:"\f16c"}.wk-icon-instagram:before{content:"\f16d"}.wk-icon-flickr:before{content:"\f16e"}.wk-icon-adn:before{content:"\f170"}.wk-icon-bitbucket:before{content:"\f171"}.wk-icon-bitbucket-square:before{content:"\f172"}.wk-icon-tumblr:before{content:"\f173"}.wk-icon-tumblr-square:before{content:"\f174"}.wk-icon-long-arrow-down:before{content:"\f175"}.wk-icon-long-arrow-up:before{content:"\f176"}.wk-icon-long-arrow-left:before{content:"\f177"}.wk-icon-long-arrow-right:before{content:"\f178"}.wk-icon-apple:before{content:"\f179"}.wk-icon-windows:before{content:"\f17a"}.wk-icon-android:before{content:"\f17b"}.wk-icon-linux:before{content:"\f17c"}.wk-icon-dribbble:before{content:"\f17d"}.wk-icon-skype:before{content:"\f17e"}.wk-icon-foursquare:before{content:"\f180"}.wk-icon-trello:before{content:"\f181"}.wk-icon-female:before{content:"\f182"}.wk-icon-male:before{content:"\f183"}.wk-icon-gittip:before,.wk-icon-gratipay:before{content:"\f184"}.wk-icon-sun-o:before{content:"\f185"}.wk-icon-moon-o:before{content:"\f186"}.wk-icon-archive:before{content:"\f187"}.wk-icon-bug:before{content:"\f188"}.wk-icon-vk:before{content:"\f189"}.wk-icon-weibo:before{content:"\f18a"}.wk-icon-renren:before{content:"\f18b"}.wk-icon-pagelines:before{content:"\f18c"}.wk-icon-stack-exchange:before{content:"\f18d"}.wk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-icon-caret-square-o-left:before,.wk-icon-toggle-left:before{content:"\f191"}.wk-icon-dot-circle-o:before{content:"\f192"}.wk-icon-wheelchair:before{content:"\f193"}.wk-icon-vimeo-square:before{content:"\f194"}.wk-icon-try:before,.wk-icon-turkish-lira:before{content:"\f195"}.wk-icon-plus-square-o:before{content:"\f196"}.wk-icon-space-shuttle:before{content:"\f197"}.wk-icon-slack:before{content:"\f198"}.wk-icon-envelope-square:before{content:"\f199"}.wk-icon-wordpress:before{content:"\f19a"}.wk-icon-openid:before{content:"\f19b"}.wk-icon-bank:before,.wk-icon-institution:before,.wk-icon-university:before{content:"\f19c"}.wk-icon-graduation-cap:before,.wk-icon-mortar-board:before{content:"\f19d"}.wk-icon-yahoo:before{content:"\f19e"}.wk-icon-google:before{content:"\f1a0"}.wk-icon-reddit:before{content:"\f1a1"}.wk-icon-reddit-square:before{content:"\f1a2"}.wk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-icon-stumbleupon:before{content:"\f1a4"}.wk-icon-delicious:before{content:"\f1a5"}.wk-icon-digg:before{content:"\f1a6"}.wk-icon-pied-piper:before{content:"\f1a7"}.wk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-icon-drupal:before{content:"\f1a9"}.wk-icon-joomla:before{content:"\f1aa"}.wk-icon-language:before{content:"\f1ab"}.wk-icon-fax:before{content:"\f1ac"}.wk-icon-building:before{content:"\f1ad"}.wk-icon-child:before{content:"\f1ae"}.wk-icon-paw:before{content:"\f1b0"}.wk-icon-spoon:before{content:"\f1b1"}.wk-icon-cube:before{content:"\f1b2"}.wk-icon-cubes:before{content:"\f1b3"}.wk-icon-behance:before{content:"\f1b4"}.wk-icon-behance-square:before{content:"\f1b5"}.wk-icon-steam:before{content:"\f1b6"}.wk-icon-steam-square:before{content:"\f1b7"}.wk-icon-recycle:before{content:"\f1b8"}.wk-icon-automobile:before,.wk-icon-car:before{content:"\f1b9"}.wk-icon-cab:before,.wk-icon-taxi:before{content:"\f1ba"}.wk-icon-tree:before{content:"\f1bb"}.wk-icon-spotify:before{content:"\f1bc"}.wk-icon-deviantart:before{content:"\f1bd"}.wk-icon-soundcloud:before{content:"\f1be"}.wk-icon-database:before{content:"\f1c0"}.wk-icon-file-pdf-o:before{content:"\f1c1"}.wk-icon-file-word-o:before{content:"\f1c2"}.wk-icon-file-excel-o:before{content:"\f1c3"}.wk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-icon-file-image-o:before,.wk-icon-file-photo-o:before,.wk-icon-file-picture-o:before{content:"\f1c5"}.wk-icon-file-archive-o:before,.wk-icon-file-zip-o:before{content:"\f1c6"}.wk-icon-file-audio-o:before,.wk-icon-file-sound-o:before{content:"\f1c7"}.wk-icon-file-movie-o:before,.wk-icon-file-video-o:before{content:"\f1c8"}.wk-icon-file-code-o:before{content:"\f1c9"}.wk-icon-vine:before{content:"\f1ca"}.wk-icon-codepen:before{content:"\f1cb"}.wk-icon-jsfiddle:before{content:"\f1cc"}.wk-icon-life-bouy:before,.wk-icon-life-buoy:before,.wk-icon-life-ring:before,.wk-icon-life-saver:before,.wk-icon-support:before{content:"\f1cd"}.wk-icon-circle-o-notch:before{content:"\f1ce"}.wk-icon-ra:before,.wk-icon-rebel:before{content:"\f1d0"}.wk-icon-empire:before,.wk-icon-ge:before{content:"\f1d1"}.wk-icon-git-square:before{content:"\f1d2"}.wk-icon-git:before{content:"\f1d3"}.wk-icon-hacker-news:before{content:"\f1d4"}.wk-icon-tencent-weibo:before{content:"\f1d5"}.wk-icon-qq:before{content:"\f1d6"}.wk-icon-wechat:before,.wk-icon-weixin:before{content:"\f1d7"}.wk-icon-paper-plane:before,.wk-icon-send:before{content:"\f1d8"}.wk-icon-paper-plane-o:before,.wk-icon-send-o:before{content:"\f1d9"}.wk-icon-history:before{content:"\f1da"}.wk-icon-circle-thin:before,.wk-icon-genderless:before{content:"\f1db"}.wk-icon-header:before{content:"\f1dc"}.wk-icon-paragraph:before{content:"\f1dd"}.wk-icon-sliders:before{content:"\f1de"}.wk-icon-share-alt:before{content:"\f1e0"}.wk-icon-share-alt-square:before{content:"\f1e1"}.wk-icon-bomb:before{content:"\f1e2"}.wk-icon-futbol-o:before,.wk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-icon-tty:before{content:"\f1e4"}.wk-icon-binoculars:before{content:"\f1e5"}.wk-icon-plug:before{content:"\f1e6"}.wk-icon-slideshare:before{content:"\f1e7"}.wk-icon-twitch:before{content:"\f1e8"}.wk-icon-yelp:before{content:"\f1e9"}.wk-icon-newspaper-o:before{content:"\f1ea"}.wk-icon-wifi:before{content:"\f1eb"}.wk-icon-calculator:before{content:"\f1ec"}.wk-icon-paypal:before{content:"\f1ed"}.wk-icon-google-wallet:before{content:"\f1ee"}.wk-icon-cc-visa:before{content:"\f1f0"}.wk-icon-cc-mastercard:before{content:"\f1f1"}.wk-icon-cc-discover:before{content:"\f1f2"}.wk-icon-cc-amex:before{content:"\f1f3"}.wk-icon-cc-paypal:before{content:"\f1f4"}.wk-icon-cc-stripe:before{content:"\f1f5"}.wk-icon-bell-slash:before{content:"\f1f6"}.wk-icon-bell-slash-o:before{content:"\f1f7"}.wk-icon-trash:before{content:"\f1f8"}.wk-icon-copyright:before{content:"\f1f9"}.wk-icon-at:before{content:"\f1fa"}.wk-icon-eyedropper:before{content:"\f1fb"}.wk-icon-paint-brush:before{content:"\f1fc"}.wk-icon-birthday-cake:before{content:"\f1fd"}.wk-icon-area-chart:before{content:"\f1fe"}.wk-icon-pie-chart:before{content:"\f200"}.wk-icon-line-chart:before{content:"\f201"}.wk-icon-lastfm:before{content:"\f202"}.wk-icon-lastfm-square:before{content:"\f203"}.wk-icon-toggle-off:before{content:"\f204"}.wk-icon-toggle-on:before{content:"\f205"}.wk-icon-bicycle:before{content:"\f206"}.wk-icon-bus:before{content:"\f207"}.wk-icon-ioxhost:before{content:"\f208"}.wk-icon-angellist:before{content:"\f209"}.wk-icon-cc:before{content:"\f20a"}.wk-icon-ils:before,.wk-icon-shekel:before,.wk-icon-sheqel:before{content:"\f20b"}.wk-icon-meanpath:before{content:"\f20c"}.wk-icon-buysellads:before{content:"\f20d"}.wk-icon-connectdevelop:before{content:"\f20e"}.wk-icon-dashcube:before{content:"\f210"}.wk-icon-forumbee:before{content:"\f211"}.wk-icon-leanpub:before{content:"\f212"}.wk-icon-sellsy:before{content:"\f213"}.wk-icon-shirtsinbulk:before{content:"\f214"}.wk-icon-simplybuilt:before{content:"\f215"}.wk-icon-skyatlas:before{content:"\f216"}.wk-icon-cart-plus:before{content:"\f217"}.wk-icon-cart-arrow-down:before{content:"\f218"}.wk-icon-diamond:before{content:"\f219"}.wk-icon-ship:before{content:"\f21a"}.wk-icon-user-secret:before{content:"\f21b"}.wk-icon-motorcycle:before{content:"\f21c"}.wk-icon-street-view:before{content:"\f21d"}.wk-icon-heartbeat:before{content:"\f21e"}.wk-icon-venus:before{content:"\f221"}.wk-icon-mars:before{content:"\f222"}.wk-icon-mercury:before{content:"\f223"}.wk-icon-transgender:before{content:"\f224"}.wk-icon-transgender-alt:before{content:"\f225"}.wk-icon-venus-double:before{content:"\f226"}.wk-icon-mars-double:before{content:"\f227"}.wk-icon-venus-mars:before{content:"\f228"}.wk-icon-mars-stroke:before{content:"\f229"}.wk-icon-mars-stroke-v:before{content:"\f22a"}.wk-icon-mars-stroke-h:before{content:"\f22b"}.wk-icon-neuter:before{content:"\f22c"}.wk-icon-facebook-official:before{content:"\f230"}.wk-icon-pinterest-p:before{content:"\f231"}.wk-icon-whatsapp:before{content:"\f232"}.wk-icon-server:before{content:"\f233"}.wk-icon-user-plus:before{content:"\f234"}.wk-icon-user-times:before{content:"\f235"}.wk-icon-bed:before,.wk-icon-hotel:before{content:"\f236"}.wk-icon-viacoin:before{content:"\f237"}.wk-icon-train:before{content:"\f238"}.wk-icon-subway:before{content:"\f239"}.wk-icon-medium-logo:before{content:"\f23a"}.wk-icon-500px:before{content:"\f26e"}.wk-icon-amazon:before{content:"\f270"}.wk-icon-balance-scale:before{content:"\f24e"}.wk-icon-battery-0:before,.wk-icon-battery-empty:before{content:"\f244"}.wk-icon-battery-1:before,.wk-icon-battery-quarter:before{content:"\f243"}.wk-icon-battery-2:before,.wk-icon-battery-half:before{content:"\f242"}.wk-icon-battery-3:before,.wk-icon-battery-three-quarters:before{content:"\f241"}.wk-icon-battery-4:before,.wk-icon-battery-full:before{content:"\f240"}.wk-icon-black-tie:before{content:"\f27e"}.wk-icon-calendar-check-o:before{content:"\f274"}.wk-icon-calendar-minus-o:before{content:"\f272"}.wk-icon-calendar-plus-o:before{content:"\f271"}.wk-icon-calendar-times-o:before{content:"\f273"}.wk-icon-cc-diners-club:before{content:"\f24c"}.wk-icon-cc-jcb:before{content:"\f24b"}.wk-icon-chrome:before{content:"\f268"}.wk-icon-clone:before{content:"\f24d"}.wk-icon-commenting:before{content:"\f27a"}.wk-icon-commenting-o:before{content:"\f27b"}.wk-icon-contao:before{content:"\f26d"}.wk-icon-creative-commons:before{content:"\f25e"}.wk-icon-expeditedssl:before{content:"\f23e"}.wk-icon-firefox:before{content:"\f269"}.wk-icon-fonticons:before{content:"\f280"}.wk-icon-get-pocket:before{content:"\f265"}.wk-icon-gg:before{content:"\f260"}.wk-icon-gg-circle:before{content:"\f261"}.wk-icon-hand-lizard-o:before{content:"\f258"}.wk-icon-hand-paper-o:before,.wk-icon-hand-stop-o:before{content:"\f256"}.wk-icon-hand-peace-o:before{content:"\f25b"}.wk-icon-hand-pointer-o:before{content:"\f25a"}.wk-icon-hand-grab-o:before,.wk-icon-hand-rock-o:before{content:"\f255"}.wk-icon-hand-scissors-o:before{content:"\f257"}.wk-icon-hand-spock-o:before{content:"\f259"}.wk-icon-hourglass:before{content:"\f254"}.wk-icon-hourglass-o:before{content:"\f250"}.wk-icon-hourglass-1:before,.wk-icon-hourglass-start:before{content:"\f251"}.wk-icon-hourglass-2:before,.wk-icon-hourglass-half:before{content:"\f252"}.wk-icon-hourglass-3:before,.wk-icon-hourglass-end:before{content:"\f253"}.wk-icon-houzz:before{content:"\f27c"}.wk-icon-i-cursor:before{content:"\f246"}.wk-icon-industry:before{content:"\f275"}.wk-icon-internet-explorer:before{content:"\f26b"}.wk-icon-map:before{content:"\f279"}.wk-icon-map-o:before{content:"\f278"}.wk-icon-map-pin:before{content:"\f276"}.wk-icon-map-signs:before{content:"\f277"}.wk-icon-mouse-pointer:before{content:"\f245"}.wk-icon-object-group:before{content:"\f247"}.wk-icon-object-ungroup:before{content:"\f248"}.wk-icon-odnoklassniki:before{content:"\f263"}.wk-icon-odnoklassniki-square:before{content:"\f264"}.wk-icon-opencart:before{content:"\f23d"}.wk-icon-opera:before{content:"\f26a"}.wk-icon-optin-monster:before{content:"\f23c"}.wk-icon-registered:before{content:"\f25d"}.wk-icon-safari:before{content:"\f267"}.wk-icon-sticky-note:before{content:"\f249"}.wk-icon-sticky-note-o:before{content:"\f24a"}.wk-icon-television:before,.wk-icon-tv:before{content:"\f26c"}.wk-icon-trademark:before{content:"\f25c"}.wk-icon-tripadvisor:before{content:"\f262"}.wk-icon-vimeo:before{content:"\f27d"}.wk-icon-wikipedia-w:before{content:"\f266"}.wk-icon-y-combinator:before,.wk-icon-yc:before{content:"\f23b"}.wk-icon-y-combinator-square:before,.wk-icon-yc-square:before{content:"\f1d4"}.wk-icon-bluetooth:before{content:"\f293"}.wk-icon-bluetooth-b:before{content:"\f294"}.wk-icon-codiepie:before{content:"\f284"}.wk-icon-credit-card-alt:before{content:"\f283"}.wk-icon-edge:before{content:"\f282"}.wk-icon-fort-awesome:before{content:"\f286"}.wk-icon-hashtag:before{content:"\f292"}.wk-icon-mixcloud:before{content:"\f289"}.wk-icon-modx:before{content:"\f285"}.wk-icon-pause-circle:before{content:"\f28b"}.wk-icon-pause-circle-o:before{content:"\f28c"}.wk-icon-percent:before{content:"\f295"}.wk-icon-product-hunt:before{content:"\f288"}.wk-icon-reddit-alien:before{content:"\f281"}.wk-icon-scribd:before{content:"\f28a"}.wk-icon-shopping-bag:before{content:"\f290"}.wk-icon-shopping-basket:before{content:"\f291"}.wk-icon-stop-circle:before{content:"\f28d"}.wk-icon-stop-circle-o:before{content:"\f28e"}.wk-icon-usb:before{content:"\f287"}.wk-icon-american-sign-language-interpreting:before,.wk-icon-asl-interpreting:before{content:"\f2a3"}.wk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-icon-audio-description:before{content:"\f29e"}.wk-icon-blind:before{content:"\f29d"}.wk-icon-braille:before{content:"\f2a1"}.wk-icon-deaf:before,.wk-icon-deafness:before{content:"\f2a4"}.wk-icon-envira:before{content:"\f299"}.wk-icon-fa:before,.wk-icon-font-awesome:before{content:"\f2b4"}.wk-icon-first-order:before{content:"\f2b0"}.wk-icon-gitlab:before{content:"\f296"}.wk-icon-glide:before{content:"\f2a5"}.wk-icon-glide-g:before{content:"\f2a6"}.wk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-icon-low-vision:before{content:"\f2a8"}.wk-icon-question-circle-o:before{content:"\f29c"}.wk-icon-sign-language:before,.wk-icon-signing:before{content:"\f2a7"}.wk-icon-snapchat:before{content:"\f2ab"}.wk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-icon-snapchat-square:before{content:"\f2ad"}.wk-icon-themeisle:before{content:"\f2b2"}.wk-icon-universal-access:before{content:"\f29a"}.wk-icon-viadeo:before{content:"\f2a9"}.wk-icon-viadeo-square:before{content:"\f2aa"}.wk-icon-volume-control-phone:before{content:"\f2a0"}.wk-icon-wheelchair-alt:before{content:"\f29b"}.wk-icon-wpbeginner:before{content:"\f297"}.wk-icon-wpforms:before{content:"\f298"}.wk-icon-yoast:before{content:"\f2b1"}.wk-icon-adress-book:before{content:"\f2b9"}.wk-icon-adress-book-o:before{content:"\f2ba"}.wk-icon-adress-card:before{content:"\f2bb"}.wk-icon-adress-card-o:before{content:"\f2bc"}.wk-icon-bandcamp:before{content:"\f2d5"}.wk-icon-bath:before,.wk-icon-bathub:before{content:"\f2cd"}.wk-icon-drivers-license:before{content:"\f2c2"}.wk-icon-drivers-license-o:before{content:"\f2c3"}.wk-icon-eercast:before{content:"\f2da"}.wk-icon-envelope-open:before{content:"\f2b6"}.wk-icon-envelope-open-o:before{content:"\f2b7"}.wk-icon-etsy:before{content:"\f2d7"}.wk-icon-free-code-camp:before{content:"\f2c5"}.wk-icon-grav:before{content:"\f2d6"}.wk-icon-handshake-o:before{content:"\f2b5"}.wk-icon-id-badge:before{content:"\f2c1"}.wk-icon-id-card:before{content:"\f2c2"}.wk-icon-id-card-o:before{content:"\f2c3"}.wk-icon-imdb:before{content:"\f2d8"}.wk-icon-linode:before{content:"\f2b8"}.wk-icon-meetup:before{content:"\f2e0"}.wk-icon-microchip:before{content:"\f2db"}.wk-icon-podcast:before{content:"\f2ce"}.wk-icon-quora:before{content:"\f2c4"}.wk-icon-ravelry:before{content:"\f2d9"}.wk-icon-s15:before{content:"\f2cd"}.wk-icon-shower:before{content:"\f2cc"}.wk-icon-snowflake-o:before{content:"\f2dc"}.wk-icon-superpowers:before{content:"\f2dd"}.wk-icon-telegram:before{content:"\f2c6"}.wk-icon-thermometer:before{content:"\f2c7"}.wk-icon-thermometer-0:before{content:"\f2cb"}.wk-icon-thermometer-1:before{content:"\f2ca"}.wk-icon-thermometer-2:before{content:"\f2c9"}.wk-icon-thermometer-3:before{content:"\f2c8"}.wk-icon-thermometer-4:before{content:"\f2c7"}.wk-icon-thermometer-empty:before{content:"\f2cb"}.wk-icon-thermometer-full:before{content:"\f2c7"}.wk-icon-thermometer-half:before{content:"\f2c9"}.wk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-icon-times-rectangle:before{content:"\f2d3"}.wk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-icon-user-circle:before{content:"\f2bd"}.wk-icon-user-circle-o:before{content:"\f2be"}.wk-icon-user-o:before{content:"\f2c0"}.wk-icon-vcard:before{content:"\f2bb"}.wk-icon-vcard-o:before{content:"\f2bc"}.wk-icon-widow-close:before{content:"\f2d3"}.wk-icon-widow-close-o:before{content:"\f2d4"}.wk-icon-window-maximize:before{content:"\f2d0"}.wk-icon-window-minimize:before{content:"\f2d1"}.wk-icon-window-restore:before{content:"\f2d2"}.wk-icon-wpexplorer:before{content:"\f2de"}.wk-close::-moz-focus-inner{border:0;padding:0}.wk-close{margin:0;border:none;font:inherit;color:inherit;padding:0;background:0 0;display:inline-block;box-sizing:content-box;width:20px;line-height:20px;vertical-align:middle;opacity:.3}.wk-container,.wk-modal-dialog,.wk-overlay-area-content,.wk-responsive-height,.wk-responsive-width,.wk-scrollable-box,.wk-thumbnail,[class*=wk-height]{box-sizing:border-box}.wk-close:after{display:block;content:"\f00d";font-family:FontAwesome}.wk-close:focus,.wk-close:hover{opacity:.5;outline:0;color:inherit;text-decoration:none;cursor:pointer}.wk-close-alt{padding:2px;border-radius:50%;background:#fff;opacity:1;box-shadow:0 0 0 1px rgba(0,0,0,.1)}.wk-close-alt:focus,.wk-close-alt:hover{opacity:1}.wk-close-alt:after{opacity:.5}.wk-close-alt:focus:after,.wk-close-alt:hover:after{opacity:.8}.wk-thumbnail{display:inline-block;max-width:100%;margin:0;padding:4px;border:1px solid #e5e5e5;background:#fff;border-radius:2px}a.wk-thumbnail:focus,a.wk-thumbnail:hover{border-color:#ccc;background-color:#fff;text-decoration:none;outline:0}.wk-thumbnail-caption{padding-top:4px;text-align:center;color:#444}.wk-thumbnail-mini{width:150px}.wk-thumbnail-small{width:200px}.wk-thumbnail-medium{width:300px}.wk-thumbnail-large{width:400px}.wk-thumbnail-expand,.wk-thumbnail-expand>img{width:100%}.wk-overlay{max-width:100%;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-overlay-area:empty:before,.wk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-overlay.wk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-overlay-panel a[class*=wk-icon-]:not(.wk-icon-button),.wk-overlay-panel h1,.wk-overlay-panel h2,.wk-overlay-panel h3,.wk-overlay-panel h4,.wk-overlay-panel h5,.wk-overlay-panel h6{color:inherit}.wk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore),.wk-overlay-hover:not(:hover):not(.wk-hover) .wk-overlay-panel:not(.wk-ignore){opacity:0}.wk-overlay-background{background:rgba(255,255,255,.95);color:#444}.wk-overlay-image{padding:0}.wk-overlay-top{bottom:auto}.wk-overlay-bottom{top:auto}.wk-overlay-left{right:auto}.wk-overlay-right{left:auto}.wk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#999}.wk-overlay-blur,.wk-overlay-fade,.wk-overlay-grayscale,.wk-overlay-scale,.wk-overlay-spin,[class*=wk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-overlay-active .wk-overlay-fade,.wk-overlay-active .wk-overlay-scale,.wk-overlay-active .wk-overlay-spin,.wk-overlay-active [class*=wk-overlay-slide]{transition-duration:.8s}.wk-overlay-fade{opacity:.7}.wk-overlay-active .wk-active>.wk-overlay-fade,.wk-overlay-hover.wk-hover .wk-overlay-fade,.wk-overlay-hover:hover .wk-overlay-fade{opacity:1}.wk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-overlay-active .wk-active>.wk-overlay-scale,.wk-overlay-hover.wk-hover .wk-overlay-scale,.wk-overlay-hover:hover .wk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-overlay-active .wk-active>.wk-overlay-spin,.wk-overlay-hover.wk-hover .wk-overlay-spin,.wk-overlay-hover:hover .wk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-overlay-active .wk-active>.wk-overlay-grayscale,.wk-overlay-hover.wk-hover .wk-overlay-grayscale,.wk-overlay-hover:hover .wk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}[class*=wk-overlay-slide]{opacity:0}.wk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-overlay-active .wk-active>[class*=wk-overlay-slide],.wk-overlay-hover.wk-hover [class*=wk-overlay-slide],.wk-overlay-hover:hover [class*=wk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-overlay-area,.wk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-overlay-toggle.wk-hover .wk-overlay-area,.wk-overlay-toggle:hover .wk-overlay-area,.wk-overlay.wk-hover .wk-overlay-area,.wk-overlay:hover .wk-overlay-area{opacity:1}.wk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-overlay-area:not(:empty){font-size:0}.wk-overlay-area:not(:empty):before{content:'';height:100%}.wk-overlay-area-content{width:100%;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-overlay-area-content a:not([class]),.wk-overlay-area-content a:not([class]):hover{color:inherit}.wk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-dropdown,.wk-dropdown-navbar{background:#fff;color:#444;border:1px solid #e5e5e5}.wk-overlay-toggle.wk-hover .wk-overlay-caption,.wk-overlay-toggle:hover .wk-overlay-caption,.wk-overlay.wk-hover .wk-overlay-caption,.wk-overlay:hover .wk-overlay-caption{opacity:1}[class*=wk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{[data-wk-scrollspy*=wk-animation-]:not([data-wk-scrollspy*=target]){opacity:0}}.wk-animation-fade{-webkit-animation-name:wk-fade;animation-name:wk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-animation-scale-up{-webkit-animation-name:wk-fade-scale-02;animation-name:wk-fade-scale-02}.wk-animation-scale-down{-webkit-animation-name:wk-fade-scale-18;animation-name:wk-fade-scale-18}.wk-animation-slide-top{-webkit-animation-name:wk-fade-top;animation-name:wk-fade-top}.wk-animation-slide-bottom{-webkit-animation-name:wk-fade-bottom;animation-name:wk-fade-bottom}.wk-animation-slide-left{-webkit-animation-name:wk-fade-left;animation-name:wk-fade-left}.wk-animation-slide-right{-webkit-animation-name:wk-fade-right;animation-name:wk-fade-right}.wk-animation-scale{-webkit-animation-name:wk-scale-12;animation-name:wk-scale-12}.wk-animation-shake{-webkit-animation-name:wk-shake;animation-name:wk-shake}.wk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-animation-hover:not(:hover),.wk-animation-hover:not(:hover) [class*=wk-animation-],.wk-touch .wk-animation-hover:not(.wk-hover),.wk-touch .wk-animation-hover:not(.wk-hover) [class*=wk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes wk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes wk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes wk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes wk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes wk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes wk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes wk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-dropdown,.wk-dropdown-blank{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px}.wk-dropdown{padding:15px;font-size:1rem;vertical-align:top;border-radius:2px}.wk-dropdown:focus{outline:0}.wk-open>.wk-dropdown,.wk-open>.wk-dropdown-blank{display:block;-webkit-animation:wk-fade .2s ease-in-out;animation:wk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-dropdown-top{margin-top:-5px}.wk-dropdown-bottom{margin-top:5px}.wk-dropdown-left{margin-left:-5px}.wk-dropdown-right{margin-left:5px}.wk-dropdown .wk-nav{margin:0 -15px}.wk-dropdown-grid>[class*=wk-width-]>.wk-panel+.wk-panel,.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2),.wk-grid .wk-dropdown-grid+.wk-dropdown-grid{margin-top:15px}@media (min-width:768px){.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid{margin-left:-15px;margin-right:-15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]{padding-left:15px;padding-right:15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-dropdown-width-2:not(.wk-dropdown-stack){width:400px}.wk-dropdown-width-3:not(.wk-dropdown-stack){width:600px}.wk-dropdown-width-4:not(.wk-dropdown-stack){width:800px}.wk-dropdown-width-5:not(.wk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){margin-top:15px}}.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-small{min-width:150px;width:auto;padding:5px}.wk-dropdown-small .wk-nav{margin:0 -5px}.wk-dropdown-navbar{margin-top:6px;left:-1px;border-radius:2px}.wk-open>.wk-dropdown-navbar{-webkit-animation:wk-slide-top-fixed .2s ease-in-out;animation:wk-slide-top-fixed .2s ease-in-out}.wk-dropdown-scrollable{overflow-y:auto;max-height:200px}.wk-dropdown-navbar.wk-dropdown-flip{left:auto}.wk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.8);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.wk-modal-page,.wk-modal-page body,.wk-nbfc,.wk-text-truncate{overflow:hidden}.wk-modal.wk-open{opacity:1}.wk-modal-dialog{position:relative;margin:50px auto;padding:20px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-modal-dialog{width:auto;margin:10px auto}}.wk-open .wk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-modal-dialog>:not([class*=wk-modal-]):last-child{margin-bottom:0}.wk-modal-dialog>.wk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-modal-dialog>.wk-close:first-child+:not([class*=wk-modal-]){margin-top:0}.wk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-modal-dialog-lightbox>.wk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-modal-dialog-lightbox>.wk-close:first-child{top:-7px;right:-7px}}.wk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-modal-dialog-blank>.wk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-modal-dialog-large{width:930px}}.wk-modal-header{margin-bottom:15px}.wk-modal-footer{margin-top:15px}.wk-modal-footer>:last-child,.wk-modal-header>:last-child{margin-bottom:0}.wk-modal-caption{position:absolute;left:0;right:0;bottom:-20px;margin-bottom:-10px;color:#fff;text-align:center;overflow:hidden;text-overflow:ellipsis}.wk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.wk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-clearfix:after,.wk-clearfix:before,.wk-container:after,.wk-container:before{content:""}.wk-switcher{margin:0;padding:0}.wk-switcher>:not(.wk-active){display:none}.wk-text-small{font-size:11px;line-height:16px}.wk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-text-bold{font-weight:700}.wk-text-muted{color:#999!important}.wk-text-primary{color:#37a5e4!important}.wk-text-success{color:#80c96d!important}.wk-text-warning{color:#ff9a2e!important}.wk-text-danger{color:#f0615b!important}.wk-text-contrast{color:#fff!important}.wk-text-left{text-align:left!important}.wk-text-right{text-align:right!important}.wk-text-center{text-align:center!important}.wk-text-justify{text-align:justify!important}.wk-text-top{vertical-align:top!important}.wk-text-middle{vertical-align:middle!important}.wk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-text-center-medium{text-align:center!important}.wk-text-left-medium{text-align:left!important}}.wk-text-truncate{text-overflow:ellipsis}.wk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-text-capitalize{text-transform:capitalize!important}.wk-text-lowercase{text-transform:lowercase!important}.wk-text-uppercase{text-transform:uppercase!important}.wk-container{max-width:980px;padding:0 25px}@media (min-width:1220px){.wk-modal-dialog-large{width:1130px}.wk-container{max-width:1200px;padding:0 35px}}.wk-container:after,.wk-container:before{display:table}.wk-container-center{margin-left:auto;margin-right:auto}.wk-clearfix:before{display:table-cell}.wk-clearfix:after{display:table}.wk-nbfc-alt{display:table-cell;width:10000px}.wk-float-left{float:left}.wk-float-right{float:right}[class*=wk-float-]{max-width:100%}[class*=wk-align-]{display:block;margin-bottom:20px}.wk-align-left{margin-right:20px;float:left}.wk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-align-medium-left{margin-right:20px;float:left}.wk-align-medium-right{margin-left:20px;float:right}}.wk-align-center{margin-left:auto;margin-right:auto}.wk-vertical-align{font-size:0}.wk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-vertical-align-bottom,.wk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-vertical-align-middle{vertical-align:middle}.wk-vertical-align-bottom{vertical-align:bottom}.wk-height-1-1{height:100%}.wk-height-viewport{height:100vh;min-height:600px}.wk-responsive-width{max-width:100%!important;height:auto}.wk-responsive-height{max-height:100%;width:auto}.wk-margin{margin-bottom:20px}*+.wk-margin{margin-top:20px}.wk-margin-top{margin-top:20px!important}.wk-margin-bottom{margin-bottom:20px!important}.wk-margin-left{margin-left:20px!important}.wk-margin-right{margin-right:20px!important}.wk-margin-large{margin-bottom:25px}*+.wk-margin-large{margin-top:25px}.wk-margin-large-top{margin-top:25px!important}.wk-margin-large-bottom{margin-bottom:25px!important}.wk-margin-large-left{margin-left:25px!important}.wk-margin-large-right{margin-right:25px!important}.wk-margin-small{margin-bottom:5px}*+.wk-margin-small{margin-top:5px}.wk-margin-small-top{margin-top:5px!important}.wk-margin-small-bottom{margin-bottom:5px!important}.wk-margin-small-left{margin-left:5px!important}.wk-margin-small-right{margin-right:5px!important}.wk-margin-remove{margin:0!important}.wk-margin-top-remove{margin-top:0!important}.wk-margin-bottom-remove{margin-bottom:0!important}.wk-overflow-container>:last-child,.wk-scrollable-box>:last-child{margin-bottom:0}.wk-padding-remove{padding:0!important}.wk-padding-top-remove{padding-top:0!important}.wk-padding-bottom-remove{padding-bottom:0!important}.wk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-border-circle{border-radius:50%}.wk-border-rounded{border-radius:5px}.wk-heading-large{font-size:36px;line-height:42px}.wk-link-muted,.wk-link-muted a,.wk-link-muted a:hover,.wk-link-muted:hover{color:#444}.wk-link-reset,.wk-link-reset a,.wk-link-reset a:focus,.wk-link-reset a:hover,.wk-link-reset:focus,.wk-link-reset:hover{color:inherit;text-decoration:none}.wk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-scrollable-box{height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-overflow-hidden{overflow:hidden}.wk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-dotnav>*>*,.wk-slider-container,.wk-slideshow{overflow:hidden}.wk-position-absolute,[class*=wk-position-top],[class*=wk-position-bottom]{position:absolute!important}.wk-position-top{top:0;left:0;right:0}.wk-position-bottom{bottom:0;left:0;right:0}.wk-position-top-left{top:0;left:0}.wk-position-top-right{top:0;right:0}.wk-position-bottom-left{bottom:0;left:0}.wk-position-bottom-right{bottom:0;right:0}.wk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-position-relative{position:relative!important}.wk-position-z-index{z-index:1}.wk-display-block{display:block!important}.wk-display-inline{display:inline!important}.wk-display-inline-block{display:inline-block!important;max-width:100%}@media (min-width:960px){.wk-hidden-large,.wk-visible-medium,.wk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-hidden-medium,.wk-visible-large,.wk-visible-small{display:none!important}}@media (max-width:767px){.wk-text-center-small{text-align:center!important}.wk-text-left-small{text-align:left!important}.wk-hidden-small,.wk-visible-large,.wk-visible-medium{display:none!important}}.wk-hidden{display:none!important;visibility:hidden!important}.wk-invisible{visibility:hidden!important}.wk-visible-hover:hover .wk-hidden,.wk-visible-hover:hover .wk-invisible{display:block!important;visibility:visible!important}.wk-visible-hover-inline:hover .wk-hidden,.wk-visible-hover-inline:hover .wk-invisible{display:inline-block!important;visibility:visible!important}.wk-notouch .wk-hidden-notouch,.wk-touch .wk-hidden-touch{display:none!important}.wk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-flex-inline>*,.wk-flex>*{-ms-flex-negative:1}.wk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-heading-large{font-size:52px;line-height:64px}.wk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1220px){.wk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-dotnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-top:-15px;padding:0}.wk-dotnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:15px;margin-top:15px;float:left}.wk-dotnav:after,.wk-dotnav:before{content:"";display:block;overflow:hidden}.wk-dotnav>*>*{display:block;box-sizing:content-box;width:20px;height:20px;border-radius:50%;background:rgba(50,50,50,.1);text-indent:100%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wk-dotnav>*>:focus,.wk-dotnav>*>:hover{background:rgba(50,50,50,.4);outline:0}.wk-dotnav>*>:active{background:rgba(50,50,50,.6)}.wk-dotnav>.wk-active>*{background:rgba(50,50,50,.4);-webkit-transform:scale(1.3);transform:scale(1.3)}.wk-dotnav-contrast>*>*{background:rgba(255,255,255,.4)}.wk-dotnav-contrast>*>:focus,.wk-dotnav-contrast>*>:hover{background:rgba(255,255,255,.7)}.wk-dotnav-contrast>*>:active,.wk-dotnav-contrast>.wk-active>*{background:rgba(255,255,255,.9)}.wk-dotnav-vertical{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-dotnav-vertical>*{float:none}.wk-slidenav{display:inline-block;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.wk-slider-fullscreen,.wk-slider-fullscreen>li,.wk-slideshow-fullscreen,.wk-slideshow-fullscreen>li{height:100vh}.wk-slidenav:focus,.wk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.wk-slidenav:active{color:rgba(50,50,50,.9)}.wk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.wk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.wk-slidenav-position{position:relative}.wk-slidenav-position .wk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.wk-slider,.wk-slideshow{z-index:0;touch-action:pan-y}.wk-slidenav-position:hover .wk-slidenav{display:block}.wk-slidenav-position .wk-slidenav-previous{left:20px}.wk-slidenav-position .wk-slidenav-next{right:20px}.wk-slidenav-contrast{color:rgba(255,255,255,.5)}.wk-slidenav-contrast:focus,.wk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.wk-slidenav-contrast:active{color:rgba(255,255,255,.9)}.wk-accordion-title{margin-top:0;margin-bottom:20px;padding:5px 20px;background:#eee;font-size:18px;line-height:24px;cursor:pointer}.wk-accordion-content{padding:0 20px 20px}.wk-slider:not(.wk-grid),.wk-slideshow{margin:0;padding:0;list-style:none}.wk-accordion-content:after,.wk-accordion-content:before{content:"";display:table}.wk-accordion-content>:last-child{margin-bottom:0}[data-wk-slider]{direction:ltr}html[dir=rtl] .wk-slider>*{direction:rtl}.wk-slider{position:relative}.wk-slider>*{position:absolute;top:0;left:0}.wk-slider:not(.wk-drag){-webkit-transition:-webkit-transform .2s linear;transition:transform .2s linear}.wk-slider.wk-drag{cursor:col-resize;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.wk-slider a,.wk-slider img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}.wk-slider img{pointer-events:none}.wk-slideshow{position:relative;width:100%}.wk-slideshow>li{position:absolute;top:0;left:0;width:100%;opacity:0}.wk-slideshow>.wk-active{z-index:10;opacity:1}.wk-slideshow>li>img{visibility:hidden}[data-wk-slideshow-slide]{cursor:pointer}.wk-slideshow-fade-in{-webkit-animation:wk-fade .5s linear;animation:wk-fade .5s linear}.wk-slideshow-fade-out{-webkit-animation:wk-fade .5s linear reverse;animation:wk-fade .5s linear reverse}.wk-slideshow-scroll-forward-in{-webkit-animation:wk-slide-right .5s ease-in-out;animation:wk-slide-right .5s ease-in-out}.wk-slideshow-scroll-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-scroll-backward-in{-webkit-animation:wk-slide-left .5s ease-in-out;animation:wk-slide-left .5s ease-in-out}.wk-slideshow-scroll-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-scale-out{-webkit-animation:wk-fade-scale-15 .5s ease-in-out reverse;animation:wk-fade-scale-15 .5s ease-in-out reverse}.wk-slideshow-swipe-forward-in{-webkit-animation:wk-slide-left-33 .5s ease-in-out;animation:wk-slide-left-33 .5s ease-in-out}.wk-slideshow-swipe-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in{-webkit-animation:wk-slide-right-33 .5s ease-in-out;animation:wk-slide-right-33 .5s ease-in-out}.wk-slideshow-swipe-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in:before,.wk-slideshow-swipe-forward-in:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;background:rgba(0,0,0,.6);-webkit-animation:wk-fade .5s ease-in-out reverse;animation:wk-fade .5s ease-in-out reverse}

widgetkit/uikit2-bd59cb62.js000064400000240265152177723720011550 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2)return window.UIkit2;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-uk-margin], [data-uk-grid-match], [data-uk-grid-margin], [data-uk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="uk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/uk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".uk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-uk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"uk-touch":"uk-notouch"),i.support.touch){var n,o=!1,s="uk-hover",a=".uk-overlay, .uk-overlay-hover, .uk-overlay-toggle, .uk-animation-hover, .uk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"uk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-uk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.uk-responsive-width, [data-uk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"uk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-uk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-uk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-uk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"uk-scrollspy-inview",initcls:"uk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-uk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-uk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-uk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("uk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("uk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"uk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-uk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-uk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"uk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-uk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-uk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("uk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" uk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("uk-hidden"))})}})}(UIkit2),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".uk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-uk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-uk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-uk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-uk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-uk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-uk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-uk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-uk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("uk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("uk-active")])})},toggle:function(){this.element.toggleClass("uk-active"),this.element.attr("aria-pressed",this.element.hasClass("uk-active"))}})}(UIkit2),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".uk-dropdown,.uk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-uk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-uk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("uk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("uk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("uk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("uk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("uk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("uk-open")?(!i.dropdown.find(e.target).length||n.is(".uk-dropdown-close")||n.parents(".uk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".uk-dropdown-close")||o.parents(".uk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("uk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("uk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("uk-dropdown-top uk-dropdown-bottom uk-dropdown-left uk-dropdown-right uk-dropdown-stack uk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("uk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("uk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("uk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-uk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-uk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("uk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="uk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("uk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("uk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-uk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"uk-grid-margin",rowfirst:"uk-row-first"},boot:function(){t.ready(function(i){t.$("[data-uk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-uk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".uk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".uk-modal.uk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".uk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("uk-open")),this.on("click",".uk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".uk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("uk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("uk-open")):(this.element.addClass("uk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("uk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("uk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".uk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("uk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("uk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("uk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-uk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-uk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="uk-modal"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-button-primary uk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="uk-modal-content uk-form">'+String(i)+"</div>":"",'<div class="uk-margin-small-top uk-modal-content uk-form"><p><input type="text" class="uk-width-1-1"></p></div>','<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-modal-close">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i||'<div class="uk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".uk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.uk-parent > a[href="#"]',lists:">li.uk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-uk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-uk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("uk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("uk-hidden"))),n.attr("aria-expanded",n.hasClass("uk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".uk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("uk-open").end().addClass("uk-hidden")})}),a.toggleClass("uk-open"),a.attr("aria-expanded",a.hasClass("uk-open")),r&&(a.hasClass("uk-open")&&r.removeClass("uk-hidden"),n?(r.stop().height(a.hasClass("uk-open")?"auto":0),a.hasClass("uk-open")||r.addClass("uk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("uk-open")?i(r.find("ul:first")):0},function(){a.hasClass("uk-open")?r.css("height",""):r.addClass("uk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".uk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("uk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("uk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("uk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("uk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".uk-offcanvas.uk-active"),a="right"==t.langdirection,r=s.find(".uk-offcanvas-bar:first"),l=function(){o.removeClass("uk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("uk-active"),r.removeClass("uk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("uk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".uk-offcanvas-bar:first").length)return}else if(!e.hasClass("uk-offcanvas-close")){if(e.hasClass("uk-offcanvas-bar"))return;if(e.parents(".uk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-uk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-uk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-uk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("uk-active "+r+" uk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" uk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("uk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-uk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-uk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-uk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-uk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("uk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".uk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("uk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".uk-active").removeClass("uk-active"),r.addClass("uk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".uk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("uk-active"),o.addClass("uk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["uk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["uk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["uk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["uk-animation-slide-top","uk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["uk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["uk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["uk-animation-slide-right","uk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["uk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.uk-tab-responsive, .uk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-uk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-uk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("uk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("uk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="uk-tab-responsive uk-active"><a></a></li>').append('<div class="uk-dropdown uk-dropdown-small"><ul class="uk-nav uk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".uk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("uk-tab-bottom")&&this.responsivetab.dropdown.addClass("uk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.uk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.uk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".uk-tab-responsive").filter(".uk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.uk-tab-responsive)").removeClass("uk-hidden");if(!i.length)return this.responsivetab.addClass("uk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("uk-dropdown")||(e.hasClass("uk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("uk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("uk-hidden")}})}(UIkit2),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-uk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-uk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-notify",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";var e={},i={},s=function(e){return"string"==t.$.type(e)&&(e={message:e}),arguments[1]&&(e=t.$.extend(e,"string"==t.$.type(arguments[1])?{status:arguments[1]}:arguments[1])),new n(e).show()},o=function(t,e){var s;if(t)for(s in i)t===i[s].group&&i[s].close(e);else for(s in i)i[s].close(e)},n=function(s){this.options=t.$.extend({},n.defaults,s),this.uuid=t.Utils.uid("notifymsg"),this.element=t.$(['<div class="uk-notify-message">','<a class="uk-close"></a>',"<div></div>","</div>"].join("")).data("notifyMessage",this),this.content(this.options.message),this.options.status&&(this.element.addClass("uk-notify-message-"+this.options.status),this.currentstatus=this.options.status),this.group=this.options.group,i[this.uuid]=this,e[this.options.pos]||(e[this.options.pos]=t.$('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo("body").on("click",".uk-notify-message",function(){var e=t.$(this).data("notifyMessage");e.element.trigger("manualclose.uk.notify",[e]),e.close()}))};return t.$.extend(n.prototype,{uuid:!1,element:!1,timout:!1,currentstatus:"",group:!1,show:function(){if(!this.element.is(":visible")){var t=this;e[this.options.pos].show().prepend(this.element);var i=parseInt(this.element.css("margin-bottom"),10);return this.element.css({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0}).animate({opacity:1,marginTop:0,marginBottom:i},function(){if(t.options.timeout){var e=function(){t.close()};t.timeout=setTimeout(e,t.options.timeout),t.element.hover(function(){clearTimeout(t.timeout)},function(){t.timeout=setTimeout(e,t.options.timeout)})}}),this}},close:function(t){var s=this,o=function(){s.element.remove(),e[s.options.pos].children().length||e[s.options.pos].hide(),s.options.onClose.apply(s,[]),s.element.trigger("close.uk.notify",[s]),delete i[s.uuid]};this.timeout&&clearTimeout(this.timeout),t?o():this.element.animate({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0},function(){o()})},content:function(t){var e=this.element.find(">div");return t?(e.html(t),this):e.html()},status:function(t){return t?(this.element.removeClass("uk-notify-message-"+this.currentstatus).addClass("uk-notify-message-"+t),this.currentstatus=t,this):this.currentstatus}}),n.defaults={message:"",status:"",timeout:5e3,group:null,pos:"top-center",onClose:function(){}},t.notify=s,t.notify.message=n,t.notify.closeAll=o,s});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var s;window.UIkit2&&(s=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-nestable",["uikit"],function(){return s||t(UIkit2)})}(function(t){"use strict";var s,e="ontouchstart"in window||"MSGesture"in window||window.PointerEvent,i=t.$html,l=[],a=t.$win,n=e?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",o=e?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",h=e?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup",r=e?"MSGesture"in window||window.PointerEvent?"pointercancel":"touchcancel":"mouseup";return t.component("nestable",{defaults:{listBaseClass:"uk-nestable",listClass:"uk-nestable-list",listItemClass:"uk-nestable-item",dragClass:"uk-nestable-dragged",movingClass:"uk-nestable-moving",noChildrenClass:"uk-nestable-nochildren",emptyClass:"uk-nestable-empty",handleClass:"",collapsedClass:"uk-collapsed",placeholderClass:"uk-nestable-placeholder",noDragClass:"uk-nestable-nodrag",group:!1,maxDepth:10,threshold:20,idlethreshold:10},boot:function(){t.$html.on("mousemove touchmove",function(){if(s){var e=s.offset().top;e<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/2)):e+s.height()>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/2))}}),t.ready(function(s){t.$("[data-uk-nestable]",s).each(function(){var s=t.$(this);s.data("nestable")||t.nestable(s,t.Utils.options(s.attr("data-uk-nestable")))})})},init:function(){var i=this;Object.keys(this.options).forEach(function(t){-1!=String(t).indexOf("Class")&&(i.options["_"+t]="."+i.options[t])}),this.find(this.options._listItemClass).find(">ul").addClass(this.options.listClass),this.checkEmptyList(),this.reset(),this.element.data("nestable-group",this.options.group||t.Utils.uid("nestable-group")),this.find(this.options._listItemClass).each(function(){i.setParent(t.$(this))}),this.on("click","[data-nestable-action]",function(s){if(!i.dragEl&&(e||0===s.button)){s.preventDefault();var l=t.$(s.currentTarget),a=l.data("nestableAction"),n=l.closest(i.options._listItemClass);"collapse"===a&&i.collapseItem(n),"expand"===a&&i.expandItem(n),"toggle"===a&&i.toggleItem(n)}});var l=function(s){var l=t.$(s.target),a=l.is("a[href]")?l:l.parents("a[href]");s.target!==i.element[0]&&(l.is(i.options._noDragClass)||l.closest(i.options._noDragClass).length||l.is("[data-nestable-action]")||l.closest("[data-nestable-action]").length||(i.options.handleClass&&!l.hasClass(i.options.handleClass)&&i.options.handleClass&&(l=l.closest(i.options._handleClass)),!l.length||i.dragEl||!e&&0!==s.button||e&&s.touches&&1!==s.touches.length||(s.originalEvent&&s.originalEvent.touches&&(s=evt.originalEvent.touches[0]),i.delayMove=function(t){a=!1,t.preventDefault(),i.dragStart(s),i.trigger("start.uk.nestable",[i]),i.delayMove=!1},i.delayMove.x=parseInt(s.pageX,10),i.delayMove.y=parseInt(s.pageY,10),i.delayMove.threshold=i.options.idlethreshold,a.length&&"touchend"==h&&i.one(h,function(){a&&a.attr("href").trim()&&(location.href=a.attr("href"))}),s.preventDefault())))},d=function(t){t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i.delayMove&&(Math.abs(t.pageX-i.delayMove.x)>i.delayMove.threshold||Math.abs(t.pageY-i.delayMove.y)>i.delayMove.threshold)&&(window.getSelection().toString()?i.delayMove=!1:i.delayMove(t)),i.dragEl&&(t.preventDefault(),i.dragMove(t),i.trigger("move.uk.nestable",[i]))},p=function(t){i.dragEl&&(t.preventDefault(),i.dragStop(e&&t.touches?t.touches[0]:t)),s=!1,i.delayMove=!1};e?(this.element[0].addEventListener(n,l,!1),window.addEventListener(o,d,!1),window.addEventListener(h,p,!1),window.addEventListener(r,p,!1)):(this.on(n,l),a.on(o,d),a.on(h,p))},serialize:function(){var s,e=0,i=this,l=function(s,e){var a=[],n=s.children(i.options._listItemClass);return n.each(function(){for(var s,n,o,h=t.$(this),r={},d=h.children(i.options._listClass),p=0;p<h[0].attributes.length;p++)s=h[0].attributes[p],0===s.name.indexOf("data-")&&(n=s.name.substr(5),o=t.Utils.str2json(s.value),r[n]=o||"false"==s.value||"0"==s.value?o:s.value);d.length&&(r.children=l(d,e+1)),a.push(r)}),a};return s=l(i.element,e)},list:function(s){var e=[],i=this,l=0,a=function(i,l,n){var o=i.children(s._listItemClass);o.each(function(i){var o=t.$(this),h=t.$.extend({parent_id:n?n:null,depth:l,order:i},o.data()),r=o.children(s._listClass);e.push(h),r.length&&a(r,l+1,o.data(s.idProperty||"id"))})};return s=t.$.extend({},i.options,s),a(i.element,l),e},reset:function(){this.mouse={offsetX:0,offsetY:0,startX:0,startY:0,lastX:0,lastY:0,nowX:0,nowY:0,distX:0,distY:0,dirAx:0,dirX:0,dirY:0,lastDirX:0,lastDirY:0,distAxX:0,distAxY:0},this.moving=!1,this.dragEl=null,this.dragRootEl=null,this.dragDepth=0,this.hasNewRoot=!1,this.pointEl=null;for(var t=0;t<l.length;t++)this.checkEmptyList(l[t]);l=[]},toggleItem:function(t){this[t.hasClass(this.options.collapsedClass)?"expandItem":"collapseItem"](t)},expandItem:function(t){t.removeClass(this.options.collapsedClass)},collapseItem:function(t){var s=t.children(this.options._listClass);s.length&&t.addClass(this.options.collapsedClass)},expandAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.expandItem(t.$(this))})},collapseAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.collapseItem(t.$(this))})},setParent:function(t){t.children(this.options._listClass).length&&t.addClass("uk-parent")},unsetParent:function(t){t.removeClass("uk-parent "+this.options.collapsedClass),t.children(this.options._listClass).remove()},dragStart:function(e){var l=this.mouse,a=t.$(e.target),n=a.closest(this.options._listItemClass),o=n.offset();this.placeEl=n,l.offsetX=e.pageX-o.left,l.offsetY=e.pageY-o.top,l.startX=l.lastX=o.left,l.startY=l.lastY=o.top,this.dragRootEl=this.element,this.dragEl=t.$("<ul></ul>").addClass(this.options.listClass+" "+this.options.dragClass).append(n.clone()),this.dragEl.css("width",n.width()),this.placeEl.addClass(this.options.placeholderClass),s=this.dragEl,this.tmpDragOnSiblings=[n[0].previousSibling,n[0].nextSibling],t.$body.append(this.dragEl),this.dragEl.css({left:o.left,top:o.top});var h,r,d=this.dragEl.find(this.options._listItemClass);for(h=0;h<d.length;h++)r=t.$(d[h]).parents(this.options._listClass+","+this.options._listBaseClass).length,r>this.dragDepth&&(this.dragDepth=r);i.addClass(this.options.movingClass)},dragStop:function(){var s=t.$(this.placeEl),e=this.placeEl.parents(this.options._listBaseClass+":first");this.placeEl.removeClass(this.options.placeholderClass),this.dragEl.remove(),this.element[0]!==e[0]?(e.trigger("change.uk.nestable",[e.data("nestable"),s,"added"]),this.element.trigger("change.uk.nestable",[this,s,"removed"])):this.element.trigger("change.uk.nestable",[this,s,"moved"]),this.trigger("stop.uk.nestable",[this,s]),this.reset(),i.removeClass(this.options.movingClass)},dragMove:function(s){var e,i,a,n,o,h=this.options,r=this.mouse,d=this.dragRootEl?this.dragRootEl.data("nestable").options.maxDepth:h.maxDepth;this.dragEl.css({left:s.pageX-r.offsetX,top:s.pageY-r.offsetY}),r.lastX=r.nowX,r.lastY=r.nowY,r.nowX=s.pageX,r.nowY=s.pageY,r.distX=r.nowX-r.lastX,r.distY=r.nowY-r.lastY,r.lastDirX=r.dirX,r.lastDirY=r.dirY,r.dirX=0===r.distX?0:r.distX>0?1:-1,r.dirY=0===r.distY?0:r.distY>0?1:-1;var p=Math.abs(r.distX)>Math.abs(r.distY)?1:0;if(!r.moving)return r.dirAx=p,r.moving=!0,void 0;if(r.dirAx!==p?(r.distAxX=0,r.distAxY=0):(r.distAxX+=Math.abs(r.distX),0!==r.dirX&&r.dirX!==r.lastDirX&&(r.distAxX=0),r.distAxY+=Math.abs(r.distY),0!==r.dirY&&r.dirY!==r.lastDirY&&(r.distAxY=0)),r.dirAx=p,r.dirAx&&r.distAxX>=h.threshold&&(r.distAxX=0,a=this.placeEl.prev("li"),r.distX>0&&a.length&&!a.hasClass(h.collapsedClass)&&!a.hasClass(h.noChildrenClass)&&(e=a.find(h._listClass).last(),o=this.placeEl.parents(h._listClass+","+h._listBaseClass).length,o+this.dragDepth<=d&&(e.length?(e=a.children(h._listClass).last(),e.append(this.placeEl)):(e=t.$("<ul/>").addClass(h.listClass),e.append(this.placeEl),a.append(e),this.setParent(a)))),r.distX<0&&(n=this.placeEl.next(h._listItemClass),!n.length))){var c=this.placeEl.closest([h._listBaseClass,h._listClass].join(",")),u=c.closest(h._listItemClass);u.length&&(u.after(this.placeEl),c.children().length||this.unsetParent(u))}var g=!1,f=s.pageX-(window.pageXOffset||document.scrollLeft||0),m=s.pageY-(window.pageYOffset||document.documentElement.scrollTop);if(this.pointEl=t.$(document.elementFromPoint(f,m)),h.handleClass&&this.pointEl.hasClass(h.handleClass))this.pointEl=this.pointEl.closest(h._listItemClass);else{var v=this.pointEl.closest(h._listItemClass);v.length&&(this.pointEl=v)}if(!this.placeEl.find(this.pointEl).length){if(this.pointEl.data("nestable")&&!this.pointEl.children().length)g=!0,this.checkEmptyList(this.pointEl);else if(!this.pointEl.length||!this.pointEl.hasClass(h.listItemClass))return;var C=this.element,E=this.pointEl.closest(this.options._listBaseClass),w=C[0]!=E[0];if(!r.dirAx||w||g){if(w&&h.group!==E.data("nestable-group"))return;if(l.push(C),o=this.dragDepth-1+this.pointEl.parents(h._listClass+","+h._listBaseClass).length,o>d)return;var b=s.pageY<this.pointEl.offset().top+this.pointEl.height()/2;i=this.placeEl.parent(),g?this.pointEl.append(this.placeEl):b?this.pointEl.before(this.placeEl):this.pointEl.after(this.placeEl),i.children().length||i.data("nestable")||this.unsetParent(i.parent()),this.checkEmptyList(this.dragRootEl),this.checkEmptyList(C),w&&(this.dragRootEl=E,this.hasNewRoot=this.element[0]!==this.dragRootEl[0])}}},checkEmptyList:function(s){s=s?t.$(s):this.element,this.options.emptyClass&&s[s.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.nestable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-sortable",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";function e(e){e=t.$(e);do{if(e.data("sortable"))return e;e=t.$(e).parent()}while(e.length);return e}function o(t,e){var o=t.parentNode;if(e.parentNode!=o)return!1;for(var n=t.previousSibling;n&&9!==n.nodeType;){if(n===e)return!0;n=n.previousSibling}return!1}function n(t,e){var o=e;if(o==t)return null;for(;o;){if(o.parentNode===t)return o;if(o=o.parentNode,!o||!o.ownerDocument||11===o.nodeType)break}return null}function a(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}var s,r,i,l,d,h,u,p,c,f,g,m="ontouchstart"in window||"MSGesture"in window||window.DocumentTouch&&document instanceof DocumentTouch,v=m?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",b=m?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",C=m?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup";return t.component("sortable",{defaults:{animation:150,threshold:10,childClass:"uk-sortable-item",placeholderClass:"uk-sortable-placeholder",overClass:"uk-sortable-over",draggingClass:"uk-sortable-dragged",dragMovingClass:"uk-sortable-moving",baseClass:"uk-sortable",noDragClass:"uk-sortable-nodrag",emptyClass:"uk-sortable-empty",dragCustomClass:"",handleClass:!1,group:!1,stop:function(){},start:function(){},change:function(){}},boot:function(){t.ready(function(e){t.$("[data-uk-sortable]",e).each(function(){var e=t.$(this);e.data("sortable")||t.sortable(e,t.Utils.options(e.attr("data-uk-sortable")))})}),t.$html.on(b,function(e){if(u){var o=e.originalEvent.targetTouches?e.originalEvent.targetTouches[0]:e;(Math.abs(o.pageX-u.pos.x)>u.threshold||Math.abs(o.pageY-u.pos.y)>u.threshold)&&u.apply(o)}if(s){d||(d=!0,s.show(),s.$current.addClass(s.$sortable.options.placeholderClass),s.$sortable.element.children().addClass(s.$sortable.options.childClass),t.$html.addClass(s.$sortable.options.dragMovingClass));var n=s.data("mouse-offset"),a=e.originalEvent.touches&&e.originalEvent.touches[0]||e.originalEvent,r=parseInt(a.pageX,10)+n.left,i=parseInt(a.pageY,10)+n.top;if(s.css({left:r,top:i}),i+s.height()/3>document.body.offsetHeight)return;i<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/3)):i+s.height()/3>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/3))}}),t.$html.on(C,function(t){if(u=h=!1,!r||!s)return r=s=null,void 0;var o=e(r),n=s.$sortable,a={type:t.type};o[0]&&n.dragDrop(a,n.element),n.dragEnd(a,n.element)})},init:function(){function e(){m&&g.touches&&g.touches.length?h.addEventListener(b,y,!1):(h.addEventListener("mouseover",$,!1),h.addEventListener("mouseout",w,!1))}function o(){m&&g.touches&&g.touches.length?h.removeEventListener(b,y,!1):(h.removeEventListener("mouseover",$,!1),h.removeEventListener("mouseout",w,!1))}function s(t){r&&d.dragMove(t,d)}function l(e){return function(o){var a,s,r;if(g=o,o){if(a=o.touches&&o.touches[0]||o,s=a.target||o.target,m&&document.elementFromPoint){var i=document.elementFromPoint(a.pageX-document.body.scrollLeft,a.pageY-document.body.scrollTop);i&&(s=i)}f=t.$(s)}t.$(s).hasClass("."+d.options.childClass)?e.apply(s,[o]):s!==h&&(r=n(h,s),r&&e.apply(r,[o]))}}var d=this,h=this.element[0];p=[],this.checkEmptyList(),this.element.data("sortable-group",this.options.group?this.options.group:t.Utils.uid("sortable-group"));var u=l(function(e){if(!e.data||!e.data.sortable){var o=t.$(e.target),n=o.is("a[href]")?o:o.parents("a[href]");if(!o.is(":input")){if(d.options.handleClass){var a=o.hasClass(d.options.handleClass)?o:o.closest("."+d.options.handleClass,d.element);if(!a.length)return}return e.preventDefault(),n.length&&n.one("click",function(t){t.preventDefault()}).one(C,function(){c||(n.trigger("click"),m&&n.attr("href").trim()&&(location.href=n.attr("href")))}),e.data=e.data||{},e.data.sortable=h,d.dragStart(e,this)}}}),$=l(t.Utils.debounce(function(t){return d.dragEnter(t,this)}),40),w=l(function(){var e=d.dragenterData(this);d.dragenterData(this,e-1),d.dragenterData(this)||(t.$(this).removeClass(d.options.overClass),d.dragenterData(this,!1))}),y=l(function(t){return r&&r!==this&&i!==this?(d.element.children().removeClass(d.options.overClass),i=this,d.moveElementNextTo(r,this),a(t)):!0});this.addDragHandlers=e,this.removeDragHandlers=o,window.addEventListener(b,s,!1),h.addEventListener(v,u,!1)},dragStart:function(e,o){c=!1,d=!1,l=!1;var n=this,a=t.$(e.target);if((m||2!=e.button)&&!a.is("."+n.options.noDragClass)){var i=a.closest("."+n.options.noDragClass);if(!(i.length&&this.element.find(i[0]).length||a.is(":input"))){r=o,s&&s.remove();var h=t.$(r),p=h.offset(),f=e.touches&&e.touches[0]||e;u={pos:{x:f.pageX,y:f.pageY},threshold:n.options.handleClass?1:n.options.threshold,apply:function(){s=t.$('<div class="'+[n.options.draggingClass,n.options.dragCustomClass].join(" ")+'"></div>').css({display:"none",top:p.top,left:p.left,width:h.width(),height:h.height(),padding:h.css("padding")}).data({"mouse-offset":{left:p.left-parseInt(f.pageX,10),top:p.top-parseInt(f.pageY,10)},origin:n.element,index:h.index()}).append(h.html()).appendTo("body"),s.$current=h,s.$sortable=n,h.data({"start-list":h.parent(),"start-index":h.index(),"sortable-group":n.options.group}),n.addDragHandlers(),n.options.start(this,r),n.trigger("start.uk.sortable",[n,r,s]),c=!0,u=!1}}}}},dragMove:function(e){f=t.$(document.elementFromPoint(e.pageX-(document.body.scrollLeft||document.scrollLeft||0),e.pageY-(document.body.scrollTop||document.documentElement.scrollTop||0)));var o,n=f.closest("."+this.options.baseClass),a=n.data("sortable-group"),s=t.$(r),i=s.parent(),l=s.data("sortable-group");n[0]!==i[0]&&void 0!==l&&a===l&&(n.data("sortable").addDragHandlers(),p.push(n),n.children().addClass(this.options.childClass),n.children().length>0?(o=f.closest("."+this.options.childClass),o.length?o.before(s):n.append(s)):f.append(s),t.$doc.trigger("mouseover")),this.checkEmptyList(),this.checkEmptyList(i)},dragEnter:function(e,o){if(!r||r===o)return!0;var n=this.dragenterData(o);if(this.dragenterData(o,n+1),0===n){var a=t.$(o).parent(),s=t.$(r).data("start-list");if(a[0]!==s[0]){var i=a.data("sortable-group"),l=t.$(r).data("sortable-group");if((i||l)&&i!=l)return!1}t.$(o).addClass(this.options.overClass),this.moveElementNextTo(r,o)}return!1},dragEnd:function(e,o){var n=this;r&&(this.options.stop(o),this.trigger("stop.uk.sortable",[this])),r=null,i=null,p.push(this.element),p.forEach(function(e){t.$(e).children().each(function(){1===this.nodeType&&(t.$(this).removeClass(n.options.overClass).removeClass(n.options.placeholderClass).removeClass(n.options.childClass),n.dragenterData(this,!1))})}),p=[],t.$html.removeClass(this.options.dragMovingClass),this.removeDragHandlers(),s&&(s.remove(),s=null)},dragDrop:function(t){"drop"===t.type&&(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()),this.triggerChangeEvents()},triggerChangeEvents:function(){if(r){var e=t.$(r),o=s.data("origin"),n=e.closest("."+this.options.baseClass),a=[],i=t.$(r);o[0]===n[0]&&s.data("index")!=e.index()?a.push({sortable:this,mode:"moved"}):o[0]!=n[0]&&a.push({sortable:t.$(n).data("sortable"),mode:"added"},{sortable:t.$(o).data("sortable"),mode:"removed"}),a.forEach(function(t){t.sortable&&t.sortable.element.trigger("change.uk.sortable",[t.sortable,i,t.mode])})}},dragenterData:function(e,o){return e=t.$(e),1==arguments.length?parseInt(e.data("child-dragenter"),10)||0:(o?e.data("child-dragenter",Math.max(0,o)):e.removeData("child-dragenter"),void 0)},moveElementNextTo:function(e,n){l=!0;var a=this,s=t.$(e).parent().css("min-height",""),r=o(e,n)?n:n.nextSibling,i=s.children(),d=i.length;return a.options.animation?(s.css("min-height",s.height()),i.stop().each(function(){var e=t.$(this),o=e.position();o.width=e.width(),e.data("offset-before",o)}),n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),i=s.children().each(function(){var e=t.$(this);e.data("offset-after",e.position())}).each(function(){var e=t.$(this),o=e.data("offset-before");e.css({position:"absolute",top:o.top,left:o.left,minWidth:o.width})}),i.each(function(){var e=t.$(this),o=(e.data("offset-before"),e.data("offset-after"));e.css("pointer-events","none").width(),setTimeout(function(){e.animate({top:o.top,left:o.left},a.options.animation,function(){e.css({position:"",top:"",left:"",minWidth:"","pointer-events":""}).removeClass(a.options.overClass).removeData("child-dragenter"),d--,d||(s.css("min-height",""),t.Utils.checkDisplay(a.element.parent()))})},0)}),void 0):(n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),void 0)},serialize:function(){var e,o,n=[];return this.element.children().each(function(a,s){e={};for(var r,i,l=0;l<s.attributes.length;l++)o=s.attributes[l],0===o.name.indexOf("data-")&&(r=o.name.substr(5),i=t.Utils.str2json(o.value),e[r]=i||"false"==o.value||"0"==o.value?i:o.value);n.push(e)}),n},checkEmptyList:function(e){e=e?t.$(e):this.element,this.options.emptyClass&&e[e.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.sortable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2&&(t=e(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-upload",["uikit"],function(){return t||e(UIkit2)})}(function(e){"use strict";function t(o,a){function r(t,n){var o=new FormData,a=new XMLHttpRequest;if(n.before(n,t)!==!1){for(var r,i=0;r=t[i];i++)o.append(n.param,r);for(var l in n.params)o.append(l,n.params[l]);a.upload.addEventListener("progress",function(e){var t=e.loaded/e.total*100;n.progress(t,e)},!1),a.addEventListener("loadstart",function(e){n.loadstart(e)},!1),a.addEventListener("load",function(e){n.load(e)},!1),a.addEventListener("loadend",function(e){n.loadend(e)},!1),a.addEventListener("error",function(e){n.error(e)},!1),a.addEventListener("abort",function(e){n.abort(e)},!1),a.open(n.method,n.action,!0),"json"==n.type&&a.setRequestHeader("Accept","application/json");for(var s in n.headers)a.setRequestHeader(s,n.headers[s]);a.onreadystatechange=function(){if(n.readystatechange(a),4==a.readyState){var t=a.responseText;if("json"==n.type)try{t=e.$.parseJSON(t)}catch(o){t=!1}n.complete(t,a)}},n.beforeSend(a),a.send(o)}}if(!e.support.ajaxupload)return this;if(a=e.$.extend({},t.defaults,a),o.length){if("*.*"!==a.allow)for(var i,l=0;i=o[l];l++)if(!n(a.allow,i.name))return"string"==typeof a.notallowed?alert(a.notallowed):a.notallowed(i,a),void 0;var s=a.complete;if(a.single){var d=o.length,f=0,p=!0;a.beforeAll(o),a.complete=function(e,t){f+=1,s(e,t),a.filelimit&&f>=a.filelimit&&(p=!1),p&&d>f?r([o[f]],a):a.allcomplete(e,t)},r([o[0]],a)}else a.complete=function(e,t){s(e,t),a.allcomplete(e,t)},r(o,a)}}function n(e,t){var n="^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$";return n="^"+n+"$",null!==t.match(new RegExp(n,"i"))}return e.component("uploadSelect",{init:function(){var e=this;this.on("change",function(){t(e.element[0].files,e.options);var n=e.element.clone(!0).data("uploadSelect",e);e.element.replaceWith(n),e.element=n})}}),e.component("uploadDrop",{defaults:{dragoverClass:"uk-dragover"},init:function(){var e=this,n=!1;this.on("drop",function(n){n.originalEvent.dataTransfer&&n.originalEvent.dataTransfer.files&&(n.stopPropagation(),n.preventDefault(),e.element.removeClass(e.options.dragoverClass),e.element.trigger("dropped.uk.upload",[n.originalEvent.dataTransfer.files]),t(n.originalEvent.dataTransfer.files,e.options))}).on("dragenter",function(e){e.stopPropagation(),e.preventDefault()}).on("dragover",function(t){t.stopPropagation(),t.preventDefault(),n||(e.element.addClass(e.options.dragoverClass),n=!0)}).on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),e.element.removeClass(e.options.dragoverClass),n=!1})}}),e.support.ajaxupload=function(){function e(){var e=document.createElement("INPUT");return e.type="file","files"in e}function t(){var e=new XMLHttpRequest;return!!(e&&"upload"in e&&"onprogress"in e.upload)}function n(){return!!window.FormData}return e()&&t()&&n()}(),t.defaults={action:"",single:!0,method:"POST",param:"files[]",params:{},allow:"*.*",type:"text",filelimit:!1,headers:{},before:function(){},beforeSend:function(){},beforeAll:function(){},loadstart:function(){},load:function(){},loadend:function(){},error:function(){},abort:function(){},progress:function(){},complete:function(){},allcomplete:function(){},readystatechange:function(){},notallowed:function(e,t){alert("Only the following file types are allowed: "+t.allow)}},e.Utils.xhrupload=t,t});

widgetkit/wk-scripts-3b8ba74f.js000064400000124234152177723720012444 0ustar00!function(e){function t(e,t){var i=jQuery.Deferred(),n=document.createElement("script");return n.async=!0,n.onload=function(){i.resolve(),t&&t(n)},n.onerror=function(){i.reject(e)},n.src=e,document.getElementsByTagName("head")[0].appendChild(n),i.promise()}angular.module("Fields",[]).directive("fieldMedia",["mediaPicker","mediaInfo",function(e,t){function i(i){var a=this;a.selectMedia=function(){e.select().then(function(e){i.media=e.url,i.height=e.height,i.width=e.width,i.title||(i.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}))})},a.selectPoster=function(){e.select().then(function(e){i.options||(i.options={}),i.options.poster=e.url})},a.isVideo=function(e){return!(!e||!(e.match(/\.(mp4|ogv|webm)$/)||e.match(/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i)||e.match(/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i)||e.match(/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i)))},i.$watch("media",function(){return i.options&&!angular.isArray(i.options)||(i.options={}),n[i.media]?(i.options.width=n[i.media].width,void(i.options.height=n[i.media].height)):void t(i.media,!0).then(function(e){i.height="",i.width="",Object.keys(n).length>0&&i.options.iframe&&!n[i.media]&&(i.options.iframe.width="",i.options.iframe.height=""),e.type&&(i.options.width=e.width,i.options.height=e.height,i.options.type=e.type,n[i.media]=e)})},!0),i.$watch("options.iframe",function(){i.options.iframe&&(i.options.width=i.options.iframe.width,i.options.height=i.options.iframe.height)},!0)}var n={};return{scope:{media:"=",options:"=?",title:"=?"},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                          <i class="uk-icon-photo"></i><input class="uk-width-1-1" ng-model="media">                                      </div>                                      <button class="uk-button" ng-click="vm.selectMedia()">Select</button>                                  </div>                                  <div class="uk-grid uk-margin-top">                                      <div class="uk-width-small-1-2">                                          <div class="uk-overlay">                                              <media-preview src="{{ media }}"></media-preview>                                              <div class="uk-overlay-panel uk-overlay-bottom uk-panel uk-panel-box" ng-show="options.type === \'iframe\'">                                                  <div class="uk-grid uk-grid-small uk-grid-width-1-3 uk-margin-small-top">                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-h"></i><input class="uk-width-1-1" type="text" title="Width" ng-model="options.iframe.width" placeholder="width"></div>                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-v"></i><input class="uk-width-1-1" type="text" title="Height" ng-model="options.iframe.height" placeholder="height"></div>                                                  </div>                                              </div>                                          </div>                                      </div>                                      <div class="uk-width-small-1-2" ng-show="vm.isVideo(media)">                                          <div class="uk-margin-small-bottom" ng-show="options.poster"><media-preview src="{{ options.poster }}"></media-preview></div>                                          <a ng-click="vm.selectPoster()">Select Poster</button>                                          <a class="uk-margin-small-left" ng-show="options.poster" ng-click="(options.poster = \'\')">Reset</a>                                      </div>                                  </div>                               </div>'}}]).directive("fieldWysiwygeditor",["$timeout","mediaPicker","mediaInfo",function(e,t,i){return{restrict:"EA",require:"?ngModel",template:'<div><textarea name="wk_{{id}}" id="wk_{{id}}"></textarea></div>',link:function(i,n,a,o){if(window.tinyMCE){i.id=String(Math.ceil(1e3*Math.random()));var r=jQuery,l="wk_"+i.id,s=function(){var e,n,a=window.tinyMCE||window.WFEditor;window.WFEditor&&r("#"+l).after('<input type="hidden" id="wf_'+i.id+'_token" value="'+Math.random()+'">'),"object"==typeof Joomla&&(n=Joomla.getOptions&&Joomla.getOptions("plg_editor_tinymce",{}));var s=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar1||a.settings&&a.settings.toolbar1||"",d=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar2||a.settings&&a.settings.toolbar2||"",c=n&&n.tinyMCE&&n.tinyMCE["default"].plugins||a.settings&&a.settings.plugins||"";!window.wp||s&&d&&c||(c||(c="charmap,colorpicker,hr,lists,media,paste,tabfocus,textcolor,fullscreen,wordpress,wpautoresize,wpeditimage,wpemoji,wpgallery,wplink,wpdialogs,wptextpattern,wpview"),s||(s="bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_more,spellchecker,dfw,wp_adv"),d||(d="formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help")),s.indexOf("wk_media")==-1&&(s+=" wk_media"),window.wp||window.WFEditor||s.indexOf("button-2Article")!=-1||(s+=" button-2Article"),window.wp||window.WFEditor||c.indexOf("jArticleButton")!=-1||(c+=" jArticleButton"),e=r.extend({},n&&n.tinyMCE&&n.tinyMCE["default"]||a.settings,{menubar:!1,plugins:c,toolbar1:s,toolbar2:d,width:"100%",height:500,relative_urls:n&&n.tinyMCE&&n.tinyMCE["default"].relative_urls||a.settings&&a.settings.relative_urls||!1,setup:function(e){e.addButton("wk_media",{text:"",icon:"image",onclick:function(){window.wp?t.select({editor:l}):t.select().then(function(t){var i=t.href,n=t.title,a=t.width,o=t.height;e.insertContent('<img src="'+i+'" alt="'+n+'" data-mce-src="'+i+'" width="'+a+'" height="'+o+'"></img>')})}}),4==tinyMCE.majorVersion?(e.on("change",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("input",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("init",function(){e.setContent(o.$viewValue||"")})):(e.onChange.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onKeyUp.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onInit.add(function(){e.setContent(o.$viewValue||"")}))}});var u=new tinyMCE.Editor(l,e,tinyMCE.EditorManager);u.render(),o.$render=function(){try{u.setContent(o.$viewValue||""),r("#"+l).val(o.$viewValue||"")}catch(e){}},o.$render()};e(s)}}}}]).directive("fieldHtmleditor",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/assets/lib/codemirror/codemirror.js").then(function(){t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/htmleditor.min.js").then(function(){o.resolve()})})),o.promise()}var o;return{restrict:"EA",require:"?ngModel",link:function(t,n,o,r){a().then(function(){var a,l=jQuery("<textarea></textarea>"),s={mdparser:function(){}};s=jQuery.extend(!0,{},s,t.$eval(o.options)),n.after(l).hide();var d=function(){r.$render=function(){l.data("htmleditor")&&l.data("htmleditor").editor.setValue(r.$viewValue||"")},setTimeout(function(){a=e.htmleditor(l,s),a.editor.on("change",e.Utils.debounce(function(){r.$setViewValue(a.editor.getValue()),t.$root.$$phase||t.$apply()},50)),a.fit(),r.$render()})};i(d)})}}}]).directive("fieldLocation",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/plugins/widgets/map/assets/marker-helper.js").then(function(){o.resolve()})),o.promise()}var o,r=0,l=function(){var e,t=function(){if(!e){e=n.defer();var t=document.createElement("script");t.async=!0,t.onload=function(){google.load("maps","3",{other_params:"libraries=places&key="+(window.GOOGLE_MAPS_API_KEY||""),callback:function(){google&&google.maps.places&&e.resolve()}})},t.onerror=function(){alert("Failed loading google maps api.")},t.src="https://www.google.com/jsapi",document.getElementsByTagName("head")[0].appendChild(t)}return e.promise};return t}();return{restrict:"EA",require:"?ngModel",scope:{latlng:"@"},replace:!0,template:'<div>                                    <div class="uk-alert uk-margin-small-bottom" ng-if="!APIKEY">Please add your custom Google Maps API Key in the <a href="'+widgetkit.config.settingsPage+'">Widgetkit settings</a>!</div>                                    <div class="uk-grid uk-grid-small">                                         <div class="uk-form uk-form-icon uk-margin-small-bottom uk-width-3-5">                                            <i class="uk-icon-search"></i><input class="uk-width-1-1">                                        </div>                                        <div class="uk-form uk-form-horizontal uk-margin-small-bottom uk-width-2-5">                                            <input class="uk-width-1-1" type="text" placeholder="Custom marker: URL or #000" ng-model="latlng.marker">                                        </div>                                    </div>                                    <div class="js-map" style="min-height:300px;">                                     Loading map...                                     </div>                                     <div class="uk-text-small uk-margin-small-top">LAT: <span class="uk-text-muted">{{ latlng.lat }}</span> LNG: <span class="uk-text-muted">{{ latlng.lng }}</span> <span ng-if="latlng.place">PLACE: <span class="uk-text-muted">{{ latlng.place.name }}</span></span></div>                                </div>',link:function(t,n,o,s){function d(e){var n=jQuery.extend({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1},s.$viewValue,e);s.$setViewValue(n),t.latlng=n,i(function(){t.$apply()})}var c;a().then(function(){l().then(function(){i(function(){var i,a,o,l="wk-location-"+ ++r,u=new google.maps.LatLng(53.55909862554551,9.998652343749995);t.latlng=s.$viewValue||{lat:u.lat(),lng:u.lng(),marker:"",place:!1},void 0===t.latlng.marker&&(t.latlng.marker=""),n.find(".js-map").attr("id",l),i=new google.maps.Map(document.getElementById(l),{zoom:6,center:u}),c=new google.maps.Marker({position:u,map:i,draggable:!0}),MapsMarkerHelper.setIcon(c,t.latlng.marker),google.maps.event.addListener(c,"dragend",function(){var e=c.getPosition();d({lat:e.lat(),lng:e.lng(),place:!1}),a.value=""}),e.$win.on("resize",function(){google.maps.event.trigger(i,"resize"),i.setCenter(c.getPosition())}),a=n.find("input")[0],o=new google.maps.places.Autocomplete(a),o.bindTo("bounds",i),google.maps.event.addListener(o,"place_changed",function(){var e=o.getPlace();if(e.geometry){e.geometry.viewport?i.fitBounds(e.geometry.viewport):i.setCenter(e.geometry.location),c.setPosition(e.geometry.location),a.value="";var t=c.getPosition();d({lat:t.lat(),lng:t.lng(),place:e})}}),google.maps.event.addDomListener(a,"keydown",function(e){13==e.keyCode&&e.preventDefault()}),t.$watch("latlng.marker",function(e){e&&d({marker:e}),MapsMarkerHelper.setIcon(c,e)}),s.$render=function(){try{if(s.$viewValue&&s.$viewValue.lat&&s.$viewValue.lng){var e=new google.maps.LatLng(s.$viewValue.lat,s.$viewValue.lng);c.setPosition(e),i.setCenter(e),s.$viewValue.marker!==t.latlng.marker&&d({marker:s.$viewValue.marker}),MapsMarkerHelper.setIcon(c,latlng.marker)}else d({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1})}catch(n){}},s.$render()})})}),t.APIKEY=window.GOOGLE_MAPS_API_KEY||""}}}]).directive("fieldPathpicker",["mediaPicker","mediaInfo",function(e,t){function i(t){var i=this;i.selectPath=function(){filetypes=/\.*$/i,e.select({allowedFiletypes:filetypes}).then(function(e){t.path=e.url})},t.$watch("path",function(e){t.path=e},!0)}return{scope:{path:"="},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                        <i class="uk-icon-paperclip"></i><input class="uk-width-1-1" ng-model="path">                                      </div>                                      <button class="uk-button" ng-click="vm.selectPath()">Select</button>                                  </div>                               </div>'}}]).directive("fieldDate",["$timeout","$q",function(e,i){function n(){return a||(a=jQuery.Deferred(),t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/datepicker.min.js").then(function(){a.resolve()})),a.promise()}var a;return{restrict:"E",require:"?ngModel",scope:{date:"@"},template:'<div class="uk-form-icon">                                  <i class="uk-icon-calendar"></i>                                  <input type="text" ng-model="date" data-uk-datepicker="{container: \'.wk-noconflict\'}">                               </div>',link:function(t,i,a,o){n().then(function(){function i(i){o.$setViewValue(i),t.date=i,e(function(){t.$apply()})}t.date=o.$viewValue||"",t.$watch("date",function(e){i(e)}),o.$render=function(){try{i(o.$viewValue)}catch(e){}},o.$render()}),window.MooTools&&(i.find("input")[0].hide=function(){return!1})}}}]).factory("Fields",function(){var e={text:{label:"Text",template:function(e,t){var i=angular.element('<input class="uk-width-1-1" type="text"  ng-model="'+e+'">').attr(t.attributes||{});return t&&t.icon&&(i=i.wrap('<div class="uk-form-icon uk-width-1-1"></div>').before('<i class="uk-icon-'+t.icon+'"></i>').parent()),i}},textarea:{label:"Textarea",template:function(e,t){return angular.element('<textarea id="wk-content" class="uk-width-1-1" ng-model="'+e+'" rows="10"></textarea>').attr(t.attributes||{})}},editor:{label:"Editor",template:function(e,t){var i=window.tinyMCE&&window.WK_SYSTEM_EDITOR?"wysiwygeditor":"htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},htmleditor:{label:"HTML Editor",template:function(e,t){var i="htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},tags:{label:"Tags",template:function(e,t){return angular.element('<div class="uk-form-icon uk-width-1-1"><i class="uk-icon-tags"></i><input class="uk-width-1-1" type="text" ng-list ng-model="'+e+'" placeholder="tag, tag, ..."></div><div>').find("input").attr(t.attributes||{}).parent()}},"boolean":{label:"Boolean",template:function(e,t){return angular.element('<input type="checkbox" ng-model="'+e+'">').attr(t.attributes||{})}},media:{label:"Media",template:function(e,t){return'<field-media media="'+e+'"></field-media>'}},pathpicker:{label:"Pathpicker",template:function(e,t){return'<field-pathpicker path="'+e+'"></field-pathpicker>'}},location:{label:"Location",template:function(e,t){return'<field-location  ng-model="'+e+'"></field-location>'}},date:{label:"Date",template:function(e,t){return'<field-date ng-model="'+e+'"></field-date>'}}};return{register:function(t,i){e[t]=angular.extend({label:t,assets:[],template:function(){}},i)},exists:function(t){return!!e[t]},get:function(t){return e[t]},fields:function(){var t=[];return Object.keys(e).forEach(function(i){t.push({name:i,label:e[i].label})}),t}}}).directive("field",["$timeout","$compile","Fields",function(e,t,i){return{require:"?ngModel",restrict:"E",link:function(n,a,o,r){var l=function(){var e=angular.extend({},JSON.parse(o.options||"{}")),r=o.type||"text";if(i.exists(r)){var l,s=i.get(r);l=s.template(o.ngModel,e),l.then?l.then(function(e){t(a.html(e).contents())(n)}):t(a.html(l).contents())(n)}else t(a.html(i.get("text").template(o.ngModel)).contents())(n)};e(l)}}}])}(window.UIkit2||window.UIkit2wk);

angular.module("widgetkit",["Application","ngResource","ngTouch","Fields"]).value("name","widgetkit").value("UIkit",window.UIkit2||window.UIkit2wk).factory("Content",["$resource","Application",function(e,t){return e(t.url("/content/:id"),{},{query:{method:"GET",responseType:"json"},save:{method:"POST",responseType:"json"}})}]).filter("supported",["Application",function(e){return function(t,i){return i?t.filter(function(t){var o=e.config.types[t.type],r=i.item.filter(function(e){if(o.item.indexOf(e)!==-1)return!0}).length;return r==i.item.length}):t}}]).filter("ucwords",["Application",function(e){return function(e){return e.replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()})}}]).service("mediaInfo",["Application","$q",function(e,t){return function(i,o){i=i||"";var r,n,a={url:i,type:"",src:i&&!i.match(/^(https?:)?\//)?e.baseUrl()+"/"+i:i,provider:null,image:e.config.images.placeholder,width:null,height:null};if(i.match(/\.(jpe?g|png|gif|svg)$/i)?(a.type="image",a.image=a.src):i.match(/\.(mp3|ogg|wav)$/)?(a.type="audio",a.image=e.config.images.audio):i.match(/\.(mp4|ogv|webm)$/)?(a.type="video",a.image=e.config.images.video):(r=/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i.exec(i))?(a.provider="vimeo",a.type="iframe",a.src="//player.vimeo.com/video/"+r[2],a.image=e.config.images.iframe):((r=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i.exec(i))||(r=/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i.exec(i)))&&(a.provider="youtube",a.type="iframe",a.src="//www.youtube.com/embed/"+r[2]+r[3].replace(/^&/,"?"),a.image="//img.youtube.com/vi/"+r[2]+"/hqdefault.jpg"),o)switch(n=t.defer(),a.type){case"image":var u=new Image;u.onerror=function(){n.resolve(a)},u.onload=function(){a.width=u.width,a.height=u.height,n.resolve(a)},u.src=a.src;break;case"video":var c=angular.element('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",a.src).appendTo("body"),s=setInterval(function(){c[0].videoWidth&&(clearInterval(s),a.width=c[0].videoWidth,a.height=c[0].videoHeight,c.remove(),n.resolve(a))},20);break;case"iframe":"vimeo"==a.provider&&jQuery.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(a.url),jsonp:"callback",dataType:"jsonp",success:function(e){a.width=e.width,a.height=e.height,n.resolve(a)}}).fail(function(){n.resolve(a)}),"youtube"==a.provider&&jQuery.ajax({type:"GET",url:"//query.yahooapis.com/v1/public/yql",data:{q:"select * from json where url ='http://www.youtube.com/oembed?url="+encodeURI(a.url)+"'",format:"json"},dataType:"jsonp",success:function(e){if(e&&e.query&&e.query.results&&e.query.results.json){var t=jQuery(e.query.results.json.html);a.width=t.attr("width"),a.height=t.attr("height")}n.resolve(a)}}).fail(function(){n.resolve(a)});break;default:n.resolve(a)}return o?n.promise:a}}]).factory("httpInterceptor",["$q","UIkit",function(e,t){return{responseError:function(i){var o;return o=i.data&&i.data.message?i.data.message:i.statusText,t.notify(o,"danger"),e.reject(i)}}}]).config(["$httpProvider","$sceProvider",function(e,t){e.interceptors.push("httpInterceptor"),t.enabled(!1)}]),document.addEventListener("DOMContentLoaded",function(){jQuery("body").on("show.uk.modal",function(e){var t=jQuery(e.target);t.hasClass("uk-modal")&&t.data("modal")&&t.addClass("wk-noconflict")})});

!function(t,n){angular.module("widgetkit").run(["$rootScope","$rootElement","$timeout","$filter",function(e,o,a,i){function s(){r.find("#toolbar-apply button, #toolbar-save button").prop("disabled",o.find("form.ng-invalid").length)}n.parent.document.updateUploader=n.parent.document.updateUploader||function(){};var l=t("body.com_widgetkit"),c=l.find(".header .container-title").append('<h1 class="page-title"><span class="icon-widgetkit"></span>Widgetkit: <span></span></h1>').find(".page-title span").eq(1),r=l.find(".subhead .btn-toolbar"),p='<div class="btn-wrapper" id="toolbar-create"><button class="btn btn-small btn-success"></span>'+i("trans")("New")+"</button></div>",d='<div class="btn-wrapper" id="toolbar-apply"><button class="btn btn-small btn-success"><span class="icon-apply icon-white"></span> '+i("trans")("Save")+'</button></div>                           <div class="btn-wrapper" id="toolbar-save"><button class="btn btn-small"><span class="icon-save"></span> '+i("trans")("Save & Close")+'</button></div>                           <div class="btn-wrapper" id="toolbar-cancel"><button class="btn btn-small"><span class="icon-cancel"></span> '+i("trans")("Close")+"</button></div>",u='<div class="btn-wrapper" id="toolbar-options"><button class="btn btn-small"><span class="icon-options"></span> '+i("trans")("Options")+"</button></div>";r.on("click","#toolbar-create button",function(){o.scope().vm.createContent()}).on("click","#toolbar-apply",function(){o.scope().vm.saveContent()}).on("click","#toolbar-save",function(){var t=o.scope();t.vm.saveContent().$promise.then(function(){t.vm.setView("content")})}).on("click","#toolbar-cancel",function(){var t=o.scope();t.vm.setView("content"),t.$apply()}).on("click","#toolbar-options",function(){location.href="index.php?option=com_config&view=component&component=com_widgetkit"}),l.on("keyup",'[ng-model="content.name"]',s),e.$on("wk.change.view",function(t,n){a(function(){c.text(o.find("h2.js-header").text()),r.empty().html("content"==n?p:"contentEdit"==n?d:"").append(u),s()})})}]),t(function(){t(document).on("click",'[rel="widgetkit"], [aria-label="Widgetkit"]',function(e){e.preventDefault(),e.stopPropagation();for(var o=t(this);o.length&&!o.has("textarea").length;)o=o.parent();n.widgetkit.env.editor(o.find("textarea:first"))});var e=t(".view-module .widgetkit-widget, #modules-form .widgetkit-widget, #module-form .widgetkit-widget"),o=e.nextAll("input"),a={value:function(){try{return JSON.parse(o.val())}catch(t){return{}}},update:function(){var t=this.value().name;e.text(t?Translator.trans("Widget: %widget%",{widget:t}):Translator.trans("Select Widget"))}};e.on("click",function(t){t.preventDefault(),n.widgetkit.env.init("widget",a.value(),function(t){o.val(JSON.stringify(t)),a.update()})}),a.update()}),t(function(){if(n.MooTools){var e=Element.prototype.hide;Element.prototype.hide=function(){return t(this).is('[class*="uk-"]')?this:e.apply(this,[])}}})}(jQuery,window);

!function(e){function t(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}angular.module("widgetkit").service("mediaPicker",["$templateCache","$compile","$q","$rootScope","filterFilter","UIkit","mediaRequest","Application",function(n,i,o,r,l,c,a,d){var s,u,f,p,m,h,g=/\.(jpe?g|png|gif|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)$/i,w=!1,v={init:function(l){return l&&l.allowedFiletypes&&(w=l.allowedFiletypes),this.options=angular.extend({multiple:!1},l),m=o.defer(),u=e(n.get("media")),f=u.data("media-path"),p=i(u)(r).scope(),p.vm=this,p.selectItem=function(n,i){if(i.shiftKey&&h){t();for(var o,r=e(i.target).closest("li"),l=r.parent().children(),c=r.index()>h.index()?1:-1,a=1===c?h.index():r.index(),d=1===c?r.index():h.index(),s=a;s<=d;s++)o=l.eq(s).scope(),o[o.folder?"folder":"file"].selected=!0}else n.selected=!n.selected;h=e(i.target).closest("li")},this.open("").then(function(){if(window.widgetkit.env.modal){var t=window.widgetkit.env.modal.element.children(":first").hide();v.close=function(){t.show(),u.remove()},t.parent().append(u)}else v.modal=c.modal(e('<div class="uk-modal">').append(u).appendTo("body")).show(),v.close=function(){v.modal.hide()},c.domObserve(v.modal.element);v.initUpload()}),m.promise},initUpload:function(){var t=e("#wk-upload-progressbar"),n=t.find(".uk-progress-bar"),i={param:"Filedata[]",params:{"Content-Type":"multipart/form-data"},allow:"*.(jpeg|jpg|gif|png|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)",before:function(e,t){e.action=a.url({task:"file.upload",tmpl:"component",format:"html",folder:s},!0)},loadstart:function(){n.css("width","0%").text("0%"),t.removeClass("uk-hidden")},progress:function(e){e=Math.ceil(e)+"%",n.css("width",e).text(e)},allcomplete:function(i){n.css("width","100%").text("100%"),e(i).find(".alert-message").each(function(t,n){c.notify(e(n).text(),"danger")}),setTimeout(function(){t.addClass("uk-hidden")},250),v.open(s)}};c.uploadSelect(e("#wk-upload-select"),i),c.uploadDrop(u,i)},open:function(t){return a.get({view:"mediaList",tmpl:"component",folder:t,layout:"details"}).success(function(n){h=null,p.media=[],p.breadcrumbs=[];var i=e(n).find("tbody tr");".."==i.first().find(".description").text().trim()&&(i=i.not(i[0])),i.each(function(){var n=e(this),i=n.find("td:first a").length?n.find("td:first a"):n.find("td:nth-child(2) a"),o=n.find("td :checkbox").val(),r=n.find("td.dimensions").text().trim().split(" x "),l=(t?t+"/":"")+o;p.media.push({title:o,path:l,url:(f?f+"/":"")+l,href:d.baseUrl()+"/"+(f?f+"/":"")+l,type:i.is("[target]")?"folder":"file",media:Boolean(l.match(g)),width:r[0],height:r[1],size:n.find("td.filesize").text().trim()})}),s=t;var o=(s?"/"+s:"").split("/");do p.breadcrumbs.unshift({path:o.join("/").substr(1),title:o.pop()});while(o.length);p.breadcrumbs[0].title="home"})},select:function(){var t=this.options,n=v.getSelected(),i=[],o=[],r=function(e){return e.replace(/[_-]/g," ").replace(/\.[^\.]+$/,"").replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1)})};if(n.forEach(function(e){e.media||w&&e.path.match(w)?(e.title=r(e.title),o.push(e)):i.push(e)}),i.length){var l=[];i.forEach(function(t){var n=new Promise(function(n,i){a.get({view:"mediaList",tmpl:"component",folder:t.title,layout:"details"}).success(function(i){var l=e(i).find("tbody tr");".."==l.first().find(".description").text().trim()&&(l=l.not(l[0])),l.each(function(){var n=e(this),i=n.find("td:first a"),l=n.find("td :checkbox").val(),c=n.find("td.dimensions").text().trim().split(" x "),a=(t.title?t.title+"/":"")+l;if(a.match(g)){var s={title:r(l),path:a,url:(f?f+"/":"")+a,href:d.baseUrl()+"/"+(f?f+"/":"")+a,type:i.is("[target]")?"folder":"file",media:Boolean(a.match(g)),width:c[0],height:c[1],size:n.find("td.filesize").text().trim()};o.push(s)}}),n()})});l.push(n)}),Promise.all(l).then(function(){m.resolve(t.multiple||!o.length?o:o[0]),v.close()})}else m.resolve(this.options.multiple||!o.length?o:o[0]),v.close()},addFolder:function(){var e=prompt("Folder Name");e&&a.post({task:"folder.create",foldername:e,folderbase:s}).success(function(){v.open(s)})},remove:function(){window.confirm("Are you sure?")&&a.post({task:"folder.delete",folder:s,rm:v.getSelected().map(function(e){return e.title})}).success(function(){v.open(s)})},getSelected:function(){return l(p.media,{selected:!0})}};return{select:function(e){return v.init(e)}}}]).service("mediaRequest",["$q","$http","Application",function(t,n,i){var o="index.php?option=com_media";return{get:function(e){return n.get(this.url(e))},post:function(t){return t[i.config.token]=1,n.post(o,e.param(t),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},url:function(t,n){return n&&(t[i.config.token]=1),o+"&"+e.param(t)}}}]),window.Promise=window.Promise||function(e,t){function n(e,t){return(typeof t)[0]==e}function i(r,l){return l=function c(a,d,s,u,f,p){if(u=c.q,a!=n)return i(function(e,t){u.push({p:this,r:e,j:t,1:a,0:d})});if(s&&n(e,s)|n(t,s))try{f=s.then}catch(m){d=0,s=m}if(n(e,f)){var h=function(e){return function(t){return f&&(f=0,c(n,e,t))}};try{f.call(s,h(1),d=h(0))}catch(m){d(m)}}else for(l=function(t,l){return n(e,t=d?t:l)?i(function(e,n){o(this,e,n,s,t)}):r},p=0;p<u.length;)f=u[p++],n(e,a=f[d])?o(f.p,f.r,f.j,s,a):(d?f.r:f.j)(s)},l.q=[],r.call(r={then:function(e,t){return l(e,t)},"catch":function(e){return l(0,e)}},function(e){l(n,1,e)},function(e){l(n,0,e)}),r}function o(i,o,r,l,c){setTimeout(function(){try{l=c(l),c=l&&n(t,l)|n(e,l)&&l.then,n(e,c)?l==i?r(TypeError()):c.call(l,o,r):o(l)}catch(a){r(a)}},0)}function r(e){return i(function(t){t(e)})}return i.resolve=r,i.reject=function(e){return i(function(t,n){n(e)})},i.all=function(e){return i(function(t,n,i,o){o=[],i=e.length||t(o),e.map(function(e,l){r(e).then(function(e){o[l]=e,i-=1,i||t(o)},n)})})},i}("f","o")}(jQuery);

!function(){window.tinyMCE&&!window.WFEditor&&(void 0==window.jSelectArticle&&(window.jSelectArticle=function(t,n,o,e,i,c){var l=c?' hreflang = "'+c+'"':"",d="<a"+l+' href="'+i+'">'+n+"</a>";jInsertEditorText(d,"jform_articletext"),jModalClose()}),tinyMCE.PluginManager.add("jArticleButton",function(t,n){t.addButton("button-2Article",{text:"Article",title:"Article",icon:"none icon-file-add",onclick:function(){var n={title:"Article",url:"index.php?option=com_content&view=articles&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500};t.windowManager.open(n)}})}),Joomla.getOptions&&(window.jInsertEditorText=function(t,n){tinyMCE.activeEditor.execCommand("mceInsertContent",!1,t)},tinyMCE.PluginManager.add("jMenuButton",function(t){t.addButton("button-3Menu",{text:"Menu",title:"Menu",icon:"none icon-share-alt",onclick:function(){t.windowManager.open({title:"Menu",url:"index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})}),tinyMCE.PluginManager.add("jContactButton",function(t){t.addButton("button-4Contact",{text:"Contact",title:"Contact",icon:"none icon-address",onclick:function(){t.windowManager.open({title:"Contact",url:"index.php?option=com_contact&view=contacts&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})})))}();

!function(){var t=function(t,e){e=e||t,e.widgets=[],t.data&&t.data.widgets&&(t.search=sessionStorage["widgetkit.widgets.filter"]?JSON.parse(sessionStorage["widgetkit.widgets.filter"]):{name:"",data:{_widget:{name:""}}},t.$watch("search",function(){sessionStorage["widgetkit.widgets.filter"]=JSON.stringify(angular.copy(t.search))}),e.widgets.push({name:"",label:Translator?Translator.trans("All"):"All"}),Object.keys(t.data.widgets).forEach(function(n){e.widgets.push(t.data.widgets[n])}))},e=function(e,n,a,i){var d=this,o=window.localStorage||{};d.viewmode=o["wk.content.viewmode"]||"list",d.include="",t(e,d),d.previewContent=function(t){return e.$emit("wk.preview.content",t).preview||e.data.types[t.type].icon},d.createContent=function(t){e.content=t||{name:"",type:"",data:{_widget:{}}},e.widget=null,d.setView("contentConfig")},d.editContent=function(t,n){var a,i=null,o=e.data.widgets;return t=angular.copy(t),a=t.data._widget,t.id||(angular.extend(t.data,e.data.types[t.type].data),t.id="new"),o[a.name]?(i=angular.copy(o[a.name]),i.data=a.data=angular.extend({},i.settings,a.data),e.content=t,e.widget=i,void d.setView("contentEdit",n)):void d.createContent(t)},d.saveContent=function(){return"new"==e.content.id&&delete e.content.id,i.save({id:e.content.id},{content:e.content},function(t){d.editContent(e.data.content[t.id]=t),a.notify(t.name+" saved.","success")})},d.copyContent=function(t){return t=angular.copy(t),t.id="",t.name+=" (copy)",i.save({id:t.id},{content:t},function(t){e.data.content[t.id]=t,t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget,a.notify(t.name+" copied.","success")})},d.deleteContent=function(t){confirm("Are you sure?")&&i["delete"]({id:t.id},function(){delete e.data.content[t.id]})},d.getWidget=function(t){return e.data.widgets[t.data._widget.name]},d.selectWidget=function(t){var n=e.content.data;n._widget.name!=t.name&&(n._widget.name=t.name,n._widget.data={})},d.setView=function(t,n){d.view=t,n&&(d.include=n),e.$emit("wk.change.view",t),a.init('[data-app="widgetkit"]')},d.setViewMode=function(t){d.viewmode=o["wk.content.viewmode"]=t},d.setView("content")};angular.module("widgetkit").controller("contentCtrl",["$scope","Application","UIkit","Content",function(t,n,a,i){var d=this;t.data=angular.extend({content:i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)})})},n.config),d.name="contentCtrl",e.call(this,t,n,a,i)}]).controller("pickerCtrl",["$scope","Application","Content","UIkit",function(n,a,i,d){var o=this;n.data=angular.extend({},a.config),n.data.content=i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)});var e=n.data.content[a.env.attrs.id];e&&"editor"==o.mode&&(o.editContent(e,"content"),o.mode="edit"),a.env.modal.show()}),o.name="pickerCtrl",o.mode=a.env.mode,t(n,o),o.active=function(t){return t.id==a.env.attrs.id},o.update=function(t){a.env.update({id:t.id,name:t.name})},o.cancel=function(){a.env.cancel()},e.call(this,n,a,d,i)}])}();

angular.module("widgetkit").directive("mediaPreview",["mediaInfo",function(e){function i(i){var r=this;r.type=function(){return i.media=e(i.src),i.media.type},r.cleanUrl=function(e){return"string"==typeof e&&(e=e.replace("autoplay=1","autoplay=0")),e}}return{restrict:"E",scope:{src:"@"},controller:["$scope",i],controllerAs:"vm",template:'<div ng-switch="vm.type()">                           <audio ng-switch-when="audio" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></audio>                           <video ng-switch-when="video" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></video>                           <iframe ng-switch-when="iframe" ng-src="{{ vm.cleanUrl(media.src) }}" frameborder="0" allowfullscreen="true" class="uk-responsive-width" width="800" height="600"></iframe>                           <img ng-switch-default ng-src="{{ media.src }}">                       </div>'}}]).directive("autofocus",["$timeout",function(e){var i=[];return{restrict:"A",link:function(r,t){i.push(t),e(function(){i[0][0].focus()})}}}]);

!function(t,e,n){function o(t){var n=e.tinymce.editors[t.attr("id")];return{getContent:function(){return n.getContent()},insertContent:function(t){n.execCommand("mceInsertContent",!1,t)},updateContent:function(t,e,o){var i=this.getContent();i=i.substring(0,e)+t+'<span id="tmp-wkid"></span>'+i.substring(o),n.setContent(i),n.selection.select(n.dom.select("#tmp-wkid")[0],!0),n.selection.collapse(!1),n.dom.remove("tmp-wkid",!1),n.focus()},getCursorPosition:function(){var t=n.selection.getBookmark(0),e="[data-mce-type=bookmark]",o=n.dom.select(e);n.selection.select(o[0]),n.selection.collapse();var i="######cursor######",r='<span id="'+i+'"></span>';n.selection.setContent(r);var s=n.getContent({format:"html"}),a=s.indexOf(r);return n.dom.remove(i,!1),n.selection.moveToBookmark(t),a}}}function i(t){return{getContent:function(){return t.val()},insertContent:function(e){this.updateContent(e,t.prop("selectionStart"),t.prop("selectionEnd"))},updateContent:function(e,n,o){var i=t.val(),r=n+e.length;i=i.substring(0,n)+e+i.substring(o),t.val(i),t[0].setSelectionRange(r,r),t.focus().trigger("change")},getCursorPosition:function(){return t.prop("selectionStart")}}}function r(t){var e=t.next()[0].CodeMirror;return{getContent:function(){return e.getValue()},insertContent:function(t){e.replaceRange(t,e.getCursor()),e.focus()},updateContent:function(t,n,o){e.replaceRange(t,this.translateOffset(n),this.translateOffset(o)),e.focus()},getCursorPosition:function(){return this.translatePosition(e.getCursor())},translatePosition:function(t){return e.getValue().split("\n",t.line).join("").length+t.line+t.ch},translateOffset:function(t){var n=e.getValue().substring(0,t).split("\n");return{line:n.length-1,ch:n[n.length-1].length}}}}function s(t){var n=e.ace.edit(t.parent().attr("id"));return{getContent:function(){return n.getValue()},insertContent:function(t){n.insert(t),n.focus()},updateContent:function(t,e,o){e=this.translateOffset(e),o=this.translateOffset(o);var i=n.getSelectionRange();i.setStart(e.row,e.column),i.setEnd(o.row,o.column),n.getSession().getDocument().replace(i,t),n.focus()},getCursorPosition:function(){return this.translatePosition(n.getSelection().getCursor())},translatePosition:function(t){return this.getContent().split("\n",t.row).join("").length+t.row+t.column},translateOffset:function(t){var e=this.getContent().substring(0,t).split("\n");return{row:e.length-1,column:e[e.length-1].length}}}}function a(e){var n=CKEDITOR.instances[e.attr("id")];return{getContent:function(){return n.getData()},insertContent:function(t){this.updateContent(t,this.getCursorPosition(),this.getCursorPosition())},updateContent:function(t,e,o){var i=n.getData();i=i.substring(0,e)+t+i.substring(o),n.setData(i)},getCursorPosition:function(){return"source"==n.mode?t(n.textarea.$).prop("selectionStart"):this.getCursorPositionInWYSIWYG()},getCursorPositionInWYSIWYG:function(){var t=n.getSelection().createBookmarks(),e="######cursor######",o='<span id="'+e+'">&nbsp;</span>',i=CKEDITOR.dom.element.createFromHtml(o);i.insertBefore(t[0].startNode);var r=this.getContent(),s=r.indexOf(o);return i.remove(),n.getSelection().selectBookmarks(t),s}}}var u={init:function(e,o,i){var r=t(this.tmpl).appendTo("body");this.mode=e,this.attrs=o,this.cb=i,this.modal=n.modal(r),this.modal.on("hide.uk.modal",function(){r.remove()}),n.domObserve(r,function(){var t=this;n.domObservers.forEach(function(e){e(t)})}),angular.bootstrap(r,["widgetkit"])},editor:function(t){var n;n=(e.WFEditor||e.JContentEditor||e.tinyMCE)&&!t.is(":visible")?new o(t):e.CodeMirror&&t.next()[0]&&t.next()[0].CodeMirror?new r(t):e.ace?new s(t):e.CKEDITOR?new a(t):new i(t);for(var u,l,g=n.getContent(),d=n.getCursorPosition(),f=/\[widgetkit([^\]]*)\]/gi;l=f.exec(g);)if(l.index<=d&&f.lastIndex>d){u=l[0];break}this.init("editor",c.parse("widgetkit",u).attrs,function(t){var e=new c({tag:"widgetkit",attrs:t}).string();u?n.updateContent(e,l.index,f.lastIndex):n.insertContent(e)})},update:function(t){this.cb(t),this.modal.hide()},cancel:function(){this.modal.hide()},tmpl:'<div class="uk-modal"><div style="width: 1000px;" class="uk-modal-dialog" ng-include="\'picker\'"></div></div>'},c=function(e){t.extend(this,{tag:"",attrs:{},type:"single",content:""},e)};t.extend(c,{parse:function(t,e){var n,o=this.regexp(t).exec(e),i={tag:t};return o&&(n=o[4]?"self-closing":o[6]?"closed":"single",i={tag:o[2],attrs:this.attrs(o[3]),type:n,content:o[5]}),new c(i)},attrs:function(t){var e,n=/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/g,o={};for(t=t.replace(/[\u00a0\u200b]/g," ");e=n.exec(t);)e[1]?o[e[1].toLowerCase()]=e[2]:e[3]?o[e[3].toLowerCase()]=e[4]:!e[5]||"true"!==e[6]&&"1"!==e[6]?!e[5]||"false"!==e[6]&&"0"!==e[6]?e[5]?o[e[5].toLowerCase()]=e[6]:e[7]?o[e[7]]=!0:e[8]&&(o[e[8]]=!0):o[e[5].toLowerCase()]=!1:o[e[5].toLowerCase()]=!0;return o},regexp:function(t){return new RegExp("\\[(\\[?)("+t+")(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*(?:\\[(?!\\/\\2\\])[^\\[]*)*)(\\[\\/\\2\\]))?)(\\]?)","g")}}),t.extend(c.prototype,{string:function(){var e="["+this.tag;return t.each(this.attrs,function(t,n){"boolean"==typeof n?e+=" "+t+"="+(n?1:0):""!==n&&(e+=" "+t+'="'+n+'"')}),"single"===this.type?e+"]":"self-closing"===this.type?e+" /]":(e+="]",this.content&&(e+=this.content),e+"[/"+this.tag+"]")}}),t(function(){t.extend(e.widgetkit,{env:u,shortcode:c})})}(jQuery,window,window.UIkit2||window.UIkit2wk);

angular.module("widgetkit").controller("folderCtrl",["$scope",function(e){}]).run(["$rootScope","mediaInfo",function(e,r){e.$on("wk.preview.content",function(e,o){if("folder"==o.type&&o.data.prepared){var n,t=JSON.parse(o.data.prepared);t.length>0&&(n=t[0].media,e.preview=r(n).image)}})}]);

angular.module("widgetkit").controller("twitterCtrl",["$scope","$element","Application","$http",function(t,n,i,e){var o,c=this;c.connected=n[0].getAttribute("data-status"),c.loading=!1,c.openPopup=function(t){o=window.open(t,"","width=800,height=500")},t.$watch("twitter.pin",function(t){if(t&&!(t.length<7)){c.loading=!0;var n=e.post(i.url("twitter_auth"),{pin:t});n.success(function(){c.connected=!0,c.loading=!1,c.pin="",o&&o.close()}),n.error(function(){c.loading=!1})}}),c.disconnect=function(){c.loading=!0;var t=e["delete"](i.url("twitter_auth"));t.success(function(){c.connected=!1,c.loading=!1}),t.error(function(){c.loading=!1})}}]);

angular.module("widgetkit").controller("customCtrl",["$scope","$timeout","UIkit","mediaInfo","mediaPicker","Fields","Application","Translator",function(e,t,i,n,a,o,d,l){e.content.data._fields||(e.content.data._fields=[]);var s,r=this,c=e.content.data._fields;e.content.data.items&&e.content.data.items.length||(e.content.data.items=[{media:""}]),e.content.data.hasOwnProperty("parse_shortcodes")||(e.content.data.parse_shortcodes=1),s=e.content.data.items,e.item=s[0],e.extrafields=c,r.corefields=d.config.types.custom.fields,r.fields=o.fields(),e.tinyMCE=window.tinyMCE||!1,r.previewItem=function(e){var t=e.options&&e.options.media&&e.options.media.poster;return n(t||e.media).image},r.addItem=function(t){e.item=t||{media:""},s.push(e.item)},r.importItems=function(){a.select({multiple:!0}).then(function(t){!t.length||1!=s.length||e.item.title&&e.item.media&&e.item.content||(s.length=0),angular.forEach(t,function(e){e.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}),r.addItem({title:e.title,media:e.url,width:e.width,height:e.height})})})},r.editItem=function(t){e.item=t},r.deleteItem=function(t){s.splice(s.indexOf(t),1),e.item=s[0]},r.addField=function(e){return e=e||{type:"text",name:"field-x",label:"Field X"},r.corefields[e.name]&&(e.type=r.corefields[e.name].type,e.label=r.corefields[e.name].label),r.hasField(e.name)?void alert('Field name "'+e.name+'" is already in use.'):(s.forEach(function(t){t[e.name]||(t[e.name]="")}),void c.push(angular.copy(e)))},r.deleteField=function(e){confirm(l.trans("Are you sure you want to delete this field?"))&&(s.forEach(function(t){t[e.name]&&delete t[e.name]}),c.splice(c.indexOf(e),1))},r.hasField=function(e){if(["title","media","link"].indexOf(e)>-1)return!0;for(var t=0;t<c.length;t++)if(c[t].name==e)return!0;return!1},r.toggleEditFields=function(){r.editfields=!r.editfields,r.editfields||setTimeout(function(){window.dispatchEvent(new Event("resize"))},150),r.custom={field:{}},r.addCustomField=!1},r.getFieldOptions=function(e,t){var i={},n=r.corefields[e.name];return n&&n.options&&(i=angular.extend(i,n.options)),JSON.stringify(i)},e.$watch("content",function(t){var i=s.indexOf(e.item);s=t.data.items,e.item=s[i]}),i.$doc.trigger("ready.uk.dom"),i.$doc.on("change.uk.sortable",function(e,i,n){n&&void 0!==n&&(n=angular.element(n),t(function(){"js-content-items"==i.element[0].id&&s.splice(n.index(),0,s.splice(s.indexOf(n.scope().item),1)[0]),"js-fields-items"==i.element[0].id&&c.splice(n.index(),0,c.splice(c.indexOf(n.scope().field),1)[0])}))}),angular.isArray(e.widget.fields)&&e.widget.fields.forEach(function(e){e&&e.name&&!r.hasField(e.name)&&r.addField(e)}),i.init()}]).run(["$rootScope","mediaInfo",function(e,t){e.$on("wk.preview.content",function(e,i){if("custom"==i.type&&i.data.items.length){var n=i.data.items[0],a=n.options&&n.options.media&&n.options.media.poster;e.preview=t(a||n.media).image.replace(/preview(-.+\.svg)$/g,"content$1")}})}]);

widgetkit/9-5962f00c1e57ea2be350186da95ec8e8.jpg000064400000054053152177723720014021 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((���"������s$r�p��a_'«� T�I�-�i	�BH�oƸ�0+���6�����о�3�㳫��!�S�����
	��3ޜOB|%��8�)�t�ˣ�����肌2�[%-
9j��-f_\|w�\^q�)�К��]tP:&Y8L�uħ�ĕs�o����$%=�@��X��(Ņh��+��+I��(S��{f�*4��}��k�@��$��)d9�B�pD�(㎉��45WtԐ܀�5O�N֖0���)�k�$�
m���qʹ3��C|7��bW\��5~΀jWf߂:3VV[BJ�Jž46㴇����y}���C��,} 
�D@�O� �|;�>����2u���R�-�Z��+�Dڨb}2N��q������_���Pl�(�7@�~9 Y��
����HXz�G}
���|@�9v$��؍����*-�dJ�VZH�E�+�v�p����Ql���%�M�*�4ئj�NxOZPn@�Æw7�͆�r��@k�]�1P�+�ƗUw�,F�(�w�ad	O�յTus%:�5���&�$v��4'�5|*4�Жkj������.w���w����Y��놘=�CV@�]>{Pb�!ag��3Pl�h%��]*��O�c��SI���+�Fի�熭�КgIV��/U0
�� �i�g$!��"����-�XWphk2{e�
�8ߎ+�=�9�(-��ɀc���>�]�X�;a��/�Qe��^�}
I/�=�O�j��2��r	�Cj��:���&��Ɍ���� ���Z�>oV�Zǵ����tF����S���:5�2�F`����#��Ћ1-4r�4K�\z,ϿF�-�h�f��3����*�V��,��l��D5��Ȭ���L���y�֦ՙP���_��b��|��C_2��0�@N��3)s;{X�T�PUdT+N��q�d>)-��>~���^c��Fz�k�ް��J
�t�q�MΌ�A`�;\�Va�΅�n�c���<�4��d��EepG\���$�gH��C��c��	aR٬5��ZA�}5hn��
�J�p7�YO|Yx����'5j����R0[pStǕ�Ϛ�V�:���
��Έ؃6�U� �{����J1�t���j�+�Z�~`�� �|y���I��׹#`kH��V��C��jNm���G�C����%PlU�U��Z�S��k�y�r/�~�F����	���3�֒d=����$���B�Hj.tp $0�~������q��dž�̊c�$�ڌ�)8�@M�0d8��^����:�t�(��Š8隫Ra�#I�#+�ȒE`a�J)�TA�E�}i�Y�
�f��2��c�b�u�5G�>��=SEx��x�}�=��	���.�9G�_�x�/x(�x�����C�,�8O���+�=�xW�x��Ox���7��|���-!"12#3$A4 BC5��@�ڳHК���j��%i�
��xw,��F����p(\W��)�V����C�nC�s@��4^������4��9��ޥl.ո��=F|��g�1�lr��y��Ow<r��I����N��Q�ٶ�*k
����&��2}!�qB�8Z��Q�~�sNج�\֦��h("���}��eJ�sW5��:������Jڕ���vj��Z��.��AQ�v�n���jV��c�E���)�k5�4)>fl�5��M�
mY�Mt�}��d�Ku�Ϸ��,�$ke��,{$q��0�Mv�Q��	i��YI��;i�Mq�E6�=;Ԩ�*��sY��<W�E�����h��j(�\���G�њ�����f�R�Al���1��-Go�n:j��Ğ=��K0�Ⱥ��X�ao�s�u����h��3VI�&�P�eU(���(Q�SQ�J�t���
42ck��R �Ms�sF��������%�Ć*��Ji�e V���"�Q�����޻D� Q���k�ϐ�k�e��H�"��{+AV��9�H����):|�����!h�N�W�=�J�XᯑBD��
�b�DS)ɯ�Q��R�H�w��-�!��v1Mے�Mc?�'X�-�(��0Ⱥe�7۹ے~�Q7����x�a�H��=�{����3EqM,`�٨��J����	���/��m��Pg��S-�i���:��Ra)�Ujk�v��$�v�W��#��U��#���
�lZ݆��/�F��i�5�ͥf��Օ���=��9��3���B�)FU�]v���Ԓ��DnԱ^��.RE��E,����e�G5�"H�p�tMw���2V�BSJ�$��z�k�ѣ���S�%~�oE���i<q|��/�C�Q֦�!��_ݙ�����Ϋ�Kt�O%j�%g�J�F�z���J��=Bw�L�]{4k������$���9|&�F��V����AH�A�*�����hӦ�5��-#T�2@w����w��[qN٫�U8���_F��W֑i�Tc�q���X�"�d���tn�������V�uL��8������隿$C!��0��3Ÿ!������rogj3s�<�nixSVz��"JƁ��4*��������c����A��9�o�p��o��ٮ��͑�L���pr�܈k�׷�� #S����ԟ�c��\��=��R��.��i�ݏr���3�3��d�O�7�=!*��/7�>V'��y�}Z�t�w,E\d�W��P��ȖDڽ�?JG,�+�c���%�@�'�t�
?�
qt�p��A͔e��0G���A�?YO���>֠�
�~R�߸p��hO?�B7�򟦌[ܝj
� �y���^L	�&1��xg^�ګ_������Gy��`SQ婩룧���~������R����?�'�o�����V�;�
�mov�j6~�
C���.��p����&�
��Ē+��N����6�+xe0�
뤏�]���Q<��P��<M�4+<���^_۔�F�2���#��EZ�n�YV����\�I* ��r����Q��B��4~k^Q���u�zXFi`�J��3u5'N����o%'K�;��8�Ÿ2Qԅ��K��X��?�4am'n.�,�X^	���b�K@3�^"��H`��"�
�5z��<�<2�VqW�4������Jm"X$f&�aW9/f��~+gb����c�=���#�/5�(�"��tA�ܐ#��s��^����/5y�%�<���m̓�#�iV6������g�V�!�I����T-�'5h�y�L��Cxa�=O��@��¨��O��-Ƣ�bʊE!ĩsn�<�椇D�U�ť���?�?\ÛP��9-$��g�1��鱽[Ɛ�$�2Ϫ/�m�o!�j�2�@I>���X����o���X٥x��׸X]�S&E��7H]W)��[��H�EP���;#��xX<�i7��A��_%��&��c�8���<��-�لb�wM+��fidA�
��͎�����R�屓1±̞���]+
�xb�&Gsd��f<���W�c�E�����R6��7m�#T�FZR��K*�� �9�Ab�JmS(2�����"��ׅ�r%^��Q��n~bi�k�����5�G�[��RZ�jI2���rf�k#�����QS�%@&���?R	e�\��;W6
{���՚^u.:���(vY�+_*V�3��e���&��w��Lvr;h��?��u��k�972�+�X�Ii*P�|^M���m�R���u��!���R��V���:d��6�Hz��
n���x���5�<M)��Qݛ�he-/4����$����0�m�"$^ebŪ?����T�ɳmX&�Z��Mumou���?i���HH�eQ�pvUN��m�Ȩ[�U�M��l�:D�F�[�eKޥ���l���� i��leQDb�}nn�u��HNӬB24vȕ�0�/�h�\�Y�!��R=��{����2�+r
sߵ�)�$�`�Z�n�S^���zEޕ�#u)�t�s�1pi�裛~'���
mza�$�Alee�$FD�0�r���R
7$�j��ѩ�(������<�Y�����ݴ�d=���n�wL�3�䃫>z��8g���q��|�Q�Vc��a�f��{�-,��4�>�nP�՚E3E5���HK[�0�8�"ڿ�������\U�xtѵ�T��k
0T��; ��4�R��]�Q��\��%�Pj�ec#��)f�4��Gl�	%�4検U�9TU׊x��@�F?	Yi�Bf��3�a}f�#�4�I�͎���|]g�HU�s%\0��)Z|0�h.�&i6��4�f�O�Ǯ�>�QEَ�`g,�9ͬRM���]>�j��������N�*�mC�}#��=Jvk�˜�s�\�#ң��ڑg/t���I�\��)�V��3Jy�)Ŭ�׌?ڌ�
��#�rq�-�-˙?�Ev�w/r	��8iK��7������ՌA��2b��N����]Qt�p�Й�{1E��m�@���=�6����j��
*��xiA�c�eq�NSG_(�Y	��	jր���/�2�(��7��I�t�����+�J���q=�G�5��a��U��<Rj�2�]pڒ⋴fH�V9{Ez[Q�a�7�Q�jY�9�]$�a5��M���x����*��1�jſ� �2��i+3ٲ"Y���r
�'J��2"�Yy%��d�djV`mo����Pm�:e��5�����~�j�j���zIR�x����e	�[X�%� Z�T�����@u4�:�g�h�I:|L}�n��2-�MTZ��S�`}��@��q,y3����D��D`�T�\���ɗ�ՌP\�&K-j*�i�:�gR*?������B�g�:�͞H�;`"��U�-k�kCoDW��V8!C|QpOm�*����r��Q�Ef��A	Z_�4Q�=�L��.�l$��Z��H:Pv���O����uod�qӎ����F6���i���p�m�`G�;qn�ޢ���aWb�����Wn��%#�*��N\�aG��I���[&5-_bT��o��:1
�2ϊ�c%2�5n�ѥ2��ĵ�1Ƭ�G���r�"���m�4����&���0� �����?T������?T���3!1"AQaq 2�#B�0Rb�r�3C����?�z�����G�9Y���o���uś������Ņ�c�[�F��٩�!�(g�m��~%3A��A�k��*6�%�������Yq�A��y��Q��6�4�S��To��<{T���5�u4�;�
2��G�rR���7��o����&��p�����Ff��:z9�SDh���sA�3cb���M�ܹA�'dY���;9Z�R���ԣq�N�;@�+��e�
��T�YK�jIA�G�x4-ʑ�'̲�q��_�Ilo���1q΍w�B1m�zu5.R6g+�����FY��c�4*��±��#��$nףY6[h�V�TW�e��f�Z�j�';�,U��*��L��¸���cp�)%�6�|.fu�B_N�i���8n2n�Œ���MN���m�ij7w�S����]|77�\���p�ޥ�~"Vʖ�23k��zԦ&�ײS�4�Pܞ���_�Zm
�ҡ�jKBSr�$��d|������i������T��]��u��m��q�j�3�7�MƚwC)%^��&��7ÆmE%�k��o�1�<!�+�f�8Ȇ�Y�/�+��p��	_Ffv�q �}Q�ڙg�WD����tg~�8�Hr�ܵo��l+��=�H�ި���SV���
5�d�1��/�i�ro�Ã��{�?�lNױ�jj���-١���;2������2��T�j�Ê�sH�.�e����Ǧ_��q�t��Ӱ�C�/�)~Ԋ��Xy8P��*>�g
�,]>���]-���G�"�+o��HG{�YY�����%�3>����Ew�К��ԴY��f�̿
~3Kv_�x2�E�Y��d8�ij� �[�k�{�
{�o�Σ���߫#��W�2&�3�&d������V'�"Կ����[!
�l��?x~��3<���[�6�"�����
.Tr�O$}���G��Gx%���m�0�ѽ�_�E�d���K��^I{����{-E��dc����S�2��|?��*%�d�ykb����28���|x���~�H���Q7���]#�Y��"嬻��ͭÖ��D[4��Vfk�rqf��!ǻ8mp�uÉ/#_�I�5�^�/f�GЗ�
��7!�G����ѕ����inso��J(�35��4g��G�Ew#�3X�Rj;��?������c�3q�dcŊ����DYď��
Ȧ�d���ctE��_(G�BT�Xz/
L�p�#�"i�m��Ҥ^�/����A7<�(rr��m8��Q����=��ܬ�*�e�G��}W��{�����l[�5�*��#�-�4�)��g܇�l4�-;
��4�r�|N'/l��(���9wd}��G�-k��v)8T�3~�k�5�����|X��Rܨ��|����÷Q�ܜ����Y���?R�-ĸq�#�A�\��\o�D[ِ~J������TA%�
t�C��JsZ	� �-M�r�jh�MG�����}O���ԧ�ݚ�<8g谸n��~�h� ��n�ƚY~=u6�ű_}���'B�ԥ�<�Ǖ+<�]t�{v!��V�x�~�q5䭌ܔr��y*﹓��ٗ=z�d����xQ���/��m	&ne�Ԏn����dk��|�^
�
�E	KX��"N����=��%z�S܉���eGdJ1�)��w8�T��G���M��/��,yv����
�*yhM;F�e_jx$"�9j��i���=�N*�GSB�e�QM��]�ˋRB�c3�
�7Lr[�咿���45+lJŭ���x4�2�j�ʏ)��ou��)�fem�Z�i��g=
�3;��5�I_R�Ԑ�}i���ՙsY�k���й���ޱҷ:^R��V�W�3G��'j�'��c��O6���邽�k,e�Ȯ"�ݍk�u�X�ӗ�9�o���\H~J�$�#/s����q��^Q�ͧ��ˮU�r�j��#rGC��?'������G����X�M���ʗ�Ĭx��;$r3�f�L���2M:�R������U{2�سk'�a�JW��i&�j/����BZOj.��Y;N�:8�5°�_r���]������L�4}	7~F�Nо�5�k�Y�)��Д�]�������:;1�~�Jϻ5	>�f�K����jH��V���rN�I�7����b���f�8|%�?�}Y��6�
HקA�x���y�|�%�|�l�/�2p�ܺ5Mi����JS�f�e�Ap�QG�%�
D�з�BH��>��7�.���S7zF�c$�et/
G��O&����ݟs8}
ݒ����7��tVk� ��ŭ�I�D�-��|�_s��,�a��x��Vz#>�k�y_�4��v	b�T������
�*XyF�FHN[��R�1{(�}
�	���Ջ^�(�/R��a7�".Rm=$H\l֯&SC\{����ͩIle����V�#'	={��,�H�>�$��t��-�N���sl͍�C�S��teʚm��/A��F��h��X�ec)?�놣�Ƥ)G�i�A�����MFQ�ܿ����F�G���d�(�2�I�f�J�x�V�Iйe6�
}6�ڋ��^Ƒ�6>�j�)�2�X�,nWC���K��_��/�dQo��$]�]�܆♶��
�u/Ṣ�2�̼]'��e���oTh�[��G�;��K�/��^�ʗ�~�k�%��T��[�1d��s�{bs��kH�eE-�;�_ag��T��r^F��E�����.Ȩp���hk�r��K�lQ��^�^XxG*v��ʓ}ޤ��1�G*���.m�ܩ�4.���;Æ�V�8Iǚ�,�U-�H����Y���j��\���+�鄾�Q�\�l�����jeP~�idQ��t�28���;���F�-_�2�ޛ#�E.9�6F
>z%.4�.����eE��KS.GF����ס��v�/�	}���O�[��ŝh�[yl�㷓GE�u�n�$ċ�͑X\��T\��ʄb����x�']�V�'CM�YS2֣З�IS���']�T9v3��7����й�^��b�S��������^�پ��&!1AQaq����������?!��Px�j����ȋΜ��N�B�Yp�nb��«tz�
��a���hr��JH$e�e<���&=��3���9�@[&<�&�{b�}ڟ�#�S�C��(�&jX�3}b�r�m��|�~������j%��i�;9�٥|��/"�����&�.O�TF�{�.�OC��.e�oE�-.��B�G
�[��aGƎ�b����A9}@*mG.�s\��%W��v�x�eω�J���1m��~��J�(o3y��a*ߨ���/�<�~8��������%D�j�
"j#��X�6�tv�P~tmx�M�(�/y��8�TaH�� ��O�ݬ�f�ZŻq�K
��ݬ�W�y"��+O���3b?�(�����p-�hF�����`���^r%�Hq�
��x�^x��J���� "o,��n��Wh	i��{k���o^QL6_l�m0"��E7>����;~���;�aK&.@���gIor�^dP�/$�i�½��T��@L�� |@� ک��`��Mn����h���۔�R����Eg?����'�[��=�y̦��v���P�g�l�Y�q�i9OP��*R �u�������nQ��E�J�}^��8��c���"�pz4�%�����
S]�/G�^��q�P��v�K�P;&r�|ܧ�2�
�E��x�c����E:�T=��%�{�[�sJ6y'�Q/���O�q	��\ZG,���*+�r���T��._�D&�0���}	�M_�q�7�]�<��H���dx���EF?e�L4-=0Z�_&��,�՗��8��2X��Zl������5�<MOpOT��XP�43M�d��C�>1�>0봽�䆰�2��y�/6I�4F�j�&(��
c�~�UJ�C!FZ9�
�X,�4� a���!�W�fO����Ѿ0��.��Qw ���*������yD����J��'�*s��4*�-�@:�e�N%a�B4_IYFr��t!W�:��:��
!	��f��k��7��rg���)�\��]��g�I/�J<����)#0T��2�X�4�cW4��
�ۦ^[�zs��o0b�<�Z;C��O���ij#F�>��n�5��|���?;Ѧsw.h
��n�˿��yH�Z9C�2Y��s
��������bPb��8I�X�+�8y#���L�Q^�)9!_��-U �#�)�G3^��C��*�R��^%�����@KV8�Ʌ����t�X�_[_�Y��WV/z@T##��u3�H�p����+��eR���qS�.�D��,��&¥˻w<�a�p���:mw^#D����ktM�/V1�pW�5��hT��-�D`}�[%�桹Q�
x%{p!��IR'&�գ���]Z��'Ү<;�v���q���1f΄!�Su;�̈́O��^������,�����s�R
�Q��mz���D��]'�*�V҈s�{��
.�g�':iw�VC������cW{+����@�A��9�\j‚D�݌G�
lˁ�p-a���ya��(V�͢��t�E���;�y�4�g�꺚����!���p�V��#3��:�Od��
lp��@�
s
9�a�|�%�K��{g;�Q�]9����
��%�����)>X���iH�_����Y�Ne�����g<v
j�@K�L<����O�G�yQ�X��P�9�'���
��؋�' d]�f%�T�U��g�GӔ�\����W,�Nj~�6;c�
[��������_<��T��,�����(�9�w�7v�7��3K2W�Kn���g�Ld��O��2UJ�k���r��w�?�ø<�����d���
CA;C�Z��,m�f>z���g?ɒc�n#�tn�J\$^nq����	�ANY6<������$aj���q��i��/8)�H�ʷUp4
�j��"O�ђ��;�^�Jp��ل����ƣ���jny�Ϣ���}R�%����,M��/�<5���?�K[�����W����n6�^� )�a�D悶��R���>2����2V��������b���b�[��;KZG_�e�����$����K=�Q(:/z�CLrݷ�4�g�&����tN	N:�ն��1W߉��̽
�AŐ�0�࣬�R\.yL�)��(ݹ�`���*�u5�Od2�O�r�{�NNl�S�� 9S�%d�,�
�~} ��b+SK����IM*�	K�Xh=�g(4s8:�m2�5ƨ"y���C��j��Z��-�Ul�;a*�<!�G���苠��-	i��#=g��y��=z�l/�t��Ka�8eNS�cE��~��P ��0~f¹��)C�U7q>���_�+إ��{"���y��[r�e���r��-�0�/HW�fj���=�]]%̬�_�*�\'���c��
�8u�9�ښ(<@�w�hJ��jkhtdGL]������&�	��G��Q�|qgR՚g��eqHm�X�[:벃�PDm�վDD�.��&�au{q�@�X�P��8�=EZFP8�q�
i�2�{@�@�/&���V^j��ʑ�B�A��ލ�N	�2��k��r�э4>K
�RƄϱ2��QU�L�OW��,&
�~e)^E�s ���|>�n�2R<F؁X!!j��Q���8�塳�NH����O�)[�2̏���m:e<~i.�@p��)O�u���K!�-N�;+�y�6�@[B�:��Tp�\��0J�8�?�:Jm�$��=%:���n�n�?#9(��ϙ�U�T�
�[b���r�h��u0����
���z��7s5)I
��{��u���7)
yK��_0=����c���)*��t�*���5)��8|dC[�D����J��C�s�-�����K_R�����ғt<ʣU�"m���(=h�r�R�ۗji�����шV=��İ7�z��}�6쌯e������)IAy�=#)в)yb����RM�E���$r�V�S�y2#���@]��$�ɩd�ʢJ�o�ӂ'��q�,e�S����ɸ�8y���f�s�0k����_���vxd�L��46
�щ�%�׽@��rM�fs9X�}���;�`�*��7�YD�l��jx�Q���J���Z���;�%�Br2�ް��\K.&x���m�0
�Y���*Y^�#�o��6�8�󴺕�*�}X���>�
�x-��Y-�#QԠ|��k,��+b�h�t��)�L�e��Q����Q��ĝ��,�����dOb��V��g��� c��=D ?�-0��}-�N0@�"��,z��h��iu�
�lv��o�@E�l'Cc��྅J:/4J���(�aG��%ܾ�dm��v�zȮ�a��t�����?����Uo��I��D
���/[�+]M���-�#�&ĭb ��b������"��/jwS�����D'|	L�g�Duz�Pe!�f���w���Qܯ�eE�>=A�;���'�W�Cc�DĮ8� nA���ܷ��1��*LR���#B��[=e>�TG��z��@4��\�g��9����nܼ5+)Glz�����gB�[��������S2��0�%���ʻԾ�;���F��!�0rtK�5d�@��BQ��	�DѨ*W��Bz�7�K\�o�1�r{b�[%��.s%��p��#�ɵ�Byhz%�~	�e��Z���	����XڵJ��Ff ^a$p�U��f����|�yD�y]1�N���H�ӰpFLu���;�-�m���[��#�';~L۱�a����Q��*$:�> �k'T}��5/x��Tw�+�^Ÿ�P$��M&5ϏS�A��6R�L��Y��x�[S�4���:����֭���F�UpRb��l�^�%��}��U�J�	uj~�E�d_�2�@���%hD9������N1藌���4�<%��#6�b�y�y7�8'�S�>b���	u�ULD�y�"�ݻժ
���W/���r�Op��`'����N�����8�T��b|���!r��;!Dz�! ˈyj��r������
lr�{Z�p1*X�Q��O��<�i�c�Z04�8�Q��t2:Uv� ����q�E/~�����*�N�����5�\�è�Q�T��G�@���Ǡ����1u��1UbЗҋA@�G��qw{�R<(�c�W8��:J��np^YmjV���kܳ���-u��*��.��/��;r�<��kr�6��"�Z�Bb�+��+�j�ʘ�l� �EN�s\�s:�X��z�J��:�P�R��}�诒�x��W�k7X�B����Ξ������xpF:an�η����a*�Y	��+�9BG��E|3�A���S�T�h%<sqC�ӈLː9��E�q�-����5�Y��1�oi��_���Y����
o�S`;����w����s���7�+�N L�:����9�W���Q�4�s
�7v�$�[u+���y������6ż8���V�s�-X:G*_pm�.�{��]`�DC�ذ��(�a��3U�TaȢlWFTLk	��rf��U�6������'*�>VV7���L�ݖ`�6dĵN3�%I�&���IJ#}�<j�Ƀ�-f���(c~� r�깍�������~K�g3����ŧ)�)�����B?�e5t���>�+h���:��T�)�J�՝�P��	�^���}��-��]'
7��Lٮ��a�
3�ˮ�
hF�/A�~�G
"�Ë_�L�ip��i�s���qr�v�@}�J)<��y.��(B�mE?Iz��8�5"�p�h�q!�O0�`���C�p�l��6����av����#-[�[u�)��\@!|�D�*/�]�
%�KNN��t�TQ��v�&�J�1e�������N
�<���-�Y�\*��K�\� @Aa�GC>紏luå0¼�g8�ir��au�/�p��'��
{@�8Z����{l���1�2���a�������� p����4�@(�K s�D0C2G�A rD ����,�I0�D�0C��	`aG��(S���L$��,0C<х8�� �,P�8�F8��0�M#�(�FB
<AA�O<��rI8s�$�C$p<�� �3�(�K�8 �<��$p��BG#�4� �#�0��D#B8�N1H, s,� ����8�,�K2�4���@4��<�8a��"�J�a#�<���<F(`��4"KQL#�Nq�s�<�p<� ������?T������?T���%!1AQaq����������?`��rT\�FR��G��T�_=�@�0A'q7���/ԬpF�Y���*[8�Ml�i�E�j��ДQ�r�m\�.YU��"#�%���p-a�3�iB�j�Z���+SUE���@�W�7�v����mͶ�#�}8`l+�!4����B��3/O�M1�\(��TDSCw�����ȅ��5�ι�UC6�
t#��-ŀ^&^`yy�s-fPc7�L��4�w|�$hgX��.`r��gu깂��2��:���·�W�>�ti9�P�(���e�7A`��յSS��L(�V��ߣe�F�)cX�fP^�G
O�ӊZ�*
�� Po�bS��.Pڱ[�XT
.LS��:���J�ۍB�C����'p��i�/o%rs21!Z��TĠ���q/k�Z��e�K�d�����6y���
ċzfJr�^���G�"��Wx����
U�wlh�P�bCV6$fBU�!᭺�i(���n�~���Ud[���9!U�tC!K����
J�k��6`����8��F���F
r�m�kk
Y�F��Y��b�mܺ�')���'L��i�{�Ø7n�_+�eD��c�V7��2]�TLL����ۣc�PV��0t�8na�q��/���M��m����]��Ccm�KqP�T�숋�Y*r[Ĵ���`��Ђ.�Wx�
(k:�`�]�C�59Ps�k�4°FED/j�
Jt�z�d��q�����nm�b��^U�
wD�N���@̲�:�n������Ә	�VU��ר����T�m�{��ZKj��ֱ.�(�	{�n�����}.D�(W*������l��`A	��hp�+$<E ܇����Hv�
��@�V�J�S4�]�o+f�nrO���S*�w
�;��d9��B=�[+��^���I�2�:���p"
]q
�� .,zcKP�V42������U�Ui?�y����<h���Qĺ�a�aL�x
�/n3#��p�^�����6�*�J ���n��)�LZ79HA�%ðQUsͱP��5�C�{C^����M��HaU�XIœu4\a3r����%��
(�(7>�ItKgt�j�ʗ�J���n(֥���ޜ{�Y.�y�]�p�2[X�@2��v�PHJ�uR��jV(��p�E������)���Vf�Y�e8�n!�R�q�5m�0jg��c�b��[�U�10��1e��o�-�v4�*^�YJ~`�/��B� Eo�7��?1iQ���vp��φe��{�()�����Q���P�[h:0����ʢr��3)-tֲ���j����$.rM�Ψ��譳l�K�i�d���n��.`���!�c��!0����M�)�xR��r�E0���X��T8b���9���cmM /PwGU	�1�E���԰P6ā�qhw8%�W��#�r%�m!��Gt�n+��%a(�cPb#�dt���s	�QWa��mt���� M�t��]��B��j��`�� �O3h�ݗ�VCj�`h ��;_��~��g,��&�L�ʃ�0�-��z���d>%1����-Y:�]҃�L�X�89\$t��[<r��f����9S}���>r�G>�_z]����[M˗���iB���E��e�H���/ph%�DD�˗9���c��b���Y!KΥ��q�58����Q��Y�TK�;v[m1
 ���^Hb-*N؄@B�F��L���_Q�V<TV*������BJ�%e`ң��qx�"�W#����s:��b�g+1��Zo���1~�S���}G	$���SjH�U>w^�G�r�~�,έEߘJM��ֻ�����(�l��
�ú<����Ey�B(���=6bb�D�>q�\��Jr�k[^_Q	6�yk���T�P�w�@[�е�
�v0��7�V���<�%��5�-Mɟp[�l2��vj���H���0{��`H�Q��0��ԨDZlX��R��%x���,��p
o7�`��X���7�_ƿ�7N�r�R
|@d���7Bc�ΘW� M@�eo���3:[6��핐F�B#x��a���^��A�.A��Ӑ��̥�3_�U��,�v��B0R�c�BO��*Qڐ/e<D0�s�j�C��'�Y5��1�ae�tK�*|_�|E
�D�GaϨ�k�:�)F�r��PXKs�رw�p�j�����/h��Yn�1vn[���?j
�uR�1H� �0�}�>��X��|t.S�AO�.����Zʮ���
C�4>�,�Y��H�fbT�Wq]\&���i�a�بiB�+��UVb�e8��a	h��9���@T}��D\4^�.W$��}Z�\��cw]��G�3\�v�!|C�˕��)Ƣ�����T�JV����j����e���)b	��e��u5>ch�嘦��X�����-��3N1*�"�Q4��U��ǙNџ���؟�Zk&��0�Aԭ'���Ki`�T�1����|-{�l���u3x���Y�Ŀ�y��-��l.�m`��J�#�j��k 7�V���*k�F�,8|F?%�[����	3�v��B�A��f�P�?q���o)K�
�x�F[$��'���*�G�p'��$��P2���h#'�kn �(��oH3�R��P�uu)Bͻ!�����l��¿8�([��x�`�ˣlq��L��T�`�)7l@
���Q\�R}7
�g��)�D�U�F����D�c��]2����p�V��X�L�F5+J5/"�w��x�X�H��i�!��3��wv����#}�
�R�iT;�H.��,p���
�݊��s[��3C�\Ѵ|Ke~e��w\~�d��Qݹ^a	�ݮ�@`5˱-� bۮ�(�L�$`"Cpb�z�g��
��/CY�5��g@jo/!� E��SLü\����˔�Ƣ��ps�1�@�?�tWR#�#�AVN:��)0.��p�KF/I,�\1/g�L�R:�ۥ���o�ZsMU�r���S��!ό\,�/���B�Lf�qY�4l�I��Ã�V��an�G��QT#.bؔ|�����1(@W�	N�
O�2�YQHQ��1���u+Q��lA��V0�!��cB��%�p�DW�4f�1��LoĽ!�q�3���;�}�5WC�lq
�PR=o�(.ofoܳ�$�;��K��@/@�����-�Pչw,b��ڗ��SfFT�^2bE�w���Z|����ǹu�z9�j4ܬ9�̽��-�uD�*���0?�XU�����p�-�1��[�h�-h8���bF~"��!�`n^b,*�F�9
��fk�J�;���XZ����)��}��(^a�R���9�L�C�J���x�^��h�th�(a(ԭ��e)��������|<�=j|��(�l�\� �Û(��������#�/s-RFk�9;��f���ʰL���8�K�����M/9>0~�.1J����A�Klt����|2��j+��ބeij�w.%(�/��k�%j����Ɣun�Tt�V}��Pe�W���˻�.�V���U!��s�t+���*W������Pի��%Ѷ��匜A�̯�"VC��5ɀES�m���/��J�!��E���u�Ev�����ϘV��L�t�#k�n�Y
Lb(\	U	�Q�8��<��%�Q��P g�t�?�(
U�_��!�V!�ZV��^g�����WY�Z�,'&�>a݆��l��aX�Z[cX�UUܹkW]̡��Q���-�9��T�4y�!<\[]��W�;0Y�Ժ�Y�X1��l.��-Oԧ
�
%�љ���N��G���Y��.��?��7aR�����=����U�}6|D�x4��{wIJ���
��S�v���Wq�7�!$�X@�B+���:����-��'��~�XvT@+����Q�'1�D]Z�%y��J[��J�i��1^y+��])�g���
l<C�}�:�k���"o�"���f� 	�U[c*2T�Q�(3���1夜��V�f�n�GQO!��qB�Wu�Ex۟2��Aq(%��P�
��]�HAULY��7�|
Ri�2>����
`X����
5�cr�D�o{	Z��{�3+s��s�:�U�>����:��1��	4
��PĄ+<y�5���rU�r���j�Rw��������3%�*
�M�&������$?0j��N��rº�HIh�V �z�b�U�}C\��&�X!�K�V�4K��9�R��j!���O�T��̡tc���e�@��w#�mo�/���({���i��*�7�u탒\���S�ix������&��e�@Vp"	�vD��@Z��F��B>�F<�|�sQ��aWY��.��� 3b��.e�Nϸ�M"dLgg�Y;�X���7-9cE��p48���^4�|@Ŭ1���n�-ګJ1�8_i*-@y�����g�S�-���#�O��UN�܍u�!�
h�:j1XϞ/��If���(�W	b��t*W_7��JY��/��0}���Fv�Qa8�̹;�����d���a����dWa��?@��!T�A�:�C�{��ǫ5��}(�TA���N`%�?�
ԧGQ�P�͸�Z��]w1U�Vy��Y͛���\B,�l�P9�T��w�Zm��xu@j���`)"�%�B����Գi��U������n+���-I|���Z�4�0f��(�����P�S��ʗ�X��If�]�� \�+���L��C�*9��ub�GB�M����7�b���̡F�t���rŜ���L�МV�,Ų�/���Qm�yZA�k
e�,�%(>�ǃ:�W�L[\���
MV�<G�Tz��g��vL��/���xRנ��*T�Q���<���v�9��M�(жt�p�lQ�K��'X�Ts�r�NU�)��%^�ŕHi��qm�Av���<����n�T�j%�l���_P�B7,����0
@u]y|C�IR�S����h~�����b�{����_%�ڡa���8�D�ʓn�7��b�e��1
�ω�Md#�V7�Ȑ1��L"SGM�TF�5%���s3�fYw�C-ʰ"��1(|q(GU��E�Z��NmuP����j<����*�6�:��Y[;�A��>�h�2<Dt�]d즯��S���n���ԧSn��R�^F/��o��d�
�!qw{��O�b�`%�w-1%h X�?���4�l��s�ꇐ;����Lۋ� �5#�0����T-��D��"�
�t��:k �ƫܤ(9��F�Iv4Qa�l!s�J�Fx�o_qc��C�Qu�]<d�-j�%yW��]Vv�����2�(3]�NR���PR(��C�c+5����[c�l���[��J��Z��)E5����u�u(x�~�o��X�1�B�-]c1��mzh_��Ńc�<،⫢�a�ѸQ�4�h=*��M+!�V>����w�-����S�����9w��*�wR�â�n��Ts]	m��T0� �EZ�XD��r��q�B�eA�
4P��4e����pV��əT����lì��dꩩF7�h6��M�#ߩqW�psV�.;Tu��d��_
�2�uF&][�[q�!H�HD�lQ��q;ࢦ
�	��UX�섈��I�!�Ƅ���N1�TD���X/M��B �db�Rd��DZ@���@�kD��¹̩-8n[���v<U��8Vx��a�Ek��m�8/��I���PU��IVg[�����fv�a�g�PA���y��P�Q�Ƨ\̲��5\D�}q�|�#5D�p/�ƌ�y�-surP����� {ޫe�)_}K��٨]z�`����
�@�P85s�8�|$6�PV)��o�eΊ��%��
^Ro�	�B��Nu��ır	�G=]�P�ź"~V��1�z+�F�Gq�@_
BU�V�L:���U(��.�N��QUXw|��6�l��1k�XF5�Q`���(�������M�..������z�f_�F7�{�(#�*a�j�0���U'�ea�Q.�͜���q��?1G������Y�C����;% W:�
n���2�|�F��P��Υ�-m�;o���y��˫Y���r%�g_Wt�oĭ���eΝԇ�7�W�Ȝ��[-�`"�6�Bq�M-��,�Š���+�:x*��%a�
X�@�yd���`8%K�6�̣g�,qqr1f��"w�(�����gQ\��t�F�����Z�:f�G
�m����c��1٧8��XV�����@��"�0�e�����[@%����!���$Պh̡�۞�l06���VE[-9�%�R"Wq�)׸A^ˬFX-E5��
��b6(�����;�@(��n!����j�ܸ��}L'�[�rr��eq�CI>��Br��
�6���k":��s�E�(����5vʑJ]����0
��J����w��#(Mec���a�C�gy(��Ȳ��mE��́���?��ؐ�K�f0�dq1Je����"0��Ee̸�����5G^C�"dm����#ܦt4N3_�e#	������+S[��K����J�}rUU���+�9R�̩�_�W��b2�:P��`%r|��3���{��0F�AN`X_CV8��V�����U˸�L�At��Rӹx�s��%e����(���	�����:���@W,�Z�lR�VovJ�l��f���\��e�/dG 1]BR��{�+�
���r���PBYv�̡���3p��TB����l�yXn��h�;

�G��2K�|��!��4�N��h%Z��̂B%�~%u�h��0ў���9
�=�?9)��l�*�z���'��x,�f5��l���=�g�����o֑GQM�P� SY
"�B!�8I~�Ϙ�\��[z
\�
��hd�Ej��\c,7��#�3aT���� MU@��|�vE���`�s���19�^����X�,�Y��
j%�ާ���ti�0@�p�����'Fg����Z��?�[qy�Pyk��ic濸S�U�^y�����_��a�"���-�S�e<x�
,
5�.1>Z�;k�E�0	8@_8
h v�G#��U��#�JQsԶ�q�HX�k�>€_�1����l�M�:7:�w������S�_>a��O�$��E����\�ܥAJ`A@������eK���S�P@�Ux=k��q��s�����Q��
���A�ʗ��̦λ�R�)�:c��c#_�-(�k���x�<��]fܼ�+��ܷ�;IJ
�%_ԭK9s��������7�x��
�6"�V����8N��x�`�Q�ٷ�����&�3P�_�h@U{��C3@�mB����Z�20�V���5�P�QKE��t�Q�(�����g�K��}Cx�Aֿ蘛Y�Ow-�Z�[�	�P�L��b�_p����qZ�/���#�/6۹RCP��_�,= `8���	�/�/h��NK�	ޭ��^k,�/���<@oFۯ�2eX��)�r������Y�c�I�E�1�
w�kh�}FX�cܳ�ێO�jj%n�h��I��8 <�"D��)��b���ۯP ����g��cب�
[��J�w*�`��l.��,,f�WE�
�K>��H�P)K�Cf���K�27kA�6Q�gK6��
�bE�[U`#�_�!y�v����N�d���j�YGI6�ܹ6;�6�I�Բq�����E�U�g��w��d��͸���VQZ�U�m�o�/4�~U�U�G��x���\�e�E��A���X�pQ=���B>��k��q�+0�n����tj�V%�� �H�#�qiD��z*	%�Ib�K�Cb���F0�D���K�l���P�і5�5���,�I��[�K|Z|#�r�b���xX-M
�~� 4�F�$� ��
5u���#�^��DڣL9f&!�e�W/H^�
y����9��v�A(�H�yA���YvQk�S�z���+(�	uhWB�q�C-���Pz�XL�Ӄ� �qd곹`�4��\�)���+v��
����͌#
�^�Ze[u���" �hPk�G���5?��widgetkit/uikit2-b4d5be1e.js000064400000331161152177723720011617 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2wk)return window.UIkit2wk;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2wk=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-wk-margin], [data-wk-grid-match], [data-wk-grid-margin], [data-wk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="wk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/wk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".wk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-wk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"wk-touch":"wk-notouch"),i.support.touch){var n,o=!1,s="wk-hover",a=".wk-overlay, .wk-overlay-hover, .wk-overlay-toggle, .wk-animation-hover, .wk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"wk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-wk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.wk-responsive-width, [data-wk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"wk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-wk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2wk),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-wk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-wk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2wk),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"wk-scrollspy-inview",initcls:"wk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-wk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-wk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-wk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("wk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("wk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"wk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-wk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-wk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"wk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-wk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-wk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("wk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" wk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("wk-hidden"))})}})}(UIkit2wk),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".wk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-wk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-wk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2wk),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-wk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-wk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-wk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-wk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-wk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-wk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("wk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("wk-active")])})},toggle:function(){this.element.toggleClass("wk-active"),this.element.attr("aria-pressed",this.element.hasClass("wk-active"))}})}(UIkit2wk),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".wk-dropdown,.wk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-wk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-wk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("wk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("wk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("wk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("wk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("wk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("wk-open")?(!i.dropdown.find(e.target).length||n.is(".wk-dropdown-close")||n.parents(".wk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".wk-dropdown-close")||o.parents(".wk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("wk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("wk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("wk-dropdown-top wk-dropdown-bottom wk-dropdown-left wk-dropdown-right wk-dropdown-stack wk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("wk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("wk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("wk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-wk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-wk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("wk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="wk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("wk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("wk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-wk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"wk-grid-margin",rowfirst:"wk-row-first"},boot:function(){t.ready(function(i){t.$("[data-wk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-wk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2wk),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2wk.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".wk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".wk-modal.wk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".wk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("wk-open")),this.on("click",".wk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".wk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("wk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("wk-open")):(this.element.addClass("wk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("wk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("wk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".wk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("wk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("wk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("wk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-wk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-wk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="wk-modal"><div class="wk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-button-primary wk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="wk-modal-content wk-form">'+String(i)+"</div>":"",'<div class="wk-margin-small-top wk-modal-content wk-form"><p><input type="text" class="wk-width-1-1"></p></div>','<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-modal-close">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i||'<div class="wk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".wk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2wk),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.wk-parent > a[href="#"]',lists:">li.wk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-wk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-wk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("wk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("wk-hidden"))),n.attr("aria-expanded",n.hasClass("wk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".wk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("wk-open").end().addClass("wk-hidden")})}),a.toggleClass("wk-open"),a.attr("aria-expanded",a.hasClass("wk-open")),r&&(a.hasClass("wk-open")&&r.removeClass("wk-hidden"),n?(r.stop().height(a.hasClass("wk-open")?"auto":0),a.hasClass("wk-open")||r.addClass("wk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("wk-open")?i(r.find("ul:first")):0},function(){a.hasClass("wk-open")?r.css("height",""):r.addClass("wk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2wk),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".wk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("wk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("wk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("wk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("wk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".wk-offcanvas.wk-active"),a="right"==t.langdirection,r=s.find(".wk-offcanvas-bar:first"),l=function(){o.removeClass("wk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("wk-active"),r.removeClass("wk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("wk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".wk-offcanvas-bar:first").length)return}else if(!e.hasClass("wk-offcanvas-close")){if(e.hasClass("wk-offcanvas-bar"))return;if(e.parents(".wk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-wk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-wk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-wk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2wk),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("wk-active "+r+" wk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" wk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("wk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-wk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-wk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-wk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("wk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".wk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("wk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".wk-active").removeClass("wk-active"),r.addClass("wk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".wk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("wk-active"),o.addClass("wk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["wk-animation-slide-top","wk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["wk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["wk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["wk-animation-slide-right","wk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2wk),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.wk-tab-responsive, .wk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-wk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-wk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("wk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("wk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="wk-tab-responsive wk-active"><a></a></li>').append('<div class="wk-dropdown wk-dropdown-small"><ul class="wk-nav wk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".wk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("wk-tab-bottom")&&this.responsivetab.dropdown.addClass("wk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.wk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.wk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".wk-tab-responsive").filter(".wk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.wk-tab-responsive)").removeClass("wk-hidden");if(!i.length)return this.responsivetab.addClass("wk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("wk-dropdown")||(e.hasClass("wk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("wk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("wk-hidden")}})}(UIkit2wk),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-wk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-wk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2wk);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-accordion",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i){var e=t.$(i),o="auto";if(e.is(":visible"))o=e.outerHeight();else{var a={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};o=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(a)}return o}return t.component("accordion",{defaults:{showfirst:!0,collapse:!0,animate:!0,easing:"swing",duration:300,toggle:".wk-accordion-title",containers:".wk-accordion-content",clsactive:"wk-active"},boot:function(){t.ready(function(i){setTimeout(function(){t.$("[data-wk-accordion]",i).each(function(){var i=t.$(this);i.data("accordion")||t.accordion(i,t.Utils.options(i.attr("data-wk-accordion")))})},0)})},init:function(){var i=this;this.element.on("click.uk.accordion",this.options.toggle,function(e){e.preventDefault(),i.toggleItem(t.$(this).data("wrapper"),i.options.animate,i.options.collapse)}),this.update(!0),t.domObserve(this.element,function(){i.element.children(i.options.containers).length&&i.update()})},toggleItem:function(e,o,a){var n=this;e.data("toggle").toggleClass(this.options.clsactive),e.data("content").toggleClass(this.options.clsactive);var s=e.data("toggle").hasClass(this.options.clsactive);a&&(this.toggle.not(e.data("toggle")).removeClass(this.options.clsactive),this.content.not(e.data("content")).removeClass(this.options.clsactive).parent().stop().css("overflow","hidden").animate({height:0},{easing:this.options.easing,duration:o?this.options.duration:0}).attr("aria-expanded","false")),e.stop().css("overflow","hidden"),o?e.animate({height:s?i(e.data("content")):0},{easing:this.options.easing,duration:this.options.duration,complete:function(){s&&(e.css({overflow:"",height:"auto"}),t.Utils.checkDisplay(e.data("content"))),n.trigger("display.uk.check")}}):(e.height(s?"auto":0),s&&(e.css({overflow:""}),t.Utils.checkDisplay(e.data("content"))),this.trigger("display.uk.check")),e.attr("aria-expanded",s),this.element.trigger("toggle.uk.accordion",[s,e.data("toggle"),e.data("content")])},update:function(i){var e,o,a,n=this;this.toggle=this.find(this.options.toggle),this.content=this.find(this.options.containers),this.content.each(function(i){e=t.$(this),e.parent().data("wrapper")?o=e.parent():(o=t.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent(),o.attr("aria-expanded","false")),a=n.toggle.eq(i),o.data("toggle",a),o.data("content",e),a.data("wrapper",o),e.data("wrapper",o)}),this.element.trigger("update.uk.accordion",[this]),i&&this.options.showfirst&&this.toggleItem(this.toggle.eq(0).data("wrapper"),!1,!1)}}),t.accordion});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t,s=0;i.component("slideshow",{defaults:{animation:"fade",duration:500,height:"auto",start:0,autoplay:!1,autoplayInterval:7e3,videoautoplay:!0,videomute:!0,slices:15,pauseOnHover:!0,kenburns:!1,kenburnsanimations:["wk-animation-middle-left","wk-animation-top-right","wk-animation-bottom-left","wk-animation-top-center","","wk-animation-bottom-right"]},current:!1,interval:null,hovering:!1,boot:function(){i.ready(function(t){i.$("[data-wk-slideshow]",t).each(function(){var t=i.$(this);t.data("slideshow")||i.slideshow(t,i.Utils.options(t.attr("data-wk-slideshow")))})})},init:function(){var t=this;this.container=this.element.hasClass("wk-slideshow")?this.element:i.$(this.find(".wk-slideshow:first")),this.current=this.options.start,this.animating=!1,this.fixFullscreen=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&this.container.hasClass("wk-slideshow-fullscreen"),this.options.kenburns&&(this.kbanimduration=this.options.kenburns===!0?"15s":this.options.kenburns,String(this.kbanimduration).match(/(ms|s)$/)||(this.kbanimduration+="ms"),"string"==typeof this.options.kenburnsanimations&&(this.options.kenburnsanimations=this.options.kenburnsanimations.split(","))),this.update(),this.on("click.uk.slideshow","[data-wk-slideshow-item]",function(s){s.preventDefault();var e=i.$(this).attr("data-wk-slideshow-item");if(t.current!=e){switch(e){case"next":case"previous":t["next"==e?"next":"previous"]();break;default:t.show(parseInt(e,10))}t.stop()}}),i.$win.on("resize load",i.Utils.debounce(function(){t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight))},100)),setTimeout(function(){t.resize()},80),this.options.autoplay&&this.start(),this.options.videoautoplay&&this.slides.eq(this.current).data("media")&&this.playmedia(this.slides.eq(this.current).data("media")),this.options.kenburns&&this.applyKenBurns(this.slides.eq(this.current)),this.container.on({mouseenter:function(){t.options.pauseOnHover&&(t.hovering=!0)},mouseleave:function(){t.hovering=!1}}),this.on("swipeRight swipeLeft",function(i){t["swipeLeft"==i.type?"next":"previous"]()}),this.on("display.uk.check",function(){t.element.is(":visible")&&(t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight)))}),i.domObserve(this.element,function(){t.container.children(":not([data-slideshow-slide])").not(".wk-slideshow-ghost").length&&t.update(!0)})},update:function(t){var e,a=this,n=0;this.slides=this.container.children(),this.slidesCount=this.slides.length,this.slides.eq(this.current).length||(this.current=0),this.slides.each(function(t){var o=i.$(this);if(!o.data("processed")){var r=o.children("img,video,iframe").eq(0),d="html";if(o.data("media",r),o.data("sizer",r),r.length){var u;switch(d=r[0].nodeName.toLowerCase(),r[0].nodeName){case"IMG":var h=i.$('<div class="wk-cover-background wk-position-cover"></div>').css({"background-image":"url("+r.attr("src")+")"});r.attr("width")&&r.attr("height")&&(u=i.$("<canvas></canvas>").attr({width:r.attr("width"),height:r.attr("height")}),r.replaceWith(u),r=u,u=void 0),r.css({width:"100%",height:"auto",opacity:0}),o.prepend(h).data("cover",h);break;case"IFRAME":var c=r[0].src,l="sw-"+ ++s;r.attr("src","").on("load",function(){if((t!==a.current||t==a.current&&!a.options.videoautoplay)&&a.pausemedia(r),a.options.videomute){a.mutemedia(r);var i=setInterval(function(t){return function(){a.mutemedia(r),++t>=4&&clearInterval(i)}}(0),250)}}).data("slideshow",a).attr("data-player-id",l).attr("src",[c,c.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1&player_id="+l].join("")).addClass("wk-position-absolute"),i.support.touch||r.css("pointer-events","none"),u=!0,i.cover&&(i.cover(r),r.attr("data-wk-cover","{}"));break;case"VIDEO":r.addClass("wk-cover-object wk-position-absolute"),u=!0,a.options.videomute&&a.mutemedia(r)}if(u){e=i.$("<canvas></canvas>").attr({width:r[0].width,height:r[0].height});var p=i.$('<img style="width:100%;height:auto;">').attr("src",e[0].toDataURL());o.prepend(p),o.data("sizer",p)}}else o.data("sizer",o);a.hasKenBurns(o)&&o.data("cover").css({"-webkit-animation-duration":a.kbanimduration,"animation-duration":a.kbanimduration}),o.data("processed",++n),o.attr("data-slideshow-slide",d)}}),n&&(this.triggers=this.find("[data-wk-slideshow-item]"),this.slides.attr("aria-hidden","true").removeClass("wk-active").eq(this.current).addClass("wk-active").attr("aria-hidden","false"),this.triggers.filter('[data-wk-slideshow-item="'+this.current+'"]').addClass("wk-active")),t&&n&&this.resize()},resize:function(){if(!this.container.hasClass("wk-slideshow-fullscreen")){var t=this.options.height;"auto"===this.options.height&&(t=0,this.slides.css("height","").each(function(){t=Math.max(t,i.$(this).height())})),this.container.css("height",t),this.slides.css("height",t)}},show:function(s,e){if(!this.animating&&this.current!=s){this.animating=!0;var a=this,n=this.slides.eq(this.current),o=this.slides.eq(s),r=e?e:this.current<s?1:-1,d=n.data("media"),u=t[this.options.animation]?this.options.animation:"fade",h=o.data("media"),c=function(){a.animating&&(d&&d.is("video,iframe")&&a.pausemedia(d),h&&h.is("video,iframe")&&a.playmedia(h),o.addClass("wk-active").attr("aria-hidden","false"),n.removeClass("wk-active").attr("aria-hidden","true"),a.animating=!1,a.current=s,i.Utils.checkDisplay(o,'[class*="wk-animation-"]:not(.wk-cover-background.wk-position-cover)'),a.trigger("show.uk.slideshow",[o,n,a]))};a.applyKenBurns(o),i.support.animation||(u="none"),n=i.$(n),o=i.$(o),a.trigger("beforeshow.uk.slideshow",[o,n,a]),t[u].apply(this,[n,o,r]).then(c),a.triggers.removeClass("wk-active"),a.triggers.filter('[data-wk-slideshow-item="'+s+'"]').addClass("wk-active")}},applyKenBurns:function(i){if(this.hasKenBurns(i)){var t=this.options.kenburnsanimations,s=this.kbindex||0;i.data("cover").attr("class","wk-cover-background wk-position-cover").width(),i.data("cover").addClass(["wk-animation-scale","wk-animation-reverse",t[s].trim()].join(" ")),this.kbindex=t[s+1]?s+1:0}},hasKenBurns:function(i){return this.options.kenburns&&i.data("cover")},next:function(){this.show(this.slides[this.current+1]?this.current+1:0,1)},previous:function(){this.show(this.slides[this.current-1]?this.current-1:this.slides.length-1,-1)},start:function(){this.stop();var i=this;this.interval=setInterval(function(){i.hovering||i.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},playmedia:function(i){if(i&&i[0])switch(i[0].nodeName){case"VIDEO":this.options.videomute||(i[0].muted=!1),i[0].play();break;case"IFRAME":this.options.videomute||i[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}',"*"),i[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}',"*")}},pausemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].pause();break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}',"*")}},mutemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].muted=!0;break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}}}),t={none:function(){var t=i.$.Deferred();return t.resolve(),t.promise()},scroll:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.removeClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.addClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),s.width(),a.promise()},swipe:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1===e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.removeClass(-1===e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.addClass(-1==e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),s.width(),a.promise()},scale:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-scale-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-scale-out"),t.width(),e.promise()},fade:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),s.data("cover")||s.data("placeholder")||s.css("opacity",1).one(i.support.animation.end,function(){s.removeClass("wk-slideshow-fade-in")}).addClass("wk-slideshow-fade-in"),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-fade-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-fade-out"),t.width(),e.promise()}},i.slideshow.animations=t,window.addEventListener("message",function(t){var s,e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(a){e={}}t.origin&&t.origin.indexOf("vimeo")>-1&&"ready"==e.event&&e.player_id&&(s=i.$('[data-player-id="'+e.player_id+'"]'),s.length&&s.data("slideshow").mutemedia(s))},!1)});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow-fx",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t=i.slideshow.animations;i.$.extend(i.slideshow.animations,{slice:function(e,s,n,o){if(!e.data("cover"))return t.fade.apply(this,arguments);for(var r,a=i.$.Deferred(),c=Math.ceil(this.element.width()/this.options.slices),h=s.data("cover").css("background-image"),d=i.$('<li class="wk-slideshow-ghost"></li>').css({top:0,left:0,width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),p=d.width(),l=d.height(),u="slice-up"==o?l:"0",f=0;f<this.options.slices;f++){"slice-up-down"==o&&(u=(f%2+2)%2==0?"0":l);var m,g=f==this.options.slices-1?c:c,x="rect(0px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)";m="rect(0px, "+g*(f+1)+"px, 0px, "+c*f+"px)",("slice-up"==o||"slice-up-down"==o&&(f%2+2)%2==0)&&(m="rect("+l+"px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)"),r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:p,height:l,"background-image":h,clip:m,opacity:0,transition:"all "+this.options.duration+"ms ease-in-out "+60*f+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+60*f+"ms"}).data("clip",x),d.append(r)}return this.container.append(d),d.children().last().on(i.support.transition.end,function(){setTimeout(function(){d.remove(),a.resolve()},0)}),d.width(),d.children().each(function(){r=i.$(this),r.css({clip:r.data("clip"),opacity:1})}),a.promise()},"slice-up":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up"])},"slice-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-down"])},"slice-up-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up-down"])},fold:function(e,s){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var n,o=i.$.Deferred(),r=Math.ceil(this.element.width()/this.options.slices),a=s.data("cover").css("background-image"),c=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),h=s.width(),d=s.height(),p=0;p<this.options.slices;p++)n=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:h,height:d,"background-image":a,"transform-origin":r*p+"px 0 0",clip:"rect(0px, "+r*(p+1)+"px, "+d+"px, "+r*p+"px)",opacity:0,transform:"scaleX(0.000001)",transition:"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms"}),c.prepend(n);return this.container.append(c),c.width(),c.children().first().on(i.support.transition.end,function(){setTimeout(function(){c.remove(),o.resolve()},0)}).end().css({transform:"scaleX(1)",opacity:1}),o.promise()},puzzle:function(s,n){if(!n.data("cover"))return t.fade.apply(this,arguments);for(var o,r,a,c=i.$.Deferred(),h=this,d=Math.round(this.options.slices/2),p=Math.round(n.width()/d),l=Math.round(n.height()/p),u=Math.round(n.height()/l)+1,f=n.data("cover").css("background-image"),m=i.$('<li class="wk-slideshow-ghost"></li>').css({width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),g=this.container.width(),x=this.container.height(),w=0;l>w;w++)for(var v=0;d>v;v++)a=v==d-1?p+2:p,r=[u*w+"px",a*(v+1)+"px",u*(w+1)+"px",p*v+"px"],o=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:0,width:g,height:x,"background-image":f,clip:"rect("+r.join(",")+")","-webkit-transform":"translateZ(0)",transform:"translateZ(0)"}),m.append(o);this.container.append(m);var k=e(m.children());return k.each(function(t){i.$(this).css({transition:"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms","-webkit-transition":"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms"})}).last().on(i.support.transition.end,function(){setTimeout(function(){m.remove(),c.resolve()},0)}),m.width(),k.css({opacity:1}),c.promise()},boxes:function(e,s,n,o){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var r,a,c,h,d=i.$.Deferred(),p=Math.round(this.options.slices/2),l=Math.round(s.width()/p),u=Math.round(s.height()/l),f=Math.round(s.height()/u)+1,m=s.data("cover").css("background-image"),g=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),x=s.width(),w=s.height(),v=0;u>v;v++)for(h=0;p>h;h++)c=h==p-1?l+2:l,a=[f*v+"px",c*(h+1)+"px",f*(v+1)+"px",l*h+"px"],r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:1,width:x,height:w,"background-image":m,"transform-origin":a[3]+" "+a[0]+" 0",clip:"rect("+a.join(",")+")","-webkit-transform":"scale(0.0000000000000001)",transform:"scale(0.0000000000000001)"}),g.append(r);this.container.append(g);var k,b=0,y=0,$=0,I=[[]],M=g.children();for("boxes-reverse"==o&&(M=[].reverse.apply(M)),M.each(function(){I[b][y]=i.$(this),y++,y==p&&(b++,y=0,I[b]=[])}),h=0,k=0;p*u>h;h++){k=h;for(var z=0;u>z;z++)k>=0&&p>k&&I[z][k].css({transition:"all "+this.options.duration+"ms linear "+(50+$)+"ms","-webkit-transition":"all "+this.options.duration+"ms linear "+(50+$)+"ms"}),k--;$+=100}return M.last().on(i.support.transition.end,function(){setTimeout(function(){g.remove(),d.resolve()},0)}),g.width(),M.css({"-webkit-transform":"scale(1)",transform:"scale(1)"}),d.promise()},"boxes-reverse":function(i,e,s){return t.boxes.apply(this,[i,e,s,"boxes-reverse"])},"random-fx":function(){var i=["slice-up","fold","puzzle","slice-down","boxes","slice-up-down","boxes-reverse"];return this.fxIndex=(void 0===this.fxIndex?-1:this.fxIndex)+1,i[this.fxIndex]||(this.fxIndex=0),t[i[this.fxIndex]].apply(this,arguments)}});var e=function(i){for(var t,e,s=i.length;s;t=parseInt(Math.random()*s),e=i[--s],i[s]=i[t],i[t]=e);return i};return i.slideshow.animations});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";t.component("grid",{defaults:{colwidth:"auto",animation:!0,duration:300,gutter:0,controls:!1,filter:!1,origin:t.langdirection},boot:function(){t.ready(function(i){t.$("[data-wk-grid]",i).each(function(){var i=t.$(this);i.data("grid")||t.grid(i,t.Utils.options(i.attr("data-wk-grid")))})})},init:function(){var i=this,e=String(this.options.gutter).trim().split(" ");this.gutterv=parseInt(e[0],10),this.gutterh=parseInt(e[1]||e[0],10),this.element.css({position:"relative"}),this.controls=null,this.origin=this.options.origin,this.options.controls&&(this.controls=t.$(this.options.controls),this.controls.on("click","[data-wk-filter]",function(e){e.preventDefault(),i.filter(t.$(this).attr("data-wk-filter"))}),this.controls.on("click","[data-wk-sort]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-sort").split(":");i.sort(n[0],n[1])})),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){i.currentfilter?i.filter(i.currentfilter):this.update()}.bind(this),100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.update()}),t.domObserve(this.element,function(){i.update()}),this.options.filter!==!1?this.filter(this.options.filter):this.update()},_prepareElements:function(){var t,i=this.element.children().not("[data-grid-prepared]");i.length&&(t={position:"absolute",boxSizing:"border-box",width:"auto"==this.options.colwidth?"":this.options.colwidth},this.options.gutter&&(t["padding-"+this.origin]=this.gutterh,t["padding-bottom"]=this.gutterv,this.element.css("margin-"+this.origin,-1*this.gutterh)),i.attr("data-grid-prepared","true").css(t))},update:function(i){var e=this;this._prepareElements(),i=i||this.element.children(":visible");var n,o,s,r,a,h,d,l,u,c=i,f=this.element.width()+2*this.gutterh+2,p=0,g=0,m=[];this.trigger("beforeupdate.uk.grid",[c]),c.each(function(){for(n=t.$(this),u=this.getBoundingClientRect(),o=u.width,s=u.height,p=0,g=0,h=0,l=m.length;l>h;h++)r=m[h],p<=r.aX&&(p=r.aX),p+o>f&&(p=0),g<=r.aY&&(g=r.aY);a={ele:n,top:g,width:o,height:s,aY:g+s,aX:p+o},a[e.origin]=p,m.push(a)});var v,k,b=0;for(h=0,l=m.length;l>h;h++){for(r=m[h],g=0,d=0;h>d;d++)v=m[d],r[this.origin]<v.aX&&v[this.origin]+1<r.aX&&(g=v.aY);r.top=g,r.aY=g+r.height,b=Math.max(b,r.aY)}b-=this.gutterv,this.options.animation?(this.element.stop().animate({height:b},100),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.stop().animate(k,this.options.duration)}.bind(this))):(this.element.css("height",b),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.css(k)}.bind(this))),setTimeout(function(){t.$doc.trigger("scrolling.uk.document")},2*this.options.duration*(this.options.animation?1:0)),this.trigger("afterupdate.uk.grid",[c])},filter:function(i){this.currentfilter=i,i=i||[],"number"==typeof i&&(i=i.toString()),"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()}));var e=this,n=this.element.children(),o={visible:[],hidden:[]};n.each(function(){var e=t.$(this),n=e.attr("data-wk-filter"),s=i.length?!1:!0;n&&(n=n.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){n.indexOf(t)>-1&&(s=!0)})),o[s?"visible":"hidden"].push(e)}),o.hidden=t.$(o.hidden).map(function(){return this[0]}),o.visible=t.$(o.visible).map(function(){return this[0]}),o.hidden.attr("aria-hidden","true").filter(":visible").fadeOut(this.options.duration),o.visible.attr("aria-hidden","false").filter(":hidden").css("opacity",0).show(),e.update(o.visible),this.controls&&this.controls.length&&this.controls.find("[data-wk-filter]").removeClass("wk-active").filter('[data-wk-filter="'+i+'"]').addClass("wk-active")},sort:function(i,e){e=e||1,"string"==typeof e&&(e="desc"==e.toLowerCase()?-1:1);var n=this.element.children();n.sort(function(n,o){return n=t.$(n),o=t.$(o),(o.data(i)||"")<(n.data(i)||"")?e:-1*e}).appendTo(this.element),this.update(n.filter(":visible")),this.controls&&this.controls.length&&this.controls.find("[data-wk-sort]").removeClass("wk-active").filter('[data-wk-sort="'+i+":"+(-1==e?"desc":"asc")+'"]').addClass("wk-active")}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="wk-modal">','<div class="wk-modal-dialog wk-modal-dialog-lightbox wk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="wk-modal-close wk-close wk-close-alt"></a>','<div class="wk-lightbox-content"></div>','<div class="wk-modal-spinner wk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".wk-modal-dialog:first"),e.content=e.find(".wk-lightbox-content:first"),e.loader=e.find(".wk-modal-spinner:first"),e.closer=e.find(".wk-close.wk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-wk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-wk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$('[data-wk-lightbox*="'+this.options.group+'"]'):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("wk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="wk-position-cover wk-flex wk-flex-middle wk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-previous wk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-next wk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%",maxWidth:t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".wk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="wk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".wk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("wk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("wk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("wk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="wk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),i.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var n;window.UIkit2wk&&(n=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid-parallax",["uikit"],function(){return n||t(UIkit2wk)})}(function(t){function n(t){for(var n=t.children(),i=n.filter(":visible:first"),e=i[0].offsetTop+i.outerHeight(),o=0;o<n.length&&!(n[o].offsetTop>=e);o++);return o||1}function i(n){var i,e,o,r=n.offset().top,s=n.outerHeight(),a=t.$win.scrollTop(),l=window.innerHeight;return r>a+l?o=0:a>r+s?o=1:(l>r+s?o=(l>a?a:a-l)/(r+s):(i=a+l-r,e=Math.round(i/((l+s)/100)),o=e/100),l>r&&(o=o*a/(r+s-l))),o>1?1:o}var e=[],o=function(){requestAnimationFrame(function(){for(var t=0;t<e.length;t++)e[t].process()})};t.component("gridparallax",{defaults:{target:!1,smooth:150,translate:150},boot:function(){t.$doc.on("scrolling.uk.document",o),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){o()},50)),t.ready(function(n){t.$("[data-wk-grid-parallax]",n).each(function(){var n=t.$(this);n.data("gridparallax")||t.gridparallax(n,t.Utils.options(n.attr("data-wk-grid-parallax")))})})},init:function(){var i=this;this.initItems().process(),e.push(this),t.$win.on("load resize orientationchange",function(){var e=function(){var t=n(i.element);i.element.css("margin-bottom",""),t>1&&i.element.css("margin-bottom",i.options.translate+parseInt(i.element.css("margin-bottom")))};return t.$(function(){e()}),t.Utils.debounce(e,50)}())},initItems:function(){var n=this.options.smooth;return this.items=(this.options.target?this.element.find(this.options.target):this.element.children()).each(function(){t.$(this).css({transition:"transform "+n+"ms linear",transform:""})}),this},process:function(){var e=i(this.element),o=n(this.element),r=this.items,s=[o-1];if(1==o||!e)return r.css("transform",""),void 0;for(;s.length<o&&s[s.length-1]-2;)s.push(s[s.length-1]-2);var a=this.options.translate,l=e*a;r.each(function(n,i,e){e=-1!=s.indexOf((n+1)%o)?l:l/8,t.$(this).css("transform","translate3d(0,"+e+"px, 0)")})}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2wk&&(e=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slider",["uikit"],function(){return e||t(UIkit2wk)})}(function(t){"use strict";var e,i,s,n,a={};return t.component("slider",{defaults:{center:!1,threshold:10,infinite:!0,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0,activecls:"wk-active"},boot:function(){t.ready(function(e){setTimeout(function(){t.$("[data-wk-slider]",e).each(function(){var e=t.$(this);e.data("slider")||t.slider(e,t.Utils.options(e.attr("data-wk-slider")))})},0)})},init:function(){var o=this;this.container=this.element.find(".wk-slider"),this.focus=0,t.$win.on("resize load",t.Utils.debounce(function(){o.update(!0)},100)),this.on("click.uk.slider","[data-wk-slider-item]",function(e){e.preventDefault();var i=t.$(this).attr("data-wk-slider-item");if(o.focus!=i)switch(o.stop(),i){case"next":case"previous":o["next"==i?"next":"previous"]();break;default:o.updateFocus(parseInt(i,10))}}),this.container.on({"touchstart mousedown":function(h){h.originalEvent&&h.originalEvent.touches&&(h=h.originalEvent.touches[0]),h.button&&2==h.button||!o.active||(o.stop(),s=t.$(h.target).is("a")?t.$(h.target):t.$(h.target).parents("a:first"),n=!1,s.length&&s.one("click",function(t){n&&t.preventDefault()}),i=function(t){n=!0,e=o,a={touchx:parseInt(t.pageX,10),dir:1,focus:o.focus,base:o.options.center?"center":"area"},t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),e.element.data({"pointer-start":{x:parseInt(t.pageX,10),y:parseInt(t.pageY,10)},"pointer-pos-start":o.pos}),o.container.addClass("wk-drag"),i=!1},i.x=parseInt(h.pageX,10),i.threshold=o.options.threshold)},mouseenter:function(){o.options.pauseOnHover&&(o.hovering=!0)},mouseleave:function(){o.hovering=!1}}),this.update(!0),this.on("display.uk.check",function(){o.element.is(":visible")&&o.update(!0)}),this.element.find("a,img").attr("draggable","false"),this.options.autoplay&&this.start(),t.domObserve(this.element,function(){o.element.children(":not([data-slider-slide])").length&&o.update(!0)})},update:function(e){var i,s,n,a,o=this,h=0,r=0;return this.items=this.container.children().filter(":visible"),this.vp=this.element[0].getBoundingClientRect().width,this.container.css({"min-width":"","min-height":""}),this.items.each(function(e){i=t.$(this).attr("data-slider-slide",e),a=i.css({left:"",width:""})[0].getBoundingClientRect(),s=a.width,n=i.width(),r=Math.max(r,a.height),i.css({left:h,width:s}).data({idx:e,left:h,width:s,cwidth:n,area:h+s,center:h-(o.vp/2-n/2)}),h+=s}),this.container.css({"min-width":h,"min-height":r}),this.options.infinite&&(h<=2*this.vp||this.items.length<5)&&!this.itemsResized?(this.container.children().each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}).each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}),this.itemsResized=!0,this.update()):(this.cw=h,this.pos=0,this.active=h>=this.vp,this.container.css({"-ms-transform":"","-webkit-transform":"",transform:""}),e&&this.updateFocus(this.focus),void 0)},updatePos:function(t){this.pos=t,this.container.css({"-ms-transform":"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)",transform:"translateX("+t+"px)"})},updateFocus:function(e,i){if(this.active){i=i||(e>this.focus?1:-1);var s,n,a=this.items.eq(e);if(this.options.infinite&&this.infinite(e,i),this.options.center)this.updatePos(-1*a.data("center")),this.items.filter("."+this.options.activecls).removeClass(this.options.activecls),a.addClass(this.options.activecls);else if(this.options.infinite)this.updatePos(-1*a.data("left"));else{for(s=0,n=e;n<this.items.length;n++)s+=this.items.eq(n).data("width");if(s>this.vp)this.updatePos(-1*a.data("left"));else if(1==i){for(s=0,n=this.items.length-1;n>=0;n--){if(s+=this.items.eq(n).data("width"),s==this.vp){e=n;break}if(s>this.vp){e=n<this.items.length-1?n+1:n;break}}s>this.vp?this.updatePos(-1*(this.container.width()-this.vp)):this.updatePos(-1*this.items.eq(e).data("left"))}}var o=this.items.eq(e).data("left");this.items.removeClass("wk-slide-before wk-slide-after").each(function(i){i!==e&&t.$(this).addClass(t.$(this).data("left")<o?"wk-slide-before":"wk-slide-after")}),this.focus=e,this.trigger("focusitem.uk.slider",[e,this.items.eq(e),this])}},next:function(){var t=this.items[this.focus+1]?this.focus+1:this.options.infinite?0:this.focus;this.updateFocus(t,1)},previous:function(){var t=this.items[this.focus-1]?this.focus-1:this.options.infinite?this.items[this.focus-1]?this.items-1:this.items.length-1:this.focus;this.updateFocus(t,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},infinite:function(t,e){var i,s=this,n=this.items.eq(t),a=t,o=[],h=0;if(1==e){for(i=0;i<this.items.length&&(a!=t&&(h+=this.items.eq(a).data("width"),o.push(this.items.eq(a))),!(h>this.vp));i++)a=a+1==this.items.length?0:a+1;o.length&&o.forEach(function(t){var e=n.data("area");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}else{for(i=this.items.length-1;i>-1&&(h+=this.items.eq(a).data("width"),a!=t&&o.push(this.items.eq(a)),!(h>this.vp));i--)a=a-1==-1?this.items.length-1:a-1;o.length&&o.forEach(function(t){var e=n.data("left")-t.data("width");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}}}),t.$doc.on("mousemove.uk.slider touchmove.uk.slider",function(t){if(t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i&&Math.abs(t.pageX-i.x)>i.threshold&&(window.getSelection().toString()?e=i=!1:i(t)),e){var s,n,o,h,r,c,d,u,f,l;if(t.clientX||t.clientY?s=t.clientX:(t.pageX||t.pageY)&&(s=t.pageX-document.body.scrollLeft-document.documentElement.scrollLeft),r=a.focus,n=s-e.element.data("pointer-start").x,o=e.element.data("pointer-pos-start")+n,h=s>e.element.data("pointer-start").x?-1:1,c=e.items.eq(a.focus),1==h)for(d=c.data("left")+Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("left")<d&&l.data("area")>d){r=f;break}f=f+1==e.items.length?0:f+1}else for(d=c.data("left")-Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("area")<=c.data("left")&&l.data("center")<d){r=f;break}f=f-1==-1?e.items.length-1:f-1}e.options.infinite&&r!=a._focus&&e.infinite(r,h),e.updatePos(o),a.dir=h,a._focus=r,a.touchx=parseInt(t.pageX,10),a.diff=d}}),t.$doc.on("mouseup.uk.slider touchend.uk.slider",function(){if(e){e.container.removeClass("wk-drag"),e.items.eq(a.focus);var t,s,n,o=!1;if(1==a.dir){for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")>a.diff){o=n;break}n=n+1==e.items.length?0:n+1}e.options.infinite||o||(o=e.items.length)}else{for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")<a.diff){o=n;break}n=n-1==-1?e.items.length-1:n-1}e.options.infinite||o||(o=0)}e.updateFocus(o!==!1?o:a._focus)}e=i=!1}),t.slider});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideset",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i,e,n,s){var a,o,r,l,h=t.$.Deferred(),u=this.options.delay===!1?Math.floor(this.options.duration/2):this.options.delay,d=this;if(s=s||1,this.element.css("min-height",this.element.height()),n[0]===e[0])return h.resolve(),h.promise();if("object"==typeof i?(a=i[0],o=i[1]||i[0]):(a=i,o=a),t.$body.css("overflow-x","hidden"),r=function(){if(e&&e.length&&e.hide().removeClass(o+" wk-animation-reverse").css({opacity:"","animation-delay":"",animation:""}),!n.length)return h.resolve(),void 0;for(l=0;l<n.length;l++)n.eq(1==s?l:n.length-l-1).css("animation-delay",l*u+"ms");var i=function(){n.removeClass(""+a).css({opacity:"",display:"","animation-delay":"",animation:""}),h.resolve(),t.$body.css("overflow-x",""),d.element.css("min-height",""),i=!1};n.addClass(a)[1==s?"last":"first"]().one(t.support.animation.end,function(){i&&i()}).end().css("display",""),setTimeout(function(){i&&i()},n.length*u*2)},n.length&&n.css("animation-duration",this.options.duration+"ms"),e&&e.length)for(e.css("animation-duration",this.options.duration+"ms")[1==s?"last":"first"]().one(t.support.animation.end,function(){r()}),l=0;l<e.length;l++)!function(i,e){setTimeout(function(){e.css("display","none").css("display","").css("opacity",0).on(t.support.animation.end,function(){e.removeClass(o)}).addClass(o+" wk-animation-reverse")}.bind(this),l*u)}(l,e.eq(1==s?l:e.length-l-1));else r();return h.promise()}function e(t,i){var e,n=0,s=-1,a=t.length||0,o=[];if(1>i)return null;for(;a>n;)e=n%i,e?o[s][e]=t[n]:o[++s]=[t[n]],n++;for(n=0,a=o.length;a>n;)o[n]=jQuery(o[n]),n++;return o}var n;t.component("slideset",{defaults:{"default":1,animation:"fade",duration:200,filter:"",delay:!1,controls:!1,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},sets:[],boot:function(){t.ready(function(i){t.$("[data-wk-slideset]",i).each(function(){var i=t.$(this);i.data("slideset")||t.slideset(i,t.Utils.options(i.attr("data-wk-slideset")))})})},init:function(){var i=this;this.activeSet=!1,this.list=this.element.find(".wk-slideset"),this.nav=this.element.find(".wk-slideset-nav"),this.controls=this.options.controls?t.$(this.options.controls):this.element,t.$win.on("resize load",t.Utils.debounce(function(){i.update()},100)),i.list.addClass("wk-grid-width-1-"+i.options.default),["xlarge","large","medium","small"].forEach(function(t){i.options[t]&&i.list.addClass("wk-grid-width-"+t+"-1-"+i.options[t])}),this.on("click.uk.slideset","[data-wk-slideset-item]",function(e){if(e.preventDefault(),!i.animating){var n=t.$(this).attr("data-wk-slideset-item");if(i.activeSet!==n)switch(n){case"next":case"previous":i["next"==n?"next":"previous"]();break;default:i.show(parseInt(n,10))}}}),this.controls.on("click.uk.slideset","[data-wk-filter]",function(e){var n=t.$(this);n.parent().hasClass("wk-slideset")||(e.preventDefault(),i.animating||i.currentFilter==n.attr("data-wk-filter")||(i.updateFilter(n.attr("data-wk-filter")),i._hide().then(function(){i.update(!0,!0)})))}),this.on("swipeRight swipeLeft",function(t){i["swipeLeft"==t.type?"next":"previous"]()}),this.updateFilter(this.options.filter),this.update(),this.element.on({mouseenter:function(){i.options.pauseOnHover&&(i.hovering=!0)},mouseleave:function(){i.hovering=!1}}),this.options.autoplay&&this.start(),t.domObserve(this.list,function(){i.list.children(":visible:not(.wk-active)").length&&i.update(!1,!0)})},update:function(t,i){var n,s=this.visible;if(this.visible=this.getVisibleOnCurrenBreakpoint(),s!=this.visible||i){for(this.children=this.list.children().hide(),this.items=this.getItems(),this.sets=e(this.items,this.visible),n=0;n<this.sets.length;n++)this.sets[n].css({display:"none"});if(this.nav.length&&this.nav.empty()){for(n=0;n<this.sets.length;n++)this.nav.append('<li data-wk-slideset-item="'+n+'"><a></a></li>');this.nav[1==this.nav.children().length?"addClass":"removeClass"]("wk-invisible")}this.activeSet=!1,this.show(0,!t)}},updateFilter:function(i){var e,n=this;this.currentFilter=i,this.controls.find("[data-wk-filter]").each(function(){e=t.$(this),e.parent().hasClass("wk-slideset")||(e.attr("data-wk-filter")==n.currentFilter?e.addClass("wk-active"):e.removeClass("wk-active"))})},getVisibleOnCurrenBreakpoint:function(){var i=null,e=t.$('<div style="position:absolute;height:1px;top:-1000px;width:100px"><div></div></div>').appendTo("body"),n=e.children().eq(0),s=this.options;return["xlarge","large","medium","small"].forEach(function(t){s[t]&&!i&&(e.attr("class","wk-grid-width-"+t+"-1-2").width(),50==n.width()&&(i=t))}),e.remove(),this.options[i]||this.options["default"]},getItems:function(){var i,e=[];return this.currentFilter?(i=this.currentFilter||[],"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()})),this.children.each(function(){var n=t.$(this),s=n.attr("data-wk-filter"),a=i.length?!1:!0;s&&(s=s.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){s.indexOf(t)>-1&&(a=!0)})),a&&e.push(n[0])}),e=t.$(e)):e=this.list.children(),e},show:function(i,e,s){var a=this;if(this.activeSet!==i&&!this.animating){s=s||(i<this.activeSet?-1:1);var o=this.sets[this.activeSet]||[],r=this.sets[i],l=this._getAnimation();(e||!t.support.animation)&&(l=n.none),this.animating=!0,this.nav.length&&this.nav.children().removeClass("wk-active").eq(i).addClass("wk-active"),l.apply(a,[o,r,s]).then(function(){t.Utils.checkDisplay(r,!0),a.children.hide().removeClass("wk-active"),r.addClass("wk-active").css({display:"",opacity:""}),a.animating=!1,a.activeSet=i,t.Utils.checkDisplay(r,!0),a.trigger("show.uk.slideset",[r])})}},_getAnimation:function(){var i=n[this.options.animation]||n.none;return t.support.animation||(i=n.none),i},_hide:function(){var t=this,i=this.sets[this.activeSet]||[],e=this._getAnimation();return this.animating=!0,e.apply(t,[i,[],1]).then(function(){t.animating=!1})},next:function(){this.show(this.sets[this.activeSet+1]?this.activeSet+1:0,!1,1)},previous:function(){this.show(this.sets[this.activeSet-1]?this.activeSet-1:this.sets.length-1,!1,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.animating||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)}}),n={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e,n){var s=["wk-animation-slide-top","wk-animation-slide-bottom"];return-1==n&&s.reverse(),i.apply(this,[s,t,e])},"slide-horizontal":function(t,e,n){var s=["wk-animation-slide-right","wk-animation-slide-left"];return-1==n&&s.reverse(),i.apply(this,[s,t,e,n])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.slideset.animations=n});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2wk&&(t=e(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-parallax",["uikit"],function(){return t||e(UIkit2wk)})}(function(e){"use strict";function t(t,a,r){var i,n,s,o,c,l,p,f=new Image;return n=t.element.css({backgroundSize:"cover",backgroundRepeat:"no-repeat"}),i=n.css("background-image").replace(/^url\(/g,"").replace(/\)$/g,"").replace(/("|')/g,""),o=function(){var e=n.innerWidth(),i=n.innerHeight(),o="bg"==a?r.diff:r.diff/100*i;return i+=o,e+=Math.ceil(o*c),e-o<s.w&&i<s.h?t.element.css({backgroundSize:"auto"}):(i>e/c?(l=Math.ceil(i*c),p=i,i>window.innerHeight&&(l=1.2*l,p=1.2*p)):(l=e,p=Math.ceil(e/c)),n.css({backgroundSize:l+"px "+p+"px"}).data("bgsize",{w:l,h:p}),void 0)},f.onerror=function(){},f.onload=function(){s={w:f.width,h:f.height},c=f.width/f.height,e.$win.on("load resize orientationchange",e.Utils.debounce(function(){o()},50)),o()},f.src=i,!0}function a(e,t,a){return e=i(e),t=i(t),a=a||0,r(e,t,a)}function r(e,t,a){var r="rgba("+parseInt(e[0]+a*(t[0]-e[0]),10)+","+parseInt(e[1]+a*(t[1]-e[1]),10)+","+parseInt(e[2]+a*(t[2]-e[2]),10)+","+(e&&t?parseFloat(e[3]+a*(t[3]-e[3])):1);return r+=")"}function i(e){var t,a;return a=(t=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(t=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(t[1],16),17*parseInt(t[2],16),17*parseInt(t[3],16),1]:(t=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]:(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10),parseFloat(t[4])]:p[e]||[255,255,255,0]}var n=[],s=!1,o=0,c=window.innerHeight,l=function(){o=e.$win.scrollTop(),window.requestAnimationFrame(function(){for(var e=0;e<n.length;e++)n[e].process()})};e.component("parallax",{defaults:{velocity:.5,target:!1,viewport:!1,media:!1},boot:function(){s=function(){var e,t=document.createElement("div"),a={WebkitTransform:"-webkit-transform",MSTransform:"-ms-transform",MozTransform:"-moz-transform",Transform:"transform"};document.body.insertBefore(t,null);for(var r in a)void 0!==t.style[r]&&(t.style[r]="translate3d(1px,1px,1px)",e=window.getComputedStyle(t).getPropertyValue(a[r]));return document.body.removeChild(t),void 0!==e&&e.length>0&&"none"!==e}(),e.$doc.on("scrolling.uk.document",l),e.$win.on("load resize orientationchange",e.Utils.debounce(function(){c=window.innerHeight,l()},50)),e.ready(function(t){e.$("[data-wk-parallax]",t).each(function(){var t=e.$(this);t.data("parallax")||e.parallax(t,e.Utils.options(t.attr("data-wk-parallax")))})})},init:function(){this.base=this.options.target?e.$(this.options.target):this.element,this.props={},this.velocity=this.options.velocity||1;var t=["target","velocity","viewport","plugins","media"];Object.keys(this.options).forEach(function(e){if(-1===t.indexOf(e)){var a,r,i,n,s=String(this.options[e]).split(",");e.match(/color/i)?(a=s[1]?s[0]:this._getStartValue(e),r=s[1]?s[1]:s[0],a||(a="rgba(255,255,255,0)")):(a=parseFloat(s[1]?s[0]:this._getStartValue(e)),r=parseFloat(s[1]?s[1]:s[0]),n=r>a?r-a:a-r,i=r>a?1:-1),this.props[e]={start:a,end:r,dir:i,diff:n}}}.bind(this)),n.push(this)},process:function(){if(this.options.media)switch(typeof this.options.media){case"number":if(window.innerWidth<this.options.media)return!1;break;case"string":if(window.matchMedia&&!window.matchMedia(this.options.media).matches)return!1}var e=this.percentageInViewport();this.options.viewport!==!1&&(e=0===this.options.viewport?1:e/this.options.viewport),this.update(e)},percentageInViewport:function(){var e,t,a,r=this.base.offset().top,i=this.base.outerHeight();return r>o+c?a=0:o>r+i?a=1:c>r+i?a=(c>o?o:o-c)/(r+i):(e=o+c-r,t=Math.round(e/((c+i)/100)),a=t/100),a},update:function(e){var r,i,n={transform:"",filter:""},o=e*(1-(this.velocity-this.velocity*e));0>o&&(o=0),o>1&&(o=1),(void 0===this._percent||this._percent!=o)&&(Object.keys(this.props).forEach(function(c){switch(r=this.props[c],0===e?i=r.start:1===e?i=r.end:void 0!==r.diff&&(i=r.start+r.diff*o*r.dir),"bg"!=c&&"bgp"!=c||this._bgcover||(this._bgcover=t(this,c,r)),c){case"x":n.transform+=s?" translate3d("+i+"px, 0, 0)":" translateX("+i+"px)";break;case"xp":n.transform+=s?" translate3d("+i+"%, 0, 0)":" translateX("+i+"%)";break;case"y":n.transform+=s?" translate3d(0, "+i+"px, 0)":" translateY("+i+"px)";break;case"yp":n.transform+=s?" translate3d(0, "+i+"%, 0)":" translateY("+i+"%)";break;case"rotate":n.transform+=" rotate("+i+"deg)";break;case"scale":n.transform+=" scale("+i+")";break;case"bg":n["background-position"]="50% "+i+"px";break;case"bgp":n["background-position"]="50% "+i+"%";break;case"color":case"background-color":case"border-color":n[c]=a(r.start,r.end,o);break;case"blur":n.filter+=" blur("+i+"px)";break;case"hue":n.filter+=" hue-rotate("+i+"deg)";break;case"grayscale":n.filter+=" grayscale("+i+"%)";break;case"invert":n.filter+=" invert("+i+"%)";break;case"fopacity":n.filter+=" opacity("+i+"%)";break;case"saturate":n.filter+=" saturate("+i+"%)";break;case"sepia":n.filter+=" sepia("+i+"%)";break;default:n[c]=i}}.bind(this)),n.filter&&(n["-webkit-filter"]=n.filter),this.element.css(n),this._percent=o)},_getStartValue:function(e){var t=0;switch(e){case"scale":t=1;break;default:t=this.element.css(e)}return t||0}});var p={black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]};return e.parallax});

widgetkit/wk-styles-0592a775.css000064400000367707152177723720012255 0ustar00.icon-widgetkit{position:relative;top:4px;width:24px;height:24px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-24-j.svg") 50% 50% no-repeat}.btn-widgetkit>i{width:18px;height:18px;margin:-4px 0 -4px -2px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-18-j.svg") 50% 50% no-repeat}.btn-widgetkit>i:before{content:""}.com_widgetkit .js-action-buttons,.com_widgetkit .js-header,.com_widgetkit .js-header+hr{display:none}.uk-breadcrumb{margin:0}.wk-thumbnail{height:150px;margin:1px 1px 0;border-bottom:1px solid #eee;background-color:#fafafa;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.wk-thumbnail-folder{background-image:url("/administrator/components/com_widgetkit/assets/images/folder.svg");background-size:50px 50px}.wk-thumbnail-file{background-image:url("/administrator/components/com_widgetkit/assets/images/file.svg");background-size:50px 50px}.wk-selected{background-color:#ffd!important}.uk-modal~.mce-floatpanel{z-index:100020!important}

.wk-noconflict .uk-nav li>a>div,.wk-noconflict .uk-panel-title{line-height:18px;font-size:12px}.wk-noconflict .uk-tab-center .uk-tab>li>a,.wk-noconflict .uk-tab-grid>li>a{text-align:center}.uk-modal,.wk-noconflict .uk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-noconflict .uk-hidden,.wk-noconflict .uk-invisible{visibility:hidden!important}.wk-noconflict .uk-clearfix:after,.wk-noconflict .uk-container:after,.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-grid:after,.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-panel:after,.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab:after{clear:both}.wk-noconflict .uk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.wk-noconflict .uk-grid:after,.wk-noconflict .uk-grid:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-noconflict .uk-grid>*>:last-child{margin-bottom:0}.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}@media (min-width:1400px){.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid>*{padding-left:25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}}.wk-noconflict .uk-grid-collapse{margin-left:0}.wk-noconflict .uk-grid-collapse>*{padding-left:0}.wk-noconflict .uk-grid-collapse+.uk-grid-collapse,.wk-noconflict .uk-grid-collapse>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-collapse>.uk-grid-margin{margin-top:0}.wk-noconflict .uk-grid-small{margin-left:-10px}.wk-noconflict .uk-grid-small>*{padding-left:10px}.wk-noconflict .uk-grid-small+.uk-grid-small,.wk-noconflict .uk-grid-small>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-small>.uk-grid-margin{margin-top:10px}.wk-noconflict .uk-grid-medium{margin-left:-25px}.wk-noconflict .uk-grid-medium>*{padding-left:25px}.wk-noconflict .uk-grid-medium+.uk-grid-medium,.wk-noconflict .uk-grid-medium>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-medium>.uk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-noconflict .uk-grid-large{margin-left:-25px}.wk-noconflict .uk-grid-large>*{padding-left:25px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-large-]:not(.uk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1400px){.wk-noconflict .uk-grid-large{margin-left:-50px}.wk-noconflict .uk-grid-large>*{padding-left:50px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:50px}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px}}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-1-]:not(.uk-width-1-1):nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-2-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-3-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-4-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-5-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-6-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-7-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-8-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-9-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-noconflict .uk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none;box-sizing:border-box;width:100%}.wk-noconflict [class*=uk-grid-width]>*{box-sizing:border-box;width:100%}.wk-noconflict .uk-grid-width-1-2>*{width:50%}.wk-noconflict .uk-grid-width-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-1-4>*{width:25%}.wk-noconflict .uk-grid-width-1-5>*{width:20%}.wk-noconflict .uk-grid-width-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-1-10>*{width:10%}.wk-noconflict .uk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-noconflict .uk-grid-width-small-1-1>*{width:100%}.wk-noconflict .uk-grid-width-small-1-2>*{width:50%}.wk-noconflict .uk-grid-width-small-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-small-1-4>*{width:25%}.wk-noconflict .uk-grid-width-small-1-5>*{width:20%}.wk-noconflict .uk-grid-width-small-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-noconflict .uk-grid-divider>[class*=uk-width-medium-]:not(.uk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-width-medium-1-1>*{width:100%}.wk-noconflict .uk-grid-width-medium-1-2>*{width:50%}.wk-noconflict .uk-grid-width-medium-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-medium-1-4>*{width:25%}.wk-noconflict .uk-grid-width-medium-1-5>*{width:20%}.wk-noconflict .uk-grid-width-medium-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-noconflict .uk-grid-width-large-1-1>*{width:100%}.wk-noconflict .uk-grid-width-large-1-2>*{width:50%}.wk-noconflict .uk-grid-width-large-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-large-1-4>*{width:25%}.wk-noconflict .uk-grid-width-large-1-5>*{width:20%}.wk-noconflict .uk-grid-width-large-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-large-1-10>*{width:10%}}@media (min-width:1400px){.wk-noconflict .uk-grid-width-xlarge-1-1>*{width:100%}.wk-noconflict .uk-grid-width-xlarge-1-2>*{width:50%}.wk-noconflict .uk-grid-width-xlarge-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-xlarge-1-4>*{width:25%}.wk-noconflict .uk-grid-width-xlarge-1-5>*{width:20%}.wk-noconflict .uk-grid-width-xlarge-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-xlarge-1-10>*{width:10%}}.wk-noconflict [class*=uk-width]{box-sizing:border-box;width:100%}.wk-noconflict .uk-width-1-1{width:100%}.wk-noconflict .uk-width-1-2,.wk-noconflict .uk-width-2-4,.wk-noconflict .uk-width-3-6,.wk-noconflict .uk-width-5-10{width:50%}.wk-noconflict .uk-width-1-3,.wk-noconflict .uk-width-2-6{width:33.333%}.wk-noconflict .uk-width-2-3,.wk-noconflict .uk-width-4-6{width:66.666%}.wk-noconflict .uk-width-1-4{width:25%}.wk-noconflict .uk-width-3-4{width:75%}.wk-noconflict .uk-width-1-5,.wk-noconflict .uk-width-2-10{width:20%}.wk-noconflict .uk-width-2-5,.wk-noconflict .uk-width-4-10{width:40%}.wk-noconflict .uk-width-3-5,.wk-noconflict .uk-width-6-10{width:60%}.wk-noconflict .uk-width-4-5,.wk-noconflict .uk-width-8-10{width:80%}.wk-noconflict .uk-width-1-6{width:16.666%}.wk-noconflict .uk-width-5-6{width:83.333%}.wk-noconflict .uk-width-1-10{width:10%}.wk-noconflict .uk-width-3-10{width:30%}.wk-noconflict .uk-width-7-10{width:70%}.wk-noconflict .uk-width-9-10{width:90%}@media (min-width:480px){.wk-noconflict .uk-width-small-1-1{width:100%}.wk-noconflict .uk-width-small-1-2,.wk-noconflict .uk-width-small-2-4,.wk-noconflict .uk-width-small-3-6,.wk-noconflict .uk-width-small-5-10{width:50%}.wk-noconflict .uk-width-small-1-3,.wk-noconflict .uk-width-small-2-6{width:33.333%}.wk-noconflict .uk-width-small-2-3,.wk-noconflict .uk-width-small-4-6{width:66.666%}.wk-noconflict .uk-width-small-1-4{width:25%}.wk-noconflict .uk-width-small-3-4{width:75%}.wk-noconflict .uk-width-small-1-5,.wk-noconflict .uk-width-small-2-10{width:20%}.wk-noconflict .uk-width-small-2-5,.wk-noconflict .uk-width-small-4-10{width:40%}.wk-noconflict .uk-width-small-3-5,.wk-noconflict .uk-width-small-6-10{width:60%}.wk-noconflict .uk-width-small-4-5,.wk-noconflict .uk-width-small-8-10{width:80%}.wk-noconflict .uk-width-small-1-6{width:16.666%}.wk-noconflict .uk-width-small-5-6{width:83.333%}.wk-noconflict .uk-width-small-1-10{width:10%}.wk-noconflict .uk-width-small-3-10{width:30%}.wk-noconflict .uk-width-small-7-10{width:70%}.wk-noconflict .uk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-noconflict .uk-width-medium-1-1{width:100%}.wk-noconflict .uk-width-medium-1-2,.wk-noconflict .uk-width-medium-2-4,.wk-noconflict .uk-width-medium-3-6,.wk-noconflict .uk-width-medium-5-10{width:50%}.wk-noconflict .uk-width-medium-1-3,.wk-noconflict .uk-width-medium-2-6{width:33.333%}.wk-noconflict .uk-width-medium-2-3,.wk-noconflict .uk-width-medium-4-6{width:66.666%}.wk-noconflict .uk-width-medium-1-4{width:25%}.wk-noconflict .uk-width-medium-3-4{width:75%}.wk-noconflict .uk-width-medium-1-5,.wk-noconflict .uk-width-medium-2-10{width:20%}.wk-noconflict .uk-width-medium-2-5,.wk-noconflict .uk-width-medium-4-10{width:40%}.wk-noconflict .uk-width-medium-3-5,.wk-noconflict .uk-width-medium-6-10{width:60%}.wk-noconflict .uk-width-medium-4-5,.wk-noconflict .uk-width-medium-8-10{width:80%}.wk-noconflict .uk-width-medium-1-6{width:16.666%}.wk-noconflict .uk-width-medium-5-6{width:83.333%}.wk-noconflict .uk-width-medium-1-10{width:10%}.wk-noconflict .uk-width-medium-3-10{width:30%}.wk-noconflict .uk-width-medium-7-10{width:70%}.wk-noconflict .uk-width-medium-9-10{width:90%}.wk-noconflict [class*=uk-push-],.wk-noconflict [class*=uk-pull-]{position:relative}.wk-noconflict .uk-push-1-2,.wk-noconflict .uk-push-2-4,.wk-noconflict .uk-push-3-6,.wk-noconflict .uk-push-5-10{left:50%}.wk-noconflict .uk-push-1-3,.wk-noconflict .uk-push-2-6{left:33.333%}.wk-noconflict .uk-push-2-3,.wk-noconflict .uk-push-4-6{left:66.666%}.wk-noconflict .uk-push-1-4{left:25%}.wk-noconflict .uk-push-3-4{left:75%}.wk-noconflict .uk-push-1-5,.wk-noconflict .uk-push-2-10{left:20%}.wk-noconflict .uk-push-2-5,.wk-noconflict .uk-push-4-10{left:40%}.wk-noconflict .uk-push-3-5,.wk-noconflict .uk-push-6-10{left:60%}.wk-noconflict .uk-push-4-5,.wk-noconflict .uk-push-8-10{left:80%}.wk-noconflict .uk-push-1-6{left:16.666%}.wk-noconflict .uk-push-5-6{left:83.333%}.wk-noconflict .uk-push-1-10{left:10%}.wk-noconflict .uk-push-3-10{left:30%}.wk-noconflict .uk-push-7-10{left:70%}.wk-noconflict .uk-push-9-10{left:90%}.wk-noconflict .uk-pull-1-2,.wk-noconflict .uk-pull-2-4,.wk-noconflict .uk-pull-3-6,.wk-noconflict .uk-pull-5-10{left:-50%}.wk-noconflict .uk-pull-1-3,.wk-noconflict .uk-pull-2-6{left:-33.333%}.wk-noconflict .uk-pull-2-3,.wk-noconflict .uk-pull-4-6{left:-66.666%}.wk-noconflict .uk-pull-1-4{left:-25%}.wk-noconflict .uk-pull-3-4{left:-75%}.wk-noconflict .uk-pull-1-5,.wk-noconflict .uk-pull-2-10{left:-20%}.wk-noconflict .uk-pull-2-5,.wk-noconflict .uk-pull-4-10{left:-40%}.wk-noconflict .uk-pull-3-5,.wk-noconflict .uk-pull-6-10{left:-60%}.wk-noconflict .uk-pull-4-5,.wk-noconflict .uk-pull-8-10{left:-80%}.wk-noconflict .uk-pull-1-6{left:-16.666%}.wk-noconflict .uk-pull-5-6{left:-83.333%}.wk-noconflict .uk-pull-1-10{left:-10%}.wk-noconflict .uk-pull-3-10{left:-30%}.wk-noconflict .uk-pull-7-10{left:-70%}.wk-noconflict .uk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-noconflict .uk-width-large-1-1{width:100%}.wk-noconflict .uk-width-large-1-2,.wk-noconflict .uk-width-large-2-4,.wk-noconflict .uk-width-large-3-6,.wk-noconflict .uk-width-large-5-10{width:50%}.wk-noconflict .uk-width-large-1-3,.wk-noconflict .uk-width-large-2-6{width:33.333%}.wk-noconflict .uk-width-large-2-3,.wk-noconflict .uk-width-large-4-6{width:66.666%}.wk-noconflict .uk-width-large-1-4{width:25%}.wk-noconflict .uk-width-large-3-4{width:75%}.wk-noconflict .uk-width-large-1-5,.wk-noconflict .uk-width-large-2-10{width:20%}.wk-noconflict .uk-width-large-2-5,.wk-noconflict .uk-width-large-4-10{width:40%}.wk-noconflict .uk-width-large-3-5,.wk-noconflict .uk-width-large-6-10{width:60%}.wk-noconflict .uk-width-large-4-5,.wk-noconflict .uk-width-large-8-10{width:80%}.wk-noconflict .uk-width-large-1-6{width:16.666%}.wk-noconflict .uk-width-large-5-6{width:83.333%}.wk-noconflict .uk-width-large-1-10{width:10%}.wk-noconflict .uk-width-large-3-10{width:30%}.wk-noconflict .uk-width-large-7-10{width:70%}.wk-noconflict .uk-width-large-9-10{width:90%}}@media (max-width:767px){.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-10px;margin-right:-10px}.wk-noconflict .uk-grid-divider>*{padding-left:10px;padding-right:10px}}.wk-noconflict .uk-panel{display:block;position:relative}.wk-noconflict .uk-panel,.wk-noconflict .uk-panel:hover{text-decoration:none}.wk-noconflict .uk-panel:after,.wk-noconflict .uk-panel:before{content:"";display:table}.wk-noconflict .uk-panel>:not(.uk-panel-title):last-child{margin-bottom:0}.wk-noconflict .uk-panel-title{margin-top:0;margin-bottom:20px;font-weight:400;text-transform:uppercase;color:#444}.wk-noconflict .uk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-noconflict .uk-panel-box .uk-panel-badge,.wk-noconflict .uk-panel-hover .uk-panel-badge{top:10px;right:10px}.wk-noconflict .uk-panel-teaser{margin-bottom:20px}.wk-noconflict .uk-panel-body{padding:20px}.wk-noconflict .uk-panel-box{padding:20px;background:#fff;color:#444;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-panel-box-hover:hover{background:#37a5e4;color:#fff;cursor:pointer}.wk-noconflict .uk-panel-box .uk-panel-title{color:#444}.wk-noconflict .uk-panel-box>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-box>.uk-nav-side{margin:0 -20px}.wk-noconflict .uk-panel-box-primary{background-color:#fafafa;color:#444}.wk-noconflict .uk-panel-box-primary .uk-panel-title,.wk-noconflict .uk-panel-box-primary-hover:hover{color:#444}.wk-noconflict .uk-panel-box-secondary{background-color:#f5f5f5;color:#444}.wk-noconflict .uk-panel-box-secondary .uk-panel-title,.wk-noconflict .uk-panel-box-secondary-hover:hover{color:#444}.wk-noconflict .uk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-noconflict .uk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-noconflict .uk-panel-hover>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-header .uk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-noconflict .uk-panel-space{padding:30px}.wk-noconflict .uk-panel-space .uk-panel-badge{top:30px;right:30px}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{content:"";display:block;position:absolute;top:-20px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1400px){.wk-noconflict .uk-width-xlarge-1-1{width:100%}.wk-noconflict .uk-width-xlarge-1-2,.wk-noconflict .uk-width-xlarge-2-4,.wk-noconflict .uk-width-xlarge-3-6,.wk-noconflict .uk-width-xlarge-5-10{width:50%}.wk-noconflict .uk-width-xlarge-1-3,.wk-noconflict .uk-width-xlarge-2-6{width:33.333%}.wk-noconflict .uk-width-xlarge-2-3,.wk-noconflict .uk-width-xlarge-4-6{width:66.666%}.wk-noconflict .uk-width-xlarge-1-4{width:25%}.wk-noconflict .uk-width-xlarge-3-4{width:75%}.wk-noconflict .uk-width-xlarge-1-5,.wk-noconflict .uk-width-xlarge-2-10{width:20%}.wk-noconflict .uk-width-xlarge-2-5,.wk-noconflict .uk-width-xlarge-4-10{width:40%}.wk-noconflict .uk-width-xlarge-3-5,.wk-noconflict .uk-width-xlarge-6-10{width:60%}.wk-noconflict .uk-width-xlarge-4-5,.wk-noconflict .uk-width-xlarge-8-10{width:80%}.wk-noconflict .uk-width-xlarge-1-6{width:16.666%}.wk-noconflict .uk-width-xlarge-5-6{width:83.333%}.wk-noconflict .uk-width-xlarge-1-10{width:10%}.wk-noconflict .uk-width-xlarge-3-10{width:30%}.wk-noconflict .uk-width-xlarge-7-10{width:70%}.wk-noconflict .uk-width-xlarge-9-10{width:90%}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{top:-20px}}.wk-noconflict .uk-active>.uk-panel-box-hover{background:#37a5e4;color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover *,.wk-noconflict .uk-panel-box-hover:hover *{color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover a,.wk-noconflict .uk-panel-box-hover:hover a{color:rgba(255,255,255,.8)}.wk-noconflict .uk-active>.uk-panel-box-hover a:hover,.wk-noconflict .uk-panel-box-hover:hover a:hover{color:#fff}.wk-noconflict .uk-panel-box .uk-panel-teaser{background-color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;border:1px solid #e5e5e5;border-bottom:none}.wk-noconflict .uk-active .uk-panel-hover{background:#fafafa;border-color:#e5e5e5}.wk-noconflict .uk-nav-dropdown .uk-nav-divider,.wk-noconflict .uk-nav-navbar .uk-nav-divider,.wk-noconflict .uk-nav-side .uk-nav-divider{border-top:1px solid #e5e5e5}.wk-noconflict .uk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-noconflict .uk-cover{overflow:hidden}.wk-noconflict .uk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict [data-uk-cover]{position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict .uk-nav,.wk-noconflict .uk-nav ul{margin:0;padding:0;list-style:none}.wk-noconflict .uk-nav li>a{display:block;text-decoration:none}.wk-noconflict .uk-nav>li>a{padding:5px 15px}.wk-noconflict .uk-nav ul{padding-left:15px}.wk-noconflict .uk-nav ul a{padding:2px 0}.wk-noconflict .uk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-noconflict .uk-nav-header:not(:first-child){margin-top:20px}.wk-noconflict .uk-nav-divider{margin:9px 15px}.wk-noconflict ul.uk-nav-sub{padding:5px 0 5px 15px}.wk-noconflict .uk-nav-parent-icon>.uk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-noconflict .uk-nav-parent-icon>.uk-parent.uk-open>a:after{content:"\f107"}.wk-noconflict .uk-nav-side>li>a{color:#999}.wk-noconflict .uk-nav-side>li>a:focus,.wk-noconflict .uk-nav-side>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-noconflict .uk-nav-side>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-side .uk-nav-header{color:#444}.wk-noconflict .uk-nav-side ul a{color:#37a5e5}.wk-noconflict .uk-nav-side ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-dropdown>li>a{color:#444}.wk-noconflict .uk-nav-dropdown>li>a:focus,.wk-noconflict .uk-nav-dropdown>li>a:hover{background:0 0;color:#37a5e5;outline:0}.wk-noconflict .uk-nav-dropdown .uk-nav-header{color:#999}.wk-noconflict .uk-nav-dropdown ul a{color:#37a5e5}.wk-noconflict .uk-nav-dropdown ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-navbar>li>a{color:#999}.wk-noconflict .uk-nav-navbar>li>a:focus,.wk-noconflict .uk-nav-navbar>li>a:hover{background:0 0;color:#444;outline:0}.wk-noconflict .uk-nav-navbar .uk-nav-header,.wk-noconflict .uk-nav-navbar ul a{color:#999}.wk-noconflict .uk-nav-navbar ul a:hover{color:#444}.wk-noconflict .uk-nav-offcanvas>li>a{color:#444;padding:10px 15px}.wk-noconflict .uk-nav-offcanvas>.uk-open>a,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:focus,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-noconflict html .uk-nav.uk-nav-offcanvas>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-offcanvas .uk-nav-header{color:#999}.wk-noconflict .uk-nav-offcanvas .uk-nav-divider{border-top:1px solid #ddd}.wk-noconflict .uk-nav-offcanvas ul a{color:#ccc}.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas ul a:hover{color:#fff}.wk-noconflict .uk-nav-side>li:hover>a{background:#37a5e4;color:#fff}.wk-noconflict .uk-nav>li:not(.uk-nav-divider){margin:0}.wk-noconflict .uk-nav a:focus{box-shadow:none}.wk-noconflict .uk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0;list-style:none}.wk-noconflict .uk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;position:relative;float:left;margin-bottom:0}.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-subnav:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-subnav>*>*{display:inline-block;color:#444}.wk-noconflict .uk-subnav>*>:focus,.wk-noconflict .uk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-noconflict .uk-subnav>.uk-active>*{color:#37a5e5}.wk-noconflict .uk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-noconflict .uk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-noconflict .uk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-noconflict .uk-subnav-pill>*>:focus,.wk-noconflict .uk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-noconflict .uk-subnav-pill>.uk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-noconflict .uk-subnav>.uk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-noconflict .uk-breadcrumb{padding:0;list-style:none;font-size:0}.wk-noconflict .uk-breadcrumb>li{font-size:1rem;vertical-align:top}.wk-noconflict .uk-breadcrumb>li,.wk-noconflict .uk-breadcrumb>li>a,.wk-noconflict .uk-breadcrumb>li>span{display:inline-block}.wk-noconflict .uk-breadcrumb>li:nth-child(n+2):before{content:"/";display:inline-block;margin:0 8px;color:#999}.wk-noconflict .uk-breadcrumb>li:not(.uk-active)>span,.wk-noconflict .uk-breadcrumb>li>a{color:#999}.wk-noconflict .uk-breadcrumb>li>a:hover{color:#444}.wk-noconflict .uk-tab{margin:0;padding:0;list-style:none;border-bottom:1px solid #ddd}.wk-noconflict .uk-tab:after,.wk-noconflict .uk-tab:before{content:"";display:table}.wk-noconflict .uk-tab>li{margin-bottom:-1px;float:left;position:relative}.wk-noconflict .uk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#07D;text-decoration:none}.wk-noconflict .uk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-noconflict .uk-tab>li.uk-open>a,.wk-noconflict .uk-tab>li>a:focus,.wk-noconflict .uk-tab>li>a:hover{border-color:#f5f5f5;background:#f5f5f5;color:#059;outline:0}.wk-noconflict .uk-tab>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab>li:not(.uk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-noconflict .uk-tab>li.uk-active>a{border-color:#ddd #ddd transparent;background:#fff;color:#444}.wk-noconflict .uk-tab>li.uk-disabled>a{color:#999;cursor:text}.uk-notify-message,.wk-noconflict .uk-button:not(:disabled),.wk-noconflict .uk-form input[type=checkbox]:not(:disabled),.wk-noconflict .uk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-noconflict .uk-tab>li.uk-disabled.uk-active>a,.wk-noconflict .uk-tab>li.uk-disabled>a:focus,.wk-noconflict .uk-tab>li.uk-disabled>a:hover{background:0 0;border-color:transparent}.wk-noconflict .uk-tab-flip>li{float:right}.wk-noconflict .uk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-noconflict .uk-tab>li.uk-tab-responsive>a{margin-left:0;margin-right:0}.wk-noconflict .uk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-noconflict .uk-tab-center{border-bottom:1px solid #ddd}.wk-noconflict .uk-tab-center-bottom{border-bottom:none;border-top:1px solid #ddd}.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab-center:before{content:"";display:table}.wk-noconflict .uk-tab-center .uk-tab{position:relative;right:50%;border:none;float:right}.wk-noconflict .uk-tab-center .uk-tab>li{position:relative;right:-50%}.wk-noconflict .uk-tab-bottom{border-top:1px solid #ddd;border-bottom:none}.wk-noconflict .uk-tab-bottom>li{margin-top:-1px;margin-bottom:0}.wk-noconflict .uk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0}.wk-noconflict .uk-tab-bottom>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-noconflict .uk-tab-bottom>li.uk-active>a{border-top-color:transparent;border-bottom-color:#ddd}.wk-noconflict .uk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-noconflict .uk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #ddd;z-index:-1}.wk-noconflict .uk-tab-grid>li:first-child>a{margin-left:5px}.wk-noconflict .uk-tab-grid.uk-tab-bottom{border-top:none}.wk-noconflict .uk-tab-grid.uk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-noconflict .uk-tab-left,.wk-noconflict .uk-tab-right{border-bottom:none}.wk-noconflict .uk-tab-left>li,.wk-noconflict .uk-tab-right>li{margin-bottom:0;float:none}.wk-noconflict .uk-tab-left>li>a,.wk-noconflict .uk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-noconflict .uk-tab-left>li:nth-child(n+2)>a,.wk-noconflict .uk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-noconflict .uk-tab-left>li.uk-active>a,.wk-noconflict .uk-tab-right>li.uk-active>a{border-color:#ddd}.wk-noconflict .uk-tab-left{border-right:1px solid #ddd}.wk-noconflict .uk-tab-left>li{margin-right:-1px}.wk-noconflict .uk-tab-left>li>a{border-bottom-width:1px;border-right-width:0}.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-noconflict .uk-tab-left>li.uk-active>a{border-right-color:transparent}.wk-noconflict .uk-tab-right{border-left:1px solid #ddd}.wk-noconflict .uk-tab-right>li{margin-left:-1px}.wk-noconflict .uk-tab-right>li>a{border-bottom-width:1px;border-left-width:0}.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-noconflict .uk-tab-right>li.uk-active>a{border-left-color:transparent}}.wk-noconflict .uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:20px}.wk-noconflict *+.uk-table{margin-top:20px}.wk-noconflict .uk-table td,.wk-noconflict .uk-table th{padding:10px;border-bottom:1px solid #e5e5e5}.wk-noconflict .uk-table th{text-align:left}.wk-noconflict .uk-table td{vertical-align:top}.wk-noconflict .uk-table thead th{vertical-align:bottom}.wk-noconflict .uk-table caption,.wk-noconflict .uk-table tfoot{font-size:12px;font-style:italic}.wk-noconflict .uk-table caption{text-align:left;color:#999}.wk-noconflict .uk-table tbody tr.uk-active{background:#ffd}.wk-noconflict .uk-table-middle,.wk-noconflict .uk-table-middle td{vertical-align:middle!important}.wk-noconflict .uk-table-striped tbody tr:nth-of-type(odd){background:#fafafa}.wk-noconflict .uk-table .uk-active,.wk-noconflict .uk-table-hover tbody tr:hover{background:#ffd}.wk-noconflict .uk-table-condensed td{padding:4px 8px}.wk-noconflict .uk-table tbody tr:last-child td{border-bottom:none}.wk-noconflict .uk-form input,.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-noconflict .uk-form select{text-transform:none}.wk-noconflict .uk-form optgroup{font:inherit;font-weight:700}.wk-noconflict .uk-form input::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-form input[type=checkbox],.wk-noconflict .uk-form input[type=radio]{padding:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form textarea{-webkit-appearance:none}.wk-noconflict .uk-form input[type=search]::-webkit-search-cancel-button,.wk-noconflict .uk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-noconflict .uk-form input[type=number]::-webkit-inner-spin-button,.wk-noconflict .uk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-noconflict .uk-form fieldset{border:none;margin:0;padding:0}.wk-noconflict .uk-form textarea{overflow:auto;vertical-align:top}.wk-noconflict .uk-form :invalid{box-shadow:none}.wk-noconflict .uk-form input:not([type=radio]):not([type=checkbox]),.wk-noconflict .uk-form select{vertical-align:middle}.wk-noconflict .uk-form>:last-child{margin-bottom:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form input[type=datetime-local],.wk-noconflict .uk-form input[type=date],.wk-noconflict .uk-form input[type=month],.wk-noconflict .uk-form input[type=time],.wk-noconflict .uk-form input[type=week],.wk-noconflict .uk-form input[type=color],.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px;box-shadow:none}.wk-noconflict .uk-form input:not([type]):focus,.wk-noconflict .uk-form input[type=text]:focus,.wk-noconflict .uk-form input[type=password]:focus,.wk-noconflict .uk-form input[type=email]:focus,.wk-noconflict .uk-form input[type=url]:focus,.wk-noconflict .uk-form input[type=search]:focus,.wk-noconflict .uk-form input[type=tel]:focus,.wk-noconflict .uk-form input[type=number]:focus,.wk-noconflict .uk-form input[type=datetime]:focus,.wk-noconflict .uk-form input[type=datetime-local]:focus,.wk-noconflict .uk-form input[type=date]:focus,.wk-noconflict .uk-form input[type=month]:focus,.wk-noconflict .uk-form input[type=time]:focus,.wk-noconflict .uk-form input[type=week]:focus,.wk-noconflict .uk-form input[type=color]:focus,.wk-noconflict .uk-form select:focus,.wk-noconflict .uk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-noconflict .uk-form input:not([type]):disabled,.wk-noconflict .uk-form input[type=text]:disabled,.wk-noconflict .uk-form input[type=password]:disabled,.wk-noconflict .uk-form input[type=email]:disabled,.wk-noconflict .uk-form input[type=url]:disabled,.wk-noconflict .uk-form input[type=search]:disabled,.wk-noconflict .uk-form input[type=tel]:disabled,.wk-noconflict .uk-form input[type=number]:disabled,.wk-noconflict .uk-form input[type=datetime]:disabled,.wk-noconflict .uk-form input[type=datetime-local]:disabled,.wk-noconflict .uk-form input[type=date]:disabled,.wk-noconflict .uk-form input[type=month]:disabled,.wk-noconflict .uk-form input[type=time]:disabled,.wk-noconflict .uk-form input[type=week]:disabled,.wk-noconflict .uk-form input[type=color]:disabled,.wk-noconflict .uk-form select:disabled,.wk-noconflict .uk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-noconflict .uk-form :-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form ::-moz-placeholder{opacity:1;color:#999}.wk-noconflict .uk-form ::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form :disabled::-moz-placeholder{color:#999}.wk-noconflict .uk-form :disabled::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-noconflict .uk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}.wk-noconflict input:not([type]).uk-form-small,.wk-noconflict input[type].uk-form-small,.wk-noconflict select.uk-form-small,.wk-noconflict textarea.uk-form-small{height:30px;padding:3px;font-size:14px}.wk-noconflict input:not([type]).uk-form-large,.wk-noconflict input[type].uk-form-large,.wk-noconflict select.uk-form-large,.wk-noconflict textarea.uk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-noconflict .uk-form select[multiple],.wk-noconflict .uk-form select[size],.wk-noconflict .uk-form textarea{height:auto}.wk-noconflict .uk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-success{border-color:#80c96d!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-blank{border-color:transparent!important;border-style:solid!important;background:0 0!important}.wk-noconflict .uk-form-blank:focus{border-color:#e5e5e5!important;background:#fff!important}.wk-noconflict input.uk-form-width-mini{width:40px}.wk-noconflict select.uk-form-width-mini{width:65px}.wk-noconflict .uk-form-width-small{width:130px}.wk-noconflict .uk-form-width-medium{width:200px}.wk-noconflict .uk-form-width-large{width:400px}.wk-noconflict .uk-form-row:after,.wk-noconflict .uk-form-row:before{content:"";display:table}.wk-noconflict .uk-form-row:after{clear:both}.wk-noconflict .uk-form-row+.uk-form-row{margin-top:20px}.wk-noconflict .uk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-noconflict .uk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-noconflict .uk-form-controls>:first-child{margin-top:0}.wk-noconflict .uk-form-controls>:last-child{margin-bottom:0}.wk-noconflict .uk-form-controls-condensed{margin:10px 0}.wk-noconflict .uk-form-stacked .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}@media (max-width:959px){.wk-noconflict .uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}}@media (min-width:960px){.wk-noconflict .uk-form-horizontal .uk-form-label{width:150px;margin-top:7px;float:left;font-weight:700;text-align:right}.wk-noconflict .uk-form-horizontal .uk-form-controls{margin-left:180px}.wk-noconflict .uk-form-horizontal .uk-form-controls-text{padding-top:7px}}.wk-noconflict .uk-form-icon{display:inline-block;position:relative;max-width:100%}.wk-noconflict .uk-form-icon>[class*=uk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-noconflict .uk-form-icon:not(.uk-form-icon-flip)>input{padding-left:30px!important}.wk-noconflict .uk-form-icon-flip>[class*=uk-icon-]{right:0}.wk-noconflict .uk-form-icon-flip>input{padding-right:30px!important}.wk-noconflict .uk-button::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-button{-webkit-appearance:none;margin:0;border:none;overflow:visible;font:inherit;color:#444;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 15px;background:#f5f5f5;vertical-align:middle;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;text-align:center;border:1px solid rgba(0,0,0,.1);border-radius:2px}.wk-noconflict .uk-button:focus,.wk-noconflict .uk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-button.uk-active,.wk-noconflict .uk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-button-primary{background-color:#37a5e4;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary:focus,.wk-noconflict .uk-button-primary:hover{background-color:#2495d6;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary.uk-active,.wk-noconflict .uk-button-primary:active{background-color:#1889c6;color:#fff;border-color:rgba(16,90,130,.5);box-shadow:inset 0 1px 5px -1px rgba(16,90,130,.7)}.wk-noconflict .uk-button-success{background-color:#80c96d;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success:focus,.wk-noconflict .uk-button-success:hover{background-color:#6dbc58;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success.uk-active,.wk-noconflict .uk-button-success:active{background-color:#61b54c;color:#fff;border-color:rgba(68,128,53,.5);box-shadow:inset 0 1px 5px -1px rgba(68,128,53,.7)}.wk-noconflict .uk-button-danger{background-color:#f0615b;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger:focus,.wk-noconflict .uk-button-danger:hover{background-color:#e54f49;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger.uk-active,.wk-noconflict .uk-button-danger:active{background-color:#e4463a;color:#fff;border-color:rgba(162,32,22,.5);box-shadow:inset 0 1px 5px -1px rgba(162,32,22,.7)}.wk-noconflict .uk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1);box-shadow:none}.wk-noconflict .uk-button-link,.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:disabled,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-noconflict .uk-button-link{color:#37a5e5}.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{color:#1889c7;text-decoration:none}.wk-noconflict .uk-button-link:disabled{color:#999}.wk-noconflict .uk-button-link:focus{outline:dotted 1px}.wk-noconflict .uk-button-mini{min-height:22px;padding:0 8px;line-height:20px;font-size:12px}.wk-noconflict .uk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-noconflict .uk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-noconflict .uk-button-group{display:inline-block;vertical-align:middle;position:relative;font-size:0;white-space:nowrap}.wk-noconflict .uk-button-group>*{display:inline-block}.wk-noconflict .uk-button-group .uk-button{vertical-align:top}.wk-noconflict .uk-button-dropdown{display:inline-block;vertical-align:middle;position:relative}.wk-noconflict .uk-button-group>.uk-button:not(:first-child):not(:last-child),.wk-noconflict .uk-button-group>div:not(:first-child):not(:last-child) .uk-button{border-radius:0}.wk-noconflict .uk-button-group>.uk-button:first-child,.wk-noconflict .uk-button-group>div:first-child .uk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-noconflict .uk-button-group>.uk-button:last-child,.wk-noconflict .uk-button-group>div:last-child .uk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-noconflict .uk-button-group>.uk-button:nth-child(n+2),.wk-noconflict .uk-button-group>div:nth-child(n+2) .uk-button{margin-left:-1px}.wk-noconflict .uk-button-group .uk-button:active,.wk-noconflict .uk-button-group .uk-button:hover{position:relative}@font-face{font-family:FontAwesome;src:url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff") format("woff"),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}.wk-noconflict [class*=uk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wk-noconflict [class*=uk-icon-],.wk-noconflict [class*=uk-icon-]:focus,.wk-noconflict [class*=uk-icon-]:hover{text-decoration:none}.wk-noconflict .uk-icon-small{font-size:150%;vertical-align:-10%}.wk-noconflict .uk-icon-medium{font-size:200%;vertical-align:-16%}.wk-noconflict .uk-icon-large{font-size:250%;vertical-align:-22%}.wk-noconflict .uk-icon-justify{width:1em;text-align:center}.wk-noconflict .uk-icon-spin{display:inline-block;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-icon-hover{color:#999;position:relative;z-index:1}.wk-noconflict .uk-icon-hover:hover{color:#444}.wk-noconflict .uk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-noconflict .uk-icon-button:focus,.wk-noconflict .uk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-icon-glass:before{content:"\f000"}.wk-noconflict .uk-icon-music:before{content:"\f001"}.wk-noconflict .uk-icon-search:before{content:"\f002"}.wk-noconflict .uk-icon-envelope-o:before{content:"\f003"}.wk-noconflict .uk-icon-heart:before{content:"\f004"}.wk-noconflict .uk-icon-star:before{content:"\f005"}.wk-noconflict .uk-icon-star-o:before{content:"\f006"}.wk-noconflict .uk-icon-user:before{content:"\f007"}.wk-noconflict .uk-icon-film:before{content:"\f008"}.wk-noconflict .uk-icon-th-large:before{content:"\f009"}.wk-noconflict .uk-icon-th:before{content:"\f00a"}.wk-noconflict .uk-icon-th-list:before{content:"\f00b"}.wk-noconflict .uk-icon-check:before{content:"\f00c"}.wk-noconflict .uk-icon-close:before,.wk-noconflict .uk-icon-remove:before,.wk-noconflict .uk-icon-times:before{content:"\f00d"}.wk-noconflict .uk-icon-search-plus:before{content:"\f00e"}.wk-noconflict .uk-icon-search-minus:before{content:"\f010"}.wk-noconflict .uk-icon-power-off:before{content:"\f011"}.wk-noconflict .uk-icon-signal:before{content:"\f012"}.wk-noconflict .uk-icon-cog:before,.wk-noconflict .uk-icon-gear:before{content:"\f013"}.wk-noconflict .uk-icon-trash-o:before{content:"\f014"}.wk-noconflict .uk-icon-home:before{content:"\f015"}.wk-noconflict .uk-icon-file-o:before{content:"\f016"}.wk-noconflict .uk-icon-clock-o:before{content:"\f017"}.wk-noconflict .uk-icon-road:before{content:"\f018"}.wk-noconflict .uk-icon-download:before{content:"\f019"}.wk-noconflict .uk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-noconflict .uk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-noconflict .uk-icon-inbox:before{content:"\f01c"}.wk-noconflict .uk-icon-play-circle-o:before{content:"\f01d"}.wk-noconflict .uk-icon-repeat:before,.wk-noconflict .uk-icon-rotate-right:before{content:"\f01e"}.wk-noconflict .uk-icon-refresh:before{content:"\f021"}.wk-noconflict .uk-icon-list-alt:before{content:"\f022"}.wk-noconflict .uk-icon-lock:before{content:"\f023"}.wk-noconflict .uk-icon-flag:before{content:"\f024"}.wk-noconflict .uk-icon-headphones:before{content:"\f025"}.wk-noconflict .uk-icon-volume-off:before{content:"\f026"}.wk-noconflict .uk-icon-volume-down:before{content:"\f027"}.wk-noconflict .uk-icon-volume-up:before{content:"\f028"}.wk-noconflict .uk-icon-qrcode:before{content:"\f029"}.wk-noconflict .uk-icon-barcode:before{content:"\f02a"}.wk-noconflict .uk-icon-tag:before{content:"\f02b"}.wk-noconflict .uk-icon-tags:before{content:"\f02c"}.wk-noconflict .uk-icon-book:before{content:"\f02d"}.wk-noconflict .uk-icon-bookmark:before{content:"\f02e"}.wk-noconflict .uk-icon-print:before{content:"\f02f"}.wk-noconflict .uk-icon-camera:before{content:"\f030"}.wk-noconflict .uk-icon-font:before{content:"\f031"}.wk-noconflict .uk-icon-bold:before{content:"\f032"}.wk-noconflict .uk-icon-italic:before{content:"\f033"}.wk-noconflict .uk-icon-text-height:before{content:"\f034"}.wk-noconflict .uk-icon-text-width:before{content:"\f035"}.wk-noconflict .uk-icon-align-left:before{content:"\f036"}.wk-noconflict .uk-icon-align-center:before{content:"\f037"}.wk-noconflict .uk-icon-align-right:before{content:"\f038"}.wk-noconflict .uk-icon-align-justify:before{content:"\f039"}.wk-noconflict .uk-icon-list:before{content:"\f03a"}.wk-noconflict .uk-icon-dedent:before,.wk-noconflict .uk-icon-outdent:before{content:"\f03b"}.wk-noconflict .uk-icon-indent:before{content:"\f03c"}.wk-noconflict .uk-icon-video-camera:before{content:"\f03d"}.wk-noconflict .uk-icon-image:before,.wk-noconflict .uk-icon-photo:before,.wk-noconflict .uk-icon-picture-o:before{content:"\f03e"}.wk-noconflict .uk-icon-pencil:before{content:"\f040"}.wk-noconflict .uk-icon-map-marker:before{content:"\f041"}.wk-noconflict .uk-icon-adjust:before{content:"\f042"}.wk-noconflict .uk-icon-tint:before{content:"\f043"}.wk-noconflict .uk-icon-edit:before,.wk-noconflict .uk-icon-pencil-square-o:before{content:"\f044"}.wk-noconflict .uk-icon-share-square-o:before{content:"\f045"}.wk-noconflict .uk-icon-check-square-o:before{content:"\f046"}.wk-noconflict .uk-icon-arrows:before{content:"\f047"}.wk-noconflict .uk-icon-step-backward:before{content:"\f048"}.wk-noconflict .uk-icon-fast-backward:before{content:"\f049"}.wk-noconflict .uk-icon-backward:before{content:"\f04a"}.wk-noconflict .uk-icon-play:before{content:"\f04b"}.wk-noconflict .uk-icon-pause:before{content:"\f04c"}.wk-noconflict .uk-icon-stop:before{content:"\f04d"}.wk-noconflict .uk-icon-forward:before{content:"\f04e"}.wk-noconflict .uk-icon-fast-forward:before{content:"\f050"}.wk-noconflict .uk-icon-step-forward:before{content:"\f051"}.wk-noconflict .uk-icon-eject:before{content:"\f052"}.wk-noconflict .uk-icon-chevron-left:before{content:"\f053"}.wk-noconflict .uk-icon-chevron-right:before{content:"\f054"}.wk-noconflict .uk-icon-plus-circle:before{content:"\f055"}.wk-noconflict .uk-icon-minus-circle:before{content:"\f056"}.wk-noconflict .uk-icon-times-circle:before{content:"\f057"}.wk-noconflict .uk-icon-check-circle:before{content:"\f058"}.wk-noconflict .uk-icon-question-circle:before{content:"\f059"}.wk-noconflict .uk-icon-info-circle:before{content:"\f05a"}.wk-noconflict .uk-icon-crosshairs:before{content:"\f05b"}.wk-noconflict .uk-icon-times-circle-o:before{content:"\f05c"}.wk-noconflict .uk-icon-check-circle-o:before{content:"\f05d"}.wk-noconflict .uk-icon-ban:before{content:"\f05e"}.wk-noconflict .uk-icon-arrow-left:before{content:"\f060"}.wk-noconflict .uk-icon-arrow-right:before{content:"\f061"}.wk-noconflict .uk-icon-arrow-up:before{content:"\f062"}.wk-noconflict .uk-icon-arrow-down:before{content:"\f063"}.wk-noconflict .uk-icon-mail-forward:before,.wk-noconflict .uk-icon-share:before{content:"\f064"}.wk-noconflict .uk-icon-expand:before{content:"\f065"}.wk-noconflict .uk-icon-compress:before{content:"\f066"}.wk-noconflict .uk-icon-plus:before{content:"\f067"}.wk-noconflict .uk-icon-minus:before{content:"\f068"}.wk-noconflict .uk-icon-asterisk:before{content:"\f069"}.wk-noconflict .uk-icon-exclamation-circle:before{content:"\f06a"}.wk-noconflict .uk-icon-gift:before{content:"\f06b"}.wk-noconflict .uk-icon-leaf:before{content:"\f06c"}.wk-noconflict .uk-icon-fire:before{content:"\f06d"}.wk-noconflict .uk-icon-eye:before{content:"\f06e"}.wk-noconflict .uk-icon-eye-slash:before{content:"\f070"}.wk-noconflict .uk-icon-exclamation-triangle:before,.wk-noconflict .uk-icon-warning:before{content:"\f071"}.wk-noconflict .uk-icon-plane:before{content:"\f072"}.wk-noconflict .uk-icon-calendar:before{content:"\f073"}.wk-noconflict .uk-icon-random:before{content:"\f074"}.wk-noconflict .uk-icon-comment:before{content:"\f075"}.wk-noconflict .uk-icon-magnet:before{content:"\f076"}.wk-noconflict .uk-icon-chevron-up:before{content:"\f077"}.wk-noconflict .uk-icon-chevron-down:before{content:"\f078"}.wk-noconflict .uk-icon-retweet:before{content:"\f079"}.wk-noconflict .uk-icon-shopping-cart:before{content:"\f07a"}.wk-noconflict .uk-icon-folder:before{content:"\f07b"}.wk-noconflict .uk-icon-folder-open:before{content:"\f07c"}.wk-noconflict .uk-icon-arrows-v:before{content:"\f07d"}.wk-noconflict .uk-icon-arrows-h:before{content:"\f07e"}.wk-noconflict .uk-icon-bar-chart-o:before,.wk-noconflict .uk-icon-bar-chart:before{content:"\f080"}.wk-noconflict .uk-icon-twitter-square:before{content:"\f081"}.wk-noconflict .uk-icon-facebook-square:before{content:"\f082"}.wk-noconflict .uk-icon-camera-retro:before{content:"\f083"}.wk-noconflict .uk-icon-key:before{content:"\f084"}.wk-noconflict .uk-icon-cogs:before,.wk-noconflict .uk-icon-gears:before{content:"\f085"}.wk-noconflict .uk-icon-comments:before{content:"\f086"}.wk-noconflict .uk-icon-thumbs-o-up:before{content:"\f087"}.wk-noconflict .uk-icon-thumbs-o-down:before{content:"\f088"}.wk-noconflict .uk-icon-star-half:before{content:"\f089"}.wk-noconflict .uk-icon-heart-o:before{content:"\f08a"}.wk-noconflict .uk-icon-sign-out:before{content:"\f08b"}.wk-noconflict .uk-icon-linkedin-square:before{content:"\f08c"}.wk-noconflict .uk-icon-thumb-tack:before{content:"\f08d"}.wk-noconflict .uk-icon-external-link:before{content:"\f08e"}.wk-noconflict .uk-icon-sign-in:before{content:"\f090"}.wk-noconflict .uk-icon-trophy:before{content:"\f091"}.wk-noconflict .uk-icon-github-square:before{content:"\f092"}.wk-noconflict .uk-icon-upload:before{content:"\f093"}.wk-noconflict .uk-icon-lemon-o:before{content:"\f094"}.wk-noconflict .uk-icon-phone:before{content:"\f095"}.wk-noconflict .uk-icon-square-o:before{content:"\f096"}.wk-noconflict .uk-icon-bookmark-o:before{content:"\f097"}.wk-noconflict .uk-icon-phone-square:before{content:"\f098"}.wk-noconflict .uk-icon-twitter:before{content:"\f099"}.wk-noconflict .uk-icon-facebook-f:before,.wk-noconflict .uk-icon-facebook:before{content:"\f09a"}.wk-noconflict .uk-icon-github:before{content:"\f09b"}.wk-noconflict .uk-icon-unlock:before{content:"\f09c"}.wk-noconflict .uk-icon-credit-card:before{content:"\f09d"}.wk-noconflict .uk-icon-rss:before{content:"\f09e"}.wk-noconflict .uk-icon-hdd-o:before{content:"\f0a0"}.wk-noconflict .uk-icon-bullhorn:before{content:"\f0a1"}.wk-noconflict .uk-icon-bell:before{content:"\f0f3"}.wk-noconflict .uk-icon-certificate:before{content:"\f0a3"}.wk-noconflict .uk-icon-hand-o-right:before{content:"\f0a4"}.wk-noconflict .uk-icon-hand-o-left:before{content:"\f0a5"}.wk-noconflict .uk-icon-hand-o-up:before{content:"\f0a6"}.wk-noconflict .uk-icon-hand-o-down:before{content:"\f0a7"}.wk-noconflict .uk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-noconflict .uk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-noconflict .uk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-noconflict .uk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-noconflict .uk-icon-globe:before{content:"\f0ac"}.wk-noconflict .uk-icon-wrench:before{content:"\f0ad"}.wk-noconflict .uk-icon-tasks:before{content:"\f0ae"}.wk-noconflict .uk-icon-filter:before{content:"\f0b0"}.wk-noconflict .uk-icon-briefcase:before{content:"\f0b1"}.wk-noconflict .uk-icon-arrows-alt:before{content:"\f0b2"}.wk-noconflict .uk-icon-group:before,.wk-noconflict .uk-icon-users:before{content:"\f0c0"}.wk-noconflict .uk-icon-chain:before,.wk-noconflict .uk-icon-link:before{content:"\f0c1"}.wk-noconflict .uk-icon-cloud:before{content:"\f0c2"}.wk-noconflict .uk-icon-flask:before{content:"\f0c3"}.wk-noconflict .uk-icon-cut:before,.wk-noconflict .uk-icon-scissors:before{content:"\f0c4"}.wk-noconflict .uk-icon-copy:before,.wk-noconflict .uk-icon-files-o:before{content:"\f0c5"}.wk-noconflict .uk-icon-paperclip:before{content:"\f0c6"}.wk-noconflict .uk-icon-floppy-o:before,.wk-noconflict .uk-icon-save:before{content:"\f0c7"}.wk-noconflict .uk-icon-square:before{content:"\f0c8"}.wk-noconflict .uk-icon-bars:before,.wk-noconflict .uk-icon-navicon:before,.wk-noconflict .uk-icon-reorder:before{content:"\f0c9"}.wk-noconflict .uk-icon-list-ul:before{content:"\f0ca"}.wk-noconflict .uk-icon-list-ol:before{content:"\f0cb"}.wk-noconflict .uk-icon-strikethrough:before{content:"\f0cc"}.wk-noconflict .uk-icon-underline:before{content:"\f0cd"}.wk-noconflict .uk-icon-table:before{content:"\f0ce"}.wk-noconflict .uk-icon-magic:before{content:"\f0d0"}.wk-noconflict .uk-icon-truck:before{content:"\f0d1"}.wk-noconflict .uk-icon-pinterest:before{content:"\f0d2"}.wk-noconflict .uk-icon-pinterest-square:before{content:"\f0d3"}.wk-noconflict .uk-icon-google-plus-square:before{content:"\f0d4"}.wk-noconflict .uk-icon-google-plus:before{content:"\f0d5"}.wk-noconflict .uk-icon-money:before{content:"\f0d6"}.wk-noconflict .uk-icon-caret-down:before{content:"\f0d7"}.wk-noconflict .uk-icon-caret-up:before{content:"\f0d8"}.wk-noconflict .uk-icon-caret-left:before{content:"\f0d9"}.wk-noconflict .uk-icon-caret-right:before{content:"\f0da"}.wk-noconflict .uk-icon-columns:before{content:"\f0db"}.wk-noconflict .uk-icon-sort:before,.wk-noconflict .uk-icon-unsorted:before{content:"\f0dc"}.wk-noconflict .uk-icon-sort-desc:before,.wk-noconflict .uk-icon-sort-down:before{content:"\f0dd"}.wk-noconflict .uk-icon-sort-asc:before,.wk-noconflict .uk-icon-sort-up:before{content:"\f0de"}.wk-noconflict .uk-icon-envelope:before{content:"\f0e0"}.wk-noconflict .uk-icon-linkedin:before{content:"\f0e1"}.wk-noconflict .uk-icon-rotate-left:before,.wk-noconflict .uk-icon-undo:before{content:"\f0e2"}.wk-noconflict .uk-icon-gavel:before,.wk-noconflict .uk-icon-legal:before{content:"\f0e3"}.wk-noconflict .uk-icon-dashboard:before,.wk-noconflict .uk-icon-tachometer:before{content:"\f0e4"}.wk-noconflict .uk-icon-comment-o:before{content:"\f0e5"}.wk-noconflict .uk-icon-comments-o:before{content:"\f0e6"}.wk-noconflict .uk-icon-bolt:before,.wk-noconflict .uk-icon-flash:before{content:"\f0e7"}.wk-noconflict .uk-icon-sitemap:before{content:"\f0e8"}.wk-noconflict .uk-icon-umbrella:before{content:"\f0e9"}.wk-noconflict .uk-icon-clipboard:before,.wk-noconflict .uk-icon-paste:before{content:"\f0ea"}.wk-noconflict .uk-icon-lightbulb-o:before{content:"\f0eb"}.wk-noconflict .uk-icon-exchange:before{content:"\f0ec"}.wk-noconflict .uk-icon-cloud-download:before{content:"\f0ed"}.wk-noconflict .uk-icon-cloud-upload:before{content:"\f0ee"}.wk-noconflict .uk-icon-user-md:before{content:"\f0f0"}.wk-noconflict .uk-icon-stethoscope:before{content:"\f0f1"}.wk-noconflict .uk-icon-suitcase:before{content:"\f0f2"}.wk-noconflict .uk-icon-bell-o:before{content:"\f0a2"}.wk-noconflict .uk-icon-coffee:before{content:"\f0f4"}.wk-noconflict .uk-icon-cutlery:before{content:"\f0f5"}.wk-noconflict .uk-icon-file-text-o:before{content:"\f0f6"}.wk-noconflict .uk-icon-building-o:before{content:"\f0f7"}.wk-noconflict .uk-icon-hospital-o:before{content:"\f0f8"}.wk-noconflict .uk-icon-ambulance:before{content:"\f0f9"}.wk-noconflict .uk-icon-medkit:before{content:"\f0fa"}.wk-noconflict .uk-icon-fighter-jet:before{content:"\f0fb"}.wk-noconflict .uk-icon-beer:before{content:"\f0fc"}.wk-noconflict .uk-icon-h-square:before{content:"\f0fd"}.wk-noconflict .uk-icon-plus-square:before{content:"\f0fe"}.wk-noconflict .uk-icon-angle-double-left:before{content:"\f100"}.wk-noconflict .uk-icon-angle-double-right:before{content:"\f101"}.wk-noconflict .uk-icon-angle-double-up:before{content:"\f102"}.wk-noconflict .uk-icon-angle-double-down:before{content:"\f103"}.wk-noconflict .uk-icon-angle-left:before{content:"\f104"}.wk-noconflict .uk-icon-angle-right:before{content:"\f105"}.wk-noconflict .uk-icon-angle-up:before{content:"\f106"}.wk-noconflict .uk-icon-angle-down:before{content:"\f107"}.wk-noconflict .uk-icon-desktop:before{content:"\f108"}.wk-noconflict .uk-icon-laptop:before{content:"\f109"}.wk-noconflict .uk-icon-tablet:before{content:"\f10a"}.wk-noconflict .uk-icon-mobile-phone:before,.wk-noconflict .uk-icon-mobile:before{content:"\f10b"}.wk-noconflict .uk-icon-circle-o:before{content:"\f10c"}.wk-noconflict .uk-icon-quote-left:before{content:"\f10d"}.wk-noconflict .uk-icon-quote-right:before{content:"\f10e"}.wk-noconflict .uk-icon-spinner:before{content:"\f110"}.wk-noconflict .uk-icon-circle:before{content:"\f111"}.wk-noconflict .uk-icon-mail-reply:before,.wk-noconflict .uk-icon-reply:before{content:"\f112"}.wk-noconflict .uk-icon-github-alt:before{content:"\f113"}.wk-noconflict .uk-icon-folder-o:before{content:"\f114"}.wk-noconflict .uk-icon-folder-open-o:before{content:"\f115"}.wk-noconflict .uk-icon-smile-o:before{content:"\f118"}.wk-noconflict .uk-icon-frown-o:before{content:"\f119"}.wk-noconflict .uk-icon-meh-o:before{content:"\f11a"}.wk-noconflict .uk-icon-gamepad:before{content:"\f11b"}.wk-noconflict .uk-icon-keyboard-o:before{content:"\f11c"}.wk-noconflict .uk-icon-flag-o:before{content:"\f11d"}.wk-noconflict .uk-icon-flag-checkered:before{content:"\f11e"}.wk-noconflict .uk-icon-terminal:before{content:"\f120"}.wk-noconflict .uk-icon-code:before{content:"\f121"}.wk-noconflict .uk-icon-mail-reply-all:before,.wk-noconflict .uk-icon-reply-all:before{content:"\f122"}.wk-noconflict .uk-icon-star-half-empty:before,.wk-noconflict .uk-icon-star-half-full:before,.wk-noconflict .uk-icon-star-half-o:before{content:"\f123"}.wk-noconflict .uk-icon-location-arrow:before{content:"\f124"}.wk-noconflict .uk-icon-crop:before{content:"\f125"}.wk-noconflict .uk-icon-code-fork:before{content:"\f126"}.wk-noconflict .uk-icon-chain-broken:before,.wk-noconflict .uk-icon-unlink:before{content:"\f127"}.wk-noconflict .uk-icon-question:before{content:"\f128"}.wk-noconflict .uk-icon-info:before{content:"\f129"}.wk-noconflict .uk-icon-exclamation:before{content:"\f12a"}.wk-noconflict .uk-icon-superscript:before{content:"\f12b"}.wk-noconflict .uk-icon-subscript:before{content:"\f12c"}.wk-noconflict .uk-icon-eraser:before{content:"\f12d"}.wk-noconflict .uk-icon-puzzle-piece:before{content:"\f12e"}.wk-noconflict .uk-icon-microphone:before{content:"\f130"}.wk-noconflict .uk-icon-microphone-slash:before{content:"\f131"}.wk-noconflict .uk-icon-shield:before{content:"\f132"}.wk-noconflict .uk-icon-calendar-o:before{content:"\f133"}.wk-noconflict .uk-icon-fire-extinguisher:before{content:"\f134"}.wk-noconflict .uk-icon-rocket:before{content:"\f135"}.wk-noconflict .uk-icon-maxcdn:before{content:"\f136"}.wk-noconflict .uk-icon-chevron-circle-left:before{content:"\f137"}.wk-noconflict .uk-icon-chevron-circle-right:before{content:"\f138"}.wk-noconflict .uk-icon-chevron-circle-up:before{content:"\f139"}.wk-noconflict .uk-icon-chevron-circle-down:before{content:"\f13a"}.wk-noconflict .uk-icon-html5:before{content:"\f13b"}.wk-noconflict .uk-icon-css3:before{content:"\f13c"}.wk-noconflict .uk-icon-anchor:before{content:"\f13d"}.wk-noconflict .uk-icon-unlock-alt:before{content:"\f13e"}.wk-noconflict .uk-icon-bullseye:before{content:"\f140"}.wk-noconflict .uk-icon-ellipsis-h:before{content:"\f141"}.wk-noconflict .uk-icon-ellipsis-v:before{content:"\f142"}.wk-noconflict .uk-icon-rss-square:before{content:"\f143"}.wk-noconflict .uk-icon-play-circle:before{content:"\f144"}.wk-noconflict .uk-icon-ticket:before{content:"\f145"}.wk-noconflict .uk-icon-minus-square:before{content:"\f146"}.wk-noconflict .uk-icon-minus-square-o:before{content:"\f147"}.wk-noconflict .uk-icon-level-up:before{content:"\f148"}.wk-noconflict .uk-icon-level-down:before{content:"\f149"}.wk-noconflict .uk-icon-check-square:before{content:"\f14a"}.wk-noconflict .uk-icon-pencil-square:before{content:"\f14b"}.wk-noconflict .uk-icon-external-link-square:before{content:"\f14c"}.wk-noconflict .uk-icon-share-square:before{content:"\f14d"}.wk-noconflict .uk-icon-compass:before{content:"\f14e"}.wk-noconflict .uk-icon-caret-square-o-down:before,.wk-noconflict .uk-icon-toggle-down:before{content:"\f150"}.wk-noconflict .uk-icon-caret-square-o-up:before,.wk-noconflict .uk-icon-toggle-up:before{content:"\f151"}.wk-noconflict .uk-icon-caret-square-o-right:before,.wk-noconflict .uk-icon-toggle-right:before{content:"\f152"}.wk-noconflict .uk-icon-eur:before,.wk-noconflict .uk-icon-euro:before{content:"\f153"}.wk-noconflict .uk-icon-gbp:before{content:"\f154"}.wk-noconflict .uk-icon-dollar:before,.wk-noconflict .uk-icon-usd:before{content:"\f155"}.wk-noconflict .uk-icon-inr:before,.wk-noconflict .uk-icon-rupee:before{content:"\f156"}.wk-noconflict .uk-icon-cny:before,.wk-noconflict .uk-icon-jpy:before,.wk-noconflict .uk-icon-rmb:before,.wk-noconflict .uk-icon-yen:before{content:"\f157"}.wk-noconflict .uk-icon-rouble:before,.wk-noconflict .uk-icon-rub:before,.wk-noconflict .uk-icon-ruble:before{content:"\f158"}.wk-noconflict .uk-icon-krw:before,.wk-noconflict .uk-icon-won:before{content:"\f159"}.wk-noconflict .uk-icon-bitcoin:before,.wk-noconflict .uk-icon-btc:before{content:"\f15a"}.wk-noconflict .uk-icon-file:before{content:"\f15b"}.wk-noconflict .uk-icon-file-text:before{content:"\f15c"}.wk-noconflict .uk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-noconflict .uk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-noconflict .uk-icon-sort-amount-asc:before{content:"\f160"}.wk-noconflict .uk-icon-sort-amount-desc:before{content:"\f161"}.wk-noconflict .uk-icon-sort-numeric-asc:before{content:"\f162"}.wk-noconflict .uk-icon-sort-numeric-desc:before{content:"\f163"}.wk-noconflict .uk-icon-thumbs-up:before{content:"\f164"}.wk-noconflict .uk-icon-thumbs-down:before{content:"\f165"}.wk-noconflict .uk-icon-youtube-square:before{content:"\f166"}.wk-noconflict .uk-icon-youtube:before{content:"\f167"}.wk-noconflict .uk-icon-xing:before{content:"\f168"}.wk-noconflict .uk-icon-xing-square:before{content:"\f169"}.wk-noconflict .uk-icon-youtube-play:before{content:"\f16a"}.wk-noconflict .uk-icon-dropbox:before{content:"\f16b"}.wk-noconflict .uk-icon-stack-overflow:before{content:"\f16c"}.wk-noconflict .uk-icon-instagram:before{content:"\f16d"}.wk-noconflict .uk-icon-flickr:before{content:"\f16e"}.wk-noconflict .uk-icon-adn:before{content:"\f170"}.wk-noconflict .uk-icon-bitbucket:before{content:"\f171"}.wk-noconflict .uk-icon-bitbucket-square:before{content:"\f172"}.wk-noconflict .uk-icon-tumblr:before{content:"\f173"}.wk-noconflict .uk-icon-tumblr-square:before{content:"\f174"}.wk-noconflict .uk-icon-long-arrow-down:before{content:"\f175"}.wk-noconflict .uk-icon-long-arrow-up:before{content:"\f176"}.wk-noconflict .uk-icon-long-arrow-left:before{content:"\f177"}.wk-noconflict .uk-icon-long-arrow-right:before{content:"\f178"}.wk-noconflict .uk-icon-apple:before{content:"\f179"}.wk-noconflict .uk-icon-windows:before{content:"\f17a"}.wk-noconflict .uk-icon-android:before{content:"\f17b"}.wk-noconflict .uk-icon-linux:before{content:"\f17c"}.wk-noconflict .uk-icon-dribbble:before{content:"\f17d"}.wk-noconflict .uk-icon-skype:before{content:"\f17e"}.wk-noconflict .uk-icon-foursquare:before{content:"\f180"}.wk-noconflict .uk-icon-trello:before{content:"\f181"}.wk-noconflict .uk-icon-female:before{content:"\f182"}.wk-noconflict .uk-icon-male:before{content:"\f183"}.wk-noconflict .uk-icon-gittip:before,.wk-noconflict .uk-icon-gratipay:before{content:"\f184"}.wk-noconflict .uk-icon-sun-o:before{content:"\f185"}.wk-noconflict .uk-icon-moon-o:before{content:"\f186"}.wk-noconflict .uk-icon-archive:before{content:"\f187"}.wk-noconflict .uk-icon-bug:before{content:"\f188"}.wk-noconflict .uk-icon-vk:before{content:"\f189"}.wk-noconflict .uk-icon-weibo:before{content:"\f18a"}.wk-noconflict .uk-icon-renren:before{content:"\f18b"}.wk-noconflict .uk-icon-pagelines:before{content:"\f18c"}.wk-noconflict .uk-icon-stack-exchange:before{content:"\f18d"}.wk-noconflict .uk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-noconflict .uk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-noconflict .uk-icon-caret-square-o-left:before,.wk-noconflict .uk-icon-toggle-left:before{content:"\f191"}.wk-noconflict .uk-icon-dot-circle-o:before{content:"\f192"}.wk-noconflict .uk-icon-wheelchair:before{content:"\f193"}.wk-noconflict .uk-icon-vimeo-square:before{content:"\f194"}.wk-noconflict .uk-icon-try:before,.wk-noconflict .uk-icon-turkish-lira:before{content:"\f195"}.wk-noconflict .uk-icon-plus-square-o:before{content:"\f196"}.wk-noconflict .uk-icon-space-shuttle:before{content:"\f197"}.wk-noconflict .uk-icon-slack:before{content:"\f198"}.wk-noconflict .uk-icon-envelope-square:before{content:"\f199"}.wk-noconflict .uk-icon-wordpress:before{content:"\f19a"}.wk-noconflict .uk-icon-openid:before{content:"\f19b"}.wk-noconflict .uk-icon-bank:before,.wk-noconflict .uk-icon-institution:before,.wk-noconflict .uk-icon-university:before{content:"\f19c"}.wk-noconflict .uk-icon-graduation-cap:before,.wk-noconflict .uk-icon-mortar-board:before{content:"\f19d"}.wk-noconflict .uk-icon-yahoo:before{content:"\f19e"}.wk-noconflict .uk-icon-google:before{content:"\f1a0"}.wk-noconflict .uk-icon-reddit:before{content:"\f1a1"}.wk-noconflict .uk-icon-reddit-square:before{content:"\f1a2"}.wk-noconflict .uk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-noconflict .uk-icon-stumbleupon:before{content:"\f1a4"}.wk-noconflict .uk-icon-delicious:before{content:"\f1a5"}.wk-noconflict .uk-icon-digg:before{content:"\f1a6"}.wk-noconflict .uk-icon-pied-piper:before{content:"\f1a7"}.wk-noconflict .uk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-noconflict .uk-icon-drupal:before{content:"\f1a9"}.wk-noconflict .uk-icon-joomla:before{content:"\f1aa"}.wk-noconflict .uk-icon-language:before{content:"\f1ab"}.wk-noconflict .uk-icon-fax:before{content:"\f1ac"}.wk-noconflict .uk-icon-building:before{content:"\f1ad"}.wk-noconflict .uk-icon-child:before{content:"\f1ae"}.wk-noconflict .uk-icon-paw:before{content:"\f1b0"}.wk-noconflict .uk-icon-spoon:before{content:"\f1b1"}.wk-noconflict .uk-icon-cube:before{content:"\f1b2"}.wk-noconflict .uk-icon-cubes:before{content:"\f1b3"}.wk-noconflict .uk-icon-behance:before{content:"\f1b4"}.wk-noconflict .uk-icon-behance-square:before{content:"\f1b5"}.wk-noconflict .uk-icon-steam:before{content:"\f1b6"}.wk-noconflict .uk-icon-steam-square:before{content:"\f1b7"}.wk-noconflict .uk-icon-recycle:before{content:"\f1b8"}.wk-noconflict .uk-icon-automobile:before,.wk-noconflict .uk-icon-car:before{content:"\f1b9"}.wk-noconflict .uk-icon-cab:before,.wk-noconflict .uk-icon-taxi:before{content:"\f1ba"}.wk-noconflict .uk-icon-tree:before{content:"\f1bb"}.wk-noconflict .uk-icon-spotify:before{content:"\f1bc"}.wk-noconflict .uk-icon-deviantart:before{content:"\f1bd"}.wk-noconflict .uk-icon-soundcloud:before{content:"\f1be"}.wk-noconflict .uk-icon-database:before{content:"\f1c0"}.wk-noconflict .uk-icon-file-pdf-o:before{content:"\f1c1"}.wk-noconflict .uk-icon-file-word-o:before{content:"\f1c2"}.wk-noconflict .uk-icon-file-excel-o:before{content:"\f1c3"}.wk-noconflict .uk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-noconflict .uk-icon-file-image-o:before,.wk-noconflict .uk-icon-file-photo-o:before,.wk-noconflict .uk-icon-file-picture-o:before{content:"\f1c5"}.wk-noconflict .uk-icon-file-archive-o:before,.wk-noconflict .uk-icon-file-zip-o:before{content:"\f1c6"}.wk-noconflict .uk-icon-file-audio-o:before,.wk-noconflict .uk-icon-file-sound-o:before{content:"\f1c7"}.wk-noconflict .uk-icon-file-movie-o:before,.wk-noconflict .uk-icon-file-video-o:before{content:"\f1c8"}.wk-noconflict .uk-icon-file-code-o:before{content:"\f1c9"}.wk-noconflict .uk-icon-vine:before{content:"\f1ca"}.wk-noconflict .uk-icon-codepen:before{content:"\f1cb"}.wk-noconflict .uk-icon-jsfiddle:before{content:"\f1cc"}.wk-noconflict .uk-icon-life-bouy:before,.wk-noconflict .uk-icon-life-buoy:before,.wk-noconflict .uk-icon-life-ring:before,.wk-noconflict .uk-icon-life-saver:before,.wk-noconflict .uk-icon-support:before{content:"\f1cd"}.wk-noconflict .uk-icon-circle-o-notch:before{content:"\f1ce"}.wk-noconflict .uk-icon-ra:before,.wk-noconflict .uk-icon-rebel:before{content:"\f1d0"}.wk-noconflict .uk-icon-empire:before,.wk-noconflict .uk-icon-ge:before{content:"\f1d1"}.wk-noconflict .uk-icon-git-square:before{content:"\f1d2"}.wk-noconflict .uk-icon-git:before{content:"\f1d3"}.wk-noconflict .uk-icon-hacker-news:before{content:"\f1d4"}.wk-noconflict .uk-icon-tencent-weibo:before{content:"\f1d5"}.wk-noconflict .uk-icon-qq:before{content:"\f1d6"}.wk-noconflict .uk-icon-wechat:before,.wk-noconflict .uk-icon-weixin:before{content:"\f1d7"}.wk-noconflict .uk-icon-paper-plane:before,.wk-noconflict .uk-icon-send:before{content:"\f1d8"}.wk-noconflict .uk-icon-paper-plane-o:before,.wk-noconflict .uk-icon-send-o:before{content:"\f1d9"}.wk-noconflict .uk-icon-history:before{content:"\f1da"}.wk-noconflict .uk-icon-circle-thin:before,.wk-noconflict .uk-icon-genderless:before{content:"\f1db"}.wk-noconflict .uk-icon-header:before{content:"\f1dc"}.wk-noconflict .uk-icon-paragraph:before{content:"\f1dd"}.wk-noconflict .uk-icon-sliders:before{content:"\f1de"}.wk-noconflict .uk-icon-share-alt:before{content:"\f1e0"}.wk-noconflict .uk-icon-share-alt-square:before{content:"\f1e1"}.wk-noconflict .uk-icon-bomb:before{content:"\f1e2"}.wk-noconflict .uk-icon-futbol-o:before,.wk-noconflict .uk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-noconflict .uk-icon-tty:before{content:"\f1e4"}.wk-noconflict .uk-icon-binoculars:before{content:"\f1e5"}.wk-noconflict .uk-icon-plug:before{content:"\f1e6"}.wk-noconflict .uk-icon-slideshare:before{content:"\f1e7"}.wk-noconflict .uk-icon-twitch:before{content:"\f1e8"}.wk-noconflict .uk-icon-yelp:before{content:"\f1e9"}.wk-noconflict .uk-icon-newspaper-o:before{content:"\f1ea"}.wk-noconflict .uk-icon-wifi:before{content:"\f1eb"}.wk-noconflict .uk-icon-calculator:before{content:"\f1ec"}.wk-noconflict .uk-icon-paypal:before{content:"\f1ed"}.wk-noconflict .uk-icon-google-wallet:before{content:"\f1ee"}.wk-noconflict .uk-icon-cc-visa:before{content:"\f1f0"}.wk-noconflict .uk-icon-cc-mastercard:before{content:"\f1f1"}.wk-noconflict .uk-icon-cc-discover:before{content:"\f1f2"}.wk-noconflict .uk-icon-cc-amex:before{content:"\f1f3"}.wk-noconflict .uk-icon-cc-paypal:before{content:"\f1f4"}.wk-noconflict .uk-icon-cc-stripe:before{content:"\f1f5"}.wk-noconflict .uk-icon-bell-slash:before{content:"\f1f6"}.wk-noconflict .uk-icon-bell-slash-o:before{content:"\f1f7"}.wk-noconflict .uk-icon-trash:before{content:"\f1f8"}.wk-noconflict .uk-icon-copyright:before{content:"\f1f9"}.wk-noconflict .uk-icon-at:before{content:"\f1fa"}.wk-noconflict .uk-icon-eyedropper:before{content:"\f1fb"}.wk-noconflict .uk-icon-paint-brush:before{content:"\f1fc"}.wk-noconflict .uk-icon-birthday-cake:before{content:"\f1fd"}.wk-noconflict .uk-icon-area-chart:before{content:"\f1fe"}.wk-noconflict .uk-icon-pie-chart:before{content:"\f200"}.wk-noconflict .uk-icon-line-chart:before{content:"\f201"}.wk-noconflict .uk-icon-lastfm:before{content:"\f202"}.wk-noconflict .uk-icon-lastfm-square:before{content:"\f203"}.wk-noconflict .uk-icon-toggle-off:before{content:"\f204"}.wk-noconflict .uk-icon-toggle-on:before{content:"\f205"}.wk-noconflict .uk-icon-bicycle:before{content:"\f206"}.wk-noconflict .uk-icon-bus:before{content:"\f207"}.wk-noconflict .uk-icon-ioxhost:before{content:"\f208"}.wk-noconflict .uk-icon-angellist:before{content:"\f209"}.wk-noconflict .uk-icon-cc:before{content:"\f20a"}.wk-noconflict .uk-icon-ils:before,.wk-noconflict .uk-icon-shekel:before,.wk-noconflict .uk-icon-sheqel:before{content:"\f20b"}.wk-noconflict .uk-icon-meanpath:before{content:"\f20c"}.wk-noconflict .uk-icon-buysellads:before{content:"\f20d"}.wk-noconflict .uk-icon-connectdevelop:before{content:"\f20e"}.wk-noconflict .uk-icon-dashcube:before{content:"\f210"}.wk-noconflict .uk-icon-forumbee:before{content:"\f211"}.wk-noconflict .uk-icon-leanpub:before{content:"\f212"}.wk-noconflict .uk-icon-sellsy:before{content:"\f213"}.wk-noconflict .uk-icon-shirtsinbulk:before{content:"\f214"}.wk-noconflict .uk-icon-simplybuilt:before{content:"\f215"}.wk-noconflict .uk-icon-skyatlas:before{content:"\f216"}.wk-noconflict .uk-icon-cart-plus:before{content:"\f217"}.wk-noconflict .uk-icon-cart-arrow-down:before{content:"\f218"}.wk-noconflict .uk-icon-diamond:before{content:"\f219"}.wk-noconflict .uk-icon-ship:before{content:"\f21a"}.wk-noconflict .uk-icon-user-secret:before{content:"\f21b"}.wk-noconflict .uk-icon-motorcycle:before{content:"\f21c"}.wk-noconflict .uk-icon-street-view:before{content:"\f21d"}.wk-noconflict .uk-icon-heartbeat:before{content:"\f21e"}.wk-noconflict .uk-icon-venus:before{content:"\f221"}.wk-noconflict .uk-icon-mars:before{content:"\f222"}.wk-noconflict .uk-icon-mercury:before{content:"\f223"}.wk-noconflict .uk-icon-transgender:before{content:"\f224"}.wk-noconflict .uk-icon-transgender-alt:before{content:"\f225"}.wk-noconflict .uk-icon-venus-double:before{content:"\f226"}.wk-noconflict .uk-icon-mars-double:before{content:"\f227"}.wk-noconflict .uk-icon-venus-mars:before{content:"\f228"}.wk-noconflict .uk-icon-mars-stroke:before{content:"\f229"}.wk-noconflict .uk-icon-mars-stroke-v:before{content:"\f22a"}.wk-noconflict .uk-icon-mars-stroke-h:before{content:"\f22b"}.wk-noconflict .uk-icon-neuter:before{content:"\f22c"}.wk-noconflict .uk-icon-facebook-official:before{content:"\f230"}.wk-noconflict .uk-icon-pinterest-p:before{content:"\f231"}.wk-noconflict .uk-icon-whatsapp:before{content:"\f232"}.wk-noconflict .uk-icon-server:before{content:"\f233"}.wk-noconflict .uk-icon-user-plus:before{content:"\f234"}.wk-noconflict .uk-icon-user-times:before{content:"\f235"}.wk-noconflict .uk-icon-bed:before,.wk-noconflict .uk-icon-hotel:before{content:"\f236"}.wk-noconflict .uk-icon-viacoin:before{content:"\f237"}.wk-noconflict .uk-icon-train:before{content:"\f238"}.wk-noconflict .uk-icon-subway:before{content:"\f239"}.wk-noconflict .uk-icon-medium-logo:before{content:"\f23a"}.wk-noconflict .uk-icon-500px:before{content:"\f26e"}.wk-noconflict .uk-icon-amazon:before{content:"\f270"}.wk-noconflict .uk-icon-balance-scale:before{content:"\f24e"}.wk-noconflict .uk-icon-battery-0:before,.wk-noconflict .uk-icon-battery-empty:before{content:"\f244"}.wk-noconflict .uk-icon-battery-1:before,.wk-noconflict .uk-icon-battery-quarter:before{content:"\f243"}.wk-noconflict .uk-icon-battery-2:before,.wk-noconflict .uk-icon-battery-half:before{content:"\f242"}.wk-noconflict .uk-icon-battery-3:before,.wk-noconflict .uk-icon-battery-three-quarters:before{content:"\f241"}.wk-noconflict .uk-icon-battery-4:before,.wk-noconflict .uk-icon-battery-full:before{content:"\f240"}.wk-noconflict .uk-icon-black-tie:before{content:"\f27e"}.wk-noconflict .uk-icon-calendar-check-o:before{content:"\f274"}.wk-noconflict .uk-icon-calendar-minus-o:before{content:"\f272"}.wk-noconflict .uk-icon-calendar-plus-o:before{content:"\f271"}.wk-noconflict .uk-icon-calendar-times-o:before{content:"\f273"}.wk-noconflict .uk-icon-cc-diners-club:before{content:"\f24c"}.wk-noconflict .uk-icon-cc-jcb:before{content:"\f24b"}.wk-noconflict .uk-icon-chrome:before{content:"\f268"}.wk-noconflict .uk-icon-clone:before{content:"\f24d"}.wk-noconflict .uk-icon-commenting:before{content:"\f27a"}.wk-noconflict .uk-icon-commenting-o:before{content:"\f27b"}.wk-noconflict .uk-icon-contao:before{content:"\f26d"}.wk-noconflict .uk-icon-creative-commons:before{content:"\f25e"}.wk-noconflict .uk-icon-expeditedssl:before{content:"\f23e"}.wk-noconflict .uk-icon-firefox:before{content:"\f269"}.wk-noconflict .uk-icon-fonticons:before{content:"\f280"}.wk-noconflict .uk-icon-get-pocket:before{content:"\f265"}.wk-noconflict .uk-icon-gg:before{content:"\f260"}.wk-noconflict .uk-icon-gg-circle:before{content:"\f261"}.wk-noconflict .uk-icon-hand-lizard-o:before{content:"\f258"}.wk-noconflict .uk-icon-hand-paper-o:before,.wk-noconflict .uk-icon-hand-stop-o:before{content:"\f256"}.wk-noconflict .uk-icon-hand-peace-o:before{content:"\f25b"}.wk-noconflict .uk-icon-hand-pointer-o:before{content:"\f25a"}.wk-noconflict .uk-icon-hand-grab-o:before,.wk-noconflict .uk-icon-hand-rock-o:before{content:"\f255"}.wk-noconflict .uk-icon-hand-scissors-o:before{content:"\f257"}.wk-noconflict .uk-icon-hand-spock-o:before{content:"\f259"}.wk-noconflict .uk-icon-hourglass:before{content:"\f254"}.wk-noconflict .uk-icon-hourglass-o:before{content:"\f250"}.wk-noconflict .uk-icon-hourglass-1:before,.wk-noconflict .uk-icon-hourglass-start:before{content:"\f251"}.wk-noconflict .uk-icon-hourglass-2:before,.wk-noconflict .uk-icon-hourglass-half:before{content:"\f252"}.wk-noconflict .uk-icon-hourglass-3:before,.wk-noconflict .uk-icon-hourglass-end:before{content:"\f253"}.wk-noconflict .uk-icon-houzz:before{content:"\f27c"}.wk-noconflict .uk-icon-i-cursor:before{content:"\f246"}.wk-noconflict .uk-icon-industry:before{content:"\f275"}.wk-noconflict .uk-icon-internet-explorer:before{content:"\f26b"}.wk-noconflict .uk-icon-map:before{content:"\f279"}.wk-noconflict .uk-icon-map-o:before{content:"\f278"}.wk-noconflict .uk-icon-map-pin:before{content:"\f276"}.wk-noconflict .uk-icon-map-signs:before{content:"\f277"}.wk-noconflict .uk-icon-mouse-pointer:before{content:"\f245"}.wk-noconflict .uk-icon-object-group:before{content:"\f247"}.wk-noconflict .uk-icon-object-ungroup:before{content:"\f248"}.wk-noconflict .uk-icon-odnoklassniki:before{content:"\f263"}.wk-noconflict .uk-icon-odnoklassniki-square:before{content:"\f264"}.wk-noconflict .uk-icon-opencart:before{content:"\f23d"}.wk-noconflict .uk-icon-opera:before{content:"\f26a"}.wk-noconflict .uk-icon-optin-monster:before{content:"\f23c"}.wk-noconflict .uk-icon-registered:before{content:"\f25d"}.wk-noconflict .uk-icon-safari:before{content:"\f267"}.wk-noconflict .uk-icon-sticky-note:before{content:"\f249"}.wk-noconflict .uk-icon-sticky-note-o:before{content:"\f24a"}.wk-noconflict .uk-icon-television:before,.wk-noconflict .uk-icon-tv:before{content:"\f26c"}.wk-noconflict .uk-icon-trademark:before{content:"\f25c"}.wk-noconflict .uk-icon-tripadvisor:before{content:"\f262"}.wk-noconflict .uk-icon-vimeo:before{content:"\f27d"}.wk-noconflict .uk-icon-wikipedia-w:before{content:"\f266"}.wk-noconflict .uk-icon-y-combinator:before,.wk-noconflict .uk-icon-yc:before{content:"\f23b"}.wk-noconflict .uk-icon-y-combinator-square:before,.wk-noconflict .uk-icon-yc-square:before{content:"\f1d4"}.wk-noconflict .uk-icon-bluetooth:before{content:"\f293"}.wk-noconflict .uk-icon-bluetooth-b:before{content:"\f294"}.wk-noconflict .uk-icon-codiepie:before{content:"\f284"}.wk-noconflict .uk-icon-credit-card-alt:before{content:"\f283"}.wk-noconflict .uk-icon-edge:before{content:"\f282"}.wk-noconflict .uk-icon-fort-awesome:before{content:"\f286"}.wk-noconflict .uk-icon-hashtag:before{content:"\f292"}.wk-noconflict .uk-icon-mixcloud:before{content:"\f289"}.wk-noconflict .uk-icon-modx:before{content:"\f285"}.wk-noconflict .uk-icon-pause-circle:before{content:"\f28b"}.wk-noconflict .uk-icon-pause-circle-o:before{content:"\f28c"}.wk-noconflict .uk-icon-percent:before{content:"\f295"}.wk-noconflict .uk-icon-product-hunt:before{content:"\f288"}.wk-noconflict .uk-icon-reddit-alien:before{content:"\f281"}.wk-noconflict .uk-icon-scribd:before{content:"\f28a"}.wk-noconflict .uk-icon-shopping-bag:before{content:"\f290"}.wk-noconflict .uk-icon-shopping-basket:before{content:"\f291"}.wk-noconflict .uk-icon-stop-circle:before{content:"\f28d"}.wk-noconflict .uk-icon-stop-circle-o:before{content:"\f28e"}.wk-noconflict .uk-icon-usb:before{content:"\f287"}.wk-noconflict .uk-icon-american-sign-language-interpreting:before,.wk-noconflict .uk-icon-asl-interpreting:before{content:"\f2a3"}.wk-noconflict .uk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-noconflict .uk-icon-audio-description:before{content:"\f29e"}.wk-noconflict .uk-icon-blind:before{content:"\f29d"}.wk-noconflict .uk-icon-braille:before{content:"\f2a1"}.wk-noconflict .uk-icon-deaf:before,.wk-noconflict .uk-icon-deafness:before{content:"\f2a4"}.wk-noconflict .uk-icon-envira:before{content:"\f299"}.wk-noconflict .uk-icon-fa:before,.wk-noconflict .uk-icon-font-awesome:before{content:"\f2b4"}.wk-noconflict .uk-icon-first-order:before{content:"\f2b0"}.wk-noconflict .uk-icon-gitlab:before{content:"\f296"}.wk-noconflict .uk-icon-glide:before{content:"\f2a5"}.wk-noconflict .uk-icon-glide-g:before{content:"\f2a6"}.wk-noconflict .uk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-noconflict .uk-icon-low-vision:before{content:"\f2a8"}.wk-noconflict .uk-icon-question-circle-o:before{content:"\f29c"}.wk-noconflict .uk-icon-sign-language:before,.wk-noconflict .uk-icon-signing:before{content:"\f2a7"}.wk-noconflict .uk-icon-snapchat:before{content:"\f2ab"}.wk-noconflict .uk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-noconflict .uk-icon-snapchat-square:before{content:"\f2ad"}.wk-noconflict .uk-icon-themeisle:before{content:"\f2b2"}.wk-noconflict .uk-icon-universal-access:before{content:"\f29a"}.wk-noconflict .uk-icon-viadeo:before{content:"\f2a9"}.wk-noconflict .uk-icon-viadeo-square:before{content:"\f2aa"}.wk-noconflict .uk-icon-volume-control-phone:before{content:"\f2a0"}.wk-noconflict .uk-icon-wheelchair-alt:before{content:"\f29b"}.wk-noconflict .uk-icon-wpbeginner:before{content:"\f297"}.wk-noconflict .uk-icon-wpforms:before{content:"\f298"}.wk-noconflict .uk-icon-yoast:before{content:"\f2b1"}.wk-noconflict .uk-icon-adress-book:before{content:"\f2b9"}.wk-noconflict .uk-icon-adress-book-o:before{content:"\f2ba"}.wk-noconflict .uk-icon-adress-card:before{content:"\f2bb"}.wk-noconflict .uk-icon-adress-card-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-bandcamp:before{content:"\f2d5"}.wk-noconflict .uk-icon-bath:before,.wk-noconflict .uk-icon-bathub:before{content:"\f2cd"}.wk-noconflict .uk-icon-drivers-license:before{content:"\f2c2"}.wk-noconflict .uk-icon-drivers-license-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-eercast:before{content:"\f2da"}.wk-noconflict .uk-icon-envelope-open:before{content:"\f2b6"}.wk-noconflict .uk-icon-envelope-open-o:before{content:"\f2b7"}.wk-noconflict .uk-icon-etsy:before{content:"\f2d7"}.wk-noconflict .uk-icon-free-code-camp:before{content:"\f2c5"}.wk-noconflict .uk-icon-grav:before{content:"\f2d6"}.wk-noconflict .uk-icon-handshake-o:before{content:"\f2b5"}.wk-noconflict .uk-icon-id-badge:before{content:"\f2c1"}.wk-noconflict .uk-icon-id-card:before{content:"\f2c2"}.wk-noconflict .uk-icon-id-card-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-imdb:before{content:"\f2d8"}.wk-noconflict .uk-icon-linode:before{content:"\f2b8"}.wk-noconflict .uk-icon-meetup:before{content:"\f2e0"}.wk-noconflict .uk-icon-microchip:before{content:"\f2db"}.wk-noconflict .uk-icon-podcast:before{content:"\f2ce"}.wk-noconflict .uk-icon-quora:before{content:"\f2c4"}.wk-noconflict .uk-icon-ravelry:before{content:"\f2d9"}.wk-noconflict .uk-icon-s15:before{content:"\f2cd"}.wk-noconflict .uk-icon-shower:before{content:"\f2cc"}.wk-noconflict .uk-icon-snowflake-o:before{content:"\f2dc"}.wk-noconflict .uk-icon-superpowers:before{content:"\f2dd"}.wk-noconflict .uk-icon-telegram:before{content:"\f2c6"}.wk-noconflict .uk-icon-thermometer:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-0:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-1:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-2:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-3:before{content:"\f2c8"}.wk-noconflict .uk-icon-thermometer-4:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-empty:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-full:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-half:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-noconflict .uk-icon-times-rectangle:before{content:"\f2d3"}.wk-noconflict .uk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-user-circle:before{content:"\f2bd"}.wk-noconflict .uk-icon-user-circle-o:before{content:"\f2be"}.wk-noconflict .uk-icon-user-o:before{content:"\f2c0"}.wk-noconflict .uk-icon-vcard:before{content:"\f2bb"}.wk-noconflict .uk-icon-vcard-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-widow-close:before{content:"\f2d3"}.wk-noconflict .uk-icon-widow-close-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-window-maximize:before{content:"\f2d0"}.wk-noconflict .uk-icon-window-minimize:before{content:"\f2d1"}.wk-noconflict .uk-icon-window-restore:before{content:"\f2d2"}.wk-noconflict .uk-icon-wpexplorer:before{content:"\f2de"}.wk-noconflict .uk-badge{display:inline-block;padding:0 5px;background:#37a5e4;font-size:10px;font-weight:400;line-height:14px;color:#fff;text-align:center;vertical-align:middle;text-transform:none;border-radius:2px}.wk-noconflict a.uk-badge:hover{color:#fff}.wk-noconflict .uk-badge-notification{box-sizing:border-box;min-width:18px;border-radius:500px;font-size:12px;line-height:18px}.wk-noconflict .uk-badge-success{background-color:#80c96d}.wk-noconflict .uk-badge-warning{background-color:#ff9a2e}.wk-noconflict .uk-badge-danger{background-color:#f0615b}.wk-noconflict .uk-alert{margin-bottom:20px;padding:10px;background:#e1f2fb;color:#37a5e4;border-radius:2px}.wk-noconflict *+.uk-alert{margin-top:20px}.wk-noconflict .uk-alert>:last-child{margin-bottom:0}.wk-noconflict .uk-alert h1,.wk-noconflict .uk-alert h2,.wk-noconflict .uk-alert h3,.wk-noconflict .uk-alert h4,.wk-noconflict .uk-alert h5,.wk-noconflict .uk-alert h6{color:inherit}.wk-noconflict .uk-alert>.uk-close:first-child{float:right}.wk-noconflict .uk-alert>.uk-close:first-child+*{margin-top:0}.wk-noconflict .uk-alert-success{background:#ecf7e9;color:#80c96d}.wk-noconflict .uk-alert-warning{background:#fff0e0;color:#ff9a2e}.wk-noconflict .uk-alert-danger{background:#fde7e7;color:#f0615b}.wk-noconflict .uk-alert-large{padding:20px}.wk-noconflict .uk-alert-large>.uk-close:first-child{margin:-10px -10px 0 0}.wk-noconflict .uk-overlay-area-content>:last-child,.wk-noconflict .uk-overlay-panel.uk-flex>*>:last-child,.wk-noconflict .uk-overlay-panel>:last-child,.wk-noconflict .uk-overlay>:first-child{margin-bottom:0}.wk-noconflict .uk-overlay{display:inline-block;position:relative;max-width:100%;vertical-align:middle;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-noconflict .uk-overlay-area:empty:before,.wk-noconflict .uk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-noconflict .uk-overlay.uk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-noconflict .uk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-noconflict .uk-overlay-panel a[class*=uk-icon-]:not(.uk-icon-button),.wk-noconflict .uk-overlay-panel h1,.wk-noconflict .uk-overlay-panel h2,.wk-noconflict .uk-overlay-panel h3,.wk-noconflict .uk-overlay-panel h4,.wk-noconflict .uk-overlay-panel h5,.wk-noconflict .uk-overlay-panel h6{color:inherit}.wk-noconflict .uk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-noconflict .uk-overlay-active :not(.uk-active)>.uk-overlay-panel:not(.uk-ignore),.wk-noconflict .uk-overlay-hover:not(:hover):not(.uk-hover) .uk-overlay-panel:not(.uk-ignore){opacity:0}.wk-noconflict .uk-overlay-background{background:rgba(0,0,0,.5)}.wk-noconflict .uk-overlay-image{padding:0}.wk-noconflict .uk-overlay-top{bottom:auto}.wk-noconflict .uk-overlay-bottom{top:auto}.wk-noconflict .uk-overlay-left{right:auto}.wk-noconflict .uk-overlay-right{left:auto}.wk-noconflict .uk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-blur,.wk-noconflict .uk-overlay-fade,.wk-noconflict .uk-overlay-grayscale,.wk-noconflict .uk-overlay-scale,.wk-noconflict .uk-overlay-spin,.wk-noconflict [class*=uk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-noconflict .uk-overlay-active .uk-overlay-fade,.wk-noconflict .uk-overlay-active .uk-overlay-scale,.wk-noconflict .uk-overlay-active .uk-overlay-spin,.wk-noconflict .uk-overlay-active [class*=uk-overlay-slide]{transition-duration:.8s}.wk-noconflict .uk-overlay-fade{opacity:.7}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-fade,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-fade,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-fade{opacity:1}.wk-noconflict .uk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-scale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-scale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-noconflict .uk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-spin,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-spin,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-noconflict .uk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}.wk-noconflict [class*=uk-overlay-slide]{opacity:0}.wk-noconflict .uk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-noconflict .uk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-noconflict .uk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-noconflict .uk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-noconflict .uk-overlay-active .uk-active>[class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover.uk-hover [class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover:hover [class*=uk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-noconflict .uk-overlay-area,.wk-noconflict .uk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-noconflict .uk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-area,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay:hover .uk-overlay-area{opacity:1}.wk-noconflict .uk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-area:not(:empty){font-size:0}.wk-noconflict .uk-overlay-area:not(:empty):before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-overlay-area-content{display:inline-block;box-sizing:border-box;width:100%;vertical-align:middle;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-noconflict .uk-overlay-area-content a:not([class]),.wk-noconflict .uk-overlay-area-content a:not([class]):hover{color:inherit}.wk-noconflict .uk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-caption,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay:hover .uk-overlay-caption{opacity:1}.wk-noconflict [class*=uk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{.wk-noconflict [data-uk-scrollspy*=uk-animation-]:not([data-uk-scrollspy*=target]){opacity:0}}.wk-noconflict .uk-animation-fade{-webkit-animation-name:uk-fade;animation-name:uk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-noconflict .uk-animation-scale-up{-webkit-animation-name:uk-fade-scale-02;animation-name:uk-fade-scale-02}.wk-noconflict .uk-animation-scale-down{-webkit-animation-name:uk-fade-scale-18;animation-name:uk-fade-scale-18}.wk-noconflict .uk-animation-slide-top{-webkit-animation-name:uk-fade-top;animation-name:uk-fade-top}.wk-noconflict .uk-animation-slide-bottom{-webkit-animation-name:uk-fade-bottom;animation-name:uk-fade-bottom}.wk-noconflict .uk-animation-slide-left{-webkit-animation-name:uk-fade-left;animation-name:uk-fade-left}.wk-noconflict .uk-animation-slide-right{-webkit-animation-name:uk-fade-right;animation-name:uk-fade-right}.wk-noconflict .uk-animation-scale{-webkit-animation-name:uk-scale-12;animation-name:uk-scale-12}.wk-noconflict .uk-animation-shake{-webkit-animation-name:uk-shake;animation-name:uk-shake}.wk-noconflict .uk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-noconflict .uk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-noconflict .uk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-noconflict .uk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-noconflict .uk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-noconflict .uk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-noconflict .uk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-noconflict .uk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-noconflict .uk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-noconflict .uk-animation-hover:not(:hover),.wk-noconflict .uk-animation-hover:not(:hover) [class*=uk-animation-],.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover),.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover) [class*=uk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes uk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes uk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes uk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes uk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes uk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes uk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes uk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-noconflict .uk-dropdown,.wk-noconflict .uk-dropdown-blank{display:none;position:absolute;z-index:100020;box-sizing:border-box;width:200px}.wk-noconflict .uk-dropdown{padding:20px;background:#fff;color:#444;font-size:1rem;vertical-align:top;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-dropdown:focus{outline:0}.uk-open>.uk-dropdown,.uk-open>.uk-dropdown-blank{display:block;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-dropdown-top{margin-top:-5px}.wk-noconflict .uk-dropdown-bottom{margin-top:5px}.wk-noconflict .uk-dropdown-left{margin-left:-5px}.wk-noconflict .uk-dropdown-right{margin-left:5px}.wk-noconflict .uk-dropdown .uk-nav{margin:0 -20px}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]>.uk-panel+.uk-panel,.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2),.wk-noconflict .uk-grid .uk-dropdown-grid+.uk-dropdown-grid{margin-top:20px}@media (min-width:768px){.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid{margin-left:-20px;margin-right:-20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]{padding-left:20px;padding-right:20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-dropdown-width-2:not(.uk-dropdown-stack){width:400px}.wk-noconflict .uk-dropdown-width-3:not(.uk-dropdown-stack){width:600px}.wk-noconflict .uk-dropdown-width-4:not(.uk-dropdown-stack){width:800px}.wk-noconflict .uk-dropdown-width-5:not(.uk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){margin-top:20px}}.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-small{min-width:150px;width:auto;padding:5px;white-space:nowrap}.wk-noconflict .uk-dropdown-small .uk-nav{margin:0 -5px}.wk-noconflict .uk-dropdown-navbar{margin-top:5px;background:#fafafa;color:#999;min-width:150px;width:auto;white-space:nowrap}.uk-open>.uk-dropdown-navbar{-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out}.wk-noconflict .uk-dropdown-scrollable{overflow-y:auto;max-height:200px}.uk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.9);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.uk-modal-caption,.uk-modal-page,.uk-modal-page body,.wk-noconflict .uk-nbfc{overflow:hidden}.uk-modal.uk-open{opacity:1}.wk-noconflict .uk-modal-dialog{position:relative;box-sizing:border-box;margin:50px auto;padding:30px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-noconflict .uk-modal-dialog{width:auto;margin:10px auto}}.uk-open .uk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-noconflict .uk-modal-dialog>:not([class*=uk-modal-]):last-child{margin-bottom:0}.wk-noconflict .uk-modal-dialog>.uk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-noconflict .uk-modal-dialog>.uk-close:first-child+:not([class*=uk-modal-]){margin-top:0}.wk-noconflict .uk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{top:-7px;right:-7px}}.wk-noconflict .uk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-noconflict .uk-modal-dialog-blank>.uk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-noconflict .uk-modal-dialog-large{width:930px}}.wk-noconflict .uk-modal-header{margin:-30px -30px 20px;padding:30px;border-bottom:1px solid #e5e5e5;border-radius:2px 2px 0 0;background:#fafafa}.wk-noconflict .uk-modal-footer{margin:20px -30px -30px;padding:30px;border-top:1px solid #e5e5e5;border-radius:0 0 2px 2px;background:#fafafa;text-align:right}.wk-noconflict .uk-modal-footer>:last-child,.wk-noconflict .uk-modal-header>:last-child{margin-bottom:0}.uk-modal-caption{position:absolute;left:0;right:0;bottom:-30px;margin-bottom:-10px;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap}.uk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.uk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-modal-header+.wk-noconflict .uk-modal-header{margin-top:-20px}.uk-modal-page{height:auto}.wk-noconflict .uk-switcher{margin:0;padding:0;list-style:none}.wk-noconflict .uk-sortable-handle,.wk-noconflict .uk-sortable>*{touch-action:none}.wk-noconflict .uk-switcher>:not(.uk-active){display:none}.wk-noconflict .uk-text-small{font-size:11px;line-height:16px}.wk-noconflict .uk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-noconflict .uk-text-bold{font-weight:700}.wk-noconflict .uk-text-muted{color:#999!important}.wk-noconflict .uk-text-primary{color:#37a5e4!important}.wk-noconflict .uk-text-success{color:#80c96d!important}.wk-noconflict .uk-text-warning{color:#ff9a2e!important}.wk-noconflict .uk-text-danger{color:#f0615b!important}.wk-noconflict .uk-text-contrast{color:#fff!important}.wk-noconflict .uk-text-left{text-align:left!important}.wk-noconflict .uk-text-right{text-align:right!important}.wk-noconflict .uk-text-center{text-align:center!important}.wk-noconflict .uk-text-justify{text-align:justify!important}.wk-noconflict .uk-text-top{vertical-align:top!important}.wk-noconflict .uk-text-middle{vertical-align:middle!important}.wk-noconflict .uk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-noconflict .uk-text-center-medium{text-align:center!important}.wk-noconflict .uk-text-left-medium{text-align:left!important}}.wk-noconflict .uk-text-nowrap{white-space:nowrap}.wk-noconflict .uk-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wk-noconflict .uk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-noconflict .uk-text-capitalize{text-transform:capitalize!important}.wk-noconflict .uk-text-lowercase{text-transform:lowercase!important}.wk-noconflict .uk-text-uppercase{text-transform:uppercase!important}.wk-noconflict .uk-container{box-sizing:border-box;max-width:980px;padding:0 25px}@media (min-width:1400px){.wk-noconflict .uk-modal-dialog-large{width:1150px}.wk-noconflict .uk-container{max-width:1200px;padding:0 25px}}.wk-noconflict .uk-container:after,.wk-noconflict .uk-container:before{content:"";display:table}.wk-noconflict .uk-container-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-clearfix:before{content:"";display:table-cell}.wk-noconflict .uk-clearfix:after{content:"";display:table}.wk-noconflict .uk-nbfc-alt{display:table-cell;width:10000px}.wk-noconflict .uk-float-left{float:left}.wk-noconflict .uk-float-right{float:right}.wk-noconflict [class*=uk-float-]{max-width:100%}.wk-noconflict [class*=uk-align-]{display:block;margin-bottom:20px}.wk-noconflict .uk-align-left{margin-right:20px;float:left}.wk-noconflict .uk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-noconflict .uk-align-medium-left{margin-right:20px;float:left}.wk-noconflict .uk-align-medium-right{margin-left:20px;float:right}}.wk-noconflict .uk-align-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-vertical-align{font-size:0}.wk-noconflict .uk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom,.wk-noconflict .uk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-noconflict .uk-vertical-align-middle{vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom{vertical-align:bottom}.wk-noconflict [class*=uk-height]{box-sizing:border-box}.wk-noconflict .uk-height-1-1{height:100%}.wk-noconflict .uk-height-viewport{height:100vh;min-height:600px}.wk-noconflict .uk-responsive-height,.wk-noconflict .uk-responsive-width{box-sizing:border-box}.wk-noconflict .uk-responsive-width{max-width:100%!important;height:auto}.wk-noconflict .uk-responsive-height{max-height:100%;width:auto}.wk-noconflict .uk-margin{margin-bottom:20px}.wk-noconflict *+.uk-margin{margin-top:20px}.wk-noconflict .uk-margin-top{margin-top:20px!important}.wk-noconflict .uk-margin-bottom{margin-bottom:20px!important}.wk-noconflict .uk-margin-left{margin-left:20px!important}.wk-noconflict .uk-margin-right{margin-right:20px!important}.wk-noconflict .uk-margin-large{margin-bottom:30px}.wk-noconflict *+.uk-margin-large{margin-top:30px}.wk-noconflict .uk-margin-large-top{margin-top:30px!important}.wk-noconflict .uk-margin-large-bottom{margin-bottom:30px!important}.wk-noconflict .uk-margin-large-left{margin-left:30px!important}.wk-noconflict .uk-margin-large-right{margin-right:30px!important}.wk-noconflict .uk-margin-small{margin-bottom:5px}.wk-noconflict *+.uk-margin-small{margin-top:5px}.wk-noconflict .uk-margin-small-top{margin-top:5px!important}.wk-noconflict .uk-margin-small-bottom{margin-bottom:5px!important}.wk-noconflict .uk-margin-small-left{margin-left:5px!important}.wk-noconflict .uk-margin-small-right{margin-right:5px!important}.wk-noconflict .uk-margin-remove{margin:0!important}.wk-noconflict .uk-margin-top-remove{margin-top:0!important}.wk-noconflict .uk-margin-bottom-remove{margin-bottom:0!important}.wk-noconflict .uk-overflow-container>:last-child,.wk-noconflict .uk-scrollable-box>:last-child{margin-bottom:0}.wk-noconflict .uk-padding-remove{padding:0!important}.wk-noconflict .uk-padding-top-remove{padding-top:0!important}.wk-noconflict .uk-padding-bottom-remove{padding-bottom:0!important}.wk-noconflict .uk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-noconflict .uk-border-circle{border-radius:50%}.wk-noconflict .uk-border-rounded{border-radius:5px}.wk-noconflict .uk-heading-large{font-size:36px;line-height:42px}.wk-noconflict .uk-link-muted,.wk-noconflict .uk-link-muted a,.wk-noconflict .uk-link-muted a:hover,.wk-noconflict .uk-link-muted:hover{color:#444}.wk-noconflict .uk-link-reset,.wk-noconflict .uk-link-reset a,.wk-noconflict .uk-link-reset a:focus,.wk-noconflict .uk-link-reset a:hover,.wk-noconflict .uk-link-reset:focus,.wk-noconflict .uk-link-reset:hover{color:inherit;text-decoration:none}.wk-noconflict .uk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-noconflict .uk-scrollable-box{box-sizing:border-box;height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-noconflict .uk-overflow-hidden{overflow:hidden}.wk-noconflict .uk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-noconflict .uk-position-absolute,.wk-noconflict [class*=uk-position-top],.wk-noconflict [class*=uk-position-bottom]{position:absolute!important}.wk-noconflict .uk-position-top{top:0;left:0;right:0}.wk-noconflict .uk-position-bottom{bottom:0;left:0;right:0}.wk-noconflict .uk-position-top-left{top:0;left:0}.wk-noconflict .uk-position-top-right{top:0;right:0}.wk-noconflict .uk-position-bottom-left{bottom:0;left:0}.wk-noconflict .uk-position-bottom-right{bottom:0;right:0}.wk-noconflict .uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-noconflict .uk-position-relative{position:relative!important}.wk-noconflict .uk-position-z-index{z-index:1}.wk-noconflict .uk-display-block{display:block!important}.wk-noconflict .uk-display-inline{display:inline!important}.wk-noconflict .uk-display-inline-block{display:inline-block!important;max-width:100%}.wk-noconflict .uk-img-preserve,.wk-noconflict .uk-img-preserve img,.wk-noconflict [id^=wk-location-] img{max-width:none}@media (min-width:960px){.wk-noconflict .uk-hidden-large,.wk-noconflict .uk-visible-medium,.wk-noconflict .uk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-noconflict .uk-hidden-medium,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-small{display:none!important}}@media (max-width:767px){.wk-noconflict .uk-text-center-small{text-align:center!important}.wk-noconflict .uk-text-left-small{text-align:left!important}.wk-noconflict .uk-hidden-small,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-medium{display:none!important}.wk-noconflict .uk-container{padding:0 10px}}.wk-noconflict .uk-hidden{display:none!important}.wk-noconflict .uk-visible-hover:hover .uk-hidden,.wk-noconflict .uk-visible-hover:hover .uk-invisible{display:block!important;visibility:visible!important}.wk-noconflict .uk-visible-hover-inline:hover .uk-hidden,.wk-noconflict .uk-visible-hover-inline:hover .uk-invisible{display:inline-block!important;visibility:visible!important}.wk-noconflict .uk-notouch .uk-hidden-notouch,.wk-noconflict .uk-touch .uk-hidden-touch{display:none!important}.wk-noconflict .uk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-noconflict .uk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-noconflict .uk-flex-inline>*,.wk-noconflict .uk-flex>*{-ms-flex-negative:1}.wk-noconflict .uk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-noconflict .uk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-noconflict .uk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-noconflict .uk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-noconflict .uk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-noconflict .uk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-noconflict .uk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-noconflict .uk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-noconflict .uk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-noconflict .uk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-noconflict .uk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-noconflict .uk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-noconflict .uk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-noconflict .uk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-noconflict .uk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-noconflict .uk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-noconflict .uk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-noconflict .uk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-noconflict .uk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-noconflict .uk-heading-large{font-size:52px;line-height:64px}.wk-noconflict .uk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-noconflict .uk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1400px){.wk-noconflict .uk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-noconflict .uk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-noconflict .uk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-noconflict .uk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-noconflict .uk-form-file{display:inline-block;vertical-align:middle;position:relative;overflow:hidden}.wk-noconflict .uk-form-file input[type=file]{position:absolute;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;left:0;font-size:500px}.wk-noconflict .uk-placeholder{margin-bottom:15px;padding:20px;border:1px dashed #ddd;background:#fafafa;color:#444}.wk-form-heading,.wk-heading{border-bottom:1px solid #e5e5e5}.wk-noconflict *+.uk-placeholder{margin-top:15px}.wk-noconflict .uk-placeholder>:last-child{margin-bottom:0}.wk-noconflict .uk-placeholder-large{padding-top:80px;padding-bottom:80px}.wk-noconflict .uk-progress{box-sizing:border-box;height:20px;margin-bottom:20px;background:#f5f5f5;overflow:hidden;line-height:20px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);border-radius:2px}.wk-noconflict *+.uk-progress{margin-top:20px}.wk-noconflict .uk-progress-bar{width:0;height:100%;background:#37a5e4;float:left;-webkit-transition:width .6s ease;transition:width .6s ease;font-size:12px;color:#fff;text-align:center}.wk-noconflict .uk-progress-mini{height:6px}.wk-noconflict .uk-progress-small{height:12px}.wk-noconflict .uk-progress-success .uk-progress-bar{background-color:#80c96d}.wk-noconflict .uk-progress-warning .uk-progress-bar{background-color:#ff9a2e}.wk-noconflict .uk-progress-danger .uk-progress-bar{background-color:#f0615b}.wk-noconflict .uk-progress-striped .uk-progress-bar{background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:30px 30px}.wk-noconflict .uk-progress-striped.uk-active .uk-progress-bar{-webkit-animation:uk-progress-bar-stripes 2s linear infinite;animation:uk-progress-bar-stripes 2s linear infinite}@-webkit-keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}@keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}.wk-noconflict .uk-progress-mini,.wk-noconflict .uk-progress-small{border-radius:500px}.uk-notify{position:fixed;top:50px;left:50px;z-index:100040;box-sizing:border-box;width:350px}.uk-notify-bottom-right,.uk-notify-top-right{left:auto;right:50px}.uk-notify-bottom-center,.uk-notify-top-center{left:50%;margin-left:-175px}.uk-notify-bottom-center,.uk-notify-bottom-left,.uk-notify-bottom-right{top:auto;bottom:50px}@media (max-width:479px){.uk-notify{left:10px;right:10px;width:auto;margin:0}}.uk-notify-message{position:relative;margin-bottom:15px;padding:15px;background:rgba(240,240,240,.9);color:#444;font-size:16px;line-height:22px;border-radius:4px;font-weight:300}.uk-notify-message>.uk-close{visibility:hidden;float:right}.uk-notify-message:hover>.uk-close{visibility:visible}.uk-notify-message-primary{background:rgba(225,242,251,.9);color:#37a5e4}.uk-notify-message-success{background:rgba(236,247,233,.9);color:#80c96d}.uk-notify-message-warning{background:rgba(255,240,224,.9);color:#ff9a2e}.uk-notify-message-danger{background:rgba(253,231,231,.9);color:#f0615b}.wk-noconflict .uk-sortable{position:relative}.wk-noconflict .uk-sortable a,.wk-noconflict .uk-sortable img{-webkit-touch-callout:none}.wk-noconflict .uk-sortable>:last-child{margin-bottom:0}.uk-sortable-dragged{position:absolute;z-index:100050;pointer-events:none}.wk-noconflict .uk-sortable-placeholder{opacity:0}.wk-noconflict .uk-sortable-empty{min-height:30px}.uk-sortable-moving,.uk-sortable-moving *,.wk-noconflict .uk-sortable-handle:hover{cursor:move}.uk-sortable-moving iframe{pointer-events:none}.wk-noconflict .uk-dragover{box-shadow:0 0 20px rgba(100,100,100,.3)}.wk-noconflict .uk-htmleditor-navbar{background:#f5f5f5}.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-htmleditor-navbar:before{content:"";display:table}.wk-noconflict .uk-htmleditor-navbar-nav{margin:0;padding:0;list-style:none;float:left}.wk-noconflict .uk-htmleditor-navbar-nav>li{float:left;margin-bottom:0}.wk-noconflict .uk-htmleditor-navbar-nav>li>a{display:block;box-sizing:border-box;text-decoration:none;height:46px;padding:0 19px;line-height:46px;color:rgba(68,68,68,.8);font-size:11px;cursor:pointer;-webkit-transition:all .1s linear;transition:all .1s linear}.wk-noconflict .uk-htmleditor-navbar-nav>li:hover>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:focus{background-color:rgba(255,255,255,.5);color:#111;outline:0}.wk-noconflict .uk-htmleditor-navbar-nav>li.uk-active>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:active{background-color:rgba(255,255,255,.5);color:#111}.wk-noconflict .uk-htmleditor-navbar-flip{float:right}.wk-noconflict [data-mode=split] .uk-htmleditor-button-code,.wk-noconflict [data-mode=split] .uk-htmleditor-button-preview{display:none}.wk-noconflict .uk-htmleditor-content{border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;background:#fff}.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-content:before{content:"";display:table}.wk-noconflict .uk-htmleditor-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100010}.wk-noconflict .uk-htmleditor-fullscreen .uk-htmleditor-content{position:absolute;top:46px;left:0;right:0;bottom:0}.wk-noconflict .uk-htmleditor-fullscreen .uk-icon-expand:before{content:"\f066"}.wk-noconflict .uk-htmleditor-code,.wk-noconflict .uk-htmleditor-preview{box-sizing:border-box}.wk-noconflict .uk-htmleditor-preview{padding:20px;overflow-y:scroll;position:relative}.wk-noconflict [data-mode=tab][data-active-tab=code] .uk-htmleditor-preview,.wk-noconflict [data-mode=tab][data-active-tab=preview] .uk-htmleditor-code{display:none}.wk-noconflict [data-mode=split] .uk-htmleditor-code,.wk-noconflict [data-mode=split] .uk-htmleditor-preview{float:left;width:50%}.wk-noconflict [data-mode=split] .uk-htmleditor-code{border-right:1px solid #eee}.wk-noconflict .uk-htmleditor-iframe{position:absolute;top:0;left:0;width:100%;height:100%}.wk-noconflict .uk-htmleditor .CodeMirror{padding:10px;box-sizing:border-box}.wk-noconflict .uk-datepicker{z-index:100100;width:auto;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-datepicker-nav{margin-bottom:15px;text-align:center;line-height:20px}.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-datepicker-nav:before{content:"";display:table}.wk-noconflict .uk-datepicker-nav a{color:#444;text-decoration:none}.wk-noconflict .uk-datepicker-nav a:hover{color:#444}.wk-noconflict .uk-datepicker-previous{float:left}.wk-noconflict .uk-datepicker-next{float:right}.wk-noconflict .uk-datepicker-next:after,.wk-noconflict .uk-datepicker-previous:after{width:20px;font-family:FontAwesome}.wk-noconflict .uk-datepicker-previous:after{content:"\f053"}.wk-noconflict .uk-datepicker-next:after{content:"\f054"}.wk-noconflict .uk-datepicker-table{width:100%}.wk-noconflict .uk-datepicker-table td,.wk-noconflict .uk-datepicker-table th{padding:2px}.wk-noconflict .uk-datepicker-table th{font-size:12px}.wk-noconflict .uk-datepicker-table a{display:block;width:26px;line-height:24px;text-align:center;color:#444;text-decoration:none}.wk-noconflict a.uk-datepicker-table-muted{color:#999}.wk-noconflict .uk-datepicker-table a:focus,.wk-noconflict .uk-datepicker-table a:hover{background-color:#ddd;color:#444;outline:0}.wk-noconflict .uk-datepicker-table a:active{background-color:#ccc;color:#444}.wk-noconflict .uk-datepicker-table a.uk-active{background:#00a8e6;color:#fff}.wk-noconflict .uk-h1,.wk-noconflict .uk-h2,.wk-noconflict .uk-h3,.wk-noconflict .uk-h4,.wk-noconflict .uk-h5,.wk-noconflict .uk-h6{margin:0 0 20px;color:#444;font-weight:300}.wk-noconflict *+.uk-h1,.wk-noconflict *+.uk-h2,.wk-noconflict *+.uk-h3,.wk-noconflict *+.uk-h4,.wk-noconflict *+.uk-h5,.wk-noconflict *+.uk-h6{margin-top:30px}.wk-noconflict .uk-h1{font-size:36px;line-height:42px}.wk-noconflict .uk-h2{font-size:24px;line-height:30px}.wk-noconflict .uk-h3{font-size:18px;line-height:24px}.wk-noconflict .uk-h4{font-size:16px;line-height:22px}.wk-noconflict .uk-h5{font-size:14px;line-height:20px}.wk-noconflict .uk-h6{font-size:12px;line-height:18px}.wk-noconflict *+p{margin-top:20px}.wk-modal-header-blank{background:0 0}.wk-heading{margin:0 0 20px;padding-bottom:5px;font-size:18px;line-height:24px;color:#444;font-weight:300}.wk-noconflict *+.wk-heading{margin-top:20px}@media (min-width:768px){.wk-panel-marginless{margin-right:-25px}}.wk-panel-small{padding:10px}.wk-margin-small-top{margin-top:8px}@media (min-width:1400px){.wk-width-xlarge-1-2{width:50%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-grid-width-xlarge-1-8>*{width:12.5%}}.wk-form-heading{margin:0 0 20px;padding-bottom:5px;font-size:16px;line-height:22px;color:#444;font-weight:300}.wk-noconflict *+.wk-form-heading{margin-top:20px}.wk-form-blank{margin-top:-5px!important;margin-bottom:-5px!important;font-size:24px!important;line-height:30px!important;font-weight:300!important}.wk-subnav-icon>li>a{color:#fff;cursor:pointer}.wk-subnav-icon>li>a:hover{color:#fff}.wk-subnav-right{margin:10px 15px 0 0;float:right}.wk-subnav{margin-left:-20px;margin-top:-20px;margin-bottom:0;font:300 16px/22px "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.wk-subnav>*{padding-left:20px;margin-top:20px}.wk-subnav>*>*{color:#999}.wk-subnav>*>:focus,.wk-subnav>*>:hover,.wk-subnav>.uk-active>*{color:#444}.wk-subnav [class*=uk-icon-]:before{font-size:130%;vertical-align:-15%}.wk-preview-thumb,img{vertical-align:middle}.wk-subnav-divider:before{content:"";display:inline-block;height:20px;margin-right:20px;border-left:1px solid #ddd;vertical-align:middle}.wk-preview-thumb{display:inline-block;width:30px;height:30px;border-radius:50%}.wk-sortable>*{display:block;padding:5px 15px;background:#37a5e4;color:#fff}.wk-image{height:150px}.wk-table td:first-child{padding:0!important}.wk-table td:first-child>a{display:block;padding:10px}.wk-table-width-minimum{width:1px}.pac-container{z-index:100011}html{font-size:13px}a{cursor:pointer}img{max-width:100%;height:auto;-moz-box-sizing:border-box;box-sizing:border-box;border:0}

widgetkit/Partigiani_5-a28e0c0c0a870f6bb09b26d600847c25.jpg000064400000045741152177723720016061 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((���"�������4��BI	$.w��i��B�BO!1e�U�j(IT�?<K��6c.pq”d<�	
l���$��HI!$��yӋ�6�R�p"�9w�Y��!L��g;�)�?D	!*$��횅	�2Ir��FX��P-r���c���E�Ή$$��E[I
9 "�hHA��ꦌe錦O�Ğ�㗏CUC|��M),&�qC��vC���Ȅ���0�G�U^�i���_-Y���t���.:��DΝ��8�P/l�&�����=T%�1j�r���.P$.>��P�H�4�q���6D�G��>tZ9��3�L�[���{n�B����0A(r�
��/Ӛ���cd���(y��`D��X%a&t��|/r+����'���X+�`F����/�=`�xא�63e�
ODI��ٵ}
��*ft�H5��7%��ty�C^�H8�9K5�1���д4$\MlcK��d�5���l	�L����{�}"~�וÕC��ot!��yy`�bWN�t�<�b�
�+�
�|Q)\�P��]?*p���0猶�c�{�#���s�;Jh
�x|E��!A����K��H�2�,]��N�$,��a0è�`Ce��Ho4p��+�6!�V7�:bMYn��7���q$7��Ǎk�rV�mڜ4�e�}p�b��4��Oɛ�I�Itn�|)n��x{c��h���LR�V�A��qte��O�c�t�w���B=tcü��x�r�s<�����9,FI��~��7�J�wI�	<Kg��z�DpASm���.����5.y7JV"���L�����<�^i�fqs��$8�-�H�"3בy��3��<D(��MP���r����ڜ�Ⱦ(�lk����:R'J�^�:�"ȍ��EY���EH|C�<8��>a�)�
��F�V\iA��2t���1����MfW��&6CMcJ]]
���BA��	��aG��/�A���B�v:5�
ߜn������x�?�oۏ�bs�=_�}+"gtٽ��\.EZ!�CD�/K�-V����Z�T{\6�3�	��4٫���g� L�F�j2�i������-��<2>��{C
�J����~�5"���S��Sq���#]Cx���֌Rpa��� ��
�Q�$��d��s	(�a����y��X�sb��o��{o������(���E���T�2��h��ĸ=.I�����G��]te���_e;�9\������F��Fٸa�sjYM�Zݸ�mBL�ۡ	lL��Go��7�^F�Ӝ��E��`�mb�GG4'!�LWi\8�h�VD�c�֛��J��EJ�ڷX}[P�#�	=@�F�D�B:�J6Ci�Bg�����Ӆ��e���2<΁��3T�
;@���Y5�
(�d:z����:�8�8ĎRH�b,H)"�H]H/�H9a#���H�]"�T�:ԁU�E �)K�>�y$��-!"1 #2$0A34B@���"�((^c�LN
�wG}���>0��#��BE�y���n<b��.2�W��'��'������xm<}٪C.J��䛐����fFM�g���b'm!��!C�l#l�r�:����z��AL#��E#���J���$�J#T�Rh��e����,S��ny)!������I�W7��A�t���\��r��#���$�E�dF�;�N?��\_�=�Jc�eC�F���L�f�6��#���Vy9
�/��@IE��<����cFT��g�IA����a��K�/!!��~s]���.��<�K������[YZF�k;:j+<�%��"������tI��ӫ!���bz���۰6X"����3O�i*�Z�b�qM�ᕶ��?#ԇ�gQ*:�9L��*~�7H�d�4�,w4���sM=:ub|�!Ka�x����xfD�qPw��X�b�I8�ٍi��E�q4�r7�.��_����q�h��W�T����95�bn��꤭Ju��'k}"���({4m�Y{�ۆT����҄Bc�b�wy��W���e���U�G4�ܓ ��e�a�R$�Q�L���a짨k���B,Mp�7r])B�������d��0	�-��0<���6ٹ��;����+Iۛ[�3��ڒRǑ��y/�Y+ֻ�d��d2͋�)���Q�琾�$keJ�i�G?�N���?ʣ�n!P��TOv!��զ��*�4)-�NF�nH�=fԂK4���z��Q��ڋ1�P��K��mv��x�t��[�^w��i���zh3Խ�(W�Vbh"�M�z��Tŗ�1�f~�WH+j�.ez<�$�M{ݹ���2*��5�$�(�̌7�ڿ����n�����*�t
�]Q&2i��$��B3�"j�A^'�v���m�T���
�*܏0��gԬQ���'�5k�ڗ��rԮ��h�_!f�79�y�����ڵe:^�^�v>Y�2�L��#Q���*��JT�+ګ:D�w�ݎ��ԫ�,rT�:P,q�^�
ҳɫH�R��Aa;\�c]g��ΒJ�Dh�����H�vf���`kF��K�Ev.������9�M��ov�:��������6Q�o��ן9I����,�����(�XqƄ�+ �i&��n\[�� X��1���A"MR6W�b��5輁��Y�X�͉��C��W!8.)m��3Qr/s�F�)_���Y���F;j_��w~�~otZlܟS��g >ro�;b|�u�x#i-j���;I�0�k�I5i��(�b�L�i==	=-nm$��s׎���:+�K�˚��8���P�5��#��l�J���T&�mE	s�'�H��4�d�?O�MX���e�i�6$��21�7�~Nӳ�Q�B��V�%v�g�ؕ��o�W�sN��F�����8�K����U��r�ȣ��2��&��VsY ������S�t-�q��?���v݂�pdr4DL-�O��|=��m�&�9�~,ɴ��Wc/uZ��X�ŏ�SK�C{P�lXŔ�i�+��5�\�c���O�S�lZ{�6^�m>��^E�\֝~�#m��@v���i\!���E��S�I���za,�Z0����V���ç���6(񳃫��N��f�MK]�^�|m�ݟ?���ٶG?���������v�L]ٴ�b���3o��v��M���e��X�����(��?��O�H���]���:H
n��J���'.�?����z&˺,��N��XRй&�W�[�~�2�	��\���l��w��?��c�+���밉p:a�j��i��
�vo�ȿ'0����~����~Q�g�HW����S5j(�RUj��۠�=�g�]��[�>"�Q��0��r�:�K
o��d]��ޙ�'M�b����ɗ�
^L����]�=�~`�?PH���:%I^�?��]�x.��z֎Ib1���~:mG�.�VH:��p|��f��#8v\�+>ة�e"�a�O�8�_��4Z���/r)�g�P����^���;����G�)N��5�fN�A㚜|e�����zf("9����
�Z���b);�#��L�cL�8e�)l+U���k��95z��Ƭܯ���Z���8̍
%�+/q#0�Ua�L�d�Dmҳv��釤�X߄7$��
'��>�2E,�݅����9b�A��t�.61�,�$`lҟ�y=]q���U����_y;I9-.7��,�t�c|�S�s
��,���$�q_c}8̈́�=G�ix�tN|��,�n�I��9�ٸ9Rv�+kR�)-&禌獨{�@�8�V_�v���I�c��SO]�ց�qƎ�w�C���ҷ�(c���Nٹ�?r���.K���%�����?!�lЇ�͓
%�H�<5o���xy,�I��"���l���Ձ�YgȨ�娹T�~��EM�H<K���P���zzF�C���MJg���24�h��z��e�� j���8x�"ˆ���
=�N�WO��R+/��|6�~��Q�L�lU�I�t�l�0�Z|f�N uUjʼ��D�����Q�r"V[ɳQ��Z�~�~لGp]Nӈ�T�cF���r
�,%�3p�V\��d>_Q��r�=�lw}��"I�[�����ݡN&4�
�Gݜ�V�� � <�y{Pb�W��q�Tܭ��_n.r���߆����#�H���{=Fm�cm�o�ulL����(�g����v8UuTh�)�4��q�Tَ A�'g�lZ�\ॳ#"����Yv�ɕ�ȓ{�j#?� �6��i�X{[��o��l_q�"GMF��~j>��f�~�]�AI�<���Q�ʳ/��� ��#K'uC���ѱ-H�f���vb>�S�%`rZm���$##Ɵ؜���9"q�Fs�$]�e�oK��Os�1�U���Yd�>!�Hq���Dɲq,�xǔ�� ʶӷz�2F�l	"��dQN^�Z��Z4՛P�ݮ��1GHd�b��2�<�6��^f�E|�w�c4�ٿ��-�Dz'��W��k�v��v'�Mē��Y���h+U{O�<ի,r%�1im�i�q#Z�;cղh!lw�N'�j)�2�5���ȗv�v+_��J6�*qUv��:7�P�-�f���c����'к�|��j�ǎC����.��&t�F25t����֎UPm[��A�Ʀ}@m��Y@h��� �C傍��������?T������?T���3!1A "Qa02q#B@��3Rbr�����?��f�V*%uh�l��6W䂎˻T,��<J�?��Ը�CNU,2���b�T�|(f���PL��V�B��,��e&����W���Z�pVW_m���ab�l����5ҬZ�ܠ^�Ǿ&Z�V�V+���u/n��N�����>Ҵ���L��Q��u�)5�����
�&d`�
cD��#.����k{(p]��tP*L�a#����]’WL-,���d+�q���=͌�Y���ȸ��N�ĝTǻU�k.��U�%�!9�:2���e�qe�{+T�.s�]
�M�s3��̪3�l�S	���PۧJ�Յwf
��*��y�5HʬS�]ҠX���8�dX�V@��Q����īT�M�B��WT�Z�
1:�]R�'8��O`2�����D�
\��߲a{�����*�#d2��S���~�B�6Y�VZ)���ekntA��/���L�G���4:�d�4ÂUB5N�!O�ۍ�uf�7�SC��xRl5ȍ�l\�Jk[O0�)���!HJ�t��ʇ�����>?�/�w�=od=P�2�7u@U��t������;�d�,�i���$��>�}�N�����V@�N�wG��IP�֞�����\ܦ�c�
N�k��+���jo�l�vO���	��g�N�M�
�U�7YVjw;��k�	����򲆇&7&�����N�w�j�`foujD�p�-G��M� *�am���L
�HWj�jh����XT��H�^y\�`��N��F�r��&�n.��=���eY���?6��ܦ�le��<�",�V�F�*�Bn�6M�I)����1�����x��d���J�^�+�X���!Ŗds(�
ܸl;����@��<��.S�g�A=Է�$�J=�)LuOs�o�䒛M��E�d)�^��cdȁ�[&�#����o�)�����oRmJ6�tR�j��OlIB��)j�W{�jhϛ=�$i�/6Y��l��S�^t^Л���4dˮ�̛�.&WS���]�����N�1�;�ᾋ�v�
X�V���u-�#PU�����M2Z/���U�G��g6��v�銃~N?��,�0��NC&�mM4�Fħ
~�P��#�l��a�#[�u4ͥQo���&�o�u��:`ܔ-�H:�ʺI��6�wY���#��:��Z.5es�����U3n,�;��Y[�8������1Uogc�¬��e��ӚhM*�[�o�֌���D(�e��9�q�,�c�ةv���.��.�t�]yM������gn����m=[۬��k���E����M�sCΩ�0|�P^6O��f�'6�\,���5\bI�{�䮛4�E�#2s�����(k/��ۮ�	�*��,;'5���*mm��q��I����¨$	
ߢ�Ėk��a��T���'S�M�B�U*�����:*oq��ӟ��j��݇h�[��E�Q4)�$u@�Q���i�>q����=�2�Nʯ�FW>�ܬ����D�JsJ�X��yӐ8j�«�i�(9�/ا;nQ�@�@�qj��s���=_��5L�LDr�,�*���#�'�F� �������Km��yuO�ʂ\f7�"]�-�>&�B,o�Q需[��gw�yi��J��Ps�E�C�*瀜{�0*a]Y�X߄ڻ�ǣ�ag�f
}F���8�29���F�/�g }�
U�L�����@����-�T��|iƮ��7s��Y��m��nŝxY;�L�GdQ��C�e�����?�L�&�H#��A�e�;��a�B#�Z��~ɍ�&���}8���֋��m�a�|'f����˔�4J}�o|_�X��Ns
�M��ˉ�`��_NB�P"�EK&����N��Uo0cΒ�Z?�vݱ��%MN�*dX	Ψ4����!�=��XA��
�9<�;iE�ck*j;�1��B�˖��#-�Qk���b��}�_T�։u�?تS�A'���D�Qk��}��J�۸���6�6���q���J��y��1�1��^# �+�Љ��V�����D�Mcth�+Ҧ|�O�y(��H� �>P�woe.7D�lSO�B�s9In�y��Ri<���l9>��!fp�=�A; �m��.r��|&x�%8�]֖]J
��w���Y;zf�E
j\�%S�[�S�w}��P}L��%T1���1Ͷ3�@�=��q�Y�
��ҡ�Q�x�=�cӔ�7ŭi� �Hq���Φ�X���e�t�P���7N���䴮��ʻ�u�A2��ʏ�����Kc���ͦ�1�0�c��ˁtIM�L��I�}L֘˃�"�Ŭ�'ekB�f7�:8���?�_�v]4�P"�@D-,�Ը��@���kn�G~w���k+6[�J�  )S����'Euw	Y��;7��9�XQSQe-cU��š�Ps��vE�a�ߟ�+�K.��Cu�=��X&�*L���å@oWu�?���(p���U�P�u��]�KAʝ�`�yp��0�4PS�X|��0a��0�w�*G��g\��@VP�G&�CB��`��!���,���0A�zH�1�Fa�-�^�2��85Q*4Wi�h��Y.��Sg�h�}Z�{��ԏ�Z�B�R�QI���𮡐��Hk���̭�ۻž!
*T�YAS`��]^�XD]KI�3�
���88�R�	Y��a ��q�����Z���K�8���
a3�ߔar���)!1AQaq��� �0���@���?!�
^�%L`Ag��e�;���s����t���F��
w�CG3�;K}AɅ%��I������L�&sQ�w��
RϿ�>)�=����R�Ql�c���y�����DE��6Z�jJy�U��i�/����KB/)so�r�Nfr��M7�\iju���֛��/LOS�:�*>��x�/fV���@�K]p��9��I�	�郙��
��thN"2(4P[#�d̸g��7�:���8�^�P�.g��8���g��_��>�>�X� �<�!��Gy�{#:�3�21ݐ�Gu��<�%����D�����}C�`q�ߨ�|ԠRz�&�(���d�rYU}�b,�[�Q1b�<�Vy�	>x<�`�.���	ET�"	��Y~k�(��&��bpo�
un&[e�'9�֨̈́�9MU�
2L	{&�fI}:R�s�>���U�Q$�a�#c�����^b脯H�#6’[����|@�`@�*F*Sp4�\RsJ�7P.�:�P��L��tq�
�E+�ާ3�eGEC���Z�R�q�Y^��)J�'�PP����4�eoHB囨�ˇ���'�5�'+��CWN�kѦ*\CG��. ��@�+�OH�W���fV7|A���B�J	��X��iT�4@S��B�%!�Xq.�q��0E@R��x��)�YqԨ�Ko�_���=P
[t�1�3�g~�A�03��-)��Yea,
a-p�uW瘼q�P�ւ�|2�m�����wE���Rb
��I��j�hfU��
eo���Uu+P@m4���#�\TjK��9�k��Bw.��ʙ�+]1r��ݑ��S/
�+M�!
$�6$�'3	�1�t�X6�w�3,E���j/�u/l�\2�[[;h̠�Lqʕ!�9��
�E,^sA��<b'�d���P�Z��`�����S�������Yv#��⪋M���p��L�C�]ф��-�ς�N�=M�NG�AJ��~b�rL���BŠ��
T5FIOS*���3,`A�������ŷc:��L/|m�A���u�A/�J_/��/� ��@7��/SJ��3$x톀%�����d|���d��7.�����N��\hM-|3���+bXrJ� �Q�4S58J��V~Q���vJ�f�
�HB�F%�%�w;ŪFf���j
G�%ް�Sx�@��(&�]5V�I~8��E��/���ed�_���*�?2��іVJ���%�r,�dVh�h]=���œ���v��\�l�|ߙBBz���E7KõH�˩��ٔ��C(�,k�Ë���t'`��,�'u��k���9 �ZY�i�u;u��9C��L@���+{BL^��'6(�F��3�'��yqzl��r#ի���h]J�0��h���5-�z�P���B�—�z��� ��{�X9* �X��e��+m�i�<ٱ7��\�X�g$œjc��na����5���yne٘��9Π�(ձ\�2N]��3�����B�[ʶ2�C�|��_�%[�35����^9���\ӹA�Cᴵ��R���è�cCC��\���k�;���Rf�W'2϶�u09�@��pYJ�;3��(i�I����N}���0g�̿N�rH���!(��PB�i\���q6�P���](�ٗuJLD9L����m�S�ʷhJ�̰q�����8|�&����Z�4�`�	Y��1��
C�L��'��*ڇw�{mͰ���
�4�꣢�(�-+�Tj�i	�`օ��q-��b���o����\��\�[���DjgIR�	�՜OYz�jBK����DŽn1�`���,rb��_�y0o{'EDo1"}��1��2!i�c���siV�$=O�.�"�׸����e�����`Yg q��h�Y	�(J)��ix8Ӹ�4�|EQo�2���F5ߖ���e�Mn�k��8�u+y��[��B�A+r��,�{EG!x�F�C��
��.z
r�
����%xe
C�"\����g�m��L�%�f&g� ��G�4��=�x�;UP�
��9�����Ҷ	���lpu?���U>e���
� x���Dee���5��3*0��F�Uʗ.%^H�s��3����
�k
@��L �X���3�8����ܹ'����Yti�����L؊�~%���s0���[�?����R�<BTk�0��vʩz$}2�J~�7��H�_p ,�ةqjW�1�7�\$b�YR@]F��8J@��Q;#0r����JW�J���ȼ�0O؄�HG�籗��`լ/���a(���s�S	��OS(��2��<���H4gR�yq����Rʔc�	\�(U��6WWұ
�D%����#l��h�r�'*T`�����s�Dex#.��x �%�d�V�,}�|�~h}0B�&M�*�?	�5��p4�6IM�EC�5_�4� !��1��R��~aU.n8��j�8����/�u
ۣ�ƫ���F�x�YaQ�<��IP�.��)�wbB�}@�S0�`3��o�0��tE.��|T׎z�u�]�mz�i�J���ɞ�Es��
��~���5�э�c�FU���t�|9�q�%�qZ��{��~<0W\��B{"x*��}'�C��������-�_���k�N|V-S�`�W��Zb�ʡ�($B�5z��[V�L�\6j;��_+�n`��V�S3[A)l����i"��/Sl�G�������e�����TY3W�
�j�l�A��G�,*�f�Y��Ne�x�`q��}k�B�*nXU�����+1�Rß32�6 )a��7��
�=NJ��HH�i��m]��P+�P���ȿ�3��r�g=Kn7AJ�>
\!��}�,��:Ll��,�y(�Cq��@0�b2dAе\̀6�V�S���b��. ^9.T|T�E
�?'xp���-\htK�CDq�m�V;���)�"q(V�@.�V>�_sLar�6����+r��˸�eK���6 ���� ��jX���
��a����Α��[ hJ��\%��$�D��h�;��%���~j�C~�����Ka�b.	h��l1vQg������I^R)M\S�=LX��ɨ���^�}Khj
��3���u)Ҿ�+�/��)Xe��w�(������nT���r��0�+�X�H,%V!�s��Fv6L�U�gR�{��Bn�?pQ���.���\�.�� z)���@i���c��J���Uޢ�܅$�9�o�7�6e�u�}B�����^�`�*�*W���q�ey�U�0�Ca �Q��0<�]��J����qG�e���+-�K<���L+MX),b�
JC�uS����H�F,e�MK��&)
�4s\L0��Q�M�$�:1��̼tY����xY�Y���R�B�\��Ff,�o� /Y>�~b��%fe��~"�s(+Ye��J{�Eb�Ʀ�e[�ܲ���h�W{9��} #��:�I%�Ħ�ѩb��[z�g�ܣڷ�����pZ�:�����̭�r��V�#b�/2�b��u�������{C� ��k����
�n�\[`F
4i�8�#4Y�@-��2�LAe�K7��%��p�#[K�0-C/̵�*	p�X���V�x����$���QD����0^�~�姻�<��>�Y�c�"!��P�P4E��NY_�2S�+�Vj?x�6q0�w�o����iW��f	�?4%�C�� ��GIݻ��kԾ����y�5n$�0�~�Awv�0�8���&�ـ
{N�0�Ms��-��Ak��j1Y��� Z����b���j��X��{C�ᦧ�E�}C�<�&�d����
��v�/
^%���*l�bm�?Ƥ�*�L�d�{iR��]TkJ%����Ȧ�Z�R�sq���3Xf9���R�z�s*
{ �_�ɗ���R�Ր�^&I�LB��*�3��e\�eCpq(�:fd�t��=.X9��m3\L�C�k$r��Jܽ�7t{"@4�l)�Zj��uHU���B
��1�b^��R�B�PJ@�P
C��<r`���S�<Ў����8�<0C<��(N�$�8B�(sD< � ��<�8@�<2� �	8SG�ORE4#E(A�E8�$ ����r��8BK�
R$`��#FÅ8��G†4q�� �F,s�0���A����N,�8��� ���(�(H�A0@�"#,S� R��(��AO�0�CO P�(��S�$�81���$��S�8�,��G �G4�M$q�8�$��$�<��� ���  s�����?T������?T���)!1AQaq������ �0��@��?�\q��F|�ڟ�=^�4�p�͘���ZTC�_��-,1�z�w�b@Ψ�\n
E � ��hEY1`�@.��W�4÷>�ʥ�9�E�a�<RDDba#$5���Z�a��
WM�A���T�/'�)�9F"Ic)�2�R�c�*�ԕhĝ�n%F�$>,�c�⹘ui�u�,$Eclʲ
9&%��rJf���H��ѥ��fr����帘R.�+�ID���h���7�
ЬV��@��$0^c$eqPeJx�0�Yb���0?��K)/d>E���Xx�-�J��E.���02:��� lME��&���j�H컐�@R���w������ΨM H�[U���-&�m�P�`�/�P����L��g>!�u�G'�B�j�~�ᠮ���з�Ŧ�R�(�/?�������J�њ|T��*�*��$wp��n�J洬�)�B�h%��,s1�:�T�n��ÿs�j2E�]QEBt�Z�>'f`vx��`�mx�i|�X��.��b7�b͐}kWQ���D����bZ2J@�d�
��D�V�
�)��7��󺀊
%�!��TG��c��*{y��T���O�m�(h#�h�9����8�l�:b���i��XҼ6��A�>2�X�!�D_���3�z����	1D�p��à"l#6��G�/�~!�V� (b���ΰ9*�l����/���?�0��vU�Y���mm���mXmX�SL��G�#���3)��	�l������ �t� ���y�^S��,Ɇm��ԛV�k
�Ǯ�OQY�n_�q���u
�R�x�jP��M�?R�^�6.��#�>F^z��g7�?@�b``Y��G��p�ԫ<K���h���8�rjCf;�Ѵ(�q�ƌ��Dj�]��
��j[�^
ab�f�	��"��������+JF���-��n�2U[ӫ���l�-��jȊ����*#��؂D��p2�Z��Q�$4�� !�8�����ט�F��]ع�ڃ,�t"�.��� ��G�N��IK�/�qX�*�//5�aX��X��a�	�:��n�
pq�\7�����v�0XχL�]b'��e븱�
�
���w�\��_���L���f�4ѝ*$G�z�i-�ag@��F�ʑG)�1�6d̢�]�"�b�����}�F2��dE��D-̘h<�
�p,In�P��B4������:��G��<�CU�x��rZC��J0��l����Sŗz���!La����Y�#�6S����,�J+v�Y�e�k����^�q��"0F���
g�ߵ���߄nEo��2���U�ۿ3H���
�W���l�^V�V����`��Z�=�)�[sl�-5l�o�|�4A���w��N4���Ҳ�p��o72��jUF
�e�<�QY�6�k3��oU1��'�9
�W���
�"Ƣ�~&o=v��y�9�lh�GQx#����C���AX4
h�~D�?�,�he��I\��[� nUj
��h�4=��y��+QU6C�+�&��6���{T�J�d[�Ƌs:^��>Y!����ƻl����zcl_�4�R�^=!��M�7���� ���/�T�����Բ��V{���ɡ��p�
��T�G�"����
á�H���Y���=�"\Xl�(� KaMy��p<�#���q�`�0���T0���{��9y^l�W��|�����>1@lAO�&� ZѯL�@,2�(�S��1c�\u
���L@���!KPy�C
y�eT�;�M�}�mч�]F��2����-��7���ޥ���m�S�sܫ�Mv�~��Tտ(C����gP���.�[��w��ٖ��1��7�k�����b��E��K��v–�̸�(iy�9/��
����IP#Ǧpҳo*�M�Ԥ����J�#=-�����l{z��V��A֌�1�s8�tT[�@�T���wI�����e.]�<�U7����D�@t��*���/q�ݳ���g0Lwac��x喨lv�[���(X�aϊ؝#�p��F[]�6(�(�yy�	_(�AuM��5_¥ٶK�"�g,w^#U��B��f:h^�VE]OI],��G
�v����L�L���|��fx�*�T�֌j�WQL�K��\5��SJ������1lڊ
���D�a���le���m?2����x�SpuM�r�Q\-]�8�	��'c5t��cu,۵��Nuܴ�+F�1y����k��ih3!ҋz�G�\���V��Q��F2cP7Y��#��o�F�L4}��
G� �޿�&$S���_/�5Fӓ����)����L�ӆb�Q�ܺ�_V���������$�m�g��- �Xr��� 
�`=u�('���jx�?Yr^cUa�'�}�K�'��t�vTۛej=���RځD<�U�Xܢ�y�%����U��2�A��u��ʼn�����e��j�W��9%9#iT�Ә�+\Cw��S
�rC,aSX�?�:�4��G9Y�5�DS�P�C!�U�h�V�	�;t�'�$�$SL,&bu�`݈<�K�0�eZ� ��K/��t�M�J�Eʼ�E��+.�)�ja)W����,)�A:��Ź��
~!>�&HT,Vg�����k�(:
-a�f
T^�p��B�P����**?�-v�aNvG����{Wݚ<��	g2ۭ�!���M{��>Җ>aUt���i�u4,{*�08%L�廓b��t�-:��ʞ�
����&��,t��e�ʮY��D"�
�$B4%@݂������m�"��F��0*�KD!X��=T`�i!%�K���ԧMT E�_dlf2d�
�N&���|�&��RH]$V��pu��U�`
��"
�qhՑ�	��%���T�54ĥfQw���KnF
��p6��ʎ���5J�@�6���f��~�1���Z1�5�f����-�D�"�U�%w���V<�ŀri�qW3�lC52�*��Z�!G��w��;b�H�/nj��'����{��y&h� M�+���uh]�||��;_���*��Ui�8���cjt����TY������D��z.11��K��/��?PC[%��Pll�k�e@Rʠ���c&4��oX`�Fel.a@0��c����p���JN�{�E�M���U@e"�k���9�+]��,��)B9\D��Y��,ګg5(ER��]d�^��œ�P)^`E�3G�U1�_t�vͮ��k�f,���Y�[!�Կ+�����=C�&	uDE֢!�6�r��z�9���
[
���Z,kn�X�sd�q���DA|��):�ֳp-���"���#t�ъ���P�Z�$[x��j#P@���Q�T@[Q���`K�4b����G�D�8��X*2��@�)�T+,,�
��~ڢ�9�;-s;�S̰w�N���+���mls\{��	�*�``�p��[C�D[�a��n�9/��j��ԩ���*Vb:�P��X�Eh�z�E4�(�Ԯ���j� �T^~b��d�bR��;���Q
����qx�m�t�D0Th@�\[�}������m�܍�U��a�qoG18�"��jB��HP�J	Ј�Z�	�`����F�j%^+��
T~l�˖�M��Z��=sr��~����j�v�9�ޢ�.͓3�ä'��)F�l
(Kԩ�ي��e��]A��9����A�KBbp#$�/�s搭����Ƥ%��	=�\VH�'���X2>� ̤@]!W��pz���r���f��ʄ��P���;����*2��Zq��	��x['��Ns��Ƨ'�����d��ش7P a#�F|n �*/��Y.-� �0ʷ�2]Z�h��Dxc��+Po3��[�c�'m�:"ºr>IY,�H2�7�@����s��2F!�&L���Dg�*�;��4%o������Ǚ��Y���n\C�^G��B�w�e��B�3�����U����*oP.��/r�J?q�W��2��Sa��B�.L�Y�D߸�����a;�ڋ���{86 �u�q�9`
��w��d�L��Vȶ�Qcыo�r�����I�F=�l*>H��-�
�YS�
�mY�����o�\��l���ׇ�L�E�{e4����ޘh����m!�X��h���
�"r��c���%��ve2�`�Z���C��*X8�T,��wH����+��
�]�* ��!t)����Ư`���u�~	G`�O9'�-��<?�]E����儻���@��Ue��X1��%P�KØ����#���1j�v��q�
��1��wur;Ne�Х<jY���<�vF������Rܗ��XE�3,a�aUaQ����p�Q�;�s1(-L�ln���ȝ�?EN�FXU5+ �k�'�Ee_�-	V�X
$Z���	O�{�+bK����g[���YZ����k���<.c爼a����\���vUq�E���+J�$�op�.�}qG�W�0i��#�h��Qq�Ћb�,�Ǵ8�\8�P(`5�{��9�v��Q���dhA.Ќrd�
���˟�]��f�[e<3�9R�]\�2�,��R�@����S�)~�JQ�!m�R�����9��Ѭ�A]�cu�
��Źb��	�<��\'0ӎ��t�����ǁ+��q(�T�	�՜ʣ�('�(b���
�ڄ��2��P�
.{�YOia�Pe�_U�%�şa��x�N�MT@O0������p�L�Ș����S���8��&JU���4J6c�Jƒ:�(���S��v�]6�c���C��g1mV-��rٲ������,�@�t�F�P��[Qpq��� �m�rPm)8����x� ��䊜Eٜ�P�A)���!�;�
�;�Q���gq}��d�0��%��?�Yҏ��ǃ��f�����
x�]�M³�ZP8��i�61���B*�N�d��$Ϊ�+��hE�g�D��ˣp؂��+�u�X#�b�j)�scGlL�xl�B��
u)����+��!ā�3��24�U4[�n��e��XՒ鞮z�PY�y�Tvo����E���:�d��`pCP𐿈�ƈ+��q8W�x�^�	P3�`�1�ȦN!VXC���Ԣ�a[�F�<b%Ye��K���p��U���Ř���fV`5��b���	�i�,cd(�:��e�
h�tf0��"��*�j�.B���g$�k���1�P�Ü�Њ(Y�ܯK��+nIjX0��J�n��1J�㾳.�%�a���m������b-�#�ƒ��8����n^eޥT3�*h�ʚ�Vt�ei��yF��x�ǽ�7�V|":68�,��LTVE|�u7z���L��IW�U�J���l��HUj�ͧ�m	BӒ��c�F�i�ۗ�F[[��_7�0bڸj��r�0j�Ϩz��5�.��aеِ���"��q�Z�������"�P_��U9��}�׵�[�\��@�JSb/�A�2��HvÓ��{��oD�⸗."�]��U��k���6�v��t­��=��ˇ<FP;kG�W�S�(����
�>Q�*[���K����k-G�٦�cr((!���a/�4����*�	�R���aCd�ǣ�ϔ�S����@4LVA[�7a�R5�( �l� ��p8��S�%�X���UIr��]U�f�#(��|�*�0d�)H;��T�&�d�a��j� �Ӄ�Yk�������b�?�:���M
��@caeOQ�:�k�*��@[�a�8��.�����\�b�����Yٻ��R��<L�U��y�����8r�GZ�`z�gr�kEŬv7�����F
�~#�:�V�,a��g�~��Y{�
D!��9q-Z�	�GUk\��ʁ� s������h6턩����H�h,*��︹Kx��К���x�`(~a`��v���������	�0�t�"Ai~Y�f��ڜ|F���fio����[�P*��*�I� op �GeEX�0�ϓ�kiKj�Y���Q.ZPoı q��fQ[/���T���E��&V�Q-Gpr�1\��{�.(
_P���X
�8fwR�ܔe�����
�m(�T�bO�Z�`t��jb�0U+B���f��j³6�p�a
�q�-�RDR��Z}�jϘ�a�8Z�z���&�+�ahp���
8�A�j�Q���@N���-��
V�� �n]��1(���P�w�A�fi*U�ɑ9�p�T��N��gA�!5nf_1��� ��Đj�a�0R���8��|Z��k��q]�&��M�B�"��6q�[[+Y^%|��˪��z+3(�0W�e�@
�� ��
�����7�PU��2�����b��[:�
ªW��_�D������y�����`6\�2�F,�籲�FS,�����dT�F���8��Ļ3�Z���a#KFu7Ei�V"�`c�B�e�M�B��b����/B�$0h���jf�j�t��6��&].b, j
='!��UL�
�P]\R���%�Q
�\*Hc*���T�O�B��D��widgetkit/angular-a6e37d0a.js000064400000404542152177723720011764 0ustar00/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(R,W,u){'use strict';function S(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.20/"+(b?b+"/":"")+a;for(a=1;a<arguments.length;a++){c=c+(1==a?"?":"&")+"p"+(a-1)+"=";var d=encodeURIComponent,e;e=arguments[a];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;c+=d(e)}return Error(c)}}function Ta(b){if(null==b||Ua(b))return!1;var a="length"in Object(b)&&b.length;
return b.nodeType===qa&&a?!0:x(b)||H(b)||0===a||"number"===typeof a&&0<a&&a-1 in b}function r(b,a,c){var d,e;if(b)if(z(b))for(d in b)"prototype"==d||"length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d)||a.call(c,b[d],d,b);else if(H(b)||Ta(b)){var f="object"!==typeof b;d=0;for(e=b.length;d<e;d++)(f||d in b)&&a.call(c,b[d],d,b)}else if(b.forEach&&b.forEach!==r)b.forEach(a,c,b);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d,b);return b}function Ed(b,a,c){for(var d=Object.keys(b).sort(),
e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function lc(b){return function(a,c){b(c,a)}}function Fd(){return++rb}function mc(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function w(b){for(var a=b.$$hashKey,c=1,d=arguments.length;c<d;c++){var e=arguments[c];if(e)for(var f=Object.keys(e),g=0,h=f.length;g<h;g++){var l=f[g];b[l]=e[l]}}mc(b,a);return b}function aa(b){return parseInt(b,10)}function Ob(b,a){return w(Object.create(b),a)}function A(){}function ra(b){return b}function ea(b){return function(){return b}}
function D(b){return"undefined"===typeof b}function y(b){return"undefined"!==typeof b}function L(b){return null!==b&&"object"===typeof b}function x(b){return"string"===typeof b}function Y(b){return"number"===typeof b}function ha(b){return"[object Date]"===Ca.call(b)}function z(b){return"function"===typeof b}function Va(b){return"[object RegExp]"===Ca.call(b)}function Ua(b){return b&&b.window===b}function Wa(b){return b&&b.$evalAsync&&b.$watch}function Xa(b){return"boolean"===typeof b}function nc(b){return!(!b||
!(b.nodeName||b.prop&&b.attr&&b.find))}function Gd(b){var a={};b=b.split(",");var c;for(c=0;c<b.length;c++)a[b[c]]=!0;return a}function wa(b){return K(b.nodeName||b[0]&&b[0].nodeName)}function Ya(b,a){var c=b.indexOf(a);0<=c&&b.splice(c,1);return a}function Da(b,a,c,d){if(Ua(b)||Wa(b))throw Ja("cpws");if(a){if(b===a)throw Ja("cpi");c=c||[];d=d||[];if(L(b)){var e=c.indexOf(b);if(-1!==e)return d[e];c.push(b);d.push(a)}if(H(b))for(var f=a.length=0;f<b.length;f++)e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),
d.push(e)),a.push(e);else{var g=a.$$hashKey;H(a)?a.length=0:r(a,function(b,c){delete a[c]});for(f in b)b.hasOwnProperty(f)&&(e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),d.push(e)),a[f]=e);mc(a,g)}}else if(a=b)H(b)?a=Da(b,[],c,d):ha(b)?a=new Date(b.getTime()):Va(b)?(a=new RegExp(b.source,b.toString().match(/[^\/]*$/)[0]),a.lastIndex=b.lastIndex):L(b)&&(e=Object.create(Object.getPrototypeOf(b)),a=Da(b,e,c,d));return a}function sa(b,a){if(H(b)){a=a||[];for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}else if(L(b))for(c in a=
a||{},b)if("$"!==c.charAt(0)||"$"!==c.charAt(1))a[c]=b[c];return a||b}function ia(b,a){if(b===a)return!0;if(null===b||null===a)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&"object"==c)if(H(b)){if(!H(a))return!1;if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ia(b[d],a[d]))return!1;return!0}}else{if(ha(b))return ha(a)?ia(b.getTime(),a.getTime()):!1;if(Va(b))return Va(a)?b.toString()==a.toString():!1;if(Wa(b)||Wa(a)||Ua(b)||Ua(a)||H(a)||ha(a)||Va(a))return!1;c={};for(d in b)if("$"!==
d.charAt(0)&&!z(b[d])){if(!ia(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c.hasOwnProperty(d)&&"$"!==d.charAt(0)&&a[d]!==u&&!z(a[d]))return!1;return!0}return!1}function Za(b,a,c){return b.concat($a.call(a,c))}function oc(b,a){var c=2<arguments.length?$a.call(arguments,2):[];return!z(a)||a instanceof RegExp?a:c.length?function(){return arguments.length?a.apply(b,Za(c,arguments,0)):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}}function Hd(b,a){var c=a;"string"===typeof b&&
"$"===b.charAt(0)&&"$"===b.charAt(1)?c=u:Ua(a)?c="$WINDOW":a&&W===a?c="$DOCUMENT":Wa(a)&&(c="$SCOPE");return c}function ab(b,a){if("undefined"===typeof b)return u;Y(a)||(a=a?2:null);return JSON.stringify(b,Hd,a)}function pc(b){return x(b)?JSON.parse(b):b}function xa(b){b=B(b).clone();try{b.empty()}catch(a){}var c=B("<div>").append(b).html();try{return b[0].nodeType===bb?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function qc(b){try{return decodeURIComponent(b)}catch(a){}}
function rc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=qc(c[0]),y(d)&&(b=y(c[1])?qc(c[1]):!0,sc.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Pb(b){var a=[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))}):a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ea(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ea(b,a){return encodeURIComponent(b).replace(/%40/gi,
"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Id(b,a){var c,d,e=tb.length;b=B(b);for(d=0;d<e;++d)if(c=tb[d]+a,x(c=b.attr(c)))return c;return null}function Jd(b,a){var c,d,e={};r(tb,function(a){a+="app";!c&&b.hasAttribute&&b.hasAttribute(a)&&(c=b,d=b.getAttribute(a))});r(tb,function(a){a+="app";var e;!c&&(e=b.querySelector("["+a.replace(":","\\:")+"]"))&&(c=e,d=e.getAttribute(a))});c&&(e.strictDi=null!==Id(c,"strict-di"),
a(c,d?[d]:[],e))}function tc(b,a,c){L(c)||(c={});c=w({strictDi:!1},c);var d=function(){b=B(b);if(b.injector()){var d=b[0]===W?"document":xa(b);throw Ja("btstrpd",d.replace(/</,"&lt;").replace(/>/,"&gt;"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=cb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",
d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;R&&e.test(R.name)&&(c.debugInfoEnabled=!0,R.name=R.name.replace(e,""));if(R&&!f.test(R.name))return d();R.name=R.name.replace(f,"");ca.resumeBootstrap=function(b){r(b,function(b){a.push(b)});return d()};z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function Kd(){R.name="NG_ENABLE_DEBUG_INFO!"+R.name;R.location.reload()}function Ld(b){b=ca.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")}
function uc(b,a){a=a||"_";return b.replace(Md,function(b,d){return(d?a:"")+b.toLowerCase()})}function Nd(){var b;vc||((ta=R.jQuery)&&ta.fn.on?(B=ta,w(ta.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=ta.cleanData,ta.cleanData=function(a){var c;if(Qb)Qb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ta._data(e,"events"))&&c.$destroy&&ta(e).triggerHandler("$destroy");b(a)}):B=T,ca.element=B,vc=!0)}function Rb(b,a,c){if(!b)throw Ja("areq",
a||"?",c||"required");return b}function La(b,a,c){c&&H(b)&&(b=b[b.length-1]);Rb(z(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function wc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g<f;g++)d=a[g],b&&(b=(e=b)[d]);return!c&&z(b)?oc(e,b):b}function ub(b){var a=b[0];b=b[b.length-1];var c=[a];do{a=a.nextSibling;if(!a)break;c.push(a)}while(a!==b);return B(c)}function ja(){return Object.create(null)}
function Od(b){function a(a,b,c){return a[b]||(a[b]=c())}var c=S("$injector"),d=S("ng");b=a(b,"angular",Object);b.$$minErr=b.$$minErr||S;return a(b,"module",function(){var b={};return function(f,g,h){if("hasOwnProperty"===f)throw d("badname","module");g&&b.hasOwnProperty(f)&&(b[f]=null);return a(b,f,function(){function a(c,d,e,f){f||(f=b);return function(){f[e||"push"]([c,d,arguments]);return t}}if(!g)throw c("nomod",f);var b=[],d=[],e=[],q=a("$injector","invoke","push",d),t={_invokeQueue:b,_configBlocks:d,
_runBlocks:e,requires:g,name:f,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:q,run:function(a){e.push(a);return this}};h&&q(h);return t})}})}function Pd(b){w(b,{bootstrap:tc,copy:Da,extend:w,equals:ia,
element:B,forEach:r,injector:cb,noop:A,bind:oc,toJson:ab,fromJson:pc,identity:ra,isUndefined:D,isDefined:y,isString:x,isFunction:z,isObject:L,isNumber:Y,isElement:nc,isArray:H,version:Qd,isDate:ha,lowercase:K,uppercase:vb,callbacks:{counter:0},getTestability:Ld,$$minErr:S,$$csp:db,reloadWithDebugInfo:Kd});eb=Od(R);try{eb("ngLocale")}catch(a){eb("ngLocale",[]).provider("$locale",Rd)}eb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Sd});a.provider("$compile",xc).directive({a:Td,
input:yc,textarea:yc,form:Ud,script:Vd,select:Wd,style:Xd,option:Yd,ngBind:Zd,ngBindHtml:$d,ngBindTemplate:ae,ngClass:be,ngClassEven:ce,ngClassOdd:de,ngCloak:ee,ngController:fe,ngForm:ge,ngHide:he,ngIf:ie,ngInclude:je,ngInit:ke,ngNonBindable:le,ngPluralize:me,ngRepeat:ne,ngShow:oe,ngStyle:pe,ngSwitch:qe,ngSwitchWhen:re,ngSwitchDefault:se,ngOptions:te,ngTransclude:ue,ngModel:ve,ngList:we,ngChange:xe,pattern:zc,ngPattern:zc,required:Ac,ngRequired:Ac,minlength:Bc,ngMinlength:Bc,maxlength:Cc,ngMaxlength:Cc,
ngValue:ye,ngModelOptions:ze}).directive({ngInclude:Ae}).directive(wb).directive(Dc);a.provider({$anchorScroll:Be,$animate:Ce,$browser:De,$cacheFactory:Ee,$controller:Fe,$document:Ge,$exceptionHandler:He,$filter:Ec,$interpolate:Ie,$interval:Je,$http:Ke,$httpBackend:Le,$location:Me,$log:Ne,$parse:Oe,$rootScope:Pe,$q:Qe,$$q:Re,$sce:Se,$sceDelegate:Te,$sniffer:Ue,$templateCache:Ve,$templateRequest:We,$$testability:Xe,$timeout:Ye,$window:Ze,$$rAF:$e,$$asyncCallback:af,$$jqLite:bf})}])}function fb(b){return b.replace(cf,
function(a,b,d,e){return e?d.toUpperCase():d}).replace(df,"Moz$1")}function Fc(b){b=b.nodeType;return b===qa||!b||9===b}function Gc(b,a){var c,d,e=a.createDocumentFragment(),f=[];if(Sb.test(b)){c=c||e.appendChild(a.createElement("div"));d=(ef.exec(b)||["",""])[1].toLowerCase();d=ka[d]||ka._default;c.innerHTML=d[1]+b.replace(ff,"<$1></$2>")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Za(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});
return e}function T(b){if(b instanceof T)return b;var a;x(b)&&(b=N(b),a=!0);if(!(this instanceof T)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new T(b)}if(a){a=W;var c;b=(c=gf.exec(b))?[a.createElement(c[1])]:(c=Gc(b,a))?c.childNodes:[]}Hc(this,b)}function Ub(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d<e;d++)yb(c[d])}function Ic(b,a,c,d){if(y(d))throw Tb("offargs");var e=(d=zb(b))&&d.events,f=d&&d.handle;if(f)if(a)r(a.split(" "),
function(a){if(y(c)){var d=e[a];Ya(d||[],c);if(d&&0<d.length)return}b.removeEventListener(a,f,!1);delete e[a]});else for(a in e)"$destroy"!==a&&b.removeEventListener(a,f,!1),delete e[a]}function yb(b,a){var c=b.ng339,d=c&&Ab[c];d&&(a?delete d.data[a]:(d.handle&&(d.events.$destroy&&d.handle({},"$destroy"),Ic(b)),delete Ab[c],b.ng339=u))}function zb(b,a){var c=b.ng339,c=c&&Ab[c];a&&!c&&(b.ng339=c=++hf,c=Ab[c]={events:{},data:{},handle:u});return c}function Vb(b,a,c){if(Fc(b)){var d=y(c),e=!d&&a&&!L(a),
f=!a;b=(b=zb(b,!e))&&b.data;if(d)b[a]=c;else{if(f)return b;if(e)return b&&b[a];w(b,a)}}}function Bb(b,a){return b.getAttribute?-1<(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" "):!1}function Cb(b,a){a&&b.setAttribute&&r(a.split(" "),function(a){b.setAttribute("class",N((" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+N(a)+" "," ")))})}function Db(b,a){if(a&&b.setAttribute){var c=(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");
r(a.split(" "),function(a){a=N(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});b.setAttribute("class",N(c))}}function Hc(b,a){if(a)if(a.nodeType)b[b.length++]=a;else{var c=a.length;if("number"===typeof c&&a.window!==a){if(c)for(var d=0;d<c;d++)b[b.length++]=a[d]}else b[b.length++]=a}}function Jc(b,a){return Eb(b,"$"+(a||"ngController")+"Controller")}function Eb(b,a,c){9==b.nodeType&&(b=b.documentElement);for(a=H(a)?a:[a];b;){for(var d=0,e=a.length;d<e;d++)if((c=B.data(b,a[d]))!==u)return c;b=b.parentNode||
11===b.nodeType&&b.host}}function Kc(b){for(xb(b,!0);b.firstChild;)b.removeChild(b.firstChild)}function Lc(b,a){a||xb(b);var c=b.parentNode;c&&c.removeChild(b)}function jf(b,a){a=a||R;if("complete"===a.document.readyState)a.setTimeout(b);else B(a).on("load",b)}function Mc(b,a){var c=Fb[a.toLowerCase()];return c&&Nc[wa(b)]&&c}function kf(b,a){var c=b.nodeName;return("INPUT"===c||"TEXTAREA"===c)&&Oc[a]}function lf(b,a){var c=function(c,e){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=
a[e||c.type],g=f?f.length:0;if(g){if(D(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};1<g&&(f=sa(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||f[l].call(b,c)}};c.elem=b;return c}function bf(){this.$get=function(){return w(T,{hasClass:function(b,a){b.attr&&(b=b[0]);
return Bb(b,a)},addClass:function(b,a){b.attr&&(b=b[0]);return Db(b,a)},removeClass:function(b,a){b.attr&&(b=b[0]);return Cb(b,a)}})}}function Na(b,a){var c=b&&b.$$hashKey;if(c)return"function"===typeof c&&(c=b.$$hashKey()),c;c=typeof b;return c="function"==c||"object"==c&&null!==b?b.$$hashKey=c+":"+(a||Fd)():c+":"+b}function gb(b,a){if(a){var c=0;this.nextUid=function(){return++c}}r(b,this.put,this)}function mf(b){return(b=b.toString().replace(Pc,"").match(Qc))?"function("+(b[1]||"").replace(/[\s\r\n]+/,
" ")+")":"fn"}function cb(b,a){function c(a){return function(b,c){if(L(b))r(b,lc(a));else return a(b,c)}}function d(a,b){Ma(a,"service");if(z(b)||H(b))b=q.instantiate(b);if(!b.$get)throw Fa("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=s.invoke(b,this);if(D(c))throw Fa("undef",a);return c}}function f(a,b,c){return d(a,{$get:!1!==c?e(a,b):b})}function g(a){var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=q.get(e[0]);f[e[1]].apply(f,
e[2])}}if(!n.get(a)){n.put(a,!0);try{x(a)?(c=eb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):z(a)?b.push(q.invoke(a)):H(a)?b.push(q.invoke(a)):La(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Fa("modulerr",a,e.stack||e.message||e);}}});return b}function h(b,c){function d(a,e){if(b.hasOwnProperty(a)){if(b[a]===l)throw Fa("cdep",a+" <- "+k.join(" <- "));return b[a]}try{return k.unshift(a),
b[a]=l,b[a]=c(a,e)}catch(f){throw b[a]===l&&delete b[a],f;}finally{k.shift()}}function e(b,c,f,g){"string"===typeof f&&(g=f,f=null);var k=[],l=cb.$$annotate(b,a,g),h,q,p;q=0;for(h=l.length;q<h;q++){p=l[q];if("string"!==typeof p)throw Fa("itkn",p);k.push(f&&f.hasOwnProperty(p)?f[p]:d(p,g))}H(b)&&(b=b[h]);return b.apply(c,k)}return{invoke:e,instantiate:function(a,b,c){var d=Object.create((H(a)?a[a.length-1]:a).prototype||null);a=e(a,d,b,c);return L(a)||z(a)?a:d},get:d,annotate:cb.$$annotate,has:function(a){return p.hasOwnProperty(a+
"Provider")||b.hasOwnProperty(a)}}}a=!0===a;var l={},k=[],n=new gb([],!0),p={$provide:{provider:c(d),factory:c(f),service:c(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:c(function(a,b){return f(a,ea(b),!1)}),constant:c(function(a,b){Ma(a,"constant");p[a]=b;t[a]=b}),decorator:function(a,b){var c=q.get(a+"Provider"),d=c.$get;c.$get=function(){var a=s.invoke(d,c);return s.invoke(b,null,{$delegate:a})}}}},q=p.$injector=h(p,function(a,b){ca.isString(b)&&k.push(b);
throw Fa("unpr",k.join(" <- "));}),t={},s=t.$injector=h(t,function(a,b){var c=q.get(a+"Provider",b);return s.invoke(c.$get,c,u,a)});r(g(b),function(a){s.invoke(a||A)});return s}function Be(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===wa(a))return b=a,!0});return b}function f(b){if(b){b.scrollIntoView();var c;c=g.yOffset;z(c)?c=c():nc(c)?(c=c[0],c="fixed"!==
a.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Y(c)||(c=0);c&&(b=b.getBoundingClientRect().top,a.scrollBy(0,b-c))}else a.scrollTo(0,0)}function g(){var a=c.hash(),b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=a.document;b&&d.$watch(function(){return c.hash()},function(a,b){a===b&&""===a||jf(function(){d.$evalAsync(g)})});return g}]}function af(){this.$get=["$$rAF","$timeout",function(b,a){return b.supported?function(a){return b(a)}:
function(b){return a(b,0,!1)}}]}function nf(b,a,c,d){function e(a){try{a.apply(null,$a.call(arguments,1))}finally{if(m--,0===m)for(;C.length;)try{C.pop()()}catch(b){c.error(b)}}}function f(a,b){(function da(){r($,function(a){a()});I=b(da,a)})()}function g(){h();l()}function h(){a:{try{M=t.state;break a}catch(a){}M=void 0}M=D(M)?null:M;ia(M,P)&&(M=P);P=M}function l(){if(G!==n.url()||E!==M)G=n.url(),E=M,r(X,function(a){a(n.url(),M)})}function k(a){try{return decodeURIComponent(a)}catch(b){return a}}
var n=this,p=a[0],q=b.location,t=b.history,s=b.setTimeout,F=b.clearTimeout,v={};n.isMock=!1;var m=0,C=[];n.$$completeOutstandingRequest=e;n.$$incOutstandingRequestCount=function(){m++};n.notifyWhenNoOutstandingRequests=function(a){r($,function(a){a()});0===m?a():C.push(a)};var $=[],I;n.addPollFn=function(a){D(I)&&f(100,s);$.push(a);return a};var M,E,G=q.href,O=a.find("base"),Q=null;h();E=M;n.url=function(a,c,e){D(e)&&(e=null);q!==b.location&&(q=b.location);t!==b.history&&(t=b.history);if(a){var f=
E===e;if(G===a&&(!d.history||f))return n;var g=G&&Ga(G)===Ga(a);G=a;E=e;if(!d.history||g&&f){if(!g||Q)Q=a;c?q.replace(a):g?(c=q,e=a.indexOf("#"),a=-1===e?"":a.substr(e),c.hash=a):q.href=a}else t[c?"replaceState":"pushState"](e,"",a),h(),E=M;return n}return Q||q.href.replace(/%27/g,"'")};n.state=function(){return M};var X=[],ba=!1,P=null;n.onUrlChange=function(a){if(!ba){if(d.history)B(b).on("popstate",g);B(b).on("hashchange",g);ba=!0}X.push(a);return a};n.$$checkUrlChange=l;n.baseHref=function(){var a=
O.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var fa={},y="",la=n.baseHref();n.cookies=function(a,b){var d,e,f,g;if(a)b===u?p.cookie=encodeURIComponent(a)+"=;path="+la+";expires=Thu, 01 Jan 1970 00:00:00 GMT":x(b)&&(d=(p.cookie=encodeURIComponent(a)+"="+encodeURIComponent(b)+";path="+la).length+1,4096<d&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"));else{if(p.cookie!==y)for(y=p.cookie,d=y.split("; "),fa={},f=0;f<d.length;f++)e=
d[f],g=e.indexOf("="),0<g&&(a=k(e.substring(0,g)),fa[a]===u&&(fa[a]=k(e.substring(g+1))));return fa}};n.defer=function(a,b){var c;m++;c=s(function(){delete v[c];e(a)},b||0);v[c]=!0;return c};n.defer.cancel=function(a){return v[a]?(delete v[a],F(a),e(A),!0):!1}}function De(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new nf(b,d,a,c)}]}function Ee(){this.$get=function(){function b(b,d){function e(a){a!=p&&(q?q==a&&(q=a.n):q=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,
b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw S("$cacheFactory")("iid",b);var g=0,h=w({},d,{id:b}),l={},k=d&&d.capacity||Number.MAX_VALUE,n={},p=null,q=null;return a[b]={put:function(a,b){if(k<Number.MAX_VALUE){var c=n[a]||(n[a]={key:a});e(c)}if(!D(b))return a in l||g++,l[a]=b,g>k&&this.remove(q.key),b},get:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;e(b)}return l[a]},remove:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;b==p&&(p=b.p);b==q&&(q=b.n);f(b.n,b.p);delete n[a]}delete l[a];
g--},removeAll:function(){l={};g=0;n={};p=q=null},destroy:function(){n=h=l=null;delete a[b]},info:function(){return w({},h,{size:g})}}}var a={};b.info=function(){var b={};r(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Ve(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function xc(b,a){function c(a,b){var c=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,d={};r(a,function(a,e){var f=a.match(c);if(!f)throw ma("iscp",b,e,a);d[e]={mode:f[1][0],collection:"*"===
f[2],optional:"?"===f[3],attrName:f[4]||e}});return d}var d={},e=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,f=/(([\w\-]+)(?:\:([^;]+))?;?)/,g=Gd("ngSrc,ngSrcset,src,srcset"),h=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/;this.directive=function p(a,e){Ma(a,"directive");x(a)?(Rb(e,"directiveFactory"),d.hasOwnProperty(a)||(d[a]=[],b.factory(a+"Directive",["$injector","$exceptionHandler",function(b,e){var f=[];r(d[a],function(d,g){try{var h=b.invoke(d);z(h)?h={compile:ea(h)}:!h.compile&&h.link&&
(h.compile=ea(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||a;h.require=h.require||h.controller&&h.name;h.restrict=h.restrict||"EA";L(h.scope)&&(h.$$isolateBindings=c(h.scope,h.name));f.push(h)}catch(l){e(l)}});return f}])),d[a].push(e)):r(a,lc(p));return this};this.aHrefSanitizationWhitelist=function(b){return y(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()};
var k=!0;this.debugInfoEnabled=function(a){return y(a)?(k=a,this):k};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,c,s,F,v,m,C,$,I,M){function E(a,b){try{a.addClass(b)}catch(c){}}function G(a,b,c,d,e){a instanceof B||(a=B(a));r(a,function(b,c){b.nodeType==bb&&b.nodeValue.match(/\S+/)&&(a[c]=B(b).wrap("<span></span>").parent()[0])});var f=O(a,b,a,c,d,e);G.$$addScopeClass(a);
var g=null;return function(b,c,d){Rb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("<div>").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);G.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function O(a,b,c,d,e,f){function g(a,
c,d,e){var f,l,k,q,p,s,t;if(m)for(t=Array(c.length),q=0;q<h.length;q+=3)f=h[q],t[f]=c[f];else t=c;q=0;for(p=h.length;q<p;)l=t[h[q++]],c=h[q++],f=h[q++],c?(c.scope?(k=a.$new(),G.$$addScopeInfo(B(l),k)):k=a,s=c.transcludeOnThisElement?Q(a,c.transclude,e,c.elementTranscludeOnThisElement):!c.templateOnThisElement&&e?e:!e&&b?Q(a,b):null,c(f,k,l,d,s)):f&&f(a,l.childNodes,u,e)}for(var h=[],l,k,q,p,m,s=0;s<a.length;s++){l=new Yb;k=X(a[s],[],l,0===s?d:u,e);(f=k.length?fa(k,a[s],l,b,c,null,[],[],f):null)&&
f.scope&&G.$$addScopeClass(l.$$element);l=f&&f.terminal||!(q=a[s].childNodes)||!q.length?null:O(q,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(s,f,l),p=!0,m=m||f;f=null}return p?g:null}function Q(a,b,c,d){return function(d,e,f,g,h){d||(d=a.$new(!1,h),d.$$transcluded=!0);return b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})}}function X(a,b,c,d,g){var h=c.$attr,l;switch(a.nodeType){case qa:la(b,ya(wa(a)),"E",d,g);for(var k,
q,p,m=a.attributes,s=0,t=m&&m.length;s<t;s++){var M=!1,I=!1;k=m[s];l=k.name;q=N(k.value);k=ya(l);if(p=U.test(k))l=l.replace(Rc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});var F=k.replace(/(Start|End)$/,"");D(F)&&k===F+"Start"&&(M=l,I=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6));k=ya(l.toLowerCase());h[k]=l;if(p||!c.hasOwnProperty(k))c[k]=q,Mc(a,k)&&(c[k]=!0);Pa(a,b,q,k,p);la(b,k,"A",d,g,M,I)}a=a.className;L(a)&&(a=a.animVal);if(x(a)&&""!==a)for(;l=f.exec(a);)k=ya(l[2]),
la(b,k,"C",d,g)&&(c[k]=N(l[3])),a=a.substr(l.index+l[0].length);break;case bb:za(b,a.nodeValue);break;case 8:try{if(l=e.exec(a.nodeValue))k=ya(l[1]),la(b,k,"M",d,g)&&(c[k]=N(l[2]))}catch(v){}}b.sort(da);return b}function ba(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ma("uterdir",b,c);a.nodeType==qa&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return B(d)}function P(a,b,c){return function(d,e,f,g,h){e=ba(e[0],
b,c);return a(d,e,f,g,h)}}function fa(a,d,e,f,g,l,k,p,m){function s(a,b,c,d){if(a){c&&(a=P(a,c,d));a.require=J.require;a.directiveName=da;if(Q===J||J.$$isolateScope)a=Y(a,{isolateScope:!0});k.push(a)}if(b){c&&(b=P(b,c,d));b.require=J.require;b.directiveName=da;if(Q===J||J.$$isolateScope)b=Y(b,{isolateScope:!0});p.push(b)}}function M(a,b,c,d){var e,f="data",g=!1,l=c,k;if(x(b)){k=b.match(h);b=b.substring(k[0].length);k[3]&&(k[1]?k[3]=null:k[1]=k[3]);"^"===k[1]?f="inheritedData":"^^"===k[1]&&(f="inheritedData",
l=c.parent());"?"===k[2]&&(g=!0);e=null;d&&"data"===f&&(e=d[b])&&(e=e.instance);e=e||l[f]("$"+b+"Controller");if(!e&&!g)throw ma("ctreq",b,a);return e||null}H(b)&&(e=[],r(b,function(b){e.push(M(a,b,c,d))}));return e}function I(a,c,f,g,l){function h(a,b,c){var d;Wa(a)||(c=b,b=a,a=u);A&&(d=C);c||(c=A?X.parent():X);return l(a,b,d,c,Wb)}var m,s,t,E,C,ib,X,P;d===f?(P=e,X=e.$$element):(X=B(f),P=new Yb(X,e));Q&&(E=c.$new(!0));l&&(ib=h,ib.$$boundTransclude=l);O&&($={},C={},r(O,function(a){var b={$scope:a===
Q||a.$$isolateScope?E:c,$element:X,$attrs:P,$transclude:ib};t=a.controller;"@"==t&&(t=P[a.name]);b=v(t,b,!0,a.controllerAs);C[a.name]=b;A||X.data("$"+a.name+"Controller",b.instance);$[a.name]=b}));if(Q){G.$$addScopeInfo(X,E,!0,!(na&&(na===Q||na===Q.$$originalDirective)));G.$$addScopeClass(X,!0);g=$&&$[Q.name];var ba=E;g&&g.identifier&&!0===Q.bindToController&&(ba=g.instance);r(E.$$isolateBindings=Q.$$isolateBindings,function(a,d){var e=a.attrName,f=a.optional,g,l,h,k;switch(a.mode){case "@":P.$observe(e,
function(a){ba[d]=a});P.$$observers[e].$$scope=c;P[e]&&(ba[d]=b(P[e])(c));break;case "=":if(f&&!P[e])break;l=F(P[e]);k=l.literal?ia:function(a,b){return a===b||a!==a&&b!==b};h=l.assign||function(){g=ba[d]=l(c);throw ma("nonassign",P[e],Q.name);};g=ba[d]=l(c);f=function(a){k(a,ba[d])||(k(a,g)?h(c,a=ba[d]):ba[d]=a);return g=a};f.$stateful=!0;f=a.collection?c.$watchCollection(P[e],f):c.$watch(F(P[e],f),null,l.literal);E.$on("$destroy",f);break;case "&":l=F(P[e]),ba[d]=function(a){return l(c,a)}}})}$&&
(r($,function(a){a()}),$=null);g=0;for(m=k.length;g<m;g++)s=k[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib);var Wb=c;Q&&(Q.template||null===Q.templateUrl)&&(Wb=E);a&&a(Wb,f.childNodes,u,l);for(g=p.length-1;0<=g;g--)s=p[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib)}m=m||{};for(var E=-Number.MAX_VALUE,C,O=m.controllerDirectives,$,Q=m.newIsolateScopeDirective,na=m.templateDirective,fa=m.nonTlbTranscludeDirective,la=!1,D=!1,A=m.hasElementTranscludeDirective,
w=e.$$element=B(d),J,da,V,hb=f,za,K=0,R=a.length;K<R;K++){J=a[K];var Pa=J.$$start,U=J.$$end;Pa&&(w=ba(d,Pa,U));V=u;if(E>J.priority)break;if(V=J.scope)J.templateUrl||(L(V)?(Oa("new/isolated scope",Q||C,J,w),Q=J):Oa("new/isolated scope",Q,J,w)),C=C||J;da=J.name;!J.templateUrl&&J.controller&&(V=J.controller,O=O||{},Oa("'"+da+"' controller",O[da],J,w),O[da]=J);if(V=J.transclude)la=!0,J.$$tlb||(Oa("transclusion",fa,J,w),fa=J),"element"==V?(A=!0,E=J.priority,V=w,w=e.$$element=B(W.createComment(" "+da+": "+
e[da]+" ")),d=w[0],T(g,$a.call(V,0),d),hb=G(V,f,E,l&&l.name,{nonTlbTranscludeDirective:fa})):(V=B(Ub(d)).contents(),w.empty(),hb=G(V,f));if(J.template)if(D=!0,Oa("template",na,J,w),na=J,V=z(J.template)?J.template(w,e):J.template,V=Sc(V),J.replace){l=J;V=Sb.test(V)?Tc(Xb(J.templateNamespace,N(V))):[];d=V[0];if(1!=V.length||d.nodeType!==qa)throw ma("tplrt",da,"");T(g,w,d);R={$attr:{}};V=X(d,[],R);var aa=a.splice(K+1,a.length-(K+1));Q&&y(V);a=a.concat(V).concat(aa);S(e,R);R=a.length}else w.html(V);if(J.templateUrl)D=
!0,Oa("template",na,J,w),na=J,J.replace&&(l=J),I=of(a.splice(K,a.length-K),w,e,g,la&&hb,k,p,{controllerDirectives:O,newIsolateScopeDirective:Q,templateDirective:na,nonTlbTranscludeDirective:fa}),R=a.length;else if(J.compile)try{za=J.compile(w,e,hb),z(za)?s(null,za,Pa,U):za&&s(za.pre,za.post,Pa,U)}catch(pf){c(pf,xa(w))}J.terminal&&(I.terminal=!0,E=Math.max(E,J.priority))}I.scope=C&&!0===C.scope;I.transcludeOnThisElement=la;I.elementTranscludeOnThisElement=A;I.templateOnThisElement=D;I.transclude=hb;
m.hasElementTranscludeDirective=A;return I}function y(a){for(var b=0,c=a.length;b<c;b++)a[b]=Ob(a[b],{$$isolateScope:!0})}function la(b,e,f,g,l,h,k){if(e===l)return null;l=null;if(d.hasOwnProperty(e)){var q;e=a.get(e+"Directive");for(var m=0,s=e.length;m<s;m++)try{q=e[m],(g===u||g>q.priority)&&-1!=q.restrict.indexOf(f)&&(h&&(q=Ob(q,{$$start:h,$$end:k})),b.push(q),l=q)}catch(I){c(I)}}return l}function D(b){if(d.hasOwnProperty(b))for(var c=a.get(b+"Directive"),e=0,f=c.length;e<f;e++)if(b=c[e],b.multiElement)return!0;
return!1}function S(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(E(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function of(a,b,c,d,e,f,g,l){var h=[],k,q,p=b[0],m=a.shift(),t=Ob(m,{templateUrl:null,transclude:null,
replace:null,$$originalDirective:m}),I=z(m.templateUrl)?m.templateUrl(b,c):m.templateUrl,M=m.templateNamespace;b.empty();s(I).then(function(s){var F,v;s=Sc(s);if(m.replace){s=Sb.test(s)?Tc(Xb(M,N(s))):[];F=s[0];if(1!=s.length||F.nodeType!==qa)throw ma("tplrt",m.name,I);s={$attr:{}};T(d,b,F);var C=X(F,[],s);L(m.scope)&&y(C);a=C.concat(a);S(c,s)}else F=p,b.html(s);a.unshift(t);k=fa(a,F,c,e,b,m,f,g,l);r(d,function(a,c){a==F&&(d[c]=b[0])});for(q=O(b[0].childNodes,e);h.length;){s=h.shift();v=h.shift();
var G=h.shift(),P=h.shift(),C=b[0];if(!s.$$destroyed){if(v!==p){var $=v.className;l.hasElementTranscludeDirective&&m.replace||(C=Ub(F));T(G,B(v),C);E(B(C),$)}v=k.transcludeOnThisElement?Q(s,k.transclude,P):P;k(q,s,C,d,v)}}h=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(h?h.push(b,c,d,a):(k.transcludeOnThisElement&&(a=Q(b,k.transclude,e)),k(q,b,c,d,a)))}}function da(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function Oa(a,b,c,d){if(b)throw ma("multidir",
b.name,c.name,a,xa(d));}function za(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&G.$$addBindingClass(a);return function(a,c){var e=c.parent();b||G.$$addBindingClass(e);G.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function Xb(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=W.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==
b)return $.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return $.RESOURCE_URL}function Pa(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var k=b(d,!0,h,f);if(k){if("multiple"===e&&"select"===wa(a))throw ma("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers={});if(l.test(e))throw ma("nodomevents");var p=g[e];p!==d&&(k=p&&b(p,!0,h,f),d=p);k&&(g[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope||
a).$watch(k,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e,a)}))}}}})}}function T(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,l;if(a)for(g=0,l=a.length;g<l;g++)if(a[g]==d){a[g++]=c;l=g+e-1;for(var h=a.length;g<h;g++,l++)l<h?a[g]=a[l]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=W.createDocumentFragment();a.appendChild(d);B(c).data(B(d).data());ta?(Qb=!0,ta.cleanData([d])):delete B.cache[d[B.expando]];d=1;for(e=b.length;d<e;d++)f=b[d],B(f).remove(),
a.appendChild(f),delete b[d];b[0]=c;b.length=1}function Y(a,b){return w(function(){return a.apply(null,arguments)},a,b)}function Z(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(l){c(l,xa(d))}}var Yb=function(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a};Yb.prototype={$normalize:ya,$addClass:function(a){a&&0<a.length&&I.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&I.removeClass(this.$$element,a)},$updateClass:function(a,
b){var c=Uc(a,b);c&&c.length&&I.addClass(this.$$element,c);(c=Uc(b,a))&&c.length&&I.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=this.$$element[0],g=Mc(f,a),l=kf(f,a),f=a;g?(this.$$element.prop(a,b),e=g):l&&(this[l]=b,f=l);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=uc(a,"-"));g=wa(this.$$element);if("a"===g&&"href"===a||"img"===g&&"src"===a)this[a]=b=M(b,"src"===a);else if("img"===g&&"srcset"===a){for(var g="",l=N(b),h=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,h=/\s/.test(l)?
h:/(,)/,l=l.split(h),h=Math.floor(l.length/2),k=0;k<h;k++)var q=2*k,g=g+M(N(l[q]),!0),g=g+(" "+N(l[q+1]));l=N(l[2*k]).split(/\s/);g+=M(N(l[0]),!0);2===l.length&&(g+=" "+N(l[1]));this[a]=b=g}!1!==d&&(null===b||b===u?this.$$element.removeAttr(e):this.$$element.attr(e,b));(a=this.$$observers)&&r(a[f],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=ja()),e=d[a]||(d[a]=[]);e.push(b);m.$evalAsync(function(){!e.$$inter&&c.hasOwnProperty(a)&&b(c[a])});
return function(){Ya(e,b)}}};var V=b.startSymbol(),na=b.endSymbol(),Sc="{{"==V||"}}"==na?ra:function(a){return a.replace(/\{\{/g,V).replace(/}}/g,na)},U=/^ngAttr[A-Z]/;G.$$addBindingInfo=k?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:A;G.$$addBindingClass=k?function(a){E(a,"ng-binding")}:A;G.$$addScopeInfo=k?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:A;G.$$addScopeClass=k?function(a,b){E(a,b?"ng-isolate-scope":
"ng-scope")}:A;return G}]}function ya(b){return fb(b.replace(Rc,""))}function Uc(b,a){var c="",d=b.split(/\s+/),e=a.split(/\s+/),f=0;a:for(;f<d.length;f++){for(var g=d[f],h=0;h<e.length;h++)if(g==e[h])continue a;c+=(0<c.length?" ":"")+g}return c}function Tc(b){b=B(b);var a=b.length;if(1>=a)return b;for(;a--;)8===b[a].nodeType&&qf.call(b,a,1);return b}function Fe(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");L(a)?w(b,a):b[a]=c};this.allowGlobals=function(){a=
!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!L(a.$scope))throw S("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var n,p,q;l=!0===l;k&&x(k)&&(q=k);if(x(g)){k=g.match(c);if(!k)throw rf("ctrlfmt",g);p=k[1];q=q||k[3];g=b.hasOwnProperty(p)?b[p]:wc(h.$scope,p,!0)||(a?wc(e,p,!0):u);La(g,p,!0)}if(l)return l=(H(g)?g[g.length-1]:g).prototype,n=Object.create(l||null),q&&f(h,q,n,p||g.name),w(function(){d.invoke(g,n,h,p);return n},{instance:n,identifier:q});
n=d.instantiate(g,h,p);q&&f(h,q,n,p||g.name);return n}}]}function Ge(){this.$get=["$window",function(b){return B(b.document)}]}function He(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Zb(b,a){if(x(b)){var c=b.replace(sf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(Vc))||(d=(d=c.match(tf))&&uf[d[0]].test(c));d&&(b=pc(c))}}return b}function Wc(b){var a=ja(),c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=K(N(b.substr(0,
e)));d=N(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Xc(b){var a=L(b)?b:u;return function(c){a||(a=Wc(b));return c?(c=a[K(c)],void 0===c&&(c=null),c):a}}function Yc(b,a,c,d){if(z(d))return d(b,a,c);r(d,function(d){b=d(b,a,c)});return b}function Ke(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return L(a)&&"[object File]"!==Ca.call(a)&&"[object Blob]"!==Ca.call(a)&&"[object FormData]"!==Ca.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
post:sa($b),put:sa($b),patch:sa($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=w({},a);b.data=a.data?Yc(a.data,a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};r(a,function(a,d){z(a)?(b=
a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ca.isObject(a))throw S("$http")("badreq",a);var e=w({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=w({},a.headers),f,g,c=w({},c.common,c[K(a.method)]);a:for(f in c){a=K(f);for(g in e)if(K(g)===a)continue a;e[f]=c[f]}return d(e)}(a);e.method=vb(e.method);var f=[function(a){var d=a.headers,e=Yc(a.data,Xc(d),u,a.transformRequest);D(e)&&r(d,function(a,b){"content-type"===K(b)&&
delete d[b]});D(a.withCredentials)&&!D(b.withCredentials)&&(a.withCredentials=b.withCredentials);return n(a,e).then(c,c)},u],g=h.when(e);for(r(t,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a,"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data,
b.status,b.headers,e)});return g};return g}function n(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}E&&(200<=b&&300>b?E.put(Q,[b,c,Wc(d),e]):E.remove(Q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?I.resolve:I.reject)({data:a,status:b,headers:Xc(d),config:c,statusText:e})}function n(a){m(a.data,a.status,sa(a.headers()),a.statusText)}function t(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var I=h.defer(),M=I.promise,
E,G,O=c.headers,Q=p(c.url,c.params);k.pendingRequests.push(c);M.then(t,t);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=L(c.cache)?c.cache:L(b.cache)?b.cache:q);E&&(G=E.get(Q),y(G)?G&&z(G.then)?G.then(n,n):H(G)?m(G[1],G[0],sa(G[2]),G[3]):m(G,200,{},"OK"):E.put(Q,M));D(G)&&((G=Zc(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:u)&&(O[c.xsrfHeaderName||b.xsrfHeaderName]=G),d(c.method,Q,f,l,O,c.timeout,c.withCredentials,c.responseType));return M}function p(a,b){if(!b)return a;
var c=[];Ed(b,function(a,b){null===a||D(a)||(H(a)||(a=[a]),r(a,function(a){L(a)&&(a=ha(a)?a.toISOString():ab(a));c.push(Ea(b)+"="+Ea(a))}))});0<c.length&&(a+=(-1==a.indexOf("?")?"?":"&")+c.join("&"));return a}var q=f("$http"),t=[];r(c,function(a){t.unshift(x(a)?l.get(a):l.invoke(a))});k.pendingRequests=[];(function(a){r(arguments,function(a){k[a]=function(b,c){return k(w(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){k[a]=function(b,c,d){return k(w(d||
{},{method:a,url:b,data:c}))}})})("post","put","patch");k.defaults=b;return k}]}function vf(){return new R.XMLHttpRequest}function Le(){this.$get=["$browser","$window","$document",function(b,a,c){return wf(b,vf,b.defer,a.angular.callbacks,c[0])}]}function wf(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),n=null;f.type="text/javascript";f.src=a;f.async=!0;n=function(a){f.removeEventListener("load",n,!1);f.removeEventListener("error",n,!1);e.body.removeChild(f);f=null;var g=-1,t="unknown";
a&&("load"!==a.type||d[b].called||(a={type:"error"}),t=a.type,g="error"===a.type?404:200);c&&c(g,t)};f.addEventListener("load",n,!1);f.addEventListener("error",n,!1);e.body.appendChild(f);return n}return function(e,h,l,k,n,p,q,t){function s(){m&&m();C&&C.abort()}function F(a,d,e,f,g){I!==u&&c.cancel(I);m=C=null;a(d,e,f,g);b.$$completeOutstandingRequest(A)}b.$$incOutstandingRequestCount();h=h||b.url();if("jsonp"==K(e)){var v="_"+(d.counter++).toString(36);d[v]=function(a){d[v].data=a;d[v].called=!0};
var m=f(h.replace("JSON_CALLBACK","angular.callbacks."+v),v,function(a,b){F(k,a,d[v].data,"",b);d[v]=A})}else{var C=a();C.open(e,h,!0);r(n,function(a,b){y(a)&&C.setRequestHeader(b,a)});C.onload=function(){var a=C.statusText||"",b="response"in C?C.response:C.responseText,c=1223===C.status?204:C.status;0===c&&(c=b?200:"file"==Aa(h).protocol?404:0);F(k,c,b,C.getAllResponseHeaders(),a)};e=function(){F(k,-1,null,null,"")};C.onerror=e;C.onabort=e;q&&(C.withCredentials=!0);if(t)try{C.responseType=t}catch($){if("json"!==
t)throw $;}C.send(l||null)}if(0<p)var I=c(s,p);else p&&z(p.then)&&p.then(s)}}function Ie(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(a){return"\\\\\\"+a}function g(f,g,t,s){function F(c){return c.replace(k,b).replace(n,a)}function v(a){try{var b=a;a=t?e.getTrusted(t,b):e.valueOf(b);var c;if(s&&!y(a))c=a;else if(null==a)c="";else{switch(typeof a){case "string":break;
case "number":a=""+a;break;default:a=ab(a)}c=a}return c}catch(g){c=ac("interr",f,g.toString()),d(c)}}s=!!s;for(var m,C,r=0,I=[],M=[],E=f.length,G=[],O=[];r<E;)if(-1!=(m=f.indexOf(b,r))&&-1!=(C=f.indexOf(a,m+h)))r!==m&&G.push(F(f.substring(r,m))),r=f.substring(m+h,C),I.push(r),M.push(c(r,v)),r=C+l,O.push(G.length),G.push("");else{r!==E&&G.push(F(f.substring(r)));break}if(t&&1<G.length)throw ac("noconcat",f);if(!g||I.length){var Q=function(a){for(var b=0,c=I.length;b<c;b++){if(s&&D(a[b]))return;G[O[b]]=
a[b]}return G.join("")};return w(function(a){var b=0,c=I.length,e=Array(c);try{for(;b<c;b++)e[b]=M[b](a);return Q(e)}catch(g){a=ac("interr",f,g.toString()),d(a)}},{exp:f,expressions:I,$$watchDelegate:function(a,b,c){var d;return a.$watchGroup(M,function(c,e){var f=Q(c);z(b)&&b.call(this,f,c!==e?d:f,a);d=f},c)}})}}var h=b.length,l=a.length,k=new RegExp(b.replace(/./g,f),"g"),n=new RegExp(a.replace(/./g,f),"g");g.startSymbol=function(){return b};g.endSymbol=function(){return a};return g}]}function Je(){this.$get=
["$rootScope","$window","$q","$$q",function(b,a,c,d){function e(e,h,l,k){var n=a.setInterval,p=a.clearInterval,q=0,t=y(k)&&!k,s=(t?d:c).defer(),F=s.promise;l=y(l)?l:0;F.then(null,null,e);F.$$intervalId=n(function(){s.notify(q++);0<l&&q>=l&&(s.resolve(q),p(F.$$intervalId),delete f[F.$$intervalId]);t||b.$apply()},h);f[F.$$intervalId]=s;return F}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):
!1};return e}]}function Rd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}}function bc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]);
return b.join("/")}function $c(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||xf[c.protocol]||null}function ad(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=rc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ua(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ga(b){var a=b.indexOf("#");
return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function cc(b,a,c){this.$$html5=!0;c=c||"";$c(b,this);this.$$parse=function(b){var c=ua(a,b);if(!x(c))throw Hb("ipthprfx",b,a);ad(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),
!0;var f,g;(f=ua(b,d))!==u?(g=f,g=(f=ua(c,f))!==u?a+(ua("/",f)||f):b+g):(f=ua(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function dc(b,a,c){$c(b,this);this.$$parse=function(d){var e=ua(b,d)||ua(a,d),f;D(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",D(e)&&(b=d,this.replace())):(f=ua(c,e),D(f)&&(f=e));ad(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=
Pb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ga(b)==Ga(a)?(this.$$parse(a),!0):!1}}function bd(b,a,c){this.$$html5=!0;dc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ga(d)?f=d:(g=ua(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),
e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Ib(b){return function(){return this[b]}}function cd(b,a){return function(c){if(D(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Me(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return Xa(b)?(a.enabled=b,this):L(b)?(Xa(b.enabled)&&(a.enabled=b.enabled),Xa(b.requireBase)&&
(a.requireBase=b.requireBase),Xa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),q;if(a.enabled){if(!n&&a.requireBase)throw Hb("nobase");q=p.substring(0,p.indexOf("/",
p.indexOf("//")+2))+(n||"/");n=e.history?cc:bd}else q=Ga(p),n=dc;var t=q.substr(0,Ga(q).lastIndexOf("/")+1);k=new n(q,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var s=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var l=e.prop("href"),h=e.attr("href")||e.attr("xlink:href");L(l)&&"[object SVGAnimatedString]"===l.toString()&&(l=
Aa(l.animVal).href);s.test(l)||!l||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(l,h)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(p)&&d.url(k.absUrl(),!0);var F=!0;d.onUrlChange(function(a,b){D(ua(t,a))?g.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,
!1,e)):(F=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,q=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(F||q)F=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(q&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Ne(){var b=!0,a=this;this.debugEnabled=function(a){return y(a)?(b=
a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),
debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function va(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ga("isecfld",a);return b}function dd(b,a){b+="";if(!x(b))throw ga("iseccst",a);return b}function oa(b,a){if(b){if(b.constructor===b)throw ga("isecfn",a);if(b.window===b)throw ga("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ga("isecdom",a);if(b===Object)throw ga("isecobj",
a);}return b}function ec(b){return b.constant}function jb(b,a,c,d,e){oa(b,e);oa(a,e);c=c.split(".");for(var f,g=0;1<c.length;g++){f=va(c.shift(),e);var h=0===g&&a&&a[f]||b[f];h||(h={},b[f]=h);b=oa(h,e)}f=va(c.shift(),e);oa(b[f],e);return b[f]=d}function Qa(b){return"constructor"==b}function ed(b,a,c,d,e,f,g){va(b,f);va(a,f);va(c,f);va(d,f);va(e,f);var h=function(a){return oa(a,f)},l=g||Qa(b)?h:ra,k=g||Qa(a)?h:ra,n=g||Qa(c)?h:ra,p=g||Qa(d)?h:ra,q=g||Qa(e)?h:ra;return function(f,g){var h=g&&g.hasOwnProperty(b)?
g:f;if(null==h)return h;h=l(h[b]);if(!a)return h;if(null==h)return u;h=k(h[a]);if(!c)return h;if(null==h)return u;h=n(h[c]);if(!d)return h;if(null==h)return u;h=p(h[d]);return e?null==h?u:h=q(h[e]):h}}function yf(b,a){return function(c,d){return b(c,d,oa,a)}}function zf(b,a,c){var d=a.expensiveChecks,e=d?Af:Bf,f=e[b];if(f)return f;var g=b.split("."),h=g.length;if(a.csp)f=6>h?ed(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=u,a=f;while(e<
h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;r(g,function(a,b){va(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Qa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ea(l);k&&(a=yf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return jb(a,d,b,c,b)};return e[b]=f}function fc(b){return z(b.valueOf)?b.valueOf():Cf.call(b)}function Oe(){var b=ja(),
a=ja();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];e.constant||(e.inputs?f(e.inputs,b):-1===b.indexOf(e)&&b.push(e))}return b}function g(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=fc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function h(a,b,c,d){var e=d.$$inputs||(d.$$inputs=f(d.inputs,
[])),l;if(1===e.length){var h=g,e=e[0];return a.$watch(function(a){var b=e(a);g(b,h)||(l=d(a),h=b&&fc(b));return l},b,c)}for(var k=[],q=0,p=e.length;q<p;q++)k[q]=g;return a.$watch(function(a){for(var b=!1,c=0,f=e.length;c<f;c++){var h=e[c](a);if(b||(b=!g(h,k[c])))k[c]=h&&fc(h)}b&&(l=d(a));return l},b,c)}function l(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a;z(b)&&b.apply(this,arguments);y(a)&&d.$$postDigest(function(){y(f)&&e()})},c)}function k(a,b,c,d){function e(a){var b=
!0;r(a,function(a){y(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a;z(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function n(a,b,c,d){var e;return e=a.$watch(function(a){return d(a)},function(a,c,d){z(b)&&b.apply(this,arguments);e()},c)}function p(a,b){if(!b)return a;var c=a.$$watchDelegate,c=c!==k&&c!==l?function(c,d){var e=a(c,d);return b(e,c,d)}:function(c,d){var e=a(c,d),f=b(e,c,d);return y(e)?f:e};a.$$watchDelegate&&a.$$watchDelegate!==
h?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=h,c.inputs=[a]);return c}var q={csp:d.csp,expensiveChecks:!1},t={csp:d.csp,expensiveChecks:!0};return function(d,f,g){var m,r,u;switch(typeof d){case "string":u=d=d.trim();var I=g?a:b;m=I[u];m||(":"===d.charAt(0)&&":"===d.charAt(1)&&(r=!0,d=d.substring(2)),g=g?t:q,m=new gc(g),m=(new kb(m,c,g)).parse(d),m.constant?m.$$watchDelegate=n:r?(m=e(m),m.$$watchDelegate=m.literal?k:l):m.inputs&&(m.$$watchDelegate=h),I[u]=m);return p(m,f);
case "function":return p(d,f);default:return p(A,f)}}}]}function Qe(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return fd(function(a){b.$evalAsync(a)},a)}]}function Re(){this.$get=["$browser","$exceptionHandler",function(b,a){return fd(function(a){b.defer(a)},a)}]}function fd(b,a){function c(a,b,c){function d(b){return function(c){e||(e=!0,b.call(a,c))}}var e=!1;return[d(b),d(c)]}function d(){this.$$state={status:0}}function e(a,b){return function(c){b.call(a,c)}}function f(c){!c.processScheduled&&
c.pending&&(c.processScheduled=!0,b(function(){var b,d,e;e=c.pending;c.processScheduled=!1;c.pending=u;for(var f=0,g=e.length;f<g;++f){d=e[f][0];b=e[f][c.status];try{z(b)?d.resolve(b(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(l){d.reject(l),a(l)}}}))}function g(){this.promise=new d;this.resolve=e(this,this.resolve);this.reject=e(this,this.reject);this.notify=e(this,this.notify)}var h=S("$q",TypeError);d.prototype={then:function(a,b,c){var d=new g;this.$$state.pending=this.$$state.pending||
[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&f(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return k(b,!0,a)},function(b){return k(b,!1,a)},b)}};g.prototype={resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(h("qcycle",a)):this.$$resolve(a))},$$resolve:function(b){var d,e;e=c(this,this.$$resolve,this.$$reject);try{if(L(b)||z(b))d=b&&b.then;z(d)?(this.promise.$$state.status=
-1,d.call(b,e[0],e[1],this.notify)):(this.promise.$$state.value=b,this.promise.$$state.status=1,f(this.promise.$$state))}catch(g){e[1](g),a(g)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;f(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;0>=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;f<g;f++){e=d[f][0];b=d[f][3];try{e.notify(z(b)?
b(c):c)}catch(l){a(l)}}})}};var l=function(a,b){var c=new g;b?c.resolve(a):c.reject(a);return c.promise},k=function(a,b,c){var d=null;try{z(c)&&(d=c())}catch(e){return l(e,!1)}return d&&z(d.then)?d.then(function(){return l(a,b)},function(a){return l(a,!1)}):l(a,b)},n=function(a,b,c,d){var e=new g;e.resolve(a);return e.promise.then(b,c,d)},p=function t(a){if(!z(a))throw h("norslvr",a);if(!(this instanceof t))return new t(a);var b=new g;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};
p.defer=function(){return new g};p.reject=function(a){var b=new g;b.reject(a);return b.promise};p.when=n;p.all=function(a){var b=new g,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;n(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise};return p}function $e(){this.$get=["$window","$timeout",function(b,a){function c(){for(var a=0;a<n.length;a++){var b=n[a];b&&(n[a]=null,b())}k=n.length=0}function d(a){var b=
n.length;k++;n.push(a);0===b&&(l=h(c));return function(){0<=b&&(b=n[b]=null,0===--k&&l&&(l(),l=null,n.length=0))}}var e=b.requestAnimationFrame||b.webkitRequestAnimationFrame,f=b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.webkitCancelRequestAnimationFrame,g=!!e,h=g?function(a){var b=e(a);return function(){f(b)}}:function(b){var c=a(b,16.66,!1);return function(){a.cancel(c)}};d.supported=g;var l,k=0,n=[];return d}]}function Pe(){function b(a){function b(){this.$$watchers=this.$$nextSibling=
this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=++rb;this.$$ChildScope=null}b.prototype=a;return b}var a=10,c=S("$rootScope"),d=null,e=null;this.digestTtl=function(b){arguments.length&&(a=b);return a};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(f,g,h,l){function k(a){a.currentScope.$$destroyed=!0}function n(){this.$id=++rb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=
null;this.$root=this;this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings=null}function p(a){if(v.$$phase)throw c("inprog",v.$$phase);v.$$phase=a}function q(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function t(){}function s(){for(;u.length;)try{u.shift()()}catch(a){g(a)}e=null}function F(){null===e&&(e=l.defer(function(){v.$apply(s)}))}n.prototype={constructor:n,$new:function(a,c){var d;c=c||this;a?
(d=new n,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=b(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(a||c!=this)&&d.$on("$destroy",k);return d},$watch:function(a,b,c){var e=h(a);if(e.$$watchDelegate)return e.$$watchDelegate(this,b,c,e);var f=this.$$watchers,g={fn:b,last:t,get:e,exp:a,eq:!!c};d=null;z(b)||(g.fn=A);f||(f=this.$$watchers=[]);f.unshift(g);return function(){Ya(f,
g);d=null}},$watchGroup:function(a,b){function c(){l=!1;h?(h=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,l=!1,h=!0;if(!a.length){var k=!0;g.$evalAsync(function(){k&&b(e,e,g)});return function(){k=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var h=g.$watch(a,function(a,f){e[b]=a;d[b]=f;l||(l=!0,g.$evalAsync(c))});f.push(h)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=
a;var b,d,g,l;if(!D(e)){if(L(e))if(Ta(e))for(f!==p&&(f=p,t=f.length=0,k++),a=e.length,t!==a&&(k++,f.length=t=a),b=0;b<a;b++)l=f[b],g=e[b],d=l!==l&&g!==g,d||l===g||(k++,f[b]=g);else{f!==n&&(f=n={},t=0,k++);a=0;for(b in e)e.hasOwnProperty(b)&&(a++,g=e[b],l=f[b],b in f?(d=l!==l&&g!==g,d||l===g||(k++,f[b]=g)):(t++,f[b]=g,k++));if(t>a)for(b in k++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1<b.length,k=0,q=h(a,c),p=[],n={},m=!0,t=0;return this.$watch(q,
function(){m?(m=!1,b(e,e,d)):b(e,g,d);if(l)if(L(e))if(Ta(e)){g=Array(e.length);for(var a=0;a<e.length;a++)g[a]=e[a]}else for(a in g={},e)sc.call(e,a)&&(g[a]=e[a]);else g=e})},$digest:function(){var b,f,h,k,q,n,r=a,F,P=[],u,y;p("$digest");l.$$checkUrlChange();this===v&&null!==e&&(l.defer.cancel(e),s());d=null;do{n=!1;for(F=this;m.length;){try{y=m.shift(),y.scope.$eval(y.expression,y.locals)}catch(w){g(w)}d=null}a:do{if(k=F.$$watchers)for(q=k.length;q--;)try{if(b=k[q])if((f=b.get(F))!==(h=b.last)&&
!(b.eq?ia(f,h):"number"===typeof f&&"number"===typeof h&&isNaN(f)&&isNaN(h)))n=!0,d=b,b.last=b.eq?Da(f,null):f,b.fn(f,h===t?f:h,F),5>r&&(u=4-r,P[u]||(P[u]=[]),P[u].push({msg:z(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(D){g(D)}if(!(k=F.$$childHead||F!==this&&F.$$nextSibling))for(;F!==this&&!(k=F.$$nextSibling);)F=F.$parent}while(F=k);if((n||m.length)&&!r--)throw v.$$phase=null,c("infdig",a,P);}while(n||m.length);for(v.$$phase=null;C.length;)try{C.shift()()}catch(B){g(B)}},
$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==v){for(var b in this.$$listenerCount)q(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=
this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){v.$$phase||m.length||l.defer(function(){m.length&&v.$digest()});m.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{return p("$apply"),this.$eval(a)}catch(b){g(b)}finally{v.$$phase=
null;try{v.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);F()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,q(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,l={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){l.defaultPrevented=
!0},defaultPrevented:!1},h=Za([l],arguments,1),k,q;do{d=e.$$listeners[a]||c;l.currentScope=e;k=0;for(q=d.length;k<q;k++)if(d[k])try{d[k].apply(null,h)}catch(p){g(p)}else d.splice(k,1),k--,q--;if(f)return l.currentScope=null,l;e=e.$parent}while(e);l.currentScope=null;return l},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var f=Za([e],arguments,1),l,h;c=d;){e.currentScope=
c;d=c.$$listeners[a]||[];l=0;for(h=d.length;l<h;l++)if(d[l])try{d[l].apply(null,f)}catch(k){g(k)}else d.splice(l,1),l--,h--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new n,m=v.$$asyncQueue=[],C=v.$$postDigestQueue=[],u=v.$$applyAsyncQueue=[];return v}]}function Sd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=
function(a){return y(a)?(b=a,this):b};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a=b,this):a};this.$get=function(){return function(c,d){var e=d?a:b,f;f=Aa(c).href;return""===f||f.match(e)?c:"unsafe:"+f}}}function Df(b){if("self"===b)return b;if(x(b)){if(-1<b.indexOf("***"))throw Ba("iwcard",b);b=gd(b).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+b+"$")}if(Va(b))return new RegExp("^"+b.source+"$");throw Ba("imatcher");}function hd(b){var a=[];y(b)&&r(b,function(b){a.push(Df(b))});
return a}function Te(){this.SCE_CONTEXTS=pa;var b=["self"],a=[];this.resourceUrlWhitelist=function(a){arguments.length&&(b=hd(a));return b};this.resourceUrlBlacklist=function(b){arguments.length&&(a=hd(b));return a};this.$get=["$injector",function(c){function d(a,b){return"self"===a?Zc(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};
return b}var f=function(a){throw Ba("unsafe");};c.has("$sanitize")&&(f=c.get("$sanitize"));var g=e(),h={};h[pa.HTML]=e(g);h[pa.CSS]=e(g);h[pa.URL]=e(g);h[pa.JS]=e(g);h[pa.RESOURCE_URL]=e(h[pa.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ba("icontext",a,b);if(null===b||b===u||""===b)return b;if("string"!==typeof b)throw Ba("itype",a);return new c(b)},getTrusted:function(c,e){if(null===e||e===u||""===e)return e;var g=h.hasOwnProperty(c)?h[c]:null;if(g&&e instanceof
g)return e.$$unwrapTrustedValue();if(c===pa.RESOURCE_URL){var g=Aa(e.toString()),p,q,t=!1;p=0;for(q=b.length;p<q;p++)if(d(b[p],g)){t=!0;break}if(t)for(p=0,q=a.length;p<q;p++)if(d(a[p],g)){t=!1;break}if(t)return e;throw Ba("insecurl",e.toString());}if(c===pa.HTML)return f(e);throw Ba("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}function Se(){var b=!0;this.enabled=function(a){arguments.length&&(b=!!a);return b};this.$get=["$parse","$sceDelegate",function(a,c){if(b&&
8>Ra)throw Ba("iequirks");var d=sa(pa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=ra);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;r(pa,function(a,b){var c=K(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+
c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in
l);!d||k&&n||(k=x(f.body.style.webkitTransition),n=x(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Ra)return!1;if(D(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:db(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function We(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;x(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=
a.defaults&&a.defaults.transformResponse;H(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!g)throw ma("tpload",f);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d=
ca.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var l=a.querySelectorAll("["+g[h]+"model"+(c?"=":"*=")+'"'+b+'"]');if(l.length)return l}},getLocation:function(){return c.url()},setLocation:function(a){a!==c.url()&&(c.url(a),b.$digest())},whenStable:function(b){a.notifyWhenNoOutstandingRequests(b)}}}]}function Ye(){this.$get=
["$rootScope","$browser","$q","$$q","$exceptionHandler",function(b,a,c,d,e){function f(f,l,k){var n=y(k)&&!k,p=(n?d:c).defer(),q=p.promise;l=a.defer(function(){try{p.resolve(f())}catch(a){p.reject(a),e(a)}finally{delete g[q.$$timeoutId]}n||b.$apply()},l);q.$$timeoutId=l;g[l]=p;return q}var g={};f.cancel=function(b){return b&&b.$$timeoutId in g?(g[b.$$timeoutId].reject("canceled"),delete g[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return f}]}function Aa(b){Ra&&(Z.setAttribute("href",b),b=Z.href);
Z.setAttribute("href",b);return{href:Z.href,protocol:Z.protocol?Z.protocol.replace(/:$/,""):"",host:Z.host,search:Z.search?Z.search.replace(/^\?/,""):"",hash:Z.hash?Z.hash.replace(/^#/,""):"",hostname:Z.hostname,port:Z.port,pathname:"/"===Z.pathname.charAt(0)?Z.pathname:"/"+Z.pathname}}function Zc(b){b=x(b)?Aa(b):b;return b.protocol===id.protocol&&b.host===id.host}function Ze(){this.$get=ea(R)}function Ec(b){function a(c,d){if(L(c)){var e={};r(c,function(b,c){e[c]=a(c,b)});return e}return b.factory(c+
"Filter",d)}this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];a("currency",jd);a("date",kd);a("filter",Ef);a("json",Ff);a("limitTo",Gf);a("lowercase",Hf);a("number",ld);a("orderBy",md);a("uppercase",If)}function Ef(){return function(b,a,c){if(!H(b))return b;var d;switch(null!==a?typeof a:"null"){case "function":break;case "boolean":case "null":case "number":case "string":d=!0;case "object":a=Jf(a,c,d);break;default:return b}return b.filter(a)}}function Jf(b,
a,c){var d=L(b)&&"$"in b;!0===a?a=ia:z(a)||(a=function(a,b){if(D(a))return!1;if(null===a||null===b)return a===b;if(L(a)||L(b))return!1;a=K(""+a);b=K(""+b);return-1!==a.indexOf(b)});return function(e){return d&&!L(e)?Ha(e,b.$,a,!1):Ha(e,b,a,c)}}function Ha(b,a,c,d,e){var f=null!==b?typeof b:"null",g=null!==a?typeof a:"null";if("string"===g&&"!"===a.charAt(0))return!Ha(b,a.substring(1),c,d);if(H(b))return b.some(function(b){return Ha(b,a,c,d)});switch(f){case "object":var h;if(d){for(h in b)if("$"!==
h.charAt(0)&&Ha(b[h],a,c,!0))return!0;return e?!1:Ha(b,a,c,!1)}if("object"===g){for(h in a)if(e=a[h],!z(e)&&!D(e)&&(f="$"===h,!Ha(f?b:b[h],e,c,f,f)))return!1;return!0}return c(b,a);case "function":return!1;default:return c(b,a)}}function jd(b){var a=b.NUMBER_FORMATS;return function(b,d,e){D(d)&&(d=a.CURRENCY_SYM);D(e)&&(e=a.PATTERNS[1].maxFrac);return null==b?b:nd(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,e).replace(/\u00A4/g,d)}}function ld(b){var a=b.NUMBER_FORMATS;return function(b,d){return null==
b?b:nd(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function nd(b,a,c,d,e){if(!isFinite(b)||L(b))return"";var f=0>b;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var n=g.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?b=0:(h=g,k=!0)}if(k)0<e&&1>b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]||"").length;D(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",p=0,q=a.lgSize,
t=a.gSize;if(k.length>=q+t)for(p=k.length-q,n=0;n<p;n++)0===(p-n)%t&&0!==n&&(h+=c),h+=k.charAt(n);for(n=p;n<k.length;n++)0===(k.length-n)%q&&0!==n&&(h+=c),h+=k.charAt(n);for(;g.length<e;)g+="0";e&&"0"!==e&&(h+=d+g.substr(0,e))}0===b&&(f=!1);l.push(f?a.negPre:a.posPre,h,f?a.negSuf:a.posSuf);return l.join("")}function Jb(b,a,c){var d="";0>b&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function U(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(0<c||e>-c)e+=
c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](),f=vb(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c=pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function kd(b){function a(a){var b;if(b=a.match(c)){a=
new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;x(c)&&(c=Kf.test(c)?
aa(c):a(c));Y(c)&&(c=new Date(c));if(!ha(c))return c;for(;e;)(k=Lf.exec(e))?(h=Za(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){D(a)&&(a=2);return ab(b,a)}}function Gf(){return function(b,a){Y(b)&&(b=b.toString());return H(b)||x(b)?(a=Infinity===Math.abs(Number(a))?Number(a):
aa(a))?0<a?b.slice(0,a):b.slice(a):x(b)?"":[]:b}}function md(b){return function(a,c,d){function e(a,b){return b?function(b,c){return a(c,b)}:a}function f(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function g(a){return null===a?"null":"function"===typeof a.valueOf&&(a=a.valueOf(),f(a))||"function"===typeof a.toString&&(a=a.toString(),f(a))?a:""}function h(a,b){var c=typeof a,d=typeof b;c===d&&"object"===c&&(a=g(a),b=g(b));return c===d?("string"===c&&(a=
a.toLowerCase(),b=b.toLowerCase()),a===b?0:a<b?-1:1):c<d?-1:1}if(!Ta(a))return a;c=H(c)?c:[c];0===c.length&&(c=["+"]);c=c.map(function(a){var c=!1,d=a||ra;if(x(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))c="-"==a.charAt(0),a=a.substring(1);if(""===a)return e(h,c);d=b(a);if(d.constant){var f=d();return e(function(a,b){return h(a[f],b[f])},c)}}return e(function(a,b){return h(d(a),d(b))},c)});return $a.call(a).sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(0!==e)return e}return 0},
d))}}function Ia(b){z(b)&&(b={link:b});b.restrict=b.restrict||"AC";return ea(b)}function rd(b,a,c,d,e){var f=this,g=[],h=f.$$parentForm=b.parent().controller("form")||Lb;f.$error={};f.$$success={};f.$pending=u;f.$name=e(a.name||a.ngForm||"")(c);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;h.$addControl(f);f.$rollbackViewValue=function(){r(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){r(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Ma(a.$name,
"input");g.push(a);a.$name&&(f[a.$name]=a)};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];r(f.$pending,function(b,c){f.$setValidity(c,null,a)});r(f.$error,function(b,c){f.$setValidity(c,null,a)});r(f.$$success,function(b,c){f.$setValidity(c,null,a)});Ya(g,a)};sd({ctrl:this,$element:b,set:function(a,b,c){var d=a[b];d?-1===d.indexOf(c)&&d.push(c):a[b]=[c]},unset:function(a,b,c){var d=a[b];
d&&(Ya(d,c),0===d.length&&delete a[b])},parentForm:h,$animate:d});f.$setDirty=function(){d.removeClass(b,Sa);d.addClass(b,Mb);f.$dirty=!0;f.$pristine=!1;h.$setDirty()};f.$setPristine=function(){d.setClass(b,Sa,Mb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;r(g,function(a){a.$setPristine()})};f.$setUntouched=function(){r(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){d.addClass(b,"ng-submitted");f.$submitted=!0;h.$setSubmitted()}}function ic(b){b.$formatters.push(function(a){return b.$isEmpty(a)?
a:a.toString()})}function lb(b,a,c,d,e,f){var g=K(a[0].type);if(!e.android){var h=!1;a.on("compositionstart",function(a){h=!0});a.on("compositionend",function(){h=!1;l()})}var l=function(b){k&&(f.defer.cancel(k),k=null);if(!h){var e=a.val();b=b&&b.type;"password"===g||c.ngTrim&&"false"===c.ngTrim||(e=N(e));(d.$viewValue!==e||""===e&&d.$$hasNativeValidators)&&d.$setViewValue(e,b)}};if(e.hasEvent("input"))a.on("input",l);else{var k,n=function(a,b,c){k||(k=f.defer(function(){k=null;b&&b.value===c||l(a)}))};
a.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ha(c))return c;if(x(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,
dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c<a.length&&(f[a[c]]=+b)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function mb(b,a,c,d){return function(e,f,g,h,l,k,n){function p(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function q(a){return y(a)?ha(a)?a:c(a):u}td(e,f,g,h);lb(e,f,g,h,l,k);var t=h&&h.$options&&h.$options.timezone,s;h.$$parserName=b;
h.$parsers.push(function(b){return h.$isEmpty(b)?null:a.test(b)?(b=c(b,s),"UTC"===t&&b.setMinutes(b.getMinutes()-b.getTimezoneOffset()),b):u});h.$formatters.push(function(a){if(a&&!ha(a))throw nb("datefmt",a);if(p(a)){if((s=a)&&"UTC"===t){var b=6E4*s.getTimezoneOffset();s=new Date(s.getTime()+b)}return n("date")(a,d,t)}s=null;return""});if(y(g.min)||g.ngMin){var r;h.$validators.min=function(a){return!p(a)||D(r)||c(a)>=r};g.$observe("min",function(a){r=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var v;
h.$validators.max=function(a){return!p(a)||D(v)||c(a)<=v};g.$observe("max",function(a){v=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=L(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?u:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw nb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],
n=0;n<b.length;n++)if(e==b[n])continue a;c.push(e)}return c}function e(a){if(!H(a)){if(x(a))return a.split(" ");if(L(a)){var b=[];r(a,function(a,c){a&&(b=b.concat(c.split(" ")))});return b}}return a}return{restrict:"AC",link:function(f,g,h){function l(a,b){var c=g.data("$classCounts")||{},d=[];r(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",c);return d.join(" ")}function k(b){if(!0===a||f.$index%2===a){var k=e(b||[]);if(!n){var t=l(k,1);h.$addClass(t)}else if(!ia(b,
n)){var s=e(n),t=d(k,s),k=d(s,k),t=l(t,1),k=l(k,-1);t&&t.length&&c.addClass(g,t);k&&k.length&&c.removeClass(g,k)}}n=sa(b)}var n;f.$watch(h[b],k,!0);h.$observe("class",function(a){k(f.$eval(h[b]))});"ngClass"!==b&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var k=e(f.$eval(h[b]));g===a?(g=l(k,1),h.$addClass(g)):(g=l(k,-1),h.$removeClass(g))}})}}}]}function sd(b){function a(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function c(b,c){b=b?"-"+uc(b,"-"):"";
a(ob+b,!0===c);a(vd+b,!1===c)}var d=b.ctrl,e=b.$element,f={},g=b.set,h=b.unset,l=b.parentForm,k=b.$animate;f[vd]=!(f[ob]=e.hasClass(ob));d.$setValidity=function(b,e,f){e===u?(d.$pending||(d.$pending={}),g(d.$pending,b,f)):(d.$pending&&h(d.$pending,b,f),wd(d.$pending)&&(d.$pending=u));Xa(e)?e?(h(d.$error,b,f),g(d.$$success,b,f)):(g(d.$error,b,f),h(d.$$success,b,f)):(h(d.$error,b,f),h(d.$$success,b,f));d.$pending?(a(xd,!0),d.$valid=d.$invalid=u,c("",null)):(a(xd,!1),d.$valid=wd(d.$error),d.$invalid=
!d.$valid,c("",d.$valid));e=d.$pending&&d.$pending[b]?u:d.$error[b]?!1:d.$$success[b]?!0:null;c(b,e);l.$setValidity(b,e,d)}}function wd(b){if(b)for(var a in b)return!1;return!0}var Of=/^\/(.+)\/([a-z]*)$/,K=function(b){return x(b)?b.toLowerCase():b},sc=Object.prototype.hasOwnProperty,vb=function(b){return x(b)?b.toUpperCase():b},Ra,B,ta,$a=[].slice,qf=[].splice,Pf=[].push,Ca=Object.prototype.toString,Ja=S("ng"),ca=R.angular||(R.angular={}),eb,rb=0;Ra=W.documentMode;A.$inject=[];ra.$inject=[];var H=
Array.isArray,N=function(b){return x(b)?b.trim():b},gd=function(b){return b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},db=function(){if(y(db.isActive_))return db.isActive_;var b=!(!W.querySelector("[ng-csp]")&&!W.querySelector("[data-ng-csp]"));if(!b)try{new Function("")}catch(a){b=!0}return db.isActive_=b},tb=["ng-","data-ng-","ng:","x-ng-"],Md=/[A-Z]/g,vc=!1,Qb,qa=1,bb=3,Qd={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};T.expando="ng339";var Ab=
T.cache={},hf=1;T._data=function(b){return this.cache[b[this.expando]]||{}};var cf=/([\:\-\_]+(.))/g,df=/^moz([A-Z])/,Qf={mouseleave:"mouseout",mouseenter:"mouseover"},Tb=S("jqLite"),gf=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ka={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,"",""]};ka.optgroup=ka.option;ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead;ka.th=ka.td;var Ka=T.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),T(R).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort,
splice:[].splice},Fb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[K(b)]=b});var Nc={};r("input select option textarea button form details".split(" "),function(b){Nc[b]=!0});var Oc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Vb,removeData:yb},function(b,a){T[a]=b});r({data:Vb,inheritedData:Eb,scope:function(b){return B.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,
"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Jc,injector:function(b){return Eb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=fb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==bb&&2!==d&&8!==d)if(d=K(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:u;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=
b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(D(b)){var d=a.nodeType;return d===qa||d===bb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(D(a)){if(b.multiple&&"select"===wa(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Kc},function(b,a){T.prototype[a]=
function(a,d){var e,f,g=this.length;if(b!==Kc&&(2==b.length&&b!==Bb&&b!==Jc?a:d)===u){if(L(a)){for(e=0;e<g;e++)if(b===Vb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===u?Math.min(g,1):g;for(f=0;f<g;f++){var h=b(this[f],a,d);e=e?e+h:h}return e}for(e=0;e<g;e++)b(this[e],a,d);return this}});r({removeData:yb,on:function a(c,d,e,f){if(y(f))throw Tb("onargs");if(Fc(c)){var g=zb(c,!0);f=g.events;var h=g.handle;h||(h=g.handle=lf(c,f));for(var g=0<=d.indexOf(" ")?d.split(" "):[d],
l=g.length;l--;){d=g[l];var k=f[d];k||(f[d]=[],"mouseenter"===d||"mouseleave"===d?a(c,Qf[d],function(a){var c=a.relatedTarget;c&&(c===this||this.contains(c))||h(a,d)}):"$destroy"!==d&&c.addEventListener(d,h,!1),k=f[d]);k.push(e)}}},off:Ic,one:function(a,c,d){a=B(a);a.on(c,function f(){a.off(c,d);a.off(c,f)});a.on(c,d)},replaceWith:function(a,c){var d,e=a.parentNode;xb(a);r(new T(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];r(a.childNodes,
function(a){a.nodeType===qa&&c.push(a)});return c},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,c){var d=a.nodeType;if(d===qa||11===d){c=new T(c);for(var d=0,e=c.length;d<e;d++)a.appendChild(c[d])}},prepend:function(a,c){if(a.nodeType===qa){var d=a.firstChild;r(new T(c),function(c){a.insertBefore(c,d)})}},wrap:function(a,c){c=B(c).eq(0).clone()[0];var d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:Lc,detach:function(a){Lc(a,!0)},after:function(a,
c){var d=a,e=a.parentNode;c=new T(c);for(var f=0,g=c.length;f<g;f++){var h=c[f];e.insertBefore(h,d.nextSibling);d=h}},addClass:Db,removeClass:Cb,toggleClass:function(a,c,d){c&&r(c.split(" "),function(c){var f=d;D(f)&&(f=!Bb(a,c));(f?Db:Cb)(a,c)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,c){return a.getElementsByTagName?a.getElementsByTagName(c):[]},clone:Ub,triggerHandler:function(a,c,d){var e,f,g=c.type||c,h=
zb(a);if(h=(h=h&&h.events)&&h[g])e={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:A,type:g,target:a},c.type&&(e=w(e,c)),c=sa(h),f=d?[e].concat(d):[e],r(c,function(c){e.isImmediatePropagationStopped()||c.apply(a,f)})}},function(a,c){T.prototype[c]=function(c,
e,f){for(var g,h=0,l=this.length;h<l;h++)D(g)?(g=a(this[h],c,e,f),y(g)&&(g=B(g))):Hc(g,a(this[h],c,e,f));return y(g)?g:this};T.prototype.bind=T.prototype.on;T.prototype.unbind=T.prototype.off});gb.prototype={put:function(a,c){this[Na(a,this.nextUid)]=c},get:function(a){return this[Na(a,this.nextUid)]},remove:function(a){var c=this[a=Na(a,this.nextUid)];delete this[a];return c}};var Qc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Rf=/,/,Sf=/^\s*(_?)(\S+?)\1\s*$/,Pc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Fa=S("$injector");
cb.$$annotate=function(a,c,d){var e;if("function"===typeof a){if(!(e=a.$inject)){e=[];if(a.length){if(c)throw x(d)&&d||(d=a.name||mf(a)),Fa("strictdi",d);c=a.toString().replace(Pc,"");c=c.match(Qc);r(c[1].split(Rf),function(a){a.replace(Sf,function(a,c,d){e.push(d)})})}a.$inject=e}}else H(a)?(c=a.length-1,La(a[c],"fn"),e=a.slice(0,c)):La(a,"fn",!0);return e};var Tf=S("$animate"),Ce=["$provide",function(a){this.$$selectors={};this.register=function(c,d){var e=c+"-animation";if(c&&"."!=c.charAt(0))throw Tf("notcsel",
c);this.$$selectors[c.substr(1)]=e;a.factory(e,d)};this.classNameFilter=function(a){1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null);return this.$$classNameFilter};this.$get=["$$q","$$asyncCallback","$rootScope",function(a,d,e){function f(d){var f,g=a.defer();g.promise.$$cancelFn=function(){f&&f()};e.$$postDigest(function(){f=d(function(){g.resolve()})});return g.promise}function g(a,c){var d=[],e=[],f=ja();r((a.attr("class")||"").split(/\s+/),function(a){f[a]=!0});r(c,function(a,
c){var g=f[c];!1===a&&g?e.push(c):!0!==a||g||d.push(c)});return 0<d.length+e.length&&[d.length?d:null,e.length?e:null]}function h(a,c,d){for(var e=0,f=c.length;e<f;++e)a[c[e]]=d}function l(){n||(n=a.defer(),d(function(){n.resolve();n=null}));return n.promise}function k(a,c){if(ca.isObject(c)){var d=w(c.from||{},c.to||{});a.css(d)}}var n;return{animate:function(a,c,d){k(a,{from:c,to:d});return l()},enter:function(a,c,d,e){k(a,e);d?d.after(a):c.prepend(a);return l()},leave:function(a,c){k(a,c);a.remove();
return l()},move:function(a,c,d,e){return this.enter(a,c,d,e)},addClass:function(a,c,d){return this.setClass(a,c,[],d)},$$addClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Db(a,c)});k(a,d);return l()},removeClass:function(a,c,d){return this.setClass(a,[],c,d)},$$removeClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Cb(a,c)});k(a,d);return l()},setClass:function(a,c,d,e){var k=this,l=!1;a=B(a);var m=a.data("$$animateClasses");
m?e&&m.options&&(m.options=ca.extend(m.options||{},e)):(m={classes:{},options:e},l=!0);e=m.classes;c=H(c)?c:c.split(" ");d=H(d)?d:d.split(" ");h(e,c,!0);h(e,d,!1);l&&(m.promise=f(function(c){var d=a.data("$$animateClasses");a.removeData("$$animateClasses");if(d){var e=g(a,d.classes);e&&k.$$setClassImmediately(a,e[0],e[1],d.options)}c()}),a.data("$$animateClasses",m));return m.promise},$$setClassImmediately:function(a,c,d,e){c&&this.$$addClassImmediately(a,c);d&&this.$$removeClassImmediately(a,d);
k(a,e);return l()},enabled:A,cancel:A}}]}],ma=S("$compile");xc.$inject=["$provide","$$sanitizeUriProvider"];var Rc=/^((?:x|data)[\:\-_])/i,rf=S("$controller"),Vc="application/json",$b={"Content-Type":Vc+";charset=utf-8"},tf=/^\[|^\{(?!\{)/,uf={"[":/]$/,"{":/}$/},sf=/^\)\]\}',?\n/,ac=S("$interpolate"),Uf=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,xf={http:80,https:443,ftp:21},Hb=S("$location"),Vf={$$html5:!1,$$replace:!1,absUrl:Ib("$$absUrl"),url:function(a){if(D(a))return this.$$url;var c=Uf.exec(a);(c[1]||
""===a)&&this.path(decodeURIComponent(c[1]));(c[2]||c[1]||""===a)&&this.search(c[3]||"");this.hash(c[5]||"");return this},protocol:Ib("$$protocol"),host:Ib("$$host"),port:Ib("$$port"),path:cd("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,c){switch(arguments.length){case 0:return this.$$search;case 1:if(x(a)||Y(a))a=a.toString(),this.$$search=rc(a);else if(L(a))a=Da(a,{}),r(a,function(c,e){null==c&&delete a[e]}),this.$$search=a;else throw Hb("isrcharg");
break;default:D(c)||null===c?delete this.$$search[a]:this.$$search[a]=c}this.$$compose();return this},hash:cd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};r([bd,dc,cc],function(a){a.prototype=Object.create(Vf);a.prototype.state=function(c){if(!arguments.length)return this.$$state;if(a!==cc||!this.$$html5)throw Hb("nostate");this.$$state=D(c)?null:c;return this}});var ga=S("$parse"),Wf=Function.prototype.call,Xf=Function.prototype.apply,
Yf=Function.prototype.bind,pb=ja();r({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(a,c){a.constant=a.literal=a.sharedGetter=!0;pb[c]=a});pb["this"]=function(a){return a};pb["this"].sharedGetter=!0;var qb=w(ja(),{"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return y(d)?y(e)?d+e:d:y(e)?e:u},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)-(y(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,
c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,
c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Zf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(a))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,
text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var c=a+this.peek(),d=c+this.peek(2),e=qb[c],f=qb[d];qb[a]||e||f?(a=f?d:e?c:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,c){return-1!==c.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===
typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ga("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index<this.text.length;){var d=K(this.text.charAt(this.index));
if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:c,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.index<this.text.length;){var c=this.text.charAt(this.index);if(!this.isIdent(c)&&
!this.isNumber(c))break;this.index++}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var c=this.index;this.index++;for(var d="",e=a,f=!1;this.index<this.text.length;){var g=this.text.charAt(this.index),e=e+g;if(f)"u"===g?(f=this.text.substring(this.index+1,this.index+5),f.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+f+"]"),this.index+=4,d+=String.fromCharCode(parseInt(f,16))):d+=Zf[g]||g,f=!1;else if("\\"===g)f=!0;else{if(g===
a){this.index++;this.tokens.push({index:c,text:e,constant:!0,value:d});return}d+=g}this.index++}this.throwError("Unterminated quote",c)}};var kb=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d};kb.ZERO=w(function(){return 0},{sharedGetter:!0,constant:!0});kb.prototype={constructor:kb,parse:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.statements();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);a.literal=!!a.literal;a.constant=!!a.constant;
return a},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.peek().identifier&&this.peek().text in pb?a=pb[this.consume().text]:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c,d;c=this.expect("(","[",".");)"("===c.text?(a=this.functionCall(a,d),d=null):"["===c.text?(d=a,a=this.objectIndex(a)):
"."===c.text?(d=a,a=this.fieldAccess(a)):this.throwError("IMPOSSIBLE");return a},throwError:function(a,c){throw ga("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},peekToken:function(){if(0===this.tokens.length)throw ga("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,
c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ga("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return w(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return w(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=
this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return zf(a,this.options,this.text)},constant:function(){var a=this.consume().value;return w(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,f=0,g=a.length;f<g;f++)e=a[f](c,d);return e}},
filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},filter:function(a){var c=this.$filter(this.consume().text),d,e;if(this.peek(":"))for(d=[],e=[];this.expect(":");)d.push(this.expression());var f=[a].concat(d||[]);return w(function(f,h){var l=a(f,h);if(e){e[0]=l;for(l=d.length;l--;)e[l+1]=d[l](f,h);return c.apply(u,e)}return c(l)},{constant:!c.$stateful&&f.every(ec),inputs:!c.$stateful&&f})},expression:function(){return this.assignment()},assignment:function(){var a=
this.ternary(),c,d;return(d=this.expect("="))?(a.assign||this.throwError("implies assignment but ["+this.text.substring(0,d.index)+"] can not be assigned to",d),c=this.ternary(),w(function(d,f){return a.assign(d,c(d,f),f)},{inputs:[a,c]})):a},ternary:function(){var a=this.logicalOR(),c;if(this.expect("?")&&(c=this.assignment(),this.consume(":"))){var d=this.assignment();return w(function(e,f){return a(e,f)?c(e,f):d(e,f)},{constant:a.constant&&c.constant&&d.constant})}return a},logicalOR:function(){for(var a=
this.logicalAND(),c;c=this.expect("||");)a=this.binaryFn(a,c.text,this.logicalAND(),!0);return a},logicalAND:function(){for(var a=this.equality(),c;c=this.expect("&&");)a=this.binaryFn(a,c.text,this.equality(),!0);return a},equality:function(){for(var a=this.relational(),c;c=this.expect("==","!=","===","!==");)a=this.binaryFn(a,c.text,this.relational());return a},relational:function(){for(var a=this.additive(),c;c=this.expect("<",">","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},
additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(kb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();
return w(function(d,e,f){d=f||a(d,e);return null==d?u:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return w(function(e,f){var g=a(e,f),h=dd(d(e,f),c);va(h,c);return g?oa(g[h],c):u},{assign:function(e,f,g){var h=va(dd(d(e,g),c),c),l=oa(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());
while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?u:g,k=a(g,h,l)||A;if(f)for(var n=d.length;n--;)f[n]=oa(d[n](g,h),e);oa(l,e);if(k){if(k.constructor===k)throw ga("isecfn",e);if(k===Wf||k===Xf||k===Yf)throw ga("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return oa(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))
}this.consume("]");return w(function(c,d){for(var e=[],f=0,g=a.length;f<g;f++)e.push(a[f](c,d));return e},{literal:!0,constant:a.every(ec),inputs:a})},object:function(){var a=[],c=[];if("}"!==this.peekToken().text){do{if(this.peek("}"))break;var d=this.consume();d.constant?a.push(d.value):d.identifier?a.push(d.text):this.throwError("invalid key",d);this.consume(":");c.push(this.expression())}while(this.expect(","))}this.consume("}");return w(function(d,f){for(var g={},h=0,l=c.length;h<l;h++)g[a[h]]=
c[h](d,f);return g},{literal:!0,constant:c.every(ec),inputs:c})}};var Bf=ja(),Af=ja(),Cf=Object.prototype.valueOf,Ba=S("$sce"),pa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ma=S("$compile"),Z=W.createElement("a"),id=Aa(R.location.href);Ec.$inject=["$provide"];jd.$inject=["$locale"];ld.$inject=["$locale"];var od=".",Mf={yyyy:U("FullYear",4),yy:U("FullYear",2,0,!0),y:U("FullYear",1),MMMM:Kb("Month"),MMM:Kb("Month",!0),MM:U("Month",2,1),M:U("Month",1,1),dd:U("Date",2),d:U("Date",
1),HH:U("Hours",2),H:U("Hours",1),hh:U("Hours",2,-12),h:U("Hours",1,-12),mm:U("Minutes",2),m:U("Minutes",1),ss:U("Seconds",2),s:U("Seconds",1),sss:U("Milliseconds",3),EEEE:Kb("Day"),EEE:Kb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0<a?"floor":"ceil"](a/60),2)+Jb(Math.abs(a%60),2))},ww:qd(2),w:qd(1),G:hc,GG:hc,GGG:hc,GGGG:function(a,c){return 0>=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Lf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
Kf=/^\-?\d+$/;kd.$inject=["$locale"];var Hf=ea(K),If=ea(vb);md.$inject=["$parse"];var Td=ea({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};r(Fb,function(a,c){if("multiple"!=a){var d=ya("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d],
function(a){g.$set(c,!!a)})}}}}});r(Oc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Of))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});r(["src","srcset","href"],function(a){var c=ya("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",
g=null);f.$observe(c,function(c){c?(f.$set(h,c),Ra&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a,c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(d,e){d.addClass(Sa).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm":
!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var p=k.$$parentForm;f&&(jb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(jb(a,null,k.$name,u,k.$name),p.$$renameControl(k,c),jb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){p.$removeControl(k);
f&&jb(a,null,e[f],u,k.$name);w(k,Lb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,$f=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ag=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,bg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/,
Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e)},date:mb("date",zd,Nb(zd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":mb("datetimelocal",Ad,Nb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:mb("time",Cd,Nb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:mb("week",kc,function(a,c){if(ha(a))return a;if(x(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g=
c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:mb("month",Bd,Nb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);lb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:bg.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Y(a))throw nb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||
D(h)||a>=h};d.$observe("min",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));h=Y(a)&&!isNaN(a)?a:u;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||D(l)||a<=l};d.$observe("max",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));l=Y(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||$f.test(d)}},email:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);
e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||ag.test(d)}},radio:function(a,c,d,e){D(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),n=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&
a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ia(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:A,button:A,submit:A,reset:A,file:A},yc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[K(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],cg=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a,
c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));
c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
be=jc("",!0),de=jc("Odd",0),ce=jc("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Dc={},dg={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Dc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=
d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=
ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,p,q,r){var s=0,u,v,m,C=function(){v&&(v.remove(),v=null);u&&(u.$destroy(),u=null);m&&(d.leave(m).then(function(){v=null}),v=m,m=null)};e.$watch(g,function(g){var p=function(){!y(l)||l&&!e.$eval(l)||
c()},M=++s;g?(a(g,!0).then(function(a){if(M===s){var c=e.$new();q.template=a;a=r(c,function(a){C();d.enter(a,null,f).then(p)});u=c;m=a;u.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){M===s&&(C(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(C(),q.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Gc(f.template,W).childNodes)(c,function(a){d.append(a)},
{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?N(f):f;e.$parsers.push(function(a){if(!D(a)){var c=[];a&&r(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return H(a)?a.join(f):u});e.$isEmpty=function(a){return!a||
!a.length}}}},ob="ng-valid",vd="ng-invalid",Sa="ng-pristine",Mb="ng-dirty",xd="ng-pending",nb=S("ngModel"),eg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;
this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=n(d.name||"",!1)(a);var p=f(d.ngModel),q=p.assign,t=p,s=q,F=null,v,m=this;this.$$setOptions=function(a){if((m.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);z(d)&&(d=c(a));return d};s=function(a,c){z(p(a))?g(a,{$$$p:m.$modelValue}):q(a,m.$modelValue)}}else if(!p.assign)throw nb("nonassign",d.ngModel,xa(e));};this.$render=A;this.$isEmpty=function(a){return D(a)||
""===a||null===a||a!==a};var C=e.inheritedData("$formController")||Lb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:C,$animate:g});this.$setPristine=function(){m.$dirty=!1;m.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Sa)};this.$setDirty=function(){m.$dirty=!0;m.$pristine=!1;g.removeClass(e,Sa);g.addClass(e,Mb);C.$setDirty()};this.$setUntouched=function(){m.$touched=!1;m.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=
function(){m.$touched=!0;m.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(F);m.$viewValue=m.$$lastCommittedViewValue;m.$render()};this.$validate=function(){if(!Y(m.$modelValue)||!isNaN(m.$modelValue)){var a=m.$$rawModelValue,c=m.$valid,d=m.$modelValue,e=m.$options&&m.$options.allowInvalid;m.$$runValidators(a,m.$$lastCommittedViewValue,function(f){e||c===f||(m.$modelValue=f?a:u,m.$modelValue!==d&&m.$$writeModelToScope())})}};this.$$runValidators=
function(a,c,d){function e(){var d=!0;r(m.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(r(m.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;r(m.$asyncValidators,function(f,h){var l=f(a,c);if(!l||!z(l.then))throw nb("$asyncValidators",l);g(h,u);d.push(l.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===w&&m.$setValidity(a,c)}function h(a){l===w&&d(a)}w++;var l=w;(function(){var a=
m.$$parserName||"parse";if(v===u)g(a,null);else return v||(r(m.$validators,function(a,c){g(c,null)}),r(m.$asyncValidators,function(a,c){g(c,null)})),g(a,v),v;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=m.$viewValue;h.cancel(F);if(m.$$lastCommittedViewValue!==a||""===a&&m.$$hasNativeValidators)m.$$lastCommittedViewValue=a,m.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=m.$$lastCommittedViewValue;if(v=D(c)?u:!0)for(var d=
0;d<m.$parsers.length;d++)if(c=m.$parsers[d](c),D(c)){v=!1;break}Y(m.$modelValue)&&isNaN(m.$modelValue)&&(m.$modelValue=t(a));var e=m.$modelValue,f=m.$options&&m.$options.allowInvalid;m.$$rawModelValue=c;f&&(m.$modelValue=c,m.$modelValue!==e&&m.$$writeModelToScope());m.$$runValidators(c,m.$$lastCommittedViewValue,function(a){f||(m.$modelValue=a?c:u,m.$modelValue!==e&&m.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,m.$modelValue);r(m.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
this.$setViewValue=function(a,c){m.$viewValue=a;m.$options&&!m.$options.updateOnDefault||m.$$debounceViewValueCommit(c)};this.$$debounceViewValueCommit=function(c){var d=0,e=m.$options;e&&y(e.debounce)&&(e=e.debounce,Y(e)?d=e:Y(e[c])?d=e[c]:Y(e["default"])&&(d=e["default"]));h.cancel(F);d?F=h(function(){m.$commitViewValue()},d):l.$$phase?m.$commitViewValue():a.$apply(function(){m.$commitViewValue()})};a.$watch(function(){var c=t(a);if(c!==m.$modelValue&&(m.$modelValue===m.$modelValue||c===c)){m.$modelValue=
m.$$rawModelValue=c;v=u;for(var d=m.$formatters,e=d.length,f=c;e--;)f=d[e](f);m.$viewValue!==f&&(m.$viewValue=m.$$lastCommittedViewValue=f,m.$render(),m.$$runValidators(c,f,A))}return c})}],ve=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:eg,priority:1,compile:function(c){c.addClass(Sa).addClass("ng-untouched").addClass(ob);return{pre:function(a,c,f,g){var h=g[0],l=g[1]||Lb;h.$$setOptions(g[2]&&g[2].$options);l.$addControl(h);f.$observe("name",
function(a){h.$name!==a&&l.$$renameControl(h,a)});a.$on("$destroy",function(){l.$removeControl(h)})},post:function(c,e,f,g){var h=g[0];if(h.$options&&h.$options.updateOn)e.on(h.$options.updateOn,function(a){h.$$debounceViewValueCommit(a&&a.type)});e.on("blur",function(e){h.$touched||(a.$$phase?c.$evalAsync(h.$setTouched):c.$apply(h.$setTouched))})}}}}}],fg=/(\s+|^)default(\s+|$)/,ze=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);
this.$options.updateOn!==u?(this.$options.updateOnDefault=!1,this.$options.updateOn=N(this.$options.updateOn.replace(fg,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},le=Ia({terminal:!0,priority:1E3}),me=["$locale","$interpolate",function(a,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(f,g,h){function l(a){g.text(a||"")}var k=h.count,n=h.$attr.when&&g.attr(h.$attr.when),p=h.offset||0,q=f.$eval(n)||{},t={},n=c.startSymbol(),s=
c.endSymbol(),u=n+k+"-"+p+s,v=ca.noop,m;r(h,function(a,c){var d=e.exec(c);d&&(d=(d[1]?"-":"")+K(d[2]),q[d]=g.attr(h.$attr[c]))});r(q,function(a,e){t[e]=c(a.replace(d,u))});f.$watch(k,function(c){c=parseFloat(c);var d=isNaN(c);d||c in q||(c=a.pluralCat(c-p));c===m||d&&isNaN(m)||(v(),v=f.$watch(t[c],l),m=c)})}}}],ne=["$parse","$animate",function(a,c){var d=S("ngRepeat"),e=function(a,c,d,e,k,n,p){a[d]=e;k&&(a[k]=n);a.$index=c;a.$first=0===c;a.$last=c===p-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=
0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,l=W.createComment(" end ngRepeat: "+h+" "),k=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!k)throw d("iexp",h);var n=k[1],p=k[2],q=k[3],t=k[4],k=n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!k)throw d("iidexp",n);var s=k[3]||k[1],F=k[2];if(q&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(q)||
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(q)))throw d("badident",q);var v,m,C,y,w={$id:Na};t?v=a(t):(C=function(a,c){return Na(c)},y=function(a){return a});return function(a,f,g,k,n){v&&(m=function(c,d,e){F&&(w[F]=c);w[s]=d;w.$index=e;return v(a,w)});var t=ja();a.$watchCollection(p,function(g){var k,p,v=f[0],G,w=ja(),D,I,A,z,H,O,x;q&&(a[q]=g);if(Ta(g))H=g,p=m||C;else{p=m||y;H=[];for(x in g)g.hasOwnProperty(x)&&"$"!=x.charAt(0)&&H.push(x);H.sort()}D=
H.length;x=Array(D);for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],z=p(I,A,k),t[z])O=t[z],delete t[z],w[z]=O,x[k]=O;else{if(w[z])throw r(x,function(a){a&&a.scope&&(t[a.id]=a)}),d("dupes",h,z,A);x[k]={id:z,scope:u,clone:u};w[z]=!0}for(G in t){O=t[G];z=ub(O.clone);c.leave(z);if(z[0].parentNode)for(k=0,p=z.length;k<p;k++)z[k].$$NG_REMOVED=!0;O.scope.$destroy()}for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],O=x[k],O.scope){G=v;do G=G.nextSibling;while(G&&G.$$NG_REMOVED);O.clone[0]!=G&&c.move(ub(O.clone),null,B(v));
v=O.clone[O.clone.length-1];e(O.scope,k,s,A,F,I,D)}else n(function(a,d){O.scope=d;var f=l.cloneNode(!1);a[a.length++]=f;c.enter(a,null,B(v));v=f;O.clone=a;w[O.id]=O;e(O.scope,k,s,A,F,I,D)});t=w})}}}}],oe=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngShow,function(c){a[c?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],he=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngHide,function(c){a[c?
"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],pe=Ia(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),qe=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,f){var g=[],h=[],l=[],k=[],n=function(a,c){return function(){a.splice(c,1)}};c.$watch(e.ngSwitch||e.on,function(c){var d,e;d=0;for(e=l.length;d<e;++d)a.cancel(l[d]);d=l.length=
0;for(e=k.length;d<e;++d){var s=ub(h[d].clone);k[d].$destroy();(l[d]=a.leave(s)).then(n(l,d))}h.length=0;k.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){k.push(e);var f=c.element;d[d.length++]=W.createComment(" end ngSwitchWhen: ");h.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],re=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[];e.cases["!"+d.ngSwitchWhen].push({transclude:f,
element:c})}}),se=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["?"]=e.cases["?"]||[];e.cases["?"].push({transclude:f,element:c})}}),ue=Ia({restrict:"EAC",link:function(a,c,d,e,f){if(!f)throw S("ngTransclude")("orphan",xa(c));f(function(a){c.empty();c.append(a)})}}),Vd=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],gg=S("ngOptions"),te=ea({restrict:"A",
terminal:!0}),Wd=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,e={$setViewValue:A};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var l=this,k={},n=e,p;l.databound=d.ngModel;l.init=function(a,c,d){n=a;p=d};l.addOption=function(c,d){Ma(c,'"option value"');
k[c]=!0;n.$viewValue==c&&(a.val(c),p.parent()&&p.remove());d&&d[0].hasAttribute("selected")&&(d[0].selected=!0)};l.removeOption=function(a){this.hasOption(a)&&(delete k[a],n.$viewValue===a&&this.renderUnknownOption(a))};l.renderUnknownOption=function(c){c="? "+Na(c)+" ?";p.val(c);a.prepend(p);a.val(c);p.prop("selected",!0)};l.hasOption=function(a){return k.hasOwnProperty(a)};c.$on("$destroy",function(){l.renderUnknownOption=A})}],link:function(e,g,h,l){function k(a,c,d,e){d.$render=function(){var a=
d.$viewValue;e.hasOption(a)?(z.parent()&&z.remove(),c.val(a),""===a&&v.prop("selected",!0)):null==a&&v?c.val(""):e.renderUnknownOption(a)};c.on("change",function(){a.$apply(function(){z.parent()&&z.remove();d.$setViewValue(c.val())})})}function n(a,c,d){var e;d.$render=function(){var a=new gb(d.$viewValue);r(c.find("option"),function(c){c.selected=y(a.get(c.value))})};a.$watch(function(){ia(e,d.$viewValue)||(e=sa(d.$viewValue),d.$render())});c.on("change",function(){a.$apply(function(){var a=[];r(c.find("option"),
function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function p(e,f,g){function h(a,c,d){T[A]=d;I&&(T[I]=c);return a(e,T)}function l(a){var c;if(t)if(K&&H(a)){c=new gb([]);for(var d=0;d<a.length;d++)c.put(h(K,null,a[d]),!0)}else c=new gb(a);else K&&(a=h(K,null,a));return function(d,e){var f;f=K?K:x?x:E;return t?y(c.remove(h(f,d,e))):a===h(f,d,e)}}function k(){m||(e.$$postDigest(p),m=!0)}function n(a,c,d){a[c]=a[c]||0;a[c]+=d?1:-1}function p(){m=!1;var a={"":[]},c=[""],d,k,s,u,v;s=g.$viewValue;
u=L(e)||[];var A=I?Object.keys(u).sort():u,x,B,H,E,P={};v=l(s);var N=!1,U,W;R={};for(E=0;H=A.length,E<H;E++){x=E;if(I&&(x=A[E],"$"===x.charAt(0)))continue;B=u[x];d=h(M,x,B)||"";(k=a[d])||(k=a[d]=[],c.push(d));d=v(x,B);N=N||d;B=h(z,x,B);B=y(B)?B:"";W=K?K(e,T):I?A[E]:E;K&&(R[W]=x);k.push({id:W,label:B,selected:d})}t||(w||null===s?a[""].unshift({id:"",label:"",selected:!N}):N||a[""].unshift({id:"?",label:"",selected:!0}));x=0;for(A=c.length;x<A;x++){d=c[x];k=a[d];S.length<=x?(s={element:D.clone().attr("label",
d),label:k.label},u=[s],S.push(u),f.append(s.element)):(u=S[x],s=u[0],s.label!=d&&s.element.attr("label",s.label=d));N=null;E=0;for(H=k.length;E<H;E++)d=k[E],(v=u[E+1])?(N=v.element,v.label!==d.label&&(n(P,v.label,!1),n(P,d.label,!0),N.text(v.label=d.label),N.prop("label",v.label)),v.id!==d.id&&N.val(v.id=d.id),N[0].selected!==d.selected&&(N.prop("selected",v.selected=d.selected),Ra&&N.prop("selected",v.selected))):(""===d.id&&w?U=w:(U=C.clone()).val(d.id).prop("selected",d.selected).attr("selected",
d.selected).prop("label",d.label).text(d.label),u.push(v={element:U,label:d.label,id:d.id,selected:d.selected}),n(P,d.label,!0),N?N.after(U):s.element.append(U),N=U);for(E++;u.length>E;)d=u.pop(),n(P,d.label,!1),d.element.remove()}for(;S.length>x;){k=S.pop();for(E=1;E<k.length;++E)n(P,k[E].label,!1);k[0].element.remove()}r(P,function(a,c){0<a?q.addOption(c):0>a&&q.removeOption(c)})}var v;if(!(v=s.match(d)))throw gg("iexp",s,xa(f));var z=c(v[2]||v[1]),A=v[4]||v[6],B=/ as /.test(v[0])&&v[1],x=B?c(B):
null,I=v[5],M=c(v[3]||""),E=c(v[2]?v[1]:A),L=c(v[7]),K=v[8]?c(v[8]):null,R={},S=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=L(e)||[],c;if(t)c=[],r(f.val(),function(d){d=K?R[d]:d;c.push("?"===d?u:""===d?null:h(x?x:E,d,a[d]))});else{var d=K?R[f.val()]:f.val();c="?"===d?u:""===d?null:h(x?x:E,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(L,k);e.$watchCollection(function(){var a=L(e),c;
if(a&&H(a)){c=Array(a.length);for(var d=0,f=a.length;d<f;d++)c[d]=h(z,d,a[d])}else if(a)for(d in c={},a)a.hasOwnProperty(d)&&(c[d]=h(z,d,a[d]));return c},k);t&&e.$watchCollection(function(){return g.$modelValue},k)}if(l[1]){var q=l[0];l=l[1];var t=h.multiple,s=h.ngOptions,w=!1,v,m=!1,C=B(W.createElement("option")),D=B(W.createElement("optgroup")),z=C.clone();h=0;for(var A=g.children(),x=A.length;h<x;h++)if(""===A[h].value){v=w=A.eq(h);break}q.init(l,w,z);t&&(l.$isEmpty=function(a){return!a||0===a.length});
s?p(e,g,l):t?n(e,g,l):k(e,g,l,q)}}}}],Yd=["$interpolate",function(a){var c={addOption:A,removeOption:A};return{restrict:"E",priority:100,compile:function(d,e){if(D(e.value)){var f=a(d.text(),!0);f||e.$set("value",d.text())}return function(a,d,e){var k=d.parent(),n=k.data("$selectController")||k.parent().data("$selectController");n&&n.databound||(n=c);f?a.$watch(f,function(a,c){e.$set("value",a);c!==a&&n.removeOption(c);n.addOption(a,d)}):n.addOption(e.value,d);d.on("$destroy",function(){n.removeOption(e.value)})}}}}],
Xd=ea({restrict:"E",terminal:!1}),Ac=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){e&&(d.required=!0,e.$validators.required=function(a,c){return!d.required||!e.$isEmpty(c)},d.$observe("required",function(){e.$validate()}))}}},zc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f,g=d.ngPattern||d.pattern;d.$observe("pattern",function(a){x(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw S("ngPattern")("noregexp",g,a,xa(c));f=
a||u;e.$validate()});e.$validators.pattern=function(a,c){return e.$isEmpty(c)||D(f)||f.test(c)}}}}},Cc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=-1;d.$observe("maxlength",function(a){a=aa(a);f=isNaN(a)?-1:a;e.$validate()});e.$validators.maxlength=function(a,c){return 0>f||e.$isEmpty(c)||c.length<=f}}}}},Bc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=
function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};R.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ca),B(W).ready(function(){Jd(W,tc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>');
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var w=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
this.$get=["$http","$q",function(q,h){function t(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function v(x,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){u(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw w("badmember",e);for(var e=e.split("."),n=0,g=e.length;n<g&&d!==B;n++){var h=e[n];d=null!==d?d[h]:B}}else d=a;c[k]=d});return c}function F(b){return b.resource}function e(b){D(b||
{},this)}var G=new t(x,m);l=s({},f.defaults.actions,l);e.prototype.toJSON=function(){var b=s({},this);delete b.$promise;delete b.$resolved;return b};r(l,function(b,k){var g=/^(POST|PUT|PATCH)$/i.test(b.method);e[k]=function(a,y,m,x){var n={},f,l,z;switch(arguments.length){case 4:z=x,l=m;case 3:case 2:if(u(y)){if(u(a)){l=a;z=y;break}l=y;z=m}else{n=a;f=y;l=m;break}case 1:u(a)?l=a:g?f=a:n=a;break;case 0:break;default:throw w("badargs",arguments.length);}var t=this instanceof e,p=t?f:b.isArray?[]:new e(f),
A={},v=b.interceptor&&b.interceptor.response||F,C=b.interceptor&&b.interceptor.responseError||B;r(b,function(b,a){"params"!=a&&"isArray"!=a&&"interceptor"!=a&&(A[a]=H(b))});g&&(A.data=f);G.setUrlParams(A,s({},c(f,b.params||{}),n),b.url);n=q(A).then(function(a){var c=a.data,g=p.$promise;if(c){if(d.isArray(c)!==!!b.isArray)throw w("badcfg",k,b.isArray?"array":"object",d.isArray(c)?"array":"object");b.isArray?(p.length=0,r(c,function(a){"object"===typeof a?p.push(new e(a)):p.push(a)})):(D(c,p),p.$promise=
g)}p.$resolved=!0;a.resource=p;return a},function(a){p.$resolved=!0;(z||E)(a);return h.reject(a)});n=n.then(function(a){var b=v(a);(l||E)(b,a.headers);return b},C);return t?n:(p.$promise=n,p.$resolved=!1,p)};e.prototype["$"+k]=function(a,b,c){u(a)&&(c=b,b=a,a={});a=e[k].call(this,a,this,b,c);return a.$promise||a}});e.bind=function(b){return v(x,s({},g,b),l)};return e}var E=d.noop,r=d.forEach,s=d.extend,H=d.copy,u=d.isFunction;t.prototype={setUrlParams:function(f,g,l){var m=this,c=l||m.template,h,
e,q=m.urlParams={};r(c.split(/\W/),function(b){if("hasOwnProperty"===b)throw w("badname");!/^\d+$/.test(b)&&b&&(new RegExp("(^|[^\\\\]):"+b+"(\\W|$)")).test(c)&&(q[b]=!0)});c=c.replace(/\\:/g,":");g=g||{};r(m.urlParams,function(b,k){h=g.hasOwnProperty(k)?g[k]:m.defaults[k];d.isDefined(h)&&null!==h?(e=encodeURIComponent(h).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),c=c.replace(new RegExp(":"+
k+"(\\W|$)","g"),function(b,a){return e+a})):c=c.replace(new RegExp("(/?):"+k+"(\\W|$)","g"),function(b,a,c){return"/"==c.charAt(0)?c:a+c})});m.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/");c=c.replace(/\/\.(?=\w+($|\?))/,".");f.url=c.replace(/\/\\\./,"/.");r(g,function(b,c){m.urlParams[c]||(f.params=f.params||{},f.params[c]=b)})}};return v}]})})(window,window.angular);
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(y,s,z){ 'use strict';function t(f,k,p){n.directive(f,["$parse","$swipe",function(d,e){return function(l,m,g){function h(a){if(!b)return!1;var c=Math.abs(a.y-b.y);a=(a.x-b.x)*k;return q&&75>c&&0<a&&30<a&&.3>c/a}var c=d(g[f]),b,q,a=["touch"];s.isDefined(g.ngSwipeDisableMouse)||a.push("mouse");e.bind(m,{start:function(a,c){b=a;q=!0},cancel:function(a){q=!1},end:function(a,b){h(a)&&l.$apply(function(){m.triggerHandler(p);c(l,{$event:b})})}},a)}}])}var n=s.module("ngTouch",[]);n.factory("$swipe",
[function(){ function f(d){d=d.originalEvent||d;var e=d.touches&&d.touches.length?d.touches:[d];d=d.changedTouches&&d.changedTouches[0]||e[0];return{x:d.clientX,y:d.clientY}}function k(d,e){var l=[];s.forEach(d,function(d){(d=p[d][e])&&l.push(d)});return l.join(" ")}var p={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(d,e,l){var m,g,h,c,b=!1;l=l||["mouse","touch"];d.on(k(l,"start"),function(a){h=
f(a);b=!0;g=m=0;c=h;e.start&&e.start(h,a)});var q=k(l,"cancel");if(q)d.on(q,function(a){b=!1;e.cancel&&e.cancel(a)});d.on(k(l,"move"),function(a){if(b&&h){var d=f(a);m+=Math.abs(d.x-c.x);g+=Math.abs(d.y-c.y);c=d;10>m&&10>g||(g>m?(b=!1,e.cancel&&e.cancel(a)):(a.preventDefault(),e.move&&e.move(d,a)))}});d.on(k(l,"end"),function(a){b&&(b=!1,e.end&&e.end(f(a),a))})}}}]);n.config(["$provide",function(f){f.decorator("ngClickDirective",["$delegate",function(k){k.shift();return k}])}]);n.directive("ngClick",
["$parse","$timeout","$rootElement",function(f,k,p){function d(c,b,d){for(var a=0;a<c.length;a+=2){var e=c[a+1],g=d;if(25>Math.abs(c[a]-b)&&25>Math.abs(e-g))return c.splice(a,a+2),!0}return!1}function e(c){if(!(2500<Date.now()-m)){var b=c.touches&&c.touches.length?c.touches:[c],e=b[0].clientX,b=b[0].clientY;if(!(1>e&&1>b||h&&h[0]===e&&h[1]===b)){h&&(h=null);var a=c.target;"label"===s.lowercase(a.nodeName||a[0]&&a[0].nodeName)&&(h=[e,b]);d(g,e,b)||(c.stopPropagation(),c.preventDefault(),c.target&&
c.target.blur&&c.target.blur())}}}function l(c){c=c.touches&&c.touches.length?c.touches:[c];var b=c[0].clientX,d=c[0].clientY;g.push(b,d);k(function(){for(var a=0;a<g.length;a+=2)if(g[a]==b&&g[a+1]==d){g.splice(a,a+2);break}},2500,!1)}var m,g,h;return function(c,b,h){function a(){n=!1;b.removeClass("ng-click-active")}var k=f(h.ngClick),n=!1,r,t,v,w;b.on("touchstart",function(a){n=!0;r=a.target?a.target:a.srcElement;3==r.nodeType&&(r=r.parentNode);b.addClass("ng-click-active");t=Date.now();a=a.originalEvent||
a;a=(a.touches&&a.touches.length?a.touches:[a])[0];v=a.clientX;w=a.clientY});b.on("touchmove",function(b){a()});b.on("touchcancel",function(b){a()});b.on("touchend",function(c){var k=Date.now()-t,f=c.originalEvent||c,u=(f.changedTouches&&f.changedTouches.length?f.changedTouches:f.touches&&f.touches.length?f.touches:[f])[0],f=u.clientX,u=u.clientY,x=Math.sqrt(Math.pow(f-v,2)+Math.pow(u-w,2));n&&750>k&&12>x&&(g||(p[0].addEventListener("click",e,!0),p[0].addEventListener("touchstart",l,!0),g=[]),m=Date.now(),
d(g,f,u),r&&r.blur(),s.isDefined(h.disabled)&&!1!==h.disabled||b.triggerHandler("click",[c]));a()});b.onclick=function(a){};b.on("click",function(a,b){c.$apply(function(){k(c,{$event:b||a})})});b.on("mousedown",function(a){b.addClass("ng-click-active")});b.on("mousemove mouseup",function(a){b.removeClass("ng-click-active")})}}]);t("ngSwipeLeft",-1,"swipeleft");t("ngSwipeRight",1,"swiperight")})(window,window.angular);



widgetkit/wk-scripts-afbc4f90.js000064400000040600152177723720012514 0ustar00!function(t){"use strict";function e(t,i,r){this.extend(e,google.maps.OverlayView),this.map_=t,this.markers_=[],this.clusters_=[],this.sizes=[53,56,66,78,90],this.styles_=[],this.ready_=!1;var s=r||{};this.gridSize_=s.gridSize||60,this.minClusterSize_=s.minimumClusterSize||2,this.maxZoom_=s.maxZoom||null,this.styles_=s.styles||[],this.imagePath_=s.imagePath||this.MARKER_CLUSTER_IMAGE_PATH_,this.imageExtension_=s.imageExtension||this.MARKER_CLUSTER_IMAGE_EXTENSION_,this.zoomOnClick_=!0,void 0!=s.zoomOnClick&&(this.zoomOnClick_=s.zoomOnClick),this.averageCenter_=!1,void 0!=s.averageCenter&&(this.averageCenter_=s.averageCenter),this.setupStyles_(),this.setMap(t),this.prevZoom_=this.map_.getZoom();var o=this;google.maps.event.addListener(this.map_,"zoom_changed",function(){var t=o.map_.getZoom();o.prevZoom_!=t&&(o.prevZoom_=t,o.resetViewport())}),google.maps.event.addListener(this.map_,"idle",function(){o.redraw()}),i&&i.length&&this.addMarkers(i,!1)}function i(t){this.markerClusterer_=t,this.map_=t.getMap(),this.gridSize_=t.getGridSize(),this.minClusterSize_=t.getMinClusterSize(),this.averageCenter_=t.isAverageCenter(),this.center_=null,this.markers_=[],this.bounds_=null,this.clusterIcon_=new r(this,t.getStyles(),t.getGridSize())}function r(t,e,i){t.getMarkerClusterer().extend(r,google.maps.OverlayView),this.styles_=e,this.padding_=i||0,this.cluster_=t,this.center_=null,this.map_=t.getMap(),this.div_=null,this.sums_=null,this.visible_=!1,this.setMap(this.map_)}var s,o=function(){return s||(s=t.Deferred(),window.wkInitializeGoogleMapsApi=s.resolve,t.getScript("//maps.google.com/maps/api/js?callback=wkInitializeGoogleMapsApi&key="+(window.GOOGLE_MAPS_API_KEY||""))),s.promise()};t(function(){t('script[type="widgetkit/map"]').each(function(){var i=t(this),r=t("<div data-uk-check-display data-wk-check-display></div>").attr(i.data()),s=JSON.parse(this.innerHTML);i.replaceWith(r),o().then(function(){var i,o,n,a,h,p=s.markers,l=[],u=window.MapsMarkerHelper||!1;Object.keys(s).forEach(function(t){isNaN(s[t])||(s[t]=Number(s[t]))}),n=p.length?new google.maps.LatLng(p[0].lat,p[0].lng):new google.maps.LatLng((-34.397),150.644),o={zoom:parseInt(s.zoom,10),center:n,streetViewControl:s.mapctrl,navigationControl:s.mapctrl,scrollwheel:s.zoomwheel,draggable:s.draggable,mapTypeId:google.maps.MapTypeId[s.maptypeid.toUpperCase()],mapTypeControl:s.maptypecontrol,zoomControl:s.zoomcontrol,disableDefaultUI:s.disabledefaultui,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,mapTypeIds:["styled_map",google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE]},zoomControlOptions:{style:s.mapctrl?google.maps.ZoomControlStyle.DEFAULT:google.maps.ZoomControlStyle.SMALL}},i=new google.maps.Map(r[0],o),r.data("googlemap",i).on("display.uk.check",function(){google.maps.event.trigger(i,"resize")}),p.length&&s.directions&&(a=t('<a target="_blank"></a>').css({padding:"5px 1px","text-decoration":"none"}),h=t("<div></div>").css({"-webkit-background-clip":"padding-box",padding:"1px 4px",backgroundColor:"white",borderColor:"rgba(0, 0, 0, 0.14902)",borderStyle:"solid",borderWidth:"1px",cursor:"pointer",textAlign:"center",fontFamily:"Roboto, Arial, sans-serif",fontWeight:500,boxShadow:"rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px",index:1}),h.html('<span style="color:#000;"><span style="color:blue;">&#8627;</span>'+(s.directionsText||"Get Directions")+"</span>"),a.append(h),a.setHref=function(t,e){this.attr("href","http://maps.google.com/?daddr="+t+","+e)},i.controls[google.maps.ControlPosition.TOP_RIGHT].push(a[0])),p.length&&s.marker&&(p.forEach(function(t,e){var r,o=new google.maps.Marker({position:new google.maps.LatLng(t.lat,t.lng),map:i,title:t.title});(u&&t.icon||s.marker_icon)&&u.setIcon(o,t.icon||s.marker_icon),l.push(o),s.marker>=1&&(r=new google.maps.InfoWindow({content:t.content,maxWidth:s.popup_max_width?parseInt(s.popup_max_width,10):300}),google.maps.event.addListener(o,"click",function(){s.marker>=2&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())}),0===e&&(3===s.marker&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())))}),i.panTo(new google.maps.LatLng(p[0].lat,p[0].lng))),s.markercluster&&(this.markerCluster=new e(i,l));var g=new google.maps.StyledMapType([{featureType:"all",elementType:"all",stylers:[{invert_lightness:s.styler_invert_lightness},{hue:s.styler_hue},{saturation:s.styler_saturation},{lightness:s.styler_lightness},{gamma:s.styler_gamma}]}],{name:"Styled"});i.mapTypes.set("styled_map",g),"ROADMAP"==s.maptypeid.toUpperCase()&&i.setMapTypeId("styled_map")})})}),e.prototype.MARKER_CLUSTER_IMAGE_PATH_="https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m",e.prototype.MARKER_CLUSTER_IMAGE_EXTENSION_="png",e.prototype.extend=function(t,e){return function(t){for(var e in t.prototype)this.prototype[e]=t.prototype[e];return this}.apply(t,[e])},e.prototype.onAdd=function(){this.setReady_(!0)},e.prototype.draw=function(){},e.prototype.setupStyles_=function(){if(!this.styles_.length)for(var t,e=0;t=this.sizes[e];e++)this.styles_.push({url:this.imagePath_+(e+1)+"."+this.imageExtension_,height:t,width:t})},e.prototype.fitMapToMarkers=function(){for(var t,e=this.getMarkers(),i=new google.maps.LatLngBounds,r=0;t=e[r];r++)i.extend(t.getPosition());this.map_.fitBounds(i)},e.prototype.setStyles=function(t){this.styles_=t},e.prototype.getStyles=function(){return this.styles_},e.prototype.isZoomOnClick=function(){return this.zoomOnClick_},e.prototype.isAverageCenter=function(){return this.averageCenter_},e.prototype.getMarkers=function(){return this.markers_},e.prototype.getTotalMarkers=function(){return this.markers_.length},e.prototype.setMaxZoom=function(t){this.maxZoom_=t},e.prototype.getMaxZoom=function(){return this.maxZoom_},e.prototype.calculator_=function(t,e){for(var i=0,r=t.length,s=r;0!==s;)s=parseInt(s/10,10),i++;return i=Math.min(i,e),{text:r,index:i}},e.prototype.setCalculator=function(t){this.calculator_=t},e.prototype.getCalculator=function(){return this.calculator_},e.prototype.addMarkers=function(t,e){for(var i,r=0;i=t[r];r++)this.pushMarkerTo_(i);e||this.redraw()},e.prototype.pushMarkerTo_=function(t){if(t.isAdded=!1,t.draggable){var e=this;google.maps.event.addListener(t,"dragend",function(){t.isAdded=!1,e.repaint()})}this.markers_.push(t)},e.prototype.addMarker=function(t,e){this.pushMarkerTo_(t),e||this.redraw()},e.prototype.removeMarker_=function(t){var e=-1;if(this.markers_.indexOf)e=this.markers_.indexOf(t);else for(var i,r=0;i=this.markers_[r];r++)if(i==t){e=r;break}return e!=-1&&(t.setMap(null),this.markers_.splice(e,1),!0)},e.prototype.removeMarker=function(t,e){var i=this.removeMarker_(t);return!(e||!i)&&(this.resetViewport(),this.redraw(),!0)},e.prototype.removeMarkers=function(t,e){for(var i,r=!1,s=0;i=t[s];s++){var o=this.removeMarker_(i);r=r||o}if(!e&&r)return this.resetViewport(),this.redraw(),!0},e.prototype.setReady_=function(t){this.ready_||(this.ready_=t,this.createClusters_())},e.prototype.getTotalClusters=function(){return this.clusters_.length},e.prototype.getMap=function(){return this.map_},e.prototype.setMap=function(t){this.map_=t},e.prototype.getGridSize=function(){return this.gridSize_},e.prototype.setGridSize=function(t){this.gridSize_=t},e.prototype.getMinClusterSize=function(){return this.minClusterSize_},e.prototype.setMinClusterSize=function(t){this.minClusterSize_=t},e.prototype.getExtendedBounds=function(t){var e=this.getProjection(),i=new google.maps.LatLng(t.getNorthEast().lat(),t.getNorthEast().lng()),r=new google.maps.LatLng(t.getSouthWest().lat(),t.getSouthWest().lng()),s=e.fromLatLngToDivPixel(i);s.x+=this.gridSize_,s.y-=this.gridSize_;var o=e.fromLatLngToDivPixel(r);o.x-=this.gridSize_,o.y+=this.gridSize_;var n=e.fromDivPixelToLatLng(s),a=e.fromDivPixelToLatLng(o);return t.extend(n),t.extend(a),t},e.prototype.isMarkerInBounds_=function(t,e){return e.contains(t.getPosition())},e.prototype.clearMarkers=function(){this.resetViewport(!0),this.markers_=[]},e.prototype.resetViewport=function(t){for(var e,i=0;e=this.clusters_[i];i++)e.remove();for(var r,i=0;r=this.markers_[i];i++)r.isAdded=!1,t&&r.setMap(null);this.clusters_=[]},e.prototype.repaint=function(){var t=this.clusters_.slice();this.clusters_.length=0,this.resetViewport(),this.redraw(),window.setTimeout(function(){for(var e,i=0;e=t[i];i++)e.remove()},0)},e.prototype.redraw=function(){this.createClusters_()},e.prototype.distanceBetweenPoints_=function(t,e){if(!t||!e)return 0;var i=6371,r=(e.lat()-t.lat())*Math.PI/180,s=(e.lng()-t.lng())*Math.PI/180,o=Math.sin(r/2)*Math.sin(r/2)+Math.cos(t.lat()*Math.PI/180)*Math.cos(e.lat()*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2),n=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)),a=i*n;return a},e.prototype.addToClosestCluster_=function(t){for(var e,r=4e4,s=null,o=(t.getPosition(),0);e=this.clusters_[o];o++){var n=e.getCenter();if(n){var a=this.distanceBetweenPoints_(n,t.getPosition());a<r&&(r=a,s=e)}}if(s&&s.isMarkerInClusterBounds(t))s.addMarker(t);else{var e=new i(this);e.addMarker(t),this.clusters_.push(e)}},e.prototype.createClusters_=function(){if(this.ready_)for(var t,e=new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),this.map_.getBounds().getNorthEast()),i=this.getExtendedBounds(e),r=0;t=this.markers_[r];r++)!t.isAdded&&this.isMarkerInBounds_(t,i)&&this.addToClosestCluster_(t)},i.prototype.isMarkerAlreadyAdded=function(t){if(this.markers_.indexOf)return this.markers_.indexOf(t)!=-1;for(var e,i=0;e=this.markers_[i];i++)if(e==t)return!0;return!1},i.prototype.addMarker=function(t){if(this.isMarkerAlreadyAdded(t))return!1;if(this.center_){if(this.averageCenter_){var e=this.markers_.length+1,i=(this.center_.lat()*(e-1)+t.getPosition().lat())/e,r=(this.center_.lng()*(e-1)+t.getPosition().lng())/e;this.center_=new google.maps.LatLng(i,r),this.calculateBounds_()}}else this.center_=t.getPosition(),this.calculateBounds_();t.isAdded=!0,this.markers_.push(t);var s=this.markers_.length;if(s<this.minClusterSize_&&t.getMap()!=this.map_&&t.setMap(this.map_),s==this.minClusterSize_)for(var o=0;o<s;o++)this.markers_[o].setMap(null);return s>=this.minClusterSize_&&t.setMap(null),this.updateIcon(),!0},i.prototype.getMarkerClusterer=function(){return this.markerClusterer_},i.prototype.getBounds=function(){for(var t,e=new google.maps.LatLngBounds(this.center_,this.center_),i=this.getMarkers(),r=0;t=i[r];r++)e.extend(t.getPosition());return e},i.prototype.remove=function(){this.clusterIcon_.remove(),this.markers_.length=0,delete this.markers_},i.prototype.getSize=function(){return this.markers_.length},i.prototype.getMarkers=function(){return this.markers_},i.prototype.getCenter=function(){return this.center_},i.prototype.calculateBounds_=function(){var t=new google.maps.LatLngBounds(this.center_,this.center_);this.bounds_=this.markerClusterer_.getExtendedBounds(t)},i.prototype.isMarkerInClusterBounds=function(t){return this.bounds_.contains(t.getPosition())},i.prototype.getMap=function(){return this.map_},i.prototype.updateIcon=function(){var t=this.map_.getZoom(),e=this.markerClusterer_.getMaxZoom();if(e&&t>e)for(var i,r=0;i=this.markers_[r];r++)i.setMap(this.map_);else{if(this.markers_.length<this.minClusterSize_)return void this.clusterIcon_.hide();var s=this.markerClusterer_.getStyles().length,o=this.markerClusterer_.getCalculator()(this.markers_,s);this.clusterIcon_.setCenter(this.center_),this.clusterIcon_.setSums(o),this.clusterIcon_.show()}},r.prototype.triggerClusterClick=function(){var t=this.cluster_.getMarkerClusterer();google.maps.event.trigger(t,"clusterclick",this.cluster_),t.isZoomOnClick()&&this.map_.fitBounds(this.cluster_.getBounds())},r.prototype.onAdd=function(){if(this.div_=document.createElement("DIV"),this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.innerHTML=this.sums_.text}var e=this.getPanes();e.overlayMouseTarget.appendChild(this.div_);var i=this;google.maps.event.addDomListener(this.div_,"click",function(){i.triggerClusterClick()})},r.prototype.getPosFromLatLng_=function(t){var e=this.getProjection().fromLatLngToDivPixel(t);return e.x-=parseInt(this.width_/2,10),e.y-=parseInt(this.height_/2,10),e},r.prototype.draw=function(){if(this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.top=t.y+"px",this.div_.style.left=t.x+"px"}},r.prototype.hide=function(){this.div_&&(this.div_.style.display="none"),this.visible_=!1},r.prototype.show=function(){if(this.div_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.style.display=""}this.visible_=!0},r.prototype.remove=function(){this.setMap(null)},r.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),this.div_.parentNode.removeChild(this.div_),this.div_=null)},r.prototype.setSums=function(t){this.sums_=t,this.text_=t.text,this.index_=t.index,this.div_&&(this.div_.innerHTML=t.text),this.useStyle()},r.prototype.useStyle=function(){var t=Math.max(0,this.sums_.index-1);t=Math.min(this.styles_.length-1,t);var e=this.styles_[t];this.url_=e.url,this.height_=e.height,this.width_=e.width,this.textColor_=e.textColor,this.anchor_=e.anchor,this.textSize_=e.textSize,this.backgroundPosition_=e.backgroundPosition},r.prototype.setCenter=function(t){this.center_=t},r.prototype.createCss=function(t){var e=[];e.push("background-image:url("+this.url_+");");var i=this.backgroundPosition_?this.backgroundPosition_:"0 0";e.push("background-position:"+i+";"),"object"==typeof this.anchor_?("number"==typeof this.anchor_[0]&&this.anchor_[0]>0&&this.anchor_[0]<this.height_?e.push("height:"+(this.height_-this.anchor_[0])+"px; padding-top:"+this.anchor_[0]+"px;"):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px;"),"number"==typeof this.anchor_[1]&&this.anchor_[1]>0&&this.anchor_[1]<this.width_?e.push("width:"+(this.width_-this.anchor_[1])+"px; padding-left:"+this.anchor_[1]+"px;"):e.push("width:"+this.width_+"px; text-align:center;")):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px; width:"+this.width_+"px; text-align:center;");var r=this.textColor_?this.textColor_:"black",s=this.textSize_?this.textSize_:11;return e.push("cursor:pointer; top:"+t.y+"px; left:"+t.x+"px; color:"+r+"; position:absolute; font-size:"+s+"px; font-family:Arial,sans-serif; font-weight:bold"),e.join("")}}(jQuery);

var MapsMarkerHelper={colors:{black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]},getSVG:function(e,s){return e=this.parseColor(e||"#E65857"),s=this.parseColor(s||"rgba(255,255,255,0)"),'<?xml version="1.0" encoding="utf-8"?>            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"             width="22px" height="34px" viewBox="0 0 22 34" enable-background="new 0 0 22 34" xml:space="preserve">             <circle id="circle" fill="'+s+'" cx="11" cy="11" r="6.5"/>            <path id="path" d="M11,0C4.94,0,0,4.876,0,10.9C0,19.458,11,34,11,34s11-14.581,11-23.1C22,4.876,17.061,0,11,0z M11,16.5             c-3.038,0-5.5-2.463-5.5-5.5c0-3.038,2.462-5.5,5.5-5.5c3.037,0,5.5,2.462,5.5,5.5C16.5,14.037,14.037,16.5,11,16.5z" fill="'+e+'"/>            </svg>'},parseColor:function(e){var s,a;return a=(s=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(s[1],16),parseInt(s[2],16),parseInt(s[3],16),1]:(s=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(s[1],16),17*parseInt(s[2],16),17*parseInt(s[3],16),1]:(s=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(s[1]),parseInt(s[2]),parseInt(s[3]),1]:(s=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),parseFloat(s[4])]:this.colors[e]||[230,88,87,1],"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},setIcon:function(e,s){var a,r=new google.maps.Point(11,40),t=function(){e.setIcon({url:a,anchor:r})};if(!s.trim())return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t();if(s.indexOf("/")!=-1){var n=new Image;n.onload=function(){a=n.src,r=new google.maps.Point(Math.ceil(n.width/2),n.height),t()},n.onerror=function(){return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t()},n.src=s}else a="data:image/svg+xml;base64,"+btoa(this.getSVG.apply(this,s.split(" "))),r=new google.maps.Point(11,34),t()}};

widgetkit/Il_comunista-37eff8f89ac6c4e872987cd25728f8a4.jpg000064400000065222152177723720016343 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((���"�������9r�۞sz�jY�v"��@K$L>�48ʚ�B��4���
�,ێK����];'|����)��0Z��W � 8��R��\(s�����ͿKT.��7s=��;��H�{r�����k{
�#��~�fU���/$�{*�<����d�C����i�28��L�A=�NX,sk:4�_��"6~��`��[X==h�Mp0�!YV4.�[%�hiq�tC��p\���W�8%,]�UR�T�[�+k;�2�R�ld�E
��ck�IV�JD�U�շ-*�T��H�]]�u#&�h'�%�>{�p����E���N��-<�g%'��tֻYb4�t���@ѤWL��[�2�F�E�+���ѥ�Ge�*��9�kt<�n�P�^dLi��toB���z���#��Y��˕z��f�d���\�`5��wL��YV�����_&^GF6�;zH9;�U.���O�Z�_�����yϥ��v���Z�i	L�x��
حp$:d�N�JV��8u��KN���-��dh��[bыj�e�F=m��?l�Q��	�ݩ1/Z3$�����	]��L�ܮ.��\��C,�U6��d@�"��@^]��[H�-�[��yꐽ"�OA�V�����!�	j�z<�U"���a"��)��]���u����7�;or�:��+��q�:�r�4L�E�V!�YH4t)�@K!QI2KN��|����W�����u�o)c�ms��ؓ��.�#�>�k��i']�;�+YN�<���0��F` ��&5
1zB]�$$�辒Ǡ���8�V���`�Ϋ��Υ�%+vZF^�I��ެ��3[vMu51����+��+&�֢�@�Y�+�ԈsU��eƘ%���V$l��j��͌����:�e����W�΃>_�Ug�e� �Ѕ
+A��6<��a�Q��,	�%���+�Z%WY�)ܦP��ڶ_�tp�䆆��_�%��k�d��ы�x{�Cf�
�bU�U�ꊖ$Ed�0Ī��6Jް����R���ط��Nk�Vbk��^�`�j�i����IPd1l%�`�cEXSD��V[�D�������V ēT����L@չ�E^�{_g)��9~�B�S��H�,�1y�V�>MY���p�C�!�%��-7.4�l�/-��ے�^�_�X^��iۧI�av�;A����H��8p�
���(�\	ji�i�KЇI欃uK&DT�r��Tl4�9=�cɒs��*UY�6i�đhfM�Wz�����J�^KQ
��mbd�[$�8TE���!����0Yژ��x�+�O�B��Ϸ5���zEE�@	��MsEԬDM7��A�8��i��>���$U{*F`"�ƽ%�!�VKe���諉^?��+!"12#A$ 43BE���z��a��-h]����9Ԝ��9����Dl�AHb�=C9��Ρ��uu_}G���f��/9���fs3��C:�riɧ&��iɧ7�C94�лo�Df� 74�Ȯ����ۈ2���g�e�]yYf��2�3�fE�aQ�r�͌x�w�ғ�,�$dבmT�M�&^@u��;M@ք�;N�B	�Yq�g58M4'���o�Z��=��q��]k��JV�
S���o��t���=b�����G���ukӯ�-w��E��Z�9)��a5��-R��b��nno������|�
t���?���j!nO����|-�;khu��W ӽ9a?���֥����ݥ����^+3q��3�3/5+��k�fND�Z�Abm�+t�BY�����3Z���
nVL��D>O����/��ű�X�Wʂ	�؉���=N�>\?O����)���6���Qb2���B�|��m������YNy7�`�����m����1�[K_e���XcӁԾ�2r�zV[Mչ�0��F����y6��'�ϳ���{�v�5_�:�a5��W��_zP���
��NE��r+�U��{��Ȳ���9{���:��eg;31�_ZaazF/��^_�7��o��LT����s���D����
}G.��^��Q2ri�77��A��Э~�"\=�Uz�gMk��V-�-�EUpխ��e�ۄ1K��ו�`�Zx[b�Px52�G��{����v-8��0�*��W�?�����m�n~vo����`)�#�����7�������뽗�X��0�Qm;��ȹi���9d\(���܋�1~�g��&��QsPå���ٚ�Y��(Dn�``jɲ���o����w+qNK�6:Тv�z��L��-�
�nȳ>��N>jU��KX�y�ꭻ25���U�Y��>M�5x�fRz��������oMs-�AN"���&GZ0��/�֣.���2"�aE:q�`�u-�a�l�����F k󓀗3zY�8UҼ|2pj���Q~�M
�2i�!�˹z~*���]kq��r;U���ެ'y؇$׎(��5�Wݘ+��Ʌ��s���"�n�Tze��؟���Ы�~U�x	�/ƽ���ţ��
q�Z��;����3���7��������O�`rh,�rj��QF�}�����`���?���������S_��&��t���_�ҍ�yYM�e
��me�;:��D]�R�`�o՛�'��!��"ʮ�܆ܖ6V-��-�h������Y��wQ�yd�0�wK9����~v&�M��������ဈv�>�����F1�M��b��MwМg5;��X"&�҆��)˪��ɣn�ۻ�G��~
z��ͧwb8��!��it8EE�)���S`���$w��2�I���4����\����NK��v��;�yݐua����^P�w���m�{��9[啺z��s�CBu ��UP�W@F�'@�[H��(���1��2Iy�a�|Lɴ!Ғɽ �����C�G�ɨD�����k�@�O���8�=��)����њ0�3�N&h���4gy�;�C���#�2�vF�	��^�G*�TSaZU�Y>��={��O�CE�ن-G�0�Q�!}�{T�\T���7��O��]�VC���OsOh7,, �u /�.;�w�8��F�����gR��:�����e��Z���_�k5�yuk�W-V�j��#�n�bԟ�H��A:"v{���"�\gT@۝O"�=]��g M�@�f3��x�����A���o�ַ���Y�Y"�Kuk�Dɱ)����5�Nx�_��C�
6��P�v��胾��xC���%y�,�q��y�����y���<��K�B�+9x�ޕ����U����V����~���1ŏs3E���t�vP�`�c��7�|/���Q+FZA4��x�Q�ȯ��!aÈ��A����I�hI^�#H0�^��h�ԯ����oq��v�n
����Z��h98>��6q�t�
�j±eVW���̑&�|��:3�A��<np���`�����^Z�B�G��C:�>�-�����&�r�'�����"�|��×����J�I���{r�7�F/-k�jk��ֿ�[�ZH�Dڼ�s�,��.����rV�5$�M������g�x�S?\����,C,�b)�ZI����7.hF�+�6%�P6�������	�<�yý7=��I	�49qn{R܇Ry�s���;�>S��61Tg杸 ^u�S��憙j*5�ҿ
�l�8׫>��
��I*T�<v�O��|�0Pc���D`�HxNC^7뉩i^M�R�E�����8F��"9��>l��T��Q].��6K�R6�_��Źo��{ʡ˨Os_G��+ɮƳ\b�ш3�wۼ�>S���>M���?d��(�Ax9�u'��h��.[�g��]5��sN���'�웡�t�X�h��ꚛ�2b���A�n+ɕ-���͘<�蟓�if�&v��K*�g��-4�;#J��*��C�U�S���x�9O�g�����[�GJ��(f��x�/���6~�X�0�?�g�L6�Q��U��z<OΛf
�zc�y�yͶ�-y��9/0v��-�8
�������6/wT\�w]���*���I��MV7��9̤N�]+.����.����w�cu��^��*6���G�x��㤄W<�h��P#T��׎����zFXn	g�������+lW��(j�ŭ������t�݊�݊��l����k�O�l~X|S����e��w�U0�@bf�qyݧ��zm��9����a�m	3�?��i�`zU��[�ʪ{�'�Ǖ�L���:સȍi
u�+�N�N�z�Y�}N����u<Tv�|7|f�~��tzsiN&�Y�8�М��������kR�m��:�*wʡ�N�p�X=j�Z���N�z�W:ɣ�V���T[�r�� )�z��w	hOm�š�<���S�A��:�y�vl��}m�:��r�7}�fTci-�hT��k1ո�vc��(G!mznش��O���7U�_�
�x��N*!"?���T���Rm@�B����G+T�y/V�X�7�l���eLW�V����4`��e++jU�5��n��'
YPZڊ�8�uj��[�5�,����0)�E��hۍ�l�7(9��]��:�À��>�|�!y��?�ߚr�7W�;v�`S��/ǩf�y_�0{�,/�H�c��Py7mr�&��	�#[7�rB6��A���	�Fx,6	�G
7	�v����-�׍�T@ܬ�ێ�D�̱�������5��Oqd��V����w�w�<������9�����O8C�7�y�y:''����p��?L���� 0@1P`��?�Ϫ6��o��躼��r""#���͞�fgVg�_���:!12"3AQ#aq�� B�0$4CRb�r�c�����?���K5��fV����f�Y�fUʃ]��R+7��RO�Z��Vej+Q�Z���j+2�Y���f�Y��k?�Գ?+5�Z��Vef�+2�.Sϟy�'��	h&�d~���C�rkU�2�.s*)�O&����G[)9(��k�ߕ�fZ��^@�(��Bw	x��~�r�o^���h�rX��P�9�eP����'W�J�'�
�M�56�5=a�N�58L�eC8,���֋��L��i�J!��S`���g>HR��ϗ%��,2��70���?�k!�^�{&��0�5�G@�R�&��I����~�� �+ďd��fHRi���Ma�vq˛��̭K[y(�,B�#��mjT�
)S,gU57��D�1���K�a�%��=шOE��]�5�Ӛs���-��!��*�w�#�nm����c��������aq�D;�Y�����i����~}���T�@�AL5�q�w�/y�uZ�g��
�J.��,eL���N{w�D4t�@I.q�b��j��:��m�b7q�-�W�D����	��8��;�wr
�K^�ۗ�]�'W��]��觴U�ԯ	��6�7n�]������Jw�nJE��k)��6g�a3k��P4�*)�{��I�#R��1���Ϣ�,�Yw�,��g!oU�t�"y��q)�@��,�B�E��Y�֞��"��M��
ԙ��
���&.i�{H�f7�/�<J�l�s�og��ԃ[�g����jc$����]�d��#�J��[^�$�j��7�tK������2+w�JŕCx[*��598d��˹�9d0�JI��44��.՟�ugk��S�M{>���M.�X�Ml�����?7�CO��5A>#���u��Vr��Vϳ�-��suϢj���5Ž��1��|&,-�qf�[G�z-s�'���������!V<*y^���[�"�/�Vv����oU��{��$Z��t�,���R�5CQ��2���qr�����l�M[:&ע�w�y��ֱ���Wp���H��<�ii/��Bk��Rj
�Xi[��[*zoT�XېL���
D&�Z>�3���A���&����;�{��P�wo��n�;��P��6��5�]��氼a������ѐMm
n/��P�y����y(��I\BD-�S�en�`��Fj~����f顢wp�s	V,��R�t�cc������M�y�;q�B��5ג��(���kxq���?w��A�P�T��c�0G4��ׇ3�x���5�F��P��F�A5"�D��&���)��'�����Y�G�
ϙ��U����]ܥ�]�Sj�8j��6��"�(�wJ(w��d<�������gS�eUeW�eW�i��T���S�����
��u����%co��V!��^���MN�I�?? ��a�hw=Ktk�O-��:�7�YHZH�Ӛ����}y��9]ao���R��o�k�`'@��(Ņ�B�f���\�¸�/oE�?�Q�N�t�>�Cm*�?>�֘�|�,��~k5��f�Y��}��k>�PܖI���9�ZC�3�$��Sw
�Y��
q�#�OO5�z�tM�%�H�� {(-p�
CO����\:�	���oD��|���$)��$Ov�*�?C���nT�=eN"��'��v
��*��tw�Xq�
���]g�Yd��C�N�Ž�G%���jɋ{'�-�
ʟ��ϔv�=qF�q}�W8�o�$^U�j?+[��{��za
�*����{tW�P�K�k�>p���>H81�N��%Oњ�fVe\���+2�Y��k5��gݙY�fVef�Y��}���%˿��T?�@��fK�\!=���U��(q4���.&U&\T2�f*����^�^i�N"�G�1��uR��j��uX�vv�ϋ�Siv�M8Wv�ڦQ�Q���K-k]����p��Vp^k0�Y�y1�,���dյ!k}5�l�X%Upȹ��G*��<�JeO銖�T-leQ|n��SԕT��U�{Q)ѭ��T�rmc+���RSE=[k*%ܪ�U*�/�s�L.�Z��J���`\$��j!^��J�Q����* ���r���9 n��RV�,2Qn"���w�i^@���փ��8Ņ��m��$����sf��0ؿE��,�4�\	�ɘ��0-�wa�\e"��U�
�%g�-]ڂ��-��<ѓ+0���[�aoa_i[�ռ�-դ}#�y�d��G:�D�*Q2#�����8��lz�;�$��o�F�����'����G3*����NZ)��q�n��h���Q�v��G	v-�y�;���0��$�3�ӊ�%p�5;;�����L�e���aG�u�
�0�]�� ;�C���.h��}�B�f�U窙0���6�������q	����M���=�ĈL����5�wp�F��k&��-?��[$��i�(x���Fܚ>�v��6�n�\>Q��7�S.p$?Myx-�]�n��
q��2�qT����ݩpU�w�����ur��"�eo/�oG���w[�n�	5�ž���=�h݌��	�3E����Q��z�����ֆ�kg��/~�8���>W)�{.
�9Bu;+�,�+.Y)ٙZ
�9
��*0=N���G!^V�(�-�I�
�ܮ�-N��b0�/�}����U���/�A�
�B�[�0T7fV6GP�.KV;R�R����|U�q�W赭ǣ��ug��ї]kxʶP��;���ġ���Q+�	H��Qq���;;�4�x�[���ą���俔(;bM�迕0Sb���~��![��_�=����)�:F��͍L=�U�;�{f�+��(E4��N�p�Z%e�$|;�.�N-Z��yYe;#�dV+�W��|K�P�a%�@bw��1<К�l���+����9��n�Ĕ�U�30?(�7@�zd�\�b�v�tW�k�ċ�,�3��y��N��Ϝ(i������]q�!�9\E�Z�ߒ�u�C���
0�³ڵ�o}��x�`�u�Va�"%�d>�`��P�5�hT�g��������%4�az���aϒ�`f�j2���p�ap�-�4��O�l��ps��䷩RϢg�ֈ�B�
oS\+Ni��^�C�*�܏�D�8�]�V((�ҀWk�-�ʓ�	�VM���ta
�?A
�{��Բ�T� 0U6�6���X6ubg$���n���yX�*�Zk+
����F�U��Uqs\UIJ��1�kGxB����2���թ��0�%��B�B�J�U��W>��l�8�_�ac�j?�:����)�$��Z��/Ż����9-kZ�j�\�.C�Ƹ*vrP;!K/�^��fJ6nG�-��iwE��&
�%i*v��怂.��9Õ��ӄ��9@*9���?	�;��4m��OJ�ly�'�|���[=��� �	�PD���as.`e��Mڷ���0{B����AX�a�Sw�:�dӴ�UJT\Ug�������xC}�S~��[�!��+
�{~�8H\6�'�wL vP|��)�[�����a�#�
�e���߅��V��Ь�=���=���YN�|)Z"�թ8.Jf��`>��(��C��V�Ԗf�a�*���+�湩��O��tAt�5jb�h���+�ߕ�}W�+[~U�ߕ�o��ߕ%��n���\F��#~T5��7��q���'��~��S��XF#�%Y텭�Ajl-M��
�+��mW-�4��!}��ھ�x��X�NR{;J���>jf����Ԡd�	���7�P������dī�V������a�z���+�O��f�|���E�5�����̄	�֎�
�V\8�Z-�Z���#���Q�0��I�Q8�$�V���l�uЖ:�p�aEťi+'-���E�VF˚�0��?F�/�����<[[���BP;Z�rP���2�6�."Ji�a�:]�>h4������b�rO{jԍEqj�~I�h�Js�Z�&�[�~��+=�2(o���@c�8�q�Nߕ�n���> G|+8-Aj���MA�jj�}R�w�%��r�SG�a��gI���8Ԩ�6j�S��HC��8��_�qi‡:�p�G~���{)���U5wS�Dp�a^!i�71.ަn�H���,(�eZ���H�� K3Wb�3�L�〫ٔ�+t@�jUԫ�3eo�"��Q
��g#�?zģ�?4��[��vrc��T�������gu����L|)wf2�m4t\"�b�\���[���k�.'��5?�������j0�0�5�Z��Y���0��VB;��&!1AQaq����������?!v�(g�c�P��é��(c��A����{K���ǹ��0�r��,`E~�O�K��.��ǁ�o�C�s6�qȕ��My}��;?s��=��<߹�׹����eǙ�72e�̬�2����r��5o�2�-?~xϘ�븓��IB�<
cG���3��[�Ÿ;���%c-N�/1p/�P���[5�� ���
>�\�V�,�<�*z"�\][��Vh�9e�-����^��8W�pz%c�C���D:k�ɀ���n{&.����z��(��;��"��&Ĵ#Tw�r�
7�QY���O�Վ����Y�e��}���L7�B$F�l��:�1~nYs�ЏS��PTf
>Ҟ�Y��c�T����.Y��?Hț���bX56o�$^��b6ѩ�1��3�J�Z��-ye��K�\p]�.�`����i^'������#��j��[>tr�[*1.��3����G��
`c,Bs�(2��
�@,s�P��Ư�7�!0��W�DS���oO2�h����:%ڃA	�\����U��"IV�U�_Ĩ04�n����X.W�QM�v�wFs~�`e�P�\#	G�i�j`�q���>%�Z��p}��j��g�`5�
��*��x�8N@��0���?�d͝<Gk|N�|��!��Q��4��I��<�l�V�@�h
��J0����~�r�g��;�}ܶ���YR
�h��r��R[�fg����玉�������A��=���m�XJ��N��R�k�������g05a�x����s[����*��XH�G~!D[9O����j njG�}j	�3�z�(Ź�,$<r���j̊���1D6�p!X��i^����9P a��,�N(ic6��H9�#�R�`�q],���V���i�'���c&(��Kv4ʗ�nN��6�)����;��l��T�(�6���7����{fDs���3mՕ�	��}�=�s�P�4�ŏ���¼�5�G�;5gl���
-��v��aI����۠�l�e�D�]SJ~1��-礳 ��2�� 2��z��R�z=��m�����0Di�!oj�r'��N#�C~�m|�c��R�н��$]_�)�<h�MZ�?I�KKq9"���n�B�
�ܺ�~�_���u�a��n
���Ev�(5��,/>/�a
�E�4�Yx�K,���}P���gǩa'%_]�2���c���A9�J�#u$m���X��C-�?�ʿ'��~_�q�PY+��c�5�ft��Ӷ�3�S!��1U��e��s'e��w��e<���71:�0�=�b}�zq��k_B`�ʹ���Vڤ�m�Y���u��&R��+�?�5�C�ȧ��jR��y[;eEM8���ttAS|,���/�����O�M\�F�َ�ϵ4_<�(8�f��F,�-��;���"݁�$�<�s�
�+�b_����V��K�w�ќ����J�m5D��1|��;`}��k^��U��1��Z��`m�VW�FV�',����TmD�Vb�E5�k��۴:	��Y�P��n�^��L��%Y��lR`�}��Dɋ3��e��l�)��v��3�V��*��y�{ʀ-G�a��.�+ ɤ��x���o�.膐x�MYȑ3f�Q����g+���}�x�-���zI������A�#���P>%j%�5(�+C�M�eS������A������3��|µ�s�ަ��O��7W�
؅�v��Ss����C��
�<έ/Ã�r��=��u`S�\��U��w6
҃�������x��6/�1��-������CD|��S>0���=j8�H-x����4_���L:t���(�\�S(jb��_�&Х�P�Xl]��n�����e�������v�>�+{,��\m�oޡ����s��L8��Qq�����(y�C����|�R!��\��>�
�>n�	Uy�0`�6Q�뀭�` XR�J`�vF��'8�o�dx�R�����/�gu�̰ơ`\L��G2�u-r���K�N�_Bw^��̲����͕7rnx����b�)€'K�ܲ���k��`��[I��!}�-@�� ��0�w��ZV
�G��4Ƹ�r�����:�� �Uc1�6��Mc4��d�*$m�601��aG�]@7�\=�.����m	��
��&���l��1h�Y|ʑL�����\KpYM�[���FR�MN�	u4F��S.��[�OAQ6i�d����K�����t��
;��2����P]�8GW�ۗ��Y�:?L(hyԡT��e;=��ccY~�;�{��\y�5�Ga<���az�^[�`�� n�d�]��<J�R������3p�[�=��P_<~�@A�ĵ���0)s�&�[���A�J��F��4�ȝ����78	,���:�R���e�ۂaB{�ɻ��9e,�3s���S��V��	�+hi�7��vG����\{cr�����2/�h,���WiV!�s��R̳�=�0�*�`�s3������� �G,�2M�m`ġ�J��/M�o�e�㕢�
�f�^c��pq�(���g�f
��)e3*pp�Z	Ϩ�����N%ы,�f�C��8@���"�
7Q�;����c`�h���QX�a�-�o��-����?�!��l�/J£��Q�����X)Y��(~';�^*n�����z�e�@��w2�2�9��6&�g�.،�<����a���0�a5�B^{_\bX�kơ�y����R�7,k}B����%_X��]gZ ��$�y�C;~�|��"�x�%�B+��$���5+,�T4�ӼJ�\ZC@3��8&��kz�e�����m�� ^ɍ�0Ŏ/$*���XK�Rezau���8�|�U��E^��ݜfS}����C:�^�c��AM�.V�T@_�X
#�}M�)Be�"��hR����� _v��	���ֱ){�Cn��`�C9�%
)|��pAjC״m��@qMC4�0F�K8��V9*����	F1�f��Ģ�Y�C#����o����x�����:
���0�l�w�T*r���V�!H�%y��
���������5-�(�Q�%���9�8AX&<�T��AW���@8z%ky���u�V���[,�E�V�t��%����7��p
�x��I���3��J�Aj]�b^�nt{A��
�V��=K�dqG�p��bϖ\����:F�ʾI�,#��L�o��\�}�ܨ�y�dǶ"�u�L&x�,qr�4E<FIR�#��Bu���'*�L=�X�:e0��]̷54��¢l[��h�i�a�,�}ycL1R���]A�w�)F2���޻�6��s0��YܤEos�6ƌ�}ƫJ������,�q��*eP��7-z��}��ti��}@�(용Q�9��ܢe�4�TX��,�򟀕�������u��	��WS������ 27S	/w��P�:y�)Oe��ߘX��*�
^�e`%h@ L-ĵ�󫗴*��QN��_�w���B4ry"B��dy!*n�9g�Z�˦6x`AEGJ�]�wA�T�'4U��:H�7WC�a+3P�a�/�=W-�r� ��̻�Z����	�ZYKRS�_��0�ݱM(�q]?�[Ŕ���%����.8��f�j��P���fg�P[i�\[n��^jf������+�K?h��J�
�|��c�.�*��tp�-�|�,�n�-m.%7�"nQmW����?>5�ְ|J�*�G����h���(����ڇ�j���N��B��˄o�O��m
#2y��X��Z�.W�h������W�����P�=�/]��q�I��I֏�;�.�w��\+�B �8#r��� ]r�9�q��2��]��lҊ�1��wĦ�{�-��[C�w�iıd���#ޠ]���v̈́[6�J�=�(�1u�G���D]��:���ζ��Mr�e�
B�W���u�
N�9�J,2ࢽ��嗭���
��U�˹F�Ѷe�UN#�✦7O*��U�3(�"g�B��5�b��HB'�-Jyfd ����W��X8"9���O��-�D��s��f�����՝M�v�楧�8i,������,
�� ��u����i[�\���ra�L��r�����GA�BPh/Q���e�+��t�!�S�*�yC`�̱�^f@���qe2���
���n��m��14.�Y�0��(ZZ�K�OHꥐ�&ىX���>�	���2��
Í��j�i��4)�2���^&�{��9�=&F�)WQ��r��0��,�qlU�&�H��l�b6[�>�j$X�Q�B�J���Y"�w��	��?�U+��;�vn^f�m�ez�R�f�p�%ht�熻�n�Sq%���	L %Vє�SsAm�ʆ�t���b��I�ŗS&7�*/l���I�=Dݦ�n*#�D��X\8?��<�L�ܪ>is����*3�sh�����JňɨM!Xj�/?U�#i�����d��&���;R��dz=K��œ:�9Np9�W1��Wc��W薖Ҭ�����2[�߉�/���b�)� {U(1E1b'�b�6f�y�
�8�V9��ʱߵ*�yԩp�L�#�}ܩ�R5��ԺW�Y�C�&3�_�5�Lu��4dr���L�s�
SF�DU�z���Q��\,U�U��Z���1)����8���⡡߱
K��l`��(�N&��y�r%b�S���j|�^�M�N\��k�����y����Z���C��f�tUr]b*��
�F������n��S���DW4N�y�����'�]m��Z���a��:���m�чp@�m�AD�_q3��!s׈��۸4|jg� �?2�K֦�5��y,�����$���q_L
�)�j_;!S1!����2ފ�a�����0�S���g�*dlD�.�������4�U_"�ŅwI&0�w5J���jb�G���_�y ���6-;&E/j��h�"�3/Y�S�x�
�ő�]��ɺ50�x�X�EEEs+�s9��b2���3
�O�1טP�[��<x�f�8�
Kw ME��-`��37�Ox{�	��
ͽ�ٷ�<Y�4{��V�EE��n�S�������,֡��S���ph�� ���j$DP�b5�&�;�a���/��:���%}K�ڂ�$m���X1��i2��X��7��3)��5/������"��(���ud���U\n���C��u�Á��_h�/��O�eي^��Zd��=�\���_1��wb.�]�]A
D�'�L�-TWt�`��
�WpSm�J6=K	{��o8B1�d�(�V颎��=��#��)�0Wb;Nes�
f�<���sS���Kx�:��m�wP���13�C�C�����D�3N3���r�a/�e�Mn|�-�9�Y�[y�`����2ܦ������a (�n�,�n`8=��n���{���́�0c�:s���gy�6�g\Q����ms�OB�`�b(?��#��T�f��
���	]�`��e7mD���R�3.���b�
U_rߖ�Z��*$�;��+[Կ,�'�vY�����ϨX�ߙY�(TG�9���R%`Q���&0�;��ۉwl�qg,�I�K'�<`r��#��5q49?�w�q)/�S6a�W�
��6
�e}��!]�8��&��B��l��6Ϙ�&b�>��SUnQ�U1e�J�[��`K�4l�d��:�q{3�]{��� �t��&��|��@,�����[�Ģ��&��w1����.���y��ש�M�|%N`�	��ƀnSO �2t�
iTD��A9;�k^c�*;�y���(m5��4����r B�c0Pw�
�i�alp��<�,P��6o���=h7��+E�{�Qm�뙲/������[�ŧ�>a��Ԭ�jX�Q�MgU4E4���ò��+�+|E+W
����u7���PG
NF�g]Ës�Hߒ��]�{�Y�	�%Z�U��󎸠�'�j�k�&�����唺Ɂ8m���L�:8������Ϻ��>H�@!�'�r�>�@�X�������/K+�>�"~�܍,��[.e��C��<t:g��&��q]�
πR�\�45�t_?�A�m�+���y�Q�d���:�e�2���d?̳�G������]Sa퍜H%ف錿�������ZEF��!T�/��/��I
+X�d��8�0�,i}.6��%�۽8�>i-� ���CX��6�W��8U���^!�]馱(���\�o���p���2�����%���S�� !@01��?�Ѕ��K�<~\�GLyG�cOLc�Lw1��Ld���)B�����c�f�hѪ�6:��hѣF���b�<�f���B#�Lt���!! 01Aa@q�Q��?��D$��/j*%F��s���x��x��	a���w
L��(���� ��V-�bbe��ycxH���Y�+D�����MQ�4~ƪ� ��]�"VJ�?�Z(n�7�eyM�쬣l����С27��1Ҳ�l�)JQ2������J>����
E�)�,�?e��\�LFA4Aw\�)�/�'�o��,<�f�ܮM�)o�҄��B	z��{######虄�_e�'L!1��%!1AQaq����������?�AZ+�������X��Z�*��(�`��+��[��}be~�̸)a������݂<ք�s~TO�cH����y��C�q�U��/��O��,��@3Ma�aB�x��{a���sς��|����k$�|��z�yro;d]'G*�OLD���.�>q�F�{a}��F-鬉Y���$���?s�_��.�1�~2���c����/���ۈ�y�G����F��;�<�x�h%$?}a6�]���@�}��4�TI4��{&5Q�y�+x�VL�ӷ�.��l�0�$Tq��SB�t���h�ָΪ��$��Wj��x�F�u�8��!V�˅EU	-S��3�����$����~�?]�F4��c�сd��V�������nH!�}r���")�CD����Ɋh�J|�O+�s�~�y��pg��5y|�v)urFݹ�!"��&����	��D��~1b��}�3b���9-=�6���~�-Āq{}0��YO����r`AkF!@��Ga�P�Ru���M��sR_튵��g�)�}�����ۉ�[<�|��!-[��tad/3����e�y&�=OY=���S	���?X%?�G�x=�R�C�&s~��x�к=,�ܩ=|��F?�:�i�R�w��h�yK����o8�g,�VL�LPȭ�]z��k��X�ce���a�J�|ߣ����b�HN/[xy�����=Q����I�
Z��Kb���wߍ��1E=D�_ӂ� ���G#��͞]��2VNQ�H��؏?|�����{��f��J�����Nr��+�P<�)|c*"=�ُA�Vz�k�y_)(П�ăþ��Ë`x\�K���
�N��ڵ����-����t�_+�a��)��Z͋"=��?}�Ƿ~���x��(��
��0�V��_�)Ԟ�n�@_�<n��x��� ��k��s
��y�GP���I��0�#����L���4V=�$�d;�'�s�ܯ�tX
���pݘhKN�F�߶K�g�ao�w��A�Ar�P�[�U1��OC5�q�8�qk�z�e�hε��(�Pz)���B�{�>}0�{o�Z�xf����N���PO����$�����{��=��� H��x0C]�`ݖ����[9d�4�GY��B>���k�ƤF�g�sBxV~i���:�p��Ž��r��k�c'D(��������V�e�î��F�q����4����0�(}_������R����}�@�^'��{�kA[z�\[�ӝ�I�qK�|i�V�&.�@=���U5�|/�������Wy�zIxw�α��&��d"{������b���4��p�(:[����M����<�ߜ���G�߮H�'k���2�${��5:��t��>�w���b��_d���{�}���6{��%��1]�Wj�aX��[��Z�0F�N�@Ay��X-@&eK���/���bc��5k�N}���Z�lO�,*�O.�L��:<`Z��K��?�=����S��򐁴��;��"n)^�]z�j4���\WM��\{����r�ے���n]��O]�c�IMK�6��;�
>��v*������q�F���`���Zz'�T��A�e:�]��C�25����0.����}��\N�����$�8��<�� �׾�Bo�剮	�1a�*��<�[��P����T-!8;ݸ�Pk��.K(A�uy�3	PT��9�U�lٰ*�qJ�|fk�ȕ
��\���yq��>�����Cۋ��y~�т��5<��l����]�1e0|�5�>�5(6�G��cZW+�c%`�&��?U�$��醈F'�P~�#L�:����Kڼ��~�Uk����������Ć��w_X���~�s�w�woɚH��Co��{�w�`��?�|z�5ػ~q3hA��`c}zæ���t��lW�����.Ap9W�'�=�r�4|H��_�2dG�ƌn����#��@�4���zt}䳧���}��ֵ����z����Pg���8�a+-y=�3,
R;��2Xz���,����ڳ�y�c�!+��
��WR�H�p#�����`u�]h��Rvn��w�.
����?�
;kt]��cx����Mq�:{�]u[��#Q�n��k�E�o���0���z��s���˜	_Nx�נּ��w�ͽ&�='^�x�:D_̟X�������#�R���L�J�wg=k>@@��5�a+�$��
�>�e}^��"������W�X���k�9Mhj�k�\b�i�����DZZq��R0�����A�rws��(΄��<{{�	(���ys�jj��w�iRYvO{�U���^��HէG�����	��������,0J1�΋0�#?+���zA}&[$������3Yd>�O�C��0�P%�t�1��+dkf�;�b��1�䂜A[׌I9a}��!�W�<d�Ā�J=ĄD��r�8 j�RI��!��Z�Rs����dm5�x6�p���0!�o�:FH�x
`Gn�,m����
����0��B͓�0�[f�sYkɅ�����T<�z�d��e`Eh{��P�6u�v�p��A���������؈��x9��/�ZŒ℣��q�c_�_��������
t�`�8��|��cb��_|��h����ze�o��Ĕ��EM5=q�Z����2�%�0U��#�X-Dd��\`�F}w�y�)M�(y��Ǖ��8�ӖRV�U}�Қ��p���0���Z1SN_ɗ,��
݂GsOD7�[�h�������5��1����-�9�� �B8�(#�$$�3���-<�8�<��}~0�Vu}q	Nx�Ƥ�Ʊ����g~2���5[��lz�(�y�f���,V�x����EY�l��"
�~�Lu�F���|_�w�`@����H����")�0q/=r���&��˼f���S�Ps\
.'��[쿣	�͎WݘGZ+�U�b��у���UQs��&F"��~�`B�{�=��
vh������@��hLeDP>��<���-�XNOE����ޔ����q���|��ĕ��X�ֱ�sOX��6�C}X��+�,�{7
v9xa��UZ^`}K�0T.8��s�JC�5�`F�	�L*ɂ�%CȾ��Z%d_�b�"���p�,M����‡-�2���p�;�Ȼx�>��*���WɄr�ӹ��+���I��0M���7��� f[����ͮ�i’�ʟ����  ��% 
��Bg�#P��4�$Y�cT@�8�#[�8�<$�l@�c�!E<.&67�{�"'�Y���'!�n��"i�$>��mTn����c���}���>�Y
tw�����9e�W�8Hs�����;��T��b����=m�P�]c*;��v��� ʼn��?�Pt�� 0�1��I�F0ϥ����&m"�Y�+�m���Ӂ=ϧ�#>�rb����I��&j����0�x�lB�����񂁸��Y�5�y��Dv��^�:�����T�{�`�
���Uo�=b�6��47o���Y5�<�����e��A�ց}�:�,���.@��!�gǮ9AiE�_�4:�!EOK��„P��y@L����4��I�h���f���N�I�.�vzbz�<�96��(�v`D�<�[71'+�nE|
IQ�#O���
�*����}0�T��?#��)��f�c��
C��Ake�����zޱ�dt��^1rE؉����.��k��r�S���ߦQ	_��m�x';���C��ŝ��+=�R�8ucKԖ]��5,!���m����i�|����۝�E�����ekk\`�+��!�~�5a�^:�,�o����_��᪾��Qaa��}�V�|�w�
�К
E�� ��m~1$�����b�B��5�����<g a���ݭƑs�{K�¢AF��zI���B��+�Hhh���D���,�W!�F�
7�=�8�$*L��A|w�
��;s�<`
��@9kf�@>=������@螃��gO=�l�%F���ǦPjA i���)H����i�K�~3�L�w���/(�5�A�dq-Q=_���,���a���SO,5��.�.�=2�ʐ�]�?9���cIaU�e�e�O��C��#'2IX@7��8U+��,Xf���a��2hz�:��r�Ɏ��*
Ms�&��U������o�i��o���,�O�
��
��Fs�Lt7�h%CZ���[�=��.
/3)���7��M֗Sio&��6F:+�OxvT�{`/gW��7��l�
܅&=,��6�쩐|��P)����	j��DĻ^��0BXJ���\c܊�m>�8M�
n�No�$P��.X���)u���>����1�D��V���8
��c�d����.<�(>�K��dG>`�3�CSX廓�ufǃ��@��X��h�O�����?��[����V)���(�\`gHz�8-b@����B�_|�I�L�@'��2����cR#��l0����H}�9I�ī����閐u����=�9�h�Z��Q�����G!�ۍ�^���@�vO8��/�_�*Jt�����W�����NL*Kbp�C>؊W�[�����{<�'B5Po���х�[NJ�<aݜ���X�m��]b�A���D�G���Z��l�,�F'ξ�F�t���K�ha���8	��K�ʹ����a?��T\��M;���h	
"�)�P���,%%i�X�_��[��|,u��9�P����Vd�,�%
@꾍�MJC�>��m��듣,�%��B&�œm8m�X���D�T�Wn�$Uu��!��G]}bt
�9@�io�$J����&
�\�p�ĭq��!Lyo�Ǧ-�dr���[�E[�f�E �ɒ��Hh��ضH�׶P �
�6%c�����H\ѡ7���3�*e�X���s�T�
��� �u����K���C^��ߞ0� ���>q��P��9���E۬o�����8���f�6���Ƿ��������߮YЄ?,L����Q�[
h]^2�� �8&�lz}�	h>_��P���8q��&�?�������W;,^�m�T�+��%㫒�/n��r	�w�!tv��9�%Q�*�C��YG5�M�r!qP7�X�h��9��
µ�X�@c�^Lبe�J��q��R�0ݯtp���z�5fG�^rn���K�B^��r�Ԉ��
���߼�ɧa��1;n��;N_�(��9�&�6�@PW�xގ���&��ɱ�Ĩ9]����)���<㘿�
�rk�+-!��%,�C4\z؏�J�z�Ƴbu#]�|@\E%C�?�����>��k��0R�=k8�aǢ¨��$ŋc�}2�v�G��L1/
������Eo�.�_��D6Y��F�,��N 8�d�N� ����ج���MtJ!E���.�~p�*��6̓����y$̠T�w��$�mb�.w�/��~�L�\u�f�F��Ohe��Q|�-�L�G���Pq�B���,�P\lG����]�X����k�`^�ԥ��Ցϋ��JBׅ��<V!C��XvM��5�`%�`F�k-I��O�b��c��Q]o�"A�p��K[�?x!�hƛr=����(.������
M���F��r��w�"�\����szu�x�h��6YK	��R�W�WR���==1q@j�Ɋt�?�s|q��{��B���Z�x���%,�I��_9��
!'�c�Y�Ì�0�a��<��G�(�Z�󮉣ό\\�Z ���z���ɭ�@Y<�	�C�
���
(l߮$l�h_�W�`���r����ͨG��Ls0���m��:<�2�OI�� �9�1`qs�k�;�W�.֩	}��B8�~�&HQ�XH�cBy��BzO��%����͠��,eƺbp8�XW
�kT<����qT���a�����>B��C�w��3uU��>��SB�j����-���0����Z��oӏL?�e_��hĎ�g0�?x�e)�'�n�D����*$���q:�
I�'��u8� 4�XLH��3�j��S,�^+��T:w�����t5 �w�X�Q�϶ST�|����<�`��6^~�r����p,:���x	=���f��,nH�����o��t�~���@��"Ƣ�לA2U=q������f�E�R4�������\�T�_L+J�U�Bs����
����I��(?|���*1�KƲH�<�ؤj��2',a����p]�o�^$�+�|C��O�Ɵ2rG{��>u�"$@��0�R?C�X�G`���tyǯ��5�l��—�0��R��Iw���!h�A
�����C(U���&%����V0G��5�<��߷%���{�\h}2�X���n��t>��h�DUa���g@�T�1�n�H����	���M{cT�@�^)�-�jÚ��8D6��_�g{�քk�-�"$������_�|.Su�jC�.���ZNSM�j��жa��Y�xy��G�K��+��񃀗ÿ�a��߼B��pu��g ���@�U�!�__\d4=k����M����7���-��J�5�8M<�B�/��\���ܸ@0T��R̗-m����(�8p�1W�%�>$]��7�5x��y�Z�ȭ-�Z-���0�}5
O�(�!4 s����/Љ���e��,��3vf�S�Hc�6G&��_���4
��g�NLE`bzP�u/�L�"�o�9�
;���e*ȿ^��ج�[/��岅s\�ib�\e�j><f�s@%��Q�9q�k�`!��;��q,b�J���b%-��p��5���:D��aPї�X��l$�Cã�w2�	-�yp �4N�2��Z�����9�e;���p0���L�+iV���-�LW'>#F8|��䩼�1�!��//�N�-xb�bMSM�3��D�9ֵ�ؔ��K�}f��r&D�z�ؒ�i�%���wYH�[^��L.D�\�lR��j���3�l�A����ά�g��q���W-s����(q�߲}`�t��94����"�#��S�qΝ�n�d
$�ĩ�D�ɷ�	F"�C@�pE���a��K�Ǵ��7i�
$JAg�jH�n��D	�o�w}5��L.�
��Ǡ���*_�h�)��)�<O�X�Aӣ��K���Tiu�s\��p��Ta��d;��9����U�m?�s�QOe}&)B���s�֬
9���a1'�@@���$�q��P�����P�������A�v���` �^��M9��R���Q�z����U�D<�7�R�;}eTdi�>�x���}�p�ij
��bR�k�?95�����&09�y's�6�D�b����?��L�A}<��@J�
����@.
<�)_�a�E8r����7%uA�j�P\FP�s%ΝD��Xm����@U��t_^w�ɖX�pi��r��6�����Cz�1���M��h�����!�D�-�B�q������
EK뛢;s�8�WES�~r�
n�X�1�M���/y�W����q���f	J��+qH��y��'�bۥƝs�%B ��OG��Q��zL��_)�a�D�O�1�m�r^�q���牫ӛS�	<$����`�=��
�]�X$T[�Kǜd6������&����Q�
�
��
5��l.7K��'&�~�eIO�U	GR��X�����!�
74\I��D|��w�� S����HR6C]Y߿�)ER��p��OF��c��'��F��Q��ː"�X����I�R޲zmB��*K5E>��(R���I�T熻^8�\ �������	P�|9�)(Ley/\����C��9͍L�0�(�Z��������f���{\=�`����J�*q��ܗݨ�zw�����y��Ԍ�T��/�>�
n�!�^�'�=6�r�}t����~��,+��:�����۬�Ncy�� ����˜P�w=}�Vlc�(-�����	ַ�~z�����k��^��r���Q�r �<�
4��y�
R?Q���.ϖjN�D/������
&�w�����5��'l5��(�:���"
Kw���S;���L>�c���0(�YnM��h�8�%����~0��Xr���-�/�bK͘8�Pv�GP�Jɬ�VHm�ܘ�ڋ�m�u��w{��Pj'��q�@��<�&(Fb�O�$t(:��<c@��Wr�����#�S@x�\n�vo�"���	�%a��י0�q�8�E�Ȏ�J_���2����q�<^r���U 
���4*v��"%v�h{�n�U}0$=�}0�a���o�Q�����{��A�#�d����H��[�<��8R�N�7��88EK��E-�+�|��_e��[.�����T����j�ṴG�Y���˿����_@N1z��Zu1�98������wT���vd5����
+N)���Q|���M	�`�Nˎ�`"37�Ni���M.Ã����ӟ�E� ���#��|f�h���z��0b�u9�ĉn�e���Y��7
~��`'��a��u׶#�C@�����V5m"� o$4TC&[�����2��������+
�R:�;.�{���e���$n,�!�L(k���kp�Y&���
V-t�u퉩.ʡ5�́���p
�]���ѽ
����d�3�4m=?��E~2�`��k6*"�����N����v�`�g͙*��|�R�nS�d%�����@h��M�ƚ�`>��@��	g=��%^#�V�[����F����Ԁ+���l(D`HZ��!������-3�;멍��袹�k��	<9�>���}���5�2�m���R:P')�M#=��/ q��<`4;O� 66���26�,r�jx�
��W
(�)�řGp.u�>ŤQ֎́�toD1W�mr�[V�i�P�v�����X{�B���|\}�m�g�q�pA5:��d�.���4<�w��ʩH������o�g��)�� �ozoì�&7A���SC\bz��(N��ƒG��o�%���S��b�PB7!97�B;%��f'�2EMs��5x��k���	�9�@]���sQ�1a{�.��� j���y>�(�4���a���w[�?C�	qL�t���u��F�Q��p���|̳r����"�]`a���@kJ��X�<�&!Wi;�w
��.��ϼ��?X�;�M���P�M�X��m8c[��K�a�ZTh�jֈ����'Į��rSo#�x�9~2�x�8���0i�2Š���Yl���MSm��������w�B�~���X��0QQ|a�m|`�醭U��,���*����`�w����X�m޺��"WF����h�י���뱵8ÜX��U>�l�~>�ZMې����f{�'��2�.�"p6�{c7�����b��'3o��;MW`G�7�}��l�P����ÀP8�}�1[�e��s�(�]I1AH�5Ʒ�WRI���BP���U,�-D��nj�v���1ã�\�z<⢂�����;['�^ݢ��s�z�$y�b{�9�t��"2�k�}pV�!ùx����tz�,,i�~��.���`�%_�8CW�桞�E��kU�J�C�M䃋9��@�8��̀�K�4�~�[<��)�i��_�d^5]v�U&F�H��M�e(���I@>[��j��;w��=���5�6�{���[L �A�#�O�բ�@����Wq;Ͱ���Hg*��Ӽ}>�:�\ ��)��Yd��5���n<��؛9b��e��j��DB ���w�}12%6��\j��F����`:���Mm�?8���jw��~XWQY�>|�A;�V�J"�0�64�\EQ�u���J-��2��E�G��7y��q�	�!&Tj�<�����đ�=zbA�Jl�
�`�y��s��S�0UcI��_��HPAq��9&�g��widgetkit/wk-styles-34547048.css000064400000367707152177723720012174 0ustar00.icon-widgetkit{position:relative;top:4px;width:24px;height:24px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-24-j.svg") 50% 50% no-repeat}.btn-widgetkit>i{width:18px;height:18px;margin:-4px 0 -4px -2px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-18-j.svg") 50% 50% no-repeat}.btn-widgetkit>i:before{content:""}.com_widgetkit .js-action-buttons,.com_widgetkit .js-header,.com_widgetkit .js-header+hr{display:none}.uk-breadcrumb{margin:0}.wk-thumbnail{height:150px;margin:1px 1px 0;border-bottom:1px solid #eee;background-color:#fafafa;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.wk-thumbnail-folder{background-image:url("/administrator/components/com_widgetkit/assets/images/folder.svg");background-size:50px 50px}.wk-thumbnail-file{background-image:url("/administrator/components/com_widgetkit/assets/images/file.svg");background-size:50px 50px}.wk-selected{background-color:#ffd!important}.uk-modal~.mce-floatpanel{z-index:100020!important}

.wk-noconflict .uk-nav li>a>div,.wk-noconflict .uk-panel-title{line-height:18px;font-size:12px}.wk-noconflict .uk-tab-center .uk-tab>li>a,.wk-noconflict .uk-tab-grid>li>a{text-align:center}.uk-modal,.wk-noconflict .uk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-noconflict .uk-hidden,.wk-noconflict .uk-invisible{visibility:hidden!important}.wk-noconflict .uk-clearfix:after,.wk-noconflict .uk-container:after,.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-grid:after,.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-panel:after,.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab:after{clear:both}.wk-noconflict .uk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.wk-noconflict .uk-grid:after,.wk-noconflict .uk-grid:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-noconflict .uk-grid>*>:last-child{margin-bottom:0}.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}@media (min-width:1400px){.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid>*{padding-left:25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}}.wk-noconflict .uk-grid-collapse{margin-left:0}.wk-noconflict .uk-grid-collapse>*{padding-left:0}.wk-noconflict .uk-grid-collapse+.uk-grid-collapse,.wk-noconflict .uk-grid-collapse>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-collapse>.uk-grid-margin{margin-top:0}.wk-noconflict .uk-grid-small{margin-left:-10px}.wk-noconflict .uk-grid-small>*{padding-left:10px}.wk-noconflict .uk-grid-small+.uk-grid-small,.wk-noconflict .uk-grid-small>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-small>.uk-grid-margin{margin-top:10px}.wk-noconflict .uk-grid-medium{margin-left:-25px}.wk-noconflict .uk-grid-medium>*{padding-left:25px}.wk-noconflict .uk-grid-medium+.uk-grid-medium,.wk-noconflict .uk-grid-medium>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-medium>.uk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-noconflict .uk-grid-large{margin-left:-25px}.wk-noconflict .uk-grid-large>*{padding-left:25px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-large-]:not(.uk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1400px){.wk-noconflict .uk-grid-large{margin-left:-50px}.wk-noconflict .uk-grid-large>*{padding-left:50px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:50px}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px}}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-1-]:not(.uk-width-1-1):nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-2-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-3-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-4-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-5-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-6-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-7-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-8-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-9-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-noconflict .uk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none;box-sizing:border-box;width:100%}.wk-noconflict [class*=uk-grid-width]>*{box-sizing:border-box;width:100%}.wk-noconflict .uk-grid-width-1-2>*{width:50%}.wk-noconflict .uk-grid-width-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-1-4>*{width:25%}.wk-noconflict .uk-grid-width-1-5>*{width:20%}.wk-noconflict .uk-grid-width-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-1-10>*{width:10%}.wk-noconflict .uk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-noconflict .uk-grid-width-small-1-1>*{width:100%}.wk-noconflict .uk-grid-width-small-1-2>*{width:50%}.wk-noconflict .uk-grid-width-small-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-small-1-4>*{width:25%}.wk-noconflict .uk-grid-width-small-1-5>*{width:20%}.wk-noconflict .uk-grid-width-small-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-noconflict .uk-grid-divider>[class*=uk-width-medium-]:not(.uk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-width-medium-1-1>*{width:100%}.wk-noconflict .uk-grid-width-medium-1-2>*{width:50%}.wk-noconflict .uk-grid-width-medium-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-medium-1-4>*{width:25%}.wk-noconflict .uk-grid-width-medium-1-5>*{width:20%}.wk-noconflict .uk-grid-width-medium-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-noconflict .uk-grid-width-large-1-1>*{width:100%}.wk-noconflict .uk-grid-width-large-1-2>*{width:50%}.wk-noconflict .uk-grid-width-large-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-large-1-4>*{width:25%}.wk-noconflict .uk-grid-width-large-1-5>*{width:20%}.wk-noconflict .uk-grid-width-large-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-large-1-10>*{width:10%}}@media (min-width:1400px){.wk-noconflict .uk-grid-width-xlarge-1-1>*{width:100%}.wk-noconflict .uk-grid-width-xlarge-1-2>*{width:50%}.wk-noconflict .uk-grid-width-xlarge-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-xlarge-1-4>*{width:25%}.wk-noconflict .uk-grid-width-xlarge-1-5>*{width:20%}.wk-noconflict .uk-grid-width-xlarge-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-xlarge-1-10>*{width:10%}}.wk-noconflict [class*=uk-width]{box-sizing:border-box;width:100%}.wk-noconflict .uk-width-1-1{width:100%}.wk-noconflict .uk-width-1-2,.wk-noconflict .uk-width-2-4,.wk-noconflict .uk-width-3-6,.wk-noconflict .uk-width-5-10{width:50%}.wk-noconflict .uk-width-1-3,.wk-noconflict .uk-width-2-6{width:33.333%}.wk-noconflict .uk-width-2-3,.wk-noconflict .uk-width-4-6{width:66.666%}.wk-noconflict .uk-width-1-4{width:25%}.wk-noconflict .uk-width-3-4{width:75%}.wk-noconflict .uk-width-1-5,.wk-noconflict .uk-width-2-10{width:20%}.wk-noconflict .uk-width-2-5,.wk-noconflict .uk-width-4-10{width:40%}.wk-noconflict .uk-width-3-5,.wk-noconflict .uk-width-6-10{width:60%}.wk-noconflict .uk-width-4-5,.wk-noconflict .uk-width-8-10{width:80%}.wk-noconflict .uk-width-1-6{width:16.666%}.wk-noconflict .uk-width-5-6{width:83.333%}.wk-noconflict .uk-width-1-10{width:10%}.wk-noconflict .uk-width-3-10{width:30%}.wk-noconflict .uk-width-7-10{width:70%}.wk-noconflict .uk-width-9-10{width:90%}@media (min-width:480px){.wk-noconflict .uk-width-small-1-1{width:100%}.wk-noconflict .uk-width-small-1-2,.wk-noconflict .uk-width-small-2-4,.wk-noconflict .uk-width-small-3-6,.wk-noconflict .uk-width-small-5-10{width:50%}.wk-noconflict .uk-width-small-1-3,.wk-noconflict .uk-width-small-2-6{width:33.333%}.wk-noconflict .uk-width-small-2-3,.wk-noconflict .uk-width-small-4-6{width:66.666%}.wk-noconflict .uk-width-small-1-4{width:25%}.wk-noconflict .uk-width-small-3-4{width:75%}.wk-noconflict .uk-width-small-1-5,.wk-noconflict .uk-width-small-2-10{width:20%}.wk-noconflict .uk-width-small-2-5,.wk-noconflict .uk-width-small-4-10{width:40%}.wk-noconflict .uk-width-small-3-5,.wk-noconflict .uk-width-small-6-10{width:60%}.wk-noconflict .uk-width-small-4-5,.wk-noconflict .uk-width-small-8-10{width:80%}.wk-noconflict .uk-width-small-1-6{width:16.666%}.wk-noconflict .uk-width-small-5-6{width:83.333%}.wk-noconflict .uk-width-small-1-10{width:10%}.wk-noconflict .uk-width-small-3-10{width:30%}.wk-noconflict .uk-width-small-7-10{width:70%}.wk-noconflict .uk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-noconflict .uk-width-medium-1-1{width:100%}.wk-noconflict .uk-width-medium-1-2,.wk-noconflict .uk-width-medium-2-4,.wk-noconflict .uk-width-medium-3-6,.wk-noconflict .uk-width-medium-5-10{width:50%}.wk-noconflict .uk-width-medium-1-3,.wk-noconflict .uk-width-medium-2-6{width:33.333%}.wk-noconflict .uk-width-medium-2-3,.wk-noconflict .uk-width-medium-4-6{width:66.666%}.wk-noconflict .uk-width-medium-1-4{width:25%}.wk-noconflict .uk-width-medium-3-4{width:75%}.wk-noconflict .uk-width-medium-1-5,.wk-noconflict .uk-width-medium-2-10{width:20%}.wk-noconflict .uk-width-medium-2-5,.wk-noconflict .uk-width-medium-4-10{width:40%}.wk-noconflict .uk-width-medium-3-5,.wk-noconflict .uk-width-medium-6-10{width:60%}.wk-noconflict .uk-width-medium-4-5,.wk-noconflict .uk-width-medium-8-10{width:80%}.wk-noconflict .uk-width-medium-1-6{width:16.666%}.wk-noconflict .uk-width-medium-5-6{width:83.333%}.wk-noconflict .uk-width-medium-1-10{width:10%}.wk-noconflict .uk-width-medium-3-10{width:30%}.wk-noconflict .uk-width-medium-7-10{width:70%}.wk-noconflict .uk-width-medium-9-10{width:90%}.wk-noconflict [class*=uk-push-],.wk-noconflict [class*=uk-pull-]{position:relative}.wk-noconflict .uk-push-1-2,.wk-noconflict .uk-push-2-4,.wk-noconflict .uk-push-3-6,.wk-noconflict .uk-push-5-10{left:50%}.wk-noconflict .uk-push-1-3,.wk-noconflict .uk-push-2-6{left:33.333%}.wk-noconflict .uk-push-2-3,.wk-noconflict .uk-push-4-6{left:66.666%}.wk-noconflict .uk-push-1-4{left:25%}.wk-noconflict .uk-push-3-4{left:75%}.wk-noconflict .uk-push-1-5,.wk-noconflict .uk-push-2-10{left:20%}.wk-noconflict .uk-push-2-5,.wk-noconflict .uk-push-4-10{left:40%}.wk-noconflict .uk-push-3-5,.wk-noconflict .uk-push-6-10{left:60%}.wk-noconflict .uk-push-4-5,.wk-noconflict .uk-push-8-10{left:80%}.wk-noconflict .uk-push-1-6{left:16.666%}.wk-noconflict .uk-push-5-6{left:83.333%}.wk-noconflict .uk-push-1-10{left:10%}.wk-noconflict .uk-push-3-10{left:30%}.wk-noconflict .uk-push-7-10{left:70%}.wk-noconflict .uk-push-9-10{left:90%}.wk-noconflict .uk-pull-1-2,.wk-noconflict .uk-pull-2-4,.wk-noconflict .uk-pull-3-6,.wk-noconflict .uk-pull-5-10{left:-50%}.wk-noconflict .uk-pull-1-3,.wk-noconflict .uk-pull-2-6{left:-33.333%}.wk-noconflict .uk-pull-2-3,.wk-noconflict .uk-pull-4-6{left:-66.666%}.wk-noconflict .uk-pull-1-4{left:-25%}.wk-noconflict .uk-pull-3-4{left:-75%}.wk-noconflict .uk-pull-1-5,.wk-noconflict .uk-pull-2-10{left:-20%}.wk-noconflict .uk-pull-2-5,.wk-noconflict .uk-pull-4-10{left:-40%}.wk-noconflict .uk-pull-3-5,.wk-noconflict .uk-pull-6-10{left:-60%}.wk-noconflict .uk-pull-4-5,.wk-noconflict .uk-pull-8-10{left:-80%}.wk-noconflict .uk-pull-1-6{left:-16.666%}.wk-noconflict .uk-pull-5-6{left:-83.333%}.wk-noconflict .uk-pull-1-10{left:-10%}.wk-noconflict .uk-pull-3-10{left:-30%}.wk-noconflict .uk-pull-7-10{left:-70%}.wk-noconflict .uk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-noconflict .uk-width-large-1-1{width:100%}.wk-noconflict .uk-width-large-1-2,.wk-noconflict .uk-width-large-2-4,.wk-noconflict .uk-width-large-3-6,.wk-noconflict .uk-width-large-5-10{width:50%}.wk-noconflict .uk-width-large-1-3,.wk-noconflict .uk-width-large-2-6{width:33.333%}.wk-noconflict .uk-width-large-2-3,.wk-noconflict .uk-width-large-4-6{width:66.666%}.wk-noconflict .uk-width-large-1-4{width:25%}.wk-noconflict .uk-width-large-3-4{width:75%}.wk-noconflict .uk-width-large-1-5,.wk-noconflict .uk-width-large-2-10{width:20%}.wk-noconflict .uk-width-large-2-5,.wk-noconflict .uk-width-large-4-10{width:40%}.wk-noconflict .uk-width-large-3-5,.wk-noconflict .uk-width-large-6-10{width:60%}.wk-noconflict .uk-width-large-4-5,.wk-noconflict .uk-width-large-8-10{width:80%}.wk-noconflict .uk-width-large-1-6{width:16.666%}.wk-noconflict .uk-width-large-5-6{width:83.333%}.wk-noconflict .uk-width-large-1-10{width:10%}.wk-noconflict .uk-width-large-3-10{width:30%}.wk-noconflict .uk-width-large-7-10{width:70%}.wk-noconflict .uk-width-large-9-10{width:90%}}@media (max-width:767px){.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-10px;margin-right:-10px}.wk-noconflict .uk-grid-divider>*{padding-left:10px;padding-right:10px}}.wk-noconflict .uk-panel{display:block;position:relative}.wk-noconflict .uk-panel,.wk-noconflict .uk-panel:hover{text-decoration:none}.wk-noconflict .uk-panel:after,.wk-noconflict .uk-panel:before{content:"";display:table}.wk-noconflict .uk-panel>:not(.uk-panel-title):last-child{margin-bottom:0}.wk-noconflict .uk-panel-title{margin-top:0;margin-bottom:20px;font-weight:400;text-transform:uppercase;color:#444}.wk-noconflict .uk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-noconflict .uk-panel-box .uk-panel-badge,.wk-noconflict .uk-panel-hover .uk-panel-badge{top:10px;right:10px}.wk-noconflict .uk-panel-teaser{margin-bottom:20px}.wk-noconflict .uk-panel-body{padding:20px}.wk-noconflict .uk-panel-box{padding:20px;background:#fff;color:#444;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-panel-box-hover:hover{background:#37a5e4;color:#fff;cursor:pointer}.wk-noconflict .uk-panel-box .uk-panel-title{color:#444}.wk-noconflict .uk-panel-box>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-box>.uk-nav-side{margin:0 -20px}.wk-noconflict .uk-panel-box-primary{background-color:#fafafa;color:#444}.wk-noconflict .uk-panel-box-primary .uk-panel-title,.wk-noconflict .uk-panel-box-primary-hover:hover{color:#444}.wk-noconflict .uk-panel-box-secondary{background-color:#f5f5f5;color:#444}.wk-noconflict .uk-panel-box-secondary .uk-panel-title,.wk-noconflict .uk-panel-box-secondary-hover:hover{color:#444}.wk-noconflict .uk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-noconflict .uk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-noconflict .uk-panel-hover>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-header .uk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-noconflict .uk-panel-space{padding:30px}.wk-noconflict .uk-panel-space .uk-panel-badge{top:30px;right:30px}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{content:"";display:block;position:absolute;top:-20px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1400px){.wk-noconflict .uk-width-xlarge-1-1{width:100%}.wk-noconflict .uk-width-xlarge-1-2,.wk-noconflict .uk-width-xlarge-2-4,.wk-noconflict .uk-width-xlarge-3-6,.wk-noconflict .uk-width-xlarge-5-10{width:50%}.wk-noconflict .uk-width-xlarge-1-3,.wk-noconflict .uk-width-xlarge-2-6{width:33.333%}.wk-noconflict .uk-width-xlarge-2-3,.wk-noconflict .uk-width-xlarge-4-6{width:66.666%}.wk-noconflict .uk-width-xlarge-1-4{width:25%}.wk-noconflict .uk-width-xlarge-3-4{width:75%}.wk-noconflict .uk-width-xlarge-1-5,.wk-noconflict .uk-width-xlarge-2-10{width:20%}.wk-noconflict .uk-width-xlarge-2-5,.wk-noconflict .uk-width-xlarge-4-10{width:40%}.wk-noconflict .uk-width-xlarge-3-5,.wk-noconflict .uk-width-xlarge-6-10{width:60%}.wk-noconflict .uk-width-xlarge-4-5,.wk-noconflict .uk-width-xlarge-8-10{width:80%}.wk-noconflict .uk-width-xlarge-1-6{width:16.666%}.wk-noconflict .uk-width-xlarge-5-6{width:83.333%}.wk-noconflict .uk-width-xlarge-1-10{width:10%}.wk-noconflict .uk-width-xlarge-3-10{width:30%}.wk-noconflict .uk-width-xlarge-7-10{width:70%}.wk-noconflict .uk-width-xlarge-9-10{width:90%}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{top:-20px}}.wk-noconflict .uk-active>.uk-panel-box-hover{background:#37a5e4;color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover *,.wk-noconflict .uk-panel-box-hover:hover *{color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover a,.wk-noconflict .uk-panel-box-hover:hover a{color:rgba(255,255,255,.8)}.wk-noconflict .uk-active>.uk-panel-box-hover a:hover,.wk-noconflict .uk-panel-box-hover:hover a:hover{color:#fff}.wk-noconflict .uk-panel-box .uk-panel-teaser{background-color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;border:1px solid #e5e5e5;border-bottom:none}.wk-noconflict .uk-active .uk-panel-hover{background:#fafafa;border-color:#e5e5e5}.wk-noconflict .uk-nav-dropdown .uk-nav-divider,.wk-noconflict .uk-nav-navbar .uk-nav-divider,.wk-noconflict .uk-nav-side .uk-nav-divider{border-top:1px solid #e5e5e5}.wk-noconflict .uk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-noconflict .uk-cover{overflow:hidden}.wk-noconflict .uk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict [data-uk-cover]{position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict .uk-nav,.wk-noconflict .uk-nav ul{margin:0;padding:0;list-style:none}.wk-noconflict .uk-nav li>a{display:block;text-decoration:none}.wk-noconflict .uk-nav>li>a{padding:5px 15px}.wk-noconflict .uk-nav ul{padding-left:15px}.wk-noconflict .uk-nav ul a{padding:2px 0}.wk-noconflict .uk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-noconflict .uk-nav-header:not(:first-child){margin-top:20px}.wk-noconflict .uk-nav-divider{margin:9px 15px}.wk-noconflict ul.uk-nav-sub{padding:5px 0 5px 15px}.wk-noconflict .uk-nav-parent-icon>.uk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-noconflict .uk-nav-parent-icon>.uk-parent.uk-open>a:after{content:"\f107"}.wk-noconflict .uk-nav-side>li>a{color:#999}.wk-noconflict .uk-nav-side>li>a:focus,.wk-noconflict .uk-nav-side>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-noconflict .uk-nav-side>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-side .uk-nav-header{color:#444}.wk-noconflict .uk-nav-side ul a{color:#37a5e5}.wk-noconflict .uk-nav-side ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-dropdown>li>a{color:#444}.wk-noconflict .uk-nav-dropdown>li>a:focus,.wk-noconflict .uk-nav-dropdown>li>a:hover{background:0 0;color:#37a5e5;outline:0}.wk-noconflict .uk-nav-dropdown .uk-nav-header{color:#999}.wk-noconflict .uk-nav-dropdown ul a{color:#37a5e5}.wk-noconflict .uk-nav-dropdown ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-navbar>li>a{color:#999}.wk-noconflict .uk-nav-navbar>li>a:focus,.wk-noconflict .uk-nav-navbar>li>a:hover{background:0 0;color:#444;outline:0}.wk-noconflict .uk-nav-navbar .uk-nav-header,.wk-noconflict .uk-nav-navbar ul a{color:#999}.wk-noconflict .uk-nav-navbar ul a:hover{color:#444}.wk-noconflict .uk-nav-offcanvas>li>a{color:#444;padding:10px 15px}.wk-noconflict .uk-nav-offcanvas>.uk-open>a,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:focus,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-noconflict html .uk-nav.uk-nav-offcanvas>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-offcanvas .uk-nav-header{color:#999}.wk-noconflict .uk-nav-offcanvas .uk-nav-divider{border-top:1px solid #ddd}.wk-noconflict .uk-nav-offcanvas ul a{color:#ccc}.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas ul a:hover{color:#fff}.wk-noconflict .uk-nav-side>li:hover>a{background:#37a5e4;color:#fff}.wk-noconflict .uk-nav>li:not(.uk-nav-divider){margin:0}.wk-noconflict .uk-nav a:focus{box-shadow:none}.wk-noconflict .uk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0;list-style:none}.wk-noconflict .uk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;position:relative;float:left;margin-bottom:0}.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-subnav:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-subnav>*>*{display:inline-block;color:#444}.wk-noconflict .uk-subnav>*>:focus,.wk-noconflict .uk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-noconflict .uk-subnav>.uk-active>*{color:#37a5e5}.wk-noconflict .uk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-noconflict .uk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-noconflict .uk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-noconflict .uk-subnav-pill>*>:focus,.wk-noconflict .uk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-noconflict .uk-subnav-pill>.uk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-noconflict .uk-subnav>.uk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-noconflict .uk-breadcrumb{padding:0;list-style:none;font-size:0}.wk-noconflict .uk-breadcrumb>li{font-size:1rem;vertical-align:top}.wk-noconflict .uk-breadcrumb>li,.wk-noconflict .uk-breadcrumb>li>a,.wk-noconflict .uk-breadcrumb>li>span{display:inline-block}.wk-noconflict .uk-breadcrumb>li:nth-child(n+2):before{content:"/";display:inline-block;margin:0 8px;color:#999}.wk-noconflict .uk-breadcrumb>li:not(.uk-active)>span,.wk-noconflict .uk-breadcrumb>li>a{color:#999}.wk-noconflict .uk-breadcrumb>li>a:hover{color:#444}.wk-noconflict .uk-tab{margin:0;padding:0;list-style:none;border-bottom:1px solid #ddd}.wk-noconflict .uk-tab:after,.wk-noconflict .uk-tab:before{content:"";display:table}.wk-noconflict .uk-tab>li{margin-bottom:-1px;float:left;position:relative}.wk-noconflict .uk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#07D;text-decoration:none}.wk-noconflict .uk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-noconflict .uk-tab>li.uk-open>a,.wk-noconflict .uk-tab>li>a:focus,.wk-noconflict .uk-tab>li>a:hover{border-color:#f5f5f5;background:#f5f5f5;color:#059;outline:0}.wk-noconflict .uk-tab>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab>li:not(.uk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-noconflict .uk-tab>li.uk-active>a{border-color:#ddd #ddd transparent;background:#fff;color:#444}.wk-noconflict .uk-tab>li.uk-disabled>a{color:#999;cursor:text}.uk-notify-message,.wk-noconflict .uk-button:not(:disabled),.wk-noconflict .uk-form input[type=checkbox]:not(:disabled),.wk-noconflict .uk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-noconflict .uk-tab>li.uk-disabled.uk-active>a,.wk-noconflict .uk-tab>li.uk-disabled>a:focus,.wk-noconflict .uk-tab>li.uk-disabled>a:hover{background:0 0;border-color:transparent}.wk-noconflict .uk-tab-flip>li{float:right}.wk-noconflict .uk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-noconflict .uk-tab>li.uk-tab-responsive>a{margin-left:0;margin-right:0}.wk-noconflict .uk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-noconflict .uk-tab-center{border-bottom:1px solid #ddd}.wk-noconflict .uk-tab-center-bottom{border-bottom:none;border-top:1px solid #ddd}.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab-center:before{content:"";display:table}.wk-noconflict .uk-tab-center .uk-tab{position:relative;right:50%;border:none;float:right}.wk-noconflict .uk-tab-center .uk-tab>li{position:relative;right:-50%}.wk-noconflict .uk-tab-bottom{border-top:1px solid #ddd;border-bottom:none}.wk-noconflict .uk-tab-bottom>li{margin-top:-1px;margin-bottom:0}.wk-noconflict .uk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0}.wk-noconflict .uk-tab-bottom>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-noconflict .uk-tab-bottom>li.uk-active>a{border-top-color:transparent;border-bottom-color:#ddd}.wk-noconflict .uk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-noconflict .uk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #ddd;z-index:-1}.wk-noconflict .uk-tab-grid>li:first-child>a{margin-left:5px}.wk-noconflict .uk-tab-grid.uk-tab-bottom{border-top:none}.wk-noconflict .uk-tab-grid.uk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-noconflict .uk-tab-left,.wk-noconflict .uk-tab-right{border-bottom:none}.wk-noconflict .uk-tab-left>li,.wk-noconflict .uk-tab-right>li{margin-bottom:0;float:none}.wk-noconflict .uk-tab-left>li>a,.wk-noconflict .uk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-noconflict .uk-tab-left>li:nth-child(n+2)>a,.wk-noconflict .uk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-noconflict .uk-tab-left>li.uk-active>a,.wk-noconflict .uk-tab-right>li.uk-active>a{border-color:#ddd}.wk-noconflict .uk-tab-left{border-right:1px solid #ddd}.wk-noconflict .uk-tab-left>li{margin-right:-1px}.wk-noconflict .uk-tab-left>li>a{border-bottom-width:1px;border-right-width:0}.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-noconflict .uk-tab-left>li.uk-active>a{border-right-color:transparent}.wk-noconflict .uk-tab-right{border-left:1px solid #ddd}.wk-noconflict .uk-tab-right>li{margin-left:-1px}.wk-noconflict .uk-tab-right>li>a{border-bottom-width:1px;border-left-width:0}.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-noconflict .uk-tab-right>li.uk-active>a{border-left-color:transparent}}.wk-noconflict .uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:20px}.wk-noconflict *+.uk-table{margin-top:20px}.wk-noconflict .uk-table td,.wk-noconflict .uk-table th{padding:10px;border-bottom:1px solid #e5e5e5}.wk-noconflict .uk-table th{text-align:left}.wk-noconflict .uk-table td{vertical-align:top}.wk-noconflict .uk-table thead th{vertical-align:bottom}.wk-noconflict .uk-table caption,.wk-noconflict .uk-table tfoot{font-size:12px;font-style:italic}.wk-noconflict .uk-table caption{text-align:left;color:#999}.wk-noconflict .uk-table tbody tr.uk-active{background:#ffd}.wk-noconflict .uk-table-middle,.wk-noconflict .uk-table-middle td{vertical-align:middle!important}.wk-noconflict .uk-table-striped tbody tr:nth-of-type(odd){background:#fafafa}.wk-noconflict .uk-table .uk-active,.wk-noconflict .uk-table-hover tbody tr:hover{background:#ffd}.wk-noconflict .uk-table-condensed td{padding:4px 8px}.wk-noconflict .uk-table tbody tr:last-child td{border-bottom:none}.wk-noconflict .uk-form input,.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-noconflict .uk-form select{text-transform:none}.wk-noconflict .uk-form optgroup{font:inherit;font-weight:700}.wk-noconflict .uk-form input::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-form input[type=checkbox],.wk-noconflict .uk-form input[type=radio]{padding:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form textarea{-webkit-appearance:none}.wk-noconflict .uk-form input[type=search]::-webkit-search-cancel-button,.wk-noconflict .uk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-noconflict .uk-form input[type=number]::-webkit-inner-spin-button,.wk-noconflict .uk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-noconflict .uk-form fieldset{border:none;margin:0;padding:0}.wk-noconflict .uk-form textarea{overflow:auto;vertical-align:top}.wk-noconflict .uk-form :invalid{box-shadow:none}.wk-noconflict .uk-form input:not([type=radio]):not([type=checkbox]),.wk-noconflict .uk-form select{vertical-align:middle}.wk-noconflict .uk-form>:last-child{margin-bottom:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form input[type=datetime-local],.wk-noconflict .uk-form input[type=date],.wk-noconflict .uk-form input[type=month],.wk-noconflict .uk-form input[type=time],.wk-noconflict .uk-form input[type=week],.wk-noconflict .uk-form input[type=color],.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px;box-shadow:none}.wk-noconflict .uk-form input:not([type]):focus,.wk-noconflict .uk-form input[type=text]:focus,.wk-noconflict .uk-form input[type=password]:focus,.wk-noconflict .uk-form input[type=email]:focus,.wk-noconflict .uk-form input[type=url]:focus,.wk-noconflict .uk-form input[type=search]:focus,.wk-noconflict .uk-form input[type=tel]:focus,.wk-noconflict .uk-form input[type=number]:focus,.wk-noconflict .uk-form input[type=datetime]:focus,.wk-noconflict .uk-form input[type=datetime-local]:focus,.wk-noconflict .uk-form input[type=date]:focus,.wk-noconflict .uk-form input[type=month]:focus,.wk-noconflict .uk-form input[type=time]:focus,.wk-noconflict .uk-form input[type=week]:focus,.wk-noconflict .uk-form input[type=color]:focus,.wk-noconflict .uk-form select:focus,.wk-noconflict .uk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-noconflict .uk-form input:not([type]):disabled,.wk-noconflict .uk-form input[type=text]:disabled,.wk-noconflict .uk-form input[type=password]:disabled,.wk-noconflict .uk-form input[type=email]:disabled,.wk-noconflict .uk-form input[type=url]:disabled,.wk-noconflict .uk-form input[type=search]:disabled,.wk-noconflict .uk-form input[type=tel]:disabled,.wk-noconflict .uk-form input[type=number]:disabled,.wk-noconflict .uk-form input[type=datetime]:disabled,.wk-noconflict .uk-form input[type=datetime-local]:disabled,.wk-noconflict .uk-form input[type=date]:disabled,.wk-noconflict .uk-form input[type=month]:disabled,.wk-noconflict .uk-form input[type=time]:disabled,.wk-noconflict .uk-form input[type=week]:disabled,.wk-noconflict .uk-form input[type=color]:disabled,.wk-noconflict .uk-form select:disabled,.wk-noconflict .uk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-noconflict .uk-form :-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form ::-moz-placeholder{opacity:1;color:#999}.wk-noconflict .uk-form ::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form :disabled::-moz-placeholder{color:#999}.wk-noconflict .uk-form :disabled::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-noconflict .uk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}.wk-noconflict input:not([type]).uk-form-small,.wk-noconflict input[type].uk-form-small,.wk-noconflict select.uk-form-small,.wk-noconflict textarea.uk-form-small{height:30px;padding:3px;font-size:14px}.wk-noconflict input:not([type]).uk-form-large,.wk-noconflict input[type].uk-form-large,.wk-noconflict select.uk-form-large,.wk-noconflict textarea.uk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-noconflict .uk-form select[multiple],.wk-noconflict .uk-form select[size],.wk-noconflict .uk-form textarea{height:auto}.wk-noconflict .uk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-success{border-color:#80c96d!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-blank{border-color:transparent!important;border-style:solid!important;background:0 0!important}.wk-noconflict .uk-form-blank:focus{border-color:#e5e5e5!important;background:#fff!important}.wk-noconflict input.uk-form-width-mini{width:40px}.wk-noconflict select.uk-form-width-mini{width:65px}.wk-noconflict .uk-form-width-small{width:130px}.wk-noconflict .uk-form-width-medium{width:200px}.wk-noconflict .uk-form-width-large{width:400px}.wk-noconflict .uk-form-row:after,.wk-noconflict .uk-form-row:before{content:"";display:table}.wk-noconflict .uk-form-row:after{clear:both}.wk-noconflict .uk-form-row+.uk-form-row{margin-top:20px}.wk-noconflict .uk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-noconflict .uk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-noconflict .uk-form-controls>:first-child{margin-top:0}.wk-noconflict .uk-form-controls>:last-child{margin-bottom:0}.wk-noconflict .uk-form-controls-condensed{margin:10px 0}.wk-noconflict .uk-form-stacked .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}@media (max-width:959px){.wk-noconflict .uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}}@media (min-width:960px){.wk-noconflict .uk-form-horizontal .uk-form-label{width:150px;margin-top:7px;float:left;font-weight:700;text-align:right}.wk-noconflict .uk-form-horizontal .uk-form-controls{margin-left:180px}.wk-noconflict .uk-form-horizontal .uk-form-controls-text{padding-top:7px}}.wk-noconflict .uk-form-icon{display:inline-block;position:relative;max-width:100%}.wk-noconflict .uk-form-icon>[class*=uk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-noconflict .uk-form-icon:not(.uk-form-icon-flip)>input{padding-left:30px!important}.wk-noconflict .uk-form-icon-flip>[class*=uk-icon-]{right:0}.wk-noconflict .uk-form-icon-flip>input{padding-right:30px!important}.wk-noconflict .uk-button::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-button{-webkit-appearance:none;margin:0;border:none;overflow:visible;font:inherit;color:#444;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 15px;background:#f5f5f5;vertical-align:middle;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;text-align:center;border:1px solid rgba(0,0,0,.1);border-radius:2px}.wk-noconflict .uk-button:focus,.wk-noconflict .uk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-button.uk-active,.wk-noconflict .uk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-button-primary{background-color:#37a5e4;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary:focus,.wk-noconflict .uk-button-primary:hover{background-color:#2495d6;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary.uk-active,.wk-noconflict .uk-button-primary:active{background-color:#1889c6;color:#fff;border-color:rgba(16,90,130,.5);box-shadow:inset 0 1px 5px -1px rgba(16,90,130,.7)}.wk-noconflict .uk-button-success{background-color:#80c96d;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success:focus,.wk-noconflict .uk-button-success:hover{background-color:#6dbc58;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success.uk-active,.wk-noconflict .uk-button-success:active{background-color:#61b54c;color:#fff;border-color:rgba(68,128,53,.5);box-shadow:inset 0 1px 5px -1px rgba(68,128,53,.7)}.wk-noconflict .uk-button-danger{background-color:#f0615b;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger:focus,.wk-noconflict .uk-button-danger:hover{background-color:#e54f49;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger.uk-active,.wk-noconflict .uk-button-danger:active{background-color:#e4463a;color:#fff;border-color:rgba(162,32,22,.5);box-shadow:inset 0 1px 5px -1px rgba(162,32,22,.7)}.wk-noconflict .uk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1);box-shadow:none}.wk-noconflict .uk-button-link,.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:disabled,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-noconflict .uk-button-link{color:#37a5e5}.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{color:#1889c7;text-decoration:none}.wk-noconflict .uk-button-link:disabled{color:#999}.wk-noconflict .uk-button-link:focus{outline:dotted 1px}.wk-noconflict .uk-button-mini{min-height:22px;padding:0 8px;line-height:20px;font-size:12px}.wk-noconflict .uk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-noconflict .uk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-noconflict .uk-button-group{display:inline-block;vertical-align:middle;position:relative;font-size:0;white-space:nowrap}.wk-noconflict .uk-button-group>*{display:inline-block}.wk-noconflict .uk-button-group .uk-button{vertical-align:top}.wk-noconflict .uk-button-dropdown{display:inline-block;vertical-align:middle;position:relative}.wk-noconflict .uk-button-group>.uk-button:not(:first-child):not(:last-child),.wk-noconflict .uk-button-group>div:not(:first-child):not(:last-child) .uk-button{border-radius:0}.wk-noconflict .uk-button-group>.uk-button:first-child,.wk-noconflict .uk-button-group>div:first-child .uk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-noconflict .uk-button-group>.uk-button:last-child,.wk-noconflict .uk-button-group>div:last-child .uk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-noconflict .uk-button-group>.uk-button:nth-child(n+2),.wk-noconflict .uk-button-group>div:nth-child(n+2) .uk-button{margin-left:-1px}.wk-noconflict .uk-button-group .uk-button:active,.wk-noconflict .uk-button-group .uk-button:hover{position:relative}@font-face{font-family:FontAwesome;src:url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff") format("woff"),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}.wk-noconflict [class*=uk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wk-noconflict [class*=uk-icon-],.wk-noconflict [class*=uk-icon-]:focus,.wk-noconflict [class*=uk-icon-]:hover{text-decoration:none}.wk-noconflict .uk-icon-small{font-size:150%;vertical-align:-10%}.wk-noconflict .uk-icon-medium{font-size:200%;vertical-align:-16%}.wk-noconflict .uk-icon-large{font-size:250%;vertical-align:-22%}.wk-noconflict .uk-icon-justify{width:1em;text-align:center}.wk-noconflict .uk-icon-spin{display:inline-block;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-icon-hover{color:#999;position:relative;z-index:1}.wk-noconflict .uk-icon-hover:hover{color:#444}.wk-noconflict .uk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-noconflict .uk-icon-button:focus,.wk-noconflict .uk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-icon-glass:before{content:"\f000"}.wk-noconflict .uk-icon-music:before{content:"\f001"}.wk-noconflict .uk-icon-search:before{content:"\f002"}.wk-noconflict .uk-icon-envelope-o:before{content:"\f003"}.wk-noconflict .uk-icon-heart:before{content:"\f004"}.wk-noconflict .uk-icon-star:before{content:"\f005"}.wk-noconflict .uk-icon-star-o:before{content:"\f006"}.wk-noconflict .uk-icon-user:before{content:"\f007"}.wk-noconflict .uk-icon-film:before{content:"\f008"}.wk-noconflict .uk-icon-th-large:before{content:"\f009"}.wk-noconflict .uk-icon-th:before{content:"\f00a"}.wk-noconflict .uk-icon-th-list:before{content:"\f00b"}.wk-noconflict .uk-icon-check:before{content:"\f00c"}.wk-noconflict .uk-icon-close:before,.wk-noconflict .uk-icon-remove:before,.wk-noconflict .uk-icon-times:before{content:"\f00d"}.wk-noconflict .uk-icon-search-plus:before{content:"\f00e"}.wk-noconflict .uk-icon-search-minus:before{content:"\f010"}.wk-noconflict .uk-icon-power-off:before{content:"\f011"}.wk-noconflict .uk-icon-signal:before{content:"\f012"}.wk-noconflict .uk-icon-cog:before,.wk-noconflict .uk-icon-gear:before{content:"\f013"}.wk-noconflict .uk-icon-trash-o:before{content:"\f014"}.wk-noconflict .uk-icon-home:before{content:"\f015"}.wk-noconflict .uk-icon-file-o:before{content:"\f016"}.wk-noconflict .uk-icon-clock-o:before{content:"\f017"}.wk-noconflict .uk-icon-road:before{content:"\f018"}.wk-noconflict .uk-icon-download:before{content:"\f019"}.wk-noconflict .uk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-noconflict .uk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-noconflict .uk-icon-inbox:before{content:"\f01c"}.wk-noconflict .uk-icon-play-circle-o:before{content:"\f01d"}.wk-noconflict .uk-icon-repeat:before,.wk-noconflict .uk-icon-rotate-right:before{content:"\f01e"}.wk-noconflict .uk-icon-refresh:before{content:"\f021"}.wk-noconflict .uk-icon-list-alt:before{content:"\f022"}.wk-noconflict .uk-icon-lock:before{content:"\f023"}.wk-noconflict .uk-icon-flag:before{content:"\f024"}.wk-noconflict .uk-icon-headphones:before{content:"\f025"}.wk-noconflict .uk-icon-volume-off:before{content:"\f026"}.wk-noconflict .uk-icon-volume-down:before{content:"\f027"}.wk-noconflict .uk-icon-volume-up:before{content:"\f028"}.wk-noconflict .uk-icon-qrcode:before{content:"\f029"}.wk-noconflict .uk-icon-barcode:before{content:"\f02a"}.wk-noconflict .uk-icon-tag:before{content:"\f02b"}.wk-noconflict .uk-icon-tags:before{content:"\f02c"}.wk-noconflict .uk-icon-book:before{content:"\f02d"}.wk-noconflict .uk-icon-bookmark:before{content:"\f02e"}.wk-noconflict .uk-icon-print:before{content:"\f02f"}.wk-noconflict .uk-icon-camera:before{content:"\f030"}.wk-noconflict .uk-icon-font:before{content:"\f031"}.wk-noconflict .uk-icon-bold:before{content:"\f032"}.wk-noconflict .uk-icon-italic:before{content:"\f033"}.wk-noconflict .uk-icon-text-height:before{content:"\f034"}.wk-noconflict .uk-icon-text-width:before{content:"\f035"}.wk-noconflict .uk-icon-align-left:before{content:"\f036"}.wk-noconflict .uk-icon-align-center:before{content:"\f037"}.wk-noconflict .uk-icon-align-right:before{content:"\f038"}.wk-noconflict .uk-icon-align-justify:before{content:"\f039"}.wk-noconflict .uk-icon-list:before{content:"\f03a"}.wk-noconflict .uk-icon-dedent:before,.wk-noconflict .uk-icon-outdent:before{content:"\f03b"}.wk-noconflict .uk-icon-indent:before{content:"\f03c"}.wk-noconflict .uk-icon-video-camera:before{content:"\f03d"}.wk-noconflict .uk-icon-image:before,.wk-noconflict .uk-icon-photo:before,.wk-noconflict .uk-icon-picture-o:before{content:"\f03e"}.wk-noconflict .uk-icon-pencil:before{content:"\f040"}.wk-noconflict .uk-icon-map-marker:before{content:"\f041"}.wk-noconflict .uk-icon-adjust:before{content:"\f042"}.wk-noconflict .uk-icon-tint:before{content:"\f043"}.wk-noconflict .uk-icon-edit:before,.wk-noconflict .uk-icon-pencil-square-o:before{content:"\f044"}.wk-noconflict .uk-icon-share-square-o:before{content:"\f045"}.wk-noconflict .uk-icon-check-square-o:before{content:"\f046"}.wk-noconflict .uk-icon-arrows:before{content:"\f047"}.wk-noconflict .uk-icon-step-backward:before{content:"\f048"}.wk-noconflict .uk-icon-fast-backward:before{content:"\f049"}.wk-noconflict .uk-icon-backward:before{content:"\f04a"}.wk-noconflict .uk-icon-play:before{content:"\f04b"}.wk-noconflict .uk-icon-pause:before{content:"\f04c"}.wk-noconflict .uk-icon-stop:before{content:"\f04d"}.wk-noconflict .uk-icon-forward:before{content:"\f04e"}.wk-noconflict .uk-icon-fast-forward:before{content:"\f050"}.wk-noconflict .uk-icon-step-forward:before{content:"\f051"}.wk-noconflict .uk-icon-eject:before{content:"\f052"}.wk-noconflict .uk-icon-chevron-left:before{content:"\f053"}.wk-noconflict .uk-icon-chevron-right:before{content:"\f054"}.wk-noconflict .uk-icon-plus-circle:before{content:"\f055"}.wk-noconflict .uk-icon-minus-circle:before{content:"\f056"}.wk-noconflict .uk-icon-times-circle:before{content:"\f057"}.wk-noconflict .uk-icon-check-circle:before{content:"\f058"}.wk-noconflict .uk-icon-question-circle:before{content:"\f059"}.wk-noconflict .uk-icon-info-circle:before{content:"\f05a"}.wk-noconflict .uk-icon-crosshairs:before{content:"\f05b"}.wk-noconflict .uk-icon-times-circle-o:before{content:"\f05c"}.wk-noconflict .uk-icon-check-circle-o:before{content:"\f05d"}.wk-noconflict .uk-icon-ban:before{content:"\f05e"}.wk-noconflict .uk-icon-arrow-left:before{content:"\f060"}.wk-noconflict .uk-icon-arrow-right:before{content:"\f061"}.wk-noconflict .uk-icon-arrow-up:before{content:"\f062"}.wk-noconflict .uk-icon-arrow-down:before{content:"\f063"}.wk-noconflict .uk-icon-mail-forward:before,.wk-noconflict .uk-icon-share:before{content:"\f064"}.wk-noconflict .uk-icon-expand:before{content:"\f065"}.wk-noconflict .uk-icon-compress:before{content:"\f066"}.wk-noconflict .uk-icon-plus:before{content:"\f067"}.wk-noconflict .uk-icon-minus:before{content:"\f068"}.wk-noconflict .uk-icon-asterisk:before{content:"\f069"}.wk-noconflict .uk-icon-exclamation-circle:before{content:"\f06a"}.wk-noconflict .uk-icon-gift:before{content:"\f06b"}.wk-noconflict .uk-icon-leaf:before{content:"\f06c"}.wk-noconflict .uk-icon-fire:before{content:"\f06d"}.wk-noconflict .uk-icon-eye:before{content:"\f06e"}.wk-noconflict .uk-icon-eye-slash:before{content:"\f070"}.wk-noconflict .uk-icon-exclamation-triangle:before,.wk-noconflict .uk-icon-warning:before{content:"\f071"}.wk-noconflict .uk-icon-plane:before{content:"\f072"}.wk-noconflict .uk-icon-calendar:before{content:"\f073"}.wk-noconflict .uk-icon-random:before{content:"\f074"}.wk-noconflict .uk-icon-comment:before{content:"\f075"}.wk-noconflict .uk-icon-magnet:before{content:"\f076"}.wk-noconflict .uk-icon-chevron-up:before{content:"\f077"}.wk-noconflict .uk-icon-chevron-down:before{content:"\f078"}.wk-noconflict .uk-icon-retweet:before{content:"\f079"}.wk-noconflict .uk-icon-shopping-cart:before{content:"\f07a"}.wk-noconflict .uk-icon-folder:before{content:"\f07b"}.wk-noconflict .uk-icon-folder-open:before{content:"\f07c"}.wk-noconflict .uk-icon-arrows-v:before{content:"\f07d"}.wk-noconflict .uk-icon-arrows-h:before{content:"\f07e"}.wk-noconflict .uk-icon-bar-chart-o:before,.wk-noconflict .uk-icon-bar-chart:before{content:"\f080"}.wk-noconflict .uk-icon-twitter-square:before{content:"\f081"}.wk-noconflict .uk-icon-facebook-square:before{content:"\f082"}.wk-noconflict .uk-icon-camera-retro:before{content:"\f083"}.wk-noconflict .uk-icon-key:before{content:"\f084"}.wk-noconflict .uk-icon-cogs:before,.wk-noconflict .uk-icon-gears:before{content:"\f085"}.wk-noconflict .uk-icon-comments:before{content:"\f086"}.wk-noconflict .uk-icon-thumbs-o-up:before{content:"\f087"}.wk-noconflict .uk-icon-thumbs-o-down:before{content:"\f088"}.wk-noconflict .uk-icon-star-half:before{content:"\f089"}.wk-noconflict .uk-icon-heart-o:before{content:"\f08a"}.wk-noconflict .uk-icon-sign-out:before{content:"\f08b"}.wk-noconflict .uk-icon-linkedin-square:before{content:"\f08c"}.wk-noconflict .uk-icon-thumb-tack:before{content:"\f08d"}.wk-noconflict .uk-icon-external-link:before{content:"\f08e"}.wk-noconflict .uk-icon-sign-in:before{content:"\f090"}.wk-noconflict .uk-icon-trophy:before{content:"\f091"}.wk-noconflict .uk-icon-github-square:before{content:"\f092"}.wk-noconflict .uk-icon-upload:before{content:"\f093"}.wk-noconflict .uk-icon-lemon-o:before{content:"\f094"}.wk-noconflict .uk-icon-phone:before{content:"\f095"}.wk-noconflict .uk-icon-square-o:before{content:"\f096"}.wk-noconflict .uk-icon-bookmark-o:before{content:"\f097"}.wk-noconflict .uk-icon-phone-square:before{content:"\f098"}.wk-noconflict .uk-icon-twitter:before{content:"\f099"}.wk-noconflict .uk-icon-facebook-f:before,.wk-noconflict .uk-icon-facebook:before{content:"\f09a"}.wk-noconflict .uk-icon-github:before{content:"\f09b"}.wk-noconflict .uk-icon-unlock:before{content:"\f09c"}.wk-noconflict .uk-icon-credit-card:before{content:"\f09d"}.wk-noconflict .uk-icon-rss:before{content:"\f09e"}.wk-noconflict .uk-icon-hdd-o:before{content:"\f0a0"}.wk-noconflict .uk-icon-bullhorn:before{content:"\f0a1"}.wk-noconflict .uk-icon-bell:before{content:"\f0f3"}.wk-noconflict .uk-icon-certificate:before{content:"\f0a3"}.wk-noconflict .uk-icon-hand-o-right:before{content:"\f0a4"}.wk-noconflict .uk-icon-hand-o-left:before{content:"\f0a5"}.wk-noconflict .uk-icon-hand-o-up:before{content:"\f0a6"}.wk-noconflict .uk-icon-hand-o-down:before{content:"\f0a7"}.wk-noconflict .uk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-noconflict .uk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-noconflict .uk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-noconflict .uk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-noconflict .uk-icon-globe:before{content:"\f0ac"}.wk-noconflict .uk-icon-wrench:before{content:"\f0ad"}.wk-noconflict .uk-icon-tasks:before{content:"\f0ae"}.wk-noconflict .uk-icon-filter:before{content:"\f0b0"}.wk-noconflict .uk-icon-briefcase:before{content:"\f0b1"}.wk-noconflict .uk-icon-arrows-alt:before{content:"\f0b2"}.wk-noconflict .uk-icon-group:before,.wk-noconflict .uk-icon-users:before{content:"\f0c0"}.wk-noconflict .uk-icon-chain:before,.wk-noconflict .uk-icon-link:before{content:"\f0c1"}.wk-noconflict .uk-icon-cloud:before{content:"\f0c2"}.wk-noconflict .uk-icon-flask:before{content:"\f0c3"}.wk-noconflict .uk-icon-cut:before,.wk-noconflict .uk-icon-scissors:before{content:"\f0c4"}.wk-noconflict .uk-icon-copy:before,.wk-noconflict .uk-icon-files-o:before{content:"\f0c5"}.wk-noconflict .uk-icon-paperclip:before{content:"\f0c6"}.wk-noconflict .uk-icon-floppy-o:before,.wk-noconflict .uk-icon-save:before{content:"\f0c7"}.wk-noconflict .uk-icon-square:before{content:"\f0c8"}.wk-noconflict .uk-icon-bars:before,.wk-noconflict .uk-icon-navicon:before,.wk-noconflict .uk-icon-reorder:before{content:"\f0c9"}.wk-noconflict .uk-icon-list-ul:before{content:"\f0ca"}.wk-noconflict .uk-icon-list-ol:before{content:"\f0cb"}.wk-noconflict .uk-icon-strikethrough:before{content:"\f0cc"}.wk-noconflict .uk-icon-underline:before{content:"\f0cd"}.wk-noconflict .uk-icon-table:before{content:"\f0ce"}.wk-noconflict .uk-icon-magic:before{content:"\f0d0"}.wk-noconflict .uk-icon-truck:before{content:"\f0d1"}.wk-noconflict .uk-icon-pinterest:before{content:"\f0d2"}.wk-noconflict .uk-icon-pinterest-square:before{content:"\f0d3"}.wk-noconflict .uk-icon-google-plus-square:before{content:"\f0d4"}.wk-noconflict .uk-icon-google-plus:before{content:"\f0d5"}.wk-noconflict .uk-icon-money:before{content:"\f0d6"}.wk-noconflict .uk-icon-caret-down:before{content:"\f0d7"}.wk-noconflict .uk-icon-caret-up:before{content:"\f0d8"}.wk-noconflict .uk-icon-caret-left:before{content:"\f0d9"}.wk-noconflict .uk-icon-caret-right:before{content:"\f0da"}.wk-noconflict .uk-icon-columns:before{content:"\f0db"}.wk-noconflict .uk-icon-sort:before,.wk-noconflict .uk-icon-unsorted:before{content:"\f0dc"}.wk-noconflict .uk-icon-sort-desc:before,.wk-noconflict .uk-icon-sort-down:before{content:"\f0dd"}.wk-noconflict .uk-icon-sort-asc:before,.wk-noconflict .uk-icon-sort-up:before{content:"\f0de"}.wk-noconflict .uk-icon-envelope:before{content:"\f0e0"}.wk-noconflict .uk-icon-linkedin:before{content:"\f0e1"}.wk-noconflict .uk-icon-rotate-left:before,.wk-noconflict .uk-icon-undo:before{content:"\f0e2"}.wk-noconflict .uk-icon-gavel:before,.wk-noconflict .uk-icon-legal:before{content:"\f0e3"}.wk-noconflict .uk-icon-dashboard:before,.wk-noconflict .uk-icon-tachometer:before{content:"\f0e4"}.wk-noconflict .uk-icon-comment-o:before{content:"\f0e5"}.wk-noconflict .uk-icon-comments-o:before{content:"\f0e6"}.wk-noconflict .uk-icon-bolt:before,.wk-noconflict .uk-icon-flash:before{content:"\f0e7"}.wk-noconflict .uk-icon-sitemap:before{content:"\f0e8"}.wk-noconflict .uk-icon-umbrella:before{content:"\f0e9"}.wk-noconflict .uk-icon-clipboard:before,.wk-noconflict .uk-icon-paste:before{content:"\f0ea"}.wk-noconflict .uk-icon-lightbulb-o:before{content:"\f0eb"}.wk-noconflict .uk-icon-exchange:before{content:"\f0ec"}.wk-noconflict .uk-icon-cloud-download:before{content:"\f0ed"}.wk-noconflict .uk-icon-cloud-upload:before{content:"\f0ee"}.wk-noconflict .uk-icon-user-md:before{content:"\f0f0"}.wk-noconflict .uk-icon-stethoscope:before{content:"\f0f1"}.wk-noconflict .uk-icon-suitcase:before{content:"\f0f2"}.wk-noconflict .uk-icon-bell-o:before{content:"\f0a2"}.wk-noconflict .uk-icon-coffee:before{content:"\f0f4"}.wk-noconflict .uk-icon-cutlery:before{content:"\f0f5"}.wk-noconflict .uk-icon-file-text-o:before{content:"\f0f6"}.wk-noconflict .uk-icon-building-o:before{content:"\f0f7"}.wk-noconflict .uk-icon-hospital-o:before{content:"\f0f8"}.wk-noconflict .uk-icon-ambulance:before{content:"\f0f9"}.wk-noconflict .uk-icon-medkit:before{content:"\f0fa"}.wk-noconflict .uk-icon-fighter-jet:before{content:"\f0fb"}.wk-noconflict .uk-icon-beer:before{content:"\f0fc"}.wk-noconflict .uk-icon-h-square:before{content:"\f0fd"}.wk-noconflict .uk-icon-plus-square:before{content:"\f0fe"}.wk-noconflict .uk-icon-angle-double-left:before{content:"\f100"}.wk-noconflict .uk-icon-angle-double-right:before{content:"\f101"}.wk-noconflict .uk-icon-angle-double-up:before{content:"\f102"}.wk-noconflict .uk-icon-angle-double-down:before{content:"\f103"}.wk-noconflict .uk-icon-angle-left:before{content:"\f104"}.wk-noconflict .uk-icon-angle-right:before{content:"\f105"}.wk-noconflict .uk-icon-angle-up:before{content:"\f106"}.wk-noconflict .uk-icon-angle-down:before{content:"\f107"}.wk-noconflict .uk-icon-desktop:before{content:"\f108"}.wk-noconflict .uk-icon-laptop:before{content:"\f109"}.wk-noconflict .uk-icon-tablet:before{content:"\f10a"}.wk-noconflict .uk-icon-mobile-phone:before,.wk-noconflict .uk-icon-mobile:before{content:"\f10b"}.wk-noconflict .uk-icon-circle-o:before{content:"\f10c"}.wk-noconflict .uk-icon-quote-left:before{content:"\f10d"}.wk-noconflict .uk-icon-quote-right:before{content:"\f10e"}.wk-noconflict .uk-icon-spinner:before{content:"\f110"}.wk-noconflict .uk-icon-circle:before{content:"\f111"}.wk-noconflict .uk-icon-mail-reply:before,.wk-noconflict .uk-icon-reply:before{content:"\f112"}.wk-noconflict .uk-icon-github-alt:before{content:"\f113"}.wk-noconflict .uk-icon-folder-o:before{content:"\f114"}.wk-noconflict .uk-icon-folder-open-o:before{content:"\f115"}.wk-noconflict .uk-icon-smile-o:before{content:"\f118"}.wk-noconflict .uk-icon-frown-o:before{content:"\f119"}.wk-noconflict .uk-icon-meh-o:before{content:"\f11a"}.wk-noconflict .uk-icon-gamepad:before{content:"\f11b"}.wk-noconflict .uk-icon-keyboard-o:before{content:"\f11c"}.wk-noconflict .uk-icon-flag-o:before{content:"\f11d"}.wk-noconflict .uk-icon-flag-checkered:before{content:"\f11e"}.wk-noconflict .uk-icon-terminal:before{content:"\f120"}.wk-noconflict .uk-icon-code:before{content:"\f121"}.wk-noconflict .uk-icon-mail-reply-all:before,.wk-noconflict .uk-icon-reply-all:before{content:"\f122"}.wk-noconflict .uk-icon-star-half-empty:before,.wk-noconflict .uk-icon-star-half-full:before,.wk-noconflict .uk-icon-star-half-o:before{content:"\f123"}.wk-noconflict .uk-icon-location-arrow:before{content:"\f124"}.wk-noconflict .uk-icon-crop:before{content:"\f125"}.wk-noconflict .uk-icon-code-fork:before{content:"\f126"}.wk-noconflict .uk-icon-chain-broken:before,.wk-noconflict .uk-icon-unlink:before{content:"\f127"}.wk-noconflict .uk-icon-question:before{content:"\f128"}.wk-noconflict .uk-icon-info:before{content:"\f129"}.wk-noconflict .uk-icon-exclamation:before{content:"\f12a"}.wk-noconflict .uk-icon-superscript:before{content:"\f12b"}.wk-noconflict .uk-icon-subscript:before{content:"\f12c"}.wk-noconflict .uk-icon-eraser:before{content:"\f12d"}.wk-noconflict .uk-icon-puzzle-piece:before{content:"\f12e"}.wk-noconflict .uk-icon-microphone:before{content:"\f130"}.wk-noconflict .uk-icon-microphone-slash:before{content:"\f131"}.wk-noconflict .uk-icon-shield:before{content:"\f132"}.wk-noconflict .uk-icon-calendar-o:before{content:"\f133"}.wk-noconflict .uk-icon-fire-extinguisher:before{content:"\f134"}.wk-noconflict .uk-icon-rocket:before{content:"\f135"}.wk-noconflict .uk-icon-maxcdn:before{content:"\f136"}.wk-noconflict .uk-icon-chevron-circle-left:before{content:"\f137"}.wk-noconflict .uk-icon-chevron-circle-right:before{content:"\f138"}.wk-noconflict .uk-icon-chevron-circle-up:before{content:"\f139"}.wk-noconflict .uk-icon-chevron-circle-down:before{content:"\f13a"}.wk-noconflict .uk-icon-html5:before{content:"\f13b"}.wk-noconflict .uk-icon-css3:before{content:"\f13c"}.wk-noconflict .uk-icon-anchor:before{content:"\f13d"}.wk-noconflict .uk-icon-unlock-alt:before{content:"\f13e"}.wk-noconflict .uk-icon-bullseye:before{content:"\f140"}.wk-noconflict .uk-icon-ellipsis-h:before{content:"\f141"}.wk-noconflict .uk-icon-ellipsis-v:before{content:"\f142"}.wk-noconflict .uk-icon-rss-square:before{content:"\f143"}.wk-noconflict .uk-icon-play-circle:before{content:"\f144"}.wk-noconflict .uk-icon-ticket:before{content:"\f145"}.wk-noconflict .uk-icon-minus-square:before{content:"\f146"}.wk-noconflict .uk-icon-minus-square-o:before{content:"\f147"}.wk-noconflict .uk-icon-level-up:before{content:"\f148"}.wk-noconflict .uk-icon-level-down:before{content:"\f149"}.wk-noconflict .uk-icon-check-square:before{content:"\f14a"}.wk-noconflict .uk-icon-pencil-square:before{content:"\f14b"}.wk-noconflict .uk-icon-external-link-square:before{content:"\f14c"}.wk-noconflict .uk-icon-share-square:before{content:"\f14d"}.wk-noconflict .uk-icon-compass:before{content:"\f14e"}.wk-noconflict .uk-icon-caret-square-o-down:before,.wk-noconflict .uk-icon-toggle-down:before{content:"\f150"}.wk-noconflict .uk-icon-caret-square-o-up:before,.wk-noconflict .uk-icon-toggle-up:before{content:"\f151"}.wk-noconflict .uk-icon-caret-square-o-right:before,.wk-noconflict .uk-icon-toggle-right:before{content:"\f152"}.wk-noconflict .uk-icon-eur:before,.wk-noconflict .uk-icon-euro:before{content:"\f153"}.wk-noconflict .uk-icon-gbp:before{content:"\f154"}.wk-noconflict .uk-icon-dollar:before,.wk-noconflict .uk-icon-usd:before{content:"\f155"}.wk-noconflict .uk-icon-inr:before,.wk-noconflict .uk-icon-rupee:before{content:"\f156"}.wk-noconflict .uk-icon-cny:before,.wk-noconflict .uk-icon-jpy:before,.wk-noconflict .uk-icon-rmb:before,.wk-noconflict .uk-icon-yen:before{content:"\f157"}.wk-noconflict .uk-icon-rouble:before,.wk-noconflict .uk-icon-rub:before,.wk-noconflict .uk-icon-ruble:before{content:"\f158"}.wk-noconflict .uk-icon-krw:before,.wk-noconflict .uk-icon-won:before{content:"\f159"}.wk-noconflict .uk-icon-bitcoin:before,.wk-noconflict .uk-icon-btc:before{content:"\f15a"}.wk-noconflict .uk-icon-file:before{content:"\f15b"}.wk-noconflict .uk-icon-file-text:before{content:"\f15c"}.wk-noconflict .uk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-noconflict .uk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-noconflict .uk-icon-sort-amount-asc:before{content:"\f160"}.wk-noconflict .uk-icon-sort-amount-desc:before{content:"\f161"}.wk-noconflict .uk-icon-sort-numeric-asc:before{content:"\f162"}.wk-noconflict .uk-icon-sort-numeric-desc:before{content:"\f163"}.wk-noconflict .uk-icon-thumbs-up:before{content:"\f164"}.wk-noconflict .uk-icon-thumbs-down:before{content:"\f165"}.wk-noconflict .uk-icon-youtube-square:before{content:"\f166"}.wk-noconflict .uk-icon-youtube:before{content:"\f167"}.wk-noconflict .uk-icon-xing:before{content:"\f168"}.wk-noconflict .uk-icon-xing-square:before{content:"\f169"}.wk-noconflict .uk-icon-youtube-play:before{content:"\f16a"}.wk-noconflict .uk-icon-dropbox:before{content:"\f16b"}.wk-noconflict .uk-icon-stack-overflow:before{content:"\f16c"}.wk-noconflict .uk-icon-instagram:before{content:"\f16d"}.wk-noconflict .uk-icon-flickr:before{content:"\f16e"}.wk-noconflict .uk-icon-adn:before{content:"\f170"}.wk-noconflict .uk-icon-bitbucket:before{content:"\f171"}.wk-noconflict .uk-icon-bitbucket-square:before{content:"\f172"}.wk-noconflict .uk-icon-tumblr:before{content:"\f173"}.wk-noconflict .uk-icon-tumblr-square:before{content:"\f174"}.wk-noconflict .uk-icon-long-arrow-down:before{content:"\f175"}.wk-noconflict .uk-icon-long-arrow-up:before{content:"\f176"}.wk-noconflict .uk-icon-long-arrow-left:before{content:"\f177"}.wk-noconflict .uk-icon-long-arrow-right:before{content:"\f178"}.wk-noconflict .uk-icon-apple:before{content:"\f179"}.wk-noconflict .uk-icon-windows:before{content:"\f17a"}.wk-noconflict .uk-icon-android:before{content:"\f17b"}.wk-noconflict .uk-icon-linux:before{content:"\f17c"}.wk-noconflict .uk-icon-dribbble:before{content:"\f17d"}.wk-noconflict .uk-icon-skype:before{content:"\f17e"}.wk-noconflict .uk-icon-foursquare:before{content:"\f180"}.wk-noconflict .uk-icon-trello:before{content:"\f181"}.wk-noconflict .uk-icon-female:before{content:"\f182"}.wk-noconflict .uk-icon-male:before{content:"\f183"}.wk-noconflict .uk-icon-gittip:before,.wk-noconflict .uk-icon-gratipay:before{content:"\f184"}.wk-noconflict .uk-icon-sun-o:before{content:"\f185"}.wk-noconflict .uk-icon-moon-o:before{content:"\f186"}.wk-noconflict .uk-icon-archive:before{content:"\f187"}.wk-noconflict .uk-icon-bug:before{content:"\f188"}.wk-noconflict .uk-icon-vk:before{content:"\f189"}.wk-noconflict .uk-icon-weibo:before{content:"\f18a"}.wk-noconflict .uk-icon-renren:before{content:"\f18b"}.wk-noconflict .uk-icon-pagelines:before{content:"\f18c"}.wk-noconflict .uk-icon-stack-exchange:before{content:"\f18d"}.wk-noconflict .uk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-noconflict .uk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-noconflict .uk-icon-caret-square-o-left:before,.wk-noconflict .uk-icon-toggle-left:before{content:"\f191"}.wk-noconflict .uk-icon-dot-circle-o:before{content:"\f192"}.wk-noconflict .uk-icon-wheelchair:before{content:"\f193"}.wk-noconflict .uk-icon-vimeo-square:before{content:"\f194"}.wk-noconflict .uk-icon-try:before,.wk-noconflict .uk-icon-turkish-lira:before{content:"\f195"}.wk-noconflict .uk-icon-plus-square-o:before{content:"\f196"}.wk-noconflict .uk-icon-space-shuttle:before{content:"\f197"}.wk-noconflict .uk-icon-slack:before{content:"\f198"}.wk-noconflict .uk-icon-envelope-square:before{content:"\f199"}.wk-noconflict .uk-icon-wordpress:before{content:"\f19a"}.wk-noconflict .uk-icon-openid:before{content:"\f19b"}.wk-noconflict .uk-icon-bank:before,.wk-noconflict .uk-icon-institution:before,.wk-noconflict .uk-icon-university:before{content:"\f19c"}.wk-noconflict .uk-icon-graduation-cap:before,.wk-noconflict .uk-icon-mortar-board:before{content:"\f19d"}.wk-noconflict .uk-icon-yahoo:before{content:"\f19e"}.wk-noconflict .uk-icon-google:before{content:"\f1a0"}.wk-noconflict .uk-icon-reddit:before{content:"\f1a1"}.wk-noconflict .uk-icon-reddit-square:before{content:"\f1a2"}.wk-noconflict .uk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-noconflict .uk-icon-stumbleupon:before{content:"\f1a4"}.wk-noconflict .uk-icon-delicious:before{content:"\f1a5"}.wk-noconflict .uk-icon-digg:before{content:"\f1a6"}.wk-noconflict .uk-icon-pied-piper:before{content:"\f1a7"}.wk-noconflict .uk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-noconflict .uk-icon-drupal:before{content:"\f1a9"}.wk-noconflict .uk-icon-joomla:before{content:"\f1aa"}.wk-noconflict .uk-icon-language:before{content:"\f1ab"}.wk-noconflict .uk-icon-fax:before{content:"\f1ac"}.wk-noconflict .uk-icon-building:before{content:"\f1ad"}.wk-noconflict .uk-icon-child:before{content:"\f1ae"}.wk-noconflict .uk-icon-paw:before{content:"\f1b0"}.wk-noconflict .uk-icon-spoon:before{content:"\f1b1"}.wk-noconflict .uk-icon-cube:before{content:"\f1b2"}.wk-noconflict .uk-icon-cubes:before{content:"\f1b3"}.wk-noconflict .uk-icon-behance:before{content:"\f1b4"}.wk-noconflict .uk-icon-behance-square:before{content:"\f1b5"}.wk-noconflict .uk-icon-steam:before{content:"\f1b6"}.wk-noconflict .uk-icon-steam-square:before{content:"\f1b7"}.wk-noconflict .uk-icon-recycle:before{content:"\f1b8"}.wk-noconflict .uk-icon-automobile:before,.wk-noconflict .uk-icon-car:before{content:"\f1b9"}.wk-noconflict .uk-icon-cab:before,.wk-noconflict .uk-icon-taxi:before{content:"\f1ba"}.wk-noconflict .uk-icon-tree:before{content:"\f1bb"}.wk-noconflict .uk-icon-spotify:before{content:"\f1bc"}.wk-noconflict .uk-icon-deviantart:before{content:"\f1bd"}.wk-noconflict .uk-icon-soundcloud:before{content:"\f1be"}.wk-noconflict .uk-icon-database:before{content:"\f1c0"}.wk-noconflict .uk-icon-file-pdf-o:before{content:"\f1c1"}.wk-noconflict .uk-icon-file-word-o:before{content:"\f1c2"}.wk-noconflict .uk-icon-file-excel-o:before{content:"\f1c3"}.wk-noconflict .uk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-noconflict .uk-icon-file-image-o:before,.wk-noconflict .uk-icon-file-photo-o:before,.wk-noconflict .uk-icon-file-picture-o:before{content:"\f1c5"}.wk-noconflict .uk-icon-file-archive-o:before,.wk-noconflict .uk-icon-file-zip-o:before{content:"\f1c6"}.wk-noconflict .uk-icon-file-audio-o:before,.wk-noconflict .uk-icon-file-sound-o:before{content:"\f1c7"}.wk-noconflict .uk-icon-file-movie-o:before,.wk-noconflict .uk-icon-file-video-o:before{content:"\f1c8"}.wk-noconflict .uk-icon-file-code-o:before{content:"\f1c9"}.wk-noconflict .uk-icon-vine:before{content:"\f1ca"}.wk-noconflict .uk-icon-codepen:before{content:"\f1cb"}.wk-noconflict .uk-icon-jsfiddle:before{content:"\f1cc"}.wk-noconflict .uk-icon-life-bouy:before,.wk-noconflict .uk-icon-life-buoy:before,.wk-noconflict .uk-icon-life-ring:before,.wk-noconflict .uk-icon-life-saver:before,.wk-noconflict .uk-icon-support:before{content:"\f1cd"}.wk-noconflict .uk-icon-circle-o-notch:before{content:"\f1ce"}.wk-noconflict .uk-icon-ra:before,.wk-noconflict .uk-icon-rebel:before{content:"\f1d0"}.wk-noconflict .uk-icon-empire:before,.wk-noconflict .uk-icon-ge:before{content:"\f1d1"}.wk-noconflict .uk-icon-git-square:before{content:"\f1d2"}.wk-noconflict .uk-icon-git:before{content:"\f1d3"}.wk-noconflict .uk-icon-hacker-news:before{content:"\f1d4"}.wk-noconflict .uk-icon-tencent-weibo:before{content:"\f1d5"}.wk-noconflict .uk-icon-qq:before{content:"\f1d6"}.wk-noconflict .uk-icon-wechat:before,.wk-noconflict .uk-icon-weixin:before{content:"\f1d7"}.wk-noconflict .uk-icon-paper-plane:before,.wk-noconflict .uk-icon-send:before{content:"\f1d8"}.wk-noconflict .uk-icon-paper-plane-o:before,.wk-noconflict .uk-icon-send-o:before{content:"\f1d9"}.wk-noconflict .uk-icon-history:before{content:"\f1da"}.wk-noconflict .uk-icon-circle-thin:before,.wk-noconflict .uk-icon-genderless:before{content:"\f1db"}.wk-noconflict .uk-icon-header:before{content:"\f1dc"}.wk-noconflict .uk-icon-paragraph:before{content:"\f1dd"}.wk-noconflict .uk-icon-sliders:before{content:"\f1de"}.wk-noconflict .uk-icon-share-alt:before{content:"\f1e0"}.wk-noconflict .uk-icon-share-alt-square:before{content:"\f1e1"}.wk-noconflict .uk-icon-bomb:before{content:"\f1e2"}.wk-noconflict .uk-icon-futbol-o:before,.wk-noconflict .uk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-noconflict .uk-icon-tty:before{content:"\f1e4"}.wk-noconflict .uk-icon-binoculars:before{content:"\f1e5"}.wk-noconflict .uk-icon-plug:before{content:"\f1e6"}.wk-noconflict .uk-icon-slideshare:before{content:"\f1e7"}.wk-noconflict .uk-icon-twitch:before{content:"\f1e8"}.wk-noconflict .uk-icon-yelp:before{content:"\f1e9"}.wk-noconflict .uk-icon-newspaper-o:before{content:"\f1ea"}.wk-noconflict .uk-icon-wifi:before{content:"\f1eb"}.wk-noconflict .uk-icon-calculator:before{content:"\f1ec"}.wk-noconflict .uk-icon-paypal:before{content:"\f1ed"}.wk-noconflict .uk-icon-google-wallet:before{content:"\f1ee"}.wk-noconflict .uk-icon-cc-visa:before{content:"\f1f0"}.wk-noconflict .uk-icon-cc-mastercard:before{content:"\f1f1"}.wk-noconflict .uk-icon-cc-discover:before{content:"\f1f2"}.wk-noconflict .uk-icon-cc-amex:before{content:"\f1f3"}.wk-noconflict .uk-icon-cc-paypal:before{content:"\f1f4"}.wk-noconflict .uk-icon-cc-stripe:before{content:"\f1f5"}.wk-noconflict .uk-icon-bell-slash:before{content:"\f1f6"}.wk-noconflict .uk-icon-bell-slash-o:before{content:"\f1f7"}.wk-noconflict .uk-icon-trash:before{content:"\f1f8"}.wk-noconflict .uk-icon-copyright:before{content:"\f1f9"}.wk-noconflict .uk-icon-at:before{content:"\f1fa"}.wk-noconflict .uk-icon-eyedropper:before{content:"\f1fb"}.wk-noconflict .uk-icon-paint-brush:before{content:"\f1fc"}.wk-noconflict .uk-icon-birthday-cake:before{content:"\f1fd"}.wk-noconflict .uk-icon-area-chart:before{content:"\f1fe"}.wk-noconflict .uk-icon-pie-chart:before{content:"\f200"}.wk-noconflict .uk-icon-line-chart:before{content:"\f201"}.wk-noconflict .uk-icon-lastfm:before{content:"\f202"}.wk-noconflict .uk-icon-lastfm-square:before{content:"\f203"}.wk-noconflict .uk-icon-toggle-off:before{content:"\f204"}.wk-noconflict .uk-icon-toggle-on:before{content:"\f205"}.wk-noconflict .uk-icon-bicycle:before{content:"\f206"}.wk-noconflict .uk-icon-bus:before{content:"\f207"}.wk-noconflict .uk-icon-ioxhost:before{content:"\f208"}.wk-noconflict .uk-icon-angellist:before{content:"\f209"}.wk-noconflict .uk-icon-cc:before{content:"\f20a"}.wk-noconflict .uk-icon-ils:before,.wk-noconflict .uk-icon-shekel:before,.wk-noconflict .uk-icon-sheqel:before{content:"\f20b"}.wk-noconflict .uk-icon-meanpath:before{content:"\f20c"}.wk-noconflict .uk-icon-buysellads:before{content:"\f20d"}.wk-noconflict .uk-icon-connectdevelop:before{content:"\f20e"}.wk-noconflict .uk-icon-dashcube:before{content:"\f210"}.wk-noconflict .uk-icon-forumbee:before{content:"\f211"}.wk-noconflict .uk-icon-leanpub:before{content:"\f212"}.wk-noconflict .uk-icon-sellsy:before{content:"\f213"}.wk-noconflict .uk-icon-shirtsinbulk:before{content:"\f214"}.wk-noconflict .uk-icon-simplybuilt:before{content:"\f215"}.wk-noconflict .uk-icon-skyatlas:before{content:"\f216"}.wk-noconflict .uk-icon-cart-plus:before{content:"\f217"}.wk-noconflict .uk-icon-cart-arrow-down:before{content:"\f218"}.wk-noconflict .uk-icon-diamond:before{content:"\f219"}.wk-noconflict .uk-icon-ship:before{content:"\f21a"}.wk-noconflict .uk-icon-user-secret:before{content:"\f21b"}.wk-noconflict .uk-icon-motorcycle:before{content:"\f21c"}.wk-noconflict .uk-icon-street-view:before{content:"\f21d"}.wk-noconflict .uk-icon-heartbeat:before{content:"\f21e"}.wk-noconflict .uk-icon-venus:before{content:"\f221"}.wk-noconflict .uk-icon-mars:before{content:"\f222"}.wk-noconflict .uk-icon-mercury:before{content:"\f223"}.wk-noconflict .uk-icon-transgender:before{content:"\f224"}.wk-noconflict .uk-icon-transgender-alt:before{content:"\f225"}.wk-noconflict .uk-icon-venus-double:before{content:"\f226"}.wk-noconflict .uk-icon-mars-double:before{content:"\f227"}.wk-noconflict .uk-icon-venus-mars:before{content:"\f228"}.wk-noconflict .uk-icon-mars-stroke:before{content:"\f229"}.wk-noconflict .uk-icon-mars-stroke-v:before{content:"\f22a"}.wk-noconflict .uk-icon-mars-stroke-h:before{content:"\f22b"}.wk-noconflict .uk-icon-neuter:before{content:"\f22c"}.wk-noconflict .uk-icon-facebook-official:before{content:"\f230"}.wk-noconflict .uk-icon-pinterest-p:before{content:"\f231"}.wk-noconflict .uk-icon-whatsapp:before{content:"\f232"}.wk-noconflict .uk-icon-server:before{content:"\f233"}.wk-noconflict .uk-icon-user-plus:before{content:"\f234"}.wk-noconflict .uk-icon-user-times:before{content:"\f235"}.wk-noconflict .uk-icon-bed:before,.wk-noconflict .uk-icon-hotel:before{content:"\f236"}.wk-noconflict .uk-icon-viacoin:before{content:"\f237"}.wk-noconflict .uk-icon-train:before{content:"\f238"}.wk-noconflict .uk-icon-subway:before{content:"\f239"}.wk-noconflict .uk-icon-medium-logo:before{content:"\f23a"}.wk-noconflict .uk-icon-500px:before{content:"\f26e"}.wk-noconflict .uk-icon-amazon:before{content:"\f270"}.wk-noconflict .uk-icon-balance-scale:before{content:"\f24e"}.wk-noconflict .uk-icon-battery-0:before,.wk-noconflict .uk-icon-battery-empty:before{content:"\f244"}.wk-noconflict .uk-icon-battery-1:before,.wk-noconflict .uk-icon-battery-quarter:before{content:"\f243"}.wk-noconflict .uk-icon-battery-2:before,.wk-noconflict .uk-icon-battery-half:before{content:"\f242"}.wk-noconflict .uk-icon-battery-3:before,.wk-noconflict .uk-icon-battery-three-quarters:before{content:"\f241"}.wk-noconflict .uk-icon-battery-4:before,.wk-noconflict .uk-icon-battery-full:before{content:"\f240"}.wk-noconflict .uk-icon-black-tie:before{content:"\f27e"}.wk-noconflict .uk-icon-calendar-check-o:before{content:"\f274"}.wk-noconflict .uk-icon-calendar-minus-o:before{content:"\f272"}.wk-noconflict .uk-icon-calendar-plus-o:before{content:"\f271"}.wk-noconflict .uk-icon-calendar-times-o:before{content:"\f273"}.wk-noconflict .uk-icon-cc-diners-club:before{content:"\f24c"}.wk-noconflict .uk-icon-cc-jcb:before{content:"\f24b"}.wk-noconflict .uk-icon-chrome:before{content:"\f268"}.wk-noconflict .uk-icon-clone:before{content:"\f24d"}.wk-noconflict .uk-icon-commenting:before{content:"\f27a"}.wk-noconflict .uk-icon-commenting-o:before{content:"\f27b"}.wk-noconflict .uk-icon-contao:before{content:"\f26d"}.wk-noconflict .uk-icon-creative-commons:before{content:"\f25e"}.wk-noconflict .uk-icon-expeditedssl:before{content:"\f23e"}.wk-noconflict .uk-icon-firefox:before{content:"\f269"}.wk-noconflict .uk-icon-fonticons:before{content:"\f280"}.wk-noconflict .uk-icon-get-pocket:before{content:"\f265"}.wk-noconflict .uk-icon-gg:before{content:"\f260"}.wk-noconflict .uk-icon-gg-circle:before{content:"\f261"}.wk-noconflict .uk-icon-hand-lizard-o:before{content:"\f258"}.wk-noconflict .uk-icon-hand-paper-o:before,.wk-noconflict .uk-icon-hand-stop-o:before{content:"\f256"}.wk-noconflict .uk-icon-hand-peace-o:before{content:"\f25b"}.wk-noconflict .uk-icon-hand-pointer-o:before{content:"\f25a"}.wk-noconflict .uk-icon-hand-grab-o:before,.wk-noconflict .uk-icon-hand-rock-o:before{content:"\f255"}.wk-noconflict .uk-icon-hand-scissors-o:before{content:"\f257"}.wk-noconflict .uk-icon-hand-spock-o:before{content:"\f259"}.wk-noconflict .uk-icon-hourglass:before{content:"\f254"}.wk-noconflict .uk-icon-hourglass-o:before{content:"\f250"}.wk-noconflict .uk-icon-hourglass-1:before,.wk-noconflict .uk-icon-hourglass-start:before{content:"\f251"}.wk-noconflict .uk-icon-hourglass-2:before,.wk-noconflict .uk-icon-hourglass-half:before{content:"\f252"}.wk-noconflict .uk-icon-hourglass-3:before,.wk-noconflict .uk-icon-hourglass-end:before{content:"\f253"}.wk-noconflict .uk-icon-houzz:before{content:"\f27c"}.wk-noconflict .uk-icon-i-cursor:before{content:"\f246"}.wk-noconflict .uk-icon-industry:before{content:"\f275"}.wk-noconflict .uk-icon-internet-explorer:before{content:"\f26b"}.wk-noconflict .uk-icon-map:before{content:"\f279"}.wk-noconflict .uk-icon-map-o:before{content:"\f278"}.wk-noconflict .uk-icon-map-pin:before{content:"\f276"}.wk-noconflict .uk-icon-map-signs:before{content:"\f277"}.wk-noconflict .uk-icon-mouse-pointer:before{content:"\f245"}.wk-noconflict .uk-icon-object-group:before{content:"\f247"}.wk-noconflict .uk-icon-object-ungroup:before{content:"\f248"}.wk-noconflict .uk-icon-odnoklassniki:before{content:"\f263"}.wk-noconflict .uk-icon-odnoklassniki-square:before{content:"\f264"}.wk-noconflict .uk-icon-opencart:before{content:"\f23d"}.wk-noconflict .uk-icon-opera:before{content:"\f26a"}.wk-noconflict .uk-icon-optin-monster:before{content:"\f23c"}.wk-noconflict .uk-icon-registered:before{content:"\f25d"}.wk-noconflict .uk-icon-safari:before{content:"\f267"}.wk-noconflict .uk-icon-sticky-note:before{content:"\f249"}.wk-noconflict .uk-icon-sticky-note-o:before{content:"\f24a"}.wk-noconflict .uk-icon-television:before,.wk-noconflict .uk-icon-tv:before{content:"\f26c"}.wk-noconflict .uk-icon-trademark:before{content:"\f25c"}.wk-noconflict .uk-icon-tripadvisor:before{content:"\f262"}.wk-noconflict .uk-icon-vimeo:before{content:"\f27d"}.wk-noconflict .uk-icon-wikipedia-w:before{content:"\f266"}.wk-noconflict .uk-icon-y-combinator:before,.wk-noconflict .uk-icon-yc:before{content:"\f23b"}.wk-noconflict .uk-icon-y-combinator-square:before,.wk-noconflict .uk-icon-yc-square:before{content:"\f1d4"}.wk-noconflict .uk-icon-bluetooth:before{content:"\f293"}.wk-noconflict .uk-icon-bluetooth-b:before{content:"\f294"}.wk-noconflict .uk-icon-codiepie:before{content:"\f284"}.wk-noconflict .uk-icon-credit-card-alt:before{content:"\f283"}.wk-noconflict .uk-icon-edge:before{content:"\f282"}.wk-noconflict .uk-icon-fort-awesome:before{content:"\f286"}.wk-noconflict .uk-icon-hashtag:before{content:"\f292"}.wk-noconflict .uk-icon-mixcloud:before{content:"\f289"}.wk-noconflict .uk-icon-modx:before{content:"\f285"}.wk-noconflict .uk-icon-pause-circle:before{content:"\f28b"}.wk-noconflict .uk-icon-pause-circle-o:before{content:"\f28c"}.wk-noconflict .uk-icon-percent:before{content:"\f295"}.wk-noconflict .uk-icon-product-hunt:before{content:"\f288"}.wk-noconflict .uk-icon-reddit-alien:before{content:"\f281"}.wk-noconflict .uk-icon-scribd:before{content:"\f28a"}.wk-noconflict .uk-icon-shopping-bag:before{content:"\f290"}.wk-noconflict .uk-icon-shopping-basket:before{content:"\f291"}.wk-noconflict .uk-icon-stop-circle:before{content:"\f28d"}.wk-noconflict .uk-icon-stop-circle-o:before{content:"\f28e"}.wk-noconflict .uk-icon-usb:before{content:"\f287"}.wk-noconflict .uk-icon-american-sign-language-interpreting:before,.wk-noconflict .uk-icon-asl-interpreting:before{content:"\f2a3"}.wk-noconflict .uk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-noconflict .uk-icon-audio-description:before{content:"\f29e"}.wk-noconflict .uk-icon-blind:before{content:"\f29d"}.wk-noconflict .uk-icon-braille:before{content:"\f2a1"}.wk-noconflict .uk-icon-deaf:before,.wk-noconflict .uk-icon-deafness:before{content:"\f2a4"}.wk-noconflict .uk-icon-envira:before{content:"\f299"}.wk-noconflict .uk-icon-fa:before,.wk-noconflict .uk-icon-font-awesome:before{content:"\f2b4"}.wk-noconflict .uk-icon-first-order:before{content:"\f2b0"}.wk-noconflict .uk-icon-gitlab:before{content:"\f296"}.wk-noconflict .uk-icon-glide:before{content:"\f2a5"}.wk-noconflict .uk-icon-glide-g:before{content:"\f2a6"}.wk-noconflict .uk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-noconflict .uk-icon-low-vision:before{content:"\f2a8"}.wk-noconflict .uk-icon-question-circle-o:before{content:"\f29c"}.wk-noconflict .uk-icon-sign-language:before,.wk-noconflict .uk-icon-signing:before{content:"\f2a7"}.wk-noconflict .uk-icon-snapchat:before{content:"\f2ab"}.wk-noconflict .uk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-noconflict .uk-icon-snapchat-square:before{content:"\f2ad"}.wk-noconflict .uk-icon-themeisle:before{content:"\f2b2"}.wk-noconflict .uk-icon-universal-access:before{content:"\f29a"}.wk-noconflict .uk-icon-viadeo:before{content:"\f2a9"}.wk-noconflict .uk-icon-viadeo-square:before{content:"\f2aa"}.wk-noconflict .uk-icon-volume-control-phone:before{content:"\f2a0"}.wk-noconflict .uk-icon-wheelchair-alt:before{content:"\f29b"}.wk-noconflict .uk-icon-wpbeginner:before{content:"\f297"}.wk-noconflict .uk-icon-wpforms:before{content:"\f298"}.wk-noconflict .uk-icon-yoast:before{content:"\f2b1"}.wk-noconflict .uk-icon-adress-book:before{content:"\f2b9"}.wk-noconflict .uk-icon-adress-book-o:before{content:"\f2ba"}.wk-noconflict .uk-icon-adress-card:before{content:"\f2bb"}.wk-noconflict .uk-icon-adress-card-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-bandcamp:before{content:"\f2d5"}.wk-noconflict .uk-icon-bath:before,.wk-noconflict .uk-icon-bathub:before{content:"\f2cd"}.wk-noconflict .uk-icon-drivers-license:before{content:"\f2c2"}.wk-noconflict .uk-icon-drivers-license-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-eercast:before{content:"\f2da"}.wk-noconflict .uk-icon-envelope-open:before{content:"\f2b6"}.wk-noconflict .uk-icon-envelope-open-o:before{content:"\f2b7"}.wk-noconflict .uk-icon-etsy:before{content:"\f2d7"}.wk-noconflict .uk-icon-free-code-camp:before{content:"\f2c5"}.wk-noconflict .uk-icon-grav:before{content:"\f2d6"}.wk-noconflict .uk-icon-handshake-o:before{content:"\f2b5"}.wk-noconflict .uk-icon-id-badge:before{content:"\f2c1"}.wk-noconflict .uk-icon-id-card:before{content:"\f2c2"}.wk-noconflict .uk-icon-id-card-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-imdb:before{content:"\f2d8"}.wk-noconflict .uk-icon-linode:before{content:"\f2b8"}.wk-noconflict .uk-icon-meetup:before{content:"\f2e0"}.wk-noconflict .uk-icon-microchip:before{content:"\f2db"}.wk-noconflict .uk-icon-podcast:before{content:"\f2ce"}.wk-noconflict .uk-icon-quora:before{content:"\f2c4"}.wk-noconflict .uk-icon-ravelry:before{content:"\f2d9"}.wk-noconflict .uk-icon-s15:before{content:"\f2cd"}.wk-noconflict .uk-icon-shower:before{content:"\f2cc"}.wk-noconflict .uk-icon-snowflake-o:before{content:"\f2dc"}.wk-noconflict .uk-icon-superpowers:before{content:"\f2dd"}.wk-noconflict .uk-icon-telegram:before{content:"\f2c6"}.wk-noconflict .uk-icon-thermometer:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-0:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-1:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-2:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-3:before{content:"\f2c8"}.wk-noconflict .uk-icon-thermometer-4:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-empty:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-full:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-half:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-noconflict .uk-icon-times-rectangle:before{content:"\f2d3"}.wk-noconflict .uk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-user-circle:before{content:"\f2bd"}.wk-noconflict .uk-icon-user-circle-o:before{content:"\f2be"}.wk-noconflict .uk-icon-user-o:before{content:"\f2c0"}.wk-noconflict .uk-icon-vcard:before{content:"\f2bb"}.wk-noconflict .uk-icon-vcard-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-widow-close:before{content:"\f2d3"}.wk-noconflict .uk-icon-widow-close-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-window-maximize:before{content:"\f2d0"}.wk-noconflict .uk-icon-window-minimize:before{content:"\f2d1"}.wk-noconflict .uk-icon-window-restore:before{content:"\f2d2"}.wk-noconflict .uk-icon-wpexplorer:before{content:"\f2de"}.wk-noconflict .uk-badge{display:inline-block;padding:0 5px;background:#37a5e4;font-size:10px;font-weight:400;line-height:14px;color:#fff;text-align:center;vertical-align:middle;text-transform:none;border-radius:2px}.wk-noconflict a.uk-badge:hover{color:#fff}.wk-noconflict .uk-badge-notification{box-sizing:border-box;min-width:18px;border-radius:500px;font-size:12px;line-height:18px}.wk-noconflict .uk-badge-success{background-color:#80c96d}.wk-noconflict .uk-badge-warning{background-color:#ff9a2e}.wk-noconflict .uk-badge-danger{background-color:#f0615b}.wk-noconflict .uk-alert{margin-bottom:20px;padding:10px;background:#e1f2fb;color:#37a5e4;border-radius:2px}.wk-noconflict *+.uk-alert{margin-top:20px}.wk-noconflict .uk-alert>:last-child{margin-bottom:0}.wk-noconflict .uk-alert h1,.wk-noconflict .uk-alert h2,.wk-noconflict .uk-alert h3,.wk-noconflict .uk-alert h4,.wk-noconflict .uk-alert h5,.wk-noconflict .uk-alert h6{color:inherit}.wk-noconflict .uk-alert>.uk-close:first-child{float:right}.wk-noconflict .uk-alert>.uk-close:first-child+*{margin-top:0}.wk-noconflict .uk-alert-success{background:#ecf7e9;color:#80c96d}.wk-noconflict .uk-alert-warning{background:#fff0e0;color:#ff9a2e}.wk-noconflict .uk-alert-danger{background:#fde7e7;color:#f0615b}.wk-noconflict .uk-alert-large{padding:20px}.wk-noconflict .uk-alert-large>.uk-close:first-child{margin:-10px -10px 0 0}.wk-noconflict .uk-overlay-area-content>:last-child,.wk-noconflict .uk-overlay-panel.uk-flex>*>:last-child,.wk-noconflict .uk-overlay-panel>:last-child,.wk-noconflict .uk-overlay>:first-child{margin-bottom:0}.wk-noconflict .uk-overlay{display:inline-block;position:relative;max-width:100%;vertical-align:middle;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-noconflict .uk-overlay-area:empty:before,.wk-noconflict .uk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-noconflict .uk-overlay.uk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-noconflict .uk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-noconflict .uk-overlay-panel a[class*=uk-icon-]:not(.uk-icon-button),.wk-noconflict .uk-overlay-panel h1,.wk-noconflict .uk-overlay-panel h2,.wk-noconflict .uk-overlay-panel h3,.wk-noconflict .uk-overlay-panel h4,.wk-noconflict .uk-overlay-panel h5,.wk-noconflict .uk-overlay-panel h6{color:inherit}.wk-noconflict .uk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-noconflict .uk-overlay-active :not(.uk-active)>.uk-overlay-panel:not(.uk-ignore),.wk-noconflict .uk-overlay-hover:not(:hover):not(.uk-hover) .uk-overlay-panel:not(.uk-ignore){opacity:0}.wk-noconflict .uk-overlay-background{background:rgba(0,0,0,.5)}.wk-noconflict .uk-overlay-image{padding:0}.wk-noconflict .uk-overlay-top{bottom:auto}.wk-noconflict .uk-overlay-bottom{top:auto}.wk-noconflict .uk-overlay-left{right:auto}.wk-noconflict .uk-overlay-right{left:auto}.wk-noconflict .uk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-blur,.wk-noconflict .uk-overlay-fade,.wk-noconflict .uk-overlay-grayscale,.wk-noconflict .uk-overlay-scale,.wk-noconflict .uk-overlay-spin,.wk-noconflict [class*=uk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-noconflict .uk-overlay-active .uk-overlay-fade,.wk-noconflict .uk-overlay-active .uk-overlay-scale,.wk-noconflict .uk-overlay-active .uk-overlay-spin,.wk-noconflict .uk-overlay-active [class*=uk-overlay-slide]{transition-duration:.8s}.wk-noconflict .uk-overlay-fade{opacity:.7}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-fade,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-fade,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-fade{opacity:1}.wk-noconflict .uk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-scale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-scale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-noconflict .uk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-spin,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-spin,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-noconflict .uk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}.wk-noconflict [class*=uk-overlay-slide]{opacity:0}.wk-noconflict .uk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-noconflict .uk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-noconflict .uk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-noconflict .uk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-noconflict .uk-overlay-active .uk-active>[class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover.uk-hover [class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover:hover [class*=uk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-noconflict .uk-overlay-area,.wk-noconflict .uk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-noconflict .uk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-area,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay:hover .uk-overlay-area{opacity:1}.wk-noconflict .uk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-area:not(:empty){font-size:0}.wk-noconflict .uk-overlay-area:not(:empty):before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-overlay-area-content{display:inline-block;box-sizing:border-box;width:100%;vertical-align:middle;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-noconflict .uk-overlay-area-content a:not([class]),.wk-noconflict .uk-overlay-area-content a:not([class]):hover{color:inherit}.wk-noconflict .uk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-caption,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay:hover .uk-overlay-caption{opacity:1}.wk-noconflict [class*=uk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{.wk-noconflict [data-uk-scrollspy*=uk-animation-]:not([data-uk-scrollspy*=target]){opacity:0}}.wk-noconflict .uk-animation-fade{-webkit-animation-name:uk-fade;animation-name:uk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-noconflict .uk-animation-scale-up{-webkit-animation-name:uk-fade-scale-02;animation-name:uk-fade-scale-02}.wk-noconflict .uk-animation-scale-down{-webkit-animation-name:uk-fade-scale-18;animation-name:uk-fade-scale-18}.wk-noconflict .uk-animation-slide-top{-webkit-animation-name:uk-fade-top;animation-name:uk-fade-top}.wk-noconflict .uk-animation-slide-bottom{-webkit-animation-name:uk-fade-bottom;animation-name:uk-fade-bottom}.wk-noconflict .uk-animation-slide-left{-webkit-animation-name:uk-fade-left;animation-name:uk-fade-left}.wk-noconflict .uk-animation-slide-right{-webkit-animation-name:uk-fade-right;animation-name:uk-fade-right}.wk-noconflict .uk-animation-scale{-webkit-animation-name:uk-scale-12;animation-name:uk-scale-12}.wk-noconflict .uk-animation-shake{-webkit-animation-name:uk-shake;animation-name:uk-shake}.wk-noconflict .uk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-noconflict .uk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-noconflict .uk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-noconflict .uk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-noconflict .uk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-noconflict .uk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-noconflict .uk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-noconflict .uk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-noconflict .uk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-noconflict .uk-animation-hover:not(:hover),.wk-noconflict .uk-animation-hover:not(:hover) [class*=uk-animation-],.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover),.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover) [class*=uk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes uk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes uk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes uk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes uk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes uk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes uk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes uk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-noconflict .uk-dropdown,.wk-noconflict .uk-dropdown-blank{display:none;position:absolute;z-index:100020;box-sizing:border-box;width:200px}.wk-noconflict .uk-dropdown{padding:20px;background:#fff;color:#444;font-size:1rem;vertical-align:top;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-dropdown:focus{outline:0}.uk-open>.uk-dropdown,.uk-open>.uk-dropdown-blank{display:block;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-dropdown-top{margin-top:-5px}.wk-noconflict .uk-dropdown-bottom{margin-top:5px}.wk-noconflict .uk-dropdown-left{margin-left:-5px}.wk-noconflict .uk-dropdown-right{margin-left:5px}.wk-noconflict .uk-dropdown .uk-nav{margin:0 -20px}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]>.uk-panel+.uk-panel,.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2),.wk-noconflict .uk-grid .uk-dropdown-grid+.uk-dropdown-grid{margin-top:20px}@media (min-width:768px){.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid{margin-left:-20px;margin-right:-20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]{padding-left:20px;padding-right:20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-dropdown-width-2:not(.uk-dropdown-stack){width:400px}.wk-noconflict .uk-dropdown-width-3:not(.uk-dropdown-stack){width:600px}.wk-noconflict .uk-dropdown-width-4:not(.uk-dropdown-stack){width:800px}.wk-noconflict .uk-dropdown-width-5:not(.uk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){margin-top:20px}}.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-small{min-width:150px;width:auto;padding:5px;white-space:nowrap}.wk-noconflict .uk-dropdown-small .uk-nav{margin:0 -5px}.wk-noconflict .uk-dropdown-navbar{margin-top:5px;background:#fafafa;color:#999;min-width:150px;width:auto;white-space:nowrap}.uk-open>.uk-dropdown-navbar{-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out}.wk-noconflict .uk-dropdown-scrollable{overflow-y:auto;max-height:200px}.uk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.9);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.uk-modal-caption,.uk-modal-page,.uk-modal-page body,.wk-noconflict .uk-nbfc{overflow:hidden}.uk-modal.uk-open{opacity:1}.wk-noconflict .uk-modal-dialog{position:relative;box-sizing:border-box;margin:50px auto;padding:30px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-noconflict .uk-modal-dialog{width:auto;margin:10px auto}}.uk-open .uk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-noconflict .uk-modal-dialog>:not([class*=uk-modal-]):last-child{margin-bottom:0}.wk-noconflict .uk-modal-dialog>.uk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-noconflict .uk-modal-dialog>.uk-close:first-child+:not([class*=uk-modal-]){margin-top:0}.wk-noconflict .uk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{top:-7px;right:-7px}}.wk-noconflict .uk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-noconflict .uk-modal-dialog-blank>.uk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-noconflict .uk-modal-dialog-large{width:930px}}.wk-noconflict .uk-modal-header{margin:-30px -30px 20px;padding:30px;border-bottom:1px solid #e5e5e5;border-radius:2px 2px 0 0;background:#fafafa}.wk-noconflict .uk-modal-footer{margin:20px -30px -30px;padding:30px;border-top:1px solid #e5e5e5;border-radius:0 0 2px 2px;background:#fafafa;text-align:right}.wk-noconflict .uk-modal-footer>:last-child,.wk-noconflict .uk-modal-header>:last-child{margin-bottom:0}.uk-modal-caption{position:absolute;left:0;right:0;bottom:-30px;margin-bottom:-10px;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap}.uk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.uk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-modal-header+.wk-noconflict .uk-modal-header{margin-top:-20px}.uk-modal-page{height:auto}.wk-noconflict .uk-switcher{margin:0;padding:0;list-style:none}.wk-noconflict .uk-sortable-handle,.wk-noconflict .uk-sortable>*{touch-action:none}.wk-noconflict .uk-switcher>:not(.uk-active){display:none}.wk-noconflict .uk-text-small{font-size:11px;line-height:16px}.wk-noconflict .uk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-noconflict .uk-text-bold{font-weight:700}.wk-noconflict .uk-text-muted{color:#999!important}.wk-noconflict .uk-text-primary{color:#37a5e4!important}.wk-noconflict .uk-text-success{color:#80c96d!important}.wk-noconflict .uk-text-warning{color:#ff9a2e!important}.wk-noconflict .uk-text-danger{color:#f0615b!important}.wk-noconflict .uk-text-contrast{color:#fff!important}.wk-noconflict .uk-text-left{text-align:left!important}.wk-noconflict .uk-text-right{text-align:right!important}.wk-noconflict .uk-text-center{text-align:center!important}.wk-noconflict .uk-text-justify{text-align:justify!important}.wk-noconflict .uk-text-top{vertical-align:top!important}.wk-noconflict .uk-text-middle{vertical-align:middle!important}.wk-noconflict .uk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-noconflict .uk-text-center-medium{text-align:center!important}.wk-noconflict .uk-text-left-medium{text-align:left!important}}.wk-noconflict .uk-text-nowrap{white-space:nowrap}.wk-noconflict .uk-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wk-noconflict .uk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-noconflict .uk-text-capitalize{text-transform:capitalize!important}.wk-noconflict .uk-text-lowercase{text-transform:lowercase!important}.wk-noconflict .uk-text-uppercase{text-transform:uppercase!important}.wk-noconflict .uk-container{box-sizing:border-box;max-width:980px;padding:0 25px}@media (min-width:1400px){.wk-noconflict .uk-modal-dialog-large{width:1150px}.wk-noconflict .uk-container{max-width:1200px;padding:0 25px}}.wk-noconflict .uk-container:after,.wk-noconflict .uk-container:before{content:"";display:table}.wk-noconflict .uk-container-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-clearfix:before{content:"";display:table-cell}.wk-noconflict .uk-clearfix:after{content:"";display:table}.wk-noconflict .uk-nbfc-alt{display:table-cell;width:10000px}.wk-noconflict .uk-float-left{float:left}.wk-noconflict .uk-float-right{float:right}.wk-noconflict [class*=uk-float-]{max-width:100%}.wk-noconflict [class*=uk-align-]{display:block;margin-bottom:20px}.wk-noconflict .uk-align-left{margin-right:20px;float:left}.wk-noconflict .uk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-noconflict .uk-align-medium-left{margin-right:20px;float:left}.wk-noconflict .uk-align-medium-right{margin-left:20px;float:right}}.wk-noconflict .uk-align-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-vertical-align{font-size:0}.wk-noconflict .uk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom,.wk-noconflict .uk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-noconflict .uk-vertical-align-middle{vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom{vertical-align:bottom}.wk-noconflict [class*=uk-height]{box-sizing:border-box}.wk-noconflict .uk-height-1-1{height:100%}.wk-noconflict .uk-height-viewport{height:100vh;min-height:600px}.wk-noconflict .uk-responsive-height,.wk-noconflict .uk-responsive-width{box-sizing:border-box}.wk-noconflict .uk-responsive-width{max-width:100%!important;height:auto}.wk-noconflict .uk-responsive-height{max-height:100%;width:auto}.wk-noconflict .uk-margin{margin-bottom:20px}.wk-noconflict *+.uk-margin{margin-top:20px}.wk-noconflict .uk-margin-top{margin-top:20px!important}.wk-noconflict .uk-margin-bottom{margin-bottom:20px!important}.wk-noconflict .uk-margin-left{margin-left:20px!important}.wk-noconflict .uk-margin-right{margin-right:20px!important}.wk-noconflict .uk-margin-large{margin-bottom:30px}.wk-noconflict *+.uk-margin-large{margin-top:30px}.wk-noconflict .uk-margin-large-top{margin-top:30px!important}.wk-noconflict .uk-margin-large-bottom{margin-bottom:30px!important}.wk-noconflict .uk-margin-large-left{margin-left:30px!important}.wk-noconflict .uk-margin-large-right{margin-right:30px!important}.wk-noconflict .uk-margin-small{margin-bottom:5px}.wk-noconflict *+.uk-margin-small{margin-top:5px}.wk-noconflict .uk-margin-small-top{margin-top:5px!important}.wk-noconflict .uk-margin-small-bottom{margin-bottom:5px!important}.wk-noconflict .uk-margin-small-left{margin-left:5px!important}.wk-noconflict .uk-margin-small-right{margin-right:5px!important}.wk-noconflict .uk-margin-remove{margin:0!important}.wk-noconflict .uk-margin-top-remove{margin-top:0!important}.wk-noconflict .uk-margin-bottom-remove{margin-bottom:0!important}.wk-noconflict .uk-overflow-container>:last-child,.wk-noconflict .uk-scrollable-box>:last-child{margin-bottom:0}.wk-noconflict .uk-padding-remove{padding:0!important}.wk-noconflict .uk-padding-top-remove{padding-top:0!important}.wk-noconflict .uk-padding-bottom-remove{padding-bottom:0!important}.wk-noconflict .uk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-noconflict .uk-border-circle{border-radius:50%}.wk-noconflict .uk-border-rounded{border-radius:5px}.wk-noconflict .uk-heading-large{font-size:36px;line-height:42px}.wk-noconflict .uk-link-muted,.wk-noconflict .uk-link-muted a,.wk-noconflict .uk-link-muted a:hover,.wk-noconflict .uk-link-muted:hover{color:#444}.wk-noconflict .uk-link-reset,.wk-noconflict .uk-link-reset a,.wk-noconflict .uk-link-reset a:focus,.wk-noconflict .uk-link-reset a:hover,.wk-noconflict .uk-link-reset:focus,.wk-noconflict .uk-link-reset:hover{color:inherit;text-decoration:none}.wk-noconflict .uk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-noconflict .uk-scrollable-box{box-sizing:border-box;height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-noconflict .uk-overflow-hidden{overflow:hidden}.wk-noconflict .uk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-noconflict .uk-position-absolute,.wk-noconflict [class*=uk-position-top],.wk-noconflict [class*=uk-position-bottom]{position:absolute!important}.wk-noconflict .uk-position-top{top:0;left:0;right:0}.wk-noconflict .uk-position-bottom{bottom:0;left:0;right:0}.wk-noconflict .uk-position-top-left{top:0;left:0}.wk-noconflict .uk-position-top-right{top:0;right:0}.wk-noconflict .uk-position-bottom-left{bottom:0;left:0}.wk-noconflict .uk-position-bottom-right{bottom:0;right:0}.wk-noconflict .uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-noconflict .uk-position-relative{position:relative!important}.wk-noconflict .uk-position-z-index{z-index:1}.wk-noconflict .uk-display-block{display:block!important}.wk-noconflict .uk-display-inline{display:inline!important}.wk-noconflict .uk-display-inline-block{display:inline-block!important;max-width:100%}.wk-noconflict .uk-img-preserve,.wk-noconflict .uk-img-preserve img,.wk-noconflict [id^=wk-location-] img{max-width:none}@media (min-width:960px){.wk-noconflict .uk-hidden-large,.wk-noconflict .uk-visible-medium,.wk-noconflict .uk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-noconflict .uk-hidden-medium,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-small{display:none!important}}@media (max-width:767px){.wk-noconflict .uk-text-center-small{text-align:center!important}.wk-noconflict .uk-text-left-small{text-align:left!important}.wk-noconflict .uk-hidden-small,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-medium{display:none!important}.wk-noconflict .uk-container{padding:0 10px}}.wk-noconflict .uk-hidden{display:none!important}.wk-noconflict .uk-visible-hover:hover .uk-hidden,.wk-noconflict .uk-visible-hover:hover .uk-invisible{display:block!important;visibility:visible!important}.wk-noconflict .uk-visible-hover-inline:hover .uk-hidden,.wk-noconflict .uk-visible-hover-inline:hover .uk-invisible{display:inline-block!important;visibility:visible!important}.wk-noconflict .uk-notouch .uk-hidden-notouch,.wk-noconflict .uk-touch .uk-hidden-touch{display:none!important}.wk-noconflict .uk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-noconflict .uk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-noconflict .uk-flex-inline>*,.wk-noconflict .uk-flex>*{-ms-flex-negative:1}.wk-noconflict .uk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-noconflict .uk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-noconflict .uk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-noconflict .uk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-noconflict .uk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-noconflict .uk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-noconflict .uk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-noconflict .uk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-noconflict .uk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-noconflict .uk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-noconflict .uk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-noconflict .uk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-noconflict .uk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-noconflict .uk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-noconflict .uk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-noconflict .uk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-noconflict .uk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-noconflict .uk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-noconflict .uk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-noconflict .uk-heading-large{font-size:52px;line-height:64px}.wk-noconflict .uk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-noconflict .uk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1400px){.wk-noconflict .uk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-noconflict .uk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-noconflict .uk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-noconflict .uk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-noconflict .uk-form-file{display:inline-block;vertical-align:middle;position:relative;overflow:hidden}.wk-noconflict .uk-form-file input[type=file]{position:absolute;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;left:0;font-size:500px}.wk-noconflict .uk-placeholder{margin-bottom:15px;padding:20px;border:1px dashed #ddd;background:#fafafa;color:#444}.wk-form-heading,.wk-heading{border-bottom:1px solid #e5e5e5}.wk-noconflict *+.uk-placeholder{margin-top:15px}.wk-noconflict .uk-placeholder>:last-child{margin-bottom:0}.wk-noconflict .uk-placeholder-large{padding-top:80px;padding-bottom:80px}.wk-noconflict .uk-progress{box-sizing:border-box;height:20px;margin-bottom:20px;background:#f5f5f5;overflow:hidden;line-height:20px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);border-radius:2px}.wk-noconflict *+.uk-progress{margin-top:20px}.wk-noconflict .uk-progress-bar{width:0;height:100%;background:#37a5e4;float:left;-webkit-transition:width .6s ease;transition:width .6s ease;font-size:12px;color:#fff;text-align:center}.wk-noconflict .uk-progress-mini{height:6px}.wk-noconflict .uk-progress-small{height:12px}.wk-noconflict .uk-progress-success .uk-progress-bar{background-color:#80c96d}.wk-noconflict .uk-progress-warning .uk-progress-bar{background-color:#ff9a2e}.wk-noconflict .uk-progress-danger .uk-progress-bar{background-color:#f0615b}.wk-noconflict .uk-progress-striped .uk-progress-bar{background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:30px 30px}.wk-noconflict .uk-progress-striped.uk-active .uk-progress-bar{-webkit-animation:uk-progress-bar-stripes 2s linear infinite;animation:uk-progress-bar-stripes 2s linear infinite}@-webkit-keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}@keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}.wk-noconflict .uk-progress-mini,.wk-noconflict .uk-progress-small{border-radius:500px}.uk-notify{position:fixed;top:50px;left:50px;z-index:100040;box-sizing:border-box;width:350px}.uk-notify-bottom-right,.uk-notify-top-right{left:auto;right:50px}.uk-notify-bottom-center,.uk-notify-top-center{left:50%;margin-left:-175px}.uk-notify-bottom-center,.uk-notify-bottom-left,.uk-notify-bottom-right{top:auto;bottom:50px}@media (max-width:479px){.uk-notify{left:10px;right:10px;width:auto;margin:0}}.uk-notify-message{position:relative;margin-bottom:15px;padding:15px;background:rgba(240,240,240,.9);color:#444;font-size:16px;line-height:22px;border-radius:4px;font-weight:300}.uk-notify-message>.uk-close{visibility:hidden;float:right}.uk-notify-message:hover>.uk-close{visibility:visible}.uk-notify-message-primary{background:rgba(225,242,251,.9);color:#37a5e4}.uk-notify-message-success{background:rgba(236,247,233,.9);color:#80c96d}.uk-notify-message-warning{background:rgba(255,240,224,.9);color:#ff9a2e}.uk-notify-message-danger{background:rgba(253,231,231,.9);color:#f0615b}.wk-noconflict .uk-sortable{position:relative}.wk-noconflict .uk-sortable a,.wk-noconflict .uk-sortable img{-webkit-touch-callout:none}.wk-noconflict .uk-sortable>:last-child{margin-bottom:0}.uk-sortable-dragged{position:absolute;z-index:100050;pointer-events:none}.wk-noconflict .uk-sortable-placeholder{opacity:0}.wk-noconflict .uk-sortable-empty{min-height:30px}.uk-sortable-moving,.uk-sortable-moving *,.wk-noconflict .uk-sortable-handle:hover{cursor:move}.uk-sortable-moving iframe{pointer-events:none}.wk-noconflict .uk-dragover{box-shadow:0 0 20px rgba(100,100,100,.3)}.wk-noconflict .uk-htmleditor-navbar{background:#f5f5f5}.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-htmleditor-navbar:before{content:"";display:table}.wk-noconflict .uk-htmleditor-navbar-nav{margin:0;padding:0;list-style:none;float:left}.wk-noconflict .uk-htmleditor-navbar-nav>li{float:left;margin-bottom:0}.wk-noconflict .uk-htmleditor-navbar-nav>li>a{display:block;box-sizing:border-box;text-decoration:none;height:46px;padding:0 19px;line-height:46px;color:rgba(68,68,68,.8);font-size:11px;cursor:pointer;-webkit-transition:all .1s linear;transition:all .1s linear}.wk-noconflict .uk-htmleditor-navbar-nav>li:hover>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:focus{background-color:rgba(255,255,255,.5);color:#111;outline:0}.wk-noconflict .uk-htmleditor-navbar-nav>li.uk-active>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:active{background-color:rgba(255,255,255,.5);color:#111}.wk-noconflict .uk-htmleditor-navbar-flip{float:right}.wk-noconflict [data-mode=split] .uk-htmleditor-button-code,.wk-noconflict [data-mode=split] .uk-htmleditor-button-preview{display:none}.wk-noconflict .uk-htmleditor-content{border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;background:#fff}.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-content:before{content:"";display:table}.wk-noconflict .uk-htmleditor-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100010}.wk-noconflict .uk-htmleditor-fullscreen .uk-htmleditor-content{position:absolute;top:46px;left:0;right:0;bottom:0}.wk-noconflict .uk-htmleditor-fullscreen .uk-icon-expand:before{content:"\f066"}.wk-noconflict .uk-htmleditor-code,.wk-noconflict .uk-htmleditor-preview{box-sizing:border-box}.wk-noconflict .uk-htmleditor-preview{padding:20px;overflow-y:scroll;position:relative}.wk-noconflict [data-mode=tab][data-active-tab=code] .uk-htmleditor-preview,.wk-noconflict [data-mode=tab][data-active-tab=preview] .uk-htmleditor-code{display:none}.wk-noconflict [data-mode=split] .uk-htmleditor-code,.wk-noconflict [data-mode=split] .uk-htmleditor-preview{float:left;width:50%}.wk-noconflict [data-mode=split] .uk-htmleditor-code{border-right:1px solid #eee}.wk-noconflict .uk-htmleditor-iframe{position:absolute;top:0;left:0;width:100%;height:100%}.wk-noconflict .uk-htmleditor .CodeMirror{padding:10px;box-sizing:border-box}.wk-noconflict .uk-datepicker{z-index:100100;width:auto;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-datepicker-nav{margin-bottom:15px;text-align:center;line-height:20px}.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-datepicker-nav:before{content:"";display:table}.wk-noconflict .uk-datepicker-nav a{color:#444;text-decoration:none}.wk-noconflict .uk-datepicker-nav a:hover{color:#444}.wk-noconflict .uk-datepicker-previous{float:left}.wk-noconflict .uk-datepicker-next{float:right}.wk-noconflict .uk-datepicker-next:after,.wk-noconflict .uk-datepicker-previous:after{width:20px;font-family:FontAwesome}.wk-noconflict .uk-datepicker-previous:after{content:"\f053"}.wk-noconflict .uk-datepicker-next:after{content:"\f054"}.wk-noconflict .uk-datepicker-table{width:100%}.wk-noconflict .uk-datepicker-table td,.wk-noconflict .uk-datepicker-table th{padding:2px}.wk-noconflict .uk-datepicker-table th{font-size:12px}.wk-noconflict .uk-datepicker-table a{display:block;width:26px;line-height:24px;text-align:center;color:#444;text-decoration:none}.wk-noconflict a.uk-datepicker-table-muted{color:#999}.wk-noconflict .uk-datepicker-table a:focus,.wk-noconflict .uk-datepicker-table a:hover{background-color:#ddd;color:#444;outline:0}.wk-noconflict .uk-datepicker-table a:active{background-color:#ccc;color:#444}.wk-noconflict .uk-datepicker-table a.uk-active{background:#00a8e6;color:#fff}.wk-noconflict .uk-h1,.wk-noconflict .uk-h2,.wk-noconflict .uk-h3,.wk-noconflict .uk-h4,.wk-noconflict .uk-h5,.wk-noconflict .uk-h6{margin:0 0 20px;color:#444;font-weight:300}.wk-noconflict *+.uk-h1,.wk-noconflict *+.uk-h2,.wk-noconflict *+.uk-h3,.wk-noconflict *+.uk-h4,.wk-noconflict *+.uk-h5,.wk-noconflict *+.uk-h6{margin-top:30px}.wk-noconflict .uk-h1{font-size:36px;line-height:42px}.wk-noconflict .uk-h2{font-size:24px;line-height:30px}.wk-noconflict .uk-h3{font-size:18px;line-height:24px}.wk-noconflict .uk-h4{font-size:16px;line-height:22px}.wk-noconflict .uk-h5{font-size:14px;line-height:20px}.wk-noconflict .uk-h6{font-size:12px;line-height:18px}.wk-noconflict *+p{margin-top:20px}.wk-modal-header-blank{background:0 0}.wk-heading{margin:0 0 20px;padding-bottom:5px;font-size:18px;line-height:24px;color:#444;font-weight:300}.wk-noconflict *+.wk-heading{margin-top:20px}@media (min-width:768px){.wk-panel-marginless{margin-right:-25px}}.wk-panel-small{padding:10px}.wk-margin-small-top{margin-top:8px}@media (min-width:1400px){.wk-width-xlarge-1-2{width:50%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-grid-width-xlarge-1-8>*{width:12.5%}}.wk-form-heading{margin:0 0 20px;padding-bottom:5px;font-size:16px;line-height:22px;color:#444;font-weight:300}.wk-noconflict *+.wk-form-heading{margin-top:20px}.wk-form-blank{margin-top:-5px!important;margin-bottom:-5px!important;font-size:24px!important;line-height:30px!important;font-weight:300!important}.wk-subnav-icon>li>a{color:#fff;cursor:pointer}.wk-subnav-icon>li>a:hover{color:#fff}.wk-subnav-right{margin:10px 15px 0 0;float:right}.wk-subnav{margin-left:-20px;margin-top:-20px;margin-bottom:0;font:300 16px/22px "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.wk-subnav>*{padding-left:20px;margin-top:20px}.wk-subnav>*>*{color:#999}.wk-subnav>*>:focus,.wk-subnav>*>:hover,.wk-subnav>.uk-active>*{color:#444}.wk-subnav [class*=uk-icon-]:before{font-size:130%;vertical-align:-15%}.wk-preview-thumb,img{vertical-align:middle}.wk-subnav-divider:before{content:"";display:inline-block;height:20px;margin-right:20px;border-left:1px solid #ddd;vertical-align:middle}.wk-preview-thumb{display:inline-block;width:30px;height:30px;border-radius:50%}.wk-sortable>*{display:block;padding:5px 15px;background:#37a5e4;color:#fff}.wk-image{height:150px}.wk-table td:first-child{padding:0!important}.wk-table td:first-child>a{display:block;padding:10px}.wk-table-width-minimum{width:1px}.pac-container{z-index:100011}html{font-size:13px}a{cursor:pointer}img{max-width:100%;height:auto;-moz-box-sizing:border-box;box-sizing:border-box;border:0}

widgetkit/uikit2-c994b8f0.js000064400000331161152177723720011474 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2wk)return window.UIkit2wk;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2wk=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-wk-margin], [data-wk-grid-match], [data-wk-grid-margin], [data-wk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="wk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/wk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".wk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-wk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"wk-touch":"wk-notouch"),i.support.touch){var n,o=!1,s="wk-hover",a=".wk-overlay, .wk-overlay-hover, .wk-overlay-toggle, .wk-animation-hover, .wk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"wk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-wk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.wk-responsive-width, [data-wk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"wk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-wk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2wk),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-wk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-wk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2wk),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"wk-scrollspy-inview",initcls:"wk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-wk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-wk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-wk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("wk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("wk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"wk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-wk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-wk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"wk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-wk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-wk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("wk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" wk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("wk-hidden"))})}})}(UIkit2wk),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".wk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-wk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-wk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2wk),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-wk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-wk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-wk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-wk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-wk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-wk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("wk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("wk-active")])})},toggle:function(){this.element.toggleClass("wk-active"),this.element.attr("aria-pressed",this.element.hasClass("wk-active"))}})}(UIkit2wk),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".wk-dropdown,.wk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-wk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-wk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("wk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("wk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("wk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("wk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("wk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("wk-open")?(!i.dropdown.find(e.target).length||n.is(".wk-dropdown-close")||n.parents(".wk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".wk-dropdown-close")||o.parents(".wk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("wk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("wk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("wk-dropdown-top wk-dropdown-bottom wk-dropdown-left wk-dropdown-right wk-dropdown-stack wk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("wk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("wk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("wk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-wk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-wk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("wk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="wk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("wk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("wk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-wk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"wk-grid-margin",rowfirst:"wk-row-first"},boot:function(){t.ready(function(i){t.$("[data-wk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-wk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2wk),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2wk.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".wk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".wk-modal.wk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".wk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("wk-open")),this.on("click",".wk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".wk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("wk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("wk-open")):(this.element.addClass("wk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("wk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("wk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".wk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("wk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("wk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("wk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-wk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-wk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="wk-modal"><div class="wk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-button-primary wk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="wk-modal-content wk-form">'+String(i)+"</div>":"",'<div class="wk-margin-small-top wk-modal-content wk-form"><p><input type="text" class="wk-width-1-1"></p></div>','<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-modal-close">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i||'<div class="wk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".wk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2wk),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.wk-parent > a[href="#"]',lists:">li.wk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-wk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-wk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("wk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("wk-hidden"))),n.attr("aria-expanded",n.hasClass("wk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".wk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("wk-open").end().addClass("wk-hidden")})}),a.toggleClass("wk-open"),a.attr("aria-expanded",a.hasClass("wk-open")),r&&(a.hasClass("wk-open")&&r.removeClass("wk-hidden"),n?(r.stop().height(a.hasClass("wk-open")?"auto":0),a.hasClass("wk-open")||r.addClass("wk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("wk-open")?i(r.find("ul:first")):0},function(){a.hasClass("wk-open")?r.css("height",""):r.addClass("wk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2wk),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".wk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("wk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("wk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("wk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("wk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".wk-offcanvas.wk-active"),a="right"==t.langdirection,r=s.find(".wk-offcanvas-bar:first"),l=function(){o.removeClass("wk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("wk-active"),r.removeClass("wk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("wk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".wk-offcanvas-bar:first").length)return}else if(!e.hasClass("wk-offcanvas-close")){if(e.hasClass("wk-offcanvas-bar"))return;if(e.parents(".wk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-wk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-wk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-wk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2wk),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("wk-active "+r+" wk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" wk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("wk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-wk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-wk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-wk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("wk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".wk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("wk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".wk-active").removeClass("wk-active"),r.addClass("wk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".wk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("wk-active"),o.addClass("wk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["wk-animation-slide-top","wk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["wk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["wk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["wk-animation-slide-right","wk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2wk),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.wk-tab-responsive, .wk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-wk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-wk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("wk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("wk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="wk-tab-responsive wk-active"><a></a></li>').append('<div class="wk-dropdown wk-dropdown-small"><ul class="wk-nav wk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".wk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("wk-tab-bottom")&&this.responsivetab.dropdown.addClass("wk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.wk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.wk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".wk-tab-responsive").filter(".wk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.wk-tab-responsive)").removeClass("wk-hidden");if(!i.length)return this.responsivetab.addClass("wk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("wk-dropdown")||(e.hasClass("wk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("wk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("wk-hidden")}})}(UIkit2wk),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-wk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-wk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2wk);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideset",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i,e,n,s){var a,o,r,l,h=t.$.Deferred(),u=this.options.delay===!1?Math.floor(this.options.duration/2):this.options.delay,d=this;if(s=s||1,this.element.css("min-height",this.element.height()),n[0]===e[0])return h.resolve(),h.promise();if("object"==typeof i?(a=i[0],o=i[1]||i[0]):(a=i,o=a),t.$body.css("overflow-x","hidden"),r=function(){if(e&&e.length&&e.hide().removeClass(o+" wk-animation-reverse").css({opacity:"","animation-delay":"",animation:""}),!n.length)return h.resolve(),void 0;for(l=0;l<n.length;l++)n.eq(1==s?l:n.length-l-1).css("animation-delay",l*u+"ms");var i=function(){n.removeClass(""+a).css({opacity:"",display:"","animation-delay":"",animation:""}),h.resolve(),t.$body.css("overflow-x",""),d.element.css("min-height",""),i=!1};n.addClass(a)[1==s?"last":"first"]().one(t.support.animation.end,function(){i&&i()}).end().css("display",""),setTimeout(function(){i&&i()},n.length*u*2)},n.length&&n.css("animation-duration",this.options.duration+"ms"),e&&e.length)for(e.css("animation-duration",this.options.duration+"ms")[1==s?"last":"first"]().one(t.support.animation.end,function(){r()}),l=0;l<e.length;l++)!function(i,e){setTimeout(function(){e.css("display","none").css("display","").css("opacity",0).on(t.support.animation.end,function(){e.removeClass(o)}).addClass(o+" wk-animation-reverse")}.bind(this),l*u)}(l,e.eq(1==s?l:e.length-l-1));else r();return h.promise()}function e(t,i){var e,n=0,s=-1,a=t.length||0,o=[];if(1>i)return null;for(;a>n;)e=n%i,e?o[s][e]=t[n]:o[++s]=[t[n]],n++;for(n=0,a=o.length;a>n;)o[n]=jQuery(o[n]),n++;return o}var n;t.component("slideset",{defaults:{"default":1,animation:"fade",duration:200,filter:"",delay:!1,controls:!1,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},sets:[],boot:function(){t.ready(function(i){t.$("[data-wk-slideset]",i).each(function(){var i=t.$(this);i.data("slideset")||t.slideset(i,t.Utils.options(i.attr("data-wk-slideset")))})})},init:function(){var i=this;this.activeSet=!1,this.list=this.element.find(".wk-slideset"),this.nav=this.element.find(".wk-slideset-nav"),this.controls=this.options.controls?t.$(this.options.controls):this.element,t.$win.on("resize load",t.Utils.debounce(function(){i.update()},100)),i.list.addClass("wk-grid-width-1-"+i.options.default),["xlarge","large","medium","small"].forEach(function(t){i.options[t]&&i.list.addClass("wk-grid-width-"+t+"-1-"+i.options[t])}),this.on("click.uk.slideset","[data-wk-slideset-item]",function(e){if(e.preventDefault(),!i.animating){var n=t.$(this).attr("data-wk-slideset-item");if(i.activeSet!==n)switch(n){case"next":case"previous":i["next"==n?"next":"previous"]();break;default:i.show(parseInt(n,10))}}}),this.controls.on("click.uk.slideset","[data-wk-filter]",function(e){var n=t.$(this);n.parent().hasClass("wk-slideset")||(e.preventDefault(),i.animating||i.currentFilter==n.attr("data-wk-filter")||(i.updateFilter(n.attr("data-wk-filter")),i._hide().then(function(){i.update(!0,!0)})))}),this.on("swipeRight swipeLeft",function(t){i["swipeLeft"==t.type?"next":"previous"]()}),this.updateFilter(this.options.filter),this.update(),this.element.on({mouseenter:function(){i.options.pauseOnHover&&(i.hovering=!0)},mouseleave:function(){i.hovering=!1}}),this.options.autoplay&&this.start(),t.domObserve(this.list,function(){i.list.children(":visible:not(.wk-active)").length&&i.update(!1,!0)})},update:function(t,i){var n,s=this.visible;if(this.visible=this.getVisibleOnCurrenBreakpoint(),s!=this.visible||i){for(this.children=this.list.children().hide(),this.items=this.getItems(),this.sets=e(this.items,this.visible),n=0;n<this.sets.length;n++)this.sets[n].css({display:"none"});if(this.nav.length&&this.nav.empty()){for(n=0;n<this.sets.length;n++)this.nav.append('<li data-wk-slideset-item="'+n+'"><a></a></li>');this.nav[1==this.nav.children().length?"addClass":"removeClass"]("wk-invisible")}this.activeSet=!1,this.show(0,!t)}},updateFilter:function(i){var e,n=this;this.currentFilter=i,this.controls.find("[data-wk-filter]").each(function(){e=t.$(this),e.parent().hasClass("wk-slideset")||(e.attr("data-wk-filter")==n.currentFilter?e.addClass("wk-active"):e.removeClass("wk-active"))})},getVisibleOnCurrenBreakpoint:function(){var i=null,e=t.$('<div style="position:absolute;height:1px;top:-1000px;width:100px"><div></div></div>').appendTo("body"),n=e.children().eq(0),s=this.options;return["xlarge","large","medium","small"].forEach(function(t){s[t]&&!i&&(e.attr("class","wk-grid-width-"+t+"-1-2").width(),50==n.width()&&(i=t))}),e.remove(),this.options[i]||this.options["default"]},getItems:function(){var i,e=[];return this.currentFilter?(i=this.currentFilter||[],"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()})),this.children.each(function(){var n=t.$(this),s=n.attr("data-wk-filter"),a=i.length?!1:!0;s&&(s=s.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){s.indexOf(t)>-1&&(a=!0)})),a&&e.push(n[0])}),e=t.$(e)):e=this.list.children(),e},show:function(i,e,s){var a=this;if(this.activeSet!==i&&!this.animating){s=s||(i<this.activeSet?-1:1);var o=this.sets[this.activeSet]||[],r=this.sets[i],l=this._getAnimation();(e||!t.support.animation)&&(l=n.none),this.animating=!0,this.nav.length&&this.nav.children().removeClass("wk-active").eq(i).addClass("wk-active"),l.apply(a,[o,r,s]).then(function(){t.Utils.checkDisplay(r,!0),a.children.hide().removeClass("wk-active"),r.addClass("wk-active").css({display:"",opacity:""}),a.animating=!1,a.activeSet=i,t.Utils.checkDisplay(r,!0),a.trigger("show.uk.slideset",[r])})}},_getAnimation:function(){var i=n[this.options.animation]||n.none;return t.support.animation||(i=n.none),i},_hide:function(){var t=this,i=this.sets[this.activeSet]||[],e=this._getAnimation();return this.animating=!0,e.apply(t,[i,[],1]).then(function(){t.animating=!1})},next:function(){this.show(this.sets[this.activeSet+1]?this.activeSet+1:0,!1,1)},previous:function(){this.show(this.sets[this.activeSet-1]?this.activeSet-1:this.sets.length-1,!1,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.animating||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)}}),n={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e,n){var s=["wk-animation-slide-top","wk-animation-slide-bottom"];return-1==n&&s.reverse(),i.apply(this,[s,t,e])},"slide-horizontal":function(t,e,n){var s=["wk-animation-slide-right","wk-animation-slide-left"];return-1==n&&s.reverse(),i.apply(this,[s,t,e,n])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.slideset.animations=n});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";t.component("grid",{defaults:{colwidth:"auto",animation:!0,duration:300,gutter:0,controls:!1,filter:!1,origin:t.langdirection},boot:function(){t.ready(function(i){t.$("[data-wk-grid]",i).each(function(){var i=t.$(this);i.data("grid")||t.grid(i,t.Utils.options(i.attr("data-wk-grid")))})})},init:function(){var i=this,e=String(this.options.gutter).trim().split(" ");this.gutterv=parseInt(e[0],10),this.gutterh=parseInt(e[1]||e[0],10),this.element.css({position:"relative"}),this.controls=null,this.origin=this.options.origin,this.options.controls&&(this.controls=t.$(this.options.controls),this.controls.on("click","[data-wk-filter]",function(e){e.preventDefault(),i.filter(t.$(this).attr("data-wk-filter"))}),this.controls.on("click","[data-wk-sort]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-sort").split(":");i.sort(n[0],n[1])})),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){i.currentfilter?i.filter(i.currentfilter):this.update()}.bind(this),100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.update()}),t.domObserve(this.element,function(){i.update()}),this.options.filter!==!1?this.filter(this.options.filter):this.update()},_prepareElements:function(){var t,i=this.element.children().not("[data-grid-prepared]");i.length&&(t={position:"absolute",boxSizing:"border-box",width:"auto"==this.options.colwidth?"":this.options.colwidth},this.options.gutter&&(t["padding-"+this.origin]=this.gutterh,t["padding-bottom"]=this.gutterv,this.element.css("margin-"+this.origin,-1*this.gutterh)),i.attr("data-grid-prepared","true").css(t))},update:function(i){var e=this;this._prepareElements(),i=i||this.element.children(":visible");var n,o,s,r,a,h,d,l,u,c=i,f=this.element.width()+2*this.gutterh+2,p=0,g=0,m=[];this.trigger("beforeupdate.uk.grid",[c]),c.each(function(){for(n=t.$(this),u=this.getBoundingClientRect(),o=u.width,s=u.height,p=0,g=0,h=0,l=m.length;l>h;h++)r=m[h],p<=r.aX&&(p=r.aX),p+o>f&&(p=0),g<=r.aY&&(g=r.aY);a={ele:n,top:g,width:o,height:s,aY:g+s,aX:p+o},a[e.origin]=p,m.push(a)});var v,k,b=0;for(h=0,l=m.length;l>h;h++){for(r=m[h],g=0,d=0;h>d;d++)v=m[d],r[this.origin]<v.aX&&v[this.origin]+1<r.aX&&(g=v.aY);r.top=g,r.aY=g+r.height,b=Math.max(b,r.aY)}b-=this.gutterv,this.options.animation?(this.element.stop().animate({height:b},100),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.stop().animate(k,this.options.duration)}.bind(this))):(this.element.css("height",b),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.css(k)}.bind(this))),setTimeout(function(){t.$doc.trigger("scrolling.uk.document")},2*this.options.duration*(this.options.animation?1:0)),this.trigger("afterupdate.uk.grid",[c])},filter:function(i){this.currentfilter=i,i=i||[],"number"==typeof i&&(i=i.toString()),"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()}));var e=this,n=this.element.children(),o={visible:[],hidden:[]};n.each(function(){var e=t.$(this),n=e.attr("data-wk-filter"),s=i.length?!1:!0;n&&(n=n.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){n.indexOf(t)>-1&&(s=!0)})),o[s?"visible":"hidden"].push(e)}),o.hidden=t.$(o.hidden).map(function(){return this[0]}),o.visible=t.$(o.visible).map(function(){return this[0]}),o.hidden.attr("aria-hidden","true").filter(":visible").fadeOut(this.options.duration),o.visible.attr("aria-hidden","false").filter(":hidden").css("opacity",0).show(),e.update(o.visible),this.controls&&this.controls.length&&this.controls.find("[data-wk-filter]").removeClass("wk-active").filter('[data-wk-filter="'+i+'"]').addClass("wk-active")},sort:function(i,e){e=e||1,"string"==typeof e&&(e="desc"==e.toLowerCase()?-1:1);var n=this.element.children();n.sort(function(n,o){return n=t.$(n),o=t.$(o),(o.data(i)||"")<(n.data(i)||"")?e:-1*e}).appendTo(this.element),this.update(n.filter(":visible")),this.controls&&this.controls.length&&this.controls.find("[data-wk-sort]").removeClass("wk-active").filter('[data-wk-sort="'+i+":"+(-1==e?"desc":"asc")+'"]').addClass("wk-active")}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var n;window.UIkit2wk&&(n=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid-parallax",["uikit"],function(){return n||t(UIkit2wk)})}(function(t){function n(t){for(var n=t.children(),i=n.filter(":visible:first"),e=i[0].offsetTop+i.outerHeight(),o=0;o<n.length&&!(n[o].offsetTop>=e);o++);return o||1}function i(n){var i,e,o,r=n.offset().top,s=n.outerHeight(),a=t.$win.scrollTop(),l=window.innerHeight;return r>a+l?o=0:a>r+s?o=1:(l>r+s?o=(l>a?a:a-l)/(r+s):(i=a+l-r,e=Math.round(i/((l+s)/100)),o=e/100),l>r&&(o=o*a/(r+s-l))),o>1?1:o}var e=[],o=function(){requestAnimationFrame(function(){for(var t=0;t<e.length;t++)e[t].process()})};t.component("gridparallax",{defaults:{target:!1,smooth:150,translate:150},boot:function(){t.$doc.on("scrolling.uk.document",o),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){o()},50)),t.ready(function(n){t.$("[data-wk-grid-parallax]",n).each(function(){var n=t.$(this);n.data("gridparallax")||t.gridparallax(n,t.Utils.options(n.attr("data-wk-grid-parallax")))})})},init:function(){var i=this;this.initItems().process(),e.push(this),t.$win.on("load resize orientationchange",function(){var e=function(){var t=n(i.element);i.element.css("margin-bottom",""),t>1&&i.element.css("margin-bottom",i.options.translate+parseInt(i.element.css("margin-bottom")))};return t.$(function(){e()}),t.Utils.debounce(e,50)}())},initItems:function(){var n=this.options.smooth;return this.items=(this.options.target?this.element.find(this.options.target):this.element.children()).each(function(){t.$(this).css({transition:"transform "+n+"ms linear",transform:""})}),this},process:function(){var e=i(this.element),o=n(this.element),r=this.items,s=[o-1];if(1==o||!e)return r.css("transform",""),void 0;for(;s.length<o&&s[s.length-1]-2;)s.push(s[s.length-1]-2);var a=this.options.translate,l=e*a;r.each(function(n,i,e){e=-1!=s.indexOf((n+1)%o)?l:l/8,t.$(this).css("transform","translate3d(0,"+e+"px, 0)")})}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t,s=0;i.component("slideshow",{defaults:{animation:"fade",duration:500,height:"auto",start:0,autoplay:!1,autoplayInterval:7e3,videoautoplay:!0,videomute:!0,slices:15,pauseOnHover:!0,kenburns:!1,kenburnsanimations:["wk-animation-middle-left","wk-animation-top-right","wk-animation-bottom-left","wk-animation-top-center","","wk-animation-bottom-right"]},current:!1,interval:null,hovering:!1,boot:function(){i.ready(function(t){i.$("[data-wk-slideshow]",t).each(function(){var t=i.$(this);t.data("slideshow")||i.slideshow(t,i.Utils.options(t.attr("data-wk-slideshow")))})})},init:function(){var t=this;this.container=this.element.hasClass("wk-slideshow")?this.element:i.$(this.find(".wk-slideshow:first")),this.current=this.options.start,this.animating=!1,this.fixFullscreen=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&this.container.hasClass("wk-slideshow-fullscreen"),this.options.kenburns&&(this.kbanimduration=this.options.kenburns===!0?"15s":this.options.kenburns,String(this.kbanimduration).match(/(ms|s)$/)||(this.kbanimduration+="ms"),"string"==typeof this.options.kenburnsanimations&&(this.options.kenburnsanimations=this.options.kenburnsanimations.split(","))),this.update(),this.on("click.uk.slideshow","[data-wk-slideshow-item]",function(s){s.preventDefault();var e=i.$(this).attr("data-wk-slideshow-item");if(t.current!=e){switch(e){case"next":case"previous":t["next"==e?"next":"previous"]();break;default:t.show(parseInt(e,10))}t.stop()}}),i.$win.on("resize load",i.Utils.debounce(function(){t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight))},100)),setTimeout(function(){t.resize()},80),this.options.autoplay&&this.start(),this.options.videoautoplay&&this.slides.eq(this.current).data("media")&&this.playmedia(this.slides.eq(this.current).data("media")),this.options.kenburns&&this.applyKenBurns(this.slides.eq(this.current)),this.container.on({mouseenter:function(){t.options.pauseOnHover&&(t.hovering=!0)},mouseleave:function(){t.hovering=!1}}),this.on("swipeRight swipeLeft",function(i){t["swipeLeft"==i.type?"next":"previous"]()}),this.on("display.uk.check",function(){t.element.is(":visible")&&(t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight)))}),i.domObserve(this.element,function(){t.container.children(":not([data-slideshow-slide])").not(".wk-slideshow-ghost").length&&t.update(!0)})},update:function(t){var e,a=this,n=0;this.slides=this.container.children(),this.slidesCount=this.slides.length,this.slides.eq(this.current).length||(this.current=0),this.slides.each(function(t){var o=i.$(this);if(!o.data("processed")){var r=o.children("img,video,iframe").eq(0),d="html";if(o.data("media",r),o.data("sizer",r),r.length){var u;switch(d=r[0].nodeName.toLowerCase(),r[0].nodeName){case"IMG":var h=i.$('<div class="wk-cover-background wk-position-cover"></div>').css({"background-image":"url("+r.attr("src")+")"});r.attr("width")&&r.attr("height")&&(u=i.$("<canvas></canvas>").attr({width:r.attr("width"),height:r.attr("height")}),r.replaceWith(u),r=u,u=void 0),r.css({width:"100%",height:"auto",opacity:0}),o.prepend(h).data("cover",h);break;case"IFRAME":var c=r[0].src,l="sw-"+ ++s;r.attr("src","").on("load",function(){if((t!==a.current||t==a.current&&!a.options.videoautoplay)&&a.pausemedia(r),a.options.videomute){a.mutemedia(r);var i=setInterval(function(t){return function(){a.mutemedia(r),++t>=4&&clearInterval(i)}}(0),250)}}).data("slideshow",a).attr("data-player-id",l).attr("src",[c,c.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1&player_id="+l].join("")).addClass("wk-position-absolute"),i.support.touch||r.css("pointer-events","none"),u=!0,i.cover&&(i.cover(r),r.attr("data-wk-cover","{}"));break;case"VIDEO":r.addClass("wk-cover-object wk-position-absolute"),u=!0,a.options.videomute&&a.mutemedia(r)}if(u){e=i.$("<canvas></canvas>").attr({width:r[0].width,height:r[0].height});var p=i.$('<img style="width:100%;height:auto;">').attr("src",e[0].toDataURL());o.prepend(p),o.data("sizer",p)}}else o.data("sizer",o);a.hasKenBurns(o)&&o.data("cover").css({"-webkit-animation-duration":a.kbanimduration,"animation-duration":a.kbanimduration}),o.data("processed",++n),o.attr("data-slideshow-slide",d)}}),n&&(this.triggers=this.find("[data-wk-slideshow-item]"),this.slides.attr("aria-hidden","true").removeClass("wk-active").eq(this.current).addClass("wk-active").attr("aria-hidden","false"),this.triggers.filter('[data-wk-slideshow-item="'+this.current+'"]').addClass("wk-active")),t&&n&&this.resize()},resize:function(){if(!this.container.hasClass("wk-slideshow-fullscreen")){var t=this.options.height;"auto"===this.options.height&&(t=0,this.slides.css("height","").each(function(){t=Math.max(t,i.$(this).height())})),this.container.css("height",t),this.slides.css("height",t)}},show:function(s,e){if(!this.animating&&this.current!=s){this.animating=!0;var a=this,n=this.slides.eq(this.current),o=this.slides.eq(s),r=e?e:this.current<s?1:-1,d=n.data("media"),u=t[this.options.animation]?this.options.animation:"fade",h=o.data("media"),c=function(){a.animating&&(d&&d.is("video,iframe")&&a.pausemedia(d),h&&h.is("video,iframe")&&a.playmedia(h),o.addClass("wk-active").attr("aria-hidden","false"),n.removeClass("wk-active").attr("aria-hidden","true"),a.animating=!1,a.current=s,i.Utils.checkDisplay(o,'[class*="wk-animation-"]:not(.wk-cover-background.wk-position-cover)'),a.trigger("show.uk.slideshow",[o,n,a]))};a.applyKenBurns(o),i.support.animation||(u="none"),n=i.$(n),o=i.$(o),a.trigger("beforeshow.uk.slideshow",[o,n,a]),t[u].apply(this,[n,o,r]).then(c),a.triggers.removeClass("wk-active"),a.triggers.filter('[data-wk-slideshow-item="'+s+'"]').addClass("wk-active")}},applyKenBurns:function(i){if(this.hasKenBurns(i)){var t=this.options.kenburnsanimations,s=this.kbindex||0;i.data("cover").attr("class","wk-cover-background wk-position-cover").width(),i.data("cover").addClass(["wk-animation-scale","wk-animation-reverse",t[s].trim()].join(" ")),this.kbindex=t[s+1]?s+1:0}},hasKenBurns:function(i){return this.options.kenburns&&i.data("cover")},next:function(){this.show(this.slides[this.current+1]?this.current+1:0,1)},previous:function(){this.show(this.slides[this.current-1]?this.current-1:this.slides.length-1,-1)},start:function(){this.stop();var i=this;this.interval=setInterval(function(){i.hovering||i.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},playmedia:function(i){if(i&&i[0])switch(i[0].nodeName){case"VIDEO":this.options.videomute||(i[0].muted=!1),i[0].play();break;case"IFRAME":this.options.videomute||i[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}',"*"),i[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}',"*")}},pausemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].pause();break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}',"*")}},mutemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].muted=!0;break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}}}),t={none:function(){var t=i.$.Deferred();return t.resolve(),t.promise()},scroll:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.removeClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.addClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),s.width(),a.promise()},swipe:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1===e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.removeClass(-1===e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.addClass(-1==e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),s.width(),a.promise()},scale:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-scale-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-scale-out"),t.width(),e.promise()},fade:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),s.data("cover")||s.data("placeholder")||s.css("opacity",1).one(i.support.animation.end,function(){s.removeClass("wk-slideshow-fade-in")}).addClass("wk-slideshow-fade-in"),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-fade-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-fade-out"),t.width(),e.promise()}},i.slideshow.animations=t,window.addEventListener("message",function(t){var s,e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(a){e={}}t.origin&&t.origin.indexOf("vimeo")>-1&&"ready"==e.event&&e.player_id&&(s=i.$('[data-player-id="'+e.player_id+'"]'),s.length&&s.data("slideshow").mutemedia(s))},!1)});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow-fx",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t=i.slideshow.animations;i.$.extend(i.slideshow.animations,{slice:function(e,s,n,o){if(!e.data("cover"))return t.fade.apply(this,arguments);for(var r,a=i.$.Deferred(),c=Math.ceil(this.element.width()/this.options.slices),h=s.data("cover").css("background-image"),d=i.$('<li class="wk-slideshow-ghost"></li>').css({top:0,left:0,width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),p=d.width(),l=d.height(),u="slice-up"==o?l:"0",f=0;f<this.options.slices;f++){"slice-up-down"==o&&(u=(f%2+2)%2==0?"0":l);var m,g=f==this.options.slices-1?c:c,x="rect(0px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)";m="rect(0px, "+g*(f+1)+"px, 0px, "+c*f+"px)",("slice-up"==o||"slice-up-down"==o&&(f%2+2)%2==0)&&(m="rect("+l+"px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)"),r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:p,height:l,"background-image":h,clip:m,opacity:0,transition:"all "+this.options.duration+"ms ease-in-out "+60*f+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+60*f+"ms"}).data("clip",x),d.append(r)}return this.container.append(d),d.children().last().on(i.support.transition.end,function(){setTimeout(function(){d.remove(),a.resolve()},0)}),d.width(),d.children().each(function(){r=i.$(this),r.css({clip:r.data("clip"),opacity:1})}),a.promise()},"slice-up":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up"])},"slice-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-down"])},"slice-up-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up-down"])},fold:function(e,s){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var n,o=i.$.Deferred(),r=Math.ceil(this.element.width()/this.options.slices),a=s.data("cover").css("background-image"),c=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),h=s.width(),d=s.height(),p=0;p<this.options.slices;p++)n=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:h,height:d,"background-image":a,"transform-origin":r*p+"px 0 0",clip:"rect(0px, "+r*(p+1)+"px, "+d+"px, "+r*p+"px)",opacity:0,transform:"scaleX(0.000001)",transition:"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms"}),c.prepend(n);return this.container.append(c),c.width(),c.children().first().on(i.support.transition.end,function(){setTimeout(function(){c.remove(),o.resolve()},0)}).end().css({transform:"scaleX(1)",opacity:1}),o.promise()},puzzle:function(s,n){if(!n.data("cover"))return t.fade.apply(this,arguments);for(var o,r,a,c=i.$.Deferred(),h=this,d=Math.round(this.options.slices/2),p=Math.round(n.width()/d),l=Math.round(n.height()/p),u=Math.round(n.height()/l)+1,f=n.data("cover").css("background-image"),m=i.$('<li class="wk-slideshow-ghost"></li>').css({width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),g=this.container.width(),x=this.container.height(),w=0;l>w;w++)for(var v=0;d>v;v++)a=v==d-1?p+2:p,r=[u*w+"px",a*(v+1)+"px",u*(w+1)+"px",p*v+"px"],o=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:0,width:g,height:x,"background-image":f,clip:"rect("+r.join(",")+")","-webkit-transform":"translateZ(0)",transform:"translateZ(0)"}),m.append(o);this.container.append(m);var k=e(m.children());return k.each(function(t){i.$(this).css({transition:"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms","-webkit-transition":"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms"})}).last().on(i.support.transition.end,function(){setTimeout(function(){m.remove(),c.resolve()},0)}),m.width(),k.css({opacity:1}),c.promise()},boxes:function(e,s,n,o){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var r,a,c,h,d=i.$.Deferred(),p=Math.round(this.options.slices/2),l=Math.round(s.width()/p),u=Math.round(s.height()/l),f=Math.round(s.height()/u)+1,m=s.data("cover").css("background-image"),g=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),x=s.width(),w=s.height(),v=0;u>v;v++)for(h=0;p>h;h++)c=h==p-1?l+2:l,a=[f*v+"px",c*(h+1)+"px",f*(v+1)+"px",l*h+"px"],r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:1,width:x,height:w,"background-image":m,"transform-origin":a[3]+" "+a[0]+" 0",clip:"rect("+a.join(",")+")","-webkit-transform":"scale(0.0000000000000001)",transform:"scale(0.0000000000000001)"}),g.append(r);this.container.append(g);var k,b=0,y=0,$=0,I=[[]],M=g.children();for("boxes-reverse"==o&&(M=[].reverse.apply(M)),M.each(function(){I[b][y]=i.$(this),y++,y==p&&(b++,y=0,I[b]=[])}),h=0,k=0;p*u>h;h++){k=h;for(var z=0;u>z;z++)k>=0&&p>k&&I[z][k].css({transition:"all "+this.options.duration+"ms linear "+(50+$)+"ms","-webkit-transition":"all "+this.options.duration+"ms linear "+(50+$)+"ms"}),k--;$+=100}return M.last().on(i.support.transition.end,function(){setTimeout(function(){g.remove(),d.resolve()},0)}),g.width(),M.css({"-webkit-transform":"scale(1)",transform:"scale(1)"}),d.promise()},"boxes-reverse":function(i,e,s){return t.boxes.apply(this,[i,e,s,"boxes-reverse"])},"random-fx":function(){var i=["slice-up","fold","puzzle","slice-down","boxes","slice-up-down","boxes-reverse"];return this.fxIndex=(void 0===this.fxIndex?-1:this.fxIndex)+1,i[this.fxIndex]||(this.fxIndex=0),t[i[this.fxIndex]].apply(this,arguments)}});var e=function(i){for(var t,e,s=i.length;s;t=parseInt(Math.random()*s),e=i[--s],i[s]=i[t],i[t]=e);return i};return i.slideshow.animations});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-accordion",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i){var e=t.$(i),o="auto";if(e.is(":visible"))o=e.outerHeight();else{var a={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};o=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(a)}return o}return t.component("accordion",{defaults:{showfirst:!0,collapse:!0,animate:!0,easing:"swing",duration:300,toggle:".wk-accordion-title",containers:".wk-accordion-content",clsactive:"wk-active"},boot:function(){t.ready(function(i){setTimeout(function(){t.$("[data-wk-accordion]",i).each(function(){var i=t.$(this);i.data("accordion")||t.accordion(i,t.Utils.options(i.attr("data-wk-accordion")))})},0)})},init:function(){var i=this;this.element.on("click.uk.accordion",this.options.toggle,function(e){e.preventDefault(),i.toggleItem(t.$(this).data("wrapper"),i.options.animate,i.options.collapse)}),this.update(!0),t.domObserve(this.element,function(){i.element.children(i.options.containers).length&&i.update()})},toggleItem:function(e,o,a){var n=this;e.data("toggle").toggleClass(this.options.clsactive),e.data("content").toggleClass(this.options.clsactive);var s=e.data("toggle").hasClass(this.options.clsactive);a&&(this.toggle.not(e.data("toggle")).removeClass(this.options.clsactive),this.content.not(e.data("content")).removeClass(this.options.clsactive).parent().stop().css("overflow","hidden").animate({height:0},{easing:this.options.easing,duration:o?this.options.duration:0}).attr("aria-expanded","false")),e.stop().css("overflow","hidden"),o?e.animate({height:s?i(e.data("content")):0},{easing:this.options.easing,duration:this.options.duration,complete:function(){s&&(e.css({overflow:"",height:"auto"}),t.Utils.checkDisplay(e.data("content"))),n.trigger("display.uk.check")}}):(e.height(s?"auto":0),s&&(e.css({overflow:""}),t.Utils.checkDisplay(e.data("content"))),this.trigger("display.uk.check")),e.attr("aria-expanded",s),this.element.trigger("toggle.uk.accordion",[s,e.data("toggle"),e.data("content")])},update:function(i){var e,o,a,n=this;this.toggle=this.find(this.options.toggle),this.content=this.find(this.options.containers),this.content.each(function(i){e=t.$(this),e.parent().data("wrapper")?o=e.parent():(o=t.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent(),o.attr("aria-expanded","false")),a=n.toggle.eq(i),o.data("toggle",a),o.data("content",e),a.data("wrapper",o),e.data("wrapper",o)}),this.element.trigger("update.uk.accordion",[this]),i&&this.options.showfirst&&this.toggleItem(this.toggle.eq(0).data("wrapper"),!1,!1)}}),t.accordion});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2wk&&(t=e(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-parallax",["uikit"],function(){return t||e(UIkit2wk)})}(function(e){"use strict";function t(t,a,r){var i,n,s,o,c,l,p,f=new Image;return n=t.element.css({backgroundSize:"cover",backgroundRepeat:"no-repeat"}),i=n.css("background-image").replace(/^url\(/g,"").replace(/\)$/g,"").replace(/("|')/g,""),o=function(){var e=n.innerWidth(),i=n.innerHeight(),o="bg"==a?r.diff:r.diff/100*i;return i+=o,e+=Math.ceil(o*c),e-o<s.w&&i<s.h?t.element.css({backgroundSize:"auto"}):(i>e/c?(l=Math.ceil(i*c),p=i,i>window.innerHeight&&(l=1.2*l,p=1.2*p)):(l=e,p=Math.ceil(e/c)),n.css({backgroundSize:l+"px "+p+"px"}).data("bgsize",{w:l,h:p}),void 0)},f.onerror=function(){},f.onload=function(){s={w:f.width,h:f.height},c=f.width/f.height,e.$win.on("load resize orientationchange",e.Utils.debounce(function(){o()},50)),o()},f.src=i,!0}function a(e,t,a){return e=i(e),t=i(t),a=a||0,r(e,t,a)}function r(e,t,a){var r="rgba("+parseInt(e[0]+a*(t[0]-e[0]),10)+","+parseInt(e[1]+a*(t[1]-e[1]),10)+","+parseInt(e[2]+a*(t[2]-e[2]),10)+","+(e&&t?parseFloat(e[3]+a*(t[3]-e[3])):1);return r+=")"}function i(e){var t,a;return a=(t=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(t=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(t[1],16),17*parseInt(t[2],16),17*parseInt(t[3],16),1]:(t=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]:(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10),parseFloat(t[4])]:p[e]||[255,255,255,0]}var n=[],s=!1,o=0,c=window.innerHeight,l=function(){o=e.$win.scrollTop(),window.requestAnimationFrame(function(){for(var e=0;e<n.length;e++)n[e].process()})};e.component("parallax",{defaults:{velocity:.5,target:!1,viewport:!1,media:!1},boot:function(){s=function(){var e,t=document.createElement("div"),a={WebkitTransform:"-webkit-transform",MSTransform:"-ms-transform",MozTransform:"-moz-transform",Transform:"transform"};document.body.insertBefore(t,null);for(var r in a)void 0!==t.style[r]&&(t.style[r]="translate3d(1px,1px,1px)",e=window.getComputedStyle(t).getPropertyValue(a[r]));return document.body.removeChild(t),void 0!==e&&e.length>0&&"none"!==e}(),e.$doc.on("scrolling.uk.document",l),e.$win.on("load resize orientationchange",e.Utils.debounce(function(){c=window.innerHeight,l()},50)),e.ready(function(t){e.$("[data-wk-parallax]",t).each(function(){var t=e.$(this);t.data("parallax")||e.parallax(t,e.Utils.options(t.attr("data-wk-parallax")))})})},init:function(){this.base=this.options.target?e.$(this.options.target):this.element,this.props={},this.velocity=this.options.velocity||1;var t=["target","velocity","viewport","plugins","media"];Object.keys(this.options).forEach(function(e){if(-1===t.indexOf(e)){var a,r,i,n,s=String(this.options[e]).split(",");e.match(/color/i)?(a=s[1]?s[0]:this._getStartValue(e),r=s[1]?s[1]:s[0],a||(a="rgba(255,255,255,0)")):(a=parseFloat(s[1]?s[0]:this._getStartValue(e)),r=parseFloat(s[1]?s[1]:s[0]),n=r>a?r-a:a-r,i=r>a?1:-1),this.props[e]={start:a,end:r,dir:i,diff:n}}}.bind(this)),n.push(this)},process:function(){if(this.options.media)switch(typeof this.options.media){case"number":if(window.innerWidth<this.options.media)return!1;break;case"string":if(window.matchMedia&&!window.matchMedia(this.options.media).matches)return!1}var e=this.percentageInViewport();this.options.viewport!==!1&&(e=0===this.options.viewport?1:e/this.options.viewport),this.update(e)},percentageInViewport:function(){var e,t,a,r=this.base.offset().top,i=this.base.outerHeight();return r>o+c?a=0:o>r+i?a=1:c>r+i?a=(c>o?o:o-c)/(r+i):(e=o+c-r,t=Math.round(e/((c+i)/100)),a=t/100),a},update:function(e){var r,i,n={transform:"",filter:""},o=e*(1-(this.velocity-this.velocity*e));0>o&&(o=0),o>1&&(o=1),(void 0===this._percent||this._percent!=o)&&(Object.keys(this.props).forEach(function(c){switch(r=this.props[c],0===e?i=r.start:1===e?i=r.end:void 0!==r.diff&&(i=r.start+r.diff*o*r.dir),"bg"!=c&&"bgp"!=c||this._bgcover||(this._bgcover=t(this,c,r)),c){case"x":n.transform+=s?" translate3d("+i+"px, 0, 0)":" translateX("+i+"px)";break;case"xp":n.transform+=s?" translate3d("+i+"%, 0, 0)":" translateX("+i+"%)";break;case"y":n.transform+=s?" translate3d(0, "+i+"px, 0)":" translateY("+i+"px)";break;case"yp":n.transform+=s?" translate3d(0, "+i+"%, 0)":" translateY("+i+"%)";break;case"rotate":n.transform+=" rotate("+i+"deg)";break;case"scale":n.transform+=" scale("+i+")";break;case"bg":n["background-position"]="50% "+i+"px";break;case"bgp":n["background-position"]="50% "+i+"%";break;case"color":case"background-color":case"border-color":n[c]=a(r.start,r.end,o);break;case"blur":n.filter+=" blur("+i+"px)";break;case"hue":n.filter+=" hue-rotate("+i+"deg)";break;case"grayscale":n.filter+=" grayscale("+i+"%)";break;case"invert":n.filter+=" invert("+i+"%)";break;case"fopacity":n.filter+=" opacity("+i+"%)";break;case"saturate":n.filter+=" saturate("+i+"%)";break;case"sepia":n.filter+=" sepia("+i+"%)";break;default:n[c]=i}}.bind(this)),n.filter&&(n["-webkit-filter"]=n.filter),this.element.css(n),this._percent=o)},_getStartValue:function(e){var t=0;switch(e){case"scale":t=1;break;default:t=this.element.css(e)}return t||0}});var p={black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]};return e.parallax});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2wk&&(e=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slider",["uikit"],function(){return e||t(UIkit2wk)})}(function(t){"use strict";var e,i,s,n,a={};return t.component("slider",{defaults:{center:!1,threshold:10,infinite:!0,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0,activecls:"wk-active"},boot:function(){t.ready(function(e){setTimeout(function(){t.$("[data-wk-slider]",e).each(function(){var e=t.$(this);e.data("slider")||t.slider(e,t.Utils.options(e.attr("data-wk-slider")))})},0)})},init:function(){var o=this;this.container=this.element.find(".wk-slider"),this.focus=0,t.$win.on("resize load",t.Utils.debounce(function(){o.update(!0)},100)),this.on("click.uk.slider","[data-wk-slider-item]",function(e){e.preventDefault();var i=t.$(this).attr("data-wk-slider-item");if(o.focus!=i)switch(o.stop(),i){case"next":case"previous":o["next"==i?"next":"previous"]();break;default:o.updateFocus(parseInt(i,10))}}),this.container.on({"touchstart mousedown":function(h){h.originalEvent&&h.originalEvent.touches&&(h=h.originalEvent.touches[0]),h.button&&2==h.button||!o.active||(o.stop(),s=t.$(h.target).is("a")?t.$(h.target):t.$(h.target).parents("a:first"),n=!1,s.length&&s.one("click",function(t){n&&t.preventDefault()}),i=function(t){n=!0,e=o,a={touchx:parseInt(t.pageX,10),dir:1,focus:o.focus,base:o.options.center?"center":"area"},t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),e.element.data({"pointer-start":{x:parseInt(t.pageX,10),y:parseInt(t.pageY,10)},"pointer-pos-start":o.pos}),o.container.addClass("wk-drag"),i=!1},i.x=parseInt(h.pageX,10),i.threshold=o.options.threshold)},mouseenter:function(){o.options.pauseOnHover&&(o.hovering=!0)},mouseleave:function(){o.hovering=!1}}),this.update(!0),this.on("display.uk.check",function(){o.element.is(":visible")&&o.update(!0)}),this.element.find("a,img").attr("draggable","false"),this.options.autoplay&&this.start(),t.domObserve(this.element,function(){o.element.children(":not([data-slider-slide])").length&&o.update(!0)})},update:function(e){var i,s,n,a,o=this,h=0,r=0;return this.items=this.container.children().filter(":visible"),this.vp=this.element[0].getBoundingClientRect().width,this.container.css({"min-width":"","min-height":""}),this.items.each(function(e){i=t.$(this).attr("data-slider-slide",e),a=i.css({left:"",width:""})[0].getBoundingClientRect(),s=a.width,n=i.width(),r=Math.max(r,a.height),i.css({left:h,width:s}).data({idx:e,left:h,width:s,cwidth:n,area:h+s,center:h-(o.vp/2-n/2)}),h+=s}),this.container.css({"min-width":h,"min-height":r}),this.options.infinite&&(h<=2*this.vp||this.items.length<5)&&!this.itemsResized?(this.container.children().each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}).each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}),this.itemsResized=!0,this.update()):(this.cw=h,this.pos=0,this.active=h>=this.vp,this.container.css({"-ms-transform":"","-webkit-transform":"",transform:""}),e&&this.updateFocus(this.focus),void 0)},updatePos:function(t){this.pos=t,this.container.css({"-ms-transform":"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)",transform:"translateX("+t+"px)"})},updateFocus:function(e,i){if(this.active){i=i||(e>this.focus?1:-1);var s,n,a=this.items.eq(e);if(this.options.infinite&&this.infinite(e,i),this.options.center)this.updatePos(-1*a.data("center")),this.items.filter("."+this.options.activecls).removeClass(this.options.activecls),a.addClass(this.options.activecls);else if(this.options.infinite)this.updatePos(-1*a.data("left"));else{for(s=0,n=e;n<this.items.length;n++)s+=this.items.eq(n).data("width");if(s>this.vp)this.updatePos(-1*a.data("left"));else if(1==i){for(s=0,n=this.items.length-1;n>=0;n--){if(s+=this.items.eq(n).data("width"),s==this.vp){e=n;break}if(s>this.vp){e=n<this.items.length-1?n+1:n;break}}s>this.vp?this.updatePos(-1*(this.container.width()-this.vp)):this.updatePos(-1*this.items.eq(e).data("left"))}}var o=this.items.eq(e).data("left");this.items.removeClass("wk-slide-before wk-slide-after").each(function(i){i!==e&&t.$(this).addClass(t.$(this).data("left")<o?"wk-slide-before":"wk-slide-after")}),this.focus=e,this.trigger("focusitem.uk.slider",[e,this.items.eq(e),this])}},next:function(){var t=this.items[this.focus+1]?this.focus+1:this.options.infinite?0:this.focus;this.updateFocus(t,1)},previous:function(){var t=this.items[this.focus-1]?this.focus-1:this.options.infinite?this.items[this.focus-1]?this.items-1:this.items.length-1:this.focus;this.updateFocus(t,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},infinite:function(t,e){var i,s=this,n=this.items.eq(t),a=t,o=[],h=0;if(1==e){for(i=0;i<this.items.length&&(a!=t&&(h+=this.items.eq(a).data("width"),o.push(this.items.eq(a))),!(h>this.vp));i++)a=a+1==this.items.length?0:a+1;o.length&&o.forEach(function(t){var e=n.data("area");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}else{for(i=this.items.length-1;i>-1&&(h+=this.items.eq(a).data("width"),a!=t&&o.push(this.items.eq(a)),!(h>this.vp));i--)a=a-1==-1?this.items.length-1:a-1;o.length&&o.forEach(function(t){var e=n.data("left")-t.data("width");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}}}),t.$doc.on("mousemove.uk.slider touchmove.uk.slider",function(t){if(t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i&&Math.abs(t.pageX-i.x)>i.threshold&&(window.getSelection().toString()?e=i=!1:i(t)),e){var s,n,o,h,r,c,d,u,f,l;if(t.clientX||t.clientY?s=t.clientX:(t.pageX||t.pageY)&&(s=t.pageX-document.body.scrollLeft-document.documentElement.scrollLeft),r=a.focus,n=s-e.element.data("pointer-start").x,o=e.element.data("pointer-pos-start")+n,h=s>e.element.data("pointer-start").x?-1:1,c=e.items.eq(a.focus),1==h)for(d=c.data("left")+Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("left")<d&&l.data("area")>d){r=f;break}f=f+1==e.items.length?0:f+1}else for(d=c.data("left")-Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("area")<=c.data("left")&&l.data("center")<d){r=f;break}f=f-1==-1?e.items.length-1:f-1}e.options.infinite&&r!=a._focus&&e.infinite(r,h),e.updatePos(o),a.dir=h,a._focus=r,a.touchx=parseInt(t.pageX,10),a.diff=d}}),t.$doc.on("mouseup.uk.slider touchend.uk.slider",function(){if(e){e.container.removeClass("wk-drag"),e.items.eq(a.focus);var t,s,n,o=!1;if(1==a.dir){for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")>a.diff){o=n;break}n=n+1==e.items.length?0:n+1}e.options.infinite||o||(o=e.items.length)}else{for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")<a.diff){o=n;break}n=n-1==-1?e.items.length-1:n-1}e.options.infinite||o||(o=0)}e.updateFocus(o!==!1?o:a._focus)}e=i=!1}),t.slider});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="wk-modal">','<div class="wk-modal-dialog wk-modal-dialog-lightbox wk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="wk-modal-close wk-close wk-close-alt"></a>','<div class="wk-lightbox-content"></div>','<div class="wk-modal-spinner wk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".wk-modal-dialog:first"),e.content=e.find(".wk-lightbox-content:first"),e.loader=e.find(".wk-modal-spinner:first"),e.closer=e.find(".wk-close.wk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-wk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-wk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$('[data-wk-lightbox*="'+this.options.group+'"]'):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("wk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="wk-position-cover wk-flex wk-flex-middle wk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-previous wk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-next wk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%",maxWidth:t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".wk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="wk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".wk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("wk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("wk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("wk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="wk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),i.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox});

widgetkit/wk-styles-4d3bfa22.css000064400000266032152177723720012446 0ustar00.wk-grid-match>*>*,[class*=wk-grid-width]>*{width:100%;box-sizing:border-box}.wk-panel-box,.wk-panel-box .wk-panel-title,.wk-panel-box-hover:hover,.wk-panel-box-primary .wk-panel-title,.wk-panel-box-primary-hover:hover,.wk-panel-title{color:#444}.wk-tab-center .wk-tab>li>a,.wk-tab-grid>li>a{text-align:center}.wk-modal,.wk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-button-group,.wk-dotnav>*>*,.wk-dropdown-small,.wk-modal-caption,.wk-text-nowrap,.wk-text-truncate{white-space:nowrap}.wk-accordion-content:after,.wk-clearfix:after,.wk-container:after,.wk-dotnav:after,.wk-form-row:after,.wk-grid:after,.wk-list>li:after,.wk-panel:after,.wk-subnav:after,.wk-tab-center:after,.wk-tab:after{clear:both}a[class*=wk-]{text-decoration:none!important;cursor:pointer}a[class*=wk-]:hover{text-decoration:none!important}.wk-dotnav,.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-subnav,.wk-switcher,.wk-tab{margin-left:0;padding:0!important;list-style:none!important}.wk-dotnav,.wk-grid,.wk-list,.wk-list ul,.wk-subnav,.wk-switcher,.wk-tab,.wk-thumbnav{list-style:none}.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-switcher,.wk-tab{margin-bottom:0!important}.wk-dotnav,.wk-subnav{margin-bottom:20px!important}*+.wk-dotnav,*+.wk-subnav{margin-top:20px!important}.wk-dotnav>li>a,.wk-icon-button,.wk-list>li>a,.wk-nav ul>li>a,.wk-nav>li>a,.wk-overlay,.wk-slidenav,.wk-subnav>li>a{border:none!important}.wk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.wk-grid:after,.wk-grid:before{content:"";display:block;overflow:hidden}.wk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-grid>*>:last-child{margin-bottom:0}.wk-grid{margin-left:-25px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:25px}@media (min-width:1220px){.wk-grid{margin-left:-35px}.wk-grid>*{padding-left:35px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:35px}}.wk-grid-collapse{margin-left:0}.wk-grid-collapse>*{padding-left:0}.wk-grid-collapse+.wk-grid-collapse,.wk-grid-collapse>*>.wk-panel+.wk-panel,.wk-grid-collapse>.wk-grid-margin{margin-top:0}.wk-grid-small{margin-left:-10px}.wk-grid-small>*{padding-left:10px}.wk-grid-small+.wk-grid-small,.wk-grid-small>*>.wk-panel+.wk-panel,.wk-grid-small>.wk-grid-margin{margin-top:10px}.wk-grid-medium{margin-left:-25px}.wk-grid-medium>*{padding-left:25px}.wk-grid-medium+.wk-grid-medium,.wk-grid-medium>*>.wk-panel+.wk-panel,.wk-grid-medium>.wk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-grid-large{margin-left:-35px}.wk-grid-large>*{padding-left:35px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:35px}.wk-grid-divider>[class*=wk-width-large-]:not(.wk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1220px){.wk-grid-large{margin-left:-50px}.wk-grid-large>*{padding-left:50px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:50px}}.wk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-grid-divider>[class*=wk-width-9-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-1-]:not(.wk-width-1-1):nth-child(n+2),.wk-grid-divider>[class*=wk-width-2-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-3-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-4-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-5-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-6-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-7-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-8-]:nth-child(n+2){border-left:1px solid #e5e5e5}@media (min-width:1220px){.wk-grid-divider:not(:empty){margin-left:-35px;margin-right:-35px}.wk-grid-divider>*{padding-left:35px;padding-right:35px}.wk-grid-divider:empty{margin-top:35px;margin-bottom:35px}}.wk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none}.wk-grid-width-1-2>*{width:50%}.wk-grid-width-1-3>*{width:33.333%}.wk-grid-width-1-4>*{width:25%}.wk-grid-width-1-5>*{width:20%}.wk-grid-width-1-6>*{width:16.666%}.wk-grid-width-1-10>*{width:10%}.wk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-grid-width-small-1-1>*{width:100%}.wk-grid-width-small-1-2>*{width:50%}.wk-grid-width-small-1-3>*{width:33.333%}.wk-grid-width-small-1-4>*{width:25%}.wk-grid-width-small-1-5>*{width:20%}.wk-grid-width-small-1-6>*{width:16.666%}.wk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-grid-divider>[class*=wk-width-medium-]:not(.wk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-grid-width-medium-1-1>*{width:100%}.wk-grid-width-medium-1-2>*{width:50%}.wk-grid-width-medium-1-3>*{width:33.333%}.wk-grid-width-medium-1-4>*{width:25%}.wk-grid-width-medium-1-5>*{width:20%}.wk-grid-width-medium-1-6>*{width:16.666%}.wk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-grid-width-large-1-1>*{width:100%}.wk-grid-width-large-1-2>*{width:50%}.wk-grid-width-large-1-3>*{width:33.333%}.wk-grid-width-large-1-4>*{width:25%}.wk-grid-width-large-1-5>*{width:20%}.wk-grid-width-large-1-6>*{width:16.666%}.wk-grid-width-large-1-10>*{width:10%}}@media (min-width:1220px){.wk-grid-width-xlarge-1-1>*{width:100%}.wk-grid-width-xlarge-1-2>*{width:50%}.wk-grid-width-xlarge-1-3>*{width:33.333%}.wk-grid-width-xlarge-1-4>*{width:25%}.wk-grid-width-xlarge-1-5>*{width:20%}.wk-grid-width-xlarge-1-6>*{width:16.666%}.wk-grid-width-xlarge-1-10>*{width:10%}}[class*=wk-width]{box-sizing:border-box;width:100%}.wk-width-1-1{width:100%}.wk-width-1-2,.wk-width-2-4,.wk-width-3-6,.wk-width-5-10{width:50%}.wk-width-1-3,.wk-width-2-6{width:33.333%}.wk-width-2-3,.wk-width-4-6{width:66.666%}.wk-width-1-4{width:25%}.wk-width-3-4{width:75%}.wk-width-1-5,.wk-width-2-10{width:20%}.wk-width-2-5,.wk-width-4-10{width:40%}.wk-width-3-5,.wk-width-6-10{width:60%}.wk-width-4-5,.wk-width-8-10{width:80%}.wk-width-1-6{width:16.666%}.wk-width-5-6{width:83.333%}.wk-width-1-10{width:10%}.wk-width-3-10{width:30%}.wk-width-7-10{width:70%}.wk-width-9-10{width:90%}@media (min-width:480px){.wk-width-small-1-1{width:100%}.wk-width-small-1-2,.wk-width-small-2-4,.wk-width-small-3-6,.wk-width-small-5-10{width:50%}.wk-width-small-1-3,.wk-width-small-2-6{width:33.333%}.wk-width-small-2-3,.wk-width-small-4-6{width:66.666%}.wk-width-small-1-4{width:25%}.wk-width-small-3-4{width:75%}.wk-width-small-1-5,.wk-width-small-2-10{width:20%}.wk-width-small-2-5,.wk-width-small-4-10{width:40%}.wk-width-small-3-5,.wk-width-small-6-10{width:60%}.wk-width-small-4-5,.wk-width-small-8-10{width:80%}.wk-width-small-1-6{width:16.666%}.wk-width-small-5-6{width:83.333%}.wk-width-small-1-10{width:10%}.wk-width-small-3-10{width:30%}.wk-width-small-7-10{width:70%}.wk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-width-medium-1-1{width:100%}.wk-width-medium-1-2,.wk-width-medium-2-4,.wk-width-medium-3-6,.wk-width-medium-5-10{width:50%}.wk-width-medium-1-3,.wk-width-medium-2-6{width:33.333%}.wk-width-medium-2-3,.wk-width-medium-4-6{width:66.666%}.wk-width-medium-1-4{width:25%}.wk-width-medium-3-4{width:75%}.wk-width-medium-1-5,.wk-width-medium-2-10{width:20%}.wk-width-medium-2-5,.wk-width-medium-4-10{width:40%}.wk-width-medium-3-5,.wk-width-medium-6-10{width:60%}.wk-width-medium-4-5,.wk-width-medium-8-10{width:80%}.wk-width-medium-1-6{width:16.666%}.wk-width-medium-5-6{width:83.333%}.wk-width-medium-1-10{width:10%}.wk-width-medium-3-10{width:30%}.wk-width-medium-7-10{width:70%}.wk-width-medium-9-10{width:90%}[class*=wk-push-],[class*=wk-pull-]{position:relative}.wk-push-1-2,.wk-push-2-4,.wk-push-3-6,.wk-push-5-10{left:50%}.wk-push-1-3,.wk-push-2-6{left:33.333%}.wk-push-2-3,.wk-push-4-6{left:66.666%}.wk-push-1-4{left:25%}.wk-push-3-4{left:75%}.wk-push-1-5,.wk-push-2-10{left:20%}.wk-push-2-5,.wk-push-4-10{left:40%}.wk-push-3-5,.wk-push-6-10{left:60%}.wk-push-4-5,.wk-push-8-10{left:80%}.wk-push-1-6{left:16.666%}.wk-push-5-6{left:83.333%}.wk-push-1-10{left:10%}.wk-push-3-10{left:30%}.wk-push-7-10{left:70%}.wk-push-9-10{left:90%}.wk-pull-1-2,.wk-pull-2-4,.wk-pull-3-6,.wk-pull-5-10{left:-50%}.wk-pull-1-3,.wk-pull-2-6{left:-33.333%}.wk-pull-2-3,.wk-pull-4-6{left:-66.666%}.wk-pull-1-4{left:-25%}.wk-pull-3-4{left:-75%}.wk-pull-1-5,.wk-pull-2-10{left:-20%}.wk-pull-2-5,.wk-pull-4-10{left:-40%}.wk-pull-3-5,.wk-pull-6-10{left:-60%}.wk-pull-4-5,.wk-pull-8-10{left:-80%}.wk-pull-1-6{left:-16.666%}.wk-pull-5-6{left:-83.333%}.wk-pull-1-10{left:-10%}.wk-pull-3-10{left:-30%}.wk-pull-7-10{left:-70%}.wk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-width-large-1-1{width:100%}.wk-width-large-1-2,.wk-width-large-2-4,.wk-width-large-3-6,.wk-width-large-5-10{width:50%}.wk-width-large-1-3,.wk-width-large-2-6{width:33.333%}.wk-width-large-2-3,.wk-width-large-4-6{width:66.666%}.wk-width-large-1-4{width:25%}.wk-width-large-3-4{width:75%}.wk-width-large-1-5,.wk-width-large-2-10{width:20%}.wk-width-large-2-5,.wk-width-large-4-10{width:40%}.wk-width-large-3-5,.wk-width-large-6-10{width:60%}.wk-width-large-4-5,.wk-width-large-8-10{width:80%}.wk-width-large-1-6{width:16.666%}.wk-width-large-5-6{width:83.333%}.wk-width-large-1-10{width:10%}.wk-width-large-3-10{width:30%}.wk-width-large-7-10{width:70%}.wk-width-large-9-10{width:90%}}.wk-panel{display:block;position:relative}.wk-panel,.wk-panel:hover{text-decoration:none}.wk-panel:after,.wk-panel:before{content:"";display:table}.wk-panel>:not(.wk-panel-title):last-child{margin-bottom:0}.wk-panel-teaser,.wk-panel-title{margin-bottom:20px}.wk-panel-title{margin-top:0;font-size:18px;line-height:24px;font-weight:300;text-transform:none}.wk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-panel-box .wk-panel-badge,.wk-panel-hover .wk-panel-badge{top:10px;right:10px}.wk-panel-body{padding:20px}.wk-panel-box{padding:20px;background:#fff;border:1px solid #e5e5e5;border-radius:2px}.wk-panel-box>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-box>.wk-nav-side{margin:0 -20px}.wk-panel-box-primary{background-color:#fafafa;color:#444}.wk-panel-box-secondary{background-color:#444;color:#fff}.wk-panel-box-secondary .wk-panel-title,.wk-panel-box-secondary-hover:hover{color:#fff}.wk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-nav-dropdown .wk-nav-divider,.wk-nav-navbar .wk-nav-divider,.wk-nav-side .wk-nav-divider{border-top:1px solid #e5e5e5}.wk-panel-hover>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-header .wk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-panel-space{padding:30px}.wk-panel-space .wk-panel-badge{top:30px;right:30px}.wk-panel+.wk-panel-divider{margin-top:50px!important}.wk-panel+.wk-panel-divider:before{content:"";display:block;position:absolute;top:-25px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1220px){.wk-width-xlarge-1-1{width:100%}.wk-width-xlarge-1-2,.wk-width-xlarge-2-4,.wk-width-xlarge-3-6,.wk-width-xlarge-5-10{width:50%}.wk-width-xlarge-1-3,.wk-width-xlarge-2-6{width:33.333%}.wk-width-xlarge-2-3,.wk-width-xlarge-4-6{width:66.666%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-width-xlarge-1-5,.wk-width-xlarge-2-10{width:20%}.wk-width-xlarge-2-5,.wk-width-xlarge-4-10{width:40%}.wk-width-xlarge-3-5,.wk-width-xlarge-6-10{width:60%}.wk-width-xlarge-4-5,.wk-width-xlarge-8-10{width:80%}.wk-width-xlarge-1-6{width:16.666%}.wk-width-xlarge-5-6{width:83.333%}.wk-width-xlarge-1-10{width:10%}.wk-width-xlarge-3-10{width:30%}.wk-width-xlarge-7-10{width:70%}.wk-width-xlarge-9-10{width:90%}.wk-panel+.wk-panel-divider{margin-top:70px!important}.wk-panel+.wk-panel-divider:before{top:-35px}}.wk-cover-object,[data-wk-cover]{position:relative;left:50%;top:50%}.wk-panel-box .wk-panel-teaser>*{border-top-left-radius:2px;border-top-right-radius:2px}.wk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-cover{overflow:hidden}.wk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}[data-wk-cover]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-nav,.wk-nav ul{margin:0;padding:0;list-style:none}.wk-nav li>a{display:block;text-decoration:none}.wk-nav>li>a{padding:5px 15px}.wk-nav ul{padding-left:15px}.wk-nav ul a{padding:2px 0}.wk-nav li>a>div{font-size:12px;line-height:18px}.wk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-nav-header:not(:first-child){margin-top:20px}.wk-nav-divider{margin:9px 15px}ul.wk-nav-sub{padding:5px 0 5px 15px}.wk-nav-parent-icon>.wk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-subnav>*,.wk-tab>li{float:left;position:relative}.wk-nav-parent-icon>.wk-parent.wk-open>a:after{content:"\f107"}.wk-nav-side>li>a{color:#444;border-radius:2px}.wk-nav-side>li>a:focus,.wk-nav-side>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-nav-side>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-side .wk-nav-header{color:#444}.wk-nav-side ul a{color:#999}.wk-nav-side ul a:hover{color:#37a5e5}.wk-nav-dropdown>li>a{color:#444}.wk-nav-dropdown>li>a:focus,.wk-nav-dropdown>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-dropdown .wk-nav-header,.wk-nav-dropdown ul a{color:#999}.wk-nav-dropdown ul a:hover{color:#37a5e5}.wk-nav-navbar>li>a{color:#444}.wk-nav-navbar>li>a:focus,.wk-nav-navbar>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-navbar .wk-nav-header,.wk-nav-navbar ul a{color:#999}.wk-nav-navbar ul a:hover{color:#37a5e5}.wk-nav-offcanvas>li>a{color:#ccc;padding:10px 15px}.wk-nav-offcanvas>.wk-open>a,html:not(.wk-touch) .wk-nav-offcanvas>li>a:focus,html:not(.wk-touch) .wk-nav-offcanvas>li>a:hover{background:#292929;color:#fff;outline:0}html .wk-nav.wk-nav-offcanvas>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-offcanvas .wk-nav-header{color:#777}.wk-nav-offcanvas .wk-nav-divider{border-top:1px solid #424242}.wk-nav-offcanvas ul a{color:#ccc}html:not(.wk-touch) .wk-nav-offcanvas ul a:hover{color:#fff}.wk-panel-box .wk-nav-side>li>a{border-radius:0}.wk-nav-dropdown>li.wk-active>a{color:#37a5e5}.wk-nav-dropdown>li.wk-active>a:hover{color:#fff}.wk-nav-navbar>li.wk-active>a{color:#37a5e5}.wk-nav-navbar>li.wk-active>a:hover{color:#fff}.wk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px}.wk-subnav:after,.wk-subnav:before{content:"";display:block;overflow:hidden}.wk-subnav>*>*{display:inline-block;color:#444}.wk-subnav>*>:focus,.wk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-subnav>.wk-active>*{color:#37a5e5}.wk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-subnav-pill>*>:focus,.wk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-subnav-pill>.wk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-subnav>.wk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-tab{margin:0;padding:0;border-bottom:1px solid #e5e5e5}.wk-tab:after,.wk-tab:before{content:"";display:table}.wk-tab>li{margin-bottom:-1px}.wk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#444;text-decoration:none;border-radius:2px 2px 0 0}.wk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-tab>li.wk-open>a,.wk-tab>li>a:focus,.wk-tab>li>a:hover{border-color:rgba(0,0,0,.06);background:#f5f5f5;color:#444;outline:0}.wk-tab>li.wk-open:not(.wk-active)>a,.wk-tab>li:not(.wk-active)>a:focus,.wk-tab>li:not(.wk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-form>:last-child,.wk-list>li>:last-child,.wk-tab-bottom>li{margin-bottom:0}.wk-tab>li.wk-active>a{border-color:#e5e5e5 #e5e5e5 transparent;background:#fff;color:#37a5e5}.wk-tab>li.wk-disabled>a{color:#999;cursor:text}.wk-tab>li.wk-disabled.wk-active>a,.wk-tab>li.wk-disabled>a:focus,.wk-tab>li.wk-disabled>a:hover{background:0 0;border-color:transparent}.wk-tab-flip>li{float:right}.wk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-tab>li.wk-tab-responsive>a{margin-left:0;margin-right:0}.wk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-tab-center{border-bottom:1px solid #e5e5e5}.wk-tab-center-bottom{border-bottom:none;border-top:1px solid #e5e5e5}.wk-tab-center:after,.wk-tab-center:before{content:"";display:table}.wk-tab-center .wk-tab{position:relative;right:50%;border:none;float:right}.wk-tab-center .wk-tab>li{position:relative;right:-50%}.wk-tab-bottom{border-top:1px solid #e5e5e5;border-bottom:none}.wk-tab-bottom>li{margin-top:-1px}.wk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0;border-radius:0 0 2px 2px}.wk-tab-bottom>li.wk-open:not(.wk-active)>a,.wk-tab-bottom>li:not(.wk-active)>a:focus,.wk-tab-bottom>li:not(.wk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-tab-bottom>li.wk-active>a{border-top-color:transparent;border-bottom-color:#e5e5e5}.wk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #e5e5e5;z-index:-1}.wk-tab-grid>li:first-child>a{margin-left:5px}.wk-tab-grid.wk-tab-bottom{border-top:none}.wk-tab-grid.wk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-tab-left,.wk-tab-right{border-bottom:none}.wk-tab-left>li,.wk-tab-right>li{margin-bottom:0;float:none}.wk-tab-left>li>a,.wk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-tab-left>li:nth-child(n+2)>a,.wk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-tab-left>li.wk-active>a,.wk-tab-right>li.wk-active>a{border-color:#e5e5e5}.wk-tab-left{border-right:1px solid #e5e5e5}.wk-tab-left>li{margin-right:-1px}.wk-tab-left>li>a{border-bottom-width:1px;border-right-width:0;border-radius:2px 0 0 2px}.wk-tab-left>li:not(.wk-active)>a:focus,.wk-tab-left>li:not(.wk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-tab-left>li.wk-active>a{border-right-color:transparent}.wk-tab-right{border-left:1px solid #e5e5e5}.wk-tab-right>li{margin-left:-1px}.wk-tab-right>li>a{border-bottom-width:1px;border-left-width:0;border-radius:0 2px 2px 0}.wk-tab-right>li:not(.wk-active)>a:focus,.wk-tab-right>li:not(.wk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-tab-right>li.wk-active>a{border-left-color:transparent}}.wk-thumbnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-thumbnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;float:left}.wk-thumbnav:after,.wk-thumbnav:before{content:"";display:block;overflow:hidden}.wk-thumbnav:after{clear:both}.wk-thumbnav>*>*{display:block;background:#fff}.wk-thumbnav>*>*>img{opacity:.7;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.wk-thumbnav>*>:focus>img,.wk-thumbnav>*>:hover>img,.wk-thumbnav>.wk-active>*>img{opacity:1}.wk-list{padding:0}.wk-list>li:after,.wk-list>li:before{content:"";display:table}.wk-list ul{margin:0;padding-left:20px}.wk-list-line>li:nth-child(n+2){margin-top:5px;padding-top:5px;border-top:1px solid #e5e5e5}.wk-list-striped>li{padding:5px;border-bottom:1px solid #e5e5e5}.wk-list-striped>li:nth-of-type(odd){background:#fafafa}.wk-list-space>li:nth-child(n+2){margin-top:10px}.wk-list-striped>li:first-child{border-top:1px solid #e5e5e5}.wk-form input,.wk-form select,.wk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-form select{text-transform:none}.wk-form optgroup{font:inherit;font-weight:700}.wk-form input::-moz-focus-inner{border:0;padding:0}.wk-form input[type=checkbox],.wk-form input[type=radio]{padding:0}.wk-form input[type=checkbox]:not(:disabled),.wk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form textarea{-webkit-appearance:none}.wk-form input[type=search]::-webkit-search-cancel-button,.wk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-form input[type=number]::-webkit-inner-spin-button,.wk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-form fieldset{border:none;margin:0;padding:0}.wk-form textarea{overflow:auto;vertical-align:top}.wk-button,.wk-close{-webkit-appearance:none;overflow:visible;text-transform:none;text-align:center}.wk-button,.wk-button-group,.wk-form input:not([type=radio]):not([type=checkbox]),.wk-form select{vertical-align:middle}.wk-form :invalid{box-shadow:none}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form input[type=datetime-local],.wk-form input[type=date],.wk-form input[type=month],.wk-form input[type=time],.wk-form input[type=week],.wk-form input[type=color],.wk-form select,.wk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px}.wk-form input:not([type]):focus,.wk-form input[type=text]:focus,.wk-form input[type=password]:focus,.wk-form input[type=email]:focus,.wk-form input[type=url]:focus,.wk-form input[type=search]:focus,.wk-form input[type=tel]:focus,.wk-form input[type=number]:focus,.wk-form input[type=datetime]:focus,.wk-form input[type=datetime-local]:focus,.wk-form input[type=date]:focus,.wk-form input[type=month]:focus,.wk-form input[type=time]:focus,.wk-form input[type=week]:focus,.wk-form input[type=color]:focus,.wk-form select:focus,.wk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-form input:not([type]):disabled,.wk-form input[type=text]:disabled,.wk-form input[type=password]:disabled,.wk-form input[type=email]:disabled,.wk-form input[type=url]:disabled,.wk-form input[type=search]:disabled,.wk-form input[type=tel]:disabled,.wk-form input[type=number]:disabled,.wk-form input[type=datetime]:disabled,.wk-form input[type=datetime-local]:disabled,.wk-form input[type=date]:disabled,.wk-form input[type=month]:disabled,.wk-form input[type=time]:disabled,.wk-form input[type=week]:disabled,.wk-form input[type=color]:disabled,.wk-form select:disabled,.wk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-form :-ms-input-placeholder{color:#999!important}.wk-form ::-moz-placeholder{opacity:1;color:#999}.wk-form ::-webkit-input-placeholder{color:#999}.wk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-form :disabled::-moz-placeholder{color:#999}.wk-form :disabled::-webkit-input-placeholder{color:#999}.wk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}input:not([type]).wk-form-small,input[type].wk-form-small,select.wk-form-small,textarea.wk-form-small{height:30px;padding:3px;font-size:12px}input:not([type]).wk-form-large,input[type].wk-form-large,select.wk-form-large,textarea.wk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-form select[multiple],.wk-form select[size],.wk-form textarea{height:auto}.wk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#e95555!important}.wk-form-success{border-color:#80c96d!important;background:#fff!important;color:#71bd6a!important}.wk-form-blank{border-color:transparent!important;border-style:dashed!important;background:0 0!important}.wk-form-blank:focus{border-color:#e5e5e5!important}input.wk-form-width-mini{width:40px}select.wk-form-width-mini{width:65px}.wk-form-width-small{width:130px}.wk-form-width-medium{width:200px}.wk-form-width-large{width:500px}.wk-form-row:after,.wk-form-row:before{content:"";display:table}.wk-form-row+.wk-form-row{margin-top:20px}.wk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-form-controls>:first-child{margin-top:0}.wk-form-controls>:last-child{margin-bottom:0}.wk-form-controls-condensed{margin:5px 0}.wk-form-stacked .wk-form-label{display:block;margin-bottom:5px;font-weight:700}@media (max-width:959px){.wk-form-horizontal .wk-form-label{display:block;margin-bottom:5px;font-weight:700}}.wk-button,.wk-button-dropdown,.wk-button-group,.wk-button-group>*,.wk-form-icon{display:inline-block}.wk-overlay-area-content>:last-child,.wk-overlay-panel.wk-flex>*>:last-child,.wk-overlay-panel>:last-child,.wk-overlay>:first-child{margin-bottom:0}@media (min-width:960px){.wk-form-horizontal .wk-form-label{width:200px;margin-top:7px;float:left}.wk-form-horizontal .wk-form-controls{margin-left:215px}.wk-form-horizontal .wk-form-controls-text{padding-top:5px}}.wk-form-icon{position:relative;max-width:100%}.wk-form-icon>[class*=wk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-button-group,.wk-button-group .wk-button:active,.wk-button-group .wk-button:hover,.wk-overlay{position:relative}.wk-form-icon:not(.wk-form-icon-flip)>input{padding-left:30px!important}.wk-form-icon-flip>[class*=wk-icon-]{right:0}.wk-form-icon-flip>input{padding-right:30px!important}.wk-button::-moz-focus-inner{border:0;padding:0}.wk-button{margin:0;font:inherit;color:#444;box-sizing:border-box;padding:0 15px;background:#f5f5f5;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;border:1px solid rgba(0,0,0,.1)!important;border-radius:2px}.wk-button:not(:disabled){cursor:pointer}.wk-button:focus,.wk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)!important}.wk-button.wk-active,.wk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-button-danger,.wk-button-danger.wk-active,.wk-button-danger:active,.wk-button-danger:focus,.wk-button-danger:hover,.wk-button-primary,.wk-button-primary:focus,.wk-button-primary:hover,.wk-button-success,.wk-button-success.wk-active,.wk-button-success:active,.wk-button-success:focus,.wk-button-success:hover{color:#fff;border-color:transparent!important}.wk-button-primary{background-color:#37a5e4}.wk-button-primary:focus,.wk-button-primary:hover{background-color:#2495d6}.wk-button-primary.wk-active,.wk-button-primary:active{background-color:#1889c6;color:#fff;border-color:transparent!important;box-shadow:inset 0 1px 3px rgba(16,90,130,.2)}.wk-button-success{background-color:#80c96d}.wk-button-success:focus,.wk-button-success:hover{background-color:#6dbc58}.wk-button-success.wk-active,.wk-button-success:active{background-color:#61b54c;box-shadow:inset 0 1px 3px rgba(68,128,53,.2)}.wk-button-danger{background-color:#f0615b}.wk-button-danger:focus,.wk-button-danger:hover{background-color:#e54f49}.wk-button-danger.wk-active,.wk-button-danger:active{background-color:#e4463a;box-shadow:inset 0 1px 3px rgba(162,32,22,.2)}.wk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1)!important;box-shadow:none}.wk-button-link,.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:disabled,.wk-button-link:focus,.wk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-button-link{color:#37a5e5}.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:focus,.wk-button-link:hover{color:#1889c7;text-decoration:none}.wk-button-link:disabled,.wk-icon-hover{color:#999}.wk-button-link:focus{outline:dotted 1px}.wk-button-mini{min-height:25px;padding:0 8px;line-height:23px;font-size:12px}.wk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-button-group{font-size:0}.wk-button-group .wk-button{vertical-align:top}.wk-button-dropdown{vertical-align:middle;position:relative}.wk-button-group>.wk-button:not(:first-child):not(:last-child),.wk-button-group>div:not(:first-child):not(:last-child) .wk-button{border-radius:0}.wk-button-group>.wk-button:first-child,.wk-button-group>div:first-child .wk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-button-group>.wk-button:last-child,.wk-button-group>div:last-child .wk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-button-group>.wk-button:nth-child(n+2),.wk-button-group>div:nth-child(n+2) .wk-button{margin-left:-1px}@font-face{font-family:FontAwesome;src:url("/media/widgetkit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/media/widgetkit/fonts/fontawesome-webfont.woff") format("woff"),url("/media/widgetkit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}[class*=wk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=wk-icon-],[class*=wk-icon-]:focus,[class*=wk-icon-]:hover{text-decoration:none}.wk-icon-small{font-size:150%;vertical-align:-10%}.wk-icon-medium{font-size:200%;vertical-align:-16%}.wk-icon-large{font-size:250%;vertical-align:-22%}.wk-overlay,.wk-overlay-area-content,.wk-overlay-area:not(:empty):before{vertical-align:middle;display:inline-block}.wk-icon-justify{width:1em;text-align:center}.wk-icon-spin{display:inline-block;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-icon-hover:hover{color:#444}.wk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-icon-button:focus,.wk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-icon-glass:before{content:"\f000"}.wk-icon-music:before{content:"\f001"}.wk-icon-search:before{content:"\f002"}.wk-icon-envelope-o:before{content:"\f003"}.wk-icon-heart:before{content:"\f004"}.wk-icon-star:before{content:"\f005"}.wk-icon-star-o:before{content:"\f006"}.wk-icon-user:before{content:"\f007"}.wk-icon-film:before{content:"\f008"}.wk-icon-th-large:before{content:"\f009"}.wk-icon-th:before{content:"\f00a"}.wk-icon-th-list:before{content:"\f00b"}.wk-icon-check:before{content:"\f00c"}.wk-icon-close:before,.wk-icon-remove:before,.wk-icon-times:before{content:"\f00d"}.wk-icon-search-plus:before{content:"\f00e"}.wk-icon-search-minus:before{content:"\f010"}.wk-icon-power-off:before{content:"\f011"}.wk-icon-signal:before{content:"\f012"}.wk-icon-cog:before,.wk-icon-gear:before{content:"\f013"}.wk-icon-trash-o:before{content:"\f014"}.wk-icon-home:before{content:"\f015"}.wk-icon-file-o:before{content:"\f016"}.wk-icon-clock-o:before{content:"\f017"}.wk-icon-road:before{content:"\f018"}.wk-icon-download:before{content:"\f019"}.wk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-icon-inbox:before{content:"\f01c"}.wk-icon-play-circle-o:before{content:"\f01d"}.wk-icon-repeat:before,.wk-icon-rotate-right:before{content:"\f01e"}.wk-icon-refresh:before{content:"\f021"}.wk-icon-list-alt:before{content:"\f022"}.wk-icon-lock:before{content:"\f023"}.wk-icon-flag:before{content:"\f024"}.wk-icon-headphones:before{content:"\f025"}.wk-icon-volume-off:before{content:"\f026"}.wk-icon-volume-down:before{content:"\f027"}.wk-icon-volume-up:before{content:"\f028"}.wk-icon-qrcode:before{content:"\f029"}.wk-icon-barcode:before{content:"\f02a"}.wk-icon-tag:before{content:"\f02b"}.wk-icon-tags:before{content:"\f02c"}.wk-icon-book:before{content:"\f02d"}.wk-icon-bookmark:before{content:"\f02e"}.wk-icon-print:before{content:"\f02f"}.wk-icon-camera:before{content:"\f030"}.wk-icon-font:before{content:"\f031"}.wk-icon-bold:before{content:"\f032"}.wk-icon-italic:before{content:"\f033"}.wk-icon-text-height:before{content:"\f034"}.wk-icon-text-width:before{content:"\f035"}.wk-icon-align-left:before{content:"\f036"}.wk-icon-align-center:before{content:"\f037"}.wk-icon-align-right:before{content:"\f038"}.wk-icon-align-justify:before{content:"\f039"}.wk-icon-list:before{content:"\f03a"}.wk-icon-dedent:before,.wk-icon-outdent:before{content:"\f03b"}.wk-icon-indent:before{content:"\f03c"}.wk-icon-video-camera:before{content:"\f03d"}.wk-icon-image:before,.wk-icon-photo:before,.wk-icon-picture-o:before{content:"\f03e"}.wk-icon-pencil:before{content:"\f040"}.wk-icon-map-marker:before{content:"\f041"}.wk-icon-adjust:before{content:"\f042"}.wk-icon-tint:before{content:"\f043"}.wk-icon-edit:before,.wk-icon-pencil-square-o:before{content:"\f044"}.wk-icon-share-square-o:before{content:"\f045"}.wk-icon-check-square-o:before{content:"\f046"}.wk-icon-arrows:before{content:"\f047"}.wk-icon-step-backward:before{content:"\f048"}.wk-icon-fast-backward:before{content:"\f049"}.wk-icon-backward:before{content:"\f04a"}.wk-icon-play:before{content:"\f04b"}.wk-icon-pause:before{content:"\f04c"}.wk-icon-stop:before{content:"\f04d"}.wk-icon-forward:before{content:"\f04e"}.wk-icon-fast-forward:before{content:"\f050"}.wk-icon-step-forward:before{content:"\f051"}.wk-icon-eject:before{content:"\f052"}.wk-icon-chevron-left:before{content:"\f053"}.wk-icon-chevron-right:before{content:"\f054"}.wk-icon-plus-circle:before{content:"\f055"}.wk-icon-minus-circle:before{content:"\f056"}.wk-icon-times-circle:before{content:"\f057"}.wk-icon-check-circle:before{content:"\f058"}.wk-icon-question-circle:before{content:"\f059"}.wk-icon-info-circle:before{content:"\f05a"}.wk-icon-crosshairs:before{content:"\f05b"}.wk-icon-times-circle-o:before{content:"\f05c"}.wk-icon-check-circle-o:before{content:"\f05d"}.wk-icon-ban:before{content:"\f05e"}.wk-icon-arrow-left:before{content:"\f060"}.wk-icon-arrow-right:before{content:"\f061"}.wk-icon-arrow-up:before{content:"\f062"}.wk-icon-arrow-down:before{content:"\f063"}.wk-icon-mail-forward:before,.wk-icon-share:before{content:"\f064"}.wk-icon-expand:before{content:"\f065"}.wk-icon-compress:before{content:"\f066"}.wk-icon-plus:before{content:"\f067"}.wk-icon-minus:before{content:"\f068"}.wk-icon-asterisk:before{content:"\f069"}.wk-icon-exclamation-circle:before{content:"\f06a"}.wk-icon-gift:before{content:"\f06b"}.wk-icon-leaf:before{content:"\f06c"}.wk-icon-fire:before{content:"\f06d"}.wk-icon-eye:before{content:"\f06e"}.wk-icon-eye-slash:before{content:"\f070"}.wk-icon-exclamation-triangle:before,.wk-icon-warning:before{content:"\f071"}.wk-icon-plane:before{content:"\f072"}.wk-icon-calendar:before{content:"\f073"}.wk-icon-random:before{content:"\f074"}.wk-icon-comment:before{content:"\f075"}.wk-icon-magnet:before{content:"\f076"}.wk-icon-chevron-up:before{content:"\f077"}.wk-icon-chevron-down:before{content:"\f078"}.wk-icon-retweet:before{content:"\f079"}.wk-icon-shopping-cart:before{content:"\f07a"}.wk-icon-folder:before{content:"\f07b"}.wk-icon-folder-open:before{content:"\f07c"}.wk-icon-arrows-v:before{content:"\f07d"}.wk-icon-arrows-h:before{content:"\f07e"}.wk-icon-bar-chart-o:before,.wk-icon-bar-chart:before{content:"\f080"}.wk-icon-twitter-square:before{content:"\f081"}.wk-icon-facebook-square:before{content:"\f082"}.wk-icon-camera-retro:before{content:"\f083"}.wk-icon-key:before{content:"\f084"}.wk-icon-cogs:before,.wk-icon-gears:before{content:"\f085"}.wk-icon-comments:before{content:"\f086"}.wk-icon-thumbs-o-up:before{content:"\f087"}.wk-icon-thumbs-o-down:before{content:"\f088"}.wk-icon-star-half:before{content:"\f089"}.wk-icon-heart-o:before{content:"\f08a"}.wk-icon-sign-out:before{content:"\f08b"}.wk-icon-linkedin-square:before{content:"\f08c"}.wk-icon-thumb-tack:before{content:"\f08d"}.wk-icon-external-link:before{content:"\f08e"}.wk-icon-sign-in:before{content:"\f090"}.wk-icon-trophy:before{content:"\f091"}.wk-icon-github-square:before{content:"\f092"}.wk-icon-upload:before{content:"\f093"}.wk-icon-lemon-o:before{content:"\f094"}.wk-icon-phone:before{content:"\f095"}.wk-icon-square-o:before{content:"\f096"}.wk-icon-bookmark-o:before{content:"\f097"}.wk-icon-phone-square:before{content:"\f098"}.wk-icon-twitter:before{content:"\f099"}.wk-icon-facebook-f:before,.wk-icon-facebook:before{content:"\f09a"}.wk-icon-github:before{content:"\f09b"}.wk-icon-unlock:before{content:"\f09c"}.wk-icon-credit-card:before{content:"\f09d"}.wk-icon-rss:before{content:"\f09e"}.wk-icon-hdd-o:before{content:"\f0a0"}.wk-icon-bullhorn:before{content:"\f0a1"}.wk-icon-bell:before{content:"\f0f3"}.wk-icon-certificate:before{content:"\f0a3"}.wk-icon-hand-o-right:before{content:"\f0a4"}.wk-icon-hand-o-left:before{content:"\f0a5"}.wk-icon-hand-o-up:before{content:"\f0a6"}.wk-icon-hand-o-down:before{content:"\f0a7"}.wk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-icon-globe:before{content:"\f0ac"}.wk-icon-wrench:before{content:"\f0ad"}.wk-icon-tasks:before{content:"\f0ae"}.wk-icon-filter:before{content:"\f0b0"}.wk-icon-briefcase:before{content:"\f0b1"}.wk-icon-arrows-alt:before{content:"\f0b2"}.wk-icon-group:before,.wk-icon-users:before{content:"\f0c0"}.wk-icon-chain:before,.wk-icon-link:before{content:"\f0c1"}.wk-icon-cloud:before{content:"\f0c2"}.wk-icon-flask:before{content:"\f0c3"}.wk-icon-cut:before,.wk-icon-scissors:before{content:"\f0c4"}.wk-icon-copy:before,.wk-icon-files-o:before{content:"\f0c5"}.wk-icon-paperclip:before{content:"\f0c6"}.wk-icon-floppy-o:before,.wk-icon-save:before{content:"\f0c7"}.wk-icon-square:before{content:"\f0c8"}.wk-icon-bars:before,.wk-icon-navicon:before,.wk-icon-reorder:before{content:"\f0c9"}.wk-icon-list-ul:before{content:"\f0ca"}.wk-icon-list-ol:before{content:"\f0cb"}.wk-icon-strikethrough:before{content:"\f0cc"}.wk-icon-underline:before{content:"\f0cd"}.wk-icon-table:before{content:"\f0ce"}.wk-icon-magic:before{content:"\f0d0"}.wk-icon-truck:before{content:"\f0d1"}.wk-icon-pinterest:before{content:"\f0d2"}.wk-icon-pinterest-square:before{content:"\f0d3"}.wk-icon-google-plus-square:before{content:"\f0d4"}.wk-icon-google-plus:before{content:"\f0d5"}.wk-icon-money:before{content:"\f0d6"}.wk-icon-caret-down:before{content:"\f0d7"}.wk-icon-caret-up:before{content:"\f0d8"}.wk-icon-caret-left:before{content:"\f0d9"}.wk-icon-caret-right:before{content:"\f0da"}.wk-icon-columns:before{content:"\f0db"}.wk-icon-sort:before,.wk-icon-unsorted:before{content:"\f0dc"}.wk-icon-sort-desc:before,.wk-icon-sort-down:before{content:"\f0dd"}.wk-icon-sort-asc:before,.wk-icon-sort-up:before{content:"\f0de"}.wk-icon-envelope:before{content:"\f0e0"}.wk-icon-linkedin:before{content:"\f0e1"}.wk-icon-rotate-left:before,.wk-icon-undo:before{content:"\f0e2"}.wk-icon-gavel:before,.wk-icon-legal:before{content:"\f0e3"}.wk-icon-dashboard:before,.wk-icon-tachometer:before{content:"\f0e4"}.wk-icon-comment-o:before{content:"\f0e5"}.wk-icon-comments-o:before{content:"\f0e6"}.wk-icon-bolt:before,.wk-icon-flash:before{content:"\f0e7"}.wk-icon-sitemap:before{content:"\f0e8"}.wk-icon-umbrella:before{content:"\f0e9"}.wk-icon-clipboard:before,.wk-icon-paste:before{content:"\f0ea"}.wk-icon-lightbulb-o:before{content:"\f0eb"}.wk-icon-exchange:before{content:"\f0ec"}.wk-icon-cloud-download:before{content:"\f0ed"}.wk-icon-cloud-upload:before{content:"\f0ee"}.wk-icon-user-md:before{content:"\f0f0"}.wk-icon-stethoscope:before{content:"\f0f1"}.wk-icon-suitcase:before{content:"\f0f2"}.wk-icon-bell-o:before{content:"\f0a2"}.wk-icon-coffee:before{content:"\f0f4"}.wk-icon-cutlery:before{content:"\f0f5"}.wk-icon-file-text-o:before{content:"\f0f6"}.wk-icon-building-o:before{content:"\f0f7"}.wk-icon-hospital-o:before{content:"\f0f8"}.wk-icon-ambulance:before{content:"\f0f9"}.wk-icon-medkit:before{content:"\f0fa"}.wk-icon-fighter-jet:before{content:"\f0fb"}.wk-icon-beer:before{content:"\f0fc"}.wk-icon-h-square:before{content:"\f0fd"}.wk-icon-plus-square:before{content:"\f0fe"}.wk-icon-angle-double-left:before{content:"\f100"}.wk-icon-angle-double-right:before{content:"\f101"}.wk-icon-angle-double-up:before{content:"\f102"}.wk-icon-angle-double-down:before{content:"\f103"}.wk-icon-angle-left:before{content:"\f104"}.wk-icon-angle-right:before{content:"\f105"}.wk-icon-angle-up:before{content:"\f106"}.wk-icon-angle-down:before{content:"\f107"}.wk-icon-desktop:before{content:"\f108"}.wk-icon-laptop:before{content:"\f109"}.wk-icon-tablet:before{content:"\f10a"}.wk-icon-mobile-phone:before,.wk-icon-mobile:before{content:"\f10b"}.wk-icon-circle-o:before{content:"\f10c"}.wk-icon-quote-left:before{content:"\f10d"}.wk-icon-quote-right:before{content:"\f10e"}.wk-icon-spinner:before{content:"\f110"}.wk-icon-circle:before{content:"\f111"}.wk-icon-mail-reply:before,.wk-icon-reply:before{content:"\f112"}.wk-icon-github-alt:before{content:"\f113"}.wk-icon-folder-o:before{content:"\f114"}.wk-icon-folder-open-o:before{content:"\f115"}.wk-icon-smile-o:before{content:"\f118"}.wk-icon-frown-o:before{content:"\f119"}.wk-icon-meh-o:before{content:"\f11a"}.wk-icon-gamepad:before{content:"\f11b"}.wk-icon-keyboard-o:before{content:"\f11c"}.wk-icon-flag-o:before{content:"\f11d"}.wk-icon-flag-checkered:before{content:"\f11e"}.wk-icon-terminal:before{content:"\f120"}.wk-icon-code:before{content:"\f121"}.wk-icon-mail-reply-all:before,.wk-icon-reply-all:before{content:"\f122"}.wk-icon-star-half-empty:before,.wk-icon-star-half-full:before,.wk-icon-star-half-o:before{content:"\f123"}.wk-icon-location-arrow:before{content:"\f124"}.wk-icon-crop:before{content:"\f125"}.wk-icon-code-fork:before{content:"\f126"}.wk-icon-chain-broken:before,.wk-icon-unlink:before{content:"\f127"}.wk-icon-question:before{content:"\f128"}.wk-icon-info:before{content:"\f129"}.wk-icon-exclamation:before{content:"\f12a"}.wk-icon-superscript:before{content:"\f12b"}.wk-icon-subscript:before{content:"\f12c"}.wk-icon-eraser:before{content:"\f12d"}.wk-icon-puzzle-piece:before{content:"\f12e"}.wk-icon-microphone:before{content:"\f130"}.wk-icon-microphone-slash:before{content:"\f131"}.wk-icon-shield:before{content:"\f132"}.wk-icon-calendar-o:before{content:"\f133"}.wk-icon-fire-extinguisher:before{content:"\f134"}.wk-icon-rocket:before{content:"\f135"}.wk-icon-maxcdn:before{content:"\f136"}.wk-icon-chevron-circle-left:before{content:"\f137"}.wk-icon-chevron-circle-right:before{content:"\f138"}.wk-icon-chevron-circle-up:before{content:"\f139"}.wk-icon-chevron-circle-down:before{content:"\f13a"}.wk-icon-html5:before{content:"\f13b"}.wk-icon-css3:before{content:"\f13c"}.wk-icon-anchor:before{content:"\f13d"}.wk-icon-unlock-alt:before{content:"\f13e"}.wk-icon-bullseye:before{content:"\f140"}.wk-icon-ellipsis-h:before{content:"\f141"}.wk-icon-ellipsis-v:before{content:"\f142"}.wk-icon-rss-square:before{content:"\f143"}.wk-icon-play-circle:before{content:"\f144"}.wk-icon-ticket:before{content:"\f145"}.wk-icon-minus-square:before{content:"\f146"}.wk-icon-minus-square-o:before{content:"\f147"}.wk-icon-level-up:before{content:"\f148"}.wk-icon-level-down:before{content:"\f149"}.wk-icon-check-square:before{content:"\f14a"}.wk-icon-pencil-square:before{content:"\f14b"}.wk-icon-external-link-square:before{content:"\f14c"}.wk-icon-share-square:before{content:"\f14d"}.wk-icon-compass:before{content:"\f14e"}.wk-icon-caret-square-o-down:before,.wk-icon-toggle-down:before{content:"\f150"}.wk-icon-caret-square-o-up:before,.wk-icon-toggle-up:before{content:"\f151"}.wk-icon-caret-square-o-right:before,.wk-icon-toggle-right:before{content:"\f152"}.wk-icon-eur:before,.wk-icon-euro:before{content:"\f153"}.wk-icon-gbp:before{content:"\f154"}.wk-icon-dollar:before,.wk-icon-usd:before{content:"\f155"}.wk-icon-inr:before,.wk-icon-rupee:before{content:"\f156"}.wk-icon-cny:before,.wk-icon-jpy:before,.wk-icon-rmb:before,.wk-icon-yen:before{content:"\f157"}.wk-icon-rouble:before,.wk-icon-rub:before,.wk-icon-ruble:before{content:"\f158"}.wk-icon-krw:before,.wk-icon-won:before{content:"\f159"}.wk-icon-bitcoin:before,.wk-icon-btc:before{content:"\f15a"}.wk-icon-file:before{content:"\f15b"}.wk-icon-file-text:before{content:"\f15c"}.wk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-icon-sort-amount-asc:before{content:"\f160"}.wk-icon-sort-amount-desc:before{content:"\f161"}.wk-icon-sort-numeric-asc:before{content:"\f162"}.wk-icon-sort-numeric-desc:before{content:"\f163"}.wk-icon-thumbs-up:before{content:"\f164"}.wk-icon-thumbs-down:before{content:"\f165"}.wk-icon-youtube-square:before{content:"\f166"}.wk-icon-youtube:before{content:"\f167"}.wk-icon-xing:before{content:"\f168"}.wk-icon-xing-square:before{content:"\f169"}.wk-icon-youtube-play:before{content:"\f16a"}.wk-icon-dropbox:before{content:"\f16b"}.wk-icon-stack-overflow:before{content:"\f16c"}.wk-icon-instagram:before{content:"\f16d"}.wk-icon-flickr:before{content:"\f16e"}.wk-icon-adn:before{content:"\f170"}.wk-icon-bitbucket:before{content:"\f171"}.wk-icon-bitbucket-square:before{content:"\f172"}.wk-icon-tumblr:before{content:"\f173"}.wk-icon-tumblr-square:before{content:"\f174"}.wk-icon-long-arrow-down:before{content:"\f175"}.wk-icon-long-arrow-up:before{content:"\f176"}.wk-icon-long-arrow-left:before{content:"\f177"}.wk-icon-long-arrow-right:before{content:"\f178"}.wk-icon-apple:before{content:"\f179"}.wk-icon-windows:before{content:"\f17a"}.wk-icon-android:before{content:"\f17b"}.wk-icon-linux:before{content:"\f17c"}.wk-icon-dribbble:before{content:"\f17d"}.wk-icon-skype:before{content:"\f17e"}.wk-icon-foursquare:before{content:"\f180"}.wk-icon-trello:before{content:"\f181"}.wk-icon-female:before{content:"\f182"}.wk-icon-male:before{content:"\f183"}.wk-icon-gittip:before,.wk-icon-gratipay:before{content:"\f184"}.wk-icon-sun-o:before{content:"\f185"}.wk-icon-moon-o:before{content:"\f186"}.wk-icon-archive:before{content:"\f187"}.wk-icon-bug:before{content:"\f188"}.wk-icon-vk:before{content:"\f189"}.wk-icon-weibo:before{content:"\f18a"}.wk-icon-renren:before{content:"\f18b"}.wk-icon-pagelines:before{content:"\f18c"}.wk-icon-stack-exchange:before{content:"\f18d"}.wk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-icon-caret-square-o-left:before,.wk-icon-toggle-left:before{content:"\f191"}.wk-icon-dot-circle-o:before{content:"\f192"}.wk-icon-wheelchair:before{content:"\f193"}.wk-icon-vimeo-square:before{content:"\f194"}.wk-icon-try:before,.wk-icon-turkish-lira:before{content:"\f195"}.wk-icon-plus-square-o:before{content:"\f196"}.wk-icon-space-shuttle:before{content:"\f197"}.wk-icon-slack:before{content:"\f198"}.wk-icon-envelope-square:before{content:"\f199"}.wk-icon-wordpress:before{content:"\f19a"}.wk-icon-openid:before{content:"\f19b"}.wk-icon-bank:before,.wk-icon-institution:before,.wk-icon-university:before{content:"\f19c"}.wk-icon-graduation-cap:before,.wk-icon-mortar-board:before{content:"\f19d"}.wk-icon-yahoo:before{content:"\f19e"}.wk-icon-google:before{content:"\f1a0"}.wk-icon-reddit:before{content:"\f1a1"}.wk-icon-reddit-square:before{content:"\f1a2"}.wk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-icon-stumbleupon:before{content:"\f1a4"}.wk-icon-delicious:before{content:"\f1a5"}.wk-icon-digg:before{content:"\f1a6"}.wk-icon-pied-piper:before{content:"\f1a7"}.wk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-icon-drupal:before{content:"\f1a9"}.wk-icon-joomla:before{content:"\f1aa"}.wk-icon-language:before{content:"\f1ab"}.wk-icon-fax:before{content:"\f1ac"}.wk-icon-building:before{content:"\f1ad"}.wk-icon-child:before{content:"\f1ae"}.wk-icon-paw:before{content:"\f1b0"}.wk-icon-spoon:before{content:"\f1b1"}.wk-icon-cube:before{content:"\f1b2"}.wk-icon-cubes:before{content:"\f1b3"}.wk-icon-behance:before{content:"\f1b4"}.wk-icon-behance-square:before{content:"\f1b5"}.wk-icon-steam:before{content:"\f1b6"}.wk-icon-steam-square:before{content:"\f1b7"}.wk-icon-recycle:before{content:"\f1b8"}.wk-icon-automobile:before,.wk-icon-car:before{content:"\f1b9"}.wk-icon-cab:before,.wk-icon-taxi:before{content:"\f1ba"}.wk-icon-tree:before{content:"\f1bb"}.wk-icon-spotify:before{content:"\f1bc"}.wk-icon-deviantart:before{content:"\f1bd"}.wk-icon-soundcloud:before{content:"\f1be"}.wk-icon-database:before{content:"\f1c0"}.wk-icon-file-pdf-o:before{content:"\f1c1"}.wk-icon-file-word-o:before{content:"\f1c2"}.wk-icon-file-excel-o:before{content:"\f1c3"}.wk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-icon-file-image-o:before,.wk-icon-file-photo-o:before,.wk-icon-file-picture-o:before{content:"\f1c5"}.wk-icon-file-archive-o:before,.wk-icon-file-zip-o:before{content:"\f1c6"}.wk-icon-file-audio-o:before,.wk-icon-file-sound-o:before{content:"\f1c7"}.wk-icon-file-movie-o:before,.wk-icon-file-video-o:before{content:"\f1c8"}.wk-icon-file-code-o:before{content:"\f1c9"}.wk-icon-vine:before{content:"\f1ca"}.wk-icon-codepen:before{content:"\f1cb"}.wk-icon-jsfiddle:before{content:"\f1cc"}.wk-icon-life-bouy:before,.wk-icon-life-buoy:before,.wk-icon-life-ring:before,.wk-icon-life-saver:before,.wk-icon-support:before{content:"\f1cd"}.wk-icon-circle-o-notch:before{content:"\f1ce"}.wk-icon-ra:before,.wk-icon-rebel:before{content:"\f1d0"}.wk-icon-empire:before,.wk-icon-ge:before{content:"\f1d1"}.wk-icon-git-square:before{content:"\f1d2"}.wk-icon-git:before{content:"\f1d3"}.wk-icon-hacker-news:before{content:"\f1d4"}.wk-icon-tencent-weibo:before{content:"\f1d5"}.wk-icon-qq:before{content:"\f1d6"}.wk-icon-wechat:before,.wk-icon-weixin:before{content:"\f1d7"}.wk-icon-paper-plane:before,.wk-icon-send:before{content:"\f1d8"}.wk-icon-paper-plane-o:before,.wk-icon-send-o:before{content:"\f1d9"}.wk-icon-history:before{content:"\f1da"}.wk-icon-circle-thin:before,.wk-icon-genderless:before{content:"\f1db"}.wk-icon-header:before{content:"\f1dc"}.wk-icon-paragraph:before{content:"\f1dd"}.wk-icon-sliders:before{content:"\f1de"}.wk-icon-share-alt:before{content:"\f1e0"}.wk-icon-share-alt-square:before{content:"\f1e1"}.wk-icon-bomb:before{content:"\f1e2"}.wk-icon-futbol-o:before,.wk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-icon-tty:before{content:"\f1e4"}.wk-icon-binoculars:before{content:"\f1e5"}.wk-icon-plug:before{content:"\f1e6"}.wk-icon-slideshare:before{content:"\f1e7"}.wk-icon-twitch:before{content:"\f1e8"}.wk-icon-yelp:before{content:"\f1e9"}.wk-icon-newspaper-o:before{content:"\f1ea"}.wk-icon-wifi:before{content:"\f1eb"}.wk-icon-calculator:before{content:"\f1ec"}.wk-icon-paypal:before{content:"\f1ed"}.wk-icon-google-wallet:before{content:"\f1ee"}.wk-icon-cc-visa:before{content:"\f1f0"}.wk-icon-cc-mastercard:before{content:"\f1f1"}.wk-icon-cc-discover:before{content:"\f1f2"}.wk-icon-cc-amex:before{content:"\f1f3"}.wk-icon-cc-paypal:before{content:"\f1f4"}.wk-icon-cc-stripe:before{content:"\f1f5"}.wk-icon-bell-slash:before{content:"\f1f6"}.wk-icon-bell-slash-o:before{content:"\f1f7"}.wk-icon-trash:before{content:"\f1f8"}.wk-icon-copyright:before{content:"\f1f9"}.wk-icon-at:before{content:"\f1fa"}.wk-icon-eyedropper:before{content:"\f1fb"}.wk-icon-paint-brush:before{content:"\f1fc"}.wk-icon-birthday-cake:before{content:"\f1fd"}.wk-icon-area-chart:before{content:"\f1fe"}.wk-icon-pie-chart:before{content:"\f200"}.wk-icon-line-chart:before{content:"\f201"}.wk-icon-lastfm:before{content:"\f202"}.wk-icon-lastfm-square:before{content:"\f203"}.wk-icon-toggle-off:before{content:"\f204"}.wk-icon-toggle-on:before{content:"\f205"}.wk-icon-bicycle:before{content:"\f206"}.wk-icon-bus:before{content:"\f207"}.wk-icon-ioxhost:before{content:"\f208"}.wk-icon-angellist:before{content:"\f209"}.wk-icon-cc:before{content:"\f20a"}.wk-icon-ils:before,.wk-icon-shekel:before,.wk-icon-sheqel:before{content:"\f20b"}.wk-icon-meanpath:before{content:"\f20c"}.wk-icon-buysellads:before{content:"\f20d"}.wk-icon-connectdevelop:before{content:"\f20e"}.wk-icon-dashcube:before{content:"\f210"}.wk-icon-forumbee:before{content:"\f211"}.wk-icon-leanpub:before{content:"\f212"}.wk-icon-sellsy:before{content:"\f213"}.wk-icon-shirtsinbulk:before{content:"\f214"}.wk-icon-simplybuilt:before{content:"\f215"}.wk-icon-skyatlas:before{content:"\f216"}.wk-icon-cart-plus:before{content:"\f217"}.wk-icon-cart-arrow-down:before{content:"\f218"}.wk-icon-diamond:before{content:"\f219"}.wk-icon-ship:before{content:"\f21a"}.wk-icon-user-secret:before{content:"\f21b"}.wk-icon-motorcycle:before{content:"\f21c"}.wk-icon-street-view:before{content:"\f21d"}.wk-icon-heartbeat:before{content:"\f21e"}.wk-icon-venus:before{content:"\f221"}.wk-icon-mars:before{content:"\f222"}.wk-icon-mercury:before{content:"\f223"}.wk-icon-transgender:before{content:"\f224"}.wk-icon-transgender-alt:before{content:"\f225"}.wk-icon-venus-double:before{content:"\f226"}.wk-icon-mars-double:before{content:"\f227"}.wk-icon-venus-mars:before{content:"\f228"}.wk-icon-mars-stroke:before{content:"\f229"}.wk-icon-mars-stroke-v:before{content:"\f22a"}.wk-icon-mars-stroke-h:before{content:"\f22b"}.wk-icon-neuter:before{content:"\f22c"}.wk-icon-facebook-official:before{content:"\f230"}.wk-icon-pinterest-p:before{content:"\f231"}.wk-icon-whatsapp:before{content:"\f232"}.wk-icon-server:before{content:"\f233"}.wk-icon-user-plus:before{content:"\f234"}.wk-icon-user-times:before{content:"\f235"}.wk-icon-bed:before,.wk-icon-hotel:before{content:"\f236"}.wk-icon-viacoin:before{content:"\f237"}.wk-icon-train:before{content:"\f238"}.wk-icon-subway:before{content:"\f239"}.wk-icon-medium-logo:before{content:"\f23a"}.wk-icon-500px:before{content:"\f26e"}.wk-icon-amazon:before{content:"\f270"}.wk-icon-balance-scale:before{content:"\f24e"}.wk-icon-battery-0:before,.wk-icon-battery-empty:before{content:"\f244"}.wk-icon-battery-1:before,.wk-icon-battery-quarter:before{content:"\f243"}.wk-icon-battery-2:before,.wk-icon-battery-half:before{content:"\f242"}.wk-icon-battery-3:before,.wk-icon-battery-three-quarters:before{content:"\f241"}.wk-icon-battery-4:before,.wk-icon-battery-full:before{content:"\f240"}.wk-icon-black-tie:before{content:"\f27e"}.wk-icon-calendar-check-o:before{content:"\f274"}.wk-icon-calendar-minus-o:before{content:"\f272"}.wk-icon-calendar-plus-o:before{content:"\f271"}.wk-icon-calendar-times-o:before{content:"\f273"}.wk-icon-cc-diners-club:before{content:"\f24c"}.wk-icon-cc-jcb:before{content:"\f24b"}.wk-icon-chrome:before{content:"\f268"}.wk-icon-clone:before{content:"\f24d"}.wk-icon-commenting:before{content:"\f27a"}.wk-icon-commenting-o:before{content:"\f27b"}.wk-icon-contao:before{content:"\f26d"}.wk-icon-creative-commons:before{content:"\f25e"}.wk-icon-expeditedssl:before{content:"\f23e"}.wk-icon-firefox:before{content:"\f269"}.wk-icon-fonticons:before{content:"\f280"}.wk-icon-get-pocket:before{content:"\f265"}.wk-icon-gg:before{content:"\f260"}.wk-icon-gg-circle:before{content:"\f261"}.wk-icon-hand-lizard-o:before{content:"\f258"}.wk-icon-hand-paper-o:before,.wk-icon-hand-stop-o:before{content:"\f256"}.wk-icon-hand-peace-o:before{content:"\f25b"}.wk-icon-hand-pointer-o:before{content:"\f25a"}.wk-icon-hand-grab-o:before,.wk-icon-hand-rock-o:before{content:"\f255"}.wk-icon-hand-scissors-o:before{content:"\f257"}.wk-icon-hand-spock-o:before{content:"\f259"}.wk-icon-hourglass:before{content:"\f254"}.wk-icon-hourglass-o:before{content:"\f250"}.wk-icon-hourglass-1:before,.wk-icon-hourglass-start:before{content:"\f251"}.wk-icon-hourglass-2:before,.wk-icon-hourglass-half:before{content:"\f252"}.wk-icon-hourglass-3:before,.wk-icon-hourglass-end:before{content:"\f253"}.wk-icon-houzz:before{content:"\f27c"}.wk-icon-i-cursor:before{content:"\f246"}.wk-icon-industry:before{content:"\f275"}.wk-icon-internet-explorer:before{content:"\f26b"}.wk-icon-map:before{content:"\f279"}.wk-icon-map-o:before{content:"\f278"}.wk-icon-map-pin:before{content:"\f276"}.wk-icon-map-signs:before{content:"\f277"}.wk-icon-mouse-pointer:before{content:"\f245"}.wk-icon-object-group:before{content:"\f247"}.wk-icon-object-ungroup:before{content:"\f248"}.wk-icon-odnoklassniki:before{content:"\f263"}.wk-icon-odnoklassniki-square:before{content:"\f264"}.wk-icon-opencart:before{content:"\f23d"}.wk-icon-opera:before{content:"\f26a"}.wk-icon-optin-monster:before{content:"\f23c"}.wk-icon-registered:before{content:"\f25d"}.wk-icon-safari:before{content:"\f267"}.wk-icon-sticky-note:before{content:"\f249"}.wk-icon-sticky-note-o:before{content:"\f24a"}.wk-icon-television:before,.wk-icon-tv:before{content:"\f26c"}.wk-icon-trademark:before{content:"\f25c"}.wk-icon-tripadvisor:before{content:"\f262"}.wk-icon-vimeo:before{content:"\f27d"}.wk-icon-wikipedia-w:before{content:"\f266"}.wk-icon-y-combinator:before,.wk-icon-yc:before{content:"\f23b"}.wk-icon-y-combinator-square:before,.wk-icon-yc-square:before{content:"\f1d4"}.wk-icon-bluetooth:before{content:"\f293"}.wk-icon-bluetooth-b:before{content:"\f294"}.wk-icon-codiepie:before{content:"\f284"}.wk-icon-credit-card-alt:before{content:"\f283"}.wk-icon-edge:before{content:"\f282"}.wk-icon-fort-awesome:before{content:"\f286"}.wk-icon-hashtag:before{content:"\f292"}.wk-icon-mixcloud:before{content:"\f289"}.wk-icon-modx:before{content:"\f285"}.wk-icon-pause-circle:before{content:"\f28b"}.wk-icon-pause-circle-o:before{content:"\f28c"}.wk-icon-percent:before{content:"\f295"}.wk-icon-product-hunt:before{content:"\f288"}.wk-icon-reddit-alien:before{content:"\f281"}.wk-icon-scribd:before{content:"\f28a"}.wk-icon-shopping-bag:before{content:"\f290"}.wk-icon-shopping-basket:before{content:"\f291"}.wk-icon-stop-circle:before{content:"\f28d"}.wk-icon-stop-circle-o:before{content:"\f28e"}.wk-icon-usb:before{content:"\f287"}.wk-icon-american-sign-language-interpreting:before,.wk-icon-asl-interpreting:before{content:"\f2a3"}.wk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-icon-audio-description:before{content:"\f29e"}.wk-icon-blind:before{content:"\f29d"}.wk-icon-braille:before{content:"\f2a1"}.wk-icon-deaf:before,.wk-icon-deafness:before{content:"\f2a4"}.wk-icon-envira:before{content:"\f299"}.wk-icon-fa:before,.wk-icon-font-awesome:before{content:"\f2b4"}.wk-icon-first-order:before{content:"\f2b0"}.wk-icon-gitlab:before{content:"\f296"}.wk-icon-glide:before{content:"\f2a5"}.wk-icon-glide-g:before{content:"\f2a6"}.wk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-icon-low-vision:before{content:"\f2a8"}.wk-icon-question-circle-o:before{content:"\f29c"}.wk-icon-sign-language:before,.wk-icon-signing:before{content:"\f2a7"}.wk-icon-snapchat:before{content:"\f2ab"}.wk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-icon-snapchat-square:before{content:"\f2ad"}.wk-icon-themeisle:before{content:"\f2b2"}.wk-icon-universal-access:before{content:"\f29a"}.wk-icon-viadeo:before{content:"\f2a9"}.wk-icon-viadeo-square:before{content:"\f2aa"}.wk-icon-volume-control-phone:before{content:"\f2a0"}.wk-icon-wheelchair-alt:before{content:"\f29b"}.wk-icon-wpbeginner:before{content:"\f297"}.wk-icon-wpforms:before{content:"\f298"}.wk-icon-yoast:before{content:"\f2b1"}.wk-icon-adress-book:before{content:"\f2b9"}.wk-icon-adress-book-o:before{content:"\f2ba"}.wk-icon-adress-card:before{content:"\f2bb"}.wk-icon-adress-card-o:before{content:"\f2bc"}.wk-icon-bandcamp:before{content:"\f2d5"}.wk-icon-bath:before,.wk-icon-bathub:before{content:"\f2cd"}.wk-icon-drivers-license:before{content:"\f2c2"}.wk-icon-drivers-license-o:before{content:"\f2c3"}.wk-icon-eercast:before{content:"\f2da"}.wk-icon-envelope-open:before{content:"\f2b6"}.wk-icon-envelope-open-o:before{content:"\f2b7"}.wk-icon-etsy:before{content:"\f2d7"}.wk-icon-free-code-camp:before{content:"\f2c5"}.wk-icon-grav:before{content:"\f2d6"}.wk-icon-handshake-o:before{content:"\f2b5"}.wk-icon-id-badge:before{content:"\f2c1"}.wk-icon-id-card:before{content:"\f2c2"}.wk-icon-id-card-o:before{content:"\f2c3"}.wk-icon-imdb:before{content:"\f2d8"}.wk-icon-linode:before{content:"\f2b8"}.wk-icon-meetup:before{content:"\f2e0"}.wk-icon-microchip:before{content:"\f2db"}.wk-icon-podcast:before{content:"\f2ce"}.wk-icon-quora:before{content:"\f2c4"}.wk-icon-ravelry:before{content:"\f2d9"}.wk-icon-s15:before{content:"\f2cd"}.wk-icon-shower:before{content:"\f2cc"}.wk-icon-snowflake-o:before{content:"\f2dc"}.wk-icon-superpowers:before{content:"\f2dd"}.wk-icon-telegram:before{content:"\f2c6"}.wk-icon-thermometer:before{content:"\f2c7"}.wk-icon-thermometer-0:before{content:"\f2cb"}.wk-icon-thermometer-1:before{content:"\f2ca"}.wk-icon-thermometer-2:before{content:"\f2c9"}.wk-icon-thermometer-3:before{content:"\f2c8"}.wk-icon-thermometer-4:before{content:"\f2c7"}.wk-icon-thermometer-empty:before{content:"\f2cb"}.wk-icon-thermometer-full:before{content:"\f2c7"}.wk-icon-thermometer-half:before{content:"\f2c9"}.wk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-icon-times-rectangle:before{content:"\f2d3"}.wk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-icon-user-circle:before{content:"\f2bd"}.wk-icon-user-circle-o:before{content:"\f2be"}.wk-icon-user-o:before{content:"\f2c0"}.wk-icon-vcard:before{content:"\f2bb"}.wk-icon-vcard-o:before{content:"\f2bc"}.wk-icon-widow-close:before{content:"\f2d3"}.wk-icon-widow-close-o:before{content:"\f2d4"}.wk-icon-window-maximize:before{content:"\f2d0"}.wk-icon-window-minimize:before{content:"\f2d1"}.wk-icon-window-restore:before{content:"\f2d2"}.wk-icon-wpexplorer:before{content:"\f2de"}.wk-close::-moz-focus-inner{border:0;padding:0}.wk-close{margin:0;border:none;font:inherit;color:inherit;padding:0;background:0 0;display:inline-block;box-sizing:content-box;width:20px;line-height:20px;vertical-align:middle;opacity:.3}.wk-container,.wk-modal-dialog,.wk-overlay-area-content,.wk-responsive-height,.wk-responsive-width,.wk-scrollable-box,.wk-thumbnail,[class*=wk-height]{box-sizing:border-box}.wk-close:after{display:block;content:"\f00d";font-family:FontAwesome}.wk-close:focus,.wk-close:hover{opacity:.5;outline:0;color:inherit;text-decoration:none;cursor:pointer}.wk-close-alt{padding:2px;border-radius:50%;background:#fff;opacity:1;box-shadow:0 0 0 1px rgba(0,0,0,.1)}.wk-close-alt:focus,.wk-close-alt:hover{opacity:1}.wk-close-alt:after{opacity:.5}.wk-close-alt:focus:after,.wk-close-alt:hover:after{opacity:.8}.wk-thumbnail{display:inline-block;max-width:100%;margin:0;padding:4px;border:1px solid #e5e5e5;background:#fff;border-radius:2px}a.wk-thumbnail:focus,a.wk-thumbnail:hover{border-color:#ccc;background-color:#fff;text-decoration:none;outline:0}.wk-thumbnail-caption{padding-top:4px;text-align:center;color:#444}.wk-thumbnail-mini{width:150px}.wk-thumbnail-small{width:200px}.wk-thumbnail-medium{width:300px}.wk-thumbnail-large{width:400px}.wk-thumbnail-expand,.wk-thumbnail-expand>img{width:100%}.wk-overlay{max-width:100%;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-overlay-area:empty:before,.wk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-overlay.wk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-overlay-panel a[class*=wk-icon-]:not(.wk-icon-button),.wk-overlay-panel h1,.wk-overlay-panel h2,.wk-overlay-panel h3,.wk-overlay-panel h4,.wk-overlay-panel h5,.wk-overlay-panel h6{color:inherit}.wk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore),.wk-overlay-hover:not(:hover):not(.wk-hover) .wk-overlay-panel:not(.wk-ignore){opacity:0}.wk-overlay-background{background:rgba(255,255,255,.95);color:#444}.wk-overlay-image{padding:0}.wk-overlay-top{bottom:auto}.wk-overlay-bottom{top:auto}.wk-overlay-left{right:auto}.wk-overlay-right{left:auto}.wk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#999}.wk-overlay-blur,.wk-overlay-fade,.wk-overlay-grayscale,.wk-overlay-scale,.wk-overlay-spin,[class*=wk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-overlay-active .wk-overlay-fade,.wk-overlay-active .wk-overlay-scale,.wk-overlay-active .wk-overlay-spin,.wk-overlay-active [class*=wk-overlay-slide]{transition-duration:.8s}.wk-overlay-fade{opacity:.7}.wk-overlay-active .wk-active>.wk-overlay-fade,.wk-overlay-hover.wk-hover .wk-overlay-fade,.wk-overlay-hover:hover .wk-overlay-fade{opacity:1}.wk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-overlay-active .wk-active>.wk-overlay-scale,.wk-overlay-hover.wk-hover .wk-overlay-scale,.wk-overlay-hover:hover .wk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-overlay-active .wk-active>.wk-overlay-spin,.wk-overlay-hover.wk-hover .wk-overlay-spin,.wk-overlay-hover:hover .wk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-overlay-active .wk-active>.wk-overlay-grayscale,.wk-overlay-hover.wk-hover .wk-overlay-grayscale,.wk-overlay-hover:hover .wk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}[class*=wk-overlay-slide]{opacity:0}.wk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-overlay-active .wk-active>[class*=wk-overlay-slide],.wk-overlay-hover.wk-hover [class*=wk-overlay-slide],.wk-overlay-hover:hover [class*=wk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-overlay-area,.wk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-overlay-toggle.wk-hover .wk-overlay-area,.wk-overlay-toggle:hover .wk-overlay-area,.wk-overlay.wk-hover .wk-overlay-area,.wk-overlay:hover .wk-overlay-area{opacity:1}.wk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-overlay-area:not(:empty){font-size:0}.wk-overlay-area:not(:empty):before{content:'';height:100%}.wk-overlay-area-content{width:100%;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-overlay-area-content a:not([class]),.wk-overlay-area-content a:not([class]):hover{color:inherit}.wk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-dropdown,.wk-dropdown-navbar{background:#fff;color:#444;border:1px solid #e5e5e5}.wk-overlay-toggle.wk-hover .wk-overlay-caption,.wk-overlay-toggle:hover .wk-overlay-caption,.wk-overlay.wk-hover .wk-overlay-caption,.wk-overlay:hover .wk-overlay-caption{opacity:1}[class*=wk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{[data-wk-scrollspy*=wk-animation-]:not([data-wk-scrollspy*=target]){opacity:0}}.wk-animation-fade{-webkit-animation-name:wk-fade;animation-name:wk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-animation-scale-up{-webkit-animation-name:wk-fade-scale-02;animation-name:wk-fade-scale-02}.wk-animation-scale-down{-webkit-animation-name:wk-fade-scale-18;animation-name:wk-fade-scale-18}.wk-animation-slide-top{-webkit-animation-name:wk-fade-top;animation-name:wk-fade-top}.wk-animation-slide-bottom{-webkit-animation-name:wk-fade-bottom;animation-name:wk-fade-bottom}.wk-animation-slide-left{-webkit-animation-name:wk-fade-left;animation-name:wk-fade-left}.wk-animation-slide-right{-webkit-animation-name:wk-fade-right;animation-name:wk-fade-right}.wk-animation-scale{-webkit-animation-name:wk-scale-12;animation-name:wk-scale-12}.wk-animation-shake{-webkit-animation-name:wk-shake;animation-name:wk-shake}.wk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-animation-hover:not(:hover),.wk-animation-hover:not(:hover) [class*=wk-animation-],.wk-touch .wk-animation-hover:not(.wk-hover),.wk-touch .wk-animation-hover:not(.wk-hover) [class*=wk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes wk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes wk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes wk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes wk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes wk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes wk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes wk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-dropdown,.wk-dropdown-blank{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px}.wk-dropdown{padding:15px;font-size:1rem;vertical-align:top;border-radius:2px}.wk-dropdown:focus{outline:0}.wk-open>.wk-dropdown,.wk-open>.wk-dropdown-blank{display:block;-webkit-animation:wk-fade .2s ease-in-out;animation:wk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-dropdown-top{margin-top:-5px}.wk-dropdown-bottom{margin-top:5px}.wk-dropdown-left{margin-left:-5px}.wk-dropdown-right{margin-left:5px}.wk-dropdown .wk-nav{margin:0 -15px}.wk-dropdown-grid>[class*=wk-width-]>.wk-panel+.wk-panel,.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2),.wk-grid .wk-dropdown-grid+.wk-dropdown-grid{margin-top:15px}@media (min-width:768px){.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid{margin-left:-15px;margin-right:-15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]{padding-left:15px;padding-right:15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-dropdown-width-2:not(.wk-dropdown-stack){width:400px}.wk-dropdown-width-3:not(.wk-dropdown-stack){width:600px}.wk-dropdown-width-4:not(.wk-dropdown-stack){width:800px}.wk-dropdown-width-5:not(.wk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){margin-top:15px}}.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-small{min-width:150px;width:auto;padding:5px}.wk-dropdown-small .wk-nav{margin:0 -5px}.wk-dropdown-navbar{margin-top:6px;left:-1px;border-radius:2px}.wk-open>.wk-dropdown-navbar{-webkit-animation:wk-slide-top-fixed .2s ease-in-out;animation:wk-slide-top-fixed .2s ease-in-out}.wk-dropdown-scrollable{overflow-y:auto;max-height:200px}.wk-dropdown-navbar.wk-dropdown-flip{left:auto}.wk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.8);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.wk-modal-page,.wk-modal-page body,.wk-nbfc,.wk-text-truncate{overflow:hidden}.wk-modal.wk-open{opacity:1}.wk-modal-dialog{position:relative;margin:50px auto;padding:20px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-modal-dialog{width:auto;margin:10px auto}}.wk-open .wk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-modal-dialog>:not([class*=wk-modal-]):last-child{margin-bottom:0}.wk-modal-dialog>.wk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-modal-dialog>.wk-close:first-child+:not([class*=wk-modal-]){margin-top:0}.wk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-modal-dialog-lightbox>.wk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-modal-dialog-lightbox>.wk-close:first-child{top:-7px;right:-7px}}.wk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-modal-dialog-blank>.wk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-modal-dialog-large{width:930px}}.wk-modal-header{margin-bottom:15px}.wk-modal-footer{margin-top:15px}.wk-modal-footer>:last-child,.wk-modal-header>:last-child{margin-bottom:0}.wk-modal-caption{position:absolute;left:0;right:0;bottom:-20px;margin-bottom:-10px;color:#fff;text-align:center;overflow:hidden;text-overflow:ellipsis}.wk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.wk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-clearfix:after,.wk-clearfix:before,.wk-container:after,.wk-container:before{content:""}.wk-switcher{margin:0;padding:0}.wk-switcher>:not(.wk-active){display:none}.wk-text-small{font-size:11px;line-height:16px}.wk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-text-bold{font-weight:700}.wk-text-muted{color:#999!important}.wk-text-primary{color:#37a5e4!important}.wk-text-success{color:#80c96d!important}.wk-text-warning{color:#ff9a2e!important}.wk-text-danger{color:#f0615b!important}.wk-text-contrast{color:#fff!important}.wk-text-left{text-align:left!important}.wk-text-right{text-align:right!important}.wk-text-center{text-align:center!important}.wk-text-justify{text-align:justify!important}.wk-text-top{vertical-align:top!important}.wk-text-middle{vertical-align:middle!important}.wk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-text-center-medium{text-align:center!important}.wk-text-left-medium{text-align:left!important}}.wk-text-truncate{text-overflow:ellipsis}.wk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-text-capitalize{text-transform:capitalize!important}.wk-text-lowercase{text-transform:lowercase!important}.wk-text-uppercase{text-transform:uppercase!important}.wk-container{max-width:980px;padding:0 25px}@media (min-width:1220px){.wk-modal-dialog-large{width:1130px}.wk-container{max-width:1200px;padding:0 35px}}.wk-container:after,.wk-container:before{display:table}.wk-container-center{margin-left:auto;margin-right:auto}.wk-clearfix:before{display:table-cell}.wk-clearfix:after{display:table}.wk-nbfc-alt{display:table-cell;width:10000px}.wk-float-left{float:left}.wk-float-right{float:right}[class*=wk-float-]{max-width:100%}[class*=wk-align-]{display:block;margin-bottom:20px}.wk-align-left{margin-right:20px;float:left}.wk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-align-medium-left{margin-right:20px;float:left}.wk-align-medium-right{margin-left:20px;float:right}}.wk-align-center{margin-left:auto;margin-right:auto}.wk-vertical-align{font-size:0}.wk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-vertical-align-bottom,.wk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-vertical-align-middle{vertical-align:middle}.wk-vertical-align-bottom{vertical-align:bottom}.wk-height-1-1{height:100%}.wk-height-viewport{height:100vh;min-height:600px}.wk-responsive-width{max-width:100%!important;height:auto}.wk-responsive-height{max-height:100%;width:auto}.wk-margin{margin-bottom:20px}*+.wk-margin{margin-top:20px}.wk-margin-top{margin-top:20px!important}.wk-margin-bottom{margin-bottom:20px!important}.wk-margin-left{margin-left:20px!important}.wk-margin-right{margin-right:20px!important}.wk-margin-large{margin-bottom:25px}*+.wk-margin-large{margin-top:25px}.wk-margin-large-top{margin-top:25px!important}.wk-margin-large-bottom{margin-bottom:25px!important}.wk-margin-large-left{margin-left:25px!important}.wk-margin-large-right{margin-right:25px!important}.wk-margin-small{margin-bottom:5px}*+.wk-margin-small{margin-top:5px}.wk-margin-small-top{margin-top:5px!important}.wk-margin-small-bottom{margin-bottom:5px!important}.wk-margin-small-left{margin-left:5px!important}.wk-margin-small-right{margin-right:5px!important}.wk-margin-remove{margin:0!important}.wk-margin-top-remove{margin-top:0!important}.wk-margin-bottom-remove{margin-bottom:0!important}.wk-overflow-container>:last-child,.wk-scrollable-box>:last-child{margin-bottom:0}.wk-padding-remove{padding:0!important}.wk-padding-top-remove{padding-top:0!important}.wk-padding-bottom-remove{padding-bottom:0!important}.wk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-border-circle{border-radius:50%}.wk-border-rounded{border-radius:5px}.wk-heading-large{font-size:36px;line-height:42px}.wk-link-muted,.wk-link-muted a,.wk-link-muted a:hover,.wk-link-muted:hover{color:#444}.wk-link-reset,.wk-link-reset a,.wk-link-reset a:focus,.wk-link-reset a:hover,.wk-link-reset:focus,.wk-link-reset:hover{color:inherit;text-decoration:none}.wk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-scrollable-box{height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-overflow-hidden{overflow:hidden}.wk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-dotnav>*>*,.wk-slider-container,.wk-slideshow{overflow:hidden}.wk-position-absolute,[class*=wk-position-top],[class*=wk-position-bottom]{position:absolute!important}.wk-position-top{top:0;left:0;right:0}.wk-position-bottom{bottom:0;left:0;right:0}.wk-position-top-left{top:0;left:0}.wk-position-top-right{top:0;right:0}.wk-position-bottom-left{bottom:0;left:0}.wk-position-bottom-right{bottom:0;right:0}.wk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-position-relative{position:relative!important}.wk-position-z-index{z-index:1}.wk-display-block{display:block!important}.wk-display-inline{display:inline!important}.wk-display-inline-block{display:inline-block!important;max-width:100%}@media (min-width:960px){.wk-hidden-large,.wk-visible-medium,.wk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-hidden-medium,.wk-visible-large,.wk-visible-small{display:none!important}}@media (max-width:767px){.wk-text-center-small{text-align:center!important}.wk-text-left-small{text-align:left!important}.wk-hidden-small,.wk-visible-large,.wk-visible-medium{display:none!important}}.wk-hidden{display:none!important;visibility:hidden!important}.wk-invisible{visibility:hidden!important}.wk-visible-hover:hover .wk-hidden,.wk-visible-hover:hover .wk-invisible{display:block!important;visibility:visible!important}.wk-visible-hover-inline:hover .wk-hidden,.wk-visible-hover-inline:hover .wk-invisible{display:inline-block!important;visibility:visible!important}.wk-notouch .wk-hidden-notouch,.wk-touch .wk-hidden-touch{display:none!important}.wk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-flex-inline>*,.wk-flex>*{-ms-flex-negative:1}.wk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-heading-large{font-size:52px;line-height:64px}.wk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1220px){.wk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-dotnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-top:-15px;padding:0}.wk-dotnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:15px;margin-top:15px;float:left}.wk-dotnav:after,.wk-dotnav:before{content:"";display:block;overflow:hidden}.wk-dotnav>*>*{display:block;box-sizing:content-box;width:20px;height:20px;border-radius:50%;background:rgba(50,50,50,.1);text-indent:100%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wk-dotnav>*>:focus,.wk-dotnav>*>:hover{background:rgba(50,50,50,.4);outline:0}.wk-dotnav>*>:active{background:rgba(50,50,50,.6)}.wk-dotnav>.wk-active>*{background:rgba(50,50,50,.4);-webkit-transform:scale(1.3);transform:scale(1.3)}.wk-dotnav-contrast>*>*{background:rgba(255,255,255,.4)}.wk-dotnav-contrast>*>:focus,.wk-dotnav-contrast>*>:hover{background:rgba(255,255,255,.7)}.wk-dotnav-contrast>*>:active,.wk-dotnav-contrast>.wk-active>*{background:rgba(255,255,255,.9)}.wk-dotnav-vertical{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-dotnav-vertical>*{float:none}.wk-slidenav{display:inline-block;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.wk-slider-fullscreen,.wk-slider-fullscreen>li,.wk-slideshow-fullscreen,.wk-slideshow-fullscreen>li{height:100vh}.wk-slidenav:focus,.wk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.wk-slidenav:active{color:rgba(50,50,50,.9)}.wk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.wk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.wk-slidenav-position{position:relative}.wk-slidenav-position .wk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.wk-slider,.wk-slideshow{z-index:0;touch-action:pan-y}.wk-slidenav-position:hover .wk-slidenav{display:block}.wk-slidenav-position .wk-slidenav-previous{left:20px}.wk-slidenav-position .wk-slidenav-next{right:20px}.wk-slidenav-contrast{color:rgba(255,255,255,.5)}.wk-slidenav-contrast:focus,.wk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.wk-slidenav-contrast:active{color:rgba(255,255,255,.9)}.wk-accordion-title{margin-top:0;margin-bottom:20px;padding:5px 20px;background:#eee;font-size:18px;line-height:24px;cursor:pointer}.wk-accordion-content{padding:0 20px 20px}.wk-slider:not(.wk-grid),.wk-slideshow{margin:0;padding:0;list-style:none}.wk-accordion-content:after,.wk-accordion-content:before{content:"";display:table}.wk-accordion-content>:last-child{margin-bottom:0}[data-wk-slider]{direction:ltr}html[dir=rtl] .wk-slider>*{direction:rtl}.wk-slider{position:relative}.wk-slider>*{position:absolute;top:0;left:0}.wk-slider:not(.wk-drag){-webkit-transition:-webkit-transform .2s linear;transition:transform .2s linear}.wk-slider.wk-drag{cursor:col-resize;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.wk-slider a,.wk-slider img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}.wk-slider img{pointer-events:none}.wk-slideshow{position:relative;width:100%}.wk-slideshow>li{position:absolute;top:0;left:0;width:100%;opacity:0}.wk-slideshow>.wk-active{z-index:10;opacity:1}.wk-slideshow>li>img{visibility:hidden}[data-wk-slideshow-slide]{cursor:pointer}.wk-slideshow-fade-in{-webkit-animation:wk-fade .5s linear;animation:wk-fade .5s linear}.wk-slideshow-fade-out{-webkit-animation:wk-fade .5s linear reverse;animation:wk-fade .5s linear reverse}.wk-slideshow-scroll-forward-in{-webkit-animation:wk-slide-right .5s ease-in-out;animation:wk-slide-right .5s ease-in-out}.wk-slideshow-scroll-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-scroll-backward-in{-webkit-animation:wk-slide-left .5s ease-in-out;animation:wk-slide-left .5s ease-in-out}.wk-slideshow-scroll-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-scale-out{-webkit-animation:wk-fade-scale-15 .5s ease-in-out reverse;animation:wk-fade-scale-15 .5s ease-in-out reverse}.wk-slideshow-swipe-forward-in{-webkit-animation:wk-slide-left-33 .5s ease-in-out;animation:wk-slide-left-33 .5s ease-in-out}.wk-slideshow-swipe-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in{-webkit-animation:wk-slide-right-33 .5s ease-in-out;animation:wk-slide-right-33 .5s ease-in-out}.wk-slideshow-swipe-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in:before,.wk-slideshow-swipe-forward-in:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;background:rgba(0,0,0,.6);-webkit-animation:wk-fade .5s ease-in-out reverse;animation:wk-fade .5s ease-in-out reverse}

widgetkit/10-5612e40ac9b7466e20e313b73ae14f8d.jpg000064400000074474152177723720014004 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((��2�"������ӽΞ�|u\Q�w�8�Oc
d��'��	���E�L�1������Ig��F�;!�"cɈBw�Ɏ�u��[E��J��R��K��ԝ�<w���B���xy>���4 �蒆/�C�M�q��J�p�$�r�q�h�b�ӌ
8̑��OI���0S���{�;� w���N�C��1B�zǵ�K�Qֻ���3gJ'��,/�I��g'�<����La&
����K<��H�IG#��Es�S�����!bZ�[.�kEH6��IJB��2}��|�$z<lT�c���X7g�T����GV�L����$�����B�i�"��~�Ie�}QO����]qc�l�Ï W[`C�ۡ-m,��j�[�D��	�����5�%E$A��.>�By��o�ZB�g+VJ���vF����Q!P!h�<�P�Z79G���Ҫf�V̐Y�0�OiǶ3δ�(^2�^͑��L��M�0v$��賁�B�Jj�=�ƮO�"�c��7|��IG}/�Kc��}�K�$��3�
_5Qc���d&^:�$ғH�~s��S}#y�h
=!��rh�]�փc�:|lѼ�TD������7H
�Yp��I�GC��9n�[3x���G"�r�1�?g��/���Zy���
<E��:,�cfj֡��Eg��dB�
8o�i�K9
L }:�B,��7����u,�3H�����U\�TWM51�å�,5M
��F�o��R���񜞠YB�iVmd�/�0�A�!	��Ʃ$�ɂKk��x�.@����a��H'k����Q�v@˞tJ��G자ۖD<���I��\CFl�YJ��\.X���YƤ��_u�`�p�I!Z<?�������ao��()AT׬�N�hT��Q�5<�g���ܐ&Z�Q�P�h��N���f/�L?�6e+K�j��c���˜1^�׊����6@��A�iF��t��J�`"<X-�K0&4U˦{���H���
#i�5~���%��f�F��"�P+����1�c����s3[_��y&p	<ѳ��?�ҟc�\�c�[�YD��6�P(7:�Ӝ�.K
WOuҦl!�T��ͭ��K2���C��5���!��C��J�n�[B�b0�8��/5�$�YoX%[�׳'@yx���m�b�*�|ͪW�eBT�$�C%���.Na�x�CF�*,�1����F|δ2�V�V�v{���ҋ`2���2�P�ިs(c͜ѳ�0>�S9�`�k�N�p�q�_2�j��Qk��
�	���E"0j[N�D�\`�laSS�S�X"�llqF�e��L%�9d�Z���e���N82.Xs1�̏l6�7=��M�0a��L)3#���>n�i���B���;��=��b�
�����.��
�&!��`�3@@Ai�Q{5��S�Vh��L�F#���wGn��X��U`ہ�u���m,����]΢@���F�L���)1­��|-`�$22�g�4�ɑ K�U�ja�Lp�F�(���f<7�Ҕ#�ݞIT�ǤS�=��p>u<
pr����9�0KDICF�"�L!��������tK*h���H=��*�
iFu2��͕x��.��+���f�5���@�K�*�E�"[4+et��
�i���X�zLG��04J�A�9�Z^i���GS�m�	^�y*#�WH�LH��d�i2�`߈d�U.l����<�6|p3��4��ً�b�rmT��_����q)P�O4'S���";�	,>
�B [���{���q^��q�[?�+�����x����M��2;��sA��e�x��x��&���9�����x��
O���0!"1#2 $34A%5B0C@����͘릳���=��"�v��rxb)�T�2؞�jq���c���֕LܓHP�{�c7�öʃ@_��^��یZeZ�kZ����6���0ϟ�%�F���gˎE	&���f�>c�Q��Y
��d�~��(�5��KoG)
�FHbF6ɾ%�ya�F��m�-M`���&��$K���Xi���O>�x����;W��5
+b'ǔ�u��lvbG����
�b	ڢ��ɰ�+��-�[-j9z�ґ�����h�?)8A9����9�k	rH���z�4�g�ޞ��>�XE!��L�R]�uʀ�o��4
�O�ڨ��a��N�g�2�Y�
�$H���<�~c���0�R�'k���E�u�I;����ͦS�\�`M�lVA/V/+Q	c�G��0ÿW��td+��R�
�V;m�����-�l��^]�}�}�ơZ}J�	-�;f�q������~���[��ԚEU�q�Hd��..W��3ծP�y�Dc�jz��H3�3���`��,�l�Xk�+Z���Z����f8�MILy0䕗���0)U#��.�x�� ��}��\�ki�C��R�r��W��2���a�?�,O�:��%��މVZ׵HE�V�V0�ʩ�6�y��=V%E���S�qkD�ԋ�:c�]�׆V�<���$���O�D'�r[1łi�2D���rM&���mk�P�*�+�`�����M����?��ȩūjozm�}]
�(���8�������Lj�2*V�_�o���R~��s�Kf����ֱ,�Q��o�"�v#{�*,��*Kjr-.=�#~I��1�jQ�;�C�(Zk4k�X?�Rԣ���/Kvl|��.E
�F�qȍ`�Փ�_��O�j��Khb��-]�f�㎼kz���=-(G�uSc�۲�I���+6�^8�U�!4�f
�Ã���Q���V$�I3I�d~�D�ӑ�S�c��lIbL���/
8zQ�7B
u���_�����[�T8����M�4�0�ɍ,X�-Sν��ģx���ۉ"Y+Q�ĬNM	�ejqB���-C
�עL��ڗF|s�*o�:���Pj�kmGG��\�2斚a�j۽��6PLP�K��2��JU��\Kr�/�o��lLV�e�BTr��+Jd��� E��T�X�(����Ճ,x�r}bܸ]��c��J��Bo�^e�]G�;��{�HŬ%���������Q��7eҞGo+����m5N�j̔�Z�o�9��nh���Tu���H�R|TX��FZ�*�lx��X�<�����Γl#�2�䊻gN%T���w]2(c�O���>O�kO�2��a��Z��G���}�P���&�&˚a�Q��ƒ�#EA�N�Ԕ������T�*+,A�|8���J/O-{��$���؁��* ��Hؕ���s���h%)$1+h�!� <[pE�ڱ����1Oy�3�"B������ڝ������?��.7H0�7���~�3u��M~�1��/�>;J�p��<G:��\���[,���*�c��v�:���5+e�oP����|;���,�rk}�S���!��"]�C���=*i=�[6(����ZX�Yr
���@8�#�b�O-���$S<���^ˏ�����2�+΁��"�N�dj�^7�ç0O��1�kF'�da6�jLwvͷ��{�G-A�6{�H�4-uI��ᄃ{`��'��n�VH��?���Q���PW��\*�qw��_n�
I�9��@�����"��5�Qwq�L���L���y�s��.o��s����£����l<��˴b�-�R�����$sx~�7�u�p�r�5��課jc׊�ńrH�g���g�=���e��D/&�Ɏ]N�p�Y8�u�>�D��.�|]�p�n��c�B�MOB�u(k��"��7��bx+�6�@[X�ivU���>���Z��k�^�7˰Pm��G��0`�;
��r�]�#2�!&x�X��&�"{�$L�ď�:�0������!���qȐ���Ӟ���
�퍟S'eX��;���V}&(�Wi�� ��H�	�2���У�v����Y�����F���.��M*�`�7���:��*Jw�7Ȣ1�$|��b]:�Ow�����a=� b��{�f+���
0�Z�Z�,´�Y����&��c�ѱ�N$���ҢTy.ڋ�4Lx�6'ɾ�#���s�y%���,N�e���k&�m�[OPk�x�����Σu ��W�u"�d�KF$I��Ąz>;��$g��퐠�㦜�/�ـ�isZ��MxBD��l��u��;Kc�Jq�CJ%q�:��h�m�~2Bx�1�(������d�㞯\�"�9�H۵��p1��I��ɐE�6�)?�Z��G�EZm��.S߆�>��x������x�.8��N:빰ι9;�1	nUllf���K_W+i�=,�P�"���AJ���
��Z��ء"5ʕ�D;�%��F4�"�QҤ�,����j��lSY$�q���
��zo6�G��B�O���"���	7�Y}�=�)��ku��Xilsh�6i��h5�8ˣF�Ƒ(ˣd�2��1�4��h�{����sY���3�,��cY�&<�I���}$�)J����?	)��+d5ϣ�6�n�׻*�J���zf�p��I��|ۺ��"W9�O�����Ca��y'^Ӹ1��2U�gA��V��I���?B�+�Q�IgP�f�~�����V�㎏�r�m��iKY���7�^#�J�H�z��e㕬�I�sie�4l���)2|x�T��A����g%/[�ux�"3]�g���6��v�w8�s��Q�{Z	e��$mHBF��^�������Sֆ�f���Y�1�0�m�X�J����˩M
%K1�
�6��z�s�r4�a�8uDE�I�5�U��x��zT!�<��#��AhكAˏ8�k;0�&�7ۑg���\^vh �?�*�_��=OK���c��!�[�$�5Hɫ[�jk1�tm������.�D�.V�j�ͽ�kL�m�bji� �;U��"�<*�w��R�X��~�A%7V]� 	��b��\�E��E�rU�:`e��u��U{x�o'��b��V�F�!��u5�Y�T��9���GT�Y�6��:�X�Y��l��-Q'RU��F���hE�����;5]���l�u{��D`�w��x�،���~+`J�׌^�D^M��.�\�Q�J�FI�]pr�@��
����L�Em=Ck�������&�5�?�g{�Ƴ�v�5h0���bu��q�Q�_�)�T���߉j��f������ɣs7�,*��jE8�pw.;'%���bW�7��z�jĕi�vd�H�`;����H���{j���%:Ь@'Ll3I뺏�C�b�ƙ��Ie����U�:Q�` �N���+ʇ��xvygmV��� ٴ��ҪE�i�����2�7��I�.o��c�x[��8=L}E�|6�w�KSq��Tw�Hoz}�-�Ԩ����)K�g��w��e|E��w��C��8�	anq��'d���n(�f�
�,鑈�~���ƘzE=
y��(�T��Rwc���JWl1�KG��p����ȍ�m�B�so��Xo-�����$��Mg�S/ƚ+M�8NY�},~��'��eIA����dy;����i���o���P]�m;�#�"2	�n���a�{a^S
��X=<6���j}N�K�T��T�C	�M�b7���W�v�'�w]�c�Ve9�;j��^@�4�
�Siӱ��7�4V^(D��z��(����O*����S��Of������L�z��ImcT����8��).��FI�m(ͳl�xv����ͯM>̉/��YVԥ�u���궦�8mf���gR��d�K�{ ��hV�%^�DB�[,%Գ�)�sF��*��$�h��hr�!o��=j)դ,5x�F�C5�
����X�V��\�sI;I�xx_���Í�#a9RGb�O��K2�e���LUiOO�'�#,�珮�o��	Z�+�W֊��w�I<��mJ����K^g�v�F�8��`�s�_�'�?y�I!nBf���o���H0�m�+<�-�S�xWN��K �#�ؐ��Ps�D$��,�����:֪�i��dq*�s��L������ M�T�KZ�)`mY�c�
�:��,pD�W!�Hd�V+H�(��c�;j�p�/Aul��rlDh�ӖeH��`��#�w���`}?T�j�ĉe�r�nDy�[�A�t��d�Z2E��|�I`�H,�5�c��V�YW�IUZ<{k�'oy����8�,��)�fg�D(�<8�	�>e@3F�'#eDvv=FDh#����7�N }�m�����
�_nO�ܝ�g�XLDtǐ�[�a-dp�4H��nc��AY��=Ƭ�RZ,�zc�8Q�NQc����L9���^���~l�U���jLy�;�s�M�k?M[l(�m�7�;�
�����~��bGΤ�_�Tz�����ĄfL�yq�b�!��95;1����Ab(aQ]�_Ddt0��߇x�����Z&C�'Q�����c����
�M�@�X�S~�o���><�(�������,g'�=�hӄ$�m{f���H�u	}KH��?�~�_��?�. 
���>����_����D�ro�O�98�y������?z�����?z��<!1A"Qa2q #B�Rbr�$3��0�@C��S����?�r�
������n�A�Ŵ@�#%X�ʣ~���G�&��F��&0A�-y���.c�)��cePBӿ�uC��M�R<�0uE�����
��Bʖ��&���	(��~��5�2u���Ԣ�-�t�'�A�>�Pu���9x�gҨ�1j�#S�;���z �Z�ȕ��9Mg�vNkpr��7���!u_€�����ET�[�/.�e�Q{�eX��}|��_3]�	��׍'<����Y���d�?�ձW�fu�|ۉ�HƙW��٪�c��T���4�;��s����):�Ϩ�|7t���ԧ6��"p������]��O^9��/�}�q��>�s�h3Pc[
�v�L��&�����#K�de��®��Xp�^{l�$����oU�HMg��=���U�.�t�z#������>����8s��"<-���]�J��j�E䚌1�n�3Ĺ�F��$R�+˪�N��1�=
�{��Ƥ�t� jjnJ�$^P��T �q)��+�|�-�I苜#:*�f������Jc<7̪����?n�V�.8V�i�k����E�Òt����7�zd�)�6@�s��	����z���
j!���۪kh��U\�kH�UD|�;A��Y���~˧��2�Ru:����
fR

o��T��T,!���l�T8M>!��ot)�v\��?ŀy����@�s�eM�3�����-
��{Z������.w�,��/�wW,5d�&�t���e��G���uS�1��<��h^&�c�e���;�
]��Pk
������Z\��S��n8UpΙM�(���<=8=\���P�F��f�T��ׄ�W1[D��Ջh3���UwW(h�����C��1��vl��lk�]����}�NW۠�<5�����4���ÏeV��DBo�-���Ec��AFJ��L�C��~YR֗{#p��Vx�(sy����i
M�N�x���{���/{B�r��
^�9P���T�S�V����"����]�N=2P�猐�I��~��'<b��%1�������jջ��!Sc�ԚOD��1�r�\�������9�o���95]��4P���|ʍ
)4���t
\I<2����)�F��rw��P9ێ#Q��b��(24E�Ԩ�E��A*�GB������<=+(L�qr>dZ���h��s��
TE��)'!�>
���ƈF�u@O@�M,�e�KG�D�Ja
O����k��I���~����ë�@
J�ّ���ctE�t��*xRj�����g�r�U��G��6bk#^f1���V�#��� ��Ƈ�脉(��$��⋗1E�8t_%����GN)��\ph���Ɔ�q*������P�o��b��	�����;*~��G�h��@���pj�vɼ(˹K���*���GU(^&����m�y�cZ��q$�Wxv�7�A=,a��yM,#�h�O��y���rx{*��
2����8i��T�)��5����@6��\��i�n���8o�m�C[���O@��K�Q^[Z"{��)XQNW�M�9%T/7�W�{��7ۅ�i+����:���ߘT����H��c�7%�:���)ֺbi/t�P�]�����9��p�i̗/W�Tʛ��2n=��.�P��i�,��]�E��u*��������
��%˘���hF����SWw���*��?�W�h�I�~+��W/1.׈�
G���R��d��	߇�i�S��]��Ț"R��.*c�H�;R��0�dS�uk9��6����	�dJpY0���)[��uh���|ׇ��QI��@R�ʂ��\�'��^��VD�@@���n�J���t�i���Ҝz6L�K�P��UuM>�[�a0�X��aS��BO�.v�Ns�֍UJls��v�ƒ�g���MMP�Q�'q
�T*T�h��9�8�7:�'�gP�0�a��sU{�Y׆V�DG���X�B�,{�j<i����H�K4�<�E�\T�2��G�W~㝑/�z�R�s�|9��a:�R�Si���A�
P���Fv�(�ߚ��>D4uLy�=P�suSSM�M�-e:�@6@�m������t]���k�)��}E|�TjSq��rz��h� "\p7Fӫ�N|���'d��L��hDn��g݅M�}\U�Dø*��8`�Ty���28�{�j���`�'�sh�����~��K�h

Q'��S/�p��:0��MkI#�"z;��E�AǺ�XY�i�����>��Ͱ���7�*#4ʶ���g���ʼ3)�L��p�w<dk�2��`�Y.`�/��4t�^�:�.�.2OD��K�g�����uu��qT�
}e��֨�P]i^�`,���=�Jn��	�J�9�<#����g��J�Q?��D�!���J�0&���v��nkz��`�
�~���ׅn���Uv��&����)�[2����y��U��7V����"���‡�;�Xa�J
�MC�"�0��s�L�)�ә\�h�FA���o�Z�	�_P�)�*��n�:��0��Y����u��W*����;�Ȏ���.|�dB�{)��:�V�;�� �D�
Tߝ0�7���eI�GuB��`��T�.�3�<�8E���T�o�*���*�#lj���)���kv�sq�<��Ȩ���xyk�s����ki��6�G�kK��.F����H��N�(U���>["Dy��-q����j�w@�wPP:�q-�G*u�Ȑ�$���i9�b�0�q���f`eE&�L;��*�8�T.�s�h׋+���^h�'5��kYh�FLeO���*񴩫O:�)��Ҝ��7eQ��Gu�].#D[T耣�k3�
�	™�mj�D��]ٱP���!�
�Ijl3e����#q������<�)�t��
Z�a��s\�|o�@FP��4�4��Q�Y�F���A�cK��6�o�P\��v��������	0D��ov	N4�E�!mC�k#E�F$*���	�)7���*K��*��S��1Ωm#�N,�7r��S�NQ�!B7�t�$�*opwd�ȕS�%g͖t�
L�l;��7'B�f^L�
\Z�dj�h{_.ʦ��j"����f0���>�3�6$�p�c�E��~�BJw�u��D:g��<����T�#�B��<z�4��Ux�VSyA�zF��'�a�� �)u�Ӫs�v�S'�8aeFVOt&U�L�iʘ7�*���	hy�L�m%�U$�N���S�>���^�KZ�J-�g4'�ڌ�tE2��8ı�!�N:C/ET�a-�!w���9��KNn����Ss�ʃH�C�p�ZG�Wu���U"���5���'�D<�SX #c@���(z���k�^��pit�N1�T�(�—��1�6I<��>��o*�� @~P��fӢo�y �/��o���0m�?��mԹ<64�)ë�*�>���ͭn��j:#�8XT]I׳f�Xc9��O��uE�S�DgN����Z�N�Iu!=�Q�kԝcd�u��T��zT�����	w�D��S���
z����AX��v*��қ��G��^�L��Vl��\�:��ꫛl�����s
�4i��Skj\$*��j��U��+�پu^`�I��IP�nM���̻&�V	hv���8��s0�e˲㤩kD칰u�Iע��+Ӣ.;��7:(ղ���o�-arqϤ�T��D����ע��y#&�#}P�pe6RN���z��s��O#�xj�n]��I���Z,hk��~Q{v��.�r�}W_ؠ�R�3�����;��ZVo���*�'<G3�R��=I�V���HvW������cæS��s�U}�_I��L�c����?�#��N���T��ξ��Y-�J�Tpq���a1�Rm����Ph܈��S�B��4�nС,�'��t�6�U��L'�ddh�o).ɉL�J���b���!;߈껧5�|�}%fW���ʝ.�^SI#^�!�a�Q�.�#Vb�U�b=iᾢ0���x�:*�+�P�?8@���a���h�뜩aӪ��ep�[��z��3��V�nGG����2]�Mc��q���-X*F3&�1<j�T����Z��<��pM���W��
ʍ�!J���
��U@��	��<j�4�
R����G\����������$Bys5ܯ1����M~�¡�So-��T�]1)�`2��*�A�iž-ќB��.�B�߇��GEI�0at�8xb���N;��
B��q�i^i#׏dז���m�@;(;���Ls\%�O��t$*�gE��j�c�Ju�+�D���e�c�Ӳ�n�f�eTmv�4N�*�lX�8U\��F,<Ѕ�#�|aU{v��#�<=&Ve2N�N��~T?a*#3Ƴ��4�r�;j�5�i��Rk�ǙQ��2wX�ۺ��Ǻx���=��@hB����Xm�Ң�{[:���pf�%�%Xu�EOV��Ͱ��7
�+��e�������N-�g._6�]�5R�-?L#�֥zJ���q1���}8��n�u)k1i����>�y{��{V} �eCN�����d~kq���Uē�dO���D��#g'�#3ʦK^Q.��̘N~�5�;']H�C2�����U��&lP�axڧ6�\%�eN6b1Q�����L*mpcF�0�w�X
|lBc1�?&�&\"B�H���kC)��^�R����0���e����z��Ѭ�{'��M�Dd���P�A�V� ���$��fҩ���4D��ky�2���7d�^�q5R�sN���i*��UF������S�(<8C�S�!|�~��Z���0Z�[/�*����x�=�.U �S7v�J�M��|���)����Rю8\�ʝ@�i�5G^`�R���SJ-v�ԅQ��Ti`�\��O'Ql'��z�)EY >s!��PK[��U��ܽ� ����
����'dzܚ<-/2FSi��
�R�T4�Z�:��ȅ��Y�=�,j{��3�.m���-~�U�n���o��vU*Rc�:¢"1‹�$]�Ӷ�7�A��f�r=}��l�p������LZ>�C�5:�ʐg��WsL�O����NΪ�7�6��m��;�	�y�ϫd�a8�$4�<!� ��<�=B���Ԧ��Ң�wC���,=�Ω���0v)���0�-���D[�i���4/o�Qs�#PJi��Zq.�:Jk�e��8k!S��w���6��;���`p�,����e<�rԬ92F���N��ה�8��6%I�=��C�,�5��a[F�7�u�c +�Q�=��T~�G��R�r0���~�#�Wy��g)�m��aZ�����I2��&��VUe�s	���GY*����AA���P��2*���4��a:w#�l�=��ƈ��S�M��P�{)�O�Ə�`��W=O_��%,�&��}���n��َ��~�m�6C;�)n
m��n��~�W�������=����~�����'!1AQaq��������� ��?!v�~�,X��瘜���l��w�)i�,(H������A��ωdnoԹ�y�jx'��'S=D$���濘r�D�.� ԥ�
Q��PN&J�?���'£T�ݸ�p��D�B]5�P���������/0�?$�3��Dx��j]��U�O��j��I�Tx�@�f�\X�7+0�id�lv8`�(�@5�pU^��	PљSAz���6�9��[7=�S&�j^��h��Afp�9�	�u.%噜�z�����0?��+���~.�:h���i�Xo�.+e�?��_�2冞���2�ocd��?@,-=A�3�ͬ�L��nZ�6�=Ozg;� oY����q��bM��VVC�F����?�`�����.m#�tJ&�Z�m9��5�(Z��"�܍�h�D���(7b�&+r�j$�\�`4k[F�Ljp��.H�ƾ&/��L����]Bm�j]"0j� ��f�|h��Uj4b�ү}C-�5�&��p	�l��\�L ��c%N_�q�ט�S,İ�
�#E��)I���/Æ���c�j�]��`�v���CY�𼙄�o�l��q�E�8��^�*:����P���S��D�5z���@�P��>%��X���։�G��C�p3R���ؐ(�/��!���$��~5�`�xjl���'K��'� �
 ��|��k���,7y�R��c�T=�U��r׫��%(�H5�]K#�N���1��
\F�m�e`�-��N�y���a��_��=�&�z_�|�`�u��?��;8X�+/2t�� J���^`f_���bJ�_����b
Ah�u�t02�21%�?"r�p��b�š�?i��L���fXQհj�Jú�~5�3����-~��Y�fۥ��k5!���4��X�����c�c��w7g�i�dv|L�Ӎ U�%��!Hv*._7�L'm��%�,>�-=��/�'O�_;���!�"�k�[�{K��,n�z��vh����сB0%��GfX�C�[,5������/�}G��jV�GO����;�1��~*��%bZ��e
I��;n�2�o*Զ��1�}fA��+<�~"ԼfX��:	ɠÙL׉��>P��7��8~aq�I���Onna�8�j�`ry�$���Շ<C{�n_v]����4�7H�M��b�Y���(��;�:��k#"%j�n���,R���):��Y0-p�:��e�ɭ�Iጪ��ѠKơ�_sola�`��g[�Z^V��G�}J)Zo��%+�
���ݳn �¼!���m�
�%�u3�Jy{���pQ�殢"�/��#�
¢$��U{�{e��|�{�*V�p#��ŷZ&�A˘�d����2�81=�s��W�*~��x�ܕY�P��Ms5^`�.�W�fh.X�?2��%R��.
��Y8�C�M���Ө,b!��ਪ��$�֋B�u/�֥�u� ��`�J����\CB�P2�1̸�g�&_N%*OC0R)�!�%�i�S�zx��@qCT?�h=q+ٯ�s�Du7S��0TKh0�G�ctT,�a� �
�Qh��I�cչqP�[�$hP��$��,�-�'��)Ȳ&kR�:Tп�Uy<�O�Q�)�ȹ�d;<�����*6�\T1@�ܶ���a�.�k}�+뗹����Z�*�)���*d��z��#n�,�0 ,���8wܢ�
�`Ğ9��>q��\Kl��Qе8`�<H��BŨ���(���f�(�j*D�%m�����!�2���o�{+�*R:!�(�M�
晙������j*��uC�e��#���z���
�,�j���0�Q^	��3}�P`+��EgX�%Lw�xNM�Q�X�x�72;���M�˔�/=�-̡[P�V�k^��,7�i�͈��D,vF�ܴ�M[J�����p>";�n��dy���%N|���aK7.� Y�����`E��Ye���3�	��$����;�i������%dw5��h��#w��<(x�0�7Ӹ	�ã�l�Cs\Aj{�`���΂2�wLR���Lх�᢮��))��d���l�n �Բ�!Ъ���z�o�N�u���9�N��&c���]{��C_2�Dx,�&�78U���<������w���[���M~����BJ�eb��ir��*2�3*�fZXA�'D<����W�Uaoz�;kY��?Q%ķs}�@U��yf �Ř��G�q�T�U�}m<�lC��Q�R�v�A� �`;��?i�@����3g Zյ�@�T��r�e���aM{�=9�sm$=�Ŧ��-��=PӨ��@IQa�5�����\s՜Ң���Z��̅���&F��S�c�f��/fgN�'r�x�Q�^�bሢ�q/������P�����
�j8�X��	z�z�-����G������3�e%�w
������S%�A�����`M#�	B�\���)��*2��q��eN/}�S��B�5
�����@(jt�!�n��-
���iJu�!�8��Q�P���r��3	�A�m0u�UKy�&Dտ+�kk�I�"�J��SE�Z��
4���Py�*�1)�7qO(a\���r����ʼ
�q|�N]�0��A`���/���%���=Cڻ��ŃkT�
,��\
2�T1P-PF�
<L�5?Դn��k�^�Vn1���1Yx��	�< Bɀ|��EVU3��L����6K5-��o`��-˪�$er����K
���a5��g@���Z�v>	����)eN�{��;½�Ӥڙe*!��LE�D�t�)Q_�اS �~����m-4�f@l�a� L��G�R��]˘�w���u>���r\48h���l�p({��߈m�
�ɚ��5�db�xt��z���)�Y��g���»�Z� �=�`��j:��QSF�	��E�l>H!o�0����F�{ckB����K<���� ����WjA6.[�9T~�
���(���b�1&o!R�X�'0�T��t^��O7�d�U
��P�lir�0�l�r��v���w�V�{�eV&�����C� ��Az�Y�LO1veM��ƽ����5%0�d���US�R��2�<d��H
��d����O1�8���+��B<
7nS"!�{�ܮ��5f;W(�V~�;٧4�t�b�n�(�h-�S�
ZP��I�V)�le���|��w��ըˆ[>���[��=����XW
4��<����ُ)i1�F@����c0�9pc�YsKH?4�H��QK�X�t4����S���QF��CԜ��pWx#&��M�NDL�����>e׽C�
��[��e���3+�[���J�x ��6c��^�Qk�2��;�j4jY�PA�K��Y~����5�`;c5-�l)rKC�joP^�|%�	1`�?�4\G�Rqůܯj�j؁̀�\d|J?F?`B���,h(����ȩ�c^��PJ�\(6�-�p,�f��V�&?��y�HҐ�|J��T���nN�#�?K��eZXͼF�[�W�<@:	��(7��c�@Ǎ0��D��۬�Fs�+��l���JQ�tMm�j��h-_\�h�?�2��h���U�qG�6�7�P�V���[�(-WDՒM��
���h+e���8b\��3+:���k~K`�;�{�lb�"�§�3��*�iP7/�#k(�B����	���!\�*���aUf:*ڔ�Cg��,��v>#Z������J������Sӹ��r��ҫ������O���U�K�\���X��x�ZyQ�d~��ŧ�fg�2��r���D��wG���2s��8�
�}L���}Ya��)B̃㈩�\�B�Ø����@]�qD
r���D���.P��.��s�����NT��ʼ�\�k��#�Uܠbg��Qb2�^�4kaG!a|�Ot"R�6�����>�a��`0
W�b�|����]f`�zE6nQ�ѳ�(��b���
Pm\�݅��¶F�Y�R�Q5�CnB��[���-(�����F]��!%�]M�!�i��ܮ>+��X����e]ʵ��5W�G��S�X~��U�04]�\�!�mx��L����ko;���N%�5-[�
���3��L���X�3T}��
��뛜[+Ȕ�6n î"�A���;a��ث�)�i	�Q�E����^ ?qJ��+'9[�/��T���S���Pm�hy�i�-Y�K ��D���S��F>!q�P=�HMin�߂J�����S�N�ϩtY�#}7����W%
�#k��@���M�qL
��d�b�e�/ou5��%�	�t ���a�Q2K����=��(:���,o����`�gͦ*Pl�'^�F:��TV�M6�b/��pN�,?����W�
`���P�Py�y
��C�;�0Y�6�l���b�Y�`R�;H��k����IY�!����i�
�ޡ1���V8�s��9UԦ�"&�0�O�.PYy��aZ׃YH����fA��M�t�_��2�,�rʘ��򹆽��RzN3��K_�*\�,�C!B�|ܽ04��Z.
���>!��w�#%�2��4PE�������g��q�L�z���-zjm���/���=�2�hsD��m3(n�8#-�r_s�ј���`��]�\ (�:L{�n
��2�E&�t.f�+E9�'}јg"NI�KJK�#����n2Mx�_1O�Z��,7:�q@��6���^̭/0<�-{NBP|�)
�D|�>Yp8f�t@�BKŧ�@*�:֕�'�Wp}�0)�bJ��|B`� sYlV�L3����Ơ�f�
���R�l��e`1H�4V����Щ�����/��K�m��ץ�R��[��xʈ2��e!��E;Jղ�sf�gu2��L����X9C�`��@UW=`1V[�
�KL]a����T��W
�o������T!6_q�*���U����	\4���C+���5����iR�ņ�¦QpDeZ^��
�d��"*��;��F����*�ߩ�ukb
\}K�mYgP[���3�.�g7ܽW�	yo�%]��S/b��ߨ~�p�[�I��C���UU؇ģ��8�M��[zUJ��-|��0��f�T�*c��D�5b��ʊ��`+;X��t,α$�&�R�S���67�%�+����6K:X�`�
�WF��Y�����&�L���
�qm	Uof-f��j
͙\�1���9�N��jB(��
�0���E�|@ZV��
.XʞS"��јj�H/��.�+P:��A,W�ʴ�]�
ꬲ4���6T���V�ZP�2�g��;%�2��ɂ%�AJuO��M7.�v*T+��
�v���&+,�=�5�����m�
�`�/�0���E�@A�Yf*V��(��O� 龣�o�Bq.4���Ý�lQp��Q�z ��Q�m����������'+`x����Amn�S�j�=��lPQ`>0���tFD˩^P�)�^���6�B�a�J4�s2��ʕ������fb�5+S*���r�Z��H
{�� �j���lr��۟�r�""���$�PVK�.75�]���e=s)IH`�!��&��V�[6V�ػ��~%Žj���cGQ:����dp���L:4Ƴ;Vu�31
�s�'lW��91;bqY*#坦�j=G�Te
%�^��	�	a��=i�H�bWR?�19���y����~�j�*n+;��YE �C��]h'���@tѢ��0l��Q�
�S���ĸtP�XF�_<K@�G	}�@�M<�
ҙ"���1ӭ���N!�TJm�,�Lj�m�#���A��o��2/q��)~�'��n6�q.� e�����ùH"�f��$�ݒ�Șǁ��)X��Ozb��/����ބ�Q=D������ss�-9����	8�eA@�A�%TS)|L��ؕ�f.!̡?U>!����ĵƌ?2��ͩG��=K�ApVwK6_�Fp���Z�O�Zk;x�DS��̬c�G~�Lj�˖V��/�#�_�J��U�Ķ�We���0����#�&4%�J ��,�7�i�r�d��L0��!��ޖ)��o;�#6Qц�A%�V�C̿b�����O�	L��O,Jd�N&;NA�H���P#}�����}R��3�d��V�צ�G�X��	�2��U�q���#!Ä�L��Rmܴ.�����#a�Ϯf��h�06;��z8�BBE�g��i��6��KjY�K�!x�,�6�!�h�=�p";Bُ��0�.�m0p�p��+�D>���;%2]&@<u6�i����O���G�U��>����rC�w�.��"�h�b�{o�v��2�V>����V���J��p�y7-UK��`�]U,��-A��ݡhR�	,���rQ<�L�����-���X�Ws#3p�g2�5�O�Ag��Uؓ�,ho�Y�e7E*���&c8���f
Á��¶�q�J���ć���
�k���8ȅ��f��
��`��>��E8V�S���Ĵ�h��2*���j1���b`
�r���r��9�F�.#5oOs�Ɔ6�P��8q�"�8�
�q����?�g1PC��
��Mp���9�"6D��]���P*����Әd��0��L�1t��8+�(�h��ek����ߙ�
B������G3�����`TvČh�5~?��7��p�wv����,���F$����,R�K8�$�K8�<�@��$�#�8� R�<‚C�4�D��4��sB p�(q�8�O8�A��p�QJp
� ���B4���(�O,�C(��`�,�0����0�AC0�D,���G<�C<�G(���$��8�I,!0"I���M,2�2� �H(@��J �0SBAK$8$��rL���#���(�� PN,",3�� @	(�I<0B8�0� ��q�"DG��Q�#ABJ4N�J4���F,�
$�(!�(S�(s� r�0�	,��,��<�0��D0�$R���(�	���s�q�<s������?z�����?z��&!1AQaq����������?G݂'9��;�<���|b�F8rg#�4�B��䣀To/^����@&����yk�JbcN%N�T�|��M�����76��}�}0���Y�)���R������h]N�y�D��'
'�Zᴁ��[0�t�`��Re
�T�q�NQ�@��)wp���tE�2�3����B�8~��-x����
�€�2`��Q��>���+�l�Y�/:���<�10r=���ESx����w���ی���¯����M�gW5[<���������<��l�w�'��0	:/C�3{�_��F]�Y��HT�YZ`Si��Ma=���B`�Ae`_";�5�2�.��b��f�YϜpX�p���&�xە*�b;���*�q�n���Dlk�����w4�z
��'_x�"�٣��k#��6M�(;G
�K��;p,�1���l񂫓8�8m>q��=�����ޣ��@ݒ�z��2^Z��z�ЊQ�v�qF4B��<�4xejB���
1�� �������l�r$,p��.\��C��K|L!=_�48į(Z��a��t�%R�!� ���&�O�c�/�mm��5Y��7?�E��^�h皴L�U�($���Ę����f����_s�0v+��8�/8�{���8	sN�lo��yØ��lvw��������G>p���
�0E����#�K�.��Sp���=@p��#r�&]�Pu��
@�xj�/& �4��c�͡�D�4o�`\�
��,@?�P� �Vs� �P^�w�����W�����Qa�M��|�(��w�y�9�ԗ��@��(�Y�O���!�ͪw���frq^L�1�O�������5R=�ٻrȜ���1�;�|����Z�N�$<b�ې��FR��ˎ��w�~4t�RIiYsv|\c:�SYS+�O�(�F9Uη�B�)��)ip:-�z��C����Pl�ϼK��;�:&���V`�,zVd�!C�8���^�z
S�;��u��=��ȫ�KZgY�ï9,Q��Z��x��XqqSP���p�WF�{~�J��C'
Ɓ����%`��3ňA�g;1?���v����\��Dq<W׬���l�B��YiMjp�e�ty�������]���q�;<��
9S�#�]�85�i@����%2J�@�$(�1�,�ɈC&���.�Sӫ}b�
���.�)��,t*�EĪ4�}�Se�ɩLj��]`2Z�:�*�q�&�b`�������Rz������ks\��tb
u�@A�_�,QC���cxz�7we_��Ki�u�gpG&[�%��^��O��
�<��дS�P?��Ju�)j�~�Lr�����,a������hw�=M׬�z���X`X���*7�#w��2w����B�}����iA���$3nk[�W��lx�E�3xԀ*�A[�A5>����5)��C�S2�q��|�˛�4��Θ����HWx`!tk�@�9H�6P�➇��9�
I�5�alJ����1�@�f�9�A��}�pz�Y��ѿ\d0:"&���t��J��r0��l��b�^px΄�z��'A"��w�0$
C$j�pH#S[�1�)Cx��r����PuT���(hB��_��fg����%��Ϸ)k*y�p�u�2`(�`�[�
��=���4tb�@�ތT6ˉ����|f�d����_;F�=e�5o�o�*/`Tk�����kZ�hrqTߌ@
����msc��0��4/� ���j��$�M��c���_N������㴶�w��@�@�`w�l����
lȯ�L�c��(=�+���g���C��\�G�����dW����l��z<�d��2�H�j��<
��
���
B�xG�k���p�|cR6�U�M�%�8�F�M:�qW��&�]jb�9Oy7e�»�������0�O��Sj�i����C}e�k�x�|�a��m9�p<��gǥ�&F�8��	���p9����~vKi�:ģ����@�;(��z��FEf`eԄ>�Оq���$!�K�S�R�Nh>N1�`��"E��PW�s��g���<b�J`������<a=�8����Y�R�s��:�Ɵ�w&C��0�`b��/�0�&K޲[T�)���`��7�"R߬�ھ0�Dx��N5��#�w��5��:��
e��'��� BD�X����:	��ƕ�������`S�0�uӛ��S�$l�]�ưbdϋ��s�ҭ���=��ߗ� �8*�ڮ��eDp9q��!?�?���WY���%�N��|Kƻ�,6���
���?����am$E$���I2,C�3t�y	:s�M�U /�4	#�y�Cb������f��e��hƯ��B0����Vb�
��[ٝ�P8M%���k��6��ɑ/��
z��0hoJ3�ˊ���*�d�/���o'���jb�
����_u�
U�����q�i*�NrXS&�|4�O�s���^��#B�\2Bn�˛���Z@���ذ�o˚����"`�>�e"�������y�~1݌Vu�pv��ԯ���
n5�[%�O�q��������}��>�r:�`�a��SjP��Vp���'F�]~�%���&��	��6y�J�&��y�	s��lS���HPx8����ъg<&�O8�r��ZaW�B�>3q��c71By1���i䳍0�eݷan��<a�KS�79&��֨�Щ��@�7����$
"G��'�%I�;�%a�B<h��C	����P2tWXLrV$��R�NoxPU��񗁷|�ףx����Ox�
$���Ľ�d�s�Q��\���O0�C�z6�X��H�
B"La�e$9�﫵q���	�N�S6����A5�
l$ټ�H���\OT��W��1���O00Ў8�8 I�����湁o�DP,i��U³�3��&('9�����ʛ�u���)��6[���i_��4¢��X����t�~�6�I���`
��!�q/� ������DH���HA�q�(���s��B��Ģ/���!H��v>0B��Xh6�`�k�M���
	�]�fy�’���?�kC�����;	T�����$xR���ty��]�a�᝭�n���s��ጁ��C���U�(o~1�4)|����[�)��Y2X��[蚾�񧦗nx�3>p:y�݇p�;N���Qىf�x��`�]��nw��;����g3a��V��'��%��7���H[��9��,[���L�C��.1�_��p	�����Y��]��J�LH4�:~\�[n�TW�6�9jC����Ǜ�‹Q�{���f���ǀ0ڗ-�[�1T4��2��o�͖�觭�3PQ��$��4���Ŕ�P	ֱqS�ӈzq@N0��{w>�>��ȓ��'�`
���t#y���xԶm��A��x��P�<��-��N���j��"�%|8(g����Zxy���΃����{b�,�T��C�^������,Z�b$:�D�4�H�P�=�h�,��)(t���gcz�dX	�+�:�]6����;1�D!�sMz�,Z�xͪ��u�p'�f�Xgʘ��p�ɣ��>/X��:�su�Q�T b���[��U�X-y��h'���e�1�W�R�_N�2�M�o�Ğ�A8<c(��,�E���p�ٖ�\X����P���E�B/Ms�b��@���%�ˮ1Xd�j�y����`R�i���\
�b��jb��n��D��^��n96���,�3a�'���Ŗ��5�ػ�`�L�@��'! �|��F��J�0��?8;�]D]�B^0�4���5���+MD�����r�xƚ-�&0#���T���6h��	�Grw��6*���nԐ�9Vu�����D��i�[P��VT�p&���;ͽà�.�<d���'���b�঩�^pH�I&�x��d
{;�aM*�A�f%��e�y�˼*D~����C�o�X���bG�p&c�҇.p{�s9>s�I��ȼ~2ɱ���	�-��G�,}�A<jF�rԩZ�ƫ�#�/�m�@�%)n8\��1��F�8N�
 ���n��c���ƃ��O��8�s�.��/���:��5�W���`����;(�l_8(}�r��8���$�1j����v�y��!v�q��SW<�x�h(�tz�=�Y��ˍJ�|H�x�V��«�u1���j���QI*
��Qk�|��6{�NF��@O	�3�q6e�W��0ߌPpW�r��O�-Ɠ�rQ=��v��e������Q8��F��}4���L�Ԟ�8���9O�	$N~�
E�d� �^0d� ��\`���re��z��		ڤu��A�H;�IN|�=�M�H��^#��ZH�^s�ӆ�O��~�.�r1�bo\�Wі�Σz��PR���v؃�T�
�o�q�s�85�3ٌ�t}�B���\���T��<�M8�^�.o4&��'�97�,g�9��Оas�V��ҿ=e�Z	�$I�4#iZ�����7U��������<�`vN�hr$������L׀��;!6!L6py�u�uV����*0���#W?���~�dT1�E
���VHr�dQ��.&
�.f����jç�@�|�Nq+���'e�g��*��OYx��]sq��� ����jN�n��7W��&� S񚨑�-Ĕ��f�R�oW.���(5К4\���,_7F-m('��[˺y�cjM
���$D�:d
|1�o����񅷾��H�9��}N�%�gS2��sk�ȱ`�Ӿ�Sc(L-��]�~q����<H"�D�2#�jw�`�`�`_X]��!<��+����o۩['��4&�8��`�9"�"��<U'�׬<	ه@���,z��0���Bxˀ4tg&!�������ߌ���N/���V�aJ��`1�����>���
	w�0g�u�'[ƨ
��*-:7��c+�L���R>����ܮ$6�85�0=�6�!�:��%�I�T��L�(R���L�:�f�(�f�󅎀]3�+��[Bۚ&������xY��8�ok~n�Q"�&�h9����g:����9�xL|���њ.)�2f��+z�����8I�v�8��.��8�ؒx���@eCJ�l�䫡��ݷ�/U��?nl�@�֦Ʉ�P��WgX��'�'9r=5���zRY���'Ʒ��c���J�Y��r.��}�zJ�!�'t@��|h����d�BC�������T�b�
Yr[(vM��4"Bi�"2R&L@�Gz5��‹u��8���3W�9�&|!�s��iEa���O}�Ѳ@Ȼ��I�A�/X��~0�D�oxX��/�n��	7N1��-�b�'�7���#(��<��(�G���*a���_y�8�f%ڱχN1��⡴���v=��AL�?X�kOP�pGx�XI��?>�m��9���]	Ƨ|���&Gn-`�����	���k��p�H�����&_3���<�r����D̈́�:oA8��.;���/��]6_!���t 
���.Lw&N���TG��$���T:�Q�,���d(�Ȥ<r��V,͊�߬��wa�tI���	 �O'�аd6Ӝr��1K����I�<?���l'���w/��1�n�2�]!{���������r�su@M�8:T����u��q��@97�c�z=mG}�nF��Cs+����pJc�#��b�����ׄ�`*�4�MT)l�X�mŠړ޿�+�wC��M���	s6N,��k5����c6�	^����A�aj�D5�&8�cyq��=2���G�q�`z�Yƃ�h�Άw91�ڎB �>��+��l!X�5�mF]"��(:KB�Y��Q�L�CZ"ˆ�d�$��y� �j:ƤU�QW��Aa,	�L-2%q�3���$o0�vn��X��PLb����apCA%m��J�F�y�Q
A�u��4y�
.Z򇼽�n�͸(����^����5O?����1���p����WÌ����㴀�y�hF�w_�I2��Ɇ,�܁U�r�H����h��K�vB|�;��� v���.w�U���1Q��_��
���h�i�U�ʑӌ	�w&9^>��8!�46�u�Y�+D�R`ã^���ԓ�l[M9�8y�����d�k�=�<'+�+��U�Wq��l����,0k)��?8U�+T��6�=?�;q89�MO=`��8�
�dW��l��p���`:��פ��
�u8�?���p��x�c��98 8��hk�i��l��x��&�n7�Ƈ	�sY�2xN�EW�X~ĩ� [��ֿ���דL�=dZ��i<`]�,��0�6��NJ,F���D������2j{z�m�I=��-�`6Rˎ�t��Çy��;�L�B�ܣ�շ����!���\��ϛ��LA���g��1J%�{�s}4pvx���</�8|�-|%�6?V�ό�+�2cK�↬�x�x�22�������O={�oW�Q�(Q�ph-��㜗���Dn��W;�U���*�
��sh��r�h���W
�dD^���Qd�?8<��K�81XZ��qְㆇXB:���Ѻ�%C���zs]�n���*v��I�NsqB^��^�U~�jؤ�8��Nv9��!jAC|WxrG8(�O&H87��pj��;f��/%��K17/�f��t7��}8����ReB�hA<#��xn��f*��2a�9�T�l7��H��LIƄߗyh9%��.��O�r��yA�WyeEns�DL0�!��}o��W"�38;������kqnW��'s.�@�M��p��Ev�s}���u;*b� ��p�s�l�W�V��e�P�z/�2�0mg/�b]����c�����a�'��o��~˅z���vD!���b&�&d�\�8� 2�.z(p�����?�	:�N9>�5�rL��).r����1�q�����tqL��W<��Ô�DѼ�k�#j���nm*td
[9����S�W���+�o.�Q��*_�`8=o!!\N�B�Ӫ�8�d����KA@�x�vn���\�b��2=hofw�|���@5���ٮuX��,�|����@}��=�aĈ�(KVD`
��#c�v�@Go0Nq�N_����Li��f
�
U=��ɯm��A"���85�3��ހj��T�|�8��x�+�� ������xa�a��YUq���*�G����jN[�ݢ��S�0io')I	��J�`<�-Z�G�
us��$/�:�yz��"!��
�8��|�:����j�/:�7\!2ȆX���ۛ���)�����N�+��7�U_.=bѶr�۸��1'�KA�f���U�M3(h�
��s��"���F�Ek=��f�u+�p�l�Y'AmYf᫡7����(6�N.�-��R���@��\RHa4� 7
:�C�	�<�f�6ݸ�T��kx]��[��ASZ4��0��b��B�	�t�Y{� �4F����T`��t�	.O5�ܒ$z쎷���m��!�!�6\�f�SXv�*��Xam$� �p���]d��@hw���@�5S�yP.��0TP�)r
��3�D����o�ntr��71E�o�P85���t_y@�Vq�GrbB�8�Œz�]�I���Q�+��a�&�5������l�i%�����o���Q�h����SR��.R�}\l�7���I�Xh��"���
b��j��u�*�U7�rk�k�"j�<�Pu}��`:eW&W����E�k:�Ꮦg����`�G���?#��8/���|c�o-�W�\�f�ާ�����wa��p��YO���nH~1'�X���2d�jy��	�`��/K��E)�m�˵.����m�.j��Um��c�H�x�"�HN��7��'��Nn��)� ��md{�ZTq�@�lI|���<bl��^' ���4nG���H�Ȁd����ýM.D�^|�����7�\˅�qB}� �04�_� Hz� �S�QQ��d9gC�L��K���m���	�«�0	y���6�dA�<8o1�|��1��9$�5<g��%��6�8����5N�e�B�y����;��1���gy����y�FG<��2�Ż� ��ǜ�`� 4��C�!M#���E�P�`��6���h�ҙW���b̀��J�v�e��1v�z������lC�`�P%vm�$�1�{�s��O{�!2( ��b3ub19	��X,h*-m�dǹb�Fd<��&&�fw��:L)�j��lɖ�W�\�ѫ���v���=��ˉ�tЗ
�.�kK�Cm~���Z�f��l�2����@�.5/ E:P�M����K�(��.>���[��=-K�c�����U�9��W���$P��)�s��= �<�J4{�(���=
��Aˆ�}��䳜�
,4�<b�}�1�6�ù��l�8��A�\r�%+��'Xj���awg_`�ٜ�'a���m�������H��맖Z�6�_3�B�y��@GP��T��L��1�X�
�F��S�ۇ{�7�->�]�98�Q#�{�'�v����`T��y��K�x &�g"�{`�����<�J��028&F�,r�XAc��C�j0P6O;��B��d�z�G<ku��Wf���F���쓡~c��iJ���gN�&�e��'�A�^}��2բ
e�<�*���M�ғQj�”�;�Í�XoW��G���h t�5��Z?��Xt^3����;dOde<'8�]"Aؾ��BZ��o�������"h4�!����o�j@�����u����`�����H7ÿ�ɞ��m;9�~���Y6��ůѷ#AbQ��O
i�V�6C*Z�&������!��%��}gZ�ϼ��i�a��.v��g�9�����8��_d!Ö��/򄱙t�D�t
+&v�\'\�`q���K(�2��	G�doo�j�o.�qEe)w�;�Q�)�
]� �l���i2F���R��:P���h%37��H������l��8�y�! ������c�`��ί��W�$��v"Zx;ߋ�a����Y���q��4�l�n�"S[�{�%���l������(�lC��޳��5������s�M�!�Vr� D��€�hW��}v���9�+j�ux�B ��+���ˀ*�YOPn��.�f��R�!�tQ���7�׍��%3Th�|�|!���tx}�)r���1o84ć�>���%�� x�n�L��d߾�%�MhGN!�:�Gg�܏y�����BDm�7��ল�E���q�f��>�f�6\L.�f�|9��(��{�ґ�~�!`$4o��t���ǔC���2�}�bn ��~0��!�<y���LHad�#S�3"W���U�Mnѷ�M$�ߔXG�I5�MG/�KG�P������!�2�o��o���7.P��z�2��~sSC��
��i�A�Ʈ�f��.��Ƶ	���%�Ƚ��0aa�``9��;��Y�Bї�3��o�;g1�Ny�_��t�&�*'&,����9�0KW9���b#D�Ʊ��gs*U��zӵ��!*ƣ��*Ł8N(�Γ���f
qw�g(�����?t"�F����|eu�<��	, /�s�~g��BV��۸��_�%M/\�P�:0�1=�� EP�.��d��m�E;/��@�R�|�p�dD&짼nm��TQ���4�}��u u�@�Y�-Q>��T��L5%N�|gA4�ˤ��|�@�}����"'�;1K�#ˉ��W6�8=A���8�~��)�i�l&���Y��X
��8P|d�m��Ӏ���,�4�G%�:��x2���Q�9��Y8L��#Y���)5�S-�XhE�r>�������!��M�Bµ�؀��J��q?J#������+��j`5G���LQ1�=k�25Ca�b�CH���v&���������ER����{��
K٬+:Y��p�$����Adq���L0Հ���&/����X�(��~�a�O��C���'�ãA4��|ƹkb�Ɓ��}�s3�����}�ϜT(�C9'���N��l�Nt)�r'�~�mڣ^vcsjU�&��}�#C�bkYZƐ\T��!�{�$w�8��/�Ӟ
��%��b�WC<f�����?�-�8GX��V����widgetkit/Partigiani_4-dc19b3589c8acf56303be3d346d7364a.jpg000064400000052027152177723720016161 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((����"������Qa�7.�KfAat����̑�bn3t��r��P���,�~Oօ��^|i
�
���Dc�@�8d�H��A�jLF��6"��l�q���4(�,��=��[�Xh&�	��}��d�t�60Vfc����g�3��rjF�_x��t�._Q�Ҕ�E���2Z� -�:wF#��#�E�Ԇ��/lbxٖ�*曙%�h�Ygpf�fg�T4��]$�ECue�$� 	����u�R3�k��䁊�R3r���͆�1T�H�xp��&��f��xP~���ہ��&��CBfYk���0)ƤI�wqMz�w���y1(va��P2���'"�k�r��C�p��{���F@{��tip��3э�!�˞��=
�07A��n#p��Y+�A�S�OA�q�ڂ3�j�=FĆ1��!�(m*P��y�M{�F�����px,W�Yy��T��i�N{��_������j��y��/�$GX���M�LI�1i��CL����;܅�Pr���?6'b?�<����cz_z�]�>Jԁ�5+}�~!jU�	o���D��4�c�f�!f�	|�ً��AޝQ+�o�$�&0�|�c�`O�\z$Z8n�OB�lp�����.��Q��$[c`ML_�CQ�p���g�c!�H,���В2p9�!@���o��Z�Nb0���P�h�!k�BJ�?$h��W9"� ��:����Q�P�ث<�=�m0�F�h.D�
zAL^��� f��ګN9{��.0
�=6�k�򾺇����em�Ќ�[}��\���
��I�����X
���%xE�B+`c�0b�m�f"�Y�j��I��ѹZ+��4�ߩ��&��}��q5:s�����_q�5�*������+"K޶)�hil�:mc8�HŅE!`J�34}�8��
�Az����TA�ƣM�4�ĝ�%zd�t�YDԠ�
y�L�
X�a����$���o"�Yw
 2�s�a��/�z�Ͻ�c�zJ�>����W��4Rܞ�'����c��u��s<��bID�ۂ�v3�x�r��hI��
O�T.�H���$�5v����5b�8><՞\f���w��c�ia�/Ա#�0�:H�͹�&Z]�i�׸���Gq����{w�xw
^��B����p8}�Ew�qv=�t�+�q�:��A�q�[>�L����)!"1 #2A30$B�����Ps�,R;�GI�u6]i$@�<�)�Ŀ�Č��[W���O�U[e�+�_T�Y0���>�5� ��ِyǴi�Ѫ���o/�6��Lz�W%�^,{]1���:��?�/_����bl��?���g��nB���$P��	��j�K��c�4W����l,���Q��]�X6#MV���2+t1�5�1�o�f��!U
ֽR�k��M������ߤM�D=N����PZ�M�D3y��t4�q�t�4t/אW�����Ԙ��
n*��k�֨�ĵ�9��o��Y���mj��%���WC�F��FV�[z��f�V
mb��kI���뭒}n.��MEcaU%���}:�JZ�K�)Җ)!���
���u^���X��o6��݌����{��(�%BQ�>��
k��a#[3�c�+�*7�P�'�?3�0�?#�����ݦCX5J�[�
�5��&�5��p���¡Ki��@�;6�l�����*e���oW^�+Gt,�(�ڜ9��!0����:6W�a:�ⓢIY���Z�x�6YS5�:�B[t�@-Ð�ֿ���*�8��٘�U�c�&�~k�v�F��V���4��s_�s�%w��2��ս'62а�jo�k��
Lq�m^͟;9)N�!�yX�z?l]����E
���X���Ik@Ѫ��g��V��Dj�z�P,u��B��Ƅe�pYF�#�Qo\�<ֽ2V���ܼ�^Ɲ��ؚڐ�L���t��@��5	���a2��N��b77ed����sGX��v�g���?NJ۫�h��l�$�AX���[�+�̓RX��Cd���+����E��y���U�?�<�[�H�֦��!��+���f���^�)�W�cT�2k��,M������Q�d�QQ�eH�y*�n6>��Ǎ�W�,r�8���5�^�#+Z���3�V�����Z8WS>we�M�n������c'#��[g] ���ȷ���;L$뱖y��#[1���P�|������D
�e�&��O�j���m���b�)���z���OG�bV���qF��ek��7��Q�*%/�%J���<�h"�+x�'5Yċ��f�'d�զ@h�P��/����A�*��j�R���76����%����E[R�nK��Ԩ]i��c2�N������}J�A!X���d[�c�)�8x�{���VfP�����V7+w�Q�GM�k�Ľ?�)�UW���/9��S���.�`���X��
��]W�^,V�~�n���=��XIZ�Nj v��ln�W[X��NJ�:����4�af]��w-�^�K��J(�%��w�O�}:�r%+�eX��k�ԏ[7?�0[��U|����X�y����_�
8:+�$�iV��&�hѪ.Mlf��Ǜ��Y�U��R���nB\�>8�˗Y
��aЈ�P=*����F8y�J<y{:���9{)����a�+�h���i����-^lF�O�PT�WY�P��)櫱�dS�Z̨;�lk?��%Y.��}4�(���ũg�`�^݋w������~�m��H�W|��s��H�N=�<�P�ꌻg+by;�j��V�(�h�*�<l�aW�R��PA߱�$��O���H�wC�C_”�[¹��Y�w��>�KR��u3�Oky�&E^h��Y2Tԧ�O�ڮň۶���4W�eI�wU�j�Q����joL�-��O���S��$���o�!����D���-�V���)�:
�Z
2(�qkz�R��p�%��rXt�N���y�*�Ev�ɏlle&�T�S�^��ԭ�Y��,���l�#T�-\�S��Z�,���4�S���"�7�ߏ�U�ůqȆ��&�{J�besM���cr1��J0Ld��9Go�����?R
i��\��f�֘6�sr,��F�_�=
�V�����'_e�D?��I]��KNƫ�u�i����j����8�����6!Tj��^<W��Z��{��
���7u��Ym�/�e>W�u��L�Ӑ�*�괪���9��@�PZ��Gb������ћ�~��kU��ګt���y�V3���bu	�H/<6�M���O���¬��4������@���Z�Uw��AP�-�����խ���[�$��	��B�R5���P��o^�}��*���n7�~Dc\f0�UU�DѪ��֋<3��1�&��-��w��m�ƤLt"��ԸK��9(��y*�ҕ�Ű`���f"�BhNG�����x�"�&*��i'�:ot���*y�]�ŧ����"���(��܉�B�ˀT��[%�`ƿ�՗��C٘�x,J���m�w�,R ����A��:�
��65�u�5�'�WU�bV˥��=�@B>I��4~�:���찎�����&��Q����21%«2���_����#\�*�gɟ����S_mGé�h���4�[
~O�g�"*��S:E�u�A����?����ƻ�evj�}V�v��sc�O���B�_M]�tO�`���9�P��0TTO�Wbzi��h�c7�Y;c�U㷮��1��i:�ҺCE��vM;��h�L:��g�GT�V�a�6xn��j�����l�����l�I�<o^�+=m��Y�E�ЗY�,Xф�2�kJ���X������\Z�>�����P���z���K*��F����g�v�.­�;��2�ه�x����Vـ��Zo�,k�b���{/llt�C2��m��>���~���6�<������C�*��Ma��Ϳ�:�����΅�nnee,Z*�R�kH�����ɜWp�К����w��D]aL�-y�@}�m�R�r�
�(h�ůMJ��WTV�_�K9v: �_g�bD��-�X��R�.?J���_���G�A:��M{F�ae�(��O��X�@ڧ�0=n�+QHW\b��҇-	�ߪ����7�t���'���5�������?;������?;���3!1"A2Qaq #B���0Rb3r�����?*��*뤭]�U�F,��C�c���ةE�(37R�����J��9_,��"gqMu�`�eۜQl_��h*�/����S�CҠE��h{�*��K	�a�&��7�ji'�8s�	W�;��ץ�B�E-r�Wi6zm|�e!�n�s�C�t�	������{�-����e��k�Q�s�Y&B�exk��)��G���.N
2;�T�QO|�3Ul��/%LPr�>yM,h#�*R	��N�N_0���0��R��
�$ײ򬄠 )�
�T�:ͤ-:�vZ�.
�$r�"�8B���ۅ�p�`�^�OO��K�|&���e�.| ��;j��~�[���o�S ���a���C[3�kYq5�Z�s*XK���"�+��2`p��H]¢��K	�	�S�P��*2�"�js�W�{����b2J�5MA��jN�5���o>�TO(;
u���B["�4q<�.�;*�p�������N9-��(¨�U~	*�����B���.�9:g(F�
bV���dY�K{)&��O���x�q��<�8�e�أ�W�FK���(9���=�\X]88Z@�*�%���M�#��&�^�)��U+T%�ȁ�b6c�Չ�5Z����Us�Ť�A�0�΢��yD�]���h��Qv+�@��];\�Pڅ5����g��2��X[��ɾ�5����Na���}�� ��/M��p�s�|�Ӄ:�<Bx�v�D�bK�E���@=�*��A����pS�mw�E�5Z�ޢJh��~ʊ���m�q6@�������f��iz.ׅ�Z��~�t�n�A6�9l�(���T�?e5z���%��.��3o�"�0�M�s��O^����7������W�&�UZ=�
v�-Q0��a�p5(�4���U��W
�UY�"�9��<��D�<�*��9Z�5p1r�U*�bW�V�YG2��O�J��K�-��D��!Sn'tZu�酰�Q��M�yE��LJ �-sE���W��S�Y��Ҧ�n�1�+Pl��1T�lV�Ed>+)F�`��&���\O�4w����zxnԬ��	@��ʑ����^�r��D*#:$���nti
���?�Q��:u���K�b���-%����:idZ�d� �j.�'i�k\.��m���EL��Nk*J�=�E�@_M%a>�)�w*p�Qa3�UBl��6n;dAP�mON�<���τ�؊�C���)�u����T٨��#��h��[plV����2�iZ��6(�����@a��
q�
å[�
=�NW[^(�[�C�\6���&�P��W1\����+(��nc-?�0��m(q�J���%i��Pv�q���K���;����ڛ��Û�i���&�kK ����Ok#5�|��i�*Q�sb�i�F{��7���ӽ6�GdiU8�5SSPC�S�PV	���zf&�R���r,F��n�ʺ:��M��1Oe�5���iӤL�8�ި�5��L��ɭ���\���>�}0$�,��e>s��c.S]��ߠ�</��ei�V�J��tJЃbT��D�i����M�Z#̭z��_)�� �H5�nr�s�tB���]3O�48��
F$�o)�xҚ��)͘�t�E��dOd
�!�K'M�O��Gi!j
��S�IF��-�n�1���l�dJ�a���'��Q�3+K/��`���	F:]T�=0�(��:��Ch0�Q��Z�".�E��?k\��1�SS�mѼ�vA�D<�l47P*��,B;!*H���-E�vU�3�ܱp�ll��ʿ�I��H��3P�	��N�/i��?�zx��;�w��T��b8LZ���pp"`)�v� N�l�t7�qo!hs���5:tL��1=�E  ���-Lnҩ���+Q�	�����Q���'��:���`�@�E��".�pK�!i��-oe���F(�<�=r�~�Ae���ȱ(J:(�K�i��a�LM%��e��&��j�Zz����@��U}��g�Q�B�5�n#[.�G֔H�:b
���j���NU�@���K	�O�]eM(m�n��j$OV�je��gJ��R
�*�xm���i0;)�
�
�
�Psp�h���}��v#��m��rl���W̩[�UV����n<[-�F�a
��w`�I�
OJ�f��
����+DŽA��-kq ��;p���^��i�*H�[a|ʢF�=�#9C�J.`�v�P�C��n>�*�\"8Z�0�ۅ���gUE|��Y֫�R��[�U�oh��3�V��?�2��J���r~�o���|�u<e2�N�O�"K��*!H4R,�Kڣ�-��l���UΫj�V�,!
5Shʶ[T8U
F]B�NE_"�µUj���Q\��7''r�x@a��
K���󻅨u��xTR��P�i[�tgo����U	[�MT
MTM�$�r�JՍC�hU
�H�i]!v�Z$*����Q������1κ|-ZOSV�Ck��ߺq�yC����F��V��V�fj�w!%��ʢlI(��Vj��YP�A����
���]T�T���9S�����FZ����l`8Z�
{�Vt�*ۄ�]��2.�)��U��#9U���i�t��8r�+	��Z�5��J��F�-min'1b�7Nj�0�܄�f?j���N�/
�UIr��W�0���WM[�Иd,
B~ZpS�-��'	��,P�𢐫��U0�	��VP�T�\��x��d0�]�bQ��a6>�YX_�N�C��U�NV-.T�N�j+�/?>
2��Ce�N&��jm!LJ5�ɸ��)��D;Qr�FS�[�가c�\8(Q򶙎��/6���+�J��S�e-v��I!j�o�"��f:J��m����{��=�k���9��&>(��Hr��UC���B�E��St�eC�UvuTȅ|��mscʗU�ѴG+��i̇Ywj-�Zu�pӞ[^�)D>E�G����:��#�DA�S*Q��P;�"��i���T�^����}��P�;��l��*���Ol숏�Ġ;��
r��(!1AQaq����� ��0���?!�[W�PľT�j�����"���Q�����,!k�Yq��4ku�
_#�S0M���|Ņ��3n��N�Z�c;0��d3��5lq��Qɋ��B�%@=��Rc���<���0�
��k{�5!p�m����
�pW,F�Du1U�
�Ar�Y�vŽ����1	�ˉi`��|ʠ�\]F�9+�d�ir@��'��e��%�&�7�R����d�i�H��ڗ*�7����S�߲���=MS��H�T��N�9�~�W�5]=�Ux�v��J�ƻ�59 �CM��7x����?�7ۺ1DX��v��xs��,]�X��8bL#�2��U�"[���Sk�誷�|K�|S�*,����`�Yʃ�E�Z��q9�
~V6�VUn[k�x���]`ظ��z�i{���	�LQ
�[�/�SL7+˩`,�K�4o�`��K���8L����K6��t�j%�+^̠�@K̓Ɋ��9�(?R�x�����/�X�yA[c.��2t�fw��4�l&J�`�0��R��k���a�p
��ˎ��hyi5����%�=Ji2�.���.\M��=L��샢O�l:n�Q�<����%Z�3jŤ�����жR*��[�L��{�.V5��u*	���Kz�,�'��E#�P�Ά�	�o�)���,���.X�����|��y�1�a����Gȫ5yk�߮)�&:�du�%��]�|\���`����U�+qV�Q舩.V��_1����n<���G��emQ\"'H�\�3Bp�����+�,7�.K�I_�M
yH��䶴�S�Q��*vB�9��؋٩P=�J8.b��S5-��Av�]?�X���5LR��B���]�a'�
�eK��l=M�E �*�_�q.81��Q�ܮ�Oe<Z:�(�@�GYW��ҵs%E6��(��I��z���R�����5ƞ�W��0���.2ՙ��^Ó���d�N7(��:�,O	�m���AQ��DGJ�����9w��J9��5)v<��[��/���R�[�=�X��`�qr��V������:���.��Ih����ً�h�Vo
LkR/xJK��&Lw��E��,	�UL�
�UBn.�]E�gCmخ5�6�q�b���F�`q4:���+?���Ǒҟ!9��5t3���-��z��]ESޞe��M1u����&�H�2C�M�3	@��q��e��J��;�b��C��vcG$��1[�qP��m�Y����fx��PZj���R��������#H�<`5�%\c��
�u]��zWF�h����t�\�-�	U�"�Y��
�q�L�gqY[#E�S-y��n���_0�4]s0�C�-�
�C�B(:����������e�R�S2�C��-P��(?Ba��<̺qD!�n�ܥT����TJ�F�]v�xq2��-��h�Jzbd����T7�X�r�,L%�q��K<O�"��SO���<��Q�&#�Y��Ha���g�#�s�vz����h����w�m�meGj�Jx�Q���ˍ�5	mHQ�V.�S3%�
��jqx�v�U7z�K��q:�T�,���N�?�Rb�*�
��j�0�Uy�H��À���r�,��=��D�=b]
�l0�[P�g���^t���W>c����r`�6�W,"�4���8�*(�y��S+@�#�������/��C(e��n�pbz��X�d:���ܸ:��U�s+{1�s���W��%����؛�
t����j�憔Υ���i��$�r�j#�R��Pc�t���p�����O-�*��%��c@-�E\
�0!X�i���p35P2�X����g���Eg���;z���VHkja���Ϋ=�%q�W�d?�8�xgdeZș�|�������]=��b<�+�x�u/��}T���V�,�龜�h��U�n���&An�W�)Ȯ��.;�� � ���w�E�t��ћ�����%ZI��g2��Kܵ��=�֊�P�Uc�=J�N�)���Υ��vT�N����	]�k8v���,��7��˲�g-����^䏋�%s
&6E��q/[�f��0�n8J�g)��I�	@��:�ڬ]��m>> :)�4�����L�?n%�r�r����+�x�O-r��]��B�4��{<�;Q�0eX0d��ɓ%��U)G/�Ejg��������l�<J�������? �_�K�Nj��?S�n���p�
��Q��L���+ng0����7i�/|�{!���g!s�Ak%�*`�v��9���i��m]$���ܿ6����B�wİ7{T�Y����?��b��UCD�/uY���Xw��P�jоQ�u�J)�Qőn8cF��)�EQ\2��eތ�Z��'�LjaD�w,э�?�e��i��a�jc%����C�Y>e�d�bJ�ub��En��]T�S�.�� w�$�N�~`��2X0���P�>Ȇ7��T3���ǥbcX�-'D���b�Ne�U��j�<*_�2��\�"��8�X̷���nh�`Yi���
���p\�#F��o�@�>����A���\�L��BF?�쭺��Լ�L/c^]�1�$J����In˛��ndM��b+n/Pf� �&/r��U3u�DQ+L�q�c�+~�KJ�����r0vk@%.Y����ʧ�ب	�������0�d���b �e��
m�vޡ���>������J���A%�>���:'a�i��pHJ�PnW�P�v������d�
a�3��^dX��3��.�*.����[aE��1:@���n H6��1���'�?��t��L� .�h+��F
Կj̈z9�P�l��L������w��90�b�D�����{X�� (i���@��`�@*�5�$K=��721䤦&+'�@19�N�4�9��:[��X�(�B�g	��G���u�`���r�LqTu��f�f���.(���5,:��n1�rCB+�P��P����/ҠQ�S5���T��B��7�.8c�:Z�J���rN/���
�Y�-Z�w4�[���Tn�Ò�M1�`ۘ��#�-�{p��4��Q���M�ҡ�Nn
��uSt�\���g�)���X�O���-� n��;H�/
�Lom�(1z�I�ܸ�XLD�]\�k�w*¯�1Au�A�c�&f�*^�i;���"DP퉺N��b��o��_�Y�D4���S8FZp�=�&T/�%�z�A�J�UV5W.�.;B��T@[��N&�|�B�L��b��X����O���W	n��C��}y-Xp��bs+��R�o+��U0+K��g^��~�B��
j�bt�FJM�,\I~�3v&�x������C{�BKV�f)�Ia����5u�ǫ
�
C�.��+'y�6�_R���-�bUy�&�UKx�(�@X�Y��U�H�YM�0�_?q�W4Fb�c�B���CL�=���s�K!D3Q��"2�[3L..
�V�XP���0���LN�ʡ��ť{.�
���]!�[��Q>�p�g�h@Xn
o2���/W���l���E�Ŗ�,t�e�5���f���8���Gp��(^��J��4 ���,��Q��b���c��׆�o�c�����Ӏf%�
Q֥�E�`�2����B���f;���Xs�Hd$�
��y��LGd�0p��%��0��v��R���z�&���0I�>��„��xNe�������;�/WNb�̓��l�h�+�r�>��l�e ,rB�ׯ��JF鷨f
~�$�s1�Y����Kpn��a�,�3lz\��~A�z9A�y4�� ob�UR� �$�Ե�E���<V �k8��9ƙ�0���dND�Y6��f����k���3����g�V;���gR�ٵ�*U�u9K_1�
e����E�9��0a���g����L��F̻R�	�2�pي��չB�l��VBx���c�㘌�j����	l;T�W}E��,�ܢ79�q(F#X4q��>ȸ�<���r��x'0��𩣉a8IJ�|�!�]9��(NXH���g�*����&�$?�������.z�a����L_���3`�mJ��#x��g�јdKf��	�(#B��M�m�0��Rոp�c�s
��3*p��VAH��%l#6<GJӸ��y0Š�����2�R�\l��|�lb�ox���P��–��1���j[�̵g�S�L�L6�U��,ybs���	Y{�u��0�~�-�YQѝ�
�L*�$
t�c1���ɟ4?��bw3pIpo���|N�c8rAh)]B/(��*H�U���潗�o��
U����
�'��F�K�߬p���ٔ����(��E�>��,���a��<�?��оsz�R-İ�
��h�@�?���p}�bʩgx5s��1����a�K"�����]h�����L�!�Hr�@���A/q�g�}C���#�Q���ܿ��$v,C��vEθ����и}b%���4����F��d-"�"PM{L��/�6���d�B��{�=� a�k_ȝ\�u.`_u*E�pb�A݇DX��̨� �.%�=�w7��qn>YO�G�h��xh)��#]ts���.#U~�7J�7r��	X��N��>�d��(�ju�Vq�� �e���K3_ �W_	wȱ��0�B��R�eH��f�r#L���`d0�����T�o$O<JU�1��Af=�Ø����\ל��-�F��Rh~_�@��-*.�+Z��r��5GC
�<.� �F*-��/�w��
�.��_�0��%%Z�����eڎg��`�`M$�<R�C<��$S�8Ӏ<��4 �,0� q����B$���`�q� ��,��  �S�0I4�����C,���r�����<�	4N 38Q��E8�(�L 3� ��<`JSEBq
8�
0����O!
�
$�H!A!�RC,�aM<N�4�<���M���J�� @�0��2��N�"���!��P�,r�4��p�(�
,�D0@A �0s��$���0`�#G �� ����?�����?;������?;���&!1AQaq����������?(�Ww,�9�X��H(�e�%�w��T�_�p*5��bC���������=LJ[�&��LJ`��v��S�y^3�"i.mP������G�=��BR�FF�[o�*��x�6
:Lj�Uz������.���lN���x'�OBp8�
���2:W���]�3��^]��,#�Î�e��i����6^�XA ��|��Խ����D�o˓f�TԿ��h���Rx���,F ��5�&>�����ֿ�aWE}LS�����nԊ�R<�c	G�y7�Eě��b�p%��#z~=g$È�DG)�S���ZO8+��y�&������:���k���k�k`s�
"I�ڟ�N
�����#��7Tۅ������>��ı�J�9��hE!���ca�q�~KBݞ^��W��c)�4�bIk�T����a�m�A_�9��l8�=�]��aQt��̐{Go�OA=�U
�F�>B�̀ZIFc'J�З�� DA��h$/�D�"x¾b��R�y�A��o����bV�Ay����y߀�c����o퓏uI���a��S�����"igY�8�p���
���_����Ew�/�Z���&D��a\��c�3�E���;%���M��p�G5�ň�������㜔� K{�%�&�Q,?��'rkS�?<��m��3��G���z�4�^�P&��w��
A1����xBp4���+B;0ˈ����W.Bܧ4��R�ⷱ4��9RS5Lq^��B��	ۼ�K#�c���e6�p�.��'\� xo�a�P�����JJ��H��jJ���7�՗��zxȬB����q
���C:�NG:`?��̺�6>�<$d:;No�'JY]���<@��U�Ö�n�7-]�/'�6�0�nK�����f��!���y�r�1��kLw{_�$ȑ�n��o�H����F���V���L��Z����/�����=�����S4�n�EP�ю��s��@O~q�Gd"������x�u�丄����%(�(�����C"6�x�
���-�\���B9
s����n$k�<�q�D˯7^���bH]���W$MΝ!�8�InrX�G2�tJ&��a:��b5Y�
x6�-'�ٜ`t��[������螌b^�.�^N7��ձ�7��%������|"=8�A�\V%504��c�,��k�)6����C��**p�:?8�?�c����V�I�Z�|���]e��	��i�<��b1��P��5��\0��?���ޏn#A`E��߷��PK��qi�Yb�2���� j���}L&Be_��0r���q��G@��%��A���m����V����D���<�U#v=�m��I���ۍ����|:���2��r����;OoW�5���y��/
�&�oyx� �/{�5�(��8Y�(��L�ϮyB��q@3D�^p �}������]&t��o!��rJl�C�?xh&Hz͹S�7(�	�8���<̝[����dSZ,׬,i��=�<�>J`PQoySB5��]�9�F�bA؎��Co"��^�ro���A7ݿ��ިݸ��
������"�dF�z�>젻�<�T�Kd>>�pa
�x���4�s�AzN�1cs����A�8k�<a���+�����5��6�'AC�%�C���9�p�������g@1:�zx�8���.2P6�j��,�a�E��GI2-֭1��sQ}üf`a�y͈	�������?��7�r�u�K���.���.I�^��G�yPM�G8��Ɋ�sXc.���4I�bNPɥ�w9Ģ�^���o��\D��k_9Ĉ�C�����0��}ް�$R<�1�wT�&��e�::�ɤ�1Q��9�K�{k�L/c�8�f,'D��Ϩ(۬ca���a��z��a��sֶߜ�t��ί���N�js�:Y�<��P]��sx�]+G<^�tE�P޺�&��5W�v�K��{����s)�.V5�"|xë�"TOV�)
�����;�OSg���5{9��j�W�I�o&%^5�I��?
�
,р�WP�$��NHq��'�8{�X/[x��u@A!�
KPmq����
T��X!��ҩ���"|2F�逥bx�Q��G�D����[�����X���s�0�=��/w��R�떚�I�[��T���
���;C��p��"�aWFDL�/�`}�Ř8Z����a��3��if'��_�i���d�@q���4,@ی>�X�*�Z���L߃]OXC�|c�)�7Q!?����,�Eռ�X3��t�[�����`%YR�?k�/��x�����=��<��o��eb��˼@��*po�|9��"i��2�Ib�(
�/Zu�P1�"X�NG&e�����
��Dy1�ȗM�L��P������P~��N���$K)Cd\c�:-�c�6��|f���	y���F�S�4�I�8T���X��XH�(���(�0Cߌ�������)���[�fd)�X)��7o�E���[����D����9��pk�`U���ʂJ����j���x16�͈�>K���r,Ѯpx�c%���
ɾ�mx͓�M17�`��
R�1}a�����z���pM6{�qR(��7L��P����E�Q��C���GC_8΅���{�F����,n�!xd5�f��1T�o,���e�8��́�d�pP~i�ȅֽk@)����U
4GY>�r#��	Q@@iu�X�;	��AR���s
Ĩxq��m(�?D<Lb`"9���1�^�(H�;�]\hz��!Θ�	Л<��0u�O`吒M�s�J���󊔷�:��
ط��&���o�O��4��{1�<�.���9��5�9$S=3eW����Kxy���ETZE��6B����\b���㤽���#�h!5=N�b����~$��ޭg�$���7��,W�w��Z$��?�����S�_�nuS�����|h��SDkF+
-G9
A��&9
g��nIX��c�uK'��s	��7�� M&�?y|WY�e���&LQ�Ӊ ��L��ܹ�UҺ�t\�h2(U'�1P._b��,�i�l8�8t+������W"8���w���Bگ|f�!�&R��-�3�l�F��ph!|Phw����*}8ys���d.w
�#�^�K����8S�v��T�23����O8@>�wф\h����8� �88�:�8��aE�
t���?	�N��̥R�_t.%;AǷ|��P�w�0���'�w��3f)6�>�&`�����p�x��V��y7qo�Zn��ӓFUQJ�͞����o(Žy&3��L��.�n����oz��t�����5��%F��c�̀�@�'�i���,5��C�8�Â�|I���f[���~�=���� 
N�b�?�0�8O�_ː��.���!T��
W�⮁Z�����p�o
���iW��v�UzS%?��|�Jw���Z�Ʌh6�9����,X����&�N�s�N����jY	��0�so]re \ۘ�P-�$�$�����js����x���.z1�6B��(�`�w�8���We�|O7����7�W�zV8�[Џlb[��%�y9�/
jk?��
��O>�(�]�uKQ������B����L������,��j�����o�8��V����2����4@�2,�	m��g]��C_����o�Q�!e��
+��hi�|bB�P~�@���h�gMy��s@���N���W5�R�d!�6jp�xZSnS돬pѢ�_�2�sy1��Ivx��)��c��� gw��=a���>M����9�Dc����^��<��QDѠx��'�|��Q����M4��Y�@�5��9?����[�"�DQ�[+PkX.ߌ�`�og���<'��u���	�"0�3U��_�`��PU<�<@�,��rС�,�?h����?@/C���@������j2��묿�C}���[K�z�2GO��ii���4�?��OSA3x�K|{�P��Fc�
r��ņ���q'9+��QZ�5�j,�Lp��p!D�v>90c;�댐���_��]�N��L�����r}��f���r�US�`&�	�M9x(˭,�\���[,��"�+�c�E�����)�xl��G�g�����K�{M8���mi�c�ʥ���٦Sf�L�p�8]�م[#0@�|����
��á�ۃ��2�z3o��V�x�(�4��CTZ]���yT@��㌼����,y>E:ב�JM
�w�x�����7~��Dy1f��79��"��C� ���h�A�2�mw��oR�Og��fվ#�LKE5^�
h4�u����k���-ēir��+�&�xLm�=� 0���`����ra����
��c���I%,aj�k��#��c�|������=�,��\~�"��G�X]w�wO�}Ĝ	�������-��HŽ�FzĆ~�z��S������R�ʊSER���ti�˂�.ROY��B����[�o����\�ܡŋ�a
1`|�с��!Aǚ�w���Tv9�!��SW�BxLo#�E�
&��_8)�q��	Dk��#Jȏ���"p>�OQ�&'��]�SQ5y��x|9�(���;���H�����ڹ����N.��8��v��q7yg^.L��M�� ��f4�5�6�]`�m��2�hX]6��nGػɲ�ڄ7��HtWˑ�����o�
bC��ᬎS׌:lV��Z�]���'�-�	_����	6�y#��G��R��?�@"B��c�86<��(��+9�8����F�/���6OoW�槣8��Gגc"�?�)m���X�
'0������v���4#�^#���051#wJ���MP����'�ԧ�L�J4m����睲�!5���3P�5��']�~pg[�9�_c��0R�Il��Es1!s�����N�;2=6e��!���p_Z�ꢵ��?�?�'�����9����Oa���M'���w�dO�r��1<��\S:�,.$���R�8�����ǯ�E�k$���9���~���TEN&X�iw�4�x#@��^�V�rl������L����z�Γ��/?Xd
	��"mI�qW_x��K��pML~nK�Ej�����EM�$0�
��j�A^z9)�R�h�}bՆϬ��������ƿ�8�/ί_^��%���	&������ʹ
-��|xPjbҷ����F���Ґ9}a	�Ag��r|���RE��tC�}�tp\�u;"��}�,Đ7C�O���= �����%Jw��΀^?�9�h�~-�g(m�"�߼�l������Ͽ����5��G���@�\�
6ӆ��.)��”���cױ!��sBm���L3k�g����<g��P�\������P�}s�%�����{��b�p�����9�^����@�X����(M�i��(h7�d�؝.x1㇓��N6	���!�i 
9���i�	�6ˢ���W��&U<�+�YWg�)�BP{���t���lVC��Ԧ�Z�PM�f�T���#�������0ڛ�9����D�5�����s�T�}}dd���¦�^�]���Su��m@2uls�0����L<:Ѓ�q�k�θjh��<��q���AT���]�Z%u�笫�8��*l�i�pu���q��s;�S�s�@O9$�(�!l{i��r�#�����o�!��i��W3�r�",2`%&^LJl�|br܃�k{�4�6��;���p�L��x�ɢ9+�R�!A�0.,�]s���
��P1L�@�VVo/�	�����J����Z��ߗb���}�_n�*�0�F����ddH�5Qۘp����pmb��%q.����)2HvrO<g�;��_��r_��#f��19J�缄�9&	���;}�`|`|�H#�D��G��ʇ����p��,2&���@
���\?9����`Q;0`�rc$�����+� �����@��\bϋB"_-9!pin^`Ш�QFW��/�65;]Ȋ��{�+m�Z�$!�H��^�A��r7�]<:��pI��Âo`A�+�͘�Ӆ���o@$hw���Z���ʒg��x9�,�����K��n����SHW6~p��J��02�����R۫��xE��9�D�&[��p#���@�#EȖ·"���F�`Sx��QF�ox��ߗ�

��=���8���F03j��O�"�`�'���,,�咥g��2�\'�qSR0�X�mH@�_K�.��nuAѣ`�7�5ۥ�T��J"@�~0�oDnn�����+O0)͙l=0H���y��R�N�"&;��E�9A��.F-gJi���z�D:!S��� <�!0(�k [dsLa�m�iw���I�9����˒��k��8�8�'�*��˅������c��A��
U������
<|�(��k:[M�_��a��^-`�.+�Ϝ����W�9�6�?������J������xJ�K.9
mgyl��0�i+N��bXL�
bGTn��'N7��7N����ʲ�ܦ,����
R��ؚtc�R�.���*v����Ð��U�����pQ�����B�#�Ly�D��'�\8�Y]���tQEcJD�ã8�an�L�9�O���"ѷ:�gˡ�ru
���m�x.p0i�o�Wt�����ap42o�$E�m��J�Z�F�c_@ք<ܫᚶǜb���S]洭a��s7�����Y˗!w#��N>^3�`f�|�� �.�e��8}�MB(u|�8T�'��P��ۯ&�1R6&C`�{�d�A�x?�+�Hӽ�'Q��b�<_�aTJx�q����������>3�#y׌u���1�GO�����1�г�@ᬎ����.��.uht�����a!���{C�&��g!����Ti�����˲�jua~�=Ge��hN�9A�ȸ�0�z�\Q��XS��!�ͧ`@J�U����O�kH����*ADJk}^�8Pk���PhZ?�U.�r�׵�s�`�pt�����oc�q���N�C/(�D;�7ѧA��s����<��x˽a2���aC'$��r���ٖ[��y |�(�6;;���ĺ�@;��tAi��Y�������QDH��)�,��A�с���d���3cM=8P�C�����&q�6&��z�dͼ�8W��3���q5�ђ�G����!�(�e�Jz�:�24޻�_�8BDM�<�f�]>p�.��޹�GH��.L���ݎ�Èp8���o�U_&b+�#&��bG�
��Lpp�[���,�p���fEcGx�7ez�dN��Ýp:�$����o2�E��C,<s��i��J�ҧ�ac`��h��>pr�u�b��"��5YHffl%���\�%d�}�����z�'n����͙��������^����5��X�/�q� B E4Cؘ���{܅�-�~�H����=`6��?���a���-P�u��^@�)��L
B3a'��Lj�9r��`���ED���
��p�$RV��sH�G��X��ܙ��� ,*�q��Px�:�n]�lx��yP�k������S���Û��CoȜd�jb�2\��3X8]M�Ai8�`D�u�K��-q^3C�T��/�7�s��4�s������q5���_#�	�@��Ϭ5(:ـ)h'���&]T8�b�'�F(C�q��H��]s�rPU�#�U���DM=��跌hM�&
*-�x�a
��2%��z����g1Ry�PaIN<`d��.1���8��x,H��Us��widgetkit/application-5246cac7.js000064400001322002152177723720012551 0ustar00var widgetkit = widgetkit || {}; widgetkit.templates = {"media":"<div class=\"uk-modal-dialog uk-modal-dialog-large wk-noconflict\" data-media-path=\"images\">\n\n    <div class=\"uk-modal-header\">\n        <div class=\"uk-h2\">{{'Pick Media' | trans }}<\/div>\n    <\/div>\n\n        <div>\n            <span class=\"uk-button uk-button-primary uk-form-file\">{{'Upload' | trans }}<input id=\"wk-upload-select\" type=\"file\"><\/span>\n            <button type=\"button\" ng-click=\"vm.addFolder()\" class=\"uk-button\">{{'Add Folder' | trans }}<\/button>\n            <button type=\"button\" ng-click=\"vm.remove()\" ng-show=\"media | filter : { selected : true } | length\" class=\"uk-button uk-button-danger\">{{'Delete' | trans }}<\/button>\n        <\/div>\n\n        <ul class=\"uk-breadcrumb uk-margin\">\n            <li ng-repeat=\"folder in breadcrumbs\">\n                <span ng-if=\"$last\">{{ folder.title }}<\/span>\n                <a ng-if=\"!$last\" ng-click=\"vm.open(folder.path)\">{{ folder.title }}<\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"uk-overflow-container\">\n            <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-large-1-3 uk-grid-width-xlarge-1-4 uk-form\" data-uk-grid-margin data-uk-grid-match=\"{target:'.uk-panel'}\">\n\n                <li ng-repeat=\"folder in media | filter: { type: 'folder' }\">\n                    <div ng-click=\"selectItem(folder, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"folder.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div class=\"wk-thumbnail wk-thumbnail-folder\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-truncate\">\n                            <input type=\"checkbox\" ng-if=\"folder.title\" ng-click=\"$event.stopPropagation(); folder.selected = !folder.selected\" ng-checked=\"folder.selected\">\n                            <a ng-click=\"vm.open(folder.path)\">{{ folder.title || '..' }}<\/a>\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n                <li ng-repeat=\"file in media | filter: { type: 'file' }\">\n                    <div ng-click=\"selectItem(file, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"file.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div ng-if=\"file.media\" class=\"wk-thumbnail\" style=\"background-image: url('{{ file.href }}');\"><\/div>\n                            <div ng-if=\"!file.media\" class=\"wk-thumbnail wk-thumbnail-file\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-nowrap uk-text-truncate\">\n                            <input type=\"checkbox\" ng-checked=\"file.selected\">\n                            {{ file.title }}\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n            <\/ul>\n        <\/div>\n\n        <div id=\"wk-upload-drop\" class=\"uk-placeholder uk-text-center\">\n            {{'Drop files here' | trans}}\n        <\/div>\n\n        <div id=\"wk-upload-progressbar\" class=\"uk-progress uk-hidden\">\n            <div class=\"uk-progress-bar\" style=\"width: 0%;\"><\/div>\n        <\/div>\n\n    <div class=\"uk-modal-footer\">\n        <button type=\"button\" ng-click=\"vm.close()\" class=\"uk-button\">{{'Close' | trans}}<\/button>\n        <button type=\"button\" ng-click=\"vm.select()\" ng-disabled=\"!(media | filter : { selected : true } | length)\" class=\"uk-button uk-button-primary\">{{'Select' | trans}}<\/button>\n    <\/div>\n\n<\/div>\n","picker":"<div class=\"wk-noconflict\" ng-controller=\"pickerCtrl as vm\" ng-switch=\"vm.view\">\n    <div ng-switch-when=\"content\">\n\n        <div class=\"uk-modal-header uk-form uk-flex uk-flex-middle\">\n\n            <div class=\"uk-flex-item-1 uk-h2 uk-margin-remove\">{{'Select Widget' | trans}}<\/div>\n\n            <input class=\"uk-form-width-small uk-margin-small-right\" type=\"text\" ng-show=\"data.content | length\" ng-model=\"search.name\" placeholder=\"{{'Search...' | trans}}\">\n\n            <select class=\"uk-form-width-small uk-margin-small-right\" ng-model=\"search.data._widget.name\" ng-options=\"widget.name as widget.label for widget in vm.widgets\" ng-show=\"data.content | length\"><\/select>\n\n            <div class=\"uk-button-group uk-margin-small-right\" ng-show=\"data.content | length\">\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'list')}\" ng-click=\"vm.setViewMode('list')\"><i class=\"uk-icon-bars\"><\/i><\/button>\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'blocks')}\" ng-click=\"vm.setViewMode('blocks')\"><i class=\"uk-icon-th\"><\/i><\/button>\n            <\/div>\n\n            <button class=\"uk-button uk-button-primary\" type=\"button\" ng-click=\"vm.createContent()\">{{'New' | trans}}<\/button>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin ng-if=\"(vm.viewmode == 'blocks' && data.content | length)\">\n            <li ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n\n                <div class=\"uk-panel uk-panel-box uk-panel-box-hover uk-visible-hover\" ng-click=\"vm.update(content)\">\n\n                    <div class=\"uk-panel-teaser uk-cover-background wk-image\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n\n                    <a class=\"uk-position-cover\" ng-click=\"vm.update(content)\"><\/a>\n\n                    <p class=\"uk-h4 uk-margin-top-remove uk-flex\">\n                        <span class=\"uk-flex-item-1 uk-text-truncate\">{{ content.name }}<\/span>\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\"><\/a>\n                    <\/p>\n\n                <\/div>\n            <\/li>\n        <\/ul>\n\n        <table class=\"uk-table uk-table-hover uk-table-middle wk-table uk-margin-large-top uk-margin-large-bottom\" ng-if=\"(vm.viewmode == 'list' && data.content | length)\">\n            <tbody>\n                <tr class=\"uk-visible-hover-inline\" ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n                    <td class=\"uk-h4 uk-link-reset\">\n                        <a ng-click=\"vm.update(content)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n                            {{ content.name }}\n                        <\/a>\n                    <\/td>\n                    <td class=\"uk-h5 uk-text-nowrap uk-text-muted\">{{ vm.getWidget(content).label }}<\/td>\n                    <td class=\"wk-table-width-minimum uk-text-nowrap\">\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\" title=\"{{'Delete' | trans}}\"><\/a>\n                    <\/td>\n                <\/tr>\n            <\/tbody>\n        <\/table>\n\n        <p class=\"uk-text-large uk-text-muted uk-text-center\" ng-hide=\"data.content | length\">\n            {{\"You haven't created any widgets yet.\" | trans}}\n        <\/p>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" type=\"button\" ng-click=\"vm.cancel()\">{{'Close' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentConfig\">\n\n        <div class=\"uk-modal-header wk-modal-header-blank\">\n            <div class=\"uk-h2\">{{content.id ? ('Edit %content%' | trans: {'content': content.name}) : 'New Widget' | trans}}<\/div>\n        <\/div>\n\n        <div class=\"uk-modal-header uk-form\">\n\n            <select class=\"uk-form-large uk-width-1-1\" ng-model=\"content.type\" ng-options=\"type.name as type.label for type in data.types | toArray\">\n                <option value=\"\">- {{'Select Content Type' | trans}} -<\/option>\n            <\/select>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n            <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: 'true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                    <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                    <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                <\/a>\n\n            <\/li>\n        <\/ul>\n\n        <div ng-show=\"(data.widgets | toArray | filter:{core: '!true'}).length\">\n\n            <h3 class=\"wk-heading\">{{'Theme' | trans}}<\/h3>\n\n            <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n                <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: '!true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                    <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                        <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                        <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                    <\/a>\n\n                <\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" ng-click=\"content.id ? vm.editContent(content, 'content') : vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n            <button class=\"uk-button uk-button-primary\" ng-click=\"vm.editContent(content, 'content')\" ng-disabled=\"!content.type || !content.data._widget.name\">{{content.id ? 'Apply' : 'Create' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentEdit\">\n\n        <form class=\"uk-margin-remove\" name=\"form\" novalidate>\n\n            <div class=\"uk-modal-header uk-form\">\n                <div class=\"uk-flex uk-flex-middle\">\n                    <div class=\"uk-margin-small-right\">\n                        <img ng-src=\"{{ widget.icon }}\" width=\"30\" height=\"30\" alt=\"{{ widget.label }}\">\n                    <\/div>\n                    <div class=\"uk-flex-item-1 uk-margin-right\">\n                        <input class=\"uk-form-large uk-form-blank wk-form-blank uk-width-1-1\" type=\"text\" ng-model=\"content.name\" placeholder=\"{{'Name' | trans}}\" required autofocus>\n                    <\/div>\n                    <div>\n                        <ul class=\"uk-subnav wk-subnav\">\n                            <li ng-class=\"{'uk-active':(vm.include == 'content')}\"><a ng-click=\"vm.setView('contentEdit', 'content')\">{{'Content' | trans}}<\/a><\/li>\n                            <li ng-class=\"{'uk-active':(vm.include == 'widget')}\"><a ng-click=\"vm.setView('contentEdit', 'widget')\">{{'Settings' | trans}}<\/a><\/li>\n                            <li class=\"wk-subnav-divider\"><a ng-click=\"vm.setView('contentConfig')\"><i class=\"uk-icon-cog\"><\/i><\/a><\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div ng-show=\"vm.include == 'content'\" ng-include=\"content.type + '.edit'\"><\/div>\n            <div ng-show=\"vm.include == 'widget'\" ng-include=\"widget.name + '.edit'\"><\/div>\n\n            <div class=\"uk-modal-footer\">\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode != 'edit'\" ng-click=\"vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode == 'edit'\" ng-click=\"vm.update(content)\">{{'Close' | trans}}<\/button>\n                <button class=\"uk-button uk-button-primary\" ng-click=\"vm.saveContent(content)\" ng-disabled=\"form.$invalid\">{{'Save' | trans}}<\/button>\n            <\/div>\n\n        <\/form>\n\n    <\/div>\n<\/div>\n","custom.edit":"<div ng-controller=\"customCtrl as custom\">\n\n    <div class=\"uk-grid uk-grid-divider uk-form uk-form-stacked\" data-uk-grid-margin>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-1-4' : ''\" class=\"uk-width-medium-1-3\">\n\n            <div class=\"wk-panel-marginless\">\n\n                <ul id=\"js-content-items\" class=\"uk-nav uk-nav-side uk-sortable\" data-uk-sortable=\"{dragCustomClass:'wk-sortable wk-noconflict'}\" ng-show=\"content.data.items.length\">\n                    <li class=\"uk-visible-hover\" ng-repeat=\"item in content.data.items\" ng-class=\"(item === $parent.item ? 'uk-active':'')\">\n                        <div class=\"wk-subnav-right uk-hidden\">\n                            <ol class=\"uk-subnav wk-subnav-icon\">\n                                <li>\n                                    <a ng-click=\"custom.deleteItem(item)\"><i class=\"uk-icon-times\"><\/i><\/a>\n                                <\/li>\n                            <\/ol>\n                        <\/div>\n                        <a ng-click=\"custom.editItem(item)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + custom.previewItem(item) + ')'}\"><\/div>\n                            {{ item.title }}\n                        <\/a>\n                    <\/li>\n                <\/ul>\n\n                <p class=\"uk-margin\">\n                    <button class=\"uk-button\" ng-click=\"custom.addItem()\">{{'Add Item' | trans}}<\/button>\n                    <button class=\"uk-button\" ng-click=\"custom.importItems()\">{{'Add Media' | trans}}<\/button>\n                <\/p>\n\n                <div class=\"uk-form-row uk-margin-large-top\">\n                    <label class=\"uk-form-label\">{{'Settings' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['random'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['random']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Random Order' | trans}}<\/label>\n                    <\/div>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['parse_shortcodes'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['parse_shortcodes']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Parse shortcodes' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-3-4' : ''\" class=\"uk-width-medium-2-3\" ng-show=\"item\">\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-title\">{{'Title' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <input id=\"wk-title\" class=\"uk-width-1-1\" type=\"text\" ng-model=\"item.title\">\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\">{{'Media' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field-media title=\"item.title\" media=\"item.media\" options=\"item.options['media']\"><\/field-media>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-content\">{{'Content' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"editor\" id=\"wk-content\" class=\"uk-width-1-1\" ng-model=\"item.content\" rows=\"10\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-link\">{{'Link' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"text\" options='{\"attributes\":{\"id\":\"wk-link\", \"placeholder\":\"http:\/\/\"}, \"icon\":\"link\"}' ng-model=\"item.link\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\" ng-repeat=\"field in extrafields\" ng-show=\"!custom.editfields\">\n                <label class=\"uk-form-label\" for=\"wk-field-{{ $index }}\">{{ field.label }}<\/label>\n                <div class=\"uk-form-controls\" ng-switch=\"field.type\">\n                    <field-media ng-switch-when=\"media\" media=\"item[field.name]\" options=\"item.options[field.name]\"><\/field-media>\n                    <field ng-switch-default type=\"{{ field.type }}\" options='{{ custom.getFieldOptions(field, $index) }}' ng-model=\"item[field.name]\" options=\"item.options[field.name]\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-panel uk-panel-box uk-panel-box-primary uk-margin-large-top\" ng-show=\"custom.editfields\">\n\n                <h3 class=\"uk-h3\">{{'Manage Custom Fields' | trans}}<\/h3>\n\n                <div class=\"uk-margin uk-sortable\" id=\"js-fields-items\" data-uk-sortable ng-show=\"extrafields.length\">\n                    <div class=\"uk-margin-small\" ng-repeat=\"field in extrafields\">\n                        <div class=\"uk-panel uk-panel-box wk-panel-small\" ng-switch=\"(custom.editField==field ? 'edit':'')\">\n\n                            <div ng-switch-when=\"edit\">\n\n                                <div class=\"uk-grid uk-grid-width-1-3\">\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.name\" placeholder=\"{{'Field name' | trans}}\" disabled>\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <select class=\"uk-width-1-1\" ng-model=\"field.type\" ng-options=\"f.name as f.label for f in custom.fields\" disabled><\/select>\n                                        <\/div>\n\n                                    <\/div>\n                                <\/div>\n\n                                <p class=\"uk-margin-bottom-remove\">\n                                    <button class=\"uk-button\" ng-click=\"custom.editField=false\" type=\"button\">{{'Close' | trans}}<\/button>\n                                <\/p>\n\n                            <\/div>\n\n                            <div ng-switch-default>\n\n                                <span>{{ field.label || field.name }}<\/span>\n\n                                <ul class=\"uk-subnav uk-margin-bottom-remove uk-float-right\">\n                                    <li class=\"uk-disabled\"><span>{{ field.type }}<\/span><\/li>\n                                    <li><a ng-click=\"custom.editField=field\"><i class=\"uk-icon-pencil\"><\/i><\/a><\/li>\n                                    <li><a ng-click=\"custom.deleteField(field)\"><i class=\"uk-icon-trash-o\"><\/i><\/a><\/li>\n                                <\/ul>\n\n                            <\/div>\n\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"custom.addCustomField && !custom.editField\">\n\n                    <div class=\"uk-panel uk-panel-box wk-panel-small\">\n\n                        <div class=\"uk-grid uk-grid-width-1-3\">\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.name\" placeholder=\"{{'Field name' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <select class=\"uk-width-1-1\" ng-model=\"custom.custom.field.type\" ng-options=\"f.name as f.label for f in custom.fields\"><\/select>\n                                <\/div>\n\n                            <\/div>\n\n                        <\/div>\n\n                        <p>\n                            <button class=\"uk-button uk-button-success\" ng-click=\"custom.addField(custom.custom.field);custom.addCustomField=false\" ng-disabled=\"!(custom.custom.field.name && custom.custom.field.label && custom.custom.field.type)\" type=\"button\">{{'Add' | trans}}<\/button>\n                            <button class=\"uk-button\" ng-click=\"custom.addCustomField=false\" type=\"button\">{{'Cancel' | trans}}<\/button>\n                        <\/p>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"!custom.addCustomField\">\n                    <div class=\"uk-button-dropdown\" data-uk-dropdown=\"{ mode: 'click' }\" >\n                        <button class=\"uk-button uk-button-primary\" type=\"button\">{{'New Field' | trans}} &nbsp; <i class=\"uk-icon-caret-down\"><\/i><\/button>\n                        <div class=\"uk-dropdown uk-dropdown-up uk-dropdown-small uk-text-left\">\n                            <ul class=\"uk-nav uk-nav-dropdown\">\n                                <li class=\"uk-nav-header\">{{'Field Types' | trans}}<\/li>\n                                <li ng-repeat=\"(fieldname, fieldsettings) in custom.corefields\" ng-show=\"!custom.hasField(fieldname)\"><a ng-click=\"custom.addField({name:fieldname, type:fieldsettings.type, label:fieldsettings.label, core:true})\">{{ fieldsettings.label}}<\/a><\/li>\n                                <li class=\"uk-nav-divider\"><\/li>\n                                <li><a ng-click=\"custom.custom.field={};custom.addCustomField=true\">{{'Custom' | trans}} <i class=\"uk-icon-magic\"><\/i><\/a><\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Close' | trans}}<\/a>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"uk-margin-large-top\" ng-show=\"!custom.editfields\">\n                <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Manage Fields' | trans}}<\/a>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n<\/div>\n","slideset.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideset<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Dotnav' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav']\"> {{'Show Dotnav' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"above\">{{'Above' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['slidenav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'above'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-filter\">{{'Filter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-filter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['filter']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_position']\">\n                                    <option value=\"top\">{{'Top' | trans}}<\/option>\n                                    <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                                <\/select>\n                                {{'Position' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-stack.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Media Width' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-5\">20%<\/option>\n                            <option value=\"1-4\">25%<\/option>\n                            <option value=\"3-10\">30%<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">67%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"1-1\">100%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-align\">{{'Media Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-breakpoint\">{{'Breakpoint' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-breakpoint\" class=\"uk-form-width-medium\" ng-model=\"widget.data['breakpoint']\">\n                            <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                            <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                            <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Alternate' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['alternate']\"> {{'Alternate the media alignment' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Horizontal Gutter' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['gutter']\"> {{'Show the grid gutter' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter-vertical\">{{'Vertical Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter-vertical\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter_vertical']\">\n                            <option value=\"default\">{{'Same as horizontal' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Divider' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['divider']\"> {{'Show horizontal dividers' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-media\">{{'Animation Media' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-media\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_media']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-content\">{{'Animation Content' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-content\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_content']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                       <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"media\">{{'To Media' | trans}}<\/option>\n                       <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                            <option value=\"sequence1\">{{'Box\/Box Primary' | trans}}<\/option>\n                            <option value=\"sequence2\">{{'Box\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence3\">{{'Box Primary\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence4\">{{'Box Secondary\/Box Primary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-date-format\">{{'Date Format' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <select id=\"wk-date-format\" class=\"uk-form-width-medium\" ng-model=\"widget.data['date_format']\">\n                            <option value=\"full\">{{'Full' | trans}}<\/option>\n                            <option value=\"long\">{{'Long' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"short\">{{'Short' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","switcher-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_min_height']\"> {{'Min. Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-alignment\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-alignment\" class=\"uk-form-width-medium\" ng-model=\"widget.data['alignment']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Link' || trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_media']\"> {{'Link Media' || trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"middle-left\">{{'Center Left' | trans}}<\/option>\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                            <\/select> {{'Animation' | trans}}\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_background']\"> {{'Show panel background' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","accordion.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Accordion<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Collapse Items' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['collapse']\"> {{\"Don't allow multiple opened items\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'First Item' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['first_item']\"> {{\"First item is opened\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as media overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H2<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H4<\/option>\n                            <option value=\"h6\">H4<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","popover.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Popover<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Popover' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top-center\">Top<\/option>\n                            <option value=\"bottom-center\">Bottom<\/option>\n                            <option value=\"left-center\">Left<\/option>\n                            <option value=\"right-center\">Right<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-mode\">{{'Mode' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-mode\" class=\"uk-form-width-medium\" ng-model=\"widget.data['mode']\">\n                            <option value=\"hover\">Hover<\/option>\n                            <option value=\"click\">Click<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-toggle\">{{'Toggle Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-toggle\" class=\"uk-form-width-medium\" ng-model=\"widget.data['toggle']\">\n                            <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                            <option value=\"info\">{{'Info' | trans}}<\/option>\n                            <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                            <option value=\"search\">{{'Search' | trans}}<\/option>\n                            <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                            <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                            <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                            <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                            <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                            <option value=\"map-marker\">{{'Map Marker' | trans}}<\/option>\n                            <option value=\"\">{{'Custom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slide-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slide-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slide_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> {{'Interval (ms)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","parallax.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Parallax<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Background' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-translatey\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['background_translatey']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-color\">{{'Background Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-color\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_start']\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_end']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Min. Width (px)' | trans}}<\/span>\n                    <div class=\"uk-form-controls\">\n                        <label><input id=\"wk-media_query\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['media_query']\" placeholder=\"e.g. 1024\"> {{'Enable parallax effect only on devices with larger screens then the min. width' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Title' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Content' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Advanced' | trans}} ({{'Only Content and Text' | trans}})<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-viewport\">{{'Viewport' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-viewport\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['viewport']\" placeholder=\"1\"> {{'Animation end point, relative to viewport height' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-velocity\">{{'Velocity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-velocity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['velocity']\" placeholder=\"0.5\"> {{'Easing of the animation' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['target']\"> {{'Animation plays as long as media element is visible' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Width' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_small']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_medium']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_large']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slider<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Infinite' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['infinite']\"> {{'Items are looped and you can scroll endless' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Center' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['center']\"> {{'The active item is centered' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slider' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_hover']\"> {{'Toggle content on hover' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-background\">{{'Background' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-background\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_background']\">\n                            <option value=\"none\">None<\/option>\n                            <option value=\"static\">Static<\/option>\n                            <option value=\"hover\">On hover<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-image\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-image\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_image']\">\n                            <option value=\"static\">{{'Static' | trans}}<\/option>\n                            <option value=\"hover\">{{'On hover' | trans}}<\/option>\n                            <option value=\"second\">{{'Second image on hover (If exists)' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay_image != 'static'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['image_animation']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                                    <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                                    <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_link']\"> {{'Link entire overlay, if link exists' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","list.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">List<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'List' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['list']\">\n                            <option value=\"line\">{{'Line' | trans}}<\/option>\n                            <option value=\"striped\">{{'Striped' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title']\">\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                            <option value=\"content\">{{'Content' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"default\">Default<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Truncate' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_truncate']\"> {{'Max. characters' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_color']\">\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"muted\">{{'Muted' | trans}}<\/option>\n                            <option value=\"reset\">{{'Same as text' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","map.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content-map'}\">\n                <li><a href=\"#\">{{'Map' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Style' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content-map\" class=\"uk-switcher\">\n            <li>\n                                <div class=\"uk-alert\">Please add your custom Google Maps API Key in the <a href=\"index.php?option=com_config&view=component&component=com_widgetkit\">Widgetkit settings<\/a>!<\/div>\n                \n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-height\">{{'Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-maptypeid\">{{'Map Type' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-maptypeid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['maptypeid']\">\n                            <option value=\"roadmap\">{{'Roadmap' | trans}}<\/option>\n                            <option value=\"satellite\">{{'Satellite' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Controls' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Default UI' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disabledefaultui']\"> {{'Disable automatic UI behavior' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Type Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['maptypecontrol']\"> {{'Show type controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Map Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['mapctrl']\"> {{'Show map controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Directions Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['directions']\"> {{'Show directions controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-zoom\">{{'Zoom Level' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-zoom\" class=\"uk-form-width-medium\" ng-model=\"widget.data['zoom']\">\n                            <option value=\"0\">0<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                            <option value=\"7\">7<\/option>\n                            <option value=\"8\">8<\/option>\n                            <option value=\"9\">9<\/option>\n                            <option value=\"10\">10<\/option>\n                            <option value=\"11\">11<\/option>\n                            <option value=\"12\">12<\/option>\n                            <option value=\"13\">13<\/option>\n                            <option value=\"14\">14<\/option>\n                            <option value=\"15\">15<\/option>\n                            <option value=\"16\">16<\/option>\n                            <option value=\"17\">17<\/option>\n                            <option value=\"18\">18<\/option>\n                            <option value=\"19\">19<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker\">{{'Marker' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-marker\" class=\"uk-form-width-medium\" ng-model=\"widget.data['marker']\">\n                            <option value=\"0\">{{'Hide' | trans}}<\/option>\n                            <option value=\"1\">{{'Show' | trans}}<\/option>\n                            <option value=\"2\">{{'Show and enable Popup' | trans}}<\/option>\n                            <option value=\"3\">{{'Show with opened Popup' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.marker > '1'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['popup_max_width']\"> {{'Popup max width (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Cluster Markers' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['markercluster']\"> {{'Group markers on zoom out' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Scroll Wheel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['zoomwheel']\"> {{'Zoom map on scroll' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Draggable' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['draggable']\"> {{'Move map on drag' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Invert' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['styler_invert_lightness']\"> {{'Invert lightness' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-hue\">{{'Hue' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-hue\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_hue']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-saturation\">{{'Saturation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-saturation\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_saturation']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-lightness\">{{'Lightness' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-lightness\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_lightness']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-gamma\">{{'Gamma' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-gamma\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_gamma']\"> ({{'%from% to %to%' | trans: {from:0, to:10} }})\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Marker' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker-icon\">{{'Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-marker-icon\" class=\"uk-form-width-small\" type=\"text\" placeholder=\"{{'default' | trans}}\" ng-model=\"widget.data['marker_icon']\"> ({{'Color or image url' | trans}})\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","switcher.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'top' || widget.data.position == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['alignment']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'left' || widget.data.position == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Width' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","gallery.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Lightbox' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">Tablet<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Appearance' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"default\">{{'Image Caption' | trans}}<\/option>\n                            <option value=\"center\">{{'Overlay Center' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Overlay Bottom' | trans}}<\/option>\n                        <\/select>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['panel']\">\n                                    <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                                    <option value=\"box\">{{'Box' | trans}}<\/option>\n                                    <option value=\"primary\">Box Primary<\/option>\n                                    <option value=\"secondary\">Box Secondary<\/option>\n                                    <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                                <\/select>\n                                {{'Panel Style' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_center']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"link\">{{'Link' | trans}}<\/option>\n                                    <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                                    <option value=\"buttons\">{{'Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                                    <option value=\"content\">{{'Content' | trans}} ({{'If enabled' | trans}})<\/option>\n                                <\/select>\n                                {{'Overlay' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default + Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default' || widget.data.overlay == 'center'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_background']\">\n                                    <option value=\"none\">None<\/option>\n                                    <option value=\"static\">Static<\/option>\n                                    <option value=\"hover\">On hover<\/option>\n                                <\/select>\n                                {{'Background' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_image']\"> {{'Use second image as overlay if exists' | trans}}<\/label>\n                        <\/p>\n                        <!-- Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'center'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['hover_overlay']\"> {{'Toggle content on hover' | trans}}<\/label>\n                        <\/p>\n\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Overlay Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['image_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.link_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['link_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">External Link Square<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Lightbox' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox\">{{'Lightbox' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox']\">\n                            <option value=\"\">{{'Disabled' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"slideshow\">{{'Slideshow' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_caption']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"title\">{{'Use Title' | trans}}<\/option>\n                                    <option value=\"content\">{{'Use Content' | trans}}<\/option>\n                                <\/select>\n                                {{'Caption' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_nav_contrast']\"> {{'Invert slidenav color.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_title_size']\">\n                                    <option value=\"panel\">{{'Default' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                    <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Title Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_content_size']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                <\/select>\n                                {{'Content Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['lightbox_content_width']\">\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                    <option value=\"3-4\">75%<\/option>\n                                    <option value=\"4-5\">80%<\/option>\n                                    <option value=\"\">100%<\/option>\n                                <\/select>\n                                {{'Content width on xlarge screens.' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_alt']\"> {{'Show second media element in lightbox.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Button' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_link']\"> {{'Enable lightbox link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.lightbox_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">{{'External Link Square' | trans}}<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-lightbox-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['lightbox_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n"};

(function(b,g){b.module("Application",[]).factory("Application",["name",function(a){return b.extend({url:function(a,e){var c=[],f=this.config.route;b.forEach(b.extend({p:a},e),function(a,d){c.push(d+"="+a)});c.length&&(f+=(-1!=f.indexOf("?")?"&":"?")+c.join("&"));return f},baseUrl:function(){return this.config.url},templateUrl:function(a){return this.url("template",{name:a})}},g[a])}]).filter("first",["$filter",function(a){return function(d){return a("toArray")(d)[0]}}]).filter("length",["$filter",
function(a){return function(d){return a("toArray")(d).length}}]).filter("toArray",function(){return function(a){return b.isObject(a)?Object.keys(a).filter(function(a){return"$"!==a.charAt(0)}).map(function(b){return a[b]}):b.isArray(a)?a:[]}}).config(["$provide","$httpProvider",function(a,d){a.decorator("$templateCache",["$delegate","Application",function(a,c){b.forEach(c.templates,function(c,b){a.put(b,c)});return a}]);a.decorator("$templateRequest",["$delegate","Application",function(a,c){return function(b,
d){c.templates[b]||(b=c.templateUrl(b));return a(b,d)}}]);d.interceptors.push(["Application",function(a){return{request:function(b){if("PUT"==b.method||"DELETE"==b.method)b.headers["X-HTTP-Method-Override"]=b.method,b.method="POST";"POST"==b.method&&(b.headers["X-XSRF-TOKEN"]=a.config.csrf);return b}}}])}]);b.element(g.document).ready(function(){var a=b.element(this).find("[data-app]");b.forEach(a,function(a){var e=b.element(a).data("app");g[e]&&b.bootstrap(a,[e])})})})(angular,window);

(function(l,f){l.module("Application").factory("Translator",function(){return f.Translator}).config(["$provide",function(f){f.decorator("Translator",["$delegate","Application",function(f,h){f.locale=h.config.locale;for(var m in h.config.locales)for(var q in h.config.locales[m])f.add(q,h.config.locales[m][q]);return f}])}]).filter("trans",["Translator",function(f){return function(n,h){return f.trans(n,h)}}]).filter("transChoice",["Translator",function(f){return function(n,h,m){return f.transChoice(n,
h,m)}}])})(angular,window);
var Translator=function(l,f){function q(a,d){var b,e=Translator.placeHolderPrefix,f=Translator.placeHolderSuffix;for(b in d){var c=new RegExp(e+b+f,"g");c.test(a)&&(a=a.replace(c,d[b]))}return a}function n(a,d,b,e,p){b=b||e||p;if(f==g[b]){if(f==g[p])return a;b=p}if(f===d||null===d)for(e=0;e<k.length;e++)if(h(b,k[e],a)||h(p,k[e],a)){d=k[e];break}if(h(b,d,a))return g[b][d][a];for(var c,t;2<b.length;){e=b.length;c=b.split(/[\s_]+/);t=c[c.length-1];t=t.length;if(1===c.length)break;b=b.substring(0,e-(t+
1));if(h(b,d,a))return g[b][d][a]}return h(p,d,a)?g[p][d][a]:a}function h(a,d,b){return f==g[a]||f==g[a][d]||f==g[a][d][b]?!1:!0}function m(a){return"-Inf"===a?Number.NEGATIVE_INFINITY:"+Inf"===a||"Inf"===a?Number.POSITIVE_INFINITY:parseInt(a,10)}function x(a,d){var b=d;"pt_BR"===b&&(b="xbr");3<b.length&&(b=b.split("_")[0]);switch(b){case "bo":case "dz":case "id":case "ja":case "jv":case "ka":case "km":case "kn":case "ko":case "ms":case "th":case "tr":case "vi":case "zh":return 0;case "af":case "az":case "bn":case "bg":case "ca":case "da":case "de":case "el":case "en":case "eo":case "es":case "et":case "eu":case "fa":case "fi":case "fo":case "fur":case "fy":case "gl":case "gu":case "ha":case "he":case "hu":case "is":case "it":case "ku":case "lb":case "ml":case "mn":case "mr":case "nah":case "nb":case "ne":case "nl":case "nn":case "no":case "om":case "or":case "pa":case "pap":case "ps":case "pt":case "so":case "sq":case "sv":case "sw":case "ta":case "te":case "tk":case "ur":case "zu":return 1==
a?0:1;case "am":case "bh":case "fil":case "fr":case "gun":case "hi":case "ln":case "mg":case "nso":case "xbr":case "ti":case "wa":return 0===a||1==a?0:1;case "be":case "bs":case "hr":case "ru":case "sr":case "uk":return 1==a%10&&11!=a%100?0:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?1:2;case "cs":case "sk":return 1==a?0:2<=a&&4>=a?1:2;case "ga":return 1==a?0:2==a?1:2;case "lt":return 1==a%10&&11!=a%100?0:2<=a%10&&(10>a%100||20<=a%100)?1:2;case "sl":return 1==a%100?0:2==a%100?1:3==a%100||4==a%100?2:3;
case "mk":return 1==a%10?0:1;case "mt":return 1==a?0:0===a||1<a%100&&11>a%100?1:10<a%100&&20>a%100?2:3;case "lv":return 0===a?0:1==a%10&&11!=a%100?1:2;case "pl":return 1==a?0:2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?1:2;case "cy":return 1==a?0:2==a?1:8==a||11==a?2:3;case "ro":return 1==a?0:0===a||0<a%100&&20>a%100?1:2;case "ar":return 0===a?0:1==a?1:2==a?2:3<=a&&10>=a?3:11<=a&&99>=a?4:5;default:return 0}}var g={},k=[],u=new RegExp(/^\w+\: +(.+)$/),v=new RegExp(/^\s*((\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]]))\s?(.+?)$/),
w=new RegExp(/^\s*(\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]])/);return{locale:l.documentElement.lang.replace("-","_"),fallback:"en",placeHolderPrefix:"%",placeHolderSuffix:"%",defaultDomain:"messages",pluralSeparator:"|",add:function(a,d,b,e){e=e||this.locale||this.fallback;b=b||this.defaultDomain;g[e]||(g[e]={});g[e][b]||(g[e][b]={});g[e][b][a]=d;a:{for(a=0;a<k.length;a++)if(b===k[a]){a=!0;break a}a=!1}!1===a&&k.push(b);return this},trans:function(a,
d,b,e){a=n(a,b,e,this.locale,this.fallback);return q(a,d||{})},transChoice:function(a,d,b,e,h){var c=n(a,e,h,this.locale,this.fallback);d=parseInt(d,10);if(f!=c&&!isNaN(d))a:{h=h||this.locale||this.fallback;var g,k;a=[];e=[];var r=c.split(Translator.pluralSeparator),c=[];for(g=0;g<r.length;g++)c=r[g],v.test(c)?(c=c.match(v),a[c[0]]=c[c.length-1]):u.test(c)?(c=c.match(u),e.push(c[1])):e.push(c);for(k in a)if(w.test(k))if(c=k.match(w),c[1]){var c=c[2].split(","),l;for(l in c)if(d==c[l]){c=a[k];break a}}else if(g=
m(c[4]),r=m(c[5]),("["===c[3]?d>=g:d>g)&&("]"===c[6]?d<=r:d<r)){c=a[k];break a}c=e[x(d,h)]||e[0]||f}return q(c,b||{})},fromJSON:function(a){"string"===typeof a&&(a=JSON.parse(a));a.locale&&(this.locale=a.locale);a.fallback&&(this.fallback=a.fallback);a.defaultDomain&&(this.defaultDomain=a.defaultDomain);if(a.translations)for(var d in a.translations)for(var b in a.translations[d])for(var e in a.translations[d][b])this.add(e,a.translations[d][b][e],b,d);return this},reset:function(){g={};k=[];this.locale=
l.documentElement.lang.replace("-","_")}}}(document,void 0);

widgetkit/wk-scripts-cef2ef08.js000064400000124234152177723720012526 0ustar00!function(e){function t(e,t){var i=jQuery.Deferred(),n=document.createElement("script");return n.async=!0,n.onload=function(){i.resolve(),t&&t(n)},n.onerror=function(){i.reject(e)},n.src=e,document.getElementsByTagName("head")[0].appendChild(n),i.promise()}angular.module("Fields",[]).directive("fieldMedia",["mediaPicker","mediaInfo",function(e,t){function i(i){var a=this;a.selectMedia=function(){e.select().then(function(e){i.media=e.url,i.height=e.height,i.width=e.width,i.title||(i.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}))})},a.selectPoster=function(){e.select().then(function(e){i.options||(i.options={}),i.options.poster=e.url})},a.isVideo=function(e){return!(!e||!(e.match(/\.(mp4|ogv|webm)$/)||e.match(/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i)||e.match(/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i)||e.match(/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i)))},i.$watch("media",function(){return i.options&&!angular.isArray(i.options)||(i.options={}),n[i.media]?(i.options.width=n[i.media].width,void(i.options.height=n[i.media].height)):void t(i.media,!0).then(function(e){i.height="",i.width="",Object.keys(n).length>0&&i.options.iframe&&!n[i.media]&&(i.options.iframe.width="",i.options.iframe.height=""),e.type&&(i.options.width=e.width,i.options.height=e.height,i.options.type=e.type,n[i.media]=e)})},!0),i.$watch("options.iframe",function(){i.options.iframe&&(i.options.width=i.options.iframe.width,i.options.height=i.options.iframe.height)},!0)}var n={};return{scope:{media:"=",options:"=?",title:"=?"},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                          <i class="uk-icon-photo"></i><input class="uk-width-1-1" ng-model="media">                                      </div>                                      <button class="uk-button" ng-click="vm.selectMedia()">Select</button>                                  </div>                                  <div class="uk-grid uk-margin-top">                                      <div class="uk-width-small-1-2">                                          <div class="uk-overlay">                                              <media-preview src="{{ media }}"></media-preview>                                              <div class="uk-overlay-panel uk-overlay-bottom uk-panel uk-panel-box" ng-show="options.type === \'iframe\'">                                                  <div class="uk-grid uk-grid-small uk-grid-width-1-3 uk-margin-small-top">                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-h"></i><input class="uk-width-1-1" type="text" title="Width" ng-model="options.iframe.width" placeholder="width"></div>                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-v"></i><input class="uk-width-1-1" type="text" title="Height" ng-model="options.iframe.height" placeholder="height"></div>                                                  </div>                                              </div>                                          </div>                                      </div>                                      <div class="uk-width-small-1-2" ng-show="vm.isVideo(media)">                                          <div class="uk-margin-small-bottom" ng-show="options.poster"><media-preview src="{{ options.poster }}"></media-preview></div>                                          <a ng-click="vm.selectPoster()">Select Poster</button>                                          <a class="uk-margin-small-left" ng-show="options.poster" ng-click="(options.poster = \'\')">Reset</a>                                      </div>                                  </div>                               </div>'}}]).directive("fieldWysiwygeditor",["$timeout","mediaPicker","mediaInfo",function(e,t,i){return{restrict:"EA",require:"?ngModel",template:'<div><textarea name="wk_{{id}}" id="wk_{{id}}"></textarea></div>',link:function(i,n,a,o){if(window.tinyMCE){i.id=String(Math.ceil(1e3*Math.random()));var r=jQuery,l="wk_"+i.id,s=function(){var e,n,a=window.tinyMCE||window.WFEditor;window.WFEditor&&r("#"+l).after('<input type="hidden" id="wf_'+i.id+'_token" value="'+Math.random()+'">'),"object"==typeof Joomla&&(n=Joomla.getOptions&&Joomla.getOptions("plg_editor_tinymce",{}));var s=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar1||a.settings&&a.settings.toolbar1||"",d=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar2||a.settings&&a.settings.toolbar2||"",c=n&&n.tinyMCE&&n.tinyMCE["default"].plugins||a.settings&&a.settings.plugins||"";!window.wp||s&&d&&c||(c||(c="charmap,colorpicker,hr,lists,media,paste,tabfocus,textcolor,fullscreen,wordpress,wpautoresize,wpeditimage,wpemoji,wpgallery,wplink,wpdialogs,wptextpattern,wpview"),s||(s="bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_more,spellchecker,dfw,wp_adv"),d||(d="formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help")),s.indexOf("wk_media")==-1&&(s+=" wk_media"),window.wp||window.WFEditor||s.indexOf("button-2Article")!=-1||(s+=" button-2Article"),window.wp||window.WFEditor||c.indexOf("jArticleButton")!=-1||(c+=" jArticleButton"),e=r.extend({},n&&n.tinyMCE&&n.tinyMCE["default"]||a.settings,{menubar:!1,plugins:c,toolbar1:s,toolbar2:d,width:"100%",height:500,relative_urls:n&&n.tinyMCE&&n.tinyMCE["default"].relative_urls||a.settings&&a.settings.relative_urls||!1,setup:function(e){e.addButton("wk_media",{text:"",icon:"image",onclick:function(){window.wp?t.select({editor:l}):t.select().then(function(t){var i=t.href,n=t.title,a=t.width,o=t.height;e.insertContent('<img src="'+i+'" alt="'+n+'" data-mce-src="'+i+'" width="'+a+'" height="'+o+'"></img>')})}}),4==tinyMCE.majorVersion?(e.on("change",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("input",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("init",function(){e.setContent(o.$viewValue||"")})):(e.onChange.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onKeyUp.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onInit.add(function(){e.setContent(o.$viewValue||"")}))}});var u=new tinyMCE.Editor(l,e,tinyMCE.EditorManager);u.render(),o.$render=function(){try{u.setContent(o.$viewValue||""),r("#"+l).val(o.$viewValue||"")}catch(e){}},o.$render()};e(s)}}}}]).directive("fieldHtmleditor",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/assets/lib/codemirror/codemirror.js").then(function(){t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/htmleditor.min.js").then(function(){o.resolve()})})),o.promise()}var o;return{restrict:"EA",require:"?ngModel",link:function(t,n,o,r){a().then(function(){var a,l=jQuery("<textarea></textarea>"),s={mdparser:function(){}};s=jQuery.extend(!0,{},s,t.$eval(o.options)),n.after(l).hide();var d=function(){r.$render=function(){l.data("htmleditor")&&l.data("htmleditor").editor.setValue(r.$viewValue||"")},setTimeout(function(){a=e.htmleditor(l,s),a.editor.on("change",e.Utils.debounce(function(){r.$setViewValue(a.editor.getValue()),t.$root.$$phase||t.$apply()},50)),a.fit(),r.$render()})};i(d)})}}}]).directive("fieldLocation",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/plugins/widgets/map/assets/marker-helper.js").then(function(){o.resolve()})),o.promise()}var o,r=0,l=function(){var e,t=function(){if(!e){e=n.defer();var t=document.createElement("script");t.async=!0,t.onload=function(){google.load("maps","3",{other_params:"libraries=places&key="+(window.GOOGLE_MAPS_API_KEY||""),callback:function(){google&&google.maps.places&&e.resolve()}})},t.onerror=function(){alert("Failed loading google maps api.")},t.src="https://www.google.com/jsapi",document.getElementsByTagName("head")[0].appendChild(t)}return e.promise};return t}();return{restrict:"EA",require:"?ngModel",scope:{latlng:"@"},replace:!0,template:'<div>                                    <div class="uk-alert uk-margin-small-bottom" ng-if="!APIKEY">Please add your custom Google Maps API Key in the <a href="'+widgetkit.config.settingsPage+'">Widgetkit settings</a>!</div>                                    <div class="uk-grid uk-grid-small">                                         <div class="uk-form uk-form-icon uk-margin-small-bottom uk-width-3-5">                                            <i class="uk-icon-search"></i><input class="uk-width-1-1">                                        </div>                                        <div class="uk-form uk-form-horizontal uk-margin-small-bottom uk-width-2-5">                                            <input class="uk-width-1-1" type="text" placeholder="Custom marker: URL or #000" ng-model="latlng.marker">                                        </div>                                    </div>                                    <div class="js-map" style="min-height:300px;">                                     Loading map...                                     </div>                                     <div class="uk-text-small uk-margin-small-top">LAT: <span class="uk-text-muted">{{ latlng.lat }}</span> LNG: <span class="uk-text-muted">{{ latlng.lng }}</span> <span ng-if="latlng.place">PLACE: <span class="uk-text-muted">{{ latlng.place.name }}</span></span></div>                                </div>',link:function(t,n,o,s){function d(e){var n=jQuery.extend({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1},s.$viewValue,e);s.$setViewValue(n),t.latlng=n,i(function(){t.$apply()})}var c;a().then(function(){l().then(function(){i(function(){var i,a,o,l="wk-location-"+ ++r,u=new google.maps.LatLng(53.55909862554551,9.998652343749995);t.latlng=s.$viewValue||{lat:u.lat(),lng:u.lng(),marker:"",place:!1},void 0===t.latlng.marker&&(t.latlng.marker=""),n.find(".js-map").attr("id",l),i=new google.maps.Map(document.getElementById(l),{zoom:6,center:u}),c=new google.maps.Marker({position:u,map:i,draggable:!0}),MapsMarkerHelper.setIcon(c,t.latlng.marker),google.maps.event.addListener(c,"dragend",function(){var e=c.getPosition();d({lat:e.lat(),lng:e.lng(),place:!1}),a.value=""}),e.$win.on("resize",function(){google.maps.event.trigger(i,"resize"),i.setCenter(c.getPosition())}),a=n.find("input")[0],o=new google.maps.places.Autocomplete(a),o.bindTo("bounds",i),google.maps.event.addListener(o,"place_changed",function(){var e=o.getPlace();if(e.geometry){e.geometry.viewport?i.fitBounds(e.geometry.viewport):i.setCenter(e.geometry.location),c.setPosition(e.geometry.location),a.value="";var t=c.getPosition();d({lat:t.lat(),lng:t.lng(),place:e})}}),google.maps.event.addDomListener(a,"keydown",function(e){13==e.keyCode&&e.preventDefault()}),t.$watch("latlng.marker",function(e){e&&d({marker:e}),MapsMarkerHelper.setIcon(c,e)}),s.$render=function(){try{if(s.$viewValue&&s.$viewValue.lat&&s.$viewValue.lng){var e=new google.maps.LatLng(s.$viewValue.lat,s.$viewValue.lng);c.setPosition(e),i.setCenter(e),s.$viewValue.marker!==t.latlng.marker&&d({marker:s.$viewValue.marker}),MapsMarkerHelper.setIcon(c,latlng.marker)}else d({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1})}catch(n){}},s.$render()})})}),t.APIKEY=window.GOOGLE_MAPS_API_KEY||""}}}]).directive("fieldPathpicker",["mediaPicker","mediaInfo",function(e,t){function i(t){var i=this;i.selectPath=function(){filetypes=/\.*$/i,e.select({allowedFiletypes:filetypes}).then(function(e){t.path=e.url})},t.$watch("path",function(e){t.path=e},!0)}return{scope:{path:"="},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                        <i class="uk-icon-paperclip"></i><input class="uk-width-1-1" ng-model="path">                                      </div>                                      <button class="uk-button" ng-click="vm.selectPath()">Select</button>                                  </div>                               </div>'}}]).directive("fieldDate",["$timeout","$q",function(e,i){function n(){return a||(a=jQuery.Deferred(),t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/datepicker.min.js").then(function(){a.resolve()})),a.promise()}var a;return{restrict:"E",require:"?ngModel",scope:{date:"@"},template:'<div class="uk-form-icon">                                  <i class="uk-icon-calendar"></i>                                  <input type="text" ng-model="date" data-uk-datepicker="{container: \'.wk-noconflict\'}">                               </div>',link:function(t,i,a,o){n().then(function(){function i(i){o.$setViewValue(i),t.date=i,e(function(){t.$apply()})}t.date=o.$viewValue||"",t.$watch("date",function(e){i(e)}),o.$render=function(){try{i(o.$viewValue)}catch(e){}},o.$render()}),window.MooTools&&(i.find("input")[0].hide=function(){return!1})}}}]).factory("Fields",function(){var e={text:{label:"Text",template:function(e,t){var i=angular.element('<input class="uk-width-1-1" type="text"  ng-model="'+e+'">').attr(t.attributes||{});return t&&t.icon&&(i=i.wrap('<div class="uk-form-icon uk-width-1-1"></div>').before('<i class="uk-icon-'+t.icon+'"></i>').parent()),i}},textarea:{label:"Textarea",template:function(e,t){return angular.element('<textarea id="wk-content" class="uk-width-1-1" ng-model="'+e+'" rows="10"></textarea>').attr(t.attributes||{})}},editor:{label:"Editor",template:function(e,t){var i=window.tinyMCE&&window.WK_SYSTEM_EDITOR?"wysiwygeditor":"htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},htmleditor:{label:"HTML Editor",template:function(e,t){var i="htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},tags:{label:"Tags",template:function(e,t){return angular.element('<div class="uk-form-icon uk-width-1-1"><i class="uk-icon-tags"></i><input class="uk-width-1-1" type="text" ng-list ng-model="'+e+'" placeholder="tag, tag, ..."></div><div>').find("input").attr(t.attributes||{}).parent()}},"boolean":{label:"Boolean",template:function(e,t){return angular.element('<input type="checkbox" ng-model="'+e+'">').attr(t.attributes||{})}},media:{label:"Media",template:function(e,t){return'<field-media media="'+e+'"></field-media>'}},pathpicker:{label:"Pathpicker",template:function(e,t){return'<field-pathpicker path="'+e+'"></field-pathpicker>'}},location:{label:"Location",template:function(e,t){return'<field-location  ng-model="'+e+'"></field-location>'}},date:{label:"Date",template:function(e,t){return'<field-date ng-model="'+e+'"></field-date>'}}};return{register:function(t,i){e[t]=angular.extend({label:t,assets:[],template:function(){}},i)},exists:function(t){return!!e[t]},get:function(t){return e[t]},fields:function(){var t=[];return Object.keys(e).forEach(function(i){t.push({name:i,label:e[i].label})}),t}}}).directive("field",["$timeout","$compile","Fields",function(e,t,i){return{require:"?ngModel",restrict:"E",link:function(n,a,o,r){var l=function(){var e=angular.extend({},JSON.parse(o.options||"{}")),r=o.type||"text";if(i.exists(r)){var l,s=i.get(r);l=s.template(o.ngModel,e),l.then?l.then(function(e){t(a.html(e).contents())(n)}):t(a.html(l).contents())(n)}else t(a.html(i.get("text").template(o.ngModel)).contents())(n)};e(l)}}}])}(window.UIkit2||window.UIkit2wk);

angular.module("widgetkit",["Application","ngResource","ngTouch","Fields"]).value("name","widgetkit").value("UIkit",window.UIkit2||window.UIkit2wk).factory("Content",["$resource","Application",function(e,t){return e(t.url("/content/:id"),{},{query:{method:"GET",responseType:"json"},save:{method:"POST",responseType:"json"}})}]).filter("supported",["Application",function(e){return function(t,i){return i?t.filter(function(t){var o=e.config.types[t.type],r=i.item.filter(function(e){if(o.item.indexOf(e)!==-1)return!0}).length;return r==i.item.length}):t}}]).filter("ucwords",["Application",function(e){return function(e){return e.replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()})}}]).service("mediaInfo",["Application","$q",function(e,t){return function(i,o){i=i||"";var r,n,a={url:i,type:"",src:i&&!i.match(/^(https?:)?\//)?e.baseUrl()+"/"+i:i,provider:null,image:e.config.images.placeholder,width:null,height:null};if(i.match(/\.(jpe?g|png|gif|svg)$/i)?(a.type="image",a.image=a.src):i.match(/\.(mp3|ogg|wav)$/)?(a.type="audio",a.image=e.config.images.audio):i.match(/\.(mp4|ogv|webm)$/)?(a.type="video",a.image=e.config.images.video):(r=/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i.exec(i))?(a.provider="vimeo",a.type="iframe",a.src="//player.vimeo.com/video/"+r[2],a.image=e.config.images.iframe):((r=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i.exec(i))||(r=/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i.exec(i)))&&(a.provider="youtube",a.type="iframe",a.src="//www.youtube.com/embed/"+r[2]+r[3].replace(/^&/,"?"),a.image="//img.youtube.com/vi/"+r[2]+"/hqdefault.jpg"),o)switch(n=t.defer(),a.type){case"image":var u=new Image;u.onerror=function(){n.resolve(a)},u.onload=function(){a.width=u.width,a.height=u.height,n.resolve(a)},u.src=a.src;break;case"video":var c=angular.element('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",a.src).appendTo("body"),s=setInterval(function(){c[0].videoWidth&&(clearInterval(s),a.width=c[0].videoWidth,a.height=c[0].videoHeight,c.remove(),n.resolve(a))},20);break;case"iframe":"vimeo"==a.provider&&jQuery.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(a.url),jsonp:"callback",dataType:"jsonp",success:function(e){a.width=e.width,a.height=e.height,n.resolve(a)}}).fail(function(){n.resolve(a)}),"youtube"==a.provider&&jQuery.ajax({type:"GET",url:"//query.yahooapis.com/v1/public/yql",data:{q:"select * from json where url ='http://www.youtube.com/oembed?url="+encodeURI(a.url)+"'",format:"json"},dataType:"jsonp",success:function(e){if(e&&e.query&&e.query.results&&e.query.results.json){var t=jQuery(e.query.results.json.html);a.width=t.attr("width"),a.height=t.attr("height")}n.resolve(a)}}).fail(function(){n.resolve(a)});break;default:n.resolve(a)}return o?n.promise:a}}]).factory("httpInterceptor",["$q","UIkit",function(e,t){return{responseError:function(i){var o;return o=i.data&&i.data.message?i.data.message:i.statusText,t.notify(o,"danger"),e.reject(i)}}}]).config(["$httpProvider","$sceProvider",function(e,t){e.interceptors.push("httpInterceptor"),t.enabled(!1)}]),document.addEventListener("DOMContentLoaded",function(){jQuery("body").on("show.uk.modal",function(e){var t=jQuery(e.target);t.hasClass("uk-modal")&&t.data("modal")&&t.addClass("wk-noconflict")})});

!function(t,n){angular.module("widgetkit").run(["$rootScope","$rootElement","$timeout","$filter",function(e,o,a,i){function s(){r.find("#toolbar-apply button, #toolbar-save button").prop("disabled",o.find("form.ng-invalid").length)}n.parent.document.updateUploader=n.parent.document.updateUploader||function(){};var l=t("body.com_widgetkit"),c=l.find(".header .container-title").append('<h1 class="page-title"><span class="icon-widgetkit"></span>Widgetkit: <span></span></h1>').find(".page-title span").eq(1),r=l.find(".subhead .btn-toolbar"),p='<div class="btn-wrapper" id="toolbar-create"><button class="btn btn-small btn-success"></span>'+i("trans")("New")+"</button></div>",d='<div class="btn-wrapper" id="toolbar-apply"><button class="btn btn-small btn-success"><span class="icon-apply icon-white"></span> '+i("trans")("Save")+'</button></div>                           <div class="btn-wrapper" id="toolbar-save"><button class="btn btn-small"><span class="icon-save"></span> '+i("trans")("Save & Close")+'</button></div>                           <div class="btn-wrapper" id="toolbar-cancel"><button class="btn btn-small"><span class="icon-cancel"></span> '+i("trans")("Close")+"</button></div>",u='<div class="btn-wrapper" id="toolbar-options"><button class="btn btn-small"><span class="icon-options"></span> '+i("trans")("Options")+"</button></div>";r.on("click","#toolbar-create button",function(){o.scope().vm.createContent()}).on("click","#toolbar-apply",function(){o.scope().vm.saveContent()}).on("click","#toolbar-save",function(){var t=o.scope();t.vm.saveContent().$promise.then(function(){t.vm.setView("content")})}).on("click","#toolbar-cancel",function(){var t=o.scope();t.vm.setView("content"),t.$apply()}).on("click","#toolbar-options",function(){location.href="index.php?option=com_config&view=component&component=com_widgetkit"}),l.on("keyup",'[ng-model="content.name"]',s),e.$on("wk.change.view",function(t,n){a(function(){c.text(o.find("h2.js-header").text()),r.empty().html("content"==n?p:"contentEdit"==n?d:"").append(u),s()})})}]),t(function(){t(document).on("click",'[rel="widgetkit"], [aria-label="Widgetkit"]',function(e){e.preventDefault(),e.stopPropagation();for(var o=t(this);o.length&&!o.has("textarea").length;)o=o.parent();n.widgetkit.env.editor(o.find("textarea:first"))});var e=t(".view-module .widgetkit-widget, #modules-form .widgetkit-widget, #module-form .widgetkit-widget"),o=e.nextAll("input"),a={value:function(){try{return JSON.parse(o.val())}catch(t){return{}}},update:function(){var t=this.value().name;e.text(t?Translator.trans("Widget: %widget%",{widget:t}):Translator.trans("Select Widget"))}};e.on("click",function(t){t.preventDefault(),n.widgetkit.env.init("widget",a.value(),function(t){o.val(JSON.stringify(t)),a.update()})}),a.update()}),t(function(){if(n.MooTools){var e=Element.prototype.hide;Element.prototype.hide=function(){return t(this).is('[class*="uk-"]')?this:e.apply(this,[])}}})}(jQuery,window);

!function(e){function t(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}angular.module("widgetkit").service("mediaPicker",["$templateCache","$compile","$q","$rootScope","filterFilter","UIkit","mediaRequest","Application",function(n,i,o,r,l,c,a,d){var s,u,f,p,m,h,g=/\.(jpe?g|png|gif|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)$/i,w=!1,v={init:function(l){return l&&l.allowedFiletypes&&(w=l.allowedFiletypes),this.options=angular.extend({multiple:!1},l),m=o.defer(),u=e(n.get("media")),f=u.data("media-path"),p=i(u)(r).scope(),p.vm=this,p.selectItem=function(n,i){if(i.shiftKey&&h){t();for(var o,r=e(i.target).closest("li"),l=r.parent().children(),c=r.index()>h.index()?1:-1,a=1===c?h.index():r.index(),d=1===c?r.index():h.index(),s=a;s<=d;s++)o=l.eq(s).scope(),o[o.folder?"folder":"file"].selected=!0}else n.selected=!n.selected;h=e(i.target).closest("li")},this.open("").then(function(){if(window.widgetkit.env.modal){var t=window.widgetkit.env.modal.element.children(":first").hide();v.close=function(){t.show(),u.remove()},t.parent().append(u)}else v.modal=c.modal(e('<div class="uk-modal">').append(u).appendTo("body")).show(),v.close=function(){v.modal.hide()},c.domObserve(v.modal.element);v.initUpload()}),m.promise},initUpload:function(){var t=e("#wk-upload-progressbar"),n=t.find(".uk-progress-bar"),i={param:"Filedata[]",params:{"Content-Type":"multipart/form-data"},allow:"*.(jpeg|jpg|gif|png|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)",before:function(e,t){e.action=a.url({task:"file.upload",tmpl:"component",format:"html",folder:s},!0)},loadstart:function(){n.css("width","0%").text("0%"),t.removeClass("uk-hidden")},progress:function(e){e=Math.ceil(e)+"%",n.css("width",e).text(e)},allcomplete:function(i){n.css("width","100%").text("100%"),e(i).find(".alert-message").each(function(t,n){c.notify(e(n).text(),"danger")}),setTimeout(function(){t.addClass("uk-hidden")},250),v.open(s)}};c.uploadSelect(e("#wk-upload-select"),i),c.uploadDrop(u,i)},open:function(t){return a.get({view:"mediaList",tmpl:"component",folder:t,layout:"details"}).success(function(n){h=null,p.media=[],p.breadcrumbs=[];var i=e(n).find("tbody tr");".."==i.first().find(".description").text().trim()&&(i=i.not(i[0])),i.each(function(){var n=e(this),i=n.find("td:first a").length?n.find("td:first a"):n.find("td:nth-child(2) a"),o=n.find("td :checkbox").val(),r=n.find("td.dimensions").text().trim().split(" x "),l=(t?t+"/":"")+o;p.media.push({title:o,path:l,url:(f?f+"/":"")+l,href:d.baseUrl()+"/"+(f?f+"/":"")+l,type:i.is("[target]")?"folder":"file",media:Boolean(l.match(g)),width:r[0],height:r[1],size:n.find("td.filesize").text().trim()})}),s=t;var o=(s?"/"+s:"").split("/");do p.breadcrumbs.unshift({path:o.join("/").substr(1),title:o.pop()});while(o.length);p.breadcrumbs[0].title="home"})},select:function(){var t=this.options,n=v.getSelected(),i=[],o=[],r=function(e){return e.replace(/[_-]/g," ").replace(/\.[^\.]+$/,"").replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1)})};if(n.forEach(function(e){e.media||w&&e.path.match(w)?(e.title=r(e.title),o.push(e)):i.push(e)}),i.length){var l=[];i.forEach(function(t){var n=new Promise(function(n,i){a.get({view:"mediaList",tmpl:"component",folder:t.title,layout:"details"}).success(function(i){var l=e(i).find("tbody tr");".."==l.first().find(".description").text().trim()&&(l=l.not(l[0])),l.each(function(){var n=e(this),i=n.find("td:first a"),l=n.find("td :checkbox").val(),c=n.find("td.dimensions").text().trim().split(" x "),a=(t.title?t.title+"/":"")+l;if(a.match(g)){var s={title:r(l),path:a,url:(f?f+"/":"")+a,href:d.baseUrl()+"/"+(f?f+"/":"")+a,type:i.is("[target]")?"folder":"file",media:Boolean(a.match(g)),width:c[0],height:c[1],size:n.find("td.filesize").text().trim()};o.push(s)}}),n()})});l.push(n)}),Promise.all(l).then(function(){m.resolve(t.multiple||!o.length?o:o[0]),v.close()})}else m.resolve(this.options.multiple||!o.length?o:o[0]),v.close()},addFolder:function(){var e=prompt("Folder Name");e&&a.post({task:"folder.create",foldername:e,folderbase:s}).success(function(){v.open(s)})},remove:function(){window.confirm("Are you sure?")&&a.post({task:"folder.delete",folder:s,rm:v.getSelected().map(function(e){return e.title})}).success(function(){v.open(s)})},getSelected:function(){return l(p.media,{selected:!0})}};return{select:function(e){return v.init(e)}}}]).service("mediaRequest",["$q","$http","Application",function(t,n,i){var o="index.php?option=com_media";return{get:function(e){return n.get(this.url(e))},post:function(t){return t[i.config.token]=1,n.post(o,e.param(t),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},url:function(t,n){return n&&(t[i.config.token]=1),o+"&"+e.param(t)}}}]),window.Promise=window.Promise||function(e,t){function n(e,t){return(typeof t)[0]==e}function i(r,l){return l=function c(a,d,s,u,f,p){if(u=c.q,a!=n)return i(function(e,t){u.push({p:this,r:e,j:t,1:a,0:d})});if(s&&n(e,s)|n(t,s))try{f=s.then}catch(m){d=0,s=m}if(n(e,f)){var h=function(e){return function(t){return f&&(f=0,c(n,e,t))}};try{f.call(s,h(1),d=h(0))}catch(m){d(m)}}else for(l=function(t,l){return n(e,t=d?t:l)?i(function(e,n){o(this,e,n,s,t)}):r},p=0;p<u.length;)f=u[p++],n(e,a=f[d])?o(f.p,f.r,f.j,s,a):(d?f.r:f.j)(s)},l.q=[],r.call(r={then:function(e,t){return l(e,t)},"catch":function(e){return l(0,e)}},function(e){l(n,1,e)},function(e){l(n,0,e)}),r}function o(i,o,r,l,c){setTimeout(function(){try{l=c(l),c=l&&n(t,l)|n(e,l)&&l.then,n(e,c)?l==i?r(TypeError()):c.call(l,o,r):o(l)}catch(a){r(a)}},0)}function r(e){return i(function(t){t(e)})}return i.resolve=r,i.reject=function(e){return i(function(t,n){n(e)})},i.all=function(e){return i(function(t,n,i,o){o=[],i=e.length||t(o),e.map(function(e,l){r(e).then(function(e){o[l]=e,i-=1,i||t(o)},n)})})},i}("f","o")}(jQuery);

!function(){window.tinyMCE&&!window.WFEditor&&(void 0==window.jSelectArticle&&(window.jSelectArticle=function(t,n,o,e,i,c){var l=c?' hreflang = "'+c+'"':"",d="<a"+l+' href="'+i+'">'+n+"</a>";jInsertEditorText(d,"jform_articletext"),jModalClose()}),tinyMCE.PluginManager.add("jArticleButton",function(t,n){t.addButton("button-2Article",{text:"Article",title:"Article",icon:"none icon-file-add",onclick:function(){var n={title:"Article",url:"index.php?option=com_content&view=articles&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500};t.windowManager.open(n)}})}),Joomla.getOptions&&(window.jInsertEditorText=function(t,n){tinyMCE.activeEditor.execCommand("mceInsertContent",!1,t)},tinyMCE.PluginManager.add("jMenuButton",function(t){t.addButton("button-3Menu",{text:"Menu",title:"Menu",icon:"none icon-share-alt",onclick:function(){t.windowManager.open({title:"Menu",url:"index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})}),tinyMCE.PluginManager.add("jContactButton",function(t){t.addButton("button-4Contact",{text:"Contact",title:"Contact",icon:"none icon-address",onclick:function(){t.windowManager.open({title:"Contact",url:"index.php?option=com_contact&view=contacts&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})})))}();

!function(){var t=function(t,e){e=e||t,e.widgets=[],t.data&&t.data.widgets&&(t.search=sessionStorage["widgetkit.widgets.filter"]?JSON.parse(sessionStorage["widgetkit.widgets.filter"]):{name:"",data:{_widget:{name:""}}},t.$watch("search",function(){sessionStorage["widgetkit.widgets.filter"]=JSON.stringify(angular.copy(t.search))}),e.widgets.push({name:"",label:Translator?Translator.trans("All"):"All"}),Object.keys(t.data.widgets).forEach(function(n){e.widgets.push(t.data.widgets[n])}))},e=function(e,n,a,i){var d=this,o=window.localStorage||{};d.viewmode=o["wk.content.viewmode"]||"list",d.include="",t(e,d),d.previewContent=function(t){return e.$emit("wk.preview.content",t).preview||e.data.types[t.type].icon},d.createContent=function(t){e.content=t||{name:"",type:"",data:{_widget:{}}},e.widget=null,d.setView("contentConfig")},d.editContent=function(t,n){var a,i=null,o=e.data.widgets;return t=angular.copy(t),a=t.data._widget,t.id||(angular.extend(t.data,e.data.types[t.type].data),t.id="new"),o[a.name]?(i=angular.copy(o[a.name]),i.data=a.data=angular.extend({},i.settings,a.data),e.content=t,e.widget=i,void d.setView("contentEdit",n)):void d.createContent(t)},d.saveContent=function(){return"new"==e.content.id&&delete e.content.id,i.save({id:e.content.id},{content:e.content},function(t){d.editContent(e.data.content[t.id]=t),a.notify(t.name+" saved.","success")})},d.copyContent=function(t){return t=angular.copy(t),t.id="",t.name+=" (copy)",i.save({id:t.id},{content:t},function(t){e.data.content[t.id]=t,t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget,a.notify(t.name+" copied.","success")})},d.deleteContent=function(t){confirm("Are you sure?")&&i["delete"]({id:t.id},function(){delete e.data.content[t.id]})},d.getWidget=function(t){return e.data.widgets[t.data._widget.name]},d.selectWidget=function(t){var n=e.content.data;n._widget.name!=t.name&&(n._widget.name=t.name,n._widget.data={})},d.setView=function(t,n){d.view=t,n&&(d.include=n),e.$emit("wk.change.view",t),a.init('[data-app="widgetkit"]')},d.setViewMode=function(t){d.viewmode=o["wk.content.viewmode"]=t},d.setView("content")};angular.module("widgetkit").controller("contentCtrl",["$scope","Application","UIkit","Content",function(t,n,a,i){var d=this;t.data=angular.extend({content:i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)})})},n.config),d.name="contentCtrl",e.call(this,t,n,a,i)}]).controller("pickerCtrl",["$scope","Application","Content","UIkit",function(n,a,i,d){var o=this;n.data=angular.extend({},a.config),n.data.content=i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)});var e=n.data.content[a.env.attrs.id];e&&"editor"==o.mode&&(o.editContent(e,"content"),o.mode="edit"),a.env.modal.show()}),o.name="pickerCtrl",o.mode=a.env.mode,t(n,o),o.active=function(t){return t.id==a.env.attrs.id},o.update=function(t){a.env.update({id:t.id,name:t.name})},o.cancel=function(){a.env.cancel()},e.call(this,n,a,d,i)}])}();

angular.module("widgetkit").directive("mediaPreview",["mediaInfo",function(e){function i(i){var r=this;r.type=function(){return i.media=e(i.src),i.media.type},r.cleanUrl=function(e){return"string"==typeof e&&(e=e.replace("autoplay=1","autoplay=0")),e}}return{restrict:"E",scope:{src:"@"},controller:["$scope",i],controllerAs:"vm",template:'<div ng-switch="vm.type()">                           <audio ng-switch-when="audio" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></audio>                           <video ng-switch-when="video" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></video>                           <iframe ng-switch-when="iframe" ng-src="{{ vm.cleanUrl(media.src) }}" frameborder="0" allowfullscreen="true" class="uk-responsive-width" width="800" height="600"></iframe>                           <img ng-switch-default ng-src="{{ media.src }}">                       </div>'}}]).directive("autofocus",["$timeout",function(e){var i=[];return{restrict:"A",link:function(r,t){i.push(t),e(function(){i[0][0].focus()})}}}]);

!function(t,e,n){function o(t){var n=e.tinymce.editors[t.attr("id")];return{getContent:function(){return n.getContent()},insertContent:function(t){n.execCommand("mceInsertContent",!1,t)},updateContent:function(t,e,o){var i=this.getContent();i=i.substring(0,e)+t+'<span id="tmp-wkid"></span>'+i.substring(o),n.setContent(i),n.selection.select(n.dom.select("#tmp-wkid")[0],!0),n.selection.collapse(!1),n.dom.remove("tmp-wkid",!1),n.focus()},getCursorPosition:function(){var t=n.selection.getBookmark(0),e="[data-mce-type=bookmark]",o=n.dom.select(e);n.selection.select(o[0]),n.selection.collapse();var i="######cursor######",r='<span id="'+i+'"></span>';n.selection.setContent(r);var s=n.getContent({format:"html"}),a=s.indexOf(r);return n.dom.remove(i,!1),n.selection.moveToBookmark(t),a}}}function i(t){return{getContent:function(){return t.val()},insertContent:function(e){this.updateContent(e,t.prop("selectionStart"),t.prop("selectionEnd"))},updateContent:function(e,n,o){var i=t.val(),r=n+e.length;i=i.substring(0,n)+e+i.substring(o),t.val(i),t[0].setSelectionRange(r,r),t.focus().trigger("change")},getCursorPosition:function(){return t.prop("selectionStart")}}}function r(t){var e=t.next()[0].CodeMirror;return{getContent:function(){return e.getValue()},insertContent:function(t){e.replaceRange(t,e.getCursor()),e.focus()},updateContent:function(t,n,o){e.replaceRange(t,this.translateOffset(n),this.translateOffset(o)),e.focus()},getCursorPosition:function(){return this.translatePosition(e.getCursor())},translatePosition:function(t){return e.getValue().split("\n",t.line).join("").length+t.line+t.ch},translateOffset:function(t){var n=e.getValue().substring(0,t).split("\n");return{line:n.length-1,ch:n[n.length-1].length}}}}function s(t){var n=e.ace.edit(t.parent().attr("id"));return{getContent:function(){return n.getValue()},insertContent:function(t){n.insert(t),n.focus()},updateContent:function(t,e,o){e=this.translateOffset(e),o=this.translateOffset(o);var i=n.getSelectionRange();i.setStart(e.row,e.column),i.setEnd(o.row,o.column),n.getSession().getDocument().replace(i,t),n.focus()},getCursorPosition:function(){return this.translatePosition(n.getSelection().getCursor())},translatePosition:function(t){return this.getContent().split("\n",t.row).join("").length+t.row+t.column},translateOffset:function(t){var e=this.getContent().substring(0,t).split("\n");return{row:e.length-1,column:e[e.length-1].length}}}}function a(e){var n=CKEDITOR.instances[e.attr("id")];return{getContent:function(){return n.getData()},insertContent:function(t){this.updateContent(t,this.getCursorPosition(),this.getCursorPosition())},updateContent:function(t,e,o){var i=n.getData();i=i.substring(0,e)+t+i.substring(o),n.setData(i)},getCursorPosition:function(){return"source"==n.mode?t(n.textarea.$).prop("selectionStart"):this.getCursorPositionInWYSIWYG()},getCursorPositionInWYSIWYG:function(){var t=n.getSelection().createBookmarks(),e="######cursor######",o='<span id="'+e+'">&nbsp;</span>',i=CKEDITOR.dom.element.createFromHtml(o);i.insertBefore(t[0].startNode);var r=this.getContent(),s=r.indexOf(o);return i.remove(),n.getSelection().selectBookmarks(t),s}}}var u={init:function(e,o,i){var r=t(this.tmpl).appendTo("body");this.mode=e,this.attrs=o,this.cb=i,this.modal=n.modal(r),this.modal.on("hide.uk.modal",function(){r.remove()}),n.domObserve(r,function(){var t=this;n.domObservers.forEach(function(e){e(t)})}),angular.bootstrap(r,["widgetkit"])},editor:function(t){var n;n=(e.WFEditor||e.JContentEditor||e.tinyMCE)&&!t.is(":visible")?new o(t):e.CodeMirror&&t.next()[0]&&t.next()[0].CodeMirror?new r(t):e.ace?new s(t):e.CKEDITOR?new a(t):new i(t);for(var u,l,g=n.getContent(),d=n.getCursorPosition(),f=/\[widgetkit([^\]]*)\]/gi;l=f.exec(g);)if(l.index<=d&&f.lastIndex>d){u=l[0];break}this.init("editor",c.parse("widgetkit",u).attrs,function(t){var e=new c({tag:"widgetkit",attrs:t}).string();u?n.updateContent(e,l.index,f.lastIndex):n.insertContent(e)})},update:function(t){this.cb(t),this.modal.hide()},cancel:function(){this.modal.hide()},tmpl:'<div class="uk-modal"><div style="width: 1000px;" class="uk-modal-dialog" ng-include="\'picker\'"></div></div>'},c=function(e){t.extend(this,{tag:"",attrs:{},type:"single",content:""},e)};t.extend(c,{parse:function(t,e){var n,o=this.regexp(t).exec(e),i={tag:t};return o&&(n=o[4]?"self-closing":o[6]?"closed":"single",i={tag:o[2],attrs:this.attrs(o[3]),type:n,content:o[5]}),new c(i)},attrs:function(t){var e,n=/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/g,o={};for(t=t.replace(/[\u00a0\u200b]/g," ");e=n.exec(t);)e[1]?o[e[1].toLowerCase()]=e[2]:e[3]?o[e[3].toLowerCase()]=e[4]:!e[5]||"true"!==e[6]&&"1"!==e[6]?!e[5]||"false"!==e[6]&&"0"!==e[6]?e[5]?o[e[5].toLowerCase()]=e[6]:e[7]?o[e[7]]=!0:e[8]&&(o[e[8]]=!0):o[e[5].toLowerCase()]=!1:o[e[5].toLowerCase()]=!0;return o},regexp:function(t){return new RegExp("\\[(\\[?)("+t+")(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*(?:\\[(?!\\/\\2\\])[^\\[]*)*)(\\[\\/\\2\\]))?)(\\]?)","g")}}),t.extend(c.prototype,{string:function(){var e="["+this.tag;return t.each(this.attrs,function(t,n){"boolean"==typeof n?e+=" "+t+"="+(n?1:0):""!==n&&(e+=" "+t+'="'+n+'"')}),"single"===this.type?e+"]":"self-closing"===this.type?e+" /]":(e+="]",this.content&&(e+=this.content),e+"[/"+this.tag+"]")}}),t(function(){t.extend(e.widgetkit,{env:u,shortcode:c})})}(jQuery,window,window.UIkit2||window.UIkit2wk);

angular.module("widgetkit").controller("folderCtrl",["$scope",function(e){}]).run(["$rootScope","mediaInfo",function(e,r){e.$on("wk.preview.content",function(e,o){if("folder"==o.type&&o.data.prepared){var n,t=JSON.parse(o.data.prepared);t.length>0&&(n=t[0].media,e.preview=r(n).image)}})}]);

angular.module("widgetkit").controller("twitterCtrl",["$scope","$element","Application","$http",function(t,n,i,e){var o,c=this;c.connected=n[0].getAttribute("data-status"),c.loading=!1,c.openPopup=function(t){o=window.open(t,"","width=800,height=500")},t.$watch("twitter.pin",function(t){if(t&&!(t.length<7)){c.loading=!0;var n=e.post(i.url("twitter_auth"),{pin:t});n.success(function(){c.connected=!0,c.loading=!1,c.pin="",o&&o.close()}),n.error(function(){c.loading=!1})}}),c.disconnect=function(){c.loading=!0;var t=e["delete"](i.url("twitter_auth"));t.success(function(){c.connected=!1,c.loading=!1}),t.error(function(){c.loading=!1})}}]);

angular.module("widgetkit").controller("customCtrl",["$scope","$timeout","UIkit","mediaInfo","mediaPicker","Fields","Application","Translator",function(e,t,i,n,a,o,d,l){e.content.data._fields||(e.content.data._fields=[]);var s,r=this,c=e.content.data._fields;e.content.data.items&&e.content.data.items.length||(e.content.data.items=[{media:""}]),e.content.data.hasOwnProperty("parse_shortcodes")||(e.content.data.parse_shortcodes=1),s=e.content.data.items,e.item=s[0],e.extrafields=c,r.corefields=d.config.types.custom.fields,r.fields=o.fields(),e.tinyMCE=window.tinyMCE||!1,r.previewItem=function(e){var t=e.options&&e.options.media&&e.options.media.poster;return n(t||e.media).image},r.addItem=function(t){e.item=t||{media:""},s.push(e.item)},r.importItems=function(){a.select({multiple:!0}).then(function(t){!t.length||1!=s.length||e.item.title&&e.item.media&&e.item.content||(s.length=0),angular.forEach(t,function(e){e.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}),r.addItem({title:e.title,media:e.url,width:e.width,height:e.height})})})},r.editItem=function(t){e.item=t},r.deleteItem=function(t){s.splice(s.indexOf(t),1),e.item=s[0]},r.addField=function(e){return e=e||{type:"text",name:"field-x",label:"Field X"},r.corefields[e.name]&&(e.type=r.corefields[e.name].type,e.label=r.corefields[e.name].label),r.hasField(e.name)?void alert('Field name "'+e.name+'" is already in use.'):(s.forEach(function(t){t[e.name]||(t[e.name]="")}),void c.push(angular.copy(e)))},r.deleteField=function(e){confirm(l.trans("Are you sure you want to delete this field?"))&&(s.forEach(function(t){t[e.name]&&delete t[e.name]}),c.splice(c.indexOf(e),1))},r.hasField=function(e){if(["title","media","link"].indexOf(e)>-1)return!0;for(var t=0;t<c.length;t++)if(c[t].name==e)return!0;return!1},r.toggleEditFields=function(){r.editfields=!r.editfields,r.editfields||setTimeout(function(){window.dispatchEvent(new Event("resize"))},150),r.custom={field:{}},r.addCustomField=!1},r.getFieldOptions=function(e,t){var i={},n=r.corefields[e.name];return n&&n.options&&(i=angular.extend(i,n.options)),JSON.stringify(i)},e.$watch("content",function(t){var i=s.indexOf(e.item);s=t.data.items,e.item=s[i]}),i.$doc.trigger("ready.uk.dom"),i.$doc.on("change.uk.sortable",function(e,i,n){n&&void 0!==n&&(n=angular.element(n),t(function(){"js-content-items"==i.element[0].id&&s.splice(n.index(),0,s.splice(s.indexOf(n.scope().item),1)[0]),"js-fields-items"==i.element[0].id&&c.splice(n.index(),0,c.splice(c.indexOf(n.scope().field),1)[0])}))}),angular.isArray(e.widget.fields)&&e.widget.fields.forEach(function(e){e&&e.name&&!r.hasField(e.name)&&r.addField(e)}),i.init()}]).run(["$rootScope","mediaInfo",function(e,t){e.$on("wk.preview.content",function(e,i){if("custom"==i.type&&i.data.items.length){var n=i.data.items[0],a=n.options&&n.options.media&&n.options.media.poster;e.preview=t(a||n.media).image.replace(/preview(-.+\.svg)$/g,"content$1")}})}]);

widgetkit/uikit2-dfcb833f.js000064400000331161152177723720011626 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2wk)return window.UIkit2wk;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2wk=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-wk-margin], [data-wk-grid-match], [data-wk-grid-margin], [data-wk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="wk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/wk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".wk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-wk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"wk-touch":"wk-notouch"),i.support.touch){var n,o=!1,s="wk-hover",a=".wk-overlay, .wk-overlay-hover, .wk-overlay-toggle, .wk-animation-hover, .wk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"wk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-wk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.wk-responsive-width, [data-wk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"wk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-wk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2wk),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-wk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-wk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2wk),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"wk-scrollspy-inview",initcls:"wk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-wk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-wk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-wk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("wk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("wk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"wk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-wk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-wk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"wk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-wk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-wk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("wk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" wk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("wk-hidden"))})}})}(UIkit2wk),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".wk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-wk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-wk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2wk),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-wk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-wk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-wk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-wk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-wk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-wk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("wk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("wk-active")])})},toggle:function(){this.element.toggleClass("wk-active"),this.element.attr("aria-pressed",this.element.hasClass("wk-active"))}})}(UIkit2wk),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".wk-dropdown,.wk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-wk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-wk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("wk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("wk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("wk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("wk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("wk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("wk-open")?(!i.dropdown.find(e.target).length||n.is(".wk-dropdown-close")||n.parents(".wk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".wk-dropdown-close")||o.parents(".wk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("wk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("wk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("wk-dropdown-top wk-dropdown-bottom wk-dropdown-left wk-dropdown-right wk-dropdown-stack wk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("wk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("wk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("wk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-wk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-wk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("wk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="wk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("wk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("wk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-wk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"wk-grid-margin",rowfirst:"wk-row-first"},boot:function(){t.ready(function(i){t.$("[data-wk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-wk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2wk),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2wk.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".wk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".wk-modal.wk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".wk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("wk-open")),this.on("click",".wk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".wk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("wk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("wk-open")):(this.element.addClass("wk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("wk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("wk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".wk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("wk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("wk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("wk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-wk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-wk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="wk-modal"><div class="wk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-button-primary wk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="wk-modal-content wk-form">'+String(i)+"</div>":"",'<div class="wk-margin-small-top wk-modal-content wk-form"><p><input type="text" class="wk-width-1-1"></p></div>','<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-modal-close">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i||'<div class="wk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".wk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2wk),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.wk-parent > a[href="#"]',lists:">li.wk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-wk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-wk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("wk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("wk-hidden"))),n.attr("aria-expanded",n.hasClass("wk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".wk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("wk-open").end().addClass("wk-hidden")})}),a.toggleClass("wk-open"),a.attr("aria-expanded",a.hasClass("wk-open")),r&&(a.hasClass("wk-open")&&r.removeClass("wk-hidden"),n?(r.stop().height(a.hasClass("wk-open")?"auto":0),a.hasClass("wk-open")||r.addClass("wk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("wk-open")?i(r.find("ul:first")):0},function(){a.hasClass("wk-open")?r.css("height",""):r.addClass("wk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2wk),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".wk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("wk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("wk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("wk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("wk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".wk-offcanvas.wk-active"),a="right"==t.langdirection,r=s.find(".wk-offcanvas-bar:first"),l=function(){o.removeClass("wk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("wk-active"),r.removeClass("wk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("wk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".wk-offcanvas-bar:first").length)return}else if(!e.hasClass("wk-offcanvas-close")){if(e.hasClass("wk-offcanvas-bar"))return;if(e.parents(".wk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-wk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-wk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-wk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2wk),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("wk-active "+r+" wk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" wk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("wk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-wk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-wk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-wk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("wk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".wk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("wk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".wk-active").removeClass("wk-active"),r.addClass("wk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".wk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("wk-active"),o.addClass("wk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["wk-animation-slide-top","wk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["wk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["wk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["wk-animation-slide-right","wk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2wk),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.wk-tab-responsive, .wk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-wk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-wk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("wk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("wk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="wk-tab-responsive wk-active"><a></a></li>').append('<div class="wk-dropdown wk-dropdown-small"><ul class="wk-nav wk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".wk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("wk-tab-bottom")&&this.responsivetab.dropdown.addClass("wk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.wk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.wk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".wk-tab-responsive").filter(".wk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.wk-tab-responsive)").removeClass("wk-hidden");if(!i.length)return this.responsivetab.addClass("wk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("wk-dropdown")||(e.hasClass("wk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("wk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("wk-hidden")}})}(UIkit2wk),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-wk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-wk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2wk);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideset",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i,e,n,s){var a,o,r,l,h=t.$.Deferred(),u=this.options.delay===!1?Math.floor(this.options.duration/2):this.options.delay,d=this;if(s=s||1,this.element.css("min-height",this.element.height()),n[0]===e[0])return h.resolve(),h.promise();if("object"==typeof i?(a=i[0],o=i[1]||i[0]):(a=i,o=a),t.$body.css("overflow-x","hidden"),r=function(){if(e&&e.length&&e.hide().removeClass(o+" wk-animation-reverse").css({opacity:"","animation-delay":"",animation:""}),!n.length)return h.resolve(),void 0;for(l=0;l<n.length;l++)n.eq(1==s?l:n.length-l-1).css("animation-delay",l*u+"ms");var i=function(){n.removeClass(""+a).css({opacity:"",display:"","animation-delay":"",animation:""}),h.resolve(),t.$body.css("overflow-x",""),d.element.css("min-height",""),i=!1};n.addClass(a)[1==s?"last":"first"]().one(t.support.animation.end,function(){i&&i()}).end().css("display",""),setTimeout(function(){i&&i()},n.length*u*2)},n.length&&n.css("animation-duration",this.options.duration+"ms"),e&&e.length)for(e.css("animation-duration",this.options.duration+"ms")[1==s?"last":"first"]().one(t.support.animation.end,function(){r()}),l=0;l<e.length;l++)!function(i,e){setTimeout(function(){e.css("display","none").css("display","").css("opacity",0).on(t.support.animation.end,function(){e.removeClass(o)}).addClass(o+" wk-animation-reverse")}.bind(this),l*u)}(l,e.eq(1==s?l:e.length-l-1));else r();return h.promise()}function e(t,i){var e,n=0,s=-1,a=t.length||0,o=[];if(1>i)return null;for(;a>n;)e=n%i,e?o[s][e]=t[n]:o[++s]=[t[n]],n++;for(n=0,a=o.length;a>n;)o[n]=jQuery(o[n]),n++;return o}var n;t.component("slideset",{defaults:{"default":1,animation:"fade",duration:200,filter:"",delay:!1,controls:!1,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},sets:[],boot:function(){t.ready(function(i){t.$("[data-wk-slideset]",i).each(function(){var i=t.$(this);i.data("slideset")||t.slideset(i,t.Utils.options(i.attr("data-wk-slideset")))})})},init:function(){var i=this;this.activeSet=!1,this.list=this.element.find(".wk-slideset"),this.nav=this.element.find(".wk-slideset-nav"),this.controls=this.options.controls?t.$(this.options.controls):this.element,t.$win.on("resize load",t.Utils.debounce(function(){i.update()},100)),i.list.addClass("wk-grid-width-1-"+i.options.default),["xlarge","large","medium","small"].forEach(function(t){i.options[t]&&i.list.addClass("wk-grid-width-"+t+"-1-"+i.options[t])}),this.on("click.uk.slideset","[data-wk-slideset-item]",function(e){if(e.preventDefault(),!i.animating){var n=t.$(this).attr("data-wk-slideset-item");if(i.activeSet!==n)switch(n){case"next":case"previous":i["next"==n?"next":"previous"]();break;default:i.show(parseInt(n,10))}}}),this.controls.on("click.uk.slideset","[data-wk-filter]",function(e){var n=t.$(this);n.parent().hasClass("wk-slideset")||(e.preventDefault(),i.animating||i.currentFilter==n.attr("data-wk-filter")||(i.updateFilter(n.attr("data-wk-filter")),i._hide().then(function(){i.update(!0,!0)})))}),this.on("swipeRight swipeLeft",function(t){i["swipeLeft"==t.type?"next":"previous"]()}),this.updateFilter(this.options.filter),this.update(),this.element.on({mouseenter:function(){i.options.pauseOnHover&&(i.hovering=!0)},mouseleave:function(){i.hovering=!1}}),this.options.autoplay&&this.start(),t.domObserve(this.list,function(){i.list.children(":visible:not(.wk-active)").length&&i.update(!1,!0)})},update:function(t,i){var n,s=this.visible;if(this.visible=this.getVisibleOnCurrenBreakpoint(),s!=this.visible||i){for(this.children=this.list.children().hide(),this.items=this.getItems(),this.sets=e(this.items,this.visible),n=0;n<this.sets.length;n++)this.sets[n].css({display:"none"});if(this.nav.length&&this.nav.empty()){for(n=0;n<this.sets.length;n++)this.nav.append('<li data-wk-slideset-item="'+n+'"><a></a></li>');this.nav[1==this.nav.children().length?"addClass":"removeClass"]("wk-invisible")}this.activeSet=!1,this.show(0,!t)}},updateFilter:function(i){var e,n=this;this.currentFilter=i,this.controls.find("[data-wk-filter]").each(function(){e=t.$(this),e.parent().hasClass("wk-slideset")||(e.attr("data-wk-filter")==n.currentFilter?e.addClass("wk-active"):e.removeClass("wk-active"))})},getVisibleOnCurrenBreakpoint:function(){var i=null,e=t.$('<div style="position:absolute;height:1px;top:-1000px;width:100px"><div></div></div>').appendTo("body"),n=e.children().eq(0),s=this.options;return["xlarge","large","medium","small"].forEach(function(t){s[t]&&!i&&(e.attr("class","wk-grid-width-"+t+"-1-2").width(),50==n.width()&&(i=t))}),e.remove(),this.options[i]||this.options["default"]},getItems:function(){var i,e=[];return this.currentFilter?(i=this.currentFilter||[],"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()})),this.children.each(function(){var n=t.$(this),s=n.attr("data-wk-filter"),a=i.length?!1:!0;s&&(s=s.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){s.indexOf(t)>-1&&(a=!0)})),a&&e.push(n[0])}),e=t.$(e)):e=this.list.children(),e},show:function(i,e,s){var a=this;if(this.activeSet!==i&&!this.animating){s=s||(i<this.activeSet?-1:1);var o=this.sets[this.activeSet]||[],r=this.sets[i],l=this._getAnimation();(e||!t.support.animation)&&(l=n.none),this.animating=!0,this.nav.length&&this.nav.children().removeClass("wk-active").eq(i).addClass("wk-active"),l.apply(a,[o,r,s]).then(function(){t.Utils.checkDisplay(r,!0),a.children.hide().removeClass("wk-active"),r.addClass("wk-active").css({display:"",opacity:""}),a.animating=!1,a.activeSet=i,t.Utils.checkDisplay(r,!0),a.trigger("show.uk.slideset",[r])})}},_getAnimation:function(){var i=n[this.options.animation]||n.none;return t.support.animation||(i=n.none),i},_hide:function(){var t=this,i=this.sets[this.activeSet]||[],e=this._getAnimation();return this.animating=!0,e.apply(t,[i,[],1]).then(function(){t.animating=!1})},next:function(){this.show(this.sets[this.activeSet+1]?this.activeSet+1:0,!1,1)},previous:function(){this.show(this.sets[this.activeSet-1]?this.activeSet-1:this.sets.length-1,!1,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.animating||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)}}),n={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e,n){var s=["wk-animation-slide-top","wk-animation-slide-bottom"];return-1==n&&s.reverse(),i.apply(this,[s,t,e])},"slide-horizontal":function(t,e,n){var s=["wk-animation-slide-right","wk-animation-slide-left"];return-1==n&&s.reverse(),i.apply(this,[s,t,e,n])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.slideset.animations=n});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";t.component("grid",{defaults:{colwidth:"auto",animation:!0,duration:300,gutter:0,controls:!1,filter:!1,origin:t.langdirection},boot:function(){t.ready(function(i){t.$("[data-wk-grid]",i).each(function(){var i=t.$(this);i.data("grid")||t.grid(i,t.Utils.options(i.attr("data-wk-grid")))})})},init:function(){var i=this,e=String(this.options.gutter).trim().split(" ");this.gutterv=parseInt(e[0],10),this.gutterh=parseInt(e[1]||e[0],10),this.element.css({position:"relative"}),this.controls=null,this.origin=this.options.origin,this.options.controls&&(this.controls=t.$(this.options.controls),this.controls.on("click","[data-wk-filter]",function(e){e.preventDefault(),i.filter(t.$(this).attr("data-wk-filter"))}),this.controls.on("click","[data-wk-sort]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-sort").split(":");i.sort(n[0],n[1])})),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){i.currentfilter?i.filter(i.currentfilter):this.update()}.bind(this),100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.update()}),t.domObserve(this.element,function(){i.update()}),this.options.filter!==!1?this.filter(this.options.filter):this.update()},_prepareElements:function(){var t,i=this.element.children().not("[data-grid-prepared]");i.length&&(t={position:"absolute",boxSizing:"border-box",width:"auto"==this.options.colwidth?"":this.options.colwidth},this.options.gutter&&(t["padding-"+this.origin]=this.gutterh,t["padding-bottom"]=this.gutterv,this.element.css("margin-"+this.origin,-1*this.gutterh)),i.attr("data-grid-prepared","true").css(t))},update:function(i){var e=this;this._prepareElements(),i=i||this.element.children(":visible");var n,o,s,r,a,h,d,l,u,c=i,f=this.element.width()+2*this.gutterh+2,p=0,g=0,m=[];this.trigger("beforeupdate.uk.grid",[c]),c.each(function(){for(n=t.$(this),u=this.getBoundingClientRect(),o=u.width,s=u.height,p=0,g=0,h=0,l=m.length;l>h;h++)r=m[h],p<=r.aX&&(p=r.aX),p+o>f&&(p=0),g<=r.aY&&(g=r.aY);a={ele:n,top:g,width:o,height:s,aY:g+s,aX:p+o},a[e.origin]=p,m.push(a)});var v,k,b=0;for(h=0,l=m.length;l>h;h++){for(r=m[h],g=0,d=0;h>d;d++)v=m[d],r[this.origin]<v.aX&&v[this.origin]+1<r.aX&&(g=v.aY);r.top=g,r.aY=g+r.height,b=Math.max(b,r.aY)}b-=this.gutterv,this.options.animation?(this.element.stop().animate({height:b},100),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.stop().animate(k,this.options.duration)}.bind(this))):(this.element.css("height",b),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.css(k)}.bind(this))),setTimeout(function(){t.$doc.trigger("scrolling.uk.document")},2*this.options.duration*(this.options.animation?1:0)),this.trigger("afterupdate.uk.grid",[c])},filter:function(i){this.currentfilter=i,i=i||[],"number"==typeof i&&(i=i.toString()),"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()}));var e=this,n=this.element.children(),o={visible:[],hidden:[]};n.each(function(){var e=t.$(this),n=e.attr("data-wk-filter"),s=i.length?!1:!0;n&&(n=n.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){n.indexOf(t)>-1&&(s=!0)})),o[s?"visible":"hidden"].push(e)}),o.hidden=t.$(o.hidden).map(function(){return this[0]}),o.visible=t.$(o.visible).map(function(){return this[0]}),o.hidden.attr("aria-hidden","true").filter(":visible").fadeOut(this.options.duration),o.visible.attr("aria-hidden","false").filter(":hidden").css("opacity",0).show(),e.update(o.visible),this.controls&&this.controls.length&&this.controls.find("[data-wk-filter]").removeClass("wk-active").filter('[data-wk-filter="'+i+'"]').addClass("wk-active")},sort:function(i,e){e=e||1,"string"==typeof e&&(e="desc"==e.toLowerCase()?-1:1);var n=this.element.children();n.sort(function(n,o){return n=t.$(n),o=t.$(o),(o.data(i)||"")<(n.data(i)||"")?e:-1*e}).appendTo(this.element),this.update(n.filter(":visible")),this.controls&&this.controls.length&&this.controls.find("[data-wk-sort]").removeClass("wk-active").filter('[data-wk-sort="'+i+":"+(-1==e?"desc":"asc")+'"]').addClass("wk-active")}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var n;window.UIkit2wk&&(n=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid-parallax",["uikit"],function(){return n||t(UIkit2wk)})}(function(t){function n(t){for(var n=t.children(),i=n.filter(":visible:first"),e=i[0].offsetTop+i.outerHeight(),o=0;o<n.length&&!(n[o].offsetTop>=e);o++);return o||1}function i(n){var i,e,o,r=n.offset().top,s=n.outerHeight(),a=t.$win.scrollTop(),l=window.innerHeight;return r>a+l?o=0:a>r+s?o=1:(l>r+s?o=(l>a?a:a-l)/(r+s):(i=a+l-r,e=Math.round(i/((l+s)/100)),o=e/100),l>r&&(o=o*a/(r+s-l))),o>1?1:o}var e=[],o=function(){requestAnimationFrame(function(){for(var t=0;t<e.length;t++)e[t].process()})};t.component("gridparallax",{defaults:{target:!1,smooth:150,translate:150},boot:function(){t.$doc.on("scrolling.uk.document",o),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){o()},50)),t.ready(function(n){t.$("[data-wk-grid-parallax]",n).each(function(){var n=t.$(this);n.data("gridparallax")||t.gridparallax(n,t.Utils.options(n.attr("data-wk-grid-parallax")))})})},init:function(){var i=this;this.initItems().process(),e.push(this),t.$win.on("load resize orientationchange",function(){var e=function(){var t=n(i.element);i.element.css("margin-bottom",""),t>1&&i.element.css("margin-bottom",i.options.translate+parseInt(i.element.css("margin-bottom")))};return t.$(function(){e()}),t.Utils.debounce(e,50)}())},initItems:function(){var n=this.options.smooth;return this.items=(this.options.target?this.element.find(this.options.target):this.element.children()).each(function(){t.$(this).css({transition:"transform "+n+"ms linear",transform:""})}),this},process:function(){var e=i(this.element),o=n(this.element),r=this.items,s=[o-1];if(1==o||!e)return r.css("transform",""),void 0;for(;s.length<o&&s[s.length-1]-2;)s.push(s[s.length-1]-2);var a=this.options.translate,l=e*a;r.each(function(n,i,e){e=-1!=s.indexOf((n+1)%o)?l:l/8,t.$(this).css("transform","translate3d(0,"+e+"px, 0)")})}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t,s=0;i.component("slideshow",{defaults:{animation:"fade",duration:500,height:"auto",start:0,autoplay:!1,autoplayInterval:7e3,videoautoplay:!0,videomute:!0,slices:15,pauseOnHover:!0,kenburns:!1,kenburnsanimations:["wk-animation-middle-left","wk-animation-top-right","wk-animation-bottom-left","wk-animation-top-center","","wk-animation-bottom-right"]},current:!1,interval:null,hovering:!1,boot:function(){i.ready(function(t){i.$("[data-wk-slideshow]",t).each(function(){var t=i.$(this);t.data("slideshow")||i.slideshow(t,i.Utils.options(t.attr("data-wk-slideshow")))})})},init:function(){var t=this;this.container=this.element.hasClass("wk-slideshow")?this.element:i.$(this.find(".wk-slideshow:first")),this.current=this.options.start,this.animating=!1,this.fixFullscreen=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&this.container.hasClass("wk-slideshow-fullscreen"),this.options.kenburns&&(this.kbanimduration=this.options.kenburns===!0?"15s":this.options.kenburns,String(this.kbanimduration).match(/(ms|s)$/)||(this.kbanimduration+="ms"),"string"==typeof this.options.kenburnsanimations&&(this.options.kenburnsanimations=this.options.kenburnsanimations.split(","))),this.update(),this.on("click.uk.slideshow","[data-wk-slideshow-item]",function(s){s.preventDefault();var e=i.$(this).attr("data-wk-slideshow-item");if(t.current!=e){switch(e){case"next":case"previous":t["next"==e?"next":"previous"]();break;default:t.show(parseInt(e,10))}t.stop()}}),i.$win.on("resize load",i.Utils.debounce(function(){t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight))},100)),setTimeout(function(){t.resize()},80),this.options.autoplay&&this.start(),this.options.videoautoplay&&this.slides.eq(this.current).data("media")&&this.playmedia(this.slides.eq(this.current).data("media")),this.options.kenburns&&this.applyKenBurns(this.slides.eq(this.current)),this.container.on({mouseenter:function(){t.options.pauseOnHover&&(t.hovering=!0)},mouseleave:function(){t.hovering=!1}}),this.on("swipeRight swipeLeft",function(i){t["swipeLeft"==i.type?"next":"previous"]()}),this.on("display.uk.check",function(){t.element.is(":visible")&&(t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight)))}),i.domObserve(this.element,function(){t.container.children(":not([data-slideshow-slide])").not(".wk-slideshow-ghost").length&&t.update(!0)})},update:function(t){var e,a=this,n=0;this.slides=this.container.children(),this.slidesCount=this.slides.length,this.slides.eq(this.current).length||(this.current=0),this.slides.each(function(t){var o=i.$(this);if(!o.data("processed")){var r=o.children("img,video,iframe").eq(0),d="html";if(o.data("media",r),o.data("sizer",r),r.length){var u;switch(d=r[0].nodeName.toLowerCase(),r[0].nodeName){case"IMG":var h=i.$('<div class="wk-cover-background wk-position-cover"></div>').css({"background-image":"url("+r.attr("src")+")"});r.attr("width")&&r.attr("height")&&(u=i.$("<canvas></canvas>").attr({width:r.attr("width"),height:r.attr("height")}),r.replaceWith(u),r=u,u=void 0),r.css({width:"100%",height:"auto",opacity:0}),o.prepend(h).data("cover",h);break;case"IFRAME":var c=r[0].src,l="sw-"+ ++s;r.attr("src","").on("load",function(){if((t!==a.current||t==a.current&&!a.options.videoautoplay)&&a.pausemedia(r),a.options.videomute){a.mutemedia(r);var i=setInterval(function(t){return function(){a.mutemedia(r),++t>=4&&clearInterval(i)}}(0),250)}}).data("slideshow",a).attr("data-player-id",l).attr("src",[c,c.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1&player_id="+l].join("")).addClass("wk-position-absolute"),i.support.touch||r.css("pointer-events","none"),u=!0,i.cover&&(i.cover(r),r.attr("data-wk-cover","{}"));break;case"VIDEO":r.addClass("wk-cover-object wk-position-absolute"),u=!0,a.options.videomute&&a.mutemedia(r)}if(u){e=i.$("<canvas></canvas>").attr({width:r[0].width,height:r[0].height});var p=i.$('<img style="width:100%;height:auto;">').attr("src",e[0].toDataURL());o.prepend(p),o.data("sizer",p)}}else o.data("sizer",o);a.hasKenBurns(o)&&o.data("cover").css({"-webkit-animation-duration":a.kbanimduration,"animation-duration":a.kbanimduration}),o.data("processed",++n),o.attr("data-slideshow-slide",d)}}),n&&(this.triggers=this.find("[data-wk-slideshow-item]"),this.slides.attr("aria-hidden","true").removeClass("wk-active").eq(this.current).addClass("wk-active").attr("aria-hidden","false"),this.triggers.filter('[data-wk-slideshow-item="'+this.current+'"]').addClass("wk-active")),t&&n&&this.resize()},resize:function(){if(!this.container.hasClass("wk-slideshow-fullscreen")){var t=this.options.height;"auto"===this.options.height&&(t=0,this.slides.css("height","").each(function(){t=Math.max(t,i.$(this).height())})),this.container.css("height",t),this.slides.css("height",t)}},show:function(s,e){if(!this.animating&&this.current!=s){this.animating=!0;var a=this,n=this.slides.eq(this.current),o=this.slides.eq(s),r=e?e:this.current<s?1:-1,d=n.data("media"),u=t[this.options.animation]?this.options.animation:"fade",h=o.data("media"),c=function(){a.animating&&(d&&d.is("video,iframe")&&a.pausemedia(d),h&&h.is("video,iframe")&&a.playmedia(h),o.addClass("wk-active").attr("aria-hidden","false"),n.removeClass("wk-active").attr("aria-hidden","true"),a.animating=!1,a.current=s,i.Utils.checkDisplay(o,'[class*="wk-animation-"]:not(.wk-cover-background.wk-position-cover)'),a.trigger("show.uk.slideshow",[o,n,a]))};a.applyKenBurns(o),i.support.animation||(u="none"),n=i.$(n),o=i.$(o),a.trigger("beforeshow.uk.slideshow",[o,n,a]),t[u].apply(this,[n,o,r]).then(c),a.triggers.removeClass("wk-active"),a.triggers.filter('[data-wk-slideshow-item="'+s+'"]').addClass("wk-active")}},applyKenBurns:function(i){if(this.hasKenBurns(i)){var t=this.options.kenburnsanimations,s=this.kbindex||0;i.data("cover").attr("class","wk-cover-background wk-position-cover").width(),i.data("cover").addClass(["wk-animation-scale","wk-animation-reverse",t[s].trim()].join(" ")),this.kbindex=t[s+1]?s+1:0}},hasKenBurns:function(i){return this.options.kenburns&&i.data("cover")},next:function(){this.show(this.slides[this.current+1]?this.current+1:0,1)},previous:function(){this.show(this.slides[this.current-1]?this.current-1:this.slides.length-1,-1)},start:function(){this.stop();var i=this;this.interval=setInterval(function(){i.hovering||i.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},playmedia:function(i){if(i&&i[0])switch(i[0].nodeName){case"VIDEO":this.options.videomute||(i[0].muted=!1),i[0].play();break;case"IFRAME":this.options.videomute||i[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}',"*"),i[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}',"*")}},pausemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].pause();break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}',"*")}},mutemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].muted=!0;break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}}}),t={none:function(){var t=i.$.Deferred();return t.resolve(),t.promise()},scroll:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.removeClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.addClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),s.width(),a.promise()},swipe:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1===e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.removeClass(-1===e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.addClass(-1==e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),s.width(),a.promise()},scale:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-scale-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-scale-out"),t.width(),e.promise()},fade:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),s.data("cover")||s.data("placeholder")||s.css("opacity",1).one(i.support.animation.end,function(){s.removeClass("wk-slideshow-fade-in")}).addClass("wk-slideshow-fade-in"),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-fade-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-fade-out"),t.width(),e.promise()}},i.slideshow.animations=t,window.addEventListener("message",function(t){var s,e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(a){e={}}t.origin&&t.origin.indexOf("vimeo")>-1&&"ready"==e.event&&e.player_id&&(s=i.$('[data-player-id="'+e.player_id+'"]'),s.length&&s.data("slideshow").mutemedia(s))},!1)});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow-fx",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t=i.slideshow.animations;i.$.extend(i.slideshow.animations,{slice:function(e,s,n,o){if(!e.data("cover"))return t.fade.apply(this,arguments);for(var r,a=i.$.Deferred(),c=Math.ceil(this.element.width()/this.options.slices),h=s.data("cover").css("background-image"),d=i.$('<li class="wk-slideshow-ghost"></li>').css({top:0,left:0,width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),p=d.width(),l=d.height(),u="slice-up"==o?l:"0",f=0;f<this.options.slices;f++){"slice-up-down"==o&&(u=(f%2+2)%2==0?"0":l);var m,g=f==this.options.slices-1?c:c,x="rect(0px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)";m="rect(0px, "+g*(f+1)+"px, 0px, "+c*f+"px)",("slice-up"==o||"slice-up-down"==o&&(f%2+2)%2==0)&&(m="rect("+l+"px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)"),r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:p,height:l,"background-image":h,clip:m,opacity:0,transition:"all "+this.options.duration+"ms ease-in-out "+60*f+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+60*f+"ms"}).data("clip",x),d.append(r)}return this.container.append(d),d.children().last().on(i.support.transition.end,function(){setTimeout(function(){d.remove(),a.resolve()},0)}),d.width(),d.children().each(function(){r=i.$(this),r.css({clip:r.data("clip"),opacity:1})}),a.promise()},"slice-up":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up"])},"slice-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-down"])},"slice-up-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up-down"])},fold:function(e,s){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var n,o=i.$.Deferred(),r=Math.ceil(this.element.width()/this.options.slices),a=s.data("cover").css("background-image"),c=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),h=s.width(),d=s.height(),p=0;p<this.options.slices;p++)n=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:h,height:d,"background-image":a,"transform-origin":r*p+"px 0 0",clip:"rect(0px, "+r*(p+1)+"px, "+d+"px, "+r*p+"px)",opacity:0,transform:"scaleX(0.000001)",transition:"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms"}),c.prepend(n);return this.container.append(c),c.width(),c.children().first().on(i.support.transition.end,function(){setTimeout(function(){c.remove(),o.resolve()},0)}).end().css({transform:"scaleX(1)",opacity:1}),o.promise()},puzzle:function(s,n){if(!n.data("cover"))return t.fade.apply(this,arguments);for(var o,r,a,c=i.$.Deferred(),h=this,d=Math.round(this.options.slices/2),p=Math.round(n.width()/d),l=Math.round(n.height()/p),u=Math.round(n.height()/l)+1,f=n.data("cover").css("background-image"),m=i.$('<li class="wk-slideshow-ghost"></li>').css({width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),g=this.container.width(),x=this.container.height(),w=0;l>w;w++)for(var v=0;d>v;v++)a=v==d-1?p+2:p,r=[u*w+"px",a*(v+1)+"px",u*(w+1)+"px",p*v+"px"],o=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:0,width:g,height:x,"background-image":f,clip:"rect("+r.join(",")+")","-webkit-transform":"translateZ(0)",transform:"translateZ(0)"}),m.append(o);this.container.append(m);var k=e(m.children());return k.each(function(t){i.$(this).css({transition:"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms","-webkit-transition":"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms"})}).last().on(i.support.transition.end,function(){setTimeout(function(){m.remove(),c.resolve()},0)}),m.width(),k.css({opacity:1}),c.promise()},boxes:function(e,s,n,o){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var r,a,c,h,d=i.$.Deferred(),p=Math.round(this.options.slices/2),l=Math.round(s.width()/p),u=Math.round(s.height()/l),f=Math.round(s.height()/u)+1,m=s.data("cover").css("background-image"),g=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),x=s.width(),w=s.height(),v=0;u>v;v++)for(h=0;p>h;h++)c=h==p-1?l+2:l,a=[f*v+"px",c*(h+1)+"px",f*(v+1)+"px",l*h+"px"],r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:1,width:x,height:w,"background-image":m,"transform-origin":a[3]+" "+a[0]+" 0",clip:"rect("+a.join(",")+")","-webkit-transform":"scale(0.0000000000000001)",transform:"scale(0.0000000000000001)"}),g.append(r);this.container.append(g);var k,b=0,y=0,$=0,I=[[]],M=g.children();for("boxes-reverse"==o&&(M=[].reverse.apply(M)),M.each(function(){I[b][y]=i.$(this),y++,y==p&&(b++,y=0,I[b]=[])}),h=0,k=0;p*u>h;h++){k=h;for(var z=0;u>z;z++)k>=0&&p>k&&I[z][k].css({transition:"all "+this.options.duration+"ms linear "+(50+$)+"ms","-webkit-transition":"all "+this.options.duration+"ms linear "+(50+$)+"ms"}),k--;$+=100}return M.last().on(i.support.transition.end,function(){setTimeout(function(){g.remove(),d.resolve()},0)}),g.width(),M.css({"-webkit-transform":"scale(1)",transform:"scale(1)"}),d.promise()},"boxes-reverse":function(i,e,s){return t.boxes.apply(this,[i,e,s,"boxes-reverse"])},"random-fx":function(){var i=["slice-up","fold","puzzle","slice-down","boxes","slice-up-down","boxes-reverse"];return this.fxIndex=(void 0===this.fxIndex?-1:this.fxIndex)+1,i[this.fxIndex]||(this.fxIndex=0),t[i[this.fxIndex]].apply(this,arguments)}});var e=function(i){for(var t,e,s=i.length;s;t=parseInt(Math.random()*s),e=i[--s],i[s]=i[t],i[t]=e);return i};return i.slideshow.animations});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-accordion",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i){var e=t.$(i),o="auto";if(e.is(":visible"))o=e.outerHeight();else{var a={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};o=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(a)}return o}return t.component("accordion",{defaults:{showfirst:!0,collapse:!0,animate:!0,easing:"swing",duration:300,toggle:".wk-accordion-title",containers:".wk-accordion-content",clsactive:"wk-active"},boot:function(){t.ready(function(i){setTimeout(function(){t.$("[data-wk-accordion]",i).each(function(){var i=t.$(this);i.data("accordion")||t.accordion(i,t.Utils.options(i.attr("data-wk-accordion")))})},0)})},init:function(){var i=this;this.element.on("click.uk.accordion",this.options.toggle,function(e){e.preventDefault(),i.toggleItem(t.$(this).data("wrapper"),i.options.animate,i.options.collapse)}),this.update(!0),t.domObserve(this.element,function(){i.element.children(i.options.containers).length&&i.update()})},toggleItem:function(e,o,a){var n=this;e.data("toggle").toggleClass(this.options.clsactive),e.data("content").toggleClass(this.options.clsactive);var s=e.data("toggle").hasClass(this.options.clsactive);a&&(this.toggle.not(e.data("toggle")).removeClass(this.options.clsactive),this.content.not(e.data("content")).removeClass(this.options.clsactive).parent().stop().css("overflow","hidden").animate({height:0},{easing:this.options.easing,duration:o?this.options.duration:0}).attr("aria-expanded","false")),e.stop().css("overflow","hidden"),o?e.animate({height:s?i(e.data("content")):0},{easing:this.options.easing,duration:this.options.duration,complete:function(){s&&(e.css({overflow:"",height:"auto"}),t.Utils.checkDisplay(e.data("content"))),n.trigger("display.uk.check")}}):(e.height(s?"auto":0),s&&(e.css({overflow:""}),t.Utils.checkDisplay(e.data("content"))),this.trigger("display.uk.check")),e.attr("aria-expanded",s),this.element.trigger("toggle.uk.accordion",[s,e.data("toggle"),e.data("content")])},update:function(i){var e,o,a,n=this;this.toggle=this.find(this.options.toggle),this.content=this.find(this.options.containers),this.content.each(function(i){e=t.$(this),e.parent().data("wrapper")?o=e.parent():(o=t.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent(),o.attr("aria-expanded","false")),a=n.toggle.eq(i),o.data("toggle",a),o.data("content",e),a.data("wrapper",o),e.data("wrapper",o)}),this.element.trigger("update.uk.accordion",[this]),i&&this.options.showfirst&&this.toggleItem(this.toggle.eq(0).data("wrapper"),!1,!1)}}),t.accordion});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2wk&&(t=e(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-parallax",["uikit"],function(){return t||e(UIkit2wk)})}(function(e){"use strict";function t(t,a,r){var i,n,s,o,c,l,p,f=new Image;return n=t.element.css({backgroundSize:"cover",backgroundRepeat:"no-repeat"}),i=n.css("background-image").replace(/^url\(/g,"").replace(/\)$/g,"").replace(/("|')/g,""),o=function(){var e=n.innerWidth(),i=n.innerHeight(),o="bg"==a?r.diff:r.diff/100*i;return i+=o,e+=Math.ceil(o*c),e-o<s.w&&i<s.h?t.element.css({backgroundSize:"auto"}):(i>e/c?(l=Math.ceil(i*c),p=i,i>window.innerHeight&&(l=1.2*l,p=1.2*p)):(l=e,p=Math.ceil(e/c)),n.css({backgroundSize:l+"px "+p+"px"}).data("bgsize",{w:l,h:p}),void 0)},f.onerror=function(){},f.onload=function(){s={w:f.width,h:f.height},c=f.width/f.height,e.$win.on("load resize orientationchange",e.Utils.debounce(function(){o()},50)),o()},f.src=i,!0}function a(e,t,a){return e=i(e),t=i(t),a=a||0,r(e,t,a)}function r(e,t,a){var r="rgba("+parseInt(e[0]+a*(t[0]-e[0]),10)+","+parseInt(e[1]+a*(t[1]-e[1]),10)+","+parseInt(e[2]+a*(t[2]-e[2]),10)+","+(e&&t?parseFloat(e[3]+a*(t[3]-e[3])):1);return r+=")"}function i(e){var t,a;return a=(t=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(t=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(t[1],16),17*parseInt(t[2],16),17*parseInt(t[3],16),1]:(t=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]:(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10),parseFloat(t[4])]:p[e]||[255,255,255,0]}var n=[],s=!1,o=0,c=window.innerHeight,l=function(){o=e.$win.scrollTop(),window.requestAnimationFrame(function(){for(var e=0;e<n.length;e++)n[e].process()})};e.component("parallax",{defaults:{velocity:.5,target:!1,viewport:!1,media:!1},boot:function(){s=function(){var e,t=document.createElement("div"),a={WebkitTransform:"-webkit-transform",MSTransform:"-ms-transform",MozTransform:"-moz-transform",Transform:"transform"};document.body.insertBefore(t,null);for(var r in a)void 0!==t.style[r]&&(t.style[r]="translate3d(1px,1px,1px)",e=window.getComputedStyle(t).getPropertyValue(a[r]));return document.body.removeChild(t),void 0!==e&&e.length>0&&"none"!==e}(),e.$doc.on("scrolling.uk.document",l),e.$win.on("load resize orientationchange",e.Utils.debounce(function(){c=window.innerHeight,l()},50)),e.ready(function(t){e.$("[data-wk-parallax]",t).each(function(){var t=e.$(this);t.data("parallax")||e.parallax(t,e.Utils.options(t.attr("data-wk-parallax")))})})},init:function(){this.base=this.options.target?e.$(this.options.target):this.element,this.props={},this.velocity=this.options.velocity||1;var t=["target","velocity","viewport","plugins","media"];Object.keys(this.options).forEach(function(e){if(-1===t.indexOf(e)){var a,r,i,n,s=String(this.options[e]).split(",");e.match(/color/i)?(a=s[1]?s[0]:this._getStartValue(e),r=s[1]?s[1]:s[0],a||(a="rgba(255,255,255,0)")):(a=parseFloat(s[1]?s[0]:this._getStartValue(e)),r=parseFloat(s[1]?s[1]:s[0]),n=r>a?r-a:a-r,i=r>a?1:-1),this.props[e]={start:a,end:r,dir:i,diff:n}}}.bind(this)),n.push(this)},process:function(){if(this.options.media)switch(typeof this.options.media){case"number":if(window.innerWidth<this.options.media)return!1;break;case"string":if(window.matchMedia&&!window.matchMedia(this.options.media).matches)return!1}var e=this.percentageInViewport();this.options.viewport!==!1&&(e=0===this.options.viewport?1:e/this.options.viewport),this.update(e)},percentageInViewport:function(){var e,t,a,r=this.base.offset().top,i=this.base.outerHeight();return r>o+c?a=0:o>r+i?a=1:c>r+i?a=(c>o?o:o-c)/(r+i):(e=o+c-r,t=Math.round(e/((c+i)/100)),a=t/100),a},update:function(e){var r,i,n={transform:"",filter:""},o=e*(1-(this.velocity-this.velocity*e));0>o&&(o=0),o>1&&(o=1),(void 0===this._percent||this._percent!=o)&&(Object.keys(this.props).forEach(function(c){switch(r=this.props[c],0===e?i=r.start:1===e?i=r.end:void 0!==r.diff&&(i=r.start+r.diff*o*r.dir),"bg"!=c&&"bgp"!=c||this._bgcover||(this._bgcover=t(this,c,r)),c){case"x":n.transform+=s?" translate3d("+i+"px, 0, 0)":" translateX("+i+"px)";break;case"xp":n.transform+=s?" translate3d("+i+"%, 0, 0)":" translateX("+i+"%)";break;case"y":n.transform+=s?" translate3d(0, "+i+"px, 0)":" translateY("+i+"px)";break;case"yp":n.transform+=s?" translate3d(0, "+i+"%, 0)":" translateY("+i+"%)";break;case"rotate":n.transform+=" rotate("+i+"deg)";break;case"scale":n.transform+=" scale("+i+")";break;case"bg":n["background-position"]="50% "+i+"px";break;case"bgp":n["background-position"]="50% "+i+"%";break;case"color":case"background-color":case"border-color":n[c]=a(r.start,r.end,o);break;case"blur":n.filter+=" blur("+i+"px)";break;case"hue":n.filter+=" hue-rotate("+i+"deg)";break;case"grayscale":n.filter+=" grayscale("+i+"%)";break;case"invert":n.filter+=" invert("+i+"%)";break;case"fopacity":n.filter+=" opacity("+i+"%)";break;case"saturate":n.filter+=" saturate("+i+"%)";break;case"sepia":n.filter+=" sepia("+i+"%)";break;default:n[c]=i}}.bind(this)),n.filter&&(n["-webkit-filter"]=n.filter),this.element.css(n),this._percent=o)},_getStartValue:function(e){var t=0;switch(e){case"scale":t=1;break;default:t=this.element.css(e)}return t||0}});var p={black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]};return e.parallax});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2wk&&(e=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slider",["uikit"],function(){return e||t(UIkit2wk)})}(function(t){"use strict";var e,i,s,n,a={};return t.component("slider",{defaults:{center:!1,threshold:10,infinite:!0,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0,activecls:"wk-active"},boot:function(){t.ready(function(e){setTimeout(function(){t.$("[data-wk-slider]",e).each(function(){var e=t.$(this);e.data("slider")||t.slider(e,t.Utils.options(e.attr("data-wk-slider")))})},0)})},init:function(){var o=this;this.container=this.element.find(".wk-slider"),this.focus=0,t.$win.on("resize load",t.Utils.debounce(function(){o.update(!0)},100)),this.on("click.uk.slider","[data-wk-slider-item]",function(e){e.preventDefault();var i=t.$(this).attr("data-wk-slider-item");if(o.focus!=i)switch(o.stop(),i){case"next":case"previous":o["next"==i?"next":"previous"]();break;default:o.updateFocus(parseInt(i,10))}}),this.container.on({"touchstart mousedown":function(h){h.originalEvent&&h.originalEvent.touches&&(h=h.originalEvent.touches[0]),h.button&&2==h.button||!o.active||(o.stop(),s=t.$(h.target).is("a")?t.$(h.target):t.$(h.target).parents("a:first"),n=!1,s.length&&s.one("click",function(t){n&&t.preventDefault()}),i=function(t){n=!0,e=o,a={touchx:parseInt(t.pageX,10),dir:1,focus:o.focus,base:o.options.center?"center":"area"},t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),e.element.data({"pointer-start":{x:parseInt(t.pageX,10),y:parseInt(t.pageY,10)},"pointer-pos-start":o.pos}),o.container.addClass("wk-drag"),i=!1},i.x=parseInt(h.pageX,10),i.threshold=o.options.threshold)},mouseenter:function(){o.options.pauseOnHover&&(o.hovering=!0)},mouseleave:function(){o.hovering=!1}}),this.update(!0),this.on("display.uk.check",function(){o.element.is(":visible")&&o.update(!0)}),this.element.find("a,img").attr("draggable","false"),this.options.autoplay&&this.start(),t.domObserve(this.element,function(){o.element.children(":not([data-slider-slide])").length&&o.update(!0)})},update:function(e){var i,s,n,a,o=this,h=0,r=0;return this.items=this.container.children().filter(":visible"),this.vp=this.element[0].getBoundingClientRect().width,this.container.css({"min-width":"","min-height":""}),this.items.each(function(e){i=t.$(this).attr("data-slider-slide",e),a=i.css({left:"",width:""})[0].getBoundingClientRect(),s=a.width,n=i.width(),r=Math.max(r,a.height),i.css({left:h,width:s}).data({idx:e,left:h,width:s,cwidth:n,area:h+s,center:h-(o.vp/2-n/2)}),h+=s}),this.container.css({"min-width":h,"min-height":r}),this.options.infinite&&(h<=2*this.vp||this.items.length<5)&&!this.itemsResized?(this.container.children().each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}).each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}),this.itemsResized=!0,this.update()):(this.cw=h,this.pos=0,this.active=h>=this.vp,this.container.css({"-ms-transform":"","-webkit-transform":"",transform:""}),e&&this.updateFocus(this.focus),void 0)},updatePos:function(t){this.pos=t,this.container.css({"-ms-transform":"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)",transform:"translateX("+t+"px)"})},updateFocus:function(e,i){if(this.active){i=i||(e>this.focus?1:-1);var s,n,a=this.items.eq(e);if(this.options.infinite&&this.infinite(e,i),this.options.center)this.updatePos(-1*a.data("center")),this.items.filter("."+this.options.activecls).removeClass(this.options.activecls),a.addClass(this.options.activecls);else if(this.options.infinite)this.updatePos(-1*a.data("left"));else{for(s=0,n=e;n<this.items.length;n++)s+=this.items.eq(n).data("width");if(s>this.vp)this.updatePos(-1*a.data("left"));else if(1==i){for(s=0,n=this.items.length-1;n>=0;n--){if(s+=this.items.eq(n).data("width"),s==this.vp){e=n;break}if(s>this.vp){e=n<this.items.length-1?n+1:n;break}}s>this.vp?this.updatePos(-1*(this.container.width()-this.vp)):this.updatePos(-1*this.items.eq(e).data("left"))}}var o=this.items.eq(e).data("left");this.items.removeClass("wk-slide-before wk-slide-after").each(function(i){i!==e&&t.$(this).addClass(t.$(this).data("left")<o?"wk-slide-before":"wk-slide-after")}),this.focus=e,this.trigger("focusitem.uk.slider",[e,this.items.eq(e),this])}},next:function(){var t=this.items[this.focus+1]?this.focus+1:this.options.infinite?0:this.focus;this.updateFocus(t,1)},previous:function(){var t=this.items[this.focus-1]?this.focus-1:this.options.infinite?this.items[this.focus-1]?this.items-1:this.items.length-1:this.focus;this.updateFocus(t,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},infinite:function(t,e){var i,s=this,n=this.items.eq(t),a=t,o=[],h=0;if(1==e){for(i=0;i<this.items.length&&(a!=t&&(h+=this.items.eq(a).data("width"),o.push(this.items.eq(a))),!(h>this.vp));i++)a=a+1==this.items.length?0:a+1;o.length&&o.forEach(function(t){var e=n.data("area");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}else{for(i=this.items.length-1;i>-1&&(h+=this.items.eq(a).data("width"),a!=t&&o.push(this.items.eq(a)),!(h>this.vp));i--)a=a-1==-1?this.items.length-1:a-1;o.length&&o.forEach(function(t){var e=n.data("left")-t.data("width");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}}}),t.$doc.on("mousemove.uk.slider touchmove.uk.slider",function(t){if(t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i&&Math.abs(t.pageX-i.x)>i.threshold&&(window.getSelection().toString()?e=i=!1:i(t)),e){var s,n,o,h,r,c,d,u,f,l;if(t.clientX||t.clientY?s=t.clientX:(t.pageX||t.pageY)&&(s=t.pageX-document.body.scrollLeft-document.documentElement.scrollLeft),r=a.focus,n=s-e.element.data("pointer-start").x,o=e.element.data("pointer-pos-start")+n,h=s>e.element.data("pointer-start").x?-1:1,c=e.items.eq(a.focus),1==h)for(d=c.data("left")+Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("left")<d&&l.data("area")>d){r=f;break}f=f+1==e.items.length?0:f+1}else for(d=c.data("left")-Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("area")<=c.data("left")&&l.data("center")<d){r=f;break}f=f-1==-1?e.items.length-1:f-1}e.options.infinite&&r!=a._focus&&e.infinite(r,h),e.updatePos(o),a.dir=h,a._focus=r,a.touchx=parseInt(t.pageX,10),a.diff=d}}),t.$doc.on("mouseup.uk.slider touchend.uk.slider",function(){if(e){e.container.removeClass("wk-drag"),e.items.eq(a.focus);var t,s,n,o=!1;if(1==a.dir){for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")>a.diff){o=n;break}n=n+1==e.items.length?0:n+1}e.options.infinite||o||(o=e.items.length)}else{for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")<a.diff){o=n;break}n=n-1==-1?e.items.length-1:n-1}e.options.infinite||o||(o=0)}e.updateFocus(o!==!1?o:a._focus)}e=i=!1}),t.slider});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="wk-modal">','<div class="wk-modal-dialog wk-modal-dialog-lightbox wk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="wk-modal-close wk-close wk-close-alt"></a>','<div class="wk-lightbox-content"></div>','<div class="wk-modal-spinner wk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".wk-modal-dialog:first"),e.content=e.find(".wk-lightbox-content:first"),e.loader=e.find(".wk-modal-spinner:first"),e.closer=e.find(".wk-close.wk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-wk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-wk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$('[data-wk-lightbox*="'+this.options.group+'"]'):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("wk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="wk-position-cover wk-flex wk-flex-middle wk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-previous wk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-next wk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%",maxWidth:t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".wk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="wk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".wk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("wk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("wk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("wk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="wk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),i.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox});

widgetkit/uikit2-a35074c8.js000064400000331161152177723720011402 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2wk)return window.UIkit2wk;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2wk=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-wk-margin], [data-wk-grid-match], [data-wk-grid-margin], [data-wk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="wk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/wk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".wk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-wk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"wk-touch":"wk-notouch"),i.support.touch){var n,o=!1,s="wk-hover",a=".wk-overlay, .wk-overlay-hover, .wk-overlay-toggle, .wk-animation-hover, .wk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"wk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-wk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.wk-responsive-width, [data-wk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"wk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-wk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2wk),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-wk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-wk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2wk),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"wk-scrollspy-inview",initcls:"wk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-wk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-wk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-wk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("wk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("wk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"wk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-wk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-wk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"wk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-wk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-wk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("wk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" wk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("wk-hidden"))})}})}(UIkit2wk),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".wk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-wk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-wk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2wk),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-wk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-wk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"wk-active",target:".wk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-wk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-wk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-wk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-wk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("wk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("wk-active")])})},toggle:function(){this.element.toggleClass("wk-active"),this.element.attr("aria-pressed",this.element.hasClass("wk-active"))}})}(UIkit2wk),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".wk-dropdown,.wk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-wk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-wk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("wk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("wk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("wk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("wk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("wk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("wk-open")?(!i.dropdown.find(e.target).length||n.is(".wk-dropdown-close")||n.parents(".wk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".wk-dropdown-close")||o.parents(".wk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("wk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("wk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("wk-dropdown-top wk-dropdown-bottom wk-dropdown-left wk-dropdown-right wk-dropdown-stack wk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("wk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("wk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("wk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-wk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-wk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("wk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="wk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("wk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("wk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2wk),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-wk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-wk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"wk-grid-margin",rowfirst:"wk-row-first"},boot:function(){t.ready(function(i){t.$("[data-wk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-wk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2wk),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2wk.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".wk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".wk-modal.wk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".wk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("wk-open")),this.on("click",".wk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".wk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("wk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("wk-open")):(this.element.addClass("wk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("wk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("wk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".wk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("wk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("wk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("wk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-wk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-wk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="wk-modal"><div class="wk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-button-primary wk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i)+"</div>",'<div class="wk-modal-footer wk-text-right"><button class="wk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="wk-modal-content wk-form">'+String(i)+"</div>":"",'<div class="wk-margin-small-top wk-modal-content wk-form"><p><input type="text" class="wk-width-1-1"></p></div>','<div class="wk-modal-footer wk-text-right"><button class="wk-button wk-modal-close">'+o.labels.Cancel+'</button> <button class="wk-button wk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="wk-margin wk-modal-content">'+String(i||'<div class="wk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".wk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2wk),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.wk-parent > a[href="#"]',lists:">li.wk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-wk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-wk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("wk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("wk-hidden"))),n.attr("aria-expanded",n.hasClass("wk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".wk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("wk-open").end().addClass("wk-hidden")})}),a.toggleClass("wk-open"),a.attr("aria-expanded",a.hasClass("wk-open")),r&&(a.hasClass("wk-open")&&r.removeClass("wk-hidden"),n?(r.stop().height(a.hasClass("wk-open")?"auto":0),a.hasClass("wk-open")||r.addClass("wk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("wk-open")?i(r.find("ul:first")):0},function(){a.hasClass("wk-open")?r.css("height",""):r.addClass("wk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2wk),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".wk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("wk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("wk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("wk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("wk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".wk-offcanvas.wk-active"),a="right"==t.langdirection,r=s.find(".wk-offcanvas-bar:first"),l=function(){o.removeClass("wk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("wk-active"),r.removeClass("wk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("wk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".wk-offcanvas-bar:first").length)return}else if(!e.hasClass("wk-offcanvas-close")){if(e.hasClass("wk-offcanvas-bar"))return;if(e.parents(".wk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-wk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-wk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-wk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2wk),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("wk-active "+r+" wk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" wk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("wk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-wk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-wk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-wk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("wk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".wk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("wk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".wk-active").removeClass("wk-active"),r.addClass("wk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".wk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("wk-active"),o.addClass("wk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["wk-animation-slide-top","wk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["wk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["wk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["wk-animation-slide-right","wk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2wk),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.wk-tab-responsive, .wk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-wk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-wk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("wk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("wk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="wk-tab-responsive wk-active"><a></a></li>').append('<div class="wk-dropdown wk-dropdown-small"><ul class="wk-nav wk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".wk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("wk-tab-bottom")&&this.responsivetab.dropdown.addClass("wk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.wk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.wk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".wk-tab-responsive").filter(".wk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.wk-tab-responsive)").removeClass("wk-hidden");if(!i.length)return this.responsivetab.addClass("wk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("wk-dropdown")||(e.hasClass("wk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("wk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("wk-hidden")}})}(UIkit2wk),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-wk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-wk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2wk);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideset",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i,e,n,s){var a,o,r,l,h=t.$.Deferred(),u=this.options.delay===!1?Math.floor(this.options.duration/2):this.options.delay,d=this;if(s=s||1,this.element.css("min-height",this.element.height()),n[0]===e[0])return h.resolve(),h.promise();if("object"==typeof i?(a=i[0],o=i[1]||i[0]):(a=i,o=a),t.$body.css("overflow-x","hidden"),r=function(){if(e&&e.length&&e.hide().removeClass(o+" wk-animation-reverse").css({opacity:"","animation-delay":"",animation:""}),!n.length)return h.resolve(),void 0;for(l=0;l<n.length;l++)n.eq(1==s?l:n.length-l-1).css("animation-delay",l*u+"ms");var i=function(){n.removeClass(""+a).css({opacity:"",display:"","animation-delay":"",animation:""}),h.resolve(),t.$body.css("overflow-x",""),d.element.css("min-height",""),i=!1};n.addClass(a)[1==s?"last":"first"]().one(t.support.animation.end,function(){i&&i()}).end().css("display",""),setTimeout(function(){i&&i()},n.length*u*2)},n.length&&n.css("animation-duration",this.options.duration+"ms"),e&&e.length)for(e.css("animation-duration",this.options.duration+"ms")[1==s?"last":"first"]().one(t.support.animation.end,function(){r()}),l=0;l<e.length;l++)!function(i,e){setTimeout(function(){e.css("display","none").css("display","").css("opacity",0).on(t.support.animation.end,function(){e.removeClass(o)}).addClass(o+" wk-animation-reverse")}.bind(this),l*u)}(l,e.eq(1==s?l:e.length-l-1));else r();return h.promise()}function e(t,i){var e,n=0,s=-1,a=t.length||0,o=[];if(1>i)return null;for(;a>n;)e=n%i,e?o[s][e]=t[n]:o[++s]=[t[n]],n++;for(n=0,a=o.length;a>n;)o[n]=jQuery(o[n]),n++;return o}var n;t.component("slideset",{defaults:{"default":1,animation:"fade",duration:200,filter:"",delay:!1,controls:!1,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},sets:[],boot:function(){t.ready(function(i){t.$("[data-wk-slideset]",i).each(function(){var i=t.$(this);i.data("slideset")||t.slideset(i,t.Utils.options(i.attr("data-wk-slideset")))})})},init:function(){var i=this;this.activeSet=!1,this.list=this.element.find(".wk-slideset"),this.nav=this.element.find(".wk-slideset-nav"),this.controls=this.options.controls?t.$(this.options.controls):this.element,t.$win.on("resize load",t.Utils.debounce(function(){i.update()},100)),i.list.addClass("wk-grid-width-1-"+i.options.default),["xlarge","large","medium","small"].forEach(function(t){i.options[t]&&i.list.addClass("wk-grid-width-"+t+"-1-"+i.options[t])}),this.on("click.uk.slideset","[data-wk-slideset-item]",function(e){if(e.preventDefault(),!i.animating){var n=t.$(this).attr("data-wk-slideset-item");if(i.activeSet!==n)switch(n){case"next":case"previous":i["next"==n?"next":"previous"]();break;default:i.show(parseInt(n,10))}}}),this.controls.on("click.uk.slideset","[data-wk-filter]",function(e){var n=t.$(this);n.parent().hasClass("wk-slideset")||(e.preventDefault(),i.animating||i.currentFilter==n.attr("data-wk-filter")||(i.updateFilter(n.attr("data-wk-filter")),i._hide().then(function(){i.update(!0,!0)})))}),this.on("swipeRight swipeLeft",function(t){i["swipeLeft"==t.type?"next":"previous"]()}),this.updateFilter(this.options.filter),this.update(),this.element.on({mouseenter:function(){i.options.pauseOnHover&&(i.hovering=!0)},mouseleave:function(){i.hovering=!1}}),this.options.autoplay&&this.start(),t.domObserve(this.list,function(){i.list.children(":visible:not(.wk-active)").length&&i.update(!1,!0)})},update:function(t,i){var n,s=this.visible;if(this.visible=this.getVisibleOnCurrenBreakpoint(),s!=this.visible||i){for(this.children=this.list.children().hide(),this.items=this.getItems(),this.sets=e(this.items,this.visible),n=0;n<this.sets.length;n++)this.sets[n].css({display:"none"});if(this.nav.length&&this.nav.empty()){for(n=0;n<this.sets.length;n++)this.nav.append('<li data-wk-slideset-item="'+n+'"><a></a></li>');this.nav[1==this.nav.children().length?"addClass":"removeClass"]("wk-invisible")}this.activeSet=!1,this.show(0,!t)}},updateFilter:function(i){var e,n=this;this.currentFilter=i,this.controls.find("[data-wk-filter]").each(function(){e=t.$(this),e.parent().hasClass("wk-slideset")||(e.attr("data-wk-filter")==n.currentFilter?e.addClass("wk-active"):e.removeClass("wk-active"))})},getVisibleOnCurrenBreakpoint:function(){var i=null,e=t.$('<div style="position:absolute;height:1px;top:-1000px;width:100px"><div></div></div>').appendTo("body"),n=e.children().eq(0),s=this.options;return["xlarge","large","medium","small"].forEach(function(t){s[t]&&!i&&(e.attr("class","wk-grid-width-"+t+"-1-2").width(),50==n.width()&&(i=t))}),e.remove(),this.options[i]||this.options["default"]},getItems:function(){var i,e=[];return this.currentFilter?(i=this.currentFilter||[],"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()})),this.children.each(function(){var n=t.$(this),s=n.attr("data-wk-filter"),a=i.length?!1:!0;s&&(s=s.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){s.indexOf(t)>-1&&(a=!0)})),a&&e.push(n[0])}),e=t.$(e)):e=this.list.children(),e},show:function(i,e,s){var a=this;if(this.activeSet!==i&&!this.animating){s=s||(i<this.activeSet?-1:1);var o=this.sets[this.activeSet]||[],r=this.sets[i],l=this._getAnimation();(e||!t.support.animation)&&(l=n.none),this.animating=!0,this.nav.length&&this.nav.children().removeClass("wk-active").eq(i).addClass("wk-active"),l.apply(a,[o,r,s]).then(function(){t.Utils.checkDisplay(r,!0),a.children.hide().removeClass("wk-active"),r.addClass("wk-active").css({display:"",opacity:""}),a.animating=!1,a.activeSet=i,t.Utils.checkDisplay(r,!0),a.trigger("show.uk.slideset",[r])})}},_getAnimation:function(){var i=n[this.options.animation]||n.none;return t.support.animation||(i=n.none),i},_hide:function(){var t=this,i=this.sets[this.activeSet]||[],e=this._getAnimation();return this.animating=!0,e.apply(t,[i,[],1]).then(function(){t.animating=!1})},next:function(){this.show(this.sets[this.activeSet+1]?this.activeSet+1:0,!1,1)},previous:function(){this.show(this.sets[this.activeSet-1]?this.activeSet-1:this.sets.length-1,!1,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.animating||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)}}),n={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["wk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["wk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["wk-animation-slide-top",t,e])},"slide-vertical":function(t,e,n){var s=["wk-animation-slide-top","wk-animation-slide-bottom"];return-1==n&&s.reverse(),i.apply(this,[s,t,e])},"slide-horizontal":function(t,e,n){var s=["wk-animation-slide-right","wk-animation-slide-left"];return-1==n&&s.reverse(),i.apply(this,[s,t,e,n])},scale:function(t,e){return i.apply(this,["wk-animation-scale-up",t,e])}},t.slideset.animations=n});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";t.component("grid",{defaults:{colwidth:"auto",animation:!0,duration:300,gutter:0,controls:!1,filter:!1,origin:t.langdirection},boot:function(){t.ready(function(i){t.$("[data-wk-grid]",i).each(function(){var i=t.$(this);i.data("grid")||t.grid(i,t.Utils.options(i.attr("data-wk-grid")))})})},init:function(){var i=this,e=String(this.options.gutter).trim().split(" ");this.gutterv=parseInt(e[0],10),this.gutterh=parseInt(e[1]||e[0],10),this.element.css({position:"relative"}),this.controls=null,this.origin=this.options.origin,this.options.controls&&(this.controls=t.$(this.options.controls),this.controls.on("click","[data-wk-filter]",function(e){e.preventDefault(),i.filter(t.$(this).attr("data-wk-filter"))}),this.controls.on("click","[data-wk-sort]",function(e){e.preventDefault();var n=t.$(this).attr("data-wk-sort").split(":");i.sort(n[0],n[1])})),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){i.currentfilter?i.filter(i.currentfilter):this.update()}.bind(this),100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.update()}),t.domObserve(this.element,function(){i.update()}),this.options.filter!==!1?this.filter(this.options.filter):this.update()},_prepareElements:function(){var t,i=this.element.children().not("[data-grid-prepared]");i.length&&(t={position:"absolute",boxSizing:"border-box",width:"auto"==this.options.colwidth?"":this.options.colwidth},this.options.gutter&&(t["padding-"+this.origin]=this.gutterh,t["padding-bottom"]=this.gutterv,this.element.css("margin-"+this.origin,-1*this.gutterh)),i.attr("data-grid-prepared","true").css(t))},update:function(i){var e=this;this._prepareElements(),i=i||this.element.children(":visible");var n,o,s,r,a,h,d,l,u,c=i,f=this.element.width()+2*this.gutterh+2,p=0,g=0,m=[];this.trigger("beforeupdate.uk.grid",[c]),c.each(function(){for(n=t.$(this),u=this.getBoundingClientRect(),o=u.width,s=u.height,p=0,g=0,h=0,l=m.length;l>h;h++)r=m[h],p<=r.aX&&(p=r.aX),p+o>f&&(p=0),g<=r.aY&&(g=r.aY);a={ele:n,top:g,width:o,height:s,aY:g+s,aX:p+o},a[e.origin]=p,m.push(a)});var v,k,b=0;for(h=0,l=m.length;l>h;h++){for(r=m[h],g=0,d=0;h>d;d++)v=m[d],r[this.origin]<v.aX&&v[this.origin]+1<r.aX&&(g=v.aY);r.top=g,r.aY=g+r.height,b=Math.max(b,r.aY)}b-=this.gutterv,this.options.animation?(this.element.stop().animate({height:b},100),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.stop().animate(k,this.options.duration)}.bind(this))):(this.element.css("height",b),m.forEach(function(t){k={top:t.top,opacity:1},k[e.origin]=t[e.origin],t.ele.css(k)}.bind(this))),setTimeout(function(){t.$doc.trigger("scrolling.uk.document")},2*this.options.duration*(this.options.animation?1:0)),this.trigger("afterupdate.uk.grid",[c])},filter:function(i){this.currentfilter=i,i=i||[],"number"==typeof i&&(i=i.toString()),"string"==typeof i&&(i=i.split(/,/).map(function(t){return t.trim()}));var e=this,n=this.element.children(),o={visible:[],hidden:[]};n.each(function(){var e=t.$(this),n=e.attr("data-wk-filter"),s=i.length?!1:!0;n&&(n=n.split(/,/).map(function(t){return t.trim()}),i.forEach(function(t){n.indexOf(t)>-1&&(s=!0)})),o[s?"visible":"hidden"].push(e)}),o.hidden=t.$(o.hidden).map(function(){return this[0]}),o.visible=t.$(o.visible).map(function(){return this[0]}),o.hidden.attr("aria-hidden","true").filter(":visible").fadeOut(this.options.duration),o.visible.attr("aria-hidden","false").filter(":hidden").css("opacity",0).show(),e.update(o.visible),this.controls&&this.controls.length&&this.controls.find("[data-wk-filter]").removeClass("wk-active").filter('[data-wk-filter="'+i+'"]').addClass("wk-active")},sort:function(i,e){e=e||1,"string"==typeof e&&(e="desc"==e.toLowerCase()?-1:1);var n=this.element.children();n.sort(function(n,o){return n=t.$(n),o=t.$(o),(o.data(i)||"")<(n.data(i)||"")?e:-1*e}).appendTo(this.element),this.update(n.filter(":visible")),this.controls&&this.controls.length&&this.controls.find("[data-wk-sort]").removeClass("wk-active").filter('[data-wk-sort="'+i+":"+(-1==e?"desc":"asc")+'"]').addClass("wk-active")}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var n;window.UIkit2wk&&(n=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-grid-parallax",["uikit"],function(){return n||t(UIkit2wk)})}(function(t){function n(t){for(var n=t.children(),i=n.filter(":visible:first"),e=i[0].offsetTop+i.outerHeight(),o=0;o<n.length&&!(n[o].offsetTop>=e);o++);return o||1}function i(n){var i,e,o,r=n.offset().top,s=n.outerHeight(),a=t.$win.scrollTop(),l=window.innerHeight;return r>a+l?o=0:a>r+s?o=1:(l>r+s?o=(l>a?a:a-l)/(r+s):(i=a+l-r,e=Math.round(i/((l+s)/100)),o=e/100),l>r&&(o=o*a/(r+s-l))),o>1?1:o}var e=[],o=function(){requestAnimationFrame(function(){for(var t=0;t<e.length;t++)e[t].process()})};t.component("gridparallax",{defaults:{target:!1,smooth:150,translate:150},boot:function(){t.$doc.on("scrolling.uk.document",o),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){o()},50)),t.ready(function(n){t.$("[data-wk-grid-parallax]",n).each(function(){var n=t.$(this);n.data("gridparallax")||t.gridparallax(n,t.Utils.options(n.attr("data-wk-grid-parallax")))})})},init:function(){var i=this;this.initItems().process(),e.push(this),t.$win.on("load resize orientationchange",function(){var e=function(){var t=n(i.element);i.element.css("margin-bottom",""),t>1&&i.element.css("margin-bottom",i.options.translate+parseInt(i.element.css("margin-bottom")))};return t.$(function(){e()}),t.Utils.debounce(e,50)}())},initItems:function(){var n=this.options.smooth;return this.items=(this.options.target?this.element.find(this.options.target):this.element.children()).each(function(){t.$(this).css({transition:"transform "+n+"ms linear",transform:""})}),this},process:function(){var e=i(this.element),o=n(this.element),r=this.items,s=[o-1];if(1==o||!e)return r.css("transform",""),void 0;for(;s.length<o&&s[s.length-1]-2;)s.push(s[s.length-1]-2);var a=this.options.translate,l=e*a;r.each(function(n,i,e){e=-1!=s.indexOf((n+1)%o)?l:l/8,t.$(this).css("transform","translate3d(0,"+e+"px, 0)")})}})});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t,s=0;i.component("slideshow",{defaults:{animation:"fade",duration:500,height:"auto",start:0,autoplay:!1,autoplayInterval:7e3,videoautoplay:!0,videomute:!0,slices:15,pauseOnHover:!0,kenburns:!1,kenburnsanimations:["wk-animation-middle-left","wk-animation-top-right","wk-animation-bottom-left","wk-animation-top-center","","wk-animation-bottom-right"]},current:!1,interval:null,hovering:!1,boot:function(){i.ready(function(t){i.$("[data-wk-slideshow]",t).each(function(){var t=i.$(this);t.data("slideshow")||i.slideshow(t,i.Utils.options(t.attr("data-wk-slideshow")))})})},init:function(){var t=this;this.container=this.element.hasClass("wk-slideshow")?this.element:i.$(this.find(".wk-slideshow:first")),this.current=this.options.start,this.animating=!1,this.fixFullscreen=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&this.container.hasClass("wk-slideshow-fullscreen"),this.options.kenburns&&(this.kbanimduration=this.options.kenburns===!0?"15s":this.options.kenburns,String(this.kbanimduration).match(/(ms|s)$/)||(this.kbanimduration+="ms"),"string"==typeof this.options.kenburnsanimations&&(this.options.kenburnsanimations=this.options.kenburnsanimations.split(","))),this.update(),this.on("click.uk.slideshow","[data-wk-slideshow-item]",function(s){s.preventDefault();var e=i.$(this).attr("data-wk-slideshow-item");if(t.current!=e){switch(e){case"next":case"previous":t["next"==e?"next":"previous"]();break;default:t.show(parseInt(e,10))}t.stop()}}),i.$win.on("resize load",i.Utils.debounce(function(){t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight))},100)),setTimeout(function(){t.resize()},80),this.options.autoplay&&this.start(),this.options.videoautoplay&&this.slides.eq(this.current).data("media")&&this.playmedia(this.slides.eq(this.current).data("media")),this.options.kenburns&&this.applyKenBurns(this.slides.eq(this.current)),this.container.on({mouseenter:function(){t.options.pauseOnHover&&(t.hovering=!0)},mouseleave:function(){t.hovering=!1}}),this.on("swipeRight swipeLeft",function(i){t["swipeLeft"==i.type?"next":"previous"]()}),this.on("display.uk.check",function(){t.element.is(":visible")&&(t.resize(),t.fixFullscreen&&(t.container.css("height",window.innerHeight),t.slides.css("height",window.innerHeight)))}),i.domObserve(this.element,function(){t.container.children(":not([data-slideshow-slide])").not(".wk-slideshow-ghost").length&&t.update(!0)})},update:function(t){var e,a=this,n=0;this.slides=this.container.children(),this.slidesCount=this.slides.length,this.slides.eq(this.current).length||(this.current=0),this.slides.each(function(t){var o=i.$(this);if(!o.data("processed")){var r=o.children("img,video,iframe").eq(0),d="html";if(o.data("media",r),o.data("sizer",r),r.length){var u;switch(d=r[0].nodeName.toLowerCase(),r[0].nodeName){case"IMG":var h=i.$('<div class="wk-cover-background wk-position-cover"></div>').css({"background-image":"url("+r.attr("src")+")"});r.attr("width")&&r.attr("height")&&(u=i.$("<canvas></canvas>").attr({width:r.attr("width"),height:r.attr("height")}),r.replaceWith(u),r=u,u=void 0),r.css({width:"100%",height:"auto",opacity:0}),o.prepend(h).data("cover",h);break;case"IFRAME":var c=r[0].src,l="sw-"+ ++s;r.attr("src","").on("load",function(){if((t!==a.current||t==a.current&&!a.options.videoautoplay)&&a.pausemedia(r),a.options.videomute){a.mutemedia(r);var i=setInterval(function(t){return function(){a.mutemedia(r),++t>=4&&clearInterval(i)}}(0),250)}}).data("slideshow",a).attr("data-player-id",l).attr("src",[c,c.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1&player_id="+l].join("")).addClass("wk-position-absolute"),i.support.touch||r.css("pointer-events","none"),u=!0,i.cover&&(i.cover(r),r.attr("data-wk-cover","{}"));break;case"VIDEO":r.addClass("wk-cover-object wk-position-absolute"),u=!0,a.options.videomute&&a.mutemedia(r)}if(u){e=i.$("<canvas></canvas>").attr({width:r[0].width,height:r[0].height});var p=i.$('<img style="width:100%;height:auto;">').attr("src",e[0].toDataURL());o.prepend(p),o.data("sizer",p)}}else o.data("sizer",o);a.hasKenBurns(o)&&o.data("cover").css({"-webkit-animation-duration":a.kbanimduration,"animation-duration":a.kbanimduration}),o.data("processed",++n),o.attr("data-slideshow-slide",d)}}),n&&(this.triggers=this.find("[data-wk-slideshow-item]"),this.slides.attr("aria-hidden","true").removeClass("wk-active").eq(this.current).addClass("wk-active").attr("aria-hidden","false"),this.triggers.filter('[data-wk-slideshow-item="'+this.current+'"]').addClass("wk-active")),t&&n&&this.resize()},resize:function(){if(!this.container.hasClass("wk-slideshow-fullscreen")){var t=this.options.height;"auto"===this.options.height&&(t=0,this.slides.css("height","").each(function(){t=Math.max(t,i.$(this).height())})),this.container.css("height",t),this.slides.css("height",t)}},show:function(s,e){if(!this.animating&&this.current!=s){this.animating=!0;var a=this,n=this.slides.eq(this.current),o=this.slides.eq(s),r=e?e:this.current<s?1:-1,d=n.data("media"),u=t[this.options.animation]?this.options.animation:"fade",h=o.data("media"),c=function(){a.animating&&(d&&d.is("video,iframe")&&a.pausemedia(d),h&&h.is("video,iframe")&&a.playmedia(h),o.addClass("wk-active").attr("aria-hidden","false"),n.removeClass("wk-active").attr("aria-hidden","true"),a.animating=!1,a.current=s,i.Utils.checkDisplay(o,'[class*="wk-animation-"]:not(.wk-cover-background.wk-position-cover)'),a.trigger("show.uk.slideshow",[o,n,a]))};a.applyKenBurns(o),i.support.animation||(u="none"),n=i.$(n),o=i.$(o),a.trigger("beforeshow.uk.slideshow",[o,n,a]),t[u].apply(this,[n,o,r]).then(c),a.triggers.removeClass("wk-active"),a.triggers.filter('[data-wk-slideshow-item="'+s+'"]').addClass("wk-active")}},applyKenBurns:function(i){if(this.hasKenBurns(i)){var t=this.options.kenburnsanimations,s=this.kbindex||0;i.data("cover").attr("class","wk-cover-background wk-position-cover").width(),i.data("cover").addClass(["wk-animation-scale","wk-animation-reverse",t[s].trim()].join(" ")),this.kbindex=t[s+1]?s+1:0}},hasKenBurns:function(i){return this.options.kenburns&&i.data("cover")},next:function(){this.show(this.slides[this.current+1]?this.current+1:0,1)},previous:function(){this.show(this.slides[this.current-1]?this.current-1:this.slides.length-1,-1)},start:function(){this.stop();var i=this;this.interval=setInterval(function(){i.hovering||i.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},playmedia:function(i){if(i&&i[0])switch(i[0].nodeName){case"VIDEO":this.options.videomute||(i[0].muted=!1),i[0].play();break;case"IFRAME":this.options.videomute||i[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}',"*"),i[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}',"*")}},pausemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].pause();break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}',"*")}},mutemedia:function(i){switch(i[0].nodeName){case"VIDEO":i[0].muted=!0;break;case"IFRAME":i[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}}}),t={none:function(){var t=i.$.Deferred();return t.resolve(),t.promise()},scroll:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.removeClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-scroll-backward-out":"wk-slideshow-scroll-forward-out"),s.addClass(-1==e?"wk-slideshow-scroll-backward-in":"wk-slideshow-scroll-forward-in"),s.width(),a.promise()},swipe:function(t,s,e){var a=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1).one(i.support.animation.end,function(){t.css("opacity",0).removeClass(-1===e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.removeClass(-1===e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),a.resolve()}.bind(this)),t.addClass(-1==e?"wk-slideshow-swipe-backward-out":"wk-slideshow-swipe-forward-out"),s.addClass(-1==e?"wk-slideshow-swipe-backward-in":"wk-slideshow-swipe-forward-in"),s.width(),a.promise()},scale:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-scale-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-scale-out"),t.width(),e.promise()},fade:function(t,s){var e=i.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),s.css("animation-duration",this.options.duration+"ms"),s.css("opacity",1),s.data("cover")||s.data("placeholder")||s.css("opacity",1).one(i.support.animation.end,function(){s.removeClass("wk-slideshow-fade-in")}).addClass("wk-slideshow-fade-in"),t.one(i.support.animation.end,function(){t.css("opacity",0).removeClass("wk-slideshow-fade-out"),e.resolve()}.bind(this)),t.addClass("wk-slideshow-fade-out"),t.width(),e.promise()}},i.slideshow.animations=t,window.addEventListener("message",function(t){var s,e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(a){e={}}t.origin&&t.origin.indexOf("vimeo")>-1&&"ready"==e.event&&e.player_id&&(s=i.$('[data-player-id="'+e.player_id+'"]'),s.length&&s.data("slideshow").mutemedia(s))},!1)});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slideshow-fx",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";var t=i.slideshow.animations;i.$.extend(i.slideshow.animations,{slice:function(e,s,n,o){if(!e.data("cover"))return t.fade.apply(this,arguments);for(var r,a=i.$.Deferred(),c=Math.ceil(this.element.width()/this.options.slices),h=s.data("cover").css("background-image"),d=i.$('<li class="wk-slideshow-ghost"></li>').css({top:0,left:0,width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),p=d.width(),l=d.height(),u="slice-up"==o?l:"0",f=0;f<this.options.slices;f++){"slice-up-down"==o&&(u=(f%2+2)%2==0?"0":l);var m,g=f==this.options.slices-1?c:c,x="rect(0px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)";m="rect(0px, "+g*(f+1)+"px, 0px, "+c*f+"px)",("slice-up"==o||"slice-up-down"==o&&(f%2+2)%2==0)&&(m="rect("+l+"px, "+g*(f+1)+"px, "+l+"px, "+c*f+"px)"),r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:p,height:l,"background-image":h,clip:m,opacity:0,transition:"all "+this.options.duration+"ms ease-in-out "+60*f+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+60*f+"ms"}).data("clip",x),d.append(r)}return this.container.append(d),d.children().last().on(i.support.transition.end,function(){setTimeout(function(){d.remove(),a.resolve()},0)}),d.width(),d.children().each(function(){r=i.$(this),r.css({clip:r.data("clip"),opacity:1})}),a.promise()},"slice-up":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up"])},"slice-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-down"])},"slice-up-down":function(i,e,s){return t.slice.apply(this,[i,e,s,"slice-up-down"])},fold:function(e,s){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var n,o=i.$.Deferred(),r=Math.ceil(this.element.width()/this.options.slices),a=s.data("cover").css("background-image"),c=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),h=s.width(),d=s.height(),p=0;p<this.options.slices;p++)n=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,width:h,height:d,"background-image":a,"transform-origin":r*p+"px 0 0",clip:"rect(0px, "+r*(p+1)+"px, "+d+"px, "+r*p+"px)",opacity:0,transform:"scaleX(0.000001)",transition:"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms","-webkit-transition":"all "+this.options.duration+"ms ease-in-out "+(100+60*p)+"ms"}),c.prepend(n);return this.container.append(c),c.width(),c.children().first().on(i.support.transition.end,function(){setTimeout(function(){c.remove(),o.resolve()},0)}).end().css({transform:"scaleX(1)",opacity:1}),o.promise()},puzzle:function(s,n){if(!n.data("cover"))return t.fade.apply(this,arguments);for(var o,r,a,c=i.$.Deferred(),h=this,d=Math.round(this.options.slices/2),p=Math.round(n.width()/d),l=Math.round(n.height()/p),u=Math.round(n.height()/l)+1,f=n.data("cover").css("background-image"),m=i.$('<li class="wk-slideshow-ghost"></li>').css({width:this.container.width(),height:this.container.height(),opacity:1,zIndex:15}),g=this.container.width(),x=this.container.height(),w=0;l>w;w++)for(var v=0;d>v;v++)a=v==d-1?p+2:p,r=[u*w+"px",a*(v+1)+"px",u*(w+1)+"px",p*v+"px"],o=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:0,width:g,height:x,"background-image":f,clip:"rect("+r.join(",")+")","-webkit-transform":"translateZ(0)",transform:"translateZ(0)"}),m.append(o);this.container.append(m);var k=e(m.children());return k.each(function(t){i.$(this).css({transition:"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms","-webkit-transition":"all "+h.options.duration+"ms ease-in-out "+(50+25*t)+"ms"})}).last().on(i.support.transition.end,function(){setTimeout(function(){m.remove(),c.resolve()},0)}),m.width(),k.css({opacity:1}),c.promise()},boxes:function(e,s,n,o){if(!s.data("cover"))return t.fade.apply(this,arguments);for(var r,a,c,h,d=i.$.Deferred(),p=Math.round(this.options.slices/2),l=Math.round(s.width()/p),u=Math.round(s.height()/l),f=Math.round(s.height()/u)+1,m=s.data("cover").css("background-image"),g=i.$('<li class="wk-slideshow-ghost"></li>').css({width:s.width(),height:s.height(),opacity:1,zIndex:15}),x=s.width(),w=s.height(),v=0;u>v;v++)for(h=0;p>h;h++)c=h==p-1?l+2:l,a=[f*v+"px",c*(h+1)+"px",f*(v+1)+"px",l*h+"px"],r=i.$('<div class="wk-cover-background"></div>').css({position:"absolute",top:0,left:0,opacity:1,width:x,height:w,"background-image":m,"transform-origin":a[3]+" "+a[0]+" 0",clip:"rect("+a.join(",")+")","-webkit-transform":"scale(0.0000000000000001)",transform:"scale(0.0000000000000001)"}),g.append(r);this.container.append(g);var k,b=0,y=0,$=0,I=[[]],M=g.children();for("boxes-reverse"==o&&(M=[].reverse.apply(M)),M.each(function(){I[b][y]=i.$(this),y++,y==p&&(b++,y=0,I[b]=[])}),h=0,k=0;p*u>h;h++){k=h;for(var z=0;u>z;z++)k>=0&&p>k&&I[z][k].css({transition:"all "+this.options.duration+"ms linear "+(50+$)+"ms","-webkit-transition":"all "+this.options.duration+"ms linear "+(50+$)+"ms"}),k--;$+=100}return M.last().on(i.support.transition.end,function(){setTimeout(function(){g.remove(),d.resolve()},0)}),g.width(),M.css({"-webkit-transform":"scale(1)",transform:"scale(1)"}),d.promise()},"boxes-reverse":function(i,e,s){return t.boxes.apply(this,[i,e,s,"boxes-reverse"])},"random-fx":function(){var i=["slice-up","fold","puzzle","slice-down","boxes","slice-up-down","boxes-reverse"];return this.fxIndex=(void 0===this.fxIndex?-1:this.fxIndex)+1,i[this.fxIndex]||(this.fxIndex=0),t[i[this.fxIndex]].apply(this,arguments)}});var e=function(i){for(var t,e,s=i.length;s;t=parseInt(Math.random()*s),e=i[--s],i[s]=i[t],i[t]=e);return i};return i.slideshow.animations});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit2wk&&(i=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-accordion",["uikit"],function(){return i||t(UIkit2wk)})}(function(t){"use strict";function i(i){var e=t.$(i),o="auto";if(e.is(":visible"))o=e.outerHeight();else{var a={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};o=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(a)}return o}return t.component("accordion",{defaults:{showfirst:!0,collapse:!0,animate:!0,easing:"swing",duration:300,toggle:".wk-accordion-title",containers:".wk-accordion-content",clsactive:"wk-active"},boot:function(){t.ready(function(i){setTimeout(function(){t.$("[data-wk-accordion]",i).each(function(){var i=t.$(this);i.data("accordion")||t.accordion(i,t.Utils.options(i.attr("data-wk-accordion")))})},0)})},init:function(){var i=this;this.element.on("click.uk.accordion",this.options.toggle,function(e){e.preventDefault(),i.toggleItem(t.$(this).data("wrapper"),i.options.animate,i.options.collapse)}),this.update(!0),t.domObserve(this.element,function(){i.element.children(i.options.containers).length&&i.update()})},toggleItem:function(e,o,a){var n=this;e.data("toggle").toggleClass(this.options.clsactive),e.data("content").toggleClass(this.options.clsactive);var s=e.data("toggle").hasClass(this.options.clsactive);a&&(this.toggle.not(e.data("toggle")).removeClass(this.options.clsactive),this.content.not(e.data("content")).removeClass(this.options.clsactive).parent().stop().css("overflow","hidden").animate({height:0},{easing:this.options.easing,duration:o?this.options.duration:0}).attr("aria-expanded","false")),e.stop().css("overflow","hidden"),o?e.animate({height:s?i(e.data("content")):0},{easing:this.options.easing,duration:this.options.duration,complete:function(){s&&(e.css({overflow:"",height:"auto"}),t.Utils.checkDisplay(e.data("content"))),n.trigger("display.uk.check")}}):(e.height(s?"auto":0),s&&(e.css({overflow:""}),t.Utils.checkDisplay(e.data("content"))),this.trigger("display.uk.check")),e.attr("aria-expanded",s),this.element.trigger("toggle.uk.accordion",[s,e.data("toggle"),e.data("content")])},update:function(i){var e,o,a,n=this;this.toggle=this.find(this.options.toggle),this.content=this.find(this.options.containers),this.content.each(function(i){e=t.$(this),e.parent().data("wrapper")?o=e.parent():(o=t.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent(),o.attr("aria-expanded","false")),a=n.toggle.eq(i),o.data("toggle",a),o.data("content",e),a.data("wrapper",o),e.data("wrapper",o)}),this.element.trigger("update.uk.accordion",[this]),i&&this.options.showfirst&&this.toggleItem(this.toggle.eq(0).data("wrapper"),!1,!1)}}),t.accordion});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2wk&&(t=e(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-parallax",["uikit"],function(){return t||e(UIkit2wk)})}(function(e){"use strict";function t(t,a,r){var i,n,s,o,c,l,p,f=new Image;return n=t.element.css({backgroundSize:"cover",backgroundRepeat:"no-repeat"}),i=n.css("background-image").replace(/^url\(/g,"").replace(/\)$/g,"").replace(/("|')/g,""),o=function(){var e=n.innerWidth(),i=n.innerHeight(),o="bg"==a?r.diff:r.diff/100*i;return i+=o,e+=Math.ceil(o*c),e-o<s.w&&i<s.h?t.element.css({backgroundSize:"auto"}):(i>e/c?(l=Math.ceil(i*c),p=i,i>window.innerHeight&&(l=1.2*l,p=1.2*p)):(l=e,p=Math.ceil(e/c)),n.css({backgroundSize:l+"px "+p+"px"}).data("bgsize",{w:l,h:p}),void 0)},f.onerror=function(){},f.onload=function(){s={w:f.width,h:f.height},c=f.width/f.height,e.$win.on("load resize orientationchange",e.Utils.debounce(function(){o()},50)),o()},f.src=i,!0}function a(e,t,a){return e=i(e),t=i(t),a=a||0,r(e,t,a)}function r(e,t,a){var r="rgba("+parseInt(e[0]+a*(t[0]-e[0]),10)+","+parseInt(e[1]+a*(t[1]-e[1]),10)+","+parseInt(e[2]+a*(t[2]-e[2]),10)+","+(e&&t?parseFloat(e[3]+a*(t[3]-e[3])):1);return r+=")"}function i(e){var t,a;return a=(t=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(t=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(t[1],16),17*parseInt(t[2],16),17*parseInt(t[3],16),1]:(t=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]:(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10),parseFloat(t[4])]:p[e]||[255,255,255,0]}var n=[],s=!1,o=0,c=window.innerHeight,l=function(){o=e.$win.scrollTop(),window.requestAnimationFrame(function(){for(var e=0;e<n.length;e++)n[e].process()})};e.component("parallax",{defaults:{velocity:.5,target:!1,viewport:!1,media:!1},boot:function(){s=function(){var e,t=document.createElement("div"),a={WebkitTransform:"-webkit-transform",MSTransform:"-ms-transform",MozTransform:"-moz-transform",Transform:"transform"};document.body.insertBefore(t,null);for(var r in a)void 0!==t.style[r]&&(t.style[r]="translate3d(1px,1px,1px)",e=window.getComputedStyle(t).getPropertyValue(a[r]));return document.body.removeChild(t),void 0!==e&&e.length>0&&"none"!==e}(),e.$doc.on("scrolling.uk.document",l),e.$win.on("load resize orientationchange",e.Utils.debounce(function(){c=window.innerHeight,l()},50)),e.ready(function(t){e.$("[data-wk-parallax]",t).each(function(){var t=e.$(this);t.data("parallax")||e.parallax(t,e.Utils.options(t.attr("data-wk-parallax")))})})},init:function(){this.base=this.options.target?e.$(this.options.target):this.element,this.props={},this.velocity=this.options.velocity||1;var t=["target","velocity","viewport","plugins","media"];Object.keys(this.options).forEach(function(e){if(-1===t.indexOf(e)){var a,r,i,n,s=String(this.options[e]).split(",");e.match(/color/i)?(a=s[1]?s[0]:this._getStartValue(e),r=s[1]?s[1]:s[0],a||(a="rgba(255,255,255,0)")):(a=parseFloat(s[1]?s[0]:this._getStartValue(e)),r=parseFloat(s[1]?s[1]:s[0]),n=r>a?r-a:a-r,i=r>a?1:-1),this.props[e]={start:a,end:r,dir:i,diff:n}}}.bind(this)),n.push(this)},process:function(){if(this.options.media)switch(typeof this.options.media){case"number":if(window.innerWidth<this.options.media)return!1;break;case"string":if(window.matchMedia&&!window.matchMedia(this.options.media).matches)return!1}var e=this.percentageInViewport();this.options.viewport!==!1&&(e=0===this.options.viewport?1:e/this.options.viewport),this.update(e)},percentageInViewport:function(){var e,t,a,r=this.base.offset().top,i=this.base.outerHeight();return r>o+c?a=0:o>r+i?a=1:c>r+i?a=(c>o?o:o-c)/(r+i):(e=o+c-r,t=Math.round(e/((c+i)/100)),a=t/100),a},update:function(e){var r,i,n={transform:"",filter:""},o=e*(1-(this.velocity-this.velocity*e));0>o&&(o=0),o>1&&(o=1),(void 0===this._percent||this._percent!=o)&&(Object.keys(this.props).forEach(function(c){switch(r=this.props[c],0===e?i=r.start:1===e?i=r.end:void 0!==r.diff&&(i=r.start+r.diff*o*r.dir),"bg"!=c&&"bgp"!=c||this._bgcover||(this._bgcover=t(this,c,r)),c){case"x":n.transform+=s?" translate3d("+i+"px, 0, 0)":" translateX("+i+"px)";break;case"xp":n.transform+=s?" translate3d("+i+"%, 0, 0)":" translateX("+i+"%)";break;case"y":n.transform+=s?" translate3d(0, "+i+"px, 0)":" translateY("+i+"px)";break;case"yp":n.transform+=s?" translate3d(0, "+i+"%, 0)":" translateY("+i+"%)";break;case"rotate":n.transform+=" rotate("+i+"deg)";break;case"scale":n.transform+=" scale("+i+")";break;case"bg":n["background-position"]="50% "+i+"px";break;case"bgp":n["background-position"]="50% "+i+"%";break;case"color":case"background-color":case"border-color":n[c]=a(r.start,r.end,o);break;case"blur":n.filter+=" blur("+i+"px)";break;case"hue":n.filter+=" hue-rotate("+i+"deg)";break;case"grayscale":n.filter+=" grayscale("+i+"%)";break;case"invert":n.filter+=" invert("+i+"%)";break;case"fopacity":n.filter+=" opacity("+i+"%)";break;case"saturate":n.filter+=" saturate("+i+"%)";break;case"sepia":n.filter+=" sepia("+i+"%)";break;default:n[c]=i}}.bind(this)),n.filter&&(n["-webkit-filter"]=n.filter),this.element.css(n),this._percent=o)},_getStartValue:function(e){var t=0;switch(e){case"scale":t=1;break;default:t=this.element.css(e)}return t||0}});var p={black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]};return e.parallax});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2wk&&(e=t(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-slider",["uikit"],function(){return e||t(UIkit2wk)})}(function(t){"use strict";var e,i,s,n,a={};return t.component("slider",{defaults:{center:!1,threshold:10,infinite:!0,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0,activecls:"wk-active"},boot:function(){t.ready(function(e){setTimeout(function(){t.$("[data-wk-slider]",e).each(function(){var e=t.$(this);e.data("slider")||t.slider(e,t.Utils.options(e.attr("data-wk-slider")))})},0)})},init:function(){var o=this;this.container=this.element.find(".wk-slider"),this.focus=0,t.$win.on("resize load",t.Utils.debounce(function(){o.update(!0)},100)),this.on("click.uk.slider","[data-wk-slider-item]",function(e){e.preventDefault();var i=t.$(this).attr("data-wk-slider-item");if(o.focus!=i)switch(o.stop(),i){case"next":case"previous":o["next"==i?"next":"previous"]();break;default:o.updateFocus(parseInt(i,10))}}),this.container.on({"touchstart mousedown":function(h){h.originalEvent&&h.originalEvent.touches&&(h=h.originalEvent.touches[0]),h.button&&2==h.button||!o.active||(o.stop(),s=t.$(h.target).is("a")?t.$(h.target):t.$(h.target).parents("a:first"),n=!1,s.length&&s.one("click",function(t){n&&t.preventDefault()}),i=function(t){n=!0,e=o,a={touchx:parseInt(t.pageX,10),dir:1,focus:o.focus,base:o.options.center?"center":"area"},t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),e.element.data({"pointer-start":{x:parseInt(t.pageX,10),y:parseInt(t.pageY,10)},"pointer-pos-start":o.pos}),o.container.addClass("wk-drag"),i=!1},i.x=parseInt(h.pageX,10),i.threshold=o.options.threshold)},mouseenter:function(){o.options.pauseOnHover&&(o.hovering=!0)},mouseleave:function(){o.hovering=!1}}),this.update(!0),this.on("display.uk.check",function(){o.element.is(":visible")&&o.update(!0)}),this.element.find("a,img").attr("draggable","false"),this.options.autoplay&&this.start(),t.domObserve(this.element,function(){o.element.children(":not([data-slider-slide])").length&&o.update(!0)})},update:function(e){var i,s,n,a,o=this,h=0,r=0;return this.items=this.container.children().filter(":visible"),this.vp=this.element[0].getBoundingClientRect().width,this.container.css({"min-width":"","min-height":""}),this.items.each(function(e){i=t.$(this).attr("data-slider-slide",e),a=i.css({left:"",width:""})[0].getBoundingClientRect(),s=a.width,n=i.width(),r=Math.max(r,a.height),i.css({left:h,width:s}).data({idx:e,left:h,width:s,cwidth:n,area:h+s,center:h-(o.vp/2-n/2)}),h+=s}),this.container.css({"min-width":h,"min-height":r}),this.options.infinite&&(h<=2*this.vp||this.items.length<5)&&!this.itemsResized?(this.container.children().each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}).each(function(t){o.container.append(o.items.eq(t).clone(!0).attr("id",""))}),this.itemsResized=!0,this.update()):(this.cw=h,this.pos=0,this.active=h>=this.vp,this.container.css({"-ms-transform":"","-webkit-transform":"",transform:""}),e&&this.updateFocus(this.focus),void 0)},updatePos:function(t){this.pos=t,this.container.css({"-ms-transform":"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)",transform:"translateX("+t+"px)"})},updateFocus:function(e,i){if(this.active){i=i||(e>this.focus?1:-1);var s,n,a=this.items.eq(e);if(this.options.infinite&&this.infinite(e,i),this.options.center)this.updatePos(-1*a.data("center")),this.items.filter("."+this.options.activecls).removeClass(this.options.activecls),a.addClass(this.options.activecls);else if(this.options.infinite)this.updatePos(-1*a.data("left"));else{for(s=0,n=e;n<this.items.length;n++)s+=this.items.eq(n).data("width");if(s>this.vp)this.updatePos(-1*a.data("left"));else if(1==i){for(s=0,n=this.items.length-1;n>=0;n--){if(s+=this.items.eq(n).data("width"),s==this.vp){e=n;break}if(s>this.vp){e=n<this.items.length-1?n+1:n;break}}s>this.vp?this.updatePos(-1*(this.container.width()-this.vp)):this.updatePos(-1*this.items.eq(e).data("left"))}}var o=this.items.eq(e).data("left");this.items.removeClass("wk-slide-before wk-slide-after").each(function(i){i!==e&&t.$(this).addClass(t.$(this).data("left")<o?"wk-slide-before":"wk-slide-after")}),this.focus=e,this.trigger("focusitem.uk.slider",[e,this.items.eq(e),this])}},next:function(){var t=this.items[this.focus+1]?this.focus+1:this.options.infinite?0:this.focus;this.updateFocus(t,1)},previous:function(){var t=this.items[this.focus-1]?this.focus-1:this.options.infinite?this.items[this.focus-1]?this.items-1:this.items.length-1:this.focus;this.updateFocus(t,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},infinite:function(t,e){var i,s=this,n=this.items.eq(t),a=t,o=[],h=0;if(1==e){for(i=0;i<this.items.length&&(a!=t&&(h+=this.items.eq(a).data("width"),o.push(this.items.eq(a))),!(h>this.vp));i++)a=a+1==this.items.length?0:a+1;o.length&&o.forEach(function(t){var e=n.data("area");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}else{for(i=this.items.length-1;i>-1&&(h+=this.items.eq(a).data("width"),a!=t&&o.push(this.items.eq(a)),!(h>this.vp));i--)a=a-1==-1?this.items.length-1:a-1;o.length&&o.forEach(function(t){var e=n.data("left")-t.data("width");t.css({left:e}).data({left:e,area:e+t.data("width"),center:e-(s.vp/2-t.data("cwidth")/2)}),n=t})}}}),t.$doc.on("mousemove.uk.slider touchmove.uk.slider",function(t){if(t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i&&Math.abs(t.pageX-i.x)>i.threshold&&(window.getSelection().toString()?e=i=!1:i(t)),e){var s,n,o,h,r,c,d,u,f,l;if(t.clientX||t.clientY?s=t.clientX:(t.pageX||t.pageY)&&(s=t.pageX-document.body.scrollLeft-document.documentElement.scrollLeft),r=a.focus,n=s-e.element.data("pointer-start").x,o=e.element.data("pointer-pos-start")+n,h=s>e.element.data("pointer-start").x?-1:1,c=e.items.eq(a.focus),1==h)for(d=c.data("left")+Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("left")<d&&l.data("area")>d){r=f;break}f=f+1==e.items.length?0:f+1}else for(d=c.data("left")-Math.abs(n),u=0,f=a.focus;u<e.items.length;u++){if(l=e.items.eq(f),f!=a.focus&&l.data("area")<=c.data("left")&&l.data("center")<d){r=f;break}f=f-1==-1?e.items.length-1:f-1}e.options.infinite&&r!=a._focus&&e.infinite(r,h),e.updatePos(o),a.dir=h,a._focus=r,a.touchx=parseInt(t.pageX,10),a.diff=d}}),t.$doc.on("mouseup.uk.slider touchend.uk.slider",function(){if(e){e.container.removeClass("wk-drag"),e.items.eq(a.focus);var t,s,n,o=!1;if(1==a.dir){for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")>a.diff){o=n;break}n=n+1==e.items.length?0:n+1}e.options.infinite||o||(o=e.items.length)}else{for(s=0,n=a.focus;s<e.items.length;s++){if(t=e.items.eq(n),n!=a.focus&&t.data("left")<a.diff){o=n;break}n=n-1==-1?e.items.length-1:n-1}e.options.infinite||o||(o=0)}e.updateFocus(o!==!1?o:a._focus)}e=i=!1}),t.slider});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(i){var t;window.UIkit2wk&&(t=i(UIkit2wk)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit2wk)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="wk-modal">','<div class="wk-modal-dialog wk-modal-dialog-lightbox wk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="wk-modal-close wk-close wk-close-alt"></a>','<div class="wk-lightbox-content"></div>','<div class="wk-modal-spinner wk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".wk-modal-dialog:first"),e.content=e.find(".wk-lightbox-content:first"),e.loader=e.find(".wk-modal-spinner:first"),e.closer=e.find(".wk-close.wk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-wk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-wk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$('[data-wk-lightbox*="'+this.options.group+'"]'):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("wk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="wk-position-cover wk-flex wk-flex-middle wk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-previous wk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="wk-slidenav wk-slidenav-contrast wk-slidenav-next wk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%",maxWidth:t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".wk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="wk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".wk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("wk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("wk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("wk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="wk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),i.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="wk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox});

widgetkit/wk-styles-11ee08e3.css000064400000266032152177723720012372 0ustar00.wk-grid-match>*>*,[class*=wk-grid-width]>*{width:100%;box-sizing:border-box}.wk-panel-box,.wk-panel-box .wk-panel-title,.wk-panel-box-hover:hover,.wk-panel-box-primary .wk-panel-title,.wk-panel-box-primary-hover:hover,.wk-panel-title{color:#444}.wk-tab-center .wk-tab>li>a,.wk-tab-grid>li>a{text-align:center}.wk-modal,.wk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-button-group,.wk-dotnav>*>*,.wk-dropdown-small,.wk-modal-caption,.wk-text-nowrap,.wk-text-truncate{white-space:nowrap}.wk-accordion-content:after,.wk-clearfix:after,.wk-container:after,.wk-dotnav:after,.wk-form-row:after,.wk-grid:after,.wk-list>li:after,.wk-panel:after,.wk-subnav:after,.wk-tab-center:after,.wk-tab:after{clear:both}a[class*=wk-]{text-decoration:none!important;cursor:pointer}a[class*=wk-]:hover{text-decoration:none!important}.wk-dotnav,.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-subnav,.wk-switcher,.wk-tab{margin-left:0;padding:0!important;list-style:none!important}.wk-dotnav,.wk-grid,.wk-list,.wk-list ul,.wk-subnav,.wk-switcher,.wk-tab,.wk-thumbnav{list-style:none}.wk-list,.wk-nav,.wk-nav ul,.wk-slideshow,.wk-switcher,.wk-tab{margin-bottom:0!important}.wk-dotnav,.wk-subnav{margin-bottom:20px!important}*+.wk-dotnav,*+.wk-subnav{margin-top:20px!important}.wk-dotnav>li>a,.wk-icon-button,.wk-list>li>a,.wk-nav ul>li>a,.wk-nav>li>a,.wk-overlay,.wk-slidenav,.wk-subnav>li>a{border:none!important}.wk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.wk-grid:after,.wk-grid:before{content:"";display:block;overflow:hidden}.wk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-grid>*>:last-child{margin-bottom:0}.wk-grid{margin-left:-25px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:25px}@media (min-width:1220px){.wk-grid{margin-left:-35px}.wk-grid>*{padding-left:35px}.wk-grid+.wk-grid,.wk-grid-margin,.wk-grid>*>.wk-panel+.wk-panel{margin-top:35px}}.wk-grid-collapse{margin-left:0}.wk-grid-collapse>*{padding-left:0}.wk-grid-collapse+.wk-grid-collapse,.wk-grid-collapse>*>.wk-panel+.wk-panel,.wk-grid-collapse>.wk-grid-margin{margin-top:0}.wk-grid-small{margin-left:-10px}.wk-grid-small>*{padding-left:10px}.wk-grid-small+.wk-grid-small,.wk-grid-small>*>.wk-panel+.wk-panel,.wk-grid-small>.wk-grid-margin{margin-top:10px}.wk-grid-medium{margin-left:-25px}.wk-grid-medium>*{padding-left:25px}.wk-grid-medium+.wk-grid-medium,.wk-grid-medium>*>.wk-panel+.wk-panel,.wk-grid-medium>.wk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-grid-large{margin-left:-35px}.wk-grid-large>*{padding-left:35px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:35px}.wk-grid-divider>[class*=wk-width-large-]:not(.wk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1220px){.wk-grid-large{margin-left:-50px}.wk-grid-large>*{padding-left:50px}.wk-grid-large+.wk-grid-large,.wk-grid-large-margin,.wk-grid-large>*>.wk-panel+.wk-panel{margin-top:50px}}.wk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-grid-divider>[class*=wk-width-9-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-1-]:not(.wk-width-1-1):nth-child(n+2),.wk-grid-divider>[class*=wk-width-2-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-3-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-4-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-5-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-6-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-7-]:nth-child(n+2),.wk-grid-divider>[class*=wk-width-8-]:nth-child(n+2){border-left:1px solid #e5e5e5}@media (min-width:1220px){.wk-grid-divider:not(:empty){margin-left:-35px;margin-right:-35px}.wk-grid-divider>*{padding-left:35px;padding-right:35px}.wk-grid-divider:empty{margin-top:35px;margin-bottom:35px}}.wk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none}.wk-grid-width-1-2>*{width:50%}.wk-grid-width-1-3>*{width:33.333%}.wk-grid-width-1-4>*{width:25%}.wk-grid-width-1-5>*{width:20%}.wk-grid-width-1-6>*{width:16.666%}.wk-grid-width-1-10>*{width:10%}.wk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-grid-width-small-1-1>*{width:100%}.wk-grid-width-small-1-2>*{width:50%}.wk-grid-width-small-1-3>*{width:33.333%}.wk-grid-width-small-1-4>*{width:25%}.wk-grid-width-small-1-5>*{width:20%}.wk-grid-width-small-1-6>*{width:16.666%}.wk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-grid-divider>[class*=wk-width-medium-]:not(.wk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-grid-width-medium-1-1>*{width:100%}.wk-grid-width-medium-1-2>*{width:50%}.wk-grid-width-medium-1-3>*{width:33.333%}.wk-grid-width-medium-1-4>*{width:25%}.wk-grid-width-medium-1-5>*{width:20%}.wk-grid-width-medium-1-6>*{width:16.666%}.wk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-grid-width-large-1-1>*{width:100%}.wk-grid-width-large-1-2>*{width:50%}.wk-grid-width-large-1-3>*{width:33.333%}.wk-grid-width-large-1-4>*{width:25%}.wk-grid-width-large-1-5>*{width:20%}.wk-grid-width-large-1-6>*{width:16.666%}.wk-grid-width-large-1-10>*{width:10%}}@media (min-width:1220px){.wk-grid-width-xlarge-1-1>*{width:100%}.wk-grid-width-xlarge-1-2>*{width:50%}.wk-grid-width-xlarge-1-3>*{width:33.333%}.wk-grid-width-xlarge-1-4>*{width:25%}.wk-grid-width-xlarge-1-5>*{width:20%}.wk-grid-width-xlarge-1-6>*{width:16.666%}.wk-grid-width-xlarge-1-10>*{width:10%}}[class*=wk-width]{box-sizing:border-box;width:100%}.wk-width-1-1{width:100%}.wk-width-1-2,.wk-width-2-4,.wk-width-3-6,.wk-width-5-10{width:50%}.wk-width-1-3,.wk-width-2-6{width:33.333%}.wk-width-2-3,.wk-width-4-6{width:66.666%}.wk-width-1-4{width:25%}.wk-width-3-4{width:75%}.wk-width-1-5,.wk-width-2-10{width:20%}.wk-width-2-5,.wk-width-4-10{width:40%}.wk-width-3-5,.wk-width-6-10{width:60%}.wk-width-4-5,.wk-width-8-10{width:80%}.wk-width-1-6{width:16.666%}.wk-width-5-6{width:83.333%}.wk-width-1-10{width:10%}.wk-width-3-10{width:30%}.wk-width-7-10{width:70%}.wk-width-9-10{width:90%}@media (min-width:480px){.wk-width-small-1-1{width:100%}.wk-width-small-1-2,.wk-width-small-2-4,.wk-width-small-3-6,.wk-width-small-5-10{width:50%}.wk-width-small-1-3,.wk-width-small-2-6{width:33.333%}.wk-width-small-2-3,.wk-width-small-4-6{width:66.666%}.wk-width-small-1-4{width:25%}.wk-width-small-3-4{width:75%}.wk-width-small-1-5,.wk-width-small-2-10{width:20%}.wk-width-small-2-5,.wk-width-small-4-10{width:40%}.wk-width-small-3-5,.wk-width-small-6-10{width:60%}.wk-width-small-4-5,.wk-width-small-8-10{width:80%}.wk-width-small-1-6{width:16.666%}.wk-width-small-5-6{width:83.333%}.wk-width-small-1-10{width:10%}.wk-width-small-3-10{width:30%}.wk-width-small-7-10{width:70%}.wk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-width-medium-1-1{width:100%}.wk-width-medium-1-2,.wk-width-medium-2-4,.wk-width-medium-3-6,.wk-width-medium-5-10{width:50%}.wk-width-medium-1-3,.wk-width-medium-2-6{width:33.333%}.wk-width-medium-2-3,.wk-width-medium-4-6{width:66.666%}.wk-width-medium-1-4{width:25%}.wk-width-medium-3-4{width:75%}.wk-width-medium-1-5,.wk-width-medium-2-10{width:20%}.wk-width-medium-2-5,.wk-width-medium-4-10{width:40%}.wk-width-medium-3-5,.wk-width-medium-6-10{width:60%}.wk-width-medium-4-5,.wk-width-medium-8-10{width:80%}.wk-width-medium-1-6{width:16.666%}.wk-width-medium-5-6{width:83.333%}.wk-width-medium-1-10{width:10%}.wk-width-medium-3-10{width:30%}.wk-width-medium-7-10{width:70%}.wk-width-medium-9-10{width:90%}[class*=wk-push-],[class*=wk-pull-]{position:relative}.wk-push-1-2,.wk-push-2-4,.wk-push-3-6,.wk-push-5-10{left:50%}.wk-push-1-3,.wk-push-2-6{left:33.333%}.wk-push-2-3,.wk-push-4-6{left:66.666%}.wk-push-1-4{left:25%}.wk-push-3-4{left:75%}.wk-push-1-5,.wk-push-2-10{left:20%}.wk-push-2-5,.wk-push-4-10{left:40%}.wk-push-3-5,.wk-push-6-10{left:60%}.wk-push-4-5,.wk-push-8-10{left:80%}.wk-push-1-6{left:16.666%}.wk-push-5-6{left:83.333%}.wk-push-1-10{left:10%}.wk-push-3-10{left:30%}.wk-push-7-10{left:70%}.wk-push-9-10{left:90%}.wk-pull-1-2,.wk-pull-2-4,.wk-pull-3-6,.wk-pull-5-10{left:-50%}.wk-pull-1-3,.wk-pull-2-6{left:-33.333%}.wk-pull-2-3,.wk-pull-4-6{left:-66.666%}.wk-pull-1-4{left:-25%}.wk-pull-3-4{left:-75%}.wk-pull-1-5,.wk-pull-2-10{left:-20%}.wk-pull-2-5,.wk-pull-4-10{left:-40%}.wk-pull-3-5,.wk-pull-6-10{left:-60%}.wk-pull-4-5,.wk-pull-8-10{left:-80%}.wk-pull-1-6{left:-16.666%}.wk-pull-5-6{left:-83.333%}.wk-pull-1-10{left:-10%}.wk-pull-3-10{left:-30%}.wk-pull-7-10{left:-70%}.wk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-width-large-1-1{width:100%}.wk-width-large-1-2,.wk-width-large-2-4,.wk-width-large-3-6,.wk-width-large-5-10{width:50%}.wk-width-large-1-3,.wk-width-large-2-6{width:33.333%}.wk-width-large-2-3,.wk-width-large-4-6{width:66.666%}.wk-width-large-1-4{width:25%}.wk-width-large-3-4{width:75%}.wk-width-large-1-5,.wk-width-large-2-10{width:20%}.wk-width-large-2-5,.wk-width-large-4-10{width:40%}.wk-width-large-3-5,.wk-width-large-6-10{width:60%}.wk-width-large-4-5,.wk-width-large-8-10{width:80%}.wk-width-large-1-6{width:16.666%}.wk-width-large-5-6{width:83.333%}.wk-width-large-1-10{width:10%}.wk-width-large-3-10{width:30%}.wk-width-large-7-10{width:70%}.wk-width-large-9-10{width:90%}}.wk-panel{display:block;position:relative}.wk-panel,.wk-panel:hover{text-decoration:none}.wk-panel:after,.wk-panel:before{content:"";display:table}.wk-panel>:not(.wk-panel-title):last-child{margin-bottom:0}.wk-panel-teaser,.wk-panel-title{margin-bottom:20px}.wk-panel-title{margin-top:0;font-size:18px;line-height:24px;font-weight:300;text-transform:none}.wk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-panel-box .wk-panel-badge,.wk-panel-hover .wk-panel-badge{top:10px;right:10px}.wk-panel-body{padding:20px}.wk-panel-box{padding:20px;background:#fff;border:1px solid #e5e5e5;border-radius:2px}.wk-panel-box>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-box>.wk-nav-side{margin:0 -20px}.wk-panel-box-primary{background-color:#fafafa;color:#444}.wk-panel-box-secondary{background-color:#444;color:#fff}.wk-panel-box-secondary .wk-panel-title,.wk-panel-box-secondary-hover:hover{color:#fff}.wk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-nav-dropdown .wk-nav-divider,.wk-nav-navbar .wk-nav-divider,.wk-nav-side .wk-nav-divider{border-top:1px solid #e5e5e5}.wk-panel-hover>.wk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-panel-header .wk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-panel-space{padding:30px}.wk-panel-space .wk-panel-badge{top:30px;right:30px}.wk-panel+.wk-panel-divider{margin-top:50px!important}.wk-panel+.wk-panel-divider:before{content:"";display:block;position:absolute;top:-25px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1220px){.wk-width-xlarge-1-1{width:100%}.wk-width-xlarge-1-2,.wk-width-xlarge-2-4,.wk-width-xlarge-3-6,.wk-width-xlarge-5-10{width:50%}.wk-width-xlarge-1-3,.wk-width-xlarge-2-6{width:33.333%}.wk-width-xlarge-2-3,.wk-width-xlarge-4-6{width:66.666%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-width-xlarge-1-5,.wk-width-xlarge-2-10{width:20%}.wk-width-xlarge-2-5,.wk-width-xlarge-4-10{width:40%}.wk-width-xlarge-3-5,.wk-width-xlarge-6-10{width:60%}.wk-width-xlarge-4-5,.wk-width-xlarge-8-10{width:80%}.wk-width-xlarge-1-6{width:16.666%}.wk-width-xlarge-5-6{width:83.333%}.wk-width-xlarge-1-10{width:10%}.wk-width-xlarge-3-10{width:30%}.wk-width-xlarge-7-10{width:70%}.wk-width-xlarge-9-10{width:90%}.wk-panel+.wk-panel-divider{margin-top:70px!important}.wk-panel+.wk-panel-divider:before{top:-35px}}.wk-cover-object,[data-wk-cover]{position:relative;left:50%;top:50%}.wk-panel-box .wk-panel-teaser>*{border-top-left-radius:2px;border-top-right-radius:2px}.wk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-cover{overflow:hidden}.wk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}[data-wk-cover]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-nav,.wk-nav ul{margin:0;padding:0;list-style:none}.wk-nav li>a{display:block;text-decoration:none}.wk-nav>li>a{padding:5px 15px}.wk-nav ul{padding-left:15px}.wk-nav ul a{padding:2px 0}.wk-nav li>a>div{font-size:12px;line-height:18px}.wk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-nav-header:not(:first-child){margin-top:20px}.wk-nav-divider{margin:9px 15px}ul.wk-nav-sub{padding:5px 0 5px 15px}.wk-nav-parent-icon>.wk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-subnav>*,.wk-tab>li{float:left;position:relative}.wk-nav-parent-icon>.wk-parent.wk-open>a:after{content:"\f107"}.wk-nav-side>li>a{color:#444;border-radius:2px}.wk-nav-side>li>a:focus,.wk-nav-side>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-nav-side>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-side .wk-nav-header{color:#444}.wk-nav-side ul a{color:#999}.wk-nav-side ul a:hover{color:#37a5e5}.wk-nav-dropdown>li>a{color:#444}.wk-nav-dropdown>li>a:focus,.wk-nav-dropdown>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-dropdown .wk-nav-header,.wk-nav-dropdown ul a{color:#999}.wk-nav-dropdown ul a:hover{color:#37a5e5}.wk-nav-navbar>li>a{color:#444}.wk-nav-navbar>li>a:focus,.wk-nav-navbar>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-nav-navbar .wk-nav-header,.wk-nav-navbar ul a{color:#999}.wk-nav-navbar ul a:hover{color:#37a5e5}.wk-nav-offcanvas>li>a{color:#ccc;padding:10px 15px}.wk-nav-offcanvas>.wk-open>a,html:not(.wk-touch) .wk-nav-offcanvas>li>a:focus,html:not(.wk-touch) .wk-nav-offcanvas>li>a:hover{background:#292929;color:#fff;outline:0}html .wk-nav.wk-nav-offcanvas>li.wk-active>a{background:#37a5e4;color:#fff}.wk-nav-offcanvas .wk-nav-header{color:#777}.wk-nav-offcanvas .wk-nav-divider{border-top:1px solid #424242}.wk-nav-offcanvas ul a{color:#ccc}html:not(.wk-touch) .wk-nav-offcanvas ul a:hover{color:#fff}.wk-panel-box .wk-nav-side>li>a{border-radius:0}.wk-nav-dropdown>li.wk-active>a{color:#37a5e5}.wk-nav-dropdown>li.wk-active>a:hover{color:#fff}.wk-nav-navbar>li.wk-active>a{color:#37a5e5}.wk-nav-navbar>li.wk-active>a:hover{color:#fff}.wk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px}.wk-subnav:after,.wk-subnav:before{content:"";display:block;overflow:hidden}.wk-subnav>*>*{display:inline-block;color:#444}.wk-subnav>*>:focus,.wk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-subnav>.wk-active>*{color:#37a5e5}.wk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-subnav-pill>*>:focus,.wk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-subnav-pill>.wk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-subnav>.wk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-tab{margin:0;padding:0;border-bottom:1px solid #e5e5e5}.wk-tab:after,.wk-tab:before{content:"";display:table}.wk-tab>li{margin-bottom:-1px}.wk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#444;text-decoration:none;border-radius:2px 2px 0 0}.wk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-tab>li.wk-open>a,.wk-tab>li>a:focus,.wk-tab>li>a:hover{border-color:rgba(0,0,0,.06);background:#f5f5f5;color:#444;outline:0}.wk-tab>li.wk-open:not(.wk-active)>a,.wk-tab>li:not(.wk-active)>a:focus,.wk-tab>li:not(.wk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-form>:last-child,.wk-list>li>:last-child,.wk-tab-bottom>li{margin-bottom:0}.wk-tab>li.wk-active>a{border-color:#e5e5e5 #e5e5e5 transparent;background:#fff;color:#37a5e5}.wk-tab>li.wk-disabled>a{color:#999;cursor:text}.wk-tab>li.wk-disabled.wk-active>a,.wk-tab>li.wk-disabled>a:focus,.wk-tab>li.wk-disabled>a:hover{background:0 0;border-color:transparent}.wk-tab-flip>li{float:right}.wk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-tab>li.wk-tab-responsive>a{margin-left:0;margin-right:0}.wk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-tab-center{border-bottom:1px solid #e5e5e5}.wk-tab-center-bottom{border-bottom:none;border-top:1px solid #e5e5e5}.wk-tab-center:after,.wk-tab-center:before{content:"";display:table}.wk-tab-center .wk-tab{position:relative;right:50%;border:none;float:right}.wk-tab-center .wk-tab>li{position:relative;right:-50%}.wk-tab-bottom{border-top:1px solid #e5e5e5;border-bottom:none}.wk-tab-bottom>li{margin-top:-1px}.wk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0;border-radius:0 0 2px 2px}.wk-tab-bottom>li.wk-open:not(.wk-active)>a,.wk-tab-bottom>li:not(.wk-active)>a:focus,.wk-tab-bottom>li:not(.wk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-tab-bottom>li.wk-active>a{border-top-color:transparent;border-bottom-color:#e5e5e5}.wk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #e5e5e5;z-index:-1}.wk-tab-grid>li:first-child>a{margin-left:5px}.wk-tab-grid.wk-tab-bottom{border-top:none}.wk-tab-grid.wk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-tab-left,.wk-tab-right{border-bottom:none}.wk-tab-left>li,.wk-tab-right>li{margin-bottom:0;float:none}.wk-tab-left>li>a,.wk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-tab-left>li:nth-child(n+2)>a,.wk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-tab-left>li.wk-active>a,.wk-tab-right>li.wk-active>a{border-color:#e5e5e5}.wk-tab-left{border-right:1px solid #e5e5e5}.wk-tab-left>li{margin-right:-1px}.wk-tab-left>li>a{border-bottom-width:1px;border-right-width:0;border-radius:2px 0 0 2px}.wk-tab-left>li:not(.wk-active)>a:focus,.wk-tab-left>li:not(.wk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-tab-left>li.wk-active>a{border-right-color:transparent}.wk-tab-right{border-left:1px solid #e5e5e5}.wk-tab-right>li{margin-left:-1px}.wk-tab-right>li>a{border-bottom-width:1px;border-left-width:0;border-radius:0 2px 2px 0}.wk-tab-right>li:not(.wk-active)>a:focus,.wk-tab-right>li:not(.wk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-tab-right>li.wk-active>a{border-left-color:transparent}}.wk-thumbnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0}.wk-thumbnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;float:left}.wk-thumbnav:after,.wk-thumbnav:before{content:"";display:block;overflow:hidden}.wk-thumbnav:after{clear:both}.wk-thumbnav>*>*{display:block;background:#fff}.wk-thumbnav>*>*>img{opacity:.7;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.wk-thumbnav>*>:focus>img,.wk-thumbnav>*>:hover>img,.wk-thumbnav>.wk-active>*>img{opacity:1}.wk-list{padding:0}.wk-list>li:after,.wk-list>li:before{content:"";display:table}.wk-list ul{margin:0;padding-left:20px}.wk-list-line>li:nth-child(n+2){margin-top:5px;padding-top:5px;border-top:1px solid #e5e5e5}.wk-list-striped>li{padding:5px;border-bottom:1px solid #e5e5e5}.wk-list-striped>li:nth-of-type(odd){background:#fafafa}.wk-list-space>li:nth-child(n+2){margin-top:10px}.wk-list-striped>li:first-child{border-top:1px solid #e5e5e5}.wk-form input,.wk-form select,.wk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-form select{text-transform:none}.wk-form optgroup{font:inherit;font-weight:700}.wk-form input::-moz-focus-inner{border:0;padding:0}.wk-form input[type=checkbox],.wk-form input[type=radio]{padding:0}.wk-form input[type=checkbox]:not(:disabled),.wk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form textarea{-webkit-appearance:none}.wk-form input[type=search]::-webkit-search-cancel-button,.wk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-form input[type=number]::-webkit-inner-spin-button,.wk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-form fieldset{border:none;margin:0;padding:0}.wk-form textarea{overflow:auto;vertical-align:top}.wk-button,.wk-close{-webkit-appearance:none;overflow:visible;text-transform:none;text-align:center}.wk-button,.wk-button-group,.wk-form input:not([type=radio]):not([type=checkbox]),.wk-form select{vertical-align:middle}.wk-form :invalid{box-shadow:none}.wk-form input:not([type]),.wk-form input[type=text],.wk-form input[type=password],.wk-form input[type=email],.wk-form input[type=url],.wk-form input[type=search],.wk-form input[type=tel],.wk-form input[type=number],.wk-form input[type=datetime],.wk-form input[type=datetime-local],.wk-form input[type=date],.wk-form input[type=month],.wk-form input[type=time],.wk-form input[type=week],.wk-form input[type=color],.wk-form select,.wk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px}.wk-form input:not([type]):focus,.wk-form input[type=text]:focus,.wk-form input[type=password]:focus,.wk-form input[type=email]:focus,.wk-form input[type=url]:focus,.wk-form input[type=search]:focus,.wk-form input[type=tel]:focus,.wk-form input[type=number]:focus,.wk-form input[type=datetime]:focus,.wk-form input[type=datetime-local]:focus,.wk-form input[type=date]:focus,.wk-form input[type=month]:focus,.wk-form input[type=time]:focus,.wk-form input[type=week]:focus,.wk-form input[type=color]:focus,.wk-form select:focus,.wk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-form input:not([type]):disabled,.wk-form input[type=text]:disabled,.wk-form input[type=password]:disabled,.wk-form input[type=email]:disabled,.wk-form input[type=url]:disabled,.wk-form input[type=search]:disabled,.wk-form input[type=tel]:disabled,.wk-form input[type=number]:disabled,.wk-form input[type=datetime]:disabled,.wk-form input[type=datetime-local]:disabled,.wk-form input[type=date]:disabled,.wk-form input[type=month]:disabled,.wk-form input[type=time]:disabled,.wk-form input[type=week]:disabled,.wk-form input[type=color]:disabled,.wk-form select:disabled,.wk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-form :-ms-input-placeholder{color:#999!important}.wk-form ::-moz-placeholder{opacity:1;color:#999}.wk-form ::-webkit-input-placeholder{color:#999}.wk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-form :disabled::-moz-placeholder{color:#999}.wk-form :disabled::-webkit-input-placeholder{color:#999}.wk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}input:not([type]).wk-form-small,input[type].wk-form-small,select.wk-form-small,textarea.wk-form-small{height:30px;padding:3px;font-size:12px}input:not([type]).wk-form-large,input[type].wk-form-large,select.wk-form-large,textarea.wk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-form select[multiple],.wk-form select[size],.wk-form textarea{height:auto}.wk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#e95555!important}.wk-form-success{border-color:#80c96d!important;background:#fff!important;color:#71bd6a!important}.wk-form-blank{border-color:transparent!important;border-style:dashed!important;background:0 0!important}.wk-form-blank:focus{border-color:#e5e5e5!important}input.wk-form-width-mini{width:40px}select.wk-form-width-mini{width:65px}.wk-form-width-small{width:130px}.wk-form-width-medium{width:200px}.wk-form-width-large{width:500px}.wk-form-row:after,.wk-form-row:before{content:"";display:table}.wk-form-row+.wk-form-row{margin-top:20px}.wk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-form-controls>:first-child{margin-top:0}.wk-form-controls>:last-child{margin-bottom:0}.wk-form-controls-condensed{margin:5px 0}.wk-form-stacked .wk-form-label{display:block;margin-bottom:5px;font-weight:700}@media (max-width:959px){.wk-form-horizontal .wk-form-label{display:block;margin-bottom:5px;font-weight:700}}.wk-button,.wk-button-dropdown,.wk-button-group,.wk-button-group>*,.wk-form-icon{display:inline-block}.wk-overlay-area-content>:last-child,.wk-overlay-panel.wk-flex>*>:last-child,.wk-overlay-panel>:last-child,.wk-overlay>:first-child{margin-bottom:0}@media (min-width:960px){.wk-form-horizontal .wk-form-label{width:200px;margin-top:7px;float:left}.wk-form-horizontal .wk-form-controls{margin-left:215px}.wk-form-horizontal .wk-form-controls-text{padding-top:5px}}.wk-form-icon{position:relative;max-width:100%}.wk-form-icon>[class*=wk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-button-group,.wk-button-group .wk-button:active,.wk-button-group .wk-button:hover,.wk-overlay{position:relative}.wk-form-icon:not(.wk-form-icon-flip)>input{padding-left:30px!important}.wk-form-icon-flip>[class*=wk-icon-]{right:0}.wk-form-icon-flip>input{padding-right:30px!important}.wk-button::-moz-focus-inner{border:0;padding:0}.wk-button{margin:0;font:inherit;color:#444;box-sizing:border-box;padding:0 15px;background:#f5f5f5;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;border:1px solid rgba(0,0,0,.1)!important;border-radius:2px}.wk-button:not(:disabled){cursor:pointer}.wk-button:focus,.wk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)!important}.wk-button.wk-active,.wk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-button-danger,.wk-button-danger.wk-active,.wk-button-danger:active,.wk-button-danger:focus,.wk-button-danger:hover,.wk-button-primary,.wk-button-primary:focus,.wk-button-primary:hover,.wk-button-success,.wk-button-success.wk-active,.wk-button-success:active,.wk-button-success:focus,.wk-button-success:hover{color:#fff;border-color:transparent!important}.wk-button-primary{background-color:#37a5e4}.wk-button-primary:focus,.wk-button-primary:hover{background-color:#2495d6}.wk-button-primary.wk-active,.wk-button-primary:active{background-color:#1889c6;color:#fff;border-color:transparent!important;box-shadow:inset 0 1px 3px rgba(16,90,130,.2)}.wk-button-success{background-color:#80c96d}.wk-button-success:focus,.wk-button-success:hover{background-color:#6dbc58}.wk-button-success.wk-active,.wk-button-success:active{background-color:#61b54c;box-shadow:inset 0 1px 3px rgba(68,128,53,.2)}.wk-button-danger{background-color:#f0615b}.wk-button-danger:focus,.wk-button-danger:hover{background-color:#e54f49}.wk-button-danger.wk-active,.wk-button-danger:active{background-color:#e4463a;box-shadow:inset 0 1px 3px rgba(162,32,22,.2)}.wk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1)!important;box-shadow:none}.wk-button-link,.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:disabled,.wk-button-link:focus,.wk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-button-link{color:#37a5e5}.wk-button-link.wk-active,.wk-button-link:active,.wk-button-link:focus,.wk-button-link:hover{color:#1889c7;text-decoration:none}.wk-button-link:disabled,.wk-icon-hover{color:#999}.wk-button-link:focus{outline:dotted 1px}.wk-button-mini{min-height:25px;padding:0 8px;line-height:23px;font-size:12px}.wk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-button-group{font-size:0}.wk-button-group .wk-button{vertical-align:top}.wk-button-dropdown{vertical-align:middle;position:relative}.wk-button-group>.wk-button:not(:first-child):not(:last-child),.wk-button-group>div:not(:first-child):not(:last-child) .wk-button{border-radius:0}.wk-button-group>.wk-button:first-child,.wk-button-group>div:first-child .wk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-button-group>.wk-button:last-child,.wk-button-group>div:last-child .wk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-button-group>.wk-button:nth-child(n+2),.wk-button-group>div:nth-child(n+2) .wk-button{margin-left:-1px}@font-face{font-family:FontAwesome;src:url("/media/widgetkit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/media/widgetkit/fonts/fontawesome-webfont.woff") format("woff"),url("/media/widgetkit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}[class*=wk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=wk-icon-],[class*=wk-icon-]:focus,[class*=wk-icon-]:hover{text-decoration:none}.wk-icon-small{font-size:150%;vertical-align:-10%}.wk-icon-medium{font-size:200%;vertical-align:-16%}.wk-icon-large{font-size:250%;vertical-align:-22%}.wk-overlay,.wk-overlay-area-content,.wk-overlay-area:not(:empty):before{vertical-align:middle;display:inline-block}.wk-icon-justify{width:1em;text-align:center}.wk-icon-spin{display:inline-block;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-icon-hover:hover{color:#444}.wk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-icon-button:focus,.wk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-icon-glass:before{content:"\f000"}.wk-icon-music:before{content:"\f001"}.wk-icon-search:before{content:"\f002"}.wk-icon-envelope-o:before{content:"\f003"}.wk-icon-heart:before{content:"\f004"}.wk-icon-star:before{content:"\f005"}.wk-icon-star-o:before{content:"\f006"}.wk-icon-user:before{content:"\f007"}.wk-icon-film:before{content:"\f008"}.wk-icon-th-large:before{content:"\f009"}.wk-icon-th:before{content:"\f00a"}.wk-icon-th-list:before{content:"\f00b"}.wk-icon-check:before{content:"\f00c"}.wk-icon-close:before,.wk-icon-remove:before,.wk-icon-times:before{content:"\f00d"}.wk-icon-search-plus:before{content:"\f00e"}.wk-icon-search-minus:before{content:"\f010"}.wk-icon-power-off:before{content:"\f011"}.wk-icon-signal:before{content:"\f012"}.wk-icon-cog:before,.wk-icon-gear:before{content:"\f013"}.wk-icon-trash-o:before{content:"\f014"}.wk-icon-home:before{content:"\f015"}.wk-icon-file-o:before{content:"\f016"}.wk-icon-clock-o:before{content:"\f017"}.wk-icon-road:before{content:"\f018"}.wk-icon-download:before{content:"\f019"}.wk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-icon-inbox:before{content:"\f01c"}.wk-icon-play-circle-o:before{content:"\f01d"}.wk-icon-repeat:before,.wk-icon-rotate-right:before{content:"\f01e"}.wk-icon-refresh:before{content:"\f021"}.wk-icon-list-alt:before{content:"\f022"}.wk-icon-lock:before{content:"\f023"}.wk-icon-flag:before{content:"\f024"}.wk-icon-headphones:before{content:"\f025"}.wk-icon-volume-off:before{content:"\f026"}.wk-icon-volume-down:before{content:"\f027"}.wk-icon-volume-up:before{content:"\f028"}.wk-icon-qrcode:before{content:"\f029"}.wk-icon-barcode:before{content:"\f02a"}.wk-icon-tag:before{content:"\f02b"}.wk-icon-tags:before{content:"\f02c"}.wk-icon-book:before{content:"\f02d"}.wk-icon-bookmark:before{content:"\f02e"}.wk-icon-print:before{content:"\f02f"}.wk-icon-camera:before{content:"\f030"}.wk-icon-font:before{content:"\f031"}.wk-icon-bold:before{content:"\f032"}.wk-icon-italic:before{content:"\f033"}.wk-icon-text-height:before{content:"\f034"}.wk-icon-text-width:before{content:"\f035"}.wk-icon-align-left:before{content:"\f036"}.wk-icon-align-center:before{content:"\f037"}.wk-icon-align-right:before{content:"\f038"}.wk-icon-align-justify:before{content:"\f039"}.wk-icon-list:before{content:"\f03a"}.wk-icon-dedent:before,.wk-icon-outdent:before{content:"\f03b"}.wk-icon-indent:before{content:"\f03c"}.wk-icon-video-camera:before{content:"\f03d"}.wk-icon-image:before,.wk-icon-photo:before,.wk-icon-picture-o:before{content:"\f03e"}.wk-icon-pencil:before{content:"\f040"}.wk-icon-map-marker:before{content:"\f041"}.wk-icon-adjust:before{content:"\f042"}.wk-icon-tint:before{content:"\f043"}.wk-icon-edit:before,.wk-icon-pencil-square-o:before{content:"\f044"}.wk-icon-share-square-o:before{content:"\f045"}.wk-icon-check-square-o:before{content:"\f046"}.wk-icon-arrows:before{content:"\f047"}.wk-icon-step-backward:before{content:"\f048"}.wk-icon-fast-backward:before{content:"\f049"}.wk-icon-backward:before{content:"\f04a"}.wk-icon-play:before{content:"\f04b"}.wk-icon-pause:before{content:"\f04c"}.wk-icon-stop:before{content:"\f04d"}.wk-icon-forward:before{content:"\f04e"}.wk-icon-fast-forward:before{content:"\f050"}.wk-icon-step-forward:before{content:"\f051"}.wk-icon-eject:before{content:"\f052"}.wk-icon-chevron-left:before{content:"\f053"}.wk-icon-chevron-right:before{content:"\f054"}.wk-icon-plus-circle:before{content:"\f055"}.wk-icon-minus-circle:before{content:"\f056"}.wk-icon-times-circle:before{content:"\f057"}.wk-icon-check-circle:before{content:"\f058"}.wk-icon-question-circle:before{content:"\f059"}.wk-icon-info-circle:before{content:"\f05a"}.wk-icon-crosshairs:before{content:"\f05b"}.wk-icon-times-circle-o:before{content:"\f05c"}.wk-icon-check-circle-o:before{content:"\f05d"}.wk-icon-ban:before{content:"\f05e"}.wk-icon-arrow-left:before{content:"\f060"}.wk-icon-arrow-right:before{content:"\f061"}.wk-icon-arrow-up:before{content:"\f062"}.wk-icon-arrow-down:before{content:"\f063"}.wk-icon-mail-forward:before,.wk-icon-share:before{content:"\f064"}.wk-icon-expand:before{content:"\f065"}.wk-icon-compress:before{content:"\f066"}.wk-icon-plus:before{content:"\f067"}.wk-icon-minus:before{content:"\f068"}.wk-icon-asterisk:before{content:"\f069"}.wk-icon-exclamation-circle:before{content:"\f06a"}.wk-icon-gift:before{content:"\f06b"}.wk-icon-leaf:before{content:"\f06c"}.wk-icon-fire:before{content:"\f06d"}.wk-icon-eye:before{content:"\f06e"}.wk-icon-eye-slash:before{content:"\f070"}.wk-icon-exclamation-triangle:before,.wk-icon-warning:before{content:"\f071"}.wk-icon-plane:before{content:"\f072"}.wk-icon-calendar:before{content:"\f073"}.wk-icon-random:before{content:"\f074"}.wk-icon-comment:before{content:"\f075"}.wk-icon-magnet:before{content:"\f076"}.wk-icon-chevron-up:before{content:"\f077"}.wk-icon-chevron-down:before{content:"\f078"}.wk-icon-retweet:before{content:"\f079"}.wk-icon-shopping-cart:before{content:"\f07a"}.wk-icon-folder:before{content:"\f07b"}.wk-icon-folder-open:before{content:"\f07c"}.wk-icon-arrows-v:before{content:"\f07d"}.wk-icon-arrows-h:before{content:"\f07e"}.wk-icon-bar-chart-o:before,.wk-icon-bar-chart:before{content:"\f080"}.wk-icon-twitter-square:before{content:"\f081"}.wk-icon-facebook-square:before{content:"\f082"}.wk-icon-camera-retro:before{content:"\f083"}.wk-icon-key:before{content:"\f084"}.wk-icon-cogs:before,.wk-icon-gears:before{content:"\f085"}.wk-icon-comments:before{content:"\f086"}.wk-icon-thumbs-o-up:before{content:"\f087"}.wk-icon-thumbs-o-down:before{content:"\f088"}.wk-icon-star-half:before{content:"\f089"}.wk-icon-heart-o:before{content:"\f08a"}.wk-icon-sign-out:before{content:"\f08b"}.wk-icon-linkedin-square:before{content:"\f08c"}.wk-icon-thumb-tack:before{content:"\f08d"}.wk-icon-external-link:before{content:"\f08e"}.wk-icon-sign-in:before{content:"\f090"}.wk-icon-trophy:before{content:"\f091"}.wk-icon-github-square:before{content:"\f092"}.wk-icon-upload:before{content:"\f093"}.wk-icon-lemon-o:before{content:"\f094"}.wk-icon-phone:before{content:"\f095"}.wk-icon-square-o:before{content:"\f096"}.wk-icon-bookmark-o:before{content:"\f097"}.wk-icon-phone-square:before{content:"\f098"}.wk-icon-twitter:before{content:"\f099"}.wk-icon-facebook-f:before,.wk-icon-facebook:before{content:"\f09a"}.wk-icon-github:before{content:"\f09b"}.wk-icon-unlock:before{content:"\f09c"}.wk-icon-credit-card:before{content:"\f09d"}.wk-icon-rss:before{content:"\f09e"}.wk-icon-hdd-o:before{content:"\f0a0"}.wk-icon-bullhorn:before{content:"\f0a1"}.wk-icon-bell:before{content:"\f0f3"}.wk-icon-certificate:before{content:"\f0a3"}.wk-icon-hand-o-right:before{content:"\f0a4"}.wk-icon-hand-o-left:before{content:"\f0a5"}.wk-icon-hand-o-up:before{content:"\f0a6"}.wk-icon-hand-o-down:before{content:"\f0a7"}.wk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-icon-globe:before{content:"\f0ac"}.wk-icon-wrench:before{content:"\f0ad"}.wk-icon-tasks:before{content:"\f0ae"}.wk-icon-filter:before{content:"\f0b0"}.wk-icon-briefcase:before{content:"\f0b1"}.wk-icon-arrows-alt:before{content:"\f0b2"}.wk-icon-group:before,.wk-icon-users:before{content:"\f0c0"}.wk-icon-chain:before,.wk-icon-link:before{content:"\f0c1"}.wk-icon-cloud:before{content:"\f0c2"}.wk-icon-flask:before{content:"\f0c3"}.wk-icon-cut:before,.wk-icon-scissors:before{content:"\f0c4"}.wk-icon-copy:before,.wk-icon-files-o:before{content:"\f0c5"}.wk-icon-paperclip:before{content:"\f0c6"}.wk-icon-floppy-o:before,.wk-icon-save:before{content:"\f0c7"}.wk-icon-square:before{content:"\f0c8"}.wk-icon-bars:before,.wk-icon-navicon:before,.wk-icon-reorder:before{content:"\f0c9"}.wk-icon-list-ul:before{content:"\f0ca"}.wk-icon-list-ol:before{content:"\f0cb"}.wk-icon-strikethrough:before{content:"\f0cc"}.wk-icon-underline:before{content:"\f0cd"}.wk-icon-table:before{content:"\f0ce"}.wk-icon-magic:before{content:"\f0d0"}.wk-icon-truck:before{content:"\f0d1"}.wk-icon-pinterest:before{content:"\f0d2"}.wk-icon-pinterest-square:before{content:"\f0d3"}.wk-icon-google-plus-square:before{content:"\f0d4"}.wk-icon-google-plus:before{content:"\f0d5"}.wk-icon-money:before{content:"\f0d6"}.wk-icon-caret-down:before{content:"\f0d7"}.wk-icon-caret-up:before{content:"\f0d8"}.wk-icon-caret-left:before{content:"\f0d9"}.wk-icon-caret-right:before{content:"\f0da"}.wk-icon-columns:before{content:"\f0db"}.wk-icon-sort:before,.wk-icon-unsorted:before{content:"\f0dc"}.wk-icon-sort-desc:before,.wk-icon-sort-down:before{content:"\f0dd"}.wk-icon-sort-asc:before,.wk-icon-sort-up:before{content:"\f0de"}.wk-icon-envelope:before{content:"\f0e0"}.wk-icon-linkedin:before{content:"\f0e1"}.wk-icon-rotate-left:before,.wk-icon-undo:before{content:"\f0e2"}.wk-icon-gavel:before,.wk-icon-legal:before{content:"\f0e3"}.wk-icon-dashboard:before,.wk-icon-tachometer:before{content:"\f0e4"}.wk-icon-comment-o:before{content:"\f0e5"}.wk-icon-comments-o:before{content:"\f0e6"}.wk-icon-bolt:before,.wk-icon-flash:before{content:"\f0e7"}.wk-icon-sitemap:before{content:"\f0e8"}.wk-icon-umbrella:before{content:"\f0e9"}.wk-icon-clipboard:before,.wk-icon-paste:before{content:"\f0ea"}.wk-icon-lightbulb-o:before{content:"\f0eb"}.wk-icon-exchange:before{content:"\f0ec"}.wk-icon-cloud-download:before{content:"\f0ed"}.wk-icon-cloud-upload:before{content:"\f0ee"}.wk-icon-user-md:before{content:"\f0f0"}.wk-icon-stethoscope:before{content:"\f0f1"}.wk-icon-suitcase:before{content:"\f0f2"}.wk-icon-bell-o:before{content:"\f0a2"}.wk-icon-coffee:before{content:"\f0f4"}.wk-icon-cutlery:before{content:"\f0f5"}.wk-icon-file-text-o:before{content:"\f0f6"}.wk-icon-building-o:before{content:"\f0f7"}.wk-icon-hospital-o:before{content:"\f0f8"}.wk-icon-ambulance:before{content:"\f0f9"}.wk-icon-medkit:before{content:"\f0fa"}.wk-icon-fighter-jet:before{content:"\f0fb"}.wk-icon-beer:before{content:"\f0fc"}.wk-icon-h-square:before{content:"\f0fd"}.wk-icon-plus-square:before{content:"\f0fe"}.wk-icon-angle-double-left:before{content:"\f100"}.wk-icon-angle-double-right:before{content:"\f101"}.wk-icon-angle-double-up:before{content:"\f102"}.wk-icon-angle-double-down:before{content:"\f103"}.wk-icon-angle-left:before{content:"\f104"}.wk-icon-angle-right:before{content:"\f105"}.wk-icon-angle-up:before{content:"\f106"}.wk-icon-angle-down:before{content:"\f107"}.wk-icon-desktop:before{content:"\f108"}.wk-icon-laptop:before{content:"\f109"}.wk-icon-tablet:before{content:"\f10a"}.wk-icon-mobile-phone:before,.wk-icon-mobile:before{content:"\f10b"}.wk-icon-circle-o:before{content:"\f10c"}.wk-icon-quote-left:before{content:"\f10d"}.wk-icon-quote-right:before{content:"\f10e"}.wk-icon-spinner:before{content:"\f110"}.wk-icon-circle:before{content:"\f111"}.wk-icon-mail-reply:before,.wk-icon-reply:before{content:"\f112"}.wk-icon-github-alt:before{content:"\f113"}.wk-icon-folder-o:before{content:"\f114"}.wk-icon-folder-open-o:before{content:"\f115"}.wk-icon-smile-o:before{content:"\f118"}.wk-icon-frown-o:before{content:"\f119"}.wk-icon-meh-o:before{content:"\f11a"}.wk-icon-gamepad:before{content:"\f11b"}.wk-icon-keyboard-o:before{content:"\f11c"}.wk-icon-flag-o:before{content:"\f11d"}.wk-icon-flag-checkered:before{content:"\f11e"}.wk-icon-terminal:before{content:"\f120"}.wk-icon-code:before{content:"\f121"}.wk-icon-mail-reply-all:before,.wk-icon-reply-all:before{content:"\f122"}.wk-icon-star-half-empty:before,.wk-icon-star-half-full:before,.wk-icon-star-half-o:before{content:"\f123"}.wk-icon-location-arrow:before{content:"\f124"}.wk-icon-crop:before{content:"\f125"}.wk-icon-code-fork:before{content:"\f126"}.wk-icon-chain-broken:before,.wk-icon-unlink:before{content:"\f127"}.wk-icon-question:before{content:"\f128"}.wk-icon-info:before{content:"\f129"}.wk-icon-exclamation:before{content:"\f12a"}.wk-icon-superscript:before{content:"\f12b"}.wk-icon-subscript:before{content:"\f12c"}.wk-icon-eraser:before{content:"\f12d"}.wk-icon-puzzle-piece:before{content:"\f12e"}.wk-icon-microphone:before{content:"\f130"}.wk-icon-microphone-slash:before{content:"\f131"}.wk-icon-shield:before{content:"\f132"}.wk-icon-calendar-o:before{content:"\f133"}.wk-icon-fire-extinguisher:before{content:"\f134"}.wk-icon-rocket:before{content:"\f135"}.wk-icon-maxcdn:before{content:"\f136"}.wk-icon-chevron-circle-left:before{content:"\f137"}.wk-icon-chevron-circle-right:before{content:"\f138"}.wk-icon-chevron-circle-up:before{content:"\f139"}.wk-icon-chevron-circle-down:before{content:"\f13a"}.wk-icon-html5:before{content:"\f13b"}.wk-icon-css3:before{content:"\f13c"}.wk-icon-anchor:before{content:"\f13d"}.wk-icon-unlock-alt:before{content:"\f13e"}.wk-icon-bullseye:before{content:"\f140"}.wk-icon-ellipsis-h:before{content:"\f141"}.wk-icon-ellipsis-v:before{content:"\f142"}.wk-icon-rss-square:before{content:"\f143"}.wk-icon-play-circle:before{content:"\f144"}.wk-icon-ticket:before{content:"\f145"}.wk-icon-minus-square:before{content:"\f146"}.wk-icon-minus-square-o:before{content:"\f147"}.wk-icon-level-up:before{content:"\f148"}.wk-icon-level-down:before{content:"\f149"}.wk-icon-check-square:before{content:"\f14a"}.wk-icon-pencil-square:before{content:"\f14b"}.wk-icon-external-link-square:before{content:"\f14c"}.wk-icon-share-square:before{content:"\f14d"}.wk-icon-compass:before{content:"\f14e"}.wk-icon-caret-square-o-down:before,.wk-icon-toggle-down:before{content:"\f150"}.wk-icon-caret-square-o-up:before,.wk-icon-toggle-up:before{content:"\f151"}.wk-icon-caret-square-o-right:before,.wk-icon-toggle-right:before{content:"\f152"}.wk-icon-eur:before,.wk-icon-euro:before{content:"\f153"}.wk-icon-gbp:before{content:"\f154"}.wk-icon-dollar:before,.wk-icon-usd:before{content:"\f155"}.wk-icon-inr:before,.wk-icon-rupee:before{content:"\f156"}.wk-icon-cny:before,.wk-icon-jpy:before,.wk-icon-rmb:before,.wk-icon-yen:before{content:"\f157"}.wk-icon-rouble:before,.wk-icon-rub:before,.wk-icon-ruble:before{content:"\f158"}.wk-icon-krw:before,.wk-icon-won:before{content:"\f159"}.wk-icon-bitcoin:before,.wk-icon-btc:before{content:"\f15a"}.wk-icon-file:before{content:"\f15b"}.wk-icon-file-text:before{content:"\f15c"}.wk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-icon-sort-amount-asc:before{content:"\f160"}.wk-icon-sort-amount-desc:before{content:"\f161"}.wk-icon-sort-numeric-asc:before{content:"\f162"}.wk-icon-sort-numeric-desc:before{content:"\f163"}.wk-icon-thumbs-up:before{content:"\f164"}.wk-icon-thumbs-down:before{content:"\f165"}.wk-icon-youtube-square:before{content:"\f166"}.wk-icon-youtube:before{content:"\f167"}.wk-icon-xing:before{content:"\f168"}.wk-icon-xing-square:before{content:"\f169"}.wk-icon-youtube-play:before{content:"\f16a"}.wk-icon-dropbox:before{content:"\f16b"}.wk-icon-stack-overflow:before{content:"\f16c"}.wk-icon-instagram:before{content:"\f16d"}.wk-icon-flickr:before{content:"\f16e"}.wk-icon-adn:before{content:"\f170"}.wk-icon-bitbucket:before{content:"\f171"}.wk-icon-bitbucket-square:before{content:"\f172"}.wk-icon-tumblr:before{content:"\f173"}.wk-icon-tumblr-square:before{content:"\f174"}.wk-icon-long-arrow-down:before{content:"\f175"}.wk-icon-long-arrow-up:before{content:"\f176"}.wk-icon-long-arrow-left:before{content:"\f177"}.wk-icon-long-arrow-right:before{content:"\f178"}.wk-icon-apple:before{content:"\f179"}.wk-icon-windows:before{content:"\f17a"}.wk-icon-android:before{content:"\f17b"}.wk-icon-linux:before{content:"\f17c"}.wk-icon-dribbble:before{content:"\f17d"}.wk-icon-skype:before{content:"\f17e"}.wk-icon-foursquare:before{content:"\f180"}.wk-icon-trello:before{content:"\f181"}.wk-icon-female:before{content:"\f182"}.wk-icon-male:before{content:"\f183"}.wk-icon-gittip:before,.wk-icon-gratipay:before{content:"\f184"}.wk-icon-sun-o:before{content:"\f185"}.wk-icon-moon-o:before{content:"\f186"}.wk-icon-archive:before{content:"\f187"}.wk-icon-bug:before{content:"\f188"}.wk-icon-vk:before{content:"\f189"}.wk-icon-weibo:before{content:"\f18a"}.wk-icon-renren:before{content:"\f18b"}.wk-icon-pagelines:before{content:"\f18c"}.wk-icon-stack-exchange:before{content:"\f18d"}.wk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-icon-caret-square-o-left:before,.wk-icon-toggle-left:before{content:"\f191"}.wk-icon-dot-circle-o:before{content:"\f192"}.wk-icon-wheelchair:before{content:"\f193"}.wk-icon-vimeo-square:before{content:"\f194"}.wk-icon-try:before,.wk-icon-turkish-lira:before{content:"\f195"}.wk-icon-plus-square-o:before{content:"\f196"}.wk-icon-space-shuttle:before{content:"\f197"}.wk-icon-slack:before{content:"\f198"}.wk-icon-envelope-square:before{content:"\f199"}.wk-icon-wordpress:before{content:"\f19a"}.wk-icon-openid:before{content:"\f19b"}.wk-icon-bank:before,.wk-icon-institution:before,.wk-icon-university:before{content:"\f19c"}.wk-icon-graduation-cap:before,.wk-icon-mortar-board:before{content:"\f19d"}.wk-icon-yahoo:before{content:"\f19e"}.wk-icon-google:before{content:"\f1a0"}.wk-icon-reddit:before{content:"\f1a1"}.wk-icon-reddit-square:before{content:"\f1a2"}.wk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-icon-stumbleupon:before{content:"\f1a4"}.wk-icon-delicious:before{content:"\f1a5"}.wk-icon-digg:before{content:"\f1a6"}.wk-icon-pied-piper:before{content:"\f1a7"}.wk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-icon-drupal:before{content:"\f1a9"}.wk-icon-joomla:before{content:"\f1aa"}.wk-icon-language:before{content:"\f1ab"}.wk-icon-fax:before{content:"\f1ac"}.wk-icon-building:before{content:"\f1ad"}.wk-icon-child:before{content:"\f1ae"}.wk-icon-paw:before{content:"\f1b0"}.wk-icon-spoon:before{content:"\f1b1"}.wk-icon-cube:before{content:"\f1b2"}.wk-icon-cubes:before{content:"\f1b3"}.wk-icon-behance:before{content:"\f1b4"}.wk-icon-behance-square:before{content:"\f1b5"}.wk-icon-steam:before{content:"\f1b6"}.wk-icon-steam-square:before{content:"\f1b7"}.wk-icon-recycle:before{content:"\f1b8"}.wk-icon-automobile:before,.wk-icon-car:before{content:"\f1b9"}.wk-icon-cab:before,.wk-icon-taxi:before{content:"\f1ba"}.wk-icon-tree:before{content:"\f1bb"}.wk-icon-spotify:before{content:"\f1bc"}.wk-icon-deviantart:before{content:"\f1bd"}.wk-icon-soundcloud:before{content:"\f1be"}.wk-icon-database:before{content:"\f1c0"}.wk-icon-file-pdf-o:before{content:"\f1c1"}.wk-icon-file-word-o:before{content:"\f1c2"}.wk-icon-file-excel-o:before{content:"\f1c3"}.wk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-icon-file-image-o:before,.wk-icon-file-photo-o:before,.wk-icon-file-picture-o:before{content:"\f1c5"}.wk-icon-file-archive-o:before,.wk-icon-file-zip-o:before{content:"\f1c6"}.wk-icon-file-audio-o:before,.wk-icon-file-sound-o:before{content:"\f1c7"}.wk-icon-file-movie-o:before,.wk-icon-file-video-o:before{content:"\f1c8"}.wk-icon-file-code-o:before{content:"\f1c9"}.wk-icon-vine:before{content:"\f1ca"}.wk-icon-codepen:before{content:"\f1cb"}.wk-icon-jsfiddle:before{content:"\f1cc"}.wk-icon-life-bouy:before,.wk-icon-life-buoy:before,.wk-icon-life-ring:before,.wk-icon-life-saver:before,.wk-icon-support:before{content:"\f1cd"}.wk-icon-circle-o-notch:before{content:"\f1ce"}.wk-icon-ra:before,.wk-icon-rebel:before{content:"\f1d0"}.wk-icon-empire:before,.wk-icon-ge:before{content:"\f1d1"}.wk-icon-git-square:before{content:"\f1d2"}.wk-icon-git:before{content:"\f1d3"}.wk-icon-hacker-news:before{content:"\f1d4"}.wk-icon-tencent-weibo:before{content:"\f1d5"}.wk-icon-qq:before{content:"\f1d6"}.wk-icon-wechat:before,.wk-icon-weixin:before{content:"\f1d7"}.wk-icon-paper-plane:before,.wk-icon-send:before{content:"\f1d8"}.wk-icon-paper-plane-o:before,.wk-icon-send-o:before{content:"\f1d9"}.wk-icon-history:before{content:"\f1da"}.wk-icon-circle-thin:before,.wk-icon-genderless:before{content:"\f1db"}.wk-icon-header:before{content:"\f1dc"}.wk-icon-paragraph:before{content:"\f1dd"}.wk-icon-sliders:before{content:"\f1de"}.wk-icon-share-alt:before{content:"\f1e0"}.wk-icon-share-alt-square:before{content:"\f1e1"}.wk-icon-bomb:before{content:"\f1e2"}.wk-icon-futbol-o:before,.wk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-icon-tty:before{content:"\f1e4"}.wk-icon-binoculars:before{content:"\f1e5"}.wk-icon-plug:before{content:"\f1e6"}.wk-icon-slideshare:before{content:"\f1e7"}.wk-icon-twitch:before{content:"\f1e8"}.wk-icon-yelp:before{content:"\f1e9"}.wk-icon-newspaper-o:before{content:"\f1ea"}.wk-icon-wifi:before{content:"\f1eb"}.wk-icon-calculator:before{content:"\f1ec"}.wk-icon-paypal:before{content:"\f1ed"}.wk-icon-google-wallet:before{content:"\f1ee"}.wk-icon-cc-visa:before{content:"\f1f0"}.wk-icon-cc-mastercard:before{content:"\f1f1"}.wk-icon-cc-discover:before{content:"\f1f2"}.wk-icon-cc-amex:before{content:"\f1f3"}.wk-icon-cc-paypal:before{content:"\f1f4"}.wk-icon-cc-stripe:before{content:"\f1f5"}.wk-icon-bell-slash:before{content:"\f1f6"}.wk-icon-bell-slash-o:before{content:"\f1f7"}.wk-icon-trash:before{content:"\f1f8"}.wk-icon-copyright:before{content:"\f1f9"}.wk-icon-at:before{content:"\f1fa"}.wk-icon-eyedropper:before{content:"\f1fb"}.wk-icon-paint-brush:before{content:"\f1fc"}.wk-icon-birthday-cake:before{content:"\f1fd"}.wk-icon-area-chart:before{content:"\f1fe"}.wk-icon-pie-chart:before{content:"\f200"}.wk-icon-line-chart:before{content:"\f201"}.wk-icon-lastfm:before{content:"\f202"}.wk-icon-lastfm-square:before{content:"\f203"}.wk-icon-toggle-off:before{content:"\f204"}.wk-icon-toggle-on:before{content:"\f205"}.wk-icon-bicycle:before{content:"\f206"}.wk-icon-bus:before{content:"\f207"}.wk-icon-ioxhost:before{content:"\f208"}.wk-icon-angellist:before{content:"\f209"}.wk-icon-cc:before{content:"\f20a"}.wk-icon-ils:before,.wk-icon-shekel:before,.wk-icon-sheqel:before{content:"\f20b"}.wk-icon-meanpath:before{content:"\f20c"}.wk-icon-buysellads:before{content:"\f20d"}.wk-icon-connectdevelop:before{content:"\f20e"}.wk-icon-dashcube:before{content:"\f210"}.wk-icon-forumbee:before{content:"\f211"}.wk-icon-leanpub:before{content:"\f212"}.wk-icon-sellsy:before{content:"\f213"}.wk-icon-shirtsinbulk:before{content:"\f214"}.wk-icon-simplybuilt:before{content:"\f215"}.wk-icon-skyatlas:before{content:"\f216"}.wk-icon-cart-plus:before{content:"\f217"}.wk-icon-cart-arrow-down:before{content:"\f218"}.wk-icon-diamond:before{content:"\f219"}.wk-icon-ship:before{content:"\f21a"}.wk-icon-user-secret:before{content:"\f21b"}.wk-icon-motorcycle:before{content:"\f21c"}.wk-icon-street-view:before{content:"\f21d"}.wk-icon-heartbeat:before{content:"\f21e"}.wk-icon-venus:before{content:"\f221"}.wk-icon-mars:before{content:"\f222"}.wk-icon-mercury:before{content:"\f223"}.wk-icon-transgender:before{content:"\f224"}.wk-icon-transgender-alt:before{content:"\f225"}.wk-icon-venus-double:before{content:"\f226"}.wk-icon-mars-double:before{content:"\f227"}.wk-icon-venus-mars:before{content:"\f228"}.wk-icon-mars-stroke:before{content:"\f229"}.wk-icon-mars-stroke-v:before{content:"\f22a"}.wk-icon-mars-stroke-h:before{content:"\f22b"}.wk-icon-neuter:before{content:"\f22c"}.wk-icon-facebook-official:before{content:"\f230"}.wk-icon-pinterest-p:before{content:"\f231"}.wk-icon-whatsapp:before{content:"\f232"}.wk-icon-server:before{content:"\f233"}.wk-icon-user-plus:before{content:"\f234"}.wk-icon-user-times:before{content:"\f235"}.wk-icon-bed:before,.wk-icon-hotel:before{content:"\f236"}.wk-icon-viacoin:before{content:"\f237"}.wk-icon-train:before{content:"\f238"}.wk-icon-subway:before{content:"\f239"}.wk-icon-medium-logo:before{content:"\f23a"}.wk-icon-500px:before{content:"\f26e"}.wk-icon-amazon:before{content:"\f270"}.wk-icon-balance-scale:before{content:"\f24e"}.wk-icon-battery-0:before,.wk-icon-battery-empty:before{content:"\f244"}.wk-icon-battery-1:before,.wk-icon-battery-quarter:before{content:"\f243"}.wk-icon-battery-2:before,.wk-icon-battery-half:before{content:"\f242"}.wk-icon-battery-3:before,.wk-icon-battery-three-quarters:before{content:"\f241"}.wk-icon-battery-4:before,.wk-icon-battery-full:before{content:"\f240"}.wk-icon-black-tie:before{content:"\f27e"}.wk-icon-calendar-check-o:before{content:"\f274"}.wk-icon-calendar-minus-o:before{content:"\f272"}.wk-icon-calendar-plus-o:before{content:"\f271"}.wk-icon-calendar-times-o:before{content:"\f273"}.wk-icon-cc-diners-club:before{content:"\f24c"}.wk-icon-cc-jcb:before{content:"\f24b"}.wk-icon-chrome:before{content:"\f268"}.wk-icon-clone:before{content:"\f24d"}.wk-icon-commenting:before{content:"\f27a"}.wk-icon-commenting-o:before{content:"\f27b"}.wk-icon-contao:before{content:"\f26d"}.wk-icon-creative-commons:before{content:"\f25e"}.wk-icon-expeditedssl:before{content:"\f23e"}.wk-icon-firefox:before{content:"\f269"}.wk-icon-fonticons:before{content:"\f280"}.wk-icon-get-pocket:before{content:"\f265"}.wk-icon-gg:before{content:"\f260"}.wk-icon-gg-circle:before{content:"\f261"}.wk-icon-hand-lizard-o:before{content:"\f258"}.wk-icon-hand-paper-o:before,.wk-icon-hand-stop-o:before{content:"\f256"}.wk-icon-hand-peace-o:before{content:"\f25b"}.wk-icon-hand-pointer-o:before{content:"\f25a"}.wk-icon-hand-grab-o:before,.wk-icon-hand-rock-o:before{content:"\f255"}.wk-icon-hand-scissors-o:before{content:"\f257"}.wk-icon-hand-spock-o:before{content:"\f259"}.wk-icon-hourglass:before{content:"\f254"}.wk-icon-hourglass-o:before{content:"\f250"}.wk-icon-hourglass-1:before,.wk-icon-hourglass-start:before{content:"\f251"}.wk-icon-hourglass-2:before,.wk-icon-hourglass-half:before{content:"\f252"}.wk-icon-hourglass-3:before,.wk-icon-hourglass-end:before{content:"\f253"}.wk-icon-houzz:before{content:"\f27c"}.wk-icon-i-cursor:before{content:"\f246"}.wk-icon-industry:before{content:"\f275"}.wk-icon-internet-explorer:before{content:"\f26b"}.wk-icon-map:before{content:"\f279"}.wk-icon-map-o:before{content:"\f278"}.wk-icon-map-pin:before{content:"\f276"}.wk-icon-map-signs:before{content:"\f277"}.wk-icon-mouse-pointer:before{content:"\f245"}.wk-icon-object-group:before{content:"\f247"}.wk-icon-object-ungroup:before{content:"\f248"}.wk-icon-odnoklassniki:before{content:"\f263"}.wk-icon-odnoklassniki-square:before{content:"\f264"}.wk-icon-opencart:before{content:"\f23d"}.wk-icon-opera:before{content:"\f26a"}.wk-icon-optin-monster:before{content:"\f23c"}.wk-icon-registered:before{content:"\f25d"}.wk-icon-safari:before{content:"\f267"}.wk-icon-sticky-note:before{content:"\f249"}.wk-icon-sticky-note-o:before{content:"\f24a"}.wk-icon-television:before,.wk-icon-tv:before{content:"\f26c"}.wk-icon-trademark:before{content:"\f25c"}.wk-icon-tripadvisor:before{content:"\f262"}.wk-icon-vimeo:before{content:"\f27d"}.wk-icon-wikipedia-w:before{content:"\f266"}.wk-icon-y-combinator:before,.wk-icon-yc:before{content:"\f23b"}.wk-icon-y-combinator-square:before,.wk-icon-yc-square:before{content:"\f1d4"}.wk-icon-bluetooth:before{content:"\f293"}.wk-icon-bluetooth-b:before{content:"\f294"}.wk-icon-codiepie:before{content:"\f284"}.wk-icon-credit-card-alt:before{content:"\f283"}.wk-icon-edge:before{content:"\f282"}.wk-icon-fort-awesome:before{content:"\f286"}.wk-icon-hashtag:before{content:"\f292"}.wk-icon-mixcloud:before{content:"\f289"}.wk-icon-modx:before{content:"\f285"}.wk-icon-pause-circle:before{content:"\f28b"}.wk-icon-pause-circle-o:before{content:"\f28c"}.wk-icon-percent:before{content:"\f295"}.wk-icon-product-hunt:before{content:"\f288"}.wk-icon-reddit-alien:before{content:"\f281"}.wk-icon-scribd:before{content:"\f28a"}.wk-icon-shopping-bag:before{content:"\f290"}.wk-icon-shopping-basket:before{content:"\f291"}.wk-icon-stop-circle:before{content:"\f28d"}.wk-icon-stop-circle-o:before{content:"\f28e"}.wk-icon-usb:before{content:"\f287"}.wk-icon-american-sign-language-interpreting:before,.wk-icon-asl-interpreting:before{content:"\f2a3"}.wk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-icon-audio-description:before{content:"\f29e"}.wk-icon-blind:before{content:"\f29d"}.wk-icon-braille:before{content:"\f2a1"}.wk-icon-deaf:before,.wk-icon-deafness:before{content:"\f2a4"}.wk-icon-envira:before{content:"\f299"}.wk-icon-fa:before,.wk-icon-font-awesome:before{content:"\f2b4"}.wk-icon-first-order:before{content:"\f2b0"}.wk-icon-gitlab:before{content:"\f296"}.wk-icon-glide:before{content:"\f2a5"}.wk-icon-glide-g:before{content:"\f2a6"}.wk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-icon-low-vision:before{content:"\f2a8"}.wk-icon-question-circle-o:before{content:"\f29c"}.wk-icon-sign-language:before,.wk-icon-signing:before{content:"\f2a7"}.wk-icon-snapchat:before{content:"\f2ab"}.wk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-icon-snapchat-square:before{content:"\f2ad"}.wk-icon-themeisle:before{content:"\f2b2"}.wk-icon-universal-access:before{content:"\f29a"}.wk-icon-viadeo:before{content:"\f2a9"}.wk-icon-viadeo-square:before{content:"\f2aa"}.wk-icon-volume-control-phone:before{content:"\f2a0"}.wk-icon-wheelchair-alt:before{content:"\f29b"}.wk-icon-wpbeginner:before{content:"\f297"}.wk-icon-wpforms:before{content:"\f298"}.wk-icon-yoast:before{content:"\f2b1"}.wk-icon-adress-book:before{content:"\f2b9"}.wk-icon-adress-book-o:before{content:"\f2ba"}.wk-icon-adress-card:before{content:"\f2bb"}.wk-icon-adress-card-o:before{content:"\f2bc"}.wk-icon-bandcamp:before{content:"\f2d5"}.wk-icon-bath:before,.wk-icon-bathub:before{content:"\f2cd"}.wk-icon-drivers-license:before{content:"\f2c2"}.wk-icon-drivers-license-o:before{content:"\f2c3"}.wk-icon-eercast:before{content:"\f2da"}.wk-icon-envelope-open:before{content:"\f2b6"}.wk-icon-envelope-open-o:before{content:"\f2b7"}.wk-icon-etsy:before{content:"\f2d7"}.wk-icon-free-code-camp:before{content:"\f2c5"}.wk-icon-grav:before{content:"\f2d6"}.wk-icon-handshake-o:before{content:"\f2b5"}.wk-icon-id-badge:before{content:"\f2c1"}.wk-icon-id-card:before{content:"\f2c2"}.wk-icon-id-card-o:before{content:"\f2c3"}.wk-icon-imdb:before{content:"\f2d8"}.wk-icon-linode:before{content:"\f2b8"}.wk-icon-meetup:before{content:"\f2e0"}.wk-icon-microchip:before{content:"\f2db"}.wk-icon-podcast:before{content:"\f2ce"}.wk-icon-quora:before{content:"\f2c4"}.wk-icon-ravelry:before{content:"\f2d9"}.wk-icon-s15:before{content:"\f2cd"}.wk-icon-shower:before{content:"\f2cc"}.wk-icon-snowflake-o:before{content:"\f2dc"}.wk-icon-superpowers:before{content:"\f2dd"}.wk-icon-telegram:before{content:"\f2c6"}.wk-icon-thermometer:before{content:"\f2c7"}.wk-icon-thermometer-0:before{content:"\f2cb"}.wk-icon-thermometer-1:before{content:"\f2ca"}.wk-icon-thermometer-2:before{content:"\f2c9"}.wk-icon-thermometer-3:before{content:"\f2c8"}.wk-icon-thermometer-4:before{content:"\f2c7"}.wk-icon-thermometer-empty:before{content:"\f2cb"}.wk-icon-thermometer-full:before{content:"\f2c7"}.wk-icon-thermometer-half:before{content:"\f2c9"}.wk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-icon-times-rectangle:before{content:"\f2d3"}.wk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-icon-user-circle:before{content:"\f2bd"}.wk-icon-user-circle-o:before{content:"\f2be"}.wk-icon-user-o:before{content:"\f2c0"}.wk-icon-vcard:before{content:"\f2bb"}.wk-icon-vcard-o:before{content:"\f2bc"}.wk-icon-widow-close:before{content:"\f2d3"}.wk-icon-widow-close-o:before{content:"\f2d4"}.wk-icon-window-maximize:before{content:"\f2d0"}.wk-icon-window-minimize:before{content:"\f2d1"}.wk-icon-window-restore:before{content:"\f2d2"}.wk-icon-wpexplorer:before{content:"\f2de"}.wk-close::-moz-focus-inner{border:0;padding:0}.wk-close{margin:0;border:none;font:inherit;color:inherit;padding:0;background:0 0;display:inline-block;box-sizing:content-box;width:20px;line-height:20px;vertical-align:middle;opacity:.3}.wk-container,.wk-modal-dialog,.wk-overlay-area-content,.wk-responsive-height,.wk-responsive-width,.wk-scrollable-box,.wk-thumbnail,[class*=wk-height]{box-sizing:border-box}.wk-close:after{display:block;content:"\f00d";font-family:FontAwesome}.wk-close:focus,.wk-close:hover{opacity:.5;outline:0;color:inherit;text-decoration:none;cursor:pointer}.wk-close-alt{padding:2px;border-radius:50%;background:#fff;opacity:1;box-shadow:0 0 0 1px rgba(0,0,0,.1)}.wk-close-alt:focus,.wk-close-alt:hover{opacity:1}.wk-close-alt:after{opacity:.5}.wk-close-alt:focus:after,.wk-close-alt:hover:after{opacity:.8}.wk-thumbnail{display:inline-block;max-width:100%;margin:0;padding:4px;border:1px solid #e5e5e5;background:#fff;border-radius:2px}a.wk-thumbnail:focus,a.wk-thumbnail:hover{border-color:#ccc;background-color:#fff;text-decoration:none;outline:0}.wk-thumbnail-caption{padding-top:4px;text-align:center;color:#444}.wk-thumbnail-mini{width:150px}.wk-thumbnail-small{width:200px}.wk-thumbnail-medium{width:300px}.wk-thumbnail-large{width:400px}.wk-thumbnail-expand,.wk-thumbnail-expand>img{width:100%}.wk-overlay{max-width:100%;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-overlay-area:empty:before,.wk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-overlay.wk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-overlay-panel a[class*=wk-icon-]:not(.wk-icon-button),.wk-overlay-panel h1,.wk-overlay-panel h2,.wk-overlay-panel h3,.wk-overlay-panel h4,.wk-overlay-panel h5,.wk-overlay-panel h6{color:inherit}.wk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore),.wk-overlay-hover:not(:hover):not(.wk-hover) .wk-overlay-panel:not(.wk-ignore){opacity:0}.wk-overlay-background{background:rgba(255,255,255,.95);color:#444}.wk-overlay-image{padding:0}.wk-overlay-top{bottom:auto}.wk-overlay-bottom{top:auto}.wk-overlay-left{right:auto}.wk-overlay-right{left:auto}.wk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#999}.wk-overlay-blur,.wk-overlay-fade,.wk-overlay-grayscale,.wk-overlay-scale,.wk-overlay-spin,[class*=wk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-overlay-active .wk-overlay-fade,.wk-overlay-active .wk-overlay-scale,.wk-overlay-active .wk-overlay-spin,.wk-overlay-active [class*=wk-overlay-slide]{transition-duration:.8s}.wk-overlay-fade{opacity:.7}.wk-overlay-active .wk-active>.wk-overlay-fade,.wk-overlay-hover.wk-hover .wk-overlay-fade,.wk-overlay-hover:hover .wk-overlay-fade{opacity:1}.wk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-overlay-active .wk-active>.wk-overlay-scale,.wk-overlay-hover.wk-hover .wk-overlay-scale,.wk-overlay-hover:hover .wk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-overlay-active .wk-active>.wk-overlay-spin,.wk-overlay-hover.wk-hover .wk-overlay-spin,.wk-overlay-hover:hover .wk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-overlay-active .wk-active>.wk-overlay-grayscale,.wk-overlay-hover.wk-hover .wk-overlay-grayscale,.wk-overlay-hover:hover .wk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}[class*=wk-overlay-slide]{opacity:0}.wk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-overlay-active .wk-active>[class*=wk-overlay-slide],.wk-overlay-hover.wk-hover [class*=wk-overlay-slide],.wk-overlay-hover:hover [class*=wk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-overlay-area,.wk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-overlay-toggle.wk-hover .wk-overlay-area,.wk-overlay-toggle:hover .wk-overlay-area,.wk-overlay.wk-hover .wk-overlay-area,.wk-overlay:hover .wk-overlay-area{opacity:1}.wk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-overlay-area:not(:empty){font-size:0}.wk-overlay-area:not(:empty):before{content:'';height:100%}.wk-overlay-area-content{width:100%;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-overlay-area-content a:not([class]),.wk-overlay-area-content a:not([class]):hover{color:inherit}.wk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-dropdown,.wk-dropdown-navbar{background:#fff;color:#444;border:1px solid #e5e5e5}.wk-overlay-toggle.wk-hover .wk-overlay-caption,.wk-overlay-toggle:hover .wk-overlay-caption,.wk-overlay.wk-hover .wk-overlay-caption,.wk-overlay:hover .wk-overlay-caption{opacity:1}[class*=wk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{[data-wk-scrollspy*=wk-animation-]:not([data-wk-scrollspy*=target]){opacity:0}}.wk-animation-fade{-webkit-animation-name:wk-fade;animation-name:wk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-animation-scale-up{-webkit-animation-name:wk-fade-scale-02;animation-name:wk-fade-scale-02}.wk-animation-scale-down{-webkit-animation-name:wk-fade-scale-18;animation-name:wk-fade-scale-18}.wk-animation-slide-top{-webkit-animation-name:wk-fade-top;animation-name:wk-fade-top}.wk-animation-slide-bottom{-webkit-animation-name:wk-fade-bottom;animation-name:wk-fade-bottom}.wk-animation-slide-left{-webkit-animation-name:wk-fade-left;animation-name:wk-fade-left}.wk-animation-slide-right{-webkit-animation-name:wk-fade-right;animation-name:wk-fade-right}.wk-animation-scale{-webkit-animation-name:wk-scale-12;animation-name:wk-scale-12}.wk-animation-shake{-webkit-animation-name:wk-shake;animation-name:wk-shake}.wk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-animation-hover:not(:hover),.wk-animation-hover:not(:hover) [class*=wk-animation-],.wk-touch .wk-animation-hover:not(.wk-hover),.wk-touch .wk-animation-hover:not(.wk-hover) [class*=wk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@keyframes wk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes wk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes wk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes wk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes wk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes wk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes wk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes wk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes wk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes wk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes wk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes wk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes wk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes wk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes wk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes wk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-dropdown,.wk-dropdown-blank{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px}.wk-dropdown{padding:15px;font-size:1rem;vertical-align:top;border-radius:2px}.wk-dropdown:focus{outline:0}.wk-open>.wk-dropdown,.wk-open>.wk-dropdown-blank{display:block;-webkit-animation:wk-fade .2s ease-in-out;animation:wk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-dropdown-top{margin-top:-5px}.wk-dropdown-bottom{margin-top:5px}.wk-dropdown-left{margin-left:-5px}.wk-dropdown-right{margin-left:5px}.wk-dropdown .wk-nav{margin:0 -15px}.wk-dropdown-grid>[class*=wk-width-]>.wk-panel+.wk-panel,.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2),.wk-grid .wk-dropdown-grid+.wk-dropdown-grid{margin-top:15px}@media (min-width:768px){.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid{margin-left:-15px;margin-right:-15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]{padding-left:15px;padding-right:15px}.wk-dropdown:not(.wk-dropdown-stack)>.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-dropdown-width-2:not(.wk-dropdown-stack){width:400px}.wk-dropdown-width-3:not(.wk-dropdown-stack){width:600px}.wk-dropdown-width-4:not(.wk-dropdown-stack){width:800px}.wk-dropdown-width-5:not(.wk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-grid>[class*=wk-width-]:nth-child(n+2){margin-top:15px}}.wk-dropdown-stack>.wk-dropdown-grid>[class*=wk-width-]{width:100%}.wk-dropdown-small{min-width:150px;width:auto;padding:5px}.wk-dropdown-small .wk-nav{margin:0 -5px}.wk-dropdown-navbar{margin-top:6px;left:-1px;border-radius:2px}.wk-open>.wk-dropdown-navbar{-webkit-animation:wk-slide-top-fixed .2s ease-in-out;animation:wk-slide-top-fixed .2s ease-in-out}.wk-dropdown-scrollable{overflow-y:auto;max-height:200px}.wk-dropdown-navbar.wk-dropdown-flip{left:auto}.wk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.8);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.wk-modal-page,.wk-modal-page body,.wk-nbfc,.wk-text-truncate{overflow:hidden}.wk-modal.wk-open{opacity:1}.wk-modal-dialog{position:relative;margin:50px auto;padding:20px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-modal-dialog{width:auto;margin:10px auto}}.wk-open .wk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-modal-dialog>:not([class*=wk-modal-]):last-child{margin-bottom:0}.wk-modal-dialog>.wk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-modal-dialog>.wk-close:first-child+:not([class*=wk-modal-]){margin-top:0}.wk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-modal-dialog-lightbox>.wk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-modal-dialog-lightbox>.wk-close:first-child{top:-7px;right:-7px}}.wk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-modal-dialog-blank>.wk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-modal-dialog-large{width:930px}}.wk-modal-header{margin-bottom:15px}.wk-modal-footer{margin-top:15px}.wk-modal-footer>:last-child,.wk-modal-header>:last-child{margin-bottom:0}.wk-modal-caption{position:absolute;left:0;right:0;bottom:-20px;margin-bottom:-10px;color:#fff;text-align:center;overflow:hidden;text-overflow:ellipsis}.wk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.wk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:wk-rotate 2s infinite linear;animation:wk-rotate 2s infinite linear}.wk-clearfix:after,.wk-clearfix:before,.wk-container:after,.wk-container:before{content:""}.wk-switcher{margin:0;padding:0}.wk-switcher>:not(.wk-active){display:none}.wk-text-small{font-size:11px;line-height:16px}.wk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-text-bold{font-weight:700}.wk-text-muted{color:#999!important}.wk-text-primary{color:#37a5e4!important}.wk-text-success{color:#80c96d!important}.wk-text-warning{color:#ff9a2e!important}.wk-text-danger{color:#f0615b!important}.wk-text-contrast{color:#fff!important}.wk-text-left{text-align:left!important}.wk-text-right{text-align:right!important}.wk-text-center{text-align:center!important}.wk-text-justify{text-align:justify!important}.wk-text-top{vertical-align:top!important}.wk-text-middle{vertical-align:middle!important}.wk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-text-center-medium{text-align:center!important}.wk-text-left-medium{text-align:left!important}}.wk-text-truncate{text-overflow:ellipsis}.wk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-text-capitalize{text-transform:capitalize!important}.wk-text-lowercase{text-transform:lowercase!important}.wk-text-uppercase{text-transform:uppercase!important}.wk-container{max-width:980px;padding:0 25px}@media (min-width:1220px){.wk-modal-dialog-large{width:1130px}.wk-container{max-width:1200px;padding:0 35px}}.wk-container:after,.wk-container:before{display:table}.wk-container-center{margin-left:auto;margin-right:auto}.wk-clearfix:before{display:table-cell}.wk-clearfix:after{display:table}.wk-nbfc-alt{display:table-cell;width:10000px}.wk-float-left{float:left}.wk-float-right{float:right}[class*=wk-float-]{max-width:100%}[class*=wk-align-]{display:block;margin-bottom:20px}.wk-align-left{margin-right:20px;float:left}.wk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-align-medium-left{margin-right:20px;float:left}.wk-align-medium-right{margin-left:20px;float:right}}.wk-align-center{margin-left:auto;margin-right:auto}.wk-vertical-align{font-size:0}.wk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-vertical-align-bottom,.wk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-vertical-align-middle{vertical-align:middle}.wk-vertical-align-bottom{vertical-align:bottom}.wk-height-1-1{height:100%}.wk-height-viewport{height:100vh;min-height:600px}.wk-responsive-width{max-width:100%!important;height:auto}.wk-responsive-height{max-height:100%;width:auto}.wk-margin{margin-bottom:20px}*+.wk-margin{margin-top:20px}.wk-margin-top{margin-top:20px!important}.wk-margin-bottom{margin-bottom:20px!important}.wk-margin-left{margin-left:20px!important}.wk-margin-right{margin-right:20px!important}.wk-margin-large{margin-bottom:25px}*+.wk-margin-large{margin-top:25px}.wk-margin-large-top{margin-top:25px!important}.wk-margin-large-bottom{margin-bottom:25px!important}.wk-margin-large-left{margin-left:25px!important}.wk-margin-large-right{margin-right:25px!important}.wk-margin-small{margin-bottom:5px}*+.wk-margin-small{margin-top:5px}.wk-margin-small-top{margin-top:5px!important}.wk-margin-small-bottom{margin-bottom:5px!important}.wk-margin-small-left{margin-left:5px!important}.wk-margin-small-right{margin-right:5px!important}.wk-margin-remove{margin:0!important}.wk-margin-top-remove{margin-top:0!important}.wk-margin-bottom-remove{margin-bottom:0!important}.wk-overflow-container>:last-child,.wk-scrollable-box>:last-child{margin-bottom:0}.wk-padding-remove{padding:0!important}.wk-padding-top-remove{padding-top:0!important}.wk-padding-bottom-remove{padding-bottom:0!important}.wk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-border-circle{border-radius:50%}.wk-border-rounded{border-radius:5px}.wk-heading-large{font-size:36px;line-height:42px}.wk-link-muted,.wk-link-muted a,.wk-link-muted a:hover,.wk-link-muted:hover{color:#444}.wk-link-reset,.wk-link-reset a,.wk-link-reset a:focus,.wk-link-reset a:hover,.wk-link-reset:focus,.wk-link-reset:hover{color:inherit;text-decoration:none}.wk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-scrollable-box{height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-overflow-hidden{overflow:hidden}.wk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-dotnav>*>*,.wk-slider-container,.wk-slideshow{overflow:hidden}.wk-position-absolute,[class*=wk-position-top],[class*=wk-position-bottom]{position:absolute!important}.wk-position-top{top:0;left:0;right:0}.wk-position-bottom{bottom:0;left:0;right:0}.wk-position-top-left{top:0;left:0}.wk-position-top-right{top:0;right:0}.wk-position-bottom-left{bottom:0;left:0}.wk-position-bottom-right{bottom:0;right:0}.wk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-position-relative{position:relative!important}.wk-position-z-index{z-index:1}.wk-display-block{display:block!important}.wk-display-inline{display:inline!important}.wk-display-inline-block{display:inline-block!important;max-width:100%}@media (min-width:960px){.wk-hidden-large,.wk-visible-medium,.wk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-hidden-medium,.wk-visible-large,.wk-visible-small{display:none!important}}@media (max-width:767px){.wk-text-center-small{text-align:center!important}.wk-text-left-small{text-align:left!important}.wk-hidden-small,.wk-visible-large,.wk-visible-medium{display:none!important}}.wk-hidden{display:none!important;visibility:hidden!important}.wk-invisible{visibility:hidden!important}.wk-visible-hover:hover .wk-hidden,.wk-visible-hover:hover .wk-invisible{display:block!important;visibility:visible!important}.wk-visible-hover-inline:hover .wk-hidden,.wk-visible-hover-inline:hover .wk-invisible{display:inline-block!important;visibility:visible!important}.wk-notouch .wk-hidden-notouch,.wk-touch .wk-hidden-touch{display:none!important}.wk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-flex-inline>*,.wk-flex>*{-ms-flex-negative:1}.wk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-heading-large{font-size:52px;line-height:64px}.wk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1220px){.wk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-dotnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-top:-15px;padding:0}.wk-dotnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:15px;margin-top:15px;float:left}.wk-dotnav:after,.wk-dotnav:before{content:"";display:block;overflow:hidden}.wk-dotnav>*>*{display:block;box-sizing:content-box;width:20px;height:20px;border-radius:50%;background:rgba(50,50,50,.1);text-indent:100%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wk-dotnav>*>:focus,.wk-dotnav>*>:hover{background:rgba(50,50,50,.4);outline:0}.wk-dotnav>*>:active{background:rgba(50,50,50,.6)}.wk-dotnav>.wk-active>*{background:rgba(50,50,50,.4);-webkit-transform:scale(1.3);transform:scale(1.3)}.wk-dotnav-contrast>*>*{background:rgba(255,255,255,.4)}.wk-dotnav-contrast>*>:focus,.wk-dotnav-contrast>*>:hover{background:rgba(255,255,255,.7)}.wk-dotnav-contrast>*>:active,.wk-dotnav-contrast>.wk-active>*{background:rgba(255,255,255,.9)}.wk-dotnav-vertical{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-dotnav-vertical>*{float:none}.wk-slidenav{display:inline-block;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.wk-slider-fullscreen,.wk-slider-fullscreen>li,.wk-slideshow-fullscreen,.wk-slideshow-fullscreen>li{height:100vh}.wk-slidenav:focus,.wk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.wk-slidenav:active{color:rgba(50,50,50,.9)}.wk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.wk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.wk-slidenav-position{position:relative}.wk-slidenav-position .wk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.wk-slider,.wk-slideshow{z-index:0;touch-action:pan-y}.wk-slidenav-position:hover .wk-slidenav{display:block}.wk-slidenav-position .wk-slidenav-previous{left:20px}.wk-slidenav-position .wk-slidenav-next{right:20px}.wk-slidenav-contrast{color:rgba(255,255,255,.5)}.wk-slidenav-contrast:focus,.wk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.wk-slidenav-contrast:active{color:rgba(255,255,255,.9)}.wk-accordion-title{margin-top:0;margin-bottom:20px;padding:5px 20px;background:#eee;font-size:18px;line-height:24px;cursor:pointer}.wk-accordion-content{padding:0 20px 20px}.wk-slider:not(.wk-grid),.wk-slideshow{margin:0;padding:0;list-style:none}.wk-accordion-content:after,.wk-accordion-content:before{content:"";display:table}.wk-accordion-content>:last-child{margin-bottom:0}[data-wk-slider]{direction:ltr}html[dir=rtl] .wk-slider>*{direction:rtl}.wk-slider{position:relative}.wk-slider>*{position:absolute;top:0;left:0}.wk-slider:not(.wk-drag){-webkit-transition:-webkit-transform .2s linear;transition:transform .2s linear}.wk-slider.wk-drag{cursor:col-resize;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.wk-slider a,.wk-slider img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}.wk-slider img{pointer-events:none}.wk-slideshow{position:relative;width:100%}.wk-slideshow>li{position:absolute;top:0;left:0;width:100%;opacity:0}.wk-slideshow>.wk-active{z-index:10;opacity:1}.wk-slideshow>li>img{visibility:hidden}[data-wk-slideshow-slide]{cursor:pointer}.wk-slideshow-fade-in{-webkit-animation:wk-fade .5s linear;animation:wk-fade .5s linear}.wk-slideshow-fade-out{-webkit-animation:wk-fade .5s linear reverse;animation:wk-fade .5s linear reverse}.wk-slideshow-scroll-forward-in{-webkit-animation:wk-slide-right .5s ease-in-out;animation:wk-slide-right .5s ease-in-out}.wk-slideshow-scroll-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-scroll-backward-in{-webkit-animation:wk-slide-left .5s ease-in-out;animation:wk-slide-left .5s ease-in-out}.wk-slideshow-scroll-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-scale-out{-webkit-animation:wk-fade-scale-15 .5s ease-in-out reverse;animation:wk-fade-scale-15 .5s ease-in-out reverse}.wk-slideshow-swipe-forward-in{-webkit-animation:wk-slide-left-33 .5s ease-in-out;animation:wk-slide-left-33 .5s ease-in-out}.wk-slideshow-swipe-forward-out{-webkit-animation:wk-slide-left .5s ease-in-out reverse;animation:wk-slide-left .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in{-webkit-animation:wk-slide-right-33 .5s ease-in-out;animation:wk-slide-right-33 .5s ease-in-out}.wk-slideshow-swipe-backward-out{-webkit-animation:wk-slide-right .5s ease-in-out reverse;animation:wk-slide-right .5s ease-in-out reverse}.wk-slideshow-swipe-backward-in:before,.wk-slideshow-swipe-forward-in:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;background:rgba(0,0,0,.6);-webkit-animation:wk-fade .5s ease-in-out reverse;animation:wk-fade .5s ease-in-out reverse}

widgetkit/wk-scripts-7a1e06bd.js000064400000040600152177723720012427 0ustar00!function(t){"use strict";function e(t,i,r){this.extend(e,google.maps.OverlayView),this.map_=t,this.markers_=[],this.clusters_=[],this.sizes=[53,56,66,78,90],this.styles_=[],this.ready_=!1;var s=r||{};this.gridSize_=s.gridSize||60,this.minClusterSize_=s.minimumClusterSize||2,this.maxZoom_=s.maxZoom||null,this.styles_=s.styles||[],this.imagePath_=s.imagePath||this.MARKER_CLUSTER_IMAGE_PATH_,this.imageExtension_=s.imageExtension||this.MARKER_CLUSTER_IMAGE_EXTENSION_,this.zoomOnClick_=!0,void 0!=s.zoomOnClick&&(this.zoomOnClick_=s.zoomOnClick),this.averageCenter_=!1,void 0!=s.averageCenter&&(this.averageCenter_=s.averageCenter),this.setupStyles_(),this.setMap(t),this.prevZoom_=this.map_.getZoom();var o=this;google.maps.event.addListener(this.map_,"zoom_changed",function(){var t=o.map_.getZoom();o.prevZoom_!=t&&(o.prevZoom_=t,o.resetViewport())}),google.maps.event.addListener(this.map_,"idle",function(){o.redraw()}),i&&i.length&&this.addMarkers(i,!1)}function i(t){this.markerClusterer_=t,this.map_=t.getMap(),this.gridSize_=t.getGridSize(),this.minClusterSize_=t.getMinClusterSize(),this.averageCenter_=t.isAverageCenter(),this.center_=null,this.markers_=[],this.bounds_=null,this.clusterIcon_=new r(this,t.getStyles(),t.getGridSize())}function r(t,e,i){t.getMarkerClusterer().extend(r,google.maps.OverlayView),this.styles_=e,this.padding_=i||0,this.cluster_=t,this.center_=null,this.map_=t.getMap(),this.div_=null,this.sums_=null,this.visible_=!1,this.setMap(this.map_)}var s,o=function(){return s||(s=t.Deferred(),window.wkInitializeGoogleMapsApi=s.resolve,t.getScript("//maps.google.com/maps/api/js?callback=wkInitializeGoogleMapsApi&key="+(window.GOOGLE_MAPS_API_KEY||""))),s.promise()};t(function(){t('script[type="widgetkit/map"]').each(function(){var i=t(this),r=t("<div data-uk-check-display data-wk-check-display></div>").attr(i.data()),s=JSON.parse(this.innerHTML);i.replaceWith(r),o().then(function(){var i,o,n,a,h,p=s.markers,l=[],u=window.MapsMarkerHelper||!1;Object.keys(s).forEach(function(t){isNaN(s[t])||(s[t]=Number(s[t]))}),n=p.length?new google.maps.LatLng(p[0].lat,p[0].lng):new google.maps.LatLng((-34.397),150.644),o={zoom:parseInt(s.zoom,10),center:n,streetViewControl:s.mapctrl,navigationControl:s.mapctrl,scrollwheel:s.zoomwheel,draggable:s.draggable,mapTypeId:google.maps.MapTypeId[s.maptypeid.toUpperCase()],mapTypeControl:s.maptypecontrol,zoomControl:s.zoomcontrol,disableDefaultUI:s.disabledefaultui,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,mapTypeIds:["styled_map",google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE]},zoomControlOptions:{style:s.mapctrl?google.maps.ZoomControlStyle.DEFAULT:google.maps.ZoomControlStyle.SMALL}},i=new google.maps.Map(r[0],o),r.data("googlemap",i).on("display.uk.check",function(){google.maps.event.trigger(i,"resize")}),p.length&&s.directions&&(a=t('<a target="_blank"></a>').css({padding:"5px 1px","text-decoration":"none"}),h=t("<div></div>").css({"-webkit-background-clip":"padding-box",padding:"1px 4px",backgroundColor:"white",borderColor:"rgba(0, 0, 0, 0.14902)",borderStyle:"solid",borderWidth:"1px",cursor:"pointer",textAlign:"center",fontFamily:"Roboto, Arial, sans-serif",fontWeight:500,boxShadow:"rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px",index:1}),h.html('<span style="color:#000;"><span style="color:blue;">&#8627;</span>'+(s.directionsText||"Get Directions")+"</span>"),a.append(h),a.setHref=function(t,e){this.attr("href","http://maps.google.com/?daddr="+t+","+e)},i.controls[google.maps.ControlPosition.TOP_RIGHT].push(a[0])),p.length&&s.marker&&(p.forEach(function(t,e){var r,o=new google.maps.Marker({position:new google.maps.LatLng(t.lat,t.lng),map:i,title:t.title});(u&&t.icon||s.marker_icon)&&u.setIcon(o,t.icon||s.marker_icon),l.push(o),s.marker>=1&&(r=new google.maps.InfoWindow({content:t.content,maxWidth:s.popup_max_width?parseInt(s.popup_max_width,10):300}),google.maps.event.addListener(o,"click",function(){s.marker>=2&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())}),0===e&&(3===s.marker&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())))}),i.panTo(new google.maps.LatLng(p[0].lat,p[0].lng))),s.markercluster&&(this.markerCluster=new e(i,l));var g=new google.maps.StyledMapType([{featureType:"all",elementType:"all",stylers:[{invert_lightness:s.styler_invert_lightness},{hue:s.styler_hue},{saturation:s.styler_saturation},{lightness:s.styler_lightness},{gamma:s.styler_gamma}]}],{name:"Styled"});i.mapTypes.set("styled_map",g),"ROADMAP"==s.maptypeid.toUpperCase()&&i.setMapTypeId("styled_map")})})}),e.prototype.MARKER_CLUSTER_IMAGE_PATH_="https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m",e.prototype.MARKER_CLUSTER_IMAGE_EXTENSION_="png",e.prototype.extend=function(t,e){return function(t){for(var e in t.prototype)this.prototype[e]=t.prototype[e];return this}.apply(t,[e])},e.prototype.onAdd=function(){this.setReady_(!0)},e.prototype.draw=function(){},e.prototype.setupStyles_=function(){if(!this.styles_.length)for(var t,e=0;t=this.sizes[e];e++)this.styles_.push({url:this.imagePath_+(e+1)+"."+this.imageExtension_,height:t,width:t})},e.prototype.fitMapToMarkers=function(){for(var t,e=this.getMarkers(),i=new google.maps.LatLngBounds,r=0;t=e[r];r++)i.extend(t.getPosition());this.map_.fitBounds(i)},e.prototype.setStyles=function(t){this.styles_=t},e.prototype.getStyles=function(){return this.styles_},e.prototype.isZoomOnClick=function(){return this.zoomOnClick_},e.prototype.isAverageCenter=function(){return this.averageCenter_},e.prototype.getMarkers=function(){return this.markers_},e.prototype.getTotalMarkers=function(){return this.markers_.length},e.prototype.setMaxZoom=function(t){this.maxZoom_=t},e.prototype.getMaxZoom=function(){return this.maxZoom_},e.prototype.calculator_=function(t,e){for(var i=0,r=t.length,s=r;0!==s;)s=parseInt(s/10,10),i++;return i=Math.min(i,e),{text:r,index:i}},e.prototype.setCalculator=function(t){this.calculator_=t},e.prototype.getCalculator=function(){return this.calculator_},e.prototype.addMarkers=function(t,e){for(var i,r=0;i=t[r];r++)this.pushMarkerTo_(i);e||this.redraw()},e.prototype.pushMarkerTo_=function(t){if(t.isAdded=!1,t.draggable){var e=this;google.maps.event.addListener(t,"dragend",function(){t.isAdded=!1,e.repaint()})}this.markers_.push(t)},e.prototype.addMarker=function(t,e){this.pushMarkerTo_(t),e||this.redraw()},e.prototype.removeMarker_=function(t){var e=-1;if(this.markers_.indexOf)e=this.markers_.indexOf(t);else for(var i,r=0;i=this.markers_[r];r++)if(i==t){e=r;break}return e!=-1&&(t.setMap(null),this.markers_.splice(e,1),!0)},e.prototype.removeMarker=function(t,e){var i=this.removeMarker_(t);return!(e||!i)&&(this.resetViewport(),this.redraw(),!0)},e.prototype.removeMarkers=function(t,e){for(var i,r=!1,s=0;i=t[s];s++){var o=this.removeMarker_(i);r=r||o}if(!e&&r)return this.resetViewport(),this.redraw(),!0},e.prototype.setReady_=function(t){this.ready_||(this.ready_=t,this.createClusters_())},e.prototype.getTotalClusters=function(){return this.clusters_.length},e.prototype.getMap=function(){return this.map_},e.prototype.setMap=function(t){this.map_=t},e.prototype.getGridSize=function(){return this.gridSize_},e.prototype.setGridSize=function(t){this.gridSize_=t},e.prototype.getMinClusterSize=function(){return this.minClusterSize_},e.prototype.setMinClusterSize=function(t){this.minClusterSize_=t},e.prototype.getExtendedBounds=function(t){var e=this.getProjection(),i=new google.maps.LatLng(t.getNorthEast().lat(),t.getNorthEast().lng()),r=new google.maps.LatLng(t.getSouthWest().lat(),t.getSouthWest().lng()),s=e.fromLatLngToDivPixel(i);s.x+=this.gridSize_,s.y-=this.gridSize_;var o=e.fromLatLngToDivPixel(r);o.x-=this.gridSize_,o.y+=this.gridSize_;var n=e.fromDivPixelToLatLng(s),a=e.fromDivPixelToLatLng(o);return t.extend(n),t.extend(a),t},e.prototype.isMarkerInBounds_=function(t,e){return e.contains(t.getPosition())},e.prototype.clearMarkers=function(){this.resetViewport(!0),this.markers_=[]},e.prototype.resetViewport=function(t){for(var e,i=0;e=this.clusters_[i];i++)e.remove();for(var r,i=0;r=this.markers_[i];i++)r.isAdded=!1,t&&r.setMap(null);this.clusters_=[]},e.prototype.repaint=function(){var t=this.clusters_.slice();this.clusters_.length=0,this.resetViewport(),this.redraw(),window.setTimeout(function(){for(var e,i=0;e=t[i];i++)e.remove()},0)},e.prototype.redraw=function(){this.createClusters_()},e.prototype.distanceBetweenPoints_=function(t,e){if(!t||!e)return 0;var i=6371,r=(e.lat()-t.lat())*Math.PI/180,s=(e.lng()-t.lng())*Math.PI/180,o=Math.sin(r/2)*Math.sin(r/2)+Math.cos(t.lat()*Math.PI/180)*Math.cos(e.lat()*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2),n=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)),a=i*n;return a},e.prototype.addToClosestCluster_=function(t){for(var e,r=4e4,s=null,o=(t.getPosition(),0);e=this.clusters_[o];o++){var n=e.getCenter();if(n){var a=this.distanceBetweenPoints_(n,t.getPosition());a<r&&(r=a,s=e)}}if(s&&s.isMarkerInClusterBounds(t))s.addMarker(t);else{var e=new i(this);e.addMarker(t),this.clusters_.push(e)}},e.prototype.createClusters_=function(){if(this.ready_)for(var t,e=new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),this.map_.getBounds().getNorthEast()),i=this.getExtendedBounds(e),r=0;t=this.markers_[r];r++)!t.isAdded&&this.isMarkerInBounds_(t,i)&&this.addToClosestCluster_(t)},i.prototype.isMarkerAlreadyAdded=function(t){if(this.markers_.indexOf)return this.markers_.indexOf(t)!=-1;for(var e,i=0;e=this.markers_[i];i++)if(e==t)return!0;return!1},i.prototype.addMarker=function(t){if(this.isMarkerAlreadyAdded(t))return!1;if(this.center_){if(this.averageCenter_){var e=this.markers_.length+1,i=(this.center_.lat()*(e-1)+t.getPosition().lat())/e,r=(this.center_.lng()*(e-1)+t.getPosition().lng())/e;this.center_=new google.maps.LatLng(i,r),this.calculateBounds_()}}else this.center_=t.getPosition(),this.calculateBounds_();t.isAdded=!0,this.markers_.push(t);var s=this.markers_.length;if(s<this.minClusterSize_&&t.getMap()!=this.map_&&t.setMap(this.map_),s==this.minClusterSize_)for(var o=0;o<s;o++)this.markers_[o].setMap(null);return s>=this.minClusterSize_&&t.setMap(null),this.updateIcon(),!0},i.prototype.getMarkerClusterer=function(){return this.markerClusterer_},i.prototype.getBounds=function(){for(var t,e=new google.maps.LatLngBounds(this.center_,this.center_),i=this.getMarkers(),r=0;t=i[r];r++)e.extend(t.getPosition());return e},i.prototype.remove=function(){this.clusterIcon_.remove(),this.markers_.length=0,delete this.markers_},i.prototype.getSize=function(){return this.markers_.length},i.prototype.getMarkers=function(){return this.markers_},i.prototype.getCenter=function(){return this.center_},i.prototype.calculateBounds_=function(){var t=new google.maps.LatLngBounds(this.center_,this.center_);this.bounds_=this.markerClusterer_.getExtendedBounds(t)},i.prototype.isMarkerInClusterBounds=function(t){return this.bounds_.contains(t.getPosition())},i.prototype.getMap=function(){return this.map_},i.prototype.updateIcon=function(){var t=this.map_.getZoom(),e=this.markerClusterer_.getMaxZoom();if(e&&t>e)for(var i,r=0;i=this.markers_[r];r++)i.setMap(this.map_);else{if(this.markers_.length<this.minClusterSize_)return void this.clusterIcon_.hide();var s=this.markerClusterer_.getStyles().length,o=this.markerClusterer_.getCalculator()(this.markers_,s);this.clusterIcon_.setCenter(this.center_),this.clusterIcon_.setSums(o),this.clusterIcon_.show()}},r.prototype.triggerClusterClick=function(){var t=this.cluster_.getMarkerClusterer();google.maps.event.trigger(t,"clusterclick",this.cluster_),t.isZoomOnClick()&&this.map_.fitBounds(this.cluster_.getBounds())},r.prototype.onAdd=function(){if(this.div_=document.createElement("DIV"),this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.innerHTML=this.sums_.text}var e=this.getPanes();e.overlayMouseTarget.appendChild(this.div_);var i=this;google.maps.event.addDomListener(this.div_,"click",function(){i.triggerClusterClick()})},r.prototype.getPosFromLatLng_=function(t){var e=this.getProjection().fromLatLngToDivPixel(t);return e.x-=parseInt(this.width_/2,10),e.y-=parseInt(this.height_/2,10),e},r.prototype.draw=function(){if(this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.top=t.y+"px",this.div_.style.left=t.x+"px"}},r.prototype.hide=function(){this.div_&&(this.div_.style.display="none"),this.visible_=!1},r.prototype.show=function(){if(this.div_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.style.display=""}this.visible_=!0},r.prototype.remove=function(){this.setMap(null)},r.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),this.div_.parentNode.removeChild(this.div_),this.div_=null)},r.prototype.setSums=function(t){this.sums_=t,this.text_=t.text,this.index_=t.index,this.div_&&(this.div_.innerHTML=t.text),this.useStyle()},r.prototype.useStyle=function(){var t=Math.max(0,this.sums_.index-1);t=Math.min(this.styles_.length-1,t);var e=this.styles_[t];this.url_=e.url,this.height_=e.height,this.width_=e.width,this.textColor_=e.textColor,this.anchor_=e.anchor,this.textSize_=e.textSize,this.backgroundPosition_=e.backgroundPosition},r.prototype.setCenter=function(t){this.center_=t},r.prototype.createCss=function(t){var e=[];e.push("background-image:url("+this.url_+");");var i=this.backgroundPosition_?this.backgroundPosition_:"0 0";e.push("background-position:"+i+";"),"object"==typeof this.anchor_?("number"==typeof this.anchor_[0]&&this.anchor_[0]>0&&this.anchor_[0]<this.height_?e.push("height:"+(this.height_-this.anchor_[0])+"px; padding-top:"+this.anchor_[0]+"px;"):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px;"),"number"==typeof this.anchor_[1]&&this.anchor_[1]>0&&this.anchor_[1]<this.width_?e.push("width:"+(this.width_-this.anchor_[1])+"px; padding-left:"+this.anchor_[1]+"px;"):e.push("width:"+this.width_+"px; text-align:center;")):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px; width:"+this.width_+"px; text-align:center;");var r=this.textColor_?this.textColor_:"black",s=this.textSize_?this.textSize_:11;return e.push("cursor:pointer; top:"+t.y+"px; left:"+t.x+"px; color:"+r+"; position:absolute; font-size:"+s+"px; font-family:Arial,sans-serif; font-weight:bold"),e.join("")}}(jQuery);

var MapsMarkerHelper={colors:{black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]},getSVG:function(e,s){return e=this.parseColor(e||"#E65857"),s=this.parseColor(s||"rgba(255,255,255,0)"),'<?xml version="1.0" encoding="utf-8"?>            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"             width="22px" height="34px" viewBox="0 0 22 34" enable-background="new 0 0 22 34" xml:space="preserve">             <circle id="circle" fill="'+s+'" cx="11" cy="11" r="6.5"/>            <path id="path" d="M11,0C4.94,0,0,4.876,0,10.9C0,19.458,11,34,11,34s11-14.581,11-23.1C22,4.876,17.061,0,11,0z M11,16.5             c-3.038,0-5.5-2.463-5.5-5.5c0-3.038,2.462-5.5,5.5-5.5c3.037,0,5.5,2.462,5.5,5.5C16.5,14.037,14.037,16.5,11,16.5z" fill="'+e+'"/>            </svg>'},parseColor:function(e){var s,a;return a=(s=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(s[1],16),parseInt(s[2],16),parseInt(s[3],16),1]:(s=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(s[1],16),17*parseInt(s[2],16),17*parseInt(s[3],16),1]:(s=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(s[1]),parseInt(s[2]),parseInt(s[3]),1]:(s=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),parseFloat(s[4])]:this.colors[e]||[230,88,87,1],"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},setIcon:function(e,s){var a,r=new google.maps.Point(11,40),t=function(){e.setIcon({url:a,anchor:r})};if(!s.trim())return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t();if(s.indexOf("/")!=-1){var n=new Image;n.onload=function(){a=n.src,r=new google.maps.Point(Math.ceil(n.width/2),n.height),t()},n.onerror=function(){return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t()},n.src=s}else a="data:image/svg+xml;base64,"+btoa(this.getSVG.apply(this,s.split(" "))),r=new google.maps.Point(11,34),t()}};

widgetkit/Partigiani_3-0711207d463b3c9cabf37fb324ee7ec7.jpg000064400000036555152177723720016235 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((���"�������t��N`�2r�ia��S��b�a)3����W:;��.���S�8T�ǁڭ����ˎR�)�լ9�mr�gD1��ȒXX�
}�-P�,"����\I,b�
�{F�����&x����<g
�dDy!�	,��h��������h�eez\A�]
x�j���[kȬMc�Ȯ��Y��t��(��3�Fu}UZUGii�Sf�šd�i%"��֗=F��P��X<�� q�J�vL����]�# Ƀ�=�7E����������r�2����-�Fd�ҫ�myÝ�D �^�|=:N6�]�dCl� 
Β��eU�|�cYLj��$������˚�q>�:D���hwT:\j�I��T�u�i$dD���Y�%3����Ur(�W1K-6/dhdE���NN�h3v�E��	Rj�jʢ���dYM��	���f��x��V	,}=-k�b?���U(H$:p���j�h{�ʡ�8�����.�{�^�F�Z��K�2⾣�Qέ��lr[����{����-[Z��F�1��]��kMv�#��0�LQx;X!�)�H�ъ���+z+jPXr$�g\S�`��)��1?�8WU�����{Oc�R���e
ƝkM.�ө-$fZ�AL��E��ċaF�[�@V�QQm�a���d֐"�V2�u��b��d%��'�V���ڌ�������oW�R���F�AXbό��괃]E�d�E ��6V9��0P�Ŧ�ַ3���<�i�/�h䈍—Y=�����TL���Q�kkq;�YY=l-�5�G��B��_���ō*�Ѱ���WZ�>NM�g�U��:�Z�u=�	i���pXs�O>��u5u� 8�^F�K�ӗ�W"$y�a9�*�0� ���l��˴����mV�2�L̍G�q"�]�������KzB$�f�	_Y��X�4Jh��g&��7Rlˍmz���R��^�A����EIG�"���=���P\�]P����[
�]l��J����,
�!L���z�Ab��2QF�8�5� }tH���!)��:�a �ElfF$UjC��ӈ
;�Uk�J5,�*,�![%KW��'��Ȱ��t��},*'��C�2�88�|D�\/6�z��t�y�p^�)E,���P舌0��2��Nkaܪ"�U�M�t�-�
ȵ�"�UR���<+�)�N�C���&�L�\6�6ޱ�-�ђ`@$WE�2T��_Wh���VS�xETy���,*`\@7I�k��j⚎xm��b�h�!�E��&[;�� �jf��j�%Ì�l!SdD|5��NF$26D����;�2�A���̊z�&���T�KA~72�A(Ƅ��A;kqD�˻�N���"H�)�b�Տ$<D)x��QCv�vP�g/�!ʼs�N8�H�6�QN�*�S-���凼���
�p�����w!�a�ޑ��$�Û�
gq��W�R��gw#W�jw��]�={��г�B���f��0����y{�܍wr�''q��.!12" #3A0B$4@CD������E��:�Gg�l����ø�pN�~�:�Ǹ�Ts'Hl�Φ��3�gX�y�y��']gUgY'UgU&���oY�M~�����;Sq�z��lO"[���u��j�����
X׉e���;7@wB4����k	��`:�cM��-�-7M��
�>���Y�iO�ȍ�m�Yl�/�.��h!uX�"����%�B�&ugRj&�;B`0i��w?o�L:F�h�j�")�NЉ�S(��m��#M� �y=�����剋fC':MI�������? ���f�7��p��C7�Ρ���.���T�S�L�p,�A7�7��f�7�u�Y�@ڜ�o���x�,���<��/`��0�?�)	���,��/B٬�6�Y�Y�I�Hq�T�����g�,8B6 P��Y�����u�n��d����w��L�f���o�o��O�i�e��f��J��u,`L���];����4�>奵�'p�{���_��\���s�2��]!��D:�&5��ql��Έ��N���t�J��p��Su�TƬ�>��M{p���L�J�
ST��\�o�0��#3�~�����eѺ�ё��ɬ�ܸfoL9�b���-ʶ5���r#d�c�}�Z���$s�᫾N-w�N���b����i���	���94�R��v��g����Ӣ�(����~���Y��r����Xւ[�\��޳����Uz���k\��-�B]�t�fח�ch,`y*�Ц%ay2��!q��ł�f�����mmq�9��~X]���T��׷"��̧^���5�>�%��4�����v��׹�i�p%�dztF��9�n\A��w&�rj:�M�,�@�8=[�vO��1�5Ѵ���x�����VA=�.����,��(��-����b�ڛ2~�q62��`w��/�<M�2Q�.�Ar@�f���,`�SuXc�f�f/{�'Nۇǟ�5S�_��ͬ2D�w-���+N)cd�
��v7n��˹zO�K���K��SQp��K��&/��[5��3T��95��gXQ-̻Jr��mwfr ����ٔ� ����v0A�h ʬ�u�lY����[�����m!���I=��%�G��������Y16�_���s1�țt�`&�[��=����K���־�G��.�U�ɶ��&�F�E��k�X���?_����ܪNA�n^�+��*�.b9��G��YJi,��(ʹ����?�a�5"ȘL�\��k��a�e��^�~�ק�Ry�'E�o���r�@���$=��%nR�p�O�z}�qv
�c��+%xS��⹅,E�����Pw�L���W�GQت+����4�٬xLגҡ�h{�1�Λh���ȯ�6�K�m��F�c�t;��(�wr����n�O���u�p��6[��-V�0kc.ک�I�(?+=����,4�BY�jY��ŋ�k�ku�<��U����%"i�β�+7#j����(kk\쮘�f�~0Z���P��{�ǯ�̷e�-Jյ˷ž���V��mB�B�+v��@���Ba<�p��� �[��K���3.Ε,K�:L[)l\w�p�bP1fnKT�K��-9b]Ѳ�M�m�Hu_�_7w����h�Wļib
͎�V�v��s�@YfS�"ƕ1e<���?���?��˄���8��p{8W��QgR^�R�\��E�r�5�b_��U��&��x��J��6+�2b�D6t��$D_����p�ޯP��?~FXUt�f_�c��1v��*�8��p�^!G����:���-M~Ĵ�x�ƿ����6��a�l��@v���E�}�t�a���8=4����<����܀��ς8�_�����lܘ���Q�:a8c���.l���ij�v�q���^��-1���
gौŰ�������q����0�\�˗dk�����}!$��ƎQkc5e��j����/���Y@u��lԑ�k�ݷN�k5�ҿۯ�����PMyb���ҳ�4�Kyhyu,~� YS5�ȇ[ �u*
���싨[?,]�!@�h�|������`�FhTB�Y*��6�8[~���m9��Z�%W��f���m=�����1��ӏ����}^P�e�e�	�@�n��d�%�VT��2m2Ƅ�v�4���i��_d4MΘ�W-t���ټ��>W��S�`���I�9��k�U-K���	&jH)���	"n�7����ٲ�1��H�Ut�6���}��l:S���ia	^jm<�]�Կ��,
4>��
(Uv=��ͽ=	�S�jY٬m�pV&��R�Yee'�$i��bz�:k��!���_m�e�EX��ž��_\�ܸu!�����NJ�,$	��a!�[Z�L+�K,���f���U���Mkdo�i&�6B���+�Ba��_"d�����Y�bBb��X{��ɚW���J��J�T���S��
UZ�#v�N���5�������Ѻu�ϾZV'���|��?
�#6�NU�^�V��L�j���01�榝�m�6��U��6�=���WX�6�5���6�kb� ܪ���e��A����`�4�{����L��)��ӆ;��)�X~8V��̕|m����L��m*�
��]�M9�U<��_��>9R5 h�F����SêH�}��G�l��y�Ŋ�:p%��!����H!��!�IW��`&S�m��Z��J�@%\b��ҭ�S]���nuf�M k�,,f٧!4�L\;l4aR/�D���}G�&��|����9���<���*����`���?�Jg��0@P��?�?Ǖ��Q:P��21�爫�+�:X苾���<��.!1 "0A2Qa#@�q�3BRb���?��ܶ���/�0y�L��&Q�g���ݦV,̔/��Y�e�������\�]M����n��l��vܡ��P�������>�Tp�n"���L��`��'�ərt-U��&e�2{~G�u��B�N��GE$P���1��,_w�0`�$=�[R^H!�[!��Cs�����S��(�5҈�ZX0bi��K�-�k��H����_�}��al[Y�8�Q˱���f]���,tV�Nnit�O�k��\n�8{.`q
�,_c+�I�����"�*�<������E
�rݿ�
|��ح{�Ȼ�Q������P�UJ���+�b��5��\}G��=�i��KR�%�5~�8�W�5)Bk3��O.Mj��yq���gu�d̜��:ԱIC��6j�1vb���j�	�Z_2�B�#�;3�Q�Y��R�,�(��:M���X��֎]=n���S��9��Xq12
(�Q�W�T[9*�OK�ŕ�,���ЕK"J�B�J�D;��֟�U���X���SRu8�&8��oM��$V�?�N�JGl�}X�bu�+n�NP܆LR�u)Ӎ�����h{#�H���gS��pQ����V��R�$U�Ҋ��;�:�2su(�\�5�RKg�)�*��ߤrDDt̮|�[o�T����¾�>NvE�(��HM^��d���1h���	���L*�V��J���/�K�RI
nN7�s���lZ��}��]Ɏ"�9zW�_��qN�=J���*V-��!ц"3��=�b�J�u�T^š?�]Q�X�G(�������m�sRZ?��Q�/#�<�j��z_���*�Y�*y���_��ʽ�/��"'�!(H������j�(D�w/��EB�_�*8D��hҰ��+����N������#����7ؤ8.WU�\�f����d�`�a�ru*VV�D��X/��dO�d0��kf�j�2-,�PZrV7��9\nG/�U�K�ص/�0���������\�����H����C4(���TB(���(}���d��G���
��5GhJB��)H�,�y)R���k�k./�B��BKu�(<���
Ùi�cR�VX�˩ӿ�tB�-*h*����j��:=+���_���
eK�Q�UY>J�_��J�.|�Kz(�q�/�<zh�*ZzP5�8�R�Z����Z,(b�+y5B��j�Ñ��XK;a+�٧�Ji�����1IQd���HJ8�[�����f¤-�q�`[h>�jㅺ"+ѕ��Q�/ȾŲ�������S,�W�rt)R��E�_񬋪#����j��bVSb�{�[�zlr-
���/w�~��'!1AQaq�� 0������?!�J^/���I���m� 7��2��4'��5����#��>�����L�U��c�!��rK���1Y����WI����������`�D=A����0*El#���&���v�֢�$U�ىNҬ�x<Q��3WY��M���\
,�'�M�O���U��ѱ���5��8�lb�Z<�8�9���c���?��Mћ�z�7?q24k/#C��1���C���g��i��}>it/Q}�� f����a�5����K�c��4��,��7��q��)�e��;��i���H֟�3�?7�/������/a3j%�
�l�s
v�
j��>��_p�V���i�������/j#��w�X=�����=�F�H�}�Ǿ&���0׊I�l7pg��1� ���)�	��Z&��Յ:���
tC��ˮ>�$_E���bOfB
�Ŷ!�2����8�;�}B�;v9���LL��� S����M�ѲDD���D��n�H�ᘴo�R�o���4A�u���Зq�r���+�,�0^�b�>�}�hF��h�C7�|Gm�V�z=�Y����.V%�`��66����y
�@…�+l��y^DQ(m�8,%3ĦI��A��:8����$c~��[Ɏ��aH�~�h	�
}5�ZUD�"v卑T4�3M~����
�����E��oc�KfS}&3�vš}#�4h�JxJ�|4BUD�n[ح���I�6uS2_�#G����p3i���Ͷ1sTi��l~��5��k�“���p�ظ��7.�t5��"��񄖻	���(a{�fQ�CGr�@�a��c"6�QI��1�3�9�.���t�+�7�`LogP,�7����j�Ɏ�ᱡY�{��A��J5M��hQ�-,lR?F�2ӎ���jG_�%-O�i��dhP�f�-v\R��R��B�����U�j:�����C�B)%�f��=0�T:���.
�.X��"b��V��38��1�"�D5��v�db�2�X�:I��$�	�F�}x�g{nŔ�yL�g�go��W�,����bdX5eV���hj�;F6��DZ�STiN�B�I��D:m���c ��ek���ÇFi<H?�l�3'^�h�1�͖+Y2�%M!����6:e�Ͷ6���ϙ�P�����Y}
��h-ksD�.�<��W$�N�'�?=�눵4X$A��*	��!���0S��N�HoVVV��/{�!x+ vP����;�i�1�) ��<��2��1J��=B�����`e�@�[bV򐍡�o�/,�j�i}CU?�v0�Ʊ5�cr�ttU-z�{��="��8�%�h��൥L��ZhC�t��/{�>�,9_
v��@ m
�4:�dT�9�Q�Z�
�3Pџ�X�3�&n7ٱ�9�dC�Ce�3%XlD�<L����~�WO��)�)�4�
M�΃���j�1	H�CA��t�S�&=��SR��fFaB��VԀƭd6e���BG"��!5p:���E�[胟	KŸڣɚ�`X�
E�D++�׹ٴ�X��`��{���d��%#N�XSCt91��2���D��QElZ�tu���lcSb��	UZ,�AuPٝ�=�pK$�A��l��o!�vL��5��
}){��޸V&kD�;�$�Ƹa�
�L��$O��͏	���9�`�ki7��6yjo��HN��}�ױ.��0��'�c4�:i!S��u�3Tb�d?�0���
�+���l��d�{��m}H˯b�ދ�sa�,ӈx;!���FA�4e`GBr�zT4$�^
c�%#�ƚ۹=�	��C�jeBav�?�`�i��K�1�ᵋn����xelB�x33����K#&�b�v�F&i�F]��ت����;eX������D��Т�7��E�x*��i����8���h��zY��N=	&�!Y@W@��	�!��� n��
Fq�b(9w�= +-�{�.-B��.��MlGBW�jA�>
26Ώ5Ѥ�a���CfFl����2j�^2����7�IғHYR��CV���0�ь!lC����JH���qe�[G
)B�v'�����iv�D���/C��
�G&d�"/$\�M�`И�����1��9�5��܌��1~&bTCxĨ�dj�4�*1���G�����HO���ك	�ݑ��@%�&�ER�
�Ҵm��4DS\
"&ͬ��D���[C��T���Q:�&��L�RtfшT�����^����V�@��ț��fX����e
���$��
��K]�5M<ȿL�Z%�7B
�g�J��`�|1h\6#�Y���-H�v�Q�
�99�7C�ZQq����qW����5?EE�I�Q1u�5}��š*��w�G��u�a�eHE�e+H��F��3�\��ɞ�~H��R&z �����)dj�������d��B��p.>�ęk�1���F����$�k�ސ���H&�K_�t#�/b#l1�y7�K$�ȷ/��ɭQ�
M����Z�2��J\��C�q�e!Z����xHP7@���d
���)lM�S1�-$�[��a�[8�fo$*O#�sA������e0dna]��{��o v)�{�kߙ�x|b��l~r�H~�8�8u�^�/ꭊ�cn$I}e�p5�i�K�#�b�$Q�c�/H0���@�Q
�8j�N+|
�W#��/ȩ+�D���S4�vZ<ly/�E�0�>Ű�lHl1��J)���#�Z�w�/�x?Gc�c��Fa	��/Q0�0c���R�v%=q�@����/+>��U-Ae��>ʉb�2F��?F_���
�!�41��8GbaCXC�ɂ����4d4O����l]'�H�!p�?9���<�4vhz%�l_�ƍ
l��LX4�2�.�6�F|?4��
�nR<>�H�ʢ�^	�3Rc��f�������B����O���Q���ݡԤ���L�#mKlH���a����G���61.M	p��d?���BAaZ�¹��O��ਿ��Aq�`G"|F��'%� �&КH��38��(Qx/c�+�"qa�=�*����VZRn؏u����M�����*I��8�
�~{�;��1�o5�T����Ǿ������6�Ģ-�!��g��rR8��"��kʄl5Ą� +-Ѐ(#��zJ=�2�˰��Ϝ�B料��� �h2pJ��
HƋ�o��{uXD#�[9j|:Y��	Ą*N>؋&��T;A��%C��O�6���"E$�>�mM��@�A��ń�n�^�T��;���S�,��"�RF<I�,�3��H�Vy�v>u�pit_�RUF3�g��Ӿ"��c�kV���;���&:�U�C�41\�I'hk��d6��5��}�8�Br�֦����*~�=��Y��������:is�$[L�,�!�U��"��pq���`s�w�� @0!1��?�QEQE�~�*T��b�(x�V?i�l��P�`#{8���P��� �N�|��`P�C�Y�
#�2�E!�7�� !1A0Qq��?��~+�q���a��Ґ6�!B�,U���]b:O�,(�+Gl����
�!v<n�^��.-w�!��G��K��7�\)Z�������qHjd�	B�.�b�1x-}
�bYF��̢(���ĉ�l �c�!�qb/8O��ػ�L��<وL��J����'D!��t���b�ѬN�b�?�y	�H^bCx���Жu�b��$<c������b��F���C���5����%!1AQaq���������?Fbų$s�R�l��i�E"�>�~!9�LM�q6�/,S�o���[qnw�pC*ab���D�\������͙7	��s#�4KF-�z�˜F2�H
�F&�y�U�	�s����
VOQe��9�Զ�i��,u[S<$L\
�hr��1���1�<Jl��Z4�โ�z����[H)�,?�>�\��P��A�}!�������3#�e�q|	Z\�8�e/,�F�V������nU�TP
W2��1�p�V0�
���-@YNH�����{e�.��W{_4�j�7�N����`ט�,�@8�vĨ��ƫ[4��F��Wp&عD�'f:�oC�-_1(7g�!��HG� P�I�#����e�~@-�O���c��
�&,î�*;|�D&�Z�:#�t70�:��7J�����"���.z�2�WYi�,P������U�. �R���b�qhό����Q�(u
�V- �$W2���ݮ8Q����M���i�0�d9��O2�/�"��%;\�P�m�T�.��DE���}��B)��!��ys0��i_$xZ�='������o:��6��� �UTK��ԄH4��8�Z54%�Ȱ�Y�f�b�/Du�h�,6<���ĴoGR�c�$_՜@���6{�UC���1;Q��xnV-C`� �+̲�Q�Kg��e���60r9��Gfa��rA�D
������b�¸-�<������k��D[�ʯD��8��j�h�gg'��p@ؑ�e�5۳Mr�X�
�����l/K��{�mi�y���-��r��Ūv�X�=E[�R�l�)�"z��.�sqnHJU��2藢���B9�Ql��QJ����T�o�%�g.lb^�p�.���1���C6�a-�2��lfUE(d7)}��	��%S|x��2)�
q�$�Խk�ؔ۴3�;��k
s!
�L<�+Q���YUڥ����,�!n��
TJXnո�iu�5P�.�HSpw[�����1r�9rl�&卸�w<@\���8��l险�_0� Ū�.�}NP�����V��Lj-���CF3j0w�NX��'Z�fw�0�Q���p�{5ӭ�»3v-9�/����r_ԧ��lTЃ��uD-�B�#`�t���`Œ��M����)tqq��2ʔn�b�m{�-\3�F���.�E��f�X�:!�^I�T����Y����gu)����!'-JصF#r�S�&FdN���F�f�f+���W�,�2�NX��FdS
tE�']�FZ%�wR�uP�d�*�^�����xb��*��LKZ����j�D�J�����+�\${�5
��oqlF����-B�(Vx�J���eù�u�WD`���SlFb�3�i��S2A���1��T
��%Mi�+h��h�j� ��j�eX��OKof;V��L%0�0�W�+��Q���	|,�0/���5�%Hƹm����F��c�@��`�L��QZ7]��X�0d��0ʙM��E,
Gd��nu��������+і:��|�b:�c�L
b�@�7�Z��Z�&7��H<TKp�L�KD�e�*#�ٙf��`�5���Ilf;ů,g��Aa/̲I��r�򱨻e��̃��$����Lq-��`��:��}G�g!s�F0
�6�|����]ZuJ`���e/�?6��5�PH"�h�����.`������B.�,B�X�y�����,�P��5�"ȩ ��
b�s�N�
E�GLj˶�H�+ܿV����x��!�Ufks��iB<��⇄F��1��L?̶}�`$�`�����t��t�Mb������G&��L
��F�+<F*��JLQY	@�[fթf���@���Afʈ�f��TJ����̦T���f�wj]��U̧�B
���&�WѴYY��!I��b�R�R>�p� #�����w*���
�!��9��9̰\Gi��q�^jZD�1�A�"C�C�FK�k�cem��G�����<���+OD[�88)	���T��̵��-�}@ή1N࠮�ݑ��ʇ��T��e�t�T_� {�佪��rQ…��\8ܩ�{���E˔�-fT��VR��5��P��غ;�
��!
���.�Ĩ��_"�E�$��DaJ���[�Zu,w��TukQ�8�-ݢX�:�cZ�E��~����v���%�6��o��8��
�`5ê�.Ј�
9���sPq�U�2�-sKYE��5i�pM�I�{g����P��g1�sO���[�1l��ν��1��ܹH
v��X���WO=���Q�-�Ze���W��Q��"��n��㛏�v����+*���V�EL��S}��ۍ6�!˜������or��R���_hz�+h�l��E�B�EAB�J�<Ϩ�H&>��pv^x%v�����G{��B�r��F�
m��TF�`��r����2!� |��m��no��Ļ�Z�#�8/qbѢT۴ԏ�1QHf-q�f��+��Ɂ�������@{�Lqs!C+��*�&�����5e��X\���3W��mR��	�OQ�r��|ŬNU�����hqXL�q*�j������6�"�.]yh5)�&V_r��#����)�Nc\=�5��6�[癵����5PDSB�>����(Z��H<q��k�Q
�J0d�T��r�d0��0p8��b j2Є��Ĵg���z�V=
��|��Z�q��#QA�	���`O�	�k���̮a��!"�B��Aj��T.�T�r��`���„n�2�u��r�G�B՗��ۂ�!��CVűE�
�T�9�EA��.�n!�Ԭb(=�L/h��T�
@�w3��Y�7
��Ŕ�-��s��;c!#ȀmY�-.Xհ�iYg�E�-�˟��%���<��]c�S�_���� ���}E��R�X�!������4��|F<���$�M�r�C����5�\;�	|d�0SH��
�| �k�%��FT�]ѭ5`%L���6#�^�C�i�R�Z���n�قX�ĩ�"�b[1{5�3��Ws�*\��%)�ݨ�
�J�v�p
�	d�&f(�r��յ���g�R��֭����T�.9e��:��c]����+�y#�Vw0`�
(�<F���De�p,���_r� ������z�׀�Ñ���X+�(=�`�3n�x�R�P.���A�#�h�4�ɸ�j���������=�	�*�����t�������ՙ�u*j�#�
Z���[�˗�s�0��:0hQp�0a|ԥ7�)j~"N!�.K����K�T%J
/l!S�\i�ilP 
BEV~��J�F*[*�5WP�pb8)�ql�/�k�tn+�PPZès��&#؆,	 �%b	a��"�+q��j;<��\�y
A�c+j�C3�5��Z�.˳i� 6�;��FԪ��V�Í��l�*����GU�Z��u(Z��)�P����6˸�e��`�ų@�,o\LB�e�,T]|�'����!�AƦl���sxG�`گ��G;��Ee�2�_�.�!w��x���WX��R��2�ܱ���A[c�i���/i�.���՘��.
Վ!����-��e'4����`�Ӣ2ȵ��/(Vq�3� )P�B���"S
;�p�Z�9������U�TD|~e��`h�{�y�6�.@#��+w.�d^`��S�^����D� �ma���f�fәb�C:�R /�U���<Xܫ5�*e���9�й�a�mH� ��f�R<�&+u+9��Q�
T�0ñ��f�p��<Qn`�+�73�3#x�Z٨��ʣS
<|J,yLK����W�,���0��q�1G�NYP����$uAM@o����3��+!s9�EQC��*�j�@+u/h;�0˕ʖ�Ց���1�Vm�AV��FGQL���O	�?y�"��"%��"���Y�XܰQ���X˶�2���� l+g�x�o;��p�o��T߈���e�\�#Y�Ie[�|�v_h��1e��.o�=2������
������'1~�P Lm[	��Kx�0!U��9Ua�l���=����?�(q+�[u���ij�šÒT+8���8��'Cb����z�X#�J�rx�M������ *-.=S:!Zڱ����>�1Z�ug��eMȑ�Qw�6���F�����T�)�J+��\j�i9-E� �V*1� ��
�UH7.�����q`�Q`�9��,A�j6jQ��r]�T"5��?�ZE|1����0��'0�Pa��(��ሊmZ�,��%Vh��k-f��\��j�ͯ'�A�L������ş������]MO����p����cC�H�ޮV����P�nܭȪʶTX����R�G̷�Aj�H�+�Jާ[�u8�:#�:3��^����TdR����r����E(�b��(�-��P
���*;x�KV*��xT�G�#�Y)�o�(-��j�E2��Ԭ�]@%*��
�1��Ž&� )�U3�Z|ǖx����P
t��e��F�U�+��A�/��,������p��[�O!{!m�7��B�Ke��b+?#b*��D��)X!�j��X�P�8B�C��nH�Pf2Nj��J��N���0+�300�+<��>%.{в:L���ǎG2��
���6�(���&<�p���fi�0��v�t���m��E�'UNb��@��� �`*:�� @Y�
���Se=�0�e�'�A�R���̫�e���t��C`�W1�.�֮�)����**���]���@!EPo1e����&�,=��*�7}����ĵ�2�=�a3
��W�@{�6�R�
f	�\�8�N��n�F^��`Q����+�$�B��*5ÏD@�W�p.<J���I���	S#���J@_�僬G�/P�F��Cb�q_���ǷN�c�pЇ4�ů��֖����0Jh�&����ψT��)�0��j�*�
��ʄ�bP�
,J��(S0�⚗�N"��Vj��橊���
K7tCp6Z�����#�z.{G@_$�nj��CpFޯ] ��R��<���D:��حm��qk
��*j
z�Y��F j���7��`�l�s����3"����^k���0?�ş��*�DbC����H_��P��W�-0b^[�l#�bm�E%e��ee.%x�L�q��7*X1����	��vK]nc4�g@e7pIGq�0"ݣ�c2
\���'�3�,K�����ʞ7�(�_�x�������	lU$J��	P\GK?g�u����32*K��.;�n��C�G;B���_�U��o�%Ą��[nQV��4��no�#q�^���`�m��m2��p@I���v{�&߁�G�76� 3�?������	{K<��k����<M���9���widgetkit/Partigiani_2-bced75f86403de9d4b6f69ab40be1115.jpg000064400000062225152177723720016314 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((����"������d���;E�h�
9�IP�7�"ߑ:�-��F��f��L��b�@	�vz$�"�uQ|/66}�
��Z�tfV9#����7�	�c����"�
�H(�IAE�l!w$L++mH+l�F�
�����o����?
q�)�@�`�j����7����Xh�^�}f@�5���`�aT賆��CՂƙ`���5�f��
P���
�FK��.�I}֓���\���j�j.+DRw@.��f���_E2��QvU��B͎�t!��<1T�3֍���O��Ƶ-�iW`��_�|C�s�56K=�r���3Y4�Ct��P�A֘;@jń#]��4a�Ž�"�zZa���.�y!�"�N�{J�Z��m���ZD.���������R���Q��e��mk�퐦^�4�n�~��D�ެ
[�8��!�L��j�L��BW&[;�-�j`�
�q�vsH��s����cX
ixP\Z`�HǮ�Q�ȳZ��ز��&�U���}99�0W�����h+�uk���|⦋���A�њ��Ll�
R�<�S��F{9�����Z�A�+3u��%�*�&�@{�Yp��4Ze��}5l�gT��I�~ulnq��
QU��:��y���o����-VT�k�o�5�3W����.���8]&H3i���ڥZ�����+��b"�t�	��20��#T2ކ)K��m҂�.�F���c��}��h�xK�[dXB�(�+d��J��`R�N����Y���qi4�ќp��Fʟ-�VXG�)��Y,�0�z2��$^	���4�v�t mnm�hőI�B�����_�4h�u#C�b����]v�yѯ�'�~h�jIr��2�
Y�{]�θ�A�W �!��j���Ã�E�=���Eu�L�'2�!�M�F�?(�-m�	��M��X��Ty$`�k
�����r}��D��(Ѫ�qb��=�A1�m&{c��I�����2
G(��E�1nj��s�Ŧ�� XCP��M��$$fD�NI����e���(p;=8���1�Ҍ�5���)c8�{�R5�m1��>At�mt˩���U‰X�ِ1CD��O�%:�*���.�03R*�;�vQ�%��brzl��F�yjs���)q�l��[��Re�,�^��
���e�e.�5�Ȉꃉ3�=P|H-ؠc�"$�h;E�
�1�E��ͤ�Yct/�&#���T��"�����E��z�Z���91���c��ϴ�S��S�07-
`6�z��g��b1�� ��5sS�_(��4�T�Q�����Z�Г�d�em�g	x�A�*(�áS`!��\yp�v��o�����Afv��5��T�i2���[���s>��������K����͸,a2���JB��K!��H��6x�1�VF"{ڄ:6Fɟ)��!i�#WV�@��UCq�7��C"W@W8��ΐ_c��Q���6��,!"1#2A$3B4%C���я�7��9��8�3��H+x�v�9�
�c�3���xŎl�Z�"�]��cM�hev�����}ќ�6����
�]�䲓��]�)31Ʈ#<���z�β�1�N"�4�Hc��i��8Ć���y2b��3��Z�ŵĞ�#�bK���p�4aQ��[�t r��"	een
��3N���b8�+��h�/�U�c4��s�)>EfO�$�sED~T�UA��pN`�����]�Jѻ�Ps��*h-*�J�P��uݡf9rU��:�[̫��=r���y�X�Ia�n�%���af� �q�*b�N����m�-4q@f3V����~�V��]_۵ƴ����/�*���KD�Ry;h�شO z}��e h]��6�g}[�~Zɬ���'���&-M��ġ����&0
��>�9a4��|5i�MN#4	ې�#��#`���V5Hy)�5�q�������+p|c<�X�:E�5��Kbl�N�R�x�D�s��(�؁y�j1�:}�N��C���0Gݼ]����W����'
��"�#�k6[�,$�HOKA<P��f+2u+ZK�v��rG��H_����*���g���82��G�0���yP�1]SZĽ��å�[+p�������J�er�no
-�wVp��q���U�$��d%#��E�k0�{AI�D�F$h:xf���[7���~��+�V�i`���r��K��/�en��G���]��8�����q�2��0H�O�9�����
I��&��N��(Q��ǓùD)�jM/PcQN�=I���O�a4����4��,�(��+�^t(�a���u
���奷#OFՆ#'+ �c�KRYU���*��#�*��ri�p�!>D��wOC�Բ<Ig�As!��u67��gH�:7>'�'u�Nrg�0(W��$-kB9#��2	d�pAfqbKJk�ڊj�t�
�j�"V��
1Ĉv� ��W9P�f�P���v�7/��0���c��H��`G1R�)�E��shK;I��d;�L/,��Q��j�-�$�dby����E���wB^NLqpM 	�X������@�+Rj�g�4LƴZ�\ꖖ'M�H�9]#�Y�(���,�t��{)�Ե��y��c`�'�M�X���[�X�7��j��{� UF$���]��?[W����>��z����`J4�_H�<�҉�z�k�w�"|�}̌�5+�i��J�/V׋�u�V���^M��x��x�D��Ob�淝60lB��$�j'.�l�5'�b+e�1Ъ�mu)�1�^��B��kٳ��es�t���F,��t���_/��Tt�p�?r>�(\��2��'p2V����9a�c�����&�Z��H�џ�_��F������:�O�3�zN�k�٠�oT��OޣbO��J�C-�#xr��C�zW���	��Ng��tJm�,���(k�e��;��=.'{S�x�lg2�[$^!��?�l��/ܧY7�&�WI�k�UG�)H'�^[���3J�:�Ӓ�X��WR�d>�m�I��QK�1O�#�bܷmQ�Rh�o!$W���WY��G�,�Yy,�nx9��-��)�{�]�Q֎I	x��y}�W�\�?#�q0ɞC��i�T�����N?K|XD��i�>Z,�-7��mGSK'(�!��S4�<R���;��@�ϩm�)h*�g�	�x�n�"�Y��n�H�N$��[�?C�iY{�V�6'ʅ�N8�&7����^O8����}:]֗mnH��:mNJP��=����\���9�U�����Y��ɍ�9
�L���u�>9�cД(V_:s��y5d(�%x��͡�/ ������2t�����VS5�sD��|�u
�o<�����NqGz���v�٣��@x܍���WF�	�W�
�m�S��ֈ�t'�U��� a(Z���a^�/DV�ar���:")��
dwfT�nlp��+�c+QZ���A��Ό���nG�X�W�Iy���ʳhK(	7lb����o�s�iL�;=B8�L��;I"���k�)�s�ty9��kE3(�%��S���{3Zq�Y��	�����a��`���*pZ��K,�nk"5�v��d�������9�/Z�*�>1!ߕ�kJ؃!?�}K<q�D��.�>��$��^A�f���ݍ��r�0O�Q��=��8:��ŗ�u��J�o�Xȸ�����5M��6٬��e=.�i�	��:%��e��l9���|2{z���9lbAv
��X�8�����U/&����!M�1��>�6�쾢�m��Br��
���k˭�X��k��Ӷ�Yz9�Z�6�����v���NX��u���l�0z�+�ȴs�Ͷp��
��׌��:h�&#=��eE۪9���YM7:�A�|,jH�y4g���2G&�I�c,F2p����+&��Y���\�l�ƅz2L:�x��0��8p��Dm�<p�|�ی��߇�9�c��<���*��R~ۼ��B/�Md��u��u�Eρ�o ~�;�17,�6\��t��,�C��=f۽h�4v����X�����x[�����a;�?�y�7�pm�C*�cz�����c���D����իE�H�Y��?�q�
�ϲ�i6u�F�P2"��PZ�%��M[��h"l����d}��3g��
Nodb��]B���k��Q�:b���"�4��y����W�s�X�tL�0�t���ܔ�����p)@t��5+�� ���{�=S�)V9k�h����x�Ρ(n��S��q�0�[G�s��B�mf�e ����-V��C:9T�fC����?�$P�3��^ņ��nF,��%�q@8ɥ���0���y�Y45��^���(ђ�!�oƙ����x	��L��dv||Ș,�4�YF��]�a�enSkc�/�AP�#�a���s���B��4T�X��������E��ݚ'�ۉ���#0W�ie��v�cH��&En��y��*�2���/��즈luUO�HΓlFg��j>7���:g��������x�)�k��͊aS��^s�YOl����8�r���K.���"�d�-���k��YLo�X��"�ӻ���e���>�3�I��� i�.%�N��:�i�]�n�?�'.岽'����c.�u��t��C�6"��|9�O�>��'�d	ޑڒ�Yf:F����/rF�X<��}�x>���<�h�t}�vk4l��gmW*�$�`�^q�`���-	�S�KMm���`:}n������Y�f��a����ƥ���&�	㕙vv��۬+k:r�oH����{X�Y��W�Ra��3&�ӿ��g%G���|=y�|���-��H�Z(�2%���/F�������E��Õ�K4�&4#p}�>�f����QThx$�)b��K	�c�/RA*�X�㰒w�a�2h�e��-+E7w�shǚ�+3�Eʒ���,N5�&هQّ�I4����f��[�4 ����,b:ם�f9ϓ
7ԃ
b3����1���2b�Ţ�8C��9&���N.2���@����RA�Ef&ռ[wPe7>zYIbQ4���f�V��`㑞�J�+�L�C<��F9 �Wn^UY�,o'&�1�F�	H����H�F41W���ha�>,K�{m#J����4y�+/CN0PE��c�0RH�T�B�W�)Ϗ���K7�^r�G���,ZĖ��V��K_�vw��h��F��>m�"6��V�)ԗf5y�f�4����_a����#���h�vLd���_V����<u�v=��]F�u���A��'�����4H��i�<)"����K����8�dQ�"A�'��3���2_Ȫ3����ab�Tk\p��m��#�G�����?��h�f��V
h��� P@`p��?��&���+�c۱���0 @P��?�x�#�;���6q�
�����mT
�X��&�qLJqLJ��>��6!1AQ"a2q �#BR�br�3��4�c����?{�<+��(ʙY�𲤩MasݠVM�lh�e�|�ժ�>һ=7���#�\㒭c��v5�½��ː,�X	�P&�'����U)���	�k@�7�h�i���ʸT�u+��ؘMu:on3D>.X�c@�PmB��D����T*V�NBa�F�u0H�C����Ɵ+��
8���0��S�.�F1�Tg܇�a`���A����# �m�w�4yVP����)ݮg�Wk�x����.�:p>Qe���2'�VXZt��;�o���#��2�ߕ,%��(���E�yE�t�+}����#-qq��u�(T�o�VM��'^8OIN#�����-��0�qʴ�xM����({�ûN�:'�ݕ��ʺ;eU�ɽ��:�̂�Ț�/L8Um�E��[Z��G�XȦs�p'![��Nu6�mj�ͪ��[f8L{[k��'�Na�}�Qt��a�ei��)��Z���P�~���y@�8��fG!Z�Y�h�XU?ض�yUF��yCEە�']�����{��)�5�G
SU�}���jZe4FtM�8Uq���}�eZ��$�OM�e]Y�z.{:m�uCh��q_���LR�I�v�B^|7	�›��J"��{tSQ�w��uho�X{�r5O�ږ����uWs���p�SQ�lF_�IRʗ����(2v(�x@>�n�v&ңw8�E�p�T�6A� ��M��n�;�5�����_#����Q�q��
���p�4�!&$'��_uLpK�!�s�̄�Þ�(��j�U.�(ؤ�{���FMȺ���eP�
����}�f�C״�~��*)\F��hh�\�pt�
ntk�EW':e��B-�G†��D�T�ub� iD�O��R�-`�9�|(\T��Rj������^�)�k�[nS�)������
�[ʦ�w�8�����qXԍ�Z��f^[�D;� +:�O�0�p7���+�Ѳ��l�)�'t
��$�F�S������>r�J�cK��S�,�a�5>���z���WѬ[�U+q:�kj�
a?�m�D9��ܩ0˲��UwE��M}(24P�FV�|"�G-zU;���@`��l0gH)���gDn=�G�C[��6����1���U��B���cs-ԍն��wB�Zm{T�p�
�h��4';~�A�SZ��zt��]�sÉ۴.�v?��]%��$��ɮ�v�=�25
R������?���r���Zr
5*k��M��vFAΉ���p�7�f�Bi�D�����������S�(sd�UF�n-��9�
sF����M��F��L������*���dL���`L(-����6Ϋ�?��[�W�L4r��N�gTb��RmGv��M�N�\���vJ"��cu����*e��y�;#�x�������_JQ�(]�tL���7��)7:�(:�n�?�%�Ӻ}*mh���-T�;Y=�©��6�\��k?ҋ�F� ;�]NУ����Ka�v���+=X���*׍Ӛf͖�y�v��1�!�9�Wo(R�%گph�Tm�r�� '��~u�FJ,�DS�uGʹ��GP`�{��1򩝜>��J�}T���i5�U:s���M�>3������L(�:C F�N��&ɩ*ʾ௉(;Q�1�Q��,"�����B-�V�]��z�OF:=�]�Ġ�5�Y�ԕ�Z��*���j�Z�'T�{Y�8�w�߂��rT�S)\b�-����i��V����N,�o�Q�Z���е���*�3�(��^�����ڰ�)�^O���lJ�Z�\ݔ/T��†�T�Ot�_��So.
�&�a��T�q��#���e<���8Pf��6��<��n,�.
&���iS�Ju'�
pRr֠��N
0�3+L��P�	�cڈܪt�(�����c��6AU=C��"K'-C�?� �����v�lp�
�ta;�*1ѫTǁ�����g:��z��xO��]΀0���J��9�����㖧�N�����l*η����Qy�`���6Ӥ�b\�����я�����\�?��%c*HD��ԣܚ�ӊL�U���CXЛ�KLc+���A��w�h�4��]k�~�� ���UCl�۟=�A8O�֐�)�w+@1�S :!1��V��sV?��酒�@T�O��ʨX!��XS�yW=��&K:@vQ�܌�����22S�����
�(��d�uV��Ի�2>à`ܩ/�T?��)�r����DH_�L�:�����٨���6��s���	7'�ۮZaae���-��ܢ��y�*I!�yA�d�G��r3]
3���C�G�a[Q85�P}ە���P�!����7O̠�m���|��’0v�A��ZN�9�)Κ#s�6[9�E����.�>M7L��ףO��p��VF��%v�xs��A�` F���'6�A�D�83C�*\�]���Bo�f��2�]�8P3�%MGO��`�PH�W��q������=�u�h� ��{H��k�Z��Մ�
��pE�tzh��v(��Ѩ��L�����!�y@�a5���z��N��`�h��sw@��@�+	S0�upMA�*]���n!E�G,+��S�0I:*����p�I�D��tY�X@!^J�N��u���-VN�+�vB�d��%Ssp�(�
������* �.j�wpWa8p�T���u���~�v_+:/
Qo��A-v�)�lz�p.��ܫ]�
�)��A�0���$#t����	Nk5�F�
�o�=��j�ʣ������
��"�~���AZ�k�t�QJG��i�[��*�6*�ϔ�)�V�U��VGP�Y�r%���,O���T�,0P{}�XT]�3����y�����jW����l�&�8=,k�+�z;��X����IܠX-�Z����|�`��ʱ������u�v)��D��)��Y녪���4T�J����4��Jܮ �ta���J��{N*ڃ#/��|<jS)2lo�(6U��f~���s��TV�r��v�VU_H����!��ď��,����y]����ܩ��˲�Sn`�m�Oh>�%�Oc�p-�tjw�J��%�D��CE'(ݯѕ�:`��.�z|��`�L��q��rp�p��*��~���]��*
�.�Z�M�Nw%k��k%J21i��}��݉�ssv���kTj�OQ���8��
i��{��a�	ϩ�kw	����v���4;uM��ҵS*|u�=9+م4�c#�c��Zѕw:��Z��d��M��:!=!�zm ����ĭJ�H�	C���G �S��,��
���,��O�@v>ဋ��"�mr��o�G��$
z\�n��.�Q�i���G�S����*j�v�����I�}�ȉ�n���kF�Lc��Z!
< U�{��f��m�%�qd쉵�%h�1�*�����
�o�URZ�sr�Z�bĹ\օ�W�����{�*���pN�A�%��N�FN�R�T�3�pe4Je9��2��:
˶�ҜFO����~�eg0U��>�Gђ��NTc/�[l�ڂ4B�	�tW5�&�{v%%C]@R��$&���E�b�-9㮋E�L�=��WvܸZ�:�آ̫@��kX!�k��,6>�с�%N���J"��P��
m��Wj7���rp��,��j�E����x��l�u]�T�P
��mk��\~�I^�=�ܣd�
��_S<7(�պ4�s@��p*�a��a�I
^L'[�:J��9Z�BZySfVB-m<�Ws��4���N���{P����e�����e�H xP�T;E���F���]�𴏲�r��/�)�u?)�L(
��݅hU
 �r��j�A����I�w:N�Q�t�\�� �@��D+@��d��o��8qZ�-]�]��פ�K�>�$.����Xu��T�,��j�.�,��*D�uZB�8C��@�J�Y&5X2��@�%a�l��A�u=�v��@��N����w�0B�IQb647�U�dj�"�O��P�@!�G��gt�~��:#=
HۦB8SV�{��kW��&!1AQaq����������?!M«�\s�/e(D�Ň�\�#Y�5g�Gj�tu/@@��V8$Х�*�����tJ�m��a5-��t�-�އ��X.-��.���ʀ;�V��s��/��.8���x/�������
0�P���AH�080��,�GQ��n��S��Lt�x�ט؊�
�B��B�����$]���ht\��!��?p
��`h�1�R�MneV
�9�;���&�@.k���&e��FH�ŷ�g�e��a��Tp'��*Tywo�`R�0>�bkӗ�V�N����k�Q|��)�r�J�h�P�h���@��W����
�QF�&�(\?�gn|� >L�mb#��v�c?�T8�?S�<"�.����#Nf�a0K��8��Zl lT�B�v�+B�ˣ`+���Ia%�G��`&�[�� �q��K:��^c��W�R�C�Q,GL<��l��U��;�mU�nC>L��w�B3t��,D�a�v-��d*r����'���]��X�p�4��ɘ%c�c��A^�-�D�ҵ Z���u�°q]OԦ�
����i��O���i����R�aǑ�����m���e�>��z����T�j���˜L�"(q���F-%@�W�U�����������ӝc�v�ܯ�0��A�����v�w����e�_�4]S|�7�������{gs(A���<?�J�O�`�6a/rC���r�D���C-�x��bq���F�})Ay�_��3��Lz�[��]\��1�����p�2���r�Ֆ�2��j^�1Ʈ�L�F��Kh����J�"����Z_�p(y��-Ju�&�B�3��#éh�ĵ��*94�҃�aK�l��&Y�XM�R�?��21��@�#�̩bW׿2�.�ːm�L���f
�Q{bt�V��ɷ����E{96N�r�6��9��`��P�zJ=��l���Sn����L�v�5�ep0�3A���+����pԼbt�a�[#Z�db��qm���]�5W��a�oba�%16��)�ߛ���M$�ljH#��LW�P��)r21M��&{4_9�Y*������r{q�V&%�Z�b��c�S�!��P2��*��Ŀ�]0�N�D����(�FQ�bT�q�Kh̯Ym2�rCCY��&�c�̠��Y���K�fZ��mLD�>Aؕ�W
2���0)��t�΁��D^�ئ��r�٧�	(7�|TW(�K�J��ӏ�F#^�퀛�G�c�pm�na�6L̛��Fǭ �GU��V��%.��qj�P�Ea�0��;]����x��tR>Z�x�J*���d��qD�L-�0�jL���(*�x��X&��-��qM12�mb!��gJ��%��붢����0F������sW��׈�s�i�
�a6`��#s��&�e���n�Z�bl�b��1�����ʰ�}c<^�ᆳ�s�8\"bĥ
�K
��RV�%�|V�W�.�������٘�P2e��@ߋ���u� �t���Q�y@��y��?0 )їg�]C��n�&ۃ���Q���ysPl/eN�lLq��U����!��qiN��1Ͳ���@.��+2���L2A.��r̄�Qq0����_�=��-c��_�,e���%\��A2NupU�*�C���ү{���Os!]Ϻo��MPb�!�|[�Jڅ�6�b�N��)�Ka�`�BV1��+:��L��Y��=��Qz����~�{	��c!O�X�S��q�F.�$O-#��T��r��E�a��9U�V}�fS3T=o���<��2��tT�A�ƽ�LJ�&�3�)��n���Q���,˚j��)��,JY�#tD�'�6���g|%���X�ڱ�xIx�V\�QY$�HTS�W��Q�??P�X�F��X]D��s��D���3�L�ba�`�0�x�SتT
UTx�
_9!|��܉��Ix#aȿ9|}��V�"N�d�M���[��MNuT'0�‹K���K{�����R����%��&�q0FZ�y���e�����û�(��#�!2���
=+��³�����$��I���y`
�P�}�ε8c��w,١Y��aR�Z��K7	�k���
,7q�#��iU���2��d��ʧkp�9�\t�V:a�Aq�7�Za�[�*t�LԏLv.+���Q+$����n�/�a-F�R�ܶ��y)L+�l����,�؏�(�Ƭ�� U�+Lq��_p�.���s�.���
_�!A�9PF*�@cR*�mle��e3�^̵9�TKC�X]�L�n]�Ax�ɪ��&&c��<�UO��a"&B�+ՠ����h�6�̠�xS3?�
1-�Z��L��S�$����/I[hz}��ј���� ��K��K:y�H�T��zY����M�t��S�of��*�DvwQj�� 8��+ŜFy��3�.�/� ����[�Y�'j@#H�+�ׂ2�	�Z�xHɨ�s*�~%.���4倠�4R�%لT��xV=E��P劭�\���Jf$VA~K�����@n
���,N��qpa��|9ߕ��[u�[�gYB��q��E��386%mQ&�hQ~S��LKO�%���J.��g��6���Ь��fN�0~9�6��=LL�Y��kbT�X#&'a��D�"V(��1�+Vy\�|�r�=	�1.��]N[������'���(�@)���Z�g�F�����Pޘ�����������=C�w8͍�W�@J�7bB��E��]y,���p�r�����@�X-���c���-v=���U�d����$�*X2�s�U��� j��>]*Z�Ln�]g��4
�(�Y��Y���+I�+g
�k� S��!QQ~bԅ./��\�i�}���w�Sii�[�C�a"�H[�.:��]���7W:���y�]��4[I
�7���?ܹ�:B�tL�9�fx3���������tv�vEr��'���
]{��)��'|�^��[Va}p7*F���,�_,�ou-`�
kr�%��J*ܶ��Ub�/�(�,�N�6Jn�*�S8�1\�Q�%4�R�
ZD���~㘋��d�Z�se2S1��j��b��^%�IX��S!e�N��?)�F
PpJ	M��*f�_l'Sh�;:_�tO��e�C�%&xq5+�r����"�\r��h���,,hj
>�/��|LD��W5�|0���&������31Z�0lB�(ǒ�P�fu�#�w(7#�
r��:9 W�e���f
��C�cR�/���K�j���_�]�1K�f�d��������O`luؽ!�u-|Mۂ�!bV�X�]�3O����p_
��ۜL���BOc�ե�g
�ZD.���?�2)͵*�F���1�YV�=���(w�Pr��3��2��D+c�Z�Խ�}�Y)h�-aA��	�
xJV�f�Q��5c����q�Q�m�E���:��<��٘1�P��z���|��b	ّ0e��3)Y U�n��0������43JQywP��DF�+6K)��Q����X��ѳ�j���3mX�T'
�7����0D�~��Z�&�c�u(S��Q�,'k}��fFN�u�|l`z��,(12��̋�����ʈ�QQ�rE�l�1:��PTc�,/7p�m���Q��i��θ	�*��-4�e�6�S2���x�숣�da��r��<r(J�ˠ�1wDTe����R�����@rj8ZSP�я�]��m�$g����*(�`�E=��R`K�0=�c2St�_�2]��I�njq,�-L��ZT����'$9�C��C
�;���ܧ7�	��p)5�0xS��x]�
u�:�G%����	�lY�lҀ~%V��Ĝ͋	6"�<v�r�LbZy�{��1���^Ff$����'[� ��%l�U%�����h�p�b%B|;E�)��R�j}DEW;T.q�8�ήJ�.q1ɻ=��t�2�!N��)�L���C�7]�a��`DP��b+�/M2�P`H���0-��X�S���q�2:��3X�t���S)�kr��f1EE��s�EC�GT����G��1�4�>b3��Aԯ5�H�<���"̪���N�,WBh�j/�;���^�X(�P��sc��,�̘�������,,�7������H?0��Q�1��KDh�R�����0e�t����څ6�mb*;
���χ��8g*Ab���
�È�a��aeVU.IO3O��F.X�X�9�?(�J"��b��ĥ���������39�QX��5���(u�%�,ȧ�J�H�*b�^=�;����#gB��9�b����"N�KR`sڹx��@�8XH��p��i �����F���Z��/D7�,e�pW�8Lb̐U�<�q�TEk7
�ƪa\��V�m�bZ�t�s&�H�iYΧ<�"<�s��⠡�7x��i���t�hƮ����1ְx35Q,�Ȓ�΃��"��T2��
7H%��ԴG�1W��̥T3=p��x��������5%T����qp����2��HK�+-,�B�A�0�,e�-EAc�R��+��3`�����sͳ���k�<��P��;��k�0.�⹈R���Rѡy����Qj��J���(��ZQ,f�q�!�|���z�m,��q.#�(FQw.L�M�ͳ��S~�)"�2�&"����L�qr!y�:�3S���KYV���Up�+��)R�-�!.�oy�G���5.���A
�J�5�rJ�;w�����sE�[w$���J�̮l���Y�Q������j	��%
�іXӔ%I��6LƧ���(`Wp�S(�ɢc�����i��dȅAo��e�^�,�Ue�qynx{�؛�=�H
���6��P�s��7�S��P(>f�c�^
D$^�
^%�0]�@���B9ܸ��@�,�J��`S�p�gټ�Z�b%W\ș#(��^�,u�}?���PVp�&uػ��CV�HVP湂��;��P���U
��#��2�V�F(Z��<����A�X.�l�[�i`�8�.j�?P�%��`�/�Uќ!�T�bJ�Bg�[�JlԮ�QK��L`��{r{l���C����f��ᦳ{��/�	Z��\���u�5*ڷY�@ŭ�@����옐C~��]L�B���>�C��R&�v���ۍ���K��ޣ�)kw6J�#i��%�
�P���[i
�� �l�̺aMG1QvT�q�$ş���ƨ9���hoIJޅ5����9fvH�>�jY�!J�hz��R9���3��Ke\��Z��A�mXk1s$�f }�r��<^�*4�Y�8�v��Pz�&�.����t�<�F�^Ӟ+�3�ڸ�Lf)
s+���/��ײO3W*��������L�h�J���J.�^%
e9ĪQ�5KW�^+������MX�Jj��%s	�Մ.r�$��Ш�ƈ,.�X��+*	b�=F)��9 i�F;��8�50B$��T���f@uB�u�h9]���+�����j^W1��@����;+�}"��Q���8���BE�*������
��KHu��@���s���X�o��\������uc�^k������**P&yΪD��mP�Z�H�������#��(g�Ce+#2!�*����h��#���c��o�8I�4�.*SEI״C��*��N�"�6�`N���"��o�%�3+
�w�hZ隫��ͣ��*�A#�<Y,6��)���၆��������l���3LՏc�߮�	��G�`"��(���jݻ�i�+᠈�a*:��h#�U�o~���Q���*�w�����P*��IL�7� �63A��'Y��7��Z�~и%�︆�� 0@!1Aa��?-3q.A��R�"�����f3"��`�
6`t��1�?�'�(�y�^�&89�#�7��b
��y����0`n:p�� !1A0Qaq��?�Ⅼ&����
��qX5�Kz&46m�:$+���/u'l�"�loe�r�y��
���V�1�b��c	�bC:�mCr�cB9�бj����|9P��Z(PB��ᣡ������A�
8�e�Z�*�
(Ze�]���2��U�xPġ}ԵhQ�CV(�E}J쨱|+��ı
��{šiBÓ�5r�+?ر��pC�n�Y�
���P�kbЕ�w���ఢ���(RUۃ	��0�"�����%!1AQaq����������?��CNN�M����h�\d�(p� /����hk�|�p5�.��
�)�
���`J|�����A=F�v����
hYJ>nV����`
�n��;������ʆ�_߮g� �V? �n)R aļ�f����W	^��ٍ[��9�n~�@�-�W�#�9ݽ���
��Z�w�oD�f��0�ןI��'6�|�:�6�N�E"���^1��(+�y}�.�.���%lm���������6�"/#�<d�PW{5=M�Bg��PG����DG�'��'�ł�'A��*��E]SނiW�O	G6�\2����^�:mw�J�Vd�/NGF
*;*����H���x;����"�4Ew	��0��Gp�2P`��E�����ڕ�|�Y��p�0y(�
5�kQ���Sk��6}��t�ꋁE]js{~1
/o=�}b(	���9�XZi�D�9�!iIå���{_���ɻT�N9"�ގN��^_�c��Eһ��r8ЁxЯ�
HHz09�*D=P��=l�~p�U{P���KR��)��F��k�Ο� �*�&�8���(�����.CSi���ƨG�`�Zo�x�g�q�օ߿�p�)����F�oXT`gyx&JNt�9|T"zq��CYYJ�
~{�l�,�0[�A��#�ֺ��P5i��zc��m����-(!H���%נ��#i�z�'h���P�d�����U��ú�y���	�w�K&�v�����yF�<�<�qZj!�;b<�.�ז.D� ��	�x}�u8g���XT���$T�Zg���˂g�W�7�ܒ�,@�$��H[�|9־0��vC���
A��O���\NE���>�8x�B����Ivڹ� ��ž?ш%a�/���Bv�й������@нc7�hM����q�0����y�u����}e��Qx*&ӂ �~F�h�N���񋲐�NW��Eqa��p�5"8<\|P:o�ɩ0��>�5U
�xM�*X=
�����tr?mO�a��o�:�|��ñ���<�-�X=���$�묷r��F!���[}e��Eo'���#��,9(��a�p�E�F��~�4zN�SL(us�34��`
<���1RD����Au{�������ַD����r���(��H�|e�;����g�쁠�?F�ZQΓs�A�@#�Eg�&0�~�-t��%�
ox�[#�S���ۇPt����f��dv�0����8����"�\�/�J~.%b&���2��L UT�('�S,��~�e+��Ʌd�y[KA�셜�%֛I�\b|K������uZ����J��U���1�w)~s��
��b+�qɆEdw)�,�x8_̗�����#�¯�_8�;�-^~���w�x``�Kѓ4…2��2�Ϝ>�+�9�5 �1ts�L������<&�H~�FD�
��*�����D�a�GC�K�a��A�s�h;LY4J�9��h.����?�Z'�x��>a��@WA��Z�y_��$!ӂQ����w�qUY9a�?��H�Ukz�b�x���9�7%��$�{Oy\CP��33M;�~rВH�?x�A�l|�����"��0x�Q[�X\>�p����xn�9��-ZAG_����;���z>25���x����܊���D6Z����&7�bnEN�5W�2��=��3d �YCOP-	��C��3:Q�����_�u�g�n`J����L���]B^���a֍������ĞX �j�f�#�u8�0��cDw��ࠍ��O��l���>����w% Т0�@"�Ze=vr� GYԈk�Lr0�y^�9S�(�hI_�p�LA}DΆ��b�
�>��t��+�f���K��~�� �Z3��N���,KG��`Rʘ¿?�(�2/��2�쥯ӎ�>Q��o��
��#��2�ω��*'�`'f�����Pn1�k
�_X:(9�ne�Q��
��YE
q�
��������;���E:���#F;��„�҅� �Et3�4��A�+�/.TF_8)#����a
�F����d�Fl�y��D�%3N���Ħ�Z�
oXy�H/L"�>f"�4��Ȇ�`��g��R�2dUg��@v��L���t��6���a�f9����³�0�i$Me;TR���(�ɛޘ��DBxTx�L��ZHyf��T�m��@d^ݒqr�H�� Ը��d'��m�������\v�嘈*P^��0%�-E�/YTR^+�=�xJ��
�������l�6UQ�A��鱷~q�b���Y������s���*��Fb�
eW�6H@�>|brhb�yW��6�P����2�Cl�p��)&����ZB��)���w`h�d�wz�n��@�PB�e�m'�����|�1u��;��%ރ��J���[е%����Sa\0$�
������0H���p3�����r=�XTF�[q��lmG�vHJ����T�}�˦����9�JQ�x�RG|��+;ƻ2�����cq�L�5��*+Gk1G�wQ^7$I�1�$���}xr���qsc ���!#6o� ���y��ĵ�?�^���o�����s4��3j��8K�X@�&,���:`Q��L��B�\�����P?.Y]�>�)�z��b����2:���:�Y%�xl{�!ڏ���Pˣ��
�l����BKx	�������+p�Y�]=Y~�*�����K�=��n�7[��=�zĮQ'j�rx��B]I���I���I� ��;�hC��I|L!�vL���b������.4����;��:�~�H0CgT��8R�<�Ui��F�|c�&��{�p� 0��4<"'o�~�IC���b&�]����넿Eq4��v��-:<
S�e�A�4&�H�2�rX�A��ZQ]8/O���}�\wpC���x˭K��S�Ɗx�Wˬ8�J���4V8r�+_�����]�ž3�~8#�
a���W����3`{[����7-��s�i(�6�|♄lo�@t	���$!,�&2TH�n<�:/Y�J5�;�<��Fٳk1�#x�r�P�B���&�������ɺ����j��Ir%w�Q���<&E�=b���?x}ɀ&�MU|��L��O�r,ڏb ~k��N�����*p:��p#��͍��:!�˕`#��e�U��!��(iH0t��ТR�y����9{�E��y2J5�d`�p�)�C|9�ɢF�'#�C=��$�m�
=fE�6xNA0xU��4Qө��%����<+��-J���`�k�D�5g�C�<[���	!��1���a��nj�'�(C��I�=LQ�����J�ل��u�F?��A@S�E�j{a�_Ϭ����(A���z(M�2iخx�x��3��<8 "p����*��d���>_I�~��P���L�[�#�>�A���i�D;�G{[����+��}���x�;��{ēBk��dE�˕�c���?j�L�w�'"R�?�g�R�b����t�c�yلU�
}��E���@������ݾ3��^#?s)�}H�b�i
c<�:��5A���T{����i=������BģZ��n'&T�tk3���^1}f�	ђ>L����sp�&��Ƭ@^���J��	�4�k�&�S��eaG���+!�׌*&��-�N/����|�k��LeF��x���<-č6��o�ͦJ��՝|�����
���1"�5�-{9�j�&8�_G�� �������yc<�S��8����^�w�$�Ӧ�-O��xbYRÞ-ڈ�ĠջE8k�Qy_�i*s5?Y�t�G�8�P�:߬e���/~1^Bu��!�xh�t�ECC�`
�hc��8Ɗ�N��Ly�þ��KJ7��2����RV�g�8�C�˃7ަ9�Z���5��rE����y.��e�&�	����sNÈ�I�L+�k�;�z|\�.v���mr�iu��sQW��a����(� #���q��Gr�ބ���G1H�F��/�5m$^0�"�;�6

����97�p�����Ǜ��z������k�;�/�;IE���W��#,���2G|3�Xu��R����W������M���|>q	e�(�s�ܾ����9`��hpw>1��H���&�x���z��{�M�ˮt����=���.�n����v��
6i�$05trS�	���tC�0�D���x,�ȕ�W�FR�\�%D����g5���L�&WPSxX��.0p-%�XT�	�u�b��`S�3�q�O|#�a�I��n�9v���vۄ0ʛ<�9�!��&̷OZ�k�3�!�jåq�hd��s..0�����QqQ��0Y��@��a� �{�Wg��,$�}�]�����ܓ2����ތd
r~TůX��8)�=ga5��g��C��`�2C���u�:��VߖW�c�c7��T0݆���>_8���'ɊNY}�p�q�I�;3�y$6�?y'�s�	��
A�x�iS�zk||�X���M��E`�G�p����ܩ*u,w�1�Z\�>+$�\S�X����{2�OcB��l�Pq7/���ڛ�7^��_���h>..+��*�
��`��%���48&�6����½dxH�.Vj�5��Z`1|��жιc#���RCe����f�_�P�Y;�m�F�&+��� �C�6�b������k?� �i9��#�8G}��1�f�[��d*��5Y+��
r��m�������Nv�}�=�e{ѼIA�7�dd�.
�e���-2��./���qʐ�u��~� y���)�[yqe���='8�C����T�X�K_�%���N3A�q�(}�w����̞����,0�X�L�\�R���`�V+������8�
o5F�^���1����q0ck	�g��LDg�x��oc��M�_8@�w^LJ>?�*
�PE�=e
���3����`��LKFG�Q�}ނ�����B�5������β҂3���a�u�?@zx�1����Fn�����s�8Zc���U{񊇩UXj=���"Yx_9���90���"��B�|`E%٦�'�w&V��>�e�'lw�D+�C��|4�I�crB��-"�\��l8�7`��Ӛe��{���u���lj�!� �0�t$p���)Χ�u��r=�»���-ļSdH�E��p�֥|����B,�Mf󈏑��x;����7z����k�7\��\�1�a�����I�
5�f=��J/��@I6���;  �p����П�D@�y��.�h���b&�y�RF���D��q�*A!���^�7C��,GXUd}2��r��\r~�z��QLq:Q�\dq���, -�������d\�Hf�'�Y	w�����ER���Jx��q`Π ��)�Px���
�+#�M������(oTpHE�8��*�q���&CS�Ln�ޜw���W�ʁ��%L�P��l/x���v
cr�-�Yx���1�k��0d)�:�Vΐs�\F�,zf���¶�m	�U�R^#�%�^�Q�t��9�o��a�<��x�B^�^�Am�ڲ�t�?�o�cx��o�OzŦP���+�P|gJ�?GXZl�{�^c׬p�F�Y���!��̝9<X�
�z�y3����w�)B�qAһ�,1�<a�U���j=�io��$+��i�&Dh+V`٫HhG��?	e�k�J��s����N����k�r�����X��A/�c�An_��|H��4:dL�<�GXg�cXTT�n�*0q�	�ǜb4v�1n��՗x�g#{=f���y�z�c���q��Mq����r=�J���3
iS��:�
���҂�p�	���^�iM8r)��\�X'x�1]�ŠR`�>+��팢���w�Q@�x����2�d�Hך_x���X5 c��At�� ����
��~!��VP�fFi���|�2�
��x\P)�����Xc�U�pM��|eX��.�e�d���_ې��׌�"�l�z�V$�����e�F�8�b�ͻ�p:R������xZ�S�#�+�����
䧟��H�jv�,�,N2����8�nPh�J�6cv���x!���Sg��Ljehm���h8M��C��D��EE�{ĥ$�O~��&ֈt�1"iaIX.��޴�!��������N<\rJ��OpBs�@~�i a=���X�\	���#ͮ����;��J��
�[��_͞XK����6BQל��k�QS!A�K�!_&P��o����{J�H�܁��u����.������3T/x�#�/8�`uT���6�=��
iM��3�
�O9e�]�A�eK���F�{0�[��ى�K��2u$a��P.��.H�n���~�<F����$=��v�<�Lp���ު��:��!?��7�� �܁�8h/�]��5I۽�CB��X0F�b4�J��n���XO1�Xyr�ySdް1̵˚ф��~�3�c����7����˃ɛ|�f_�_SB%��4��n>�7��s:A�aAq��β�/�I����]��*�P���<�u�&Xu�J����U�f5�!�ݞ3R�f�9�+��h �Ʊ��IB�\.{�HK��� �U|d0���3o ,;��]3
���AYvf�A��h���.�Q�\@W^�c����y�~Z��	��t�H�!�7���W3�t	�q����H��/v	�a�*���(�{6�*��w�N.$����(:�N90����/8� �p����X���R6aF:˵�<��~S���zMz�|�6�w��(B�̣8<y��Xd����P_���~&U�K�>�!���������=c�6�d� �9pox�.x��N���)�<�]c�0A���q�yR���
��)jQX��<�n����h+1�VBA�%�h:veih��<�*�%��8U�\�J�T]���X&z�+��N�Zp�Ӱ]�w�`�|�\�?�Dd�xr��eM��X��G�Y@
#����&�R&�����q�Ƙ"��Lj��ܔŸs�MhAӞ/D#�ƽ�+��M\�}f�Lj=��q	6R��q���2��=LD��D�YۋIR)���a?X&h8���4�fy*s�����Dėz�x�TGn\?�51�4D��>]7��*T<�rp��>�:9�α��+gN�� �缑vy�
�"��נ*��������5@���ci~G4�Az�;e:�r.00in�mze�P��<c��ˉ�h�W���l/�"���5N9v��9~Q�\ *">N3x�p7u�ӂ����,��ÖW��{�Xl��Ƙ/Nd(~�����:]6rf�sUv�"�E���۹<`�`�Ѭ1����"t]��z�_
��\:����\�Zxpyڠ���!�bE��&Q�-T� 9M�\��f�|��+W�,I�P���"0��&�w�@	��
�}��j����s���p�}k!=7�;��$��Q�Ɉh��=粆ׯ�I(os'�98�4
B<��1�M�t‘�<�ʷ
Y����ȹz��0Ao��R"���B^9����2��A���Jz��?�y�u0�f��Lk�����8�pG�q�2/4w��w���=���$�~�#p�i�%Δ^��XT������&�0�9�����Z.�f9��{���YH�B�9BN�h���4b����I�}��'�ܡ�6���#��+�J��a�0ںף����]���#3m'����ʇ�˄K��E
8�⏦�j���5:K���rh9��)���z\!2@�)`T�.D<�x/X�JEl���P�h'é�T���P7G��l��Ky�}���
��c��&��nrpH���C�th�F�s�OJ��	S��i���6bBD�T:>�Y�LD�Ϻ�n}�N��ԟa��<á��n˓C���;`=��4x�,g*g=
�Ǭ,����mT�0p[�u�J.o�D�~:��a/#�^$�Č`��+�F��]&,�q��)1�*/A�
�aRY��
���8�A!�n��'Z8�Ǩ�x:��[ғ��x�BdT���=CUZ�|	����4��N�C :%��&��?;�@�t����.��'H��>2��Rp�(�H��}V��eTPW�'Wh��i��֨�?9����Ohҽ�j���&*a�u���&�E���K
�Br�F+�mW��tfm�)�f܉��Y-����s��ŮǤ���*
���bu���(hjq���Y��Ũ."�:=���Q���v��������TN���@���X��N����`:zq�.h�b�1V�$6aD���`���b۟�R�n�(�L�՗���J��9��27�����%�_�f�(�Hjz~pL��k��"��R��}�'�Xo�O�3+��x�t�DC��e�WɄ2Aÿ�N�m���J�lP뿜B��zL6�y,
Ej��6DRb��E�o�N����q�58��n�p����уQ������*br�k��G]�k�x�+[�yńБ�x*!�a�2�Z%`� ��)ۅ�+~�Fu�cы%���Js��Z�q���d�nkY�ֈr�1�)o;�iCF:65�;˒�Co9\��\;�B3xͶ���x�R�jciXp����e8�.��,�n��2�*C&��dtMc�Ȕ�m|�)Z��I˼��widgetkit/wk-scripts-6aaf33e5.js000064400000124234152177723720012441 0ustar00!function(e){function t(e,t){var i=jQuery.Deferred(),n=document.createElement("script");return n.async=!0,n.onload=function(){i.resolve(),t&&t(n)},n.onerror=function(){i.reject(e)},n.src=e,document.getElementsByTagName("head")[0].appendChild(n),i.promise()}angular.module("Fields",[]).directive("fieldMedia",["mediaPicker","mediaInfo",function(e,t){function i(i){var a=this;a.selectMedia=function(){e.select().then(function(e){i.media=e.url,i.height=e.height,i.width=e.width,i.title||(i.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}))})},a.selectPoster=function(){e.select().then(function(e){i.options||(i.options={}),i.options.poster=e.url})},a.isVideo=function(e){return!(!e||!(e.match(/\.(mp4|ogv|webm)$/)||e.match(/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i)||e.match(/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i)||e.match(/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i)))},i.$watch("media",function(){return i.options&&!angular.isArray(i.options)||(i.options={}),n[i.media]?(i.options.width=n[i.media].width,void(i.options.height=n[i.media].height)):void t(i.media,!0).then(function(e){i.height="",i.width="",Object.keys(n).length>0&&i.options.iframe&&!n[i.media]&&(i.options.iframe.width="",i.options.iframe.height=""),e.type&&(i.options.width=e.width,i.options.height=e.height,i.options.type=e.type,n[i.media]=e)})},!0),i.$watch("options.iframe",function(){i.options.iframe&&(i.options.width=i.options.iframe.width,i.options.height=i.options.iframe.height)},!0)}var n={};return{scope:{media:"=",options:"=?",title:"=?"},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                          <i class="uk-icon-photo"></i><input class="uk-width-1-1" ng-model="media">                                      </div>                                      <button class="uk-button" ng-click="vm.selectMedia()">Select</button>                                  </div>                                  <div class="uk-grid uk-margin-top">                                      <div class="uk-width-small-1-2">                                          <div class="uk-overlay">                                              <media-preview src="{{ media }}"></media-preview>                                              <div class="uk-overlay-panel uk-overlay-bottom uk-panel uk-panel-box" ng-show="options.type === \'iframe\'">                                                  <div class="uk-grid uk-grid-small uk-grid-width-1-3 uk-margin-small-top">                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-h"></i><input class="uk-width-1-1" type="text" title="Width" ng-model="options.iframe.width" placeholder="width"></div>                                                      <div class="uk-form-icon"><i class="uk-icon-arrows-v"></i><input class="uk-width-1-1" type="text" title="Height" ng-model="options.iframe.height" placeholder="height"></div>                                                  </div>                                              </div>                                          </div>                                      </div>                                      <div class="uk-width-small-1-2" ng-show="vm.isVideo(media)">                                          <div class="uk-margin-small-bottom" ng-show="options.poster"><media-preview src="{{ options.poster }}"></media-preview></div>                                          <a ng-click="vm.selectPoster()">Select Poster</button>                                          <a class="uk-margin-small-left" ng-show="options.poster" ng-click="(options.poster = \'\')">Reset</a>                                      </div>                                  </div>                               </div>'}}]).directive("fieldWysiwygeditor",["$timeout","mediaPicker","mediaInfo",function(e,t,i){return{restrict:"EA",require:"?ngModel",template:'<div><textarea name="wk_{{id}}" id="wk_{{id}}"></textarea></div>',link:function(i,n,a,o){if(window.tinyMCE){i.id=String(Math.ceil(1e3*Math.random()));var r=jQuery,l="wk_"+i.id,s=function(){var e,n,a=window.tinyMCE||window.WFEditor;window.WFEditor&&r("#"+l).after('<input type="hidden" id="wf_'+i.id+'_token" value="'+Math.random()+'">'),"object"==typeof Joomla&&(n=Joomla.getOptions&&Joomla.getOptions("plg_editor_tinymce",{}));var s=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar1||a.settings&&a.settings.toolbar1||"",d=n&&n.tinyMCE&&n.tinyMCE["default"].toolbar2||a.settings&&a.settings.toolbar2||"",c=n&&n.tinyMCE&&n.tinyMCE["default"].plugins||a.settings&&a.settings.plugins||"";!window.wp||s&&d&&c||(c||(c="charmap,colorpicker,hr,lists,media,paste,tabfocus,textcolor,fullscreen,wordpress,wpautoresize,wpeditimage,wpemoji,wpgallery,wplink,wpdialogs,wptextpattern,wpview"),s||(s="bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_more,spellchecker,dfw,wp_adv"),d||(d="formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help")),s.indexOf("wk_media")==-1&&(s+=" wk_media"),window.wp||window.WFEditor||s.indexOf("button-2Article")!=-1||(s+=" button-2Article"),window.wp||window.WFEditor||c.indexOf("jArticleButton")!=-1||(c+=" jArticleButton"),e=r.extend({},n&&n.tinyMCE&&n.tinyMCE["default"]||a.settings,{menubar:!1,plugins:c,toolbar1:s,toolbar2:d,width:"100%",height:500,relative_urls:n&&n.tinyMCE&&n.tinyMCE["default"].relative_urls||a.settings&&a.settings.relative_urls||!1,setup:function(e){e.addButton("wk_media",{text:"",icon:"image",onclick:function(){window.wp?t.select({editor:l}):t.select().then(function(t){var i=t.href,n=t.title,a=t.width,o=t.height;e.insertContent('<img src="'+i+'" alt="'+n+'" data-mce-src="'+i+'" width="'+a+'" height="'+o+'"></img>')})}}),4==tinyMCE.majorVersion?(e.on("change",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("input",function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.on("init",function(){e.setContent(o.$viewValue||"")})):(e.onChange.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onKeyUp.add(function(){o.$setViewValue(tinyMCE.get(l).getContent())}),e.onInit.add(function(){e.setContent(o.$viewValue||"")}))}});var u=new tinyMCE.Editor(l,e,tinyMCE.EditorManager);u.render(),o.$render=function(){try{u.setContent(o.$viewValue||""),r("#"+l).val(o.$viewValue||"")}catch(e){}},o.$render()};e(s)}}}}]).directive("fieldHtmleditor",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/assets/lib/codemirror/codemirror.js").then(function(){t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/htmleditor.min.js").then(function(){o.resolve()})})),o.promise()}var o;return{restrict:"EA",require:"?ngModel",link:function(t,n,o,r){a().then(function(){var a,l=jQuery("<textarea></textarea>"),s={mdparser:function(){}};s=jQuery.extend(!0,{},s,t.$eval(o.options)),n.after(l).hide();var d=function(){r.$render=function(){l.data("htmleditor")&&l.data("htmleditor").editor.setValue(r.$viewValue||"")},setTimeout(function(){a=e.htmleditor(l,s),a.editor.on("change",e.Utils.debounce(function(){r.$setViewValue(a.editor.getValue()),t.$root.$$phase||t.$apply()},50)),a.fit(),r.$render()})};i(d)})}}}]).directive("fieldLocation",["$timeout","$q",function(i,n){function a(){return o||(o=jQuery.Deferred(),t(widgetkit.config.adminBase+"/plugins/widgets/map/assets/marker-helper.js").then(function(){o.resolve()})),o.promise()}var o,r=0,l=function(){var e,t=function(){if(!e){e=n.defer();var t=document.createElement("script");t.async=!0,t.onload=function(){google.load("maps","3",{other_params:"libraries=places&key="+(window.GOOGLE_MAPS_API_KEY||""),callback:function(){google&&google.maps.places&&e.resolve()}})},t.onerror=function(){alert("Failed loading google maps api.")},t.src="https://www.google.com/jsapi",document.getElementsByTagName("head")[0].appendChild(t)}return e.promise};return t}();return{restrict:"EA",require:"?ngModel",scope:{latlng:"@"},replace:!0,template:'<div>                                    <div class="uk-alert uk-margin-small-bottom" ng-if="!APIKEY">Please add your custom Google Maps API Key in the <a href="'+widgetkit.config.settingsPage+'">Widgetkit settings</a>!</div>                                    <div class="uk-grid uk-grid-small">                                         <div class="uk-form uk-form-icon uk-margin-small-bottom uk-width-3-5">                                            <i class="uk-icon-search"></i><input class="uk-width-1-1">                                        </div>                                        <div class="uk-form uk-form-horizontal uk-margin-small-bottom uk-width-2-5">                                            <input class="uk-width-1-1" type="text" placeholder="Custom marker: URL or #000" ng-model="latlng.marker">                                        </div>                                    </div>                                    <div class="js-map" style="min-height:300px;">                                     Loading map...                                     </div>                                     <div class="uk-text-small uk-margin-small-top">LAT: <span class="uk-text-muted">{{ latlng.lat }}</span> LNG: <span class="uk-text-muted">{{ latlng.lng }}</span> <span ng-if="latlng.place">PLACE: <span class="uk-text-muted">{{ latlng.place.name }}</span></span></div>                                </div>',link:function(t,n,o,s){function d(e){var n=jQuery.extend({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1},s.$viewValue,e);s.$setViewValue(n),t.latlng=n,i(function(){t.$apply()})}var c;a().then(function(){l().then(function(){i(function(){var i,a,o,l="wk-location-"+ ++r,u=new google.maps.LatLng(53.55909862554551,9.998652343749995);t.latlng=s.$viewValue||{lat:u.lat(),lng:u.lng(),marker:"",place:!1},void 0===t.latlng.marker&&(t.latlng.marker=""),n.find(".js-map").attr("id",l),i=new google.maps.Map(document.getElementById(l),{zoom:6,center:u}),c=new google.maps.Marker({position:u,map:i,draggable:!0}),MapsMarkerHelper.setIcon(c,t.latlng.marker),google.maps.event.addListener(c,"dragend",function(){var e=c.getPosition();d({lat:e.lat(),lng:e.lng(),place:!1}),a.value=""}),e.$win.on("resize",function(){google.maps.event.trigger(i,"resize"),i.setCenter(c.getPosition())}),a=n.find("input")[0],o=new google.maps.places.Autocomplete(a),o.bindTo("bounds",i),google.maps.event.addListener(o,"place_changed",function(){var e=o.getPlace();if(e.geometry){e.geometry.viewport?i.fitBounds(e.geometry.viewport):i.setCenter(e.geometry.location),c.setPosition(e.geometry.location),a.value="";var t=c.getPosition();d({lat:t.lat(),lng:t.lng(),place:e})}}),google.maps.event.addDomListener(a,"keydown",function(e){13==e.keyCode&&e.preventDefault()}),t.$watch("latlng.marker",function(e){e&&d({marker:e}),MapsMarkerHelper.setIcon(c,e)}),s.$render=function(){try{if(s.$viewValue&&s.$viewValue.lat&&s.$viewValue.lng){var e=new google.maps.LatLng(s.$viewValue.lat,s.$viewValue.lng);c.setPosition(e),i.setCenter(e),s.$viewValue.marker!==t.latlng.marker&&d({marker:s.$viewValue.marker}),MapsMarkerHelper.setIcon(c,latlng.marker)}else d({lat:c.getPosition().lat(),lng:c.getPosition().lng(),marker:"",place:!1})}catch(n){}},s.$render()})})}),t.APIKEY=window.GOOGLE_MAPS_API_KEY||""}}}]).directive("fieldPathpicker",["mediaPicker","mediaInfo",function(e,t){function i(t){var i=this;i.selectPath=function(){filetypes=/\.*$/i,e.select({allowedFiletypes:filetypes}).then(function(e){t.path=e.url})},t.$watch("path",function(e){t.path=e},!0)}return{scope:{path:"="},restrict:"E",controller:["$scope",i],controllerAs:"vm",template:'<div>                                  <div class="uk-flex">                                      <div class="uk-form-icon uk-flex-item-1 uk-margin-small-right">                                        <i class="uk-icon-paperclip"></i><input class="uk-width-1-1" ng-model="path">                                      </div>                                      <button class="uk-button" ng-click="vm.selectPath()">Select</button>                                  </div>                               </div>'}}]).directive("fieldDate",["$timeout","$q",function(e,i){function n(){return a||(a=jQuery.Deferred(),t(widgetkit.config.adminBase+"/vendor/assets/uikit/js/components/datepicker.min.js").then(function(){a.resolve()})),a.promise()}var a;return{restrict:"E",require:"?ngModel",scope:{date:"@"},template:'<div class="uk-form-icon">                                  <i class="uk-icon-calendar"></i>                                  <input type="text" ng-model="date" data-uk-datepicker="{container: \'.wk-noconflict\'}">                               </div>',link:function(t,i,a,o){n().then(function(){function i(i){o.$setViewValue(i),t.date=i,e(function(){t.$apply()})}t.date=o.$viewValue||"",t.$watch("date",function(e){i(e)}),o.$render=function(){try{i(o.$viewValue)}catch(e){}},o.$render()}),window.MooTools&&(i.find("input")[0].hide=function(){return!1})}}}]).factory("Fields",function(){var e={text:{label:"Text",template:function(e,t){var i=angular.element('<input class="uk-width-1-1" type="text"  ng-model="'+e+'">').attr(t.attributes||{});return t&&t.icon&&(i=i.wrap('<div class="uk-form-icon uk-width-1-1"></div>').before('<i class="uk-icon-'+t.icon+'"></i>').parent()),i}},textarea:{label:"Textarea",template:function(e,t){return angular.element('<textarea id="wk-content" class="uk-width-1-1" ng-model="'+e+'" rows="10"></textarea>').attr(t.attributes||{})}},editor:{label:"Editor",template:function(e,t){var i=window.tinyMCE&&window.WK_SYSTEM_EDITOR?"wysiwygeditor":"htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},htmleditor:{label:"HTML Editor",template:function(e,t){var i="htmleditor";return angular.element("<field-"+i+' class="uk-width-1-1" ng-model="'+e+'" rows="10"></field-'+i+">")}},tags:{label:"Tags",template:function(e,t){return angular.element('<div class="uk-form-icon uk-width-1-1"><i class="uk-icon-tags"></i><input class="uk-width-1-1" type="text" ng-list ng-model="'+e+'" placeholder="tag, tag, ..."></div><div>').find("input").attr(t.attributes||{}).parent()}},"boolean":{label:"Boolean",template:function(e,t){return angular.element('<input type="checkbox" ng-model="'+e+'">').attr(t.attributes||{})}},media:{label:"Media",template:function(e,t){return'<field-media media="'+e+'"></field-media>'}},pathpicker:{label:"Pathpicker",template:function(e,t){return'<field-pathpicker path="'+e+'"></field-pathpicker>'}},location:{label:"Location",template:function(e,t){return'<field-location  ng-model="'+e+'"></field-location>'}},date:{label:"Date",template:function(e,t){return'<field-date ng-model="'+e+'"></field-date>'}}};return{register:function(t,i){e[t]=angular.extend({label:t,assets:[],template:function(){}},i)},exists:function(t){return!!e[t]},get:function(t){return e[t]},fields:function(){var t=[];return Object.keys(e).forEach(function(i){t.push({name:i,label:e[i].label})}),t}}}).directive("field",["$timeout","$compile","Fields",function(e,t,i){return{require:"?ngModel",restrict:"E",link:function(n,a,o,r){var l=function(){var e=angular.extend({},JSON.parse(o.options||"{}")),r=o.type||"text";if(i.exists(r)){var l,s=i.get(r);l=s.template(o.ngModel,e),l.then?l.then(function(e){t(a.html(e).contents())(n)}):t(a.html(l).contents())(n)}else t(a.html(i.get("text").template(o.ngModel)).contents())(n)};e(l)}}}])}(window.UIkit2||window.UIkit2wk);

angular.module("widgetkit",["Application","ngResource","ngTouch","Fields"]).value("name","widgetkit").value("UIkit",window.UIkit2||window.UIkit2wk).factory("Content",["$resource","Application",function(e,t){return e(t.url("/content/:id"),{},{query:{method:"GET",responseType:"json"},save:{method:"POST",responseType:"json"}})}]).filter("supported",["Application",function(e){return function(t,i){return i?t.filter(function(t){var o=e.config.types[t.type],r=i.item.filter(function(e){if(o.item.indexOf(e)!==-1)return!0}).length;return r==i.item.length}):t}}]).filter("ucwords",["Application",function(e){return function(e){return e.replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()})}}]).service("mediaInfo",["Application","$q",function(e,t){return function(i,o){i=i||"";var r,n,a={url:i,type:"",src:i&&!i.match(/^(https?:)?\//)?e.baseUrl()+"/"+i:i,provider:null,image:e.config.images.placeholder,width:null,height:null};if(i.match(/\.(jpe?g|png|gif|svg)$/i)?(a.type="image",a.image=a.src):i.match(/\.(mp3|ogg|wav)$/)?(a.type="audio",a.image=e.config.images.audio):i.match(/\.(mp4|ogv|webm)$/)?(a.type="video",a.image=e.config.images.video):(r=/(\/\/.*?)vimeo\.[a-z]+\/(?:\w*\/)*(\d+)/i.exec(i))?(a.provider="vimeo",a.type="iframe",a.src="//player.vimeo.com/video/"+r[2],a.image=e.config.images.iframe):((r=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)(.*)/i.exec(i))||(r=/(\/\/.*?youtu\.be)\/([^\?]+)(.*)/i.exec(i)))&&(a.provider="youtube",a.type="iframe",a.src="//www.youtube.com/embed/"+r[2]+r[3].replace(/^&/,"?"),a.image="//img.youtube.com/vi/"+r[2]+"/hqdefault.jpg"),o)switch(n=t.defer(),a.type){case"image":var u=new Image;u.onerror=function(){n.resolve(a)},u.onload=function(){a.width=u.width,a.height=u.height,n.resolve(a)},u.src=a.src;break;case"video":var c=angular.element('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",a.src).appendTo("body"),s=setInterval(function(){c[0].videoWidth&&(clearInterval(s),a.width=c[0].videoWidth,a.height=c[0].videoHeight,c.remove(),n.resolve(a))},20);break;case"iframe":"vimeo"==a.provider&&jQuery.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(a.url),jsonp:"callback",dataType:"jsonp",success:function(e){a.width=e.width,a.height=e.height,n.resolve(a)}}).fail(function(){n.resolve(a)}),"youtube"==a.provider&&jQuery.ajax({type:"GET",url:"//query.yahooapis.com/v1/public/yql",data:{q:"select * from json where url ='http://www.youtube.com/oembed?url="+encodeURI(a.url)+"'",format:"json"},dataType:"jsonp",success:function(e){if(e&&e.query&&e.query.results&&e.query.results.json){var t=jQuery(e.query.results.json.html);a.width=t.attr("width"),a.height=t.attr("height")}n.resolve(a)}}).fail(function(){n.resolve(a)});break;default:n.resolve(a)}return o?n.promise:a}}]).factory("httpInterceptor",["$q","UIkit",function(e,t){return{responseError:function(i){var o;return o=i.data&&i.data.message?i.data.message:i.statusText,t.notify(o,"danger"),e.reject(i)}}}]).config(["$httpProvider","$sceProvider",function(e,t){e.interceptors.push("httpInterceptor"),t.enabled(!1)}]),document.addEventListener("DOMContentLoaded",function(){jQuery("body").on("show.uk.modal",function(e){var t=jQuery(e.target);t.hasClass("uk-modal")&&t.data("modal")&&t.addClass("wk-noconflict")})});

!function(t,n){angular.module("widgetkit").run(["$rootScope","$rootElement","$timeout","$filter",function(e,o,a,i){function s(){r.find("#toolbar-apply button, #toolbar-save button").prop("disabled",o.find("form.ng-invalid").length)}n.parent.document.updateUploader=n.parent.document.updateUploader||function(){};var l=t("body.com_widgetkit"),c=l.find(".header .container-title").append('<h1 class="page-title"><span class="icon-widgetkit"></span>Widgetkit: <span></span></h1>').find(".page-title span").eq(1),r=l.find(".subhead .btn-toolbar"),p='<div class="btn-wrapper" id="toolbar-create"><button class="btn btn-small btn-success"></span>'+i("trans")("New")+"</button></div>",d='<div class="btn-wrapper" id="toolbar-apply"><button class="btn btn-small btn-success"><span class="icon-apply icon-white"></span> '+i("trans")("Save")+'</button></div>                           <div class="btn-wrapper" id="toolbar-save"><button class="btn btn-small"><span class="icon-save"></span> '+i("trans")("Save & Close")+'</button></div>                           <div class="btn-wrapper" id="toolbar-cancel"><button class="btn btn-small"><span class="icon-cancel"></span> '+i("trans")("Close")+"</button></div>",u='<div class="btn-wrapper" id="toolbar-options"><button class="btn btn-small"><span class="icon-options"></span> '+i("trans")("Options")+"</button></div>";r.on("click","#toolbar-create button",function(){o.scope().vm.createContent()}).on("click","#toolbar-apply",function(){o.scope().vm.saveContent()}).on("click","#toolbar-save",function(){var t=o.scope();t.vm.saveContent().$promise.then(function(){t.vm.setView("content")})}).on("click","#toolbar-cancel",function(){var t=o.scope();t.vm.setView("content"),t.$apply()}).on("click","#toolbar-options",function(){location.href="index.php?option=com_config&view=component&component=com_widgetkit"}),l.on("keyup",'[ng-model="content.name"]',s),e.$on("wk.change.view",function(t,n){a(function(){c.text(o.find("h2.js-header").text()),r.empty().html("content"==n?p:"contentEdit"==n?d:"").append(u),s()})})}]),t(function(){t(document).on("click",'[rel="widgetkit"], [aria-label="Widgetkit"]',function(e){e.preventDefault(),e.stopPropagation();for(var o=t(this);o.length&&!o.has("textarea").length;)o=o.parent();n.widgetkit.env.editor(o.find("textarea:first"))});var e=t(".view-module .widgetkit-widget, #modules-form .widgetkit-widget, #module-form .widgetkit-widget"),o=e.nextAll("input"),a={value:function(){try{return JSON.parse(o.val())}catch(t){return{}}},update:function(){var t=this.value().name;e.text(t?Translator.trans("Widget: %widget%",{widget:t}):Translator.trans("Select Widget"))}};e.on("click",function(t){t.preventDefault(),n.widgetkit.env.init("widget",a.value(),function(t){o.val(JSON.stringify(t)),a.update()})}),a.update()}),t(function(){if(n.MooTools){var e=Element.prototype.hide;Element.prototype.hide=function(){return t(this).is('[class*="uk-"]')?this:e.apply(this,[])}}})}(jQuery,window);

!function(e){function t(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}angular.module("widgetkit").service("mediaPicker",["$templateCache","$compile","$q","$rootScope","filterFilter","UIkit","mediaRequest","Application",function(n,i,o,r,l,c,a,d){var s,u,f,p,m,h,g=/\.(jpe?g|png|gif|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)$/i,w=!1,v={init:function(l){return l&&l.allowedFiletypes&&(w=l.allowedFiletypes),this.options=angular.extend({multiple:!1},l),m=o.defer(),u=e(n.get("media")),f=u.data("media-path"),p=i(u)(r).scope(),p.vm=this,p.selectItem=function(n,i){if(i.shiftKey&&h){t();for(var o,r=e(i.target).closest("li"),l=r.parent().children(),c=r.index()>h.index()?1:-1,a=1===c?h.index():r.index(),d=1===c?r.index():h.index(),s=a;s<=d;s++)o=l.eq(s).scope(),o[o.folder?"folder":"file"].selected=!0}else n.selected=!n.selected;h=e(i.target).closest("li")},this.open("").then(function(){if(window.widgetkit.env.modal){var t=window.widgetkit.env.modal.element.children(":first").hide();v.close=function(){t.show(),u.remove()},t.parent().append(u)}else v.modal=c.modal(e('<div class="uk-modal">').append(u).appendTo("body")).show(),v.close=function(){v.modal.hide()},c.domObserve(v.modal.element);v.initUpload()}),m.promise},initUpload:function(){var t=e("#wk-upload-progressbar"),n=t.find(".uk-progress-bar"),i={param:"Filedata[]",params:{"Content-Type":"multipart/form-data"},allow:"*.(jpeg|jpg|gif|png|svg|mp3|ogg|wav|mp4|wmv|ogv|webm)",before:function(e,t){e.action=a.url({task:"file.upload",tmpl:"component",format:"html",folder:s},!0)},loadstart:function(){n.css("width","0%").text("0%"),t.removeClass("uk-hidden")},progress:function(e){e=Math.ceil(e)+"%",n.css("width",e).text(e)},allcomplete:function(i){n.css("width","100%").text("100%"),e(i).find(".alert-message").each(function(t,n){c.notify(e(n).text(),"danger")}),setTimeout(function(){t.addClass("uk-hidden")},250),v.open(s)}};c.uploadSelect(e("#wk-upload-select"),i),c.uploadDrop(u,i)},open:function(t){return a.get({view:"mediaList",tmpl:"component",folder:t,layout:"details"}).success(function(n){h=null,p.media=[],p.breadcrumbs=[];var i=e(n).find("tbody tr");".."==i.first().find(".description").text().trim()&&(i=i.not(i[0])),i.each(function(){var n=e(this),i=n.find("td:first a").length?n.find("td:first a"):n.find("td:nth-child(2) a"),o=n.find("td :checkbox").val(),r=n.find("td.dimensions").text().trim().split(" x "),l=(t?t+"/":"")+o;p.media.push({title:o,path:l,url:(f?f+"/":"")+l,href:d.baseUrl()+"/"+(f?f+"/":"")+l,type:i.is("[target]")?"folder":"file",media:Boolean(l.match(g)),width:r[0],height:r[1],size:n.find("td.filesize").text().trim()})}),s=t;var o=(s?"/"+s:"").split("/");do p.breadcrumbs.unshift({path:o.join("/").substr(1),title:o.pop()});while(o.length);p.breadcrumbs[0].title="home"})},select:function(){var t=this.options,n=v.getSelected(),i=[],o=[],r=function(e){return e.replace(/[_-]/g," ").replace(/\.[^\.]+$/,"").replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1)})};if(n.forEach(function(e){e.media||w&&e.path.match(w)?(e.title=r(e.title),o.push(e)):i.push(e)}),i.length){var l=[];i.forEach(function(t){var n=new Promise(function(n,i){a.get({view:"mediaList",tmpl:"component",folder:t.title,layout:"details"}).success(function(i){var l=e(i).find("tbody tr");".."==l.first().find(".description").text().trim()&&(l=l.not(l[0])),l.each(function(){var n=e(this),i=n.find("td:first a"),l=n.find("td :checkbox").val(),c=n.find("td.dimensions").text().trim().split(" x "),a=(t.title?t.title+"/":"")+l;if(a.match(g)){var s={title:r(l),path:a,url:(f?f+"/":"")+a,href:d.baseUrl()+"/"+(f?f+"/":"")+a,type:i.is("[target]")?"folder":"file",media:Boolean(a.match(g)),width:c[0],height:c[1],size:n.find("td.filesize").text().trim()};o.push(s)}}),n()})});l.push(n)}),Promise.all(l).then(function(){m.resolve(t.multiple||!o.length?o:o[0]),v.close()})}else m.resolve(this.options.multiple||!o.length?o:o[0]),v.close()},addFolder:function(){var e=prompt("Folder Name");e&&a.post({task:"folder.create",foldername:e,folderbase:s}).success(function(){v.open(s)})},remove:function(){window.confirm("Are you sure?")&&a.post({task:"folder.delete",folder:s,rm:v.getSelected().map(function(e){return e.title})}).success(function(){v.open(s)})},getSelected:function(){return l(p.media,{selected:!0})}};return{select:function(e){return v.init(e)}}}]).service("mediaRequest",["$q","$http","Application",function(t,n,i){var o="index.php?option=com_media";return{get:function(e){return n.get(this.url(e))},post:function(t){return t[i.config.token]=1,n.post(o,e.param(t),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},url:function(t,n){return n&&(t[i.config.token]=1),o+"&"+e.param(t)}}}]),window.Promise=window.Promise||function(e,t){function n(e,t){return(typeof t)[0]==e}function i(r,l){return l=function c(a,d,s,u,f,p){if(u=c.q,a!=n)return i(function(e,t){u.push({p:this,r:e,j:t,1:a,0:d})});if(s&&n(e,s)|n(t,s))try{f=s.then}catch(m){d=0,s=m}if(n(e,f)){var h=function(e){return function(t){return f&&(f=0,c(n,e,t))}};try{f.call(s,h(1),d=h(0))}catch(m){d(m)}}else for(l=function(t,l){return n(e,t=d?t:l)?i(function(e,n){o(this,e,n,s,t)}):r},p=0;p<u.length;)f=u[p++],n(e,a=f[d])?o(f.p,f.r,f.j,s,a):(d?f.r:f.j)(s)},l.q=[],r.call(r={then:function(e,t){return l(e,t)},"catch":function(e){return l(0,e)}},function(e){l(n,1,e)},function(e){l(n,0,e)}),r}function o(i,o,r,l,c){setTimeout(function(){try{l=c(l),c=l&&n(t,l)|n(e,l)&&l.then,n(e,c)?l==i?r(TypeError()):c.call(l,o,r):o(l)}catch(a){r(a)}},0)}function r(e){return i(function(t){t(e)})}return i.resolve=r,i.reject=function(e){return i(function(t,n){n(e)})},i.all=function(e){return i(function(t,n,i,o){o=[],i=e.length||t(o),e.map(function(e,l){r(e).then(function(e){o[l]=e,i-=1,i||t(o)},n)})})},i}("f","o")}(jQuery);

!function(){window.tinyMCE&&!window.WFEditor&&(void 0==window.jSelectArticle&&(window.jSelectArticle=function(t,n,o,e,i,c){var l=c?' hreflang = "'+c+'"':"",d="<a"+l+' href="'+i+'">'+n+"</a>";jInsertEditorText(d,"jform_articletext"),jModalClose()}),tinyMCE.PluginManager.add("jArticleButton",function(t,n){t.addButton("button-2Article",{text:"Article",title:"Article",icon:"none icon-file-add",onclick:function(){var n={title:"Article",url:"index.php?option=com_content&view=articles&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500};t.windowManager.open(n)}})}),Joomla.getOptions&&(window.jInsertEditorText=function(t,n){tinyMCE.activeEditor.execCommand("mceInsertContent",!1,t)},tinyMCE.PluginManager.add("jMenuButton",function(t){t.addButton("button-3Menu",{text:"Menu",title:"Menu",icon:"none icon-share-alt",onclick:function(){t.windowManager.open({title:"Menu",url:"index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})}),tinyMCE.PluginManager.add("jContactButton",function(t){t.addButton("button-4Contact",{text:"Contact",title:"Contact",icon:"none icon-address",onclick:function(){t.windowManager.open({title:"Contact",url:"index.php?option=com_contact&view=contacts&layout=modal&tmpl=component&editor=dummy_editor",buttons:[{text:"Close",onclick:"close"}],width:800,height:500})}})})))}();

!function(){var t=function(t,e){e=e||t,e.widgets=[],t.data&&t.data.widgets&&(t.search=sessionStorage["widgetkit.widgets.filter"]?JSON.parse(sessionStorage["widgetkit.widgets.filter"]):{name:"",data:{_widget:{name:""}}},t.$watch("search",function(){sessionStorage["widgetkit.widgets.filter"]=JSON.stringify(angular.copy(t.search))}),e.widgets.push({name:"",label:Translator?Translator.trans("All"):"All"}),Object.keys(t.data.widgets).forEach(function(n){e.widgets.push(t.data.widgets[n])}))},e=function(e,n,a,i){var d=this,o=window.localStorage||{};d.viewmode=o["wk.content.viewmode"]||"list",d.include="",t(e,d),d.previewContent=function(t){return e.$emit("wk.preview.content",t).preview||e.data.types[t.type].icon},d.createContent=function(t){e.content=t||{name:"",type:"",data:{_widget:{}}},e.widget=null,d.setView("contentConfig")},d.editContent=function(t,n){var a,i=null,o=e.data.widgets;return t=angular.copy(t),a=t.data._widget,t.id||(angular.extend(t.data,e.data.types[t.type].data),t.id="new"),o[a.name]?(i=angular.copy(o[a.name]),i.data=a.data=angular.extend({},i.settings,a.data),e.content=t,e.widget=i,void d.setView("contentEdit",n)):void d.createContent(t)},d.saveContent=function(){return"new"==e.content.id&&delete e.content.id,i.save({id:e.content.id},{content:e.content},function(t){d.editContent(e.data.content[t.id]=t),a.notify(t.name+" saved.","success")})},d.copyContent=function(t){return t=angular.copy(t),t.id="",t.name+=" (copy)",i.save({id:t.id},{content:t},function(t){e.data.content[t.id]=t,t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget,a.notify(t.name+" copied.","success")})},d.deleteContent=function(t){confirm("Are you sure?")&&i["delete"]({id:t.id},function(){delete e.data.content[t.id]})},d.getWidget=function(t){return e.data.widgets[t.data._widget.name]},d.selectWidget=function(t){var n=e.content.data;n._widget.name!=t.name&&(n._widget.name=t.name,n._widget.data={})},d.setView=function(t,n){d.view=t,n&&(d.include=n),e.$emit("wk.change.view",t),a.init('[data-app="widgetkit"]')},d.setViewMode=function(t){d.viewmode=o["wk.content.viewmode"]=t},d.setView("content")};angular.module("widgetkit").controller("contentCtrl",["$scope","Application","UIkit","Content",function(t,n,a,i){var d=this;t.data=angular.extend({content:i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)})})},n.config),d.name="contentCtrl",e.call(this,t,n,a,i)}]).controller("pickerCtrl",["$scope","Application","Content","UIkit",function(n,a,i,d){var o=this;n.data=angular.extend({},a.config),n.data.content=i.query(function(t){angular.forEach(t,function(t,e){"$"!==e[0]&&(t.data=angular.extend({_widget:{}},t.data),t.data._widget=angular.isArray(t.data._widget)?{}:t.data._widget)});var e=n.data.content[a.env.attrs.id];e&&"editor"==o.mode&&(o.editContent(e,"content"),o.mode="edit"),a.env.modal.show()}),o.name="pickerCtrl",o.mode=a.env.mode,t(n,o),o.active=function(t){return t.id==a.env.attrs.id},o.update=function(t){a.env.update({id:t.id,name:t.name})},o.cancel=function(){a.env.cancel()},e.call(this,n,a,d,i)}])}();

angular.module("widgetkit").directive("mediaPreview",["mediaInfo",function(e){function i(i){var r=this;r.type=function(){return i.media=e(i.src),i.media.type},r.cleanUrl=function(e){return"string"==typeof e&&(e=e.replace("autoplay=1","autoplay=0")),e}}return{restrict:"E",scope:{src:"@"},controller:["$scope",i],controllerAs:"vm",template:'<div ng-switch="vm.type()">                           <audio ng-switch-when="audio" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></audio>                           <video ng-switch-when="video" ng-src="{{ media.src }}" controls="true" class="uk-responsive-width"></video>                           <iframe ng-switch-when="iframe" ng-src="{{ vm.cleanUrl(media.src) }}" frameborder="0" allowfullscreen="true" class="uk-responsive-width" width="800" height="600"></iframe>                           <img ng-switch-default ng-src="{{ media.src }}">                       </div>'}}]).directive("autofocus",["$timeout",function(e){var i=[];return{restrict:"A",link:function(r,t){i.push(t),e(function(){i[0][0].focus()})}}}]);

!function(t,e,n){function o(t){var n=e.tinymce.editors[t.attr("id")];return{getContent:function(){return n.getContent()},insertContent:function(t){n.execCommand("mceInsertContent",!1,t)},updateContent:function(t,e,o){var i=this.getContent();i=i.substring(0,e)+t+'<span id="tmp-wkid"></span>'+i.substring(o),n.setContent(i),n.selection.select(n.dom.select("#tmp-wkid")[0],!0),n.selection.collapse(!1),n.dom.remove("tmp-wkid",!1),n.focus()},getCursorPosition:function(){var t=n.selection.getBookmark(0),e="[data-mce-type=bookmark]",o=n.dom.select(e);n.selection.select(o[0]),n.selection.collapse();var i="######cursor######",r='<span id="'+i+'"></span>';n.selection.setContent(r);var s=n.getContent({format:"html"}),a=s.indexOf(r);return n.dom.remove(i,!1),n.selection.moveToBookmark(t),a}}}function i(t){return{getContent:function(){return t.val()},insertContent:function(e){this.updateContent(e,t.prop("selectionStart"),t.prop("selectionEnd"))},updateContent:function(e,n,o){var i=t.val(),r=n+e.length;i=i.substring(0,n)+e+i.substring(o),t.val(i),t[0].setSelectionRange(r,r),t.focus().trigger("change")},getCursorPosition:function(){return t.prop("selectionStart")}}}function r(t){var e=t.next()[0].CodeMirror;return{getContent:function(){return e.getValue()},insertContent:function(t){e.replaceRange(t,e.getCursor()),e.focus()},updateContent:function(t,n,o){e.replaceRange(t,this.translateOffset(n),this.translateOffset(o)),e.focus()},getCursorPosition:function(){return this.translatePosition(e.getCursor())},translatePosition:function(t){return e.getValue().split("\n",t.line).join("").length+t.line+t.ch},translateOffset:function(t){var n=e.getValue().substring(0,t).split("\n");return{line:n.length-1,ch:n[n.length-1].length}}}}function s(t){var n=e.ace.edit(t.parent().attr("id"));return{getContent:function(){return n.getValue()},insertContent:function(t){n.insert(t),n.focus()},updateContent:function(t,e,o){e=this.translateOffset(e),o=this.translateOffset(o);var i=n.getSelectionRange();i.setStart(e.row,e.column),i.setEnd(o.row,o.column),n.getSession().getDocument().replace(i,t),n.focus()},getCursorPosition:function(){return this.translatePosition(n.getSelection().getCursor())},translatePosition:function(t){return this.getContent().split("\n",t.row).join("").length+t.row+t.column},translateOffset:function(t){var e=this.getContent().substring(0,t).split("\n");return{row:e.length-1,column:e[e.length-1].length}}}}function a(e){var n=CKEDITOR.instances[e.attr("id")];return{getContent:function(){return n.getData()},insertContent:function(t){this.updateContent(t,this.getCursorPosition(),this.getCursorPosition())},updateContent:function(t,e,o){var i=n.getData();i=i.substring(0,e)+t+i.substring(o),n.setData(i)},getCursorPosition:function(){return"source"==n.mode?t(n.textarea.$).prop("selectionStart"):this.getCursorPositionInWYSIWYG()},getCursorPositionInWYSIWYG:function(){var t=n.getSelection().createBookmarks(),e="######cursor######",o='<span id="'+e+'">&nbsp;</span>',i=CKEDITOR.dom.element.createFromHtml(o);i.insertBefore(t[0].startNode);var r=this.getContent(),s=r.indexOf(o);return i.remove(),n.getSelection().selectBookmarks(t),s}}}var u={init:function(e,o,i){var r=t(this.tmpl).appendTo("body");this.mode=e,this.attrs=o,this.cb=i,this.modal=n.modal(r),this.modal.on("hide.uk.modal",function(){r.remove()}),n.domObserve(r,function(){var t=this;n.domObservers.forEach(function(e){e(t)})}),angular.bootstrap(r,["widgetkit"])},editor:function(t){var n;n=(e.WFEditor||e.JContentEditor||e.tinyMCE)&&!t.is(":visible")?new o(t):e.CodeMirror&&t.next()[0]&&t.next()[0].CodeMirror?new r(t):e.ace?new s(t):e.CKEDITOR?new a(t):new i(t);for(var u,l,g=n.getContent(),d=n.getCursorPosition(),f=/\[widgetkit([^\]]*)\]/gi;l=f.exec(g);)if(l.index<=d&&f.lastIndex>d){u=l[0];break}this.init("editor",c.parse("widgetkit",u).attrs,function(t){var e=new c({tag:"widgetkit",attrs:t}).string();u?n.updateContent(e,l.index,f.lastIndex):n.insertContent(e)})},update:function(t){this.cb(t),this.modal.hide()},cancel:function(){this.modal.hide()},tmpl:'<div class="uk-modal"><div style="width: 1000px;" class="uk-modal-dialog" ng-include="\'picker\'"></div></div>'},c=function(e){t.extend(this,{tag:"",attrs:{},type:"single",content:""},e)};t.extend(c,{parse:function(t,e){var n,o=this.regexp(t).exec(e),i={tag:t};return o&&(n=o[4]?"self-closing":o[6]?"closed":"single",i={tag:o[2],attrs:this.attrs(o[3]),type:n,content:o[5]}),new c(i)},attrs:function(t){var e,n=/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/g,o={};for(t=t.replace(/[\u00a0\u200b]/g," ");e=n.exec(t);)e[1]?o[e[1].toLowerCase()]=e[2]:e[3]?o[e[3].toLowerCase()]=e[4]:!e[5]||"true"!==e[6]&&"1"!==e[6]?!e[5]||"false"!==e[6]&&"0"!==e[6]?e[5]?o[e[5].toLowerCase()]=e[6]:e[7]?o[e[7]]=!0:e[8]&&(o[e[8]]=!0):o[e[5].toLowerCase()]=!1:o[e[5].toLowerCase()]=!0;return o},regexp:function(t){return new RegExp("\\[(\\[?)("+t+")(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*(?:\\[(?!\\/\\2\\])[^\\[]*)*)(\\[\\/\\2\\]))?)(\\]?)","g")}}),t.extend(c.prototype,{string:function(){var e="["+this.tag;return t.each(this.attrs,function(t,n){"boolean"==typeof n?e+=" "+t+"="+(n?1:0):""!==n&&(e+=" "+t+'="'+n+'"')}),"single"===this.type?e+"]":"self-closing"===this.type?e+" /]":(e+="]",this.content&&(e+=this.content),e+"[/"+this.tag+"]")}}),t(function(){t.extend(e.widgetkit,{env:u,shortcode:c})})}(jQuery,window,window.UIkit2||window.UIkit2wk);

angular.module("widgetkit").controller("customCtrl",["$scope","$timeout","UIkit","mediaInfo","mediaPicker","Fields","Application","Translator",function(e,t,i,n,a,o,d,l){e.content.data._fields||(e.content.data._fields=[]);var s,r=this,c=e.content.data._fields;e.content.data.items&&e.content.data.items.length||(e.content.data.items=[{media:""}]),e.content.data.hasOwnProperty("parse_shortcodes")||(e.content.data.parse_shortcodes=1),s=e.content.data.items,e.item=s[0],e.extrafields=c,r.corefields=d.config.types.custom.fields,r.fields=o.fields(),e.tinyMCE=window.tinyMCE||!1,r.previewItem=function(e){var t=e.options&&e.options.media&&e.options.media.poster;return n(t||e.media).image},r.addItem=function(t){e.item=t||{media:""},s.push(e.item)},r.importItems=function(){a.select({multiple:!0}).then(function(t){!t.length||1!=s.length||e.item.title&&e.item.media&&e.item.content||(s.length=0),angular.forEach(t,function(e){e.title=String(e.title).replace(/(-|_)/g," ").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(e){return e.toUpperCase()}),r.addItem({title:e.title,media:e.url,width:e.width,height:e.height})})})},r.editItem=function(t){e.item=t},r.deleteItem=function(t){s.splice(s.indexOf(t),1),e.item=s[0]},r.addField=function(e){return e=e||{type:"text",name:"field-x",label:"Field X"},r.corefields[e.name]&&(e.type=r.corefields[e.name].type,e.label=r.corefields[e.name].label),r.hasField(e.name)?void alert('Field name "'+e.name+'" is already in use.'):(s.forEach(function(t){t[e.name]||(t[e.name]="")}),void c.push(angular.copy(e)))},r.deleteField=function(e){confirm(l.trans("Are you sure you want to delete this field?"))&&(s.forEach(function(t){t[e.name]&&delete t[e.name]}),c.splice(c.indexOf(e),1))},r.hasField=function(e){if(["title","media","link"].indexOf(e)>-1)return!0;for(var t=0;t<c.length;t++)if(c[t].name==e)return!0;return!1},r.toggleEditFields=function(){r.editfields=!r.editfields,r.editfields||setTimeout(function(){window.dispatchEvent(new Event("resize"))},150),r.custom={field:{}},r.addCustomField=!1},r.getFieldOptions=function(e,t){var i={},n=r.corefields[e.name];return n&&n.options&&(i=angular.extend(i,n.options)),JSON.stringify(i)},e.$watch("content",function(t){var i=s.indexOf(e.item);s=t.data.items,e.item=s[i]}),i.$doc.trigger("ready.uk.dom"),i.$doc.on("change.uk.sortable",function(e,i,n){n&&void 0!==n&&(n=angular.element(n),t(function(){"js-content-items"==i.element[0].id&&s.splice(n.index(),0,s.splice(s.indexOf(n.scope().item),1)[0]),"js-fields-items"==i.element[0].id&&c.splice(n.index(),0,c.splice(c.indexOf(n.scope().field),1)[0])}))}),angular.isArray(e.widget.fields)&&e.widget.fields.forEach(function(e){e&&e.name&&!r.hasField(e.name)&&r.addField(e)}),i.init()}]).run(["$rootScope","mediaInfo",function(e,t){e.$on("wk.preview.content",function(e,i){if("custom"==i.type&&i.data.items.length){var n=i.data.items[0],a=n.options&&n.options.media&&n.options.media.poster;e.preview=t(a||n.media).image.replace(/preview(-.+\.svg)$/g,"content$1")}})}]);

angular.module("widgetkit").controller("twitterCtrl",["$scope","$element","Application","$http",function(t,n,i,e){var o,c=this;c.connected=n[0].getAttribute("data-status"),c.loading=!1,c.openPopup=function(t){o=window.open(t,"","width=800,height=500")},t.$watch("twitter.pin",function(t){if(t&&!(t.length<7)){c.loading=!0;var n=e.post(i.url("twitter_auth"),{pin:t});n.success(function(){c.connected=!0,c.loading=!1,c.pin="",o&&o.close()}),n.error(function(){c.loading=!1})}}),c.disconnect=function(){c.loading=!0;var t=e["delete"](i.url("twitter_auth"));t.success(function(){c.connected=!1,c.loading=!1}),t.error(function(){c.loading=!1})}}]);

angular.module("widgetkit").controller("folderCtrl",["$scope",function(e){}]).run(["$rootScope","mediaInfo",function(e,r){e.$on("wk.preview.content",function(e,o){if("folder"==o.type&&o.data.prepared){var n,t=JSON.parse(o.data.prepared);t.length>0&&(n=t[0].media,e.preview=r(n).image)}})}]);

widgetkit/angular-36d0eb12.js000064400000404542152177723720011700 0ustar00/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(R,W,u){'use strict';function S(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.20/"+(b?b+"/":"")+a;for(a=1;a<arguments.length;a++){c=c+(1==a?"?":"&")+"p"+(a-1)+"=";var d=encodeURIComponent,e;e=arguments[a];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;c+=d(e)}return Error(c)}}function Ta(b){if(null==b||Ua(b))return!1;var a="length"in Object(b)&&b.length;
return b.nodeType===qa&&a?!0:x(b)||H(b)||0===a||"number"===typeof a&&0<a&&a-1 in b}function r(b,a,c){var d,e;if(b)if(z(b))for(d in b)"prototype"==d||"length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d)||a.call(c,b[d],d,b);else if(H(b)||Ta(b)){var f="object"!==typeof b;d=0;for(e=b.length;d<e;d++)(f||d in b)&&a.call(c,b[d],d,b)}else if(b.forEach&&b.forEach!==r)b.forEach(a,c,b);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d,b);return b}function Ed(b,a,c){for(var d=Object.keys(b).sort(),
e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function lc(b){return function(a,c){b(c,a)}}function Fd(){return++rb}function mc(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function w(b){for(var a=b.$$hashKey,c=1,d=arguments.length;c<d;c++){var e=arguments[c];if(e)for(var f=Object.keys(e),g=0,h=f.length;g<h;g++){var l=f[g];b[l]=e[l]}}mc(b,a);return b}function aa(b){return parseInt(b,10)}function Ob(b,a){return w(Object.create(b),a)}function A(){}function ra(b){return b}function ea(b){return function(){return b}}
function D(b){return"undefined"===typeof b}function y(b){return"undefined"!==typeof b}function L(b){return null!==b&&"object"===typeof b}function x(b){return"string"===typeof b}function Y(b){return"number"===typeof b}function ha(b){return"[object Date]"===Ca.call(b)}function z(b){return"function"===typeof b}function Va(b){return"[object RegExp]"===Ca.call(b)}function Ua(b){return b&&b.window===b}function Wa(b){return b&&b.$evalAsync&&b.$watch}function Xa(b){return"boolean"===typeof b}function nc(b){return!(!b||
!(b.nodeName||b.prop&&b.attr&&b.find))}function Gd(b){var a={};b=b.split(",");var c;for(c=0;c<b.length;c++)a[b[c]]=!0;return a}function wa(b){return K(b.nodeName||b[0]&&b[0].nodeName)}function Ya(b,a){var c=b.indexOf(a);0<=c&&b.splice(c,1);return a}function Da(b,a,c,d){if(Ua(b)||Wa(b))throw Ja("cpws");if(a){if(b===a)throw Ja("cpi");c=c||[];d=d||[];if(L(b)){var e=c.indexOf(b);if(-1!==e)return d[e];c.push(b);d.push(a)}if(H(b))for(var f=a.length=0;f<b.length;f++)e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),
d.push(e)),a.push(e);else{var g=a.$$hashKey;H(a)?a.length=0:r(a,function(b,c){delete a[c]});for(f in b)b.hasOwnProperty(f)&&(e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),d.push(e)),a[f]=e);mc(a,g)}}else if(a=b)H(b)?a=Da(b,[],c,d):ha(b)?a=new Date(b.getTime()):Va(b)?(a=new RegExp(b.source,b.toString().match(/[^\/]*$/)[0]),a.lastIndex=b.lastIndex):L(b)&&(e=Object.create(Object.getPrototypeOf(b)),a=Da(b,e,c,d));return a}function sa(b,a){if(H(b)){a=a||[];for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}else if(L(b))for(c in a=
a||{},b)if("$"!==c.charAt(0)||"$"!==c.charAt(1))a[c]=b[c];return a||b}function ia(b,a){if(b===a)return!0;if(null===b||null===a)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&"object"==c)if(H(b)){if(!H(a))return!1;if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ia(b[d],a[d]))return!1;return!0}}else{if(ha(b))return ha(a)?ia(b.getTime(),a.getTime()):!1;if(Va(b))return Va(a)?b.toString()==a.toString():!1;if(Wa(b)||Wa(a)||Ua(b)||Ua(a)||H(a)||ha(a)||Va(a))return!1;c={};for(d in b)if("$"!==
d.charAt(0)&&!z(b[d])){if(!ia(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c.hasOwnProperty(d)&&"$"!==d.charAt(0)&&a[d]!==u&&!z(a[d]))return!1;return!0}return!1}function Za(b,a,c){return b.concat($a.call(a,c))}function oc(b,a){var c=2<arguments.length?$a.call(arguments,2):[];return!z(a)||a instanceof RegExp?a:c.length?function(){return arguments.length?a.apply(b,Za(c,arguments,0)):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}}function Hd(b,a){var c=a;"string"===typeof b&&
"$"===b.charAt(0)&&"$"===b.charAt(1)?c=u:Ua(a)?c="$WINDOW":a&&W===a?c="$DOCUMENT":Wa(a)&&(c="$SCOPE");return c}function ab(b,a){if("undefined"===typeof b)return u;Y(a)||(a=a?2:null);return JSON.stringify(b,Hd,a)}function pc(b){return x(b)?JSON.parse(b):b}function xa(b){b=B(b).clone();try{b.empty()}catch(a){}var c=B("<div>").append(b).html();try{return b[0].nodeType===bb?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function qc(b){try{return decodeURIComponent(b)}catch(a){}}
function rc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=qc(c[0]),y(d)&&(b=y(c[1])?qc(c[1]):!0,sc.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Pb(b){var a=[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))}):a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ea(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ea(b,a){return encodeURIComponent(b).replace(/%40/gi,
"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Id(b,a){var c,d,e=tb.length;b=B(b);for(d=0;d<e;++d)if(c=tb[d]+a,x(c=b.attr(c)))return c;return null}function Jd(b,a){var c,d,e={};r(tb,function(a){a+="app";!c&&b.hasAttribute&&b.hasAttribute(a)&&(c=b,d=b.getAttribute(a))});r(tb,function(a){a+="app";var e;!c&&(e=b.querySelector("["+a.replace(":","\\:")+"]"))&&(c=e,d=e.getAttribute(a))});c&&(e.strictDi=null!==Id(c,"strict-di"),
a(c,d?[d]:[],e))}function tc(b,a,c){L(c)||(c={});c=w({strictDi:!1},c);var d=function(){b=B(b);if(b.injector()){var d=b[0]===W?"document":xa(b);throw Ja("btstrpd",d.replace(/</,"&lt;").replace(/>/,"&gt;"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=cb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",
d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;R&&e.test(R.name)&&(c.debugInfoEnabled=!0,R.name=R.name.replace(e,""));if(R&&!f.test(R.name))return d();R.name=R.name.replace(f,"");ca.resumeBootstrap=function(b){r(b,function(b){a.push(b)});return d()};z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function Kd(){R.name="NG_ENABLE_DEBUG_INFO!"+R.name;R.location.reload()}function Ld(b){b=ca.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")}
function uc(b,a){a=a||"_";return b.replace(Md,function(b,d){return(d?a:"")+b.toLowerCase()})}function Nd(){var b;vc||((ta=R.jQuery)&&ta.fn.on?(B=ta,w(ta.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=ta.cleanData,ta.cleanData=function(a){var c;if(Qb)Qb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ta._data(e,"events"))&&c.$destroy&&ta(e).triggerHandler("$destroy");b(a)}):B=T,ca.element=B,vc=!0)}function Rb(b,a,c){if(!b)throw Ja("areq",
a||"?",c||"required");return b}function La(b,a,c){c&&H(b)&&(b=b[b.length-1]);Rb(z(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function wc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g<f;g++)d=a[g],b&&(b=(e=b)[d]);return!c&&z(b)?oc(e,b):b}function ub(b){var a=b[0];b=b[b.length-1];var c=[a];do{a=a.nextSibling;if(!a)break;c.push(a)}while(a!==b);return B(c)}function ja(){return Object.create(null)}
function Od(b){function a(a,b,c){return a[b]||(a[b]=c())}var c=S("$injector"),d=S("ng");b=a(b,"angular",Object);b.$$minErr=b.$$minErr||S;return a(b,"module",function(){var b={};return function(f,g,h){if("hasOwnProperty"===f)throw d("badname","module");g&&b.hasOwnProperty(f)&&(b[f]=null);return a(b,f,function(){function a(c,d,e,f){f||(f=b);return function(){f[e||"push"]([c,d,arguments]);return t}}if(!g)throw c("nomod",f);var b=[],d=[],e=[],q=a("$injector","invoke","push",d),t={_invokeQueue:b,_configBlocks:d,
_runBlocks:e,requires:g,name:f,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:q,run:function(a){e.push(a);return this}};h&&q(h);return t})}})}function Pd(b){w(b,{bootstrap:tc,copy:Da,extend:w,equals:ia,
element:B,forEach:r,injector:cb,noop:A,bind:oc,toJson:ab,fromJson:pc,identity:ra,isUndefined:D,isDefined:y,isString:x,isFunction:z,isObject:L,isNumber:Y,isElement:nc,isArray:H,version:Qd,isDate:ha,lowercase:K,uppercase:vb,callbacks:{counter:0},getTestability:Ld,$$minErr:S,$$csp:db,reloadWithDebugInfo:Kd});eb=Od(R);try{eb("ngLocale")}catch(a){eb("ngLocale",[]).provider("$locale",Rd)}eb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Sd});a.provider("$compile",xc).directive({a:Td,
input:yc,textarea:yc,form:Ud,script:Vd,select:Wd,style:Xd,option:Yd,ngBind:Zd,ngBindHtml:$d,ngBindTemplate:ae,ngClass:be,ngClassEven:ce,ngClassOdd:de,ngCloak:ee,ngController:fe,ngForm:ge,ngHide:he,ngIf:ie,ngInclude:je,ngInit:ke,ngNonBindable:le,ngPluralize:me,ngRepeat:ne,ngShow:oe,ngStyle:pe,ngSwitch:qe,ngSwitchWhen:re,ngSwitchDefault:se,ngOptions:te,ngTransclude:ue,ngModel:ve,ngList:we,ngChange:xe,pattern:zc,ngPattern:zc,required:Ac,ngRequired:Ac,minlength:Bc,ngMinlength:Bc,maxlength:Cc,ngMaxlength:Cc,
ngValue:ye,ngModelOptions:ze}).directive({ngInclude:Ae}).directive(wb).directive(Dc);a.provider({$anchorScroll:Be,$animate:Ce,$browser:De,$cacheFactory:Ee,$controller:Fe,$document:Ge,$exceptionHandler:He,$filter:Ec,$interpolate:Ie,$interval:Je,$http:Ke,$httpBackend:Le,$location:Me,$log:Ne,$parse:Oe,$rootScope:Pe,$q:Qe,$$q:Re,$sce:Se,$sceDelegate:Te,$sniffer:Ue,$templateCache:Ve,$templateRequest:We,$$testability:Xe,$timeout:Ye,$window:Ze,$$rAF:$e,$$asyncCallback:af,$$jqLite:bf})}])}function fb(b){return b.replace(cf,
function(a,b,d,e){return e?d.toUpperCase():d}).replace(df,"Moz$1")}function Fc(b){b=b.nodeType;return b===qa||!b||9===b}function Gc(b,a){var c,d,e=a.createDocumentFragment(),f=[];if(Sb.test(b)){c=c||e.appendChild(a.createElement("div"));d=(ef.exec(b)||["",""])[1].toLowerCase();d=ka[d]||ka._default;c.innerHTML=d[1]+b.replace(ff,"<$1></$2>")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Za(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});
return e}function T(b){if(b instanceof T)return b;var a;x(b)&&(b=N(b),a=!0);if(!(this instanceof T)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new T(b)}if(a){a=W;var c;b=(c=gf.exec(b))?[a.createElement(c[1])]:(c=Gc(b,a))?c.childNodes:[]}Hc(this,b)}function Ub(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d<e;d++)yb(c[d])}function Ic(b,a,c,d){if(y(d))throw Tb("offargs");var e=(d=zb(b))&&d.events,f=d&&d.handle;if(f)if(a)r(a.split(" "),
function(a){if(y(c)){var d=e[a];Ya(d||[],c);if(d&&0<d.length)return}b.removeEventListener(a,f,!1);delete e[a]});else for(a in e)"$destroy"!==a&&b.removeEventListener(a,f,!1),delete e[a]}function yb(b,a){var c=b.ng339,d=c&&Ab[c];d&&(a?delete d.data[a]:(d.handle&&(d.events.$destroy&&d.handle({},"$destroy"),Ic(b)),delete Ab[c],b.ng339=u))}function zb(b,a){var c=b.ng339,c=c&&Ab[c];a&&!c&&(b.ng339=c=++hf,c=Ab[c]={events:{},data:{},handle:u});return c}function Vb(b,a,c){if(Fc(b)){var d=y(c),e=!d&&a&&!L(a),
f=!a;b=(b=zb(b,!e))&&b.data;if(d)b[a]=c;else{if(f)return b;if(e)return b&&b[a];w(b,a)}}}function Bb(b,a){return b.getAttribute?-1<(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" "):!1}function Cb(b,a){a&&b.setAttribute&&r(a.split(" "),function(a){b.setAttribute("class",N((" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+N(a)+" "," ")))})}function Db(b,a){if(a&&b.setAttribute){var c=(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");
r(a.split(" "),function(a){a=N(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});b.setAttribute("class",N(c))}}function Hc(b,a){if(a)if(a.nodeType)b[b.length++]=a;else{var c=a.length;if("number"===typeof c&&a.window!==a){if(c)for(var d=0;d<c;d++)b[b.length++]=a[d]}else b[b.length++]=a}}function Jc(b,a){return Eb(b,"$"+(a||"ngController")+"Controller")}function Eb(b,a,c){9==b.nodeType&&(b=b.documentElement);for(a=H(a)?a:[a];b;){for(var d=0,e=a.length;d<e;d++)if((c=B.data(b,a[d]))!==u)return c;b=b.parentNode||
11===b.nodeType&&b.host}}function Kc(b){for(xb(b,!0);b.firstChild;)b.removeChild(b.firstChild)}function Lc(b,a){a||xb(b);var c=b.parentNode;c&&c.removeChild(b)}function jf(b,a){a=a||R;if("complete"===a.document.readyState)a.setTimeout(b);else B(a).on("load",b)}function Mc(b,a){var c=Fb[a.toLowerCase()];return c&&Nc[wa(b)]&&c}function kf(b,a){var c=b.nodeName;return("INPUT"===c||"TEXTAREA"===c)&&Oc[a]}function lf(b,a){var c=function(c,e){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=
a[e||c.type],g=f?f.length:0;if(g){if(D(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};1<g&&(f=sa(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||f[l].call(b,c)}};c.elem=b;return c}function bf(){this.$get=function(){return w(T,{hasClass:function(b,a){b.attr&&(b=b[0]);
return Bb(b,a)},addClass:function(b,a){b.attr&&(b=b[0]);return Db(b,a)},removeClass:function(b,a){b.attr&&(b=b[0]);return Cb(b,a)}})}}function Na(b,a){var c=b&&b.$$hashKey;if(c)return"function"===typeof c&&(c=b.$$hashKey()),c;c=typeof b;return c="function"==c||"object"==c&&null!==b?b.$$hashKey=c+":"+(a||Fd)():c+":"+b}function gb(b,a){if(a){var c=0;this.nextUid=function(){return++c}}r(b,this.put,this)}function mf(b){return(b=b.toString().replace(Pc,"").match(Qc))?"function("+(b[1]||"").replace(/[\s\r\n]+/,
" ")+")":"fn"}function cb(b,a){function c(a){return function(b,c){if(L(b))r(b,lc(a));else return a(b,c)}}function d(a,b){Ma(a,"service");if(z(b)||H(b))b=q.instantiate(b);if(!b.$get)throw Fa("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=s.invoke(b,this);if(D(c))throw Fa("undef",a);return c}}function f(a,b,c){return d(a,{$get:!1!==c?e(a,b):b})}function g(a){var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=q.get(e[0]);f[e[1]].apply(f,
e[2])}}if(!n.get(a)){n.put(a,!0);try{x(a)?(c=eb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):z(a)?b.push(q.invoke(a)):H(a)?b.push(q.invoke(a)):La(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Fa("modulerr",a,e.stack||e.message||e);}}});return b}function h(b,c){function d(a,e){if(b.hasOwnProperty(a)){if(b[a]===l)throw Fa("cdep",a+" <- "+k.join(" <- "));return b[a]}try{return k.unshift(a),
b[a]=l,b[a]=c(a,e)}catch(f){throw b[a]===l&&delete b[a],f;}finally{k.shift()}}function e(b,c,f,g){"string"===typeof f&&(g=f,f=null);var k=[],l=cb.$$annotate(b,a,g),h,q,p;q=0;for(h=l.length;q<h;q++){p=l[q];if("string"!==typeof p)throw Fa("itkn",p);k.push(f&&f.hasOwnProperty(p)?f[p]:d(p,g))}H(b)&&(b=b[h]);return b.apply(c,k)}return{invoke:e,instantiate:function(a,b,c){var d=Object.create((H(a)?a[a.length-1]:a).prototype||null);a=e(a,d,b,c);return L(a)||z(a)?a:d},get:d,annotate:cb.$$annotate,has:function(a){return p.hasOwnProperty(a+
"Provider")||b.hasOwnProperty(a)}}}a=!0===a;var l={},k=[],n=new gb([],!0),p={$provide:{provider:c(d),factory:c(f),service:c(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:c(function(a,b){return f(a,ea(b),!1)}),constant:c(function(a,b){Ma(a,"constant");p[a]=b;t[a]=b}),decorator:function(a,b){var c=q.get(a+"Provider"),d=c.$get;c.$get=function(){var a=s.invoke(d,c);return s.invoke(b,null,{$delegate:a})}}}},q=p.$injector=h(p,function(a,b){ca.isString(b)&&k.push(b);
throw Fa("unpr",k.join(" <- "));}),t={},s=t.$injector=h(t,function(a,b){var c=q.get(a+"Provider",b);return s.invoke(c.$get,c,u,a)});r(g(b),function(a){s.invoke(a||A)});return s}function Be(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===wa(a))return b=a,!0});return b}function f(b){if(b){b.scrollIntoView();var c;c=g.yOffset;z(c)?c=c():nc(c)?(c=c[0],c="fixed"!==
a.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Y(c)||(c=0);c&&(b=b.getBoundingClientRect().top,a.scrollBy(0,b-c))}else a.scrollTo(0,0)}function g(){var a=c.hash(),b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=a.document;b&&d.$watch(function(){return c.hash()},function(a,b){a===b&&""===a||jf(function(){d.$evalAsync(g)})});return g}]}function af(){this.$get=["$$rAF","$timeout",function(b,a){return b.supported?function(a){return b(a)}:
function(b){return a(b,0,!1)}}]}function nf(b,a,c,d){function e(a){try{a.apply(null,$a.call(arguments,1))}finally{if(m--,0===m)for(;C.length;)try{C.pop()()}catch(b){c.error(b)}}}function f(a,b){(function da(){r($,function(a){a()});I=b(da,a)})()}function g(){h();l()}function h(){a:{try{M=t.state;break a}catch(a){}M=void 0}M=D(M)?null:M;ia(M,P)&&(M=P);P=M}function l(){if(G!==n.url()||E!==M)G=n.url(),E=M,r(X,function(a){a(n.url(),M)})}function k(a){try{return decodeURIComponent(a)}catch(b){return a}}
var n=this,p=a[0],q=b.location,t=b.history,s=b.setTimeout,F=b.clearTimeout,v={};n.isMock=!1;var m=0,C=[];n.$$completeOutstandingRequest=e;n.$$incOutstandingRequestCount=function(){m++};n.notifyWhenNoOutstandingRequests=function(a){r($,function(a){a()});0===m?a():C.push(a)};var $=[],I;n.addPollFn=function(a){D(I)&&f(100,s);$.push(a);return a};var M,E,G=q.href,O=a.find("base"),Q=null;h();E=M;n.url=function(a,c,e){D(e)&&(e=null);q!==b.location&&(q=b.location);t!==b.history&&(t=b.history);if(a){var f=
E===e;if(G===a&&(!d.history||f))return n;var g=G&&Ga(G)===Ga(a);G=a;E=e;if(!d.history||g&&f){if(!g||Q)Q=a;c?q.replace(a):g?(c=q,e=a.indexOf("#"),a=-1===e?"":a.substr(e),c.hash=a):q.href=a}else t[c?"replaceState":"pushState"](e,"",a),h(),E=M;return n}return Q||q.href.replace(/%27/g,"'")};n.state=function(){return M};var X=[],ba=!1,P=null;n.onUrlChange=function(a){if(!ba){if(d.history)B(b).on("popstate",g);B(b).on("hashchange",g);ba=!0}X.push(a);return a};n.$$checkUrlChange=l;n.baseHref=function(){var a=
O.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var fa={},y="",la=n.baseHref();n.cookies=function(a,b){var d,e,f,g;if(a)b===u?p.cookie=encodeURIComponent(a)+"=;path="+la+";expires=Thu, 01 Jan 1970 00:00:00 GMT":x(b)&&(d=(p.cookie=encodeURIComponent(a)+"="+encodeURIComponent(b)+";path="+la).length+1,4096<d&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"));else{if(p.cookie!==y)for(y=p.cookie,d=y.split("; "),fa={},f=0;f<d.length;f++)e=
d[f],g=e.indexOf("="),0<g&&(a=k(e.substring(0,g)),fa[a]===u&&(fa[a]=k(e.substring(g+1))));return fa}};n.defer=function(a,b){var c;m++;c=s(function(){delete v[c];e(a)},b||0);v[c]=!0;return c};n.defer.cancel=function(a){return v[a]?(delete v[a],F(a),e(A),!0):!1}}function De(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new nf(b,d,a,c)}]}function Ee(){this.$get=function(){function b(b,d){function e(a){a!=p&&(q?q==a&&(q=a.n):q=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,
b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw S("$cacheFactory")("iid",b);var g=0,h=w({},d,{id:b}),l={},k=d&&d.capacity||Number.MAX_VALUE,n={},p=null,q=null;return a[b]={put:function(a,b){if(k<Number.MAX_VALUE){var c=n[a]||(n[a]={key:a});e(c)}if(!D(b))return a in l||g++,l[a]=b,g>k&&this.remove(q.key),b},get:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;e(b)}return l[a]},remove:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;b==p&&(p=b.p);b==q&&(q=b.n);f(b.n,b.p);delete n[a]}delete l[a];
g--},removeAll:function(){l={};g=0;n={};p=q=null},destroy:function(){n=h=l=null;delete a[b]},info:function(){return w({},h,{size:g})}}}var a={};b.info=function(){var b={};r(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Ve(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function xc(b,a){function c(a,b){var c=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,d={};r(a,function(a,e){var f=a.match(c);if(!f)throw ma("iscp",b,e,a);d[e]={mode:f[1][0],collection:"*"===
f[2],optional:"?"===f[3],attrName:f[4]||e}});return d}var d={},e=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,f=/(([\w\-]+)(?:\:([^;]+))?;?)/,g=Gd("ngSrc,ngSrcset,src,srcset"),h=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/;this.directive=function p(a,e){Ma(a,"directive");x(a)?(Rb(e,"directiveFactory"),d.hasOwnProperty(a)||(d[a]=[],b.factory(a+"Directive",["$injector","$exceptionHandler",function(b,e){var f=[];r(d[a],function(d,g){try{var h=b.invoke(d);z(h)?h={compile:ea(h)}:!h.compile&&h.link&&
(h.compile=ea(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||a;h.require=h.require||h.controller&&h.name;h.restrict=h.restrict||"EA";L(h.scope)&&(h.$$isolateBindings=c(h.scope,h.name));f.push(h)}catch(l){e(l)}});return f}])),d[a].push(e)):r(a,lc(p));return this};this.aHrefSanitizationWhitelist=function(b){return y(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()};
var k=!0;this.debugInfoEnabled=function(a){return y(a)?(k=a,this):k};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,c,s,F,v,m,C,$,I,M){function E(a,b){try{a.addClass(b)}catch(c){}}function G(a,b,c,d,e){a instanceof B||(a=B(a));r(a,function(b,c){b.nodeType==bb&&b.nodeValue.match(/\S+/)&&(a[c]=B(b).wrap("<span></span>").parent()[0])});var f=O(a,b,a,c,d,e);G.$$addScopeClass(a);
var g=null;return function(b,c,d){Rb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("<div>").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);G.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function O(a,b,c,d,e,f){function g(a,
c,d,e){var f,l,k,q,p,s,t;if(m)for(t=Array(c.length),q=0;q<h.length;q+=3)f=h[q],t[f]=c[f];else t=c;q=0;for(p=h.length;q<p;)l=t[h[q++]],c=h[q++],f=h[q++],c?(c.scope?(k=a.$new(),G.$$addScopeInfo(B(l),k)):k=a,s=c.transcludeOnThisElement?Q(a,c.transclude,e,c.elementTranscludeOnThisElement):!c.templateOnThisElement&&e?e:!e&&b?Q(a,b):null,c(f,k,l,d,s)):f&&f(a,l.childNodes,u,e)}for(var h=[],l,k,q,p,m,s=0;s<a.length;s++){l=new Yb;k=X(a[s],[],l,0===s?d:u,e);(f=k.length?fa(k,a[s],l,b,c,null,[],[],f):null)&&
f.scope&&G.$$addScopeClass(l.$$element);l=f&&f.terminal||!(q=a[s].childNodes)||!q.length?null:O(q,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(s,f,l),p=!0,m=m||f;f=null}return p?g:null}function Q(a,b,c,d){return function(d,e,f,g,h){d||(d=a.$new(!1,h),d.$$transcluded=!0);return b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})}}function X(a,b,c,d,g){var h=c.$attr,l;switch(a.nodeType){case qa:la(b,ya(wa(a)),"E",d,g);for(var k,
q,p,m=a.attributes,s=0,t=m&&m.length;s<t;s++){var M=!1,I=!1;k=m[s];l=k.name;q=N(k.value);k=ya(l);if(p=U.test(k))l=l.replace(Rc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});var F=k.replace(/(Start|End)$/,"");D(F)&&k===F+"Start"&&(M=l,I=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6));k=ya(l.toLowerCase());h[k]=l;if(p||!c.hasOwnProperty(k))c[k]=q,Mc(a,k)&&(c[k]=!0);Pa(a,b,q,k,p);la(b,k,"A",d,g,M,I)}a=a.className;L(a)&&(a=a.animVal);if(x(a)&&""!==a)for(;l=f.exec(a);)k=ya(l[2]),
la(b,k,"C",d,g)&&(c[k]=N(l[3])),a=a.substr(l.index+l[0].length);break;case bb:za(b,a.nodeValue);break;case 8:try{if(l=e.exec(a.nodeValue))k=ya(l[1]),la(b,k,"M",d,g)&&(c[k]=N(l[2]))}catch(v){}}b.sort(da);return b}function ba(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ma("uterdir",b,c);a.nodeType==qa&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return B(d)}function P(a,b,c){return function(d,e,f,g,h){e=ba(e[0],
b,c);return a(d,e,f,g,h)}}function fa(a,d,e,f,g,l,k,p,m){function s(a,b,c,d){if(a){c&&(a=P(a,c,d));a.require=J.require;a.directiveName=da;if(Q===J||J.$$isolateScope)a=Y(a,{isolateScope:!0});k.push(a)}if(b){c&&(b=P(b,c,d));b.require=J.require;b.directiveName=da;if(Q===J||J.$$isolateScope)b=Y(b,{isolateScope:!0});p.push(b)}}function M(a,b,c,d){var e,f="data",g=!1,l=c,k;if(x(b)){k=b.match(h);b=b.substring(k[0].length);k[3]&&(k[1]?k[3]=null:k[1]=k[3]);"^"===k[1]?f="inheritedData":"^^"===k[1]&&(f="inheritedData",
l=c.parent());"?"===k[2]&&(g=!0);e=null;d&&"data"===f&&(e=d[b])&&(e=e.instance);e=e||l[f]("$"+b+"Controller");if(!e&&!g)throw ma("ctreq",b,a);return e||null}H(b)&&(e=[],r(b,function(b){e.push(M(a,b,c,d))}));return e}function I(a,c,f,g,l){function h(a,b,c){var d;Wa(a)||(c=b,b=a,a=u);A&&(d=C);c||(c=A?X.parent():X);return l(a,b,d,c,Wb)}var m,s,t,E,C,ib,X,P;d===f?(P=e,X=e.$$element):(X=B(f),P=new Yb(X,e));Q&&(E=c.$new(!0));l&&(ib=h,ib.$$boundTransclude=l);O&&($={},C={},r(O,function(a){var b={$scope:a===
Q||a.$$isolateScope?E:c,$element:X,$attrs:P,$transclude:ib};t=a.controller;"@"==t&&(t=P[a.name]);b=v(t,b,!0,a.controllerAs);C[a.name]=b;A||X.data("$"+a.name+"Controller",b.instance);$[a.name]=b}));if(Q){G.$$addScopeInfo(X,E,!0,!(na&&(na===Q||na===Q.$$originalDirective)));G.$$addScopeClass(X,!0);g=$&&$[Q.name];var ba=E;g&&g.identifier&&!0===Q.bindToController&&(ba=g.instance);r(E.$$isolateBindings=Q.$$isolateBindings,function(a,d){var e=a.attrName,f=a.optional,g,l,h,k;switch(a.mode){case "@":P.$observe(e,
function(a){ba[d]=a});P.$$observers[e].$$scope=c;P[e]&&(ba[d]=b(P[e])(c));break;case "=":if(f&&!P[e])break;l=F(P[e]);k=l.literal?ia:function(a,b){return a===b||a!==a&&b!==b};h=l.assign||function(){g=ba[d]=l(c);throw ma("nonassign",P[e],Q.name);};g=ba[d]=l(c);f=function(a){k(a,ba[d])||(k(a,g)?h(c,a=ba[d]):ba[d]=a);return g=a};f.$stateful=!0;f=a.collection?c.$watchCollection(P[e],f):c.$watch(F(P[e],f),null,l.literal);E.$on("$destroy",f);break;case "&":l=F(P[e]),ba[d]=function(a){return l(c,a)}}})}$&&
(r($,function(a){a()}),$=null);g=0;for(m=k.length;g<m;g++)s=k[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib);var Wb=c;Q&&(Q.template||null===Q.templateUrl)&&(Wb=E);a&&a(Wb,f.childNodes,u,l);for(g=p.length-1;0<=g;g--)s=p[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib)}m=m||{};for(var E=-Number.MAX_VALUE,C,O=m.controllerDirectives,$,Q=m.newIsolateScopeDirective,na=m.templateDirective,fa=m.nonTlbTranscludeDirective,la=!1,D=!1,A=m.hasElementTranscludeDirective,
w=e.$$element=B(d),J,da,V,hb=f,za,K=0,R=a.length;K<R;K++){J=a[K];var Pa=J.$$start,U=J.$$end;Pa&&(w=ba(d,Pa,U));V=u;if(E>J.priority)break;if(V=J.scope)J.templateUrl||(L(V)?(Oa("new/isolated scope",Q||C,J,w),Q=J):Oa("new/isolated scope",Q,J,w)),C=C||J;da=J.name;!J.templateUrl&&J.controller&&(V=J.controller,O=O||{},Oa("'"+da+"' controller",O[da],J,w),O[da]=J);if(V=J.transclude)la=!0,J.$$tlb||(Oa("transclusion",fa,J,w),fa=J),"element"==V?(A=!0,E=J.priority,V=w,w=e.$$element=B(W.createComment(" "+da+": "+
e[da]+" ")),d=w[0],T(g,$a.call(V,0),d),hb=G(V,f,E,l&&l.name,{nonTlbTranscludeDirective:fa})):(V=B(Ub(d)).contents(),w.empty(),hb=G(V,f));if(J.template)if(D=!0,Oa("template",na,J,w),na=J,V=z(J.template)?J.template(w,e):J.template,V=Sc(V),J.replace){l=J;V=Sb.test(V)?Tc(Xb(J.templateNamespace,N(V))):[];d=V[0];if(1!=V.length||d.nodeType!==qa)throw ma("tplrt",da,"");T(g,w,d);R={$attr:{}};V=X(d,[],R);var aa=a.splice(K+1,a.length-(K+1));Q&&y(V);a=a.concat(V).concat(aa);S(e,R);R=a.length}else w.html(V);if(J.templateUrl)D=
!0,Oa("template",na,J,w),na=J,J.replace&&(l=J),I=of(a.splice(K,a.length-K),w,e,g,la&&hb,k,p,{controllerDirectives:O,newIsolateScopeDirective:Q,templateDirective:na,nonTlbTranscludeDirective:fa}),R=a.length;else if(J.compile)try{za=J.compile(w,e,hb),z(za)?s(null,za,Pa,U):za&&s(za.pre,za.post,Pa,U)}catch(pf){c(pf,xa(w))}J.terminal&&(I.terminal=!0,E=Math.max(E,J.priority))}I.scope=C&&!0===C.scope;I.transcludeOnThisElement=la;I.elementTranscludeOnThisElement=A;I.templateOnThisElement=D;I.transclude=hb;
m.hasElementTranscludeDirective=A;return I}function y(a){for(var b=0,c=a.length;b<c;b++)a[b]=Ob(a[b],{$$isolateScope:!0})}function la(b,e,f,g,l,h,k){if(e===l)return null;l=null;if(d.hasOwnProperty(e)){var q;e=a.get(e+"Directive");for(var m=0,s=e.length;m<s;m++)try{q=e[m],(g===u||g>q.priority)&&-1!=q.restrict.indexOf(f)&&(h&&(q=Ob(q,{$$start:h,$$end:k})),b.push(q),l=q)}catch(I){c(I)}}return l}function D(b){if(d.hasOwnProperty(b))for(var c=a.get(b+"Directive"),e=0,f=c.length;e<f;e++)if(b=c[e],b.multiElement)return!0;
return!1}function S(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(E(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function of(a,b,c,d,e,f,g,l){var h=[],k,q,p=b[0],m=a.shift(),t=Ob(m,{templateUrl:null,transclude:null,
replace:null,$$originalDirective:m}),I=z(m.templateUrl)?m.templateUrl(b,c):m.templateUrl,M=m.templateNamespace;b.empty();s(I).then(function(s){var F,v;s=Sc(s);if(m.replace){s=Sb.test(s)?Tc(Xb(M,N(s))):[];F=s[0];if(1!=s.length||F.nodeType!==qa)throw ma("tplrt",m.name,I);s={$attr:{}};T(d,b,F);var C=X(F,[],s);L(m.scope)&&y(C);a=C.concat(a);S(c,s)}else F=p,b.html(s);a.unshift(t);k=fa(a,F,c,e,b,m,f,g,l);r(d,function(a,c){a==F&&(d[c]=b[0])});for(q=O(b[0].childNodes,e);h.length;){s=h.shift();v=h.shift();
var G=h.shift(),P=h.shift(),C=b[0];if(!s.$$destroyed){if(v!==p){var $=v.className;l.hasElementTranscludeDirective&&m.replace||(C=Ub(F));T(G,B(v),C);E(B(C),$)}v=k.transcludeOnThisElement?Q(s,k.transclude,P):P;k(q,s,C,d,v)}}h=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(h?h.push(b,c,d,a):(k.transcludeOnThisElement&&(a=Q(b,k.transclude,e)),k(q,b,c,d,a)))}}function da(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function Oa(a,b,c,d){if(b)throw ma("multidir",
b.name,c.name,a,xa(d));}function za(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&G.$$addBindingClass(a);return function(a,c){var e=c.parent();b||G.$$addBindingClass(e);G.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function Xb(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=W.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==
b)return $.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return $.RESOURCE_URL}function Pa(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var k=b(d,!0,h,f);if(k){if("multiple"===e&&"select"===wa(a))throw ma("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers={});if(l.test(e))throw ma("nodomevents");var p=g[e];p!==d&&(k=p&&b(p,!0,h,f),d=p);k&&(g[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope||
a).$watch(k,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e,a)}))}}}})}}function T(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,l;if(a)for(g=0,l=a.length;g<l;g++)if(a[g]==d){a[g++]=c;l=g+e-1;for(var h=a.length;g<h;g++,l++)l<h?a[g]=a[l]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=W.createDocumentFragment();a.appendChild(d);B(c).data(B(d).data());ta?(Qb=!0,ta.cleanData([d])):delete B.cache[d[B.expando]];d=1;for(e=b.length;d<e;d++)f=b[d],B(f).remove(),
a.appendChild(f),delete b[d];b[0]=c;b.length=1}function Y(a,b){return w(function(){return a.apply(null,arguments)},a,b)}function Z(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(l){c(l,xa(d))}}var Yb=function(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a};Yb.prototype={$normalize:ya,$addClass:function(a){a&&0<a.length&&I.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&I.removeClass(this.$$element,a)},$updateClass:function(a,
b){var c=Uc(a,b);c&&c.length&&I.addClass(this.$$element,c);(c=Uc(b,a))&&c.length&&I.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=this.$$element[0],g=Mc(f,a),l=kf(f,a),f=a;g?(this.$$element.prop(a,b),e=g):l&&(this[l]=b,f=l);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=uc(a,"-"));g=wa(this.$$element);if("a"===g&&"href"===a||"img"===g&&"src"===a)this[a]=b=M(b,"src"===a);else if("img"===g&&"srcset"===a){for(var g="",l=N(b),h=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,h=/\s/.test(l)?
h:/(,)/,l=l.split(h),h=Math.floor(l.length/2),k=0;k<h;k++)var q=2*k,g=g+M(N(l[q]),!0),g=g+(" "+N(l[q+1]));l=N(l[2*k]).split(/\s/);g+=M(N(l[0]),!0);2===l.length&&(g+=" "+N(l[1]));this[a]=b=g}!1!==d&&(null===b||b===u?this.$$element.removeAttr(e):this.$$element.attr(e,b));(a=this.$$observers)&&r(a[f],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=ja()),e=d[a]||(d[a]=[]);e.push(b);m.$evalAsync(function(){!e.$$inter&&c.hasOwnProperty(a)&&b(c[a])});
return function(){Ya(e,b)}}};var V=b.startSymbol(),na=b.endSymbol(),Sc="{{"==V||"}}"==na?ra:function(a){return a.replace(/\{\{/g,V).replace(/}}/g,na)},U=/^ngAttr[A-Z]/;G.$$addBindingInfo=k?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:A;G.$$addBindingClass=k?function(a){E(a,"ng-binding")}:A;G.$$addScopeInfo=k?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:A;G.$$addScopeClass=k?function(a,b){E(a,b?"ng-isolate-scope":
"ng-scope")}:A;return G}]}function ya(b){return fb(b.replace(Rc,""))}function Uc(b,a){var c="",d=b.split(/\s+/),e=a.split(/\s+/),f=0;a:for(;f<d.length;f++){for(var g=d[f],h=0;h<e.length;h++)if(g==e[h])continue a;c+=(0<c.length?" ":"")+g}return c}function Tc(b){b=B(b);var a=b.length;if(1>=a)return b;for(;a--;)8===b[a].nodeType&&qf.call(b,a,1);return b}function Fe(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");L(a)?w(b,a):b[a]=c};this.allowGlobals=function(){a=
!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!L(a.$scope))throw S("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var n,p,q;l=!0===l;k&&x(k)&&(q=k);if(x(g)){k=g.match(c);if(!k)throw rf("ctrlfmt",g);p=k[1];q=q||k[3];g=b.hasOwnProperty(p)?b[p]:wc(h.$scope,p,!0)||(a?wc(e,p,!0):u);La(g,p,!0)}if(l)return l=(H(g)?g[g.length-1]:g).prototype,n=Object.create(l||null),q&&f(h,q,n,p||g.name),w(function(){d.invoke(g,n,h,p);return n},{instance:n,identifier:q});
n=d.instantiate(g,h,p);q&&f(h,q,n,p||g.name);return n}}]}function Ge(){this.$get=["$window",function(b){return B(b.document)}]}function He(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Zb(b,a){if(x(b)){var c=b.replace(sf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(Vc))||(d=(d=c.match(tf))&&uf[d[0]].test(c));d&&(b=pc(c))}}return b}function Wc(b){var a=ja(),c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=K(N(b.substr(0,
e)));d=N(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Xc(b){var a=L(b)?b:u;return function(c){a||(a=Wc(b));return c?(c=a[K(c)],void 0===c&&(c=null),c):a}}function Yc(b,a,c,d){if(z(d))return d(b,a,c);r(d,function(d){b=d(b,a,c)});return b}function Ke(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return L(a)&&"[object File]"!==Ca.call(a)&&"[object Blob]"!==Ca.call(a)&&"[object FormData]"!==Ca.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
post:sa($b),put:sa($b),patch:sa($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=w({},a);b.data=a.data?Yc(a.data,a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};r(a,function(a,d){z(a)?(b=
a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ca.isObject(a))throw S("$http")("badreq",a);var e=w({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=w({},a.headers),f,g,c=w({},c.common,c[K(a.method)]);a:for(f in c){a=K(f);for(g in e)if(K(g)===a)continue a;e[f]=c[f]}return d(e)}(a);e.method=vb(e.method);var f=[function(a){var d=a.headers,e=Yc(a.data,Xc(d),u,a.transformRequest);D(e)&&r(d,function(a,b){"content-type"===K(b)&&
delete d[b]});D(a.withCredentials)&&!D(b.withCredentials)&&(a.withCredentials=b.withCredentials);return n(a,e).then(c,c)},u],g=h.when(e);for(r(t,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a,"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data,
b.status,b.headers,e)});return g};return g}function n(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}E&&(200<=b&&300>b?E.put(Q,[b,c,Wc(d),e]):E.remove(Q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?I.resolve:I.reject)({data:a,status:b,headers:Xc(d),config:c,statusText:e})}function n(a){m(a.data,a.status,sa(a.headers()),a.statusText)}function t(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var I=h.defer(),M=I.promise,
E,G,O=c.headers,Q=p(c.url,c.params);k.pendingRequests.push(c);M.then(t,t);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=L(c.cache)?c.cache:L(b.cache)?b.cache:q);E&&(G=E.get(Q),y(G)?G&&z(G.then)?G.then(n,n):H(G)?m(G[1],G[0],sa(G[2]),G[3]):m(G,200,{},"OK"):E.put(Q,M));D(G)&&((G=Zc(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:u)&&(O[c.xsrfHeaderName||b.xsrfHeaderName]=G),d(c.method,Q,f,l,O,c.timeout,c.withCredentials,c.responseType));return M}function p(a,b){if(!b)return a;
var c=[];Ed(b,function(a,b){null===a||D(a)||(H(a)||(a=[a]),r(a,function(a){L(a)&&(a=ha(a)?a.toISOString():ab(a));c.push(Ea(b)+"="+Ea(a))}))});0<c.length&&(a+=(-1==a.indexOf("?")?"?":"&")+c.join("&"));return a}var q=f("$http"),t=[];r(c,function(a){t.unshift(x(a)?l.get(a):l.invoke(a))});k.pendingRequests=[];(function(a){r(arguments,function(a){k[a]=function(b,c){return k(w(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){k[a]=function(b,c,d){return k(w(d||
{},{method:a,url:b,data:c}))}})})("post","put","patch");k.defaults=b;return k}]}function vf(){return new R.XMLHttpRequest}function Le(){this.$get=["$browser","$window","$document",function(b,a,c){return wf(b,vf,b.defer,a.angular.callbacks,c[0])}]}function wf(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),n=null;f.type="text/javascript";f.src=a;f.async=!0;n=function(a){f.removeEventListener("load",n,!1);f.removeEventListener("error",n,!1);e.body.removeChild(f);f=null;var g=-1,t="unknown";
a&&("load"!==a.type||d[b].called||(a={type:"error"}),t=a.type,g="error"===a.type?404:200);c&&c(g,t)};f.addEventListener("load",n,!1);f.addEventListener("error",n,!1);e.body.appendChild(f);return n}return function(e,h,l,k,n,p,q,t){function s(){m&&m();C&&C.abort()}function F(a,d,e,f,g){I!==u&&c.cancel(I);m=C=null;a(d,e,f,g);b.$$completeOutstandingRequest(A)}b.$$incOutstandingRequestCount();h=h||b.url();if("jsonp"==K(e)){var v="_"+(d.counter++).toString(36);d[v]=function(a){d[v].data=a;d[v].called=!0};
var m=f(h.replace("JSON_CALLBACK","angular.callbacks."+v),v,function(a,b){F(k,a,d[v].data,"",b);d[v]=A})}else{var C=a();C.open(e,h,!0);r(n,function(a,b){y(a)&&C.setRequestHeader(b,a)});C.onload=function(){var a=C.statusText||"",b="response"in C?C.response:C.responseText,c=1223===C.status?204:C.status;0===c&&(c=b?200:"file"==Aa(h).protocol?404:0);F(k,c,b,C.getAllResponseHeaders(),a)};e=function(){F(k,-1,null,null,"")};C.onerror=e;C.onabort=e;q&&(C.withCredentials=!0);if(t)try{C.responseType=t}catch($){if("json"!==
t)throw $;}C.send(l||null)}if(0<p)var I=c(s,p);else p&&z(p.then)&&p.then(s)}}function Ie(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(a){return"\\\\\\"+a}function g(f,g,t,s){function F(c){return c.replace(k,b).replace(n,a)}function v(a){try{var b=a;a=t?e.getTrusted(t,b):e.valueOf(b);var c;if(s&&!y(a))c=a;else if(null==a)c="";else{switch(typeof a){case "string":break;
case "number":a=""+a;break;default:a=ab(a)}c=a}return c}catch(g){c=ac("interr",f,g.toString()),d(c)}}s=!!s;for(var m,C,r=0,I=[],M=[],E=f.length,G=[],O=[];r<E;)if(-1!=(m=f.indexOf(b,r))&&-1!=(C=f.indexOf(a,m+h)))r!==m&&G.push(F(f.substring(r,m))),r=f.substring(m+h,C),I.push(r),M.push(c(r,v)),r=C+l,O.push(G.length),G.push("");else{r!==E&&G.push(F(f.substring(r)));break}if(t&&1<G.length)throw ac("noconcat",f);if(!g||I.length){var Q=function(a){for(var b=0,c=I.length;b<c;b++){if(s&&D(a[b]))return;G[O[b]]=
a[b]}return G.join("")};return w(function(a){var b=0,c=I.length,e=Array(c);try{for(;b<c;b++)e[b]=M[b](a);return Q(e)}catch(g){a=ac("interr",f,g.toString()),d(a)}},{exp:f,expressions:I,$$watchDelegate:function(a,b,c){var d;return a.$watchGroup(M,function(c,e){var f=Q(c);z(b)&&b.call(this,f,c!==e?d:f,a);d=f},c)}})}}var h=b.length,l=a.length,k=new RegExp(b.replace(/./g,f),"g"),n=new RegExp(a.replace(/./g,f),"g");g.startSymbol=function(){return b};g.endSymbol=function(){return a};return g}]}function Je(){this.$get=
["$rootScope","$window","$q","$$q",function(b,a,c,d){function e(e,h,l,k){var n=a.setInterval,p=a.clearInterval,q=0,t=y(k)&&!k,s=(t?d:c).defer(),F=s.promise;l=y(l)?l:0;F.then(null,null,e);F.$$intervalId=n(function(){s.notify(q++);0<l&&q>=l&&(s.resolve(q),p(F.$$intervalId),delete f[F.$$intervalId]);t||b.$apply()},h);f[F.$$intervalId]=s;return F}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):
!1};return e}]}function Rd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}}function bc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]);
return b.join("/")}function $c(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||xf[c.protocol]||null}function ad(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=rc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ua(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ga(b){var a=b.indexOf("#");
return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function cc(b,a,c){this.$$html5=!0;c=c||"";$c(b,this);this.$$parse=function(b){var c=ua(a,b);if(!x(c))throw Hb("ipthprfx",b,a);ad(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),
!0;var f,g;(f=ua(b,d))!==u?(g=f,g=(f=ua(c,f))!==u?a+(ua("/",f)||f):b+g):(f=ua(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function dc(b,a,c){$c(b,this);this.$$parse=function(d){var e=ua(b,d)||ua(a,d),f;D(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",D(e)&&(b=d,this.replace())):(f=ua(c,e),D(f)&&(f=e));ad(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=
Pb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ga(b)==Ga(a)?(this.$$parse(a),!0):!1}}function bd(b,a,c){this.$$html5=!0;dc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ga(d)?f=d:(g=ua(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),
e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Ib(b){return function(){return this[b]}}function cd(b,a){return function(c){if(D(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Me(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return Xa(b)?(a.enabled=b,this):L(b)?(Xa(b.enabled)&&(a.enabled=b.enabled),Xa(b.requireBase)&&
(a.requireBase=b.requireBase),Xa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),q;if(a.enabled){if(!n&&a.requireBase)throw Hb("nobase");q=p.substring(0,p.indexOf("/",
p.indexOf("//")+2))+(n||"/");n=e.history?cc:bd}else q=Ga(p),n=dc;var t=q.substr(0,Ga(q).lastIndexOf("/")+1);k=new n(q,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var s=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var l=e.prop("href"),h=e.attr("href")||e.attr("xlink:href");L(l)&&"[object SVGAnimatedString]"===l.toString()&&(l=
Aa(l.animVal).href);s.test(l)||!l||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(l,h)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(p)&&d.url(k.absUrl(),!0);var F=!0;d.onUrlChange(function(a,b){D(ua(t,a))?g.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,
!1,e)):(F=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,q=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(F||q)F=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(q&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Ne(){var b=!0,a=this;this.debugEnabled=function(a){return y(a)?(b=
a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),
debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function va(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ga("isecfld",a);return b}function dd(b,a){b+="";if(!x(b))throw ga("iseccst",a);return b}function oa(b,a){if(b){if(b.constructor===b)throw ga("isecfn",a);if(b.window===b)throw ga("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ga("isecdom",a);if(b===Object)throw ga("isecobj",
a);}return b}function ec(b){return b.constant}function jb(b,a,c,d,e){oa(b,e);oa(a,e);c=c.split(".");for(var f,g=0;1<c.length;g++){f=va(c.shift(),e);var h=0===g&&a&&a[f]||b[f];h||(h={},b[f]=h);b=oa(h,e)}f=va(c.shift(),e);oa(b[f],e);return b[f]=d}function Qa(b){return"constructor"==b}function ed(b,a,c,d,e,f,g){va(b,f);va(a,f);va(c,f);va(d,f);va(e,f);var h=function(a){return oa(a,f)},l=g||Qa(b)?h:ra,k=g||Qa(a)?h:ra,n=g||Qa(c)?h:ra,p=g||Qa(d)?h:ra,q=g||Qa(e)?h:ra;return function(f,g){var h=g&&g.hasOwnProperty(b)?
g:f;if(null==h)return h;h=l(h[b]);if(!a)return h;if(null==h)return u;h=k(h[a]);if(!c)return h;if(null==h)return u;h=n(h[c]);if(!d)return h;if(null==h)return u;h=p(h[d]);return e?null==h?u:h=q(h[e]):h}}function yf(b,a){return function(c,d){return b(c,d,oa,a)}}function zf(b,a,c){var d=a.expensiveChecks,e=d?Af:Bf,f=e[b];if(f)return f;var g=b.split("."),h=g.length;if(a.csp)f=6>h?ed(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=u,a=f;while(e<
h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;r(g,function(a,b){va(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Qa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ea(l);k&&(a=yf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return jb(a,d,b,c,b)};return e[b]=f}function fc(b){return z(b.valueOf)?b.valueOf():Cf.call(b)}function Oe(){var b=ja(),
a=ja();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];e.constant||(e.inputs?f(e.inputs,b):-1===b.indexOf(e)&&b.push(e))}return b}function g(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=fc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function h(a,b,c,d){var e=d.$$inputs||(d.$$inputs=f(d.inputs,
[])),l;if(1===e.length){var h=g,e=e[0];return a.$watch(function(a){var b=e(a);g(b,h)||(l=d(a),h=b&&fc(b));return l},b,c)}for(var k=[],q=0,p=e.length;q<p;q++)k[q]=g;return a.$watch(function(a){for(var b=!1,c=0,f=e.length;c<f;c++){var h=e[c](a);if(b||(b=!g(h,k[c])))k[c]=h&&fc(h)}b&&(l=d(a));return l},b,c)}function l(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a;z(b)&&b.apply(this,arguments);y(a)&&d.$$postDigest(function(){y(f)&&e()})},c)}function k(a,b,c,d){function e(a){var b=
!0;r(a,function(a){y(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a;z(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function n(a,b,c,d){var e;return e=a.$watch(function(a){return d(a)},function(a,c,d){z(b)&&b.apply(this,arguments);e()},c)}function p(a,b){if(!b)return a;var c=a.$$watchDelegate,c=c!==k&&c!==l?function(c,d){var e=a(c,d);return b(e,c,d)}:function(c,d){var e=a(c,d),f=b(e,c,d);return y(e)?f:e};a.$$watchDelegate&&a.$$watchDelegate!==
h?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=h,c.inputs=[a]);return c}var q={csp:d.csp,expensiveChecks:!1},t={csp:d.csp,expensiveChecks:!0};return function(d,f,g){var m,r,u;switch(typeof d){case "string":u=d=d.trim();var I=g?a:b;m=I[u];m||(":"===d.charAt(0)&&":"===d.charAt(1)&&(r=!0,d=d.substring(2)),g=g?t:q,m=new gc(g),m=(new kb(m,c,g)).parse(d),m.constant?m.$$watchDelegate=n:r?(m=e(m),m.$$watchDelegate=m.literal?k:l):m.inputs&&(m.$$watchDelegate=h),I[u]=m);return p(m,f);
case "function":return p(d,f);default:return p(A,f)}}}]}function Qe(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return fd(function(a){b.$evalAsync(a)},a)}]}function Re(){this.$get=["$browser","$exceptionHandler",function(b,a){return fd(function(a){b.defer(a)},a)}]}function fd(b,a){function c(a,b,c){function d(b){return function(c){e||(e=!0,b.call(a,c))}}var e=!1;return[d(b),d(c)]}function d(){this.$$state={status:0}}function e(a,b){return function(c){b.call(a,c)}}function f(c){!c.processScheduled&&
c.pending&&(c.processScheduled=!0,b(function(){var b,d,e;e=c.pending;c.processScheduled=!1;c.pending=u;for(var f=0,g=e.length;f<g;++f){d=e[f][0];b=e[f][c.status];try{z(b)?d.resolve(b(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(l){d.reject(l),a(l)}}}))}function g(){this.promise=new d;this.resolve=e(this,this.resolve);this.reject=e(this,this.reject);this.notify=e(this,this.notify)}var h=S("$q",TypeError);d.prototype={then:function(a,b,c){var d=new g;this.$$state.pending=this.$$state.pending||
[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&f(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return k(b,!0,a)},function(b){return k(b,!1,a)},b)}};g.prototype={resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(h("qcycle",a)):this.$$resolve(a))},$$resolve:function(b){var d,e;e=c(this,this.$$resolve,this.$$reject);try{if(L(b)||z(b))d=b&&b.then;z(d)?(this.promise.$$state.status=
-1,d.call(b,e[0],e[1],this.notify)):(this.promise.$$state.value=b,this.promise.$$state.status=1,f(this.promise.$$state))}catch(g){e[1](g),a(g)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;f(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;0>=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;f<g;f++){e=d[f][0];b=d[f][3];try{e.notify(z(b)?
b(c):c)}catch(l){a(l)}}})}};var l=function(a,b){var c=new g;b?c.resolve(a):c.reject(a);return c.promise},k=function(a,b,c){var d=null;try{z(c)&&(d=c())}catch(e){return l(e,!1)}return d&&z(d.then)?d.then(function(){return l(a,b)},function(a){return l(a,!1)}):l(a,b)},n=function(a,b,c,d){var e=new g;e.resolve(a);return e.promise.then(b,c,d)},p=function t(a){if(!z(a))throw h("norslvr",a);if(!(this instanceof t))return new t(a);var b=new g;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};
p.defer=function(){return new g};p.reject=function(a){var b=new g;b.reject(a);return b.promise};p.when=n;p.all=function(a){var b=new g,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;n(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise};return p}function $e(){this.$get=["$window","$timeout",function(b,a){function c(){for(var a=0;a<n.length;a++){var b=n[a];b&&(n[a]=null,b())}k=n.length=0}function d(a){var b=
n.length;k++;n.push(a);0===b&&(l=h(c));return function(){0<=b&&(b=n[b]=null,0===--k&&l&&(l(),l=null,n.length=0))}}var e=b.requestAnimationFrame||b.webkitRequestAnimationFrame,f=b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.webkitCancelRequestAnimationFrame,g=!!e,h=g?function(a){var b=e(a);return function(){f(b)}}:function(b){var c=a(b,16.66,!1);return function(){a.cancel(c)}};d.supported=g;var l,k=0,n=[];return d}]}function Pe(){function b(a){function b(){this.$$watchers=this.$$nextSibling=
this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=++rb;this.$$ChildScope=null}b.prototype=a;return b}var a=10,c=S("$rootScope"),d=null,e=null;this.digestTtl=function(b){arguments.length&&(a=b);return a};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(f,g,h,l){function k(a){a.currentScope.$$destroyed=!0}function n(){this.$id=++rb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=
null;this.$root=this;this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings=null}function p(a){if(v.$$phase)throw c("inprog",v.$$phase);v.$$phase=a}function q(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function t(){}function s(){for(;u.length;)try{u.shift()()}catch(a){g(a)}e=null}function F(){null===e&&(e=l.defer(function(){v.$apply(s)}))}n.prototype={constructor:n,$new:function(a,c){var d;c=c||this;a?
(d=new n,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=b(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(a||c!=this)&&d.$on("$destroy",k);return d},$watch:function(a,b,c){var e=h(a);if(e.$$watchDelegate)return e.$$watchDelegate(this,b,c,e);var f=this.$$watchers,g={fn:b,last:t,get:e,exp:a,eq:!!c};d=null;z(b)||(g.fn=A);f||(f=this.$$watchers=[]);f.unshift(g);return function(){Ya(f,
g);d=null}},$watchGroup:function(a,b){function c(){l=!1;h?(h=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,l=!1,h=!0;if(!a.length){var k=!0;g.$evalAsync(function(){k&&b(e,e,g)});return function(){k=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var h=g.$watch(a,function(a,f){e[b]=a;d[b]=f;l||(l=!0,g.$evalAsync(c))});f.push(h)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=
a;var b,d,g,l;if(!D(e)){if(L(e))if(Ta(e))for(f!==p&&(f=p,t=f.length=0,k++),a=e.length,t!==a&&(k++,f.length=t=a),b=0;b<a;b++)l=f[b],g=e[b],d=l!==l&&g!==g,d||l===g||(k++,f[b]=g);else{f!==n&&(f=n={},t=0,k++);a=0;for(b in e)e.hasOwnProperty(b)&&(a++,g=e[b],l=f[b],b in f?(d=l!==l&&g!==g,d||l===g||(k++,f[b]=g)):(t++,f[b]=g,k++));if(t>a)for(b in k++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1<b.length,k=0,q=h(a,c),p=[],n={},m=!0,t=0;return this.$watch(q,
function(){m?(m=!1,b(e,e,d)):b(e,g,d);if(l)if(L(e))if(Ta(e)){g=Array(e.length);for(var a=0;a<e.length;a++)g[a]=e[a]}else for(a in g={},e)sc.call(e,a)&&(g[a]=e[a]);else g=e})},$digest:function(){var b,f,h,k,q,n,r=a,F,P=[],u,y;p("$digest");l.$$checkUrlChange();this===v&&null!==e&&(l.defer.cancel(e),s());d=null;do{n=!1;for(F=this;m.length;){try{y=m.shift(),y.scope.$eval(y.expression,y.locals)}catch(w){g(w)}d=null}a:do{if(k=F.$$watchers)for(q=k.length;q--;)try{if(b=k[q])if((f=b.get(F))!==(h=b.last)&&
!(b.eq?ia(f,h):"number"===typeof f&&"number"===typeof h&&isNaN(f)&&isNaN(h)))n=!0,d=b,b.last=b.eq?Da(f,null):f,b.fn(f,h===t?f:h,F),5>r&&(u=4-r,P[u]||(P[u]=[]),P[u].push({msg:z(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(D){g(D)}if(!(k=F.$$childHead||F!==this&&F.$$nextSibling))for(;F!==this&&!(k=F.$$nextSibling);)F=F.$parent}while(F=k);if((n||m.length)&&!r--)throw v.$$phase=null,c("infdig",a,P);}while(n||m.length);for(v.$$phase=null;C.length;)try{C.shift()()}catch(B){g(B)}},
$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==v){for(var b in this.$$listenerCount)q(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=
this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){v.$$phase||m.length||l.defer(function(){m.length&&v.$digest()});m.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{return p("$apply"),this.$eval(a)}catch(b){g(b)}finally{v.$$phase=
null;try{v.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);F()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,q(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,l={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){l.defaultPrevented=
!0},defaultPrevented:!1},h=Za([l],arguments,1),k,q;do{d=e.$$listeners[a]||c;l.currentScope=e;k=0;for(q=d.length;k<q;k++)if(d[k])try{d[k].apply(null,h)}catch(p){g(p)}else d.splice(k,1),k--,q--;if(f)return l.currentScope=null,l;e=e.$parent}while(e);l.currentScope=null;return l},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var f=Za([e],arguments,1),l,h;c=d;){e.currentScope=
c;d=c.$$listeners[a]||[];l=0;for(h=d.length;l<h;l++)if(d[l])try{d[l].apply(null,f)}catch(k){g(k)}else d.splice(l,1),l--,h--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new n,m=v.$$asyncQueue=[],C=v.$$postDigestQueue=[],u=v.$$applyAsyncQueue=[];return v}]}function Sd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=
function(a){return y(a)?(b=a,this):b};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a=b,this):a};this.$get=function(){return function(c,d){var e=d?a:b,f;f=Aa(c).href;return""===f||f.match(e)?c:"unsafe:"+f}}}function Df(b){if("self"===b)return b;if(x(b)){if(-1<b.indexOf("***"))throw Ba("iwcard",b);b=gd(b).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+b+"$")}if(Va(b))return new RegExp("^"+b.source+"$");throw Ba("imatcher");}function hd(b){var a=[];y(b)&&r(b,function(b){a.push(Df(b))});
return a}function Te(){this.SCE_CONTEXTS=pa;var b=["self"],a=[];this.resourceUrlWhitelist=function(a){arguments.length&&(b=hd(a));return b};this.resourceUrlBlacklist=function(b){arguments.length&&(a=hd(b));return a};this.$get=["$injector",function(c){function d(a,b){return"self"===a?Zc(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};
return b}var f=function(a){throw Ba("unsafe");};c.has("$sanitize")&&(f=c.get("$sanitize"));var g=e(),h={};h[pa.HTML]=e(g);h[pa.CSS]=e(g);h[pa.URL]=e(g);h[pa.JS]=e(g);h[pa.RESOURCE_URL]=e(h[pa.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ba("icontext",a,b);if(null===b||b===u||""===b)return b;if("string"!==typeof b)throw Ba("itype",a);return new c(b)},getTrusted:function(c,e){if(null===e||e===u||""===e)return e;var g=h.hasOwnProperty(c)?h[c]:null;if(g&&e instanceof
g)return e.$$unwrapTrustedValue();if(c===pa.RESOURCE_URL){var g=Aa(e.toString()),p,q,t=!1;p=0;for(q=b.length;p<q;p++)if(d(b[p],g)){t=!0;break}if(t)for(p=0,q=a.length;p<q;p++)if(d(a[p],g)){t=!1;break}if(t)return e;throw Ba("insecurl",e.toString());}if(c===pa.HTML)return f(e);throw Ba("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}function Se(){var b=!0;this.enabled=function(a){arguments.length&&(b=!!a);return b};this.$get=["$parse","$sceDelegate",function(a,c){if(b&&
8>Ra)throw Ba("iequirks");var d=sa(pa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=ra);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;r(pa,function(a,b){var c=K(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+
c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in
l);!d||k&&n||(k=x(f.body.style.webkitTransition),n=x(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Ra)return!1;if(D(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:db(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function We(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;x(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=
a.defaults&&a.defaults.transformResponse;H(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!g)throw ma("tpload",f);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d=
ca.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var l=a.querySelectorAll("["+g[h]+"model"+(c?"=":"*=")+'"'+b+'"]');if(l.length)return l}},getLocation:function(){return c.url()},setLocation:function(a){a!==c.url()&&(c.url(a),b.$digest())},whenStable:function(b){a.notifyWhenNoOutstandingRequests(b)}}}]}function Ye(){this.$get=
["$rootScope","$browser","$q","$$q","$exceptionHandler",function(b,a,c,d,e){function f(f,l,k){var n=y(k)&&!k,p=(n?d:c).defer(),q=p.promise;l=a.defer(function(){try{p.resolve(f())}catch(a){p.reject(a),e(a)}finally{delete g[q.$$timeoutId]}n||b.$apply()},l);q.$$timeoutId=l;g[l]=p;return q}var g={};f.cancel=function(b){return b&&b.$$timeoutId in g?(g[b.$$timeoutId].reject("canceled"),delete g[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return f}]}function Aa(b){Ra&&(Z.setAttribute("href",b),b=Z.href);
Z.setAttribute("href",b);return{href:Z.href,protocol:Z.protocol?Z.protocol.replace(/:$/,""):"",host:Z.host,search:Z.search?Z.search.replace(/^\?/,""):"",hash:Z.hash?Z.hash.replace(/^#/,""):"",hostname:Z.hostname,port:Z.port,pathname:"/"===Z.pathname.charAt(0)?Z.pathname:"/"+Z.pathname}}function Zc(b){b=x(b)?Aa(b):b;return b.protocol===id.protocol&&b.host===id.host}function Ze(){this.$get=ea(R)}function Ec(b){function a(c,d){if(L(c)){var e={};r(c,function(b,c){e[c]=a(c,b)});return e}return b.factory(c+
"Filter",d)}this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];a("currency",jd);a("date",kd);a("filter",Ef);a("json",Ff);a("limitTo",Gf);a("lowercase",Hf);a("number",ld);a("orderBy",md);a("uppercase",If)}function Ef(){return function(b,a,c){if(!H(b))return b;var d;switch(null!==a?typeof a:"null"){case "function":break;case "boolean":case "null":case "number":case "string":d=!0;case "object":a=Jf(a,c,d);break;default:return b}return b.filter(a)}}function Jf(b,
a,c){var d=L(b)&&"$"in b;!0===a?a=ia:z(a)||(a=function(a,b){if(D(a))return!1;if(null===a||null===b)return a===b;if(L(a)||L(b))return!1;a=K(""+a);b=K(""+b);return-1!==a.indexOf(b)});return function(e){return d&&!L(e)?Ha(e,b.$,a,!1):Ha(e,b,a,c)}}function Ha(b,a,c,d,e){var f=null!==b?typeof b:"null",g=null!==a?typeof a:"null";if("string"===g&&"!"===a.charAt(0))return!Ha(b,a.substring(1),c,d);if(H(b))return b.some(function(b){return Ha(b,a,c,d)});switch(f){case "object":var h;if(d){for(h in b)if("$"!==
h.charAt(0)&&Ha(b[h],a,c,!0))return!0;return e?!1:Ha(b,a,c,!1)}if("object"===g){for(h in a)if(e=a[h],!z(e)&&!D(e)&&(f="$"===h,!Ha(f?b:b[h],e,c,f,f)))return!1;return!0}return c(b,a);case "function":return!1;default:return c(b,a)}}function jd(b){var a=b.NUMBER_FORMATS;return function(b,d,e){D(d)&&(d=a.CURRENCY_SYM);D(e)&&(e=a.PATTERNS[1].maxFrac);return null==b?b:nd(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,e).replace(/\u00A4/g,d)}}function ld(b){var a=b.NUMBER_FORMATS;return function(b,d){return null==
b?b:nd(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function nd(b,a,c,d,e){if(!isFinite(b)||L(b))return"";var f=0>b;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var n=g.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?b=0:(h=g,k=!0)}if(k)0<e&&1>b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]||"").length;D(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",p=0,q=a.lgSize,
t=a.gSize;if(k.length>=q+t)for(p=k.length-q,n=0;n<p;n++)0===(p-n)%t&&0!==n&&(h+=c),h+=k.charAt(n);for(n=p;n<k.length;n++)0===(k.length-n)%q&&0!==n&&(h+=c),h+=k.charAt(n);for(;g.length<e;)g+="0";e&&"0"!==e&&(h+=d+g.substr(0,e))}0===b&&(f=!1);l.push(f?a.negPre:a.posPre,h,f?a.negSuf:a.posSuf);return l.join("")}function Jb(b,a,c){var d="";0>b&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function U(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(0<c||e>-c)e+=
c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](),f=vb(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c=pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function kd(b){function a(a){var b;if(b=a.match(c)){a=
new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;x(c)&&(c=Kf.test(c)?
aa(c):a(c));Y(c)&&(c=new Date(c));if(!ha(c))return c;for(;e;)(k=Lf.exec(e))?(h=Za(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){D(a)&&(a=2);return ab(b,a)}}function Gf(){return function(b,a){Y(b)&&(b=b.toString());return H(b)||x(b)?(a=Infinity===Math.abs(Number(a))?Number(a):
aa(a))?0<a?b.slice(0,a):b.slice(a):x(b)?"":[]:b}}function md(b){return function(a,c,d){function e(a,b){return b?function(b,c){return a(c,b)}:a}function f(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function g(a){return null===a?"null":"function"===typeof a.valueOf&&(a=a.valueOf(),f(a))||"function"===typeof a.toString&&(a=a.toString(),f(a))?a:""}function h(a,b){var c=typeof a,d=typeof b;c===d&&"object"===c&&(a=g(a),b=g(b));return c===d?("string"===c&&(a=
a.toLowerCase(),b=b.toLowerCase()),a===b?0:a<b?-1:1):c<d?-1:1}if(!Ta(a))return a;c=H(c)?c:[c];0===c.length&&(c=["+"]);c=c.map(function(a){var c=!1,d=a||ra;if(x(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))c="-"==a.charAt(0),a=a.substring(1);if(""===a)return e(h,c);d=b(a);if(d.constant){var f=d();return e(function(a,b){return h(a[f],b[f])},c)}}return e(function(a,b){return h(d(a),d(b))},c)});return $a.call(a).sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(0!==e)return e}return 0},
d))}}function Ia(b){z(b)&&(b={link:b});b.restrict=b.restrict||"AC";return ea(b)}function rd(b,a,c,d,e){var f=this,g=[],h=f.$$parentForm=b.parent().controller("form")||Lb;f.$error={};f.$$success={};f.$pending=u;f.$name=e(a.name||a.ngForm||"")(c);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;h.$addControl(f);f.$rollbackViewValue=function(){r(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){r(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Ma(a.$name,
"input");g.push(a);a.$name&&(f[a.$name]=a)};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];r(f.$pending,function(b,c){f.$setValidity(c,null,a)});r(f.$error,function(b,c){f.$setValidity(c,null,a)});r(f.$$success,function(b,c){f.$setValidity(c,null,a)});Ya(g,a)};sd({ctrl:this,$element:b,set:function(a,b,c){var d=a[b];d?-1===d.indexOf(c)&&d.push(c):a[b]=[c]},unset:function(a,b,c){var d=a[b];
d&&(Ya(d,c),0===d.length&&delete a[b])},parentForm:h,$animate:d});f.$setDirty=function(){d.removeClass(b,Sa);d.addClass(b,Mb);f.$dirty=!0;f.$pristine=!1;h.$setDirty()};f.$setPristine=function(){d.setClass(b,Sa,Mb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;r(g,function(a){a.$setPristine()})};f.$setUntouched=function(){r(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){d.addClass(b,"ng-submitted");f.$submitted=!0;h.$setSubmitted()}}function ic(b){b.$formatters.push(function(a){return b.$isEmpty(a)?
a:a.toString()})}function lb(b,a,c,d,e,f){var g=K(a[0].type);if(!e.android){var h=!1;a.on("compositionstart",function(a){h=!0});a.on("compositionend",function(){h=!1;l()})}var l=function(b){k&&(f.defer.cancel(k),k=null);if(!h){var e=a.val();b=b&&b.type;"password"===g||c.ngTrim&&"false"===c.ngTrim||(e=N(e));(d.$viewValue!==e||""===e&&d.$$hasNativeValidators)&&d.$setViewValue(e,b)}};if(e.hasEvent("input"))a.on("input",l);else{var k,n=function(a,b,c){k||(k=f.defer(function(){k=null;b&&b.value===c||l(a)}))};
a.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ha(c))return c;if(x(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,
dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c<a.length&&(f[a[c]]=+b)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function mb(b,a,c,d){return function(e,f,g,h,l,k,n){function p(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function q(a){return y(a)?ha(a)?a:c(a):u}td(e,f,g,h);lb(e,f,g,h,l,k);var t=h&&h.$options&&h.$options.timezone,s;h.$$parserName=b;
h.$parsers.push(function(b){return h.$isEmpty(b)?null:a.test(b)?(b=c(b,s),"UTC"===t&&b.setMinutes(b.getMinutes()-b.getTimezoneOffset()),b):u});h.$formatters.push(function(a){if(a&&!ha(a))throw nb("datefmt",a);if(p(a)){if((s=a)&&"UTC"===t){var b=6E4*s.getTimezoneOffset();s=new Date(s.getTime()+b)}return n("date")(a,d,t)}s=null;return""});if(y(g.min)||g.ngMin){var r;h.$validators.min=function(a){return!p(a)||D(r)||c(a)>=r};g.$observe("min",function(a){r=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var v;
h.$validators.max=function(a){return!p(a)||D(v)||c(a)<=v};g.$observe("max",function(a){v=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=L(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?u:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw nb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],
n=0;n<b.length;n++)if(e==b[n])continue a;c.push(e)}return c}function e(a){if(!H(a)){if(x(a))return a.split(" ");if(L(a)){var b=[];r(a,function(a,c){a&&(b=b.concat(c.split(" ")))});return b}}return a}return{restrict:"AC",link:function(f,g,h){function l(a,b){var c=g.data("$classCounts")||{},d=[];r(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",c);return d.join(" ")}function k(b){if(!0===a||f.$index%2===a){var k=e(b||[]);if(!n){var t=l(k,1);h.$addClass(t)}else if(!ia(b,
n)){var s=e(n),t=d(k,s),k=d(s,k),t=l(t,1),k=l(k,-1);t&&t.length&&c.addClass(g,t);k&&k.length&&c.removeClass(g,k)}}n=sa(b)}var n;f.$watch(h[b],k,!0);h.$observe("class",function(a){k(f.$eval(h[b]))});"ngClass"!==b&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var k=e(f.$eval(h[b]));g===a?(g=l(k,1),h.$addClass(g)):(g=l(k,-1),h.$removeClass(g))}})}}}]}function sd(b){function a(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function c(b,c){b=b?"-"+uc(b,"-"):"";
a(ob+b,!0===c);a(vd+b,!1===c)}var d=b.ctrl,e=b.$element,f={},g=b.set,h=b.unset,l=b.parentForm,k=b.$animate;f[vd]=!(f[ob]=e.hasClass(ob));d.$setValidity=function(b,e,f){e===u?(d.$pending||(d.$pending={}),g(d.$pending,b,f)):(d.$pending&&h(d.$pending,b,f),wd(d.$pending)&&(d.$pending=u));Xa(e)?e?(h(d.$error,b,f),g(d.$$success,b,f)):(g(d.$error,b,f),h(d.$$success,b,f)):(h(d.$error,b,f),h(d.$$success,b,f));d.$pending?(a(xd,!0),d.$valid=d.$invalid=u,c("",null)):(a(xd,!1),d.$valid=wd(d.$error),d.$invalid=
!d.$valid,c("",d.$valid));e=d.$pending&&d.$pending[b]?u:d.$error[b]?!1:d.$$success[b]?!0:null;c(b,e);l.$setValidity(b,e,d)}}function wd(b){if(b)for(var a in b)return!1;return!0}var Of=/^\/(.+)\/([a-z]*)$/,K=function(b){return x(b)?b.toLowerCase():b},sc=Object.prototype.hasOwnProperty,vb=function(b){return x(b)?b.toUpperCase():b},Ra,B,ta,$a=[].slice,qf=[].splice,Pf=[].push,Ca=Object.prototype.toString,Ja=S("ng"),ca=R.angular||(R.angular={}),eb,rb=0;Ra=W.documentMode;A.$inject=[];ra.$inject=[];var H=
Array.isArray,N=function(b){return x(b)?b.trim():b},gd=function(b){return b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},db=function(){if(y(db.isActive_))return db.isActive_;var b=!(!W.querySelector("[ng-csp]")&&!W.querySelector("[data-ng-csp]"));if(!b)try{new Function("")}catch(a){b=!0}return db.isActive_=b},tb=["ng-","data-ng-","ng:","x-ng-"],Md=/[A-Z]/g,vc=!1,Qb,qa=1,bb=3,Qd={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};T.expando="ng339";var Ab=
T.cache={},hf=1;T._data=function(b){return this.cache[b[this.expando]]||{}};var cf=/([\:\-\_]+(.))/g,df=/^moz([A-Z])/,Qf={mouseleave:"mouseout",mouseenter:"mouseover"},Tb=S("jqLite"),gf=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ka={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,"",""]};ka.optgroup=ka.option;ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead;ka.th=ka.td;var Ka=T.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),T(R).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort,
splice:[].splice},Fb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[K(b)]=b});var Nc={};r("input select option textarea button form details".split(" "),function(b){Nc[b]=!0});var Oc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Vb,removeData:yb},function(b,a){T[a]=b});r({data:Vb,inheritedData:Eb,scope:function(b){return B.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,
"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Jc,injector:function(b){return Eb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=fb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==bb&&2!==d&&8!==d)if(d=K(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:u;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=
b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(D(b)){var d=a.nodeType;return d===qa||d===bb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(D(a)){if(b.multiple&&"select"===wa(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Kc},function(b,a){T.prototype[a]=
function(a,d){var e,f,g=this.length;if(b!==Kc&&(2==b.length&&b!==Bb&&b!==Jc?a:d)===u){if(L(a)){for(e=0;e<g;e++)if(b===Vb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===u?Math.min(g,1):g;for(f=0;f<g;f++){var h=b(this[f],a,d);e=e?e+h:h}return e}for(e=0;e<g;e++)b(this[e],a,d);return this}});r({removeData:yb,on:function a(c,d,e,f){if(y(f))throw Tb("onargs");if(Fc(c)){var g=zb(c,!0);f=g.events;var h=g.handle;h||(h=g.handle=lf(c,f));for(var g=0<=d.indexOf(" ")?d.split(" "):[d],
l=g.length;l--;){d=g[l];var k=f[d];k||(f[d]=[],"mouseenter"===d||"mouseleave"===d?a(c,Qf[d],function(a){var c=a.relatedTarget;c&&(c===this||this.contains(c))||h(a,d)}):"$destroy"!==d&&c.addEventListener(d,h,!1),k=f[d]);k.push(e)}}},off:Ic,one:function(a,c,d){a=B(a);a.on(c,function f(){a.off(c,d);a.off(c,f)});a.on(c,d)},replaceWith:function(a,c){var d,e=a.parentNode;xb(a);r(new T(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];r(a.childNodes,
function(a){a.nodeType===qa&&c.push(a)});return c},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,c){var d=a.nodeType;if(d===qa||11===d){c=new T(c);for(var d=0,e=c.length;d<e;d++)a.appendChild(c[d])}},prepend:function(a,c){if(a.nodeType===qa){var d=a.firstChild;r(new T(c),function(c){a.insertBefore(c,d)})}},wrap:function(a,c){c=B(c).eq(0).clone()[0];var d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:Lc,detach:function(a){Lc(a,!0)},after:function(a,
c){var d=a,e=a.parentNode;c=new T(c);for(var f=0,g=c.length;f<g;f++){var h=c[f];e.insertBefore(h,d.nextSibling);d=h}},addClass:Db,removeClass:Cb,toggleClass:function(a,c,d){c&&r(c.split(" "),function(c){var f=d;D(f)&&(f=!Bb(a,c));(f?Db:Cb)(a,c)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,c){return a.getElementsByTagName?a.getElementsByTagName(c):[]},clone:Ub,triggerHandler:function(a,c,d){var e,f,g=c.type||c,h=
zb(a);if(h=(h=h&&h.events)&&h[g])e={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:A,type:g,target:a},c.type&&(e=w(e,c)),c=sa(h),f=d?[e].concat(d):[e],r(c,function(c){e.isImmediatePropagationStopped()||c.apply(a,f)})}},function(a,c){T.prototype[c]=function(c,
e,f){for(var g,h=0,l=this.length;h<l;h++)D(g)?(g=a(this[h],c,e,f),y(g)&&(g=B(g))):Hc(g,a(this[h],c,e,f));return y(g)?g:this};T.prototype.bind=T.prototype.on;T.prototype.unbind=T.prototype.off});gb.prototype={put:function(a,c){this[Na(a,this.nextUid)]=c},get:function(a){return this[Na(a,this.nextUid)]},remove:function(a){var c=this[a=Na(a,this.nextUid)];delete this[a];return c}};var Qc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Rf=/,/,Sf=/^\s*(_?)(\S+?)\1\s*$/,Pc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Fa=S("$injector");
cb.$$annotate=function(a,c,d){var e;if("function"===typeof a){if(!(e=a.$inject)){e=[];if(a.length){if(c)throw x(d)&&d||(d=a.name||mf(a)),Fa("strictdi",d);c=a.toString().replace(Pc,"");c=c.match(Qc);r(c[1].split(Rf),function(a){a.replace(Sf,function(a,c,d){e.push(d)})})}a.$inject=e}}else H(a)?(c=a.length-1,La(a[c],"fn"),e=a.slice(0,c)):La(a,"fn",!0);return e};var Tf=S("$animate"),Ce=["$provide",function(a){this.$$selectors={};this.register=function(c,d){var e=c+"-animation";if(c&&"."!=c.charAt(0))throw Tf("notcsel",
c);this.$$selectors[c.substr(1)]=e;a.factory(e,d)};this.classNameFilter=function(a){1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null);return this.$$classNameFilter};this.$get=["$$q","$$asyncCallback","$rootScope",function(a,d,e){function f(d){var f,g=a.defer();g.promise.$$cancelFn=function(){f&&f()};e.$$postDigest(function(){f=d(function(){g.resolve()})});return g.promise}function g(a,c){var d=[],e=[],f=ja();r((a.attr("class")||"").split(/\s+/),function(a){f[a]=!0});r(c,function(a,
c){var g=f[c];!1===a&&g?e.push(c):!0!==a||g||d.push(c)});return 0<d.length+e.length&&[d.length?d:null,e.length?e:null]}function h(a,c,d){for(var e=0,f=c.length;e<f;++e)a[c[e]]=d}function l(){n||(n=a.defer(),d(function(){n.resolve();n=null}));return n.promise}function k(a,c){if(ca.isObject(c)){var d=w(c.from||{},c.to||{});a.css(d)}}var n;return{animate:function(a,c,d){k(a,{from:c,to:d});return l()},enter:function(a,c,d,e){k(a,e);d?d.after(a):c.prepend(a);return l()},leave:function(a,c){k(a,c);a.remove();
return l()},move:function(a,c,d,e){return this.enter(a,c,d,e)},addClass:function(a,c,d){return this.setClass(a,c,[],d)},$$addClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Db(a,c)});k(a,d);return l()},removeClass:function(a,c,d){return this.setClass(a,[],c,d)},$$removeClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Cb(a,c)});k(a,d);return l()},setClass:function(a,c,d,e){var k=this,l=!1;a=B(a);var m=a.data("$$animateClasses");
m?e&&m.options&&(m.options=ca.extend(m.options||{},e)):(m={classes:{},options:e},l=!0);e=m.classes;c=H(c)?c:c.split(" ");d=H(d)?d:d.split(" ");h(e,c,!0);h(e,d,!1);l&&(m.promise=f(function(c){var d=a.data("$$animateClasses");a.removeData("$$animateClasses");if(d){var e=g(a,d.classes);e&&k.$$setClassImmediately(a,e[0],e[1],d.options)}c()}),a.data("$$animateClasses",m));return m.promise},$$setClassImmediately:function(a,c,d,e){c&&this.$$addClassImmediately(a,c);d&&this.$$removeClassImmediately(a,d);
k(a,e);return l()},enabled:A,cancel:A}}]}],ma=S("$compile");xc.$inject=["$provide","$$sanitizeUriProvider"];var Rc=/^((?:x|data)[\:\-_])/i,rf=S("$controller"),Vc="application/json",$b={"Content-Type":Vc+";charset=utf-8"},tf=/^\[|^\{(?!\{)/,uf={"[":/]$/,"{":/}$/},sf=/^\)\]\}',?\n/,ac=S("$interpolate"),Uf=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,xf={http:80,https:443,ftp:21},Hb=S("$location"),Vf={$$html5:!1,$$replace:!1,absUrl:Ib("$$absUrl"),url:function(a){if(D(a))return this.$$url;var c=Uf.exec(a);(c[1]||
""===a)&&this.path(decodeURIComponent(c[1]));(c[2]||c[1]||""===a)&&this.search(c[3]||"");this.hash(c[5]||"");return this},protocol:Ib("$$protocol"),host:Ib("$$host"),port:Ib("$$port"),path:cd("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,c){switch(arguments.length){case 0:return this.$$search;case 1:if(x(a)||Y(a))a=a.toString(),this.$$search=rc(a);else if(L(a))a=Da(a,{}),r(a,function(c,e){null==c&&delete a[e]}),this.$$search=a;else throw Hb("isrcharg");
break;default:D(c)||null===c?delete this.$$search[a]:this.$$search[a]=c}this.$$compose();return this},hash:cd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};r([bd,dc,cc],function(a){a.prototype=Object.create(Vf);a.prototype.state=function(c){if(!arguments.length)return this.$$state;if(a!==cc||!this.$$html5)throw Hb("nostate");this.$$state=D(c)?null:c;return this}});var ga=S("$parse"),Wf=Function.prototype.call,Xf=Function.prototype.apply,
Yf=Function.prototype.bind,pb=ja();r({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(a,c){a.constant=a.literal=a.sharedGetter=!0;pb[c]=a});pb["this"]=function(a){return a};pb["this"].sharedGetter=!0;var qb=w(ja(),{"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return y(d)?y(e)?d+e:d:y(e)?e:u},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)-(y(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,
c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,
c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Zf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(a))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,
text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var c=a+this.peek(),d=c+this.peek(2),e=qb[c],f=qb[d];qb[a]||e||f?(a=f?d:e?c:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,c){return-1!==c.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===
typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ga("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index<this.text.length;){var d=K(this.text.charAt(this.index));
if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:c,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.index<this.text.length;){var c=this.text.charAt(this.index);if(!this.isIdent(c)&&
!this.isNumber(c))break;this.index++}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var c=this.index;this.index++;for(var d="",e=a,f=!1;this.index<this.text.length;){var g=this.text.charAt(this.index),e=e+g;if(f)"u"===g?(f=this.text.substring(this.index+1,this.index+5),f.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+f+"]"),this.index+=4,d+=String.fromCharCode(parseInt(f,16))):d+=Zf[g]||g,f=!1;else if("\\"===g)f=!0;else{if(g===
a){this.index++;this.tokens.push({index:c,text:e,constant:!0,value:d});return}d+=g}this.index++}this.throwError("Unterminated quote",c)}};var kb=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d};kb.ZERO=w(function(){return 0},{sharedGetter:!0,constant:!0});kb.prototype={constructor:kb,parse:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.statements();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);a.literal=!!a.literal;a.constant=!!a.constant;
return a},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.peek().identifier&&this.peek().text in pb?a=pb[this.consume().text]:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c,d;c=this.expect("(","[",".");)"("===c.text?(a=this.functionCall(a,d),d=null):"["===c.text?(d=a,a=this.objectIndex(a)):
"."===c.text?(d=a,a=this.fieldAccess(a)):this.throwError("IMPOSSIBLE");return a},throwError:function(a,c){throw ga("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},peekToken:function(){if(0===this.tokens.length)throw ga("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,
c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ga("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return w(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return w(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=
this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return zf(a,this.options,this.text)},constant:function(){var a=this.consume().value;return w(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,f=0,g=a.length;f<g;f++)e=a[f](c,d);return e}},
filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},filter:function(a){var c=this.$filter(this.consume().text),d,e;if(this.peek(":"))for(d=[],e=[];this.expect(":");)d.push(this.expression());var f=[a].concat(d||[]);return w(function(f,h){var l=a(f,h);if(e){e[0]=l;for(l=d.length;l--;)e[l+1]=d[l](f,h);return c.apply(u,e)}return c(l)},{constant:!c.$stateful&&f.every(ec),inputs:!c.$stateful&&f})},expression:function(){return this.assignment()},assignment:function(){var a=
this.ternary(),c,d;return(d=this.expect("="))?(a.assign||this.throwError("implies assignment but ["+this.text.substring(0,d.index)+"] can not be assigned to",d),c=this.ternary(),w(function(d,f){return a.assign(d,c(d,f),f)},{inputs:[a,c]})):a},ternary:function(){var a=this.logicalOR(),c;if(this.expect("?")&&(c=this.assignment(),this.consume(":"))){var d=this.assignment();return w(function(e,f){return a(e,f)?c(e,f):d(e,f)},{constant:a.constant&&c.constant&&d.constant})}return a},logicalOR:function(){for(var a=
this.logicalAND(),c;c=this.expect("||");)a=this.binaryFn(a,c.text,this.logicalAND(),!0);return a},logicalAND:function(){for(var a=this.equality(),c;c=this.expect("&&");)a=this.binaryFn(a,c.text,this.equality(),!0);return a},equality:function(){for(var a=this.relational(),c;c=this.expect("==","!=","===","!==");)a=this.binaryFn(a,c.text,this.relational());return a},relational:function(){for(var a=this.additive(),c;c=this.expect("<",">","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},
additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(kb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();
return w(function(d,e,f){d=f||a(d,e);return null==d?u:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return w(function(e,f){var g=a(e,f),h=dd(d(e,f),c);va(h,c);return g?oa(g[h],c):u},{assign:function(e,f,g){var h=va(dd(d(e,g),c),c),l=oa(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());
while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?u:g,k=a(g,h,l)||A;if(f)for(var n=d.length;n--;)f[n]=oa(d[n](g,h),e);oa(l,e);if(k){if(k.constructor===k)throw ga("isecfn",e);if(k===Wf||k===Xf||k===Yf)throw ga("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return oa(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))
}this.consume("]");return w(function(c,d){for(var e=[],f=0,g=a.length;f<g;f++)e.push(a[f](c,d));return e},{literal:!0,constant:a.every(ec),inputs:a})},object:function(){var a=[],c=[];if("}"!==this.peekToken().text){do{if(this.peek("}"))break;var d=this.consume();d.constant?a.push(d.value):d.identifier?a.push(d.text):this.throwError("invalid key",d);this.consume(":");c.push(this.expression())}while(this.expect(","))}this.consume("}");return w(function(d,f){for(var g={},h=0,l=c.length;h<l;h++)g[a[h]]=
c[h](d,f);return g},{literal:!0,constant:c.every(ec),inputs:c})}};var Bf=ja(),Af=ja(),Cf=Object.prototype.valueOf,Ba=S("$sce"),pa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ma=S("$compile"),Z=W.createElement("a"),id=Aa(R.location.href);Ec.$inject=["$provide"];jd.$inject=["$locale"];ld.$inject=["$locale"];var od=".",Mf={yyyy:U("FullYear",4),yy:U("FullYear",2,0,!0),y:U("FullYear",1),MMMM:Kb("Month"),MMM:Kb("Month",!0),MM:U("Month",2,1),M:U("Month",1,1),dd:U("Date",2),d:U("Date",
1),HH:U("Hours",2),H:U("Hours",1),hh:U("Hours",2,-12),h:U("Hours",1,-12),mm:U("Minutes",2),m:U("Minutes",1),ss:U("Seconds",2),s:U("Seconds",1),sss:U("Milliseconds",3),EEEE:Kb("Day"),EEE:Kb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0<a?"floor":"ceil"](a/60),2)+Jb(Math.abs(a%60),2))},ww:qd(2),w:qd(1),G:hc,GG:hc,GGG:hc,GGGG:function(a,c){return 0>=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Lf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
Kf=/^\-?\d+$/;kd.$inject=["$locale"];var Hf=ea(K),If=ea(vb);md.$inject=["$parse"];var Td=ea({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};r(Fb,function(a,c){if("multiple"!=a){var d=ya("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d],
function(a){g.$set(c,!!a)})}}}}});r(Oc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Of))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});r(["src","srcset","href"],function(a){var c=ya("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",
g=null);f.$observe(c,function(c){c?(f.$set(h,c),Ra&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a,c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(d,e){d.addClass(Sa).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm":
!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var p=k.$$parentForm;f&&(jb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(jb(a,null,k.$name,u,k.$name),p.$$renameControl(k,c),jb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){p.$removeControl(k);
f&&jb(a,null,e[f],u,k.$name);w(k,Lb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,$f=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ag=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,bg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/,
Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e)},date:mb("date",zd,Nb(zd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":mb("datetimelocal",Ad,Nb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:mb("time",Cd,Nb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:mb("week",kc,function(a,c){if(ha(a))return a;if(x(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g=
c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:mb("month",Bd,Nb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);lb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:bg.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Y(a))throw nb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||
D(h)||a>=h};d.$observe("min",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));h=Y(a)&&!isNaN(a)?a:u;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||D(l)||a<=l};d.$observe("max",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));l=Y(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||$f.test(d)}},email:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);
e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||ag.test(d)}},radio:function(a,c,d,e){D(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),n=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&
a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ia(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:A,button:A,submit:A,reset:A,file:A},yc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[K(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],cg=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a,
c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));
c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
be=jc("",!0),de=jc("Odd",0),ce=jc("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Dc={},dg={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Dc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=
d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=
ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,p,q,r){var s=0,u,v,m,C=function(){v&&(v.remove(),v=null);u&&(u.$destroy(),u=null);m&&(d.leave(m).then(function(){v=null}),v=m,m=null)};e.$watch(g,function(g){var p=function(){!y(l)||l&&!e.$eval(l)||
c()},M=++s;g?(a(g,!0).then(function(a){if(M===s){var c=e.$new();q.template=a;a=r(c,function(a){C();d.enter(a,null,f).then(p)});u=c;m=a;u.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){M===s&&(C(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(C(),q.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Gc(f.template,W).childNodes)(c,function(a){d.append(a)},
{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?N(f):f;e.$parsers.push(function(a){if(!D(a)){var c=[];a&&r(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return H(a)?a.join(f):u});e.$isEmpty=function(a){return!a||
!a.length}}}},ob="ng-valid",vd="ng-invalid",Sa="ng-pristine",Mb="ng-dirty",xd="ng-pending",nb=S("ngModel"),eg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;
this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=n(d.name||"",!1)(a);var p=f(d.ngModel),q=p.assign,t=p,s=q,F=null,v,m=this;this.$$setOptions=function(a){if((m.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);z(d)&&(d=c(a));return d};s=function(a,c){z(p(a))?g(a,{$$$p:m.$modelValue}):q(a,m.$modelValue)}}else if(!p.assign)throw nb("nonassign",d.ngModel,xa(e));};this.$render=A;this.$isEmpty=function(a){return D(a)||
""===a||null===a||a!==a};var C=e.inheritedData("$formController")||Lb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:C,$animate:g});this.$setPristine=function(){m.$dirty=!1;m.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Sa)};this.$setDirty=function(){m.$dirty=!0;m.$pristine=!1;g.removeClass(e,Sa);g.addClass(e,Mb);C.$setDirty()};this.$setUntouched=function(){m.$touched=!1;m.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=
function(){m.$touched=!0;m.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(F);m.$viewValue=m.$$lastCommittedViewValue;m.$render()};this.$validate=function(){if(!Y(m.$modelValue)||!isNaN(m.$modelValue)){var a=m.$$rawModelValue,c=m.$valid,d=m.$modelValue,e=m.$options&&m.$options.allowInvalid;m.$$runValidators(a,m.$$lastCommittedViewValue,function(f){e||c===f||(m.$modelValue=f?a:u,m.$modelValue!==d&&m.$$writeModelToScope())})}};this.$$runValidators=
function(a,c,d){function e(){var d=!0;r(m.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(r(m.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;r(m.$asyncValidators,function(f,h){var l=f(a,c);if(!l||!z(l.then))throw nb("$asyncValidators",l);g(h,u);d.push(l.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===w&&m.$setValidity(a,c)}function h(a){l===w&&d(a)}w++;var l=w;(function(){var a=
m.$$parserName||"parse";if(v===u)g(a,null);else return v||(r(m.$validators,function(a,c){g(c,null)}),r(m.$asyncValidators,function(a,c){g(c,null)})),g(a,v),v;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=m.$viewValue;h.cancel(F);if(m.$$lastCommittedViewValue!==a||""===a&&m.$$hasNativeValidators)m.$$lastCommittedViewValue=a,m.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=m.$$lastCommittedViewValue;if(v=D(c)?u:!0)for(var d=
0;d<m.$parsers.length;d++)if(c=m.$parsers[d](c),D(c)){v=!1;break}Y(m.$modelValue)&&isNaN(m.$modelValue)&&(m.$modelValue=t(a));var e=m.$modelValue,f=m.$options&&m.$options.allowInvalid;m.$$rawModelValue=c;f&&(m.$modelValue=c,m.$modelValue!==e&&m.$$writeModelToScope());m.$$runValidators(c,m.$$lastCommittedViewValue,function(a){f||(m.$modelValue=a?c:u,m.$modelValue!==e&&m.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,m.$modelValue);r(m.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
this.$setViewValue=function(a,c){m.$viewValue=a;m.$options&&!m.$options.updateOnDefault||m.$$debounceViewValueCommit(c)};this.$$debounceViewValueCommit=function(c){var d=0,e=m.$options;e&&y(e.debounce)&&(e=e.debounce,Y(e)?d=e:Y(e[c])?d=e[c]:Y(e["default"])&&(d=e["default"]));h.cancel(F);d?F=h(function(){m.$commitViewValue()},d):l.$$phase?m.$commitViewValue():a.$apply(function(){m.$commitViewValue()})};a.$watch(function(){var c=t(a);if(c!==m.$modelValue&&(m.$modelValue===m.$modelValue||c===c)){m.$modelValue=
m.$$rawModelValue=c;v=u;for(var d=m.$formatters,e=d.length,f=c;e--;)f=d[e](f);m.$viewValue!==f&&(m.$viewValue=m.$$lastCommittedViewValue=f,m.$render(),m.$$runValidators(c,f,A))}return c})}],ve=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:eg,priority:1,compile:function(c){c.addClass(Sa).addClass("ng-untouched").addClass(ob);return{pre:function(a,c,f,g){var h=g[0],l=g[1]||Lb;h.$$setOptions(g[2]&&g[2].$options);l.$addControl(h);f.$observe("name",
function(a){h.$name!==a&&l.$$renameControl(h,a)});a.$on("$destroy",function(){l.$removeControl(h)})},post:function(c,e,f,g){var h=g[0];if(h.$options&&h.$options.updateOn)e.on(h.$options.updateOn,function(a){h.$$debounceViewValueCommit(a&&a.type)});e.on("blur",function(e){h.$touched||(a.$$phase?c.$evalAsync(h.$setTouched):c.$apply(h.$setTouched))})}}}}}],fg=/(\s+|^)default(\s+|$)/,ze=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);
this.$options.updateOn!==u?(this.$options.updateOnDefault=!1,this.$options.updateOn=N(this.$options.updateOn.replace(fg,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},le=Ia({terminal:!0,priority:1E3}),me=["$locale","$interpolate",function(a,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(f,g,h){function l(a){g.text(a||"")}var k=h.count,n=h.$attr.when&&g.attr(h.$attr.when),p=h.offset||0,q=f.$eval(n)||{},t={},n=c.startSymbol(),s=
c.endSymbol(),u=n+k+"-"+p+s,v=ca.noop,m;r(h,function(a,c){var d=e.exec(c);d&&(d=(d[1]?"-":"")+K(d[2]),q[d]=g.attr(h.$attr[c]))});r(q,function(a,e){t[e]=c(a.replace(d,u))});f.$watch(k,function(c){c=parseFloat(c);var d=isNaN(c);d||c in q||(c=a.pluralCat(c-p));c===m||d&&isNaN(m)||(v(),v=f.$watch(t[c],l),m=c)})}}}],ne=["$parse","$animate",function(a,c){var d=S("ngRepeat"),e=function(a,c,d,e,k,n,p){a[d]=e;k&&(a[k]=n);a.$index=c;a.$first=0===c;a.$last=c===p-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=
0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,l=W.createComment(" end ngRepeat: "+h+" "),k=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!k)throw d("iexp",h);var n=k[1],p=k[2],q=k[3],t=k[4],k=n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!k)throw d("iidexp",n);var s=k[3]||k[1],F=k[2];if(q&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(q)||
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(q)))throw d("badident",q);var v,m,C,y,w={$id:Na};t?v=a(t):(C=function(a,c){return Na(c)},y=function(a){return a});return function(a,f,g,k,n){v&&(m=function(c,d,e){F&&(w[F]=c);w[s]=d;w.$index=e;return v(a,w)});var t=ja();a.$watchCollection(p,function(g){var k,p,v=f[0],G,w=ja(),D,I,A,z,H,O,x;q&&(a[q]=g);if(Ta(g))H=g,p=m||C;else{p=m||y;H=[];for(x in g)g.hasOwnProperty(x)&&"$"!=x.charAt(0)&&H.push(x);H.sort()}D=
H.length;x=Array(D);for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],z=p(I,A,k),t[z])O=t[z],delete t[z],w[z]=O,x[k]=O;else{if(w[z])throw r(x,function(a){a&&a.scope&&(t[a.id]=a)}),d("dupes",h,z,A);x[k]={id:z,scope:u,clone:u};w[z]=!0}for(G in t){O=t[G];z=ub(O.clone);c.leave(z);if(z[0].parentNode)for(k=0,p=z.length;k<p;k++)z[k].$$NG_REMOVED=!0;O.scope.$destroy()}for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],O=x[k],O.scope){G=v;do G=G.nextSibling;while(G&&G.$$NG_REMOVED);O.clone[0]!=G&&c.move(ub(O.clone),null,B(v));
v=O.clone[O.clone.length-1];e(O.scope,k,s,A,F,I,D)}else n(function(a,d){O.scope=d;var f=l.cloneNode(!1);a[a.length++]=f;c.enter(a,null,B(v));v=f;O.clone=a;w[O.id]=O;e(O.scope,k,s,A,F,I,D)});t=w})}}}}],oe=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngShow,function(c){a[c?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],he=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngHide,function(c){a[c?
"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],pe=Ia(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),qe=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,f){var g=[],h=[],l=[],k=[],n=function(a,c){return function(){a.splice(c,1)}};c.$watch(e.ngSwitch||e.on,function(c){var d,e;d=0;for(e=l.length;d<e;++d)a.cancel(l[d]);d=l.length=
0;for(e=k.length;d<e;++d){var s=ub(h[d].clone);k[d].$destroy();(l[d]=a.leave(s)).then(n(l,d))}h.length=0;k.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){k.push(e);var f=c.element;d[d.length++]=W.createComment(" end ngSwitchWhen: ");h.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],re=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[];e.cases["!"+d.ngSwitchWhen].push({transclude:f,
element:c})}}),se=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["?"]=e.cases["?"]||[];e.cases["?"].push({transclude:f,element:c})}}),ue=Ia({restrict:"EAC",link:function(a,c,d,e,f){if(!f)throw S("ngTransclude")("orphan",xa(c));f(function(a){c.empty();c.append(a)})}}),Vd=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],gg=S("ngOptions"),te=ea({restrict:"A",
terminal:!0}),Wd=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,e={$setViewValue:A};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var l=this,k={},n=e,p;l.databound=d.ngModel;l.init=function(a,c,d){n=a;p=d};l.addOption=function(c,d){Ma(c,'"option value"');
k[c]=!0;n.$viewValue==c&&(a.val(c),p.parent()&&p.remove());d&&d[0].hasAttribute("selected")&&(d[0].selected=!0)};l.removeOption=function(a){this.hasOption(a)&&(delete k[a],n.$viewValue===a&&this.renderUnknownOption(a))};l.renderUnknownOption=function(c){c="? "+Na(c)+" ?";p.val(c);a.prepend(p);a.val(c);p.prop("selected",!0)};l.hasOption=function(a){return k.hasOwnProperty(a)};c.$on("$destroy",function(){l.renderUnknownOption=A})}],link:function(e,g,h,l){function k(a,c,d,e){d.$render=function(){var a=
d.$viewValue;e.hasOption(a)?(z.parent()&&z.remove(),c.val(a),""===a&&v.prop("selected",!0)):null==a&&v?c.val(""):e.renderUnknownOption(a)};c.on("change",function(){a.$apply(function(){z.parent()&&z.remove();d.$setViewValue(c.val())})})}function n(a,c,d){var e;d.$render=function(){var a=new gb(d.$viewValue);r(c.find("option"),function(c){c.selected=y(a.get(c.value))})};a.$watch(function(){ia(e,d.$viewValue)||(e=sa(d.$viewValue),d.$render())});c.on("change",function(){a.$apply(function(){var a=[];r(c.find("option"),
function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function p(e,f,g){function h(a,c,d){T[A]=d;I&&(T[I]=c);return a(e,T)}function l(a){var c;if(t)if(K&&H(a)){c=new gb([]);for(var d=0;d<a.length;d++)c.put(h(K,null,a[d]),!0)}else c=new gb(a);else K&&(a=h(K,null,a));return function(d,e){var f;f=K?K:x?x:E;return t?y(c.remove(h(f,d,e))):a===h(f,d,e)}}function k(){m||(e.$$postDigest(p),m=!0)}function n(a,c,d){a[c]=a[c]||0;a[c]+=d?1:-1}function p(){m=!1;var a={"":[]},c=[""],d,k,s,u,v;s=g.$viewValue;
u=L(e)||[];var A=I?Object.keys(u).sort():u,x,B,H,E,P={};v=l(s);var N=!1,U,W;R={};for(E=0;H=A.length,E<H;E++){x=E;if(I&&(x=A[E],"$"===x.charAt(0)))continue;B=u[x];d=h(M,x,B)||"";(k=a[d])||(k=a[d]=[],c.push(d));d=v(x,B);N=N||d;B=h(z,x,B);B=y(B)?B:"";W=K?K(e,T):I?A[E]:E;K&&(R[W]=x);k.push({id:W,label:B,selected:d})}t||(w||null===s?a[""].unshift({id:"",label:"",selected:!N}):N||a[""].unshift({id:"?",label:"",selected:!0}));x=0;for(A=c.length;x<A;x++){d=c[x];k=a[d];S.length<=x?(s={element:D.clone().attr("label",
d),label:k.label},u=[s],S.push(u),f.append(s.element)):(u=S[x],s=u[0],s.label!=d&&s.element.attr("label",s.label=d));N=null;E=0;for(H=k.length;E<H;E++)d=k[E],(v=u[E+1])?(N=v.element,v.label!==d.label&&(n(P,v.label,!1),n(P,d.label,!0),N.text(v.label=d.label),N.prop("label",v.label)),v.id!==d.id&&N.val(v.id=d.id),N[0].selected!==d.selected&&(N.prop("selected",v.selected=d.selected),Ra&&N.prop("selected",v.selected))):(""===d.id&&w?U=w:(U=C.clone()).val(d.id).prop("selected",d.selected).attr("selected",
d.selected).prop("label",d.label).text(d.label),u.push(v={element:U,label:d.label,id:d.id,selected:d.selected}),n(P,d.label,!0),N?N.after(U):s.element.append(U),N=U);for(E++;u.length>E;)d=u.pop(),n(P,d.label,!1),d.element.remove()}for(;S.length>x;){k=S.pop();for(E=1;E<k.length;++E)n(P,k[E].label,!1);k[0].element.remove()}r(P,function(a,c){0<a?q.addOption(c):0>a&&q.removeOption(c)})}var v;if(!(v=s.match(d)))throw gg("iexp",s,xa(f));var z=c(v[2]||v[1]),A=v[4]||v[6],B=/ as /.test(v[0])&&v[1],x=B?c(B):
null,I=v[5],M=c(v[3]||""),E=c(v[2]?v[1]:A),L=c(v[7]),K=v[8]?c(v[8]):null,R={},S=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=L(e)||[],c;if(t)c=[],r(f.val(),function(d){d=K?R[d]:d;c.push("?"===d?u:""===d?null:h(x?x:E,d,a[d]))});else{var d=K?R[f.val()]:f.val();c="?"===d?u:""===d?null:h(x?x:E,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(L,k);e.$watchCollection(function(){var a=L(e),c;
if(a&&H(a)){c=Array(a.length);for(var d=0,f=a.length;d<f;d++)c[d]=h(z,d,a[d])}else if(a)for(d in c={},a)a.hasOwnProperty(d)&&(c[d]=h(z,d,a[d]));return c},k);t&&e.$watchCollection(function(){return g.$modelValue},k)}if(l[1]){var q=l[0];l=l[1];var t=h.multiple,s=h.ngOptions,w=!1,v,m=!1,C=B(W.createElement("option")),D=B(W.createElement("optgroup")),z=C.clone();h=0;for(var A=g.children(),x=A.length;h<x;h++)if(""===A[h].value){v=w=A.eq(h);break}q.init(l,w,z);t&&(l.$isEmpty=function(a){return!a||0===a.length});
s?p(e,g,l):t?n(e,g,l):k(e,g,l,q)}}}}],Yd=["$interpolate",function(a){var c={addOption:A,removeOption:A};return{restrict:"E",priority:100,compile:function(d,e){if(D(e.value)){var f=a(d.text(),!0);f||e.$set("value",d.text())}return function(a,d,e){var k=d.parent(),n=k.data("$selectController")||k.parent().data("$selectController");n&&n.databound||(n=c);f?a.$watch(f,function(a,c){e.$set("value",a);c!==a&&n.removeOption(c);n.addOption(a,d)}):n.addOption(e.value,d);d.on("$destroy",function(){n.removeOption(e.value)})}}}}],
Xd=ea({restrict:"E",terminal:!1}),Ac=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){e&&(d.required=!0,e.$validators.required=function(a,c){return!d.required||!e.$isEmpty(c)},d.$observe("required",function(){e.$validate()}))}}},zc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f,g=d.ngPattern||d.pattern;d.$observe("pattern",function(a){x(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw S("ngPattern")("noregexp",g,a,xa(c));f=
a||u;e.$validate()});e.$validators.pattern=function(a,c){return e.$isEmpty(c)||D(f)||f.test(c)}}}}},Cc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=-1;d.$observe("maxlength",function(a){a=aa(a);f=isNaN(a)?-1:a;e.$validate()});e.$validators.maxlength=function(a,c){return 0>f||e.$isEmpty(c)||c.length<=f}}}}},Bc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=
function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};R.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ca),B(W).ready(function(){Jd(W,tc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>');
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var w=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
this.$get=["$http","$q",function(q,h){function t(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function v(x,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){u(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw w("badmember",e);for(var e=e.split("."),n=0,g=e.length;n<g&&d!==B;n++){var h=e[n];d=null!==d?d[h]:B}}else d=a;c[k]=d});return c}function F(b){return b.resource}function e(b){D(b||
{},this)}var G=new t(x,m);l=s({},f.defaults.actions,l);e.prototype.toJSON=function(){var b=s({},this);delete b.$promise;delete b.$resolved;return b};r(l,function(b,k){var g=/^(POST|PUT|PATCH)$/i.test(b.method);e[k]=function(a,y,m,x){var n={},f,l,z;switch(arguments.length){case 4:z=x,l=m;case 3:case 2:if(u(y)){if(u(a)){l=a;z=y;break}l=y;z=m}else{n=a;f=y;l=m;break}case 1:u(a)?l=a:g?f=a:n=a;break;case 0:break;default:throw w("badargs",arguments.length);}var t=this instanceof e,p=t?f:b.isArray?[]:new e(f),
A={},v=b.interceptor&&b.interceptor.response||F,C=b.interceptor&&b.interceptor.responseError||B;r(b,function(b,a){"params"!=a&&"isArray"!=a&&"interceptor"!=a&&(A[a]=H(b))});g&&(A.data=f);G.setUrlParams(A,s({},c(f,b.params||{}),n),b.url);n=q(A).then(function(a){var c=a.data,g=p.$promise;if(c){if(d.isArray(c)!==!!b.isArray)throw w("badcfg",k,b.isArray?"array":"object",d.isArray(c)?"array":"object");b.isArray?(p.length=0,r(c,function(a){"object"===typeof a?p.push(new e(a)):p.push(a)})):(D(c,p),p.$promise=
g)}p.$resolved=!0;a.resource=p;return a},function(a){p.$resolved=!0;(z||E)(a);return h.reject(a)});n=n.then(function(a){var b=v(a);(l||E)(b,a.headers);return b},C);return t?n:(p.$promise=n,p.$resolved=!1,p)};e.prototype["$"+k]=function(a,b,c){u(a)&&(c=b,b=a,a={});a=e[k].call(this,a,this,b,c);return a.$promise||a}});e.bind=function(b){return v(x,s({},g,b),l)};return e}var E=d.noop,r=d.forEach,s=d.extend,H=d.copy,u=d.isFunction;t.prototype={setUrlParams:function(f,g,l){var m=this,c=l||m.template,h,
e,q=m.urlParams={};r(c.split(/\W/),function(b){if("hasOwnProperty"===b)throw w("badname");!/^\d+$/.test(b)&&b&&(new RegExp("(^|[^\\\\]):"+b+"(\\W|$)")).test(c)&&(q[b]=!0)});c=c.replace(/\\:/g,":");g=g||{};r(m.urlParams,function(b,k){h=g.hasOwnProperty(k)?g[k]:m.defaults[k];d.isDefined(h)&&null!==h?(e=encodeURIComponent(h).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),c=c.replace(new RegExp(":"+
k+"(\\W|$)","g"),function(b,a){return e+a})):c=c.replace(new RegExp("(/?):"+k+"(\\W|$)","g"),function(b,a,c){return"/"==c.charAt(0)?c:a+c})});m.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/");c=c.replace(/\/\.(?=\w+($|\?))/,".");f.url=c.replace(/\/\\\./,"/.");r(g,function(b,c){m.urlParams[c]||(f.params=f.params||{},f.params[c]=b)})}};return v}]})})(window,window.angular);
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(y,s,z){ 'use strict';function t(f,k,p){n.directive(f,["$parse","$swipe",function(d,e){return function(l,m,g){function h(a){if(!b)return!1;var c=Math.abs(a.y-b.y);a=(a.x-b.x)*k;return q&&75>c&&0<a&&30<a&&.3>c/a}var c=d(g[f]),b,q,a=["touch"];s.isDefined(g.ngSwipeDisableMouse)||a.push("mouse");e.bind(m,{start:function(a,c){b=a;q=!0},cancel:function(a){q=!1},end:function(a,b){h(a)&&l.$apply(function(){m.triggerHandler(p);c(l,{$event:b})})}},a)}}])}var n=s.module("ngTouch",[]);n.factory("$swipe",
[function(){ function f(d){d=d.originalEvent||d;var e=d.touches&&d.touches.length?d.touches:[d];d=d.changedTouches&&d.changedTouches[0]||e[0];return{x:d.clientX,y:d.clientY}}function k(d,e){var l=[];s.forEach(d,function(d){(d=p[d][e])&&l.push(d)});return l.join(" ")}var p={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(d,e,l){var m,g,h,c,b=!1;l=l||["mouse","touch"];d.on(k(l,"start"),function(a){h=
f(a);b=!0;g=m=0;c=h;e.start&&e.start(h,a)});var q=k(l,"cancel");if(q)d.on(q,function(a){b=!1;e.cancel&&e.cancel(a)});d.on(k(l,"move"),function(a){if(b&&h){var d=f(a);m+=Math.abs(d.x-c.x);g+=Math.abs(d.y-c.y);c=d;10>m&&10>g||(g>m?(b=!1,e.cancel&&e.cancel(a)):(a.preventDefault(),e.move&&e.move(d,a)))}});d.on(k(l,"end"),function(a){b&&(b=!1,e.end&&e.end(f(a),a))})}}}]);n.config(["$provide",function(f){f.decorator("ngClickDirective",["$delegate",function(k){k.shift();return k}])}]);n.directive("ngClick",
["$parse","$timeout","$rootElement",function(f,k,p){function d(c,b,d){for(var a=0;a<c.length;a+=2){var e=c[a+1],g=d;if(25>Math.abs(c[a]-b)&&25>Math.abs(e-g))return c.splice(a,a+2),!0}return!1}function e(c){if(!(2500<Date.now()-m)){var b=c.touches&&c.touches.length?c.touches:[c],e=b[0].clientX,b=b[0].clientY;if(!(1>e&&1>b||h&&h[0]===e&&h[1]===b)){h&&(h=null);var a=c.target;"label"===s.lowercase(a.nodeName||a[0]&&a[0].nodeName)&&(h=[e,b]);d(g,e,b)||(c.stopPropagation(),c.preventDefault(),c.target&&
c.target.blur&&c.target.blur())}}}function l(c){c=c.touches&&c.touches.length?c.touches:[c];var b=c[0].clientX,d=c[0].clientY;g.push(b,d);k(function(){for(var a=0;a<g.length;a+=2)if(g[a]==b&&g[a+1]==d){g.splice(a,a+2);break}},2500,!1)}var m,g,h;return function(c,b,h){function a(){n=!1;b.removeClass("ng-click-active")}var k=f(h.ngClick),n=!1,r,t,v,w;b.on("touchstart",function(a){n=!0;r=a.target?a.target:a.srcElement;3==r.nodeType&&(r=r.parentNode);b.addClass("ng-click-active");t=Date.now();a=a.originalEvent||
a;a=(a.touches&&a.touches.length?a.touches:[a])[0];v=a.clientX;w=a.clientY});b.on("touchmove",function(b){a()});b.on("touchcancel",function(b){a()});b.on("touchend",function(c){var k=Date.now()-t,f=c.originalEvent||c,u=(f.changedTouches&&f.changedTouches.length?f.changedTouches:f.touches&&f.touches.length?f.touches:[f])[0],f=u.clientX,u=u.clientY,x=Math.sqrt(Math.pow(f-v,2)+Math.pow(u-w,2));n&&750>k&&12>x&&(g||(p[0].addEventListener("click",e,!0),p[0].addEventListener("touchstart",l,!0),g=[]),m=Date.now(),
d(g,f,u),r&&r.blur(),s.isDefined(h.disabled)&&!1!==h.disabled||b.triggerHandler("click",[c]));a()});b.onclick=function(a){};b.on("click",function(a,b){c.$apply(function(){k(c,{$event:b||a})})});b.on("mousedown",function(a){b.addClass("ng-click-active")});b.on("mousemove mouseup",function(a){b.removeClass("ng-click-active")})}}]);t("ngSwipeLeft",-1,"swipeleft");t("ngSwipeRight",1,"swiperight")})(window,window.angular);



widgetkit/wk-styles-128ed052.css000064400000367707152177723720012324 0ustar00.icon-widgetkit{position:relative;top:4px;width:24px;height:24px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-24-j.svg") 50% 50% no-repeat}.btn-widgetkit>i{width:18px;height:18px;margin:-4px 0 -4px -2px;background:url("/administrator/components/com_widgetkit/assets/images/widgetkit-18-j.svg") 50% 50% no-repeat}.btn-widgetkit>i:before{content:""}.com_widgetkit .js-action-buttons,.com_widgetkit .js-header,.com_widgetkit .js-header+hr{display:none}.uk-breadcrumb{margin:0}.wk-thumbnail{height:150px;margin:1px 1px 0;border-bottom:1px solid #eee;background-color:#fafafa;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.wk-thumbnail-folder{background-image:url("/administrator/components/com_widgetkit/assets/images/folder.svg");background-size:50px 50px}.wk-thumbnail-file{background-image:url("/administrator/components/com_widgetkit/assets/images/file.svg");background-size:50px 50px}.wk-selected{background-color:#ffd!important}.uk-modal~.mce-floatpanel{z-index:100020!important}

.wk-noconflict .uk-nav li>a>div,.wk-noconflict .uk-panel-title{line-height:18px;font-size:12px}.wk-noconflict .uk-tab-center .uk-tab>li>a,.wk-noconflict .uk-tab-grid>li>a{text-align:center}.uk-modal,.wk-noconflict .uk-switcher{touch-action:cross-slide-y pinch-zoom double-tap-zoom}.wk-noconflict .uk-hidden,.wk-noconflict .uk-invisible{visibility:hidden!important}.wk-noconflict .uk-clearfix:after,.wk-noconflict .uk-container:after,.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-grid:after,.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-panel:after,.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab:after{clear:both}.wk-noconflict .uk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.wk-noconflict .uk-grid:after,.wk-noconflict .uk-grid:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left;padding-left:25px}.wk-noconflict .uk-grid>*>:last-child{margin-bottom:0}.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}@media (min-width:1400px){.wk-noconflict .uk-grid{margin-left:-25px}.wk-noconflict .uk-grid>*{padding-left:25px}.wk-noconflict .uk-grid+.uk-grid,.wk-noconflict .uk-grid-margin,.wk-noconflict .uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}}.wk-noconflict .uk-grid-collapse{margin-left:0}.wk-noconflict .uk-grid-collapse>*{padding-left:0}.wk-noconflict .uk-grid-collapse+.uk-grid-collapse,.wk-noconflict .uk-grid-collapse>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-collapse>.uk-grid-margin{margin-top:0}.wk-noconflict .uk-grid-small{margin-left:-10px}.wk-noconflict .uk-grid-small>*{padding-left:10px}.wk-noconflict .uk-grid-small+.uk-grid-small,.wk-noconflict .uk-grid-small>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-small>.uk-grid-margin{margin-top:10px}.wk-noconflict .uk-grid-medium{margin-left:-25px}.wk-noconflict .uk-grid-medium>*{padding-left:25px}.wk-noconflict .uk-grid-medium+.uk-grid-medium,.wk-noconflict .uk-grid-medium>*>.uk-panel+.uk-panel,.wk-noconflict .uk-grid-medium>.uk-grid-margin{margin-top:25px}@media (min-width:960px){.wk-noconflict .uk-grid-large{margin-left:-25px}.wk-noconflict .uk-grid-large>*{padding-left:25px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-large-]:not(.uk-width-large-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}}@media (min-width:1400px){.wk-noconflict .uk-grid-large{margin-left:-50px}.wk-noconflict .uk-grid-large>*{padding-left:50px}.wk-noconflict .uk-grid-large+.uk-grid-large,.wk-noconflict .uk-grid-large-margin,.wk-noconflict .uk-grid-large>*>.uk-panel+.uk-panel{margin-top:50px}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px}}.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.wk-noconflict .uk-grid-divider>*{padding-left:25px;padding-right:25px}.wk-noconflict .uk-grid-divider>[class*=uk-width-1-]:not(.uk-width-1-1):nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-2-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-3-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-4-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-5-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-6-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-7-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-8-]:nth-child(n+2),.wk-noconflict .uk-grid-divider>[class*=uk-width-9-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #e5e5e5}.wk-noconflict .uk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none;box-sizing:border-box;width:100%}.wk-noconflict [class*=uk-grid-width]>*{box-sizing:border-box;width:100%}.wk-noconflict .uk-grid-width-1-2>*{width:50%}.wk-noconflict .uk-grid-width-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-1-4>*{width:25%}.wk-noconflict .uk-grid-width-1-5>*{width:20%}.wk-noconflict .uk-grid-width-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-1-10>*{width:10%}.wk-noconflict .uk-grid-width-auto>*{width:auto}@media (min-width:480px){.wk-noconflict .uk-grid-width-small-1-1>*{width:100%}.wk-noconflict .uk-grid-width-small-1-2>*{width:50%}.wk-noconflict .uk-grid-width-small-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-small-1-4>*{width:25%}.wk-noconflict .uk-grid-width-small-1-5>*{width:20%}.wk-noconflict .uk-grid-width-small-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.wk-noconflict .uk-grid-divider>[class*=uk-width-medium-]:not(.uk-width-medium-1-1):nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-grid-width-medium-1-1>*{width:100%}.wk-noconflict .uk-grid-width-medium-1-2>*{width:50%}.wk-noconflict .uk-grid-width-medium-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-medium-1-4>*{width:25%}.wk-noconflict .uk-grid-width-medium-1-5>*{width:20%}.wk-noconflict .uk-grid-width-medium-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.wk-noconflict .uk-grid-width-large-1-1>*{width:100%}.wk-noconflict .uk-grid-width-large-1-2>*{width:50%}.wk-noconflict .uk-grid-width-large-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-large-1-4>*{width:25%}.wk-noconflict .uk-grid-width-large-1-5>*{width:20%}.wk-noconflict .uk-grid-width-large-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-large-1-10>*{width:10%}}@media (min-width:1400px){.wk-noconflict .uk-grid-width-xlarge-1-1>*{width:100%}.wk-noconflict .uk-grid-width-xlarge-1-2>*{width:50%}.wk-noconflict .uk-grid-width-xlarge-1-3>*{width:33.333%}.wk-noconflict .uk-grid-width-xlarge-1-4>*{width:25%}.wk-noconflict .uk-grid-width-xlarge-1-5>*{width:20%}.wk-noconflict .uk-grid-width-xlarge-1-6>*{width:16.666%}.wk-noconflict .uk-grid-width-xlarge-1-10>*{width:10%}}.wk-noconflict [class*=uk-width]{box-sizing:border-box;width:100%}.wk-noconflict .uk-width-1-1{width:100%}.wk-noconflict .uk-width-1-2,.wk-noconflict .uk-width-2-4,.wk-noconflict .uk-width-3-6,.wk-noconflict .uk-width-5-10{width:50%}.wk-noconflict .uk-width-1-3,.wk-noconflict .uk-width-2-6{width:33.333%}.wk-noconflict .uk-width-2-3,.wk-noconflict .uk-width-4-6{width:66.666%}.wk-noconflict .uk-width-1-4{width:25%}.wk-noconflict .uk-width-3-4{width:75%}.wk-noconflict .uk-width-1-5,.wk-noconflict .uk-width-2-10{width:20%}.wk-noconflict .uk-width-2-5,.wk-noconflict .uk-width-4-10{width:40%}.wk-noconflict .uk-width-3-5,.wk-noconflict .uk-width-6-10{width:60%}.wk-noconflict .uk-width-4-5,.wk-noconflict .uk-width-8-10{width:80%}.wk-noconflict .uk-width-1-6{width:16.666%}.wk-noconflict .uk-width-5-6{width:83.333%}.wk-noconflict .uk-width-1-10{width:10%}.wk-noconflict .uk-width-3-10{width:30%}.wk-noconflict .uk-width-7-10{width:70%}.wk-noconflict .uk-width-9-10{width:90%}@media (min-width:480px){.wk-noconflict .uk-width-small-1-1{width:100%}.wk-noconflict .uk-width-small-1-2,.wk-noconflict .uk-width-small-2-4,.wk-noconflict .uk-width-small-3-6,.wk-noconflict .uk-width-small-5-10{width:50%}.wk-noconflict .uk-width-small-1-3,.wk-noconflict .uk-width-small-2-6{width:33.333%}.wk-noconflict .uk-width-small-2-3,.wk-noconflict .uk-width-small-4-6{width:66.666%}.wk-noconflict .uk-width-small-1-4{width:25%}.wk-noconflict .uk-width-small-3-4{width:75%}.wk-noconflict .uk-width-small-1-5,.wk-noconflict .uk-width-small-2-10{width:20%}.wk-noconflict .uk-width-small-2-5,.wk-noconflict .uk-width-small-4-10{width:40%}.wk-noconflict .uk-width-small-3-5,.wk-noconflict .uk-width-small-6-10{width:60%}.wk-noconflict .uk-width-small-4-5,.wk-noconflict .uk-width-small-8-10{width:80%}.wk-noconflict .uk-width-small-1-6{width:16.666%}.wk-noconflict .uk-width-small-5-6{width:83.333%}.wk-noconflict .uk-width-small-1-10{width:10%}.wk-noconflict .uk-width-small-3-10{width:30%}.wk-noconflict .uk-width-small-7-10{width:70%}.wk-noconflict .uk-width-small-9-10{width:90%}}@media (min-width:768px){.wk-noconflict .uk-width-medium-1-1{width:100%}.wk-noconflict .uk-width-medium-1-2,.wk-noconflict .uk-width-medium-2-4,.wk-noconflict .uk-width-medium-3-6,.wk-noconflict .uk-width-medium-5-10{width:50%}.wk-noconflict .uk-width-medium-1-3,.wk-noconflict .uk-width-medium-2-6{width:33.333%}.wk-noconflict .uk-width-medium-2-3,.wk-noconflict .uk-width-medium-4-6{width:66.666%}.wk-noconflict .uk-width-medium-1-4{width:25%}.wk-noconflict .uk-width-medium-3-4{width:75%}.wk-noconflict .uk-width-medium-1-5,.wk-noconflict .uk-width-medium-2-10{width:20%}.wk-noconflict .uk-width-medium-2-5,.wk-noconflict .uk-width-medium-4-10{width:40%}.wk-noconflict .uk-width-medium-3-5,.wk-noconflict .uk-width-medium-6-10{width:60%}.wk-noconflict .uk-width-medium-4-5,.wk-noconflict .uk-width-medium-8-10{width:80%}.wk-noconflict .uk-width-medium-1-6{width:16.666%}.wk-noconflict .uk-width-medium-5-6{width:83.333%}.wk-noconflict .uk-width-medium-1-10{width:10%}.wk-noconflict .uk-width-medium-3-10{width:30%}.wk-noconflict .uk-width-medium-7-10{width:70%}.wk-noconflict .uk-width-medium-9-10{width:90%}.wk-noconflict [class*=uk-push-],.wk-noconflict [class*=uk-pull-]{position:relative}.wk-noconflict .uk-push-1-2,.wk-noconflict .uk-push-2-4,.wk-noconflict .uk-push-3-6,.wk-noconflict .uk-push-5-10{left:50%}.wk-noconflict .uk-push-1-3,.wk-noconflict .uk-push-2-6{left:33.333%}.wk-noconflict .uk-push-2-3,.wk-noconflict .uk-push-4-6{left:66.666%}.wk-noconflict .uk-push-1-4{left:25%}.wk-noconflict .uk-push-3-4{left:75%}.wk-noconflict .uk-push-1-5,.wk-noconflict .uk-push-2-10{left:20%}.wk-noconflict .uk-push-2-5,.wk-noconflict .uk-push-4-10{left:40%}.wk-noconflict .uk-push-3-5,.wk-noconflict .uk-push-6-10{left:60%}.wk-noconflict .uk-push-4-5,.wk-noconflict .uk-push-8-10{left:80%}.wk-noconflict .uk-push-1-6{left:16.666%}.wk-noconflict .uk-push-5-6{left:83.333%}.wk-noconflict .uk-push-1-10{left:10%}.wk-noconflict .uk-push-3-10{left:30%}.wk-noconflict .uk-push-7-10{left:70%}.wk-noconflict .uk-push-9-10{left:90%}.wk-noconflict .uk-pull-1-2,.wk-noconflict .uk-pull-2-4,.wk-noconflict .uk-pull-3-6,.wk-noconflict .uk-pull-5-10{left:-50%}.wk-noconflict .uk-pull-1-3,.wk-noconflict .uk-pull-2-6{left:-33.333%}.wk-noconflict .uk-pull-2-3,.wk-noconflict .uk-pull-4-6{left:-66.666%}.wk-noconflict .uk-pull-1-4{left:-25%}.wk-noconflict .uk-pull-3-4{left:-75%}.wk-noconflict .uk-pull-1-5,.wk-noconflict .uk-pull-2-10{left:-20%}.wk-noconflict .uk-pull-2-5,.wk-noconflict .uk-pull-4-10{left:-40%}.wk-noconflict .uk-pull-3-5,.wk-noconflict .uk-pull-6-10{left:-60%}.wk-noconflict .uk-pull-4-5,.wk-noconflict .uk-pull-8-10{left:-80%}.wk-noconflict .uk-pull-1-6{left:-16.666%}.wk-noconflict .uk-pull-5-6{left:-83.333%}.wk-noconflict .uk-pull-1-10{left:-10%}.wk-noconflict .uk-pull-3-10{left:-30%}.wk-noconflict .uk-pull-7-10{left:-70%}.wk-noconflict .uk-pull-9-10{left:-90%}}@media (min-width:960px){.wk-noconflict .uk-width-large-1-1{width:100%}.wk-noconflict .uk-width-large-1-2,.wk-noconflict .uk-width-large-2-4,.wk-noconflict .uk-width-large-3-6,.wk-noconflict .uk-width-large-5-10{width:50%}.wk-noconflict .uk-width-large-1-3,.wk-noconflict .uk-width-large-2-6{width:33.333%}.wk-noconflict .uk-width-large-2-3,.wk-noconflict .uk-width-large-4-6{width:66.666%}.wk-noconflict .uk-width-large-1-4{width:25%}.wk-noconflict .uk-width-large-3-4{width:75%}.wk-noconflict .uk-width-large-1-5,.wk-noconflict .uk-width-large-2-10{width:20%}.wk-noconflict .uk-width-large-2-5,.wk-noconflict .uk-width-large-4-10{width:40%}.wk-noconflict .uk-width-large-3-5,.wk-noconflict .uk-width-large-6-10{width:60%}.wk-noconflict .uk-width-large-4-5,.wk-noconflict .uk-width-large-8-10{width:80%}.wk-noconflict .uk-width-large-1-6{width:16.666%}.wk-noconflict .uk-width-large-5-6{width:83.333%}.wk-noconflict .uk-width-large-1-10{width:10%}.wk-noconflict .uk-width-large-3-10{width:30%}.wk-noconflict .uk-width-large-7-10{width:70%}.wk-noconflict .uk-width-large-9-10{width:90%}}@media (max-width:767px){.wk-noconflict .uk-grid-divider:not(:empty){margin-left:-10px;margin-right:-10px}.wk-noconflict .uk-grid-divider>*{padding-left:10px;padding-right:10px}}.wk-noconflict .uk-panel{display:block;position:relative}.wk-noconflict .uk-panel,.wk-noconflict .uk-panel:hover{text-decoration:none}.wk-noconflict .uk-panel:after,.wk-noconflict .uk-panel:before{content:"";display:table}.wk-noconflict .uk-panel>:not(.uk-panel-title):last-child{margin-bottom:0}.wk-noconflict .uk-panel-title{margin-top:0;margin-bottom:20px;font-weight:400;text-transform:uppercase;color:#444}.wk-noconflict .uk-panel-badge{position:absolute;top:0;right:0;z-index:1}.wk-noconflict .uk-panel-box .uk-panel-badge,.wk-noconflict .uk-panel-hover .uk-panel-badge{top:10px;right:10px}.wk-noconflict .uk-panel-teaser{margin-bottom:20px}.wk-noconflict .uk-panel-body{padding:20px}.wk-noconflict .uk-panel-box{padding:20px;background:#fff;color:#444;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-panel-box-hover:hover{background:#37a5e4;color:#fff;cursor:pointer}.wk-noconflict .uk-panel-box .uk-panel-title{color:#444}.wk-noconflict .uk-panel-box>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-box>.uk-nav-side{margin:0 -20px}.wk-noconflict .uk-panel-box-primary{background-color:#fafafa;color:#444}.wk-noconflict .uk-panel-box-primary .uk-panel-title,.wk-noconflict .uk-panel-box-primary-hover:hover{color:#444}.wk-noconflict .uk-panel-box-secondary{background-color:#f5f5f5;color:#444}.wk-noconflict .uk-panel-box-secondary .uk-panel-title,.wk-noconflict .uk-panel-box-secondary-hover:hover{color:#444}.wk-noconflict .uk-panel-hover{padding:20px;color:#444;border:1px solid transparent;border-radius:2px}.wk-noconflict .uk-panel-hover:hover{background:#fff;color:#444;border-color:#e5e5e5}.wk-noconflict .uk-panel-hover>.uk-panel-teaser{margin-top:-21px;margin-left:-21px;margin-right:-21px}.wk-noconflict .uk-panel-header .uk-panel-title{padding-bottom:10px;border-bottom:1px solid #e5e5e5;color:#444}.wk-noconflict .uk-panel-space{padding:30px}.wk-noconflict .uk-panel-space .uk-panel-badge{top:30px;right:30px}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{content:"";display:block;position:absolute;top:-20px;left:0;right:0;border-top:1px solid #e5e5e5}@media (min-width:1400px){.wk-noconflict .uk-width-xlarge-1-1{width:100%}.wk-noconflict .uk-width-xlarge-1-2,.wk-noconflict .uk-width-xlarge-2-4,.wk-noconflict .uk-width-xlarge-3-6,.wk-noconflict .uk-width-xlarge-5-10{width:50%}.wk-noconflict .uk-width-xlarge-1-3,.wk-noconflict .uk-width-xlarge-2-6{width:33.333%}.wk-noconflict .uk-width-xlarge-2-3,.wk-noconflict .uk-width-xlarge-4-6{width:66.666%}.wk-noconflict .uk-width-xlarge-1-4{width:25%}.wk-noconflict .uk-width-xlarge-3-4{width:75%}.wk-noconflict .uk-width-xlarge-1-5,.wk-noconflict .uk-width-xlarge-2-10{width:20%}.wk-noconflict .uk-width-xlarge-2-5,.wk-noconflict .uk-width-xlarge-4-10{width:40%}.wk-noconflict .uk-width-xlarge-3-5,.wk-noconflict .uk-width-xlarge-6-10{width:60%}.wk-noconflict .uk-width-xlarge-4-5,.wk-noconflict .uk-width-xlarge-8-10{width:80%}.wk-noconflict .uk-width-xlarge-1-6{width:16.666%}.wk-noconflict .uk-width-xlarge-5-6{width:83.333%}.wk-noconflict .uk-width-xlarge-1-10{width:10%}.wk-noconflict .uk-width-xlarge-3-10{width:30%}.wk-noconflict .uk-width-xlarge-7-10{width:70%}.wk-noconflict .uk-width-xlarge-9-10{width:90%}.wk-noconflict .uk-panel+.uk-panel-divider{margin-top:40px!important}.wk-noconflict .uk-panel+.uk-panel-divider:before{top:-20px}}.wk-noconflict .uk-active>.uk-panel-box-hover{background:#37a5e4;color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover *,.wk-noconflict .uk-panel-box-hover:hover *{color:#fff}.wk-noconflict .uk-active>.uk-panel-box-hover a,.wk-noconflict .uk-panel-box-hover:hover a{color:rgba(255,255,255,.8)}.wk-noconflict .uk-active>.uk-panel-box-hover a:hover,.wk-noconflict .uk-panel-box-hover:hover a:hover{color:#fff}.wk-noconflict .uk-panel-box .uk-panel-teaser{background-color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;border:1px solid #e5e5e5;border-bottom:none}.wk-noconflict .uk-active .uk-panel-hover{background:#fafafa;border-color:#e5e5e5}.wk-noconflict .uk-nav-dropdown .uk-nav-divider,.wk-noconflict .uk-nav-navbar .uk-nav-divider,.wk-noconflict .uk-nav-side .uk-nav-divider{border-top:1px solid #e5e5e5}.wk-noconflict .uk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.wk-noconflict .uk-cover{overflow:hidden}.wk-noconflict .uk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict [data-uk-cover]{position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.wk-noconflict .uk-nav,.wk-noconflict .uk-nav ul{margin:0;padding:0;list-style:none}.wk-noconflict .uk-nav li>a{display:block;text-decoration:none}.wk-noconflict .uk-nav>li>a{padding:5px 15px}.wk-noconflict .uk-nav ul{padding-left:15px}.wk-noconflict .uk-nav ul a{padding:2px 0}.wk-noconflict .uk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:400;font-size:12px}.wk-noconflict .uk-nav-header:not(:first-child){margin-top:20px}.wk-noconflict .uk-nav-divider{margin:9px 15px}.wk-noconflict ul.uk-nav-sub{padding:5px 0 5px 15px}.wk-noconflict .uk-nav-parent-icon>.uk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.wk-noconflict .uk-nav-parent-icon>.uk-parent.uk-open>a:after{content:"\f107"}.wk-noconflict .uk-nav-side>li>a{color:#999}.wk-noconflict .uk-nav-side>li>a:focus,.wk-noconflict .uk-nav-side>li>a:hover{background:#37a5e4;color:#fff;outline:0}.wk-noconflict .uk-nav-side>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-side .uk-nav-header{color:#444}.wk-noconflict .uk-nav-side ul a{color:#37a5e5}.wk-noconflict .uk-nav-side ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-dropdown>li>a{color:#444}.wk-noconflict .uk-nav-dropdown>li>a:focus,.wk-noconflict .uk-nav-dropdown>li>a:hover{background:0 0;color:#37a5e5;outline:0}.wk-noconflict .uk-nav-dropdown .uk-nav-header{color:#999}.wk-noconflict .uk-nav-dropdown ul a{color:#37a5e5}.wk-noconflict .uk-nav-dropdown ul a:hover{color:#1889c7}.wk-noconflict .uk-nav-navbar>li>a{color:#999}.wk-noconflict .uk-nav-navbar>li>a:focus,.wk-noconflict .uk-nav-navbar>li>a:hover{background:0 0;color:#444;outline:0}.wk-noconflict .uk-nav-navbar .uk-nav-header,.wk-noconflict .uk-nav-navbar ul a{color:#999}.wk-noconflict .uk-nav-navbar ul a:hover{color:#444}.wk-noconflict .uk-nav-offcanvas>li>a{color:#444;padding:10px 15px}.wk-noconflict .uk-nav-offcanvas>.uk-open>a,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:focus,.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas>li>a:hover{background:#f5f5f5;color:#444;outline:0}.wk-noconflict html .uk-nav.uk-nav-offcanvas>li.uk-active>a{background:#f5f5f5;color:#444}.wk-noconflict .uk-nav-offcanvas .uk-nav-header{color:#999}.wk-noconflict .uk-nav-offcanvas .uk-nav-divider{border-top:1px solid #ddd}.wk-noconflict .uk-nav-offcanvas ul a{color:#ccc}.wk-noconflict html:not(.uk-touch) .uk-nav-offcanvas ul a:hover{color:#fff}.wk-noconflict .uk-nav-side>li:hover>a{background:#37a5e4;color:#fff}.wk-noconflict .uk-nav>li:not(.uk-nav-divider){margin:0}.wk-noconflict .uk-nav a:focus{box-shadow:none}.wk-noconflict .uk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0;list-style:none}.wk-noconflict .uk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;position:relative;float:left;margin-bottom:0}.wk-noconflict .uk-subnav:after,.wk-noconflict .uk-subnav:before{content:"";display:block;overflow:hidden}.wk-noconflict .uk-subnav>*>*{display:inline-block;color:#444}.wk-noconflict .uk-subnav>*>:focus,.wk-noconflict .uk-subnav>*>:hover{color:#37a5e5;text-decoration:none}.wk-noconflict .uk-subnav>.uk-active>*{color:#37a5e5}.wk-noconflict .uk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.wk-noconflict .uk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #e5e5e5}.wk-noconflict .uk-subnav-pill>*>*{padding:3px 9px;border-radius:2px}.wk-noconflict .uk-subnav-pill>*>:focus,.wk-noconflict .uk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.wk-noconflict .uk-subnav-pill>.uk-active>*{background:#37a5e4;color:#fff;box-shadow:none}.wk-noconflict .uk-subnav>.uk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.wk-noconflict .uk-breadcrumb{padding:0;list-style:none;font-size:0}.wk-noconflict .uk-breadcrumb>li{font-size:1rem;vertical-align:top}.wk-noconflict .uk-breadcrumb>li,.wk-noconflict .uk-breadcrumb>li>a,.wk-noconflict .uk-breadcrumb>li>span{display:inline-block}.wk-noconflict .uk-breadcrumb>li:nth-child(n+2):before{content:"/";display:inline-block;margin:0 8px;color:#999}.wk-noconflict .uk-breadcrumb>li:not(.uk-active)>span,.wk-noconflict .uk-breadcrumb>li>a{color:#999}.wk-noconflict .uk-breadcrumb>li>a:hover{color:#444}.wk-noconflict .uk-tab{margin:0;padding:0;list-style:none;border-bottom:1px solid #ddd}.wk-noconflict .uk-tab:after,.wk-noconflict .uk-tab:before{content:"";display:table}.wk-noconflict .uk-tab>li{margin-bottom:-1px;float:left;position:relative}.wk-noconflict .uk-tab>li>a{display:block;padding:8px 12px;border:1px solid transparent;border-bottom-width:0;color:#07D;text-decoration:none}.wk-noconflict .uk-tab>li:nth-child(n+2)>a{margin-left:5px}.wk-noconflict .uk-tab>li.uk-open>a,.wk-noconflict .uk-tab>li>a:focus,.wk-noconflict .uk-tab>li>a:hover{border-color:#f5f5f5;background:#f5f5f5;color:#059;outline:0}.wk-noconflict .uk-tab>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab>li:not(.uk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.wk-noconflict .uk-tab>li.uk-active>a{border-color:#ddd #ddd transparent;background:#fff;color:#444}.wk-noconflict .uk-tab>li.uk-disabled>a{color:#999;cursor:text}.uk-notify-message,.wk-noconflict .uk-button:not(:disabled),.wk-noconflict .uk-form input[type=checkbox]:not(:disabled),.wk-noconflict .uk-form input[type=radio]:not(:disabled){cursor:pointer}.wk-noconflict .uk-tab>li.uk-disabled.uk-active>a,.wk-noconflict .uk-tab>li.uk-disabled>a:focus,.wk-noconflict .uk-tab>li.uk-disabled>a:hover{background:0 0;border-color:transparent}.wk-noconflict .uk-tab-flip>li{float:right}.wk-noconflict .uk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.wk-noconflict .uk-tab>li.uk-tab-responsive>a{margin-left:0;margin-right:0}.wk-noconflict .uk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.wk-noconflict .uk-tab-center{border-bottom:1px solid #ddd}.wk-noconflict .uk-tab-center-bottom{border-bottom:none;border-top:1px solid #ddd}.wk-noconflict .uk-tab-center:after,.wk-noconflict .uk-tab-center:before{content:"";display:table}.wk-noconflict .uk-tab-center .uk-tab{position:relative;right:50%;border:none;float:right}.wk-noconflict .uk-tab-center .uk-tab>li{position:relative;right:-50%}.wk-noconflict .uk-tab-bottom{border-top:1px solid #ddd;border-bottom:none}.wk-noconflict .uk-tab-bottom>li{margin-top:-1px;margin-bottom:0}.wk-noconflict .uk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0}.wk-noconflict .uk-tab-bottom>li.uk-open:not(.uk-active)>a,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-bottom>li:not(.uk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.wk-noconflict .uk-tab-bottom>li.uk-active>a{border-top-color:transparent;border-bottom-color:#ddd}.wk-noconflict .uk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.wk-noconflict .uk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #ddd;z-index:-1}.wk-noconflict .uk-tab-grid>li:first-child>a{margin-left:5px}.wk-noconflict .uk-tab-grid.uk-tab-bottom{border-top:none}.wk-noconflict .uk-tab-grid.uk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.wk-noconflict .uk-tab-left,.wk-noconflict .uk-tab-right{border-bottom:none}.wk-noconflict .uk-tab-left>li,.wk-noconflict .uk-tab-right>li{margin-bottom:0;float:none}.wk-noconflict .uk-tab-left>li>a,.wk-noconflict .uk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.wk-noconflict .uk-tab-left>li:nth-child(n+2)>a,.wk-noconflict .uk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.wk-noconflict .uk-tab-left>li.uk-active>a,.wk-noconflict .uk-tab-right>li.uk-active>a{border-color:#ddd}.wk-noconflict .uk-tab-left{border-right:1px solid #ddd}.wk-noconflict .uk-tab-left>li{margin-right:-1px}.wk-noconflict .uk-tab-left>li>a{border-bottom-width:1px;border-right-width:0}.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-left>li:not(.uk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.wk-noconflict .uk-tab-left>li.uk-active>a{border-right-color:transparent}.wk-noconflict .uk-tab-right{border-left:1px solid #ddd}.wk-noconflict .uk-tab-right>li{margin-left:-1px}.wk-noconflict .uk-tab-right>li>a{border-bottom-width:1px;border-left-width:0}.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:focus,.wk-noconflict .uk-tab-right>li:not(.uk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.wk-noconflict .uk-tab-right>li.uk-active>a{border-left-color:transparent}}.wk-noconflict .uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:20px}.wk-noconflict *+.uk-table{margin-top:20px}.wk-noconflict .uk-table td,.wk-noconflict .uk-table th{padding:10px;border-bottom:1px solid #e5e5e5}.wk-noconflict .uk-table th{text-align:left}.wk-noconflict .uk-table td{vertical-align:top}.wk-noconflict .uk-table thead th{vertical-align:bottom}.wk-noconflict .uk-table caption,.wk-noconflict .uk-table tfoot{font-size:12px;font-style:italic}.wk-noconflict .uk-table caption{text-align:left;color:#999}.wk-noconflict .uk-table tbody tr.uk-active{background:#ffd}.wk-noconflict .uk-table-middle,.wk-noconflict .uk-table-middle td{vertical-align:middle!important}.wk-noconflict .uk-table-striped tbody tr:nth-of-type(odd){background:#fafafa}.wk-noconflict .uk-table .uk-active,.wk-noconflict .uk-table-hover tbody tr:hover{background:#ffd}.wk-noconflict .uk-table-condensed td{padding:4px 8px}.wk-noconflict .uk-table tbody tr:last-child td{border-bottom:none}.wk-noconflict .uk-form input,.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.wk-noconflict .uk-form select{text-transform:none}.wk-noconflict .uk-form optgroup{font:inherit;font-weight:700}.wk-noconflict .uk-form input::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-form input[type=checkbox],.wk-noconflict .uk-form input[type=radio]{padding:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form textarea{-webkit-appearance:none}.wk-noconflict .uk-form input[type=search]::-webkit-search-cancel-button,.wk-noconflict .uk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.wk-noconflict .uk-form input[type=number]::-webkit-inner-spin-button,.wk-noconflict .uk-form input[type=number]::-webkit-outer-spin-button{height:auto}.wk-noconflict .uk-form fieldset{border:none;margin:0;padding:0}.wk-noconflict .uk-form textarea{overflow:auto;vertical-align:top}.wk-noconflict .uk-form :invalid{box-shadow:none}.wk-noconflict .uk-form input:not([type=radio]):not([type=checkbox]),.wk-noconflict .uk-form select{vertical-align:middle}.wk-noconflict .uk-form>:last-child{margin-bottom:0}.wk-noconflict .uk-form input:not([type]),.wk-noconflict .uk-form input[type=text],.wk-noconflict .uk-form input[type=password],.wk-noconflict .uk-form input[type=email],.wk-noconflict .uk-form input[type=url],.wk-noconflict .uk-form input[type=search],.wk-noconflict .uk-form input[type=tel],.wk-noconflict .uk-form input[type=number],.wk-noconflict .uk-form input[type=datetime],.wk-noconflict .uk-form input[type=datetime-local],.wk-noconflict .uk-form input[type=date],.wk-noconflict .uk-form input[type=month],.wk-noconflict .uk-form input[type=time],.wk-noconflict .uk-form input[type=week],.wk-noconflict .uk-form input[type=color],.wk-noconflict .uk-form select,.wk-noconflict .uk-form textarea{height:35px;max-width:100%;padding:4px 6px;border:1px solid #e5e5e5;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:2px;box-shadow:none}.wk-noconflict .uk-form input:not([type]):focus,.wk-noconflict .uk-form input[type=text]:focus,.wk-noconflict .uk-form input[type=password]:focus,.wk-noconflict .uk-form input[type=email]:focus,.wk-noconflict .uk-form input[type=url]:focus,.wk-noconflict .uk-form input[type=search]:focus,.wk-noconflict .uk-form input[type=tel]:focus,.wk-noconflict .uk-form input[type=number]:focus,.wk-noconflict .uk-form input[type=datetime]:focus,.wk-noconflict .uk-form input[type=datetime-local]:focus,.wk-noconflict .uk-form input[type=date]:focus,.wk-noconflict .uk-form input[type=month]:focus,.wk-noconflict .uk-form input[type=time]:focus,.wk-noconflict .uk-form input[type=week]:focus,.wk-noconflict .uk-form input[type=color]:focus,.wk-noconflict .uk-form select:focus,.wk-noconflict .uk-form textarea:focus{border-color:#37a5e4;outline:0;background:#fff;color:#444}.wk-noconflict .uk-form input:not([type]):disabled,.wk-noconflict .uk-form input[type=text]:disabled,.wk-noconflict .uk-form input[type=password]:disabled,.wk-noconflict .uk-form input[type=email]:disabled,.wk-noconflict .uk-form input[type=url]:disabled,.wk-noconflict .uk-form input[type=search]:disabled,.wk-noconflict .uk-form input[type=tel]:disabled,.wk-noconflict .uk-form input[type=number]:disabled,.wk-noconflict .uk-form input[type=datetime]:disabled,.wk-noconflict .uk-form input[type=datetime-local]:disabled,.wk-noconflict .uk-form input[type=date]:disabled,.wk-noconflict .uk-form input[type=month]:disabled,.wk-noconflict .uk-form input[type=time]:disabled,.wk-noconflict .uk-form input[type=week]:disabled,.wk-noconflict .uk-form input[type=color]:disabled,.wk-noconflict .uk-form select:disabled,.wk-noconflict .uk-form textarea:disabled{border-color:#e5e5e5;background-color:#fafafa;color:#999}.wk-noconflict .uk-form :-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form ::-moz-placeholder{opacity:1;color:#999}.wk-noconflict .uk-form ::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form :disabled:-ms-input-placeholder{color:#999!important}.wk-noconflict .uk-form :disabled::-moz-placeholder{color:#999}.wk-noconflict .uk-form :disabled::-webkit-input-placeholder{color:#999}.wk-noconflict .uk-form legend{width:100%;border:0;padding:0 0 20px;font-size:18px;line-height:30px}.wk-noconflict .uk-form legend:after{content:"";display:block;border-bottom:1px solid #e5e5e5;width:100%}.wk-noconflict input:not([type]).uk-form-small,.wk-noconflict input[type].uk-form-small,.wk-noconflict select.uk-form-small,.wk-noconflict textarea.uk-form-small{height:30px;padding:3px;font-size:14px}.wk-noconflict input:not([type]).uk-form-large,.wk-noconflict input[type].uk-form-large,.wk-noconflict select.uk-form-large,.wk-noconflict textarea.uk-form-large{height:45px;padding:8px 6px;font-size:16px}.wk-noconflict .uk-form select[multiple],.wk-noconflict .uk-form select[size],.wk-noconflict .uk-form textarea{height:auto}.wk-noconflict .uk-form-danger{border-color:#f0615b!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-success{border-color:#80c96d!important;background:#fff!important;color:#444!important}.wk-noconflict .uk-form-blank{border-color:transparent!important;border-style:solid!important;background:0 0!important}.wk-noconflict .uk-form-blank:focus{border-color:#e5e5e5!important;background:#fff!important}.wk-noconflict input.uk-form-width-mini{width:40px}.wk-noconflict select.uk-form-width-mini{width:65px}.wk-noconflict .uk-form-width-small{width:130px}.wk-noconflict .uk-form-width-medium{width:200px}.wk-noconflict .uk-form-width-large{width:400px}.wk-noconflict .uk-form-row:after,.wk-noconflict .uk-form-row:before{content:"";display:table}.wk-noconflict .uk-form-row:after{clear:both}.wk-noconflict .uk-form-row+.uk-form-row{margin-top:20px}.wk-noconflict .uk-form-help-inline{display:inline-block;margin:0 0 0 10px}.wk-noconflict .uk-form-help-block{margin:5px 0 0;color:#999;font-style:italic}.wk-noconflict .uk-form-controls>:first-child{margin-top:0}.wk-noconflict .uk-form-controls>:last-child{margin-bottom:0}.wk-noconflict .uk-form-controls-condensed{margin:10px 0}.wk-noconflict .uk-form-stacked .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}@media (max-width:959px){.wk-noconflict .uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px;font-weight:400;font-size:12px;line-height:18px;text-transform:uppercase}}@media (min-width:960px){.wk-noconflict .uk-form-horizontal .uk-form-label{width:150px;margin-top:7px;float:left;font-weight:700;text-align:right}.wk-noconflict .uk-form-horizontal .uk-form-controls{margin-left:180px}.wk-noconflict .uk-form-horizontal .uk-form-controls-text{padding-top:7px}}.wk-noconflict .uk-form-icon{display:inline-block;position:relative;max-width:100%}.wk-noconflict .uk-form-icon>[class*=uk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.wk-noconflict .uk-form-icon:not(.uk-form-icon-flip)>input{padding-left:30px!important}.wk-noconflict .uk-form-icon-flip>[class*=uk-icon-]{right:0}.wk-noconflict .uk-form-icon-flip>input{padding-right:30px!important}.wk-noconflict .uk-button::-moz-focus-inner{border:0;padding:0}.wk-noconflict .uk-button{-webkit-appearance:none;margin:0;border:none;overflow:visible;font:inherit;color:#444;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 15px;background:#f5f5f5;vertical-align:middle;line-height:33px;min-height:35px;font-size:1rem;text-decoration:none;text-align:center;border:1px solid rgba(0,0,0,.1);border-radius:2px}.wk-noconflict .uk-button:focus,.wk-noconflict .uk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-button.uk-active,.wk-noconflict .uk-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-button-primary{background-color:#37a5e4;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary:focus,.wk-noconflict .uk-button-primary:hover{background-color:#2495d6;color:#fff;border-color:transparent}.wk-noconflict .uk-button-primary.uk-active,.wk-noconflict .uk-button-primary:active{background-color:#1889c6;color:#fff;border-color:rgba(16,90,130,.5);box-shadow:inset 0 1px 5px -1px rgba(16,90,130,.7)}.wk-noconflict .uk-button-success{background-color:#80c96d;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success:focus,.wk-noconflict .uk-button-success:hover{background-color:#6dbc58;color:#fff;border-color:transparent}.wk-noconflict .uk-button-success.uk-active,.wk-noconflict .uk-button-success:active{background-color:#61b54c;color:#fff;border-color:rgba(68,128,53,.5);box-shadow:inset 0 1px 5px -1px rgba(68,128,53,.7)}.wk-noconflict .uk-button-danger{background-color:#f0615b;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger:focus,.wk-noconflict .uk-button-danger:hover{background-color:#e54f49;color:#fff;border-color:transparent}.wk-noconflict .uk-button-danger.uk-active,.wk-noconflict .uk-button-danger:active{background-color:#e4463a;color:#fff;border-color:rgba(162,32,22,.5);box-shadow:inset 0 1px 5px -1px rgba(162,32,22,.7)}.wk-noconflict .uk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.1);box-shadow:none}.wk-noconflict .uk-button-link,.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:disabled,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none}.wk-noconflict .uk-button-link{color:#37a5e5}.wk-noconflict .uk-button-link.uk-active,.wk-noconflict .uk-button-link:active,.wk-noconflict .uk-button-link:focus,.wk-noconflict .uk-button-link:hover{color:#1889c7;text-decoration:none}.wk-noconflict .uk-button-link:disabled{color:#999}.wk-noconflict .uk-button-link:focus{outline:dotted 1px}.wk-noconflict .uk-button-mini{min-height:22px;padding:0 8px;line-height:20px;font-size:12px}.wk-noconflict .uk-button-small{min-height:30px;padding:0 12px;line-height:28px;font-size:12px}.wk-noconflict .uk-button-large{min-height:45px;padding:0 20px;line-height:43px;font-size:16px}.wk-noconflict .uk-button-group{display:inline-block;vertical-align:middle;position:relative;font-size:0;white-space:nowrap}.wk-noconflict .uk-button-group>*{display:inline-block}.wk-noconflict .uk-button-group .uk-button{vertical-align:top}.wk-noconflict .uk-button-dropdown{display:inline-block;vertical-align:middle;position:relative}.wk-noconflict .uk-button-group>.uk-button:not(:first-child):not(:last-child),.wk-noconflict .uk-button-group>div:not(:first-child):not(:last-child) .uk-button{border-radius:0}.wk-noconflict .uk-button-group>.uk-button:first-child,.wk-noconflict .uk-button-group>div:first-child .uk-button{border-top-right-radius:0;border-bottom-right-radius:0}.wk-noconflict .uk-button-group>.uk-button:last-child,.wk-noconflict .uk-button-group>div:last-child .uk-button{border-top-left-radius:0;border-bottom-left-radius:0}.wk-noconflict .uk-button-group>.uk-button:nth-child(n+2),.wk-noconflict .uk-button-group>div:nth-child(n+2) .uk-button{margin-left:-1px}.wk-noconflict .uk-button-group .uk-button:active,.wk-noconflict .uk-button-group .uk-button:hover{position:relative}@font-face{font-family:FontAwesome;src:url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff2") format('woff2'),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.woff") format("woff"),url("/administrator/components/com_widgetkit/vendor/assets/uikit/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:400;font-style:normal}.wk-noconflict [class*=uk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wk-noconflict [class*=uk-icon-],.wk-noconflict [class*=uk-icon-]:focus,.wk-noconflict [class*=uk-icon-]:hover{text-decoration:none}.wk-noconflict .uk-icon-small{font-size:150%;vertical-align:-10%}.wk-noconflict .uk-icon-medium{font-size:200%;vertical-align:-16%}.wk-noconflict .uk-icon-large{font-size:250%;vertical-align:-22%}.wk-noconflict .uk-icon-justify{width:1em;text-align:center}.wk-noconflict .uk-icon-spin{display:inline-block;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-icon-hover{color:#999;position:relative;z-index:1}.wk-noconflict .uk-icon-hover:hover{color:#444}.wk-noconflict .uk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid rgba(0,0,0,.1)}.wk-noconflict .uk-icon-button:focus,.wk-noconflict .uk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.15)}.wk-noconflict .uk-icon-button:active{background-color:#eee;color:#444;box-shadow:inset 0 1px 5px -1px rgba(0,0,0,.1)}.wk-noconflict .uk-icon-glass:before{content:"\f000"}.wk-noconflict .uk-icon-music:before{content:"\f001"}.wk-noconflict .uk-icon-search:before{content:"\f002"}.wk-noconflict .uk-icon-envelope-o:before{content:"\f003"}.wk-noconflict .uk-icon-heart:before{content:"\f004"}.wk-noconflict .uk-icon-star:before{content:"\f005"}.wk-noconflict .uk-icon-star-o:before{content:"\f006"}.wk-noconflict .uk-icon-user:before{content:"\f007"}.wk-noconflict .uk-icon-film:before{content:"\f008"}.wk-noconflict .uk-icon-th-large:before{content:"\f009"}.wk-noconflict .uk-icon-th:before{content:"\f00a"}.wk-noconflict .uk-icon-th-list:before{content:"\f00b"}.wk-noconflict .uk-icon-check:before{content:"\f00c"}.wk-noconflict .uk-icon-close:before,.wk-noconflict .uk-icon-remove:before,.wk-noconflict .uk-icon-times:before{content:"\f00d"}.wk-noconflict .uk-icon-search-plus:before{content:"\f00e"}.wk-noconflict .uk-icon-search-minus:before{content:"\f010"}.wk-noconflict .uk-icon-power-off:before{content:"\f011"}.wk-noconflict .uk-icon-signal:before{content:"\f012"}.wk-noconflict .uk-icon-cog:before,.wk-noconflict .uk-icon-gear:before{content:"\f013"}.wk-noconflict .uk-icon-trash-o:before{content:"\f014"}.wk-noconflict .uk-icon-home:before{content:"\f015"}.wk-noconflict .uk-icon-file-o:before{content:"\f016"}.wk-noconflict .uk-icon-clock-o:before{content:"\f017"}.wk-noconflict .uk-icon-road:before{content:"\f018"}.wk-noconflict .uk-icon-download:before{content:"\f019"}.wk-noconflict .uk-icon-arrow-circle-o-down:before{content:"\f01a"}.wk-noconflict .uk-icon-arrow-circle-o-up:before{content:"\f01b"}.wk-noconflict .uk-icon-inbox:before{content:"\f01c"}.wk-noconflict .uk-icon-play-circle-o:before{content:"\f01d"}.wk-noconflict .uk-icon-repeat:before,.wk-noconflict .uk-icon-rotate-right:before{content:"\f01e"}.wk-noconflict .uk-icon-refresh:before{content:"\f021"}.wk-noconflict .uk-icon-list-alt:before{content:"\f022"}.wk-noconflict .uk-icon-lock:before{content:"\f023"}.wk-noconflict .uk-icon-flag:before{content:"\f024"}.wk-noconflict .uk-icon-headphones:before{content:"\f025"}.wk-noconflict .uk-icon-volume-off:before{content:"\f026"}.wk-noconflict .uk-icon-volume-down:before{content:"\f027"}.wk-noconflict .uk-icon-volume-up:before{content:"\f028"}.wk-noconflict .uk-icon-qrcode:before{content:"\f029"}.wk-noconflict .uk-icon-barcode:before{content:"\f02a"}.wk-noconflict .uk-icon-tag:before{content:"\f02b"}.wk-noconflict .uk-icon-tags:before{content:"\f02c"}.wk-noconflict .uk-icon-book:before{content:"\f02d"}.wk-noconflict .uk-icon-bookmark:before{content:"\f02e"}.wk-noconflict .uk-icon-print:before{content:"\f02f"}.wk-noconflict .uk-icon-camera:before{content:"\f030"}.wk-noconflict .uk-icon-font:before{content:"\f031"}.wk-noconflict .uk-icon-bold:before{content:"\f032"}.wk-noconflict .uk-icon-italic:before{content:"\f033"}.wk-noconflict .uk-icon-text-height:before{content:"\f034"}.wk-noconflict .uk-icon-text-width:before{content:"\f035"}.wk-noconflict .uk-icon-align-left:before{content:"\f036"}.wk-noconflict .uk-icon-align-center:before{content:"\f037"}.wk-noconflict .uk-icon-align-right:before{content:"\f038"}.wk-noconflict .uk-icon-align-justify:before{content:"\f039"}.wk-noconflict .uk-icon-list:before{content:"\f03a"}.wk-noconflict .uk-icon-dedent:before,.wk-noconflict .uk-icon-outdent:before{content:"\f03b"}.wk-noconflict .uk-icon-indent:before{content:"\f03c"}.wk-noconflict .uk-icon-video-camera:before{content:"\f03d"}.wk-noconflict .uk-icon-image:before,.wk-noconflict .uk-icon-photo:before,.wk-noconflict .uk-icon-picture-o:before{content:"\f03e"}.wk-noconflict .uk-icon-pencil:before{content:"\f040"}.wk-noconflict .uk-icon-map-marker:before{content:"\f041"}.wk-noconflict .uk-icon-adjust:before{content:"\f042"}.wk-noconflict .uk-icon-tint:before{content:"\f043"}.wk-noconflict .uk-icon-edit:before,.wk-noconflict .uk-icon-pencil-square-o:before{content:"\f044"}.wk-noconflict .uk-icon-share-square-o:before{content:"\f045"}.wk-noconflict .uk-icon-check-square-o:before{content:"\f046"}.wk-noconflict .uk-icon-arrows:before{content:"\f047"}.wk-noconflict .uk-icon-step-backward:before{content:"\f048"}.wk-noconflict .uk-icon-fast-backward:before{content:"\f049"}.wk-noconflict .uk-icon-backward:before{content:"\f04a"}.wk-noconflict .uk-icon-play:before{content:"\f04b"}.wk-noconflict .uk-icon-pause:before{content:"\f04c"}.wk-noconflict .uk-icon-stop:before{content:"\f04d"}.wk-noconflict .uk-icon-forward:before{content:"\f04e"}.wk-noconflict .uk-icon-fast-forward:before{content:"\f050"}.wk-noconflict .uk-icon-step-forward:before{content:"\f051"}.wk-noconflict .uk-icon-eject:before{content:"\f052"}.wk-noconflict .uk-icon-chevron-left:before{content:"\f053"}.wk-noconflict .uk-icon-chevron-right:before{content:"\f054"}.wk-noconflict .uk-icon-plus-circle:before{content:"\f055"}.wk-noconflict .uk-icon-minus-circle:before{content:"\f056"}.wk-noconflict .uk-icon-times-circle:before{content:"\f057"}.wk-noconflict .uk-icon-check-circle:before{content:"\f058"}.wk-noconflict .uk-icon-question-circle:before{content:"\f059"}.wk-noconflict .uk-icon-info-circle:before{content:"\f05a"}.wk-noconflict .uk-icon-crosshairs:before{content:"\f05b"}.wk-noconflict .uk-icon-times-circle-o:before{content:"\f05c"}.wk-noconflict .uk-icon-check-circle-o:before{content:"\f05d"}.wk-noconflict .uk-icon-ban:before{content:"\f05e"}.wk-noconflict .uk-icon-arrow-left:before{content:"\f060"}.wk-noconflict .uk-icon-arrow-right:before{content:"\f061"}.wk-noconflict .uk-icon-arrow-up:before{content:"\f062"}.wk-noconflict .uk-icon-arrow-down:before{content:"\f063"}.wk-noconflict .uk-icon-mail-forward:before,.wk-noconflict .uk-icon-share:before{content:"\f064"}.wk-noconflict .uk-icon-expand:before{content:"\f065"}.wk-noconflict .uk-icon-compress:before{content:"\f066"}.wk-noconflict .uk-icon-plus:before{content:"\f067"}.wk-noconflict .uk-icon-minus:before{content:"\f068"}.wk-noconflict .uk-icon-asterisk:before{content:"\f069"}.wk-noconflict .uk-icon-exclamation-circle:before{content:"\f06a"}.wk-noconflict .uk-icon-gift:before{content:"\f06b"}.wk-noconflict .uk-icon-leaf:before{content:"\f06c"}.wk-noconflict .uk-icon-fire:before{content:"\f06d"}.wk-noconflict .uk-icon-eye:before{content:"\f06e"}.wk-noconflict .uk-icon-eye-slash:before{content:"\f070"}.wk-noconflict .uk-icon-exclamation-triangle:before,.wk-noconflict .uk-icon-warning:before{content:"\f071"}.wk-noconflict .uk-icon-plane:before{content:"\f072"}.wk-noconflict .uk-icon-calendar:before{content:"\f073"}.wk-noconflict .uk-icon-random:before{content:"\f074"}.wk-noconflict .uk-icon-comment:before{content:"\f075"}.wk-noconflict .uk-icon-magnet:before{content:"\f076"}.wk-noconflict .uk-icon-chevron-up:before{content:"\f077"}.wk-noconflict .uk-icon-chevron-down:before{content:"\f078"}.wk-noconflict .uk-icon-retweet:before{content:"\f079"}.wk-noconflict .uk-icon-shopping-cart:before{content:"\f07a"}.wk-noconflict .uk-icon-folder:before{content:"\f07b"}.wk-noconflict .uk-icon-folder-open:before{content:"\f07c"}.wk-noconflict .uk-icon-arrows-v:before{content:"\f07d"}.wk-noconflict .uk-icon-arrows-h:before{content:"\f07e"}.wk-noconflict .uk-icon-bar-chart-o:before,.wk-noconflict .uk-icon-bar-chart:before{content:"\f080"}.wk-noconflict .uk-icon-twitter-square:before{content:"\f081"}.wk-noconflict .uk-icon-facebook-square:before{content:"\f082"}.wk-noconflict .uk-icon-camera-retro:before{content:"\f083"}.wk-noconflict .uk-icon-key:before{content:"\f084"}.wk-noconflict .uk-icon-cogs:before,.wk-noconflict .uk-icon-gears:before{content:"\f085"}.wk-noconflict .uk-icon-comments:before{content:"\f086"}.wk-noconflict .uk-icon-thumbs-o-up:before{content:"\f087"}.wk-noconflict .uk-icon-thumbs-o-down:before{content:"\f088"}.wk-noconflict .uk-icon-star-half:before{content:"\f089"}.wk-noconflict .uk-icon-heart-o:before{content:"\f08a"}.wk-noconflict .uk-icon-sign-out:before{content:"\f08b"}.wk-noconflict .uk-icon-linkedin-square:before{content:"\f08c"}.wk-noconflict .uk-icon-thumb-tack:before{content:"\f08d"}.wk-noconflict .uk-icon-external-link:before{content:"\f08e"}.wk-noconflict .uk-icon-sign-in:before{content:"\f090"}.wk-noconflict .uk-icon-trophy:before{content:"\f091"}.wk-noconflict .uk-icon-github-square:before{content:"\f092"}.wk-noconflict .uk-icon-upload:before{content:"\f093"}.wk-noconflict .uk-icon-lemon-o:before{content:"\f094"}.wk-noconflict .uk-icon-phone:before{content:"\f095"}.wk-noconflict .uk-icon-square-o:before{content:"\f096"}.wk-noconflict .uk-icon-bookmark-o:before{content:"\f097"}.wk-noconflict .uk-icon-phone-square:before{content:"\f098"}.wk-noconflict .uk-icon-twitter:before{content:"\f099"}.wk-noconflict .uk-icon-facebook-f:before,.wk-noconflict .uk-icon-facebook:before{content:"\f09a"}.wk-noconflict .uk-icon-github:before{content:"\f09b"}.wk-noconflict .uk-icon-unlock:before{content:"\f09c"}.wk-noconflict .uk-icon-credit-card:before{content:"\f09d"}.wk-noconflict .uk-icon-rss:before{content:"\f09e"}.wk-noconflict .uk-icon-hdd-o:before{content:"\f0a0"}.wk-noconflict .uk-icon-bullhorn:before{content:"\f0a1"}.wk-noconflict .uk-icon-bell:before{content:"\f0f3"}.wk-noconflict .uk-icon-certificate:before{content:"\f0a3"}.wk-noconflict .uk-icon-hand-o-right:before{content:"\f0a4"}.wk-noconflict .uk-icon-hand-o-left:before{content:"\f0a5"}.wk-noconflict .uk-icon-hand-o-up:before{content:"\f0a6"}.wk-noconflict .uk-icon-hand-o-down:before{content:"\f0a7"}.wk-noconflict .uk-icon-arrow-circle-left:before{content:"\f0a8"}.wk-noconflict .uk-icon-arrow-circle-right:before{content:"\f0a9"}.wk-noconflict .uk-icon-arrow-circle-up:before{content:"\f0aa"}.wk-noconflict .uk-icon-arrow-circle-down:before{content:"\f0ab"}.wk-noconflict .uk-icon-globe:before{content:"\f0ac"}.wk-noconflict .uk-icon-wrench:before{content:"\f0ad"}.wk-noconflict .uk-icon-tasks:before{content:"\f0ae"}.wk-noconflict .uk-icon-filter:before{content:"\f0b0"}.wk-noconflict .uk-icon-briefcase:before{content:"\f0b1"}.wk-noconflict .uk-icon-arrows-alt:before{content:"\f0b2"}.wk-noconflict .uk-icon-group:before,.wk-noconflict .uk-icon-users:before{content:"\f0c0"}.wk-noconflict .uk-icon-chain:before,.wk-noconflict .uk-icon-link:before{content:"\f0c1"}.wk-noconflict .uk-icon-cloud:before{content:"\f0c2"}.wk-noconflict .uk-icon-flask:before{content:"\f0c3"}.wk-noconflict .uk-icon-cut:before,.wk-noconflict .uk-icon-scissors:before{content:"\f0c4"}.wk-noconflict .uk-icon-copy:before,.wk-noconflict .uk-icon-files-o:before{content:"\f0c5"}.wk-noconflict .uk-icon-paperclip:before{content:"\f0c6"}.wk-noconflict .uk-icon-floppy-o:before,.wk-noconflict .uk-icon-save:before{content:"\f0c7"}.wk-noconflict .uk-icon-square:before{content:"\f0c8"}.wk-noconflict .uk-icon-bars:before,.wk-noconflict .uk-icon-navicon:before,.wk-noconflict .uk-icon-reorder:before{content:"\f0c9"}.wk-noconflict .uk-icon-list-ul:before{content:"\f0ca"}.wk-noconflict .uk-icon-list-ol:before{content:"\f0cb"}.wk-noconflict .uk-icon-strikethrough:before{content:"\f0cc"}.wk-noconflict .uk-icon-underline:before{content:"\f0cd"}.wk-noconflict .uk-icon-table:before{content:"\f0ce"}.wk-noconflict .uk-icon-magic:before{content:"\f0d0"}.wk-noconflict .uk-icon-truck:before{content:"\f0d1"}.wk-noconflict .uk-icon-pinterest:before{content:"\f0d2"}.wk-noconflict .uk-icon-pinterest-square:before{content:"\f0d3"}.wk-noconflict .uk-icon-google-plus-square:before{content:"\f0d4"}.wk-noconflict .uk-icon-google-plus:before{content:"\f0d5"}.wk-noconflict .uk-icon-money:before{content:"\f0d6"}.wk-noconflict .uk-icon-caret-down:before{content:"\f0d7"}.wk-noconflict .uk-icon-caret-up:before{content:"\f0d8"}.wk-noconflict .uk-icon-caret-left:before{content:"\f0d9"}.wk-noconflict .uk-icon-caret-right:before{content:"\f0da"}.wk-noconflict .uk-icon-columns:before{content:"\f0db"}.wk-noconflict .uk-icon-sort:before,.wk-noconflict .uk-icon-unsorted:before{content:"\f0dc"}.wk-noconflict .uk-icon-sort-desc:before,.wk-noconflict .uk-icon-sort-down:before{content:"\f0dd"}.wk-noconflict .uk-icon-sort-asc:before,.wk-noconflict .uk-icon-sort-up:before{content:"\f0de"}.wk-noconflict .uk-icon-envelope:before{content:"\f0e0"}.wk-noconflict .uk-icon-linkedin:before{content:"\f0e1"}.wk-noconflict .uk-icon-rotate-left:before,.wk-noconflict .uk-icon-undo:before{content:"\f0e2"}.wk-noconflict .uk-icon-gavel:before,.wk-noconflict .uk-icon-legal:before{content:"\f0e3"}.wk-noconflict .uk-icon-dashboard:before,.wk-noconflict .uk-icon-tachometer:before{content:"\f0e4"}.wk-noconflict .uk-icon-comment-o:before{content:"\f0e5"}.wk-noconflict .uk-icon-comments-o:before{content:"\f0e6"}.wk-noconflict .uk-icon-bolt:before,.wk-noconflict .uk-icon-flash:before{content:"\f0e7"}.wk-noconflict .uk-icon-sitemap:before{content:"\f0e8"}.wk-noconflict .uk-icon-umbrella:before{content:"\f0e9"}.wk-noconflict .uk-icon-clipboard:before,.wk-noconflict .uk-icon-paste:before{content:"\f0ea"}.wk-noconflict .uk-icon-lightbulb-o:before{content:"\f0eb"}.wk-noconflict .uk-icon-exchange:before{content:"\f0ec"}.wk-noconflict .uk-icon-cloud-download:before{content:"\f0ed"}.wk-noconflict .uk-icon-cloud-upload:before{content:"\f0ee"}.wk-noconflict .uk-icon-user-md:before{content:"\f0f0"}.wk-noconflict .uk-icon-stethoscope:before{content:"\f0f1"}.wk-noconflict .uk-icon-suitcase:before{content:"\f0f2"}.wk-noconflict .uk-icon-bell-o:before{content:"\f0a2"}.wk-noconflict .uk-icon-coffee:before{content:"\f0f4"}.wk-noconflict .uk-icon-cutlery:before{content:"\f0f5"}.wk-noconflict .uk-icon-file-text-o:before{content:"\f0f6"}.wk-noconflict .uk-icon-building-o:before{content:"\f0f7"}.wk-noconflict .uk-icon-hospital-o:before{content:"\f0f8"}.wk-noconflict .uk-icon-ambulance:before{content:"\f0f9"}.wk-noconflict .uk-icon-medkit:before{content:"\f0fa"}.wk-noconflict .uk-icon-fighter-jet:before{content:"\f0fb"}.wk-noconflict .uk-icon-beer:before{content:"\f0fc"}.wk-noconflict .uk-icon-h-square:before{content:"\f0fd"}.wk-noconflict .uk-icon-plus-square:before{content:"\f0fe"}.wk-noconflict .uk-icon-angle-double-left:before{content:"\f100"}.wk-noconflict .uk-icon-angle-double-right:before{content:"\f101"}.wk-noconflict .uk-icon-angle-double-up:before{content:"\f102"}.wk-noconflict .uk-icon-angle-double-down:before{content:"\f103"}.wk-noconflict .uk-icon-angle-left:before{content:"\f104"}.wk-noconflict .uk-icon-angle-right:before{content:"\f105"}.wk-noconflict .uk-icon-angle-up:before{content:"\f106"}.wk-noconflict .uk-icon-angle-down:before{content:"\f107"}.wk-noconflict .uk-icon-desktop:before{content:"\f108"}.wk-noconflict .uk-icon-laptop:before{content:"\f109"}.wk-noconflict .uk-icon-tablet:before{content:"\f10a"}.wk-noconflict .uk-icon-mobile-phone:before,.wk-noconflict .uk-icon-mobile:before{content:"\f10b"}.wk-noconflict .uk-icon-circle-o:before{content:"\f10c"}.wk-noconflict .uk-icon-quote-left:before{content:"\f10d"}.wk-noconflict .uk-icon-quote-right:before{content:"\f10e"}.wk-noconflict .uk-icon-spinner:before{content:"\f110"}.wk-noconflict .uk-icon-circle:before{content:"\f111"}.wk-noconflict .uk-icon-mail-reply:before,.wk-noconflict .uk-icon-reply:before{content:"\f112"}.wk-noconflict .uk-icon-github-alt:before{content:"\f113"}.wk-noconflict .uk-icon-folder-o:before{content:"\f114"}.wk-noconflict .uk-icon-folder-open-o:before{content:"\f115"}.wk-noconflict .uk-icon-smile-o:before{content:"\f118"}.wk-noconflict .uk-icon-frown-o:before{content:"\f119"}.wk-noconflict .uk-icon-meh-o:before{content:"\f11a"}.wk-noconflict .uk-icon-gamepad:before{content:"\f11b"}.wk-noconflict .uk-icon-keyboard-o:before{content:"\f11c"}.wk-noconflict .uk-icon-flag-o:before{content:"\f11d"}.wk-noconflict .uk-icon-flag-checkered:before{content:"\f11e"}.wk-noconflict .uk-icon-terminal:before{content:"\f120"}.wk-noconflict .uk-icon-code:before{content:"\f121"}.wk-noconflict .uk-icon-mail-reply-all:before,.wk-noconflict .uk-icon-reply-all:before{content:"\f122"}.wk-noconflict .uk-icon-star-half-empty:before,.wk-noconflict .uk-icon-star-half-full:before,.wk-noconflict .uk-icon-star-half-o:before{content:"\f123"}.wk-noconflict .uk-icon-location-arrow:before{content:"\f124"}.wk-noconflict .uk-icon-crop:before{content:"\f125"}.wk-noconflict .uk-icon-code-fork:before{content:"\f126"}.wk-noconflict .uk-icon-chain-broken:before,.wk-noconflict .uk-icon-unlink:before{content:"\f127"}.wk-noconflict .uk-icon-question:before{content:"\f128"}.wk-noconflict .uk-icon-info:before{content:"\f129"}.wk-noconflict .uk-icon-exclamation:before{content:"\f12a"}.wk-noconflict .uk-icon-superscript:before{content:"\f12b"}.wk-noconflict .uk-icon-subscript:before{content:"\f12c"}.wk-noconflict .uk-icon-eraser:before{content:"\f12d"}.wk-noconflict .uk-icon-puzzle-piece:before{content:"\f12e"}.wk-noconflict .uk-icon-microphone:before{content:"\f130"}.wk-noconflict .uk-icon-microphone-slash:before{content:"\f131"}.wk-noconflict .uk-icon-shield:before{content:"\f132"}.wk-noconflict .uk-icon-calendar-o:before{content:"\f133"}.wk-noconflict .uk-icon-fire-extinguisher:before{content:"\f134"}.wk-noconflict .uk-icon-rocket:before{content:"\f135"}.wk-noconflict .uk-icon-maxcdn:before{content:"\f136"}.wk-noconflict .uk-icon-chevron-circle-left:before{content:"\f137"}.wk-noconflict .uk-icon-chevron-circle-right:before{content:"\f138"}.wk-noconflict .uk-icon-chevron-circle-up:before{content:"\f139"}.wk-noconflict .uk-icon-chevron-circle-down:before{content:"\f13a"}.wk-noconflict .uk-icon-html5:before{content:"\f13b"}.wk-noconflict .uk-icon-css3:before{content:"\f13c"}.wk-noconflict .uk-icon-anchor:before{content:"\f13d"}.wk-noconflict .uk-icon-unlock-alt:before{content:"\f13e"}.wk-noconflict .uk-icon-bullseye:before{content:"\f140"}.wk-noconflict .uk-icon-ellipsis-h:before{content:"\f141"}.wk-noconflict .uk-icon-ellipsis-v:before{content:"\f142"}.wk-noconflict .uk-icon-rss-square:before{content:"\f143"}.wk-noconflict .uk-icon-play-circle:before{content:"\f144"}.wk-noconflict .uk-icon-ticket:before{content:"\f145"}.wk-noconflict .uk-icon-minus-square:before{content:"\f146"}.wk-noconflict .uk-icon-minus-square-o:before{content:"\f147"}.wk-noconflict .uk-icon-level-up:before{content:"\f148"}.wk-noconflict .uk-icon-level-down:before{content:"\f149"}.wk-noconflict .uk-icon-check-square:before{content:"\f14a"}.wk-noconflict .uk-icon-pencil-square:before{content:"\f14b"}.wk-noconflict .uk-icon-external-link-square:before{content:"\f14c"}.wk-noconflict .uk-icon-share-square:before{content:"\f14d"}.wk-noconflict .uk-icon-compass:before{content:"\f14e"}.wk-noconflict .uk-icon-caret-square-o-down:before,.wk-noconflict .uk-icon-toggle-down:before{content:"\f150"}.wk-noconflict .uk-icon-caret-square-o-up:before,.wk-noconflict .uk-icon-toggle-up:before{content:"\f151"}.wk-noconflict .uk-icon-caret-square-o-right:before,.wk-noconflict .uk-icon-toggle-right:before{content:"\f152"}.wk-noconflict .uk-icon-eur:before,.wk-noconflict .uk-icon-euro:before{content:"\f153"}.wk-noconflict .uk-icon-gbp:before{content:"\f154"}.wk-noconflict .uk-icon-dollar:before,.wk-noconflict .uk-icon-usd:before{content:"\f155"}.wk-noconflict .uk-icon-inr:before,.wk-noconflict .uk-icon-rupee:before{content:"\f156"}.wk-noconflict .uk-icon-cny:before,.wk-noconflict .uk-icon-jpy:before,.wk-noconflict .uk-icon-rmb:before,.wk-noconflict .uk-icon-yen:before{content:"\f157"}.wk-noconflict .uk-icon-rouble:before,.wk-noconflict .uk-icon-rub:before,.wk-noconflict .uk-icon-ruble:before{content:"\f158"}.wk-noconflict .uk-icon-krw:before,.wk-noconflict .uk-icon-won:before{content:"\f159"}.wk-noconflict .uk-icon-bitcoin:before,.wk-noconflict .uk-icon-btc:before{content:"\f15a"}.wk-noconflict .uk-icon-file:before{content:"\f15b"}.wk-noconflict .uk-icon-file-text:before{content:"\f15c"}.wk-noconflict .uk-icon-sort-alpha-asc:before{content:"\f15d"}.wk-noconflict .uk-icon-sort-alpha-desc:before{content:"\f15e"}.wk-noconflict .uk-icon-sort-amount-asc:before{content:"\f160"}.wk-noconflict .uk-icon-sort-amount-desc:before{content:"\f161"}.wk-noconflict .uk-icon-sort-numeric-asc:before{content:"\f162"}.wk-noconflict .uk-icon-sort-numeric-desc:before{content:"\f163"}.wk-noconflict .uk-icon-thumbs-up:before{content:"\f164"}.wk-noconflict .uk-icon-thumbs-down:before{content:"\f165"}.wk-noconflict .uk-icon-youtube-square:before{content:"\f166"}.wk-noconflict .uk-icon-youtube:before{content:"\f167"}.wk-noconflict .uk-icon-xing:before{content:"\f168"}.wk-noconflict .uk-icon-xing-square:before{content:"\f169"}.wk-noconflict .uk-icon-youtube-play:before{content:"\f16a"}.wk-noconflict .uk-icon-dropbox:before{content:"\f16b"}.wk-noconflict .uk-icon-stack-overflow:before{content:"\f16c"}.wk-noconflict .uk-icon-instagram:before{content:"\f16d"}.wk-noconflict .uk-icon-flickr:before{content:"\f16e"}.wk-noconflict .uk-icon-adn:before{content:"\f170"}.wk-noconflict .uk-icon-bitbucket:before{content:"\f171"}.wk-noconflict .uk-icon-bitbucket-square:before{content:"\f172"}.wk-noconflict .uk-icon-tumblr:before{content:"\f173"}.wk-noconflict .uk-icon-tumblr-square:before{content:"\f174"}.wk-noconflict .uk-icon-long-arrow-down:before{content:"\f175"}.wk-noconflict .uk-icon-long-arrow-up:before{content:"\f176"}.wk-noconflict .uk-icon-long-arrow-left:before{content:"\f177"}.wk-noconflict .uk-icon-long-arrow-right:before{content:"\f178"}.wk-noconflict .uk-icon-apple:before{content:"\f179"}.wk-noconflict .uk-icon-windows:before{content:"\f17a"}.wk-noconflict .uk-icon-android:before{content:"\f17b"}.wk-noconflict .uk-icon-linux:before{content:"\f17c"}.wk-noconflict .uk-icon-dribbble:before{content:"\f17d"}.wk-noconflict .uk-icon-skype:before{content:"\f17e"}.wk-noconflict .uk-icon-foursquare:before{content:"\f180"}.wk-noconflict .uk-icon-trello:before{content:"\f181"}.wk-noconflict .uk-icon-female:before{content:"\f182"}.wk-noconflict .uk-icon-male:before{content:"\f183"}.wk-noconflict .uk-icon-gittip:before,.wk-noconflict .uk-icon-gratipay:before{content:"\f184"}.wk-noconflict .uk-icon-sun-o:before{content:"\f185"}.wk-noconflict .uk-icon-moon-o:before{content:"\f186"}.wk-noconflict .uk-icon-archive:before{content:"\f187"}.wk-noconflict .uk-icon-bug:before{content:"\f188"}.wk-noconflict .uk-icon-vk:before{content:"\f189"}.wk-noconflict .uk-icon-weibo:before{content:"\f18a"}.wk-noconflict .uk-icon-renren:before{content:"\f18b"}.wk-noconflict .uk-icon-pagelines:before{content:"\f18c"}.wk-noconflict .uk-icon-stack-exchange:before{content:"\f18d"}.wk-noconflict .uk-icon-arrow-circle-o-right:before{content:"\f18e"}.wk-noconflict .uk-icon-arrow-circle-o-left:before{content:"\f190"}.wk-noconflict .uk-icon-caret-square-o-left:before,.wk-noconflict .uk-icon-toggle-left:before{content:"\f191"}.wk-noconflict .uk-icon-dot-circle-o:before{content:"\f192"}.wk-noconflict .uk-icon-wheelchair:before{content:"\f193"}.wk-noconflict .uk-icon-vimeo-square:before{content:"\f194"}.wk-noconflict .uk-icon-try:before,.wk-noconflict .uk-icon-turkish-lira:before{content:"\f195"}.wk-noconflict .uk-icon-plus-square-o:before{content:"\f196"}.wk-noconflict .uk-icon-space-shuttle:before{content:"\f197"}.wk-noconflict .uk-icon-slack:before{content:"\f198"}.wk-noconflict .uk-icon-envelope-square:before{content:"\f199"}.wk-noconflict .uk-icon-wordpress:before{content:"\f19a"}.wk-noconflict .uk-icon-openid:before{content:"\f19b"}.wk-noconflict .uk-icon-bank:before,.wk-noconflict .uk-icon-institution:before,.wk-noconflict .uk-icon-university:before{content:"\f19c"}.wk-noconflict .uk-icon-graduation-cap:before,.wk-noconflict .uk-icon-mortar-board:before{content:"\f19d"}.wk-noconflict .uk-icon-yahoo:before{content:"\f19e"}.wk-noconflict .uk-icon-google:before{content:"\f1a0"}.wk-noconflict .uk-icon-reddit:before{content:"\f1a1"}.wk-noconflict .uk-icon-reddit-square:before{content:"\f1a2"}.wk-noconflict .uk-icon-stumbleupon-circle:before{content:"\f1a3"}.wk-noconflict .uk-icon-stumbleupon:before{content:"\f1a4"}.wk-noconflict .uk-icon-delicious:before{content:"\f1a5"}.wk-noconflict .uk-icon-digg:before{content:"\f1a6"}.wk-noconflict .uk-icon-pied-piper:before{content:"\f1a7"}.wk-noconflict .uk-icon-pied-piper-alt:before{content:"\f1a8"}.wk-noconflict .uk-icon-drupal:before{content:"\f1a9"}.wk-noconflict .uk-icon-joomla:before{content:"\f1aa"}.wk-noconflict .uk-icon-language:before{content:"\f1ab"}.wk-noconflict .uk-icon-fax:before{content:"\f1ac"}.wk-noconflict .uk-icon-building:before{content:"\f1ad"}.wk-noconflict .uk-icon-child:before{content:"\f1ae"}.wk-noconflict .uk-icon-paw:before{content:"\f1b0"}.wk-noconflict .uk-icon-spoon:before{content:"\f1b1"}.wk-noconflict .uk-icon-cube:before{content:"\f1b2"}.wk-noconflict .uk-icon-cubes:before{content:"\f1b3"}.wk-noconflict .uk-icon-behance:before{content:"\f1b4"}.wk-noconflict .uk-icon-behance-square:before{content:"\f1b5"}.wk-noconflict .uk-icon-steam:before{content:"\f1b6"}.wk-noconflict .uk-icon-steam-square:before{content:"\f1b7"}.wk-noconflict .uk-icon-recycle:before{content:"\f1b8"}.wk-noconflict .uk-icon-automobile:before,.wk-noconflict .uk-icon-car:before{content:"\f1b9"}.wk-noconflict .uk-icon-cab:before,.wk-noconflict .uk-icon-taxi:before{content:"\f1ba"}.wk-noconflict .uk-icon-tree:before{content:"\f1bb"}.wk-noconflict .uk-icon-spotify:before{content:"\f1bc"}.wk-noconflict .uk-icon-deviantart:before{content:"\f1bd"}.wk-noconflict .uk-icon-soundcloud:before{content:"\f1be"}.wk-noconflict .uk-icon-database:before{content:"\f1c0"}.wk-noconflict .uk-icon-file-pdf-o:before{content:"\f1c1"}.wk-noconflict .uk-icon-file-word-o:before{content:"\f1c2"}.wk-noconflict .uk-icon-file-excel-o:before{content:"\f1c3"}.wk-noconflict .uk-icon-file-powerpoint-o:before{content:"\f1c4"}.wk-noconflict .uk-icon-file-image-o:before,.wk-noconflict .uk-icon-file-photo-o:before,.wk-noconflict .uk-icon-file-picture-o:before{content:"\f1c5"}.wk-noconflict .uk-icon-file-archive-o:before,.wk-noconflict .uk-icon-file-zip-o:before{content:"\f1c6"}.wk-noconflict .uk-icon-file-audio-o:before,.wk-noconflict .uk-icon-file-sound-o:before{content:"\f1c7"}.wk-noconflict .uk-icon-file-movie-o:before,.wk-noconflict .uk-icon-file-video-o:before{content:"\f1c8"}.wk-noconflict .uk-icon-file-code-o:before{content:"\f1c9"}.wk-noconflict .uk-icon-vine:before{content:"\f1ca"}.wk-noconflict .uk-icon-codepen:before{content:"\f1cb"}.wk-noconflict .uk-icon-jsfiddle:before{content:"\f1cc"}.wk-noconflict .uk-icon-life-bouy:before,.wk-noconflict .uk-icon-life-buoy:before,.wk-noconflict .uk-icon-life-ring:before,.wk-noconflict .uk-icon-life-saver:before,.wk-noconflict .uk-icon-support:before{content:"\f1cd"}.wk-noconflict .uk-icon-circle-o-notch:before{content:"\f1ce"}.wk-noconflict .uk-icon-ra:before,.wk-noconflict .uk-icon-rebel:before{content:"\f1d0"}.wk-noconflict .uk-icon-empire:before,.wk-noconflict .uk-icon-ge:before{content:"\f1d1"}.wk-noconflict .uk-icon-git-square:before{content:"\f1d2"}.wk-noconflict .uk-icon-git:before{content:"\f1d3"}.wk-noconflict .uk-icon-hacker-news:before{content:"\f1d4"}.wk-noconflict .uk-icon-tencent-weibo:before{content:"\f1d5"}.wk-noconflict .uk-icon-qq:before{content:"\f1d6"}.wk-noconflict .uk-icon-wechat:before,.wk-noconflict .uk-icon-weixin:before{content:"\f1d7"}.wk-noconflict .uk-icon-paper-plane:before,.wk-noconflict .uk-icon-send:before{content:"\f1d8"}.wk-noconflict .uk-icon-paper-plane-o:before,.wk-noconflict .uk-icon-send-o:before{content:"\f1d9"}.wk-noconflict .uk-icon-history:before{content:"\f1da"}.wk-noconflict .uk-icon-circle-thin:before,.wk-noconflict .uk-icon-genderless:before{content:"\f1db"}.wk-noconflict .uk-icon-header:before{content:"\f1dc"}.wk-noconflict .uk-icon-paragraph:before{content:"\f1dd"}.wk-noconflict .uk-icon-sliders:before{content:"\f1de"}.wk-noconflict .uk-icon-share-alt:before{content:"\f1e0"}.wk-noconflict .uk-icon-share-alt-square:before{content:"\f1e1"}.wk-noconflict .uk-icon-bomb:before{content:"\f1e2"}.wk-noconflict .uk-icon-futbol-o:before,.wk-noconflict .uk-icon-soccer-ball-o:before{content:"\f1e3"}.wk-noconflict .uk-icon-tty:before{content:"\f1e4"}.wk-noconflict .uk-icon-binoculars:before{content:"\f1e5"}.wk-noconflict .uk-icon-plug:before{content:"\f1e6"}.wk-noconflict .uk-icon-slideshare:before{content:"\f1e7"}.wk-noconflict .uk-icon-twitch:before{content:"\f1e8"}.wk-noconflict .uk-icon-yelp:before{content:"\f1e9"}.wk-noconflict .uk-icon-newspaper-o:before{content:"\f1ea"}.wk-noconflict .uk-icon-wifi:before{content:"\f1eb"}.wk-noconflict .uk-icon-calculator:before{content:"\f1ec"}.wk-noconflict .uk-icon-paypal:before{content:"\f1ed"}.wk-noconflict .uk-icon-google-wallet:before{content:"\f1ee"}.wk-noconflict .uk-icon-cc-visa:before{content:"\f1f0"}.wk-noconflict .uk-icon-cc-mastercard:before{content:"\f1f1"}.wk-noconflict .uk-icon-cc-discover:before{content:"\f1f2"}.wk-noconflict .uk-icon-cc-amex:before{content:"\f1f3"}.wk-noconflict .uk-icon-cc-paypal:before{content:"\f1f4"}.wk-noconflict .uk-icon-cc-stripe:before{content:"\f1f5"}.wk-noconflict .uk-icon-bell-slash:before{content:"\f1f6"}.wk-noconflict .uk-icon-bell-slash-o:before{content:"\f1f7"}.wk-noconflict .uk-icon-trash:before{content:"\f1f8"}.wk-noconflict .uk-icon-copyright:before{content:"\f1f9"}.wk-noconflict .uk-icon-at:before{content:"\f1fa"}.wk-noconflict .uk-icon-eyedropper:before{content:"\f1fb"}.wk-noconflict .uk-icon-paint-brush:before{content:"\f1fc"}.wk-noconflict .uk-icon-birthday-cake:before{content:"\f1fd"}.wk-noconflict .uk-icon-area-chart:before{content:"\f1fe"}.wk-noconflict .uk-icon-pie-chart:before{content:"\f200"}.wk-noconflict .uk-icon-line-chart:before{content:"\f201"}.wk-noconflict .uk-icon-lastfm:before{content:"\f202"}.wk-noconflict .uk-icon-lastfm-square:before{content:"\f203"}.wk-noconflict .uk-icon-toggle-off:before{content:"\f204"}.wk-noconflict .uk-icon-toggle-on:before{content:"\f205"}.wk-noconflict .uk-icon-bicycle:before{content:"\f206"}.wk-noconflict .uk-icon-bus:before{content:"\f207"}.wk-noconflict .uk-icon-ioxhost:before{content:"\f208"}.wk-noconflict .uk-icon-angellist:before{content:"\f209"}.wk-noconflict .uk-icon-cc:before{content:"\f20a"}.wk-noconflict .uk-icon-ils:before,.wk-noconflict .uk-icon-shekel:before,.wk-noconflict .uk-icon-sheqel:before{content:"\f20b"}.wk-noconflict .uk-icon-meanpath:before{content:"\f20c"}.wk-noconflict .uk-icon-buysellads:before{content:"\f20d"}.wk-noconflict .uk-icon-connectdevelop:before{content:"\f20e"}.wk-noconflict .uk-icon-dashcube:before{content:"\f210"}.wk-noconflict .uk-icon-forumbee:before{content:"\f211"}.wk-noconflict .uk-icon-leanpub:before{content:"\f212"}.wk-noconflict .uk-icon-sellsy:before{content:"\f213"}.wk-noconflict .uk-icon-shirtsinbulk:before{content:"\f214"}.wk-noconflict .uk-icon-simplybuilt:before{content:"\f215"}.wk-noconflict .uk-icon-skyatlas:before{content:"\f216"}.wk-noconflict .uk-icon-cart-plus:before{content:"\f217"}.wk-noconflict .uk-icon-cart-arrow-down:before{content:"\f218"}.wk-noconflict .uk-icon-diamond:before{content:"\f219"}.wk-noconflict .uk-icon-ship:before{content:"\f21a"}.wk-noconflict .uk-icon-user-secret:before{content:"\f21b"}.wk-noconflict .uk-icon-motorcycle:before{content:"\f21c"}.wk-noconflict .uk-icon-street-view:before{content:"\f21d"}.wk-noconflict .uk-icon-heartbeat:before{content:"\f21e"}.wk-noconflict .uk-icon-venus:before{content:"\f221"}.wk-noconflict .uk-icon-mars:before{content:"\f222"}.wk-noconflict .uk-icon-mercury:before{content:"\f223"}.wk-noconflict .uk-icon-transgender:before{content:"\f224"}.wk-noconflict .uk-icon-transgender-alt:before{content:"\f225"}.wk-noconflict .uk-icon-venus-double:before{content:"\f226"}.wk-noconflict .uk-icon-mars-double:before{content:"\f227"}.wk-noconflict .uk-icon-venus-mars:before{content:"\f228"}.wk-noconflict .uk-icon-mars-stroke:before{content:"\f229"}.wk-noconflict .uk-icon-mars-stroke-v:before{content:"\f22a"}.wk-noconflict .uk-icon-mars-stroke-h:before{content:"\f22b"}.wk-noconflict .uk-icon-neuter:before{content:"\f22c"}.wk-noconflict .uk-icon-facebook-official:before{content:"\f230"}.wk-noconflict .uk-icon-pinterest-p:before{content:"\f231"}.wk-noconflict .uk-icon-whatsapp:before{content:"\f232"}.wk-noconflict .uk-icon-server:before{content:"\f233"}.wk-noconflict .uk-icon-user-plus:before{content:"\f234"}.wk-noconflict .uk-icon-user-times:before{content:"\f235"}.wk-noconflict .uk-icon-bed:before,.wk-noconflict .uk-icon-hotel:before{content:"\f236"}.wk-noconflict .uk-icon-viacoin:before{content:"\f237"}.wk-noconflict .uk-icon-train:before{content:"\f238"}.wk-noconflict .uk-icon-subway:before{content:"\f239"}.wk-noconflict .uk-icon-medium-logo:before{content:"\f23a"}.wk-noconflict .uk-icon-500px:before{content:"\f26e"}.wk-noconflict .uk-icon-amazon:before{content:"\f270"}.wk-noconflict .uk-icon-balance-scale:before{content:"\f24e"}.wk-noconflict .uk-icon-battery-0:before,.wk-noconflict .uk-icon-battery-empty:before{content:"\f244"}.wk-noconflict .uk-icon-battery-1:before,.wk-noconflict .uk-icon-battery-quarter:before{content:"\f243"}.wk-noconflict .uk-icon-battery-2:before,.wk-noconflict .uk-icon-battery-half:before{content:"\f242"}.wk-noconflict .uk-icon-battery-3:before,.wk-noconflict .uk-icon-battery-three-quarters:before{content:"\f241"}.wk-noconflict .uk-icon-battery-4:before,.wk-noconflict .uk-icon-battery-full:before{content:"\f240"}.wk-noconflict .uk-icon-black-tie:before{content:"\f27e"}.wk-noconflict .uk-icon-calendar-check-o:before{content:"\f274"}.wk-noconflict .uk-icon-calendar-minus-o:before{content:"\f272"}.wk-noconflict .uk-icon-calendar-plus-o:before{content:"\f271"}.wk-noconflict .uk-icon-calendar-times-o:before{content:"\f273"}.wk-noconflict .uk-icon-cc-diners-club:before{content:"\f24c"}.wk-noconflict .uk-icon-cc-jcb:before{content:"\f24b"}.wk-noconflict .uk-icon-chrome:before{content:"\f268"}.wk-noconflict .uk-icon-clone:before{content:"\f24d"}.wk-noconflict .uk-icon-commenting:before{content:"\f27a"}.wk-noconflict .uk-icon-commenting-o:before{content:"\f27b"}.wk-noconflict .uk-icon-contao:before{content:"\f26d"}.wk-noconflict .uk-icon-creative-commons:before{content:"\f25e"}.wk-noconflict .uk-icon-expeditedssl:before{content:"\f23e"}.wk-noconflict .uk-icon-firefox:before{content:"\f269"}.wk-noconflict .uk-icon-fonticons:before{content:"\f280"}.wk-noconflict .uk-icon-get-pocket:before{content:"\f265"}.wk-noconflict .uk-icon-gg:before{content:"\f260"}.wk-noconflict .uk-icon-gg-circle:before{content:"\f261"}.wk-noconflict .uk-icon-hand-lizard-o:before{content:"\f258"}.wk-noconflict .uk-icon-hand-paper-o:before,.wk-noconflict .uk-icon-hand-stop-o:before{content:"\f256"}.wk-noconflict .uk-icon-hand-peace-o:before{content:"\f25b"}.wk-noconflict .uk-icon-hand-pointer-o:before{content:"\f25a"}.wk-noconflict .uk-icon-hand-grab-o:before,.wk-noconflict .uk-icon-hand-rock-o:before{content:"\f255"}.wk-noconflict .uk-icon-hand-scissors-o:before{content:"\f257"}.wk-noconflict .uk-icon-hand-spock-o:before{content:"\f259"}.wk-noconflict .uk-icon-hourglass:before{content:"\f254"}.wk-noconflict .uk-icon-hourglass-o:before{content:"\f250"}.wk-noconflict .uk-icon-hourglass-1:before,.wk-noconflict .uk-icon-hourglass-start:before{content:"\f251"}.wk-noconflict .uk-icon-hourglass-2:before,.wk-noconflict .uk-icon-hourglass-half:before{content:"\f252"}.wk-noconflict .uk-icon-hourglass-3:before,.wk-noconflict .uk-icon-hourglass-end:before{content:"\f253"}.wk-noconflict .uk-icon-houzz:before{content:"\f27c"}.wk-noconflict .uk-icon-i-cursor:before{content:"\f246"}.wk-noconflict .uk-icon-industry:before{content:"\f275"}.wk-noconflict .uk-icon-internet-explorer:before{content:"\f26b"}.wk-noconflict .uk-icon-map:before{content:"\f279"}.wk-noconflict .uk-icon-map-o:before{content:"\f278"}.wk-noconflict .uk-icon-map-pin:before{content:"\f276"}.wk-noconflict .uk-icon-map-signs:before{content:"\f277"}.wk-noconflict .uk-icon-mouse-pointer:before{content:"\f245"}.wk-noconflict .uk-icon-object-group:before{content:"\f247"}.wk-noconflict .uk-icon-object-ungroup:before{content:"\f248"}.wk-noconflict .uk-icon-odnoklassniki:before{content:"\f263"}.wk-noconflict .uk-icon-odnoklassniki-square:before{content:"\f264"}.wk-noconflict .uk-icon-opencart:before{content:"\f23d"}.wk-noconflict .uk-icon-opera:before{content:"\f26a"}.wk-noconflict .uk-icon-optin-monster:before{content:"\f23c"}.wk-noconflict .uk-icon-registered:before{content:"\f25d"}.wk-noconflict .uk-icon-safari:before{content:"\f267"}.wk-noconflict .uk-icon-sticky-note:before{content:"\f249"}.wk-noconflict .uk-icon-sticky-note-o:before{content:"\f24a"}.wk-noconflict .uk-icon-television:before,.wk-noconflict .uk-icon-tv:before{content:"\f26c"}.wk-noconflict .uk-icon-trademark:before{content:"\f25c"}.wk-noconflict .uk-icon-tripadvisor:before{content:"\f262"}.wk-noconflict .uk-icon-vimeo:before{content:"\f27d"}.wk-noconflict .uk-icon-wikipedia-w:before{content:"\f266"}.wk-noconflict .uk-icon-y-combinator:before,.wk-noconflict .uk-icon-yc:before{content:"\f23b"}.wk-noconflict .uk-icon-y-combinator-square:before,.wk-noconflict .uk-icon-yc-square:before{content:"\f1d4"}.wk-noconflict .uk-icon-bluetooth:before{content:"\f293"}.wk-noconflict .uk-icon-bluetooth-b:before{content:"\f294"}.wk-noconflict .uk-icon-codiepie:before{content:"\f284"}.wk-noconflict .uk-icon-credit-card-alt:before{content:"\f283"}.wk-noconflict .uk-icon-edge:before{content:"\f282"}.wk-noconflict .uk-icon-fort-awesome:before{content:"\f286"}.wk-noconflict .uk-icon-hashtag:before{content:"\f292"}.wk-noconflict .uk-icon-mixcloud:before{content:"\f289"}.wk-noconflict .uk-icon-modx:before{content:"\f285"}.wk-noconflict .uk-icon-pause-circle:before{content:"\f28b"}.wk-noconflict .uk-icon-pause-circle-o:before{content:"\f28c"}.wk-noconflict .uk-icon-percent:before{content:"\f295"}.wk-noconflict .uk-icon-product-hunt:before{content:"\f288"}.wk-noconflict .uk-icon-reddit-alien:before{content:"\f281"}.wk-noconflict .uk-icon-scribd:before{content:"\f28a"}.wk-noconflict .uk-icon-shopping-bag:before{content:"\f290"}.wk-noconflict .uk-icon-shopping-basket:before{content:"\f291"}.wk-noconflict .uk-icon-stop-circle:before{content:"\f28d"}.wk-noconflict .uk-icon-stop-circle-o:before{content:"\f28e"}.wk-noconflict .uk-icon-usb:before{content:"\f287"}.wk-noconflict .uk-icon-american-sign-language-interpreting:before,.wk-noconflict .uk-icon-asl-interpreting:before{content:"\f2a3"}.wk-noconflict .uk-icon-assistive-listening-systems:before{content:"\f2a2"}.wk-noconflict .uk-icon-audio-description:before{content:"\f29e"}.wk-noconflict .uk-icon-blind:before{content:"\f29d"}.wk-noconflict .uk-icon-braille:before{content:"\f2a1"}.wk-noconflict .uk-icon-deaf:before,.wk-noconflict .uk-icon-deafness:before{content:"\f2a4"}.wk-noconflict .uk-icon-envira:before{content:"\f299"}.wk-noconflict .uk-icon-fa:before,.wk-noconflict .uk-icon-font-awesome:before{content:"\f2b4"}.wk-noconflict .uk-icon-first-order:before{content:"\f2b0"}.wk-noconflict .uk-icon-gitlab:before{content:"\f296"}.wk-noconflict .uk-icon-glide:before{content:"\f2a5"}.wk-noconflict .uk-icon-glide-g:before{content:"\f2a6"}.wk-noconflict .uk-icon-hard-of-hearing:before{content:"\f2a4"}.wk-noconflict .uk-icon-low-vision:before{content:"\f2a8"}.wk-noconflict .uk-icon-question-circle-o:before{content:"\f29c"}.wk-noconflict .uk-icon-sign-language:before,.wk-noconflict .uk-icon-signing:before{content:"\f2a7"}.wk-noconflict .uk-icon-snapchat:before{content:"\f2ab"}.wk-noconflict .uk-icon-snapchat-ghost:before{content:"\f2ac"}.wk-noconflict .uk-icon-snapchat-square:before{content:"\f2ad"}.wk-noconflict .uk-icon-themeisle:before{content:"\f2b2"}.wk-noconflict .uk-icon-universal-access:before{content:"\f29a"}.wk-noconflict .uk-icon-viadeo:before{content:"\f2a9"}.wk-noconflict .uk-icon-viadeo-square:before{content:"\f2aa"}.wk-noconflict .uk-icon-volume-control-phone:before{content:"\f2a0"}.wk-noconflict .uk-icon-wheelchair-alt:before{content:"\f29b"}.wk-noconflict .uk-icon-wpbeginner:before{content:"\f297"}.wk-noconflict .uk-icon-wpforms:before{content:"\f298"}.wk-noconflict .uk-icon-yoast:before{content:"\f2b1"}.wk-noconflict .uk-icon-adress-book:before{content:"\f2b9"}.wk-noconflict .uk-icon-adress-book-o:before{content:"\f2ba"}.wk-noconflict .uk-icon-adress-card:before{content:"\f2bb"}.wk-noconflict .uk-icon-adress-card-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-bandcamp:before{content:"\f2d5"}.wk-noconflict .uk-icon-bath:before,.wk-noconflict .uk-icon-bathub:before{content:"\f2cd"}.wk-noconflict .uk-icon-drivers-license:before{content:"\f2c2"}.wk-noconflict .uk-icon-drivers-license-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-eercast:before{content:"\f2da"}.wk-noconflict .uk-icon-envelope-open:before{content:"\f2b6"}.wk-noconflict .uk-icon-envelope-open-o:before{content:"\f2b7"}.wk-noconflict .uk-icon-etsy:before{content:"\f2d7"}.wk-noconflict .uk-icon-free-code-camp:before{content:"\f2c5"}.wk-noconflict .uk-icon-grav:before{content:"\f2d6"}.wk-noconflict .uk-icon-handshake-o:before{content:"\f2b5"}.wk-noconflict .uk-icon-id-badge:before{content:"\f2c1"}.wk-noconflict .uk-icon-id-card:before{content:"\f2c2"}.wk-noconflict .uk-icon-id-card-o:before{content:"\f2c3"}.wk-noconflict .uk-icon-imdb:before{content:"\f2d8"}.wk-noconflict .uk-icon-linode:before{content:"\f2b8"}.wk-noconflict .uk-icon-meetup:before{content:"\f2e0"}.wk-noconflict .uk-icon-microchip:before{content:"\f2db"}.wk-noconflict .uk-icon-podcast:before{content:"\f2ce"}.wk-noconflict .uk-icon-quora:before{content:"\f2c4"}.wk-noconflict .uk-icon-ravelry:before{content:"\f2d9"}.wk-noconflict .uk-icon-s15:before{content:"\f2cd"}.wk-noconflict .uk-icon-shower:before{content:"\f2cc"}.wk-noconflict .uk-icon-snowflake-o:before{content:"\f2dc"}.wk-noconflict .uk-icon-superpowers:before{content:"\f2dd"}.wk-noconflict .uk-icon-telegram:before{content:"\f2c6"}.wk-noconflict .uk-icon-thermometer:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-0:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-1:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-2:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-3:before{content:"\f2c8"}.wk-noconflict .uk-icon-thermometer-4:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-empty:before{content:"\f2cb"}.wk-noconflict .uk-icon-thermometer-full:before{content:"\f2c7"}.wk-noconflict .uk-icon-thermometer-half:before{content:"\f2c9"}.wk-noconflict .uk-icon-thermometer-quarter:before{content:"\f2ca"}.wk-noconflict .uk-icon-thermometer-three-quarters:before{content:"\f2c8"}.wk-noconflict .uk-icon-times-rectangle:before{content:"\f2d3"}.wk-noconflict .uk-icon-times-rectangle-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-user-circle:before{content:"\f2bd"}.wk-noconflict .uk-icon-user-circle-o:before{content:"\f2be"}.wk-noconflict .uk-icon-user-o:before{content:"\f2c0"}.wk-noconflict .uk-icon-vcard:before{content:"\f2bb"}.wk-noconflict .uk-icon-vcard-o:before{content:"\f2bc"}.wk-noconflict .uk-icon-widow-close:before{content:"\f2d3"}.wk-noconflict .uk-icon-widow-close-o:before{content:"\f2d4"}.wk-noconflict .uk-icon-window-maximize:before{content:"\f2d0"}.wk-noconflict .uk-icon-window-minimize:before{content:"\f2d1"}.wk-noconflict .uk-icon-window-restore:before{content:"\f2d2"}.wk-noconflict .uk-icon-wpexplorer:before{content:"\f2de"}.wk-noconflict .uk-badge{display:inline-block;padding:0 5px;background:#37a5e4;font-size:10px;font-weight:400;line-height:14px;color:#fff;text-align:center;vertical-align:middle;text-transform:none;border-radius:2px}.wk-noconflict a.uk-badge:hover{color:#fff}.wk-noconflict .uk-badge-notification{box-sizing:border-box;min-width:18px;border-radius:500px;font-size:12px;line-height:18px}.wk-noconflict .uk-badge-success{background-color:#80c96d}.wk-noconflict .uk-badge-warning{background-color:#ff9a2e}.wk-noconflict .uk-badge-danger{background-color:#f0615b}.wk-noconflict .uk-alert{margin-bottom:20px;padding:10px;background:#e1f2fb;color:#37a5e4;border-radius:2px}.wk-noconflict *+.uk-alert{margin-top:20px}.wk-noconflict .uk-alert>:last-child{margin-bottom:0}.wk-noconflict .uk-alert h1,.wk-noconflict .uk-alert h2,.wk-noconflict .uk-alert h3,.wk-noconflict .uk-alert h4,.wk-noconflict .uk-alert h5,.wk-noconflict .uk-alert h6{color:inherit}.wk-noconflict .uk-alert>.uk-close:first-child{float:right}.wk-noconflict .uk-alert>.uk-close:first-child+*{margin-top:0}.wk-noconflict .uk-alert-success{background:#ecf7e9;color:#80c96d}.wk-noconflict .uk-alert-warning{background:#fff0e0;color:#ff9a2e}.wk-noconflict .uk-alert-danger{background:#fde7e7;color:#f0615b}.wk-noconflict .uk-alert-large{padding:20px}.wk-noconflict .uk-alert-large>.uk-close:first-child{margin:-10px -10px 0 0}.wk-noconflict .uk-overlay-area-content>:last-child,.wk-noconflict .uk-overlay-panel.uk-flex>*>:last-child,.wk-noconflict .uk-overlay-panel>:last-child,.wk-noconflict .uk-overlay>:first-child{margin-bottom:0}.wk-noconflict .uk-overlay{display:inline-block;position:relative;max-width:100%;vertical-align:middle;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.wk-noconflict .uk-overlay-area:empty:before,.wk-noconflict .uk-overlay-icon:before{content:"\f002";width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;text-align:center;font-family:FontAwesome}.wk-noconflict .uk-overlay.uk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.wk-noconflict .uk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.wk-noconflict .uk-overlay-panel a[class*=uk-icon-]:not(.uk-icon-button),.wk-noconflict .uk-overlay-panel h1,.wk-noconflict .uk-overlay-panel h2,.wk-noconflict .uk-overlay-panel h3,.wk-noconflict .uk-overlay-panel h4,.wk-noconflict .uk-overlay-panel h5,.wk-noconflict .uk-overlay-panel h6{color:inherit}.wk-noconflict .uk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.wk-noconflict .uk-overlay-active :not(.uk-active)>.uk-overlay-panel:not(.uk-ignore),.wk-noconflict .uk-overlay-hover:not(:hover):not(.uk-hover) .uk-overlay-panel:not(.uk-ignore){opacity:0}.wk-noconflict .uk-overlay-background{background:rgba(0,0,0,.5)}.wk-noconflict .uk-overlay-image{padding:0}.wk-noconflict .uk-overlay-top{bottom:auto}.wk-noconflict .uk-overlay-bottom{top:auto}.wk-noconflict .uk-overlay-left{right:auto}.wk-noconflict .uk-overlay-right{left:auto}.wk-noconflict .uk-overlay-icon:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-blur,.wk-noconflict .uk-overlay-fade,.wk-noconflict .uk-overlay-grayscale,.wk-noconflict .uk-overlay-scale,.wk-noconflict .uk-overlay-spin,.wk-noconflict [class*=uk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.wk-noconflict .uk-overlay-active .uk-overlay-fade,.wk-noconflict .uk-overlay-active .uk-overlay-scale,.wk-noconflict .uk-overlay-active .uk-overlay-spin,.wk-noconflict .uk-overlay-active [class*=uk-overlay-slide]{transition-duration:.8s}.wk-noconflict .uk-overlay-fade{opacity:.7}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-fade,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-fade,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-fade{opacity:1}.wk-noconflict .uk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-scale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-scale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.wk-noconflict .uk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-spin,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-spin,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.wk-noconflict .uk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.wk-noconflict .uk-overlay-active .uk-active>.uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover.uk-hover .uk-overlay-grayscale,.wk-noconflict .uk-overlay-hover:hover .uk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}.wk-noconflict [class*=uk-overlay-slide]{opacity:0}.wk-noconflict .uk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.wk-noconflict .uk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.wk-noconflict .uk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.wk-noconflict .uk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.wk-noconflict .uk-overlay-active .uk-active>[class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover.uk-hover [class*=uk-overlay-slide],.wk-noconflict .uk-overlay-hover:hover [class*=uk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.wk-noconflict .uk-overlay-area,.wk-noconflict .uk-overlay-caption{-webkit-transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0);position:absolute;right:0;bottom:0}.wk-noconflict .uk-overlay-area{top:0;left:0;background:rgba(0,0,0,.3);opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-area,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-area,.wk-noconflict .uk-overlay:hover .uk-overlay-area{opacity:1}.wk-noconflict .uk-overlay-area:empty:before{position:absolute;top:50%;left:50%;color:#fff}.wk-noconflict .uk-overlay-area:not(:empty){font-size:0}.wk-noconflict .uk-overlay-area:not(:empty):before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-overlay-area-content{display:inline-block;box-sizing:border-box;width:100%;vertical-align:middle;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.wk-noconflict .uk-overlay-area-content a:not([class]),.wk-noconflict .uk-overlay-area-content a:not([class]):hover{color:inherit}.wk-noconflict .uk-overlay-caption{left:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s linear}.wk-noconflict .uk-overlay-toggle.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay-toggle:hover .uk-overlay-caption,.wk-noconflict .uk-overlay.uk-hover .uk-overlay-caption,.wk-noconflict .uk-overlay:hover .uk-overlay-caption{opacity:1}.wk-noconflict [class*=uk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{.wk-noconflict [data-uk-scrollspy*=uk-animation-]:not([data-uk-scrollspy*=target]){opacity:0}}.wk-noconflict .uk-animation-fade{-webkit-animation-name:uk-fade;animation-name:uk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.wk-noconflict .uk-animation-scale-up{-webkit-animation-name:uk-fade-scale-02;animation-name:uk-fade-scale-02}.wk-noconflict .uk-animation-scale-down{-webkit-animation-name:uk-fade-scale-18;animation-name:uk-fade-scale-18}.wk-noconflict .uk-animation-slide-top{-webkit-animation-name:uk-fade-top;animation-name:uk-fade-top}.wk-noconflict .uk-animation-slide-bottom{-webkit-animation-name:uk-fade-bottom;animation-name:uk-fade-bottom}.wk-noconflict .uk-animation-slide-left{-webkit-animation-name:uk-fade-left;animation-name:uk-fade-left}.wk-noconflict .uk-animation-slide-right{-webkit-animation-name:uk-fade-right;animation-name:uk-fade-right}.wk-noconflict .uk-animation-scale{-webkit-animation-name:uk-scale-12;animation-name:uk-scale-12}.wk-noconflict .uk-animation-shake{-webkit-animation-name:uk-shake;animation-name:uk-shake}.wk-noconflict .uk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.wk-noconflict .uk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.wk-noconflict .uk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.wk-noconflict .uk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.wk-noconflict .uk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.wk-noconflict .uk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.wk-noconflict .uk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.wk-noconflict .uk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.wk-noconflict .uk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.wk-noconflict .uk-animation-hover:not(:hover),.wk-noconflict .uk-animation-hover:not(:hover) [class*=uk-animation-],.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover),.wk-noconflict .uk-touch .uk-animation-hover:not(.uk-hover) [class*=uk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes uk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes uk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes uk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes uk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes uk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes uk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes uk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.wk-noconflict .uk-dropdown,.wk-noconflict .uk-dropdown-blank{display:none;position:absolute;z-index:100020;box-sizing:border-box;width:200px}.wk-noconflict .uk-dropdown{padding:20px;background:#fff;color:#444;font-size:1rem;vertical-align:top;border:1px solid #e5e5e5;border-radius:2px}.wk-noconflict .uk-dropdown:focus{outline:0}.uk-open>.uk-dropdown,.uk-open>.uk-dropdown-blank{display:block;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-dropdown-top{margin-top:-5px}.wk-noconflict .uk-dropdown-bottom{margin-top:5px}.wk-noconflict .uk-dropdown-left{margin-left:-5px}.wk-noconflict .uk-dropdown-right{margin-left:5px}.wk-noconflict .uk-dropdown .uk-nav{margin:0 -20px}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]>.uk-panel+.uk-panel,.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2),.wk-noconflict .uk-grid .uk-dropdown-grid+.uk-dropdown-grid{margin-top:20px}@media (min-width:768px){.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid{margin-left:-20px;margin-right:-20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]{padding-left:20px;padding-right:20px}.wk-noconflict .uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){border-left:1px solid #e5e5e5}.wk-noconflict .uk-dropdown-width-2:not(.uk-dropdown-stack){width:400px}.wk-noconflict .uk-dropdown-width-3:not(.uk-dropdown-stack){width:600px}.wk-noconflict .uk-dropdown-width-4:not(.uk-dropdown-stack){width:800px}.wk-noconflict .uk-dropdown-width-5:not(.uk-dropdown-stack){width:1000px}}@media (max-width:767px){.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){margin-top:20px}}.wk-noconflict .uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]{width:100%}.wk-noconflict .uk-dropdown-small{min-width:150px;width:auto;padding:5px;white-space:nowrap}.wk-noconflict .uk-dropdown-small .uk-nav{margin:0 -5px}.wk-noconflict .uk-dropdown-navbar{margin-top:5px;background:#fafafa;color:#999;min-width:150px;width:auto;white-space:nowrap}.uk-open>.uk-dropdown-navbar{-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out}.wk-noconflict .uk-dropdown-scrollable{overflow-y:auto;max-height:200px}.uk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(245,245,245,.9);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.uk-modal-caption,.uk-modal-page,.uk-modal-page body,.wk-noconflict .uk-nbfc{overflow:hidden}.uk-modal.uk-open{opacity:1}.wk-noconflict .uk-modal-dialog{position:relative;box-sizing:border-box;margin:50px auto;padding:30px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border:1px solid #e5e5e5;border-radius:2px;box-shadow:0 0 10px rgba(0,0,0,.05)}@media (max-width:767px){.wk-noconflict .uk-modal-dialog{width:auto;margin:10px auto}}.uk-open .uk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wk-noconflict .uk-modal-dialog>:not([class*=uk-modal-]):last-child{margin-bottom:0}.wk-noconflict .uk-modal-dialog>.uk-close:first-child{margin:-10px -10px 0 0;float:right}.wk-noconflict .uk-modal-dialog>.uk-close:first-child+:not([class*=uk-modal-]){margin-top:0}.wk-noconflict .uk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px}.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.wk-noconflict .uk-modal-dialog-lightbox>.uk-close:first-child{top:-7px;right:-7px}}.wk-noconflict .uk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.wk-noconflict .uk-modal-dialog-blank>.uk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.wk-noconflict .uk-modal-dialog-large{width:930px}}.wk-noconflict .uk-modal-header{margin:-30px -30px 20px;padding:30px;border-bottom:1px solid #e5e5e5;border-radius:2px 2px 0 0;background:#fafafa}.wk-noconflict .uk-modal-footer{margin:20px -30px -30px;padding:30px;border-top:1px solid #e5e5e5;border-radius:0 0 2px 2px;background:#fafafa;text-align:right}.wk-noconflict .uk-modal-footer>:last-child,.wk-noconflict .uk-modal-header>:last-child{margin-bottom:0}.uk-modal-caption{position:absolute;left:0;right:0;bottom:-30px;margin-bottom:-10px;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap}.uk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.uk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.wk-noconflict .uk-modal-header+.wk-noconflict .uk-modal-header{margin-top:-20px}.uk-modal-page{height:auto}.wk-noconflict .uk-switcher{margin:0;padding:0;list-style:none}.wk-noconflict .uk-sortable-handle,.wk-noconflict .uk-sortable>*{touch-action:none}.wk-noconflict .uk-switcher>:not(.uk-active){display:none}.wk-noconflict .uk-text-small{font-size:11px;line-height:16px}.wk-noconflict .uk-text-large{font-size:18px;line-height:24px;font-weight:400}.wk-noconflict .uk-text-bold{font-weight:700}.wk-noconflict .uk-text-muted{color:#999!important}.wk-noconflict .uk-text-primary{color:#37a5e4!important}.wk-noconflict .uk-text-success{color:#80c96d!important}.wk-noconflict .uk-text-warning{color:#ff9a2e!important}.wk-noconflict .uk-text-danger{color:#f0615b!important}.wk-noconflict .uk-text-contrast{color:#fff!important}.wk-noconflict .uk-text-left{text-align:left!important}.wk-noconflict .uk-text-right{text-align:right!important}.wk-noconflict .uk-text-center{text-align:center!important}.wk-noconflict .uk-text-justify{text-align:justify!important}.wk-noconflict .uk-text-top{vertical-align:top!important}.wk-noconflict .uk-text-middle{vertical-align:middle!important}.wk-noconflict .uk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.wk-noconflict .uk-text-center-medium{text-align:center!important}.wk-noconflict .uk-text-left-medium{text-align:left!important}}.wk-noconflict .uk-text-nowrap{white-space:nowrap}.wk-noconflict .uk-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wk-noconflict .uk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.wk-noconflict .uk-text-capitalize{text-transform:capitalize!important}.wk-noconflict .uk-text-lowercase{text-transform:lowercase!important}.wk-noconflict .uk-text-uppercase{text-transform:uppercase!important}.wk-noconflict .uk-container{box-sizing:border-box;max-width:980px;padding:0 25px}@media (min-width:1400px){.wk-noconflict .uk-modal-dialog-large{width:1150px}.wk-noconflict .uk-container{max-width:1200px;padding:0 25px}}.wk-noconflict .uk-container:after,.wk-noconflict .uk-container:before{content:"";display:table}.wk-noconflict .uk-container-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-clearfix:before{content:"";display:table-cell}.wk-noconflict .uk-clearfix:after{content:"";display:table}.wk-noconflict .uk-nbfc-alt{display:table-cell;width:10000px}.wk-noconflict .uk-float-left{float:left}.wk-noconflict .uk-float-right{float:right}.wk-noconflict [class*=uk-float-]{max-width:100%}.wk-noconflict [class*=uk-align-]{display:block;margin-bottom:20px}.wk-noconflict .uk-align-left{margin-right:20px;float:left}.wk-noconflict .uk-align-right{margin-left:20px;float:right}@media (min-width:768px){.wk-noconflict .uk-align-medium-left{margin-right:20px;float:left}.wk-noconflict .uk-align-medium-right{margin-left:20px;float:right}}.wk-noconflict .uk-align-center{margin-left:auto;margin-right:auto}.wk-noconflict .uk-vertical-align{font-size:0}.wk-noconflict .uk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom,.wk-noconflict .uk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.wk-noconflict .uk-vertical-align-middle{vertical-align:middle}.wk-noconflict .uk-vertical-align-bottom{vertical-align:bottom}.wk-noconflict [class*=uk-height]{box-sizing:border-box}.wk-noconflict .uk-height-1-1{height:100%}.wk-noconflict .uk-height-viewport{height:100vh;min-height:600px}.wk-noconflict .uk-responsive-height,.wk-noconflict .uk-responsive-width{box-sizing:border-box}.wk-noconflict .uk-responsive-width{max-width:100%!important;height:auto}.wk-noconflict .uk-responsive-height{max-height:100%;width:auto}.wk-noconflict .uk-margin{margin-bottom:20px}.wk-noconflict *+.uk-margin{margin-top:20px}.wk-noconflict .uk-margin-top{margin-top:20px!important}.wk-noconflict .uk-margin-bottom{margin-bottom:20px!important}.wk-noconflict .uk-margin-left{margin-left:20px!important}.wk-noconflict .uk-margin-right{margin-right:20px!important}.wk-noconflict .uk-margin-large{margin-bottom:30px}.wk-noconflict *+.uk-margin-large{margin-top:30px}.wk-noconflict .uk-margin-large-top{margin-top:30px!important}.wk-noconflict .uk-margin-large-bottom{margin-bottom:30px!important}.wk-noconflict .uk-margin-large-left{margin-left:30px!important}.wk-noconflict .uk-margin-large-right{margin-right:30px!important}.wk-noconflict .uk-margin-small{margin-bottom:5px}.wk-noconflict *+.uk-margin-small{margin-top:5px}.wk-noconflict .uk-margin-small-top{margin-top:5px!important}.wk-noconflict .uk-margin-small-bottom{margin-bottom:5px!important}.wk-noconflict .uk-margin-small-left{margin-left:5px!important}.wk-noconflict .uk-margin-small-right{margin-right:5px!important}.wk-noconflict .uk-margin-remove{margin:0!important}.wk-noconflict .uk-margin-top-remove{margin-top:0!important}.wk-noconflict .uk-margin-bottom-remove{margin-bottom:0!important}.wk-noconflict .uk-overflow-container>:last-child,.wk-noconflict .uk-scrollable-box>:last-child{margin-bottom:0}.wk-noconflict .uk-padding-remove{padding:0!important}.wk-noconflict .uk-padding-top-remove{padding-top:0!important}.wk-noconflict .uk-padding-bottom-remove{padding-bottom:0!important}.wk-noconflict .uk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.wk-noconflict .uk-border-circle{border-radius:50%}.wk-noconflict .uk-border-rounded{border-radius:5px}.wk-noconflict .uk-heading-large{font-size:36px;line-height:42px}.wk-noconflict .uk-link-muted,.wk-noconflict .uk-link-muted a,.wk-noconflict .uk-link-muted a:hover,.wk-noconflict .uk-link-muted:hover{color:#444}.wk-noconflict .uk-link-reset,.wk-noconflict .uk-link-reset a,.wk-noconflict .uk-link-reset a:focus,.wk-noconflict .uk-link-reset a:hover,.wk-noconflict .uk-link-reset:focus,.wk-noconflict .uk-link-reset:hover{color:inherit;text-decoration:none}.wk-noconflict .uk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.wk-noconflict .uk-scrollable-box{box-sizing:border-box;height:200px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.wk-noconflict .uk-overflow-hidden{overflow:hidden}.wk-noconflict .uk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.wk-noconflict .uk-position-absolute,.wk-noconflict [class*=uk-position-top],.wk-noconflict [class*=uk-position-bottom]{position:absolute!important}.wk-noconflict .uk-position-top{top:0;left:0;right:0}.wk-noconflict .uk-position-bottom{bottom:0;left:0;right:0}.wk-noconflict .uk-position-top-left{top:0;left:0}.wk-noconflict .uk-position-top-right{top:0;right:0}.wk-noconflict .uk-position-bottom-left{bottom:0;left:0}.wk-noconflict .uk-position-bottom-right{bottom:0;right:0}.wk-noconflict .uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.wk-noconflict .uk-position-relative{position:relative!important}.wk-noconflict .uk-position-z-index{z-index:1}.wk-noconflict .uk-display-block{display:block!important}.wk-noconflict .uk-display-inline{display:inline!important}.wk-noconflict .uk-display-inline-block{display:inline-block!important;max-width:100%}.wk-noconflict .uk-img-preserve,.wk-noconflict .uk-img-preserve img,.wk-noconflict [id^=wk-location-] img{max-width:none}@media (min-width:960px){.wk-noconflict .uk-hidden-large,.wk-noconflict .uk-visible-medium,.wk-noconflict .uk-visible-small{display:none!important}}@media (min-width:768px) and (max-width:959px){.wk-noconflict .uk-hidden-medium,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-small{display:none!important}}@media (max-width:767px){.wk-noconflict .uk-text-center-small{text-align:center!important}.wk-noconflict .uk-text-left-small{text-align:left!important}.wk-noconflict .uk-hidden-small,.wk-noconflict .uk-visible-large,.wk-noconflict .uk-visible-medium{display:none!important}.wk-noconflict .uk-container{padding:0 10px}}.wk-noconflict .uk-hidden{display:none!important}.wk-noconflict .uk-visible-hover:hover .uk-hidden,.wk-noconflict .uk-visible-hover:hover .uk-invisible{display:block!important;visibility:visible!important}.wk-noconflict .uk-visible-hover-inline:hover .uk-hidden,.wk-noconflict .uk-visible-hover-inline:hover .uk-invisible{display:inline-block!important;visibility:visible!important}.wk-noconflict .uk-notouch .uk-hidden-notouch,.wk-noconflict .uk-touch .uk-hidden-touch{display:none!important}.wk-noconflict .uk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.wk-noconflict .uk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.wk-noconflict .uk-flex-inline>*,.wk-noconflict .uk-flex>*{-ms-flex-negative:1}.wk-noconflict .uk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.wk-noconflict .uk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.wk-noconflict .uk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.wk-noconflict .uk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.wk-noconflict .uk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.wk-noconflict .uk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.wk-noconflict .uk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.wk-noconflict .uk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.wk-noconflict .uk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.wk-noconflict .uk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.wk-noconflict .uk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wk-noconflict .uk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wk-noconflict .uk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.wk-noconflict .uk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.wk-noconflict .uk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.wk-noconflict .uk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.wk-noconflict .uk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.wk-noconflict .uk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.wk-noconflict .uk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.wk-noconflict .uk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.wk-noconflict .uk-heading-large{font-size:52px;line-height:64px}.wk-noconflict .uk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.wk-noconflict .uk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1400px){.wk-noconflict .uk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.wk-noconflict .uk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.wk-noconflict .uk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.wk-noconflict .uk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.wk-noconflict .uk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.wk-noconflict .uk-form-file{display:inline-block;vertical-align:middle;position:relative;overflow:hidden}.wk-noconflict .uk-form-file input[type=file]{position:absolute;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;left:0;font-size:500px}.wk-noconflict .uk-placeholder{margin-bottom:15px;padding:20px;border:1px dashed #ddd;background:#fafafa;color:#444}.wk-form-heading,.wk-heading{border-bottom:1px solid #e5e5e5}.wk-noconflict *+.uk-placeholder{margin-top:15px}.wk-noconflict .uk-placeholder>:last-child{margin-bottom:0}.wk-noconflict .uk-placeholder-large{padding-top:80px;padding-bottom:80px}.wk-noconflict .uk-progress{box-sizing:border-box;height:20px;margin-bottom:20px;background:#f5f5f5;overflow:hidden;line-height:20px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);border-radius:2px}.wk-noconflict *+.uk-progress{margin-top:20px}.wk-noconflict .uk-progress-bar{width:0;height:100%;background:#37a5e4;float:left;-webkit-transition:width .6s ease;transition:width .6s ease;font-size:12px;color:#fff;text-align:center}.wk-noconflict .uk-progress-mini{height:6px}.wk-noconflict .uk-progress-small{height:12px}.wk-noconflict .uk-progress-success .uk-progress-bar{background-color:#80c96d}.wk-noconflict .uk-progress-warning .uk-progress-bar{background-color:#ff9a2e}.wk-noconflict .uk-progress-danger .uk-progress-bar{background-color:#f0615b}.wk-noconflict .uk-progress-striped .uk-progress-bar{background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:30px 30px}.wk-noconflict .uk-progress-striped.uk-active .uk-progress-bar{-webkit-animation:uk-progress-bar-stripes 2s linear infinite;animation:uk-progress-bar-stripes 2s linear infinite}@-webkit-keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}@keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}.wk-noconflict .uk-progress-mini,.wk-noconflict .uk-progress-small{border-radius:500px}.uk-notify{position:fixed;top:50px;left:50px;z-index:100040;box-sizing:border-box;width:350px}.uk-notify-bottom-right,.uk-notify-top-right{left:auto;right:50px}.uk-notify-bottom-center,.uk-notify-top-center{left:50%;margin-left:-175px}.uk-notify-bottom-center,.uk-notify-bottom-left,.uk-notify-bottom-right{top:auto;bottom:50px}@media (max-width:479px){.uk-notify{left:10px;right:10px;width:auto;margin:0}}.uk-notify-message{position:relative;margin-bottom:15px;padding:15px;background:rgba(240,240,240,.9);color:#444;font-size:16px;line-height:22px;border-radius:4px;font-weight:300}.uk-notify-message>.uk-close{visibility:hidden;float:right}.uk-notify-message:hover>.uk-close{visibility:visible}.uk-notify-message-primary{background:rgba(225,242,251,.9);color:#37a5e4}.uk-notify-message-success{background:rgba(236,247,233,.9);color:#80c96d}.uk-notify-message-warning{background:rgba(255,240,224,.9);color:#ff9a2e}.uk-notify-message-danger{background:rgba(253,231,231,.9);color:#f0615b}.wk-noconflict .uk-sortable{position:relative}.wk-noconflict .uk-sortable a,.wk-noconflict .uk-sortable img{-webkit-touch-callout:none}.wk-noconflict .uk-sortable>:last-child{margin-bottom:0}.uk-sortable-dragged{position:absolute;z-index:100050;pointer-events:none}.wk-noconflict .uk-sortable-placeholder{opacity:0}.wk-noconflict .uk-sortable-empty{min-height:30px}.uk-sortable-moving,.uk-sortable-moving *,.wk-noconflict .uk-sortable-handle:hover{cursor:move}.uk-sortable-moving iframe{pointer-events:none}.wk-noconflict .uk-dragover{box-shadow:0 0 20px rgba(100,100,100,.3)}.wk-noconflict .uk-htmleditor-navbar{background:#f5f5f5}.wk-noconflict .uk-htmleditor-navbar:after,.wk-noconflict .uk-htmleditor-navbar:before{content:"";display:table}.wk-noconflict .uk-htmleditor-navbar-nav{margin:0;padding:0;list-style:none;float:left}.wk-noconflict .uk-htmleditor-navbar-nav>li{float:left;margin-bottom:0}.wk-noconflict .uk-htmleditor-navbar-nav>li>a{display:block;box-sizing:border-box;text-decoration:none;height:46px;padding:0 19px;line-height:46px;color:rgba(68,68,68,.8);font-size:11px;cursor:pointer;-webkit-transition:all .1s linear;transition:all .1s linear}.wk-noconflict .uk-htmleditor-navbar-nav>li:hover>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:focus{background-color:rgba(255,255,255,.5);color:#111;outline:0}.wk-noconflict .uk-htmleditor-navbar-nav>li.uk-active>a,.wk-noconflict .uk-htmleditor-navbar-nav>li>a:active{background-color:rgba(255,255,255,.5);color:#111}.wk-noconflict .uk-htmleditor-navbar-flip{float:right}.wk-noconflict [data-mode=split] .uk-htmleditor-button-code,.wk-noconflict [data-mode=split] .uk-htmleditor-button-preview{display:none}.wk-noconflict .uk-htmleditor-content{border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;background:#fff}.wk-noconflict .uk-htmleditor-content:after,.wk-noconflict .uk-htmleditor-content:before{content:"";display:table}.wk-noconflict .uk-htmleditor-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100010}.wk-noconflict .uk-htmleditor-fullscreen .uk-htmleditor-content{position:absolute;top:46px;left:0;right:0;bottom:0}.wk-noconflict .uk-htmleditor-fullscreen .uk-icon-expand:before{content:"\f066"}.wk-noconflict .uk-htmleditor-code,.wk-noconflict .uk-htmleditor-preview{box-sizing:border-box}.wk-noconflict .uk-htmleditor-preview{padding:20px;overflow-y:scroll;position:relative}.wk-noconflict [data-mode=tab][data-active-tab=code] .uk-htmleditor-preview,.wk-noconflict [data-mode=tab][data-active-tab=preview] .uk-htmleditor-code{display:none}.wk-noconflict [data-mode=split] .uk-htmleditor-code,.wk-noconflict [data-mode=split] .uk-htmleditor-preview{float:left;width:50%}.wk-noconflict [data-mode=split] .uk-htmleditor-code{border-right:1px solid #eee}.wk-noconflict .uk-htmleditor-iframe{position:absolute;top:0;left:0;width:100%;height:100%}.wk-noconflict .uk-htmleditor .CodeMirror{padding:10px;box-sizing:border-box}.wk-noconflict .uk-datepicker{z-index:100100;width:auto;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.wk-noconflict .uk-datepicker-nav{margin-bottom:15px;text-align:center;line-height:20px}.wk-noconflict .uk-datepicker-nav:after,.wk-noconflict .uk-datepicker-nav:before{content:"";display:table}.wk-noconflict .uk-datepicker-nav a{color:#444;text-decoration:none}.wk-noconflict .uk-datepicker-nav a:hover{color:#444}.wk-noconflict .uk-datepicker-previous{float:left}.wk-noconflict .uk-datepicker-next{float:right}.wk-noconflict .uk-datepicker-next:after,.wk-noconflict .uk-datepicker-previous:after{width:20px;font-family:FontAwesome}.wk-noconflict .uk-datepicker-previous:after{content:"\f053"}.wk-noconflict .uk-datepicker-next:after{content:"\f054"}.wk-noconflict .uk-datepicker-table{width:100%}.wk-noconflict .uk-datepicker-table td,.wk-noconflict .uk-datepicker-table th{padding:2px}.wk-noconflict .uk-datepicker-table th{font-size:12px}.wk-noconflict .uk-datepicker-table a{display:block;width:26px;line-height:24px;text-align:center;color:#444;text-decoration:none}.wk-noconflict a.uk-datepicker-table-muted{color:#999}.wk-noconflict .uk-datepicker-table a:focus,.wk-noconflict .uk-datepicker-table a:hover{background-color:#ddd;color:#444;outline:0}.wk-noconflict .uk-datepicker-table a:active{background-color:#ccc;color:#444}.wk-noconflict .uk-datepicker-table a.uk-active{background:#00a8e6;color:#fff}.wk-noconflict .uk-h1,.wk-noconflict .uk-h2,.wk-noconflict .uk-h3,.wk-noconflict .uk-h4,.wk-noconflict .uk-h5,.wk-noconflict .uk-h6{margin:0 0 20px;color:#444;font-weight:300}.wk-noconflict *+.uk-h1,.wk-noconflict *+.uk-h2,.wk-noconflict *+.uk-h3,.wk-noconflict *+.uk-h4,.wk-noconflict *+.uk-h5,.wk-noconflict *+.uk-h6{margin-top:30px}.wk-noconflict .uk-h1{font-size:36px;line-height:42px}.wk-noconflict .uk-h2{font-size:24px;line-height:30px}.wk-noconflict .uk-h3{font-size:18px;line-height:24px}.wk-noconflict .uk-h4{font-size:16px;line-height:22px}.wk-noconflict .uk-h5{font-size:14px;line-height:20px}.wk-noconflict .uk-h6{font-size:12px;line-height:18px}.wk-noconflict *+p{margin-top:20px}.wk-modal-header-blank{background:0 0}.wk-heading{margin:0 0 20px;padding-bottom:5px;font-size:18px;line-height:24px;color:#444;font-weight:300}.wk-noconflict *+.wk-heading{margin-top:20px}@media (min-width:768px){.wk-panel-marginless{margin-right:-25px}}.wk-panel-small{padding:10px}.wk-margin-small-top{margin-top:8px}@media (min-width:1400px){.wk-width-xlarge-1-2{width:50%}.wk-width-xlarge-1-4{width:25%}.wk-width-xlarge-3-4{width:75%}.wk-grid-width-xlarge-1-8>*{width:12.5%}}.wk-form-heading{margin:0 0 20px;padding-bottom:5px;font-size:16px;line-height:22px;color:#444;font-weight:300}.wk-noconflict *+.wk-form-heading{margin-top:20px}.wk-form-blank{margin-top:-5px!important;margin-bottom:-5px!important;font-size:24px!important;line-height:30px!important;font-weight:300!important}.wk-subnav-icon>li>a{color:#fff;cursor:pointer}.wk-subnav-icon>li>a:hover{color:#fff}.wk-subnav-right{margin:10px 15px 0 0;float:right}.wk-subnav{margin-left:-20px;margin-top:-20px;margin-bottom:0;font:300 16px/22px "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.wk-subnav>*{padding-left:20px;margin-top:20px}.wk-subnav>*>*{color:#999}.wk-subnav>*>:focus,.wk-subnav>*>:hover,.wk-subnav>.uk-active>*{color:#444}.wk-subnav [class*=uk-icon-]:before{font-size:130%;vertical-align:-15%}.wk-preview-thumb,img{vertical-align:middle}.wk-subnav-divider:before{content:"";display:inline-block;height:20px;margin-right:20px;border-left:1px solid #ddd;vertical-align:middle}.wk-preview-thumb{display:inline-block;width:30px;height:30px;border-radius:50%}.wk-sortable>*{display:block;padding:5px 15px;background:#37a5e4;color:#fff}.wk-image{height:150px}.wk-table td:first-child{padding:0!important}.wk-table td:first-child>a{display:block;padding:10px}.wk-table-width-minimum{width:1px}.pac-container{z-index:100011}html{font-size:13px}a{cursor:pointer}img{max-width:100%;height:auto;-moz-box-sizing:border-box;box-sizing:border-box;border:0}

widgetkit/angular-796d917a.js000064400000404542152177723720011645 0ustar00/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(R,W,u){'use strict';function S(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.20/"+(b?b+"/":"")+a;for(a=1;a<arguments.length;a++){c=c+(1==a?"?":"&")+"p"+(a-1)+"=";var d=encodeURIComponent,e;e=arguments[a];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;c+=d(e)}return Error(c)}}function Ta(b){if(null==b||Ua(b))return!1;var a="length"in Object(b)&&b.length;
return b.nodeType===qa&&a?!0:x(b)||H(b)||0===a||"number"===typeof a&&0<a&&a-1 in b}function r(b,a,c){var d,e;if(b)if(z(b))for(d in b)"prototype"==d||"length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d)||a.call(c,b[d],d,b);else if(H(b)||Ta(b)){var f="object"!==typeof b;d=0;for(e=b.length;d<e;d++)(f||d in b)&&a.call(c,b[d],d,b)}else if(b.forEach&&b.forEach!==r)b.forEach(a,c,b);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d,b);return b}function Ed(b,a,c){for(var d=Object.keys(b).sort(),
e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function lc(b){return function(a,c){b(c,a)}}function Fd(){return++rb}function mc(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function w(b){for(var a=b.$$hashKey,c=1,d=arguments.length;c<d;c++){var e=arguments[c];if(e)for(var f=Object.keys(e),g=0,h=f.length;g<h;g++){var l=f[g];b[l]=e[l]}}mc(b,a);return b}function aa(b){return parseInt(b,10)}function Ob(b,a){return w(Object.create(b),a)}function A(){}function ra(b){return b}function ea(b){return function(){return b}}
function D(b){return"undefined"===typeof b}function y(b){return"undefined"!==typeof b}function L(b){return null!==b&&"object"===typeof b}function x(b){return"string"===typeof b}function Y(b){return"number"===typeof b}function ha(b){return"[object Date]"===Ca.call(b)}function z(b){return"function"===typeof b}function Va(b){return"[object RegExp]"===Ca.call(b)}function Ua(b){return b&&b.window===b}function Wa(b){return b&&b.$evalAsync&&b.$watch}function Xa(b){return"boolean"===typeof b}function nc(b){return!(!b||
!(b.nodeName||b.prop&&b.attr&&b.find))}function Gd(b){var a={};b=b.split(",");var c;for(c=0;c<b.length;c++)a[b[c]]=!0;return a}function wa(b){return K(b.nodeName||b[0]&&b[0].nodeName)}function Ya(b,a){var c=b.indexOf(a);0<=c&&b.splice(c,1);return a}function Da(b,a,c,d){if(Ua(b)||Wa(b))throw Ja("cpws");if(a){if(b===a)throw Ja("cpi");c=c||[];d=d||[];if(L(b)){var e=c.indexOf(b);if(-1!==e)return d[e];c.push(b);d.push(a)}if(H(b))for(var f=a.length=0;f<b.length;f++)e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),
d.push(e)),a.push(e);else{var g=a.$$hashKey;H(a)?a.length=0:r(a,function(b,c){delete a[c]});for(f in b)b.hasOwnProperty(f)&&(e=Da(b[f],null,c,d),L(b[f])&&(c.push(b[f]),d.push(e)),a[f]=e);mc(a,g)}}else if(a=b)H(b)?a=Da(b,[],c,d):ha(b)?a=new Date(b.getTime()):Va(b)?(a=new RegExp(b.source,b.toString().match(/[^\/]*$/)[0]),a.lastIndex=b.lastIndex):L(b)&&(e=Object.create(Object.getPrototypeOf(b)),a=Da(b,e,c,d));return a}function sa(b,a){if(H(b)){a=a||[];for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}else if(L(b))for(c in a=
a||{},b)if("$"!==c.charAt(0)||"$"!==c.charAt(1))a[c]=b[c];return a||b}function ia(b,a){if(b===a)return!0;if(null===b||null===a)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&"object"==c)if(H(b)){if(!H(a))return!1;if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ia(b[d],a[d]))return!1;return!0}}else{if(ha(b))return ha(a)?ia(b.getTime(),a.getTime()):!1;if(Va(b))return Va(a)?b.toString()==a.toString():!1;if(Wa(b)||Wa(a)||Ua(b)||Ua(a)||H(a)||ha(a)||Va(a))return!1;c={};for(d in b)if("$"!==
d.charAt(0)&&!z(b[d])){if(!ia(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c.hasOwnProperty(d)&&"$"!==d.charAt(0)&&a[d]!==u&&!z(a[d]))return!1;return!0}return!1}function Za(b,a,c){return b.concat($a.call(a,c))}function oc(b,a){var c=2<arguments.length?$a.call(arguments,2):[];return!z(a)||a instanceof RegExp?a:c.length?function(){return arguments.length?a.apply(b,Za(c,arguments,0)):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}}function Hd(b,a){var c=a;"string"===typeof b&&
"$"===b.charAt(0)&&"$"===b.charAt(1)?c=u:Ua(a)?c="$WINDOW":a&&W===a?c="$DOCUMENT":Wa(a)&&(c="$SCOPE");return c}function ab(b,a){if("undefined"===typeof b)return u;Y(a)||(a=a?2:null);return JSON.stringify(b,Hd,a)}function pc(b){return x(b)?JSON.parse(b):b}function xa(b){b=B(b).clone();try{b.empty()}catch(a){}var c=B("<div>").append(b).html();try{return b[0].nodeType===bb?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function qc(b){try{return decodeURIComponent(b)}catch(a){}}
function rc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=qc(c[0]),y(d)&&(b=y(c[1])?qc(c[1]):!0,sc.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Pb(b){var a=[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))}):a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ea(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ea(b,a){return encodeURIComponent(b).replace(/%40/gi,
"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Id(b,a){var c,d,e=tb.length;b=B(b);for(d=0;d<e;++d)if(c=tb[d]+a,x(c=b.attr(c)))return c;return null}function Jd(b,a){var c,d,e={};r(tb,function(a){a+="app";!c&&b.hasAttribute&&b.hasAttribute(a)&&(c=b,d=b.getAttribute(a))});r(tb,function(a){a+="app";var e;!c&&(e=b.querySelector("["+a.replace(":","\\:")+"]"))&&(c=e,d=e.getAttribute(a))});c&&(e.strictDi=null!==Id(c,"strict-di"),
a(c,d?[d]:[],e))}function tc(b,a,c){L(c)||(c={});c=w({strictDi:!1},c);var d=function(){b=B(b);if(b.injector()){var d=b[0]===W?"document":xa(b);throw Ja("btstrpd",d.replace(/</,"&lt;").replace(/>/,"&gt;"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=cb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",
d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;R&&e.test(R.name)&&(c.debugInfoEnabled=!0,R.name=R.name.replace(e,""));if(R&&!f.test(R.name))return d();R.name=R.name.replace(f,"");ca.resumeBootstrap=function(b){r(b,function(b){a.push(b)});return d()};z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function Kd(){R.name="NG_ENABLE_DEBUG_INFO!"+R.name;R.location.reload()}function Ld(b){b=ca.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")}
function uc(b,a){a=a||"_";return b.replace(Md,function(b,d){return(d?a:"")+b.toLowerCase()})}function Nd(){var b;vc||((ta=R.jQuery)&&ta.fn.on?(B=ta,w(ta.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=ta.cleanData,ta.cleanData=function(a){var c;if(Qb)Qb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ta._data(e,"events"))&&c.$destroy&&ta(e).triggerHandler("$destroy");b(a)}):B=T,ca.element=B,vc=!0)}function Rb(b,a,c){if(!b)throw Ja("areq",
a||"?",c||"required");return b}function La(b,a,c){c&&H(b)&&(b=b[b.length-1]);Rb(z(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function wc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g<f;g++)d=a[g],b&&(b=(e=b)[d]);return!c&&z(b)?oc(e,b):b}function ub(b){var a=b[0];b=b[b.length-1];var c=[a];do{a=a.nextSibling;if(!a)break;c.push(a)}while(a!==b);return B(c)}function ja(){return Object.create(null)}
function Od(b){function a(a,b,c){return a[b]||(a[b]=c())}var c=S("$injector"),d=S("ng");b=a(b,"angular",Object);b.$$minErr=b.$$minErr||S;return a(b,"module",function(){var b={};return function(f,g,h){if("hasOwnProperty"===f)throw d("badname","module");g&&b.hasOwnProperty(f)&&(b[f]=null);return a(b,f,function(){function a(c,d,e,f){f||(f=b);return function(){f[e||"push"]([c,d,arguments]);return t}}if(!g)throw c("nomod",f);var b=[],d=[],e=[],q=a("$injector","invoke","push",d),t={_invokeQueue:b,_configBlocks:d,
_runBlocks:e,requires:g,name:f,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:q,run:function(a){e.push(a);return this}};h&&q(h);return t})}})}function Pd(b){w(b,{bootstrap:tc,copy:Da,extend:w,equals:ia,
element:B,forEach:r,injector:cb,noop:A,bind:oc,toJson:ab,fromJson:pc,identity:ra,isUndefined:D,isDefined:y,isString:x,isFunction:z,isObject:L,isNumber:Y,isElement:nc,isArray:H,version:Qd,isDate:ha,lowercase:K,uppercase:vb,callbacks:{counter:0},getTestability:Ld,$$minErr:S,$$csp:db,reloadWithDebugInfo:Kd});eb=Od(R);try{eb("ngLocale")}catch(a){eb("ngLocale",[]).provider("$locale",Rd)}eb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Sd});a.provider("$compile",xc).directive({a:Td,
input:yc,textarea:yc,form:Ud,script:Vd,select:Wd,style:Xd,option:Yd,ngBind:Zd,ngBindHtml:$d,ngBindTemplate:ae,ngClass:be,ngClassEven:ce,ngClassOdd:de,ngCloak:ee,ngController:fe,ngForm:ge,ngHide:he,ngIf:ie,ngInclude:je,ngInit:ke,ngNonBindable:le,ngPluralize:me,ngRepeat:ne,ngShow:oe,ngStyle:pe,ngSwitch:qe,ngSwitchWhen:re,ngSwitchDefault:se,ngOptions:te,ngTransclude:ue,ngModel:ve,ngList:we,ngChange:xe,pattern:zc,ngPattern:zc,required:Ac,ngRequired:Ac,minlength:Bc,ngMinlength:Bc,maxlength:Cc,ngMaxlength:Cc,
ngValue:ye,ngModelOptions:ze}).directive({ngInclude:Ae}).directive(wb).directive(Dc);a.provider({$anchorScroll:Be,$animate:Ce,$browser:De,$cacheFactory:Ee,$controller:Fe,$document:Ge,$exceptionHandler:He,$filter:Ec,$interpolate:Ie,$interval:Je,$http:Ke,$httpBackend:Le,$location:Me,$log:Ne,$parse:Oe,$rootScope:Pe,$q:Qe,$$q:Re,$sce:Se,$sceDelegate:Te,$sniffer:Ue,$templateCache:Ve,$templateRequest:We,$$testability:Xe,$timeout:Ye,$window:Ze,$$rAF:$e,$$asyncCallback:af,$$jqLite:bf})}])}function fb(b){return b.replace(cf,
function(a,b,d,e){return e?d.toUpperCase():d}).replace(df,"Moz$1")}function Fc(b){b=b.nodeType;return b===qa||!b||9===b}function Gc(b,a){var c,d,e=a.createDocumentFragment(),f=[];if(Sb.test(b)){c=c||e.appendChild(a.createElement("div"));d=(ef.exec(b)||["",""])[1].toLowerCase();d=ka[d]||ka._default;c.innerHTML=d[1]+b.replace(ff,"<$1></$2>")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Za(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});
return e}function T(b){if(b instanceof T)return b;var a;x(b)&&(b=N(b),a=!0);if(!(this instanceof T)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new T(b)}if(a){a=W;var c;b=(c=gf.exec(b))?[a.createElement(c[1])]:(c=Gc(b,a))?c.childNodes:[]}Hc(this,b)}function Ub(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d<e;d++)yb(c[d])}function Ic(b,a,c,d){if(y(d))throw Tb("offargs");var e=(d=zb(b))&&d.events,f=d&&d.handle;if(f)if(a)r(a.split(" "),
function(a){if(y(c)){var d=e[a];Ya(d||[],c);if(d&&0<d.length)return}b.removeEventListener(a,f,!1);delete e[a]});else for(a in e)"$destroy"!==a&&b.removeEventListener(a,f,!1),delete e[a]}function yb(b,a){var c=b.ng339,d=c&&Ab[c];d&&(a?delete d.data[a]:(d.handle&&(d.events.$destroy&&d.handle({},"$destroy"),Ic(b)),delete Ab[c],b.ng339=u))}function zb(b,a){var c=b.ng339,c=c&&Ab[c];a&&!c&&(b.ng339=c=++hf,c=Ab[c]={events:{},data:{},handle:u});return c}function Vb(b,a,c){if(Fc(b)){var d=y(c),e=!d&&a&&!L(a),
f=!a;b=(b=zb(b,!e))&&b.data;if(d)b[a]=c;else{if(f)return b;if(e)return b&&b[a];w(b,a)}}}function Bb(b,a){return b.getAttribute?-1<(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" "):!1}function Cb(b,a){a&&b.setAttribute&&r(a.split(" "),function(a){b.setAttribute("class",N((" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+N(a)+" "," ")))})}function Db(b,a){if(a&&b.setAttribute){var c=(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");
r(a.split(" "),function(a){a=N(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});b.setAttribute("class",N(c))}}function Hc(b,a){if(a)if(a.nodeType)b[b.length++]=a;else{var c=a.length;if("number"===typeof c&&a.window!==a){if(c)for(var d=0;d<c;d++)b[b.length++]=a[d]}else b[b.length++]=a}}function Jc(b,a){return Eb(b,"$"+(a||"ngController")+"Controller")}function Eb(b,a,c){9==b.nodeType&&(b=b.documentElement);for(a=H(a)?a:[a];b;){for(var d=0,e=a.length;d<e;d++)if((c=B.data(b,a[d]))!==u)return c;b=b.parentNode||
11===b.nodeType&&b.host}}function Kc(b){for(xb(b,!0);b.firstChild;)b.removeChild(b.firstChild)}function Lc(b,a){a||xb(b);var c=b.parentNode;c&&c.removeChild(b)}function jf(b,a){a=a||R;if("complete"===a.document.readyState)a.setTimeout(b);else B(a).on("load",b)}function Mc(b,a){var c=Fb[a.toLowerCase()];return c&&Nc[wa(b)]&&c}function kf(b,a){var c=b.nodeName;return("INPUT"===c||"TEXTAREA"===c)&&Oc[a]}function lf(b,a){var c=function(c,e){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=
a[e||c.type],g=f?f.length:0;if(g){if(D(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};1<g&&(f=sa(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||f[l].call(b,c)}};c.elem=b;return c}function bf(){this.$get=function(){return w(T,{hasClass:function(b,a){b.attr&&(b=b[0]);
return Bb(b,a)},addClass:function(b,a){b.attr&&(b=b[0]);return Db(b,a)},removeClass:function(b,a){b.attr&&(b=b[0]);return Cb(b,a)}})}}function Na(b,a){var c=b&&b.$$hashKey;if(c)return"function"===typeof c&&(c=b.$$hashKey()),c;c=typeof b;return c="function"==c||"object"==c&&null!==b?b.$$hashKey=c+":"+(a||Fd)():c+":"+b}function gb(b,a){if(a){var c=0;this.nextUid=function(){return++c}}r(b,this.put,this)}function mf(b){return(b=b.toString().replace(Pc,"").match(Qc))?"function("+(b[1]||"").replace(/[\s\r\n]+/,
" ")+")":"fn"}function cb(b,a){function c(a){return function(b,c){if(L(b))r(b,lc(a));else return a(b,c)}}function d(a,b){Ma(a,"service");if(z(b)||H(b))b=q.instantiate(b);if(!b.$get)throw Fa("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=s.invoke(b,this);if(D(c))throw Fa("undef",a);return c}}function f(a,b,c){return d(a,{$get:!1!==c?e(a,b):b})}function g(a){var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=q.get(e[0]);f[e[1]].apply(f,
e[2])}}if(!n.get(a)){n.put(a,!0);try{x(a)?(c=eb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):z(a)?b.push(q.invoke(a)):H(a)?b.push(q.invoke(a)):La(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Fa("modulerr",a,e.stack||e.message||e);}}});return b}function h(b,c){function d(a,e){if(b.hasOwnProperty(a)){if(b[a]===l)throw Fa("cdep",a+" <- "+k.join(" <- "));return b[a]}try{return k.unshift(a),
b[a]=l,b[a]=c(a,e)}catch(f){throw b[a]===l&&delete b[a],f;}finally{k.shift()}}function e(b,c,f,g){"string"===typeof f&&(g=f,f=null);var k=[],l=cb.$$annotate(b,a,g),h,q,p;q=0;for(h=l.length;q<h;q++){p=l[q];if("string"!==typeof p)throw Fa("itkn",p);k.push(f&&f.hasOwnProperty(p)?f[p]:d(p,g))}H(b)&&(b=b[h]);return b.apply(c,k)}return{invoke:e,instantiate:function(a,b,c){var d=Object.create((H(a)?a[a.length-1]:a).prototype||null);a=e(a,d,b,c);return L(a)||z(a)?a:d},get:d,annotate:cb.$$annotate,has:function(a){return p.hasOwnProperty(a+
"Provider")||b.hasOwnProperty(a)}}}a=!0===a;var l={},k=[],n=new gb([],!0),p={$provide:{provider:c(d),factory:c(f),service:c(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:c(function(a,b){return f(a,ea(b),!1)}),constant:c(function(a,b){Ma(a,"constant");p[a]=b;t[a]=b}),decorator:function(a,b){var c=q.get(a+"Provider"),d=c.$get;c.$get=function(){var a=s.invoke(d,c);return s.invoke(b,null,{$delegate:a})}}}},q=p.$injector=h(p,function(a,b){ca.isString(b)&&k.push(b);
throw Fa("unpr",k.join(" <- "));}),t={},s=t.$injector=h(t,function(a,b){var c=q.get(a+"Provider",b);return s.invoke(c.$get,c,u,a)});r(g(b),function(a){s.invoke(a||A)});return s}function Be(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===wa(a))return b=a,!0});return b}function f(b){if(b){b.scrollIntoView();var c;c=g.yOffset;z(c)?c=c():nc(c)?(c=c[0],c="fixed"!==
a.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Y(c)||(c=0);c&&(b=b.getBoundingClientRect().top,a.scrollBy(0,b-c))}else a.scrollTo(0,0)}function g(){var a=c.hash(),b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=a.document;b&&d.$watch(function(){return c.hash()},function(a,b){a===b&&""===a||jf(function(){d.$evalAsync(g)})});return g}]}function af(){this.$get=["$$rAF","$timeout",function(b,a){return b.supported?function(a){return b(a)}:
function(b){return a(b,0,!1)}}]}function nf(b,a,c,d){function e(a){try{a.apply(null,$a.call(arguments,1))}finally{if(m--,0===m)for(;C.length;)try{C.pop()()}catch(b){c.error(b)}}}function f(a,b){(function da(){r($,function(a){a()});I=b(da,a)})()}function g(){h();l()}function h(){a:{try{M=t.state;break a}catch(a){}M=void 0}M=D(M)?null:M;ia(M,P)&&(M=P);P=M}function l(){if(G!==n.url()||E!==M)G=n.url(),E=M,r(X,function(a){a(n.url(),M)})}function k(a){try{return decodeURIComponent(a)}catch(b){return a}}
var n=this,p=a[0],q=b.location,t=b.history,s=b.setTimeout,F=b.clearTimeout,v={};n.isMock=!1;var m=0,C=[];n.$$completeOutstandingRequest=e;n.$$incOutstandingRequestCount=function(){m++};n.notifyWhenNoOutstandingRequests=function(a){r($,function(a){a()});0===m?a():C.push(a)};var $=[],I;n.addPollFn=function(a){D(I)&&f(100,s);$.push(a);return a};var M,E,G=q.href,O=a.find("base"),Q=null;h();E=M;n.url=function(a,c,e){D(e)&&(e=null);q!==b.location&&(q=b.location);t!==b.history&&(t=b.history);if(a){var f=
E===e;if(G===a&&(!d.history||f))return n;var g=G&&Ga(G)===Ga(a);G=a;E=e;if(!d.history||g&&f){if(!g||Q)Q=a;c?q.replace(a):g?(c=q,e=a.indexOf("#"),a=-1===e?"":a.substr(e),c.hash=a):q.href=a}else t[c?"replaceState":"pushState"](e,"",a),h(),E=M;return n}return Q||q.href.replace(/%27/g,"'")};n.state=function(){return M};var X=[],ba=!1,P=null;n.onUrlChange=function(a){if(!ba){if(d.history)B(b).on("popstate",g);B(b).on("hashchange",g);ba=!0}X.push(a);return a};n.$$checkUrlChange=l;n.baseHref=function(){var a=
O.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var fa={},y="",la=n.baseHref();n.cookies=function(a,b){var d,e,f,g;if(a)b===u?p.cookie=encodeURIComponent(a)+"=;path="+la+";expires=Thu, 01 Jan 1970 00:00:00 GMT":x(b)&&(d=(p.cookie=encodeURIComponent(a)+"="+encodeURIComponent(b)+";path="+la).length+1,4096<d&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"));else{if(p.cookie!==y)for(y=p.cookie,d=y.split("; "),fa={},f=0;f<d.length;f++)e=
d[f],g=e.indexOf("="),0<g&&(a=k(e.substring(0,g)),fa[a]===u&&(fa[a]=k(e.substring(g+1))));return fa}};n.defer=function(a,b){var c;m++;c=s(function(){delete v[c];e(a)},b||0);v[c]=!0;return c};n.defer.cancel=function(a){return v[a]?(delete v[a],F(a),e(A),!0):!1}}function De(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new nf(b,d,a,c)}]}function Ee(){this.$get=function(){function b(b,d){function e(a){a!=p&&(q?q==a&&(q=a.n):q=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,
b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw S("$cacheFactory")("iid",b);var g=0,h=w({},d,{id:b}),l={},k=d&&d.capacity||Number.MAX_VALUE,n={},p=null,q=null;return a[b]={put:function(a,b){if(k<Number.MAX_VALUE){var c=n[a]||(n[a]={key:a});e(c)}if(!D(b))return a in l||g++,l[a]=b,g>k&&this.remove(q.key),b},get:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;e(b)}return l[a]},remove:function(a){if(k<Number.MAX_VALUE){var b=n[a];if(!b)return;b==p&&(p=b.p);b==q&&(q=b.n);f(b.n,b.p);delete n[a]}delete l[a];
g--},removeAll:function(){l={};g=0;n={};p=q=null},destroy:function(){n=h=l=null;delete a[b]},info:function(){return w({},h,{size:g})}}}var a={};b.info=function(){var b={};r(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Ve(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function xc(b,a){function c(a,b){var c=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,d={};r(a,function(a,e){var f=a.match(c);if(!f)throw ma("iscp",b,e,a);d[e]={mode:f[1][0],collection:"*"===
f[2],optional:"?"===f[3],attrName:f[4]||e}});return d}var d={},e=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,f=/(([\w\-]+)(?:\:([^;]+))?;?)/,g=Gd("ngSrc,ngSrcset,src,srcset"),h=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/;this.directive=function p(a,e){Ma(a,"directive");x(a)?(Rb(e,"directiveFactory"),d.hasOwnProperty(a)||(d[a]=[],b.factory(a+"Directive",["$injector","$exceptionHandler",function(b,e){var f=[];r(d[a],function(d,g){try{var h=b.invoke(d);z(h)?h={compile:ea(h)}:!h.compile&&h.link&&
(h.compile=ea(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||a;h.require=h.require||h.controller&&h.name;h.restrict=h.restrict||"EA";L(h.scope)&&(h.$$isolateBindings=c(h.scope,h.name));f.push(h)}catch(l){e(l)}});return f}])),d[a].push(e)):r(a,lc(p));return this};this.aHrefSanitizationWhitelist=function(b){return y(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()};
var k=!0;this.debugInfoEnabled=function(a){return y(a)?(k=a,this):k};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,c,s,F,v,m,C,$,I,M){function E(a,b){try{a.addClass(b)}catch(c){}}function G(a,b,c,d,e){a instanceof B||(a=B(a));r(a,function(b,c){b.nodeType==bb&&b.nodeValue.match(/\S+/)&&(a[c]=B(b).wrap("<span></span>").parent()[0])});var f=O(a,b,a,c,d,e);G.$$addScopeClass(a);
var g=null;return function(b,c,d){Rb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("<div>").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);G.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function O(a,b,c,d,e,f){function g(a,
c,d,e){var f,l,k,q,p,s,t;if(m)for(t=Array(c.length),q=0;q<h.length;q+=3)f=h[q],t[f]=c[f];else t=c;q=0;for(p=h.length;q<p;)l=t[h[q++]],c=h[q++],f=h[q++],c?(c.scope?(k=a.$new(),G.$$addScopeInfo(B(l),k)):k=a,s=c.transcludeOnThisElement?Q(a,c.transclude,e,c.elementTranscludeOnThisElement):!c.templateOnThisElement&&e?e:!e&&b?Q(a,b):null,c(f,k,l,d,s)):f&&f(a,l.childNodes,u,e)}for(var h=[],l,k,q,p,m,s=0;s<a.length;s++){l=new Yb;k=X(a[s],[],l,0===s?d:u,e);(f=k.length?fa(k,a[s],l,b,c,null,[],[],f):null)&&
f.scope&&G.$$addScopeClass(l.$$element);l=f&&f.terminal||!(q=a[s].childNodes)||!q.length?null:O(q,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(s,f,l),p=!0,m=m||f;f=null}return p?g:null}function Q(a,b,c,d){return function(d,e,f,g,h){d||(d=a.$new(!1,h),d.$$transcluded=!0);return b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})}}function X(a,b,c,d,g){var h=c.$attr,l;switch(a.nodeType){case qa:la(b,ya(wa(a)),"E",d,g);for(var k,
q,p,m=a.attributes,s=0,t=m&&m.length;s<t;s++){var M=!1,I=!1;k=m[s];l=k.name;q=N(k.value);k=ya(l);if(p=U.test(k))l=l.replace(Rc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});var F=k.replace(/(Start|End)$/,"");D(F)&&k===F+"Start"&&(M=l,I=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6));k=ya(l.toLowerCase());h[k]=l;if(p||!c.hasOwnProperty(k))c[k]=q,Mc(a,k)&&(c[k]=!0);Pa(a,b,q,k,p);la(b,k,"A",d,g,M,I)}a=a.className;L(a)&&(a=a.animVal);if(x(a)&&""!==a)for(;l=f.exec(a);)k=ya(l[2]),
la(b,k,"C",d,g)&&(c[k]=N(l[3])),a=a.substr(l.index+l[0].length);break;case bb:za(b,a.nodeValue);break;case 8:try{if(l=e.exec(a.nodeValue))k=ya(l[1]),la(b,k,"M",d,g)&&(c[k]=N(l[2]))}catch(v){}}b.sort(da);return b}function ba(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ma("uterdir",b,c);a.nodeType==qa&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return B(d)}function P(a,b,c){return function(d,e,f,g,h){e=ba(e[0],
b,c);return a(d,e,f,g,h)}}function fa(a,d,e,f,g,l,k,p,m){function s(a,b,c,d){if(a){c&&(a=P(a,c,d));a.require=J.require;a.directiveName=da;if(Q===J||J.$$isolateScope)a=Y(a,{isolateScope:!0});k.push(a)}if(b){c&&(b=P(b,c,d));b.require=J.require;b.directiveName=da;if(Q===J||J.$$isolateScope)b=Y(b,{isolateScope:!0});p.push(b)}}function M(a,b,c,d){var e,f="data",g=!1,l=c,k;if(x(b)){k=b.match(h);b=b.substring(k[0].length);k[3]&&(k[1]?k[3]=null:k[1]=k[3]);"^"===k[1]?f="inheritedData":"^^"===k[1]&&(f="inheritedData",
l=c.parent());"?"===k[2]&&(g=!0);e=null;d&&"data"===f&&(e=d[b])&&(e=e.instance);e=e||l[f]("$"+b+"Controller");if(!e&&!g)throw ma("ctreq",b,a);return e||null}H(b)&&(e=[],r(b,function(b){e.push(M(a,b,c,d))}));return e}function I(a,c,f,g,l){function h(a,b,c){var d;Wa(a)||(c=b,b=a,a=u);A&&(d=C);c||(c=A?X.parent():X);return l(a,b,d,c,Wb)}var m,s,t,E,C,ib,X,P;d===f?(P=e,X=e.$$element):(X=B(f),P=new Yb(X,e));Q&&(E=c.$new(!0));l&&(ib=h,ib.$$boundTransclude=l);O&&($={},C={},r(O,function(a){var b={$scope:a===
Q||a.$$isolateScope?E:c,$element:X,$attrs:P,$transclude:ib};t=a.controller;"@"==t&&(t=P[a.name]);b=v(t,b,!0,a.controllerAs);C[a.name]=b;A||X.data("$"+a.name+"Controller",b.instance);$[a.name]=b}));if(Q){G.$$addScopeInfo(X,E,!0,!(na&&(na===Q||na===Q.$$originalDirective)));G.$$addScopeClass(X,!0);g=$&&$[Q.name];var ba=E;g&&g.identifier&&!0===Q.bindToController&&(ba=g.instance);r(E.$$isolateBindings=Q.$$isolateBindings,function(a,d){var e=a.attrName,f=a.optional,g,l,h,k;switch(a.mode){case "@":P.$observe(e,
function(a){ba[d]=a});P.$$observers[e].$$scope=c;P[e]&&(ba[d]=b(P[e])(c));break;case "=":if(f&&!P[e])break;l=F(P[e]);k=l.literal?ia:function(a,b){return a===b||a!==a&&b!==b};h=l.assign||function(){g=ba[d]=l(c);throw ma("nonassign",P[e],Q.name);};g=ba[d]=l(c);f=function(a){k(a,ba[d])||(k(a,g)?h(c,a=ba[d]):ba[d]=a);return g=a};f.$stateful=!0;f=a.collection?c.$watchCollection(P[e],f):c.$watch(F(P[e],f),null,l.literal);E.$on("$destroy",f);break;case "&":l=F(P[e]),ba[d]=function(a){return l(c,a)}}})}$&&
(r($,function(a){a()}),$=null);g=0;for(m=k.length;g<m;g++)s=k[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib);var Wb=c;Q&&(Q.template||null===Q.templateUrl)&&(Wb=E);a&&a(Wb,f.childNodes,u,l);for(g=p.length-1;0<=g;g--)s=p[g],Z(s,s.isolateScope?E:c,X,P,s.require&&M(s.directiveName,s.require,X,C),ib)}m=m||{};for(var E=-Number.MAX_VALUE,C,O=m.controllerDirectives,$,Q=m.newIsolateScopeDirective,na=m.templateDirective,fa=m.nonTlbTranscludeDirective,la=!1,D=!1,A=m.hasElementTranscludeDirective,
w=e.$$element=B(d),J,da,V,hb=f,za,K=0,R=a.length;K<R;K++){J=a[K];var Pa=J.$$start,U=J.$$end;Pa&&(w=ba(d,Pa,U));V=u;if(E>J.priority)break;if(V=J.scope)J.templateUrl||(L(V)?(Oa("new/isolated scope",Q||C,J,w),Q=J):Oa("new/isolated scope",Q,J,w)),C=C||J;da=J.name;!J.templateUrl&&J.controller&&(V=J.controller,O=O||{},Oa("'"+da+"' controller",O[da],J,w),O[da]=J);if(V=J.transclude)la=!0,J.$$tlb||(Oa("transclusion",fa,J,w),fa=J),"element"==V?(A=!0,E=J.priority,V=w,w=e.$$element=B(W.createComment(" "+da+": "+
e[da]+" ")),d=w[0],T(g,$a.call(V,0),d),hb=G(V,f,E,l&&l.name,{nonTlbTranscludeDirective:fa})):(V=B(Ub(d)).contents(),w.empty(),hb=G(V,f));if(J.template)if(D=!0,Oa("template",na,J,w),na=J,V=z(J.template)?J.template(w,e):J.template,V=Sc(V),J.replace){l=J;V=Sb.test(V)?Tc(Xb(J.templateNamespace,N(V))):[];d=V[0];if(1!=V.length||d.nodeType!==qa)throw ma("tplrt",da,"");T(g,w,d);R={$attr:{}};V=X(d,[],R);var aa=a.splice(K+1,a.length-(K+1));Q&&y(V);a=a.concat(V).concat(aa);S(e,R);R=a.length}else w.html(V);if(J.templateUrl)D=
!0,Oa("template",na,J,w),na=J,J.replace&&(l=J),I=of(a.splice(K,a.length-K),w,e,g,la&&hb,k,p,{controllerDirectives:O,newIsolateScopeDirective:Q,templateDirective:na,nonTlbTranscludeDirective:fa}),R=a.length;else if(J.compile)try{za=J.compile(w,e,hb),z(za)?s(null,za,Pa,U):za&&s(za.pre,za.post,Pa,U)}catch(pf){c(pf,xa(w))}J.terminal&&(I.terminal=!0,E=Math.max(E,J.priority))}I.scope=C&&!0===C.scope;I.transcludeOnThisElement=la;I.elementTranscludeOnThisElement=A;I.templateOnThisElement=D;I.transclude=hb;
m.hasElementTranscludeDirective=A;return I}function y(a){for(var b=0,c=a.length;b<c;b++)a[b]=Ob(a[b],{$$isolateScope:!0})}function la(b,e,f,g,l,h,k){if(e===l)return null;l=null;if(d.hasOwnProperty(e)){var q;e=a.get(e+"Directive");for(var m=0,s=e.length;m<s;m++)try{q=e[m],(g===u||g>q.priority)&&-1!=q.restrict.indexOf(f)&&(h&&(q=Ob(q,{$$start:h,$$end:k})),b.push(q),l=q)}catch(I){c(I)}}return l}function D(b){if(d.hasOwnProperty(b))for(var c=a.get(b+"Directive"),e=0,f=c.length;e<f;e++)if(b=c[e],b.multiElement)return!0;
return!1}function S(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(E(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function of(a,b,c,d,e,f,g,l){var h=[],k,q,p=b[0],m=a.shift(),t=Ob(m,{templateUrl:null,transclude:null,
replace:null,$$originalDirective:m}),I=z(m.templateUrl)?m.templateUrl(b,c):m.templateUrl,M=m.templateNamespace;b.empty();s(I).then(function(s){var F,v;s=Sc(s);if(m.replace){s=Sb.test(s)?Tc(Xb(M,N(s))):[];F=s[0];if(1!=s.length||F.nodeType!==qa)throw ma("tplrt",m.name,I);s={$attr:{}};T(d,b,F);var C=X(F,[],s);L(m.scope)&&y(C);a=C.concat(a);S(c,s)}else F=p,b.html(s);a.unshift(t);k=fa(a,F,c,e,b,m,f,g,l);r(d,function(a,c){a==F&&(d[c]=b[0])});for(q=O(b[0].childNodes,e);h.length;){s=h.shift();v=h.shift();
var G=h.shift(),P=h.shift(),C=b[0];if(!s.$$destroyed){if(v!==p){var $=v.className;l.hasElementTranscludeDirective&&m.replace||(C=Ub(F));T(G,B(v),C);E(B(C),$)}v=k.transcludeOnThisElement?Q(s,k.transclude,P):P;k(q,s,C,d,v)}}h=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(h?h.push(b,c,d,a):(k.transcludeOnThisElement&&(a=Q(b,k.transclude,e)),k(q,b,c,d,a)))}}function da(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function Oa(a,b,c,d){if(b)throw ma("multidir",
b.name,c.name,a,xa(d));}function za(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&G.$$addBindingClass(a);return function(a,c){var e=c.parent();b||G.$$addBindingClass(e);G.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function Xb(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=W.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==
b)return $.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return $.RESOURCE_URL}function Pa(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var k=b(d,!0,h,f);if(k){if("multiple"===e&&"select"===wa(a))throw ma("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers={});if(l.test(e))throw ma("nodomevents");var p=g[e];p!==d&&(k=p&&b(p,!0,h,f),d=p);k&&(g[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope||
a).$watch(k,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e,a)}))}}}})}}function T(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,l;if(a)for(g=0,l=a.length;g<l;g++)if(a[g]==d){a[g++]=c;l=g+e-1;for(var h=a.length;g<h;g++,l++)l<h?a[g]=a[l]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=W.createDocumentFragment();a.appendChild(d);B(c).data(B(d).data());ta?(Qb=!0,ta.cleanData([d])):delete B.cache[d[B.expando]];d=1;for(e=b.length;d<e;d++)f=b[d],B(f).remove(),
a.appendChild(f),delete b[d];b[0]=c;b.length=1}function Y(a,b){return w(function(){return a.apply(null,arguments)},a,b)}function Z(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(l){c(l,xa(d))}}var Yb=function(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a};Yb.prototype={$normalize:ya,$addClass:function(a){a&&0<a.length&&I.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&I.removeClass(this.$$element,a)},$updateClass:function(a,
b){var c=Uc(a,b);c&&c.length&&I.addClass(this.$$element,c);(c=Uc(b,a))&&c.length&&I.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=this.$$element[0],g=Mc(f,a),l=kf(f,a),f=a;g?(this.$$element.prop(a,b),e=g):l&&(this[l]=b,f=l);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=uc(a,"-"));g=wa(this.$$element);if("a"===g&&"href"===a||"img"===g&&"src"===a)this[a]=b=M(b,"src"===a);else if("img"===g&&"srcset"===a){for(var g="",l=N(b),h=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,h=/\s/.test(l)?
h:/(,)/,l=l.split(h),h=Math.floor(l.length/2),k=0;k<h;k++)var q=2*k,g=g+M(N(l[q]),!0),g=g+(" "+N(l[q+1]));l=N(l[2*k]).split(/\s/);g+=M(N(l[0]),!0);2===l.length&&(g+=" "+N(l[1]));this[a]=b=g}!1!==d&&(null===b||b===u?this.$$element.removeAttr(e):this.$$element.attr(e,b));(a=this.$$observers)&&r(a[f],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=ja()),e=d[a]||(d[a]=[]);e.push(b);m.$evalAsync(function(){!e.$$inter&&c.hasOwnProperty(a)&&b(c[a])});
return function(){Ya(e,b)}}};var V=b.startSymbol(),na=b.endSymbol(),Sc="{{"==V||"}}"==na?ra:function(a){return a.replace(/\{\{/g,V).replace(/}}/g,na)},U=/^ngAttr[A-Z]/;G.$$addBindingInfo=k?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:A;G.$$addBindingClass=k?function(a){E(a,"ng-binding")}:A;G.$$addScopeInfo=k?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:A;G.$$addScopeClass=k?function(a,b){E(a,b?"ng-isolate-scope":
"ng-scope")}:A;return G}]}function ya(b){return fb(b.replace(Rc,""))}function Uc(b,a){var c="",d=b.split(/\s+/),e=a.split(/\s+/),f=0;a:for(;f<d.length;f++){for(var g=d[f],h=0;h<e.length;h++)if(g==e[h])continue a;c+=(0<c.length?" ":"")+g}return c}function Tc(b){b=B(b);var a=b.length;if(1>=a)return b;for(;a--;)8===b[a].nodeType&&qf.call(b,a,1);return b}function Fe(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");L(a)?w(b,a):b[a]=c};this.allowGlobals=function(){a=
!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!L(a.$scope))throw S("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var n,p,q;l=!0===l;k&&x(k)&&(q=k);if(x(g)){k=g.match(c);if(!k)throw rf("ctrlfmt",g);p=k[1];q=q||k[3];g=b.hasOwnProperty(p)?b[p]:wc(h.$scope,p,!0)||(a?wc(e,p,!0):u);La(g,p,!0)}if(l)return l=(H(g)?g[g.length-1]:g).prototype,n=Object.create(l||null),q&&f(h,q,n,p||g.name),w(function(){d.invoke(g,n,h,p);return n},{instance:n,identifier:q});
n=d.instantiate(g,h,p);q&&f(h,q,n,p||g.name);return n}}]}function Ge(){this.$get=["$window",function(b){return B(b.document)}]}function He(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Zb(b,a){if(x(b)){var c=b.replace(sf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(Vc))||(d=(d=c.match(tf))&&uf[d[0]].test(c));d&&(b=pc(c))}}return b}function Wc(b){var a=ja(),c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=K(N(b.substr(0,
e)));d=N(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Xc(b){var a=L(b)?b:u;return function(c){a||(a=Wc(b));return c?(c=a[K(c)],void 0===c&&(c=null),c):a}}function Yc(b,a,c,d){if(z(d))return d(b,a,c);r(d,function(d){b=d(b,a,c)});return b}function Ke(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return L(a)&&"[object File]"!==Ca.call(a)&&"[object Blob]"!==Ca.call(a)&&"[object FormData]"!==Ca.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
post:sa($b),put:sa($b),patch:sa($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=w({},a);b.data=a.data?Yc(a.data,a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};r(a,function(a,d){z(a)?(b=
a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ca.isObject(a))throw S("$http")("badreq",a);var e=w({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=w({},a.headers),f,g,c=w({},c.common,c[K(a.method)]);a:for(f in c){a=K(f);for(g in e)if(K(g)===a)continue a;e[f]=c[f]}return d(e)}(a);e.method=vb(e.method);var f=[function(a){var d=a.headers,e=Yc(a.data,Xc(d),u,a.transformRequest);D(e)&&r(d,function(a,b){"content-type"===K(b)&&
delete d[b]});D(a.withCredentials)&&!D(b.withCredentials)&&(a.withCredentials=b.withCredentials);return n(a,e).then(c,c)},u],g=h.when(e);for(r(t,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a,"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data,
b.status,b.headers,e)});return g};return g}function n(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}E&&(200<=b&&300>b?E.put(Q,[b,c,Wc(d),e]):E.remove(Q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?I.resolve:I.reject)({data:a,status:b,headers:Xc(d),config:c,statusText:e})}function n(a){m(a.data,a.status,sa(a.headers()),a.statusText)}function t(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var I=h.defer(),M=I.promise,
E,G,O=c.headers,Q=p(c.url,c.params);k.pendingRequests.push(c);M.then(t,t);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=L(c.cache)?c.cache:L(b.cache)?b.cache:q);E&&(G=E.get(Q),y(G)?G&&z(G.then)?G.then(n,n):H(G)?m(G[1],G[0],sa(G[2]),G[3]):m(G,200,{},"OK"):E.put(Q,M));D(G)&&((G=Zc(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:u)&&(O[c.xsrfHeaderName||b.xsrfHeaderName]=G),d(c.method,Q,f,l,O,c.timeout,c.withCredentials,c.responseType));return M}function p(a,b){if(!b)return a;
var c=[];Ed(b,function(a,b){null===a||D(a)||(H(a)||(a=[a]),r(a,function(a){L(a)&&(a=ha(a)?a.toISOString():ab(a));c.push(Ea(b)+"="+Ea(a))}))});0<c.length&&(a+=(-1==a.indexOf("?")?"?":"&")+c.join("&"));return a}var q=f("$http"),t=[];r(c,function(a){t.unshift(x(a)?l.get(a):l.invoke(a))});k.pendingRequests=[];(function(a){r(arguments,function(a){k[a]=function(b,c){return k(w(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){k[a]=function(b,c,d){return k(w(d||
{},{method:a,url:b,data:c}))}})})("post","put","patch");k.defaults=b;return k}]}function vf(){return new R.XMLHttpRequest}function Le(){this.$get=["$browser","$window","$document",function(b,a,c){return wf(b,vf,b.defer,a.angular.callbacks,c[0])}]}function wf(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),n=null;f.type="text/javascript";f.src=a;f.async=!0;n=function(a){f.removeEventListener("load",n,!1);f.removeEventListener("error",n,!1);e.body.removeChild(f);f=null;var g=-1,t="unknown";
a&&("load"!==a.type||d[b].called||(a={type:"error"}),t=a.type,g="error"===a.type?404:200);c&&c(g,t)};f.addEventListener("load",n,!1);f.addEventListener("error",n,!1);e.body.appendChild(f);return n}return function(e,h,l,k,n,p,q,t){function s(){m&&m();C&&C.abort()}function F(a,d,e,f,g){I!==u&&c.cancel(I);m=C=null;a(d,e,f,g);b.$$completeOutstandingRequest(A)}b.$$incOutstandingRequestCount();h=h||b.url();if("jsonp"==K(e)){var v="_"+(d.counter++).toString(36);d[v]=function(a){d[v].data=a;d[v].called=!0};
var m=f(h.replace("JSON_CALLBACK","angular.callbacks."+v),v,function(a,b){F(k,a,d[v].data,"",b);d[v]=A})}else{var C=a();C.open(e,h,!0);r(n,function(a,b){y(a)&&C.setRequestHeader(b,a)});C.onload=function(){var a=C.statusText||"",b="response"in C?C.response:C.responseText,c=1223===C.status?204:C.status;0===c&&(c=b?200:"file"==Aa(h).protocol?404:0);F(k,c,b,C.getAllResponseHeaders(),a)};e=function(){F(k,-1,null,null,"")};C.onerror=e;C.onabort=e;q&&(C.withCredentials=!0);if(t)try{C.responseType=t}catch($){if("json"!==
t)throw $;}C.send(l||null)}if(0<p)var I=c(s,p);else p&&z(p.then)&&p.then(s)}}function Ie(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(a){return"\\\\\\"+a}function g(f,g,t,s){function F(c){return c.replace(k,b).replace(n,a)}function v(a){try{var b=a;a=t?e.getTrusted(t,b):e.valueOf(b);var c;if(s&&!y(a))c=a;else if(null==a)c="";else{switch(typeof a){case "string":break;
case "number":a=""+a;break;default:a=ab(a)}c=a}return c}catch(g){c=ac("interr",f,g.toString()),d(c)}}s=!!s;for(var m,C,r=0,I=[],M=[],E=f.length,G=[],O=[];r<E;)if(-1!=(m=f.indexOf(b,r))&&-1!=(C=f.indexOf(a,m+h)))r!==m&&G.push(F(f.substring(r,m))),r=f.substring(m+h,C),I.push(r),M.push(c(r,v)),r=C+l,O.push(G.length),G.push("");else{r!==E&&G.push(F(f.substring(r)));break}if(t&&1<G.length)throw ac("noconcat",f);if(!g||I.length){var Q=function(a){for(var b=0,c=I.length;b<c;b++){if(s&&D(a[b]))return;G[O[b]]=
a[b]}return G.join("")};return w(function(a){var b=0,c=I.length,e=Array(c);try{for(;b<c;b++)e[b]=M[b](a);return Q(e)}catch(g){a=ac("interr",f,g.toString()),d(a)}},{exp:f,expressions:I,$$watchDelegate:function(a,b,c){var d;return a.$watchGroup(M,function(c,e){var f=Q(c);z(b)&&b.call(this,f,c!==e?d:f,a);d=f},c)}})}}var h=b.length,l=a.length,k=new RegExp(b.replace(/./g,f),"g"),n=new RegExp(a.replace(/./g,f),"g");g.startSymbol=function(){return b};g.endSymbol=function(){return a};return g}]}function Je(){this.$get=
["$rootScope","$window","$q","$$q",function(b,a,c,d){function e(e,h,l,k){var n=a.setInterval,p=a.clearInterval,q=0,t=y(k)&&!k,s=(t?d:c).defer(),F=s.promise;l=y(l)?l:0;F.then(null,null,e);F.$$intervalId=n(function(){s.notify(q++);0<l&&q>=l&&(s.resolve(q),p(F.$$intervalId),delete f[F.$$intervalId]);t||b.$apply()},h);f[F.$$intervalId]=s;return F}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):
!1};return e}]}function Rd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}}function bc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]);
return b.join("/")}function $c(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||xf[c.protocol]||null}function ad(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=rc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ua(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ga(b){var a=b.indexOf("#");
return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function cc(b,a,c){this.$$html5=!0;c=c||"";$c(b,this);this.$$parse=function(b){var c=ua(a,b);if(!x(c))throw Hb("ipthprfx",b,a);ad(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),
!0;var f,g;(f=ua(b,d))!==u?(g=f,g=(f=ua(c,f))!==u?a+(ua("/",f)||f):b+g):(f=ua(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function dc(b,a,c){$c(b,this);this.$$parse=function(d){var e=ua(b,d)||ua(a,d),f;D(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",D(e)&&(b=d,this.replace())):(f=ua(c,e),D(f)&&(f=e));ad(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=
Pb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ga(b)==Ga(a)?(this.$$parse(a),!0):!1}}function bd(b,a,c){this.$$html5=!0;dc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ga(d)?f=d:(g=ua(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),
e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Ib(b){return function(){return this[b]}}function cd(b,a){return function(c){if(D(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Me(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return Xa(b)?(a.enabled=b,this):L(b)?(Xa(b.enabled)&&(a.enabled=b.enabled),Xa(b.requireBase)&&
(a.requireBase=b.requireBase),Xa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),q;if(a.enabled){if(!n&&a.requireBase)throw Hb("nobase");q=p.substring(0,p.indexOf("/",
p.indexOf("//")+2))+(n||"/");n=e.history?cc:bd}else q=Ga(p),n=dc;var t=q.substr(0,Ga(q).lastIndexOf("/")+1);k=new n(q,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var s=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var l=e.prop("href"),h=e.attr("href")||e.attr("xlink:href");L(l)&&"[object SVGAnimatedString]"===l.toString()&&(l=
Aa(l.animVal).href);s.test(l)||!l||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(l,h)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(p)&&d.url(k.absUrl(),!0);var F=!0;d.onUrlChange(function(a,b){D(ua(t,a))?g.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,
!1,e)):(F=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,q=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(F||q)F=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(q&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Ne(){var b=!0,a=this;this.debugEnabled=function(a){return y(a)?(b=
a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),
debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function va(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ga("isecfld",a);return b}function dd(b,a){b+="";if(!x(b))throw ga("iseccst",a);return b}function oa(b,a){if(b){if(b.constructor===b)throw ga("isecfn",a);if(b.window===b)throw ga("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ga("isecdom",a);if(b===Object)throw ga("isecobj",
a);}return b}function ec(b){return b.constant}function jb(b,a,c,d,e){oa(b,e);oa(a,e);c=c.split(".");for(var f,g=0;1<c.length;g++){f=va(c.shift(),e);var h=0===g&&a&&a[f]||b[f];h||(h={},b[f]=h);b=oa(h,e)}f=va(c.shift(),e);oa(b[f],e);return b[f]=d}function Qa(b){return"constructor"==b}function ed(b,a,c,d,e,f,g){va(b,f);va(a,f);va(c,f);va(d,f);va(e,f);var h=function(a){return oa(a,f)},l=g||Qa(b)?h:ra,k=g||Qa(a)?h:ra,n=g||Qa(c)?h:ra,p=g||Qa(d)?h:ra,q=g||Qa(e)?h:ra;return function(f,g){var h=g&&g.hasOwnProperty(b)?
g:f;if(null==h)return h;h=l(h[b]);if(!a)return h;if(null==h)return u;h=k(h[a]);if(!c)return h;if(null==h)return u;h=n(h[c]);if(!d)return h;if(null==h)return u;h=p(h[d]);return e?null==h?u:h=q(h[e]):h}}function yf(b,a){return function(c,d){return b(c,d,oa,a)}}function zf(b,a,c){var d=a.expensiveChecks,e=d?Af:Bf,f=e[b];if(f)return f;var g=b.split("."),h=g.length;if(a.csp)f=6>h?ed(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=u,a=f;while(e<
h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;r(g,function(a,b){va(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Qa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ea(l);k&&(a=yf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return jb(a,d,b,c,b)};return e[b]=f}function fc(b){return z(b.valueOf)?b.valueOf():Cf.call(b)}function Oe(){var b=ja(),
a=ja();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];e.constant||(e.inputs?f(e.inputs,b):-1===b.indexOf(e)&&b.push(e))}return b}function g(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=fc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function h(a,b,c,d){var e=d.$$inputs||(d.$$inputs=f(d.inputs,
[])),l;if(1===e.length){var h=g,e=e[0];return a.$watch(function(a){var b=e(a);g(b,h)||(l=d(a),h=b&&fc(b));return l},b,c)}for(var k=[],q=0,p=e.length;q<p;q++)k[q]=g;return a.$watch(function(a){for(var b=!1,c=0,f=e.length;c<f;c++){var h=e[c](a);if(b||(b=!g(h,k[c])))k[c]=h&&fc(h)}b&&(l=d(a));return l},b,c)}function l(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a;z(b)&&b.apply(this,arguments);y(a)&&d.$$postDigest(function(){y(f)&&e()})},c)}function k(a,b,c,d){function e(a){var b=
!0;r(a,function(a){y(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a;z(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function n(a,b,c,d){var e;return e=a.$watch(function(a){return d(a)},function(a,c,d){z(b)&&b.apply(this,arguments);e()},c)}function p(a,b){if(!b)return a;var c=a.$$watchDelegate,c=c!==k&&c!==l?function(c,d){var e=a(c,d);return b(e,c,d)}:function(c,d){var e=a(c,d),f=b(e,c,d);return y(e)?f:e};a.$$watchDelegate&&a.$$watchDelegate!==
h?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=h,c.inputs=[a]);return c}var q={csp:d.csp,expensiveChecks:!1},t={csp:d.csp,expensiveChecks:!0};return function(d,f,g){var m,r,u;switch(typeof d){case "string":u=d=d.trim();var I=g?a:b;m=I[u];m||(":"===d.charAt(0)&&":"===d.charAt(1)&&(r=!0,d=d.substring(2)),g=g?t:q,m=new gc(g),m=(new kb(m,c,g)).parse(d),m.constant?m.$$watchDelegate=n:r?(m=e(m),m.$$watchDelegate=m.literal?k:l):m.inputs&&(m.$$watchDelegate=h),I[u]=m);return p(m,f);
case "function":return p(d,f);default:return p(A,f)}}}]}function Qe(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return fd(function(a){b.$evalAsync(a)},a)}]}function Re(){this.$get=["$browser","$exceptionHandler",function(b,a){return fd(function(a){b.defer(a)},a)}]}function fd(b,a){function c(a,b,c){function d(b){return function(c){e||(e=!0,b.call(a,c))}}var e=!1;return[d(b),d(c)]}function d(){this.$$state={status:0}}function e(a,b){return function(c){b.call(a,c)}}function f(c){!c.processScheduled&&
c.pending&&(c.processScheduled=!0,b(function(){var b,d,e;e=c.pending;c.processScheduled=!1;c.pending=u;for(var f=0,g=e.length;f<g;++f){d=e[f][0];b=e[f][c.status];try{z(b)?d.resolve(b(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(l){d.reject(l),a(l)}}}))}function g(){this.promise=new d;this.resolve=e(this,this.resolve);this.reject=e(this,this.reject);this.notify=e(this,this.notify)}var h=S("$q",TypeError);d.prototype={then:function(a,b,c){var d=new g;this.$$state.pending=this.$$state.pending||
[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&f(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return k(b,!0,a)},function(b){return k(b,!1,a)},b)}};g.prototype={resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(h("qcycle",a)):this.$$resolve(a))},$$resolve:function(b){var d,e;e=c(this,this.$$resolve,this.$$reject);try{if(L(b)||z(b))d=b&&b.then;z(d)?(this.promise.$$state.status=
-1,d.call(b,e[0],e[1],this.notify)):(this.promise.$$state.value=b,this.promise.$$state.status=1,f(this.promise.$$state))}catch(g){e[1](g),a(g)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;f(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;0>=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;f<g;f++){e=d[f][0];b=d[f][3];try{e.notify(z(b)?
b(c):c)}catch(l){a(l)}}})}};var l=function(a,b){var c=new g;b?c.resolve(a):c.reject(a);return c.promise},k=function(a,b,c){var d=null;try{z(c)&&(d=c())}catch(e){return l(e,!1)}return d&&z(d.then)?d.then(function(){return l(a,b)},function(a){return l(a,!1)}):l(a,b)},n=function(a,b,c,d){var e=new g;e.resolve(a);return e.promise.then(b,c,d)},p=function t(a){if(!z(a))throw h("norslvr",a);if(!(this instanceof t))return new t(a);var b=new g;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};
p.defer=function(){return new g};p.reject=function(a){var b=new g;b.reject(a);return b.promise};p.when=n;p.all=function(a){var b=new g,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;n(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise};return p}function $e(){this.$get=["$window","$timeout",function(b,a){function c(){for(var a=0;a<n.length;a++){var b=n[a];b&&(n[a]=null,b())}k=n.length=0}function d(a){var b=
n.length;k++;n.push(a);0===b&&(l=h(c));return function(){0<=b&&(b=n[b]=null,0===--k&&l&&(l(),l=null,n.length=0))}}var e=b.requestAnimationFrame||b.webkitRequestAnimationFrame,f=b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.webkitCancelRequestAnimationFrame,g=!!e,h=g?function(a){var b=e(a);return function(){f(b)}}:function(b){var c=a(b,16.66,!1);return function(){a.cancel(c)}};d.supported=g;var l,k=0,n=[];return d}]}function Pe(){function b(a){function b(){this.$$watchers=this.$$nextSibling=
this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=++rb;this.$$ChildScope=null}b.prototype=a;return b}var a=10,c=S("$rootScope"),d=null,e=null;this.digestTtl=function(b){arguments.length&&(a=b);return a};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(f,g,h,l){function k(a){a.currentScope.$$destroyed=!0}function n(){this.$id=++rb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=
null;this.$root=this;this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings=null}function p(a){if(v.$$phase)throw c("inprog",v.$$phase);v.$$phase=a}function q(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function t(){}function s(){for(;u.length;)try{u.shift()()}catch(a){g(a)}e=null}function F(){null===e&&(e=l.defer(function(){v.$apply(s)}))}n.prototype={constructor:n,$new:function(a,c){var d;c=c||this;a?
(d=new n,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=b(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(a||c!=this)&&d.$on("$destroy",k);return d},$watch:function(a,b,c){var e=h(a);if(e.$$watchDelegate)return e.$$watchDelegate(this,b,c,e);var f=this.$$watchers,g={fn:b,last:t,get:e,exp:a,eq:!!c};d=null;z(b)||(g.fn=A);f||(f=this.$$watchers=[]);f.unshift(g);return function(){Ya(f,
g);d=null}},$watchGroup:function(a,b){function c(){l=!1;h?(h=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,l=!1,h=!0;if(!a.length){var k=!0;g.$evalAsync(function(){k&&b(e,e,g)});return function(){k=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var h=g.$watch(a,function(a,f){e[b]=a;d[b]=f;l||(l=!0,g.$evalAsync(c))});f.push(h)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=
a;var b,d,g,l;if(!D(e)){if(L(e))if(Ta(e))for(f!==p&&(f=p,t=f.length=0,k++),a=e.length,t!==a&&(k++,f.length=t=a),b=0;b<a;b++)l=f[b],g=e[b],d=l!==l&&g!==g,d||l===g||(k++,f[b]=g);else{f!==n&&(f=n={},t=0,k++);a=0;for(b in e)e.hasOwnProperty(b)&&(a++,g=e[b],l=f[b],b in f?(d=l!==l&&g!==g,d||l===g||(k++,f[b]=g)):(t++,f[b]=g,k++));if(t>a)for(b in k++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1<b.length,k=0,q=h(a,c),p=[],n={},m=!0,t=0;return this.$watch(q,
function(){m?(m=!1,b(e,e,d)):b(e,g,d);if(l)if(L(e))if(Ta(e)){g=Array(e.length);for(var a=0;a<e.length;a++)g[a]=e[a]}else for(a in g={},e)sc.call(e,a)&&(g[a]=e[a]);else g=e})},$digest:function(){var b,f,h,k,q,n,r=a,F,P=[],u,y;p("$digest");l.$$checkUrlChange();this===v&&null!==e&&(l.defer.cancel(e),s());d=null;do{n=!1;for(F=this;m.length;){try{y=m.shift(),y.scope.$eval(y.expression,y.locals)}catch(w){g(w)}d=null}a:do{if(k=F.$$watchers)for(q=k.length;q--;)try{if(b=k[q])if((f=b.get(F))!==(h=b.last)&&
!(b.eq?ia(f,h):"number"===typeof f&&"number"===typeof h&&isNaN(f)&&isNaN(h)))n=!0,d=b,b.last=b.eq?Da(f,null):f,b.fn(f,h===t?f:h,F),5>r&&(u=4-r,P[u]||(P[u]=[]),P[u].push({msg:z(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(D){g(D)}if(!(k=F.$$childHead||F!==this&&F.$$nextSibling))for(;F!==this&&!(k=F.$$nextSibling);)F=F.$parent}while(F=k);if((n||m.length)&&!r--)throw v.$$phase=null,c("infdig",a,P);}while(n||m.length);for(v.$$phase=null;C.length;)try{C.shift()()}catch(B){g(B)}},
$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==v){for(var b in this.$$listenerCount)q(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=
this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){v.$$phase||m.length||l.defer(function(){m.length&&v.$digest()});m.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{return p("$apply"),this.$eval(a)}catch(b){g(b)}finally{v.$$phase=
null;try{v.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);F()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,q(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,l={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){l.defaultPrevented=
!0},defaultPrevented:!1},h=Za([l],arguments,1),k,q;do{d=e.$$listeners[a]||c;l.currentScope=e;k=0;for(q=d.length;k<q;k++)if(d[k])try{d[k].apply(null,h)}catch(p){g(p)}else d.splice(k,1),k--,q--;if(f)return l.currentScope=null,l;e=e.$parent}while(e);l.currentScope=null;return l},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var f=Za([e],arguments,1),l,h;c=d;){e.currentScope=
c;d=c.$$listeners[a]||[];l=0;for(h=d.length;l<h;l++)if(d[l])try{d[l].apply(null,f)}catch(k){g(k)}else d.splice(l,1),l--,h--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new n,m=v.$$asyncQueue=[],C=v.$$postDigestQueue=[],u=v.$$applyAsyncQueue=[];return v}]}function Sd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=
function(a){return y(a)?(b=a,this):b};this.imgSrcSanitizationWhitelist=function(b){return y(b)?(a=b,this):a};this.$get=function(){return function(c,d){var e=d?a:b,f;f=Aa(c).href;return""===f||f.match(e)?c:"unsafe:"+f}}}function Df(b){if("self"===b)return b;if(x(b)){if(-1<b.indexOf("***"))throw Ba("iwcard",b);b=gd(b).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+b+"$")}if(Va(b))return new RegExp("^"+b.source+"$");throw Ba("imatcher");}function hd(b){var a=[];y(b)&&r(b,function(b){a.push(Df(b))});
return a}function Te(){this.SCE_CONTEXTS=pa;var b=["self"],a=[];this.resourceUrlWhitelist=function(a){arguments.length&&(b=hd(a));return b};this.resourceUrlBlacklist=function(b){arguments.length&&(a=hd(b));return a};this.$get=["$injector",function(c){function d(a,b){return"self"===a?Zc(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};
return b}var f=function(a){throw Ba("unsafe");};c.has("$sanitize")&&(f=c.get("$sanitize"));var g=e(),h={};h[pa.HTML]=e(g);h[pa.CSS]=e(g);h[pa.URL]=e(g);h[pa.JS]=e(g);h[pa.RESOURCE_URL]=e(h[pa.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ba("icontext",a,b);if(null===b||b===u||""===b)return b;if("string"!==typeof b)throw Ba("itype",a);return new c(b)},getTrusted:function(c,e){if(null===e||e===u||""===e)return e;var g=h.hasOwnProperty(c)?h[c]:null;if(g&&e instanceof
g)return e.$$unwrapTrustedValue();if(c===pa.RESOURCE_URL){var g=Aa(e.toString()),p,q,t=!1;p=0;for(q=b.length;p<q;p++)if(d(b[p],g)){t=!0;break}if(t)for(p=0,q=a.length;p<q;p++)if(d(a[p],g)){t=!1;break}if(t)return e;throw Ba("insecurl",e.toString());}if(c===pa.HTML)return f(e);throw Ba("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}function Se(){var b=!0;this.enabled=function(a){arguments.length&&(b=!!a);return b};this.$get=["$parse","$sceDelegate",function(a,c){if(b&&
8>Ra)throw Ba("iequirks");var d=sa(pa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=ra);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;r(pa,function(a,b){var c=K(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+
c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in
l);!d||k&&n||(k=x(f.body.style.webkitTransition),n=x(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Ra)return!1;if(D(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:db(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function We(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;x(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=
a.defaults&&a.defaults.transformResponse;H(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!g)throw ma("tpload",f);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d=
ca.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var l=a.querySelectorAll("["+g[h]+"model"+(c?"=":"*=")+'"'+b+'"]');if(l.length)return l}},getLocation:function(){return c.url()},setLocation:function(a){a!==c.url()&&(c.url(a),b.$digest())},whenStable:function(b){a.notifyWhenNoOutstandingRequests(b)}}}]}function Ye(){this.$get=
["$rootScope","$browser","$q","$$q","$exceptionHandler",function(b,a,c,d,e){function f(f,l,k){var n=y(k)&&!k,p=(n?d:c).defer(),q=p.promise;l=a.defer(function(){try{p.resolve(f())}catch(a){p.reject(a),e(a)}finally{delete g[q.$$timeoutId]}n||b.$apply()},l);q.$$timeoutId=l;g[l]=p;return q}var g={};f.cancel=function(b){return b&&b.$$timeoutId in g?(g[b.$$timeoutId].reject("canceled"),delete g[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return f}]}function Aa(b){Ra&&(Z.setAttribute("href",b),b=Z.href);
Z.setAttribute("href",b);return{href:Z.href,protocol:Z.protocol?Z.protocol.replace(/:$/,""):"",host:Z.host,search:Z.search?Z.search.replace(/^\?/,""):"",hash:Z.hash?Z.hash.replace(/^#/,""):"",hostname:Z.hostname,port:Z.port,pathname:"/"===Z.pathname.charAt(0)?Z.pathname:"/"+Z.pathname}}function Zc(b){b=x(b)?Aa(b):b;return b.protocol===id.protocol&&b.host===id.host}function Ze(){this.$get=ea(R)}function Ec(b){function a(c,d){if(L(c)){var e={};r(c,function(b,c){e[c]=a(c,b)});return e}return b.factory(c+
"Filter",d)}this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];a("currency",jd);a("date",kd);a("filter",Ef);a("json",Ff);a("limitTo",Gf);a("lowercase",Hf);a("number",ld);a("orderBy",md);a("uppercase",If)}function Ef(){return function(b,a,c){if(!H(b))return b;var d;switch(null!==a?typeof a:"null"){case "function":break;case "boolean":case "null":case "number":case "string":d=!0;case "object":a=Jf(a,c,d);break;default:return b}return b.filter(a)}}function Jf(b,
a,c){var d=L(b)&&"$"in b;!0===a?a=ia:z(a)||(a=function(a,b){if(D(a))return!1;if(null===a||null===b)return a===b;if(L(a)||L(b))return!1;a=K(""+a);b=K(""+b);return-1!==a.indexOf(b)});return function(e){return d&&!L(e)?Ha(e,b.$,a,!1):Ha(e,b,a,c)}}function Ha(b,a,c,d,e){var f=null!==b?typeof b:"null",g=null!==a?typeof a:"null";if("string"===g&&"!"===a.charAt(0))return!Ha(b,a.substring(1),c,d);if(H(b))return b.some(function(b){return Ha(b,a,c,d)});switch(f){case "object":var h;if(d){for(h in b)if("$"!==
h.charAt(0)&&Ha(b[h],a,c,!0))return!0;return e?!1:Ha(b,a,c,!1)}if("object"===g){for(h in a)if(e=a[h],!z(e)&&!D(e)&&(f="$"===h,!Ha(f?b:b[h],e,c,f,f)))return!1;return!0}return c(b,a);case "function":return!1;default:return c(b,a)}}function jd(b){var a=b.NUMBER_FORMATS;return function(b,d,e){D(d)&&(d=a.CURRENCY_SYM);D(e)&&(e=a.PATTERNS[1].maxFrac);return null==b?b:nd(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,e).replace(/\u00A4/g,d)}}function ld(b){var a=b.NUMBER_FORMATS;return function(b,d){return null==
b?b:nd(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function nd(b,a,c,d,e){if(!isFinite(b)||L(b))return"";var f=0>b;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var n=g.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?b=0:(h=g,k=!0)}if(k)0<e&&1>b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]||"").length;D(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",p=0,q=a.lgSize,
t=a.gSize;if(k.length>=q+t)for(p=k.length-q,n=0;n<p;n++)0===(p-n)%t&&0!==n&&(h+=c),h+=k.charAt(n);for(n=p;n<k.length;n++)0===(k.length-n)%q&&0!==n&&(h+=c),h+=k.charAt(n);for(;g.length<e;)g+="0";e&&"0"!==e&&(h+=d+g.substr(0,e))}0===b&&(f=!1);l.push(f?a.negPre:a.posPre,h,f?a.negSuf:a.posSuf);return l.join("")}function Jb(b,a,c){var d="";0>b&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function U(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(0<c||e>-c)e+=
c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](),f=vb(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c=pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function kd(b){function a(a){var b;if(b=a.match(c)){a=
new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;x(c)&&(c=Kf.test(c)?
aa(c):a(c));Y(c)&&(c=new Date(c));if(!ha(c))return c;for(;e;)(k=Lf.exec(e))?(h=Za(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){D(a)&&(a=2);return ab(b,a)}}function Gf(){return function(b,a){Y(b)&&(b=b.toString());return H(b)||x(b)?(a=Infinity===Math.abs(Number(a))?Number(a):
aa(a))?0<a?b.slice(0,a):b.slice(a):x(b)?"":[]:b}}function md(b){return function(a,c,d){function e(a,b){return b?function(b,c){return a(c,b)}:a}function f(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function g(a){return null===a?"null":"function"===typeof a.valueOf&&(a=a.valueOf(),f(a))||"function"===typeof a.toString&&(a=a.toString(),f(a))?a:""}function h(a,b){var c=typeof a,d=typeof b;c===d&&"object"===c&&(a=g(a),b=g(b));return c===d?("string"===c&&(a=
a.toLowerCase(),b=b.toLowerCase()),a===b?0:a<b?-1:1):c<d?-1:1}if(!Ta(a))return a;c=H(c)?c:[c];0===c.length&&(c=["+"]);c=c.map(function(a){var c=!1,d=a||ra;if(x(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))c="-"==a.charAt(0),a=a.substring(1);if(""===a)return e(h,c);d=b(a);if(d.constant){var f=d();return e(function(a,b){return h(a[f],b[f])},c)}}return e(function(a,b){return h(d(a),d(b))},c)});return $a.call(a).sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(0!==e)return e}return 0},
d))}}function Ia(b){z(b)&&(b={link:b});b.restrict=b.restrict||"AC";return ea(b)}function rd(b,a,c,d,e){var f=this,g=[],h=f.$$parentForm=b.parent().controller("form")||Lb;f.$error={};f.$$success={};f.$pending=u;f.$name=e(a.name||a.ngForm||"")(c);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;h.$addControl(f);f.$rollbackViewValue=function(){r(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){r(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Ma(a.$name,
"input");g.push(a);a.$name&&(f[a.$name]=a)};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];r(f.$pending,function(b,c){f.$setValidity(c,null,a)});r(f.$error,function(b,c){f.$setValidity(c,null,a)});r(f.$$success,function(b,c){f.$setValidity(c,null,a)});Ya(g,a)};sd({ctrl:this,$element:b,set:function(a,b,c){var d=a[b];d?-1===d.indexOf(c)&&d.push(c):a[b]=[c]},unset:function(a,b,c){var d=a[b];
d&&(Ya(d,c),0===d.length&&delete a[b])},parentForm:h,$animate:d});f.$setDirty=function(){d.removeClass(b,Sa);d.addClass(b,Mb);f.$dirty=!0;f.$pristine=!1;h.$setDirty()};f.$setPristine=function(){d.setClass(b,Sa,Mb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;r(g,function(a){a.$setPristine()})};f.$setUntouched=function(){r(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){d.addClass(b,"ng-submitted");f.$submitted=!0;h.$setSubmitted()}}function ic(b){b.$formatters.push(function(a){return b.$isEmpty(a)?
a:a.toString()})}function lb(b,a,c,d,e,f){var g=K(a[0].type);if(!e.android){var h=!1;a.on("compositionstart",function(a){h=!0});a.on("compositionend",function(){h=!1;l()})}var l=function(b){k&&(f.defer.cancel(k),k=null);if(!h){var e=a.val();b=b&&b.type;"password"===g||c.ngTrim&&"false"===c.ngTrim||(e=N(e));(d.$viewValue!==e||""===e&&d.$$hasNativeValidators)&&d.$setViewValue(e,b)}};if(e.hasEvent("input"))a.on("input",l);else{var k,n=function(a,b,c){k||(k=f.defer(function(){k=null;b&&b.value===c||l(a)}))};
a.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ha(c))return c;if(x(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,
dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c<a.length&&(f[a[c]]=+b)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function mb(b,a,c,d){return function(e,f,g,h,l,k,n){function p(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function q(a){return y(a)?ha(a)?a:c(a):u}td(e,f,g,h);lb(e,f,g,h,l,k);var t=h&&h.$options&&h.$options.timezone,s;h.$$parserName=b;
h.$parsers.push(function(b){return h.$isEmpty(b)?null:a.test(b)?(b=c(b,s),"UTC"===t&&b.setMinutes(b.getMinutes()-b.getTimezoneOffset()),b):u});h.$formatters.push(function(a){if(a&&!ha(a))throw nb("datefmt",a);if(p(a)){if((s=a)&&"UTC"===t){var b=6E4*s.getTimezoneOffset();s=new Date(s.getTime()+b)}return n("date")(a,d,t)}s=null;return""});if(y(g.min)||g.ngMin){var r;h.$validators.min=function(a){return!p(a)||D(r)||c(a)>=r};g.$observe("min",function(a){r=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var v;
h.$validators.max=function(a){return!p(a)||D(v)||c(a)<=v};g.$observe("max",function(a){v=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=L(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?u:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw nb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],
n=0;n<b.length;n++)if(e==b[n])continue a;c.push(e)}return c}function e(a){if(!H(a)){if(x(a))return a.split(" ");if(L(a)){var b=[];r(a,function(a,c){a&&(b=b.concat(c.split(" ")))});return b}}return a}return{restrict:"AC",link:function(f,g,h){function l(a,b){var c=g.data("$classCounts")||{},d=[];r(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",c);return d.join(" ")}function k(b){if(!0===a||f.$index%2===a){var k=e(b||[]);if(!n){var t=l(k,1);h.$addClass(t)}else if(!ia(b,
n)){var s=e(n),t=d(k,s),k=d(s,k),t=l(t,1),k=l(k,-1);t&&t.length&&c.addClass(g,t);k&&k.length&&c.removeClass(g,k)}}n=sa(b)}var n;f.$watch(h[b],k,!0);h.$observe("class",function(a){k(f.$eval(h[b]))});"ngClass"!==b&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var k=e(f.$eval(h[b]));g===a?(g=l(k,1),h.$addClass(g)):(g=l(k,-1),h.$removeClass(g))}})}}}]}function sd(b){function a(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function c(b,c){b=b?"-"+uc(b,"-"):"";
a(ob+b,!0===c);a(vd+b,!1===c)}var d=b.ctrl,e=b.$element,f={},g=b.set,h=b.unset,l=b.parentForm,k=b.$animate;f[vd]=!(f[ob]=e.hasClass(ob));d.$setValidity=function(b,e,f){e===u?(d.$pending||(d.$pending={}),g(d.$pending,b,f)):(d.$pending&&h(d.$pending,b,f),wd(d.$pending)&&(d.$pending=u));Xa(e)?e?(h(d.$error,b,f),g(d.$$success,b,f)):(g(d.$error,b,f),h(d.$$success,b,f)):(h(d.$error,b,f),h(d.$$success,b,f));d.$pending?(a(xd,!0),d.$valid=d.$invalid=u,c("",null)):(a(xd,!1),d.$valid=wd(d.$error),d.$invalid=
!d.$valid,c("",d.$valid));e=d.$pending&&d.$pending[b]?u:d.$error[b]?!1:d.$$success[b]?!0:null;c(b,e);l.$setValidity(b,e,d)}}function wd(b){if(b)for(var a in b)return!1;return!0}var Of=/^\/(.+)\/([a-z]*)$/,K=function(b){return x(b)?b.toLowerCase():b},sc=Object.prototype.hasOwnProperty,vb=function(b){return x(b)?b.toUpperCase():b},Ra,B,ta,$a=[].slice,qf=[].splice,Pf=[].push,Ca=Object.prototype.toString,Ja=S("ng"),ca=R.angular||(R.angular={}),eb,rb=0;Ra=W.documentMode;A.$inject=[];ra.$inject=[];var H=
Array.isArray,N=function(b){return x(b)?b.trim():b},gd=function(b){return b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},db=function(){if(y(db.isActive_))return db.isActive_;var b=!(!W.querySelector("[ng-csp]")&&!W.querySelector("[data-ng-csp]"));if(!b)try{new Function("")}catch(a){b=!0}return db.isActive_=b},tb=["ng-","data-ng-","ng:","x-ng-"],Md=/[A-Z]/g,vc=!1,Qb,qa=1,bb=3,Qd={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};T.expando="ng339";var Ab=
T.cache={},hf=1;T._data=function(b){return this.cache[b[this.expando]]||{}};var cf=/([\:\-\_]+(.))/g,df=/^moz([A-Z])/,Qf={mouseleave:"mouseout",mouseenter:"mouseover"},Tb=S("jqLite"),gf=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ka={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,"",""]};ka.optgroup=ka.option;ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead;ka.th=ka.td;var Ka=T.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),T(R).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort,
splice:[].splice},Fb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[K(b)]=b});var Nc={};r("input select option textarea button form details".split(" "),function(b){Nc[b]=!0});var Oc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Vb,removeData:yb},function(b,a){T[a]=b});r({data:Vb,inheritedData:Eb,scope:function(b){return B.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,
"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Jc,injector:function(b){return Eb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=fb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==bb&&2!==d&&8!==d)if(d=K(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:u;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=
b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(D(b)){var d=a.nodeType;return d===qa||d===bb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(D(a)){if(b.multiple&&"select"===wa(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Kc},function(b,a){T.prototype[a]=
function(a,d){var e,f,g=this.length;if(b!==Kc&&(2==b.length&&b!==Bb&&b!==Jc?a:d)===u){if(L(a)){for(e=0;e<g;e++)if(b===Vb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===u?Math.min(g,1):g;for(f=0;f<g;f++){var h=b(this[f],a,d);e=e?e+h:h}return e}for(e=0;e<g;e++)b(this[e],a,d);return this}});r({removeData:yb,on:function a(c,d,e,f){if(y(f))throw Tb("onargs");if(Fc(c)){var g=zb(c,!0);f=g.events;var h=g.handle;h||(h=g.handle=lf(c,f));for(var g=0<=d.indexOf(" ")?d.split(" "):[d],
l=g.length;l--;){d=g[l];var k=f[d];k||(f[d]=[],"mouseenter"===d||"mouseleave"===d?a(c,Qf[d],function(a){var c=a.relatedTarget;c&&(c===this||this.contains(c))||h(a,d)}):"$destroy"!==d&&c.addEventListener(d,h,!1),k=f[d]);k.push(e)}}},off:Ic,one:function(a,c,d){a=B(a);a.on(c,function f(){a.off(c,d);a.off(c,f)});a.on(c,d)},replaceWith:function(a,c){var d,e=a.parentNode;xb(a);r(new T(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];r(a.childNodes,
function(a){a.nodeType===qa&&c.push(a)});return c},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,c){var d=a.nodeType;if(d===qa||11===d){c=new T(c);for(var d=0,e=c.length;d<e;d++)a.appendChild(c[d])}},prepend:function(a,c){if(a.nodeType===qa){var d=a.firstChild;r(new T(c),function(c){a.insertBefore(c,d)})}},wrap:function(a,c){c=B(c).eq(0).clone()[0];var d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:Lc,detach:function(a){Lc(a,!0)},after:function(a,
c){var d=a,e=a.parentNode;c=new T(c);for(var f=0,g=c.length;f<g;f++){var h=c[f];e.insertBefore(h,d.nextSibling);d=h}},addClass:Db,removeClass:Cb,toggleClass:function(a,c,d){c&&r(c.split(" "),function(c){var f=d;D(f)&&(f=!Bb(a,c));(f?Db:Cb)(a,c)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,c){return a.getElementsByTagName?a.getElementsByTagName(c):[]},clone:Ub,triggerHandler:function(a,c,d){var e,f,g=c.type||c,h=
zb(a);if(h=(h=h&&h.events)&&h[g])e={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:A,type:g,target:a},c.type&&(e=w(e,c)),c=sa(h),f=d?[e].concat(d):[e],r(c,function(c){e.isImmediatePropagationStopped()||c.apply(a,f)})}},function(a,c){T.prototype[c]=function(c,
e,f){for(var g,h=0,l=this.length;h<l;h++)D(g)?(g=a(this[h],c,e,f),y(g)&&(g=B(g))):Hc(g,a(this[h],c,e,f));return y(g)?g:this};T.prototype.bind=T.prototype.on;T.prototype.unbind=T.prototype.off});gb.prototype={put:function(a,c){this[Na(a,this.nextUid)]=c},get:function(a){return this[Na(a,this.nextUid)]},remove:function(a){var c=this[a=Na(a,this.nextUid)];delete this[a];return c}};var Qc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Rf=/,/,Sf=/^\s*(_?)(\S+?)\1\s*$/,Pc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Fa=S("$injector");
cb.$$annotate=function(a,c,d){var e;if("function"===typeof a){if(!(e=a.$inject)){e=[];if(a.length){if(c)throw x(d)&&d||(d=a.name||mf(a)),Fa("strictdi",d);c=a.toString().replace(Pc,"");c=c.match(Qc);r(c[1].split(Rf),function(a){a.replace(Sf,function(a,c,d){e.push(d)})})}a.$inject=e}}else H(a)?(c=a.length-1,La(a[c],"fn"),e=a.slice(0,c)):La(a,"fn",!0);return e};var Tf=S("$animate"),Ce=["$provide",function(a){this.$$selectors={};this.register=function(c,d){var e=c+"-animation";if(c&&"."!=c.charAt(0))throw Tf("notcsel",
c);this.$$selectors[c.substr(1)]=e;a.factory(e,d)};this.classNameFilter=function(a){1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null);return this.$$classNameFilter};this.$get=["$$q","$$asyncCallback","$rootScope",function(a,d,e){function f(d){var f,g=a.defer();g.promise.$$cancelFn=function(){f&&f()};e.$$postDigest(function(){f=d(function(){g.resolve()})});return g.promise}function g(a,c){var d=[],e=[],f=ja();r((a.attr("class")||"").split(/\s+/),function(a){f[a]=!0});r(c,function(a,
c){var g=f[c];!1===a&&g?e.push(c):!0!==a||g||d.push(c)});return 0<d.length+e.length&&[d.length?d:null,e.length?e:null]}function h(a,c,d){for(var e=0,f=c.length;e<f;++e)a[c[e]]=d}function l(){n||(n=a.defer(),d(function(){n.resolve();n=null}));return n.promise}function k(a,c){if(ca.isObject(c)){var d=w(c.from||{},c.to||{});a.css(d)}}var n;return{animate:function(a,c,d){k(a,{from:c,to:d});return l()},enter:function(a,c,d,e){k(a,e);d?d.after(a):c.prepend(a);return l()},leave:function(a,c){k(a,c);a.remove();
return l()},move:function(a,c,d,e){return this.enter(a,c,d,e)},addClass:function(a,c,d){return this.setClass(a,c,[],d)},$$addClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Db(a,c)});k(a,d);return l()},removeClass:function(a,c,d){return this.setClass(a,[],c,d)},$$removeClassImmediately:function(a,c,d){a=B(a);c=x(c)?c:H(c)?c.join(" "):"";r(a,function(a){Cb(a,c)});k(a,d);return l()},setClass:function(a,c,d,e){var k=this,l=!1;a=B(a);var m=a.data("$$animateClasses");
m?e&&m.options&&(m.options=ca.extend(m.options||{},e)):(m={classes:{},options:e},l=!0);e=m.classes;c=H(c)?c:c.split(" ");d=H(d)?d:d.split(" ");h(e,c,!0);h(e,d,!1);l&&(m.promise=f(function(c){var d=a.data("$$animateClasses");a.removeData("$$animateClasses");if(d){var e=g(a,d.classes);e&&k.$$setClassImmediately(a,e[0],e[1],d.options)}c()}),a.data("$$animateClasses",m));return m.promise},$$setClassImmediately:function(a,c,d,e){c&&this.$$addClassImmediately(a,c);d&&this.$$removeClassImmediately(a,d);
k(a,e);return l()},enabled:A,cancel:A}}]}],ma=S("$compile");xc.$inject=["$provide","$$sanitizeUriProvider"];var Rc=/^((?:x|data)[\:\-_])/i,rf=S("$controller"),Vc="application/json",$b={"Content-Type":Vc+";charset=utf-8"},tf=/^\[|^\{(?!\{)/,uf={"[":/]$/,"{":/}$/},sf=/^\)\]\}',?\n/,ac=S("$interpolate"),Uf=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,xf={http:80,https:443,ftp:21},Hb=S("$location"),Vf={$$html5:!1,$$replace:!1,absUrl:Ib("$$absUrl"),url:function(a){if(D(a))return this.$$url;var c=Uf.exec(a);(c[1]||
""===a)&&this.path(decodeURIComponent(c[1]));(c[2]||c[1]||""===a)&&this.search(c[3]||"");this.hash(c[5]||"");return this},protocol:Ib("$$protocol"),host:Ib("$$host"),port:Ib("$$port"),path:cd("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,c){switch(arguments.length){case 0:return this.$$search;case 1:if(x(a)||Y(a))a=a.toString(),this.$$search=rc(a);else if(L(a))a=Da(a,{}),r(a,function(c,e){null==c&&delete a[e]}),this.$$search=a;else throw Hb("isrcharg");
break;default:D(c)||null===c?delete this.$$search[a]:this.$$search[a]=c}this.$$compose();return this},hash:cd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};r([bd,dc,cc],function(a){a.prototype=Object.create(Vf);a.prototype.state=function(c){if(!arguments.length)return this.$$state;if(a!==cc||!this.$$html5)throw Hb("nostate");this.$$state=D(c)?null:c;return this}});var ga=S("$parse"),Wf=Function.prototype.call,Xf=Function.prototype.apply,
Yf=Function.prototype.bind,pb=ja();r({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(a,c){a.constant=a.literal=a.sharedGetter=!0;pb[c]=a});pb["this"]=function(a){return a};pb["this"].sharedGetter=!0;var qb=w(ja(),{"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return y(d)?y(e)?d+e:d:y(e)?e:u},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)-(y(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,
c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,
c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Zf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(a))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,
text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var c=a+this.peek(),d=c+this.peek(2),e=qb[c],f=qb[d];qb[a]||e||f?(a=f?d:e?c:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,c){return-1!==c.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===
typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ga("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index<this.text.length;){var d=K(this.text.charAt(this.index));
if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:c,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.index<this.text.length;){var c=this.text.charAt(this.index);if(!this.isIdent(c)&&
!this.isNumber(c))break;this.index++}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var c=this.index;this.index++;for(var d="",e=a,f=!1;this.index<this.text.length;){var g=this.text.charAt(this.index),e=e+g;if(f)"u"===g?(f=this.text.substring(this.index+1,this.index+5),f.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+f+"]"),this.index+=4,d+=String.fromCharCode(parseInt(f,16))):d+=Zf[g]||g,f=!1;else if("\\"===g)f=!0;else{if(g===
a){this.index++;this.tokens.push({index:c,text:e,constant:!0,value:d});return}d+=g}this.index++}this.throwError("Unterminated quote",c)}};var kb=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d};kb.ZERO=w(function(){return 0},{sharedGetter:!0,constant:!0});kb.prototype={constructor:kb,parse:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.statements();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);a.literal=!!a.literal;a.constant=!!a.constant;
return a},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.peek().identifier&&this.peek().text in pb?a=pb[this.consume().text]:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c,d;c=this.expect("(","[",".");)"("===c.text?(a=this.functionCall(a,d),d=null):"["===c.text?(d=a,a=this.objectIndex(a)):
"."===c.text?(d=a,a=this.fieldAccess(a)):this.throwError("IMPOSSIBLE");return a},throwError:function(a,c){throw ga("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},peekToken:function(){if(0===this.tokens.length)throw ga("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,
c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ga("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return w(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return w(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=
this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return zf(a,this.options,this.text)},constant:function(){var a=this.consume().value;return w(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,f=0,g=a.length;f<g;f++)e=a[f](c,d);return e}},
filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},filter:function(a){var c=this.$filter(this.consume().text),d,e;if(this.peek(":"))for(d=[],e=[];this.expect(":");)d.push(this.expression());var f=[a].concat(d||[]);return w(function(f,h){var l=a(f,h);if(e){e[0]=l;for(l=d.length;l--;)e[l+1]=d[l](f,h);return c.apply(u,e)}return c(l)},{constant:!c.$stateful&&f.every(ec),inputs:!c.$stateful&&f})},expression:function(){return this.assignment()},assignment:function(){var a=
this.ternary(),c,d;return(d=this.expect("="))?(a.assign||this.throwError("implies assignment but ["+this.text.substring(0,d.index)+"] can not be assigned to",d),c=this.ternary(),w(function(d,f){return a.assign(d,c(d,f),f)},{inputs:[a,c]})):a},ternary:function(){var a=this.logicalOR(),c;if(this.expect("?")&&(c=this.assignment(),this.consume(":"))){var d=this.assignment();return w(function(e,f){return a(e,f)?c(e,f):d(e,f)},{constant:a.constant&&c.constant&&d.constant})}return a},logicalOR:function(){for(var a=
this.logicalAND(),c;c=this.expect("||");)a=this.binaryFn(a,c.text,this.logicalAND(),!0);return a},logicalAND:function(){for(var a=this.equality(),c;c=this.expect("&&");)a=this.binaryFn(a,c.text,this.equality(),!0);return a},equality:function(){for(var a=this.relational(),c;c=this.expect("==","!=","===","!==");)a=this.binaryFn(a,c.text,this.relational());return a},relational:function(){for(var a=this.additive(),c;c=this.expect("<",">","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},
additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(kb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();
return w(function(d,e,f){d=f||a(d,e);return null==d?u:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return w(function(e,f){var g=a(e,f),h=dd(d(e,f),c);va(h,c);return g?oa(g[h],c):u},{assign:function(e,f,g){var h=va(dd(d(e,g),c),c),l=oa(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());
while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?u:g,k=a(g,h,l)||A;if(f)for(var n=d.length;n--;)f[n]=oa(d[n](g,h),e);oa(l,e);if(k){if(k.constructor===k)throw ga("isecfn",e);if(k===Wf||k===Xf||k===Yf)throw ga("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return oa(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))
}this.consume("]");return w(function(c,d){for(var e=[],f=0,g=a.length;f<g;f++)e.push(a[f](c,d));return e},{literal:!0,constant:a.every(ec),inputs:a})},object:function(){var a=[],c=[];if("}"!==this.peekToken().text){do{if(this.peek("}"))break;var d=this.consume();d.constant?a.push(d.value):d.identifier?a.push(d.text):this.throwError("invalid key",d);this.consume(":");c.push(this.expression())}while(this.expect(","))}this.consume("}");return w(function(d,f){for(var g={},h=0,l=c.length;h<l;h++)g[a[h]]=
c[h](d,f);return g},{literal:!0,constant:c.every(ec),inputs:c})}};var Bf=ja(),Af=ja(),Cf=Object.prototype.valueOf,Ba=S("$sce"),pa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ma=S("$compile"),Z=W.createElement("a"),id=Aa(R.location.href);Ec.$inject=["$provide"];jd.$inject=["$locale"];ld.$inject=["$locale"];var od=".",Mf={yyyy:U("FullYear",4),yy:U("FullYear",2,0,!0),y:U("FullYear",1),MMMM:Kb("Month"),MMM:Kb("Month",!0),MM:U("Month",2,1),M:U("Month",1,1),dd:U("Date",2),d:U("Date",
1),HH:U("Hours",2),H:U("Hours",1),hh:U("Hours",2,-12),h:U("Hours",1,-12),mm:U("Minutes",2),m:U("Minutes",1),ss:U("Seconds",2),s:U("Seconds",1),sss:U("Milliseconds",3),EEEE:Kb("Day"),EEE:Kb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0<a?"floor":"ceil"](a/60),2)+Jb(Math.abs(a%60),2))},ww:qd(2),w:qd(1),G:hc,GG:hc,GGG:hc,GGGG:function(a,c){return 0>=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Lf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
Kf=/^\-?\d+$/;kd.$inject=["$locale"];var Hf=ea(K),If=ea(vb);md.$inject=["$parse"];var Td=ea({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};r(Fb,function(a,c){if("multiple"!=a){var d=ya("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d],
function(a){g.$set(c,!!a)})}}}}});r(Oc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Of))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});r(["src","srcset","href"],function(a){var c=ya("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",
g=null);f.$observe(c,function(c){c?(f.$set(h,c),Ra&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a,c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(d,e){d.addClass(Sa).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm":
!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var p=k.$$parentForm;f&&(jb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(jb(a,null,k.$name,u,k.$name),p.$$renameControl(k,c),jb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){p.$removeControl(k);
f&&jb(a,null,e[f],u,k.$name);w(k,Lb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,$f=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ag=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,bg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/,
Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e)},date:mb("date",zd,Nb(zd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":mb("datetimelocal",Ad,Nb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:mb("time",Cd,Nb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:mb("week",kc,function(a,c){if(ha(a))return a;if(x(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g=
c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:mb("month",Bd,Nb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);lb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:bg.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Y(a))throw nb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||
D(h)||a>=h};d.$observe("min",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));h=Y(a)&&!isNaN(a)?a:u;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||D(l)||a<=l};d.$observe("max",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));l=Y(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||$f.test(d)}},email:function(a,c,d,e,f,g){lb(a,c,d,e,f,g);ic(e);
e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||ag.test(d)}},radio:function(a,c,d,e){D(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),n=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&
a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ia(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:A,button:A,submit:A,reset:A,file:A},yc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[K(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],cg=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a,
c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));
c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
be=jc("",!0),de=jc("Odd",0),ce=jc("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Dc={},dg={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Dc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=
d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=
ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,p,q,r){var s=0,u,v,m,C=function(){v&&(v.remove(),v=null);u&&(u.$destroy(),u=null);m&&(d.leave(m).then(function(){v=null}),v=m,m=null)};e.$watch(g,function(g){var p=function(){!y(l)||l&&!e.$eval(l)||
c()},M=++s;g?(a(g,!0).then(function(a){if(M===s){var c=e.$new();q.template=a;a=r(c,function(a){C();d.enter(a,null,f).then(p)});u=c;m=a;u.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){M===s&&(C(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(C(),q.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Gc(f.template,W).childNodes)(c,function(a){d.append(a)},
{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?N(f):f;e.$parsers.push(function(a){if(!D(a)){var c=[];a&&r(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return H(a)?a.join(f):u});e.$isEmpty=function(a){return!a||
!a.length}}}},ob="ng-valid",vd="ng-invalid",Sa="ng-pristine",Mb="ng-dirty",xd="ng-pending",nb=S("ngModel"),eg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;
this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=n(d.name||"",!1)(a);var p=f(d.ngModel),q=p.assign,t=p,s=q,F=null,v,m=this;this.$$setOptions=function(a){if((m.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);z(d)&&(d=c(a));return d};s=function(a,c){z(p(a))?g(a,{$$$p:m.$modelValue}):q(a,m.$modelValue)}}else if(!p.assign)throw nb("nonassign",d.ngModel,xa(e));};this.$render=A;this.$isEmpty=function(a){return D(a)||
""===a||null===a||a!==a};var C=e.inheritedData("$formController")||Lb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:C,$animate:g});this.$setPristine=function(){m.$dirty=!1;m.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Sa)};this.$setDirty=function(){m.$dirty=!0;m.$pristine=!1;g.removeClass(e,Sa);g.addClass(e,Mb);C.$setDirty()};this.$setUntouched=function(){m.$touched=!1;m.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=
function(){m.$touched=!0;m.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(F);m.$viewValue=m.$$lastCommittedViewValue;m.$render()};this.$validate=function(){if(!Y(m.$modelValue)||!isNaN(m.$modelValue)){var a=m.$$rawModelValue,c=m.$valid,d=m.$modelValue,e=m.$options&&m.$options.allowInvalid;m.$$runValidators(a,m.$$lastCommittedViewValue,function(f){e||c===f||(m.$modelValue=f?a:u,m.$modelValue!==d&&m.$$writeModelToScope())})}};this.$$runValidators=
function(a,c,d){function e(){var d=!0;r(m.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(r(m.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;r(m.$asyncValidators,function(f,h){var l=f(a,c);if(!l||!z(l.then))throw nb("$asyncValidators",l);g(h,u);d.push(l.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===w&&m.$setValidity(a,c)}function h(a){l===w&&d(a)}w++;var l=w;(function(){var a=
m.$$parserName||"parse";if(v===u)g(a,null);else return v||(r(m.$validators,function(a,c){g(c,null)}),r(m.$asyncValidators,function(a,c){g(c,null)})),g(a,v),v;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=m.$viewValue;h.cancel(F);if(m.$$lastCommittedViewValue!==a||""===a&&m.$$hasNativeValidators)m.$$lastCommittedViewValue=a,m.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=m.$$lastCommittedViewValue;if(v=D(c)?u:!0)for(var d=
0;d<m.$parsers.length;d++)if(c=m.$parsers[d](c),D(c)){v=!1;break}Y(m.$modelValue)&&isNaN(m.$modelValue)&&(m.$modelValue=t(a));var e=m.$modelValue,f=m.$options&&m.$options.allowInvalid;m.$$rawModelValue=c;f&&(m.$modelValue=c,m.$modelValue!==e&&m.$$writeModelToScope());m.$$runValidators(c,m.$$lastCommittedViewValue,function(a){f||(m.$modelValue=a?c:u,m.$modelValue!==e&&m.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,m.$modelValue);r(m.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
this.$setViewValue=function(a,c){m.$viewValue=a;m.$options&&!m.$options.updateOnDefault||m.$$debounceViewValueCommit(c)};this.$$debounceViewValueCommit=function(c){var d=0,e=m.$options;e&&y(e.debounce)&&(e=e.debounce,Y(e)?d=e:Y(e[c])?d=e[c]:Y(e["default"])&&(d=e["default"]));h.cancel(F);d?F=h(function(){m.$commitViewValue()},d):l.$$phase?m.$commitViewValue():a.$apply(function(){m.$commitViewValue()})};a.$watch(function(){var c=t(a);if(c!==m.$modelValue&&(m.$modelValue===m.$modelValue||c===c)){m.$modelValue=
m.$$rawModelValue=c;v=u;for(var d=m.$formatters,e=d.length,f=c;e--;)f=d[e](f);m.$viewValue!==f&&(m.$viewValue=m.$$lastCommittedViewValue=f,m.$render(),m.$$runValidators(c,f,A))}return c})}],ve=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:eg,priority:1,compile:function(c){c.addClass(Sa).addClass("ng-untouched").addClass(ob);return{pre:function(a,c,f,g){var h=g[0],l=g[1]||Lb;h.$$setOptions(g[2]&&g[2].$options);l.$addControl(h);f.$observe("name",
function(a){h.$name!==a&&l.$$renameControl(h,a)});a.$on("$destroy",function(){l.$removeControl(h)})},post:function(c,e,f,g){var h=g[0];if(h.$options&&h.$options.updateOn)e.on(h.$options.updateOn,function(a){h.$$debounceViewValueCommit(a&&a.type)});e.on("blur",function(e){h.$touched||(a.$$phase?c.$evalAsync(h.$setTouched):c.$apply(h.$setTouched))})}}}}}],fg=/(\s+|^)default(\s+|$)/,ze=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);
this.$options.updateOn!==u?(this.$options.updateOnDefault=!1,this.$options.updateOn=N(this.$options.updateOn.replace(fg,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},le=Ia({terminal:!0,priority:1E3}),me=["$locale","$interpolate",function(a,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(f,g,h){function l(a){g.text(a||"")}var k=h.count,n=h.$attr.when&&g.attr(h.$attr.when),p=h.offset||0,q=f.$eval(n)||{},t={},n=c.startSymbol(),s=
c.endSymbol(),u=n+k+"-"+p+s,v=ca.noop,m;r(h,function(a,c){var d=e.exec(c);d&&(d=(d[1]?"-":"")+K(d[2]),q[d]=g.attr(h.$attr[c]))});r(q,function(a,e){t[e]=c(a.replace(d,u))});f.$watch(k,function(c){c=parseFloat(c);var d=isNaN(c);d||c in q||(c=a.pluralCat(c-p));c===m||d&&isNaN(m)||(v(),v=f.$watch(t[c],l),m=c)})}}}],ne=["$parse","$animate",function(a,c){var d=S("ngRepeat"),e=function(a,c,d,e,k,n,p){a[d]=e;k&&(a[k]=n);a.$index=c;a.$first=0===c;a.$last=c===p-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=
0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,l=W.createComment(" end ngRepeat: "+h+" "),k=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!k)throw d("iexp",h);var n=k[1],p=k[2],q=k[3],t=k[4],k=n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!k)throw d("iidexp",n);var s=k[3]||k[1],F=k[2];if(q&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(q)||
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(q)))throw d("badident",q);var v,m,C,y,w={$id:Na};t?v=a(t):(C=function(a,c){return Na(c)},y=function(a){return a});return function(a,f,g,k,n){v&&(m=function(c,d,e){F&&(w[F]=c);w[s]=d;w.$index=e;return v(a,w)});var t=ja();a.$watchCollection(p,function(g){var k,p,v=f[0],G,w=ja(),D,I,A,z,H,O,x;q&&(a[q]=g);if(Ta(g))H=g,p=m||C;else{p=m||y;H=[];for(x in g)g.hasOwnProperty(x)&&"$"!=x.charAt(0)&&H.push(x);H.sort()}D=
H.length;x=Array(D);for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],z=p(I,A,k),t[z])O=t[z],delete t[z],w[z]=O,x[k]=O;else{if(w[z])throw r(x,function(a){a&&a.scope&&(t[a.id]=a)}),d("dupes",h,z,A);x[k]={id:z,scope:u,clone:u};w[z]=!0}for(G in t){O=t[G];z=ub(O.clone);c.leave(z);if(z[0].parentNode)for(k=0,p=z.length;k<p;k++)z[k].$$NG_REMOVED=!0;O.scope.$destroy()}for(k=0;k<D;k++)if(I=g===H?k:H[k],A=g[I],O=x[k],O.scope){G=v;do G=G.nextSibling;while(G&&G.$$NG_REMOVED);O.clone[0]!=G&&c.move(ub(O.clone),null,B(v));
v=O.clone[O.clone.length-1];e(O.scope,k,s,A,F,I,D)}else n(function(a,d){O.scope=d;var f=l.cloneNode(!1);a[a.length++]=f;c.enter(a,null,B(v));v=f;O.clone=a;w[O.id]=O;e(O.scope,k,s,A,F,I,D)});t=w})}}}}],oe=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngShow,function(c){a[c?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],he=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(c,d,e){c.$watch(e.ngHide,function(c){a[c?
"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],pe=Ia(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),qe=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,f){var g=[],h=[],l=[],k=[],n=function(a,c){return function(){a.splice(c,1)}};c.$watch(e.ngSwitch||e.on,function(c){var d,e;d=0;for(e=l.length;d<e;++d)a.cancel(l[d]);d=l.length=
0;for(e=k.length;d<e;++d){var s=ub(h[d].clone);k[d].$destroy();(l[d]=a.leave(s)).then(n(l,d))}h.length=0;k.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){k.push(e);var f=c.element;d[d.length++]=W.createComment(" end ngSwitchWhen: ");h.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],re=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[];e.cases["!"+d.ngSwitchWhen].push({transclude:f,
element:c})}}),se=Ia({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,c,d,e,f){e.cases["?"]=e.cases["?"]||[];e.cases["?"].push({transclude:f,element:c})}}),ue=Ia({restrict:"EAC",link:function(a,c,d,e,f){if(!f)throw S("ngTransclude")("orphan",xa(c));f(function(a){c.empty();c.append(a)})}}),Vd=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],gg=S("ngOptions"),te=ea({restrict:"A",
terminal:!0}),Wd=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,e={$setViewValue:A};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var l=this,k={},n=e,p;l.databound=d.ngModel;l.init=function(a,c,d){n=a;p=d};l.addOption=function(c,d){Ma(c,'"option value"');
k[c]=!0;n.$viewValue==c&&(a.val(c),p.parent()&&p.remove());d&&d[0].hasAttribute("selected")&&(d[0].selected=!0)};l.removeOption=function(a){this.hasOption(a)&&(delete k[a],n.$viewValue===a&&this.renderUnknownOption(a))};l.renderUnknownOption=function(c){c="? "+Na(c)+" ?";p.val(c);a.prepend(p);a.val(c);p.prop("selected",!0)};l.hasOption=function(a){return k.hasOwnProperty(a)};c.$on("$destroy",function(){l.renderUnknownOption=A})}],link:function(e,g,h,l){function k(a,c,d,e){d.$render=function(){var a=
d.$viewValue;e.hasOption(a)?(z.parent()&&z.remove(),c.val(a),""===a&&v.prop("selected",!0)):null==a&&v?c.val(""):e.renderUnknownOption(a)};c.on("change",function(){a.$apply(function(){z.parent()&&z.remove();d.$setViewValue(c.val())})})}function n(a,c,d){var e;d.$render=function(){var a=new gb(d.$viewValue);r(c.find("option"),function(c){c.selected=y(a.get(c.value))})};a.$watch(function(){ia(e,d.$viewValue)||(e=sa(d.$viewValue),d.$render())});c.on("change",function(){a.$apply(function(){var a=[];r(c.find("option"),
function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function p(e,f,g){function h(a,c,d){T[A]=d;I&&(T[I]=c);return a(e,T)}function l(a){var c;if(t)if(K&&H(a)){c=new gb([]);for(var d=0;d<a.length;d++)c.put(h(K,null,a[d]),!0)}else c=new gb(a);else K&&(a=h(K,null,a));return function(d,e){var f;f=K?K:x?x:E;return t?y(c.remove(h(f,d,e))):a===h(f,d,e)}}function k(){m||(e.$$postDigest(p),m=!0)}function n(a,c,d){a[c]=a[c]||0;a[c]+=d?1:-1}function p(){m=!1;var a={"":[]},c=[""],d,k,s,u,v;s=g.$viewValue;
u=L(e)||[];var A=I?Object.keys(u).sort():u,x,B,H,E,P={};v=l(s);var N=!1,U,W;R={};for(E=0;H=A.length,E<H;E++){x=E;if(I&&(x=A[E],"$"===x.charAt(0)))continue;B=u[x];d=h(M,x,B)||"";(k=a[d])||(k=a[d]=[],c.push(d));d=v(x,B);N=N||d;B=h(z,x,B);B=y(B)?B:"";W=K?K(e,T):I?A[E]:E;K&&(R[W]=x);k.push({id:W,label:B,selected:d})}t||(w||null===s?a[""].unshift({id:"",label:"",selected:!N}):N||a[""].unshift({id:"?",label:"",selected:!0}));x=0;for(A=c.length;x<A;x++){d=c[x];k=a[d];S.length<=x?(s={element:D.clone().attr("label",
d),label:k.label},u=[s],S.push(u),f.append(s.element)):(u=S[x],s=u[0],s.label!=d&&s.element.attr("label",s.label=d));N=null;E=0;for(H=k.length;E<H;E++)d=k[E],(v=u[E+1])?(N=v.element,v.label!==d.label&&(n(P,v.label,!1),n(P,d.label,!0),N.text(v.label=d.label),N.prop("label",v.label)),v.id!==d.id&&N.val(v.id=d.id),N[0].selected!==d.selected&&(N.prop("selected",v.selected=d.selected),Ra&&N.prop("selected",v.selected))):(""===d.id&&w?U=w:(U=C.clone()).val(d.id).prop("selected",d.selected).attr("selected",
d.selected).prop("label",d.label).text(d.label),u.push(v={element:U,label:d.label,id:d.id,selected:d.selected}),n(P,d.label,!0),N?N.after(U):s.element.append(U),N=U);for(E++;u.length>E;)d=u.pop(),n(P,d.label,!1),d.element.remove()}for(;S.length>x;){k=S.pop();for(E=1;E<k.length;++E)n(P,k[E].label,!1);k[0].element.remove()}r(P,function(a,c){0<a?q.addOption(c):0>a&&q.removeOption(c)})}var v;if(!(v=s.match(d)))throw gg("iexp",s,xa(f));var z=c(v[2]||v[1]),A=v[4]||v[6],B=/ as /.test(v[0])&&v[1],x=B?c(B):
null,I=v[5],M=c(v[3]||""),E=c(v[2]?v[1]:A),L=c(v[7]),K=v[8]?c(v[8]):null,R={},S=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=L(e)||[],c;if(t)c=[],r(f.val(),function(d){d=K?R[d]:d;c.push("?"===d?u:""===d?null:h(x?x:E,d,a[d]))});else{var d=K?R[f.val()]:f.val();c="?"===d?u:""===d?null:h(x?x:E,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(L,k);e.$watchCollection(function(){var a=L(e),c;
if(a&&H(a)){c=Array(a.length);for(var d=0,f=a.length;d<f;d++)c[d]=h(z,d,a[d])}else if(a)for(d in c={},a)a.hasOwnProperty(d)&&(c[d]=h(z,d,a[d]));return c},k);t&&e.$watchCollection(function(){return g.$modelValue},k)}if(l[1]){var q=l[0];l=l[1];var t=h.multiple,s=h.ngOptions,w=!1,v,m=!1,C=B(W.createElement("option")),D=B(W.createElement("optgroup")),z=C.clone();h=0;for(var A=g.children(),x=A.length;h<x;h++)if(""===A[h].value){v=w=A.eq(h);break}q.init(l,w,z);t&&(l.$isEmpty=function(a){return!a||0===a.length});
s?p(e,g,l):t?n(e,g,l):k(e,g,l,q)}}}}],Yd=["$interpolate",function(a){var c={addOption:A,removeOption:A};return{restrict:"E",priority:100,compile:function(d,e){if(D(e.value)){var f=a(d.text(),!0);f||e.$set("value",d.text())}return function(a,d,e){var k=d.parent(),n=k.data("$selectController")||k.parent().data("$selectController");n&&n.databound||(n=c);f?a.$watch(f,function(a,c){e.$set("value",a);c!==a&&n.removeOption(c);n.addOption(a,d)}):n.addOption(e.value,d);d.on("$destroy",function(){n.removeOption(e.value)})}}}}],
Xd=ea({restrict:"E",terminal:!1}),Ac=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){e&&(d.required=!0,e.$validators.required=function(a,c){return!d.required||!e.$isEmpty(c)},d.$observe("required",function(){e.$validate()}))}}},zc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f,g=d.ngPattern||d.pattern;d.$observe("pattern",function(a){x(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw S("ngPattern")("noregexp",g,a,xa(c));f=
a||u;e.$validate()});e.$validators.pattern=function(a,c){return e.$isEmpty(c)||D(f)||f.test(c)}}}}},Cc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=-1;d.$observe("maxlength",function(a){a=aa(a);f=isNaN(a)?-1:a;e.$validate()});e.$validators.maxlength=function(a,c){return 0>f||e.$isEmpty(c)||c.length<=f}}}}},Bc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=
function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};R.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ca),B(W).ready(function(){Jd(W,tc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>');
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var w=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
this.$get=["$http","$q",function(q,h){function t(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function v(x,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){u(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw w("badmember",e);for(var e=e.split("."),n=0,g=e.length;n<g&&d!==B;n++){var h=e[n];d=null!==d?d[h]:B}}else d=a;c[k]=d});return c}function F(b){return b.resource}function e(b){D(b||
{},this)}var G=new t(x,m);l=s({},f.defaults.actions,l);e.prototype.toJSON=function(){var b=s({},this);delete b.$promise;delete b.$resolved;return b};r(l,function(b,k){var g=/^(POST|PUT|PATCH)$/i.test(b.method);e[k]=function(a,y,m,x){var n={},f,l,z;switch(arguments.length){case 4:z=x,l=m;case 3:case 2:if(u(y)){if(u(a)){l=a;z=y;break}l=y;z=m}else{n=a;f=y;l=m;break}case 1:u(a)?l=a:g?f=a:n=a;break;case 0:break;default:throw w("badargs",arguments.length);}var t=this instanceof e,p=t?f:b.isArray?[]:new e(f),
A={},v=b.interceptor&&b.interceptor.response||F,C=b.interceptor&&b.interceptor.responseError||B;r(b,function(b,a){"params"!=a&&"isArray"!=a&&"interceptor"!=a&&(A[a]=H(b))});g&&(A.data=f);G.setUrlParams(A,s({},c(f,b.params||{}),n),b.url);n=q(A).then(function(a){var c=a.data,g=p.$promise;if(c){if(d.isArray(c)!==!!b.isArray)throw w("badcfg",k,b.isArray?"array":"object",d.isArray(c)?"array":"object");b.isArray?(p.length=0,r(c,function(a){"object"===typeof a?p.push(new e(a)):p.push(a)})):(D(c,p),p.$promise=
g)}p.$resolved=!0;a.resource=p;return a},function(a){p.$resolved=!0;(z||E)(a);return h.reject(a)});n=n.then(function(a){var b=v(a);(l||E)(b,a.headers);return b},C);return t?n:(p.$promise=n,p.$resolved=!1,p)};e.prototype["$"+k]=function(a,b,c){u(a)&&(c=b,b=a,a={});a=e[k].call(this,a,this,b,c);return a.$promise||a}});e.bind=function(b){return v(x,s({},g,b),l)};return e}var E=d.noop,r=d.forEach,s=d.extend,H=d.copy,u=d.isFunction;t.prototype={setUrlParams:function(f,g,l){var m=this,c=l||m.template,h,
e,q=m.urlParams={};r(c.split(/\W/),function(b){if("hasOwnProperty"===b)throw w("badname");!/^\d+$/.test(b)&&b&&(new RegExp("(^|[^\\\\]):"+b+"(\\W|$)")).test(c)&&(q[b]=!0)});c=c.replace(/\\:/g,":");g=g||{};r(m.urlParams,function(b,k){h=g.hasOwnProperty(k)?g[k]:m.defaults[k];d.isDefined(h)&&null!==h?(e=encodeURIComponent(h).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),c=c.replace(new RegExp(":"+
k+"(\\W|$)","g"),function(b,a){return e+a})):c=c.replace(new RegExp("(/?):"+k+"(\\W|$)","g"),function(b,a,c){return"/"==c.charAt(0)?c:a+c})});m.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/");c=c.replace(/\/\.(?=\w+($|\?))/,".");f.url=c.replace(/\/\\\./,"/.");r(g,function(b,c){m.urlParams[c]||(f.params=f.params||{},f.params[c]=b)})}};return v}]})})(window,window.angular);
//


/*
 AngularJS v1.3.20
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(y,s,z){ 'use strict';function t(f,k,p){n.directive(f,["$parse","$swipe",function(d,e){return function(l,m,g){function h(a){if(!b)return!1;var c=Math.abs(a.y-b.y);a=(a.x-b.x)*k;return q&&75>c&&0<a&&30<a&&.3>c/a}var c=d(g[f]),b,q,a=["touch"];s.isDefined(g.ngSwipeDisableMouse)||a.push("mouse");e.bind(m,{start:function(a,c){b=a;q=!0},cancel:function(a){q=!1},end:function(a,b){h(a)&&l.$apply(function(){m.triggerHandler(p);c(l,{$event:b})})}},a)}}])}var n=s.module("ngTouch",[]);n.factory("$swipe",
[function(){ function f(d){d=d.originalEvent||d;var e=d.touches&&d.touches.length?d.touches:[d];d=d.changedTouches&&d.changedTouches[0]||e[0];return{x:d.clientX,y:d.clientY}}function k(d,e){var l=[];s.forEach(d,function(d){(d=p[d][e])&&l.push(d)});return l.join(" ")}var p={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(d,e,l){var m,g,h,c,b=!1;l=l||["mouse","touch"];d.on(k(l,"start"),function(a){h=
f(a);b=!0;g=m=0;c=h;e.start&&e.start(h,a)});var q=k(l,"cancel");if(q)d.on(q,function(a){b=!1;e.cancel&&e.cancel(a)});d.on(k(l,"move"),function(a){if(b&&h){var d=f(a);m+=Math.abs(d.x-c.x);g+=Math.abs(d.y-c.y);c=d;10>m&&10>g||(g>m?(b=!1,e.cancel&&e.cancel(a)):(a.preventDefault(),e.move&&e.move(d,a)))}});d.on(k(l,"end"),function(a){b&&(b=!1,e.end&&e.end(f(a),a))})}}}]);n.config(["$provide",function(f){f.decorator("ngClickDirective",["$delegate",function(k){k.shift();return k}])}]);n.directive("ngClick",
["$parse","$timeout","$rootElement",function(f,k,p){function d(c,b,d){for(var a=0;a<c.length;a+=2){var e=c[a+1],g=d;if(25>Math.abs(c[a]-b)&&25>Math.abs(e-g))return c.splice(a,a+2),!0}return!1}function e(c){if(!(2500<Date.now()-m)){var b=c.touches&&c.touches.length?c.touches:[c],e=b[0].clientX,b=b[0].clientY;if(!(1>e&&1>b||h&&h[0]===e&&h[1]===b)){h&&(h=null);var a=c.target;"label"===s.lowercase(a.nodeName||a[0]&&a[0].nodeName)&&(h=[e,b]);d(g,e,b)||(c.stopPropagation(),c.preventDefault(),c.target&&
c.target.blur&&c.target.blur())}}}function l(c){c=c.touches&&c.touches.length?c.touches:[c];var b=c[0].clientX,d=c[0].clientY;g.push(b,d);k(function(){for(var a=0;a<g.length;a+=2)if(g[a]==b&&g[a+1]==d){g.splice(a,a+2);break}},2500,!1)}var m,g,h;return function(c,b,h){function a(){n=!1;b.removeClass("ng-click-active")}var k=f(h.ngClick),n=!1,r,t,v,w;b.on("touchstart",function(a){n=!0;r=a.target?a.target:a.srcElement;3==r.nodeType&&(r=r.parentNode);b.addClass("ng-click-active");t=Date.now();a=a.originalEvent||
a;a=(a.touches&&a.touches.length?a.touches:[a])[0];v=a.clientX;w=a.clientY});b.on("touchmove",function(b){a()});b.on("touchcancel",function(b){a()});b.on("touchend",function(c){var k=Date.now()-t,f=c.originalEvent||c,u=(f.changedTouches&&f.changedTouches.length?f.changedTouches:f.touches&&f.touches.length?f.touches:[f])[0],f=u.clientX,u=u.clientY,x=Math.sqrt(Math.pow(f-v,2)+Math.pow(u-w,2));n&&750>k&&12>x&&(g||(p[0].addEventListener("click",e,!0),p[0].addEventListener("touchstart",l,!0),g=[]),m=Date.now(),
d(g,f,u),r&&r.blur(),s.isDefined(h.disabled)&&!1!==h.disabled||b.triggerHandler("click",[c]));a()});b.onclick=function(a){};b.on("click",function(a,b){c.$apply(function(){k(c,{$event:b||a})})});b.on("mousedown",function(a){b.addClass("ng-click-active")});b.on("mousemove mouseup",function(a){b.removeClass("ng-click-active")})}}]);t("ngSwipeLeft",-1,"swipeleft");t("ngSwipeRight",1,"swiperight")})(window,window.angular);



widgetkit/12-99fafea2ac1a96755198a3aa5ac06856.jpg000064400000060034152177723720014147 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((��	�"������p�]���^G��hԒ3B���{��-	��1ᛘą|2!���I%�ŏ@�CtL��ƨ�b�ql�2�j5�>f" ��u��H�$isJ$˻d]����Uܠ�;
�E��[�Z��Aă�CdÆ�zW��Th�E:�|���s��p�r
����9����Df��SK/L����/o�ob��p�QS3Is84��P�?8�a�y�g~�SL{C��;��)��js$	�Լw(��ww<MX�Zr)Ȩu�w
kխ�[���/���%����D%${^Q
�K��CT�R���{���(�'/	b���a�����ܢ*8K�8"�c ^�xmڗM{�nŃV�t���=��O;,�g�껙D
�#71$��&!�݀B�cyY`�'܂�(��
�J���N�p����ч�${Nr8딮��)�S�B.��=��Y�y��%�߈e��o�m�/tޓ1�WOI"9�xԒ3�F��A^�t��y��p��6	��W$�5ˊ+Hk
�djFHB1�3��ʌɩ�+��s�Fg�o��*(�(�T�k�M=a�T��v8���t���P0��= J�02�5J3Z�je% �|�L�1,��O�N,T�Ǐ���ϰL
2BR
!]p�GJ�X�h4l&���׆����ې�OuL�X�6��k��m��>&	�B#/G*p����~����[n����A��g
����s<�>�5��ĵddC@��n �JS\���I+�%��e����l_V7�a,�ꞔ'>1��O�UҴ,h�y��Mz�7`�<WǞS֪a���=žs�o�^���)ۣHөf2��L���$g C.S���D���ʷ���2-���g�ky��x��J���N����"�0��h��1�|`���iM!�><��<���̺zm�}�pX�XȞ�᧞{��Z�B�އ8�F�
`� X7�l�^�1�i(��:�&n��%7��E1��4L/I�3P�>�._��0����Ҫ��K�i�`0ek� ��5cG ��}"�d���p����e�a��p<��0��Zz�U}\�԰L9�b������
��čظ�lg�ib�������3P���*?@5���.�RRH׀\�a�dy��$���@�q����:�.���%�!XfٻP? ׯ�T�+�r�V�|�Ӏ�:�M�rBz6�hij�JM�,W�	��`�<5�(�u�𢥼;���0Q��2&"GW$)�-+�����Z���X&]��zl��G�^J$I�Jz
�Qw0��lf�&ٮ�R���h�;7����L�B��o)�OmAͩ�
9�|~�V��AS�B�;��F
y�w�	��$�SR���<�B1��zǞ�)籔g��;&������G����P��AW�bH�7��cв=�<���q�~��#\��*�Wb�j;�\����rg^�a���|����䕤k$gs�囈RV�(��%B.UR�:w����UX/M��������@P<i���<�/�\�yˏA�XGhW���.! "1234#A$%0B��]�Dy�ʗE"9�sa�nl8{F<��!�KMcVy�(=Y�����Jzu4�T)�q�*��c�:���9�u9�s,L���8Τf��ϔ�)�S��7��pO|ҭ{��g���߱'��(�ˌ���"	ǂ-9��ƮD r�ذ?�n��fi�P��A���ۉ��]C��1����vw��>�g��k~�x�Yi�3Tg�R"v,��"p�zv�
�E�8�.�agNk�"*J膛U�����rL`{e��r?�ԆJ�t�����T��~[�vm�xv��y�5��P��\FU`MENM0¥�r�Z�8$3�GU�1*��Ʃ�$�����\-�`��F��c#щˁ n�"w]���6ͳ�v����wjcŞ������b�*�w
/��/�j ���&@I�Z3v�-�[�Cf[�մ�@�;���*ff	ۼf����/����������V�Z��i��6M�=5?f`r�d��ٛ�OƱ��8���G��۹rY�tdE��+9���H3�%�$��_��uG�°ō`�����O��!|	Nʲ{E�Ȳ��Ry;<ǁzt�¿����8�Fm��M};~���yz�ֶu]Sٗa�����X�Ǧ��ϴ~
8�;��'������}Y��#�8�ӟ浼��2�9����b��uq(����”Ȱ��	l@D!Ϗ|�b>�0���:o���e�E��2��[����sS[GQKX�Y�Ҍ�z����4�W�#����7�����%�,��jN�l{V�62����f��Ì�3۞���`�i���)��� c�����[��Ї�_���2|;f��~���v�_���+��l�4��
A9�~�C��u@،,۳��#3�C��O���[CWO�0N5��բv���7�~�S��xG����U�?�!�i�Dќ�1�����A_�T1��yA�i���Ӌ��d���f�D=P�4�i�迧��`���}2�:pJ�� L��C*�8���| d䅈=9��啾��4Љ D.xņ��H�����˸����s���N ����&N�g#O��i\O��`�Q�6�U�o�L�0Nt^+���v-c��,�Ka�Q����	��Y[�A�k>g�!+q�Ir�B�E�)��<�`e��i5�g9OM��WhN�a��J��jg�dNta˧O�IU����7�FZ���C�h�yuk6f��Sn#��SV�H&1l_NØ�V��!"��<�W��
7�|y�;�ʕ��e|c���(��J9B�ܤ�m+t�_��}�ӡ�c-�Y@YM�9�Y���$s9R�W����	����u�Q?Μ(�ũEƢՂ�U6ła�z�S���j��v��a�������D�R�=����I�?���%
��ʗ���ؚ����h��,\�&p:2����'gPJ�����N7˥ -I^�Z*j)��Ae�g,
W(��*�*�V�⶚嵗\,�n:��g���s&��t\����Z2��u������"cB'4�Wjh�MLw���Z習�V,D�f�K�Z��z�T�\���kV	���Q{ʔRZ���b�A�T��3�Z�UϮ:��M0�GcA9�G��tj.��ZΡ<�����pq�=�[ut����1�<+L��-�Z�b�҇Z�\!����M2��me߭KN%AV\槣yp��OԞK[��aP��QU��M��Y{�S�s8���,ȧ>�؋L~��OP�Y}K7
��u�C����z���i�`k�맂���Ҹ, �#�Nkf�*}�[��?��Z`�g�m18s�;W�$q��"'J.@��)<S��n��{�N�i0�+}��ɄIơM���%Ov�QhDO}��2�g�!�8gQ�z�����zf�J�+��U&zM�M�����f[�6&`$��-m�`J8sl�W.�#ߓ�E��v��#�h���-���~`X��Y�,���P�N"��禮
�Z��
�3-Y�'E��2��Ƅ��j?�EF��8�Q/��D��ѨI!��B����ԨQ�M�W��Ҷ�N�������v�gi��b���}�ٌ��82t��sB��Ͷ�[C5n�V�I1Bb&�E�Z���K�L놝g�{�PK.�cl���)�n(>KUZ�e��x�B)�W�^�z��V c.qRkju�!��<qm5��m!�V�����/;������,�ne�5Ѵ��1��J���o?�Fӊ9K���/6g)���h,1/dF�1�𑉌�ϩ��@�1���K���=2����@ ߧ���5�GB�|��(嚧.���z�Q��:�]k+)�5�����ΐ|�款b4y�F���t�1��쏒����2��[N�7L�����7㒸����S�W/Z[���F�q�5�+��5��HW��5FC*i&nlO�������Y>
|�m=�g�F����*�-q�H$0�
:B!Ë'������ɜ���?uS>���pFzL�ԙ��}�Ջ4LJ.6R�S�
�e�J�&���"��^��eN����w�+�,ϧ�v�>9-A��!�J���cl�6�IpY>�FFo���X%|���..��gS*1����6ٚ��-.������W�1�2��{T�TJ�.=x���z�R�W*��1�ǐj�E,��B��Vٶ6#�7�ъ/���}h�ryiF�s���I���.�)����6SU"�8�c˕��i��l�;|���i�3�=rt��;U���Uj�,���*܀Q�GRZ�?zgޟ�|9d�a/�����q�7�jU���Aj�8:�'�Y�z-�Lj��/P>��\�����J�[��s��,�0��2A���F��BƘ�7�`ڕFXD�C�>A�mg��N.���i&-/�U�K�Co�O��v0-����j��;S�d�
gz�K��^�k�9��]��U�"Y_�0��n�c�âE�k>��5_䶌=�!�!��h����|cOI����۾٭��N�LQ�x�%��3|e�1Ieu��3��-C���d�"�Zw8Ӣ'k��.u���5�V�	
�s�r�ܦ���F�T�eoQ!�*p�jL��M�\�5����54��m S�.r���Atq�{�f�q:�F��W�!��"R;+��ݳ^��5��g�mp����+o"��W���qF�Ț�"�a b�3tF�[ƒ8:r"��'�)����B�2 xƬ��!�I]j3v�h����5�!�X]���ك�%�G8c
�J�";�%:Zo�^��M�I)�~0b�& �
�C+�h폁�F��f���b-Xre����g��y@���zdbsP��̿H��?�m���&��h�����ċ;2�P����@�����<��F	ǒ ��+^���W	6��v�ͳR��
�[4�kV6���vͳ��3�7���d�3���f`6���f[�U����efݬr�M��9�>c��b�����n��F�o��bx���?P���{xO���ɏ��/W-�1�ëb>>g8�Fv�����6�A�>
z���%�����k�4�YY���7#�����ѷ��dFm�xq��6�O��K���9Mu�vͲ"2#�|6ͳ��X,�D�%z�djۙ�����I޸��S���nX�D�D����g�?>���83�?�����?�j?���|}�-#�o��+����	}�������?T������?T���<!1"AQa 2q�#BRr��0b�$3��4@�Cc����?����%�E�ȫ,3ի��E����E�o��E��D�7�	��D}ڻ�g�SM���9��8P�f��]e0c�ql��I�IA�n7�x�	�n�^'z��W����M���*+e�G���JԭJԭV�
w���+\���S���5x\<����:����
y�/��V��~�y��3qvtG��]N?r��j<�f��G��S�ؼ���"Uߠ�7UM��{�Bt(�/z�Fӽ�M��O�&���
v�6��m��F�r�Mq�PJ�I��4��
�(�c����AB<'(����V���ݏ$B|!RV�xWU�v�9����\�iҨ�D(���|���������E��A�^���Qi`j@�
b�:�IF�V��_���sC��)�]�MCn�k�o���ޥ��pFP�(�����ja-#�WTh�񣎪Ʂ^ߪ!4�T���p�����X� �ԨM
\=W�>�{�C����X�^�?����/�.h���}��^�B�h{�|���g��V/3�!f����#�Rh�>��������?���_�Rx�/�-B(�0HP\��,�m��Q�	�j�Ÿ����ss�ć��O�7�e����I��i|�;�~���p��V;�J�y�i�ҟ�	�Im�R}&�T�v:�s�ʹΦ<�e��Gޣ���xS��5A�Vi;�x�?0�4B����5�xψab�O��T��Z��\z+�d��ki�>g!6�	��-.h&�z��?��)�`,i�
�v=�ǿn�QG
�7U#E���>�J�r��X�s���1�X��`��ޡ���h�C�<;-*.r���J��J�p��������2��Idy�k���.>wڇ��aқ�ޡ���|H���%�į�E�yQ^<T򂝄a�]�O�.�E�\��)@^�':s�88N�5�`H8�lǏ��{P1�upx��Ħ�w!�J�-*�h)�P��Q���8��u>Ӑ0��l6�v��6ˆv4	N�فiR��Nm��,b
����m��h����]sb'cw1��y��
q9+��ٍSRc�7&yl����rF���彛d����v��o��a�1�A�
��$~�ٖ�
xJ�q���d(9�|.Dmx���Fr�5�0��S���ɺ�G�j��H��0���w���)��
�*0-�ʴD.�vg��W[��J�W�k������;Ⱦ�\>h���n�*�:�Ztpv�G4�S�!��p�'0�z����
�j������4����d`�*�}F�F�U/ʹε��B�/	w��*�tB�{��Lm!1�#��S�%��u.,�Ԧ!��uZΤ
Q�3�`����'��u9zmJ�\>9D�s��%v�t��� j5�|�w�F�ƨ1�#�(u9��h���׶�%l��/u]��H��-S]���^�\B���
$Jc�=��p�N�;_���\Q�0���f��4�UP{-����}��8���OUa�F}���ݎ<S��eN�T���Ӥ'���^pcM���%�W�QNJ�x���n�د�e�l��������ʚ��ۈ�4��f�2>W*���M�[�Sc�Ta��S�V�;@�3�"�-#��R���Io�Q��	�rPs���I��s[p���\�t�R����)�A�7�����
{ً�%����>�ZF�"���:�����㔅akI'�!U�f��𹎅I�϶0�A����
4%�4Xn���Qp/"�2T�h�		���{P怋j�0x��}���uBV�0���U����c�UM�Ƽ�'�+��V��߀��M�I̧�~�o�M��$��|�	�Kh�6�]�(k�pW��vn���T��k���.��"�̔۴��'P���Ў���,)��%�\^��:���M�pΨ�
� &�����=�3����O�#cL�K�y)�Tk�:�7i�:�w��������^����tX2��r���
��P�'U�Oh���uƟTO+��hq��kîk��L{Y݌IB�
)��U)�3:샳M�k��z�X�-@K�5�a�
BЪ����dZr�(P��lJk�Q�ٶ#
@��[�k��(��:a*�s���u����&�"�$�Hթw��;6�诤wy	Ό��&�Ã�{D���4��J�vTh����%c�K?�wkٸ�$���m
�Ӻ�5N.e�"<��Ug	���7��淡���I��[U�u?���x��XS�GQ&:�D�e�f�Y��I��P�ҭ�2��xx*��%��X�E��x#�ɜ-uE���΅{ʬβ��B�+�3����F-ަ���^���R7���0k*���l�i�h�Wv/�&WP��ll�'��PS�%>�͆ݖQ8�)���~UK�qe����{���R�jzK-�0�)�+��)��Q#8� ΅��껃�4���uV1MZ�?j���x����]�*�G���胱�r�8�5\{S�2Ҧ�� n姢=��%�..��Ph���%4�	�KI1�'��0���P�N���Tc
��L�5i�
�HTj�vw����i�uؔ;jct��B�Ss�t��!6�$7T��e��T�Z��=����� i7#R��l
!T;��Q��&�Q
�K�8\�hT��	׶ʃ��R��M�M��	Ǣq�ˍ�z'N�2�V�)�F�n֞��Qoܦ�4��#��N��?��@w�S�7����Q�
�Y�6(vb�uE@ԩ�s�ZXf�sL���x���(}�6�'f�)x�D�|�+�����T�zz���\k�[�`��y4N�ª{99�~��
��^������	�ݕ�aU@uLk�p�UF�;$耕�Ap�(��4�BmG��0����s����|�mqi�fAN��'�ʨ�-v�+Y�,p�V��2;�@�^���ӊ�:+*v�n��Ç�Bhv�&�G[��X�Ba9��� �V��<4!\ڑ<��KFV7��rSĢ0��Tj�D�l�:*Ӵ�b%5��V�3�hRN��ClAB��ɍ���*[mN�2��fS#�B��k��Cc.�dIO�0��
��j�Č&��eÍ���M��:�HT�X�˂ U|�_���i�'�ɏ5�U�HU?��˴�
�T��qWݗ	���e��m2��{��
bBch���Sf��:<l7��S{@[Q��M�m>��tW	,=4+}���Yk��v:�;��qL��T�5���
��yU��� Y�-#��e��4<�o�9�.���Mu7�c�
�9�ƃ����+���$[R��J�:�__M3!4T|�U+]��Bha�3]���Q�p���0�~�;��_T8>%�Se��qRjz
�Q�m�k�j ��c�:dd"{0�"���9���
�-?Jϴ6�@Bܩw�W9n�+z���K��]aN���*}���PU:�x��']�o�
7g�I�Y��ӏ�ϳ\��̓vF��楮��I��\<�
.t.�F����4'r
P��2���B�;�
�>���%�
 pV�_v�Zt�{�$��z/{�SJy�YP#P��"���g@����S�\��o�?b��qX;-�8(�{p��Q�BP�u�Id)&�G�o���0��(���eu����wf!�N�Z9�,?R^�U�$���D�^:~�n�1���#�;�k#��Q跞⠴�̨��6]s�CB��x�	!��T]R���Nny&�uR�j�y�@��yl=6EMS�2���^$�쎊�K�rvTW��ψJD�]�9�w�CG"P5��h��z
g���T���U�5�=�`&�l}�k�Z�f�{z�X[���*#�2%H�@�J�K���%�Ku�b��0�ϨۛȠ�@���H������"C�p�
��:�6�`j�(��)���1�� B�F�m��Q�#:[�\�w�;ڭ{�����o8��n�;�B
f�8��\��]EۆM�X�_Q����Z6繂�N��Oc���=�x�›k.������ �!dg�M+�O{4*h��Ѻ-�|�^��y,Ttn�荎w��\9 �s���ZJl��k��?�qQ�?��C�P�(c`m��u �l�q���Bi�(��T��
��_ܸ�†Tl�N0�tC��wGp��m	�I�i�[Z��‚��(!1AQaq����� ����0��?!�xL�6�i�Y*�-��D|�]���A}�
�?A8��kI�)Of�iD����E}K���z�������I�L@��!��b؜�����`����/$q@!��eM���>�5���O����'y�;����)Z�Lk
�/���Yb�����:�[I�g�w�-��B^��g�?2�N�Ȳ}Ј� E�1j|�O����-�*�-c.�'�H���+��a�=�gs�z���R�V]9}��\���Z��A�����
[�0��;�M��XnR�9#��؛�������
����:�JD�
�*�ֵq�?*��o��̌A�8>���ϡ7KB�݁;��MR��a�*Wu���pz\����he��_��Kv�����8���b�0g1	���N"�t'�R)�|@���n߆�����{CD
���-��@	A^̬�|U�Զ���Ow>���F�ET����Q�E����~
d��z6�����M�1�"���;�P�O��c4;"?�Qo�~���[����W�o�d8x�#���ܪ�;���ܚ��RA�4�I�Y)%ԕjs��c�\81��uj��[*�v����IE�L2��U��±(,oPכ�)�>";�����G��P`�z�h�P�>��3�T&���N�M�b�'p���o��k��Ԍb1���u#$�����i�c�/��=�Y&��G#: ���j�+��k
��3���|J�_1��)�'fY&����'T{��W-
L$
��E���YX�4���J�>^���TҝW?ʲ`�+@�^r��=_S�$C
y�'!e�\J�Ek���'�G�s�oX~����E�e�=="0��@*9�
B�7���mY08�UV&aZWO_Zez�
F(���{t�=����z!	���,�Ħn�K���.hY|�{z%
~cB��g�0EW�mp��s�Q~b|�~��y��0
ZNF�X�ڦ�荭�B��6��O�树�J�S�ŗ��R����s1�ŗEhdh���9�F��/�y��Cq]���\��Zc˼Ls2)s�:G��V�q;��A��WV+��:�W-Nr�A=�L��X���7
��к2��h��8�.q�4�/p��*!cu�-���s�£�]7�3˾=?��y!���x#���L���d�6��E}�B�5��L*f<K�h��Ϯo�չ��UZ��}�t'B�CF^{�k��^=J�'�qo�
���9��F�u7V=>��L��-�\�6���:���2��Ù�+\����MšM0�a���Q�N�,Sk�y�1�P��XjP��%8�p}D

���(��io�sT}x���cf�Y$d�iy�T6���7�p��C�mr���c���N�Y�`�����ʻ=���[uQ.y�-L��X�4����)w2��]�:���,��B��`X�~�'3;3
�#�xQ����Z�̤�:K�[�$%xwR��

t��@f\ŖT�D��#A [D]�pv�q���K�w^�m(�z(�_�;�h��>eCcq���V��q�x��o	x_�l=�������I�����J�OIz��e����y���($^*&^`������v{�c.8�Xh��<e�"y���h7�^H��|Dx������y\`�R�Y�0�Ot���\�Fh�he�"��j�5Ԩ�0�#t��Z�E�hV>JI�������/�jR���u:H6+Ц���5<T�p\x����>]��R�u�d��n�5�> A�%l���e�ai;�VZsG�cϖk���D��=�J��3<@��w�7�p��pc�Se10�T�����k4Ty4�a�k�wV|K�7�2��}�7w����$������?h��>BX��~�ݸ�jU�@��[���(
���7�<��C�Pl~�{��`8z��4�k��끆�?Xa�0��}ܪ76���:��5��
ƒ�\��@xk1�˴�;rK�3����4���įѲŮ��	7@�y�W����g�G�A�QQ�Y�q2�,ڎ洆=����T��F���.�����fG߉T��/�/n�����ڍטp�ħWK 諧�F�Hc�s�7��^�2�
c��q��
�[įN��B���1���3Oht�P_nI�\��ˏgo1C��C�h�Дk�F ���#PE��=�䲵	Rvj��E�h"F�fw�o]C���6*��A�ec�!��-��x�E��=���Cj�ʽ�M�:��W(S�U+�yC�8 �"5
�94��-C(s��.��������-���4��
�n%W(wL샖��b�T�#��0ᨋ�d�׼ϙ.
��=#����
{��&���Bf�Z��T�0)R�5�f��2�����n�uF&"4�M�x���H�i���-�2���a^K�!�"�H�uwsK��/�/��	-.��],�#z�":N\tfMM��^Q�|7P+���̧�E��v�O�Q�d^��fC(ܼ���Y��v�fp�T"j�j;�,V;�8�Dve�T�����6�
����4/o1�����DUsp
���W������{K�L�?�AtN���Ysa����� �;7���(xy&BO`��ذy�-�JZ�(g���rDb?�,��fG\hx�~@�E����I�zB�6�����u��<�g��}Ѩ��Akd�:��a�*j(@/\Mɢ���%�N#�*�:@XA���K
�o*>��hӥ�q� �ySQ����HY������7�K�N��D��-NJ)��{	QQl�2��fv�J�:�0� ��#��{M����h��
p&/�U𥳐;G�:��7M����ٰ€gW�;<�����PxT��N�*"���q/M��6�2����"�Z�2��Z��s�8@��%���p��ҧ�*xʾPĵ�.>&m�/�i�-#Fcd���oXJ��m�݀��|�7�"��˷�*��_�]���
���E)��p|}�il�*�j���-kwP��<����B�U�D�(�s,8���@j`�K��'TD�>��i��-"��Z/�"u���k)�R�	F(�A5G�=+�Q'a�-'6�C�UE�TKgS(��/_�',C6]�T��ï�	J!��(g�S<`J4�QnR\��MG1/	5�'&ωy��Tuעo��K��n����5�K�1%G��
9}�?Sj;6#��0�����
��آx81�Զ]���l��	���TE�h,eMC��A�y�.S���"��ÆX5�Ag�Ea�O�L�da2��e�N�����I�7�\vKSB�#]z)U�0��9%r���FQ��KL�C�1�1���j8|�8@�K&M�*�2��2��[�˃i�]���J}An��%�`nRs�WJ�,�	r#�)���Ok�0e��9!�[��%��	L��e�֕�(8Q��O~%�d|�^i�S��0ýȠ��b`P:FLE�M^eFŎm�ӈ�l�8���	����v�0���q*	v���J�*��1��뽠��m0&�<AA��%B�#��C�B�3�w��f�	Â-80s�Ÿ�SL2�u��k��u9��ܰu`e���1�rd�O��=1osc6�Pº�݁��ʟD���s9`�K�f�Yn�L�O!�*�*�Fr�Mv��#/HS�+ĥ�'yF�D�&Il�lCQz��	R�a�P��Z)�,���~YQ	ޱ�GX��ϛzJ]Z��Q�y��j98 �j9�[�\Xr���??Q6���j`V+e�N#OyݿP�W+����g��j'�E:�l9t�I�M�!<JU�ʄ(�|\B'�Z���[�S������:ql�9?2׏�f3d�&���	wb���>�*׼��K �L�nR01Abc
���#�O�?��x�^�#�'hv��EAAc����J}3]�j��j����U��ۼ5X\ʼn@`�(��-4���g2F���qNhV��Ď��v��Iw�����K��Q����I�SBSȍ����pN��
�\�
Q����Jm_���*���LU�:�����ː�m�s��s�|��r���':>��֠ eSd�u�1����(C�{����#@�:B��0�A���#r�x���Tz
�.`���t �4�R�{?lf��q�X�'H@#�@��Z����:��E�׀�� �hU�B��@(�1�Z�r{�����B
ݚ�3��Nl�k��J�j��\9<y�����y��d�pZ`��^q�d�m~	XS���%�;_-,I`y*�	H�>
���+>f��6J�
,���������1�v/�e:?Q㟜\�mi*�5q�v�W���J��fQ�i�A��E��a��8�ew)D�%�aU��$
��ٝ\_3�E�7�ƫ��8��'[�����̟]1]����(p6{�aGi.��<��
1����� ޱ�ᖪ��m_�e�}��ƶ%��M:�f�ߨ����F39� W݌1Py�(]&��]��\
���FO-T0T�ʓ��p��?�87���Q�Ye�ng�۱��@��@�}��G��)[VJ���څ��*#��~����s=���=�:̍=�k�=�ĥ[.!�����/�&�u²��&��OVRhu�	p��o�F��dBJ�S;zAW��&�M|K�$̬�J'�AD�\G\ې����Ľ��.������}L�3�\��:W�TK��Y�fZn*^U�M%:2�C�a�lUk.J������1�xĪ{zjY��߉[���ޥu�7�}70;�9w���~)S�8��D̬�M��sr_��$��B1X2�7���:B��{�؊�((��b%beͥZ88�W/t>��P�P�8{1�,�<)��x�?��V]f�W�q%b"�'1���9�[A�uHcu�Tz.%@��f�����B�c�����}c�
�/�*`<�_�n!A�����=�s���D��S7�9>#pP����9�]]f��i�*eT噵K�*�u7���p��/ai4�YK��|�[3��UB<%5U�a)y˝�z�QA��S���{D�^%0P9����%��~g�����1{�³*���S��v���Ra�x5��wV�'�I�tOy���Ԫ#a�|M��d�8�AE��1�9d�^~#�q�F]��O	��5��?���CL5e�hz]n:��6<�>��n��Sb~)�����,��i����0
0�B�8�K��,�� �,�
�OD(q��C���A4�0�A4��<�	$�8��b���$O<��0�(���C<��B�0Q�0`(�� q�8���L��4R� � ��$a�8J(�A �(�M�0��0rM<��(pLE�<�(3"���D0!�<�G# �C$�E��<�N$b
(��4c� ��1��K<��4c���,�8r�����D8#������ �pG�0!s�qE,�K,AD@� RA A<�
 ��<C��aE8�E1D��<#�����?T������?T���'!1AQaq��������� ��?"��^3b�U��Gq�K�p�y��[��+���?�u�}�(��
V�_�6��[�����!_�q��P�v�����i7���XX
����)5Uߺ�	��:B-�Q�cXk%��.?�й�R�h<��$s�Q�+����}�����s�����h�8���y~�}��?��I���0���K2���eh�r�P&�}��7#����[#q
oj��E���7�m����U�8}#��&�l���E)�X��([=��-<@��3ѹO��h��ǝ �_�xdNtz��aB��В�0�
�T
�Ž�q`ʹ�#!R��I���3�€��Š3G0��d���k��ĠD<c��6��5M�m
�\C\"�pwղ��k07f����s���z
'p���R�2O
�������k%NS-f"�j�p�������g߸
`w+�
K�pg|NtV�@� 下i,��"����h�ȋ��\�
�U}C�}�g��_4H��	A��k�5��<�#��p�rK	��U�.��mwj$-����`ޠ�#LW�1翲\�
����Y�>�,�[v0Ĺ�7/qo����e:A��R�\�O�]�y<�5e?�/�ϡ�����u�
U��@�Gv����3����!΢�^��T��Lt#���@MpA���� �^�#ڢ�!h��0���Ft&��L��.ސ��cRs"U�kN:�n��h~HY(V��O!|�G��+����i�J>��e�:�-)���df���}"?Q�I��ȬԫX���D��19����l���b�%�Sa�DT��G���?���(/���o?���~C���{��
��%��aR�L�X��R�o���<�P:�P��	��˖�P�/� s�C���P���8n�;�«m\"�A��|_��իT�x�b����j����B�V�%9��vC���Z���զK�98�o��%��)���~�G"7}���#���IJ��=�c��~���y�Ҩ̷{�#5��=�"��(<�0�x%~��ag�Yī`�8�̿��+
�D+F�s#�w)׸���:X�PV��u��a��9"����&[E��œ��\$�{&�)b׍n�eQ���Xv_B7G��T�̿�sk�"��Ӫ�sҌؗٸ���Q4�j`T݈�x��U)�_���?��7��
��@J5������2�������%�:M�l���R嗊�?��zM|�U�_�K����2�%��Ľ��

�NI�8�˪i��,4�R������j��<�OK,�rc����3�	�ez=�t`���=�:��G��q�z�g;���0(9��Y���X2S��{�\	���Dx>2��؊k�Kf!m;��A]0��'LA���=	z�̹u��o`�P<KeJ��������9��!`<<L�X��&��2(�=#�ѡl�4� �����)�5��~k�̧��ɠ?+�$�v _M��ebu�9f�b�ЕZ��8�6�[��z�;;�>`�6�;��q��cR��7�[�s!`>�(��;]�F�*����Di�*�f�k�E[���ݜ�R+����ļk	��!~e�v�#*9�F�1L6�׈��K!�+AH�k�@<�%��&i:��LVa��0�Vpk�P
f���1*^�4�?�ak⾸��)�8��f��d�'Ġ��x�x3㑙���W����2��S3��3�2��NMJ&���D6@����C��^#�(��t��T�{k9��e\�'":�<2nP(b�Ll-&Χ?ے#��[���p�@�B��V
��P�wZ�L�u��u�T���i��%�Fɡ�L��
��L�2i���0�-�U��L�d+�|"�.��*2-�,N�B�F,���U�6aW�U-�)�x��I�0�
#�!tFG�f+�����Y�qT�:0^�f4�+"-	��v��#��`�d*���#��dr����5��ARU�'s�n�V&�L�E\�Y����z��s�|��'}���Z��j�wXS֦<H,Y�󙧏�a�M�/:�j��lj|Cq.�E�
�m�s�0R�)��E�1����ϯ��$��,R}.�Z����l��kb�'*Kb*EA3�4j���I'����n�>�_����F�)]��?$
�������X��H��i�����,Fa�n����B�Q;�E������aO��I'�"ji�3��r�0�${QO�p�\1�+�4��Su��_�=D�Zۂ$9��ɂ�}f�Tv=EZ�i���('�o��X7���P�Q�U���@ݻ��ަ�l�ty�Bu2��,��&�Eӊ��������0�S,R!�DIfI�� ��T�0Ա��Hs�x�VU��b	uW�^�0��'��-��x*P��䆰&Cg�(�D>��@��uX�J|n���q������_�O�hf��
��zKAJ�LF��п&������BFx������6a6DVI�&_m��Ni��PQ\;��\���
��s�,׉��B:�(�%�L�ռSr˴��fm� ]�p��)��5Ks���Aٱ�k�.f�iA�9�K���*k~K}ĭ��C!�R�Y�`�~Hb�Ī8kr�B����(�iTt�6�WBk��ȑIJ6"G�&fE��l�`�H/.-�Q�W��/f�e3��sF)���@9��S�P����,V�i��
mG�<�כ���C�
�A�I� ���]��rT���y��Tn'
-�Me����JəxK�xk��Cb���2_�����/(BEmn�����'ݚb�_��^�����ŇT^�I0���!�Wa��eM�~1~�JIƔ���`����@dCc\@:p`��"��G�
B&��3^BZB=�׽D�l��1�)���
���o�GH�IYA�/Ġn����V�Ҹ�d0V���NR��Q��91|�5wGɅ�vf���]B�[K��Dr�c�İ�ܛ�J�eۼLG����l�׈,��$�|�a�G��<2��b���څ�|q
��V�6c$���}������k�D�$t�#�ȅr��N�b���1�N�k8�eچ���2�W񚥖�^��Wa]uw���!�6�V5KT���!��۱	���`���Kl����WHu��^��Q��rl�/���8�%2�|��K�]f7���۶�/��70Ŭ%OS���b�ʙs��f-���ƃ�gI���O���Ŭ�TrX�Ԯb�)����vB�{�&|C�d�O#<L��r�Oy%ʨC�hm�>��isV��
}g��=C{9��$�3�T�ʀA�y��i0�l�ܿ���&��,I�j��.BW`�iܸH��8N�E���v�vCn�[^�/�/ۦ[�4Ƴ�I^�v2�Q�v�ɢ��� ,]���a�F)\]�!��͕ϖ-VDT.��'�}����w��7�5�6�<�W	����h��f9�1��|���^�qw���i�,��hSX�e����S\�V��c��%u��-X��Up�lʌ%F*�֪�1,�
ޱ2��������;��nʈ����%D��:�K恲�����/�f,'|���R[�QLs��E�S�>q=.�{Y
䗃	�d�V�����ș��9 Ch�ޥ)4q��U�Z��[���j��-9 =�X�u|���TW=e������ ޢ��e9\#���8��d&�fam6���K������m(��楽�P�z(2� �c�+�[F�����@zωR B�	A�r��X��zԯP�9��U&��:����c<KsBd#��J$?Aʙ~YT[�!M��G&��ͦ��f*�ā���M'�>e��V�-�=[|?1[p!�
;�
�$�������2���;E��*�Y��F�6�`|o���"4Ѐa�D�|7GdI�����O}��	����>!��D��Z3�5��t=@,��J�?�|B�H�-_�4Iw��>`l�';�z�&-��
�X�7R�в��}\�E���%�^��[b����#�!7۠��´9@��DY��*G^��u6x�
)�:N�3
�]��(�Z�k%CV3�Ñk4���1��r���G�.-�1GA���%.�u���C�l��dl�a�}s�� �*�'�Xl��^\C�O5�O��V�v���Wu�d�ؙĭ�ZMЎ��K���I�Z�CrP���U��9�����)�p�*�|Ϩ��V���Ii���Pr\0�H�W�F�VN� 
'�������y!5��_z��P1E`�M}b{�ߙ�ͼ�C��>�!6���>�š��M��㢝
?pB*דU.�x>��^�D�xs^�G�r��C$1I~��D+�a`��*!O*��&H���S�W��T\�K�6Ἧ���u2Q�4B�C����Ũ�X���Sd{�ڍ�J7xCVy�{�7�V���n/x�o���C���1�L8�>�)��Ktdɼ��j�,KW���!��%�۱\XȨl�Ȧ9�$��#��??Q{���,Bv�SM��٫wĵ���*��D�ʮ�!6�X�ۊ�a	gai���װ?�U�:t���4�(I�����A>�Ux
�3��>T�
���jtU��cS�4�#-³���P�3^��z�q��r���jvV�*a%2�V���ws*�A��E�F�Ol��vW�F&�oX
�#�ê�Z�ύǨ	7�\��5ԟ�5,{"V�H�r�I�:����~Y�1um]w*�d~<(^�?0Xq�cC�Z�;�o�О�d�+l�Z��ev 5�7�*{�8�YL�/��7i��X—X>e�B��sxA-q
["B[���3�p�f�����-����(�P��2��G5��%d*l[@�� %Z��ɟ%v�6	�_�����P^�p��v�%��g 3�(=IF8iW�gM����u��<2g�� ��j|�	P*�O��EZ�%�@eT�ǂ������i/2�g�PV�˪5GQ`�QfV�V=C )�0�(Rj���w��J	a�L���
Xӈ~^S��i�1�tj_D13���X;��eeX��JXV��0�RH�2h�NɁ`�Q,���#����ˍ�[�Fi֋�9�ª��~�5�E�j��>���B�¦��ˊ[E�9��PM\�?3��l�ZV%e
co�q�#������C��1F�V@��Fq]�kԷ�A��Z��}�Gp��J7�%�xT�&�܁��ff���b+i)L��W��s^���ˈ���Tؔ9�)�CSS+Q@O2��7S��ӗ,�yS��;��uw3k+̵�����l��^�0K֡?$f�,.4��c�\V?.z�`Mag��J\bBԼ�ܱyH9�e-c������e�z)���7���b���=�e�[x��ILyك̺�n����B ���
Ea�C{ETܨ�Ҝ,�
�(T�
ߟ��Y���r����Z�{�L���Q� ��{�B4tD	�u�%R��ܥ�,���Y���|ܵ�wa��@([��	�ߓ����r�x��I_E���üD"�1��ԧᇃ�!kT���a�R朙.ֳ�R
�9��G�Ϥ��B'�$�\�aK��g�˴�J攸�T���f!�KMG!X铲UX@�K���Zf;ש���l�`�Qg���챆"s�^`&�����F�2>�}��X9$�)%�k����Ç���G앷ͱG�K4�,ź���y>�|�ܸ����J��8^~`
�-�����P��0�;�E�^�3��*���o���*Kh�=�d�� �B�7����n&��P/�p���i,4�1↘Ì8�����қ��͂V��M�`�ˠ�'t<.�0�5�AV�S�s�N;�(-��Q���@�|����eȔj�c��޷ZX����(Lގ�VA�~�{˳�G]m.��S5�.G"鮘-����}��i��.[�fU�� g�P4��d�Q9,�r1��5Eߙw]i���R�X��2�[!{����TC����]��l��g�N���M��]�kވ>ޡ,e�/5��P���T�a�-�����X0F�ÿ�1RO�Wᚮ�U'��卞Co2�hʯ�A���)�.�[t8�[X�!Z�=d��m5�/���oȵ�Ui���#9�C�7SU��*�� hje�
�C/����"2,"J+��Qx7��ʡ��YG7�J�J��}J5�Z<G�>�����7-tu��D�$q�fX51�p`���0>%%��R��M����@��V��pc�����`�/4'�@afq{���es��)�~u���(�F�J{����!��̈4�
��G�"҅]B�l�T] Q��Jj1X-��a�����b�Huʨ7�o"t%+����k����h��=�~��~�/�����f7G;�)��F6l�1�2K�#�!u�[��(9.���ōY��*1-R�e��ő���!�-�g'���0�_sJe��>#c+���+�+3c��j����{}U�&��g�p�(�;��p0�hÞMK0HUu�ta]J�jQ}��K����lb�T��JսS����/��Ӌ�n��sb�/�s6V
#��hJ|�T
�*�c�C���hO�-�=�Xzq5� <Y���
n_��A�6�_��z�oT2��@�=�VG'��:��#�R��t�M��JW�`�L�1�ܦc�g
x���׈p�)�U����]�G'*�r�,t�������Y�
ن�&�C/BML�(Ϣ���u�1,No�"8� ��=" j�#��R�2����X���a��l>�#�|��q���K9����,[aV3!J7��#V�MUA`��|KZ�-��`(Lo�/�3K#��+���\�k{!��VvX�753�
}C4��������Pi���1�w{��)�r���L_0�����-�o��g�Ⴈ���(��SI�x�
�A�63�}�# �	���pQ��a��ÖJ1���P�Ҭlݏ���ǘb���,�O��ԣ
LN��d,Q��Ǔ�=�o�u`}���/]|E`.�B��n!�i�&Lyb�q�9ٜʮ���D��4̉��#��8�*u�6�P��0�@d$螸�I_�B�n���^s�����z���-Y5J0���Ժ�Y�QD/\�_�c4�C���vY
��J��̡�@4v�������u�'`�`��cgh��8?���2��a�)�Z�t ~��L�'h�w����C�i[V�f�U{�z)���Ŀ%[�e��e���i#���J���	��dS�b(��7Sƒc(ټO1I0��x����w��\�{��&� �x|2�t�BCa�q��|�&V�����D��.�J�5�L0�0\�9��{���<SxپHƍ�oR�<��@P��O�j-.0�c��ڀ����m�����:����NG�S{Y
��eJ-qhK����
�>�F�j�o����ܨ�ܥ�S=��J&��0hי�h�����_m�]��̑]���f�z��ؖ$�ϑ��(�~~���r���g��00�~���cLJ�D�#�ij�����$04�a�D����[A��[O��j�*�kc�W�C3pn�H�Wg��\��i�e'M>u�{��M�\#4؉��f��J�vn�B�!���c�D13����b��h}Tؕ���EE1��-��fէ��fV��q��Ӧĝ%��mc�@�zp�]1IB�`u��`6�s�B�n�,IJ��U�Yʭ�I���1��=1�XwQ�/C,����yqK�qx��?˂W4
i_Sd_�z��(�#q��8�,�������I~n�J_<� ����ٚi�j� B������B���/�4�&`$2��W�l����Z��	C{���JVJ�A����W#�t����*�_\j\doDž���%[��i���QP
0�c��@'���+![���d�4�}s3V�������h
��r
��0v�}EL��ہ�rB�s3щj��08/����f���
{��Q���3''W�O�
��:�����!����8B�CDh`8�k���;�**�U��R��`�2�%�B�l�F+ܨC���3�-L�a�c��8����1E?9Q�\������u}�������(p׎h
o�X(�o���D��%]�Q��1JO"s�BٙY�AC�0̇dK��G����k/�mu�5{�Lǜ���q9���C�VC��
,�D�b�3`���f�F��0#����h��ˆW_ί��F~�_��48�~�ј�1Ѕ�U������*�>etۆ�W�-+��9��o��7+����ι Xd�~�j��C����ȩrv~e�zQ�ܥ�4�I��d��^�wgk���a�{�?�0)���<Ѧ)�!V�����%��7����v{���n���d�͟��?w��_�~���w������O�u��
?�G���~T��G��'�s������w�忹�s��widgetkit/uikit2-10483ffa.js000064400000240265152177723720011464 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2)return window.UIkit2;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-uk-margin], [data-uk-grid-match], [data-uk-grid-margin], [data-uk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="uk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/uk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".uk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-uk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"uk-touch":"uk-notouch"),i.support.touch){var n,o=!1,s="uk-hover",a=".uk-overlay, .uk-overlay-hover, .uk-overlay-toggle, .uk-animation-hover, .uk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"uk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-uk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.uk-responsive-width, [data-uk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"uk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-uk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-uk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-uk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"uk-scrollspy-inview",initcls:"uk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-uk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-uk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-uk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("uk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("uk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"uk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-uk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-uk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"uk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-uk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-uk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("uk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" uk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("uk-hidden"))})}})}(UIkit2),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".uk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-uk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-uk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-uk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-uk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-uk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-uk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-uk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-uk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("uk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("uk-active")])})},toggle:function(){this.element.toggleClass("uk-active"),this.element.attr("aria-pressed",this.element.hasClass("uk-active"))}})}(UIkit2),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".uk-dropdown,.uk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-uk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-uk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("uk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("uk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("uk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("uk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("uk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("uk-open")?(!i.dropdown.find(e.target).length||n.is(".uk-dropdown-close")||n.parents(".uk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".uk-dropdown-close")||o.parents(".uk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("uk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("uk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("uk-dropdown-top uk-dropdown-bottom uk-dropdown-left uk-dropdown-right uk-dropdown-stack uk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("uk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("uk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("uk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-uk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-uk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("uk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="uk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("uk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("uk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-uk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"uk-grid-margin",rowfirst:"uk-row-first"},boot:function(){t.ready(function(i){t.$("[data-uk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-uk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".uk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".uk-modal.uk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".uk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("uk-open")),this.on("click",".uk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".uk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("uk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("uk-open")):(this.element.addClass("uk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("uk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("uk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".uk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("uk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("uk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("uk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-uk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-uk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="uk-modal"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-button-primary uk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="uk-modal-content uk-form">'+String(i)+"</div>":"",'<div class="uk-margin-small-top uk-modal-content uk-form"><p><input type="text" class="uk-width-1-1"></p></div>','<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-modal-close">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i||'<div class="uk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".uk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.uk-parent > a[href="#"]',lists:">li.uk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-uk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-uk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("uk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("uk-hidden"))),n.attr("aria-expanded",n.hasClass("uk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".uk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("uk-open").end().addClass("uk-hidden")})}),a.toggleClass("uk-open"),a.attr("aria-expanded",a.hasClass("uk-open")),r&&(a.hasClass("uk-open")&&r.removeClass("uk-hidden"),n?(r.stop().height(a.hasClass("uk-open")?"auto":0),a.hasClass("uk-open")||r.addClass("uk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("uk-open")?i(r.find("ul:first")):0},function(){a.hasClass("uk-open")?r.css("height",""):r.addClass("uk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".uk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("uk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("uk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("uk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("uk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".uk-offcanvas.uk-active"),a="right"==t.langdirection,r=s.find(".uk-offcanvas-bar:first"),l=function(){o.removeClass("uk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("uk-active"),r.removeClass("uk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("uk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".uk-offcanvas-bar:first").length)return}else if(!e.hasClass("uk-offcanvas-close")){if(e.hasClass("uk-offcanvas-bar"))return;if(e.parents(".uk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-uk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-uk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-uk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("uk-active "+r+" uk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" uk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("uk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-uk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-uk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-uk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-uk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("uk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".uk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("uk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".uk-active").removeClass("uk-active"),r.addClass("uk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".uk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("uk-active"),o.addClass("uk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["uk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["uk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["uk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["uk-animation-slide-top","uk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["uk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["uk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["uk-animation-slide-right","uk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["uk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.uk-tab-responsive, .uk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-uk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-uk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("uk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("uk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="uk-tab-responsive uk-active"><a></a></li>').append('<div class="uk-dropdown uk-dropdown-small"><ul class="uk-nav uk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".uk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("uk-tab-bottom")&&this.responsivetab.dropdown.addClass("uk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.uk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.uk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".uk-tab-responsive").filter(".uk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.uk-tab-responsive)").removeClass("uk-hidden");if(!i.length)return this.responsivetab.addClass("uk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("uk-dropdown")||(e.hasClass("uk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("uk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("uk-hidden")}})}(UIkit2),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-uk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-uk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-notify",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";var e={},i={},s=function(e){return"string"==t.$.type(e)&&(e={message:e}),arguments[1]&&(e=t.$.extend(e,"string"==t.$.type(arguments[1])?{status:arguments[1]}:arguments[1])),new n(e).show()},o=function(t,e){var s;if(t)for(s in i)t===i[s].group&&i[s].close(e);else for(s in i)i[s].close(e)},n=function(s){this.options=t.$.extend({},n.defaults,s),this.uuid=t.Utils.uid("notifymsg"),this.element=t.$(['<div class="uk-notify-message">','<a class="uk-close"></a>',"<div></div>","</div>"].join("")).data("notifyMessage",this),this.content(this.options.message),this.options.status&&(this.element.addClass("uk-notify-message-"+this.options.status),this.currentstatus=this.options.status),this.group=this.options.group,i[this.uuid]=this,e[this.options.pos]||(e[this.options.pos]=t.$('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo("body").on("click",".uk-notify-message",function(){var e=t.$(this).data("notifyMessage");e.element.trigger("manualclose.uk.notify",[e]),e.close()}))};return t.$.extend(n.prototype,{uuid:!1,element:!1,timout:!1,currentstatus:"",group:!1,show:function(){if(!this.element.is(":visible")){var t=this;e[this.options.pos].show().prepend(this.element);var i=parseInt(this.element.css("margin-bottom"),10);return this.element.css({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0}).animate({opacity:1,marginTop:0,marginBottom:i},function(){if(t.options.timeout){var e=function(){t.close()};t.timeout=setTimeout(e,t.options.timeout),t.element.hover(function(){clearTimeout(t.timeout)},function(){t.timeout=setTimeout(e,t.options.timeout)})}}),this}},close:function(t){var s=this,o=function(){s.element.remove(),e[s.options.pos].children().length||e[s.options.pos].hide(),s.options.onClose.apply(s,[]),s.element.trigger("close.uk.notify",[s]),delete i[s.uuid]};this.timeout&&clearTimeout(this.timeout),t?o():this.element.animate({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0},function(){o()})},content:function(t){var e=this.element.find(">div");return t?(e.html(t),this):e.html()},status:function(t){return t?(this.element.removeClass("uk-notify-message-"+this.currentstatus).addClass("uk-notify-message-"+t),this.currentstatus=t,this):this.currentstatus}}),n.defaults={message:"",status:"",timeout:5e3,group:null,pos:"top-center",onClose:function(){}},t.notify=s,t.notify.message=n,t.notify.closeAll=o,s});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var s;window.UIkit2&&(s=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-nestable",["uikit"],function(){return s||t(UIkit2)})}(function(t){"use strict";var s,e="ontouchstart"in window||"MSGesture"in window||window.PointerEvent,i=t.$html,l=[],a=t.$win,n=e?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",o=e?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",h=e?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup",r=e?"MSGesture"in window||window.PointerEvent?"pointercancel":"touchcancel":"mouseup";return t.component("nestable",{defaults:{listBaseClass:"uk-nestable",listClass:"uk-nestable-list",listItemClass:"uk-nestable-item",dragClass:"uk-nestable-dragged",movingClass:"uk-nestable-moving",noChildrenClass:"uk-nestable-nochildren",emptyClass:"uk-nestable-empty",handleClass:"",collapsedClass:"uk-collapsed",placeholderClass:"uk-nestable-placeholder",noDragClass:"uk-nestable-nodrag",group:!1,maxDepth:10,threshold:20,idlethreshold:10},boot:function(){t.$html.on("mousemove touchmove",function(){if(s){var e=s.offset().top;e<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/2)):e+s.height()>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/2))}}),t.ready(function(s){t.$("[data-uk-nestable]",s).each(function(){var s=t.$(this);s.data("nestable")||t.nestable(s,t.Utils.options(s.attr("data-uk-nestable")))})})},init:function(){var i=this;Object.keys(this.options).forEach(function(t){-1!=String(t).indexOf("Class")&&(i.options["_"+t]="."+i.options[t])}),this.find(this.options._listItemClass).find(">ul").addClass(this.options.listClass),this.checkEmptyList(),this.reset(),this.element.data("nestable-group",this.options.group||t.Utils.uid("nestable-group")),this.find(this.options._listItemClass).each(function(){i.setParent(t.$(this))}),this.on("click","[data-nestable-action]",function(s){if(!i.dragEl&&(e||0===s.button)){s.preventDefault();var l=t.$(s.currentTarget),a=l.data("nestableAction"),n=l.closest(i.options._listItemClass);"collapse"===a&&i.collapseItem(n),"expand"===a&&i.expandItem(n),"toggle"===a&&i.toggleItem(n)}});var l=function(s){var l=t.$(s.target),a=l.is("a[href]")?l:l.parents("a[href]");s.target!==i.element[0]&&(l.is(i.options._noDragClass)||l.closest(i.options._noDragClass).length||l.is("[data-nestable-action]")||l.closest("[data-nestable-action]").length||(i.options.handleClass&&!l.hasClass(i.options.handleClass)&&i.options.handleClass&&(l=l.closest(i.options._handleClass)),!l.length||i.dragEl||!e&&0!==s.button||e&&s.touches&&1!==s.touches.length||(s.originalEvent&&s.originalEvent.touches&&(s=evt.originalEvent.touches[0]),i.delayMove=function(t){a=!1,t.preventDefault(),i.dragStart(s),i.trigger("start.uk.nestable",[i]),i.delayMove=!1},i.delayMove.x=parseInt(s.pageX,10),i.delayMove.y=parseInt(s.pageY,10),i.delayMove.threshold=i.options.idlethreshold,a.length&&"touchend"==h&&i.one(h,function(){a&&a.attr("href").trim()&&(location.href=a.attr("href"))}),s.preventDefault())))},d=function(t){t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i.delayMove&&(Math.abs(t.pageX-i.delayMove.x)>i.delayMove.threshold||Math.abs(t.pageY-i.delayMove.y)>i.delayMove.threshold)&&(window.getSelection().toString()?i.delayMove=!1:i.delayMove(t)),i.dragEl&&(t.preventDefault(),i.dragMove(t),i.trigger("move.uk.nestable",[i]))},p=function(t){i.dragEl&&(t.preventDefault(),i.dragStop(e&&t.touches?t.touches[0]:t)),s=!1,i.delayMove=!1};e?(this.element[0].addEventListener(n,l,!1),window.addEventListener(o,d,!1),window.addEventListener(h,p,!1),window.addEventListener(r,p,!1)):(this.on(n,l),a.on(o,d),a.on(h,p))},serialize:function(){var s,e=0,i=this,l=function(s,e){var a=[],n=s.children(i.options._listItemClass);return n.each(function(){for(var s,n,o,h=t.$(this),r={},d=h.children(i.options._listClass),p=0;p<h[0].attributes.length;p++)s=h[0].attributes[p],0===s.name.indexOf("data-")&&(n=s.name.substr(5),o=t.Utils.str2json(s.value),r[n]=o||"false"==s.value||"0"==s.value?o:s.value);d.length&&(r.children=l(d,e+1)),a.push(r)}),a};return s=l(i.element,e)},list:function(s){var e=[],i=this,l=0,a=function(i,l,n){var o=i.children(s._listItemClass);o.each(function(i){var o=t.$(this),h=t.$.extend({parent_id:n?n:null,depth:l,order:i},o.data()),r=o.children(s._listClass);e.push(h),r.length&&a(r,l+1,o.data(s.idProperty||"id"))})};return s=t.$.extend({},i.options,s),a(i.element,l),e},reset:function(){this.mouse={offsetX:0,offsetY:0,startX:0,startY:0,lastX:0,lastY:0,nowX:0,nowY:0,distX:0,distY:0,dirAx:0,dirX:0,dirY:0,lastDirX:0,lastDirY:0,distAxX:0,distAxY:0},this.moving=!1,this.dragEl=null,this.dragRootEl=null,this.dragDepth=0,this.hasNewRoot=!1,this.pointEl=null;for(var t=0;t<l.length;t++)this.checkEmptyList(l[t]);l=[]},toggleItem:function(t){this[t.hasClass(this.options.collapsedClass)?"expandItem":"collapseItem"](t)},expandItem:function(t){t.removeClass(this.options.collapsedClass)},collapseItem:function(t){var s=t.children(this.options._listClass);s.length&&t.addClass(this.options.collapsedClass)},expandAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.expandItem(t.$(this))})},collapseAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.collapseItem(t.$(this))})},setParent:function(t){t.children(this.options._listClass).length&&t.addClass("uk-parent")},unsetParent:function(t){t.removeClass("uk-parent "+this.options.collapsedClass),t.children(this.options._listClass).remove()},dragStart:function(e){var l=this.mouse,a=t.$(e.target),n=a.closest(this.options._listItemClass),o=n.offset();this.placeEl=n,l.offsetX=e.pageX-o.left,l.offsetY=e.pageY-o.top,l.startX=l.lastX=o.left,l.startY=l.lastY=o.top,this.dragRootEl=this.element,this.dragEl=t.$("<ul></ul>").addClass(this.options.listClass+" "+this.options.dragClass).append(n.clone()),this.dragEl.css("width",n.width()),this.placeEl.addClass(this.options.placeholderClass),s=this.dragEl,this.tmpDragOnSiblings=[n[0].previousSibling,n[0].nextSibling],t.$body.append(this.dragEl),this.dragEl.css({left:o.left,top:o.top});var h,r,d=this.dragEl.find(this.options._listItemClass);for(h=0;h<d.length;h++)r=t.$(d[h]).parents(this.options._listClass+","+this.options._listBaseClass).length,r>this.dragDepth&&(this.dragDepth=r);i.addClass(this.options.movingClass)},dragStop:function(){var s=t.$(this.placeEl),e=this.placeEl.parents(this.options._listBaseClass+":first");this.placeEl.removeClass(this.options.placeholderClass),this.dragEl.remove(),this.element[0]!==e[0]?(e.trigger("change.uk.nestable",[e.data("nestable"),s,"added"]),this.element.trigger("change.uk.nestable",[this,s,"removed"])):this.element.trigger("change.uk.nestable",[this,s,"moved"]),this.trigger("stop.uk.nestable",[this,s]),this.reset(),i.removeClass(this.options.movingClass)},dragMove:function(s){var e,i,a,n,o,h=this.options,r=this.mouse,d=this.dragRootEl?this.dragRootEl.data("nestable").options.maxDepth:h.maxDepth;this.dragEl.css({left:s.pageX-r.offsetX,top:s.pageY-r.offsetY}),r.lastX=r.nowX,r.lastY=r.nowY,r.nowX=s.pageX,r.nowY=s.pageY,r.distX=r.nowX-r.lastX,r.distY=r.nowY-r.lastY,r.lastDirX=r.dirX,r.lastDirY=r.dirY,r.dirX=0===r.distX?0:r.distX>0?1:-1,r.dirY=0===r.distY?0:r.distY>0?1:-1;var p=Math.abs(r.distX)>Math.abs(r.distY)?1:0;if(!r.moving)return r.dirAx=p,r.moving=!0,void 0;if(r.dirAx!==p?(r.distAxX=0,r.distAxY=0):(r.distAxX+=Math.abs(r.distX),0!==r.dirX&&r.dirX!==r.lastDirX&&(r.distAxX=0),r.distAxY+=Math.abs(r.distY),0!==r.dirY&&r.dirY!==r.lastDirY&&(r.distAxY=0)),r.dirAx=p,r.dirAx&&r.distAxX>=h.threshold&&(r.distAxX=0,a=this.placeEl.prev("li"),r.distX>0&&a.length&&!a.hasClass(h.collapsedClass)&&!a.hasClass(h.noChildrenClass)&&(e=a.find(h._listClass).last(),o=this.placeEl.parents(h._listClass+","+h._listBaseClass).length,o+this.dragDepth<=d&&(e.length?(e=a.children(h._listClass).last(),e.append(this.placeEl)):(e=t.$("<ul/>").addClass(h.listClass),e.append(this.placeEl),a.append(e),this.setParent(a)))),r.distX<0&&(n=this.placeEl.next(h._listItemClass),!n.length))){var c=this.placeEl.closest([h._listBaseClass,h._listClass].join(",")),u=c.closest(h._listItemClass);u.length&&(u.after(this.placeEl),c.children().length||this.unsetParent(u))}var g=!1,f=s.pageX-(window.pageXOffset||document.scrollLeft||0),m=s.pageY-(window.pageYOffset||document.documentElement.scrollTop);if(this.pointEl=t.$(document.elementFromPoint(f,m)),h.handleClass&&this.pointEl.hasClass(h.handleClass))this.pointEl=this.pointEl.closest(h._listItemClass);else{var v=this.pointEl.closest(h._listItemClass);v.length&&(this.pointEl=v)}if(!this.placeEl.find(this.pointEl).length){if(this.pointEl.data("nestable")&&!this.pointEl.children().length)g=!0,this.checkEmptyList(this.pointEl);else if(!this.pointEl.length||!this.pointEl.hasClass(h.listItemClass))return;var C=this.element,E=this.pointEl.closest(this.options._listBaseClass),w=C[0]!=E[0];if(!r.dirAx||w||g){if(w&&h.group!==E.data("nestable-group"))return;if(l.push(C),o=this.dragDepth-1+this.pointEl.parents(h._listClass+","+h._listBaseClass).length,o>d)return;var b=s.pageY<this.pointEl.offset().top+this.pointEl.height()/2;i=this.placeEl.parent(),g?this.pointEl.append(this.placeEl):b?this.pointEl.before(this.placeEl):this.pointEl.after(this.placeEl),i.children().length||i.data("nestable")||this.unsetParent(i.parent()),this.checkEmptyList(this.dragRootEl),this.checkEmptyList(C),w&&(this.dragRootEl=E,this.hasNewRoot=this.element[0]!==this.dragRootEl[0])}}},checkEmptyList:function(s){s=s?t.$(s):this.element,this.options.emptyClass&&s[s.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.nestable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-sortable",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";function e(e){e=t.$(e);do{if(e.data("sortable"))return e;e=t.$(e).parent()}while(e.length);return e}function o(t,e){var o=t.parentNode;if(e.parentNode!=o)return!1;for(var n=t.previousSibling;n&&9!==n.nodeType;){if(n===e)return!0;n=n.previousSibling}return!1}function n(t,e){var o=e;if(o==t)return null;for(;o;){if(o.parentNode===t)return o;if(o=o.parentNode,!o||!o.ownerDocument||11===o.nodeType)break}return null}function a(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}var s,r,i,l,d,h,u,p,c,f,g,m="ontouchstart"in window||"MSGesture"in window||window.DocumentTouch&&document instanceof DocumentTouch,v=m?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",b=m?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",C=m?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup";return t.component("sortable",{defaults:{animation:150,threshold:10,childClass:"uk-sortable-item",placeholderClass:"uk-sortable-placeholder",overClass:"uk-sortable-over",draggingClass:"uk-sortable-dragged",dragMovingClass:"uk-sortable-moving",baseClass:"uk-sortable",noDragClass:"uk-sortable-nodrag",emptyClass:"uk-sortable-empty",dragCustomClass:"",handleClass:!1,group:!1,stop:function(){},start:function(){},change:function(){}},boot:function(){t.ready(function(e){t.$("[data-uk-sortable]",e).each(function(){var e=t.$(this);e.data("sortable")||t.sortable(e,t.Utils.options(e.attr("data-uk-sortable")))})}),t.$html.on(b,function(e){if(u){var o=e.originalEvent.targetTouches?e.originalEvent.targetTouches[0]:e;(Math.abs(o.pageX-u.pos.x)>u.threshold||Math.abs(o.pageY-u.pos.y)>u.threshold)&&u.apply(o)}if(s){d||(d=!0,s.show(),s.$current.addClass(s.$sortable.options.placeholderClass),s.$sortable.element.children().addClass(s.$sortable.options.childClass),t.$html.addClass(s.$sortable.options.dragMovingClass));var n=s.data("mouse-offset"),a=e.originalEvent.touches&&e.originalEvent.touches[0]||e.originalEvent,r=parseInt(a.pageX,10)+n.left,i=parseInt(a.pageY,10)+n.top;if(s.css({left:r,top:i}),i+s.height()/3>document.body.offsetHeight)return;i<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/3)):i+s.height()/3>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/3))}}),t.$html.on(C,function(t){if(u=h=!1,!r||!s)return r=s=null,void 0;var o=e(r),n=s.$sortable,a={type:t.type};o[0]&&n.dragDrop(a,n.element),n.dragEnd(a,n.element)})},init:function(){function e(){m&&g.touches&&g.touches.length?h.addEventListener(b,y,!1):(h.addEventListener("mouseover",$,!1),h.addEventListener("mouseout",w,!1))}function o(){m&&g.touches&&g.touches.length?h.removeEventListener(b,y,!1):(h.removeEventListener("mouseover",$,!1),h.removeEventListener("mouseout",w,!1))}function s(t){r&&d.dragMove(t,d)}function l(e){return function(o){var a,s,r;if(g=o,o){if(a=o.touches&&o.touches[0]||o,s=a.target||o.target,m&&document.elementFromPoint){var i=document.elementFromPoint(a.pageX-document.body.scrollLeft,a.pageY-document.body.scrollTop);i&&(s=i)}f=t.$(s)}t.$(s).hasClass("."+d.options.childClass)?e.apply(s,[o]):s!==h&&(r=n(h,s),r&&e.apply(r,[o]))}}var d=this,h=this.element[0];p=[],this.checkEmptyList(),this.element.data("sortable-group",this.options.group?this.options.group:t.Utils.uid("sortable-group"));var u=l(function(e){if(!e.data||!e.data.sortable){var o=t.$(e.target),n=o.is("a[href]")?o:o.parents("a[href]");if(!o.is(":input")){if(d.options.handleClass){var a=o.hasClass(d.options.handleClass)?o:o.closest("."+d.options.handleClass,d.element);if(!a.length)return}return e.preventDefault(),n.length&&n.one("click",function(t){t.preventDefault()}).one(C,function(){c||(n.trigger("click"),m&&n.attr("href").trim()&&(location.href=n.attr("href")))}),e.data=e.data||{},e.data.sortable=h,d.dragStart(e,this)}}}),$=l(t.Utils.debounce(function(t){return d.dragEnter(t,this)}),40),w=l(function(){var e=d.dragenterData(this);d.dragenterData(this,e-1),d.dragenterData(this)||(t.$(this).removeClass(d.options.overClass),d.dragenterData(this,!1))}),y=l(function(t){return r&&r!==this&&i!==this?(d.element.children().removeClass(d.options.overClass),i=this,d.moveElementNextTo(r,this),a(t)):!0});this.addDragHandlers=e,this.removeDragHandlers=o,window.addEventListener(b,s,!1),h.addEventListener(v,u,!1)},dragStart:function(e,o){c=!1,d=!1,l=!1;var n=this,a=t.$(e.target);if((m||2!=e.button)&&!a.is("."+n.options.noDragClass)){var i=a.closest("."+n.options.noDragClass);if(!(i.length&&this.element.find(i[0]).length||a.is(":input"))){r=o,s&&s.remove();var h=t.$(r),p=h.offset(),f=e.touches&&e.touches[0]||e;u={pos:{x:f.pageX,y:f.pageY},threshold:n.options.handleClass?1:n.options.threshold,apply:function(){s=t.$('<div class="'+[n.options.draggingClass,n.options.dragCustomClass].join(" ")+'"></div>').css({display:"none",top:p.top,left:p.left,width:h.width(),height:h.height(),padding:h.css("padding")}).data({"mouse-offset":{left:p.left-parseInt(f.pageX,10),top:p.top-parseInt(f.pageY,10)},origin:n.element,index:h.index()}).append(h.html()).appendTo("body"),s.$current=h,s.$sortable=n,h.data({"start-list":h.parent(),"start-index":h.index(),"sortable-group":n.options.group}),n.addDragHandlers(),n.options.start(this,r),n.trigger("start.uk.sortable",[n,r,s]),c=!0,u=!1}}}}},dragMove:function(e){f=t.$(document.elementFromPoint(e.pageX-(document.body.scrollLeft||document.scrollLeft||0),e.pageY-(document.body.scrollTop||document.documentElement.scrollTop||0)));var o,n=f.closest("."+this.options.baseClass),a=n.data("sortable-group"),s=t.$(r),i=s.parent(),l=s.data("sortable-group");n[0]!==i[0]&&void 0!==l&&a===l&&(n.data("sortable").addDragHandlers(),p.push(n),n.children().addClass(this.options.childClass),n.children().length>0?(o=f.closest("."+this.options.childClass),o.length?o.before(s):n.append(s)):f.append(s),t.$doc.trigger("mouseover")),this.checkEmptyList(),this.checkEmptyList(i)},dragEnter:function(e,o){if(!r||r===o)return!0;var n=this.dragenterData(o);if(this.dragenterData(o,n+1),0===n){var a=t.$(o).parent(),s=t.$(r).data("start-list");if(a[0]!==s[0]){var i=a.data("sortable-group"),l=t.$(r).data("sortable-group");if((i||l)&&i!=l)return!1}t.$(o).addClass(this.options.overClass),this.moveElementNextTo(r,o)}return!1},dragEnd:function(e,o){var n=this;r&&(this.options.stop(o),this.trigger("stop.uk.sortable",[this])),r=null,i=null,p.push(this.element),p.forEach(function(e){t.$(e).children().each(function(){1===this.nodeType&&(t.$(this).removeClass(n.options.overClass).removeClass(n.options.placeholderClass).removeClass(n.options.childClass),n.dragenterData(this,!1))})}),p=[],t.$html.removeClass(this.options.dragMovingClass),this.removeDragHandlers(),s&&(s.remove(),s=null)},dragDrop:function(t){"drop"===t.type&&(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()),this.triggerChangeEvents()},triggerChangeEvents:function(){if(r){var e=t.$(r),o=s.data("origin"),n=e.closest("."+this.options.baseClass),a=[],i=t.$(r);o[0]===n[0]&&s.data("index")!=e.index()?a.push({sortable:this,mode:"moved"}):o[0]!=n[0]&&a.push({sortable:t.$(n).data("sortable"),mode:"added"},{sortable:t.$(o).data("sortable"),mode:"removed"}),a.forEach(function(t){t.sortable&&t.sortable.element.trigger("change.uk.sortable",[t.sortable,i,t.mode])})}},dragenterData:function(e,o){return e=t.$(e),1==arguments.length?parseInt(e.data("child-dragenter"),10)||0:(o?e.data("child-dragenter",Math.max(0,o)):e.removeData("child-dragenter"),void 0)},moveElementNextTo:function(e,n){l=!0;var a=this,s=t.$(e).parent().css("min-height",""),r=o(e,n)?n:n.nextSibling,i=s.children(),d=i.length;return a.options.animation?(s.css("min-height",s.height()),i.stop().each(function(){var e=t.$(this),o=e.position();o.width=e.width(),e.data("offset-before",o)}),n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),i=s.children().each(function(){var e=t.$(this);e.data("offset-after",e.position())}).each(function(){var e=t.$(this),o=e.data("offset-before");e.css({position:"absolute",top:o.top,left:o.left,minWidth:o.width})}),i.each(function(){var e=t.$(this),o=(e.data("offset-before"),e.data("offset-after"));e.css("pointer-events","none").width(),setTimeout(function(){e.animate({top:o.top,left:o.left},a.options.animation,function(){e.css({position:"",top:"",left:"",minWidth:"","pointer-events":""}).removeClass(a.options.overClass).removeData("child-dragenter"),d--,d||(s.css("min-height",""),t.Utils.checkDisplay(a.element.parent()))})},0)}),void 0):(n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),void 0)},serialize:function(){var e,o,n=[];return this.element.children().each(function(a,s){e={};for(var r,i,l=0;l<s.attributes.length;l++)o=s.attributes[l],0===o.name.indexOf("data-")&&(r=o.name.substr(5),i=t.Utils.str2json(o.value),e[r]=i||"false"==o.value||"0"==o.value?i:o.value);n.push(e)}),n},checkEmptyList:function(e){e=e?t.$(e):this.element,this.options.emptyClass&&e[e.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.sortable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2&&(t=e(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-upload",["uikit"],function(){return t||e(UIkit2)})}(function(e){"use strict";function t(o,a){function r(t,n){var o=new FormData,a=new XMLHttpRequest;if(n.before(n,t)!==!1){for(var r,i=0;r=t[i];i++)o.append(n.param,r);for(var l in n.params)o.append(l,n.params[l]);a.upload.addEventListener("progress",function(e){var t=e.loaded/e.total*100;n.progress(t,e)},!1),a.addEventListener("loadstart",function(e){n.loadstart(e)},!1),a.addEventListener("load",function(e){n.load(e)},!1),a.addEventListener("loadend",function(e){n.loadend(e)},!1),a.addEventListener("error",function(e){n.error(e)},!1),a.addEventListener("abort",function(e){n.abort(e)},!1),a.open(n.method,n.action,!0),"json"==n.type&&a.setRequestHeader("Accept","application/json");for(var s in n.headers)a.setRequestHeader(s,n.headers[s]);a.onreadystatechange=function(){if(n.readystatechange(a),4==a.readyState){var t=a.responseText;if("json"==n.type)try{t=e.$.parseJSON(t)}catch(o){t=!1}n.complete(t,a)}},n.beforeSend(a),a.send(o)}}if(!e.support.ajaxupload)return this;if(a=e.$.extend({},t.defaults,a),o.length){if("*.*"!==a.allow)for(var i,l=0;i=o[l];l++)if(!n(a.allow,i.name))return"string"==typeof a.notallowed?alert(a.notallowed):a.notallowed(i,a),void 0;var s=a.complete;if(a.single){var d=o.length,f=0,p=!0;a.beforeAll(o),a.complete=function(e,t){f+=1,s(e,t),a.filelimit&&f>=a.filelimit&&(p=!1),p&&d>f?r([o[f]],a):a.allcomplete(e,t)},r([o[0]],a)}else a.complete=function(e,t){s(e,t),a.allcomplete(e,t)},r(o,a)}}function n(e,t){var n="^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$";return n="^"+n+"$",null!==t.match(new RegExp(n,"i"))}return e.component("uploadSelect",{init:function(){var e=this;this.on("change",function(){t(e.element[0].files,e.options);var n=e.element.clone(!0).data("uploadSelect",e);e.element.replaceWith(n),e.element=n})}}),e.component("uploadDrop",{defaults:{dragoverClass:"uk-dragover"},init:function(){var e=this,n=!1;this.on("drop",function(n){n.originalEvent.dataTransfer&&n.originalEvent.dataTransfer.files&&(n.stopPropagation(),n.preventDefault(),e.element.removeClass(e.options.dragoverClass),e.element.trigger("dropped.uk.upload",[n.originalEvent.dataTransfer.files]),t(n.originalEvent.dataTransfer.files,e.options))}).on("dragenter",function(e){e.stopPropagation(),e.preventDefault()}).on("dragover",function(t){t.stopPropagation(),t.preventDefault(),n||(e.element.addClass(e.options.dragoverClass),n=!0)}).on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),e.element.removeClass(e.options.dragoverClass),n=!1})}}),e.support.ajaxupload=function(){function e(){var e=document.createElement("INPUT");return e.type="file","files"in e}function t(){var e=new XMLHttpRequest;return!!(e&&"upload"in e&&"onprogress"in e.upload)}function n(){return!!window.FormData}return e()&&t()&&n()}(),t.defaults={action:"",single:!0,method:"POST",param:"files[]",params:{},allow:"*.*",type:"text",filelimit:!1,headers:{},before:function(){},beforeSend:function(){},beforeAll:function(){},loadstart:function(){},load:function(){},loadend:function(){},error:function(){},abort:function(){},progress:function(){},complete:function(){},allcomplete:function(){},readystatechange:function(){},notallowed:function(e,t){alert("Only the following file types are allowed: "+t.allow)}},e.Utils.xhrupload=t,t});

widgetkit/wk-scripts-025c0377.js000064400000040600152177723720012210 0ustar00!function(t){"use strict";function e(t,i,r){this.extend(e,google.maps.OverlayView),this.map_=t,this.markers_=[],this.clusters_=[],this.sizes=[53,56,66,78,90],this.styles_=[],this.ready_=!1;var s=r||{};this.gridSize_=s.gridSize||60,this.minClusterSize_=s.minimumClusterSize||2,this.maxZoom_=s.maxZoom||null,this.styles_=s.styles||[],this.imagePath_=s.imagePath||this.MARKER_CLUSTER_IMAGE_PATH_,this.imageExtension_=s.imageExtension||this.MARKER_CLUSTER_IMAGE_EXTENSION_,this.zoomOnClick_=!0,void 0!=s.zoomOnClick&&(this.zoomOnClick_=s.zoomOnClick),this.averageCenter_=!1,void 0!=s.averageCenter&&(this.averageCenter_=s.averageCenter),this.setupStyles_(),this.setMap(t),this.prevZoom_=this.map_.getZoom();var o=this;google.maps.event.addListener(this.map_,"zoom_changed",function(){var t=o.map_.getZoom();o.prevZoom_!=t&&(o.prevZoom_=t,o.resetViewport())}),google.maps.event.addListener(this.map_,"idle",function(){o.redraw()}),i&&i.length&&this.addMarkers(i,!1)}function i(t){this.markerClusterer_=t,this.map_=t.getMap(),this.gridSize_=t.getGridSize(),this.minClusterSize_=t.getMinClusterSize(),this.averageCenter_=t.isAverageCenter(),this.center_=null,this.markers_=[],this.bounds_=null,this.clusterIcon_=new r(this,t.getStyles(),t.getGridSize())}function r(t,e,i){t.getMarkerClusterer().extend(r,google.maps.OverlayView),this.styles_=e,this.padding_=i||0,this.cluster_=t,this.center_=null,this.map_=t.getMap(),this.div_=null,this.sums_=null,this.visible_=!1,this.setMap(this.map_)}var s,o=function(){return s||(s=t.Deferred(),window.wkInitializeGoogleMapsApi=s.resolve,t.getScript("//maps.google.com/maps/api/js?callback=wkInitializeGoogleMapsApi&key="+(window.GOOGLE_MAPS_API_KEY||""))),s.promise()};t(function(){t('script[type="widgetkit/map"]').each(function(){var i=t(this),r=t("<div data-uk-check-display data-wk-check-display></div>").attr(i.data()),s=JSON.parse(this.innerHTML);i.replaceWith(r),o().then(function(){var i,o,n,a,h,p=s.markers,l=[],u=window.MapsMarkerHelper||!1;Object.keys(s).forEach(function(t){isNaN(s[t])||(s[t]=Number(s[t]))}),n=p.length?new google.maps.LatLng(p[0].lat,p[0].lng):new google.maps.LatLng((-34.397),150.644),o={zoom:parseInt(s.zoom,10),center:n,streetViewControl:s.mapctrl,navigationControl:s.mapctrl,scrollwheel:s.zoomwheel,draggable:s.draggable,mapTypeId:google.maps.MapTypeId[s.maptypeid.toUpperCase()],mapTypeControl:s.maptypecontrol,zoomControl:s.zoomcontrol,disableDefaultUI:s.disabledefaultui,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,mapTypeIds:["styled_map",google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE]},zoomControlOptions:{style:s.mapctrl?google.maps.ZoomControlStyle.DEFAULT:google.maps.ZoomControlStyle.SMALL}},i=new google.maps.Map(r[0],o),r.data("googlemap",i).on("display.uk.check",function(){google.maps.event.trigger(i,"resize")}),p.length&&s.directions&&(a=t('<a target="_blank"></a>').css({padding:"5px 1px","text-decoration":"none"}),h=t("<div></div>").css({"-webkit-background-clip":"padding-box",padding:"1px 4px",backgroundColor:"white",borderColor:"rgba(0, 0, 0, 0.14902)",borderStyle:"solid",borderWidth:"1px",cursor:"pointer",textAlign:"center",fontFamily:"Roboto, Arial, sans-serif",fontWeight:500,boxShadow:"rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px",index:1}),h.html('<span style="color:#000;"><span style="color:blue;">&#8627;</span>'+(s.directionsText||"Get Directions")+"</span>"),a.append(h),a.setHref=function(t,e){this.attr("href","http://maps.google.com/?daddr="+t+","+e)},i.controls[google.maps.ControlPosition.TOP_RIGHT].push(a[0])),p.length&&s.marker&&(p.forEach(function(t,e){var r,o=new google.maps.Marker({position:new google.maps.LatLng(t.lat,t.lng),map:i,title:t.title});(u&&t.icon||s.marker_icon)&&u.setIcon(o,t.icon||s.marker_icon),l.push(o),s.marker>=1&&(r=new google.maps.InfoWindow({content:t.content,maxWidth:s.popup_max_width?parseInt(s.popup_max_width,10):300}),google.maps.event.addListener(o,"click",function(){s.marker>=2&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())}),0===e&&(3===s.marker&&t.content&&r.open(i,o),a&&(a.setHref(t.lat,t.lng),a.show())))}),i.panTo(new google.maps.LatLng(p[0].lat,p[0].lng))),s.markercluster&&(this.markerCluster=new e(i,l));var g=new google.maps.StyledMapType([{featureType:"all",elementType:"all",stylers:[{invert_lightness:s.styler_invert_lightness},{hue:s.styler_hue},{saturation:s.styler_saturation},{lightness:s.styler_lightness},{gamma:s.styler_gamma}]}],{name:"Styled"});i.mapTypes.set("styled_map",g),"ROADMAP"==s.maptypeid.toUpperCase()&&i.setMapTypeId("styled_map")})})}),e.prototype.MARKER_CLUSTER_IMAGE_PATH_="https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m",e.prototype.MARKER_CLUSTER_IMAGE_EXTENSION_="png",e.prototype.extend=function(t,e){return function(t){for(var e in t.prototype)this.prototype[e]=t.prototype[e];return this}.apply(t,[e])},e.prototype.onAdd=function(){this.setReady_(!0)},e.prototype.draw=function(){},e.prototype.setupStyles_=function(){if(!this.styles_.length)for(var t,e=0;t=this.sizes[e];e++)this.styles_.push({url:this.imagePath_+(e+1)+"."+this.imageExtension_,height:t,width:t})},e.prototype.fitMapToMarkers=function(){for(var t,e=this.getMarkers(),i=new google.maps.LatLngBounds,r=0;t=e[r];r++)i.extend(t.getPosition());this.map_.fitBounds(i)},e.prototype.setStyles=function(t){this.styles_=t},e.prototype.getStyles=function(){return this.styles_},e.prototype.isZoomOnClick=function(){return this.zoomOnClick_},e.prototype.isAverageCenter=function(){return this.averageCenter_},e.prototype.getMarkers=function(){return this.markers_},e.prototype.getTotalMarkers=function(){return this.markers_.length},e.prototype.setMaxZoom=function(t){this.maxZoom_=t},e.prototype.getMaxZoom=function(){return this.maxZoom_},e.prototype.calculator_=function(t,e){for(var i=0,r=t.length,s=r;0!==s;)s=parseInt(s/10,10),i++;return i=Math.min(i,e),{text:r,index:i}},e.prototype.setCalculator=function(t){this.calculator_=t},e.prototype.getCalculator=function(){return this.calculator_},e.prototype.addMarkers=function(t,e){for(var i,r=0;i=t[r];r++)this.pushMarkerTo_(i);e||this.redraw()},e.prototype.pushMarkerTo_=function(t){if(t.isAdded=!1,t.draggable){var e=this;google.maps.event.addListener(t,"dragend",function(){t.isAdded=!1,e.repaint()})}this.markers_.push(t)},e.prototype.addMarker=function(t,e){this.pushMarkerTo_(t),e||this.redraw()},e.prototype.removeMarker_=function(t){var e=-1;if(this.markers_.indexOf)e=this.markers_.indexOf(t);else for(var i,r=0;i=this.markers_[r];r++)if(i==t){e=r;break}return e!=-1&&(t.setMap(null),this.markers_.splice(e,1),!0)},e.prototype.removeMarker=function(t,e){var i=this.removeMarker_(t);return!(e||!i)&&(this.resetViewport(),this.redraw(),!0)},e.prototype.removeMarkers=function(t,e){for(var i,r=!1,s=0;i=t[s];s++){var o=this.removeMarker_(i);r=r||o}if(!e&&r)return this.resetViewport(),this.redraw(),!0},e.prototype.setReady_=function(t){this.ready_||(this.ready_=t,this.createClusters_())},e.prototype.getTotalClusters=function(){return this.clusters_.length},e.prototype.getMap=function(){return this.map_},e.prototype.setMap=function(t){this.map_=t},e.prototype.getGridSize=function(){return this.gridSize_},e.prototype.setGridSize=function(t){this.gridSize_=t},e.prototype.getMinClusterSize=function(){return this.minClusterSize_},e.prototype.setMinClusterSize=function(t){this.minClusterSize_=t},e.prototype.getExtendedBounds=function(t){var e=this.getProjection(),i=new google.maps.LatLng(t.getNorthEast().lat(),t.getNorthEast().lng()),r=new google.maps.LatLng(t.getSouthWest().lat(),t.getSouthWest().lng()),s=e.fromLatLngToDivPixel(i);s.x+=this.gridSize_,s.y-=this.gridSize_;var o=e.fromLatLngToDivPixel(r);o.x-=this.gridSize_,o.y+=this.gridSize_;var n=e.fromDivPixelToLatLng(s),a=e.fromDivPixelToLatLng(o);return t.extend(n),t.extend(a),t},e.prototype.isMarkerInBounds_=function(t,e){return e.contains(t.getPosition())},e.prototype.clearMarkers=function(){this.resetViewport(!0),this.markers_=[]},e.prototype.resetViewport=function(t){for(var e,i=0;e=this.clusters_[i];i++)e.remove();for(var r,i=0;r=this.markers_[i];i++)r.isAdded=!1,t&&r.setMap(null);this.clusters_=[]},e.prototype.repaint=function(){var t=this.clusters_.slice();this.clusters_.length=0,this.resetViewport(),this.redraw(),window.setTimeout(function(){for(var e,i=0;e=t[i];i++)e.remove()},0)},e.prototype.redraw=function(){this.createClusters_()},e.prototype.distanceBetweenPoints_=function(t,e){if(!t||!e)return 0;var i=6371,r=(e.lat()-t.lat())*Math.PI/180,s=(e.lng()-t.lng())*Math.PI/180,o=Math.sin(r/2)*Math.sin(r/2)+Math.cos(t.lat()*Math.PI/180)*Math.cos(e.lat()*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2),n=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)),a=i*n;return a},e.prototype.addToClosestCluster_=function(t){for(var e,r=4e4,s=null,o=(t.getPosition(),0);e=this.clusters_[o];o++){var n=e.getCenter();if(n){var a=this.distanceBetweenPoints_(n,t.getPosition());a<r&&(r=a,s=e)}}if(s&&s.isMarkerInClusterBounds(t))s.addMarker(t);else{var e=new i(this);e.addMarker(t),this.clusters_.push(e)}},e.prototype.createClusters_=function(){if(this.ready_)for(var t,e=new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),this.map_.getBounds().getNorthEast()),i=this.getExtendedBounds(e),r=0;t=this.markers_[r];r++)!t.isAdded&&this.isMarkerInBounds_(t,i)&&this.addToClosestCluster_(t)},i.prototype.isMarkerAlreadyAdded=function(t){if(this.markers_.indexOf)return this.markers_.indexOf(t)!=-1;for(var e,i=0;e=this.markers_[i];i++)if(e==t)return!0;return!1},i.prototype.addMarker=function(t){if(this.isMarkerAlreadyAdded(t))return!1;if(this.center_){if(this.averageCenter_){var e=this.markers_.length+1,i=(this.center_.lat()*(e-1)+t.getPosition().lat())/e,r=(this.center_.lng()*(e-1)+t.getPosition().lng())/e;this.center_=new google.maps.LatLng(i,r),this.calculateBounds_()}}else this.center_=t.getPosition(),this.calculateBounds_();t.isAdded=!0,this.markers_.push(t);var s=this.markers_.length;if(s<this.minClusterSize_&&t.getMap()!=this.map_&&t.setMap(this.map_),s==this.minClusterSize_)for(var o=0;o<s;o++)this.markers_[o].setMap(null);return s>=this.minClusterSize_&&t.setMap(null),this.updateIcon(),!0},i.prototype.getMarkerClusterer=function(){return this.markerClusterer_},i.prototype.getBounds=function(){for(var t,e=new google.maps.LatLngBounds(this.center_,this.center_),i=this.getMarkers(),r=0;t=i[r];r++)e.extend(t.getPosition());return e},i.prototype.remove=function(){this.clusterIcon_.remove(),this.markers_.length=0,delete this.markers_},i.prototype.getSize=function(){return this.markers_.length},i.prototype.getMarkers=function(){return this.markers_},i.prototype.getCenter=function(){return this.center_},i.prototype.calculateBounds_=function(){var t=new google.maps.LatLngBounds(this.center_,this.center_);this.bounds_=this.markerClusterer_.getExtendedBounds(t)},i.prototype.isMarkerInClusterBounds=function(t){return this.bounds_.contains(t.getPosition())},i.prototype.getMap=function(){return this.map_},i.prototype.updateIcon=function(){var t=this.map_.getZoom(),e=this.markerClusterer_.getMaxZoom();if(e&&t>e)for(var i,r=0;i=this.markers_[r];r++)i.setMap(this.map_);else{if(this.markers_.length<this.minClusterSize_)return void this.clusterIcon_.hide();var s=this.markerClusterer_.getStyles().length,o=this.markerClusterer_.getCalculator()(this.markers_,s);this.clusterIcon_.setCenter(this.center_),this.clusterIcon_.setSums(o),this.clusterIcon_.show()}},r.prototype.triggerClusterClick=function(){var t=this.cluster_.getMarkerClusterer();google.maps.event.trigger(t,"clusterclick",this.cluster_),t.isZoomOnClick()&&this.map_.fitBounds(this.cluster_.getBounds())},r.prototype.onAdd=function(){if(this.div_=document.createElement("DIV"),this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.innerHTML=this.sums_.text}var e=this.getPanes();e.overlayMouseTarget.appendChild(this.div_);var i=this;google.maps.event.addDomListener(this.div_,"click",function(){i.triggerClusterClick()})},r.prototype.getPosFromLatLng_=function(t){var e=this.getProjection().fromLatLngToDivPixel(t);return e.x-=parseInt(this.width_/2,10),e.y-=parseInt(this.height_/2,10),e},r.prototype.draw=function(){if(this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.top=t.y+"px",this.div_.style.left=t.x+"px"}},r.prototype.hide=function(){this.div_&&(this.div_.style.display="none"),this.visible_=!1},r.prototype.show=function(){if(this.div_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(t),this.div_.style.display=""}this.visible_=!0},r.prototype.remove=function(){this.setMap(null)},r.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),this.div_.parentNode.removeChild(this.div_),this.div_=null)},r.prototype.setSums=function(t){this.sums_=t,this.text_=t.text,this.index_=t.index,this.div_&&(this.div_.innerHTML=t.text),this.useStyle()},r.prototype.useStyle=function(){var t=Math.max(0,this.sums_.index-1);t=Math.min(this.styles_.length-1,t);var e=this.styles_[t];this.url_=e.url,this.height_=e.height,this.width_=e.width,this.textColor_=e.textColor,this.anchor_=e.anchor,this.textSize_=e.textSize,this.backgroundPosition_=e.backgroundPosition},r.prototype.setCenter=function(t){this.center_=t},r.prototype.createCss=function(t){var e=[];e.push("background-image:url("+this.url_+");");var i=this.backgroundPosition_?this.backgroundPosition_:"0 0";e.push("background-position:"+i+";"),"object"==typeof this.anchor_?("number"==typeof this.anchor_[0]&&this.anchor_[0]>0&&this.anchor_[0]<this.height_?e.push("height:"+(this.height_-this.anchor_[0])+"px; padding-top:"+this.anchor_[0]+"px;"):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px;"),"number"==typeof this.anchor_[1]&&this.anchor_[1]>0&&this.anchor_[1]<this.width_?e.push("width:"+(this.width_-this.anchor_[1])+"px; padding-left:"+this.anchor_[1]+"px;"):e.push("width:"+this.width_+"px; text-align:center;")):e.push("height:"+this.height_+"px; line-height:"+this.height_+"px; width:"+this.width_+"px; text-align:center;");var r=this.textColor_?this.textColor_:"black",s=this.textSize_?this.textSize_:11;return e.push("cursor:pointer; top:"+t.y+"px; left:"+t.x+"px; color:"+r+"; position:absolute; font-size:"+s+"px; font-family:Arial,sans-serif; font-weight:bold"),e.join("")}}(jQuery);

var MapsMarkerHelper={colors:{black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]},getSVG:function(e,s){return e=this.parseColor(e||"#E65857"),s=this.parseColor(s||"rgba(255,255,255,0)"),'<?xml version="1.0" encoding="utf-8"?>            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"             width="22px" height="34px" viewBox="0 0 22 34" enable-background="new 0 0 22 34" xml:space="preserve">             <circle id="circle" fill="'+s+'" cx="11" cy="11" r="6.5"/>            <path id="path" d="M11,0C4.94,0,0,4.876,0,10.9C0,19.458,11,34,11,34s11-14.581,11-23.1C22,4.876,17.061,0,11,0z M11,16.5             c-3.038,0-5.5-2.463-5.5-5.5c0-3.038,2.462-5.5,5.5-5.5c3.037,0,5.5,2.462,5.5,5.5C16.5,14.037,14.037,16.5,11,16.5z" fill="'+e+'"/>            </svg>'},parseColor:function(e){var s,a;return a=(s=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(e))?[parseInt(s[1],16),parseInt(s[2],16),parseInt(s[3],16),1]:(s=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(e))?[17*parseInt(s[1],16),17*parseInt(s[2],16),17*parseInt(s[3],16),1]:(s=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(e))?[parseInt(s[1]),parseInt(s[2]),parseInt(s[3]),1]:(s=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(e))?[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),parseFloat(s[4])]:this.colors[e]||[230,88,87,1],"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},setIcon:function(e,s){var a,r=new google.maps.Point(11,40),t=function(){e.setIcon({url:a,anchor:r})};if(!s.trim())return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t();if(s.indexOf("/")!=-1){var n=new Image;n.onload=function(){a=n.src,r=new google.maps.Point(Math.ceil(n.width/2),n.height),t()},n.onerror=function(){return a="https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png",t()},n.src=s}else a="data:image/svg+xml;base64,"+btoa(this.getSVG.apply(this,s.split(" "))),r=new google.maps.Point(11,34),t()}};

widgetkit/application-392a180b.js000064400001322002152177723720012464 0ustar00var widgetkit = widgetkit || {}; widgetkit.templates = {"media":"<div class=\"uk-modal-dialog uk-modal-dialog-large wk-noconflict\" data-media-path=\"images\">\n\n    <div class=\"uk-modal-header\">\n        <div class=\"uk-h2\">{{'Pick Media' | trans }}<\/div>\n    <\/div>\n\n        <div>\n            <span class=\"uk-button uk-button-primary uk-form-file\">{{'Upload' | trans }}<input id=\"wk-upload-select\" type=\"file\"><\/span>\n            <button type=\"button\" ng-click=\"vm.addFolder()\" class=\"uk-button\">{{'Add Folder' | trans }}<\/button>\n            <button type=\"button\" ng-click=\"vm.remove()\" ng-show=\"media | filter : { selected : true } | length\" class=\"uk-button uk-button-danger\">{{'Delete' | trans }}<\/button>\n        <\/div>\n\n        <ul class=\"uk-breadcrumb uk-margin\">\n            <li ng-repeat=\"folder in breadcrumbs\">\n                <span ng-if=\"$last\">{{ folder.title }}<\/span>\n                <a ng-if=\"!$last\" ng-click=\"vm.open(folder.path)\">{{ folder.title }}<\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"uk-overflow-container\">\n            <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-large-1-3 uk-grid-width-xlarge-1-4 uk-form\" data-uk-grid-margin data-uk-grid-match=\"{target:'.uk-panel'}\">\n\n                <li ng-repeat=\"folder in media | filter: { type: 'folder' }\">\n                    <div ng-click=\"selectItem(folder, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"folder.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div class=\"wk-thumbnail wk-thumbnail-folder\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-truncate\">\n                            <input type=\"checkbox\" ng-if=\"folder.title\" ng-click=\"$event.stopPropagation(); folder.selected = !folder.selected\" ng-checked=\"folder.selected\">\n                            <a ng-click=\"vm.open(folder.path)\">{{ folder.title || '..' }}<\/a>\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n                <li ng-repeat=\"file in media | filter: { type: 'file' }\">\n                    <div ng-click=\"selectItem(file, $event)\" class=\"uk-panel uk-panel-box uk-text-center uk-visible-hover\" ng-class=\"file.selected ? 'wk-selected':''\">\n                        <div class=\"uk-panel-teaser\">\n                            <div ng-if=\"file.media\" class=\"wk-thumbnail\" style=\"background-image: url('{{ file.href }}');\"><\/div>\n                            <div ng-if=\"!file.media\" class=\"wk-thumbnail wk-thumbnail-file\"><\/div>\n                        <\/div>\n                        <div class=\"uk-text-nowrap uk-text-truncate\">\n                            <input type=\"checkbox\" ng-checked=\"file.selected\">\n                            {{ file.title }}\n                        <\/div>\n                    <\/div>\n                <\/li>\n\n            <\/ul>\n        <\/div>\n\n        <div id=\"wk-upload-drop\" class=\"uk-placeholder uk-text-center\">\n            {{'Drop files here' | trans}}\n        <\/div>\n\n        <div id=\"wk-upload-progressbar\" class=\"uk-progress uk-hidden\">\n            <div class=\"uk-progress-bar\" style=\"width: 0%;\"><\/div>\n        <\/div>\n\n    <div class=\"uk-modal-footer\">\n        <button type=\"button\" ng-click=\"vm.close()\" class=\"uk-button\">{{'Close' | trans}}<\/button>\n        <button type=\"button\" ng-click=\"vm.select()\" ng-disabled=\"!(media | filter : { selected : true } | length)\" class=\"uk-button uk-button-primary\">{{'Select' | trans}}<\/button>\n    <\/div>\n\n<\/div>\n","picker":"<div class=\"wk-noconflict\" ng-controller=\"pickerCtrl as vm\" ng-switch=\"vm.view\">\n    <div ng-switch-when=\"content\">\n\n        <div class=\"uk-modal-header uk-form uk-flex uk-flex-middle\">\n\n            <div class=\"uk-flex-item-1 uk-h2 uk-margin-remove\">{{'Select Widget' | trans}}<\/div>\n\n            <input class=\"uk-form-width-small uk-margin-small-right\" type=\"text\" ng-show=\"data.content | length\" ng-model=\"search.name\" placeholder=\"{{'Search...' | trans}}\">\n\n            <select class=\"uk-form-width-small uk-margin-small-right\" ng-model=\"search.data._widget.name\" ng-options=\"widget.name as widget.label for widget in vm.widgets\" ng-show=\"data.content | length\"><\/select>\n\n            <div class=\"uk-button-group uk-margin-small-right\" ng-show=\"data.content | length\">\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'list')}\" ng-click=\"vm.setViewMode('list')\"><i class=\"uk-icon-bars\"><\/i><\/button>\n                <button class=\"uk-button\" ng-class=\"{'uk-active':(vm.viewmode == 'blocks')}\" ng-click=\"vm.setViewMode('blocks')\"><i class=\"uk-icon-th\"><\/i><\/button>\n            <\/div>\n\n            <button class=\"uk-button uk-button-primary\" type=\"button\" ng-click=\"vm.createContent()\">{{'New' | trans}}<\/button>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin ng-if=\"(vm.viewmode == 'blocks' && data.content | length)\">\n            <li ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n\n                <div class=\"uk-panel uk-panel-box uk-panel-box-hover uk-visible-hover\" ng-click=\"vm.update(content)\">\n\n                    <div class=\"uk-panel-teaser uk-cover-background wk-image\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n\n                    <a class=\"uk-position-cover\" ng-click=\"vm.update(content)\"><\/a>\n\n                    <p class=\"uk-h4 uk-margin-top-remove uk-flex\">\n                        <span class=\"uk-flex-item-1 uk-text-truncate\">{{ content.name }}<\/span>\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\"><\/a>\n                    <\/p>\n\n                <\/div>\n            <\/li>\n        <\/ul>\n\n        <table class=\"uk-table uk-table-hover uk-table-middle wk-table uk-margin-large-top uk-margin-large-bottom\" ng-if=\"(vm.viewmode == 'list' && data.content | length)\">\n            <tbody>\n                <tr class=\"uk-visible-hover-inline\" ng-class=\"{'uk-active': vm.active(content)}\" ng-repeat=\"content in data.content | toArray | filter:search | orderBy:'name'\">\n                    <td class=\"uk-h4 uk-link-reset\">\n                        <a ng-click=\"vm.update(content)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + vm.previewContent(content) + ')'}\"><\/div>\n                            {{ content.name }}\n                        <\/a>\n                    <\/td>\n                    <td class=\"uk-h5 uk-text-nowrap uk-text-muted\">{{ vm.getWidget(content).label }}<\/td>\n                    <td class=\"wk-table-width-minimum uk-text-nowrap\">\n                        <a class=\"uk-icon-hover uk-icon-pencil  uk-invisible uk-margin-small-right\" ng-click=\"vm.editContent(content, 'content'); $event.stopPropagation()\" title=\"{{'Edit' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-files-o uk-invisible uk-margin-small-right\" ng-click=\"vm.copyContent(content); $event.stopPropagation()\" title=\"{{'Copy' | trans}}\"><\/a>\n                        <a class=\"uk-icon-hover uk-icon-trash-o uk-invisible\" ng-click=\"vm.deleteContent(content); $event.stopPropagation()\" title=\"{{'Delete' | trans}}\"><\/a>\n                    <\/td>\n                <\/tr>\n            <\/tbody>\n        <\/table>\n\n        <p class=\"uk-text-large uk-text-muted uk-text-center\" ng-hide=\"data.content | length\">\n            {{\"You haven't created any widgets yet.\" | trans}}\n        <\/p>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" type=\"button\" ng-click=\"vm.cancel()\">{{'Close' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentConfig\">\n\n        <div class=\"uk-modal-header wk-modal-header-blank\">\n            <div class=\"uk-h2\">{{content.id ? ('Edit %content%' | trans: {'content': content.name}) : 'New Widget' | trans}}<\/div>\n        <\/div>\n\n        <div class=\"uk-modal-header uk-form\">\n\n            <select class=\"uk-form-large uk-width-1-1\" ng-model=\"content.type\" ng-options=\"type.name as type.label for type in data.types | toArray\">\n                <option value=\"\">- {{'Select Content Type' | trans}} -<\/option>\n            <\/select>\n\n        <\/div>\n\n        <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n            <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: 'true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                    <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                    <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                <\/a>\n\n            <\/li>\n        <\/ul>\n\n        <div ng-show=\"(data.widgets | toArray | filter:{core: '!true'}).length\">\n\n            <h3 class=\"wk-heading\">{{'Theme' | trans}}<\/h3>\n\n            <ul class=\"uk-grid uk-grid-width-1-2 uk-grid-width-small-1-3 uk-grid-width-medium-1-4 uk-margin-large-top uk-margin-large-bottom\" data-uk-grid-margin>\n                <li ng-repeat=\"wgt in data.widgets | toArray | filter:{core: '!true'}\" ng-class=\"{'uk-active':(content.data._widget.name == wgt.name)}\">\n\n                    <a class=\"uk-panel uk-panel-hover uk-text-center\" ng-click=\"vm.selectWidget(wgt)\">\n                        <img ng-src=\"{{ wgt.icon }}\" width=\"40\" height=\"40\" alt=\"{{ wgt.label }}\">\n                        <h3 class=\"uk-h4 uk-margin-top uk-margin-bottom-remove\">{{ wgt.label }}<\/h3>\n                    <\/a>\n\n                <\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"uk-modal-footer\">\n            <button class=\"uk-button\" ng-click=\"content.id ? vm.editContent(content, 'content') : vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n            <button class=\"uk-button uk-button-primary\" ng-click=\"vm.editContent(content, 'content')\" ng-disabled=\"!content.type || !content.data._widget.name\">{{content.id ? 'Apply' : 'Create' | trans}}<\/button>\n        <\/div>\n\n    <\/div>\n    <div ng-switch-when=\"contentEdit\">\n\n        <form class=\"uk-margin-remove\" name=\"form\" novalidate>\n\n            <div class=\"uk-modal-header uk-form\">\n                <div class=\"uk-flex uk-flex-middle\">\n                    <div class=\"uk-margin-small-right\">\n                        <img ng-src=\"{{ widget.icon }}\" width=\"30\" height=\"30\" alt=\"{{ widget.label }}\">\n                    <\/div>\n                    <div class=\"uk-flex-item-1 uk-margin-right\">\n                        <input class=\"uk-form-large uk-form-blank wk-form-blank uk-width-1-1\" type=\"text\" ng-model=\"content.name\" placeholder=\"{{'Name' | trans}}\" required autofocus>\n                    <\/div>\n                    <div>\n                        <ul class=\"uk-subnav wk-subnav\">\n                            <li ng-class=\"{'uk-active':(vm.include == 'content')}\"><a ng-click=\"vm.setView('contentEdit', 'content')\">{{'Content' | trans}}<\/a><\/li>\n                            <li ng-class=\"{'uk-active':(vm.include == 'widget')}\"><a ng-click=\"vm.setView('contentEdit', 'widget')\">{{'Settings' | trans}}<\/a><\/li>\n                            <li class=\"wk-subnav-divider\"><a ng-click=\"vm.setView('contentConfig')\"><i class=\"uk-icon-cog\"><\/i><\/a><\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div ng-show=\"vm.include == 'content'\" ng-include=\"content.type + '.edit'\"><\/div>\n            <div ng-show=\"vm.include == 'widget'\" ng-include=\"widget.name + '.edit'\"><\/div>\n\n            <div class=\"uk-modal-footer\">\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode != 'edit'\" ng-click=\"vm.setView('content')\">{{'Cancel' | trans}}<\/button>\n                <button class=\"uk-button\" type=\"button\" ng-show=\"vm.mode == 'edit'\" ng-click=\"vm.update(content)\">{{'Close' | trans}}<\/button>\n                <button class=\"uk-button uk-button-primary\" ng-click=\"vm.saveContent(content)\" ng-disabled=\"form.$invalid\">{{'Save' | trans}}<\/button>\n            <\/div>\n\n        <\/form>\n\n    <\/div>\n<\/div>\n","custom.edit":"<div ng-controller=\"customCtrl as custom\">\n\n    <div class=\"uk-grid uk-grid-divider uk-form uk-form-stacked\" data-uk-grid-margin>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-1-4' : ''\" class=\"uk-width-medium-1-3\">\n\n            <div class=\"wk-panel-marginless\">\n\n                <ul id=\"js-content-items\" class=\"uk-nav uk-nav-side uk-sortable\" data-uk-sortable=\"{dragCustomClass:'wk-sortable wk-noconflict'}\" ng-show=\"content.data.items.length\">\n                    <li class=\"uk-visible-hover\" ng-repeat=\"item in content.data.items\" ng-class=\"(item === $parent.item ? 'uk-active':'')\">\n                        <div class=\"wk-subnav-right uk-hidden\">\n                            <ol class=\"uk-subnav wk-subnav-icon\">\n                                <li>\n                                    <a ng-click=\"custom.deleteItem(item)\"><i class=\"uk-icon-times\"><\/i><\/a>\n                                <\/li>\n                            <\/ol>\n                        <\/div>\n                        <a ng-click=\"custom.editItem(item)\">\n                            <div class=\"wk-preview-thumb uk-cover-background uk-margin-small-right\" ng-style=\"{'background-image': 'url(' + custom.previewItem(item) + ')'}\"><\/div>\n                            {{ item.title }}\n                        <\/a>\n                    <\/li>\n                <\/ul>\n\n                <p class=\"uk-margin\">\n                    <button class=\"uk-button\" ng-click=\"custom.addItem()\">{{'Add Item' | trans}}<\/button>\n                    <button class=\"uk-button\" ng-click=\"custom.importItems()\">{{'Add Media' | trans}}<\/button>\n                <\/p>\n\n                <div class=\"uk-form-row uk-margin-large-top\">\n                    <label class=\"uk-form-label\">{{'Settings' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['random'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['random']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Random Order' | trans}}<\/label>\n                    <\/div>\n                    <div class=\"uk-form-controls uk-form-controls-condensed\">\n                        <label class=\"uk-flex uk-flex-middle {{ content.data['parse_shortcodes'] ? '':'uk-text-muted'}}\"><input class=\"uk-margin-small-right\" type=\"checkbox\" ng-model=\"content.data['parse_shortcodes']\" ng-true-value=\"1\" ng-false-value=\"0\"> {{'Parse shortcodes' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n        <div ng-class=\"vm.name == 'contentCtrl' ? 'wk-width-xlarge-3-4' : ''\" class=\"uk-width-medium-2-3\" ng-show=\"item\">\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-title\">{{'Title' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <input id=\"wk-title\" class=\"uk-width-1-1\" type=\"text\" ng-model=\"item.title\">\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\">{{'Media' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field-media title=\"item.title\" media=\"item.media\" options=\"item.options['media']\"><\/field-media>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-content\">{{'Content' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"editor\" id=\"wk-content\" class=\"uk-width-1-1\" ng-model=\"item.content\" rows=\"10\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-link\">{{'Link' | trans}}<\/label>\n                <div class=\"uk-form-controls\">\n                    <field type=\"text\" options='{\"attributes\":{\"id\":\"wk-link\", \"placeholder\":\"http:\/\/\"}, \"icon\":\"link\"}' ng-model=\"item.link\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-form-row\" ng-repeat=\"field in extrafields\" ng-show=\"!custom.editfields\">\n                <label class=\"uk-form-label\" for=\"wk-field-{{ $index }}\">{{ field.label }}<\/label>\n                <div class=\"uk-form-controls\" ng-switch=\"field.type\">\n                    <field-media ng-switch-when=\"media\" media=\"item[field.name]\" options=\"item.options[field.name]\"><\/field-media>\n                    <field ng-switch-default type=\"{{ field.type }}\" options='{{ custom.getFieldOptions(field, $index) }}' ng-model=\"item[field.name]\" options=\"item.options[field.name]\"><\/field>\n                <\/div>\n            <\/div>\n\n            <div class=\"uk-panel uk-panel-box uk-panel-box-primary uk-margin-large-top\" ng-show=\"custom.editfields\">\n\n                <h3 class=\"uk-h3\">{{'Manage Custom Fields' | trans}}<\/h3>\n\n                <div class=\"uk-margin uk-sortable\" id=\"js-fields-items\" data-uk-sortable ng-show=\"extrafields.length\">\n                    <div class=\"uk-margin-small\" ng-repeat=\"field in extrafields\">\n                        <div class=\"uk-panel uk-panel-box wk-panel-small\" ng-switch=\"(custom.editField==field ? 'edit':'')\">\n\n                            <div ng-switch-when=\"edit\">\n\n                                <div class=\"uk-grid uk-grid-width-1-3\">\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"field.name\" placeholder=\"{{'Field name' | trans}}\" disabled>\n                                        <\/div>\n\n                                    <\/div>\n                                    <div>\n\n                                        <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                        <div class=\"uk-form-controls\">\n                                            <select class=\"uk-width-1-1\" ng-model=\"field.type\" ng-options=\"f.name as f.label for f in custom.fields\" disabled><\/select>\n                                        <\/div>\n\n                                    <\/div>\n                                <\/div>\n\n                                <p class=\"uk-margin-bottom-remove\">\n                                    <button class=\"uk-button\" ng-click=\"custom.editField=false\" type=\"button\">{{'Close' | trans}}<\/button>\n                                <\/p>\n\n                            <\/div>\n\n                            <div ng-switch-default>\n\n                                <span>{{ field.label || field.name }}<\/span>\n\n                                <ul class=\"uk-subnav uk-margin-bottom-remove uk-float-right\">\n                                    <li class=\"uk-disabled\"><span>{{ field.type }}<\/span><\/li>\n                                    <li><a ng-click=\"custom.editField=field\"><i class=\"uk-icon-pencil\"><\/i><\/a><\/li>\n                                    <li><a ng-click=\"custom.deleteField(field)\"><i class=\"uk-icon-trash-o\"><\/i><\/a><\/li>\n                                <\/ul>\n\n                            <\/div>\n\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"custom.addCustomField && !custom.editField\">\n\n                    <div class=\"uk-panel uk-panel-box wk-panel-small\">\n\n                        <div class=\"uk-grid uk-grid-width-1-3\">\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Label' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.label\" placeholder=\"{{'Field label' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Name' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <input class=\"uk-width-1-1\" type=\"text\" ng-model=\"custom.custom.field.name\" placeholder=\"{{'Field name' | trans}}\">\n                                <\/div>\n\n                            <\/div>\n\n                            <div>\n\n                                <label class=\"uk-form-label\">{{'Type' | trans}}<\/label>\n                                <div class=\"uk-form-controls\">\n                                    <select class=\"uk-width-1-1\" ng-model=\"custom.custom.field.type\" ng-options=\"f.name as f.label for f in custom.fields\"><\/select>\n                                <\/div>\n\n                            <\/div>\n\n                        <\/div>\n\n                        <p>\n                            <button class=\"uk-button uk-button-success\" ng-click=\"custom.addField(custom.custom.field);custom.addCustomField=false\" ng-disabled=\"!(custom.custom.field.name && custom.custom.field.label && custom.custom.field.type)\" type=\"button\">{{'Add' | trans}}<\/button>\n                            <button class=\"uk-button\" ng-click=\"custom.addCustomField=false\" type=\"button\">{{'Cancel' | trans}}<\/button>\n                        <\/p>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"uk-margin-top\" ng-show=\"!custom.addCustomField\">\n                    <div class=\"uk-button-dropdown\" data-uk-dropdown=\"{ mode: 'click' }\" >\n                        <button class=\"uk-button uk-button-primary\" type=\"button\">{{'New Field' | trans}} &nbsp; <i class=\"uk-icon-caret-down\"><\/i><\/button>\n                        <div class=\"uk-dropdown uk-dropdown-up uk-dropdown-small uk-text-left\">\n                            <ul class=\"uk-nav uk-nav-dropdown\">\n                                <li class=\"uk-nav-header\">{{'Field Types' | trans}}<\/li>\n                                <li ng-repeat=\"(fieldname, fieldsettings) in custom.corefields\" ng-show=\"!custom.hasField(fieldname)\"><a ng-click=\"custom.addField({name:fieldname, type:fieldsettings.type, label:fieldsettings.label, core:true})\">{{ fieldsettings.label}}<\/a><\/li>\n                                <li class=\"uk-nav-divider\"><\/li>\n                                <li><a ng-click=\"custom.custom.field={};custom.addCustomField=true\">{{'Custom' | trans}} <i class=\"uk-icon-magic\"><\/i><\/a><\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Close' | trans}}<\/a>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"uk-margin-large-top\" ng-show=\"!custom.editfields\">\n                <a class=\"uk-button\" ng-click=\"custom.toggleEditFields()\">{{'Manage Fields' | trans}}<\/a>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n<\/div>\n","switcher-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_min_height']\"> {{'Min. Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-alignment\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-alignment\" class=\"uk-form-width-medium\" ng-model=\"widget.data['alignment']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","accordion.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Accordion<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Collapse Items' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['collapse']\"> {{\"Don't allow multiple opened items\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'First Item' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['first_item']\"> {{\"First item is opened\" | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Link' || trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_media']\"> {{'Link Media' || trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"middle-left\">{{'Center Left' | trans}}<\/option>\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                            <\/select> {{'Animation' | trans}}\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_background']\"> {{'Show panel background' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","switcher.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'top' || widget.data.position == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['alignment']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Tabs\/Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.position == 'left' || widget.data.position == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Width' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Swipe' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disable_swiping']\"> {{'Disable swiping' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","gallery.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Lightbox' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">Tablet<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay\">{{'Appearance' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay']\">\n                            <option value=\"default\">{{'Image Caption' | trans}}<\/option>\n                            <option value=\"center\">{{'Overlay Center' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Overlay Bottom' | trans}}<\/option>\n                        <\/select>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['panel']\">\n                                    <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                                    <option value=\"box\">{{'Box' | trans}}<\/option>\n                                    <option value=\"primary\">Box Primary<\/option>\n                                    <option value=\"secondary\">Box Secondary<\/option>\n                                    <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                                <\/select>\n                                {{'Panel Style' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_center']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"link\">{{'Link' | trans}}<\/option>\n                                    <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                                    <option value=\"buttons\">{{'Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                                    <option value=\"content\">{{'Content' | trans}} ({{'If enabled' | trans}})<\/option>\n                                <\/select>\n                                {{'Overlay' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default + Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default' || widget.data.overlay == 'center'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_background']\">\n                                    <option value=\"none\">None<\/option>\n                                    <option value=\"static\">Static<\/option>\n                                    <option value=\"hover\">On hover<\/option>\n                                <\/select>\n                                {{'Background' | trans}}\n                            <\/label>\n                        <\/p>\n                        <!-- Default -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_image']\"> {{'Use second image as overlay if exists' | trans}}<\/label>\n                        <\/p>\n                        <!-- Center -->\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay == 'center'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['hover_overlay']\"> {{'Toggle content on hover' | trans}}<\/label>\n                        <\/p>\n\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Overlay Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['image_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.link_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['link_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">External Link Square<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Lightbox' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox\">{{'Lightbox' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox']\">\n                            <option value=\"\">{{'Disabled' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"slideshow\">{{'Slideshow' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_caption']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"title\">{{'Use Title' | trans}}<\/option>\n                                    <option value=\"content\">{{'Use Content' | trans}}<\/option>\n                                <\/select>\n                                {{'Caption' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['lightbox_nav_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_nav_contrast']\"> {{'Invert slidenav color.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_title_size']\">\n                                    <option value=\"panel\">{{'Default' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                    <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Title Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_content_size']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                                    <option value=\"h1\">H1<\/option>\n                                    <option value=\"h2\">H2<\/option>\n                                    <option value=\"h3\">H3<\/option>\n                                    <option value=\"h4\">H4<\/option>\n                                    <option value=\"h5\">H5<\/option>\n                                    <option value=\"h6\">H6<\/option>\n                                <\/select>\n                                {{'Content Size' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox == 'slideshow'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['lightbox_content_width']\">\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                    <option value=\"3-4\">75%<\/option>\n                                    <option value=\"4-5\">80%<\/option>\n                                    <option value=\"\">100%<\/option>\n                                <\/select>\n                                {{'Content width on xlarge screens.' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['lightbox_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.lightbox\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_alt']\"> {{'Show second media element in lightbox.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Button' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['lightbox_link']\"> {{'Enable lightbox link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-lightbox-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['lightbox_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon Mini' | trans}}<\/option>\n                            <option value=\"icon-small\">{{'Icon Small' | trans}}<\/option>\n                            <option value=\"icon-medium\">{{'Icon Medium' | trans}}<\/option>\n                            <option value=\"icon-large\">{{'Icon Large' | trans}}<\/option>\n                            <option value=\"icon-button\">{{'Icon Button' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['icon', 'icon-small', 'icon-medium', 'icon-large', 'icon-button'].indexOf(widget.data.lightbox_style) > -1)\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['lightbox_icon']\">\n                                    <option value=\"arrows-alt\">{{'Arrows Alt' | trans}}<\/option>\n                                    <option value=\"expand\">{{'Expand' | trans}}<\/option>\n                                    <option value=\"image\">{{'Image' | trans}}<\/option>\n                                    <option value=\"hand-o-right\">{{'Hand' | trans}}<\/option>\n                                    <option value=\"lightbulb-o\">{{'Lightbulb' | trans}}<\/option>\n                                    <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                                    <option value=\"info\">{{'Info' | trans}}<\/option>\n                                    <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                                    <option value=\"play-circle\">{{'Play-circle' | trans}}<\/option>\n                                    <option value=\"search\">{{'Search' | trans}}<\/option>\n                                    <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                                    <option value=\"external-link\">{{'External Link' | trans}}<\/option>\n                                    <option value=\"external-link-square\">{{'External Link Square' | trans}}<\/option>\n                                    <option value=\"angle-right\">{{'Angle' | trans}}<\/option>\n                                    <option value=\"angle-double-right\" class=\"uk-icon-expand\">{{'Angle Double' | trans}}<\/option>\n                                    <option value=\"arrow-right\">{{'Arrow' | trans}}<\/option>\n                                    <option value=\"arrow-circle-right\">{{'Arrow Circle' | trans}}<\/option>\n                                    <option value=\"arrow-circle-o-right\">Arrow Circle Outlined<\/option>\n                                    <option value=\"long-arrow-right\">{{'Long Arrow' | trans}}<\/option>\n                                    <option value=\"caret-right\">{{'Caret' | trans}}<\/option>\n                                    <option value=\"caret-square-o-right\">{{'Caret Square' | trans}}<\/option>\n                                    <option value=\"chevron-right\">{{'Chevron' | trans}}<\/option>\n                                    <option value=\"chevron-circle-right\">{{'Chevron Circle' | trans}}<\/option>\n                                    <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                                    <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                                    <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                                    <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                                    <option value=\"share\">{{'Share' | trans}}<\/option>\n                                    <option value=\"share-square\">{{'Share Square' | trans}}<\/option>\n                                    <option value=\"share-square-o\">{{'Share Square Outlined' | trans}}<\/option>\n                                <\/select>\n                                {{'Icon' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-lightbox-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-lightbox-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['lightbox_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideshow-panel.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Panel' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as media overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['thumbnail_alt']\"> {{'Use second image as thumbnail.' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['kenburns_animation']\">\n                                    <option value=\"\">{{'Default' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-center\">{{'Top' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-center\">{{'Bottom' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-right\">{{'Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-middle-left\">{{'Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-right\">{{'Top Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-bottom-left\">{{'Top Right' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-right\">{{'Bottom Left' | trans}}<\/option>\n                                    <option value=\"uk-animation-top-left\">{{'Bottom Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.kenburns\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['kenburns_duration']\"> {{'Duration in seconds' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Top' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                    <option value=\"3-5\">60%<\/option>\n                                    <option value=\"2-3\">66%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H2<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H4<\/option>\n                            <option value=\"h6\">H4<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slider<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n            <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Infinite' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['infinite']\"> {{'Items are looped and you can scroll endless' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Center' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['center']\"> {{'The active item is centered' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slider' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Height' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_hover']\"> {{'Toggle content on hover' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-background\">{{'Background' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-background\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_background']\">\n                            <option value=\"none\">None<\/option>\n                            <option value=\"static\">Static<\/option>\n                            <option value=\"hover\">On hover<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-overlay-image\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-overlay-image\" class=\"uk-form-width-medium\" ng-model=\"widget.data['overlay_image']\">\n                            <option value=\"static\">{{'Static' | trans}}<\/option>\n                            <option value=\"hover\">{{'On hover' | trans}}<\/option>\n                            <option value=\"second\">{{'Second image on hover (If exists)' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.overlay_image != 'static'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['image_animation']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                                    <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                                    <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['overlay_link']\"> {{'Link entire overlay, if link exists' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","map.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content-map'}\">\n                <li><a href=\"#\">{{'Map' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Style' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"#\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content-map\" class=\"uk-switcher\">\n            <li>\n                                <div class=\"uk-alert\">Please add your custom Google Maps API Key in the <a href=\"index.php?option=com_config&view=component&component=com_widgetkit\">Widgetkit settings<\/a>!<\/div>\n                \n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-height\">{{'Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-maptypeid\">{{'Map Type' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-maptypeid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['maptypeid']\">\n                            <option value=\"roadmap\">{{'Roadmap' | trans}}<\/option>\n                            <option value=\"satellite\">{{'Satellite' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Controls' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Default UI' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['disabledefaultui']\"> {{'Disable automatic UI behavior' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Type Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['maptypecontrol']\"> {{'Show type controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Map Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['mapctrl']\"> {{'Show map controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Directions Controls' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['directions']\"> {{'Show directions controls' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-zoom\">{{'Zoom Level' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-zoom\" class=\"uk-form-width-medium\" ng-model=\"widget.data['zoom']\">\n                            <option value=\"0\">0<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                            <option value=\"7\">7<\/option>\n                            <option value=\"8\">8<\/option>\n                            <option value=\"9\">9<\/option>\n                            <option value=\"10\">10<\/option>\n                            <option value=\"11\">11<\/option>\n                            <option value=\"12\">12<\/option>\n                            <option value=\"13\">13<\/option>\n                            <option value=\"14\">14<\/option>\n                            <option value=\"15\">15<\/option>\n                            <option value=\"16\">16<\/option>\n                            <option value=\"17\">17<\/option>\n                            <option value=\"18\">18<\/option>\n                            <option value=\"19\">19<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker\">{{'Marker' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-marker\" class=\"uk-form-width-medium\" ng-model=\"widget.data['marker']\">\n                            <option value=\"0\">{{'Hide' | trans}}<\/option>\n                            <option value=\"1\">{{'Show' | trans}}<\/option>\n                            <option value=\"2\">{{'Show and enable Popup' | trans}}<\/option>\n                            <option value=\"3\">{{'Show with opened Popup' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.marker > '1'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['popup_max_width']\"> {{'Popup max width (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Cluster Markers' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['markercluster']\"> {{'Group markers on zoom out' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Scroll Wheel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['zoomwheel']\"> {{'Zoom map on scroll' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Draggable' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['draggable']\"> {{'Move map on drag' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Map' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Invert' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['styler_invert_lightness']\"> {{'Invert lightness' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-hue\">{{'Hue' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-hue\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_hue']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-saturation\">{{'Saturation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-saturation\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_saturation']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-lightness\">{{'Lightness' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-lightness\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_lightness']\"> ({{'%from% to %to%' | trans: {from:-100, to:100} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-styler-gamma\">{{'Gamma' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-styler-gamma\" class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['styler_gamma']\"> ({{'%from% to %to%' | trans: {from:0, to:10} }})\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Marker' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-marker-icon\">{{'Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-marker-icon\" class=\"uk-form-width-small\" type=\"text\" placeholder=\"{{'default' | trans}}\" ng-model=\"widget.data['marker_icon']\"> ({{'Color or image url' | trans}})\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","slideset.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Slideset<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Dotnav' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav']\"> {{'Show Dotnav' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"above\">{{'Above' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'bottom'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['slidenav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.slidenav == 'above'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['slidenav_contrast']\"> {{'Invert slidenav color' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-filter\">{{'Filter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-filter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['filter']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                            <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                            <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_position']\">\n                                    <option value=\"top\">{{'Top' | trans}}<\/option>\n                                    <option value=\"bottom\">{{'Bottom' | trans}}<\/option>\n                                <\/select>\n                                {{'Position' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slide-horizontal\">{{'Slide Horizontal' | trans}}<\/option>\n                            <option value=\"slide-vertical\">{{'Slide Vertical' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> Interval (ms)<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter\">{{'Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter']\">\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"small\">{{'Small' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"last\">{{'Last' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-slider.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">Slideshow<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Navigation' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-nav\">{{'Navigation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-nav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['nav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"dotnav\">{{'Dotnav' | trans}}<\/option>\n                            <option value=\"thumbnails\">{{'Thumbnails' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['nav_overlay']\"> {{'Position the nav as overlay.' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['nav_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                    <option value=\"justify\">{{'Justify' | trans}} ({{'Only Thumbnails' | trans}})<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.nav == 'thumbnails'\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['thumbnail_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slidenav\">{{'Slidenav' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slidenav\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slidenav']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"default\">{{'Default' | trans}}<\/option>\n                            <option value=\"top-left\">{{'Top\/Left' | trans}}<\/option>\n                            <option value=\"top-right\">{{'Top\/Right' | trans}}<\/option>\n                            <option value=\"bottom-left\">{{'Bottom\/Left' | trans}}<\/option>\n                            <option value=\"bottom-right\">{{'Bottom\/Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['nav_contrast']\"> {{'Use a high-contrast color if overlay.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Animations' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-slide-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-slide-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['slide_animation']\">\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scroll\">{{'Scroll' | trans}}<\/option>\n                            <option value=\"swipe\">{{'Swipe' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"slice-up\">{{'Slice Up' | trans}}<\/option>\n                            <option value=\"slice-down\">{{'Slice Down' | trans}}<\/option>\n                            <option value=\"slice-up-down\">{{'Slice Up Down' | trans}}<\/option>\n                            <option value=\"fold\">{{'Fold' | trans}}<\/option>\n                            <option value=\"puzzle\">{{'Puzzle' | trans}}<\/option>\n                            <option value=\"boxes\">{{'Boxes' | trans}}<\/option>\n                            <option value=\"boxes-reverse\">{{'Boxes Reverse' | trans}}<\/option>\n                            <option value=\"random-fx\">{{'Random Fx' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"(['slice-up', 'slice-down', 'slice-up-down', 'fold', 'puzzle', 'boxes', 'boxes-reverse', 'random-fx'].indexOf(widget.data.animation) > -1)\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['slices']\"> {{'Slices' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-duration\">{{'Duration (ms)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-duration\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['duration']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Autoplay' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay']\"> {{'Enable autoplay' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['interval']\"> {{'Interval (ms)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.autoplay\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['autoplay_pause']\"> {{'Pause autoplay when hovering the slideshow' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">Kenburns<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['kenburns']\"> {{'Enable Kenburns effect on the image' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-grid\">{{'Behavior' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-grid\" class=\"uk-form-width-medium\" ng-model=\"widget.data['grid']\">\n                            <option value=\"default\">{{'Match Height' | trans}}<\/option>\n                            <option value=\"dynamic\">{{'Dynamic Grid' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['gutter']\">\n                                    <option value=\"default\">{{'Default' | trans}}<\/option>\n                                    <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                                    <option value=\"small\">{{'Small' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                                    <option value=\"large\">{{'Large' | trans}}<\/option>\n                                <\/select>\n                                {{'Gutter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['parallax']\"> {{'Parallax effect' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'default' && widget.data.parallax\">\n                            <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['parallax_translate']\"> {{'Translate (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['gutter_dynamic']\"> {{'Gutter (px)' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['gutter_v_dynamic']\"> {{'Different vertical gutter' | trans}} ({{'If needed' | trans}})\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter']\">\n                                    <option value=\"none\">{{'None' | trans}}<\/option>\n                                    <option value=\"text\">{{'Text' | trans}}<\/option>\n                                    <option value=\"lines\">{{'Divider' | trans}}<\/option>\n                                    <option value=\"nav\">{{'Nav' | trans}}<\/option>\n                                    <option value=\"tabs\">{{'Tabs' | trans}}<\/option>\n                                <\/select>\n                                {{'Filter' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <input class=\"uk-form-width-1-1\" type=\"text\" ng-model=\"widget.data['filter_tags']\" ng-list placeholder= \"{{ 'tag, tag, ...' | trans }}\"> {{ 'Show only selected tags (Optional)' | trans }}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['filter_align']\">\n                                    <option value=\"left\">{{'Left' | trans}}<\/option>\n                                    <option value=\"center\">{{'Center' | trans}}<\/option>\n                                    <option value=\"right\">{{'Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Alignment' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.grid == 'dynamic' && widget.data.filter != 'none'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['filter_all']\"> {{'Show filter for all items' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Columns' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns']\">\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_small']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_medium']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_large']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-columns-xlarge\">{{'Large Screens' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-columns-xlarge\" class=\"uk-form-width-medium\" ng-model=\"widget.data['columns_xlarge']\">\n                            <option value=\"0\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1\">1<\/option>\n                            <option value=\"2\">2<\/option>\n                            <option value=\"3\">3<\/option>\n                            <option value=\"4\">4<\/option>\n                            <option value=\"5\">5<\/option>\n                            <option value=\"6\">6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"blank\">{{'Blank' | trans}}<\/option>\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                            <option value=\"hover\">{{'Hover' | trans}}<\/option>\n                            <option value=\"header\">{{'Header' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                            <option value=\"sequence1\">{{'Box\/Box Primary' | trans}}<\/option>\n                            <option value=\"sequence2\">{{'Box\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence3\">{{'Box Primary\/Box Secondary' | trans}}<\/option>\n                            <option value=\"sequence4\">{{'Box Secondary\/Box Primary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation\">{{'Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale-up\">{{'Scale Up' | trans}}<\/option>\n                            <option value=\"scale-down\">{{'Scale Down' | trans}}<\/option>\n                            <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                            <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                            <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                            <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"teaser\">{{'Teaser' | trans}}<\/option>\n                            <option value=\"top\">{{'Above Title' | trans}}<\/option>\n                            <option value=\"bottom\">{{'Below Title' | trans}}<\/option>\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-mini\" ng-model=\"widget.data['media_width']\">\n                                    <option value=\"1-5\">20%<\/option>\n                                    <option value=\"1-4\">25%<\/option>\n                                    <option value=\"3-10\">30%<\/option>\n                                    <option value=\"1-3\">33%<\/option>\n                                    <option value=\"2-5\">40%<\/option>\n                                    <option value=\"1-2\">50%<\/option>\n                                <\/select>\n                                {{'Column Width' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['media_breakpoint']\">\n                                    <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                                    <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                                    <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                                <\/select>\n                                {{'Breakpoint' | trans}}\n                            <\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_align == 'left' || widget.data.media_align == 'right'\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-date-format\">{{'Date Format' | trans}}<\/label>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <select id=\"wk-date-format\" class=\"uk-form-width-medium\" ng-model=\"widget.data['date_format']\">\n                            <option value=\"full\">{{'Full' | trans}}<\/option>\n                            <option value=\"long\">{{'Long' | trans}}<\/option>\n                            <option value=\"medium\">{{'Medium' | trans}}<\/option>\n                            <option value=\"short\">{{'Short' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","grid-stack.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">{{'Layout' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Grid' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Media Width' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-5\">20%<\/option>\n                            <option value=\"1-4\">25%<\/option>\n                            <option value=\"3-10\">30%<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">67%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"1-1\">100%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-align\">{{'Media Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-breakpoint\">{{'Breakpoint' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-breakpoint\" class=\"uk-form-width-medium\" ng-model=\"widget.data['breakpoint']\">\n                            <option value=\"small\">{{'Phone Landscape' | trans}}<\/option>\n                            <option value=\"medium\">{{'Tablet' | trans}}<\/option>\n                            <option value=\"large\">{{'Desktop' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Alternate' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['alternate']\"> {{'Alternate the media alignment' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Horizontal Gutter' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['gutter']\"> {{'Show the grid gutter' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-gutter-vertical\">{{'Vertical Gutter' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-gutter-vertical\" class=\"uk-form-width-medium\" ng-model=\"widget.data['gutter_vertical']\">\n                            <option value=\"default\">{{'Same as horizontal' | trans}}<\/option>\n                            <option value=\"collapse\">{{'Collapse' | trans}}<\/option>\n                            <option value=\"large\">{{'Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Divider' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['divider']\"> {{'Show horizontal dividers' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Panel' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['panel']\"> {{'Add whitespace to your content' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Content' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-media\">{{'Animation Media' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-media\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_media']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-animation-content\">{{'Animation Content' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-animation-content\" class=\"uk-form-width-medium\" ng-model=\"widget.data['animation_content']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"slide\">{{'Slide' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                            <option value=\"social-buttons\">{{'Social Buttons' | trans}} ({{'If enabled' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon' ||\u00a0widget.data.media_overlay == 'social-buttons'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['social_buttons']\"> {{'Show social buttons' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                       <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                            <option value=\"media\">{{'To Media' | trans}}<\/option>\n                       <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Badge' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['badge']\"> {{'Show badge' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_style']\">\n                            <option value=\"badge\">{{'Default' | trans}}<\/option>\n                            <option value=\"success\">{{'Success' | trans}}<\/option>\n                            <option value=\"warning\">{{'Warning' | trans}}<\/option>\n                            <option value=\"danger\">{{'Danger' | trans}}<\/option>\n                            <option value=\"text-muted\">{{'Text Muted' | trans}}<\/option>\n                            <option value=\"text-primary\">{{'Text Primary' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-badge-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-badge-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['badge_position']\">\n                            <option value=\"panel\">{{'Panel' | trans}}<\/option>\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","popover.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Popover<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Popover' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Width (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-width\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['width']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <field-media title=\"item.title\" media=\"widget.data.image\"><\/field-media>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_hero_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-position\">{{'Position' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-position\" class=\"uk-form-width-medium\" ng-model=\"widget.data['position']\">\n                            <option value=\"top-center\">Top<\/option>\n                            <option value=\"bottom-center\">Bottom<\/option>\n                            <option value=\"left-center\">Left<\/option>\n                            <option value=\"right-center\">Right<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-mode\">{{'Mode' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-mode\" class=\"uk-form-width-medium\" ng-model=\"widget.data['mode']\">\n                            <option value=\"hover\">Hover<\/option>\n                            <option value=\"click\">Click<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-toggle\">{{'Toggle Icon' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-toggle\" class=\"uk-form-width-medium\" ng-model=\"widget.data['toggle']\">\n                            <option value=\"eye\">{{'Eye' | trans}}<\/option>\n                            <option value=\"info\">{{'Info' | trans}}<\/option>\n                            <option value=\"info-circle\">{{'Info Circle' | trans}}<\/option>\n                            <option value=\"search\">{{'Search' | trans}}<\/option>\n                            <option value=\"search-plus\">{{'Search Plus' | trans}}<\/option>\n                            <option value=\"plus\">{{'Plus' | trans}}<\/option>\n                            <option value=\"plus-square\">{{'Plus Square' | trans}}<\/option>\n                            <option value=\"plus-square-o\">{{'Plus Square Outlined' | trans}}<\/option>\n                            <option value=\"plus-circle\">{{'Plus Circle' | trans}}<\/option>\n                            <option value=\"map-marker\">{{'Map Marker' | trans}}<\/option>\n                            <option value=\"\">{{'Custom' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Items' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-panel\">{{'Panel' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-panel\" class=\"uk-form-width-medium\" ng-model=\"widget.data['panel']\">\n                            <option value=\"box\">{{'Box' | trans}}<\/option>\n                            <option value=\"primary\">{{'Box Primary' | trans}}<\/option>\n                            <option value=\"secondary\">{{'Box Secondary' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['panel_link']\"> {{'Link entire panel, if link exists' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Overlay' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-overlay\">{{'Overlay' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-overlay\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_overlay']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"icon\">{{'Icon' | trans}}<\/option>\n                            <option value=\"image\">{{'Image' | trans}} ({{'If second one exists' | trans}})<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\" ng-if=\"widget.data.media_overlay == 'icon'\">\n                            <label>\n                                <select class=\"uk-form-width-small\" ng-model=\"widget.data['overlay_animation']\">\n                                    <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                                    <option value=\"slide-top\">{{'Slide Top' | trans}}<\/option>\n                                    <option value=\"slide-bottom\">{{'Slide Bottom' | trans}}<\/option>\n                                    <option value=\"slide-left\">{{'Slide Left' | trans}}<\/option>\n                                    <option value=\"slide-right\">{{'Slide Right' | trans}}<\/option>\n                                <\/select>\n                                {{'Animation' | trans}}\n                            <\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-thumbnail-animation\">{{'Image Animation' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-thumbnail-animation\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_animation']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"fade\">{{'Fade' | trans}}<\/option>\n                            <option value=\"scale\">{{'Scale' | trans}}<\/option>\n                            <option value=\"spin\">{{'Spin' | trans}}<\/option>\n                            <option value=\"grayscale\">{{'Grayscale' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"panel\">{{'Default' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","list.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">List<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'List' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['list']\">\n                            <option value=\"line\">{{'Line' | trans}}<\/option>\n                            <option value=\"striped\">{{'Striped' | trans}}<\/option>\n                            <option value=\"space\">{{'Space' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                        <\/select>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content_align']\"> {{'Center content vertically' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-media-border\">{{'Border' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-media-border\" class=\"uk-form-width-medium\" ng-model=\"widget.data['media_border']\">\n                            <option value=\"none\">{{'None' | trans}}<\/option>\n                            <option value=\"circle\">{{'Circle' | trans}}<\/option>\n                            <option value=\"rounded\">{{'Rounded' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title\">{{'Display' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title']\">\n                            <option value=\"title\">{{'Title' | trans}}<\/option>\n                            <option value=\"content\">{{'Content' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"default\">Default<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Truncate' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_truncate']\"> {{'Max. characters' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_color']\">\n                            <option value=\"link\">{{'Link' | trans}}<\/option>\n                            <option value=\"muted\">{{'Muted' | trans}}<\/option>\n                            <option value=\"reset\">{{'Same as text' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n","parallax.edit":"<div class=\"uk-grid uk-grid-divider uk-form uk-form-horizontal\" data-uk-grid-margin>\n    <div class=\"uk-width-medium-1-4\">\n\n        <div class=\"wk-panel-marginless\">\n            <ul class=\"uk-nav uk-nav-side\" data-uk-switcher=\"{connect:'#nav-content'}\">\n                <li><a href=\"\">Parallax<\/a><\/li>\n                <li><a href=\"\">{{'Media' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'Content' | trans}}<\/a><\/li>\n                <li><a href=\"\">{{'General' | trans}}<\/a><\/li>\n            <\/ul>\n        <\/div>\n\n    <\/div>\n    <div class=\"uk-width-medium-3-4\">\n\n        <ul id=\"nav-content\" class=\"uk-switcher\">\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Background' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Fullscreen' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['fullscreen']\"> {{'Extend to full viewport height' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-min-height\">{{'Min. Height (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-min-height\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['min_height']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-translatey\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['background_translatey']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-background-color\">{{'Background Color' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-background-color\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_start']\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['background_color_end']\"> ({{'e.g. %example%' | trans: {example:'#ff0000'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Color' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['contrast']\"> {{'Use a high-contrast color.' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Min. Width (px)' | trans}}<\/span>\n                    <div class=\"uk-form-controls\">\n                        <label><input id=\"wk-media_query\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['media_query']\" placeholder=\"e.g. 1024\"> {{'Enable parallax effect only on devices with larger screens then the min. width' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Title' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-title-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['title_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Content' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-opacity\">{{'Opacity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-opacity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_opacity_end']\"> ({{'%from% to %to%' | trans: {from:'0.0', to:'1.0'} }})\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatex\">{{'Horizontal (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatex\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatex_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-translatey\">{{'Vertical (px)' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-translatey\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_start']\" placeholder=\"0\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_translatey_end']\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-scale\">{{'Scale' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-content-scale\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_start']\" placeholder=\"1\"> to\n                        <input class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['content_scale_end']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Advanced' | trans}} ({{'Only Content and Text' | trans}})<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-viewport\">{{'Viewport' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-viewport\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['viewport']\" placeholder=\"1\"> {{'Animation end point, relative to viewport height' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-velocity\">{{'Velocity' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-velocity\" class=\"uk-form-width-mini\" type=\"text\" ng-model=\"widget.data['velocity']\" placeholder=\"0.5\"> {{'Easing of the animation' | trans}}\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['target']\"> {{'Animation plays as long as media element is visible' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Media' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['media']\"> {{'Show media' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\">{{'Image' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_width']\"> {{'Width (px)' | trans}}<\/label>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input class=\"uk-form-width-small\" type=\"text\" ng-model=\"widget.data['image_height']\"> {{'Height (px)' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'Text' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['title']\"> {{'Show title' | trans}}<\/label>\n                        <\/p>\n                        <p class=\"uk-form-controls-condensed\">\n                            <label><input type=\"checkbox\" ng-model=\"widget.data['content']\"> {{'Show content' | trans}}<\/label>\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-title-size\">{{'Title Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-title-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['title_size']\">\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                            <option value=\"large\">{{'Extra Large' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-content-size\">{{'Content Size' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-content-size\" class=\"uk-form-width-medium\" ng-model=\"widget.data['content_size']\">\n                            <option value=\"\">{{'Default' | trans}}<\/option>\n                            <option value=\"large\">{{'Text Large' | trans}}<\/option>\n                            <option value=\"h1\">H1<\/option>\n                            <option value=\"h2\">H2<\/option>\n                            <option value=\"h3\">H3<\/option>\n                            <option value=\"h4\">H4<\/option>\n                            <option value=\"h5\">H5<\/option>\n                            <option value=\"h6\">H6<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-text-align\">{{'Alignment' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-text-align\" class=\"uk-form-width-medium\" ng-model=\"widget.data['text_align']\">\n                            <option value=\"left\">{{'Left' | trans}}<\/option>\n                            <option value=\"right\">{{'Right' | trans}}<\/option>\n                            <option value=\"center\">{{'Center' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Link' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Display' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link']\"> {{'Show link' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-style\">{{'Style' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-link-style\" class=\"uk-form-width-medium\" ng-model=\"widget.data['link_style']\">\n                            <option value=\"text\">{{'Text' | trans}}<\/option>\n                            <option value=\"button\">{{'Button' | trans}}<\/option>\n                            <option value=\"primary\">{{'Button Primary' | trans}}<\/option>\n                            <option value=\"button-large\">{{'Button Large' | trans}}<\/option>\n                            <option value=\"primary-large\">{{'Button Large Primary' | trans}}<\/option>\n                            <option value=\"button-link\">{{'Button Link' | trans}}<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-link-text\">{{'Text' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-link-text\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['link_text']\">\n                    <\/div>\n                <\/div>\n\n                <h3 class=\"wk-form-heading\">{{'Width' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width\">{{'Phone Portrait' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width']\">\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-small\">{{'Phone Landscape' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-small\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_small']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-medium\">{{'Tablet' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-medium\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_medium']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                            <option value=\"4-5\">80%<\/option>\n                            <option value=\"9-10\">90%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-width-large\">{{'Desktop' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <select id=\"wk-width-large\" class=\"uk-form-width-medium\" ng-model=\"widget.data['width_large']\">\n                            <option value=\"\">{{'Inherit' | trans}}<\/option>\n                            <option value=\"1-3\">33%<\/option>\n                            <option value=\"2-5\">40%<\/option>\n                            <option value=\"1-2\">50%<\/option>\n                            <option value=\"3-5\">60%<\/option>\n                            <option value=\"2-3\">66%<\/option>\n                            <option value=\"7-10\">70%<\/option>\n                            <option value=\"3-4\">75%<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n            <\/li>\n            <li>\n\n                <h3 class=\"wk-form-heading\">{{'General' | trans}}<\/h3>\n\n                <div class=\"uk-form-row\">\n                    <span class=\"uk-form-label\">{{'Link Target' | trans}}<\/span>\n                    <div class=\"uk-form-controls uk-form-controls-text\">\n                        <label><input type=\"checkbox\" ng-model=\"widget.data['link_target']\"> {{'Open all links in a new window' | trans}}<\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"uk-form-row\">\n                    <label class=\"uk-form-label\" for=\"wk-class\">{{'HTML Class' | trans}}<\/label>\n                    <div class=\"uk-form-controls\">\n                        <input id=\"wk-class\" class=\"uk-form-width-medium\" type=\"text\" ng-model=\"widget.data['class']\">\n                    <\/div>\n                <\/div>\n\n            <\/li>\n        <\/ul>\n\n    <\/div>\n<\/div>\n"};

(function(b,g){b.module("Application",[]).factory("Application",["name",function(a){return b.extend({url:function(a,e){var c=[],f=this.config.route;b.forEach(b.extend({p:a},e),function(a,d){c.push(d+"="+a)});c.length&&(f+=(-1!=f.indexOf("?")?"&":"?")+c.join("&"));return f},baseUrl:function(){return this.config.url},templateUrl:function(a){return this.url("template",{name:a})}},g[a])}]).filter("first",["$filter",function(a){return function(d){return a("toArray")(d)[0]}}]).filter("length",["$filter",
function(a){return function(d){return a("toArray")(d).length}}]).filter("toArray",function(){return function(a){return b.isObject(a)?Object.keys(a).filter(function(a){return"$"!==a.charAt(0)}).map(function(b){return a[b]}):b.isArray(a)?a:[]}}).config(["$provide","$httpProvider",function(a,d){a.decorator("$templateCache",["$delegate","Application",function(a,c){b.forEach(c.templates,function(c,b){a.put(b,c)});return a}]);a.decorator("$templateRequest",["$delegate","Application",function(a,c){return function(b,
d){c.templates[b]||(b=c.templateUrl(b));return a(b,d)}}]);d.interceptors.push(["Application",function(a){return{request:function(b){if("PUT"==b.method||"DELETE"==b.method)b.headers["X-HTTP-Method-Override"]=b.method,b.method="POST";"POST"==b.method&&(b.headers["X-XSRF-TOKEN"]=a.config.csrf);return b}}}])}]);b.element(g.document).ready(function(){var a=b.element(this).find("[data-app]");b.forEach(a,function(a){var e=b.element(a).data("app");g[e]&&b.bootstrap(a,[e])})})})(angular,window);

(function(l,f){l.module("Application").factory("Translator",function(){return f.Translator}).config(["$provide",function(f){f.decorator("Translator",["$delegate","Application",function(f,h){f.locale=h.config.locale;for(var m in h.config.locales)for(var q in h.config.locales[m])f.add(q,h.config.locales[m][q]);return f}])}]).filter("trans",["Translator",function(f){return function(n,h){return f.trans(n,h)}}]).filter("transChoice",["Translator",function(f){return function(n,h,m){return f.transChoice(n,
h,m)}}])})(angular,window);
var Translator=function(l,f){function q(a,d){var b,e=Translator.placeHolderPrefix,f=Translator.placeHolderSuffix;for(b in d){var c=new RegExp(e+b+f,"g");c.test(a)&&(a=a.replace(c,d[b]))}return a}function n(a,d,b,e,p){b=b||e||p;if(f==g[b]){if(f==g[p])return a;b=p}if(f===d||null===d)for(e=0;e<k.length;e++)if(h(b,k[e],a)||h(p,k[e],a)){d=k[e];break}if(h(b,d,a))return g[b][d][a];for(var c,t;2<b.length;){e=b.length;c=b.split(/[\s_]+/);t=c[c.length-1];t=t.length;if(1===c.length)break;b=b.substring(0,e-(t+
1));if(h(b,d,a))return g[b][d][a]}return h(p,d,a)?g[p][d][a]:a}function h(a,d,b){return f==g[a]||f==g[a][d]||f==g[a][d][b]?!1:!0}function m(a){return"-Inf"===a?Number.NEGATIVE_INFINITY:"+Inf"===a||"Inf"===a?Number.POSITIVE_INFINITY:parseInt(a,10)}function x(a,d){var b=d;"pt_BR"===b&&(b="xbr");3<b.length&&(b=b.split("_")[0]);switch(b){case "bo":case "dz":case "id":case "ja":case "jv":case "ka":case "km":case "kn":case "ko":case "ms":case "th":case "tr":case "vi":case "zh":return 0;case "af":case "az":case "bn":case "bg":case "ca":case "da":case "de":case "el":case "en":case "eo":case "es":case "et":case "eu":case "fa":case "fi":case "fo":case "fur":case "fy":case "gl":case "gu":case "ha":case "he":case "hu":case "is":case "it":case "ku":case "lb":case "ml":case "mn":case "mr":case "nah":case "nb":case "ne":case "nl":case "nn":case "no":case "om":case "or":case "pa":case "pap":case "ps":case "pt":case "so":case "sq":case "sv":case "sw":case "ta":case "te":case "tk":case "ur":case "zu":return 1==
a?0:1;case "am":case "bh":case "fil":case "fr":case "gun":case "hi":case "ln":case "mg":case "nso":case "xbr":case "ti":case "wa":return 0===a||1==a?0:1;case "be":case "bs":case "hr":case "ru":case "sr":case "uk":return 1==a%10&&11!=a%100?0:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?1:2;case "cs":case "sk":return 1==a?0:2<=a&&4>=a?1:2;case "ga":return 1==a?0:2==a?1:2;case "lt":return 1==a%10&&11!=a%100?0:2<=a%10&&(10>a%100||20<=a%100)?1:2;case "sl":return 1==a%100?0:2==a%100?1:3==a%100||4==a%100?2:3;
case "mk":return 1==a%10?0:1;case "mt":return 1==a?0:0===a||1<a%100&&11>a%100?1:10<a%100&&20>a%100?2:3;case "lv":return 0===a?0:1==a%10&&11!=a%100?1:2;case "pl":return 1==a?0:2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?1:2;case "cy":return 1==a?0:2==a?1:8==a||11==a?2:3;case "ro":return 1==a?0:0===a||0<a%100&&20>a%100?1:2;case "ar":return 0===a?0:1==a?1:2==a?2:3<=a&&10>=a?3:11<=a&&99>=a?4:5;default:return 0}}var g={},k=[],u=new RegExp(/^\w+\: +(.+)$/),v=new RegExp(/^\s*((\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]]))\s?(.+?)$/),
w=new RegExp(/^\s*(\{\s*(\-?\d+[\s*,\s*\-?\d+]*)\s*\})|([\[\]])\s*(-Inf|\-?\d+)\s*,\s*(\+?Inf|\-?\d+)\s*([\[\]])/);return{locale:l.documentElement.lang.replace("-","_"),fallback:"en",placeHolderPrefix:"%",placeHolderSuffix:"%",defaultDomain:"messages",pluralSeparator:"|",add:function(a,d,b,e){e=e||this.locale||this.fallback;b=b||this.defaultDomain;g[e]||(g[e]={});g[e][b]||(g[e][b]={});g[e][b][a]=d;a:{for(a=0;a<k.length;a++)if(b===k[a]){a=!0;break a}a=!1}!1===a&&k.push(b);return this},trans:function(a,
d,b,e){a=n(a,b,e,this.locale,this.fallback);return q(a,d||{})},transChoice:function(a,d,b,e,h){var c=n(a,e,h,this.locale,this.fallback);d=parseInt(d,10);if(f!=c&&!isNaN(d))a:{h=h||this.locale||this.fallback;var g,k;a=[];e=[];var r=c.split(Translator.pluralSeparator),c=[];for(g=0;g<r.length;g++)c=r[g],v.test(c)?(c=c.match(v),a[c[0]]=c[c.length-1]):u.test(c)?(c=c.match(u),e.push(c[1])):e.push(c);for(k in a)if(w.test(k))if(c=k.match(w),c[1]){var c=c[2].split(","),l;for(l in c)if(d==c[l]){c=a[k];break a}}else if(g=
m(c[4]),r=m(c[5]),("["===c[3]?d>=g:d>g)&&("]"===c[6]?d<=r:d<r)){c=a[k];break a}c=e[x(d,h)]||e[0]||f}return q(c,b||{})},fromJSON:function(a){"string"===typeof a&&(a=JSON.parse(a));a.locale&&(this.locale=a.locale);a.fallback&&(this.fallback=a.fallback);a.defaultDomain&&(this.defaultDomain=a.defaultDomain);if(a.translations)for(var d in a.translations)for(var b in a.translations[d])for(var e in a.translations[d][b])this.add(e,a.translations[d][b][e],b,d);return this},reset:function(){g={};k=[];this.locale=
l.documentElement.lang.replace("-","_")}}}(document,void 0);

widgetkit/uikit2-f1984174.js000064400000240265152177723720011337 0ustar00/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");i=t(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return i.load=function(t,e,n,o){var s,a=t.split(","),r=[],l=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!l)throw new Error("Please define base path to UIkit in the requirejs config.");for(s=0;s<a.length;s+=1){var c=a[s].replace(/\./g,"/");r.push(l+"/components/"+c)}e(r,function(){n(i)})},i})}(function(t){"use strict";if(window.UIkit2)return window.UIkit2;var i={},e=window.UIkit||void 0;if(i.version="2.27.5",i.noConflict=function(){return e&&(window.UIkit=e,t.UIkit=e,t.fn.uk=e.fn),i},window.UIkit2=i,e||(window.UIkit=i),i.$=t,i.$doc=i.$(document),i.$win=i.$(window),i.$html=i.$("html"),i.support={},i.support.transition=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),i.support.animation=function(){var t=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}();return t&&{end:t}}(),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var n=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(n+16,i);return setTimeout(function(){t(n=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),i.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,i.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,i.Utils={},i.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},i.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(e){return!1}},i.Utils.debounce=function(t,i,e){var n;return function(){var o=this,s=arguments,a=function(){n=null,e||t.apply(o,s)},r=e&&!n;clearTimeout(n),n=setTimeout(a,i),r&&t.apply(o,s)}},i.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},i.Utils.removeCssRules=function(t){var i,e,n,o,s,a,r,l,c,u;t&&setTimeout(function(){try{for(u=document.styleSheets,o=0,r=u.length;r>o;o++){for(n=u[o],e=[],n.cssRules=n.cssRules,i=s=0,l=n.cssRules.length;l>s;i=++s)n.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(n.cssRules[i].selectorText)&&e.unshift(i);for(a=0,c=e.length;c>a;a++)n.deleteRule(e[a])}}catch(d){}},0)},i.Utils.isInView=function(e,n){var o=t(e);if(!o.is(":visible"))return!1;var s=i.$win.scrollLeft(),a=i.$win.scrollTop(),r=o.offset(),l=r.left,c=r.top;return n=t.extend({topoffset:0,leftoffset:0},n),c+o.height()>=a&&c-n.topoffset<=a+i.$win.height()&&l+o.width()>=s&&l-n.leftoffset<=s+i.$win.width()?!0:!1},i.Utils.checkDisplay=function(e,n){var o=i.$("[data-uk-margin], [data-uk-grid-match], [data-uk-grid-margin], [data-uk-check-display]",e||document);return e&&!o.length&&(o=t(e)),o.trigger("display.uk.check"),n&&("string"!=typeof n&&(n='[class*="uk-animation-"]'),o.find(n).each(function(){var t=i.$(this),e=t.attr("class"),n=e.match(/uk-animation-(.+)/);t.removeClass(n[0]).width(),t.addClass(n[0])})),o},i.Utils.options=function(e){if("string"!=t.type(e))return e;-1!=e.indexOf(":")&&"}"!=e.trim().substr(-1)&&(e="{"+e+"}");var n=e?e.indexOf("{"):-1,o={};if(-1!=n)try{o=i.Utils.str2json(e.substr(n))}catch(s){}return o},i.Utils.animate=function(e,n){var o=t.Deferred();return e=i.$(e),e.css("display","none").addClass(n).one(i.support.animation.end,function(){e.removeClass(n),o.resolve()}),e.css("display",""),o.promise()},i.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},i.Utils.template=function(t,i){for(var e,n,o,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],c=0;r<a.length;){if(e=a[r],e.match(/\{\{\s*(.+?)\s*\}\}/))switch(r+=1,e=a[r],n=e[0],o=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),n){case"~":l.push("for(var $i=0;$i<"+o+".length;$i++) { var $item = "+o+"[$i];"),c++;break;case":":l.push("for(var $key in "+o+") { var $val = "+o+"[$key];"),c++;break;case"#":l.push("if("+o+") {"),c++;break;case"^":l.push("if(!"+o+") {"),c++;break;case"/":l.push("}"),c--;break;case"!":l.push("__ret.push("+o+");");break;default:l.push("__ret.push(escape("+o+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",c?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},i.Utils.focus=function(i,e){if(i=t(i),!i.length)return i;var n,o=i.find("[autofocus]:first");return o.length?o.focus():(o=i.find(":input"+(e&&","+e||"")).first(),o.length?o.focus():(i.attr("tabindex")||(n=1e3,i.attr("tabindex",n)),i[0].focus(),n&&i.attr("tabindex",""),i))},i.Utils.events={},i.Utils.events.click=i.support.touch?"tap":"click",i.fn=function(e,n){var o=arguments,s=e.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),a=s[1],r=s[2];return i[a]?this.each(function(){var e=t(this),s=e.data(a);s||e.data(a,s=i[a](this,r?void 0:n)),r&&s[r].apply(s,Array.prototype.slice.call(o,1))}):(t.error("UIkit component ["+a+"] does not exist."),this)},t.UIkit=i,t.fn.uk=i.fn,i.langdirection="rtl"==i.$html.attr("dir")?"right":"left",i.components={},i.component=function(e,n,o){if(i.components[e]&&!o)return i.components[e];var s=function(n,o){var a=this;return this.UIkit=i,this.element=n?i.$(n):null,this.options=t.extend(!0,{},this.defaults,o),this.plugins={},this.element&&this.element.data(e,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(s.plugins)).forEach(function(t){s.plugins[t].init&&(s.plugins[t].init(a),a.plugins[t]=!0)}),this.trigger("init.uk.component",[e,this]),this};return s.plugins={},t.extend(!0,s.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,e,n){return i.$(this.element||this).on(t,e,n)},one:function(t,e,n){return i.$(this.element||this).one(t,e,n)},off:function(t){return i.$(this.element||this).off(t)},trigger:function(t,e){return i.$(this.element||this).trigger(t,e)},find:function(t){return i.$(this.element?this.element:[]).find(t)},proxy:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=function(){return t[i].apply(t,arguments)})})},mixin:function(t,i){var e=this;i.split(" ").forEach(function(i){e[i]||(e[i]=t[i].bind(e))})},option:function(){return 1==arguments.length?this.options[arguments[0]]||void 0:(2==arguments.length&&(this.options[arguments[0]]=arguments[1]),void 0)}},n),this.components[e]=s,this[e]=function(){var n,o;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?n=t(arguments[0]):o=arguments[0];break;case 2:n=t(arguments[0]),o=arguments[1]}return n&&n.data(e)?n.data(e):new i.components[e](n,o)},i.domready&&i.component.boot(e),s},i.plugin=function(t,i,e){this.components[t].plugins[i]=e},i.component.boot=function(t){i.components[t].prototype&&i.components[t].prototype.boot&&!i.components[t].booted&&(i.components[t].prototype.boot.apply(i,[]),i.components[t].booted=!0)},i.component.bootComponents=function(){for(var t in i.components)i.component.boot(t)},i.domObservers=[],i.domready=!1,i.ready=function(t){i.domObservers.push(t),i.domready&&t(document)},i.on=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready&&e.apply(i.$doc),i.$doc.on(t,e,n)},i.one=function(t,e,n){return t&&t.indexOf("ready.uk.dom")>-1&&i.domready?(e.apply(i.$doc),i.$doc):i.$doc.one(t,e,n)},i.trigger=function(t,e){return i.$doc.trigger(t,e)},i.domObserve=function(t,e){i.support.mutationobserver&&(e=e||function(){},i.$(t).each(function(){var t=this,n=i.$(t);if(!n.data("observer"))try{var o=new i.support.mutationobserver(i.Utils.debounce(function(){e.apply(t,[n]),n.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});o.observe(t,{childList:!0,subtree:!0}),n.data("observer",o)}catch(s){}}))},i.init=function(t){t=t||document,i.domObservers.forEach(function(i){i(t)})},i.on("domready.uk.dom",function(){i.init(),i.domready&&i.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",function(){var e=function(){i.$body=i.$("body"),i.trigger("beforeready.uk.dom"),i.component.bootComponents();var e=requestAnimationFrame(function(){var t={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},n=function(){var o=window.pageXOffset,s=window.pageYOffset;(t.x!=o||t.y!=s)&&(t.dir.x=o!=t.x?o>t.x?1:-1:0,t.dir.y=s!=t.y?s>t.y?1:-1:0,t.x=o,t.y=s,i.$doc.trigger("scrolling.uk.document",[{dir:{x:t.dir.x,y:t.dir.y},x:o,y:s}])),cancelAnimationFrame(e),e=requestAnimationFrame(n)};return i.support.touch&&i.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",n),(t.x||t.y)&&n(),n}());if(i.trigger("domready.uk.dom"),i.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&i.$win.on("load orientationchange resize",i.Utils.debounce(function(){var i=function(){return t(".uk-height-viewport").css("height",window.innerHeight),i};return i()}(),100)),i.trigger("afterready.uk.dom"),i.domready=!0,i.support.mutationobserver){var n=i.Utils.debounce(function(){requestAnimationFrame(function(){i.init(document.body)})},10);new i.support.mutationobserver(function(t){var i=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var e,n=0;n<t.addedNodes.length;++n)if(e=t.addedNodes[n],e.outerHTML&&-1!==e.outerHTML.indexOf("data-uk-"))return(i=!0)&&!1;return!0}),i&&n()}).observe(document.body,{childList:!0,subtree:!0})}};return("complete"==document.readyState||"interactive"==document.readyState)&&setTimeout(e),e}()),i.$html.addClass(i.support.touch?"uk-touch":"uk-notouch"),i.support.touch){var n,o=!1,s="uk-hover",a=".uk-overlay, .uk-overlay-hover, .uk-overlay-toggle, .uk-animation-hover, .uk-has-hover";i.$html.on("mouseenter touchstart MSPointerDown pointerdown",a,function(){o&&t("."+s).removeClass(s),o=t(this).addClass(s)}).on("mouseleave touchend MSPointerUp pointerup",function(i){n=t(i.target).parents(a),o&&o.not(n).removeClass(s)})}return i}),function(t){function i(t,i,e,n){return Math.abs(t-i)>=Math.abs(e-n)?t-i>0?"Left":"Right":e-n>0?"Up":"Down"}function e(){c=null,d.last&&(void 0!==d.el&&d.el.trigger("longTap"),d={})}function n(){c&&clearTimeout(c),c=null}function o(){a&&clearTimeout(a),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),a=r=l=c=null,d={}}function s(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}if(!t.fn.swipeLeft){var a,r,l,c,u,d={},h=750,p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&navigator.msMaxTouchPoints>0||navigator.pointerEnabled&&navigator.maxTouchPoints>0;t(function(){var g,v,k,w=0,b=0;"MSGesture"in window&&(u=new MSGesture,u.target=document.body),t(document).on("MSGestureEnd gestureend",function(t){var i=t.originalEvent.velocityX>1?"Right":t.originalEvent.velocityX<-1?"Left":t.originalEvent.velocityY>1?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(i){("MSPointerDown"!=i.type||s(i.originalEvent))&&(k="MSPointerDown"==i.type||"pointerdown"==i.type?i:i.originalEvent.touches[0],g=Date.now(),v=g-(d.last||g),d.el=t("tagName"in k.target?k.target:k.target.parentNode),a&&clearTimeout(a),d.x1=k.pageX,d.y1=k.pageY,v>0&&250>=v&&(d.isDoubleTap=!0),d.last=g,c=setTimeout(e,h),i.originalEvent&&i.originalEvent.pointerId&&u&&("MSPointerDown"==i.type||"pointerdown"==i.type||"touchstart"==i.type)&&u.addPointer(i.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||s(t.originalEvent))&&(k="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],n(),d.x2=k.pageX,d.y2=k.pageY,w+=Math.abs(d.x1-d.x2),b+=Math.abs(d.y1-d.y2))}).on("touchend MSPointerUp pointerup",function(e){("MSPointerUp"!=e.type||s(e.originalEvent))&&(n(),d.x2&&Math.abs(d.x1-d.x2)>30||d.y2&&Math.abs(d.y1-d.y2)>30?l=setTimeout(function(){void 0!==d.el&&(d.el.trigger("swipe"),d.el.trigger("swipe"+i(d.x1,d.x2,d.y1,d.y2))),d={}},0):"last"in d&&(isNaN(w)||30>w&&30>b?r=setTimeout(function(){var i=t.Event("tap");i.cancelTouch=o,void 0!==d.el&&d.el.trigger(i),d.isDoubleTap?(void 0!==d.el&&d.el.trigger("doubleTap"),d={}):a=setTimeout(function(){a=null,void 0!==d.el&&d.el.trigger("singleTap"),d={}},250)},0):d={},w=b=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&o()}),t(window).on("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){t.fn[i]=function(e){return t(this).on(i,e)}})}}(jQuery),function(t){"use strict";var i=[];t.component("stackMargin",{defaults:{cls:"uk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-margin]",i).each(function(){var i=t.$(this);i.data("stackMargin")||t.stackMargin(i,t.Utils.options(i.attr("data-uk-margin")))})})},init:function(){var e=this;t.$win.on("resize orientationchange",function(){var i=function(){e.process()};return t.$(function(){i(),t.$win.on("load",i)}),t.Utils.debounce(i,20)}()),this.on("display.uk.check",function(){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.process()}),i.push(this)},process:function(){var i=this.element.children();if(t.Utils.stackMargin(i,this.options),!this.options.rowfirst||!i.length)return this;var e={},n=!1;return i.removeClass(this.options.rowfirst).each(function(i,o){o=t.$(this),"none"!=this.style.display&&(i=o.offset().left,((e[i]=e[i]||[])&&e[i]).push(this),n=n===!1?i:Math.min(n,i))}),t.$(e[n]).addClass(this.options.rowfirst),this}}),function(){var i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),n=i/e,o=Math.floor(n*t.data("height"));t.css({height:e>i?o:t.data("height")})}};t.component("responsiveElement",{defaults:{},boot:function(){t.ready(function(i){t.$("iframe.uk-responsive-width, [data-uk-responsive]",i).each(function(){var i,e=t.$(this);e.data("responsiveElement")||(i=t.responsiveElement(e,{}))})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),t.$win.on("resize load",t.Utils.debounce(function(){i.forEach(function(t){e(t)})},15))}(),t.Utils.stackMargin=function(i,e){e=t.$.extend({cls:"uk-margin-small-top"},e),i=t.$(i).removeClass(e.cls);var n=!1;i.each(function(i,e,o,s){s=t.$(this),"none"!=s.css("display")&&(i=s.offset(),e=s.outerHeight(),o=i.top+e,s.data({ukMarginPos:o,ukMarginTop:i.top}),(n===!1||i.top<n.top)&&(n={top:i.top,left:i.left,pos:o}))}).each(function(i){i=t.$(this),"none"!=i.css("display")&&i.data("ukMarginTop")>n.top&&i.data("ukMarginPos")>n.pos&&i.addClass(e.cls)})},t.Utils.matchHeights=function(i,e){i=t.$(i).css("min-height",""),e=t.$.extend({row:!0},e);var n=function(i){if(!(i.length<2)){var e=0;i.each(function(){e=Math.max(e,t.$(this).outerHeight())}).each(function(){var i=t.$(this),n=e-("border-box"==i.css("box-sizing")?0:i.outerHeight()-i.height());i.css("min-height",n+"px")})}};e.row?(i.first().width(),setTimeout(function(){var e=!1,o=[];i.each(function(){var i=t.$(this),s=i.offset().top;s!=e&&o.length&&(n(t.$(o)),o=[],s=i.offset().top),o.push(i),e=s}),o.length&&n(t.$(o))},0)):n(i)},function(i){t.Utils.inlineSvg=function(e,n){t.$(e||'img[src$=".svg"]',n||document).each(function(){var e=t.$(this),n=e.attr("src");if(!i[n]){var o=t.$.Deferred();t.$.get(n,{nc:Math.random()},function(i){o.resolve(t.$(i).find("svg"))}),i[n]=o.promise()}i[n].then(function(i){var n=t.$(i).clone();e.attr("id")&&n.attr("id",e.attr("id")),e.attr("class")&&n.attr("class",e.attr("class")),e.attr("style")&&n.attr("style",e.attr("style")),e.attr("width")&&(n.attr("width",e.attr("width")),e.attr("height")||n.removeAttr("height")),e.attr("height")&&(n.attr("height",e.attr("height")),e.attr("width")||n.removeAttr("width")),e.replaceWith(n)})})},t.ready(function(i){t.Utils.inlineSvg("[data-uk-svg]",i)})}({}),t.Utils.getCssVar=function(t){var i,e=document.documentElement,n=e.appendChild(document.createElement("div"));n.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(n,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(o){i=void 0}return e.removeChild(n),i}}(UIkit2),function(t){"use strict";function i(i,e){e=t.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},e);var n=i.offset().top-e.offset,o=t.$doc.height(),s=window.innerHeight;n+s>o&&(n=o-s),t.$("html,body").stop().animate({scrollTop:n},e.duration,e.transition).promise().done(e.complete)}t.component("smoothScroll",{boot:function(){t.$html.on("click.smooth-scroll.uikit","[data-uk-smooth-scroll]",function(){var i=t.$(this);if(!i.data("smoothScroll")){{t.smoothScroll(i,t.Utils.options(i.attr("data-uk-smooth-scroll")))}i.trigger("click")}return!1})},init:function(){var e=this;this.on("click",function(n){n.preventDefault(),i(t.$(this.hash).length?t.$(this.hash):t.$("body"),e.options)})}}),t.Utils.scrollToElement=i,t.$.easing.easeOutExpo||(t.$.easing.easeOutExpo=function(t,i,e,n,o){return i==o?e+n:n*(-Math.pow(2,-10*i/o)+1)+e})}(UIkit2),function(t){"use strict";var i=t.$win,e=t.$doc,n=[],o=function(){for(var t=0;t<n.length;t++)window.requestAnimationFrame.apply(window,[n[t].check])};t.component("scrollspy",{defaults:{target:!1,cls:"uk-scrollspy-inview",initcls:"uk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){e.on("scrolling.uk.document",o),i.on("load resize orientationchange",t.Utils.debounce(o,50)),t.ready(function(i){t.$("[data-uk-scrollspy]",i).each(function(){var i=t.$(this);if(!i.data("scrollspy")){t.scrollspy(i,t.Utils.options(i.attr("data-uk-scrollspy")))}})})},init:function(){var i,e=this,o=this.options.cls.split(/,/),s=function(){var n=e.options.target?e.element.find(e.options.target):e.element,s=1===n.length?1:0,a=0;n.each(function(){var n=t.$(this),r=n.data("inviewstate"),l=t.Utils.isInView(n,e.options),c=n.attr("data-uk-scrollspy-cls")||o[a].trim();!l||r||n.data("scrollspy-idle")||(i||(n.addClass(e.options.initcls),e.offset=n.offset(),i=!0,n.trigger("init.uk.scrollspy")),n.data("scrollspy-idle",setTimeout(function(){n.addClass("uk-scrollspy-inview").toggleClass(c).width(),n.trigger("inview.uk.scrollspy"),n.data("scrollspy-idle",!1),n.data("inviewstate",!0)},e.options.delay*s)),s++),!l&&r&&e.options.repeat&&(n.data("scrollspy-idle")&&(clearTimeout(n.data("scrollspy-idle")),n.data("scrollspy-idle",!1)),n.removeClass("uk-scrollspy-inview").toggleClass(c),n.data("inviewstate",!1),n.trigger("outview.uk.scrollspy")),a=o[a+1]?a+1:0})};s(),this.check=s,n.push(this)}});var s=[],a=function(){for(var t=0;t<s.length;t++)window.requestAnimationFrame.apply(window,[s[t].check])};t.component("scrollspynav",{defaults:{cls:"uk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){e.on("scrolling.uk.document",a),i.on("resize orientationchange",t.Utils.debounce(a,50)),t.ready(function(i){t.$("[data-uk-scrollspy-nav]",i).each(function(){var i=t.$(this);if(!i.data("scrollspynav")){t.scrollspynav(i,t.Utils.options(i.attr("data-uk-scrollspy-nav")))}})})},init:function(){var e,n=[],o=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&n.push(this.getAttribute("href"))}),a=t.$(n.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,c=this,u=function(){e=[];for(var n=0;n<a.length;n++)t.Utils.isInView(a.eq(n),c.options)&&e.push(a.eq(n));if(e.length){var s,u=i.scrollTop(),d=function(){for(var t=0;t<e.length;t++)if(e[t].offset().top-c.options.topoffset>=u)return e[t]}();if(!d)return;c.options.closest?(o.blur().closest(l).removeClass(r),s=o.filter("a[href='#"+d.attr("id")+"']").closest(l).addClass(r)):s=o.removeClass(r).filter("a[href='#"+d.attr("id")+"']").addClass(r),c.element.trigger("inview.uk.scrollspynav",[d,s])}};this.options.smoothscroll&&t.smoothScroll&&o.each(function(){t.smoothScroll(this,c.options.smoothscroll)}),u(),this.element.data("scrollspynav",this),this.check=u,s.push(this)}})}(UIkit2),function(t){"use strict";var i=[];t.component("toggle",{defaults:{target:!1,cls:"uk-hidden",animation:!1,duration:200},boot:function(){t.ready(function(e){t.$("[data-uk-toggle]",e).each(function(){var i=t.$(this);if(!i.data("toggle")){t.toggle(i,t.Utils.options(i.attr("data-uk-toggle")))}}),setTimeout(function(){i.forEach(function(t){t.getToggles()})},0)})},init:function(){var t=this;this.aria=-1!==this.options.cls.indexOf("uk-hidden"),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle()}),i.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&t.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var n=t.$(this);n.hasClass(i.options.cls)?(n.toggleClass(i.options.cls),t.Utils.animate(n,e[0]).then(function(){n.css("animation-duration",""),t.Utils.checkDisplay(n)})):t.Utils.animate(this,e[1]+" uk-animation-reverse").then(function(){n.toggleClass(i.options.cls).css("animation-duration",""),t.Utils.checkDisplay(n)})})}else this.totoggle.toggleClass(this.options.cls),t.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?t.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){t.$(this).attr("aria-hidden",t.$(this).hasClass("uk-hidden"))})}})}(UIkit2),function(t){"use strict";t.component("alert",{defaults:{fade:!0,duration:200,trigger:".uk-alert-close"},boot:function(){t.$html.on("click.alert.uikit","[data-uk-alert]",function(i){var e=t.$(this);if(!e.data("alert")){var n=t.alert(e,t.Utils.options(e.attr("data-uk-alert")));t.$(i.target).is(n.options.trigger)&&(i.preventDefault(),n.close())}})},init:function(){var t=this;this.on("click",this.options.trigger,function(i){i.preventDefault(),t.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2),function(t){"use strict";t.component("buttonRadio",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttonradio.uikit","[data-uk-button-radio]",function(i){var e=t.$(this);if(!e.data("buttonRadio")){var n=t.buttonRadio(e,t.Utils.options(e.attr("data-uk-button-radio"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),i.find(i.options.target).not(n).removeClass(i.options.activeClass).blur(),n.addClass(i.options.activeClass),i.find(i.options.target).not(n).attr("aria-checked","false"),n.attr("aria-checked","true"),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("buttonCheckbox",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){t.$html.on("click.buttoncheckbox.uikit","[data-uk-button-checkbox]",function(i){var e=t.$(this);if(!e.data("buttonCheckbox")){var n=t.buttonCheckbox(e,t.Utils.options(e.attr("data-uk-button-checkbox"))),o=t.$(i.target);o.is(n.options.target)&&o.trigger("click")}})},init:function(){var i=this;this.find(i.options.target).attr("aria-checked","false").filter("."+i.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(e){var n=t.$(this);n.is('a[href="#"]')&&e.preventDefault(),n.toggleClass(i.options.activeClass).blur(),n.attr("aria-checked",n.hasClass(i.options.activeClass)),i.trigger("change.uk.button",[n])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),t.component("button",{defaults:{},boot:function(){t.$html.on("click.button.uikit","[data-uk-button]",function(){var i=t.$(this);if(!i.data("button")){{t.button(i,t.Utils.options(i.attr("data-uk-button")))}i.trigger("click")}})},init:function(){var t=this;this.element.attr("aria-pressed",this.element.hasClass("uk-active")),this.on("click",function(i){t.element.is('a[href="#"]')&&i.preventDefault(),t.toggle(),t.trigger("change.uk.button",[t.element.blur().hasClass("uk-active")])})},toggle:function(){this.element.toggleClass("uk-active"),this.element.attr("aria-pressed",this.element.hasClass("uk-active"))}})}(UIkit2),function(t){"use strict";function i(i,e,n,o){if(i=t.$(i),e=t.$(e),n=n||window.innerWidth,o=o||i.offset(),e.length){var s=e.outerWidth();if(i.css("min-width",s),"right"==t.langdirection){var a=n-(e.offset().left+s),r=n-(i.offset().left+i.outerWidth());i.css("margin-right",a-r)}else i.css("margin-left",e.offset().left-o.left)}}var e,n=!1,o={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};t.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:t.$win,delay:0,dropdownSelector:".uk-dropdown,.uk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var i=t.support.touch?"click":"mouseenter";t.$html.on(i+".dropdown.uikit focus pointerdown","[data-uk-dropdown]",function(e){var n=t.$(this);if(!n.data("dropdown")){var o=t.dropdown(n,t.Utils.options(n.attr("data-uk-dropdown")));("click"==e.type||"mouseenter"==e.type&&"hover"==o.options.mode)&&o.element.trigger(i),o.dropdown.length&&e.preventDefault()}})},init:function(){var i=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==t.$.inArray(t.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("uk-dropdown-center"),this.justified=this.options.justify?t.$(this.options.justify):!1,this.boundary=t.$(this.options.boundary),this.boundary.length||(this.boundary=t.$win),this.dropdown.hasClass("uk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("uk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("uk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("uk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||t.support.touch?this.on("click.uk.dropdown",function(e){var n=t.$(e.target);n.parents(i.options.dropdownSelector).length||((n.is("a[href='#']")||n.parent().is("a[href='#']")||i.dropdown.length&&!i.dropdown.is(":visible"))&&e.preventDefault(),n.blur()),i.element.hasClass("uk-open")?(!i.dropdown.find(e.target).length||n.is(".uk-dropdown-close")||n.parents(".uk-dropdown-close").length)&&i.hide():i.show()}):this.on("mouseenter",function(){i.trigger("pointerenter.uk.dropdown",[i]),i.remainIdle&&clearTimeout(i.remainIdle),e&&clearTimeout(e),n&&n==i||(e=n&&n!=i?setTimeout(function(){e=setTimeout(i.show.bind(i),i.options.delay)},i.options.hoverDelayIdle):setTimeout(i.show.bind(i),i.options.delay))}).on("mouseleave",function(){e&&clearTimeout(e),i.remainIdle=setTimeout(function(){n&&n==i&&i.hide()},i.options.remaintime),i.trigger("pointerleave.uk.dropdown",[i])}).on("click",function(e){var o=t.$(e.target);return i.remainIdle&&clearTimeout(i.remainIdle),n&&n==i?((!i.dropdown.find(e.target).length||o.is(".uk-dropdown-close")||o.parents(".uk-dropdown-close").length)&&i.hide(),void 0):((o.is("a[href='#']")||o.parent().is("a[href='#']"))&&e.preventDefault(),i.show(),void 0)})},show:function(){t.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),e&&clearTimeout(e),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("uk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),t.Utils.checkDisplay(this.dropdown,!0),t.Utils.focus(this.dropdown),n=this,this.registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("uk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;t.$html.off("click.outer.dropdown"),setTimeout(function(){t.$html.on("click.outer.dropdown",function(o){e&&clearTimeout(e);t.$(o.target);n!=i||i.element.find(o.target).length||(i.hide(!0),t.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("uk-dropdown-top uk-dropdown-bottom uk-dropdown-left uk-dropdown-right uk-dropdown-stack uk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var e,n=t.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),s=this.options.offset,a=this.dropdown,r=(a.show().offset()||{left:0,top:0},a.outerWidth()),l=a.outerHeight(),c=this.boundary.width(),u=(this.boundary[0]!==window&&this.boundary.offset()?this.boundary.offset():{top:0,left:0},this.options.pos),d={"bottom-left":{top:0+n.height+s,left:0},"bottom-right":{top:0+n.height+s,left:0+n.width-r},"bottom-center":{top:0+n.height+s,left:0+n.width/2-r/2},"top-left":{top:0-l-s,left:0},"top-right":{top:0-l-s,left:0+n.width-r},"top-center":{top:0-l-s,left:0+n.width/2-r/2},"left-top":{top:0,left:0-r-s},"left-bottom":{top:0+n.height-l,left:0-r-s},"left-center":{top:0+n.height/2-l/2,left:0-r-s},"right-top":{top:0,left:0+n.width+s},"right-bottom":{top:0+n.height-l,left:0+n.width+s},"right-center":{top:0+n.height/2-l/2,left:0+n.width+s}},h={};
if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.length)i(a.css({left:0}),this.justified,c);else if(this.options.preventflip!==!0){var p;switch(this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)){case"x":"x"!==this.options.preventflip&&(p=o.x[u]||"right-top");break;case"y":"y"!==this.options.preventflip&&(p=o.y[u]||"top-left");break;case"xy":this.options.preventflip||(p=o.xy[u]||"right-bottom")}p&&(e=p.split("-"),h=d[p]?d[p]:d["bottom-left"],a.addClass("uk-dropdown-autoflip"),this.checkBoundary(n.left+h.left,n.top+h.top,r,l,c)&&(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"]))}r>c&&(a.addClass("uk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),a.css(h).css("display","").addClass("uk-dropdown-"+e[0])}},checkBoundary:function(i,e,n,o,s){var a="";return(0>i||i-t.$win.scrollLeft()+n>s)&&(a+="x"),(e-t.$win.scrollTop()<0||e-t.$win.scrollTop()+o>window.innerHeight)&&(a+="y"),a}}),t.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){t.ready(function(i){t.$("[data-uk-dropdown-overlay]",i).each(function(){var i=t.$(this);i.data("dropdownOverlay")||t.dropdownOverlay(i,t.Utils.options(i.attr("data-uk-dropdown-overlay")))})})},init:function(){var e=this;this.justified=this.options.justify?t.$(this.options.justify):!1,this.overlay=this.element.find("uk-dropdown-overlay"),this.overlay.length||(this.overlay=t.$('<div class="uk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,n){e.dropdown=n,e.justified&&e.justified.length&&i(e.overlay.css({display:"block",marginLeft:"",marginRight:""}),e.justified,e.justified.outerWidth())},"show.uk.dropdown":function(){var i=e.dropdown.dropdown.outerHeight(!0);e.dropdown.element.removeClass("uk-open"),e.overlay.stop().css("display","block").animate({height:i},e.options.duration,function(){e.dropdown.dropdown.css("visibility",""),e.dropdown.element.addClass("uk-open"),t.Utils.checkDisplay(e.dropdown.dropdown,!0)}),e.pointerleave=!1},"hide.uk.dropdown":function(){e.overlay.stop().animate({height:0},e.options.duration)},"pointerenter.uk.dropdown":function(){clearTimeout(e.remainIdle)},"pointerleave.uk.dropdown":function(){e.pointerleave=!0}}),this.overlay.on({mouseenter:function(){e.remainIdle&&(clearTimeout(e.dropdown.remainIdle),clearTimeout(e.remainIdle))},mouseleave:function(){e.pointerleave&&n&&(e.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2),function(t){"use strict";var i=[];t.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){t.ready(function(i){t.$("[data-uk-grid-match]",i).each(function(){var i,e=t.$(this);e.data("gridMatchHeight")||(i=t.gridMatchHeight(e,t.Utils.options(e.attr("data-uk-grid-match"))))})})},init:function(){var e=this;this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length&&(t.$win.on("load resize orientationchange",function(){var i=function(){e.element.is(":visible")&&e.match()};return t.$(function(){i()}),t.Utils.debounce(i,50)}()),this.options.observe&&t.domObserve(this.element,function(){e.element.is(":visible")&&e.match()}),this.on("display.uk.check",function(){this.element.is(":visible")&&this.match()}.bind(this)),i.push(this))},match:function(){var i=this.columns.filter(":visible:first");if(i.length){var e=Math.ceil(100*parseFloat(i.css("width"))/parseFloat(i.parent().css("width")))>=100;return e&&!this.options.ignorestacked?this.revert():t.Utils.matchHeights(this.elements,this.options),this}},revert:function(){return this.elements.css("min-height",""),this}}),t.component("gridMargin",{defaults:{cls:"uk-grid-margin",rowfirst:"uk-row-first"},boot:function(){t.ready(function(i){t.$("[data-uk-grid-margin]",i).each(function(){var i,e=t.$(this);e.data("gridMargin")||(i=t.gridMargin(e,t.Utils.options(e.attr("data-uk-grid-margin"))))})})},init:function(){t.stackMargin(this.element,this.options)}})}(UIkit2),function(t){"use strict";function i(i,e){return e?("object"==typeof i?(i=i instanceof jQuery?i:t.$(i),i.parent().length&&(e.persist=i,e.persist.data("modalPersistParent",i.parent()))):i="string"==typeof i||"number"==typeof i?t.$("<div></div>").html(i):t.$("<div></div>").html("UIkit2.modal Error: Unsupported data type: "+typeof i),i.appendTo(e.element.find(".uk-modal-dialog")),e):void 0}var e,n=!1,o=0,s=t.$html;t.$win.on("resize orientationchange",t.Utils.debounce(function(){t.$(".uk-modal.uk-open").each(function(){return t.$(this).data("modal")&&t.$(this).data("modal").resize()})},150)),t.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(e||(e=t.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==t.langdirection?"right":"left"),this.dialog=this.find(".uk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("uk-open")),this.on("click",".uk-modal-close",function(e){e.preventDefault();var n=t.$(e.target).closest(".uk-modal");n[0]===i.element[0]&&i.hide()}).on("click",function(e){var n=t.$(e.target);n[0]==i.element[0]&&i.options.bgclose&&i.hide()}),t.domObserve(this.element,function(){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var i=this;if(!this.isActive())return this.options.modal&&n&&n.hide(!0),this.element.removeClass("uk-open").show(),this.resize(!0),this.options.modal&&(n=this),this.active=!0,o++,t.support.transition?(this.hasTransitioned=!1,this.element.one(t.support.transition.end,function(){i.hasTransitioned=!0,t.Utils.focus(i.dialog,"a[href]")}).addClass("uk-open")):(this.element.addClass("uk-open"),t.Utils.focus(this.dialog,"a[href]")),s.addClass("uk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),t.Utils.checkDisplay(this.dialog,!0),this}},hide:function(i){if(!i&&t.support.transition&&this.hasTransitioned){var e=this;this.one(t.support.transition.end,function(){e._hide()}).removeClass("uk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=e.width();if(this.scrollbarwidth=window.innerWidth-i,e.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var n=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);n+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-n/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".uk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),n=window.innerHeight,o=n-2*(20>i?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,o>0?o--:o=0,this.element.hide().removeClass("uk-open"),this.element.attr("aria-hidden","true"),o||(s.removeClass("uk-modal-page"),e.css(this.paddingdir,"")),n===this&&(n=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("uk-open")}}),t.component("modalTrigger",{boot:function(){t.$html.on("click.modal.uikit","[data-uk-modal]",function(i){var e=t.$(this);if(e.is("a")&&i.preventDefault(),!e.data("modalTrigger")){var n=t.modalTrigger(e,t.Utils.options(e.attr("data-uk-modal")));n.show()}}),t.$html.on("keydown.modal.uikit",function(t){n&&27===t.keyCode&&n.options.keyboard&&(t.preventDefault(),n.hide())})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1},this.options),this.modal=t.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),t.modal.dialog=function(e,n){var o=t.modal(t.$(t.modal.dialog.template).appendTo("body"),n);return o.on("hide.uk.modal",function(){o.persist&&(o.persist.appendTo(o.persist.data("modalPersistParent")),o.persist=!1),o.element.remove()}),i(e,o),o},t.modal.dialog.template='<div class="uk-modal"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',t.modal.alert=function(i,e){e=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},e);var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-button-primary uk-modal-close">'+e.labels.Ok+"</button></div>"].join(""),e);return n.on("show.uk.modal",function(){setTimeout(function(){n.element.find("button:first").focus()},50)}),n.show()},t.modal.confirm=function(i,e,n){var o=arguments.length>1&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};e=t.$.isFunction(e)?e:function(){},n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},t.$.isFunction(o)?{}:o);var s=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return s.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){t.$(this).is(".js-modal-confirm")?e():n(),s.hide()}),s.on("show.uk.modal",function(){setTimeout(function(){s.element.find(".js-modal-confirm").focus()},50)}),s.show()},t.modal.prompt=function(i,e,n,o){n=t.$.isFunction(n)?n:function(){},o=t.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:t.modal.labels},o);var s=t.modal.dialog([i?'<div class="uk-modal-content uk-form">'+String(i)+"</div>":"",'<div class="uk-margin-small-top uk-modal-content uk-form"><p><input type="text" class="uk-width-1-1"></p></div>','<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-modal-close">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),a=s.element.find("input[type='text']").val(e||"").on("keyup",function(t){13==t.keyCode&&s.element.find(".js-modal-ok").trigger("click")});return s.element.find(".js-modal-ok").on("click",function(){n(a.val())!==!1&&s.hide()}),s.show()},t.modal.blockUI=function(i,e){var n=t.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(i||'<div class="uk-text-center">...</div>')+"</div>"].join(""),t.$.extend({bgclose:!1,keyboard:!1,modal:!1},e));return n.content=n.element.find(".uk-modal-content:first"),n.show()},t.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2),function(t){"use strict";function i(i){var e=t.$(i),n="auto";if(e.is(":visible"))n=e.outerHeight();else{var o={position:e.css("position"),visibility:e.css("visibility"),display:e.css("display")};n=e.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),e.css(o)}return n}t.component("nav",{defaults:{toggle:'>li.uk-parent > a[href="#"]',lists:">li.uk-parent > ul",multiple:!1},boot:function(){t.ready(function(i){t.$("[data-uk-nav]",i).each(function(){var i=t.$(this);if(!i.data("nav")){t.nav(i,t.Utils.options(i.attr("data-uk-nav")))}})})},init:function(){var i=this;this.on("click.uk.nav",this.options.toggle,function(e){e.preventDefault();var n=t.$(this);i.open(n.parent()[0]==i.element[0]?n:n.parent("li"))}),this.update(),t.domObserve(this.element,function(){i.element.find(i.options.lists).not("[role]").length&&i.update()})},update:function(){var i=this;this.find(this.options.lists).each(function(){var e=t.$(this).attr("role","menu"),n=e.closest("li"),o=n.hasClass("uk-active");n.data("list-container")||(e.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),n.data("list-container",e.parent()[o?"removeClass":"addClass"]("uk-hidden"))),n.attr("aria-expanded",n.hasClass("uk-open")),o&&i.open(n,!0)})},open:function(e,n){var o=this,s=this.element,a=t.$(e),r=a.data("list-container");this.options.multiple||s.children(".uk-open").not(e).each(function(){var i=t.$(this);i.data("list-container")&&i.data("list-container").stop().animate({height:0},function(){t.$(this).parent().removeClass("uk-open").end().addClass("uk-hidden")})}),a.toggleClass("uk-open"),a.attr("aria-expanded",a.hasClass("uk-open")),r&&(a.hasClass("uk-open")&&r.removeClass("uk-hidden"),n?(r.stop().height(a.hasClass("uk-open")?"auto":0),a.hasClass("uk-open")||r.addClass("uk-hidden"),this.trigger("display.uk.check")):r.stop().animate({height:a.hasClass("uk-open")?i(r.find("ul:first")):0},function(){a.hasClass("uk-open")?r.css("height",""):r.addClass("uk-hidden"),o.trigger("display.uk.check")}))}})}(UIkit2),function(t){"use strict";var i={x:window.scrollX,y:window.scrollY},e=(t.$win,t.$doc,t.$html),n={show:function(n,o){if(n=t.$(n),n.length){o=t.$.extend({mode:"push"},o);var s=t.$("body"),a=n.find(".uk-offcanvas-bar:first"),r="right"==t.langdirection,l=a.hasClass("uk-offcanvas-bar-flip")?-1:1,c=l*(r?-1:1),u=window.innerWidth-s.width();i={x:window.pageXOffset,y:window.pageYOffset},a.attr("mode",o.mode),n.addClass("uk-active"),s.css({width:window.innerWidth-u,height:window.innerHeight}).addClass("uk-offcanvas-page"),("push"==o.mode||"reveal"==o.mode)&&s.css(r?"margin-right":"margin-left",(r?-1:1)*a.outerWidth()*c),"reveal"==o.mode&&a.css("clip","rect(0, "+a.outerWidth()+"px, 100vh, 0)"),e.css("margin-top",-1*i.y).width(),a.addClass("uk-offcanvas-bar-show"),this._initElement(n),a.trigger("show.uk.offcanvas",[n,a]),n.attr("aria-hidden","false")}},hide:function(n){var o=t.$("body"),s=t.$(".uk-offcanvas.uk-active"),a="right"==t.langdirection,r=s.find(".uk-offcanvas-bar:first"),l=function(){o.removeClass("uk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),s.removeClass("uk-active"),r.removeClass("uk-offcanvas-bar-show"),e.css("margin-top",""),window.scrollTo(i.x,i.y),r.trigger("hide.uk.offcanvas",[s,r]),s.attr("aria-hidden","true")};s.length&&("none"==r.attr("mode")&&(n=!0),t.support.transition&&!n?(o.one(t.support.transition.end,function(){l()}).css(a?"margin-right":"margin-left",""),"reveal"==r.attr("mode")&&r.css("clip",""),setTimeout(function(){r.removeClass("uk-offcanvas-bar-show")},0)):l())},_initElement:function(i){i.data("OffcanvasInit")||(i.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(i){var e=t.$(i.target);if(i.type.match(/swipe/)){if(e.parents(".uk-offcanvas-bar:first").length)return}else if(!e.hasClass("uk-offcanvas-close")){if(e.hasClass("uk-offcanvas-bar"))return;if(e.parents(".uk-offcanvas-bar:first").length)return}i.stopImmediatePropagation(),n.hide()}),i.on("click",'a[href*="#"]',function(){var i=t.$(this),e=i.attr("href");"#"!=e&&(t.$doc.one("hide.uk.offcanvas",function(){var n;try{n=t.$(i[0].hash)}catch(o){n=""}n.length||(n=t.$('[name="'+i[0].hash.replace("#","")+'"]')),n.length&&t.Utils.scrollToElement?t.Utils.scrollToElement(n,t.Utils.options(i.attr("data-uk-smooth-scroll")||"{}")):window.location.href=e}),n.hide())}),i.data("OffcanvasInit",!0))}};t.component("offcanvasTrigger",{boot:function(){e.on("click.offcanvas.uikit","[data-uk-offcanvas]",function(i){i.preventDefault();var e=t.$(this);if(!e.data("offcanvasTrigger")){{t.offcanvasTrigger(e,t.Utils.options(e.attr("data-uk-offcanvas")))}e.trigger("click")}}),e.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=t.$.extend({target:i.element.is("a")?i.element.attr("href"):!1,mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),t.offcanvas=n}(UIkit2),function(t){"use strict";function i(i,e,n){var o,s=t.$.Deferred(),a=i,r=i;return n[0]===e[0]?(s.resolve(),s.promise()):("object"==typeof i&&(a=i[0],r=i[1]||i[0]),t.$body.css("overflow-x","hidden"),o=function(){e&&e.hide().removeClass("uk-active "+r+" uk-animation-reverse"),n.addClass(a).one(t.support.animation.end,function(){setTimeout(function(){n.removeClass(""+a).css({opacity:"",display:""})},0),s.resolve(),t.$body.css("overflow-x",""),e&&e.css({opacity:"",display:""})}.bind(this)).show()},n.css("animation-duration",this.options.duration+"ms"),e&&e.length?(e.css("animation-duration",this.options.duration+"ms"),e.css("display","none").addClass(r+" uk-animation-reverse").one(t.support.animation.end,function(){o()}.bind(this)).css("display","")):(n.addClass("uk-active"),o()),s.promise())}var e;t.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){t.ready(function(i){t.$("[data-uk-switcher]",i).each(function(){var i=t.$(this);if(!i.data("switcher")){t.switcher(i,t.Utils.options(i.attr("data-uk-switcher")))}})})},init:function(){var i=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),i.show(this)}),this.options.connect&&(this.connect=t.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-uk-switcher-item]",function(e){e.preventDefault();var n=t.$(this).attr("data-uk-switcher-item");if(i.index!=n)switch(n){case"next":case"previous":i.show(i.index+("next"==n?1:-1));break;default:i.show(parseInt(n,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||i.show(i.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("uk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".uk-active");if(i.length)this.show(i,!1);else{if(this.options.active===!1)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(n,o){if(!this.animating){var s=this.find(this.options.toggle);isNaN(n)?n=t.$(n):(n=0>n?s.length-1:n,n=s.eq(s[n]?n:0));var a=this,r=t.$(n),l=e[this.options.animation]||function(t,n){if(!a.options.animation)return e.none.apply(a);var o=a.options.animation.split(",");return 1==o.length&&(o[1]=o[0]),o[0]=o[0].trim(),o[1]=o[1].trim(),i.apply(a,[o,t,n])};o!==!1&&t.support.animation||(l=e.none),r.hasClass("uk-disabled")||(s.attr("aria-expanded","false"),r.attr("aria-expanded","true"),s.filter(".uk-active").removeClass("uk-active"),r.addClass("uk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(r),-1==this.index&&(this.index=0),this.connect.each(function(){var i=t.$(this),e=t.$(i.children()),n=t.$(e.filter(".uk-active")),o=t.$(e.eq(a.index));a.animating=!0,l.apply(a,[n,o]).then(function(){n.removeClass("uk-active"),o.addClass("uk-active"),n.attr("aria-hidden","true"),o.attr("aria-hidden","false"),t.Utils.checkDisplay(o,!0),a.animating=!1})})),this.trigger("show.uk.switcher",[r]))}}}),e={none:function(){var i=t.$.Deferred();return i.resolve(),i.promise()},fade:function(t,e){return i.apply(this,["uk-animation-fade",t,e])},"slide-bottom":function(t,e){return i.apply(this,["uk-animation-slide-bottom",t,e])},"slide-top":function(t,e){return i.apply(this,["uk-animation-slide-top",t,e])},"slide-vertical":function(t,e){var n=["uk-animation-slide-top","uk-animation-slide-bottom"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},"slide-left":function(t,e){return i.apply(this,["uk-animation-slide-left",t,e])},"slide-right":function(t,e){return i.apply(this,["uk-animation-slide-right",t,e])},"slide-horizontal":function(t,e){var n=["uk-animation-slide-right","uk-animation-slide-left"];return t&&t.index()>e.index()&&n.reverse(),i.apply(this,[n,t,e])},scale:function(t,e){return i.apply(this,["uk-animation-scale-up",t,e])}},t.switcher.animations=e}(UIkit2),function(t){"use strict";t.component("tab",{defaults:{target:">li:not(.uk-tab-responsive, .uk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){t.ready(function(i){t.$("[data-uk-tab]",i).each(function(){var i=t.$(this);if(!i.data("tab")){t.tab(i,t.Utils.options(i.attr("data-uk-tab")))}})})},init:function(){var i=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(e){if(e.preventDefault(),!i.switcher||!i.switcher.animating){var n=i.find(i.options.target).not(this);n.removeClass("uk-active").blur(),i.trigger("change.uk.tab",[t.$(this).addClass("uk-active"),i.current]),i.current=t.$(this),i.options.connect||(n.attr("aria-expanded","false"),t.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=t.$(this.options.connect)),this.responsivetab=t.$('<li class="uk-tab-responsive uk-active"><a></a></li>').append('<div class="uk-dropdown uk-dropdown-small"><ul class="uk-nav uk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".uk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("uk-tab-bottom")&&this.responsivetab.dropdown.addClass("uk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(e){e.preventDefault(),e.stopPropagation();var n=t.$(this);i.element.children("li:not(.uk-tab-responsive)").eq(n.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,e){i.responsivetab.caption.html(e.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=t.switcher(this.element,{toggle:">li:not(.uk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),t.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),i.trigger("change.uk.tab",[this.element.find(this.options.target).not(".uk-tab-responsive").filter(".uk-active")]),this.check(),t.$win.on("resize orientationchange",t.Utils.debounce(function(){i.element.is(":visible")&&i.check()},100)),this.on("display.uk.check",function(){i.element.is(":visible")&&i.check()})},check:function(){var i=this.element.children("li:not(.uk-tab-responsive)").removeClass("uk-hidden");if(!i.length)return this.responsivetab.addClass("uk-hidden"),void 0;var e,n,o,s=i.eq(0).offset().top+Math.ceil(i.eq(0).height()/2),a=!1;if(this.responsivetab.lst.empty(),i.each(function(){t.$(this).offset().top>s&&(a=!0)}),a)for(var r=0;r<i.length;r++)e=t.$(i.eq(r)),n=e.find("a"),"none"==e.css("float")||e.attr("uk-dropdown")||(e.hasClass("uk-disabled")||(o=t.$(e[0].outerHTML),o.find("a").data("index",r),this.responsivetab.lst.append(o)),e.addClass("uk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("uk-hidden")}})}(UIkit2),function(t){"use strict";t.component("cover",{defaults:{automute:!0},boot:function(){t.ready(function(i){t.$("[data-uk-cover]",i).each(function(){var i=t.$(this);if(!i.data("cover")){t.cover(i,t.Utils.options(i.attr("data-uk-cover")))}})})},init:function(){if(this.parent=this.element.parent(),t.$win.on("load resize orientationchange",t.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var i=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[i,i.indexOf("?")>-1?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),n=this.parent.height();e/this.ratio<n?(t=Math.ceil(n*this.ratio),i=n):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2);

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-notify",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";var e={},i={},s=function(e){return"string"==t.$.type(e)&&(e={message:e}),arguments[1]&&(e=t.$.extend(e,"string"==t.$.type(arguments[1])?{status:arguments[1]}:arguments[1])),new n(e).show()},o=function(t,e){var s;if(t)for(s in i)t===i[s].group&&i[s].close(e);else for(s in i)i[s].close(e)},n=function(s){this.options=t.$.extend({},n.defaults,s),this.uuid=t.Utils.uid("notifymsg"),this.element=t.$(['<div class="uk-notify-message">','<a class="uk-close"></a>',"<div></div>","</div>"].join("")).data("notifyMessage",this),this.content(this.options.message),this.options.status&&(this.element.addClass("uk-notify-message-"+this.options.status),this.currentstatus=this.options.status),this.group=this.options.group,i[this.uuid]=this,e[this.options.pos]||(e[this.options.pos]=t.$('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo("body").on("click",".uk-notify-message",function(){var e=t.$(this).data("notifyMessage");e.element.trigger("manualclose.uk.notify",[e]),e.close()}))};return t.$.extend(n.prototype,{uuid:!1,element:!1,timout:!1,currentstatus:"",group:!1,show:function(){if(!this.element.is(":visible")){var t=this;e[this.options.pos].show().prepend(this.element);var i=parseInt(this.element.css("margin-bottom"),10);return this.element.css({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0}).animate({opacity:1,marginTop:0,marginBottom:i},function(){if(t.options.timeout){var e=function(){t.close()};t.timeout=setTimeout(e,t.options.timeout),t.element.hover(function(){clearTimeout(t.timeout)},function(){t.timeout=setTimeout(e,t.options.timeout)})}}),this}},close:function(t){var s=this,o=function(){s.element.remove(),e[s.options.pos].children().length||e[s.options.pos].hide(),s.options.onClose.apply(s,[]),s.element.trigger("close.uk.notify",[s]),delete i[s.uuid]};this.timeout&&clearTimeout(this.timeout),t?o():this.element.animate({opacity:0,marginTop:-1*this.element.outerHeight(),marginBottom:0},function(){o()})},content:function(t){var e=this.element.find(">div");return t?(e.html(t),this):e.html()},status:function(t){return t?(this.element.removeClass("uk-notify-message-"+this.currentstatus).addClass("uk-notify-message-"+t),this.currentstatus=t,this):this.currentstatus}}),n.defaults={message:"",status:"",timeout:5e3,group:null,pos:"top-center",onClose:function(){}},t.notify=s,t.notify.message=n,t.notify.closeAll=o,s});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var s;window.UIkit2&&(s=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-nestable",["uikit"],function(){return s||t(UIkit2)})}(function(t){"use strict";var s,e="ontouchstart"in window||"MSGesture"in window||window.PointerEvent,i=t.$html,l=[],a=t.$win,n=e?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",o=e?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",h=e?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup",r=e?"MSGesture"in window||window.PointerEvent?"pointercancel":"touchcancel":"mouseup";return t.component("nestable",{defaults:{listBaseClass:"uk-nestable",listClass:"uk-nestable-list",listItemClass:"uk-nestable-item",dragClass:"uk-nestable-dragged",movingClass:"uk-nestable-moving",noChildrenClass:"uk-nestable-nochildren",emptyClass:"uk-nestable-empty",handleClass:"",collapsedClass:"uk-collapsed",placeholderClass:"uk-nestable-placeholder",noDragClass:"uk-nestable-nodrag",group:!1,maxDepth:10,threshold:20,idlethreshold:10},boot:function(){t.$html.on("mousemove touchmove",function(){if(s){var e=s.offset().top;e<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/2)):e+s.height()>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/2))}}),t.ready(function(s){t.$("[data-uk-nestable]",s).each(function(){var s=t.$(this);s.data("nestable")||t.nestable(s,t.Utils.options(s.attr("data-uk-nestable")))})})},init:function(){var i=this;Object.keys(this.options).forEach(function(t){-1!=String(t).indexOf("Class")&&(i.options["_"+t]="."+i.options[t])}),this.find(this.options._listItemClass).find(">ul").addClass(this.options.listClass),this.checkEmptyList(),this.reset(),this.element.data("nestable-group",this.options.group||t.Utils.uid("nestable-group")),this.find(this.options._listItemClass).each(function(){i.setParent(t.$(this))}),this.on("click","[data-nestable-action]",function(s){if(!i.dragEl&&(e||0===s.button)){s.preventDefault();var l=t.$(s.currentTarget),a=l.data("nestableAction"),n=l.closest(i.options._listItemClass);"collapse"===a&&i.collapseItem(n),"expand"===a&&i.expandItem(n),"toggle"===a&&i.toggleItem(n)}});var l=function(s){var l=t.$(s.target),a=l.is("a[href]")?l:l.parents("a[href]");s.target!==i.element[0]&&(l.is(i.options._noDragClass)||l.closest(i.options._noDragClass).length||l.is("[data-nestable-action]")||l.closest("[data-nestable-action]").length||(i.options.handleClass&&!l.hasClass(i.options.handleClass)&&i.options.handleClass&&(l=l.closest(i.options._handleClass)),!l.length||i.dragEl||!e&&0!==s.button||e&&s.touches&&1!==s.touches.length||(s.originalEvent&&s.originalEvent.touches&&(s=evt.originalEvent.touches[0]),i.delayMove=function(t){a=!1,t.preventDefault(),i.dragStart(s),i.trigger("start.uk.nestable",[i]),i.delayMove=!1},i.delayMove.x=parseInt(s.pageX,10),i.delayMove.y=parseInt(s.pageY,10),i.delayMove.threshold=i.options.idlethreshold,a.length&&"touchend"==h&&i.one(h,function(){a&&a.attr("href").trim()&&(location.href=a.attr("href"))}),s.preventDefault())))},d=function(t){t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),i.delayMove&&(Math.abs(t.pageX-i.delayMove.x)>i.delayMove.threshold||Math.abs(t.pageY-i.delayMove.y)>i.delayMove.threshold)&&(window.getSelection().toString()?i.delayMove=!1:i.delayMove(t)),i.dragEl&&(t.preventDefault(),i.dragMove(t),i.trigger("move.uk.nestable",[i]))},p=function(t){i.dragEl&&(t.preventDefault(),i.dragStop(e&&t.touches?t.touches[0]:t)),s=!1,i.delayMove=!1};e?(this.element[0].addEventListener(n,l,!1),window.addEventListener(o,d,!1),window.addEventListener(h,p,!1),window.addEventListener(r,p,!1)):(this.on(n,l),a.on(o,d),a.on(h,p))},serialize:function(){var s,e=0,i=this,l=function(s,e){var a=[],n=s.children(i.options._listItemClass);return n.each(function(){for(var s,n,o,h=t.$(this),r={},d=h.children(i.options._listClass),p=0;p<h[0].attributes.length;p++)s=h[0].attributes[p],0===s.name.indexOf("data-")&&(n=s.name.substr(5),o=t.Utils.str2json(s.value),r[n]=o||"false"==s.value||"0"==s.value?o:s.value);d.length&&(r.children=l(d,e+1)),a.push(r)}),a};return s=l(i.element,e)},list:function(s){var e=[],i=this,l=0,a=function(i,l,n){var o=i.children(s._listItemClass);o.each(function(i){var o=t.$(this),h=t.$.extend({parent_id:n?n:null,depth:l,order:i},o.data()),r=o.children(s._listClass);e.push(h),r.length&&a(r,l+1,o.data(s.idProperty||"id"))})};return s=t.$.extend({},i.options,s),a(i.element,l),e},reset:function(){this.mouse={offsetX:0,offsetY:0,startX:0,startY:0,lastX:0,lastY:0,nowX:0,nowY:0,distX:0,distY:0,dirAx:0,dirX:0,dirY:0,lastDirX:0,lastDirY:0,distAxX:0,distAxY:0},this.moving=!1,this.dragEl=null,this.dragRootEl=null,this.dragDepth=0,this.hasNewRoot=!1,this.pointEl=null;for(var t=0;t<l.length;t++)this.checkEmptyList(l[t]);l=[]},toggleItem:function(t){this[t.hasClass(this.options.collapsedClass)?"expandItem":"collapseItem"](t)},expandItem:function(t){t.removeClass(this.options.collapsedClass)},collapseItem:function(t){var s=t.children(this.options._listClass);s.length&&t.addClass(this.options.collapsedClass)},expandAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.expandItem(t.$(this))})},collapseAll:function(){var s=this;this.find(s.options._listItemClass).each(function(){s.collapseItem(t.$(this))})},setParent:function(t){t.children(this.options._listClass).length&&t.addClass("uk-parent")},unsetParent:function(t){t.removeClass("uk-parent "+this.options.collapsedClass),t.children(this.options._listClass).remove()},dragStart:function(e){var l=this.mouse,a=t.$(e.target),n=a.closest(this.options._listItemClass),o=n.offset();this.placeEl=n,l.offsetX=e.pageX-o.left,l.offsetY=e.pageY-o.top,l.startX=l.lastX=o.left,l.startY=l.lastY=o.top,this.dragRootEl=this.element,this.dragEl=t.$("<ul></ul>").addClass(this.options.listClass+" "+this.options.dragClass).append(n.clone()),this.dragEl.css("width",n.width()),this.placeEl.addClass(this.options.placeholderClass),s=this.dragEl,this.tmpDragOnSiblings=[n[0].previousSibling,n[0].nextSibling],t.$body.append(this.dragEl),this.dragEl.css({left:o.left,top:o.top});var h,r,d=this.dragEl.find(this.options._listItemClass);for(h=0;h<d.length;h++)r=t.$(d[h]).parents(this.options._listClass+","+this.options._listBaseClass).length,r>this.dragDepth&&(this.dragDepth=r);i.addClass(this.options.movingClass)},dragStop:function(){var s=t.$(this.placeEl),e=this.placeEl.parents(this.options._listBaseClass+":first");this.placeEl.removeClass(this.options.placeholderClass),this.dragEl.remove(),this.element[0]!==e[0]?(e.trigger("change.uk.nestable",[e.data("nestable"),s,"added"]),this.element.trigger("change.uk.nestable",[this,s,"removed"])):this.element.trigger("change.uk.nestable",[this,s,"moved"]),this.trigger("stop.uk.nestable",[this,s]),this.reset(),i.removeClass(this.options.movingClass)},dragMove:function(s){var e,i,a,n,o,h=this.options,r=this.mouse,d=this.dragRootEl?this.dragRootEl.data("nestable").options.maxDepth:h.maxDepth;this.dragEl.css({left:s.pageX-r.offsetX,top:s.pageY-r.offsetY}),r.lastX=r.nowX,r.lastY=r.nowY,r.nowX=s.pageX,r.nowY=s.pageY,r.distX=r.nowX-r.lastX,r.distY=r.nowY-r.lastY,r.lastDirX=r.dirX,r.lastDirY=r.dirY,r.dirX=0===r.distX?0:r.distX>0?1:-1,r.dirY=0===r.distY?0:r.distY>0?1:-1;var p=Math.abs(r.distX)>Math.abs(r.distY)?1:0;if(!r.moving)return r.dirAx=p,r.moving=!0,void 0;if(r.dirAx!==p?(r.distAxX=0,r.distAxY=0):(r.distAxX+=Math.abs(r.distX),0!==r.dirX&&r.dirX!==r.lastDirX&&(r.distAxX=0),r.distAxY+=Math.abs(r.distY),0!==r.dirY&&r.dirY!==r.lastDirY&&(r.distAxY=0)),r.dirAx=p,r.dirAx&&r.distAxX>=h.threshold&&(r.distAxX=0,a=this.placeEl.prev("li"),r.distX>0&&a.length&&!a.hasClass(h.collapsedClass)&&!a.hasClass(h.noChildrenClass)&&(e=a.find(h._listClass).last(),o=this.placeEl.parents(h._listClass+","+h._listBaseClass).length,o+this.dragDepth<=d&&(e.length?(e=a.children(h._listClass).last(),e.append(this.placeEl)):(e=t.$("<ul/>").addClass(h.listClass),e.append(this.placeEl),a.append(e),this.setParent(a)))),r.distX<0&&(n=this.placeEl.next(h._listItemClass),!n.length))){var c=this.placeEl.closest([h._listBaseClass,h._listClass].join(",")),u=c.closest(h._listItemClass);u.length&&(u.after(this.placeEl),c.children().length||this.unsetParent(u))}var g=!1,f=s.pageX-(window.pageXOffset||document.scrollLeft||0),m=s.pageY-(window.pageYOffset||document.documentElement.scrollTop);if(this.pointEl=t.$(document.elementFromPoint(f,m)),h.handleClass&&this.pointEl.hasClass(h.handleClass))this.pointEl=this.pointEl.closest(h._listItemClass);else{var v=this.pointEl.closest(h._listItemClass);v.length&&(this.pointEl=v)}if(!this.placeEl.find(this.pointEl).length){if(this.pointEl.data("nestable")&&!this.pointEl.children().length)g=!0,this.checkEmptyList(this.pointEl);else if(!this.pointEl.length||!this.pointEl.hasClass(h.listItemClass))return;var C=this.element,E=this.pointEl.closest(this.options._listBaseClass),w=C[0]!=E[0];if(!r.dirAx||w||g){if(w&&h.group!==E.data("nestable-group"))return;if(l.push(C),o=this.dragDepth-1+this.pointEl.parents(h._listClass+","+h._listBaseClass).length,o>d)return;var b=s.pageY<this.pointEl.offset().top+this.pointEl.height()/2;i=this.placeEl.parent(),g?this.pointEl.append(this.placeEl):b?this.pointEl.before(this.placeEl):this.pointEl.after(this.placeEl),i.children().length||i.data("nestable")||this.unsetParent(i.parent()),this.checkEmptyList(this.dragRootEl),this.checkEmptyList(C),w&&(this.dragRootEl=E,this.hasNewRoot=this.element[0]!==this.dragRootEl[0])}}},checkEmptyList:function(s){s=s?t.$(s):this.element,this.options.emptyClass&&s[s.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.nestable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;window.UIkit2&&(e=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-sortable",["uikit"],function(){return e||t(UIkit2)})}(function(t){"use strict";function e(e){e=t.$(e);do{if(e.data("sortable"))return e;e=t.$(e).parent()}while(e.length);return e}function o(t,e){var o=t.parentNode;if(e.parentNode!=o)return!1;for(var n=t.previousSibling;n&&9!==n.nodeType;){if(n===e)return!0;n=n.previousSibling}return!1}function n(t,e){var o=e;if(o==t)return null;for(;o;){if(o.parentNode===t)return o;if(o=o.parentNode,!o||!o.ownerDocument||11===o.nodeType)break}return null}function a(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}var s,r,i,l,d,h,u,p,c,f,g,m="ontouchstart"in window||"MSGesture"in window||window.DocumentTouch&&document instanceof DocumentTouch,v=m?"MSGesture"in window||window.PointerEvent?"pointerdown":"touchstart":"mousedown",b=m?"MSGesture"in window||window.PointerEvent?"pointermove":"touchmove":"mousemove",C=m?"MSGesture"in window||window.PointerEvent?"pointerup":"touchend":"mouseup";return t.component("sortable",{defaults:{animation:150,threshold:10,childClass:"uk-sortable-item",placeholderClass:"uk-sortable-placeholder",overClass:"uk-sortable-over",draggingClass:"uk-sortable-dragged",dragMovingClass:"uk-sortable-moving",baseClass:"uk-sortable",noDragClass:"uk-sortable-nodrag",emptyClass:"uk-sortable-empty",dragCustomClass:"",handleClass:!1,group:!1,stop:function(){},start:function(){},change:function(){}},boot:function(){t.ready(function(e){t.$("[data-uk-sortable]",e).each(function(){var e=t.$(this);e.data("sortable")||t.sortable(e,t.Utils.options(e.attr("data-uk-sortable")))})}),t.$html.on(b,function(e){if(u){var o=e.originalEvent.targetTouches?e.originalEvent.targetTouches[0]:e;(Math.abs(o.pageX-u.pos.x)>u.threshold||Math.abs(o.pageY-u.pos.y)>u.threshold)&&u.apply(o)}if(s){d||(d=!0,s.show(),s.$current.addClass(s.$sortable.options.placeholderClass),s.$sortable.element.children().addClass(s.$sortable.options.childClass),t.$html.addClass(s.$sortable.options.dragMovingClass));var n=s.data("mouse-offset"),a=e.originalEvent.touches&&e.originalEvent.touches[0]||e.originalEvent,r=parseInt(a.pageX,10)+n.left,i=parseInt(a.pageY,10)+n.top;if(s.css({left:r,top:i}),i+s.height()/3>document.body.offsetHeight)return;i<t.$win.scrollTop()?t.$win.scrollTop(t.$win.scrollTop()-Math.ceil(s.height()/3)):i+s.height()/3>window.innerHeight+t.$win.scrollTop()&&t.$win.scrollTop(t.$win.scrollTop()+Math.ceil(s.height()/3))}}),t.$html.on(C,function(t){if(u=h=!1,!r||!s)return r=s=null,void 0;var o=e(r),n=s.$sortable,a={type:t.type};o[0]&&n.dragDrop(a,n.element),n.dragEnd(a,n.element)})},init:function(){function e(){m&&g.touches&&g.touches.length?h.addEventListener(b,y,!1):(h.addEventListener("mouseover",$,!1),h.addEventListener("mouseout",w,!1))}function o(){m&&g.touches&&g.touches.length?h.removeEventListener(b,y,!1):(h.removeEventListener("mouseover",$,!1),h.removeEventListener("mouseout",w,!1))}function s(t){r&&d.dragMove(t,d)}function l(e){return function(o){var a,s,r;if(g=o,o){if(a=o.touches&&o.touches[0]||o,s=a.target||o.target,m&&document.elementFromPoint){var i=document.elementFromPoint(a.pageX-document.body.scrollLeft,a.pageY-document.body.scrollTop);i&&(s=i)}f=t.$(s)}t.$(s).hasClass("."+d.options.childClass)?e.apply(s,[o]):s!==h&&(r=n(h,s),r&&e.apply(r,[o]))}}var d=this,h=this.element[0];p=[],this.checkEmptyList(),this.element.data("sortable-group",this.options.group?this.options.group:t.Utils.uid("sortable-group"));var u=l(function(e){if(!e.data||!e.data.sortable){var o=t.$(e.target),n=o.is("a[href]")?o:o.parents("a[href]");if(!o.is(":input")){if(d.options.handleClass){var a=o.hasClass(d.options.handleClass)?o:o.closest("."+d.options.handleClass,d.element);if(!a.length)return}return e.preventDefault(),n.length&&n.one("click",function(t){t.preventDefault()}).one(C,function(){c||(n.trigger("click"),m&&n.attr("href").trim()&&(location.href=n.attr("href")))}),e.data=e.data||{},e.data.sortable=h,d.dragStart(e,this)}}}),$=l(t.Utils.debounce(function(t){return d.dragEnter(t,this)}),40),w=l(function(){var e=d.dragenterData(this);d.dragenterData(this,e-1),d.dragenterData(this)||(t.$(this).removeClass(d.options.overClass),d.dragenterData(this,!1))}),y=l(function(t){return r&&r!==this&&i!==this?(d.element.children().removeClass(d.options.overClass),i=this,d.moveElementNextTo(r,this),a(t)):!0});this.addDragHandlers=e,this.removeDragHandlers=o,window.addEventListener(b,s,!1),h.addEventListener(v,u,!1)},dragStart:function(e,o){c=!1,d=!1,l=!1;var n=this,a=t.$(e.target);if((m||2!=e.button)&&!a.is("."+n.options.noDragClass)){var i=a.closest("."+n.options.noDragClass);if(!(i.length&&this.element.find(i[0]).length||a.is(":input"))){r=o,s&&s.remove();var h=t.$(r),p=h.offset(),f=e.touches&&e.touches[0]||e;u={pos:{x:f.pageX,y:f.pageY},threshold:n.options.handleClass?1:n.options.threshold,apply:function(){s=t.$('<div class="'+[n.options.draggingClass,n.options.dragCustomClass].join(" ")+'"></div>').css({display:"none",top:p.top,left:p.left,width:h.width(),height:h.height(),padding:h.css("padding")}).data({"mouse-offset":{left:p.left-parseInt(f.pageX,10),top:p.top-parseInt(f.pageY,10)},origin:n.element,index:h.index()}).append(h.html()).appendTo("body"),s.$current=h,s.$sortable=n,h.data({"start-list":h.parent(),"start-index":h.index(),"sortable-group":n.options.group}),n.addDragHandlers(),n.options.start(this,r),n.trigger("start.uk.sortable",[n,r,s]),c=!0,u=!1}}}}},dragMove:function(e){f=t.$(document.elementFromPoint(e.pageX-(document.body.scrollLeft||document.scrollLeft||0),e.pageY-(document.body.scrollTop||document.documentElement.scrollTop||0)));var o,n=f.closest("."+this.options.baseClass),a=n.data("sortable-group"),s=t.$(r),i=s.parent(),l=s.data("sortable-group");n[0]!==i[0]&&void 0!==l&&a===l&&(n.data("sortable").addDragHandlers(),p.push(n),n.children().addClass(this.options.childClass),n.children().length>0?(o=f.closest("."+this.options.childClass),o.length?o.before(s):n.append(s)):f.append(s),t.$doc.trigger("mouseover")),this.checkEmptyList(),this.checkEmptyList(i)},dragEnter:function(e,o){if(!r||r===o)return!0;var n=this.dragenterData(o);if(this.dragenterData(o,n+1),0===n){var a=t.$(o).parent(),s=t.$(r).data("start-list");if(a[0]!==s[0]){var i=a.data("sortable-group"),l=t.$(r).data("sortable-group");if((i||l)&&i!=l)return!1}t.$(o).addClass(this.options.overClass),this.moveElementNextTo(r,o)}return!1},dragEnd:function(e,o){var n=this;r&&(this.options.stop(o),this.trigger("stop.uk.sortable",[this])),r=null,i=null,p.push(this.element),p.forEach(function(e){t.$(e).children().each(function(){1===this.nodeType&&(t.$(this).removeClass(n.options.overClass).removeClass(n.options.placeholderClass).removeClass(n.options.childClass),n.dragenterData(this,!1))})}),p=[],t.$html.removeClass(this.options.dragMovingClass),this.removeDragHandlers(),s&&(s.remove(),s=null)},dragDrop:function(t){"drop"===t.type&&(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()),this.triggerChangeEvents()},triggerChangeEvents:function(){if(r){var e=t.$(r),o=s.data("origin"),n=e.closest("."+this.options.baseClass),a=[],i=t.$(r);o[0]===n[0]&&s.data("index")!=e.index()?a.push({sortable:this,mode:"moved"}):o[0]!=n[0]&&a.push({sortable:t.$(n).data("sortable"),mode:"added"},{sortable:t.$(o).data("sortable"),mode:"removed"}),a.forEach(function(t){t.sortable&&t.sortable.element.trigger("change.uk.sortable",[t.sortable,i,t.mode])})}},dragenterData:function(e,o){return e=t.$(e),1==arguments.length?parseInt(e.data("child-dragenter"),10)||0:(o?e.data("child-dragenter",Math.max(0,o)):e.removeData("child-dragenter"),void 0)},moveElementNextTo:function(e,n){l=!0;var a=this,s=t.$(e).parent().css("min-height",""),r=o(e,n)?n:n.nextSibling,i=s.children(),d=i.length;return a.options.animation?(s.css("min-height",s.height()),i.stop().each(function(){var e=t.$(this),o=e.position();o.width=e.width(),e.data("offset-before",o)}),n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),i=s.children().each(function(){var e=t.$(this);e.data("offset-after",e.position())}).each(function(){var e=t.$(this),o=e.data("offset-before");e.css({position:"absolute",top:o.top,left:o.left,minWidth:o.width})}),i.each(function(){var e=t.$(this),o=(e.data("offset-before"),e.data("offset-after"));e.css("pointer-events","none").width(),setTimeout(function(){e.animate({top:o.top,left:o.left},a.options.animation,function(){e.css({position:"",top:"",left:"",minWidth:"","pointer-events":""}).removeClass(a.options.overClass).removeData("child-dragenter"),d--,d||(s.css("min-height",""),t.Utils.checkDisplay(a.element.parent()))})},0)}),void 0):(n.parentNode.insertBefore(e,r),t.Utils.checkDisplay(a.element.parent()),void 0)},serialize:function(){var e,o,n=[];return this.element.children().each(function(a,s){e={};for(var r,i,l=0;l<s.attributes.length;l++)o=s.attributes[l],0===o.name.indexOf("data-")&&(r=o.name.substr(5),i=t.Utils.str2json(o.value),e[r]=i||"false"==o.value||"0"==o.value?i:o.value);n.push(e)}),n},checkEmptyList:function(e){e=e?t.$(e):this.element,this.options.emptyClass&&e[e.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),t.sortable});

/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit2&&(t=e(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-upload",["uikit"],function(){return t||e(UIkit2)})}(function(e){"use strict";function t(o,a){function r(t,n){var o=new FormData,a=new XMLHttpRequest;if(n.before(n,t)!==!1){for(var r,i=0;r=t[i];i++)o.append(n.param,r);for(var l in n.params)o.append(l,n.params[l]);a.upload.addEventListener("progress",function(e){var t=e.loaded/e.total*100;n.progress(t,e)},!1),a.addEventListener("loadstart",function(e){n.loadstart(e)},!1),a.addEventListener("load",function(e){n.load(e)},!1),a.addEventListener("loadend",function(e){n.loadend(e)},!1),a.addEventListener("error",function(e){n.error(e)},!1),a.addEventListener("abort",function(e){n.abort(e)},!1),a.open(n.method,n.action,!0),"json"==n.type&&a.setRequestHeader("Accept","application/json");for(var s in n.headers)a.setRequestHeader(s,n.headers[s]);a.onreadystatechange=function(){if(n.readystatechange(a),4==a.readyState){var t=a.responseText;if("json"==n.type)try{t=e.$.parseJSON(t)}catch(o){t=!1}n.complete(t,a)}},n.beforeSend(a),a.send(o)}}if(!e.support.ajaxupload)return this;if(a=e.$.extend({},t.defaults,a),o.length){if("*.*"!==a.allow)for(var i,l=0;i=o[l];l++)if(!n(a.allow,i.name))return"string"==typeof a.notallowed?alert(a.notallowed):a.notallowed(i,a),void 0;var s=a.complete;if(a.single){var d=o.length,f=0,p=!0;a.beforeAll(o),a.complete=function(e,t){f+=1,s(e,t),a.filelimit&&f>=a.filelimit&&(p=!1),p&&d>f?r([o[f]],a):a.allcomplete(e,t)},r([o[0]],a)}else a.complete=function(e,t){s(e,t),a.allcomplete(e,t)},r(o,a)}}function n(e,t){var n="^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$";return n="^"+n+"$",null!==t.match(new RegExp(n,"i"))}return e.component("uploadSelect",{init:function(){var e=this;this.on("change",function(){t(e.element[0].files,e.options);var n=e.element.clone(!0).data("uploadSelect",e);e.element.replaceWith(n),e.element=n})}}),e.component("uploadDrop",{defaults:{dragoverClass:"uk-dragover"},init:function(){var e=this,n=!1;this.on("drop",function(n){n.originalEvent.dataTransfer&&n.originalEvent.dataTransfer.files&&(n.stopPropagation(),n.preventDefault(),e.element.removeClass(e.options.dragoverClass),e.element.trigger("dropped.uk.upload",[n.originalEvent.dataTransfer.files]),t(n.originalEvent.dataTransfer.files,e.options))}).on("dragenter",function(e){e.stopPropagation(),e.preventDefault()}).on("dragover",function(t){t.stopPropagation(),t.preventDefault(),n||(e.element.addClass(e.options.dragoverClass),n=!0)}).on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),e.element.removeClass(e.options.dragoverClass),n=!1})}}),e.support.ajaxupload=function(){function e(){var e=document.createElement("INPUT");return e.type="file","files"in e}function t(){var e=new XMLHttpRequest;return!!(e&&"upload"in e&&"onprogress"in e.upload)}function n(){return!!window.FormData}return e()&&t()&&n()}(),t.defaults={action:"",single:!0,method:"POST",param:"files[]",params:{},allow:"*.*",type:"text",filelimit:!1,headers:{},before:function(){},beforeSend:function(){},beforeAll:function(){},loadstart:function(){},load:function(){},loadend:function(){},error:function(){},abort:function(){},progress:function(){},complete:function(){},allcomplete:function(){},readystatechange:function(){},notallowed:function(e,t){alert("Only the following file types are allowed: "+t.allow)}},e.Utils.xhrupload=t,t});

widgetkit/fonts/fontawesome-webfont.woff2000064400000226550152177723720014655 0ustar00wOF2-h
��-�?FFTM `�r
��(��X6$�p� ��u[R	rGa���*�
�'�=�:�&��=r�*
��]t�E�n�������1F��@���|��f�m�`�$ؑ�@d[BQ$([U<+(��@P�5�`���>�P;�(��1��l�hԨ��)��Yy��Ji�����|%ہ�^�G��3�n���ڕ�
�͐D��p\Yr �L�P���t�)����6R�^"SL~�YR�CXR	�4���F�y\[��7n��|s໌q�M��%K�.ۺ,����L�t�'���M,c��+b��ׇ�O�s�^�$���z.�mŠ�h&gb���v���'�6�:����s�m�b�1بm0"ǂ��*V����c�$,0ATPT�1��<�;���`�'�H?�sΩ:�ND����I�$�T�[��b4�����,�μ�」bl6��IL�i}ی&�4�m,'���#�ץ�Rw�bu��,K����v��m_-���\H����HH������?���m�9P���)9�J��$ƽ����8������~�;�r�n�=$��Nddn!'����;��8��'�N��!-Jʶ�.����X�=,��"`:��		 {�����K!'��-FH��	�#$~�Z_����N5VU8Fȯ��%P�ݫ���Cp$Q�����r��ʽ��k�k��3ٷ�:R%��2{�ީ��h%�)8����
ILK�6v�#��,;Ц6��N�2�hv�����OO��t#��xT��Bf���q^#����?{�5b�I��%-WZ��b�A�^�1��n5���צNQ�Y'�������S��!t" `b3�%���35��fv;����lά�9�:jgf?gr��p�x� �|� $ e��Z(�$w(ZrS��v+�Z���q�M������ݙm?&s[��t�S�Sj��9���?�|��
���>G�,bDշ^��^���:l�3��NA�`�5�26�L�pS�	Aߧ/U�
�֘����'9\��Նt���!������l� PMR���9n�
�`(�@� Hy)M�dM�
�5�ԤH'ґ��mS<���q&k�)\�{;�1��m��8�{��X�1�-3ǚ��)�B(��,�%���������w�o~��t��HW8l��Z	r��=e���1+�/Ɏ1W?ְr�89PL��>uo9 �1 tØ��uc�����@��]KR�bN���v������(�"��y뽻{c�����scz�&�p5���,j�n �kN�!�.�n^��Uu@|�?v�>�����rUa�HR ����Ց��I
D��ˋQ��~p�
�܍;;�n���L$�t�	:	hFCY���TO�FNN~}�1"`�����a��(�?H ����\���u�0LԵ��'���͔PbnmO������Jl�?��s���0,8�x�B�B��F��_�RiZ����~e#j��w�hOc*&F6�Yq��{�}?��>�u��.�4�h%g�`�&�� ��)��R5�H�}���ˤ�kܩ��'J��O�I����_��qOb'�HǟBYEM�6�v��5�NJ
�O�NFNx(1�:\�߫C�k�c�b8Q�	d�[L(el+2u-��a֘d��5;�N$�"�H���SF�o�2i�"��\�h7I���<SCO���ȐH��Ew!.��!BSC�gĝ�c���s*էs�(5m�=q�ʊe���Y�$�\>fN8�q��x�#v
�6um�	���`�NM-J\�F��r�D��Z�0�#'ꥈn��GjL�چXʌ�A���gYs�*�Y���^ٵ�;"�$hb=�ϛ�0�vH<�Vv�c�_\Y���w;dB��N��3!$������I|P� ~&�d�.�԰�-a�a	++��9�.mR��4�cy���#�U��FW�u�
�	i/𜯔f~�4��l��XS�9Ä�1E��3@���k��@'#���c���n� ���S_;�%��I��+��.�L�Cx�����ꆱw	��Vۂ������Exf~H`��0�!d��@Q{Oh1��H��Fë�zs�7�݉��Ɯtrv���k���heS3�ۇv�9�q|�O��K)�U\�A�%����o{l<��K����͎���i���H�G�I�z�=6�WWo0��|�%A�jdD)!
��pw���_���;���c�D#�ˁM���Nz���p�^�CDx��xj)�5O�9�
�`��EDX�x� ݒGU��˯ę����ډ�.%
���Έ�~��=�Co�)
F�7���$Z��(�g��oB��
�Ɯ�@��&���e�{��厣�l��f�_�Rx�N[�]��8`-3�s����{Pj��Wuc9���[>�-�.D�܎Y����d������+^{���C��m����,��@N<������.��V��M��S�+�\D�+��R�|�6��'q\T�����9�D�X<$�p���"�酦��$�ҷ�,�p�s��T����b���NkI�_�`��
F��W��V��%��w�~���DԐ����*�xi��y[rZ���[S%�G��s`F<ㅣ��� ��V�+��!+������؍�9y�k�fb�82�s�}l;[)e$��T���k����)�v���9����{�u�u�t��޳@E��>|C��<\4%�Rv���������@׺C�8\��~)#k|��.a�o����00G�q0%����hp���
L���"�+>���%�^Mˊ�N�s��q��=�����䦆�K4r�-*��%��h#�%;pP馔h�C=����
��&)�ba��KL�@����t�!�~2�S]rYl�Z6�3ўJ�o��O�V�;�h&gO5�RT�/}����{���AZ�&�S���t����ͯ�P��C���0��D,�pbpз�z)� ]�I�>Q\Bl�"��^3R>r�*��C>����xPU�z�}Y=�̕�}�ж��
�
6-`/"H
o�&�D�I0�E2Xa��-�{5���<
,}��``6����ji���im<UujY�Z�jB\@�g�3Ejfp����:����W�Ǯ���߳����p�ij3ao���1�da�� ��ݫ����J�ײ? j�q7��M���ff�Y�f��s�$��	��H���l��������(%.�r��w?�m=~�y�cY�bg)<�W� /Vx�k���$��B�r~����9�6�0�&��_vMY�%��ҝ{�E�6<������%�%�4���ߠO�@��N����"Z��OD{u3S��W�M��R��3s<���س
����\I0��.��-2ݭ��ㄭ;�	�0��}N�/b���N{�I��|b_r�e��_pSi���>'�w�5��RF,ч�%SY����Wh�6L_i샣=���i1�3�YI7N�Cp�I��Ĕ��(�r���0��{j����r�K����Тo)l���3na�T1\��IE(�m����߃���D�l��e����$Å�wX���U��(@����M�a"n�,�*vG���̨x���>�G�S����g�̉"�Q�v�b0*z��PE�y�ɉ�?7�$����%��G����p�dY�&f�!��a6��|�)�;u7#�3�4�mJij�
o���O�p�ȁ�v8j��x(K�/Z�d���x�Ń�m7V�_\�f�L�7p�X�z�H7�-���,(1KHb�e��,r-��p�L����3=�T��2�t�2ټX�k:����Z�5��s�p��SsT����:.]��D"�@��-�E�̑!�A��2�ɶ-�F}�˒�2Bǃ��Q���)t�ç|�#4�|�\�㨀��`�fc,��#�g��1:�-����ty �]�����2�Z~��.)�����nj�����%R�K����(y�`�8��C��֍���z���K-N����`^+����n���3��ϴ����T��3�tQ�أ�4<>:J0È%�ݑZab`��vͬ��a�T/Z��aޝ�ГIi	�W1���_��>)���H"�����p���|7mF�^Z��~f�0J��^�I��3V�!���{�<e�/=�p`���q��8^����K8��O�9�w0��Z��|��v?�n�	�3��f�!��߷�~��T� ������ Jӛ����5��p���V	��3�˫����.=����-}��[�g�R�5���n�B8���3.��8	Yg�#0�&���S�/.fg\
E�f�}��,k����g��$�?XY�*������1��p��E(����RS��Q��t��6,�Q�j\��</]N�s���;�'HX]�E�29��d�kY�
�j���R6���Q!���� V���
%"^�`�N3O�����[�v:�ʄ:��^ڜr׿�@���
�F�_���Nc�B���8p�\i����7��g�*���,�C����[�6�T�?����%�z��@jApBN5�"4T����"�}0uJ􇏞�Ȝ~3���{}uW����M�j�9�-�]����'lS� /�R><�+�O����eB#�Bc���jL\��-�Zh�[�I<����q�v�~�k]�G���TD�?S����/�-��%ݒ����7��w�i|C�I��q�wc��W�x�� �/7�x��HO/���o]���G]�y�߃��#��7��b��$�t��R�$ ���]�a7�F�Ѯ���,n!r��I|2���8�x�6�gS�h�	��R^^�D.�x�M�MS?漞'G�#�~�+�����v4�d!FyT�9�-�fVa7h�B��4�����,�2�Ɖ�&vTHMqp�4?R\�����Xa<��4�@Mi�H�D_��	�Eg��R�y�M���lT�ؠJݮ
��yc��"�HJ�, 6�u�/ڴ��������y��V���nJn۟H\P�R�Bd|�4�_�$k����.��w��™I�pS��$��|}j���9������m�|�1�ߘ����n�93�9���5qS�|���xW�9�����B��VZ!����m�K/�Ln;i��u��$�*�t3�Ͷ��@}���B{�Y���ԑ�z�2J�u@�a�\M���R7o��dz����e��7�/$4]^���2k�h$�=%��1�I�B�؃ ��H|�N.[�M\L���b����1Mg��:�NV._0�,�+�,��h�t7�l8�s~IV^
N�˼M���ؑj��ك-�	oܮůQ�o[m��j�=r��m>�~z4$M��}z �s�h""���u7�V{Rûݦ�O-��D9V�٥g�IʎK�Lg۶B�T��P�'�K��̦�
qW�֒�3e����p�&���ے��L�hp����N�aS��w��
&���;e(�,-7v�x�-��w$W��nX�U��������t8�����Y���?KM�ct�Y؃�p*Շ�����-���БfL�|�[nL��
}4�{5�頠�3᧌�n���$$,+�DNԄ-H�V>��H����Os\���-�;�W6N��M��8��Fi���;���7k�2�6%֒�a],:!�ʲڽE,��{U��naw����Ng��.��I9r:j������<IE�1�`$`Lbrǒ��ם��]�x�9=Rv&*Q5�0z��y<���`M|�ԙ�dO�٥iZ���$���+#KH�F
��������	������)-	�:M$�yc��E�%Ai��2]���l嶨����8�I�y��ZGJ����\�2֙Xb�L���I�A-�GrR!�0���L+�Qh�S�Y����S�5�_�(�poF��T���#kN۾�l|r�n�d�H���yۊ����&ۆx�p�����[�8G���dt�����z찃٦	8��B��KP"@2e�e��y�x��j����JKˆh�XŬB�}��6�â��`?�i�*�[9e+b�VL�aL͙����dBYp.�ψ
�n\4�糅Ƥ���d�<w��W"��? �'�O%�a2N�9��,�ߟ���!���.�y�Z��%�4�U�^��u�φ�g�)M%��C��V����M!z�&�����|D�,�i�~R,%��|O"�����h\3+��a����������i8��\$!1�L��a6s�
z+M�R�b��_
k�v�j���U��裒-��jX�Gt������b�~�˚��ꖺwt���͝�SkP�2���(=cvt�"�[3��&��h�DN�=�򈎋Pɛ�A�G���'_�R#��M:.���3�	���tJ~��3zwx ���;�7��O�8��Y)
�DSE����/����7�i��!wy�6��$��8E0�Taތ�|@�
g����.;m���9�9�s�HrL7&�����3Bs�|[o&ou�Sg�խ�+{�AE���kZ�	�"N�d�5��:��IV��ڊ�>�F�b�K��Ψf)*c��G5<��C����.g�]��k��
��� A0�-��٣��v�T �d4K(��Yq`���(u��{,�:0*$|2����/I��,�`E�����xP��#q�����`��/�:�����';�ىV�D)˴�r��89�w�}[��F����ޜη���+��šh�KH�\�ǚU���䬂J�V$pUj�|c0���{���L��A��?�V�=�4���S�Ŵt`���d���o��d�bUP���J�x�g��JR�r�O���s	�����4Mw���
�""�42����`M��D�/N!��v�3չ���.�f+�@xO�V�q�j^�Cߪ�Km���,�8H9�Z��<&�o��(�@��k����M5����]�M��U2=vpB6DXj`�r��<�w��1�Y�:� �o�<�9�;����F���$;2֜�j���޺�x,�ʁ�C�Rĉt��$�VJf�f��9�)�a�9P��&���6Oo��l�<������ds=#3�s��P-�bD��"��[:�wɺ^j��Ӂ��Qej`���Tq�=����H&�o��kĉLD�W�O������*J3s[�6�j1�@��nr<�ξۇ�#���@	�0��c	���?ﵝ<2�D�Ӧ	��}��Ts��S��"�R�
���.}�oZ���Fo*���ݗ������:�������7��H��䍚�x��]���a6v5�R��̾e1��$XL����
J�aa�݆,��섐�"3-�G�!˥8���8
|�T:S�P������pMR�Y�b��{�+�O�eۛ2���g���u��V=�U>-�kb6U���ЩpZ�M��O�`���$W�D�y���A߻�[�4��a��J?�fD?=�d��(KD䴱:�D�/[�#��$A�#KH.:��x?%��V�r�@[B$�}�c�o��S6`LPfM&ɔ��A<:��v��Ú
Q�~P�w���[��+�������`+j� V��+��R*���u�l!���|�+'�KY�6�6��_�ud�}_���[�yuۘ�j����o$��Y=�yjR�i)��b�ԋLaD(�X�U�wI�ڻZ�$�7ڻ�9��&��4Z���'��DF���[N]�~�dD?V�Q�W��Ͳ�}vS>�Nm���+S�q�H��a���U!�Β����Wb_+�����U�O]�^���l59	@��1�'���A�^��m����o�:��9�ף�s�-�N:���tD-�zkS��j�a4�rc�zF�ۻ ޿�x��v��7[�äC8�#7�p5�+��� �~*�bJJY�zֳw+�����-��p�/L�L[cg���n�lc��a�P����H�F����$}�9`������\
��83�Ym�1b>�~ƽJ��؂�Ϗ�yBs="�����f�(zK��M�"�H`��w�c�Ed��:b8�6(9��<��c�l�ݘ/���k��g�G���������^ESE)5�G�_^��k߇�v���̚�}T3�;6� WvTCP_���k���._e��єNJ�L{T�!��6�j>h��0��#���[��㗚����K��z�,�!�3���2����:6d>�himE�\�=�H��Z+{6��@W�ʯ&lC'�,��rX !8�(\�̭2�-�P8h��@�C4��<~����Z7j%)e����eF�pZ�'15��^6B���3�nc�o#~���²q��R�@!ա�� z�^�Ks]T�@�TN�T �,S*@7��C���ī�Ʌ����L��iQ�N�,��	#:��RѪ���j��9��1�-�Y��P�N¿�\&�yL8�ӹ��&0�c��v�Ɖ\�����J�A��;��Q;�]���I�M8	�s���Mf�?԰�I��r�r!�K�9я8p�}Q�콍��g�-�*sm�~�X�P0d�M^��?D�dI�m<��p;�y�,"ۦ�6��v�pT\^�n���3m�>8�eC���N}����cà�٭$s7ۼ��#յ<SF-A����z��≱�
�B�	*{�6cg���Tz�GX2+�����a��0����;� �EEaG�d�Θ׿�[�M���
�i���g��:B�[�	U���3�J9�
0��I�2'	o����\e�%4^5}����5��� �0=�
��J�}m�y�&����"��.cւ	V��}e�J���:42q`G�O�-���-B���J�F��Y�۾�3|��|)��������IG��a����+�*��ttPb��A�Do?C��g�t��;��I�]G��2RE<^�mK3����+��;�
�[���3���[1����y�v���
#��p�<j�iC�af�~\�G�C�4���dubt B�K��бQm�=�a���Tq<��^z�ء�(�޹�G~QۼZoO��c��r>R�{b��4���vM�q���l)<�V�{ě晐�2P��T�'D�
Vt�������oP�aU���6`���"�Qe�]ka-�^<xj�<�G.���~��������5۹�ۯ]�V��`8Ϧ����%���r�y�v����;��pc���������`�٘�uҙ��9q��q�E���ҹ���B�����6�Ǒa�e��E�ثO�Y���Ǒ#:y�p���/!/��5s���U'! ��"|���B㡪�
�t\�T#���ҝM�$+2n_��� ���b���^�&��������e��i��c�I�=��u%E���ȭ�֓
���fj�aظ֐����E�ӝ��_�e���(r}�mo9��UP6zH$g�4�ٺ6�P�@@�X
(1�Θ��x_	Jy�{�3���',����M�1n���>v�O��ճ����j���ְr�1�f4cs�_%v%l��K�ZNi�+V��3�'�����~��N�M�G@H��B�b+���v�VFq@�ݱuKZ�h�p@��E0�����ua����SXd��U���K}ԯ�8G�X�KiI���%���uR)�E��I-�ږ8��|1��G�Ξ��f6�Ȁ�=!K�F6�Qf[X���~��_��j�\^�͋^k����`����D��s�G]~�㤛yo�}��;+i%�N}�Q��0��ԥ�U��u)M��[�Z`"�7
��?/[C�{�l�)�$Mr����|^��	a�����:���"�֊��a	�l�>�h��y��a��{�2>��CP����L� �j?�ntg���]��S����{�UӇ�('��b�'f��g0Ӄ����LPA�Mtd�)�2ú�Y!�v�&`o���2P[�aޔ��5��S�|#+��7J��
#ȸ�_��dU��6#VD����B"K���|�����)o���tk�l���,��l���U�)ݹe�5�<A��\0��_�7���^~{�$
qR�ΰf���P
a!f���XU���hX�l۽^��:(�m�?��@=bhg��O͖{-�i�:�'�A�8?g��zHFz0�[D#�A�.��%'��w�=23�ɸ��Z'�Hx�����&I��4�1I�Ji����e�z����͏��o�ٴ��{�����i�ß8	0[�K�/�n*�a5���ᰉ�,c������+��A��BDrlDo���"$Th�T����9�$�岣�'���0V�'|�"������
���S�AJ!�Տߑ�6�F6R\�6\��9�-�_=��Q�"9IW.\.zmkz�F͵U�x<9��ɑ�$�7i�FS����ʧb߂@�ۨ�}��u��o���Ͼ��Ѫj�4=���oeUK�xd�W�뻸1nD�X���y�"���5倘�ʂ����K�����-�o7B"��ě)��uW��E�h9��b)P�%.�$�G��(@(��u��R��fLT ϪJ6
���)H*y����=���Q/����uI.��<���,��r#�y|�l�<`��Q��=���F$��A�t阍2��d6c��Wǥ䇣4~�%�vb�a�Е_Cծ�Y�l�̨�vq��s$m:�G���\�W[����C	�l��}�R�^�2J�I6�X�l9��=��`t�ӑ�/���P��jes"��_�
L��w�m��~��X���N�M�1x���ٛ#��NmzS�%b��,���Ž�~�B��	`�9�Vu6U�}ֺG��u�n�wO�����fsC�\������g�������V��Φ��@����:�_`c+}�L�<�[��#U��*|�歺[��[姙�ԧo��ɼ��\=GR�K,![<��H�?��;�9���:��Iͣ+��a���!���*��?#�'G��=���Q6�,�g�m&;���������X故0��
�������;qW�q�'�4��I�C�g���΃Y�`�~`6ix0OG�g`���[~��?NC�Q@�Ȅ6�N΁���A}j��Ba�3�ť)���˴:q�I���gZ�2�vlf,�У��Y��Ѯ��bԩ����Xo�Iė˜�X���_'���5��]J���2P�92��C͉���@�C�����6E�e�B@���A�9�߇���Ǵ�y]�H�	�-� �b��9
��O�0uw��I���7J�x�ū2��\�Vf=nV�V����"#9���v8x
��mpAh���y�3��pQ	%��t^��� |�‚]�YB8jC׬n�#&�ɇ��ʴv�˒P�>�O�������y�UAt2�_�������n53e*��1���v����(K_H�vV�ʉ3},��A�C�Uƍ؂�Cu���t��i�-]�`�����7�]R�
!zs�N��t���&��̉̄k)��SL����̹�y7��$��ϥDJ�N�d��"��9�
�31 I��Z(^(
lw6
/�@�Y�B�^���}�OT~9c�c��]���{�)��}�D8�${����yc�,ʤ�{�tA�W3zHI��m��D�4ܤU��T3d�I���D�)
��I۬�.d�~�[-�K�^2�Zc��
�8��u�,Y�^\�_��ԁ�_�+�cJ��$�\2:ZW��b�B��w=��[1'N�YVz4�;��(�fzN���U��f(p֙�!x�#����L�=#ŋT�hn�b��a˳"��,�T�\o�!��@@sN%��|
���t��Xj�	j��	�Qo5��������o�eF)o�� �9˷�:�h*'cJ�孏��[��{ȄNf�nz�]8F�/�|��1�v��g@�J:�Y��նNu�:�d��hH���o
����t�M��`��R̍�R�i�:|N�_P"����B@���� m`a����:M���	c2�Ũ<���ؓ��U�O�S�\��%a\A�p���ꄯ�e�\��A�����.̰{���w�ǿ~<dXIh��RN�gkv��o�{n�Ԝ�}���H|e�iV�W����?��#�(K:��m`�&�L�x^F��+'�����؜Z慉��ŏ1?^�E�(�ݝ�D��u��6��T˜��LS��6O�am��d�ʙy�2���|�^�S�K�}*�2L/Ř)�h~����\1�� 
D�̅���$��1�G/Εo��0^����_|q,��|��`�ܷ*z�|���'�usv�j(q�R��zL>��6������	�;s2�ŋ`���W�`�TyP�g�ee0����00�}/ǔ��;h[tG�D�5�^E��#�h�ȍ:f?	�u3z0�ڎ�$�T���^T�Ahz�	�x
�I{��5�������'�r��K
��z�o l֢<���Nl���f��M*�~�Uʏ�W��_�?�v;(A���ͺ�R�^� 3�=6�6=2�n�~}c���O7�X���d��J�|��LP�ޝ~ͅ���8�+QD���\���ҭíS�\�=�U�v�
M䅚c"a��K;�A�=ԨĚ����k�J�N�p��M%AR`�و;�(���5�W���=���Y �g-�^v4��X�ى��J�@��=�c�3���}�*)u���b�T�F�'�|�N3����E����9��ڪ)1��!G���k8��6�D�
~H���Gp�%�Fz3�2��M�J�aZ��?�c��n0�)?�h�N��u�����m3H�~����1rD�'����1������Kr�t�sJ�Js������ָU�����2��r^�+hNzg��l0'\/e��tXԐ�v�l �j�cm}!Q�ϼ��t#��z��#]����ϕ��O��ׇjE�:�#	�6�n:<�N���u�i�����{�z���1ʞ����UV��l�+�a�N��W���h��)O�2ymEl٤�A��7���YQp���fB��<8����;����'gKR5n�����T@	�n�*��!=a5��������Z~CW��P^DX-Xf�j�N�ű�q4�O�I@��S����}�Xh/�>�,b����89����-:G|W��)��b��A��5G��<*ٕ��:ğ�!]gj~�O�&��U�N뢹8�� ����g�]-WW(W�NI�3��N��gr�3|��m
�m��'=[n�힬M,?�$��HD��D�-��O?5uX�]˓��3�7�>�*�w�g?���*!��JyT�@U�g��z��I��_��7�&�\t��H.Y�Z�(4Y'�d��T�
�F��s�-�qy�a�7�
[��67K&�J�/$�c/��x���[���ᶏ;�Ī�z1Fv��]G�'ڏ�Q�BSO�������І$�y�(��TS��-;�hűz��T��%D��ts��"��=�gwU�uD?b�$Zr�9�G���<��&�Ña<�v5��0�]f%S��an*���؊���oмb���8pJ9����⠚�'�-s�@�r��넅��T���AX��I�\8m]{�Of�`#��X�T^f�5��''������W�2Ϸ v�sE�\��Qs��(�ː@A�jR*Z���a��̳�Slі�R�[�ܜd�*)�ɩ���P�¢ĽHt�o��5��8��.��]�h�\s�І؋����?�Vs���h-U�'�#E�g�m]��2NjWl�rm�Z������#2�BE75^^��a4��wU��K�'g?ge���213����Ǹ�o`��lKzP6^� �$�$9N���Wvg2�HϏ���CR�ߜa7F�/��3�\8���F�\�/zP��/?������{x��Ӽ�]�������/�^9�@7c�ޥG<Ho~�F��!�6�:�j�*��Nb�lNy����C�cG��d2[d7�W4]�
�5�4i�2���*��h��p�*�9���mYmط��kh"ɋŊ�W�!��A�an��J�|�V�N�c|�u���j+�'���7������('tcnV��d�Uc���)�I╵��8()�K�Ζ9�U'���պ�j��?Vפ@B�O�E�G
,�cC�"Q[b�$�9td҆�=��X� �dL���M���͋��h��~���l�c�.��ж�t�q�?Y'{'ވ�A�cS�V�M�%�kD�
�{Ʀ�X�=�:��*|�ͼe"������~��Ov	;�G_RϞ��\���G�$4<��ie�f3���Ph�H��b0��6ĎU����s����LӨ���Q�|_P�����3�0����D���C��H���,A1^'�M4������]%�EJ53�蕂
+ͪBP�^$R��R
DB+�M-�	�s��b�R�VFeP�;7����I��o��m��^��M����k��++_�����[9K����W��R�vۧ�?f�q2�s��}�X�@y�f��������H�/=�����֯�A~ ��0�̜�xra� GD�v�l�Q���Z\\�D,h�i�J�]&(A/�"Fb��a�ƚ�
��m2�l]��x$��E5x�Ð1x��{�����A�1>^2���_���Be�;b��~�փ)�Ό2�j��� �r�8]'�7��
���� b�C�h�T��d���)�+���mD)���.5�1�-���|Yy���*��o�ڤ�L ���4A她=
��T���@|�X$�in.K�I|�R���@�P����@���P��*���a����k@�۟�������=I��	�=�l����[���ג"�h�X0�QҜf��˒��펖�c�<#9`|cO}$o>e�X<�`,�o���_��K�3�����p�{Y����An[�9�M�
�T(!"��?Z�]�iE�m�Ğ�>�'����{G�t�� ��*~���y���`�'�A�?٘#��)�o�($��ȉەL���vYO1o���_<�/ǐ�M�(���W�藑Q�'^�#0�M|�3}x7t��<��a��@�̻�H�l�1�>���& .�m�v��!*��)$�z��mr��t���(�:���G�G�beV�w�i$C�O1� ���c�Z�Z�<Gc<z��@�:�J-����_`�8���~�چ��M�	���)
uE����sY1�B��7�4w�0�G��5��z��A0�|Р��[��@��V��ܟ�Q�q^@W�r-���U��O���$9'��IBjf`5
�"ѦYx�Z�� �U�O/&83��,�8�k�2�&�� '�?�eEv�$��L`�B�%�=�T��ftF5対8�.���<1=>�0�G� 7z@Jy��~��p)g�,g��YL.$�,�� ��-�<�k��{�y�c*0�2�/q1��������g������K���M&�R<���7xC�y[M�ʛ
#ͺ����Dya���3\��wf�wr�F<G�W>�ĸ��M�]\��N���s�Wݍd�<ӡ���W����064�t�ȴ��v�Ȼ0>ԯ����; ��)f�#�*	�2<�h�� �~'B�w���m�H/��������wqM����o�gC)̵67�#�B�S��>_-[��L|R�R����lQ�}�\T�H)
�9Fa��"^�b�A:�ݳQ4��' �=�sO	���'�@.���Y&8z
�,i7����3y�;���U}p/�I��xV�x��il�F�Z��f���hX�c����.b��B*�|&��|g��e/�k�u��v\_H����b���d�p�G��/�A�}�㬬'�xȜ�Ջ�;�E����
�!W�����j��{���ZI$�z�{O�p�;�x��=׺�q�{�����5�l2�3O��=�@�j�j#�GY�T�n�>�&ެ��#��CBϩ�zLuy���lS�a�a���0�LTv��3��,�2
�sdTr�U}E����l1�z�`Xa*h{�qiuU�\��"L��д@�T��X�RU��Fg�]s���E���5�V0��X��/��u��k�z��B��'ك�J�x����	�Iz����7�������Y��Ε�1t���y���Κ_}��|�xm�[�xJ}z�l��D��V���r��csdsq�v�[��&��`�oU���l�?<j�C�!	OeqB��=�J�\�`��Lr�孈�d1Mh�o�w�ѹKi�ģ�d��*;^ҋ��$��xH���U��U`]G�kC�ꆂ�����O��QS�C��w�o�g~�yG8P�{{H��.$���6�!}d4,q>�`�ll�UMBR��Pe�2�A�1R���H�q��lB�Q���$�W�%��b�hB���ÚV@(?��F��A�Q}<GD�2�:�e@�f�$"�8�ȍF����f��5`��{���K�uv�\��X�+���vj��^4=��03O��(���0-I��fK�R���o���O���i�2�)؆�G�Ǟ
X<�ǘe�l��m��S�\��P��!!�ox�$�+��>dl���+��b���NIM�dT"+�ƌ��o0��`�89����\|5 ޣ�ئ(������y�j�q�m(����<\G�	�2���dT��P��0���$���n��@�
Ē!�X�㺕�����N��kճ�xiki����ݝͨћ"0?�^2�XF�,{s��r_e@V�����y�g����N�_�i����wq�;X��ED��\��b1G��(����Rs���T����<\ډQ���2tT	�;��`���[�,��Ak��K��bDl#�b8�,]�i\����|kC����xLq~r�
�Ά>|�ž�B����a��b�?a��ag3�0����(	j��"F�A*�{ߣ�d�]ř+XH�z�s����Z�S��L�u:��˅�)�Ҳ��n�J�EBnS����>Ħ�����	m�h,�R����T�~}�9,	�/������.��H�~�!���`��E���x��O�ۖ �mwI�l꧴ёUz�z�k*�*|m��*.?���~�
��c��hp��?e�Y�]�*H|̛1���e?�V;	ا	2�PQV���lW6m5O�3'�^���x�,�ҹ�a)T��eU��s10����ft9�����T��{�!��L���@�OL���tǽ!���^�L!t��i ���^��:C��R��	����K��
?2T��Yx�۩Fq#0���
<��hѭ����)���kes�a�T�l��
x����9���d��%+��b8X�Z� ��;g�v8n7�ϻ��a��&�^���o�b{w	OO��7�jϯ�زΞ��,�~��WY��ػqÎz����Voλ�g�'5�(��"ե�
�A�Ӄ[�:��P��|�Ӓ+>��#�2?$Mnd�u�e�S�J%����e؞~��U�q����
�޳�҈z�Rn�п,7��˱������>`�
�/�uFg��Og)P�J�\)X�k VF"��\t����r�#��wE]�s�:Y�#n��8��Lm"6D��
�Vġ�H`Q ௢��ү�QkG�]�<2�N�?����U
��&��|�a���_G܏�}�di�!�:`Ⱦ�����[�\,Y��]J����Ϲߐ���ì~���O���A%>���]��2P�l5p��O��ѐ��[ʀ4O@�¡,�Ҭ���-�,�4��X7�-#?�3��{���M·�C��1�8�a��Y)�M�"k��a�_=4�JqM��?��nh6�k�ɜ��P� 	�2�;�3�g�4ՍZЦө�GZ�k(m�p�v��riZF�}���i:�/��czP��uV�Q9E��&'�/���v��<�2���ۊ����YQ)�j.�HN����11�s��ʗ���؋�{�
��'|�k��lT�%�1�ꪋC���g�QUJ[�'��U�ؔ�̝�ֶ{�81� ��r�n���ҹ��}��
:,�й�6X7����f��e�'
NM�2p|�4��p6��Vn듁p&S=�[- ߞ��~�Nj�I���Y�/c`YAq6�-��Y�30#V~hs��EPT;�u��b6��WD#�N1o>��)Θ��Cx4�$�/jl1�
y�.�/���,���Rr���[YE*GЕ�Km/�|7�����SI��SƗ�q�F��㍹���6��:c�Vs�@��w��+�k�1��c��aí�����w0:Y5�Q�"
���+g"%*�2�t��`�G��ݴ�
�f:hN3�3�^�~<PM��Z�*w�����Ґ�I0�p!"`�PS�L�6
6�O��{&���`(�ۅ���Mq�aP����=P��Z_]��pv�W�{m�h:
�Uu,
A�j9�^��*��7#�C�f��]��gr�{NY��� 5���$�O�e�
Gn��s��$��\�i�`�D�����?�߾;���w���5U�xj~�̦�ܵ����֝�>�yө��)�o)l*��H�-�;���+�|��+[��-��ZG�X�f~<F���_��̝����r�f^R��
߂�4/)+��1La1PEv~�:+L>�M�e�b75���[	�Ho}pi8�;`�$�7��~�Yw�4��RypJ�s�������}�!*Yf�~����W��]�TKV�0Fy��l��$"��\��A��E?���W
,�[b�0q���.�|��x�Z�/�ˁ���]���P*4�$*(����R7��L�&����`goTܑ.�$�V̇�h�U�L�Hn�e��i_�"���o߁��e*mb��D2���u{��ݹш
߶\����ؿ����Z�D�ܚ��
v�z�1Ul��Rl-wk2V�x�Ց;�؀4�00�=ԑx�~޽ګ��o2R�mԔ��=��_��r���Z&�ן/߸�����(��[��C{�%b[f�.��<Nc0G2�ڼj��~H��iDP��ce�|:P�7i�/q���-ڏ���\�b�7R�>�\l$}�V����چU���*B3�l�RPf�	�d�'���<j�E����x���}�6f�s�(İS���e~4�U���)�C1�i�s%C��r�H"�3���؃)	��L[��ө)�mj��U��ٜ"����I��R��6�W3��nP���H����ߛ5Q7s\�@��Sw���RhƄ�eq�܍G0?޽~�ؑZ>���GL������c[�d�N
�%C9�X�<�Q��^i����p,U ȑTÉ�~��U�2('w|�/��B3�����J,�t
���WgLN$� [�V�|޾�v�h0X�X�����<�j�h���j0��{rLNm���[[L�3S�$Y����ʈ~
߇���K������!�QE(؋�����P:&��{�ƼӬ4sœ��WL3A�6�R
iv-7S:�L�3��e���=^�����Ŧ4˳�4�OC��R~ܐ��NK0+c$&3�M����u<:�"Z���,���n2N����EG���%Wթ!`�4ى‡��_��`��}�.�Kq���~�J�k��t��k�S�y*�
��)�I��k$Q��r�q3�T��)A
Rs��=[D�
j9q���v�C�no�KR2�v�)���1d�c}D�2k<9?�];�8����BR)x�ˣ;H�i�}{�74���4Ϗ[��:g�V-}@� ݡ_׀JPz�������X;�)aDJ�?���\#X���r��w�m���A�Ў2\�
�=�69j�R�Lm���.I�eG��R�'��v�$�	P�>5h_
��c�ҠW�?��+��������`ރχ�#C�����B��W'B��~����c�b
���5~}`��A�E((r�{2me5�
t>`v���d,p*=�ϕƼ'�� o�$ݥ�;f�`�̢�t��ɟJ�$��H��Z�K��Ԋ���k�+Lm����R2��1�,�q������F���p�̹-��J%b�����=g�V���^�y���~��׼�0~-P��ת{�ƛB���2X�Z�?�oG!x�n.��}%�}Oo	_�?b�J���N��v�$bl;z��`�&K��x^]"���d�+�geI2����� �B#�(ijNN>SwF�W��|�b�	���W�oW^\q�?��1>BL�/=�iR��,����cykW�Z)�BU����kjy�4X���K��,
3�
�F��9�pK�u���շ����q�@���OAv�yG4����.,m��#D"^�ѣ�8l�QZ��1���C����\�4oJܨ��힊������dD6�h[��|��L�]�V�~�.��:������0z*��HX�,�Ͽ�7��z��U�QN�e.7$:���.��0֣M��j��9�g�{2ڬC���O��墸���N٘�@.��W�1D�z[���[�M%V�5�r!4&U�r�
s�7%y�N�J(?�nYm�"T�C�Mmr�.�ݴ{bSNT��]*}�v`������1�^H����v�No�UۆAS6W�Oىe[(��B�͝�to1bϫZH��{���~�N�}Vˋٹo��<�>#��o���TFD"�%7�3���.�(?�f������]��`!��������1%U��qL:蜧�ϸ|��@8'�+��V��Wu۠��0��} +T/��Qn���l�~�c��{�p��a�=��V:#vm��~���1���t	0�SPH�]�/�j�g/!���{/�c �j���h���[�=�U�@ʍq�Ig6�M������mq�%Y8�dc�`"��X�t�������>�"��{��ri���P�O?��0=�/�9��F�nV}�OY[՜���"I��
�{GEz	`)Ӈr���OoK�Y꺧�S����4;�������L'�>�c���N@����8 �ʋ�{삕zb�8_xV������(X"]Δ�ěM6w�,�f�gf��+͜)T��JUt>
-�]z}�o�*�mGŶ�1�S��<����۵��&��:��Q�z�H��j��l�j��L�
�F,����a�Y�"'Lˬ�ɴ��bJp{���6�ի�h���]��m�
�E�=��~��f���Fv���E�`EWinux�8!GVY�??7K^�+�[2���%_�mw�s�Z���MZ?�v�l���9��f��O��{���,�'9�/}
T}�����6��V�zô�vU�[��dT,_u�V���E�+B:�x��a�Y.L4�r�P�1�"��n��j[)Xs�54��� �4s�S�6����{�(,�kW���
�:Dm�3����/
�T�*���z'�1�o�'3��o�w|Ћ��=�Y�<
a�D�m�?F_�Y3�f^�L�f�f'@�&M7�F0{���G���T�B����/�f��zqc�].L.I�n^����W�k��(�h��c�!Ȝ��|�%�?%��\��6�Q��n*��0��'�'����W�hĩ�=��ŝL��CgR񛙌��9V��玫؛A�ӚT�Q��y�č&i�٣h���QJ,#�|d驺z���|yYH�����{�FI%��O���RD�&�k�'�	��(����k�ͷ_�u�XT��4�J�o���tǠ��`X����l�/��-�ԩ����
TBIj�ԛ/�
��J�n0,�ħXB��U��H�h�Fe�%�6�%�/���:&zLl�dKT��
�^�Gv͊��SA4�:�D�I����ʯ���<��!.�1?nT���zhԓ尵�Z�B�����Cn���I������~+��sm�8�T��=f!c�(�KH���S���H7!L�S�.D�4�$��~]��ٴa�G��s�iK7���"dϸ}�����|�{���ܰQ�7�r-�y����̂z�RaV�]v4t��������2�����-��讨YD�ی�S�@�%_�B(F���Hke%&5��='�jF,�����G��oW�9�;�(�ڤ���X�3z`�f�M��<�~�1��bR�6t��0l�u�F���Ij˯���Jo��I�q���Ĵ(��cǘ�U��@���Ѣ#e�&��V������y(�	�{̧Ku���WKe��Z
^>(wDI���߹}x��
��ƺ�5�gY�G2�2��&���sσ!q��\	�������C�P%U�
fb���S����'�H�Lbi�,�s��F���6���7߼D�
�g̣oGa)j�S-&�>7��y���CCΖi�]MR���A��0��
Kf��F=z��gg��tf�7Kx �[��L^.[��ԭ>�Z�c�7���36�c͗��q��w��*CC�V<��])E��9��)�ϛ�0l�SM�.$�bAS��Hib%z�qݓV��޷ʀ7�+8�{
\�H�A�Z#[�8��0�*��r[-�swn�xP+HEl���Y./�k6wKb�?�8�8G�I.�u���r޼�l9�Eiޜ����`�"�ƃ���ȇ�˺�&v��I��բu*J\[�^en�Q%j	?{�nW+��1��Z���C��	�$��3��!��6���/�SG� @�4ΌE�!�Rd�8hg?��J~���u?Zi��D��4��K{j%)�'�x��Ma��YvkEt�,l���c:��w�Xk||2��$�.Ey�=x��*-LM��_���xC���{�t��4.��<�P�r�͙��s�1��/��N8�uu��.ӿS�_r�j�]�\���av^�����s��Q��ZŜ�-��D�u�S��g�6����{${�r�2����5�>���,	��hc�b�J֊�?${ou�o>ͨ��vCl��(��<�/0�x�(D'aԧ�R�0��"�o@����>N�9ߖQ�]��}��3�(� z^)(Үe�}E1\�p�B�(y��f̷�H����Y��/HI��;,���q«=���d��<zl�hi f|A��f�g]y\��:e���}���կ�F��M�.M�-L�C��E�f麬��u��\Q(K�ۄ�Rj���R�Ǐ��/��[��uTOb��D;Cطc�E���E�TSq��h3d��-{�fXp���6��h]���V�Ha3<���v��J@X�����M�zdR�Lb�3��/�����dz�"���?Ԁg�:D_���P��7���_٠�Sc}����ߨ�ʕ�0�$��0��s���MG%^��X��5��Tn;���>&T�<��)3SfV1��ړ'���vh���D���n�$4n���'�r}b0��D�xo�V���U�JgIN����}��4��/��|ߥ\��$M��y��"�j�}j����ib�!�NӽSB�v�C9�wp�7}��5�����q2�Ѫ��Ҵ�UÍ�,��鼁I��}�;��Y͜ȝ�DJm[���O��sޥ$Fl�X��~�=/_��S�L��J���&��^(
qwv#��	�꒎��.�P���:bB��fV�2q�gn�ٙ��l8VӅ��b��0�aG-OTlO=A�f��W�O׭OJ��{��̑Ͳ�g�� k:���I��3��*z�A$���̊k�P
�`��n�FGx)�G�RPE%�5�\�}������3۵Ruu��W�-�������2�����G��������%v�oM���k x��B�uF��N7ׂkV)12�dB!4
��.
��N�8O,f����2TiV
u����d�L��zy���u�g��’�;�Ks�'^���y+�7UUO���B��ж�+�$�%O�9elե*��c@��F��c6gg�MU_�~1f��v�V�5
��-V
��0�� )_D�{��Գb1�#Q|�k�9=�?���Po���c�s��$&��}�BoWT��"M���=�Dy$,I��N,چ�	w�I�x�E���6��x�n�C�C-���,�ϕ��̲Y
:�y�~��ʝ�،��=Y���c�,Txe�qU�k���*O��Tq�\�E���*��/ؒ/��NS�Uf:��b��?�ī�H�t$ٶUfu��dH"��$�2kQ�/���WiX���N��x
�r6���_y{?2�ڽ��C~{���u�8�|�܁�Sf��+��{��3�0`�wbcC���Q��+zƪ\T�-�{�]��ξ6�Ѯ�c�?�8�Z~|�&�e��D��9qW�2R,Y+���y<`Ow�A�bz6|�]�:q��Z�O�V�gM��̥ic�kJ�0�=,������4�,am"����RC#��,c�f���Z6RcG�Ţ:�)e�		���eI��r6.��Z;��P�+O�)��$\�wI�V��(h�`z�{%�fp��xl	}�o��nr
��7�%ӧ��{��
��x�m���1o��i��q�� J���O��'V!��"��=�$

ї4��KS�+���&Z�ۙ��'�憥Y���^��e���~���}�,��x'"s�o߮d����߽}{.�k���TJY;ff��j�KV���B�+�j��qM�WL�"�e�/�׶�߻Yf����xw�I��:k�I��q.��Dz�dLWim��]ɗ���]
f��)�B��{l�ֻ��`�j�~�ކ��;ā;~�7��-zA����X�'��tb����WO�.��$�GS0R��a�#�Q���P�O�|�P[����%`C)c���"�ͽdD1�xp_s*5�ac<�v��P��c�q`{D8�Shv��i ���W�	��w�pk���R|��O�2/n�@�6M��R�իB|��\Un��^�l�s���=[{���A�?��zJ_R6��SA���	�������o���wn���~��GK+�(uhK�7���,���H��⺔���Q��/��,���Z��y�(NZ��y
����ɧ���e+u�h�C�<�/�,s	wy��#�j��I��诵�{�Ҏ����,ٿ�%�`S"[;��_~`!>�]�܎*��t]8J�u׷�uO�
��աH>��h�Lkq7g��R2�,ʪ��Z]�|��$�CZ���m
������q�X��	�LrS���Kb��홞���%H���/���w�>G�9�(|�v�v�NnNvX
N
Ѐ`p�����+�{(��u\� s��Q��p�ݨ3��q�\��͟��$�ﵧ�;Q�Sřz��[jl	�6n� 8�DT�}��㔨�P�E	%��BW�ح�Y�w��.�����!����/^�mdSZ~j=�*Qgd�⨎�0t���]�����q�-�.P�JBp��1	�ث��at�l�/���y�p�q�{~��TOH���6���	u�N���wY�|�
A�Vr��wDh4Kk���+
�/�@
@��O�����J��ZB1[�?l{�JՊ���q�9Pv�oY6�CJ������������$���H`7Ei���)*eK��؂Y8��{V���)b��pNv/A�%�;�uh�(w̃�l}�*�4�y|uV:&�*P;L�Q���g*}O��W;xT�!���F�[���o�
l���*�����K��K��Uv�ܼƌ٫NY4�$Gd+�3�$K�VZ���F&FuR��j.GN��ۖ�5ƴ�revv�v���Ȭ2M��C[�)�|��eGyb�{�)ڻ���.I{l�1����C��e�sZ�t��h��ɻ�RæGp��7?��(�d��W�^=�

���&�f�V��͞�iϟ\���G��6$��$��uP=o�u87����[�%>`<�.��$�Mtӗ�B)G�jS�Q���Ud�`��S�"��3��ɽ�}Mױ�Tth?�7���]�����i�EH���zş��|�-���td���ۑ,�:�D�����j7l��D6٧-�����+�}ZU4�^��xO�ݼ��f��QH����U;"I{�)��1��Z���.����@�2󄖩b+q�z�V��s^�>��V[ŵ���-5�v�����]蚮���c��"��"f���\�߬��<�ۋcy��#��Qj�6dr#�ȑ���J��4l�O���(y��N��}$m�[�-�|�Ԉ*��S�\�ќ��臉@��@
���ie'�m��'q$��s'B���੻A��d�)��.�*	�_y��#z_Ы_����{��_a�_=+䊒ӌϞ'P�ܺw
G�J��l.���r�q�Z�vD(�DCG�&�C�ر�!��=�ǣz4���v(�$;�{�2 @�iǘ�u��pc�E��
	hh	s��>
��L�^�f�ڻw�
TWޟ��R�
�/_�I�Ħ�M'B.���,P�-�H�j)��%P����Dp2��^�^w�`K֫�K�Pa>ξ﫥jϨg�)�KS��ټ�dGFYG�$����X`�7%�Ҁc�K��QO����"BաB�'��^.�`"�;�G����leԒ�O^l��:�Q�>�45e�=[7$z�����i��F�\*B�'ǝ�A�ko����MFc�������3|�Ӭ%v�>!���]�€����'!	��}:xi�/�xcR�^W��I������C��z��_`~c���V��Fvf�]5On��C��?��ҷ�7�9��']�/g}��փi��UIȃ��O�t��̒�?��k���:����[��>TSi������E<7�E-�N	ؐw;�mD��u���[�����z�+9��g_PO$��UYN��[�#j���I&���3�\e4n����)Rvcx�/�V�C�?�K�����g{G��X����"b��(�6��ʛ�|����	R�r�I���&�-Nձ��*�?��2BpEYP�[��.���r?�gO�h��/%l�RO�E�
�f N=d&�u_qb�?X°��f:��J/��}?(u�6����P�"��L~�iV-�g1��YBg�	�����}H�K2�4鵖r)�ۡ�#|ti�@@��J�R[��k
x����cE^����I2߸�dVo�qP���kZa2��H�/�=(�c[lW%i����cX�c���hP�q���6�c�M�?�}iSh�Rm��]��6;���?'����B}g��M�m��Ǟ���Cj,v���Ա��>����G��+zYl?G�ܦ*{��.�m7�A�T�^1D�"�;R�Ur��"bh��lqw$���/gy�R�mZp�%�0B�ϝ#4�b���\q0n�	�N]M�<�q��N��{Ԉ��h�@��1?��~�t����6͜��T��k���̆ҙ҇�\M�|�t �5O<4> J�}��,�QrQ*ͯ��A\'�)yz�'�KdخD��Wdi�@gzu'1\}�^q���I<>e^�h)�Q*��lz�B�l?g�������G��Z���0`��~���9�<!:���+��xۣ""p�[�W�}��"�Y|ʒ��>�/ie+U�r�W���Ws6
�g�*�D}�z�yn+ህwUӋ։��f�G�%!���L[#��"�h2�fmh��|Fqb}*�H��#z���nV˴��]�xA �1����m��k�
	ׂV|=�@�=��OB�z�P�d��5Vrl$���ZՄ8����8^Ϗ�qp(:A6J5PY2		èV��'G����pe�᝭\��hj���p�1a���w�ʓS�A$�|�H��E#7ч����|��p��*���
�`�D]Z�B-��\6�iWẍG������GG��׮~�Y�J��T7Mq^��#�0����õq������b�0�KVot�[
�Ֆm^�k k��-d�p�ݟ��^J��d�3��ݕF�F�T�Ϻۗ�9o�\S�8��qk�"�σxL_:��P��Lh��0!��iˌ�{��8�:���zE
 �Oy���/�l
,)�G�����q��Q��R�`��\J�>[����ip&Հ@�����
��$��:�Q8���Bt:@`{>���'�a�ޝu9��9�'��L�cи�đHh��d͞���YG�f�������/�	N�=�Sf�0T�;WJ&� �I�2����31��kÉr`��}��A̶���������d���@\q-�9(�B�,vѣ�ALX�q�H[�!�f�-t|����n�PΤR^�b����GO�f�=+����h���W�D;Kf�x1��^U�]�3�@j�K8{V�. "k5���h�G¾�pC鹒�*�6i��S+п�u4495�dj�+��Kk��Nq�B��M�++?{�2M��NJV�u�90�$#dV�/�,)��
Ak0�Ƃ^����F�ߛ����n������<%��J�����vq$������d	@�ww��?��R��s�
D1�F-�_�E1}�zc�ƝZ�h��[����$��&DWx&fe�%�� ~)	~��XL�t˛�҅��JK�//(�F[�KY=;��ؕb����~$Vd�]��8��|��bJ�):v ���3R�R�Q��}˺�O��	k�UP��}��SV����xsQ�ro���3��z�2�F���'֯���nN?��{"]�1B+�յ�
�;*�
���eO]���-��N~���2�̜�u%l�(Z�����b�9M�h]Z3')�9�#�>�*�<c�;�Ԛ}l>�%�)�V`leY�.5*���D~�-��d5J��Z�!Q��Ӧ�^fP��/fj��T�X��X&(f!�Ý^�g/j<	�/��륃S'J֓5�V^	���ߟ��^�m�{��2��;��
0i7$�&⩵�ӵ�����XEOS��x�5DZ�يt"�h��v�_C���S���~A$�<�@���f�\;S�a�)��6C��_���Ίg0(4i-k�<
#5t�\CC��h�>;�!`���� 3��-�6�ht�D]�S�eN����
�}�}�����"����#Qn����`F:��>�79$lV��e~���̈Ja�%��q~�ܣ�˴��^l�C��
f+/����eBa��<�'� \*F�C�;��|�c
��ڀ�N��f�!�L2i~�<[
����p�&�ѕA�kn�n��r�틧���n&�fvnjn�-��2�5(!�������rC~��D���"`\T�'j	��P`�0i�O͚�F�krf�uə��کj\'�3�!B�IEl�Q?��m12<T���R礥|�X}���v��f�*�?_�K|IY������{�%m`*5�D���`��N��9$#�c�����z�K����t�؀d��k؁�7��[�3�z�ܐ,����b<�|S<�~غ-VE�l̤��iA@O[��.5>�pQ����e�>��R�w�تD�.ۋ���
XN#�'N���jj��о4�!��tK_���f�R��!@棼C�J-�ja�H*�����N��p�@w�V�[;��
��➄s�q���H��l��ڜA�?�y�	"�j�!���<�U�?�h����k�1��oa޻���e�8S��1�Н䋄��!���9�h��I
��B��
9K�o_([f0���o!����31�C���;X�Ih$�ɀ禹@��@0Wl
�]�&)s6��4w�Y�3c.��Mg^��1���O�qs#Ms�3ZNLMi�}���
�9�U�~��x~{�$6���F�ɬQ�Ei�2Wv�YF�A��Vl�����VDXer�(���Z�e���Ͱ�3)��\t��5\^�"r�Ш�s�
�w�P�5��f7�N�K$f��^q{�"L���]��z`@��DQh���6f���~h�G�5�uU7G�����~�
���.�#3�P��TV�!�n���ژPf6�Չ>l�6	9@�Җ������5Ϛ62�t@7
��L��2	�� t���'ԯ�bH���Լ�w��Wf��Ɋ7=��.=bx
%d?
���a��� �9�e�p����H�ҩK��\��ۏ������$����C%�0����
������ntv��:��M�`᳑B���asp�&)"-qc���	��@�I����bk������3eP�F8��ZmUL(�(qP05�n'���C���V���i��������j���ɿX?q�g^:ӛ�[[P�V8�����6��=Iɉ(�c�G���@���Lb!l�l��8߬Mv���vVb�q�~��/���%�Ii����҂ϡ֣T�=�!B��PS:�m�u�v��P��s�ϥ�;����Z|s,G��:��pH���g��Vu��ZR>f��@��e⋮@F�<6�Ͳ�.��L�
�/�)�X�3"LN>�^�m��w'����>��\�C<��C�Kb`�(.��u�ְ����T�'� �o���MG�{x�$
v��9�
�|�F���x�ʀa@QI�֧�'�=�z|Q�o�^B�f��,�Zf�W�4�#�4��y�I���9#��5ZڭE���2�p�'��B��~���U�j}ۣWwE�`�	
m�'?�!�@ ��C 2C���pc��lݻOš�{(�C2��kC����k��'�U�"��C?�T�Q^��ڝ��kK��m�3��m��$�۝��ͮ��]�<i(Q&wldmY�1� s��3�hOJ����:�N�I��7N��$�zڸ��##ot4zϊ�p��驚�0��k�x�ȬU����ÜF~:(|�B�����n��m�	`N-���d�l��9�/\T�&1����9�V<vn�:};B+ׇd�S�\H���l5� j���fe_�����Ńa�8��||g���x��WF�i��%C�F#�Mk��1����wJ%"�\Ӿ7����R
��6�;�{<�UK�9`�;$�Ѿ�<�{b�a*MwfԱ���O_�g�2��Ej�]V��4�X�*��g�S0�K���c��A��T�P�ݏ�`~�e?�F�[��n�jX�nر�U��5Z �"��p�ss���41�@�����Gi�<J��<{��z���ޢM�}�a��!Be:�܍o�`-�C\�.yk��$��exdz�N�H���(���_����!�KF���otvW��w-��s�L�>��]9b�	�Jn�)sn�t_���_xEK��D� ��B	�$gY�A�V>g$�%L�0L#��{&Ν��Ftd�\��P�=��a4��
�8"�<ܝ��s�L^^N���Ec��v���H-_>���֋��;|+�c��!�������8�O/�.规��Jn�8�&�,���%�s�t�]6(k�H6��Fq#(ۉ[�y����{��0(�^��ֿ�b��ף�Ŭ�����������&f��zCqI���<Μ$��((h\�ED�C�������c_�x�/��E�.:���i^��+�Ο�1צ��҂Ji4@`l�xN�L$搘6��T���.��?���4]�X�1h|}g8<1Ȥ<�@K��/��/��5�p�ל�o��t��p�a j�t�bE��E�y��&Ц4`د���$�L���"����Jvi��l�j�Z%=')��8�e���`8�T����*�M�8���.������w�~��\(H�t�vr�"jDo�GG
�i���lHe��%ia&9�d���d>�-i
�lM�ܰ��TA�$��VHG|��
�$��:�1Rs\�Z $�Pj�ۇ��]ً�g�8`簆 �zߒ��V�X��ݕx�rtX/�A�p�2�^[1~R{�뚬���ɇ�:kCU'5n��%�'�CXP06G�ۮ��l[�<�N�scOFeQ��-�gi$�RN���o7�Wz�
_t��"?�z<Q��l&��B,5�"�}\��i^�|}��R�����l;$��ѻ�'dxw��A*�ͺ1_w�f$or�w�V�$
��T�Hi�����L����lVc\����7O슚��ŹR�D)�]��B����=3���qF�MM��ȓ�B�g����
�OM[�԰`�W[pBΉt��i�\��`�{X���/)�ƩcD�R��Pvz�x��49H�_��ه�#�1��&��P�/��֡��&�U��u���)��l9�Э�:!�}ɑ�=[�*��;����u{����.��p��"�!��,��|v�nN�K�63ud>��6����y/H�}���ё�{qL���$��
��-���a��[���st�nS�n2�ğ�@���ѷ�����xHNp�������2���&��3	�����f��x�)�WP'h�7f�>�� �s!�;�p��&Q����cN>OgdH�E�1u	{��^�گ�V�}���2�@�J�H�S��>!~��L�^d	��r��5/��GyNW�-�`����ɚLJ��=��(R�V2�ȏ�M;�:�-��A0<Ȥ	L�1L<F(�J��L��Cl�Y���N��_7�:*�\8͏�w��
d5'L�����H�s5M �2ID�%��WP\pyr�~��ҍ�)qN0�E�|)�(�@��(";�JGZ�!���U��,WL�#E׬�E�����O5.K��������Slso��z�d�7��ӳ;%n<�5�*���iu���?o��mI��"m��.�XL���F������r��s������
8�!���{N�c�yٗ����Nf��2�!�n"5hU�F��J'�d�B�2��sv5�	�����C�r>~.���ܤ�kg��LinN�d����u'����f]��B�sL��A�5S�h�K�v�vn-�_e�9e�V"m���B:�GΫ�x�c�ZX
���o��y����HKgT�~cN¸���OZK:�b�A�%9C	]��o�ʗ����w�1��)(�t��^�?��u�Ʀ�-A���9�����9N�لL����#�A2Yu����5��/_=fql��j���އ���ˡ?u��Ar�Z����]�A�X _�v�M��1V��&P\���6X��2��m7䥱[lҏ'�A��Q6R�S�Q}�딭S��e���S\D-wLrTC]�ӎorly�݂X���J^fo�-���˰��(�X3�R>\�#�	9��VP饘QՐۑ,a�e���X�#�*���gV�Tnq���GL�(��Z)�o�M�i��!#Z��H.��$�ɀW�����\�p���*ȶ��/��.g��y 9��L2��p�(�#Z-)i�����j��jԭ=�0b���`n�0�a]�k2�I)�X�E�8f�nD�η�%8�CS.�o��ě�Ng�'d�p�-��J�=a���Y<l��Ǡ�OYdb�Hl_LC
^]����o����>�ɹب��Nk�Y	��Ե=�����f��N���H�^�����f�<���(|�E��(SL��\���>�u�4vdN��~�HN��[�nD���eh/ڈ(2�1�he_ʔQnV=�C��H�E��gi~�%�B��15���czŕv
�>a�Y��%�e�&c!��pIB
�8г]~A-l�64�1���/�[\\ZI�
T4�W���aa8'l��xRY��N�e��j3:��-:G��6�v��ad$$`�M,ܔC�z�3�!q�1�����]Ӌ��n#x��B����l]��K�^�t����_@Y�u�gS��k��]�OƤ�&v:��N��a�L�ewɋ��-hY}:��xi O� ��x|+^�ñ�Cq%��]{[[�q"�	�x@L�upՔ��j����-��[=�����ئ�\�e��jq[�%��^W���'�Hj�y�c��%J8�Imx���=�C/�].&�w4�D��,Ƙ��3���"�z���`�U���
|M:3Qc!�_ǣ��W(Wj���q��S�#f(G4GޗI>�����n�ڄE��٩����^�����˗��<D$>n�HG[�M�'�C�&�Ǹ'o�rUm�����N��ݾwJ?��6�\A<��N���ZK5�D�)����Hi=�i�qlS��:�B2�&yY��^�bخu}�Y+lc��Z�mL��%9��s��̪Y�O�1�ߺYD2L�
���ʢ%���c+7�V�_.rsIq
pש�� >�bG�Nz�Ž2�q�X��D�I��a����'H�V�T��으���E�t�|��G�3�(
oOtrJl�s<�;���3)YQ��`gw�8"o�&��7>�cѭ��^��@&��t�T�}g��$�}��0h�h�)�GT���s��y4r��
 o�
M�H;Φw�~|� !(���������ad�"	���-sQg#�,1M��|��/�u�h�R���-�.k$G�K,݅1a=a���YP�A�,q�%!�
ONzvN6�^��>��ƬA�v�J�F�ӽ�)��
/���ުl̒�B3GM��'[�,n\��\k�ѣ
m1�hm�o�>!����jM0C <����埵��ߎ\������`K|_xN�`ǀ���pWJ�jHL�M�<��_���=����C��M@Wޅ�%ꉷ��dž���f���%�Mn�p�Z�3�@>'�M��d
�Y�,BT��u��J�:����o>��b^չ�ȑ�ދGx��_W�`�H��"=�ϟ��z&=�@�%ӌH���qi�x�DH�Xx�jꄯK |@QT��P��+�:u�c�}О�T�����B5�ڨ�81��hȩ����a��Fu�XLc[�nNרxtN�D�X��*N8������s7�|����2
�R{>}78��.��G���yՂ��Og�#�Q���q�'�g
�f����K�Y��`�9�h�2�„�6�$}�� ��(�T?��}A�`�7�8��LHFR�G�
E�FJXw!S�K�r���@EKa��2�'��ʌ�%v[؟[7��S�F�j��j��[5�h�Mt,���^���i#��Co���q§�Z�e���t��e�Wi�����p_�t��^*>����Vlh�Z�Q�jX��B�㨪�9�q7�@������'������[=e��H+^ї����a/�G�6�z�<�6)yж��DH�wF����v�2nF�)%�d�����.�)��ەP6^÷r	��{�h��<�L�?�Ih.�����dht[$���]	��fŘ�9&4.�;�s;�B�����
�k�����~�>�j)ϰy"T�㝼j�MU��d΂M�ݱ��[��D�g4{+�ݝ���:�<�9q���A��w	L}��A=£6�۠ev��Au�+U�_��Q�3f�?���R�\�0R�
�R^ �,���V�w��W����2�`A	�v�G�<9��4nX;�?��?�*uV0�����{[4"��΂,���qӼ��<��RK�+���k5�WxcF��PO�=*��;E����D�~��:�	�m\A��p�����\XX�d����+�Hk6��Zb���WsX�/��$_��Q��Z_���hh�L�u|��8�
	���Z����}�IH�:ƋoK}��
�a/-�k��xVq0��r��LC�_�D6h&軓S�q}pߨ�=��~38���^x�Sߡc���8Um��e~7����VUZ�:�vƯ�[m�>���?�
��p}�_�gKB���_
%�_�g=�Ih|.ݥą�V^1䓺0	"{��7��m�s�9�ꛦ���B��N��I�p��i{
]J� ��:M����y�%��u�����G��Vց����kk<o)�{<O�GJץ�xCNj3-˪���W-739�Bƒ(T
`�P���X�i��wQ�:����6�)"S #�-��,�"v	��\��d~n��2rr2Ob�6�[�T���
R�Kc�Y�犋��4c]�>����py��jp:G]�Z����$0
��_�N+M7�Y2l
@x��6q��	��4���59O�Т�}T��r�f5��2�k t�߲�}�p�U\�ur����sVl�ת�a���޲�
}Vm���~3�gm���,\7m}�-���*�,EH�q�$Yx�=E���_V'��C��R�i�ND��9���/Cb����x��@8`�2I̪,!���f݄�nE��8�b�+Q��2쪘�CZ^?G��Vf��砱��(B��Ie�+�9��:
A���
��v����4�RB�H �z�ѳy�|�x���֣�W?�E�t��FO�ܔ�c��=��1E�$V(T��}�rY�!HhQ!.F/
d���իG���0����;j86t��������	8��y��QG��/Z��a3=
���O����_�ؤJ��Pג�I�Rs�Z=��|ڼA#������#�su��曻;.�����.t�ש:�KIT'�6���m7��"�:���s�b�q�yL�@Z,Y�	bg����,���n����{O�;]�ɪ!_�"=c�Ӻ���dij�2�G�B�X�$���|��i�!���*nT�%��;�*���^3�/c�E��s�4��CwLj})���<(��YpHw���W�^��HL�-v��p��đ@w��Пp�̹�U�K����>1뷀��L˾�f�0p��Ύ�=�_��!	9�q�[���ƭ��t�-c\
�	@�q�]���CAJ��p�Pao|y�lN��{F��*3�F��xLTv���0ԛV,�������jH�A(\���x�����xtP�
���R�^����S��h"�H��Jn#_p�.�$���s2�i��B����{T�uZKt\�LI�%���*���P�={�b�"U�Q�"V�R}	>Z������ŊN��Vݮ�-�J��hσ��
�^����;��FQ��,*+�"�"�00)�:;:V��P8*e(7�Jl�����0oHe^Ɗ��y%�`��4��Y�[eX}�6K�J˩���^#<ɝ��I�_/�23-@�l�4��`��P�=�K&=.)��՜XvL���f�o���BG]ޮ��+��؂Py��I�n�V`�k-~S��d��d��cU��.�gƗ'� 1N����0P!��ί��H��]Hf��[�Z�x���\.� ��+�\_4b��Ov�����#������v!�l�,�x<�DxIN-F��e,/�\m���d�Py��Ir��ǐ&$�G�K�K��և1�q�zG�!����A��38�̍�97U;ȴVe�g ��݌�L��ΐo�tp�R<s��k0U�-������=C���C����WjA����Oi�ퟌ��il0Gtc=T�	�u5�<ل�'M�>#��
�A�D���䶅�)�m�"Ǜ�X!-�Μa�R�����_��});�;6��П�(��o:֔�qC^��Ǖ��۵�A=�z�O�b�	�d�~���������hz�n/J~�ǪŤzS�,J��J#2ŭ��i�Z~_�{c��]o�bR:�v:��?e?	tZ]ָ�ՠ�gժMk�&�zz�q��%�UCW\Y�ڻes���7iv����Z�d��T�V�Q�C�$mČk�i�w�ƿ#��;�̋�	%y�G�8@5:yq)���|⌬N��=������Bց�^\��S�8]�]�?{��rW����[-�+W�q�)^2���-��KK�0g4�LҼ�&O��SP�d���Ş-m���>����n�x�QyY崎b��y�CQ����A��)��B��D`<`���������7����%f"�Y����>���ШG]�T}�_�����T�,a���^&xԠ���,v�4�EpW�¶��S�A�N�Ⅽgj�)����&��d��5�4��(���$���sD�Bݦx��O�h�XQ��L�w��`�q�nP�sT�s��'@�Tz��,�2��J�*njވ�4_�}3�����י�j�ҫ-�%i����
����P�O�F?��kjS�#�G�'��p�1��J�m�b���a[�2��?kKq��!��@-^Y97�*��o0�i�M�l�=�ߺ��������(�7g���_��Ǚ�W�أ��..��
�p���k�����#��c]@��q�o�s]�vK��i]�C+�K6�-�/'S���{V��F#pƦuO&��g�z��u��t��xeL�.��v�s�Mf�џ@/��)�u����A�)0!۽�)/Y���_$mU?S^�	Gq����Vċj.v���UH��0��mǕ��*3����bt3����(��$F#��P�hzZ���o��\��d�沠pmL�~�Ljb�mmK���	�qsN�"Q_Qh9�	-��㳟CU�џ��O�=ކ�y�5��Yk�����N.eu�i�#u��ڒࠠ���p�*��!��C_߻3��Q�p�azm�g�-���	�-���k
8��Z��莧�YP�d�M����`TG���hѤ]:�d���VN�vc�W:w��|kҁ.:ӫ�O�ڑs�w pT����%z΁ه�*�0)��A&3��PPQ_i.�-Z�!���%�Tt���f3�k״�+��f���6������6mP�яH4�ׇ��2��
�umMCͥ�pm*Y˭���9�_����J[���.9��&��,r�H�i߃8Ʌ��a������[�N�n��<�CrxL��r�J2�vc��>x�	�����J�#u��:nY���}l�z�Ӯ��^Y;���z��Ӊ�1�`7z�v/��_眓��{��='T� `Jټ]�ȇU�)K{v�[���՝y�`�-0-�?���^����[�mSƐ�=�O#_D���q�q�mR0���)�
i�bJ��}���<�w�o�a�6�[����^D���Zz`����̶.D�K���=b�	����b��l�޲w헂M���7dֆ������#wQ]!���˘��g1}BJ�9�����Ԏ�I��=CVR��%�L�MU�]C(�+#O�1Q�dj�2��~&�B'٩p��c�Q�4�1#���qʸL��̮�L�➒��GZt*j�I�`��Q���/�HJe�l���豎���x[0�D�֌1�STK�af�;���3`L��}�{اJ&5������J�^����G������&���x��%n�q##�G��7���p(/8����ʶJGy���8�?�����+>I�����克W�T�m
Aj��/b����YFNG�uc����\�����:�i%���fU,p�I�p ��^y���B�cx�2�����
Vb�6N�d�ٍәT���l�W�{tĈT{��S/�Q�Y��K���7��#��pQcGo���g�Q��G?e<���t���J���8�3�Y��ި�F^:�̊�|�ʚ8`r}�Q�hF�4�뢺j"�:k�2;k��.,�&��z�TIF�Ty�=�K��;�pr$�Ѳ�8f_��TIV[��[�ź`���.N0�U���8IY��
�D5�7�o-
!�mv9��\/�KR����!���6���b��\�+'I�e/��a��Fzͷ��{���P|�w��4ej-��t�۠^�\�SK�+'�J�R��S�f����4��Ԗ+�e���"Ӄ�j\��ʌ�E�.�>p���!�\�B���}vچN!"f���R�0r�G�߻�*�� ����/J����6�M���n���~��}}<��o���lϸ�p�f%��n~��W�X�U�lA!�ˍ!ӫ��8�iD*�z3��@��EYo�J�N�C8f���,�R	�Ə�m�w�E��(�i�wL��e��7�xЬ���2��Lz� B��,�'\n@Oޤl�o<i���YU��ʣ�:�8��p�u��Z�8�&>�s4PcX�Y��������}t�p�-�	��yC&��z���
Z`7�)�<i���6Oggtx�
hTI�w1a�r���3;e����0t����Ysmv�YE����{)�K���Yh�&�ۑǶ��X����>T)�0�jJ���ׯ�$7
�����۷o�Uck��w��Y;8��>���+g�6w&$�>ނu���>�
�VZ�J�����g�˿�=���>O��i�]@����QY������O�����ƽAI�N%F(��Y�9�9��J�C4�Q@J���9��u�3p=�0A��1
��,^�>�(��HR��Bx��Lԇ�j-���a�p3���7ub�NV4|u��砋ale��z���J@��5���y�C�Q@RRq�O���</�&�IG&-p@_S/�mn�����c��Z5;�<y	��/骞P��e ��������P.Wk�Y�D4�<�A������NǬ��i�D��N$�7 �.� �+�gI�g��:�#?ḤPuG�q+5<(��ڮ-H�JD����U1&g�ξ#Y�#}ă��-�s�<I�ʹ�`�{6p�S���uA�mm�G�p<��s�Oic0ʶ�u�����f�5o#������.�o]�l�<(I�Ֆ+� [D-���d���qꝻ�)�<UPqyoQ^49K�#	*���%^��"Vv�*-���s�y1"N�!�4��\U$џʋ[��M}�ߑO�r=��K-�
��82I��+��(�Ydmh����La��$U�T��
��C�(����' H(x��
��=��<XU��Q�����L)FM��^�>�¼�p����1�B��j�*�O��|O�,������0�߰�ʹн�,u����
�Hs�5��IJ��R���(���+��F�L�?Fh#~J��1�������p)O"�-J��q
�Ƀ7�u6��(ۄ������!P@��>Á1�
�&'�s3�ه�X,�9Y�|�s��A�CEvp�|̺%��3�7�_*xC��8�
<�"�'"G�����!�£���V�볩�s�&<6D-m�������t�t�z�q5��"m����J���}_�(^�m�'V����s�۴F�>}*s�V�Ӈ"����m��������9oq�����{��o��!<�]w�@a�#a���Y�Y}i����|#�r��\��I�_ߙ�W+��"푎��Nܞ�0�|��9�8�ֽ
.�yf����n�sˡ�b���~p*5E#�s
�vN�9>�c���QG�!�Ú��8��Њ�y�6&���-2�~Q����[�aṖ��о)5�����_[��z�_i�t���b(߭O��=�C/�����P4?9�T�,�1��լ��9��"�f���P]S���Ԝ(0v4�s�Jsb��nQ�{��}�#�@����ɏ���U����^��R+�/6�'
������Kh��-��F�s�5�X��ޖX�yXQ�3����
����WK���b"��&�â�{�[�m�p��Z���ֶ/ʲ��Z[��Z-l$�N�e�WHW�M�_�
Vӧ�x�s�䀱X
)���o�C&�6�l�ktIp��].@?wS���h�s-�$�9��n�P[������p�Y�ӲG�:������E�t����b&�<
�E�_���p�0Jtz�X��B����.R��
.E��Ď��u-0OSBþm	���Ǣ�����]v��d�`��ÝX�P���[
��V�C�4O�������0&z��u��4�&��E�ʙ't�A��B��%�+�DˎG~A�x��CPKZ��n���Rg��x�+��i|�o�ʜ��8��o�qJ�`��G��~��ɕo P
�8�yuq�뢵����𐠵�������Ռ=ƶ��T�·n2p���aA/�F[
]+p^��F���(���?ɬ3gg���Q)���Ċ�DLm4��G;�?81�[ѫ�T�> =�Q8��)ʒ�5��ck+gdR�����A|�v��a�kBcz���[���C8�^'�դ���O�S0��* )�5r��|��Ȥ��^�?�z}�[�SWU�����T}��?L���U�^����}L	�6h�8�
�b�ǎEڰn�/�M��A��6����6Mk<��u9�o5)?q�	#�019u�A.�mX�iȪ�fg�Q���Wo�g�@��u�;�	�o#���&�o4�O�:on��M^���;>��r�0�.'�}�)X��"�9��O����~�.7@3����_~I*���`���֣��q���^Q(T����ߠ1�``��w2����u���Փ��أ���0�F�(zc<��mL�hc�-p�:�|m��.Ǣ�VfhJ��M�~� �[е�}��r��2��~��wzJ�:Ս{�s	�3��xԺ�,G� �MKd���v%b�o���|��l6�z	^aCG;zVl� |_����m௷E�ZQl��Z��>g��sSo���l���P��8�C�4>@���e1bς���	 ��z���F]�5�Qƃ�/Y
�vAfG�WJ;��=�yw@�R���q�\kK0{2tv�0="w
0�N����r
�D�n��J`3�7�%/-�*�R��.U+�[l�Q��7H����0x�/{džq���8>6F��'0*G\�Q�a�$;�h�fEB���C����-`0��)�y�[hʑ����V�
H2�pC��xQ�P¥��9�>&zgိ�*�+kɼ�'���W_�~I����Pg_�CO{b���̖���aշ�N�� ���
��~A'�/I��팟o����"��ܬ*0w�����K�OLx���i1�M*ˀzܗ�{� �m�eJ�!,O'��Z2N�m��:���ܢ*G�`��x]sҶ#fD\�����FI��Hw��]���I���?�7#ȂU�.�5w5ɮ�R?7�����0�:�3��np&9&�Vup���AFs���Uc;I}�!\��Uv���}��b���z:���9y�! R����ξ�����
N@)�0ߗDd;(A�Xr�[B�N�a+��{��?X����/��Jڽ՜v�ݶ�6�lҤg���O%���P
(�/V�� �j��>MT��c74bɤ^�~^�()y�I����Єe7a'x�U$u8���/����N�Ψ'n���h贑�51��;�^n4�8�ߖS�q�F;� Jx�����]�]��Y ��MG-WM���_�	K���V�gGg����>���W&��i�&
�əۣκ5�X�n��F>gla�⧲�0���x){���8��}>;|��9	i� 7?��kN���W����� ��A��P�Ej��p�Y�rҊ���J�p7�~V����8��o�?������� ����3#JF	;Sl6QA�i����C��fT0Y�w�I���+~��[��kB��4�1L��[�*��;/j�LAM0X�}>������.�tغu��tj���iZ���6��)���u�d���n�������?������
�|n4oZ��8H�/��h�!��}�I>����d��	�_�Y�3�rD�wc6�Z���K�ج���A�;��T�� GXKb4�p:I9��m��{#?{��X%��C��KM;���E�({vT6La�Y}�j�O��ѭT�в�`u ������J��ۃ�2f�1��D���/�M��R�1�Cb� @#�^$yH"�c�%߀��.Mt��B��l7 ��^���]]]�*��e�g^1:��	v"t���2��=M@f]�M�̟D_��w`tј������m�����uJw�"Bh����O;��ֽ.��w�3,�eJ�VKm�C2LCyӝO�L��U�{�/\"����K�	h����	�bxZ���LR���i�O�(=�|���V}��)�׾��[[��P�[����n���2�6Y�K��	�UL�}�W0$ڃR:���O�3Ij�(ΒRօJ���)��������H�I���n�S�(�g�K�p���2�\���oN��ya軚����8�'��p��%�K�EE�gO�[:*�׸�p��ⳇW�����F��t��!W�o�ڧ�"�˲"Cրo��o��B�J�d��;'K͒�__���h�v�+���d�����ލ�� '������V���m���I.^�˅	��8��B��s�f�G0�8�ռ�*ʮ ��꩐�Tҕ��c��6�s~���Jim���xY~��V�)�I��ƛ��+��h���Μ�;]��E���BAАQ��l"�U����,�C�)��'f�C{�KD�]�p#(^�����y�s=��=U��jon��lVe�u�iJ+$��d�U�#�;��O��
	?9�2��<�;�q>o	T�r�x&�
[��'-�x�p�0j�[�;3�Iw����6N?;��<m'*�xD�?$A�ʂ�8�f""0���ZI�;�� _ߢUcGk�"�#�+QE	��p�Xd|ĭ̧�!x3�f2��[��F����K��oa���K~�۷R�6	�Y�cj��<��L]��%���TS˶R�O��Wöbc�£�e�P�}�S���\��
��T���u� h���Ыk��.x�{���zZ	JTo�;�8��H�����P^EsT
'K�@�����
�t��B�%Fj�dC���ת
o����@XV+���z.�T��"!"�����B����F�.~�_��ac�a;��
�;%#	O6�L��=B
dX���o�
�ߡ�s���L�!.�A2�R�  �4
����:g�_�*[t���S*]��6�,�O9�3����5��ؖ#^��l��m��[�e��П��W�
=�68u�P�ݤ�_��
��M��p�"K�}q��fn�V}[�[�!q�e���*`g if��|T��/\w�G3�	��zC�Ulr������QH�$q�}r`���og�՚g�O3�=���+����ƻ��{�N�b��-p�g[r�:�􏃽����~Df,�!�>��K���9YR2��v�r�D3��'�
��K�gՂ?h?�r_��K&`t͡񟞉���y7��&.�>�t��u�4�ߛ�G�
���:�^M�pv��wڴ�Yz~ڇձ�M٪�!�RW�d�;�#��	^�z�ʈ����Q��t\�Wy�\OJ14��:5�\���SXT��� ݓ��g�v�V9�UkX,m�iM�\����(n��>E�I� a���I�i�_��,������(�
;.s�)�=5�A�I��(��wX�g�}4Y����Dp�4��{�jq(Q
̷ZJ�U�Zf�K��*�xC~p"�2��r�#�$!�J��zZY�.�^|h�}���z���Xa�I���E�Xg�t^4�R{��f�L�y�p�ᚚ�1ި|�O
�2��5�"�t�U�A�ޗ�@��u�R�PN�X�1�ZN���/�ܨ�x�����IQ�×��_�y6�EK���� /������ cuD�o���7դ�	���|2��V�C��f+H��
�:`�w��i��y�~wk���t@�4OE],�<����ͦ?s��b1-��
�J����A�������A2��-=��t�칙C�õ̍�:�
�Ba�;�W�CE�Ξr��{�`�&��,'��t�����[8�q�u�
-(�J�]��4
����ʹ5���ay��
hh�Y����.��4�j&���4��a����q�'(��5���s�X�G�jWB���~����cm۶�/��.6�a�_A5���+=d���>Ĺ_.�h����8tB�s��0�HJ��l��l[UH4�v.	��>]�(
k�9.� U�A:,A-���w�yʰ�҉��V�jVU�^���}�|wTH�Ә,Aq�0;,�ZD*��#{���l�H7��bRX�0C��d�uBѢ�5�d�=�V�\T=�Q3�7o�qA̐A���O��l�ܿ���!��{_uDG_���rk��ߘT�^���}W�o).8����|gWP�Ce�J����x�6N����(�~v�_�;�Ξ���S?���W#M�˿��^��S����mG�
θJ��Q50 �i�<�&+��;��V=�K�rU��
�e������#��,�t��F�jë��Γ�U��|N'uL�����x��&�)
�6wrroG�4
���L�R��	gn��Za�����#t+2�>if!ϥ�)Ǿ�>0$&��q�����qJY\���I�S(�ˤ7�^+�'����w�ٚ�ze�!�e��-���ݙ{��a��wτ� ��K"�Jd
��Ly"F��ջ�P�n�)�ж��w�-YU��6L�8"�!ѡ��|�F�j=c��Ƞ���E����R���z!�<�nU<�Qc������o+�-`(|ɍ ���O,�tcR҇�ӆ���/j�n�@<�Q�g�����4�6���W=Z�ڒ�9���4cK���&{���}�8#Z�X��WUU+�QG��Q�����3,��/�%�Eo�����އռ���d�7z}
#O�t{yD"3����K��d��� {Cu7��'�
C)n�0{�4�k���(|	u(5��u)"�|�V ��Wr���e��n�n���XW�O�{���Bu�WU���,2L!�(�K}���=��	�[�MP)�s2��l�6%�j
#\Jg1a^9Q�.���F�/
�
y|x��&�>z�|%%N��{�9��c׉S'I�#�ܳ&�QF��n�๕��!JƄe�e�o},��X�M0c�s9]��e08u�x���޾�B䦂��@h~T$�%
?��-&�=���Es��nϨ��f'$��Є`9��w����vȒ�ߖ���$sNy�7zԯ�3.ɉA�>��c���,v��A���?p-?�#�G�v˧�hm,�Qv��G�=KԾ	��n�k@p*�;r��Q���w�Z�*ړ�Ǥ��� �3ν�եwR�-�`Qz\�ӧ�v��c�<�s���*)���%m�gNܦIy�~#��+U`~�U����獫l'�-q�'��֣����h&ɚ,�B�L��<�g�MIM	٧����@nf��\��}��do�‡���[6[�B$��9-��R]Ղ��T�}�uA$�+�eҢ4�k���v'����^K����6
a;8d-x+���J_�u_2΢G��re=�?���(�����w��//�(�_`�5�w�/�/+:X}�Z�X��.ruȐQ����W&��eUs?�z�N��|jj_�Mw31���#qJ[u�WF�x�Ԏ�}�y}M�r�.)r�1+��)	�Qn�"|D�U)^8s6���c��#���A�;}�/�
��	���?��K��θĻ�G���Mg�i��9^#0��;؎�Jb��ꘙ��#�<���M�z}tum��k��p��aS����� 2�p.A^S1�_.wGao%7�,SUW��Օ
7�md�%E�=,�P���[Ұ�劚���l����K�=3�>h:pZ7ן�g~��#��;xD�t��O���|��tҺ}��&Y9����ƮpbuU[]���T���ι#��U�Fo~�y�ե��j��`a����~�.;&\UB�D����<��j���5y�уo�)]���,���+�]�*�D��89�ż���mS��T�I�9⺹���"����_KKgh��&�\^a=�X���(�u`��mgO,�Ӊ�h}����y�$�ے�$�E�[��b����\ڊ�xl~[����l:�鈼�,����g�\j��gY�	��'��&f)�GL|�ƭ*�Q��pr���~�;�Z��I]��
!<�aPB�I��b�CUxЏ��Eg��C�(�<g�d���РrM{LWҮGh7�9�W�Fɜ,sR��ߕzH7�zϙ�FrcHK����oS���Fa0��z���h�C���:+/����ҭ�[-W�� p���3v��\uq�GG+ԛDX)��'��&M�uƗ�Û~E��ވ�Wp���5J�pGՠ���0��_�ԍ���qW�Ę��
]5�x�����1�yu�&��8Hȏ'��;��@�<Q�v�8�����uV�<�ɦEY)+��tn��|�߲�K������3*����"���ޫ##���
�ЎN�i"MC�F�Z�uT
���7���y\=�ц�ёc�XY$*�^�IN�h�q��h�<��쇢��[�筆��%���UY��A�G�8�m^��s��u�¶��$6	y�7YVP�߾���tF�(j�:���ڸ�$j����{w%ph�B�L���\=@�"0���4)U�w�' �O�w4��#��N>q��٘���>��0S|�_Ae�g�<2�8�@�+�5�	3�gKp:���E�L�Bv�K����j�:��*&z����0�V >��G�X�CJ��I�O��Er����W����b�$�W+�^j�ɒ�����ϖ����6�H�X#18�ˌ5����ԋ���`�֩�wG�U�,�03	�������̵1��Q�&���g;!��]v�X��~0�a������	��\�M�����F4C&h� �V�Ӿӗ|���怙w9�}��9�/��H�Y����1��˚�W�(�u2igo�}9�~!V7�;�:H�	�xǗ�~㲿��vW�ز�j��
�w�$��kʪe���1Z^�W$S�+ļњ,�-�3��!�cm�h��9����% Q*;%�_���8�FV(����s�߷f�8d�����شgm5@@7V։��!)���^`��#m�܊����G�k�!��y�u訦���(+�q��:�­�D݉5/��b��w������b+�b��ᎁ���6�}�H�Л�m$��te�1-ě
���G]i�ܘ��$��Q:npy�s�ǩ��B��q8��H�r-;�-c�N�*�r�J]c����G�Y���ucyUk�u���DQ�)��:4^���K<|�XE�ޚ.Hx�r亞�j�Κơ���-�]��eU6���x�bk���_lo��Ⱟuv��oL�zA+�$^ҕ\w�%>�[�P��G<����2���<�U����w�����+=ܧT�2bwݠwx����
�ay�#G���t�s+�s������[�U�Y1��n,�,(�4��c$�U�S��9���B�%�Z�H�\R�׮��m�YZ�,]�KH�[�E�ÿ��/l;�f��
�$�6��![aB�r���d�Z���V�zoْ��n�H��K�VU�%����)G��B�$�E7\f�YֵT���
�Kg��ɷ;�7� w��Bh�)�k���4�����\�r<�zu��t�S�o�?(#�"�*G����<K?�'<i��T?����Zm
l��ױ�k�ưC��d�	@�P�J�����uU� 7"C*����l�e����A�I����̮BZ|G�~ۙ���Q����ec)XH��#�����k�����3��KV� =[����X�_��ߐ���W�Co����F�x�#)ȁt8�6�]��H��w3,ky��ѡx���,A�׷	e��#��/��t�su��#���8������;g̗��]�[�d`�o��A�l��g#� o�@�^��vI�C������k��r��k�Mp�Ԁ��K���mnJ�6���!�	{�zQIVN�r�rE�Z��p��W�w([y����
*
N�C�S��!!�أc�����-q���UwJ�=j,�������l�[^sM��u�;כΧ�:}�Ҝ�	�	qg������cNh����T�v�)W��d���]�]�*I����n����M�:�2�ұ�ux�v�>����F��n�D!�$S�x8��;����;�(���~
�Wou�\�Ht�*GĞv�:��[�L�r��-���y�G�m
k�-6K�=�9�D>�Gk����aD�l9�<j�U�r��7����j��*�Nl�����)8�j�2��b��S�-a��s���4d ,�`�8j0_FC*�6���*�[$_\ q';C2lD�I�=#��:�Vp-(_��Ha̹$�$=w�#mC*A�1J��P�%�s�d*�:��%	}���4�AR8������zø���=�?Eu,q-��أ����÷���,!�p��N��:��Ő5��V�I4����?>�*K2����J8Os������P"偙�bN�%�
�p�xc��N�&ay�{M�lƪ3#L�mN̕&�>��4w��ՙި���|3����}+�e�}����_���,�,A�L��u�[����ϲQJ5�'z���@Nԝ�Z̉�ED�@�(PVdl��\8N�&,��)I]�d��N���Y8+�ʞ�_�w���u⥊�8�#��+�1d�8s6����Ǭ}壯����Uy��fc����+��!)�Ȧ��1���[�N����}3ǮIG��u]��x~�^�ʔ�4
���qd���[>�,{�1#�^3��ID��=�q$�%�ɥ��:A*��Cg
R��@�B��H���@�!Tn���w�l��˭��a�]���ɬ���z5����{z���1�R&��l�\Wџ��g���EIّt)���8�R�Tp*YM�ڋ�FfR�8V�Y�bJir5Fč	N4e�gH%�<�ټ�
��n�j�c*v��<᧼ /���U��jao.lG��vA�vP���ؠ�Z�j����9�IdA��v�Ɖ<��jO��3��j�5�Kh�iMt|��en�*=-AB��Q����׍.|�"?��Ïs���\Z��%�g��t2^L�#;K�0>;���!���SSI��!!��H�>�S��|�B�ϵŵQN�,$�,J��,��y�a�>A���"T�S�M���K�����"�I쫈�+�;;�Ӽ�[���5��*^�1!��;m�--?wb^e��Ci�O{�*���N�C/���.M�s'������f+v�S�'�̘��
T�kO�H�L��T�pR��s�#2�Y��@�2��N�6^T��)u[�>4(n#�*w�²Jb����$Ȥ��F�TxM3,"&
�ܴy��Wm�����k!o� ��	��,˒�e����6�G�G\r]U2%��8�WH��
C����Qo娣�)���*�[zb�2�n����ʹ�.CL?��g��l�2�\��#�.W���Y`�WG��>r8��e1����j��B����
��U���q8�`{l_d<C�hj�h��|�v�o��L9����g���䇄�b�%�&��h� �x��L��){(fo���P�H���~l����8� -s�3�(!���Ckb���er�
A�E�H��Њm�q�ؠ̮�x���+9&V��HLa������jK##0c�e��[abh�@�/9�����Jy1�MK��:�5b�oN�K�T��hw���Q��	��)坁�(
�i�Ƕ&p9������F�d�I���S�z��Ԣ���uq�g�ݴ�VD�Z�&`�W�::�*�^�!�V��p}�����a���,?���8��晛�K��_���7�g�?�r�W.U�[���c�>��9)\�<����r�.-�^�
�BtR@�͓�f�8�w��<_I���a���Ɵ̢��(��C�U��/)�\R�~���?~ۨ
ÿ�dZ��ZەGƐ�����rg���Jp_�"}�Ie�g�����̒6-G�;����K�>�$n�����+��L�[��o�"�N�>��e��Y�f��C-��\Qz��%��se�g����@��%��� I���^؄������*�Ӭ����D��<�����!��0�O!
�w!����ޞ{����D�S����r.��~���B�z��+�B�mA�*�+y����(k����w�_�3d���V��y��4/ܺ��Y���hs�v�zJ�0�a�p67��X��6����	��y�n�o���}l��k�n�r7
yyh�D�bK��S�OR5p�8�.T�a[��Y�hKHCJ]c@�/�s-`ϼ���E��a�Gk�Yr�ʇ�K<�E�e��W�V�RP���t�G+$�д� ����R��b��͇P��TE[j҅�
���*���NU��Z��{�V<�����Q�����w�*�?�Ӄ7N�s�O��	j�$�0`۱���/�N�K�]ϫ�]
iZ?;:w���<����7҆�҇��ߦ�٨nV�wl�}D��A�%�yv���+�w$,��Xl>�/j�1�'$Y�F���\��(���AЃ�]x�i�Zk���$5��U܈�?Z��N�:5�Z��C�'Z�ܤ�}w���~HE���VN'�O:�R��|J%�ء��C.^��ڎ�`��g͐(3!��a
�[0ɘ»#��c]j��)��`��rsJ!�*j�c�f`��o�+�
���;mx���x�� �2<s�5��@�HT�}��^��P��:u{��P'����/���>=
}JKo���
a
��XN�-��K�;xL@@����a��,�����u]Ϻ��U,Y�;I�a�˯�%y��\	��#�2"�d���aE޵>P�~�?nŠv]wZ���Y׬���a)���3�3t2������T��۷MN�6=�?Cݹ�ސ�d�}1�y"9�gV��˚!Z1�qz&�W��w��-f�R��C|K�>���'�cwA?`6$,�|C�kٝ��0�->\�#�˽�����5K�Li�Tom��\[کNJXu�}ꕵۡ�x���[@4�u�	�g�����@���+�"��R.AS�T�+�8S���3r
P,qݕV^�f���b��ڝ]d|k�
xtQ�ä=�:�qC/Ѿ�K�6�9@�̦��8ۃ�)��6m�k�ϋ�z{�v����C��G���v�̠d���
lC�ȇ�`�h��r�����.�S�F�m�إ>2푈��n��\�y
���3�k��43b�?��s�Nj����T����%�a�)���2��}7
��� I���
}A6m�"o'�iLI��I5��y��?����|��Ue-�Ң�hb��=Ϫ۱_�*'�{��h�3r����y":�U@>�q��|J�!����׎���72ZΝ��	]�p%}��,r	�T���āe�u�1't�̖X�m�٩X$:Dl>�O������KX[�;���4E�h!�BA���j�Z�<|:f����^�O��h5��a� ����K�����u����/bz�t��w~�8i$��oo��t�^3Q?r��Lˊ�f��o��In�H���i�qUgg��)Ӈ�i�-a��ui��4,a{� n�Y$����H�kJc��J8@�t1A�y��8�RQ�)(�
�qr�<���'T��2QUE��T�����ԫ
���*D<!�⥘`��]�0^ߢ+=ǫ��I|	^�O�ax��'��D�TSR<=�O+_.��㨊����d��'��	tl�9���e5��,ƙOv'zz�{�S�]���x����j
D]�âKqo"
���M~���7��*5ׯ��S�p�E���B>WV-J(��YWZ~]�^��oP�6{
�[���=<ozQ%��g�fx��>���ʤ�Ɣڗ��>�����!���C�/�9���ky�y�r�L+>;��ʒ����[�/�	�f�n��>�O<�1�#r��y�w�70"���a�YM��0Ib�8H^-r�i�
a�޴B��7�N9�!��gI 2�iOB���*{Ȫ!�&�F�s��S�����mt�*V��ch|��ʢ�&E=��E�+��BJ�&Q"/q�d��"�8Yn�����$�:����W�|�8���a�%	�F������~�\����\� ���=��w��帙�"��i�4��}B��W3�߬���[o4Yf��"����31Doڔ��r�]C���pϼAyl��k�7S L��j��
�@�>��s�%���0�)u�A� �9��-^{#x�/�ަL[`�0/��(��?¨Y�)�؛a
�wI{�d�dC1������ڐ�G�d�j��<����R��0�*eYC�NsI(~.�D<��ouwϪ/۟EP�q�{��cۉX$6����i��E���<�-����o�mp�V�tX�b�K�ͻ���/�mjh��o��2,;W�́�x�I�gƭ،90s��Q�NO�� �HP�1�'�gK�,-���"�z2��ט�m���q
Z�(Ez�QNe�sD���=Ն;�,c�P�_"bpy�Ik<Ɖt�,_��B����-�q��� ��ܐ.�_����h�"{��g�G�j����y����;!X�;����C
H��*g�r-��;2I;���d�T��X��%\�fT����ǚRs��m��-�/,���;U��U�����v-{���=�nO	9���k�U�땐������(�ndz�Ii���P_�
�k��a��6d>*;��	ڻ�{�V���q��S���[�B�O�l]yW��MRZ�$.��%������qj"�̙��.��9*����H*�:�H��fc�Ep��R��o���Q#"h��tL��\�V�	���Of������}=Q]��L���H��|�<l�%��C�6h�%`t4�5{�)�D�$�C���W2M���F���D���p����VI4e@� ���G"�����S�]}��ۅ��M�b�F�)�Ktݸ�����Mq9%qc+���9����sf�
Ѷ����b�!�t�Oe�
�^7u|�P����^g-jъ(B�	q
7�~���?V\x]�oF�og&�w5O��o�,3�۪lLT���õ��Nn�U`z�\T����d��S���\��k��+](PX����x%2��_�垘�2g@�E����g��Hj��t�M��M�6�FN�
�c^���ٲ���c���-J�D�_�.+�LQl�O��d�`u����;��֦U�b�h�+�}O�]�����ډõ!�bh�	�����y2/�$}-4���-�����}��|�~\��/m�ڈϱ� ^�$2�͔�5#��\�P\�kX����txM�)ƕOl�)^�V9f+�ts�j���˗##��x���?g�B�P|�Cv
޶�q�?/�&�����yt�g"�g']�OIi�W�vd��/����n����)�0���P#X2?�Bdž��)�5�sb�b{t�c�zc�7�U�A�Ԓ1)!��(����S���,�4���H�C�$np?$�=��i[��~�׉�����YX���A#�_0�����j�%#J��8_���f.�����-Ί^�.��'
�du�����x,=r�#�e������*AZ��݅�[S*k����촀��HN�T��%�E����v�A���c�R�Y�6��d�̻�Yܲ��������G&�c�<��o���&�l�wu��?LHZ���n���M)D/�U�qֲ;���;�
�쏌���g������)��ݢ�������yw|^~d�l�&ɾ@��S
�lև�΍r�S�Z�.b~��
�~��ey�ye���f�i���S��ԑDT�����M���O%�,%d,�L�=�B��-��1�;,��{�}�,Ҝ�=��s��n��=ǺOI;�$���p���'i&k��7���G.�����t�0�r��
'��b\9��r���
lgjO��-r��l�c���7icm+�!�D�]���a1=Ѥ5q��l��l��գ�%���ґ�j�	G�dT
�v/��	��#����N޾�^�x���B�:��W�ڼɏ��E�vR4q�U=zjUdARK�]����hl!�W���uB��
m(c��'
He��t��o{R�}$oEb��?����ˬ�A�y�f���C/Ο�{�ֳu7z䒏���XG�v�����-W>���_~�kϣ��񏈔�v�rți�&!�*)��rI���b@�쪖%M5Нs�!N���=�3h�%`�U3����yV|���p��k,6��խ�]+{���EΗ\��^����yn۔.*Qz�MO��տ��D���'�T��S\�0�WU'5���:�#�h΅A%�EZ�ʜ5b�Ҝ�6M.�^q���Ӷ�X��(��1���]l���(4��A���Ң�ۋ���VXkv)^ۚ�n6�e�Q�~�q`�a4E������l�Z{!����e�ٹ�R��fm��wš|���N�wda{%Q�	c�y��g��R�����A9z�X�BN�|5�ّ��O��49_w��9������.���f�o��(�D��\EPl��~�P��ˢA�'��Ǐm���� |��)�]ˍ��1��<|`){��y?�J;|Ɠ�=���J7��M��MA���~we����H��b^;+��4���T��1纲ѳ�'ZNWR�f�Z�x��
R���}�����E�ڢu^���}�
����=ּ3�CA�lC\�'EΩ)�.�b.-��GB���؄��HA|ZE�y�˭�y�H��:��$��'�X��v�3&�y�VQJ/����I^����	�'4Z�Y[}>�ēn�����ѭ�ţv�To�w(�kxǂ� ��Կ�^gWzۼ�r�1k
}Pc�.f�ŝ��L@�^�-��7�pj�o����rͤ�DⶴppKt��r��U}�$gmJt�AP���v���h*ٲ�͛-���Z�v&�dH�j|4�P�9���?]]zw�� �w���L�����z� z�����Щ!�.+',z�b8����*߮$����jΆ,��7�bC���o�/�]�E�h+��#PN��:
��<�D�S_S4;��LG������V_�!G��8��ʜ%���gq]�wX���\z]�B�W���λ�z��TS�v��l�������V�+#��ᡜ��������L ��W����ϛ=�u5�f�]�Y:�5tgq8hĢ)����+��<5d��P�:9�?tun$�{`�Y���?!�&]ܳ��p�a���R�<�ұ�nk}�DpzawY��$�z�:�ߓ�Hz�����dY�Gj�a�r�>��q͸E@��G�4�����+������5|��"�E@������8�x�y>�XqI��3%�4&���Ueѣx�ޜ+�V[
W�?�$�U����7���H���2�ܘ�m
�&�{}�3�}�������`RU��=}ii*��"Q:��, !8��6�ܤP�'�T�s���rvw���MDKOx���inM�'\W��	mF���f�P��O�V�
	��\����`���%~�J�JvCm�8�kv9�E��g�fv�G١�w2�0�$�-�\��I�MD7�Oۺ��rU��:Qڃ�1<;�	-���:�z�^%�q��B�ZK�QD���{җ�x�oe%�*p�7|�-t<^�xأ�bT��*n��}�ۙo��˞�(��ﴲ����\���^(�Zn��3�f��Z�,2��:����"��n�@{��8,�-�^��wQ���R����E~����'>�@^U�>���W5��%3#X�5�"߶縵�mw���#,�,�C�8閅�W��O=Ļ��H�7��=ζ��:+�
ᓞ(N�<��n"];٬�D


+�M}�Y`��*L��vl �q����Zf���u&��-��A8�M���������6u
t2i{�5���k���
	�v@����Jgv;1ph�Pu�2[�p��C��Um��
�^H��n�|:�}���Jt�8��2E����l=�U-�ӭ}����0��s�	.>Q����x��T��a7$�m�}�;aÿ�mk.�4���7���Kt݋�B�{����Z=���+�I�����w��oN�.��R�"k�O5h��a��C�K�0O���P�$�/�{q�u[��_f�_".�w�y$�8)"oX�;3�4Z'��G&���o��5��gȬ	[�푂p�x�$~VlYy�?A:�O0O.?Iv�{��~l�z]%��x��դ�1�G2��
ͯ�4`1w����^��"B�~��<׎k�h�:���&�9D�ɗ��@	�I���4<�l�C"�`��6���7Ћ�콀{�=V�+��
`��T�U0딎��s*Oʏ�tj���y�2�Ϡ��|*(Tw�l�d��b�nQ/��7Z[�i}�hím^��W�L�m�?�,/okkX�Ft�����+�-��{V���X7�NFd���39�ȑ�V��{\��o��o���7*:�^�.f��=g���
;:uP[�u�+�Z��P��ϸ�u~({��������R���ʑг%�?�L��'m�O#��8�x
��$N>�|�ߖ^��y~r���׮ۙ|�,y-�n��Q�ߖB�N�"n���%;Ts��B֭f� =3�EXX�7�W
��s	��i*(*+"AC.��ڥ�+�:����WR^m�SQM��z+�.� �sS��!�F]��bZxL�}N��N�
�$��pgv��E��mA~D���Ph#�.�0k���㲧�o�n��?��֭l���/Ox��$]��L�`.\(�P�+:rj{�x}cO���#V ��̥)�:��f���(ý�Q�� �ǀ�*��[�յ����~�-`h��1):����ҙ���n@-��݁�'>c(�����>,����U0�.Q����/��sU*�k�ޑR1&&;{�=<�	Q���dÅR%����R�	�����F@"��z��EG1�M�}<*:Q�5	��zW���՟���D��Kj~�_������[#������Z���/��9XMF��ۇ{��7�ș���ک�����+�h����sDf!!/���y��{ܸ��=��g0<���)�8�4�T�Mʦzj�^K"��$L�+�܏�!^��\*��d%\��%��N��s���$���Z��:˼��&�,�t'U�}�~�#���
�\���ɝ��/!-�mY�V�B-Ei8ɷ9���2<��S~N	K۩�p�'�Â���*�֜�wcWF�c���K?�ZAJ�ƺ�p7Է��b �i����KL�`]��gɎp$l)�q�����ҍV�B�C�*c�K�irz!�3�ڇ���|0��F��
`�Z�B�Q^��z}"!թM���r"�[�R���M?����� �7���	�dLdH+X��Tp�����;��߻W����3��k>j��W]�[��т�QT~�79�E�<�r���jO>�3�Sѧ�B0�n+�\q�\Xh�;ed���I�x��6�>� ��XC���Vr�pN�F��K�|99QP�ba-�~
$�GnX��?:a.pf.!®C�f��߄Z$����
���ݞ\؉j����rv�b�1��F4
%B �B
k"�r�,$��$��\�7K��5�s��n_���+����v��� ��P$�ϩ3�/��x�>J��aw/��T�i�X�F�N��)@��ԅA����K$r>�G�nc	Q�R]
��]e\C w^�ʺ�𑞯W6ު}LB|��ұ���61�R
��pn=��b�>@k��D�R��ƌB�<d�D�OK���gzJ�2�mo��zMnE�}EKG�W�䷔H�C�	i���3��<I>�MQ����n�h��5�0�qb9jC_�~P�o��a��ʀ�1�>bש����i�v���63u_��;fj�/1'y�9�D8�a� ��n+.Z��fq��>�Z���T��Οά�s6����
���w�V�@)������w1����`�h�	�|Zw������U��i�a�{�]�"��5�X� �M��DXfl|6�b��3��Z=c�d�dž/��bWO�����g�L �Á^�~Їo�;Lx��0e�_�Z��,���Cõݷ%�"����({���>��9�6?���������C��`/���}�G�(?���Zi�	�6�m��	v{L��3�Z�[a��x���'�96!��1�2�'�p���ͥ�[�˔�)�)�L@ƙV~+r���2��ʑkk��9�Z��	0NG����2�5r�aQJ�#�+�Z�,�O���h�O
�:��X=`�O��0���ߋ��W<�N�;��{[�����e0�^�G���ݬ�-{:�&ܖ�V�O=t]����4ƏKF}1Q�WP�y�@O�~k��[�+��c��D�����@��k,�UB�#ű&�rC��e�,�/at[XOd�Ԛ{-�@�a�i` Q�/�
��B�X�I�HU�,}�Ȥ]�Oy�,�����tGd���.@�뾄���}�ۀ���9S�U�W�!O��ҕ��`h��?�/�=���
 �o�"���:8��A6VK�#��X�����Iq�q�K����y,Ѹ�:^PAu~���[��5���<�`d��l2u���v
6�5b��ǭ���K�v����o�����
�o��
Iѐ�8��0���M����	S��N����&Q�%�����x["��:�v�EbJړ�0��K"�`�G^���!�ܾ�3#G����WT�b�Aý'���4I��Io��5�K@�d)ƻ�H9eW�`��p�[��':��q�\}���4=�@D7�Z���w�Y5����06���Ә��В� �*)����z�G�S<.F9"��Ca�!z����[�~�P>��ݴc��ZB��b�4l’ٟ��s���ԳܻY���j(J��՜�:�qZo%9" ����]c,:�Zr�PA<�@p�/�"����
��g�]�[u�o�W�(�AǸ3aI�L/��)^j��_��s��;�_"����K�Y�		mĄ�"�oj��=1H��f�Τ;F ��
U\V>��{��9Yc6J�?x�̀W�0M-��7�ؙ���HrV�2
��I��<�����(�����
5uywjBt����A���֏o��\e3Y��L\�ʺkl#s�s���˯�G�b�/k���BZ0��r�D�h�D�q9�W���z�C�8 @���C�4������.7��U�{_�\���_}#!|z�(12�O������d�@�C?�x7�N.?y�jvGC��Ҍ��"�ʚY�lC�`���2�'%��b[iܫ6���hLF�
�HO]������
�M���"��U��1�P��
[���9���������X��
�|U��B���� S~z|.�4���TP��{.��b9�p�y�-�~^z��
�\��@J��X`n�bDWpk9_c,:�2�Ya��FμҦ׭b�1���DLc�a�u"ҝT�T�7+ov�z�Ӏƣ<�n�siDw١/�ţ�����3mW.�{2+ا���t�b��J���c�"��9����ʓ�����8�lɭ@��Ѥ̤%�>i�����O��������~��}$��f}e���]�Է��9��9y2�6WL���u�SMv����q��9t�)iG׉��0���6��G	-0I�#�u��1��}ŭ[c���z���6WŁ!-pi?K����8�'`�PCrr������p\���B;�k�i��~8�߯I��{'�D����ʪ�J�"am@!�B��S҂��� �?{���łk}�Mq�W���W�,/���R+O��C�[��Yw3|c����k=}Q����c;Y�4���������ed6n���گlc`��,�ɩߤ@7iM��=���Gs��4g��%�rG���p�H�C5p�#��S/ڝ*���	ϓ]6��}�N�x����������Er�P?Sr��b���O�{Q��p���h*L���b���YS�n�
/�BZ�;}�m~9a�4����-�h�[�����͎ϭ�J$�1��N�&�|'�c�䬥/ʺ��&᧥�,��/�94�
�g��)^D��/�P"�܈Edӽ&S#��pK���D��D��
�Ț���M�9B��4G��e@�f�~޻;a~�WOk
�CL�� T��|�;��v�)␳aH������z�=lyN��S^���xG��0�f��x!e�Ƹ.�9����\(
�(noAiO�@ut:)�S�P�U6�&*��B�v���pF~�[����@���]���J��a0��dT�x͊Z�С���q0.�W2v���1hd�-CZ�V�A@�G�ñ|g;��=E�4�'K<�@��|��4^�q	|�\���V���1p�%[�#S���#�F����#��-�C�I����̥�+\),�Wyy�:#��s�Q�����P^<���E�/�P����Ny����ߞ�?)��e��S��b:	jw�na����\�T�]n>,��Jz���F "穼�ƹ0-���h�����q�(B?���Z{)���6{�o���ݔ��2WC��tˋ��g�5�T8�����,+O�e0HU�ܺ�vRrA�D�
��6���ř��!��D)n:��nc	�a��=2�ݫ��ws9�O�Y�V@^��XI�{+���#��b�����W��y+@%
��0.�{�'~{d�z�r��/�ێl����L��*b��d�_����Ec�f����a�"�sص�-	��v�$�95�]�&,�̋�P��L�Y��$8�>���=��[��w�<*	C~�$\���Y�Y7��W$Y���^��q�F%E����A�W�Q�7�{����EH2�C�)C��u͔��.w9A�Yȓ�K������c������d
�Ị�<����w��TPN�wb���ԡ���"~H��6�6�_�0wnDKAAN���e9������iFVg�?����#���|�����ּ^2�|�Ś{�A&�X�|��[QhY�^���oG|���#W*��fe`-�ޣ�\�6�i��˺�.tu/^��y���kA�������/�˙��5��n�nמz�]1���Z[ϝomV95˅_�6�	e^�^��!M���M���H�чVx]m$��Տ�KJM�4F-��oQ�C����2����3q/�T�]�)�<6.jxo�/|CA^�[cB�2��|A	�{o�1��K{�2A`O��F8��;��' ��9ƀ@bR�]ʷ�q,V�o�<*�l�^�ܫ�QcT��_�5?$�U�0_9׊ f��)��C��ץ��)���י�P�["q,6��
���<sZ�mNv.
���.'��
Ԝ����}9��P̂�$
���h?���˃2=��+.�#G=wO��G>�#�a���cd$�\�ـ����ݻ���g�y�Z�g��v�b���Էaz8�{ț}Bh�A�{mD�����.��'*K��Oik;��D �#�����/h����;�@��±
!��+�ګ�-�c�kn.���v�$?:���ܗ���b�{��az�K���ޣd�GkyVֶ����Z��ͥ:��'Z�sg�.�O\/+�i�.��5j�>(��=��>��v
��w=7\�4���߈y�~)��qNKs�s~�9<��k
��{d����o�Þ;���Z荄��A�R�4�vríḾ�Ѳ�ʀ���&�_>�p<a\&�R�_q���o
@X"P]TU�0y��v�v�w��t�]�U՗�i��<C���i�x=c1v79�(f�
�M�k�ڄ:�'ڪ
�I���`|y�9D��5�n��U:�C+/>9U�F(#eI�|�K!����l0��36��n�LG�e*6Ne
/ˌ�Ԏ�Ūjj՚�w����e��7r|т���֔������讞��
�A�Z�S�Cr
֔B�I��nt���~�-�#Z�V����v��L��Br��"9ŗ5���9��8V��x�h�_d^�:�|xmW(��~��
�M�y�+�)#%ʂ��u�����~ޯ���щ�*���K��X����<���g��7|`����z��H0���ikY�=2�����n
_��u�X��GWVҹ����Y]/K<J�Tdn���Y���JM6@��rݍ��N�bj���D8�| ��'�+^�j��t}���΁�bFAGĊ���̃��/��c�D�;'f�{s�)y��'�	�K17���E��m�蘷Ҕ�k�<#���ꨏS�I��V�:�	�e�8Z�(t i��@>�8[���4XL��{��J.��.
5|E��^]sҝc�C~���L@�!=�I�uz�m�ʐ^��IU:���d���݌a?a2h/���i�y�;��nQ����o �(�����&�=X;-�?�vkC�)���fm9��ҟE��f^��-MזJ��=�4o,q�˒�i^�X\lX޳�ۓ����{-:�������V{��??�&��*_i��]�Ţ@����T~�9{��U�p��M��Xא�j���S雩W::��@V�Vپ��=-��}_e���y{�Ď�^�g�if�h�j�r�Ԯ���0(��w90���{�T�,OT�<~
����>ϷXVX���8��^tΪ���/�����y
�F&��$ZL����ȏ!D����Hn˃8�m�����L����:�d�J'�!c\?�<ƶ}���@}���������݁
"'�||�2�_}��W	3:����}6)X�.�邈�I���e�mś�[�:ޝ��r�m��L#hd ��c^o����;�6��a�!m����L�S���
>�n��N-���j'�9BP�B��"7�%"���J�<��Z���)�
}�B	�[S�����gԓd%���7
�O�M�mf�Z�dQ?��8k����
��8V��jW��{z�
�5�zՄ���ff2!�]�J�7�����3��Cƅ2P����,�Mw��ǹ���*)��5H�����% s�9ҏt�I�TH��'�~�ic��K�"�~X��=~KH�^�!O�q&�
�"�^���S9c*l`t��12�2�Q�d�@���Z1�N���[
:����H\��t܆���Ce�S�S�R|D��XECyd�hp�9@<(�+�����$̙4���;.9댋)5��d�e�s׷z$���U��f����{��<&�v�$���b�)K��W��T�����R�8Y�j���'��?K^GW��{�o%8���dw������J�g�M�z	3.��7S�[�^�n�?�ԣ��l���C9�Xd��C?��5{/�����{/���{� �2D{D
u�wo����̧���
�Cj�c���T�#Ț����y+L��@w1�����c�@�]��?�|���K��9��d�X�����e,r���755���뼼�ِ���\\5A���	�7�	�[��B�~����b��s�^w�E)`sOrя)eަlCZ�@Kg���ߝ��z��/mi�M)�|D�R�ѿ��=���/��|��pzW�PC<��x�u=(9�m8m؊�-LW��.n:�Z}w杠6�
w�$"��O5��t�5����Nց�;&̢� '|^0���R�.�T(|$p��Ȳ���!��M:�
toTĦK���MH'������O��|2�6N�5�k 1J-�1�YYs��ViU�8o��fYp�s�*�l	�/�Evs2J��/�?|��Ÿ�F�b-�VAcF��:���l�l��{类�.K�M(6MYW��,3��w���Ec©Q���<
���CT?�l�7UZ�����*��{E��ipCT�4�c)f�(1/�Z,�O��,��T�eE��C���kؖ��K�,�KH:�&��#H���D5mrH���?3�Q�F"���D�Љ���6��ŷP�>���	!�Uq�u�.��f�c�^�t��X�\ZZ�J��9V]�бو+|�f��q�,��ҏ��A�_/儘�(#� :�Γ��k�Q�n��~C�
����<�ϳM�f��ɥ�$<;���e����ڤ1%��i���EUg�q*;�R��1=X��hW`�VU�r7���.Y"�q��y�W�(�M��&��q��ψ��b�)�c�����Anj�I�W4y��tҝ�1���Q�܃��j�	6���W!h�d77�"N���˴��:�C�M\t��i1r��[?Ѓo�{�TEz�r�	�6��k?Z���Q[���7�/�����V�{.�=ծ�"�+����9=� K�Le,`S��w�9oW͡ɓ�l��
�_��G�׆aR�0��e����_ǁu���5��X2��k�>���[�:��k�ї/7:�YÒ���+W.1Ad�e;�f��4�����Y.����H:��^����θ`"<�H�W��G!�u�M�,�Z@LT7�cC����ގ���
��>�7%1��$E5��:D�kP����2r�@����5�����ݕ+�Z����f}��G�
7���R=�4GOb��T˷�
��ώ�#_�w�Taҳ�j���t��[����H�	�-ys���G�d�h�Au.Z�54N^�����R�ӲG�2Qё��\I����>�]zP����=�>';��r���?�8D�x[k5j�4I�T�U	�W�0�*����hڬ�Fg��LRg�X,���cA�!����*��}%��s�Y|�{�F����+���u]�$�_oI�r+sź�v8��s����R���?,%_��'N,�8+ ���kħ�F�gd/$[�5�'��Z�ǡ)���A�{P���
{�2d��fܥ�C(���QU�g1�r�\;�H��b��b�τ�����e+lI�"�"�Ӝ��
�.�?��>ik����V2Y�r.��6�ы�<�OF}K��lc�+$�#˧{ɘ
6S�9Ґu����d���`���*�ٕX���5�=��e���ou7~�4�-�x��f��&�|ۼc���;¼�,�Z�_ݥ�&k㯩���\&��cwF��c렮7��ؔ���WK��]�}Q�Y�:��HA=r/KuWT�7���Voi�������;�Ս��+�ݖO?e������m�+�9W���*�3���M��u=��-�ZR)����Q�v!E�Qa�(9�P+Bv�{@�E5�*q�]?�����vS���!W㐸�7g!�N���£Ir��WO���ԇdmb���W�B���M�!��*I��>t�3<Z��o��30X������ܧ�?�y��I=�5`ռ�4�j�M,��Cy�=�o݉�TpGX��Fo���~U�o���+ZmG��z-�V-���;z�i���ʁ@�5~c8{���n�PL�T�{���+�<�T4��B��-ܾ[�@A��d/y@e��A�*m�hɛ��03�N>�9� �3��D��˓���ʬ�������y�*{+�I�fD$5w����[E�G�e��L�e�ur�H����1�����T�~ΧtWyw�$vsj�f2(�d���F�g]kSz!~�']:4`�lyi1�Yʸ��7y��T��)IJ��u�� ����^��ճ�ķ�'^D��v������IwN{+$>�|��ؿ�z�Fd����a�����O��bDL�{̬��o���<5|�ʐ��-DI��ߚk���y�BoW�+�o���^��'^N?�� =8\|7rp0�~Iq��X��������3�
X���dyz��l���0�E�p)��K�d��BĔ,�D�K��Ξk���m���?^$�fRd9M"Q��%��ƨѣf�H��ç�]�9_R�U��Aq�}<����=�^��F-ڋ�V���욽Vq�*ĝ�/s�r��������u!`D����[I�w�=)	Ek�v���kȿgou�S�,`����*糣:�g<�N����Ͼ${֩ڗm��ߕ�˻:7m�L̝VP�	���Zo�x��\�b'C��L}zq!=Ew�
h8���t��[�F3Xc���Xru�.�$K|�3�b��8���r�ҋ���?Mzbި�A�ԧ?�k+Q��=�JZ;T�gr��]M{C�}BK��&0��F~~�Y��:�P]�\��
B���T�*&��,F�u�U�y���`H��n�
n��
F��|�K�ln��x��\.���H|���Im�,�i]�&�+C��9�DZ���7�+�g����Ds��>���������mb�|{�{q�Ouye�ڬ(+7��oʈz0'�#2�VQ���ǗM�E��}�
��LK�4��~�I�:�ֲnj5'J�e9wse>{hP��g���,��f!�k���土^��Ɔ��l|�w�u|Ñ߬�<e��͛�ԝ|wZ@O�iP��	�l�ns��S�֔���L��|���Br��%I�Р�u֡;E��R,���Mj7���l}�-[���`�p���ɮ�0ف.u��I"uCC6�L���N��-�J�b�;B�!� ��~)����4dn�dNj7s�'�E	o�9J�	n0���p�3�;����̝�07*]�R݇�Ɖ�C�� ܙ<?��4���?�{t�q����������b�X��ݰ���e��m�7��	�	w�v�C��l�W�j�m'�|[d��>���D�Q�x3Ck�p)���e���C>��Ԟ$�2f=����:H�h5ڢ��hF��L�,@��:�����E��~7��BV?Q#���3QA�.јڬ��xW�uj�T�a7`N�"�*�kKbY��JD�:
��,T����3sq�%̓!L�ooP�M�Z~8_BU�h�2|��H@�����m�Ej]<��m��	wFɇ�|�![��$��Q��#�z����T�֞N��6�		�讎�HNb!b'r�V���!R�n�&>w���w�������)�rR`�><\��|�a� 	��+��Q۹o���=b$Jh��ܒ"A丄�uu?�\��hG!�7�˽&K>��p50�E��*���~#>ĤR�>p8%�q��{��}�#��p����q�Ϳ�fOG[pVa��rN�v�
@`H�r�r��UHk�έ|z��g,t��Q����ͭ�Nb��)��Y�0G�}ws=�?1�]�Ο.:����X��ӻ$��V�ލځsw�/��@�@���{W,}v✥"Ըz����EIIK�U��ŏIe�P�`��fq�4ꒀ<Et�\|4:C(zm�;n	�ih07��1(�XX�b>�y]%]� �-"Փ9�s��zRi� 
٪Ӎ럤1�!�Sj�3
��^��-S`Y9����%̥ʒ�>�2�.�-}�pѷ��7��^�-R��2�U�[��KV�^����j��]�N牅�a��"}���-��|����� k�2a�^����!b)-D��*5�7ho�Ѡ��J���?\ζn<�o��Q���0^�06�%g�>)�f��U�*7���U��'��M$+���6_7	Ԥ��Y�|j���ip��UzǵA�������[���.`�{f�"[ꨃ����H17�0��u eeɲH�k.���a0<�bGQ�Ji�%��_�+!���}W�jۑu(Gkf��EsF�/�r�yy�#�X5�F��H�Ʈ5��Y�e��8<�1g휨�}fP�}�,-�^_�J��Ϸ&}$��6�vƸ����e���o�0��?�
{�d–�"�+�=����*��c�y��xy�Z%�=vS#C��9
p"8*�^Zx��7S�͊;���s���_"�̯i��#'�+*�q2I��yl%��E����^[Ɖ��7�8A�-�4�㋲�.��A�uF�EOZ�a�;R3G�F����~#�ž�T�]\{jg�W�X�~�<�pDm�E�ݭ���Q��G�C���=p�$sC�T"���Y�uG?��1zˠx��i�v�5:�h�`��亟#�*�����,����f�#>3e�Tu��u+(�l�:��*o�w����Q���ʑ��GwE��8���w����U��՛�n�K�-� �͎K�M��r�9�]�ay��+��2���p+ҹ����x��?�_Q{��(Ƕ;
�-!��1FR9n�f��!������?n��
 cD$=K��n,P�Yg��xq�ͩ�'C�� 
�}�G�%3Cg�Q�Ӝc$�n�%lcf�Uˌ�N�^�ޤ��M�-�'KV�Ϛ�9�y��e�z�bQ��ȵ��ƏxT�R�Q���5~
^��u9g��3�f �{��&#T��u�H�8%���2t�):�N#�s�??%��?05����љ�T*�R��g�)Sאy"҇SAܻ�錪�)q���R�K=W�H���=��.(<���>L}�,�7�汫�Ǝ��P��� s�+�fI��X\h���;s�b)�.V��Ħ,��|pU����YY�
��}�0ӐT�z��q�M�eRp���-NS\ �.�]���H�d�v�i�dK9}�dqz���K�5�nX e���5bF���6�ʍm�C��@;�?�{R,l�=���p�e��(��FM-��c�<�:G�Нn��喊����&R�aRV��z*/�ҴT�#�H6����v���#�I�(����V!QҠ��G���߄�+x�m2k3����zU�35հ����2o�~Gq��r�v �����*�
��[Ւ�C�[~:�m&��$�4ij��B8�4|���؍pH��r���+ƺQ)��؂�I�
�<Dmh��	l��H�7Iy�C��j�����AG�@���^�rUe5��ôc�G#[!C�"J�Tܻr7+LUʻ��|%�#N�M�6�t?&���B��D�o��;�<>��g�H�S��ba-ui-��l����/о�0�\M�}K�?�FdD��{=�{<ԍ���^Ѡ��;��|x�݋	��]94j���Fa��f�|�l\�Q�!�r5��3L�c6�?a�a���5�c��G|�-����ls^���8�%�6u�O��9�Q��ǟ��nXIx����4paܽf�ζ�K~�?+2yIb)��;�(��J���Ε�FH�����+�*1&"ɰ��ɍ���P�a�%'o�f?���cO�O�K����8�Vz��M��é�cg��֧�6Y_}�	�o��m��+zgT|�VQ?'����"�x��R�;gO^�L��8;��q���a��ߘl�Lb�L\�Ww�>k���~[gwk��:��>2}Z�B�{��W
,�w�&�S� k��a@�Ը�?�6>3����n=)?{�2���������H2,)q��H`��ޕ�3jkTĞB���?��Qm$%�)�����}bU�q_�c�qY	-����_�1Ӂ�)j�?���E=7>��-9�6�l���.�� s�x"�h��c���[��y��7�?�N
-������ T��K�����7�9�|�Ѱxz�j�gmh�I�n�H�o�g)�v���~����
C�;L�Jq�u��p��mW�<���˗=l+(�lCP���m-�[I�H�HK(��|LQk�g�ª?C�EBx��}QN�"��;��FNU��cE�\k5E�G
н�^Jv�<�+��Dk���r�K�C�N
�w¹*�{�����Ϛ�>��j��h��É�W~{�|�k�ÿ��$a�=�����g�1�iz���f҆M��m�� ���z`��0X�*��+G��n�� ?J�>�[St�d�>)�`zdM���+�9���,Z', į>cu}n��mĐ�N�=�z8$Rգ�3�c��1ME��K�Y�$����������
5�
�]Y<z�(�����:�Ob�N��A�E�5إ,��/��-���D�ʰ���sU�2
b�C=���(�F�sU�;ˏ(.��&��@÷?K�*ؕ�1���E<�
�|g�<�%u"
���kC�D%ʫ��p�zE�]�h?�*d�Pg�\�R
D�ć�U�$F��&�i�橇�Z>^=xܠ�KHUNy����xU���q��Y��d*�gg�mnL�%��r䰼!�@��Z"��["(�͘pf��k��"v���$�ρ9&L�I�Q����V�:���WIZ�k�7��TT�!�X�52Q���I��e(�Z���P��
b��}LL�ϰ�:�.'���T/�k�S-�>���l��T��5�}T�r��#�e�(��S�G��:�'Wm�P 8��oV�V����7S*��6⋫��-���7k�I�5P|-�w����S�X�����-g���`(�T��zI(j�aZ�c^�w.��8��g-�fV���]hl�3.yO�u�2&������8EAD|L|Z�3�ɡ���2�]�ۑ�5�KqO�[�شܵ,Մ>�k*���j��sέ�	*��Ѯ|\�A[
��T����O��=5�@'����z��=]Z(CGE��fM��8�G�W��P+q�NE��m�F06�8Z:b7���-�Ь��%�{��Ch����1��^t��m,R��\��H�T�Z#x�㮽���`��Y�'���}?����}��iou8�K��P1�����㥙夆C����������Z�"�8������@x�
µ-�``�Pj�}6Ll�R����U\�6[��CZ�����N�"��*Y���=3C�Ⱦ3���ڣ��x~���,ce�G��;�,5�R>U�w�6Լ�SAR7|aq��u��^�ځ;V�`ۼ<��V�����V�HɪE-�3��t9Ʌh��G�;��~V�n<r-˥������V��?�%�asR�1��>:����{�~۔x�9:�7N�+m1����f75dGr��z��ZFݬ(:��%�P�
9�G��a�xLI�rl2}���>M�n?��K�wE/��:T�@��Y_���a���^O�ME^3�	����O��\��������s

_�^��9$-�Q���5��y�'��m��s���с
�c�v�V �I����߇�!?�I���$7�ܡ�\ód[�#���mH��܁���F��&8�$*����p��w,意�hiḩt�-,6�i0��I�^�,`�Ś7��{~�5Q�R<?OȊc%S���(��D<�Cɓά����*��r���W/�<5�IT���,�y�P�	��4�M^�V˿�׏��e?1�M��BO�P��<qBT}��6Z	|.<��3p�G�2q�Zoݹ�p|UNbUqk��w~m��9`�L�E�E@Ka}��!,��/��p���7���b�� ]��G�{�����O1�R1��
;č��A��&���u³F��?�m	��]��1���ϛ�Gg����돾��IY���ƃ�#J��j�aZ��z"L(�Bz~Fq���i�eU7m��4/��u?��@��H���	D�B��L�����0}*�X"��J�Z���
F��b��N�����@FP'H�fX�DIVTM7L�v\��(N�,/ʪnڮ�i^�m?��~����(N�,/ʪnڮaBRic�0N�n�q^��~?��yd��=#?��j��ߴl�|�`�p���B�XB�+��J�Z���
F��b��N���q ���$
����")�Pit���py|�P$�Her�R��huz��d�Xmv����z@��H���	D�B�Y��`��.�/���L�P���No0�����p����?_ �%R�\�T�5Z�!A1� )�a9��d�Xmv���x}~�	e\H��u�Ӳ]n��)�&�q!=?�8Q��4ˋ�����q��uۏ�s���I���(Ɋ��iَ�A�I��EY�M��8�˺��yݟ� #(�$E3,��$+���e;��a'i�eU7m��/!��m)hrYzb��3�3�S�H`]A�Mx1A���>]���5�j��^F�i�T\?8E|ӕ��_�e��oH{U��Ġ��T�&L�-3�QW�n��Ԥu����M������*
ۥ����D��+�%�j;�b�ͮ�' Y�>
(؟�4��w�]|���/���JW#Ȥ�Zca7�����B'8:{�} ��N�$�8�o��Q|W���� �mOnL�)��Q^!W��CM8�}:N�hۑc&4ٝq�o���_��@�xމ�ɐ��5����
Q�+�t�*\��]�w	�C!�W��^"�yw��n������e�/��R�=�`���*��5b�J����z�MwZ���N	h��PQ�7޴���-�␜�E��g�����C�29��*X����YK�Uk�&D���\�4����]�aw�-�5�&_kD�@�;���I1f�ͫ�{�C�[ŏY}E��xd�S�9ɇ��@�~��$�`�K��P����K}���=�wv��ZR
?P��h{�%���Zdϙ�'�bi��ys-KhO�ü���.�� [4/%0y�]�|�(��珫D���Bˀ(�D��뺹�"�c��fw��8��Ng�P�m���zd�o*Ģj6h�n�i[�}�iY
L�ٱ�E�f�9��eF�8�d�ǣ��O�k�@�p����#B\���'Mo�=�)�
uĐE�B>:��6Qlo�����6��]�Z* �)�
˸k�ֿ����� �/�d?6�
Q���7D��x����'ey:��K��CaM�۽�T&�uf��T����x_�����W�D�){5�PJ7�A�����2��wW�q��o-C��g*�����te�
���j^"�~�4�{;fo-�W�?��*w�W�1�{���|���k�.Q�Z"�
X�-��J��/~������۵�dp��;�<W����4�M�S��/��+�En���ش�0�;��=��N���{�3����!�Q)9]=$}���޵���2����K��Pg(۫PY�)k�揚�f�,�}�eK��fh��#�*�3W��A+�����xv��fe��+�+�,��fTr�~j��)	�[Tn����*��4p��]���W1dz�%�f��5*y�����W	��	@Y�9~����Ë���Ʉ�T5�X�ٳi_�q# �;�����K(�56�9L�FQ�/�R���L��EE&Rz��O�EK��-�Q}Y�kv���
������qsOLc�G�2�h����n⪻� :`�֥��$����ǘ7UѬr���_J�Q!wJ������:6���m�纏h�%��b��4����	�T�M��_�3\j�z��Fs1g�.�c�b��G�d?2RY`o��;�����2u��%�{��^r�)`+�v��۳������7�Fs=���CuC�{�C.�=Z8kV�Ye���`�Ԯ_Y�ꓣUu@�i��R|:��^�y��%�����}.ӀT4O���.]qq�Z-v.w�e��i��������o���:��f/1I|F�b���D�X����CE��?{���U�-Nx���0�w���6�~U�~}.x�����c��f�!�6�x�>�}�WAD<i��3��״)�>�|Qķ��~������X���C�����}���<A�>�������6cT���;k���#7.{7c��8�T����_���4��X��;B*bm���#"""*��RJ)EDDDD����̛?9��7���t3Zk�g�с�hz�������t&ޯw.���Y�N�ˋվ�gH@E���!�6����~b�rݴ���z��]DDDDDDDfffffffVUUUUUUU�i��{z�����6�Nd�widgetkit/fonts/fontawesome-webfont.ttf000064400000503254152177723720014426 0ustar00
�PFFTMk�G���GDEF��p OS/2�2z@X`cmap
�:��gasp���hglyf���M�L�head��-�6hhea
�$hmtxEy��
�loca��\�maxp,8 name㗋�gh�post����k�uː�xY_<��3�2�3�2���	�	����	��'@i��3��3s�pyrs@ �� �pU�]�����y�n�����2��@������
��������z���Z@�5�5
���z���ZZ����@���������,_���@������s���@	��@��(������@�����@��@-
�M�M�-�
�M�M�����@�����@@�
�-����`��b����
���$����6�4�8�"�"""""���@�D@���,,@� ���������	m��)@�@	 	' D9>dY*	'						�	��	��T										�@	f�	%RE	 		$!k(D�'	��	�%��	�%	��	��0%�/�&��p@0 �����!"""`���>�N�^�n�~��������������.�>�N�^�n�~��������������>�N�^�n�~������������ �����!"""`���!�@�P�`�p�������������� �0�@�P�`�p��������������!�@�P�`�p�������������\�X�S�B�1����ݬ

	����������������������������������
�
	,,,,,,,,,,,,,��t�L�T$�l	x	�
T(��
d����l,����4d�pH�$d,t( � �!�"0# $,$�&D'�(�)T**�,,�-�.@.�/`/�00�1�2�3d444�5 5�5�6 6\6�7H7�88`8�9L9�:h:�;�<p=p><>�?h?�@H@�A0A�BXB�CdC�DLD�E�F�G0G�H�I�J8K�L�MdN,N�N�O�P`P�Q4Q�RRlS,S�T`U0W�X�Z[@[�\<\�]�^(^�_�`pb,b�dd�ePe�f�g`g�iLi�jDkk�l�m@n,oLp�q�r�sxtt�uD{`||�}}�~��������H��������l�@����������l�H� ���T��H�������`����@�����$�\�X��D�������T�X�����D�P�,���8���d�\����������������H���x��� �t���X���p��d��������x�t�������������@������Œ�\� ļ�ŸƔ�0���d��ʨˀ����͔�x��ϰЌ�,ш�҈�ӌ���8�,՜�`���l�Hش�`���Tڸ�۔�@���l��ބ�߬��l�p� ������������������������������4�����X���$�l���(����`����������	d

��
,�,��8��(�X���x|T�@��| �!�"x##l$$�'h(�*L,T.L1t1�2�303�4�5t6T7$89H::�;�<�<�?X@A�B�C�D�EHFHGpHHIxJ J�K�L�MN@P@Q�R�SDT ULV`V�WXX4X�ZZ�[d[�\|]�^�`�aHa�b�cXd�etfhg�h�i\jxn�p@s�vw�x�y�z�{h|�}}�\���l�t���4���������t���8�8���L���T�������������|�������|�������4�x�����L����������X�(� ������� ������@�����l���t����$����x�L�L��� �H������Ġ�T�(����ʈˠ��ϔ�l�d���P�Մ�x�p���ڬ�T�T���ވ�L�����<�H��$���l������4����������� �P�l����,���x���p�,�x�t��d����4���4,h�P	4
��
�4�<,,408$�8�T� |!h"�$L%0&H'�(�)�*0*�+�,�.$.�0�1�2@2�3�4t5$6�9 :�:�;;�<(<�=4?�@�A�C�D�F�H`H�I�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�p7!!!���@p�p �p�]���!2#!"&463!&54>3!2�+��@&&��&&@��+$(�($F#+���&4&&4&x+#��+".4>32".4>32467632DhgZghDDhg-iW�DhgZghDDhg-iW&@(8 ��2N++NdN+'�;2N++NdN+'�3
8���!  #"'#"$&6$ �������rL46$���܏���oo��o|W%r��������4L&V|o��oo����ܳ��%��=M%+".'&%&'3!26<.#!";2>767>7#!"&5463!2� %��3@m00m@3���% 
�
�@
���:"7..7":�6]�^B�@B^^B�B^ $΄+0110+��$�
(	

�t��1%%1��+�`��B^^B@B^^���"'.54632>32�4��
#L</��>�oP$$Po�>���Z$_d�C�+I@$$@I+��������"#"'%#"&547&547%62���V�?�?V��8��<��8y���
���b%	I�))�9I	����	+	%%#"'%#"&547&547%62q2�Z���Z2Izy���V)�?�?V��8��<��8)>~��>��[��
���
2���b%	I�))�9I	���%#!"&54>3 72 &6 }X��X}.GuL�l�LuG.�����>�m��mU��mE��Em�������>����/?O_o���54&+";2654&+";2654&+";264&#!"3!2654&+";2654&+";264&#!"3!2654&+";2654&+";2654&+";267#!"&5463!2�&�&&�&&�&&�&&�&&�&&�&&&�&�&&�&�&�&&�&��&�&&&�&�&&�&&�&&�&&�&&�&�^B��B^^B@B^@�&&�&&��&&�&&��&&�&&�&&�&&��&&�&&���&&�&&&&�&&���&&�&&��&&�&&��&&�&&���B^^B@B^^��/?#!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2L4�4LL44LL4�4LL44L�L4�4LL44LL4�4LL44L��4LL4�4LL��4LL4�4LL���4LL4�4LL��4LL4�4LL	�/?O_o�#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!28(��(88(@(88(��(88(@(8�8(��(88(@(8��8(��(88(@(8�8(��(88(@(8�8(��(88(@(8��8(��(88(@(8�8(��(88(@(88(��(88(@(8 �(88(�(88�(88(�(88��(88(�(88�(88(�(88��(88(�(88��(88(�(88�(88(�(88��(88(�(88�(88(�(88�/?O_#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!28(��(88(@(88(��(88(@(88(�@(88(�(8�8(��(88(@(88(�@(88(�(88(�@(88(�(8 �(88(�(88�(88(�(88��(88(�(88�(88(�(88��(88(�(88�(88(�(88y��"/&4?62	62��,�P����P&�P��P�,��jP�����n���#$"'	"/&47	&4?62	62	�P���P�&���P&&P���&�P�&���P&&P���&�P������#+D++"&=#"&=46;546;232  #"'#"$&6$ 
�
@
�

�
@
�
�������rK56$���܏���oo��o|W�@
�

�
@
�

��r��������jK&V|o��oo����ܳ�����0#!"&=463!2  #"'#"$&6$ 
��

@
�������rK56$���܏���oo��o|W�@

@
�r��������jK&V|o��oo����ܳ����)5 $&54762>54&'.7>"&5462z�����z��+i *bkQ��н�Qkb* j*����LhLLhL�����zz���Bm +*i J�yh��QQ��hy�J i*+ m��J��4LL4�4LL���/?O%+"&=46;2%+"&546;2%+"&546;2+"&546;2+"&546;2��������������`��r��@�@r�@��@����n4&"2#"/+"&/&'#"'&'&547>7&/.=46?67&'&547>3267676;27632�Ԗ����#H
	��,/
�1)�
~'H�
�(C
	�

�,/
�1)�	
�$H�
Ԗ�Ԗm�6%2X
%�	l�2
�k	r6

[21
�..9Q

$�
k�2
�k	
w3[20����/;Cg+"&546;2+"&546;2+"&546;2!3!2>!'&'!+#!"&5#"&=463!7>3!2!2@@@@@@���@�`�0
��
o`^B��B^`5FN(@(NF5 ��@��@��@���L%%Ju		�@�LSyuS�@�%44%�f5#!!!"&5465	7#"'	'&/&6762546;2�&�����&??�>

�L�L
>
� X ���
 � &���&��&AJ	A��	J
W���h��##!"&5463!2!&'&!"&5!�(8(��(88(�(`�x
��c�`(8��`(��(88(@(8(D��9�8(����� ,#!"&=46;46;2.  6 $$ ����@��������(�r���^����a�a�@@`��(��������_�^����a�a��2NC5.+";26#!26'.#!"3!"547>3!";26/.#!2W
�
��.�@

��

�@.�$S

�

S$�@

���9I


�
I6>
��
��>�%=$4&"2$4&"2#!"&5463!2?!2"'&763!463!2!2&4&&4&&4&&4�8(�@(88(ч:�:��(8���@6�@*&&*�4&&4&&4&&4& ��(88(@(8�88�8)�@�)'�&&�@���$0"'&76;46;232  >& $$ `
������������(���r���^����a�a`��		@`��2�������(���^����a�a�����$0++"&5#"&54762  >& $$ ^���
?@�����(���r���^����a�a���`?		����������(���^����a�a��
#!.'!!!%#!"&547>3!2�<�<�<_@`&��&�
5@5
�@����&&�>=(""��=���'#"'&5476.  6 $$ � ��  ! ��������(�r���^����a�a�J��	%�%���(��������_�^����a�a�����3#!"'&?&#"3267672#"$&6$3276&�@*���h��QQ��hw�I
�	m�ʬ����zz���k�)'�@&('��Q��н�Qh_
	�
��z�8�zoe����$G!"$'"&5463!23267676;2#!"&4?&#"+"&=!2762�@�h���k�4&&�&�G�a��F*�
&�@&��Ɇ�F*�
A��k�4&���nf�&�&&4�BH�rd�@&&4���rd
Moe�&�/?O_o+"&=46;25+"&=46;25+"&=46;2#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!26#!"&5463!2�
@

@

@

@

@

@
�
�@

�

�@

�

�@

�
�
�@

�
�^B�@B^^B�B^`@

@
�@

@
�@

@
��@

@
�@

@
�@

@
�3@

��
M��B^^B@B^^��!54&"#!"&546;54 32@�Ԗ@8(�@(88( p (8�j��j��(88(@(8������8@���7+"&5&5462#".#"#"&5476763232>32@@
@
@KjK�ך=}\�I���&:�k�~&26]S
&H&�

�&H5KKu�t,4,�	&� x:;*4*&��K#+"&546;227654$ >3546;2+"&="&/&546$ �<��X@@Gv"D�����װD"vG@@X��<��4L4����1!Sk @ G<_b������b_<G �� kS!1����zz�� �"'!"&5463!62&4����&&M4&���&M&�&M& ��-"'!"&5463!62#"&54>4.54632&4����&&M4&�UF
&""""&
F���&M&�&M&���%/B/%���G-Ik"'!"&5463!62#"&54>4.54632#"&54767>4&'&'&54632#"&547>7676'&'.'&54632&4����&&M4&�UF
&""""&
FU��
&'8JSSJ8'&

����

&'.${��{$.'&

����&M&�&M&���%/B/%7���;&'6���6'&;��4�[&$
[2[
$&[��#/37#5#5!#5!!!!!!!#5!#5!5##!35!!!����������������������������������������������������������������������������#'+/37;?3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3????  ^��>>~??�??�??~??~??^??�^^?  ^??������������������������������������4&"2#"'.5463!2�KjKKjv%�'45%�5&5L4�5�&�%jKKjK�@5%�%%�%�5�4L5&�6'��k�54&"2#"'.5463!2#"&'654'.#32�KjKKjv%�'45%�5&5L4�5�&�%�%�'4$.�%%�5&�5�5�&�%jKKjK�@5%�%%�%�5�4L5&�6'45%�%�%54'�&55&�6'
��y�Tdt#!"&'&74676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'3!26?6&#!"3!26?6&#!"g(��sA�eM�,*$/
!'&
�JP��$G]��
x�6,&��`
��
h`
��
"9H�v@WkNC<.
&k&
("$p"	.
#u&#	%!'	pJ�vwEF�#

@

��

@

���2#"'	#"'.546763�!''!0#�G�G$/!''!�	
8"��"8
 ��X!	
8"	"8
	����<)!!#"&=!4&"27+#!"&=#"&546;463!232������(8���&4&&4�
�8(�@(8�
qO@8(�(`�(@Oq��8(��&4&&4&@�`
�(88(�
�Oq (8(�`(�q���!)2"&42#!"&546;7>3!2  I��j��j��j��j�3e55e3�gr������`��I�j��j��j�j��1GG1���r��������P2327&7>7;"&#"4?2>54.'%3"&#"#ժ!�9&W��B03&�K5�!�)V�?�@L��'�	
>R�>e;&L:�:%P�>��vO
'h�� N��_"�:-&+#
��:��	'	����+a%3 4'.#"32>54.#"7>7><5'./6$3232#"&#"+JBx)EB_I:I*CRzb3:dtB2P���$$5.3b�ZF�|\8!-T>5��Fu��\,�,j�n OrB,<!
5�4wJ]�?tTFi;
2�3j.�p^%/2�+
	S:T}K4W9: #ƕd�fE���:7>7676'5.'732>7"#"&#&#"OA
zj=N!�}:0e��%	y�
+t�D3�~U#B4#
g		'2
%/!:
���T	bRU,7����}%2"/&6;#"&?62+326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"&'�!~:~!PP!~:~!P��6�,�,$�$%*'
c2N 	
(�$"L��A2�3Yl�!x!*�%��%%��%��
p�P,T	NE	Q7^���oH!+(
3	 *Ue�eu
wg��a�32632$?23&'.5&'&#"&"5$#"#&=>7>4&54&54>.'&#"&'2#".465!#".'&47>32!4&4>Q6�,�,Faw!*'
=~Pl*	
(�$"L��A2�3Yl	�)�!*<7@@7<
�
<7@@7<
 p�P,T	MF
Q7�47ƢHoH!+(
3	 t���JHQ6wh��',686,'$##$',686,'$##$�/?%#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2&��&&�&��&�&&&&�&&&��&��&&�&��&&�&&f�&&�&&f�&&�&&f�&&�&&�/?%#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2&��&&�&��&��&&�&&��&&�&��&��&&�&��&&�&&f�&&�&&f�&&�&&f�&&�&&�/?%#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2&��&&�&&�&&&&�&&&&��&&�&��&&�&&f�&&�&&f�&&�&&f�&&�&&�/?%#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2&��&&�&&��&&�&&��&&�&&��&&�&��&&�&&f�&&�&&f�&&�&&f�&&�&&�/?O_o%+"&=46;2+"&=46;2+"&=46;2#!"&=463!2+"&=46;2#!"&=463!2#!"&=463!2#!"&=463!2
�

�

�

�

�

�

��

@
�
�

�

��

@

��

@

��

@
�

�
s�

�
s�

�
��

�
s�

�
��

�
s�

�
s�

�
�/?O#"'&47632#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2�
	��		 	
�
�@

�

��

@

��

@

�@

�
�
	 		 	��

�
s�

�
s�

�
s�

�
�/?O#"&54632	#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2`	��	

	 �
�@

�

��

@

��

@

�@

�
�	��	
@
	��	�

�
s�

�
s�

�
s�

�
#"'#!"&5463!2632'
�m�w�@w��w�w��
'���*��w��w�w��w������."&462!5	!"3!2654&#!"&5463!2�p�pp�p��@���

@
�^B��B^^B@B^�pp�p���@�@� 
�@

�
 �@B^^B�B^^���k%!7'34#"3276'	!7632k[�[�v
��
6����`�%��`�$65&�%[�[k����
�`����5%���&&�'���4&"2"&'&54 �Ԗ���!��?H?��!,�,Ԗ�ԖmF��!&&!Fm�,�����%" $$ ���������^����a�a`@������^����a�a���-4'.'&"26% 547>7>2"KjK��X��QqYn	243nYqQ�$!+!77!+!$5KK���,ԑ�	���]""]ً�	��9>H7'3&7#!"&5463!2'&#!"3!26=4?6	!762xt�t` �� ^Q�w��w��w@?61��B^^B@B^	@(` �`��\\��\P�`t�t8`� �� ^�Ͼw��w@w�1^B��B^^B~
	@��` \ \�P�+Z#!"&5463!12+"3!26=47676#"'&=# #"'.54>;547632��w��w��w�
M8
pB^^B@B^�
'���sw-

9*##;No��j�'
�#��w��w@w�
"^B��B^^B�

	��*�����
"g`�81T`PSA:'�*��4�/D#!"&5463!2#"'&#!"3!26=4?632"'&4?62	62��w��w��w@?61

��B^^B@B^	@

��B�RnB�Bn^��w��w@w�1
^B��B^^B�
	@
���Bn���nB�C"&=!32"'&46;!"'&4762!#"&4762+!5462�4&���&�4�&���&4�4&��&4&��&4�4�&���&4�4&��&4&��&4�4&���&����6'&'+"&546;267��:	&�&&�&	s�@�	
�Z&&�&&�Z
	���+6'&''&'+"&546;267667��:	�:	&�&&�&	�	s�@�	
�:�	
�Z&&�&&�Z
	��:
	z����6'&''&47667S�:	�:�	s�@�	
�:�4��:
	�|�	&546h��!!0a�
�
�
$���#!"&5463!2#!"&5463!2&�&&&��&�&&&@��&&�&&��&&�&&���#!"&5463!2&��&&�&@��&&�&&���&54646&5-�	��:	s��:	
��:4�:�
	���+&5464646;2+"&5&5-�	�	&�&&�&	�:	s��:	
��:	
�&&��&&�
	�:�
	���&54646;2+"&5-�	&�&&�&	s��:	
�&&��&&�
	62#!"&!"&5463!2�4��@��&&�&&-��:��&&&�&�����	"'&4762����4��4����4��4��4Z��f�	"/&47	&4?62S�4����4����44��4���#/54&#!4&+"!"3!;265!26 $$ �&�&�&�&&&�&&@���^����a�a@�&&&�&�&�&&&+�^����a�a�����54&#!"3!26 $$ �&�&&&@���^����a�a@�&&�&&+�^����a�a�����+74/7654/&#"'&#"32?32?6 $$ }��Z��Z��Z��Z����^����a�a���Z��Z��Z��Z�^����a�a�����#4/&"'&"327> $$ [4�h�4[j����^����a�a"Z�i�Z��J�^����a�a�����:F%54&+";264.#"32767632;265467>$ $$ ���o�W��	5!"40K(0?i�+! ":����^����a�a����X�R�dD4!&.uC$=1/J=�^����a�a�����.:%54&+4&#!";#"3!2654&+";26 $$ `��``��������^����a�a�����������^����a�a�����/_#"&=46;.'+"&=32+546;2>++"&=.'#"&=46;>7546;232�m&&m �l&�&l� m&&m �l&�&l�s&�%�&�&��%�&&�%�&�&��%�&&�&l� m&&m �l&�&l� m&&m �,�&��%�&&�%�&�&��%�&&�%�&���#/;"/"/&4?'&4?627626.  6 $$ I�

��

�

��

�

��

�

��
͒������(�r���^����a�aɒ

��

�

��

�

��

�

��
(��������_�^����a�a����� ,	"'&4?6262.  6 $$ ��Z4��f4�4fz�������(�r���^����a�a�Z&4f�f4�(��������_�^����a�a�����	"4'32>&#" $&6$  W���oɒV�󇥔�� z�����zz�8�����YW�˼�[����?����zz�:�zz�@�5K #!#"'&547632!2A4�@%&&K%54'�u%%�&54&K&&���4A��5K��$l$L%%�%54'�&&J&j&��K�5�K #"/&47!"&=463!&4?632�%�u'43'K&&%�@4AA4���&&K&45&�%@6%�u%%K&j&%K5�5K&$l$K&&�u#5��K@!#"'+"&5"/&547632K%K&56$��K5�5K��$l$K&&�#76%�%53'K&&%�@4AA4���&&K&45&�%%�u'5��K�"#"'&54?63246;2632K%�u'45%�u&&J'45%&L4�4L&%54'K%�5%�t%%�$65&K%%���4LL4�@&%%K'���,"&5#"#"'.'547!3462�4&�b��qb>#5���&4�4�&6Uu�e7D#		"�dž�&����/#!"&546262"/"/&47'&463!2�
���&�@&&4�L

r&4���

r

L�&�&�
���4&&�&�L

rI�@&���

r

L�4&&
���s/"/"/&47'&463!2#!"&546262&4���

r

L�&�&�
���&�@&&4�L

r@�@&���

r

L�4&&�
���4&&�&�L

r��##!+"&5!"&=463!46;2!2�8(�`8(�(8�`(88(�8(�(8�(8 �(8�`(88(�8(�(8�(88(�`8��#!"&=463!2�8(�@(88(�(8 �(88(�(88z���5'%+"&5&/&67-.?>46;2%6�.@g.��L4�4L��.g@.
��.@g.
L4�4L
.g@.���g.n.���4LL43�.n.g��g.n.�34LL4�͙.n.g����-  $54&+";264'&+";26/�a����^�����
�

�


�

�����^����a�a��
�
fm��
@
J%55!;263'&#"$4&#"32+#!"&5#"&5463!"&46327632#!2���$�$�8�~+(88�8(+}�(�`8(��(8`�]��]k=��=k]��]��8���,8e�8P88P8�����`(88(�@���M��M����N4&#"327>76$32#"'.#"#"&'.54>54&'&54>7>7>32&����z&^��&.������/+>+)>J>	W��m7����'
'"''? &4&c��&^|h_b��ml/J@L@#*
#M6:D
35sҟw$	'%
'	\�t��3#!"&=463!2'.54>54''�
��

@
�1O``O1CZ��Z71O``O1BZ��Z7�@

@
N�]SHH[3`�)Tt��bN�]SHH[3^�)Tt���!1&' 547 $4&#"2654632 '&476 ���=������=嘅�����}�(zVl��'��'���ٌ@�uhy����yhu����9(�}Vz��D#���#D#�������	=CU%7.5474&#"2654632%#"'&547.'&476!27632#76$7&'7+NWb=嘧�}�(zV�j�\i1
z,��X��
Y[6
$!%���'F��u�J�iys�?_�9ɍ?�kyhu�n(�}Vz����YF
KA؉L�a
�0��2�-�F"@Q���sp@�_���!3%54&+";264'&+";26#!"&'&7>2
�

�


�
�
#%;"�";%#<F<������7


���??""??�$$ll2#"'&'	+&/&'&?632	&'&?67>`,@L�����5
`		��
`	�����L�`4�L��H`
����`	��
a	5�
��L@��#37;?Os!!!!%!!!!%!!!!!!!!%!!4&+";26!!%!!!!74&+";26%#!"&546;546;2!546;232� ��`@���� ��`@���� ���@����@�� ��@����
@

@
� ��@��� �� 
@

@
�L4��4LL4�^B@B^�^B@B^�4L� �� @@��@@ � � � @@  

��
��@@ �� � 

��
M�4LL44L`B^^B``B^^B`L���7q.+"&=46;2#"&=".'673!54632#"&=!"+"&=46;2>767>3!54632�<M33K,��	��	
 j8Z4L2B4:;M33K,?		��	
�0N<* .)C=W]xD��0N<* .)C=W]xD?\�-7H)��	��	
�".=']�-7H)�
��w	��	
�<?.>mBZxPV3!�<?.>mBZxPV3!�
���&#"'&'5&6&>7>7&54>$32�d�FK��1A
0)����L���.���٫�C58.H(Y���e����#3C $=463!22>=463!2#!"&5463!2#!"&5463!2���H���&�&/<R.*.R</&�&�&��&&�&&��&&�&������Bɀ&&�4L&&L4�&&f��&&�&&��&&�&&Z� %"'	"/&4762��4���4��4�ͥ���5��5Z����	"'&4?62	62��4��44���5����5��%K%#!".<=#"&54762+!2"'&546;!"/&5463!232
�@�&@<@&�@	����:��&���	�
��& 

��&���&���
����&��	

��`&���:$"&462"&462!2#!"&54>7#"&463!2!2�LhLLh�LhLLh�!��
�&&�&��&&�&4hLLhLLhLLhL��%z<
0&4&&)17&4&
&&��#!"&5463!2!2��\�@\��\@\��\���@\��\�\��\ �W�*#!"&547>3!2!"4&5463!2!2W��+�B��"5P+�B@"5����^�=���\@\� \�H#�t3G#�3G:�_H�t�\��\ �@��+32"'&46;#"&4762�&��&�4�&��&4�4&�&4�4&&4�@�"&=!"'&4762!5462�4&�&4�4&&4�4�&��&4&��&����
!!!3!!��������������������������0@67&#".'&'#"'#"'32>54'6#!"&5463!28ADAE=\W{��O[/5dI
kDt���pČe1?*�w�@w��w�w��	(M&
B{Wta28r=Ku?RZ^Gw��T	-�@w��w�w�����$2+37#546375&#"#3!"&5463�w��w���/Dz?s�����w��w��w�@w�S�88�	�����w�w����#'.>4&#"26546326"&462!5!&  !5!!=!!%#!"&5463!2�B^8(�Ԗ���������>��������@�|�K5�5KK55K�^B(8Ԗ�Ԗ�€>�������v����5KK55KK�H��G4&"&#"2654'32#".'#"'#"&54$327.54632@p�p)*Ppp�p)*P�b	'"+`�N*(�a���;2��̓c`." b
PTY9��ppP*)p�ppP*)�b ".`�(*N��ͣ�2�ͣ����`+"'	b
MRZB�����4&"24&"264&"26#"/+"&/&'#"'&547>7&/.=46?67&'&547>3267676;27632#"&'"'#"'&547&'&=4767&547>32626?2#"&'"'#"'&547&'&=4767&547>32626?2��Ԗ���LhLKjKLhLKjK��	�"8w
s%(�")v

�
>�
	�"8x
s"+�")v
�<�
��3zLLz3��
3>8L3)x3
��3zLLz3��
3>8L3)x3
�Ԗ�Ԗ�4LL45KK54LL45KK���
#)0C	wZl/
�
Y�	
N,&�
#)0C	vZl.
�
Y�L0"��qG^^Gq�q$ ]G)Fq�qG^^Gq�q$ ]G)Fq��%O#"'#"&'&4>7>7.546$ '&'&'# '32$7>54'�����VZ|�$2$
|��E~E<�|
$2$�|ZV���:�(t}�������X(	
&%(H�w�쉉��x�H(%&	(X�ZT\�MKG���<m$4&"24&#!4654&#+32;254'>4'654&'>7+"&'&#!"&5463!6767>763232&4&&4�N2��`@`%)7&,$)'  
%/0Ӄy�#5 +�1	&<��$]`�{t��5KK5$e:1&+'3T�F0�h��4&&4&�3M:�;b^v�+D2 5#$��I�IJ 2E=\$YJ!$MCeM��-+(K5�5K�K5y�*%A�u]c���>q4&"24&'>54'654&'654&+"+322654&5!267+#"'.'&'&'!"&5463!27>;2&4&&4�+ 5#bW���0/%
  ')$,&7)%`@``2N��h�0##�T3'"(0;e$��5KK5 t��ip��<&	1&4&&4&�#\=E2&%IURI��$#5 2D+�v^b;�:M2g�c]vDEA%!bSV2M�K5�5K(,,��MeCM$!I��@�#"&547&547%6@�?V��8������b%	I�)���94.""'."	67"'.54632>32�+C`\hxeH>Hexh\`C+�ED���4��
#L</��>�oP$$Po�>��Q|I.3MCCM3.I|Q����/����Z$_d�C�+I@$$@I+� (@%#!"&5463!2#!"3!:"&5!"&5463!462�
��w��w@

��B^^B 
���4&�@&&�&4 ` 
�w�w�
 
^B�@B^24��& &�& &�����%573#7.";2634&#"35#347>32#!"&5463!2���FtIG9;HI�x�I��<,tԩw�@w��w�w�z��4DD43EE�����ueB���&#1�s�@w��w�w�����.4&"26#!+"'!"&5463"&463!2#2��&�S3L�l&�c4LL4�4LL4c����@��&��&{�LhLLhL��'?#!"&5463!2#!"3!26546;2"/"/&47'&463!2��w��w��w��@B^^B@B^@�&4��t

r

��&&`��w��w@w�@^B��B^^B@R�&��t

r

��4&&@"&5!"&5463!462	#!"&54&>3!2654&#!*.54&>3!2���4&�@&&�&4 s�w��

@B^^B��

@w��4��& &�& &��3�@w�
 
^B�B^ 
�����
I&5!%5!>732#!"&=4632654&'&'.=463!5463!2!2�J���J���S��q*5&=CKu��uKC=&5*q͍S8( ^B@B^ (8���`N��`Ѣ�΀G�tO6)"M36J[E@@E[J63M")6Ot�G�(8`B^^B`8	���',2��6'&'&76'6'&6&'&6'&4#"7&64 654'.'&'.63226767.547&7662>76#!"&5463!2		/[		.
=���X��Ě4,+"*+, 1JH'5G:�:#L5+@=&#���w�@w��w�w�P.1GE�,��ԧ��44+	;/5cFO:>JJ>:O9W5$@(b4��@w��w�w������'?$4&"2$4&"2#!"&5463!3!267!2#!#!"&5!"'&762&4&&4&&4&&4�8(�@(88(�c==c�(8��*�&�&�*�6�&4&&4&&4&&4& ��(88(@(88HH88`(�@&&�('��@����1c4&'.54654'&#"#"&#"32632327>7#"&#"#"&54654&54>76763232632


	N<�;+gC8�A`1a9�9�g��w����|�9�8aIe$I�VN��z<�:LQJ
�,�-[%	061I��(�)W,$-������7,oIX(�)o�ζA;=N0
eTZ
	 (���O#".'&'&'&'.54767>3232>32�e^\4?P	bM��O0#382W#& 9C9
Lĉ"	82<*9FF(W283#0OMb	P?4\^eFF9*<28	"��L
9C9 &#��!"3!2654&#!"&5463!2`��B^^B@B^^ީw��w��w@w�^B��B^^B@B^���w��w@w�����#!72#"'	#"'.546763���YY�!''!0#�G�G$/!''!�&�UU�jZ	
8"��"8
 ��X!	
8"	"8
	���GW4.'.#"#".'.'.54>54.'.#"32676#!"&5463!2 1.-
+$)
c�8
)1)

05.D
<9�0)$9��w�@w��w�w�W

)1)
7�c
)$+
-.1 �9$)0���<
D.59�@w��w�w��,T1# '327.'327.=.547&54632676TC_L��Ҭ���#+�i�!+*p�DNBN,y[����`m`%i]hbE����m��}a�u&,�SXK��
&$��f9s?
_���#"!#!#!54632��V<%'����Э��HH���	�(ں����T\dksz�� &54654'>54'6'&&"."&'./"?'&546'&6'&6'&6'&6'&74"727&6/�a���49[aA)O%-j'&]�]5r-%O)@a[9'
0BA;+


>HC���U


	#	
	
$				2	
AC: �����oM�=a-6O�UwW[q	( -	q[WwU�P6$C

+) (	
8&/
&eM���a�	
&
$	

��%+"&54&"32#!"&5463!54 �&@&�Ԗ`(88(�@(88(�r��&&j��j�8(��(88(@(8��������#'+2#!"&5463"!54&#265!375!35!�B^^B��B^^B
�

��
`���^B�@B^^B�B^�
��
�
`��
�������!="&462+"&'&'.=476;+"&'&$'.=476;�p�pp�p�$���!�$qr�
�%���}�#ߺ���pp�p��!�E$�
�rq�ܢ#���
%�
ֻ��!)?"&462"&4624&#!"3!26!.#!"#!"&547>3!2/B//B//B//B�
�@

�
�2�����^B�@B^�\77\�aB//B//B//B/�@

��
��

�~��B^^B@2^5BB5��2���.42##%&'.67#"&=463! 2�5KK5L4�_�u:B&1/&��.-
zB^^B���4L��v��y�KjK��4L[!^k'!A3;):2*�<vTq6^B�B^�L4�$���)��*@��A4#"&54"3!4."#!"&5!"&5>547&5462�;U gI�v��0Z���Z0�L4�@�Ԗ�@4L2RX='�8P8��'=XR� U;Ig0,3lb??bl3���4Lj��jL4*\���(88(�����\���}I/#"/'&/'&?'&'&?'&76?'&7676767676`�
(�5)�0
)��*)
0�)5�(
��
(�5)�0
))��))
0�)5�(
��*)
0�)5�(��
)�5)�0
)*��*)
0�)5�)
��
)�5)�0
)*���5h$4&"24&#!4>54&#"+323254'>4'654&'!267+#"'&#!"&5463!2>767>32!2&4&&4�N2��$YGB
(HGEG  H��Q�#5K4L��i�!<�����;��5KK5 
A#
("/?&}�vh��4&&4&�3M95S+C=�,@QQ9��@@�IJ 2E=L5i�>9eM��E;K5�5K	J7R>@#�zD<����5=q%3#".'&'&'&'.#"!"3!32>$4&"2#!"#"&?&547&'#"&5463!&546323!2`  #A<(H(GY$��2NL4K5#aWTƾh&4&&4�K5��;����=!�i��hv�}&?/"(
#A
 5K��2*!	Q@.'!&=C+S59M34L=E2 JI UR@@&4&&4&���5K;E��Lf9>�ig�<Dz�#@>R7J	K�5h4&"24#"."&#"4&#"".#"!54>7#!"&54.'&'.5463246326326&4&&4��IJ 2E=L43M95S+C=�,@QQ9�@@�E;K5��5K	J7R>@#�zD<�gi�>9eM��Z4&&4&<�#5K4LN2��$YGB
(HGEG  H��V���;��5KK5 
A#
("/?&}�vh��i�!<��4<p4.=!32>332653272673264&"2/#"'#"&5#"&54>767>5463!2�@@��2*!	Q@.'!&=C+S59M34L.9E2 JI UR�&4&&4&��Lf6A�ig�6Jy�#@>R7J	K5�5K;E@TƾH  #A<(H(GY$��2NL4K#5#a=4&&4&�D��=�i��hv�}&?/"(
#A
 5KK5��;�����+54&#!764/&"2?64/!26 $$ &�
�[6��[[j6[��&���^����a�a@�&�4[��[6[��[6�&+�^����a�a�����+4/&"!"3!277$ $$ [��6[��
&&��[6j[
���^����a�ae6[j[6�&�&�4[j[��^����a�a�����+4''&"2?;2652?$ $$ ��[6[��[6�&�&�4[���^����a�af6j[[��6[��
&&��[��^����a�a�����+4/&"4&+"'&"2? $$ [6�&�&�4[j[6[j���^����a�ad6[��&&�
�[6��[[j��^����a�a������  $2>767676&67>?&'4&'.'.'."#&6'&6&'3.'.&'&'&&'&6'&>567>#7>7636''&'&&'.'"6&'6'..'/"&'&76.'7>767&.'"76.7"7"#76'&'.'2#22676767765'4.6326&'.'&'"'>7>&&'.54>'>7>67&'&#674&7767>&/45'.67>76'27".#6'>776'>7647>?6#76'6&'676'&67.'&'6.'.#&'.&6'&.5/�a����^����D&"	


	4
	$!	#
	
		
	



 
.0"�Y
	+


!	
	

$	
	"
+


		
	�Α	
		
����^����a�a��

	

			
	

	

		
	
		P� '-(	#	*	$

"
!				
*
!	

(				

	
��$�
		
2
�~�/$4&"2	#"/&547#"32>32�&4&&4��V%54'j&&�'��/덹���:,���{	&4&&4&�V%%l$65&�b��'C��r!"��k[G�+;%!5!!5!!5!#!"&5463!2#!"&5463!2#!"&5463!2����������&��&&�&&��&&�&&��&&�&�������@�&&&&�&&&&�&&&&��{#"'&5&763!2{�'
��**�)��*��)'/!5!#!"&5!3!26=#!5!463!5463!2!2���^B�@B^�&@&`��^B`8(@(8`B^��� B^^B�&&�����B^�(88(�^���G	76#!"'&?	#!"&5476	#"'&5463!2	'&763!2#"'��c�)'&�@*������*�@&('�c���(&�*�cc�*�&'
����*�@&('�c���'(&�*�cc�*�&('���c�'(&�@*��19AS[#"&532327#!"&54>322>32"&462 &6 +&'654'32>32"&462Q�g�Rp|Kx;CB��y��y� 6Fe=
BP���PB
=eF6 ��Ԗ��V����>!pR�g�QBC;xK|��Ԗ���{QNa*+%��x��x5eud_C(+5++5+(C_due2Ԗ�Ԗ�����>�NQ{u�%+*jԖ�Ԗ��p�!Ci4/&#"#".'32?64/&#"327.546326#"/&547'#"/&4?632632��(* 8(!�)(��A�('��)* 8(!U�SxyS�SXXVzxT�TU�SxyS�SXXVzxT�@(� (8 *(���(��'(�(8 ���S�SU�Sx{VXXT�T�S�SU�Sx{VXXT���#!"5467&5432632�������t,Ԟ;F`j�)��������6�,��>�jK?�s��
�!%#!"&7#"&463!2+!'5#�8Ej��jE8�@&&&&@������XYY�&4&&4&�qD�S�%��q%��N\jx��2"&4#"'#"'&7>76326?'&'#"'.'&676326326&'&#"32>'&#"3254?''7�4&&4&l��
�NnbS���VZbR��SD	
zz
	DS��Rb)+U���Sbn�
��\.2Q\dJ'.2Q\dJ.Q2.'Jd\Q2.'Jd`!O�`��	`�����&4&&4�r$#@�B10M�5TNT{L�5T
	II	
T5�L;l'OT4�M01B�@#$�*�3;$*�3;�;3�*$;3�*$�:$/� @@�Qq`��@���"%3<2#!"&5!"&5467>3!263!	!!#!!46!#!�(88(�@(8��(8(�`(�(8D<���+����+�<��8(�`(��8(�`�8(�@(88( 8(�(`�(8(��(������<��`(8��(`����`(8����||?%#"'&54632#"'&#"32654'&#"#"'&54632|�u�d��qܟ�s]
=
��Ofj�L?R@T?��"&�
>
�f?rRX=Ed�u�ds���q��
=
_M�jiL��?T@R?E& �f
>
�=XRr?��b���!1E)!34&'.##!"&5#3463!24&+";26#!"&5463!2����
��
08(��(8��8(@(8��
�

�
�8(��(88(�(`(����1

�`(88(���(88(@

��
�`(88(@(8(��`���#!"&5463!2�w�@w��w�w�`�@w��w�w��/%#!"&=463!2#!"&=463!2#!"&=463!2&��&&�&&��&&�&&��&&�&��&&�&&�&&�&&�&&�&&��@'7G$"&462"&462#!"&=463!2"&462#!"&=463!2#!"&=463!2�p�pp�pp�pp��
�@

�
��p�pp��
�@

�

�@

�
Рpp�p��pp�p���

�
�pp�p���

�
�

�
��<L\l|#"'732654'>75"##5!!&54>54&#"'>3235#!"&=463!2!5346=#'73#!"&=463!2#!"&=463!2}mQjB919+i1$AjM_3<��/BB/.#U_:IdDRE�
�@
�
����k*G�j�
�@
�

�@

�
TP\BX-@8
C)5�XsJ@�$3T4+,:;39SG2S.7<���

�vcc)�)%L�l�}�

��

�
���5e2#!"&=463%&'&5476!2/&'&#"!#"/&'&=4'&?5732767654'&��@�0��2uBo
T25XzrDCBB�Eh:%��)0%HPIP{rQ�9f#-+>;I@KM-/Q"�@@@#-bZ��$&P{<�8[;:XICC>.�'5oe80#.0(
l0&%,"J&9%$<=DTI���cs&/6323276727#"327676767654./&'&'737#"'&'&'&54'&54&#!"3!260%
<4�"VRt8<@<
-#=XYhW8+0$"+dT�Lx-'I&JKkm��uw<=V�@�!X@		v
'��|N;!/!$8:I�Ob�V;C#V

&
(���mL.A:9 !./KLwP�M�$��@@
��/?O_o��%54&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!26#!"&5463!2��@��@��@���@��@��@���@��@��@�^B��B^^B@B^�����������������������������N��B^^B@B^^���#+3	'$"/&4762%/?/?/?/?�%k��*��6�6��bbbb|��<<��<�bbbb��bbbb�%k���6���6Ƒbbb��<<��<<�^bbbbbb@��M$4&"2!#"4&"2&#"&5!"&5#".54634&>?>;5463!2�LhLLh����
	�	LhLLhL!'�Ԗ���Ԗ@'!&	
�?�&&LhLLhL�	�	
��hLLhL��	j��jj��j	&@6/"
��&&���J#"'676732>54.#"7>76'&54632#"&7>54&#"&54$ ���ok;	-j=y�hw�i�[+PM3ѩ���k=J%62>Vc��a�aQ�^��� ]G"�'9��r�~:`}�Ch�  0=Z�٤���W=#uY2BrUI1�^Fk[|��a�����L2#!67673254.#"67676'&54632#"&7>54&#"#"&5463�w��w�+U	,i<��F{�jh�}Z+OM

2ϧ���j<J%51=Ub�w��w��w�@w�zX"�'8'�T�yI9`{�Bf� 
,>X�բ���W<"uW1AqSH1�bd��w�w����'74'!3#"&46327&#"326%35#5##33#!"&5463!2����0U6c��c\=hl���ࠥ�Ymmnnnn�w�@w��w�w�w&�46#�Ȏ;ed����wnnnnn��@w��w�w����	]#/#"$&6$3 &#"32>7!5!%##5#5353����Е���tt����u�{�zz�{S�ZC�`�c�����o���t�*�t��q|��|.EXN#�??�������,<!5##673#$".4>2"&5!#2!46#!"&5463!2��r�M*
�*M~�~M**M~�~M*j����jj����&�&&&�`��P%��挐|NN|���|NN|�*�jj���jj�@��&&�&&@�
"'&463!2�@4�@&�Z4�@�4&@
#!"&4762&��&�4�Z4&&4��@@���
"'&4762�&4�@�4&@��&�4�&�@�
"&5462@�@4&&4��4�@&�&�@����
3!!%!!26#!"&5463!2�`��m��`
�^B��B^^B@B^���
 `���@B^^B�B^^��@
"'&463!2#!"&4762�@4�@&�&&��&�4��4�@�4&Z4&&4��@��
"'&463!2�@4�@&��4�@�4&@
#!"&4762&��&�4�Z4&&4��@��:#!"&5;2>76%6+".'&$'.5463!2^B�@B^,9j�9Gv33vG9�H9+bI��\
A+=66=+A
[��">nSM�A_:��B^^B1&�c*/11/*{�'VO�3��@/$$/@�*�?Nh^��l+!+"&5462!4&#"!/!#>32]��_gTRdg�d���QV?U��I*Gg?����!�2IbbIJaa���iwE33����00� 08����4#"$'&6?6332>4.#"#!"&54766$32z�䜬��m�
I�wh��QQ��hb�F�*�@&('�k�������z��
�	
_hQ��н�QGB�'(&�*�eoz�(���q!#"'&547"'#"'&54>7632&4762.547>32#".'632�%k'45%��&+�~(
(�h		&

\(
(�		&

~+54'k%5%l%%l$65+~

&		�(
(\

&		�h(
(~�+%��'��!)19K4&"24&"26.676&$4&"24&"24&"2#!"'&46$ �KjKKjKjKKj�e2.e<^P��,bKjKKj��KjKKjKjKKj��#��#���LlL�KjKKjKjKKjK��~-��M<M�(PM<rjKKjK�jKKjKujKKjK�������L���< 6?32$6&#"'#"&'5&6&>7>7&54$ L�h��я�W.�{+9E=�c��Q�d�FK��1A
0)���������p�J2`[Q?l&������٫�C58.H(Y��'����:d 6?32$64&$ #"'#"&'&4>7>7.546'&'&'# '32$7>54'Y����j`a#",5NK�
����~E�����VZ|�$2$
|��:
$2$�|ZV���:�(t}�����h�fR�88T
h�̲����X(	
&%(H�w��(%&	(X�ZT\�MKG�{x��|�!#"'.7#"'&7>3!2%632u��

�j
�H����{(e9
�1b���U#!"&546;5!32#!"&546;5!32#!"&546;5463!5#"&5463!2+!2328(��(88(`�`(88(��(88(`�`(88(��(88(`L4`(88(@(88(`4L`(8 ��(88(@(8��8(��(88(@(8��8(��(88(@(8�4L�8(@(88(��(8�L4�8����OY"&546226562#"'.#"#"'.'."#"'.'.#"#"&5476$32&"5462��И&4&NdN!>!
1X:Dx++w�w++xD:X1
-�U��
�!�*,*&4&��h��h&&2NN2D&

..J<
$$
<JJ<
$$
<J..

��P���bb&&�7!!"&5!54&#!"3!26!	#!"&=!"&5463!2��`(8��
�@

�
+��8(�@(8��(88(@(8�(��8(� @

@
�m+�U�`(88(�8(@(88(��
�h`���(\"&54&#"&46324."367>767#"&'"&547&547&547.'&54>2�l4

2cK�Eo���oED
)
�
�
�
)
D�g-;</-
?.P^P.?
-/<;-gY�����Y�

.2 L4H|O--O|HeO,����,Oe�q1Ls26%%4.2,44,2.4%%62sL1q�c�qAAq����4#!#"'&547632!2#"&=!"&=463!54632
��
��		@	
`
	��	
��

`?`�
�

@	
	@	
�!	��	
�
�
�
����54&+4&+"#"276#!"5467&5432632�
�
�
	`		_
�������v,Ԝ;G_j�)��``

��
	��		_ԟ����7
�,��>�jL>���54'&";;265326#!"5467&5432632	��		��
�
�
�
�������v,Ԝ;G_j�)���	`		����

`������7
�,��>�jL>�����X`$"&462#!"&54>72654&'547 7"2654'54622654'54&'46.' &6 �&4&&4&�y��y�%:hD:Fp�pG9�F�j� 8P8 LhL 8P8 E;
Dh:%������>�4&&4&}y��yD~�s[4D�d=PppP=d�>hh>@�jY*(88(*Y4LL4Y*(88(*YDw"
A4*[s�~����>�����M4&"27 $=.54632>32#"' 65#"&4632632 65.5462&4&&4�G9��������&
<#5KK5!��!5KK5#<
&ܤ��9Gp�p&4&&4&@>b�u��ោؐ&$KjK�nj��j�KjK$&����j��j�b>Ppp���
%!5!#"&5463!!35463!2+32����@\��\���8(@(8�\@@\������\@\���(88(��\��@��34#"&54"3#!"&5!"&5>547&5462�;U gI@L4�@�Ԗ�@4L2RX='�8P8��'=XR� U;Ig04Lj��jL4*\���(88(�����\��@"4&+32!#!"&+#!"&5463!2�pP@@P���j�j�@�@�\�@\�&��0�p����j��	��� \��\�&��-B+"&5.5462265462265462+"&5#"&5463!2�G9L4�4L9G&4&&4&&4&&4&&4&L4�4L�
��&���=d��4LL4d=�&&�`&&�&&�`&&�&&��4LL4
 ��&�#3CS#!"&5463!2!&'&!"&5!463!2#!"&52#!"&=4632#!"&=463�(8(��(88(�(`�x
��c�`(8���@��@��@�`(��(88(@(8(D��9�8(��`@�@@�@@��/?O_o��������-=%+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!!5463!2#!"&5463!2�
@

@

@

@

@

@
�
@

@

@

@
�
@

@
�
@

@
�
@

@

@

@
�
@

@
�
@

@
�
@

@

@

@
�
@

@
�
@

@

@

@
�
@

@

@

@
�����
@
&�&&&�@

@
�@

@

@

@
�@

@
��@

@
�@

@
�@

@
�@

@
��@

@
�@

@
�@

@
�@

@
��@

@
�@

@
�@

@
��@

@
�@

@

@

@
����

`��&&�&&
��/?O_o�����%+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!#!"&=!!5463!24&+"#54&+";26=3;26%#!"&5463!463!2!2�
@

@

@

@

@

@
�
@

@

@

@
�
@

@
�
@

@

@

@
�
@

@

@

@
���8(�@(8��
@

@
�
@

@
�
@
&�&&@8(�(8@&�@

@
�@

@

@

@
�@

@
��@

@
�@

@
�@

@
��@

@
�@

@

@

@
��� (88( ���

�@

``

��

``
-�&&& (88(��&@����<c$4&"2!#4&"254&+54&+"#";;26=326+"&5!"&5#"&46346?>;463!2�KjKKj�����KjKKj�������&��Ԗ���Ԗ�&&�@�&�&KjKKjK��
��jKKjK ������.��&j��jj��j&4&�@�@&&���#'1?I54&+54&+"#";;26=326!5!#"&5463!!35463!2+32����������� \��\����8(@(8�\  \����������\@\���(88(��\����:
#32+53##'53535'575#5#5733#5;2+3����@��E&&`�@@��`  ����  `��@@�`&&E%@�`��@ @ @��		 �� � � � �� 		��@ 0
@��!3!57#"&5'7!7!��K5�������@ � � @���5K�@����@@��� �����#3%4&+"!4&+";265!;26#!"&5463!2&�&�&�&&�&&�&�w�@w��w�w���&&��@&&��&&@��&&��@w��w�w�����#354&#!4&+"!"3!;265!26#!"&5463!2&��&�&��&&@&�&@&�w�@w��w�w�@�&@&&��&�&��&&@&:�@w��w�w��-M�3)$"'&4762	"'&4762	s
2

�.

�

2

�w��
2

�.

�

2

�w��
2

�

�

2

�w�w

2

�

�

2

�w�w
M�3)"/&47	&4?62"/&47	&4?62S
�.

2

��w

2

��
�.

2

��w

2

�M
�.

2

��

2

�.

�.

2

��

2

�.M�3S)$"'	"/&4762"'	"/&47623
2

�w�w

2

�

�

2

�w�w

2

�

��
2

��w

2

�

�.v
2

��w

2

�

�.M�3s)"'&4?62	62"'&4?62	623
�.

�.

2

��

2

�.

�.

2

��

2�
�.

�

2

�w�

2v
�.

�

2

�w�

2-Ms3	"'&4762s
�w�

2

�.

�

2�
�w�w

2

�

�

2
MS3"/&47	&4?62S
�.

2

��w

2

�M
�.

2

��

2

�.M
3S"'	"/&47623
2

�w�w

2

�

�m
2

��w

2

�

�.M-3s"'&4?62	623
�.

�.

2

��

2-
�.

�

2

�w�

2���/4&#!"3!26#!#!"&54>5!"&5463!2
��

@
�^B��  &�&  ��B^^B@B^ @

��
M��B^%Q=
&&<P&^B@B^^�+3"&5463!2#3!2654&#!"3#!"&=324+"3�B^^B@B^^B��
@

��
`�^B��B^�p�^B�B^^B�@B^`�@

�
�S`(88(``  ��'$4&"2%4&#!"3!26#!"&5463!2�&4&&4�
��

@
�^B��B^^B@B^f4&&4&��

�@
��B^^B@B^^/$4&"2%4&#!"3!264+";%#!"&5463!2�/B//B�
�


���0L4�4LL44L_B//B/��

�@
M   �4LL44LL���  >& $$ ������(���r���^����a�a��������(���^����a�a����!C#!"&54>;2+";2#!"&54>;2+";2pP��PpQ��h@&&@j�8(�Pp�pP��PpQ��h@&&@j�8(�Pp@��PppP�h��Q&�&�j (8pP��PppP�h��Q&�&�j (8p��!C+"&=46;26=4&+"&5463!2+"&=46;26=4&+"&5463!2Q��h@&&@j�8(�PppP�Pp�Q��h@&&@j�8(�PppP�Pp��@h��Q&�&�j (8pP�PppP�@h��Q&�&�j (8pP�Ppp@�@�	#+3;G$#"&5462"&462"&462#"&462"&462"&462"&462#"&54632K54LKj=KjKKj��KjKKj�L45KKjK�<^�^^��KjKKj��p�pp���\]��]\��jKL45K��jKKjKujKKjK��4LKjKK�^^�^��jKKjK��pp�p�r]��]\����� $$ ���^����a�aQ�^����a�a�����,#"&5465654.+"'&47623 #>bq��b�&4�4&�ɢ5����"		#D7e�uU6�&4&��m����1X".4>2".4>24&#""'&#";2>#".'&547&5472632>3�=T==T=�=T==T=��v)�G�G�+v�@b��R�R��b@�=&����\N����j!>�3l�k����i�k3�hPTDDTPTDDTPTDDTPTDD|x��xX�K--K��|Mp<#	)>dA{��RXtfOT# RNftWQ���,%4&#!"&=4&#!"3!26#!"&5463!2!28(�@(88(��(88(�(8��\�@\��\@\��\���(88(@(88(�@(88�@\��\�\��\ �u�'E4#!"3!2676%!54&#!"&=4&#!">#!"&5463!2!232�5��([��5@(\&��8(��(88(��(8,�9.��+�C��\��\@\� \��6Z]#+��#,k��(88(@(88(��;5E�>:��5E�\�\��\ �\�1. ���$4@"&'&676267>"&462"&462.  > $$ n%��%/���02�
KjKKjKKjKKjKf���ff�������^����a�a�y��y/PccP/�jKKjKKjKKjK���ff���ff�@�^����a�a�����$4@&'."'.7>2"&462"&462.  > $$ n20���/%��7KjKKjKKjKKjKf���ff�������^����a�a3/PccP/y��	jKKjKKjKKjK���ff���ff�@�^����a�a�����+7#!"&463!2"&462"&462.  > $$ �&��&&��&KjKKjKKjKKjKf���ff�������^����a�a�4&&4&�jKKjKKjKKjK���ff���ff�@�^����a�a���#+3C54&+54&+"#";;26=3264&"24&"2$#"'##"3!2@������@KjKKjKKjKKjK����ܒ���,����������gjKKjKKjKKjK�X�Ԁ�,�,��#/;GS_kw�����+"=4;27+"=4;2'+"=4;2#!"=43!2%+"=4;2'+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;54;2!#!"&5463!2�``����``��`��``�``�``�``�``�``�````�p`���K5��5KK5�5Kp``�``�``��``�``�``��``�``��``��``�````��`��������5KK5�5KK@���*V#"'.#"63232+"&5.5462#"/.#"#"'&547>32327676���R?d�^��7ac77,9x�m#@#KjK�#
ڗXF@Fp:f��_ #W��Ip�p&3z�	�h[ 17��q%q#:��:#5KKu�'t#!X:	%�#+=&>7p@���*2Fr56565'5&'.	#"32325#"'+"&5.5462#"/.#"#"'&547>32327676@��ͳ�����8
2.,#,f�k*1x���-!���#@#KjK�#
ڗXF@Fp:f��_ #W��Ip�p&3z�	�e�`��v�o�8�t-�	�:5	��[�*�#:��:#5KKu�'t#!X:	%�#+=&>7p
�3$	"/&47	&4?62#!"&=463!2I�.

2

��w

2

�
-�@�)�.

2

��

2

�.
�-@@-��S�$9%"'&4762		/.7>	"/&47	&4?62i2

�.

�

2

�w�
E��>

u>

��.

2

��w

2

�
�2

�

�

2

�w�w
!��




�h�.

2

��

2

�.
���;#"'&476#"'&7'.'#"'&476�'
�)'�s
"+5+�@ա'
�)'����F*4*E�r4�M:�}}8��GO
�*4*������~�
(-/'	#"'%#"&7&67%632���B�;><���V�?�?V�� -����-C�4
<B�=�cB5���!%��%!�b 7I�))�9I7���	#"'.5!".67632y��(
��#

��##@,(
�)���8!	!++"&=!"&5#"&=46;546;2!76232-S��S����������S�

		��S��S�`���`���		

������K$4&"24&"24&"27"&5467.546267>5.5462 8P88P88P88P�8P88P�4,�C��S,4p�p4,,4p�p4,6d7AL*',4p�pP88P8�P88P8HP88P8`4Y��&+(>EY4PppP4Y4Y4PppP4Y�%*<O4Y4Ppp���
%@\ht�	"'&4762"&5462&#!"&463!2#"'&'7?654'7&#"&'&54?632#!"&463!2"&5462"'&4762��		

	����@U�SxyS���R���#PT����('�#��TU�SxySN���@����		

		�		

		
3��@��xS�SUO#���'(���V^�'(���PVvxS�SU��i��@��		

		
`�<+"&=46;2+"&=467>54&#"#"/.7!2���<'G,')7��N;2]=A+#H

�
�0P��R��H6^;<T%-S�#:/*@Z}


>h���.%#!"&=46;#"&=463!232#!"&=463!2�&�&&@@&&�&@&�&�&&&��&&�&�&�&&��&f�&&�&&b�#!"&=463!2#!"&'&63!2&�&&&'�'%@% �&&�&&�&&&&�k%J%#/&'#!53#5!36?!#!'&54>54&#"'6763235���
����Ź���}���4NZN4;)3.i%Sin�1KXL7觧�*		��#��&		*������@jC?.>!&1'\%Awc8^;:+<!P��%I%#/&'#!53#5!36?!#!'&54>54&#"'6763235���
����Ź���}���4NZN4;)3.i%Pln�EcdJ觧�*		��#��&		*������-@jC?.>!&1'\%AwcBiC:D'P%!	#!"&'&6763!2�P������&:�&?�&:&?����5"K�,)""K,)���h#".#""#"&54>54&#"#"'./"'"5327654.54632326732>32�YO)I-D%n "h.=T#)#lQTv%.%P_�	%	
%�_P%.%vUPl#)#T=@�/#,-91P+R[�Ql#)#|'�'
59%D-I)OY[R+P19-,##,-91P+R[YO)I-D%95%�_P%.%v���'3!2#!"&463!5&=462 =462 &546 ����&&��&&��&4&r&4&�������@����&4&&4&�G݀&&������&&f��������
��sCK&=462	#"'32=462!2#!"&463!5&'"/&4762%4632e*&4&i����76`al�&4&���&&��&&}n�

R

�

R
�z����f�Oego�&&�5�����`3��&&����&4&&4&�
D�

R

�

R
z����v���"!676"'.5463!2@�@w^�Cc�t~55~t�cC&�&@���?J���V��|RIIR|��V&&��#G!!%4&+";26%4&+";26%#!"&546;546;2!546;232�����@@@@�L4��4LL4�^B@B^�^B@B^�4L�� �� ��N�4LL44L`B^^B``B^^B`L����L4&"2%#"'%.5!#!"&54675#"#"'.7>7&5462!467%632&4&&4��@�o�&�&}c ;pG=(
8Ai8^�^.�&4&&4&`��	`f�s��&& j�o/;J!#2
 KAE*,B^^B!`	$� ��-4&"2#"/&7#"/&767%676$!2�8P88P��Qr��	@
U���	@�
{`P�TP88P8�����P`��
�	@U	@�rQ���!6'&+!!!!2Ѥ���
8�������̙�e�;<*��@8 !�G��G�GQII���� %764'	64/&"2 $$ �f��3f4�:�4����^����a�a�f4334f�:4�:�^����a�a����� %64'&"	2 $$ ���:4f3��f4F���^����a�a��4�f4���4f�^����a�a����� 764'&"27	2 $$ �f�:4�:f4334����^����a�a�f4��:4f3���^����a�a����� %64/&"	&"2 $$ -�f4���4f�4����^����a�a��4f��3f4�:w�^����a�a���@��7!!/#35%!'!%j��/d��
�jg2�|�8�����������55���dc ��b���@��!	!%!!7!���FG)��D�H:�&�H����d���S)��U4&"2#"/ $'#"'&5463!2#"&=46;5.546232+>7'&763!2�&4&&4f]w�q�4�qw]	`dC���&&�:F�ԖF:�&&���Cd`�4&&4&����	]����]	`d[}�&�&�"uFj��jFu"�&�&�y}[d�#2#!"&546;4 +"&54&" (88(�@(88( r&@&�Ԗ8(��(88(@(8@����&&j��j�����'3"&462&    .  > $$ �Ԗ������>a��X��,��f���ff�������^����a�a�Ԗ�Ԗ�a>����T�X��,�,�~�ff���ff�@�^����a�a����/+"&=46;2+"&=46;2+"&=46;2�8(�(88(�(88(�(88(�(88(�(88(�(8 �(88(�(88(�(88(�(88(�(88(�(88��/+"&=46;2+"&=46;2+"&=46;2�8(�(88(�(88(�(88(�(88(�(88(�(8 �(88(�(88�(88(�(88�(88(�(88���5E$4&"2%&'&;26%&.$'&;276#!"&5463!2KjKKj�
���
��
�
f���	

�\�
�
�w�@w��w�w��jKKjK"�G

�
ܚ

��f


�
���

	�@w��w�w�����  $64'&327/�a����^�����  ��!  ����^����a�a��J@%��%	6�5��/	64'&"2	"/64&"'&476227<���ij��6��j6��u%k%~8p�8}%%�%k%}8p�8~%<���<�ij4j��4����t%%~8�p8~%k%�%%}8�p8}%k���54&#!"3!26#!"&5463!2&��&&�&�w�@w��w�w�@�&&�&&:�@w��w�w����/#!"&=463!24&#!"3!26#!"&5463!2���@�^B��B^^B@B^��w��w��w@w��@@�2@B^^B��B^^���w��w@w���+#!"'&?63!#"'&762�(��@�	@�(@>@�%����%%��� ���!232"'&76;!"/&76 �
�($��>��(����
		��J ���&%�����$%64/&"'&"2#!"&5463!2�ff4�-�4ff4f�w�@w��w�w��f4f�-�f4����@w��w�w�����/#5#5'&76	764/&"%#!"&5463!2��48`���
#�� ����\�P\��w�@w��w�w���4`8�
��
#�@  ���`\P�\`�@w��w�w�����)4&#!"273276#!"&5463!2&� *���f4�
'�w�@w��w�w�`�&')���4f�*�@w��w�w�����%5	64'&"3276'7>332#!"&5463!2�`��'(wƒa8!
�,j.��(&�w�@w��w�w��`4`*�'?_`ze<��	bw4/�*��@w��w�w�����-.  6 $$ ���� �������(�r���^����a�a���O����(��������_�^����a�a�����
-"'&763!24&#!"3!26#!"&5463!2y��B��(�(�
�@

�
�w�@w��w�w�]#�@�##� �

�@
�@w��w�w�����
-#!"'&7624&#!"3!26#!"&5463!2y(��(@B@u
�@

�
�w�@w��w�w��###��@���

�@
�@w��w�w�����
-'&54764&#!"3!26#!"&5463!2@�@####���@��w�@w��w�w��B��(�(������@�@w��w�w����`%#"'#"&=46;&7#"&=46;632/.#"!2#!!2#!32>?6�#
!"'�?_

BCbCa�f\	+
~�2�	
��
	�}0�$

��
q
90r�
�

�pr%Dpu���?#!"&=46;#"&=46;54632'.#"!2#!!546;2��D
a__����	g	

*`-Uh1

��������

�߫�}
	$^L��
���
4��b+"&=.'&?676032654.'.5467546;2'.#"�ǟ�
B{PDg	q�%%Q{%P46'-N/B).ĝ
�9kC<Q
7>W*_x*%K./58`7E%_���
�	,-3�
cVO2")#,)9;J)���
�"!*�
#VD,'#/&>AX��>++"''&=46;267!"&=463!&+"&=463!2+32��Ԫ�$
�	��	
p���U�9ӑ
@�/�*f�����o�	

VRfq
�f=S��E!#"&5!"&=463!5!"&=46;&76;2>76;232#!!2#![�
��

 ��

��
�
�%
)��
	���

��"

��Jg
Uh
B�W&WX���
hU
g��
�84&#!!2#!!2#!+"&=#"&=46;5#"&=46;463!2�j��@jo�����
������g�|�@��~�v����v�
u�n#467!!3'##467!++"'#+"&'#"&=46;'#"&=46;&76;2!6;2!6;232+32Q�Kt#�� ��#F�N�Qo!��"�դ��ѧ����!�mY

�Zga~bm]�

[o�"�U+��������,����� @��h��
h@�@X
��h��h
��@�8���3H\#5"'#"&+73273&#&+5275363534."#22>4.#2>��ut
3NtR�P*�H�o2

Lo�@!�R(�Ozh=�,G<X2O:&D1A.1G$<2I+A;"B,;&$��L��GlF/�����3�D�����;a��$8$��".�!3!
��.�3!#!"&5463!���8( 8(��(88( ��h (8��(88(@(8�(8H!!#!"&5463!54&#!"3!2654&#!"3!2654&#!"3!26��(D 8(��(88( 8��@��@��@�$����(88(@(8��(8� @@@@@@"�}
$BR3/&5##"'&76;46;232!56?5"#+#5!76;5!53'#3!533��H��
��

�����D��q		�x7��	���K/�/K��F��h�/"���		@`����Z		s�Y��w�jj��jj��j"�}
$4R%3/&5##"'&76;46;232!53'#3!533!56?5"#+#5!76;5��H��
��

��������K/�/K��F����q		�x7��	�h�/"���		@`����jj��jj��j�Z		s�Y��
w"�)9IY%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2�
��

����� ��@������@���`��		@`�����������"�)9IY#!"&=463!2%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2��� 
��

�������@��������@ ��r��		@`��r������"��
$CV%4&#"326#"'&76;46;232%#"'&'73267##"&54632!5346=#'73BX;4>ID2F��
��

������8PuE>.'%&TeQ,j��m{��+�>R�{�?jJrL6V��		@`��7>wmR1q
uW�ei��/rr�
:V��r"��
$7V4&#"326#"'&76;46;232!5346=#'73#"'&'73267##"&54632BX;4>ID2F��
��

������+�>R�{�8PuE>.'%&TeQ,j��m{��?jJrL6����		@`���rr�
:V��r3>wmR1q
uW�ei����@�\%4&#"326#!"&5463!2+".'&'.5467>767>7>7632!2&%%&�&��&& &�7.'	:@�$LB�WM{#&$h1D!		.I/!	Nr�&&%%��&&�&&V?, L=8=9%pEL+%�%r@W!<%*',<2(<&L,"r�@\#"&546324&#!"3!26%#!#"'.'.'&'.'.546767>;&%%&�&��&& &i7qN��	!/I.		!D1h$&#{MW�BL$�@:	'.�&&%%���&&��&&�=XNr%(M&<(2<,'*%<!W@r%�%+LEp%9=8=L ���	+=\d����%54#"327354"%###5#5#"'&53327#"'#3632#"'&=4762#3274645"=424'.'&!  7>76#'#3%54'&#"32763##"'&5#327#!"&5463!2��BB��PJN�C'%!	B?)#!CC $)�54f�"��@@
B+����,A

A+�&�+A
�
ZK35N #J!1331�CCC $)��w�@w��w�w��2��"33�F�Y�F~��(-%"��o�4*)$�(*�	(&;�;&&9LA38�33�4��S,;;,W��T+<<+T;(��\g7�x�:&&:�:&&<r����%-�@w��w�w����	+=[c}���#"'632#542%35!33!3##"'&5#327%54'&#"5#353276%5##"=354'&#"32767654"2 '.'&547>76 3#&'&'3#"'&=47632%#5#"'&53327�''RZZ�:k��id YYY.06�	62+YY-06	R[!.�'CD''EH$��VV�X:���:Y
X;��:Y
�fyd/%jG�&DC&&CD&O[52.
[$�C-D..D�^^���* l�y1%=^�I86�i077S
3
$EWgO%33%O�O%35	��EE�F�W�t;PP;p��t;PP;p�q��J�gT��F�Q%33&P�P%33%R�
7>%3���!+}��{�'+"&72'&76;2+"'66;2U
�&�
��	�(���P

�*��'�e�J."�-d�Z��-n �-���'74'&+";27&+";276'56#!"&5463!2�~�}�		�7��e �	���۩w�@w��w�w��"���
$Q#�'�!#
����@w��w�w��
�I-22#!&$/.'.'.'=&7>?>36����9II ! '	$ !�����01$$%A'	$ ! ����g	
\7@�)(���7Y
	
 \7@�)(���7Y
@����	'5557	���,���VW�QV���.R���W��=���?��l��%l`��������~����0��!#!#%777	5!	������R!!�XC�C��fff�݀�#�� `��,��������{��{{�`��������Og4&"2 &6 $"&462$"&62>7>7>&46.'.'. '.'&7>76 �Ԗ�� ���HR6L66L�G�HyU2LL2UyH��HyU2LL2UyHn
��X�6X��

��X�X��
Ԗ�Ԗ�����H�6L66L6�L2UyH��HyU2LL2UyH��HyU2L�n�6X��

��X�X��

�����2#!"&54634&"2$4&"2�w��w�@w��w�|�||��|�||���w�@w��w�w����||�||�||�|���	!3	37! $$ �n6^�5�5^h
����^����a�a������M�1�^����a�a���P��
*Cg'.676.7>.'$7>&'.'&'? 7%&'.'.'>767$/u5'&$I7o�b?K�\[z�H,1���+.@\7<��?5\V
,$V��g.GR@ �7��U,+!�����
	#	"8$}�{)�<�?L RR;kr,yE[��z#	/1
"#	#�eCI0/"5#`�	��"8���4~&p)4	2�{�H-.%W.L>���':Yi4&67&'&676'.'>7646&' '7>6'&'&7>7#!"&5463!2PR$++'TJX�j7-F��C',��,&C
."��!$28��h�/���"�	+p��^&+3$
i��0(�w�@w��w�w��+.i6=Bn\C1XR:#"�'jj�8Q.cAj�57!?"0D��$4"P[
&2�@w��w�w��D��"%.5#5>7>;!!76�P�Yh�pN!�HrD0�M��
 C0N��#>8\xx: �W]oW-�X���45���/%'#.5!5!#"37>#!"&5463!2p>,;$4
��5eD�+W�cE���w�@w��w�w�K�()��F
,VhV��^9tjA0/�@w��w�w���@�#"'&76;46;23�
��


��
	���&��

��� ���++"&5#"&7632�	���
^


c
� �&�

��@�#!'&5476!2� &��

����
^


b	���'&=!"&=463!546�
��� �&�
�
��	���
��
��q&8#"'&#"#"5476323276326767q'T��1[VA=QQ3���qq�Hih"-bfGw^44O#A���?66%CKJ�A}}�  !"�䒐""A$@C3^q|�z=KK?6�lk)���%!%!��V��V��u��u�u^-�m5�w��}�n�����~7M[264&"264&"2"&546+"&=##"&5'#"&5!467'&766276#"&54632�  �  ��*<;V<<O@-K<V<�<+*<J.@�k��c�lG
H_�_H
�<+*<<*+<    �<*�R+<<+�*<�f.@�+<<+��+<<+�@.��7�uu�7�
�**�
���R+<<+�+;;	��"%3I�#5472&6&67><&4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&766'.7>7676>76&6763>6&'&232.'.6'4."7674.'&#>7626'.'&#"'.'.'&676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67�	\
��
	U7	
J#!W!'	

"';%

k	)"	
	'


/7* 		I	,6
*&"!

O6*
O $.(�	*.'

.x�,	$CN��	
�		*	�
6
		
7%&&_f&
",VL,G$3�@@$+
"


V5 3"	
""�#dA++
y0D-%&n4P'A5j$9E#"c7Y
6"	&
8Z(;=I50' !!e
�R
��
"+0n?�t(-z.'<>R$A"24B@(	~	9B9,	*$		
		<>	?0D�9f?Ae �	.(;1.D	4H&.Ct iY% *	�
7��


��
J	 <
W0%$	
""I!
*D	 ,4A'�4J"	.0f6D�4p�Z{+*�D_wqi;�W1G("%%T7F}AG!1#% JG3��� '.2>Vb%&#'32&'!>?>'&' &>"6&#">&'>26 $$ *b6�~�#��= ���XP2��{&%gx|�� .���W)o���O��LO�sEzG<��	CK}E	$MFD<5+
z���^����a�a$�MW�M��1>]|�YY�^D
�եA��<��K�m����E6<�"�@9I5*�^����a�a�����>^4./.543232654.#"#".#"32>#"'#"$&547&54632632�':XM1h*�+D($,/9p�`D�oC&JV<�Z PA3Q1*223�I�oBkែhMI����oPែhMI��oP�2S6,M!"@-7Y.?oI=[<%$('3 -- <-\�%Fu���Po��IMh���Po����IMh,���#?D76&#!"7>;267676&#!"&=463!267
#!"'&5463!26�%�8#!�
��&&Z"�M>2!��
	�^I7LRx_@�>MN�""��`�=&&*%�I�}��,
	�	L�7_jj��9����/%4&#!"3!264&#!"3!26#!"&5463!2�� ��� ��&��&&�&��������&&�&&��19#"'#++"&5#"&5475##"&54763!2"&4628(3�-�	&�B.�.B�&	�-�3(8Ig�gI�`������(8+U��e&��.BB.&����+8(�kk��`�������%-"&5#"&5#"&5#"&5463!2"&4628P8@B\B@B\B@8P8pP�Pp�����@�`(88(`�p.BB.�0.BB.���(88(�Pppͺ�������!%>&'&#"'.$ $$ ^/(V=$<;$=V).X���^����a�a��J`"(("`J��^����a�a��,���I4."2>%'%"/'&5%&'&?'&767%476762%6�[���՛[[���՛o��
�ܴ
 
���
��	��	$
$�	"	�$
$	��	�՛[[���՛[[�5`��

^�

�^

2`��
`2

^��^

��`
�����1%#"$54732$%#"$&546$763276�68��ʴh�f�킐&^�����zs��,!V[���vn)�	�6���<��ׂ�f{���z����}))N�s���3(@����+4&#!"3!2#!"&5463!2#!"&5463!2@&�&&f&��&&�&@&�&&&�4&&4&�@&&�&&��&&&& ��`�BH+"/##"./#"'.?&5#"&46;'&462!76232!46 `&�C�6�@Bb0�3eI;��:�&&�&4�L�4&���F���
�Z4&�w�4�) ���''
�5�r�&4&&�4&��&4��������}G�#&/.#./.'&4?63%27>'./&'&7676>767>?>%6}�)(."�2*&�@P9A
#sG�q]
#lh�<*46+(
	
<
5�R5"*>%</
 '2�@� 53*9*,�Z&VE/#E+)AC
(���	2k<X1$:hI(B
"	!:4Y&>"/	+[>hy
	���K
!/Ui%6&'&676&'&6'.7>%.$76$% $.5476$6?62'.76&&'&676%.76&'..676�#"NDQt	
�-�okQ//�jo_	������	���%&J�������Ղ���YJA-��.--
9\DtT+X?*<UW3'	26$>>�W0{�"F!"E �

^f`$"�_]\�<`�F�`�F�D��h>Cw�ls���J@�;=?s
:i_^{8+?`
)
O`�s2R�DE58/K��r	#"'>7&4$&5m��ī��"#���̵�$5���$�"^^W����=���ac��E�*���c������zk./"&4636$7.'>67.'>65.67>&/>z X^hc^O<q����+f$H^XbVS!rȇr?5GD_RV@-FbV=3!G84&3Im<$/6X_�D'=NUTL;2KPwt��Pt= 

�&ռ
,J~S/#NL,��8JsF);??1zIEJpq�DIPZXSF6\?5:NR=��;.&1��+!"&=!!%!5463!2�sQ9����Qs�*�*�*sQNQsBUw��
wUBF��H���CCTww���%1#"&=!"&=463!54632.  6 $$ �	��	
��

`?��������(�r���^����a�a�	��	
�
�
�
���(��������_�^����a�a�����%1#!#"'&47632!2.  6 $$ �
����		@	
`
��������(�r���^����a�a�
�
?		@	
���(��������_�^����a�a�����/#"'&476324&#!"3!26#!"&5463!2&�@�&
�@

�
�w�@w��w�w����&@B@&���

�@
�@w��w�w�����"&462  >& $$ �Ԗ��*�����(���r���^����a�a�Ԗ�Ԗ �������(���^����a�a���]�6#"$54732>%#"'!"&'&7>32'!!!2�f:�л����Ѫz��~�u:�
(�(%`V6B^hD%��i�(�]̳ޛ	��*>�6߅�����r�#�!3?^BEa�߀�#�9���#36'&632#"'&'&63232#!"&5463!2
��Q,&U�#+'
 �;il4L92<D`����w�@w��w�w�����`9ܩ6ɽ]`C4�7�7�&�@w��w�w����D+"&5#"'&=4?5#"'&=4?546;2%6%66546;2�������
	
��
	
��w�ww�w�������cB
�G]B
�G��t�y]t�y�
���#3C#!+"&5!"&=463!46;2!24&#!"3!26#!"&5463!2���@��`@`�^B��B^^B@B^��w��w��w@w��@��`@`���2@B^^B��B^^���w��w@w�����'/?P+5#"&547.467&546;532!764'!"+32#323!&ln��@
:MM:
@��nY*�Yz--zY�*55QDD�U���9p��Y-`]��]`.X /2I$�	t�@@/!!/@@3,$,3�$p$0�0��&*0��&���&��
!P@���RV2#"&/#"&/#"&546?#"&546?'&54632%'&54632763276%�>S]�8T;/M7��7T</L7�=Q7,�i�<R7,�5T</L666U;/M5�<U<,�i���6i���Q=a!;�;V6-�j�;V6-�5	P=/L596Q</L5�<U6-�i�;V7,�7O;-I6��8��i;k���)I2#!"&5463#9"'.'.'3!264&#!"2>7%>�w��w�@w��w�!"�5bBBb/�/*
8(@(87)��(8=%/�'#?��w�@w��w�w����#~$EE y &�L(88e):8(%O r		

		�O�?GQaq47&67>&&'&67>&"&#6$32#"#"'654  $&6 $6&$ Co��L��.*�KPx���.*� 
iSƓi
7J?��~�pi{_Я�;��lL�������UZ=刈�����刈�����_t'<Z
�:!
	���@!
��j`Q7$k�y, R����f��k*4�������LlL��=Z=刈��������&$&546$7%7&'5>�����]���5��%��w�����������&��P�?�zrSF�!|��&0	##!"&5#5!3!3!3!32!546;2!5463���)�
)����;)��);;)��)���&&������&@@&�&��&��	�
6 $&727"'%+"'&7&54767%&4762������֬>4P���t+8?::
	�	
::AW��``���EvEEvE<�.���"�e$IE&�O�&EI&�{h.`��m���"&#"&'327>73271[
>+)@
(���]:2,C?��*%�Zx/658:@#N
�C�=�E�(�o��E=��W'c:������#!#"$&6$3 &#"32>7!����ڝ���yy��,��{��ۀ�ہW�^F!�L�C=���y�:�y��w���߂0H\R%�"N^ '&76232762$"&5462"&46274&"&'264&#"'&&#"32$54'>$ $&6$ G>��>0yx1��4J55J�5J44J5�Fd$��?�4J55%6�E��#42F%��$f�������LlL�q>>11�J44%&4Z%44J54R1F$Z-%45J521��Z%F1#:��ʎ 9�������LlL�����#Qa"'&7622762%"&5462"&546274&#"&'73264&#"'&&#"32654'>#!"&5463!2�

5�5

*�*��.>.-@-R.>.-@-�<+*q�6�- -- 0�<�o,+< ��3�w�@w��w�w��

55

**�.. -- .. --G*<N�' ,-@-+*��M <*2
z��z
1�@w��w�w�����0<754&""&=#326546325##"&='26 $$ bZt�t&�sRQs��Z<t�sQ���^����a�a�>OpoO��xzRrqP6�z~{{Prr��^����a�a�����]054&"#"&5!2654632!#"&57265&<T<����H<T<������H������<T<8v*<<*������
��+;;+l���:�������=:��*;;*���
%!!"!!26#!"&5463!2��@� ]���]�@�w�@w��w�w�����]� �@��@w��w�w���	
%)3!!#335!!5!5!%#!!5!5!%#H��H{����R��H��H{���G��G{�)���q���G����R�R�q���R�R�q�����	#0@#"'632#"'632&#"7532&#"#7532#!"&5463!2L5+*5��L5+*5~�}7W|�3B}��}JC��7=}�w�@w��w�w�D�ZQ�[�1�N:_��)�i�$��)���@w��w�w��
)�	�����������6.#&#"'&547>'&#".'&'#"&5467%&4>7>3263232654.547'654'63277.'.*#">7?67>?>32#"'7'>3'>3235?�K�cgA+![<E0y�$,<'.cI
	,#� '!;7$�=ep���	��/�/7/
D+R>,7*
2(-#=
	/~[(D?G  �|,)"#+)O��8,+�'�6	y{=@��0mI�#938OA�E`
-�
)y_/FwaH8j7=7?%����a	%%!?)L
J
9=5]~�pj

 %(��1$",I 
$@((�
+!.S		-L__$'-9L	5V��+	
	6�T+6.8-$�0��+
t�|S1��6]�&#"'&#"67>76'&'&#"67>32764.#"#.32>67>7 $&54>7>7>7�rJ�@"kb2)W+,5/1		#

Z
-!��$IOXp7s�LCF9�vz NAG#/ 5|����Հ';RKR/J#=$,�9,�+$UCS7'2"1
 !�/
,

/--ST(::(�ep4AM@=I>".)x��ls��Y�|qK@
%(YQ�&N
EHv~����<Zx'#"&5467&6?2?'&"/.7.546326#"&'&/7264/7'764&"'?>>32.��A�UpIUxYE.A�%%%h%����%hJ%�����D,FZxULsT�gxUJrV�D�%hJ%�����@/LefL.C�%Jh%�����C�VsNUxϠ�@.FZyUHpV�A�%h&%%���%Ji%�����C�WpIUybJ/��Uy^G,D�%Jh%�����@�UsMtU�C�%hJ%�����C-Kfy�EX[_gj��&/&'.''67>7>7&'&'&'>76763>7>#&'&'767672'%'7'+"&'&546323267>7%#"'4'6767672,32�,+DCCQL�Df'
%:/d
B	4@}
�&!0$�?�����J�f�d�f-�.=���6(��:!TO�?
!I�G_�U%
����.
k*.=;�	5gN_X��	"
##
292Q41�
��*����6���nA;�|�
�BSN.	%1$����
6	$��nk�^�'7GWgw�����2+"&5463#!"&5463!254&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26#"&=! B^^B�B^^B�:F�j��B^8(�(`�(� ������������������`�(8���^B��B^^B@B^�"vE�j�^B(8(�`(�����������������������8(����/?O_o��������/?2#!"&5463;26=4&+";26=4&+";26=4&+";26=4&+"54&+";2654&+";2654&+";2654&+";2654&+";2654&#!"3!2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26@&&�&&�@@@@@@@@�@@@@@@@@@@��@@@@@@@@@@@@@@@@@@@&��&&�&��@@��@@��@@��@@��@@@@@@@@@@���@@@@@@@@�@@@@@@@@@@@��`'	"&5#"&5&4762!762$"&462���B\B@B\B��O�p�P����������.BB.���.BB.8$P��O広�������3CQ#".54>32#".546322#"&#"#"54>%".54>32%2#"&54>&X=L|<&X=M{<��TML�FTML�F�v�"?B+D�?B�J�p��H=X&<{M=X&<|dMTF�LMTF�(<kNs�I<kNs���Pvo�JPwo�/��s.=ZY�VӮv�Nk<J�sNk<I�shwPJ�ovPJ�o@��+"&7.54>2�r_-$�$-_rU���U��%��&&5%ő������'-
"'.546762����@��F�F�$�@B�@$.&�,�&.]]|�q����#<���<#(B�B��B%'-%'-'%'-"'%&'"'%.5467%467%62����@��l�l����@��l�l,���@��G�G�&!�@@�@�@@�@!&+#�+#�6�#+�$*`�:�p������:�p���x�
�p����=�`$>����>$�&@��&@�

�@&�p�@��	&.A!!"!&2673!"5432!%!254#!5!2654#!%!2#!8���Zp��?v�d���Ί�e�ns�6(���N[�����RW�u?�rt1Sr�F���|��iZ��@7�����މoy2���IM��C~[�R �yK{T:���%,AGK2#!"&5463!!2654'654.#532#532"&5!654&#"327#2#>!!�w��w�@w��w��~u��k'JTM��wa��|
DH��������>�I1q�Fj?����w�@w��w�w�����sq�*4p9O*�¸Z^���qh LE
�������"(nz8B
M���'?"&4624&#"'.'324&#"3267##"&/632632.�ʏ����hhMA�LR vGhг~��~������K„y���O^
��ʏ�ʏ��В*�LM@!<I�~��~����������t\��0�������CM4&"2#"&'676&/632#!"&=3267%2654&#"&#"%463!2"&4632�r�qq��tR8^4.<x3=RR��w�@w���_h�
Y��Ӗ���	K>�שw�w���ȍ�de�)�qrOPq�Ȧs:03=<x!m�@w��w�E\x�g�ӕ��є��%w�w����d��Ȏ��V��
-<K\%.'.>7'.?67'67%'>&%'7%7./6D�\$>	"N,��?a0�#O���1G�����9�'/���P(1#00��
($=!F"�9|��]�"RE<�6'o��9%8J$\:��\H�iTe<?}V��#�oj��?���d,6���%N#"
Hl��S��VY�]C

=�@�C4&"2!.#!"4&"2+"&=!"&=#"&546;>3!232�^�^^���Y	�	^�^^��`p�p�p�p`�]i�bb�i]�~�^^�^�e��^^�^���PppP��PppP��]��^^�]��3;EM2+"&=!"&=#"&546;>;5463!232264&"!.#!"264&" ]�`p�p�p�p`�]i�b���b�i���^^�^d�Y	�	!�^^�^��]��@PppP@@PppP@�]��^��^�]� ^�^^��e��^�^^� ��3$#!#!"&5467!"&47#"&47#"&4762++�&�2
$��$
�2&��&��&�4�&��&��Z4&�&##&�&4�&4�&4���4&�m4&�m���+DP4'&#"32763232674'&!"32763 3264'&$#"32763232> $$ g����* �o�`#�ə�0#z��#l(~���̠)���-g+����^����a�aF s"	+g�(�*
3#!|
#/IK/%*%D=)[�^����a�a����	!!!'!!77!���,���/���,�-���a��/G��	t%/;<HTbcq������%7.#"32%74'&"32765"/7627#"5'7432#"/7632#"5'7432#"&5'74632	#"/6327#"/6327#"/46329"&/462"&/>21"&/567632#!.547632632
	
	*


			��X		�

^

`		���

^b
	��c�
	f�u��
U`�59u���

���

4�J���
	
l�~		~�	F��	
��	�2�����

�
�	��	�m����|O�,��� ����	

���
��������

ru|	��u�
�
"�����
)9 $7 $&= $7 $&= $7 $&=  $&=46��w���`���w���w���`���w���w���`���w��b����`����VT�EvEEvE�T��VT�EvEEvE�T*VT�EvEEvE�T*EvE�EvEEvE�Ev�#^ct�#!"&5463!2!&'&!"&5!632#"&'#"/&'&7>766767.76;267674767&5&5&'67.'&'&#3274�(8(��(88(�(`�x
��c�`(8��!3;:�A0�?ݫ�Y

	^U	47D$

	7�4U3I�
|��L38wtL0�`(��(88(@(8(D��9�8(��Q1&(!;��
(g-	Up�~R�2(/{E���(Xz*Z%(�i6CmVo8�#T#!"&5463!2!&'&!"&5!3367653335!3#4.5.'##'&'35�(8(��(88(�(`�x
��c�`(8�iF������F��Zc�r�cZ�`(��(88(@(8(D��9�8(���k�k�"	��kk�J	 	!��	�k�#S#!"&5463!2!&'&!"&5!%!5#7>;#!5#35!3#&'&/35!3�(8(��(88(�(`�x
��c�`(8�-Kg
kL#D��C��JgjL��D���`(��(88(@(8(D��9�8(���jj�	�jjkk��kk����#8C#!"&5463!2!&'&!"&5!%!5#5327>54&'&#!3#32�(8(��(88(�(`�x
��c�`(8� G]�L*COJ?0R��\wx48>�`(��(88(@(8(D��9�8(���jj��RQxk��!RY�#*2#!"&5463!2!&'&!"&5!!57"&462�(8(��(88(�(`�x
��c�`(8�������P�pp�p�`(��(88(@(8(D��9�8(����������p�pp�	�#*7JR5#5#5#5##!"&5463!2!&'&!"&5##5!"&54765332264&"�����<(8(��(88(�(`�x
��c�`(8����k�ޑc�O"�jKKjK�������������`(��(88(@(8(D��9�8(������SmmS?M���&4&&4�#9L^#!"&5463!2!&'&!"&5!#"/#"&=46;76276'.'2764'.�(8(��(88(�(`�x
��c�`(8���������6dd�WW6&44�`(��(88(@(8(D��9�8(��.��	����G���5{��{5�]�]$59�95�#3C#!"&5463!2!&'&!"&5!2#!"&5463#"'5632�(8(��(88(�(`�x
��c�`(8��4LL4��4LL4l	��		�`(��(88(@(8(D��9�8(���L4��4LL4�4L��	
Z
	�#7K[#!"&5463!2!&'&!"&5!>&'&7!/.?'&6?6.7>'�(8(��(88(�(`�x
��c�`(8�`3��3��3��3�v
�
?
�
�`(��(88(@(8(D��9�8(���&��&-��&��&�
?


��
'���6#'.
'!67&54632".'654&#"32�eaAɢ/PRAids`WXyzO�v��д��:C;A:25@Ң>�����-05r��n������`��H(�����' gQWZc[���
-%7'	%'-'%	%"'&54762�[������3[��M���N�����
��3"��,��""3,3"o�ng�$������߆���]�g�n��$����+��)��

")")"

��x#W#"&#!+.5467&546326$32327.'#"&5463232654&#"632#".#"o���G��n\�u_MK'����̨|�g?CM7MM5,QAAIQqAy��{�b]BL4PJ9+OABIRo?z��.�z��
�n�6'+s�:�������z�cIAC65D*DRRD*�wy�al@B39E*DRRD*��'/7  $&6$ 6277&47' 7'"' 6& 6'�lL������������R�R����ZB|��R�R��>����d�ZZ��������LlL�Z����R�R«����Z��&�>���«|��R� � ��! $&54$7 >54'5��������P���f���f����P�����牉�@��s��-����ff���`-����c6721>?>././76&/7>?>?>./&31#"$&��(@8!IH2hM>'

)-*
h'N'��!'Og,R"/!YQG<I *1)

(-O1D+0�n�������z�3fw���G2'3�rd1!sF0o ��.q"!%GsH8��@-!5|w|pgS=
"B2PJfh�G���d�R	�(P]ly��&$'77&7567'676'"'7&'&'7&47'6767'627''6$'67'654'7&'7'&'&'7&'5&$  $6 $&6$ j��j:,A��A��S9bb9R#:j���8AܔA,z��C�9Z04\40Z9�C��!B�;X0,l,0X;�B�*A8ܔA&#9j`b9S$#R99#&A��8A�`
������䇇�<Z<䳎������LlL�fBϬ"129�,V<4!���!88dpm��"��BV,�92[P*V*P\M�C�

�C�M\P*V*P]L�D�

�D�L&BV*�8*8!����f�!4<gmpd88!&!8*8�*VB�Z<䇇�����䇇��������LlL�����9Eis�%#"5432#"543275#&#"3254&'.547>54'63&547#5#"=3235#47##6323#324&"26%#!"&5463!2F]kbf$JMM$&�N92<Vv;,&)q(DL+�`N11MZ
%G���&54	#	i�<$8&@��0H12F1d�w�@w��w�w��B?@�UTZ3%}rV2hD5%f-C#�C@,nO	�a7�.0�x2	yR�uR/u�%6;&�$76%$56S�@w��w�w��D��<Hlw%4#"324&#"32!".5475&5475.546322#654'3%#".535"&#"5354'33"&+32#"&54632S����;<;||w
$+�|('-GVVG-��EznA�C?H_��`Rb���]Gg>Z2&`��9UW=��N9:PO;:dhe\=R����
+)�&')-S9��9kJ�<)Um�Q��/��-Ya^"![��Y��'(<`X;_�L6#)|����tWW:;X���	#'#3#!"&5463!2)
p�*�xeשw�@w��w�w���0,\8�����@w��w�w��9��I#"'#"&'&>767&5462#"'.7>32>4."&'&54>32JrO<3>5�-&FD(=Gq���@C$39a��LL��²�L4

&)
@]��v�
�q#CO���!~󿵂<ZK#*Pq.���%
L��²�LL��arh({�w؜\���i&5467&6747632#".'&##".'&'.'#".5467>72765'./"#"&'&5
�}����1R<2"7MW'$	;IS7@�5sQ@@)�R#DvTA;
0x
I)�!:>�+<B76:NFcP:SC4r�l+r �E%.*a-(6%('�>)C	6.�>�
!-I[4&#"324&#"3264&#"324&#"326&#"#".'7$4$32'#"$&6$32D2)+BB+)3(--(3�1)+BB+)�4'--'4��'���#!0>R	�H���MŰ9�o�u7ǖD��䣣���
R23('3�_,--,�R23('3�_,--,�����NJ
������?u�W�m%������#"'%#"'.5	%&'&7632�!�
�;�
	`��u%"��(����!]#�c�)(�	��� #"'%#"'.5%&'&76	�!�
���	�(%#�#���fP_�"�(���!�)'��+�ʼn�����4I#"$'&6?6332>4.#"#!"&54766$32#!"&=46;46;2z�䜬��m�
I�wh��QQ��hb�F�*�@&('�k�������@����z��
�	
_hQ��н�QGB�'(&�*�eozΘ�@@`���  >. $$ ����ff���ff�����^����a�af���ff�����^����a�a��>�����"&#"#"&54>7654'&#!"#"&#"#"&54>765'46.'."&54632326323!27654'.5463232632�,�-,�,",:!
%�]&
%@2(/�.+�*)6!	<.$.�.*�*"+8#
�
#Q3,�,+�+#-:#"</$�)

w�

���
,*

x9-.2"'
,,
���@�&,,
��Qw
,����,#"+"&5#+"&5&'&'&547676)2�%2$l$�#l#�b~B@XXyo2�$CI@5��$$�>$$�/:yu��xv)%$	��/?CG%!5%2#!"&5463!5#5!52#!"&54632#!"&5463#5!5`���&&�&&������ �&&�&&�&&�&&@������&�&&&���������&�&&&�&�&&&��������%2 &547%#"&632%&546 #"'6���������\~����~\h�
���~\��h\�������V�
�V�������V��V���%5$4&#"'64'73264&"&#"3272#!"&5463!2}XT=��=TX}}�~�>SX}}XS>�~�}�w�@w��w�w���~:xx:~�}}Xx9}�}9xX}�@w��w�w���/>LXds.327>76 $&6$32762#"/&4762"/&47626+"&46;2'"&=462#"'&4?62E0l�,

*"�T�.�D@Yo������oo����@5D�

[		

Z
�Z

		[	 ``��[



Z

	�2
,�l0
(T�"�.�D5@������oo��oY@D,

Z

		[	�		[		

Z
��``EZ

		[		
�5%!  $&66='&'%77'727'%am��lL�������m�f�?���5���5>�f�F�tu�ut�F������������LlL�H�Y�C�L|��|L����Y�˄(��E''E*(�/?IYiy����%+"&=46;2+"&=46;2+"&=46;2+"&=46;2%"&=!#+"&=46;2+"&=46;2+"&=46;2+"&=46;2!54!54>$ +"&=46;2#!"&=������@�������&&������@��������������3P��
>��P3��&��&��r���r��r���&��&���r���r��r���
he

4LKM:%%:MKL4�W��T�&&��%/9##!"&563!!#!"&5"&5!2!5463!2!5463!2�&&�&��&�&&���� ��� ��&��&&i�@����&&@&7�����'#5&?6262�%%�o����;����j|/����&jJ%�p��&j;&i&�p���/|���j�ţ���%Jk%�o��%��	:g"&5462#"&546324&#!"263662>7'&75.''&'&&'&6463!276i���~ZYYZ~�@O��S;+[G[3YUD#o?D&G3I=J�y�TkBuhNV!WOhuAiS�y*'^C�C^'*SwwSTvvTSwwSTvv���WID\�_"[�g��q# /3qF��r2/ $r�g�%4
�HffH�J4d���#!#7!!7!#5!������VF��N����rmN�N��N����������N���!Y���+?Ne%&'&'&7>727>'#&'&'&>2'&'&676'&76$7&'&767>76'6�#
<�;1�1x��#*#
�G,T9�3%�/#0v�N�Z;:8��)M:(	&���C.J}2	%0����
 	^*
J�F	
&�7'X"2L�DM"	+��6�
M2+'BQfXV#+]
#���'
L/(e�B�9
�#,8!!!5!!5!5!5!5#26%!!26#!"&5!5���������������&4&���&�pP��Pp������������������@��@&&@��!&�@PppP@�*
��	9Q$"&54627"."#"&547>2"'.#"#"&5476$ "'&$ #"&5476$ (�}R}hL�K�
N���N
����U�d:�
�x�x�
�����8���
��
�
� ,, |2222�
MXXM

�ic,>>,�
����
�	����	�
��̺

�
��'/7?KSck{4&"2$4&"24&"24&"24&"24&"24&"24&"24&"264&"24&#!"3!264&"2#!"&5463!2�KjKKj�KjKKj��KjKKjKKjKKj��KjKKj��KjKKjKKjKKj��KjKKjKLhLLhL��KjKKj�&�&&&KjKKj�L4��4LL4�4L5jKKjKKjKKjK�jKKjK��jKKjK�jKKjK�jKKjK��jKKjK�jKKjK���4LL4��4LL�jKKjK�&&�&&��jKKjK�4LL44LL	��'E!#"+"&7>76;7676767>'#'"#!"&7>3!2�W�",&7'�	#$	&��g�pf5O�.P�q�ZZdS���-V"0kqzTx�D!��!8�p�8%'i_�F?;�k��R(`��
!�&)�'�
(2!&6367!	&63!2�!
`�B��1LO�(���+#�=)�heC��Qg#s`���f�4#����6�������q�'���X�|0-�g��	�>IY#6?>7&#!%'.'33#&#"#"/3674'.54636%#"3733#!"&5463!2��4��:@��7�vH��%�h��EP{��0&<'VFJo���1,1.F6��A��#���L4�4LL44L"%�	
 
7x'6
O\�JYFw���~�v^fH$ !�"xdjD"!�6��`J�4LL44LL��	�+3@GXcgqz�����-<JX{�&#"327&76'32>54.#"35#3;5#'#3537+5;3'23764/"+353$4632#"$2#462#"6462""'"&5&5474761256321##%354&'"&#"5#35432354323=#&#"32?4/&54327&#"#"'326'#"=35#5##3327"327'#"'354&3"5#354327&327''"&46327&#"3=#&#"32?"5#354327&3=#&"32?"#3274?67654'&'4/"&#!"&5463!2_��g��QQ��h���^_�~\[[\]�_^���h��QQ��g�e��<F�$�$$��� !!�&&�/!/

!!�

00/e&'!"e$�
		'!!�''�
	8''NgL4�4LL44L�UQ��gh��QUk=<Sc���cc,-{k���jUQ��hg��Q��



�9

,&W &$U�K$$KK$$KDC(>("
!
=))=2�( '! '�L#(>(
&�DC(>(z�L#�DzG)<)�4LL44LL��	�
BWbjq}��+532%+5324&+32763#4&'.546327&#"#"'3265#"&546325&#"32!264&"2%#'#735#535#535#3'654&+353#!"&5463!29$<=$�@?�SdO__J-<AA@)7")9,<$.%0*,G3@%)1??.+&((JgfJ*�A�������!&��j�jj��GZYG�иwssw��PiL>8aA	!M7�7MM7�7M�3!�
4erJ]��&3YM�(,
,%7(#)
,(@=)M%A20C&Me�e��(X���0&Ėjj�jV��	8Z8J9���N/4���$�8NN8�8NN��	�#&:O[���	$?b3'7'#3#%54+32%4+324+323'%#5#'#'##337"&##'!!732%#3#3##!"&53733537!572!56373353#'#'#"5#&#!'#'#463!2#"5#"5!&+&+'!!7353273532!2732%#54&+#32#46.+#2#3#3##+53254&".546;#"67+53254&.546;#"#'#'##"54;"&;7335wY-AJF���=c�(TS)!*RQ+��*RQ+�Y,�B^9^��Ft`njUM�')	~PS�PR�m���٘���M7�7Mo7�q

@)U	8�"����E(�1��++��NM7�7Mx3�7��8�D�62��W74�;�9�<�-A"EA�0:��AF@�1:�ؗ����B�f~~""12"4(�w$#11#�@}}!%+%5(�v$:O�\z��K��?*$\amcrVl��OO176Nn�<!E(=�<&l/������<<������
[ZZYY�89176���7OO7�==..//cV==::z,,,,aa,,��7OO7�Z::��;;Y
fcW�(		"6-!c�(		!5	#
b�t88176����tV:
&$'*9	%e#:
%'*9B����<<��;
&(�����	�#:Sn�����#"&54632%#76;2#"&54632%4&+";2?>23266&+"&#"3267;24&+"'&+";27%4&+";2?>23266&+"&#"3267;254+";27#76;2#!"&5463!2�3%#2%%,, _3$$2%%��M>�ALVb5)LDHeE:<
E�Mj,K'-R
M�~M>�ARVb5)LEHeE:<
E�
JAB�I*'!($rL4�4LL44Lv%1 %3!x*k�$2 %3!�;5�h
n
a�
!(lI;F	
	
��	r�p
p8;5�h

t
a�
!(lI;F��`	#k�4LL44LL
��	�
2HW[lt��#"'5632#6324&'.54327&#"#"&'32767#533275#"=5&#"'#36323#4'&#"'#7532764&"24'&#"327'#"'&'36#!"&5463!2=!9�n23��BD$ &:BCRM.0AC'0RH`Q03'`�.>,&I / *�
 /

��8/��n-(G@5��$ S3=�,.B..B�02^`o?7je;9G+��L4�4LL44LyE%#	�Vb�;A
!p &'F:Aq)%)#o�rg�T$v2�� 8�)2����z948/�{�8A�B..B/��q?@�r�<7(g/��4LL44LL��?#!"&'24#"&54"&/&6?&5>547&54626=�L4�@�ԕ;U g3
��
T
�2RX='�8P8|�5�
����4Lj��j� U;Ig@
	��
`
� "*\���(88(�]k
��&N4#"&54"3	.#"#!"&'7!&7&/&6?&5>547&54626;U gI��m*��]�Z0�L4�@�ԕ���=o=CT
��
T
�2RX='�8P8|�5�
� U;Ig��Xu?bl3���@4Lj��j��a���`
	��
`
� "*\���(88(�]k����/7[%4&+";26%4&+";26%4&+";26!'&'!+#!"&5#"&=463!7>3!2!2@@@@@@���0
��
o`^B��B^`5FN(@(NF5���@��@��@�u		�@�LSyuS�@�%44%����,<H#"5432+"=4&#"326=46;2  >. $$ ~Isy9���"SgR8v�H����D�	w
����ff���ff�����^����a�a�m2N+��	)H-mF+1����0*F		+f���ff�����^����a�a�����b4&#"32>"#"'&'#"&54632?>;23>5!"3276#"$&6$3 �k^?zb=ka`�U4J{�K_/4�^����W�&	vx :XB0���܂�ff���)
f������zz��X��lz=l�apz��o�b35!2BX���
�G@8��'	'=vN$\f���f�	1
	SZz�8�z�X�#("/+'547'&4?6276	'D�^�h

�

i��%5�@�%[i

�

h�]��@������]�h

�

i��%�@�5%[i

�

h�^�@@������)2#"&5476#".5327>OFi-���ay~�\~;��'�S���{�s:D8>)AJfh]F?X��{[��TC6��LlG��]��v2'"%B];$�-o��%!2>7>3232>7>322>7>32".'.#"#"&'.#"#"&'.#"#546;!!!!!32#"&54>52#"&54>52#"&54>52�-P&+#($P.-P$'#+&PZP&+#"+&P-($P-.P$(#+$P.-P$'#+&P-.P$+#pP@@Pp�H85K"&ZH85K"&ZH85K"&Z����@��Pp��@��@��@pMSK5, :&�LMSK5, :&�LMSK5, :&����!!3	!	�����@�����@@�����	#"$$3!!2"j������aѻxl���a����lx�a�a����j������!!3/"/'62'&63!2��'y��

�`�I

��y�����My��

�`�I

��y'W`#".'.#"32767!"&54>3232654.'&546#&'5&#"

4$%Eӕ;iNL291 ;XxR`�f՝�Q8T������W��iW�gW:;*:`�Qs&?RWXJ8�oNU0�J1F@#)
[�%6_PO�QiX(o�`��_?5�"$���iʗ\&>bd�s�6�aP*< -;iFn�*-c1B���Wg4'.'4.54632#7&'.#"#"'.#"32767'#"&54632326#!"&5463!2��#$(	1$6]'
!E3P|ad(2S;aF9'EO�Se�j]�m�]<*rYs��hpt.#)$78L*k�h�w�@w��w�w��B

%
$/$G6
sP`X):F�/�fwH1p�dl�qnmPH�ui�kw_:[9D'��@w��w�w��34."2>$4.#!!2>#!".>3!2�Q��н�QQ��н�QQ��h�~w��w�h���f����ff����н�QQ��н�QQ��н�QZ����ZQ�����ff���ff�#>3!2#!".2>4."f����ff�����н�QQ��н�QQ���ff���ff��Q��н�QQ��н�	,\!"&?&#"326'3&'!&#"#"'  5467'+#"327#"&463!!'#"&463!2632���(#�AH����s���9q � ci��<=�
#�]�<������OFA��!�������re��&&��U�&&![e��F �������U?���g�����4_���������a�?b�+��r7�&4&��&4&�p,�+K4&"2$4&"2.#!"3!264&#!"3!2#"&=!"&=#47>$ �KjKKjKKjKKjH#�j#H&&&������KjK�KjK�g	�V�	ijKKjKKjKKjK���..n((�[���5KK5��5KK5�[po�Nv<<vN�:f���.R#!"&463!24'!"&5463!&$#"!2#!32>+#"'#"&546;&546$3232�2$�B$22$�$�*$22$�X�ڭ��ӯ�$22$�tX'���hs2$���ϧ��kc�$22$���1���c�$2�F33F3VVT2#$2����ԱVT2#$2��g���#2UU���݃
�2$#2UU�1݃���2��,u�54#"67.632&#"32654'.#"32764.'&$#"7232&'##"&54732654&#"467&5463254632>32#"'&�ru�&9��%"*#�͟ <yK0Og�" 
&9B3�;��㛘8��s%+DWXRD= @Y%�	!Q6R�!4M8�+6rU^z=)�RN��.)C>O%GR�=O&^���op������C8�pP*�b�Y
_�#��$��N Pb@6��)?����+0L15"4$.�Es
�5I�Q"!@h"�Y7e|J>z�iPe��n�eHbIl�F>^]@����n*9
���6[_3#"&54632#.#"32%3#"&54632#.#"326%4&'.'&! ! 7>7>!���������
�=39?
6'_����������
�>29?
5'17m-V����U--,�bW.�������뮠@Fyu0HC$������뮠@Fyu0HC$L���=??
<����=! A	<��`�;+"&54&#!+"&5463!2#!"&546;2!26546;2���p���Ї����0�p�����p���@��I�������pp���>Sc+"&=46;254&+"&+";2=46;2;2=46;2;2%54&#!";2=;26#!"&5463!2���A5�DD�5A7^6a7MB5��5B7?�5B~�`��`��`0`��rr��5A44A5�����v�5AA5�f�*A���`��`0`�����	!!!!	#!"&5463!2��ړ�7���H��7j�v�@v��v�v��'���:��@v��v�v���MUahmrx���������������#"'!"'!#"&547.547.54674&547&54632!62!632!#!627'!%!"67'#77!63!!7357/7'%#	%'3/&=&'	5#?&5476��!�p4�q"���"�"�6�"� ��'������h*�[���
��|�*��,�@���?wA�UM�pV���@�˝�����)��Ϳw����7(�{��*U%���K6������=0�(���M���		��"!O		dX$k
!!��!
����b��	
���[�����TDOi
��@��6��b��xBA�ݽ�5
�
�ɝ:����J���+���3����,��p
x�1���������Fi
(��R��
463!#!"&5%'4&#!"3���`����а@.�.@A-X��f�B����$��.BB.�.C��}
)&54$32&'%&&'67���"w�`�Rd]G�{��o]>p6��sc(��@wg����mJ�PAjy���YW�a͊AZq���{HZ�:�<dv\gx�>��2AT�Kn������+;"'&#"&#"+6!263 2&#"&#">3267&#">326e��~�└�Ȁ|��隚���Ν|����ū|iy�Zʬ��7Ӕ�ް�r|�uѥ��x�9[��[9�jj��9A�N��N�+,#ll"���B�S32fk��[/?\%4&+";26%4&+";26%4&+";26%4&+";26%#!"&5467&546326$32�]]��ee��ee��ee��$��~i
�qfN-*���������#����Sj������t�2"'q�C���B8!�'�>	
!%)-159=AEIMQUY]agkosw{��������!	%!	5!#5#5#5#5#57777????#5!#5!#5!#5!#5!#5!#5!#5#537#5!#5!#5!#5!#5!#55#535353535353%"&546326#"'#32>54.&54>3237.#"����������Q%%%%%%%%%?iiihOiixiiyiixii�Arssrrssr��%s�ssrrss�Ns%%%%%%%%%%�����������'<D<'paC_78#7PO7)("I$	75!����RA��b��(���ss�ss�ss�ss�ss�"/!".""."
!."".!/^.".^.".]/".�$$$$$$$$$$$$$$$$��Os$$$$$$$$$$$$$$sO$s�ss�ss�ss�ss�ss#��������}$)	13?*
,./:
-�s�*4&"2$4&"2#!"&5463!2!5463!2_��������?-��-??-�,@�@,�-?����pq�8��,??,D,??,��,??(�Z2#".#"3267>32#".543232654&#"#"&54654&#"#"&547>326���ڞU�zrhgrx�S��Пd�U <e�����x՞����Zf��_gן:k=2;�^��9��Œ��7\x��x\7����K=5Xltֆ�W����W{e_�%N��%,%CI��%���#+W4&+54&"#";26=32"&462"&462!2#!"&54>7#"&463!2!2�&�&4&�&&�&4&���KjKKj�KjKKj� ���&&�&%��&&�&&4&�&&�&4&�&&��5jKKjKKjKKjK��%z
0&4&&3D7&4&
%&���'S4&"4&"'&"27"&462"&462!2#!"&54>7#"&463!2!2&4�&4&�4&4��KjKKj�KjKKj� ���&&�&%��&&�&&4&�%&&�ے&4��"jKKjKKjKKjK��%z
0&4&&3D7&4&
%&��	&	!'!	!%!!!!%"'.763!2�o���]�F������o�������oZ��Y��@:�@�!�!�g���������������f�/�/��I��62'"/"/"/"/"/"/"/7762762762762762762%"/77627&6?35!5!!3762762'"/"/"/"/"/"/%5#5!4�ZSS6SS4SS4SS4SS4SS4SS4�ZSS4SS4SS4SS4SS4SS4S�-4�ZSS4S@������4SS4�ZSS6SS4SS4SS4SS4SS4S@�����ZSSSSSSSSSSSSSS�ZSSSSSSSSSSSSSy�ZRRR@%:=
:+������:
=���RR�ZSSSSSSSSSSSSS���������Cv!/&'&#""'&#"	32>;232>7>76#!"&54>7'3&547&547>763226323@``����`
VFaaFV


$.


.$

��y��y�	.Q5Z���E$ ,l<l, $E���R?Y*��@���@�2	!#""#!	��y��y=r�na�@@(89*>�*%>>%*�>*98(QO�!���L\p'.'&67'#!##"327&+"&46;2!3'#"&7>;276;2+6267!"'&7&#"(6&#"#"'�D��g��OOG`n%�E������LL{�@&&�N�c,sU�&&�!Fre&&�s�����s���#�/,�������<=�
#�]�g��L�o�GkP�'��r-n&4&2�-ir&�&�?���o 
��������4_�����5OW! .54>762>7.'.7>+#!"&5#"&5463!2"&462�{�����{BtxG,:`9(0b��Կ�b0(9`:,GxtB��&@&�&@&K5�5K`�����?e==e?1O6#,
#$
,#6OO��&��&&�&�5KK���������?!"'&'!2673267!'.."!&54632>321
��4��q#F�""�8'g��o#-��#,"t�Yg��>�oP$$Po�>�	��Z�e�p#����)�R��0���+I@$$@I+����+332++"&=#"&=46;.7>76$  ������@����ᅪ*��r���������@��@�����������r���'/2+"&5".4>32!"&=463  �&@��~[���՛[[��u˜~���gr�������&�`����u՛[[���՛[~~@��r������=E32++"&=#"&=46;5&547&'&6;22676;2  >�����``@``�ٱ��?E,��,=?��r�������H�����@``@�GݧH`�j��j���r������BJ463!2+"&=32++"&=#"&=46;5.7676%#"&5   &@�~���``@``�� �v�X����r�������&���������@``@����+BF��`r������ks463!2+"&=32++"&=#"&=46;5&547'/.?'+"&5463!2+7>6 %#"&5   &@�~���``@``��~4e	
0
	io@& �jV	
0
	Z9�������r�������&���������@``@�G�ɞ5o
,
sp� &@k^
,
c8~~��`r�������8>KR_32++"&=!+"&=#"&=46;.767666'27&547&#"&'2#"�����@�@���'�Ϋ���'������sg��gs�����ww�@����sg��g����@����@���-ss��ʃl������9���9��������OO���r9���9��FP^l463!2+"&=$'.7>76%#"&=463!2+"&=%#"&54'>%&547.#"254&' &@�L?����CuГP	��v�Y�� &@�;"����������ޥ�5݇�����ޥ���5�`&����_��ڿg��w��BF�@&����J_	s���&��&�����?%x���������%x��JP\h463!2+"&='32++"&=#"&=46;5.7676632%#"&56'327&7&#"2#"� &@�L? ���ߺu�``@``��}
�ຒ�ɞ���������ue��eu�9����ue��e�&����_��"|N�@``@��"��"|a~���l����o����9���9��r9��@�9���;C2+"&5"/".4>327'&4?627!"&=463  �&@Ռ		.	
�N~[���՛[[��u˜N�		.	
����gr�������&�`֌
	.		�O��u՛[[���՛[~N�
	.		��@��r������9A'.'&675#"&=46;5"/&4?62"/32+  ��'��֪�����\
	.		�4�		.	
\���r������|��ݧ���憛��@�\		.	
��
	.		\�@��r�����~9A"/&4?!+"&=##"$7>763546;2!'&4?62  m��		-

���@���ݧ���憛��@&�

-		�@r������m4��

-		����ٮ*�������		-

��r������+"&5&54>2  ����@��[���՛[�r�����������dG�u՛[[���r������  ".4>2������r�[���՛[[���՛�r������5�՛[[���՛[[����$2#!37#546375&#"#3!"&5463�#22#�y��/Dz?s����!#22#�2#��#2S�88�	����2#V#2��L4>32#"&''&5467&5463232>54&#"#"'.K���g��&Rv�gD�
$*2%	+Z hP=DXZ@7^?1
۰��3O+�l��h4���`���M@8'�+c+RI2
�\�ZAhS�Q>B�>?S2Vhui/�����,R0+	ZRkm�z�+>Q2#"'.'&756763232322>4."7 #"'&546��n/9�b�LHG2E"D8_
p�dd���dxO�"2�xx��ê�_�lx�2X	
!+'5>-�pkW[C
�I
I@50�Od���dd��˥�Mhfx�����x^���ә�	�#'+/7!5!!5!4&"2!5!4&"24&"2!!!��� 8P88P�� 8P88P88P88P����������P88P8 ���P88P88P88P8� ������������+N &6 !2#!+"&5!"&=463!46;23!#!"&54>32267632#"_����>�@`

��
�
��

`
�
� L4Dg��y� 6Fe=O���O�U�4L��>����
�
��

`
�
`

��4L�2�y5eud_C(====`L4����3V &6 #"/#"/&54?'&54?6327632#!"&54>32 7632_����>���		�	
	��	
	�		��		�	
	��	
	�		��%%S��y� 6Fe=�J�%��>����	
	�		��		�	
	��	
	�		��		�	
	��%65%S�y5eud_C(zz.!6%$!2!!!46;24&"2!54&#!"�&���&�&@�Ԗ��V�@&&�@��&&�Ԗ�Ԗ@��&���3!!!	!5!'!53!!	#����7I�e�����eI7��CzC�l��@�����@������@�#2#!"&?.54$3264&"!@������մ���pp�p���������((��������p�pp����#+/2#!"&?.54$3264&"!264&"!@������մ���^^�^@����^^�^@���������((��������^�^^�����^�^^�����v(#"'%.54632	"'%	632U�/�@��k0�G��,�zD#[�k#�
/t�g��
F��
����Gz�����	#'#3!)
p�*�xe���0,\8�����T���#/DM�%2<GQ^lw�����
&'&676676&'&7654&'&&546763"#"'3264&7.>&'%'.767&7667&766747665"'.'&767>3>7&'&'47.'.7676767&76767.'$73>?>67673>#6766666&'&6767.'"'276&67&54&&671&'6757>7&"2654&57>&>&'5#%67>76$7&74>=.''&'&'#'#''&'&'&'65.'&6767.'#%&''&'#2%676765&'&'&7&5&'6.7>�&5R4&5S9
W"-J�0(/�r
V"-J�0(.�)#"6&4pOPpp�c�|o}vQ�[�60X�Q��W1V�	
#5X		N"&
.
)
D>q J:102(z/=f��*4!>S5b<U$:I o<G*	,
&"O	X5
#!

��	R N#
C
83J*��R	!(D
#%37	�;$-.�
(,��覦�6ij
�	���"���)9
E�%����!B83
	j9�6/,	:QD')yX#�63V
��b�a	,
Ue��LPA@���*	̳�`Xx*&E
V36��%	B3%	B3XA	
#!.mU"A	
#!.mUB-#2+Jii�i�m-C<I(m��8qF/*)0�S
		
I
E5&+>!%
(!$p8~5..:5I

~��T�
4~9p# !
)& ?()5F	1	
	
� d%{v*�:
 @e
s|D�1d {�:�*dAA|oYk'&��<��tu��ut�&vHC�XXTR�;w��
��71™
Z*&'
1	9?	.

$��Gv5k65P<�?8q=4�a	
SC"��1#<�/6B&!ML	�^;�6k5wF1<P�C	�;$"&462"&46232>.$.�`�aa��sa�``��Z9k����'9؋ӗa-*Gl|M�e_]`F&O������ܽ�sDD!/+�``�aa�``�a1<YK3(
 /8HQelA�Z3t_fQP<343J;T7Q�+?Kgw  $6&$  $&62+"5432+"&=.54  $;26=462;26=4& 4&#!"3!26)����߄��4R4߄��mlL�������r {jK#@#Q�a����^�����@���@���`&��&&�&�������߄��4R4�Ď������LlL�N� �@K5#:rr:#5K���^����a�a��``]��]``����&&�&&	/!3#4&#!"3!265##!"&5463!22�������@K5^B��B^^B@B^5K���� �@���5K�B^^B�B^^B�K	/!2##!"&5463!2#4&#!"3!265�5KK5^B��B^^B@B^���@��K5��5K�B^^B�B^^B�`� �@ 	/!2##!"&5463!2#4&#!"3!265�5KK5^B��B^^B@B^���@��K5��5K�B^^B�B^^B�`� �@ 	/!2##!"&5463!2#4&#!"3!265�5KK5^B��B^^B@B^���@��K5��5K�B^^B�B^^B�`� �@ 	+2##!"&5463!2#4&#!"3!265�5KK5^B��B^^B@B^���@�K5��5K�B^^B�B^^B�`� �@ �{#!&'#"'&547632m*���
�0���((�'(�$0K
��*�*��% 3#!3# '!#53 5#534!#53 6!3@����@@@��pp��@@@����@@pp@��`������� �����	�+/7;A#3!5!!3#!!5!35!355#%53#5!#35#!!!!!!!!����������������������������������������������������������������������
�	#'+/3?CGW#3!5!!35!!3#!!5!#!5!3535!355#%#3%!53#5!#35#!5##5!3!5!3!5	����������������������������������������������������������������������������������������������������������������!"&5463!2!"!�`(88(@(8�`(8�}2�2R �`8(@(88(�`8HR2�2���##6?6%!!!46#!"&5463!2x���� ��8�(�`(�(88(@(8�
���� (8��(`�(8(@(88��	�'ATd+5326+5323##"' %5&465./&76%4&'5>54&'"&#!!26#!"&5463!2�
��

���i�LCly5�)*H�celzzlec0h�b,,b�eIVB9@RB�9�J_�L4�4LL44L44%��2"��4��:I;p!q4b�b3p(P`t`P(�6EC.7B�I6�4LL44LL��	�.>$4&'6#".54$ 4.#!"3!2>#!"&5463!2Zj��b�jj[���wٝ]�>o��Ӱ�ٯ�*�-���oXL4�4LL44L'�)�꽽�)�J)���]��w����L���`��ֺ��۪e���4LL44LL�;4&#!"3!26#!"&5463!2#54&#!";#"&5463!2�
��

@
�^B��B^^B@B^���
��

��B^^B@B^`@

��
M��B^^B@B^^>��

��
�^B@B^^��5=Um	!	!!2#!"&=463!.'!"&=463!>2!2#264&"".54>762".54>762��������?(`��`(?��b|b��?B//B/�]�����]FrdhLhdrF�]�����]FrdhLhdrF@�@��@�(?��@@?(@9GG9@/B//B�aItB!!BtI�Ѷ�!!��ьItB!!BtI�Ѷ�!!��ь�-M32#!"&=46;7&#"&=463!2#>5!!4.'.46�ՠ��`�@`ՠ��`���M�sF�Fs�MM�sFFs�M����ojj�o��@@�jj�@@�<���!(!���!(!�-3?32#!"&=46;7&#"&=463!2+!!64.'#�ՠ��`�@`ՠ��`��	�	Dq�L�L�qD����ojj�o��@@�jj�@@B>=�C�����-3;32#!"&=46;7&#"&=463!2+!!6.'#�ՠ��`�@`ՠ��`��UVU96�g�g�6����ojj�o��@@�jj�@@β����**ɍ�-G32#!"&=46;7&#"&=463!2#>5!!&'.46�ՠ��`�@`ՠ��`���M�sF�Fs�M�k�k�����ojj�o��@@�jj�@@�<���!(!3��3!(!�9I2#!"&=4637>7.'!2#!"&=463��@b":1P4Y,++,Y4P1:"�":1P4Y,++,Y4P1:"b�@@��@7hVX@K-AA-K@XVh77hVX@K-AA-K@XVh7����Aj"#54&#"'54&#"3!26=476=4&#"#54&'&#"#54&'&'2632632#!"&5&=4632>3265K @0.B @0.B#6'&�&
l
@0.B 2'	.B A2TA9B;h" d�
mpP��Tl��L�c�_4.H�K5�]0CB.�S�0CB.�/#��'?&&)$�$)�0CB. }(AB.�z3M�2"61�d�39�L/PpuT(If�c�_�E�`1X"#4&"'&#"3!267654&"#4&"#4&26326#!"&'&5463246326�\B B\B�&@5K�&@�"6LB\B B\B ��sc�i�L}Q�P<m$��3�jN2�c�B.�p.BB.���3K5+"�3,"� �.BB.��.BB.���.�G=�c�i�(+�lOh7/DVj�"�c�=���&5Jb�#"'&=.547!"&46;'.54632!2327%.54&#"327%>%&#"!"3!754?27%>54&#!26=31��?>I��j��jq,J[�j.-t�j�lV��\���$B.R1?@B.��+?2`$�v5K-%��5KK5�.olRIS+6K5�̈$B\B 94E.&�ʀ�15uE&
�Ԗ�Pj��j�dX�U�GJ7!.B
�
P2�.B
�
%2@	�7�K5(B�@KjKj�?+f�UE,�5K~!1��.>F.��F,Q5*H��$b2#!"&=%!"&=463!7!"&'&=4634'&#!">3!!"3!32#!"3!23!26=n$<vpP��Pp���Pp�w�*�Rd�ApP�]��'@�A&
3@��&H-�[(8@
2�EB^&1
=&�&81����PppP��pP w���cOg Pp��c�
4& #.& &,,:8(�%^B &�
.�&&��2t"&'&54'&5467>32>32>32#"#.#"#.#"3!27654&#"547654&#"#654&�Mye
t|]�WS�Sg�SY�\x{
70"1i�92�DU1&=	��	=&0@�c	>&/Btd4!�*"�8K4+"��@H@/'=	t�?�_K�93-�]�
UlgQ���QgsW
�]#�+�i>p&��3�0&�VZ&0B/
���%3B.�"t�o ){+C4I��(
/D0&�p0D��3[_cg"'&#"3!2676=4&"#54&#"#54&#"#4&'2632632632#!"&'&5463246#!#!#�5K�)B4J�&@�#\8P8 @0.B J65K J6k�
cJ/4qG^�\hB�2<m$��3�iG;��     �K5����6L4+"�3p`b�)<8(=0CB.@Z7OK5`:7O��k�EW�^�tm��@Q7/DVi�##j�������������%4Ia�2#!"&5&546325462632"32654&"3267654&76;74&"#.#"2676=#"&'+53264&#!"3</�U�X�dj���jP��ԖEu�!7JG72P
�
B�%
�
B.!7�	@�A�f+?�jKjK@�B(5K,EU�H*5Q,F��.F>.��1!~K5y?��^\��Vl�j�t-.j�[J,qj��j��I7$��?1R.B�+��.B$`2?g�vEo.�5KK5��%-K��6+SIR[��&.E49 B\B$���5K�G#!+"&5!"&=463!2+"&'+"'+"'&5>;2>76;2Y
��
�
��

M	

�.�x	�-�
	N�	�


�	�
�u
��
,
u
�?

L�W���

���#	�	*:J4'&+326+"'#+"&5463!2  $6& $&6$ <!T{�BH4�	�›�&�>UbUI-����uu�,�uu�ڎ������LlL�AX!��J��m����f\�$
6u�����uu�,�K������LlL���-[k{276/&'&#"&5463276?6'.#"!276/&'&#"&5463276?6'.#"  $6&  $&6]�h-%Lb`J%E5
,5R-����h
-%Lb`J%E5
,5R-���'����uu�,�uu��lL�������/hR

dMLcN����hR
dMLcN����1u�����uu�,��������LlL�@��� 	'	7	'7	�����`��`H� �����`�`H� �!`��������`H� � ���`�`�`H���`��'%		7'	7'7	' $&6$ ���X�`��(W�:,�:��X�`��(WL�������LlL�X�`(W��:�B����X�`���(X�������LlL��
��	$%/9ES[�#"&54632$"&4624&"26$4&#"2%#"&462$#"&4632#"32&! 24>  !#"&'.'#"$547.'!6$32�7&'77'&7�7N77N�'q�qq�q�qPOrq��E�st�����ts��st���}�||�}�������uԙ[W��Q���~,>	n������P/RU P酛���n	>,m�����'77'&77N77N6^Orq�qq�qq�q�t��棣棣�(~|��|on[��usј^�~���33������pc8{y%cq����33dqpf��	L 54 "2654"'&'"/&477&'.67>326?><����
x
�������,

(-'s�IVC��VH�r'-(

$0@!BHp9[�%&!@0$u
��
������]\��\]��-$)!IH��V
D��
VHI!)$-#3���6>N"&462."&/.2?2?64/67>&  #!"&5463!2�]�]]�3
$;
&|�v;$
(CS�3�1	=�rM=	�4�TC(G���z�w�@w��w�w���]]�]��($-;,54�0=	�sL	=�45,;�����@w��w�w������(2#"$&546327654&#"	&#"AZ�������\@�/#�%E1/#����#.1E$�!�[A�����懇�@�@\��!�#21E!��6!E13"�|!��	gL&5&'.#4&5!67&'&'5676&'6452>3.'5����A5R��V[t,G'Q4}-��&�<C!l n?D_@Փ>r!�
��G;��>��!g�1�����2sV&2:#;��d=�*'�5E2/..F�D֕71$1>2�F!���&12,��@K�
r��#"&5462>%.#"'&#"#"'>54#".'7654&&5473254&/>7326/632327?&$  $6 $&6$ �!&"2&^	u��_��x��^�h
;J݃HJǭ
q�E
Dm!
M�
G?̯'%o�8
9U�������(F(�ߎ������LlL��&!&!SEm|�[��n{�[<ɪ
"p� C
Di%
(K�HCέp�C
B
m8	
@Kނ
H�F(���������������LlL���"*6%&6$	7&$5%%6'$2"&4}���x����3��n��QH������:dΏ���Xe�8�����z��'	������l�i���=!��7�����S�o�?v�������M '&7>>7'7>''>76.'6'���El:F�gr
*�t6�K3UZ8�3P)3^I%=9	)<�}J���k+C-Wd��	&U���-��TE+]��Qr-�<Q#0
�C+M8	3':$
_Q=+If5[ˮ&&SG�ZoM�k���ܬc�#7&#"327#"'&$&546$;#"'654'632ե›��fKYYKf�¥y�ͩ���䆎�L��1���hv�v��ƚw�wk��n�]��*��]�nlx��D��L�w�����~?T8b��b9SA}����+5?F!3267!#"'#"4767%!2$324&#"6327.'!.#"��۔c�2�8�Ψ����-\���?���@hU0KeFjTl�y�E3��aVs�z�.b��؏��W80��]T��Sts�<�h�O��_u7bBt���SbF/�o��|V]SHކ�J�������34&#!"3!26#!!2#!"&=463!5!"&5463!2
��

@
�^B� `��`� B^^B@B^ �

�@
�@B^�@@�^B�B^^����>3!"&546)2+6'.'.67>76%&��F8$.39_��0DD�40DD0���+*M7{L *="#
U<-M93#�D�@U8v�k�_Y	�[�hD00DD0��0D�ce-JF1BD����N&)@
/1 d��y%F��#"'&'&'&'&763276?6#"/#"/&54?'&763276"&'&'&5#&763567632#"'&7632654'&#"32>54'&#"'.5463!2#!3>7632#"'&'&#"'&767632yq������oq>*432fb������a
$�B?
	>B
BB
AA�.-QP���PR+	42
%<ci���ђ:6&h�HGhkG@n�`��I���Ȍ5
!m��(|.mzy�PQ-.	
	je����	
�����q>@@?pp�gVZE|fb6887a
%RB?
=B
ABBAJvniQP\\PRh!cDS�`gΒ��23�geFGPHX�cCI��_ƍ��5"	
�n�*T.\PQip�
[*81
/
9@:��>t�%6#".'.>%6%&7>'.#*.'&676./&'.54>754'&#"%4>327676=
>���vwd"

�l����"3	/!,+	j2.|��%&
�(N&w���h>8X}x�c2"W<4<��,Z~�fd�aA�`FBIT;hmA<7QC1>[u])		u1�V(�k1S)
-�	0�B2*�%M;W(0S�[T�]I)	A 5%R7<vlR12I]O"��V/,b-8�/_��#3CGk2#!"&546;546;2!546;2%;2654&+";2654&+"!32++"&=#"&=46;546;24LL4��4LL4�^B@B^�^B@B^�@@�@@�����@��@L4�4LL44L`B^^B``B^^B``�� �� ��@@��@���#3W#!"&=463!2!!%4&+";26%4&+";26%#!"&546;546;2!546;232���@�����@@@@�L4��4LL4�^B@B^�^B@B^�4L�@@��� �� ��N�4LL44L`B^^B``B^^B`L��#'7Gk%"/"/&4?'&4?62762!!%4&+";26%4&+";26%#!"&546;546;2!546;232W.	
��
	.		��		.	
��
	.		��	� ����@@@@�L4��4LL4�^B@B^�^B@B^�4L�.		��		.	
��
	.		��		.	
��
��� �� ��N�4LL44L`B^^B``B^^B`L��(8\	"'&4?6262!!%4&+";26%4&+";26%#!"&546;546;2!546;232�

��		.	
��
	.	�`����@@@@�L4��4LL4�^B@B^�^B@B^�4L<�		 
	.		��		.	�:� �� ��N�4LL44L`B^^B``B^^B`L�2632632#!"&5463�&&&&��&&&���&���&��&&�&�#27+"&5  %264&#"26546��>&�&T�,��X�������q&&�1��X��,�LΒw�%��%;#!"&5463!546;2!2!+"&52#!"/&4?63!5!�

�(��&&@&�&(��&�&@&&��(�

�(�

�&&@&&@��&&�&�&�

�����#''%#"'&54676%6%%�������
�hh �@�` ���!�� ���!� ��
��
��
�
������
�#52#"&5476!2#"&5476!2#"'&546
� 
��
� 
���
�
�@�
�
�@�
��
�@

�
� 84&"2$4&"2$4&"2#"'&'&7>7.54$ �KjKKj�KjKKj�KjKKj��d�ne���4"%!������KjKKjKKjKKjKKjKKjK.���٫�8
!%00C'Z���'���.W"&462"&462"&462 6?32$6&#"'#"&'5&6&>7>7&54>$ �KjKKj�KjKKj�KjKKj�h��я�W.�{+9E=�c��Q�d�FK��1A
0)����LlL��jKKjKKjKKjKKjKKjK���p�J2`[Q?l&�����٫�C58.H(Y���ee���	�

			���Y'����w��(�����O��'��R���@$#"&#"'>7676327676#"�
�����b,XHUmM�.�U_t,7A3ge
z9@xS���a�Q�BLb�(�	����V���U�����
!!!�=�����=���w)��������AU!!77'7'#'#274.#"#32!5'.>537#"76=4>5'.465!��KkkK_5 5�� �#BH1��`L

I���&�v6��SF���!Sr99rS!``� /7K%s}H���XV
��P��V	e��		V�d/9Q[ $547.546326%>>32"&5%632264&#"64'&""&'&"2>&2654&#";2���P���3>tSU<�)tqH+>XX|W��h,�:USt��W|XX>=X*
)���)
+�^X^�|WX=>X�:_.2������//a:Ru?�
	
Q%-W|XW>J�(	�=u��>XX|WX�`

*((*


+2		2�X>=XW|E��03>$32!>7'&'&7!6./EU����noh��i����I\�������0<{ >ORD��ƚ�~�˕V�ƻ��o�R C3��7J6I`��Tb<�^M~M8O����	�	
5!#!"&!5!!52!5463	^B�@B^���`B^�^B `��B^^"�����^B��B^��0;%'#".54>327&$#"32$	!"$&6$3 ##320�J�����U��n��L�n��ʡ���~~�&��q�@�t�K�����L��}�'`� -
-�ox����nǑUyl}��~������~�F����ڎ�LlL��t�`(88( ��	7!'	!���\W�������\���d;����tZ�`_��O��;���}54+";2%54+";2!4&"!4;234;2354;2354>3&546263232632#"&#"26354;2354;2354;2�````��p�p��`�`�`� !,! -&M<FI(2�`�`�`�����@PppP���pppppp�#  #
�
�pppp��p	�j#"'&=!;5463!2#!"&=#".'.#!#"&463232>7>;>32#"&'#"!546���	��%. `@��` :,.',-���Xj��jX�h-,'.,: kb>PppP>bk .%Z �&�
�:k%$> $`��`6&L')59I"Tl�ԖlT"I95)'L&69Gp�pG9$ >$%k:��!+32&#!332 $&6$ ~O8��8���O�����������LlL�>pN
�����
i������LlL����	'':Ma4&'#"'.7654.#""'&#"3!267#!"&54676$32#"'.76'&>$#"'.7654'&676mD5)
z�{��6lP,@Kij��jOo�Ɏ���ȕ>>��[t��a)GG4?a�)
ll
>�;_-/
9GH{�z�yN@,K�ԕoN��繁������y��!
?hh>$
�D��"
>��â?$��	n"&5462'#".54>22654.'&'.54>32#"#*.5./"�~��~�s�!��m�{b6#	-SjR,l'(s�-6^]It�g))[��zxȁZ&+6,4$.X%%Dc*
&D~WL}]I0"

YYZ��vJ@N*CVTR3/A3$#/;'"/fR-,&2-"
7Zr�^N��a94Rji3.I+

&6W6>N%&60;96@7F6I3���+4&#!"3!26%4&#!"3!26 $$ ��������^����a�a`@��@����^����a�a�����'7  $ >. %"&546;2#!"&546;2#/�a����^�����(�����������������^����a�a����(������N@��@�����4&#!"3!26 $$ @��@����^����a�a`@����^����a�a�����'  $ >. 7"&5463!2#/�a����^�����(��������n@����^����a�a����(������N@���%=%#!"'&7!>3!26=!26=!2%"&54&""&546 �#��#]V�TV$KjK�KjK$��&4&�Ԗ&4&�>��9G��!�5KK5��5KK5�!��&&j��j�&&����#/;Im2+#!"&'#"&463>'.3%4&"26%4&"26%6.326#>;463!232#.+#!"&5#"�5KK5sH.�.Hs5KK5e# )4# %�&4&&4&�&4&&4&` #4) #%�~]�e�Z�&�&�Z�e�]E-�&��&�-EKjK�j.<<.�KjK��)�#)�`"@�&&�`&&�&&�`&&�)#�`)"�d�Xo&&oX�G�,8&&8!����O##!!2#!+"'&7#+"'&7!"'&?63!!"'&?63!6;236;2!2�@�@�8��@7

8��Q�
	N�Q�
	N��
	8G@��

8GQ�
	N�Q�
	N7
	�������8��8��H��H��k��%		".>2I�������2�0�]@��]��@o�����o@@o�����o㔕����a�22���]����]�p�^���|11|�9�9�|11|�(��%7'7'	'	7T���� d���lt��l)q��n�������luul�������)1$4&"24&"2 &6 +"&5476;2 &6 LhLLh�LLhLLhL����>�
�� �&
  �&�`����>�hLLhLLhLLhL�����>����&�&�����>��G��
	.7)1!62	1!62h��e�������2�20e���2�2>�	v
+4�	[��d����+
���d� �135#5&'72!5!#"&'"'#"$547&54$ ���Eh���`X����(����cY���z�:L:�z���Yc��������\$_K`Pa}��f��iXXiޝf���a���	���(+.>#5#5!5!5!54&+'#"3!267!7!#!"&5463!2����U�`��`' ����� �����j��j�V>�(>VV>�>Vq����������������(^����(>VV>�>VV�=&'&'&'&76'&'&.' #.�h8��"$Y
''>eX5,	,Pts�K�25M�RLqS;:.K'�5�R

Ch���h�����R�t(+e�^TT���u B"$:2�~<�����2�Hp����wTT�� V�/7GWg. %&32?673327>/.'676$4&"2 $&6$   $6& $&6$ d-����-�m	
	,6*6,	
	m���KjKKj�o������oo���K����zz�8�zz�Ȏ������LlL�U4>>4-.��YG0
)�xx�)
0GYޞ.�jKKjKq���oo��oo�lz�����zz�8�0������LlL��D��/7H#"'.7'654&#"'67'.6?>%"&46227#".547|D,=),9#�7��[͑�f�x���!X: �D�$+�s)�hh�i��jZ������t�<��F/��*8C,�q؜�e���\�r,W�BX���/C2��h�hh���=�t������Xm�����>NZ+"&=46;2+"&=4>7>54&#"#"/.7632  >. $$ p��=+& �35,W48'3	l
z����ff���ff�����^����a�aP���2P: D#;$#
$*;?R
��Cf���ff�����^����a�a��'�Y	>O`"&5462&'.'.76.5632.'#&'.'&6?65��\\�[�<C��z�C
25�U#
.�ZK ��m+[$/#>(	|�	r���[A@[[@A�#2#�
����7�*
<Y���$
+}"(��
�q�87] F 	_��1)
��	�	#1Ke34&+326+"&=!#!"&763!2#!"&5463!2#>?4.'3#>?4.'3#>?4.'3��Xe`64[l�����7
��
,	L;�����=+3&98&+)>�>+3&98&+)>�=+3&88&+)>	�Wj�|r�>Q$��~���d$kaw+-wi[[\�;/xgY$kaw+-wi[[\�;/xgY$kaw+-wi[[\�;/xgY���J\m�4.'.'&#"#"'.'&47>7632327>7>54&'&#"327>"&47654'&462"'&476'&462"'&47>&'&462i$		$^"

%%

"^$		$W "@9O?1&&18?t@" W�&%%&4KK�6pp&4���6ZaaZ&4mttm�^x	-���-	x^=/U7Ck���kz'[$=�&5%54'4&K�K�4r<r4&��X��4[��[4&m����m��'/7?GOW_gow����"264$"264"264"264$"264"264$"264"264"&462"&462"&462"&462"&462"&462"&462"&462"&462"&462"&462"&462�^^�^��^^�^^�^^�^��^^�^��^^�^���^^�^��^^�^^�^^�^� p�pp�pp�pp��pp�pp�pp�pp��pp�pp�pp�pp��pp�pp�pp�pp��pp�pp�pp�pp��pp�pp�pp�pp�`^�^^�^^�^^�^^�^^��^^�^^�^^�^^�^^�^^�^^�^^�^^�^^���pp�pp�pp�p��pp�pp�pp�p��pp�p���pp�p��pp�p���pp�p��pp�pp�pp�p��pp�pp�pp�p	��LTi{�"&4626"&462$"&462#"&4632654>7>54 "&54>2"&462%"&54&#""&546 %#"&'&'.7>#"'&'.7>�&4&&4�&4&&4SZ��&4&&4�4$#&�&&j�3$"('$������&4&[���՛[��&4&&4F&4&�]\�&4&�$��
	!D�4�%	,\�4�4&&4&�4&&4&-�Z�4&&4&;cX/)#&>B)��&4&�j9aU0'.4a7����&&u՛[[���4&&4&@&&]��]&&��Ώ0
�u4��0
)�4���#g�&'.#"32676%4/&#"326'&#"2632#2+&'%#"'&6?676676632%#"'&6767#"&'&6767#"'.7>327"#"&'&6763"'.7>;7632;>%5K$
"0%>s$
"0%>;;>%5K�VL#>H30
\�($$(�\���(�є�yO2F/{�(?0(TK.5sg$��є�y#-F/{�$70(TK.5sg$L#>H30
\�($$(�\#�(@5"'K58!'"5�8!'"55"'K#dS$K		K$Sdx#@1
w�d>N;ET0((?
-
2K|��1
w�����d#N;ET0$(?
-
2K$#dS$K		K$Sdx�DN\2654& 265462"2654 #"32654>7>54."/&47&'?62 &4&���&4&���h�՛[&4&r$'("$3�j&&��&#$4[����"�@��GB�[�
"�&&��Β&&]���[��u&&����7a4.'0Ua9j�&4&�)B>&#)/Xc;u՛����"�"
�G�i[����Xh#"&54676324&'&#"'>54#"32#"54>54'.#"32>7>767632326#!"&5463!2b
)
:4FD�N

[�1�,^�J��K-*E#9gWR�Yvm0O	��w�@w��w�w��C2�2c@X�&!�9{M�A���_��"S4b// DR"Xlj�PY<	�@w��w�w��%���e4.#"32>7676#'.#"#"&54>3232>754&*#"&54>763 >32�
''il$E/
@�P@��
^��`��'W6&�!.. ! -P5+


�E{�n46vLe�Vz�:���,SN/
M5M[��
	]$�[��^��5�iC'2H&!(?]v`*	��l�	��b��$9>
���=R�2
#"&5467%!"&7>3-.7>;%.7>322326/.76/.'&6766/&/&#"&676	&676&6766/&672? �=1�(H/ ��	'96&�@)9<'���)29%
�&06#���#��$� J� �07j)�5@�"*3%�"!M
��%#K�"%N�e8)'8_�(9�.<�c +8 8(%6 <)'4@@)#-<^
?%$-`%.
}Q!&�}%&N�-l���IJ�;6>/�=*�%8!Q ���#P"�\Q#N&�a��)<9�bR]mp%"'.'&54>76%&54763263 #"/7#"'#"&/%$%322654&#"%'OV�9
�nt
|\d
ϓ[��nt
|@�D:)��	
;9�8'+|�j�," �41����CH^�nVz(�~R	�9�\'	�r�

@����L��@�
	@�w4�6�HI(+�C
,��55,��
f[op@�\j�;(zV~����i/5O#"'&54>32&#" 654'67'"'>54''&'"'6767&546767>7���蒓��`V BM���R� B9)̟�!SH-77I�Xm�SM�H*�k#".o;^J q�ן���ד��>@�����YM
$bK���d ��ү[E"����;���Kx%^�6;%T,U:i�m=Mk���).DT4'"&5463267&#" 6;64'.'4'>732676%#!"&5463!2),�蛜s5-<A���4ϲ
2W9
�&P:\�3)SEPJ��D4:3NI�w�@w��w�w��NE	2@u��us�+,�����/?x�sa�tmP�'�)fHVEA(%dA4w&4J5*�@w��w�w�����O[4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76 $$ �Cf'/'%($�U�L
(
#'/'@��3#@,G)+H+@#3
����^����a�a�X@_O#NW�#O_�.*	##(��^����a�a����q�[632632#"&#"#".'&#"#".'&54767>7654.54632327&547>P��9	B6?K?%�O4�T% >6>Z64Y=6>%S�4N�$?L?4B	@���{:y/�$ ,'R�!F!8%
#)(()#%:!F �Q'+%�0z:�z���O_4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76#!"&5463!2Cf'.'%($�V�M
)
#'.'@��
3
#A,G)+H+A#
4
��w�@w��w�w��XA?4N$NW�&M&L�/*
##	+�@w��w�w����	O$>?>762'&#"./454327327>7>	EpB5
3FAP/h����\�/NG�S�L�	� ���R�P*��m�95F84f&3Ga4B|wB.\FI*/�.?&,��5~K %
&��Y."7n<	"-I.�M`{�ARwJ!�FX^dj''''"'7&'7&'7&'7&547'67'67'67'63277774$#"32$			*��'ֱ,?�g=OO&L&NJBg�;1��'����'ֱ.=�gCIM
$'&&NJBg�=.��%�����w؝\\��w�
�I�o�o��<�<���-NIDg�=/��%����(ײ+A�hEHO*"#*OICh�=/��'����(ֲ/=�h>ON.��]��xwڝ]��������7��e��[���@�����)6!!"3#"&546%3567654'3!67!4&'7S��gn�y]K-�����#75LSl>�9���V��%�cPe}&H�n��_�HȌ����=UoLQ1!��4564���7U�C"�
�!-9[nx��"&46254&"326754&"326754&"26754&"26#".547632632626326'4#"#"54732764&"264.#"327632>#"'"'#"'#"&5#"'67&'327&'&54>3267>7>7>32632632T"8""8�)<())�(<)))�)<))<)�)<))<)T�د{ՐRh�x=8 78 n 81
p��H_6�S��oc
�F@b@?d?uK�bM�70[f5Y$35KUC<:��[;+8 n 87 8/8Zlv]64qE 'YK�0-AlB;
W��#;WS9
&�(#-7Z�://:/�Tr++r,,r++r,,r++r,,r++r,,ʠ�g��xXV�ע��e9222222^�K�Vv���F0�2OO23OO��`�lF;�mhj84D�ro��B@�r+@222222C0DP`.�r8h9��~T4.&o�@9��1P���%14'!3#"&46327&#"326%35#5##33 $$ ����}Pc��c]<hl���ࠥ�Ymmnnnn���^����a�aw!�LY�Ə;ed����wnnnnnv�^����a�a��%�'#"$#"#.5462632327>321��I��U�Π?L���L?��cc�4MX�&��04;0��XpD[��[DpD,)&&�Q	9V\�26&".'&'&6?.#"#26327677>'32>&3#'&+"?626&"#!'.'!"&5463!>;26;2!2�P  P 	
92#.}S�P9:�:%L\B�� )spN/9oJ5 
!+D�`]�Bg�Y9�+�,�9%
Pk4P  P &�NnF!_7*}B<�{o0��&&�B;*<@$ucRRc�#@16#37c&�@@@
J"@*4�^`E�D�B�����o/8927
*@O�LC�!T!32�3X$�BJ@@@��&AS
0C59"'D/&�&D488$5A&�%O#!"&547>7>2$7>/.".'&'&2>^B�@B^>FFz�n_0P:P2\n�zFF>��R&�p^1P:P1^��&R
P2NMJMQ0Rr�.B^^B�	7:5]yPH!%%"FPy]5:7	���=4�QH!%%!H�t4=�<"-/ ?�1Pp+".'.'.?>;2>7$76&'&%.+"3!26#!"&54767>;2�'
+�~'*OJ%%JN,&x�'%^�M,EE,M7�ZE[��P*FF*P��:5
�
�^B�@B^){�$.MK%%KM.$+��X)o3"�a  22!]�4	I�>"">�,�&�S8J�B##B��12�`
��`B^^B�8&ra#11#$��R&��"&.2v%/%''%/%7%7'%7'/#&5'&&?&'&?&'&7%27674?6J�"�����0�<=���_gNU�?D��f���u�Y����G�b���7=^H^�`	�=v~yT������3����G���D��P�O	4F��ѭ����q������i_w\ހ�!1u�S���%V_-d�
���1=U{J8n~�r����'U4.#".'"3!264&"26+#!"&5463!232+32+32�0P373/./373P0T=@=T��֙�֙|`^B�@B^^B�B^`````*9deG-!

!-Ged9Iaa�l��lk���O��B^^B�B^^B�������	+Yi"&54622#!"&54>;2>+32+32+#!"&5463!2324&#!"3!26�֙�֙0.I/ OB��BO	-Q52-)&)-2�
``

``

`^B�@B^^B�B^`
�
�@

�
|k��kl����"=IYL)CggC0[jM4				
�
�
�
�
�B^^B�B^^B�
�@�

�@
���!1AQu4.#".'"3!24&"254&#!"3!2654&#!"3!2654&#!"3!26#!54&+"!54&+"!"&5463!2)P90,***,09P)J66S�����"��@��8��@^B��@�@��B^^B�B^U�kc9		9ck�U?�������@@88@@N�@B^````^B�B^^���!1AQu�#!"&4>32>72"&462#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!546;2!546;2!26#!"&5463!2J6�6J)P90,***,09P)������"��@��8��@�
�@

`@@`
�^B�@B^^B�B^ՀUU�kc9		9c�������`@@�88�@@�2�

�@
````�@B^^B�B^^�(%.'"&' $&  #"$&6$ ��wC�ιCw�jJ~J�����>��������LlL�ś�JSSJ͛����>����6������LlL���$,  $&6654&$ 3 72&&  �lL������m�z�����z�B�l������>�������KlL�G���zz���G���>�����'7#!"&54>7&54>2  62654' '3�/U]B,ȍ����,B]U/OQ��н�Q������>�+X}��������}X�0b�Ӄ��ۚ�Ӆb0}�h��QQ��h�����>��f����f��#=#!"&4>3272"&462!3!26#!"&5463!;26=!2J6�6J)Q8P�P8Q)��������
�
�^B�@B^^B`�`B^V�VV�ld9KK9d��������`��
�@B^^B�B^``^���+;K[eu4.#"'"3!264&"254&#!"3!2654&#!"3!26%54&+";2654&#!"3!26!54&#!"!#!"&5463!2�"D/@�@/D"?,�,?�p�pp�p�@�����@����@����@�^B�@B^^B�B^D6]W2@@2W]67MM��pp�p��@@@@@@@@n`�@B^^B�B^^���+;K[eu#!"&54>3272"&462#!"&=463!2%#!"&=463!2+"&=46;25#!"&=463!2!3!26#!"&5463!2�?,�V,?"D/@�@/D"�p�pp�p�@�����@����@���
�
�^B�@B^^B�B^D7MM76]W2@@2W]֠pp�p��@@�@@@@�@@��`��
�@B^^B�B^^��A#"327.#"'63263#".'#"$&546$32326�������J9"65I).!1i���CC�u
+I�\Gw\B!al���݇���y�ǙV��/]:=B�>9�����+<F+a[le���Pn[A&JR7t�)��+�tH�������kFIK�e	� .��#"'&'>32%#!"&5463!2#"&54>54'&#"#"54654'.#"#"'.54>54'&'&543232654&432#"&54>764&'&'.54632� ?c��'p& ?b1w{2V	?#��&#9&�CY'&.&#+B

: &65&*2w�1GF1)2<)<'

(
BH=ӊ:NT :O	�)4:i F~b`e!}�U3i?fR����UX|'&'&I�c&Q
	*2U.L6*/
L:90%>..>%b>++�z7ymlw45)0	33J@0!!TFL����� P]=GS�-��kwm	!����*�(%6&692? $&6$ ��	' ����al�@l�������LlL���,&��EC
���h�$�������LlL���
/37;%"&546734&'4&" 67 54746 #5#5#5�p�pF:�:F�D<p�p<D�
����������
���������PppP<d��ud<M�-PppP�-�M����������Dž����9���������
/37;%"&546734&'4&" 67 54746 #5#5#5�p�pF:�:F�D<p�p<D�
����������
���������PppP<d��ud<M�-PppP�-�M����������Dž����9���������
/37;%"&546734&'4&" 67 54746 #5#5#5�p�pF:�:F�D<p�p<D�
����������
���������PppP<d��ud<M�-PppP�-�M����������Dž����9���������
/37;%"&5467534&'4&" 67 54746 #5#5#5�p�pF:�:F�D<p�p<D�
����������
���������PppP<d��d<M�-PppP�-�M����������Dž����9���������	+/37%"&54624&'4&" 67 54746 #5#5#5�p�pp�p�D<p�p<D�
����������
���������PppPOqqOM�-PppP�-�M����������Dž����9����������&.6>FNV^fnv~����"/&4?.7&#"!4>3267622"&4"&46262"&42"&4462"$2"&42"&4"&46262"&4"&46262"&42"&4$2"&42"&42"&4�

��

R

,H8Jfj��Q��hj�G^�R,

!4&&4&Z4&&4&�4&&4&��4&&4&&4&&44&&4&��4&&4&Z4&&4&�4&&4&��4&&4&�4&&4&��4&&4&&4&&4&Z4&&4&Z4&&4&

��

R

,[�cG�j�h��QRJ'A,

��&4&&4Z&4&&4Z&4&&4Z&4&&444&&4&�&4&&4Z&4&&4Z&4&&4Z&4&&4�&4&&4Z&4&&4Z&4&&4&&4&&4Z&4&&4Z&4&&4�%-5=EM}���������+"&=#!"'+"&=&="&4626"&462&"&462"&462&"&462&"&462#!"&=46;4632676/&?.7&#"!2"&462&"&462&"&462"&462&"&462&"&462"&462&"&462"&462��@?A�A?
@
�@R.�..R�@`�jlL.h)*��*$	%35K���..�..�.����u�vn�u���....��@@�j�N *��*.t2#K5���..R..R.��
@Hq '&'&54 &7676767654$'.766$76"&462&'&'&7>54.'.7>76�����������ȵ|�_ğ��yv���/ۃ�⃺����k]
:Bu�q��
CA
_k�ނ���XVo�bZZb�nW��|V	0 	Q2��-�
l��}���O		/	:�1���z	
q��%������z�G
4(

6�Ro�aą\�<

)4	J�}�������%!!#!"&5463!2�^B�@B^^B�B^�`�@B^^B�B^^���%#!"&=463!2^B�@B^^B�B^�B^^B�B^^�&))!32#!#!"&5463!463!2��`B^^B��^B�@B^^B`^B�B^�^B�@B^��B^^B�B^`B^^���#3%764/764/&"'&"2?2#!"&5463!2��

��

�

��

�

��

�

��
s^B�@B^^B�B^ג

��

�

��

�

��

�

��
�@B^^B�B^^���#'7"/"/&4?'&4?62762!!%#!"&5463!2�

��

�

��

�

��

�

��
�
�^B�@B^^B�B^��

��

�

��

�

��

�

��
��`�@B^^B�B^^�	! $&6$ .2�r��`�������LlL�f4��������LlL���#.C��&>"'&4762"/&4?62'"'&4762%'.>6.'.>6'>/>76&'&.'&7&'">?4'.677>7.>37654'&'67>776 $&6$ (4�Z�##
&##
&y�"�6&.JM@&� "(XE*$+8
jT<l$3-V<
2'.


-1
%#e"!Z�
+*)H	 8
(j

	#*
-ƷVv/kh?'��������MlM�$($�R#

&
"
#'#vZ@+&MbV$
�
G7
--)

R2T�
313dJ6@8lr2_�5m/."�G:=	)%5f0gt*2)?;CB66&, �	`48]USy������LlL���G6?>?3#'.'&!3!2>?3.'#!57>7'./5!27#'.#!"g�%%D-!gg<6W��WZe#1=/2*]Y3��-,����C1/Dx���] VF��I�q-H�����D2��NK'>*�%�R=f
07���=.
fD�]\|yu���,0>Seu#2#"'&5<>323#3#&'#334'."#"+236'&54.#"5#37326#!"&5463!2�		<	��zz�j��k-L+� )[$�8=".un/2 �^B�@B^^B�B^�5cy	
�
��(�ݔI�(8��?C�(3�>�� #"��($=�@B^^B�B^^0�K�S�&'.'&'./674&$#">&>?>'76'# "&#./.'7676767>76$w
.~ku�BR�]� T%z+",�|�ޟ���j<���)(!(	~ˣzF8"{���%%#5����)��}''�x��JF��0"H[$%��EJ#%
.Gk29(B13"?�@S)�5" �#9����dm�W"��;L�65R�A0@T.���$�}i`:f3A%%
BM<$q�:)BD	aa%`�]A&c|	�M��s!
Z
2}i[F&���**
< ��ʣsc"J<&Ns�F%���0@Wm6&'.6$.7>7$76".4>2.,&>6'"'&7>=GV:�e#:$?+%

q4����g
&3h�T`Zt�Q��м�QQ��м�pA������P1L������K!:<��}҈`d��l��b�,�9'


%%($!
���a3���)W)x
�������
о�QQ��о�QQ���cQ����ǡ-�җe)U�s2����XD\���ϼ�Yd����/?O_o���#"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543%#!"&5463!2++532325++532325++532325++532325++53232�p00pp00pp00pp00pp00�8(��(88(@(80pp00pp00pp00pp00pp0� � � � � ��@(88(�(88� �� �� �� �� �/�Q�/&'%&/"&=.6?&?&'&6?'.>-#".6?'.>'&6'.>54627>%>76#"'%
%6��

2�7
2G
f���!)p&4&p)!��f
G2
7�2

��	*6���	"��
4�7
2G
f�!)p&4&p)!�f
G2
7�2

��"	���6*	�!k
3

j�&3
%,����*��&&ր*�9���%
3&�j

3
k!./!>��>$,*!k
3.j�&3
%�Ԝ9�*��&&ր*�ǜ,%
3&�j

3
k!*,$>��>!/.�&6.'&$	&76$76$�P��utۥiP��u��G��xy
��Զ�[xy
�-���_v١eN��uv١e	��=��u�ʦ�����[t7��8�X�
&6##'7-'%'&$  $6 $&6$ ��3��1�N��E0�����g��R�=|�����||�">"��������LlL����^��v!1f2i��Ђwg�fZQ�Q^>"�||�����||�w������LlL��&�Z�Xblw��������.'&>'&'&".'.'&&'&'&7>767>67>7626&'&>&'&>'.7>.676'&'&'&'.67.>7>6&'&676&'&676.676&'&>&'&676'.>6/4-LJg-$	6)j2%+QF)�b3FSP21DK2�AW")")�$??8A&A�E5lZm��=g�G2Sw*&>$5jD ���GH�yX/4F �r	1
	1�"�"!�l=6>��	6
,5./��'e



.*�|�Ed!
u&�&%&��	&��5d	
���))66@�C&8B@q��L?P^7	G-hI[q��:<�rS	U~97A_�IR`gp1	1	�;"("j?>"�T�6
,6 
&/`���LwQ'�	
��A	^	�	�	"�		$&	_	��	y		�	*�	<Copyright Dave Gandy 2016. All rights reserved.Copyright Dave Gandy 2016. All rights reserved.FontAwesomeFontAwesomeRegularRegularFONTLAB:OTFEXPORTFONTLAB:OTFEXPORTFontAwesomeFontAwesomeVersion 4.7.0 2016Version 4.7.0 2016FontAwesomeFontAwesomePlease refer to the Copyright section for the font trademark attribution notices.Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeFort AwesomeDave GandyDave Gandyhttp://fontawesome.iohttp://fontawesome.iohttp://fontawesome.io/license/http://fontawesome.io/license/����������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab�
cdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������"	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS�TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������glassmusicsearchenvelopeheartstar
star_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflag
headphones
volume_offvolume_down	volume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_height
text_width
align_leftalign_centeralign_right
align_justifylistindent_leftindent_rightfacetime_videopicturepencil
map_markeradjusttinteditsharecheckmove
step_backward
fast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_left
chevron_right	plus_sign
minus_signremove_signok_sign
question_sign	info_sign
screenshot
remove_circle	ok_circle
ban_circle
arrow_leftarrow_rightarrow_up
arrow_down	share_altresize_fullresize_smallexclamation_signgiftleaffireeye_open	eye_closewarning_signplanecalendarrandomcommentmagnet
chevron_upchevron_downretweet
shopping_cartfolder_closefolder_openresize_verticalresize_horizontal	bar_charttwitter_sign
facebook_signcamera_retrokeycogscomments
thumbs_up_altthumbs_down_alt	star_halfheart_emptysignout
linkedin_signpushpin
external_linksignintrophygithub_sign
upload_altlemonphonecheck_emptybookmark_empty
phone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificate
hand_right	hand_lefthand_up	hand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilter	briefcase
fullscreengrouplinkcloudbeakercutcopy
paper_clipsave
sign_blankreorderulol
strikethrough	underlinetablemagictruck	pinterestpinterest_signgoogle_plus_signgoogle_plusmoney
caret_downcaret_up
caret_leftcaret_rightcolumnssort	sort_downsort_upenvelope_altlinkedinundolegal	dashboardcomment_altcomments_altboltsitemapumbrellapaste
light_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefood
file_text_altbuildinghospital	ambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_down
angle_leftangle_rightangle_up
angle_downdesktoplaptoptabletmobile_phonecircle_blank
quote_leftquote_rightspinnercirclereply
github_altfolder_close_altfolder_open_alt
expand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcode	reply_allstar_half_emptylocation_arrowcrop	code_forkunlink_279exclamationsuperscript	subscript_283puzzle_piece
microphonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchor
unlock_altbullseyeellipsis_horizontalellipsis_vertical_303	play_signticketminus_sign_altcheck_minuslevel_up
level_down
check_sign	edit_sign_312
share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfile	file_textsort_by_alphabet_329sort_by_attributessort_by_attributes_alt
sort_by_ordersort_by_order_alt_334_335youtube_signyoutubexing	xing_signyoutube_playdropbox
stackexchange	instagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_down
long_arrow_uplong_arrow_leftlong_arrow_rightwindowsandroidlinuxdribbleskype
foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380
plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2C0uniF2C1uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7_698uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EE����=���O<0�1h�widgetkit/fonts/FontAwesome.otf000064400000407230152177723720012654 0ustar00OTTO
� CFF 9s�7���EPAR(�l0OS/2�2z^��`cmapǢT��head���6hhea
��P$hmtxJ+��t
�maxp�P
`name>$#
h
postx FontAwesomeC�������������	�U�6����U�6���2�2���
�",04<>EGMT\_ehmqy}�����������������#)4>HT_lp{������������������
'4=GRYfoy��������������
&,39COVcoz������������"/5;FPUZes}���������������&+16<EOW_hmqv|����������������)04=DPX\aju����������������(,26GYhy���������������%16;>EMUckox��������������				$	5	G	V	g	l	p	v	�	�	�	�	�	�	�	�	�	�	�	�	�




&
*
-
0
3
6
9
<
?
B
F
O
_
c
u
�
�
�
�
�
�
�
�
�
�
�
�
�&5BQafmty�������������������!%)-159=AHLPTX\`dhlptx|������������������������������






%
,
3
7
;
?
C
G
K
O
V
Z
^
b
f
j
n
r
v
z
~
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�	
!%)-159=AEJNRVZ^bfjnrvz~��������������������������������
"&*.26:>BFJNRVZ^bfjnrvz~�����������������������������
"&*.29@GNU\cjqx������������������ '.5<CJQX_fmt{������������������ '.5<kvglassmusicsearchenvelopeheartstarstar_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflagheadphonesvolume_offvolume_downvolume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_heighttext_widthalign_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencilmap_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_rightplus_signminus_signremove_signok_signquestion_signinfo_signscreenshotremove_circleok_circleban_circlearrow_leftarrow_rightarrow_uparrow_downshare_altresize_fullresize_smallexclamation_signgiftleaffireeye_openeye_closewarning_signplanecalendarrandomcommentmagnetchevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontalbar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_altstar_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_signupload_altlemonphonecheck_emptybookmark_emptyphone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificatehand_righthand_lefthand_uphand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilterbriefcasefullscreennotequalinfinitylessequalgrouplinkcloudbeakercutcopypaper_clipsavesign_blankreorderulolstrikethroughunderlinetablemagictruckpinterestpinterest_signgoogle_plus_signgoogle_plusmoneycaret_downcaret_upcaret_leftcaret_rightcolumnssortsort_downsort_upenvelope_altlinkedinundolegaldashboardcomment_altcomments_altboltsitemapumbrellapastelight_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospitalambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_downangle_leftangle_rightangle_upangle_downdesktoplaptoptabletmobile_phonecircle_blankquote_leftquote_rightspinnercirclereplygithub_altfolder_close_altfolder_open_altexpand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcodereply_allstar_half_emptylocation_arrowcropcode_forkunlink_279exclamationsuperscriptsubscript_283puzzle_piecemicrophonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchorunlock_altbullseyeellipsis_horizontalellipsis_vertical_303play_signticketminus_sign_altcheck_minuslevel_uplevel_downcheck_signedit_sign_312share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfilefile_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexingxing_signyoutube_playdropboxstackexchangeinstagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightapplewindowsandroidlinuxdribbleskypefoursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2C0uniF2C1uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7_698uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EECopyright Dave Gandy 2016. All rights reserved.FontAwesome�[_�������"+/37;TX_dhn���������������#'Prz�����������.26:@DHM����%*.48@ENUZ^}������/3�������������PW^cgl������8<FJ�������������CUajov{�������			@	J	Z	�	�	�	�	�	�	�	�	�	�	�


&
*
.
:
A
T
m
r
}
�
�
�
�
�
�
�
�
�;BFLTX_cinsz���������� .38@FKPp|�������������

&
E
d
m
z
�
�
�
�
�
�
�
�
�
�
�
�
�
%1=BGNU[e���������
#)-7=CJO]kr����������������):PUblqv|����������",5:BJOTgz���������������$6HZ]hs{�������������
 &,6@JTX`hnt|�����������������
)8@OSX\bhp~�����������������"/4;?FLSW\hmt����������������
',2=HS^elw�����*
�A
�T&������fA�V��
��T���l�f��P��������������z�z����
�P
���4�!
��t������
���
�����q
��q
�bt�&
y}}y�3���3%�3���3�
`z���T~����~���������������4���]
�Tg@Z
�4��
���
������R
��,�T[@��
��<���<4
,
^�2
���%�%�����%�%�����%�%��3�
�T<
�n�h@;�TN
���TI���TN
���C
KFKk�6
?����������J
��������
�
:
K,:
��y}���Tj
5
�/W
K$'�T$����V
L
v
��
�
L
6
f
y}}y�y}����������}y�lz||z%
��1
��
��������K�T���T�Y�=��|�zKz||zKz�|����������N
�
!�5�
�!��
�
�f�f�(
������������G
���
Q
3|�T|�T|��T�
�T�
�T��|zs�
R��������3��&'
'
<
@A
��������G
������������^
���[�=������
�T� /
3
c�-�`�V�}�h�n"����B�v
�����g
�O����G���
�`�E��}n\>l�g
����,�������������������h����h�@�@�h��E�Q��P
�|�z�@z||z�Tz�|���������|�z��z||z�Tz�|�����7
�F
���x�
����3�C�DRRDD��uy
;
�;
���5�!Jb���
h
����
�����5
�/������
�T���T �+
-tzux��u�[��Br�lmy�z�~���5�������q�s�������U��hnnh�hn����������nh���
��t��t��t�T
y}}yKy}���?
j3CC��
��
������5�;��(�=��Z�XW�G/�9�;���/�_M�knm��n9��:Y�I�Ƒ���P�`�q���������������~���d�_�i�r�c�rr�i��i�i����������y��
@�H���-�R
�'
�����
���T� �����1��<t0
��l�n�l||��}_zob^��^�b�z�����������M�<�M�<v��������������	�o�_��}|�|r
���
/�0
���]�}
���]�
���
�E�Q���y�
v�(�
��W���
��T/�T����
���
�j��i�h��{�t���*
�<���<�<���
��<+���B�����������
�����A�S� ����i�^wv�h�������v�i�^����S� �A��E�]�#���'
K(
��D
F�m���3�'!�����%�Ơ���#xM'�nq��w������d����������������o�^�]���
t
x
�1�!���!���������EQQE5������i��������'�Ty�}���������
�tV`�����
��
K��
�T�����
��
��
����t��
kb
K<����z�
X
�@3CC3�@���#P
����n�hQ
�h����������/�:�n�h��
��
���:�
���
���;x��t������u�l�TK�
1���
�0
���8�i8_dd_�~~�x�z�������������������ƅ����y���"�9��O��9�%������9�)��o�'�0�q�i�?�@�h�h�?�@�i�r�����C
�TFKk�Tr
P
��;���;�Y�S<��!��y�o�t�s�{tq�T/�T��g���5��[��
�F
��
��s
��*
�41
���������������������Z�Zr�w�h�)��S
�
-
v�v����z�z�����:
�t�t���t�t���t�t�
1
����7
�Ԏ���8�
����J����n�������������������+����t����m�y�;�
[�8�����
�����������
������hn�>�����~�w�~����~�w�~����������K�
=+�tX
�@]
�@g�Z
�t�V``V��;
��;��`���L����<��� �xra��������
Y�W�
@3�&��
~~�w�~@���������5!�����������}y�vKy�x}z��y����n
������T7rr�c�r����~�g
��hnnh����
���YYG
����P
�����~�����*���*�*���*�*���*�*���*=
�4�����
�4����������)
.@�����(�����[
�h
������������������P
����v��T�~z��$�j�
+�[
��<���<�5�!I
��4���*
�A
C
�7
�r
C
��7
@r
b
�!�6��g������T����E ��
��ˋ�������h�3�/�����{�V=��������������n���������������\�n���]������������9�
��v���������x�{�zz{��X
�����CZ�7)������D
�T���}�y�T8�TC
�T7
�Tr
���]�]��[
1��
��
����������
����7��������U������f�
�@��m���
����� �
��<
�Z�Z�������Z�Z�������{�B
����r�r�����z�{���
+
�T
<�Z��������:�������w��B��������D�$�$�D�����(�=`��h��Z����������TA
�
/��0
�����nh����&�&�����&�&�����&�&�����{��V��v�7�+�4��2�y�qpV``VV`��������J
���Y
M�Y��
}�
���>
��|z��nhyy�rrr�r�ypttp&pt��1��5
t�v�������'
K(
����
�����������;���;�����g
���
$�4��������y���������~�M���Q��������������s����Q�Dnt��y���������������������y���t��
��F�t��e�11e�BB������T�������������2
������
����������r��������I
�F
y����������'�&��K�
��w�_�_�c����������4��4�����4��4�����������p�]��R����
���G�T��TX
��������������x�����]�]��
 83��
���w�rrh�������h�@���;�f�v�eK\xcik�v�ss]tRat�7�+�4���4��7�&&����
7����
�V��(����-
hn�����D�$�$�D�
�,
�}�t��P
��`=��d��b��9�7�B��x����������������������t���3
�������?�L���g�__gg__�g��������������a��
������`�V������������������C3~�w��]������}
���y���6�%�6-��������������	�_�$��cX��~
�TR�V�2�2�V�V�2�2�V������P@��z�y�z����z�
������s�/A����v����������zz{���������������b
�������z����-
�
�����f�t����&
���3�
������
���]�]�EG�xZ�n�yt�P
P
�������������+�+P�,������������ʲ�������,�������
����
_h�m��x�����2
�
������������
����ˋ��
�
�
�d�4����������4
�T[�`�M���`�My}}y�T,�V���;���;�0
���&�&���T��
��3
��
����������t'.
%���@p
�)qt{t��s�o�y�����s�%�$����������33�3v�K�����
�4��4\~�v����
}jii�C�@�@�����x�~�C
��Kw5 !4���wk�z|��|,$P��+�+�
����������-
�������
�
���
�g�s��}���}y������������f����
����#�E���T�@��)W��b�it���
��S
���4X��wmx�yj�h�����o�fZedZdW
f�r
r�syy�'�&� �������������h�@�v� }�������������59������������2I�8��8��!����~			I	�
M
�
�?y���
*
�BP�|88;�l�]5��m����+\��<���b-�G_y����'>U��>c� R �!0!�","^"�#0#�$$q$�$�%%~&5&�'A'�))�*J++�,,m,�,�-�..1.�.�.�/P/�00�192�2�45q5�5�6<6�717x7�8h9�:S;x<<T<�==�=�?�?�@!@�AjA�B�C�D�E�F�G�HJH�IITNN�N�O"OxPPPPP�R-RvR�T�UGVV�V�V�WX1YXZ�[+[�\C]]�]�^�_+_9_G_o_�_�_�_�_�`�aaGb6b�b�cPc�d'd�eNfGf�f�g>g�h�h�i-i�i�j j�kwl%l�m7m�m�m�n$n;nOncn�n�n�n�o"o�o�pp&p>pXqq
q}rIr�s8s:s<s�s�s�t�u�v<wIwhw�xGx�y y�z&{6{u{�||�|�}�~~�~�~���C������M�����9��C�|�����2���8�V�����P���	�c����S�������O����I�������#�|����L���������`������m�
����P�o�������1�����*�x���������4�f�.��H����U�\���1����������'�C�w�����[���W��������(������b�������;������J�{���.�ŝ�Qƭ�fǮ�*����ʛ˗̉͌����|�`ϫ�Zҝ�(���Jտ���׻����p�9����D��9���������g�����t���g��,������q���?�����o�]��1�a�JC���0��g����	$

�N��
F.yq��4����+M�<�� �!>!�";"h"�##�$b%g&D&�''�'�'�'�'�((�)�*"*�+�+�,?,p,�-F-U4>4�5~5�66636>6�7	8"9�9�:-;F;�<9<�='=\=�=�>?Y@RA�B�DEAF�G�H(H�IImKGLL�M^NZO�PxQ@RS%SlS�V�W�X:XRX�X�YY]Y�Z�Z�[+[n[�\d\�]g^Y^�_2_�`5`�a�a�cBdd;dWdvd�e!ff�gog�hNh�ikj@j�k�l�m�n�o�p�qhr�t�ukvYwfx�zV{r|�}/~~�������U�����u�����[�������
�t����J�����~������������������3�J���#���������c�������$���;������������������������������������T��t� �T��T���4P
�4��� c�
��z���.���.Ȯ��h�K�h�<�Nh���-���
��
�����-N�<vhNK�hN�<�h���.���.Nhv<�N��N�vȮ���-���
�����-�hڠ�����v�N����v���4�4���T�
�4�4V``V�T<
�4�4��TA
�4�4M
����0������T���y�u��uyyu��u�y�����������y���?�j�`�,4�G��y�u�~�8������������գ����������YSKkj>h3c�#�
^u�i�����������ƭ��R��������������@2�A
��4
�����F�M�f��fM�Zn�n�w�������
�������������v��
�x
P
 �`�V��������c~ofa�[�!
�Y�������!
 �����
����
�T@
����������b����@�
���s�u�w�#��$���L��>�����������$��#�����������69�JX�"�!�!`V+/E��E+�V������1�R�F
����_r���
�Z���o�
���p�]����������t��
�k�s����u�[��z�tv�U������������Z
�tq���9�
�[��[�9����:�Q��Q��:M�q��k�s����u�[��z�tv�U������������Z
�Z�����J�����
��J����&��	���	��&���a�
�)���|
�����s
�Kw�����
����t�������
��w��4X
��]
��g@�
 �v��
������
�����
�������Y�T3
���Y���`�V��V``V�TV�`���������Գ
���
�T3
������Y�T3
����TV``V�T�;
��Y����TV``V�T�;
�T\�TV``V�T�;
����
��^���y����
�$�%�����
���I�������V��������h�h��������v���j���y�����������������y����
���������
���I���������I���V��������������V������������ ���V��
V��������
�t�tC
KF�t�tFKk�t�t�
�r
�t�t>
��@
�
 ���V��
������
��FKk��r
��@
�
���������
pP
�����t�W�&S�:�aR`S�:�a�)�)�6����z�
�6�)��õ��`�a�;�R`�W�&��t�����P����Q�EEQQE�E�Q��������������Y
���8
��&��8
��&�T�8
�T�&��8
�@�
e
���{
�����z��K���}�z�����������������a�E�V������������" n�m�l�o�L��{�y�ry}{�{O�J�Nl�l~n|�������i��&js�����������^�^�[{m~m�k�No|�y|�rz�{���Kp�i�j�ki\f_i]�����������Q�M�[�����������!��|�����Lz��~��r������Ǒ̒Ȫ���������������'������������f�g�i��������M��������m����������������������������([po����p���H��H�4���
�wO�V��VOcZwE�;����L��1�������H�u
 �v�
��t���������n��n�����t/��
������s������~��o�J�,z�W���`a�G�ah�c��~��v�~�A�������������H���H��������������������
���
���w
!�4��t�4����t��t����4�t��t��
��to
�T
�4�#
�)�v��TV���{�||��||���������N���������g���|��5����p�p����Ty�~}y�:y~�����T����ppur��5��|g�ccn�_��Tz}���������������y�}}z�T���� ���
����T�
�d��gf[wXX[��f���e�6
�
��t�q���T�K�T�����T�T�
�T�T������x�4���4�t8����
��z��T~����~���������������f���9x�4���4�t8��(���������������������������&
��T���
��T�������9�v��T�
����,�T��,�T���������h���X�h���������Ym���}������}c�h��hcqj}����}i�Vg�v��
�����w�����x�r�w�wvt��L��������������#
������P
���
����!�S�Y��
�y�l�D�&�������������������)�'C�3�$
��Y4����K
�Ti
������t�}�y�T|��}�zcesd�,.�9/�F����-���
1�T5
�T��
����"�Q>�W�����������������
����"�S�X�������5����z�|��[������������,�9�F��Z3����
�Ti
�������9
�����"��!
��!
�
�T�����������@�
���
��G�����
���v��T�i
���T����T�
�T��+�3
k�T���^�^�����^�^���Tk��c�����v
]�b�t�k�r
�������Kg
_�=��1ln��o����1�"�-SK�q~n}s{x}zs�z.�������;�3�n� �L��������� �v��T��T��V��T���/���W�W���/��!�(�Z�Mj���:�kD
��L
k+8V=_G�xɁ��������������H�KxMG�_8�+��������M������������r�������r����N�-������hnog?���
�
��?g�o���������� Gw���_
r����N�-������hnog?���
�
��?g�o�������������_��Q�P��o�x��}��y�C���Q�(Csyrp}t{xo^�������P��Q�_����K�����
��n�{�}�������|�z�x�8�
�S�`�`*�S�8�
qxozo||�{�}�s}|{n.��������
�K���������������
�������������
��
���
�x
��
�����������
����
���������
��
���� ����0m�� 8����
����������������v�v�ʪ�ʪ����ꪫ����������ʪ��骫������k��i�hvv�v�i��j�i����ʌ�����������
�����1�
����
w�������
����ʓ
����ʓ
������1�Y�������1�����������������������Q�
kl�l�������ʙ
�����F?������i��j�ivv�v�i��i�j����z
�)z
����_�^�X*�D�t��cX��_�^�s�jii}jtt�j�jh��s����������W
 m���
����g��|�v�t��y�w�x���og�`vf�/TF��w�����������������.��������q��ra�\��zz��z������aM{tsw�x�y�z�z�Vc,sj|wu��t�{�t�v�\h2p]�yx}�x�z�u�x�Wi:mY{pvz�s��~�{�s�w�w}e�_�^#��:��/�����������r�����8����"������ �����
�����
�������������4<
�4���K��4�"K���m�e��,�,�eB�V�4�
��K"44"�4k�t�4�:�4�t>
�)����T���3���3�3���3�3���3�3���3�T�4�tX��r=�E��E=UIrX��t����
tK��

�T��/
 ��,�Q�����i�ep�%�/��,�xx�x((��(���#�Ɏ���������	w�����������R��'������V��b���gfV�p��o�q�qq�������{����������\�/�j�}�}���Y�h�^��?�DF�G@�E�a�t������V@���h����a�%�-n�<����5���s��c���������sŔ�O��������5���*��V�JM���(0�x[[��_}�~􊢋��������%����������;�AH�W�{�'Q�bgf��g���
��F�I��G���������f�=��R��!��G������v�^]�^����z����8����'��n�\��PuH�#hPMqJ�K{�-�!ߜv���`�������Њ�����xġ���������M�M�N�������[�����������Đơ�ϦԖУ�������!!�!�����x$ǁΓ�m`r�;�n�i~G�h�ftnOlF�Kw�z6���������-�������������;�������p��6p�_�ph��6hp�o���;_}oh���6�h������6���}�_�����
�Ǐ��\����������|��}�Cy�	�^��^�^L���uZ�
����������������������q�����m����ept�c��CD�C��m����������
ǐ��]����������|��z��b|�|}3��mrS�
�6��6��7W��,��������
�"�����������������m����~yv}u�������������]� y�����]h��vp|�zww�z�v�����{����y{ ��������������|��p��hm
��R�<�0
���R�<P
0
��R��<�
i
m
��R�<�0
�������R�<�i
m
��1�<�0
��1�<P
0
��1��<�
i
m
��H
��H
��H
��������t�#���#����@�������w
��t\
�
�����������������������>
t�Tdw
��T���i���������F��y
�������������td��v�0��{�t������z{�~�'�&�9*
�T��T�3���3�T&�:�'�'~����
�)��T�T�������Tn����4�4�����4�4����Tt����|z�@���
���4kX
���S
�@g@�
m���� �
�����D����������������~��������������������~U�T����4�4�����������~�sj�iij}st�:�9�4�4�:�:�W
��
�
��
���{
����
�
N�L�T���_��p����������’��x���J
������ 
�����v�����P����P���������Ϡ������������H�G�w�w�srP��
�m�X�X�j��:���b�kkcv`~:���j��X;`Y;l-&P���y�y���Q
�����4����������S�+����,�,������|�������|�������������������������~���KK�������X����������������������������fc�c��Q+�4�4�4�����4�4�0�0����f��,�,f�M�ff//������ ���
��g���t�������}���{|y~w������j�X������������������|�z����h
"��Q�����2��{�z�����t�{tq�T�4� 7����\�3�u������������������l�z��*���� ��p�4�Tq�t��������������
 ���
�Jw���
���t����������������KK�������3CC��
��
���������������������G
���������������fc�c��Q�{������k���k�Y�kk������k�Y�kk��kk�Y�k�B�B�k��������������
����C
��
�
�����
�����
���-
�4����=�����
1���
��
�����
�������gs���v���������Z�v��Z� ���S���Z�v�Z�Z��Z�Z�r����Z�����h������l���vl�r|h��h�|��e
P
@g
���
��@��g
���
��i
e
P
@� �����
�Z�w�Z�Z�2�Z�Zr�w�h�Z�
���P
����
�Z�w�
�Z�
����������
�@�w�}����rr�w�������r�Z�Z����
�
���
�%L�.�����2�:�:��z�z��z�z�r�����:�:�2���������%L���'�2�z�z��:�:�����������:�:�
�z�z�������������
����p��������h
��H���� 
Z�������
��hn�����
���� 
e
}�2z�z11z���I�I�I�I{�zzz��1�����������I�I�I�I�����������������
���I�I�I�I��������1��zzz�{�I�I�I�I��{z��v 
�P
�����������z�z{z�����������������M
�v�v�,�+�M
�1��zz���6��
����T���
��4y}}y�Ty}���T��
�T���4�,#Q?`\pnZt�������ҫȧ����P�Kgjzx}wy\O������������~������#��7�@�T��K��T 
��t��t��t�4�
���4:
�T��
��+y}���4j
�����4��y}}y�Ty}���4��
�4��4 
��
����`�$���$`����$���`�$���
���$���$�����$`����$�<���Tg
�#Z�k�=�=�k��#��#�kZ�=�=Z�k�#<�#��k�=�=�kZ�#��#�k��=�=��k�#i
���]�������&�&�
�����
�&�&�������&�&�������&�&�k�K#
���g�2%�������'�'�%%������
�:�:�!8#
��t��
 ���������%��5�����6�&��{��S�j�����������jQ��h�[�=���<�<���=�>���
��>Kw��P
��^�C�T����������}�s�@��sk�iij}ss��t�v
j�t�� ��
��������}�s������TӸ��Kw������~�s����sj�iik}ss@@st��j�t�����TC^OG�G�O��T����s�v
j�s�@t���E��������� @w�K�������sj�iij~st��s�v
k�s�@s���������TC�^���Ǹ��T����s����������� @��K�T��@��sj�iij}tt�����T�
��
�T�����tj�iij}tsA@s�v
j�t�� t������ �W
��@��j{�����������t��,Q��a!���� �K��t�k�v��������������������q���C�t���
�����
e
���t�����
�������ԛ
��������4���
���*
�<���<�<���
��<+��!y}|z��
|���R�����T��|y��.}�|�y�Mx|��z������������p����������������
��������4�Hhnzh�Thn����h�T��T�hS�\��V`��f��y~���5���V``V�V��5�������`V���R�L����'�HMoZd��9��9�dM�H�''��e
�L(
��$�4���A
�4�u
��v��߈���
���/J�7�I[^_[Z_~}�yhn����������{�x�(���H���Z�f���7p\XT���H�aG��-���w��h�h�i�w�V�Q�Z:#v���z]��l���`���L{�l��{��,�+������\�^���˒�����1
��t�4C
��FKk@r
�������C��������N�.E���Ti����C�������k�h����T�������$�T�$������?���L������L���?�'���0�cGv=<���
v�c��0;���'�d�quuq�--��]
��������L��a������a��Lv�trr�t�v��L��a������`��L�������v���$�T�$���]�D�'�#�5�'���0�cGv=<�#��7���quuq�-.��]
���S������v-�y����U*�PN�O���_��Z~w�rsr�s�w��H�7�*�V3�ziU{������Q��������g�
�e��g�
�������S����������A��:�N�T����~�=�����L��=�&��0�����E��rA�������u�X��������������������5y}|y��
}���R����|y�R��
~�|�y�Mx|��z�]�����������p����������k�o�u`�\\`qbu����ud�[�dd��s�P
���������u����z``K�4K++�4�4�-�3���������������������������V�������
+*���������������Q�Q���������������듔����V�V�������������������������땓�����4�L�5�5���4K� �
�������4��
�˫��4�4��˫����
�����
�4�������������4����T�t��
�T�t��
�T�t���4�������4��K�
���
�G���t��������4���
������t�K�
���
�G�������q
��q
�bt��������.���"&��F�t8�t�+�
�
��������������+K�
�
Qc-b.T5���M�K����Tz�|������������sRrQnS�SL0��t8�t��������ĤŨ��������Ty�}���v�0����%�������%�����_��I�b�	\�;COLD|yz|�r�����s�{���������A��0����������%����e
P
�T�%�K�i�``�i��K��%�,����Q�Q����,����g
��
�/�����g
��
�/������
�a����r��z�y��z�yrr�b�r�:�9�r�������������
�:�9�k��
�l����r��:�9�����������:�9rr�b�r�z�y�
�z�y�)��
�����������4�T��������T@��������y�xxy�}�����||�g
�T�4�4r�d��Tr
��4g
�T�4�4���f�TF������4�T��������TB
|�|����}���������������� ��
��
�����p��Q�EEQQEE�Q����Q�EEQQEE�Q������g
�O����H���
�`�E��{l^@l�g
����,�������������h����� �v��
��4�
�4�
��&���Q�)�WW���X�g��3�
UGQ�� {y|ss^������
����� ��������
���
�������� ��/�����
�����T�����
�
�����
����1�4����=�����
1����i
�������
����
����
�����
��m����}
����������������������t����������������������������2o`gfbn��������h������.���������/�>�p�����������+�>�������|����R�i���������/8�C�����������rb�������{Zja_q���������V �O���m�|������
�P�C�������������4��4�T%V``V��
����L
�t�e�����P
����
���������T������
�����
�h���P
�
���T��T��T��T����
no��q�q�on��
�������������T�����f������t//tq�:�v++��������n�+�*�m�����m�*�+�n������3�3�V����y��p�p��v��-�����)m�v�v����
����
��>��{
����ERQDEQ��c
��ERQDEQ������QE��9���}��,����~��������������
�q������������
2s�r�q�t�-��}�}�N}�}�~Z�T�Yp�r�r~�������n��
pw�����������e�f�c~r�r�q�/s~��|~�M}�~���,s�o�p�pndmfne�����n�
 �s�����������
�������-}�����N����������������1��������������������k�m�o��������/�����������
`
��
>�a�����
B`
���
�aN����t������y���������6��$�7m��F��
�����d��I�.�3�W�W��-
��hn����
��fo1\��s�\ko��{�y�xx�<^��
�
�����U/�Sk��W���?Ÿ��������j�-����@�	�
+6�	����OG��o���
�	��D�ɝ��·�l��Z'�#ik}ts')��2OKebh`i_��mdG1dq��h�����W���m��]��a�"W����Y����������������
V��F�� �����e��
�G�.�3�O�׈����-
7�hn����
��GNOH���	�6�
�	t@�K̬�-*�o�s�r��^��?<kO����篞������
�O���Y�	O�x�x�y�t�R]׈s�sv�k�c\k}\vsO����1f��O��z�k������O��~�r�������v�d�����O����J��.�eY�$�n:mo��O�h������q�1�d�_�`�c�Jl�2�)t��}�����Ǐ���y�m��D׈��
�	���83�������v���b��@�K�M�>����������M�>�K���R�4�)�<�5M��n����ɿ�<�5�)�4�RP����
���p�]����������o �u���d�r����
�T�������~ϧ\
�ԕ�T�3���3���~ϧ�4���
����J�������{��{���{������J�{�J�� IYU:��=Y��Ͽ��ڼWG��� ��j�8Ke`bz�|�vw��{���	�̋�{&������,�(�i�"���z ���
�����4�t�4��
�T,
L
�T�4���8��0�����Q�E�EQQEE�Q������0�8.�(�y{���������������w�Ai
����
��
t���
��X�Ti�TQ��g
��B
�4�D�D� � G
��U� � �D�D��
�����t����
���*
��^�Gof��������Tp
��^�Go�
��& ���
�������8�^�!�Y������1���/���)���Yb���1��+���3
���X
��]
+��V``V��R�z�f��|�X�m�}�[�YKKkK+++K+>��7��+�++k��˙����������̚�z�f�R����[�
�/��`����������������������������������o��������������������������b���������������������������t��������������������������@��������������������������������������������������������������������������v�'�T�_Gq���������z�y������Y�w�j�����o�`�)I��b`�__`�b�)�`~oD�W�~jgw^S�X�_�~|~~t�jn~@t^�o�Y��Y�k��|�P��/�"���`�c}�{q��_�'�T�v�Q
���y�y�����t  ���
�����
�?ApDU8��8D��p�?�6
�\����x��T�T�z�{{z�~�T�T�K
���T���T���������������
�1� ��!���8�� 2 �Z���Z���.n8��2����Y\uZQ m{���������r�������^�-Ʒ֫Ϧ����� ��[�����������@�{�wx^�^]U�p�[�c��\��ˀ�t�� ���������b�de�e�	����@�$fb%� <l6fGW���G4���� 9�<:]ua\Q ,�2�������n��������{����
t���������Z�w�R�Q�S��qk�lN2�IUph��s�J��&�J}�r����I���m�{�j�l�kā�u�v������gE{|jZvkSr^kPxOH.�7�6�N�P�T�>�a�a�>"�i�p�ul��e��Ǟ����ë�����ѯ�����
��
�������X�����4*
���(�����3��&���
�����
���&�;�*2�26�;�*���������qX�sIm�[FHN��M�o����;�ot�p��л�ͩ�������������&�o�x�tt_�Jdw�r�y��0�A���y������u���{�&A�y���������  �v�(T��QrLyJ�γ�ʣ�MfEpB}�P7�.�G�$�%�Fr�r�s�������3�Xo[{TO��(�QV�Y�`������1���(m�pn�nvw��w���.�"�4��X�+pr��q/�#�>V�K�����?�����ʹ�ķ�����������S��p.���v�/����n�������������������Q���11��'�A������<������*
�<���<x��p����%�����������j]^��h�Y��E�֊�ׅ�B�
�����������?��G��ߩϼ���qٵ�˟�'(���͔��͂z���'��w�!q=�w�U�G7���HJ�?x�s�]C$�8rw�s�����p�����+�q���������������������������i�������������������������^�������������������������a�������������������������r������������������������ʆ������������������ŕ������������������������ �v��T���T���T��T�$�T�4���\+�T�
��/�i
�)����������*
��l
@Z
�����@�G�t���t��
���
������ ��������V��
��Tn���z�i.�]�,�+�+�,�]�i�����{{���}�zy�j�p����n�������j��r����������������y��'�����������'������{{�~�{y�#j�o����i�c�c���i��q��#���������������4���
�����4�4��������������4��@�
���
��G���2�t�1�v���������~z��1�v�F�4������Y���tH�A��AHZEt�Y���r�tp��g��
���
�2
����
�4�T��t��t]
�Tg�E�u�F�F�6����!�1��=۴�����n���_�F�(���
�R�D������\�����������������\����D����
��V���T����$�4�[
�
�.���G�^������S������S�����G�^�J�(��@�t�w�T�3�f������V``V}�~���d�3�f�T�w�@�t�(�E�Q��T�!���
�T�e
`�����������w�r��P���N����x�y�p�r��NV[�P��w�r�q�q�yx����y�p�r�r�ww�r[�P�N�r�p�yxxy�p�r��N�P[r�ww�r�r�p�y����xy�p�r�r�w���P[V�N�r�p�y�x�����N���P�r�w������������}�����������������P�NV������������V�N�P�����������x��,���4���.����o����U
w�t��FPPF���s�\k�{o��y�xx�>\��V�?��Ck������������������������w���k+�+JL����OG����
�	��
������=��3��`�?.Qm\ibgbjnG5[��ho��������fu�e�l��Y�������=� ��	� �,���.�G�c��4���n8`��X�C�>��[�B��
n������a�tĹ�����o8i�x���������FP��������v8�+��֫ঽ�t��t�t�u�V�]�]B��1�����������
o8��[G�ng�i�m��Q`�?��3�4�=_�`�b�
��
�	�� ��	� �=�a�c�fn��}�|}K�K�Y�X���S��#�L���n8�������
�
���4���.����B
�`�K����P�V��?�Ck���1�B�]�]�V�v�u�u�t����������+��������`��PF���`�������xi�������P��ta�������
�?����M���Q��YK�K}|��}�Pf�c�a��=� �	�� ��	�
��
�b`�_�=4��3��?`�Q�m�i�g�`�n�G[����
��
��ʰ�����
���.�G�c��4���B
��t���ZB�
��xx��yatRt]ss��vikcx\j_��q����FPPFGO����LJ+�+k����������������������ϰ�k�p�C��>�[���������H�������k�f�u�f������
���h��[5Gjnbgbi\m.Q�?`��3��<������
��	�
�� �	�� �p�=������ϰ������ˠ�������S���L���������H���
���Q�Q���{zH��
00��
����0������,
��{zz�{�Q�Q�����
� 
���
����X���00�����{�zXz{��0�����������Q�Q�������Q�Q���N�����0��{z��� 
�����������00{���Q�Q��p���Q�Q��
�������,
������{z�����
���������P�������00��
�������M
�Q�Q��q���Q�Q�,
��{z�����
�����%�������������Q�4�.���������&����E��݂���������v����'�����*
�<���<�<���
��<+�'����������������~��'���������������|iyz���r|���������x|��~t��}�uz��������������������������~�}����t���yzr����j����hv�������������~|�����'����{���|����������������~�oz|������������'���������r}s�pw�h����������������������jh�y�~�|��������������������}}��|x}�o���w������u����x�����������z�����p���}�o�~�v���q�y���v�}��}�{�o�����������y�~�t�����c�����u����������������y�u�u~�������x�����������r���}�������|�~���g���w������������ɛ����������|����������������c���������x|�����������������������|����������������������������������v���������������'݀���������������t���|�������$���|����~����������������d����������+������|������~��������v���r����y��������s~�݇�����uw�}�{�~|�G�����|��}}x�z���ut�����������������l��������݇�������|���������~���|�r�������������������������k��������|��������������������'�����|}�����y����������������������~���������z�{�������|������}�{����x����|�����sv��~�v�z�y�z�z����������y���������'���7�����������������������������������������������������������}�r~�����������w�������������������������w������������/*�G�s �k�i��n
��8��"�W��=�=s�v
j�t����
�>�>��G��ww�|�&xj�U��t���=�����������N,�B[
��Q�?��F������������������
��������������
�������������������t��{���t�q��������z�4��~����
�z������������v��
�x
��
�����������4�4B
���
�4�4�t�
���t�������X
����S
�{e
�w�$�$����
�Tx
�Tqt{s��t�o�y�$�$���������$�$��������t�q�T5
�T�p
�$�$����������
y�o�t�s�{tq�T/�T���
���������$�$�K
�T0
�T�
�$�$��������)�
����W�n�������|`_�]�#�v����:��[���������vV��i���\�\��i��V��v�6�*�4���4��6���e�T�a�
��u܎���v#6�]_��`�u�uu0n1W@��^�;������e ��U�U`�4�U�5�T���T��T�T`�4�S�2�SB�����zyr�rrr��y�b�cy���������j��d�M
�d�j���������y��d�d�y�sq�S�Umtvw�jo�XV``VX�o�jvwt�nrr��yB�d�d�k������y��b�c�y�rr��U�n�T��d�d�UA�?<AkST3��«���n�U��b�c,��UB�>�?BnUU�'�&UVlA?>�C�T�d�dU��m��ի���3STk@<�?�B�U�b�cT��m�,��Ԩ���'�&������)�����J��,�>��������
KQtd_�O>�K��j�
}�|�}�,D!�/�G����
 ���
�������#�����
�#�����@�*�!�
�!��@���i����#��#f�l���A�\���4�v��4����4��4��3�T�3���o@�T�M��K���"��������~�x��������������F��͇�������������F���6)�-1?pWSRWn?�=�%�(�EU��m�þ����������B��B�������_X�S-(mU6�EF(�%�=�?�VX��p�O�������򎬇������������F������������˞���������y��\�&sqb]�NE��N��e����������wd��G�&NS6�}dNDwO�]b��qNñ����џ���s��Se&�G�F�������������������\}�w~vt���:�4+q����������������4�����C�K�t������ې������E����,��
����� ��aV�����4dYztd���P\�4VAlff�,�,fflAV�4<
�����:�\���i�������?��������fflAV������4M
�4��4������4�0M
�4������������������|�+�f�L�����dU�S�55�T�T�d�.�.�������Ġ���
�.�.|�����������|�����e�WT6LL6UV��e����[�o���!���"��m\�������������
����B)�%�h�;�=�h&�)�C����M��e��0���0���������
�����������4\���
�4����4<
��A
�4��{}������~�bx����4��T�
���
�T�G���k�m�e������eB�V�4V``V��Te
P
�� ��
�&
�P
�T��������
�w�Vn���5�!Jt�4C
��
7
�F
����nt�4C
��
7
�F
�T�
��
7
�F
�����'��)�����������h��	�$�J��7�_�H����,�� �� �����`djXg]�S��ˈScfzheb��pR3� ^��v������" O���m��(�;�.?GdFj�P�������yi7�vo�My�y�y����4�
�������(!���?�������:�:: @(��t���
�T�
�@��
�Tz�|���>
�������$����@1
�i���{p�k�g�G�R�[��"�.�_�_�u��š�����ȟ���mN��g�G�&��߅���������Ȃ�������A�P�_��AT�e�A�a6226^%�O�L�J�n�p�s�����o�s�x�Z�WS]{`lcmcbnXzyY\�a\^��cb�h�n�n�p�s���z�f�%�_w�h�Y�+�W�~������������ cv�͉��Β���������������������И���������������1�5��h���v�9��U�!݉�}�t�{�D���$�<�T�;�J�Y�Y�b�ll��|����ԡǩ������������������+�}������������������������������������y�L�J�G��a�7�5�����t�|�m�`�P���v���G#�?}Z�hzdqcwuvltlsj{h�xPK�GQP��Ob�k�t�l�{·�}����y����ُ���������������ˌ��|n�a`�Z�U���TS�R{S��-�de�h}~��~�3U��������:
�@�4
u
�R
 ���`
�����
���4������y}}y��y}���T��������}y�T����
�����
�5���X
��]
��g@�
 &e�e��O ������ �.�����Z�Z�{�zz{������{zz�{��Z�Z�����
�����������R�%
���O�XO�X�XO�XO�X�X�X��r�6�%
�v�2�%
�������	
��>
�
����������W�W������2�����
����g
��5
�T�4g[wrr��Z�ZTT�<D��Aٕ���!���
��!���
�ف����1�;�������)�)�����P��P
�+�<���<��Q��������̙������r��ԋ����ѭVLE^"t*9x�I��&�O�q�=���b�}�%�B�VH�\�f�z���w�}�i�~�w{�z� �Y�
��n�L������U�i�w��<�u��8=��q^�E�i�{PjPn]v�Ӏ��
���)�9��
�(�(�����N����K�‚��������s��Ӌ����ЬWMF_#t+:x�I��$�M�o�;���`�z�$�?�TH�]�f�{���x�}�i�~�x{�z�!�Y���l�J�������S�f�u���:�s��9>��p_�C�i�v9U:j\�i�C���eM�#&�nY�A� �������,�Ó�m�����x�wr��� ��.������f�f�������F�f���������H����4 z��e�����`�c�����`�c���#�NW��[�S���9�Z��)���)�)���)�;�����7����e�e�f�e�e�f�e�e�f�e�e�)���4������
������
�������{r|�sv>��(���T�+����J��~�f�f��~�J�J��~�f�f��~�J�����������K�
�
�����g
�5
��/{i
����W�Ԃ
�����W��~
�����������
�T�T�{z�4�T�T��
�������������T�T���
�T�T�
 m�
������F8�4�
����������
�����X
��l
@�
�@w�W�T�
�~
�K��W�T�
�@w�W��~
��t�0��mjingr�;��<��7�
M7#?����#��7�7��<��:�f�i�m����
���B�4�@ V7)0��[�/��1��/�^�/�������/��1��0������6���;�$�����p��#��s�����E��AA*,�?���������m��6�"�mp�F=(G`���$����.�����������ƣ�����0�����������п�����
����D�&�l&�y�P�������������sj�iel{pp�������������m��o��������������y��,�,�yr�rUg[giyx�tq]�u�m���~~���������~~����mu�]qt�yxgi[gUr�r�y�,�,�V�����������o�m���������������pp{lei�j�t���t�������W
�m�
�b��
G�T�TG�@�u�^�9v:p%"M$�%�M�����ڑ�����������h�i���G��G�T�TG��T�����&�&���@��;�$y����z������%��:�@������b���
���%��������%�����
��v�������
�T������D�d�d���D��WX��YV�_lw}v~v��*���A���d���D����������y����o�6��$�7���������	�^���~������ )�?�c������w�r���vy~x��]�͈}�|�������������*�Y���v�v�������������������������T�����
p{���3
+�T�
���T�A
��\���
��<
�T���
�T+�
��\+�T���T+�
��\+�T���T+�
 m �4���
��X�vv�uuv��v��HNNHHN��)
��	�	���	�	�����������1��j��
��j�/������
������������������������������eU������>
���k�)���������$��1
��
�����������
����
��4<
�4�����T�
��
�T�GK���4�������i��m�e��,�,���~���\��-���4�:����4� �#��x�:�4����t�T���.F�
��pF�
F
�4KqHaZxuuvwtD6O'���x��O�D�w�u�x�a�q���\�_��I�I�_��\������D�������D��$�2�?��?� � nzykjs�t�z{z�tsj�m�y�}�z{�J�l�Q��e��űťž�̛������������{�������y�n�������׭������
�0���|�z���T�|�����������������������T`>
�t���7
`�Tz�|��)��t������������������������������������t��F
�T�G��t����t�
�)�������4z}|y�t����T�
��ty}��������������������������������
������b
������t�T�4���T����N�[c�����G�=B�^�60�A�Q�EEQQE�AK����u��I7#e  #��7up�jj�_�p�B:��
ܾ�ئ�_�������Wc��[�|��a�
��m��
��w�����������������7�E�p��{
��m��;�4�U��3������ua�[�
�RҢ�����&�{
�&������
�R�D[apdu������-
���U�;�4�mp��h�]�@��@�h���֦������
���t��
�t�����������K�}��������������
K��Q��$�4�[
�
����(��@�t�w�T�3�f�����V``V}�~���d�3�f�T�w�@�t�(�E�Q��T�!���
�T��)���T��T��T���
K����5!�����
�K���h���h��5
�t��
�T�Q���
���
��_
����4��n�hhnnh�4��n�hhnnh�:�B�p����
��צ������g
���U
��k�t��E�Q������9��
���w
!�4���4>�Ti�T(
�t�t�T1
�Ti���T1
�Ti�����9����9
�������t"��!
���N
���T�|�zKz||zKz�|����������I���T�|�zKz||zKz�|�����������|�zKz||zKz�|����������6F
����^P
�
��@g
�5
��/�i
���������
��� �����U��t"��!
���6D>
�����^�
��k<
�TA
���������K�
�+�K�
���
�G+���

T�G���E���g
���p�\�T�
�����/�i
�)����������������������>
G�����������W�W���������2�����G��4��
�t�t���T������1��5
��4hZwrr���Z�ZrrwZh�4�
��!���"�"��
��
�"��
�Ti
���������
�4��
��4�����4����
�t�t�����T����t�������k�}�����4��4�����
k���Q�)���T��k��k����������������t�K�����
+�4Kk�4�4�T�t+kk�T�k���Ts��Ts��kk�T�k���T�t�4�4Kk��4�
F������t����ˋ�� �v���
�����|g�>DR������������T��T��˫k�T�Tk��tk��K���h�@�@�h������T�T�����Tp�����p�q�����q����4 ����
���p��������h
�����
�� ��z��Z��4�
�����
���k
��
�����
���k
��z��Z����
��
���!�Z���tL�L���A�Z���4K
�K
���z�����t���k
�
�����
���z�������
YY�������������
�����������Y�
���������L���������K
�)�d
��{�����
����|z�����X
��]
��g��4KGf�g
��0
�K�����
�)��+�TK���x
����
�^�4����Z
�T���]
�Tgk��F
��G�T��Ԁ
`�t���4+V�`�@�Ӷ����+�r
������S
��
�>
n
��4��Ԁ
�T�
��q��]
��g���
����4���������d�_gg_��
�d�4����
�T�
���G�T�T���[
�r
�������
��E�Q��������9 �v�
�
����ԫ��� �����
�������T���T��Y��������w����N�������T��t���"�R�DEQRDE�Q��������bB�T�TB����Q�EhE�Q���X�x�C�3p
3�C�Bc
���B��T��
���
���b�&��'&��e
p����e
P
� 
��@*�j{�4���a����,���t���
�����{z�4�����
���t�C��8�qb�b�b�{�y{x�{��������������K�  ����t�4��
�4�t����_��_�4���\���<�������-��7����������������ʗ��7��-�t�D�&c�+�������z�i��0&H.��0,�-##�s&�&�2iGz@@R�Q�T+�c��&����&����t������������
� ��������x
P
�tV``V��
V`���T�^
�T��
�T��T�
�4�
��&���Q�)�����������F������|�~������aiEjV��ul�������������Ѭ������o���70 XDQ������^
���
�4���7������mG�G�T�4�}
���
��&���������������������
�T�n�a��x�j�i�gx�i j(C��(�j��g�j�i�xh�i�5��'��=�=�'��5����G8
m�T�i
�n���5Y�'��=�=�'��5Y�i�h��������������C ��i�x������������8
�����
�Tg
��
�0
���T8
�)��TK���4�T��T������T:
�T�Tx�
�T�T4
��[�T�T��T�T�����KG����xP�
��
���x��
���
���y�y����
����p<�
Z��Q
�)����
��������������������I
����t�+�����t�
�������I
���4��!���+�������
�������I
��������r@I
��������0��I
��������I
���p%I
���0�0
����+�����t�
��$��������
��h������
�������q��������^��jM�P�di��oo�� '��.��<WN�����2���XV�u������
������^v
~\�b�u�D
���
��
^�z�xvu�z~�L������^�?
ޠ����������˜�0���������������$]�U�M��'����T�6���"W�
N�Q��(���Y��cjM�P�im��p�P~�~�~�����+�����r������+�UQ��������t�b�3���L�?0X�3>���X�������
�Q����v
\�b�u�D
�J�
���
�zxvu�z�L����J����?
����� ���s����
��]R�T1
�T�*�)�\�&���������Y��
�f�f��f�f���������z�M�{�y��z�	���z�y���z�������	�%��
��@��tJ�j��Z�!�!�3�!�"��
�
��$y�f�+�/���Y������
���kz�X�,���Hn���|�}���������������1��d�t���Z\�I����<P��W�3�֩Ó��W�W���}�O�����u�[�}z�y�yy}p~�u�[��BO�}a�`���5��_��q�������U���U������������5���������t��y�����w��{�z�������q~}m�nn��w����m�r�������������� ��
������������������4R�t�����������~�w�~������tT
�t�t?�t����t��t�t6
��������T���T����
�
�
��V``V�V`�����
`V���
D�M�j��e!_�NPZ|UzXr���Ĭ����D�M�j���RjdMD!�5�
�d�R��쿣�3��>���ێ��Ĭ��� ��TPv�4�T��T��T���T��T{��K����=b����u�t���5����m�U����z�x�w�y�������y�sq�ggK�g�������y�w�x�z{����T��m��Ө���'�&�������h�~�z�����UB�>>CnUU�'�&TUmC>>�C�T���z�~�{���������k������y���������
7�5��������u�+�=������
�T������Tg
K���%.�Khnnh��<��K�T/��i
���v�P�����K�t/�
�����o�h��honh����h��n���
���������;�m�g�<��&S�3������r�<��
����;�|��#����&�%6Nkj�k
�����hW�
x�}�p�������;�F�&���<U�3������r�<��
�Y�;�|��$����&�%6Nli�k
�����hW�
y�|�p���)������
�������9�I�v]�Y��fh{os���je�V�]]��n���������������w� �v�v���K�u�Kp��J�Q��T*Fhl��tn����ݖݘ����Ǝ������q�DA�������5�%!*Q���TFhulstnl_�a99��:��P���p���������������~�݀������������*�������P���k�9�o������������k��թ������������m��
p�
����[
�S����D
�
�����D��
�D�U
���D�$�$�D����m����8������������?�C�I������9��
�.�.��9�~���������`�n��
���[
AE��N����������������^�
��U
�������T��T����%�� 7;L9\Xpq�T��T��g
��5
���9�������������$�����9 �
���
�
#���
�������4�����@n
������������������T+}��~|��������C�3p
k�n�r�]J'�V��{k�e�{��������������o�h���c-��#���<���/���&��|�~���T+���������������� �t`�`����
�t���{�y��S;����RQPIOD�w�������t���{���K���������������6��������K��������t�������������������q����v�M�����������n�;��<����-��������=��v��v�k�h�F�����8����������
�!�!�f
�Z�Z�3�Z�Z�g�%�E
������E
���! 
��������
�a�!�f
%��3������3��g�Z�Z�E
�� 
Z��������!�f
������f
%�3�Z�Z�g�Z�Z�E
���! 
Z�����������f
�Z�Z�3���g������g�%�E
��X 
�����F�I�C�������?�6��I�Y����(�����u���C�� �XV�Y���x��\���������b��6��6�������S�������*
P���e�S�GQ���G��z�5�:�5��'��D���N��������5���T�T��(���TK��K�T���(�Tn
��4R��~����~���'1�
�A3�Zp��T4��
�T�7׷���
b
,�9�_�7�T5
��2
�T��Z��A�1�
�����������~���'��~�������������Q�1���
������
�Q�1�.�����
ꗐ������v@�T�i
���T�����t���2
�@�$��k���\�����9
��
���e�
���
�
���y�y���Q
�a
�U�)
����������_
���T_
���T_
�������_
�T_
�T_
��s������s����
G��-�������
���|�a�9�9�a�z�~���������z����������������
���|�3���3�z�}���������z�9�9������S e
���*
�<���<�<���
��<+�����������������w���������������������vttvw���_������������������������������+������3���������s�����E
�������Z���@@��@�@֋������Y�9�ZYh��YY�9�Z������@�@��@@���Z݋���� Z���������
������
�� ���t
���
��
�tR��1
���
�~���������*
��Q������
���9����{���s�Y�sn��{x�p�ut��}��T���������4�T���~�������T7��T������������
���������}���4�T��������Tru|u��t�p�x���n��������������u�r�T���}�yZ�n��n�A���f
�����3���g�g�g�g�g�g�%�E
���� �������������(�@WWS�+���������}����������}���������������������F�������������������簰ɋ�f�,�,�f�Mff���� ����z������z�����q{tt������z{����
�����f
%�3������
x�����������t�
�t���� ��4��4�����4���G{�z�����s�{���4�O!mFNB9x�*����}�}~��������������5�W�]������4����������x����E
�G�� x���������t��T�������c��������
���##
�y����u�s�su~u��v�q�x��Tz�����������T��������QO�y�7����}���T�x�vvx�z��T}x�q�vu��~����������O������z��T��x�q�v�u�~us�s�u���������T��������T�t:
�T,�T[�T��}ys���x���E�F���v��d�y�������������Ds4�>�$�0K��������������������_�������|�������������������h�)�!�<��z���������3��������������5�#�����N��2)(
�$��h�e�kI��
�z�|�������P���諌����������j�j�n��W��{����2�v|���#R�6�'�I�2|���6
�S��k�����G�������������������������\���L�9�x�s,'�$�*��
�*$�P�*��
���[��f�����d�L��"�������*�
 ���������������&�����������_��DS�z|}y�H�ec�$�,�L���t1�HD�U�
\+�!W)�E� ���������������$���z����� �~j�Cy�}��7�C�h��&�5�`���v�8�:�$�:�����R�?��v�k��}7�S��(
�z�|��%� �e@��1(
%$�?�n�P�D���
�������Q�]�(�E�5�U������W������������+�M�3�T�)�3�w��'���T�<�*�|�v���;�<�#����������6
�S���7��}�y�k��א�����������S���S�8x_uaz`{�{�s��k�=�����V��������������j��
#$��6�
$$������@��v�t�T�
�i�T�i���{�������_�,1�!��T����!�1������N�H�����'�	���)$�t�
�t(
�$�t�T���;7�T��6
�S���
�����N�H����v�����������������@���3���uk����1��������@����������:���6���zi����
�4R�G���%i��쎔����������|~�}�.���)�����|�}~�}�*����1����~�|���������������1
�"���C1
�d�4��}�����3������;���e�:��}�����3������8���i�*���O�J�K��.��J�?�7�����1�.��.K��z�J�1�Z����.S��cb��b���.K���jj�l��h�M�8�����ʟgk�������������&w�l`�����l�KK�\��������.���������K�.������H̢����W/�&�����~��k���S�ڡ#���ڨ�ZD�p�A���4�����I���
�����l�������,�,���}��������V``V��T����V`�������������,�,���}��l�l�������p�8V`������V``V��T����t�
�T�
�T�
 ����������$�����+�����)���f������}�����]�|�
��z
�@�\
 ����$�����������+��)���f�1���z
�\
2����}�����]�@�|�
�+
�t�)�f���R��8����8����T8�T����8���*�+
�kR��8��7�t��)�f�4�R�T8�T7�T�TR�8�7�T�TR��8��*���
����iw�q
�s�j
�)�f��Оm�a�
����"�
�q
�j
��)�f�d���
��� ���4�gnohgo�������H�4�R��5
�/��0
���3�#�������������؋�G�t�
`aM�PQ�Oddlli`g]_Q+�f�j�ooj�h�o�����v�uf��\�#�������ͥ�����ȅ֤�������������������������� ������T�n�hgoogh�n���4��-
���
���
���
����)�������|�m���������x�r���z�e�`�I�3��}�y?z�#�\f�LuOvh�i�moh�j�o������Q�]�`�l�d�O�Q�P�M�a��t��G��m�q��������������v�i���� ���Ǿ������n�4���^��ːΆ—̀Ə����n�԰�+�}j�{x������t�������zj�1�"��L��������zii����|E�;�;��]SH��v|~�}������������I��q�z��x���������c������������y�pst}qv�5H��ίp��}��������������Gq�|�z���{t��������}��yp�jip~rx}x�od�d�n�yr��~������������������W�����vu�yi�0i�z���������x�`6�0w7~Q[`R�|���������R�[�~�wߋ�������ƻ�ő��������|�ą�`�P�8�05�����]A�]��|�s�|�z�|����W��W��[�
d�m}yrxq~jiq��y}�����������������~r��x�nd��I��mpr|rv|������������{������������������H�� ���X�?�����A���܅w��l�D���z�ك��{�ц����Ԩ�_���~�q||�||��|����������f�|�mm|t^]��Z����'��X��"��-�I���bgiwknv����������v����}�������������(]�j�vg�rxhkl��m[2�+�*�m�������xf��w�j]�Y��n�w���w�y�{hsfy\\h��qx�����A������������zi��r�eV$�G4]�t������������~��%]~smn}���f������t]�f�c�����q�y�J�>���L�N��M�M�N�w�K=�KQx<r�����������<�Q؃v�L�N��M�M�N���Lؓ�Ş�������z�G��D��!�M�L�M�.�E�Z����
�#�������x��rh�]^hzirxr�dV�CV�d�qi��z��������������0�nwx}y����������0�g�s�|r��������T�����v��������7���y�g��}������}�~�5����������T�~�~�����������������K����������}��g|ut~���$zm������v��s�����������������������:�������/
�s��s�A����~�T��z�}xp�M������������X��������l������������L��y{���q�������������-�g�������p������������Ln}������t�������"�V������O������w�( ����[�,���x���x���M����
��y�h�>�GC�TU{�x�%��%�����%��%���T��D即���#}�f���
������؋����›���%��%�����%x�%{�T��G�>�h������
��
˳�&�����~��������'+�����������'���}���������~������~�����������������}���}����������3���3	+�t�4��b��4�t�D�����8��0���9�m�i���%�i����f��������������+�q����U�����3���������@�������
��
��n�D�D�n�n�D�D�n�n�D�D�n�n�D�D�n��.�b�XXbbXX�b��������p����c��}�z�p�p�q�h�&��������c&}hzqppppqzh}c&���������&h�q�p�p�z�}�c��������������������������
�����o�1�1����!�"�!!"�!$���o1111o����!�"�!�!�"!%�����1�1�o������$��������������Z���<� �<��ps
�����7
���7
e
���&�]���&�8�t#�4��#�4-�_�G�_�G��� 
���C���3��u����X���r� ���9�*�Hb=g���h�`�̀�����,�����������ް��5-��"����MM/�8��(x�,��(�9�0�KDz�іɕ�O��T��Om̀ց�Q������\����Y�5����Yy��{�)�)�+�)�j�x�Yh�m��G���{����I�U����s�V�7�=��o�{��vu!� z'f@o&d1��c��a��a�P�E�b�4�"f�|�au�n��O鿦ɯ�˱�n��n��o��I����7�J�!�I������5����.�OB\W�Q���Ħ���dRۛ~��-aOpbK�I�2�C������@�l�U�[������s^�Y�oc�`̄ƃ�~����ƒΑ����~vD�,@a�D�1��"�@�3�b�yЀ�ѐ����l�"����k�"��rbs��Ir�3p�1o�1�]_qew�G�1��(�'�$�:�e�����r�)n�'y�*��ԧ��ӥؘؒ�6��;��2]�z�t�[�u�n�s��� ����P�D�cl|P~_���q��������<����������}�N�x��0�k�<���N�������������/
p�ti"d-����"�`�#�6��9�VѺ�D�����������M����V���"T�A�������K�$�� ��T��h��������~�t�T
� �t~������~�����������h
������������������h�������������������h
����������~������t� ��t���������{�tR� �t������~�������������������򕃘���������t�6
���������������~�����~�t� ?�t~����������������������
qq��P�V�]�]�t��סж�������i�h�h��MD�;ZQuItI[�nt]��F�EQ�Z�-[+@@*e��-�8��;�@�@��4��������������u�vǹ��������ߤ��������������p7ZYCYCq5�(����������������������� �v��
�>����>���>-r�>-��>�j7��)������1����
�;��a�u�a��b�t�a����vz��������yvvzyu�:uz��������yvvzyv���LR]]S�BR�]�ĸ���B�]�S��x�*�.N�Z����wR�]�Ĺ���w��wR�]�Ĺ���w�Ǽ���|���������������C��NG�CCG|pNC���������������!C,��3�1�3,�� ��q�|�]�RS]^R�BR�]�Ĺ�����_���w���η�����}�����|���w����$��䔻k���i��ᦿ���ů��I�7�����J��+��k��t���������}����n~����x����?�����z�}}���}�������������b����;u{�{~(0YP��
�K��S{T�Sm���������������������{qiTAsF�G�K�i���wz�������w0�o�_ew��k�j��	"�˒��l�s���h�z�t���u�|Ц������y(0u"�5��������@B���'��\��ϊ؊����s�q��ٱ������0@��.&7�e�}�|�_��g͗��������������������������|qD|u�n�l�a�K���]�~���������������������d� i��q�qq��u���zw��|�wʎ����ó����^�=~Ş�v�}M�,������7���Qu�p�z�������T�S��(�����p���zKY�N��G����J������ ��b/ѓ��������c�c�t�u���p�4�K�6�gp1���zy�������@���������������������y�r�7�Y�}�{�w�\�������w������x�F�i���������������������s��}��t���x��y������������������������������o�G���qt��
�s�p�^�)X)iz�=J<I�
����ԑ�yʂ����������X�j�eˈP𫐠���{�y�M�9<��I�b�q�u�ҏБ�Z�=�Z�>�F�df�|o�L{1�$�+���#~[G0`SQRn�e*wXjs�I�x�[��Ͽ���^��d�7�,vX�9�<�D�B�c�r�������������~�������������������������}�\{zeugwT�qtmq�F�X�ec_�d���d��y�q�]ʼn���������������m]�n�r╠�����Ĩ�@԰�=�������{������ ����j<5x0�3�%��������������������\�Q�M�������������G���#�K�.�<(�������؃���f�f�f �h�8����z��_��=�K��
�8��^�@��m�K#�2�'(��h�U5���h��KQ�����y�����������%��.�"��/��b��7�������$�:�,M%��s�y���s��vnX������}�|�|�����,����#��/�� 
K���=�{���@��������m�_�X-�P�u�P�ª�����.�M�IJ��T�2��&��&���<�_�]�A�Q�S@�QdXJ*���13SsVQ�~�y�s�"k�=O�B���m�m�Y����������XX��[�J:�3�3�:�J�[�XX���������Y��m���
��)�M���C���K��K�|��|��v�pus�r���dopdad�o��������mn��no�&�{{�xoj�p��h_�hm�nf����������������A�����rk��R���h�������g/Q��Q��I�s���������7�z����������6����ݺ�����Ͱ�H�f�H��́b������������48�T�T:
�t,��[�tR
���4�:
�t,�[�tR
��4������������t���������cM�A�AM[Pc����|�xxW
������w�������/�����g
�T��M�Y��4��
���T@��������/���w��p��{�M
�4��|
�������T�t�t�T�����
��
�4�
���$�D�d�d�D�$��
����|
e
���~��mp�k������`�Yy��u��������ݶ�S�Hk�pf�1H 
��������x�
����������������������������������������H���H��������������������������������-�H���o�{�H����遏�������������+�������������H���H����������������+�����������������H�������������H����-����������������p������m�t������}�%��I3�U�����[���R�����H!f��������������_�����x�x�o�r�iB?z<���������.�"����������t�o��2|���3�������C�������T˳��T-
��hn��4���
��Tg
��5
�T/t0
��g
��
P
i
 �v������@`��g
�t�����A�A�2��A�A���A�A���A�AI�'��t�
�t��2�F�^�wtp�c�s�����������K�c����I��
��>����Z�Y�
�2�d�e�Ҧ��t0
�t���E�
�E�E�#���)�v�����o��}���}�4����u�{���z��u\�
O#���nWv�Z�����h��,�l�t�:�$�4�Zsj{rg�������l��b�1���Xl�dvG�'�b�Q�^���{���y�q�����a|x��|{�j�j���������s�}�����������������.Ӣ�ѡ�?�I��Y–�����K����k�.�#�4�)�s�V���
�1��|��5���G�c�%�1��A���� �X��R�f�
����7��n]Mw]�^�}�����ǟ�x�w�Vo]�
�yt�y�y��������������w�y�B �A��'��!��3EM�M��!�#]��([�B����4��W�t�I��m�@��n���x�Wx�W�t�I�����������W�ȇ���$�r�z����ӎ�l�Q�3��J>�Rq�����_�(�%�v�v��=�=)�G�/����H��{����uA�R�6�=z@k�wl�k�k�w��������l�l�ae��l�j����������{�R��I�7�
��A��5i�f�sg�f�f�s�����h�.�/��g���g�e���������0l�F�
����
mi�E��#�=[�Z\�Z�#�=�E�O��i����������N�����Q�@������Q���������������y��Q��������@�Q�������p������z�E�������������&��}���9�ً���܉���{�H�[�1�����������N����[�G�C��J��ۋz"q*g2E��K�a�"�8�1�&����*����a�/��rwxrr�w�������T�(����v��]����������������*I��0���������������
��
��3����30�H��5
����7
��Tz�|��4#
�5
��
��T�|������������������6
�T��>
�4�#
����T3~~����T��z�wwv�x��T�������4���4O����e����9 �1
�����������d�p���S�F�4�7�z��w8�,�l�����������r�7����R��Z(�x�[��t�s�[{��+��;f�������C�3DK^Fx���u���k��r��l���qv��}�������������T����K�����?�(�&�P�X�+�)#JU�^m�m�m��jg�e�nyiYW�»������ë���P�����7�i���S����պ�ԤÎ�˒r�Spp�o��G��.����B��%���r ����u�`v���t�T�tp��
�TR�4%���Z�d��z�{�	
�	
�IS�4(
���
�k�.�
p�k����T�������t
�t
��
�tR���M���o
����
���6
��~���������*
��Q�)��ۛ��S�%������4��՘Ζ���T��˫�K�T�]�H�A����F-�"�K�
g_�y�z�}>�Q~{{�~؉؇}�zy_�g��K��飳���ܩ�n�_ZZp_bn:�������v�k����bA*t%n�d�ʋ��̫�����4�4���������m�����4��tb�����m�����+�+�4�4k��kL�J�J�l.�d ��
��|{��|�8S"��1�Þ����H�=|}��}�6TV�5�wS�L<JI<{�{�|��4��"U�4�wT�L;KI<{�{�|��3�1VPwcSM;�Nۛ�����0���0VPwcSM:�Oܜ�����-��7O��d����ٛ����T�8���9O��d����ڛ����S�;�@�Ǡ����L�9����"������t��������s
���V``V��V`���H�z�u�|�K�R�Kj��g���
�ů�������ɣ������YPOdq2P2R2QreL]]]L��e3�0�3�a�S�f��ó^U�����hv������n�2�o�����E��������`+s!���j�m�d�f������������J�\������e������܌���
����<������b�d�a��ʵ���֊��ی���
�������������!�z�2v�Ԁ�����������<���r�qo=w5d���:�y��.�����h�O��6���?���)�k��k�k��
�k�k���k�k���k�����������
�������ɲ�~�=�`�U�f�6����@�IV������������`b�����1�N� <��:�M��@�x�i�]�'8��������T���
��}
�T��
�T�mh�n��������������PelnhK���l�eP�����������������������;�T�
elnh����l�e��Z	�P��I�{{�{{{��{��Iy���!�����������
�������~�������������$���~��}}�����#M4m���	eupb[^�d�tQ�E������������T�����������Q�E������r�e�����ĸ� �b���������$�����������0�Y����	�`�	�_��_�	�����fd�egg��h����1���(���'���,��� ���ge�ffg��h�a��C��N��~�W�����������������������������H�y��n�����j�m�����j�m���)�KT��e�]���B�c�=���=�=���=�O����J������i�����!�G�)�e���G�l�G����}���ff>TT=��g��}������}��R����������������I�c�ZYccYZ�c�������c�YZccYZ�c��������\pcdw�y�wx�R�j�.�����j�.�R�����c�o����ͭ�}t���������������qZ�������bZZcbYZc���\�L���
��g�S������VI��m�
0�ܰ�
�.��G�.�����k�.�L�.�k���?�+�����llH�\\H��l����������Z�釧�鏼����������0��
����
�k�cthjz�{�{z�7�L��v�v�K��7�����i�s��ù�Ĩ�w�л�����������Qa�������haahhaai����?�U����l�[�����Ĺ]S��Z Z��+�)�*�*�����MO���v�rqvvq�� 25 �3�����
�+�q�v������������6!M���r�34��2���o��q�v�������*�
����� 
�).����`��`��`�������N�W���{�W�M�}�|�X�L�y�R]^SS]��������������T�T����V�Q�~��ù��ù]S������S]^SS]�����WQ������U�R�����T�T���������t���t���4�''��t�T�T�t����t�T�T�t�T ����7�8��8����a��`��a��a�`��a�^�������M���kl�`���
���8�a�M�a�k�aW�`�a��9�M��9��7���B�a����
���8�M��9��7���B�a����
������H����g��g�[�o�������\���@�\���C�G��%�:`d��h�b�gb�ۏ֯�Ȱ�����������:��%�G��?�G��%�;ad��h�b�gb��N������;��%�G���H ���v���/��}��������7����������
Q��Yr�3F���ZXa��X�x�wx_blk�x�����B�)� K��%Lo�3�B�����J�������w�u~�k�u��x�u�����*�k�?��O�z!x�yxv�z���A��������Y�����
�Ϲ�������[�D�j�m�hl|�{�{������̡���ԡԈ֊���j�8ч�������������5�T������&�9�E��
�Z�$�j����������b������������<���r��������(�B{]�<��6�T�Y�u���Z�|�i�JC^E,g_zsyub��Ֆ�Ӫ������u�^�q�-��1������ݛ���zJ�1jI�1jgT����iԻ���E�Y��}M�F{M��`���@��������]�����~tv��t�z����,�������������������������J�����~����Y�������=U/�0���A����������������q��t��ת��ԛ�����d��z��}��������PPxvtnos�������������������������~���}�m�z����Vz-cObPru[�N��
�S=��)�i�d�<&l��i�X�sŒՍ����0��Z���Z���6�:���3W��4�U��_U�2�6�6�W�B�N����	h[aj6GUv@cLj��^�H�I���,�+�����T��j���k�(�j���j��c�+�,�5�4�+�,mmZZ;�Z�Z��۽����+�,33m���0vH9*��/������o���⩩�+�,�4�4��>4�
��q�{7�$�//�)�9�wh�	���0�m��+�,�5�4�+�,�4�4�,�,n�Z��ܼ���ۋ�Z��,�,�����>�'���l�4�n��,�,�4�4�,�,�4�4�,�,�m�Z�;ZZZZ;�Z���+�,��/�o���-��D��������/�#5>'}���n00nm�,�,�5�4��,�,�4�4�,�,����ۋ�Z�Z�;ZZ�+�,����j���������+��
����J��Ѳ�"�^����������z�}�i�{��ѧ������錐��������z�s�s�^my�z�Svn�n�U{u�u�w���z������~����������������������˜����ڦ���L�vewe��:rnwt]R{���������ϝ��ȹ̯�����\�����j�����t���a�z�������m�|�}�l�~�~�n������h�~�u����������������������N�?�M�a�m�����J�}�����f��g�^�%��l���l�I�%��u��X������Blznxj|Z�6{�&���1�~\�����������N�UL���������ܿ�I��4�����'��6�������k����Z�6nNw���������������������������a���������������t�T�T�T�t��
��
���T��������]
��g�Z
��`�7�7�l�f��,�,�fA�V�4�
�g��K���W�?��t�qE���E���E������4��4�
��������
�
��
��@��
�5
��/�0
�x
���AA�K�
�TV
1�CK�
�TAK�
�TA_�K�
���y}}yKy}����������}y�T9
����;��9
>0����y}}yKy}����������}y�T9
���P��t�t��p����f�e�O�ef�x�x��x�xe�O�effe�O�e������D���D��������8|
 Z������ *�`�7�Q��� �`�6�����w�%�	�Y�4�W%*�%�	�X�4������������j��%����1�������������g�6�`� �Q���7*�`� ����D��4�	�Y�%*�&��4�	�X�%�W���
��T�����#���E�E�#�����\��[^��h��n��T�����^������\������z��.����}��T���N���N���N�����i�Y��T���}|�|||��}�T��Yyi[U��\�`�u�T������������T���������v����
��
�+�
�@��
������8���T�j�M�Q�M�Q�M�Q��W�m�[��F�N�$�l�\��T�T�{z�zzz��{�T�T\vl]X�$�F�N\vl]X�4[�^�v�T�t��
�������������T�t��
���������P�8�j�J�2��R��Q��k����V���o�����8��������>��A�
��,��������'>�&�&��������2�u�����Q�e�����G�W���n�!�e��q=s)b?�ɽV����W��X��/c���������@���o� E`(�������y�k����2@�	�/������@���O�l��m�C����L�����A������A���l�s
�����	e�1<fXEi�o�B(�4�G�#������ɷ���R�M�7�L�M���ģ��[�?�Q�m��k�ȥ����a3N���H��
�F�?���A�G�!�<������/0�U����@Y\@���քd�= @�6��>�������U�*���*j�*�.�N�������������������z����+8��a��{�z�{�a�����Y�%�#������������y�=���<�=���=�<���=�<���<�*����`�`�����`�^������+���LPzlX��1�A�z/�-����6�D�&��@��I�����`�_����4��|�����4���B������
 4���4!�����3�}|��~�j�k�/k;j:/d;�j�k�j�L��`�������*
�`�h��������������u���Y��5�4�Y�\�5�5�\�Z�5�6�\���~� � ���
q�@��-�3���3�T&���k������������������v�vXw��p���D�>��m2W��.�_�Z���8n��������E�� 5<�hL��hL�Q�R�����S�u���'/�����>0����A�g���z���8�(�Ғ��ӑ���P�����0K�C�'�Z�L{o_�u�����O�n�	�ɋ�#��x���W�{��D����ߥ���p������B�dȋ�e�E��)�p��3�����+5�7w�p�	����n�t�T�y
���@
����y
�4��'���
���
��
��
�
��u
����n ���
��t'
�T��
��
K�
��K�
�V
��'�� �t��X�t�@
�X�t��v������&�'�y���&�'�Y����
�
���
�Y�&�'�
�y�&�'�
�b�K�HJj�p�������̃Έ��bi
����������a����ouwr~�������'89�{=�{��mx������������<�*e>����o�kjqpi{������A��R*7}xE�|��}jp�����������]�VY0�-�|�xp���aime{���}��l��d""�p*��}�|bl�������������v��\&�A�}�xf�a�) 
����W������po��"��_m���3���m������������"�������3��s������ٝϞ���¿���������8~���~����}������������~�������h�s�������������������������������׌���������������$���������������������z����������������c������������t�c��^�����������_�������P����������v����������������������������v������������������~���������w�~������������������������������������y������������������f������������{�h�������������������������{�������������������
�����
��Z�~���}}��}}�����}�����������������||{������|������������Z}���������������������������	��z��}���������{���1���0df�}i��t�j�\��KMuTu���z�y�~��������0���0�����&
����
���
��
�
�<���!��!����
�
��!���<�
��jv�����t�
��Ǒ�m����l�����!��4���CP�W�h�Ќnj��������������������������|�vw||r�yI����s7h3^1c:gJlX������������JU>�]�w�������������������D����&���_��n�����������������������r6�Hgd��al�o�r�@���/������K&``m}�"�,���� �����y������������@��}�z�~�|�{@��Ë�����)�������ҧ̞ȭB�O�`������)y)o3h������������m^��Z��x���
���
�:���w
!�4�i��� 1�J�{�z�~�v����������$����$���{�z�~���������������J1��� E�8�)�3��y���������������{�|�|��y�3�8�)E�
���
���1��V�!�4�g����V���Q��G��� ?��3�������������������3A��� H�W���T���!����� �5���������������|x$�5�!���
�~�;������
����~�V��!�4�t���/�����|��h�7��S.1l~gd�`��;�!������������������w�g��vp�h����
�i
�?v��
�x
V�!�4�������m�T�T�T���������
�
���x
�������-
��V���P
����P
����P
�������P������fA�V��
��T���l�f��P��������������z�z�! ���
�P
�����4��4�����r�n<��B@(��vM��z�zy��:�(�(�������! �u�6��B@�!�eDR���Ĩ���nhhRnD�
�����
�x
K����!�4B���f�~����:�;�8��:�;�����
������������5�E}}��o������ۮ���h�J�t����������o�%����]�8%{~y�x�g�(|{��~r�����������x�j�r����������q�O�>99l>SO~~z�z�
���
�x
K����!�4����
�E�Q��y��
����������
����1���������
������������
�%v��
���w
!�4�4��v�����{���v���}�������������J���J������}�X�}�w��}�����v����w�}�Xe}��w�}�J���J���}�w���e�������v����������aʁ��������ӎ���y�L�z�z��y��ӈz�z���|�c���y���u���Y�aa�f�f�6�&������̶Q�HyA~`��D���ޟ������(�����#�P������g�Q+<�3%�!!!�S�|�B��D�����������M�h����ߺ����� ���ђ���O
�.�-�.�-�.p�l����H��s���-�����U���7����s���H�<����J���J���J�?����H��&������U�����r��s����&�l�~�v�����~|�|||��~���v}~rr��r�r�}�������������������������|�"�����������������d� �^)�[O�K�0���-n�p�q�
D:��)�r�J�?�t~���������r�I�F�o�9$�"�%�����9��/����i�ü��I�IR^rdcl�m�k���ԧ��2�*�:�8�)�0��\��pFN[BA�\�Ÿ����g�h�gGDDl)�3��=�
���
0�
���jR��V�V�VT�PQS�yV�V�V�����:��R�j�������V�VyV�TPQ�S�V�x�������V�Vy�Á��•���V�VR��j���h���h�
��@��x�m�����Ł�y��V�V�����j�R���t�t��t��t��F����4��x��P�p�����������������[��p������x�4M����F�q���q�q���q�Iw�w��v���|���yx���*��|��8�����������G�}�A�I��r��w��-�u�����\�?�	�5'���p�����x$�� PY8������4�I�5�K��� �G�3�#���T�1��!����I��%�>�H�G����U����������B�&�����������v\w�ͷ�����- �-������%b�b�d����&���-�JRp�r�v��Qi��u���,������t�~��՗Ӣ�9�������R�M�g������Ĭx�{�}�ާ�EvhrjplJ�- �?�&n	�5d�b�b�I������,��u�e��u�i�`��M�6�f�X�P�����lj�iij��l���PXlf`�M�6`ZiRuL�};�p�omm�o�p�|;�L�R�Z�M�6�`�m�[�������
���[��Ɨ�����M�6���Ġ��|������������}�����������+��v�j�������S��&�z���������z�g�M�Rj�h�e�d9o�I�CAA~CtI�o}d{fxg�j������;��v���+���I������z5�&o�?� ���m�j�hĬ�7�;�j���j�j���j�j���j��j���j��
�0��K����B��H���
��\�O�+�:�������x�O�a_U�TS˄�B����g�f�t�XRweWW�k�!�����:�{�z�{��z�zy"J<%wl�y}jh�w���|�m'�!+\�!�
��ո�ϡ�n���������M�b��������x��������7�������������t�tt�p�o�p��yje�f�{��m������~���	Ǻ������ �i�ii�	yz�yW�uf�^�������
���V]g`[[f��������_\��� ����A���^���N�?�I�`�U�j��f�#�b�'�^��j�T�m���4=yBF$�������3P��:kS43g��߫��ޯG@����pFAw@�UM�M�M�%��O&��i�Wt�LXU�_�o��gBF��b�WR�?�d�/�y����(#�-������:���=�������������;�������������r�a�``��^�_�^�r��ruke�dA~����������R�?��‰“��w�n�mm"�?+��R���������������U`�B��=�j�ȕ����w�S�<;QE>?�F�` �����
� ���R���X�����X�4�! 55 p�q�sa_^U^H��K��ʲ�Jp��w�����������m�����7���ų���u��~�������������������/�/�:�q��������~�i�y�����k�k�����k�k�����k�k��gf��ho�py�p�o�o���������������
�����n�0�
+�(�\f�m�j������ő�¡���������C�B�{������������g�tzl�dg{S������)���������i��k��-���������z�/�R��ɮ٫ސ������q��,�Þ���2=�5�����������q�n���Y�V�L���9+�3��zZ$�;;�#�}�Mwz�V�qzvy^oy�z�z���v�!������UggTUT���¯�¯gT�{��fggTgg������¯gg����UggUTU������gT���ffgUgg��������gg���!��M��m���#�����[��8�I�C�n���y��y������|����������죢����������������������������Ԟ���[�T�I�&���%�7�O
�����~�~��������Tvt�s�r�v����6���1����p�s�����������������Y�M�	�O
���w�p�v~���Tv~t�s�r�v���l�U�Xq�s������������������k�	���%���]�r���������������Kw�x
���ܿ����
���D�&�l&�y�P�����
����>�T
�/
��������Ua
�������
�
���������3�����������^�������bX�k���>��C������_��}�g55�533�3g}cm6ﳽm�v�%f���������~~��O�~~��~�����^���������a��}�g76�7/.�/h~bn1���l�p��.[���Rh�5kuZi/�4o�e������������
^W�f����������������7������������h�7jvWi'�2n�f�������������z�#�z�C�p�i�s�L�2r@;pEVP<Q<m+�,�4�>�;�O�d�l�w�����
�#�>��
��������������������ƭ��
��t��t���������4��������t��t ��t��t�T��������t��t�����e
���7>jVR���H�����������%���HV��j��E�#�#�E�E�
�E�E�#��������H�R>�7�E�#��E�#�#�E�ج�����H�����E�#�#�E�E�#�#�E�E�
�E��?�>�?�
��������	++�	�
+�	��������heXuS�	+�
�
��	þuh����������	��
�	�+�	�
++�	SX��e��������������%���������	�+�
���� ��o�9�˫�4��9��/�ː�/��4��G�j{fj}�^11^�r�t|q�����j�|����$���$�J���|�j�B������G�r�b�rrKK�&�	���������������j�	S��ˤ���r�eG����e�����~�1�~�w�~~�w�~�1��������G
�z�z�����0��v�~���0B��������KR+%+
�~
�T��+u�+������~�w�~10����������G
���4
�v���2
���d���������d��0�
����m���c����Fr@:}77:��@�����ڳm�-�T�0�>�����2���tM�����2�V����3���3V��2Y�&���L����t�������>T�0-����������V�-���
K��K��K��K��K��K��K��K�����T�tY
�T��Y
��TY
�"�6
������������g�n�~��Y
��T��Y
��TY
�"�@6
����
��������H~���������Hf����T
�T��������g�n��p(���������������p�T��<}~�}��������<���4������T�����T������~�}�<��2
���<����p�4�t�p�
��Y�:�YY�%�$�~�~�$�%����Y�Y�:�YZ�$�%�*�*�4�4�o�ol��8�������I�I�������8��o�o�4�4�*�*�%�$����Z������u������*���
������+���
����u�H����d���8�lh�Tw�w�v�������y�m�\����_u����5��������^��/�7���h�Vf�������J�C�2�2C=+�J������V�hX�[�<�*�N?�Y�3�: ������]�#�������"��S����:��Y�3�N���������%��%�I�%���%���%����%�F�%�"�F�%�F�%���"�m�m�m�������%�@�5����z�"�m�m�m�m���F�F�
�V���m��y�j�j�g�wrPE����]�����}��������~���S�u8ӗ������������������)����x�m�6�����
���|u�w�}un]~�'�)�k�p�{�u�~������������������������y���������
����n�k�upto�g�o�>�4���y���}����Ϧ�)�Q���4���
g������y�r�=���7TRyy�t�v��z����3�����������*��������WJ�t�t�x~����8�tA&���ys�j�m�m�}���������������՗����������������
��:
V�x
�������
����������������������������������������d�T���T�-
�5�������P
����������x`�������
����������� � ����ee�pZp� � �������%�$����
� �B�(�(�BP! ������(�'�'�������$�$����
�G�G�������(�G�G�����s�$�$���z�h���l�?��9�����������%�$����
�������������������������_�{����������_�{�������
V��|
��m
%
�G���G�G�G���G�G����EQQE�EQ��������QE����G���-
��
����
��
����%
������
�E�Q�t������
�
���l�T�������^_|_j-Z7BG:?)_�s:y8�C��Xc�cs{~s�y�y�y�y�z�y�o��t��������������������o�����֎�~���@���,=��"��H(�`��dine��|�An��q��������������˗����NJ����ܨ�,����+P�מ���
���M���	q{mv��=�m�
�����RJ������C���w�w���7�c��l�!�w��/|�)q�%�
�Q�X��e�������Y�G���D��������W[���r�����0�I����d��?����q�o��v|wv���N��X��^�U��������������Z���������l�-ƒs|e��W�"}f��ڋ��\�G�Q�+�L�������~b����G���D����C����d�5�.�2�6�J����:#��:���t�|�m�c�U�Jmopm�v�n�]�TB���4�B�@D��d��$��r���������v�J�L�8�������8˿}~��=����.|Ն��s�=�x��zo<�B��������������d
��������l�8�l���	�\�������ʨʩ��ܧ��x�x��Ӫѩ��̉�Ш�ܧ��̩ۨ�~��������+U������n��/���nT8)m'����x�x�����x�x����+U��mT��s���_�����^���^�����_���������x�x������x�x��((��8���m��0���n�y�fz�������z��~���|����~���w�L����������������������������@���������������%������"���s�x�@�����{�s�@q|xs@�m��w~x� ���~�x ��_s�x������{�rr|xs@��s�x��@�����z�s (r{xs �2C���������������������������%���������������������$����������������������%����������������������w� x}s@n����ww~s@m� (�{��������|���������vk�6��~�}�xen�������������H�G�)�qtyduw��{���������������z�~�l�{������������s��{�y{��������������s�i�����|�h���o����b�p[N�@~���� ������r�@���na����&s���� ������u}{x�w� cn�������3�������o������w�~u?m���{�������D����@�����}s����~�szzqq�z��������s�}}�w��_o����G��~�}�xem��������������HG����������o�����x�~u?n��{������� ��~�}�wfm��������������G�������������(�����������������%���������������������$����������������������%������������������d
�����;�z�u�1�t&�A����"Ω̵�i�����&��L�̔��+��@�����~�t��vq�az�p�������@��������u�bw&�����8@�SJZu\ek pkf�Y8@,�����F)��:�������J\^GZg��m��n��|���������~���~�r�N�v�����Ư�r�i_��z{�wow{vy���}�p�sV��1}ns�o(>�������}�>�pt�lN[XKH�[ͨ����>��-
���"�?���4�����'::'�':��������:'�,�Ah�"����t�t������LR�A�S�1�S�c1���J����ֶgLXpjZ�@� ��=�P�B�BPOA�A�O�����������gŬ�\�]�W»�[�Z��3�)��S�����f�f�@�_±�R���D�=��̹���|��ͻ�M�V˹�$���Q�G̟�^ͫ�w�_�B��G�.����O�`�I�Τwϓ�RϺ�T�EDjX������������3��"����"��7�<�"�ߊ��m�Q�1@@ry�t��8�����s���pv�u:@�����r���fqv�u:���d@���r�_F�������/D@�>�L6�L!�� @���+���������O��h�h��h�h������[�N@�c@92;�����@�����1 ���y������,����(�(��,�m���m<��}ni�k�<�ytg�n��������(�B�nl�mva2�gW�TP �����Q���~a���w���e���z�����!uP�������!�Eu�������:�P�B�BPNB��G�=�_!!@1�@��Z�*������y����@u@��������_@��M��_��H�EQ�Ji�Q�wr�SrNG2��Jt��A��������(���@w\�EQx�]�nr�TrN��:B�N���������c�T�X�.���E��!���]^����g���������g�T�W�-�������|cQ�� ����f�
P����������+���(�(��+�l���l�>�vI����I���<5�������YaqT��;�Qvy�{�Q�ŷ�����`b��Z������
�Y`qT��;�Rwz�{�Q�������9�RI�P��P(�����*/�inW�����|ϊ�L/b\04�]������O��_��_@�P������(��	���e�,�l�,���|�}�
��v��������)��e�iy�����z ��������)��v��������?��������?����4��
F���������or^{g=Z�������i���
�*��������������>������薚��=�v�������������*��0��������������������9H����3��
�F���������os^{f=Z��P�����i���
�E�(J�-�����I�������4��������������i�^x�����z �������x��d
����6��2��3�������~�����*�*��)��(��!���=�
�x�e�t�pqR�t����������������J�͉y�iiylH����Xzdipsl_~UGJ��h��s��x������y�W�9�Y������������ӿw�y��k]�]s}�zw�~�{��m�h7���k>�Yi�{�������
�zt�dYg��rn�|���oM�򹓝�������������gp�tx��*�k��S���������������k�*�k�l��1wGb_]aT�fvs��t�+�*r����\�������zh��e�N;�h��_hg_@_h��������h_�����i�����l�u�~��~����������$rfP|KEU��f�a�v���,��ɼua��a�P@��d
�����Xv�v����T��@���A�!����!�K�Ty�	�����
��~@7뀙v�~��6����
������������D����
����
���T���4�[
*<�씒�������<�Jڔ������o�C��j�����S���R�'"��p�G�	�*��J�,�����)��!����!K�Ty�p��v�~��6���
����������������9������4:�T[��R
�T��:��T?
�T��:�T?
�T���t�
߼wO�V��VOcZwE�;��(
�K�&
�L��1��������H�u
m�4�"�9�!�4� �D�7���*��*�����~�b���������EL�pC�Q��'�]�V���O�
nLE�������
�
��3���(���`�`�����b�e���!�u��!��3�U��a
�������
���
m�O����%��*� �&�-�~�&��ހ���`���b� �z�]�A�)߀���F�9�:��5�$����
�_���_��
�E�A��������������b���w�}.��$X�'�����[�����[ހ���������poG�b{����������������������
������S�x�Y-��	���q����|���k������j�o�uh��yə����R��r�	�����T�i
�����_����s�u#�
�f�f��"���ss~ki�_����K����_���������"��f�f�#�u�s����_���^���T�T���T�T�O
�O��
Z]ukh���PUj=;�<��$�=�ӭ�������}�(������7�0�!���u��c6�rt�v}ra��f��'�����Z�X������,�W������a
p{��Y��
�XXuxmihaX_)(X��b�hu�X��
�{�T�K�T���T���T���T���T���TK�
�T���������������������������_h�m��x������������
��������T���Գ���
��������
�i�V�!����������!��V�iK�������
�`R�Go|iv��
�
�d�d�}�}�
���T�T�4�4�}�}��
�
�
�
�v������8���7��8�W�9��7����̩��u���x�t�o��v�w�p��E�V�3��'����(�������I�6���/H#�@��_��6s�2�r�����������v����)���	���������7�,u`melh�@K(w,�k�/�T�c�W�B�R�Z�s��Z��������V�:� �[�X�2�;�@�L�p������Z�"
���x�#�&��|C���@H�#SQ�4� ����+�� �2�й����y�z{�6C'r �v�'�Q�j���a��N�S�c������I��=��λۊ���6�O���F�u����������ɷ�a���y�r�v.D����x���yl�u\eh[��x���O�~�|�i�K�!� ���u���F�
���$
���z�z�������0�	�N�e�e%�N�0�	����z�z�������������������������������
��������������������
������������������t���$
���z�z����
�������-
����F׀����
�D��
�D�����w��P��ak�O����N���(瀰b�X�S���9}�^�H���t��T�U
�D��
�D׀�������7׀����]�]��FJ{oQ���$�w�v���
�r��G���
�t��K�KB�=׀[
��v�N�;�m��Y��������i�)09Q��瀷���]��
��T���
�4���������������G��%
]� c�mgc���cm����������*��um���v��pvvp��qu���������vp�$�i݆�y�"�Z�4x������+�4x$�Zy;�N9�������������@��?�@�?��@�]�?�?��T�e�[�R[ed\\�d��R�����j����������b��O�� �����e�[�j|ƒ�����������~�b��O�� [ee[\�e��j�T�SP����e�[�P������Z���[���ZQ�R�T�[ee\[�e��Q������Z���Z���ZŅĀ���������������4�
P����:�����
l�����9�4��t�M����J���lrH��m9�	��M��������qxttur��������������Je��
���sp�szy��}e�
���<��������cH��u�Rtyzuw@B�X�����2�����ʳ�8�g^zp}UY̲nx�v�w�ww~zm��#����Ԓ����������,���������f�����������������������~��t���x*��}�-�������������oA��c�2S�3_�(���%�Q�,�d�F��W<~����4���g�E�W�RC�tp��|��1����$�+s��<����
��
@�T�)�0��a�_�i�3��� 4��X;&��
���us�s9&%9l�_�n�hY5�����]��\�a�\�<�R��V��k���_�k���`�1�T����<�kOF�w���2���ϵZ6��_�"
�
��g���<�jOF�x���2���ζZ6��`�"
���g��-���~�	L9wu�z~\L��y����Ǟ�My�v�}�N�}�������	����������ǜ����z]�����z�7�����T������t�T�t��t�4�t�4�t�4�t�t�$���r�r���d(
����
���*���*�����TR�4(
��*���*����'
�4(
�T$�d���r�r�����n���Z�\������J�x�k�^kwwk�k�w��^�����~�|��}T|����z�x�k*kw��U|����z�w�k-jx��T}�����һ�����xj�������Һ\D�����E[[D�S^m��x�H|��|T}����.һ����һ\D�.����#����##�����#���������
�'�V�'���'�����8�����������L����t�t�2���2�T�2���2�T�2���2�T�2���2�����������������O���
)�$������x�r��O��������r�m��c��������q�ly|�~��"��|�yy|�~��@� ��|�ylqrk������e��w�}xt�����[��p�wtop�t���b�������p�t���U�������k�r�������#�����
����$�����������������U�������������a��ᰥ�����m����}�||}���€�����#������V�䕌�����O�V���@�P�[�������d�������������������������������\�R�\���D?���G������!�cL���������m����������?J���9_����������	��l��q�1�:���KI���������<�E�Q�8���8����?�E���������d�V��w�s������-�1���a��������S�]�aA�����<�U�i�u��t�,����������e���#���z���_6�������������������I�c�������l�����������T��7P�7���o���7������w�>��������>�����?�������������
�D�����B��(�D���D��(�B����z�D��)�A����NZ����ȼ���xȼXN�=�v�
�:j�TR�R�;���;P�P�Q�2�<���;�5������,�$�(�)���M�U�]�(���)�+���+\�T�M��q���q�z΂�3�����4��y�p�m�1��
�.�o��Qk�e�^�
�����'�u�v�&������^�e�k����7|��e��pex�#�B��9��o=������9�B]:�#��/���ݠ��p�����"�\&�����"��iR��e��x�p�����
hB���
���R�XD�@���������� �_*����� ��pX�����@���Rp��c����h�E�����:�dM�+��A�����*�[ �����$���0�b�w�q�f�]�]�]�U���9pttp.pt���q�������to���q�J���N
�����J�A�N
���A�J���N
��l�L��6�H���������������p�A��O�YK�I�+���+s�r�s� I0�"�/�r�I�H�q��q�I�H�r�v���;�(h�q�j�u�q�i�F�����
����ﷰg�����(����7�]F���$������g�����)XP
��������p'���7���)���28���]8�����j*�%��j��j��j���A�o�]��"��
-�]��"��-�]��"��
.�\��#��<]�i�|����i�|����i�|����j�|�������6���6����6���F��ٯ��������6��UaZ�g����<��xg��w��������������������;�A� � �A�@� �!�A�@�!�!�@�A�!� �@�9����ŵwv�mQ��uL�flD�^A����94�wHMZ��X���a�ǂ��ݏ����,���!���|�����)�
�
�*�)�
�
�)�*�
�
�)�*�
�
�*���*�
�
�)�*�
�
�*�)�
�
�*�)�
�
�)����[�O�CPZ[P�5���5�Z�P�CO[[P��P�[�(ǻ��������.�S��"�0���@��:��M���������`ed��e��������S�O����[/:~~|yw�{���
�>�g�7�.�iczdfp�t���+��&4��R���������l�^�����v�Q���B�R��������{�xxgd~y<��/R��c�4��j�c�'��^������d�<�/�g�Z�8�%�V�������d�
�
X������'nh��`����z�{����{�������@����X�'�&������'�&����H�`�������h�������-�Q ���N����������k�g���-�����`����`��%�`�������a�z�x�w��wx�z���xs�h�t�T��~����������T������x��������'e�'������'����
����
���������x"�888ށ888ށ888ށ888ށ888ށ888ށ��888�11�
�r�����J��8�
�����8��m��D�ڱ��8�
���8��m�898݁xy���f�΢�{�c��E����H�����
������$��D����EQc}{[�h�f����KK8݁��898�11�
�D�r�����'m�$�������H��D�
����m���������>
K��4�T+�T����������������DqT1���aa���1��q��������������������ӌ��������������$�����ӊ���������4��Fl���G��u�j���������/���>�c�v�Y�X��wr�lO[MOO[�Olr}twXPY�v@c��>kPS�/k�������_�`�b�j�p�N1k���I�|�������
��� ��F��k����u�U�)�4�S�'�-{:d��@�G��
&zz�����E��w�v��lmul�c��h��r�������]��t��
���bF�s^�[X�V[
��v�N�;�m�Ћ�������D�1��� g�%/O���,k���j�F�?�j}����y�y��k�����D��
�D��������'���w�s�xx������
t�D��
�D�������7�U
�1
��t��_�>�h�jt�h�h�j���bg�S��g��T.�
�
�T譁����b���������j�h��>n�_K��D�;����D����
�h�/�����4+��|
�Z���su���S��&�yp�rxo�h
nr����R�/E��o�qwn��������������������썍�����c�@�
��"�;�;��d�������xp��X�B��B���������}�t��q��۽���������w
�
�T������d��m�l�su��r��|����j���to
�t�t�
�t�tD�t�����E
[
�S����)�����\�<�����D
�4x
���/
�m�
���
8���������{�uNv����Q�*�3�3��Q����~Fu{uv����+�N�R-��X�v�D
^
���v��X�R����X/
m�
��
����
������*��6x��l�l�sv��r��}����jX�m�
�9
��������)�����[=)R����~�[�~�w�~5-!��i��5
��D
���"�~�v���_��������V=)[���D
X����w����a����u���q�u���� ��f!D!��� }��q�q�uu��r��|����j���to
�t�t�
�t���tD
�t�tD�t���ì�|��r������6�Z�<:���S�
�vg����$gJAv<��������ֽ�Y�i��<A��J�������Z�)����
����������
�����P
���0����u�l�c������
�
����*��5x��l�m�xy��v�������{����?�������Z�S����!��
���4���t�9�M�kj������t�9�M�k��x�xw�����
�J�1��1���Z�`���w�w�x�n��=�O�v�T���J�1��1E����`���������nm�=�O�v[
��m�������� V������
�������)����
�gN/��#��-t��e�Z�\i��\�������h^
����ֽ��?�#f�,�����W�S�����CZ�7)������
����6�Z�<:������
�vg����$gK@v<�S���T<@��K������Z��i�i���#
�@�@==�)�����\�<��� �!�������� � �i�j��D
�4x
���/
��
�
����w
����4D�4�9�/��������^�]��^�]�����9�4o
�4���j�|����ѡ���l�s��m��d���������t�����K��/
�������
m������v�~^^���M�M���t�M�t�j����|��r��u�s�lm����d�����������t�����t�
�t���M�M���^�~���������2���/
�����
p�
�T��
�D
��D
�����T/
��������[
���]�]��E
������������O���m�|����*
��\ee\��\�e��s�
�����V�e�\���9���7��M��|�?���S�#`���������<����`�R���w�<����ED��z8D������^�7�E�&S�M�X]�Z-���`L�M�L�����<�z����=��a����3������l����x�-��v����x�m��qY*m�����S�Z�]�e�a�u�������ж��X�������p~�v{�}|[^s\�I��F�F�S���#Jw��a���â�������������7�z��_����
��%��>�}=�a������������������f�4���4����	��)x�5��M��k��4���4�4���4���+�����
 ������
������
���T�
��T��
���T�
���
������{���{���{��������t���T��
a�T���
�TF���7
����
�Tr
����J
��t�T���s�R@�6{���@),\��,��)�@�ə������EQ����Z��T��
a��������������������������������������������������������������������������������������������������������������������������I�Is�~��������xx�x{���?+)]��)��+�@�����8�s�~����������v���
����������T��@����P
��Tx
����{
��������T���
��T�i
�
P
��
������������T�T�T�T�����T�/��������/�T������T�T�������l�v��T��
��T�
�T�����!5���
��������
��s�^v���t��
��4�����~�������4���������������4���������
��������������}}�{ptr��m�g�}�e�}������������������������M�p�������������������������vw�y����������ۏ�
�
��P
�������X�t�j\���b��'�d�j�����гg�[���L����״�(�
����¯����#��w��m��ݿ��������b���t��G�(�r���|�k�j�>S�l�s�t�������� =���������S�l�s_ti�q�n�����v���„Ņ�3I`QnN�^�D�y��a��g�T�Q��3I`�nȜ������n����;((5;!!6����r��y��������q�h��������n}�����.�d�9�=k��%���)���}���|�|���������|�{�z�v�v��������u�yyv�v�x�}�������������̖ҹ�֐�������a�c���r�p�p�xs�w����z�n�}{������w�v�v�����������������Ӎ⟳�����͂�p�T�l�Zx�e�y�R{��0o|W�b�e�V�H���q��u��O� �z�|�n*�)j4_SnNe]_\]“��†gwkrmn�n�n�y�{��ʼn���Z�lvTdp@�J�I�4�X�^�xԉ�@����������j������w�v�w�������@~�n�y� ������y�o�r�pm�ue{`nY��n�p�r�@�^������r�ss�~�~�x�v�v�y�v�����}y�@u�wzD8{�{������|�z|{}{x}�~������y�z�~�~�}��	�;���$ˉˬ��7y�8��8��S�iˎ���;���	D8������h���������L����p�`� �d|�j�K������='��������t�<�<������vug|c��`��|�[���hf�@�_�&u1�||�~��y�o��������9����������ut�w��KrjR|Y�% �������ڬ�Ӣ�
2�H��������[Q|+�<c�g�v��EU||��zzЕ֦����������dBr;�9�Wd�������Ir�Pmu������͆�~������/���/�0���/�/���0�/���/�x��y��w�`~"�b�|������ьҋъ���[[~!�[�s���'��ҍҋӌ��l��3z���Q��������R�#�k�r�w�:�v�����������������t�v�v ��L�F���T����Ő�����{ό���������x�s�x�<�ծ���������������������
�|����D�B�F�+��D�~�I�#�6�B������7�}IH_I�D�&�\Ӂ��@��r�{�)�5��
�������?���}�����������������������z���������
������ T����&�#?�a�O�C�����:������������)��x�{�}�������������.`�A�<�~���������$��!��	������������z�~�|�}�}��������X�X�X��}s�r�uj~^�a�t\C&OD�I�H�}���������ߤ�@������J�6�	�r�B�00AA00�B��������A�00BA00�B����������N������p��i���4�r��������������������t�����������T�������_�	�	�_�_�	�	�_�_�	�	�_�_�	�	�_�0�
�$��k��t������
�t�
�$Kh\�b�u�D
��������
���<���<�<���
��<+��t��+�
��'��''�+�
��-
��
����
��
�����i
��T�� ���������������i
�R
��,��T[@R
���������
�4���]
�T�3�C�@Z
�4�
�����������K*�����������K*�������������K*����T*��
��
m�������{�z�����s�{tq� �p
���S�X�k�{���E֫���}��]�p����
���FV��*
�K�H�W-C�C���HK���h�@�)�4��
���)�@�hK���H����-�W�H�K�h��)����
�4�)��h���
�������������� ������������-
���@P�����@��h���!����(��@@���P���
! ���@@�� �!������@�@���! m�iP�t��
�����m������P
�����������������������������
�����
�����m��a������� ����������������a����R@	�������@�P(���" ��Z���D��

��$�����@��@D������
%����D�B���" �
@ �@��� �$"���� �@D�� @�$���

(���
��>
���jm������P
���P
�Z-m���m����
���
me
����f�4�4�����-�4����������L�L������m�������x���z�z���M�M��z�z��������V``V��������4�3
���-���ժ���L�L�������\�U�I� �����(�f�c���}����s�m�������-� �-����������y�i�s�n��������������������K�8�A*����,����g��t������x���^�L p&����{'��%�%���{��p�V�J�9��$�5E���E�$�ݑͥ��}��r��:CW*����[������_?P`X=��}��[A�����bo���/
���k�������k�������(��2�2����I�����2(��U�J�U��2�k����������������������������������������������������������d
�
�+��Ԁ
���
��G�����X
��]
��g��Z
��X
��]
��g�4��4�
���
��G�4����
�t����
�����������������T����T��T�����i��pE�77EV@p�1
��U�_�x����o
�H
6
�f
���������I{��
_gg_����n
���7���b��n
���7���b$
���Xr�zspp�s���^?�`�������`���^��
$
�_�`�b���������������Z���[��z�[;�Z����$
��&j�W���W�j��&�[�@�"�U�����z�U���U$
���Xr�zspp�s���k�G�+�P������
���T�v@�T�
�K�
����x���I�L��L����I��������I�L��L����Ix��^�
m����K�+��� �t�������t�����t�t���������΄�PH����t��
��������ZV����t��
˻WL��q�q�r��H�r�qqr-
�hn�����n����u�~���t��
�t˻WL�@�m�A��
˻WL.���t�
�JMs^\�t�lj�i�!)���������tI�K�^�����0���������t��H��������!��ww��x�t�^B�<``uf�t�`W�U�4
�x
��������t��t��t��t������*
ɽYM�$�����
ɽYM�������
ɽYM��w�w�x?�)^�cj]�Dce��s��
���ҳ�xk��.�a������
ɽYM����$��
�18X:b��}}�}��F�hX�a�"���!��
�D�����(�������� �	��������}}��}���b8�1�m��o�9�����t�������t�����������ʓ���������
�0�

�%����nl�lb
!�+�f�z���x�!�����p��|/�7�c�h�h�k+��^���[TH�P�}��.�}{�{MY�ɷ�����7��o��_qccy��4��{�H]���ȣǦ��������ɽYM�|����%npzdc�Z�}!��DR��߼�
�����\Z�j�����ћ�����|���0��!�����߼�X�E���������dk�dNYTMNX��������������
�0PcXR}��6~YV�W��������t���
���
��
�S�
kI�J�X���%��Ba��8�k�������#�E�����
���b�>�����[=�:����-
��
�Y�v�k���2��������
������O������T�����\0�OU�ƀ�������ԫ��afob~h������S��wk�����9�&&�����F�D�[� �����_���J�������ͽ���� ���"QQO;���������2���x)��+?�q$�@8���q+��*;�u�~-%�x�x�x��q�u�utg�f�h�%�'��E���̹VL������*����v�����˺VM������`�����w��z�������TE`ubiq���zup�p�J_e���'�%|ŕ�}���r�����ɾ�ɿ�dZ��,����������ɻ�˾�gY��%����8�>������4
�x
��[�;������k�t��t�T��t��T���l��*
��MC���
��MC1����
˻WLN͜�f´[V�mJ�J{K/�o�qwn�bce��s՜��
����ѵ�vj��+�^����
������d^�]� ��� ��
�b������l�Ք���m�)�xy��x�^H�Cii�}l�\N�J������p�"���#���k�����k՜��͜���k�眫�
������t�������t���:
���o�V�t�t�
���c7�/{{��{���b
�z��f+�!b
l�l�n����%�
�0�
������Ǔ���E�t�^�+��jf�f�l�l�ɽYM{�{�}�.���}P�HT�/�7������q�ͻ]H�{���4��cycq_MY�ɛ�������Ǧ����s�������jZ��\����
�
��!�}�Z��cdznp%������������� �0DR�������������ɹXNMTYN�dk��d�����E��X�ÿ����!��0W�V~Y6����R}XcP�^�v��H��Z��t�|�z��(
�	z]�����������������������}�z�!~�����q���{�y�z�������p������~�"{}~{�=�U�������������������P�?�����������Q�=���{��~�����G
����������4��I���H�t����Z���]��4����1YW3�6�������u�bQ�������������E����d]�"��(
�T$�7��/�V�������,������������'����t�
�0����4�����4����
�'�%�Y�T�8�l
�������9���|����2'�8�
�
�(�%�X�U�7�l
�������9���|����3'�9����40�
��k@���t�t++�����U�U�t�t�t�t�C��<�<�4�4�4�4��
�T�T��������U�U�t�t�t�tC�++�<�<�4�4�
�a�J�Z�Z�Z�Z��44c�����������T�S������������c��������++�T�S�33����������Z�Z����
0��g�Qv����O���y#������D��O��R����K��P��K�������a�XWaaXW�a��������a�WWabWW�a�������� 45! 5����4!�� 5���4!����-���.�.���-�.���.�.���.���.���.�-���.�.���-�.���.���X����c�c��@����c�c�����c�c�����c�c���0���ɂ���������ь�8�`��a�@�a�NdC�9�s�����b�c�����c�c����@���c�c�����b�c���������X�������9��X��E�-�JF,b���������H�5����@�Y�&�n��Ë��49�H�������b�F�8s��̷�������p�z�S�z�N�{�R�{<��	���`�_�����`�_�����`�_�����`�_���9��'��''��'�������pq�D�-A��&�a�a��-�D`qX_1�`�A�M�t�CC%&*)GGbb�I�c�~�c͋�������%�)�G�c͋��������c�����B������ս�_�m�����
�3�P�D�33DD33�D������j���Kgl:VF_-zM��W�S�R�n�\nn��nn\�n�Z�E�C�S�Snn\�n���n����������Ӿ�N�+�F�:�g��˝����V��C�&�&�Ӌ��l�gZ���G�%�%�G�G�%�%�G�G�%�%�G�G�%�%�G�P�8 X�P
�����������*
�6DD6���s���r�p���s���G�4�T��mm��v�)�t�~����̩�v������������VJk}ltu�(�vumm��4�[��	`��$�����O�?���$�d����`���`�z�w~���y�8�M��v��a�\t�i�N��߶܎�`�����4���s�~���nkA�[�"�gwdL�a�G�$l�Υэ����`v�~{ҊꅮK�-�5��%L�
�.��U <�B���B<�Gi�
�Џ����|�r�`��0�+�=� �E��=��������w����	�y���K����w��"w����o����I��l�khslji�s������Q�x�K�)]`������J�'�����������R~����������×b�B!�-�(��pW}��������������^^��_�I����������|�Dc�/ %�)���p}�����[���D�e��\�]�]Ϛ����������F|��E��/�+'���Ǚ�����eT��G��f������{������������H�B��-��*�\��������m��������N�����N�N�����N�N�����N�N�����N��
0�
���
������
�@�j���<�Z�\�
�f�zd?�*���1�"�0��-���)/�!U�=�I�T���AI�z�W�dd�]�,�O��+2�=��q��4��{��E�)��<��A��1���t�1�j�1�(��w�;���;�;���;�;���;�;���;������
�	��u��p�������R�@���@�g�����L�)�w�te�C�#��B��3�B3�C��V���j�>|���肙�����i�5�4�_:�v�x���H|�Q���̋����y�P���B����CĻ�*��O8Q�z� �}y����������2����!��v�����
�w�
���2�!�d�x��������%�%���u���ou������y�f�"�2E"�c��i�P��8�+�H�>��V������V�>��8��P��i��cE����0����}�D�8�F?�:/5mV?�_@�)������*���_AU��m��֡���F�8��~������4�p�w����:�{���h�I������K��6��AOR��||�|�����7���:�:�-�R�=�6�j��snVK�
{Qr2w..�4�$�<��1��U��n����k���;�H�K��T�C�$�[�����E�Eq;rI/�(���6�������F����+������G��-�7+`=(c2�F����]�U��=��P�O�>��U��l�������x
�x
{�����
�T����@�q��]
�Tg�t���1
��i���t�
�c�����*
KWWK��K�W����#�1b�nZ�yO��L���/���õ������B�+��
�h'X�=�-k7yS[rWmK|C����O�]�e�w�,������i����@�R���F˿���W�K����Jv�f��|��������)���}������xy�����k��~�������������JJ?X7gf3.x,+.��46�?�J�G�X�j�kځLJ��������v�l�~�d��o��J�L�N�*�4�A�@�P�ba�u�����������������l����~��x�y���JJJ���������ww�}���IIJ������������������������Ð��N������������~���L����kR�{�m�m�a�U�U�L�E��C>�<;;{mDRs*MSP��w���������m�s}wy�<u�|�������������ƌ���
����Y1��0����Y�
11��22�X�48��C�1£dz���ʧ���r]��^�NJ����qZ��o�e�~|Z����~�����W�4�3�X�V�3�2�X+1fIHJLh6�7�����:�g�f�s˂�u�n��c�o���r�~�E�M�U�U�a�ml��|��ؚ��ѩʵ�����ɩ��ӛ��l��G�@�/��' ��"�vg9���������~�{�~�i��������ye��n�a�M�����������x����x�����,���w����M��������������w��^�����Fy�l}�l�
����6�6���x����t�m|�c�w�&�L�L�+d�t������������j�iJ�4qq����ߠ�������˚�|���O���)�x���O�p�Y��p�Z�,���,��p��W��wT�,�J��y�I���������E�7�w�t����4v�Q�^����6���_�4
�T��T�4��
�������P
����q
��q
�bty��
����%�
��������%�
���
�@����t��T�t�L
�t�to
�t�t�
�t�tD�4
�T��T�
�
�4� 
���t#�4
���
��+������P�P�P�P�����]��w�~�P�P�P�P�#
�Q�P�Q�P���P�Q�P�Q���k��#�4
���
�������]��w�~�P�P�p�p�#
��������������i�P#�
�T��
��
��/�0
���
���
�x
�`���t�����T_`��b�#��#�b`�_���
���y�y���Q
��
�t�3���3��
�V�2�2�VL
'�
�������!�!�yr�r���1�1K��-
��/�H
������!�!��e�+�������T��T���T��rr�yy�!�!��!�!�V@�;���v�����������y�u�w���������{�{�{����s�{sq��v�w�������������������������������t���z������z�
��z�����m�
���m{�`���m����m�
����
�
��
��F���������������>
�����������������v���
���m
�m
�m
���%�������%�����W��B�S�	q�g@\LP���{��|�����������@��)���҅����%����������V�����`
���B�B�B�����
���%��������%�����
������������������������������������������������������������������@w�\�����h<��;��v��-�;�������ݯ].��Sg9G��FXVi_d�:f�t�l�\m�M>�U�:\!-<F<C;D�)�Ե���4�C���5��5��4�C��3��.�N�$���r�j����m��2��	�O�
���W�������q��q����q����t��*�Q���t������
��4�������������+��j@8ߪ�rr � Rr���@����L�iO;����{e��S�w�����)}5�T��Ԓ����������?����>��B�	�o�-�Bvˌ{�b������є���������~�8�������w��������0�R�8�#�0�F�2�SXteg��J�]��l��A9�H������H�8QXi[s��y�x�y����\��HN�-�fX�R�22�<�G�j�m�kk������K�L�����Ь����̬������[������H98HH89H������,,�K�UU�K��,|����������}N�v����������}�|�u||��a8H��������H98HH9��������v�[�����y�-�r���n�
��� �f�����������=�q�����F����)�����?��
��`�9{��d���P�3o�&?����(���$��������W�2����
����3�C��Z
���������������`���@]
�t	�t�����T������0�����!���,���J�����J�J�����J������v�'�k��$&�8�C�����������������P�B�4��n����!�4���8���V�����%�%�����%�%�����k��,�H�����T�����4�Tw���������/�+�,��{�{�a�{��������������L��{�{����������
���=��=������

�

k�
�����F
�o�~��������|��܏��f�
yh|lid�boo��p�������r�mmrrmv�w���~o�v�F
�����I
�����������v���	�o��T��~�������������ƣ�������@��V���5�!7EV@p �-F�1�M \Z�G#�n'���x�!������ϼ� ����1�-�+���T
��S��(
++EZ��[s�p�k�������������������T���������������~���O�@�������������G�A� � �B������H��E��B� � �B�c��
0���-���/���-��-�-�-�-m�J#66"���!���!�!���!��p[��m��������m�V�J�E��4�6��H���`�`��Z�[|]~c�`�}�����������������p�G;�-�7���-���m���������{�<��8�Yn�,�=�a�u�K�K�v���Q�.�-�Q���j�K�s�[�hshs�\�h�F�:87s;\Fsh�[�t�����������������3]�-3�s�\�hsht�[�h�"����e�E!sh�\�s��������������-�3����������~�+��**���*�����}���Mz�]�c�.���p�����%��$��f���M������5�5�2��7�7�<�������&�������U���A�+��+�K�������q�5�P�Pm�;XY����;����v����2�
��,�c�T��T��:
��,��[��R
���T:
��,��[��R
����� 
x�t������t��t�
��
e
���:
��,��[��R
���T�� 
��t��t��t�ԙ���t��~S��(
��$�t�����
��Fh�͉y�y�}~����������������������p�j���P���P���jprk�5����j�T�h������c���
���c�����t���������t��������
�R����*N��^����Ȗ��*��
�R�D�e������jo���k�4���������p�h��4�hplh��/�X
��4�X
��9j�oqj����h�p�����4���������l�h�\��ƙ����;2
���;ǾbP��0�&�M�	q$��;1��
�;�$9�	q&�M���t���������s���������T���������������
���
��|~�}�S�t�������������K����|�}�S�t�������=�������u���������=�������t���������������t�����������������������t�����*��w�����)�)�)�������(�(����������.��������������d�d����������Z���N�����N�Z�Z���N������N�Z��
�Q�+������A�@�A������A�@�!�����������[��������	���	�������[�������P
��������������P
��������B����
�����
����a�
��+��1�4wx�{���������~}�g
�4�������t������4��a�
��Mr�����&�Ȃo�l�y���
���������������_��l�Z����b�����������
������&���Z����_��l�Z���b��>�������T�t�4�t�9��lF9y4�d��;����1�?;�U��Ғ�/����t��t����<�%�����%��<����"SKj<5�e�Z�>���:�$�����������$��$=�:���Z�>�e�j�S����m��������$�������5���������������������������4��4��4��4��q�����(��������������f�?�f�?����������(����q�*�*���*�M�*�*��w�I�9�(9II9�(9�I����������*�'
�w�����d�A�4���6�7�M�������R����*�M8�=�I���F��[-��2�	�~�����������
�0����������X��P����d�ow�����4
�4�����b^��hvii�!r(u)����-���v�jzfj~�����qs�����o�q�z�az�qHoC�wq�s|q�����j�z����������)�(�!�i�v���������i�#�o������#���v�i��%G�������������������T���;���;�;���;�;���;�P����
�0���V�v���i�W�P�V��gu�m�l��w�a�|��������|�q�����{��c�Y�il���i`d�H�_�_·���I�5�)4�����y)Y>B����ݮ��U�1�1�V1h8SM������$�w�h��#�h�A�Q�WƇ�����¹�Ð�������v��Z�]�����;�();;)(�<���&�U�1�1�Uԡϱ���B.`������������	�����eSGtCm�$�t��]�$������t��t������R��4'�4����$�B�L��8��,�L�9�}�x���9�����������������������`Q^fxOoDk3d�G�������Դ��"��T�Ua
�������
�
���v����s�X����Q����������F�55EE65�E��������������������<����xi�UNg�s{�����f������<ϖ�Җ~�h�r�8��4�W��{��m�X�x�|������������c���������������q��J�_�s��'�*0����󍂎������i�ZӵԵY�n��5�U+������"�C��������������~��?��i�h����y�v����x�n��n���n�6������������������>��������#A0�W����9���
�|�x�����������uz�l������������Mx�|��l���������T�(����x||x���x�|�������T�*���0������(�=��`��h��Z�������6��,��
�L�8��6��-��
�I�8��6��,��
��������_
���-i1Yn��||�|jj��k�8�d�J�!E�+z�$�9�9��$�+�!��8��������������YisV�>�c�r�bxy~v�z\\�\}v��{~�^�ws8~644�6�8�w�^�~��������������y�b�r�c��>s�3�%�����������p�[��rr�c�r�r�kii~kssqr�b�r��I�I���������V�*����B�+$$c+CB�~�����I�I������%�%�U�a�a;�U�%�%����
�5�?�?H�5��
�~�����)���ԫ���
���
���
�T����t
������������t
���`�
�����5�!J�����
�J����n�����
�J�����
��������������w���N��k����+���m��T��T�T���11��������W���
�E
�
VNMDH>>3�5b
d�-
�E.�
���������:��������V�2�2�V�V�2�2�Vd�������'��c���U�/���o�c�uovo�c�v�?�%��	q��|����������~��f�F�F�
�0�.�*o�c�vnvo�c�v�&��0q��|��������������K�T�i
K�T��T��d����h�jw{i^u_oYln��u��s����
��o^��i�w����hY_��u{�j�h���������������w����u�ji�>�q��w�[��GA�?�ij��k����Œ��������[�V�(1g=V����������i�j�N�bi�6�%�Qt�b�(���e�nz�f�l�4��u��~������d������p��������������"������v�[��~�}�����d����t��V��l���������d���v��tş���W�4��t�t�����������}�}�}���������"��C�Vt[�R�t�����}~��[tvR�[���C������lj�h\^��a\�Qwt\s[�R�sj��z������\oUwQ�V�f[�VT[��g������d���k\c`^ebi�O�bt���������6��Q��b�(��T�e�����|�������T����T�&��&'������d�q���������:=2G<LCYR��hn��@K�5�������
�$������������c���{{�q�{�<�<�{����������{�q�z{�c�c00�E�3�'�ҥ��}�}����{���P��RH�L�������byz��{*Tb�#E�.ᕖ�������������������z�<����������_d�_:@sgD�������_�^�_�*d��J�A�	B�ɴ�׵�to��������'W4p�w�ο�š������������v���W���X�M��u�Y�������1�A�3�g,{ ����հ���������	y�L�� �����Z�=�x��s���a��v�^�������|�Z�Z�[k�.k�/k�.h�e�m�f�$��6�k�+������ː]V���$���Iq��o�~��QN�ڈ���7�.�;�������gh��h��V�N����D�<��������{B���3^w����/ۍ�ֵ��5�b�	L�Q*��G���J���W���}��ϗѝ�ڏ�����������y�������� k�T��U���nn~ryj_�M�l�N�y�|bm�����m��T������]bj[��X�]�~��-�u�����[_k[��T�Z����K�N�W]dW�T��]��T��kY�acYU�a�������ö������1����r��&�>k�f�b��r�(�yw�vE�^n�w����������������"�'h�R�cl`j�O�b�����������e���nf�Q����a�WT�`]�T��t�i\~{�&�X�U�3t�O�Zq]s~Q�[������8q�Q�]sZq{N�\���[����k�P�`m]l�M�_�����������|��r�(�n�h�d�&�>�l�e�c����������o��������v�D�d��$��H������6��}���z�~��������t�1��Y���b��������Su��������\�������������������q�����������P�����y��������������,�:|��`�B�/��O��������~���T��a��KJ�~L��y�����y1V�w����y�:�p�I>�/���2ndgaWr�s�w��	��	=������������!�Y�	2��R?�2�"��?��=�.� �O?��U�����<���<quuqqu���u�d��dV�Tqu���������"����w���+�������B�~�o�ftaz_��V�SR�t�9�K�x�x�:�K�t�p�;�V�w���x��������QM�M���t�����#���"��Y�(�)�������#�`�Q�x�g��i�hi��V�K�����������l��f��T����'F�b����(��-���]�������ݸ�u�W�h@JM;uT|NwbdghsK[b�e�i���(���{q�}P#�4%Sa��j�����_≖�����������`�/�7�b�b�/�6�a�a�.�;�c���}�}p�m�m�lj�i�0���+�.���1�0���.���{��������\�YY�F���C�?>�AD�$�(-�}}��}�[ׯ���M������g�Y�S��T�*�*���l�SmMrWJB`e��n�ū�)���c1&E,u|�����Ѱڡš�����X�MN��9*
�T�(�T�3���3�T&����V���
��]!zl�t��ahqr�p!s,��o�"pr�rg����l�!�������������������|���������������������N#��l�[he�e�e�����������zpK��^������7�L�w����}���� 
 c�b��*
�[��)F3�RtZ�>UK�L�L�����dl�lh]rd.�^�7|�}�}\".% _q�q�o�y��~yG�Ao��k�zAï��������w����P�W�����������~��|Ԫ����A�����y�o�q�q���0�[�������]y��Z�igmpg������ː�����t�@�6�)�H�����W�����������\!zk�t��aiqq�q s,��o�!qr�qh����k�!�������������������{�����������������
����N#��k�[ie�d�e�����������zpK��^������7�K�x����}���p ����
		��
#`� R�N�{��M�{ ��xi�wi9�#G�s���������E�����}T������������l�+������{��X�|���������V������}������2��h��8p�ihE[��&�Yr!h�g���R��o��q���������-ε�ߝ�A������ ���U���Ǿ�����Ծ�*��������}�t�~�x�q��i#�E�3l�g�c��2�F�j`�\�Y�=�u���r�r�qrq�s$���>�tY~\w`r�k�2�Fclgglb�E�3�j�r`w\~Y�u<����r�q�q�q�rr%����t<�Y�\�_�j�F�2�b�f�m�1�F$�k�q�w�~�v}�����������$}���x������$�k�1�F�������E�2�j$��������t��}���������������������������������%��%����%��%��%�L�X�0���X�/�X�/�������T���T����T���T ���������&�O�,�-�O���O�,�-�O��jj��k��1�����'��
�'�-���4�n����O���x���q�i�ggg�h~ie$DN�y�W��������v�w���#1���rH�e�%����:qzt{s����������[����s�,�w���������!���w����"��"��0������t�dcubhg�c������8��cliccm�������������id��@dmh�o
�id�0�B�cli�o
�id���Bdlhccl���������id����@��Y3�W�,��zh�ehjwmy�xj�hhj�
gk�
ditiy�7�4�k�g����
}R�QP��t�����d�,�c��*�p�q�q`NAp@�`��J�Q���zH~GF�+�/�2������������rY�N�'K_IFF_��ʷ��зIL�	���P�&0������h�Fyz��y�\\�[� V��������_�
�J�P����m�z�
B��pg�fsvy|s�#L���������c�|������������gV�XTVtbe�wv�v�N�A(�$�h^~mo_��~���|z}y~x�|n�f�{D��BY�L�\�'�
��>mZR{Qss��t�N�]�wig�g�X��n��Ϥ��O�Tͮ����m��w������m��w������m��w�ŷ������	��v�����|����iI�#&�bS�S�!�����������m����v�vu�� 
�
�D�4P
��3i-k�b�US�T34��5�II�I��yq��߬����
)�
�
))�
1�9�j���4��������:�P�*�������������C�3���������+�������K��}�������T���
��-�M��u����jmatvhj_|[�t>4a@�kk[|^4<��N�����hc�_���/���2�2��ģ��֖k��E�b=0���/���Y������� �-�"�$�3Q��t�l�Z�[�Y�f�b�e���7�]X�U�nPI"�R�g��ɰ��e��������;��o[��1�Hw���T��
�T��g
����<��R���;JLwgV�VL�J�	�B;����95
�4w�2
��������
�N:�9�����՛ͻ����ů��F��4�O
�cb�c{������"犖����M��88�']L�����"/������f�
��UA�������=�0���;�}��������������Q�<�0�^�'�����0����ř����}�W�}�w}�;O�<�0��4
����
�b���w�}�GU)@�'�eY(.E�������"E(�Y�"�+�G�}�v��|fW�}�x���?�r�?��Q��<����������ŕ��z�E�٘������+�0��@�
�4��|��c��������������"��-d��c��|��.�4��4�|�q��\�N���E���E*�#�������"#*;QE�"�	���9�a�Rqs|ig�4���v��������ߟ�	��ތ[��l�i����f�����k�����8I����`�����Z���\�����u���ρ�6�ٿ�������<�������0�J���A�e���c�i�>����z�8���qF�l�;�7��M�t��H����������$��v�"�?-�=���x�G��n��������S�-���������u�������������������b��������7È������
A���������
������w�c�������-������E��������f��7��-^���������D���Nf�������r������x����������������~�������5�8�������~�O�������	 �������K������������(JD;��;J��E��Y�Fk��T���«��F��Y�E�A���#�	��#�#�	��#�$�	��#�#�	��$���R+��7�TS+��V
�T�}�y����� �
���`
���������$�	��#�#�	��$�#�	��#�#�	��#[�pdIH[<<H��I��Nm�}�!7�5������'m�w�S�@���T�|�z��J
+���J
+��r
������@�
��
��G����������������
�x
����)4RMD��DR��/��@�2o��[��ͻ���2��@�/�1��$�%&��%������%��1��:
�ԩ
��R
K��w{{w��w{�����������{wS��::
��,�u
��R
K����X
�@l
���A+���?
+��c
����������V���w
���)�/e�@�2oZI[BBI��Z�2e�@�/4�M��������1���%��%%���&�����1�Q� 
���{�w��w{{wSw�{���������'
��1
���
�����M+���L
+���
��
��G�@��X
�@l
��
�4
�������Y�X��y������y��X���O�:�>�+�N� � �����>t�:��O���O
�����
���%�%�����%�&�����$�'�����b���
���%�%�����$�'�����#�(���
�����Gg4�(�K��
�K4�(�Gg.�S�1�>�P�;���;�>S�1.���
���F���
��
����ڨ�����z�z���'�.�<�!b�V��[�b�-�;�P���P�-�;�b�[�V��!��E�$��@��h���h�
�?����	+�����Y�Z�<�	[���	����Z���Y���+��	��
�d
��������0d�A�1]ZInBBI��Z�1d�A�05�K��������.���$��$%���&���������T�
`������X
��+����S
�@g�T�
�����T�����������
���B[PP�>P[����,�c��s��£�����,���P��
����t�
K���:
��y}���j
K�y}}y�Ty}����
K���
K�����[�R
+��X
�@l
��
����9������t��������k�,�ccTsNNT��c�k�,�B�P��>ƻ����Pn���4R�T1
�T7����}�y��1
�T
��8
K�
��'
�T1
�T��
����@�
��{����X
�@l
��
�����o�0�v��@��0��<��;u�^'\�	=*�S<�,cXP�*�������"����c`�[����h�3\�5��j�����j�5<��U�gF19P��R��E���i���j���+�#���h�d���$�є�������Z�ۯ��ӄ��h��w���*�K���	�(���Y&�Z�v�V�^�e�1�.j�4�E�9��"�"�о���������q�rQ)�`j�#�KE�[�|���z�0�Y�`�7�~����������?�g
��drlf.�������k���g�*��{W�r����r�Z^mwvl[�s� n���jb�gn�z��������h�y�l�qf�S���B�[�<�	��.S���������������h�t�v�i�����K���k��������Tp��x��vn�mn`�j������|��������k���f�Z_��Fn������������ʬ��Ҟ���gn�����|�rR�M��H�h,�Irqprg�^�s�A�M�/�)���8�[P�D��0nf�	�iv�q���Xѵ�+��D�D�
��y�Znb��t�9�#��t��x��
�3���u�s{����q�[���Ƣ��᳚�s~N�\���
0H���"
H���"
H���"
H���"
��1
��
��V��K�T����T�6�  64"�
��E�#��E�
�E����������P�/"�@���Z�<��[�@�E�
�E�E�#��[<:Z�������
���T���T��T��@�T��T�x �T�)�������
������9�
__��&��X�.��$��
����K��p_�A���;�__��9�~�������2��M���@�n�h�
���M*��
�TK�����MT��
���@�n�h�
���M(���@�n�h�
���M P��
��M@ ��
�@��
����i
����������@ ��T��T��&�D�Nu�y�e���  �}������������
���
�V�ҽ� �T��}��
�l�j�l�l���R� ��
��~u�fH�7�Nuu�������a���������������a�������uuT�A�Mr�\J�C���+1
�7����}�yy}}yy�}�����K��}�yy}}y���+
,
@�j�
����������v��������j�I�I�J�#� �%B��z��Ϝԝ����̒�����<�L����Ro�s���x�z��c������������������������������e�%�k�������������������$�l�d!�������|�{�{�t�u�v���������\�������|
��k�����~��}���l�r�����>�+�+������������������6�Y�����F�$�&�E��{��Y�I�v�['?E�������l�j�o�~�����
��(�9���
��������������������0�tX
�@]
�T��������������
��
�����
����������������+����������X
�T]
����S
�Tg�TZ
���c
��������k~~w�~��}�}�}�}~~w�~��&�&~������}�}�}�}~������&�&�����~�}�}�}�}�����~�&�&�~�w~~�}�}�}�}�~�w~~�k������������=��=�=�=�=��&�&�
�=�=�=�=�
�&�&��=�=�=�=��&�&��=�=�=�=��&�&�}������������
����"����"�4���
0����_�}�2�/���b�����w�������_�1*���S����@���H2sp�o��ȫg� �����������z������z���������9A����{�e�z�p�{{hh{z�q�z��@�e�z���������������@���z������z���������'���L�`�F�F�=1<1�#�W�X�
����]�vv����L;�3lK@+�@L�V���	+�<������q�U�]�%��F���������O�^��e�PV���n�`�r�'s���y�sfX\Rq8dsض��������������s�F�%����Kٮ������J�}�3����������х�b�s�lt�[�`T��������v�uai4�.�:�e��?�2��%��ٰۂ�~�%~��GbRSl��g}^�`�s�t�`�an좾]�4�jމ�Q@���.���&�%�����&�%�����&�%�����&�%�����	�Y��J�	������I�������8�/����������-�p����R��%�s�z�w�8�����&����%����Bpq2z�r%�����!�����!��2.�l�?A�����R������჋Ί�t�,�����ә��$j�"u/}s-����|�Z�H����8�����	��	��
�H�.�w���_�������������pu�j}���$�x�������������l��l����`��?^���� �l�2�B�A�A��q�3�l����۴����l���8��o�km��YQ�SBjt��v�m��l�	�.�����ڎ\K��H�qX
�@l
��
�)����u��A��p�6������w�Y������l4����~�y������U������������������ѯ������W�?Q���Y�m}�ptjh���������F��E������Px3|�����(���/�ŏ�4��5��&ϻ��ą���f�am����J�?�j�ԋ�<�#�>��n����,�����i�I�Ι������J�\�D��Hհ���4����.���4��g��"]vzuyia=sA|M5#M�o�`Ba,����l���#��:��P�hC�t���"���]у��������H���������������ą�����������3��B��̖ڒ���������/���q��u�=��hU��U�v��@i�����/��
:�:��hU��������yr�w�>�g���g��j�k>��p���D���L���U���x�z�����x�z�����x�z�����x�z��������[�a�����������7���������M��z���R��?�ݙo����b�����4�~�{z����+�4�+�4�+�4�+�4�+���
����T���@ �
� �
 �
( �
 �

 �
 �
��
`�
@��{���������3
���
�@<
��A
��������P�������
 ��������
��������
�P�������
��P���� �
�x
�7ޜr�8{��M���1���1��M�����ז��@�;��N�����y�y�d�my�N!�4���p<%�����0���d����*�TK���j��j��T�*6�L�d�������0%��p�b�;�4�N�m�d�ylym�c�z�N �;j|@�������������1���1���8�r��z�;j�N mz�c�m�m�����N�T�4o;�b�����0���d��SL�6�����j�c�j���K��S��d�������0�<��o�T�4�N!�y��������m��N��
��]��]���z������Ϟ�Ҟ������ԝ�������x��x����y����5��_��_��_�Y����t�	~�r�l�3�/����������������r5�l�3�/������� ��� ��H���r�����vZ�j�G�
��?��C������-��������T%����%��\:�R�R:�R��_�D���D�D���D�D���D�D���D����?�)���|�8��oC��A��
�/��-���$��"�,�B�5��|6���-�G�c�K�dԛӘ��
�p����y��|���|u~w�'��~rb<!��ێ��j������w�w�s{��z���}qr^r}d�0�Gة蘵�и۩�޴�r�~�v���~�������������w�v�y�������������y�7�-�8�����<�ÖC�K�l��w�x�x�w�x�w�������������|�l�t{u{�l�t�t��������{���������h�h�[�sgsh�Z�s�r�����|
�9�q�Y�fqgq�X�f�|�f��������r�!����|��b�R�$�������I��=�X�,���3�|�Mq&�h�8 �?�4��ye�R�R�Y��Ni�ꏏ�������]ȵ�9ЉОȶ�%�[/�+���(y�f�qypx�f�p�p��������y��|�3����u�u�u�}u�u�t�}����������H��q�q�q�zq�p�q�z���������,�N\u�\�gugu[�f�g�������v��~�$��x�x�w�w�w�x�~���������S��w�b�nvmv�b�m�m��������w���������������p�@��
�����
���
��#'+/2<@EJOcgkoz�����������BFJNRY^ly����������������.9��������&.9=AFMQZbfmsw{����9BJNRY^u������-z������������<MU[agos�������"29@EN^px~��			 	V	Z	_	�	�	�	�	�	�	�

	



/
>
F
o
�
�
�
�
�
�
�
�
�&,@es{������������� -:KUcglu|������


/
O
V
Z
`
j
o
u
{
�
�
�
�
�
&Dbs~����������������-18>EKOTm�������������� ).7<DQYns��������������%:@Ui{���������������"',1CUZl~�������������$(-2BHP`gku{������������������$,2APWZ_drw}���������������+8EOU[binty~��������������	$).38CNY_doz���������
�<���<C
KFKk�r
=oYB;�
��E�#��E�
�E����������P�/"� �@�Z�<��[� �E�
�E�E�#��[<:Z���@���
���T���T��T�� �T��T�x��T���������B�t)
�
P
�����t�*
�i�@���E���X��X��E���+y}}yK��
�.
+��E���X��X��E���P�
�
+
.
' 
�3���3y]����hnnh�}�y���]�]�����]�]���s4�
.\��2��A
y}�B
,
F�TkB��B��a
�U�)
y}}yKy}����������}y�TN%�
��=hnnh�hn���q�F
A[
���]�]��E
�����}�t�����	�� �"�������������"� ��	���M
-
\
�
��
���������������1��<�0
�0
+������
������������
����������f�f�
��}yf_��"-
.hnnh�Cp
�}�y�T(
���-�V�`��C�3�}�y�Ty}}y�T�
c
���|�zS
�+o
�+�
��D+\�T2�TA
���������� ʆ��iimdod���������$��@�~� K������z�&�w{�y�yw��}|� |�}���x�z�{�wa&z��������K������������$|��'��������������[�����[�!���!������oZ�S1���
0
[��R
��Y�W�f�fG
�f�fU���
]
�@gw
�TH
U
�
3CC3X
K]
+>
��T�Y
�����[�R�Dh���1�
��T��T�T��G�������_�^�X*�D�4�
�4D�*�Y�_�`t��������W
����!�
�'��''��e
������
�
�T�T�
�
�T�T�
�i
��h���h�
���
�
O
g
�B
�4�T�T��=�T�T�
y�}��7�!�x�!hD�:
�,�����
�J�����J�4��
����������F��/�B��������
NPuc]�T<�O��d�
}�}�|�1B&�2�B����
:����5
��/���%�%���
YY�������������
�(
�f�f�����������9�>�!����
�
�>��9��U��G�
��@���V``V}�~���d�3�f�T�w�@�t�(�s�u�w�N�5~��w�}�+�}����PV�
������{z�g
�����:
�T�
�TR
�]�Ky}��Hg
�TB
�4�$�$���G
��U���$�$�
V``VV`�����
`V����!�_��I�b�	\�;COLD|yz|�r����u��{������������A��0����������%�����{[�k������@�hhn��z|������r������4��~������~�4`_��`R�`e9C/R&a���žҦ�4��A�'�"�)����~�4���U�f�f�
,u
!55!=
�=
����������T-
�/�T���
�����
�{�z���G�C���C�8�=<�<�8��C���G�C��������� �VV�����z�|�Y���Y�.�:�t��:���}
���&&��T�O
�'��Lf��eN�z�y�z����#� u��"������������=�1�?�u՗����f�f�
YY����
��Y��f�f����
������&��������/����]�]������1����a}�.
�M�M���Y����;���/����������������������a�3����:��������t�������@y
������t����������
g�Z
!�5�
��\�|�\�?�Z���E�ԅ���c��*y^H�(�ym�|�[��n
��U
��t�3
�������Z�Z�r���EQQEEQ��c
'>�
�0
�4Z
V``V�
���������~����
�����������������������z�z����3�'�)������������
�����{z�4���
�+�<���<�<���<�{�������.�=�=
C
�9�"��T�M�5���������{��~~�D�;��i�
�f�fW4��x
�!�x�!�Q�E�
���8�
���8�
���8�
����x
�
���i����
��������	����������������	�tkR��E�;V``V��<
��A
5
��/�
R��T�&
�
��
+
,
3�
��� ���O�>
��������z�r��^�`�������`���^?*<�씒������<�Jڔ���>��������@(
���
�St
���}��
�����
���
X
�@]
���-
���
����
������}y�yr�rrr�yy�
��(
���y�y��~�w�~~����������
��������������������[
�
���t����������t���|�z�@(
�Tz�|���}D}��}������������������RD��,�l"�7o�''��$�{��������������������������1���D
�
�������
����!K��
��z{�����8���T���(�A�(�A�(�A��m����t��������K��x�x�t�w�����~��̍�����������t|~�}�:����@�w�{�t�s�o�yx~����������R��1
��7�OI�I��gX�!�!�gX���g��!�fz���\�J�$�9������:�l�A~�w�]]�w�~���z��
�
m�m))m�m�)������{G
�YU3-
t������a
�h����N�0����������K�m��
+��
�)vP
�\��
��t�4���4�
�
�
��<
�A
���	,,�	�	,�	�	��	�	�,�	T
���
�b
�<
�TA
����F
���}t����.�+ݭ�����������������{����`�T�3���3�����V��@�
���t����k�r�crr������@�
>
��xy�o�ts��{�SK(
����
���������tp�
�����y�y����:
�������7�D�$�$�D��������������nh&�T*
�����5������������������@��$����$@!��quuqqu���;���;��uqf���
K<
�����p�������
� ������QEt�����'�rrc�r�2
������TSTdJ,]��շ����49��arwwvyr�/��������(DB%$�A���Ό������%
����`���u�ttu~w�c��cl��������q�t��������=�h�F��� B�4������4�����
��
����V
s���V�������E�z�*�6�z�*E!�!�$��D�D�$�
����7�T���-
R
����
�5
���y�y��C
�.
���@�h����������<���<�<���<����o7��������T�T�_���L��d��h�aahi`a�h���������
�/ti
�V���H������
��ԫ���ԫ��
��
��]�������������T�t���.�;���;��<:�Z�����:����3}|������A���P
3C��ɽ������Nb�a�]����
0�$�7o"�7�l�����
������������
��
@���
�����������������<�<��y}|z��i
�z�{�R�D3���$�$D�R����i�p���������w��������
����
E�Q��y��
���
���1�
0
��
fM�@�
jm��q�����������,�4[�
���@XtxmihbW_)�RK(
t����:���z�{���������z}R��%���7��tC
(
�t�
���z�x
����x
�
!5������x
����&�%y}��������_g��������g_��
����
��*1���0���˒�����������h�����
��`V������m�����������[
ˋˋˋˋˋ�7���ߋ�7�������
K��������[���L����z����������-
�-��������������������Ty�������!�5�����z��+���&m���/�%��t��~���-���������\�$�"�W�T�*��������n�h�t��t��t���v��������������#�#��
��	��h��3��3s�pyrs@ ��  ""
	���x@8 �����!"""`���>�N�^�f�i�n�~��������������'�(�.�>�N�^�n�~��������������>�N�^�n�~������������ �����!"""`���!�@�P�`�g�j�p�������������� �(�)�0�@�P�`�p��������������!�@�P�`�p��������������\�Q�A�0��ޕ�R

	��������������������������������������v^��%|�_<��O<0�1h�����	�	����	��p��v�_�]�����y�n�����2��@����������������z�����Z@�5�5
���ZZ����@���������,_���@��������f���@	��@��(������@�����@��@-
�M�M�-�
�M�M�����@�����@@�
�-������b����
��� ����5�-�8�����@�D@���,*@� ���������	m��)@�@	 	' D9��>dU*#						�	��	����R										�@	e�	
%RE	 		$�� k(��D�'	��	�%��	�%	��	��0$�.�$P�//:/K/Q]�	
���	^�	U	k	"y	U	$�	U	��	a		y	*�	<�Copyright Dave Gandy 2016. All rights reserved.FontAwesomeFONTLAB:OTFEXPORTVersion 4.7.0 2016Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/Copyright Dave Gandy 2016. All rights reserved.FontAwesomeRegularFONTLAB:OTFEXPORTVersion 4.7.0 2016Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/widgetkit/fonts/fontawesome-webfont.woff000064400000277350152177723720014577 0ustar00wOFF~�
��FFTM0k�G�GDEFL �OS/2l>`�2z@cmap�i�
�:gasp��glyf _yL����Mheadb�36��-hheab�$
�hmtxb��
�Ey�locae���\maxpl� ,namemD�㗋�posto`�u�����=���O<0�1h�x�c`d``�b	`b`d`d:$Y�<��x�c`f�d�������b��������ʢb��l��|6F�0#�F��nx�͒�J�q��gje�>�"�D���>�{�E�O >�����,"�u�^�[[[���j�os���_�M��%:0g80������B�.L�s�zðפ 1Y��lKWv�es�t��)Mk^�Zֵ֪�m���׉Θb�k̳�2����6���>'�Y�Җ����jukZۺ�g�m2� ����(�4�-iEk�Жv��}�X�B��Y`���`����c��9�Z�JV��5�e�Y߆6�G΂�`3�|6����[uI�p�n�-�����[pL��0�Lp�;��׸�%���8�o��>F8�	��G8�`�W�ί�����"�E^�_�=(K,F�K�+�y�b�����x���	�TՕ0��o�}{�uuuwUWի�n�njmz-��nv�E�EAAJ!*�(��hD�2c�%F�ʦ�Ebb6���$&�����7�߹�UUW7
��t�w���{�9���8�m�8b�I�	ڃ�����݌7�S�E�G�!�3�����j�㔐=w;�P�^I�A;RR�n��k��LS�.��)�o8G�([��)�9O,,�At�S�
��h
y�u�jZupPGx�N�o��n��{��ho2�A�D�-r��]��u��5��e��^��dM�X�8=���r5ͻ^Q\�~��2��V�0 �o�0kC� qA跍����G<�
�9���v�`�|N�X�W�I�:"�'�a��W޺O=}��k�#�"�7�e	��%Vs�~-�y$ŵ������X��w&'q��.n.�E��K�#��JD�ڝn봽7����=�|�w�L:Ӎ2vmrRv:=0P�@D�ۓ��V�Z7eO��d��7�HM�SY�|�[o��f'B��L}��Ʒҗ�V����^�+�{W�=���uҤ֦='j��,�|;�v�A���o=��0�q8"�I³��8���yZ�6Ǵo9��q<i3���k������1%�&��
���u���k�����{H}��@΁W�—^q�Է��4;gg7���N�y��/��
q���P���OЌL�4��q�,���ԇ�"�Sv�=jL�/U�jC�-w�o���ȍn���j�̮�{�j\��
��vE��k

���z�>p�n=�^=�ajID(����෠���qu��F;э�5֮�s7;QC7�U��[����׈���yZIۘ�ػ�*�!$	�dⵄ��Ŗ�-ˇ?��{��m������f6��po��~�mԽw��o���G6M��oz�a�--�m#]?]?V��k�z��ܥܵ�.�>�)�9NH%�&T/� ��_���I�Ax���O��B��]8(���.v��)�G=���H�P�S�U��P���>f�F�E�-G�G�s|���'?~z�I*���R�|��[`���-V�'ݙG�P3b�'\R��I̞#n�;W��ٟD�T��ѹb8�0�^s6,rȥ��i��������sm15kk��,}��q��Wȝ;�t�s��e�Yq�qC/���0�q��|>��
3������W�/�ը��s�F�"���s��I�oAHI� 8��C�„���w���~�@
����_�(�]h=������r�9���p!�;�H���-[If��w;%=�d��꯵���bmH)��k=o��\���h�E�i�7i:-!mn:`[�G�]���GE,�;��s�yH6�2�ƈs�՗:��I��@�^\�w���OV�õ������<�g?]�Y{?qK�g�H�[��X��&�td�n�[�,�Z�!H�6#�=nݳ����;O��W�U����G4]]�6�ٰp��7��[�aM�5P���B�]?����4�����P呂����7o\�!׺ߜ����ؤ������
��2>8�/p�2�h@�k~ھ��B~�a�[�r��=Pr8�S�e�sc�F�
ӗ�� �S�#P��|0z��'�z��S��)��8aFB�FE	��V�r�J��(E���fDp���U�\���'h4P�� 	�j��<t�$>d3}Cv�f���M�}Zlf���,.��p��j1��t�Y�j�2�lƗ,U������<:�z��t[�%�Y!1v��M�frc:_n�"��7z�w�v��m�
z�ui��dt���O��.3K��<y��d0��3l�Ll؞�Y�ĭ~�bg�#8H7��J�C*gY��_��YKi�n��0�AQ���PiMg-c�����)<�9ܹ��JH�X-��o��w��aX�;�����<z�̳�@)��*��rw��|u�`���l�c����߸m1�:���H2yΡ�ؕ�d��Yנ�E�+�G�Z��Q
k��P*��.�6�O����W�=���n���u��B��d�u��8�<�7�4~c�8�(bK]4�x�~�*x�=��¿���1T��2��Gߡ}S�}����J�X��ùP��@z${P�™��"h^���b�ؙJr����`R_3���@|8~� v:G�E8�c�i�]5&4�t��َS��צ��	#�������5���jQ ��0즰���N`��v�!
�Ry�S(v
]wB}J]�>u��=�.#Cjn(,THu��_Z���	6�q���hh�P�4#J�H�%jt�3�M�)�#��z���z���dt��1Dn~�9�/��ȋ������B��@NV?�p'r��f:�;�b�B�QHb�$h�3�CG|��#v2�y�d�m)�e��sv��w�~٬�fp�~��DG�	�r�0��^Xzˣ����Շ��c���l&
 \�`\�8HHa��IC?������6���:5�H;�l��ވ�4C����&�\�F����jԬ,�|MC�ݔ��/f8��ܮ2���	�.��ҍl
_/��A���kT�V�Νg�~T��΂<`2����Q�&;�X�A�W@��@g��j{��j,�	�s�uuE
����֟���:�A��
8,&���ռ
}|��b0��lFQ$px=��4ddm7��nru"�N:O�u^��x@񝂍��C�G����*�%F�>Tm��?��2.�o��p������ˮ�1�r�\T��١K+L�؜c���n��:8����q�y�N��\Dv�j���[��ܦDy/�*=H	�[0�l�8=���`�D��d&�<����qR�}~��|m?9[�Y
{�H�I��FP��H�p;@���Y�����[D��]j��}�*ÞhJԆ�'v^��6XD��L���V�a@XF�k�<������N����.���pV�e�u���p����+O�;����FG�\E��нb�kfy
z��s��

	X����k��M֊P����Y�_g��#�f��}{���Lh.tMV((���/���4u�X�4u�<�k%�Ņ��s=x�f�Ȍ�ݐ��P��(�.(��q\��+����i}��J�/[��O��k<Ew{W%��҂p�RJ�
˙��$["�H�6#] �F���C�֫C�_c����|=�F�2[�#�\��eyÃ�.�a��nơz�K�9řeN��Ԟe����Uտx��Uw�Ϋ�m>����76�t�O�d�٧�,崅v���2+�׷� TU[�NHN8�W|���fG{�ܘlT�_��Z1 ���8j
�`A����r��㼌��`h�*�b��
���#����ռ��B����j���0s$n�^�7��w�$�Gɡ;�N
.�A>3;M��y��?��zpͥ�Ι��4�aqp҃GF��w�|]��֯�!��ؾ�bv�q8�e�+�)��h.,U~�4]�h.�P4s��)��+k�q�D2�u����ϸu��E3V�⭯�ҟ�f�S��8��/D�]5���ޖ*xWG�j���}�l&k�lnçi��Pv'�6#�������(%��)>q��E��o6U+�6�ŋ�8ۢ��lޏ>���`����M���n'���'��zB-t�/ꬱ����3ik�3
���55��Z	1ao�|+�
őm��
��0$Yə�Oa��1ag�9��up�9Gת+����b��=H߀��Q1h�T��]�Ғ�Q���^��?������s9��ػ��� ��l��B�|4�TN���YBL�,�
g�#�5��A�㉐=!�7~=�/X]W��uw�ZW����避[��Ꞟ�W�d==B��m®�ҏ΋v�?$���
E#
�L�!7���ط��!����T��RR�I4��)���H#��l*�:#��H.���)����pӇ�
źR�M�B���=�ƅ��(ǂ�͵���˥�>A��,�_��2�%�5�p�yn�6/���Mb�t,�L֮���l+�9�Q�Gb]*�D;�
����{PZ!�*��U1���|���s��{�"�3�\�g�������Gχy��G:�-nQg7��`ԏ3�x���Ax�%ÏU���XMZ�&HX9�>o��s�Ga��
��'��!�lü��|�EW-��e�b��bxs��Y0��6E��>�)�V��H��߰}��V=��G~�Yk�h��/;��ۇ��0�{4.c��\h`�5���
F�A��5��Tg�[4��#���S�o3��yuy��=����<'j{�	h�N�k�6�	�@1c/��5-T:��`Y�X]��g~���i��l�p�!��e>�1x06�?�e�oA�s�b���̪fy�b3�@B�߂�Yq�?;�m)�h4s�k�P�����UfW��62��c�>8F�(�t*G�C	ym
s��r�p�?��I��C�Y:ϻ&͜9��9T�Y�-k���%�)�@�|FF�h�9*��(Rt���K��ǻ�T��XM-IP.%�C"���?�,+ˆ�=��	��>�t�����U�gQ���W��w#�Υ7݋���[��P�	��ޮ���'j7��7̗�9Z���I
�S����O4YkDE�͂�B~�`�Ig;�m�����u�֢z�Sg)����r��E܉�=m�K��9�ZD�]�4����~7߉R6Hۂ(��j��i!�BldpӜ^���zz拾�g�F:�qꢝk�Wl�/С��uX2�r��TsB�נ�����ͫڂ�t�}}ƶ��_5�	��k�4���	�A;oH�L�Ϲ�)�z�.�qu���A�z��yx�j�k5�F�-��@�lҙ��c�ڗ�җ\6�=�
���O]9�/�5ڔ�볝�\tO���C�T3�f(i
]�w�P��iQ���w�γ�=J�ߌv�Gޮy���[�[���,��Et&Q��o�c�Â��yb66k���MK|�֋$Y��z%���P��(���^�87D�rK��`��%�5�.�:��	�Ďx=m��n�ً���m]�Ю�&�2G�(-@�Q7xu3%@�p���~н��t���S�]���=�)AG�����A��Vg;��*=�$mz
�-|_E�Z�ˢk�<�5U5�fF�I�j����`�=H}���)0��~�F�,"���N�6�k��"��}�Ṓk���T�"$��mZPc�',�ϛ�tz���Յ��];+�j��+�NG�>K#�h-zp�6\��;y��b�~�9�.m�	�\�=�qrqü�=fS
6�u(����؍��3���#����0����
:�Nz{S�M�]"��`R������.C���r`-��U{낍�z�n�q��	t�x��
�ic+Ԛ:3Y��㳙N��*�a�V��P��
�`�1�Q�b���@fc^X�9�̼���ܶ����jtҜYӂ��hھ����3�	i�js��+\�8Tv��i|�Q<
v��߹c�8�1���-��t�������\1����6���G���I��n�J�:̇�h�X��G��r�+��<�O�|a��l�yxuco���7狿P�'�j{���G�w��s��ʥ���s�����
?��?kL5>4��Hj��v4���l���!���,��c�C�5�4{�ٱ�4d��R��~��p�*;9n����C%d��}�d�A4Q8�i��O�i	���T����gd��ul�U�S���A�q�$.j6U;�MǶ�ۏێ�ۏ���j�9J�D�vAF��b�m�LOI=`�j�f:��>Iǁ�J!�
�6T�xư�qn���̓��S9�ĀM|�!ґ8X)��h�ͅ��ͳ�(����,�ӌ���2����+l�D���3Qɕp�$`�Pt�[��� ���DV��2�op��o%x�Z)�����n�:p4�N)�F Նt�T7M�u`8��P*r
>�(��O^����tX�i(��M4!
t(�>h��cU��<�@��ܦç��$�M'���(��J�׳��Q�܃�<8�Vj��j7P�?Ͼ;�������_��!Q����.h|:B��)Ӓ��xܘs��_���d9��aN=�.WO.�\|�_O&t�k.�".D�p53�͓	6�`8���I�u�����Kj��k/�����wi�U��S��us��U�lr
̥;��ѠMe`�T���B�&��n¦\�	g2pd���[0��O�v�z����I�'m%�4���1}�@�€:įZ���/r
@1m8_.���W�R���lv(F5A�ս���~]*@Qؿ
V�����g��M܊�����:M��ʞQZ�㖵��.
H��f��J�wK�IA��\������f7�z��l��}5�V��z����G����Ɛ�
u̻vߋ�a��ɰ��Z(�S6W�z���7e��k���[j�����#6[���6i���Sڣn��@�d��`�[��}�i�]<{b�N&k��G�[�Q������`E�������k�$|'������GO���R��4:	y��X��1d��hz3T�ʷL-�3��D�G%�Z
��b锥�3�I��陌R�^cy,�3��P!�@�ieNq좀FS'}@4�шÏ~�����*�T(�P���Y+�=�!?�}>�Ю�+�����w*�3�U�����sƽ ��i[�9�a���\��u�We�Y5���	���+����,��iK�\��ʚe�<����z��K�C�&�Hd�bktݩ7<��Gh���
�f�O��fp�+d<�8�Y��X��(�ϴ�s�>!;B�TR@J	vK��U�8�bU�H^Q;O�k�b%�[Q�H���O�9谉����0r�0��}����U��>�ʔV5^����ܵ�����}ecF���mۈr���qLEl��	"�I5��ڦ�fU���2c��W+�O,
���MJ񝁧6���y�?*�0&N�ݚ�xq?�)��>�e�(�	@��qT�Vx��>sjA�i�2W@�W�<K������P
+
�i
���4�(ا����	�
����xA��̓��	1Jz'O����?�<L0,;V|'[�9;j:[��B��خRk�nC�.и�iޱ�T���ݝ&[h��5V�,�R��I��N�{oF|Tn�_|Q�W��>��U����{L�Г�K^A'�96&�E[h8�����J*�X�>�w��yW��+��V���c�*��Y���P����!���3�
��^������%�"��`�ɒ�R������cD@�2�ܵG��5g��L6}*X�l틵�\�"������*����p9������B4M�z�A����65L��.���2�k,0���^�>�G@���@H�ty����Z4iepWt��A�h,8�<{9Ƚ��ǷƶwZ��OY�E�<���Z�)��t#�/�崐�\F7ʔ�B>(���&��6�ld�i��t��/���=�n�>?&s��]@Ν�0Z.3Ĥ�9M�G�6�XI�J�H�Xa�:��C�}��3����6��~>�D��3��U�O>[vZ_�}ס�qN!ʃ�
��-�W� �������
S���Ha)Y���'l�g8=�`z��(bwv�����i:2E�!��`�;x�,����Y ������ߩ����
=��Іj^ǻ��Q�^��_�Yy`���Q����[&aY��Q
u�s0{&m胑*����j)���T�C��$YQ�>*�P����}H��������˥��_�7��!n?Vا(s����O�GRB�X���bG/*󨴉b����E��(��"�lrʔ$Ϋ����dJ�wGp6���
P�/�#j��mtC�R0�}B�j̣R��X�v��I�>(�j=���:E�C�t�V�:O[h[5�"u�E�3W�.
f�[eܫ8�P)�e
�0Rԁ��d.ُ:~}����t<)��/Q
c��O�B��GGp�<��"-G�-b΢�y3�b�#����5�RPCk{d˚� ح6�d��]������L�d�Lu鋶
��LCz�Ӯ��IYs�;�A��@*n�yڢ�����Kˏɩ���E���W���eM����â��x�[�*u����-z��җ�rizH>�������2$�����=�_�����j7�{�!�h7Ύ�|p�fs%9LA�Q,��2��WH�(EEug��&�/�
$̃cm$0^(K_�C]D����i����+�/�TR�hOJ?��N���ޛ j�;�쁳�#��ISm0Q�4W�����Տ��5_��fd���"0�ԏ� ��~D}��R'��k ��GK1(���_/�T��F�Ȥ8��>��Q8����m�.m���s��t�Á��-��`wZ�a���x��x�";ͯ��2�o2�:�h*4X���-hW�3sn���P,ɞ
��"ޗ`7�Nw8ɐ�D\���	�(,f鄝�	��I�M�|؟��ն���k��ÿl�5�n�v�xL/L��M}��ݻ/�Е�um�.�u��m�d>�Nh���&k�Ե-h���#�
+���q����s�}v.��L��8�c|�P=/2�,��T�,��\f��x���P!:*���}��uL�v�yj{C��[��	���^�܋�����lV�͛C���Z��k������9�~�_��+�2_�ʗ����7��%�\~�N�V�w�|�:$^�fH����-œl6��[D���n��i�D�>�=�}4b��=�U{��x�C��u���:����6ݨ�18�=�Z��%�ܓ��&��?i*�V�߻"��z��,K���=�,�5keb �PÒ��}aM)d��Ő".Aǝ�2�An�K%
���%7;��QΤx9:�J'���s�������9��:�(��w��̿s��lt�W�����N�~�+lA�ڏ��m[w�7���7n\����W<9��-N�߹t���i�?��"�;�i�w�[��;L�vP�2�z����r�g�k�cl;#��E�*��b��8�*�<~h!������:�Q�@�qӼek�/��#�@w��ꪫ'���	���r���*2_�2mp�pm��"Oގ�:�wFgR��ۜ����������{z�h?U_3�������m3�ؾ)��[�_�.��/��d��
j�����G�̨�.��+{����7g�|�6w6؟>d��5��;{O"�-��<���+�jaW2�2�����p�����W�a��g��y6&�Bh��I2%��1���S������*�[Ϥ��F��۷�%nwT��	Q��Ķ!=����00!�dP��$O����j!%��l�6bd������[6�,6��`^H�fɖ3V߶[��8|\��M��Q
���lƜYxj�?KO�3��ٲ�%)���)JrGƼQ��̼)���2c�"����^�–�;��@Y5��u�!���'�h��VGTi M9��#�(ן<�4�s�{��������@�e�fQ`�Gy�
�8�L��"KB3�+��fOx����_�c`=C@�d�-T�Oj�+�Jw�]��f1���򉠦J��� ��-�L��[,�Əv�u�&}��z�)Aԫyz�X߶"��M�Ww�P-蒺Mr�k����
4�4L�ZvɎiZcK���U/N��j�a,�a����!"Y<��]�K�����-��������{S��&�,�-��l�5�V�(��DSJZ�������U����+�6��U�Ԥ)�j�ȀMXju5xk�O�x�kC��f���>���v;o�Ău)O[���H<t��_X���4�i�+*�d��Ԓx7)�l��O=��R�|O��h�\��ؼ��E�RD*c R?ʇ�﫯��"��bL�+n�wSB��IZ���^��ģ|��r#R�e���A�>����%��rJ���r�ZN���C�Q�n�?|��x�����_B��*k��gY�n��3:B��4Wͤu�Q�������.�R�M�F�2���>��8�G�3J<ZŠ�r���Vŗ�Y�~P�9��w�;�<
+�iչ+�5�D��D�hp,;ʹ�j���fƼ=䵫9�� �3�Ƒ,�@�('h:���Ƌ&m��TkP�q�8�󨴱�!�ä.���#��Q�{�=����=4��V���#��m���x	�_�)If�C�#y��F��N�������
u����Q�R��PQ��y��Q
�u�:�]�g�*O<�j,0?��g`O�N\Z��\�F�k�rIݝJ%QM	$%G�/-�S_hz��t�>U����֧�c��'��P���fՅԭ���ں�o�>x�,u�����P^��"���������yXdc�i+�Y�_'�z�����6~(+q$��U�;{S<�^x�Gn}���ou�vXt%�&3`�.:gA����'�%��O�0j�@E�w���:���м�jd���q�g��e��<TCB=�nҗ��Cq�+���d������)Ӫ�L�Z��&��ίYْ�bv���sm��������k'm�xl�0�k"���ȓU��\��{ӲY�zY��.T���Yt|�"�������cK����:6�.4L�S��z�D&D��LJa|��+Q����h��_�}�e�Ξ��z�_���
b"	P8^����Џ��>�����4c�&ū��Y3�]��*��tI�*�
r6% ���&A�R�^3��$�p��,a2GÇ�}O>W4�7�6Ո�n7[�Y��Nq����O�e�cu/=�cm:&�4���C�o��<���}��i�A�O6�ă�N�Y�����m�:�̲f3�J�"M��K:�Ek���:e-O��7�
�6��;k�h}x�?�1�/\���g^��y}7�|�4����q���'�7o^�� o.�Uξ&�d�5���v��� ���3�_P� Mp���Ĺ�V�jl�U�	��a^vqǹ�܈\��?虽쪰��:���Oo���b2AL2���9�zXv��Q� VUq��^�k%@���$Ǡ��#�o}��Ts�cFW}�$y��F����$y^2:�����l4�/�m�a���Խ�&�o�L�3Ѥ�N��Iq�!�#��ĺ~������N>�0=�ٞ��bD�A�w�	���O��h��C���Tѡ�
�����֩F�I��.��M[�V�#�Œ�3�z�e�{��EvceR]�
�
�ecsER����n��`{ah��Z]���'3W�0v��Ix�V[mQ�8��f6�4�Sc%�Wr��F.aR�6�a��Lv0�n���=,L	�Z�BU\���]�a�JX��L���7�e銛
ljQƀ�c��H�j\���}MG����ޛ
�[X@"�W�dNS<���+�������#(���;<�"w�~o�myL�'�D���pEb�Y?�~�{{����,o,�RD��(J�bC�>�ܶ�_�dՇw��f�f�s�ܦk3�ގ&��~�L	�=�$&���Cyd�"�le��؄� ��tQRʉ�@*����΋����7����JՄpC��#5-�V�g�o��!G�i
4�&��N�pO���o޴խ�9�k�'y=JS4���/�;�٬����v�Y��3M�iB<�
���(Yuv<�9_�m��@|zU��
_<'�;��^;��#�b})�K�yw���n����o�%���6��,i7�-+v�(�k6i�c"Ym���=t#WRT�����m���R[����na��<���j
X�)G�VX�,��gB���&blц�*�ϸ"^(���^�Bk(tǒD�>f�ʭk��l�W�޼����(�I��d�r�U��U5=^�Df�j}-���:�$r�p(��<M����zM���Ư:|�%7L�>%\�x�+>w�W�؄	O��u���
gq�/�,��W:˺/Ɏ��+�����y+�&��Lo)�	���@�[�@e�x���b�i�u;���:��Ykw�[50��x:��r���s�S&_Xx��f[b�T���:7ak�}���Yx���<5����r'���(>q�-��p�r���o��ɴ2��H��U&�I-K������m�h�ɠ\���YF���Y`��|fM0]63���B�w5�%#�'iH(�8�[*�k�.�Etc&a���Nm�V�JQ�K�T�M��b�X4�?��#4c�왓Q�,<��v�5���?J��	[��J�s'�ڛ�iӒ��Ӈ�C�>�䶵���h��Mz__�m2�7��b�2�HC'���
 j
,J�N؋����
��Luq�M�Z�W7��'./�^L^�DL���%S�	������n��4:O�W���^�o�f߷Rпl�q�{��\�PȖ叙y4*x�Ba�v���� k��x@͗qY’.3�HQ�F����|�:r�Ɣ���9`P_�SRL���
6b�|jAn~<D��N��"�u���0��Q����\�� W��u�ާ��fn6�oH�玤�N	N'�S;���)̓vG�vejO��XJUP��s�p�����s<���׷4�����}��a��m}S�j�T���Y�Cheubm���20�~�t��'r3��:_H7��M�笜�Y���rN:1��!-��z��\�M�a��P}���l��&pq�6�*_U�Y�IG�~O����_KU8��FT{��t��(���av"CBf���_F��;Q��n�qӳ�B$MU*r��g,�^��GD�,I�H:7FD�	�Jl���k6��c'�]�u��;��&��Fb���F��iB�"�&͙Myk�U�����P�\�M���]J��~q��Z JP�$5K���?��1/,#	K:I�)�D�o�Y��:Mg�!'�S��$���M� }��Ê�N��~�$��Ū��3�w��m6�]r׊s���O^�
��ll
6�H�{R�vB����o���Lg(�i��Z�hVd��˂��]�w!��r�<3��H�/����7Cy�Y�N9���Y����@��Lc���eY�֖�Y���$�rz�2�d��k`����8v1�gI1�"0��k�~��,��c�$����ty��h2�^/�sv���骩m{��T���UM~{�W���Ï��ɿm���k�U�ٹ������?��΅s�4a��:���Z�D�g�;�@�V�ם�4����`�gلw]x�/���g�o��L���v�w�'v��ڟ��ڔ��y���K<+<f�>�Ǟ�����~NF�=ΐ7�.'�h��ٖ�}�t�)v�SK4�Yԉ����s]kW��N��-Я��K�`~k��R�-^���"9BF%`%5��S'$��^\o��;��NKM#_5y�<C$(V��*ޖ��Zj�����/��IV�Z��et�M��k,��x�C_m��{�ۏ\�ʶ�k@1�R�+ې�.����臬������t�и�����l���=C;�x�|^c&�a=w���9�9��p�t袋�Š��7���1��R���1@e��a�����<�3�w6��Lj�(
~���n0K��M.��
�E�aR��I��W�1[S���,9p'��Y���P�M>�r��֖
�j����K�g�M�dn7Y
n� Nl��ݮ��m�G��Y��N�̂0�9E&W�K��b�K�|�ĸ������JﱵWr{�ݷ���kQ�cZ\2�R�؛�O����ۡ��_��h]��Ը��y��&܈V��;~��M��/�׭�n�߮>�_���[.��/m�2������A	�q�J���{�>��L���M���8�A��f��]��'�v�HTUO��μ�Ń���̚u\�eA���b�~�u��:�y���nw��������ݥIٸ��$j[Q�����V*b�聇nE�C�*�ZɭE�o?҃�&k=�t��#��=�K��T�rf�W�Q�jJN^yٔ������Q�W/����O��o�^�rr��j��;�N�M4I���`0wϚ� _���ߜ����!Io���uz�#�3�tz�i
��k�j��m��f�L�'��k�
^9�u�Dћ������Vn�Ǽ^����߲r��n_����CSC ���"�6�Gi1#�W���0=p�'��]�@8z}�Q/
F�"�̒��&=�lF�w�d�F3v1��F�uDFY�V�'F���`.bN�u�䡁��V�l�|I׀��ɷ�*�~���)���Z�*�!+��u��Qv���C�M/��vԂ.q��c���Ys��,������wD������iN6� Y���r�L����U߲�[cr�c�q5)V��!�c0�31;�B0ތeG͝Ua�V��NU�e�	�(��;�;��|d���;��_T��A"�?/}�M�i	���;]��w�t7W�Y㰛�n�����Ng��h7���E��B��7_R�E=S�x�V�5P�s���m�`�ržYa�������z�Ra�t��	�k�����_�F�=���dVٿgC��j��߇%��T�}�[��n.�Z$��Uq�:�ۛ*<gg�n�Gh�(U?.b�=Ђ� z��3ek�
4��	v^�QVJR�T����+N�1�E�y���D���;Y�C�+�dN�A݇n$9�M���Ay��hpJ����=^�蹭�%[ҫ{���\r8L^Rڠ����g8�ޥ~�a�d8U=�gP��'�1�.#l�
��=ΑѬzR6��np�~[�E��fn��G�+y��|:���f���E˻�~E׶�M�ʟ�]�����f�}jE�3�qMOϚ���{��d?]u���U?���#�/;��s�~���򹃫ؚǀK��-�6�B��'闘̵�L��gc��g&�=��G��'�
���}�S�唩���VC�I�s�y�����RCM�)�r�d��7&UC͝w�4�N�sc�a7�fl���]t��Tw�ݵFè4�o��u��֍�2�B�>#o7(���J~j�E(�EM���-P<��n}�en�pt^���
�^<���5�fͬ�>3���/rQQ@��Wヌ�����(�Q��Um��)!s���G��7����ꜜZ�4���	��…U��l���ڟ��p�d��:�Cc�e���'s2�E���;�u�*�'����$�]"���c4��}�
v�zyDz�ɨ�n4��bTF�.b4R#�P*��~6��t�jt���ŋd�ۥ�y1W!�ןD}g��lْW_A�4R�/�u|��]���P	�Ǯ~��:t���[�����94{-�.�ǀ���y�A��0�� �x��6-NMv�M$�c50g���hQ6����1���B��n����W_u�s��;B��E���g��}\���"\�a���Q=�#���ͧ���վv����1�ŊS�Y(R.i�[��9��Jd��QӜ<0@B�Nya�)�j0Vh�2쬄�s��O�eP5>I��~���1!���-�A8ag�j�Nq^7�6��e��/�쾇ݳRuԢ�Z&�U�EJ��l�p�Yo�<2�"_���:��97�9f���阎���.�!
hI��4
Rk��Cj�G�Bu+b���tQ�P�u�/А1��TZ5�����V:+�zp��8��j����y\ST��!�zr��u8Y۸$��Յ�F�uFY���Tj
+[k�j`�GŦ��+�yl�֦Y닍�4R����,�+��h"�)=��U�>���yV�˕!��V]�Z�8G_
jW��p��H�� ֬Q6P��8=w�Q9�]W���80��9���{��z$�5��p�+��҃D%ꔒ�-��R`5CbJi��h�EI@����x�Q@��-�J����h�n��א!7���#ם��Y
ѣX�����2��M��n��Ɣ���i&�#i�x2n�B��~��#��}2n)Ͱ�.w��o��B��(��Y�k�"��5n��G
PTF����;�N�Q@�(�奣$���%l7Q?��lR��P�fB!w�ҤJƝa�îG�ٍ�J� �vK�g�WOӬ��L_�$��t���a��[!i&�M�>J�LBf�R����%�ۣ6!�o����"$�,J�{�l2"Qo����#BQ'!"#����H�:�.	o	��<�9*a$
<1ʔ/-
᪠(J&���$�
f^o�ћ�<o���n�!����A���E
fl��5
��H�<�o!ͭ�(�p�N��tH¼բ��.�a.�&3�!"I�:L�fsZ�0A�:�A� RE�E�b"`��\�`qbѦӻEA��lr�Zg0��_
�X0JX�	�Щ��9�1��"BN,�b�q�H/b�I����2&0�6�IM�U��%U��	l�I:D�Y%�Y�K�xí�AЛt�PG$Lx7��0lĤ'vluۏ�x���!"Io#�E�NF.�`�E�b�Uo���˘'�\�y�
����~ّ��$�(�d�Fnd3Haz���I��+F��#�&�z��h$�Yg�u.����X���l��b%��N���[/���*W8����BV���0f�^�@�`^y'/T�z��:h��M�#�$��<E�H,0���A��o�a�,0�(�i"!1”_E�63�;�x���Mr��X�v�uaQ2���C_�yY��#"/輘�X�Hp#9x���1@1@�
6�	Z ����m��݆�Q���D/��.T;O|�`1�e7J:�^G�	:^��&#�a�A��$è
:d�z+
a�(�~�d�D[��i��F�XVX��DX�F�'�
:Cqs�����jӎp�q��2��E5!K(����K�Wk̙�g�ط(����h���P+���R���^Q���-O˻�h�@�&�l�o�%<x��j/ޅ��G6R-V|l��ht��iL�`���xlhY9��U~�S�㨆ӵ(�`*�J�|�u���(��xn\T�"K��L?�
gKl/j����P�[�&�cr�n�l�*�oEŅ��u�̬۝�dU���F�W
5�\�1�v��C@��4P�b�|�M��e�^I�]%�S!W�}�`��*�_��U�<���(�cnu/�Xxh�w���
���)��k�0T�$׻Z3
^�^v����1e�F��g'P��JAR�#F��,+E��Y�@�'��C�K�_}B}�~:@ŏݏ.��g2��K�.�L�KZy��,��ߍ��6:&5Fs��n���-Ț\%��۹I�dn
��[ɸ��@�i��5�]�i��v�$��t��W3�L\�	C^\L�>}��6�,����+�7���
�g��2�.��;����H\Ұf��,-Jǒ��Ew\��B�wjǎ>�fM�.��.kl�Dj�.Xv�}����mW\:5֔j����K�ضV�3�B������S��$l��&�ijD�YdIO�~q��!�rW��)\�3�
H��.iT2�R
˔D��'�i���>-�(*�Q�����o�c��$`������g�#A��ꆘ���0�����ߨn������7.>�x��;w,yc�?�Ơ��3����6I6��1�q���	���($�����,��Njwܴt�r(y��h�2�l{s\p�@5�H?��]�J�Hʽ���<l��n�h��'�1��P�mϣ�So���7i��$��½݇�����a͙�~}�Z}gP��$���6M��h������M_:�~z�{�dZK�e���:s�/޵�bR��+ʤm��.F_�����-m�AE�L��ǭ��s;�;��\�激��q9��:��L0��hֳoȰ�h�mS!��S�b���f�D"N��� (����(�YqG�"�Č��;Ck%�mD��D�͙mvKa�5:p�5��<p��Fi͢=Oӛw�4�->�g�Ihh�h�{�� ���e��f��
�zUs|�+�D�W��xst����-�}�"��<;�p>�#��?���X;$}�u�pȖ�ow/�&�ν'�dޒ���M-�3�g�֛떤������$y���I��E�uR�
;�5�It��Б��f<�n;u->b��{g���-:��6ާ���>�k�0ڹQ��s.A�,1��xB��U\�tBBA=
��)~�3�.{�ҍPa�~�OBP��:s��QS�=��:Uf�s1�K�ɗM
�@����P����s�y���gQ'�)�_�@\l`�|N�1�6f�p�p3��,Y��,w�Z�1��~ט���On���oy�'�Ǘ�lfC��W�?�Ot=��Kz
����(U�QC��dP��n��.<����=y�]��S����d�2�K�Zu���{�d���^�&P�^	q��h��E�AakF�Q���7>�<�~̈^�=Qby��A�s�X� Gr9�A���ժ���`�	����Ε�Mʆ�돱��,����,)���4K���ݑ�Y���Z���?0J�d\;|���h��~��ki��?�e��v��宰�����K��v��2�)i�9J��cj��~�Uivo��	V޴�ʍX�~�eC�k�ˆ���Ɔ�K�ڰZ�n�߹ZX�ko�n�퀭���:�h7Τ�����G�+Ș��}I��]Sfn"u�!�`*��ئ(E3	��M�N�4���j�nRX�M��Gs/Mtb������RS���{i��+�-��v	��a�J���u�3�Z/�WS9ZK��]>�Ɵյ�68N^~�i�>v$�$�&x���;�ό/n�Tu�������
�_�p��d���R7���#ƌ��]��Kqk�^:J�1�)Ǥ5���$�2
;�ʗ$X��[���Z(ޜ�h�J���7*�%2E叙#����z�g��{��hLK,����M�������#�ǤOkdւ�n�n��V����Z��Ħ��پ�[���ȷ����kV���%��ʂ�:�@S>Զ��}��S���~�.��vm[k������l&�ż��V�L��s��H��uvM[2���/z9ն���.�S<#y\�6 n�G����fmȬ@���xʃEӻe���iwX��D��v
[#:b��L�_�hkm[-�Nٌ�E��Z~�emM����%Y��뛮��%���Zbt�h%:���9}6xn��.��^%,uXF>�.1^�x��o��U��Q��O7��������}����\�1�B�,53V̒ׄ���'Ō�z�w6�7Oi�6��o_���rU���qp��,�1���qOi#*�n�;6������F(�Ny�'�+ܣcT��q�<e����LA�"qe���޲Sq�x�LPQ�W��Q�W�y�h�Bf��M���(��[�vL#���ۛ�Q�}�;��Ε��˒-�$�glY�o+�s8q�N�er:��@B���p��&�*АB�y	�����RZhMKy-Gۗ����̮!��>������3��3�3��~x�h�4[� �A�=,O�c⋢�rx{�+=�.z���f�G�A=��SM�ϒk߉�kѥ1|���u�g�<D�k~>�\==j��=$��rR3�,��xٰ�U`B�!��"LQ�� �Jc@(��{˯��F�/�����4��3�i��bM6A�
>A� �0Z��������(�	��zc��d�I
Q&������Z+8L�T�W���&�� ��a�Q<a���"�*F�S)1�^T�}uМ�5`��-q'6nh���־�ڻ�O׬��%��3<h��%r�ܿ�e��	:b��
VY���z�l�N�]6��p�/oyiOc������5x����r�M��{�>_�ؾ��v��5������>9�X�ru�ʓ�3�r0�rd���e��t�|��¶����L�d_���*�5�hct,g�}��W��i��\�<�c�s���p=�i�v6��l��۽�N��8��E�߹�����ٿ}aq̈́�s���+Wߚ
D�ٶ�D^�؉>[DP�jq\j3t��h �d[�)��7r��h����UW]�jiK�97���
X|����/����>g],p�K�4�Y�W_�ځ��/&���-�.S���0����+���0:��A��H4bc���7o��|~۶�F�y�W��ub����^yV{1���
�o�8�����S8#(�緥~���w�޹�jҢ����6��ĉ�"�h0P�T�	u)�� �$�`]+�E:�E��q؎�W7jD����-7�(3�uŲ{�Q�l`Y��$����OC�oɊ���= ��;h�>���E3g^tP��e����N�B*���ʘ��!x�%�	�֙�Y}IK %�ep��H�	�ZR�́�H�+!)�ʵ	*	1B�1ˬ�B`�>� &�)ç��	&��
���)��,~�)|H}��ؚ"����od�A��[�aO:)�禓�G����wLr��(y����ļ��C��g�Q���#[U�N��84��~��c�!yz��ݰ��ҔZ�3�;z�ss��.�F������M�ؾ�1F�SI`A	��4Q�ByE軼a�"�Oi���P��S�b�nByḰ��XK���G�����`SVЍC/|WM�߫ʪkj��v�!�:�|uQ�(�U�Ϝe׷��]N�#h<;�����v�U{�}���f��j�H�%X&?	V�u����~���V~j����6���A'��MY�v�M��!�GP۹re紳�� ����D��k�����/�s�)�k�q8vI8��#x�
���G,�c�?��;_�?��!��sy�ٯ3��ηw�>w`����||����t���u�P~I�����hh�nE/�&�j��y+���ٸ�uT��S6�o�o�O�oh-N�p8ޗU��2$�u�]������v$0$��
c���߂��S��T�6��h�Bڭw�.ci��[����ҙ-:g������<F�=�*ǫT���9� ���r��%@+�2�u!t�ޮՒ�2#��ލn�A7�A���YQ��Ⱥ�U���ax(�Ę�[6��b��œ�8���{`.�92q��+vK��$	2�+���p��*~M�r����Vs\IΤ_!���j)p��j�f�]_^ș�P�G>��*�K���h�q��{F�A��
�lW��?}�'�M��R~<3.(�[v<�QHPC����c
}I�br`\~`8��{�;N\�w��Yu��I-��U'N��y]��9
��Kp;�+��I^����^�V۳dv�9!Ns�߁��_倻l�1p�~�G��� p�F#�:��:ԅ�[���	H��˯�����쀿�":s�-@w��;1n��3�+���U�&���97��ϳJ�:���W���ja�3�,���)���a>�� ��'Tgx4J�A�]ԧ?21:��yA�c4�Qd�8�`��b���4�D�lu�*�l��.]�&'� ��N�Y	�?�_EJ�OG�#�y�n�	^��TA��/UB
{d��Ȏ��U�}xX�1r_i}~8b*��=�^]W*s->��K��d��fgQ�U�(��s,�Ze��M\�����]2�)�1
��$l!?OnG'o~��P]h�꙾V�'���E���6Fo���/�q��+Z����jz�*�S`�O�Ɓ�| M�U�a�����{o���0�3g��}�(骪�5�J8��+�5O�OWU�$#��+�����Z	�J,�2Y��i�n���>Ŗ��X���p�'E!��4�l񺻜��i��	S�(�߁T��R_ʠ�̈́�$^����ŊM����O�wޯ,�cӊф惞�\I�`�T)���&IX��3��W��
Sv$F�ݸ{�e�1�fH�ț�aw�(Q �\�9u�\����O�x���7N�Ѝ�%��hۑ\W���TT۪��˻�Um�ʂ�j���r����S�-���kU-����n�E�*+g]4u�,}���뮻mf��msM����X���9�U�uu�UNGQ>+���U���UG7O���(��Y�A!��9ې�#I�%�y���\��gf<�/
��Z-H��L�HP&O���E�Z�:�3.&0B�}�H������`n�(�.�Y�2�,L�~�]��Da��x�Q�`2�:��6_u>�6��)+���{?�D�C�<���Uk��mb��~�c|T��`�ᾮ����&��
>E�7�"B����1�����;��/��� ʤ�A�$v�Bf�������Ytج�G_))P@	p�7�:�z3hfa2
������:v(�^&��m胍���ɛ�7Mi(�&�+�;��v�v��&����1��S���	{��\ر���%���W��[�7m�nYm}������5q�oqQ��ˊc���^��nBq]�dZ������CG6�\i�9I/�����`��b��}��ޥ7���5!���pa�r�H�ٰ�)
|��\����n���@s�؇Ӂf��s�޿j��Z�V��+m�#~xd���	���Iq�|Y�;$���`k�G^i[ي�F�T�X�
*�Ql�N��+����xD�Ց������-M��L���[J�� ��ϧ����},��i.F,2"B�G�щ�����0��~�Ie�O��Ö��[咛���o���}�T�a>��ľ��/���o���z>�E}ʋ�`v�z%5Q��l��ҥH��+�+��l6g���S�Ô|�B��h�8��ڱ�t}C_Ꮐ֣*�=��d�[™��M{�W�J���fw.a4��4���D�o��*��V��VA�8�sP-��Ҟ�}��A���"�
�@�"Ȥ�����t0���+|�|E�4N��Ł�ݓ1	�9��)*���Y��Ѷ����QoP��@�	�J�2��::b��?2�H���ϴ����3�Y_�n�x[��b¼�Y1-��M�ҧ���i��.�#?<���e���n��g���_�+�w,��1���?�Q�`���tt@��܁�
�w|3OQ�������ozi�/#����@ :�ۨDl���#����w��w
k�h�i��Sy�I����M�@�$�I��g�QC�3I/���Iү�RО��c����}>�\!��Б��c�k3Fʷ�׌8'�חe�d($lٷYS �hC�:Sl��i�,�ɯ�䝂�<d)r�$�S����Ib��T�^K���p�+Vu	i����A�>F�i��$��柌��t���n�_=���Pp��T
�;�(�3V�{I�D{��iEZL�I
��sҢ�c����"3�[*8#��^NG#�c�`4�cCf4q���&������E�:��r�@B��$�=��D���M�RI��'���04	�'yP^�?R���xS^�3�Ԡ��j�"�����!���p��sm�h��g8�����G41$�G>Lx���Ny8���.'R�ԇG@"�L��C�8S1�I�.u�ߣB�G�?>�����sj��6�خ0FƆ�{�1�7qD����X�SJ�Rʳ�R%F�L!sM(�~l^0�������a�v$.��X�V]�Υ��t:�J��t����1�"GЏ�e��C7�aR.#*�f�E�|[r���X�\�p���M�[�\c�3�����`�Z�*�؇q�fPW3f��!�u������6�����1SJ���rm�o��XQ�N[�1�c�_.ʁ6�a<������K�#�QGRs�7�gc7�P߀s���ޝ�to��s02z�r�����{V�{n͕�{6>]y��T�Њ�X����(�|�'��׵�h����%"� ���׫��{�i���`./Md�!����]Ђ�[�x��C9w�<�X�c�pKC�a��bP�#lm�Пur�8�/�^�W`���Mfs��(=TA��{r���\�X݃f��?8��:4�g����d��<�Pm#�4Vo-Y@PV��p	�׆9�1JȺ�C�F?��!i�&0���I��SH��H�o
7A?�U'S��C]�
7�4���O��z�C$���=*E�L��@1NfY�oȒ�:4�����#�}n,�uN���\}Za�gi���~��@S���d�&l�'�Y��p}�@�&:y�0�o�)�@���}H�U��q����Ss��G��|����@S�
��$q�Os�I�#KH�OsY�d�Y/�R�����&5�@�ѩ�Ff����k.�`����G뺦��Ÿ~%�0iB�7}�y����1_��w�lᆬ��q�_�M��R�uŐ���p�t�����{��JH��E�2#�f�,��t��D%Q}�:�0�Z`�1��
b������W6K�+���b�d�
f��e�+7�r�JLZ+S�!�}w�P�3�wi-V�6�u���o�+6�]�
�`W��d�d)���P��L �#,{yi��*�+��ӕђ�����	g,cʺ9^V'��0Y�2����[��g�?��)M�������~0�9?8�21�����^:3y��+�|�W�#�ܻ�oط��
���{^GǼ�?]�M��=p��K�W
B��K�捋fljh9i\��	���ȜE��Κ�Ι�v���ÿ+~긇���}�$���9�3&�E�4ɹDR�u$���c���<�a!�;���Ă��Ȃ!ŕ�1/嗋X�v��`�t�K��e�K@H���2؅�Ѐ�8�6T��jLeˍ4�T�,�	.��7:́�b���x�*GASt�=����I��,�"���G^H�Pu�e��PCn��A�	�G���W�fD#��OR~^�e����*��\�����NY���LW|i��=��<��ѵh�ώ~<�h��o��Btt��U��]Ns5x�O��|�2�lm�6h��ݎ]7;��S���.���i����ZU��\W9�?�[��ڜ���Uj��u��rl��!�.������D߄I����D1
�'�G�W�<�Qf���BŒ��*1S8�)�Z:!
)QH
��I„Zu#��v���Ro�o������ 5��\G��zx��dT�f17e�E�X����\9�ZAm�vP����{�Lj�	
��t8/��Ҩ���9��ӥ��%���}�����	�{��_�<`F��=�2!���1��������ʔ��ۢ�n�|�����o	v&F��H�/�~�_�:$���n��Q��$�ǟ%�~��:���٩2j��2�A���l0�l�Z3�q�єɢGĉ�k&b
����i[���cu<~��x����sE��U@}�Mt��nZ4�01yS�Z��&�l�^}o�_l
Ev�k�����`�oM���M��`�7-�����҈����lXd�m��)\Ԩ�HA�q�j+o	�ƥM�,Zq�O��,�eT-5�ڂ�C���$���(*��9l�R�:��j���j:��+�=����ҟ��F���k�*WE���pIk�� Y�j.8��J�
����
:S�5��G^М��F���m���.䜼����CcT��@��%������kKH.!�%
��ud�)�kAA�T��1��x�7�*�\�y��p���g�
*����5�U�ftL���1���ń��Zm�I���j42`���W�Y��c�D1��_��-����D�w���|㟥lS�2�4�B���a"
�OR��z#2���(Klq�h\X�*I��_-�4V�.��7&޹kxp�����1��*{cG�I�	0��ݻ�
�q���M�e�O>Y��c��
O���*Eu�DmO[,���	�f<�a�#$�K�0w �>�s�	�6�W�X�����6�����b%���֢Bۇ�ߕ"l?Y�k�Z��&��|�l�
��!��\I�8�����
�|��`�&��1���1�P�/��IK)����){@'ZY�hv�&��g�
@6`�	wE�&yI���IJ9D�I=A���b̚�|�/����H���u<��R	禓���̘*���Y.�F�E���vP�ߡ��<�ݓg�Z�E��=tL�T�"&ǣ2=��"��ǾG
GL `D݋g�9��X�F��Me������
8�~ErnE�F�*�Mlu|BWY�Bv���i��J~{��^*/m��*X\�wt��˥e���R,k��T��$�ӈ�� �t�R��6j����<ڭ�'������E6���ZhP��q;��q>D���@&� ��찇��NQz�^�~y�
��@^,,�Q��`q�q__X(.l�{^��/�/T8 �c�#*b�i����&�O���a�S�	�l"y�$�&̲D�s7P�u��
=j\.Qܑ?�҆���|r���z�4�ʻ�}��ǃ��u�fůs���fB�Q���B���Ev^M9�4�$?��8<�"<.��L��3�j��L(L5��FV��w߽wpf.p©��M�n�c^��8(Uν>�n�.K�e���y�@��{SF׆�{�`�|���73���7K��ݒ�pȕHd��Q"�p�(@dY��T
c�T�YKKJ�+�V�O�wd�C$Zѧ�tH��ο����n� ���w��?�&i��G,���
蛙�������|шD�>y��A�-@K��#��L����җ|sĩ�i@3@g�M��/<�X��6t��\��_���e���y�̺�q�*�������+j�/������2�����<y?�1!�Ak(���+����݅b�������	��K�Ev��_��X���V�!���{Q�:�_���׍��u�{Zf��u�>�+&�Z=�9s��{�]	F�l�Ǝp7�@��Ŭ�7G��/Ð"�^9M��4%?�}e�%C�i*�fFi�i�&8{L�?�p���G[m�����Xګ`d�l�'k��&���cb5n����cd`A0g�	-������X
R��Y�<��z�ŽU-���̞w�'�
v�8�
j�BX���V�����>�ג�k5`Y�TT�j���,O�Ƨ.
�f�ء�6;*;��Z�dNywM���"��0ԈKՒ4D=#���eL�p�E�H�6_�-�8��(�u��wʫ���%S���$��#0��z�ޓ���d%NQ��o�c�[:��@~ƹOq���S>P����䬕�}Ǐ�{�"�f+�wm�3;�a�8Z�x����
9�a>�n
���
f�|��}�X���<C�;�>�ϓѸ?G�c�"[yg�����g�Y�Q�@z䛒��K=�"�aU5v�:t��o�p
��I+<I~��}���*���2�E�$�Ď�K��ڿmO�l(4��{��_ծ8��L^�6�i��4��K/���Œm��9]��e`T�%*��������~�?"bH�)Ԣhr9�>���'���	/N����AO٠#HzK/� �]^z� 1Q�8��0�)�]��h"� ��+�_Ta�U8�i�cm<����ǥe�}�d���@ų���Ac`h9�NQ�S&�ݫ�M���XK���X�~�����JЃ͠�X��)��=Pԯu<�u�LU���A���i>M�7�:u��&�e�V�b�{��u+9���de�n���W���jdS���X	6>�A8ozt�+�$�5�Fv��_��iN�&,�����>�V�2��
���7>��#_f�
0Z�Ҭ�`>�&$+H
кe���H�!oڇ����և�h���N�+?����]����¿�0Ck~��\�,���������?0evg�φ����
�cuH��`�s$%��C_�V���@D��b��Q���R���Uͫ�YA��$|E���{Z|u���a�ޡU���_C�Sn�n"�k� ���ǥ�ES��ʇ�8��A<��vQ �#��\�W)WI0���#F`�w�i~m�!F���Q�R^�ȥ��H#�|ap�m� �#���gaH���F�A�>�
2}桫��j����>��M_d���d2���/��?�(�J�t5X�O�wN���n�
���r>-�|<��+��> ��z?=y
W~>����<����W䯀������\0�gj[�y��c~޷��CՀC��C��<�9O�E2VnK+�g�j�2*��j�~�y�\'oޱL+0+1{��iu�W7*�v���o�ܨ��U�j�Fc=��|LƦ�~�߮��e����˴P9i�̫���ˉ�~��d�
9y��r }�u���f�**�?��8��?'a"U�[/�͑zyU�@��ʙ�p��y=�K��.��۳�H+9�ې�3۽��R�NgQ l�]�}g+D�d���3E�
d�٠�C|=����"�猖���D�$����1���K��/%���c�io&5�O���p�F��r���r��re�+��9�Sn*���Y�L�I�D�#�#�@	fq �패����a�#���'��b��}=�I�\̮��'�
Z�h|,=��:=(��T"����)F`E�E��V��j��,���Q��|�FQ��_�/���a��|2�r�K�bIx�X��^��b����I�&��$J�t2(i��]�NE�Wؗ�,�ޥ���x�V��c�m�pF&+a�)
�����z؇d�=�>���>1F_9�=�!��~S��`�����;{�L��|c���pn|U�^;�-�.�߄�m���"��;�aX�(��Ȑ�1|Y�Yz�_-�^U��{����3�u��!��C+Hn9��d>�)Ȯ�˵�U�I�ͧ@E�$*}���*�~�� V���9�_��X��AW6��Я5�D�T��@BlE��M��+��Ք��d0X�v������mRf�Fu%�T��c^�*-q�)tS9岠G�)A�o�jYJ����}A�8�I}J�J�e��<Y�s�����\�����X&Z��?�kUY�Q2�*�?���q�C#�M}�;�x�~Z�T2#�h�n���o	��Q���E�^y =@'��\�]��ce}�溞z�F|�`ė��з)���芛����/�����%�g��@Y@�k�K��ӟ*
�E����{R"��p>�r(��Z`Y~Ir��Ximf�)~�U�(�0�$���(���@z)��p�_\zv�Ow�^�9;]�W��U����5�c(?	z���?ܶ�g��'�h��N�rG]u����a���!z�"�!�`4y��p
�A72E{�\G9 �T2	f��t�B��IQ�
W���sxn�R��P>�#G����\(:�4Q�S�R
��7�~�F��9�����r����@ ��:b�Q&e�P�3��R�N�ZD�%&J ��~�2�{�@1H��r�X��/�SV�18c����Y�Ϸ����w�5��m��4�����y�� �/T�4"9�	|�O��"u(�M�(�֍�nb.e1�"���r%��	�ӆ���ڠg��t� }*�ݶ7�DH��B�lg�]��rt9m72��Z�.��T�6ku��u�N������^�=���Œ�B��a�F�_�l���cY����@2n6J
�Ea� �(z��6���i��d0[\����Ioھ�fЅ�<����j���W��}�q�G��9�aM�\WWr�!���(�^�k���=s��F��-멜�jH ��NQ���k��p�è�],/�?��nM��b=�Z��dy׻�p�Q�/{B5T�)�~�+�������0�c�ы�[�p��kM��[��J%����~uD.7Jwuw��:�l���{��ٻ<��X�rf��qU���bÆ�f��fkL��v�[����R�^U��O
���[>p=�[�amEeĉ�u�B=\��,�UX�簙ŀ�b\CӴq��<�a��23'Z����@�cA��"�H��Qj��H}g{�;k�����*Sp�
g���Y&���3����֚������J��K�V~c}l�w�]�O���h���p�h�}Rm9������x�q��fQ4���j��sD��,/�yQ�e�H@
���ʋ�u_@�WaJ��M9j1�2R_%�F�j$��l�g��P� 1���l#�L�щ��t�JA�8�g��,:�F�ջ����-�
�&
��|Q�5Jp��l兡��Ep�d,��$c� Η��Q~�(�����QOtu��1WJ~ɲ�1��dSʨ�H{�pTWؘ~I~|K,y�x�D��[C�K�.��.y��?ґ
��}� ��i(�v
�h{�R@�[u1)�s�"�>�� 倢#Ҥ��Za����͍�t��a[;Ogxl����Ll��{�]W&�#3�l�����w��G��O܏�z���a�5xs�bV�3�w�g�ug��=N~%8w��o���%q���1c>(G�3��J&�i�J��t�X2�E�4}��	{ѯ���D�VV��"���o�N��`4���~[�b���1BM%�CvL|"0�-��m�}Fq$Y"��;(:j�ш-��P=4]W�	im+�w�ԀvZ9�Z���ی|d涋���]v�8Uz�xc����]�N�n�Sz묝�-'<S����hC5�j<Ҕ������	<��X�*��]����r��j;sjQ��Sp��{�~5�7���������A�ǀf
f��
|�:�54=hGq���A�%�xIl�w�J�`ޔ�Pv�,��K�7�E��oA��������瑽o)�n��6u�,T~x���.��{�>{=��.t������(F������~>WZ�Y��fu3 �����i7�Q�K���T��
�h2
SF}R&�U���*�0����,	6�1*a��p������2Հ���:��:�A/��J\���`�����`�A�I��_/�q�ZΤ��oޒ�W��z������]����aГ�2KV�@o��/��,h�Z�[��8��F�CwЗ�<�����O~��p���z���7Q3�;��{��a��N�
�j�i�Z�C��1�j��v���WqӰ^�@ub��w���+#!δƮ2��_Y��~�t�$ّI�)�s�";�g�Z�A���Ie���ߔ���Z��=F���a�V�;vk��u��v�f��e��[���ϳ��}�{���X�O��V���`^B5�	�����5յvv�NN�y�J���>���)�M�`h�3�ͮ��sw�����׈�sR����7mKWl�Xu���8wN�Y�o����k׬?��޲<�;Y��(6.x&��U�8����ǹՓ��9�G��̯�/��!��?��C#��F�l�ndB]�]�y����u?��y;��x��m/1HB�
D_���A//Q!�;t�B�!�Ll���
1�q]e������e%]���/��+�
�8{k:|�K��V�U�Y�3i�$���a�m�b�A���l�]�V��j�oin���ݮr�.xIA�-��>�9X�h�J����f�3�U��Va�����1s�8�ٗ7R��mD��C�1�/Th��&���Dc5��[O���`�L�o�F�E�
�&_ug�K��y��%�:jz�%!W`׌��O�t�\�hԆMKMgZ"��
H{<ܲh���䂥3BNOsim�M�6W�˂͢oab��x�+@��]�&m
6����b��Z��ؑʩ�������;�G�_^��W�"Z-�F��E�/�.�[X�Ge��#^e�Y3,1h@$N�E `���u�:�i��4jA���y	:�
~�%���|8@�0mLtJ<����,�a �Z��Z�Qx7Y�fK��'�_�6��=�i��V;h�
���vo�8?i�;ZWd��u�.�;9 _�H@���X~��w��+*&�V݄�0����Ƴ�G�3y�&��|�����fsGj�lO��8�vN����_��Z�?��dy1������BK��:��87����+��UZf{R[$��Ґ��&w(T��5!�����=��.M�dnEk2�M�=2�������M��t,u�������E��F�q7�-�_���	���h��᢯��!���ZE�S�Q=��w�"���6�x���o�גyyQ�;�����aZ@dԋ�c�?ڭ%�<�%]C��^�%=Dhtw��2}O�g�����+a����9g�5ԸA~i�j�]���i�Xc�Ǵ�Xm��ŕ�c-��
kU�����¢�HQ���.aQ��i�Ӎ��.�nz
~L�C������}S������Paa��#Tf-��V5K-�=��?����QU�qx������l��#_X��,��U{/�~|<�k��J&-\7+�gC��ۭ��֤IoMN/�t[S7g�q�M�>�i�j�Q����?�iځu��o'?<]�~��d�l���p@����`��K�ys�MI8�p��j���
�2�2 �A8_��;�ͪKp�A�u|Q�_���_�n�Ng���)!(��N��iU~�[�^��T	V�mCg��-V���祯�̌���$e�E�z� �h΁���v@�ba��p�(��[�Ӣ���~^�՘�)��8oy�#�k��m�>-��<n�~�"5
>��
�����`,�g�0�}�`���O��1k(O1�F�N��/�2���+l�ESs����_��*3	��- D��[�H�
|$>�h��^���zN
�R �%� x�N!�+ސ�_SR���C�Ap��4X�e��tf��+XO\7��뮋/F�ä�hZ�,����:o��EJ���R�b[���hX`l�� �@��6�)��?��l�lG���z��0=,�E��l�#;��B�cY�[�7�?�6��s��>��9=����1���,�	���?䟃"z��s��`<�h\������Ȥ��?,�/gyLI��h�k��������h��6�ҋ��;��^׮}|���GioH'a��n��C���ҧvѻ���KN�u�����u9/�m��Br��h��S�����ڱ��t���b9���y�97�e�4��O�1�
�ĺb�.y�p����vY�&�k�[�j��_8��ӟ�籺��\$�����%i�2NC;q��*O��<$����~J>o�Iz�wm"8#�e"���L�
�:R�4p�E�\t�#����)_�����/�9�^�\�-��}�\��_���r9*G��B��pH~}>���jƊO�f/a�A���l�}ع0�3��wW��r�KDoSB﹄E�;N#iQ"�H���������܅ :��3�3#^�b��Z�=.*�t�7
/�l�N3�/]��#�Ԋ�����Yo�������d�/���2'a-�r�a|�ƙ�p�g+�}C��2ٌ,��KK��K<���]`�m�f�k��Z�̱��&ˆ-�NZ��hn�;������]�-_T���Dך�N�jڢ��������n����NO]�eOȽ�P4�]��}i�CS]��I_%VuY[	��4d�oD:9a�*�X����P}	�3��FU�.
����!n��S`9^ik��3XWG	��sJ�Ayx�4͢}}4�WN��Ik{��+B�6c����[���z=k�K���L�w|���c�\k)��[�����#��^�
'�?�'����xP:̚wky�ݺ^t�Z&�gX�^��Z<4�\k�r|�Ur�H�`��4͇��>�pk�lw�*iB�U����
~�u��㪗K�:�_�m-\b��l@jG�C��1`�Y�����*IbQԟ ��X=��G��,�=�i�[:�[Y�3�
fȏ���g��Y����\���.۸����EC铞���|;�� FS[�Z|Q�Ё>	��Y�`�-tSkESI]��S�q
`�k:��/�mդ���7�);p��s�k~&�*�.(�O^ް�o���P�T�Q�1j�}l�~e6�w댂N�è�ZU�@����N�fIb��b0�SB�4��T�V���q5H������`9�;Xed$i�8p3!3@7��f�%�St��3�����w(�<�K0�Pp`�3V
��2���zO�.==��pF�
^���NA�_�@Y�ͨ=C$�QU簰��0�J�Xf'��
2ܪ
ѝ�jg7��]��Y�`B��ّ�o�~��S��+W���cy]ݬ���E��X,�NO����3a���^�����A���P�h�,�|ы�Ζ���b����
�h3�����\�(`	Z����?J/�\rh;v�bz�rX	�+}.��w}��H�7�1��u+���2�"Itҁ(�6F�'Fݲ�,�tnʒT�`u�,.���Zb�z��Z��p�8O��è������{�v�ch���iAs33+Q9�yA���f0�*�!9�*y��`䧮x{�T�h�a|�����)r�(��h.��77���5K�U�?�?+��*x+�1���/�/5�a_Y�>��7f�*ojB�(���%�&�4H��� x*L�T��B<��q����J7����;x��Ē��B1u9�hԏ���0��P7����@š!O��v���)��c?���p��Y"��h��#^��ކV�!ю��@JI�+��h��
X�jȏ3n�A�V�p���Z�C�/��LU�:4�q�aE�aa. `�M���1�8�@���
�a�)�p#`�DIq�hފ�����ո>I��P���!`6���N$Or[�F�Y��-�a�Mz-�J�RƤsjh�6��4��2@ =?��4
y��i�o�O.6��&�@��ƪ��8
g/��"�*,v�h��_�.�@k�u��-X�+v�&��N����8,s{Y����k���UCӂ�����v#���tᬘ�Vf����(:fi �46/9�����-e�h�t�GS&T�#h����*zD��l�B��J@���]���BZG�z���ղ��2Q�\g�9��Fc��6i�,
�2�F���V;䝎�+�	�(��
���S�@�VL)�ݛ�%�NV�
�:a���E���(B�?M�����'8��iѪ�p|G��A����5A{�z�```]wxB���a��U��&$n�unw�/�E��!�l�t�g�6�tF���^���`r��� ΀vM����s��²=j_��/ʷ�NS��\������ֶ���B�rgU��X4��9��m�_C{������3	�Sj�Қ=&�@�
h(6UCZ�E���J�`p��j&=�`�Z��JBsŌ� 	�aLfɤe��e����2�[��4_�6���{�A\�qڊ�
%�	k^�q��TUJ��j����Z��l��pU�Hݖ�ym��ĠWO�Y\jY`��B����x�q�z�0`�4?������1F��Q���K���n�EF��6�Ȏz2zK�����g,z�B�y|�Dk`t���鳲��T�9
v��C�h�
�h��nB��Ӻi~��l/�t�kc�k�6�x֮r(r��X�c�7�L)��D���ElP���{��W(@�*��M1G<n�I��Dz�@y�]E�R���U�l��ct(��,�P��X�
/�� �|���;�a�P_EF�VP�a�ae+!4�n�sE���Zl^���a������BAF\w�ER^PE��֯��x��?Фg=�M׬K�N�9���}h���wO*��%3&w4G�=��#�|%g�������e�pч�߶�C0�7��7�7}�\����B��u�J?z�5)�l��}

���2։����4��~��r�T��s'Gj=��{���!��-�[���;J+T��8�4���a�(�	E�=��n\4���SX&��w��T��6=�ӑ�������Yvo���욲ڢ��?���������y�<��Fs��X�ޫ��p�<o6�,3�>�3Q_\Uܶ��eIsP(���p�[Y�m�\zip�G>�6o|��v��ݫ�ȃx���Hwx�IJ�Q$�*c�|�ZBSʳr����_�	��t���B[��Q́����F��&��F��D�Ǧ���ݵ>�F�F^n�4Ļ���H��dZg03�����LE��-6tmYQ�y��[���n��[uZ�]�k�]������O-�\J�XwP4�Q��g�8�vi"3��b����N��~S��Q��K.���B.S(W�����b�
��d'~L��Y��R4@�lm$�����/����kmȕ�X�_51�
i���sQ�����u ��Pf���������`�>y�It��/�&N��K4���G��K�� �a��t�=��K��2��A≫
���l�6��Q����K'�?���
�ݛ�R:!+<y=C�HIޔ��-}P&��{�&�Z��{�aV� ꒡p(�j��쎒�,7[��K�8K��J�-�UY�̢̧�=���b�WJK��U�3�~�cD�/�fO�~ԉW�aj[A
+8�-$1�,q��'�3�A�#��	�<��a�#��Φ��Χ�ܶDـ��Y~�h��yu���&����a��?�e3(A'A��Z��qP�N��$��n�6Q�#�n������,�t:3��aM�7���,�U��Y�ut�l���������Q��x\��GF�HmI�cԡN��IC|`�a"�3��꟔_~��ק��l�A4_��˗
܎)f���[*,�o��C'o8��q��	�M���}�����ѵ�~�ʿv�
o�8^��q�g������"b�P�`�q)զ]�z0s�o���ؖD�\���3'��`�P������‚�p8���T?�æ����"���n%�����W���bPI��%���b���zB���7%I��/���ĕ㓑5�M��)k�S�h�ˍ
��1)T'���Iu!�؀K��N>t�³�BGw���$Iz�5��08�;6
o��b��-��b!�B�6�� uٳϢ��)
�)�e�g���K�Y@��\͍4�VB���}��f�$��9�z��x+C�#�…{
�i������<�A���ǜ�J=żT�g�յ4�k�B�(g�j�t7Lp�:�d<È��So^�,��齺��S
v�5k�u&sQ����9Q�c��s�F�l��ǜ��-�	�EЈ���`s5�Dr�Yu����o{���wi�g�����a��m��j
`��I���hf܄v�SWzM?�6�YNB�&C�m�
����@S���Y:�h�k�]һ 0��b_c�␾�_]����|Ik�:�dMZ��#�kv:�##^55�ZO]��ƬN�gc�D��#���5XJx��b<VDz/ql��v�:�Nk�(�>[�ZBPCcH�TT� 9F�Xe�*:��~g��b��m�Q(�-��D�6n�]]}�o�
�#�˧�Q������A������?�����W&��M�d8��qW�������а�cۼIS�@�.js�1����/����1����������
��9�l\>�$��6��e��b��/_�S�f��'�{n�,8>;�l�����O��0�0-q�`@�6��m5
zԡ���wգ��2���ӝ�X㬞�V�K�u�y�cRT��9��|�b��$�O�m���k��Ǥ�%�̣��bgD�ܣ/<�/��_ʷ�_}�~P�D�x5�(�߿|��o��m��C�٫��g��ߤ�俾�
�F~VY�C��N$�m�k/4U9�'(h, 6�q�p��i�ĢU,�i8hx�k#��9�dwz-�]�|V�ٲY>��rI�@�ڒ���\0׷�˷�D]�}JNJ9���W.h���,cи���	�H��%,g5<R���آ�t�p���,G-�޽c�5�'��Z���)��>���Px� j��̭�fvU\�hH[��m�\h��5��՘�;;9�i�6_�Q��}֢��c&���;ڢ���1��9-}>�W��Ab�
�.c)�In%�UD���>��,�/h�021�:�AJ1{+��������[�{��q��`�)���~�jo��cG����j��1iL�	�b�*�i�dS!2}���5c�����a2�Z��l��d��iˊ9KqsT��ɴ�;;��afT��U>���%�+k��b���GY���jQ��,VC�j)�[eP�����G<����\�x�՞[�]�jt=�~'}�����6*�#A�8����ϭT�2�
�X���bK��p��D�Z�(�����׷���e�!�?�����x�2�K-_ȥ� �5‚���Ap���~Uj�,{��?���?�Z/���g�o�~�ڒ�����[
"m�'N:����L�a:����h�x�>�,j�Q����
�8�;Ѡ;�_�+B��U�����۴�}���K�Pkj6u���O{�{�i�I=
�?��s~����^�X����@����,h*�*#���Q԰��Q��3aXHp)Brk�$,1J=�$�����_ߥ9���$�t�0��us0�(L�L>��(�U�3'�)˲��X�|bk�{.�$�#��{��b�*��M
3R*���V��.+��r?Q~{���3F���O��]��j\��x�	�_�b}�*JpPh���=�->"�WT������>��#��БZ: a�^�a"�/�9��$����3yɘH�y����❕�;�/)��������a��Pp-��YVt�E�z�����k;K�KC�m�?���9��i�N_u"��iS���"b��Pɦ��˿	��w:�W(x�7��(c�غ��D��d��b
Q�"!�2��4�:��n�H��%Ux;�R<�4�~�:w�C��������r\3��������2;^q���]��9�;�ʉ��4�q���6{��;���������-g����*����{���t�G�w�GUe��{�{�7�f��'3���N���zh�w	 ahb��(Qv,(�Y�ZP��ς����� s���L�t?��?0���}��s�9�eq�r��>��rt<�gn)�Ȼ=!^�?TG/�J�鹠b��{5ق&�:"@�vd_Ү�C���i�I��M��@%����})6��~Z�s��yi��
�&��zåU���C�C��-F����
���uMΜ�|�:��AY���A)j!�ff���íYKl���dD��x��y8��%
�,�̓��Tj1E�xB!�D?A���Ax'�?���ą�h≩}�7��5[���X	����� ^n�T�?��A��M�����JY��δ��
rx5Ͽ9l�R'�5�����Ӹ,�\0���b�<��0J���$�0�6tϥ�Ly���+��@��۷���!�A'���+>A/����;w��S��@ʇ*���]N���r J=�R��ҵ�Ԟg�u�H(-�]�R���R�$l^����}��{���n�"<̩'��T]���Gh=�:6�'cğ0J��1�HC1��T��O�k��0�q�)�}F?H}wÊہ�
�4i؟�q�O�m�'���ێj��%#��=k3:��)%���ї�¾�袺�s�ql&�{��d��ܑ�xMJf�W8�O�
	��
%E��T
��O�'%�_�I�h�N��$t�Ϛ"������58>��s�dO2~�$��3џ�~�烌V�JLL��L�dR��Jj�ˡ\����䰼�N1=f21]8��GЋ���A���R�yã�[f��
��j�S�G����Z3GZ ]����&�D��� �g`6Ko��$XL��	����ZU�}xRy$��f��s�w�,��J���6�ؐ�R(���K |�F��K�dU����X�:4��r��i�8���Je�~Y�h���O!y�΢��R>�z�Vt��UG��V���w�<�����0v��&���7TG����8����Vl����Ƣ!;�^�8O�W/�&H#LD90((ѓ���?
�a��)A�m�!�L<|ئ���%\��ÌL4⏕`n�?`�������V�Wk���h��b�+i�Ś��b�%8t�i���5���@�/th��$�pK�套��s�����G�X����h%��bɻ�b�/u�5K:����`��Ěc�bֈ^�:Mžr�ݹ��׶gY5e�\pA:K#xs"��N�t;�f
d����B�C	3�v���Dk��/���U��1��ղ9GsX-B�����C<��27ǽ�� �M�.E�guL�͋\y��Y6��{�Zbu��y���E�5%���.wA�P3}�S�nc�e����z�5�2�QYͫx`�բ*'/Η���C�i�~��E�'`ciE�*������&9��ҞKA��#��
�\���:+/�c)q!�r�^=�{�p�n7�\ݱdq;������z������kڗ,\�Ր9�N.�N�[�EZ4��w^/<4�z29愘�+GU�=��0R=��9��#}�^�)t�r�����grt:��".����^Q~;���3�ʪr�mNEE�@~��}P�f\t�z���Mբ�I�`/81iS���N��M�PV�v�<_aO�6)��h��N�v�9dy�X�O�JA�1�`S�N�F�0d
���7�����`z�$�
8g0:�a�ї
���Z\f0<\o�����qg�~1�?8`|�l�"�[��nb�1 �Mys���B�'F~���Zb�vGN���u_f�͉�k�E�/���˚�>����6��D٘����HN �T1P>G��O��6g��\��=������WNe��qo�t#u�z�:J�O���'�)�%��A]4Q�WC���MR�&
�$%�j��¢
�7�Hl�%�Gm�P�P�F� ���@9sBM�\���+�,u�`4c�NZ#�,�U̥����.a�L��Q<4I&ũ1��@��aWN�]��P9�h�^^�=T0}�\��$y����'�Ѿ�Y!�aE�D��*��n�Ĉ\n�E���*���e����S���4Op����D��1���K��r�2B��}���qj���1�Ʀ/T���
7�8K�YY&�駵��l�W�S�J9�=�4OG�:�ٝf+\����*Z8�N�ʢ�g^�@��$�|%�-ϦWH�M��VLR:/Q�J�h{8�s*dX�J�5`��j�[p��k��&UY��b���d`l�&��L�S�Tr��@���t�ڞ�)�{i�E���ڲ��Z�w�:��0Th���	&�!̀\��V`)��;^��L1�C�|]ߢ����r.-��8��e�u�J�|�W>R���N��r �8x�A���#��b�+�<���SfL�M�6�e-��
!��d#_��Ԛ�Q&��q����qPB�k����A��(#Zq�Ɨ!���Jp��l"�1ײ�kI�ZV��p@�?-�=6�S��s���,��e:3���eZ5���R9+7�N�9��In�ۇםX��gCSٮ嫳lmu�
��,�3��m�9z��O�PEǰ�B^��r�������F&B^m�c� �r�4�s�ͅj�\�g1H9T1rFBC�Z��0JPh��w����an��]b�յ�P5��ނ�G���n��W��g��k�uʥC��?■�ͮ��|��@�-^%;��x>�@5e�yA�U�9��54mƄ�Wbp�\!,�G��hD"��	3!�
鄛HT\�6H8�`9L�E5t�V�\�)���{`��{����
ꔻ�@`N�����{��9�瞞ݷ�v5�ٛ:W�nY�u?={���%�1�4*ve\{z�?gm��e&��b+hP��9B��{�
O�Q,m��ճ�U[`l�\5zH�ṽu�=���`��zr�������X
~�UӚ
�gv�^5y�#�Q(2'}CW��Ks륊�O6��7�Րo6k��C��D��&PS���<�J�N��,\ՅDe�PZC1$ӡ� *r���1ѽ�c�ȅOQe�4}�TB��%"�9:���v̀��OHn! ˆ�"B]b���	��PIH'h�$tl$gup;0y�\#��0�¸iI�q�Z����!����-z9$Ey�(�WȬi�����*/c�[4��\6����P��u𹚫��H53�g=>㯳�X�N�o�Q�5���\�8<��O�n�����}�թN��h
f ft+x��2�����mS4���8�vו2�
)ѻ����$:(��Z�1��F������bpB�2k��Yc�ÐQ+Ꮏ�n�#�4w��ݩ�/��+�kO�T=�#�ʶN��=;��3��3�Q�
@&.֯ɗ/�oD�{����L��=a���M�M=I�����;�eχ,'���d<�FO�c�J��wy^��@��L�{��i׼���ɥa��r�q�SY��<�.��'\�J2���+��]>(E��5�^B�K�1��g��Հ�bAt������p��7o�C/�Ҳ�j8�Q��Q��ޢ>”�Y�nPj.����$Qlw�����[�Dž@>����|���rF�R�=�v�?$k�sH
�L�k꿿��
�N	�\|D g������C ]<xF�L��_�=�	�g�L/ۅGI��^�TGd�e!�ɐ�2e���Ӻu�}��9�qt�t�;�GT�{����Z�DIA���I�ɓ��'�n���L�S���h��|�	_D_1 ���FO,*������4&0�4�	�aDr
�g�ส����غ��7��eS�pW-���5���_�ԧ���m0�j\�rM+9�3ZG5mj!&\9�m�ޡ�xK�X��E{��W,�����҂*��s��1�\~�m~e�-K�q�ޥsV�7�]�����E��,�/p���ț������g��K��C����S���u߮���׿�{]��^�>�ݭ�~wS$cw��T<б�|�"QDRMc����jI�d*Y�N5����~w��Q�Hպ�A�k�3��`�$0	��t1B�(_�%�Z��U�h*\��Tz�R׋Py��Rя�9�h����`A����s�d�Ӭb ��ဟRX|�
N�j��hZ��; �'���h0{*�A��Z+�ehȦ��`�<����r�����^P����Hm˄V���}��T��WkO��' �#gm��k�O���W.���Q���ZQ����{�p������=4A6
Ҙ‹B�3?��#9���Db%>O�Cxu�'@<�����>W�8���-{�j��>���9أW�9�.Yz&�o����m�C}�s�1��e5�\Z<rI�)u+�Z�ǹ�/���M�7��/o���Թ���}蹡���Ѱn��YV
[3�ܖ����L�����\�����[ 
�/�)UC���2�x���&�#fz�QJŽ�m`ݲ�k燚G�>|犩��]�C�-`���.��*����
�4�5��K��}_.]|[NIw��z�������d��6?rp����%�K끼5�kq��Ag�Z �3�g!B��E	��R�Ǖ�>C�l)I���]{�k�m;���sZ���=-�C��s�[����֯{l���|~󪧭�[�OV�ƀ�#@��I�k�<��I�{wKk�[�V�?Z�����E?��oxtϥ��A�� E?P��R�>
Tk	�l�R"7(�/��C��m�Ue�@$��8��} ��,�	a�[ҳxq�^�Q:�ZRP��j�Vu�t��%n�2�f9��ر]7�~,�U�����n�6c�6:�g���ѫ����+-.?�M�&��fv߱����s#zV�wq:꙱m۫۷��c$_�g)��O&�&�\@�b�d�3�4�n�'B�X̡�<i �!�h%�D�ĩY.�St A��8��Mt���x�+8�����P3��M3�� '�
�F�<�,�o���w���R����dž����Wd)����+L����Ӥ����>����1�R�;�q�"��LN�,`/m�O䔰m�8���F0�V���\6&�������yhM&��t�3J0��`���g�����@���5��zzX�—#�Ն1�o�ԠRڮ�T�}�V*�y���p-����"D$ן2�pԓ1 �8��G����0��7O��y#��xh��(���������>
��M�s�wL��iw��:&m�H����)�yi�*F)�I�$q�����K��wN^�~2��I�����6JU`>�u���<����I{�2��Yp���)\֤M}��$/p��3�7��`r�$����k�㹗8AȬ�UP��L`��}�QLda��~��TW�l�i	�f�Gџ0Q"�쉠
E��oE�V���-ȃ�Ǘ�1I`�|�؁����%Aݶ�����8���C���D�À��H�R��.L4I���f��N�H�Ry����K3�{>0P5m��h��9v��y����ռ��%��M��|Vεz0�cQ[}��У��cvg��-�����3���盲��^Y��)��Vؿ�娢V�ԳV��B��a�\��Α���.ї-�&<���_6��0�¡��0z�̈���B�@�}
��0�g�I=�FS]�+(��]`��\x�����\J��
K<�WRC�Q�4j:�s�ۨ�ۨ�T/�.�Ez����Gq3���h�9�< Fv��Ķ7a&�8�P����3���(���e�ӊ;8�sd���g$�"ٔ�0&FD��2@�l��D�i�az��s�B�x�_�o�:�@	B
Z�IH�\�V��Jf9
�J����\!��2ٙ/��:T��٠Tf6ˤ�v�jUȡ���f3T��F������ �����(��KZN>��R�q�bN3�8��ʔ�ʗ5
f	�j�A3]�֚�@�Z��Oj�M$%��RN
�Y���[�w��z�t��e�r�Z������l�JYV�����9��q*� �N&[��5���L��[2<2?��K����l�*�}*�g?je܏�Id���?r
��`�^1�}/U�߃wyE�|k4~N�T��~��Wr�Z�@
�څ_(�Z���V���T�%��ZZ#�X�>u㲻�^Eo2˽�T����'��v�����	<Ր�*`��c�N-FK�+���P���
��W�A�v4?JScF�'�c�7���3 ���SR��Ӏ�\��Q>j2;�ⱳ�I�ܯ3s:�,([.�edW��=s
~��=; �!F�Kl*`D��ǯ���P 1�I����𿐁�I����
�Ș,a�8���p�c3X)W�W�`:�5KQy��7��j$uE��|p�M�5*`�l�h��$��J�6�R/#�������4*�8B��ݺ�ؖ���WX.m)R3�fa�-�v4�+�JP�<�g(b�v��#l.�؄�+�a���攀��³�eGw_���HXc,�@�u���-���ѫs:�f��p{����(nX8fQ����:����h�o�6���֏E��:�~�D|%�5V'���8��jK�mڿ/�ѐ�K'��oB�vNg!d��K�uK��,`�靿�����|��Zh�����Q��f$�v�,�>��%F������v��ځ���'�C7�8-6��F�
�@���6��a�Y9�_��,G�o���Чͳ%�{#Q�kA6>��oh���ͻ�㥌��d�����͟���_G����蓌���/t�k`�R�Ӎ)
��|:2r	�⯿s<�ʖ����5E躉�]���]Z�m/x�Ɯ�����O�	X�R����\�r��o�yt�X�Q]��$��^����Ӎi���ܠ���*�nR� gf�5�/C�7A5(�1���������G��u@����|,J�$�4
�DI������ID�m��x��8=9��="�zc�����q2���wНv�ȅGZ�5�5��!��_�u��*�Zm�ߴN3^#�7$��Q��LZu%!^AI1)��91�C|G�D�M��߰A7Y݌:֨�n;VB�������NRS�q%y��o|�&5ز��g��t1��cL���0�o�1Cٍe��^w�>����½!6�jf4��K��	Gzi��d�ߴ���L]���/y �r�E��F�~ӛU�Q@�߉��`��1q��Uwb���\L(�bY�����%�)�
Z��Rlҿ��˪��0-Wi�UФ�I�S��+�_!���y���]����+���r�=`�'tv7{�������}��1���{\ǃ��$
��c�ϜZ��;
�;usg,�kv۸U��߻|�oz�r��PQ�w�Gb�����
���"]lɵ\��{h7���{�‡{8ֻo=`����#�vN���_�2}N��$�sSz̙Z	6t6��@f��n:6�i�!�T��$"�W8=�����(}�mZ�x}}5hK�ż�{�8P�޾7�yƾ7�^:�8,B����7l�{�8���O<�Ĥ��lt	�j��C`�)7�a�9��J��l��6C/��?4g�Z�+q�+�Ia���Ʌ��������q&�g����w���.���yE�Z�EW~q7������K&*�/��:�;,w��oܳ����eCk��5�7��n��u��g͵�&շ��7����ڱ�f�}����?��u���P��;�o>r;��N�}�z�t�Pu]C<֘���јs�Uۧ.����
��o bo���?�7�g�W�� ,I�$Z*�!N�|˲f<s&|헪��m�����:�?������^K���g<���CB]DSX�I*᪤�hs�9!?+K��_���_�%9����@�s
Nz��O|��j������ĕ�D�������A���i���������$���ڇ��~�>��z��Qtc���+���k����x>�7n�鸧��H1���L"�b�N65�|#.h��d
�`/�0�뉚�]R�>�[�K�����R;tHdNk�Vrh�*�<;?G��j3� d4���	ьi��1;����^C�g���&c�P��S��V�9y8xqcn���蒳�ѡϷ�]�j<B��Y+��<08Һu��%3\Nk��&�,�5��E���O>^���	�閪�8�����w<:ml튵ݳGV�t*�魏�7Ϛ�q0J����g�!�=B_Sb>7L�S���*�J�&�o#�'����q��&���]+F.O��	s��!����qLCDk�tK���||<Q����~J����%�� U�Z�+P�a�8�<5xz���y�μ���ե�6�d/�6���w�Xi�<t�ۥu��o��[��Z�/w��΢��%E�e��R�?���W�� �h\��z�SWJ�}e�@��Vf7��:xW���$7)�{t�֓�Et�xr�֓�t�ʓ�]d�̪��u�[)�'o���%�C��C��Rnj��_ރoI�rL�=e8�=gLN���;�������h�($Mj��Q��\�������19���z����:�)�t�^�=�QZ�	zpƽ9c����ɶ|Z��b��dY��T� j.��h7DJ���)��2j�F��O^��d8�P��
����7lLč���1I#n��5�peZ�����.PaӤ��f��[[��me��1�+�ًÍ-�'����ŭ���+!���]x���ds�k�J?���{ӻK���բ!ő�b8c�H�d}M-�9zTg4p�ӹdLd���5�,t`V~�O{��Vͺ-yR�%�-�jO�MfsZ��2v|�u,��e4�����O��X|����CGl�����ZA�z��ĿMV$ #C�. ��F��+�&��K����#Z��(Q�T��.�
����D��U�ΐ��?8���X�vP�s�;ֆC��nj��vZ}I�
5C�<wMW�4�ć�!'
�]�qJ!g��]��K�ה�G��J}�VV�>���4c�LzbU�[���)���3K�!w����Y�޶��o������X�q��¾���é���	�[�?�b(\�5�La�乖�/{�s�a��t���q�/�Rˀ�Ɠ���/�=����V�!疕��	�r�R�|��B�DP�xt���|߳eg)����V��A"#�^A����qF��$ڻ"��d���b&B��%�+�ձ�����a�6��U���{�����n�m0�Y�o��M}4�Ғ|�y|*������I{���6�b=�}
��6d1y�ݰ��=���s�/�}q���U�|gF���OS��1�
j~��;q/^��u� 5�eZ�XnK�Dk��c`LSU���xM��֔v)#(���&:�!��PU����Ԥ:��ˮ>�eKqGe��6(ABO3�cC~�QgTh&�*�F&��ak�[:�V#U�J���5.Ugp+*�¢�*���f����=�c(ך��W����1^��4���٠.Q�K�� w�ƐetC��<�(�a,��z�B��0�������V<[M��>CwUc:�y'܃i���9�}��^<� C��08C\�OPE��^1��sZ�R5��Hvn}}n6m����p�b1,	��P	��������؊����������A�1���e�Wv5�wǽ����#
��h�#/����_]�ps3:��������u�8��i�fٟ�>�0��[�v۶�D��Y�4���a�g
�"DR�9K�v���H�R�]�S�Pŷz�Jƛ�3�в
����?X§)�V�F���1�I��o���0O����%�eœh�yw����	x������A�;�2ބ���I�>��g�vz
�_�a�p����^�i5��ҕp}��ϛwJ�9���ˉ�lԔV�4��W5q��H�>.{�C[�|_B�>�N�=�^[��r����9�^5b�U�Ιv��J��ڂ�k�|�߰8��Ng��NJh��J����,�J��A��9���*��r��D��x��0s��{P�6_WF����j��pm8Ϛl#�)k��u?���!K�́�Г��
V�{=��ӓi�3a��3�	`�F�`v�i�n`�n7�<2n���7�un�h�C�"�$T/^B��dG�#�y�Yl޼r�U 5)� ����������嘭���C�/Y�Z��,�[,�r�ͱZ����h��XqE�~D�jŗ�=�k����q�W[Y�$9.��v1r�q�j�3�܈�m7�%���q\���b�r��2:�.�G�!�D�8��<��%r�ըר�i��^��`:�X����+�r:]�<c�r6� ��yi���䜂��?D��E;�x6��@K��Ih�u���϶��aں��q�V-���6u��U;����V�3���V��Z��������G�>E
�;B4�����1zb�_h
{b��#g�¼��p9�t�(��J��8!�RY'�%��saX{�D_�!"8�d����r50�.&ʷӾ�6��ې������9�p:��X�	�q�w�3Ϡ��h��u8�e�D0�7D{ s&B�yf��th�sȤ��'�7VT����
l�L������.�/!�”��.7����5��^����FV�=.H*�^W�R�֮,_�0.�iW�]��ee+�ܸ���&��w��o]M�P��{�(a�W���80�=���p���\�����qZkք�΁���w��3�V]��"�K��f��E����J���ne��*����k��T�7�*��>q{-��ȕ*��Ln�w��WX�r��.� �ҫ�.��z���=���b6���9b��X`-���Q�
�@�w�����?qm��Ep_���|#�KW�W�%eB�3µ{ҷ��e(�K@ږ��˃K{�[@ Ǹys0df		��Q�9��)��8��{!�����p笯k.�U}�>�}�kk�׳v�@�՗.�q٥W�&���o����E�3C^?C�?�G[��۷��={b<}��a��A�� ���ui���������p�(u����iW����2JM�_+��X	���^]��"�~ǡ@�)��<��MN=�B�ó�M-�L!�mL!]�}�c@���ж���\��%��:����%K��o�`���*�*�|3�*]I˰��@��uXK	{��(|I|�~�_� hq���%� A_&A%D̠ڍ��ޠ-hCxB>�Y����3�=��8�:Y�7bzS8?%,���S���/�ҋ^$(3H�ݝ��H�
��$��#�BL�*��f@��p��O ���UF����ٳ\��@ݟ����� ��e
�
E��H����q��uA�o=���S��g���DQ.����b�&.�{���f�׋�w	Z���%��0���.7�s�?��?���~���u�?s�Ȋ�	�'D�;F�F�����El��188:����UgFͯ_6�m�0c��YV7w�U֜��'70�6L6�rh��+F�Z�|T��~����815��5ipM��V���OKZ�۲s6���ž���b����D
��K�읁;���!�f
I5k�%��f�poZNK�$p�܉���7&�x8"~����}���3c@�qL4����GK2m�
<J~))��g�y�8s_�����#���g{�œ`.��ڨ�d����"J�ϐD��1��x1"".@�P��9�~����O����QO�mUP���h��P��O����
*4�V�}]�}���JV����7�l�˸{����B5���寷I�N���].�g����[h���`����/����]�����,�lr�ƨT˛k�2y�dB��H�㍰թ��rё��
j�[�c����	��eЍ�c|��I�O����!��E#�� )����Kx���2��_��$ϳ}�S>L��5��	T�N�y���#4��I���� <1�BD��,5X
a���y���$y�R��c����T��P��YL�єP�����Z�Wfj��z�A�3��*S��Us(�go����.K�Z�!���Jڊ&A� 0���%Έ��-B:�)NゝKg��u\6��߸~��-o��_��wSg�+��g��g�C�.�f�$����]H�x�G�h�c
�n���@d���V�`����2���]z��uܸV�J�h�s��UW���+�w��,W�D���}�n���O���Ӥ т�f�}́R�j5��Nͧ��y�O8�<lH�.�6�N;@{ ��È^x]8!�D�h"=�eN��2�3�x,>
I����$�,>�扵��pB��]41����+�R���KH���)'!G��,�~%!�z��}���< A���
 ��&�d!�t2�B�	��&Jd4�1Q���4y�A�I@6d=c��2��/c����~�{V̢4�������Wwv��Ñ@������|'�]_41�z�J������qKOtT����)��j$4�+���ӎ0�K��Q�1��sm|�~2���k����<L�*3�{ �̟��t<��$E�4�ou�ఇ�.T��k��@�/n�H�9��� ׇ���̙ـ޷�`x-�m�K�.�]g�àD�C���<��'�Ap-:���bxJ��qh-,�
��Z�̀f���h7��,��8�z�	b��ҸorL@p�G�}�`)B����0g�������w�f��h"j2G/��ܓW�KhFI+Oo,WԢ�!H�:��![l�pϠ�5{�Q��i2��m�^S�W\�׀�d���}ﲚ��-%?�I����.�g�+A(�>5�oZ�DnH�����g
1���,��:/X9c^��k4y�UzK<u���L?F�+�MK�k�\*J�bN�	fS����^�)���P+n�J�Ɓ5�j��q΁�� �'$Po��aȤ������@4�3F�0F|K�1s4AsA���H4/)�\�E�%�B}��cĹ�����
y��4O�ő���Zl6�������IQ"��r��c|Ւh�	���%PL6��;I�9!�
��%�6y��d�y�H;c�E�B�N�sw�W1�3C�I�p�oz^�tf&��Ȗ�
0��	�'�p5"���ϔ�M���bĈ+�̹)�i�;�M��~����6N��)yӜ#$���7������+����a���	(���gL&^o2�ypW%���0}��O��f�+љ$�Ȟ;`�P	��G\Nk�F�h\.���qp:u6�hġy�Pm��
J���*TY�V���qz6JU*����pg:�!�Ǥ���L�&���rʥ2�>�q�j�No6�y����u�4vg(�t����N')&]�tjJC!�S�F4�!�H!C3�Ą'$O={�b���j6i���A�9C�N��@������<Rb�l\��8M�*�A�R�2H�Y@ZA��-V=o��V��������C�n�3���,�v�0��56h
���@F�QX���uj�΢�r�*{v��*�=��
�&�G��[|�����-J���̥Vg��n\=ؐ]�m��#-�� �CA�0��
D���\ dz����RӨyx&�����Y�rHa��!�Cx]�9<��!��
)�Q��q-�*A��V�eЩ���s�B@�D�'��K�@Tм"���Bj��J����|]�jN��1|ʔ�JW]��N8�v����.˫����Td����@vqMMAn0n�=�9���nz݋I<�`��v͛���w����V,]��)��}nKu��:�&~�&Z[�ωV�S�c{��V��\�<	=����
��z��h�$¾l�J�4�y�ڪ��@]��!�j��cf�I�	�۱ᚢ |��t��9q�'+�,m.C�]�m+,A�m��3�Ҷ�R�{|$举��AL��1��xs�é	�Q�oxg��A
�FQ|4d2��Z�3���7O@<��q��BF_��x��E�	`P3� �C&��	\���E�����txa4s=&����L��g���TH�^!��B�y��s�'� Ẹ���B�IO��6H8pb�t
�(AD'���h!�Lv�<&Ap;0A�+Q��D�o��@�(��IyD:�h]�9����
��"!�Nl�|X��t��j���Q#��'�cD.������L���&o�n�6]�uɼѭp�B簄,ٲu�#�R�i�xk!���=7�Ⱦ+��Eք�=~�:�r`6�f��YK��>q�z�|jP���8uMn�˦{��n�2�z$aF/�K�17~��;��D�1c��A����2�=��|�ɪ��x��\T�>�m�:��V�����b̗����o�}Y��n��[�7��}_Yj/��c
�������7N\��v�u؆-5\�ƭ�I�~�ĩ�/��,H]>|xq"�v��JϠ��
|�.(D߼��*+��੧R�\���N�?��h�p��;�$�O�UU��Ӂz�Y��������&�7uj^�c`+)��4�������U��3ұ�sX&�:��t�q�{,8�q�d>�I�M�L]��Z��
�E�M��1�V���C9eV�H꙾r�J	XE�E
�֣o_��r�Uxv��|0�'�5�#G�T�O�|x\��.��P������ި�D�K�8�ć���GK��g�d,�Xo�3.A	�5 $@���k3�7_� ��c%ByN�;I�p�M����h��Z��UT�M6��;�$��=��=<�RI��R�5�c��X6IQ��!3�;*��j����
n^��JC��C���Y���z�A�H����El��E�z@.�Y!��ᩡl�I����%�����Y�@Գ2��+���^�����D*��ԿV"���h��2-0�e򽻴2.��tKUr�]�����U��т�@�@]��������b��ҿk�5���ԥ���-�:�TB�����
�nz��҈܄�
�n"������(E�.VX��䫋\I^X�+�PM2q��2$��E��)�2����(O\"�DO}Q���
���:Z��B�"g�[?�kDQ3[]����Ь�,e�R��*��7�jw킗��Ƥ�w��FF�P^A}AA=�pQdrע�ļ�ڲ��3�3<�KZ5(�p���iE�UeR�<�Y�PSy�Emֺ���فl�[�ոD:�F�]��\�%��t��e��=���겒����nEix�ܹ}���v�de"<���j��y��Ԙ'�VB	� +�ͤ��~p���c��2�D`J[����f����^��D�^b������zw'�V[1:k6������Q8�4�W��9ii{�t�s1p΁��WKZ���9�Z��ْZ�]v�>)�w��gys&�p߷W���7�z��0	��D{�s�a�tD�����]3jA��%<A:�'���b��*CS?�s�2��"�7�;��U��Q����_|��fڂ(J�Z��7<�S�^枮���l�_Ε �C�w�0��D��_�	�f�
�ė���q����.�40�:z�89zA�ы��.с� p�&M[Ԇ�4M ��@A�����0��e2e;q��e�e#駄��()	ܭ�e�'h:]9D��.��PNު��R��O:(̺�KW�����׽#gw�j�k7
��'�7^#����~MG]i����ׁVf���P�m�-~r�r�8���5-��rx5��*���l�Y�l�g��֯^@��=q�Mx�$eq��R��d�$p���r�~c���Ӫ�O��
K��\3L�sS
lɾɷ?��o[�^�
 c��R�d�Y��q�Eh?z?�	��M�-P>���������SVW-80�{��Wt�N�B�D���[�����|�D�`��-��
�BU��0�?1�D�ɠ�X�T�Fv�K�R�8�������|dO�2i�M�A�<�xaC<��2FI��ϑ�(����
�^?K�&p�\1m�G��^����^	u�4�98�r�l�P�DŽ�Bڜ�'�����Ȑ ��N����^;��L��h�]�D5#�47�2uպ�'�u}O�����/k�[Z�5�Vk��ֺ�Ys$Ԥ��q���L8�>9
6��ز�4�O�Iw��������I~�y��~4=�:"`h��0*� �6���4`��F��)b�r���#��!�f��"G#jS1�s2�_F8���t�r}������]Fs���u9��b�W�������&S���e!��n�%~����g�!��a�����?F�D��[�&����N��תM8�!�
!P�+�:lb�mV������̯�ֶ�s�Y���[�cD󂼊%t��H�@`������u*	za-�N2T_⾗���+��Z�R���>�Y-�{���=MA�<�ɭ���;�����S�;xށ��>\�23��[�'��4�'��͝y6�d��F�[Ha��,��rTH�*��OQW/J��UZ�<�֋�p�uB�L!�LH����Q�X��P���u�%!�]��D��kա�m["��)���\0$��R.w��`б�s�Z"e�bEVŸ�]�ӭ��(���8�&t���{�+s�^7{lyEN����K�5c�5�*���.J���`s�����Z�ϙmW�'|�������/w��;.��Ѯ�����x�`�m����i3._�#�����,�9�bn�Vw�~�6�(���b#0֟��d�D�0T�پ�0)�H�-^�L��*K��l�D?t�0̹�Ep�|��e,��u��O
�=���k�v�g8b#+�6��B��'G�|b�Lzp�ӓ�ʜ%���?����ϔ�O�����3�<?'����R@�F��;
K�9m�8�T�ȶ��M�bHq�S3��'_b�,l�ಹ��_a�R>��1d�~r������Q�|ϻ~���!*L�G�Z<�C-�%<
2ɴ�x��X�n��W��<{�;dmKQ�U�&!h9W!s�Dߣ7��#�w_@�'��|�Ļ����_�������o����P����F����>�K��*��5D"ђ��b2x8��@������
Yx
�">�!���~�S�&�����J��Z4O���>ˑ�!��ټ��;�֗�� eM�kd�#�+���M�O��#@
*�)���T���=/���9�N��W
�� 	����1ń��A�)����_���$7��"���>s�Z�̔����JS���rm��X�ē��`����;o�]5'�\��G] O�3`T�D����.ķҕ�'13��0#�n�CX��o���a�.&�
��aH%
�&
� )���!i�-{�`D6��P	�f�ӌ���xI��;RRw%cÆŒ�N�^^n[^Y��
��օ+p��[�����0-�XE=J0#�,��!�1@Q����8T���� <��OF��z$����ܗC��5��{<��=d��L�.Bl���9`iĿI��}���?��ӟ%��q���9��?���6Enj�#���z��Lx�C߀;���w��>���#~!�?؄~<!v���C���q�_&`��f}󆂭t~5��d&{ZpNM�Wd]��i�V\WB�Q��F��ID�$��#N�$���5L����]q�PXT�M�jV�DI�h��>�d�]�2t��x�9>��>]��rհ"�0|�f�ڜ�
��;
�۬�n��-{�w*EXP*sǎ�pj9�V�8��j�h�J��G�;�H[K�·���%�';VW9���h��J
���w�TO��oϢ��1�����Ҿ�vi�r�e/g���}}?�\cS[ڲڧ��ѭ�5���^s�Z��1��8x��<�w�L��+����J(?
9ul��^O�r�N�p|b�Z[��z���>3��N�]�3�L�5i�'O�݅���$����#럍�8��\�|�Տ,t�����'
z�������"`�Հ�4,�{K}��;?}͍��^g��e5r[<4�����L�Lu���B�	�Н/�8�ԭ�kG�V�$��ʗ�͒<��p�X֢c\�?SP{��z����mZ��hH���Z�x��*�Rkj�JZ��;o�R%U�YOV�V�*_�_?M��̺�v�vqR��c =8���0���j�Y�3��}B�-�Ӎ��a{��- ���VTD�8h�{�}�
e���9�$!��[N��;��#�g�V�[�eɲ$W�Ȓl�e٘bl��f�馛N���$@BO�@�R)��0�KB
�A�8�4�\��Kli���J�l��}����������̛7o�<Pف��*aOiaZ6�$H4x��ڱ��U���Q\�֭���NEr/��ރ�IKIz'�bA�h��m��X��*
ĺOH��FK�$���*��B���S���[�:�7m���4m��[�s���,.���_㸯;�K�*+}p���Lv%}���-��i45c-B{
����
wÏv_�
_���u|i$���L����u��q�(��?�����q5��D5Ss���r�
�@�A�Q�QG�����ԓ����k�i�]�!�Ll�.�?��1���t�8J�mv?�	�:�����b��k
h�"�MN�'���@@g~΋V8&#c�x�F�2i��&�9�� ��n
�{�I�O�^ø����:�W�NL~1e֟e���{R��h�5p��lJgO듙s���[ �}6�dւmj�ܥ�wo��/�#n������X@�W��BM?W�Fg�oչ�
i���T��+�0Hi�H��E�dW�{���GX ~̺d}�{���Y������gft��u��a��K����(�ǖ��=�<�vG�5���>�D�NO�Ŧt�^��'��`���H�T.M�ҀF���-'�
�=I$��ݨP�Wش�Y0V3V"�ར�����4h=sF�1\�U�	��l�?|�U��'EX^*��Փb�h�V�
|�(��S1�6�mZ�y|�^�v��'�`K�€�,,,�/�_>�_G�_��?���)e�gΌ������1�(�;��	�xϯ��Mϯ��}���Bh�*�����
���!��(�0�zO�ެG��vJJ<{cyK1�qA|��^t��@K9�#����72����e����|�:�?\}c��`�G�0%S	��в��O?���\0�=C}%7�6�
O�uL:{g���p�1`]��L��K��X��c���r��,��w�'c�AL�� �����/?d�$��{mX����3x���9O�C��&~���Ϝ�bϞ/N�	�����W
�{�C�{�m߾�7[5�Ƽs��O�?�ӧ�,\������x�]�!.�g��R�ښY�:*�d���oarrs�3[�{VE�y����>����v�[���ˡo��XM@Z!��
�+V�x���V�4Fx��an�wud<�����,�>8d��7�[���1���j�:pBZ�����<��p	�"�}��C�}���7���~��?��*�LamI�FP$��~��S���jˣ
)UJ�S�T_��塈2���#�<��MͧQ˨��BoDz;��{���1�"X��$G�݀��L=���.������	��[��q���Xi�����ԧ"���o4y^��ȵ�������>�~f�3��B5S��~VrnV
�����n��#��~0,���/�x��聞�?^ԙ�3�e�/�]����wuow�$3��gbj�����4�ר7�!�*�Fyj�gQ�;����9�?�2�~~�hў�������tO:�)��t�=�'݃���=�=��Cu�Y4$�[����:���,	t�BoE�Ԙ����LoHMe@��-5��,B�o;�{���q^̍,f4&��v�p��h�Ȼv)��"<��
�'�*�|�0Nز�0[�JnEE.W����
:��LD�.��D��8�ߵ?O���DP�I1����We�s��烏�8�ba���v���zig��������k6~���[~��΍�����q�D��>M���f��U��^OM8�R����u���6.x~���j��T�A��k����Mg�z�և�:j崉a�U�����3�iP�R��t��LU�xY���`�(��@|R��*���EDzgcg�@�
��'uA`�2+���,vЋ�ć/	D�t�U�wm���Kb��I"��et�'��&�d���{��b���D�r�RINf��$U`�>��[�2ThӌN�Յk��-��z�*�FO<����(��:s��X��v7b2u����Tt�\k�.��7�ǻt(���?���GC�߱7N9�5C�t����%��igC��̉g�S`/�@χ�U0>��`;lc�(��������|0��v0���:Җi#!5�a��
�*:���0,����O <R�|M���YJ���)llj*������S��nE�뇀`�O��Do�k��ͨC�b
��+��z%089�fx���1Æi��a�P��p�_�?�=/!U���z2,l�OZ��t�9���@`������~��m�nC�N�NPf.���l/�I���M���l��LX��\ܗKj)E�u�%u*bN �c� 7��kg1( �;�p{1��-�g1�@�\����2t��	7D�	P4-�oo�'�)%z�2���9�L�5)2<:�B&�)�:O�¤������T�]�E�ݶK����~�M�[�uN�9�\[F_���)6T��V��p�H��tK�u4�ӬV��<k��z^βɎ���tG2��y=���<�H"Go������1o��J($�g��fwd;�Ag��`viI��!����;�oE��q�-��EIc�
�(!"PG����in�Mv/���^;��1�b�Mx�	q���"���3��&�8*�^���|��ҿi�3�շS^W���Yb�iJn*M-��ű���]�o�.e��_����k=e�o:�Z���
��…����2w�����/�����/ץ���y�ԥ��yV��2s����:Q�b���9?͖�VtX�JOq{̿���;τv���yhOÈ�l�,oe�'t�ALAV��qҩ��1��ʳ?��Ϯ�Z���9����eM��*�L^w�©u���,m*3�ql�����U0�2�'�z�>��6_W����ʧU�;�(+��4%ɤfei�^o�H���$S���;�C�!;��竭�>��N�5)D{ʎ!�K�}� �rљ��y�V��Ќ�w�1�H�d�����e�;����N
\��D�FC�hW��vπw�;ty���9rӹ�p��\;�>#�~��`�)��a��h��Z�b��iz�Y�jq�;~���\l��ЛS����+�rjB���k���oPl���
�)^��NA]'ޮ�h�}��f�"�c����.�!��ok岭�o<���PB��{?L�'�Eԗ�
�D��	�=���]*�.�g�����J�Ŷ��}Bo�t��&�&��
e��\��E^׭{��/�NK޽��DX9#^4x�C_
jK"���w���C��j�M{��.��(,����ր���+M�sQD�Q��c�T�P^/4�y5���@^+/��'w��4}
����Zsũ���"�`W%��
�y��GIpC���0��:E?kݺY��Ɏ+	U"���5U�@��Sx�W�����.�0p���Ka����X}����:���]z����I��nN�6����C�̦�߾uQ'�|䘔U��V�є���N���=�?��v7�	9l�&m�O�N�b��{#p���G^]<Mb�H�d�|r!��q��؍1�����a+�n�a�|)�S��Z6�>/��	�SJV������N\�*��T-�@vf���V��O��!h�4Rh�t��LaH\d�,�Ӏ"F�'aKDP��o�(�z�
p�=��c��wd7b]Z�8p`�"2����X��:�"�ŋ��׃�'��H�����-2����s֯�{�/�Ǿh{�ThrĐ��!CT0b����/��b�
����	Ԝ[�9�>�(^��0a�tv�av؀ńQ1�So4�V�x��E
�Nl�n=��˜z�x�ϒ��Œ;�ؼ��Ѥ�$���.	)����_$��1(�}�5$ӊE��P۔��&�~F̩��8���ޫ�`(1���E(ѻ��&�G"�T��¹|���b,i��(��(��1��8��W����0w#BS��GX��K�{_g�S�.�ф6��g?{i�֛��뷛��⥶�v=�vlTRa���dځӖ�Ȕ
��\v��힁���U�U7V͋ ����*5}�$2��uC0w�҇A�å�ήC�v��E���L�SY��>{�4&��<zq�D�ADh������B����>�~�MjF	%ۇt�_��O\�'�,}�%�l)��h�z�%ۺZ���y�I�F��]݂�Շ_�'��7~�U�)�<2N(�;h-��P�q�]�aV%�?y�y�N���M��	��َ��y[�{[�h�1r�#�}B+:>̮�ׅ���N �"
��	ܖ���7A�q0������t�#I�$O*}~�����T��w���D�E�	7^� ���ٝ�#D�(�%�M�*�6X>$�@p^ ���
��")	zA��G���%b�>�>�T�^}��;�
�O��ǘQ��;c-/
^��#7w�Vt	s&��G'*�-#�צ�����Q%��^M'p�c��"��-�W��+*m9z�LԎ�p�������힒�{ɑ]�}}��(�b��0}��;ax]����t�[)��Q��@��]�g�Д����vÉ7g�㮆�'fToJ�fȬ��"�R���ۚ�˫DŽ*
S?u�=95�j�U�!9F�9��j.��4�p|�P�{wΔ���"Nz(m�W`���yخ����`Ű���Kf�?~F��m(ȑX�0���s�r���6��D#�P2	�='����H���BL"�-0j�0d�NG����̏r�F=/�t��u�?�"J�u*���/�^]2Q.U�����ԩ�\��|�O�Y�w�/^���p�9�ߡ�%�Ԟ��v��%���(�-��FʋkB��e�Nk�=vuP37g���,��	�}��Q�įKL����Z��>��:M���N�⏆���/�"[I}II}{R…�w�u
�R�_����Kn��x�RFmX`HS]��}G�ŝ�-g(�K�qA��M�"�����qpn��8o|�5R�g����1:?M
�N���
<�/@����U=��x���oZ�N?䞧���m�Yq���o~Z�7�Z\�Cѝ���-�:�O����4��u����y��	��=Q��W\A�F[%2|���	�BbE�6RM�|u������B)�~]�T� ��u:�L�*|<��YR-fgg}����L�b�u�}�aLW�W�ЈR<v�3A/VK�	�"�������g�Ԥ���7�vDȉ��o�n��GC�#��&����}��?G�p�.�cF���x
v�n�Kp_w�}^������
�8
D�������P�X�@j�%C���H+�O�5�����8}ރ���,�ψ�!��Bp�����=��z����x�Zm�h3����@|ُĉ���7F��^��Qef���^XDŽ7���J|6��ީo.��9�4����O�˲|!�,
E�(�4
a+�[Kp�
^�Ŋ&^�j�Dth)�b!�72A��yc!��$��y��� D�#��4j�oH��Vp�	����ٖ�O'Go���Z�P��T��1;�!�*�7����
��9�t��/��W���ȩ��
Ze���n�ꪞ��vMOL�v��:{\�~K�����n���jj"�)���|o����x\W���a�4�I3rXڍ=1�]�	�f"!
V@��7����cۙ�.��⃴#❍B���8����xq;�[�/6��P���.���]�ĞC�>��1a�%O0�<�;�,�A[w��*�
X�'����!(�=��i��}��&?��#�^$	^�2)�m4��sD��E|g�P�b�2�Dq>�����n.*�?�W̸x��(Ļ8�s�D���SD<\��"�5�3PsA90�7�@�R���F�q1x�od�YХ&���]�b�nʁ�db��zy�a(r�j�~���}@��8��
��	>���>4��J�.]���R��RŨ�2��*F
A�6�r���]��eH}KK۔��J��ҡ�ObƆ�������L�
G�hN'%+Sx�̒jU�,�V/�}�2�D5�NwY8�G���,�Je���A�h*c�幔‚�����wޡ�.���0��{D�x��Sf�Ѣ��2�w�$�F�-�:W�Y\���D,o�Iy�ך��nN�I��	�,i��)�m�#Y�Ǫ��j�U�-3���Y$v�%%3�Z��p��V򒲗.#�cNf.�5��d�$��C}���,�KSצIX�$fX�͊D��M�^uV�J�0R���s0=t�@k�T�o��RZ$��b�X��*e�V�E�W��ϕ�5��T0��T��nk��ޑ
��7&�$2�iy�ThF7�����u�bqe�y�#l�R�*[)I����M��k\���a�#��u[�N^��3Vq�אnL��(v�\���f�T�GQ�I7p��=3?��קw�(sn�Y�IS��M�g''g��aFm�L*1��J�J�2U,��O����}}���]�&k9-��D�����i-%�}jS*0������XX���W��b%��c��R�LR)��$M�����NK�,N����c�إ�Udf��I��$�D�Ģ�*$R�� f�LM�Mu�LձK�7�)lJeh�Z%�V1՛
�ڒS��.u��4e��l�J=�RS�j>��r�l��ڮ��b���4����%ǎ-Y]�#�,E�J����؈�]?��S�gz-K���=��:�b�����+4�A|h��FCR�(��"���F'ch�)���=
Ejj�����R��7�﫧��W*J�o��J����L2�lX����B��a��a��r��:���Z�cůM��?�'�-�V���<C	�^%�y/�ϻ����v�YYL�� �A���iˤI[��&mij�S:{��=ܠ���?�3)���?gՠ��N���%r�|^���E�����$��$����Zo�I�IM���C�ͩ<4ƻx���ij�V[��{
���r�T�Zj��Bu�T���4�+��v4�{Y�X�;�	X����ڸͳ� ��	 ׈�_�l��X�l|��ن
��b��q(:�f��j�M�+g�:R�?�1T�l��J@�׿����+�&�9��s�>��x��n����]m�P��Q�Y��5eS��0� ��Ư_?^�:w.rMP	ToܞL"�ʛ_��b^��GS�7e�ZUd����<Z�i�׈<Ol�k}���VM�PŇ�&�jY
��V�����j��dI|���Q���2��=�`H7��E���R�("*E��z!�Խ���Q-m�*�8���Н�1�QK�OJ"��R0���,�cW"�a!(�赺��L����nb���ޖ�N&�N�3:�\��)��h��Vw&�@ѵ�6���i���l
��,��>
l�X�������>�ͧAGM1	������0�B�ǖ�c(B�0lEguKP��pl
G��»v��h[!A�9�v
qo9����b\����#�}v�@�0�4>���
B4ZQ)�?ݘ�:>�u��X� vn�(��z�HE�~���Jń�s�(�7Pz�Xx��@�?n;����E)҃�4�E�J��ACuJ�yc>,Fu�U��i���Z:^�����{��P?��cY�ոOB�k����3Xt�5�P��T�Er�ׁn�*~)pD�����M�0��;bMA�폨p�[인�ւ��	4��]�Lv�ky��4a.�YB\��UE/5lbK2#M%P��J����vW�θ��n�p�����k����'`�@��ɴ�`iʌP�W��8Ġl�%�t�	%ʌ�SQ~V����pj*���$�w��^#G���1i��6��}��"vw�"��b��<nc?��ͦN��i&�t�~�ؤ���֭��:f~Y�g�m�-Y�`�ΔisV��3mJA�Ų�ɹ���_3��YUj�B�$,8�;DQq�����ܓE�,X�6P�+��բR`_P̋'�4Y�{[�*�e�7-n���w��r���'PŠuw
��?�u��:0S*�{����?E<�y��N�!7�Pղ��A�&��1�6l�'o�5�=���C��oJ�2�����x
^~�	���[���Acb-��~6��?���������u������!X��燚�������G�cD�q��n��-���&�h��ˀ�Hp�����:EG+�n�!�.<����zMh���9�l��b�젮�@�ȑ��p,.��U�i7�e�Q��j.��`)Ƒ�t�;��h��yAP��IظLK�q!���"���zF�Z�c
J�g��4�����F7eV(���`1L^5��B�+�������ڽa�]�-���j�l�ԅ�:�[Ų!�}!b�(����8z)	���_J�|�}dR��*��jq�l�Ͻ���KϽ�Mv��Dg5�Z5��q��.\jm�Ek6��md|v4�MVlq�dvԵ���_<r��&��M�ל`Oy���E�~�vҙL:|�Ư�0��g͂�aG:v��p	(M�S�<�ӆ
?=�&��g���<2��j��z��N�n�߿�V[��0?H�l���nۂ��&U��>�zrMZښ�]�].����?+;�z�����#��#J���z�����~:��vv��ۻ������$���3�1�~e�����ݹ�+t��J�G;�I	���mW�y�ؤ�q�k�*�dƜ^VX_<:7''wtq}aY��a#����TH��3:��#C�y�V��Z�Wj��U֕�?��;A�Y|�.d�7�R]���&�ODh<*z@��	i݉Aw�N�A�%L
@�v�I0�c���*�T����.3����9R[�VJЩ���,��՜�b��M1W�R
�߫�>EƉ�N,�`õ��>U8�z����/{��2�3Y��h�확b��^�āpQ����{�/�RX��_߲d8Ȭ��6e;���зk��	}�B
r�fq� � �Hˠf�ŬD	�ζ��%�,�Ĭ��m
?sx\��j\�W�W�UqC�S�~����m�lY��3M�>�q����s3`ػo���SL�4.\剶�jl��u�[��I��77쵥������������S4�m3�23��ȧ�ꑳ�����lg��@��͢��؏1��W��%`T�;�����ω�
�ExC�t�#�8*g��3�0Gx{�!w>滢x�i$�pl�ɣ�`
;f��7kA��fy���h�3>>��G�U�4V��O-����H�M֌o�K����<'���)m��?����%�{[2p������;��>κ��K���>�e}��}����ڸ�0�D���2`�TIH�nP(�A!6�Ƣ��2�h��k}�U�3��Y��ެș�t#d}s�|����'��s�|�\�P_��ξGփ�$��į8;���Bh�Q�",Ƙ��{5�k'Z�Uָߚ8��~�)��A�^�R�-��-�.fG��W�ԋZ�G�E*�.F��zӘP��������.$-J�}�&��\�V��T�Tnv�������?a�/'�n��-{4�yʐ����`ʡ5���e�9<�4��e�U斕d�T���	U6��?��AX&�튨Řf�5?M��A����6�eb�$�d�`�t��%Q��p3�`��s�b3�N����n�MSp��U�5�G
[�6C�n���q��Ҁ� �0y��"�U�(t�K\�SR�*1�S$AW~��g�S��v���t�QR[������
��%������Z��ԛg��X�o���3c(|�:c�(����s�V�l��`�n����Hz���*_��~�uz�<J9L�,���,3X�ӧ����X �
�,����t�RYP�����%$S׭)]��d��K���nB�d&�n&|���)�ò�{���
����K*�/���~4Y���k�N�_��J�u�q��h�@����kߟm���84@
����"�b-M�/g�.�,��@hL`H���.	�}��k�o�py�\�#4T �3�qЎY��cvh�/a_�I��N��O+�U�i��
S�V1���O�!�D�t%C��ԯP4`��@|��&��8CP_�º�OV*��^��w�v������Y����7�~�E�U������zD���4:
f�b��ʃ��HB��k�s*�DT�6tFY��e-�}e#t�5�}CŹ�Ο��z�B��Zs�����	���#��C��8�3k�؁�0!�\M �z�`E!hЛ=U����~��VФ�U�Ƥ�Ҿ�=Wi���0�t�ն�ş��4���<}�K񬗱���ā�a)*��[k�9��'�n�JG'�������Pٔ�	�0�u
��V�Y��T�J&Y�c���D��$�ϫb�r��<��oVH%��.��T�(�O$��
-ӶD��\ �jK�Z�4R��I5r����cѧ��Tɜ�kt�kI)�CB�u������P�T�`���8�M����.o� �0��$T�	�0a����W>P5���X"�ݫ�~P��]���#jDy���%K�j��$��-v!��F�~3�2ܪQ�5`.|�ap���>nw���/y��#?X�##J�w�5��(
�����Nx�4슩q�V��^�����=~�R�'Ҫe,�ҧX����M�}�j�J-�)T�:�א��w�3r�T�'�����x�}scF�y��7k�
�V0�\���S�M�(�2@��u�:-YzǮS8���W���[4;0���q��Ʒr6�SBIX��qL���t&t�&��#M�
�����G�#�&t
ڠ�4�7�0݆���I���p�X2���M Lu��w��Do2�`
�%\��7߳��g�
^mlm�W�)s�X��7a�o`B���f�b�nQ��1J�)�?F�T�7ѣ���;��C6���XV}EBq��:��ٗ�zh��W���*S/�'��W
I��~F,��앀��Ud�
�A:�ɫ�+�z:�b��4'�Ŵ���؉�szk��ܮ�.08q/8���k�Y��H���E��>��Qv��ŋ����g�O�~aժ��b��x.��쨽���'��T�Y�&7(�w^;�����[�Ս��$�\0w/��6p'�"�>@�'�w.XHZɋ��(���j����X�yc\X��{'Dy�>z-�z�x�y�>xm˔���ۜS��^��O]Ђ���{��E�&`��`�w)�+��ySL��>c���u�a=$+�h)V,��7�R�H�֯a=�U���<��35@f���F��9N��i@6�݅�L�D�Q�s��-�cr�졂z	���
��W^׏�~���чS�2���5�$��Z}�݊#q~��d{VF^�ުԚY��l�&'��Jk~O�� �V���{��W��|šG&�$��d�]���8��/�v�Dj��&���7��x��Ҥ�U떦���ʐ3���{W��(1�O-����T��}2�����k@N�H�:e �i|�}�,N���j��$}^�\�����X��,_+V�r{-���s�v�7d/�zk�ux�C4�9�9/���%���V���<��S���[ƅ����ٷ��_��:<�}3�^;[��l�z��A�)���d���}���-��U�������}�����sQ������H���:�z��3
\D��_�+B��3F�	xh�&��>����ϕ����4�]����j3�=/�#���T�Q��c�ϱͫH��Bw��_��Ee�^f�[�џ�3���76N3�w���\�"�R���1��v�/}}�"�O{<��Z���@!�g�(��E��=
5�uW� ���n��&�iK�$j!�jw%P<��T�<�N=���Q��Z�UA�nŀ82�+�^Ra>?�1	�E>��9�|�.�mV�
�
40
����l�<kO6�ҋP�$K6m�����
�&�w63�dV�k�'�Ո!���o=�t
4H���Je\�r.mOa�z���
*Z�ҩ�W���[.s�ߟV"����k>���K�҇k�|2A?���g��`�f.�}�W<wպ���+�����~�8�U)��-�l}P�ժ����*R3���7�9~�>�F�\���[XQ:�J1�D��~�NN�*(|C^�&�@���G���j��1:�;kN�\�	0�ƅf�Ө��p?���$��0����o�G�G�߽�0���Cは/�������z�����F�4X�~�d�IE���[��.����9љw�I���`� 샧�'�a��b��$~�+�/�m��`��.-�� Q�b��'͛�"+6�XJ̓n+�fA0�����H+�l�_��sʴ��!�-Td�ؿ�O����dɜiL�j�����N�q��J��ɘe���O�;;%G�'o����;"),=�K��
�][��� g<�F�h�.��~�[�?�
u��}r�����f�2h^�3���s�j��ƾ���5��q0f� 8���u�Ĕ�,'���5�D�k��)@?\��a��^�=M��Z_1�&����c���M�Ͳ�k���׏��>��|���M�o<�<
���4/�c遷�<�l�ٛ��,�v�߾={{��5���Y�{~�'��=	,�\k����^&�'0�tX���Dl}�F��G*��QT?���.�ZۂK�
�u-Z���Rhu���0��!$7@d~X��ɢŎ���xx��+x����4����V^�Vu��P��i�f
���w�z��9i�{V<��ї�Kw�#=��`������~ёޏ��_���ф3,1&W->�xj��~����ܱj�a>�t�x�k���la^�3�qn��i�i�З�1M��Ɏ�H�͌�و������
KQ�j�1$a�g2g#��K|�!�y�eD��Q�Lx�X��{i�4�{{V�����N��l�	��Ѩr��|�_I�G�$iu,�N�?TW�߂bt*x�����A��u���t�A�Տ�7���Ѐ�\84�d��ه&��I~�Xsu��l����0eZ�~�rsUJ�kG����
)�2S~�m��Vy��n#�~�c�hV��A+�c%�YY�� Z!���W1������t���A�1y51�+A�E��8��ICo.��V�3��['��1�;��S�v2Q��:p�ؽ{�/f��b/�����vܽ1<I$U�
�PUa�hTRI����ԴV\U��j"��RkMoy���Ӈ�
9* ).�:{f��=�Ͽ���oQ��j�%k�1���y���T�}�[g���h��n4�4�\�5rd���]qۇ�C�<i�̬�𳦅�l\��E�O����C&Z�*ZZv�i�-��w�����*1��t)����S�*%/��R�j��J�5e��y3�֏W��l�S4j˔j0���4�ܮ��ղ"��aDwϘ֯��F8�Oͦ�&��}�6_:-�HŜIE?�2̓���u�q�Cg���b�Za��f�J�j�4T��L�
J�c���X����h:p�{�[`���:�N�6�84�����J&�n�F�ٗ�,-P2d��_
'1@�2�'��r�dD*�Q�����e?<slj��I\��x
�+��ӽ�Đ��vs�.��b	'���YE�UpC�ӥT�)s�N'S��mٱ�9X�x��mS��D��Ž���1�ON������hS����Ve�湕�E�T�:0�Oap��Y���§Ff~��]8,K)���7��BTpK��/��Ue�dm�Az���kT��`��c�o_�e��k*m>��l��^:����f���������y%����6?a2Gy������8�r�mng�ô��0.�ׂ~�X�nj����cpD1�N70%��p{����UWܥ�҄�oS�(آ�	�v-6=�C=s"�n�"^�D�͐8'��ݿ��
�ڊE�BTPAE��U!�DwU�I�O�e��p$�F���Zo��|놪��'܈s!}��q�"T��P��d����(le��+�����
V���W^�Dl�Y��s��:�a����h�I�`�X��k�����Uq&HI�R�&�
����5�R	�	
�r#�F����<oj��25�O	�	�jv�IS��2_'z�"�e�l�+]f(�:�xt䊬��!^G��@��<~�$;%�"#?xmC��}��\x6�4�+��֢}����+��B�6��ԡ{�v�d�d�N�?&s����T����ca��x���i����R�vKf;�7�C�U*�i��U�व�fZ���4j[���o�`@H��2�,W����i�Pr���U���)����L	{�<��\\c�@���sN�D�:�_Z��h8))zo�^�R�A�4����f[G�h�ml[���Yoo�m�
J&��N��s��KŁ���/��e���(���i�lX�J��7x���$*��1�p<�p�iJ��@/F'�Ƴ�v��xD,�)�N!At!f�=��ΣCs�^p�gs��������߯��x�c��b{xT���N��S�@�`%	��I�S���O?©�7�q�^�.�3l�T�Uf�����>�-���M����>/?�}�D��Le��J�����{L��'����:�y��!��=l��g�w��K�sC�8��3�j�wV˩}.�����'v
c���U����Q)I�{W�-Ly�}0W�_훰���S%�����YIV١g�D�7�;���;Z�X�4vh��H��;��n}5���>J1�3��U!�P�3�xd��}�?1mډ��w����E��R`*�A �36��?M~h����Ix�Y=	2��8L��q,�6�h=΅��P�t����{k0f���7?��rF��R�����8`�vG<����ؔkTzgL+V����aL�wp
�#�
��&�ɼS,Y�~>�o~3b��!w�cE.�� k����,��)���O��>�������e �1z<���g�T%5"�<O0��;���J7�Քc� ���vZub�o���9�� 
|DIϧ���\,.�M^��<{vrZ�|���l��	GՀ���RE
h�+�hN���,#O���y��ߛ����~��l�}��������MMGm��@�S��a1\���q���r`}X$b�SRRe�ߎDK!F.��ӌ�ޥ�В�Bݧ��{�b/�Xϐl��b�01�v�.LQ-�c��dX����B��G��������AWZ�S����Xw^�y������Z�$)�퀜`c�Q��f��qوa�����1X�� �^j�e9r$Kf��d9�Lh�p�qը��`#�t��dO�Axm�~ >���<��aIŽRZ�P3C�y(�Q��0SrO��
yI#l�YeRivff�T*M��I$E���F�"}��
Z�2j�,}2x
k:ح����~�(����a��
�/P��{���7w3��߮��l�g������J�-8���h�|���W��yw��?���W�m���x��@�_�~�>���	�V*1���'�_�n��F�BQ���X
�!�I'��P��!q`3�Q���ltS���tb‚�����	���/��<�;ɖ��?��&%�yD,eOp8jb�>��
�@T����ᄊc�η歿Z��y�w~?��z���E���g�Z��sq	�s��n��ݴŖ'��2��;�����͹�����G�z�,>���#Q�Q��?_���bN��Ɇ���Ӎ��i���v��njj��~���w`�GS�^`�=�O3c��M#�!�ȧt�xۄ��~����.k:��D!�,茮�?�:�A���t�$6p9�*�> bi(�[�nϠ�A#�鰺I��h*~��[��Dqt珓�j`���my.� ��7���e5/����6u�_T
BXa
��?��-t:������U��fr�4R�J��J��o��E-���-j��#髳,��*v����>�&�$Q?㰗.;Q��<a�U (�b���t%�ա��G1*l�%�:�ӣ֤��l�&ĩ���d��,�cqku&Kn^��xg#V�i��؜��k1�n�'��6�09�+�l����|4j��cS��]�V��j�e��A[��)��V٤O���Y�Қ��s�]�7gxzM�/�]���K���ҿT�af8g���zYw��b;�I����6@^�ԲzHI4Z����!�D�ћo��l��}!
0��'��\F�ō��2j5�� v��MxK�UM�ܻ�-~���C�g&�
<~L�vU��3
�� �[���|V�\�f��V|�r��9��ܐ�v&��q��o����G<�7���kZ��}�)+Ig�k���ʋ+���ɔeҙ�9s�
�9���h��O�0�Rk�+�_��6�`S(�X������:��G�i|�K��o�_���v�����fs0Ca��&����������<�7(�
ه���H2��*�2b6��4����OR֍��}q��rdK,��WS+c���+��Y���W��:������Ē7lVCn��d���\�O��0�ƢZ|׌�����Z����1.k�?WC�t���E�jt:��dK]իG��>�� ]'��׬=f͚S�'�
��3rx�W�˯�f8�{���)VLo0�床��|`��;&ޱ~Riqì�^OMN�T�u�G��:���I.A���R(��_�M����o�=p��Nt�M�j�7���#�~��s��&#�K(�=<kw�r��M�X�wZ�S� P{����D_i����5��ݦ��v��K�~�eh�*9p=��Į�Χw+zB���=�Ԓ�\��s���V7�ӣ}�i�m5�Uk����	z�G9�r�k�A3�W��'Z܂|�Ȉ�C�'<�FB�o3�>q0:]�p�N�8D�G^>��HY4���׻�]�F�#��
÷,F��h�L��u�O�'zܴ��%���*����cvv�d E��lg���:�1h�r3�5kg��Fa�t�u~��ˆ�����m�>џ�z�9q�L�I)U��<�g�x�
_�ifm����љ�`��.���l��8�s��dg����鶍yX�Wx�6ݴ
�e}�ư_("�/�[0:�ӻ��އ��6:���l�6%��P�,4���
P8�u�,:��N/6�Ƿ�7���.A�ߎ��gd
6{�r0x���؋LF"\b�6(����%D��"`�F��v�p�g!b`	�_��J*eK83|q(�Ԧ�J���>W����R��!&)A��|r�*�2�H�8���%ݠ�Je[|MojP?�C[�8����ra�9�3{c��bqo�5&��0�
4���%�e��ٳw��<<�`��� [�S7�߇�?�����C��Ӟ�̶�{"��yP�����n����)�hAc���W�z���Z*����y�b.u��rܚ�[�%Xq��Ꮳ605����n���'N�y'ND����~^���%s�%��藂]ML��c��B��uJ�D�O��_D~��_�8��;U�\W��#'��s�o���MgC=P���9���NWǐ�u0-�ת׶�Nn�k9tz9M�F̍��(�"���QIS�?�E�@!&O�"��>H@!�����}Z%?
�����?�	��q�x�6r�D.�L0"��*r�8"���GO5E7�9���?Е)A�ֆ��u)�~Q}@l��� Lrz�\�'��I���,�\z�ӷy���M��ڞ�0�`�����V�+����έxFGO�_�C?ҭm��2h0���~����|l��C��l�q槇�L?���d�n��O�u���D��`�mp�t����GD������Vf�롷G3�H��	>F`��h㖋mp��M6�\.f/�ђ�E8��	:|12ؑ92�^
����ԍ5k F?��p�A��
��Иwd�<�	����w=6���J��@l�^�������}SCG�mr�������f��%[ϧg����i��\	�[�x����,�ރ
u��*�Ժ�0:
|W�l�rJ��i���6��}�w
�,�i2�ִ�i&׈��y|�[��I�0�������C�^ym�r򑯎�i���&�"H����m$��ۖOv���y�x��t)�^��F�(  
�buroQ ���i7��c#���R�s��M��a�v���)����)f�DjL�(s�b�&[��s��d�Tb1��s_7�牀��:�U������_��UX�/ϭXqX@	��Й[�F���AQJq��#?����)��ߺ|�V}+-H6���a�Gt��S�x�Yq~�ㅰ�Vjh��W#��r���#1�!���w�48Q{�n/��������i=(
�U�-�z�FnU5�˖g���R�qw`�c���4�����g�e���j+�6C��9e�in�33�Ѭ1[w���c�⭽�ҿ�ˏ^�.L�\�x��K��1m��s��\�rG���U5�^4�Z��!�Oѷz�h3Φ���w��ye��ƹ;�R=}�&��z���(��6�It���}	|����ZieݲNˇdK��ۊ�8�'�slj��	9I�!��R �j�p�%�p�%�H�Z�޶�(���h���ʎ�Ҿ�~ߗX;;�������<���<�4�kA`��6KTV2�^4���"��?K/�A��nyܵE!��JbG��*/����J�Z�X���?��3ҹO�;��OCBp�`����D8o�r[Lf����5��~���V;������>Qq�����J������D>�C\K7���]�A-�a�oy�@]
"
;�v�sHH��'����&����!�zX��X5���g�ԞNpCM�N���14�^4���x��F���~Fe2��1����)�^p?�#fJZRԙ���1]�����顕j3�R�%��i5��!���̐�?�����B{��WJ-�sv���a����{>�Zi�9O?��W�������'+�Ӽ�Q�J0]z�L�BVQ=>�J�}FS*)ƉFZ5�˨Vj�	�p4����]��!n
s��Ds4���3�Q:�pӞ#�
���'��N%;g_��=� �.�2I_Y-,V��H���>{L�Bg6��ep�;k��J���W��"u.#|
��]H�������(Pڰ��������F����t�oQ���,�V�XST�fA�ápuN�\[;o�����l��BME��hZ���ة>g�6	%�ؑY�$h�0g��gyX$�^�T���D�V��Å� �b��$R�rIh���;�,J�>`���i9�� P�*N����J���}�׌���.G��Be���i:㳙���CB0�1�Z[-O�L��|9���uG�̘1G�\~��;�]k�L�C�S�Y��bz�	ɪ�:���Q��R�����n��NH_�X�>�����҇B�B�)�,l}�U�1ƙ[	jV�]Ҥ]/��?�ϝ8i	��~%���I7モ���l�4U��b��5��˨5��Q7Sߣ�;{��ȅ0N��|�v4�-�]�����$����e�q�����2\Ni�%b�d�.�3�]��@�8m@�n�|7��\9+�إ2�9�e�9���?�G-���n@�@��R�H���T�lI[���RV
w=b�C�����A9MVꐗ#�bPƝ����&�b��f.A���@�c5I����ؚ�=����>,�/�eM|ဌ����b7dI~Ќ��Ӧ^���@�5p��|��n��`LZ�A�Ŧ���*�C���}d��.y��<5P��U=kR,��5D��«2+g�/
G�3�2�
�S�}r��.q���nƬ�(^��*p���ٍ���9=\�<����,�Q?"�|��p�)�+F�kr�x���o>.�����|4߅�A��d
)S:�ƦI|*���Έ� q�Gs�6;^O�~+r.�uD� �뻐�%WC���A�QTیu��ր�W�3��e�gչ+��H��D)����)0:&��p�L�N��t��~�N��m���yF�yOs�[
���`\k���y;�h_���e��0�@�.ӿx�9�?f`�/�Z^���}�W�BHR��o7z�`��@�Q�4��Άб�����L��w�l_7�^=t�=�SU���Z7HGq���g�E�G�J}9�R��c�jB<�T��M��B�>=)Ĝl
#=�v�~�����x�q�vwo������D��k(���k��.�	�@���@ºk!��}��!��HZ;wg_8�}V��ܯ�pt��>���׵>x4G�;r�>�p<8"���d4\:~F�B���/�P�Gb�fU�ޓ��J�i8�ۆݹ��uM�5|35��.a��xn�o��X�0f�1K�����4?��szRG|���{G�gjC��B��*���:����m�6H�}�W�u{ˁ�6���֒B��-�yC=�Jۼ�;&[8��ի���4�|r�q^��9������pH�/U�`mP<=�c�x�O����A����X^�kC��]M�I��h'����P?�Lq�A�C�`�S6ħR�_�h fA
��tL2�jX�BZ����`�͘�p��iDl��JA�Lx�f�ˮ����Ѻ�������ԘUА1����3�CO�9�Ka��|�{۾��T���z�%��E"˫T*��7C�xvi2V�d�9'�a=�z�ˣ�VI���x��F���:��x-�
�i
!p����;�m/�Y���p|x(��~���B%��W��~�FA)�1S�~�����?E4���=K�R���0j*^F�R0*9GH�g�PR�
�Ar��X㲁�xkҽ��쯎����[��q���-E%�C!P�L�4"�z��ڲ��\̛���_�L�#e"�ք���D�WT�SҁP)ǥ���
`�Uo~گ�9,O�`g
��^O��&����W��K5�0��<�0�Ħ��������]o�G���p�
���+���
*��H��EL��� �b�5�pd�L�_Rӥ�J`wD��c�C�l��<�lV�s'`a�bpH���������؃���Y��"⺽�~p��.��|�T0�?�(�CҌ��Y��d�T�c���ؙ�kMC�ba�2x�GM�x��ؚ��6�HF"�"���v G�h��]~l�K���$n(L�bn$E�-��ѐ�po��aT��3�'�f��r�I�a�l���4�;�%�Ն���WE��Qj�+i�"\�6�u�2O�����,�G�>n�%-u�'�w8_iJ�qX�����l0kD��>��%����K�>��g���g^Қ�(a
��󬬔���H���΂�l#�*�~������)���e�,�3L]�,�.p��`v:�W62|���]�����ţ��^J+���q�XrJ�Ű�/�a��b�
��`�ݰZ�<��TVb�;o�ßv�����	^���Ї�@�IoCe�W���\�c7
/����-��dǶ�.���}���.GK�w����������e����O?}pr�60�����l�zo���v��>|�t�y�ֵ��B׭�Tup���m_��%�m�z�c���NE�(�O�D}�˹�8%ٛ�	�/V���a�M�r��8NJ
�,�3R,���w_V^�Xk���� ��a���'VZ,��CL{�TpU"2vh{^�scS�*1�b#�O�QCm�xf���.{@(*��Fz孷A6/V����f��p���'�wG��`�)gI�	%[�?�hN�}��Do.�ۇ�̡c��ܴ�m}��J'cy� �
��*2u��=/6�u��X8h��kll��eT��ŏ���P�7h:�xX�hxQƯKh
:����a׈�~RF���%
6�.����x��0����F�s�u.V��l��t���Oa.`Epv�:��V�v����q�dE&�;HpYs�`P�k��3��$7�L�X�ʎ&�x9ݾ��J�R�35�\���zMp�hg�>�0[��Ġ�[����JN�M�y��F�Y�������ԏ�O��
f�N�ȼ��믨Z��w��b!��;;��kԜ�9_]Բ�?R�pD�,�V��]�Z�n�6yA;S�k����Wi`���� ��@]�!t�e�Km&N��̈� tpT�ڄ�?D��!~mR��+�u���&
�Z�9"�O�
 "��FB�M&�A�J&�PD��zP_�N"��ce��`��:P��K�'�`.
c Y�D��D��g��:1�Jj��rQ�U	��yH�"6_zH���7c��aO��2�i�s+�����sz�Dm���^��uK~�
���I�\J��lذ����S�G�8ӧQW}���{��J����ޠ��9Q-r�y�!pF}F�KA
P�}%#��2m�W�2�cMK~??X͈g�f�63F�{��/��C�xU��~hx���_�D���0	D/�(�g�[��~���=�jG�օF�t�Z��.;�NX8�)˞9�3Dk��k��pHα�6���A���#}�w�{{�N��ޚ�@�gDvYv��,[��a�%���ģ5�	�;�nP��s�;sZ(x�pѐ���+�u�G4�߇s�����>=%�s8V�o~��Q:Ot?����5'��f=tg�t�%���_���4�-�9���\��G�p�Oϒ�E��7�s�0H��u�L�c�W��@B�T�]��n�����yK���fm-���1�����V�|���u+�f�Ï��'�����7��6g#�w����v��7��
/������F�)ˇ/��N����w�'�gH��\��Ǩ^_�9]>3�O�P�h4\J��n��x���I���A4�]:2�p97�i4T�z��YS��FMa,�qXK����AJ��9%��+dDF��������ر��DBF�t(LF_2��d���u"�ၝ���E9���*���D\���5����A�5�Ќ���o��a��Zwm�ۛF��^w��L��ꛆ��S��c�X6K+5gff�g��U�ߛ�vK��sn��1Qδ��ƚ*�L'S]�+ �~��)�WOK%W��'�-�3�Y�P-
Vh�U�<�į����V�-"��aO��_����*��}3n���Ƚ�]\�g���=tr�	?|���[s*������Z9��	�7ݶ�wͥ�p|��xb�h�d�}����-��P�*�vsӋ+�I�4d��ʢ�|ciS;<�|��ʊ����}帤�F�9}4d^v
��dy֨��A�����2��
-�d8ߒ�S���80De�D���o�[�Ā=��9i�o4�g�pìi5�߾�����L^�d)�L�X�&�s���7�ts���X��5KI�Ճ�<7s�e���ajE�o��9'��F^1#��L9�����>�k��G��Y�ܝ�f�^L�MR_g����S��du��v�mySgOOg�r[S�FL���������8��J�FQ�x
u6ʆe��z��>z�7Ʊ����1ɰ]5��Cքя�ҡLؤMf)7�&\
Cʓ'ky�D�=X!.�M�Xuutpsر��^o��S�*�qT�8�l{%�zT�
�TOmػ��j:�D.[>*V���Rn�BU~Q����{ڞ�y�&W���(�Z��
ɮ�v�k�:	(R,P���(�����
5�\��T:%�E���5��k2�U�::f�g�R���޳�!Г�d8m�/S�����t=��Z
`���I��;�B��������VUaft��e�������	�0)/p�������!cU����JƧ7ŀ=d���!]�3iu�+*4ƀ��3��s$\�(��R�g��E��������m�p���X7��y���LC�ZQgin^�Rvzi{U{|*����͖:�:�+�w�iEHaW�q9�U���u�O�Q�Q����=>���mLi��\�@���W�icU��u���`��̶��V^eL���?�U��IT�ch|58��rTVRmS�TQ�+Ř�~��cՎ%p����������"�覫!V��S�`D/��\d������߄[�Vy!��UE��d…�[�[F�ص�¨�A�C��V<4����m,�i���)C;�w��f��\�N����r������+�K\ �֊�lm��N�����}W͠�޸��0Ӯr��a�#2u��SǼT���!z�؊�?����n���+�k�s��~�����W�V���_��W�w>ҁɅRS���I?�;�|Tɢqj5"#kU+�+A�14�r�F�t�y+IN�y�����0�MYcX����p���dW>��q++Zb�m�bilˊ]m`A�Z^�L���ޒ�|X�b"ku�~p�t8Bf�x>[�&�cf��0{
����]�����3�̟y~&�H�3P���|m][`7T�GY�rfn��,������k��f�x�/oK�_���
��*{���t����@�����2��#g��=��/���{��Lg�5S?�(�lK?òc��!_0��3�	�γ%��
�
�ɰRO׎��-S������m�r��;�<����ɪ)��1X��ɫ��l�̊%�"a ���	ΘG՞��v'b�X����Z���ȝ�܉�������l� fm�"&�}GPX9{ΰ&ߐ�R��asfW��1�^|���q�4���t��؍�Dӻ'w��'�wTRE�dj���i����}�GU7�c.�.}�!.zs�Em��j��1��ݐ=�0Z�,S��qK�+��J,q����&ʹ�V�
�)A{���0�7�Ы.B�,=�1yd�q޼��΅mIƣ�*�?����	2�|��*�0����V�B'G!�$�h�B��Va{�(�H���e��Rz�q�#.O��b��{�o�2E�+�RGqaaa����l��ZR�J���-[~����[�ٗ��V�-T��l"���C"�,zw0�gѬJƩ7+�f������g<�Džo�����*p��RG�oҟ&���%c^�~[�$��[⑩.wػ�<�G�wą�u	���a���D�Z.n��&E�uF���C~����L_��3��ϐ��v�5䙾��/�\�!���̫zB��kh�y�8!�� ��G��JR�^ό�*�_���4>��S�k6�A��\��6��n�Lz��#��UC�ر-�Ww���a
�HI�I?�� ���2P���j�&����%v�sh1[M	ћ��r����%݈$wH���d��~A���7�ś? Wa�º�G~�*|�M���^��nY�R���o^�zz�j=��#[ۀC^�W��b�H�Ro�0�
sd�y46~ZC��7�{�Ɨ�����sݳǟ�n�8d]�I��U��֝{6N���Jgnys�]���7��,�m�9�F7��	���|s�湟3�i/�峹7���fe6ʏ�z��&1>�+a��K;��i�
c*��k�پ�m۞Ρѕ���s��0���HzBτ	=�gW��V�OR>���#9��~��Vs#�y��nIUM�R��<��}H$���ո��6����K��.^�P�����}M�̓�X�O__,��!�0�r��I���]��^�H@���L�d���\LӤ����)5mb<��O��J����D�F:ya�������/,%�׿���v�#�!�oS���� 
؋��Kn�biBq}���c�׈丣���&�v龖�V�^p���%�Bڹ�L�YL��LH|��F��N�
��F�	;9d��3Y�	o�#A����b玲I$^9J ^�o����Z*E_�|D$�_��k56�����2�Ʃ��Lmȟ�x����m��n_�ɱ;'�.6���~�ģJ�%�E�g�/�E5�E.Ì��sn��8ڗv	�t���Dx�r������礟/j��;�QR�nʋ$�;��O�6�^G ��Ez��Y���g��&��UuB�����W����Y{o���3A����c5�Y�Y"q�.��SF�/��Meg�H����4��N�^��3��\�m:���������.��z��69lP�P�i}���Vi�D����Ty��7`�k�(�\fs9�H�&Rv�Pi�*��@�h^߼N�5�kpW�V>IV-��ZP+�B�3�5p�%��oN�����ਟ�q��o��D�
6q�+���uVh�Y�ᔅ��ё�BVӊ���*��b�K��h�.8���̲�6���_�^�d�dy�ԠԘ]B"ђ)��,��i��37�ܿM:�_�i��~�X�@����,�-�Ѭ��,}�pa���<2����8����<�|{����ޝʰ��~�Ő�;,j^-�@��d.��=���4�cj��
u
V%]��8���})��Ϸ���$'*��K��	�X1��l8HH̛J����41��E!gy��,�U=U�=M5账��z�GV��!�=G�?l�^3�B_n�evM����IY�dkۖg����5�:�ñl�fp�l\Cl���;�>��m���J������_����$�\������?�7��wj=zŊ�q�
}Lx�	{�o�FQ�.j.��ZM]Im�n�vQ{e���W`�el�|cΑJJ�b�L�sI���R���0)���-����
�;U��M*��C�*.T��]��<���
�z��]ʗu��@V��ޗSޕ5����3J'�Grd�)��,���ꁪaWw�iְ]�"Fs�-aאb�J:D�r�1I���'.J	]��-[�|����:�j�6"y�F�vju/��c�Y��x��|�P�/���A�ޡ\(��.�]V��H���!��O6q���r�����q�Gv�X?$K
���q3̘�&����丣߹|d:dnI&�.���B�Zz�b@�&�[1�㹞��~�_��OG�>����բ��h��^��Q�|��w4]���`��]��w`増�s��^toǿL��ψu)VB�l�N��u�x$�V��6����}y�q�c�<$^�G�VM�)$��U�e_y�[��ń�$�`xK)J�_Sn@�6z�D霘�1���-��=F]` P�{����7�>0����!Mz�m��)��?�������7?�y����i
��XyUUê�Vl9�U5Q�y,4(�/��5\}�?o�&,{w�)3�]:�~@}.m�@k��&�^I��'%���ŏ�q���i�%O�(5L��A١���z�j�q� ~������q
U�@�J��X����g[��_�RE�J�rb����r�ֿ�|��v���� �e4L�E�Cލ��f?��_^r9�-R��7~��'�rfna����@S4�S`�@4z��9���Me�`(x$������[vrQ���
�p������
AW�_v����.L��1@!��Cd/;)̡�X��?x��{;T��?V�v�a�vՠ8������m�rqF�ߦt����>��_�A��?���P5(~N{�'\:o_\z���ʬ�c<�%�}[��J�5��<<���_����yR6$��k�j�~F���Lt���ɦq�N���DrÄ{��� ����x!E��:��0���r ��D�8���ҡ��hWaY[�p���q.�p�Qr�Fv:
�:&!=Q�Ί�PXǠ&e":�آ}0���hԺ�A����
oU�{��6���:��+D�޷3�2-m�y���,ͿH[�>�`�P�P���tQ�Z8�f�����	:g�AQ�V�*)�Bȃ��&���1�^o)*���k�V�y,Z��/X��V˸E���J?m��N+���g�jGl����ч|}���kC_��s&`4��l�-�B!�W;�ZmH��5��ƿ�+qJ�(�l�9��@gQY�9O2�]:�jXڠUPRb��Ty�q[T|�,1�%�g2�WZ�B�����bh����u�aI,�{b�A�1٪D�P놜�z�|$X>�t��B�����wʞ�N���j�a��Nn��6~,
��Kڠ��uX�h�}y=HЂ�h$�����A�T��g��wLa엪�͏�1a�x�r�
�J���t�<��&5Q���)`���6/4M��%���go��oj,
Z
cM��Z���p���Lh�֩gGdW��a����75Ł"�֨VFm���:jYh�ڴ�i��6�͛�q4e�Mݰn�1�Bt\�T1U�x�;$��1��H�kh�b�Ą�Џ��H�����1�S�[.�s���Kګ�d:�I����J����,
�~�~=8�p�Ӭٻ�ddx��
&�%b�(�Ns�
�ZF�sE=����X�x�-9��FTx
ʡ�6��u���sJ�n����Ԭ�xO*��(��^��F��fа4JH�۷���}wI�@-m��R�硢��'��,����(1&^�D
+1��/������������J_�i�^F"�����5<�M�ҍ�œ�KѾ���0�5J�@��c�����"f
�j�W.Z�1�mҴ�m^�d�����
oJ��)�m�[_s��E
��}�/�of��+�~��`P��]�q)��H����׾x�Ego��륾ᝁ F�i���� <���]4d+�>�P0�c#ۜ�z�w/��]�=�s@+ܳ�<4���-���#�H�w�4�f�EEi�xk��!���+T�-
m5�_Vq��&[�A)�f�����ӆ�5��,�(���>�,_mW�`
Ђ���v��9t�͛�Eo�s84*O��{����l�ӧo�	��LjF�/x^ý����^��&�S�P8��>��A&���::�ف V�7C3�!D6d���!X�|y:E��_%7���gk]�&Tm�c��VO�#P_�3k�*�"��_�/�o>|�����������1�r�'���X>�ҧ�/��%�H���yӳ�>����Z�j4һ�T@h��n�u����/~�L�y�C�a��aU�4�Wi���@~�d���y��G������Z�qi�$ݥ9p�C�@����&�sr��<>K1�ѿK�;J����D���,~�t���&�<��g��OvL���;^��I�C��J=��^FmB}d�C�,~�P�xG�2�?���XVD~��h"^�?�]n(5����2?�(8w�L�3�1��[H����E��l�7�?���+�G(���6}�[0�)��ư4
�A�k߄b�؝��k�Ŋ��uX��U�#�)V����7Ń��D��e��t�[���ٙ�>�@����84�� �-9����Z�.n}:���Ε�z���#��dh�!��
ǥ����k�O[�:���!�]Y�)�
�t��dO��r�����rv��P2�+�2�*T���EڄUj�PB�wK�Θ
=�����|�Ǥ<��3��n魠*ڿ�fMh�s�X>W�gO����N'$�u7��tAұ�A�����q��h�͌̇��D0��'�*��&4�0<BXFF�V�}�o�q|���߻�Gg�^��ä�kש�G������NrJ��w��s`Ϗ���U�L��:��J���^��	��c�k@�� }ߓ��M�$�?��t�^"�Y���S�N[yļ�+��]p}�L���FY>�HCA���qp��y��M?�x��	MzA���
�>Dm�7�r)y��蒾V�͍������l�1ύ�"wm�_\s	�ɬ�?�=OM�fR��5�U�C��ԫ�{�G�����eHa[�y����
�=sD� R�U�W%Rd1�'�=�uR�(/_� �9�ַܺI��
�"�%����;�0��ݎ����b�+M���G`�p�\�{��?sX΁R�K����V7��M3��y��>��
��s���h�)wd���c���yt�\��̌m��7�x���5~ng��l4mp‰�Ѩ�!k	ԣI�dBG�4CB�s�5C�OYb�jo��۰8=vMa�.��/l�n�����M�q�f���J��,�i��a��s2�`0:�{�Y�),fs~v�A�t��T��1��2?�+E1�V��h���cO=��B@����U�
X��y$c9��h���
����h�ׂU
��ׇL_�CAkHq�>�������yJ-��-?��I'��<��TJ#�2v��$d��1��h0�Y!}=��n�b�J0�d��N݊�T�l_9V9��Jk����m���{\n.ӡ�&GTA�B0��f�s�f�X
|,c�:��k;�u>Cv����F�ގ�sZL��W�T�x�c`d```a<=�|Ed<��Wnv�b|�F�������
��``b�d#�x�c`d``c������8�"Ȁi+{
�x��VKkA�y�<��,�5VIL�,���E����"�E"�'sj�����J��U3U=ߴ��K>�����Փ��g�_��(�ET��u���=O�'{?<c|u�>�Law��]+t�w���^��nD.�}k�zՇ��쯍U}ɩ�o9�:�΋���;��FШ����O��;��XS�B�[x���e#2U�o�ا�C��������??✼	9�Xz{w�>�	O3��E��*��De�[�=픖wE�:s�e�I5o�ÞR݇�G����=SB�P�s�|W�+�Ⱥ�	��}[0��l�]�1V����~�ٴ�F�o���M���r�����;�'�����O^gL���y�h�o����l7��/���ӌr�q3}=vC����C��HF=�ǡv���@�i�lr�.�r�4�C���үV����ldV¬�L�[�e��N���0WԿ�o�ϓ�iosW�wz:�z���Q��Y��Y��3���R�y��K �>?��+#�B����|�J���zj�����6�]@�UD-�P�v�>n໌u�;���W����O���MeFY�г���\�l@���*�!����u?�'�m������
�'�18��>�w��C�Ú\f�M��c}��~5���l���mo,.�}��Y��r�[�K����f\�y���B�G�y���o����C[�����
����|�E�E@
����\}�d<�z��/�
|�x���{T�g����N.��i�B�d�b!���3�i�M��e�$׹4��M�=�'4r���i�!�e������������}Nҿ�1��H6dH��A�T8T*�
�H�GJ%��K�^�
������2	RY����HY��Ryr*УB�Tq"(�*ѯ��T���D�S�Tu�T-�I����z
�jp�E/�N��:�R]ɕW����gKn�l7w��S�G�G�{�o�x���D��J�=é	=���Ż7����,5�w�0@N386C�����&�9^5��;�J-�H~�i	>��j�^+z���O��P�u/�/��w�R+�����=q� �v@G�S�LLgr���<��IR�B��]�<�1���ug���fO|�E���_�P;�ap�K\?��G�������ǁ�\���Ti5��s܇�}8�A�p	�O�?������Ͽ���R� �Kr�Q'�s�?�YO�w���1��IN���0��EQ
�S�9�?�'���0��i�O��do91�1��ٜ�X�Ų�X�b9�s�?��84�Q+����q>�_��:K�ຈ��L����zK�[�w˘Y<����r4/G�
f��+��*�$p�V�{"��r
�kr���Z��u�1	nI��x���c�7�l��Fzmd���f��L�-�ڂ[9�[�L�6�i{�[�G
�w�o:wSo3܇��j?�R镊���:�g&
>��u�:��s�GXK�˟���Qt�����8�;��<O��$�'�|
ON������2�Ltg��k��uo����\�G���|�؋輄���]書竬_×�h�ιȆ�
�o2�[�ݢw� ��q���L�g��<D�#r�=��'�|J~>��S�g�9�^г�o��/��/�
ͯX{]\Fe�l�)�H�X�L��eJ�dJ9�8+eJ{Ȕ�*.-��o�x���2|@6�t�L%7@l�^�@���(��ce�E�T�q>%S��IN-��bυ����!�.�ꎔqeϕ��ʸ�ȸ�xP�!�Fލ��4�I2^	2ެ7%���w�i$��<���_�L+8�;�гu�L�X�-��@��2A<;���@c'8��3�tAC�.3���=P&��p�(ۓ��1�����o���������O��)2�	ye�e0ڇd�eN��d��gF�{u�B��p��o����q�D��>�*3��	�s3������=��6��(���T~G�7�����7��L4���Y�C�ٜ�9��񜋮��z���]�����%�q	���ϖ1�T���e�W�e}�(�=��dr��w���s�oWs�e
\����迎�$�H�}nEc2�pϘ��o�����K�S
}w�o����Z{�/��o?9��w*z�� ��%
އ�a�a/�G�|���<�lO0��!�������r���Q&�<�/P3\�w��D��p����ˆ�
�n��܂�-��?�3u�>w�y��wᘋ��ɀ��u}�є��<��m�󐼇����O�~�p���)>���k�y�g���{ü�,��Ǜ��u���β�<d�-rJ�X�l	�K���l�<ٲN��Xs̖��'[��J���lOY'٪��բe���&ٚ� ]�%R�6��$ʺ˾C|� �ĺ=�m0C֝5�,�w�d=x6�V�\YO�(J��?(�m�,�!��~Sr��������~n S�%�Z�@6m�e�ю��p@~����e��tx�c`d``:�$ɠ�L@��`>(Mx����jAƿݤMk�`�R��AD��ݴ��7�?�Mhb�W�6;I�&�av��k_@��+@���U�o'c�BMH�7g�����<�������d�E	�,p?-QvZ^��S��J��r	/�g��p�}oyw�/��x���G��Y��:w�LƜl�e��>[.�1�[.b�q-��	u�y��זK�輵��mwfy����x�~������b�b�Ї��1BL I���vQ����K^��I��k��&���LŽ���D��0�fb����`0�(JfRMdD��I/��DK1�Z��`*�t�M��Ƭ d.�do<U��ڨ�U�ڴ��Mr�;�g�zpXm�k'�F�}���FUF��]�=j;௲��K��i"���bD�.x�B$�d��y�&��_j����Q�>��º\ՒO���-�9"Z��mW���j��\DI�滎��Sid�IΩ+�Щ�})��dG�»�2']�Z����J�Z��rl�$��;2��V���z���n�M�"�L4�R�+�_�
���e�k=��~^^8����D�9�yW�y�1�E&���ϋ�x�}Wt�ȲuU�b'X��̔ؖ�,O`����ݶ5�-� 0����̏��1�}�̰�����L�s~N�$ݾ�}oW))L��?����nJ]��.uc�ԭ�R��n�4d 9����0����
X	�ư	l
���l	[�ְ
�	���`{�v��`g�v��`w����`o���1����P�	���`8���`8V�L��¡pG��p
��p'��p����p�g��p�
�P��zj4�Fj�-hClX
]p�}p��5�C!D0���·�B�.�K�R�.�+�J�
��k�Z����F�	n�[�V�
n�;�N��{�^���Ax�G�Qx�'�Ix
��g�Yx���Ex	^�W�Ux3��
o���;��.x7������!�0��������	�$|
>
���������"�_�/�W��5�:|�	߂o�w��=�>�~?��O��3�9�~	��_�o���~�?Ÿ����+�
���¿����/��0��b�pX�a�Q\��q�čpc�7��ps��ĭpk�߄��v�=�;�N�3�n�;�{�^�7���c	�XAM��N�~�?��Ax0��p
�qg�P<�#�H<
��c�X<���D<)�:����x��g�x����X����:6��
[��ڸ��`�袇k��C�p�qq-���x^���x^�W�x^���x^�7�xތ��xގw�xލ��xޏ�>���>�O�>���>�/�����f|�߆o�w�;�]�n|�߇����C�a|
?�ŏ����I�~?��������E|��_Ư�W�k�u�~������w�{�}���?Ɵ�O�g�s�������o�
�����?��/�W��������?�_JQ�2���i�
T�a�QZF�i���hcڄ6��hsڂ���hkچ�D��v�=�@;�N�3�B��n�;�A{�^�7�C���S��T!�L��M�~�?@�At0B�h��i�f�P:��#�H:���c�X:����D:�N�S�T:�N�3�L:�Φs�\��ydQ��$E-jS�lZM]r�G}rɣ5�S@!E4G�@���Χ�B��.�K�R��.�+�J����k�Z�����F��n�[�V��n�;�N���{�^����Az��G�Qz��'�Iz���g�Yz����Ez�^�W�����cA�v#(�ot�?��S���tZ~A���y�b:
��n�N/vj������� D���UϝS���۫�|\�QHn��
�v�r��3�o�t��<Ϧj��C��Ҿk5���|����l�I���uw��9�b�a�
G1���0竖��N^�O踍n��X�o��uܾ

s��T��S�M!���ˮ�nS��V\Sh������Kѳ�n���~�mX=�[������ڡ�؍b��ZG��NX���v3��Y�_sT+N�
��_L:��>��WGAh�Ӳ���o�{	N��wG[VCɩ���rs��#_e=�o�N�gy5Y��VS&��u��f���L����D�� T^�n5���iY|��^~�Hˡg<�M��p�\�e|8~}Љgҝ�Z��0��n��A'��DAM�Q��}�,&&��9��#k"�G�8�
�������T?�ሆ%�b`�*ԭ��i��;���4�U�v���#�#�r{���"���g9�r��p���nY��b�)��w�Wy��Fc5���p�@
���~;~=���W���~���o��\��X�l�j�UX�W�;GY�=�W*�{�L��;�b*?!+�,a�^���C�W�~��l_�b���$��C�er�b2�}�N_crߥ�ZL�m�z�H؉z���*�L�d���I�rZ�8�$1%'�r�q�~�͙e΋�ok�o��9l��qB�~�ɽ�b�m3C=�A�&��p�c�'D��˛t�	��p~��l2s6�K)����7��4�R����r�bC����B�e��\܊�dDdE���zG��`$�`�C��!H����Uv��;�ɄV�
�Qy3Cu�V����87�'���F^Z�2���ٺ�8BP#
YJ�O��b��^:��TAΧVg�v�q��~��A����]vx�vg(����PwT��k78�G�������;�����y7�b@q�@�5T�>s�;�'M��I#��I3>+�7�A:p}��=�[|y�-N*��y�.��orJ���qQ�Y�X;�(�C�k�8����>koqD�Wpd5�E=�q�un���k�6�t��$��z�"cÎ��|١(�S	c���J)�0.Geɔq:�-�#�����$�Y=f��
��f��-Y��V�t�y�����XK�h�Q]�ԗ����H�
���e_����`~�(�5�TA��Fֱ<�b���=�.��o�w�š�
��I3љw���f�w3���ł|0˗��8-	��/�Ona�.�%�e�/$��է�����<���0�"/���h܈C����3��e9i�b�į9���;�8�$�"���G�!�H��J�aW�k��dqIf)�H���Ƕ��I�_�({�ڵrv�j(N�2���f-�����i�M����j�&�Pd>Q����ij�hr���&|���`D��C�����	{��nA9���YH��61G&Ύ��m/��%	iź�A�J��c��O��� �wt��C�����ŗ^l�4b�&��ψ8��W�V/��g��|�%�%Y����]%�Ԯ{M��>��ɏ���6�3Y
�����8Tcx��7�V.M�\7r8�G�
6��C����p�WlЋcS�\�Ha/r6��z#��^`����ޑ��5�,�Q�!����������^��ߴ]��&����h�����#���*Z�L�>K�,�G�ҧ��K�����\w>��5�]���-�2�䖠��qRs#?X�b�9�Vq�-ˎJK!	<�=
"��4s�ύ=���q���Wv�����/TK���k���Xe�dI���$9G��M7\�@�&��S��J�5����H��⁚+C%)�R�V��U)&���E}���Uc|��8�L
h�,]M
hR@����d�V�ui��(KQIf���)EU�	)4>&�<и��+RRb\��k�ӵ�J�+	�$���J�+	�$��0���,�� ʂ(����	g�u�!в��1tm�Z&��a�kEX+��V4tV�
!6dZC@��2dȐ���0a
����zh�L@f�ϻ?PUTTPUT��*4US^nHKh���Ą ��EE|Q_T��EE|Q�Ĥ &!��L
b��n�b�܊BLa�)���$EY����U)&����)��K2�!�0��X�Kb	C,a�IIHJ�3bC�`�1�!f0����3bC�`�	_FYeA�!0ʂ��"�� DzC�7DzC�7DzC�7*�0!���!���!���!���!���!���!�� LA��)S,z��.��sK"�!�UAT!�"�!�"�!�"�!�"�!�"�!�"�!�"�!�"�1)��DC"����JU۴41�kƙ"�)қ:�&]�2X�bB
�3�K��o����o����o����o����o����o����o����o����o��f)���Uz���u]�uY�z���RW����zB׃�V�zJ�Ӻ��lROi�)�;�y�4��ҼS�wJ�Ni�)�;�y�4��ҼS�W�Ҵ�ּӚwZ�Nk�i�;�y�5��ּӚwZ�Nk�iͫckI��Ҍ�Ѽ3�WGؒ����;�yg4��Ѽ3�wF��h�Y�;�yg5��ռ��wV�ΊS&5�&�դ��tV��j����	�widgetkit/partigiani_1-42786c546d110ac7796fa75fb8081407.jpg000064400000073567152177723720015737 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((����"������~��@�Gk]�Iw�H(o#V_`̡�����׵����fO^��3$�2k_�D��W\㴓���7���ť�,�XG��"�=8�;U1���X|'�^9L�XrD#��v���K}�l��֊����o)�s/����j�!N[}�G��̟�m襙�ns��BY8F>�)�+���;��Ttt!�b<ަUޒSFK�Z_�c���k�*4������Kt�nd�ҩ�^�!�`��#�k�Z��@\�ؕ�����L��Q�s�-�K���j��0_��������k�75�� e�3rmh	f�F�߄(���Ը����u�r�۔��Ǔ���ǣR���qr�0w���+8��-���v8o�)^}!�|�F�Xk6(�	��U�W��Rb�����fy�?P�ڤY����R�;��G�)�b�QO�ߠ͂4��1��A"U���6_��>��u�m qQ�L
���cMu��kl���աSon��hKMc��i�E��0.�T6cY	�(���ƽ�y��h���������	#�:՘���F��e}ф��Vm)q��V�X�36��@�5�Y��ƅTv��y�ڽ�v�>�P$���&���[>��-�՘�EDĻ(.ݪ�Zk\b�=���3t�X����y�W�����D�r���h�k��MŭX�j�}�%���sf��Yq-�]�<%�ֻ�W.������jae�
�s���@�"�cKս�q)B�M>���`��m��d�	�3ʸ��}�݃~���eS+�}�,�����ȉkR�X_X[�4�\!
���l�$=F-w��.�[$[�y��h����&���n�E���;��
�귕�@J��f���j:�P�$��!�KŖ�e�S1Pv[���w/�J3R�w��K9V3�B&X�@(�i�W�+�Cr2��r���!N�[�U���-���ܵ�]3"��[�e����"�ly9�k����(reo]�Mǃt��p��m�|ї�e�n�:o�}�!�b���hȶ$��W�i�����g�.�n�6=��P*��]�V���T����q�,�W<aZ=z�=��n�0Z��S_��c����O��ld��m�H@�'����Ca��#V�yFU��O)���SE�c(���M�?��;3�b��*��X����$��7��h8��<���:i�!��9���MJ��ّ�Rן�����ԚE���,D��'���df
�}u)l�!�UT[��.~�5���R��Ƽ5�TjÚ�cbc�s��$[󶌚����tf�C6A&-<��B뻍#9�-Ck�Y���s�z_v��b�L[')ێ]������+�";��(	C�
5|ɴ�ٶ����~f6Ĕ_��j׳�u��|�*�0oD��t��d~.I�����`|�Ak�Ю�Hɷ��4a�h�S�P$7K)��C|1RN[!$��HI!$��HI!$��HI$I ��l�>u!$��%|�H}�!$��!�HO�$���!���!��!$��!�섒$���-!"#$4 123%AP@��uPaD��-s]�xD������~�#�Xm�K8���?�nK��Fп�]0��c��I�������KTh�KԘ=߀d�տ��VI`�yxL�׭�&��u`��^�6f��)0_`Gx8!��X�e q�Iϋ��9�n��f&�|�?��	�?ᵈ�����V���6(���䖫��E5Q��ꢫs�{FK#��&-���S��Nv���_x�V‹���N��v��י{3�$>���d6#,�X�rK��s�zK�?��&ڣ���+��PK�3Cd�2g���O�I`Af�S���3��s��=���/�u�����ټ�%/ﺱ���8��c�c �UjUcg���.
ȇ�E$��,���#��s��(�
Bc���Py���+�c�Q�kn���/��]��2[
��0�[̘5z��Q�7g��@�g�`�RN5�m�E
sԿ�s��X��#�s�c���Z\�<�2~���{/��h��C#���3=T>��ɔ��G3��j�~Z&��l����^��U��޾��J�d��r��%AM� O@��?�,�[A
/MPk�ͷ2����J�M*���)y4����vzM���61�3�LcFC��7Pb�?M���`�W�nB��+����Ծ��-2�cٽqׯ���.�c�ƿ��X��Ub
�S-:ީ��aT?��Ie69d�g^��Kj#^��t�G)��6��iɕ����}�
=~��or�O���1$3�'c3-��U��
�cY�X�s�/�~��"��(�U[q�ˎ]�|����z��q�*��j��+عMj�������x�L	���-��R,�TV*T++��w�B�AmTl��R8�U}���u�`�
��5V�4��!R��6:ʼn�F�3����'"���F�H���ҸCg쿟�9[����gv͚�YY�b��(ۙ�~�-yP+'N�j6�1���sj��l}�Q5�l :�U������9M��^�Ͻj��i��>IJ�쬧���N�]ݥP�VFg*�t[D�c�Q�7�!*&4��������b�2�����p�F|���Զ?Μ��+yXQ��M�W���h.uȂ6~�}���#��2x�Cf�x���E۬��WP��Z�C��g�n."qn�o�!�z�R�o��O�k�*U�M��\umni��$hH-PPZ@*6& �.'��[@�i��6�@Q�|��كF��i��;?�Rkc��A%�`Lv��9�T������IW��j+w��+H�#mp�
mX��jk�o�n�8j�
�_�Y�Ԉ�Z�VZ�6�QI��ՓuBX:�ǘf�D�(d1nJ���%Xt��ы5F�Q*q6.ݬ�����P�i�C-� ml��m+�b��'�&:W�\����'���2Ƀk�a~�k;}U�9�ශ
T6�k��k��֜7b�XW��1-�L��?�t��K<�,���&!T`eqi�gr,�h��iJ�h��>���$��r]7�Co}16T���lt_��yrfN�	�b
3�|���Q��' r.��,�V�cpbD����?W�o��:㫙z�ż	2�Y�(�_`��������c�d
<Z����X�����$ג��P��6�e��ҏ��H��W�Ai��j|�a�Բ��DK��q��'a�ڌ���c��QH�3,GV��o3�YxX�_���/��"&��b���j�
HB�&�oq��<�����zur�ª��]��:���*Z��,�t-ӳaa�3
�	U��8��"��|J�0���B%jP��a!1�y�����4�{���k��+!�'
@X��Ł0�JT�3<\��~���J�Зw��gpdȬ�J���l'R��4��ٽH;�_�w��z�:�ʵ���o�p��$2#�Ds1,R��xR�f�=}s�r'
�:|T�"���Lj+��z�Z#!�v���ї�1<-����͒A-j0�>��	^C^��q�d�B`���W���lS͛_��\�X�f�U	'�E�XL��Ar(���+��iI�f��������ԁ���אś���B��?aiu�d�1���Ń�uE|؄��9�O�Q��'�L�g�1u`� !"�P1�Du�>Ep�U�{V�m�Al�/�,�R�u������������Z^l�E�PLw����i[
���M��F.�ƴ����5�ƅ�������.%�	ir,�?���+i+'6t��'�u��.ʭd��ML�79�G��P!Uv"WhLJ'$�-��[{Jj;L���k�����]���.�9�a��f�����lbƿ�N�Gqd��}�I�]�3�����-��XԵ+l�:[r��fój���ZD֤�@����,_b�gq��>c^x�S	����u߶�!q�@��Ήb�B]c��0u��\��_��ڹ��5��Ԝg�x���֖�����V�!@�n�o�6���F���
U�J`��cM���R:� ��6�ot���I����f���6n.�*M��V�BH4��k���Rg�_�S`l�WҐ���ܦ]Z�u��^V�J��M!D"+[[{L�	�^�!+A�v��fV��(2�+9��D͖,YB$�<�q\UYfA?rF�8^���Le�S.",��T���5�������F��\���T�����9�5�h�ex�cW]�g�P��k���%����f�c�kl!$k�VS<TE�
�:�H?&������2�Ç�ذ�)�
��}�x���kк�ݙ�n�+CED?�?W��+����+e�&ڥg��"�+-��i���K`�׷*��m�[U�8i�EO���eF4j},C*�A����Yڮ26m�lC1�)�&Ca�)�R�[n�8�m�uE��u���ɡj�7�����l�*U�j�Խb��z c�����5[RZ[xB���4nٸ�]��r��o�p���0R��,
��k��W�=,0�E#b�%%Rk��	l„bBFÂ���k3
MCh.Zb8230���s�J|j~1��㯫��"��k@���+Z��
�P��r��rNe���n��~5�X��O�������	�U��nx;l��{��:„�6'���� ��D���	�Ê(-���#U>�?�Ok�)��\��n��'-9i�{O�k����	�눈�������#a�#�S����x6u7,a��ꦻ�'=�k�¹v�7���V]��E)k�V,�mMj�m�]lG4�Q�ÙV����?R�ط�
�1�7?��*܆9��-P���ia-dM�v}cVL�uz���	�eb"(�G1�"1���d�
j����H�l�gI3�F��Gg2���fPQ��•=v��9H�TJ��t�;�������l��C�R�K���%Au�k~4��_�4���,��.$wj"����xĄkk��ڳ/�j��b�R�&��גι��~Óf���9�3f����DX��k�G��r��EJ��:�%�Q(��(Mʎ��LyW�z��GmLvep
]K[�V��"��<�Ԛ�;����1�#�vni�տoE�:~�gk�t��j�N����欙�)_���+R_���ɕ>�=F;�}x��RB�i ��+
�G?������Y��X*޺����EfڠD��ks�]��~�+Oh����.�m��L�Ŋ�=�	�j�WO�`��l�wX�P���9�k+��b`�=va���.)��B-1��B?r	��M�P��Z-�ڢ]G�T֍w@���`�޴����"SޘԲ'QL������A�M<�]u�;F=�d���}��t�m!eS�V<�D��%�+���;�@��.E�5R��4VR?G
�e�/d�m��pjW�ʑ�8�'6�k�k�Xez@���;sY�g"br��#-;ъT��)�uXy������DDG��.f �#�M�\}o��5���X�Gꝍv<�N%
�YrҀ�<�T�d����TP��'�2�K���u�!�!C������ڂ����'�Xy'gݰ]@�;�=��{2>-��Q!�URe�Q�71zŁ��4zP�����-��W2Ϟ�v�ΰ̣R��Y�ǁ������g�Q�J�ږ��DG�;�� 0P@��?�h$��,R!nP��%�W8����]�=^8*������� 0@1`��?�<bƫ���O�D�s7x,_���M�?
�	�<�v|�qp!��K�G��9!1A"Qa2q#BR�3br�� ���$0CP@���?$�VF���l�W9�޲���e�N3���D�X�z�>�+O'����Z�����
�2L���`�q#-�b�J���J�x fҸ�ۇ�����U:���Si���8��>!óa4�<�C��
�S����s��4ċ{'�y'����Z��A�nW�
�*L���v}���_��������@�]wb�N�
o����Ⱦ�9�u'U�,�c	�9���Jĝ���{y0��\�p�LinH��?�m�#Mz`,��U��$"��Q���U*Ut7�M-���֪�
���
� D;���A��Lh:�	��|.�T��Q��\�Ї
\�vBW1�v�BƑ�GEN��M �]ra�h�Դ�ˆѝ3�ϘivO���7aҙ�{d
���k��P{O��FP�V�@B
�ɴ}Օ��A^���?uhhc��#����O�sۇe�
�F��+'�~~���Xȕ_��.q"�1� ���u�+
�<�:Dz��/u�7$�i�i��4�s�1p�
��v��u	�*8�'�z��P��Z��;����O'�>|0�cR�
:�
-p�SL���+�^Op�N��8�Y�
�:�Q������M�����:���`�� jZ�n�"�>6�Y���{�\$�j�P��|��z���‰G��J.m)�0�]�C���T5�1�I�<�P��p�A�yv�ZFW��0�xb���G�m7X۝54L4�u!^�'�h�Y�T�Bes<7l�����/fAl�����T{C��S��u��鞪��7cd_�m��uq�!Zv*��DaUx�e�Ѳk�R�]wP��\�f�CԚ���bgdZ�RU�8|����F�~#�� ��qa�5D
n(�P�n
ئP�~]�6��ǹ��V���˱(�
s��S��:���n'��� *���N�6��9��vUf ��:��rW՜ַM�N�����\E��c@����u�����⭩D���3�|Sv���ѹ���iܡe�Lr�^!���u*j=���Q��_��!6Ǟ�N�w�k����|��w_
�r?'E�Й�G�����H�yX�W�g��դB�
���0�d`'|l���D���I�u��uk�ȾF��	��UG�
��Te'��\�9��~�"^�=�W�����9cu��`6I8E��']R�5��t'E�0:��汇�����ӉuI'ʅ*@��J����wN��	��&�֋�N�5��k%����@�sB�՚�s�V�2�F���i����A�gs����該�l˺� ��:�+:���*,`xVPi%=�p�3�5�pv�p���U�Y�g�9NuA��`�^�{'��&��[��������;*b����p�u
�F�)
<'sJ��N��X�������=�!�:-yj��D�7B�N{����TZ^�mn�3)�:��HV՞о�-��)��5q���S���T��q��q��4Ҧ\ ��Z���pR]�J��(5��O�U.���f��3W��߆��.�G"���n~a���SP��GUfH	�AR߸XUh��e6��W�g�i+��k��G�g��0qfP
��9��Zkp�����:�A�9��'���"�ĝ���w
���u�:��,��L��j`��{���Ἰ�V}I�6j�^�tE���hPqh1�t��E"��S�a�ʙv�&U�Nd'<i�Iq�0���꿧��az&S�.Mm�P���(���3��p�S.�WW"��v����r��78v<��9p.~b������nT3D([�g�e�VT����l��.q#�}ϻ�T��n�X9/v�C9@S7ЯG.�_�;*q��VyF���v��6�2����Z�Ź�+ZA܄���(�����+`�n�aE9�諚�-A�2D�uL��V�Z J/#�4��7wSU�վV����͹G�6�����qЩ}#���C)�j���C�������گ�g���wAZ�T�B	*���Q�U��I�l�o�ư�Bc�Nx�OkIiVΝS�o�L�L��L�����t谱�D��u��]�VT�7\�@s�H��d֑�?���̄�w(�+/�W	���?T"�kR���̀�Hk!E2�K�M���wjPע�'1�
�.�ԭ������=���C�u�s�\/�[�.���*��S�4K���[�V�9�k�:&�O拝���]���k����^t"Ռ�̨��k\�?J��zZ4j��C�.T�ֵ�܈�uQ..�X�Vz(��Wc�4j�)G�r���S��_�{* |�L���۲�eK��O�4��SG<��M�xt��Ӄju�H��nB��Ëz*���]���)��*Q�S�9U�Y\�i���%�:J-򐠜)
[�ȗe����w�[���p"y�V�8����<S
��T�i7bz�Τ�5ۣ*�*�驅X�� xrs�2݆��›e�xX�0���\P�âc"5��b,u*v�8|�/���i
�.Z�<�T�M����`�	�X�[�=ӡ�$�e|W<>b�#�
,��e;���W�'wU�Y�>L凷ξX�V�0tE�s�
W^�Q����a9�*O@k)��c1����Vm:WI�&0���M��Ѫ�����k���a;�����.%��o�Q�_Z��ފѣ�!�c@�Y���w�4�\�*tY+
DBs\`�A��4Y�SD��զ�{���C�����D�Rz�p�
6DĻ���VQ���1��WU�;/�I`Е����T�l�L�a4��ٻ�u��QF����6`�x�Z4�xeΟ�d�$���R�N^��<��S�����d<C��ɯI��<���@E�*�*bn��F��#q:,�<�2��7�
�&SsK6sa��^Z�0��}=��C�P5��緾��78�e<��z�W�<�U�#���k�.��΢a��E6u�֗�ѷEܦ6�ngt�E�� (cK�t+�V�����V�pN��C���H�Q�g�*�� �����w�]��05���Q⾫ch�W4KL�8
���rr¤(��QQ�'PS��~�W?T�]�A)�u�\{!U�8uv�:�.?�3�~p���؋p��GE)��;�t�p�Z��`?�{� �ɷS�#&Qk�C�,�4���S��&20W�hm�#N����B�6=|��r6�]�atS(�_����������H�HX�..*��O@���j���xo)�f�\�6P���&���t�o�i��A�k�0�(2b4�H��X�B���mMO�7'��2��|&����s��=��5��(�5���NǢkh��g�*�F�x���^'o>N���04�R��
c=ε��eA˺
�M$if{n�P�@�ꋘZ����s�ַ�Lv��.��w�����\�D�̝J�ءW�̻6�jxvAnɂ�rGuE��r�
�AgP��&]
K%����<;�0QD�%>��0�Qs�[��U-��5*Ao`�U�%Ѫ-u(�Mv��L~��L�
�
��*�>�U�4nQ�>��4l�W5�ZeS'tK�?*�$���T����n��0��ee=�g�K���g��4L*�cAc�Z|��k��
[�G��m!�U5�6���&����ycr�\���4�ߢ�\)�*�#�YMm�&<SsZ����Dh�(�ڹ:��B�+9�O	��b�h&y-�OhD�&;i�"i�`����H�k�G�Mi�Mڡë��C���SZ�=�h�FJs�i����qvZ՜n/�����T4@_����\`b��ށpn2��#u
pkixzx�F̮|4����ZQ@R
��n?
=�0U�ې�d��wB�cFwDsOE��kU�H&>�OR��.u�<5���L��!�ouƍ��2O+L��s��a=��g3D_J�m�0�i.�d��_
�VB���ꡍ����A2�Bu��80 ��9���zS	��5\N[���h9�}*���
q�S*�i�I���>�(�n�;vT�����Wu���H�SZ#f�n�#�3��\ҋ�<��-�8\G�gr����}AQLˎ�c�\�Gܭ�qo�< &�wTʮ�oB�V�)�U?K4߇�c�i�Q�D���;��D"�!���-v2���/���q�
�%���X��+괲��u_�M�iq����x��5*XF��E?�U�2�s5;�$�;"0I9‡Di	��Si�h
��*�>&�
���N�4O�<�Q���l�~r��'8�jQqoeg�h���gQ�3�����M��LIT(8�%=�I����M�:tU(���R`í�p�3�G�Ǧp��`���'�z��]ShVt�x�L������(�s�:TP�#1��Ă���)��k����:��k��0�o�`�S�D�i��ev�����q
ܘG��
ݼ����.OTn�sT>��i�;�k����%��(}0��h�L�q��K������F�1�
�h���5�����sRs�ߙ�Ӫ�Q>�5�vLuz�1�,B-��~�O)��q h.(�Tp�Q��y��-�͗�iu��۽l2!EZ�h�x���;�<9����U�+�+j8�GDC�j�m�����
�YN�b�8�W�k�S��63�Mk�^@�^2��k'S7cE��b3
�:�a'�zz�����jm���^WW�(O�GfNP'�n�ܦUn��s�eQ��p<���*@�������T�#}�����W�?�p�:�h�=�{�o�uF��1�;.w�ߪnw�;���MH��6Z��\x ��+|�^�q�Xf}2�UtN�ʲ��4z^�즓�Y�\��S�}7^�cj4l5@��V6M���
"Z�cݬg��N�F�n�Z>�Z�'�鲤�n�S����M%[:jS�xM���h�d��Y��K��%�.r&�k�uÈkI3�Nm�k	ӪU}�IX(xj^����tH_0lA�8�.?��L��(�d��ir�ڢ����k|��_�4��	��ۏp��xql�G��r�E��4Qd�*�(���%r6U'�*ӗ+����,�mM�B
3ԮvA�W9�J��GA�J��uA�\Cs�8�Uuzw��uZm�/������T=�@�\�-�j��8�)�\�p��r����̦�(詺�a�߯��	̪
�ʃ�"�`�	��)�/�s����2uM�ʺ�q�w��!�B#��-y-=@(�!t����(/9�g#z�Wp��(�Cy��R�N�h��s:���=0��$��FQ��}��T}M�a`c��_Y�G��u�W�j��Mᜓ�7q�r�ɴ	��)�w����#~�D���*2���ʱ���o��gÌ�5R����QLg�\�V�e�yHt�	�'^�B��`�\�=��@���
y��ʦ�I}�FtO�L���pjz�RN{.4'u��M:�ގ�,u��ᆞ�SR��+��N|�?��r�2]�vW���7�xR�F�_�ލQ��r�{R�Jo�Қ�S�yj�BH���! ���_�݂����\�$���0~P��ҡ���{�oA��-V�@��|h
lꢋP��~�O�2����zޠ���?��^���{�L��v�����)!1AQaq��������� P@��?!'�	��d?=���#��T(�雄'�>p��56�m�F�/le�`%���\,y�������E��c���eW�k7l��D��/�-Pl{��
N�2%���N;�%L6��>hir�[��F� ���3���O�b�>G��=�ۮ��
.U.^^�F�c������ʰ7c�8����SW��d�o��ף�*xW���������f%��`���nA��s�
ʅ�*�Io����u�Ɂ�s��?��ڈ
��K.fބY�k�K���7r�o_G��
�J���� �h�3�#��hfۮ��c*�Җ��ʦPŶ���%R��'y+
��	�/�ˬ�a~#c�~�.����k�bESmL��ԭ�nS>sj;T--��_�ȊB��h-+�TE���B�x�\jƲ/��j���^����5�`�W׸J�
�2ͽP�+{�D��y�J@����?X!|�������2���&02ҙ��$ࣞ	<�.8����M���X�UQ�j/�b���߈�i7N�Sy�LT�������*�2pU�S�;��Z�-+%��.��e��-Ը/:���Us(k);�Zh_���'��h�0�'7�8��2��3�RC�:
noBZœ����a�i��U����@]�b�ܮp�����$�ET���		a��<)J�\�%#�+�wA��Z��TٯB��c`O�o��b*{~��"��M�x���U�W2�V���y�0�qitfP�����3�Z��L}Ӊ���������-x��� ��UNӣ��F�@�j�����3F2�G3=E����
�
F�� �K�߹���y�~��;!�!�X��UF�2�(f�3%P�Z�V�v�v��}.�G�}풌��ɪ�SrÇN˿P��OT�LN��K� ��Ra~e�S[��Q� �꠾���	�s4�ʬ��,�+��J7q~���5�'
Fn��V�|�+�M}��*g9U}@¦S6VD���"�����,�V]�[�#�L�M�"A��9E��f�$�4���6��ݕ�@Щ�&O��p-C�����ӎq�ys�G-1��K�]2�7�1�xLL%�������k������������i!MM�ya��5R�7�_3��[}�t㰫n.m�L�}��,4�UT���+��
����?�P���a��g�(3
e�%��b��rR��0lmC�U�o���H��R�7E9����]@��Gf�M�^�g:�9i�n�v�@X��߸��m��伿�<�Pd�5�V�6�F�l�mvV���b�)g�S2kz��<�A}:j�y8ϣ���Kh튰X��R�vۛ�a��3,TWq���3,�E�M��z�7�j�������2t��@�(��"�b�0~�|{�ׇG�t��p��`+���������А���8R�O\�5����"��U��c��a�#1���j��m��7���@�L +D� ���;�8���c�3�6�uU�l����/���P�fe��sl� rW�p���敺��:��(M����Ei��qBX��l�ys�;�O0`+���e�4Z�	%����s�e���C(�B�+U�S>s�����i��63hz�FQO�l�k��D�ƞ.��e�������e��ij`�x�cZ�g�+L0�s��y\����&���Y���G�R�s�8D��ye��z*�y�
�	�a�����CP#��q�t�c��w2���E�3+lP�x���#��x����$Xѫ_�E$�Y3�-�Tͦ`2�"�	���(���s~M�\��`�bن��W���6��;��]E�f�Pv�^V3(�r��<��O�;�偨�MV�;�$g��<!�=H9��H��\��MĻbX�9�Nfk;'
��o�2�$Ʒ���_.a
1��u�� �]���|�*�*z����¾a�yr�:}e?��6߹�MȨ�Y���G���ұKg��h�J+J����6��8�Q����J�h#M��P�5F��/I���z����W'_F*y�0#�pf+�?(̛)�	D�����0�ܿ�	��f����/
����WQO�=�����^��m����F��&4������0X��uR�-渌z�|�0jKe�W��S0�w�e56%@h(�ى��w�1	�k�P�l�U��,G�L��KV�����4�bP���H��,�,YS���Yu��6HKU���d2�����m#�@�/�����f���l`��2c���X��(��E6GP��\rf��
����Ը�l�[�*�Piw��u?h�k�T�t�2�J-��k�f��'�!b��-�8�>m�$�q
	UN�b��S�KI��D����������ak=�ժˋ��������h��Tΰ`�Y��QXPy^��+b���E��R�_�#���������Љ]����
h)>#֡�WaKH"�򯇨��6q� ��3R!a�=�Wu�ĸ1;-B�Z�>�?��W���j�����K���t�
F�F&�].���������UR��!^���2�px���m9�<�!����a�$��<�|DW�g�����#��E��۵{����TԥA$ѷ�hN��7-���������y�)�v����Ȳ_:��P�!L�?���L�1�B�\y��?�(�E{C<�th��
���aɹlSj��b0ݸ��(�2!�S"��)��Rx��z�!%��r��.[cQ���_�b�Hf[$HҢ+Nc�C� �,�_���bL�������u� K$j�h7�C��8K�Y���G�0ΰԫ�Q#��x��L̛̩I�_�N�q�\7��Uע�4��~��NI�g��V6���g)�t�Jq��jQ�Z�p�X����`�cTɂ
�/Q��X�����6��@��El�TpRn�%^���_��=��a������Gܷ(`��ЃI��pؽ�1��z@��`[	v�eg��;Ã,/�Ӄ�@�JG��"�S?�et'EfZy9��`#�t����b�KW>jp��c�īG"��L�=G#�m���2} |��9q.9�д����2݅ȀLP)��g�A2��і�fd���l2�4%�C��:̤����Y�Ǩ�C4\��~1��2��5F�
�Ș	��&-�'j"xB���ݒڱ��t~�?3y�
uX1	�/y�fs��>X��l�I^@��U5��v�	6AƸ�\Ȼ��-��`��-�:X;7�MKQ^R����;�58U-0�4u��	�c���PSS0^UMǴ��Wb��+��T} dž�5��T�%��E��n`XŇ���W��1�Բ��Ć��Rv~�E�NUùĶ�jSAlZ����f�;̽葞'F��F�!��i(�WZ�j����F�R���%].[C���k�cm����J��颗VS%���Ul![�(��}(�T%BIA�q�ӣ��6��ΦfF���f�9LV�6���G��V��u.ҹ�&PTB��r�r�
�S���	`{�!(�2�{z�w�Yh��K��>�Lf�$�/L-a�����?IЁ�"J:�E��n�dZ�� ��6�����]ʿ�WD�6�(R�5�`:{<���Sd�^#Ue+%����
^�#��r��
��ZU��4:����L�c)g��m�MMU�t�9��j�,y5����R�QYW+c�V�~b�=�]��D�
�[�˒0]���n��uP�j�;��K��Ϊ�����!�V=�!�7
u\���f�	fIRw���Ӈ1�SCQ��db`��3���Gڂ����>�Ic�D��2g���������d�p�e�f�QQV|�*�h��S��0j-֯^��U�=˶k�h�S����C?r,��Rw%bljkT�N̯P�bhP�F�z�H�
�1�a��6_��
n'�C���
.-��B���%��`�G�w˼�
�C�h��?TʨVҊS
�D���v�5�[�\N�8���ACnȢ\	�����/�^q81��^�m�l�W���`Rf�������K]\ݝ�t�E�l4��ky��%vM�	�){���%0�!��\~��LW�Y3R�Cd|nZ�E�W�۲��E�30�L�����xn�	�l�;&��ǃ7�TS�&r�d�; �C�4�����WDlT���,%��gQ���;ڷ��9"Qc�E�t��i�XXH@[b�E7�0&����ٛ�%5x`bp�`|��)2
��_eI���B���m�}�8D�[���玳A�|�-2�:"��H;��V���T`*��U4jZ���i��-'���V���t�٘m�a�n���C��7����W0���>������9AV�)y.�eo�i�	�T���������1��Ÿ$p��z?�]��KE�#���8��2��!�Eqr�v�;���G=�'Rٓ(N���`{�%,�u�ਭ�עed�Gq��Բ�li���ӫ�:M�ϱ�Tp��];`�or�)g�G�>
��l�	9f��������*TVwr�[/����PH���3�V�#6�G�D�]�N�ꡅ�_�,�K��	Q7��Sq`& ����"�j�Ǣ2��u�V�IwܯE4��Ӧώ�BIK��ip_s4�z7��,^?+gԱ*'3N��;ND�a]��`L~	G��R���y7�K��K��yy��D01�CDU7d��ҝ��+;��=ќ�Ng=O�rQ�����O|�?X�+����鸧�~��׭��J�У�|H5�-ZD�+���E�r���±
WVw�"ާj2�Ў�h1��r—��^M�O(xG�J�+��,y�?'��D�g�q��
�_8��'�n�������_�5��`���%bls,�/V�(�ĨXLS}ވ���;�%���4�|��s��7���e̪{�&�x�"1ǎ���W��w\pBx��*��_�Yr�-ߩU�3/q
"�Yp>�P�����A�En��*�2l��S/ƥ��Ur���~f"70Ij��K�n�*��Vsr��k��dh
�n��Y���#� #|����;sri�%4=?�
ή�M����fRL8��`�1��)����V��*ȏ��@�E
I��	!�8~"/��������~٠:D)�]��ҳ1
��2(HpprBê���?(+�,�p�S.0���Q��<͋`��MF���#|�U<��[�C
�{Q���u��J���jǙdc���K'���r�̩I�߈�W��p5� )?����1•��);��l�Wk�Js��<�Ϥn�I�%��S�(�Z��~MGWë�L��*V<��"����XA4?k/���Ļ��#rk���p�T���
�[�!�p�{����J�{q�92�ǩzvJy�ٖ�ngOpV)�︽��S��m�{��s��Oc)�P�%2�WGD
g{2s��c�)j��ea���M��K(��U�k,�,�J���j�tn�1�A���`*/�M�1���7(|���y�9\v=�u�A�?�
�K����J�(�et�������k�`�`2X����27�R��C��[L��#r�+TF�e5�2���n&���JW�َ�%��\p�[�m��G�q����XF�W'��F0�6b���e/XfJ��G�
��F$��1�m��f{KZ�ˡu��w���<�V�N?@":�����e�	P䲰.�X���ˢv���㘥����Ľ��5�-��J�
�Vl��0&i�.%i���Vtl��\!~��p��N�*�%���,����p~:�[�Ԍ�x��sR>á����\�0�m
	toa�+C�����7��2�yYK�/��i���~�ue�W��_�Z�F��A'����,:��v���QM��1�4u/b?�
e"J�%�^�	�H��M��(��RG����k�/����'(���s�53�0A�S��Q��x��ԡrBh5�0ON߇�S��w��y���4����/�(
���Y(m��.������D
���Fp�D4�o/�->泟ڕN�u&--�_�|ɕ��1S���ID��Ԉٵ,1Q}�%"�ʽ)�v8Y�
�)�p�@F��*q�8�w��)?_zt8�����9�"JX�֓{���6�����׈�{�b�#��i	KbTKaH�9�oU���0;s��xZ����F+�K��.��=�	FW_���(ph�q-
o�K�`��>��i�]!�%f 'ZY��NΖ�����B�[��,Z�7B_�-R*�^���Y��"�m� s�tS��m��<��<��<������<��<�<<��! 1A0Qa@��?�:�"L���'\�p��gB�w0:�8\�z���ӈ$�~�w�9�$s�=N���}�6β,��d�@��z���~���y8;���_���Ȳ9z���k�����^#��o�`�Po���>�z�}�2�v�.��9f=y��@�aޮ�^s��!�m���<3c�8:��a�#���|���-m��/���φ$0��^���l���e�Zx6O�տ.��M�0�K'؄�[oVl�1�'�;��fG��}�l��-����*݅��K.�oV�Ѕ���uh_Ĭ6�\?��!1AQ aq@��?�rL!a��$q���m�l�ɒ,�$�����d�/�#A��:��g���l��:�Ϳ�,��H,�������fO��>�%��v��~�?�Ӧ7����m���g��u����,e�a'I2�P��`!�w�����o�68n�
�����%�`_%��V��.�ޭc�8ۭ��Z��Mx�o%;���`8έί�c-��Kz��Q36�\�e����W�m���^�p:�BM�=�y�![Շ�r�out�ܐ�ݼ���=���'�v;���j���LvCcsc�a	{�A�;�K/��׹ra���z!%%�:9g�����[��ٷ`���l�:���/�L9%ݒ���O�g�^�O����)!1AQaq����� ����0@��?�PQ��(��ȿ97i�]a�J>b&��h�'����a,����[#��0e ��xXW��o�B5��g0���.���:���	�X�0o'p��!t,TO����tdC�Ui�~�~?��9�2q�H�Һgy@Ub��g5Ub2Q,@���k�D��`��="j�$V'�I�_E�ch��l�����*�=���5��P���X���t�mɈ	�$q%�|�9РF�`߈w���f�zrN����U��4�	J����l�.��'��i�O�qܹ8\!���	�f��.m߄C�v�j�$@O_X.�8�M����9Io3�cС�m��ÿr���1�,��l��*VDAX�V��l����ËP�opz�]�n�?��猼�`����+~ru	�
�p��p 7�f�&�ᨌs 	�	C�,���eh����r���KKq"�����;�Bw�:戈��bK�� 3sy�f,(�:<duVQ�YeO6G��x0�|%b�i��T�f����ç���Ʒ4mٛC�?笷�âp�)�4��7��(��&��;�h��M�\1�c}�d:����I�.)z��(�@Z8��8�#�F&4�51�6��;D8�7N1�Y�zف��X3-9�14!��w�ȯ#�EViQߦ��0F���Ȃ�B��|��3�x�H&]x&<ተ���&�!Su�A�E�ˏᠳ�Z������8*�RS���A�:ɻ�B�Į�\�n[];N��I)�N���xC��g���_mC�à �gp��C�Q�����%���\��������-Bc
�	����Tv�`��5C]�6����8d�\�)ق,�D�V�X��B]��jX����G�AN��H!�dAB�F�U`�3{M��bXV��%�����ȢŃD�&�k&\��%,>#�c���DC8�
���ǂ`&hQI�nh����{�'hT聥1[�o�p�W��% FH�V�+ M�3_S��8�TGU����ԫ��b�Є�q��G�+��,����!��Y�j����R�9�Z�/|}e�(D�u�X�d���~�>p9…"�H��XZ�n�#��	5϶�"{�gC]�� (������өg-I �}��r���ٵ'����_�8��p&1h��J���@�$8ǎ5c�,A)R%�S��2	�I�1��.Gy'Z�u�a�f��x� %\��ڀ�X����eL��9�q�!
73���2�&t�E�B��U$l�?��B�
�7CQ 5,>L�NRhI0��p�n�$�@���Ɉ0�x�8�J���<$�<��h���r'f?���MA�Λ���H����d�B�<�R��>+���� ���s‘�m>/�n��B�����ࡷ����� IW��ڄt>s@�O$D�o���)6���B���T�#�
RE�
�$���	�a�LrHD�^
�[�xX�9S�,'`� im�����is�=����㌉p<�Ʒ�P@����s�_�3�%��)��a1Ü�S�Q2d�7���"w�]>)��<1��b|���BI�!��Π(u\��3�W$b_M��L�9!@8K*�׌���n���]T�_������ib�������&)78���p�i�����'#����9��If�u9)ĕ�<��~D�s�\�"z��/fm(�9�Vʐ~~�)�o�<�U)��"�������2a!Z3�s�Y�"<s�L_�	��]d&�	��96�`/[]aaJ�A3^�qY
!i��Ce���BZ29�K���tʂ�z��2�5������F6��ـ�BJq��Ȓ=�Q���L���� �H�A1��1!�P���/�!+����de�:�X>�#� �N�¢<{j$�m����vy��E�_{{�4�Xp��W���/�O8�Vj!.�I�ɲV�7Q���"�»�P��&a�_Xm��Д�1n�a�k��T#��!'����8�#e,�8��n�M��Ń���R���ӜF7v��c#@AE}E�RCx�U��	�K.���FwH��$�D<�a ���Y|���E4'��W�	��TB	�M�����G�dsT�����3�/Xǖ��~0
��c�����ai�����Q�R#%9�Y��D�������~��F��o�@L` ��x+JP�jS<�r���ُ��HpJ�"*�d]�V9�z��4��A��o��&����(�(h���tW)@,ji���D���`2wW��r�w�{��$����|4��b���F˭;ƴ���@=��Q5:kc�񲇆��w��.��>c8/�H�������a�fH��7�3���>�n���.�$�󖕒 ���z±EZ$���pI	J�s>���*�������a�����#"�����l��,���A�\��'��K��"�`I��ޣ�9��4{M8��*���jH5+׼~}&�b֦5��=�&ᆞq2�"y`,uO�i&��e�%T��ߌZ�$5��!jҞU�*2IZ��R�D�joX"V���2 1�	x�&gEF
8j�n??9p��&���h"��4�!��m1glIܗ������4+�7�ےG�ŋ�ʙ��qD	�zߌ[�V�)�1��>#�u���lwQ�R$�y5��q(P���uBD�"@�p^�"uU)񂖣����CY.�@�㪦)��~u�	<'b�����rpGz�>�B
���D�����[ I�U��!L�e���l�'#��X�z8�\s�0Y+��o���ڔ�E�l�t�_t�):ث��Z�j'�� b'e�3x�TD//���`	S&�"2�ZC]7Z��A?�E�6�?8i�t;�u�§T�xv���I>����W[ĸ�R�,9[p���rjKa@�!3})�$�lg�t"	�~r[���C^�9"w
�b�[�:��X�[E�ۀ�칐ׯ����T!�=FD��>k����XD��D����ǡ�Kr�<�F�X�7�~��jIw^$8�����8*��<{Y�1ŗsOC��Xf7��o���T_(8�c�LF�Ɋ�tu�����UY�]<��	3��� &��HցO�`y�� \�x�)	1)�X�~���E^x���\a���/�ȟ1"i��k%�Q2�گ���	DS0s�`����G�:(��=Y�����nK�"b�$LK���$��EG)(p�q4��Gn@iwC^���T��M��EcX�AP�O�h���&J�щy�p���9���&�EZC	D}�"g��D����&���o@�x��B ���y/$�mO���Y��T��q�����Fp�'/����Ď�Ӈώ�SJBXZ�7�0�"���xm���	|h~r�6�
T#���c��%�KYV9J�
x0RCJ&D-d���&��D�M:L��aC�Z�e�`<�x�M�ؠ
OX�.}\'ш�;���ʣ�� �Ef$�����*D���n%5h1	��޲" EI�~C'���J�Į1�*��F�RC�"X�C+�Q� �]$�N��a$�I�������:ƈ���D�^d":^c�p0;["u�J��K� ��HPm�\l5�%R����� �Gw��X��`
kˆ�HADa
���t�Z@�_:�<F	�aO�J�."���@�1�����4 �8����V����,o�5��s�ECJ4���_�D�}d�,���}�0|m�JfQ*|������Dq�="E�D�2�!u2��pC���I'��,2@4y�Q�ب�y���9�
|�bBJ,����H���0	p�A��h�/�t�~Q����rR��e%�
!�	��쏈qA^eJ��K�]AO�	(��������d���`y$�>�g}�+lk{��耐.!�BD��,�&�`9B��
(�!bq�OT��!#��Ȇz$�;�`�����`X:�A��h�X�6č�'�n�%���#��l��"�aSa�<�P$��k��.6g��D*��-����2D�����B�R��Oq�(^����(���ԯ@��~�]PL���D�[�&z%����o#!tW�`�!O�w�ɁD")�i�J�.�`�,�I�
]
��Ɉj��/\���PT�X�O<�
KT�Q�	1J��z�d���ū��%�d��5�2��*�o�T�R�р�D���
�`��1ZvÒ}��=8I6tch�h�Fx��0��l֏W󼞤@�)��� �H!�
��0�(�8rm�a+X�7�l����^�d��Gl�� ��.$�r��a�TQ�k�"��`�~�X�A㘆q�!����@�cLVG��,�;lLJ���BN �ŒUw�]b]n���r��$Қ�*v��$�S]���v�8�]�Ƭ�׼;m�3y��&��	�C�.x���$!�5޺��ejy��tY2-"'��7���؟YT��(s��q�2��P�P\ǜFd�u�5���)`t8[�%2����ѧs�mb"<�� �Fk)e�cF<�A�O��c��K`�>�R&W�r��D�1c?��D0߉���h'�f# ��MxS$8�۰$��h��B�Ș�Ј�\�qR��D*�^ Š���(�a%�Ē�����xT��bQÔ�)��!�'�2�ݑ{֧|iW���˒���[�8$��&��>��A���>��S�8�����U�y��J1!`�kl�D"M`���Jq1�`���p�:�6�=� ���9(���t�s �PPK7��AP@&��"�Vh�)�9S�&T_��R��*��-����
�䧼
P�!)�;j2�r�c�`t�Wj�!�����x�p4���I/�r}oB�TG�k�e؂z�\�2m�a��*�sWd�/K�jS�8jYi���J�@7q
� ��~�+��r�xKK[�}�*!A5�5e�W�K�HI/��/j�_���ID)��Z�D��l_���H3_Q�6���:��aG����2��a��-�KZ��1�$�⁸7����K�9kB)�$}��o,�����"���h�?f%��8��q���#���D�?���-��ҠI=��6�%�eN&�XnfC����IH����P'|��1� ���4���J0�9�i���I�T l����0��������sIid$W~+
�%Q638�GU�jJ�|dI�r�]�XU�@���@�Mw�	�R-0�8����W���X���;�Kn*5ؗϿ�c-�����#��H�~�'!4�ϯ��d�:���m�3'pmy 8$J�t/�PV`!�QQ�!� $��rg0O��WI��R�̳q�2�����.��M�8T��I����u 9#�!� :�te�Z���p��*H+��f.������A`�B?)�M$E�mu��Ѓ L�3&3�Ȯ�~���,�L��(. ��l����a�BK ���[+Ƣre���W8��(�<��1D�H=�EZ��֧PH4�*�֘�(��G�s��Hӻq
ր��qW�T�Y(�-"]N��5��ȩ����(���_�Ҕ�]�Btb�3-��"�-��H���(�w<�d��@(+;Xޗ�S��ϼ�2���a��`���:�YsT���C>�?�==QU��]�c�Pƪ�lҀY��1e�K
S<�x�e���"�#�Vn�p9%Q;�2���9HY��%�� 嘀�&uE(.@�MD��
0k�r���O}'�`p�+��΃?I0I���`�3!b���1,�P1=o�u3 5m?�2	]��3g&<�k��!0P��]��?�3�`����x�-���#��b�		C�/P^,\!D�%�5W�0n��.	��}���}����sS{r>��E�HHz�� ��R�e_n4�@��I� f$�b&�J���"�H�-.��X;$�g�l&kX`�Ҋ^.hf|xǔ�����p65D2V�� �+��CN/B����	���ȩk`D�2�
�z+���������	��Nn��Xs�7�&=_�.�eJ>5��Z$��°�i��\䦄���~���Ɉ��tYx�_UXu�� 6}_� �s��+S.�><�)�Z�^�0���,�K�t��l���y�\�,�3S�W;���s.n�>��g O
�)(�"6�q��F(����d
L�Pa�4�Gg��i�hB�ǜ
��L
B��fA�k�yք��:�q�%2M�gs���
.�J�3Y�0'��]cp�ޝ��Ȯ"[|�#E)Y�׬�H!��-�P)6
���� .L��#�g�rխ���)�0B(���H�D��a���u��zdXpP����YD�֬��5��h]>�>�I��FM߶�y:�
E3��d��x�B��ywD���ːUw��"�#�l�՛�p
8�`͠MQ)�J��(;�,ɉ՟���'����H7�p3�c1����(B�
e
y�	��������NJ#O�PM��������	3}oy�	�q��b".��#�(���?C2�`�yƤ&��#���͢�X��$��Q���c��E�,�\J�$���O?FH��E�>r;*Um-V�G!����\�)�|��bU�Ŭ�J��FP�Z,��UYxaD��h"2��PY�s�@�=:v�&�Ȕ�F��"%*�]/�݄�<#o���,����A#�q�**�}��N1'�$�g<k&ޅ(����0!��!���H)��%�7��.��`o�NL��iƝ�̖ye�8��@�O����o�y"St��B(T�l�������/?�v�㚤;'��S6����!M��f	�  ��X�UY�z�멻�dĀK�����Lz�0t����3�&������F�������Ce��w�F���.u�D��a�1�O:A�*#���;�K�5�b���C�e&��
�kx��7A!z��z;�I�y��d��ckf�*���J��q���(�M�;��%@�"ٿF2(t� A���p�z#�GTH�b8���,&F��b�c�Um�4��:�V�/������I4��)�[T3���#D&�A��:�
ٙ�e��3� �1O��Q�Z�a~�8�ݵ=`� ��#�N t�}��zA�5��+�B�|�QR�
�ox��FK���x��œr޿&Q!��*7�`�"�td����C�m��z�eZ�0�Ѕ�7=�ՆB��_�9���� �sP���XAe>w�q(sb�{��`&��o��h��N��ձ����!R ��aύk�]�..�T&���i9
~\,eh��A ��X���+bDj����$0���~1'(>�@��"��@��a%R��
��:P��u��f��#�O�0�A\��0�d�C����Ч���!@x����+��Tg�}�B�rht������|e�H�I�0iBH�d�K�����1��>��\Bw7Ϫ��>�������81Pld#T���%��x\S�W�,f�lvc&�¡�����֌�J9\�\`�M!�u��w���w2�LE�|Ѽ,v�"��x�#�(���$�2h2�'�|E0���	c�ꝇu�hm�����6���u��Yl���<���3��PSe6�Z�;€{�a���p�%�W��ߜ8Զ�-x+�`�I�>/ ��o���%hb����*'�g��=�K��+�p�����}d��B�Bw��O(��p�8@�K*��Y��^'nqmdإ�h�M(V�I
Ĥ��PSSg>o) yJ��7ᒂH�M��Ӌ�iM��q���E�w��
�ߣ��(��o�3����9X�*����L*�3ٸ�q\20�UꏌSUb �����45�P��EE͵�g���(0p�w�'<&�2�0�5��g��Y����G�B-IL�B~�JĔ�e}I��bF
�?�gZ$F��!nk Ҫ��Mt6��C���d���\4�E��p�/bf����0�V4K�8YH�ON^�0�H�$�'��3�K�H妲;�g�i*���F O-O�9��T�b�Ʒ�@��Ft��)��{����T�!]�����0�j�r�mA�]&q`@n;|�`�آ��L0LL]_���*��]�|qY�x���>ҿځM�G�Z��X�!�_�
$�.�ģL��4ؤH'��!�J7��V@ERq�����%*&*	}�.�W���	�#���{�@�āE��?8�&Htj"�k
���a��������o��D7/s��hr��D��{�]�m��X�
$������66�Q>?.�t_0��
:��L�v�H�u,�w�bh��ک�8���<-�d�,aH�&���2D%�6��F�$*q�q�S��>��	?F@5�Ɣ��V��:��M"<�1;vF�89Y�
��z�ǵfL� [��J�R��a1�
�5{�xFa���8�@�6�.Rl��� 3$��"�Y��\��'dv��2e*]^�g�P!7�nq�!������h�087W�c���-&�k�T��Z��؆hڱ��"��K�l��@$��"p�"(Ț�[���P��"�J��͚@=׾�)9(k]��PX�'G�>�Ԛg�=��Q ,X���b1&~�BH��<��P����Uj��q�	�"e��p�I� n!�J$L	�En��@���y��t�_$e��5�x�L�A3Z��˰(o@�!
p	��'��Q ["X���L�(�1�xõRw�Y(V���y�9+��&s�<���V�[<c� B ��2j��$P*$��ΰ?�BnDN��,E��KzX�L%��x�A�ʂ<��`'rY:������{z� hd�g��qC�X�c
$/9A�Y�:D0z�A�a-nj�&����&���J�H	9�\<�ryB�����������U�����@e�J:��		�F·�&��.���r��X��$Dhq=�u�'B�'*��D����p!��d�YDd�S!�r(F�;y߼$]�׌P��{�#�S%�؋-����BI]N��h��
���� vA�_H�X|Yͺ���~0�EI6������Cl�k&%h�`�I�c%6N�b$D0/e�6H���o8�j*K�NmA����g0�0���8�H2�������DoM6�"���Ŷ7�9o�Xq����%����L�F�W$�4��6z�Ӽ�*w�xRTA)l�����Nn+�(F�:���_��+D��7X���k�*�)|�f�H%���F�vT��Dk'%P���Ab"I���|�D�L�Ʒ�.��3���t*�E�1:�k����3��4:�p��YOE�0�0N�c���H@���˃+2y���2#R�c](0!x^��"�Y�Z]��C�)n��d�)fW���<�Q��G�.��@X��t��Y�D�Lr��p��L�f���ɚ���vc2h,���\)�}Kv7��\��9��:��e�L��wx����z��z`��'�x
a�iԮ^9`8�n���3x>��BS�H#+�rOh����@!����ih�NDy��q5��g�(�VG�*���
����1��Gu��������X12ґ�?l�,b��� �B����F7�M<�q�!b�k �&�~rfRe�P��&O�ɳ-Y��1�o"�*����<8(T�p��AR�7��2�.����H�k�
0�2��_2
��|~�����6�G���d-iœ��A~��džYɔ\��(:���;���p�&�1���&�ڀ��$* [���ĚW(-7=H�
���?���mPfx��iS�<��(���2Xo%s.��aR����@�A��Ԛ#�<�kuYd�K?X="t�Hz�XJ���e
s����}�e���Bk�ps(�RŠ?Q�]��N]!J,Yv'��y�� ����s�D�x�,��J�A^�aS>�c��YNeӑN�%g�a��K+���!�u��@�^�NDAd����@7w<"�#����y�SߎrUF��Ṋ�R���-��"�A���qbU�"R�k�o�m1��8,gA7�dQ[VHmOY	FA,����D�d�,�옷�a�L.�l9��'hEǐ�u�0�P
^�P���M��Ʋ�0
��j����A*�xH����'�]��L�W�O��Ϭ�(�ZO���BK�b"<��Nϳ�=(q'��9�!K"1�����X��+�I�����F��.�� �I��s8	J,�iCTr�|b��H�78�"mj��1J12�|j1p	�	:�"�8���W%9�� �8��)��M�&̱�k��
�lG�p���8"ƙq�E�$����_<}�}%B7�$+@�����&ښ���U�O�p1-���b%U$���(�{5E�W3����%�Eu�2Fq���{�Y���	4�ȶ`|�����K2�^�����?BN�b�h� WC�„�B0L�{�i��c1��iy�Y�?�oyB@�u!.g�:[�tNA?ؓa���f�^^3v��������S�Ʋta�$�����̡��.������+^=u�"��XLo#"��ڍ(��~2�1���D~e���h%�2�(��]��p�cK8�����8�&�J����x�pc�EM���%�Bk�e��Es���_�X���|�e�"��u5�e�"�2j��H܆H�]��"*ɀ�\x��eD+'��d��g&���D����AP����L
nw��4Dn
4$�����:�G��>e�
G8�Ɖ^���R��(��U("�D���d ������@If��x��E���[�q��}�c����>��r}�c䨡@E�i��?��q������3���?��widgetkit/Partigiani_8-2f24ddfd5a8c2ac382e90c9d32e085fd.jpg000064400000045751152177723720016410 0ustar00���JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((����"�������7��랗�>��Z�5^�?7!�Ĺ(!���"툛3�e�E���#6�6���T%��i�&kP1�J=�F�8#.D��ӗ����^z����E�����(�5ymIo]X@8�̑v����s�5�9dKhfTd�n;qMs
�_Tdv�ꎗ9��{ǡ.�&GӔCӁ�j��P���:�W��O��R�;���/pcz�t)c�]OG��u0wY�����A�m'��z��'*B㶋V[YX�Xh��Kd?5/a�d�G��)#"��A:��nv��x��ݝTq��-VsG���R��4��րui����zj��l⃵v4�bnm6K�(,��4�
�c���_�x�5�ܳ���ya�=\͘�#եl��]5�E�5�p�D#�L�`�(=��V�!gW5mRk1dZ`���f���M2�<1��|��ӫzN�Y�F,+/
A�N�?��&U�9n�#��Vr�
�'?!
�i�X.��K<f���r\�FQ�O�=�Cx��<�5lש]��3Eh��n|@I[`�������I��>[����5��5��f.�"˶�}��I��8�y�{,�R=���A�I�ڨ�Y8���nsP�2s���Wී�,b�"Z8‰qJɼ�2yR�(�u@�ډ��E�3�y-<U� �_#�j�D
p�`���OZVq59�z:6�K�
�J} u|G��ʕ�����4�9A០��5��:*Q������������*���n�	��N#�`�1 B$�`G,4Y�D����AԴ9�˸��i'a��gg��9Nx��[�+r�oCS�X�؄�Q�	�
��_ɠ:�����4:���R�[�bw{QU%lЍY	[���<�ʚ��#J�^/��1��)��7oUE�L�'�1Q�DL^�Ġ@�LJ���G4TF�ܽ��jVR��/d��S�>-|�`(��X``���Q},�Co����Ț�M�$"\E'lCK�-�Ja�9��9�/;�EfVP��J�F�2F�[9a���!1�
�Y%P!C0��\F�9oM�qh]UO���u3���ݨȠ����\�N������ɔ�6�"��s�!(�&l�]�&�:g�z�,Y�a�L_[��C����~���%X���hga���X�%���Ե�K+1݉L�5,���a��\��z*�W�c]���1v1C�5��eǜ,���CC��*9y:���o*sS��-{����	�[ 2��@l��,`�����
�=�L�g}��@��<�
����+!"123A #4$BD��?��p�e52T���u8FX����F_�c�����~\��ˑn��~�v���x��O�tg��~<��[��Ť[y�����t��,���
ƙ�#�5e~,���^�_�#�>�O�aצa�OO�@�؛�7�<��ݛ��.��o��������ŀ@'�~X@f��F�����d�� �f��L�7a��w驩�� �P�&^t�'ϫ�%�]U�nK��l�=��+�@b������+�d��G�Q�S�[���}����ů$
�~|O�`��0zjjk�[=DX��z��m��ű�cj+Z�����5W0z�Wm�+So�1��!�%H
��2�نBݡ�3*ƣ+����.S�Դ���_����}����Ϊ�,[�����S��bڍ�cY�vf�&ŕ�)���>��]u(	/f%L�L�f�����K-�?=0��f���a����OwZ5Y�|d�ÄS�^��ϛ�:��*�a�{E�ݹ���
�0�:c�5��ۯ~�#/)���/)�)A�Q��&y�Dˬm��f���Q��\��š�����c��L�!rS,�{�YZS��݁g
�2H��W��fc�ӊ�~����I�mMmU��ӏx������g�^���M�[b�M�r;؃PB��h��m�����	g�wM2��ΥH�����{X��8��کAe����f}3��b�\��H[V��eq��n2��t�;�Y��J�<���p� J3�s�
`��9V$n��L�
C�En>�%/]r[�V=9Z�`1��E�s~E
.L�̪�O�kj��+ʭ�02��NWQ����ut��6�_/e<����ʘ+|��j�?��[��&bd5DV�4YNI��r4�jբ��v��%/	oVZ�d%N^ͧo���ٹ=ٸ����I�j��=�uK{��rm#2��0G�7�m�O��ِ�������� �A�=����_��0�@�����F*W���=�b�`��Ջm{,��
,�����gnW�2]����� {QK�N0#-����^Xqk�n%�M�-c*N��bی��2�:����=)̴-���s��M[q��ŭlQeV��=�xhN��/P��M�i >G��nJ1�Y��lƱuKq����#R��28�Ӓ����?��K���,�|��S�e�i�V�^I�E����(��z~��G�e�PZI鯫o�{��V�I�x��?���o�y�̲9�mKOf��t��b�bq@��&��<�s�42�'�0U��Zfag�UJ����t{����� �ٷ’`2���wnh^AZ���3r22�ƾ�������Ǯ�P��6�*'#���x�1���`�n����Xa�{�ך-�Vwnާ��7�S�*_P�2G�v�R�Y�C4L�=?D�d7�N�峹K����zS�]�6��٢���1��j-�J¦�}�-��u�h����|���~L��8�egwq͆+y$�	`<��h�����A9x-�~�E:�d5��m�w\?SnW��0�k����oB�s��0{f�r��~��M���׀�".���<��b��a�Zl�Օ�+��k��W�U�؍���*�J3�ޕ�u��������i�j	H݂��'qL��a>=�0�����^����`��rgRǯ�QĈb�|��c�W;q�A�^yC����J�����jr�6����'����ɋBwi9x��ԣ��".�&Vv+�D0����4�FW�x��,�_���T,�����Mo�	���k]��h���B����S�zVe����le\ʩ�B�x[�&���ǘϣ�r�[�0�Rb�Dy��lj+�ӻ{ڜ��񬵨��=&�6t�x�"�8Xހrfë��V*D���N�d��^%����7�s躇QSP�����(���epY��|�)+ʵ1oJ����=��L\�1�uiOVз�٫��-p�„
|ZY��Pzt�Ҝ;�Rx�Q�N�'�k��nn
��c"��"1��ד�
\+a�~C�4��X�zks���?f`��k�Xݺ�0g�^�=�����?>��A�]�	g�U�j�g�Ax|����.UD�e��#[e��Ƅ�X���;+e�R���T��u�c�>�%|����ĭ
����T�f�8��Ts,�~��>;ZA�Vk-`�@�&A�>i^w?ߌO+k$֬���a������B�Z��۱η��>����Ws�uN�� gA͝x
9+�����N�m*T��|�oqO��j/�r�D:��vX�٣�g��j�a{ph�7$���ۯ�r�`�t��eZE����K<���
}�J�c�M��eG�&�q���v��/���YU�j1,}�x��c����y����{mn�c���\E�fE=>�s��|�ܕ�e�+}�o,�
���gQǪ��>f���4��]���u���7��W��ǜ�K�T⽒�p�1p_uS]	U��^v�v4�ӫ+e�6�̤q�b�ŭL5J�]U�Z�CY�je�P͹B?G�q�B뀔��df2�[m���n@�ųӦ-95OE���:~5\��m�Þ:k�.��q�++��FpR�6���p
�� ��Չ�v�;@B�|7u;~UF��tir�,��k���NPk����w��/-N=�]^*c�USU�b��䱪\�����1�})F�������5�=��B(x��<��xh=���5�T�_�:�4Da��bd�l�7-��g7��TC�E�6������>�~x�R�c���?I�R5!޺ڪ��ao+~�r��Y��xT�[�:�e�E��
�*K�Mn�}��Zr���K�xY�5ڟ ,=?�����?/��0 @!1AP��?��B���¥�TFP�F���5Hx�TT��u%J�҆-_K|M	n�~���y��$�I8�`�/��5!1AQ"a #2q0��B3Rb��r�����?����9�����S>S�W�&|��rvnEi��_e/�hV�D��Ϟ�8�rjwʶ�vL�r1tr9��2k�WQ�1�E�j�>M��}�d�|�rd�(�PN��?Z�ʓ��d�R�F<�Ѕ^�s�Rϒ�	�c9����X|J)ɨ����k4l��C:����B,�c�BkX!�"0L�r���<샘A��F��5]X���;gud��"��Ja-�Ƞ�e�{����5�*١��O'T.��B^�=H����h읇�z{�,,@�}�87R���(������?�*�f��&��'�F�T~��V��T!�L5� �9ǐа��7EJwt�"J>��A����S�d�Ah�� ��L,C#���2.�|W�E�C���d�
���s�~i�j��5�F���hQ��A�z�G�&�*��U4���J��u,�d�A���]5�[� �2��Ԃ��9s�+�o�L|��=�=���tT�Ҏ-L~�C&�X$�b%�5RHSg	�]��?��Z_�ΎN.u}���,��=�mFWЭ,yA���1���[/J'{#N��̀`�����KIR4vow�B���lW8���g������,!�`ּ�8�X�û)E���:�����3�-f�����}���ZWu2V�"N���J�m��m�(s@�LD5�'T村�8O���3����40��w��
P��P��k�x�a9x��P�
�S�L{]C�.���Y�w�aazm&�%@��F$;�\�N�Y3�uN+\�]���v98���i�mL�'�?f�:?saCq�g��
�UF��uB��"����?��a��qR�SG���<,67������v2ܧ�߅ml�m����!_'��t(�}���4L�.��.<�(?�p�jg9T5T�Q���r���������<�\�s��)�l�P��1l�
�]b�TO��G-at�J���A�w�]�sݩɬ���F�a2�h7D4�GT�o�������5v��`|��D�ܥ����ī��
2�\ط*��ѥ�&�a��j�j`�ʤ`��\ �ʾU�Т܃���)������b�4�!�i�	�>@� �n˨�-�Ӛv���;}��w�5����-
|�j�DM�꿧LɃOe�0��rn�P�m$r����]@��A5���f�$���|�4wWg�'|�`.��7�	z�mZA�.b�;����B9t�Bu~P�(��P��Nt�MS<ih��5�4o(���w�N��A{�:˸D�i{apy_�?�|�d1�f%Mt�:p��ӾB�� ��8d�_�FZ�%�&ɤ{�`���e5�:��g���;�/�0�7�z�-
م	A�~��SƼNrV�_�~�Ň
鋕8����L=<p�X�WoRki�k(n��4��w&�}�r$t��%�-?��]b3�l�v��kt_�=����L �j�� 6V������y}��W��Tt2wN)���Z��E--�io��B����2�a��U麒uA���q�G��m�=R��RtE4~�w#�MQ�1<�',F��>������E�2��Դ*�"d#���(�°]j��X���D�Ǩٳ�z�ޝ�1q�WV�V�Z�V�8�����(i��R�.:�t��F��~Ȍ&�/P��$���=��HE�1�`)�9�Nta�r��cF���_�-�-n�t�&�Iw���W�~U�����2��ȈP�G�&|���aԯU��/K
��F�W|.�B��Q����LR��}�y�JK�>~���������Vɭ�Y4��Q��;��ZQ�nj��|������@·оw�-o��c�mD53��.VT�J��ԫ�%H�s��z��o���h��	�z�����_��ʀ��uա�J
h��TU�6_�����I�'�I+� �g���-NA�a�H�!8-P;�i����[!�1���+otj�BP�iF�
��Tn��`�K�šV�.��`3vR�j����������a�l��Z��edIu��o���VV+Ue<.���p�ƨ��=�%5���s¥��)Rs��Q���+�;��af#^ٞ��;+1�(ӆ���������c6BТAR��4rT5�㑝�4L��^
���	�=��AiS�QxG�R�K��\
"J�1i#�����+�=�Ng��C��ɺ����s���R�Yn� '�ʍ~l��+]�¼�����6T��J��W
\Z�l�9��	c��^�1–2ܮ���q"�Bpcu��!�	E¤+��E�W�]�Ev^��	�=��TS
[�]`+`��]�-쬢�������$�Wm�����
�!H�ev�¹
p�U(1�'u���
�L*�<?ʌX��Y�d�0�9(N1q�³cW+`ˣR��"*1�z�q�W���r4�ZGʓ�+Ue��t�|��j�v�Ӗ�h���]L�et�ȇX����b�b�"T��2���D���j���u�QR�^�bkY�%C$�N��B��M�+�GŠtD��d�(�T���J��AB��
�!�Z���_�!\��'!1AQaq��������� ��?!��R�����)��2���p��y�M�gTF�r�� �e�apyA�*��u�*�����g�fC3�$~Б���"�_�Wb!��UKj*�
<~fu䊭��爬����셇s��bQq5��(r��
�x���^Q��wN�e�j\�0��_��]ӘP{����l�!"�5�L]��Y��} �?���T�
��Q�J�Z�c�\��i�Yr�¶��r�$03��9�}��1�c�`m�y�on3�c�
�P7F\SM.._���.J�`2�R��3�ai1w+S|k�X߉�,YȆJ�d~iky6X��
�����\��j���T6�Db�����Kp%.X�+�YT���nL��.A���(�L���}�C�.��_t���R�{�r`'�~���kB���!�8[f��s���)�"b!��YC�k�01����>�8�Td�pcu�Ʌ7+�0DT!ꪚ �_�w��exT�D}A86��A4ܪ�`�4
�0�^��4�r�y����V��(L�
U�3�8�`�l#ly�x5�ME�}Lо�6��#^�M�hX+��T�d�|2�<��z�
^����Q�����NY�G�gqd��d���jYݐ��:���[�Cq��6ϧ3
��S�z�3/J`T��3��t�%Ek�fau9��'ؿL:M@�x�q�c��e��N�i%4TР��	�1pW$�P���EO�/i@�\�yF+m��B���A���{�E���K>��Hhٞ���G?8u8�2�%�pE`�K�>J]J��Q�7�>2�_��N�n�zaZ�f$����`��1Z��@�b�,�|93�:|wr���wHө�$��x�#�`��0��{��?kul�:GF�J�2�f��;��綝\�M� ����'�b��K��
�
�jV7�K�f'cԲ���m%KB�f5>�$�s�MA����l8`u�����3l��r���ݓN�
�L�W�	̸gTa<���k#�jWQ�n�`������OQ��:]΃*��r/�[���Z>�W��:��ĩ�驈fg̨���D�5/�<�ղ
�r�QT�(7��
S��p���SL�)���[0�ֳB5�-g?��9(JX��S<�&	I�s�-=D�I`�[�9�z��M�̠ҝ}��*�R�`��R8��fw-���\:�9^
7-�Ȫ1��SF�e+'�X�V��)rϹG�f=�{��4\��	6|H��-(��2�>2�,�fV�W�I:b�o{�����pW��:��\Y�y��
]ܚ䅃J�#@X��j[K&r}U*
��q�s̤�
�y�Q�n$�O�#`��[���w�Xp����ܻw��e��ml
�ɗD��
���|��u���kX+���]��L�g;�Q��_$���i���EA�"�Эv`�(7v�_�����V���S�Mdl:��`����%x���]�L�K��ژ����q{��<wn���.2�γ9����@��%u���S�.��A�Ko�H�L�ܸ�N�B&ƪ.�Wr�Id����n-�_+�
^h��eQT��:�k'��>I��c�����ńò�"��eL��V�Y�^��b�?2��ɢ2��Cwd�S��.N�~�2�{�C����&1S�~)m��sXQ;�פ�v����͵*2�C	�5�wNI	E����l\����yY\���s�)��3��<�%�"Ѷ���
G�ϱo�lŰ��nal�"��Nt.2��bVk�bw6�QF+�LF�be�Q�4�_}�皌�LT��%�\�����O*7>�3|��pv!x�8���
6�;"�������j^��D0���w|��]�Ky�TUV�Ֆ�噁��-�;Tn	ܞ)�h�e8Wr��G.؝�(��B�u� {��������Ӗ$T�q���J̡ʵ/R0_;��0��Pl�^�����E\�R�'��.U���2S^�0ͥ�u*��g��שk��k^IV��,z��a֮¥��@�V�!j�-n�Z�W2�O���W]�#j��K�����[�A
��U؊2��20ū2s߉A����ط"3D�c��y�nkԦ��S[�G����̴�j�:nNcc��ÉY��f��,���=@0.i	V�E*2yn���3=���}��9��fNW�q [X�T^#�YŸP^��n���M1[��'+���AWZEU��!�� �̲���{O�q���{.��6�|^ *� ׽s�^fȹ9y4�k�1���su����3�u�����:�ۂ��e�%��#-v�`�ں$(5�Gާ��s-�JK��T�q��[\[�C��ۖ�Q�6Zl���U2�uy�|�Z6�U�{��C� k��f@�[ ��e@0�ѹPS�Lޚ�{���-uʶ�.�v����\ʦ!�,o����e�wtQ	��a�`��%�:��M�jD9]˰-��Kc
�h�LN~��֣b[���	�&Lm/���uxf�-B΁ƫ3-�"s�5rȺȯ�Z����3�g_I��ez���[
���
��&pD�\�lb���������?qq�VU2x�W�u1l����B�
�3)�����bӴ0�J7�m�Ɯ��`*0��� �s0~'p��V�E��Q?
���~Heu-��c�#�	�a�'�=)�r ����a��N��2�a����r����Q�0�6�8��>���Sq�$>��$�5����Z���o��KJAy�
/C�I��ݱ����ɶ��V;�q'lo2��+��L��s5�4�W�2���^��AZ��:}Fծ���Lل9���O,n7��0���q��8]b(�@�q9�i-�	D��f!��%[��kTs��ߚ�@����f�2�j<-�1}�|��x>"�6̠����3BJJ��a�lɉP7-���^ =f6pŲ�.l�Ib�|�3��l�34�1�ְԭ�V��ql��Ĥ��ʀ� ����ȣPx���J!�=ˊ.�W��#�s+���|�q-�;����x�#�����䳑��s�B��75���+ʼB`n�ݭ叢=<�9��:M͓'���(���٦y����e/�7r:�1}�1���l��?����T��`YV*y�;at͓L��x�&�|Y:���K���59��ϸK6��Q��Z.s/�T!t�8D�J�A�TLa�k���|��Z�m��*\�34O��Nh�|��?���U����A��v]E|�R��*C�v<DʖP>�G�H��s���o�c�%���$F_
��7�L����b�ţ��LF0O(�6���R�Dj!x��2�'d��Q,�K|�q9�*	��qQ�z�5b�h�;*�V,�z�����Y�o}��u:a2�N�5x��|��%�U!�)��c���7tJ�Fycዖ`]��l�f
W0��
�s8�.:ȫ��+h(��~8�V�0�IE�u�F-Y�E��E�E.�A�O=�V�o�N����5d�V9��@F�;�xn#T��W�l�+�s�K��T�&�xNa�*��ȸu������%٨h��'Pb�J���b����p�F�+�"��^��[
t�r�14D��o��;s9�1,�P�^ΝD��t�m�Y��K2�Cq�
�������xU\�;�䘐!�%��`�̥e��*��f�y0x�`q��K��m�D���?�D;X#c~lM�-��j`a��m5zb�ڙԣԦ��J��\�È�RR���U�+�Q�O��k��լrʙ�rJH�ۀ�&Źd%8�J^�M0�|"{�ꬬ�Izg�'\���O.7��[LM@�/�%�<�`A�*-�l��ܮA+=͙�)�-W�2P	Qʰ�O�b�™y�7-b3U0E�\��x��c��M
�b\���,��!sQoh�+{�e�g�(�> x%�K�`#m{����p1�&F�Xl6�/ӈ��-����tE���y���E?q�5lQP�O�������0�^0A*1�G��c��U�8��JE���
���AF���,�^s1˸�l-��Q\
�f�Ã��?�n8�J�r��8���Ԣf�`ϗy��X.���K��p�DY�4�L��
�u{ '8�D�y��H���5�g���y�_E���@<��N�S����J4�M�6�t~�Q_%{�p��p�$���S��e�7�z
��|�k�v����?}�Wx��Ē���tQ�� ��aD�|�4�Tk��mZ���3����0�wZ�dEM�Rl�i��2�&��y��ݴ�{d�`K1�8mT�6v����{k��V�!�g͕}��e�r��/��U�g�f�o�zIo�}��m*}҉i������}��U<%�l���t����giή�Y�0oI=���m4IN�
�l���0@P!��?��b�V`�Cc�*��me]V.��u����!1 0AQq��?��:�HQ�
�������,���DtzBo�1�<�������X�J����h���W����'�D8Wp���cs����!0�ß�ݼD�W�O���q��i�h�a�Ja��s�TK��6~hKŅ�s�Bj�Me�~��c�i�W�b�2��+���i���O^8U���8R���R�8_.�]��Q2�2�2"����7��8:�!���%!1AQaq����������?�e�B!
��d1X��D�t�#b��v�/�H��F?��֏ؿ�j0�/,qb*3����0�
g�&2��4E�iu���	pfӼL/*��di<���1kSf�Qm_\E(l[q�[�}J��ŌUťZ�>���"�8�J��b�ǵ���`-�v��k�Mf�`w����p%ܬټ��<%��*@;=���fz*t��/�o�kY���#����J[j3�n B�U]�l�)�À|��(����T"dX<*u���`�2�;-k��)`�W��y��!a�)F�yL���
Eg
�¢��3J�����h1��	K��6UH_�]�
��.�_":�TN���ڋv��R|DP�*�~q[�2�L�y�\LA�+�\w�#�tt�!�ݓ��7-V����e�p���Lj"
G��Q(JX�+�b|�(G�]�/i��\EJ�-�u�̲��p��Q��,SV�+�Z�A�,0/΢�[�T§�������F{��6�x�`��2�����Υf7����(]�C�U�����V����> m��d�-�JAp��5��2zَb�x�"�.`/ݲ�+�-�4
\@x���L�hKٲ�^=G�lavB�����L�T�����2J ����a�\���^���\&aU8�{oe���x�#�f��ڝm,l�+���0Q������P�Ñ�?��Oa�����eC���UBަ�*�Aq�a�ר=�ψ��%��J�>�K>Mƒ�d�{SUI�f�ר|�)Ǘ��Za�}u�)�f�PZe:�Q<���l��`.�4S�]K�"�Q�_e,_j{�����]�/�%ވ��-�O���m�<vFbB�<g�Jj�YQ
�A('�P>]ƃ��)�,Q����c���_�[|o�I䠭/\|Ξ���Y7)�q��3�feB��=����	���v�w߽CX`�������o�x�Ck�q��3F�]����P��GdB�gR�B�ޟ�
YE�[�!g ��r���V;�X���$
ʯ�e�.��/dW2X�SE�v˓v�!B��C .�`��Gb�TE�S�%�cuz^�h�'��me&R��<��h�,���,%�Tx�[��Mܴ'6()���t��-+r�x��ur%g�*���q��]�S���K��i)x��]B���J}*�R��Q���(�f�Ձ;���ss*���MA|Y���sFꞢI��m%|1�Z5�5QT�S��JZ>��0���Nc���>c�p�J<���b�:"���1�np%[��m�=F`����i:N��m㈃Jb�z�-ǏP�q��bj����^�tY�.�1��pXd��/&o�*Q�P�k��D����uc������î�Ip������y�a�s��t��KϘ�dà;��(��}���&8�,1�i��p#�5
.c,��#�������C�5N�]cd3�G�\kp��.��M���hP_5,3.%�Y�Aٯ���Q��mO�� ���:��}4rL���q�)��S��^�6���ߖf�x]�@0
n+M��ˉ~_D����H��9{U��)�2 �v�9��ơL`S�&0"�\�O�h��[��|0߸v�QbEO���!ɸ���
��8A/O3A�� S�ܺ���o��wpAꉃ�z�%��T�ߢR��
Z��������v"�p)�]����f�	���Ү#{�_NOٟ�.�xz~Ϧl�›�[+CqzK���M�=Ĵ&�:%�ֿI���G���qw.����[@�ŵ� �ĵ�^�A�#��f�<���7�Qg����ʹ����9xl� sh��,�W�2��4�~O<\�Mo�G�⠠�@d4L#�����
�up��T����4������M��y"T<��k)�f����#�o}FFI�*]��c�k>'t�R?�eu	M�ZH'�Ա�/��ą����Ȁ^�
�9�ӳUr
%���4����2
zsvs��7+��*T��p��
�`3A�p(�A�e�+k�cv��F��� ��%�e�J��@K�蠔��F�`*�9��s�07���l�M�8@j�/�b��?�	0�3�]�#����M��*[����9̣�B�3�;flk�J��{���Cd����ɶ�`���{?�-2CO
���cs&�'B���
mE�õ`�f�L���ŭ5���1���4sS�p@8+�x\�)��\tb�`�`���x��h'���~�;�(�wP�Aจf�z�Cqiκ
�yj�ߛ�lp�p���r.��#Է4aa��5(��w�	WsU�6/�w'$ʲ��)`e��j�˅�z��>qd�TP�����{���3�"��� ��7d���q��+��u�Kl,A�&��Z�Bt�xw��ψ��,�k�}º��g����k��W�HIxW
�cQ`\qn�w(��P�kܳ{�. eaE�_�ew�+��{f��a�m��ĸ�YJ��ͦ'�:%��-,����!\��KĠ� ^�*iyC�R�e�@���Jp8P���\T-."��A��	I�Uں��8t������-�N3P��U�� -��U���EVX^���g��n���c��7İC�{��"���2�ȫ`׼f6	d
�*��A�]�^/��B��Ø����W�b&� �[PC(jъ2s��Pik�4�4
��4�~j�t���30���5Vߘ�)6	D��?e�ʬdǔg����$�e���B߾vK�
Z��V\t5�1�dKv�3�%e�Ģ�pW+�l��b�@�c�,օaO�M9p{�Ղ�:���4���)/��i8S���@nYoɸ"�袩�L*���%S(�H/{�dj醏��<d�ql��s,=��I����š�ܷ�2�@(ձUo�|h]�3e40*�]f\���Vػ�qo����˂VZ?#`\t5ߒ"�%��ނ�n�F�Mw� �DS�p�IVa�k���O|��J�����W`N2���Q(s2!�UDtS�Y4\l�7�̳5�*��B�m5,�G�l>����"D-�a�~Gu[#ao^��
^bP���X����*%-�����v���
,�P[�l�нܱ4&�T���N��EX
:��?0*O��tP�������gBkG�����(+�
�{��/R�b�.ߵj�0�M�����X�i��-K��V�f��S��^u8X�c���g�:+�ZpCNSU�����
pMx��4�1ۼJ��^X�9>	FO�:���S`�f�}E��o��C��P�2�m2�tX�1�xA��o��:�7�q{��Vq�b�������G*�.�	�0�v:�pj̟0�X����;:����chEp|��]l]�PQ��b���F�i/^4�������6u+.Urf4K�/N`���j%�":L���
��0��>j\��'2Ҵ���咛+�
����J���]�m-�#2��b�+�X]7�E�v���T�"
�T �\/t.��vl_*��?E��"��;C(0��+�Aq��P��`�y� ����!�0� C��Zgܹ�0�L
Ѫw�4�,�.��i�R[���,d�$E����,I��nk�>��8�=�j�1MV���n[��@Q���|�	�1(*ڍ��@n3+
T�H�|�0WMD���r�QY��´�
� �O�"�sX���(�|��C����=��wv�x� ��
#,w9.��h�+�����$v�9P=lCE��e��+���4����C������y`z����
�i���]�2l��]�.f���osNk���U/| �T�
aZЗl%�I�_�4(h�u.�8����7޺�@TK��@5ay�!��C3M�v�����ԯjE^/�����jP�E���-����(�3����7��
X�����o��N`�!�"į�"���+\L��E���|��ƣd��;P{` ��)LC	W�*�q(	a��h����+�C<�@���������KG&2�'qNmNj�3������.3p�Ln�R��6��J�Q�����zb�LMj�D`M%� �Z(ܠNa�|?�sœ�l�2�;©�y�|D��۴_P�`���{b����0�g�d��42�̠�X��\���:!�e?1�e0��%�p�a��D��Gt�1���5��������4��M0MS�KtR�p�T�P��[FZ�KcF+��)V� �.�q*�Fn`��������ʖ1�c��nu����a���F�o�k�9R����'�X*A�p�o�e�hR� ��/N8��(������P$�&���8d��YK�H>�C)\�(�<�$NR����<�d.����RfwC7�r����:��4��,w@�F�l���b�n�J��
9P0:���
���8�j��{g,��`:&.X�XXA��p�L}JMN��OGJ��	~�
SԦ�qN(��b�������Q]DV��ezk�D���p`��@��
@."xTۚ����|_��@��,��8���� �a2�z@{X�{(���g��h��ܱm��e%
S�	GC�Vˊ�3�!�ʁ�d�����Ct��1���DŽ4��A�����V��j��+k\W	��%z��^�N2�
����e��0[1}��6ז
����U�)
nPi�����p/�����/¬�k�����ƭ(+�-!)�C���X��E�g aV�ʋ=���z(��@��¿�
y4�Y��0����T�wZ͕�������e�2���B�a����
h/0���"�Յ��U%���C��q�L��7v�-��F��@e�XDD�
��$T-��ԤQ���Y@�ܧ�r�CzA���;!�3�
C��)��0�e��d�R�]�� �eF���g�S�:[�+�M�Y���iu��
���(�O,�a��2g7r�;�vd�e/m1���s�,��	@�4���t��N.$)a)Mw��0n�����u+�\���drJ��5�TG_U\���q��P���s�*�{!'�u�1��|�F��a?���Mֱ
)���`��bk)�*ëeBK�H[/�Dl�0/�y��]J�)-���}����%o8�Ma����n�4.��%��DQ=�4v����	�d�2L:
/�Ai�^`���p�
��Q~�!T±R�+�It��B��0��(���,ju��p�."O-�[��/�G��b�7a+�B,����HT<`�%�ѷO9����o(�.Z�m@b
�k
�T�����K ���ݵƭ���(��Կ�Ƭ+s�i�m���D3g1%�
�����דJ�W��aG���v
o���)u՗��8�-�t�]��bR҆��Ah�J��Q��ޢ\�`�U6���lh��Mk�j��H�&����OnEh�sqh\�����6�.��(�%���6s߉K�;k���쁁��2�E��8P�t�9�����+��p�l��[)u�ŀ?cPh��=�U/�U��� ���I)���^���&�/d%�er�+Co(�U��Zb��cGb�����6��1�G�/�3��>���^�U^֑n��f%J�0��w��G�$�(S+�i	ܰRǍ��^q
_$���P{b�zb��QL�Y�-ʻV�0�Eo�	Ulj_���h���H�S�2�r���'&�

W�\ڰz!\Y���Z!���4�T*�<���[r��Eo��9M��`[٩hLEC�j��*�i�~�E�QQ�q[Z�b-�K�X-f4]�b��Ge��b���K�
�p��m���C���is��Av��46l4�Կ���m��.;�s)@��Q�!s��07�qkD�ځN��6�]L��@ȫ���Ә]�9r�j��3�Px��.M�ۻ��yͦġ�]ʽ�q	�+iy���YTy��vc�N6�y�Jא��تB�(��n�F������GPO��"�1B��3�C�U��y�.�{��RB�.,���r��uc����y�3������7/hݢ��8@����YRC��(�J�O�E�N=�ϓ���2���2��ڂq�T�G�|�6��8�Q٭���3^���q�䕆k�����3oP�mL�ؙ��t�}�#S%ʇ��ytE�M�($a[�Rز���5��>�-�k��3��¾�
�l��!M��ŅG�5f�^��SS���ؙ�6JZ��76�N�8�1J(�9�<���M��UK��ވ�0��v�c��pa���RE��<M���M��cME�s]��k�X|��B�j��]�T�&��C������^!��?Ҏ=Cu����50���e;9���ɥ�����P�j�;�^x%G�ՇU�&R���4�
��`���`�#}�k�0��U��FoŰ@�K��2.*3�Ȣ���Xf$v	-�^��*�!��0@ v��N���m�A�x����c��FK��Mf�CHk����Be�gE�Ǩ�c3�gVC�ݭW��`��=���+��b�-|�&B#�w��P:�d����{�6��Tbyn�3ɇ�9�;W7au�渎O��9��{���N�Ej)F�TV�IA���:��sx*x�-��_QK�#D�D����"4孱8Rʺ�7�+p50�W(5d��� M�c�%���%t^3VP�q"�3�q�]��D�k�����jQ�Yn�r��T�!��b`XW�2ި�ʔpa�A
m�@+��m���qu�Z[(���JM4�2�b�v����i�X�Ў�e��u�8E�
�)�*�O`��8l[��w�pY�D��jAb�Z/�jX0]�s���3,�_�!n�\ʷh�N��M֗q�,�3�aѪ;�JJ�ט�g;Ճ�}�O폝 �^���%�Bd£�,��.��ʉ���
y���@�}Դ����ol����T�G�k�V�G��/����(7~��.��F
Ӑ�p��W>c:Z��l�*>�4���ʆ�l3�
����#U�/��eJ�9G���g�n,�7 LW1�\ik�r�T�[�ԾJW��R��@�J�Ѣ��Pn��plg_quickicon_joomlaupdate/js/jupdatecheck.js000064400000004122152177723720015557 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

var plg_quickicon_jupdatecheck_ajax_structure = {};

jQuery(document).ready(function() {
	plg_quickicon_jupdatecheck_ajax_structure = {
		success: function(data, textStatus, jqXHR) {
			var link = jQuery('#plg_quickicon_joomlaupdate').find('span.j-links-link');

			try {
				var updateInfoList = jQuery.parseJSON(data);
			} catch (e) {
				// An error occurred
				link.html(plg_quickicon_joomlaupdate_text.ERROR);
			}

			if (updateInfoList instanceof Array) {
				if (updateInfoList.length < 1) {
					// No updates
					link.replaceWith(plg_quickicon_joomlaupdate_text.UPTODATE);
				} else {
					var updateInfo = updateInfoList.shift();
					if (updateInfo.version != plg_quickicon_jupdatecheck_jversion) {
						var updateString = plg_quickicon_joomlaupdate_text.UPDATEFOUND.replace("%s", '\u200E' + updateInfo.version + "");
						jQuery('#plg_quickicon_joomlaupdate').find('.j-links-link').html(updateString);
						var updateString = plg_quickicon_joomlaupdate_text.UPDATEFOUND_MESSAGE.replace("%s", '\u200E' + updateInfo.version + "");
						jQuery('#system-message-container').prepend(
							'<div class="alert alert-error alert-joomlaupdate">'
							+ updateString
							+ ' <button class="btn btn-primary" onclick="document.location=\'' + plg_quickicon_joomlaupdate_url + '\'">'
							+ plg_quickicon_joomlaupdate_text.UPDATEFOUND_BUTTON + '</button>'
							+ '</div>'
						);
					} else {
						link.html(plg_quickicon_joomlaupdate_text.UPTODATE);
					}
				}
			} else {
				// An error occurred
				link.html(plg_quickicon_joomlaupdate_text.ERROR);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			// An error occurred
			jQuery('#plg_quickicon_joomlaupdate').find('span.j-links-link').html(plg_quickicon_joomlaupdate_text.ERROR);
		},
		url: plg_quickicon_joomlaupdate_ajax_url + '&eid=700&cache_timeout=3600'
	};
	setTimeout("ajax_object = new jQuery.ajax(plg_quickicon_jupdatecheck_ajax_structure);", 2000);
});
com_content/js/admin-articles-modal.min.js000064400000002274152177723720014620 0ustar00!function(){"use strict";window.jSelectArticle=function(a,b,c,d,e,f){var h,i,g="";return Joomla.getOptions("xtd-articles")?(h=Joomla.getOptions("xtd-articles").editor,""!==f&&(g=' hreflang="'+f+'"'),i="<a"+g+' href="'+e+'">'+b+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(h)?window.parent.Joomla.editors.instances[h].replaceSelection(i):window.parent.jInsertEditorText(i,h),void window.parent.jModalClose()):(window.parent.jModalClose(),!1)},document.addEventListener("DOMContentLoaded",function(){for(var a=document.querySelectorAll(".select-link"),b=0,c=a.length;c>b;b++)a[b].addEventListener("click",function(a){a.preventDefault();var b=a.target.getAttribute("data-function");"jSelectArticle"===b?window[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language")):window.parent[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"))})})}();com_content/js/admin-article-pagebreak.js000064400000002320152177723720014470 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
(function() {
	"use strict";

	window.insertPagebreak = function(editor) {
		/** Get the pagebreak title **/
		var alt, tag, title = document.getElementById('title').value;

		if (!window.parent.Joomla.getOptions('xtd-pagebreak')) {
			// Something went wrong!
			window.parent.jModalClose();
			return false;
		}

		/** Get the pagebreak toc alias -- not inserting for now **/
		/** don't know which attribute to use... **/
		alt = document.getElementById('alt').value;

		title  = (title != '') ? 'title="' + title + '"' : '';
		alt    = (alt != '') ? 'alt="' + alt + '"' : '';

		tag = '<hr class="system-pagebreak" ' + title + ' ' + alt + '/>';

		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
		} else {
			window.parent.jInsertEditorText(tag, editor);
		}

		window.parent.jModalClose();
		return false;
	};
})();
com_content/js/admin-article-pagebreak.min.js000064400000001155152177723720015257 0ustar00!function(){"use strict";window.insertPagebreak=function(a){var b,c,d=document.getElementById("title").value;return window.parent.Joomla.getOptions("xtd-pagebreak")?(b=document.getElementById("alt").value,d=""!=d?'title="'+d+'"':"",b=""!=b?'alt="'+b+'"':"",c='<hr class="system-pagebreak" '+d+" "+b+"/>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(a)?window.parent.Joomla.editors.instances[a].replaceSelection(c):window.parent.jInsertEditorText(c,a),window.parent.jModalClose(),!1):(window.parent.jModalClose(),!1)}}();com_content/js/admin-articles-modal.js000064400000004261152177723720014034 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
(function() {
	"use strict";
	/**
	 * Javascript to insert the link
	 * View element calls jSelectArticle when an article is clicked
	 * jSelectArticle creates the link tag, sends it to the editor,
	 * and closes the select frame.
	 **/
	window.jSelectArticle = function (id, title, catid, object, link, lang) {
		var hreflang = '', editor, tag;

		if (!Joomla.getOptions('xtd-articles')) {
			// Something went wrong!
			window.parent.jModalClose();
			return false;
		}

		editor = Joomla.getOptions('xtd-articles').editor;

		if (lang !== '')
		{
			hreflang = ' hreflang="' + lang + '"';
		}

		tag = '<a' + hreflang + ' href="' + link + '">' + title + '</a>';

		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
		} else {
			window.parent.jInsertEditorText(tag, editor);
		}

		window.parent.jModalClose();
	};

	document.addEventListener('DOMContentLoaded', function(){
		// Get the elements
		var elements = document.querySelectorAll('.select-link');

		for(var i = 0, l = elements.length; l>i; i++) {
			// Listen for click event
			elements[i].addEventListener('click', function (event) {
				event.preventDefault();
				var functionName = event.target.getAttribute('data-function');

				if (functionName === 'jSelectArticle') {
					// Used in xtd_contacts
					window[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), event.target.getAttribute('data-cat-id'), null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'));
				} else {
					// Used in com_menus
					window.parent[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), event.target.getAttribute('data-cat-id'), null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'));
				}
			})
		}
	});
})();
com_content/js/admin-article-readmore.min.js000064400000001265152177723720015136 0ustar00window.insertReadmore=function(a){"use strict";if(!Joomla.getOptions("xtd-readmore"))return!1;var b,c=window.Joomla.getOptions("xtd-readmore");if(b=window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].getValue():new Function("return "+c.editor)(),b.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i))return alert(c.exists),!1;window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].replaceSelection('<hr id="system-readmore" />'):window.jInsertEditorText('<hr id="system-readmore" />',a)};com_content/js/admin-article-readmore.js000064400000002200152177723720014342 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

window.insertReadmore = function(editor) {
	"use strict";
	if (!Joomla.getOptions('xtd-readmore')) {
		// Something went wrong!
		return false;
	}

	var content, options = window.Joomla.getOptions('xtd-readmore');

	if (window.Joomla && window.Joomla.editors && window.Joomla.editors.instances && window.Joomla.editors.instances.hasOwnProperty(editor)) {
		content = window.Joomla.editors.instances[editor].getValue();
	} else {
		content = (new Function('return ' + options.editor))();
	}

	if (content.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i)) {
		alert(options.exists);
		return false;
	} else {
		/** Use the API, if editor supports it **/
		if (window.Joomla && window.Joomla.editors && window.Joomla.editors.instances && window.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.Joomla.editors.instances[editor].replaceSelection('<hr id="system-readmore" />');
		} else {
			window.jInsertEditorText('<hr id="system-readmore" />', editor);
		}
	}
};
mod_rsfirewall/index.html000064400000000054152177723720011566 0ustar00<html><body bgcolor="#FFFFFF"></body></html>mod_rsfirewall/css/style.css000064400000001100152177723720012224 0ustar00/* container */

#mod_rsfirewall_container div {
	margin: 1%;
	padding: 1%;
	clear: left;
	overflow: hidden;
}

.mod-rsfirewall-float-left {
	float: left;
}

.mod-rsfirewall-eq-width {
	width: 100px;
}

#mod-rsfirewall-firewall-version {
	float: left;
}

#mod-rsfirewall-joomla-version {
	float: left;
}

.icon-16-spacer {
	padding-left: 20px;
}

.mod-rsfirewall-break-word {
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	hyphens: auto;
}mod_rsfirewall/css/index.html000064400000000054152177723720012356 0ustar00<html><body bgcolor="#FFFFFF"></body></html>mod_rsfirewall/js/rsfirewall.js000064400000004730152177723720012722 0ustar00RSFirewall.$(document).ready(function($) {
	function checkJoomlaVersion()
	{
		$.ajax({
			converters: {
				"text json": RSFirewall.parseJSON
			},
			dataType: 'json',
			type: 'POST',
			url: 'index.php',
			data: {
				'option': 'com_rsfirewall',
				'task': 'getLatestJoomlaVersion'
			},
			error: function(jqXHR, textStatus, errorThrown) {				
				RSFirewall.$('#mod-rsfirewall-joomla-version').html(textStatus).addClass('com-rsfirewall-error');
			},
			success: function(json) {				
				if (json.success == true) {
					if (json.data.is_latest == true) {
						var message = Joomla.JText._('MOD_RSFIREWALL_YOU_ARE_RUNNING_LATEST_VERSION').replace('%s', json.data.current);
						RSFirewall.$('#mod-rsfirewall-joomla-version').html(message).addClass('com-rsfirewall-ok');
					} else {
						var message = Joomla.JText._('MOD_RSFIREWALL_UPDATE_IS_AVAILABLE_JOOMLA').replace('%s', json.data.latest);
						RSFirewall.$('#mod-rsfirewall-joomla-version').html(message).addClass('com-rsfirewall-notice');
					}
				} else {
					var message = json.data.message;
					RSFirewall.$('#mod-rsfirewall-joomla-version').html(message).addClass('com-rsfirewall-error');
				}
			}
		});
	}
	
	function checkRSFirewallVersion()
	{
		$.ajax({
			converters: {
				"text json": RSFirewall.parseJSON
			},
			dataType: 'json',
			type: 'POST',
			url: 'index.php',
			data: {
				'option': 'com_rsfirewall',
				'task': 'getLatestFirewallVersion'
			},
			error: function(jqXHR, textStatus, errorThrown) {
				checkJoomlaVersion();
				RSFirewall.$('#mod-rsfirewall-firewall-version').html(textStatus).addClass('com-rsfirewall-error');
			},
			success: function(json) {
				checkJoomlaVersion();
				if (json.success == true) {
					if (json.data.is_latest == true) {
						var message = Joomla.JText._('MOD_RSFIREWALL_YOU_ARE_RUNNING_LATEST_VERSION').replace('%s', json.data.current);
						RSFirewall.$('#mod-rsfirewall-firewall-version').html(message).addClass('com-rsfirewall-ok');
					} else {
						var message = Joomla.JText._('MOD_RSFIREWALL_UPDATE_IS_AVAILABLE_RSFIREWALL').replace('%s', json.data.latest);
						RSFirewall.$('#mod-rsfirewall-firewall-version').html(message).addClass('com-rsfirewall-notice');
					}
				} else {
					var message = json.data.message;
					RSFirewall.$('#mod-rsfirewall-firewall-version').html(message).addClass('com-rsfirewall-error');
				}
			}
		});
	}
	
	window.setTimeout(checkRSFirewallVersion, 2000);
});mod_rsfirewall/js/index.html000064400000000054152177723720012202 0ustar00<html><body bgcolor="#FFFFFF"></body></html>plg_system_stats/js/stats.js000064400000004245152177723720012302 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * stats javascript behavior
 *
 * To allow users to accept & configure stats sending
 *
 * @package     Joomla
 * @since       3.5.0
 * @version  1.0
 */

(function ($) {
	$(document).ready(function () {
		var ajaxData = {
			'option' : 'com_ajax',
			'group'  : 'system',
			'plugin' : 'renderStatsMessage',
			'format' : 'raw'
			},
			messageContainer = $('#system-message-container');

		/**
		 * Initialise events for the message container
		 *
		 * @return  void
		 */
		function initStatsEvents()
		{
			var globalContainer = messageContainer.find('.js-pstats-alert'),
				detailsContainer = messageContainer.find('.js-pstats-data-details');

			// Show details about the information being sent
			messageContainer.on('click', '.js-pstats-btn-details', function(e){
				detailsContainer.toggle(200);
				e.preventDefault();
			});

			// Always allow
			messageContainer.on('click', '.js-pstats-btn-allow-always', function(e){

				// Remove message
				globalContainer.hide(200);
				detailsContainer.remove();
				ajaxData.plugin = 'sendAlways';

				$.getJSON('index.php', ajaxData, function(response){});
				e.preventDefault();
			});

			// Allow once
			messageContainer.on('click', '.js-pstats-btn-allow-once', function(e){

				// Remove message
				globalContainer.hide(200);
				detailsContainer.remove();

				ajaxData.plugin = 'sendOnce';

				$.getJSON('index.php', ajaxData, function(response){});
				e.preventDefault();
			});

			// Never allow
			messageContainer.on('click', '.js-pstats-btn-allow-never', function(e){

				// Remove message
				globalContainer.hide(200);
				detailsContainer.remove();

				ajaxData.plugin = 'sendNever';

				$.getJSON('index.php', ajaxData, function(response){});
				e.preventDefault();
			});
		}

		ajaxData.plugin = 'sendStats';

		$.getJSON('index.php', ajaxData, function(response){
			if (response && response.html) {
				messageContainer
					.append(response.html)
					.find('.js-pstats-alert').show(200);

				initStatsEvents();
			}
		});
	});
})(jQuery);
plg_quickicon_extensionupdate/js/extensionupdatecheck.js000064400000003306152177723720020100 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

jQuery(document).ready(function() {
	var ajax_structure = {
		success: function(data, textStatus, jqXHR) {
			var link = jQuery('#plg_quickicon_extensionupdate').find('span.j-links-link');

			try {
				var updateInfoList = jQuery.parseJSON(data);
			} catch (e) {
				// An error occurred
				link.html(plg_quickicon_extensionupdate_text.ERROR);
			}

			if (updateInfoList instanceof Array) {
				if (updateInfoList.length == 0) {
					// No updates
					link.html(plg_quickicon_extensionupdate_text.UPTODATE);
				} else {
					var updateString = plg_quickicon_extensionupdate_text.UPDATEFOUND_MESSAGE.replace("%s", updateInfoList.length);
					jQuery('#system-message-container').prepend(
						'<div class="alert alert-error alert-joomlaupdate">'
						+ updateString
						+ ' <button class="btn btn-primary" onclick="document.location=\'' + plg_quickicon_extensionupdate_url + '\'">'
						+ plg_quickicon_extensionupdate_text.UPDATEFOUND_BUTTON + '</button>'
						+ '</div>'
					);
					var updateString = plg_quickicon_extensionupdate_text.UPDATEFOUND.replace("%s", updateInfoList.length);
					link.html(updateString);
				}
			} else {
				// An error occurred
				link.html(plg_quickicon_extensionupdate_text.ERROR);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			// An error occurred
			jQuery('#plg_quickicon_extensionupdate').find('span.j-links-link').html(plg_quickicon_extensionupdate_text.ERROR);
		},
		url: plg_quickicon_extensionupdate_ajax_url + '&eid=0&skip=700'
	};
	ajax_object = new jQuery.ajax(ajax_structure);
});
system/css/fields/calendar.css000064400000010267152177723720012434 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
 .js-calendar {
	box-shadow: 0 0 15px 4px rgba(0,0,0,.15) !important;
 }
.calendar-container {
	float: left;
	min-width: 160px;
	padding: 0;
	list-style: none;
	border-radius: 5px;
	background-color: #ffffff !important;
	z-index: 1100 !important;
}
.calendar-container table {
	table-layout: fixed;
	max-width: 262px;
	border-radius: 5px;
	background-color: #ffffff !important;
	z-index: 1100 !important;
}
/* The main calendar widget.  DIV containing a table. */
div.calendar-container table th, .calendar-container table td {
	padding: 8px 0;
	line-height: 1.1em;
	text-align: center;
}

div.calendar-container table body td {
	line-height: 2em;
}

div.calendar-container table td.title { /* This holds the current "month, year" */
	vertical-align: middle;
	text-align: center;
}

.calendar-container table thead td.headrow { /* Row <TR> containing navigation buttons */
	background: #fff;
	color: #000;
}

.calendar-container table thead td.name { /* Cells <TD> containing the day names */
	border-bottom: 1px solid #fff;
	text-align: center;
	color: #000;
}

.calendar-container table thead td.weekend { /* How a weekend day name shows in header */
	color: #999;
}

/* The body part -- contains all the days in month. */

.calendar-container table tbody td.day { /* Cells <TD> containing month days dates */
	text-align: right;
}

.calendar-container table tbody td.wn {
	background: #fff;
}

.calendar-container table tbody td.weekend { /* Cells showing weekend days */
	color: #999;
}

.calendar-container table tbody td.hilite { /* Hovered cells <TD> */
	background: #999999;
	color: #ffffff;
}

.calendar-container table tbody td.day {
	border: 0;
	cursor : pointer;
	font-size: 12px;
	min-width: 38px;
}

.calendar-container table tbody td.day.wn {
	text-align: center;
	background-color: #f4f4f4;
}

.calendar-container table tbody td.day.selected { /* Cell showing today date */
	background: #3071a9;
	color: #fff;
	border: 0;
}

.calendar-container table tbody td.today {
	position: relative;
	height: 100%;
	width: auto;
	font-weight: bold;
}
.calendar-container table tbody td.today:after {
	position: absolute;
	bottom: 3px;
	left: 3px;
	right: 3px;
	content: "";
	height: 3px;
	border-radius: 1.5px;
	background-color: #46a546;
}
.calendar-container table tbody td.today.selected:after {
	background-color: #fff;
}

.calendar-container table tbody td.day:hover {
	cursor: pointer;
	background: #3d8fd7;
	color: #fff;
}
.calendar-container table tbody td.day:hover:after {
	background-color: #fff;
}

.calendar-container table tbody .disabled {
	color: #999;
	background-color: #fafafa;
}

.calendar-container table tbody .emptycell { /* Empty cells (the best is to hide them) */
	visibility: hidden;
}

.calendar-container table tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
	display: none;
}
.buttons-wrapper {
	padding: 5px 5px;
}
a.js-btn.btn.btn-exit, a.js-btn.btn.btn-today, a.js-btn.btn.btn-clear {
	cursor: pointer;
	text-decoration: none;
	min-width: 60px;
}
.calendar-container .calendar-head-row td {
    padding: 4px 0 !important;
}
.calendar-container .day-name {
	font-size: 0.7rem;
	font-weight: bold;
}
.calendar-container .time td {
	padding: 8px 0 8px 8px;
}
.time .time-title {
	background-image: url("data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNqklUsohFEUx7/5kgWGjEcRJULJSmJhITQLr8UoFko2k2SDLGZD2SglJcXOxo6Fx0ayUt4jWXgNG2rIwsgMJZPn/+o/dRvfa8yp33zfPfecM+e795x7bYqxtIAaUA2KgA3cgn3gBcsgrMQg3eAAfJtwBYa0Atg0dAugg+/3YAUcgkvqCkAVcIIy6raBCwT0/mRdymYG5Bt8VQoYBe+0Pwdpik6mwuAVNMawbJXgmr7e6FVokzKt1XBOZnYuneB54Jn+w/LEMZXTOo65nN80yNxNmyBIF4o6Ku6AXccpmzbzJstyQbs+FT/1VC6CFyU+mePTqbIBhBwp8csGn8UqO0qIz8AhstNBk8BP4As4RGCVyk8LgUVVlFvIXFXZ+4qUuZY8gn6W1QmYBKkadklM9PfLJriTYxYyEYFXpZp3s8Yj0kv9mhi0cuCTlsVMuqRWbpL0Xuo8YpAotaQnhgoQSzEAMjhuZoywfMb0UCmyKP1HmSXzJBQxpqIn9zhxA0piCJoFdqXu/bOpmeCMBiF+ZoJJ0E7gp0/AKCF71M1xCkZ4NRWSCjAIdiQ7v9UlHAcPUdfQh1QJEd7ArOg0K1dTRHJAO2hg8zhoH2IVbYElvaPgR4ABAFM/gtHnpJfxAAAAAElFTkSuQmCC");
	background-repeat: no-repeat;
	background-position: center; 
}

system/css/fields/calendar-rtl.css000064400000010265152177723720013231 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
 .js-calendar {
	box-shadow: 0 0 15px 4px rgba(0,0,0,.15) !important;
 }
.calendar-container {
	float: left;
	min-width: 160px;
	padding: 0;
	list-style: none;
	border-radius: 5px;
	background-color: #ffffff !important;
	z-index: 1100 !important;
}
.calendar-container table {
	table-layout: fixed;
	max-width: 262px;
	border-radius: 5px;
	background-color: #ffffff !important;
	z-index: 1100 !important;
}
/* The main calendar widget.  DIV containing a table. */
div.calendar-container table th, .calendar-container table td {
	padding: 8px 0;
	line-height: 1.1em;
	text-align: center;
}

div.calendar-container table body td {
	line-height: 2em;
}

div.calendar-container table td.title { /* This holds the current "month, year" */
	vertical-align: middle;
	text-align: center;
}

.calendar-container table thead td.headrow { /* Row <TR> containing navigation buttons */
	background: #fff;
	color: #000;
}

.calendar-container table thead td.name { /* Cells <TD> containing the day names */
	border-bottom: 1px solid #fff;
	text-align: center;
	color: #000;
}

.calendar-container table thead td.weekend { /* How a weekend day name shows in header */
	color: #999;
}

/* The body part -- contains all the days in month. */

.calendar-container table tbody td.day { /* Cells <TD> containing month days dates */
	text-align: right;
}

.calendar-container table tbody td.wn {
	background: #fff;
}

.calendar-container table tbody td.weekend { /* Cells showing weekend days */
	color: #999;
}

.calendar-container table tbody td.hilite { /* Hovered cells <TD> */
	background: #999999;
	color: #ffffff;
}

.calendar-container table tbody td.day {
	border: 0;
	cursor : pointer;
	font-size: 12px;
	min-width: 38px;
}

.calendar-container table tbody td.day.wn {
	text-align: center;
	background-color: #f4f4f4;
}

.calendar-container table tbody td.day.selected { /* Cell showing today date */
	background: #3071a9;
	color: #fff;
	border: 0;
}

.calendar-container table tbody td.today {
	position: relative;
	height: 100%;
	width: auto;
	font-weight: bold;
}
.calendar-container table tbody td.today:after {
	position: absolute;
	bottom: 3px;
	left: 3px;
	right: 3px;
	content: "";
	height: 3px;
	border-radius: 1.5px;
	background-color: #46a546;
}
.calendar-container table tbody td.today.selected:after {
	background-color: #fff;
}

.calendar-container table tbody td.day:hover {
	cursor: pointer;
	background: #3d8fd7;
	color: #fff;
}
.calendar-container table tbody td.day:hover:after {
	background-color: #fff;
}

.calendar-container table tbody .disabled {
	color: #999;
	background-color: #fafafa;
}

.calendar-container table tbody .emptycell { /* Empty cells (the best is to hide them) */
	visibility: hidden;
}

.calendar-container table tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
	display: none;
}

.buttons-wrapper {
	padding: 5px 5px;
}
a.js-btn.btn.btn-exit, a.js-btn.btn.btn-today, a.js-btn.btn.btn-clear {
	cursor: pointer;
	text-decoration: none;
	min-width: 60px;
}
.calendar-container .calendar-head-row td {
	padding: 4px 0 !important;
}
.calendar-container .day-name {
	font-size: 0.7rem;
	font-weight: bold;
}
.calendar-container .time td {
	padding: 8px 8px 8px 0;
}
.time .time-title {
	background-image: url("data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNqklUsohFEUx7/5kgWGjEcRJULJSmJhITQLr8UoFko2k2SDLGZD2SglJcXOxo6Fx0ayUt4jWXgNG2rIwsgMJZPn/+o/dRvfa8yp33zfPfecM+e795x7bYqxtIAaUA2KgA3cgn3gBcsgrMQg3eAAfJtwBYa0Atg0dAugg+/3YAUcgkvqCkAVcIIy6raBCwT0/mRdymYG5Bt8VQoYBe+0Pwdpik6mwuAVNMawbJXgmr7e6FVokzKt1XBOZnYuneB54Jn+w/LEMZXTOo65nN80yNxNmyBIF4o6Ku6AXccpmzbzJstyQbs+FT/1VC6CFyU+mePTqbIBhBwp8csGn8UqO0qIz8AhstNBk8BP4As4RGCVyk8LgUVVlFvIXFXZ+4qUuZY8gn6W1QmYBKkadklM9PfLJriTYxYyEYFXpZp3s8Yj0kv9mhi0cuCTlsVMuqRWbpL0Xuo8YpAotaQnhgoQSzEAMjhuZoywfMb0UCmyKP1HmSXzJBQxpqIn9zhxA0piCJoFdqXu/bOpmeCMBiF+ZoJJ0E7gp0/AKCF71M1xCkZ4NRWSCjAIdiQ7v9UlHAcPUdfQh1QJEd7ArOg0K1dTRHJAO2hg8zhoH2IVbYElvaPgR4ABAFM/gtHnpJfxAAAAAElFTkSuQmCC");
	background-repeat: no-repeat;
	background-position: center; 
}

system/css/frontediting.css000064400000001031152177723720012076 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/* Module edit in front-end */

.jmoddiv.jmodinside {
    position: relative;
    top: 0;
    left: 0;
}
.btn.jmodedit
{
    z-index: 1001;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
}
html[dir=rtl] .btn.jmodedit
{
    right: auto;
    left: 0;
}

/* Menu edit in front-end */

.btn.jfedit-menu
{
    z-index: 1002;
    display: block;
}
system/css/modal.css000064400000005705152177723720010512 0ustar00/**
 * SqueezeBox - Expandable Lightbox
 *
 * Allows to open various content as modal,
 * centered and animated box.
 *
 * @version		1.3
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @author		Rouven Weßling <me [at] rouvenwessling.de>
 * @copyright	Author
 */

#sbox-overlay {
	position: fixed;
	background-color: #000;
	left: 0px;
	top: 0px;
}

#sbox-window {
	position: absolute;
	background-color: #fff;
	text-align: left;
	overflow: visible;
	padding: 10px;
	/* invalid values, but looks smoother! */
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
}

#sbox-window[aria-hidden=true],
#sbox-overlay[aria-hidden=true] {
	display: none;
}

#sbox-btn-close {
	position: absolute;
	width: 30px;
	height: 30px;
	right: -15px;
	top: -15px;
	background: url(../images/modal/closebox.png) no-repeat center;
	border: none;
}

.sbox-loading #sbox-content {
	background-image: url(../images/modal/spinner.gif);
	background-repeat: no-repeat;
	background-position: center;
}

#sbox-content {
	clear: both;
	overflow: auto;
	background-color: #fff;
	height: 100%;
	width: 100%;
}

.sbox-content-image#sbox-content {
	overflow: visible;
}

#sbox-image {
	display: block;
}

.sbox-content-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.sbox-content-iframe#sbox-content {
	overflow: visible;
}

/* Hides scrollbars */
.body-overlayed {
	overflow: hidden;
}

/* Hides flash (Firefox problem) and selects (IE) */
.body-overlayed embed, .body-overlayed object, .body-overlayed select {
	visibility: hidden;
}

#sbox-window embed, #sbox-window object, #sbox-window select {
	visibility: visible;
}

/* Shadows */
#sbox-window.shadow {
	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
	-moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
}

.sbox-bg {
	position: absolute;
	width: 33px;
	height: 40px;
}

.sbox-bg-n {
	left: 0;
	top: -40px;
	width: 100%;
	background: url(../images/modal/bg_n.png) repeat-x;
}
.sbox-bg-ne {
	right: -33px;
	top: -40px;
	background: url(../images/modal/bg_ne.png) no-repeat;
}
.sbox-bg-e {
	right: -33px;
	top: 0;
	height: 100%;
	background: url(../images/modal/bg_e.png) repeat-y;
}
.sbox-bg-se {
	right: -33px;
	bottom: -40px;
	background: url(../images/modal/bg_se.png) no-repeat;
}
.sbox-bg-s {
	left: 0;
	bottom: -40px;
	width: 100%;
	background: url(../images/modal/bg_s.png) repeat-x;
}
.sbox-bg-sw {
	left: -33px;
	bottom: -40px;
	background: url(../images/modal/bg_sw.png) no-repeat;
}
.sbox-bg-w {
	left: -33px;
	top: 0;
	height: 100%;
	background: url(../images/modal/bg_w.png) repeat-y;
}
.sbox-bg-nw {
	left: -33px;
	top: -40px;
	background: url(../images/modal/bg_nw.png) no-repeat;
}
@media (max-width: 979px) {
	#sbox-btn-close {
		right: -10px;
		top: -10px;
	}
}
@media (max-device-width: 979px) {
	#sbox-content {
		-webkit-overflow-scrolling: touch;
	}
	#sbox-content.sbox-content-iframe {
		overflow: scroll;
		-webkit-overflow-scrolling: touch;
	}
}
system/css/system.css000064400000002646152177723720010743 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/* System Messages */
#system-message {
	margin-bottom: 10px;
	padding: 0;
}

#system-message > dt {
	font-weight: bold;
	display: none;
}

#system-message > dd {
	margin: 0;
	font-weight: bold;
	text-indent: 30px;
}

#system-message > dd > ul {
	color: #0055BB;
	background-position: 4px top;
	background-repeat: no-repeat;
	margin-bottom: 10px;
	list-style: none;
	padding: 10px;
	border-top: 3px solid #84A7DB;
	border-bottom: 3px solid #84A7DB;
}

#system-message > dd > ul > li {
	line-height: 1.5em;
}

/* System Standard Messages */
#system-message > .message > ul {
	background-color: #C3D2E5;
	background-image: url(../images/notice-info.png);
}

/* System Error Messages */
#system-message > .error > ul,
#system-message > .warning > ul,
#system-message > .notice > ul {
	color: #c00;
}

#system-message > .error > ul {
	background-color: #E6C0C0;
	background-image: url(../images/notice-alert.png);
	border-color: #DE7A7B;
}

/* System Warning Messages */
#system-message > .warning > ul {
	background-color: #E6C8A6;
	background-image: url(../images/notice-note.png);
	border-color: #FFBB00;
}

/* System Notice Messages */
#system-message > .notice > ul {
	background-color: #EFE7B8;
	background-image: url(../images/notice-note.png);
	border-color: #F0DC7E;
}
system/css/mootree.css000064400000000753152177723720011066 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.mooTree_node {
	font-family: Verdana, Arial, Helvetica;
	font-size: 10px;
	white-space: nowrap;
}

.mooTree_text {
	padding-top: 3px;
	height: 15px;
	cursor: pointer;
}

.mooTree_img {
	float: left;
	width: 18px;
	height: 18px;
	overflow: hidden;
}

.mooTree_selected	 {
	background-color: #ffc;
	font-weight: bold;
}
system/css/jquery.Jcrop.min.css000064400000012241152177723720012564 0ustar00/*! Jcrop.min.css v2.0.4 - build: 20151117
 *  Copyright 2008-2015 Tapmodo Interactive LLC
 *  Free software under MIT License
 **/

.jcrop-active{direction:ltr;text-align:left;box-sizing:border-box;-ms-touch-action:none}.jcrop-dragging{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.jcrop-selection{z-index:2}.jcrop-selection.jcrop-current{z-index:4}.jcrop-border{background:#fff url(Jcrop.gif);line-height:1px!important;font-size:0!important;overflow:hidden;position:absolute;filter:alpha(opacity=50)!important;opacity:.5!important}.jcrop-border.ord-w,.jcrop-border.ord-e,.jcrop-border.ord-n{top:0}.jcrop-border.ord-n,.jcrop-border.ord-s{width:100%;height:1px!important}.jcrop-border.ord-w,.jcrop-border.ord-e{height:100%;width:1px!important}.jcrop-border.ord-e{right:-1px}.jcrop-border.ord-n{top:-1px}.jcrop-border.ord-w{left:-1px}.jcrop-border.ord-s{bottom:-1px}.jcrop-selection{position:absolute}.jcrop-box{z-index:2;display:block;background:0 0;border:0;padding:0;margin:0;font-size:0}.jcrop-box:hover{background:0 0}.jcrop-box:active{background:0 0}.jcrop-box:focus{outline:1px rgba(128,128,128,.65) dotted}.jcrop-active,.jcrop-box{position:relative}.jcrop-box{width:100%;height:100%;cursor:move}.jcrop-handle{z-index:4;background-color:rgba(49,28,28,.58);border:1px #eee solid;width:9px;height:9px;font-size:0;position:absolute;filter:alpha(opacity=80)!important;opacity:.8!important}.jcrop-handle.ord-n{left:50%;margin-left:-5px;margin-top:-5px;top:0;cursor:n-resize}.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}.jcrop-handle.ord-e{margin-right:-5px;margin-top:-5px;right:0;top:50%;cursor:e-resize}.jcrop-handle.ord-w{left:0;margin-left:-5px;margin-top:-5px;top:50%;cursor:w-resize}.jcrop-handle.ord-nw{left:0;margin-left:-5px;margin-top:-5px;top:0;cursor:nw-resize}.jcrop-handle.ord-ne{margin-right:-5px;margin-top:-5px;right:0;top:0;cursor:ne-resize}.jcrop-handle.ord-se{bottom:0;margin-bottom:-5px;margin-right:-5px;right:0;cursor:se-resize}.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}.jcrop-touch .jcrop-handle{z-index:4;background-color:rgba(49,28,28,.58);border:1px #eee solid;width:18px;height:18px;font-size:0;position:absolute;filter:alpha(opacity=80)!important;opacity:.8!important}.jcrop-touch .jcrop-handle.ord-n{left:50%;margin-left:-10px;margin-top:-10px;top:0;cursor:n-resize}.jcrop-touch .jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-10px;margin-left:-10px;cursor:s-resize}.jcrop-touch .jcrop-handle.ord-e{margin-right:-10px;margin-top:-10px;right:0;top:50%;cursor:e-resize}.jcrop-touch .jcrop-handle.ord-w{left:0;margin-left:-10px;margin-top:-10px;top:50%;cursor:w-resize}.jcrop-touch .jcrop-handle.ord-nw{left:0;margin-left:-10px;margin-top:-10px;top:0;cursor:nw-resize}.jcrop-touch .jcrop-handle.ord-ne{margin-right:-10px;margin-top:-10px;right:0;top:0;cursor:ne-resize}.jcrop-touch .jcrop-handle.ord-se{bottom:0;margin-bottom:-10px;margin-right:-10px;right:0;cursor:se-resize}.jcrop-touch .jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-10px;margin-left:-10px;cursor:sw-resize}.jcrop-dragbar{font-size:0;position:absolute}.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:9px!important;width:100%}.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{top:0;height:100%;width:9px!important}.jcrop-dragbar.ord-n{margin-top:-5px;cursor:n-resize;top:0}.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-5px;cursor:s-resize}.jcrop-dragbar.ord-e{margin-right:-5px;right:0;cursor:e-resize}.jcrop-dragbar.ord-w{margin-left:-5px;cursor:w-resize}.jcrop-shades{position:relative;top:0;left:0}.jcrop-shades div{cursor:crosshair}.jcrop-noresize .jcrop-dragbar,.jcrop-noresize .jcrop-handle{display:none}.jcrop-selection.jcrop-nodrag .jcrop-box,.jcrop-nodrag .jcrop-shades div{cursor:default}.jcrop-light .jcrop-border{background:#fff;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-light .jcrop-handle{background-color:#000;border-color:#fff}.jcrop-dark .jcrop-border{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-dark .jcrop-handle{background-color:#fff;border-color:#000}.solid-line .jcrop-border{background:#fff}.jcrop-thumb{position:absolute;overflow:hidden;z-index:5}.jcrop-active img,.jcrop-thumb img,.jcrop-thumb canvas{min-width:none;min-height:none;max-width:none;max-height:none}.jcrop-hl-active .jcrop-border{filter:alpha(opacity=20)!important;opacity:.2!important}.jcrop-hl-active .jcrop-handle{filter:alpha(opacity=10)!important;opacity:.1!important}.jcrop-hl-active .jcrop-selection:hover{}.jcrop-hl-active .jcrop-selection:hover .jcrop-border{background-color:#ccc;filter:alpha(opacity=50)!important;opacity:.5!important}.jcrop-hl-active .jcrop-selection.jcrop-current .jcrop-border{background:gray url(Jcrop.gif);opacity:.35!important;filter:alpha(opacity=35)!important}.jcrop-hl-active .jcrop-selection.jcrop-current .jcrop-handle{filter:alpha(opacity=30)!important;opacity:.3!important}.jcrop-hl-active .jcrop-selection.jcrop-focus .jcrop-border{background:url(Jcrop.gif);opacity:.65!important;filter:alpha(opacity=65)!important}.jcrop-hl-active .jcrop-selection.jcrop-focus .jcrop-handle{filter:alpha(opacity=60)!important;opacity:.6!important}button.jcrop-box{background:0 0}system/css/mootree_rtl.css000064400000000313152177723720011737 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.mooTree_img {
	float: right;
}system/css/adminlist.css000064400000010731152177723720011375 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/* Common CSS for adminlist grids */

html, body {
	background-color: #F0F0F0;
	color: ButtonText;
	font-family: Tahoma, Verdana, sans-serif !important;
	margin: 0 !important;
	padding: 0 !important;
}

table.adminlist {
	width: 99%;
	border-spacing: 1px;
	background-color: #f3f3f3;
	color: #666;
	font-size: 11px;
}

table.adminlist td,
table.adminlist th {
	padding: 4px !important;
	font-size: 11px;
}

table.adminlist thead th {
	text-align: center;
	background: #f7f7f7;
	color: #666;
	border-bottom: 1px solid #CCC;
	border-left: 1px solid #fff;
}

table.adminlist thead th.left {
	text-align: left;
}

table.adminlist thead a:hover {
	text-decoration: none;
}

table.adminlist thead th img {
	vertical-align: middle;
	padding-left: 3px;
}

table.adminlist tbody th {
	font-weight: bold;
}

table.adminlist th a img {
	border: 0;
}

table.adminlist tbody tr {
	background-color: #fff;
	text-align: left;
}

table.adminlist tbody tr.row0:hover td,
table.adminlist tbody tr.row1:hover td {
	background-color: #e8f6fe;
}

table.adminlist tbody tr td {
	background: #fff;
	border: 1px solid #fff;
}

table.adminlist tbody tr.row1 td {
	background: #f0f0f0;
	border-top: 1px solid #FFF;
}

table.adminlist tfoot tr {
	text-align: center;
	color: #333;
}

table.adminlist tfoot td,table.adminlist tfoot th {
	background-color: #f7f7f7;
	border-top: 1px solid #999;
	text-align: center;
}

table.adminlist td.order {
	text-align: center;
	white-space: nowrap;
	width: 200px;
}

table.adminlist td.order span {
	float: left;
	width: 20px;
	text-align: center;
	background-repeat: no-repeat;
	height: 13px;
}

table.adminlist .pagination {
	display: inline-block;
	padding: 0;
	margin: 0 auto;
}

/* Tree indentation & nesting - Up to 10 levels deep so don't go crazy :) */
table.adminlist td.indent-4		{ padding-left: 4px; }
table.adminlist td.indent-19	{ padding-left: 19px; }
table.adminlist td.indent-34	{ padding-left: 34px; }
table.adminlist td.indent-49	{ padding-left: 49px; }
table.adminlist td.indent-64	{ padding-left: 64px; }
table.adminlist td.indent-79	{ padding-left: 79px; }
table.adminlist td.indent-94	{ padding-left: 94px; }
table.adminlist td.indent-109	{ padding-left: 109px; }
table.adminlist td.indent-124	{ padding-left: 124px; }
table.adminlist td.indent-139	{ padding-left: 139px; }

table.adminlist tr td.btns a {
	text-decoration: underline;
}

/* added Angie */

/* Filter Form */
fieldset ol,
ol#property-values {
	margin: 0;
	padding: 0;
}

fieldset li,
ol#property-values li {
	list-style: none;
	margin: 0;
	padding: 5px;
}

fieldset.filter {
	border: 0;
	margin: 0;
	padding: 0 0 5px;
}

fieldset.filter ol {
	border: 0;
	list-style: none;
	margin: 0;
	padding: 5px 0 0;
}

fieldset.filter ol li {
	float: left;
	padding: 0 5px 0 0;
}

fieldset.filter ol li fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

fieldset.filter .left {
	float: left;
	width: auto;
	margin: 0;
	text-align: left;
}

fieldset.filter .left label {
	float: left;
	padding: 2px;
}

fieldset.filter .right {
	float: right;
}

fieldset#buttonbar {
	border: 0;
	text-align: right;
}

fieldset#buttonbar ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

fieldset#buttonbar li {
	margin: 0;
	padding: 5px;
}

button {
	margin-top: 4px;
	background: #fff;
	border: 1px solid #ccc;
	text-decoration: none;
}

button:hover {
	cursor: pointer;
	background: #E8F6FE;
	text-decoration: none;
	border: 1px solid #aaa;
}

fieldset input,
fieldset textarea,
fieldset select,
fieldset img {
	float: left;
	width: auto;
	margin: 5px 5px 5px 0;
	font-size: 11px !important;
}

.list-footer div.limit {
	float: left;
	line-height: 22px;
	margin: 0 10px;
}

.list-footer div.limit select#limit {
	width: 50px;
}

/* ++++++++++++++  pagination  ++++++++++++++ */

.list-footer {
	margin: 10px 0;
	padding: 10px 0 10px 0;
	text-align: center;
}

table .list-footer ul {
	list-style-type: none;
	margin: 0 !important;
	padding: 0;
	text-align: left;
	border: solid 0 #ccc;
	float: left;
}

.list-footer li {
	display: inline;
	padding: 2px 5px !important;
	text-align: left;
	border: solid 0 #eee;
	margin: 0 2px;
	font-size: 11px;
}

.list-footer li.pagination-start,
.list-footer li.pagination-next,
.list-footer li.pagination-end,
.list-footer li.pagination-prev {
	border: 0;
}

.list-footer li.pagination-start ,
.list-footer li.pagination-start span {
	padding: 4px;
}

p.counter {
	font-weight: bold;
}
system/css/calendar-jos.css000064400000007473152177723720011764 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/* The main calendar widget.  DIV containing a table. */
div.calendar {
	position: relative;
	z-index: 10000;
	width: 226px;
}

.calendar, .calendar table {
	border: 1px solid #cccccc;
	font-size: 11px;
	color: #000;
	cursor: default;
	background: #efefef;
	font-family: arial,verdana,sans-serif;
}

/* Header part -- contains navigation buttons and day names. */

.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
	text-align: center;    /* They are the navigation buttons */
	padding: 2px;          /* Make the buttons seem like they're pressing */
}

.calendar thead .title { /* This holds the current "month, year" */
	font-weight: bold;      /* Pressing it will take you to the current date */
	text-align: center;
	background: #333333;
	color: #ffffff;
	padding: 2px;
}

.calendar thead .headrow { /* Row <TR> containing navigation buttons */
	background: #dedede;
	color: #000;
}

.calendar thead .name { /* Cells <TD> containing the day names */
	border-bottom: 1px solid #cccccc;
	padding: 2px;
	text-align: center;
	color: #000;
}

.calendar thead .weekend { /* How a weekend day name shows in header */
	color: #999;
}

.calendar thead .hilite { /* How do the buttons in header appear when hover */
	background: #bbbbbb;
	color: #000000;
	border: 1px solid #cccccc;
	padding: 1px;
}

.calendar thead .active { /* Active (pressed) buttons in header */
	background: #c77;
	padding: 2px 0px 0px 2px;
}

.calendar thead .daynames { /* Row <TR> containing the day names */
	background: #dddddd;
}

/* The body part -- contains all the days in month. */

.calendar tbody .day { /* Cells <TD> containing month days dates */
	width: 2em;
	text-align: right;
	padding: 2px 4px 2px 2px;
}

.calendar table .wn {
	padding: 2px 3px 2px 2px;
	border-right: 1px solid #cccccc;
	background: #dddddd;
}

.calendar tbody .rowhilite td {
	background: #666666;
	color: #ffffff;
}

.calendar tbody .rowhilite td.wn {
	background: #666666;
	color: #ffffff;
}

.calendar tbody td.active { /* Active (pressed) cells <TD> */
	background: #000000;
	color: #ffffff;
}

.calendar tbody td.weekend { /* Cells showing weekend days */
	color: #999;
}

.calendar tbody td.selected { /* Cell showing today date */
	font-weight: bold;
	background: #000000;
	color: #ffffff;
}

.calendar tbody td.hilite { /* Hovered cells <TD> */
	background: #999999;
	color: #ffffff;
}

.calendar tbody td.today {
	font-weight: bold;
}

.calendar tbody .disabled {
	color: #999;
}

.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
	visibility: hidden;
}

.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
	display: none;
}

/* The footer part -- status bar and "Close" button */

.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
	text-align: center;
	background: #cccccc;
	color: #000;
}

.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
	border-top: 1px solid #cccccc;
	background: #efefef;
	color: #000000;
}

.calendar tfoot .hilite { /* Hover style for buttons in footer */
	background: #666666;
	border: 1px solid #f40;
	padding: 1px;
}

.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
	background: #999999;
	padding: 2px 0px 0px 2px;
}

/* Combo boxes (menus that display months/years for direct selection) */

.combo {
	position: absolute;
	display: none;
	top: 0px;
	left: 0px;
	width: 4em;
	cursor: default;
	border: 1px solid #655;
	background: #ffffff;
	color: #000;
	font-size: smaller;
}

.combo .label {
	width: 100%;
	text-align: center;
}

.combo .hilite {
	background: #fc8;
}

.combo .active {
	border-top: 1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
	background: #efefef;
	font-weight: bold;
}
system/js/helpsite.js000064400000002053152177723720010674 0ustar00/**
 * @package		Joomla.JavaScript
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * gets the help site with ajax
 */
jQuery(document).ready(function() {
	jQuery('#helpsite-refresh').click(function()
	{
		// Uses global variable helpsite_base for bast uri
		var select_id   = jQuery(this).attr('rel');
		var showDefault = jQuery(this).attr('showDefault');

		jQuery.getJSON('index.php?option=com_users&task=profile.gethelpsites&format=json', function(data){
			// The response contains the options to use in help site select field
			var items = [];

			// Build options
			jQuery.each(data, function(key, val) {
				if (val.value !== '' || showDefault === 'true') {
					items.push('<option value="' + val.value + '">' + val.text + '</option>');
				}
			});

			// Replace current select options. The trigger is needed for Chosen select box enhancer
			jQuery("#" + select_id).empty().append(items).trigger("liszt:updated");
		});
	});
});
system/js/validate.js000064400000006056152177723720010657 0ustar00var JFormValidator=function(){"use strict";var t,e,a,r=function(e,a,r){r=""===r||r,t[e]={enabled:r,exec:a}},n=function(t,e){var a,r,n,i,l=e.data("label");void 0===l&&(a=e.attr("id"),r=e.get(0).form,i=jQuery(r),l=!!a&&((n=i.find("#"+a+"-lbl")).length?n:!!(n=i.find('label[for="'+a+'"]')).length&&n),e.data("label",l)),!1===t?(e.addClass("invalid").attr("aria-invalid","true"),l&&l.addClass("invalid")):(e.removeClass("invalid").attr("aria-invalid","false"),l&&l.removeClass("invalid"))},i=function(e){var a,r=jQuery(e);if(r.attr("disabled"))return n(!0,r),!0;if(r.attr("required")||r.hasClass("required"))if("fieldset"===r.prop("tagName").toLowerCase()&&(r.hasClass("radio")||r.hasClass("checkboxes"))){if(!r.find("input:checked").length)return n(!1,r),!1}else if(!r.val()||r.hasClass("placeholder")||"checkbox"===r.attr("type")&&!r.is(":checked"))return n(!1,r),!1;return a=r.attr("class")&&r.attr("class").match(/validate-([a-zA-Z0-9\_\-]+)/)?r.attr("class").match(/validate-([a-zA-Z0-9\_\-]+)/)[1]:"",r.attr("pattern")&&""!=r.attr("pattern")?r.val().length?(l=new RegExp("^"+r.attr("pattern")+"$").test(r.val()),n(l,r),l):r.attr("required")||r.hasClass("required")?(n(!1,r),!1):(n(!0,r),!0):""===a?(n(!0,r),!0):a&&"none"!==a&&t[a]&&r.val()&&!0!==t[a].exec(r.val(),r)?(n(!1,r),!1):(n(!0,r),!0)},l=function(t){var e,r,n,l,s,u,o=!0,d=[];for(s=0,u=(e=jQuery(t).find("input, textarea, select, fieldset")).length;s<u;s++)jQuery(e[s]).hasClass("novalidate")||!1===i(e[s])&&(o=!1,d.push(e[s]));if(jQuery.each(a,function(t,e){!0!==e.exec()&&(o=!1)}),!o&&d.length>0){for(r=Joomla.JText._("JLIB_FORM_FIELD_INVALID"),n={error:[]},s=d.length-1;s>=0;s--)(l=jQuery(d[s]).data("label"))&&n.error.push(r+l.text().replace("*",""));Joomla.renderMessages(n)}return o},s=function(t){for(var a,r=[],n=jQuery(t),s=0,u=(a=n.find("input, textarea, select, fieldset, button")).length;s<u;s++){var o=jQuery(a[s]),d=o.prop("tagName").toLowerCase();"input"!==d&&"button"!==d||"submit"!==o.attr("type")&&"image"!==o.attr("type")?"button"===d||"input"===d&&"button"===o.attr("type")||(o.hasClass("required")&&o.attr("aria-required","true").attr("required","required"),"fieldset"!==d&&(o.on("blur",function(){return i(this)}),o.hasClass("validate-email")&&e&&a[s].setAttribute("type","email")),r.push(o)):o.hasClass("validate")&&o.on("click",function(){return l(t)})}n.data("inputfields",r)};return function(){var n;t={},a=a||{},(n=document.createElement("input")).setAttribute("type","email"),e="text"!==n.type,r("username",function(t,e){return!new RegExp("[<|>|\"|'|%|;|(|)|&]","i").test(t)}),r("password",function(t,e){return/^\S[\S ]{2,98}\S$/.test(t)}),r("numeric",function(t,e){return/^(\d|-)?(\d|,)*\.?\d*$/.test(t)}),r("email",function(t,e){return t=punycode.toASCII(t),/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)});for(var i=jQuery("form.form-validate"),l=0,u=i.length;l<u;l++)s(i[l])}(),{isValid:l,validate:i,setHandler:r,attachToForm:s,custom:a}};document.formvalidator=null,jQuery(function(){document.formvalidator=new JFormValidator});
system/js/progressbar-uncompressed.js000064400000005437152177723720014126 0ustar00/*
 name: Fx.ProgressBar

 description: Creates a progressbar with WAI-ARIA and optional HTML5 support.

 license: MIT-style

 authors:
 - Harald Kirschner <mail [at] digitarald [dot] de>
 - Rouven Weßling <me [at] rouvenwessling [dot] de>

 requires: [Core/Fx, Core/Class, Core/Element]

 provides: Fx.ProgressBar
 */

Fx.ProgressBar = function(_element, _options) {
    var $, useHtml5, now, $element, indeterminate, options = {
        onComplete : function() {
        },
        text : null,
        html5 : true
    },
    
    initialize = function(_element, _options) {
        $ = jQuery.noConflict();
        $.extend(options, _options);

        var element, classes = $(_element).attr('class'), id = $(_element).attr('id'), progress;

        element = $(_element).get(0);
        useHtml5 = options.html5 && supportsHtml5();
        if (useHtml5) {
            progress = $('<progress></progress>', {
                'value' : 10,
                'max' : 100,
                'class' : classes,
                'id' : id
            });
            $(element).replaceWith(progress);
            element = progress;
        } else {
            progress = $('<div>', {
                'id' : id,
                'class' : classes,
                'class' : 'progress progress-striped',
                'role' : 'progressbar',
                'aria-valuenow' : '0', // WAI-ARIA
                'aria-valuemin' : '0',
                'aria-valuemax' : '100'
            }).html($('<div>', {
                'class' : 'bar'
            })).get(0);
            $(element).replaceWith(progress);
            element = progress;
        }

        $element = $(element);
        set(0);
    },
    
    supportsHtml5 = function() {
        return 'value' in document.createElement('progress');
    },
    
    setIndeterminate = function() {
        indeterminate = true;

        if (useHtml5) {
            $element.removeAttr('value');
        } else {
            $element.find('.bar').css('width', '100%').addClass('active');
            $element.removeAttr('aria-valuenow').attr('title', '');
        }
    },
    
    set = function(to) {
        var $text = $(options.text);

        if (to >= 100) {
            to = 100;
        }
        now = to;

        if (useHtml5) {
            $element.val(to);
        } else {
            $element.find('.bar').css('width', to + '%');
            $element.removeAttr('aria-valuenow').attr('title', Math.round(to) + '%');
        }

        if ($text.length) {
            $text.text(Math.round(to) + '%');
        }
        if (to >= 100) {
            options.onComplete('complete');
        }

        return this;
    };
    
    initialize(_element, _options);

    return {
        set : set,
        setIndeterminate : setIndeterminate,
        element : $element.get(0)
    };
}
system/js/fields/calendar-locales/ga.js000064400000001302152177723720014101 0ustar00window.JoomlaCalLocale = {
	today : "Inniu",
	weekend : [0, 6],
	wk : "7n",
	time : "Am:",
	days : ["Dé Domhnaigh", "Dé Luain", "Dé Máirt", "Dé Céadaoin", "Déardaoin", "Dé hAoine", "Dé Sathairn"],
	shortDays : ["Domh", "Luan", "Máirt", "Céad", "Déar", "Aoine", "Sath"],
	months : ["Eanáir", "Feabhra", "Márta", "Aibreán", "Bealtaine", "Meitheamh", "Iúil", "Lúnasa", "Meán Fómhair", "Deireadh Fómhair", "Samhain", "Nollaig"],
	shortMonths : ["Ean", "Feabh", "Márta", "Aib", "Beal", "Meith", "Iúil", "Lún", "MFómh", "DFómh", "Samh", "Noll"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Dún",
	clear: "Glan"
};
system/js/fields/calendar-locales/fa-ir.js000064400000001524152177723720014516 0ustar00window.JoomlaCalLocale = {
	today : "امروز",
	weekend : [5],
	wk : "هفته",
	time : "زمان",
	days : ["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],
	shortDays : ["یک","دو","سه","چهار","پنج","جمعه","شنبه"],
	months : ["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],
	shortMonths : ["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],
	AM : "ق.ظ.",
	PM :  "ب.ظ.",
	am : "ق.ظ.",
	pm : "ب.ظ.",
	dateType : "jalali",
	minYear : 1268,
	maxYear : 1458,
	exit: "بستن",
	clear: "پاک",
	localLangNumbers: ["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"]
};system/js/fields/calendar-locales/sl.js000064400000001156152177723720014137 0ustar00window.JoomlaCalLocale = {
	today : "Danes",
	weekend : [0, 6],
	wk : "td",
	time : "Čas:",
	days : ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"],
	shortDays : ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"],
	months : ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zapri",
	clear: "Počisti"
};system/js/fields/calendar-locales/zh-CN.js000064400000001235152177723720014436 0ustar00window.JoomlaCalLocale = {
	today : "今天",
	weekend : [0, 6],
	wk : "星期",
	time : "时间",
	days : ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
	shortDays : ["日", "一", "二", "三", "四", "五", "六"],
	months : ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
	shortMonths : ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
	AM : "上午",
	PM :  "下午",
	am : "上午",
	pm : "下午",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "关闭",
	clear: "清除"
};system/js/fields/calendar-locales/af.js000064400000001156152177723720014107 0ustar00window.JoomlaCalLocale = {
	today : "Vandag",
	weekend : [0, 6],
	wk : "wk",
	time : "Tyd:",
	days : ["Sondag", "Maandag", "Dinsdag", "Woensdag", "Donnerdag", "Vrydag", "Saterdag"],
	shortDays : ["So", "Ma", "Di", "Wo", "Do", "Vr", "Sa"],
	months : ["Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
	AM : "VM",
	PM : "NM",
	am : "vm",
	pm : "nm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Sluit",
	clear: "Stoor"
};
system/js/fields/calendar-locales/fi.js000064400000001245152177723720014116 0ustar00window.JoomlaCalLocale = {
	today : "Tänään",
	weekend : [0, 6],
	wk : "vk",
	time : "Aika:",
	days : ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"],
	shortDays : ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"],
	months : ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"],
	shortMonths : ["Tammi", "Helmi", "Maalis", "Huhti", "Touko", "Kesä", "Heinä", "Elo", "Syys", "Loka", "Marras", "Joulu"],
	AM : "AP",
	PM :  "IP",
	am : "ap",
	pm : "ip",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Sulje",
	clear: "Tyhjennä"
};system/js/fields/calendar-locales/ja.js000064400000001217152177723720014111 0ustar00window.JoomlaCalLocale = {
	today : "今日",
	weekend : [0, 6],
	wk : "週",
	time : "時間:",
	days : ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"],
	shortDays : ["日", "月", "火", "水", "木", "金", "土"],
	months : ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
	shortMonths : ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
	AM : "午前",
	PM :  "午後",
	am : "午前",
	pm : "午後",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "閉じる",
	clear: "クリア"
};system/js/fields/calendar-locales/ru.js000064400000001473152177723720014151 0ustar00window.JoomlaCalLocale = {
	today : "Сегодня",
	weekend : [0, 6],
	wk : "нед",
	time : "Время:",
	days : ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
	shortDays : ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
	months : ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
	shortMonths : ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Закрыть",
	clear: "Очистить"
};
system/js/fields/calendar-locales/kk.js000064400000001506152177723720014125 0ustar00window.JoomlaCalLocale = {
	today : "Бүгін",
	weekend : [0, 6],
	wk : "апта",
	time : "Уақыт:",
	days : ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі"],
	shortDays : ["Жекс", "Дүйс", "Сейс", "Сәрс", "Бейс", "Жұма", "Сенбі"],
	months : ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"],
	shortMonths : ["Қаң", "Ақп", "Нау", "Сәу", "Мам", "Мау", "Шіл", "Там", "Қырк", "Қаз", "Қар", "Жел"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Жабу",
	clear: "Өшіру"
};system/js/fields/calendar-locales/th.js000064400000001761152177723720014136 0ustar00window.JoomlaCalLocale = {
	today : "วันนี้",
	weekend : [0, 6],
	wk : "สัปดาห์",
	time : "เวลา:",
	days : ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์"],
	shortDays : ["อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."],
	months : ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฏาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
	shortMonths : ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "ปิด",
	clear: "ล้าง"
};system/js/fields/calendar-locales/hu.js000064400000001222152177723720014127 0ustar00window.JoomlaCalLocale = {
	today : "Ma",
	weekend : [0, 6],
	wk : "hét",
	time : "Időpont:",
	days : ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
	shortDays : ["V", "H", "K", "Sze", "Cs", "P", "Szo"],
	months : ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
	shortMonths : ["jan", "febr", "márc", "ápr", "máj", "jún", "júl", "aug", "szept", "okt", "nov", "dec"],
	AM : "de.",
	PM :  "du.",
	am : "de.",
	pm : "du.",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Bezárás",
	clear: "Törlés"
};system/js/fields/calendar-locales/es.js000064400000001154152177723720014126 0ustar00window.JoomlaCalLocale = {
	today : "Hoy",
	weekend : [0, 6],
	wk : "Sem",
	time : "Hora:",
	days : ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
	shortDays : ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sá"],
	months : ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
	shortMonths : ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Cerrar",
	clear: "Limpiar"
};
system/js/fields/calendar-locales/cs.js000064400000001175152177723720014127 0ustar00window.JoomlaCalLocale = {
	today : "dnes",
	weekend : [0, 6],
	wk : "kt",
	time : "čas:",
	days : ["neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"],
	shortDays : ["ne", "po", "út", "st", "čt", "pá", "so"],
	months : ["leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec"],
	shortMonths : ["led", "úno", "bře", "dub", "kvě", "čen", "čec", "srp", "zář", "říj", "lis", "pro"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "zavřít",
	clear: "vymazat"
};system/js/fields/calendar-locales/bg.js000064400000001462152177723720014111 0ustar00window.JoomlaCalLocale = {
	today : "Днес",
	weekend : [0, 6],
	wk : "седм",
	time : "Време:",
	days : ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
	shortDays : ["Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб"],
	months : ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
	shortMonths : ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Затвори",
	clear: "Изчисти"
};system/js/fields/calendar-locales/zh-TW.js000064400000001142152177723720014465 0ustar00window.JoomlaCalLocale = {
	today : "今天",
	weekend : [0, 6],
	wk : "週",
	time : "時間:",
	days : ["日", "一", "二", "三", "四", "五", "六"],
	shortDays : ["日", "一", "二", "三", "四", "五", "六"],
	months : ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
	shortMonths : ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "關閉",
	clear: "清除"
};
system/js/fields/calendar-locales/it.js000064400000001175152177723720014136 0ustar00window.JoomlaCalLocale = {
	today : "Oggi",
	weekend : [0, 6],
	wk : "set",
	time : "Ora:",
	days : ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
	shortDays : ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
	months : ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
	shortMonths : ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Chiudi",
	clear: "Annulla"
};system/js/fields/calendar-locales/pl.js000064400000001227152177723720014133 0ustar00window.JoomlaCalLocale = {
	today : "Dzisiaj",
	weekend : [0, 6],
	wk : "tydz",
	time : "Godzina:",
	days : ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
	shortDays : ["nie.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob."],
	months : ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
	shortMonths : ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zamknij",
	clear: "Wyczyść"
};system/js/fields/calendar-locales/pt.js000064400000001215152177723720014140 0ustar00window.JoomlaCalLocale = {
	today : "Hoje",
	weekend : [0, 6],
	wk : "sem",
	time : "Hora:",
	days : ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"],
	shortDays : ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"],
	months : ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
	shortMonths : ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Fechar",
	clear: "Limpar"
};
system/js/fields/calendar-locales/bn.js000064400000002423152177723720014116 0ustar00window.JoomlaCalLocale = {
	today : "আজ",
	weekend : [0, 6],
	wk : "সপ্তাহ",
	time : "সময়:",
	days : ["রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"],
	shortDays : ["রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি"],
	months : ["জানুয়ারি", "ফেব্রুয়ারি", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"],
	shortMonths : ["জানুয়ারি", "ফেব্রুয়ারি", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"],
	AM : "পূর্বাহ্ণ",
	PM : "অপরাহ্ন",
	am : "পূর্বাহ্ণ",
	pm : "অপরাহ্ন",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "প্রস্থান",
	clear: "সংরক্ষণ"
};system/js/fields/calendar-locales/bs.js000064400000001163152177723720014123 0ustar00window.JoomlaCalLocale = {
	today : "Danas",
	weekend : [0, 6],
	wk : "se",
	time : "Vrijeme:",
	days : ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
	shortDays : ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
	months : ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zatvori",
	clear: "Snimi"
};system/js/fields/calendar-locales/ta.js000064400000001771152177723720014130 0ustar00window.JoomlaCalLocale = {
	today : "இன்று",
	weekend : [0, 6],
	wk : "வா",
	time : "நேரம்:",
	days : ["ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"],
	shortDays : ["ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"],
	months : ["ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்ட்", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"],
	shortMonths : ["ஜன", "பிப்", "மார்", "ஏப்", "மே", "ஜூன்", "ஜூலை", "ஆக", "செப்", "அக்", "நவ", "டிச"],
	AM : "முப",
	PM : "பிப",
	am : "முப",
	pm : "பிப",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "மூடுக",
	clear: "துடைக்க"
};system/js/fields/calendar-locales/sw.js000064400000001163152177723720014150 0ustar00window.JoomlaCalLocale = {
	today : "Leo",
	weekend : [0, 6],
	wk : "wk",
	time : "Saa:",
	days : ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"],
	shortDays : ["Jmp", "Jmt", "Jmn", "Jtn", "Alh", "Ijm", "Jmm"],
	months : ["Januari", "Februari", "Machi", "Aprili", "Mai", "Juni", "Julai", "Augosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
	shortMonths : ["Jan", "Feb", "Mach", "Apr", "Mai", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Funga",
	clear: "Safisha"
};system/js/fields/calendar-locales/uk.js000064400000001555152177723720014143 0ustar00window.JoomlaCalLocale = {
	today : "Сьогодні",
	weekend : [0, 6],
	wk : "тждн.",
	time : "Час:",
	days : ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"],
	shortDays : ["Нд.", "Пн.", "Вт.", "Ср.", "Чт.", "Пт.", "Сб."],
	months : ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
	shortMonths : ["Січ.", "Лют.", "Бер.", "Квіт.", "Трав.", "Черв.", "Лип.", "Серп.", "Вер.", "Жовт.", "Лист.", "Груд."],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Закрити",
	clear: "Очистити"
};system/js/fields/calendar-locales/de.js000064400000001172152177723720014107 0ustar00window.JoomlaCalLocale = {
	today : "Heute",
	weekend : [0, 6],
	wk : "KW",
	time : "Uhrzeit:",
	days : ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
	shortDays : ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
	months : ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
	shortMonths : ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Schließen",
	clear: "Leeren"
};
system/js/fields/calendar-locales/hr.js000064400000001205152177723720014125 0ustar00window.JoomlaCalLocale = {
	today : "Danas",
	weekend : [0, 6],
	wk : "tj",
	time : "Vrijeme:",
	days : ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
	shortDays : ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
	months : ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
	shortMonths : ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zatvori",
	clear: "Otkaži"
};system/js/fields/calendar-locales/sv.js000064400000001154152177723720014147 0ustar00window.JoomlaCalLocale = {
	today : "Idag",
	weekend : [0, 6],
	wk : "vk",
	time : "Tid:",
	days : ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"],
	shortDays : ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"],
	months : ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
	AM : "FM",
	PM :  "EM",
	am : "fm",
	pm : "em",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Stäng",
	clear: "Rensa"
};system/js/fields/calendar-locales/sk.js000064400000001214152177723720014131 0ustar00window.JoomlaCalLocale = {
	today : "Dnes",
	weekend : [0, 6],
	wk : "týž.",
	time : "Čas:",
	days : ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
	shortDays : ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob"],
	months : ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
	AM : "DOPOL.",
	PM :  "POPOL.",
	am : "dopol.",
	pm : "popol.",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zavrieť",
	clear: "Vymazať"
};
system/js/fields/calendar-locales/prs-af.js000064400000001524152177723720014710 0ustar00window.JoomlaCalLocale = {
	today : "امروز",
	weekend : [5],
	wk : "هفته",
	time : "زمان",
	days : ["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],
	shortDays : ["یک","دو","سه","چهار","پنج","جمعه","شنبه"],
	months : ["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],
	shortMonths : ["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],
	AM : "ق.ظ.",
	PM :  "ب.ظ.",
	am : "ق.ظ.",
	pm : "ب.ظ.",
	dateType : "jalali",
	minYear : 1268,
	maxYear : 1458,
	exit: "بستن",
	clear: "پاک",
	localLangNumbers: ["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"]
};system/js/fields/calendar-locales/mk.js000064400000001474152177723720014133 0ustar00window.JoomlaCalLocale = {
	today : "Денес",
	weekend : [0, 6],
	wk : "нед",
	time : "Време:",
	days : ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"],
	shortDays : ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб"],
	months : ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"],
	shortMonths : ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Затвори",
	clear: "Зачувај"
};system/js/fields/calendar-locales/fr.js000064400000001177152177723720014133 0ustar00window.JoomlaCalLocale = {
	today : "Aujourd'hui",
	weekend : [0, 6],
	wk : "wk",
	time : "Heure&nbsp;:",
	days : ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
	shortDays : ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
	months : ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
	shortMonths : ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Juol", "Aoû", "Sep", "Oct", "Nov", "Déc"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Fermer",
	clear: "Effacer"
};system/js/fields/calendar-locales/nl.js000064400000001166152177723720014133 0ustar00window.JoomlaCalLocale = {
	today : "Vandaag",
	weekend : [0, 6],
	wk : "wk",
	time : "Tijd:",
	days : ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
	shortDays : ["Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"],
	months : ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
	shortMonths : ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Sluiten",
	clear: "Legen"
};system/js/fields/calendar-locales/lt.js000064400000001260152177723720014134 0ustar00window.JoomlaCalLocale = {
	today : "Šiandien",
	weekend : [0, 6],
	wk : "wk",
	time : "Laikas:",
	days : ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
	shortDays : ["Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš"],
	months : ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsšjis", "Spalis", "Lapkritis", "Gruodis"],
	shortMonths : ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rug", "Rgs", "Spa", "Lap", "Grd"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Uždaryti",
	clear: "Išvalyti"
};system/js/fields/calendar-locales/date/gregorian/date-helper.js000064400000032004152177723720020601 0ustar00!(function(Date){
	'use strict';

	/****************** Gregorian dates ********************/
	/** Constants used for time computations */
	Date.SECOND = 1000 /* milliseconds */;
	Date.MINUTE = 60 * Date.SECOND;
	Date.HOUR   = 60 * Date.MINUTE;
	Date.DAY    = 24 * Date.HOUR;
	Date.WEEK   =  7 * Date.DAY;

	/** MODIFY ONLY THE MARKED PARTS OF THE METHODS **/
	/************ START *************/
	/** INTERFACE METHODS FOR THE CALENDAR PICKER **/

	/********************** *************************/
	/**************** SETTERS ***********************/
	/********************** *************************/

	/** Sets the date for the current date without h/m/s. */
	Date.prototype.setLocalDateOnly = function (dateType, date) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			var tmp = new Date(date);
			this.setDate(1);
			this.setFullYear(tmp.getFullYear());
			this.setMonth(tmp.getMonth());
			this.setDate(tmp.getDate());
		}
	};

	/** Sets the full date for the current date. */
	Date.prototype.setLocalDate = function (dateType, d) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			return this.setDate(d);
		}
	};

	/** Sets the month for the current date. */
	Date.prototype.setLocalMonth = function (dateType, m, d) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			if (d == undefined) this.getDate();
			return this.setMonth(m);
		}
	};

	/** Sets the year for the current date. */
	Date.prototype.setOtherFullYear = function(dateType, y) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			var date = new Date(this);
			date.setFullYear(y);
			if (date.getMonth() != this.getMonth()) this.setDate(28);
			return this.setUTCFullYear(y);
		}
	};

	/** Sets the year for the current date. */
	Date.prototype.setLocalFullYear = function (dateType, y) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			var date = new Date(this);
			date.setFullYear(y);
			if (date.getMonth() != this.getMonth()) this.setDate(28);
			return this.setFullYear(y);
		}
	};

	/********************** *************************/
	/**************** GETTERS ***********************/
	/********************** *************************/

	/** The number of days per week **/
	Date.prototype.getLocalWeekDays = function (dateType, y) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return 6;
		} else {
			return 6; // 7 days per week
		}
	};

	/** Returns the year for the current date. */
	Date.prototype.getOtherFullYear = function (dateType) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			return this.getFullYear();
		}
	};

	/** Returns the year for the current date. */
	Date.prototype.getLocalFullYear = function (dateType) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			return this.getFullYear();
		}
	};

	/** Returns the month the date. */
	Date.prototype.getLocalMonth = function (dateType) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			return this.getMonth();
		}
	};

	/** Returns the date. */
	Date.prototype.getLocalDate = function (dateType) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			return this.getDate();
		}
	};

	/** Returns the number of day in the year. */
	Date.prototype.getLocalDay = function(dateType) {
		if (dateType  != 'gregorian') {
			return '';
		} else {
			return this.getDay();
		}
	};

	/** Returns the number of days in the current month */
	Date.prototype.getLocalMonthDays = function(dateType, month) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			var year = this.getFullYear();
			if (typeof month == "undefined") {
				month = this.getMonth();
			}
			if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
				return 29;
			} else {
				return [31,28,31,30,31,30,31,31,30,31,30,31][month];
			}
		}
	};

	/** Returns the week number for the current date. */
	Date.prototype.getLocalWeekNumber = function(dateType) {
		if (dateType != 'gregorian') {
			/** Modify to match the current calendar when overriding **/
			return '';
		} else {
			var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
			var DoW = d.getDay();
			d.setDate(d.getDate() - (DoW + 6) % 7 + 3);                                     // Nearest Thu
			var ms = d.valueOf();                                                           // GMT
			d.setMonth(0);
			d.setDate(4);                                                                   // Thu in Week 1
			return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
		}
	};

	/** Returns the number of day in the year. */
	Date.prototype.getLocalDayOfYear = function(dateType) {
		if (dateType  != 'gregorian') {
			return '';
		} else {
			var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
			var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
			var time = now - then;
			return Math.floor(time / Date.DAY);
		}
	};

	/** Checks date and time equality */
	Date.prototype.equalsTo = function(date) {
		return ((this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() == date.getDate()) &&
		(this.getHours() == date.getHours()) &&
		(this.getMinutes() == date.getMinutes()));
	};

	/** Converts foreign date to gregorian date. */
	Date.localCalToGregorian = function(y, m, d) {
		/** Modify to match the current calendar when overriding **/
		return'';
	};

	/** Converts gregorian date to foreign date. */
	Date.gregorianToLocalCal = function(y, m, d) {
		/** Modify to match the current calendar when overriding **/
		return '';
	};

	/** INTERFACE METHODS FOR THE CALENDAR PICKER **/
	/************* END **************/

	/** Method to parse a string and return a date. **/
	Date.parseFieldDate = function(str, fmt, dateType) {
		if (dateType != 'gregorian')
			str = Date.toEnglish(str);

		var today = new Date();
		var y = 0;
		var m = -1;
		var d = 0;
		var a = str.split(/\W+/);
		var b = fmt.match(/%./g);
		var i = 0, j = 0;
		var hr = 0;
		var min = 0;
		var sec = 0;
		for (i = 0; i < a.length; ++i) {
			if (!a[i])
				continue;
			switch (b[i]) {
				case "%d":
				case "%e":
					d = parseInt(a[i], 10);
					break;

				case "%m":
					m = parseInt(a[i], 10) - 1;
					break;

				case "%Y":
				case "%y":
					y = parseInt(a[i], 10);
					(y < 100) && (y += (y > 29) ? 1900 : 2000);
					break;

				case "%b":
				case "%B":
					for (j = 0; j < 12; ++j) {
						if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
					}
					break;

				case "%H":
				case "%I":
				case "%k":
				case "%l":
					hr = parseInt(a[i], 10);
					break;

				case "%P":
				case "%p":
					if (/pm/i.test(a[i]) && hr < 12)
						hr += 12;
					else if (/am/i.test(a[i]) && hr >= 12)
						hr -= 12;
					break;

				case "%M":
					min = parseInt(a[i], 10);
					break;
				case "%S":
					sec = parseInt(a[i], 10);
					break;
			}
		}
		if (isNaN(y)) y = today.getFullYear();
		if (isNaN(m)) m = today.getMonth();
		if (isNaN(d)) d = today.getDate();
		if (isNaN(hr)) hr = today.getHours();
		if (isNaN(min)) min = today.getMinutes();
		if (isNaN(sec)) sec = today.getSeconds();
		if (y != 0 && m != -1 && d != 0)
			return new Date(y, m, d, hr, min, sec);
		y = 0; m = -1; d = 0;
		for (i = 0; i < a.length; ++i) {
			if (a[i].search(/[a-zA-Z]+/) != -1) {
				var t = -1;
				for (j = 0; j < 12; ++j) {
					if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
				}
				if (t != -1) {
					if (m != -1) {
						d = m+1;
					}
					m = t;
				}
			} else if (parseInt(a[i], 10) <= 12 && m == -1) {
				m = a[i]-1;
			} else if (parseInt(a[i], 10) > 31 && y == 0) {
				y = parseInt(a[i], 10);
				(y < 100) && (y += (y > 29) ? 1900 : 2000);
			} else if (d == 0) {
				d = a[i];
			}
		}
		if (y == 0)
			y = today.getFullYear();
		if (m != -1 && d != 0)
			return new Date(y, m, d, hr, min, sec);
		return today;
	};

	/** Prints the date in a string according to the given format. */
	Date.prototype.print = function (str, dateType, translate) {
		/** Handle calendar type **/
		if (typeof dateType !== 'string') str = '';
		if (!dateType) dateType = 'gregorian';

		/** Handle wrong format **/
		if (typeof str !== 'string') str = '';
		if (!str) return '';

		if (this.getLocalDate(dateType) == 'NaN' || !this.getLocalDate(dateType)) return '';
		var m = this.getLocalMonth(dateType);
		var d = this.getLocalDate(dateType);
		var y = this.getLocalFullYear(dateType);
		var wn = this.getLocalWeekNumber(dateType);
		var w = this.getDay();
		var s = {};
		var hr = this.getHours();
		var pm = (hr >= 12);
		var ir = (pm) ? (hr - 12) : hr;
		var dy = this.getLocalDayOfYear(dateType);
		if (ir == 0)
			ir = 12;
		var min = this.getMinutes();
		var sec = this.getSeconds();
		s["%a"] = JoomlaCalLocale.shortDays[w];                                                     // abbreviated weekday name
		s["%A"] = JoomlaCalLocale.days[w];                                                          // full weekday name
		s["%b"] = JoomlaCalLocale.shortMonths[m];                                                   // abbreviated month name
		s["%B"] = JoomlaCalLocale.months[m];                                                        // full month name
		// FIXME: %c : preferred date and time representation for the current locale
		s["%C"] = 1 + Math.floor(y / 100);                                                          // the century number
		s["%d"] = (d < 10) ? ("0" + d) : d;                                                         // the day of the month (range 01 to 31)
		s["%e"] = d;                                                                                // the day of the month (range 1 to 31)
		// FIXME: %D : american date style: %m/%d/%y
		// FIXME: %E, %F, %G, %g, %h (man strftime)
		s["%H"] = (hr < 10) ? ("0" + hr) : hr;                                                      // hour, range 00 to 23 (24h format)
		s["%I"] = (ir < 10) ? ("0" + ir) : ir;                                                      // hour, range 01 to 12 (12h format)
		s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy;                         // day of the year (range 001 to 366)
		s["%k"] = hr;                                                                               // hour, range 0 to 23 (24h format)
		s["%l"] = ir;                                                                               // hour, range 1 to 12 (12h format)
		s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m);                                                  // month, range 01 to 12
		s["%M"] = (min < 10) ? ("0" + min) : min;                                                   // minute, range 00 to 59
		s["%n"] = "\n";                                                                             // a newline character
		s["%p"] = pm ? JoomlaCalLocale.PM : JoomlaCalLocale.AM;
		s["%P"] = pm ? JoomlaCalLocale.pm : JoomlaCalLocale.am;
		// FIXME: %r : the time in am/pm notation %I:%M:%S %p
		// FIXME: %R : the time in 24-hour notation %H:%M
		s["%s"] = Math.floor(this.getTime() / 1000);
		s["%S"] = (sec < 10) ? ("0" + sec) : sec;                                                   // seconds, range 00 to 59
		s["%t"] = "\t";                                                                             // a tab character
		// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
		s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
		s["%u"] = w + 1;                                                                            // the day of the week (range 1 to 7, 1 = MON)
		s["%w"] = w;                                                                                // the day of the week (range 0 to 6, 0 = SUN)
		// FIXME: %x : preferred date representation for the current locale without the time
		// FIXME: %X : preferred time representation for the current locale without the date
		s["%y"] = ('' + y).substr(2, 2);                                                            // year without the century (range 00 to 99)
		s["%Y"] = y;                                                                                // year with the century
		s["%%"] = "%";                                                                              // a literal '%' character

		var re = /%./g;

		var tmpDate = str.replace(re, function (par) { return s[par] || par; });
		if (Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers) === '[object Array]' && dateType != 'gregorian' && translate)
			tmpDate = Date.convertNumbers(tmpDate);

		return tmpDate;
	};
})(Date);
system/js/fields/calendar-locales/date/gregorian/date-helper.min.js000064400000011434152177723720021367 0ustar00!function(t){"use strict";t.SECOND=1e3,t.MINUTE=60*t.SECOND,t.HOUR=60*t.MINUTE,t.DAY=24*t.HOUR,t.WEEK=7*t.DAY,t.prototype.setLocalDateOnly=function(e,a){if("gregorian"!=e)return"";var r=new t(a);this.setDate(1),this.setFullYear(r.getFullYear()),this.setMonth(r.getMonth()),this.setDate(r.getDate())},t.prototype.setLocalDate=function(t,e){return"gregorian"!=t?"":this.setDate(e)},t.prototype.setLocalMonth=function(t,e,a){return"gregorian"!=t?"":(void 0==a&&this.getDate(),this.setMonth(e))},t.prototype.setOtherFullYear=function(e,a){if("gregorian"!=e)return"";var r=new t(this);return r.setFullYear(a),r.getMonth()!=this.getMonth()&&this.setDate(28),this.setUTCFullYear(a)},t.prototype.setLocalFullYear=function(e,a){if("gregorian"!=e)return"";var r=new t(this);return r.setFullYear(a),r.getMonth()!=this.getMonth()&&this.setDate(28),this.setFullYear(a)},t.prototype.getLocalWeekDays=function(t,e){return 6},t.prototype.getOtherFullYear=function(t){return"gregorian"!=t?"":this.getFullYear()},t.prototype.getLocalFullYear=function(t){return"gregorian"!=t?"":this.getFullYear()},t.prototype.getLocalMonth=function(t){return"gregorian"!=t?"":this.getMonth()},t.prototype.getLocalDate=function(t){return"gregorian"!=t?"":this.getDate()},t.prototype.getLocalDay=function(t){return"gregorian"!=t?"":this.getDay()},t.prototype.getLocalMonthDays=function(t,e){if("gregorian"!=t)return"";var a=this.getFullYear();return void 0===e&&(e=this.getMonth()),0!=a%4||0==a%100&&0!=a%400||1!=e?[31,28,31,30,31,30,31,31,30,31,30,31][e]:29},t.prototype.getLocalWeekNumber=function(e){if("gregorian"!=e)return"";var a=new t(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),r=a.getDay();a.setDate(a.getDate()-(r+6)%7+3);var o=a.valueOf();return a.setMonth(0),a.setDate(4),Math.round((o-a.valueOf())/6048e5)+1},t.prototype.getLocalDayOfYear=function(e){if("gregorian"!=e)return"";var a=new t(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0)-new t(this.getFullYear(),0,0,0,0,0);return Math.floor(a/t.DAY)},t.prototype.equalsTo=function(t){return this.getFullYear()==t.getFullYear()&&this.getMonth()==t.getMonth()&&this.getDate()==t.getDate()&&this.getHours()==t.getHours()&&this.getMinutes()==t.getMinutes()},t.localCalToGregorian=function(t,e,a){return""},t.gregorianToLocalCal=function(t,e,a){return""},t.parseFieldDate=function(e,a,r){"gregorian"!=r&&(e=t.toEnglish(e));var o=new t,n=0,s=-1,i=0,l=e.split(/\W+/),g=a.match(/%./g),u=0,h=0,c=0,p=0,f=0;for(u=0;u<l.length;++u)if(l[u])switch(g[u]){case"%d":case"%e":i=parseInt(l[u],10);break;case"%m":s=parseInt(l[u],10)-1;break;case"%Y":case"%y":(n=parseInt(l[u],10))<100&&(n+=n>29?1900:2e3);break;case"%b":case"%B":for(h=0;h<12;++h)if(JoomlaCalLocale.months[h].substr(0,l[u].length).toLowerCase()==l[u].toLowerCase()){s=h;break}break;case"%H":case"%I":case"%k":case"%l":c=parseInt(l[u],10);break;case"%P":case"%p":/pm/i.test(l[u])&&c<12?c+=12:/am/i.test(l[u])&&c>=12&&(c-=12);break;case"%M":p=parseInt(l[u],10);break;case"%S":f=parseInt(l[u],10)}if(isNaN(n)&&(n=o.getFullYear()),isNaN(s)&&(s=o.getMonth()),isNaN(i)&&(i=o.getDate()),isNaN(c)&&(c=o.getHours()),isNaN(p)&&(p=o.getMinutes()),isNaN(f)&&(f=o.getSeconds()),0!=n&&-1!=s&&0!=i)return new t(n,s,i,c,p,f);for(n=0,s=-1,i=0,u=0;u<l.length;++u)if(-1!=l[u].search(/[a-zA-Z]+/)){var D=-1;for(h=0;h<12;++h)if(JoomlaCalLocale.months[h].substr(0,l[u].length).toLowerCase()==l[u].toLowerCase()){D=h;break}-1!=D&&(-1!=s&&(i=s+1),s=D)}else parseInt(l[u],10)<=12&&-1==s?s=l[u]-1:parseInt(l[u],10)>31&&0==n?(n=parseInt(l[u],10))<100&&(n+=n>29?1900:2e3):0==i&&(i=l[u]);return 0==n&&(n=o.getFullYear()),-1!=s&&0!=i?new t(n,s,i,c,p,f):o},t.prototype.print=function(e,a,r){if("string"!=typeof a&&(e=""),a||(a="gregorian"),"string"!=typeof e&&(e=""),!e)return"";if("NaN"==this.getLocalDate(a)||!this.getLocalDate(a))return"";var o=this.getLocalMonth(a),n=this.getLocalDate(a),s=this.getLocalFullYear(a),i=this.getLocalWeekNumber(a),l=this.getDay(),g={},u=this.getHours(),h=u>=12,c=h?u-12:u,p=this.getLocalDayOfYear(a);0==c&&(c=12);var f=this.getMinutes(),D=this.getSeconds();g["%a"]=JoomlaCalLocale.shortDays[l],g["%A"]=JoomlaCalLocale.days[l],g["%b"]=JoomlaCalLocale.shortMonths[o],g["%B"]=JoomlaCalLocale.months[o],g["%C"]=1+Math.floor(s/100),g["%d"]=n<10?"0"+n:n,g["%e"]=n,g["%H"]=u<10?"0"+u:u,g["%I"]=c<10?"0"+c:c,g["%j"]=p<100?p<10?"00"+p:"0"+p:p,g["%k"]=u,g["%l"]=c,g["%m"]=o<9?"0"+(1+o):1+o,g["%M"]=f<10?"0"+f:f,g["%n"]="\n",g["%p"]=h?JoomlaCalLocale.PM:JoomlaCalLocale.AM,g["%P"]=h?JoomlaCalLocale.pm:JoomlaCalLocale.am,g["%s"]=Math.floor(this.getTime()/1e3),g["%S"]=D<10?"0"+D:D,g["%t"]="\t",g["%U"]=g["%W"]=g["%V"]=i<10?"0"+i:i,g["%u"]=l+1,g["%w"]=l,g["%y"]=(""+s).substr(2,2),g["%Y"]=s,g["%%"]="%";var L=/%./g,M=e.replace(L,function(t){return g[t]||t});return"[object Array]"===Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers)&&"gregorian"!=a&&r&&(M=t.convertNumbers(M)),M}}(Date);
system/js/fields/calendar-locales/date/jalali/date-helper.js000064400000047065152177723720020075 0ustar00/** BEGIN: DATE OBJECT PATCHES **/
/** Adds the number of days array to the Date object. */
Date.gregorian_MD = [31,28,31,30,31,30,31,31,30,31,30,31];
Date.local_MD     = [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29];

/** Constants used for time computations */
Date.SECOND = 1000 /* milliseconds */;
Date.MINUTE = 60 * Date.SECOND;
Date.HOUR   = 60 * Date.MINUTE;
Date.DAY    = 24 * Date.HOUR;
Date.WEEK   =  7 * Date.DAY;

/** MODIFY ONLY THE MARKED PARTS OF THE METHODS **/
/************ START *************/
/** INTERFACE METHODS FOR THE CALENDAR PICKER **/

/********************** *************************/
/**************** SETTERS ***********************/
/********************** *************************/

/** Sets the date for the current date without h/m/s. */
Date.prototype.setLocalDateOnly = function (dateType, date) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return '';
	} else {
		var tmp = new Date(date);
		this.setDate(1);
		this.setFullYear(tmp.getFullYear());
		this.setMonth(tmp.getMonth());
		this.setDate(tmp.getDate());
	}
};

/** Sets the full date for the current date. */
Date.prototype.setLocalDate = function (dateType, d) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.setJalaliDate(d);
	} else {
		return this.setDate(d);
	}
};

/** Sets the month for the current date. */
Date.prototype.setLocalMonth = function (dateType, m, d) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.setJalaliMonth(m, d);
	} else {
		if (d == undefined) this.getDate();
		return this.setMonth(m);
	}
};

/** Sets the year for the current date. */
Date.prototype.setOtherFullYear = function(dateType, y) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		var date = new Date(this);
		date.setLocalFullYear(y);
		if (date.getLocalMonth('jalali') != this.getLocalMonth('jalali')) this.setLocalDate('jalali', 29);
		return this.setLocalFullYear('jalali', y);
	} else {
		var date = new Date(this);
		date.setFullYear(y);
		if (date.getMonth() != this.getMonth()) this.setDate(28);
		return this.setUTCFullYear(y);
	}
};

/** Sets the year for the current date. */
Date.prototype.setLocalFullYear = function (dateType, y) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.setJalaliFullYear(y);
	} else {
		var date = new Date(this);
		date.setFullYear(y);
		if (date.getMonth() != this.getMonth()) this.setDate(28);
		return this.setFullYear(y);
	}
};

/********************** *************************/
/**************** GETTERS ***********************/
/********************** *************************/

/** The number of days per week **/
Date.prototype.getLocalWeekDays = function (dateType, y) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return 6;
	} else {
		return 6; // 7 days per week
	}
};

/** Returns the year for the current date. */
Date.prototype.getOtherFullYear = function (dateType) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.getJalaliFullYear();
	} else {
		return this.getFullYear();
	}
};

/** Returns the year for the current date. */
Date.prototype.getLocalFullYear = function (dateType) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.getJalaliFullYear();
	} else {
		return this.getFullYear();
	}
};

/** Returns the month the date. */
Date.prototype.getLocalMonth = function (dateType) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.getJalaliMonth();
	} else {
		return this.getMonth();
	}
};

/** Returns the date. */
Date.prototype.getLocalDate = function (dateType) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		return this.getJalaliDate();
	} else {
		return this.getDate();
	}
};

/** Returns the number of day in the year. */
Date.prototype.getLocalDay = function(dateType) {
	if (dateType  != 'gregorian') {
		return this.getJalaliDay();
	} else {
		return this.getDay();
	}
};

/** Returns the number of days in the current month */
Date.prototype.getLocalMonthDays = function(dateType, month) {
	if (dateType != 'gregorian') {
		/** Modify to match the current calendar when overriding **/
		var year = this.getLocalFullYear('jalali');
		if (typeof month == "undefined") {
			month = this.getLocalMonth('jalali');
		}
		if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
			return 29;
		} else {
			Date.local_MD[month];
		}
	} else {
		var year = this.getFullYear();
		if (typeof month == "undefined") {
			month = this.getMonth();
		}
		if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
			return 29;
		} else {
			return Date.gregorian_MD[month];
		}
	}
};

/** Returns the week number for the current date. */
Date.prototype.getLocalWeekNumber = function(dateType) {
	if (dateType != 'gregorian') {
		var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
		var DoW = d.getDay();
		d.setDate(d.getDate() - (DoW + 6) % 7 + 3);                                     // Nearest Thu
		var ms = d.valueOf();                                                           // GMT
		d.setMonth(0);
		d.setDate(4);                                                                   // Thu in Week 1
		return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
	} else {
		var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
		var DoW = d.getDay();
		d.setDate(d.getDate() - (DoW + 6) % 7 + 3);                                     // Nearest Thu
		var ms = d.valueOf();                                                           // GMT
		d.setMonth(0);
		d.setDate(4);                                                                   // Thu in Week 1
		return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
	}
};

/** Returns the number of day in the year. */
Date.prototype.getLocalDayOfYear = function(dateType) {
	if (dateType  != 'gregorian') {
		var now = new Date(this.getOtherFullYear(dateType), this.getLocalMonth(dateType), this.getLocalDate(dateType), 0, 0, 0);
		var then = new Date(this.getOtherFullYear(dateType), 0, 0, 0, 0, 0);
		var time = now - then;
		return Math.floor(time / Date.DAY);
	} else {
		var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
		var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
		var time = now - then;
		return Math.floor(time / Date.DAY);
	}
};

/** Returns the number of days in the current month */
Date.prototype.getMonthDays = function(month) {
	var year = this.getFullYear();
	if (typeof month == "undefined") {
		month = this.getMonth();
	}
	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
		return 29;
	} else {
		if (Date.dateType != 'gregorian') {
			Date.local_MD[month];
		} else {
			return Date.gregorian_MD[month];
		}
	}
};

/** Checks date and time equality */
Date.prototype.equalsTo = function(date) {
	return ((this.getFullYear() == date.getFullYear()) &&
	(this.getMonth() == date.getMonth()) &&
	(this.getDate() == date.getDate()) &&
	(this.getHours() == date.getHours()) &&
	(this.getMinutes() == date.getMinutes()));
};

/** Converts foreign date to gregorian date. */
Date.localCalToGregorian = function(y, m, d) {
	/** Modify to match the current calendar when overriding **/
	return JalaliDate.jalaliToGregorian(y, m, d);
};

/** Converts gregorian date to foreign date. */
Date.gregorianToLocalCal = function(y, m, d) {
	/** Modify to match the current calendar when overriding **/
	return JalaliDate.gregorianToJalali(y, m, d);
};

/** Method to convert numbers from local symbols to English numbers. */
Date.numbersToIso = function(str) {
	var i, nums =[0,1,2,3,4,5,6,7,8,9];
	str = str.toString();

	if (Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers) === '[object Array]') {
		for (i = 0; i < nums.length; i++) {
			str = str.replace(new RegExp(JoomlaCalLocale.localLangNumbers[i], 'g'), nums[i]);
		}
	}
	return str;
};
/** INTERFACE METHODS FOR THE CALENDAR PICKER **/
/************* END **************/

/** Prints the date in a string according to the given format. */
Date.prototype.print = function (str, dateType, translate) {
	/** Handle calendar type **/
	if (typeof dateType !== 'string') str = '';
	if (!dateType) dateType = 'gregorian';

	/** Handle wrong format **/
	if (typeof str !== 'string') str = '';
	if (!str) return '';


	if (this.getLocalDate(dateType) == 'NaN' || !this.getLocalDate(dateType)) return '';
	var m = this.getLocalMonth(dateType);
	var d = this.getLocalDate(dateType);
	var y = this.getLocalFullYear(dateType);
	var wn = this.getLocalWeekNumber(dateType);
	var w = this.getLocalDay(dateType);
	var s = {};
	var hr = this.getHours();
	var pm = (hr >= 12);
	var ir = (pm) ? (hr - 12) : hr;
	var dy = this.getLocalDayOfYear(dateType);
	if (ir == 0)
		ir = 12;
	var min = this.getMinutes();
	var sec = this.getSeconds();
	s["%a"] = JoomlaCalLocale.shortDays[w];                                                     // abbreviated weekday name
	s["%A"] = JoomlaCalLocale.days[w];                                                          // full weekday name
	s["%b"] = JoomlaCalLocale.shortMonths[m];                                                   // abbreviated month name
	s["%B"] = JoomlaCalLocale.months[m];                                                        // full month name
	// FIXME: %c : preferred date and time representation for the current locale
	s["%C"] = 1 + Math.floor(y / 100);                                                          // the century number
	s["%d"] = (d < 10) ? ("0" + d) : d;                                                         // the day of the month (range 01 to 31)
	s["%e"] = d;                                                                                // the day of the month (range 1 to 31)
	// FIXME: %D : american date style: %m/%d/%y
	// FIXME: %E, %F, %G, %g, %h (man strftime)
	s["%H"] = (hr < 10) ? ("0" + hr) : hr;                                                      // hour, range 00 to 23 (24h format)
	s["%I"] = (ir < 10) ? ("0" + ir) : ir;                                                      // hour, range 01 to 12 (12h format)
	s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy;                         // day of the year (range 001 to 366)
	s["%k"] = hr;                                                                               // hour, range 0 to 23 (24h format)
	s["%l"] = ir;                                                                               // hour, range 1 to 12 (12h format)
	s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m);                                                  // month, range 01 to 12
	s["%M"] = (min < 10) ? ("0" + min) : min;                                                   // minute, range 00 to 59
	s["%n"] = "\n";                                                                             // a newline character
	s["%p"] = pm ? JoomlaCalLocale.PM : JoomlaCalLocale.AM;
	s["%P"] = pm ? JoomlaCalLocale.pm : JoomlaCalLocale.am;
	// FIXME: %r : the time in am/pm notation %I:%M:%S %p
	// FIXME: %R : the time in 24-hour notation %H:%M
	s["%s"] = Math.floor(this.getTime() / 1000);
	s["%S"] = (sec < 10) ? ("0" + sec) : sec;                                                   // seconds, range 00 to 59
	s["%t"] = "\t";                                                                             // a tab character
	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
	s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
	s["%u"] = w + 1;                                                                            // the day of the week (range 1 to 7, 1 = MON)
	s["%w"] = w;                                                                                // the day of the week (range 0 to 6, 0 = SUN)
	// FIXME: %x : preferred date representation for the current locale without the time
	// FIXME: %X : preferred time representation for the current locale without the date
	s["%y"] = ('' + y).substr(2, 2);                                                            // year without the century (range 00 to 99)
	s["%Y"] = y;                                                                                // year with the century
	s["%%"] = "%";                                                                              // a literal '%' character

	var re = /%./g;

	var tmpDate = str.replace(re, function (par) { return s[par] || par; });
	if (Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers) === '[object Array]' && translate)
		tmpDate = Date.convertNumbers(tmpDate);

	return tmpDate;
};

Date.parseFieldDate = function(str, fmt, dateType) {
	str = Date.numbersToIso(str);

	var today = new Date();
	var y = 0;
	var m = -1;
	var d = 0;
	var a = str.split(/\W+/);
	var b = fmt.match(/%./g);
	var i = 0, j = 0;
	var hr = 0;
	var min = 0;
	for (i = 0; i < a.length; ++i) {
		if (!a[i])
			continue;
		switch (b[i]) {
			case "%d":
			case "%e":
				d = parseInt(a[i], 10);
				break;

			case "%m":
				m = parseInt(a[i], 10) - 1;
				break;

			case "%Y":
			case "%y":
				y = parseInt(a[i], 10);
				(y < 100) && (y += (y > 29) ? 1900 : 2000);
				break;

			case "%b":
			case "%B":
				for (j = 0; j < 12; ++j) {
					if (dateType != 'gregorian') {
						if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
					} else {
						if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
					}
				}
				break;

			case "%H":
			case "%I":
			case "%k":
			case "%l":
				hr = parseInt(a[i], 10);
				break;

			case "%P":
			case "%p":
				if (/pm/i.test(a[i]) && hr < 12)
					hr += 12;
				else if (/am/i.test(a[i]) && hr >= 12)
					hr -= 12;
				break;

			case "%M":
				min = parseInt(a[i], 10);
				break;
			case "%S":
				sec = parseInt(a[i], 10);
				break;
		}
	}
	if (isNaN(y)) y = today.getFullYear();
	if (isNaN(m)) m = today.getMonth();
	if (isNaN(d)) d = today.getDate();
	if (isNaN(hr)) hr = today.getHours();
	if (isNaN(min)) min = today.getMinutes();
	if (y != 0 && m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	y = 0; m = -1; d = 0;
	for (i = 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) != -1) {
			var t = -1;
			for (j = 0; j < 12; ++j) {
				if (dateType != 'gregorian') {
					if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
				} else {
					if (JoomlaCalLocale.months[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
				}
			}
			if (t != -1) {
				if (m != -1) {
					d = m+1;
				}
				m = t;
			}
		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
			m = a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y == 0) {
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
		} else if (d == 0) {
			d = a[i];
		}
	}
	if (y == 0)
		y = today.getFullYear();
	if (m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	return today;
};

/*
 * JalaliJSCalendar - Jalali Extension for Date Object
 * Copyright (c) 2008 Ali Farhadi (http://farhadi.ir/)
 * Released under the terms of the GNU General Public License.
 * See the GPL for details (http://www.gnu.org/licenses/gpl.html).
 *
 * Based on code from http://farsiweb.info
 */

JalaliDate = {
	g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
	j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
};

JalaliDate.jalaliToGregorian = function(j_y, j_m, j_d)
{
	j_y = parseInt(j_y);
	j_m = parseInt(j_m);
	j_d = parseInt(j_d);
	var jy = j_y-979;
	var jm = j_m-1;
	var jd = j_d-1;

	var j_day_no = 365*jy + parseInt(jy / 33)*8 + parseInt((jy%33+3) / 4);
	for (var i=0; i < jm; ++i) j_day_no += JalaliDate.j_days_in_month[i];

	j_day_no += jd;

	var g_day_no = j_day_no+79;

	var gy = 1600 + 400 * parseInt(g_day_no / 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
	g_day_no = g_day_no % 146097;

	var leap = true;
	if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
	{
		g_day_no--;
		gy += 100*parseInt(g_day_no/  36524); /* 36524 = 365*100 + 100/4 - 100/100 */
		g_day_no = g_day_no % 36524;

		if (g_day_no >= 365)
			g_day_no++;
		else
			leap = false;
	}

	gy += 4*parseInt(g_day_no/ 1461); /* 1461 = 365*4 + 4/4 */
	g_day_no %= 1461;

	if (g_day_no >= 366) {
		leap = false;

		g_day_no--;
		gy += parseInt(g_day_no/ 365);
		g_day_no = g_day_no % 365;
	}

	for (var i = 0; g_day_no >= JalaliDate.g_days_in_month[i] + (i == 1 && leap); i++)
		g_day_no -= JalaliDate.g_days_in_month[i] + (i == 1 && leap);
	var gm = i+1;
	var gd = g_day_no+1;

	return [gy, gm, gd];
};

JalaliDate.checkDate = function(j_y, j_m, j_d)
{
	return !(j_y < 0 || j_y > 32767 || j_m < 1 || j_m > 12 || j_d < 1 || j_d >
	(JalaliDate.j_days_in_month[j_m-1] + (j_m == 12 && !((j_y-979)%33%4))));
};

JalaliDate.gregorianToJalali = function(g_y, g_m, g_d)
{
	g_y = parseInt(g_y);
	g_m = parseInt(g_m);
	g_d = parseInt(g_d);
	var gy = g_y-1600;
	var gm = g_m-1;
	var gd = g_d-1;

	var g_day_no = 365*gy+parseInt((gy+3) / 4)-parseInt((gy+99)/100)+parseInt((gy+399)/400);

	for (var i=0; i < gm; ++i)
		g_day_no += JalaliDate.g_days_in_month[i];
	if (gm>1 && ((gy%4==0 && gy%100!=0) || (gy%400==0)))
	/* leap and after Feb */
		++g_day_no;
	g_day_no += gd;

	var j_day_no = g_day_no-79;

	var j_np = parseInt(j_day_no/ 12053);
	j_day_no %= 12053;

	var jy = 979+33*j_np+4*parseInt(j_day_no/1461);

	j_day_no %= 1461;

	if (j_day_no >= 366) {
		jy += parseInt((j_day_no-1)/ 365);
		j_day_no = (j_day_no-1)%365;
	}

	for (var i = 0; i < 11 && j_day_no >= JalaliDate.j_days_in_month[i]; ++i) {
		j_day_no -= JalaliDate.j_days_in_month[i];
	}
	var jm = i+1;
	var jd = j_day_no+1;


	return [jy, jm, jd];
};

Date.prototype.setJalaliFullYear = function(y, m, d) {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	if (y < 100) y += 1300;
	j[0] = y;
	if (m != undefined) {
		if (m > 11) {
			j[0] += Math.floor(m / 12);
			m = m % 12;
		}
		j[1] = m + 1;
	}
	if (d != undefined) j[2] = d;
	var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]);
	return this.setFullYear(g[0], g[1]-1, g[2]);
};

Date.prototype.setJalaliMonth = function(m, d) {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	if (m > 11) {
		j[0] += Math.floor(m / 12);
		m = m % 12;
	}
	j[1] = m+1;
	if (d != undefined) j[2] = d;
	var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]);
	return this.setFullYear(g[0], g[1]-1, g[2]);
};

Date.prototype.setJalaliDate = function(d) {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	j[2] = d;
	var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]);
	return this.setFullYear(g[0], g[1]-1, g[2]);
};

Date.prototype.getJalaliFullYear = function() {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	return j[0];
};

Date.prototype.getJalaliMonth = function() {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	return j[1]-1;
};

Date.prototype.getJalaliDate = function() {
	var gd = this.getDate();
	var gm = this.getMonth();
	var gy = this.getFullYear();
	var j = JalaliDate.gregorianToJalali(gy, gm+1, gd);
	return j[2];
};

Date.prototype.getJalaliDay = function() {
	var day = this.getDay();
	day = (day) % 7;
	return day;
};
system/js/fields/calendar-locales/date/jalali/date-helper.min.js000064400000022146152177723720020650 0ustar00Date.gregorian_MD=[31,28,31,30,31,30,31,31,30,31,30,31],Date.local_MD=[31,31,31,31,31,31,30,30,30,30,30,29],Date.SECOND=1e3,Date.MINUTE=60*Date.SECOND,Date.HOUR=60*Date.MINUTE,Date.DAY=24*Date.HOUR,Date.WEEK=7*Date.DAY,Date.prototype.setLocalDateOnly=function(t,e){if("gregorian"!=t)return"";var a=new Date(e);this.setDate(1),this.setFullYear(a.getFullYear()),this.setMonth(a.getMonth()),this.setDate(a.getDate())},Date.prototype.setLocalDate=function(t,e){return"gregorian"!=t?this.setJalaliDate(e):this.setDate(e)},Date.prototype.setLocalMonth=function(t,e,a){return"gregorian"!=t?this.setJalaliMonth(e,a):(void 0==a&&this.getDate(),this.setMonth(e))},Date.prototype.setOtherFullYear=function(t,e){if("gregorian"!=t)return(a=new Date(this)).setLocalFullYear(e),a.getLocalMonth("jalali")!=this.getLocalMonth("jalali")&&this.setLocalDate("jalali",29),this.setLocalFullYear("jalali",e);var a=new Date(this);return a.setFullYear(e),a.getMonth()!=this.getMonth()&&this.setDate(28),this.setUTCFullYear(e)},Date.prototype.setLocalFullYear=function(t,e){if("gregorian"!=t)return this.setJalaliFullYear(e);var a=new Date(this);return a.setFullYear(e),a.getMonth()!=this.getMonth()&&this.setDate(28),this.setFullYear(e)},Date.prototype.getLocalWeekDays=function(t,e){return 6},Date.prototype.getOtherFullYear=function(t){return"gregorian"!=t?this.getJalaliFullYear():this.getFullYear()},Date.prototype.getLocalFullYear=function(t){return"gregorian"!=t?this.getJalaliFullYear():this.getFullYear()},Date.prototype.getLocalMonth=function(t){return"gregorian"!=t?this.getJalaliMonth():this.getMonth()},Date.prototype.getLocalDate=function(t){return"gregorian"!=t?this.getJalaliDate():this.getDate()},Date.prototype.getLocalDay=function(t){return"gregorian"!=t?this.getJalaliDay():this.getDay()},Date.prototype.getLocalMonthDays=function(t,e){if("gregorian"==t){a=this.getFullYear();return void 0===e&&(e=this.getMonth()),0!=a%4||0==a%100&&0!=a%400||1!=e?Date.gregorian_MD[e]:29}var a=this.getLocalFullYear("jalali");if(void 0===e&&(e=this.getLocalMonth("jalali")),0==a%4&&(0!=a%100||0==a%400)&&1==e)return 29;Date.local_MD[e]},Date.prototype.getLocalWeekNumber=function(t){if("gregorian"!=t){a=(e=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0)).getDay();e.setDate(e.getDate()-(a+6)%7+3);r=e.valueOf();return e.setMonth(0),e.setDate(4),Math.round((r-e.valueOf())/6048e5)+1}var e=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),a=e.getDay();e.setDate(e.getDate()-(a+6)%7+3);var r=e.valueOf();return e.setMonth(0),e.setDate(4),Math.round((r-e.valueOf())/6048e5)+1},Date.prototype.getLocalDayOfYear=function(t){if("gregorian"!=t){r=(e=new Date(this.getOtherFullYear(t),this.getLocalMonth(t),this.getLocalDate(t),0,0,0))-(a=new Date(this.getOtherFullYear(t),0,0,0,0,0));return Math.floor(r/Date.DAY)}var e=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),a=new Date(this.getFullYear(),0,0,0,0,0),r=e-a;return Math.floor(r/Date.DAY)},Date.prototype.getMonthDays=function(t){var e=this.getFullYear();return void 0===t&&(t=this.getMonth()),0!=e%4||0==e%100&&0!=e%400||1!=t?"gregorian"==Date.dateType?Date.gregorian_MD[t]:void Date.local_MD[t]:29},Date.prototype.equalsTo=function(t){return this.getFullYear()==t.getFullYear()&&this.getMonth()==t.getMonth()&&this.getDate()==t.getDate()&&this.getHours()==t.getHours()&&this.getMinutes()==t.getMinutes()},Date.localCalToGregorian=function(t,e,a){return JalaliDate.jalaliToGregorian(t,e,a)},Date.gregorianToLocalCal=function(t,e,a){return JalaliDate.gregorianToJalali(t,e,a)},Date.numbersToIso=function(t){var e,a=[0,1,2,3,4,5,6,7,8,9];if(t=t.toString(),"[object Array]"===Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers))for(e=0;e<a.length;e++)t=t.replace(new RegExp(JoomlaCalLocale.localLangNumbers[e],"g"),a[e]);return t},Date.prototype.print=function(t,e,a){if("string"!=typeof e&&(t=""),e||(e="gregorian"),"string"!=typeof t&&(t=""),!t)return"";if("NaN"==this.getLocalDate(e)||!this.getLocalDate(e))return"";var r=this.getLocalMonth(e),o=this.getLocalDate(e),l=this.getLocalFullYear(e),i=this.getLocalWeekNumber(e),n=this.getLocalDay(e),s={},g=this.getHours(),h=g>=12,D=h?g-12:g,u=this.getLocalDayOfYear(e);0==D&&(D=12);var c=this.getMinutes(),p=this.getSeconds();s["%a"]=JoomlaCalLocale.shortDays[n],s["%A"]=JoomlaCalLocale.days[n],s["%b"]=JoomlaCalLocale.shortMonths[r],s["%B"]=JoomlaCalLocale.months[r],s["%C"]=1+Math.floor(l/100),s["%d"]=o<10?"0"+o:o,s["%e"]=o,s["%H"]=g<10?"0"+g:g,s["%I"]=D<10?"0"+D:D,s["%j"]=u<100?u<10?"00"+u:"0"+u:u,s["%k"]=g,s["%l"]=D,s["%m"]=r<9?"0"+(1+r):1+r,s["%M"]=c<10?"0"+c:c,s["%n"]="\n",s["%p"]=h?JoomlaCalLocale.PM:JoomlaCalLocale.AM,s["%P"]=h?JoomlaCalLocale.pm:JoomlaCalLocale.am,s["%s"]=Math.floor(this.getTime()/1e3),s["%S"]=p<10?"0"+p:p,s["%t"]="\t",s["%U"]=s["%W"]=s["%V"]=i<10?"0"+i:i,s["%u"]=n+1,s["%w"]=n,s["%y"]=(""+l).substr(2,2),s["%Y"]=l,s["%%"]="%";var f=/%./g,M=t.replace(f,function(t){return s[t]||t});return"[object Array]"===Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers)&&a&&(M=Date.convertNumbers(M)),M},Date.parseFieldDate=function(t,e,a){t=Date.numbersToIso(t);var r=new Date,o=0,l=-1,i=0,n=t.split(/\W+/),s=e.match(/%./g),g=0,h=0,D=0,u=0;for(g=0;g<n.length;++g)if(n[g])switch(s[g]){case"%d":case"%e":i=parseInt(n[g],10);break;case"%m":l=parseInt(n[g],10)-1;break;case"%Y":case"%y":(o=parseInt(n[g],10))<100&&(o+=o>29?1900:2e3);break;case"%b":case"%B":for(h=0;h<12;++h)if("gregorian"!=a){if(JoomlaCalLocale.months[h].substr(0,n[g].length).toLowerCase()==n[g].toLowerCase()){l=h;break}}else if(JoomlaCalLocale.months[h].substr(0,n[g].length).toLowerCase()==n[g].toLowerCase()){l=h;break}break;case"%H":case"%I":case"%k":case"%l":D=parseInt(n[g],10);break;case"%P":case"%p":/pm/i.test(n[g])&&D<12?D+=12:/am/i.test(n[g])&&D>=12&&(D-=12);break;case"%M":u=parseInt(n[g],10);break;case"%S":sec=parseInt(n[g],10)}if(isNaN(o)&&(o=r.getFullYear()),isNaN(l)&&(l=r.getMonth()),isNaN(i)&&(i=r.getDate()),isNaN(D)&&(D=r.getHours()),isNaN(u)&&(u=r.getMinutes()),0!=o&&-1!=l&&0!=i)return new Date(o,l,i,D,u,0);for(o=0,l=-1,i=0,g=0;g<n.length;++g)if(-1!=n[g].search(/[a-zA-Z]+/)){var c=-1;for(h=0;h<12;++h)if("gregorian"!=a){if(JoomlaCalLocale.months[h].substr(0,n[g].length).toLowerCase()==n[g].toLowerCase()){c=h;break}}else if(JoomlaCalLocale.months[h].substr(0,n[g].length).toLowerCase()==n[g].toLowerCase()){c=h;break}-1!=c&&(-1!=l&&(i=l+1),l=c)}else parseInt(n[g],10)<=12&&-1==l?l=n[g]-1:parseInt(n[g],10)>31&&0==o?(o=parseInt(n[g],10))<100&&(o+=o>29?1900:2e3):0==i&&(i=n[g]);return 0==o&&(o=r.getFullYear()),-1!=l&&0!=i?new Date(o,l,i,D,u,0):r},JalaliDate={g_days_in_month:[31,28,31,30,31,30,31,31,30,31,30,31],j_days_in_month:[31,31,31,31,31,31,30,30,30,30,30,29]},JalaliDate.jalaliToGregorian=function(t,e,a){for(var r=(t=parseInt(t))-979,o=(e=parseInt(e))-1,l=(a=parseInt(a))-1,i=365*r+8*parseInt(r/33)+parseInt((r%33+3)/4),n=0;n<o;++n)i+=JalaliDate.j_days_in_month[n];var s=(i+=l)+79,g=1600+400*parseInt(s/146097),h=!0;(s%=146097)>=36525&&(s--,g+=100*parseInt(s/36524),(s%=36524)>=365?s++:h=!1),g+=4*parseInt(s/1461),(s%=1461)>=366&&(h=!1,s--,g+=parseInt(s/365),s%=365);for(n=0;s>=JalaliDate.g_days_in_month[n]+(1==n&&h);n++)s-=JalaliDate.g_days_in_month[n]+(1==n&&h);return[g,n+1,s+1]},JalaliDate.checkDate=function(t,e,a){return!(t<0||t>32767||e<1||e>12||a<1||a>JalaliDate.j_days_in_month[e-1]+(12==e&&!((t-979)%33%4)))},JalaliDate.gregorianToJalali=function(t,e,a){for(var r=(t=parseInt(t))-1600,o=(e=parseInt(e))-1,l=(a=parseInt(a))-1,i=365*r+parseInt((r+3)/4)-parseInt((r+99)/100)+parseInt((r+399)/400),n=0;n<o;++n)i+=JalaliDate.g_days_in_month[n];o>1&&(r%4==0&&r%100!=0||r%400==0)&&++i;var s=(i+=l)-79,g=parseInt(s/12053);s%=12053;var h=979+33*g+4*parseInt(s/1461);(s%=1461)>=366&&(h+=parseInt((s-1)/365),s=(s-1)%365);for(n=0;n<11&&s>=JalaliDate.j_days_in_month[n];++n)s-=JalaliDate.j_days_in_month[n];return[h,n+1,s+1]},Date.prototype.setJalaliFullYear=function(t,e,a){var r=this.getDate(),o=this.getMonth(),l=this.getFullYear(),i=JalaliDate.gregorianToJalali(l,o+1,r);t<100&&(t+=1300),i[0]=t,void 0!=e&&(e>11&&(i[0]+=Math.floor(e/12),e%=12),i[1]=e+1),void 0!=a&&(i[2]=a);var n=JalaliDate.jalaliToGregorian(i[0],i[1],i[2]);return this.setFullYear(n[0],n[1]-1,n[2])},Date.prototype.setJalaliMonth=function(t,e){var a=this.getDate(),r=this.getMonth(),o=this.getFullYear(),l=JalaliDate.gregorianToJalali(o,r+1,a);t>11&&(l[0]+=Math.floor(t/12),t%=12),l[1]=t+1,void 0!=e&&(l[2]=e);var i=JalaliDate.jalaliToGregorian(l[0],l[1],l[2]);return this.setFullYear(i[0],i[1]-1,i[2])},Date.prototype.setJalaliDate=function(t){var e=this.getDate(),a=this.getMonth(),r=this.getFullYear(),o=JalaliDate.gregorianToJalali(r,a+1,e);o[2]=t;var l=JalaliDate.jalaliToGregorian(o[0],o[1],o[2]);return this.setFullYear(l[0],l[1]-1,l[2])},Date.prototype.getJalaliFullYear=function(){var t=this.getDate(),e=this.getMonth(),a=this.getFullYear();return JalaliDate.gregorianToJalali(a,e+1,t)[0]},Date.prototype.getJalaliMonth=function(){var t=this.getDate(),e=this.getMonth(),a=this.getFullYear();return JalaliDate.gregorianToJalali(a,e+1,t)[1]-1},Date.prototype.getJalaliDate=function(){var t=this.getDate(),e=this.getMonth(),a=this.getFullYear();return JalaliDate.gregorianToJalali(a,e+1,t)[2]},Date.prototype.getJalaliDay=function(){var t=this.getDay();return t%=7};
system/js/fields/calendar-locales/da.js000064400000001152152177723720014101 0ustar00window.JoomlaCalLocale = {
	today : "I dag",
	weekend : [0, 6],
	wk : "uge",
	time : "Tid:",
	days : ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
	shortDays : ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
	months : ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Luk",
	clear: "Nulstil"
};system/js/fields/calendar-locales/ar.js000064400000001764152177723720014130 0ustar00window.JoomlaCalLocale = {
	today : "اليوم",
	weekend : [6, 5],
	wk : "الأسبوع",
	time : "الساعة:",
	days : ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
	shortDays : ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
	months : ["كانون الثّاني", "شباط", "آذار", "نيسان", "أيّار", "حزيران", "تمّوز", "آب", "أيلول", "تشرين الأوّل", "تشرين الثّاني", "كانون الأوّل"],
	shortMonths : ["كانون الثّاني", "شباط", "آذار", "نيسان", "أيّار", "حزيران", "تمّوز", "آب", "أيلول", "تشرين الأوّل", "تشرين الثّاني", "كانون الأوّل"],
	AM : "ق‌ظ",
	PM :  "ب‌ظ",
	am : "ق‌ظ",
	pm : "ب‌ظ",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "إغلاق",
	clear: "الغاء"
};system/js/fields/calendar-locales/nb.js000064400000001156152177723720014120 0ustar00window.JoomlaCalLocale = {
	today : "Dagens dato",
	weekend : [0, 6],
	wk : "Uke",
	time : "Tid:",
	days : ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
	shortDays : ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
	months : ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Lukk",
	clear: "Tøm"
};
system/js/fields/calendar-locales/sr-yu.js000064400000001162152177723720014575 0ustar00window.JoomlaCalLocale = {
	today : "Danas",
	weekend : [0, 6],
	wk : "ned",
	time : "Vreme:",
	days : ["Nedelja", "Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"],
	shortDays : ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
	months : ["Januar", "Fenruar", "Mart", "April", "Maj", "Juni", "Juli", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Zatvori",
	clear: "Sačuvaj"
};
system/js/fields/calendar-locales/en.js000064400000001156152177723720014123 0ustar00window.JoomlaCalLocale = {
	today : "Today",
	weekend : [0, 6],
	wk : "wk",
	time : "Time:",
	days : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
	shortDays : ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
	months : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
	shortMonths : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Close",
	clear: "Clear"
};system/js/fields/calendar-locales/ka.js000064400000002120152177723720014104 0ustar00window.JoomlaCalLocale = {
	today : "დღეს",
	weekend : [0, 6],
	wk : "კვ",
	time : "დრო:",
	days : ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"],
	shortDays : ["კვ", "ორშ", "სამშ", "ოთხშ", "ხუთშ", "პარ", "შაბ"],
	months : ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"],
	shortMonths : ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "დახურვა",
	clear: "გასუფთავება"
};system/js/fields/calendar-locales/ko.js000064400000001207152177723720014127 0ustar00window.JoomlaCalLocale = {
	today : "오늘",
	weekend : [0, 6],
	wk : "wk",
	time : "시간:",
	days : ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
	shortDays : ["일", "월", "화", "수", "목", "금", "토"],
	months : ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
	shortMonths : ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
	AM : "오전",
	PM :  "오후",
	am : "오전",
	pm : "오후",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "닫기",
	clear: "Clear"
};system/js/fields/calendar-locales/sr-rs.js000064400000001464152177723720014571 0ustar00window.JoomlaCalLocale = {
	today : "Данас",
	weekend : [0, 6],
	wk : "нед",
	time : "Време:",
	days : ["Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
	shortDays : ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
	months : ["Јануар", "Фенруар", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
	shortMonths : ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Затвори",
	clear: "Зачувај"
};system/js/fields/calendar-locales/cy.js000064400000001212152177723720014125 0ustar00window.JoomlaCalLocale = {
	today : "Heddiw",
	weekend : [0, 6],
	wk : "wy",
	time : "Amser:",
	days : ["Dydd Sul", "Dydd llun", "Dydd Mawrth", "Dydd Mercher", "Dydd Iau", "Dydd Gwener", "Dydd Sadwrn"],
	shortDays : ["Sul", "Llun", "Maw", "Mer", "Iau", "Gwen", "Sad"],
	months : ["Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"],
	shortMonths : ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Awst", "Medi", "Hyd", "Tach", "Rhag"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Cau",
	clear: "Clirio"
};system/js/fields/calendar-locales/ca.js000064400000001152152177723720014100 0ustar00window.JoomlaCalLocale = {
	today : "Avui",
	weekend : [0, 6],
	wk : "Setm",
	time : "Hora:",
	days : ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"],
	shortDays : ["Du", "Dl", "Dm", "Dx", "Dj", "Dv", "Ds"],
	months : ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
	shortMonths : ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Tancar",
	clear: "Desar"
};
system/js/fields/calendar-locales/el.js000064400000001615152177723720014121 0ustar00window.JoomlaCalLocale = {
	today : "Σήμερα",
	weekend : [0, 6],
	wk : "εβδ.",
	time : "Ώρα:",
	days : ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
	shortDays : ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
	months : ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
	shortMonths : ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαϊ", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
	AM : "ΠΜ",
	PM :  "ΜΜ",
	am : "πμ",
	pm : "μμ",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Κλείσιμο",
	clear: "Καθαρισμός"
};system/js/fields/calendar-locales/eu.js000064400000001220152177723720014122 0ustar00window.JoomlaCalLocale = {
	today : "Gaur",
	weekend : [0, 6],
	wk : "ast.",
	time : "Ordua:",
	days : ["Igandea", "Astelehena", "Asteartea", "Asteazkena", "Osteguna", "Ostirala", "Larunbata"],
	shortDays : ["ig.", "al.", "as.", "az.", "og.", "or.", "lr."],
	months : ["Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"],
	shortMonths : ["urt.", "ots.", "mar.", "api.", "mai.", "eka.", "uzt.", "abu.", "ira.", "urr.", "aza.", "abe."],
	AM : "AM",
	PM :  "PM",
	am : "am",
	pm : "pm",
	dateType : "gregorian",
	minYear : 1900,
	maxYear : 2100,
	exit: "Itxi",
	clear: "Garbitu"
};
system/js/fields/calendar.js000064400000123752152177723720012110 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
!(function(window, document){
	'use strict';

	/** Method to convert numbers to local symbols. */
	Date.convertNumbers = function(str) {
		var str = str.toString();

		if (Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers) === '[object Array]') {
			for (var i = 0; i < JoomlaCalLocale.localLangNumbers.length; i++) {
				str = str.replace(new RegExp(i, 'g'), JoomlaCalLocale.localLangNumbers[i]);
			}
		}
		return str;
	};

	/** Translates to english numbers a string. */
	Date.toEnglish = function(str) {
		str = this.toString();
		var nums = [0,1,2,3,4,5,6,7,8,9];
		for (var i = 0; i < 10; i++) {
			str = str.replace(new RegExp(nums[i], 'g'), i);
		}
		return str;
	};

	var JoomlaCalendar = function (element) {

		// Initialize only if the element exists
		if (!element) {
			throw new Error("Calendar setup failed:\n  No valid element found, Please check your code");
		}

		if (typeof Date.parseFieldDate !== 'function') {
			throw new Error("Calendar setup failed:\n  No valid date helper, Please check your code");
		}

		if (element._joomlaCalendar) {
			throw new Error('JoomlaCalendar instance already exists for the element');
		}

		element._joomlaCalendar = this;

		this.writable   = true;
		this.hidden     = true;
		this.params     = {};
		this.element    = element;
		this.inputField = element.getElementsByTagName('input')[0];
		this.button     = element.getElementsByTagName('button')[0];

		if (!this.inputField) {
			throw new Error("Calendar setup failed:\n  No valid input found, Please check your code");
		}

		// Prepare the parameters
		this.params = {
			debug: false,
			clicked: false,
			element: {style: {display: "none"}},
			writable: true
		};

		var self = this,
			btn  = this.button,
			instanceParams = {
				inputField      : this.inputField,
				dateType        : JoomlaCalLocale.dateType ? JoomlaCalLocale.dateType : 'gregorian',
				direction       : (document.dir !== undefined) ? document.dir : document.getElementsByTagName("html")[0].getAttribute("dir"),
				firstDayOfWeek  : btn.getAttribute("data-firstday") ? parseInt(btn.getAttribute("data-firstday")) : 0,
				dateFormat      : "%Y-%m-%d %H:%M:%S",
				weekend         : JoomlaCalLocale.weekend ? JoomlaCalLocale.weekend : [0,6],
				minYear         : JoomlaCalLocale.minYear ? JoomlaCalLocale.minYear : 1900,
				maxYear         : JoomlaCalLocale.maxYear ? JoomlaCalLocale.maxYear : 2100,
				minYearTmp      : btn.getAttribute("data-min-year"),
				maxYearTmp      : btn.getAttribute("data-max-year"),
				weekendTmp      : btn.getAttribute("data-weekend"),
				time24          : true,
				showsOthers     : (parseInt(btn.getAttribute("data-show-others")) === 1) ? true : false,
				showsTime       : true,
				weekNumbers     : (parseInt(btn.getAttribute("data-week-numbers")) === 1) ? true : false,
				showsTodayBtn   : true,
				compressedHeader: (parseInt(btn.getAttribute("data-only-months-nav")) === 1) ? true : false,
			};

		// Keep B/C
		if (btn.getAttribute("data-dayformat")) {
			instanceParams.dateFormat = btn.getAttribute("data-dayformat") ? btn.getAttribute("data-dayformat") : "%Y-%m-%d %H:%M:%S";
		}

		if (btn.getAttribute("data-time-24")) {
			instanceParams.time24 = parseInt(btn.getAttribute("data-time-24")) === 24 ? true : false;
		}

		if (btn.getAttribute("data-show-time")) {
			instanceParams.showsTime = parseInt(btn.getAttribute("data-show-time")) === 1 ? true : false;
		}

		if (btn.getAttribute("data-today-btn")) {
			instanceParams.showsTodayBtn = parseInt(btn.getAttribute("data-today-btn")) === 1 ? true : false;
		}

		// Merge the parameters
		for (var param in instanceParams) {
			this.params[param] = instanceParams[param];
		}

		// Evaluate the min year
		if (isInt(self.params.minYearTmp)) {
			self.params.minYear = getBoundary(parseInt(self.params.minYearTmp), self.params.dateType);
		}
		// Evaluate the max year
		if (isInt(self.params.maxYearTmp)) {
			self.params.maxYear = getBoundary(parseInt(self.params.maxYearTmp), self.params.dateType);
		}
		// Evaluate the weekend days
		if (self.params.weekendTmp !== "undefined") {
			self.params.weekend = self.params.weekendTmp.split(',').map(function(item) { return parseInt(item, 10); });
		}

		// Event handler need to define here, to be able access in current context
		this._dayMouseDown = function(event) {
			return self._handleDayMouseDown(event);
		};
		this._calKeyEvent = function(event) {
			return self._handleCalKeyEvent(event);
		};
		this._documentClick = function(event) {
			return self._handleDocumentClick(event);
		};

		// Set it up
		this.checkInputs();

		// For the fields with readonly tag calendar will not initiate fully
		if (this.inputField.getAttribute('readonly')) {
			return;
		}

		this._create();
		this._bindEvents();
	};

	JoomlaCalendar.prototype.checkInputs = function () {
		// Get the date from the input
		var inputAltValueDate = Date.parseFieldDate(this.inputField.getAttribute('data-alt-value'), this.params.dateFormat, 'gregorian');

		if (this.inputField.value !== '') {
			this.date = inputAltValueDate;
			this.inputField.value = inputAltValueDate.print(this.params.dateFormat, this.params.dateType, true);
		} else {
			this.date = new Date();
		}
	};

	/** Removes the calendar object from the DOM tree and destroys it and then recreates it. */
	JoomlaCalendar.prototype.recreate = function () {
		var element = this.element, el = element.querySelector('.js-calendar');
		if (el) {
			element._joomlaCalendar = null;
			el.parentNode.removeChild(el);
			new JoomlaCalendar(element);
		}
	};

	/** Time Control */
	JoomlaCalendar.prototype.updateTime = function (hours, mins, secs) {
		var self = this,
			date = self.date;

		var d = self.date.getLocalDate(self.params.dateType),
			m = self.date.getLocalMonth(self.params.dateType),
			y = self.date.getLocalFullYear(self.params.dateType),
			ampm = this.inputField.parentNode.parentNode.querySelectorAll('.time-ampm')[0];

		if (!self.params.time24) {
			if (/pm/i.test(ampm.value) && hours < 12) {
				hours = parseInt(hours) + 12;
			} else if (/am/i.test(ampm.value) && hours == 12) {
				hours = 0;
			}
		}

		date.setHours(hours);
		date.setMinutes(parseInt(mins, 10));
		date.setSeconds(date.getSeconds());
		date.setLocalFullYear(self.params.dateType, y);
		date.setLocalMonth(self.params.dateType, m);
		date.setLocalDate(self.params.dateType, d);
		self.dateClicked = false;

		this.callHandler();
	};

	/** Method to set the date to the given date object */
	JoomlaCalendar.prototype.setDate = function (date) {
		if (!date.equalsTo(this.date)) {
			this.date = date;
			this.processCalendar(this.params.firstDayOfWeek, date);
		}
	};

	/** Method to set the current date by a number, step */
	JoomlaCalendar.prototype.moveCursorBy = function (step) {
		var date = new Date(this.date);
		date.setDate(date.getDate() - step);
		this.setDate(date);
	};

	/** Reset select element */
	JoomlaCalendar.prototype.resetSelected = function (element) {
		var options = element.options;
		var i = options.length;
		while (i--) {
			var current = options[i];
			if (current.selected) {
				current.selected = false;
			}
		}
	};

	/** Method to set the value for the input field */
	JoomlaCalendar.prototype.callHandler = function () {
		/** Output the date **/
		this.inputField.setAttribute('data-alt-value', this.date.print(this.params.dateFormat, 'gregorian', false));

		if (this.inputField.getAttribute('data-alt-value') && this.inputField.getAttribute('data-alt-value') !== '0000-00-00 00:00:00') {
			this.inputField.value = this.date.print(this.params.dateFormat, this.params.dateType, true);
			if (this.params.dateType !== 'gregorian') {
				this.inputField.setAttribute('data-local-value', this.date.print(this.params.dateFormat, this.params.dateType, true));
			}
		}
		this.inputField.value = this.date.print(this.params.dateFormat, this.params.dateType, true);

		if (typeof this.inputField.onchange == "function") {
			this.inputField.onchange();
		}

		if (this.dateClicked && typeof this.params.onUpdate === "function") {
			this.params.onUpdate(this);
		}

		if (this.dateClicked) {
			this.close();
		} else {
			this.processCalendar();
		}
	};

	/** Method to close/hide the calendar */
	JoomlaCalendar.prototype.close = function () {
		this.hide();
	};

	/** Method to show the calendar. */
	JoomlaCalendar.prototype.show = function () {
		/** This is needed for IE8 */
		if (navigator.appName.indexOf("Internet Explorer")!==-1) {
			var badBrowser = (
				navigator.appVersion.indexOf("MSIE 9")===-1 &&
				navigator.appVersion.indexOf("MSIE 1")===-1
			);

			if (badBrowser) {
				if (window.jQuery && jQuery().chosen) {
					var selItems = this.element.getElementsByTagName('select');
					for (var i = 0; i < selItems.length; i++) {
						jQuery(selItems[i]).chosen('destroy');
					}
				}
			}
		}

		this.checkInputs();
		this.inputField.focus();
		this.dropdownElement.style.display = "block";
		this.hidden = false;

		document.addEventListener("keydown", this._calKeyEvent, true);
		document.addEventListener("keypress", this._calKeyEvent, true);
		document.addEventListener("mousedown", this._documentClick, true);

		/** Move the calendar to top position if it doesn't fit below. */
		var containerTmp = this.element.querySelector('.js-calendar');

		if (window.innerHeight < containerTmp.getBoundingClientRect().bottom + 20) {
			containerTmp.style.marginTop = - (containerTmp.getBoundingClientRect().height + this.inputField.getBoundingClientRect().height) + "px";
		}

		this.processCalendar();
	};

	/** Method to hide the calendar. */
	JoomlaCalendar.prototype.hide = function () {
		document.removeEventListener("keydown", this._calKeyEvent, true);
		document.removeEventListener("keypress", this._calKeyEvent, true);
		document.removeEventListener("mousedown", this._documentClick, true);

		this.dropdownElement.style.display = "none";
		this.hidden = true;
	};

	/** Method to catch clicks outside of the calendar (used as close call) */
	JoomlaCalendar.prototype._handleDocumentClick = function (ev) {
		var el = ev.target;

		if (el !== null && !el.classList.contains('time')) {
			for (; el !== null && el !== this.element; el = el.parentNode);
		}

		if (el === null) {
			document.activeElement.blur();
			this.hide();
			return stopCalEvent(ev);
		}
	};

	/** Method to handle mouse click events (menus, buttons) **/
	JoomlaCalendar.prototype._handleDayMouseDown = function (ev) {
		var self = this,
			el = ev.currentTarget,
			target = ev.target || ev.srcElement;

		if (target && target.hasAttribute('data-action')) {
			return;
		}

		if (el.nodeName !== 'TD') {                         // A bootstrap inner button was pressed?
			var testel = el.getParent('TD');
			if (testel.nodeName === 'TD') {                 // Yes so use that element's td
				el = testel;
			} else {                                        // No - try to find the table this way
				el = el.getParent('TD');
				if (el.classList.contains('js-calendar')) {
					el = el.getElementsByTagName('table')[0];
				}
			}
		} else {                                            // Check that doesn't have a button and is not a day td
			if (!(target.classList.contains('js-btn')) && !el.classList.contains('day') && !el.classList.contains('title')) {
				return;
			}
		}

		if (!el || el.disabled) {
			return false;
		}

		if (typeof el.navtype === "undefined" || el.navtype !== 300) {
			if (el.navtype === 50) { el._current = el.innerHTML; }

			if (target === el || target.parentNode === el) { self.cellClick(el, ev); }

			var mon = null;
			if (typeof el.month !== "undefined") {
				mon = el;
			}
			if (typeof el.parentNode.month !== "undefined") {
				mon = el.parentNode;
			}
			var date = null;
			if (mon) {
				date = new Date(self.date);
				if (mon.month !== date.getLocalMonth(self.params.dateType)) {
					date.setLocalMonth(self.params.dateType, mon.month);
					self.setDate(date);
					self.dateClicked = false;
					this.callHandler();
				}
			} else {
				var year = null;
				if (typeof el.year !== "undefined") {
					year = target;
				}
				if (typeof el.parentNode.year !== "undefined") {
					year = target.parentNode;
				}
				if (year) {
					date = new Date(self.date);
					if (year.year !== date.getLocalFullYear(self.params.dateType)) {
						date.setFullYear(self.params.dateType, year.year);
						self.setDate(date);
						self.dateClicked = false;
						this.callHandler();
					}
				}
			}
		}

		return stopCalEvent(ev);
	};

	/** Method to handle mouse click events (dates) **/
	JoomlaCalendar.prototype.cellClick = function (el, ev) {
		var self = this,
			closing = false,
			newdate = false,
			date = null;

		if (typeof el.navtype === "undefined") {
			if (self.currentDateEl) {
				el.classList.add("selected");
				self.currentDateEl = el.caldate;
				closing = (self.currentDateEl === el.caldate);
				if (!closing) {
					self.currentDateEl = el.caldate;
				}
			}
			self.date.setLocalDateOnly('gregorian', el.caldate);
			var other_month = !(self.dateClicked = !el.otherMonth);
			if (self.currentDateEl) { newdate = !el.disabled; }
			if (other_month) {
				this.processCalendar();
			}
		} else {
			date = new Date(self.date);
			self.dateClicked = false;
			var year = date.getOtherFullYear(self.params.dateType), mon = date.getLocalMonth(self.params.dateType);
			switch (el.navtype) {
				case 400:
					break;
				case -2:                                                                             // Prev year
					if (!self.params.compressedHeader) {
						if (year > self.params.minYear) {
							date.setOtherFullYear(self.params.dateType, year - 1);
						}
					}
					break;
				case -1:                                                                             // Prev month
					var day = date.getLocalDate(self.params.dateType);
					if (mon > 0) {
						var max = date.getLocalMonthDays(self.params.dateType, mon - 1);
						if (day > max) {
							date.setLocalDate(self.params.dateType, max);
						}
						date.setLocalMonth(self.params.dateType, mon - 1);
					} else if (year-- > self.params.minYear) {
						date.setOtherFullYear(self.params.dateType, year);
						var max = date.getLocalMonthDays(self.params.dateType, 11);
						if (day > max) {
							date.setLocalDate(self.params.dateType, max);
						}
						date.setLocalMonth(self.params.dateType, 11);
					}
					break;
				case 1:                                                                             // Next month
					var day = date.getLocalDate(self.params.dateType);
					if (mon < 11) {
						var max = date.getLocalMonthDays(self.params.dateType, mon + 1);
						if (day > max) {
							date.setLocalDate(self.params.dateType, max);
						}
						date.setLocalMonth(self.params.dateType, mon + 1);
					} else if (year < self.params.maxYear) {
						date.setOtherFullYear(self.params.dateType, year + 1);
						var max = date.getLocalMonthDays(self.params.dateType, 0);
						if (day > max) {
							date.setLocalDate(self.params.dateType, max);
						}
						date.setLocalMonth(self.params.dateType, 0);
					}
					break;
				case 2:                                                                             // Next year
					if (!self.params.compressedHeader)
						if (year < self.params.maxYear) {
							date.setOtherFullYear(self.params.dateType, year + 1);
						}
					break;
				case 0:                                                                             // Today
					break;
			}

			if (!date.equalsTo(self.date)) {
				this.setDate(date);
				newdate = true;
			} else if (el.navtype === 0) {
				newdate = closing = true;
			}
		}

		if (newdate) {
			if (self.params.showsTime) {
				this.dateClicked = false;
			}
			ev && this.callHandler();
		}

		el.classList.remove("hilite");

		if (closing && !self.params.showsTime) {
			self.dateClicked = false;
			ev && this.close();
		}
	};

	/** Method to handle keyboard click events **/
	JoomlaCalendar.prototype._handleCalKeyEvent = function (ev) {
		var self = this,
			K = ev.keyCode;

		// Get value from input
		if (ev.target === this.inputField && (K === 13 || K === 9)) {
			this.close();
		}

		if (self.params.direction === 'rtl') {
			if (K === 37) {
				K = 39;
			} else if (K === 39) {
				K = 37;
			}
		}

		if (K === 32) {                                // KEY Shift + space (now)
			if (ev.shiftKey) {
				ev.preventDefault();
				this.cellClick(self._nav_now, ev);
				self.close();
			}
		}
		if (K === 27) {                                // KEY esc (close);
			this.close();
		}
		if (K === 38) {                                // KEY up (previous week)
			this.moveCursorBy(7);
		}
		if (K === 40) {                                // KEY down (next week)
			this.moveCursorBy( -7);
		}
		if (K === 37) {                                // KEY left (previous day)
			this.moveCursorBy(1);
		}
		if (K === 39) {                                // KEY right (next day)
			this.moveCursorBy( -1);
		}
		if (ev.target === this.inputField && !(K>48 || K<57 || K===186 || K===189 || K===190 || K===32)) {
			return stopCalEvent(ev);
		}
	};

	/** Method to create the html structure of the calendar */
	JoomlaCalendar.prototype._create = function () {
		var self   = this,
			parent = this.element,
			table  = createElement("table"),
			div    = createElement("div");

		this.table = table;
		table.className = 'table';
		table.cellSpacing = 0;
		table.cellPadding = 0;
		table.style.marginBottom = 0;

		this.dropdownElement = div;
		parent.appendChild(div);

		if (this.params.direction) {
			div.style.direction = this.params.direction;
		}

		div.className = 'js-calendar';
		div.style.position = "absolute";
		div.style.boxShadow = "0px 0px 70px 0px rgba(0,0,0,0.67)";
		div.style.minWidth = this.inputField.width;
		div.style.padding = '0';
		div.style.display = "none";
		div.style.left = "auto";
		div.style.top = "auto";
		div.style.zIndex = 1060;
		div.style.borderRadius = "20px";

		this.wrapper = createElement('div');
		this.wrapper.className = 'calendar-container';
		div.appendChild(this.wrapper);
		this.wrapper.appendChild(table);

		var thead = createElement("thead", table);
		thead.className = 'calendar-header';

		var cell = null,
			row  = null,
			cal  = this,
			hh   = function (text, cs, navtype, node, styles, classes, attributes) {
				node = node ? node : "td";
				styles = styles ? styles : {};
				cell = createElement(node, row);
				if (cs) {
					classes = classes ? 'class="' + classes + '"' : '';
				cell.colSpan = cs;
				}

				for (var key in styles) {
					cell.style[key] = styles[key];
				}
				for (var key in attributes) {
					cell.setAttribute(key, attributes[key]);
				}
				if (navtype !== 0 && Math.abs(navtype) <= 2) {
					cell.className += " nav";
				}

				if (cs) {
					cell.addEventListener("mousedown", self._dayMouseDown, true);
				}

				cell.calendar = cal;
				cell.navtype = navtype;
				if (navtype !== 0 && Math.abs(navtype) <= 2) {
					cell.innerHTML = "<a " + classes + " style='display:inline;padding:2px 6px;cursor:pointer;text-decoration:none;' unselectable='on'>" + text + "</a>";
				} else {
					cell.innerHTML = cs ? "<div unselectable='on'" + classes + ">" + text + "</div>" : text;
					if (!cs && classes) {
						cell.className = classes;
					}
				}
				return cell;
			};

		if (this.params.compressedHeader === false) {                                                        // Head - year
			row = createElement("tr", thead);
			row.className = "calendar-head-row";
			this._nav_py = hh("&lsaquo;", 1, -2, '', {"text-align": "center", "font-size": "18px", "line-height": "18px"}, 'js-btn btn-prev-year');                   // Previous year button
			this.title = hh('<div style="text-align:center;font-size:18px"><span></span></div>', this.params.weekNumbers ? 6 : 5, 300);
			this.title.className = "title";
			this._nav_ny = hh(" &rsaquo;", 1, 2, '', {"text-align": "center", "font-size": "18px", "line-height": "18px"}, 'js-btn btn-next-year');                   // Next year button
		}

		row = createElement("tr", thead);                                                                   // Head - month
		row.className = "calendar-head-row";
		this._nav_pm = hh("&lsaquo;", 1, -1, '', {"text-align": "center", "font-size": "2em", "line-height": "1em"}, 'js-btn btn-prev-month');                       // Previous month button
		this._nav_month = hh('<div style="text-align:center;font-size:1.2em"><span></span></div>', this.params.weekNumbers ? 6 : 5, 888, 'td', {'textAlign': 'center'});
		this._nav_month.className = "title";
		this._nav_nm = hh(" &rsaquo;", 1, 1, '', {"text-align": "center", "font-size": "2em", "line-height": "1em"}, 'js-btn btn-next-month');                       // Next month button

		row = createElement("tr", thead);                                                                   // day names
		row.className = self.params.weekNumbers ? "daynames wk" : "daynames";
		if (this.params.weekNumbers) {
			cell = createElement("td", row);
			cell.className = "day-name wn";
			cell.innerHTML = JoomlaCalLocale.wk;
		}
		for (var i = 7; i > 0; --i) {
			cell = createElement("td", row);
			if (!i) {
				cell.calendar = self;
			}
		}
		this.firstdayname = (this.params.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;

		var fdow = this.params.firstDayOfWeek,
			cell = this.firstdayname,
			weekend = JoomlaCalLocale.weekend;

		for (var i = 0; i < 7; ++i) {
			var realday = (i + fdow) % 7;
			cell.classList.add("day-name");
			this.params.weekNumbers ? cell.classList.add('day-name-week') : '';

			if (i) {
				cell.calendar = self;
				cell.fdow = realday;
			}
			if (weekend.indexOf(weekend) !== -1) {
				cell.classList.add("weekend");
			}

			cell.innerHTML = JoomlaCalLocale.shortDays[(i + fdow) % 7];
			cell = cell.nextSibling;
		}

		var tbody = createElement("tbody", table);
		this.tbody = tbody;
		for (i = 6; i > 0; --i) {
			row = createElement("tr", tbody);
			if (this.params.weekNumbers) {
				cell = createElement("td", row);
			}

			for (var j = 7; j > 0; --j) {
				cell = createElement("td", row);
				cell.calendar = this;
				cell.addEventListener("mousedown", this._dayMouseDown, true);
			}
		}

		if (this.params.showsTime) {
			row = createElement("tr", tbody);
			row.className = "time";

			cell = createElement("td", row);
			cell.className = "time time-title";
			cell.colSpan = 1;
			cell.style.verticalAlign = 'middle';
			cell.innerHTML = " ";

			var cell1 = createElement("td", row);
			cell1.className = "time hours-select";
			cell1.colSpan = 2;

			var cell2 = createElement("td", row);
			cell2.className = "time minutes-select";
			cell2.colSpan = 2;

			(function () {
				function makeTimePart(className, selected, range_start, range_end, cellTml) {
					var part = createElement("select", cellTml), num;
					part.calendar  = self;
					part.className =  className;
					part.setAttribute('data-chosen', true); // avoid Chosen, hack
					part.style.width = '100%';
					part.navtype = 50;
					part._range = [];
					for (var i = range_start; i <= range_end; ++i) {
						var txt, selAttr = '';
						if (i === selected) {
							selAttr = true;
						}
						if (i < 10 && range_end >= 10) {
							num = '0' + i;
							txt = Date.convertNumbers('0') + Date.convertNumbers(i);
						} else {
							num = '' + i;
							txt = '' + Date.convertNumbers(i);
						}
						part.options.add(new Option(txt, num, selAttr, selAttr));
					}
					return part;
				}
				var hrs  = self.date.getHours(),
					mins = self.date.getMinutes(),
					t12  = !self.params.time24,
					pm   = (self.date.getHours() > 12);

				if (t12 && pm) {
					hrs -= 12;
				}

				var H = makeTimePart("time time-hours", hrs, t12 ? 1 : 0, t12 ? 12 : 23, cell1),
					M = makeTimePart("time time-minutes", mins, 0, 59, cell2),
					AP = null;

				cell = createElement("td", row);
				cell.className = "time ampm-select";
				cell.colSpan = self.params.weekNumbers ? 1 : 2;

				if (t12) {
					var selAttr = true,
						altDate = Date.parseFieldDate(self.inputField.getAttribute('data-alt-value'), self.params.dateFormat, 'gregorian');
					pm = (altDate.getHours() >= 12);

					var part = createElement("select", cell);
					part.className = "time-ampm";
					part.style.width = '100%';
					part.options.add(new Option(JoomlaCalLocale.PM, "pm", pm ? selAttr : '', pm ? selAttr : ''));
					part.options.add(new Option(JoomlaCalLocale.AM, "am", pm ? '' : selAttr, pm ? '' : selAttr));
					AP = part;

					// Event listener for the am/pm select
					AP.addEventListener("change", function (event) {
						self.updateTime(event.target.parentNode.parentNode.childNodes[1].childNodes[0].value,
							event.target.parentNode.parentNode.childNodes[2].childNodes[0].value,
							event.target.parentNode.parentNode.childNodes[3].childNodes[0].value);
					}, false);
				} else {
					cell.innerHTML = "&#160;";
					cell.colSpan = self.params.weekNumbers ? 3 : 2;
				}

				H.addEventListener("change", function (event) {
					self.updateTime(event.target.parentNode.parentNode.childNodes[1].childNodes[0].value,
						event.target.parentNode.parentNode.childNodes[2].childNodes[0].value,
						event.target.parentNode.parentNode.childNodes[3].childNodes[0].value);
				}, false);
				M.addEventListener("change", function (event) {
					self.updateTime(event.target.parentNode.parentNode.childNodes[1].childNodes[0].value,
						event.target.parentNode.parentNode.childNodes[2].childNodes[0].value,
						event.target.parentNode.parentNode.childNodes[3].childNodes[0].value);
				}, false);
			})();
		}

		row = createElement("div", this.wrapper);
		row.className = "buttons-wrapper btn-group";

		this._nav_clear = hh(JoomlaCalLocale.clear, '', 100, 'button', '', 'js-btn btn btn-clear', {"type": "button", "data-action": "clear"});

			var cleara = row.querySelector('[data-action="clear"]');
			cleara.addEventListener("click", function (e) {
				e.preventDefault();
				var days = self.table.querySelectorAll('td');
				for (var i = 0; i < days.length; i++) {
					if (days[i].classList.contains('selected')) {
						days[i].classList.remove('selected');
						break;
					}
				}
				self.inputField.setAttribute('data-alt-value', "0000-00-00 00:00:00");
				self.inputField.setAttribute('value', '');
				self.inputField.value = '';
			});

		if (this.params.showsTodayBtn) {
			this._nav_now = hh(JoomlaCalLocale.today, '', 0, 'button', '', 'js-btn btn btn-today', {"type": "button", "data-action": "today"});

			var todaya = this.wrapper.querySelector('[data-action="today"]');
			todaya.addEventListener('click', function (e) {
				e.preventDefault();
				self.date.setLocalDateOnly('gregorian', new Date());                                  // TODAY
				self.dateClicked = true;
				self.callHandler();
				self.close();
			});
		}

		this._nav_exit = hh(JoomlaCalLocale.exit, '', 999, 'button', '', 'js-btn btn btn-exit', {"type": "button", "data-action": "exit"});
		var exita = this.wrapper.querySelector('[data-action="exit"]');
		exita.addEventListener('click', function (e) {
			e.preventDefault();
			if (!self.dateClicked) {
				if (self.inputField.value) {
					if (self.params.dateType !== 'gregorian') {
						self.inputField.setAttribute('data-local-value', self.inputField.value);
					}
					if (typeof self.dateClicked === 'undefined') {
						// value needs to be validated
						self.inputField.setAttribute('data-alt-value', Date.parseFieldDate(self.inputField.value, self.params.dateFormat, self.params.dateType)
							.print(self.params.dateFormat, 'gregorian', false));
					} else {
						self.inputField.setAttribute('data-alt-value', self.date.print(self.params.dateFormat, 'gregorian', false));
					}
				} else {
					self.inputField.setAttribute('data-alt-value', '0000-00-00 00:00:00');
				}
				self.date = Date.parseFieldDate(self.inputField.getAttribute('data-alt-value'), self.params.dateFormat, self.params.dateType);
			}
			self.close();
		});

		this.processCalendar();
	};

	/** Method to append numbers to the calendar table */
	JoomlaCalendar.prototype.processCalendar = function () {
		this.table.style.visibility = "hidden";

		var firstDayOfWeek = this.params.firstDayOfWeek,
			date  = this.date,
			today = new Date(),
			TY    = today.getLocalFullYear(this.params.dateType),
			TM    = today.getLocalMonth(this.params.dateType),
			TD    = today.getLocalDate(this.params.dateType),
			year  = date.getOtherFullYear(this.params.dateType),
			hrs   = date.getHours(),
			mins  = date.getMinutes(),
			secs  = date.getSeconds(),
			t12   = !this.params.time24;

		if (year < this.params.minYear) {                                                                   // Check min,max year
			year = this.params.minYear;
			date.getOtherFullYear(this.params.dateType, year);
		} else if (year > this.params.maxYear) {
			year = this.params.maxYear;
			date.getOtherFullYear(this.params.dateType, year);
		}

		this.params.firstDayOfWeek = firstDayOfWeek;
		this.date = new Date(date);

		var month = date.getLocalMonth(this.params.dateType);
		var mday  = date.getLocalDate(this.params.dateType);

		// Compute the first day that would actually be displayed in the calendar, even if it's from the previous month.
		date.setLocalDate(this.params.dateType, 1);
		var day1 = (date.getLocalDay(this.params.dateType) - this.params.firstDayOfWeek) % 7;

		if (day1 < 0) {
			day1 += 7;
		}

		date.setLocalDate(this.params.dateType, - day1);
		date.setLocalDate(this.params.dateType, date.getLocalDate(this.params.dateType) + 1);

		var row = this.tbody.firstChild,
			ar_days = this.ar_days = new Array(),
			weekend = JoomlaCalLocale.weekend,
			monthDays = parseInt(date.getLocalWeekDays(this.params.dateType));

		/** Fill the table **/
		for (var i = 0; i < monthDays; ++i, row = row.nextSibling) {
			var cell = row.firstChild;
			if (this.params.weekNumbers) {
				cell.className = "day wn";
				cell.innerHTML = date.getLocalWeekNumber(this.params.dateType); //date.convertNumbers();
				cell = cell.nextSibling;
			}

			row.className = this.params.weekNumbers ? "daysrow wk" : "daysrow";
			var hasdays = false, iday,
				dpos = ar_days[i] = [],
				totalDays = monthDays + 1;

			for (var j = 0; j < totalDays; ++j, cell = cell.nextSibling, date.setLocalDate(this.params.dateType, iday + 1)) {
				cell.className = "day";
				cell.style['textAlign'] = 'center';
				iday = date.getLocalDate(this.params.dateType);
				var wday = date.getLocalDay(this.params.dateType);
				cell.pos = i << 4 | j;
				dpos[j] = cell;
				var current_month = (date.getLocalMonth(this.params.dateType) === month);
				if (!current_month) {
					if (this.params.showsOthers) {
						cell.className += " disabled othermonth ";
						cell.otherMonth = true;
					} else {
						cell.className += " emptycell";
						cell.innerHTML = "&#160;";
						cell.disabled = true;
						continue;
					}
				} else {
					cell.otherMonth = false;
					hasdays = true;
					cell.style.cursor = "pointer";
				}
				cell.disabled = false;
				cell.innerHTML = this.params.debug ? iday : Date.convertNumbers(iday);          // translated day number for each cell
				if (!cell.disabled) {
					cell.caldate = new Date(date);
					if (current_month && iday === mday) {
						cell.className += " selected";
						this.currentDateEl = cell;
					}
					if (date.getLocalFullYear(this.params.dateType) === TY && date.getLocalMonth(this.params.dateType) === TM && iday === TD) {
						cell.className += " today";
					}
					if (weekend.indexOf(wday) !== -1)
						cell.className += " weekend";
				}
			}
			if (!(hasdays || this.params.showsOthers)) {
				row.style.display = 'none';
				row.className = "emptyrow";
			} else {
				row.style.display = '';
			}
		}

		/* Set the time */
		if (this.params.showsTime) {
			if (hrs > 12 && t12) {
				hrs -= 12;
			}

			hrs = (hrs < 10) ? "0" + hrs : hrs;
			mins = (mins < 10) ? "0" + mins : mins;

			var hoursEl = this.table.querySelector('.time-hours'),
				minsEl = this.table.querySelector('.time-minutes');

			/* remove the selected class  for the hours*/
			this.resetSelected(hoursEl);
			if (!this.params.time24) 
			{ 
				hoursEl.value = (hrs == "00") ? "12" : hrs; 
			} 
			else 
			{ 
				hoursEl.value = hrs; 
			}

			/* remove the selected class  for the minutes*/
			this.resetSelected(minsEl);
			minsEl.value = mins;

			if (!this.params.time24)
			{
				var dateAlt = new Date(this.inputField.getAttribute('data-alt-value')),
					ampmEl = this.table.querySelector('.time-ampm'),
					hrsAlt = dateAlt.getHours();

				if (hrsAlt > 12) {
					/* remove the selected class  for the am-pm*/
					this.resetSelected(ampmEl);
					ampmEl.value = 'pm';
				}
			}
		}

		if (!this.params.compressedHeader) {
			this._nav_month.getElementsByTagName('span')[0].innerHTML = this.params.debug ? month + ' ' + JoomlaCalLocale.months[month] : JoomlaCalLocale.months[month];
			this.title.getElementsByTagName('span')[0].innerHTML = this.params.debug ? year + ' ' +  Date.convertNumbers(year.toString()) : Date.convertNumbers(year.toString());
		} else {
			var tmpYear = Date.convertNumbers(year.toString());
			this._nav_month.getElementsByTagName('span')[0].innerHTML = !this.params.monthBefore  ? JoomlaCalLocale.months[month] + ' - ' + tmpYear : tmpYear + ' - ' + JoomlaCalLocale.months[month] ;
		}
		this.table.style.visibility = "visible";
	};

	/** Method to listen for the click event on the input button. **/
	JoomlaCalendar.prototype._bindEvents = function () {
		var self = this;
		this.inputField.addEventListener('blur', function(event) {
			var calObj = JoomlaCalendar.getCalObject(this)._joomlaCalendar;

			// If calendar is open we will handle the event elsewhere
			if (calObj.dropdownElement.style.display === 'block') {
				event.preventDefault();
				return;
			}

			if (calObj) {
				if (calObj.inputField.value) {
					if (typeof calObj.params.dateClicked === 'undefined') {
						calObj.inputField.setAttribute('data-local-value', calObj.inputField.value);

						if (calObj.params.dateType !== 'gregorian') {
							// We need to transform the date for the data-alt-value
							var ndate, date = Date.parseFieldDate(calObj.inputField.value, calObj.params.dateFormat, calObj.params.dateType);
							ndate = Date.localCalToGregorian(date.getFullYear(), date.getMonth(), date.getDate());
							date.setFullYear(ndate[0]);
							date.setMonth(ndate[1]);
							date.setDate(ndate[2]);
							calObj.inputField.setAttribute('data-alt-value', date.print(calObj.params.dateFormat, 'gregorian', false));
						} else {
							calObj.inputField.setAttribute('data-alt-value', Date.parseFieldDate(calObj.inputField.value, calObj.params.dateFormat, calObj.params.dateType)
								.print(calObj.params.dateFormat, 'gregorian', false));
						}
					} else {
						calObj.inputField.setAttribute('data-alt-value', calObj.date.print(calObj.params.dateFormat, 'gregorian', false));
					}
				} else {
					calObj.inputField.setAttribute('data-alt-value', '0000-00-00 00:00:00');
				}
				calObj.date = Date.parseFieldDate(calObj.inputField.getAttribute('data-alt-value'), calObj.params.dateFormat, calObj.params.dateType);
			}

			self.close();
		}, true);
		this.button.addEventListener('click', function() {
			self.show();
		}, false);
	};

	/** Helpers **/
	var stopCalEvent = function (ev) { ev || (ev = window.event);  ev.preventDefault(); ev.stopPropagation(); return false; };
	var createElement = function (type, parent) { var el = null; el = document.createElement(type); if (typeof parent !== "undefined") { parent.appendChild(el); } return el; };
	var isInt = function (input) { return !isNaN(input) && (function(x) { return (x | 0) === x; })(parseFloat(input)) };
	var getBoundary = function (input, type) { var date = new Date(); var y = date.getLocalFullYear(type); return y + input; };
	/**
	 * IE8 polyfill for indexOf()
	 */
	if (!Array.prototype.indexOf) {
		Array.prototype.indexOf = function(elt) {
			var len = this.length >>> 0,
				from = Number(arguments[1]) || 0;

			from = (from < 0) ? Math.ceil(from) : Math.floor(from);

			if (from < 0) {
				from += len;
			}

			for (; from < len; from++) {
				if (from in this && this[from] === elt) {
					return from;
				}
			}
			return -1;
		};
	}

	/** Method to get the active calendar element through any descendant element. */
	JoomlaCalendar.getCalObject = function(element) {
		if (!element) {
			return false;
		}
		while (element.parentNode) {
			element = element.parentNode;
			if (element.classList.contains('field-calendar')) {
				return element;
			}
		}
		return false;
	};

	/** Method to change input values with the data-alt-value values. **/
	JoomlaCalendar.prototype.setAltValue = function() {
		var input = this.inputField;
		if (input.getAttribute('disabled')) return;
		input.value = input.getAttribute('data-alt-value') ? input.getAttribute('data-alt-value') : '';
	};

	/** Method to change the inputs before submit. **/
	JoomlaCalendar.onSubmit = function() {
		Joomla = window.Joomla || {};
		if (!Joomla.calendarProcessed) {
			Joomla.calendarProcessed = true;
			var elements = document.querySelectorAll(".field-calendar");

			for (var i = 0; i < elements.length; i++) {
				var element  = elements[i],
				    instance = element._joomlaCalendar;

				if (instance) {
					instance.setAltValue();
				}
			}
		}
	};

	/**
	 * Init the Calendars on the page
	 *
	 * @param {Node}        element    The element node
	 * @param {HTMLElement} container  The field container (optional)
	 */
	JoomlaCalendar.init = function (element, container) {

		// Fall back for translation strings
		window.JoomlaCalLocale           = window.JoomlaCalLocale ? JoomlaCalLocale : {};
		JoomlaCalLocale.today            = JoomlaCalLocale.today ? JoomlaCalLocale.today : 'today';
		JoomlaCalLocale.weekend          = JoomlaCalLocale.weekend ? JoomlaCalLocale.weekend : [0, 6];
		JoomlaCalLocale.localLangNumbers = JoomlaCalLocale.localLangNumbers ? JoomlaCalLocale.localLangNumbers : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
		JoomlaCalLocale.wk               = JoomlaCalLocale.wk ? JoomlaCalLocale.wk : 'wk';
		JoomlaCalLocale.AM               = JoomlaCalLocale.AM ? JoomlaCalLocale.AM : 'AM';
		JoomlaCalLocale.PM               = JoomlaCalLocale.PM ? JoomlaCalLocale.PM : 'PM';
		JoomlaCalLocale.am               = JoomlaCalLocale.am ? JoomlaCalLocale.am : 'am';
		JoomlaCalLocale.pm               = JoomlaCalLocale.pm ? JoomlaCalLocale.pm : 'pm';
		JoomlaCalLocale.dateType         = JoomlaCalLocale.dateType ? JoomlaCalLocale.dateType : 'gregorian';
		JoomlaCalLocale.time             = JoomlaCalLocale.time ? JoomlaCalLocale.time : 'time';
		JoomlaCalLocale.days             = JoomlaCalLocale.days ? JoomlaCalLocale.days : '["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]';
		JoomlaCalLocale.shortDays        = JoomlaCalLocale.shortDays ? JoomlaCalLocale.shortDays : ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
		JoomlaCalLocale.months           = JoomlaCalLocale.months ? JoomlaCalLocale.months : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
		JoomlaCalLocale.shortMonths      = JoomlaCalLocale.shortMonths ? JoomlaCalLocale.shortMonths : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
		JoomlaCalLocale.minYear          = JoomlaCalLocale.minYear ? JoomlaCalLocale.minYear : 1900;
		JoomlaCalLocale.maxYear          = JoomlaCalLocale.maxYear ? JoomlaCalLocale.maxYear : 2100;
		JoomlaCalLocale.exit             = JoomlaCalLocale.exit ? JoomlaCalLocale.exit : 'Cancel';
		JoomlaCalLocale.clear            = JoomlaCalLocale.clear ? JoomlaCalLocale.clear : 'Clear';

		var instance = element._joomlaCalendar;
		if (!instance) {
			new JoomlaCalendar(element);
		} else {
			instance.recreate();
		}

		if (element && element.getElementsByTagName('input')[0] && element.getElementsByTagName('input')[0].form && !element.getElementsByTagName('input')[0].disabled) {
			element.getElementsByTagName('input')[0].form.addEventListener('submit', JoomlaCalendar.onSubmit);
		}
	};

	window.JoomlaCalendar = JoomlaCalendar;

	/** Instantiate all the calendar fields when the document is ready */
	document.addEventListener("DOMContentLoaded", function() {
		var elements, i;

		elements = document.querySelectorAll(".field-calendar");

		for (i = 0; i < elements.length; i++) {
			JoomlaCalendar.init(elements[i]);
		}

		window.jQuery && jQuery(document).on("subform-row-add", function (event, row) {
			elements = row.querySelectorAll(".field-calendar");

			for (i = 0; i < elements.length; i++) {
				JoomlaCalendar.init(elements[i]);
			}
		});

		/** B/C related code
		 *  @deprecated 4.0
		 */
		window.Calendar = {};

		/** B/C related code
		 *  @deprecated 4.0
		 */
		Calendar.setup = function(obj) {

			if (obj.inputField && document.getElementById(obj.inputField)) {
				var element = document.getElementById(obj.inputField),
					cal = element.parentNode.querySelectorAll('button')[0];

				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						switch (property) {
							case 'ifFormat':
								if (cal) cal.setAttribute('data-dayformat', obj.ifFormat);
								break;

							case 'firstDay':
								if (cal) cal.setAttribute('data-firstday', parseInt(obj.firstDay));
								break;

							case 'weekNumbers':
								if (cal) cal.setAttribute('data-week-numbers', (obj.weekNumbers === "true" || obj.weekNumbers === true) ? '1' : '0');
								break;

							case 'showOthers':
								if (cal) cal.setAttribute('data-show-others', (obj.showOthers === "true" || obj.showOthers === true) ? '1' : '0');
								break;

							case 'showsTime':
								if (cal) cal.setAttribute('data-show-time', (obj.showsTime === "true" || obj.showsTime === true) ? '1' : '0');
								break;

							case 'timeFormat':
								if (cal) cal.setAttribute('data-time-24', parseInt(obj.timeFormat));
								break;

							case 'displayArea':
							case 'inputField':
							case 'button':
							case 'eventName':
							case 'daFormat':
							case 'disableFunc':
							case 'dateStatusFunc':
							case 'dateTooltipFunc':
							case 'dateText':
							case 'align':
							case 'range':
							case 'flat':
							case 'flatCallback':
							case 'onSelect':
							case 'onClose':
							case 'onUpdate':
							case 'date':
							case 'electric':
							case 'step':
							case 'position':
							case 'cache':
							case 'multiple':
								break;
						}


					}
				}
				JoomlaCalendar.init(element.parentNode.parentNode);
			}
			return null;
		};
	});
})(window, document);
system/js/fields/calendar.min.js000064400000061106152177723720012664 0ustar00!function(s,l){"use strict";Date.convertNumbers=function(e){e=e.toString();if("[object Array]"===Object.prototype.toString.call(JoomlaCalLocale.localLangNumbers))for(var a=0;a<JoomlaCalLocale.localLangNumbers.length;a++)e=e.replace(new RegExp(a,"g"),JoomlaCalLocale.localLangNumbers[a]);return e},Date.toEnglish=function(e){e=this.toString();for(var a=[0,1,2,3,4,5,6,7,8,9],t=0;t<10;t++)e=e.replace(new RegExp(a[t],"g"),t);return e};var o=function(e){if(!e)throw new Error("Calendar setup failed:\n  No valid element found, Please check your code");if("function"!=typeof Date.parseFieldDate)throw new Error("Calendar setup failed:\n  No valid date helper, Please check your code");if(e._joomlaCalendar)throw new Error("JoomlaCalendar instance already exists for the element");if((e._joomlaCalendar=this).writable=!0,this.hidden=!0,this.params={},this.element=e,this.inputField=e.getElementsByTagName("input")[0],this.button=e.getElementsByTagName("button")[0],!this.inputField)throw new Error("Calendar setup failed:\n  No valid input found, Please check your code");this.params={debug:!1,clicked:!1,element:{style:{display:"none"}},writable:!0};var a=this,t=this.button,r={inputField:this.inputField,dateType:JoomlaCalLocale.dateType?JoomlaCalLocale.dateType:"gregorian",direction:void 0!==l.dir?l.dir:l.getElementsByTagName("html")[0].getAttribute("dir"),firstDayOfWeek:t.getAttribute("data-firstday")?parseInt(t.getAttribute("data-firstday")):0,dateFormat:"%Y-%m-%d %H:%M:%S",weekend:JoomlaCalLocale.weekend?JoomlaCalLocale.weekend:[0,6],minYear:JoomlaCalLocale.minYear?JoomlaCalLocale.minYear:1900,maxYear:JoomlaCalLocale.maxYear?JoomlaCalLocale.maxYear:2100,minYearTmp:t.getAttribute("data-min-year"),maxYearTmp:t.getAttribute("data-max-year"),weekendTmp:t.getAttribute("data-weekend"),time24:!0,showsOthers:1===parseInt(t.getAttribute("data-show-others")),showsTime:!0,weekNumbers:1===parseInt(t.getAttribute("data-week-numbers")),showsTodayBtn:!0,compressedHeader:1===parseInt(t.getAttribute("data-only-months-nav"))};for(var s in t.getAttribute("data-dayformat")&&(r.dateFormat=t.getAttribute("data-dayformat")?t.getAttribute("data-dayformat"):"%Y-%m-%d %H:%M:%S"),t.getAttribute("data-time-24")&&(r.time24=24===parseInt(t.getAttribute("data-time-24"))),t.getAttribute("data-show-time")&&(r.showsTime=1===parseInt(t.getAttribute("data-show-time"))),t.getAttribute("data-today-btn")&&(r.showsTodayBtn=1===parseInt(t.getAttribute("data-today-btn"))),r)this.params[s]=r[s];i(a.params.minYearTmp)&&(a.params.minYear=d(parseInt(a.params.minYearTmp),a.params.dateType)),i(a.params.maxYearTmp)&&(a.params.maxYear=d(parseInt(a.params.maxYearTmp),a.params.dateType)),"undefined"!==a.params.weekendTmp&&(a.params.weekend=a.params.weekendTmp.split(",").map(function(e){return parseInt(e,10)})),this._dayMouseDown=function(e){return a._handleDayMouseDown(e)},this._calKeyEvent=function(e){return a._handleCalKeyEvent(e)},this._documentClick=function(e){return a._handleDocumentClick(e)},this.checkInputs(),this.inputField.getAttribute("readonly")||(this._create(),this._bindEvents())};o.prototype.checkInputs=function(){var e=Date.parseFieldDate(this.inputField.getAttribute("data-alt-value"),this.params.dateFormat,"gregorian");""!==this.inputField.value?(this.date=e,this.inputField.value=e.print(this.params.dateFormat,this.params.dateType,!0)):this.date=new Date},o.prototype.recreate=function(){var e=this.element,a=e.querySelector(".js-calendar");a&&(e._joomlaCalendar=null,a.parentNode.removeChild(a),new o(e))},o.prototype.updateTime=function(e,a,t){var r=this,s=r.date,l=r.date.getLocalDate(r.params.dateType),o=r.date.getLocalMonth(r.params.dateType),i=r.date.getLocalFullYear(r.params.dateType),n=this.inputField.parentNode.parentNode.querySelectorAll(".time-ampm")[0];r.params.time24||(/pm/i.test(n.value)&&e<12?e=parseInt(e)+12:/am/i.test(n.value)&&12==e&&(e=0)),s.setHours(e),s.setMinutes(parseInt(a,10)),s.setSeconds(s.getSeconds()),s.setLocalFullYear(r.params.dateType,i),s.setLocalMonth(r.params.dateType,o),s.setLocalDate(r.params.dateType,l),r.dateClicked=!1,this.callHandler()},o.prototype.setDate=function(e){e.equalsTo(this.date)||(this.date=e,this.processCalendar(this.params.firstDayOfWeek,e))},o.prototype.moveCursorBy=function(e){var a=new Date(this.date);a.setDate(a.getDate()-e),this.setDate(a)},o.prototype.resetSelected=function(e){for(var a=e.options,t=a.length;t--;){var r=a[t];r.selected&&(r.selected=!1)}},o.prototype.callHandler=function(){this.inputField.setAttribute("data-alt-value",this.date.print(this.params.dateFormat,"gregorian",!1)),this.inputField.getAttribute("data-alt-value")&&"0000-00-00 00:00:00"!==this.inputField.getAttribute("data-alt-value")&&(this.inputField.value=this.date.print(this.params.dateFormat,this.params.dateType,!0),"gregorian"!==this.params.dateType&&this.inputField.setAttribute("data-local-value",this.date.print(this.params.dateFormat,this.params.dateType,!0))),this.inputField.value=this.date.print(this.params.dateFormat,this.params.dateType,!0),"function"==typeof this.inputField.onchange&&this.inputField.onchange(),this.dateClicked&&"function"==typeof this.params.onUpdate&&this.params.onUpdate(this),this.dateClicked?this.close():this.processCalendar()},o.prototype.close=function(){this.hide()},o.prototype.show=function(){if(-1!==navigator.appName.indexOf("Internet Explorer")&&(-1===navigator.appVersion.indexOf("MSIE 9")&&-1===navigator.appVersion.indexOf("MSIE 1")&&s.jQuery&&jQuery().chosen))for(var e=this.element.getElementsByTagName("select"),a=0;a<e.length;a++)jQuery(e[a]).chosen("destroy");this.checkInputs(),this.inputField.focus(),this.dropdownElement.style.display="block",this.hidden=!1,l.addEventListener("keydown",this._calKeyEvent,!0),l.addEventListener("keypress",this._calKeyEvent,!0),l.addEventListener("mousedown",this._documentClick,!0);var t=this.element.querySelector(".js-calendar");s.innerHeight<t.getBoundingClientRect().bottom+20&&(t.style.marginTop=-(t.getBoundingClientRect().height+this.inputField.getBoundingClientRect().height)+"px"),this.processCalendar()},o.prototype.hide=function(){l.removeEventListener("keydown",this._calKeyEvent,!0),l.removeEventListener("keypress",this._calKeyEvent,!0),l.removeEventListener("mousedown",this._documentClick,!0),this.dropdownElement.style.display="none",this.hidden=!0},o.prototype._handleDocumentClick=function(e){var a=e.target;if(null!==a&&!a.classList.contains("time"))for(;null!==a&&a!==this.element;a=a.parentNode);if(null===a)return l.activeElement.blur(),this.hide(),n(e)},o.prototype._handleDayMouseDown=function(e){var a=this,t=e.currentTarget,r=e.target||e.srcElement;if(!r||!r.hasAttribute("data-action")){if("TD"!==t.nodeName){var s=t.getParent("TD");"TD"===s.nodeName?t=s:(t=t.getParent("TD")).classList.contains("js-calendar")&&(t=t.getElementsByTagName("table")[0])}else if(!r.classList.contains("js-btn")&&!t.classList.contains("day")&&!t.classList.contains("title"))return;if(!t||t.disabled)return!1;if(void 0===t.navtype||300!==t.navtype){50===t.navtype&&(t._current=t.innerHTML),r!==t&&r.parentNode!==t||a.cellClick(t,e);var l=null;void 0!==t.month&&(l=t),void 0!==t.parentNode.month&&(l=t.parentNode);var o=null;if(l)o=new Date(a.date),l.month!==o.getLocalMonth(a.params.dateType)&&(o.setLocalMonth(a.params.dateType,l.month),a.setDate(o),a.dateClicked=!1,this.callHandler());else{var i=null;void 0!==t.year&&(i=r),void 0!==t.parentNode.year&&(i=r.parentNode),i&&(o=new Date(a.date),i.year!==o.getLocalFullYear(a.params.dateType)&&(o.setFullYear(a.params.dateType,i.year),a.setDate(o),a.dateClicked=!1,this.callHandler()))}}return n(e)}},o.prototype.cellClick=function(e,a){var t=this,r=!1,s=!1,l=null;if(void 0===e.navtype){t.currentDateEl&&(e.classList.add("selected"),t.currentDateEl=e.caldate,(r=t.currentDateEl===e.caldate)||(t.currentDateEl=e.caldate)),t.date.setLocalDateOnly("gregorian",e.caldate);var o=!(t.dateClicked=!e.otherMonth);t.currentDateEl&&(s=!e.disabled),o&&this.processCalendar()}else{l=new Date(t.date),t.dateClicked=!1;var i=l.getOtherFullYear(t.params.dateType),n=l.getLocalMonth(t.params.dateType);switch(e.navtype){case 400:break;case-2:t.params.compressedHeader||i>t.params.minYear&&l.setOtherFullYear(t.params.dateType,i-1);break;case-1:var d=l.getLocalDate(t.params.dateType);if(0<n)(m=l.getLocalMonthDays(t.params.dateType,n-1))<d&&l.setLocalDate(t.params.dateType,m),l.setLocalMonth(t.params.dateType,n-1);else if(i-- >t.params.minYear){l.setOtherFullYear(t.params.dateType,i),(m=l.getLocalMonthDays(t.params.dateType,11))<d&&l.setLocalDate(t.params.dateType,m),l.setLocalMonth(t.params.dateType,11)}break;case 1:d=l.getLocalDate(t.params.dateType);if(n<11)(m=l.getLocalMonthDays(t.params.dateType,n+1))<d&&l.setLocalDate(t.params.dateType,m),l.setLocalMonth(t.params.dateType,n+1);else if(i<t.params.maxYear){var m;l.setOtherFullYear(t.params.dateType,i+1),(m=l.getLocalMonthDays(t.params.dateType,0))<d&&l.setLocalDate(t.params.dateType,m),l.setLocalMonth(t.params.dateType,0)}break;case 2:t.params.compressedHeader||i<t.params.maxYear&&l.setOtherFullYear(t.params.dateType,i+1)}l.equalsTo(t.date)?0===e.navtype&&(s=r=!0):(this.setDate(l),s=!0)}s&&(t.params.showsTime&&(this.dateClicked=!1),a&&this.callHandler()),e.classList.remove("hilite"),r&&!t.params.showsTime&&(t.dateClicked=!1,a&&this.close())},o.prototype._handleCalKeyEvent=function(e){var a=e.keyCode;if(e.target!==this.inputField||13!==a&&9!==a||this.close(),"rtl"===this.params.direction&&(37===a?a=39:39===a&&(a=37)),32===a&&e.shiftKey&&(e.preventDefault(),this.cellClick(this._nav_now,e),this.close()),27===a&&this.close(),38===a&&this.moveCursorBy(7),40===a&&this.moveCursorBy(-7),37===a&&this.moveCursorBy(1),39===a&&this.moveCursorBy(-1),e.target===this.inputField&&!(48<a||a<57||186===a||189===a||190===a||32===a))return n(e)},o.prototype._create=function(){var m=this,e=this.element,a=g("table"),t=g("div");(this.table=a).className="table",a.cellSpacing=0,a.cellPadding=0,a.style.marginBottom=0,this.dropdownElement=t,e.appendChild(t),this.params.direction&&(t.style.direction=this.params.direction),t.className="js-calendar",t.style.position="absolute",t.style.boxShadow="0px 0px 70px 0px rgba(0,0,0,0.67)",t.style.minWidth=this.inputField.width,t.style.padding="0",t.style.display="none",t.style.left="auto",t.style.top="auto",t.style.zIndex=1060,t.style.borderRadius="20px",this.wrapper=g("div"),this.wrapper.className="calendar-container",t.appendChild(this.wrapper),this.wrapper.appendChild(a);var r=g("thead",a);r.className="calendar-header";var n=null,d=null,p=this,s=function(e,a,t,r,s,l,o){for(var i in s=s||{},n=g(r=r||"td",d),a&&(l=l?'class="'+l+'"':"",n.colSpan=a),s)n.style[i]=s[i];for(var i in o)n.setAttribute(i,o[i]);return 0!==t&&Math.abs(t)<=2&&(n.className+=" nav"),a&&n.addEventListener("mousedown",m._dayMouseDown,!0),n.calendar=p,0!==(n.navtype=t)&&Math.abs(t)<=2?n.innerHTML="<a "+l+" style='display:inline;padding:2px 6px;cursor:pointer;text-decoration:none;' unselectable='on'>"+e+"</a>":(n.innerHTML=a?"<div unselectable='on'"+l+">"+e+"</div>":e,!a&&l&&(n.className=l)),n};!1===this.params.compressedHeader&&((d=g("tr",r)).className="calendar-head-row",this._nav_py=s("&lsaquo;",1,-2,"",{"text-align":"center","font-size":"18px","line-height":"18px"},"js-btn btn-prev-year"),this.title=s('<div style="text-align:center;font-size:18px"><span></span></div>',this.params.weekNumbers?6:5,300),this.title.className="title",this._nav_ny=s(" &rsaquo;",1,2,"",{"text-align":"center","font-size":"18px","line-height":"18px"},"js-btn btn-next-year")),(d=g("tr",r)).className="calendar-head-row",this._nav_pm=s("&lsaquo;",1,-1,"",{"text-align":"center","font-size":"2em","line-height":"1em"},"js-btn btn-prev-month"),this._nav_month=s('<div style="text-align:center;font-size:1.2em"><span></span></div>',this.params.weekNumbers?6:5,888,"td",{textAlign:"center"}),this._nav_month.className="title",this._nav_nm=s(" &rsaquo;",1,1,"",{"text-align":"center","font-size":"2em","line-height":"1em"},"js-btn btn-next-month"),(d=g("tr",r)).className=m.params.weekNumbers?"daynames wk":"daynames",this.params.weekNumbers&&((n=g("td",d)).className="day-name wn",n.innerHTML=JoomlaCalLocale.wk);for(var l=7;0<l;--l)n=g("td",d),l||(n.calendar=m);this.firstdayname=this.params.weekNumbers?d.firstChild.nextSibling:d.firstChild;var o=this.params.firstDayOfWeek,i=(n=this.firstdayname,JoomlaCalLocale.weekend);for(l=0;l<7;++l){var c=(l+o)%7;n.classList.add("day-name"),this.params.weekNumbers&&n.classList.add("day-name-week"),l&&(n.calendar=m,n.fdow=c),-1!==i.indexOf(i)&&n.classList.add("weekend"),n.innerHTML=JoomlaCalLocale.shortDays[(l+o)%7],n=n.nextSibling}var u=g("tbody",a);for(this.tbody=u,l=6;0<l;--l){d=g("tr",u),this.params.weekNumbers&&(n=g("td",d));for(var h=7;0<h;--h)(n=g("td",d)).calendar=this,n.addEventListener("mousedown",this._dayMouseDown,!0)}if(this.params.showsTime){(d=g("tr",u)).className="time",(n=g("td",d)).className="time time-title",n.colSpan=1,n.style.verticalAlign="middle",n.innerHTML=" ";var y=g("td",d);y.className="time hours-select",y.colSpan=2;var v=g("td",d);v.className="time minutes-select",v.colSpan=2,function(){function e(e,a,t,r,s){var l,o=g("select",s);o.calendar=m,o.className=e,o.setAttribute("data-chosen",!0),o.style.width="100%",o.navtype=50,o._range=[];for(var i=t;i<=r;++i){var n,d="";i===a&&(d=!0),i<10&&10<=r?(l="0"+i,n=Date.convertNumbers("0")+Date.convertNumbers(i)):(l=""+i,n=""+Date.convertNumbers(i)),o.options.add(new Option(n,l,d,d))}return o}var a=m.date.getHours(),t=m.date.getMinutes(),r=!m.params.time24,s=12<m.date.getHours();r&&s&&(a-=12);var l=e("time time-hours",a,r?1:0,r?12:23,y),o=e("time time-minutes",t,0,59,v);if((n=g("td",d)).className="time ampm-select",n.colSpan=m.params.weekNumbers?1:2,r){s=12<=Date.parseFieldDate(m.inputField.getAttribute("data-alt-value"),m.params.dateFormat,"gregorian").getHours();var i=g("select",n);i.className="time-ampm",i.style.width="100%",i.options.add(new Option(JoomlaCalLocale.PM,"pm",!!s||"",!!s||"")),i.options.add(new Option(JoomlaCalLocale.AM,"am",!s||"",!s||"")),i.addEventListener("change",function(e){m.updateTime(e.target.parentNode.parentNode.childNodes[1].childNodes[0].value,e.target.parentNode.parentNode.childNodes[2].childNodes[0].value,e.target.parentNode.parentNode.childNodes[3].childNodes[0].value)},!1)}else n.innerHTML="&#160;",n.colSpan=m.params.weekNumbers?3:2;l.addEventListener("change",function(e){m.updateTime(e.target.parentNode.parentNode.childNodes[1].childNodes[0].value,e.target.parentNode.parentNode.childNodes[2].childNodes[0].value,e.target.parentNode.parentNode.childNodes[3].childNodes[0].value)},!1),o.addEventListener("change",function(e){m.updateTime(e.target.parentNode.parentNode.childNodes[1].childNodes[0].value,e.target.parentNode.parentNode.childNodes[2].childNodes[0].value,e.target.parentNode.parentNode.childNodes[3].childNodes[0].value)},!1)}()}((d=g("div",this.wrapper)).className="buttons-wrapper btn-group",this._nav_clear=s(JoomlaCalLocale.clear,"",100,"button","","js-btn btn btn-clear",{type:"button","data-action":"clear"}),d.querySelector('[data-action="clear"]').addEventListener("click",function(e){e.preventDefault();for(var a=m.table.querySelectorAll("td"),t=0;t<a.length;t++)if(a[t].classList.contains("selected")){a[t].classList.remove("selected");break}m.inputField.setAttribute("data-alt-value","0000-00-00 00:00:00"),m.inputField.setAttribute("value",""),m.inputField.value=""}),this.params.showsTodayBtn)&&(this._nav_now=s(JoomlaCalLocale.today,"",0,"button","","js-btn btn btn-today",{type:"button","data-action":"today"}),this.wrapper.querySelector('[data-action="today"]').addEventListener("click",function(e){e.preventDefault(),m.date.setLocalDateOnly("gregorian",new Date),m.dateClicked=!0,m.callHandler(),m.close()}));this._nav_exit=s(JoomlaCalLocale.exit,"",999,"button","","js-btn btn btn-exit",{type:"button","data-action":"exit"}),this.wrapper.querySelector('[data-action="exit"]').addEventListener("click",function(e){e.preventDefault(),m.dateClicked||(m.inputField.value?("gregorian"!==m.params.dateType&&m.inputField.setAttribute("data-local-value",m.inputField.value),void 0===m.dateClicked?m.inputField.setAttribute("data-alt-value",Date.parseFieldDate(m.inputField.value,m.params.dateFormat,m.params.dateType).print(m.params.dateFormat,"gregorian",!1)):m.inputField.setAttribute("data-alt-value",m.date.print(m.params.dateFormat,"gregorian",!1))):m.inputField.setAttribute("data-alt-value","0000-00-00 00:00:00"),m.date=Date.parseFieldDate(m.inputField.getAttribute("data-alt-value"),m.params.dateFormat,m.params.dateType)),m.close()}),this.processCalendar()},o.prototype.processCalendar=function(){this.table.style.visibility="hidden";var e=this.params.firstDayOfWeek,a=this.date,t=new Date,r=t.getLocalFullYear(this.params.dateType),s=t.getLocalMonth(this.params.dateType),l=t.getLocalDate(this.params.dateType),o=a.getOtherFullYear(this.params.dateType),i=a.getHours(),n=a.getMinutes(),d=(a.getSeconds(),!this.params.time24);o<this.params.minYear?(o=this.params.minYear,a.getOtherFullYear(this.params.dateType,o)):o>this.params.maxYear&&(o=this.params.maxYear,a.getOtherFullYear(this.params.dateType,o)),this.params.firstDayOfWeek=e,this.date=new Date(a);var m=a.getLocalMonth(this.params.dateType),p=a.getLocalDate(this.params.dateType);a.setLocalDate(this.params.dateType,1);var c=(a.getLocalDay(this.params.dateType)-this.params.firstDayOfWeek)%7;c<0&&(c+=7),a.setLocalDate(this.params.dateType,-c),a.setLocalDate(this.params.dateType,a.getLocalDate(this.params.dateType)+1);for(var u=this.tbody.firstChild,h=this.ar_days=new Array,y=JoomlaCalLocale.weekend,v=parseInt(a.getLocalWeekDays(this.params.dateType)),g=0;g<v;++g,u=u.nextSibling){var b=u.firstChild;this.params.weekNumbers&&(b.className="day wn",b.innerHTML=a.getLocalWeekNumber(this.params.dateType),b=b.nextSibling),u.className=this.params.weekNumbers?"daysrow wk":"daysrow";for(var f,L=!1,C=h[g]=[],w=v+1,T=0;T<w;++T,b=b.nextSibling,a.setLocalDate(this.params.dateType,f+1)){b.className="day",b.style.textAlign="center",f=a.getLocalDate(this.params.dateType);var N=a.getLocalDay(this.params.dateType);b.pos=g<<4|T,C[T]=b;var D=a.getLocalMonth(this.params.dateType)===m;if(D)L=!(b.otherMonth=!1),b.style.cursor="pointer";else{if(!this.params.showsOthers){b.className+=" emptycell",b.innerHTML="&#160;",b.disabled=!0;continue}b.className+=" disabled othermonth ",b.otherMonth=!0}b.disabled=!1,b.innerHTML=this.params.debug?f:Date.convertNumbers(f),b.disabled||(b.caldate=new Date(a),D&&f===p&&(b.className+=" selected",this.currentDateEl=b),a.getLocalFullYear(this.params.dateType)===r&&a.getLocalMonth(this.params.dateType)===s&&f===l&&(b.className+=" today"),-1!==y.indexOf(N)&&(b.className+=" weekend"))}L||this.params.showsOthers?u.style.display="":(u.style.display="none",u.className="emptyrow")}if(this.params.showsTime){12<i&&d&&(i-=12),i=i<10?"0"+i:i,n=n<10?"0"+n:n;var F=this.table.querySelector(".time-hours"),k=this.table.querySelector(".time-minutes");if(this.resetSelected(F),this.params.time24?F.value=i:F.value="00"==i?"12":i,this.resetSelected(k),k.value=n,!this.params.time24){var J=new Date(this.inputField.getAttribute("data-alt-value")),A=this.table.querySelector(".time-ampm");12<J.getHours()&&(this.resetSelected(A),A.value="pm")}}if(this.params.compressedHeader){var M=Date.convertNumbers(o.toString());this._nav_month.getElementsByTagName("span")[0].innerHTML=this.params.monthBefore?M+" - "+JoomlaCalLocale.months[m]:JoomlaCalLocale.months[m]+" - "+M}else this._nav_month.getElementsByTagName("span")[0].innerHTML=this.params.debug?m+" "+JoomlaCalLocale.months[m]:JoomlaCalLocale.months[m],this.title.getElementsByTagName("span")[0].innerHTML=this.params.debug?o+" "+Date.convertNumbers(o.toString()):Date.convertNumbers(o.toString());this.table.style.visibility="visible"},o.prototype._bindEvents=function(){var s=this;this.inputField.addEventListener("blur",function(e){var a=o.getCalObject(this)._joomlaCalendar;if("block"!==a.dropdownElement.style.display){if(a){if(a.inputField.value)if(void 0===a.params.dateClicked)if(a.inputField.setAttribute("data-local-value",a.inputField.value),"gregorian"!==a.params.dateType){var t,r=Date.parseFieldDate(a.inputField.value,a.params.dateFormat,a.params.dateType);t=Date.localCalToGregorian(r.getFullYear(),r.getMonth(),r.getDate()),r.setFullYear(t[0]),r.setMonth(t[1]),r.setDate(t[2]),a.inputField.setAttribute("data-alt-value",r.print(a.params.dateFormat,"gregorian",!1))}else a.inputField.setAttribute("data-alt-value",Date.parseFieldDate(a.inputField.value,a.params.dateFormat,a.params.dateType).print(a.params.dateFormat,"gregorian",!1));else a.inputField.setAttribute("data-alt-value",a.date.print(a.params.dateFormat,"gregorian",!1));else a.inputField.setAttribute("data-alt-value","0000-00-00 00:00:00");a.date=Date.parseFieldDate(a.inputField.getAttribute("data-alt-value"),a.params.dateFormat,a.params.dateType)}s.close()}else e.preventDefault()},!0),this.button.addEventListener("click",function(){s.show()},!1)};var n=function(e){return e||(e=s.event),e.preventDefault(),e.stopPropagation(),!1},g=function(e,a){var t;return t=l.createElement(e),void 0!==a&&a.appendChild(t),t},i=function(e){return!isNaN(e)&&(0|(a=parseFloat(e)))===a;var a},d=function(e,a){return(new Date).getLocalFullYear(a)+e};Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var a=this.length>>>0,t=Number(arguments[1])||0;for((t=t<0?Math.ceil(t):Math.floor(t))<0&&(t+=a);t<a;t++)if(t in this&&this[t]===e)return t;return-1}),o.getCalObject=function(e){if(!e)return!1;for(;e.parentNode;)if((e=e.parentNode).classList.contains("field-calendar"))return e;return!1},o.prototype.setAltValue=function(){var e=this.inputField;e.getAttribute("disabled")||(e.value=e.getAttribute("data-alt-value")?e.getAttribute("data-alt-value"):"")},o.onSubmit=function(){if(Joomla=s.Joomla||{},!Joomla.calendarProcessed){Joomla.calendarProcessed=!0;for(var e=l.querySelectorAll(".field-calendar"),a=0;a<e.length;a++){var t=e[a]._joomlaCalendar;t&&t.setAltValue()}}},o.init=function(e,a){s.JoomlaCalLocale=s.JoomlaCalLocale?JoomlaCalLocale:{},JoomlaCalLocale.today=JoomlaCalLocale.today?JoomlaCalLocale.today:"today",JoomlaCalLocale.weekend=JoomlaCalLocale.weekend?JoomlaCalLocale.weekend:[0,6],JoomlaCalLocale.localLangNumbers=JoomlaCalLocale.localLangNumbers?JoomlaCalLocale.localLangNumbers:[0,1,2,3,4,5,6,7,8,9],JoomlaCalLocale.wk=JoomlaCalLocale.wk?JoomlaCalLocale.wk:"wk",JoomlaCalLocale.AM=JoomlaCalLocale.AM?JoomlaCalLocale.AM:"AM",JoomlaCalLocale.PM=JoomlaCalLocale.PM?JoomlaCalLocale.PM:"PM",JoomlaCalLocale.am=JoomlaCalLocale.am?JoomlaCalLocale.am:"am",JoomlaCalLocale.pm=JoomlaCalLocale.pm?JoomlaCalLocale.pm:"pm",JoomlaCalLocale.dateType=JoomlaCalLocale.dateType?JoomlaCalLocale.dateType:"gregorian",JoomlaCalLocale.time=JoomlaCalLocale.time?JoomlaCalLocale.time:"time",JoomlaCalLocale.days=JoomlaCalLocale.days?JoomlaCalLocale.days:'["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]',JoomlaCalLocale.shortDays=JoomlaCalLocale.shortDays?JoomlaCalLocale.shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],JoomlaCalLocale.months=JoomlaCalLocale.months?JoomlaCalLocale.months:["January","February","March","April","May","June","July","August","September","October","November","December"],JoomlaCalLocale.shortMonths=JoomlaCalLocale.shortMonths?JoomlaCalLocale.shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],JoomlaCalLocale.minYear=JoomlaCalLocale.minYear?JoomlaCalLocale.minYear:1900,JoomlaCalLocale.maxYear=JoomlaCalLocale.maxYear?JoomlaCalLocale.maxYear:2100,JoomlaCalLocale.exit=JoomlaCalLocale.exit?JoomlaCalLocale.exit:"Cancel",JoomlaCalLocale.clear=JoomlaCalLocale.clear?JoomlaCalLocale.clear:"Clear";var t=e._joomlaCalendar;t?t.recreate():new o(e),e&&e.getElementsByTagName("input")[0]&&e.getElementsByTagName("input")[0].form&&!e.getElementsByTagName("input")[0].disabled&&e.getElementsByTagName("input")[0].form.addEventListener("submit",o.onSubmit)},s.JoomlaCalendar=o,l.addEventListener("DOMContentLoaded",function(){var t,r;for(t=l.querySelectorAll(".field-calendar"),r=0;r<t.length;r++)o.init(t[r]);s.jQuery&&jQuery(l).on("subform-row-add",function(e,a){for(t=a.querySelectorAll(".field-calendar"),r=0;r<t.length;r++)o.init(t[r])}),s.Calendar={},Calendar.setup=function(e){if(e.inputField&&l.getElementById(e.inputField)){var a=l.getElementById(e.inputField),t=a.parentNode.querySelectorAll("button")[0];for(var r in e)if(e.hasOwnProperty(r))switch(r){case"ifFormat":t&&t.setAttribute("data-dayformat",e.ifFormat);break;case"firstDay":t&&t.setAttribute("data-firstday",parseInt(e.firstDay));break;case"weekNumbers":t&&t.setAttribute("data-week-numbers","true"===e.weekNumbers||!0===e.weekNumbers?"1":"0");break;case"showOthers":t&&t.setAttribute("data-show-others","true"===e.showOthers||!0===e.showOthers?"1":"0");break;case"showsTime":t&&t.setAttribute("data-show-time","true"===e.showsTime||!0===e.showsTime?"1":"0");break;case"timeFormat":t&&t.setAttribute("data-time-24",parseInt(e.timeFormat))}o.init(a.parentNode.parentNode)}return null}})}(window,document);system/js/passwordstrength.js000064400000004426152177723720012506 0ustar00/*
---
description: Form.PasswordStrength class, and basic dom methods

license: MIT-style

authors:
 - Al Kent

requires:
 - core/1.3.1: '*'

provides:
 - Form.PasswordStrength
 - Element.Events.keyupandchange
 - String.strength
...
*/

if (!this.Form) this.Form = {};

Form.PasswordStrength = new Class({
	
	Implements: [Options, Events],
	
	options: {
		//onUpdate: $empty,
		threshold: 66,
		primer: '',
		height: 5,
		opacity: 1,
		bgcolor: 'transparent'
	},
	
	element: null,
	fx: null,
	
	initialize: function(el, options){
		this.element = document.id(el);
		this.setOptions(options);
		if (this.options.primer) this.options.threshold = this.options.primer.strength();
		var coord = this.element.getCoordinates();
		var bar = new Element('div', {
			styles: {
				'width': coord.width,
				'height': this.options.height,
				'opacity': this.options.opacity,
				'background-color': this.options.bgcolor
			}
		}).inject(this.element, 'after');
		var meter = new Element('div', {
			styles: {
				'width': 0,
				'height': '100%'
			}
		}).inject(bar);
		this.fx = new Fx.Morph(meter, {
			duration: 'short',
			link: 'cancel',
			unit: '%'
		});
		this.element.addEvent('keyupandchange', this.animate.bind(this));
		if (this.element.get('value')) this.animate();
	},
	
	animate: function(){
		var value = this.element.get('value');
		var color, strength = value.strength(), ratio = (strength / this.options.threshold).round(2).limit(0, 1);
		if (ratio < 0.5) color = ('rgb(255, ' + (255 * ratio * 2).round() + ', 0)').rgbToHex();
		else color = ('rgb(' + (255 * (1 - ratio) * 2).round() + ', 255, 0)').rgbToHex();
		this.fx.start({
			'width': 100 * ratio,
			'background-color': color
		});
		this.fireEvent('update', [this.element, strength, this.options.threshold]);
	}
});

Element.Events.keyupandchange = {
	base: 'keyup',
	condition: function(event){
		var prev = this.retrieve('prev', null);
		var cur = this.get('value');
		if (typeOf(prev) != 'null' && prev == cur) return false;
		this.store('prev', cur);
		return true;
	}
};

String.implement({
	strength: function(){
		var n = 0;
		if (this.match(/\d/)) n += 10;
		if (this.match(/[a-z]+/)) n += 26;
		if (this.match(/[A-Z]+/)) n += 26;
		if (this.match(/[^\da-zA-Z]/)) n += 33;
		return (n == 0) ? 0 : (this.length * n.log() / (2).log()).round();
	}
});
system/js/repeatable.js000064400000013275152177723720011173 0ustar00!function(e){"use strict";e.JRepeatable=function(t,n){var a=this;return a&&a!==window?(a.$input=e(t),a.$input.data("JRepeatable")?a:(a.$input.data("JRepeatable",a),a.init=function(){a.options=e.extend({},e.JRepeatable.defaults,n),a.$container=e(a.options.container),e("body").append(a.$container),a.$rowsContainer=a.$container.find(a.options.repeatableElement).parent(),a.prepareModal(),a.inputs=[],a.values={},a.prepareTemplate();var t=a.$input.val();if(t)try{a.values=JSON.parse(t)}catch(e){if(e instanceof SyntaxError)try{t=t.replace(/'/g,'"').replace(/\\"/g,"'"),a.values=JSON.parse(t)}catch(e){window.console&&console.log(e)}else window.console&&console.log(e)}a.buildRows(),e(document).on("click",a.options.btModalOpen,function(e){e.preventDefault(),a.$modalWindow.modal("show")}),a.$modalWindow.on("click",a.options.btModalClose,function(e){e.preventDefault(),a.$modalWindow.modal("hide"),a.buildRows()}),a.$modalWindow.on("click",a.options.btModalSaveData,function(e){e.preventDefault(),a.$modalWindow.modal("hide"),a.refreshValue()}),a.$container.on("click",a.options.btAdd,function(t){t.preventDefault();var n=e(this).parents(a.options.repeatableElement);n.length||(n=null),a.addRow(n)}),a.$container.on("click",a.options.btRemove,function(t){t.preventDefault();var n=e(this).parents(a.options.repeatableElement);a.removeRow(n)}),a.$input.trigger("weready")},a.prepareTemplate=function(){var t=a.$container.find(a.options.repeatableElement),n=e(t.get(0));try{a.clearScripts(n)}catch(e){window.console&&console.log(e)}for(var o=n.find("*[name]"),i=0,r=o.length;i<r;i++){var l=e(o[i]).attr("name");a.values[l]||(a.inputs.push({name:l,type:e(o[i]).attr("type")||o[i].tagName.toLowerCase()}),a.values[l]=[])}a.template=n.prop("outerHTML"),t.remove(),a.$input.trigger("prepare-template",a.template)},a.prepareModal=function(){var t=e(a.options.modalElement);t.css({position:"absolute",width:"auto","max-width":"100%"}),t.on("shown",function(){a.resizeModal()}),e(window).resize(function(){a.resizeModal()}),a.$modalWindow=t.modal({show:!1,backdrop:"static"}),a.$input.trigger("prepare-modal",a.$modalWindow)},a.resizeModal=function(){if(a.$modalWindow.is(":visible")){var t=e(document).width()/2,n=a.$modalWindow.width()/2,o=a.$rowsContainer.width()/2,i=n>=t?0:-n,r=i?"50%":0,l=e(document).scrollTop()+.2*e(window).height();a.$modalWindow.css({top:l,left:r,"margin-left":i,overflow:o>n?"auto":"visible"})}},a.buildRows=function(){var e=a.$rowsContainer.children();e.length&&a.removeRow(e);for(var t=a.values[Object.keys(a.values)[0]].length||1,n=null,o=0;o<t;o++)n=a.addRow(n,o)},a.addRow=function(t,n){var o=a.$container.find(a.options.repeatableElement).length;if(o>=a.options.maximum)return null;var i=e.parseHTML(a.template);t?e(t).after(i):a.$rowsContainer.append(i);var r=e(i);if(a.fixUniqueAttributes(r,o+1),null!==n&&void 0!==n)for(var l=0,d=a.inputs.length;l<d;l++){var s=a.inputs[l].name,c=a.inputs[l].type,p=null;if(a.values[s]&&(p=a.values[s][n]),null!==p&&void 0!==p)if("radio"===c)r.find('*[name*="'+s+'"][value="'+p+'"]').attr("checked","checked");else if("checkbox"===c)if(p.length)for(var u=0,f=p.length;u<f;u++)r.find('*[name*="'+s+'"][value="'+p[u]+'"]').attr("checked","checked");else r.find('*[name*="'+s+'"][value="'+p+'"]').attr("checked","checked");else r.find('*[name*="'+s+'"]').val(p)}try{a.fixScripts(r)}catch(e){window.console&&console.log(e)}return a.$input.trigger("row-add",r),r},a.removeRow=function(t){a.$input.trigger("row-remove",t),e(t).remove()},a.fixUniqueAttributes=function(e,t){var n=e.find("*[id]");a.increaseAttrName(n,"id",t);var o=e.find("label[for]");a.increaseAttrName(o,"for",t);var i=e.find("*[name]");a.increaseAttrName(i,"name",t)},a.increaseAttrName=function(t,n,a){for(var o=0,i=t.length;o<i;o++){var r=e(t[o]),l=r.attr(n);r.attr(n,a+"-"+l)}},a.refreshValue=function(){var t=a.$container.find(a.options.repeatableElement);a.values={};for(var n=0,o=a.inputs.length;n<o;n++){var i=a.inputs[n].name,r=a.inputs[n].type;a.values[i]=[];for(var l=0,d=t.length;l<d;l++){var s=e(t[l]),c=null;if("radio"===r)c=s.find('*[name*="'+i+'"]:checked').val();else if("checkbox"===r){var p=s.find('*[name*="'+i+'"]:checked');if(p.length>1){c=[];for(var u=0,f=p.length;u<f;u++)c.push(e(p[u]).val())}else c=p.val()}else c=s.find('*[name*="'+i+'"]').val();c=null===c?"":c,a.values[i].push(c)}}a.$input.val(JSON.stringify(a.values)),a.$input.trigger("value-update",a.values)},a.clearScripts=function(t){e.fn.chosen&&t.find("select").each(function(){e(this).data("chosen")&&e(this).chosen("destroy")}),e.fn.minicolors&&t.find(".minicolors input").each(function(){e(this).minicolors("destroy",e(this))})},a.fixScripts=function(t){t.find(".minicolors").each(function(){var t=e(this);t.minicolors({control:t.attr("data-control")||"hue",position:t.attr("data-position")||"right",theme:"bootstrap"})}),t.find('a[onclick*="jInsertFieldValue"]').each(function(){var t=e(this),n=t.siblings('input[type="text"]').attr("id"),a=t.prev(),o=a.attr("href");t.attr("onclick","jInsertFieldValue('', '"+n+"');return false;"),a.attr("href",o.replace(/&fieldid=(.+)&/,"&fieldid="+n+"&")),jMediaRefreshPreview(n)}),t.find(".field-media-wrapper").each(function(){e(this).fieldMedia()}),window.SqueezeBox&&window.SqueezeBox.assign&&SqueezeBox.assign(t.find("a.modal").get(),{parse:"rel"})},void a.init())):new e.JRepeatable(t,n)},e.JRepeatable.defaults={modalElement:"#modal-container",btModalOpen:"#open-modal",btModalClose:".close-modal",btModalSaveData:".save-modal-data",btAdd:"a.add",btRemove:"a.remove",maximum:10,repeatableElement:"table tbody tr"},e.fn.JRepeatable=function(t){return this.each(function(){var t=t||{},n=e(this).data();for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);new e.JRepeatable(this,t)})},e(window).on("load",function(){e("input.form-field-repeatable").JRepeatable()})}(jQuery);system/js/color-field-adv-init.min.js000064400000000635152177723720013555 0ustar00jQuery((function(o){function a(a,t){t=t||document,o(t).find(".minicolors").each((function(){var a=o(this),t="color"===a.data("validate")?"hex":a.data("format")||"hex";a.minicolors({control:a.data("control")||"hue",format:"rgba"===t?"rgb":t,keywords:a.data("keywords")||"",opacity:"rgba"===t,position:a.data("position")||"default",theme:a.data("theme")||"bootstrap"})}))}a(),o("body").on("subform-row-add",a)}));

system/js/polyfill.classlist.js000064400000011366152177723720012720 0ustar00(function(){"defineProperty"in Object&&function(){try{var t={};return Object.defineProperty(t,"test",{value:42}),!0}catch(e){return!1}}()||!function(t){var e=Object.prototype.hasOwnProperty("__defineGetter__"),n="Getters & setters cannot be defined on this javascript engine",o="A property cannot both have accessors and be writable or have a value";Object.defineProperty=function(r,i,c){if(t&&(r===window||r===document||r===Element.prototype||r instanceof Element))return t(r,i,c);if(null===r||!(r instanceof Object||"object"==typeof r))throw new TypeError("Object must be an object (Object.defineProperty polyfill)");if(!(c instanceof Object))throw new TypeError("Descriptor must be an object (Object.defineProperty polyfill)");var a=String(i),u="value"in c||"writable"in c,p="get"in c&&typeof c.get,l="set"in c&&typeof c.set;if(p){if("function"!==p)throw new TypeError("Getter expected a function (Object.defineProperty polyfill)");if(!e)throw new TypeError(n);if(u)throw new TypeError(o);r.__defineGetter__(a,c.get)}else r[a]=c.value;if(l){if("function"!==l)throw new TypeError("Setter expected a function (Object.defineProperty polyfill)");if(!e)throw new TypeError(n);if(u)throw new TypeError(o);r.__defineSetter__(a,c.set)}return"value"in c&&(r[a]=c.value),r}}(Object.defineProperty);var t=function(){function t(t){if(/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/.test(t))return String(t);throw new Error("InvalidCharacterError: DOM Exception 5")}function e(t){for(var e,n=-1,o={};e=t[++n];)o[e]=!0;return o}function n(t,e){var n,o=[];for(n in e)e[n]&&o.push(n);[].splice.apply(t,[0,t.length].concat(o))}var o=function(){};return o.prototype={constructor:o,item:function(t){return this[parseFloat(t)]||null},length:Array.prototype.length,toString:function(){return[].join.call(this," ")},add:function(){for(var o,r=e(this),i=0;i in arguments;++i)o=t(arguments[i]),r[o]=!0;n(this,r)},contains:function(t){return t in e(this)},remove:function(){for(var o,r=e(this),i=0;i in arguments;++i)o=t(arguments[i]),r[o]=!1;n(this,r)},toggle:function(o){var r=e(this),i=1 in arguments?!arguments[1]:t(o)in r;return r[o]=!i,n(this,r),!i}},o}();"Document"in this||(this.HTMLDocument?this.Document=this.HTMLDocument:(this.Document=this.HTMLDocument=document.constructor=new Function("return function Document() {}")(),this.Document.prototype=document)),"Element"in this&&"HTMLElement"in this||!function(){function t(){return l--||clearTimeout(e),document.body&&!document.body.prototype&&/(complete|interactive)/.test(document.readyState)?(a(document,!0),e&&document.body.prototype&&clearTimeout(e),!!document.body.prototype):!1}if(window.Element&&!window.HTMLElement)return void(window.HTMLElement=window.Element);window.Element=window.HTMLElement=new Function("return function Element() {}")();var e,n=document.appendChild(document.createElement("body")),o=n.appendChild(document.createElement("iframe")),r=o.contentWindow.document,i=Element.prototype=r.appendChild(r.createElement("*")),c={},a=function(t,e){var n,o,r,i=t.childNodes||[],u=-1;if(1===t.nodeType&&t.constructor!==Element){t.constructor=Element;for(n in c)o=c[n],t[n]=o}for(;r=e&&i[++u];)a(r,e);return t},u=document.getElementsByTagName("*"),p=document.createElement,l=100;i.attachEvent("onpropertychange",function(t){for(var e,n=t.propertyName,o=!c.hasOwnProperty(n),r=i[n],a=c[n],p=-1;e=u[++p];)1===e.nodeType&&(o||e[n]===a)&&(e[n]=r);c[n]=r}),i.constructor=Element,i.hasAttribute||(i.hasAttribute=function(t){return null!==this.getAttribute(t)}),t(!0)||(document.onreadystatechange=t,e=setInterval(t,25)),document.createElement=function(t){var e=p(String(t).toLowerCase());return a(e)},document.removeChild(n)}(),"document"in this&&"classList"in document.documentElement||Object.defineProperty(Element.prototype,"classList",{configurable:!0,get:function(){function e(){var t="object"==typeof r.className?r.className.baseVal:r.className;[].splice.apply(o,[0,o.length].concat((t||"").replace(/^\s+|\s+$/g,"").split(/\s+/)))}function n(){r.attachEvent&&r.detachEvent("onpropertychange",e),"object"==typeof r.className?r.className.baseVal=i.toString.call(o):r.className=i.toString.call(o),r.attachEvent&&r.attachEvent("onpropertychange",e)}var o,r=this,i=t.prototype,c=function(){};return c.prototype=new t,c.prototype.item=function(){return e(),i.item.apply(o,arguments)},c.prototype.toString=function(){return e(),i.toString.apply(o,arguments)},c.prototype.add=function(){return e(),i.add.apply(o,arguments),n()},c.prototype.contains=function(){return e(),i.contains.apply(o,arguments)},c.prototype.remove=function(){return e(),i.remove.apply(o,arguments),n()},c.prototype.toggle=function(t){return e(),t=i.toggle.apply(o,arguments),n(),t},o=new c,r.attachEvent&&r.attachEvent("onpropertychange",e),o}})}).call("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{});
system/js/color-field-adv-init.js000064400000001216152177723720012767 0ustar00jQuery(function ($){
	initMinicolors();
	$('body').on('subform-row-add', initMinicolors);

	function initMinicolors(event, container)
	{
		container = container || document;

		$(container).find('.minicolors').each(function() {
			var $this = $(this);
			var format = $this.data('validate') === 'color' ? 'hex' : $this.data('format') || 'hex';

			$this.minicolors({
				control: $this.data('control') || 'hue',
				format: format === 'rgba' ? 'rgb' : format,
				keywords: $this.data('keywords') || '',
				opacity: format === 'rgba',
				position: $this.data('position') || 'default',
				theme: $this.data('theme') || 'bootstrap',
			});
		});
	}
});
system/js/mootools-more-uncompressed.js000064400001251277152177723720014416 0ustar00// MooTools: the javascript framework.
// Load this file's selection again by visiting: http://mootools.net/more/065f2f092ece4e3b32bb5214464cf926 
// Or build this file again with packager using: packager build More/More More/Events.Pseudos More/Class.Refactor More/Class.Binds More/Class.Occlude More/Chain.Wait More/Array.Extras More/Date More/Date.Extras More/Number.Format More/Object.Extras More/String.Extras More/String.QueryString More/URI More/URI.Relative More/Hash More/Hash.Extras More/Element.Forms More/Elements.From More/Element.Event.Pseudos More/Element.Event.Pseudos.Keys More/Element.Measure More/Element.Pin More/Element.Position More/Element.Shortcuts More/Form.Request More/Form.Request.Append More/Form.Validator More/Form.Validator.Inline More/Form.Validator.Extras More/OverText More/Fx.Elements More/Fx.Accordion More/Fx.Move More/Fx.Reveal More/Fx.Scroll More/Fx.Slide More/Fx.SmoothScroll More/Fx.Sort More/Drag More/Drag.Move More/Slider More/Sortables More/Request.JSONP More/Request.Queue More/Request.Periodical More/Assets More/Color More/Group More/Hash.Cookie More/IframeShim More/Table More/HtmlTable More/HtmlTable.Zebra More/HtmlTable.Sort More/HtmlTable.Select More/Keyboard More/Keyboard.Extras More/Mask More/Scroller More/Tips More/Spinner More/Locale More/Locale.Set.From More/Locale.en-US.Date More/Locale.en-US.Form.Validator More/Locale.en-US.Number More/Locale.ar.Date More/Locale.ar.Form.Validator More/Locale.ca-CA.Date More/Locale.ca-CA.Form.Validator More/Locale.cs-CZ.Date More/Locale.cs-CZ.Form.Validator More/Locale.da-DK.Date More/Locale.da-DK.Form.Validator More/Locale.de-CH.Date More/Locale.de-CH.Form.Validator More/Locale.de-DE.Date More/Locale.de-DE.Form.Validator More/Locale.de-DE.Number More/Locale.en-GB.Date More/Locale.es-AR.Date More/Locale.es-AR.Form.Validator More/Locale.es-ES.Date More/Locale.es-ES.Form.Validator More/Locale.et-EE.Date More/Locale.et-EE.Form.Validator More/Locale.EU.Number More/Locale.fa.Date More/Locale.fa.Form.Validator More/Locale.fi-FI.Date More/Locale.fi-FI.Form.Validator More/Locale.fi-FI.Number More/Locale.fr-FR.Date More/Locale.fr-FR.Form.Validator More/Locale.fr-FR.Number More/Locale.he-IL.Date More/Locale.he-IL.Form.Validator More/Locale.he-IL.Number More/Locale.hu-HU.Date More/Locale.hu-HU.Form.Validator More/Locale.it-IT.Date More/Locale.it-IT.Form.Validator More/Locale.ja-JP.Date More/Locale.ja-JP.Form.Validator More/Locale.ja-JP.Number More/Locale.nl-NL.Date More/Locale.nl-NL.Form.Validator More/Locale.nl-NL.Number More/Locale.no-NO.Date More/Locale.no-NO.Form.Validator More/Locale.pl-PL.Date More/Locale.pl-PL.Form.Validator More/Locale.pt-BR.Date More/Locale.pt-BR.Form.Validator More/Locale.pt-PT.Date More/Locale.pt-PT.Form.Validator More/Locale.ru-RU-unicode.Date More/Locale.ru-RU-unicode.Form.Validator More/Locale.si-SI.Date More/Locale.si-SI.Form.Validator More/Locale.sv-SE.Date More/Locale.sv-SE.Form.Validator More/Locale.uk-UA.Date More/Locale.uk-UA.Form.Validator More/Locale.zh-CH.Date More/Locale.zh-CH.Form.Validator
/*
---

script: More.js

name: More

description: MooTools More

license: MIT-style license

authors:
  - Guillermo Rauch
  - Thomas Aylott
  - Scott Kyle
  - Arian Stolwijk
  - Tim Wienk
  - Christoph Pojer
  - Aaron Newton
  - Jacob Thornton

requires:
  - Core/MooTools

provides: [MooTools.More]

...
*/

MooTools.More = {
	'version': '1.4.0.1',
	'build': 'a4244edf2aa97ac8a196fc96082dd35af1abab87'
};


/*
---

name: Events.Pseudos

description: Adds the functionality to add pseudo events

license: MIT-style license

authors:
  - Arian Stolwijk

requires: [Core/Class.Extras, Core/Slick.Parser, More/MooTools.More]

provides: [Events.Pseudos]

...
*/

(function(){

Events.Pseudos = function(pseudos, addEvent, removeEvent){

	var storeKey = '_monitorEvents:';

	var storageOf = function(object){
		return {
			store: object.store ? function(key, value){
				object.store(storeKey + key, value);
			} : function(key, value){
				(object._monitorEvents || (object._monitorEvents = {}))[key] = value;
			},
			retrieve: object.retrieve ? function(key, dflt){
				return object.retrieve(storeKey + key, dflt);
			} : function(key, dflt){
				if (!object._monitorEvents) return dflt;
				return object._monitorEvents[key] || dflt;
			}
		};
	};

	var splitType = function(type){
		if (type.indexOf(':') == -1 || !pseudos) return null;

		var parsed = Slick.parse(type).expressions[0][0],
			parsedPseudos = parsed.pseudos,
			l = parsedPseudos.length,
			splits = [];

		while (l--){
			var pseudo = parsedPseudos[l].key,
				listener = pseudos[pseudo];
			if (listener != null) splits.push({
				event: parsed.tag,
				value: parsedPseudos[l].value,
				pseudo: pseudo,
				original: type,
				listener: listener
			});
		}
		return splits.length ? splits : null;
	};

	return {

		addEvent: function(type, fn, internal){
			var split = splitType(type);
			if (!split) return addEvent.call(this, type, fn, internal);

			var storage = storageOf(this),
				events = storage.retrieve(type, []),
				eventType = split[0].event,
				args = Array.slice(arguments, 2),
				stack = fn,
				self = this;

			split.each(function(item){
				var listener = item.listener,
					stackFn = stack;
				if (listener == false) eventType += ':' + item.pseudo + '(' + item.value + ')';
				else stack = function(){
					listener.call(self, item, stackFn, arguments, stack);
				};
			});

			events.include({type: eventType, event: fn, monitor: stack});
			storage.store(type, events);

			if (type != eventType) addEvent.apply(this, [type, fn].concat(args));
			return addEvent.apply(this, [eventType, stack].concat(args));
		},

		removeEvent: function(type, fn){
			var split = splitType(type);
			if (!split) return removeEvent.call(this, type, fn);

			var storage = storageOf(this),
				events = storage.retrieve(type);
			if (!events) return this;

			var args = Array.slice(arguments, 2);

			removeEvent.apply(this, [type, fn].concat(args));
			events.each(function(monitor, i){
				if (!fn || monitor.event == fn) removeEvent.apply(this, [monitor.type, monitor.monitor].concat(args));
				delete events[i];
			}, this);

			storage.store(type, events);
			return this;
		}

	};

};

var pseudos = {

	once: function(split, fn, args, monitor){
		fn.apply(this, args);
		this.removeEvent(split.event, monitor)
			.removeEvent(split.original, fn);
	},

	throttle: function(split, fn, args){
		if (!fn._throttled){
			fn.apply(this, args);
			fn._throttled = setTimeout(function(){
				fn._throttled = false;
			}, split.value || 250);
		}
	},

	pause: function(split, fn, args){
		clearTimeout(fn._pause);
		fn._pause = fn.delay(split.value || 250, this, args);
	}

};

Events.definePseudo = function(key, listener){
	pseudos[key] = listener;
	return this;
};

Events.lookupPseudo = function(key){
	return pseudos[key];
};

var proto = Events.prototype;
Events.implement(Events.Pseudos(pseudos, proto.addEvent, proto.removeEvent));

['Request', 'Fx'].each(function(klass){
	if (this[klass]) this[klass].implement(Events.prototype);
});

})();


/*
---

script: Class.Refactor.js

name: Class.Refactor

description: Extends a class onto itself with new property, preserving any items attached to the class's namespace.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Class
  - /MooTools.More

# Some modules declare themselves dependent on Class.Refactor
provides: [Class.refactor, Class.Refactor]

...
*/

Class.refactor = function(original, refactors){

	Object.each(refactors, function(item, name){
		var origin = original.prototype[name];
		origin = (origin && origin.$origin) || origin || function(){};
		original.implement(name, (typeof item == 'function') ? function(){
			var old = this.previous;
			this.previous = origin;
			var value = item.apply(this, arguments);
			this.previous = old;
			return value;
		} : item);
	});

	return original;

};


/*
---

script: Class.Binds.js

name: Class.Binds

description: Automagically binds specified methods in a class to the instance of the class.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Class
  - /MooTools.More

provides: [Class.Binds]

...
*/

Class.Mutators.Binds = function(binds){
	if (!this.prototype.initialize) this.implement('initialize', function(){});
	return Array.from(binds).concat(this.prototype.Binds || []);
};

Class.Mutators.initialize = function(initialize){
	return function(){
		Array.from(this.Binds).each(function(name){
			var original = this[name];
			if (original) this[name] = original.bind(this);
		}, this);
		return initialize.apply(this, arguments);
	};
};


/*
---

script: Class.Occlude.js

name: Class.Occlude

description: Prevents a class from being applied to a DOM element twice.

license: MIT-style license.

authors:
  - Aaron Newton

requires:
  - Core/Class
  - Core/Element
  - /MooTools.More

provides: [Class.Occlude]

...
*/

Class.Occlude = new Class({

	occlude: function(property, element){
		element = document.id(element || this.element);
		var instance = element.retrieve(property || this.property);
		if (instance && !this.occluded)
			return (this.occluded = instance);

		this.occluded = false;
		element.store(property || this.property, this);
		return this.occluded;
	}

});


/*
---

script: Chain.Wait.js

name: Chain.Wait

description: value, Adds a method to inject pauses between chained events.

license: MIT-style license.

authors:
  - Aaron Newton

requires:
  - Core/Chain
  - Core/Element
  - Core/Fx
  - /MooTools.More

provides: [Chain.Wait]

...
*/

(function(){

	var wait = {
		wait: function(duration){
			return this.chain(function(){
				this.callChain.delay(duration == null ? 500 : duration, this);
				return this;
			}.bind(this));
		}
	};

	Chain.implement(wait);

	if (this.Fx) Fx.implement(wait);

	if (this.Element && Element.implement && this.Fx){
		Element.implement({

			chains: function(effects){
				Array.from(effects || ['tween', 'morph', 'reveal']).each(function(effect){
					effect = this.get(effect);
					if (!effect) return;
					effect.setOptions({
						link:'chain'
					});
				}, this);
				return this;
			},

			pauseFx: function(duration, effect){
				this.chains(effect).get(effect || 'tween').wait(duration);
				return this;
			}

		});
	}

})();


/*
---

script: Array.Extras.js

name: Array.Extras

description: Extends the Array native object to include useful methods to work with arrays.

license: MIT-style license

authors:
  - Christoph Pojer
  - Sebastian Markbåge

requires:
  - Core/Array
  - MooTools.More

provides: [Array.Extras]

...
*/

(function(nil){

Array.implement({

	min: function(){
		return Math.min.apply(null, this);
	},

	max: function(){
		return Math.max.apply(null, this);
	},

	average: function(){
		return this.length ? this.sum() / this.length : 0;
	},

	sum: function(){
		var result = 0, l = this.length;
		if (l){
			while (l--) result += this[l];
		}
		return result;
	},

	unique: function(){
		return [].combine(this);
	},

	shuffle: function(){
		for (var i = this.length; i && --i;){
			var temp = this[i], r = Math.floor(Math.random() * ( i + 1 ));
			this[i] = this[r];
			this[r] = temp;
		}
		return this;
	},

	reduce: function(fn, value){
		for (var i = 0, l = this.length; i < l; i++){
			if (i in this) value = value === nil ? this[i] : fn.call(null, value, this[i], i, this);
		}
		return value;
	},

	reduceRight: function(fn, value){
		var i = this.length;
		while (i--){
			if (i in this) value = value === nil ? this[i] : fn.call(null, value, this[i], i, this);
		}
		return value;
	}

});

})();


/*
---

script: Object.Extras.js

name: Object.Extras

description: Extra Object generics, like getFromPath which allows a path notation to child elements.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Object
  - /MooTools.More

provides: [Object.Extras]

...
*/

(function(){

var defined = function(value){
	return value != null;
};

var hasOwnProperty = Object.prototype.hasOwnProperty;

Object.extend({

	getFromPath: function(source, parts){
		if (typeof parts == 'string') parts = parts.split('.');
		for (var i = 0, l = parts.length; i < l; i++){
			if (hasOwnProperty.call(source, parts[i])) source = source[parts[i]];
			else return null;
		}
		return source;
	},

	cleanValues: function(object, method){
		method = method || defined;
		for (var key in object) if (!method(object[key])){
			delete object[key];
		}
		return object;
	},

	erase: function(object, key){
		if (hasOwnProperty.call(object, key)) delete object[key];
		return object;
	},

	run: function(object){
		var args = Array.slice(arguments, 1);
		for (var key in object) if (object[key].apply){
			object[key].apply(object, args);
		}
		return object;
	}

});

})();


/*
---

script: Locale.js

name: Locale

description: Provides methods for localization.

license: MIT-style license

authors:
  - Aaron Newton
  - Arian Stolwijk

requires:
  - Core/Events
  - /Object.Extras
  - /MooTools.More

provides: [Locale, Lang]

...
*/

(function(){

var current = null,
	locales = {},
	inherits = {};

var getSet = function(set){
	if (instanceOf(set, Locale.Set)) return set;
	else return locales[set];
};

var Locale = this.Locale = {

	define: function(locale, set, key, value){
		var name;
		if (instanceOf(locale, Locale.Set)){
			name = locale.name;
			if (name) locales[name] = locale;
		} else {
			name = locale;
			if (!locales[name]) locales[name] = new Locale.Set(name);
			locale = locales[name];
		}

		if (set) locale.define(set, key, value);

		

		if (!current) current = locale;

		return locale;
	},

	use: function(locale){
		locale = getSet(locale);

		if (locale){
			current = locale;

			this.fireEvent('change', locale);

			
		}

		return this;
	},

	getCurrent: function(){
		return current;
	},

	get: function(key, args){
		return (current) ? current.get(key, args) : '';
	},

	inherit: function(locale, inherits, set){
		locale = getSet(locale);

		if (locale) locale.inherit(inherits, set);
		return this;
	},

	list: function(){
		return Object.keys(locales);
	}

};

Object.append(Locale, new Events);

Locale.Set = new Class({

	sets: {},

	inherits: {
		locales: [],
		sets: {}
	},

	initialize: function(name){
		this.name = name || '';
	},

	define: function(set, key, value){
		var defineData = this.sets[set];
		if (!defineData) defineData = {};

		if (key){
			if (typeOf(key) == 'object') defineData = Object.merge(defineData, key);
			else defineData[key] = value;
		}
		this.sets[set] = defineData;

		return this;
	},

	get: function(key, args, _base){
		var value = Object.getFromPath(this.sets, key);
		if (value != null){
			var type = typeOf(value);
			if (type == 'function') value = value.apply(null, Array.from(args));
			else if (type == 'object') value = Object.clone(value);
			return value;
		}

		// get value of inherited locales
		var index = key.indexOf('.'),
			set = index < 0 ? key : key.substr(0, index),
			names = (this.inherits.sets[set] || []).combine(this.inherits.locales).include('en-US');
		if (!_base) _base = [];

		for (var i = 0, l = names.length; i < l; i++){
			if (_base.contains(names[i])) continue;
			_base.include(names[i]);

			var locale = locales[names[i]];
			if (!locale) continue;

			value = locale.get(key, args, _base);
			if (value != null) return value;
		}

		return '';
	},

	inherit: function(names, set){
		names = Array.from(names);

		if (set && !this.inherits.sets[set]) this.inherits.sets[set] = [];

		var l = names.length;
		while (l--) (set ? this.inherits.sets[set] : this.inherits.locales).unshift(names[l]);

		return this;
	}

});



})();


/*
---

name: Locale.en-US.Date

description: Date messages for US English.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Locale

provides: [Locale.en-US.Date]

...
*/

Locale.define('en-US', 'Date', {

	months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	months_abbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
	days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
	days_abbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],

	// Culture's date order: MM/DD/YYYY
	dateOrder: ['month', 'date', 'year'],
	shortDate: '%m/%d/%Y',
	shortTime: '%I:%M%p',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 0,

	// Date.Extras
	ordinal: function(dayOfMonth){
		// 1st, 2nd, 3rd, etc.
		return (dayOfMonth > 3 && dayOfMonth < 21) ? 'th' : ['th', 'st', 'nd', 'rd', 'th'][Math.min(dayOfMonth % 10, 4)];
	},

	lessThanMinuteAgo: 'less than a minute ago',
	minuteAgo: 'about a minute ago',
	minutesAgo: '{delta} minutes ago',
	hourAgo: 'about an hour ago',
	hoursAgo: 'about {delta} hours ago',
	dayAgo: '1 day ago',
	daysAgo: '{delta} days ago',
	weekAgo: '1 week ago',
	weeksAgo: '{delta} weeks ago',
	monthAgo: '1 month ago',
	monthsAgo: '{delta} months ago',
	yearAgo: '1 year ago',
	yearsAgo: '{delta} years ago',

	lessThanMinuteUntil: 'less than a minute from now',
	minuteUntil: 'about a minute from now',
	minutesUntil: '{delta} minutes from now',
	hourUntil: 'about an hour from now',
	hoursUntil: 'about {delta} hours from now',
	dayUntil: '1 day from now',
	daysUntil: '{delta} days from now',
	weekUntil: '1 week from now',
	weeksUntil: '{delta} weeks from now',
	monthUntil: '1 month from now',
	monthsUntil: '{delta} months from now',
	yearUntil: '1 year from now',
	yearsUntil: '{delta} years from now'

});


/*
---

script: Date.js

name: Date

description: Extends the Date native object to include methods useful in managing dates.

license: MIT-style license

authors:
  - Aaron Newton
  - Nicholas Barthelemy - https://svn.nbarthelemy.com/date-js/
  - Harald Kirshner - mail [at] digitarald.de; http://digitarald.de
  - Scott Kyle - scott [at] appden.com; http://appden.com

requires:
  - Core/Array
  - Core/String
  - Core/Number
  - MooTools.More
  - Locale
  - Locale.en-US.Date

provides: [Date]

...
*/

(function(){

var Date = this.Date;

var DateMethods = Date.Methods = {
	ms: 'Milliseconds',
	year: 'FullYear',
	min: 'Minutes',
	mo: 'Month',
	sec: 'Seconds',
	hr: 'Hours'
};

['Date', 'Day', 'FullYear', 'Hours', 'Milliseconds', 'Minutes', 'Month', 'Seconds', 'Time', 'TimezoneOffset',
	'Week', 'Timezone', 'GMTOffset', 'DayOfYear', 'LastMonth', 'LastDayOfMonth', 'UTCDate', 'UTCDay', 'UTCFullYear',
	'AMPM', 'Ordinal', 'UTCHours', 'UTCMilliseconds', 'UTCMinutes', 'UTCMonth', 'UTCSeconds', 'UTCMilliseconds'].each(function(method){
	Date.Methods[method.toLowerCase()] = method;
});

var pad = function(n, digits, string){
	if (digits == 1) return n;
	return n < Math.pow(10, digits - 1) ? (string || '0') + pad(n, digits - 1, string) : n;
};

Date.implement({

	set: function(prop, value){
		prop = prop.toLowerCase();
		var method = DateMethods[prop] && 'set' + DateMethods[prop];
		if (method && this[method]) this[method](value);
		return this;
	}.overloadSetter(),

	get: function(prop){
		prop = prop.toLowerCase();
		var method = DateMethods[prop] && 'get' + DateMethods[prop];
		if (method && this[method]) return this[method]();
		return null;
	}.overloadGetter(),

	clone: function(){
		return new Date(this.get('time'));
	},

	increment: function(interval, times){
		interval = interval || 'day';
		times = times != null ? times : 1;

		switch (interval){
			case 'year':
				return this.increment('month', times * 12);
			case 'month':
				var d = this.get('date');
				this.set('date', 1).set('mo', this.get('mo') + times);
				return this.set('date', d.min(this.get('lastdayofmonth')));
			case 'week':
				return this.increment('day', times * 7);
			case 'day':
				return this.set('date', this.get('date') + times);
		}

		if (!Date.units[interval]) throw new Error(interval + ' is not a supported interval');

		return this.set('time', this.get('time') + times * Date.units[interval]());
	},

	decrement: function(interval, times){
		return this.increment(interval, -1 * (times != null ? times : 1));
	},

	isLeapYear: function(){
		return Date.isLeapYear(this.get('year'));
	},

	clearTime: function(){
		return this.set({hr: 0, min: 0, sec: 0, ms: 0});
	},

	diff: function(date, resolution){
		if (typeOf(date) == 'string') date = Date.parse(date);

		return ((date - this) / Date.units[resolution || 'day'](3, 3)).round(); // non-leap year, 30-day month
	},

	getLastDayOfMonth: function(){
		return Date.daysInMonth(this.get('mo'), this.get('year'));
	},

	getDayOfYear: function(){
		return (Date.UTC(this.get('year'), this.get('mo'), this.get('date') + 1)
			- Date.UTC(this.get('year'), 0, 1)) / Date.units.day();
	},

	setDay: function(day, firstDayOfWeek){
		if (firstDayOfWeek == null){
			firstDayOfWeek = Date.getMsg('firstDayOfWeek');
			if (firstDayOfWeek === '') firstDayOfWeek = 1;
		}

		day = (7 + Date.parseDay(day, true) - firstDayOfWeek) % 7;
		var currentDay = (7 + this.get('day') - firstDayOfWeek) % 7;

		return this.increment('day', day - currentDay);
	},

	getWeek: function(firstDayOfWeek){
		if (firstDayOfWeek == null){
			firstDayOfWeek = Date.getMsg('firstDayOfWeek');
			if (firstDayOfWeek === '') firstDayOfWeek = 1;
		}

		var date = this,
			dayOfWeek = (7 + date.get('day') - firstDayOfWeek) % 7,
			dividend = 0,
			firstDayOfYear;

		if (firstDayOfWeek == 1){
			// ISO-8601, week belongs to year that has the most days of the week (i.e. has the thursday of the week)
			var month = date.get('month'),
				startOfWeek = date.get('date') - dayOfWeek;

			if (month == 11 && startOfWeek > 28) return 1; // Week 1 of next year

			if (month == 0 && startOfWeek < -2){
				// Use a date from last year to determine the week
				date = new Date(date).decrement('day', dayOfWeek);
				dayOfWeek = 0;
			}

			firstDayOfYear = new Date(date.get('year'), 0, 1).get('day') || 7;
			if (firstDayOfYear > 4) dividend = -7; // First week of the year is not week 1
		} else {
			// In other cultures the first week of the year is always week 1 and the last week always 53 or 54.
			// Days in the same week can have a different weeknumber if the week spreads across two years.
			firstDayOfYear = new Date(date.get('year'), 0, 1).get('day');
		}

		dividend += date.get('dayofyear');
		dividend += 6 - dayOfWeek; // Add days so we calculate the current date's week as a full week
		dividend += (7 + firstDayOfYear - firstDayOfWeek) % 7; // Make up for first week of the year not being a full week

		return (dividend / 7);
	},

	getOrdinal: function(day){
		return Date.getMsg('ordinal', day || this.get('date'));
	},

	getTimezone: function(){
		return this.toString()
			.replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/, '$1')
			.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, '$1$2$3');
	},

	getGMTOffset: function(){
		var off = this.get('timezoneOffset');
		return ((off > 0) ? '-' : '+') + pad((off.abs() / 60).floor(), 2) + pad(off % 60, 2);
	},

	setAMPM: function(ampm){
		ampm = ampm.toUpperCase();
		var hr = this.get('hr');
		if (hr > 11 && ampm == 'AM') return this.decrement('hour', 12);
		else if (hr < 12 && ampm == 'PM') return this.increment('hour', 12);
		return this;
	},

	getAMPM: function(){
		return (this.get('hr') < 12) ? 'AM' : 'PM';
	},

	parse: function(str){
		this.set('time', Date.parse(str));
		return this;
	},

	isValid: function(date){
		if (!date) date = this;
		return typeOf(date) == 'date' && !isNaN(date.valueOf());
	},

	format: function(format){
		if (!this.isValid()) return 'invalid date';

		if (!format) format = '%x %X';
		if (typeof format == 'string') format = formats[format.toLowerCase()] || format;
		if (typeof format == 'function') return format(this);

		var d = this;
		return format.replace(/%([a-z%])/gi,
			function($0, $1){
				switch ($1){
					case 'a': return Date.getMsg('days_abbr')[d.get('day')];
					case 'A': return Date.getMsg('days')[d.get('day')];
					case 'b': return Date.getMsg('months_abbr')[d.get('month')];
					case 'B': return Date.getMsg('months')[d.get('month')];
					case 'c': return d.format('%a %b %d %H:%M:%S %Y');
					case 'd': return pad(d.get('date'), 2);
					case 'e': return pad(d.get('date'), 2, ' ');
					case 'H': return pad(d.get('hr'), 2);
					case 'I': return pad((d.get('hr') % 12) || 12, 2);
					case 'j': return pad(d.get('dayofyear'), 3);
					case 'k': return pad(d.get('hr'), 2, ' ');
					case 'l': return pad((d.get('hr') % 12) || 12, 2, ' ');
					case 'L': return pad(d.get('ms'), 3);
					case 'm': return pad((d.get('mo') + 1), 2);
					case 'M': return pad(d.get('min'), 2);
					case 'o': return d.get('ordinal');
					case 'p': return Date.getMsg(d.get('ampm'));
					case 's': return Math.round(d / 1000);
					case 'S': return pad(d.get('seconds'), 2);
					case 'T': return d.format('%H:%M:%S');
					case 'U': return pad(d.get('week'), 2);
					case 'w': return d.get('day');
					case 'x': return d.format(Date.getMsg('shortDate'));
					case 'X': return d.format(Date.getMsg('shortTime'));
					case 'y': return d.get('year').toString().substr(2);
					case 'Y': return d.get('year');
					case 'z': return d.get('GMTOffset');
					case 'Z': return d.get('Timezone');
				}
				return $1;
			}
		);
	},

	toISOString: function(){
		return this.format('iso8601');
	}

}).alias({
	toJSON: 'toISOString',
	compare: 'diff',
	strftime: 'format'
});

// The day and month abbreviations are standardized, so we cannot use simply %a and %b because they will get localized
var rfcDayAbbr = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
	rfcMonthAbbr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

var formats = {
	db: '%Y-%m-%d %H:%M:%S',
	compact: '%Y%m%dT%H%M%S',
	'short': '%d %b %H:%M',
	'long': '%B %d, %Y %H:%M',
	rfc822: function(date){
		return rfcDayAbbr[date.get('day')] + date.format(', %d ') + rfcMonthAbbr[date.get('month')] + date.format(' %Y %H:%M:%S %Z');
	},
	rfc2822: function(date){
		return rfcDayAbbr[date.get('day')] + date.format(', %d ') + rfcMonthAbbr[date.get('month')] + date.format(' %Y %H:%M:%S %z');
	},
	iso8601: function(date){
		return (
			date.getUTCFullYear() + '-' +
			pad(date.getUTCMonth() + 1, 2) + '-' +
			pad(date.getUTCDate(), 2) + 'T' +
			pad(date.getUTCHours(), 2) + ':' +
			pad(date.getUTCMinutes(), 2) + ':' +
			pad(date.getUTCSeconds(), 2) + '.' +
			pad(date.getUTCMilliseconds(), 3) + 'Z'
		);
	}
};

var parsePatterns = [],
	nativeParse = Date.parse;

var parseWord = function(type, word, num){
	var ret = -1,
		translated = Date.getMsg(type + 's');
	switch (typeOf(word)){
		case 'object':
			ret = translated[word.get(type)];
			break;
		case 'number':
			ret = translated[word];
			if (!ret) throw new Error('Invalid ' + type + ' index: ' + word);
			break;
		case 'string':
			var match = translated.filter(function(name){
				return this.test(name);
			}, new RegExp('^' + word, 'i'));
			if (!match.length) throw new Error('Invalid ' + type + ' string');
			if (match.length > 1) throw new Error('Ambiguous ' + type);
			ret = match[0];
	}

	return (num) ? translated.indexOf(ret) : ret;
};

var startCentury = 1900,
	startYear = 70;

Date.extend({

	getMsg: function(key, args){
		return Locale.get('Date.' + key, args);
	},

	units: {
		ms: Function.from(1),
		second: Function.from(1000),
		minute: Function.from(60000),
		hour: Function.from(3600000),
		day: Function.from(86400000),
		week: Function.from(608400000),
		month: function(month, year){
			var d = new Date;
			return Date.daysInMonth(month != null ? month : d.get('mo'), year != null ? year : d.get('year')) * 86400000;
		},
		year: function(year){
			year = year || new Date().get('year');
			return Date.isLeapYear(year) ? 31622400000 : 31536000000;
		}
	},

	daysInMonth: function(month, year){
		return [31, Date.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
	},

	isLeapYear: function(year){
		return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);
	},

	parse: function(from){
		var t = typeOf(from);
		if (t == 'number') return new Date(from);
		if (t != 'string') return from;
		from = from.clean();
		if (!from.length) return null;

		var parsed;
		parsePatterns.some(function(pattern){
			var bits = pattern.re.exec(from);
			return (bits) ? (parsed = pattern.handler(bits)) : false;
		});

		if (!(parsed && parsed.isValid())){
			parsed = new Date(nativeParse(from));
			if (!(parsed && parsed.isValid())) parsed = new Date(from.toInt());
		}
		return parsed;
	},

	parseDay: function(day, num){
		return parseWord('day', day, num);
	},

	parseMonth: function(month, num){
		return parseWord('month', month, num);
	},

	parseUTC: function(value){
		var localDate = new Date(value);
		var utcSeconds = Date.UTC(
			localDate.get('year'),
			localDate.get('mo'),
			localDate.get('date'),
			localDate.get('hr'),
			localDate.get('min'),
			localDate.get('sec'),
			localDate.get('ms')
		);
		return new Date(utcSeconds);
	},

	orderIndex: function(unit){
		return Date.getMsg('dateOrder').indexOf(unit) + 1;
	},

	defineFormat: function(name, format){
		formats[name] = format;
		return this;
	},

	

	defineParser: function(pattern){
		parsePatterns.push((pattern.re && pattern.handler) ? pattern : build(pattern));
		return this;
	},

	defineParsers: function(){
		Array.flatten(arguments).each(Date.defineParser);
		return this;
	},

	define2DigitYearStart: function(year){
		startYear = year % 100;
		startCentury = year - startYear;
		return this;
	}

}).extend({
	defineFormats: Date.defineFormat.overloadSetter()
});

var regexOf = function(type){
	return new RegExp('(?:' + Date.getMsg(type).map(function(name){
		return name.substr(0, 3);
	}).join('|') + ')[a-z]*');
};

var replacers = function(key){
	switch (key){
		case 'T':
			return '%H:%M:%S';
		case 'x': // iso8601 covers yyyy-mm-dd, so just check if month is first
			return ((Date.orderIndex('month') == 1) ? '%m[-./]%d' : '%d[-./]%m') + '([-./]%y)?';
		case 'X':
			return '%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%z?';
	}
	return null;
};

var keys = {
	d: /[0-2]?[0-9]|3[01]/,
	H: /[01]?[0-9]|2[0-3]/,
	I: /0?[1-9]|1[0-2]/,
	M: /[0-5]?\d/,
	s: /\d+/,
	o: /[a-z]*/,
	p: /[ap]\.?m\.?/,
	y: /\d{2}|\d{4}/,
	Y: /\d{4}/,
	z: /Z|[+-]\d{2}(?::?\d{2})?/
};

keys.m = keys.I;
keys.S = keys.M;

var currentLanguage;

var recompile = function(language){
	currentLanguage = language;

	keys.a = keys.A = regexOf('days');
	keys.b = keys.B = regexOf('months');

	parsePatterns.each(function(pattern, i){
		if (pattern.format) parsePatterns[i] = build(pattern.format);
	});
};

var build = function(format){
	if (!currentLanguage) return {format: format};

	var parsed = [];
	var re = (format.source || format) // allow format to be regex
	 .replace(/%([a-z])/gi,
		function($0, $1){
			return replacers($1) || $0;
		}
	).replace(/\((?!\?)/g, '(?:') // make all groups non-capturing
	 .replace(/ (?!\?|\*)/g, ',? ') // be forgiving with spaces and commas
	 .replace(/%([a-z%])/gi,
		function($0, $1){
			var p = keys[$1];
			if (!p) return $1;
			parsed.push($1);
			return '(' + p.source + ')';
		}
	).replace(/\[a-z\]/gi, '[a-z\\u00c0-\\uffff;\&]'); // handle unicode words

	return {
		format: format,
		re: new RegExp('^' + re + '$', 'i'),
		handler: function(bits){
			bits = bits.slice(1).associate(parsed);
			var date = new Date().clearTime(),
				year = bits.y || bits.Y;

			if (year != null) handle.call(date, 'y', year); // need to start in the right year
			if ('d' in bits) handle.call(date, 'd', 1);
			if ('m' in bits || bits.b || bits.B) handle.call(date, 'm', 1);

			for (var key in bits) handle.call(date, key, bits[key]);
			return date;
		}
	};
};

var handle = function(key, value){
	if (!value) return this;

	switch (key){
		case 'a': case 'A': return this.set('day', Date.parseDay(value, true));
		case 'b': case 'B': return this.set('mo', Date.parseMonth(value, true));
		case 'd': return this.set('date', value);
		case 'H': case 'I': return this.set('hr', value);
		case 'm': return this.set('mo', value - 1);
		case 'M': return this.set('min', value);
		case 'p': return this.set('ampm', value.replace(/\./g, ''));
		case 'S': return this.set('sec', value);
		case 's': return this.set('ms', ('0.' + value) * 1000);
		case 'w': return this.set('day', value);
		case 'Y': return this.set('year', value);
		case 'y':
			value = +value;
			if (value < 100) value += startCentury + (value < startYear ? 100 : 0);
			return this.set('year', value);
		case 'z':
			if (value == 'Z') value = '+00';
			var offset = value.match(/([+-])(\d{2}):?(\d{2})?/);
			offset = (offset[1] + '1') * (offset[2] * 60 + (+offset[3] || 0)) + this.getTimezoneOffset();
			return this.set('time', this - offset * 60000);
	}

	return this;
};

Date.defineParsers(
	'%Y([-./]%m([-./]%d((T| )%X)?)?)?', // "1999-12-31", "1999-12-31 11:59pm", "1999-12-31 23:59:59", ISO8601
	'%Y%m%d(T%H(%M%S?)?)?', // "19991231", "19991231T1159", compact
	'%x( %X)?', // "12/31", "12.31.99", "12-31-1999", "12/31/2008 11:59 PM"
	'%d%o( %b( %Y)?)?( %X)?', // "31st", "31st December", "31 Dec 1999", "31 Dec 1999 11:59pm"
	'%b( %d%o)?( %Y)?( %X)?', // Same as above with month and day switched
	'%Y %b( %d%o( %X)?)?', // Same as above with year coming first
	'%o %b %d %X %z %Y', // "Thu Oct 22 08:11:23 +0000 2009"
	'%T', // %H:%M:%S
	'%H:%M( ?%p)?' // "11:05pm", "11:05 am" and "11:05"
);

Locale.addEvent('change', function(language){
	if (Locale.get('Date')) recompile(language);
}).fireEvent('change', Locale.getCurrent());

})();


/*
---

script: Date.Extras.js

name: Date.Extras

description: Extends the Date native object to include extra methods (on top of those in Date.js).

license: MIT-style license

authors:
  - Aaron Newton
  - Scott Kyle

requires:
  - /Date

provides: [Date.Extras]

...
*/

Date.implement({

	timeDiffInWords: function(to){
		return Date.distanceOfTimeInWords(this, to || new Date);
	},

	timeDiff: function(to, separator){
		if (to == null) to = new Date;
		var delta = ((to - this) / 1000).floor().abs();

		var vals = [],
			durations = [60, 60, 24, 365, 0],
			names = ['s', 'm', 'h', 'd', 'y'],
			value, duration;

		for (var item = 0; item < durations.length; item++){
			if (item && !delta) break;
			value = delta;
			if ((duration = durations[item])){
				value = (delta % duration);
				delta = (delta / duration).floor();
			}
			vals.unshift(value + (names[item] || ''));
		}

		return vals.join(separator || ':');
	}

}).extend({

	distanceOfTimeInWords: function(from, to){
		return Date.getTimePhrase(((to - from) / 1000).toInt());
	},

	getTimePhrase: function(delta){
		var suffix = (delta < 0) ? 'Until' : 'Ago';
		if (delta < 0) delta *= -1;

		var units = {
			minute: 60,
			hour: 60,
			day: 24,
			week: 7,
			month: 52 / 12,
			year: 12,
			eon: Infinity
		};

		var msg = 'lessThanMinute';

		for (var unit in units){
			var interval = units[unit];
			if (delta < 1.5 * interval){
				if (delta > 0.75 * interval) msg = unit;
				break;
			}
			delta /= interval;
			msg = unit + 's';
		}

		delta = delta.round();
		return Date.getMsg(msg + suffix, delta).substitute({delta: delta});
	}

}).defineParsers(

	{
		// "today", "tomorrow", "yesterday"
		re: /^(?:tod|tom|yes)/i,
		handler: function(bits){
			var d = new Date().clearTime();
			switch (bits[0]){
				case 'tom': return d.increment();
				case 'yes': return d.decrement();
				default: return d;
			}
		}
	},

	{
		// "next Wednesday", "last Thursday"
		re: /^(next|last) ([a-z]+)$/i,
		handler: function(bits){
			var d = new Date().clearTime();
			var day = d.getDay();
			var newDay = Date.parseDay(bits[2], true);
			var addDays = newDay - day;
			if (newDay <= day) addDays += 7;
			if (bits[1] == 'last') addDays -= 7;
			return d.set('date', d.getDate() + addDays);
		}
	}

).alias('timeAgoInWords', 'timeDiffInWords');


/*
---

name: Locale.en-US.Number

description: Number messages for US English.

license: MIT-style license

authors:
  - Arian Stolwijk

requires:
  - /Locale

provides: [Locale.en-US.Number]

...
*/

Locale.define('en-US', 'Number', {

	decimal: '.',
	group: ',',

/* 	Commented properties are the defaults for Number.format
	decimals: 0,
	precision: 0,
	scientific: null,

	prefix: null,
	suffic: null,

	// Negative/Currency/percentage will mixin Number
	negative: {
		prefix: '-'
	},*/

	currency: {
//		decimals: 2,
		prefix: '$ '
	}/*,

	percentage: {
		decimals: 2,
		suffix: '%'
	}*/

});




/*
---
name: Number.Format
description: Extends the Number Type object to include a number formatting method.
license: MIT-style license
authors: [Arian Stolwijk]
requires: [Core/Number, Locale.en-US.Number]
# Number.Extras is for compatibility
provides: [Number.Format, Number.Extras]
...
*/


Number.implement({

	format: function(options){
		// Thanks dojo and YUI for some inspiration
		var value = this;
		options = options ? Object.clone(options) : {};
		var getOption = function(key){
			if (options[key] != null) return options[key];
			return Locale.get('Number.' + key);
		};

		var negative = value < 0,
			decimal = getOption('decimal'),
			precision = getOption('precision'),
			group = getOption('group'),
			decimals = getOption('decimals');

		if (negative){
			var negativeLocale = getOption('negative') || {};
			if (negativeLocale.prefix == null && negativeLocale.suffix == null) negativeLocale.prefix = '-';
			['prefix', 'suffix'].each(function(key){
				if (negativeLocale[key]) options[key] = getOption(key) + negativeLocale[key];
			});

			value = -value;
		}

		var prefix = getOption('prefix'),
			suffix = getOption('suffix');

		if (decimals !== '' && decimals >= 0 && decimals <= 20) value = value.toFixed(decimals);
		if (precision >= 1 && precision <= 21) value = (+value).toPrecision(precision);

		value += '';
		var index;
		if (getOption('scientific') === false && value.indexOf('e') > -1){
			var match = value.split('e'),
				zeros = +match[1];
			value = match[0].replace('.', '');

			if (zeros < 0){
				zeros = -zeros - 1;
				index = match[0].indexOf('.');
				if (index > -1) zeros -= index - 1;
				while (zeros--) value = '0' + value;
				value = '0.' + value;
			} else {
				index = match[0].lastIndexOf('.');
				if (index > -1) zeros -= match[0].length - index - 1;
				while (zeros--) value += '0';
			}
		}

		if (decimal != '.') value = value.replace('.', decimal);

		if (group){
			index = value.lastIndexOf(decimal);
			index = (index > -1) ? index : value.length;
			var newOutput = value.substring(index),
				i = index;

			while (i--){
				if ((index - i - 1) % 3 == 0 && i != (index - 1)) newOutput = group + newOutput;
				newOutput = value.charAt(i) + newOutput;
			}

			value = newOutput;
		}

		if (prefix) value = prefix + value;
		if (suffix) value += suffix;

		return value;
	},

	formatCurrency: function(decimals){
		var locale = Locale.get('Number.currency') || {};
		if (locale.scientific == null) locale.scientific = false;
		locale.decimals = decimals != null ? decimals
			: (locale.decimals == null ? 2 : locale.decimals);

		return this.format(locale);
	},

	formatPercentage: function(decimals){
		var locale = Locale.get('Number.percentage') || {};
		if (locale.suffix == null) locale.suffix = '%';
		locale.decimals = decimals != null ? decimals
			: (locale.decimals == null ? 2 : locale.decimals);

		return this.format(locale);
	}

});


/*
---

script: String.Extras.js

name: String.Extras

description: Extends the String native object to include methods useful in managing various kinds of strings (query strings, urls, html, etc).

license: MIT-style license

authors:
  - Aaron Newton
  - Guillermo Rauch
  - Christopher Pitt

requires:
  - Core/String
  - Core/Array
  - MooTools.More

provides: [String.Extras]

...
*/

(function(){

var special = {
	'a': /[àáâãäåăą]/g,
	'A': /[ÀÁÂÃÄÅĂĄ]/g,
	'c': /[ćčç]/g,
	'C': /[ĆČÇ]/g,
	'd': /[ďđ]/g,
	'D': /[ĎÐ]/g,
	'e': /[èéêëěę]/g,
	'E': /[ÈÉÊËĚĘ]/g,
	'g': /[ğ]/g,
	'G': /[Ğ]/g,
	'i': /[ìíîï]/g,
	'I': /[ÌÍÎÏ]/g,
	'l': /[ĺľł]/g,
	'L': /[ĹĽŁ]/g,
	'n': /[ñňń]/g,
	'N': /[ÑŇŃ]/g,
	'o': /[òóôõöøő]/g,
	'O': /[ÒÓÔÕÖØ]/g,
	'r': /[řŕ]/g,
	'R': /[ŘŔ]/g,
	's': /[ššş]/g,
	'S': /[ŠŞŚ]/g,
	't': /[ťţ]/g,
	'T': /[ŤŢ]/g,
	'ue': /[ü]/g,
	'UE': /[Ü]/g,
	'u': /[ùúûůµ]/g,
	'U': /[ÙÚÛŮ]/g,
	'y': /[ÿý]/g,
	'Y': /[ŸÝ]/g,
	'z': /[žźż]/g,
	'Z': /[ŽŹŻ]/g,
	'th': /[þ]/g,
	'TH': /[Þ]/g,
	'dh': /[ð]/g,
	'DH': /[Ð]/g,
	'ss': /[ß]/g,
	'oe': /[œ]/g,
	'OE': /[Œ]/g,
	'ae': /[æ]/g,
	'AE': /[Æ]/g
},

tidy = {
	' ': /[\xa0\u2002\u2003\u2009]/g,
	'*': /[\xb7]/g,
	'\'': /[\u2018\u2019]/g,
	'"': /[\u201c\u201d]/g,
	'...': /[\u2026]/g,
	'-': /[\u2013]/g,
//	'--': /[\u2014]/g,
	'&raquo;': /[\uFFFD]/g
};

var walk = function(string, replacements){
	var result = string, key;
	for (key in replacements) result = result.replace(replacements[key], key);
	return result;
};

var getRegexForTag = function(tag, contents){
	tag = tag || '';
	var regstr = contents ? "<" + tag + "(?!\\w)[^>]*>([\\s\\S]*?)<\/" + tag + "(?!\\w)>" : "<\/?" + tag + "([^>]+)?>",
		reg = new RegExp(regstr, "gi");
	return reg;
};

String.implement({

	standardize: function(){
		return walk(this, special);
	},

	repeat: function(times){
		return new Array(times + 1).join(this);
	},

	pad: function(length, str, direction){
		if (this.length >= length) return this;

		var pad = (str == null ? ' ' : '' + str)
			.repeat(length - this.length)
			.substr(0, length - this.length);

		if (!direction || direction == 'right') return this + pad;
		if (direction == 'left') return pad + this;

		return pad.substr(0, (pad.length / 2).floor()) + this + pad.substr(0, (pad.length / 2).ceil());
	},

	getTags: function(tag, contents){
		return this.match(getRegexForTag(tag, contents)) || [];
	},

	stripTags: function(tag, contents){
		return this.replace(getRegexForTag(tag, contents), '');
	},

	tidy: function(){
		return walk(this, tidy);
	},

	truncate: function(max, trail, atChar){
		var string = this;
		if (trail == null && arguments.length == 1) trail = '…';
		if (string.length > max){
			string = string.substring(0, max);
			if (atChar){
				var index = string.lastIndexOf(atChar);
				if (index != -1) string = string.substr(0, index);
			}
			if (trail) string += trail;
		}
		return string;
	}

});

})();


/*
---

script: String.QueryString.js

name: String.QueryString

description: Methods for dealing with URI query strings.

license: MIT-style license

authors:
  - Sebastian Markbåge
  - Aaron Newton
  - Lennart Pilon
  - Valerio Proietti

requires:
  - Core/Array
  - Core/String
  - /MooTools.More

provides: [String.QueryString]

...
*/

String.implement({

	parseQueryString: function(decodeKeys, decodeValues){
		if (decodeKeys == null) decodeKeys = true;
		if (decodeValues == null) decodeValues = true;

		var vars = this.split(/[&;]/),
			object = {};
		if (!vars.length) return object;

		vars.each(function(val){
			var index = val.indexOf('=') + 1,
				value = index ? val.substr(index) : '',
				keys = index ? val.substr(0, index - 1).match(/([^\]\[]+|(\B)(?=\]))/g) : [val],
				obj = object;
			if (!keys) return;
			if (decodeValues) value = decodeURIComponent(value);
			keys.each(function(key, i){
				if (decodeKeys) key = decodeURIComponent(key);
				var current = obj[key];

				if (i < keys.length - 1) obj = obj[key] = current || {};
				else if (typeOf(current) == 'array') current.push(value);
				else obj[key] = current != null ? [current, value] : value;
			});
		});

		return object;
	},

	cleanQueryString: function(method){
		return this.split('&').filter(function(val){
			var index = val.indexOf('='),
				key = index < 0 ? '' : val.substr(0, index),
				value = val.substr(index + 1);

			return method ? method.call(null, key, value) : (value || value === 0);
		}).join('&');
	}

});


/*
---

script: URI.js

name: URI

description: Provides methods useful in managing the window location and uris.

license: MIT-style license

authors:
  - Sebastian Markbåge
  - Aaron Newton

requires:
  - Core/Object
  - Core/Class
  - Core/Class.Extras
  - Core/Element
  - /String.QueryString

provides: [URI]

...
*/

(function(){

var toString = function(){
	return this.get('value');
};

var URI = this.URI = new Class({

	Implements: Options,

	options: {
		/*base: false*/
	},

	regex: /^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,
	parts: ['scheme', 'user', 'password', 'host', 'port', 'directory', 'file', 'query', 'fragment'],
	schemes: {http: 80, https: 443, ftp: 21, rtsp: 554, mms: 1755, file: 0},

	initialize: function(uri, options){
		this.setOptions(options);
		var base = this.options.base || URI.base;
		if (!uri) uri = base;

		if (uri && uri.parsed) this.parsed = Object.clone(uri.parsed);
		else this.set('value', uri.href || uri.toString(), base ? new URI(base) : false);
	},

	parse: function(value, base){
		var bits = value.match(this.regex);
		if (!bits) return false;
		bits.shift();
		return this.merge(bits.associate(this.parts), base);
	},

	merge: function(bits, base){
		if ((!bits || !bits.scheme) && (!base || !base.scheme)) return false;
		if (base){
			this.parts.every(function(part){
				if (bits[part]) return false;
				bits[part] = base[part] || '';
				return true;
			});
		}
		bits.port = bits.port || this.schemes[bits.scheme.toLowerCase()];
		bits.directory = bits.directory ? this.parseDirectory(bits.directory, base ? base.directory : '') : '/';
		return bits;
	},

	parseDirectory: function(directory, baseDirectory){
		directory = (directory.substr(0, 1) == '/' ? '' : (baseDirectory || '/')) + directory;
		if (!directory.test(URI.regs.directoryDot)) return directory;
		var result = [];
		directory.replace(URI.regs.endSlash, '').split('/').each(function(dir){
			if (dir == '..' && result.length > 0) result.pop();
			else if (dir != '.') result.push(dir);
		});
		return result.join('/') + '/';
	},

	combine: function(bits){
		return bits.value || bits.scheme + '://' +
			(bits.user ? bits.user + (bits.password ? ':' + bits.password : '') + '@' : '') +
			(bits.host || '') + (bits.port && bits.port != this.schemes[bits.scheme] ? ':' + bits.port : '') +
			(bits.directory || '/') + (bits.file || '') +
			(bits.query ? '?' + bits.query : '') +
			(bits.fragment ? '#' + bits.fragment : '');
	},

	set: function(part, value, base){
		if (part == 'value'){
			var scheme = value.match(URI.regs.scheme);
			if (scheme) scheme = scheme[1];
			if (scheme && this.schemes[scheme.toLowerCase()] == null) this.parsed = { scheme: scheme, value: value };
			else this.parsed = this.parse(value, (base || this).parsed) || (scheme ? { scheme: scheme, value: value } : { value: value });
		} else if (part == 'data'){
			this.setData(value);
		} else {
			this.parsed[part] = value;
		}
		return this;
	},

	get: function(part, base){
		switch (part){
			case 'value': return this.combine(this.parsed, base ? base.parsed : false);
			case 'data' : return this.getData();
		}
		return this.parsed[part] || '';
	},

	go: function(){
		document.location.href = this.toString();
	},

	toURI: function(){
		return this;
	},

	getData: function(key, part){
		var qs = this.get(part || 'query');
		if (!(qs || qs === 0)) return key ? null : {};
		var obj = qs.parseQueryString();
		return key ? obj[key] : obj;
	},

	setData: function(values, merge, part){
		if (typeof values == 'string'){
			var data = this.getData();
			data[arguments[0]] = arguments[1];
			values = data;
		} else if (merge){
			values = Object.merge(this.getData(), values);
		}
		return this.set(part || 'query', Object.toQueryString(values));
	},

	clearData: function(part){
		return this.set(part || 'query', '');
	},

	toString: toString,
	valueOf: toString

});

URI.regs = {
	endSlash: /\/$/,
	scheme: /^(\w+):/,
	directoryDot: /\.\/|\.$/
};

URI.base = new URI(Array.from(document.getElements('base[href]', true)).getLast(), {base: document.location});

String.implement({

	toURI: function(options){
		return new URI(this, options);
	}

});

})();


/*
---

script: URI.Relative.js

name: URI.Relative

description: Extends the URI class to add methods for computing relative and absolute urls.

license: MIT-style license

authors:
  - Sebastian Markbåge


requires:
  - /Class.refactor
  - /URI

provides: [URI.Relative]

...
*/

URI = Class.refactor(URI, {

	combine: function(bits, base){
		if (!base || bits.scheme != base.scheme || bits.host != base.host || bits.port != base.port)
			return this.previous.apply(this, arguments);
		var end = bits.file + (bits.query ? '?' + bits.query : '') + (bits.fragment ? '#' + bits.fragment : '');

		if (!base.directory) return (bits.directory || (bits.file ? '' : './')) + end;

		var baseDir = base.directory.split('/'),
			relDir = bits.directory.split('/'),
			path = '',
			offset;

		var i = 0;
		for (offset = 0; offset < baseDir.length && offset < relDir.length && baseDir[offset] == relDir[offset]; offset++);
		for (i = 0; i < baseDir.length - offset - 1; i++) path += '../';
		for (i = offset; i < relDir.length - 1; i++) path += relDir[i] + '/';

		return (path || (bits.file ? '' : './')) + end;
	},

	toAbsolute: function(base){
		base = new URI(base);
		if (base) base.set('directory', '').set('file', '');
		return this.toRelative(base);
	},

	toRelative: function(base){
		return this.get('value', new URI(base));
	}

});


/*
---

name: Hash

description: Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.

license: MIT-style license.

requires:
  - Core/Object
  - /MooTools.More

provides: [Hash]

...
*/

(function(){

if (this.Hash) return;

var Hash = this.Hash = new Type('Hash', function(object){
	if (typeOf(object) == 'hash') object = Object.clone(object.getClean());
	for (var key in object) this[key] = object[key];
	return this;
});

this.$H = function(object){
	return new Hash(object);
};

Hash.implement({

	forEach: function(fn, bind){
		Object.forEach(this, fn, bind);
	},

	getClean: function(){
		var clean = {};
		for (var key in this){
			if (this.hasOwnProperty(key)) clean[key] = this[key];
		}
		return clean;
	},

	getLength: function(){
		var length = 0;
		for (var key in this){
			if (this.hasOwnProperty(key)) length++;
		}
		return length;
	}

});

Hash.alias('each', 'forEach');

Hash.implement({

	has: Object.prototype.hasOwnProperty,

	keyOf: function(value){
		return Object.keyOf(this, value);
	},

	hasValue: function(value){
		return Object.contains(this, value);
	},

	extend: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.set(this, key, value);
		}, this);
		return this;
	},

	combine: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.include(this, key, value);
		}, this);
		return this;
	},

	erase: function(key){
		if (this.hasOwnProperty(key)) delete this[key];
		return this;
	},

	get: function(key){
		return (this.hasOwnProperty(key)) ? this[key] : null;
	},

	set: function(key, value){
		if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
		return this;
	},

	empty: function(){
		Hash.each(this, function(value, key){
			delete this[key];
		}, this);
		return this;
	},

	include: function(key, value){
		if (this[key] == undefined) this[key] = value;
		return this;
	},

	map: function(fn, bind){
		return new Hash(Object.map(this, fn, bind));
	},

	filter: function(fn, bind){
		return new Hash(Object.filter(this, fn, bind));
	},

	every: function(fn, bind){
		return Object.every(this, fn, bind);
	},

	some: function(fn, bind){
		return Object.some(this, fn, bind);
	},

	getKeys: function(){
		return Object.keys(this);
	},

	getValues: function(){
		return Object.values(this);
	},

	toQueryString: function(base){
		return Object.toQueryString(this, base);
	}

});

Hash.alias({indexOf: 'keyOf', contains: 'hasValue'});


})();



/*
---

script: Hash.Extras.js

name: Hash.Extras

description: Extends the Hash Type to include getFromPath which allows a path notation to child elements.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Hash
  - /Object.Extras

provides: [Hash.Extras]

...
*/

Hash.implement({

	getFromPath: function(notation){
		return Object.getFromPath(this, notation);
	},

	cleanValues: function(method){
		return new Hash(Object.cleanValues(this, method));
	},

	run: function(){
		Object.run(arguments);
	}

});


/*
---

script: Element.Forms.js

name: Element.Forms

description: Extends the Element native object to include methods useful in managing inputs.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element
  - /String.Extras
  - /MooTools.More

provides: [Element.Forms]

...
*/

Element.implement({

	tidy: function(){
		this.set('value', this.get('value').tidy());
	},

	getTextInRange: function(start, end){
		return this.get('value').substring(start, end);
	},

	getSelectedText: function(){
		if (this.setSelectionRange) return this.getTextInRange(this.getSelectionStart(), this.getSelectionEnd());
		return document.selection.createRange().text;
	},

	getSelectedRange: function(){
		if (this.selectionStart != null){
			return {
				start: this.selectionStart,
				end: this.selectionEnd
			};
		}

		var pos = {
			start: 0,
			end: 0
		};
		var range = this.getDocument().selection.createRange();
		if (!range || range.parentElement() != this) return pos;
		var duplicate = range.duplicate();

		if (this.type == 'text'){
			pos.start = 0 - duplicate.moveStart('character', -100000);
			pos.end = pos.start + range.text.length;
		} else {
			var value = this.get('value');
			var offset = value.length;
			duplicate.moveToElementText(this);
			duplicate.setEndPoint('StartToEnd', range);
			if (duplicate.text.length) offset -= value.match(/[\n\r]*$/)[0].length;
			pos.end = offset - duplicate.text.length;
			duplicate.setEndPoint('StartToStart', range);
			pos.start = offset - duplicate.text.length;
		}
		return pos;
	},

	getSelectionStart: function(){
		return this.getSelectedRange().start;
	},

	getSelectionEnd: function(){
		return this.getSelectedRange().end;
	},

	setCaretPosition: function(pos){
		if (pos == 'end') pos = this.get('value').length;
		this.selectRange(pos, pos);
		return this;
	},

	getCaretPosition: function(){
		return this.getSelectedRange().start;
	},

	selectRange: function(start, end){
		if (this.setSelectionRange){
			this.focus();
			this.setSelectionRange(start, end);
		} else {
			var value = this.get('value');
			var diff = value.substr(start, end - start).replace(/\r/g, '').length;
			start = value.substr(0, start).replace(/\r/g, '').length;
			var range = this.createTextRange();
			range.collapse(true);
			range.moveEnd('character', start + diff);
			range.moveStart('character', start);
			range.select();
		}
		return this;
	},

	insertAtCursor: function(value, select){
		var pos = this.getSelectedRange();
		var text = this.get('value');
		this.set('value', text.substring(0, pos.start) + value + text.substring(pos.end, text.length));
		if (select !== false) this.selectRange(pos.start, pos.start + value.length);
		else this.setCaretPosition(pos.start + value.length);
		return this;
	},

	insertAroundCursor: function(options, select){
		options = Object.append({
			before: '',
			defaultMiddle: '',
			after: ''
		}, options);

		var value = this.getSelectedText() || options.defaultMiddle;
		var pos = this.getSelectedRange();
		var text = this.get('value');

		if (pos.start == pos.end){
			this.set('value', text.substring(0, pos.start) + options.before + value + options.after + text.substring(pos.end, text.length));
			this.selectRange(pos.start + options.before.length, pos.end + options.before.length + value.length);
		} else {
			var current = text.substring(pos.start, pos.end);
			this.set('value', text.substring(0, pos.start) + options.before + current + options.after + text.substring(pos.end, text.length));
			var selStart = pos.start + options.before.length;
			if (select !== false) this.selectRange(selStart, selStart + current.length);
			else this.setCaretPosition(selStart + text.length);
		}
		return this;
	}

});


/*
---

script: Elements.From.js

name: Elements.From

description: Returns a collection of elements from a string of html.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/String
  - Core/Element
  - /MooTools.More

provides: [Elements.from, Elements.From]

...
*/

Elements.from = function(text, excludeScripts){
	if (excludeScripts || excludeScripts == null) text = text.stripScripts();

	var container, match = text.match(/^\s*<(t[dhr]|tbody|tfoot|thead)/i);

	if (match){
		container = new Element('table');
		var tag = match[1].toLowerCase();
		if (['td', 'th', 'tr'].contains(tag)){
			container = new Element('tbody').inject(container);
			if (tag != 'tr') container = new Element('tr').inject(container);
		}
	}

	return (container || new Element('div')).set('html', text).getChildren();
};


/*
---

name: Element.Event.Pseudos

description: Adds the functionality to add pseudo events for Elements

license: MIT-style license

authors:
  - Arian Stolwijk

requires: [Core/Element.Event, Core/Element.Delegation, Events.Pseudos]

provides: [Element.Event.Pseudos, Element.Delegation]

...
*/

(function(){

var pseudos = {relay: false},
	copyFromEvents = ['once', 'throttle', 'pause'],
	count = copyFromEvents.length;

while (count--) pseudos[copyFromEvents[count]] = Events.lookupPseudo(copyFromEvents[count]);

DOMEvent.definePseudo = function(key, listener){
	pseudos[key] = listener;
	return this;
};

var proto = Element.prototype;
[Element, Window, Document].invoke('implement', Events.Pseudos(pseudos, proto.addEvent, proto.removeEvent));

})();


/*
---

name: Element.Event.Pseudos.Keys

description: Adds functionality fire events if certain keycombinations are pressed

license: MIT-style license

authors:
  - Arian Stolwijk

requires: [Element.Event.Pseudos]

provides: [Element.Event.Pseudos.Keys]

...
*/

(function(){

var keysStoreKey = '$moo:keys-pressed',
	keysKeyupStoreKey = '$moo:keys-keyup';


DOMEvent.definePseudo('keys', function(split, fn, args){

	var event = args[0],
		keys = [],
		pressed = this.retrieve(keysStoreKey, []);

	keys.append(split.value.replace('++', function(){
		keys.push('+'); // shift++ and shift+++a
		return '';
	}).split('+'));

	pressed.include(event.key);

	if (keys.every(function(key){
		return pressed.contains(key);
	})) fn.apply(this, args);

	this.store(keysStoreKey, pressed);

	if (!this.retrieve(keysKeyupStoreKey)){
		var keyup = function(event){
			(function(){
				pressed = this.retrieve(keysStoreKey, []).erase(event.key);
				this.store(keysStoreKey, pressed);
			}).delay(0, this); // Fix for IE
		};
		this.store(keysKeyupStoreKey, keyup).addEvent('keyup', keyup);
	}

});

DOMEvent.defineKeys({
	'16': 'shift',
	'17': 'control',
	'18': 'alt',
	'20': 'capslock',
	'33': 'pageup',
	'34': 'pagedown',
	'35': 'end',
	'36': 'home',
	'144': 'numlock',
	'145': 'scrolllock',
	'186': ';',
	'187': '=',
	'188': ',',
	'190': '.',
	'191': '/',
	'192': '`',
	'219': '[',
	'220': '\\',
	'221': ']',
	'222': "'",
	'107': '+'
}).defineKey(Browser.firefox ? 109 : 189, '-');

})();


/*
---

script: Element.Measure.js

name: Element.Measure

description: Extends the Element native object to include methods useful in measuring dimensions.

credits: "Element.measure / .expose methods by Daniel Steigerwald License: MIT-style license. Copyright: Copyright (c) 2008 Daniel Steigerwald, daniel.steigerwald.cz"

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element.Style
  - Core/Element.Dimensions
  - /MooTools.More

provides: [Element.Measure]

...
*/

(function(){

var getStylesList = function(styles, planes){
	var list = [];
	Object.each(planes, function(directions){
		Object.each(directions, function(edge){
			styles.each(function(style){
				list.push(style + '-' + edge + (style == 'border' ? '-width' : ''));
			});
		});
	});
	return list;
};

var calculateEdgeSize = function(edge, styles){
	var total = 0;
	Object.each(styles, function(value, style){
		if (style.test(edge)) total = total + value.toInt();
	});
	return total;
};

var isVisible = function(el){
	return !!(!el || el.offsetHeight || el.offsetWidth);
};


Element.implement({

	measure: function(fn){
		if (isVisible(this)) return fn.call(this);
		var parent = this.getParent(),
			toMeasure = [];
		while (!isVisible(parent) && parent != document.body){
			toMeasure.push(parent.expose());
			parent = parent.getParent();
		}
		var restore = this.expose(),
			result = fn.call(this);
		restore();
		toMeasure.each(function(restore){
			restore();
		});
		return result;
	},

	expose: function(){
		if (this.getStyle('display') != 'none') return function(){};
		var before = this.style.cssText;
		this.setStyles({
			display: 'block',
			position: 'absolute',
			visibility: 'hidden'
		});
		return function(){
			this.style.cssText = before;
		}.bind(this);
	},

	getDimensions: function(options){
		options = Object.merge({computeSize: false}, options);
		var dim = {x: 0, y: 0};

		var getSize = function(el, options){
			return (options.computeSize) ? el.getComputedSize(options) : el.getSize();
		};

		var parent = this.getParent('body');

		if (parent && this.getStyle('display') == 'none'){
			dim = this.measure(function(){
				return getSize(this, options);
			});
		} else if (parent){
			try { //safari sometimes crashes here, so catch it
				dim = getSize(this, options);
			}catch(e){}
		}

		return Object.append(dim, (dim.x || dim.x === 0) ? {
				width: dim.x,
				height: dim.y
			} : {
				x: dim.width,
				y: dim.height
			}
		);
	},

	getComputedSize: function(options){
		

		options = Object.merge({
			styles: ['padding','border'],
			planes: {
				height: ['top','bottom'],
				width: ['left','right']
			},
			mode: 'both'
		}, options);

		var styles = {},
			size = {width: 0, height: 0},
			dimensions;

		if (options.mode == 'vertical'){
			delete size.width;
			delete options.planes.width;
		} else if (options.mode == 'horizontal'){
			delete size.height;
			delete options.planes.height;
		}

		getStylesList(options.styles, options.planes).each(function(style){
			styles[style] = this.getStyle(style).toInt();
		}, this);

		Object.each(options.planes, function(edges, plane){

			var capitalized = plane.capitalize(),
				style = this.getStyle(plane);

			if (style == 'auto' && !dimensions) dimensions = this.getDimensions();

			style = styles[plane] = (style == 'auto') ? dimensions[plane] : style.toInt();
			size['total' + capitalized] = style;

			edges.each(function(edge){
				var edgesize = calculateEdgeSize(edge, styles);
				size['computed' + edge.capitalize()] = edgesize;
				size['total' + capitalized] += edgesize;
			});

		}, this);

		return Object.append(size, styles);
	}

});

})();


/*
---

script: Element.Pin.js

name: Element.Pin

description: Extends the Element native object to include the pin method useful for fixed positioning for elements.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element.Event
  - Core/Element.Dimensions
  - Core/Element.Style
  - /MooTools.More

provides: [Element.Pin]

...
*/

(function(){
	var supportsPositionFixed = false,
		supportTested = false;

	var testPositionFixed = function(){
		var test = new Element('div').setStyles({
			position: 'fixed',
			top: 0,
			right: 0
		}).inject(document.body);
		supportsPositionFixed = (test.offsetTop === 0);
		test.dispose();
		supportTested = true;
	};

	Element.implement({

		pin: function(enable, forceScroll){
			if (!supportTested) testPositionFixed();
			if (this.getStyle('display') == 'none') return this;

			var pinnedPosition,
				scroll = window.getScroll(),
				parent,
				scrollFixer;

			if (enable !== false){
				pinnedPosition = this.getPosition(supportsPositionFixed ? document.body : this.getOffsetParent());
				if (!this.retrieve('pin:_pinned')){
					var currentPosition = {
						top: pinnedPosition.y - scroll.y,
						left: pinnedPosition.x - scroll.x
					};

					if (supportsPositionFixed && !forceScroll){
						this.setStyle('position', 'fixed').setStyles(currentPosition);
					} else {

						parent = this.getOffsetParent();
						var position = this.getPosition(parent),
							styles = this.getStyles('left', 'top');

						if (parent && styles.left == 'auto' || styles.top == 'auto') this.setPosition(position);
						if (this.getStyle('position') == 'static') this.setStyle('position', 'absolute');

						position = {
							x: styles.left.toInt() - scroll.x,
							y: styles.top.toInt() - scroll.y
						};

						scrollFixer = function(){
							if (!this.retrieve('pin:_pinned')) return;
							var scroll = window.getScroll();
							this.setStyles({
								left: position.x + scroll.x,
								top: position.y + scroll.y
							});
						}.bind(this);

						this.store('pin:_scrollFixer', scrollFixer);
						window.addEvent('scroll', scrollFixer);
					}
					this.store('pin:_pinned', true);
				}

			} else {
				if (!this.retrieve('pin:_pinned')) return this;

				parent = this.getParent();
				var offsetParent = (parent.getComputedStyle('position') != 'static' ? parent : parent.getOffsetParent());

				pinnedPosition = this.getPosition(offsetParent);

				this.store('pin:_pinned', false);
				scrollFixer = this.retrieve('pin:_scrollFixer');
				if (!scrollFixer){
					this.setStyles({
						position: 'absolute',
						top: pinnedPosition.y + scroll.y,
						left: pinnedPosition.x + scroll.x
					});
				} else {
					this.store('pin:_scrollFixer', null);
					window.removeEvent('scroll', scrollFixer);
				}
				this.removeClass('isPinned');
			}
			return this;
		},

		unpin: function(){
			return this.pin(false);
		},

		togglePin: function(){
			return this.pin(!this.retrieve('pin:_pinned'));
		}

	});



})();


/*
---

script: Element.Position.js

name: Element.Position

description: Extends the Element native object to include methods useful positioning elements relative to others.

license: MIT-style license

authors:
  - Aaron Newton
  - Jacob Thornton

requires:
  - Core/Options
  - Core/Element.Dimensions
  - Element.Measure

provides: [Element.Position]

...
*/

(function(original){

var local = Element.Position = {

	options: {/*
		edge: false,
		returnPos: false,
		minimum: {x: 0, y: 0},
		maximum: {x: 0, y: 0},
		relFixedPosition: false,
		ignoreMargins: false,
		ignoreScroll: false,
		allowNegative: false,*/
		relativeTo: document.body,
		position: {
			x: 'center', //left, center, right
			y: 'center' //top, center, bottom
		},
		offset: {x: 0, y: 0}
	},

	getOptions: function(element, options){
		options = Object.merge({}, local.options, options);
		local.setPositionOption(options);
		local.setEdgeOption(options);
		local.setOffsetOption(element, options);
		local.setDimensionsOption(element, options);
		return options;
	},

	setPositionOption: function(options){
		options.position = local.getCoordinateFromValue(options.position);
	},

	setEdgeOption: function(options){
		var edgeOption = local.getCoordinateFromValue(options.edge);
		options.edge = edgeOption ? edgeOption :
			(options.position.x == 'center' && options.position.y == 'center') ? {x: 'center', y: 'center'} :
			{x: 'left', y: 'top'};
	},

	setOffsetOption: function(element, options){
		var parentOffset = {x: 0, y: 0},
			offsetParent = element.measure(function(){
				return document.id(this.getOffsetParent());
			}),
			parentScroll = offsetParent.getScroll();

		if (!offsetParent || offsetParent == element.getDocument().body) return;
		parentOffset = offsetParent.measure(function(){
			var position = this.getPosition();
			if (this.getStyle('position') == 'fixed'){
				var scroll = window.getScroll();
				position.x += scroll.x;
				position.y += scroll.y;
			}
			return position;
		});

		options.offset = {
			parentPositioned: offsetParent != document.id(options.relativeTo),
			x: options.offset.x - parentOffset.x + parentScroll.x,
			y: options.offset.y - parentOffset.y + parentScroll.y
		};
	},

	setDimensionsOption: function(element, options){
		options.dimensions = element.getDimensions({
			computeSize: true,
			styles: ['padding', 'border', 'margin']
		});
	},

	getPosition: function(element, options){
		var position = {};
		options = local.getOptions(element, options);
		var relativeTo = document.id(options.relativeTo) || document.body;

		local.setPositionCoordinates(options, position, relativeTo);
		if (options.edge) local.toEdge(position, options);

		var offset = options.offset;
		position.left = ((position.x >= 0 || offset.parentPositioned || options.allowNegative) ? position.x : 0).toInt();
		position.top = ((position.y >= 0 || offset.parentPositioned || options.allowNegative) ? position.y : 0).toInt();

		local.toMinMax(position, options);

		if (options.relFixedPosition || relativeTo.getStyle('position') == 'fixed') local.toRelFixedPosition(relativeTo, position);
		if (options.ignoreScroll) local.toIgnoreScroll(relativeTo, position);
		if (options.ignoreMargins) local.toIgnoreMargins(position, options);

		position.left = Math.ceil(position.left);
		position.top = Math.ceil(position.top);
		delete position.x;
		delete position.y;

		return position;
	},

	setPositionCoordinates: function(options, position, relativeTo){
		var offsetY = options.offset.y,
			offsetX = options.offset.x,
			calc = (relativeTo == document.body) ? window.getScroll() : relativeTo.getPosition(),
			top = calc.y,
			left = calc.x,
			winSize = window.getSize();

		switch(options.position.x){
			case 'left': position.x = left + offsetX; break;
			case 'right': position.x = left + offsetX + relativeTo.offsetWidth; break;
			default: position.x = left + ((relativeTo == document.body ? winSize.x : relativeTo.offsetWidth) / 2) + offsetX; break;
		}

		switch(options.position.y){
			case 'top': position.y = top + offsetY; break;
			case 'bottom': position.y = top + offsetY + relativeTo.offsetHeight; break;
			default: position.y = top + ((relativeTo == document.body ? winSize.y : relativeTo.offsetHeight) / 2) + offsetY; break;
		}
	},

	toMinMax: function(position, options){
		var xy = {left: 'x', top: 'y'}, value;
		['minimum', 'maximum'].each(function(minmax){
			['left', 'top'].each(function(lr){
				value = options[minmax] ? options[minmax][xy[lr]] : null;
				if (value != null && ((minmax == 'minimum') ? position[lr] < value : position[lr] > value)) position[lr] = value;
			});
		});
	},

	toRelFixedPosition: function(relativeTo, position){
		var winScroll = window.getScroll();
		position.top += winScroll.y;
		position.left += winScroll.x;
	},

	toIgnoreScroll: function(relativeTo, position){
		var relScroll = relativeTo.getScroll();
		position.top -= relScroll.y;
		position.left -= relScroll.x;
	},

	toIgnoreMargins: function(position, options){
		position.left += options.edge.x == 'right'
			? options.dimensions['margin-right']
			: (options.edge.x != 'center'
				? -options.dimensions['margin-left']
				: -options.dimensions['margin-left'] + ((options.dimensions['margin-right'] + options.dimensions['margin-left']) / 2));

		position.top += options.edge.y == 'bottom'
			? options.dimensions['margin-bottom']
			: (options.edge.y != 'center'
				? -options.dimensions['margin-top']
				: -options.dimensions['margin-top'] + ((options.dimensions['margin-bottom'] + options.dimensions['margin-top']) / 2));
	},

	toEdge: function(position, options){
		var edgeOffset = {},
			dimensions = options.dimensions,
			edge = options.edge;

		switch(edge.x){
			case 'left': edgeOffset.x = 0; break;
			case 'right': edgeOffset.x = -dimensions.x - dimensions.computedRight - dimensions.computedLeft; break;
			// center
			default: edgeOffset.x = -(Math.round(dimensions.totalWidth / 2)); break;
		}

		switch(edge.y){
			case 'top': edgeOffset.y = 0; break;
			case 'bottom': edgeOffset.y = -dimensions.y - dimensions.computedTop - dimensions.computedBottom; break;
			// center
			default: edgeOffset.y = -(Math.round(dimensions.totalHeight / 2)); break;
		}

		position.x += edgeOffset.x;
		position.y += edgeOffset.y;
	},

	getCoordinateFromValue: function(option){
		if (typeOf(option) != 'string') return option;
		option = option.toLowerCase();

		return {
			x: option.test('left') ? 'left'
				: (option.test('right') ? 'right' : 'center'),
			y: option.test(/upper|top/) ? 'top'
				: (option.test('bottom') ? 'bottom' : 'center')
		};
	}

};

Element.implement({

	position: function(options){
		if (options && (options.x != null || options.y != null)){
			return (original ? original.apply(this, arguments) : this);
		}
		var position = this.setStyle('position', 'absolute').calculatePosition(options);
		return (options && options.returnPos) ? position : this.setStyles(position);
	},

	calculatePosition: function(options){
		return local.getPosition(this, options);
	}

});

})(Element.prototype.position);


/*
---

script: Element.Shortcuts.js

name: Element.Shortcuts

description: Extends the Element native object to include some shortcut methods.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element.Style
  - /MooTools.More

provides: [Element.Shortcuts]

...
*/

Element.implement({

	isDisplayed: function(){
		return this.getStyle('display') != 'none';
	},

	isVisible: function(){
		var w = this.offsetWidth,
			h = this.offsetHeight;
		return (w == 0 && h == 0) ? false : (w > 0 && h > 0) ? true : this.style.display != 'none';
	},

	toggle: function(){
		return this[this.isDisplayed() ? 'hide' : 'show']();
	},

	hide: function(){
		var d;
		try {
			//IE fails here if the element is not in the dom
			d = this.getStyle('display');
		} catch(e){}
		if (d == 'none') return this;
		return this.store('element:_originalDisplay', d || '').setStyle('display', 'none');
	},

	show: function(display){
		if (!display && this.isDisplayed()) return this;
		display = display || this.retrieve('element:_originalDisplay') || 'block';
		return this.setStyle('display', (display == 'none') ? 'block' : display);
	},

	swapClass: function(remove, add){
		return this.removeClass(remove).addClass(add);
	}

});

Document.implement({

	clearSelection: function(){
		if (window.getSelection){
			var selection = window.getSelection();
			if (selection && selection.removeAllRanges) selection.removeAllRanges();
		} else if (document.selection && document.selection.empty){
			try {
				//IE fails here if selected element is not in dom
				document.selection.empty();
			} catch(e){}
		}
	}

});


/*
---

script: IframeShim.js

name: IframeShim

description: Defines IframeShim, a class for obscuring select lists and flash objects in IE.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element.Event
  - Core/Element.Style
  - Core/Options
  - Core/Events
  - /Element.Position
  - /Class.Occlude

provides: [IframeShim]

...
*/

var IframeShim = new Class({

	Implements: [Options, Events, Class.Occlude],

	options: {
		className: 'iframeShim',
		src: 'javascript:false;document.write("");',
		display: false,
		zIndex: null,
		margin: 0,
		offset: {x: 0, y: 0},
		browsers: (Browser.ie6 || (Browser.firefox && Browser.version < 3 && Browser.Platform.mac))
	},

	property: 'IframeShim',

	initialize: function(element, options){
		this.element = document.id(element);
		if (this.occlude()) return this.occluded;
		this.setOptions(options);
		this.makeShim();
		return this;
	},

	makeShim: function(){
		if (this.options.browsers){
			var zIndex = this.element.getStyle('zIndex').toInt();

			if (!zIndex){
				zIndex = 1;
				var pos = this.element.getStyle('position');
				if (pos == 'static' || !pos) this.element.setStyle('position', 'relative');
				this.element.setStyle('zIndex', zIndex);
			}
			zIndex = ((this.options.zIndex != null || this.options.zIndex === 0) && zIndex > this.options.zIndex) ? this.options.zIndex : zIndex - 1;
			if (zIndex < 0) zIndex = 1;
			this.shim = new Element('iframe', {
				src: this.options.src,
				scrolling: 'no',
				frameborder: 0,
				styles: {
					zIndex: zIndex,
					position: 'absolute',
					border: 'none',
					filter: 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'
				},
				'class': this.options.className
			}).store('IframeShim', this);
			var inject = (function(){
				this.shim.inject(this.element, 'after');
				this[this.options.display ? 'show' : 'hide']();
				this.fireEvent('inject');
			}).bind(this);
			if (!IframeShim.ready) window.addEvent('load', inject);
			else inject();
		} else {
			this.position = this.hide = this.show = this.dispose = Function.from(this);
		}
	},

	position: function(){
		if (!IframeShim.ready || !this.shim) return this;
		var size = this.element.measure(function(){
			return this.getSize();
		});
		if (this.options.margin != undefined){
			size.x = size.x - (this.options.margin * 2);
			size.y = size.y - (this.options.margin * 2);
			this.options.offset.x += this.options.margin;
			this.options.offset.y += this.options.margin;
		}
		this.shim.set({width: size.x, height: size.y}).position({
			relativeTo: this.element,
			offset: this.options.offset
		});
		return this;
	},

	hide: function(){
		if (this.shim) this.shim.setStyle('display', 'none');
		return this;
	},

	show: function(){
		if (this.shim) this.shim.setStyle('display', 'block');
		return this.position();
	},

	dispose: function(){
		if (this.shim) this.shim.dispose();
		return this;
	},

	destroy: function(){
		if (this.shim) this.shim.destroy();
		return this;
	}

});

window.addEvent('load', function(){
	IframeShim.ready = true;
});


/*
---

script: Mask.js

name: Mask

description: Creates a mask element to cover another.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Options
  - Core/Events
  - Core/Element.Event
  - /Class.Binds
  - /Element.Position
  - /IframeShim

provides: [Mask]

...
*/

var Mask = new Class({

	Implements: [Options, Events],

	Binds: ['position'],

	options: {/*
		onShow: function(){},
		onHide: function(){},
		onDestroy: function(){},
		onClick: function(event){},
		inject: {
			where: 'after',
			target: null,
		},
		hideOnClick: false,
		id: null,
		destroyOnHide: false,*/
		style: {},
		'class': 'mask',
		maskMargins: false,
		useIframeShim: true,
		iframeShimOptions: {}
	},

	initialize: function(target, options){
		this.target = document.id(target) || document.id(document.body);
		this.target.store('mask', this);
		this.setOptions(options);
		this.render();
		this.inject();
	},

	render: function(){
		this.element = new Element('div', {
			'class': this.options['class'],
			id: this.options.id || 'mask-' + String.uniqueID(),
			styles: Object.merge({}, this.options.style, {
				display: 'none'
			}),
			events: {
				click: function(event){
					this.fireEvent('click', event);
					if (this.options.hideOnClick) this.hide();
				}.bind(this)
			}
		});

		this.hidden = true;
	},

	toElement: function(){
		return this.element;
	},

	inject: function(target, where){
		where = where || (this.options.inject ? this.options.inject.where : '') || this.target == document.body ? 'inside' : 'after';
		target = target || (this.options.inject && this.options.inject.target) || this.target;

		this.element.inject(target, where);

		if (this.options.useIframeShim){
			this.shim = new IframeShim(this.element, this.options.iframeShimOptions);

			this.addEvents({
				show: this.shim.show.bind(this.shim),
				hide: this.shim.hide.bind(this.shim),
				destroy: this.shim.destroy.bind(this.shim)
			});
		}
	},

	position: function(){
		this.resize(this.options.width, this.options.height);

		this.element.position({
			relativeTo: this.target,
			position: 'topLeft',
			ignoreMargins: !this.options.maskMargins,
			ignoreScroll: this.target == document.body
		});

		return this;
	},

	resize: function(x, y){
		var opt = {
			styles: ['padding', 'border']
		};
		if (this.options.maskMargins) opt.styles.push('margin');

		var dim = this.target.getComputedSize(opt);
		if (this.target == document.body){
			this.element.setStyles({width: 0, height: 0});
			var win = window.getScrollSize();
			if (dim.totalHeight < win.y) dim.totalHeight = win.y;
			if (dim.totalWidth < win.x) dim.totalWidth = win.x;
		}
		this.element.setStyles({
			width: Array.pick([x, dim.totalWidth, dim.x]),
			height: Array.pick([y, dim.totalHeight, dim.y])
		});

		return this;
	},

	show: function(){
		if (!this.hidden) return this;

		window.addEvent('resize', this.position);
		this.position();
		this.showMask.apply(this, arguments);

		return this;
	},

	showMask: function(){
		this.element.setStyle('display', 'block');
		this.hidden = false;
		this.fireEvent('show');
	},

	hide: function(){
		if (this.hidden) return this;

		window.removeEvent('resize', this.position);
		this.hideMask.apply(this, arguments);
		if (this.options.destroyOnHide) return this.destroy();

		return this;
	},

	hideMask: function(){
		this.element.setStyle('display', 'none');
		this.hidden = true;
		this.fireEvent('hide');
	},

	toggle: function(){
		this[this.hidden ? 'show' : 'hide']();
	},

	destroy: function(){
		this.hide();
		this.element.destroy();
		this.fireEvent('destroy');
		this.target.eliminate('mask');
	}

});

Element.Properties.mask = {

	set: function(options){
		var mask = this.retrieve('mask');
		if (mask) mask.destroy();
		return this.eliminate('mask').store('mask:options', options);
	},

	get: function(){
		var mask = this.retrieve('mask');
		if (!mask){
			mask = new Mask(this, this.retrieve('mask:options'));
			this.store('mask', mask);
		}
		return mask;
	}

};

Element.implement({

	mask: function(options){
		if (options) this.set('mask', options);
		this.get('mask').show();
		return this;
	},

	unmask: function(){
		this.get('mask').hide();
		return this;
	}

});


/*
---

script: Spinner.js

name: Spinner

description: Adds a semi-transparent overlay over a dom element with a spinnin ajax icon.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Fx.Tween
  - Core/Request
  - /Class.refactor
  - /Mask

provides: [Spinner]

...
*/

var Spinner = new Class({

	Extends: Mask,

	Implements: Chain,

	options: {/*
		message: false,*/
		'class': 'spinner',
		containerPosition: {},
		content: {
			'class': 'spinner-content'
		},
		messageContainer: {
			'class': 'spinner-msg'
		},
		img: {
			'class': 'spinner-img'
		},
		fxOptions: {
			link: 'chain'
		}
	},

	initialize: function(target, options){
		this.target = document.id(target) || document.id(document.body);
		this.target.store('spinner', this);
		this.setOptions(options);
		this.render();
		this.inject();

		// Add this to events for when noFx is true; parent methods handle hide/show.
		var deactivate = function(){ this.active = false; }.bind(this);
		this.addEvents({
			hide: deactivate,
			show: deactivate
		});
	},

	render: function(){
		this.parent();

		this.element.set('id', this.options.id || 'spinner-' + String.uniqueID());

		this.content = document.id(this.options.content) || new Element('div', this.options.content);
		this.content.inject(this.element);

		if (this.options.message){
			this.msg = document.id(this.options.message) || new Element('p', this.options.messageContainer).appendText(this.options.message);
			this.msg.inject(this.content);
		}

		if (this.options.img){
			this.img = document.id(this.options.img) || new Element('div', this.options.img);
			this.img.inject(this.content);
		}

		this.element.set('tween', this.options.fxOptions);
	},

	show: function(noFx){
		if (this.active) return this.chain(this.show.bind(this));
		if (!this.hidden){
			this.callChain.delay(20, this);
			return this;
		}

		this.active = true;

		return this.parent(noFx);
	},

	showMask: function(noFx){
		var pos = function(){
			this.content.position(Object.merge({
				relativeTo: this.element
			}, this.options.containerPosition));
		}.bind(this);

		if (noFx){
			this.parent();
			pos();
		} else {
			if (!this.options.style.opacity) this.options.style.opacity = this.element.getStyle('opacity').toFloat();
			this.element.setStyles({
				display: 'block',
				opacity: 0
			}).tween('opacity', this.options.style.opacity);
			pos();
			this.hidden = false;
			this.fireEvent('show');
			this.callChain();
		}
	},

	hide: function(noFx){
		if (this.active) return this.chain(this.hide.bind(this));
		if (this.hidden){
			this.callChain.delay(20, this);
			return this;
		}
		this.active = true;
		return this.parent(noFx);
	},

	hideMask: function(noFx){
		if (noFx) return this.parent();
		this.element.tween('opacity', 0).get('tween').chain(function(){
			this.element.setStyle('display', 'none');
			this.hidden = true;
			this.fireEvent('hide');
			this.callChain();
		}.bind(this));
	},

	destroy: function(){
		this.content.destroy();
		this.parent();
		this.target.eliminate('spinner');
	}

});

Request = Class.refactor(Request, {

	options: {
		useSpinner: false,
		spinnerOptions: {},
		spinnerTarget: false
	},

	initialize: function(options){
		this._send = this.send;
		this.send = function(options){
			var spinner = this.getSpinner();
			if (spinner) spinner.chain(this._send.pass(options, this)).show();
			else this._send(options);
			return this;
		};
		this.previous(options);
	},

	getSpinner: function(){
		if (!this.spinner){
			var update = document.id(this.options.spinnerTarget) || document.id(this.options.update);
			if (this.options.useSpinner && update){
				update.set('spinner', this.options.spinnerOptions);
				var spinner = this.spinner = update.get('spinner');
				['complete', 'exception', 'cancel'].each(function(event){
					this.addEvent(event, spinner.hide.bind(spinner));
				}, this);
			}
		}
		return this.spinner;
	}

});

Element.Properties.spinner = {

	set: function(options){
		var spinner = this.retrieve('spinner');
		if (spinner) spinner.destroy();
		return this.eliminate('spinner').store('spinner:options', options);
	},

	get: function(){
		var spinner = this.retrieve('spinner');
		if (!spinner){
			spinner = new Spinner(this, this.retrieve('spinner:options'));
			this.store('spinner', spinner);
		}
		return spinner;
	}

};

Element.implement({

	spin: function(options){
		if (options) this.set('spinner', options);
		this.get('spinner').show();
		return this;
	},

	unspin: function(){
		this.get('spinner').hide();
		return this;
	}

});


/*
---

script: Form.Request.js

name: Form.Request

description: Handles the basic functionality of submitting a form and updating a dom element with the result.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Request.HTML
  - /Class.Binds
  - /Class.Occlude
  - /Spinner
  - /String.QueryString
  - /Element.Delegation

provides: [Form.Request]

...
*/

if (!window.Form) window.Form = {};

(function(){

	Form.Request = new Class({

		Binds: ['onSubmit', 'onFormValidate'],

		Implements: [Options, Events, Class.Occlude],

		options: {/*
			onFailure: function(){},
			onSuccess: function(){}, // aliased to onComplete,
			onSend: function(){}*/
			requestOptions: {
				evalScripts: true,
				useSpinner: true,
				emulation: false,
				link: 'ignore'
			},
			sendButtonClicked: true,
			extraData: {},
			resetForm: true
		},

		property: 'form.request',

		initialize: function(form, target, options){
			this.element = document.id(form);
			if (this.occlude()) return this.occluded;
			this.setOptions(options)
				.setTarget(target)
				.attach();
		},

		setTarget: function(target){
			this.target = document.id(target);
			if (!this.request){
				this.makeRequest();
			} else {
				this.request.setOptions({
					update: this.target
				});
			}
			return this;
		},

		toElement: function(){
			return this.element;
		},

		makeRequest: function(){
			var self = this;
			this.request = new Request.HTML(Object.merge({
					update: this.target,
					emulation: false,
					spinnerTarget: this.element,
					method: this.element.get('method') || 'post'
			}, this.options.requestOptions)).addEvents({
				success: function(tree, elements, html, javascript){
					['complete', 'success'].each(function(evt){
						self.fireEvent(evt, [self.target, tree, elements, html, javascript]);
					});
				},
				failure: function(){
					self.fireEvent('complete', arguments).fireEvent('failure', arguments);
				},
				exception: function(){
					self.fireEvent('failure', arguments);
				}
			});
			return this.attachReset();
		},

		attachReset: function(){
			if (!this.options.resetForm) return this;
			this.request.addEvent('success', function(){
				Function.attempt(function(){
					this.element.reset();
				}.bind(this));
				if (window.OverText) OverText.update();
			}.bind(this));
			return this;
		},

		attach: function(attach){
			var method = (attach != false) ? 'addEvent' : 'removeEvent';
			this.element[method]('click:relay(button, input[type=submit])', this.saveClickedButton.bind(this));

			var fv = this.element.retrieve('validator');
			if (fv) fv[method]('onFormValidate', this.onFormValidate);
			else this.element[method]('submit', this.onSubmit);

			return this;
		},

		detach: function(){
			return this.attach(false);
		},

		//public method
		enable: function(){
			return this.attach();
		},

		//public method
		disable: function(){
			return this.detach();
		},

		onFormValidate: function(valid, form, event){
			//if there's no event, then this wasn't a submit event
			if (!event) return;
			var fv = this.element.retrieve('validator');
			if (valid || (fv && !fv.options.stopOnFailure)){
				event.stop();
				this.send();
			}
		},

		onSubmit: function(event){
			var fv = this.element.retrieve('validator');
			if (fv){
				//form validator was created after Form.Request
				this.element.removeEvent('submit', this.onSubmit);
				fv.addEvent('onFormValidate', this.onFormValidate);
				this.element.validate();
				return;
			}
			if (event) event.stop();
			this.send();
		},

		saveClickedButton: function(event, target){
			var targetName = target.get('name');
			if (!targetName || !this.options.sendButtonClicked) return;
			this.options.extraData[targetName] = target.get('value') || true;
			this.clickedCleaner = function(){
				delete this.options.extraData[targetName];
				this.clickedCleaner = function(){};
			}.bind(this);
		},

		clickedCleaner: function(){},

		send: function(){
			var str = this.element.toQueryString().trim(),
				data = Object.toQueryString(this.options.extraData);

			if (str) str += "&" + data;
			else str = data;

			this.fireEvent('send', [this.element, str.parseQueryString()]);
			this.request.send({
				data: str,
				url: this.options.requestOptions.url || this.element.get('action')
			});
			this.clickedCleaner();
			return this;
		}

	});

	Element.implement('formUpdate', function(update, options){
		var fq = this.retrieve('form.request');
		if (!fq){
			fq = new Form.Request(this, update, options);
		} else {
			if (update) fq.setTarget(update);
			if (options) fq.setOptions(options).makeRequest();
		}
		fq.send();
		return this;
	});

})();


/*
---

script: Fx.Reveal.js

name: Fx.Reveal

description: Defines Fx.Reveal, a class that shows and hides elements with a transition.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Fx.Morph
  - /Element.Shortcuts
  - /Element.Measure

provides: [Fx.Reveal]

...
*/

(function(){


var hideTheseOf = function(object){
	var hideThese = object.options.hideInputs;
	if (window.OverText){
		var otClasses = [null];
		OverText.each(function(ot){
			otClasses.include('.' + ot.options.labelClass);
		});
		if (otClasses) hideThese += otClasses.join(', ');
	}
	return (hideThese) ? object.element.getElements(hideThese) : null;
};


Fx.Reveal = new Class({

	Extends: Fx.Morph,

	options: {/*
		onShow: function(thisElement){},
		onHide: function(thisElement){},
		onComplete: function(thisElement){},
		heightOverride: null,
		widthOverride: null,*/
		link: 'cancel',
		styles: ['padding', 'border', 'margin'],
		transitionOpacity: !Browser.ie6,
		mode: 'vertical',
		display: function(){
			return this.element.get('tag') != 'tr' ? 'block' : 'table-row';
		},
		opacity: 1,
		hideInputs: Browser.ie ? 'select, input, textarea, object, embed' : null
	},

	dissolve: function(){
		if (!this.hiding && !this.showing){
			if (this.element.getStyle('display') != 'none'){
				this.hiding = true;
				this.showing = false;
				this.hidden = true;
				this.cssText = this.element.style.cssText;

				var startStyles = this.element.getComputedSize({
					styles: this.options.styles,
					mode: this.options.mode
				});
				if (this.options.transitionOpacity) startStyles.opacity = this.options.opacity;

				var zero = {};
				Object.each(startStyles, function(style, name){
					zero[name] = [style, 0];
				});

				this.element.setStyles({
					display: Function.from(this.options.display).call(this),
					overflow: 'hidden'
				});

				var hideThese = hideTheseOf(this);
				if (hideThese) hideThese.setStyle('visibility', 'hidden');

				this.$chain.unshift(function(){
					if (this.hidden){
						this.hiding = false;
						this.element.style.cssText = this.cssText;
						this.element.setStyle('display', 'none');
						if (hideThese) hideThese.setStyle('visibility', 'visible');
					}
					this.fireEvent('hide', this.element);
					this.callChain();
				}.bind(this));

				this.start(zero);
			} else {
				this.callChain.delay(10, this);
				this.fireEvent('complete', this.element);
				this.fireEvent('hide', this.element);
			}
		} else if (this.options.link == 'chain'){
			this.chain(this.dissolve.bind(this));
		} else if (this.options.link == 'cancel' && !this.hiding){
			this.cancel();
			this.dissolve();
		}
		return this;
	},

	reveal: function(){
		if (!this.showing && !this.hiding){
			if (this.element.getStyle('display') == 'none'){
				this.hiding = false;
				this.showing = true;
				this.hidden = false;
				this.cssText = this.element.style.cssText;

				var startStyles;
				this.element.measure(function(){
					startStyles = this.element.getComputedSize({
						styles: this.options.styles,
						mode: this.options.mode
					});
				}.bind(this));
				if (this.options.heightOverride != null) startStyles.height = this.options.heightOverride.toInt();
				if (this.options.widthOverride != null) startStyles.width = this.options.widthOverride.toInt();
				if (this.options.transitionOpacity){
					this.element.setStyle('opacity', 0);
					startStyles.opacity = this.options.opacity;
				}

				var zero = {
					height: 0,
					display: Function.from(this.options.display).call(this)
				};
				Object.each(startStyles, function(style, name){
					zero[name] = 0;
				});
				zero.overflow = 'hidden';

				this.element.setStyles(zero);

				var hideThese = hideTheseOf(this);
				if (hideThese) hideThese.setStyle('visibility', 'hidden');

				this.$chain.unshift(function(){
					this.element.style.cssText = this.cssText;
					this.element.setStyle('display', Function.from(this.options.display).call(this));
					if (!this.hidden) this.showing = false;
					if (hideThese) hideThese.setStyle('visibility', 'visible');
					this.callChain();
					this.fireEvent('show', this.element);
				}.bind(this));

				this.start(startStyles);
			} else {
				this.callChain();
				this.fireEvent('complete', this.element);
				this.fireEvent('show', this.element);
			}
		} else if (this.options.link == 'chain'){
			this.chain(this.reveal.bind(this));
		} else if (this.options.link == 'cancel' && !this.showing){
			this.cancel();
			this.reveal();
		}
		return this;
	},

	toggle: function(){
		if (this.element.getStyle('display') == 'none'){
			this.reveal();
		} else {
			this.dissolve();
		}
		return this;
	},

	cancel: function(){
		this.parent.apply(this, arguments);
		if (this.cssText != null) this.element.style.cssText = this.cssText;
		this.hiding = false;
		this.showing = false;
		return this;
	}

});

Element.Properties.reveal = {

	set: function(options){
		this.get('reveal').cancel().setOptions(options);
		return this;
	},

	get: function(){
		var reveal = this.retrieve('reveal');
		if (!reveal){
			reveal = new Fx.Reveal(this);
			this.store('reveal', reveal);
		}
		return reveal;
	}

};

Element.Properties.dissolve = Element.Properties.reveal;

Element.implement({

	reveal: function(options){
		this.get('reveal').setOptions(options).reveal();
		return this;
	},

	dissolve: function(options){
		this.get('reveal').setOptions(options).dissolve();
		return this;
	},

	nix: function(options){
		var params = Array.link(arguments, {destroy: Type.isBoolean, options: Type.isObject});
		this.get('reveal').setOptions(options).dissolve().chain(function(){
			this[params.destroy ? 'destroy' : 'dispose']();
		}.bind(this));
		return this;
	},

	wink: function(){
		var params = Array.link(arguments, {duration: Type.isNumber, options: Type.isObject});
		var reveal = this.get('reveal').setOptions(params.options);
		reveal.reveal().chain(function(){
			(function(){
				reveal.dissolve();
			}).delay(params.duration || 2000);
		});
	}

});

})();


/*
---

script: Form.Request.Append.js

name: Form.Request.Append

description: Handles the basic functionality of submitting a form and updating a dom element with the result. The result is appended to the DOM element instead of replacing its contents.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Form.Request
  - /Fx.Reveal
  - /Elements.from

provides: [Form.Request.Append]

...
*/

Form.Request.Append = new Class({

	Extends: Form.Request,

	options: {
		//onBeforeEffect: function(){},
		useReveal: true,
		revealOptions: {},
		inject: 'bottom'
	},

	makeRequest: function(){
		this.request = new Request.HTML(Object.merge({
				url: this.element.get('action'),
				method: this.element.get('method') || 'post',
				spinnerTarget: this.element
			}, this.options.requestOptions, {
				evalScripts: false
			})
		).addEvents({
			success: function(tree, elements, html, javascript){
				var container;
				var kids = Elements.from(html);
				if (kids.length == 1){
					container = kids[0];
				} else {
					 container = new Element('div', {
						styles: {
							display: 'none'
						}
					}).adopt(kids);
				}
				container.inject(this.target, this.options.inject);
				if (this.options.requestOptions.evalScripts) Browser.exec(javascript);
				this.fireEvent('beforeEffect', container);
				var finish = function(){
					this.fireEvent('success', [container, this.target, tree, elements, html, javascript]);
				}.bind(this);
				if (this.options.useReveal){
					container.set('reveal', this.options.revealOptions).get('reveal').chain(finish);
					container.reveal();
				} else {
					finish();
				}
			}.bind(this),
			failure: function(xhr){
				this.fireEvent('failure', xhr);
			}.bind(this)
		});
		this.attachReset();
	}

});


/*
---

name: Locale.en-US.Form.Validator

description: Form Validator messages for English.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Locale

provides: [Locale.en-US.Form.Validator]

...
*/

Locale.define('en-US', 'FormValidator', {

	required: 'This field is required.',
	length: 'Please enter {length} characters (you entered {elLength} characters)',
	minLength: 'Please enter at least {minLength} characters (you entered {length} characters).',
	maxLength: 'Please enter no more than {maxLength} characters (you entered {length} characters).',
	integer: 'Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.',
	numeric: 'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',
	digits: 'Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).',
	alpha: 'Please use only letters (a-z) within this field. No spaces or other characters are allowed.',
	alphanum: 'Please use only letters (a-z) or numbers (0-9) in this field. No spaces or other characters are allowed.',
	dateSuchAs: 'Please enter a valid date such as {date}',
	dateInFormatMDY: 'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',
	email: 'Please enter a valid email address. For example "fred@domain.com".',
	url: 'Please enter a valid URL such as http://www.example.com.',
	currencyDollar: 'Please enter a valid $ amount. For example $100.00 .',
	oneRequired: 'Please enter something for at least one of these inputs.',
	errorPrefix: 'Error: ',
	warningPrefix: 'Warning: ',

	// Form.Validator.Extras
	noSpace: 'There can be no spaces in this input.',
	reqChkByNode: 'No items are selected.',
	requiredChk: 'This field is required.',
	reqChkByName: 'Please select a {label}.',
	match: 'This field needs to match the {matchName} field',
	startDate: 'the start date',
	endDate: 'the end date',
	currendDate: 'the current date',
	afterDate: 'The date should be the same or after {label}.',
	beforeDate: 'The date should be the same or before {label}.',
	startMonth: 'Please select a start month',
	sameMonth: 'These two dates must be in the same month - you must change one or the other.',
	creditcard: 'The credit card number entered is invalid. Please check the number and try again. {length} digits entered.'

});


/*
---

script: Form.Validator.js

name: Form.Validator

description: A css-class based form validation system.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Options
  - Core/Events
  - Core/Slick.Finder
  - Core/Element.Event
  - Core/Element.Style
  - Core/JSON
  - /Locale
  - /Class.Binds
  - /Date
  - /Element.Forms
  - /Locale.en-US.Form.Validator
  - /Element.Shortcuts

provides: [Form.Validator, InputValidator, FormValidator.BaseValidators]

...
*/
if (!window.Form) window.Form = {};

var InputValidator = this.InputValidator = new Class({

	Implements: [Options],

	options: {
		errorMsg: 'Validation failed.',
		test: Function.from(true)
	},

	initialize: function(className, options){
		this.setOptions(options);
		this.className = className;
	},

	test: function(field, props){
		field = document.id(field);
		return (field) ? this.options.test(field, props || this.getProps(field)) : false;
	},

	getError: function(field, props){
		field = document.id(field);
		var err = this.options.errorMsg;
		if (typeOf(err) == 'function') err = err(field, props || this.getProps(field));
		return err;
	},

	getProps: function(field){
		field = document.id(field);
		return (field) ? field.get('validatorProps') : {};
	}

});

Element.Properties.validators = {

	get: function(){
		return (this.get('data-validators') || this.className).clean().split(' ');
	}

};

Element.Properties.validatorProps = {

	set: function(props){
		return this.eliminate('$moo:validatorProps').store('$moo:validatorProps', props);
	},

	get: function(props){
		if (props) this.set(props);
		if (this.retrieve('$moo:validatorProps')) return this.retrieve('$moo:validatorProps');
		if (this.getProperty('data-validator-properties') || this.getProperty('validatorProps')){
			try {
				this.store('$moo:validatorProps', JSON.decode(this.getProperty('validatorProps') || this.getProperty('data-validator-properties')));
			}catch(e){
				return {};
			}
		} else {
			var vals = this.get('validators').filter(function(cls){
				return cls.test(':');
			});
			if (!vals.length){
				this.store('$moo:validatorProps', {});
			} else {
				props = {};
				vals.each(function(cls){
					var split = cls.split(':');
					if (split[1]){
						try {
							props[split[0]] = JSON.decode(split[1]);
						} catch(e){}
					}
				});
				this.store('$moo:validatorProps', props);
			}
		}
		return this.retrieve('$moo:validatorProps');
	}

};

Form.Validator = new Class({

	Implements: [Options, Events],

	Binds: ['onSubmit'],

	options: {/*
		onFormValidate: function(isValid, form, event){},
		onElementValidate: function(isValid, field, className, warn){},
		onElementPass: function(field){},
		onElementFail: function(field, validatorsFailed){}, */
		fieldSelectors: 'input, select, textarea',
		ignoreHidden: true,
		ignoreDisabled: true,
		useTitles: false,
		evaluateOnSubmit: true,
		evaluateFieldsOnBlur: true,
		evaluateFieldsOnChange: true,
		serial: true,
		stopOnFailure: true,
		warningPrefix: function(){
			return Form.Validator.getMsg('warningPrefix') || 'Warning: ';
		},
		errorPrefix: function(){
			return Form.Validator.getMsg('errorPrefix') || 'Error: ';
		}
	},

	initialize: function(form, options){
		this.setOptions(options);
		this.element = document.id(form);
		this.element.store('validator', this);
		this.warningPrefix = Function.from(this.options.warningPrefix)();
		this.errorPrefix = Function.from(this.options.errorPrefix)();
		if (this.options.evaluateOnSubmit) this.element.addEvent('submit', this.onSubmit);
		if (this.options.evaluateFieldsOnBlur || this.options.evaluateFieldsOnChange) this.watchFields(this.getFields());
	},

	toElement: function(){
		return this.element;
	},

	getFields: function(){
		return (this.fields = this.element.getElements(this.options.fieldSelectors));
	},

	watchFields: function(fields){
		fields.each(function(el){
			if (this.options.evaluateFieldsOnBlur)
				el.addEvent('blur', this.validationMonitor.pass([el, false], this));
			if (this.options.evaluateFieldsOnChange)
				el.addEvent('change', this.validationMonitor.pass([el, true], this));
		}, this);
	},

	validationMonitor: function(){
		clearTimeout(this.timer);
		this.timer = this.validateField.delay(50, this, arguments);
	},

	onSubmit: function(event){
		if (this.validate(event)) this.reset();
	},

	reset: function(){
		this.getFields().each(this.resetField, this);
		return this;
	},

	validate: function(event){
		var result = this.getFields().map(function(field){
			return this.validateField(field, true);
		}, this).every(function(v){
			return v;
		});
		this.fireEvent('formValidate', [result, this.element, event]);
		if (this.options.stopOnFailure && !result && event) event.preventDefault();
		return result;
	},

	validateField: function(field, force){
		if (this.paused) return true;
		field = document.id(field);
		var passed = !field.hasClass('validation-failed');
		var failed, warned;
		if (this.options.serial && !force){
			failed = this.element.getElement('.validation-failed');
			warned = this.element.getElement('.warning');
		}
		if (field && (!failed || force || field.hasClass('validation-failed') || (failed && !this.options.serial))){
			var validationTypes = field.get('validators');
			var validators = validationTypes.some(function(cn){
				return this.getValidator(cn);
			}, this);
			var validatorsFailed = [];
			validationTypes.each(function(className){
				if (className && !this.test(className, field)) validatorsFailed.include(className);
			}, this);
			passed = validatorsFailed.length === 0;
			if (validators && !this.hasValidator(field, 'warnOnly')){
				if (passed){
					field.addClass('validation-passed').removeClass('validation-failed');
					this.fireEvent('elementPass', [field]);
				} else {
					field.addClass('validation-failed').removeClass('validation-passed');
					this.fireEvent('elementFail', [field, validatorsFailed]);
				}
			}
			if (!warned){
				var warnings = validationTypes.some(function(cn){
					if (cn.test('^warn'))
						return this.getValidator(cn.replace(/^warn-/,''));
					else return null;
				}, this);
				field.removeClass('warning');
				var warnResult = validationTypes.map(function(cn){
					if (cn.test('^warn'))
						return this.test(cn.replace(/^warn-/,''), field, true);
					else return null;
				}, this);
			}
		}
		return passed;
	},

	test: function(className, field, warn){
		field = document.id(field);
		if ((this.options.ignoreHidden && !field.isVisible()) || (this.options.ignoreDisabled && field.get('disabled'))) return true;
		var validator = this.getValidator(className);
		if (warn != null) warn = false;
		if (this.hasValidator(field, 'warnOnly')) warn = true;
		var isValid = this.hasValidator(field, 'ignoreValidation') || (validator ? validator.test(field) : true);
		if (validator && field.isVisible()) this.fireEvent('elementValidate', [isValid, field, className, warn]);
		if (warn) return true;
		return isValid;
	},

	hasValidator: function(field, value){
		return field.get('validators').contains(value);
	},

	resetField: function(field){
		field = document.id(field);
		if (field){
			field.get('validators').each(function(className){
				if (className.test('^warn-')) className = className.replace(/^warn-/, '');
				field.removeClass('validation-failed');
				field.removeClass('warning');
				field.removeClass('validation-passed');
			}, this);
		}
		return this;
	},

	stop: function(){
		this.paused = true;
		return this;
	},

	start: function(){
		this.paused = false;
		return this;
	},

	ignoreField: function(field, warn){
		field = document.id(field);
		if (field){
			this.enforceField(field);
			if (warn) field.addClass('warnOnly');
			else field.addClass('ignoreValidation');
		}
		return this;
	},

	enforceField: function(field){
		field = document.id(field);
		if (field) field.removeClass('warnOnly').removeClass('ignoreValidation');
		return this;
	}

});

Form.Validator.getMsg = function(key){
	return Locale.get('FormValidator.' + key);
};

Form.Validator.adders = {

	validators:{},

	add : function(className, options){
		this.validators[className] = new InputValidator(className, options);
		//if this is a class (this method is used by instances of Form.Validator and the Form.Validator namespace)
		//extend these validators into it
		//this allows validators to be global and/or per instance
		if (!this.initialize){
			this.implement({
				validators: this.validators
			});
		}
	},

	addAllThese : function(validators){
		Array.from(validators).each(function(validator){
			this.add(validator[0], validator[1]);
		}, this);
	},

	getValidator: function(className){
		return this.validators[className.split(':')[0]];
	}

};

Object.append(Form.Validator, Form.Validator.adders);

Form.Validator.implement(Form.Validator.adders);

Form.Validator.add('IsEmpty', {

	errorMsg: false,
	test: function(element){
		if (element.type == 'select-one' || element.type == 'select')
			return !(element.selectedIndex >= 0 && element.options[element.selectedIndex].value != '');
		else
			return ((element.get('value') == null) || (element.get('value').length == 0));
	}

});

Form.Validator.addAllThese([

	['required', {
		errorMsg: function(){
			return Form.Validator.getMsg('required');
		},
		test: function(element){
			return !Form.Validator.getValidator('IsEmpty').test(element);
		}
	}],

	['length', {
		errorMsg: function(element, props){
			if (typeOf(props.length) != 'null')
				return Form.Validator.getMsg('length').substitute({length: props.length, elLength: element.get('value').length});
			else return '';
		},
		test: function(element, props){
			if (typeOf(props.length) != 'null') return (element.get('value').length == props.length || element.get('value').length == 0);
			else return true;
		}
	}],	

	['minLength', {
		errorMsg: function(element, props){
			if (typeOf(props.minLength) != 'null')
				return Form.Validator.getMsg('minLength').substitute({minLength: props.minLength, length: element.get('value').length});
			else return '';
		},
		test: function(element, props){
			if (typeOf(props.minLength) != 'null') return (element.get('value').length >= (props.minLength || 0));
			else return true;
		}
	}],

	['maxLength', {
		errorMsg: function(element, props){
			//props is {maxLength:10}
			if (typeOf(props.maxLength) != 'null')
				return Form.Validator.getMsg('maxLength').substitute({maxLength: props.maxLength, length: element.get('value').length});
			else return '';
		},
		test: function(element, props){
			return element.get('value').length <= (props.maxLength || 10000);
		}
	}],

	['validate-integer', {
		errorMsg: Form.Validator.getMsg.pass('integer'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^(-?[1-9]\d*|0)$/).test(element.get('value'));
		}
	}],

	['validate-numeric', {
		errorMsg: Form.Validator.getMsg.pass('numeric'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) ||
				(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(element.get('value'));
		}
	}],

	['validate-digits', {
		errorMsg: Form.Validator.getMsg.pass('digits'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^[\d() .:\-\+#]+$/.test(element.get('value')));
		}
	}],

	['validate-alpha', {
		errorMsg: Form.Validator.getMsg.pass('alpha'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^[a-zA-Z]+$/).test(element.get('value'));
		}
	}],

	['validate-alphanum', {
		errorMsg: Form.Validator.getMsg.pass('alphanum'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || !(/\W/).test(element.get('value'));
		}
	}],

	['validate-date', {
		errorMsg: function(element, props){
			if (Date.parse){
				var format = props.dateFormat || '%x';
				return Form.Validator.getMsg('dateSuchAs').substitute({date: new Date().format(format)});
			} else {
				return Form.Validator.getMsg('dateInFormatMDY');
			}
		},
		test: function(element, props){
			if (Form.Validator.getValidator('IsEmpty').test(element)) return true;
			var dateLocale = Locale.getCurrent().sets.Date,
				dateNouns = new RegExp([dateLocale.days, dateLocale.days_abbr, dateLocale.months, dateLocale.months_abbr].flatten().join('|'), 'i'),
				value = element.get('value'),
				wordsInValue = value.match(/[a-z]+/gi);

				if (wordsInValue && !wordsInValue.every(dateNouns.exec, dateNouns)) return false;

				var date = Date.parse(value),
					format = props.dateFormat || '%x',
					formatted = date.format(format);

				if (formatted != 'invalid date') element.set('value', formatted);
				return date.isValid();
		}
	}],

	['validate-email', {
		errorMsg: Form.Validator.getMsg.pass('email'),
		test: function(element){
			/*
			var chars = "[a-z0-9!#$%&'*+/=?^_`{|}~-]",
				local = '(?:' + chars + '\\.?){0,63}' + chars,

				label = '[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?',
				hostname = '(?:' + label + '\\.)*' + label;

				octet = '(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',
				ipv4 = '\\[(?:' + octet + '\\.){3}' + octet + '\\]',

				domain = '(?:' + hostname + '|' + ipv4 + ')';

			var regex = new RegExp('^' + local + '@' + domain + '$', 'i');
			*/
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+\/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i).test(element.get('value'));
		}
	}],

	['validate-url', {
		errorMsg: Form.Validator.getMsg.pass('url'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(element.get('value'));
		}
	}],

	['validate-currency-dollar', {
		errorMsg: Form.Validator.getMsg.pass('currencyDollar'),
		test: function(element){
			return Form.Validator.getValidator('IsEmpty').test(element) || (/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(element.get('value'));
		}
	}],

	['validate-one-required', {
		errorMsg: Form.Validator.getMsg.pass('oneRequired'),
		test: function(element, props){
			var p = document.id(props['validate-one-required']) || element.getParent(props['validate-one-required']);
			return p.getElements('input').some(function(el){
				if (['checkbox', 'radio'].contains(el.get('type'))) return el.get('checked');
				return el.get('value');
			});
		}
	}]

]);

Element.Properties.validator = {

	set: function(options){
		this.get('validator').setOptions(options);
	},

	get: function(){
		var validator = this.retrieve('validator');
		if (!validator){
			validator = new Form.Validator(this);
			this.store('validator', validator);
		}
		return validator;
	}

};

Element.implement({

	validate: function(options){
		if (options) this.set('validator', options);
		return this.get('validator').validate();
	}

});







/*
---

script: Form.Validator.Inline.js

name: Form.Validator.Inline

description: Extends Form.Validator to add inline messages.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Form.Validator

provides: [Form.Validator.Inline]

...
*/

Form.Validator.Inline = new Class({

	Extends: Form.Validator,

	options: {
		showError: function(errorElement){
			if (errorElement.reveal) errorElement.reveal();
			else errorElement.setStyle('display', 'block');
		},
		hideError: function(errorElement){
			if (errorElement.dissolve) errorElement.dissolve();
			else errorElement.setStyle('display', 'none');
		},
		scrollToErrorsOnSubmit: true,
		scrollToErrorsOnBlur: false,
		scrollToErrorsOnChange: false,
		scrollFxOptions: {
			transition: 'quad:out',
			offset: {
				y: -20
			}
		}
	},

	initialize: function(form, options){
		this.parent(form, options);
		this.addEvent('onElementValidate', function(isValid, field, className, warn){
			var validator = this.getValidator(className);
			if (!isValid && validator.getError(field)){
				if (warn) field.addClass('warning');
				var advice = this.makeAdvice(className, field, validator.getError(field), warn);
				this.insertAdvice(advice, field);
				this.showAdvice(className, field);
			} else {
				this.hideAdvice(className, field);
			}
		});
	},

	makeAdvice: function(className, field, error, warn){
		var errorMsg = (warn) ? this.warningPrefix : this.errorPrefix;
			errorMsg += (this.options.useTitles) ? field.title || error:error;
		var cssClass = (warn) ? 'warning-advice' : 'validation-advice';
		var advice = this.getAdvice(className, field);
		if (advice){
			advice = advice.set('html', errorMsg);
		} else {
			advice = new Element('div', {
				html: errorMsg,
				styles: { display: 'none' },
				id: 'advice-' + className.split(':')[0] + '-' + this.getFieldId(field)
			}).addClass(cssClass);
		}
		field.store('$moo:advice-' + className, advice);
		return advice;
	},

	getFieldId : function(field){
		return field.id ? field.id : field.id = 'input_' + field.name;
	},

	showAdvice: function(className, field){
		var advice = this.getAdvice(className, field);
		if (
			advice &&
			!field.retrieve('$moo:' + this.getPropName(className)) &&
			(
				advice.getStyle('display') == 'none' ||
				advice.getStyle('visiblity') == 'hidden' ||
				advice.getStyle('opacity') == 0
			)
		){
			field.store('$moo:' + this.getPropName(className), true);
			this.options.showError(advice);
			this.fireEvent('showAdvice', [field, advice, className]);
		}
	},

	hideAdvice: function(className, field){
		var advice = this.getAdvice(className, field);
		if (advice && field.retrieve('$moo:' + this.getPropName(className))){
			field.store('$moo:' + this.getPropName(className), false);
			this.options.hideError(advice);
			this.fireEvent('hideAdvice', [field, advice, className]);
		}
	},

	getPropName: function(className){
		return 'advice' + className;
	},

	resetField: function(field){
		field = document.id(field);
		if (!field) return this;
		this.parent(field);
		field.get('validators').each(function(className){
			this.hideAdvice(className, field);
		}, this);
		return this;
	},

	getAllAdviceMessages: function(field, force){
		var advice = [];
		if (field.hasClass('ignoreValidation') && !force) return advice;
		var validators = field.get('validators').some(function(cn){
			var warner = cn.test('^warn-') || field.hasClass('warnOnly');
			if (warner) cn = cn.replace(/^warn-/, '');
			var validator = this.getValidator(cn);
			if (!validator) return;
			advice.push({
				message: validator.getError(field),
				warnOnly: warner,
				passed: validator.test(),
				validator: validator
			});
		}, this);
		return advice;
	},

	getAdvice: function(className, field){
		return field.retrieve('$moo:advice-' + className);
	},

	insertAdvice: function(advice, field){
		//Check for error position prop
		var props = field.get('validatorProps');
		//Build advice
		if (!props.msgPos || !document.id(props.msgPos)){
			if (field.type && field.type.toLowerCase() == 'radio') field.getParent().adopt(advice);
			else advice.inject(document.id(field), 'after');
		} else {
			document.id(props.msgPos).grab(advice);
		}
	},

	validateField: function(field, force, scroll){
		var result = this.parent(field, force);
		if (((this.options.scrollToErrorsOnSubmit && scroll == null) || scroll) && !result){
			var failed = document.id(this).getElement('.validation-failed');
			var par = document.id(this).getParent();
			while (par != document.body && par.getScrollSize().y == par.getSize().y){
				par = par.getParent();
			}
			var fx = par.retrieve('$moo:fvScroller');
			if (!fx && window.Fx && Fx.Scroll){
				fx = new Fx.Scroll(par, this.options.scrollFxOptions);
				par.store('$moo:fvScroller', fx);
			}
			if (failed){
				if (fx) fx.toElement(failed);
				else par.scrollTo(par.getScroll().x, failed.getPosition(par).y - 20);
			}
		}
		return result;
	},

	watchFields: function(fields){
		fields.each(function(el){
		if (this.options.evaluateFieldsOnBlur){
			el.addEvent('blur', this.validationMonitor.pass([el, false, this.options.scrollToErrorsOnBlur], this));
		}
		if (this.options.evaluateFieldsOnChange){
				el.addEvent('change', this.validationMonitor.pass([el, true, this.options.scrollToErrorsOnChange], this));
			}
		}, this);
	}

});


/*
---

script: Form.Validator.Extras.js

name: Form.Validator.Extras

description: Additional validators for the Form.Validator class.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Form.Validator

provides: [Form.Validator.Extras]

...
*/
Form.Validator.addAllThese([

	['validate-enforce-oncheck', {
		test: function(element, props){
			var fv = element.getParent('form').retrieve('validator');
			if (!fv) return true;
			(props.toEnforce || document.id(props.enforceChildrenOf).getElements('input, select, textarea')).map(function(item){
				if (element.checked){
					fv.enforceField(item);
				} else {
					fv.ignoreField(item);
					fv.resetField(item);
				}
			});
			return true;
		}
	}],

	['validate-ignore-oncheck', {
		test: function(element, props){
			var fv = element.getParent('form').retrieve('validator');
			if (!fv) return true;
			(props.toIgnore || document.id(props.ignoreChildrenOf).getElements('input, select, textarea')).each(function(item){
				if (element.checked){
					fv.ignoreField(item);
					fv.resetField(item);
				} else {
					fv.enforceField(item);
				}
			});
			return true;
		}
	}],

	['validate-nospace', {
		errorMsg: function(){
			return Form.Validator.getMsg('noSpace');
		},
		test: function(element, props){
			return !element.get('value').test(/\s/);
		}
	}],

	['validate-toggle-oncheck', {
		test: function(element, props){
			var fv = element.getParent('form').retrieve('validator');
			if (!fv) return true;
			var eleArr = props.toToggle || document.id(props.toToggleChildrenOf).getElements('input, select, textarea');
			if (!element.checked){
				eleArr.each(function(item){
					fv.ignoreField(item);
					fv.resetField(item);
				});
			} else {
				eleArr.each(function(item){
					fv.enforceField(item);
				});
			}
			return true;
		}
	}],

	['validate-reqchk-bynode', {
		errorMsg: function(){
			return Form.Validator.getMsg('reqChkByNode');
		},
		test: function(element, props){
			return (document.id(props.nodeId).getElements(props.selector || 'input[type=checkbox], input[type=radio]')).some(function(item){
				return item.checked;
			});
		}
	}],

	['validate-required-check', {
		errorMsg: function(element, props){
			return props.useTitle ? element.get('title') : Form.Validator.getMsg('requiredChk');
		},
		test: function(element, props){
			return !!element.checked;
		}
	}],

	['validate-reqchk-byname', {
		errorMsg: function(element, props){
			return Form.Validator.getMsg('reqChkByName').substitute({label: props.label || element.get('type')});
		},
		test: function(element, props){
			var grpName = props.groupName || element.get('name');
			var oneCheckedItem = $$(document.getElementsByName(grpName)).some(function(item, index){
				return item.checked;
			});
			var fv = element.getParent('form').retrieve('validator');
			if (oneCheckedItem && fv) fv.resetField(element);
			return oneCheckedItem;
		}
	}],

	['validate-match', {
		errorMsg: function(element, props){
			return Form.Validator.getMsg('match').substitute({matchName: props.matchName || document.id(props.matchInput).get('name')});
		},
		test: function(element, props){
			var eleVal = element.get('value');
			var matchVal = document.id(props.matchInput) && document.id(props.matchInput).get('value');
			return eleVal && matchVal ? eleVal == matchVal : true;
		}
	}],

	['validate-after-date', {
		errorMsg: function(element, props){
			return Form.Validator.getMsg('afterDate').substitute({
				label: props.afterLabel || (props.afterElement ? Form.Validator.getMsg('startDate') : Form.Validator.getMsg('currentDate'))
			});
		},
		test: function(element, props){
			var start = document.id(props.afterElement) ? Date.parse(document.id(props.afterElement).get('value')) : new Date();
			var end = Date.parse(element.get('value'));
			return end && start ? end >= start : true;
		}
	}],

	['validate-before-date', {
		errorMsg: function(element, props){
			return Form.Validator.getMsg('beforeDate').substitute({
				label: props.beforeLabel || (props.beforeElement ? Form.Validator.getMsg('endDate') : Form.Validator.getMsg('currentDate'))
			});
		},
		test: function(element, props){
			var start = Date.parse(element.get('value'));
			var end = document.id(props.beforeElement) ? Date.parse(document.id(props.beforeElement).get('value')) : new Date();
			return end && start ? end >= start : true;
		}
	}],

	['validate-custom-required', {
		errorMsg: function(){
			return Form.Validator.getMsg('required');
		},
		test: function(element, props){
			return element.get('value') != props.emptyValue;
		}
	}],

	['validate-same-month', {
		errorMsg: function(element, props){
			var startMo = document.id(props.sameMonthAs) && document.id(props.sameMonthAs).get('value');
			var eleVal = element.get('value');
			if (eleVal != '') return Form.Validator.getMsg(startMo ? 'sameMonth' : 'startMonth');
		},
		test: function(element, props){
			var d1 = Date.parse(element.get('value'));
			var d2 = Date.parse(document.id(props.sameMonthAs) && document.id(props.sameMonthAs).get('value'));
			return d1 && d2 ? d1.format('%B') == d2.format('%B') : true;
		}
	}],


	['validate-cc-num', {
		errorMsg: function(element){
			var ccNum = element.get('value').replace(/[^0-9]/g, '');
			return Form.Validator.getMsg('creditcard').substitute({length: ccNum.length});
		},
		test: function(element){
			// required is a different test
			if (Form.Validator.getValidator('IsEmpty').test(element)) return true;

			// Clean number value
			var ccNum = element.get('value');
			ccNum = ccNum.replace(/[^0-9]/g, '');

			var valid_type = false;

			if (ccNum.test(/^4[0-9]{12}([0-9]{3})?$/)) valid_type = 'Visa';
			else if (ccNum.test(/^5[1-5]([0-9]{14})$/)) valid_type = 'Master Card';
			else if (ccNum.test(/^3[47][0-9]{13}$/)) valid_type = 'American Express';
			else if (ccNum.test(/^6011[0-9]{12}$/)) valid_type = 'Discover';

			if (valid_type){
				var sum = 0;
				var cur = 0;

				for (var i=ccNum.length-1; i>=0; --i){
					cur = ccNum.charAt(i).toInt();
					if (cur == 0) continue;

					if ((ccNum.length-i) % 2 == 0) cur += cur;
					if (cur > 9){
						cur = cur.toString().charAt(0).toInt() + cur.toString().charAt(1).toInt();
					}

					sum += cur;
				}
				if ((sum % 10) == 0) return true;
			}

			var chunks = '';
			while (ccNum != ''){
				chunks += ' ' + ccNum.substr(0,4);
				ccNum = ccNum.substr(4);
			}

			element.getParent('form').retrieve('validator').ignoreField(element);
			element.set('value', chunks.clean());
			element.getParent('form').retrieve('validator').enforceField(element);
			return false;
		}
	}]


]);


/*
---

script: OverText.js

name: OverText

description: Shows text over an input that disappears when the user clicks into it. The text remains hidden if the user adds a value.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Options
  - Core/Events
  - Core/Element.Event
  - Class.Binds
  - Class.Occlude
  - Element.Position
  - Element.Shortcuts

provides: [OverText]

...
*/

var OverText = new Class({

	Implements: [Options, Events, Class.Occlude],

	Binds: ['reposition', 'assert', 'focus', 'hide'],

	options: {/*
		textOverride: null,
		onFocus: function(){},
		onTextHide: function(textEl, inputEl){},
		onTextShow: function(textEl, inputEl){}, */
		element: 'label',
		labelClass: 'overTxtLabel',
		positionOptions: {
			position: 'upperLeft',
			edge: 'upperLeft',
			offset: {
				x: 4,
				y: 2
			}
		},
		poll: false,
		pollInterval: 250,
		wrap: false
	},

	property: 'OverText',

	initialize: function(element, options){
		element = this.element = document.id(element);

		if (this.occlude()) return this.occluded;
		this.setOptions(options);

		this.attach(element);
		OverText.instances.push(this);

		if (this.options.poll) this.poll();
	},

	toElement: function(){
		return this.element;
	},

	attach: function(){
		var element = this.element,
			options = this.options,
			value = options.textOverride || element.get('alt') || element.get('title');

		if (!value) return this;

		var text = this.text = new Element(options.element, {
			'class': options.labelClass,
			styles: {
				lineHeight: 'normal',
				position: 'absolute',
				cursor: 'text'
			},
			html: value,
			events: {
				click: this.hide.pass(options.element == 'label', this)
			}
		}).inject(element, 'after');

		if (options.element == 'label'){
			if (!element.get('id')) element.set('id', 'input_' + String.uniqueID());
			text.set('for', element.get('id'));
		}

		if (options.wrap){
			this.textHolder = new Element('div.overTxtWrapper', {
				styles: {
					lineHeight: 'normal',
					position: 'relative'
				}
			}).grab(text).inject(element, 'before');
		}

		return this.enable();
	},

	destroy: function(){
		this.element.eliminate(this.property); // Class.Occlude storage
		this.disable();
		if (this.text) this.text.destroy();
		if (this.textHolder) this.textHolder.destroy();
		return this;
	},

	disable: function(){
		this.element.removeEvents({
			focus: this.focus,
			blur: this.assert,
			change: this.assert
		});
		window.removeEvent('resize', this.reposition);
		this.hide(true, true);
		return this;
	},

	enable: function(){
		this.element.addEvents({
			focus: this.focus,
			blur: this.assert,
			change: this.assert
		});
		window.addEvent('resize', this.reposition);
		this.reposition();
		return this;
	},

	wrap: function(){
		if (this.options.element == 'label'){
			if (!this.element.get('id')) this.element.set('id', 'input_' + String.uniqueID());
			this.text.set('for', this.element.get('id'));
		}
	},

	startPolling: function(){
		this.pollingPaused = false;
		return this.poll();
	},

	poll: function(stop){
		//start immediately
		//pause on focus
		//resumeon blur
		if (this.poller && !stop) return this;
		if (stop){
			clearInterval(this.poller);
		} else {
			this.poller = (function(){
				if (!this.pollingPaused) this.assert(true);
			}).periodical(this.options.pollInterval, this);
		}

		return this;
	},

	stopPolling: function(){
		this.pollingPaused = true;
		return this.poll(true);
	},

	focus: function(){
		if (this.text && (!this.text.isDisplayed() || this.element.get('disabled'))) return this;
		return this.hide();
	},

	hide: function(suppressFocus, force){
		if (this.text && (this.text.isDisplayed() && (!this.element.get('disabled') || force))){
			this.text.hide();
			this.fireEvent('textHide', [this.text, this.element]);
			this.pollingPaused = true;
			if (!suppressFocus){
				try {
					this.element.fireEvent('focus');
					this.element.focus();
				} catch(e){} //IE barfs if you call focus on hidden elements
			}
		}
		return this;
	},

	show: function(){
		if (this.text && !this.text.isDisplayed()){
			this.text.show();
			this.reposition();
			this.fireEvent('textShow', [this.text, this.element]);
			this.pollingPaused = false;
		}
		return this;
	},

	test: function(){
		return !this.element.get('value');
	},

	assert: function(suppressFocus){
		return this[this.test() ? 'show' : 'hide'](suppressFocus);
	},

	reposition: function(){
		this.assert(true);
		if (!this.element.isVisible()) return this.stopPolling().hide();
		if (this.text && this.test()){
			this.text.position(Object.merge(this.options.positionOptions, {
				relativeTo: this.element
			}));
		}
		return this;
	}

});

OverText.instances = [];

Object.append(OverText, {

	each: function(fn){
		return OverText.instances.each(function(ot, i){
			if (ot.element && ot.text) fn.call(OverText, ot, i);
		});
	},

	update: function(){

		return OverText.each(function(ot){
			return ot.reposition();
		});

	},

	hideAll: function(){

		return OverText.each(function(ot){
			return ot.hide(true, true);
		});

	},

	showAll: function(){
		return OverText.each(function(ot){
			return ot.show();
		});
	}

});



/*
---

script: Fx.Elements.js

name: Fx.Elements

description: Effect to change any number of CSS properties of any number of Elements.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Fx.CSS
  - /MooTools.More

provides: [Fx.Elements]

...
*/

Fx.Elements = new Class({

	Extends: Fx.CSS,

	initialize: function(elements, options){
		this.elements = this.subject = $$(elements);
		this.parent(options);
	},

	compute: function(from, to, delta){
		var now = {};

		for (var i in from){
			var iFrom = from[i], iTo = to[i], iNow = now[i] = {};
			for (var p in iFrom) iNow[p] = this.parent(iFrom[p], iTo[p], delta);
		}

		return now;
	},

	set: function(now){
		for (var i in now){
			if (!this.elements[i]) continue;

			var iNow = now[i];
			for (var p in iNow) this.render(this.elements[i], p, iNow[p], this.options.unit);
		}

		return this;
	},

	start: function(obj){
		if (!this.check(obj)) return this;
		var from = {}, to = {};

		for (var i in obj){
			if (!this.elements[i]) continue;

			var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {};

			for (var p in iProps){
				var parsed = this.prepare(this.elements[i], p, iProps[p]);
				iFrom[p] = parsed.from;
				iTo[p] = parsed.to;
			}
		}

		return this.parent(from, to);
	}

});


/*
---

script: Fx.Accordion.js

name: Fx.Accordion

description: An Fx.Elements extension which allows you to easily create accordion type controls.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Element.Event
  - /Fx.Elements

provides: [Fx.Accordion]

...
*/

Fx.Accordion = new Class({

	Extends: Fx.Elements,

	options: {/*
		onActive: function(toggler, section){},
		onBackground: function(toggler, section){},*/
		fixedHeight: false,
		fixedWidth: false,
		display: 0,
		show: false,
		height: true,
		width: false,
		opacity: true,
		alwaysHide: false,
		trigger: 'click',
		initialDisplayFx: true,
		resetHeight: true
	},

	initialize: function(){
		var defined = function(obj){
			return obj != null;
		};

		var params = Array.link(arguments, {
			'container': Type.isElement, //deprecated
			'options': Type.isObject,
			'togglers': defined,
			'elements': defined
		});
		this.parent(params.elements, params.options);

		var options = this.options,
			togglers = this.togglers = $$(params.togglers);

		this.previous = -1;
		this.internalChain = new Chain();

		if (options.alwaysHide) this.options.link = 'chain';

		if (options.show || this.options.show === 0){
			options.display = false;
			this.previous = options.show;
		}

		if (options.start){
			options.display = false;
			options.show = false;
		}

		var effects = this.effects = {};

		if (options.opacity) effects.opacity = 'fullOpacity';
		if (options.width) effects.width = options.fixedWidth ? 'fullWidth' : 'offsetWidth';
		if (options.height) effects.height = options.fixedHeight ? 'fullHeight' : 'scrollHeight';

		for (var i = 0, l = togglers.length; i < l; i++) this.addSection(togglers[i], this.elements[i]);

		this.elements.each(function(el, i){
			if (options.show === i){
				this.fireEvent('active', [togglers[i], el]);
			} else {
				for (var fx in effects) el.setStyle(fx, 0);
			}
		}, this);

		if (options.display || options.display === 0 || options.initialDisplayFx === false){
			this.display(options.display, options.initialDisplayFx);
		}

		if (options.fixedHeight !== false) options.resetHeight = false;
		this.addEvent('complete', this.internalChain.callChain.bind(this.internalChain));
	},

	addSection: function(toggler, element){
		toggler = document.id(toggler);
		element = document.id(element);
		this.togglers.include(toggler);
		this.elements.include(element);

		var togglers = this.togglers,
			options = this.options,
			test = togglers.contains(toggler),
			idx = togglers.indexOf(toggler),
			displayer = this.display.pass(idx, this);

		toggler.store('accordion:display', displayer)
			.addEvent(options.trigger, displayer);

		if (options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
		if (options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});

		element.fullOpacity = 1;
		if (options.fixedWidth) element.fullWidth = options.fixedWidth;
		if (options.fixedHeight) element.fullHeight = options.fixedHeight;
		element.setStyle('overflow', 'hidden');

		if (!test) for (var fx in this.effects){
			element.setStyle(fx, 0);
		}
		return this;
	},

	removeSection: function(toggler, displayIndex){
		var togglers = this.togglers,
			idx = togglers.indexOf(toggler),
			element = this.elements[idx];

		var remover = function(){
			togglers.erase(toggler);
			this.elements.erase(element);
			this.detach(toggler);
		}.bind(this);

		if (this.now == idx || displayIndex != null){
			this.display(displayIndex != null ? displayIndex : (idx - 1 >= 0 ? idx - 1 : 0)).chain(remover);
		} else {
			remover();
		}
		return this;
	},

	detach: function(toggler){
		var remove = function(toggler){
			toggler.removeEvent(this.options.trigger, toggler.retrieve('accordion:display'));
		}.bind(this);

		if (!toggler) this.togglers.each(remove);
		else remove(toggler);
		return this;
	},

	display: function(index, useFx){
		if (!this.check(index, useFx)) return this;

		var obj = {},
			elements = this.elements,
			options = this.options,
			effects = this.effects;

		if (useFx == null) useFx = true;
		if (typeOf(index) == 'element') index = elements.indexOf(index);
		if (index == this.previous && !options.alwaysHide) return this;

		if (options.resetHeight){
			var prev = elements[this.previous];
			if (prev && !this.selfHidden){
				for (var fx in effects) prev.setStyle(fx, prev[effects[fx]]);
			}
		}

		if ((this.timer && options.link == 'chain') || (index === this.previous && !options.alwaysHide)) return this;

		this.previous = index;
		this.selfHidden = false;

		elements.each(function(el, i){
			obj[i] = {};
			var hide;
			if (i != index){
				hide = true;
			} else if (options.alwaysHide && ((el.offsetHeight > 0 && options.height) || el.offsetWidth > 0 && options.width)){
				hide = true;
				this.selfHidden = true;
			}
			this.fireEvent(hide ? 'background' : 'active', [this.togglers[i], el]);
			for (var fx in effects) obj[i][fx] = hide ? 0 : el[effects[fx]];
			if (!useFx && !hide && options.resetHeight) obj[i].height = 'auto';
		}, this);

		this.internalChain.clearChain();
		this.internalChain.chain(function(){
			if (options.resetHeight && !this.selfHidden){
				var el = elements[index];
				if (el) el.setStyle('height', 'auto');
			}
		}.bind(this));

		return useFx ? this.start(obj) : this.set(obj).internalChain.callChain();
	}

});




/*
---

script: Fx.Move.js

name: Fx.Move

description: Defines Fx.Move, a class that works with Element.Position.js to transition an element from one location to another.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Fx.Morph
  - /Element.Position

provides: [Fx.Move]

...
*/

Fx.Move = new Class({

	Extends: Fx.Morph,

	options: {
		relativeTo: document.body,
		position: 'center',
		edge: false,
		offset: {x: 0, y: 0}
	},

	start: function(destination){
		var element = this.element,
			topLeft = element.getStyles('top', 'left');
		if (topLeft.top == 'auto' || topLeft.left == 'auto'){
			element.setPosition(element.getPosition(element.getOffsetParent()));
		}
		return this.parent(element.position(Object.merge({}, this.options, destination, {returnPos: true})));
	}

});

Element.Properties.move = {

	set: function(options){
		this.get('move').cancel().setOptions(options);
		return this;
	},

	get: function(){
		var move = this.retrieve('move');
		if (!move){
			move = new Fx.Move(this, {link: 'cancel'});
			this.store('move', move);
		}
		return move;
	}

};

Element.implement({

	move: function(options){
		this.get('move').start(options);
		return this;
	}

});


/*
---

script: Fx.Scroll.js

name: Fx.Scroll

description: Effect to smoothly scroll any element, including the window.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Fx
  - Core/Element.Event
  - Core/Element.Dimensions
  - /MooTools.More

provides: [Fx.Scroll]

...
*/

(function(){

Fx.Scroll = new Class({

	Extends: Fx,

	options: {
		offset: {x: 0, y: 0},
		wheelStops: true
	},

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);

		if (typeOf(this.element) != 'element') this.element = document.id(this.element.getDocument().body);

		if (this.options.wheelStops){
			var stopper = this.element,
				cancel = this.cancel.pass(false, this);
			this.addEvent('start', function(){
				stopper.addEvent('mousewheel', cancel);
			}, true);
			this.addEvent('complete', function(){
				stopper.removeEvent('mousewheel', cancel);
			}, true);
		}
	},

	set: function(){
		var now = Array.flatten(arguments);
		if (Browser.firefox) now = [Math.round(now[0]), Math.round(now[1])]; // not needed anymore in newer firefox versions
		this.element.scrollTo(now[0], now[1]);
		return this;
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(x, y){
		if (!this.check(x, y)) return this;
		var scroll = this.element.getScroll();
		return this.parent([scroll.x, scroll.y], [x, y]);
	},

	calculateScroll: function(x, y){
		var element = this.element,
			scrollSize = element.getScrollSize(),
			scroll = element.getScroll(),
			size = element.getSize(),
			offset = this.options.offset,
			values = {x: x, y: y};

		for (var z in values){
			if (!values[z] && values[z] !== 0) values[z] = scroll[z];
			if (typeOf(values[z]) != 'number') values[z] = scrollSize[z] - size[z];
			values[z] += offset[z];
		}

		return [values.x, values.y];
	},

	toTop: function(){
		return this.start.apply(this, this.calculateScroll(false, 0));
	},

	toLeft: function(){
		return this.start.apply(this, this.calculateScroll(0, false));
	},

	toRight: function(){
		return this.start.apply(this, this.calculateScroll('right', false));
	},

	toBottom: function(){
		return this.start.apply(this, this.calculateScroll(false, 'bottom'));
	},

	toElement: function(el, axes){
		axes = axes ? Array.from(axes) : ['x', 'y'];
		var scroll = isBody(this.element) ? {x: 0, y: 0} : this.element.getScroll();
		var position = Object.map(document.id(el).getPosition(this.element), function(value, axis){
			return axes.contains(axis) ? value + scroll[axis] : false;
		});
		return this.start.apply(this, this.calculateScroll(position.x, position.y));
	},

	toElementEdge: function(el, axes, offset){
		axes = axes ? Array.from(axes) : ['x', 'y'];
		el = document.id(el);
		var to = {},
			position = el.getPosition(this.element),
			size = el.getSize(),
			scroll = this.element.getScroll(),
			containerSize = this.element.getSize(),
			edge = {
				x: position.x + size.x,
				y: position.y + size.y
			};

		['x', 'y'].each(function(axis){
			if (axes.contains(axis)){
				if (edge[axis] > scroll[axis] + containerSize[axis]) to[axis] = edge[axis] - containerSize[axis];
				if (position[axis] < scroll[axis]) to[axis] = position[axis];
			}
			if (to[axis] == null) to[axis] = scroll[axis];
			if (offset && offset[axis]) to[axis] = to[axis] + offset[axis];
		}, this);

		if (to.x != scroll.x || to.y != scroll.y) this.start(to.x, to.y);
		return this;
	},

	toElementCenter: function(el, axes, offset){
		axes = axes ? Array.from(axes) : ['x', 'y'];
		el = document.id(el);
		var to = {},
			position = el.getPosition(this.element),
			size = el.getSize(),
			scroll = this.element.getScroll(),
			containerSize = this.element.getSize();

		['x', 'y'].each(function(axis){
			if (axes.contains(axis)){
				to[axis] = position[axis] - (containerSize[axis] - size[axis]) / 2;
			}
			if (to[axis] == null) to[axis] = scroll[axis];
			if (offset && offset[axis]) to[axis] = to[axis] + offset[axis];
		}, this);

		if (to.x != scroll.x || to.y != scroll.y) this.start(to.x, to.y);
		return this;
	}

});



function isBody(element){
	return (/^(?:body|html)$/i).test(element.tagName);
}

})();


/*
---

script: Fx.Slide.js

name: Fx.Slide

description: Effect to slide an element in and out of view.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Fx
  - Core/Element.Style
  - /MooTools.More

provides: [Fx.Slide]

...
*/

Fx.Slide = new Class({

	Extends: Fx,

	options: {
		mode: 'vertical',
		wrapper: false,
		hideOverflow: true,
		resetHeight: false
	},

	initialize: function(element, options){
		element = this.element = this.subject = document.id(element);
		this.parent(options);
		options = this.options;

		var wrapper = element.retrieve('wrapper'),
			styles = element.getStyles('margin', 'position', 'overflow');

		if (options.hideOverflow) styles = Object.append(styles, {overflow: 'hidden'});
		if (options.wrapper) wrapper = document.id(options.wrapper).setStyles(styles);

		if (!wrapper) wrapper = new Element('div', {
			styles: styles
		}).wraps(element);

		element.store('wrapper', wrapper).setStyle('margin', 0);
		if (element.getStyle('overflow') == 'visible') element.setStyle('overflow', 'hidden');

		this.now = [];
		this.open = true;
		this.wrapper = wrapper;

		this.addEvent('complete', function(){
			this.open = (wrapper['offset' + this.layout.capitalize()] != 0);
			if (this.open && this.options.resetHeight) wrapper.setStyle('height', '');
		}, true);
	},

	vertical: function(){
		this.margin = 'margin-top';
		this.layout = 'height';
		this.offset = this.element.offsetHeight;
	},

	horizontal: function(){
		this.margin = 'margin-left';
		this.layout = 'width';
		this.offset = this.element.offsetWidth;
	},

	set: function(now){
		this.element.setStyle(this.margin, now[0]);
		this.wrapper.setStyle(this.layout, now[1]);
		return this;
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(how, mode){
		if (!this.check(how, mode)) return this;
		this[mode || this.options.mode]();

		var margin = this.element.getStyle(this.margin).toInt(),
			layout = this.wrapper.getStyle(this.layout).toInt(),
			caseIn = [[margin, layout], [0, this.offset]],
			caseOut = [[margin, layout], [-this.offset, 0]],
			start;

		switch (how){
			case 'in': start = caseIn; break;
			case 'out': start = caseOut; break;
			case 'toggle': start = (layout == 0) ? caseIn : caseOut;
		}
		return this.parent(start[0], start[1]);
	},

	slideIn: function(mode){
		return this.start('in', mode);
	},

	slideOut: function(mode){
		return this.start('out', mode);
	},

	hide: function(mode){
		this[mode || this.options.mode]();
		this.open = false;
		return this.set([-this.offset, 0]);
	},

	show: function(mode){
		this[mode || this.options.mode]();
		this.open = true;
		return this.set([0, this.offset]);
	},

	toggle: function(mode){
		return this.start('toggle', mode);
	}

});

Element.Properties.slide = {

	set: function(options){
		this.get('slide').cancel().setOptions(options);
		return this;
	},

	get: function(){
		var slide = this.retrieve('slide');
		if (!slide){
			slide = new Fx.Slide(this, {link: 'cancel'});
			this.store('slide', slide);
		}
		return slide;
	}

};

Element.implement({

	slide: function(how, mode){
		how = how || 'toggle';
		var slide = this.get('slide'), toggle;
		switch (how){
			case 'hide': slide.hide(mode); break;
			case 'show': slide.show(mode); break;
			case 'toggle':
				var flag = this.retrieve('slide:flag', slide.open);
				slide[flag ? 'slideOut' : 'slideIn'](mode);
				this.store('slide:flag', !flag);
				toggle = true;
			break;
			default: slide.start(how, mode);
		}
		if (!toggle) this.eliminate('slide:flag');
		return this;
	}

});


/*
---

script: Fx.SmoothScroll.js

name: Fx.SmoothScroll

description: Class for creating a smooth scrolling effect to all internal links on the page.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Slick.Finder
  - /Fx.Scroll

provides: [Fx.SmoothScroll]

...
*/

Fx.SmoothScroll = new Class({

	Extends: Fx.Scroll,

	options: {
		axes: ['x', 'y']
	},

	initialize: function(options, context){
		context = context || document;
		this.doc = context.getDocument();
		this.parent(this.doc, options);

		var win = context.getWindow(),
			location = win.location.href.match(/^[^#]*/)[0] + '#',
			links = $$(this.options.links || this.doc.links);

		links.each(function(link){
			if (link.href.indexOf(location) != 0) return;
			var anchor = link.href.substr(location.length);
			if (anchor) this.useLink(link, anchor);
		}, this);

		this.addEvent('complete', function(){
			win.location.hash = this.anchor;
			this.element.scrollTo(this.to[0], this.to[1]);
		}, true);
	},

	useLink: function(link, anchor){

		link.addEvent('click', function(event){
			var el = document.id(anchor) || this.doc.getElement('a[name=' + anchor + ']');
			if (!el) return;

			event.preventDefault();
			this.toElement(el, this.options.axes).chain(function(){
				this.fireEvent('scrolledTo', [link, el]);
			}.bind(this));

			this.anchor = anchor;

		}.bind(this));

		return this;
	}
});


/*
---

script: Fx.Sort.js

name: Fx.Sort

description: Defines Fx.Sort, a class that reorders lists with a transition.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element.Dimensions
  - /Fx.Elements
  - /Element.Measure

provides: [Fx.Sort]

...
*/

Fx.Sort = new Class({

	Extends: Fx.Elements,

	options: {
		mode: 'vertical'
	},

	initialize: function(elements, options){
		this.parent(elements, options);
		this.elements.each(function(el){
			if (el.getStyle('position') == 'static') el.setStyle('position', 'relative');
		});
		this.setDefaultOrder();
	},

	setDefaultOrder: function(){
		this.currentOrder = this.elements.map(function(el, index){
			return index;
		});
	},

	sort: function(){
		if (!this.check(arguments)) return this;
		var newOrder = Array.flatten(arguments);

		var top = 0,
			left = 0,
			next = {},
			zero = {},
			vert = this.options.mode == 'vertical';

		var current = this.elements.map(function(el, index){
			var size = el.getComputedSize({styles: ['border', 'padding', 'margin']});
			var val;
			if (vert){
				val = {
					top: top,
					margin: size['margin-top'],
					height: size.totalHeight
				};
				top += val.height - size['margin-top'];
			} else {
				val = {
					left: left,
					margin: size['margin-left'],
					width: size.totalWidth
				};
				left += val.width;
			}
			var plane = vert ? 'top' : 'left';
			zero[index] = {};
			var start = el.getStyle(plane).toInt();
			zero[index][plane] = start || 0;
			return val;
		}, this);

		this.set(zero);
		newOrder = newOrder.map(function(i){ return i.toInt(); });
		if (newOrder.length != this.elements.length){
			this.currentOrder.each(function(index){
				if (!newOrder.contains(index)) newOrder.push(index);
			});
			if (newOrder.length > this.elements.length)
				newOrder.splice(this.elements.length-1, newOrder.length - this.elements.length);
		}
		var margin = 0;
		top = left = 0;
		newOrder.each(function(item){
			var newPos = {};
			if (vert){
				newPos.top = top - current[item].top - margin;
				top += current[item].height;
			} else {
				newPos.left = left - current[item].left;
				left += current[item].width;
			}
			margin = margin + current[item].margin;
			next[item]=newPos;
		}, this);
		var mapped = {};
		Array.clone(newOrder).sort().each(function(index){
			mapped[index] = next[index];
		});
		this.start(mapped);
		this.currentOrder = newOrder;

		return this;
	},

	rearrangeDOM: function(newOrder){
		newOrder = newOrder || this.currentOrder;
		var parent = this.elements[0].getParent();
		var rearranged = [];
		this.elements.setStyle('opacity', 0);
		//move each element and store the new default order
		newOrder.each(function(index){
			rearranged.push(this.elements[index].inject(parent).setStyles({
				top: 0,
				left: 0
			}));
		}, this);
		this.elements.setStyle('opacity', 1);
		this.elements = $$(rearranged);
		this.setDefaultOrder();
		return this;
	},

	getDefaultOrder: function(){
		return this.elements.map(function(el, index){
			return index;
		});
	},

	getCurrentOrder: function(){
		return this.currentOrder;
	},

	forward: function(){
		return this.sort(this.getDefaultOrder());
	},

	backward: function(){
		return this.sort(this.getDefaultOrder().reverse());
	},

	reverse: function(){
		return this.sort(this.currentOrder.reverse());
	},

	sortByElements: function(elements){
		return this.sort(elements.map(function(el){
			return this.elements.indexOf(el);
		}, this));
	},

	swap: function(one, two){
		if (typeOf(one) == 'element') one = this.elements.indexOf(one);
		if (typeOf(two) == 'element') two = this.elements.indexOf(two);

		var newOrder = Array.clone(this.currentOrder);
		newOrder[this.currentOrder.indexOf(one)] = two;
		newOrder[this.currentOrder.indexOf(two)] = one;

		return this.sort(newOrder);
	}

});


/*
---

script: Drag.js

name: Drag

description: The base Drag Class. Can be used to drag and resize Elements using mouse events.

license: MIT-style license

authors:
  - Valerio Proietti
  - Tom Occhinno
  - Jan Kassens

requires:
  - Core/Events
  - Core/Options
  - Core/Element.Event
  - Core/Element.Style
  - Core/Element.Dimensions
  - /MooTools.More

provides: [Drag]
...

*/

var Drag = new Class({

	Implements: [Events, Options],

	options: {/*
		onBeforeStart: function(thisElement){},
		onStart: function(thisElement, event){},
		onSnap: function(thisElement){},
		onDrag: function(thisElement, event){},
		onCancel: function(thisElement){},
		onComplete: function(thisElement, event){},*/
		snap: 6,
		unit: 'px',
		grid: false,
		style: true,
		limit: false,
		handle: false,
		invert: false,
		preventDefault: false,
		stopPropagation: false,
		modifiers: {x: 'left', y: 'top'}
	},

	initialize: function(){
		var params = Array.link(arguments, {
			'options': Type.isObject,
			'element': function(obj){
				return obj != null;
			}
		});

		this.element = document.id(params.element);
		this.document = this.element.getDocument();
		this.setOptions(params.options || {});
		var htype = typeOf(this.options.handle);
		this.handles = ((htype == 'array' || htype == 'collection') ? $$(this.options.handle) : document.id(this.options.handle)) || this.element;
		this.mouse = {'now': {}, 'pos': {}};
		this.value = {'start': {}, 'now': {}};

		this.selection = (Browser.ie) ? 'selectstart' : 'mousedown';


		if (Browser.ie && !Drag.ondragstartFixed){
			document.ondragstart = Function.from(false);
			Drag.ondragstartFixed = true;
		}

		this.bound = {
			start: this.start.bind(this),
			check: this.check.bind(this),
			drag: this.drag.bind(this),
			stop: this.stop.bind(this),
			cancel: this.cancel.bind(this),
			eventStop: Function.from(false)
		};
		this.attach();
	},

	attach: function(){
		this.handles.addEvent('mousedown', this.bound.start);
		return this;
	},

	detach: function(){
		this.handles.removeEvent('mousedown', this.bound.start);
		return this;
	},

	start: function(event){
		var options = this.options;

		if (event.rightClick) return;

		if (options.preventDefault) event.preventDefault();
		if (options.stopPropagation) event.stopPropagation();
		this.mouse.start = event.page;

		this.fireEvent('beforeStart', this.element);

		var limit = options.limit;
		this.limit = {x: [], y: []};

		var z, coordinates;
		for (z in options.modifiers){
			if (!options.modifiers[z]) continue;

			var style = this.element.getStyle(options.modifiers[z]);

			// Some browsers (IE and Opera) don't always return pixels.
			if (style && !style.match(/px$/)){
				if (!coordinates) coordinates = this.element.getCoordinates(this.element.getOffsetParent());
				style = coordinates[options.modifiers[z]];
			}

			if (options.style) this.value.now[z] = (style || 0).toInt();
			else this.value.now[z] = this.element[options.modifiers[z]];

			if (options.invert) this.value.now[z] *= -1;

			this.mouse.pos[z] = event.page[z] - this.value.now[z];

			if (limit && limit[z]){
				var i = 2;
				while (i--){
					var limitZI = limit[z][i];
					if (limitZI || limitZI === 0) this.limit[z][i] = (typeof limitZI == 'function') ? limitZI() : limitZI;
				}
			}
		}

		if (typeOf(this.options.grid) == 'number') this.options.grid = {
			x: this.options.grid,
			y: this.options.grid
		};

		var events = {
			mousemove: this.bound.check,
			mouseup: this.bound.cancel
		};
		events[this.selection] = this.bound.eventStop;
		this.document.addEvents(events);
	},

	check: function(event){
		if (this.options.preventDefault) event.preventDefault();
		var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
		if (distance > this.options.snap){
			this.cancel();
			this.document.addEvents({
				mousemove: this.bound.drag,
				mouseup: this.bound.stop
			});
			this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element);
		}
	},

	drag: function(event){
		var options = this.options;

		if (options.preventDefault) event.preventDefault();
		this.mouse.now = event.page;

		for (var z in options.modifiers){
			if (!options.modifiers[z]) continue;
			this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];

			if (options.invert) this.value.now[z] *= -1;

			if (options.limit && this.limit[z]){
				if ((this.limit[z][1] || this.limit[z][1] === 0) && (this.value.now[z] > this.limit[z][1])){
					this.value.now[z] = this.limit[z][1];
				} else if ((this.limit[z][0] || this.limit[z][0] === 0) && (this.value.now[z] < this.limit[z][0])){
					this.value.now[z] = this.limit[z][0];
				}
			}

			if (options.grid[z]) this.value.now[z] -= ((this.value.now[z] - (this.limit[z][0]||0)) % options.grid[z]);

			if (options.style) this.element.setStyle(options.modifiers[z], this.value.now[z] + options.unit);
			else this.element[options.modifiers[z]] = this.value.now[z];
		}

		this.fireEvent('drag', [this.element, event]);
	},

	cancel: function(event){
		this.document.removeEvents({
			mousemove: this.bound.check,
			mouseup: this.bound.cancel
		});
		if (event){
			this.document.removeEvent(this.selection, this.bound.eventStop);
			this.fireEvent('cancel', this.element);
		}
	},

	stop: function(event){
		var events = {
			mousemove: this.bound.drag,
			mouseup: this.bound.stop
		};
		events[this.selection] = this.bound.eventStop;
		this.document.removeEvents(events);
		if (event) this.fireEvent('complete', [this.element, event]);
	}

});

Element.implement({

	makeResizable: function(options){
		var drag = new Drag(this, Object.merge({
			modifiers: {
				x: 'width',
				y: 'height'
			}
		}, options));

		this.store('resizer', drag);
		return drag.addEvent('drag', function(){
			this.fireEvent('resize', drag);
		}.bind(this));
	}

});


/*
---

script: Drag.Move.js

name: Drag.Move

description: A Drag extension that provides support for the constraining of draggables to containers and droppables.

license: MIT-style license

authors:
  - Valerio Proietti
  - Tom Occhinno
  - Jan Kassens
  - Aaron Newton
  - Scott Kyle

requires:
  - Core/Element.Dimensions
  - /Drag

provides: [Drag.Move]

...
*/

Drag.Move = new Class({

	Extends: Drag,

	options: {/*
		onEnter: function(thisElement, overed){},
		onLeave: function(thisElement, overed){},
		onDrop: function(thisElement, overed, event){},*/
		droppables: [],
		container: false,
		precalculate: false,
		includeMargins: true,
		checkDroppables: true
	},

	initialize: function(element, options){
		this.parent(element, options);
		element = this.element;

		this.droppables = $$(this.options.droppables);
		this.container = document.id(this.options.container);

		if (this.container && typeOf(this.container) != 'element')
			this.container = document.id(this.container.getDocument().body);

		if (this.options.style){
			if (this.options.modifiers.x == 'left' && this.options.modifiers.y == 'top'){
				var parent = element.getOffsetParent(),
					styles = element.getStyles('left', 'top');
				if (parent && (styles.left == 'auto' || styles.top == 'auto')){
					element.setPosition(element.getPosition(parent));
				}
			}

			if (element.getStyle('position') == 'static') element.setStyle('position', 'absolute');
		}

		this.addEvent('start', this.checkDroppables, true);
		this.overed = null;
	},

	start: function(event){
		if (this.container) this.options.limit = this.calculateLimit();

		if (this.options.precalculate){
			this.positions = this.droppables.map(function(el){
				return el.getCoordinates();
			});
		}

		this.parent(event);
	},

	calculateLimit: function(){
		var element = this.element,
			container = this.container,

			offsetParent = document.id(element.getOffsetParent()) || document.body,
			containerCoordinates = container.getCoordinates(offsetParent),
			elementMargin = {},
			elementBorder = {},
			containerMargin = {},
			containerBorder = {},
			offsetParentPadding = {};

		['top', 'right', 'bottom', 'left'].each(function(pad){
			elementMargin[pad] = element.getStyle('margin-' + pad).toInt();
			elementBorder[pad] = element.getStyle('border-' + pad).toInt();
			containerMargin[pad] = container.getStyle('margin-' + pad).toInt();
			containerBorder[pad] = container.getStyle('border-' + pad).toInt();
			offsetParentPadding[pad] = offsetParent.getStyle('padding-' + pad).toInt();
		}, this);

		var width = element.offsetWidth + elementMargin.left + elementMargin.right,
			height = element.offsetHeight + elementMargin.top + elementMargin.bottom,
			left = 0,
			top = 0,
			right = containerCoordinates.right - containerBorder.right - width,
			bottom = containerCoordinates.bottom - containerBorder.bottom - height;

		if (this.options.includeMargins){
			left += elementMargin.left;
			top += elementMargin.top;
		} else {
			right += elementMargin.right;
			bottom += elementMargin.bottom;
		}

		if (element.getStyle('position') == 'relative'){
			var coords = element.getCoordinates(offsetParent);
			coords.left -= element.getStyle('left').toInt();
			coords.top -= element.getStyle('top').toInt();

			left -= coords.left;
			top -= coords.top;
			if (container.getStyle('position') != 'relative'){
				left += containerBorder.left;
				top += containerBorder.top;
			}
			right += elementMargin.left - coords.left;
			bottom += elementMargin.top - coords.top;

			if (container != offsetParent){
				left += containerMargin.left + offsetParentPadding.left;
				top += ((Browser.ie6 || Browser.ie7) ? 0 : containerMargin.top) + offsetParentPadding.top;
			}
		} else {
			left -= elementMargin.left;
			top -= elementMargin.top;
			if (container != offsetParent){
				left += containerCoordinates.left + containerBorder.left;
				top += containerCoordinates.top + containerBorder.top;
			}
		}

		return {
			x: [left, right],
			y: [top, bottom]
		};
	},

	getDroppableCoordinates: function(element){
		var position = element.getCoordinates();
		if (element.getStyle('position') == 'fixed'){
			var scroll = window.getScroll();
			position.left += scroll.x;
			position.right += scroll.x;
			position.top += scroll.y;
			position.bottom += scroll.y;
		}
		return position;
	},

	checkDroppables: function(){
		var overed = this.droppables.filter(function(el, i){
			el = this.positions ? this.positions[i] : this.getDroppableCoordinates(el);
			var now = this.mouse.now;
			return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top);
		}, this).getLast();

		if (this.overed != overed){
			if (this.overed) this.fireEvent('leave', [this.element, this.overed]);
			if (overed) this.fireEvent('enter', [this.element, overed]);
			this.overed = overed;
		}
	},

	drag: function(event){
		this.parent(event);
		if (this.options.checkDroppables && this.droppables.length) this.checkDroppables();
	},

	stop: function(event){
		this.checkDroppables();
		this.fireEvent('drop', [this.element, this.overed, event]);
		this.overed = null;
		return this.parent(event);
	}

});

Element.implement({

	makeDraggable: function(options){
		var drag = new Drag.Move(this, options);
		this.store('dragger', drag);
		return drag;
	}

});


/*
---

script: Slider.js

name: Slider

description: Class for creating horizontal and vertical slider controls.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Element.Dimensions
  - /Class.Binds
  - /Drag
  - /Element.Measure

provides: [Slider]

...
*/

var Slider = new Class({

	Implements: [Events, Options],

	Binds: ['clickedElement', 'draggedKnob', 'scrolledElement'],

	options: {/*
		onTick: function(intPosition){},
		onChange: function(intStep){},
		onComplete: function(strStep){},*/
		onTick: function(position){
			this.setKnobPosition(position);
		},
		initialStep: 0,
		snap: false,
		offset: 0,
		range: false,
		wheel: false,
		steps: 100,
		mode: 'horizontal'
	},

	initialize: function(element, knob, options){
		this.setOptions(options);
		options = this.options;
		this.element = document.id(element);
		knob = this.knob = document.id(knob);
		this.previousChange = this.previousEnd = this.step = -1;

		var limit = {},
			modifiers = {x: false, y: false};

		switch (options.mode){
			case 'vertical':
				this.axis = 'y';
				this.property = 'top';
				this.offset = 'offsetHeight';
				break;
			case 'horizontal':
				this.axis = 'x';
				this.property = 'left';
				this.offset = 'offsetWidth';
		}

		this.setSliderDimensions();
		this.setRange(options.range);

		if (knob.getStyle('position') == 'static') knob.setStyle('position', 'relative');
		knob.setStyle(this.property, -options.offset);
		modifiers[this.axis] = this.property;
		limit[this.axis] = [-options.offset, this.full - options.offset];

		var dragOptions = {
			snap: 0,
			limit: limit,
			modifiers: modifiers,
			onDrag: this.draggedKnob,
			onStart: this.draggedKnob,
			onBeforeStart: (function(){
				this.isDragging = true;
			}).bind(this),
			onCancel: function(){
				this.isDragging = false;
			}.bind(this),
			onComplete: function(){
				this.isDragging = false;
				this.draggedKnob();
				this.end();
			}.bind(this)
		};
		if (options.snap) this.setSnap(dragOptions);

		this.drag = new Drag(knob, dragOptions);
		this.attach();
		if (options.initialStep != null) this.set(options.initialStep);
	},

	attach: function(){
		this.element.addEvent('mousedown', this.clickedElement);
		if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement);
		this.drag.attach();
		return this;
	},

	detach: function(){
		this.element.removeEvent('mousedown', this.clickedElement)
			.removeEvent('mousewheel', this.scrolledElement);
		this.drag.detach();
		return this;
	},

	autosize: function(){
		this.setSliderDimensions()
			.setKnobPosition(this.toPosition(this.step));
		this.drag.options.limit[this.axis] = [-this.options.offset, this.full - this.options.offset];
		if (this.options.snap) this.setSnap();
		return this;
	},

	setSnap: function(options){
		if (!options) options = this.drag.options;
		options.grid = Math.ceil(this.stepWidth);
		options.limit[this.axis][1] = this.full;
		return this;
	},

	setKnobPosition: function(position){
		if (this.options.snap) position = this.toPosition(this.step);
		this.knob.setStyle(this.property, position);
		return this;
	},

	setSliderDimensions: function(){
		this.full = this.element.measure(function(){
			this.half = this.knob[this.offset] / 2;
			return this.element[this.offset] - this.knob[this.offset] + (this.options.offset * 2);
		}.bind(this));
		return this;
	},

	set: function(step){
		if (!((this.range > 0) ^ (step < this.min))) step = this.min;
		if (!((this.range > 0) ^ (step > this.max))) step = this.max;

		this.step = Math.round(step);
		return this.checkStep()
			.fireEvent('tick', this.toPosition(this.step))
			.end();
	},

	setRange: function(range, pos){
		this.min = Array.pick([range[0], 0]);
		this.max = Array.pick([range[1], this.options.steps]);
		this.range = this.max - this.min;
		this.steps = this.options.steps || this.full;
		this.stepSize = Math.abs(this.range) / this.steps;
		this.stepWidth = this.stepSize * this.full / Math.abs(this.range);
		if (range) this.set(Array.pick([pos, this.step]).floor(this.min).max(this.max));
		return this;
	},

	clickedElement: function(event){
		if (this.isDragging || event.target == this.knob) return;

		var dir = this.range < 0 ? -1 : 1,
			position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;

		position = position.limit(-this.options.offset, this.full - this.options.offset);

		this.step = Math.round(this.min + dir * this.toStep(position));

		this.checkStep()
			.fireEvent('tick', position)
			.end();
	},

	scrolledElement: function(event){
		var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);
		this.set(this.step + (mode ? -1 : 1) * this.stepSize);
		event.stop();
	},

	draggedKnob: function(){
		var dir = this.range < 0 ? -1 : 1,
			position = this.drag.value.now[this.axis];

		position = position.limit(-this.options.offset, this.full -this.options.offset);

		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
	},

	checkStep: function(){
		var step = this.step;
		if (this.previousChange != step){
			this.previousChange = step;
			this.fireEvent('change', step);
		}
		return this;
	},

	end: function(){
		var step = this.step;
		if (this.previousEnd !== step){
			this.previousEnd = step;
			this.fireEvent('complete', step + '');
		}
		return this;
	},

	toStep: function(position){
		var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;
		return this.options.steps ? Math.round(step -= step % this.stepSize) : step;
	},

	toPosition: function(step){
		return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;
	}

});


/*
---

script: Sortables.js

name: Sortables

description: Class for creating a drag and drop sorting interface for lists of items.

license: MIT-style license

authors:
  - Tom Occhino

requires:
  - Core/Fx.Morph
  - /Drag.Move

provides: [Sortables]

...
*/

var Sortables = new Class({

	Implements: [Events, Options],

	options: {/*
		onSort: function(element, clone){},
		onStart: function(element, clone){},
		onComplete: function(element){},*/
		opacity: 1,
		clone: false,
		revert: false,
		handle: false,
		dragOptions: {}
	},

	initialize: function(lists, options){
		this.setOptions(options);

		this.elements = [];
		this.lists = [];
		this.idle = true;

		this.addLists($$(document.id(lists) || lists));

		if (!this.options.clone) this.options.revert = false;
		if (this.options.revert) this.effect = new Fx.Morph(null, Object.merge({
			duration: 250,
			link: 'cancel'
		}, this.options.revert));
	},

	attach: function(){
		this.addLists(this.lists);
		return this;
	},

	detach: function(){
		this.lists = this.removeLists(this.lists);
		return this;
	},

	addItems: function(){
		Array.flatten(arguments).each(function(element){
			this.elements.push(element);
			var start = element.retrieve('sortables:start', function(event){
				this.start.call(this, event, element);
			}.bind(this));
			(this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start);
		}, this);
		return this;
	},

	addLists: function(){
		Array.flatten(arguments).each(function(list){
			this.lists.include(list);
			this.addItems(list.getChildren());
		}, this);
		return this;
	},

	removeItems: function(){
		return $$(Array.flatten(arguments).map(function(element){
			this.elements.erase(element);
			var start = element.retrieve('sortables:start');
			(this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start);

			return element;
		}, this));
	},

	removeLists: function(){
		return $$(Array.flatten(arguments).map(function(list){
			this.lists.erase(list);
			this.removeItems(list.getChildren());

			return list;
		}, this));
	},

	getClone: function(event, element){
		if (!this.options.clone) return new Element(element.tagName).inject(document.body);
		if (typeOf(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);
		var clone = element.clone(true).setStyles({
			margin: 0,
			position: 'absolute',
			visibility: 'hidden',
			width: element.getStyle('width')
		}).addEvent('mousedown', function(event){
			element.fireEvent('mousedown', event);
		});
		//prevent the duplicated radio inputs from unchecking the real one
		if (clone.get('html').test('radio')){
			clone.getElements('input[type=radio]').each(function(input, i){
				input.set('name', 'clone_' + i);
				if (input.get('checked')) element.getElements('input[type=radio]')[i].set('checked', true);
			});
		}

		return clone.inject(this.list).setPosition(element.getPosition(element.getOffsetParent()));
	},

	getDroppables: function(){
		var droppables = this.list.getChildren().erase(this.clone).erase(this.element);
		if (!this.options.constrain) droppables.append(this.lists).erase(this.list);
		return droppables;
	},

	insert: function(dragging, element){
		var where = 'inside';
		if (this.lists.contains(element)){
			this.list = element;
			this.drag.droppables = this.getDroppables();
		} else {
			where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';
		}
		this.element.inject(element, where);
		this.fireEvent('sort', [this.element, this.clone]);
	},

	start: function(event, element){
		if (
			!this.idle ||
			event.rightClick ||
			['button', 'input', 'a', 'textarea'].contains(event.target.get('tag'))
		) return;

		this.idle = false;
		this.element = element;
		this.opacity = element.getStyle('opacity');
		this.list = element.getParent();
		this.clone = this.getClone(event, element);

		this.drag = new Drag.Move(this.clone, Object.merge({
			
			droppables: this.getDroppables()
		}, this.options.dragOptions)).addEvents({
			onSnap: function(){
				event.stop();
				this.clone.setStyle('visibility', 'visible');
				this.element.setStyle('opacity', this.options.opacity || 0);
				this.fireEvent('start', [this.element, this.clone]);
			}.bind(this),
			onEnter: this.insert.bind(this),
			onCancel: this.end.bind(this),
			onComplete: this.end.bind(this)
		});

		this.clone.inject(this.element, 'before');
		this.drag.start(event);
	},

	end: function(){
		this.drag.detach();
		this.element.setStyle('opacity', this.opacity);
		if (this.effect){
			var dim = this.element.getStyles('width', 'height'),
				clone = this.clone,
				pos = clone.computePosition(this.element.getPosition(this.clone.getOffsetParent()));

			var destroy = function(){
				this.removeEvent('cancel', destroy);
				clone.destroy();
			};

			this.effect.element = clone;
			this.effect.start({
				top: pos.top,
				left: pos.left,
				width: dim.width,
				height: dim.height,
				opacity: 0.25
			}).addEvent('cancel', destroy).chain(destroy);
		} else {
			this.clone.destroy();
		}
		this.reset();
	},

	reset: function(){
		this.idle = true;
		this.fireEvent('complete', this.element);
	},

	serialize: function(){
		var params = Array.link(arguments, {
			modifier: Type.isFunction,
			index: function(obj){
				return obj != null;
			}
		});
		var serial = this.lists.map(function(list){
			return list.getChildren().map(params.modifier || function(element){
				return element.get('id');
			}, this);
		}, this);

		var index = params.index;
		if (this.lists.length == 1) index = 0;
		return (index || index === 0) && index >= 0 && index < this.lists.length ? serial[index] : serial;
	}

});


/*
---

script: Request.JSONP.js

name: Request.JSONP

description: Defines Request.JSONP, a class for cross domain javascript via script injection.

license: MIT-style license

authors:
  - Aaron Newton
  - Guillermo Rauch
  - Arian Stolwijk

requires:
  - Core/Element
  - Core/Request
  - MooTools.More

provides: [Request.JSONP]

...
*/

Request.JSONP = new Class({

	Implements: [Chain, Events, Options],

	options: {/*
		onRequest: function(src, scriptElement){},
		onComplete: function(data){},
		onSuccess: function(data){},
		onCancel: function(){},
		onTimeout: function(){},
		onError: function(){}, */
		onRequest: function(src){
			if (this.options.log && window.console && console.log){
				console.log('JSONP retrieving script with url:' + src);
			}
		},
		onError: function(src){
			if (this.options.log && window.console && console.warn){
				console.warn('JSONP '+ src +' will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs');
			}
		},
		url: '',
		callbackKey: 'callback',
		injectScript: document.head,
		data: '',
		link: 'ignore',
		timeout: 0,
		log: false
	},

	initialize: function(options){
		this.setOptions(options);
	},

	send: function(options){
		if (!Request.prototype.check.call(this, options)) return this;
		this.running = true;

		var type = typeOf(options);
		if (type == 'string' || type == 'element') options = {data: options};
		options = Object.merge(this.options, options || {});

		var data = options.data;
		switch (typeOf(data)){
			case 'element': data = document.id(data).toQueryString(); break;
			case 'object': case 'hash': data = Object.toQueryString(data);
		}

		var index = this.index = Request.JSONP.counter++;

		var src = options.url +
			(options.url.test('\\?') ? '&' :'?') +
			(options.callbackKey) +
			'=Request.JSONP.request_map.request_'+ index +
			(data ? '&' + data : '');

		if (src.length > 2083) this.fireEvent('error', src);

		Request.JSONP.request_map['request_' + index] = function(){
			this.success(arguments, index);
		}.bind(this);

		var script = this.getScript(src).inject(options.injectScript);
		this.fireEvent('request', [src, script]);

		if (options.timeout) this.timeout.delay(options.timeout, this);

		return this;
	},

	getScript: function(src){
		if (!this.script) this.script = new Element('script', {
			type: 'text/javascript',
			async: true,
			src: src
		});
		return this.script;
	},

	success: function(args, index){
		if (!this.running) return;
		this.clear()
			.fireEvent('complete', args).fireEvent('success', args)
			.callChain();
	},

	cancel: function(){
		if (this.running) this.clear().fireEvent('cancel');
		return this;
	},

	isRunning: function(){
		return !!this.running;
	},

	clear: function(){
		this.running = false;
		if (this.script){
			this.script.destroy();
			this.script = null;
		}
		return this;
	},

	timeout: function(){
		if (this.running){
			this.running = false;
			this.fireEvent('timeout', [this.script.get('src'), this.script]).fireEvent('failure').cancel();
		}
		return this;
	}

});

Request.JSONP.counter = 0;
Request.JSONP.request_map = {};


/*
---

script: Request.Queue.js

name: Request.Queue

description: Controls several instances of Request and its variants to run only one request at a time.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Element
  - Core/Request
  - /Class.Binds

provides: [Request.Queue]

...
*/

Request.Queue = new Class({

	Implements: [Options, Events],

	Binds: ['attach', 'request', 'complete', 'cancel', 'success', 'failure', 'exception'],

	options: {/*
		onRequest: function(argsPassedToOnRequest){},
		onSuccess: function(argsPassedToOnSuccess){},
		onComplete: function(argsPassedToOnComplete){},
		onCancel: function(argsPassedToOnCancel){},
		onException: function(argsPassedToOnException){},
		onFailure: function(argsPassedToOnFailure){},
		onEnd: function(){},
		*/
		stopOnFailure: true,
		autoAdvance: true,
		concurrent: 1,
		requests: {}
	},

	initialize: function(options){
		var requests;
		if (options){
			requests = options.requests;
			delete options.requests;
		}
		this.setOptions(options);
		this.requests = {};
		this.queue = [];
		this.reqBinders = {};

		if (requests) this.addRequests(requests);
	},

	addRequest: function(name, request){
		this.requests[name] = request;
		this.attach(name, request);
		return this;
	},

	addRequests: function(obj){
		Object.each(obj, function(req, name){
			this.addRequest(name, req);
		}, this);
		return this;
	},

	getName: function(req){
		return Object.keyOf(this.requests, req);
	},

	attach: function(name, req){
		if (req._groupSend) return this;
		['request', 'complete', 'cancel', 'success', 'failure', 'exception'].each(function(evt){
			if (!this.reqBinders[name]) this.reqBinders[name] = {};
			this.reqBinders[name][evt] = function(){
				this['on' + evt.capitalize()].apply(this, [name, req].append(arguments));
			}.bind(this);
			req.addEvent(evt, this.reqBinders[name][evt]);
		}, this);
		req._groupSend = req.send;
		req.send = function(options){
			this.send(name, options);
			return req;
		}.bind(this);
		return this;
	},

	removeRequest: function(req){
		var name = typeOf(req) == 'object' ? this.getName(req) : req;
		if (!name && typeOf(name) != 'string') return this;
		req = this.requests[name];
		if (!req) return this;
		['request', 'complete', 'cancel', 'success', 'failure', 'exception'].each(function(evt){
			req.removeEvent(evt, this.reqBinders[name][evt]);
		}, this);
		req.send = req._groupSend;
		delete req._groupSend;
		return this;
	},

	getRunning: function(){
		return Object.filter(this.requests, function(r){
			return r.running;
		});
	},

	isRunning: function(){
		return !!(Object.keys(this.getRunning()).length);
	},

	send: function(name, options){
		var q = function(){
			this.requests[name]._groupSend(options);
			this.queue.erase(q);
		}.bind(this);

		q.name = name;
		if (Object.keys(this.getRunning()).length >= this.options.concurrent || (this.error && this.options.stopOnFailure)) this.queue.push(q);
		else q();
		return this;
	},

	hasNext: function(name){
		return (!name) ? !!this.queue.length : !!this.queue.filter(function(q){ return q.name == name; }).length;
	},

	resume: function(){
		this.error = false;
		(this.options.concurrent - Object.keys(this.getRunning()).length).times(this.runNext, this);
		return this;
	},

	runNext: function(name){
		if (!this.queue.length) return this;
		if (!name){
			this.queue[0]();
		} else {
			var found;
			this.queue.each(function(q){
				if (!found && q.name == name){
					found = true;
					q();
				}
			});
		}
		return this;
	},

	runAll: function(){
		this.queue.each(function(q){
			q();
		});
		return this;
	},

	clear: function(name){
		if (!name){
			this.queue.empty();
		} else {
			this.queue = this.queue.map(function(q){
				if (q.name != name) return q;
				else return false;
			}).filter(function(q){
				return q;
			});
		}
		return this;
	},

	cancel: function(name){
		this.requests[name].cancel();
		return this;
	},

	onRequest: function(){
		this.fireEvent('request', arguments);
	},

	onComplete: function(){
		this.fireEvent('complete', arguments);
		if (!this.queue.length) this.fireEvent('end');
	},

	onCancel: function(){
		if (this.options.autoAdvance && !this.error) this.runNext();
		this.fireEvent('cancel', arguments);
	},

	onSuccess: function(){
		if (this.options.autoAdvance && !this.error) this.runNext();
		this.fireEvent('success', arguments);
	},

	onFailure: function(){
		this.error = true;
		if (!this.options.stopOnFailure && this.options.autoAdvance) this.runNext();
		this.fireEvent('failure', arguments);
	},

	onException: function(){
		this.error = true;
		if (!this.options.stopOnFailure && this.options.autoAdvance) this.runNext();
		this.fireEvent('exception', arguments);
	}

});


/*
---

script: Request.Periodical.js

name: Request.Periodical

description: Requests the same URL to pull data from a server but increases the intervals if no data is returned to reduce the load

license: MIT-style license

authors:
  - Christoph Pojer

requires:
  - Core/Request
  - /MooTools.More

provides: [Request.Periodical]

...
*/

Request.implement({

	options: {
		initialDelay: 5000,
		delay: 5000,
		limit: 60000
	},

	startTimer: function(data){
		var fn = function(){
			if (!this.running) this.send({data: data});
		};
		this.lastDelay = this.options.initialDelay;
		this.timer = fn.delay(this.lastDelay, this);
		this.completeCheck = function(response){
			clearTimeout(this.timer);
			this.lastDelay = (response) ? this.options.delay : (this.lastDelay + this.options.delay).min(this.options.limit);
			this.timer = fn.delay(this.lastDelay, this);
		};
		return this.addEvent('complete', this.completeCheck);
	},

	stopTimer: function(){
		clearTimeout(this.timer);
		return this.removeEvent('complete', this.completeCheck);
	}

});


/*
---

script: Assets.js

name: Assets

description: Provides methods to dynamically load JavaScript, CSS, and Image files into the document.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Element.Event
  - /MooTools.More

provides: [Assets]

...
*/

var Asset = {

	javascript: function(source, properties){
		if (!properties) properties = {};

		var script = new Element('script', {src: source, type: 'text/javascript'}),
			doc = properties.document || document,
			load = properties.onload || properties.onLoad;

		delete properties.onload;
		delete properties.onLoad;
		delete properties.document;

		if (load){
			if (typeof script.onreadystatechange != 'undefined'){
				script.addEvent('readystatechange', function(){
					if (['loaded', 'complete'].contains(this.readyState)) load.call(this);
				});
			} else {
				script.addEvent('load', load);
			}
		}

		return script.set(properties).inject(doc.head);
	},

	css: function(source, properties){
		if (!properties) properties = {};

		var link = new Element('link', {
			rel: 'stylesheet',
			media: 'screen',
			type: 'text/css',
			href: source
		});

		var load = properties.onload || properties.onLoad,
			doc = properties.document || document;

		delete properties.onload;
		delete properties.onLoad;
		delete properties.document;

		if (load) link.addEvent('load', load);
		return link.set(properties).inject(doc.head);
	},

	image: function(source, properties){
		if (!properties) properties = {};

		var image = new Image(),
			element = document.id(image) || new Element('img');

		['load', 'abort', 'error'].each(function(name){
			var type = 'on' + name,
				cap = 'on' + name.capitalize(),
				event = properties[type] || properties[cap] || function(){};

			delete properties[cap];
			delete properties[type];

			image[type] = function(){
				if (!image) return;
				if (!element.parentNode){
					element.width = image.width;
					element.height = image.height;
				}
				image = image.onload = image.onabort = image.onerror = null;
				event.delay(1, element, element);
				element.fireEvent(name, element, 1);
			};
		});

		image.src = element.src = source;
		if (image && image.complete) image.onload.delay(1);
		return element.set(properties);
	},

	images: function(sources, options){
		sources = Array.from(sources);

		var fn = function(){},
			counter = 0;

		options = Object.merge({
			onComplete: fn,
			onProgress: fn,
			onError: fn,
			properties: {}
		}, options);

		return new Elements(sources.map(function(source, index){
			return Asset.image(source, Object.append(options.properties, {
				onload: function(){
					counter++;
					options.onProgress.call(this, counter, index, source);
					if (counter == sources.length) options.onComplete();
				},
				onerror: function(){
					counter++;
					options.onError.call(this, counter, index, source);
					if (counter == sources.length) options.onComplete();
				}
			}));
		}));
	}

};


/*
---

script: Color.js

name: Color

description: Class for creating and manipulating colors in JavaScript. Supports HSB -> RGB Conversions and vice versa.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Array
  - Core/String
  - Core/Number
  - Core/Hash
  - Core/Function
  - MooTools.More

provides: [Color]

...
*/

(function(){

var Color = this.Color = new Type('Color', function(color, type){
	if (arguments.length >= 3){
		type = 'rgb'; color = Array.slice(arguments, 0, 3);
	} else if (typeof color == 'string'){
		if (color.match(/rgb/)) color = color.rgbToHex().hexToRgb(true);
		else if (color.match(/hsb/)) color = color.hsbToRgb();
		else color = color.hexToRgb(true);
	}
	type = type || 'rgb';
	switch (type){
		case 'hsb':
			var old = color;
			color = color.hsbToRgb();
			color.hsb = old;
		break;
		case 'hex': color = color.hexToRgb(true); break;
	}
	color.rgb = color.slice(0, 3);
	color.hsb = color.hsb || color.rgbToHsb();
	color.hex = color.rgbToHex();
	return Object.append(color, this);
});

Color.implement({

	mix: function(){
		var colors = Array.slice(arguments);
		var alpha = (typeOf(colors.getLast()) == 'number') ? colors.pop() : 50;
		var rgb = this.slice();
		colors.each(function(color){
			color = new Color(color);
			for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));
		});
		return new Color(rgb, 'rgb');
	},

	invert: function(){
		return new Color(this.map(function(value){
			return 255 - value;
		}));
	},

	setHue: function(value){
		return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');
	},

	setSaturation: function(percent){
		return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');
	},

	setBrightness: function(percent){
		return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');
	}

});

this.$RGB = function(r, g, b){
	return new Color([r, g, b], 'rgb');
};

this.$HSB = function(h, s, b){
	return new Color([h, s, b], 'hsb');
};

this.$HEX = function(hex){
	return new Color(hex, 'hex');
};

Array.implement({

	rgbToHsb: function(){
		var red = this[0],
				green = this[1],
				blue = this[2],
				hue = 0;
		var max = Math.max(red, green, blue),
				min = Math.min(red, green, blue);
		var delta = max - min;
		var brightness = max / 255,
				saturation = (max != 0) ? delta / max : 0;
		if (saturation != 0){
			var rr = (max - red) / delta;
			var gr = (max - green) / delta;
			var br = (max - blue) / delta;
			if (red == max) hue = br - gr;
			else if (green == max) hue = 2 + rr - br;
			else hue = 4 + gr - rr;
			hue /= 6;
			if (hue < 0) hue++;
		}
		return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)];
	},

	hsbToRgb: function(){
		var br = Math.round(this[2] / 100 * 255);
		if (this[1] == 0){
			return [br, br, br];
		} else {
			var hue = this[0] % 360;
			var f = hue % 60;
			var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255);
			var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255);
			var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255);
			switch (Math.floor(hue / 60)){
				case 0: return [br, t, p];
				case 1: return [q, br, p];
				case 2: return [p, br, t];
				case 3: return [p, q, br];
				case 4: return [t, p, br];
				case 5: return [br, p, q];
			}
		}
		return false;
	}

});

String.implement({

	rgbToHsb: function(){
		var rgb = this.match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHsb() : null;
	},

	hsbToRgb: function(){
		var hsb = this.match(/\d{1,3}/g);
		return (hsb) ? hsb.hsbToRgb() : null;
	}

});

})();



/*
---

script: Group.js

name: Group

description: Class for monitoring collections of events

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Events
  - /MooTools.More

provides: [Group]

...
*/

(function(){

this.Group = new Class({

	initialize: function(){
		this.instances = Array.flatten(arguments);
	},

	addEvent: function(type, fn){
		var instances = this.instances,
			len = instances.length,
			togo = len,
			args = new Array(len),
			self = this;

		instances.each(function(instance, i){
			instance.addEvent(type, function(){
				if (!args[i]) togo--;
				args[i] = arguments;
				if (!togo){
					fn.call(self, instances, instance, args);
					togo = len;
					args = new Array(len);
				}
			});
		});
	}

});

})();


/*
---

script: Hash.Cookie.js

name: Hash.Cookie

description: Class for creating, reading, and deleting Cookies in JSON format.

license: MIT-style license

authors:
  - Valerio Proietti
  - Aaron Newton

requires:
  - Core/Cookie
  - Core/JSON
  - /MooTools.More
  - /Hash

provides: [Hash.Cookie]

...
*/

Hash.Cookie = new Class({

	Extends: Cookie,

	options: {
		autoSave: true
	},

	initialize: function(name, options){
		this.parent(name, options);
		this.load();
	},

	save: function(){
		var value = JSON.encode(this.hash);
		if (!value || value.length > 4096) return false; //cookie would be truncated!
		if (value == '{}') this.dispose();
		else this.write(value);
		return true;
	},

	load: function(){
		this.hash = new Hash(JSON.decode(this.read(), true));
		return this;
	}

});

Hash.each(Hash.prototype, function(method, name){
	if (typeof method == 'function') Hash.Cookie.implement(name, function(){
		var value = method.apply(this.hash, arguments);
		if (this.options.autoSave) this.save();
		return value;
	});
});


/*
---
name: Table
description: LUA-Style table implementation.
license: MIT-style license
authors:
  - Valerio Proietti
requires: [Core/Array]
provides: [Table]
...
*/

(function(){

var Table = this.Table = function(){

	this.length = 0;
	var keys = [],
	    values = [];
	
	this.set = function(key, value){
		var index = keys.indexOf(key);
		if (index == -1){
			var length = keys.length;
			keys[length] = key;
			values[length] = value;
			this.length++;
		} else {
			values[index] = value;
		}
		return this;
	};

	this.get = function(key){
		var index = keys.indexOf(key);
		return (index == -1) ? null : values[index];
	};

	this.erase = function(key){
		var index = keys.indexOf(key);
		if (index != -1){
			this.length--;
			keys.splice(index, 1);
			return values.splice(index, 1)[0];
		}
		return null;
	};

	this.each = this.forEach = function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++) fn.call(bind, keys[i], values[i], this);
	};
	
};

if (this.Type) new Type('Table', Table);

})();


/*
---

script: HtmlTable.js

name: HtmlTable

description: Builds table elements with methods to add rows.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - Core/Options
  - Core/Events
  - /Class.Occlude

provides: [HtmlTable]

...
*/

var HtmlTable = new Class({

	Implements: [Options, Events, Class.Occlude],

	options: {
		properties: {
			cellpadding: 0,
			cellspacing: 0,
			border: 0
		},
		rows: [],
		headers: [],
		footers: []
	},

	property: 'HtmlTable',

	initialize: function(){
		var params = Array.link(arguments, {options: Type.isObject, table: Type.isElement, id: Type.isString});
		this.setOptions(params.options);
		if (!params.table && params.id) params.table = document.id(params.id);
		this.element = params.table || new Element('table', this.options.properties);
		if (this.occlude()) return this.occluded;
		this.build();
	},

	build: function(){
		this.element.store('HtmlTable', this);

		this.body = document.id(this.element.tBodies[0]) || new Element('tbody').inject(this.element);
		$$(this.body.rows);

		if (this.options.headers.length) this.setHeaders(this.options.headers);
		else this.thead = document.id(this.element.tHead);

		if (this.thead) this.head = this.getHead();
		if (this.options.footers.length) this.setFooters(this.options.footers);

		this.tfoot = document.id(this.element.tFoot);
		if (this.tfoot) this.foot = document.id(this.tfoot.rows[0]);

		this.options.rows.each(function(row){
			this.push(row);
		}, this);
	},

	toElement: function(){
		return this.element;
	},

	empty: function(){
		this.body.empty();
		return this;
	},

	set: function(what, items){
		var target = (what == 'headers') ? 'tHead' : 'tFoot',
			lower = target.toLowerCase();

		this[lower] = (document.id(this.element[target]) || new Element(lower).inject(this.element, 'top')).empty();
		var data = this.push(items, {}, this[lower], what == 'headers' ? 'th' : 'td');

		if (what == 'headers') this.head = this.getHead();
		else this.foot = this.getHead();

		return data;
	},

	getHead: function(){
		var rows = this.thead.rows;
		return rows.length > 1 ? $$(rows) : rows.length ? document.id(rows[0]) : false;
	},

	setHeaders: function(headers){
		this.set('headers', headers);
		return this;
	},

	setFooters: function(footers){
		this.set('footers', footers);
		return this;
	},

	update: function(tr, row, tag){
		var tds = tr.getChildren(tag || 'td'), last = tds.length - 1;

		row.each(function(data, index){
			var td = tds[index] || new Element(tag || 'td').inject(tr),
				content = (data ? data.content : '') || data,
				type = typeOf(content);

			if (data && data.properties) td.set(data.properties);
			if (/(element(s?)|array|collection)/.test(type)) td.empty().adopt(content);
			else td.set('html', content);

			if (index > last) tds.push(td);
			else tds[index] = td;
		});

		return {
			tr: tr,
			tds: tds
		};
	},

	push: function(row, rowProperties, target, tag, where){
		if (typeOf(row) == 'element' && row.get('tag') == 'tr'){
			row.inject(target || this.body, where);
			return {
				tr: row,
				tds: row.getChildren('td')
			};
		}
		return this.update(new Element('tr', rowProperties).inject(target || this.body, where), row, tag);
	},

	pushMany: function(rows, rowProperties, target, tag, where){
		return rows.map(function(row){
			return this.push(row, rowProperties, target, tag, where);
		}, this);
	}

});


['adopt', 'inject', 'wraps', 'grab', 'replaces', 'dispose'].each(function(method){
	HtmlTable.implement(method, function(){
		this.element[method].apply(this.element, arguments);
		return this;
	});
});




/*
---

script: HtmlTable.Zebra.js

name: HtmlTable.Zebra

description: Builds a stripy table with methods to add rows.

license: MIT-style license

authors:
  - Harald Kirschner
  - Aaron Newton

requires:
  - /HtmlTable
  - /Element.Shortcuts
  - /Class.refactor

provides: [HtmlTable.Zebra]

...
*/

HtmlTable = Class.refactor(HtmlTable, {

	options: {
		classZebra: 'table-tr-odd',
		zebra: true,
		zebraOnlyVisibleRows: true
	},

	initialize: function(){
		this.previous.apply(this, arguments);
		if (this.occluded) return this.occluded;
		if (this.options.zebra) this.updateZebras();
	},

	updateZebras: function(){
		var index = 0;
		Array.each(this.body.rows, function(row){
			if (!this.options.zebraOnlyVisibleRows || row.isDisplayed()){
				this.zebra(row, index++);
			}
		}, this);
	},

	setRowStyle: function(row, i){
		if (this.previous) this.previous(row, i);
		this.zebra(row, i);
	},

	zebra: function(row, i){
		return row[((i % 2) ? 'remove' : 'add')+'Class'](this.options.classZebra);
	},

	push: function(){
		var pushed = this.previous.apply(this, arguments);
		if (this.options.zebra) this.updateZebras();
		return pushed;
	}

});


/*
---

script: HtmlTable.Sort.js

name: HtmlTable.Sort

description: Builds a stripy, sortable table with methods to add rows.

license: MIT-style license

authors:
  - Harald Kirschner
  - Aaron Newton
  - Jacob Thornton

requires:
  - Core/Hash
  - /HtmlTable
  - /Class.refactor
  - /Element.Delegation
  - /String.Extras
  - /Date

provides: [HtmlTable.Sort]

...
*/

HtmlTable = Class.refactor(HtmlTable, {

	options: {/*
		onSort: function(){}, */
		sortIndex: 0,
		sortReverse: false,
		parsers: [],
		defaultParser: 'string',
		classSortable: 'table-sortable',
		classHeadSort: 'table-th-sort',
		classHeadSortRev: 'table-th-sort-rev',
		classNoSort: 'table-th-nosort',
		classGroupHead: 'table-tr-group-head',
		classGroup: 'table-tr-group',
		classCellSort: 'table-td-sort',
		classSortSpan: 'table-th-sort-span',
		sortable: false,
		thSelector: 'th'
	},

	initialize: function (){
		this.previous.apply(this, arguments);
		if (this.occluded) return this.occluded;
		this.sorted = {index: null, dir: 1};
		if (!this.bound) this.bound = {};
		this.bound.headClick = this.headClick.bind(this);
		this.sortSpans = new Elements();
		if (this.options.sortable){
			this.enableSort();
			if (this.options.sortIndex != null) this.sort(this.options.sortIndex, this.options.sortReverse);
		}
	},

	attachSorts: function(attach){
		this.detachSorts();
		if (attach !== false) this.element.addEvent('click:relay(' + this.options.thSelector + ')', this.bound.headClick);
	},

	detachSorts: function(){
		this.element.removeEvents('click:relay(' + this.options.thSelector + ')');
	},

	setHeaders: function(){
		this.previous.apply(this, arguments);
		if (this.sortEnabled) this.setParsers();
	},

	setParsers: function(){
		this.parsers = this.detectParsers();
	},

	detectParsers: function(){
		return this.head && this.head.getElements(this.options.thSelector).flatten().map(this.detectParser, this);
	},

	detectParser: function(cell, index){
		if (cell.hasClass(this.options.classNoSort) || cell.retrieve('htmltable-parser')) return cell.retrieve('htmltable-parser');
		var thDiv = new Element('div');
		thDiv.adopt(cell.childNodes).inject(cell);
		var sortSpan = new Element('span', {'class': this.options.classSortSpan}).inject(thDiv, 'top');
		this.sortSpans.push(sortSpan);
		var parser = this.options.parsers[index],
			rows = this.body.rows,
			cancel;
		switch (typeOf(parser)){
			case 'function': parser = {convert: parser}; cancel = true; break;
			case 'string': parser = parser; cancel = true; break;
		}
		if (!cancel){
			HtmlTable.ParserPriority.some(function(parserName){
				var current = HtmlTable.Parsers[parserName],
					match = current.match;
				if (!match) return false;
				for (var i = 0, j = rows.length; i < j; i++){
					var cell = document.id(rows[i].cells[index]),
						text = cell ? cell.get('html').clean() : '';
					if (text && match.test(text)){
						parser = current;
						return true;
					}
				}
			});
		}
		if (!parser) parser = this.options.defaultParser;
		cell.store('htmltable-parser', parser);
		return parser;
	},

	headClick: function(event, el){
		if (!this.head || el.hasClass(this.options.classNoSort)) return;
		return this.sort(Array.indexOf(this.head.getElements(this.options.thSelector).flatten(), el) % this.body.rows[0].cells.length);
	},

	serialize: function(){
		var previousSerialization = this.previous.apply(this, arguments) || {};
		if (this.options.sortable){
			previousSerialization.sortIndex = this.sorted.index;
			previousSerialization.sortReverse = this.sorted.reverse;
		}
		return previousSerialization;
	},

	restore: function(tableState){
		if (this.options.sortable && tableState.sortIndex){
			this.sort(tableState.sortIndex, tableState.sortReverse);
		}
		this.previous.apply(this, arguments);
	},

	setSortedState: function(index, reverse){
		if (reverse != null) this.sorted.reverse = reverse;
		else if (this.sorted.index == index) this.sorted.reverse = !this.sorted.reverse;
		else this.sorted.reverse = this.sorted.index == null;

		if (index != null) this.sorted.index = index;
	},

	setHeadSort: function(sorted){
		var head = $$(!this.head.length ? this.head.cells[this.sorted.index] : this.head.map(function(row){
			return row.getElements(this.options.thSelector)[this.sorted.index];
		}, this).clean());
		if (!head.length) return;
		if (sorted){
			head.addClass(this.options.classHeadSort);
			if (this.sorted.reverse) head.addClass(this.options.classHeadSortRev);
			else head.removeClass(this.options.classHeadSortRev);
		} else {
			head.removeClass(this.options.classHeadSort).removeClass(this.options.classHeadSortRev);
		}
	},

	setRowSort: function(data, pre){
		var count = data.length,
			body = this.body,
			group,
			rowIndex;

		while (count){
			var item = data[--count],
				position = item.position,
				row = body.rows[position];

			if (row.disabled) continue;
			if (!pre){
				group = this.setGroupSort(group, row, item);
				this.setRowStyle(row, count);
			}
			body.appendChild(row);

			for (rowIndex = 0; rowIndex < count; rowIndex++){
				if (data[rowIndex].position > position) data[rowIndex].position--;
			}
		}
	},

	setRowStyle: function(row, i){
		this.previous(row, i);
		row.cells[this.sorted.index].addClass(this.options.classCellSort);
	},

	setGroupSort: function(group, row, item){
		if (group == item.value) row.removeClass(this.options.classGroupHead).addClass(this.options.classGroup);
		else row.removeClass(this.options.classGroup).addClass(this.options.classGroupHead);
		return item.value;
	},

	getParser: function(){
		var parser = this.parsers[this.sorted.index];
		return typeOf(parser) == 'string' ? HtmlTable.Parsers[parser] : parser;
	},

	sort: function(index, reverse, pre){
		if (!this.head) return;

		if (!pre){
			this.clearSort();
			this.setSortedState(index, reverse);
			this.setHeadSort(true);
		}

		var parser = this.getParser();
		if (!parser) return;

		var rel;
		if (!Browser.ie){
			rel = this.body.getParent();
			this.body.dispose();
		}

		var data = this.parseData(parser).sort(function(a, b){
			if (a.value === b.value) return 0;
			return a.value > b.value ? 1 : -1;
		});

		if (this.sorted.reverse == (parser == HtmlTable.Parsers['input-checked'])) data.reverse(true);
		this.setRowSort(data, pre);

		if (rel) rel.grab(this.body);
		this.fireEvent('stateChanged');
		return this.fireEvent('sort', [this.body, this.sorted.index]);
	},

	parseData: function(parser){
		return Array.map(this.body.rows, function(row, i){
			var value = parser.convert.call(document.id(row.cells[this.sorted.index]));
			return {
				position: i,
				value: value
			};
		}, this);
	},

	clearSort: function(){
		this.setHeadSort(false);
		this.body.getElements('td').removeClass(this.options.classCellSort);
	},

	reSort: function(){
		if (this.sortEnabled) this.sort.call(this, this.sorted.index, this.sorted.reverse);
		return this;
	},

	enableSort: function(){
		this.element.addClass(this.options.classSortable);
		this.attachSorts(true);
		this.setParsers();
		this.sortEnabled = true;
		return this;
	},

	disableSort: function(){
		this.element.removeClass(this.options.classSortable);
		this.attachSorts(false);
		this.sortSpans.each(function(span){
			span.destroy();
		});
		this.sortSpans.empty();
		this.sortEnabled = false;
		return this;
	}

});

HtmlTable.ParserPriority = ['date', 'input-checked', 'input-value', 'float', 'number'];

HtmlTable.Parsers = {

	'date': {
		match: /^\d{2}[-\/ ]\d{2}[-\/ ]\d{2,4}$/,
		convert: function(){
			var d = Date.parse(this.get('text').stripTags());
			return (typeOf(d) == 'date') ? d.format('db') : '';
		},
		type: 'date'
	},
	'input-checked': {
		match: / type="(radio|checkbox)" /,
		convert: function(){
			return this.getElement('input').checked;
		}
	},
	'input-value': {
		match: /<input/,
		convert: function(){
			return this.getElement('input').value;
		}
	},
	'number': {
		match: /^\d+[^\d.,]*$/,
		convert: function(){
			return this.get('text').stripTags().toInt();
		},
		number: true
	},
	'numberLax': {
		match: /^[^\d]+\d+$/,
		convert: function(){
			return this.get('text').replace(/[^-?^0-9]/, '').stripTags().toInt();
		},
		number: true
	},
	'float': {
		match: /^[\d]+\.[\d]+/,
		convert: function(){
			return this.get('text').replace(/[^-?^\d.]/, '').stripTags().toFloat();
		},
		number: true
	},
	'floatLax': {
		match: /^[^\d]+[\d]+\.[\d]+$/,
		convert: function(){
			return this.get('text').replace(/[^-?^\d.]/, '').stripTags();
		},
		number: true
	},
	'string': {
		match: null,
		convert: function(){
			return this.get('text').stripTags().toLowerCase();
		}
	},
	'title': {
		match: null,
		convert: function(){
			return this.title;
		}
	}

};



HtmlTable.defineParsers = function(parsers){
	HtmlTable.Parsers = Object.append(HtmlTable.Parsers, parsers);
	for (var parser in parsers){
		HtmlTable.ParserPriority.unshift(parser);
	}
};


/*
---

script: Keyboard.js

name: Keyboard

description: KeyboardEvents used to intercept events on a class for keyboard and format modifiers in a specific order so as to make alt+shift+c the same as shift+alt+c.

license: MIT-style license

authors:
  - Perrin Westrich
  - Aaron Newton
  - Scott Kyle

requires:
  - Core/Events
  - Core/Options
  - Core/Element.Event
  - Element.Event.Pseudos.Keys

provides: [Keyboard]

...
*/

(function(){

	var Keyboard = this.Keyboard = new Class({

		Extends: Events,

		Implements: [Options],

		options: {/*
			onActivate: function(){},
			onDeactivate: function(){},*/
			defaultEventType: 'keydown',
			active: false,
			manager: null,
			events: {},
			nonParsedEvents: ['activate', 'deactivate', 'onactivate', 'ondeactivate', 'changed', 'onchanged']
		},

		initialize: function(options){
			if (options && options.manager){
				this._manager = options.manager;
				delete options.manager;
			}
			this.setOptions(options);
			this._setup();
		},

		addEvent: function(type, fn, internal){
			return this.parent(Keyboard.parse(type, this.options.defaultEventType, this.options.nonParsedEvents), fn, internal);
		},

		removeEvent: function(type, fn){
			return this.parent(Keyboard.parse(type, this.options.defaultEventType, this.options.nonParsedEvents), fn);
		},

		toggleActive: function(){
			return this[this.isActive() ? 'deactivate' : 'activate']();
		},

		activate: function(instance){
			if (instance){
				if (instance.isActive()) return this;
				//if we're stealing focus, store the last keyboard to have it so the relinquish command works
				if (this._activeKB && instance != this._activeKB){
					this.previous = this._activeKB;
					this.previous.fireEvent('deactivate');
				}
				//if we're enabling a child, assign it so that events are now passed to it
				this._activeKB = instance.fireEvent('activate');
				Keyboard.manager.fireEvent('changed');
			} else if (this._manager){
				//else we're enabling ourselves, we must ask our parent to do it for us
				this._manager.activate(this);
			}
			return this;
		},

		isActive: function(){
			return this._manager ? (this._manager._activeKB == this) : (Keyboard.manager == this);
		},

		deactivate: function(instance){
			if (instance){
				if (instance === this._activeKB){
					this._activeKB = null;
					instance.fireEvent('deactivate');
					Keyboard.manager.fireEvent('changed');
				}
			} else if (this._manager){
				this._manager.deactivate(this);
			}
			return this;
		},

		relinquish: function(){
			if (this.isActive() && this._manager && this._manager.previous) this._manager.activate(this._manager.previous);
			else this.deactivate();
			return this;
		},

		//management logic
		manage: function(instance){
			if (instance._manager) instance._manager.drop(instance);
			this._instances.push(instance);
			instance._manager = this;
			if (!this._activeKB) this.activate(instance);
			return this;
		},

		drop: function(instance){
			instance.relinquish();
			this._instances.erase(instance);
			if (this._activeKB == instance){
				if (this.previous && this._instances.contains(this.previous)) this.activate(this.previous);
				else this._activeKB = this._instances[0];
			}
			return this;
		},

		trace: function(){
			Keyboard.trace(this);
		},

		each: function(fn){
			Keyboard.each(this, fn);
		},

		/*
			PRIVATE METHODS
		*/

		_instances: [],

		_disable: function(instance){
			if (this._activeKB == instance) this._activeKB = null;
		},

		_setup: function(){
			this.addEvents(this.options.events);
			//if this is the root manager, nothing manages it
			if (Keyboard.manager && !this._manager) Keyboard.manager.manage(this);
			if (this.options.active) this.activate();
			else this.relinquish();
		},

		_handle: function(event, type){
			//Keyboard.stop(event) prevents key propagation
			if (event.preventKeyboardPropagation) return;

			var bubbles = !!this._manager;
			if (bubbles && this._activeKB){
				this._activeKB._handle(event, type);
				if (event.preventKeyboardPropagation) return;
			}
			this.fireEvent(type, event);

			if (!bubbles && this._activeKB) this._activeKB._handle(event, type);
		}

	});

	var parsed = {};
	var modifiers = ['shift', 'control', 'alt', 'meta'];
	var regex = /^(?:shift|control|ctrl|alt|meta)$/;

	Keyboard.parse = function(type, eventType, ignore){
		if (ignore && ignore.contains(type.toLowerCase())) return type;

		type = type.toLowerCase().replace(/^(keyup|keydown):/, function($0, $1){
			eventType = $1;
			return '';
		});

		if (!parsed[type]){
			var key, mods = {};
			type.split('+').each(function(part){
				if (regex.test(part)) mods[part] = true;
				else key = part;
			});

			mods.control = mods.control || mods.ctrl; // allow both control and ctrl

			var keys = [];
			modifiers.each(function(mod){
				if (mods[mod]) keys.push(mod);
			});

			if (key) keys.push(key);
			parsed[type] = keys.join('+');
		}

		return eventType + ':keys(' + parsed[type] + ')';
	};

	Keyboard.each = function(keyboard, fn){
		var current = keyboard || Keyboard.manager;
		while (current){
			fn.run(current);
			current = current._activeKB;
		}
	};

	Keyboard.stop = function(event){
		event.preventKeyboardPropagation = true;
	};

	Keyboard.manager = new Keyboard({
		active: true
	});

	Keyboard.trace = function(keyboard){
		keyboard = keyboard || Keyboard.manager;
		var hasConsole = window.console && console.log;
		if (hasConsole) console.log('the following items have focus: ');
		Keyboard.each(keyboard, function(current){
			if (hasConsole) console.log(document.id(current.widget) || current.wiget || current);
		});
	};

	var handler = function(event){
		var keys = [];
		modifiers.each(function(mod){
			if (event[mod]) keys.push(mod);
		});

		if (!regex.test(event.key)) keys.push(event.key);
		Keyboard.manager._handle(event, event.type + ':keys(' + keys.join('+') + ')');
	};

	document.addEvents({
		'keyup': handler,
		'keydown': handler
	});

})();


/*
---

script: Keyboard.Extras.js

name: Keyboard.Extras

description: Enhances Keyboard by adding the ability to name and describe keyboard shortcuts, and the ability to grab shortcuts by name and bind the shortcut to different keys.

license: MIT-style license

authors:
  - Perrin Westrich

requires:
  - /Keyboard
  - /MooTools.More

provides: [Keyboard.Extras]

...
*/
Keyboard.prototype.options.nonParsedEvents.combine(['rebound', 'onrebound']);

Keyboard.implement({

	/*
		shortcut should be in the format of:
		{
			'keys': 'shift+s', // the default to add as an event.
			'description': 'blah blah blah', // a brief description of the functionality.
			'handler': function(){} // the event handler to run when keys are pressed.
		}
	*/
	addShortcut: function(name, shortcut){
		this._shortcuts = this._shortcuts || [];
		this._shortcutIndex = this._shortcutIndex || {};

		shortcut.getKeyboard = Function.from(this);
		shortcut.name = name;
		this._shortcutIndex[name] = shortcut;
		this._shortcuts.push(shortcut);
		if (shortcut.keys) this.addEvent(shortcut.keys, shortcut.handler);
		return this;
	},

	addShortcuts: function(obj){
		for (var name in obj) this.addShortcut(name, obj[name]);
		return this;
	},

	removeShortcut: function(name){
		var shortcut = this.getShortcut(name);
		if (shortcut && shortcut.keys){
			this.removeEvent(shortcut.keys, shortcut.handler);
			delete this._shortcutIndex[name];
			this._shortcuts.erase(shortcut);
		}
		return this;
	},

	removeShortcuts: function(names){
		names.each(this.removeShortcut, this);
		return this;
	},

	getShortcuts: function(){
		return this._shortcuts || [];
	},

	getShortcut: function(name){
		return (this._shortcutIndex || {})[name];
	}

});

Keyboard.rebind = function(newKeys, shortcuts){
	Array.from(shortcuts).each(function(shortcut){
		shortcut.getKeyboard().removeEvent(shortcut.keys, shortcut.handler);
		shortcut.getKeyboard().addEvent(newKeys, shortcut.handler);
		shortcut.keys = newKeys;
		shortcut.getKeyboard().fireEvent('rebound');
	});
};


Keyboard.getActiveShortcuts = function(keyboard){
	var activeKBS = [], activeSCS = [];
	Keyboard.each(keyboard, [].push.bind(activeKBS));
	activeKBS.each(function(kb){ activeSCS.extend(kb.getShortcuts()); });
	return activeSCS;
};

Keyboard.getShortcut = function(name, keyboard, opts){
	opts = opts || {};
	var shortcuts = opts.many ? [] : null,
		set = opts.many ? function(kb){
				var shortcut = kb.getShortcut(name);
				if (shortcut) shortcuts.push(shortcut);
			} : function(kb){
				if (!shortcuts) shortcuts = kb.getShortcut(name);
			};
	Keyboard.each(keyboard, set);
	return shortcuts;
};

Keyboard.getShortcuts = function(name, keyboard){
	return Keyboard.getShortcut(name, keyboard, { many: true });
};


/*
---

script: HtmlTable.Select.js

name: HtmlTable.Select

description: Builds a stripy, sortable table with methods to add rows. Rows can be selected with the mouse or keyboard navigation.

license: MIT-style license

authors:
  - Harald Kirschner
  - Aaron Newton

requires:
  - /Keyboard
  - /Keyboard.Extras
  - /HtmlTable
  - /Class.refactor
  - /Element.Delegation
  - /Element.Shortcuts

provides: [HtmlTable.Select]

...
*/

HtmlTable = Class.refactor(HtmlTable, {

	options: {
		/*onRowFocus: function(){},
		onRowUnfocus: function(){},*/
		useKeyboard: true,
		classRowSelected: 'table-tr-selected',
		classRowHovered: 'table-tr-hovered',
		classSelectable: 'table-selectable',
		shiftForMultiSelect: true,
		allowMultiSelect: true,
		selectable: false,
		selectHiddenRows: false
	},

	initialize: function(){
		this.previous.apply(this, arguments);
		if (this.occluded) return this.occluded;

		this.selectedRows = new Elements();

		if (!this.bound) this.bound = {};
		this.bound.mouseleave = this.mouseleave.bind(this);
		this.bound.clickRow = this.clickRow.bind(this);
		this.bound.activateKeyboard = function(){
			if (this.keyboard && this.selectEnabled) this.keyboard.activate();
		}.bind(this);

		if (this.options.selectable) this.enableSelect();
	},

	empty: function(){
		this.selectNone();
		return this.previous();
	},

	enableSelect: function(){
		this.selectEnabled = true;
		this.attachSelects();
		this.element.addClass(this.options.classSelectable);
		return this;
	},

	disableSelect: function(){
		this.selectEnabled = false;
		this.attachSelects(false);
		this.element.removeClass(this.options.classSelectable);
		return this;
	},

	push: function(){
		var ret = this.previous.apply(this, arguments);
		this.updateSelects();
		return ret;
	},

	toggleRow: function(row){
		return this[(this.isSelected(row) ? 'de' : '') + 'selectRow'](row);
	},

	selectRow: function(row, _nocheck){
		//private variable _nocheck: boolean whether or not to confirm the row is in the table body
		//added here for optimization when selecting ranges
		if (this.isSelected(row) || (!_nocheck && !this.body.getChildren().contains(row))) return;
		if (!this.options.allowMultiSelect) this.selectNone();

		if (!this.isSelected(row)){
			this.selectedRows.push(row);
			row.addClass(this.options.classRowSelected);
			this.fireEvent('rowFocus', [row, this.selectedRows]);
			this.fireEvent('stateChanged');
		}

		this.focused = row;
		document.clearSelection();

		return this;
	},

	isSelected: function(row){
		return this.selectedRows.contains(row);
	},

	getSelected: function(){
		return this.selectedRows;
	},

	getSelected: function(){
		return this.selectedRows;
	},

	serialize: function(){
		var previousSerialization = this.previous.apply(this, arguments) || {};
		if (this.options.selectable){
			previousSerialization.selectedRows = this.selectedRows.map(function(row){
				return Array.indexOf(this.body.rows, row);
			}.bind(this));
		}
		return previousSerialization;
	},

	restore: function(tableState){
		if (this.options.selectable && tableState.selectedRows){
			tableState.selectedRows.each(function(index){
				this.selectRow(this.body.rows[index]);
			}.bind(this));
		}
		this.previous.apply(this, arguments);
	},

	deselectRow: function(row, _nocheck){
		if (!this.isSelected(row) || (!_nocheck && !this.body.getChildren().contains(row))) return;

		this.selectedRows = new Elements(Array.from(this.selectedRows).erase(row));
		row.removeClass(this.options.classRowSelected);
		this.fireEvent('rowUnfocus', [row, this.selectedRows]);
		this.fireEvent('stateChanged');
		return this;
	},

	selectAll: function(selectNone){
		if (!selectNone && !this.options.allowMultiSelect) return;
		this.selectRange(0, this.body.rows.length, selectNone);
		return this;
	},

	selectNone: function(){
		return this.selectAll(true);
	},

	selectRange: function(startRow, endRow, _deselect){
		if (!this.options.allowMultiSelect && !_deselect) return;
		var method = _deselect ? 'deselectRow' : 'selectRow',
			rows = Array.clone(this.body.rows);

		if (typeOf(startRow) == 'element') startRow = rows.indexOf(startRow);
		if (typeOf(endRow) == 'element') endRow = rows.indexOf(endRow);
		endRow = endRow < rows.length - 1 ? endRow : rows.length - 1;

		if (endRow < startRow){
			var tmp = startRow;
			startRow = endRow;
			endRow = tmp;
		}

		for (var i = startRow; i <= endRow; i++){
			if (this.options.selectHiddenRows || rows[i].isDisplayed()) this[method](rows[i], true);
		}

		return this;
	},

	deselectRange: function(startRow, endRow){
		this.selectRange(startRow, endRow, true);
	},

	getSelected: function(){
		return this.selectedRows;
	},

/*
	Private methods:
*/

	enterRow: function(row){
		if (this.hovered) this.hovered = this.leaveRow(this.hovered);
		this.hovered = row.addClass(this.options.classRowHovered);
	},

	leaveRow: function(row){
		row.removeClass(this.options.classRowHovered);
	},

	updateSelects: function(){
		Array.each(this.body.rows, function(row){
			var binders = row.retrieve('binders');
			if (!binders && !this.selectEnabled) return;
			if (!binders){
				binders = {
					mouseenter: this.enterRow.pass([row], this),
					mouseleave: this.leaveRow.pass([row], this)
				};
				row.store('binders', binders);
			}
			if (this.selectEnabled) row.addEvents(binders);
			else row.removeEvents(binders);
		}, this);
	},

	shiftFocus: function(offset, event){
		if (!this.focused) return this.selectRow(this.body.rows[0], event);
		var to = this.getRowByOffset(offset, this.options.selectHiddenRows);
		if (to === null || this.focused == this.body.rows[to]) return this;
		this.toggleRow(this.body.rows[to], event);
	},

	clickRow: function(event, row){
		var selecting = (event.shift || event.meta || event.control) && this.options.shiftForMultiSelect;
		if (!selecting && !(event.rightClick && this.isSelected(row) && this.options.allowMultiSelect)) this.selectNone();

		if (event.rightClick) this.selectRow(row);
		else this.toggleRow(row);

		if (event.shift){
			this.selectRange(this.rangeStart || this.body.rows[0], row, this.rangeStart ? !this.isSelected(row) : true);
			this.focused = row;
		}
		this.rangeStart = row;
	},

	getRowByOffset: function(offset, includeHiddenRows){
		if (!this.focused) return 0;
		var index = Array.indexOf(this.body.rows, this.focused);
		if ((index == 0 && offset < 0) || (index == this.body.rows.length -1 && offset > 0)) return null;
		if (includeHiddenRows){
			index += offset;
		} else {
			var limit = 0,
			    count = 0;
			if (offset > 0){
				while (count < offset && index < this.body.rows.length -1){
					if (this.body.rows[++index].isDisplayed()) count++;
				}
			} else {
				while (count > offset && index > 0){
					if (this.body.rows[--index].isDisplayed()) count--;
				}
			}
		}
		return index;
	},

	attachSelects: function(attach){
		attach = attach != null ? attach : true;

		var method = attach ? 'addEvents' : 'removeEvents';
		this.element[method]({
			mouseleave: this.bound.mouseleave,
			click: this.bound.activateKeyboard
		});

		this.body[method]({
			'click:relay(tr)': this.bound.clickRow,
			'contextmenu:relay(tr)': this.bound.clickRow
		});

		if (this.options.useKeyboard || this.keyboard){
			if (!this.keyboard) this.keyboard = new Keyboard();
			if (!this.selectKeysDefined){
				this.selectKeysDefined = true;
				var timer, held;

				var move = function(offset){
					var mover = function(e){
						clearTimeout(timer);
						e.preventDefault();
						var to = this.body.rows[this.getRowByOffset(offset, this.options.selectHiddenRows)];
						if (e.shift && to && this.isSelected(to)){
							this.deselectRow(this.focused);
							this.focused = to;
						} else {
							if (to && (!this.options.allowMultiSelect || !e.shift)){
								this.selectNone();
							}
							this.shiftFocus(offset, e);
						}

						if (held){
							timer = mover.delay(100, this, e);
						} else {
							timer = (function(){
								held = true;
								mover(e);
							}).delay(400);
						}
					}.bind(this);
					return mover;
				}.bind(this);

				var clear = function(){
					clearTimeout(timer);
					held = false;
				};

				this.keyboard.addEvents({
					'keydown:shift+up': move(-1),
					'keydown:shift+down': move(1),
					'keyup:shift+up': clear,
					'keyup:shift+down': clear,
					'keyup:up': clear,
					'keyup:down': clear
				});

				var shiftHint = '';
				if (this.options.allowMultiSelect && this.options.shiftForMultiSelect && this.options.useKeyboard){
					shiftHint = " (Shift multi-selects).";
				}

				this.keyboard.addShortcuts({
					'Select Previous Row': {
						keys: 'up',
						shortcut: 'up arrow',
						handler: move(-1),
						description: 'Select the previous row in the table.' + shiftHint
					},
					'Select Next Row': {
						keys: 'down',
						shortcut: 'down arrow',
						handler: move(1),
						description: 'Select the next row in the table.' + shiftHint
					}
				});

			}
			this.keyboard[attach ? 'activate' : 'deactivate']();
		}
		this.updateSelects();
	},

	mouseleave: function(){
		if (this.hovered) this.leaveRow(this.hovered);
	}

});


/*
---

script: Scroller.js

name: Scroller

description: Class which scrolls the contents of any Element (including the window) when the mouse reaches the Element's boundaries.

license: MIT-style license

authors:
  - Valerio Proietti

requires:
  - Core/Events
  - Core/Options
  - Core/Element.Event
  - Core/Element.Dimensions
  - MooTools.More

provides: [Scroller]

...
*/

var Scroller = new Class({

	Implements: [Events, Options],

	options: {
		area: 20,
		velocity: 1,
		onChange: function(x, y){
			this.element.scrollTo(x, y);
		},
		fps: 50
	},

	initialize: function(element, options){
		this.setOptions(options);
		this.element = document.id(element);
		this.docBody = document.id(this.element.getDocument().body);
		this.listener = (typeOf(this.element) != 'element') ? this.docBody : this.element;
		this.timer = null;
		this.bound = {
			attach: this.attach.bind(this),
			detach: this.detach.bind(this),
			getCoords: this.getCoords.bind(this)
		};
	},

	start: function(){
		this.listener.addEvents({
			mouseover: this.bound.attach,
			mouseleave: this.bound.detach
		});
		return this;
	},

	stop: function(){
		this.listener.removeEvents({
			mouseover: this.bound.attach,
			mouseleave: this.bound.detach
		});
		this.detach();
		this.timer = clearInterval(this.timer);
		return this;
	},

	attach: function(){
		this.listener.addEvent('mousemove', this.bound.getCoords);
	},

	detach: function(){
		this.listener.removeEvent('mousemove', this.bound.getCoords);
		this.timer = clearInterval(this.timer);
	},

	getCoords: function(event){
		this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;
		if (!this.timer) this.timer = this.scroll.periodical(Math.round(1000 / this.options.fps), this);
	},

	scroll: function(){
		var size = this.element.getSize(),
			scroll = this.element.getScroll(),
			pos = this.element != this.docBody ? this.element.getOffsets() : {x: 0, y:0},
			scrollSize = this.element.getScrollSize(),
			change = {x: 0, y: 0},
			top = this.options.area.top || this.options.area,
			bottom = this.options.area.bottom || this.options.area;
		for (var z in this.page){
			if (this.page[z] < (top + pos[z]) && scroll[z] != 0){
				change[z] = (this.page[z] - top - pos[z]) * this.options.velocity;
			} else if (this.page[z] + bottom > (size[z] + pos[z]) && scroll[z] + size[z] != scrollSize[z]){
				change[z] = (this.page[z] - size[z] + bottom - pos[z]) * this.options.velocity;
			}
			change[z] = change[z].round();
		}
		if (change.y || change.x) this.fireEvent('change', [scroll.x + change.x, scroll.y + change.y]);
	}

});


/*
---

script: Tips.js

name: Tips

description: Class for creating nice tips that follow the mouse cursor when hovering an element.

license: MIT-style license

authors:
  - Valerio Proietti
  - Christoph Pojer
  - Luis Merino

requires:
  - Core/Options
  - Core/Events
  - Core/Element.Event
  - Core/Element.Style
  - Core/Element.Dimensions
  - /MooTools.More

provides: [Tips]

...
*/

(function(){

var read = function(option, element){
	return (option) ? (typeOf(option) == 'function' ? option(element) : element.get(option)) : '';
};

this.Tips = new Class({

	Implements: [Events, Options],

	options: {/*
		id: null,
		onAttach: function(element){},
		onDetach: function(element){},
		onBound: function(coords){},*/
		onShow: function(){
			this.tip.setStyle('display', 'block');
		},
		onHide: function(){
			this.tip.setStyle('display', 'none');
		},
		title: 'title',
		text: function(element){
			return element.get('rel') || element.get('href');
		},
		showDelay: 100,
		hideDelay: 100,
		className: 'tip-wrap',
		offset: {x: 16, y: 16},
		windowPadding: {x:0, y:0},
		fixed: false,
		waiAria: true
	},

	initialize: function(){
		var params = Array.link(arguments, {
			options: Type.isObject,
			elements: function(obj){
				return obj != null;
			}
		});
		this.setOptions(params.options);
		if (params.elements) this.attach(params.elements);
		this.container = new Element('div', {'class': 'tip'});

		if (this.options.id){
			this.container.set('id', this.options.id);
			if (this.options.waiAria) this.attachWaiAria();
		}
	},

	toElement: function(){
		if (this.tip) return this.tip;

		this.tip = new Element('div', {
			'class': this.options.className,
			styles: {
				position: 'absolute',
				top: 0,
				left: 0
			}
		}).adopt(
			new Element('div', {'class': 'tip-top'}),
			this.container,
			new Element('div', {'class': 'tip-bottom'})
		);

		return this.tip;
	},

	attachWaiAria: function(){
		var id = this.options.id;
		this.container.set('role', 'tooltip');

		if (!this.waiAria){
			this.waiAria = {
				show: function(element){
					if (id) element.set('aria-describedby', id);
					this.container.set('aria-hidden', 'false');
				},
				hide: function(element){
					if (id) element.erase('aria-describedby');
					this.container.set('aria-hidden', 'true');
				}
			};
		}
		this.addEvents(this.waiAria);
	},

	detachWaiAria: function(){
		if (this.waiAria){
			this.container.erase('role');
			this.container.erase('aria-hidden');
			this.removeEvents(this.waiAria);
		}
	},

	attach: function(elements){
		$$(elements).each(function(element){
			var title = read(this.options.title, element),
				text = read(this.options.text, element);

			element.set('title', '').store('tip:native', title).retrieve('tip:title', title);
			element.retrieve('tip:text', text);
			this.fireEvent('attach', [element]);

			var events = ['enter', 'leave'];
			if (!this.options.fixed) events.push('move');

			events.each(function(value){
				var event = element.retrieve('tip:' + value);
				if (!event) event = function(event){
					this['element' + value.capitalize()].apply(this, [event, element]);
				}.bind(this);

				element.store('tip:' + value, event).addEvent('mouse' + value, event);
			}, this);
		}, this);

		return this;
	},

	detach: function(elements){
		$$(elements).each(function(element){
			['enter', 'leave', 'move'].each(function(value){
				element.removeEvent('mouse' + value, element.retrieve('tip:' + value)).eliminate('tip:' + value);
			});

			this.fireEvent('detach', [element]);

			if (this.options.title == 'title'){ // This is necessary to check if we can revert the title
				var original = element.retrieve('tip:native');
				if (original) element.set('title', original);
			}
		}, this);

		return this;
	},

	elementEnter: function(event, element){
		clearTimeout(this.timer);
		this.timer = (function(){
			this.container.empty();

			['title', 'text'].each(function(value){
				var content = element.retrieve('tip:' + value);
				var div = this['_' + value + 'Element'] = new Element('div', {
						'class': 'tip-' + value
					}).inject(this.container);
				if (content) this.fill(div, content);
			}, this);
			this.show(element);
			this.position((this.options.fixed) ? {page: element.getPosition()} : event);
		}).delay(this.options.showDelay, this);
	},

	elementLeave: function(event, element){
		clearTimeout(this.timer);
		this.timer = this.hide.delay(this.options.hideDelay, this, element);
		this.fireForParent(event, element);
	},

	setTitle: function(title){
		if (this._titleElement){
			this._titleElement.empty();
			this.fill(this._titleElement, title);
		}
		return this;
	},

	setText: function(text){
		if (this._textElement){
			this._textElement.empty();
			this.fill(this._textElement, text);
		}
		return this;
	},

	fireForParent: function(event, element){
		element = element.getParent();
		if (!element || element == document.body) return;
		if (element.retrieve('tip:enter')) element.fireEvent('mouseenter', event);
		else this.fireForParent(event, element);
	},

	elementMove: function(event, element){
		this.position(event);
	},

	position: function(event){
		if (!this.tip) document.id(this);

		var size = window.getSize(), scroll = window.getScroll(),
			tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight},
			props = {x: 'left', y: 'top'},
			bounds = {y: false, x2: false, y2: false, x: false},
			obj = {};

		for (var z in props){
			obj[props[z]] = event.page[z] + this.options.offset[z];
			if (obj[props[z]] < 0) bounds[z] = true;
			if ((obj[props[z]] + tip[z] - scroll[z]) > size[z] - this.options.windowPadding[z]){
				obj[props[z]] = event.page[z] - this.options.offset[z] - tip[z];
				bounds[z+'2'] = true;
			}
		}

		this.fireEvent('bound', bounds);
		this.tip.setStyles(obj);
	},

	fill: function(element, contents){
		if (typeof contents == 'string') element.set('html', contents);
		else element.adopt(contents);
	},

	show: function(element){
		if (!this.tip) document.id(this);
		if (!this.tip.getParent()) this.tip.inject(document.body);
		this.fireEvent('show', [this.tip, element]);
	},

	hide: function(element){
		if (!this.tip) document.id(this);
		this.fireEvent('hide', [this.tip, element]);
	}

});

})();


/*
---

script: Locale.Set.From.js

name: Locale.Set.From

description: Provides an alternative way to create Locale.Set objects.

license: MIT-style license

authors:
  - Tim Wienk

requires:
  - Core/JSON
  - /Locale

provides: Locale.Set.From

...
*/

(function(){

var parsers = {
	'json': JSON.decode
};

Locale.Set.defineParser = function(name, fn){
	parsers[name] = fn;
};

Locale.Set.from = function(set, type){
	if (instanceOf(set, Locale.Set)) return set;

	if (!type && typeOf(set) == 'string') type = 'json';
	if (parsers[type]) set = parsers[type](set);

	var locale = new Locale.Set;

	locale.sets = set.sets || {};

	if (set.inherits){
		locale.inherits.locales = Array.from(set.inherits.locales);
		locale.inherits.sets = set.inherits.sets || {};
	}

	return locale;
};

})();


/*
---

name: Locale.ar.Date

description: Date messages for Arabic.

license: MIT-style license

authors:
  - Chafik Barbar

requires:
  - /Locale

provides: [Locale.ar.Date]

...
*/

Locale.define('ar', 'Date', {

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M'

});


/*
---

name: Locale.ar.Form.Validator

description: Form Validator messages for Arabic.

license: MIT-style license

authors:
  - Chafik Barbar

requires:
  - /Locale

provides: [Locale.ar.Form.Validator]

...
*/

Locale.define('ar', 'FormValidator', {

	required: 'هذا الحقل مطلوب.',
	minLength: 'رجاءً إدخال {minLength} أحرف على الأقل (تم إدخال {length} أحرف).',
	maxLength: 'الرجاء عدم إدخال أكثر من {maxLength} أحرف (تم إدخال {length} أحرف).',
	integer: 'الرجاء إدخال عدد صحيح في هذا الحقل. أي رقم ذو كسر عشري أو مئوي (مثال 1.25 ) غير مسموح.',
	numeric: 'الرجاء إدخال قيم رقمية في هذا الحقل (مثال "1" أو "1.1" أو "-1" أو "-1.1").',
	digits: 'الرجاء أستخدام قيم رقمية وعلامات ترقيمية فقط في هذا الحقل (مثال, رقم هاتف مع نقطة أو شحطة)',
	alpha: 'الرجاء أستخدام أحرف فقط (ا-ي) في هذا الحقل. أي فراغات أو علامات غير مسموحة.',
	alphanum: 'الرجاء أستخدام أحرف فقط (ا-ي) أو أرقام (0-9) فقط في هذا الحقل. أي فراغات أو علامات غير مسموحة.',
	dateSuchAs: 'الرجاء إدخال تاريخ صحيح كالتالي {date}',
	dateInFormatMDY: 'الرجاء إدخال تاريخ صحيح (مثال, 31-12-1999)',
	email: 'الرجاء إدخال بريد إلكتروني صحيح.',
	url: 'الرجاء إدخال عنوان إلكتروني صحيح مثل http://www.example.com',
	currencyDollar: 'الرجاء إدخال قيمة $ صحيحة. مثال, 100.00$',
	oneRequired: 'الرجاء إدخال قيمة في أحد هذه الحقول على الأقل.',
	errorPrefix: 'خطأ: ',
	warningPrefix: 'تحذير: '

});


/*
---

name: Locale.ca-CA.Date

description: Date messages for Catalan.

license: MIT-style license

authors:
  - Ãlfons Sanchez

requires:
  - /Locale

provides: [Locale.ca-CA.Date]

...
*/

Locale.define('ca-CA', 'Date', {

	months: ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 'Juli', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'],
	months_abbr: ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'],
	days: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte'],
	days_abbr: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 0,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'fa menys d`un minut',
	minuteAgo: 'fa un minut',
	minutesAgo: 'fa {delta} minuts',
	hourAgo: 'fa un hora',
	hoursAgo: 'fa unes {delta} hores',
	dayAgo: 'fa un dia',
	daysAgo: 'fa {delta} dies',

	lessThanMinuteUntil: 'menys d`un minut des d`ara',
	minuteUntil: 'un minut des d`ara',
	minutesUntil: '{delta} minuts des d`ara',
	hourUntil: 'un hora des d`ara',
	hoursUntil: 'unes {delta} hores des d`ara',
	dayUntil: '1 dia des d`ara',
	daysUntil: '{delta} dies des d`ara'

});


/*
---

name: Locale.ca-CA.Form.Validator

description: Form Validator messages for Catalan.

license: MIT-style license

authors:
  - Miquel Hudin
  - Ãlfons Sanchez

requires:
  - /Locale

provides: [Locale.ca-CA.Form.Validator]

...
*/

Locale.define('ca-CA', 'FormValidator', {

	required: 'Aquest camp es obligatori.',
	minLength: 'Per favor introdueix al menys {minLength} caracters (has introduit {length} caracters).',
	maxLength: 'Per favor introdueix no mes de {maxLength} caracters (has introduit {length} caracters).',
	integer: 'Per favor introdueix un nombre enter en aquest camp. Nombres amb decimals (p.e. 1,25) no estan permesos.',
	numeric: 'Per favor introdueix sols valors numerics en aquest camp (p.e. "1" o "1,1" o "-1" o "-1,1").',
	digits: 'Per favor usa sols numeros i puntuacio en aquest camp (per exemple, un nombre de telefon amb guions i punts no esta permes).',
	alpha: 'Per favor utilitza lletres nomes (a-z) en aquest camp. No s´admiteixen espais ni altres caracters.',
	alphanum: 'Per favor, utilitza nomes lletres (a-z) o numeros (0-9) en aquest camp. No s´admiteixen espais ni altres caracters.',
	dateSuchAs: 'Per favor introdueix una data valida com {date}',
	dateInFormatMDY: 'Per favor introdueix una data valida com DD/MM/YYYY (p.e. "31/12/1999")',
	email: 'Per favor, introdueix una adreça de correu electronic valida. Per exemple, "fred@domain.com".',
	url: 'Per favor introdueix una URL valida com http://www.example.com.',
	currencyDollar: 'Per favor introdueix una quantitat valida de €. Per exemple €100,00 .',
	oneRequired: 'Per favor introdueix alguna cosa per al menys una d´aquestes entrades.',
	errorPrefix: 'Error: ',
	warningPrefix: 'Avis: ',

	// Form.Validator.Extras
	noSpace: 'No poden haver espais en aquesta entrada.',
	reqChkByNode: 'No hi han elements seleccionats.',
	requiredChk: 'Aquest camp es obligatori.',
	reqChkByName: 'Per favor selecciona una {label}.',
	match: 'Aquest camp necessita coincidir amb el camp {matchName}',
	startDate: 'la data de inici',
	endDate: 'la data de fi',
	currendDate: 'la data actual',
	afterDate: 'La data deu ser igual o posterior a {label}.',
	beforeDate: 'La data deu ser igual o anterior a {label}.',
	startMonth: 'Per favor selecciona un mes d´orige',
	sameMonth: 'Aquestes dos dates deuen estar dins del mateix mes - deus canviar una o altra.'

});


/*
---

name: Locale.cs-CZ.Date

description: Date messages for Czech.

license: MIT-style license

authors:
  - Jan Černý chemiX
  - Christopher Zukowski

requires:
  - /Locale

provides: [Locale.cs-CZ.Date]

...
*/
(function(){

// Czech language pluralization rules, see http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
// one -> n is 1;            1
// few -> n in 2..4;         2-4
// other -> everything else  0, 5-999, 1.31, 2.31, 5.31...
var pluralize = function (n, one, few, other){
	if (n == 1) return one;
	else if (n == 2 || n == 3 || n == 4) return few;
	else return other;
};

Locale.define('cs-CZ', 'Date', {

	months: ['Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'],
	months_abbr: ['ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'],
	days: ['Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota'],
	days_abbr: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],

	// Culture's date order: DD.MM.YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H:%M',
	AM: 'dop.',
	PM: 'odp.',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'před chvílí',
	minuteAgo: 'přibližně před minutou',
	minutesAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'minutou', 'minutami', 'minutami'); },
	hourAgo: 'přibližně před hodinou',
	hoursAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'hodinou', 'hodinami', 'hodinami'); },
	dayAgo: 'před dnem',
	daysAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'dnem', 'dny', 'dny'); },
	weekAgo: 'před týdnem',
	weeksAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'týdnem', 'týdny', 'týdny'); },
	monthAgo: 'před měsícem',
	monthsAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'měsícem', 'měsíci', 'měsíci'); },
	yearAgo: 'před rokem',
	yearsAgo: function(delta){ return 'před {delta} ' + pluralize(delta, 'rokem', 'lety', 'lety'); },

	lessThanMinuteUntil: 'za chvíli',
	minuteUntil: 'přibližně za minutu',
	minutesUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'minutu', 'minuty', 'minut'); },
	hourUntil: 'přibližně za hodinu',
	hoursUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'hodinu', 'hodiny', 'hodin'); },
	dayUntil: 'za den',
	daysUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'den', 'dny', 'dnů'); },
	weekUntil: 'za týden',
	weeksUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'týden', 'týdny', 'týdnů'); },
	monthUntil: 'za měsíc',
	monthsUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'měsíc', 'měsíce', 'měsíců'); },
	yearUntil: 'za rok',
	yearsUntil: function(delta){ return 'za {delta} ' + pluralize(delta, 'rok', 'roky', 'let'); }
});

})();


/*
---

name: Locale.cs-CZ.Form.Validator

description: Form Validator messages for Czech.

license: MIT-style license

authors:
  - Jan Černý chemiX

requires:
  - /Locale

provides: [Locale.cs-CZ.Form.Validator]

...
*/

Locale.define('cs-CZ', 'FormValidator', {

	required: 'Tato položka je povinná.',
	minLength: 'Zadejte prosím alespoň {minLength} znaků (napsáno {length} znaků).',
	maxLength: 'Zadejte prosím méně než {maxLength} znaků (nápsáno {length} znaků).',
	integer: 'Zadejte prosím celé číslo. Desetinná čísla (např. 1.25) nejsou povolena.',
	numeric: 'Zadejte jen číselné hodnoty (tj. "1" nebo "1.1" nebo "-1" nebo "-1.1").',
	digits: 'Zadejte prosím pouze čísla a interpunkční znaménka(například telefonní číslo s pomlčkami nebo tečkami je povoleno).',
	alpha: 'Zadejte prosím pouze písmena (a-z). Mezery nebo jiné znaky nejsou povoleny.',
	alphanum: 'Zadejte prosím pouze písmena (a-z) nebo číslice (0-9). Mezery nebo jiné znaky nejsou povoleny.',
	dateSuchAs: 'Zadejte prosím platné datum jako {date}',
	dateInFormatMDY: 'Zadejte prosím platné datum jako MM / DD / RRRR (tj. "12/31/1999")',
	email: 'Zadejte prosím platnou e-mailovou adresu. Například "fred@domain.com".',
	url: 'Zadejte prosím platnou URL adresu jako http://www.example.com.',
	currencyDollar: 'Zadejte prosím platnou částku. Například $100.00.',
	oneRequired: 'Zadejte prosím alespoň jednu hodnotu pro tyto položky.',
	errorPrefix: 'Chyba: ',
	warningPrefix: 'Upozornění: ',

	// Form.Validator.Extras
	noSpace: 'V této položce nejsou povoleny mezery',
	reqChkByNode: 'Nejsou vybrány žádné položky.',
	requiredChk: 'Tato položka je vyžadována.',
	reqChkByName: 'Prosím vyberte {label}.',
	match: 'Tato položka se musí shodovat s položkou {matchName}',
	startDate: 'datum zahájení',
	endDate: 'datum ukončení',
	currendDate: 'aktuální datum',
	afterDate: 'Datum by mělo být stejné nebo větší než {label}.',
	beforeDate: 'Datum by mělo být stejné nebo menší než {label}.',
	startMonth: 'Vyberte počáteční měsíc.',
	sameMonth: 'Tyto dva datumy musí být ve stejném měsíci - změňte jeden z nich.',
	creditcard: 'Zadané číslo kreditní karty je neplatné. Prosím opravte ho. Bylo zadáno {length} čísel.'

});


/*
---

name: Locale.da-DK.Date

description: Date messages for Danish.

license: MIT-style license

authors:
  - Martin Overgaard
  - Henrik Hansen

requires:
  - /Locale

provides: [Locale.da-DK.Date]

...
*/

Locale.define('da-DK', 'Date', {

	months: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December'],
	months_abbr: ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],
	days: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],
	days_abbr: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],

	// Culture's date order: DD-MM-YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d-%m-%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'mindre end et minut siden',
	minuteAgo: 'omkring et minut siden',
	minutesAgo: '{delta} minutter siden',
	hourAgo: 'omkring en time siden',
	hoursAgo: 'omkring {delta} timer siden',
	dayAgo: '1 dag siden',
	daysAgo: '{delta} dage siden',
	weekAgo: '1 uge siden',
	weeksAgo: '{delta} uger siden',
	monthAgo: '1 måned siden',
	monthsAgo: '{delta} måneder siden',
	yearAgo: '1 år siden',
	yearsAgo: '{delta} år siden',

	lessThanMinuteUntil: 'mindre end et minut fra nu',
	minuteUntil: 'omkring et minut fra nu',
	minutesUntil: '{delta} minutter fra nu',
	hourUntil: 'omkring en time fra nu',
	hoursUntil: 'omkring {delta} timer fra nu',
	dayUntil: '1 dag fra nu',
	daysUntil: '{delta} dage fra nu',
	weekUntil: '1 uge fra nu',
	weeksUntil: '{delta} uger fra nu',
	monthUntil: '1 måned fra nu',
	monthsUntil: '{delta} måneder fra nu',
	yearUntil: '1 år fra nu',
	yearsUntil: '{delta} år fra nu'

});


/*
---

name: Locale.da-DK.Form.Validator

description: Form Validator messages for Danish.

license: MIT-style license

authors:
  - Martin Overgaard

requires:
  - /Locale

provides: [Locale.da-DK.Form.Validator]

...
*/

Locale.define('da-DK', 'FormValidator', {

	required: 'Feltet skal udfyldes.',
	minLength: 'Skriv mindst {minLength} tegn (du skrev {length} tegn).',
	maxLength: 'Skriv maksimalt {maxLength} tegn (du skrev {length} tegn).',
	integer: 'Skriv et tal i dette felt. Decimal tal (f.eks. 1.25) er ikke tilladt.',
	numeric: 'Skriv kun tal i dette felt (i.e. "1" eller "1.1" eller "-1" eller "-1.1").',
	digits: 'Skriv kun tal og tegnsætning i dette felt (eksempel, et telefon nummer med bindestreg eller punktum er tilladt).',
	alpha: 'Skriv kun bogstaver (a-z) i dette felt. Mellemrum og andre tegn er ikke tilladt.',
	alphanum: 'Skriv kun bogstaver (a-z) eller tal (0-9) i dette felt. Mellemrum og andre tegn er ikke tilladt.',
	dateSuchAs: 'Skriv en gyldig dato som {date}',
	dateInFormatMDY: 'Skriv dato i formatet DD-MM-YYYY (f.eks. "31-12-1999")',
	email: 'Skriv en gyldig e-mail adresse. F.eks "fred@domain.com".',
	url: 'Skriv en gyldig URL adresse. F.eks "http://www.example.com".',
	currencyDollar: 'Skriv et gldigt beløb. F.eks Kr.100.00 .',
	oneRequired: 'Et eller flere af felterne i denne formular skal udfyldes.',
	errorPrefix: 'Fejl: ',
	warningPrefix: 'Advarsel: ',

	// Form.Validator.Extras
	noSpace: 'Der må ikke benyttes mellemrum i dette felt.',
	reqChkByNode: 'Foretag et valg.',
	requiredChk: 'Dette felt skal udfyldes.',
	reqChkByName: 'Vælg en {label}.',
	match: 'Dette felt skal matche {matchName} feltet',
	startDate: 'start dato',
	endDate: 'slut dato',
	currendDate: 'dags dato',
	afterDate: 'Datoen skal være større end eller lig med {label}.',
	beforeDate: 'Datoen skal være mindre end eller lig med {label}.',
	startMonth: 'Vælg en start måned',
	sameMonth: 'De valgte datoer skal være i samme måned - skift en af dem.'

});


/*
---

name: Locale.de-DE.Date

description: Date messages for German.

license: MIT-style license

authors:
  - Christoph Pojer
  - Frank Rossi
  - Ulrich Petri
  - Fabian Beiner

requires:
  - /Locale

provides: [Locale.de-DE.Date]

...
*/

Locale.define('de-DE', 'Date', {

	months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
	months_abbr: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
	days: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
	days_abbr: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],

	// Culture's date order: DD.MM.YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H:%M',
	AM: 'vormittags',
	PM: 'nachmittags',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'vor weniger als einer Minute',
	minuteAgo: 'vor einer Minute',
	minutesAgo: 'vor {delta} Minuten',
	hourAgo: 'vor einer Stunde',
	hoursAgo: 'vor {delta} Stunden',
	dayAgo: 'vor einem Tag',
	daysAgo: 'vor {delta} Tagen',
	weekAgo: 'vor einer Woche',
	weeksAgo: 'vor {delta} Wochen',
	monthAgo: 'vor einem Monat',
	monthsAgo: 'vor {delta} Monaten',
	yearAgo: 'vor einem Jahr',
	yearsAgo: 'vor {delta} Jahren',

	lessThanMinuteUntil: 'in weniger als einer Minute',
	minuteUntil: 'in einer Minute',
	minutesUntil: 'in {delta} Minuten',
	hourUntil: 'in ca. einer Stunde',
	hoursUntil: 'in ca. {delta} Stunden',
	dayUntil: 'in einem Tag',
	daysUntil: 'in {delta} Tagen',
	weekUntil: 'in einer Woche',
	weeksUntil: 'in {delta} Wochen',
	monthUntil: 'in einem Monat',
	monthsUntil: 'in {delta} Monaten',
	yearUntil: 'in einem Jahr',
	yearsUntil: 'in {delta} Jahren'

});


/*
---

name: Locale.de-CH.Date

description: Date messages for German (Switzerland).

license: MIT-style license

authors:
  - Michael van der Weg

requires:
  - /Locale
  - /Locale.de-DE.Date

provides: [Locale.de-CH.Date]

...
*/

Locale.define('de-CH').inherit('de-DE', 'Date');


/*
---

name: Locale.de-CH.Form.Validator

description: Form Validator messages for German (Switzerland).

license: MIT-style license

authors:
  - Michael van der Weg

requires:
  - /Locale

provides: [Locale.de-CH.Form.Validator]

...
*/

Locale.define('de-CH', 'FormValidator', {

	required: 'Dieses Feld ist obligatorisch.',
	minLength: 'Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',
	maxLength: 'Bitte geben Sie nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',
	integer: 'Geben Sie bitte eine ganze Zahl ein. Dezimalzahlen (z.B. 1.25) sind nicht erlaubt.',
	numeric: 'Geben Sie bitte nur Zahlenwerte in dieses Eingabefeld ein (z.B. &quot;1&quot;, &quot;1.1&quot;, &quot;-1&quot; oder &quot;-1.1&quot;).',
	digits: 'Benutzen Sie bitte nur Zahlen und Satzzeichen in diesem Eingabefeld (erlaubt ist z.B. eine Telefonnummer mit Bindestrichen und Punkten).',
	alpha: 'Benutzen Sie bitte nur Buchstaben (a-z) in diesem Feld. Leerzeichen und andere Zeichen sind nicht erlaubt.',
	alphanum: 'Benutzen Sie bitte nur Buchstaben (a-z) und Zahlen (0-9) in diesem Eingabefeld. Leerzeichen und andere Zeichen sind nicht erlaubt.',
	dateSuchAs: 'Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel {date}',
	dateInFormatMDY: 'Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel TT.MM.JJJJ (z.B. &quot;31.12.1999&quot;)',
	email: 'Geben Sie bitte eine g&uuml;ltige E-Mail Adresse ein. Wie zum Beispiel &quot;maria@bernasconi.ch&quot;.',
	url: 'Geben Sie bitte eine g&uuml;ltige URL ein. Wie zum Beispiel http://www.example.com.',
	currencyDollar: 'Geben Sie bitte einen g&uuml;ltigen Betrag in Schweizer Franken ein. Wie zum Beispiel 100.00 CHF .',
	oneRequired: 'Machen Sie f&uuml;r mindestens eines der Eingabefelder einen Eintrag.',
	errorPrefix: 'Fehler: ',
	warningPrefix: 'Warnung: ',

	// Form.Validator.Extras
	noSpace: 'In diesem Eingabefeld darf kein Leerzeichen sein.',
	reqChkByNode: 'Es wurden keine Elemente gew&auml;hlt.',
	requiredChk: 'Dieses Feld ist obligatorisch.',
	reqChkByName: 'Bitte w&auml;hlen Sie ein {label}.',
	match: 'Dieses Eingabefeld muss mit dem Feld {matchName} &uuml;bereinstimmen.',
	startDate: 'Das Anfangsdatum',
	endDate: 'Das Enddatum',
	currendDate: 'Das aktuelle Datum',
	afterDate: 'Das Datum sollte zur gleichen Zeit oder sp&auml;ter sein {label}.',
	beforeDate: 'Das Datum sollte zur gleichen Zeit oder fr&uuml;her sein {label}.',
	startMonth: 'W&auml;hlen Sie bitte einen Anfangsmonat',
	sameMonth: 'Diese zwei Datumsangaben m&uuml;ssen im selben Monat sein - Sie m&uuml;ssen eine von beiden ver&auml;ndern.',
	creditcard: 'Die eingegebene Kreditkartennummer ist ung&uuml;ltig. Bitte &uuml;berpr&uuml;fen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben.'

});


/*
---

name: Locale.de-DE.Form.Validator

description: Form Validator messages for German.

license: MIT-style license

authors:
  - Frank Rossi
  - Ulrich Petri
  - Fabian Beiner

requires:
  - /Locale

provides: [Locale.de-DE.Form.Validator]

...
*/

Locale.define('de-DE', 'FormValidator', {

	required: 'Dieses Eingabefeld muss ausgefüllt werden.',
	minLength: 'Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben nur {length} Zeichen eingegeben).',
	maxLength: 'Geben Sie bitte nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',
	integer: 'Geben Sie in diesem Eingabefeld bitte eine ganze Zahl ein. Dezimalzahlen (z.B. "1.25") sind nicht erlaubt.',
	numeric: 'Geben Sie in diesem Eingabefeld bitte nur Zahlenwerte (z.B. "1", "1.1", "-1" oder "-1.1") ein.',
	digits: 'Geben Sie in diesem Eingabefeld bitte nur Zahlen und Satzzeichen ein (z.B. eine Telefonnummer mit Bindestrichen und Punkten ist erlaubt).',
	alpha: 'Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) ein. Leerzeichen und andere Zeichen sind nicht erlaubt.',
	alphanum: 'Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) und Zahlen (0-9) ein. Leerzeichen oder andere Zeichen sind nicht erlaubt.',
	dateSuchAs: 'Geben Sie bitte ein gültiges Datum ein (z.B. "{date}").',
	dateInFormatMDY: 'Geben Sie bitte ein gültiges Datum im Format TT.MM.JJJJ ein (z.B. "31.12.1999").',
	email: 'Geben Sie bitte eine gültige E-Mail-Adresse ein (z.B. "max@mustermann.de").',
	url: 'Geben Sie bitte eine gültige URL ein (z.B. "http://www.example.com").',
	currencyDollar: 'Geben Sie bitte einen gültigen Betrag in EURO ein (z.B. 100.00€).',
	oneRequired: 'Bitte füllen Sie mindestens ein Eingabefeld aus.',
	errorPrefix: 'Fehler: ',
	warningPrefix: 'Warnung: ',

	// Form.Validator.Extras
	noSpace: 'Es darf kein Leerzeichen in diesem Eingabefeld sein.',
	reqChkByNode: 'Es wurden keine Elemente gewählt.',
	requiredChk: 'Dieses Feld muss ausgefüllt werden.',
	reqChkByName: 'Bitte wählen Sie ein {label}.',
	match: 'Dieses Eingabefeld muss mit dem {matchName} Eingabefeld übereinstimmen.',
	startDate: 'Das Anfangsdatum',
	endDate: 'Das Enddatum',
	currendDate: 'Das aktuelle Datum',
	afterDate: 'Das Datum sollte zur gleichen Zeit oder später sein als {label}.',
	beforeDate: 'Das Datum sollte zur gleichen Zeit oder früher sein als {label}.',
	startMonth: 'Wählen Sie bitte einen Anfangsmonat',
	sameMonth: 'Diese zwei Datumsangaben müssen im selben Monat sein - Sie müssen eines von beiden verändern.',
	creditcard: 'Die eingegebene Kreditkartennummer ist ungültig. Bitte überprüfen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben.'

});


/*
---

name: Locale.EU.Number

description: Number messages for Europe.

license: MIT-style license

authors:
  - Arian Stolwijk

requires:
  - /Locale

provides: [Locale.EU.Number]

...
*/

Locale.define('EU', 'Number', {

	decimal: ',',
	group: '.',

	currency: {
		prefix: '€ '
	}

});


/*
---

name: Locale.de-DE.Number

description: Number messages for German.

license: MIT-style license

authors:
  - Christoph Pojer

requires:
  - /Locale
  - /Locale.EU.Number

provides: [Locale.de-DE.Number]

...
*/

Locale.define('de-DE').inherit('EU', 'Number');


/*
---

name: Locale.en-GB.Date

description: Date messages for British English.

license: MIT-style license

authors:
  - Aaron Newton

requires:
  - /Locale
  - /Locale.en-US.Date

provides: [Locale.en-GB.Date]

...
*/

Locale.define('en-GB', 'Date', {

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M'

}).inherit('en-US', 'Date');


/*
---

name: Locale.es-ES.Date

description: Date messages for Spanish.

license: MIT-style license

authors:
  - Ãlfons Sanchez

requires:
  - /Locale

provides: [Locale.es-ES.Date]

...
*/

Locale.define('es-ES', 'Date', {

	months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
	months_abbr: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
	days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
	days_abbr: ['dom', 'lun', 'mar', 'mié', 'juv', 'vie', 'sáb'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'hace menos de un minuto',
	minuteAgo: 'hace un minuto',
	minutesAgo: 'hace {delta} minutos',
	hourAgo: 'hace una hora',
	hoursAgo: 'hace unas {delta} horas',
	dayAgo: 'hace un día',
	daysAgo: 'hace {delta} días',
	weekAgo: 'hace una semana',
	weeksAgo: 'hace unas {delta} semanas',
	monthAgo: 'hace un mes',
	monthsAgo: 'hace {delta} meses',
	yearAgo: 'hace un año',
	yearsAgo: 'hace {delta} años',

	lessThanMinuteUntil: 'menos de un minuto desde ahora',
	minuteUntil: 'un minuto desde ahora',
	minutesUntil: '{delta} minutos desde ahora',
	hourUntil: 'una hora desde ahora',
	hoursUntil: 'unas {delta} horas desde ahora',
	dayUntil: 'un día desde ahora',
	daysUntil: '{delta} días desde ahora',
	weekUntil: 'una semana desde ahora',
	weeksUntil: 'unas {delta} semanas desde ahora',
	monthUntil: 'un mes desde ahora',
	monthsUntil: '{delta} meses desde ahora',
	yearUntil: 'un año desde ahora',
	yearsUntil: '{delta} años desde ahora'

});


/*
---

name: Locale.es-AR.Date

description: Date messages for Spanish (Argentina).

license: MIT-style license

authors:
  - Ãlfons Sanchez
  - Diego Massanti

requires:
  - /Locale
  - /Locale.es-ES.Date

provides: [Locale.es-AR.Date]

...
*/

Locale.define('es-AR').inherit('es-ES', 'Date');


/*
---

name: Locale.es-AR.Form.Validator

description: Form Validator messages for Spanish (Argentina).

license: MIT-style license

authors:
  - Diego Massanti

requires:
  - /Locale

provides: [Locale.es-AR.Form.Validator]

...
*/

Locale.define('es-AR', 'FormValidator', {

	required: 'Este campo es obligatorio.',
	minLength: 'Por favor ingrese al menos {minLength} caracteres (ha ingresado {length} caracteres).',
	maxLength: 'Por favor no ingrese más de {maxLength} caracteres (ha ingresado {length} caracteres).',
	integer: 'Por favor ingrese un número entero en este campo. Números con decimales (p.e. 1,25) no se permiten.',
	numeric: 'Por favor ingrese solo valores numéricos en este campo (p.e. "1" o "1,1" o "-1" o "-1,1").',
	digits: 'Por favor use sólo números y puntuación en este campo (por ejemplo, un número de teléfono con guiones y/o puntos no está permitido).',
	alpha: 'Por favor use sólo letras (a-z) en este campo. No se permiten espacios ni otros caracteres.',
	alphanum: 'Por favor, usa sólo letras (a-z) o números (0-9) en este campo. No se permiten espacios u otros caracteres.',
	dateSuchAs: 'Por favor ingrese una fecha válida como {date}',
	dateInFormatMDY: 'Por favor ingrese una fecha válida, utulizando el formato DD/MM/YYYY (p.e. "31/12/1999")',
	email: 'Por favor, ingrese una dirección de e-mail válida. Por ejemplo, "fred@dominio.com".',
	url: 'Por favor ingrese una URL válida como http://www.example.com.',
	currencyDollar: 'Por favor ingrese una cantidad válida de pesos. Por ejemplo $100,00 .',
	oneRequired: 'Por favor ingrese algo para por lo menos una de estas entradas.',
	errorPrefix: 'Error: ',
	warningPrefix: 'Advertencia: ',

	// Form.Validator.Extras
	noSpace: 'No se permiten espacios en este campo.',
	reqChkByNode: 'No hay elementos seleccionados.',
	requiredChk: 'Este campo es obligatorio.',
	reqChkByName: 'Por favor selecciona una {label}.',
	match: 'Este campo necesita coincidir con el campo {matchName}',
	startDate: 'la fecha de inicio',
	endDate: 'la fecha de fin',
	currendDate: 'la fecha actual',
	afterDate: 'La fecha debe ser igual o posterior a {label}.',
	beforeDate: 'La fecha debe ser igual o anterior a {label}.',
	startMonth: 'Por favor selecciona un mes de origen',
	sameMonth: 'Estas dos fechas deben estar en el mismo mes - debes cambiar una u otra.'

});


/*
---

name: Locale.es-ES.Form.Validator

description: Form Validator messages for Spanish.

license: MIT-style license

authors:
  - Ãlfons Sanchez

requires:
  - /Locale

provides: [Locale.es-ES.Form.Validator]

...
*/

Locale.define('es-ES', 'FormValidator', {

	required: 'Este campo es obligatorio.',
	minLength: 'Por favor introduce al menos {minLength} caracteres (has introducido {length} caracteres).',
	maxLength: 'Por favor introduce no m&aacute;s de {maxLength} caracteres (has introducido {length} caracteres).',
	integer: 'Por favor introduce un n&uacute;mero entero en este campo. N&uacute;meros con decimales (p.e. 1,25) no se permiten.',
	numeric: 'Por favor introduce solo valores num&eacute;ricos en este campo (p.e. "1" o "1,1" o "-1" o "-1,1").',
	digits: 'Por favor usa solo n&uacute;meros y puntuaci&oacute;n en este campo (por ejemplo, un n&uacute;mero de tel&eacute;fono con guiones y puntos no esta permitido).',
	alpha: 'Por favor usa letras solo (a-z) en este campo. No se admiten espacios ni otros caracteres.',
	alphanum: 'Por favor, usa solo letras (a-z) o n&uacute;meros (0-9) en este campo. No se admiten espacios ni otros caracteres.',
	dateSuchAs: 'Por favor introduce una fecha v&aacute;lida como {date}',
	dateInFormatMDY: 'Por favor introduce una fecha v&aacute;lida como DD/MM/YYYY (p.e. "31/12/1999")',
	email: 'Por favor, introduce una direcci&oacute;n de email v&aacute;lida. Por ejemplo, "fred@domain.com".',
	url: 'Por favor introduce una URL v&aacute;lida como http://www.example.com.',
	currencyDollar: 'Por favor introduce una cantidad v&aacute;lida de €. Por ejemplo €100,00 .',
	oneRequired: 'Por favor introduce algo para por lo menos una de estas entradas.',
	errorPrefix: 'Error: ',
	warningPrefix: 'Aviso: ',

	// Form.Validator.Extras
	noSpace: 'No pueden haber espacios en esta entrada.',
	reqChkByNode: 'No hay elementos seleccionados.',
	requiredChk: 'Este campo es obligatorio.',
	reqChkByName: 'Por favor selecciona una {label}.',
	match: 'Este campo necesita coincidir con el campo {matchName}',
	startDate: 'la fecha de inicio',
	endDate: 'la fecha de fin',
	currendDate: 'la fecha actual',
	afterDate: 'La fecha debe ser igual o posterior a {label}.',
	beforeDate: 'La fecha debe ser igual o anterior a {label}.',
	startMonth: 'Por favor selecciona un mes de origen',
	sameMonth: 'Estas dos fechas deben estar en el mismo mes - debes cambiar una u otra.'

});


/*
---

name: Locale.et-EE.Date

description: Date messages for Estonian.

license: MIT-style license

authors:
  - Kevin Valdek

requires:
  - /Locale

provides: [Locale.et-EE.Date]

...
*/

Locale.define('et-EE', 'Date', {

	months: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'],
	months_abbr: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'],
	days: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev'],
	days_abbr: ['pühap', 'esmasp', 'teisip', 'kolmap', 'neljap', 'reede', 'laup'],

	// Culture's date order: MM.DD.YYYY
	dateOrder: ['month', 'date', 'year'],
	shortDate: '%m.%d.%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'vähem kui minut aega tagasi',
	minuteAgo: 'umbes minut aega tagasi',
	minutesAgo: '{delta} minutit tagasi',
	hourAgo: 'umbes tund aega tagasi',
	hoursAgo: 'umbes {delta} tundi tagasi',
	dayAgo: '1 päev tagasi',
	daysAgo: '{delta} päeva tagasi',
	weekAgo: '1 nädal tagasi',
	weeksAgo: '{delta} nädalat tagasi',
	monthAgo: '1 kuu tagasi',
	monthsAgo: '{delta} kuud tagasi',
	yearAgo: '1 aasta tagasi',
	yearsAgo: '{delta} aastat tagasi',

	lessThanMinuteUntil: 'vähem kui minuti aja pärast',
	minuteUntil: 'umbes minuti aja pärast',
	minutesUntil: '{delta} minuti pärast',
	hourUntil: 'umbes tunni aja pärast',
	hoursUntil: 'umbes {delta} tunni pärast',
	dayUntil: '1 päeva pärast',
	daysUntil: '{delta} päeva pärast',
	weekUntil: '1 nädala pärast',
	weeksUntil: '{delta} nädala pärast',
	monthUntil: '1 kuu pärast',
	monthsUntil: '{delta} kuu pärast',
	yearUntil: '1 aasta pärast',
	yearsUntil: '{delta} aasta pärast'

});


/*
---

name: Locale.et-EE.Form.Validator

description: Form Validator messages for Estonian.

license: MIT-style license

authors:
  - Kevin Valdek

requires:
  - /Locale

provides: [Locale.et-EE.Form.Validator]

...
*/

Locale.define('et-EE', 'FormValidator', {

	required: 'Väli peab olema täidetud.',
	minLength: 'Palun sisestage vähemalt {minLength} tähte (te sisestasite {length} tähte).',
	maxLength: 'Palun ärge sisestage rohkem kui {maxLength} tähte (te sisestasite {length} tähte).',
	integer: 'Palun sisestage väljale täisarv. Kümnendarvud (näiteks 1.25) ei ole lubatud.',
	numeric: 'Palun sisestage ainult numbreid väljale (näiteks "1", "1.1", "-1" või "-1.1").',
	digits: 'Palun kasutage ainult numbreid ja kirjavahemärke (telefoninumbri sisestamisel on lubatud kasutada kriipse ja punkte).',
	alpha: 'Palun kasutage ainult tähti (a-z). Tühikud ja teised sümbolid on keelatud.',
	alphanum: 'Palun kasutage ainult tähti (a-z) või numbreid (0-9). Tühikud ja teised sümbolid on keelatud.',
	dateSuchAs: 'Palun sisestage kehtiv kuupäev kujul {date}',
	dateInFormatMDY: 'Palun sisestage kehtiv kuupäev kujul MM.DD.YYYY (näiteks: "12.31.1999").',
	email: 'Palun sisestage kehtiv e-maili aadress (näiteks: "fred@domain.com").',
	url: 'Palun sisestage kehtiv URL (näiteks: http://www.example.com).',
	currencyDollar: 'Palun sisestage kehtiv $ summa (näiteks: $100.00).',
	oneRequired: 'Palun sisestage midagi vähemalt ühele antud väljadest.',
	errorPrefix: 'Viga: ',
	warningPrefix: 'Hoiatus: ',

	// Form.Validator.Extras
	noSpace: 'Väli ei tohi sisaldada tühikuid.',
	reqChkByNode: 'Ükski väljadest pole valitud.',
	requiredChk: 'Välja täitmine on vajalik.',
	reqChkByName: 'Palun valige üks {label}.',
	match: 'Väli peab sobima {matchName} väljaga',
	startDate: 'algkuupäev',
	endDate: 'lõppkuupäev',
	currendDate: 'praegune kuupäev',
	afterDate: 'Kuupäev peab olema võrdne või pärast {label}.',
	beforeDate: 'Kuupäev peab olema võrdne või enne {label}.',
	startMonth: 'Palun valige algkuupäev.',
	sameMonth: 'Antud kaks kuupäeva peavad olema samas kuus - peate muutma ühte kuupäeva.'

});


/*
---

name: Locale.fa.Date

description: Date messages for Persian.

license: MIT-style license

authors:
  - Amir Hossein Hodjaty Pour

requires:
  - /Locale

provides: [Locale.fa.Date]

...
*/

Locale.define('fa', 'Date', {

	months: ['ژانویه', 'فوریه', 'مارس', 'آپریل', 'مه', 'ژوئن', 'ژوئیه', 'آگوست', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
	months_abbr: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
	days: ['یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],
	days_abbr: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],

	// Culture's date order: MM/DD/YYYY
	dateOrder: ['month', 'date', 'year'],
	shortDate: '%m/%d/%Y',
	shortTime: '%I:%M%p',
	AM: 'ق.ظ',
	PM: 'ب.ظ',

	// Date.Extras
	ordinal: 'ام',

	lessThanMinuteAgo: 'کمتر از یک دقیقه پیش',
	minuteAgo: 'حدود یک دقیقه پیش',
	minutesAgo: '{delta} دقیقه پیش',
	hourAgo: 'حدود یک ساعت پیش',
	hoursAgo: 'حدود {delta} ساعت پیش',
	dayAgo: '1 روز پیش',
	daysAgo: '{delta} روز پیش',
	weekAgo: '1 هفته پیش',
	weeksAgo: '{delta} هفته پیش',
	monthAgo: '1 ماه پیش',
	monthsAgo: '{delta} ماه پیش',
	yearAgo: '1 سال پیش',
	yearsAgo: '{delta} سال پیش',

	lessThanMinuteUntil: 'کمتر از یک دقیقه از حالا',
	minuteUntil: 'حدود یک دقیقه از حالا',
	minutesUntil: '{delta} دقیقه از حالا',
	hourUntil: 'حدود یک ساعت از حالا',
	hoursUntil: 'حدود {delta} ساعت از حالا',
	dayUntil: '1 روز از حالا',
	daysUntil: '{delta} روز از حالا',
	weekUntil: '1 هفته از حالا',
	weeksUntil: '{delta} هفته از حالا',
	monthUntil: '1 ماه از حالا',
	monthsUntil: '{delta} ماه از حالا',
	yearUntil: '1 سال از حالا',
	yearsUntil: '{delta} سال از حالا'

});


/*
---

name: Locale.fa.Form.Validator

description: Form Validator messages for Persian.

license: MIT-style license

authors:
  - Amir Hossein Hodjaty Pour

requires:
  - /Locale

provides: [Locale.fa.Form.Validator]

...
*/

Locale.define('fa', 'FormValidator', {

	required: 'این فیلد الزامی است.',
	minLength: 'شما باید حداقل {minLength} حرف وارد کنید ({length} حرف وارد کرده اید).',
	maxLength: 'لطفا حداکثر {maxLength} حرف وارد کنید (شما {length} حرف وارد کرده اید).',
	integer: 'لطفا از عدد صحیح استفاده کنید. اعداد اعشاری (مانند 1.25) مجاز نیستند.',
	numeric: 'لطفا فقط داده عددی وارد کنید (مانند "1" یا "1.1" یا "1-" یا "1.1-").',
	digits: 'لطفا فقط از اعداد و علامتها در این فیلد استفاده کنید (برای مثال شماره تلفن با خط تیره و نقطه قابل قبول است).',
	alpha: 'لطفا فقط از حروف الفباء برای این بخش استفاده کنید. کاراکترهای دیگر و فاصله مجاز نیستند.',
	alphanum: 'لطفا فقط از حروف الفباء و اعداد در این بخش استفاده کنید. کاراکترهای دیگر و فاصله مجاز نیستند.',
	dateSuchAs: 'لطفا یک تاریخ معتبر مانند {date} وارد کنید.',
	dateInFormatMDY: 'لطفا یک تاریخ معتبر به شکل MM/DD/YYYY وارد کنید (مانند "12/31/1999").',
	email: 'لطفا یک آدرس ایمیل معتبر وارد کنید. برای مثال "fred@domain.com".',
	url: 'لطفا یک URL معتبر مانند http://www.example.com وارد کنید.',
	currencyDollar: 'لطفا یک محدوده معتبر برای این بخش وارد کنید مانند 100.00$ .',
	oneRequired: 'لطفا حداقل یکی از فیلدها را پر کنید.',
	errorPrefix: 'خطا: ',
	warningPrefix: 'هشدار: ',

	// Form.Validator.Extras
	noSpace: 'استفاده از فاصله در این بخش مجاز نیست.',
	reqChkByNode: 'موردی انتخاب نشده است.',
	requiredChk: 'این فیلد الزامی است.',
	reqChkByName: 'لطفا یک {label} را انتخاب کنید.',
	match: 'این فیلد باید با فیلد {matchName} مطابقت داشته باشد.',
	startDate: 'تاریخ شروع',
	endDate: 'تاریخ پایان',
	currendDate: 'تاریخ کنونی',
	afterDate: 'تاریخ میبایست برابر یا بعد از {label} باشد',
	beforeDate: 'تاریخ میبایست برابر یا قبل از {label} باشد',
	startMonth: 'لطفا ماه شروع را انتخاب کنید',
	sameMonth: 'این دو تاریخ باید در یک ماه باشند - شما باید یکی یا هر دو را تغییر دهید.',
	creditcard: 'شماره کارت اعتباری که وارد کرده اید معتبر نیست. لطفا شماره را بررسی کنید و مجددا تلاش کنید. {length} رقم وارد شده است.'

});


/*
---

name: Locale.fi-FI.Date

description: Date messages for Finnish.

license: MIT-style license

authors:
  - ksel

requires:
  - /Locale

provides: [Locale.fi-FI.Date]

...
*/

Locale.define('fi-FI', 'Date', {

	// NOTE: months and days are not capitalized in finnish
	months: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'],

	// these abbreviations are really not much used in finnish because they obviously won't abbreviate very much. ;)
	// NOTE: sometimes one can see forms such as "tammi", "helmi", etc. but that is not proper finnish.
	months_abbr: ['tammik.', 'helmik.', 'maalisk.', 'huhtik.', 'toukok.', 'kesäk.', 'heinäk.', 'elok.', 'syysk.', 'lokak.', 'marrask.', 'jouluk.'],

	days: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'],
	days_abbr: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'vajaa minuutti sitten',
	minuteAgo: 'noin minuutti sitten',
	minutesAgo: '{delta} minuuttia sitten',
	hourAgo: 'noin tunti sitten',
	hoursAgo: 'noin {delta} tuntia sitten',
	dayAgo: 'päivä sitten',
	daysAgo: '{delta} päivää sitten',
	weekAgo: 'viikko sitten',
	weeksAgo: '{delta} viikkoa sitten',
	monthAgo: 'kuukausi sitten',
	monthsAgo: '{delta} kuukautta sitten',
	yearAgo: 'vuosi sitten',
	yearsAgo: '{delta} vuotta sitten',

	lessThanMinuteUntil: 'vajaan minuutin kuluttua',
	minuteUntil: 'noin minuutin kuluttua',
	minutesUntil: '{delta} minuutin kuluttua',
	hourUntil: 'noin tunnin kuluttua',
	hoursUntil: 'noin {delta} tunnin kuluttua',
	dayUntil: 'päivän kuluttua',
	daysUntil: '{delta} päivän kuluttua',
	weekUntil: 'viikon kuluttua',
	weeksUntil: '{delta} viikon kuluttua',
	monthUntil: 'kuukauden kuluttua',
	monthsUntil: '{delta} kuukauden kuluttua',
	yearUntil: 'vuoden kuluttua',
	yearsUntil: '{delta} vuoden kuluttua'

});


/*
---

name: Locale.fi-FI.Form.Validator

description: Form Validator messages for Finnish.

license: MIT-style license

authors:
  - ksel

requires:
  - /Locale

provides: [Locale.fi-FI.Form.Validator]

...
*/

Locale.define('fi-FI', 'FormValidator', {

	required: 'Tämä kenttä on pakollinen.',
	minLength: 'Ole hyvä ja anna vähintään {minLength} merkkiä (annoit {length} merkkiä).',
	maxLength: 'Älä anna enempää kuin {maxLength} merkkiä (annoit {length} merkkiä).',
	integer: 'Ole hyvä ja anna kokonaisluku. Luvut, joissa on desimaaleja (esim. 1.25) eivät ole sallittuja.',
	numeric: 'Anna tähän kenttään lukuarvo (kuten "1" tai "1.1" tai "-1" tai "-1.1").',
	digits: 'Käytä pelkästään numeroita ja välimerkkejä tässä kentässä (syötteet, kuten esim. puhelinnumero, jossa on väliviivoja, pilkkuja tai pisteitä, kelpaa).',
	alpha: 'Anna tähän kenttään vain kirjaimia (a-z). Välilyönnit tai muut merkit eivät ole sallittuja.',
	alphanum: 'Anna tähän kenttään vain kirjaimia (a-z) tai numeroita (0-9). Välilyönnit tai muut merkit eivät ole sallittuja.',
	dateSuchAs: 'Ole hyvä ja anna kelvollinen päivmäärä, kuten esimerkiksi {date}',
	dateInFormatMDY: 'Ole hyvä ja anna kelvollinen päivämäärä muodossa pp/kk/vvvv (kuten "12/31/1999")',
	email: 'Ole hyvä ja anna kelvollinen sähköpostiosoite (kuten esimerkiksi "matti@meikalainen.com").',
	url: 'Ole hyvä ja anna kelvollinen URL, kuten esimerkiksi http://www.example.com.',
	currencyDollar: 'Ole hyvä ja anna kelvollinen eurosumma (kuten esimerkiksi 100,00 EUR) .',
	oneRequired: 'Ole hyvä ja syötä jotakin ainakin johonkin näistä kentistä.',
	errorPrefix: 'Virhe: ',
	warningPrefix: 'Varoitus: ',

	// Form.Validator.Extras
	noSpace: 'Tässä syötteessä ei voi olla välilyöntejä',
	reqChkByNode: 'Ei valintoja.',
	requiredChk: 'Tämä kenttä on pakollinen.',
	reqChkByName: 'Ole hyvä ja valitse {label}.',
	match: 'Tämän kentän tulee vastata kenttää {matchName}',
	startDate: 'alkupäivämäärä',
	endDate: 'loppupäivämäärä',
	currendDate: 'nykyinen päivämäärä',
	afterDate: 'Päivämäärän tulisi olla sama tai myöhäisempi ajankohta kuin {label}.',
	beforeDate: 'Päivämäärän tulisi olla sama tai aikaisempi ajankohta kuin {label}.',
	startMonth: 'Ole hyvä ja valitse aloituskuukausi',
	sameMonth: 'Näiden kahden päivämäärän tulee olla saman kuun sisällä -- sinun pitää muuttaa jompaa kumpaa.',
	creditcard: 'Annettu luottokortin numero ei kelpaa. Ole hyvä ja tarkista numero sekä yritä uudelleen. {length} numeroa syötetty.'

});


/*
---

name: Locale.fi-FI.Number

description: Finnish number messages

license: MIT-style license

authors:
  - ksel

requires:
  - /Locale
  - /Locale.EU.Number

provides: [Locale.fi-FI.Number]

...
*/

Locale.define('fi-FI', 'Number', {

	group: ' ' // grouped by space

}).inherit('EU', 'Number');


/*
---

name: Locale.fr-FR.Date

description: Date messages for French.

license: MIT-style license

authors:
  - Nicolas Sorosac
  - Antoine Abt

requires:
  - /Locale

provides: [Locale.fr-FR.Date]

...
*/

Locale.define('fr-FR', 'Date', {

	months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
	months_abbr: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
	days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
	days_abbr: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: function(dayOfMonth){
		return (dayOfMonth > 1) ? '' : 'er';
	},

	lessThanMinuteAgo: "il y a moins d'une minute",
	minuteAgo: 'il y a une minute',
	minutesAgo: 'il y a {delta} minutes',
	hourAgo: 'il y a une heure',
	hoursAgo: 'il y a {delta} heures',
	dayAgo: 'il y a un jour',
	daysAgo: 'il y a {delta} jours',
	weekAgo: 'il y a une semaine',
	weeksAgo: 'il y a {delta} semaines',
	monthAgo: 'il y a 1 mois',
	monthsAgo: 'il y a {delta} mois',
	yearthAgo: 'il y a 1 an',
	yearsAgo: 'il y a {delta} ans',

	lessThanMinuteUntil: "dans moins d'une minute",
	minuteUntil: 'dans une minute',
	minutesUntil: 'dans {delta} minutes',
	hourUntil: 'dans une heure',
	hoursUntil: 'dans {delta} heures',
	dayUntil: 'dans un jour',
	daysUntil: 'dans {delta} jours',
	weekUntil: 'dans 1 semaine',
	weeksUntil: 'dans {delta} semaines',
	monthUntil: 'dans 1 mois',
	monthsUntil: 'dans {delta} mois',
	yearUntil: 'dans 1 an',
	yearsUntil: 'dans {delta} ans'

});


/*
---

name: Locale.fr-FR.Form.Validator

description: Form Validator messages for French.

license: MIT-style license

authors:
  - Miquel Hudin
  - Nicolas Sorosac

requires:
  - /Locale

provides: [Locale.fr-FR.Form.Validator]

...
*/

Locale.define('fr-FR', 'FormValidator', {

	required: 'Ce champ est obligatoire.',
	length: 'Veuillez saisir {length} caract&egrave;re(s) (vous avez saisi {elLength} caract&egrave;re(s)',
	minLength: 'Veuillez saisir un minimum de {minLength} caract&egrave;re(s) (vous avez saisi {length} caract&egrave;re(s)).',
	maxLength: 'Veuillez saisir un maximum de {maxLength} caract&egrave;re(s) (vous avez saisi {length} caract&egrave;re(s)).',
	integer: 'Veuillez saisir un nombre entier dans ce champ. Les nombres d&eacute;cimaux (ex : "1,25") ne sont pas autoris&eacute;s.',
	numeric: 'Veuillez saisir uniquement des chiffres dans ce champ (ex : "1" ou "1,1" ou "-1" ou "-1,1").',
	digits: "Veuillez saisir uniquement des chiffres et des signes de ponctuation dans ce champ (ex : un num&eacute;ro de t&eacute;l&eacute;phone avec des traits d'union est autoris&eacute;).",
	alpha: 'Veuillez saisir uniquement des lettres (a-z) dans ce champ. Les espaces ou autres caract&egrave;res ne sont pas autoris&eacute;s.',
	alphanum: 'Veuillez saisir uniquement des lettres (a-z) ou des chiffres (0-9) dans ce champ. Les espaces ou autres caract&egrave;res ne sont pas autoris&eacute;s.',
	dateSuchAs: 'Veuillez saisir une date correcte comme {date}',
	dateInFormatMDY: 'Veuillez saisir une date correcte, au format JJ/MM/AAAA (ex : "31/11/1999").',
	email: 'Veuillez saisir une adresse de courrier &eacute;lectronique. Par example "fred@domaine.com".',
	url: 'Veuillez saisir une URL, comme http://www.example.com.',
	currencyDollar: 'Veuillez saisir une quantit&eacute; correcte. Par example 100,00&euro;.',
	oneRequired: 'Veuillez s&eacute;lectionner au moins une de ces options.',
	errorPrefix: 'Erreur : ',
	warningPrefix: 'Attention : ',

	// Form.Validator.Extras
	noSpace: "Ce champ n'accepte pas les espaces.",
	reqChkByNode: "Aucun &eacute;l&eacute;ment n'est s&eacute;lectionn&eacute;.",
	requiredChk: 'Ce champ est obligatoire.',
	reqChkByName: 'Veuillez s&eacute;lectionner un(e) {label}.',
	match: 'Ce champ doit correspondre avec le champ {matchName}.',
	startDate: 'date de d&eacute;but',
	endDate: 'date de fin',
	currendDate: 'date actuelle',
	afterDate: 'La date doit &ecirc;tre identique ou post&eacute;rieure &agrave; {label}.',
	beforeDate: 'La date doit &ecirc;tre identique ou ant&eacute;rieure &agrave; {label}.',
	startMonth: 'Veuillez s&eacute;lectionner un mois de d&eacute;but.',
	sameMonth: 'Ces deux dates doivent &ecirc;tre dans le m&ecirc;me mois - vous devez en modifier une.',
	creditcard: 'Le num&eacute;ro de carte de cr&eacute;dit est invalide. Merci de v&eacute;rifier le num&eacute;ro et de r&eacute;essayer. Vous avez entr&eacute; {length} chiffre(s).'

});


/*
---

name: Locale.fr-FR.Number

description: Number messages for French.

license: MIT-style license

authors:
  - Arian Stolwijk
  - sv1l

requires:
  - /Locale
  - /Locale.EU.Number

provides: [Locale.fr-FR.Number]

...
*/

Locale.define('fr-FR', 'Number', {

	group: ' ' // In fr-FR localization, group character is a blank space

}).inherit('EU', 'Number');


/*
---

name: Locale.he-IL.Date

description: Date messages for Hebrew.

license: MIT-style license

authors:
  - Elad Ossadon

requires:
  - /Locale

provides: [Locale.he-IL.Date]

...
*/

Locale.define('he-IL', 'Date', {

	months: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],
	months_abbr: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],
	days: ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],
	days_abbr: ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],

	// Culture's date order: MM/DD/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 0,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'לפני פחות מדקה',
	minuteAgo: 'לפני כדקה',
	minutesAgo: 'לפני {delta} דקות',
	hourAgo: 'לפני כשעה',
	hoursAgo: 'לפני {delta} שעות',
	dayAgo: 'לפני יום',
	daysAgo: 'לפני {delta} ימים',
	weekAgo: 'לפני שבוע',
	weeksAgo: 'לפני {delta} שבועות',
	monthAgo: 'לפני חודש',
	monthsAgo: 'לפני {delta} חודשים',
	yearAgo: 'לפני שנה',
	yearsAgo: 'לפני {delta} שנים',

	lessThanMinuteUntil: 'בעוד פחות מדקה',
	minuteUntil: 'בעוד כדקה',
	minutesUntil: 'בעוד {delta} דקות',
	hourUntil: 'בעוד כשעה',
	hoursUntil: 'בעוד {delta} שעות',
	dayUntil: 'בעוד יום',
	daysUntil: 'בעוד {delta} ימים',
	weekUntil: 'בעוד שבוע',
	weeksUntil: 'בעוד {delta} שבועות',
	monthUntil: 'בעוד חודש',
	monthsUntil: 'בעוד {delta} חודשים',
	yearUntil: 'בעוד שנה',
	yearsUntil: 'בעוד {delta} שנים'

});


/*
---

name: Locale.he-IL.Form.Validator

description: Form Validator messages for Hebrew.

license: MIT-style license

authors:
  - Elad Ossadon

requires:
  - /Locale

provides: [Locale.he-IL.Form.Validator]

...
*/

Locale.define('he-IL', 'FormValidator', {

	required: 'נא למלא שדה זה.',
	minLength: 'נא להזין לפחות {minLength} תווים (הזנת {length} תווים).',
	maxLength: 'נא להזין עד {maxLength} תווים (הזנת {length} תווים).',
	integer: 'נא להזין מספר שלם לשדה זה. מספרים עשרוניים (כמו 1.25) אינם חוקיים.',
	numeric: 'נא להזין ערך מספרי בלבד בשדה זה (כמו "1", "1.1", "-1" או "-1.1").',
	digits: 'נא להזין רק ספרות וסימני הפרדה בשדה זה (למשל, מספר טלפון עם מקפים או נקודות הוא חוקי).',
	alpha: 'נא להזין רק אותיות באנגלית (a-z) בשדה זה. רווחים או תווים אחרים אינם חוקיים.',
	alphanum: 'נא להזין רק אותריות באנגלית (a-z) או ספרות (0-9) בשדה זה. אווחרים או תווים אחרים אינם חוקיים.',
	dateSuchAs: 'נא להזין תאריך חוקי, כמו {date}',
	dateInFormatMDY: 'נא להזין תאריך חוקי בפורמט MM/DD/YYYY (כמו "12/31/1999")',
	email: 'נא להזין כתובת אימייל חוקית. לדוגמה: "fred@domain.com".',
	url: 'נא להזין כתובת אתר חוקית, כמו http://www.example.com.',
	currencyDollar: 'נא להזין סכום דולרי חוקי. לדוגמה $100.00.',
	oneRequired: 'נא לבחור לפחות בשדה אחד.',
	errorPrefix: 'שגיאה: ',
	warningPrefix: 'אזהרה: ',

	// Form.Validator.Extras
	noSpace: 'אין להזין רווחים בשדה זה.',
	reqChkByNode: 'נא לבחור אחת מהאפשרויות.',
	requiredChk: 'שדה זה נדרש.',
	reqChkByName: 'נא לבחור {label}.',
	match: 'שדה זה צריך להתאים לשדה {matchName}',
	startDate: 'תאריך ההתחלה',
	endDate: 'תאריך הסיום',
	currendDate: 'התאריך הנוכחי',
	afterDate: 'התאריך צריך להיות זהה או אחרי {label}.',
	beforeDate: 'התאריך צריך להיות זהה או לפני {label}.',
	startMonth: 'נא לבחור חודש התחלה',
	sameMonth: 'שני תאריכים אלה צריכים להיות באותו חודש - נא לשנות אחד התאריכים.',
	creditcard: 'מספר כרטיס האשראי שהוזן אינו חוקי. נא לבדוק שנית. הוזנו {length} ספרות.'

});


/*
---

name: Locale.he-IL.Number

description: Number messages for Hebrew.

license: MIT-style license

authors:
  - Elad Ossadon

requires:
  - /Locale

provides: [Locale.he-IL.Number]

...
*/

Locale.define('he-IL', 'Number', {

	decimal: '.',
	group: ',',

	currency: {
		suffix: ' ₪'
	}

});


/*
---

name: Locale.hu-HU.Date

description: Date messages for Hungarian.

license: MIT-style license

authors:
  - Zsolt Szegheő

requires:
  - /Locale

provides: [Locale.hu-HU.Date]

...
*/

Locale.define('hu-HU', 'Date', {

	months: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
	months_abbr: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],
	days: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
	days_abbr: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],

	// Culture's date order: YYYY.MM.DD.
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y.%m.%d.',
	shortTime: '%I:%M',
	AM: 'de.',
	PM: 'du.',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'alig egy perce',
	minuteAgo: 'egy perce',
	minutesAgo: '{delta} perce',
	hourAgo: 'egy órája',
	hoursAgo: '{delta} órája',
	dayAgo: '1 napja',
	daysAgo: '{delta} napja',
	weekAgo: '1 hete',
	weeksAgo: '{delta} hete',
	monthAgo: '1 hónapja',
	monthsAgo: '{delta} hónapja',
	yearAgo: '1 éve',
	yearsAgo: '{delta} éve',

	lessThanMinuteUntil: 'alig egy perc múlva',
	minuteUntil: 'egy perc múlva',
	minutesUntil: '{delta} perc múlva',
	hourUntil: 'egy óra múlva',
	hoursUntil: '{delta} óra múlva',
	dayUntil: '1 nap múlva',
	daysUntil: '{delta} nap múlva',
	weekUntil: '1 hét múlva',
	weeksUntil: '{delta} hét múlva',
	monthUntil: '1 hónap múlva',
	monthsUntil: '{delta} hónap múlva',
	yearUntil: '1 év múlva',
	yearsUntil: '{delta} év múlva'

});


/*
---

name: Locale.hu-HU.Form.Validator

description: Form Validator messages for Hungarian.

license: MIT-style license

authors:
  - Zsolt Szegheő

requires:
  - /Locale

provides: [Locale.hu-HU.Form.Validator]

...
*/

Locale.define('hu-HU', 'FormValidator', {

	required: 'A mező kitöltése kötelező.',
	minLength: 'Legalább {minLength} karakter megadása szükséges (megadva {length} karakter).',
	maxLength: 'Legfeljebb {maxLength} karakter megadása lehetséges (megadva {length} karakter).',
	integer: 'Egész szám megadása szükséges. A tizedesjegyek (pl. 1.25) nem engedélyezettek.',
	numeric: 'Szám megadása szükséges (pl. "1" vagy "1.1" vagy "-1" vagy "-1.1").',
	digits: 'Csak számok és írásjelek megadása lehetséges (pl. telefonszám kötőjelek és/vagy perjelekkel).',
	alpha: 'Csak betűk (a-z) megadása lehetséges. Szóköz és egyéb karakterek nem engedélyezettek.',
	alphanum: 'Csak betűk (a-z) vagy számok (0-9) megadása lehetséges. Szóköz és egyéb karakterek nem engedélyezettek.',
	dateSuchAs: 'Valós dátum megadása szükséges (pl. {date}).',
	dateInFormatMDY: 'Valós dátum megadása szükséges ÉÉÉÉ.HH.NN. formában. (pl. "1999.12.31.")',
	email: 'Valós e-mail cím megadása szükséges (pl. "fred@domain.hu").',
	url: 'Valós URL megadása szükséges (pl. http://www.example.com).',
	currencyDollar: 'Valós pénzösszeg megadása szükséges (pl. 100.00 Ft.).',
	oneRequired: 'Az alábbi mezők legalább egyikének kitöltése kötelező.',
	errorPrefix: 'Hiba: ',
	warningPrefix: 'Figyelem: ',

	// Form.Validator.Extras
	noSpace: 'A mező nem tartalmazhat szóközöket.',
	reqChkByNode: 'Nincs egyetlen kijelölt elem sem.',
	requiredChk: 'A mező kitöltése kötelező.',
	reqChkByName: 'Egy {label} kiválasztása szükséges.',
	match: 'A mezőnek egyeznie kell a(z) {matchName} mezővel.',
	startDate: 'a kezdet dátuma',
	endDate: 'a vég dátuma',
	currendDate: 'jelenlegi dátum',
	afterDate: 'A dátum nem lehet kisebb, mint {label}.',
	beforeDate: 'A dátum nem lehet nagyobb, mint {label}.',
	startMonth: 'Kezdeti hónap megadása szükséges.',
	sameMonth: 'A két dátumnak ugyanazon hónapban kell lennie.',
	creditcard: 'A megadott bankkártyaszám nem valódi (megadva {length} számjegy).'

});


/*
---

name: Locale.it-IT.Date

description: Date messages for Italian.

license: MIT-style license.

authors:
  - Andrea Novero
  - Valerio Proietti

requires:
  - /Locale

provides: [Locale.it-IT.Date]

...
*/

Locale.define('it-IT', 'Date', {

	months: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
	months_abbr: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
	days: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],
	days_abbr: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H.%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: 'º',

	lessThanMinuteAgo: 'meno di un minuto fa',
	minuteAgo: 'circa un minuto fa',
	minutesAgo: 'circa {delta} minuti fa',
	hourAgo: "circa un'ora fa",
	hoursAgo: 'circa {delta} ore fa',
	dayAgo: 'circa 1 giorno fa',
	daysAgo: 'circa {delta} giorni fa',
	weekAgo: 'una settimana fa',
	weeksAgo: '{delta} settimane fa',
	monthAgo: 'un mese fa',
	monthsAgo: '{delta} mesi fa',
	yearAgo: 'un anno fa',
	yearsAgo: '{delta} anni fa',

	lessThanMinuteUntil: 'tra meno di un minuto',
	minuteUntil: 'tra circa un minuto',
	minutesUntil: 'tra circa {delta} minuti',
	hourUntil: "tra circa un'ora",
	hoursUntil: 'tra circa {delta} ore',
	dayUntil: 'tra circa un giorno',
	daysUntil: 'tra circa {delta} giorni',
	weekUntil: 'tra una settimana',
	weeksUntil: 'tra {delta} settimane',
	monthUntil: 'tra un mese',
	monthsUntil: 'tra {delta} mesi',
	yearUntil: 'tra un anno',
	yearsUntil: 'tra {delta} anni'

});


/*
---

name: Locale.it-IT.Form.Validator

description: Form Validator messages for Italian.

license: MIT-style license

authors:
  - Leonardo Laureti
  - Andrea Novero

requires:
  - /Locale

provides: [Locale.it-IT.Form.Validator]

...
*/

Locale.define('it-IT', 'FormValidator', {

	required: 'Il campo &egrave; obbligatorio.',
	minLength: 'Inserire almeno {minLength} caratteri (ne sono stati inseriti {length}).',
	maxLength: 'Inserire al massimo {maxLength} caratteri (ne sono stati inseriti {length}).',
	integer: 'Inserire un numero intero. Non sono consentiti decimali (es.: 1.25).',
	numeric: 'Inserire solo valori numerici (es.: "1" oppure "1.1" oppure "-1" oppure "-1.1").',
	digits: 'Inserire solo numeri e caratteri di punteggiatura. Per esempio &egrave; consentito un numero telefonico con trattini o punti.',
	alpha: 'Inserire solo lettere (a-z). Non sono consentiti spazi o altri caratteri.',
	alphanum: 'Inserire solo lettere (a-z) o numeri (0-9). Non sono consentiti spazi o altri caratteri.',
	dateSuchAs: 'Inserire una data valida del tipo {date}',
	dateInFormatMDY: 'Inserire una data valida nel formato MM/GG/AAAA (es.: "12/31/1999")',
	email: 'Inserire un indirizzo email valido. Per esempio "nome@dominio.com".',
	url: 'Inserire un indirizzo valido. Per esempio "http://www.example.com".',
	currencyDollar: 'Inserire un importo valido. Per esempio "$100.00".',
	oneRequired: 'Completare almeno uno dei campi richiesti.',
	errorPrefix: 'Errore: ',
	warningPrefix: 'Attenzione: ',

	// Form.Validator.Extras
	noSpace: 'Non sono consentiti spazi.',
	reqChkByNode: 'Nessuna voce selezionata.',
	requiredChk: 'Il campo &egrave; obbligatorio.',
	reqChkByName: 'Selezionare un(a) {label}.',
	match: 'Il valore deve corrispondere al campo {matchName}',
	startDate: "data d'inizio",
	endDate: 'data di fine',
	currendDate: 'data attuale',
	afterDate: 'La data deve corrispondere o essere successiva al {label}.',
	beforeDate: 'La data deve corrispondere o essere precedente al {label}.',
	startMonth: "Selezionare un mese d'inizio",
	sameMonth: 'Le due date devono essere dello stesso mese - occorre modificarne una.'

});


/*
---

name: Locale.ja-JP.Date

description: Date messages for Japanese.

license: MIT-style license

authors:
  - Noritaka Horio

requires:
  - /Locale

provides: [Locale.ja-JP.Date]

...
*/

Locale.define('ja-JP', 'Date', {

	months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
	months_abbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
	days: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'],
	days_abbr: ['日', '月', '火', '水', '木', '金', '土'],

	// Culture's date order: YYYY/MM/DD
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y/%m/%d',
	shortTime: '%H:%M',
	AM: '午前',
	PM: '午後',
	firstDayOfWeek: 0,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: '1分以内前',
	minuteAgo: '約1分前',
	minutesAgo: '約{delta}分前',
	hourAgo: '約1時間前',
	hoursAgo: '約{delta}時間前',
	dayAgo: '1日前',
	daysAgo: '{delta}日前',
	weekAgo: '1週間前',
	weeksAgo: '{delta}週間前',
	monthAgo: '1ヶ月前',
	monthsAgo: '{delta}ヶ月前',
	yearAgo: '1年前',
	yearsAgo: '{delta}年前',

	lessThanMinuteUntil: '今から約1分以内',
	minuteUntil: '今から約1分',
	minutesUntil: '今から約{delta}分',
	hourUntil: '今から約1時間',
	hoursUntil: '今から約{delta}時間',
	dayUntil: '今から1日間',
	daysUntil: '今から{delta}日間',
	weekUntil: '今から1週間',
	weeksUntil: '今から{delta}週間',
	monthUntil: '今から1ヶ月',
	monthsUntil: '今から{delta}ヶ月',
	yearUntil: '今から1年',
	yearsUntil: '今から{delta}年'

});


/*
---

name: Locale.ja-JP.Form.Validator

description: Form Validator messages for Japanese.

license: MIT-style license

authors:
  - Noritaka Horio

requires:
  - /Locale

provides: [Locale.ja-JP.Form.Validator]

...
*/

Locale.define("ja-JP", "FormValidator", {

	required: '入力は必須です。',
	minLength: '入力文字数は{minLength}以上にしてください。({length}文字)',
	maxLength: '入力文字数は{maxLength}以下にしてください。({length}文字)',
	integer: '整数を入力してください。',
	numeric: '入力できるのは数値だけです。(例: "1", "1.1", "-1", "-1.1"....)',
	digits: '入力できるのは数値と句読記号です。 (例: -や+を含む電話番号など).',
	alpha: '入力できるのは半角英字だけです。それ以外の文字は入力できません。',
	alphanum: '入力できるのは半角英数字だけです。それ以外の文字は入力できません。',
	dateSuchAs: '有効な日付を入力してください。{date}',
	dateInFormatMDY: '日付の書式に誤りがあります。YYYY/MM/DD (i.e. "1999/12/31")',
	email: 'メールアドレスに誤りがあります。',
	url: 'URLアドレスに誤りがあります。',
	currencyDollar: '金額に誤りがあります。',
	oneRequired: 'ひとつ以上入力してください。',
	errorPrefix: 'エラー: ',
	warningPrefix: '警告: ',

	// FormValidator.Extras
	noSpace: 'スペースは入力できません。',
	reqChkByNode: '選択されていません。',
	requiredChk: 'この項目は必須です。',
	reqChkByName: '{label}を選択してください。',
	match: '{matchName}が入力されている場合必須です。',
	startDate: '開始日',
	endDate: '終了日',
	currendDate: '今日',
	afterDate: '{label}以降の日付にしてください。',
	beforeDate: '{label}以前の日付にしてください。',
	startMonth: '開始月を選択してください。',
	sameMonth: '日付が同一です。どちらかを変更してください。'

});


/*
---

name: Locale.ja-JP.Number

description: Number messages for Japanese.

license: MIT-style license

authors:
  - Noritaka Horio

requires:
  - /Locale

provides: [Locale.ja-JP.Number]

...
*/

Locale.define('ja-JP', 'Number', {

	decimal: '.',
	group: ',',

	currency: {
		decimals: 0,
		prefix: '\\'
	}

});


/*
---

name: Locale.nl-NL.Date

description: Date messages for Dutch.

license: MIT-style license

authors:
  - Lennart Pilon
  - Tim Wienk

requires:
  - /Locale

provides: [Locale.nl-NL.Date]

...
*/

Locale.define('nl-NL', 'Date', {

	months: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
	months_abbr: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
	days: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
	days_abbr: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],

	// Culture's date order: DD-MM-YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d-%m-%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: 'e',

	lessThanMinuteAgo: 'minder dan een minuut geleden',
	minuteAgo: 'ongeveer een minuut geleden',
	minutesAgo: '{delta} minuten geleden',
	hourAgo: 'ongeveer een uur geleden',
	hoursAgo: 'ongeveer {delta} uur geleden',
	dayAgo: 'een dag geleden',
	daysAgo: '{delta} dagen geleden',
	weekAgo: 'een week geleden',
	weeksAgo: '{delta} weken geleden',
	monthAgo: 'een maand geleden',
	monthsAgo: '{delta} maanden geleden',
	yearAgo: 'een jaar geleden',
	yearsAgo: '{delta} jaar geleden',

	lessThanMinuteUntil: 'over minder dan een minuut',
	minuteUntil: 'over ongeveer een minuut',
	minutesUntil: 'over {delta} minuten',
	hourUntil: 'over ongeveer een uur',
	hoursUntil: 'over {delta} uur',
	dayUntil: 'over ongeveer een dag',
	daysUntil: 'over {delta} dagen',
	weekUntil: 'over een week',
	weeksUntil: 'over {delta} weken',
	monthUntil: 'over een maand',
	monthsUntil: 'over {delta} maanden',
	yearUntil: 'over een jaar',
	yearsUntil: 'over {delta} jaar'

});


/*
---

name: Locale.nl-NL.Form.Validator

description: Form Validator messages for Dutch.

license: MIT-style license

authors:
  - Lennart Pilon
  - Arian Stolwijk
  - Tim Wienk

requires:
  - /Locale

provides: [Locale.nl-NL.Form.Validator]

...
*/

Locale.define('nl-NL', 'FormValidator', {

	required: 'Dit veld is verplicht.',
	length: 'Vul precies {length} karakters in (je hebt {elLength} karakters ingevoerd).',
	minLength: 'Vul minimaal {minLength} karakters in (je hebt {length} karakters ingevoerd).',
	maxLength: 'Vul niet meer dan {maxLength} karakters in (je hebt {length} karakters ingevoerd).',
	integer: 'Vul een getal in. Getallen met decimalen (bijvoorbeeld 1.25) zijn niet toegestaan.',
	numeric: 'Vul alleen numerieke waarden in (bijvoorbeeld "1" of "1.1" of "-1" of "-1.1").',
	digits: 'Vul alleen nummers en leestekens in (bijvoorbeeld een telefoonnummer met streepjes is toegestaan).',
	alpha: 'Vul alleen letters in (a-z). Spaties en andere karakters zijn niet toegestaan.',
	alphanum: 'Vul alleen letters (a-z) of nummers (0-9) in. Spaties en andere karakters zijn niet toegestaan.',
	dateSuchAs: 'Vul een geldige datum in, zoals {date}',
	dateInFormatMDY: 'Vul een geldige datum, in het formaat MM/DD/YYYY (bijvoorbeeld "12/31/1999")',
	email: 'Vul een geldig e-mailadres in. Bijvoorbeeld "fred@domein.nl".',
	url: 'Vul een geldige URL in, zoals http://www.example.com.',
	currencyDollar: 'Vul een geldig $ bedrag in. Bijvoorbeeld $100.00 .',
	oneRequired: 'Vul iets in bij in ieder geval een van deze velden.',
	warningPrefix: 'Waarschuwing: ',
	errorPrefix: 'Fout: ',

	// Form.Validator.Extras
	noSpace: 'Spaties zijn niet toegestaan in dit veld.',
	reqChkByNode: 'Er zijn geen items geselecteerd.',
	requiredChk: 'Dit veld is verplicht.',
	reqChkByName: 'Selecteer een {label}.',
	match: 'Dit veld moet overeen komen met het {matchName} veld',
	startDate: 'de begin datum',
	endDate: 'de eind datum',
	currendDate: 'de huidige datum',
	afterDate: 'De datum moet hetzelfde of na {label} zijn.',
	beforeDate: 'De datum moet hetzelfde of voor {label} zijn.',
	startMonth: 'Selecteer een begin maand',
	sameMonth: 'Deze twee data moeten in dezelfde maand zijn - u moet een van beide aanpassen.',
	creditcard: 'Het ingevulde creditcardnummer is niet geldig. Controleer het nummer en probeer opnieuw. {length} getallen ingevuld.'

});


/*
---

name: Locale.nl-NL.Number

description: Number messages for Dutch.

license: MIT-style license

authors:
  - Arian Stolwijk

requires:
  - /Locale
  - /Locale.EU.Number

provides: [Locale.nl-NL.Number]

...
*/

Locale.define('nl-NL').inherit('EU', 'Number');





/*
---

name: Locale.no-NO.Date

description: Date messages for Norwegian.

license: MIT-style license

authors:
  - Espen 'Rexxars' Hovlandsdal

requires:
  - /Locale

provides: [Locale.no-NO.Date]

...
*/

Locale.define('no-NO', 'Date', {

	// Culture's date order: DD.MM.YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	lessThanMinuteAgo: 'kortere enn et minutt siden',
	minuteAgo: 'omtrent et minutt siden',
	minutesAgo: '{delta} minutter siden',
	hourAgo: 'omtrent en time siden',
	hoursAgo: 'omtrent {delta} timer siden',
	dayAgo: '{delta} dag siden',
	daysAgo: '{delta} dager siden'

});


/*
---

name: Locale.no-NO.Form.Validator

description: Form Validator messages for Norwegian.

license: MIT-style license

authors:
  - Espen 'Rexxars' Hovlandsdal

requires:
  - /Locale

provides: [Locale.no-NO.Form.Validator]

...
*/

Locale.define('no-NO', 'FormValidator', {

	required: 'Dette feltet er påkrevd.',
	minLength: 'Vennligst skriv inn minst {minLength} tegn (du skrev {length} tegn).',
	maxLength: 'Vennligst skriv inn maksimalt {maxLength} tegn (du skrev {length} tegn).',
	integer: 'Vennligst skriv inn et tall i dette feltet. Tall med desimaler (for eksempel 1,25) er ikke tillat.',
	numeric: 'Vennligst skriv inn kun numeriske verdier i dette feltet (for eksempel "1", "1.1", "-1" eller "-1.1").',
	digits: 'Vennligst bruk kun nummer og skilletegn i dette feltet.',
	alpha: 'Vennligst bruk kun bokstaver (a-z) i dette feltet. Ingen mellomrom eller andre tegn er tillat.',
	alphanum: 'Vennligst bruk kun bokstaver (a-z) eller nummer (0-9) i dette feltet. Ingen mellomrom eller andre tegn er tillat.',
	dateSuchAs: 'Vennligst skriv inn en gyldig dato, som {date}',
	dateInFormatMDY: 'Vennligst skriv inn en gyldig dato, i formatet MM/DD/YYYY (for eksempel "12/31/1999")',
	email: 'Vennligst skriv inn en gyldig epost-adresse. For eksempel "espen@domene.no".',
	url: 'Vennligst skriv inn en gyldig URL, for eksempel http://www.example.com.',
	currencyDollar: 'Vennligst fyll ut et gyldig $ beløp. For eksempel $100.00 .',
	oneRequired: 'Vennligst fyll ut noe i minst ett av disse feltene.',
	errorPrefix: 'Feil: ',
	warningPrefix: 'Advarsel: '

});


/*
---

name: Locale.pl-PL.Date

description: Date messages for Polish.

license: MIT-style license

authors:
  - Oskar Krawczyk

requires:
  - /Locale

provides: [Locale.pl-PL.Date]

...
*/

Locale.define('pl-PL', 'Date', {

	months: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
	months_abbr: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],
	days: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],
	days_abbr: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],

	// Culture's date order: YYYY-MM-DD
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y-%m-%d',
	shortTime: '%H:%M',
	AM: 'nad ranem',
	PM: 'po południu',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: function(dayOfMonth){
		return (dayOfMonth > 3 && dayOfMonth < 21) ? 'ty' : ['ty', 'szy', 'gi', 'ci', 'ty'][Math.min(dayOfMonth % 10, 4)];
	},

	lessThanMinuteAgo: 'mniej niż minute temu',
	minuteAgo: 'około minutę temu',
	minutesAgo: '{delta} minut temu',
	hourAgo: 'około godzinę temu',
	hoursAgo: 'około {delta} godzin temu',
	dayAgo: 'Wczoraj',
	daysAgo: '{delta} dni temu',

	lessThanMinuteUntil: 'za niecałą minutę',
	minuteUntil: 'za około minutę',
	minutesUntil: 'za {delta} minut',
	hourUntil: 'za około godzinę',
	hoursUntil: 'za około {delta} godzin',
	dayUntil: 'za 1 dzień',
	daysUntil: 'za {delta} dni'

});


/*
---

name: Locale.pl-PL.Form.Validator

description: Form Validator messages for Polish.

license: MIT-style license

authors:
  - Oskar Krawczyk

requires:
  - /Locale

provides: [Locale.pl-PL.Form.Validator]

...
*/

Locale.define('pl-PL', 'FormValidator', {

	required: 'To pole jest wymagane.',
	minLength: 'Wymagane jest przynajmniej {minLength} znaków (wpisanych zostało tylko {length}).',
	maxLength: 'Dozwolone jest nie więcej niż {maxLength} znaków (wpisanych zostało {length})',
	integer: 'To pole wymaga liczb całych. Liczby dziesiętne (np. 1.25) są niedozwolone.',
	numeric: 'Prosimy używać tylko numerycznych wartości w tym polu (np. "1", "1.1", "-1" lub "-1.1").',
	digits: 'Prosimy używać liczb oraz zankow punktuacyjnych w typ polu (dla przykładu, przy numerze telefonu myślniki i kropki są dozwolone).',
	alpha: 'Prosimy używać tylko liter (a-z) w tym polu. Spacje oraz inne znaki są niedozwolone.',
	alphanum: 'Prosimy używać tylko liter (a-z) lub liczb (0-9) w tym polu. Spacje oraz inne znaki są niedozwolone.',
	dateSuchAs: 'Prosimy podać prawidłową datę w formacie: {date}',
	dateInFormatMDY: 'Prosimy podać poprawną date w formacie DD.MM.RRRR (i.e. "12.01.2009")',
	email: 'Prosimy podać prawidłowy adres e-mail, np. "jan@domena.pl".',
	url: 'Prosimy podać prawidłowy adres URL, np. http://www.example.com.',
	currencyDollar: 'Prosimy podać prawidłową sumę w PLN. Dla przykładu: 100.00 PLN.',
	oneRequired: 'Prosimy wypełnić chociaż jedno z pól.',
	errorPrefix: 'Błąd: ',
	warningPrefix: 'Uwaga: ',

	// Form.Validator.Extras
	noSpace: 'W tym polu nie mogą znajdować się spacje.',
	reqChkByNode: 'Brak zaznaczonych elementów.',
	requiredChk: 'To pole jest wymagane.',
	reqChkByName: 'Prosimy wybrać z {label}.',
	match: 'To pole musi być takie samo jak {matchName}',
	startDate: 'data początkowa',
	endDate: 'data końcowa',
	currendDate: 'aktualna data',
	afterDate: 'Podana data poinna być taka sama lub po {label}.',
	beforeDate: 'Podana data poinna być taka sama lub przed {label}.',
	startMonth: 'Prosimy wybrać początkowy miesiąc.',
	sameMonth: 'Te dwie daty muszą być w zakresie tego samego miesiąca - wymagana jest zmiana któregoś z pól.'

});


/*
---

name: Locale.pt-PT.Date

description: Date messages for Portuguese.

license: MIT-style license

authors:
  - Fabio Miranda Costa

requires:
  - /Locale

provides: [Locale.pt-PT.Date]

...
*/

Locale.define('pt-PT', 'Date', {

	months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
	months_abbr: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
	days: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
	days_abbr: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],

	// Culture's date order: DD-MM-YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d-%m-%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: 'º',

	lessThanMinuteAgo: 'há menos de um minuto',
	minuteAgo: 'há cerca de um minuto',
	minutesAgo: 'há {delta} minutos',
	hourAgo: 'há cerca de uma hora',
	hoursAgo: 'há cerca de {delta} horas',
	dayAgo: 'há um dia',
	daysAgo: 'há {delta} dias',
	weekAgo: 'há uma semana',
	weeksAgo: 'há {delta} semanas',
	monthAgo: 'há um mês',
	monthsAgo: 'há {delta} meses',
	yearAgo: 'há um ano',
	yearsAgo: 'há {delta} anos',

	lessThanMinuteUntil: 'em menos de um minuto',
	minuteUntil: 'em um minuto',
	minutesUntil: 'em {delta} minutos',
	hourUntil: 'em uma hora',
	hoursUntil: 'em {delta} horas',
	dayUntil: 'em um dia',
	daysUntil: 'em {delta} dias',
	weekUntil: 'em uma semana',
	weeksUntil: 'em {delta} semanas',
	monthUntil: 'em um mês',
	monthsUntil: 'em {delta} meses',
	yearUntil: 'em um ano',
	yearsUntil: 'em {delta} anos'

});


/*
---

name: Locale.pt-BR.Date

description: Date messages for Portuguese (Brazil).

license: MIT-style license

authors:
  - Fabio Miranda Costa

requires:
  - /Locale
  - /Locale.pt-PT.Date

provides: [Locale.pt-BR.Date]

...
*/

Locale.define('pt-BR', 'Date', {

	// Culture's date order: DD/MM/YYYY
	shortDate: '%d/%m/%Y'

}).inherit('pt-PT', 'Date');


/*
---

name: Locale.pt-BR.Form.Validator

description: Form Validator messages for Portuguese (Brazil).

license: MIT-style license

authors:
  - Fábio Miranda Costa

requires:
  - /Locale

provides: [Locale.pt-BR.Form.Validator]

...
*/

Locale.define('pt-BR', 'FormValidator', {

	required: 'Este campo é obrigatório.',
	minLength: 'Digite pelo menos {minLength} caracteres (tamanho atual: {length}).',
	maxLength: 'Não digite mais de {maxLength} caracteres (tamanho atual: {length}).',
	integer: 'Por favor digite apenas um número inteiro neste campo. Não são permitidos números decimais (por exemplo, 1,25).',
	numeric: 'Por favor digite apenas valores numéricos neste campo (por exemplo, "1" ou "1.1" ou "-1" ou "-1,1").',
	digits: 'Por favor use apenas números e pontuação neste campo (por exemplo, um número de telefone com traços ou pontos é permitido).',
	alpha: 'Por favor use somente letras (a-z). Espaço e outros caracteres não são permitidos.',
	alphanum: 'Use somente letras (a-z) ou números (0-9) neste campo. Espaço e outros caracteres não são permitidos.',
	dateSuchAs: 'Digite uma data válida, como {date}',
	dateInFormatMDY: 'Digite uma data válida, como DD/MM/YYYY (por exemplo, "31/12/1999")',
	email: 'Digite um endereço de email válido. Por exemplo "nome@dominio.com".',
	url: 'Digite uma URL válida. Exemplo: http://www.example.com.',
	currencyDollar: 'Digite um valor em dinheiro válido. Exemplo: R$100,00 .',
	oneRequired: 'Digite algo para pelo menos um desses campos.',
	errorPrefix: 'Erro: ',
	warningPrefix: 'Aviso: ',

	// Form.Validator.Extras
	noSpace: 'Não é possível digitar espaços neste campo.',
	reqChkByNode: 'Não foi selecionado nenhum item.',
	requiredChk: 'Este campo é obrigatório.',
	reqChkByName: 'Por favor digite um {label}.',
	match: 'Este campo deve ser igual ao campo {matchName}.',
	startDate: 'a data inicial',
	endDate: 'a data final',
	currendDate: 'a data atual',
	afterDate: 'A data deve ser igual ou posterior a {label}.',
	beforeDate: 'A data deve ser igual ou anterior a {label}.',
	startMonth: 'Por favor selecione uma data inicial.',
	sameMonth: 'Estas duas datas devem ter o mesmo mês - você deve modificar uma das duas.',
	creditcard: 'O número do cartão de crédito informado é inválido. Por favor verifique o valor e tente novamente. {length} números informados.'

});


/*
---

name: Locale.pt-PT.Form.Validator

description: Form Validator messages for Portuguese.

license: MIT-style license

authors:
  - Miquel Hudin

requires:
  - /Locale

provides: [Locale.pt-PT.Form.Validator]

...
*/

Locale.define('pt-PT', 'FormValidator', {

	required: 'Este campo é necessário.',
	minLength: 'Digite pelo menos{minLength} caracteres (comprimento {length} caracteres).',
	maxLength: 'Não insira mais de {maxLength} caracteres (comprimento {length} caracteres).',
	integer: 'Digite um número inteiro neste domínio. Com números decimais (por exemplo, 1,25), não são permitidas.',
	numeric: 'Digite apenas valores numéricos neste domínio (p.ex., "1" ou "1.1" ou "-1" ou "-1,1").',
	digits: 'Por favor, use números e pontuação apenas neste campo (p.ex., um número de telefone com traços ou pontos é permitida).',
	alpha: 'Por favor use somente letras (a-z), com nesta área. Não utilize espaços nem outros caracteres são permitidos.',
	alphanum: 'Use somente letras (a-z) ou números (0-9) neste campo. Não utilize espaços nem outros caracteres são permitidos.',
	dateSuchAs: 'Digite uma data válida, como {date}',
	dateInFormatMDY: 'Digite uma data válida, como DD/MM/YYYY (p.ex. "31/12/1999")',
	email: 'Digite um endereço de email válido. Por exemplo "fred@domain.com".',
	url: 'Digite uma URL válida, como http://www.example.com.',
	currencyDollar: 'Digite um valor válido $. Por exemplo $ 100,00. ',
	oneRequired: 'Digite algo para pelo menos um desses insumos.',
	errorPrefix: 'Erro: ',
	warningPrefix: 'Aviso: '

});


/*
---

name: Locale.ru-RU-unicode.Date

description: Date messages for Russian (utf-8).

license: MIT-style license

authors:
  - Evstigneev Pavel
  - Kuryanovich Egor

requires:
  - /Locale

provides: [Locale.ru-RU.Date]

...
*/

(function(){

// Russian language pluralization rules, taken from CLDR project, http://unicode.org/cldr/
// one -> n mod 10 is 1 and n mod 100 is not 11;
// few -> n mod 10 in 2..4 and n mod 100 not in 12..14;
// many -> n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14;
// other -> everything else (example 3.14)
var pluralize = function (n, one, few, many, other){
	var modulo10 = n % 10,
		modulo100 = n % 100;

	if (modulo10 == 1 && modulo100 != 11){
		return one;
	} else if ((modulo10 == 2 || modulo10 == 3 || modulo10 == 4) && !(modulo100 == 12 || modulo100 == 13 || modulo100 == 14)){
		return few;
	} else if (modulo10 == 0 || (modulo10 == 5 || modulo10 == 6 || modulo10 == 7 || modulo10 == 8 || modulo10 == 9) || (modulo100 == 11 || modulo100 == 12 || modulo100 == 13 || modulo100 == 14)){
		return many;
	} else {
		return other;
	}
};

Locale.define('ru-RU', 'Date', {

	months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
	months_abbr: ['янв', 'февр', 'март', 'апр', 'май','июнь','июль','авг','сент','окт','нояб','дек'],
	days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
	days_abbr: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],

	// Culture's date order: DD.MM.YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'меньше минуты назад',
	minuteAgo: 'минуту назад',
	minutesAgo: function(delta){ return '{delta} ' + pluralize(delta, 'минуту', 'минуты', 'минут') + ' назад'; },
	hourAgo: 'час назад',
	hoursAgo: function(delta){ return '{delta} ' + pluralize(delta, 'час', 'часа', 'часов') + ' назад'; },
	dayAgo: 'вчера',
	daysAgo: function(delta){ return '{delta} ' + pluralize(delta, 'день', 'дня', 'дней') + ' назад'; },
	weekAgo: 'неделю назад',
	weeksAgo: function(delta){ return '{delta} ' + pluralize(delta, 'неделя', 'недели', 'недель') + ' назад'; },
	monthAgo: 'месяц назад',
	monthsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'месяц', 'месяца', 'месецев') + ' назад'; },
	yearAgo: 'год назад',
	yearsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'год', 'года', 'лет') + ' назад'; },

	lessThanMinuteUntil: 'меньше чем через минуту',
	minuteUntil: 'через минуту',
	minutesUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'час', 'часа', 'часов') + ''; },
	hourUntil: 'через час',
	hoursUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'час', 'часа', 'часов') + ''; },
	dayUntil: 'завтра',
	daysUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'день', 'дня', 'дней') + ''; },
	weekUntil: 'через неделю',
	weeksUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'неделю', 'недели', 'недель') + ''; },
	monthUntil: 'через месяц',
	monthsUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'месяц', 'месяца', 'месецев') + ''; },
	yearUntil: 'через',
	yearsUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'год', 'года', 'лет') + ''; }

});



})();


/*
---

name: Locale.ru-RU-unicode.Form.Validator

description: Form Validator messages for Russian (utf-8).

license: MIT-style license

authors:
  - Chernodarov Egor

requires:
  - /Locale

provides: [Locale.ru-RU.Form.Validator]

...
*/

Locale.define('ru-RU', 'FormValidator', {

	required: 'Это поле обязательно к заполнению.',
	minLength: 'Пожалуйста, введите хотя бы {minLength} символов (Вы ввели {length}).',
	maxLength: 'Пожалуйста, введите не больше {maxLength} символов (Вы ввели {length}).',
	integer: 'Пожалуйста, введите в это поле число. Дробные числа (например 1.25) тут не разрешены.',
	numeric: 'Пожалуйста, введите в это поле число (например "1" или "1.1", или "-1", или "-1.1").',
	digits: 'В этом поле Вы можете использовать только цифры и знаки пунктуации (например, телефонный номер со знаками дефиса или с точками).',
	alpha: 'В этом поле можно использовать только латинские буквы (a-z). Пробелы и другие символы запрещены.',
	alphanum: 'В этом поле можно использовать только латинские буквы (a-z) и цифры (0-9). Пробелы и другие символы запрещены.',
	dateSuchAs: 'Пожалуйста, введите корректную дату {date}',
	dateInFormatMDY: 'Пожалуйста, введите дату в формате ММ/ДД/ГГГГ (например "12/31/1999")',
	email: 'Пожалуйста, введите корректный емейл-адрес. Для примера "fred@domain.com".',
	url: 'Пожалуйста, введите правильную ссылку вида http://www.example.com.',
	currencyDollar: 'Пожалуйста, введите сумму в долларах. Например: $100.00 .',
	oneRequired: 'Пожалуйста, выберите хоть что-нибудь в одном из этих полей.',
	errorPrefix: 'Ошибка: ',
	warningPrefix: 'Внимание: '

});




/*
---

name: Locale.si-SI.Date

description: Date messages for Slovenian.

license: MIT-style license

authors:
  - Radovan Lozej

requires:
  - /Locale

provides: [Locale.si-SI.Date]

...
*/

(function(){

var pluralize = function(n, one, two, three, other){
	return (n >= 1 && n <= 3) ? arguments[n] : other;
};

Locale.define('si-SI', 'Date', {

	months: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', 'avgust', 'september', 'oktober', 'november', 'december'],
	months_abbr: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'],
	days: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', 'sobota'],
	days_abbr: ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'],

	// Culture's date order: DD.MM.YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d.%m.%Y',
	shortTime: '%H.%M',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '.',

	lessThanMinuteAgo: 'manj kot minuto nazaj',
	minuteAgo: 'minuto nazaj',
	minutesAgo: function(delta){ return '{delta} ' + pluralize(delta, 'minuto', 'minuti', 'minute', 'minut') + ' nazaj'; },
	hourAgo: 'uro nazaj',
	hoursAgo: function(delta){ return '{delta} ' + pluralize(delta, 'uro', 'uri', 'ure', 'ur') + ' nazaj'; },
	dayAgo: 'dan nazaj',
	daysAgo: function(delta){ return '{delta} ' + pluralize(delta, 'dan', 'dneva', 'dni', 'dni') + ' nazaj'; },
	weekAgo: 'teden nazaj',
	weeksAgo: function(delta){ return '{delta} ' + pluralize(delta, 'teden', 'tedna', 'tedne', 'tednov') + ' nazaj'; },
	monthAgo: 'mesec nazaj',
	monthsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'mesec', 'meseca', 'mesece', 'mesecov') + ' nazaj'; },
	yearthAgo: 'leto nazaj',
	yearsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'leto', 'leti', 'leta', 'let') + ' nazaj'; },

	lessThanMinuteUntil: 'še manj kot minuto',
	minuteUntil: 'še minuta',
	minutesUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'minuta', 'minuti', 'minute', 'minut'); },
	hourUntil: 'še ura',
	hoursUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'ura', 'uri', 'ure', 'ur'); },
	dayUntil: 'še dan',
	daysUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'dan', 'dneva', 'dnevi', 'dni'); },
	weekUntil: 'še tedn',
	weeksUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'teden', 'tedna', 'tedni', 'tednov'); },
	monthUntil: 'še mesec',
	monthsUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'mesec', 'meseca', 'meseci', 'mesecov'); },
	yearUntil: 'še leto',
	yearsUntil: function(delta){ return 'še {delta} ' + pluralize(delta, 'leto', 'leti', 'leta', 'let'); }

});

})();


/*
---

name: Locale.si-SI.Form.Validator

description: Form Validator messages for Slovenian.

license: MIT-style license

authors:
  - Radovan Lozej

requires:
  - /Locale

provides: [Locale.si-SI.Form.Validator]

...
*/

Locale.define('si-SI', 'FormValidator', {

	required: 'To polje je obvezno',
	minLength: 'Prosim, vnesite vsaj {minLength} znakov (vnesli ste {length} znakov).',
	maxLength: 'Prosim, ne vnesite več kot {maxLength} znakov (vnesli ste {length} znakov).',
	integer: 'Prosim, vnesite celo število. Decimalna števila (kot 1,25) niso dovoljena.',
	numeric: 'Prosim, vnesite samo numerične vrednosti (kot "1" ali "1.1" ali "-1" ali "-1.1").',
	digits: 'Prosim, uporabite številke in ločila le na tem polju (na primer, dovoljena je telefonska številka z pomišlaji ali pikami).',
	alpha: 'Prosim, uporabite le črke v tem plju. Presledki in drugi znaki niso dovoljeni.',
	alphanum: 'Prosim, uporabite samo črke ali številke v tem polju. Presledki in drugi znaki niso dovoljeni.',
	dateSuchAs: 'Prosim, vnesite pravilen datum kot {date}',
	dateInFormatMDY: 'Prosim, vnesite pravilen datum kot MM.DD.YYYY (primer "12.31.1999")',
	email: 'Prosim, vnesite pravilen email naslov. Na primer "fred@domain.com".',
	url: 'Prosim, vnesite pravilen URL kot http://www.example.com.',
	currencyDollar: 'Prosim, vnesit epravilno vrednost €. Primer 100,00€ .',
	oneRequired: 'Prosimo, vnesite nekaj za vsaj eno izmed teh polj.',
	errorPrefix: 'Napaka: ',
	warningPrefix: 'Opozorilo: ',

	// Form.Validator.Extras
	noSpace: 'To vnosno polje ne dopušča presledkov.',
	reqChkByNode: 'Nič niste izbrali.',
	requiredChk: 'To polje je obvezno',
	reqChkByName: 'Prosim, izberite {label}.',
	match: 'To polje se mora ujemati z poljem {matchName}',
	startDate: 'datum začetka',
	endDate: 'datum konca',
	currendDate: 'trenuten datum',
	afterDate: 'Datum bi moral biti isti ali po {label}.',
	beforeDate: 'Datum bi moral biti isti ali pred {label}.',
	startMonth: 'Prosim, vnesite začetni datum',
	sameMonth: 'Ta dva datuma morata biti v istem mesecu - premeniti morate eno ali drugo.',
	creditcard: 'Številka kreditne kartice ni pravilna. Preverite številko ali poskusite še enkrat. Vnešenih {length} znakov.'

});


/*
---

name: Locale.sv-SE.Date

description: Date messages for Swedish.

license: MIT-style license

authors:
  - Martin Lundgren

requires:
  - /Locale

provides: [Locale.sv-SE.Date]

...
*/

Locale.define('sv-SE', 'Date', {

	months: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december'],
	months_abbr: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
	days: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'],
	days_abbr: ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'],

	// Culture's date order: YYYY-MM-DD
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y-%m-%d',
	shortTime: '%H:%M',
	AM: '',
	PM: '',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'mindre än en minut sedan',
	minuteAgo: 'ungefär en minut sedan',
	minutesAgo: '{delta} minuter sedan',
	hourAgo: 'ungefär en timme sedan',
	hoursAgo: 'ungefär {delta} timmar sedan',
	dayAgo: '1 dag sedan',
	daysAgo: '{delta} dagar sedan',

	lessThanMinuteUntil: 'mindre än en minut sedan',
	minuteUntil: 'ungefär en minut sedan',
	minutesUntil: '{delta} minuter sedan',
	hourUntil: 'ungefär en timme sedan',
	hoursUntil: 'ungefär {delta} timmar sedan',
	dayUntil: '1 dag sedan',
	daysUntil: '{delta} dagar sedan'

});


/*
---

name: Locale.sv-SE.Form.Validator

description: Form Validator messages for Swedish.

license: MIT-style license

authors:
  - Martin Lundgren

requires:
  - /Locale

provides: [Locale.sv-SE.Form.Validator]

...
*/

Locale.define('sv-SE', 'FormValidator', {

	required: 'Fältet är obligatoriskt.',
	minLength: 'Ange minst {minLength} tecken (du angav {length} tecken).',
	maxLength: 'Ange högst {maxLength} tecken (du angav {length} tecken). ',
	integer: 'Ange ett heltal i fältet. Tal med decimaler (t.ex. 1,25) är inte tillåtna.',
	numeric: 'Ange endast numeriska värden i detta fält (t.ex. "1" eller "1.1" eller "-1" eller "-1,1").',
	digits: 'Använd endast siffror och skiljetecken i detta fält (till exempel ett telefonnummer med bindestreck tillåtet).',
	alpha: 'Använd endast bokstäver (a-ö) i detta fält. Inga mellanslag eller andra tecken är tillåtna.',
	alphanum: 'Använd endast bokstäver (a-ö) och siffror (0-9) i detta fält. Inga mellanslag eller andra tecken är tillåtna.',
	dateSuchAs: 'Ange ett giltigt datum som t.ex. {date}',
	dateInFormatMDY: 'Ange ett giltigt datum som t.ex. YYYY-MM-DD (i.e. "1999-12-31")',
	email: 'Ange en giltig e-postadress. Till exempel "erik@domain.com".',
	url: 'Ange en giltig webbadress som http://www.example.com.',
	currencyDollar: 'Ange en giltig belopp. Exempelvis 100,00.',
	oneRequired: 'Vänligen ange minst ett av dessa alternativ.',
	errorPrefix: 'Fel: ',
	warningPrefix: 'Varning: ',

	// Form.Validator.Extras
	noSpace: 'Det får inte finnas några mellanslag i detta fält.',
	reqChkByNode: 'Inga objekt är valda.',
	requiredChk: 'Detta är ett obligatoriskt fält.',
	reqChkByName: 'Välj en {label}.',
	match: 'Detta fält måste matcha {matchName}',
	startDate: 'startdatumet',
	endDate: 'slutdatum',
	currendDate: 'dagens datum',
	afterDate: 'Datumet bör vara samma eller senare än {label}.',
	beforeDate: 'Datumet bör vara samma eller tidigare än {label}.',
	startMonth: 'Välj en start månad',
	sameMonth: 'Dessa två datum måste vara i samma månad - du måste ändra det ena eller det andra.'

});


/*
---

name: Locale.uk-UA.Date

description: Date messages for Ukrainian (utf-8).

license: MIT-style license

authors:
  - Slik

requires:
  - /Locale

provides: [Locale.uk-UA.Date]

...
*/

(function(){

var pluralize = function(n, one, few, many, other){
	var d = (n / 10).toInt(),
		z = n % 10,
		s = (n / 100).toInt();

	if (d == 1 && n > 10) return many;
	if (z == 1) return one;
	if (z > 0 && z < 5) return few;
	return many;
};

Locale.define('uk-UA', 'Date', {

	months: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
	months_abbr: ['Січ', 'Лют', 'Бер', 'Квіт', 'Трав', 'Черв', 'Лип', 'Серп', 'Вер', 'Жовт', 'Лист', 'Груд' ],
	days: ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', "П'ятниця", 'Субота'],
	days_abbr: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],

	// Culture's date order: DD/MM/YYYY
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'до полудня',
	PM: 'по полудню',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: 'меньше хвилини тому',
	minuteAgo: 'хвилину тому',
	minutesAgo: function(delta){ return '{delta} ' + pluralize(delta, 'хвилину', 'хвилини', 'хвилин') + ' тому'; },
	hourAgo: 'годину тому',
	hoursAgo: function(delta){ return '{delta} ' + pluralize(delta, 'годину', 'години', 'годин') + ' тому'; },
	dayAgo: 'вчора',
	daysAgo: function(delta){ return '{delta} ' + pluralize(delta, 'день', 'дня', 'днів') + ' тому'; },
	weekAgo: 'тиждень тому',
	weeksAgo: function(delta){ return '{delta} ' + pluralize(delta, 'тиждень', 'тижні', 'тижнів') + ' тому'; },
	monthAgo: 'місяць тому',
	monthsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'місяць', 'місяці', 'місяців') + ' тому'; },
	yearAgo: 'рік тому',
	yearsAgo: function(delta){ return '{delta} ' + pluralize(delta, 'рік', 'роки', 'років') + ' тому'; },

	lessThanMinuteUntil: 'за мить',
	minuteUntil: 'через хвилину',
	minutesUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'хвилину', 'хвилини', 'хвилин'); },
	hourUntil: 'через годину',
	hoursUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'годину', 'години', 'годин'); },
	dayUntil: 'завтра',
	daysUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'день', 'дня', 'днів'); },
	weekUntil: 'через тиждень',
	weeksUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'тиждень', 'тижні', 'тижнів'); },
	monthUntil: 'через місяць',
	monthesUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'місяць', 'місяці', 'місяців'); },
	yearUntil: 'через рік',
	yearsUntil: function(delta){ return 'через {delta} ' + pluralize(delta, 'рік', 'роки', 'років'); }

});

})();


/*
---

name: Locale.uk-UA.Form.Validator

description: Form Validator messages for Ukrainian (utf-8).

license: MIT-style license

authors:
  - Slik

requires:
  - /Locale

provides: [Locale.uk-UA.Form.Validator]

...
*/

Locale.define('uk-UA', 'FormValidator', {

	required: 'Це поле повинне бути заповненим.',
	minLength: 'Введіть хоча б {minLength} символів (Ви ввели {length}).',
	maxLength: 'Кількість символів не може бути більше {maxLength} (Ви ввели {length}).',
	integer: 'Введіть в це поле число. Дробові числа (наприклад 1.25) не дозволені.',
	numeric: 'Введіть в це поле число (наприклад "1" або "1.1", або "-1", або "-1.1").',
	digits: 'В цьому полі ви можете використовувати лише цифри і знаки пунктіації (наприклад, телефонний номер з знаками дефізу або з крапками).',
	alpha: 'В цьому полі можна використовувати лише латинські літери (a-z). Пробіли і інші символи заборонені.',
	alphanum: 'В цьому полі можна використовувати лише латинські літери (a-z) і цифри (0-9). Пробіли і інші символи заборонені.',
	dateSuchAs: 'Введіть коректну дату {date}.',
	dateInFormatMDY: 'Введіть дату в форматі ММ/ДД/РРРР (наприклад "12/31/2009").',
	email: 'Введіть коректну адресу електронної пошти (наприклад "name@domain.com").',
	url: 'Введіть коректне інтернет-посилання (наприклад http://www.example.com).',
	currencyDollar: 'Введіть суму в доларах (наприклад "$100.00").',
	oneRequired: 'Заповніть одне з полів.',
	errorPrefix: 'Помилка: ',
	warningPrefix: 'Увага: ',

	noSpace: 'Пробіли заборонені.',
	reqChkByNode: 'Не відмічено жодного варіанту.',
	requiredChk: 'Це поле повинне бути віміченим.',
	reqChkByName: 'Будь ласка, відмітьте {label}.',
	match: 'Це поле повинно відповідати {matchName}',
	startDate: 'початкова дата',
	endDate: 'кінцева дата',
	currendDate: 'сьогоднішня дата',
	afterDate: 'Ця дата повинна бути такою ж, або пізнішою за {label}.',
	beforeDate: 'Ця дата повинна бути такою ж, або ранішою за {label}.',
	startMonth: 'Будь ласка, виберіть початковий місяць',
	sameMonth: 'Ці дати повинні відноситись одного і того ж місяця. Будь ласка, змініть одну з них.',
	creditcard: 'Номер кредитної карти введений неправильно. Будь ласка, перевірте його. Введено {length} символів.'

});


/*
---

name: Locale.zh-CH.Date

description: Date messages for Chinese (simplified and traditional).

license: MIT-style license

authors:
  - YMind Chan

requires:
  - /Locale

provides: [Locale.zh-CH.Date]

...
*/

// Simplified Chinese
Locale.define('zh-CHS', 'Date', {

	months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
	months_abbr: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
	days: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
	days_abbr: ['日', '一', '二', '三', '四', '五', '六'],

	// Culture's date order: YYYY-MM-DD
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y-%m-%d',
	shortTime: '%I:%M%p',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: '不到1分钟前',
	minuteAgo: '大约1分钟前',
	minutesAgo: '{delta}分钟之前',
	hourAgo: '大约1小时前',
	hoursAgo: '大约{delta}小时前',
	dayAgo: '1天前',
	daysAgo: '{delta}天前',
	weekAgo: '1星期前',
	weeksAgo: '{delta}星期前',
	monthAgo: '1个月前',
	monthsAgo: '{delta}个月前',
	yearAgo: '1年前',
	yearsAgo: '{delta}年前',

	lessThanMinuteUntil: '从现在开始不到1分钟',
	minuteUntil: '从现在开始約1分钟',
	minutesUntil: '从现在开始约{delta}分钟',
	hourUntil: '从现在开始1小时',
	hoursUntil: '从现在开始约{delta}小时',
	dayUntil: '从现在开始1天',
	daysUntil: '从现在开始{delta}天',
	weekUntil: '从现在开始1星期',
	weeksUntil: '从现在开始{delta}星期',
	monthUntil: '从现在开始一个月',
	monthsUntil: '从现在开始{delta}个月',
	yearUntil: '从现在开始1年',
	yearsUntil: '从现在开始{delta}年'

});

// Traditional Chinese
Locale.define('zh-CHT', 'Date', {

	months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
	months_abbr: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
	days: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
	days_abbr: ['日', '一', '二', '三', '四', '五', '六'],

	// Culture's date order: YYYY-MM-DD
	dateOrder: ['year', 'month', 'date'],
	shortDate: '%Y-%m-%d',
	shortTime: '%I:%M%p',
	AM: 'AM',
	PM: 'PM',
	firstDayOfWeek: 1,

	// Date.Extras
	ordinal: '',

	lessThanMinuteAgo: '不到1分鐘前',
	minuteAgo: '大約1分鐘前',
	minutesAgo: '{delta}分鐘之前',
	hourAgo: '大約1小時前',
	hoursAgo: '大約{delta}小時前',
	dayAgo: '1天前',
	daysAgo: '{delta}天前',
	weekAgo: '1星期前',
	weeksAgo: '{delta}星期前',
	monthAgo: '1个月前',
	monthsAgo: '{delta}个月前',
	yearAgo: '1年前',
	yearsAgo: '{delta}年前',

	lessThanMinuteUntil: '從現在開始不到1分鐘',
	minuteUntil: '從現在開始約1分鐘',
	minutesUntil: '從現在開始約{delta}分鐘',
	hourUntil: '從現在開始1小時',
	hoursUntil: '從現在開始約{delta}小時',
	dayUntil: '從現在開始1天',
	daysUntil: '從現在開始{delta}天',
	weekUntil: '從現在開始1星期',
	weeksUntil: '從現在開始{delta}星期',
	monthUntil: '從現在開始一個月',
	monthsUntil: '從現在開始{delta}個月',
	yearUntil: '從現在開始1年',
	yearsUntil: '從現在開始{delta}年'

});


/*
---

name: Locale.zh-CH.Form.Validator

description: Form Validator messages for Chinese (simplified and traditional).

license: MIT-style license

authors:
  - YMind Chan

requires:
  - /Locale
  - /Form.Validator

provides: [Form.zh-CH.Form.Validator, Form.Validator.CurrencyYuanValidator]

...
*/

// Simplified Chinese
Locale.define('zh-CHS', 'FormValidator', {

	required: '此项必填。',
	minLength: '请至少输入 {minLength} 个字符 (已输入 {length} 个)。',
	maxLength: '最多只能输入 {maxLength} 个字符 (已输入 {length} 个)。',
	integer: '请输入一个整数,不能包含小数点。例如:"1", "200"。',
	numeric: '请输入一个数字,例如:"1", "1.1", "-1", "-1.1"。',
	digits: '请输入由数字和标点符号组成的内容。例如电话号码。',
	alpha: '请输入 A-Z 的 26 个字母,不能包含空格或任何其他字符。',
	alphanum: '请输入 A-Z 的 26 个字母或 0-9 的 10 个数字,不能包含空格或任何其他字符。',
	dateSuchAs: '请输入合法的日期格式,如:{date}。',
	dateInFormatMDY: '请输入合法的日期格式,例如:YYYY-MM-DD ("2010-12-31")。',
	email: '请输入合法的电子信箱地址,例如:"fred@domain.com"。',
	url: '请输入合法的 Url 地址,例如:http://www.example.com。',
	currencyDollar: '请输入合法的货币符号,例如:¥100.0',
	oneRequired: '请至少选择一项。',
	errorPrefix: '错误:',
	warningPrefix: '警告:',

	// Form.Validator.Extras
	noSpace: '不能包含空格。',
	reqChkByNode: '未选择任何内容。',
	requiredChk: '此项必填。',
	reqChkByName: '请选择 {label}.',
	match: '必须与{matchName}相匹配',
	startDate: '起始日期',
	endDate: '结束日期',
	currendDate: '当前日期',
	afterDate: '日期必须等于或晚于 {label}.',
	beforeDate: '日期必须早于或等于 {label}.',
	startMonth: '请选择起始月份',
	sameMonth: '您必须修改两个日期中的一个,以确保它们在同一月份。',
	creditcard: '您输入的信用卡号码不正确。当前已输入{length}个字符。'

});

// Traditional Chinese
Locale.define('zh-CHT', 'FormValidator', {

	required: '此項必填。 ',
	minLength: '請至少輸入{minLength} 個字符(已輸入{length} 個)。 ',
	maxLength: '最多只能輸入{maxLength} 個字符(已輸入{length} 個)。 ',
	integer: '請輸入一個整數,不能包含小數點。例如:"1", "200"。 ',
	numeric: '請輸入一個數字,例如:"1", "1.1", "-1", "-1.1"。 ',
	digits: '請輸入由數字和標點符號組成的內容。例如電話號碼。 ',
	alpha: '請輸入AZ 的26 個字母,不能包含空格或任何其他字符。 ',
	alphanum: '請輸入AZ 的26 個字母或0-9 的10 個數字,不能包含空格或任何其他字符。 ',
	dateSuchAs: '請輸入合法的日期格式,如:{date}。 ',
	dateInFormatMDY: '請輸入合法的日期格式,例如:YYYY-MM-DD ("2010-12-31")。 ',
	email: '請輸入合法的電子信箱地址,例如:"fred@domain.com"。 ',
	url: '請輸入合法的Url 地址,例如:http://www.example.com。 ',
	currencyDollar: '請輸入合法的貨幣符號,例如:¥100.0',
	oneRequired: '請至少選擇一項。 ',
	errorPrefix: '錯誤:',
	warningPrefix: '警告:',

	// Form.Validator.Extras
	noSpace: '不能包含空格。 ',
	reqChkByNode: '未選擇任何內容。 ',
	requiredChk: '此項必填。 ',
	reqChkByName: '請選擇 {label}.',
	match: '必須與{matchName}相匹配',
	startDate: '起始日期',
	endDate: '結束日期',
	currendDate: '當前日期',
	afterDate: '日期必須等於或晚於{label}.',
	beforeDate: '日期必須早於或等於{label}.',
	startMonth: '請選擇起始月份',
	sameMonth: '您必須修改兩個日期中的一個,以確保它們在同一月份。 ',
	creditcard: '您輸入的信用卡號碼不正確。當前已輸入{length}個字符。 '

});

Form.Validator.add('validate-currency-yuan', {

	errorMsg: function(){
		return Form.Validator.getMsg('currencyYuan');
	},

	test: function(element){
		// [¥]1[##][,###]+[.##]
		// [¥]1###+[.##]
		// [¥]0.##
		// [¥].##
		return Form.Validator.getValidator('IsEmpty').test(element) || (/^¥?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(element.get('value'));
	}

});

system/js/polyfill.map.js000064400000000775152177723720011476 0ustar00(function(a){"map"in Array.prototype||(Array.prototype.map=function(c){if(this===a||null===this)throw new TypeError(this+" is not an object");if(!(c instanceof Function))throw new TypeError(c+" is not a function");for(var d=Object(this),e=arguments[1],f=d instanceof String?d.split(""):d,g=Math.max(Math.min(f.length,9007199254740991),0)||0,h=-1,i=[];++h<g;)h in f&&(i[h]=c.call(e,f[h],h,d));return i})}).call("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{});system/js/polyfill.filter.js000064400000001015152177723720012172 0ustar00(function(a){"filter"in Array.prototype||(Array.prototype.filter=function(c){if(this===a||null===this)throw new TypeError(this+" is not an object");if(!(c instanceof Function))throw new TypeError(c+" is not a function");for(var j,d=Object(this),e=arguments[1],f=d instanceof String?d.split(""):d,g=Math.max(Math.min(f.length,9007199254740991),0)||0,h=-1,i=[];++h<g;)j=f[h],h in f&&c.call(e,j,h,d)&&i.push(j);return i})}).call("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{});system/js/moduleorder.js000064400000004223152177723720011401 0ustar00!(function() {
	jQuery(document).ready(function($) {
		var $field = $('.module-ajax-ordering'),
			$url = $field.data('url'),
			$clientId = $field.data('client-id'),
			$element = document.getElementById($field.data('element')),
			$linkedField = $field.data('linked-field') ? $field.data('linked-field') : 'jform_position',
			$linkedFieldEl = $('#' + $linkedField),
			$originalOrder = $field.data('ordering'),
			$originalPos = $linkedFieldEl.val(),
			$name = $field.data('name'),
			$attr = $field.data('client-attr') ? $field.data('client-attr') : '',
			$id = $field.attr('id') + '_1',
			$orders = new Array(),
			getNewOrder = function() {
				$.ajax({
					type: "GET",
					dataType: "json",
					url: $url,
					data: {
						"client_id": $clientId,
						"position" : $originalPos
					}
					})
					.fail(function (jqXHR, textStatus, error) {
						Joomla.renderMessages(Joomla.ajaxErrorsMessages(jqXHR, textStatus, error));

						window.scrollTo(0, 0);
					})
					.done(function (response) {
						if (response.data)
						{
							// Check if everything is OK
							if (response.data.length > 0)
							{
								var i;
								for (i = 0; i < response.data.length; ++i) {
									$orders[i] = response.data[i].split(',');
								}

								// Remove previous <select>, it will be recreated by writeDynaList()
								var $previous = $("#" + $id);
								if ($previous.data('chosen')){
									$previous.chosen('destroy');
								}
								$previous.remove();

								writeDynaList('name="' + $name + '" id="' + $id +'"' + $attr, $orders, $originalPos, $originalPos, $originalOrder, $element);

								// Add chosen to the element
								$("#" + $id).chosen();
							}
						}

						// Render messages, if any. There are only message in case of errors.
						if (typeof response.messages == 'object' && response.messages !== null)
						{
							Joomla.renderMessages(response.messages);
							window.scrollTo(0, 0);
						}
					});
			};

		// Initialize the field on document ready
		getNewOrder();

		// Event listener for the linked field
		$linkedFieldEl.on('change', function() {
			$originalPos = $linkedFieldEl.val();
			getNewOrder();
		});
	});
})();
system/js/mootools-core-uncompressed.js000064400000446434152177723720014404 0ustar00/*
---
MooTools: the javascript framework

web build:
 - http://mootools.net/core/76bf47062d6c1983d66ce47ad66aa0e0

packager build:
 - packager build Core/Core Core/Array Core/String Core/Number Core/Function Core/Object Core/Event Core/Browser Core/Class Core/Class.Extras Core/Slick.Parser Core/Slick.Finder Core/Element Core/Element.Style Core/Element.Event Core/Element.Delegation Core/Element.Dimensions Core/Fx Core/Fx.CSS Core/Fx.Tween Core/Fx.Morph Core/Fx.Transitions Core/Request Core/Request.HTML Core/Request.JSON Core/Cookie Core/JSON Core/DOMReady Core/Swiff

...
*/

/*
---

name: Core

description: The heart of MooTools.

license: MIT-style license.

copyright: Copyright (c) 2006-2012 [Valerio Proietti](http://mad4milk.net/).

authors: The MooTools production team (http://mootools.net/developers/)

inspiration:
  - Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
  - Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)

provides: [Core, MooTools, Type, typeOf, instanceOf, Native]

...
*/

(function(){

this.MooTools = {
	version: '1.4.5',
	build: '74e34796f5f76640cdb98853004650aea1499d69'
};

// typeOf, instanceOf

var typeOf = this.typeOf = function(item){
	if (item == null) return 'null';
	if (item.$family != null) return item.$family();

	if (item.nodeName){
		if (item.nodeType == 1) return 'element';
		if (item.nodeType == 3) return (/\S/).test(item.nodeValue) ? 'textnode' : 'whitespace';
	} else if (typeof item.length == 'number'){
		if (item.callee) return 'arguments';
		if ('item' in item) return 'collection';
	}

	return typeof item;
};

var instanceOf = this.instanceOf = function(item, object){
	if (item == null) return false;
	var constructor = item.$constructor || item.constructor;
	while (constructor){
		if (constructor === object) return true;
		constructor = constructor.parent;
	}
	/*<ltIE8>*/
	if (!item.hasOwnProperty) return false;
	/*</ltIE8>*/
	return item instanceof object;
};

// Function overloading

var Function = this.Function;

var enumerables = true;
for (var i in {toString: 1}) enumerables = null;
if (enumerables) enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];

Function.prototype.overloadSetter = function(usePlural){
	var self = this;
	return function(a, b){
		if (a == null) return this;
		if (usePlural || typeof a != 'string'){
			for (var k in a) self.call(this, k, a[k]);
			if (enumerables) for (var i = enumerables.length; i--;){
				k = enumerables[i];
				if (a.hasOwnProperty(k)) self.call(this, k, a[k]);
			}
		} else {
			self.call(this, a, b);
		}
		return this;
	};
};

Function.prototype.overloadGetter = function(usePlural){
	var self = this;
	return function(a){
		var args, result;
		if (typeof a != 'string') args = a;
		else if (arguments.length > 1) args = arguments;
		else if (usePlural) args = [a];
		if (args){
			result = {};
			for (var i = 0; i < args.length; i++) result[args[i]] = self.call(this, args[i]);
		} else {
			result = self.call(this, a);
		}
		return result;
	};
};

Function.prototype.extend = function(key, value){
	this[key] = value;
}.overloadSetter();

Function.prototype.implement = function(key, value){
	this.prototype[key] = value;
}.overloadSetter();

// From

var slice = Array.prototype.slice;

Function.from = function(item){
	return (typeOf(item) == 'function') ? item : function(){
		return item;
	};
};

Array.from = function(item){
	if (item == null) return [];
	return (Type.isEnumerable(item) && typeof item != 'string') ? (typeOf(item) == 'array') ? item : slice.call(item) : [item];
};

Number.from = function(item){
	var number = parseFloat(item);
	return isFinite(number) ? number : null;
};

String.from = function(item){
	return item + '';
};

// hide, protect

Function.implement({

	hide: function(){
		this.$hidden = true;
		return this;
	},

	protect: function(){
		this.$protected = true;
		return this;
	}

});

// Type

var Type = this.Type = function(name, object){
	if (name){
		var lower = name.toLowerCase();
		var typeCheck = function(item){
			return (typeOf(item) == lower);
		};

		Type['is' + name] = typeCheck;
		if (object != null){
			object.prototype.$family = (function(){
				return lower;
			}).hide();
			
		}
	}

	if (object == null) return null;

	object.extend(this);
	object.$constructor = Type;
	object.prototype.$constructor = object;

	return object;
};

var toString = Object.prototype.toString;

Type.isEnumerable = function(item){
	return (item != null && typeof item.length == 'number' && toString.call(item) != '[object Function]' );
};

var hooks = {};

var hooksOf = function(object){
	var type = typeOf(object.prototype);
	return hooks[type] || (hooks[type] = []);
};

var implement = function(name, method){
	if (method && method.$hidden) return;

	var hooks = hooksOf(this);

	for (var i = 0; i < hooks.length; i++){
		var hook = hooks[i];
		if (typeOf(hook) == 'type') implement.call(hook, name, method);
		else hook.call(this, name, method);
	}

	var previous = this.prototype[name];
	if (previous == null || !previous.$protected) this.prototype[name] = method;

	if (this[name] == null && typeOf(method) == 'function') extend.call(this, name, function(item){
		return method.apply(item, slice.call(arguments, 1));
	});
};

var extend = function(name, method){
	if (method && method.$hidden) return;
	var previous = this[name];
	if (previous == null || !previous.$protected) this[name] = method;
};

Type.implement({

	implement: implement.overloadSetter(),

	extend: extend.overloadSetter(),

	alias: function(name, existing){
		implement.call(this, name, this.prototype[existing]);
	}.overloadSetter(),

	mirror: function(hook){
		hooksOf(this).push(hook);
		return this;
	}

});

new Type('Type', Type);

// Default Types

var force = function(name, object, methods){
	var isType = (object != Object),
		prototype = object.prototype;

	if (isType) object = new Type(name, object);

	for (var i = 0, l = methods.length; i < l; i++){
		var key = methods[i],
			generic = object[key],
			proto = prototype[key];

		if (generic) generic.protect();
		if (isType && proto) object.implement(key, proto.protect());
	}

	if (isType){
		var methodsEnumerable = prototype.propertyIsEnumerable(methods[0]);
		object.forEachMethod = function(fn){
			if (!methodsEnumerable) for (var i = 0, l = methods.length; i < l; i++){
				fn.call(prototype, prototype[methods[i]], methods[i]);
			}
			for (var key in prototype) fn.call(prototype, prototype[key], key)
		};
	}

	return force;
};

force('String', String, [
	'charAt', 'charCodeAt', 'concat', 'indexOf', 'lastIndexOf', 'match', 'quote', 'replace', 'search',
	'slice', 'split', 'substr', 'substring', 'trim', 'toLowerCase', 'toUpperCase'
])('Array', Array, [
	'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'concat', 'join', 'slice',
	'indexOf', 'lastIndexOf', 'filter', 'forEach', 'every', 'map', 'some', 'reduce', 'reduceRight'
])('Number', Number, [
	'toExponential', 'toFixed', 'toLocaleString', 'toPrecision'
])('Function', Function, [
	'apply', 'call', 'bind'
])('RegExp', RegExp, [
	'exec', 'test'
])('Object', Object, [
	'create', 'defineProperty', 'defineProperties', 'keys',
	'getPrototypeOf', 'getOwnPropertyDescriptor', 'getOwnPropertyNames',
	'preventExtensions', 'isExtensible', 'seal', 'isSealed', 'freeze', 'isFrozen'
])('Date', Date, ['now']);

Object.extend = extend.overloadSetter();

Date.extend('now', function(){
	return +(new Date);
});

new Type('Boolean', Boolean);

// fixes NaN returning as Number

Number.prototype.$family = function(){
	return isFinite(this) ? 'number' : 'null';
}.hide();

// Number.random

Number.extend('random', function(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min);
});

// forEach, each

var hasOwnProperty = Object.prototype.hasOwnProperty;
Object.extend('forEach', function(object, fn, bind){
	for (var key in object){
		if (hasOwnProperty.call(object, key)) fn.call(bind, object[key], key, object);
	}
});

Object.each = Object.forEach;

Array.implement({

	forEach: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++){
			if (i in this) fn.call(bind, this[i], i, this);
		}
	},

	each: function(fn, bind){
		Array.forEach(this, fn, bind);
		return this;
	}

});

// Array & Object cloning, Object merging and appending

var cloneOf = function(item){
	switch (typeOf(item)){
		case 'array': return item.clone();
		case 'object': return Object.clone(item);
		default: return item;
	}
};

Array.implement('clone', function(){
	var i = this.length, clone = new Array(i);
	while (i--) clone[i] = cloneOf(this[i]);
	return clone;
});

var mergeOne = function(source, key, current){
	switch (typeOf(current)){
		case 'object':
			if (typeOf(source[key]) == 'object') Object.merge(source[key], current);
			else source[key] = Object.clone(current);
		break;
		case 'array': source[key] = current.clone(); break;
		default: source[key] = current;
	}
	return source;
};

Object.extend({

	merge: function(source, k, v){
		if (typeOf(k) == 'string') return mergeOne(source, k, v);
		for (var i = 1, l = arguments.length; i < l; i++){
			var object = arguments[i];
			for (var key in object) mergeOne(source, key, object[key]);
		}
		return source;
	},

	clone: function(object){
		var clone = {};
		for (var key in object) clone[key] = cloneOf(object[key]);
		return clone;
	},

	append: function(original){
		for (var i = 1, l = arguments.length; i < l; i++){
			var extended = arguments[i] || {};
			for (var key in extended) original[key] = extended[key];
		}
		return original;
	}

});

// Object-less types

['Object', 'WhiteSpace', 'TextNode', 'Collection', 'Arguments'].each(function(name){
	new Type(name);
});

// Unique ID

var UID = Date.now();

String.extend('uniqueID', function(){
	return (UID++).toString(36);
});



})();


/*
---

name: Array

description: Contains Array Prototypes like each, contains, and erase.

license: MIT-style license.

requires: Type

provides: Array

...
*/

Array.implement({

	/*<!ES5>*/
	every: function(fn, bind){
		for (var i = 0, l = this.length >>> 0; i < l; i++){
			if ((i in this) && !fn.call(bind, this[i], i, this)) return false;
		}
		return true;
	},

	filter: function(fn, bind){
		var results = [];
		for (var value, i = 0, l = this.length >>> 0; i < l; i++) if (i in this){
			value = this[i];
			if (fn.call(bind, value, i, this)) results.push(value);
		}
		return results;
	},

	indexOf: function(item, from){
		var length = this.length >>> 0;
		for (var i = (from < 0) ? Math.max(0, length + from) : from || 0; i < length; i++){
			if (this[i] === item) return i;
		}
		return -1;
	},

	map: function(fn, bind){
		var length = this.length >>> 0, results = Array(length);
		for (var i = 0; i < length; i++){
			if (i in this) results[i] = fn.call(bind, this[i], i, this);
		}
		return results;
	},

	some: function(fn, bind){
		for (var i = 0, l = this.length >>> 0; i < l; i++){
			if ((i in this) && fn.call(bind, this[i], i, this)) return true;
		}
		return false;
	},
	/*</!ES5>*/

	clean: function(){
		return this.filter(function(item){
			return item != null;
		});
	},

	invoke: function(methodName){
		var args = Array.slice(arguments, 1);
		return this.map(function(item){
			return item[methodName].apply(item, args);
		});
	},

	associate: function(keys){
		var obj = {}, length = Math.min(this.length, keys.length);
		for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
		return obj;
	},

	link: function(object){
		var result = {};
		for (var i = 0, l = this.length; i < l; i++){
			for (var key in object){
				if (object[key](this[i])){
					result[key] = this[i];
					delete object[key];
					break;
				}
			}
		}
		return result;
	},

	contains: function(item, from){
		return this.indexOf(item, from) != -1;
	},

	append: function(array){
		this.push.apply(this, array);
		return this;
	},

	getLast: function(){
		return (this.length) ? this[this.length - 1] : null;
	},

	getRandom: function(){
		return (this.length) ? this[Number.random(0, this.length - 1)] : null;
	},

	include: function(item){
		if (!this.contains(item)) this.push(item);
		return this;
	},

	combine: function(array){
		for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
		return this;
	},

	erase: function(item){
		for (var i = this.length; i--;){
			if (this[i] === item) this.splice(i, 1);
		}
		return this;
	},

	empty: function(){
		this.length = 0;
		return this;
	},

	flatten: function(){
		var array = [];
		for (var i = 0, l = this.length; i < l; i++){
			var type = typeOf(this[i]);
			if (type == 'null') continue;
			array = array.concat((type == 'array' || type == 'collection' || type == 'arguments' || instanceOf(this[i], Array)) ? Array.flatten(this[i]) : this[i]);
		}
		return array;
	},

	pick: function(){
		for (var i = 0, l = this.length; i < l; i++){
			if (this[i] != null) return this[i];
		}
		return null;
	},

	hexToRgb: function(array){
		if (this.length != 3) return null;
		var rgb = this.map(function(value){
			if (value.length == 1) value += value;
			return value.toInt(16);
		});
		return (array) ? rgb : 'rgb(' + rgb + ')';
	},

	rgbToHex: function(array){
		if (this.length < 3) return null;
		if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
		var hex = [];
		for (var i = 0; i < 3; i++){
			var bit = (this[i] - 0).toString(16);
			hex.push((bit.length == 1) ? '0' + bit : bit);
		}
		return (array) ? hex : '#' + hex.join('');
	}

});




/*
---

name: String

description: Contains String Prototypes like camelCase, capitalize, test, and toInt.

license: MIT-style license.

requires: Type

provides: String

...
*/

String.implement({

	test: function(regex, params){
		return ((typeOf(regex) == 'regexp') ? regex : new RegExp('' + regex, params)).test(this);
	},

	contains: function(string, separator){
		return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : String(this).indexOf(string) > -1;
	},

	trim: function(){
		return String(this).replace(/^\s+|\s+$/g, '');
	},

	clean: function(){
		return String(this).replace(/\s+/g, ' ').trim();
	},

	camelCase: function(){
		return String(this).replace(/-\D/g, function(match){
			return match.charAt(1).toUpperCase();
		});
	},

	hyphenate: function(){
		return String(this).replace(/[A-Z]/g, function(match){
			return ('-' + match.charAt(0).toLowerCase());
		});
	},

	capitalize: function(){
		return String(this).replace(/\b[a-z]/g, function(match){
			return match.toUpperCase();
		});
	},

	escapeRegExp: function(){
		return String(this).replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	hexToRgb: function(array){
		var hex = String(this).match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
		return (hex) ? hex.slice(1).hexToRgb(array) : null;
	},

	rgbToHex: function(array){
		var rgb = String(this).match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHex(array) : null;
	},

	substitute: function(object, regexp){
		return String(this).replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
			if (match.charAt(0) == '\\') return match.slice(1);
			return (object[name] != null) ? object[name] : '';
		});
	}

});


/*
---

name: Number

description: Contains Number Prototypes like limit, round, times, and ceil.

license: MIT-style license.

requires: Type

provides: Number

...
*/

Number.implement({

	limit: function(min, max){
		return Math.min(max, Math.max(min, this));
	},

	round: function(precision){
		precision = Math.pow(10, precision || 0).toFixed(precision < 0 ? -precision : 0);
		return Math.round(this * precision) / precision;
	},

	times: function(fn, bind){
		for (var i = 0; i < this; i++) fn.call(bind, i, this);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	}

});

Number.alias('each', 'times');

(function(math){
	var methods = {};
	math.each(function(name){
		if (!Number[name]) methods[name] = function(){
			return Math[name].apply(null, [this].concat(Array.from(arguments)));
		};
	});
	Number.implement(methods);
})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);


/*
---

name: Function

description: Contains Function Prototypes like create, bind, pass, and delay.

license: MIT-style license.

requires: Type

provides: Function

...
*/

Function.extend({

	attempt: function(){
		for (var i = 0, l = arguments.length; i < l; i++){
			try {
				return arguments[i]();
			} catch (e){}
		}
		return null;
	}

});

Function.implement({

	attempt: function(args, bind){
		try {
			return this.apply(bind, Array.from(args));
		} catch (e){}

		return null;
	},

	/*<!ES5-bind>*/
	bind: function(that){
		var self = this,
			args = arguments.length > 1 ? Array.slice(arguments, 1) : null,
			F = function(){};

		var bound = function(){
			var context = that, length = arguments.length;
			if (this instanceof bound){
				F.prototype = self.prototype;
				context = new F;
			}
			var result = (!args && !length)
				? self.call(context)
				: self.apply(context, args && length ? args.concat(Array.slice(arguments)) : args || arguments);
			return context == that ? result : context;
		};
		return bound;
	},
	/*</!ES5-bind>*/

	pass: function(args, bind){
		var self = this;
		if (args != null) args = Array.from(args);
		return function(){
			return self.apply(bind, args || arguments);
		};
	},

	delay: function(delay, bind, args){
		return setTimeout(this.pass((args == null ? [] : args), bind), delay);
	},

	periodical: function(periodical, bind, args){
		return setInterval(this.pass((args == null ? [] : args), bind), periodical);
	}

});




/*
---

name: Object

description: Object generic methods

license: MIT-style license.

requires: Type

provides: [Object, Hash]

...
*/

(function(){

var hasOwnProperty = Object.prototype.hasOwnProperty;

Object.extend({

	subset: function(object, keys){
		var results = {};
		for (var i = 0, l = keys.length; i < l; i++){
			var k = keys[i];
			if (k in object) results[k] = object[k];
		}
		return results;
	},

	map: function(object, fn, bind){
		var results = {};
		for (var key in object){
			if (hasOwnProperty.call(object, key)) results[key] = fn.call(bind, object[key], key, object);
		}
		return results;
	},

	filter: function(object, fn, bind){
		var results = {};
		for (var key in object){
			var value = object[key];
			if (hasOwnProperty.call(object, key) && fn.call(bind, value, key, object)) results[key] = value;
		}
		return results;
	},

	every: function(object, fn, bind){
		for (var key in object){
			if (hasOwnProperty.call(object, key) && !fn.call(bind, object[key], key)) return false;
		}
		return true;
	},

	some: function(object, fn, bind){
		for (var key in object){
			if (hasOwnProperty.call(object, key) && fn.call(bind, object[key], key)) return true;
		}
		return false;
	},

	keys: function(object){
		var keys = [];
		for (var key in object){
			if (hasOwnProperty.call(object, key)) keys.push(key);
		}
		return keys;
	},

	values: function(object){
		var values = [];
		for (var key in object){
			if (hasOwnProperty.call(object, key)) values.push(object[key]);
		}
		return values;
	},

	getLength: function(object){
		return Object.keys(object).length;
	},

	keyOf: function(object, value){
		for (var key in object){
			if (hasOwnProperty.call(object, key) && object[key] === value) return key;
		}
		return null;
	},

	contains: function(object, value){
		return Object.keyOf(object, value) != null;
	},

	toQueryString: function(object, base){
		var queryString = [];

		Object.each(object, function(value, key){
			if (base) key = base + '[' + key + ']';
			var result;
			switch (typeOf(value)){
				case 'object': result = Object.toQueryString(value, key); break;
				case 'array':
					var qs = {};
					value.each(function(val, i){
						qs[i] = val;
					});
					result = Object.toQueryString(qs, key);
				break;
				default: result = key + '=' + encodeURIComponent(value);
			}
			if (value != null) queryString.push(result);
		});

		return queryString.join('&');
	}

});

})();




/*
---

name: Browser

description: The Browser Object. Contains Browser initialization, Window and Document, and the Browser Hash.

license: MIT-style license.

requires: [Array, Function, Number, String]

provides: [Browser, Window, Document]

...
*/

(function(){

var document = this.document;
var window = document.window = this;

var ua = navigator.userAgent.toLowerCase(),
	platform = navigator.platform.toLowerCase(),
	UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [null, 'unknown', 0],
	mode = UA[1] == 'ie' && document.documentMode;

var Browser = this.Browser = {

	extend: Function.prototype.extend,

	name: (UA[1] == 'version') ? UA[3] : UA[1],

	version: mode || parseFloat((UA[1] == 'opera' && UA[4]) ? UA[4] : UA[2]),

	Platform: {
		name: ua.match(/ip(?:ad|od|hone)/) ? 'ios' : (ua.match(/(?:webos|android)/) || platform.match(/mac|win|linux/) || ['other'])[0]
	},

	Features: {
		xpath: !!(document.evaluate),
		air: !!(window.runtime),
		query: !!(document.querySelector),
		json: !!(window.JSON)
	},

	Plugins: {}

};

Browser[Browser.name] = true;
Browser[Browser.name + parseInt(Browser.version, 10)] = true;
Browser.Platform[Browser.Platform.name] = true;

// Request

Browser.Request = (function(){

	var XMLHTTP = function(){
		return new XMLHttpRequest();
	};

	var MSXML2 = function(){
		return new ActiveXObject('MSXML2.XMLHTTP');
	};

	var MSXML = function(){
		return new ActiveXObject('Microsoft.XMLHTTP');
	};

	return Function.attempt(function(){
		XMLHTTP();
		return XMLHTTP;
	}, function(){
		MSXML2();
		return MSXML2;
	}, function(){
		MSXML();
		return MSXML;
	});

})();

Browser.Features.xhr = !!(Browser.Request);

// Flash detection

var version = (Function.attempt(function(){
	return navigator.plugins['Shockwave Flash'].description;
}, function(){
	return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
}) || '0 r0').match(/\d+/g);

Browser.Plugins.Flash = {
	version: Number(version[0] || '0.' + version[1]) || 0,
	build: Number(version[2]) || 0
};

// String scripts

Browser.exec = function(text){
	if (!text) return text;
	if (window.execScript){
		window.execScript(text);
	} else {
		var script = document.createElement('script');
		script.setAttribute('type', 'text/javascript');
		script.text = text;
		document.head.appendChild(script);
		document.head.removeChild(script);
	}
	return text;
};

String.implement('stripScripts', function(exec){
	var scripts = '';
	var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(all, code){
		scripts += code + '\n';
		return '';
	});
	if (exec === true) Browser.exec(scripts);
	else if (typeOf(exec) == 'function') exec(scripts, text);
	return text;
});

// Window, Document

Browser.extend({
	Document: this.Document,
	Window: this.Window,
	Element: this.Element,
	Event: this.Event
});

this.Window = this.$constructor = new Type('Window', function(){});

this.$family = Function.from('window').hide();

Window.mirror(function(name, method){
	window[name] = method;
});

this.Document = document.$constructor = new Type('Document', function(){});

document.$family = Function.from('document').hide();

Document.mirror(function(name, method){
	document[name] = method;
});

document.html = document.documentElement;
if (!document.head) document.head = document.getElementsByTagName('head')[0];

if (document.execCommand) try {
	document.execCommand("BackgroundImageCache", false, true);
} catch (e){}

/*<ltIE9>*/
if (this.attachEvent && !this.addEventListener){
	var unloadEvent = function(){
		this.detachEvent('onunload', unloadEvent);
		document.head = document.html = document.window = null;
	};
	this.attachEvent('onunload', unloadEvent);
}

// IE fails on collections and <select>.options (refers to <select>)
var arrayFrom = Array.from;
try {
	arrayFrom(document.html.childNodes);
} catch(e){
	Array.from = function(item){
		if (typeof item != 'string' && Type.isEnumerable(item) && typeOf(item) != 'array'){
			var i = item.length, array = new Array(i);
			while (i--) array[i] = item[i];
			return array;
		}
		return arrayFrom(item);
	};

	var prototype = Array.prototype,
		slice = prototype.slice;
	['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'concat', 'join', 'slice'].each(function(name){
		var method = prototype[name];
		Array[name] = function(item){
			return method.apply(Array.from(item), slice.call(arguments, 1));
		};
	});
}
/*</ltIE9>*/



})();


/*
---

name: Event

description: Contains the Event Type, to make the event object cross-browser.

license: MIT-style license.

requires: [Window, Document, Array, Function, String, Object]

provides: Event

...
*/

(function() {

var _keys = {};

var DOMEvent = this.DOMEvent = new Type('DOMEvent', function(event, win){
	if (!win) win = window;
	event = event || win.event;
	if (event.$extended) return event;
	this.event = event;
	this.$extended = true;
	this.shift = event.shiftKey;
	this.control = event.ctrlKey;
	this.alt = event.altKey;
	this.meta = event.metaKey;
	var type = this.type = event.type;
	var target = event.target || event.srcElement;
	while (target && target.nodeType == 3) target = target.parentNode;
	this.target = document.id(target);

	if (type.indexOf('key') == 0){
		var code = this.code = (event.which || event.keyCode);
		this.key = _keys[code];
		if (type == 'keydown'){
			if (code > 111 && code < 124) this.key = 'f' + (code - 111);
			else if (code > 95 && code < 106) this.key = code - 96;
		}
		if (this.key == null) this.key = String.fromCharCode(code).toLowerCase();
	} else if (type == 'click' || type == 'dblclick' || type == 'contextmenu' || type == 'DOMMouseScroll' || type.indexOf('mouse') == 0){
		var doc = win.document;
		doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
		this.page = {
			x: (event.pageX != null) ? event.pageX : event.clientX + doc.scrollLeft,
			y: (event.pageY != null) ? event.pageY : event.clientY + doc.scrollTop
		};
		this.client = {
			x: (event.pageX != null) ? event.pageX - win.pageXOffset : event.clientX,
			y: (event.pageY != null) ? event.pageY - win.pageYOffset : event.clientY
		};
		if (type == 'DOMMouseScroll' || type == 'mousewheel')
			this.wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;

		this.rightClick = (event.which == 3 || event.button == 2);
		if (type == 'mouseover' || type == 'mouseout'){
			var related = event.relatedTarget || event[(type == 'mouseover' ? 'from' : 'to') + 'Element'];
			while (related && related.nodeType == 3) related = related.parentNode;
			this.relatedTarget = document.id(related);
		}
	} else if (type.indexOf('touch') == 0 || type.indexOf('gesture') == 0){
		this.rotation = event.rotation;
		this.scale = event.scale;
		this.targetTouches = event.targetTouches;
		this.changedTouches = event.changedTouches;
		var touches = this.touches = event.touches;
		if (touches && touches[0]){
			var touch = touches[0];
			this.page = {x: touch.pageX, y: touch.pageY};
			this.client = {x: touch.clientX, y: touch.clientY};
		}
	}

	if (!this.client) this.client = {};
	if (!this.page) this.page = {};
});

DOMEvent.implement({

	stop: function(){
		return this.preventDefault().stopPropagation();
	},

	stopPropagation: function(){
		if (this.event.stopPropagation) this.event.stopPropagation();
		else this.event.cancelBubble = true;
		return this;
	},

	preventDefault: function(){
		if (this.event.preventDefault) this.event.preventDefault();
		else this.event.returnValue = false;
		return this;
	}

});

DOMEvent.defineKey = function(code, key){
	_keys[code] = key;
	return this;
};

DOMEvent.defineKeys = DOMEvent.defineKey.overloadSetter(true);

DOMEvent.defineKeys({
	'38': 'up', '40': 'down', '37': 'left', '39': 'right',
	'27': 'esc', '32': 'space', '8': 'backspace', '9': 'tab',
	'46': 'delete', '13': 'enter'
});

})();






/*
---

name: Class

description: Contains the Class Function for easily creating, extending, and implementing reusable Classes.

license: MIT-style license.

requires: [Array, String, Function, Number]

provides: Class

...
*/

(function(){

var Class = this.Class = new Type('Class', function(params){
	if (instanceOf(params, Function)) params = {initialize: params};

	var newClass = function(){
		reset(this);
		if (newClass.$prototyping) return this;
		this.$caller = null;
		var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
		this.$caller = this.caller = null;
		return value;
	}.extend(this).implement(params);

	newClass.$constructor = Class;
	newClass.prototype.$constructor = newClass;
	newClass.prototype.parent = parent;

	return newClass;
});

var parent = function(){
	if (!this.$caller) throw new Error('The method "parent" cannot be called.');
	var name = this.$caller.$name,
		parent = this.$caller.$owner.parent,
		previous = (parent) ? parent.prototype[name] : null;
	if (!previous) throw new Error('The method "' + name + '" has no parent.');
	return previous.apply(this, arguments);
};

var reset = function(object){
	for (var key in object){
		var value = object[key];
		switch (typeOf(value)){
			case 'object':
				var F = function(){};
				F.prototype = value;
				object[key] = reset(new F);
			break;
			case 'array': object[key] = value.clone(); break;
		}
	}
	return object;
};

var wrap = function(self, key, method){
	if (method.$origin) method = method.$origin;
	var wrapper = function(){
		if (method.$protected && this.$caller == null) throw new Error('The method "' + key + '" cannot be called.');
		var caller = this.caller, current = this.$caller;
		this.caller = current; this.$caller = wrapper;
		var result = method.apply(this, arguments);
		this.$caller = current; this.caller = caller;
		return result;
	}.extend({$owner: self, $origin: method, $name: key});
	return wrapper;
};

var implement = function(key, value, retain){
	if (Class.Mutators.hasOwnProperty(key)){
		value = Class.Mutators[key].call(this, value);
		if (value == null) return this;
	}

	if (typeOf(value) == 'function'){
		if (value.$hidden) return this;
		this.prototype[key] = (retain) ? value : wrap(this, key, value);
	} else {
		Object.merge(this.prototype, key, value);
	}

	return this;
};

var getInstance = function(klass){
	klass.$prototyping = true;
	var proto = new klass;
	delete klass.$prototyping;
	return proto;
};

Class.implement('implement', implement.overloadSetter());

Class.Mutators = {

	Extends: function(parent){
		this.parent = parent;
		this.prototype = getInstance(parent);
	},

	Implements: function(items){
		Array.from(items).each(function(item){
			var instance = new item;
			for (var key in instance) implement.call(this, key, instance[key], true);
		}, this);
	}
};

})();


/*
---

name: Class.Extras

description: Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.

license: MIT-style license.

requires: Class

provides: [Class.Extras, Chain, Events, Options]

...
*/

(function(){

this.Chain = new Class({

	$chain: [],

	chain: function(){
		this.$chain.append(Array.flatten(arguments));
		return this;
	},

	callChain: function(){
		return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
	},

	clearChain: function(){
		this.$chain.empty();
		return this;
	}

});

var removeOn = function(string){
	return string.replace(/^on([A-Z])/, function(full, first){
		return first.toLowerCase();
	});
};

this.Events = new Class({

	$events: {},

	addEvent: function(type, fn, internal){
		type = removeOn(type);

		

		this.$events[type] = (this.$events[type] || []).include(fn);
		if (internal) fn.internal = true;
		return this;
	},

	addEvents: function(events){
		for (var type in events) this.addEvent(type, events[type]);
		return this;
	},

	fireEvent: function(type, args, delay){
		type = removeOn(type);
		var events = this.$events[type];
		if (!events) return this;
		args = Array.from(args);
		events.each(function(fn){
			if (delay) fn.delay(delay, this, args);
			else fn.apply(this, args);
		}, this);
		return this;
	},

	removeEvent: function(type, fn){
		type = removeOn(type);
		var events = this.$events[type];
		if (events && !fn.internal){
			var index =  events.indexOf(fn);
			if (index != -1) delete events[index];
		}
		return this;
	},

	removeEvents: function(events){
		var type;
		if (typeOf(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		if (events) events = removeOn(events);
		for (type in this.$events){
			if (events && events != type) continue;
			var fns = this.$events[type];
			for (var i = fns.length; i--;) if (i in fns){
				this.removeEvent(type, fns[i]);
			}
		}
		return this;
	}

});

this.Options = new Class({

	setOptions: function(){
		var options = this.options = Object.merge.apply(null, [{}, this.options].append(arguments));
		if (this.addEvent) for (var option in options){
			if (typeOf(options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
			this.addEvent(option, options[option]);
			delete options[option];
		}
		return this;
	}

});

})();


/*
---
name: Slick.Parser
description: Standalone CSS3 Selector parser
provides: Slick.Parser
...
*/

;(function(){

var parsed,
	separatorIndex,
	combinatorIndex,
	reversed,
	cache = {},
	reverseCache = {},
	reUnescape = /\\/g;

var parse = function(expression, isReversed){
	if (expression == null) return null;
	if (expression.Slick === true) return expression;
	expression = ('' + expression).replace(/^\s+|\s+$/g, '');
	reversed = !!isReversed;
	var currentCache = (reversed) ? reverseCache : cache;
	if (currentCache[expression]) return currentCache[expression];
	parsed = {
		Slick: true,
		expressions: [],
		raw: expression,
		reverse: function(){
			return parse(this.raw, true);
		}
	};
	separatorIndex = -1;
	while (expression != (expression = expression.replace(regexp, parser)));
	parsed.length = parsed.expressions.length;
	return currentCache[parsed.raw] = (reversed) ? reverse(parsed) : parsed;
};

var reverseCombinator = function(combinator){
	if (combinator === '!') return ' ';
	else if (combinator === ' ') return '!';
	else if ((/^!/).test(combinator)) return combinator.replace(/^!/, '');
	else return '!' + combinator;
};

var reverse = function(expression){
	var expressions = expression.expressions;
	for (var i = 0; i < expressions.length; i++){
		var exp = expressions[i];
		var last = {parts: [], tag: '*', combinator: reverseCombinator(exp[0].combinator)};

		for (var j = 0; j < exp.length; j++){
			var cexp = exp[j];
			if (!cexp.reverseCombinator) cexp.reverseCombinator = ' ';
			cexp.combinator = cexp.reverseCombinator;
			delete cexp.reverseCombinator;
		}

		exp.reverse().push(last);
	}
	return expression;
};

var escapeRegExp = function(string){// Credit: XRegExp 0.6.1 (c) 2007-2008 Steven Levithan <http://stevenlevithan.com/regex/xregexp/> MIT License
	return string.replace(/[-[\]{}()*+?.\\^$|,#\s]/g, function(match){
		return '\\' + match;
	});
};

var regexp = new RegExp(
/*
#!/usr/bin/env ruby
puts "\t\t" + DATA.read.gsub(/\(\?x\)|\s+#.*$|\s+|\\$|\\n/,'')
__END__
	"(?x)^(?:\
	  \\s* ( , ) \\s*               # Separator          \n\
	| \\s* ( <combinator>+ ) \\s*   # Combinator         \n\
	|      ( \\s+ )                 # CombinatorChildren \n\
	|      ( <unicode>+ | \\* )     # Tag                \n\
	| \\#  ( <unicode>+       )     # ID                 \n\
	| \\.  ( <unicode>+       )     # ClassName          \n\
	|                               # Attribute          \n\
	\\[  \
		\\s* (<unicode1>+)  (?:  \
			\\s* ([*^$!~|]?=)  (?:  \
				\\s* (?:\
					([\"']?)(.*?)\\9 \
				)\
			)  \
		)?  \\s*  \
	\\](?!\\]) \n\
	|   :+ ( <unicode>+ )(?:\
	\\( (?:\
		(?:([\"'])([^\\12]*)\\12)|((?:\\([^)]+\\)|[^()]*)+)\
	) \\)\
	)?\
	)"
*/
	"^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(<unicode>+)(?:\\((?:(?:([\"'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)"
	.replace(/<combinator>/, '[' + escapeRegExp(">+~`!@$%^&={}\\;</") + ']')
	.replace(/<unicode>/g, '(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])')
	.replace(/<unicode1>/g, '(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])')
);

function parser(
	rawMatch,

	separator,
	combinator,
	combinatorChildren,

	tagName,
	id,
	className,

	attributeKey,
	attributeOperator,
	attributeQuote,
	attributeValue,

	pseudoMarker,
	pseudoClass,
	pseudoQuote,
	pseudoClassQuotedValue,
	pseudoClassValue
){
	if (separator || separatorIndex === -1){
		parsed.expressions[++separatorIndex] = [];
		combinatorIndex = -1;
		if (separator) return '';
	}

	if (combinator || combinatorChildren || combinatorIndex === -1){
		combinator = combinator || ' ';
		var currentSeparator = parsed.expressions[separatorIndex];
		if (reversed && currentSeparator[combinatorIndex])
			currentSeparator[combinatorIndex].reverseCombinator = reverseCombinator(combinator);
		currentSeparator[++combinatorIndex] = {combinator: combinator, tag: '*'};
	}

	var currentParsed = parsed.expressions[separatorIndex][combinatorIndex];

	if (tagName){
		currentParsed.tag = tagName.replace(reUnescape, '');

	} else if (id){
		currentParsed.id = id.replace(reUnescape, '');

	} else if (className){
		className = className.replace(reUnescape, '');

		if (!currentParsed.classList) currentParsed.classList = [];
		if (!currentParsed.classes) currentParsed.classes = [];
		currentParsed.classList.push(className);
		currentParsed.classes.push({
			value: className,
			regexp: new RegExp('(^|\\s)' + escapeRegExp(className) + '(\\s|$)')
		});

	} else if (pseudoClass){
		pseudoClassValue = pseudoClassValue || pseudoClassQuotedValue;
		pseudoClassValue = pseudoClassValue ? pseudoClassValue.replace(reUnescape, '') : null;

		if (!currentParsed.pseudos) currentParsed.pseudos = [];
		currentParsed.pseudos.push({
			key: pseudoClass.replace(reUnescape, ''),
			value: pseudoClassValue,
			type: pseudoMarker.length == 1 ? 'class' : 'element'
		});

	} else if (attributeKey){
		attributeKey = attributeKey.replace(reUnescape, '');
		attributeValue = (attributeValue || '').replace(reUnescape, '');

		var test, regexp;

		switch (attributeOperator){
			case '^=' : regexp = new RegExp(       '^'+ escapeRegExp(attributeValue)            ); break;
			case '$=' : regexp = new RegExp(            escapeRegExp(attributeValue) +'$'       ); break;
			case '~=' : regexp = new RegExp( '(^|\\s)'+ escapeRegExp(attributeValue) +'(\\s|$)' ); break;
			case '|=' : regexp = new RegExp(       '^'+ escapeRegExp(attributeValue) +'(-|$)'   ); break;
			case  '=' : test = function(value){
				return attributeValue == value;
			}; break;
			case '*=' : test = function(value){
				return value && value.indexOf(attributeValue) > -1;
			}; break;
			case '!=' : test = function(value){
				return attributeValue != value;
			}; break;
			default   : test = function(value){
				return !!value;
			};
		}

		if (attributeValue == '' && (/^[*$^]=$/).test(attributeOperator)) test = function(){
			return false;
		};

		if (!test) test = function(value){
			return value && regexp.test(value);
		};

		if (!currentParsed.attributes) currentParsed.attributes = [];
		currentParsed.attributes.push({
			key: attributeKey,
			operator: attributeOperator,
			value: attributeValue,
			test: test
		});

	}

	return '';
};

// Slick NS

var Slick = (this.Slick || {});

Slick.parse = function(expression){
	return parse(expression);
};

Slick.escapeRegExp = escapeRegExp;

if (!this.Slick) this.Slick = Slick;

}).apply(/*<CommonJS>*/(typeof exports != 'undefined') ? exports : /*</CommonJS>*/this);


/*
---
name: Slick.Finder
description: The new, superfast css selector engine.
provides: Slick.Finder
requires: Slick.Parser
...
*/

;(function(){

var local = {},
	featuresCache = {},
	toString = Object.prototype.toString;

// Feature / Bug detection

local.isNativeCode = function(fn){
	return (/\{\s*\[native code\]\s*\}/).test('' + fn);
};

local.isXML = function(document){
	return (!!document.xmlVersion) || (!!document.xml) || (toString.call(document) == '[object XMLDocument]') ||
	(document.nodeType == 9 && document.documentElement.nodeName != 'HTML');
};

local.setDocument = function(document){

	// convert elements / window arguments to document. if document cannot be extrapolated, the function returns.
	var nodeType = document.nodeType;
	if (nodeType == 9); // document
	else if (nodeType) document = document.ownerDocument; // node
	else if (document.navigator) document = document.document; // window
	else return;

	// check if it's the old document

	if (this.document === document) return;
	this.document = document;

	// check if we have done feature detection on this document before

	var root = document.documentElement,
		rootUid = this.getUIDXML(root),
		features = featuresCache[rootUid],
		feature;

	if (features){
		for (feature in features){
			this[feature] = features[feature];
		}
		return;
	}

	features = featuresCache[rootUid] = {};

	features.root = root;
	features.isXMLDocument = this.isXML(document);

	features.brokenStarGEBTN
	= features.starSelectsClosedQSA
	= features.idGetsName
	= features.brokenMixedCaseQSA
	= features.brokenGEBCN
	= features.brokenCheckedQSA
	= features.brokenEmptyAttributeQSA
	= features.isHTMLDocument
	= features.nativeMatchesSelector
	= false;

	var starSelectsClosed, starSelectsComments,
		brokenSecondClassNameGEBCN, cachedGetElementsByClassName,
		brokenFormAttributeGetter;

	var selected, id = 'slick_uniqueid';
	var testNode = document.createElement('div');

	var testRoot = document.body || document.getElementsByTagName('body')[0] || root;
	testRoot.appendChild(testNode);

	// on non-HTML documents innerHTML and getElementsById doesnt work properly
	try {
		testNode.innerHTML = '<a id="'+id+'"></a>';
		features.isHTMLDocument = !!document.getElementById(id);
	} catch(e){};

	if (features.isHTMLDocument){

		testNode.style.display = 'none';

		// IE returns comment nodes for getElementsByTagName('*') for some documents
		testNode.appendChild(document.createComment(''));
		starSelectsComments = (testNode.getElementsByTagName('*').length > 1);

		// IE returns closed nodes (EG:"</foo>") for getElementsByTagName('*') for some documents
		try {
			testNode.innerHTML = 'foo</foo>';
			selected = testNode.getElementsByTagName('*');
			starSelectsClosed = (selected && !!selected.length && selected[0].nodeName.charAt(0) == '/');
		} catch(e){};

		features.brokenStarGEBTN = starSelectsComments || starSelectsClosed;

		// IE returns elements with the name instead of just id for getElementsById for some documents
		try {
			testNode.innerHTML = '<a name="'+ id +'"></a><b id="'+ id +'"></b>';
			features.idGetsName = document.getElementById(id) === testNode.firstChild;
		} catch(e){};

		if (testNode.getElementsByClassName){

			// Safari 3.2 getElementsByClassName caches results
			try {
				testNode.innerHTML = '<a class="f"></a><a class="b"></a>';
				testNode.getElementsByClassName('b').length;
				testNode.firstChild.className = 'b';
				cachedGetElementsByClassName = (testNode.getElementsByClassName('b').length != 2);
			} catch(e){};

			// Opera 9.6 getElementsByClassName doesnt detects the class if its not the first one
			try {
				testNode.innerHTML = '<a class="a"></a><a class="f b a"></a>';
				brokenSecondClassNameGEBCN = (testNode.getElementsByClassName('a').length != 2);
			} catch(e){};

			features.brokenGEBCN = cachedGetElementsByClassName || brokenSecondClassNameGEBCN;
		}

		if (testNode.querySelectorAll){
			// IE 8 returns closed nodes (EG:"</foo>") for querySelectorAll('*') for some documents
			try {
				testNode.innerHTML = 'foo</foo>';
				selected = testNode.querySelectorAll('*');
				features.starSelectsClosedQSA = (selected && !!selected.length && selected[0].nodeName.charAt(0) == '/');
			} catch(e){};

			// Safari 3.2 querySelectorAll doesnt work with mixedcase on quirksmode
			try {
				testNode.innerHTML = '<a class="MiX"></a>';
				features.brokenMixedCaseQSA = !testNode.querySelectorAll('.MiX').length;
			} catch(e){};

			// Webkit and Opera dont return selected options on querySelectorAll
			try {
				testNode.innerHTML = '<select><option selected="selected">a</option></select>';
				features.brokenCheckedQSA = (testNode.querySelectorAll(':checked').length == 0);
			} catch(e){};

			// IE returns incorrect results for attr[*^$]="" selectors on querySelectorAll
			try {
				testNode.innerHTML = '<a class=""></a>';
				features.brokenEmptyAttributeQSA = (testNode.querySelectorAll('[class*=""]').length != 0);
			} catch(e){};

		}

		// IE6-7, if a form has an input of id x, form.getAttribute(x) returns a reference to the input
		try {
			testNode.innerHTML = '<form action="s"><input id="action"/></form>';
			brokenFormAttributeGetter = (testNode.firstChild.getAttribute('action') != 's');
		} catch(e){};

		// native matchesSelector function

		features.nativeMatchesSelector = root.matchesSelector || /*root.msMatchesSelector ||*/ root.mozMatchesSelector || root.webkitMatchesSelector;
		if (features.nativeMatchesSelector) try {
			// if matchesSelector trows errors on incorrect sintaxes we can use it
			features.nativeMatchesSelector.call(root, ':slick');
			features.nativeMatchesSelector = null;
		} catch(e){};

	}

	try {
		root.slick_expando = 1;
		delete root.slick_expando;
		features.getUID = this.getUIDHTML;
	} catch(e) {
		features.getUID = this.getUIDXML;
	}

	testRoot.removeChild(testNode);
	testNode = selected = testRoot = null;

	// getAttribute

	features.getAttribute = (features.isHTMLDocument && brokenFormAttributeGetter) ? function(node, name){
		var method = this.attributeGetters[name];
		if (method) return method.call(node);
		var attributeNode = node.getAttributeNode(name);
		return (attributeNode) ? attributeNode.nodeValue : null;
	} : function(node, name){
		var method = this.attributeGetters[name];
		return (method) ? method.call(node) : node.getAttribute(name);
	};

	// hasAttribute

	features.hasAttribute = (root && this.isNativeCode(root.hasAttribute)) ? function(node, attribute) {
		return node.hasAttribute(attribute);
	} : function(node, attribute) {
		node = node.getAttributeNode(attribute);
		return !!(node && (node.specified || node.nodeValue));
	};

	// contains
	// FIXME: Add specs: local.contains should be different for xml and html documents?
	var nativeRootContains = root && this.isNativeCode(root.contains),
		nativeDocumentContains = document && this.isNativeCode(document.contains);

	features.contains = (nativeRootContains && nativeDocumentContains) ? function(context, node){
		return context.contains(node);
	} : (nativeRootContains && !nativeDocumentContains) ? function(context, node){
		// IE8 does not have .contains on document.
		return context === node || ((context === document) ? document.documentElement : context).contains(node);
	} : (root && root.compareDocumentPosition) ? function(context, node){
		return context === node || !!(context.compareDocumentPosition(node) & 16);
	} : function(context, node){
		if (node) do {
			if (node === context) return true;
		} while ((node = node.parentNode));
		return false;
	};

	// document order sorting
	// credits to Sizzle (http://sizzlejs.com/)

	features.documentSorter = (root.compareDocumentPosition) ? function(a, b){
		if (!a.compareDocumentPosition || !b.compareDocumentPosition) return 0;
		return a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
	} : ('sourceIndex' in root) ? function(a, b){
		if (!a.sourceIndex || !b.sourceIndex) return 0;
		return a.sourceIndex - b.sourceIndex;
	} : (document.createRange) ? function(a, b){
		if (!a.ownerDocument || !b.ownerDocument) return 0;
		var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
		aRange.setStart(a, 0);
		aRange.setEnd(a, 0);
		bRange.setStart(b, 0);
		bRange.setEnd(b, 0);
		return aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
	} : null ;

	root = null;

	for (feature in features){
		this[feature] = features[feature];
	}
};

// Main Method

var reSimpleSelector = /^([#.]?)((?:[\w-]+|\*))$/,
	reEmptyAttribute = /\[.+[*$^]=(?:""|'')?\]/,
	qsaFailExpCache = {};

local.search = function(context, expression, append, first){

	var found = this.found = (first) ? null : (append || []);

	if (!context) return found;
	else if (context.navigator) context = context.document; // Convert the node from a window to a document
	else if (!context.nodeType) return found;

	// setup

	var parsed, i,
		uniques = this.uniques = {},
		hasOthers = !!(append && append.length),
		contextIsDocument = (context.nodeType == 9);

	if (this.document !== (contextIsDocument ? context : context.ownerDocument)) this.setDocument(context);

	// avoid duplicating items already in the append array
	if (hasOthers) for (i = found.length; i--;) uniques[this.getUID(found[i])] = true;

	// expression checks

	if (typeof expression == 'string'){ // expression is a string

		/*<simple-selectors-override>*/
		var simpleSelector = expression.match(reSimpleSelector);
		simpleSelectors: if (simpleSelector) {

			var symbol = simpleSelector[1],
				name = simpleSelector[2],
				node, nodes;

			if (!symbol){

				if (name == '*' && this.brokenStarGEBTN) break simpleSelectors;
				nodes = context.getElementsByTagName(name);
				if (first) return nodes[0] || null;
				for (i = 0; node = nodes[i++];){
					if (!(hasOthers && uniques[this.getUID(node)])) found.push(node);
				}

			} else if (symbol == '#'){

				if (!this.isHTMLDocument || !contextIsDocument) break simpleSelectors;
				node = context.getElementById(name);
				if (!node) return found;
				if (this.idGetsName && node.getAttributeNode('id').nodeValue != name) break simpleSelectors;
				if (first) return node || null;
				if (!(hasOthers && uniques[this.getUID(node)])) found.push(node);

			} else if (symbol == '.'){

				if (!this.isHTMLDocument || ((!context.getElementsByClassName || this.brokenGEBCN) && context.querySelectorAll)) break simpleSelectors;
				if (context.getElementsByClassName && !this.brokenGEBCN){
					nodes = context.getElementsByClassName(name);
					if (first) return nodes[0] || null;
					for (i = 0; node = nodes[i++];){
						if (!(hasOthers && uniques[this.getUID(node)])) found.push(node);
					}
				} else {
					var matchClass = new RegExp('(^|\\s)'+ Slick.escapeRegExp(name) +'(\\s|$)');
					nodes = context.getElementsByTagName('*');
					for (i = 0; node = nodes[i++];){
						className = node.className;
						if (!(className && matchClass.test(className))) continue;
						if (first) return node;
						if (!(hasOthers && uniques[this.getUID(node)])) found.push(node);
					}
				}

			}

			if (hasOthers) this.sort(found);
			return (first) ? null : found;

		}
		/*</simple-selectors-override>*/

		/*<query-selector-override>*/
		querySelector: if (context.querySelectorAll) {

			if (!this.isHTMLDocument
				|| qsaFailExpCache[expression]
				//TODO: only skip when expression is actually mixed case
				|| this.brokenMixedCaseQSA
				|| (this.brokenCheckedQSA && expression.indexOf(':checked') > -1)
				|| (this.brokenEmptyAttributeQSA && reEmptyAttribute.test(expression))
				|| (!contextIsDocument //Abort when !contextIsDocument and...
					//  there are multiple expressions in the selector
					//  since we currently only fix non-document rooted QSA for single expression selectors
					&& expression.indexOf(',') > -1
				)
				|| Slick.disableQSA
			) break querySelector;

			var _expression = expression, _context = context;
			if (!contextIsDocument){
				// non-document rooted QSA
				// credits to Andrew Dupont
				var currentId = _context.getAttribute('id'), slickid = 'slickid__';
				_context.setAttribute('id', slickid);
				_expression = '#' + slickid + ' ' + _expression;
				context = _context.parentNode;
			}

			try {
				if (first) return context.querySelector(_expression) || null;
				else nodes = context.querySelectorAll(_expression);
			} catch(e) {
				qsaFailExpCache[expression] = 1;
				break querySelector;
			} finally {
				if (!contextIsDocument){
					if (currentId) _context.setAttribute('id', currentId);
					else _context.removeAttribute('id');
					context = _context;
				}
			}

			if (this.starSelectsClosedQSA) for (i = 0; node = nodes[i++];){
				if (node.nodeName > '@' && !(hasOthers && uniques[this.getUID(node)])) found.push(node);
			} else for (i = 0; node = nodes[i++];){
				if (!(hasOthers && uniques[this.getUID(node)])) found.push(node);
			}

			if (hasOthers) this.sort(found);
			return found;

		}
		/*</query-selector-override>*/

		parsed = this.Slick.parse(expression);
		if (!parsed.length) return found;
	} else if (expression == null){ // there is no expression
		return found;
	} else if (expression.Slick){ // expression is a parsed Slick object
		parsed = expression;
	} else if (this.contains(context.documentElement || context, expression)){ // expression is a node
		(found) ? found.push(expression) : found = expression;
		return found;
	} else { // other junk
		return found;
	}

	/*<pseudo-selectors>*//*<nth-pseudo-selectors>*/

	// cache elements for the nth selectors

	this.posNTH = {};
	this.posNTHLast = {};
	this.posNTHType = {};
	this.posNTHTypeLast = {};

	/*</nth-pseudo-selectors>*//*</pseudo-selectors>*/

	// if append is null and there is only a single selector with one expression use pushArray, else use pushUID
	this.push = (!hasOthers && (first || (parsed.length == 1 && parsed.expressions[0].length == 1))) ? this.pushArray : this.pushUID;

	if (found == null) found = [];

	// default engine

	var j, m, n;
	var combinator, tag, id, classList, classes, attributes, pseudos;
	var currentItems, currentExpression, currentBit, lastBit, expressions = parsed.expressions;

	search: for (i = 0; (currentExpression = expressions[i]); i++) for (j = 0; (currentBit = currentExpression[j]); j++){

		combinator = 'combinator:' + currentBit.combinator;
		if (!this[combinator]) continue search;

		tag        = (this.isXMLDocument) ? currentBit.tag : currentBit.tag.toUpperCase();
		id         = currentBit.id;
		classList  = currentBit.classList;
		classes    = currentBit.classes;
		attributes = currentBit.attributes;
		pseudos    = currentBit.pseudos;
		lastBit    = (j === (currentExpression.length - 1));

		this.bitUniques = {};

		if (lastBit){
			this.uniques = uniques;
			this.found = found;
		} else {
			this.uniques = {};
			this.found = [];
		}

		if (j === 0){
			this[combinator](context, tag, id, classes, attributes, pseudos, classList);
			if (first && lastBit && found.length) break search;
		} else {
			if (first && lastBit) for (m = 0, n = currentItems.length; m < n; m++){
				this[combinator](currentItems[m], tag, id, classes, attributes, pseudos, classList);
				if (found.length) break search;
			} else for (m = 0, n = currentItems.length; m < n; m++) this[combinator](currentItems[m], tag, id, classes, attributes, pseudos, classList);
		}

		currentItems = this.found;
	}

	// should sort if there are nodes in append and if you pass multiple expressions.
	if (hasOthers || (parsed.expressions.length > 1)) this.sort(found);

	return (first) ? (found[0] || null) : found;
};

// Utils

local.uidx = 1;
local.uidk = 'slick-uniqueid';

local.getUIDXML = function(node){
	var uid = node.getAttribute(this.uidk);
	if (!uid){
		uid = this.uidx++;
		node.setAttribute(this.uidk, uid);
	}
	return uid;
};

local.getUIDHTML = function(node){
	return node.uniqueNumber || (node.uniqueNumber = this.uidx++);
};

// sort based on the setDocument documentSorter method.

local.sort = function(results){
	if (!this.documentSorter) return results;
	results.sort(this.documentSorter);
	return results;
};

/*<pseudo-selectors>*//*<nth-pseudo-selectors>*/

local.cacheNTH = {};

local.matchNTH = /^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;

local.parseNTHArgument = function(argument){
	var parsed = argument.match(this.matchNTH);
	if (!parsed) return false;
	var special = parsed[2] || false;
	var a = parsed[1] || 1;
	if (a == '-') a = -1;
	var b = +parsed[3] || 0;
	parsed =
		(special == 'n')	? {a: a, b: b} :
		(special == 'odd')	? {a: 2, b: 1} :
		(special == 'even')	? {a: 2, b: 0} : {a: 0, b: a};

	return (this.cacheNTH[argument] = parsed);
};

local.createNTHPseudo = function(child, sibling, positions, ofType){
	return function(node, argument){
		var uid = this.getUID(node);
		if (!this[positions][uid]){
			var parent = node.parentNode;
			if (!parent) return false;
			var el = parent[child], count = 1;
			if (ofType){
				var nodeName = node.nodeName;
				do {
					if (el.nodeName != nodeName) continue;
					this[positions][this.getUID(el)] = count++;
				} while ((el = el[sibling]));
			} else {
				do {
					if (el.nodeType != 1) continue;
					this[positions][this.getUID(el)] = count++;
				} while ((el = el[sibling]));
			}
		}
		argument = argument || 'n';
		var parsed = this.cacheNTH[argument] || this.parseNTHArgument(argument);
		if (!parsed) return false;
		var a = parsed.a, b = parsed.b, pos = this[positions][uid];
		if (a == 0) return b == pos;
		if (a > 0){
			if (pos < b) return false;
		} else {
			if (b < pos) return false;
		}
		return ((pos - b) % a) == 0;
	};
};

/*</nth-pseudo-selectors>*//*</pseudo-selectors>*/

local.pushArray = function(node, tag, id, classes, attributes, pseudos){
	if (this.matchSelector(node, tag, id, classes, attributes, pseudos)) this.found.push(node);
};

local.pushUID = function(node, tag, id, classes, attributes, pseudos){
	var uid = this.getUID(node);
	if (!this.uniques[uid] && this.matchSelector(node, tag, id, classes, attributes, pseudos)){
		this.uniques[uid] = true;
		this.found.push(node);
	}
};

local.matchNode = function(node, selector){
	if (this.isHTMLDocument && this.nativeMatchesSelector){
		try {
			return this.nativeMatchesSelector.call(node, selector.replace(/\[([^=]+)=\s*([^'"\]]+?)\s*\]/g, '[$1="$2"]'));
		} catch(matchError) {}
	}

	var parsed = this.Slick.parse(selector);
	if (!parsed) return true;

	// simple (single) selectors
	var expressions = parsed.expressions, simpleExpCounter = 0, i;
	for (i = 0; (currentExpression = expressions[i]); i++){
		if (currentExpression.length == 1){
			var exp = currentExpression[0];
			if (this.matchSelector(node, (this.isXMLDocument) ? exp.tag : exp.tag.toUpperCase(), exp.id, exp.classes, exp.attributes, exp.pseudos)) return true;
			simpleExpCounter++;
		}
	}

	if (simpleExpCounter == parsed.length) return false;

	var nodes = this.search(this.document, parsed), item;
	for (i = 0; item = nodes[i++];){
		if (item === node) return true;
	}
	return false;
};

local.matchPseudo = function(node, name, argument){
	var pseudoName = 'pseudo:' + name;
	if (this[pseudoName]) return this[pseudoName](node, argument);
	var attribute = this.getAttribute(node, name);
	return (argument) ? argument == attribute : !!attribute;
};

local.matchSelector = function(node, tag, id, classes, attributes, pseudos){
	if (tag){
		var nodeName = (this.isXMLDocument) ? node.nodeName : node.nodeName.toUpperCase();
		if (tag == '*'){
			if (nodeName < '@') return false; // Fix for comment nodes and closed nodes
		} else {
			if (nodeName != tag) return false;
		}
	}

	if (id && node.getAttribute('id') != id) return false;

	var i, part, cls;
	if (classes) for (i = classes.length; i--;){
		cls = this.getAttribute(node, 'class');
		if (!(cls && classes[i].regexp.test(cls))) return false;
	}
	if (attributes) for (i = attributes.length; i--;){
		part = attributes[i];
		if (part.operator ? !part.test(this.getAttribute(node, part.key)) : !this.hasAttribute(node, part.key)) return false;
	}
	if (pseudos) for (i = pseudos.length; i--;){
		part = pseudos[i];
		if (!this.matchPseudo(node, part.key, part.value)) return false;
	}
	return true;
};

var combinators = {

	' ': function(node, tag, id, classes, attributes, pseudos, classList){ // all child nodes, any level

		var i, item, children;

		if (this.isHTMLDocument){
			getById: if (id){
				item = this.document.getElementById(id);
				if ((!item && node.all) || (this.idGetsName && item && item.getAttributeNode('id').nodeValue != id)){
					// all[id] returns all the elements with that name or id inside node
					// if theres just one it will return the element, else it will be a collection
					children = node.all[id];
					if (!children) return;
					if (!children[0]) children = [children];
					for (i = 0; item = children[i++];){
						var idNode = item.getAttributeNode('id');
						if (idNode && idNode.nodeValue == id){
							this.push(item, tag, null, classes, attributes, pseudos);
							break;
						}
					}
					return;
				}
				if (!item){
					// if the context is in the dom we return, else we will try GEBTN, breaking the getById label
					if (this.contains(this.root, node)) return;
					else break getById;
				} else if (this.document !== node && !this.contains(node, item)) return;
				this.push(item, tag, null, classes, attributes, pseudos);
				return;
			}
			getByClass: if (classes && node.getElementsByClassName && !this.brokenGEBCN){
				children = node.getElementsByClassName(classList.join(' '));
				if (!(children && children.length)) break getByClass;
				for (i = 0; item = children[i++];) this.push(item, tag, id, null, attributes, pseudos);
				return;
			}
		}
		getByTag: {
			children = node.getElementsByTagName(tag);
			if (!(children && children.length)) break getByTag;
			if (!this.brokenStarGEBTN) tag = null;
			for (i = 0; item = children[i++];) this.push(item, tag, id, classes, attributes, pseudos);
		}
	},

	'>': function(node, tag, id, classes, attributes, pseudos){ // direct children
		if ((node = node.firstChild)) do {
			if (node.nodeType == 1) this.push(node, tag, id, classes, attributes, pseudos);
		} while ((node = node.nextSibling));
	},

	'+': function(node, tag, id, classes, attributes, pseudos){ // next sibling
		while ((node = node.nextSibling)) if (node.nodeType == 1){
			this.push(node, tag, id, classes, attributes, pseudos);
			break;
		}
	},

	'^': function(node, tag, id, classes, attributes, pseudos){ // first child
		node = node.firstChild;
		if (node){
			if (node.nodeType == 1) this.push(node, tag, id, classes, attributes, pseudos);
			else this['combinator:+'](node, tag, id, classes, attributes, pseudos);
		}
	},

	'~': function(node, tag, id, classes, attributes, pseudos){ // next siblings
		while ((node = node.nextSibling)){
			if (node.nodeType != 1) continue;
			var uid = this.getUID(node);
			if (this.bitUniques[uid]) break;
			this.bitUniques[uid] = true;
			this.push(node, tag, id, classes, attributes, pseudos);
		}
	},

	'++': function(node, tag, id, classes, attributes, pseudos){ // next sibling and previous sibling
		this['combinator:+'](node, tag, id, classes, attributes, pseudos);
		this['combinator:!+'](node, tag, id, classes, attributes, pseudos);
	},

	'~~': function(node, tag, id, classes, attributes, pseudos){ // next siblings and previous siblings
		this['combinator:~'](node, tag, id, classes, attributes, pseudos);
		this['combinator:!~'](node, tag, id, classes, attributes, pseudos);
	},

	'!': function(node, tag, id, classes, attributes, pseudos){ // all parent nodes up to document
		while ((node = node.parentNode)) if (node !== this.document) this.push(node, tag, id, classes, attributes, pseudos);
	},

	'!>': function(node, tag, id, classes, attributes, pseudos){ // direct parent (one level)
		node = node.parentNode;
		if (node !== this.document) this.push(node, tag, id, classes, attributes, pseudos);
	},

	'!+': function(node, tag, id, classes, attributes, pseudos){ // previous sibling
		while ((node = node.previousSibling)) if (node.nodeType == 1){
			this.push(node, tag, id, classes, attributes, pseudos);
			break;
		}
	},

	'!^': function(node, tag, id, classes, attributes, pseudos){ // last child
		node = node.lastChild;
		if (node){
			if (node.nodeType == 1) this.push(node, tag, id, classes, attributes, pseudos);
			else this['combinator:!+'](node, tag, id, classes, attributes, pseudos);
		}
	},

	'!~': function(node, tag, id, classes, attributes, pseudos){ // previous siblings
		while ((node = node.previousSibling)){
			if (node.nodeType != 1) continue;
			var uid = this.getUID(node);
			if (this.bitUniques[uid]) break;
			this.bitUniques[uid] = true;
			this.push(node, tag, id, classes, attributes, pseudos);
		}
	}

};

for (var c in combinators) local['combinator:' + c] = combinators[c];

var pseudos = {

	/*<pseudo-selectors>*/

	'empty': function(node){
		var child = node.firstChild;
		return !(child && child.nodeType == 1) && !(node.innerText || node.textContent || '').length;
	},

	'not': function(node, expression){
		return !this.matchNode(node, expression);
	},

	'contains': function(node, text){
		return (node.innerText || node.textContent || '').indexOf(text) > -1;
	},

	'first-child': function(node){
		while ((node = node.previousSibling)) if (node.nodeType == 1) return false;
		return true;
	},

	'last-child': function(node){
		while ((node = node.nextSibling)) if (node.nodeType == 1) return false;
		return true;
	},

	'only-child': function(node){
		var prev = node;
		while ((prev = prev.previousSibling)) if (prev.nodeType == 1) return false;
		var next = node;
		while ((next = next.nextSibling)) if (next.nodeType == 1) return false;
		return true;
	},

	/*<nth-pseudo-selectors>*/

	'nth-child': local.createNTHPseudo('firstChild', 'nextSibling', 'posNTH'),

	'nth-last-child': local.createNTHPseudo('lastChild', 'previousSibling', 'posNTHLast'),

	'nth-of-type': local.createNTHPseudo('firstChild', 'nextSibling', 'posNTHType', true),

	'nth-last-of-type': local.createNTHPseudo('lastChild', 'previousSibling', 'posNTHTypeLast', true),

	'index': function(node, index){
		return this['pseudo:nth-child'](node, '' + (index + 1));
	},

	'even': function(node){
		return this['pseudo:nth-child'](node, '2n');
	},

	'odd': function(node){
		return this['pseudo:nth-child'](node, '2n+1');
	},

	/*</nth-pseudo-selectors>*/

	/*<of-type-pseudo-selectors>*/

	'first-of-type': function(node){
		var nodeName = node.nodeName;
		while ((node = node.previousSibling)) if (node.nodeName == nodeName) return false;
		return true;
	},

	'last-of-type': function(node){
		var nodeName = node.nodeName;
		while ((node = node.nextSibling)) if (node.nodeName == nodeName) return false;
		return true;
	},

	'only-of-type': function(node){
		var prev = node, nodeName = node.nodeName;
		while ((prev = prev.previousSibling)) if (prev.nodeName == nodeName) return false;
		var next = node;
		while ((next = next.nextSibling)) if (next.nodeName == nodeName) return false;
		return true;
	},

	/*</of-type-pseudo-selectors>*/

	// custom pseudos

	'enabled': function(node){
		return !node.disabled;
	},

	'disabled': function(node){
		return node.disabled;
	},

	'checked': function(node){
		return node.checked || node.selected;
	},

	'focus': function(node){
		return this.isHTMLDocument && this.document.activeElement === node && (node.href || node.type || this.hasAttribute(node, 'tabindex'));
	},

	'root': function(node){
		return (node === this.root);
	},

	'selected': function(node){
		return node.selected;
	}

	/*</pseudo-selectors>*/
};

for (var p in pseudos) local['pseudo:' + p] = pseudos[p];

// attributes methods

var attributeGetters = local.attributeGetters = {

	'for': function(){
		return ('htmlFor' in this) ? this.htmlFor : this.getAttribute('for');
	},

	'href': function(){
		return ('href' in this) ? this.getAttribute('href', 2) : this.getAttribute('href');
	},

	'style': function(){
		return (this.style) ? this.style.cssText : this.getAttribute('style');
	},

	'tabindex': function(){
		var attributeNode = this.getAttributeNode('tabindex');
		return (attributeNode && attributeNode.specified) ? attributeNode.nodeValue : null;
	},

	'type': function(){
		return this.getAttribute('type');
	},

	'maxlength': function(){
		var attributeNode = this.getAttributeNode('maxLength');
		return (attributeNode && attributeNode.specified) ? attributeNode.nodeValue : null;
	}

};

attributeGetters.MAXLENGTH = attributeGetters.maxLength = attributeGetters.maxlength;

// Slick

var Slick = local.Slick = (this.Slick || {});

Slick.version = '1.1.7';

// Slick finder

Slick.search = function(context, expression, append){
	return local.search(context, expression, append);
};

Slick.find = function(context, expression){
	return local.search(context, expression, null, true);
};

// Slick containment checker

Slick.contains = function(container, node){
	local.setDocument(container);
	return local.contains(container, node);
};

// Slick attribute getter

Slick.getAttribute = function(node, name){
	local.setDocument(node);
	return local.getAttribute(node, name);
};

Slick.hasAttribute = function(node, name){
	local.setDocument(node);
	return local.hasAttribute(node, name);
};

// Slick matcher

Slick.match = function(node, selector){
	if (!(node && selector)) return false;
	if (!selector || selector === node) return true;
	local.setDocument(node);
	return local.matchNode(node, selector);
};

// Slick attribute accessor

Slick.defineAttributeGetter = function(name, fn){
	local.attributeGetters[name] = fn;
	return this;
};

Slick.lookupAttributeGetter = function(name){
	return local.attributeGetters[name];
};

// Slick pseudo accessor

Slick.definePseudo = function(name, fn){
	local['pseudo:' + name] = function(node, argument){
		return fn.call(node, argument);
	};
	return this;
};

Slick.lookupPseudo = function(name){
	var pseudo = local['pseudo:' + name];
	if (pseudo) return function(argument){
		return pseudo.call(this, argument);
	};
	return null;
};

// Slick overrides accessor

Slick.override = function(regexp, fn){
	local.override(regexp, fn);
	return this;
};

Slick.isXML = local.isXML;

Slick.uidOf = function(node){
	return local.getUIDHTML(node);
};

if (!this.Slick) this.Slick = Slick;

}).apply(/*<CommonJS>*/(typeof exports != 'undefined') ? exports : /*</CommonJS>*/this);


/*
---

name: Element

description: One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser, time-saver methods to let you easily work with HTML Elements.

license: MIT-style license.

requires: [Window, Document, Array, String, Function, Object, Number, Slick.Parser, Slick.Finder]

provides: [Element, Elements, $, $$, Iframe, Selectors]

...
*/

var Element = function(tag, props){
	var konstructor = Element.Constructors[tag];
	if (konstructor) return konstructor(props);
	if (typeof tag != 'string') return document.id(tag).set(props);

	if (!props) props = {};

	if (!(/^[\w-]+$/).test(tag)){
		var parsed = Slick.parse(tag).expressions[0][0];
		tag = (parsed.tag == '*') ? 'div' : parsed.tag;
		if (parsed.id && props.id == null) props.id = parsed.id;

		var attributes = parsed.attributes;
		if (attributes) for (var attr, i = 0, l = attributes.length; i < l; i++){
			attr = attributes[i];
			if (props[attr.key] != null) continue;

			if (attr.value != null && attr.operator == '=') props[attr.key] = attr.value;
			else if (!attr.value && !attr.operator) props[attr.key] = true;
		}

		if (parsed.classList && props['class'] == null) props['class'] = parsed.classList.join(' ');
	}

	return document.newElement(tag, props);
};


if (Browser.Element){
	Element.prototype = Browser.Element.prototype;
	// IE8 and IE9 require the wrapping.
	Element.prototype._fireEvent = (function(fireEvent){
		return function(type, event){
			return fireEvent.call(this, type, event);
		};
	})(Element.prototype.fireEvent);
}

new Type('Element', Element).mirror(function(name){
	if (Array.prototype[name]) return;

	var obj = {};
	obj[name] = function(){
		var results = [], args = arguments, elements = true;
		for (var i = 0, l = this.length; i < l; i++){
			var element = this[i], result = results[i] = element[name].apply(element, args);
			elements = (elements && typeOf(result) == 'element');
		}
		return (elements) ? new Elements(results) : results;
	};

	Elements.implement(obj);
});

if (!Browser.Element){
	Element.parent = Object;

	Element.Prototype = {
		'$constructor': Element,
		'$family': Function.from('element').hide()
	};

	Element.mirror(function(name, method){
		Element.Prototype[name] = method;
	});
}

Element.Constructors = {};



var IFrame = new Type('IFrame', function(){
	var params = Array.link(arguments, {
		properties: Type.isObject,
		iframe: function(obj){
			return (obj != null);
		}
	});

	var props = params.properties || {}, iframe;
	if (params.iframe) iframe = document.id(params.iframe);
	var onload = props.onload || function(){};
	delete props.onload;
	props.id = props.name = [props.id, props.name, iframe ? (iframe.id || iframe.name) : 'IFrame_' + String.uniqueID()].pick();
	iframe = new Element(iframe || 'iframe', props);

	var onLoad = function(){
		onload.call(iframe.contentWindow);
	};

	if (window.frames[props.id]) onLoad();
	else iframe.addListener('load', onLoad);
	return iframe;
});

var Elements = this.Elements = function(nodes){
	if (nodes && nodes.length){
		var uniques = {}, node;
		for (var i = 0; node = nodes[i++];){
			var uid = Slick.uidOf(node);
			if (!uniques[uid]){
				uniques[uid] = true;
				this.push(node);
			}
		}
	}
};

Elements.prototype = {length: 0};
Elements.parent = Array;

new Type('Elements', Elements).implement({

	filter: function(filter, bind){
		if (!filter) return this;
		return new Elements(Array.filter(this, (typeOf(filter) == 'string') ? function(item){
			return item.match(filter);
		} : filter, bind));
	}.protect(),

	push: function(){
		var length = this.length;
		for (var i = 0, l = arguments.length; i < l; i++){
			var item = document.id(arguments[i]);
			if (item) this[length++] = item;
		}
		return (this.length = length);
	}.protect(),

	unshift: function(){
		var items = [];
		for (var i = 0, l = arguments.length; i < l; i++){
			var item = document.id(arguments[i]);
			if (item) items.push(item);
		}
		return Array.prototype.unshift.apply(this, items);
	}.protect(),

	concat: function(){
		var newElements = new Elements(this);
		for (var i = 0, l = arguments.length; i < l; i++){
			var item = arguments[i];
			if (Type.isEnumerable(item)) newElements.append(item);
			else newElements.push(item);
		}
		return newElements;
	}.protect(),

	append: function(collection){
		for (var i = 0, l = collection.length; i < l; i++) this.push(collection[i]);
		return this;
	}.protect(),

	empty: function(){
		while (this.length) delete this[--this.length];
		return this;
	}.protect()

});



(function(){

// FF, IE
var splice = Array.prototype.splice, object = {'0': 0, '1': 1, length: 2};

splice.call(object, 1, 1);
if (object[1] == 1) Elements.implement('splice', function(){
	var length = this.length;
	var result = splice.apply(this, arguments);
	while (length >= this.length) delete this[length--];
	return result;
}.protect());

Array.forEachMethod(function(method, name){
	Elements.implement(name, method);
});

Array.mirror(Elements);

/*<ltIE8>*/
var createElementAcceptsHTML;
try {
    createElementAcceptsHTML = (document.createElement('<input name=x>').name == 'x');
} catch (e){}

var escapeQuotes = function(html){
	return ('' + html).replace(/&/g, '&amp;').replace(/"/g, '&quot;');
};
/*</ltIE8>*/

Document.implement({

	newElement: function(tag, props){
		if (props && props.checked != null) props.defaultChecked = props.checked;
		/*<ltIE8>*/// Fix for readonly name and type properties in IE < 8
		if (createElementAcceptsHTML && props){
			tag = '<' + tag;
			if (props.name) tag += ' name="' + escapeQuotes(props.name) + '"';
			if (props.type) tag += ' type="' + escapeQuotes(props.type) + '"';
			tag += '>';
			delete props.name;
			delete props.type;
		}
		/*</ltIE8>*/
		return this.id(this.createElement(tag)).set(props);
	}

});

})();

(function(){

Slick.uidOf(window);
Slick.uidOf(document);

Document.implement({

	newTextNode: function(text){
		return this.createTextNode(text);
	},

	getDocument: function(){
		return this;
	},

	getWindow: function(){
		return this.window;
	},

	id: (function(){

		var types = {

			string: function(id, nocash, doc){
				id = Slick.find(doc, '#' + id.replace(/(\W)/g, '\\$1'));
				return (id) ? types.element(id, nocash) : null;
			},

			element: function(el, nocash){
				Slick.uidOf(el);
				if (!nocash && !el.$family && !(/^(?:object|embed)$/i).test(el.tagName)){
					var fireEvent = el.fireEvent;
					// wrapping needed in IE7, or else crash
					el._fireEvent = function(type, event){
						return fireEvent(type, event);
					};
					Object.append(el, Element.Prototype);
				}
				return el;
			},

			object: function(obj, nocash, doc){
				if (obj.toElement) return types.element(obj.toElement(doc), nocash);
				return null;
			}

		};

		types.textnode = types.whitespace = types.window = types.document = function(zero){
			return zero;
		};

		return function(el, nocash, doc){
			if (el && el.$family && el.uniqueNumber) return el;
			var type = typeOf(el);
			return (types[type]) ? types[type](el, nocash, doc || document) : null;
		};

	})()

});

if (window.$ == null) Window.implement('$', function(el, nc){
	return document.id(el, nc, this.document);
});

Window.implement({

	getDocument: function(){
		return this.document;
	},

	getWindow: function(){
		return this;
	}

});

[Document, Element].invoke('implement', {

	getElements: function(expression){
		return Slick.search(this, expression, new Elements);
	},

	getElement: function(expression){
		return document.id(Slick.find(this, expression));
	}

});

var contains = {contains: function(element){
	return Slick.contains(this, element);
}};

if (!document.contains) Document.implement(contains);
if (!document.createElement('div').contains) Element.implement(contains);



// tree walking

var injectCombinator = function(expression, combinator){
	if (!expression) return combinator;

	expression = Object.clone(Slick.parse(expression));

	var expressions = expression.expressions;
	for (var i = expressions.length; i--;)
		expressions[i][0].combinator = combinator;

	return expression;
};

Object.forEach({
	getNext: '~',
	getPrevious: '!~',
	getParent: '!'
}, function(combinator, method){
	Element.implement(method, function(expression){
		return this.getElement(injectCombinator(expression, combinator));
	});
});

Object.forEach({
	getAllNext: '~',
	getAllPrevious: '!~',
	getSiblings: '~~',
	getChildren: '>',
	getParents: '!'
}, function(combinator, method){
	Element.implement(method, function(expression){
		return this.getElements(injectCombinator(expression, combinator));
	});
});

Element.implement({

	getFirst: function(expression){
		return document.id(Slick.search(this, injectCombinator(expression, '>'))[0]);
	},

	getLast: function(expression){
		return document.id(Slick.search(this, injectCombinator(expression, '>')).getLast());
	},

	getWindow: function(){
		return this.ownerDocument.window;
	},

	getDocument: function(){
		return this.ownerDocument;
	},

	getElementById: function(id){
		return document.id(Slick.find(this, '#' + ('' + id).replace(/(\W)/g, '\\$1')));
	},

	match: function(expression){
		return !expression || Slick.match(this, expression);
	}

});



if (window.$$ == null) Window.implement('$$', function(selector){
	if (arguments.length == 1){
		if (typeof selector == 'string') return Slick.search(this.document, selector, new Elements);
		else if (Type.isEnumerable(selector)) return new Elements(selector);
	}
	return new Elements(arguments);
});

// Inserters

var inserters = {

	before: function(context, element){
		var parent = element.parentNode;
		if (parent) parent.insertBefore(context, element);
	},

	after: function(context, element){
		var parent = element.parentNode;
		if (parent) parent.insertBefore(context, element.nextSibling);
	},

	bottom: function(context, element){
		element.appendChild(context);
	},

	top: function(context, element){
		element.insertBefore(context, element.firstChild);
	}

};

inserters.inside = inserters.bottom;



// getProperty / setProperty

var propertyGetters = {}, propertySetters = {};

// properties

var properties = {};
Array.forEach([
	'type', 'value', 'defaultValue', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan',
	'frameBorder', 'rowSpan', 'tabIndex', 'useMap'
], function(property){
	properties[property.toLowerCase()] = property;
});

properties.html = 'innerHTML';
properties.text = (document.createElement('div').textContent == null) ? 'innerText': 'textContent';

Object.forEach(properties, function(real, key){
	propertySetters[key] = function(node, value){
		node[real] = value;
	};
	propertyGetters[key] = function(node){
		return node[real];
	};
});

// Booleans

var bools = [
	'compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked',
	'disabled', 'readOnly', 'multiple', 'selected', 'noresize',
	'defer', 'defaultChecked', 'autofocus', 'controls', 'autoplay',
	'loop'
];

var booleans = {};
Array.forEach(bools, function(bool){
	var lower = bool.toLowerCase();
	booleans[lower] = bool;
	propertySetters[lower] = function(node, value){
		node[bool] = !!value;
	};
	propertyGetters[lower] = function(node){
		return !!node[bool];
	};
});

// Special cases

Object.append(propertySetters, {

	'class': function(node, value){
		('className' in node) ? node.className = (value || '') : node.setAttribute('class', value);
	},

	'for': function(node, value){
		('htmlFor' in node) ? node.htmlFor = value : node.setAttribute('for', value);
	},

	'style': function(node, value){
		(node.style) ? node.style.cssText = value : node.setAttribute('style', value);
	},

	'value': function(node, value){
		node.value = (value != null) ? value : '';
	}

});

propertyGetters['class'] = function(node){
	return ('className' in node) ? node.className || null : node.getAttribute('class');
};

/* <webkit> */
var el = document.createElement('button');
// IE sets type as readonly and throws
try { el.type = 'button'; } catch(e){}
if (el.type != 'button') propertySetters.type = function(node, value){
	node.setAttribute('type', value);
};
el = null;
/* </webkit> */

/*<IE>*/
var input = document.createElement('input');
input.value = 't';
input.type = 'submit';
if (input.value != 't') propertySetters.type = function(node, type){
	var value = node.value;
	node.type = type;
	node.value = value;
};
input = null;
/*</IE>*/

/* getProperty, setProperty */

/* <ltIE9> */
var pollutesGetAttribute = (function(div){
	div.random = 'attribute';
	return (div.getAttribute('random') == 'attribute');
})(document.createElement('div'));

/* <ltIE9> */

Element.implement({

	setProperty: function(name, value){
		var setter = propertySetters[name.toLowerCase()];
		if (setter){
			setter(this, value);
		} else {
			/* <ltIE9> */
			if (pollutesGetAttribute) var attributeWhiteList = this.retrieve('$attributeWhiteList', {});
			/* </ltIE9> */

			if (value == null){
				this.removeAttribute(name);
				/* <ltIE9> */
				if (pollutesGetAttribute) delete attributeWhiteList[name];
				/* </ltIE9> */
			} else {
				this.setAttribute(name, '' + value);
				/* <ltIE9> */
				if (pollutesGetAttribute) attributeWhiteList[name] = true;
				/* </ltIE9> */
			}
		}
		return this;
	},

	setProperties: function(attributes){
		for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
		return this;
	},

	getProperty: function(name){
		var getter = propertyGetters[name.toLowerCase()];
		if (getter) return getter(this);
		/* <ltIE9> */
		if (pollutesGetAttribute){
			var attr = this.getAttributeNode(name), attributeWhiteList = this.retrieve('$attributeWhiteList', {});
			if (!attr) return null;
			if (attr.expando && !attributeWhiteList[name]){
				var outer = this.outerHTML;
				// segment by the opening tag and find mention of attribute name
				if (outer.substr(0, outer.search(/\/?['"]?>(?![^<]*<['"])/)).indexOf(name) < 0) return null;
				attributeWhiteList[name] = true;
			}
		}
		/* </ltIE9> */
		var result = Slick.getAttribute(this, name);
		return (!result && !Slick.hasAttribute(this, name)) ? null : result;
	},

	getProperties: function(){
		var args = Array.from(arguments);
		return args.map(this.getProperty, this).associate(args);
	},

	removeProperty: function(name){
		return this.setProperty(name, null);
	},

	removeProperties: function(){
		Array.each(arguments, this.removeProperty, this);
		return this;
	},

	set: function(prop, value){
		var property = Element.Properties[prop];
		(property && property.set) ? property.set.call(this, value) : this.setProperty(prop, value);
	}.overloadSetter(),

	get: function(prop){
		var property = Element.Properties[prop];
		return (property && property.get) ? property.get.apply(this) : this.getProperty(prop);
	}.overloadGetter(),

	erase: function(prop){
		var property = Element.Properties[prop];
		(property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
		return this;
	},

	hasClass: function(className){
		return this.className.clean().contains(className, ' ');
	},

	addClass: function(className){
		if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
		return this;
	},

	removeClass: function(className){
		this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
		return this;
	},

	toggleClass: function(className, force){
		if (force == null) force = !this.hasClass(className);
		return (force) ? this.addClass(className) : this.removeClass(className);
	},

	adopt: function(){
		var parent = this, fragment, elements = Array.flatten(arguments), length = elements.length;
		if (length > 1) parent = fragment = document.createDocumentFragment();

		for (var i = 0; i < length; i++){
			var element = document.id(elements[i], true);
			if (element) parent.appendChild(element);
		}

		if (fragment) this.appendChild(fragment);

		return this;
	},

	appendText: function(text, where){
		return this.grab(this.getDocument().newTextNode(text), where);
	},

	grab: function(el, where){
		inserters[where || 'bottom'](document.id(el, true), this);
		return this;
	},

	inject: function(el, where){
		inserters[where || 'bottom'](this, document.id(el, true));
		return this;
	},

	replaces: function(el){
		el = document.id(el, true);
		el.parentNode.replaceChild(this, el);
		return this;
	},

	wraps: function(el, where){
		el = document.id(el, true);
		return this.replaces(el).grab(el, where);
	},

	getSelected: function(){
		this.selectedIndex; // Safari 3.2.1
		return new Elements(Array.from(this.options).filter(function(option){
			return option.selected;
		}));
	},

	toQueryString: function(){
		var queryString = [];
		this.getElements('input, select, textarea').each(function(el){
			var type = el.type;
			if (!el.name || el.disabled || type == 'submit' || type == 'reset' || type == 'file' || type == 'image') return;

			var value = (el.get('tag') == 'select') ? el.getSelected().map(function(opt){
				// IE
				return document.id(opt).get('value');
			}) : ((type == 'radio' || type == 'checkbox') && !el.checked) ? null : el.get('value');

			Array.from(value).each(function(val){
				if (typeof val != 'undefined') queryString.push(encodeURIComponent(el.name) + '=' + encodeURIComponent(val));
			});
		});
		return queryString.join('&');
	}

});

var collected = {}, storage = {};

var get = function(uid){
	return (storage[uid] || (storage[uid] = {}));
};

var clean = function(item){
	var uid = item.uniqueNumber;
	if (item.removeEvents) item.removeEvents();
	if (item.clearAttributes) item.clearAttributes();
	if (uid != null){
		delete collected[uid];
		delete storage[uid];
	}
	return item;
};

var formProps = {input: 'checked', option: 'selected', textarea: 'value'};

Element.implement({

	destroy: function(){
		var children = clean(this).getElementsByTagName('*');
		Array.each(children, clean);
		Element.dispose(this);
		return null;
	},

	empty: function(){
		Array.from(this.childNodes).each(Element.dispose);
		return this;
	},

	dispose: function(){
		return (this.parentNode) ? this.parentNode.removeChild(this) : this;
	},

	clone: function(contents, keepid){
		contents = contents !== false;
		var clone = this.cloneNode(contents), ce = [clone], te = [this], i;

		if (contents){
			ce.append(Array.from(clone.getElementsByTagName('*')));
			te.append(Array.from(this.getElementsByTagName('*')));
		}

		for (i = ce.length; i--;){
			var node = ce[i], element = te[i];
			if (!keepid) node.removeAttribute('id');
			/*<ltIE9>*/
			if (node.clearAttributes){
				node.clearAttributes();
				node.mergeAttributes(element);
				node.removeAttribute('uniqueNumber');
				if (node.options){
					var no = node.options, eo = element.options;
					for (var j = no.length; j--;) no[j].selected = eo[j].selected;
				}
			}
			/*</ltIE9>*/
			var prop = formProps[element.tagName.toLowerCase()];
			if (prop && element[prop]) node[prop] = element[prop];
		}

		/*<ltIE9>*/
		if (Browser.ie){
			var co = clone.getElementsByTagName('object'), to = this.getElementsByTagName('object');
			for (i = co.length; i--;) co[i].outerHTML = to[i].outerHTML;
		}
		/*</ltIE9>*/
		return document.id(clone);
	}

});

[Element, Window, Document].invoke('implement', {

	addListener: function(type, fn){
		if (type == 'unload'){
			var old = fn, self = this;
			fn = function(){
				self.removeListener('unload', fn);
				old();
			};
		} else {
			collected[Slick.uidOf(this)] = this;
		}
		if (this.addEventListener) this.addEventListener(type, fn, !!arguments[2]);
		else this.attachEvent('on' + type, fn);
		return this;
	},

	removeListener: function(type, fn){
		if (this.removeEventListener) this.removeEventListener(type, fn, !!arguments[2]);
		else this.detachEvent('on' + type, fn);
		return this;
	},

	retrieve: function(property, dflt){
		var storage = get(Slick.uidOf(this)), prop = storage[property];
		if (dflt != null && prop == null) prop = storage[property] = dflt;
		return prop != null ? prop : null;
	},

	store: function(property, value){
		var storage = get(Slick.uidOf(this));
		storage[property] = value;
		return this;
	},

	eliminate: function(property){
		var storage = get(Slick.uidOf(this));
		delete storage[property];
		return this;
	}

});

/*<ltIE9>*/
if (window.attachEvent && !window.addEventListener) window.addListener('unload', function(){
	Object.each(collected, clean);
	if (window.CollectGarbage) CollectGarbage();
});
/*</ltIE9>*/

Element.Properties = {};



Element.Properties.style = {

	set: function(style){
		this.style.cssText = style;
	},

	get: function(){
		return this.style.cssText;
	},

	erase: function(){
		this.style.cssText = '';
	}

};

Element.Properties.tag = {

	get: function(){
		return this.tagName.toLowerCase();
	}

};

Element.Properties.html = {

	set: function(html){
		if (html == null) html = '';
		else if (typeOf(html) == 'array') html = html.join('');
		this.innerHTML = html;
	},

	erase: function(){
		this.innerHTML = '';
	}

};

/*<ltIE9>*/
// technique by jdbarlett - http://jdbartlett.com/innershiv/
var div = document.createElement('div');
div.innerHTML = '<nav></nav>';
var supportsHTML5Elements = (div.childNodes.length == 1);
if (!supportsHTML5Elements){
	var tags = 'abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video'.split(' '),
		fragment = document.createDocumentFragment(), l = tags.length;
	while (l--) fragment.createElement(tags[l]);
}
div = null;
/*</ltIE9>*/

/*<IE>*/
var supportsTableInnerHTML = Function.attempt(function(){
	var table = document.createElement('table');
	table.innerHTML = '<tr><td></td></tr>';
	return true;
});

/*<ltFF4>*/
var tr = document.createElement('tr'), html = '<td></td>';
tr.innerHTML = html;
var supportsTRInnerHTML = (tr.innerHTML == html);
tr = null;
/*</ltFF4>*/

if (!supportsTableInnerHTML || !supportsTRInnerHTML || !supportsHTML5Elements){

	Element.Properties.html.set = (function(set){

		var translations = {
			table: [1, '<table>', '</table>'],
			select: [1, '<select>', '</select>'],
			tbody: [2, '<table><tbody>', '</tbody></table>'],
			tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
		};

		translations.thead = translations.tfoot = translations.tbody;

		return function(html){
			var wrap = translations[this.get('tag')];
			if (!wrap && !supportsHTML5Elements) wrap = [0, '', ''];
			if (!wrap) return set.call(this, html);

			var level = wrap[0], wrapper = document.createElement('div'), target = wrapper;
			if (!supportsHTML5Elements) fragment.appendChild(wrapper);
			wrapper.innerHTML = [wrap[1], html, wrap[2]].flatten().join('');
			while (level--) target = target.firstChild;
			this.empty().adopt(target.childNodes);
			if (!supportsHTML5Elements) fragment.removeChild(wrapper);
			wrapper = null;
		};

	})(Element.Properties.html.set);
}
/*</IE>*/

/*<ltIE9>*/
var testForm = document.createElement('form');
testForm.innerHTML = '<select><option>s</option></select>';

if (testForm.firstChild.value != 's') Element.Properties.value = {

	set: function(value){
		var tag = this.get('tag');
		if (tag != 'select') return this.setProperty('value', value);
		var options = this.getElements('option');
		for (var i = 0; i < options.length; i++){
			var option = options[i],
				attr = option.getAttributeNode('value'),
				optionValue = (attr && attr.specified) ? option.value : option.get('text');
			if (optionValue == value) return option.selected = true;
		}
	},

	get: function(){
		var option = this, tag = option.get('tag');

		if (tag != 'select' && tag != 'option') return this.getProperty('value');

		if (tag == 'select' && !(option = option.getSelected()[0])) return '';

		var attr = option.getAttributeNode('value');
		return (attr && attr.specified) ? option.value : option.get('text');
	}

};
testForm = null;
/*</ltIE9>*/

/*<IE>*/
if (document.createElement('div').getAttributeNode('id')) Element.Properties.id = {
	set: function(id){
		this.id = this.getAttributeNode('id').value = id;
	},
	get: function(){
		return this.id || null;
	},
	erase: function(){
		this.id = this.getAttributeNode('id').value = '';
	}
};
/*</IE>*/

})();


/*
---

name: Element.Style

description: Contains methods for interacting with the styles of Elements in a fashionable way.

license: MIT-style license.

requires: Element

provides: Element.Style

...
*/

(function(){

var html = document.html;

//<ltIE9>
// Check for oldIE, which does not remove styles when they're set to null
var el = document.createElement('div');
el.style.color = 'red';
el.style.color = null;
var doesNotRemoveStyles = el.style.color == 'red';
el = null;
//</ltIE9>

Element.Properties.styles = {set: function(styles){
	this.setStyles(styles);
}};

var hasOpacity = (html.style.opacity != null),
	hasFilter = (html.style.filter != null),
	reAlpha = /alpha\(opacity=([\d.]+)\)/i;

var setVisibility = function(element, opacity){
	element.store('$opacity', opacity);
	element.style.visibility = opacity > 0 || opacity == null ? 'visible' : 'hidden';
};

var setOpacity = (hasOpacity ? function(element, opacity){
	element.style.opacity = opacity;
} : (hasFilter ? function(element, opacity){
	var style = element.style;
	if (!element.currentStyle || !element.currentStyle.hasLayout) style.zoom = 1;
	if (opacity == null || opacity == 1) opacity = '';
	else opacity = 'alpha(opacity=' + (opacity * 100).limit(0, 100).round() + ')';
	var filter = style.filter || element.getComputedStyle('filter') || '';
	style.filter = reAlpha.test(filter) ? filter.replace(reAlpha, opacity) : filter + opacity;
	if (!style.filter) style.removeAttribute('filter');
} : setVisibility));

var getOpacity = (hasOpacity ? function(element){
	var opacity = element.style.opacity || element.getComputedStyle('opacity');
	return (opacity == '') ? 1 : opacity.toFloat();
} : (hasFilter ? function(element){
	var filter = (element.style.filter || element.getComputedStyle('filter')),
		opacity;
	if (filter) opacity = filter.match(reAlpha);
	return (opacity == null || filter == null) ? 1 : (opacity[1] / 100);
} : function(element){
	var opacity = element.retrieve('$opacity');
	if (opacity == null) opacity = (element.style.visibility == 'hidden' ? 0 : 1);
	return opacity;
}));

var floatName = (html.style.cssFloat == null) ? 'styleFloat' : 'cssFloat';

Element.implement({

	getComputedStyle: function(property){
		if (this.currentStyle) return this.currentStyle[property.camelCase()];
		var defaultView = Element.getDocument(this).defaultView,
			computed = defaultView ? defaultView.getComputedStyle(this, null) : null;
		return (computed) ? computed.getPropertyValue((property == floatName) ? 'float' : property.hyphenate()) : null;
	},

	setStyle: function(property, value){
		if (property == 'opacity'){
			if (value != null) value = parseFloat(value);
			setOpacity(this, value);
			return this;
		}
		property = (property == 'float' ? floatName : property).camelCase();
		if (typeOf(value) != 'string'){
			var map = (Element.Styles[property] || '@').split(' ');
			value = Array.from(value).map(function(val, i){
				if (!map[i]) return '';
				return (typeOf(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
			}).join(' ');
		} else if (value == String(Number(value))){
			value = Math.round(value);
		}
		this.style[property] = value;
		//<ltIE9>
		if ((value == '' || value == null) && doesNotRemoveStyles && this.style.removeAttribute){
			this.style.removeAttribute(property);
		}
		//</ltIE9>
		return this;
	},

	getStyle: function(property){
		if (property == 'opacity') return getOpacity(this);
		property = (property == 'float' ? floatName : property).camelCase();
		var result = this.style[property];
		if (!result || property == 'zIndex'){
			result = [];
			for (var style in Element.ShortStyles){
				if (property != style) continue;
				for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
				return result.join(' ');
			}
			result = this.getComputedStyle(property);
		}
		if (result){
			result = String(result);
			var color = result.match(/rgba?\([\d\s,]+\)/);
			if (color) result = result.replace(color[0], color[0].rgbToHex());
		}
		if (Browser.ie && isNaN(parseFloat(result))){
			if ((/^(height|width)$/).test(property)){
				var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
				values.each(function(value){
					size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
				}, this);
				return this['offset' + property.capitalize()] - size + 'px';
			}
			if (Browser.opera && String(result).indexOf('px') != -1) return result;
			if ((/^border(.+)Width|margin|padding/).test(property)) return '0px';
		}
		return result;
	},

	setStyles: function(styles){
		for (var style in styles) this.setStyle(style, styles[style]);
		return this;
	},

	getStyles: function(){
		var result = {};
		Array.flatten(arguments).each(function(key){
			result[key] = this.getStyle(key);
		}, this);
		return result;
	}

});

Element.Styles = {
	left: '@px', top: '@px', bottom: '@px', right: '@px',
	width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
	backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
	fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
	margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
	borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
	zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
};





Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};

['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
	var Short = Element.ShortStyles;
	var All = Element.Styles;
	['margin', 'padding'].each(function(style){
		var sd = style + direction;
		Short[style][sd] = All[sd] = '@px';
	});
	var bd = 'border' + direction;
	Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
	var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
	Short[bd] = {};
	Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
	Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
	Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
});

})();


/*
---

name: Element.Event

description: Contains Element methods for dealing with events. This file also includes mouseenter and mouseleave custom Element Events, if necessary.

license: MIT-style license.

requires: [Element, Event]

provides: Element.Event

...
*/

(function(){

Element.Properties.events = {set: function(events){
	this.addEvents(events);
}};

[Element, Window, Document].invoke('implement', {

	addEvent: function(type, fn){
		var events = this.retrieve('events', {});
		if (!events[type]) events[type] = {keys: [], values: []};
		if (events[type].keys.contains(fn)) return this;
		events[type].keys.push(fn);
		var realType = type,
			custom = Element.Events[type],
			condition = fn,
			self = this;
		if (custom){
			if (custom.onAdd) custom.onAdd.call(this, fn, type);
			if (custom.condition){
				condition = function(event){
					if (custom.condition.call(this, event, type)) return fn.call(this, event);
					return true;
				};
			}
			if (custom.base) realType = Function.from(custom.base).call(this, type);
		}
		var defn = function(){
			return fn.call(self);
		};
		var nativeEvent = Element.NativeEvents[realType];
		if (nativeEvent){
			if (nativeEvent == 2){
				defn = function(event){
					event = new DOMEvent(event, self.getWindow());
					if (condition.call(self, event) === false) event.stop();
				};
			}
			this.addListener(realType, defn, arguments[2]);
		}
		events[type].values.push(defn);
		return this;
	},

	removeEvent: function(type, fn){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		var list = events[type];
		var index = list.keys.indexOf(fn);
		if (index == -1) return this;
		var value = list.values[index];
		delete list.keys[index];
		delete list.values[index];
		var custom = Element.Events[type];
		if (custom){
			if (custom.onRemove) custom.onRemove.call(this, fn, type);
			if (custom.base) type = Function.from(custom.base).call(this, type);
		}
		return (Element.NativeEvents[type]) ? this.removeListener(type, value, arguments[2]) : this;
	},

	addEvents: function(events){
		for (var event in events) this.addEvent(event, events[event]);
		return this;
	},

	removeEvents: function(events){
		var type;
		if (typeOf(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		var attached = this.retrieve('events');
		if (!attached) return this;
		if (!events){
			for (type in attached) this.removeEvents(type);
			this.eliminate('events');
		} else if (attached[events]){
			attached[events].keys.each(function(fn){
				this.removeEvent(events, fn);
			}, this);
			delete attached[events];
		}
		return this;
	},

	fireEvent: function(type, args, delay){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		args = Array.from(args);

		events[type].keys.each(function(fn){
			if (delay) fn.delay(delay, this, args);
			else fn.apply(this, args);
		}, this);
		return this;
	},

	cloneEvents: function(from, type){
		from = document.id(from);
		var events = from.retrieve('events');
		if (!events) return this;
		if (!type){
			for (var eventType in events) this.cloneEvents(from, eventType);
		} else if (events[type]){
			events[type].keys.each(function(fn){
				this.addEvent(type, fn);
			}, this);
		}
		return this;
	}

});

Element.NativeEvents = {
	click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
	mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
	mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
	keydown: 2, keypress: 2, keyup: 2, //keyboard
	orientationchange: 2, // mobile
	touchstart: 2, touchmove: 2, touchend: 2, touchcancel: 2, // touch
	gesturestart: 2, gesturechange: 2, gestureend: 2, // gesture
	focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, paste: 2, input: 2, //form elements
	load: 2, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
	error: 1, abort: 1, scroll: 1 //misc
};

Element.Events = {mousewheel: {
	base: (Browser.firefox) ? 'DOMMouseScroll' : 'mousewheel'
}};

if ('onmouseenter' in document.documentElement){
	Element.NativeEvents.mouseenter = Element.NativeEvents.mouseleave = 2;
} else {
	var check = function(event){
		var related = event.relatedTarget;
		if (related == null) return true;
		if (!related) return false;
		return (related != this && related.prefix != 'xul' && typeOf(this) != 'document' && !this.contains(related));
	};

	Element.Events.mouseenter = {
		base: 'mouseover',
		condition: check
	};

	Element.Events.mouseleave = {
		base: 'mouseout',
		condition: check
	};
}

/*<ltIE9>*/
if (!window.addEventListener){
	Element.NativeEvents.propertychange = 2;
	Element.Events.change = {
		base: function(){
			var type = this.type;
			return (this.get('tag') == 'input' && (type == 'radio' || type == 'checkbox')) ? 'propertychange' : 'change'
		},
		condition: function(event){
			return this.type != 'radio' || (event.event.propertyName == 'checked' && this.checked);
		}
	}
}
/*</ltIE9>*/



})();


/*
---

name: Element.Delegation

description: Extends the Element native object to include the delegate method for more efficient event management.

license: MIT-style license.

requires: [Element.Event]

provides: [Element.Delegation]

...
*/

(function(){

var eventListenerSupport = !!window.addEventListener;

Element.NativeEvents.focusin = Element.NativeEvents.focusout = 2;

var bubbleUp = function(self, match, fn, event, target){
	while (target && target != self){
		if (match(target, event)) return fn.call(target, event, target);
		target = document.id(target.parentNode);
	}
};

var map = {
	mouseenter: {
		base: 'mouseover'
	},
	mouseleave: {
		base: 'mouseout'
	},
	focus: {
		base: 'focus' + (eventListenerSupport ? '' : 'in'),
		capture: true
	},
	blur: {
		base: eventListenerSupport ? 'blur' : 'focusout',
		capture: true
	}
};

/*<ltIE9>*/
var _key = '$delegation:';
var formObserver = function(type){

	return {

		base: 'focusin',

		remove: function(self, uid){
			var list = self.retrieve(_key + type + 'listeners', {})[uid];
			if (list && list.forms) for (var i = list.forms.length; i--;){
				list.forms[i].removeEvent(type, list.fns[i]);
			}
		},

		listen: function(self, match, fn, event, target, uid){
			var form = (target.get('tag') == 'form') ? target : event.target.getParent('form');
			if (!form) return;

			var listeners = self.retrieve(_key + type + 'listeners', {}),
				listener = listeners[uid] || {forms: [], fns: []},
				forms = listener.forms, fns = listener.fns;

			if (forms.indexOf(form) != -1) return;
			forms.push(form);

			var _fn = function(event){
				bubbleUp(self, match, fn, event, target);
			};
			form.addEvent(type, _fn);
			fns.push(_fn);

			listeners[uid] = listener;
			self.store(_key + type + 'listeners', listeners);
		}
	};
};

var inputObserver = function(type){
	return {
		base: 'focusin',
		listen: function(self, match, fn, event, target){
			var events = {blur: function(){
				this.removeEvents(events);
			}};
			events[type] = function(event){
				bubbleUp(self, match, fn, event, target);
			};
			event.target.addEvents(events);
		}
	};
};

if (!eventListenerSupport) Object.append(map, {
	submit: formObserver('submit'),
	reset: formObserver('reset'),
	change: inputObserver('change'),
	select: inputObserver('select')
});
/*</ltIE9>*/

var proto = Element.prototype,
	addEvent = proto.addEvent,
	removeEvent = proto.removeEvent;

var relay = function(old, method){
	return function(type, fn, useCapture){
		if (type.indexOf(':relay') == -1) return old.call(this, type, fn, useCapture);
		var parsed = Slick.parse(type).expressions[0][0];
		if (parsed.pseudos[0].key != 'relay') return old.call(this, type, fn, useCapture);
		var newType = parsed.tag;
		parsed.pseudos.slice(1).each(function(pseudo){
			newType += ':' + pseudo.key + (pseudo.value ? '(' + pseudo.value + ')' : '');
		});
		old.call(this, type, fn);
		return method.call(this, newType, parsed.pseudos[0].value, fn);
	};
};

var delegation = {

	addEvent: function(type, match, fn){
		var storage = this.retrieve('$delegates', {}), stored = storage[type];
		if (stored) for (var _uid in stored){
			if (stored[_uid].fn == fn && stored[_uid].match == match) return this;
		}

		var _type = type, _match = match, _fn = fn, _map = map[type] || {};
		type = _map.base || _type;

		match = function(target){
			return Slick.match(target, _match);
		};

		var elementEvent = Element.Events[_type];
		if (elementEvent && elementEvent.condition){
			var __match = match, condition = elementEvent.condition;
			match = function(target, event){
				return __match(target, event) && condition.call(target, event, type);
			};
		}

		var self = this, uid = String.uniqueID();
		var delegator = _map.listen ? function(event, target){
			if (!target && event && event.target) target = event.target;
			if (target) _map.listen(self, match, fn, event, target, uid);
		} : function(event, target){
			if (!target && event && event.target) target = event.target;
			if (target) bubbleUp(self, match, fn, event, target);
		};

		if (!stored) stored = {};
		stored[uid] = {
			match: _match,
			fn: _fn,
			delegator: delegator
		};
		storage[_type] = stored;
		return addEvent.call(this, type, delegator, _map.capture);
	},

	removeEvent: function(type, match, fn, _uid){
		var storage = this.retrieve('$delegates', {}), stored = storage[type];
		if (!stored) return this;

		if (_uid){
			var _type = type, delegator = stored[_uid].delegator, _map = map[type] || {};
			type = _map.base || _type;
			if (_map.remove) _map.remove(this, _uid);
			delete stored[_uid];
			storage[_type] = stored;
			return removeEvent.call(this, type, delegator);
		}

		var __uid, s;
		if (fn) for (__uid in stored){
			s = stored[__uid];
			if (s.match == match && s.fn == fn) return delegation.removeEvent.call(this, type, match, fn, __uid);
		} else for (__uid in stored){
			s = stored[__uid];
			if (s.match == match) delegation.removeEvent.call(this, type, match, s.fn, __uid);
		}
		return this;
	}

};

[Element, Window, Document].invoke('implement', {
	addEvent: relay(addEvent, delegation.addEvent),
	removeEvent: relay(removeEvent, delegation.removeEvent)
});

})();


/*
---

name: Element.Dimensions

description: Contains methods to work with size, scroll, or positioning of Elements and the window object.

license: MIT-style license.

credits:
  - Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
  - Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).

requires: [Element, Element.Style]

provides: [Element.Dimensions]

...
*/

(function(){

var element = document.createElement('div'),
	child = document.createElement('div');
element.style.height = '0';
element.appendChild(child);
var brokenOffsetParent = (child.offsetParent === element);
element = child = null;

var isOffset = function(el){
	return styleString(el, 'position') != 'static' || isBody(el);
};

var isOffsetStatic = function(el){
	return isOffset(el) || (/^(?:table|td|th)$/i).test(el.tagName);
};

Element.implement({

	scrollTo: function(x, y){
		if (isBody(this)){
			this.getWindow().scrollTo(x, y);
		} else {
			this.scrollLeft = x;
			this.scrollTop = y;
		}
		return this;
	},

	getSize: function(){
		if (isBody(this)) return this.getWindow().getSize();
		return {x: this.offsetWidth, y: this.offsetHeight};
	},

	getScrollSize: function(){
		if (isBody(this)) return this.getWindow().getScrollSize();
		return {x: this.scrollWidth, y: this.scrollHeight};
	},

	getScroll: function(){
		if (isBody(this)) return this.getWindow().getScroll();
		return {x: this.scrollLeft, y: this.scrollTop};
	},

	getScrolls: function(){
		var element = this.parentNode, position = {x: 0, y: 0};
		while (element && !isBody(element)){
			position.x += element.scrollLeft;
			position.y += element.scrollTop;
			element = element.parentNode;
		}
		return position;
	},

	getOffsetParent: brokenOffsetParent ? function(){
		var element = this;
		if (isBody(element) || styleString(element, 'position') == 'fixed') return null;

		var isOffsetCheck = (styleString(element, 'position') == 'static') ? isOffsetStatic : isOffset;
		while ((element = element.parentNode)){
			if (isOffsetCheck(element)) return element;
		}
		return null;
	} : function(){
		var element = this;
		if (isBody(element) || styleString(element, 'position') == 'fixed') return null;

		try {
			return element.offsetParent;
		} catch(e) {}
		return null;
	},

	getOffsets: function(){
		if (this.getBoundingClientRect && !Browser.Platform.ios){
			var bound = this.getBoundingClientRect(),
				html = document.id(this.getDocument().documentElement),
				htmlScroll = html.getScroll(),
				elemScrolls = this.getScrolls(),
				isFixed = (styleString(this, 'position') == 'fixed');

			return {
				x: bound.left.toInt() + elemScrolls.x + ((isFixed) ? 0 : htmlScroll.x) - html.clientLeft,
				y: bound.top.toInt()  + elemScrolls.y + ((isFixed) ? 0 : htmlScroll.y) - html.clientTop
			};
		}

		var element = this, position = {x: 0, y: 0};
		if (isBody(this)) return position;

		while (element && !isBody(element)){
			position.x += element.offsetLeft;
			position.y += element.offsetTop;

			if (Browser.firefox){
				if (!borderBox(element)){
					position.x += leftBorder(element);
					position.y += topBorder(element);
				}
				var parent = element.parentNode;
				if (parent && styleString(parent, 'overflow') != 'visible'){
					position.x += leftBorder(parent);
					position.y += topBorder(parent);
				}
			} else if (element != this && Browser.safari){
				position.x += leftBorder(element);
				position.y += topBorder(element);
			}

			element = element.offsetParent;
		}
		if (Browser.firefox && !borderBox(this)){
			position.x -= leftBorder(this);
			position.y -= topBorder(this);
		}
		return position;
	},

	getPosition: function(relative){
		var offset = this.getOffsets(),
			scroll = this.getScrolls();
		var position = {
			x: offset.x - scroll.x,
			y: offset.y - scroll.y
		};

		if (relative && (relative = document.id(relative))){
			var relativePosition = relative.getPosition();
			return {x: position.x - relativePosition.x - leftBorder(relative), y: position.y - relativePosition.y - topBorder(relative)};
		}
		return position;
	},

	getCoordinates: function(element){
		if (isBody(this)) return this.getWindow().getCoordinates();
		var position = this.getPosition(element),
			size = this.getSize();
		var obj = {
			left: position.x,
			top: position.y,
			width: size.x,
			height: size.y
		};
		obj.right = obj.left + obj.width;
		obj.bottom = obj.top + obj.height;
		return obj;
	},

	computePosition: function(obj){
		return {
			left: obj.x - styleNumber(this, 'margin-left'),
			top: obj.y - styleNumber(this, 'margin-top')
		};
	},

	setPosition: function(obj){
		return this.setStyles(this.computePosition(obj));
	}

});


[Document, Window].invoke('implement', {

	getSize: function(){
		var doc = getCompatElement(this);
		return {x: doc.clientWidth, y: doc.clientHeight};
	},

	getScroll: function(){
		var win = this.getWindow(), doc = getCompatElement(this);
		return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
	},

	getScrollSize: function(){
		var doc = getCompatElement(this),
			min = this.getSize(),
			body = this.getDocument().body;

		return {x: Math.max(doc.scrollWidth, body.scrollWidth, min.x), y: Math.max(doc.scrollHeight, body.scrollHeight, min.y)};
	},

	getPosition: function(){
		return {x: 0, y: 0};
	},

	getCoordinates: function(){
		var size = this.getSize();
		return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
	}

});

// private methods

var styleString = Element.getComputedStyle;

function styleNumber(element, style){
	return styleString(element, style).toInt() || 0;
}

function borderBox(element){
	return styleString(element, '-moz-box-sizing') == 'border-box';
}

function topBorder(element){
	return styleNumber(element, 'border-top-width');
}

function leftBorder(element){
	return styleNumber(element, 'border-left-width');
}

function isBody(element){
	return (/^(?:body|html)$/i).test(element.tagName);
}

function getCompatElement(element){
	var doc = element.getDocument();
	return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
}

})();

//aliases
Element.alias({position: 'setPosition'}); //compatability

[Window, Document, Element].invoke('implement', {

	getHeight: function(){
		return this.getSize().y;
	},

	getWidth: function(){
		return this.getSize().x;
	},

	getScrollTop: function(){
		return this.getScroll().y;
	},

	getScrollLeft: function(){
		return this.getScroll().x;
	},

	getScrollHeight: function(){
		return this.getScrollSize().y;
	},

	getScrollWidth: function(){
		return this.getScrollSize().x;
	},

	getTop: function(){
		return this.getPosition().y;
	},

	getLeft: function(){
		return this.getPosition().x;
	}

});


/*
---

name: Fx

description: Contains the basic animation logic to be extended by all other Fx Classes.

license: MIT-style license.

requires: [Chain, Events, Options]

provides: Fx

...
*/

(function(){

var Fx = this.Fx = new Class({

	Implements: [Chain, Events, Options],

	options: {
		/*
		onStart: nil,
		onCancel: nil,
		onComplete: nil,
		*/
		fps: 60,
		unit: false,
		duration: 500,
		frames: null,
		frameSkip: true,
		link: 'ignore'
	},

	initialize: function(options){
		this.subject = this.subject || this;
		this.setOptions(options);
	},

	getTransition: function(){
		return function(p){
			return -(Math.cos(Math.PI * p) - 1) / 2;
		};
	},

	step: function(now){
		if (this.options.frameSkip){
			var diff = (this.time != null) ? (now - this.time) : 0, frames = diff / this.frameInterval;
			this.time = now;
			this.frame += frames;
		} else {
			this.frame++;
		}

		if (this.frame < this.frames){
			var delta = this.transition(this.frame / this.frames);
			this.set(this.compute(this.from, this.to, delta));
		} else {
			this.frame = this.frames;
			this.set(this.compute(this.from, this.to, 1));
			this.stop();
		}
	},

	set: function(now){
		return now;
	},

	compute: function(from, to, delta){
		return Fx.compute(from, to, delta);
	},

	check: function(){
		if (!this.isRunning()) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.pass(arguments, this)); return false;
		}
		return false;
	},

	start: function(from, to){
		if (!this.check(from, to)) return this;
		this.from = from;
		this.to = to;
		this.frame = (this.options.frameSkip) ? 0 : -1;
		this.time = null;
		this.transition = this.getTransition();
		var frames = this.options.frames, fps = this.options.fps, duration = this.options.duration;
		this.duration = Fx.Durations[duration] || duration.toInt();
		this.frameInterval = 1000 / fps;
		this.frames = frames || Math.round(this.duration / this.frameInterval);
		this.fireEvent('start', this.subject);
		pushInstance.call(this, fps);
		return this;
	},

	stop: function(){
		if (this.isRunning()){
			this.time = null;
			pullInstance.call(this, this.options.fps);
			if (this.frames == this.frame){
				this.fireEvent('complete', this.subject);
				if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
			} else {
				this.fireEvent('stop', this.subject);
			}
		}
		return this;
	},

	cancel: function(){
		if (this.isRunning()){
			this.time = null;
			pullInstance.call(this, this.options.fps);
			this.frame = this.frames;
			this.fireEvent('cancel', this.subject).clearChain();
		}
		return this;
	},

	pause: function(){
		if (this.isRunning()){
			this.time = null;
			pullInstance.call(this, this.options.fps);
		}
		return this;
	},

	resume: function(){
		if ((this.frame < this.frames) && !this.isRunning()) pushInstance.call(this, this.options.fps);
		return this;
	},

	isRunning: function(){
		var list = instances[this.options.fps];
		return list && list.contains(this);
	}

});

Fx.compute = function(from, to, delta){
	return (to - from) * delta + from;
};

Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};

// global timers

var instances = {}, timers = {};

var loop = function(){
	var now = Date.now();
	for (var i = this.length; i--;){
		var instance = this[i];
		if (instance) instance.step(now);
	}
};

var pushInstance = function(fps){
	var list = instances[fps] || (instances[fps] = []);
	list.push(this);
	if (!timers[fps]) timers[fps] = loop.periodical(Math.round(1000 / fps), list);
};

var pullInstance = function(fps){
	var list = instances[fps];
	if (list){
		list.erase(this);
		if (!list.length && timers[fps]){
			delete instances[fps];
			timers[fps] = clearInterval(timers[fps]);
		}
	}
};

})();


/*
---

name: Fx.CSS

description: Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.

license: MIT-style license.

requires: [Fx, Element.Style]

provides: Fx.CSS

...
*/

Fx.CSS = new Class({

	Extends: Fx,

	//prepares the base from/to object

	prepare: function(element, property, values){
		values = Array.from(values);
		var from = values[0], to = values[1];
		if (to == null){
			to = from;
			from = element.getStyle(property);
			var unit = this.options.unit;
			// adapted from: https://github.com/ryanmorr/fx/blob/master/fx.js#L299
			if (unit && from.slice(-unit.length) != unit && parseFloat(from) != 0){
				element.setStyle(property, to + unit);
				var value = element.getComputedStyle(property);
				// IE and Opera support pixelLeft or pixelWidth
				if (!(/px$/.test(value))){
					value = element.style[('pixel-' + property).camelCase()];
					if (value == null){
						// adapted from Dean Edwards' http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
						var left = element.style.left;
						element.style.left = to + unit;
						value = element.style.pixelLeft;
						element.style.left = left;
					}
				}
				from = (to || 1) / (parseFloat(value) || 1) * (parseFloat(from) || 0);
				element.setStyle(property, from + unit);
			}
		}
		return {from: this.parse(from), to: this.parse(to)};
	},

	//parses a value into an array

	parse: function(value){
		value = Function.from(value)();
		value = (typeof value == 'string') ? value.split(' ') : Array.from(value);
		return value.map(function(val){
			val = String(val);
			var found = false;
			Object.each(Fx.CSS.Parsers, function(parser, key){
				if (found) return;
				var parsed = parser.parse(val);
				if (parsed || parsed === 0) found = {value: parsed, parser: parser};
			});
			found = found || {value: val, parser: Fx.CSS.Parsers.String};
			return found;
		});
	},

	//computes by a from and to prepared objects, using their parsers.

	compute: function(from, to, delta){
		var computed = [];
		(Math.min(from.length, to.length)).times(function(i){
			computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
		});
		computed.$family = Function.from('fx:css:value');
		return computed;
	},

	//serves the value as settable

	serve: function(value, unit){
		if (typeOf(value) != 'fx:css:value') value = this.parse(value);
		var returned = [];
		value.each(function(bit){
			returned = returned.concat(bit.parser.serve(bit.value, unit));
		});
		return returned;
	},

	//renders the change to an element

	render: function(element, property, value, unit){
		element.setStyle(property, this.serve(value, unit));
	},

	//searches inside the page css to find the values for a selector

	search: function(selector){
		if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
		var to = {}, selectorTest = new RegExp('^' + selector.escapeRegExp() + '$');
		Array.each(document.styleSheets, function(sheet, j){
			var href = sheet.href;
			if (href && href.contains('://') && !href.contains(document.domain)) return;
			var rules = sheet.rules || sheet.cssRules;
			Array.each(rules, function(rule, i){
				if (!rule.style) return;
				var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
					return m.toLowerCase();
				}) : null;
				if (!selectorText || !selectorTest.test(selectorText)) return;
				Object.each(Element.Styles, function(value, style){
					if (!rule.style[style] || Element.ShortStyles[style]) return;
					value = String(rule.style[style]);
					to[style] = ((/^rgb/).test(value)) ? value.rgbToHex() : value;
				});
			});
		});
		return Fx.CSS.Cache[selector] = to;
	}

});

Fx.CSS.Cache = {};

Fx.CSS.Parsers = {

	Color: {
		parse: function(value){
			if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
			return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
		},
		compute: function(from, to, delta){
			return from.map(function(value, i){
				return Math.round(Fx.compute(from[i], to[i], delta));
			});
		},
		serve: function(value){
			return value.map(Number);
		}
	},

	Number: {
		parse: parseFloat,
		compute: Fx.compute,
		serve: function(value, unit){
			return (unit) ? value + unit : value;
		}
	},

	String: {
		parse: Function.from(false),
		compute: function(zero, one){
			return one;
		},
		serve: function(zero){
			return zero;
		}
	}

};




/*
---

name: Fx.Tween

description: Formerly Fx.Style, effect to transition any CSS property for an element.

license: MIT-style license.

requires: Fx.CSS

provides: [Fx.Tween, Element.fade, Element.highlight]

...
*/

Fx.Tween = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(property, now){
		if (arguments.length == 1){
			now = property;
			property = this.property || this.options.property;
		}
		this.render(this.element, property, now, this.options.unit);
		return this;
	},

	start: function(property, from, to){
		if (!this.check(property, from, to)) return this;
		var args = Array.flatten(arguments);
		this.property = this.options.property || args.shift();
		var parsed = this.prepare(this.element, this.property, args);
		return this.parent(parsed.from, parsed.to);
	}

});

Element.Properties.tween = {

	set: function(options){
		this.get('tween').cancel().setOptions(options);
		return this;
	},

	get: function(){
		var tween = this.retrieve('tween');
		if (!tween){
			tween = new Fx.Tween(this, {link: 'cancel'});
			this.store('tween', tween);
		}
		return tween;
	}

};

Element.implement({

	tween: function(property, from, to){
		this.get('tween').start(property, from, to);
		return this;
	},

	fade: function(how){
		var fade = this.get('tween'), method, args = ['opacity'].append(arguments), toggle;
		if (args[1] == null) args[1] = 'toggle';
		switch (args[1]){
			case 'in': method = 'start'; args[1] = 1; break;
			case 'out': method = 'start'; args[1] = 0; break;
			case 'show': method = 'set'; args[1] = 1; break;
			case 'hide': method = 'set'; args[1] = 0; break;
			case 'toggle':
				var flag = this.retrieve('fade:flag', this.getStyle('opacity') == 1);
				method = 'start';
				args[1] = flag ? 0 : 1;
				this.store('fade:flag', !flag);
				toggle = true;
			break;
			default: method = 'start';
		}
		if (!toggle) this.eliminate('fade:flag');
		fade[method].apply(fade, args);
		var to = args[args.length - 1];
		if (method == 'set' || to != 0) this.setStyle('visibility', to == 0 ? 'hidden' : 'visible');
		else fade.chain(function(){
			this.element.setStyle('visibility', 'hidden');
			this.callChain();
		});
		return this;
	},

	highlight: function(start, end){
		if (!end){
			end = this.retrieve('highlight:original', this.getStyle('background-color'));
			end = (end == 'transparent') ? '#fff' : end;
		}
		var tween = this.get('tween');
		tween.start('background-color', start || '#ffff88', end).chain(function(){
			this.setStyle('background-color', this.retrieve('highlight:original'));
			tween.callChain();
		}.bind(this));
		return this;
	}

});


/*
---

name: Fx.Morph

description: Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.

license: MIT-style license.

requires: Fx.CSS

provides: Fx.Morph

...
*/

Fx.Morph = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(now){
		if (typeof now == 'string') now = this.search(now);
		for (var p in now) this.render(this.element, p, now[p], this.options.unit);
		return this;
	},

	compute: function(from, to, delta){
		var now = {};
		for (var p in from) now[p] = this.parent(from[p], to[p], delta);
		return now;
	},

	start: function(properties){
		if (!this.check(properties)) return this;
		if (typeof properties == 'string') properties = this.search(properties);
		var from = {}, to = {};
		for (var p in properties){
			var parsed = this.prepare(this.element, p, properties[p]);
			from[p] = parsed.from;
			to[p] = parsed.to;
		}
		return this.parent(from, to);
	}

});

Element.Properties.morph = {

	set: function(options){
		this.get('morph').cancel().setOptions(options);
		return this;
	},

	get: function(){
		var morph = this.retrieve('morph');
		if (!morph){
			morph = new Fx.Morph(this, {link: 'cancel'});
			this.store('morph', morph);
		}
		return morph;
	}

};

Element.implement({

	morph: function(props){
		this.get('morph').start(props);
		return this;
	}

});


/*
---

name: Fx.Transitions

description: Contains a set of advanced transitions to be used with any of the Fx Classes.

license: MIT-style license.

credits:
  - Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.

requires: Fx

provides: Fx.Transitions

...
*/

Fx.implement({

	getTransition: function(){
		var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
		if (typeof trans == 'string'){
			var data = trans.split(':');
			trans = Fx.Transitions;
			trans = trans[data[0]] || trans[data[0].capitalize()];
			if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
		}
		return trans;
	}

});

Fx.Transition = function(transition, params){
	params = Array.from(params);
	var easeIn = function(pos){
		return transition(pos, params);
	};
	return Object.append(easeIn, {
		easeIn: easeIn,
		easeOut: function(pos){
			return 1 - transition(1 - pos, params);
		},
		easeInOut: function(pos){
			return (pos <= 0.5 ? transition(2 * pos, params) : (2 - transition(2 * (1 - pos), params))) / 2;
		}
	});
};

Fx.Transitions = {

	linear: function(zero){
		return zero;
	}

};



Fx.Transitions.extend = function(transitions){
	for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
};

Fx.Transitions.extend({

	Pow: function(p, x){
		return Math.pow(p, x && x[0] || 6);
	},

	Expo: function(p){
		return Math.pow(2, 8 * (p - 1));
	},

	Circ: function(p){
		return 1 - Math.sin(Math.acos(p));
	},

	Sine: function(p){
		return 1 - Math.cos(p * Math.PI / 2);
	},

	Back: function(p, x){
		x = x && x[0] || 1.618;
		return Math.pow(p, 2) * ((x + 1) * p - x);
	},

	Bounce: function(p){
		var value;
		for (var a = 0, b = 1; 1; a += b, b /= 2){
			if (p >= (7 - 4 * a) / 11){
				value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
				break;
			}
		}
		return value;
	},

	Elastic: function(p, x){
		return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x && x[0] || 1) / 3);
	}

});

['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
	Fx.Transitions[transition] = new Fx.Transition(function(p){
		return Math.pow(p, i + 2);
	});
});


/*
---

name: Request

description: Powerful all purpose Request Class. Uses XMLHTTPRequest.

license: MIT-style license.

requires: [Object, Element, Chain, Events, Options, Browser]

provides: Request

...
*/

(function(){

var empty = function(){},
	progressSupport = ('onprogress' in new Browser.Request);

var Request = this.Request = new Class({

	Implements: [Chain, Events, Options],

	options: {/*
		onRequest: function(){},
		onLoadstart: function(event, xhr){},
		onProgress: function(event, xhr){},
		onComplete: function(){},
		onCancel: function(){},
		onSuccess: function(responseText, responseXML){},
		onFailure: function(xhr){},
		onException: function(headerName, value){},
		onTimeout: function(){},
		user: '',
		password: '',*/
		url: '',
		data: '',
		headers: {
			'X-Requested-With': 'XMLHttpRequest',
			'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
		},
		async: true,
		format: false,
		method: 'post',
		link: 'ignore',
		isSuccess: null,
		emulation: true,
		urlEncoded: true,
		encoding: 'utf-8',
		evalScripts: false,
		evalResponse: false,
		timeout: 0,
		noCache: false
	},

	initialize: function(options){
		this.xhr = new Browser.Request();
		this.setOptions(options);
		this.headers = this.options.headers;
	},

	onStateChange: function(){
		var xhr = this.xhr;
		if (xhr.readyState != 4 || !this.running) return;
		this.running = false;
		this.status = 0;
		Function.attempt(function(){
			var status = xhr.status;
			this.status = (status == 1223) ? 204 : status;
		}.bind(this));
		xhr.onreadystatechange = empty;
		if (progressSupport) xhr.onprogress = xhr.onloadstart = empty;
		clearTimeout(this.timer);

		this.response = {text: this.xhr.responseText || '', xml: this.xhr.responseXML};
		if (this.options.isSuccess.call(this, this.status))
			this.success(this.response.text, this.response.xml);
		else
			this.failure();
	},

	isSuccess: function(){
		var status = this.status;
		return (status >= 200 && status < 300);
	},

	isRunning: function(){
		return !!this.running;
	},

	processScripts: function(text){
		if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return Browser.exec(text);
		return text.stripScripts(this.options.evalScripts);
	},

	success: function(text, xml){
		this.onSuccess(this.processScripts(text), xml);
	},

	onSuccess: function(){
		this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
	},

	failure: function(){
		this.onFailure();
	},

	onFailure: function(){
		this.fireEvent('complete').fireEvent('failure', this.xhr);
	},

	loadstart: function(event){
		this.fireEvent('loadstart', [event, this.xhr]);
	},

	progress: function(event){
		this.fireEvent('progress', [event, this.xhr]);
	},

	timeout: function(){
		this.fireEvent('timeout', this.xhr);
	},

	setHeader: function(name, value){
		this.headers[name] = value;
		return this;
	},

	getHeader: function(name){
		return Function.attempt(function(){
			return this.xhr.getResponseHeader(name);
		}.bind(this));
	},

	check: function(){
		if (!this.running) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.pass(arguments, this)); return false;
		}
		return false;
	},

	send: function(options){
		if (!this.check(options)) return this;

		this.options.isSuccess = this.options.isSuccess || this.isSuccess;
		this.running = true;

		var type = typeOf(options);
		if (type == 'string' || type == 'element') options = {data: options};

		var old = this.options;
		options = Object.append({data: old.data, url: old.url, method: old.method}, options);
		var data = options.data, url = String(options.url), method = options.method.toLowerCase();

		switch (typeOf(data)){
			case 'element': data = document.id(data).toQueryString(); break;
			case 'object': case 'hash': data = Object.toQueryString(data);
		}

		if (this.options.format){
			var format = 'format=' + this.options.format;
			data = (data) ? format + '&' + data : format;
		}

		if (this.options.emulation && !['get', 'post'].contains(method)){
			var _method = '_method=' + method;
			data = (data) ? _method + '&' + data : _method;
			method = 'post';
		}

		if (this.options.urlEncoded && ['post', 'put'].contains(method)){
			var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
			this.headers['Content-type'] = 'application/x-www-form-urlencoded' + encoding;
		}

		if (!url) url = document.location.pathname;

		var trimPosition = url.lastIndexOf('/');
		if (trimPosition > -1 && (trimPosition = url.indexOf('#')) > -1) url = url.substr(0, trimPosition);

		if (this.options.noCache)
			url += (url.contains('?') ? '&' : '?') + String.uniqueID();

		if (data && method == 'get'){
			url += (url.contains('?') ? '&' : '?') + data;
			data = null;
		}

		var xhr = this.xhr;
		if (progressSupport){
			xhr.onloadstart = this.loadstart.bind(this);
			xhr.onprogress = this.progress.bind(this);
		}

		xhr.open(method.toUpperCase(), url, this.options.async, this.options.user, this.options.password);
		if (this.options.user && 'withCredentials' in xhr) xhr.withCredentials = true;

		xhr.onreadystatechange = this.onStateChange.bind(this);

		Object.each(this.headers, function(value, key){
			try {
				xhr.setRequestHeader(key, value);
			} catch (e){
				this.fireEvent('exception', [key, value]);
			}
		}, this);

		this.fireEvent('request');
		xhr.send(data);
		if (!this.options.async) this.onStateChange();
		else if (this.options.timeout) this.timer = this.timeout.delay(this.options.timeout, this);
		return this;
	},

	cancel: function(){
		if (!this.running) return this;
		this.running = false;
		var xhr = this.xhr;
		xhr.abort();
		clearTimeout(this.timer);
		xhr.onreadystatechange = empty;
		if (progressSupport) xhr.onprogress = xhr.onloadstart = empty;
		this.xhr = new Browser.Request();
		this.fireEvent('cancel');
		return this;
	}

});

var methods = {};
['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
	methods[method] = function(data){
		var object = {
			method: method
		};
		if (data != null) object.data = data;
		return this.send(object);
	};
});

Request.implement(methods);

Element.Properties.send = {

	set: function(options){
		var send = this.get('send').cancel();
		send.setOptions(options);
		return this;
	},

	get: function(){
		var send = this.retrieve('send');
		if (!send){
			send = new Request({
				data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
			});
			this.store('send', send);
		}
		return send;
	}

};

Element.implement({

	send: function(url){
		var sender = this.get('send');
		sender.send({data: this, url: url || sender.options.url});
		return this;
	}

});

})();


/*
---

name: Request.HTML

description: Extends the basic Request Class with additional methods for interacting with HTML responses.

license: MIT-style license.

requires: [Element, Request]

provides: Request.HTML

...
*/

Request.HTML = new Class({

	Extends: Request,

	options: {
		update: false,
		append: false,
		evalScripts: true,
		filter: false,
		headers: {
			Accept: 'text/html, application/xml, text/xml, */*'
		}
	},

	success: function(text){
		var options = this.options, response = this.response;

		response.html = text.stripScripts(function(script){
			response.javascript = script;
		});

		var match = response.html.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
		if (match) response.html = match[1];
		var temp = new Element('div').set('html', response.html);

		response.tree = temp.childNodes;
		response.elements = temp.getElements(options.filter || '*');

		if (options.filter) response.tree = response.elements;
		if (options.update){
			var update = document.id(options.update).empty();
			if (options.filter) update.adopt(response.elements);
			else update.set('html', response.html);
		} else if (options.append){
			var append = document.id(options.append);
			if (options.filter) response.elements.reverse().inject(append);
			else append.adopt(temp.getChildren());
		}
		if (options.evalScripts) Browser.exec(response.javascript);

		this.onSuccess(response.tree, response.elements, response.html, response.javascript);
	}

});

Element.Properties.load = {

	set: function(options){
		var load = this.get('load').cancel();
		load.setOptions(options);
		return this;
	},

	get: function(){
		var load = this.retrieve('load');
		if (!load){
			load = new Request.HTML({data: this, link: 'cancel', update: this, method: 'get'});
			this.store('load', load);
		}
		return load;
	}

};

Element.implement({

	load: function(){
		this.get('load').send(Array.link(arguments, {data: Type.isObject, url: Type.isString}));
		return this;
	}

});


/*
---

name: JSON

description: JSON encoder and decoder.

license: MIT-style license.

SeeAlso: <http://www.json.org/>

requires: [Array, String, Number, Function]

provides: JSON

...
*/

if (typeof JSON == 'undefined') this.JSON = {};



(function(){

var special = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'};

var escape = function(chr){
	return special[chr] || '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).slice(-4);
};

JSON.validate = function(string){
	string = string.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
					replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
					replace(/(?:^|:|,)(?:\s*\[)+/g, '');

	return (/^[\],:{}\s]*$/).test(string);
};

JSON.encode = JSON.stringify ? function(obj){
	return JSON.stringify(obj);
} : function(obj){
	if (obj && obj.toJSON) obj = obj.toJSON();

	switch (typeOf(obj)){
		case 'string':
			return '"' + obj.replace(/[\x00-\x1f\\"]/g, escape) + '"';
		case 'array':
			return '[' + obj.map(JSON.encode).clean() + ']';
		case 'object': case 'hash':
			var string = [];
			Object.each(obj, function(value, key){
				var json = JSON.encode(value);
				if (json) string.push(JSON.encode(key) + ':' + json);
			});
			return '{' + string + '}';
		case 'number': case 'boolean': return '' + obj;
		case 'null': return 'null';
	}

	return null;
};

JSON.decode = function(string, secure){
	if (!string || typeOf(string) != 'string') return null;

	if (secure || JSON.secure){
		if (JSON.parse) return JSON.parse(string);
		if (!JSON.validate(string)) throw new Error('JSON could not decode the input; security is enabled and the value is not secure.');
	}

	return eval('(' + string + ')');
};

})();


/*
---

name: Request.JSON

description: Extends the basic Request Class with additional methods for sending and receiving JSON data.

license: MIT-style license.

requires: [Request, JSON]

provides: Request.JSON

...
*/

Request.JSON = new Class({

	Extends: Request,

	options: {
		/*onError: function(text, error){},*/
		secure: true
	},

	initialize: function(options){
		this.parent(options);
		Object.append(this.headers, {
			'Accept': 'application/json',
			'X-Request': 'JSON'
		});
	},

	success: function(text){
		var json;
		try {
			json = this.response.json = JSON.decode(text, this.options.secure);
		} catch (error){
			this.fireEvent('error', [text, error]);
			return;
		}
		if (json == null) this.onFailure();
		else this.onSuccess(json, text);
	}

});


/*
---

name: Cookie

description: Class for creating, reading, and deleting browser Cookies.

license: MIT-style license.

credits:
  - Based on the functions by Peter-Paul Koch (http://quirksmode.org).

requires: [Options, Browser]

provides: Cookie

...
*/

var Cookie = new Class({

	Implements: Options,

	options: {
		path: '/',
		domain: false,
		duration: false,
		secure: false,
		document: document,
		encode: true
	},

	initialize: function(key, options){
		this.key = key;
		this.setOptions(options);
	},

	write: function(value){
		if (this.options.encode) value = encodeURIComponent(value);
		if (this.options.domain) value += '; domain=' + this.options.domain;
		if (this.options.path) value += '; path=' + this.options.path;
		if (this.options.duration){
			var date = new Date();
			date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
			value += '; expires=' + date.toGMTString();
		}
		if (this.options.secure) value += '; secure';
		this.options.document.cookie = this.key + '=' + value;
		return this;
	},

	read: function(){
		var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
		return (value) ? decodeURIComponent(value[1]) : null;
	},

	dispose: function(){
		new Cookie(this.key, Object.merge({}, this.options, {duration: -1})).write('');
		return this;
	}

});

Cookie.write = function(key, value, options){
	return new Cookie(key, options).write(value);
};

Cookie.read = function(key){
	return new Cookie(key).read();
};

Cookie.dispose = function(key, options){
	return new Cookie(key, options).dispose();
};


/*
---

name: DOMReady

description: Contains the custom event domready.

license: MIT-style license.

requires: [Browser, Element, Element.Event]

provides: [DOMReady, DomReady]

...
*/

(function(window, document){

var ready,
	loaded,
	checks = [],
	shouldPoll,
	timer,
	testElement = document.createElement('div');

var domready = function(){
	clearTimeout(timer);
	if (ready) return;
	Browser.loaded = ready = true;
	document.removeListener('DOMContentLoaded', domready).removeListener('readystatechange', check);

	document.fireEvent('domready');
	window.fireEvent('domready');
};

var check = function(){
	for (var i = checks.length; i--;) if (checks[i]()){
		domready();
		return true;
	}
	return false;
};

var poll = function(){
	clearTimeout(timer);
	if (!check()) timer = setTimeout(poll, 10);
};

document.addListener('DOMContentLoaded', domready);

/*<ltIE8>*/
// doScroll technique by Diego Perini http://javascript.nwbox.com/IEContentLoaded/
// testElement.doScroll() throws when the DOM is not ready, only in the top window
var doScrollWorks = function(){
	try {
		testElement.doScroll();
		return true;
	} catch (e){}
	return false;
};
// If doScroll works already, it can't be used to determine domready
//   e.g. in an iframe
if (testElement.doScroll && !doScrollWorks()){
	checks.push(doScrollWorks);
	shouldPoll = true;
}
/*</ltIE8>*/

if (document.readyState) checks.push(function(){
	var state = document.readyState;
	return (state == 'loaded' || state == 'complete');
});

if ('onreadystatechange' in document) document.addListener('readystatechange', check);
else shouldPoll = true;

if (shouldPoll) poll();

Element.Events.domready = {
	onAdd: function(fn){
		if (ready) fn.call(this);
	}
};

// Make sure that domready fires before load
Element.Events.load = {
	base: 'load',
	onAdd: function(fn){
		if (loaded && this == window) fn.call(this);
	},
	condition: function(){
		if (this == window){
			domready();
			delete Element.Events.load;
		}
		return true;
	}
};

// This is based on the custom load event
window.addEvent('load', function(){
	loaded = true;
});

})(window, document);


/*
---

name: Swiff

description: Wrapper for embedding SWF movies. Supports External Interface Communication.

license: MIT-style license.

credits:
  - Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.

requires: [Options, Object, Element]

provides: Swiff

...
*/

(function(){

var Swiff = this.Swiff = new Class({

	Implements: Options,

	options: {
		id: null,
		height: 1,
		width: 1,
		container: null,
		properties: {},
		params: {
			quality: 'high',
			allowScriptAccess: 'always',
			wMode: 'window',
			swLiveConnect: true
		},
		callBacks: {},
		vars: {}
	},

	toElement: function(){
		return this.object;
	},

	initialize: function(path, options){
		this.instance = 'Swiff_' + String.uniqueID();

		this.setOptions(options);
		options = this.options;
		var id = this.id = options.id || this.instance;
		var container = document.id(options.container);

		Swiff.CallBacks[this.instance] = {};

		var params = options.params, vars = options.vars, callBacks = options.callBacks;
		var properties = Object.append({height: options.height, width: options.width}, options.properties);

		var self = this;

		for (var callBack in callBacks){
			Swiff.CallBacks[this.instance][callBack] = (function(option){
				return function(){
					return option.apply(self.object, arguments);
				};
			})(callBacks[callBack]);
			vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
		}

		params.flashVars = Object.toQueryString(vars);
		if (Browser.ie){
			properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
			params.movie = path;
		} else {
			properties.type = 'application/x-shockwave-flash';
		}
		properties.data = path;

		var build = '<object id="' + id + '"';
		for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
		build += '>';
		for (var param in params){
			if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
		}
		build += '</object>';
		this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
	},

	replaces: function(element){
		element = document.id(element, true);
		element.parentNode.replaceChild(this.toElement(), element);
		return this;
	},

	inject: function(element){
		document.id(element, true).appendChild(this.toElement());
		return this;
	},

	remote: function(){
		return Swiff.remote.apply(Swiff, [this.toElement()].append(arguments));
	}

});

Swiff.CallBacks = {};

Swiff.remote = function(obj, fn){
	var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
	return eval(rs);
};

})();

system/js/multiselect-uncompressed.js000064400000002520152177723720014115 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JavaScript behavior to allow shift select in administrator grids
 */
(function($) {
    
    Joomla = window.Joomla || {};
    var $boxes;
    Joomla.JMultiSelect = function(table) {
        var $last,
        
        initialize = function(table) {
            $boxes = $('#' + table).find('input[type=checkbox]');
            $boxes.on('click', function(e) {
                doselect(e)
            });
        },
        
        doselect = function(e) {
            var $current = $(e.target), isChecked, lastIndex, currentIndex, swap;
            if (e.shiftKey && $last.length) {
                isChecked = $current.is(':checked');
                lastIndex = $boxes.index($last);
                currentIndex = $boxes.index($current);
                if (currentIndex < lastIndex) {
                    // handle selection from bottom up
                    swap = lastIndex;
                    lastIndex = currentIndex;
                    currentIndex = swap;
                }
                $boxes.slice(lastIndex, currentIndex + 1).attr('checked', isChecked);
            }

            $last = $current;
        }
        initialize(table);
    }

})(jQuery);
system/js/sendtestmail-uncompressed.js000064400000003103152177723720014255 0ustar00/**
 * @package         Joomla.JavaScript
 * @copyright       Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license         GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Calls the sending process of the config class
 */
var sendTestMail = function ()
{
	$ = jQuery;

	var email_data = {
		smtpauth  : $('input[name="jform[smtpauth]"]:checked').val(),
		smtpuser  : $('input[name="jform[smtpuser]"]').val(),
		smtppass  : $('input[name="jform[smtppass]"]').val(),
		smtphost  : $('input[name="jform[smtphost]"]').val(),
		smtpsecure: $('select[name="jform[smtpsecure]"]').val(),
		smtpport  : $('input[name="jform[smtpport]"]').val(),
		mailfrom  : $('input[name="jform[mailfrom]"]').val(),
		fromname  : $('input[name="jform[fromname]"]').val(),
		mailer    : $('select[name="jform[mailer]"]').val(),
		mailonline: $('input[name="jform[mailonline]"]:checked').val()
	};

	// Remove js messages, if they exist.
	Joomla.removeMessages();

	$.ajax({
		method: "POST",
		url: document.getElementById('sendtestmail').getAttribute('data-ajaxuri'),
		data: email_data,
		dataType: "json"
	})
	.fail(function (jqXHR, textStatus, error) {
		Joomla.renderMessages(Joomla.ajaxErrorsMessages(jqXHR, textStatus, error));

		window.scrollTo(0, 0);
	})
	.done(function (response) {
		// Render messages, if any.
		if (typeof response.messages == 'object' && response.messages !== null)
		{
			Joomla.renderMessages(response.messages);

			window.scrollTo(0, 0);
		}
	});
};

jQuery(document).ready(function ($)
{
	$('#sendtestmail').click(sendTestMail);
});
system/js/calendar-setup-uncompressed.js000064400000021403152177723720014473 0ustar00/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
 * ---------------------------------------------------------------------------
 *
 * The DHTML Calendar
 *
 * Details and latest version at:
 * http://dynarch.com/mishoo/calendar.epl
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 *
 * This file defines helper functions for setting up the calendar.  They are
 * intended to help non-programmers get a working calendar on their site
 * quickly.  This script should not be seen as part of the calendar.  It just
 * shows you what one can do with the calendar, while in the same time
 * providing a quick and simple method for setting it up.  If you need
 * exhaustive customization of the calendar creation process feel free to
 * modify this code to suit your needs (this is recommended and much better
 * than modifying calendar.js itself).
 */

/**
 *  This function "patches" an input field (or other element) to use a calendar
 *  widget for date selection.
 *
 *  The "params" is a single object that can have the following properties:
 *
 *    prop. name   | description
 *  -------------------------------------------------------------------------------------------------
 *   inputField    | the ID of an input field to store the date
 *   displayArea   | the ID of a DIV or other element to show the date
 *   button        | ID of a button or other element that will trigger the calendar
 *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
 *   ifFormat      | date format that will be stored in the input field
 *   daFormat      | the date format that will be used to display the date in displayArea
 *   singleClick   | (true/false) whether the calendar is in single click mode or not (default: true)
 *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
 *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
 *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
 *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
 *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
 *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
 *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
 *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
 *   onClose       | function that gets called when the calendar is closed.  [default]
 *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
 *   date          | the date that the calendar will be initially displayed to
 *   showsTime     | default: false; if true the calendar will include a time selector
 *   timeFormat    | the time format; can be "12" or "24", default is "12"
 *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
 *   step          | configures the step of the years in drop-down boxes; default: 2
 *   position      | configures the calendar absolute position; default: null
 *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
 *   showOthers    | if "true" (but default: "false") it will show days from other months too
 *
 *  None of them is required, they all have default values.  However, if you
 *  pass none of "inputField", "displayArea" or "button" you'll get a warning
 *  saying "nothing to setup".
 */
Calendar.setup = function (params) {
	function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };

	param_default("inputField",      null);
	param_default("displayArea",     null);
	param_default("button",          null);
	param_default("eventName",       "click");
	param_default("ifFormat",        "%Y/%m/%d");
	param_default("daFormat",        "%Y/%m/%d");
	param_default("singleClick",     true);
	param_default("disableFunc",     null);
	param_default("dateStatusFunc",  params["disableFunc"]);	// takes precedence if both are defined
	param_default("dateTooltipFunc", null);
	param_default("dateText",        null);
	param_default("firstDay",        null);
	param_default("align",           "Br");
	param_default("range",           [1900, 2999]);
	param_default("weekNumbers",     true);
	param_default("flat",            null);
	param_default("flatCallback",    null);
	param_default("onSelect",        null);
	param_default("onClose",         null);
	param_default("onUpdate",        null);
	param_default("date",            null);
	param_default("showsTime",       false);
	param_default("timeFormat",      "24");
	param_default("electric",        true);
	param_default("step",            2);
	param_default("position",        null);
	param_default("cache",           false);
	param_default("showOthers",      false);
	param_default("multiple",        null);

	var tmp = ["inputField", "displayArea", "button"];
	for (var i in tmp) {
		if (typeof params[tmp[i]] == "string") {
			params[tmp[i]] = document.getElementById(params[tmp[i]]);
		}
	}
	if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
		alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
		return false;
	}

	function onSelect(cal) {
		var p = cal.params;
		var update = (cal.dateClicked || p.electric);
		if (update && p.inputField) {
			p.inputField.value = cal.date.print(p.ifFormat);
			if (typeof p.inputField.onchange == "function")
				p.inputField.onchange();
		}
		if (update && p.displayArea)
			p.displayArea.innerHTML = cal.date.print(p.daFormat);
		if (update && typeof p.onUpdate == "function")
			p.onUpdate(cal);
		if (update && p.flat) {
			if (typeof p.flatCallback == "function")
				p.flatCallback(cal);
		}
		if (update && p.singleClick && cal.dateClicked)
			cal.callCloseHandler();
	};

	if (params.flat != null) {
		if (typeof params.flat == "string")
			params.flat = document.getElementById(params.flat);
		if (!params.flat) {
			alert("Calendar.setup:\n  Flat specified but can't find parent.");
			return false;
		}
		var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
		cal.setDateToolTipHandler(params.dateTooltipFunc);
		cal.showsOtherMonths = params.showOthers;
		cal.showsTime = params.showsTime;
		cal.time24 = (params.timeFormat == "24");
		cal.params = params;
		cal.weekNumbers = params.weekNumbers;
		cal.setRange(params.range[0], params.range[1]);
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText = params.dateText;
		if (params.ifFormat) {
			cal.setDateFormat(params.ifFormat);
		}
		if (params.inputField && typeof params.inputField.value == "string") {
			cal.parseDate(params.inputField.value);
		}
		cal.create(params.flat);
		cal.show();
		return false;
	}

	var triggerEl = params.button || params.displayArea || params.inputField;
	triggerEl["on" + params.eventName] = function() {
		var dateEl = params.inputField || params.displayArea;
		var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
		var mustCreate = false;
		var cal = window.calendar;
		if (dateEl)
			params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
		if (!(cal && params.cache)) {
			window.calendar = cal = new Calendar(params.firstDay,
							     params.date,
							     params.onSelect || onSelect,
							     params.onClose || function(cal) { cal.hide(); });
			cal.setDateToolTipHandler(params.dateTooltipFunc);
			cal.showsTime = params.showsTime;
			cal.time24 = (params.timeFormat == "24");
			cal.weekNumbers = params.weekNumbers;
			mustCreate = true;
		} else {
			if (params.date)
				cal.setDate(params.date);
			cal.hide();
		}
		if (params.multiple) {
			cal.multiple = {};
			for (var i = params.multiple.length; --i >= 0;) {
				var d = params.multiple[i];
				var ds = d.print("%Y%m%d");
				cal.multiple[ds] = d;
			}
		}
		cal.showsOtherMonths = params.showOthers;
		cal.yearStep = params.step;
		cal.setRange(params.range[0], params.range[1]);
		cal.params = params;
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText = params.dateText;
		cal.setDateFormat(dateFmt);
		if (mustCreate)
			cal.create();
		cal.refresh();
		if (!params.position)
			cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
		else
			cal.showAt(params.position[0], params.position[1]);
		return false;
	};

	return cal;
};
system/js/color-field-init.js000064400000000307152177723720012217 0ustar00jQuery(document).ready(function ($){
	$('select.simplecolors').simplecolors();

	$(document).on('subform-row-add', function(event, row){
		$(row).find('select.simplecolors').simplecolors();
	});
});
system/js/associations-edit.js000064400000004107152177723720012503 0ustar00window.hideAssociation=function(o,a){jQuery("#associations .control-group").each(function(){jQuery(this).find(".control-label label").attr("for").replace(new RegExp("_id$"),"")==o+"_associations_"+a.replace("-","_")&&jQuery(this).hide()})},window.showAssociationMessage=function(){jQuery("#associations .control-group").hide(),jQuery("#associations").prepend('<div id="associations-notice" class="alert alert-info">'+Joomla.JText._("JGLOBAL_ASSOC_NOT_POSSIBLE")+"</div>")},Joomla.injectAssociations=function(o,a){var s;if(o.success){if(0!==o.data.length)for(var e in o.data)s=a+e.replace("-","_"),window[s](o.data[e].id,o.data[e].title,o.data[e].catid,null,null,e);o.message&&Joomla.renderMessages({notice:[o.message]})}else Joomla.renderMessages({warning:[Joomla.JText._("JGLOBAL_ASSOCIATIONS_PROPAGATE_FAILED")]})},Joomla.propagateAssociation=function(o,a){var s=jQuery("#"+o+"_id").val(),e=jQuery("#jform_language").find(":selected").val(),i=Joomla.getOptions("csrf.token",""),n=jQuery("form[name='adminForm']").attr("action");return n+="&"+i+"=1",jQuery.ajax({url:n,data:{task:"ajax.fetchAssociations",format:"json",assocId:s,excludeLang:e},success:function(o,s,e){Joomla.injectAssociations(o,a)},error:function(){Joomla.renderMessages({warning:[Joomla.JText._("JGLOBAL_ASSOCIATIONS_PROPAGATE_FAILED")]})}}),!1},window,document,Joomla,jQuery(document).ready(function(o){var a=Joomla.getOptions("system.associations.edit"),s=a.formControl||"jform";1==a.hidden?window.showAssociationMessage():window.hideAssociation(s,o("#"+s+"_language").val()),o("#"+s+"_language").on("change",function(a){Joomla.removeMessages(),o("#associations-notice").remove();var e=!1;o("#associations .control-group").each(function(){var a=o(this).find(".control-label label").attr("for").replace("_id","").replace("jform_associations_","");o(this).show(),e||""===o("#"+s+"_associations_"+a+"_id").val()||(e=!0),o("#"+s+"_associations_"+a+"_clear").click()}),e&&Joomla.renderMessages({warning:[Joomla.JText._("JGLOBAL_ASSOCIATIONS_RESET_WARNING")]});var i=o(this).val();"*"==i?window.showAssociationMessage():window.hideAssociation(s,i)})});
system/js/switcher.js000064400000001772152177723720010716 0ustar00/*        GNU General Public License version 2 or later; see LICENSE.txt*/var JSwitcher=function(f,c,l){var b,k,i,g,m={onShow:function(){},onHide:function(){},cookieName:"switcher",togglerSelector:"a",elementSelector:"div.tab",elementPrefix:"page-"},a=function(p,o,n){b=jQuery.noConflict();b.extend(m,n);k=b(p).find(m.togglerSelector);i=b(o).find(m.elementSelector);if((k.length===0)||(k.length!==i.length)){return}d();k.each(function(){b(this).on("click",function(){h(b(this).attr("id"))})});var q=document.location.hash.substring(1);if(q){h(q)}else{if(k.length){h(k.first().attr("id"))}}},h=function(o){var p=b("#"+o),n=b("#"+m.elementPrefix+o);if(p.length===0||n.length===0||o===g){return this}if(g){e(b("#"+m.elementPrefix+g));b("#"+g).removeClass("active")}j(n);p.addClass("active");g=o;document.location.hash=g;b(window).scrollTop(0)},e=function(n){m.onShow(n);b(n).hide()},d=function(){i.hide();k.removeClass("active")},j=function(n){m.onHide(n);b(n).show()};a(f,c,l);return{display:h,hide:e,hideAll:d,show:j}};system/js/calendar.js000064400000073004152177723720010634 0ustar00Calendar=function(d,c,f,a){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=f||null;this.onClose=a||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT.DEF_DATE_FORMAT;this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT;this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof d=="number"?d:Calendar._FD;this.showsOtherMonths=false;this.dateStr=c;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined"){Calendar._SDN_len=3}var b=new Array();for(var e=8;e>0;){b[--e]=Calendar._DN[e].substr(0,Calendar._SDN_len)}Calendar._SDN=b;if(typeof Calendar._SMN_len=="undefined"){Calendar._SMN_len=3}b=new Array();for(var e=12;e>0;){b[--e]=Calendar._MN[e].substr(0,Calendar._SMN_len)}Calendar._SMN=b}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(e){var a=0,d=0;var c=/^div$/i.test(e.tagName);if(c&&e.scrollLeft){a=e.scrollLeft}if(c&&e.scrollTop){d=e.scrollTop}var f={x:e.offsetLeft-a,y:e.offsetTop-d};if(e.offsetParent){var b=this.getAbsolutePos(e.offsetParent);f.x+=b.x;f.y+=b.y}return f};Calendar.isRelated=function(c,a){var d=a.relatedTarget;if(!d){var b=a.type;if(b=="mouseover"){d=a.fromElement}else{if(b=="mouseout"){d=a.toElement}}}while(d){if(d==c){return true}d=d.parentNode}return false};Calendar.removeClass=function(e,d){if(!(e&&e.className)){return}var a=e.className.split(" ");var b=new Array();for(var c=a.length;c>0;){if(a[--c]!=d){b[b.length]=a[c]}}e.className=b.join(" ")};Calendar.addClass=function(b,a){Calendar.removeClass(b,a);b.className+=" "+a};Calendar.getElement=function(a){var b=Calendar.is_ie?window.event.srcElement:a.currentTarget;while(b.nodeType!=1||/^div$/i.test(b.tagName)){b=b.parentNode}return b};Calendar.getTargetElement=function(a){var b=Calendar.is_ie?window.event.srcElement:a.target;while(b.nodeType!=1){b=b.parentNode}return b};Calendar.stopEvent=function(a){a||(a=window.event);if(Calendar.is_ie){a.cancelBubble=true;a.returnValue=false}else{a.preventDefault();a.stopPropagation()}return false};Calendar.addEvent=function(a,c,b){if(a.attachEvent){a.attachEvent("on"+c,b)}else{if(a.addEventListener){a.addEventListener(c,b,true)}else{a["on"+c]=b}}};Calendar.removeEvent=function(a,c,b){if(a.detachEvent){a.detachEvent("on"+c,b)}else{if(a.removeEventListener){a.removeEventListener(c,b,true)}else{a["on"+c]=null}}};Calendar.createElement=function(c,b){var a=null;if(document.createElementNS){a=document.createElementNS("http://www.w3.org/1999/xhtml",c)}else{a=document.createElement(c)}if(typeof b!="undefined"){b.appendChild(a)}return a};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true)}}};Calendar.findMonth=function(a){if(typeof a.month!="undefined"){return a}else{if(typeof a.parentNode.month!="undefined"){return a.parentNode}}return null};Calendar.findYear=function(a){if(typeof a.year!="undefined"){return a}else{if(typeof a.parentNode.year!="undefined"){return a.parentNode}}return null};Calendar.showMonthsCombo=function(){var e=Calendar._C;if(!e){return false}var e=e;var f=e.activeDiv;var d=e.monthsCombo;if(e.hilitedMonth){Calendar.removeClass(e.hilitedMonth,"hilite")}if(e.activeMonth){Calendar.removeClass(e.activeMonth,"active")}var c=e.monthsCombo.getElementsByTagName("div")[e.date.getMonth()];Calendar.addClass(c,"active");e.activeMonth=c;var b=d.style;b.display="block";if(f.navtype<0){b.left=f.offsetLeft+"px"}else{var a=d.offsetWidth;if(typeof a=="undefined"){a=50}b.left=(f.offsetLeft+f.offsetWidth-a)+"px"}b.top=(f.offsetTop+f.offsetHeight)+"px"};Calendar.showYearsCombo=function(d){var a=Calendar._C;if(!a){return false}var a=a;var c=a.activeDiv;var f=a.yearsCombo;if(a.hilitedYear){Calendar.removeClass(a.hilitedYear,"hilite")}if(a.activeYear){Calendar.removeClass(a.activeYear,"active")}a.activeYear=null;var b=a.date.getFullYear()+(d?1:-1);var j=f.firstChild;var h=false;for(var e=12;e>0;--e){if(b>=a.minYear&&b<=a.maxYear){j.innerHTML=b;j.year=b;j.style.display="block";h=true}else{j.style.display="none"}j=j.nextSibling;b+=d?a.yearStep:-a.yearStep}if(h){var k=f.style;k.display="block";if(c.navtype<0){k.left=c.offsetLeft+"px"}else{var g=f.offsetWidth;if(typeof g=="undefined"){g=50}k.left=(c.offsetLeft+c.offsetWidth-g)+"px"}k.top=(c.offsetTop+c.offsetHeight)+"px"}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false}if(cal.timeout){clearTimeout(cal.timeout)}var el=cal.activeDiv;if(!el){return false}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev)}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev)}};Calendar.tableMouseOver=function(n){var a=Calendar._C;if(!a){return}var c=a.activeDiv;var j=Calendar.getTargetElement(n);if(j==c||j.parentNode==c){Calendar.addClass(c,"hilite active");Calendar.addClass(c.parentNode,"rowhilite")}else{if(typeof c.navtype=="undefined"||(c.navtype!=50&&(c.navtype==0||Math.abs(c.navtype)>2))){Calendar.removeClass(c,"active")}Calendar.removeClass(c,"hilite");Calendar.removeClass(c.parentNode,"rowhilite")}n||(n=window.event);if(c.navtype==50&&j!=c){var m=Calendar.getAbsolutePos(c);var p=c.offsetWidth;var o=n.clientX;var q;var l=true;if(o>m.x+p){q=o-m.x-p;l=false}else{q=m.x-o}if(q<0){q=0}var f=c._range;var h=c._current;var g=Math.floor(q/10)%f.length;for(var e=f.length;--e>=0;){if(f[e]==h){break}}while(g-->0){if(l){if(--e<0){e=f.length-1}}else{if(++e>=f.length){e=0}}}var b=f[e];c.innerHTML=b;a.onUpdateTime()}var d=Calendar.findMonth(j);if(d){if(d.month!=a.date.getMonth()){if(a.hilitedMonth){Calendar.removeClass(a.hilitedMonth,"hilite")}Calendar.addClass(d,"hilite");a.hilitedMonth=d}else{if(a.hilitedMonth){Calendar.removeClass(a.hilitedMonth,"hilite")}}}else{if(a.hilitedMonth){Calendar.removeClass(a.hilitedMonth,"hilite")}var k=Calendar.findYear(j);if(k){if(k.year!=a.date.getFullYear()){if(a.hilitedYear){Calendar.removeClass(a.hilitedYear,"hilite")}Calendar.addClass(k,"hilite");a.hilitedYear=k}else{if(a.hilitedYear){Calendar.removeClass(a.hilitedYear,"hilite")}}}else{if(a.hilitedYear){Calendar.removeClass(a.hilitedYear,"hilite")}}}return Calendar.stopEvent(n)};Calendar.tableMouseDown=function(a){if(Calendar.getTargetElement(a)==Calendar.getElement(a)){return Calendar.stopEvent(a)}};Calendar.calDragIt=function(b){var c=Calendar._C;if(!(c&&c.dragging)){return false}var e;var d;if(Calendar.is_ie){d=window.event.clientY+document.body.scrollTop;e=window.event.clientX+document.body.scrollLeft}else{e=b.pageX;d=b.pageY}c.hideShowCovered();var a=c.element.style;a.left=(e-c.xOffs)+"px";a.top=(d-c.yOffs)+"px";return Calendar.stopEvent(b)};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev)}cal.hideShowCovered()};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300){with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver)}else{addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver)}addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp)}}else{if(cal.isPopup){cal._dragStart(ev)}}if(el.navtype==-1||el.navtype==1){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)}else{if(el.navtype==-2||el.navtype==2){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)}else{cal.timeout=null}}return Calendar.stopEvent(ev)};Calendar.dayMouseDblClick=function(a){Calendar.cellClick(Calendar.getElement(a),a||window.event);if(Calendar.is_ie){document.selection.empty()}};Calendar.dayMouseOver=function(b){var a=Calendar.getElement(b);if(Calendar.isRelated(a,b)||Calendar._C||a.disabled){return false}if(a.ttip){if(a.ttip.substr(0,1)=="_"){a.ttip=a.caldate.print(a.calendar.ttDateFormat)+a.ttip.substr(1)}a.calendar.tooltips.innerHTML=a.ttip}if(a.navtype!=300){Calendar.addClass(a,"hilite");if(a.caldate){Calendar.addClass(a.parentNode,"rowhilite");var c=a.calendar;if(c&&c.getDateToolTip){var e=a.caldate;window.status=e;a.title=c.getDateToolTip(e,e.getFullYear(),e.getMonth(),e.getDate())}}}return Calendar.stopEvent(b)};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled){return false}removeClass(el,"hilite");if(el.caldate){removeClass(el.parentNode,"rowhilite")}if(el.calendar){el.calendar.tooltips.innerHTML=_TT.SEL_DATE}}};Calendar.cellClick=function(e,o){var c=e.calendar;var h=false;var l=false;var f=null;if(typeof e.navtype=="undefined"){if(c.currentDateEl){Calendar.removeClass(c.currentDateEl,"selected");Calendar.addClass(e,"selected");h=(c.currentDateEl==e);if(!h){c.currentDateEl=e}}c.date.setDateOnly(e.caldate);f=c.date;var b=!(c.dateClicked=!e.otherMonth);if(!b&&!c.currentDateEl&&c.multiple){c._toggleMultipleDate(new Date(f))}else{l=!e.disabled}if(b){c._init(c.firstDayOfWeek,f)}}else{if(e.navtype==200){Calendar.removeClass(e,"hilite");c.callCloseHandler();return}f=new Date(c.date);if(e.navtype==0){f.setDateOnly(new Date())}c.dateClicked=false;var n=f.getFullYear();var g=f.getMonth();function a(q){var r=f.getDate();var i=f.getMonthDays(q);if(r>i){f.setDate(i)}f.setMonth(q)}switch(e.navtype){case 400:Calendar.removeClass(e,"hilite");var p=Calendar._TT.ABOUT;if(typeof p!="undefined"){p+=c.showsTime?Calendar._TT.ABOUT_TIME:""}else{p='Help and about box text is not translated into this language.\nIf you know this language and you feel generous please update\nthe corresponding file in "lang" subdir to match calendar-en.js\nand send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n'}alert(p);return;case -2:if(n>c.minYear){f.setFullYear(n-1)}break;case -1:if(g>0){a(g-1)}else{if(n-->c.minYear){f.setFullYear(n);a(11)}}break;case 1:if(g<11){a(g+1)}else{if(n<c.maxYear){f.setFullYear(n+1);a(0)}}break;case 2:if(n<c.maxYear){f.setFullYear(n+1)}break;case 100:c.setFirstDayOfWeek(e.fdow);return;case 50:var k=e._range;var m=e.innerHTML;for(var j=k.length;--j>=0;){if(k[j]==m){break}}if(o&&o.shiftKey){if(--j<0){j=k.length-1}}else{if(++j>=k.length){j=0}}var d=k[j];e.innerHTML=d;c.onUpdateTime();return;case 0:if((typeof c.getDateStatus=="function")&&c.getDateStatus(f,f.getFullYear(),f.getMonth(),f.getDate())){return false}break}if(!f.equalsTo(c.date)){c.setDate(f);l=true}else{if(e.navtype==0){l=h=true}}}if(l){o&&c.callHandler()}if(h){Calendar.removeClass(e,"hilite");o&&c.callCloseHandler()}};Calendar.prototype.create=function(n){var m=null;if(!n){m=document.getElementsByTagName("body")[0];this.isPopup=true}else{m=n;this.isPopup=false}this.date=this.dateStr?new Date(this.dateStr):new Date();var q=Calendar.createElement("table");this.table=q;q.cellSpacing=0;q.cellPadding=0;q.calendar=this;Calendar.addEvent(q,"mousedown",Calendar.tableMouseDown);var a=Calendar.createElement("div");this.element=a;a.className="calendar";if(this.isPopup){a.style.position="absolute";a.style.display="none"}a.appendChild(q);var k=Calendar.createElement("thead",q);var o=null;var r=null;var b=this;var e=function(s,j,i){o=Calendar.createElement("td",r);o.colSpan=j;o.className="button";if(i!=0&&Math.abs(i)<=2){o.className+=" nav"}Calendar._add_evs(o);o.calendar=b;o.navtype=i;o.innerHTML="<div unselectable='on'>"+s+"</div>";return o};r=Calendar.createElement("tr",k);var c=6;(this.isPopup)&&--c;(this.weekNumbers)&&++c;e("?",1,400).ttip=Calendar._TT.INFO;this.title=e("",c,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT.DRAG_TO_MOVE;this.title.style.cursor="move";e("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE}r=Calendar.createElement("tr",k);r.className="headrow";this._nav_py=e("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT.PREV_YEAR;this._nav_pm=e("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT.PREV_MONTH;this._nav_now=e(Calendar._TT.TODAY,this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT.GO_TODAY;this._nav_nm=e("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT.NEXT_MONTH;this._nav_ny=e("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT.NEXT_YEAR;r=Calendar.createElement("tr",k);r.className="daynames";if(this.weekNumbers){o=Calendar.createElement("td",r);o.className="name wn";o.innerHTML=Calendar._TT.WK}for(var h=7;h>0;--h){o=Calendar.createElement("td",r);if(!h){o.navtype=100;o.calendar=this;Calendar._add_evs(o)}}this.firstdayname=(this.weekNumbers)?r.firstChild.nextSibling:r.firstChild;this._displayWeekdays();var g=Calendar.createElement("tbody",q);this.tbody=g;for(h=6;h>0;--h){r=Calendar.createElement("tr",g);if(this.weekNumbers){o=Calendar.createElement("td",r)}for(var f=7;f>0;--f){o=Calendar.createElement("td",r);o.calendar=this;Calendar._add_evs(o)}}if(this.showsTime){r=Calendar.createElement("tr",g);r.className="time";o=Calendar.createElement("td",r);o.className="time";o.colSpan=2;o.innerHTML=Calendar._TT.TIME||"&#160;";o=Calendar.createElement("td",r);o.className="time";o.colSpan=this.weekNumbers?4:3;(function(){function t(C,E,D,F){var A=Calendar.createElement("span",o);A.className=C;A.innerHTML=E;A.calendar=b;A.ttip=Calendar._TT.TIME_PART;A.navtype=50;A._range=[];if(typeof D!="number"){A._range=D}else{for(var B=D;B<=F;++B){var z;if(B<10&&F>=10){z="0"+B}else{z=""+B}A._range[A._range.length]=z}}Calendar._add_evs(A);return A}var x=b.date.getHours();var i=b.date.getMinutes();var y=!b.time24;var j=(x>12);if(y&&j){x-=12}var v=t("hour",x,y?1:0,y?12:23);var u=Calendar.createElement("span",o);u.innerHTML=":";u.className="colon";var s=t("minute",i,0,59);var w=null;o=Calendar.createElement("td",r);o.className="time";o.colSpan=2;if(y){w=t("ampm",j?"pm":"am",["am","pm"])}else{o.innerHTML="&#160;"}b.onSetTime=function(){var A,z=this.date.getHours(),B=this.date.getMinutes();if(y){A=(z>=12);if(A){z-=12}if(z==0){z=12}w.innerHTML=A?"pm":"am"}v.innerHTML=(z<10)?("0"+z):z;s.innerHTML=(B<10)?("0"+B):B};b.onUpdateTime=function(){var A=this.date;var B=parseInt(v.innerHTML,10);if(y){if(/pm/i.test(w.innerHTML)&&B<12){B+=12}else{if(/am/i.test(w.innerHTML)&&B==12){B=0}}}var C=A.getDate();var z=A.getMonth();var D=A.getFullYear();A.setHours(B);A.setMinutes(parseInt(s.innerHTML,10));A.setFullYear(D);A.setMonth(z);A.setDate(C);this.dateClicked=false;this.callHandler()}})()}else{this.onSetTime=this.onUpdateTime=function(){}}var l=Calendar.createElement("tfoot",q);r=Calendar.createElement("tr",l);r.className="footrow";o=e(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300);o.className="ttip";if(this.isPopup){o.ttip=Calendar._TT.DRAG_TO_MOVE;o.style.cursor="move"}this.tooltips=o;a=Calendar.createElement("div",this.element);this.monthsCombo=a;a.className="combo";for(h=0;h<Calendar._MN.length;++h){var d=Calendar.createElement("div");d.className=Calendar.is_ie?"label-IEfix":"label";d.month=h;d.innerHTML=Calendar._SMN[h];a.appendChild(d)}a=Calendar.createElement("div",this.element);this.yearsCombo=a;a.className="combo";for(h=12;h>0;--h){var p=Calendar.createElement("div");p.className=Calendar.is_ie?"label-IEfix":"label";a.appendChild(p)}this._init(this.firstDayOfWeek,this.date);m.appendChild(this.element)};Calendar._keyEvent=function(k){var a=window._dynarch_popupCalendar;if(!a||a.multiple){return false}(Calendar.is_ie)&&(k=window.event);var i=(Calendar.is_ie||k.type=="keypress"),l=k.keyCode;if(k.ctrlKey){switch(l){case 37:i&&Calendar.cellClick(a._nav_pm);break;case 38:i&&Calendar.cellClick(a._nav_py);break;case 39:i&&Calendar.cellClick(a._nav_nm);break;case 40:i&&Calendar.cellClick(a._nav_ny);break;default:return false}}else{switch(l){case 32:Calendar.cellClick(a._nav_now);break;case 27:i&&a.callCloseHandler();break;case 37:case 38:case 39:case 40:if(i){var e,m,j,g,c,d;e=l==37||l==38;d=(l==37||l==39)?1:7;function b(){c=a.currentDateEl;var n=c.pos;m=n&15;j=n>>4;g=a.ar_days[j][m]}b();function f(){var n=new Date(a.date);n.setDate(n.getDate()-d);a.setDate(n)}function h(){var n=new Date(a.date);n.setDate(n.getDate()+d);a.setDate(n)}while(1){switch(l){case 37:if(--m>=0){g=a.ar_days[j][m]}else{m=6;l=38;continue}break;case 38:if(--j>=0){g=a.ar_days[j][m]}else{f();b()}break;case 39:if(++m<7){g=a.ar_days[j][m]}else{m=0;l=40;continue}break;case 40:if(++j<a.ar_days.length){g=a.ar_days[j][m]}else{h();b()}break}break}if(g){if(!g.disabled){Calendar.cellClick(g)}else{if(e){f()}else{h()}}}}break;case 13:if(i){Calendar.cellClick(a.currentDateEl,k)}break;default:return false}}return Calendar.stopEvent(k)};Calendar.prototype._init=function(m,w){var v=new Date(),q=v.getFullYear(),y=v.getMonth(),b=v.getDate();this.table.style.visibility="hidden";var h=w.getFullYear();if(h<this.minYear){h=this.minYear;w.setFullYear(h)}else{if(h>this.maxYear){h=this.maxYear;w.setFullYear(h)}}this.firstDayOfWeek=m;this.date=new Date(w);var x=w.getMonth();var A=w.getDate();var z=w.getMonthDays();w.setDate(1);var r=(w.getDay()-this.firstDayOfWeek)%7;if(r<0){r+=7}w.setDate(-r);w.setDate(w.getDate()+1);var e=this.tbody.firstChild;var k=Calendar._SMN[x];var o=this.ar_days=new Array();var n=Calendar._TT.WEEKEND;var d=this.multiple?(this.datesCells={}):null;for(var t=0;t<6;++t,e=e.nextSibling){var a=e.firstChild;if(this.weekNumbers){a.className="day wn";a.innerHTML=w.getWeekNumber();a=a.nextSibling}e.className="daysrow";var u=false,f,c=o[t]=[];for(var s=0;s<7;++s,a=a.nextSibling,w.setDate(f+1)){f=w.getDate();var g=w.getDay();a.className="day";a.pos=t<<4|s;c[s]=a;var l=(w.getMonth()==x);if(!l){if(this.showsOtherMonths){a.className+=" othermonth";a.otherMonth=true}else{a.className="emptycell";a.innerHTML="&#160;";a.disabled=true;continue}}else{a.otherMonth=false;u=true}a.disabled=false;a.innerHTML=this.getDateText?this.getDateText(w,f):f;if(d){d[w.print("%Y%m%d")]=a}if(this.getDateStatus){var p=this.getDateStatus(w,h,x,f);if(p===true){a.className+=" disabled";a.disabled=true}else{if(/disabled/i.test(p)){a.disabled=true}a.className+=" "+p}}if(!a.disabled){a.caldate=new Date(w);a.ttip="_";if(!this.multiple&&l&&f==A&&this.hiliteToday){a.className+=" selected";this.currentDateEl=a}if(w.getFullYear()==q&&w.getMonth()==y&&f==b){a.className+=" today";a.ttip+=Calendar._TT.PART_TODAY}if(n.indexOf(g.toString())!=-1){a.className+=a.otherMonth?" oweekend":" weekend"}}}if(!(u||this.showsOtherMonths)){e.className="emptyrow"}}this.title.innerHTML=Calendar._MN[x]+", "+h;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates()};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var b in this.multiple){var a=this.datesCells[b];var c=this.multiple[b];if(!c){continue}if(a){a.className+=" selected"}}}};Calendar.prototype._toggleMultipleDate=function(b){if(this.multiple){var c=b.print("%Y%m%d");var a=this.datesCells[c];if(a){var e=this.multiple[c];if(!e){Calendar.addClass(a,"selected");this.multiple[c]=b}else{Calendar.removeClass(a,"selected");delete this.multiple[c]}}}};Calendar.prototype.setDateToolTipHandler=function(a){this.getDateToolTip=a};Calendar.prototype.setDate=function(a){if(!a.equalsTo(this.date)){this._init(this.firstDayOfWeek,a)}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)};Calendar.prototype.setFirstDayOfWeek=function(a){this._init(a,this.date);this._displayWeekdays()};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(a){this.getDateStatus=a};Calendar.prototype.setRange=function(b,c){this.minYear=b;this.maxYear=c};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat))}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this)}this.hideShowCovered()};Calendar.prototype.destroy=function(){var a=this.element.parentNode;a.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null};Calendar.prototype.reparent=function(b){var a=this.element;a.parentNode.removeChild(a);b.appendChild(a)};Calendar._checkCalendar=function(b){var c=window._dynarch_popupCalendar;if(!c){return false}var a=Calendar.is_ie?Calendar.getElement(b):Calendar.getTargetElement(b);for(;a!=null&&a!=c.element;a=a.parentNode){}if(a==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(b)}};Calendar.prototype.show=function(){var e=this.table.getElementsByTagName("tr");for(var d=e.length;d>0;){var f=e[--d];Calendar.removeClass(f,"rowhilite");var c=f.getElementsByTagName("td");for(var b=c.length;b>0;){var a=c[--b];Calendar.removeClass(a,"hilite");Calendar.removeClass(a,"active")}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar)}this.hideShowCovered()};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar)}this.element.style.display="none";this.hidden=true;this.hideShowCovered()};Calendar.prototype.showAt=function(a,c){var b=this.element.style;b.left=a+"px";b.top=c+"px";this.show()};Calendar.prototype.showAtElement=function(c,d){var a=this;var e=Calendar.getAbsolutePos(c);if(!d||typeof d!="string"){this.showAt(e.x,e.y+c.offsetHeight);return true}function b(i){if(i.x<0){i.x=0}if(i.y<0){i.y=0}var j=document.createElement("div");var h=j.style;h.position="absolute";h.right=h.bottom=h.width=h.height="0px";document.body.appendChild(j);var g=Calendar.getAbsolutePos(j);document.body.removeChild(j);if(Calendar.is_ie){g.y+=(document.documentElement&&document.documentElement.scrollTop)||document.body.scrollTop;g.x+=(document.documentElement&&document.documentElement.scrollLeft)||document.body.scrollLeft}else{g.y+=window.scrollY;g.x+=window.scrollX}var f=i.x+i.width-g.x;if(f>0){i.x-=f}f=i.y+i.height-g.y;if(f>0){i.y-=f}}this.element.style.display="block";Calendar.continuation_for_the_khtml_browser=function(){var f=a.element.offsetWidth;var i=a.element.offsetHeight;a.element.style.display="none";var g=d.substr(0,1);var j="l";if(d.length>1){j=d.substr(1,1)}switch(g){case"T":e.y-=i;break;case"B":e.y+=c.offsetHeight;break;case"C":e.y+=(c.offsetHeight-i)/2;break;case"t":e.y+=c.offsetHeight-i;break;case"b":break}switch(j){case"L":e.x-=f;break;case"R":e.x+=c.offsetWidth;break;case"C":e.x+=(c.offsetWidth-f)/2;break;case"l":e.x+=c.offsetWidth-f;break;case"r":break}e.width=f;e.height=i+40;a.monthsCombo.style.display="none";b(e);a.showAt(e.x,e.y)};if(Calendar.is_khtml){setTimeout("Calendar.continuation_for_the_khtml_browser()",10)}else{Calendar.continuation_for_the_khtml_browser()}};Calendar.prototype.setDateFormat=function(a){this.dateFormat=a};Calendar.prototype.setTtDateFormat=function(a){this.ttDateFormat=a};Calendar.prototype.parseDate=function(b,a){if(!a){a=this.dateFormat}this.setDate(Date.parseDate(b,a))};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera){return}function b(k){var i=k.style.visibility;if(!i){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml){i=document.defaultView.getComputedStyle(k,"").getPropertyValue("visibility")}else{i=""}}else{if(k.currentStyle){i=k.currentStyle.visibility}else{i=""}}}return i}var s=new Array("applet","iframe","select");var c=this.element;var a=Calendar.getAbsolutePos(c);var f=a.x;var d=c.offsetWidth+f;var r=a.y;var q=c.offsetHeight+r;for(var h=s.length;h>0;){var g=document.getElementsByTagName(s[--h]);var e=null;for(var l=g.length;l>0;){e=g[--l];a=Calendar.getAbsolutePos(e);var o=a.x;var n=e.offsetWidth+o;var m=a.y;var j=e.offsetHeight+m;if(this.hidden||(o>d)||(n<f)||(m>q)||(j<r)){if(!e.__msh_save_visibility){e.__msh_save_visibility=b(e)}e.style.visibility=e.__msh_save_visibility}else{if(!e.__msh_save_visibility){e.__msh_save_visibility=b(e)}e.style.visibility="hidden"}}}};Calendar.prototype._displayWeekdays=function(){var b=this.firstDayOfWeek;var a=this.firstdayname;var d=Calendar._TT.WEEKEND;for(var c=0;c<7;++c){a.className="day name";var e=(c+b)%7;if(c){a.ttip=Calendar._TT.DAY_FIRST.replace("%s",Calendar._DN[e]);a.navtype=100;a.calendar=this;a.fdow=e;Calendar._add_evs(a)}if(d.indexOf(e.toString())!=-1){Calendar.addClass(a,"weekend")}a.innerHTML=Calendar._SDN[(c+b)%7];a=a.nextSibling}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none"};Calendar.prototype._dragStart=function(ev){if(this.dragging){return}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd)}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(l,c){var n=new Date();var o=0;var e=-1;var k=0;var q=l.split(/\W+/);var p=c.match(/%./g);var h=0,g=0;var r=0;var f=0;for(h=0;h<q.length;++h){if(!q[h]){continue}switch(p[h]){case"%d":case"%e":k=parseInt(q[h],10);break;case"%m":e=parseInt(q[h],10)-1;break;case"%Y":case"%y":o=parseInt(q[h],10);(o<100)&&(o+=(o>29)?1900:2000);break;case"%b":case"%B":for(g=0;g<12;++g){if(Calendar._MN[g].substr(0,q[h].length).toLowerCase()==q[h].toLowerCase()){e=g;break}}break;case"%H":case"%I":case"%k":case"%l":r=parseInt(q[h],10);break;case"%P":case"%p":if(/pm/i.test(q[h])&&r<12){r+=12}else{if(/am/i.test(q[h])&&r>=12){r-=12}}break;case"%M":f=parseInt(q[h],10);break}}if(isNaN(o)){o=n.getFullYear()}if(isNaN(e)){e=n.getMonth()}if(isNaN(k)){k=n.getDate()}if(isNaN(r)){r=n.getHours()}if(isNaN(f)){f=n.getMinutes()}if(o!=0&&e!=-1&&k!=0){return new Date(o,e,k,r,f,0)}o=0;e=-1;k=0;for(h=0;h<q.length;++h){if(q[h].search(/[a-zA-Z]+/)!=-1){var s=-1;for(g=0;g<12;++g){if(Calendar._MN[g].substr(0,q[h].length).toLowerCase()==q[h].toLowerCase()){s=g;break}}if(s!=-1){if(e!=-1){k=e+1}e=s}}else{if(parseInt(q[h],10)<=12&&e==-1){e=q[h]-1}else{if(parseInt(q[h],10)>31&&o==0){o=parseInt(q[h],10);(o<100)&&(o+=(o>29)?1900:2000)}else{if(k==0){k=q[h]}}}}}if(o==0){o=n.getFullYear()}if(e!=-1&&k!=0){return new Date(o,e,k,r,f,0)}return n};Date.prototype.getMonthDays=function(b){var a=this.getFullYear();if(typeof b=="undefined"){b=this.getMonth()}if(((0==(a%4))&&((0!=(a%100))||(0==(a%400))))&&b==1){return 29}else{return Date._MD[b]}};Date.prototype.getDayOfYear=function(){var a=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var c=new Date(this.getFullYear(),0,0,0,0,0);var b=a-c;return Math.floor(b/Date.DAY)};Date.prototype.getWeekNumber=function(){var c=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var b=c.getDay();c.setDate(c.getDate()-(b+6)%7+3);var a=c.valueOf();c.setMonth(0);c.setDate(4);return Math.round((a-c.valueOf())/(7*86400000))+1};Date.prototype.equalsTo=function(a){return((this.getFullYear()==a.getFullYear())&&(this.getMonth()==a.getMonth())&&(this.getDate()==a.getDate())&&(this.getHours()==a.getHours())&&(this.getMinutes()==a.getMinutes()))};Date.prototype.setDateOnly=function(a){var b=new Date(a);this.setDate(1);this.setFullYear(b.getFullYear());this.setMonth(b.getMonth());this.setDate(b.getDate())};Date.prototype.print=function(l){var b=this.getMonth();var k=this.getDate();var n=this.getFullYear();var p=this.getWeekNumber();var q=this.getDay();var v={};var r=this.getHours();var c=(r>=12);var h=(c)?(r-12):r;var u=this.getDayOfYear();if(h==0){h=12}var e=this.getMinutes();var j=this.getSeconds();v["%a"]=Calendar._SDN[q];v["%A"]=Calendar._DN[q];v["%b"]=Calendar._SMN[b];v["%B"]=Calendar._MN[b];v["%C"]=1+Math.floor(n/100);v["%d"]=(k<10)?("0"+k):k;v["%e"]=k;v["%H"]=(r<10)?("0"+r):r;v["%I"]=(h<10)?("0"+h):h;v["%j"]=(u<100)?((u<10)?("00"+u):("0"+u)):u;v["%k"]=r;v["%l"]=h;v["%m"]=(b<9)?("0"+(1+b)):(1+b);v["%M"]=(e<10)?("0"+e):e;v["%n"]="\n";v["%p"]=c?"PM":"AM";v["%P"]=c?"pm":"am";v["%s"]=Math.floor(this.getTime()/1000);v["%S"]=(j<10)?("0"+j):j;v["%t"]="\t";v["%U"]=v["%W"]=v["%V"]=(p<10)?("0"+p):p;v["%u"]=q+1;v["%w"]=q;v["%y"]=(""+n).substr(2,2);v["%Y"]=n;v["%%"]="%";var t=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml){return l.replace(t,function(a){return v[a]||a})}var o=l.match(t);for(var g=0;g<o.length;g++){var f=v[o[g]];if(f){t=new RegExp(o[g],"g");l=l.replace(t,f)}}return l};window._dynarch_popupCalendar=null;system/js/punycode-uncompressed.js000064400000034544152177723720013424 0ustar00/*! https://mths.be/punycode v1.4.1 by @mathias - do not update to v2 */
;(function(root) {

	/** Detect free variables */
	var freeExports = typeof exports == 'object' && exports &&
		!exports.nodeType && exports;
	var freeModule = typeof module == 'object' && module &&
		!module.nodeType && module;
	var freeGlobal = typeof global == 'object' && global;
	if (
		freeGlobal.global === freeGlobal ||
		freeGlobal.window === freeGlobal ||
		freeGlobal.self === freeGlobal
	) {
		root = freeGlobal;
	}

	/**
	 * The `punycode` object.
	 * @name punycode
	 * @type Object
	 */
	var punycode,

	/** Highest positive signed 32-bit float value */
	maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1

	/** Bootstring parameters */
	base = 36,
	tMin = 1,
	tMax = 26,
	skew = 38,
	damp = 700,
	initialBias = 72,
	initialN = 128, // 0x80
	delimiter = '-', // '\x2D'

	/** Regular expressions */
	regexPunycode = /^xn--/,
	regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
	regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators

	/** Error messages */
	errors = {
		'overflow': 'Overflow: input needs wider integers to process',
		'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
		'invalid-input': 'Invalid input'
	},

	/** Convenience shortcuts */
	baseMinusTMin = base - tMin,
	floor = Math.floor,
	stringFromCharCode = String.fromCharCode,

	/** Temporary variable */
	key;

	/*--------------------------------------------------------------------------*/

	/**
	 * A generic error utility function.
	 * @private
	 * @param {String} type The error type.
	 * @returns {Error} Throws a `RangeError` with the applicable error message.
	 */
	function error(type) {
		throw new RangeError(errors[type]);
	}

	/**
	 * A generic `Array#map` utility function.
	 * @private
	 * @param {Array} array The array to iterate over.
	 * @param {Function} callback The function that gets called for every array
	 * item.
	 * @returns {Array} A new array of values returned by the callback function.
	 */
	function map(array, fn) {
		var length = array.length;
		var result = [];
		while (length--) {
			result[length] = fn(array[length]);
		}
		return result;
	}

	/**
	 * A simple `Array#map`-like wrapper to work with domain name strings or email
	 * addresses.
	 * @private
	 * @param {String} domain The domain name or email address.
	 * @param {Function} callback The function that gets called for every
	 * character.
	 * @returns {Array} A new string of characters returned by the callback
	 * function.
	 */
	function mapDomain(string, fn) {
		var parts = string.split('@');
		var result = '';
		if (parts.length > 1) {
			// In email addresses, only the domain name should be punycoded. Leave
			// the local part (i.e. everything up to `@`) intact.
			result = parts[0] + '@';
			string = parts[1];
		}
		// Avoid `split(regex)` for IE8 compatibility. See #17.
		string = string.replace(regexSeparators, '\x2E');
		var labels = string.split('.');
		var encoded = map(labels, fn).join('.');
		return result + encoded;
	}

	/**
	 * Creates an array containing the numeric code points of each Unicode
	 * character in the string. While JavaScript uses UCS-2 internally,
	 * this function will convert a pair of surrogate halves (each of which
	 * UCS-2 exposes as separate characters) into a single code point,
	 * matching UTF-16.
	 * @see `punycode.ucs2.encode`
	 * @see <https://mathiasbynens.be/notes/javascript-encoding>
	 * @memberOf punycode.ucs2
	 * @name decode
	 * @param {String} string The Unicode input string (UCS-2).
	 * @returns {Array} The new array of code points.
	 */
	function ucs2decode(string) {
		var output = [],
		    counter = 0,
		    length = string.length,
		    value,
		    extra;
		while (counter < length) {
			value = string.charCodeAt(counter++);
			if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
				// high surrogate, and there is a next character
				extra = string.charCodeAt(counter++);
				if ((extra & 0xFC00) == 0xDC00) { // low surrogate
					output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
				} else {
					// unmatched surrogate; only append this code unit, in case the next
					// code unit is the high surrogate of a surrogate pair
					output.push(value);
					counter--;
				}
			} else {
				output.push(value);
			}
		}
		return output;
	}

	/**
	 * Creates a string based on an array of numeric code points.
	 * @see `punycode.ucs2.decode`
	 * @memberOf punycode.ucs2
	 * @name encode
	 * @param {Array} codePoints The array of numeric code points.
	 * @returns {String} The new Unicode string (UCS-2).
	 */
	function ucs2encode(array) {
		return map(array, function(value) {
			var output = '';
			if (value > 0xFFFF) {
				value -= 0x10000;
				output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
				value = 0xDC00 | value & 0x3FF;
			}
			output += stringFromCharCode(value);
			return output;
		}).join('');
	}

	/**
	 * Converts a basic code point into a digit/integer.
	 * @see `digitToBasic()`
	 * @private
	 * @param {Number} codePoint The basic numeric code point value.
	 * @returns {Number} The numeric value of a basic code point (for use in
	 * representing integers) in the range `0` to `base - 1`, or `base` if
	 * the code point does not represent a value.
	 */
	function basicToDigit(codePoint) {
		if (codePoint - 48 < 10) {
			return codePoint - 22;
		}
		if (codePoint - 65 < 26) {
			return codePoint - 65;
		}
		if (codePoint - 97 < 26) {
			return codePoint - 97;
		}
		return base;
	}

	/**
	 * Converts a digit/integer into a basic code point.
	 * @see `basicToDigit()`
	 * @private
	 * @param {Number} digit The numeric value of a basic code point.
	 * @returns {Number} The basic code point whose value (when used for
	 * representing integers) is `digit`, which needs to be in the range
	 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
	 * used; else, the lowercase form is used. The behavior is undefined
	 * if `flag` is non-zero and `digit` has no uppercase form.
	 */
	function digitToBasic(digit, flag) {
		//  0..25 map to ASCII a..z or A..Z
		// 26..35 map to ASCII 0..9
		return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
	}

	/**
	 * Bias adaptation function as per section 3.4 of RFC 3492.
	 * https://tools.ietf.org/html/rfc3492#section-3.4
	 * @private
	 */
	function adapt(delta, numPoints, firstTime) {
		var k = 0;
		delta = firstTime ? floor(delta / damp) : delta >> 1;
		delta += floor(delta / numPoints);
		for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
			delta = floor(delta / baseMinusTMin);
		}
		return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
	}

	/**
	 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
	 * symbols.
	 * @memberOf punycode
	 * @param {String} input The Punycode string of ASCII-only symbols.
	 * @returns {String} The resulting string of Unicode symbols.
	 */
	function decode(input) {
		// Don't use UCS-2
		var output = [],
		    inputLength = input.length,
		    out,
		    i = 0,
		    n = initialN,
		    bias = initialBias,
		    basic,
		    j,
		    index,
		    oldi,
		    w,
		    k,
		    digit,
		    t,
		    /** Cached calculation results */
		    baseMinusT;

		// Handle the basic code points: let `basic` be the number of input code
		// points before the last delimiter, or `0` if there is none, then copy
		// the first basic code points to the output.

		basic = input.lastIndexOf(delimiter);
		if (basic < 0) {
			basic = 0;
		}

		for (j = 0; j < basic; ++j) {
			// if it's not a basic code point
			if (input.charCodeAt(j) >= 0x80) {
				error('not-basic');
			}
			output.push(input.charCodeAt(j));
		}

		// Main decoding loop: start just after the last delimiter if any basic code
		// points were copied; start at the beginning otherwise.

		for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {

			// `index` is the index of the next character to be consumed.
			// Decode a generalized variable-length integer into `delta`,
			// which gets added to `i`. The overflow checking is easier
			// if we increase `i` as we go, then subtract off its starting
			// value at the end to obtain `delta`.
			for (oldi = i, w = 1, k = base; /* no condition */; k += base) {

				if (index >= inputLength) {
					error('invalid-input');
				}

				digit = basicToDigit(input.charCodeAt(index++));

				if (digit >= base || digit > floor((maxInt - i) / w)) {
					error('overflow');
				}

				i += digit * w;
				t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);

				if (digit < t) {
					break;
				}

				baseMinusT = base - t;
				if (w > floor(maxInt / baseMinusT)) {
					error('overflow');
				}

				w *= baseMinusT;

			}

			out = output.length + 1;
			bias = adapt(i - oldi, out, oldi == 0);

			// `i` was supposed to wrap around from `out` to `0`,
			// incrementing `n` each time, so we'll fix that now:
			if (floor(i / out) > maxInt - n) {
				error('overflow');
			}

			n += floor(i / out);
			i %= out;

			// Insert `n` at position `i` of the output
			output.splice(i++, 0, n);

		}

		return ucs2encode(output);
	}

	/**
	 * Converts a string of Unicode symbols (e.g. a domain name label) to a
	 * Punycode string of ASCII-only symbols.
	 * @memberOf punycode
	 * @param {String} input The string of Unicode symbols.
	 * @returns {String} The resulting Punycode string of ASCII-only symbols.
	 */
	function encode(input) {
		var n,
		    delta,
		    handledCPCount,
		    basicLength,
		    bias,
		    j,
		    m,
		    q,
		    k,
		    t,
		    currentValue,
		    output = [],
		    /** `inputLength` will hold the number of code points in `input`. */
		    inputLength,
		    /** Cached calculation results */
		    handledCPCountPlusOne,
		    baseMinusT,
		    qMinusT;

		// Convert the input in UCS-2 to Unicode
		input = ucs2decode(input);

		// Cache the length
		inputLength = input.length;

		// Initialize the state
		n = initialN;
		delta = 0;
		bias = initialBias;

		// Handle the basic code points
		for (j = 0; j < inputLength; ++j) {
			currentValue = input[j];
			if (currentValue < 0x80) {
				output.push(stringFromCharCode(currentValue));
			}
		}

		handledCPCount = basicLength = output.length;

		// `handledCPCount` is the number of code points that have been handled;
		// `basicLength` is the number of basic code points.

		// Finish the basic string - if it is not empty - with a delimiter
		if (basicLength) {
			output.push(delimiter);
		}

		// Main encoding loop:
		while (handledCPCount < inputLength) {

			// All non-basic code points < n have been handled already. Find the next
			// larger one:
			for (m = maxInt, j = 0; j < inputLength; ++j) {
				currentValue = input[j];
				if (currentValue >= n && currentValue < m) {
					m = currentValue;
				}
			}

			// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
			// but guard against overflow
			handledCPCountPlusOne = handledCPCount + 1;
			if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
				error('overflow');
			}

			delta += (m - n) * handledCPCountPlusOne;
			n = m;

			for (j = 0; j < inputLength; ++j) {
				currentValue = input[j];

				if (currentValue < n && ++delta > maxInt) {
					error('overflow');
				}

				if (currentValue == n) {
					// Represent delta as a generalized variable-length integer
					for (q = delta, k = base; /* no condition */; k += base) {
						t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
						if (q < t) {
							break;
						}
						qMinusT = q - t;
						baseMinusT = base - t;
						output.push(
							stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
						);
						q = floor(qMinusT / baseMinusT);
					}

					output.push(stringFromCharCode(digitToBasic(q, 0)));
					bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
					delta = 0;
					++handledCPCount;
				}
			}

			++delta;
			++n;

		}
		return output.join('');
	}

	/**
	 * Converts a Punycode string representing a domain name or an email address
	 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
	 * it doesn't matter if you call it on a string that has already been
	 * converted to Unicode.
	 * @memberOf punycode
	 * @param {String} input The Punycoded domain name or email address to
	 * convert to Unicode.
	 * @returns {String} The Unicode representation of the given Punycode
	 * string.
	 */
	function toUnicode(input) {
		return mapDomain(input, function(string) {
			return regexPunycode.test(string)
				? decode(string.slice(4).toLowerCase())
				: string;
		});
	}

	/**
	 * Converts a Unicode string representing a domain name or an email address to
	 * Punycode. Only the non-ASCII parts of the domain name will be converted,
	 * i.e. it doesn't matter if you call it with a domain that's already in
	 * ASCII.
	 * @memberOf punycode
	 * @param {String} input The domain name or email address to convert, as a
	 * Unicode string.
	 * @returns {String} The Punycode representation of the given domain name or
	 * email address.
	 */
	function toASCII(input) {
		return mapDomain(input, function(string) {
			return regexNonASCII.test(string)
				? 'xn--' + encode(string)
				: string;
		});
	}

	/*--------------------------------------------------------------------------*/

	/** Define the public API */
	punycode = {
		/**
		 * A string representing the current Punycode.js version number.
		 * @memberOf punycode
		 * @type String
		 */
		'version': '1.4.1',
		/**
		 * An object of methods to convert from JavaScript's internal character
		 * representation (UCS-2) to Unicode code points, and back.
		 * @see <https://mathiasbynens.be/notes/javascript-encoding>
		 * @memberOf punycode
		 * @type Object
		 */
		'ucs2': {
			'decode': ucs2decode,
			'encode': ucs2encode
		},
		'decode': decode,
		'encode': encode,
		'toASCII': toASCII,
		'toUnicode': toUnicode
	};

	/** Expose `punycode` */
	// Some AMD build optimizers, like r.js, check for specific condition patterns
	// like the following:
	if (
		typeof define == 'function' &&
		typeof define.amd == 'object' &&
		define.amd
	) {
		define('punycode', function() {
			return punycode;
		});
	} else if (freeExports && freeModule) {
		if (module.exports == freeExports) {
			// in Node.js, io.js, or RingoJS v0.8.0+
			freeModule.exports = punycode;
		} else {
			// in Narwhal or RingoJS v0.7.0-
			for (key in punycode) {
				punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
			}
		}
	} else {
		// in Rhino or a web browser
		root.punycode = punycode;
	}

}(this));
system/js/validate-uncompressed.js000064400000016564152177723720013371 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Unobtrusive Form Validation library
 *
 * Inspired by: Chris Campbell <www.particletree.com>
 *
 * @since  1.5
 */
var JFormValidator = function() {
	"use strict";
	var handlers, inputEmail, custom,

 	setHandler = function(name, fn, en) {
 	 	en = (en === '') ? true : en;
 	 	handlers[name] = {
 	 	 	enabled : en,
 	 	 	exec : fn
 	 	};
 	},

 	findLabel = function(id, form){
 	 	var $label, $form = jQuery(form);
 	 	if (!id) {
 	 	 	return false;
 	 	}
 	 	$label = $form.find('#' + id + '-lbl');
 	 	if ($label.length) {
 	 	 	return $label;
 	 	}
 	 	$label = $form.find('label[for="' + id + '"]');
 	 	if ($label.length) {
 	 	 	return $label;
 	 	}
 	 	return false;
 	},

 	handleResponse = function(state, $el) {
 		// Get a label
 	 	var $label = $el.data('label');
 	 	if ($label === undefined) {
 	 		$label = findLabel($el.attr('id'), $el.get(0).form);
 	 		$el.data('label', $label);
 	 	}

 	 	// Set the element and its label (if exists) invalid state
 	 	if (state === false) {
 	 	 	$el.addClass('invalid').attr('aria-invalid', 'true');
 	 	 	if ($label) {
 	 	 	 	$label.addClass('invalid');
 	 	 	}
 	 	} else {
 	 	 	$el.removeClass('invalid').attr('aria-invalid', 'false');
 	 	 	if ($label) {
 	 	 	 	$label.removeClass('invalid');
 	 	 	}
 	 	}
 	},

 	validate = function(el) {
 	 	var $el = jQuery(el), tagName, handler;
 	 	// Ignore the element if its currently disabled, because are not submitted for the http-request. For those case return always true.
 	 	if ($el.attr('disabled')) {
 	 	 	handleResponse(true, $el);
 	 	 	return true;
 	 	}
 	 	// If the field is required make sure it has a value
 	 	if ($el.attr('required') || $el.hasClass('required')) {
 	 	 	tagName = $el.prop("tagName").toLowerCase();
 	 	 	if (tagName === 'fieldset' && ($el.hasClass('radio') || $el.hasClass('checkboxes'))) {
 	 	 	 	if (!$el.find('input:checked').length){
 	 	 	 	 	handleResponse(false, $el);
 	 	 	 	 	return false;
 	 	 	 	}
 	 	 	//If element has class placeholder that means it is empty.
 	 	 	} else if (!$el.val() || $el.hasClass('placeholder') || ($el.attr('type') === 'checkbox' && !$el.is(':checked'))) {
 	 	 	 	handleResponse(false, $el);
 	 	 	 	return false;
 	 	 	}
 	 	}
 	 	// Only validate the field if the validate class is set
 	 	handler = ($el.attr('class') && $el.attr('class').match(/validate-([a-zA-Z0-9\_\-]+)/)) ? $el.attr('class').match(/validate-([a-zA-Z0-9\_\-]+)/)[1] : "";

		// Try HTML5 pattern first then the handlers
	    if ($el.attr('pattern') && $el.attr('pattern') != '') {
		if ($el.val().length) {
			isValid = new RegExp('^'+$el.attr('pattern')+'$').test($el.val());
			handleResponse(isValid, $el);
			return isValid;					
		}
		if ($el.attr('required') || $el.hasClass('required')) {
			handleResponse(false, $el);
			return false;
		}
		handleResponse(true, $el);
		return true;
	    } else {
		    if (handler === '') {
			    handleResponse(true, $el);
			    return true;
		    }
		    // Check the additional validation types
		    if ((handler) && (handler !== 'none') && (handlers[handler]) && $el.val()) {
			    // Execute the validation handler and return result
			    if (handlers[handler].exec($el.val(), $el) !== true) {
				    handleResponse(false, $el);
				    return false;
			    }
		    }
		    // Return validation state
		    handleResponse(true, $el);
		    return true;
	    }
 	},

 	isValid = function(form) {
 		var fields, valid = true, message, error, label, invalid = [], i, l;

 		// Validate form fields
 		fields = jQuery(form).find('input, textarea, select, fieldset');
 	 	for (i = 0, l = fields.length; i < l; i++) {
 	 		// Ignore Rule/Filters/Assigned field for spead up validation
 	 		// And other fields that has class="novalidate"
 	 		if(jQuery(fields[i]).hasClass('novalidate')) {
 	 			continue;
 	 		}
 	 	 	if (validate(fields[i]) === false) {
 	 	 	 	valid = false;
 	 	 	 	invalid.push(fields[i]);
 	 	 	}
 	 	}

 	 	// Run custom form validators if present
 	 	jQuery.each(custom, function(key, validator) {
 	 	 	if (validator.exec() !== true) {
 	 	 	 	valid = false;
 	 	 	}
 	 	});

 	 	if (!valid && invalid.length > 0) {
 	 	 	message = Joomla.JText._('JLIB_FORM_FIELD_INVALID');
 	 	 	error = {"error": []};
 	 	 	for (i = invalid.length - 1; i >= 0; i--) {
 	 	 		label = jQuery(invalid[i]).data("label");
 	 			if (label) {
 	 	 			error.error.push(message + label.text().replace("*", ""));
                		}
 	 	 	}
 	 	 	Joomla.renderMessages(error);
 	 	}
 	 	return valid;
 	},

 	attachToForm = function(form) {
 	 	var inputFields = [], elements,
 	 		$form = jQuery(form);
 	 	// Iterate through the form object and attach the validate method to all input fields.
 	 	elements = $form.find('input, textarea, select, fieldset, button');
 	 	for (var i = 0, l = elements.length; i < l; i++) {
 	 	 	var $el = jQuery(elements[i]), tagName = $el.prop("tagName").toLowerCase();
 	 	 	// Attach isValid method to submit button
 	 	 	if ((tagName === 'input' || tagName === 'button') && ($el.attr('type') === 'submit' || $el.attr('type') === 'image')) {
 	 	 	 	if ($el.hasClass('validate')) {
 	 	 	 	 	$el.on('click', function() {
 	 	 	 	 	 	return isValid(form);
 	 	 	 	 	});
 	 	 	 	}
 	 	 	}
 	 	 	// Attach validate method only to fields
 	 	 	else if (tagName !== 'button' && !(tagName === 'input' && $el.attr('type') === 'button')) {
 	 	 	 	if ($el.hasClass('required')) {
 	 	 	 	 	$el.attr('aria-required', 'true').attr('required', 'required');
 	 	 	 	}
 	 	 	 	if (tagName !== 'fieldset') {
 	 	 	 	 	$el.on('blur', function() {
 	 	 	 	 	 	return validate(this);
 	 	 	 	 	});
 	 	 	 	 	if ($el.hasClass('validate-email') && inputEmail) {
 	 	 	 	 		elements[i].setAttribute('type', 'email');
 	 	 	 	 	}
 	 	 	 	}
 	 	 	 	inputFields.push($el);
 	 	 	}
 	 	}
 	 	$form.data('inputfields', inputFields);
 	},

 	initialize = function() {
 	 	handlers = {};
 	 	custom = custom || {};

 	 	inputEmail = (function() {
 	 	 	var input = document.createElement("input");
 	 	 	input.setAttribute("type", "email");
 	 	 	return input.type !== "text";
 	 	})();
 	 	// Default handlers
 	 	setHandler('username', function(value, element) {
 	 	 	var regex = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&]", "i");
 	 	 	return !regex.test(value);
 	 	});
 	 	setHandler('password', function(value, element) {
 	 	 	var regex = /^\S[\S ]{2,98}\S$/;
 	 	 	return regex.test(value);
 	 	});
 	 	setHandler('numeric', function(value, element) {
 	 		var regex = /^(\d|-)?(\d|,)*\.?\d*$/;
 	 	 	return regex.test(value);
 	 	});
 	 	setHandler('email', function(value, element) {
		    value = punycode.toASCII(value);
 	 	 	var regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
 	 	 	return regex.test(value);
 	 	});
 	 	// Attach to forms with class 'form-validate'
 	 	var forms = jQuery('form.form-validate');
 	 	for (var i = 0, l = forms.length; i < l; i++) {
 	 	 	attachToForm(forms[i]);
 	 	}
 	};

 	// Initialize handlers and attach validation to form
 	initialize();

 	return {
 	 	isValid : isValid,
 	 	validate : validate,
 	 	setHandler : setHandler,
 	 	attachToForm : attachToForm,
 	 	custom: custom
 	};
};

document.formvalidator = null;
jQuery(function() {
	document.formvalidator = new JFormValidator();
});
system/js/permissions.js000064400000003551152177723720011436 0ustar00function sendPermissions(e){var t=document.getElementById("icon_"+this.id);t.removeAttribute("class"),t.setAttribute("style","background: url(../media/system/images/modal/spinner.gif); display: inline-block; width: 16px; height: 16px");var a="not",s=getUrlParam("component"),r=getUrlParam("extension"),o=getUrlParam("option"),l=getUrlParam("view"),n=s,i=this.value,m="";document.getElementById("jform_context")&&(m=document.getElementById("jform_context").value,m=m.split(".")[0]),"com_config"==o&&0==s&&0==r?a="root.1":0==r&&"component"==l?a=s:m?(a="group"==l?m+".fieldgroup."+getUrlParam("id"):m+".field."+getUrlParam("id"),n=document.getElementById("jform_title").value):0!=r&&0!=l?(a=r+"."+l+"."+getUrlParam("id"),n=document.getElementById("jform_title").value):0==r&&0!=l&&(a=o+"."+l+"."+getUrlParam("id"),n=document.getElementById("jform_title").value);var d=this.id.replace("jform_rules_",""),u=d.lastIndexOf("_"),c={comp:a,action:d.substring(0,u),rule:d.substring(u+1),value:i,title:n};Joomla.removeMessages(),jQuery.ajax({method:"POST",url:document.getElementById("permissions-sliders").getAttribute("data-ajaxuri"),data:c,datatype:"json"}).fail(function(e,a,s){t.removeAttribute("style"),Joomla.renderMessages(Joomla.ajaxErrorsMessages(e,a,s)),window.scrollTo(0,0),t.setAttribute("class","icon-cancel")}).done(function(a){t.removeAttribute("style"),a.data&&1==a.data.result&&(t.setAttribute("class","icon-save"),jQuery(e.target).parents().next("td").find("span").removeClass().addClass(a.data["class"]).html(a.data.text)),"object"==typeof a.messages&&null!==a.messages&&(Joomla.renderMessages(a.messages),a.data&&1==a.data.result?t.setAttribute("class","icon-save"):t.setAttribute("class","icon-cancel"),window.scrollTo(0,0))})}function getUrlParam(e){for(var t=window.location.search.substring(1),a=t.split("&"),s=0;s<a.length;s++){var r=a[s].split("=");if(r[0]==e)return r[1]}return!1}system/js/combobox-uncompressed.js000064400000015256152177723720013405 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Unobtrusive transformation for combobox
 *
 *
 * @package		Joomla.Framework
 * @subpackage	Forms
 */

(function($,document,undefined)
{
	var combobox = function(options, elem)
	{
		var self = {},

		init = function(options, elem)
		{
			self.$elem = $(elem);
			self.options = $.extend({}, $.fn.ComboTransform.options, options);
			self.$input = $(elem).find('input[type="text"]');
			self.$dropBtnDiv = $(elem).find('div.btn-group');
			self.$dropBtn = self.$dropBtnDiv.find('[type="button"]');
			self.$dropDown = $(elem).find('ul.dropdown-menu'),
			self.$dropDownOptions = self.$dropDown.find('li a');
			self.$dropDown.isEmpty = false;
			self.$dropBtn.isClicked = false;
			render();

			addEventHandlers();
		},

		render = function()
		{
			// Align dropdown correctly
			var inputWidth = self.$elem.width(),
				btnWidth = self.$dropBtnDiv.width(),
				totalWidth = inputWidth - 3,
				dropDownLeft = -inputWidth + btnWidth,
				dropDownWidth = self.$dropDown.width();

			dropDownWidth < totalWidth ? self.$dropDown.width(totalWidth+'px') : null;
			self.$dropDown.css('left',dropDownLeft+'px');
			self.$dropDown.css('max-height','150px');
			self.$dropDown.css('overflow-y','scroll');
			self.$dropDown.css('left',dropDownLeft+'px');
		},

		addEventHandlers = function()
		{
			self.$input.bind('focus', drop);
			self.$input.bind('blur', pick);

			if(self.options.updateList)
			{
				self.$input.bind('keyup', updateList);
			}

			self.$dropDown.on('mouseenter',function() {
				highlight('clear');
				self.$input.unbind('blur', pick);
			});
			self.$dropDown.on('mouseleave',function(event) {
				self.$input.bind('blur', pick);
			});

			self.$dropBtn.on('click', focusCombo);

			self.$dropDown.find('li').on('click', updateCombo);
			self.$dropDown.find('li a').on('mouseenter', function(){
				$(this).addClass('hover');
				self.$currHovered = $(this);
			});
			self.$dropDown.find('li a').on('mouseleave', function(){
				$(this).removeClass('hover');
			});
		},

		drop = function()
		{
			if(!self.$dropDown.isEmpty)
			{
				var dropDownHeight = self.$dropDown.height(),
					inputClientHeight = self.$input[0].clientHeight,
					inputHeight = self.$input.height(),
					dropDownTop = -(inputHeight + dropDownHeight);

				// Drop it in viewable area
				self.$dropDown.css('top','100%');

				self.$elem.addClass('nav-hover');
				self.$dropBtnDiv.addClass('open');

				if(!inViewport(self.$dropDown))
				{
					self.$dropDown.css('top',dropDownTop+'px');
				}

				// Prevent form submit on enter press
				self.$input.bind('keypress keydown keyup', preventSubmit);
			}
		},

		pick = function()
		{
			self.$elem.removeClass('nav-hover');
			self.$dropBtnDiv.removeClass('open');

			if(self.$dropBtn.isClicked)
			{
				self.$dropBtn.isClicked = false;
				self.$dropDown.isEmpty = true;
			}

			highlight('clear');

			self.$input.unbind('keypress keydown keyup', preventSubmit);
		},

		focusCombo = function()
		{
			var $options = self.$dropDownOptions;
			$options.show();
			self.$dropBtn.isClicked = self.$dropDown.isEmpty;
			self.$dropDown.isEmpty = false;
			self.$input.focus();
		},

		updateCombo = function(event)
		{
			var selectedOption = $(event.target).text();
			self.$input.val(selectedOption);
			pick();
			return false;
		},

		updateList = function(event)
		{
			var keycode = event && (event.keycode || event.which);
			keycode = event.ctrlKey || event.altKey ? -1 : keycode;

			if ((keycode > 47 && keycode < 59) || (keycode > 62 && keycode < 127) || keycode == 32  || keycode == 8)
			{
				var text = self.$input.val().toLowerCase(),
					$options = self.$dropDownOptions,
					hiddenOptions = 0,
					moveHilighter = false;
				$options.each(function()
				{
					 if(this.innerHTML.toLowerCase().indexOf(text) == 0)
					 {
					 	$(this).show();
					 }
					 else
					 {
					 	$(this).hide();
					 	if($(this).hasClass('hover'))
					 	{
					 		moveHilighter = true;
					 	}

					 	hiddenOptions++;
					 }
				});

				if(hiddenOptions == $options.length)
				{
					self.$dropDown.isEmpty = true;
					pick();
				}
				else
				{
					self.$dropDown.isEmpty = false;
					if(moveHilighter)
					{
						highlight("clear");
					}
					drop();
				}
			}
			else if(!self.$dropDown.isEmpty)
			{
				// Change selected option in list
				if(keycode == 38)
				{
					highlight("prev");
				}
				else if(keycode == 40)
				{
					highlight("next");
				}
				else if(keycode == 13 && self.$currHovered != null)
				{
					self.$input.val(self.$currHovered.html());
					pick();
				}
			}
		},

		highlight = function(newHighlight)
		{
			if(newHighlight == "next" || newHighlight == "prev")
			{
				var $visibleOptions = self.$dropDownOptions.filter(':visible'),
					$currHovered = $visibleOptions.filter('.hover'),
					index = $visibleOptions.index($currHovered),
					$optionToHover;

				// Change selected option in list
				if(newHighlight == "prev")
				{
					index = index == -1 ? $visibleOptions.length -1 :  index - 1;
				}
				else
				{
					index = index == $visibleOptions.length - 1 ? 0 : index + 1;
				}

				if($currHovered.length != 0)
				{
					$currHovered.removeClass('hover');
				}

				$optionToHover = $visibleOptions.eq(index);
				self.$currHovered = $optionToHover;
				self.$currHovered.addClass('hover');

				scrollTo(self.$dropDown, self.$currHovered);
			}
			else if(newHighlight == "clear")
			{
				self.$currHovered != null ? self.$currHovered.removeClass('hover') : null;
				self.$currHovered = null;
			}
		},

		// Helper functions
		inViewport = function(el)
		{
		    var rect = el[0].getBoundingClientRect();
		    return (
		        rect.top >= 0 &&
		        rect.left >= 0 &&
		        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */
		        rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */
		        );
		},

		scrollTo = function(p, e)
		{
			z = p[0].getBoundingClientRect();
			r = e[0].getBoundingClientRect();

			if(!(r.top >= z.top && r.left >= z.left && (r.top+r.height) <= (z.top+z.height)))
			{
				var value = r.top - z.top + p.scrollTop();
				p.scrollTop(value);
			}
		},

		preventSubmit = function(event)
		{
			if(event.keyCode == 13)
			{
				event.preventDefault();
			}
		};

		init(options, elem);
	};
	$.fn.ComboTransform = function(options)
	{
		return this.each(function(){
			combobox(options, this);
		});
	};

	$.fn.ComboTransform.options = {
		updateList : true
	};

	$(function()
	{
		$('div.combobox').ComboTransform({updateList : true});
	});
})(jQuery,document);
system/js/mootree-uncompressed.js000064400000052623152177723720013246 0ustar00/*
Script: mootree.js
	My Object Oriented Tree
	- Developed by Rasmus Schultz, <http://www.mindplay.dk>
	- Tested with MooTools release 1.2, under Firefox 2, Opera 9 and Internet Explorer 6 and 7.

License:
	MIT-style license.

Credits:
	Inspired by:
	- WebFX xTree, <http://webfx.eae.net/dhtml/xtree/>
	- Destroydrop dTree, <http://www.destroydrop.com/javascripts/tree/>

Changes:

	rev.12:
	- load() only worked once on the same node, fixed.
	- the script would sometimes try to get 'R' from the server, fixed.
	- the 'load' attribute is now supported in XML files (see example_5.html).

	rev.13:
	- enable() and disable() added - the adopt() and load() methods use these to improve performance by minimizing the number of visual updates.

	rev.14:
	- toggle() was using enable() and disable() which actually caused it to do extra work - fixed.

	rev.15:
	- adopt() now picks up 'href', 'target', 'title' and 'name' attributes of the a-tag, and stores them in the data object.
	- adopt() now picks up additional constructor arguments from embedded comments, e.g. icons, colors, etc.
	- documentation now generates properly with NaturalDocs, <http://www.naturaldocs.org/>

	rev.16:
	- onClick events added to MooTreeControl and MooTreeNode
	- nodes can now have id's - <MooTreeControl.get> method can be used to find a node with a given id

	rev.17:
	- changed icon rendering to use innerHTML, making the control faster (and code size slightly smaller).

	rev.18:
	- migrated to MooTools 1.2 (previous versions no longer supported)

*/

var MooTreeIcon = ['I','L','Lminus','Lplus','Rminus','Rplus','T','Tminus','Tplus','_closed','_doc','_open','minus','plus'];

/*
Class: MooTreeControl
	This class implements a tree control.

Properties:
	root - returns the root <MooTreeNode> object.
	selected - returns the currently selected <MooTreeNode> object, or null if nothing is currently selected.

Events:
	onExpand - called when a node is expanded or collapsed: function(node, state) - where node is the <MooTreeNode> object that fired the event, and state is a boolean meaning true:expanded or false:collapsed.
	onSelect - called when a node is selected or deselected: function(node, state) - where node is the <MooTreeNode> object that fired the event, and state is a boolean meaning true:selected or false:deselected.
	onClick - called when a node is clicked: function(node) - where node is the <MooTreeNode> object that fired the event.

Parameters:
	The constructor takes two object parameters: config and options.
	The first, config, contains global settings for the tree control - you can use the configuration options listed below.
	The second, options, should contain options for the <MooTreeNode> constructor - please refer to the options listed in the <MooTreeNode> documentation.

Config:
	div - a string representing the div Element inside which to build the tree control.
	mode - optional string, defaults to 'files' - specifies default icon behavior. In 'files' mode, empty nodes have a document icon - whereas, in 'folders' mode, all nodes are displayed as folders (a'la explorer).
	grid - boolean, defaults to false. If set to true, a grid is drawn to outline the structure of the tree.

	theme - string, optional, defaults to 'mootree.gif' - specifies the 'theme' GIF to use.

	loader - optional, an options object for the <MooTreeNode> constructor - defaults to {icon:'mootree_loader.gif', text:'Loading...', color:'a0a0a0'}

	onExpand - optional function (see Events above)
	onSelect - optional function (see Events above)

*/

var MooTreeControl = new Class({

	initialize: function(config, options) {

		options.control = this;               // make sure our new MooTreeNode knows who it's owner control is
		options.div = config.div;             // tells the root node which div to insert itself into
		this.root = new MooTreeNode(options); // create the root node of this tree control

		this.index = new Object();            // used by the get() method

		this.enabled = true;                  // enable visual updates of the control

		this.theme = config.theme || 'mootree.gif';

		this.loader = config.loader || {icon:'mootree_loader.gif', text:'Loading...', color:'#a0a0a0'};

		this.selected = null;                 // set the currently selected node to nothing
		this.mode = config.mode;              // mode can be "folders" or "files", and affects the default icons
		this.grid = config.grid;              // grid can be turned on (true) or off (false)

		this.onExpand = config.onExpand || new Function(); // called when any node in the tree is expanded/collapsed
		this.onSelect = config.onSelect || new Function(); // called when any node in the tree is selected/deselected
		this.onClick = config.onClick || new Function(); // called when any node in the tree is clicked

		this.root.update(true);

	},

	/*
	Property: insert
		Creates a new node under the root node of this tree.

	Parameters:
		options - an object containing the same options available to the <MooTreeNode> constructor.

	Returns:
		A new <MooTreeNode> instance.
	*/

	insert: function(options) {
		options.control = this;
		return this.root.insert(options);
	},

	/*
	Property: select
		Sets the currently selected node.
		This is called by <MooTreeNode> when a node is selected (e.g. by clicking it's title with the mouse).

	Parameters:
		node - the <MooTreeNode> object to select.
	*/

	select: function(node) {
		this.onClick(node); node.onClick(); // fire click events
		if (this.selected === node) return; // already selected
		if (this.selected) {
			// deselect previously selected node:
			this.selected.select(false);
			this.onSelect(this.selected, false);
		}
		// select new node:
		this.selected = node;
		node.select(true);
		this.onSelect(node, true);
	},

	/*
	Property: expand
		Expands the entire tree, recursively.
	*/

	expand: function() {
		this.root.toggle(true, true);
	},

	/*
	Property: collapse
		Collapses the entire tree, recursively.
	*/

	collapse: function() {
		this.root.toggle(true, false);
	},

	/*
	Property: get
		Retrieves the node with the given id - or null, if no node with the given id exists.

	Parameters:
		id - a string, the id of the node you wish to retrieve.

	Note:
		Node id can be assigned via the <MooTreeNode> constructor, e.g. using the <MooTreeNode.insert> method.
	*/

	get: function(id) {
		return this.index[id] || null;
	},

	/*
	Property: adopt
		Adopts a structure of nested ul/li/a elements as tree nodes, then removes the original elements.

	Parameters:
		id - a string representing the ul element to be adopted, or an element reference.
		parentNode - optional, a <MooTreeNode> object under which to import the specified ul element. Defaults to the root node of the parent control.

	Note:
		The ul/li structure must be properly nested, and each li-element must contain one a-element, e.g.:

		><ul id="mytree">
		>  <li><a href="test.html">Item One</a></li>
		>  <li><a href="test.html">Item Two</a>
		>    <ul>
		>      <li><a href="test.html">Item Two Point One</a></li>
		>      <li><a href="test.html">Item Two Point Two</a></li>
		>    </ul>
		>  </li>
		>  <li><a href="test.html"><!-- icon:_doc; color:#ff0000 -->Item Three</a></li>
		></ul>

		The "href", "target", "title" and "name" attributes of the a-tags are picked up and stored in the
		data property of the node.

		CSS-style comments inside a-tags are parsed, and treated as arguments for <MooTreeNode> constructor,
		e.g. "icon", "openicon", "color", etc.
	*/

	adopt: function(id, parentNode) {
		if (parentNode === undefined) parentNode = this.root;
		this.disable();
		this._adopt(id, parentNode);
		parentNode.update(true);
		document.id(id).destroy();
		this.enable();
	},

	_adopt: function(id, parentNode) {
		/* adopts a structure of ul/li elements into this tree */
		e = document.id(id);
		var i=0, c = e.getChildren();
		for (i=0; i<c.length; i++) {
			if (c[i].nodeName == 'LI') {
				var con={text:''}, comment='', node=null, subul=null;
				var n=0, z=0, se=null, s = c[i].getChildren();
				for (n=0; n<s.length; n++) {
					switch (s[n].nodeName) {
						case 'A':
							for (z=0; z<s[n].childNodes.length; z++) {
								se = s[n].childNodes[z];
								switch (se.nodeName) {
									case '#text': con.text += se.nodeValue; break;
									case '#comment': comment += se.nodeValue; break;
								}
							}
							con.data = s[n].getProperties('href','target','title','name');
						break;
						case 'UL':
							subul = s[n];
						break;
					}
				}
				if (con.label != '') {
					con.data.url = con.data['href']; // (for backwards compatibility)
					if (comment != '') {
						var bits = comment.split(';');
						for (z=0; z<bits.length; z++) {
							var pcs = bits[z].trim().split(':');
							if (pcs.length == 2) con[pcs[0].trim()] = pcs[1].trim();
						}
					}
					if (c[i].id != null) {
						con.id = 'node_'+c[i].id;
					}
					node = parentNode.insert(con);
					if (subul) this._adopt(subul, node);
				}
			}
		}
	},

	/*
	Property: disable
		Call this to temporarily disable visual updates -- if you need to insert/remove many nodes
		at a time, many visual updates would normally occur. By temporarily disabling the control,
		these visual updates will be skipped.

		When you're done making changes, call <MooTreeControl.enable> to turn on visual updates
		again, and automatically repaint all nodes that were changed.
	*/

	disable: function() {
		this.enabled = false;
	},

	/*
	Property: enable
		Enables visual updates again after a call to <MooTreeControl.disable>
	*/

	enable: function() {
		this.enabled = true;
		this.root.update(true, true);
	}

});

/*
Class: MooTreeNode
	This class implements the functionality of a single node in a <MooTreeControl>.

Note:
	You should not manually create objects of this class -- rather, you should use
	<MooTreeControl.insert> to create nodes in the root of the tree, and then use
	the similar function <MooTreeNode.insert> to create subnodes.

	Both insert methods have a similar syntax, and both return the newly created
	<MooTreeNode> object.

Parameters:
	options - an object. See options below.

Options:
	text - this is the displayed text of the node, and as such as is the only required parameter.
	id - string, optional - if specified, must be a unique node identifier. Nodes with id can be retrieved using the <MooTreeControl.get> method.
	color - string, optional - if specified, must be a six-digit hexadecimal RGB color code.

	open - boolean value, defaults to false. Use true if you want the node open from the start.

	icon - use this to customize the icon of the node. The following predefined values may be used: '_open', '_closed' and '_doc'. Alternatively, specify the URL of a GIF or PNG image to use - this should be exactly 18x18 pixels in size. If you have a strip of images, you can specify an image number (e.g. 'my_icons.gif#4' for icon number 4).
	openicon - use this to customize the icon of the node when it's open.

	data - an object containing whatever data you wish to associate with this node (such as an url and/or an id, etc.)

Events:
	onExpand - called when the node is expanded or collapsed: function(state) - where state is a boolean meaning true:expanded or false:collapsed.
	onSelect - called when the node is selected or deselected: function(state) - where state is a boolean meaning true:selected or false:deselected.
	onClick - called when the node is clicked (no arguments).
*/

var MooTreeNode = new Class({

	initialize: function(options) {

		this.text = options.text;       // the text displayed by this node
		this.id = options.id || null;   // the node's unique id
		this.nodes = new Array();       // subnodes nested beneath this node (MooTreeNode objects)
		this.parent = null;             // this node's parent node (another MooTreeNode object)
		this.last = true;               // a flag telling whether this node is the last (bottom) node of it's parent
		this.control = options.control; // owner control of this node's tree
		this.selected = false;          // a flag telling whether this node is the currently selected node in it's tree

		this.color = options.color || null; // text color of this node

		this.data = options.data || {}; // optional object containing whatever data you wish to associate with the node (typically an url or an id)

		this.onExpand = options.onExpand || new Function(); // called when the individual node is expanded/collapsed
		this.onSelect = options.onSelect || new Function(); // called when the individual node is selected/deselected
		this.onClick = options.onClick || new Function(); // called when the individual node is clicked

		this.open = options.open ? true : false; // flag: node open or closed?

		this.icon = options.icon;
		this.openicon = options.openicon || this.icon;

		// add the node to the control's node index:
		if (this.id) this.control.index[this.id] = this;

		// create the necessary divs:
		this.div = {
			main: new Element('div').addClass('mooTree_node'),
			indent: new Element('div'),
			gadget: new Element('div'),
			icon: new Element('div'),
			text: new Element('div').addClass('mooTree_text'),
			sub: new Element('div')
		}

		// put the other divs under the main div:
		this.div.main.adopt(this.div.indent);
		this.div.main.adopt(this.div.gadget);
		this.div.main.adopt(this.div.icon);
		this.div.main.adopt(this.div.text);

		// put the main and sub divs in the specified parent div:
		document.id(options.div).adopt(this.div.main);
		document.id(options.div).adopt(this.div.sub);

		// attach event handler to gadget:
		this.div.gadget._node = this;
		this.div.gadget.onclick = this.div.gadget.ondblclick = function() {
			this._node.toggle();
		}

		// attach event handler to icon/text:
		this.div.icon._node = this.div.text._node = this;
		this.div.icon.onclick = this.div.icon.ondblclick = this.div.text.onclick = this.div.text.ondblclick = function() {
			this._node.control.select(this._node);
		}

	},

	/*
	Property: insert
		Creates a new node, nested inside this one.

	Parameters:
		options - an object containing the same options available to the <MooTreeNode> constructor.

	Returns:
		A new <MooTreeNode> instance.
	*/

	insert: function(options) {

		// set the parent div and create the node:
		options.div = this.div.sub;
		options.control = this.control;
		var node = new MooTreeNode(options);

		// set the new node's parent:
		node.parent = this;

		// mark this node's last node as no longer being the last, then add the new last node:
		var n = this.nodes;
		if (n.length) n[n.length-1].last = false;
		n.push(node);

		// repaint the new node:
		node.update();

		// repaint the new node's parent (this node):
		if (n.length == 1) this.update();

		// recursively repaint the new node's previous sibling node:
		if (n.length > 1) n[n.length-2].update(true);

		return node;

	},

	/*
	Property: remove
		Removes this node, and all of it's child nodes. If you want to remove all the childnodes without removing the node itself, use <MooTreeNode.clear>
	*/

	remove: function() {
		var p = this.parent;
		this._remove();
		p.update(true);
	},

	_remove: function() {

		// recursively remove this node's subnodes:
		var n = this.nodes;
		while (n.length) n[n.length-1]._remove();

		// remove the node id from the control's index:
		delete this.control.index[this.id];

		// remove this node's divs:
		this.div.main.destroy();
		this.div.sub.destroy();

		if (this.parent) {

			// remove this node from the parent's collection of nodes:
			var p = this.parent.nodes;
			p.erase(this);

			// in case we removed the parent's last node, flag it's current last node as being the last:
			if (p.length) p[p.length-1].last = true;

		}

	},

	/*
	Property: clear
		Removes all child nodes under this node, without removing the node itself.
		To remove all nodes including this one, use <MooTreeNode.remove>
	*/

	clear: function() {
		this.control.disable();
		while (this.nodes.length) this.nodes[this.nodes.length-1].remove();
		this.control.enable();
	},

	/*
	Property: update
		Update the tree node's visual appearance.

	Parameters:
		recursive - boolean, defaults to false. If true, recursively updates all nodes beneath this one.
		invalidated - boolean, defaults to false. If true, updates only nodes that have been invalidated while the control has been disabled.
	*/

	update: function(recursive, invalidated) {

		var draw = true;

		if (!this.control.enabled) {
			// control is currently disabled, so we don't do any visual updates
			this.invalidated = true;
			draw = false;
		}

		if (invalidated) {
			if (!this.invalidated) {
				draw = false; // this one is still valid, don't draw
			} else {
				this.invalidated = false; // we're drawing this item now
			}
		}

		if (draw) {

			var x;

			// make selected, or not:
			this.div.main.className = 'mooTree_node' + (this.selected ? ' mooTree_selected' : '');

			// update indentations:
			var p = this, i = '';
			while (p.parent) {
				p = p.parent;
				i = this.getImg(p.last || !this.control.grid ? '' : 'I') + i;
			}
			this.div.indent.innerHTML = i;

			// update the text:
			x = this.div.text;
			x.empty();
			x.appendText(this.text);
			if (this.color) x.style.color = this.color;

			// update the icon:
			this.div.icon.innerHTML = this.getImg( this.nodes.length ? ( this.open ? (this.openicon || this.icon || '_open') : (this.icon || '_closed') ) : ( this.icon || (this.control.mode == 'folders' ? '_closed' : '_doc') ) );

			// update the plus/minus gadget:
			this.div.gadget.innerHTML = this.getImg( ( this.control.grid ? ( this.control.root == this ? (this.nodes.length ? 'R' : '') : (this.last?'L':'T') ) : '') + (this.nodes.length ? (this.open?'minus':'plus') : '') );

			// show/hide subnodes:
			this.div.sub.style.display = this.open ? 'block' : 'none';

		}

		// if recursively updating, update all child nodes:
		if (recursive) this.nodes.forEach( function(node) {
			node.update(true, invalidated);
		});

	},

	/*
	Property: getImg
		Creates a new image, in the form of HTML for a DIV element with appropriate style.
		You should not need to manually call this method. (though if for some reason you want to, you can)

	Parameters:
		name - the name of new image to create, defined by <MooTreeIcon> or located in an external file.

	Returns:
		The HTML for a new div Element.
	*/

	getImg: function(name) {

		var html = '<div class="mooTree_img"';

		if (name != '') {
			var img = this.control.theme;
			var i = MooTreeIcon.indexOf(name);
			if (i == -1) {
				// custom (external) icon:
				var x = name.split('#');
				img = x[0];
				i = (x.length == 2 ? parseInt(x[1])-1 : 0);
			}
			html += ' style="background-image:url(' + img + '); background-position:-' + (i*18) + 'px 0px;"';
		}

		html += "></div>";

		return html;

	},

	/*
	Property: toggle
		By default (with no arguments) this function toggles the node between expanded/collapsed.
		Can also be used to recursively expand/collapse all or part of the tree.

	Parameters:
		recursive - boolean, defaults to false. With recursive set to true, all child nodes are recursively toggle to this node's new state.
		state - boolean. If undefined, the node's state is toggled. If true or false, the node can be explicitly opened or closed.
	*/

	toggle: function(recursive, state) {

		this.open = (state === undefined ? !this.open : state);
		this.update();

		this.onExpand(this.open);
		this.control.onExpand(this, this.open);

		if (recursive) this.nodes.forEach( function(node) {
			node.toggle(true, this.open);
		}, this);

	},

	/*
	Property: select
		Called by <MooTreeControl> when the selection changes.
		You should not manually call this method - to set the selection, use the <MooTreeControl.select> method.
	*/

	select: function(state) {
		this.selected = state;
		this.update();
		this.onSelect(state);
	},

	/*
	Property: load
		Asynchronously load an XML structure into a node of this tree.

	Parameters:
		url - string, required, specifies the URL from which to load the XML document.
		vars - query string, optional.
	*/

	load: function(url, vars) {

		if (this.loading) return; // if this node is already loading, return
		this.loading = true;      // flag this node as loading

		this.toggle(false, true); // expand the node to make the loader visible

		this.clear();

		this.insert(this.control.loader);

		var f = function() {
			new Request({
				method: 'GET',
				url: url,
				onSuccess: this._loaded.bind(this),
				onFailure: this._load_err.bind(this)
			}).send(vars || '');
		}.bind(this).delay(20);

		//window.setTimeout(f.bind(this), 20); // allowing a small delay for the browser to draw the loader-icon.

	},

	_loaded: function(text, xml) {
		// called on success - import nodes from the root element:
		this.control.disable();
		this.clear();
		this._import(xml.documentElement);
		this.control.enable();
		this.loading = false;
	},

	_import: function(e) {
		// import childnodes from an xml element:
		var n = e.childNodes;
		for (var i=0; i<n.length; i++) if (n[i].tagName == 'node') {
			var opt = {data:{}};
			var a = n[i].attributes;
			for (var t=0; t<a.length; t++) {
				switch (a[t].name) {
					case 'text':
					case 'id':
					case 'icon':
					case 'openicon':
					case 'color':
					case 'open':
						opt[a[t].name] = a[t].value;
						break;
					default:
						opt.data[a[t].name] = a[t].value;
				}
			}
			var node = this.insert(opt);
			if (node.data.load) {
				node.open = false; // can't have a dynamically loading node that's already open!
				node.insert(this.control.loader);
				node.onExpand = function(state) {
					this.load(this.data.load);
					this.onExpand = new Function();
				}
			}
			// recursively import subnodes of this node:
			if (n[i].childNodes.length) node._import(n[i]);
		}
	},

	_load_err: function(req) {
		window.alert('Error loading: ' + this.text);
	}

});
system/js/associations-edit-uncompressed.js000064400000016135152177723720015214 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Edit Associations javascript behavior
 *
 * Used for editing associations in the backend.
 *
 * @package  Joomla
 * @since    3.7.0
 */

window.hideAssociation = function(formControl, languageCode)
{
	jQuery('#associations .control-group').each(function()
	{
		// Current selected language. Hide it.
		if (jQuery(this).find('.control-label label').attr('for').replace(new RegExp('_id$'), '') == formControl + '_associations_' + languageCode.replace('-', '_'))
		{
			jQuery(this).hide();
		}
	});
}

window.showAssociationMessage = function()
{
	jQuery('#associations .control-group').hide();
	jQuery('#associations').prepend('<div id="associations-notice" class="alert alert-info">' + Joomla.JText._('JGLOBAL_ASSOC_NOT_POSSIBLE') + '</div>');
}

	/**
	 * Inject associations into other association fields
	 *
	 * This function is called whenever the Ajax request within propagateAssociation() completes successfully.
	 * Its purpose is to inject the associations which have been returned in the Ajax response into the other
	 * association fields in the form.
	 * It does this by invoking the various callback functions of those association fields (i.e. the function which
	 * gets called whenever the administrator selects an association via the modal), and passing the appropriate
	 * associated record details.
	 *
	 * @param   js object   result                  The response from the Ajax request.
	 *                                              Its structure is that generated by the JResponseJson class,
	 *                                              with the data field containing the associations
	 * @param   string      fieldPrefix             The stem of the html ids for the elements comprising the modal field
	 * @param   string      callbackFunctionPrefix  The name of the callback function which the modal window uses to set the
	 *                                              selected item as the association, but minus the language tag at the end
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	Joomla.injectAssociations = function(result, callbackFunctionPrefix)
	{
		var functionName;

		if (result.success)
		{
			if (result.data.length !== 0)
			{
				for (var lang in result.data)
				{
					functionName = callbackFunctionPrefix + lang.replace("-","_");

					window[functionName](result.data[lang].id, result.data[lang].title, result.data[lang].catid, null, null, lang);
				}
			}

			if (result.message)
			{
				Joomla.renderMessages({"notice":[result.message]});
			}
		}
		else
		{
			Joomla.renderMessages({"warning":[(Joomla.JText._('JGLOBAL_ASSOCIATIONS_PROPAGATE_FAILED'))]});
		}
	}

	/**
	 * Propagate associations from this field into other association fields
	 *
	 * This function is called whenever an administrator populates an association (in the association modal field)
	 * and then clicks on the Propagate button.
	 * The purpose of this function is to find what other records (if any) are associated with the one which the
	 * administrator has selected, and populate the other association fields with these records. (Otherwise, if the
	 * administrator just clicks on Save without clicking on Propagate, those other associations will be deleted).
	 * It does this by finding the id of the selected associated record (from a hidden field) and makes an Ajax call
	 * to the server to find the other associations, also passing up the language of the record currently being edited,
	 * as it should be excluded.
	 * Once it has received from the server the other associations it calls injectAssociations to inject them into
	 * the other association fields within the form.
	 *
	 * @param   string  fieldPrefix             The stem of the html ids for the elements comprising the modal field
	 * @param   string  callbackFunctionPrefix  The name of the callback function which the modal window uses to set the
	 *                                            selected item as the association, but minus the language tag at the end
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	Joomla.propagateAssociation = function(fieldPrefix, callbackFunctionPrefix)
	{
		// Find the id of the record which has been set as an assocation
		var assocId = jQuery("#" + fieldPrefix + "_id").val();

		// Find the language of the record being edited
		var currentLang = jQuery('#jform_language').find(":selected").val();

		// Find the token so that it can be sent in the Ajax request as well
		var token = Joomla.getOptions('csrf.token', '');

		// Find the action url associated with the form - we need to add the token to this
		var url = jQuery("form[name='adminForm']").attr("action");
		url += '&' + token + '=1';

		jQuery.ajax(
		{
			url:  url,
			data: { task: "ajax.fetchAssociations", format: "json", assocId: assocId, excludeLang: currentLang },

			success: function(result, status, xhr) { Joomla.injectAssociations(result, callbackFunctionPrefix); },

			error: function() { Joomla.renderMessages({"warning":[(Joomla.JText._('JGLOBAL_ASSOCIATIONS_PROPAGATE_FAILED'))]}); },
		});

		return false;
	}

!(function()
{
	jQuery(document).ready(function($)
	{
		var associationsEditOptions = Joomla.getOptions('system.associations.edit'), formControl = associationsEditOptions.formControl || 'jform';

		// Hide the associations tab if needed.
		if (associationsEditOptions.hidden == 1)
		{
			window.showAssociationMessage();
		}
		// Hide only the associations for the current language.
		else
		{
			window.hideAssociation(formControl, $('#' + formControl + '_language').val());
		}

		// When changing the language.
		$('#' + formControl + '_language').on('change', function(event)
		{
			// Remove message if any.
			Joomla.removeMessages();
			$('#associations-notice').remove();

			var existsAssociations = false;

			// For each language, remove the associations, ie, empty the associations fields and reset the buttons to Select/Create.
			$('#associations .control-group').each(function()
			{
				var languageCode = $(this).find('.control-label label').attr('for').replace('_id', '').replace('jform_associations_', '');

				// Show the association fields.
				$(this).show();

				// Check if there was an association selected for this language.
				if (!existsAssociations && $('#' + formControl + '_associations_' + languageCode + '_id').val() !== '')
				{
					existsAssociations = true;
				}

				// Call the modal clear button.
				$('#' + formControl + '_associations_' + languageCode + '_clear').click();
			});

			// If associations existed, send a warning to the user.
			if (existsAssociations)
			{
				Joomla.renderMessages({warning: [Joomla.JText._('JGLOBAL_ASSOCIATIONS_RESET_WARNING')]});
			}

			var selectedLanguage = $(this).val();

			// If the selected language is All hide the fields and add a message.
			if (selectedLanguage == '*')
			{
				window.showAssociationMessage();
			}
			// Else show the associations fields/buttons and hide the current selected language.
			else
			{
				window.hideAssociation(formControl, selectedLanguage);
			}
		});
	});
})(window, document, Joomla);
system/js/polyfill.xpath.js000064400000071405152177723720012043 0ustar00(function(undefined) {
    if (!('evaluate' in Array.prototype)) {
(function(){'use strict';var k=this;
    function aa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==
        b&&"undefined"==typeof a.call)return"object";return b}function l(a){return"string"==typeof a}function ba(a,b,c){return a.call.apply(a.bind,arguments)}function ca(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
    function da(a,b,c){da=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ba:ca;return da.apply(null,arguments)}function ea(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}
    function m(a){var b=n;function c(){}c.prototype=b.prototype;a.G=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.F=function(a,c,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[c].apply(a,g)}};/*

     The MIT License

     Copyright (c) 2007 Cybozu Labs, Inc.
     Copyright (c) 2012 Google Inc.

     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.
     */
    var fa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function q(a,b){return-1!=a.indexOf(b)}function ga(a,b){return a<b?-1:a>b?1:0};var ha=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(l(a))return l(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},r=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},ia=Array.prototype.filter?function(a,b,c){return Array.prototype.filter.call(a,
        b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=l(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var p=g[h];b.call(c,p,h,a)&&(e[f++]=p)}return e},t=Array.prototype.reduce?function(a,b,c,d){d&&(b=da(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;r(a,function(c,g){e=b.call(d,e,c,g,a)});return e},ja=Array.prototype.some?function(a,b,c){return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;
        return!1};function ka(a,b){a:{for(var c=a.length,d=l(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:l(a)?a.charAt(b):a[b]}function la(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ma(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var u;a:{var na=k.navigator;if(na){var oa=na.userAgent;if(oa){u=oa;break a}}u=""};var pa=q(u,"Opera"),v=q(u,"Trident")||q(u,"MSIE"),qa=q(u,"Edge"),ra=q(u,"Gecko")&&!(q(u.toLowerCase(),"webkit")&&!q(u,"Edge"))&&!(q(u,"Trident")||q(u,"MSIE"))&&!q(u,"Edge"),sa=q(u.toLowerCase(),"webkit")&&!q(u,"Edge");function ta(){var a=k.document;return a?a.documentMode:void 0}var ua;
    a:{var va="",wa=function(){var a=u;if(ra)return/rv\:([^\);]+)(\)|;)/.exec(a);if(qa)return/Edge\/([\d\.]+)/.exec(a);if(v)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(sa)return/WebKit\/(\S+)/.exec(a);if(pa)return/(?:Version)[ \/]?(\S+)/.exec(a)}();wa&&(va=wa?wa[1]:"");if(v){var xa=ta();if(null!=xa&&xa>parseFloat(va)){ua=String(xa);break a}}ua=va}var ya={};
    function za(a){if(!ya[a]){for(var b=0,c=fa(String(ua)).split("."),d=fa(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||"",h=d[f]||"",p=/(\d*)(\D*)/g,x=/(\d*)(\D*)/g;do{var D=p.exec(g)||["","",""],X=x.exec(h)||["","",""];if(0==D[0].length&&0==X[0].length)break;b=ga(0==D[1].length?0:parseInt(D[1],10),0==X[1].length?0:parseInt(X[1],10))||ga(0==D[2].length,0==X[2].length)||ga(D[2],X[2])}while(0==b)}ya[a]=0<=b}}
    var Aa=k.document,Ba=Aa&&v?ta()||("CSS1Compat"==Aa.compatMode?parseInt(ua,10):5):void 0;!ra&&!v||v&&9<=Number(Ba)||ra&&za("1.9.1");v&&za("9");function Ca(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
    function Da(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(v&&!(9<=Number(Ba))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?Ea(a,b):!c&&Ca(e,b)?-1*Fa(a,b):!d&&Ca(f,a)?Fa(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9==a.nodeType?
        a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.collapse(!0);a=d.createRange();a.selectNode(b);a.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,a)}function Fa(a,b){var c=a.parentNode;if(c==b)return-1;for(;b.parentNode!=c;)b=b.parentNode;return Ea(b,a)}function Ea(a,b){for(;b=b.previousSibling;)if(b==a)return-1;return 1};var w=v&&!(9<=Number(Ba)),Ga=v&&!(8<=Number(Ba));function y(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function Ha(a,b){var c=Ga&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new y(b,a,b.nodeName,c)};function z(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(w&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),w&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return""+b}
    function A(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Ga&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function B(a,b,c,d,e){return(w?Ia:Ja).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)}
    function Ia(a,b,c,d,e){if(a instanceof E||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=Ka(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)A(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||F(e,b);return e}La(a,b,c,d,e);return e}
    function Ja(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!v?(b=b.getElementsByName(d),r(b,function(b){a.a(b)&&F(e,b)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),r(b,function(b){b.className==d&&a.a(b)&&F(e,b)})):a instanceof G?La(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),r(b,function(a){A(a,c,d)&&F(e,a)}));return e}
    function Ma(a,b,c,d,e){var f;if((a instanceof E||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=Ka(a);if("*"!=g&&(f=ia(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=ia(f,function(a){return A(a,c,d)}));r(f,function(a){"*"==g&&("!"==a.tagName||"*"==g&&1!=a.nodeType)||F(e,a)});return e}return Na(a,b,c,d,e)}function Na(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b);return e}
    function La(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b),La(a,b,c,d,e)}function Ka(a){if(a instanceof G){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};function C(){this.b=this.a=null;this.l=0}function Oa(a){this.node=a;this.a=this.b=null}function Pa(a,b){if(!a.a)return b;if(!b.a)return a;var c=a.a;b=b.a;for(var d=null,e,f=0;c&&b;){e=c.node;var g=b.node;e==g||e instanceof y&&g instanceof y&&e.a==g.a?(e=c,c=c.a,b=b.a):0<Da(c.node,b.node)?(e=b,b=b.a):(e=c,c=c.a);(e.b=d)?d.a=e:a.a=e;d=e;f++}for(e=c||b;e;)e.b=d,d=d.a=e,f++,e=e.a;a.b=d;a.l=f;return a}function Qa(a,b){b=new Oa(b);b.a=a.a;a.b?a.a.b=b:a.a=a.b=b;a.a=b;a.l++}
    function F(a,b){b=new Oa(b);b.b=a.b;a.a?a.b.a=b:a.a=a.b=b;a.b=b;a.l++}function Ra(a){return(a=a.a)?a.node:null}function Sa(a){return(a=Ra(a))?z(a):""}function H(a,b){return new Ta(a,!!b)}function Ta(a,b){this.f=a;this.b=(this.c=b)?a.b:a.a;this.a=null}function I(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.c?b.b:b.a;return c.node};function n(a){this.i=a;this.b=this.g=!1;this.f=null}function J(a){return"\n  "+a.toString().split("\n").join("\n  ")}function Ua(a,b){a.g=b}function Va(a,b){a.b=b}function K(a,b){a=a.a(b);return a instanceof C?+Sa(a):+a}function L(a,b){a=a.a(b);return a instanceof C?Sa(a):""+a}function M(a,b){a=a.a(b);return a instanceof C?!!a.l:!!a};function N(a,b,c){n.call(this,a.i);this.c=a;this.h=b;this.o=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Wa&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,s:b}):this.f={name:b.f.name,s:c})}m(N);
    function O(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof C&&c instanceof C){b=H(b);for(d=I(b);d;d=I(b))for(e=H(c),f=I(e);f;f=I(e))if(a(z(d),z(f)))return!0;return!1}if(b instanceof C||c instanceof C){b instanceof C?(e=b,d=c):(e=c,d=b);f=H(e);for(var g=typeof d,h=I(f);h;h=I(f)){switch(g){case "number":h=+z(h);break;case "boolean":h=!!z(h);break;case "string":h=z(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?"boolean"==
    typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}N.prototype.a=function(a){return this.c.m(this.h,this.o,a)};N.prototype.toString=function(){var a="Binary Expression: "+this.c,a=a+J(this.h);return a+=J(this.o)};function Xa(a,b,c,d){this.a=a;this.w=b;this.i=c;this.m=d}Xa.prototype.toString=function(){return this.a};var Ya={};
    function P(a,b,c,d){if(Ya.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Xa(a,b,c,d);return Ya[a.toString()]=a}P("div",6,1,function(a,b,c){return K(a,c)/K(b,c)});P("mod",6,1,function(a,b,c){return K(a,c)%K(b,c)});P("*",6,1,function(a,b,c){return K(a,c)*K(b,c)});P("+",5,1,function(a,b,c){return K(a,c)+K(b,c)});P("-",5,1,function(a,b,c){return K(a,c)-K(b,c)});P("<",4,2,function(a,b,c){return O(function(a,b){return a<b},a,b,c)});
    P(">",4,2,function(a,b,c){return O(function(a,b){return a>b},a,b,c)});P("<=",4,2,function(a,b,c){return O(function(a,b){return a<=b},a,b,c)});P(">=",4,2,function(a,b,c){return O(function(a,b){return a>=b},a,b,c)});var Wa=P("=",3,2,function(a,b,c){return O(function(a,b){return a==b},a,b,c,!0)});P("!=",3,2,function(a,b,c){return O(function(a,b){return a!=b},a,b,c,!0)});P("and",2,2,function(a,b,c){return M(a,c)&&M(b,c)});P("or",1,2,function(a,b,c){return M(a,c)||M(b,c)});function Q(a,b,c){this.a=a;this.b=b||1;this.f=c||1};function Za(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");n.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}m(Za);Za.prototype.a=function(a){a=this.c.a(a);return $a(this.h,a)};Za.prototype.toString=function(){var a;a="Filter:"+J(this.c);return a+=J(this.h)};function ab(a,b){if(b.length<a.A)throw Error("Function "+a.j+" expects at least"+a.A+" arguments, "+b.length+" given");if(null!==a.v&&b.length>a.v)throw Error("Function "+a.j+" expects at most "+a.v+" arguments, "+b.length+" given");a.B&&r(b,function(b,d){if(4!=b.i)throw Error("Argument "+d+" to function "+a.j+" is not of type Nodeset: "+b);});n.call(this,a.i);this.h=a;this.c=b;Ua(this,a.g||ja(b,function(a){return a.g}));Va(this,a.D&&!b.length||a.C&&!!b.length||ja(b,function(a){return a.b}))}m(ab);
    ab.prototype.a=function(a){return this.h.m.apply(null,la(a,this.c))};ab.prototype.toString=function(){var a="Function: "+this.h;if(this.c.length)var b=t(this.c,function(a,b){return a+J(b)},"Arguments:"),a=a+J(b);return a};function bb(a,b,c,d,e,f,g,h,p){this.j=a;this.i=b;this.g=c;this.D=d;this.C=e;this.m=f;this.A=g;this.v=void 0!==h?h:g;this.B=!!p}bb.prototype.toString=function(){return this.j};var cb={};
    function R(a,b,c,d,e,f,g,h){if(cb.hasOwnProperty(a))throw Error("Function already created: "+a+".");cb[a]=new bb(a,b,c,d,!1,e,f,g,h)}R("boolean",2,!1,!1,function(a,b){return M(b,a)},1);R("ceiling",1,!1,!1,function(a,b){return Math.ceil(K(b,a))},1);R("concat",3,!1,!1,function(a,b){return t(ma(arguments,1),function(b,d){return b+L(d,a)},"")},2,null);R("contains",2,!1,!1,function(a,b,c){return q(L(b,a),L(c,a))},2);R("count",1,!1,!1,function(a,b){return b.a(a).l},1,1,!0);
    R("false",2,!1,!1,function(){return!1},0);R("floor",1,!1,!1,function(a,b){return Math.floor(K(b,a))},1);R("id",4,!1,!1,function(a,b){function c(a){if(w){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return ka(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument;a=L(b,a).split(/\s+/);var f=[];r(a,function(a){a=c(a);!a||0<=ha(f,a)||f.push(a)});f.sort(Da);var g=new C;r(f,function(a){F(g,a)});return g},1);
    R("lang",2,!1,!1,function(){return!1},1);R("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);R("local-name",3,!1,!0,function(a,b){return(a=b?Ra(b.a(a)):a.a)?a.localName||a.nodeName.toLowerCase():""},0,1,!0);R("name",3,!1,!0,function(a,b){return(a=b?Ra(b.a(a)):a.a)?a.nodeName.toLowerCase():""},0,1,!0);R("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
    R("normalize-space",3,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);R("not",2,!1,!1,function(a,b){return!M(b,a)},1);R("number",1,!1,!0,function(a,b){return b?K(b,a):+z(a.a)},0,1);R("position",1,!0,!1,function(a){return a.b},0);R("round",1,!1,!1,function(a,b){return Math.round(K(b,a))},1);R("starts-with",2,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);return 0==b.lastIndexOf(a,0)},2);R("string",3,!1,!0,function(a,b){return b?L(b,a):z(a.a)},0,1);
    R("string-length",1,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).length},0,1);R("substring",3,!1,!1,function(a,b,c,d){c=K(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?K(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=L(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);R("substring-after",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
    R("substring-before",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);R("sum",1,!1,!1,function(a,b){a=H(b.a(a));b=0;for(var c=I(a);c;c=I(a))b+=+z(c);return b},1,1,!0);R("translate",3,!1,!1,function(a,b,c,d){b=L(b,a);c=L(c,a);var e=L(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);R("true",2,!1,!1,function(){return!0},0);function G(a,b){this.h=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function db(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}G.prototype.a=function(a){return null===this.b||this.b==a.nodeType};G.prototype.f=function(){return this.h};
    G.prototype.toString=function(){var a="Kind Test: "+this.h;null===this.c||(a+=J(this.c));return a};function eb(a){this.b=a;this.a=0}function fb(a){a=a.match(gb);for(var b=0;b<a.length;b++)hb.test(a[b])&&a.splice(b,1);return new eb(a)}var gb=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,hb=/^\s/;function S(a,b){return a.b[a.a+(b||0)]}function T(a){return a.b[a.a++]}function ib(a){return a.b.length<=a.a};function jb(a){n.call(this,3);this.c=a.substring(1,a.length-1)}m(jb);jb.prototype.a=function(){return this.c};jb.prototype.toString=function(){return"Literal: "+this.c};function E(a,b){this.j=a.toLowerCase();a="*"==this.j?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():a}E.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=void 0!==a.localName?a.localName:a.nodeName;return"*"!=this.j&&this.j!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};E.prototype.f=function(){return this.j};
    E.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j};function kb(a){n.call(this,1);this.c=a}m(kb);kb.prototype.a=function(){return this.c};kb.prototype.toString=function(){return"Number: "+this.c};function lb(a,b){n.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;1==this.c.length&&(a=this.c[0],a.u||a.c!=mb||(a=a.o,"*"!=a.f()&&(this.f={name:a.f(),s:null})))}m(lb);function nb(){n.call(this,4)}m(nb);nb.prototype.a=function(a){var b=new C;a=a.a;9==a.nodeType?F(b,a):F(b,a.ownerDocument);return b};nb.prototype.toString=function(){return"Root Helper Expression"};function ob(){n.call(this,4)}m(ob);ob.prototype.a=function(a){var b=new C;F(b,a.a);return b};ob.prototype.toString=function(){return"Context Helper Expression"};
    function pb(a){return"/"==a||"//"==a}lb.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof C))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.l;c++){var e=a[c],f=H(b,e.c.a),g;if(e.g||e.c!=qb)if(e.g||e.c!=rb)for(g=I(f),b=e.a(new Q(g));null!=(g=I(f));)g=e.a(new Q(g)),b=Pa(b,g);else g=I(f),b=e.a(new Q(g));else{for(g=I(f);(b=I(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new Q(g))}}return b};
    lb.prototype.toString=function(){var a;a="Path Expression:"+J(this.h);if(this.c.length){var b=t(this.c,function(a,b){return a+J(b)},"Steps:");a+=J(b)}return a};function sb(a,b){this.a=a;this.b=!!b}
    function $a(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=H(b),f=b.l,g,h=0;g=I(e);h++){var p=a.b?f-h:h+1;g=d.a(new Q(g,p,f));if("number"==typeof g)p=p==g;else if("string"==typeof g||"boolean"==typeof g)p=!!g;else if(g instanceof C)p=0<g.l;else throw Error("Predicate.evaluate returned an unexpected type.");if(!p){p=e;g=p.f;var x=p.a;if(!x)throw Error("Next must be called at least once before remove.");var D=x.b,x=x.a;D?D.a=x:g.a=x;x?x.b=D:g.b=D;g.l--;p.a=null}}return b}
    sb.prototype.toString=function(){return t(this.a,function(a,b){return a+J(b)},"Predicates:")};function U(a,b,c,d){n.call(this,4);this.c=a;this.o=b;this.h=c||new sb([]);this.u=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.b&&b&&(a=b.name,a=w?a.toLowerCase():a,this.f={name:a,s:b.s});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}m(U);
    U.prototype.a=function(a){var b=a.a,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.s?L(c.s,a):null,f=1);if(this.u)if(this.g||this.c!=tb)if(b=H((new U(ub,new G("node"))).a(a)),c=I(b))for(a=this.m(c,d,e,f);null!=(c=I(b));)a=Pa(a,this.m(c,d,e,f));else a=new C;else a=B(this.o,b,d,e),a=$a(this.h,a,f);else a=this.m(a.a,d,e,f);return a};U.prototype.m=function(a,b,c,d){a=this.c.f(this.o,a,b,c);return a=$a(this.h,a,d)};
    U.prototype.toString=function(){var a;a="Step:"+J("Operator: "+(this.u?"//":"/"));this.c.j&&(a+=J("Axis: "+this.c));a+=J(this.o);if(this.h.a.length){var b=t(this.h.a,function(a,b){return a+J(b)},"Predicates:");a+=J(b)}return a};function vb(a,b,c,d){this.j=a;this.f=b;this.a=c;this.b=d}vb.prototype.toString=function(){return this.j};var wb={};function V(a,b,c,d){if(wb.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new vb(a,b,c,!!d);return wb[a]=b}
    V("ancestor",function(a,b){for(var c=new C;b=b.parentNode;)a.a(b)&&Qa(c,b);return c},!0);V("ancestor-or-self",function(a,b){var c=new C;do a.a(b)&&Qa(c,b);while(b=b.parentNode);return c},!0);
    var mb=V("attribute",function(a,b){var c=new C,d=a.f();if("style"==d&&w&&b.style)return F(c,new y(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof G&&null===a.b||"*"==d)for(a=0;d=e[a];a++)w?d.nodeValue&&F(c,Ha(b,d)):F(c,d);else(d=e.getNamedItem(d))&&(w?d.nodeValue&&F(c,Ha(b,d)):F(c,d));return c},!1),tb=V("child",function(a,b,c,d,e){return(w?Ma:Na).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)},!1,!0);V("descendant",B,!1,!0);
    var ub=V("descendant-or-self",function(a,b,c,d){var e=new C;A(b,c,d)&&a.a(b)&&F(e,b);return B(a,b,c,d,e)},!1,!0),qb=V("following",function(a,b,c,d){var e=new C;do for(var f=b;f=f.nextSibling;)A(f,c,d)&&a.a(f)&&F(e,f),e=B(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);V("following-sibling",function(a,b){for(var c=new C;b=b.nextSibling;)a.a(b)&&F(c,b);return c},!1);V("namespace",function(){return new C},!1);
    var xb=V("parent",function(a,b){var c=new C;if(9==b.nodeType)return c;if(2==b.nodeType)return F(c,b.ownerElement),c;b=b.parentNode;a.a(b)&&F(c,b);return c},!1),rb=V("preceding",function(a,b,c,d){var e=new C,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var p=[];for(b=f[g];b=b.previousSibling;)p.unshift(b);for(var x=0,D=p.length;x<D;x++)b=p[x],A(b,c,d)&&a.a(b)&&F(e,b),e=B(a,b,c,d,e)}return e},!0,!0);
    V("preceding-sibling",function(a,b){for(var c=new C;b=b.previousSibling;)a.a(b)&&Qa(c,b);return c},!0);var yb=V("self",function(a,b){var c=new C;a.a(b)&&F(c,b);return c},!1);function zb(a){n.call(this,1);this.c=a;this.g=a.g;this.b=a.b}m(zb);zb.prototype.a=function(a){return-K(this.c,a)};zb.prototype.toString=function(){return"Unary Expression: -"+J(this.c)};function Ab(a){n.call(this,4);this.c=a;Ua(this,ja(this.c,function(a){return a.g}));Va(this,ja(this.c,function(a){return a.b}))}m(Ab);Ab.prototype.a=function(a){var b=new C;r(this.c,function(c){c=c.a(a);if(!(c instanceof C))throw Error("Path expression must evaluate to NodeSet.");b=Pa(b,c)});return b};Ab.prototype.toString=function(){return t(this.c,function(a,b){return a+J(b)},"Union Expression:")};function Bb(a,b){this.a=a;this.b=b}function Cb(a){for(var b,c=[];;){W(a,"Missing right hand side of binary expression.");b=Db(a);var d=T(a.a);if(!d)break;var e=(d=Ya[d]||null)&&d.w;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].w;)b=new N(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new N(c.pop(),c.pop(),b);return b}function W(a,b){if(ib(a.a))throw Error(b);}function Eb(a,b){a=T(a.a);if(a!=b)throw Error("Bad token, expected: "+b+" got: "+a);}
    function Fb(a){a=T(a.a);if(")"!=a)throw Error("Bad token: "+a);}function Gb(a){a=T(a.a);if(2>a.length)throw Error("Unclosed literal string");return new jb(a)}
    function Hb(a){var b,c=[],d;if(pb(S(a.a))){b=T(a.a);d=S(a.a);if("/"==b&&(ib(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new nb;d=new nb;W(a,"Missing next location step.");b=Ib(a,b);c.push(b)}else{a:{b=S(a.a);d=b.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":T(a.a);b=Cb(a);W(a,'unclosed "("');Eb(a,")");break;case '"':case "'":b=Gb(a);break;default:if(isNaN(+b))if(!db(b)&&/(?![0-9])[\w]/.test(d)&&"("==S(a.a,1)){b=T(a.a);
        b=cb[b]||null;T(a.a);for(d=[];")"!=S(a.a);){W(a,"Missing function argument list.");d.push(Cb(a));if(","!=S(a.a))break;T(a.a)}W(a,"Unclosed function argument list.");Fb(a);b=new ab(b,d)}else{b=null;break a}else b=new kb(+T(a.a))}"["==S(a.a)&&(d=new sb(Jb(a)),b=new Za(b,d))}if(b)if(pb(S(a.a)))d=b;else return b;else b=Ib(a,"/"),d=new ob,c.push(b)}for(;pb(S(a.a));)b=T(a.a),W(a,"Missing next location step."),b=Ib(a,b),c.push(b);return new lb(d,c)}
    function Ib(a,b){var c,d;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==S(a.a))return d=new U(yb,new G("node")),T(a.a),d;if(".."==S(a.a))return d=new U(xb,new G("node")),T(a.a),d;var e;if("@"==S(a.a))e=mb,T(a.a),W(a,"Missing attribute name");else if("::"==S(a.a,1)){if(!/(?![0-9])[\w]/.test(S(a.a).charAt(0)))throw Error("Bad token: "+T(a.a));c=T(a.a);e=wb[c]||null;if(!e)throw Error("No axis with name: "+c);T(a.a);W(a,"Missing node name")}else e=tb;c=S(a.a);if(/(?![0-9])[\w\*]/.test(c.charAt(0)))if("("==
        S(a.a,1)){if(!db(c))throw Error("Invalid node type: "+c);c=T(a.a);if(!db(c))throw Error("Invalid type name: "+c);Eb(a,"(");W(a,"Bad nodetype");var f=S(a.a).charAt(0),g=null;if('"'==f||"'"==f)g=Gb(a);W(a,"Bad nodetype");Fb(a);c=new G(c,g)}else if(c=T(a.a),f=c.indexOf(":"),-1==f)c=new E(c);else{var g=c.substring(0,f),h;if("*"==g)h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);c=c.substr(f+1);c=new E(c,h)}else throw Error("Bad token: "+T(a.a));a=new sb(Jb(a),e.a);return d||
        new U(e,c,a,"//"==b)}function Jb(a){for(var b=[];"["==S(a.a);){T(a.a);W(a,"Missing predicate expression.");var c=Cb(a);b.push(c);W(a,"Unclosed predicate expression.");Eb(a,"]")}return b}function Db(a){if("-"==S(a.a))return T(a.a),new zb(Db(a));var b=Hb(a);if("|"!=S(a.a))a=b;else{for(b=[b];"|"==T(a.a);)W(a,"Missing next union location path."),b.push(Hb(a));a.a.a--;a=new Ab(b)}return a};function Kb(a){switch(a.nodeType){case 1:return ea(Lb,a);case 9:return Kb(a.documentElement);case 11:case 10:case 6:case 12:return Mb;default:return a.parentNode?Kb(a.parentNode):Mb}}function Mb(){return null}function Lb(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?Lb(a.parentNode,b):null};function Nb(a,b){if(!a.length)throw Error("Empty XPath expression.");a=fb(a);if(ib(a))throw Error("Invalid XPath expression.");b?"function"==aa(b)||(b=da(b.lookupNamespaceURI,b)):b=function(){return null};var c=Cb(new Bb(a,b));if(!ib(a))throw Error("Bad token: "+T(a));this.evaluate=function(a,b){a=c.a(new Q(a));return new Y(a,b)}}
    function Y(a,b){if(0==b)if(a instanceof C)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof C))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof C?Sa(a):""+a;break;case 1:this.numberValue=a instanceof C?+Sa(a):+a;break;case 3:this.booleanValue=a instanceof C?0<a.l:!!a;break;case 4:case 5:case 6:case 7:var d=
        H(a);c=[];for(var e=I(d);e;e=I(d))c.push(e instanceof y?e.a:e);this.snapshotLength=a.l;this.invalidIteratorState=!1;break;case 8:case 9:a=Ra(a);this.singleNodeValue=a instanceof y?a.a:a;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||
    0>a?null:c[a]}}Y.ANY_TYPE=0;Y.NUMBER_TYPE=1;Y.STRING_TYPE=2;Y.BOOLEAN_TYPE=3;Y.UNORDERED_NODE_ITERATOR_TYPE=4;Y.ORDERED_NODE_ITERATOR_TYPE=5;Y.UNORDERED_NODE_SNAPSHOT_TYPE=6;Y.ORDERED_NODE_SNAPSHOT_TYPE=7;Y.ANY_UNORDERED_NODE_TYPE=8;Y.FIRST_ORDERED_NODE_TYPE=9;function Ob(a){this.lookupNamespaceURI=Kb(a)}
    function Pb(a,b){a=a||k;var c=a.Document&&a.Document.prototype||a.document;if(!c.evaluate||b)a.XPathResult=Y,c.evaluate=function(a,b,c,g){return(new Nb(a,c)).evaluate(b,g)},c.createExpression=function(a,b){return new Nb(a,b)},c.createNSResolver=function(a){return new Ob(a)}}var Qb=["wgxpath","install"],Z=k;Qb[0]in Z||!Z.execScript||Z.execScript("var "+Qb[0]);for(var Rb;Qb.length&&(Rb=Qb.shift());)Qb.length||void 0===Pb?Z[Rb]?Z=Z[Rb]:Z=Z[Rb]={}:Z[Rb]=Pb;}).call(this)
    }

    setTimeout(function(){wgxpath.install()}, 100);
})
    .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});

system/js/html5fallback-uncompressed.js000064400000032477152177723720014312 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Unobtrusive Form Validation and HTML5 Form polyfill library
 *
 * Inspired by: Ryan Seddon <http://thecssninja.com/javascript/H5F>
 *
 * @package		Joomla.Framework
 * @subpackage	Forms
 */

( function( $, document, undefined ) {
	"use strict";

	// Utility function
	if ( typeof Object.create !== 'function' ) {
		Object.create = function( obj ) {
			function F() {}
			F.prototype = obj;
			return new F();
		};
	}

	var features = ( function( el, item ) {
		var attributes = [ 'required', 'pattern', 'placeholder', 'autofocus', 'formnovalidate' ],
			types = [ 'email', 'url', 'number', 'range' ],
			result = {
				attributes: {},
				types: {}
			};

		while ( item = attributes.pop() ) {
			result.attributes[ item ] = !!( item in el );
		}

		while ( item = types.pop() ) {
			el.setAttribute( 'type', item );
			result.types[ item ] = ( el.type == item );
		}

		return result;
	}( document.createElement( "input" ) ) );

	var H5Form = {
		/**
		 * Init function, prepares the form for for validation
		 *
		 * @param   object   options  Some options to override the defaults.
		 * @param   Element  elem     The form or element to validate.
		 *
		 * @return  void
		 */
		init: function( options, elem ) {
			var self = this;

			self.elem = elem;
			self.$elem = $( elem );
			elem.H5Form = self;
			self.options = $.extend( {}, $.fn.h5f.options, options );

			// Check whether the element is form or not
			if ( elem.nodeName.toLowerCase() === "form" ) {
				self.bindWithForm( self.elem, self.$elem );
			}
		},

		/**
		 * Attach the validation behaviors to the form
		 *
		 * @param   Element  form   The form element
		 * @param   jQuery   $form  A jQuery object containing the form
		 *
		 * @return  void
		 */
		bindWithForm: function( form, $form ) {
			var self = this,
				novalidate = !!$form.attr( 'novalidate' ),
				f = form.elements,
				flen = f.length,
				formnovalidate;

			if ( self.options.formValidationEvent === "onSubmit" ) {
				$form.on( 'submit', function( e ) {
					formnovalidate = this.H5Form.donotValidate !== undefined ? this.H5Form.donotValidate : false;

					if ( !formnovalidate && !novalidate && !self.validateForm( self ) ) {
						// Prevent form from submit
						e.preventDefault();
						this.donotValidate = false;
					} else {
						$form.find( ':input' )
							.each( function() {
								self.placeholder( self, this, 'submit' );
							} );
					}
				});
			}

			$form.on( 'focusout focusin', function( event ) {
				self.placeholder( self, event.target, event.type );
			});

			$form.on( 'focusout change', self.validateField );

			$form.find( 'fieldset' )
				.on( 'change', function() {
					self.validateField( this );
				});

			if ( !features.attributes.formnovalidate ) {
				$form.find( ':submit[formnovalidate]' )
					.on( 'click', function() {
						self.donotValidate = true;
					});
			}

			while ( flen-- ) {
				// Assign graphical polyfills
				self.polyfill( f[ flen ] );
				self.autofocus( self, f[ flen ] );
			}
		},

		/**
		 * Apply the polyfills where applicable
		 *
		 * @param   Element  elem  The element to apply polyfills to
		 *
		 * @return  void
		 */
		polyfill: function( elem ) {
			if ( elem.nodeName.toLowerCase() === 'form' ) return true;

			var self = elem.form.H5Form;

			self.placeholder( self, elem );
			self.numberType( self, elem );
		},

		/**
		 * Validate the form
		 *
		 * @return  boolean  True if the form is valid, False if not
		 */
		validateForm: function() {
			var self = this,
				form = self.elem,
				f = form.elements,
				flen = f.length,
				isFieldValid = true,
				i, elem;

			form.isValid = true;

			for ( i = 0; i < flen; i++ ) {
				elem = f[ i ];
				elem.isRequired = !!elem.required;
				if (elem.isDisabled) {
					elem.isDisabled = !!elem.disabled;
				}

				//Do Validation
				if ( !elem.isDisabled ) {
					isFieldValid = self.validateField( elem );

					// Set focus to first invalid field
					if ( form.isValid && !isFieldValid ) {
						self.setFocusOn( elem );
					}

					form.isValid = isFieldValid && form.isValid;
				}
			}

			if ( self.options.doRenderMessage ) {
				self.renderErrorMessages( self, form );
			}

			return form.isValid;
		},

		/**
		 * Validate a field
		 *
		 * @param   mixed  e  Either an Event or Element
		 *
		 * @return  mixed  True if the field is valid, False if not, null if the field has no form.
		 */
		validateField: function( e ) {
			var elem = e.target || e,
				isMissing = false,
				isRequired = false,
				isDisabled = false,
				isPatternMismatched = false,
				self, $elem, $labelref;

			if ( elem.form === undefined ) {
				return null;
			}

			self = elem.form.H5Form;
			$elem = $( elem );
			isRequired = !!$elem.attr( "required" );
			isDisabled = !!$elem.attr( "disabled" );

			if ( !elem.isDisabled ) {
				isMissing = !features.attributes.required && isRequired && self.isValueMissing( self, elem );
				isPatternMismatched = !features.attributes.pattern && self.matchPattern( self, elem );
			}

			elem.validityState = {
				valueMissing: isMissing,
				patternMismatch: isPatternMismatched,
				valid: ( elem.isDisabled || !( isMissing || isPatternMismatched ) )
			};

			if ( !features.attributes.required ) {
				if ( elem.validityState.valueMissing ) {
					$elem.addClass( self.options.requiredClass );
				} else {
					$elem.removeClass( self.options.requiredClass );
				}
			}

			if ( !features.attributespattern ) {
				if ( elem.validityState.patternMismatch ) {
					$elem.addClass( self.options.patternClass );
				} else {
					$elem.removeClass( self.options.patternClass );
				}
			}

			if ( !elem.validityState.valid ) {
				$elem.addClass( self.options.invalidClass );
				$labelref = self.findLabel( $elem );
				$labelref.addClass( self.options.invalidClass );
				$labelref.attr( 'aria-invalid', 'true' );
			} else {
				$elem.removeClass( self.options.invalidClass );
				$labelref = self.findLabel( $elem );
				$labelref.removeClass( self.options.invalidClass );
				$labelref.attr( 'aria-invalid', 'false' );
			}

			return elem.validityState.valid;
		},

		/**
		 * Check if the field has no value
		 *
		 * @param   H5Form    self  This
		 * @param   Element   elem  A field element to check
		 *
		 * @return  Boolean
		 */
		isValueMissing: function( self, elem ) {
			var $elem = $( elem ),
				type = elem.type !== undefined ? elem.type : elem.tagName.toLowerCase(),
				isSpecialType = /^(checkbox|radio|fieldset)$/i.test( type ),
				isIgnoredType = /^submit$/i.test( type ),
				elements, i, l;

			if ( isIgnoredType ) {
				return false;
			}

			if ( !isSpecialType ) {
				if ( $elem.val() === "" || ( !features.attributes.placeholder && $elem.hasClass( self.options.placeholderClass ) ) ) {
					return true;
				}
			} else {
				if ( type === "checkbox" ) {
					return !$elem.is( ':checked' );
				} else {
					elements = ( type === "fieldset" ) ? $elem.find( 'input' ) : document.getElementsByName( elem.name );

					for ( i = 0, l = elements.length; i < l; i++ ) {
						if ( $( elements[ i ] ).is( ':checked' ) ) {
							return false;
						}
					}

					// Since no checkbox or radio box is checked value is missing.
					return true;
				}
			}

			return false;
		},

		/**
		 * Check if a pattern is not matched
		 *
		 * @param   H5Form    self  This
		 * @param   Element   elem  A field element to check
		 *
		 * @return  boolean   True if the pattern does not match.
		 */
		matchPattern: function( self, elem ) {
			var $elem = $( elem ),
				val = $elem.attr( 'value' ),
				pattern = $elem.attr( 'pattern' ),
				type = $elem.attr( 'type' ),
				i, l;

			if ( features.attributes.placeholder || !$elem.attr( 'placeholder' ) || !$elem.hasClass( self.options.placeholderClass ) ) {
				val = $elem.attr( 'value' );
			}

			if ( val === "" ) {
				return false;
			}

			if ( type === "email" ) {
				if ( $elem.attr( 'multiple' ) !== undefined ) {
					val = val.split( self.options.mutipleDelimiter );

					for ( i = 0, l = val.length; i < l; i++ ) {
						if ( !self.options.emailPatt.test( val[ i ].replace( /[ ]*/g, '' ) ) ) return true;
					}
				} else {
					return !self.options.emailPatt.test( val );
				}
			} else if ( type === "url" ) {
				return !self.options.urlPatt.test( val );
			} else if ( type === 'text' ) {
				if ( pattern !== undefined ) {
					usrPatt = new RegExp( '^(?:' + pattern + ')$' );

					return !usrPatt.test( val );
				}
			}

			return false;
		},

		/**
		 * Placeholder polyfill
		 *
		 * @param   H5Form    self   This
		 * @param   Element   elem   A field element to fill
		 * @param   Event     event  Event object
		 *
		 * @return  void
		 */
		placeholder: function( self, elem, event ) {
			var $elem = $( elem ),
				placeholder = $elem.attr( "placeholder" ),
				expectEmpty = /^(focusin|submit)$/i.test( event ),
				isInput = /^(input|textarea)$/i.test( elem.nodeName ),
				isIgnored = /^password$/i.test( elem.type ),
				isNative = features.attributes.placeholder;

			if ( isNative || !isInput || isIgnored || placeholder === undefined ) {
				return;
			}

			if ( elem.value === "" && !expectEmpty ) {
				elem.value = placeholder;
				$elem.addClass( self.options.placeholderClass );
			} else if ( elem.value === placeholder && expectEmpty ) {
				elem.value = "";
				$elem.removeClass( self.options.placeholderClass );
			}
		},

		/**
		 * Polyfill for number type fields
		 *
		 * @param   H5Form    self   This
		 * @param   Element   elem   A field element to replace
		 *
		 * @return  void
		 */
		numberType: function( self, elem ) {
			var $elem = $( elem ),
				type = $elem.attr( 'type' ),
				isInput = /^input$/i.test( elem.nodeName ),
				isType = /^(number|range)$/i.test( type ),
				min, max, step, value, attributes, $select, $option, i;

			if ( !isInput || !isType || ( type == "number" && features.types.number ) || ( type == "range" && features.types.range ) ) {
				return;
			}

			min = parseInt( $elem.attr( 'min' ) );
			max = parseInt( $elem.attr( 'max' ) );
			step = parseInt( $elem.attr( 'step' ) );
			value = parseInt( $elem.attr( 'value' ) );
			attributes = $elem.prop( "attributes" );
			$select = $( '<select>' );

			min = isNaN( min ) ? -100 : min;

			for ( i = min; i <= max; i += step ) {
				$option = $( '<option value="' + i + '">' + i + '</option>' );

				if ( value == i || ( value > i && value < i + step ) ) {
					$option.attr( 'selected', '' );
				}

				$select.append( $option );
			}

			$.each( attributes, function() {
				$select.attr( this.name, this.value );
			});

			$elem.replaceWith( $select );
		},

		/**
		 * Autofocus polyfill
		 *
		 * @param   H5Form    self   This
		 * @param   Element   elem   A field element to autofocus
		 *
		 * @return  void
		 */
		autofocus: function( self, elem ) {
			var $elem = $( elem ),
				doAutofocus = !!$elem.attr( "autofocus" ),
				canFocus = /^(input|textarea|select|fieldset)$/i.test( elem.nodeName ),
				isIgnored = /^submit$/i.test( elem.type ),
				isNative = features.attributes.autofocus;

			if ( !isNative && canFocus && !isIgnored && doAutofocus ) {
				$(function() {
					self.setFocusOn( elem );
				});
			}
		},

		/**
		 * Find an element's label.
		 *
		 * @param   Element  $elem  Some kind of input element
		 *
		 * @return  Element  A label element
		 */
		findLabel: function( $elem ) {
			var $label = $( 'label[for="' + $elem.attr( 'id' ) + '"]' ),
				$parentElem;

			if ( $label.length <= 0 ) {
				$parentElem = $elem.parent();

				if ( $parentElem.get( 0 )
					.tagName.toLowerCase() == "label" ) {
					$label = $parentElem;
				}
			}

			return $label;
		},

		/**
		 * Set focus on an element.
		 *
		 * @param  Element  elem  The element to focus on.
		 */
		setFocusOn: function( elem ) {
			if ( elem.tagName.toLowerCase() === "fieldset" ) {
				$( elem )
					.find( ":first" )
					.focus();
			} else {
				$( elem )
					.focus();
			}
		},

		/**
		 * Renders any error messages
		 *
		 * @param   H5Form    self   This
		 * @param   Element   form   A form element
		 *
		 * @return  void
		 */
		renderErrorMessages: function( self, form ) {
			var f = form.elements,
				flen = f.length,
				error = {
					errors: []
				},
				$elem, $label;

			while ( flen-- ) {
				$elem = $( f[ flen ] );
				$label = self.findLabel( $elem );

				if ( $elem.hasClass( self.options.requiredClass ) ) {
					error.errors[ flen ] = $label.text()
						.replace( "*", "" ) + self.options.requiredMessage;
				}

				if ( $elem.hasClass( self.options.patternClass ) ) {
					error.errors[ flen ] = $label.text()
						.replace( "*", "" ) + self.options.patternMessage;
				}
			}

			if ( error.errors.length > 0 ) {
				Joomla.renderMessages( error );
			}
		}
	};

	$.fn.h5f = function( options ) {
		return this.each(function() {
			Object.create( H5Form )
				.init( options, this );
		});
	};

	$.fn.h5f.options = {
		invalidClass: "invalid",
		requiredClass: "required",
		requiredMessage: " is required.",
		placeholderClass: "placeholder",
		patternClass: "pattern",
		patternMessage: " doesn't match pattern.",
		doRenderMessage: false,
		formValidationEvent: 'onSubmit',
		emailPatt: /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
		urlPatt: /[a-z][\-\.+a-z]*:\/\//i
	};

	$( function() {
		$( 'form' )
			.h5f({
				doRenderMessage: true,
				requiredClass: "musthavevalue"
			});
	});

})( jQuery, document );
system/js/jquery.Jcrop.min.js000064400000112753152177723720012245 0ustar00/*! Jcrop.min.js v2.0.4 - build: 20151117
 *  Copyright 2008-2015 Tapmodo Interactive LLC
 *  Free software under MIT License
 **/
!function(a){"use strict";var b=function(c,d){var e=navigator.userAgent.toLowerCase();this.opt=a.extend({},b.defaults,d||{}),this.container=a(c),this.opt.is_msie=/msie/.test(e),this.opt.is_ie_lt9=/msie [1-8]\./.test(e),this.container.addClass(this.opt.css_container),this.ui={},this.state=null,this.ui.multi=[],this.ui.selection=null,this.filter={},this.init(),this.setOptions(d),this.applySizeConstraints(),this.container.trigger("cropinit",this),this.opt.is_ie_lt9&&(this.opt.dragEventTarget=document.body)};a.extend(b,{component:{},filter:{},stage:{},registerComponent:function(a,c){b.component[a]=c},registerFilter:function(a,c){b.filter[a]=c},registerStageType:function(a,c){b.stage[a]=c},attach:function(b,c){var d=new a.Jcrop(b,c);return d},imgCopy:function(a){var b=new Image;return b.src=a.src,b},imageClone:function(c){return a.Jcrop.supportsCanvas?b.canvasClone(c):b.imgCopy(c)},canvasClone:function(b){var c=document.createElement("canvas"),d=c.getContext("2d");return a(c).width(b.width).height(b.height),c.width=b.naturalWidth,c.height=b.naturalHeight,d.drawImage(b,0,0,b.naturalWidth,b.naturalHeight),c},propagate:function(a,b,c){for(var d=0,e=a.length;e>d;d++)b.hasOwnProperty(a[d])&&(c[a[d]]=b[a[d]])},getLargestBox:function(a,b,c){return b/c>a?[c*a,c]:[b,b/a]},stageConstructor:function(c,d,e){var f=[];a.each(b.stage,function(a,b){f.push(b)}),f.sort(function(a,b){return a.priority-b.priority});for(var g=0,h=f.length;h>g;g++)if(f[g].isSupported(c,d)){f[g].create(c,d,function(a,b){"function"==typeof e&&e(a,b)});break}},supportsColorFade:function(){return a.fx.step.hasOwnProperty("backgroundColor")},wrapFromXywh:function(a){var b={x:a[0],y:a[1],w:a[2],h:a[3]};return b.x2=b.x+b.w,b.y2=b.y+b.h,b}});var c=function(){};a.extend(c,{isSupported:function(a,b){return!0},priority:100,create:function(a,b,d){var e=new c;e.element=a,d.call(this,e,b)},prototype:{attach:function(a){this.init(a),a.ui.stage=this},triggerEvent:function(b){return a(this.element).trigger(b),this},getElement:function(){return this.element}}}),b.registerStageType("Block",c);var d=function(){};d.prototype=new c,a.extend(d,{isSupported:function(a,b){return"IMG"==a.tagName?!0:void 0},priority:90,create:function(b,c,e){a.Jcrop.component.ImageLoader.attach(b,function(f,g){var h=new d;h.element=a(b).wrap("<div />").parent(),h.element.width(f).height(g),h.imgsrc=b,"function"==typeof e&&e.call(this,h,c)})}}),b.registerStageType("Image",d);var e=function(){this.angle=0,this.scale=1,this.scaleMin=.2,this.scaleMax=1.25,this.offset=[0,0]};e.prototype=new d,a.extend(e,{isSupported:function(b,c){return a.Jcrop.supportsCanvas&&"IMG"==b.tagName?!0:void 0},priority:60,create:function(b,c,d){var f=a(b),g=a.extend({},c);a.Jcrop.component.ImageLoader.attach(b,function(a,c){var h=new e;f.hide(),h.createCanvas(b,a,c),f.before(h.element),h.imgsrc=b,g.imgsrc=b,"function"==typeof d&&(d(h,g),h.redraw())})}}),a.extend(e.prototype,{init:function(a){this.core=a},setOffset:function(a,b){return this.offset=[a,b],this},setAngle:function(a){return this.angle=a,this},setScale:function(a){return this.scale=this.boundScale(a),this},boundScale:function(a){return a<this.scaleMin?a=this.scaleMin:a>this.scaleMax&&(a=this.scaleMax),a},createCanvas:function(b,c,d){this.width=c,this.height=d,this.canvas=document.createElement("canvas"),this.canvas.width=c,this.canvas.height=d,this.$canvas=a(this.canvas).width("100%").height("100%"),this.context=this.canvas.getContext("2d"),this.fillstyle="rgb(0,0,0)",this.element=this.$canvas.wrap("<div />").parent().width(c).height(d)},triggerEvent:function(a){return this.$canvas.trigger(a),this},clear:function(){return this.context.fillStyle=this.fillstyle,this.context.fillRect(0,0,this.canvas.width,this.canvas.height),this},redraw:function(){return this.context.save(),this.clear(),this.context.translate(parseInt(.5*this.width),parseInt(.5*this.height)),this.context.translate(this.offset[0]/this.core.opt.xscale,this.offset[1]/this.core.opt.yscale),this.context.rotate(this.angle*(Math.PI/180)),this.context.scale(this.scale,this.scale),this.context.translate(-parseInt(.5*this.width),-parseInt(.5*this.height)),this.context.drawImage(this.imgsrc,0,0,this.width,this.height),this.context.restore(),this.$canvas.trigger("cropredraw"),this},setFillStyle:function(a){return this.fillstyle=a,this}}),b.registerStageType("Canvas",e);var f=function(){this.minw=40,this.minh=40,this.maxw=0,this.maxh=0,this.core=null};a.extend(f.prototype,{tag:"backoff",priority:22,filter:function(a){var b=this.bound;return a.x<b.minx&&(a.x=b.minx,a.x2=a.w+a.x),a.y<b.miny&&(a.y=b.miny,a.y2=a.h+a.y),a.x2>b.maxx&&(a.x2=b.maxx,a.x=a.x2-a.w),a.y2>b.maxy&&(a.y2=b.maxy,a.y=a.y2-a.h),a},refresh:function(a){this.elw=a.core.container.width(),this.elh=a.core.container.height(),this.bound={minx:0+a.edge.w,miny:0+a.edge.n,maxx:this.elw+a.edge.e,maxy:this.elh+a.edge.s}}}),b.registerFilter("backoff",f);var g=function(){this.core=null};a.extend(g.prototype,{tag:"constrain",priority:5,filter:function(a,b){return"move"==b?(a.x<this.minx&&(a.x=this.minx,a.x2=a.w+a.x),a.y<this.miny&&(a.y=this.miny,a.y2=a.h+a.y),a.x2>this.maxx&&(a.x2=this.maxx,a.x=a.x2-a.w),a.y2>this.maxy&&(a.y2=this.maxy,a.y=a.y2-a.h)):(a.x<this.minx&&(a.x=this.minx),a.y<this.miny&&(a.y=this.miny),a.x2>this.maxx&&(a.x2=this.maxx),a.y2>this.maxy&&(a.y2=this.maxy)),a.w=a.x2-a.x,a.h=a.y2-a.y,a},refresh:function(a){this.elw=a.core.container.width(),this.elh=a.core.container.height(),this.minx=0+a.edge.w,this.miny=0+a.edge.n,this.maxx=this.elw+a.edge.e,this.maxy=this.elh+a.edge.s}}),b.registerFilter("constrain",g);var h=function(){this.core=null};a.extend(h.prototype,{tag:"extent",priority:12,offsetFromCorner:function(a,b,c){var d=b[0],e=b[1];switch(a){case"bl":return[c.x2-d,c.y,d,e];case"tl":return[c.x2-d,c.y2-e,d,e];case"br":return[c.x,c.y,d,e];case"tr":return[c.x,c.y2-e,d,e]}},getQuadrant:function(a){var b=a.opposite[0]-a.offsetx,c=a.opposite[1]-a.offsety;return 0>b&&0>c?"br":b>=0&&c>=0?"tl":0>b&&c>=0?"tr":"bl"},filter:function(a,c,d){if("move"==c)return a;var e=a.w,f=a.h,g=d.state,h=this.limits,i=g?this.getQuadrant(g):"br";return h.minw&&e<h.minw&&(e=h.minw),h.minh&&f<h.minh&&(f=h.minh),h.maxw&&e>h.maxw&&(e=h.maxw),h.maxh&&f>h.maxh&&(f=h.maxh),e==a.w&&f==a.h?a:b.wrapFromXywh(this.offsetFromCorner(i,[e,f],a))},refresh:function(a){this.elw=a.core.container.width(),this.elh=a.core.container.height(),this.limits={minw:a.minSize[0],minh:a.minSize[1],maxw:a.maxSize[0],maxh:a.maxSize[1]}}}),b.registerFilter("extent",h);var i=function(){this.stepx=1,this.stepy=1,this.core=null};a.extend(i.prototype,{tag:"grid",priority:19,filter:function(a){var b={x:Math.round(a.x/this.stepx)*this.stepx,y:Math.round(a.y/this.stepy)*this.stepy,x2:Math.round(a.x2/this.stepx)*this.stepx,y2:Math.round(a.y2/this.stepy)*this.stepy};return b.w=b.x2-b.x,b.h=b.y2-b.y,b}}),b.registerFilter("grid",i);var j=function(){this.ratio=0,this.core=null};a.extend(j.prototype,{tag:"ratio",priority:15,offsetFromCorner:function(a,b,c){var d=b[0],e=b[1];switch(a){case"bl":return[c.x2-d,c.y,d,e];case"tl":return[c.x2-d,c.y2-e,d,e];case"br":return[c.x,c.y,d,e];case"tr":return[c.x,c.y2-e,d,e]}},getBoundRatio:function(a,c){var d=b.getLargestBox(this.ratio,a.w,a.h);return b.wrapFromXywh(this.offsetFromCorner(c,d,a))},getQuadrant:function(a){var b=a.opposite[0]-a.offsetx,c=a.opposite[1]-a.offsety;return 0>b&&0>c?"br":b>=0&&c>=0?"tl":0>b&&c>=0?"tr":"bl"},filter:function(a,b,c){if(!this.ratio)return a;var d=(a.w/a.h,c.state),e=d?this.getQuadrant(d):"br";if(b=b||"se","move"==b)return a;switch(b){case"n":a.x2=this.elw,a.w=a.x2-a.x,e="tr";break;case"s":a.x2=this.elw,a.w=a.x2-a.x,e="br";break;case"e":a.y2=this.elh,a.h=a.y2-a.y,e="br";break;case"w":a.y2=this.elh,a.h=a.y2-a.y,e="bl"}return this.getBoundRatio(a,e)},refresh:function(a){this.ratio=a.aspectRatio,this.elw=a.core.container.width(),this.elh=a.core.container.height()}}),b.registerFilter("ratio",j);var k=function(){this.core=null};a.extend(k.prototype,{tag:"round",priority:90,filter:function(a){var b={x:Math.round(a.x),y:Math.round(a.y),x2:Math.round(a.x2),y2:Math.round(a.y2)};return b.w=b.x2-b.x,b.h=b.y2-b.y,b}}),b.registerFilter("round",k);var l=function(a,b){this.color=b||"black",this.opacity=a||.5,this.core=null,this.shades={}};a.extend(l.prototype,{tag:"shader",fade:!0,fadeEasing:"swing",fadeSpeed:320,priority:95,init:function(){var b=this;b.attached||(b.visible=!1,b.container=a("<div />").addClass(b.core.opt.css_shades).prependTo(this.core.container).hide(),b.elh=this.core.container.height(),b.elw=this.core.container.width(),b.shades={top:b.createShade(),right:b.createShade(),left:b.createShade(),bottom:b.createShade()},b.attached=!0)},destroy:function(){this.container.remove()},setColor:function(c,d){var e=this;if(c==e.color)return e;this.color=c;var f=b.supportsColorFade();return a.each(e.shades,function(a,b){e.fade&&!d&&f?b.animate({backgroundColor:c},{queue:!1,duration:e.fadeSpeed,easing:e.fadeEasing}):b.css("backgroundColor",c)}),e},setOpacity:function(b,c){var d=this;return b==d.opacity?d:(d.opacity=b,a.each(d.shades,function(a,e){!d.fade||c?e.css({opacity:b}):e.animate({opacity:b},{queue:!1,duration:d.fadeSpeed,easing:d.fadeEasing})}),d)},createShade:function(){return a("<div />").css({position:"absolute",backgroundColor:this.color,opacity:this.opacity}).appendTo(this.container)},refresh:function(a){var b=this.core,c=this.shades;this.setColor(a.bgColor?a.bgColor:this.core.opt.bgColor),this.setOpacity(a.bgOpacity?a.bgOpacity:this.core.opt.bgOpacity),this.elh=b.container.height(),this.elw=b.container.width(),c.right.css("height",this.elh+"px"),c.left.css("height",this.elh+"px")},filter:function(a,b,c){if(!c.active)return a;var d=this,e=d.shades;return e.top.css({left:Math.round(a.x)+"px",width:Math.round(a.w)+"px",height:Math.round(a.y)+"px"}),e.bottom.css({top:Math.round(a.y2)+"px",left:Math.round(a.x)+"px",width:Math.round(a.w)+"px",height:d.elh-Math.round(a.y2)+"px"}),e.right.css({left:Math.round(a.x2)+"px",width:d.elw-Math.round(a.x2)+"px"}),e.left.css({width:Math.round(a.x)+"px"}),d.visible||(d.container.show(),d.visible=!0),a}}),b.registerFilter("shader",l);var m=function(a){this.stage=a,this.core=a.core,this.cloneStagePosition()};m.prototype={cloneStagePosition:function(){var a=this.stage;this.angle=a.angle,this.scale=a.scale,this.offset=a.offset},getElement:function(){var b=this.stage;return a("<div />").css({position:"absolute",top:b.offset[0]+"px",left:b.offset[1]+"px",width:b.angle+"px",height:b.scale+"px"})},animate:function(a){var b=this;this.scale=this.stage.boundScale(this.scale),b.stage.triggerEvent("croprotstart"),b.getElement().animate({top:b.offset[0]+"px",left:b.offset[1]+"px",width:b.angle+"px",height:b.scale+"px"},{easing:b.core.opt.animEasing,duration:b.core.opt.animDuration,complete:function(){b.stage.triggerEvent("croprotend"),"function"==typeof a&&a.call(this)},progress:function(a){var c,d={},e=a.tweens;for(c=0;c<e.length;c++)d[e[c].prop]=e[c].now;b.stage.setAngle(d.width).setScale(d.height).setOffset(d.top,d.left).redraw()}})}},b.stage.Canvas.prototype.getAnimator=function(){return new m(this)},b.registerComponent("CanvasAnimator",m);var o=function(a){this.selection=a,this.core=a.core};o.prototype={getElement:function(){var b=this.selection.get();return a("<div />").css({position:"absolute",top:b.y+"px",left:b.x+"px",width:b.w+"px",height:b.h+"px"})},animate:function(a,b,c,d,e){var f=this;f.selection.allowResize(!1),f.getElement().animate({top:b+"px",left:a+"px",width:c+"px",height:d+"px"},{easing:f.core.opt.animEasing,duration:f.core.opt.animDuration,complete:function(){f.selection.allowResize(!0),e&&e.call(this)},progress:function(a){var b,c={},d=a.tweens;for(b=0;b<d.length;b++)c[d[b].prop]=d[b].now;var e={x:parseInt(c.left),y:parseInt(c.top),w:parseInt(c.width),h:parseInt(c.height)};e.x2=e.x+e.w,e.y2=e.y+e.h,f.selection.updateRaw(e,"se")}})}},b.registerComponent("Animator",o);var p=function(a,b,c){var d=this;d.x=a.pageX,d.y=a.pageY,d.selection=b,d.eventTarget=b.core.opt.dragEventTarget,d.orig=b.get(),b.callFilterFunction("refresh");var e=b.core.container.position();d.elx=e.left,d.ely=e.top,d.offsetx=0,d.offsety=0,d.ord=c,d.opposite=d.getOppositeCornerOffset(),d.initEvents(a)};p.prototype={getOppositeCornerOffset:function(){var a=this.orig,b=this.x-this.elx-a.x,c=this.y-this.ely-a.y;switch(this.ord){case"nw":case"w":return[a.w-b,a.h-c];case"sw":return[a.w-b,-c];case"se":case"s":case"e":return[-b,-c];case"ne":case"n":return[-b,a.h-c]}return[null,null]},initEvents:function(b){a(this.eventTarget).on("mousemove.jcrop",this.createDragHandler()).on("mouseup.jcrop",this.createStopHandler())},dragEvent:function(a){this.offsetx=a.pageX-this.x,this.offsety=a.pageY-this.y,this.selection.updateRaw(this.getBox(),this.ord)},endDragEvent:function(a){var b=this.selection;b.core.container.removeClass("jcrop-dragging"),b.element.trigger("cropend",[b,b.core.unscale(b.get())]),b.focus()},createStopHandler:function(){var b=this;return function(c){return a(b.eventTarget).off(".jcrop"),b.endDragEvent(c),!1}},createDragHandler:function(){var a=this;return function(b){return a.dragEvent(b),!1}},update:function(a,b){var c=this;c.offsetx=a-c.x,c.offsety=b-c.y},resultWrap:function(a){var b={x:Math.min(a[0],a[2]),y:Math.min(a[1],a[3]),x2:Math.max(a[0],a[2]),y2:Math.max(a[1],a[3])};return b.w=b.x2-b.x,b.h=b.y2-b.y,b},getBox:function(){var a=this,b=a.orig,c={x2:b.x+b.w,y2:b.y+b.h};switch(a.ord){case"n":return a.resultWrap([b.x,a.offsety+b.y,c.x2,c.y2]);case"s":return a.resultWrap([b.x,b.y,c.x2,a.offsety+c.y2]);case"e":return a.resultWrap([b.x,b.y,a.offsetx+c.x2,c.y2]);case"w":return a.resultWrap([b.x+a.offsetx,b.y,c.x2,c.y2]);case"sw":return a.resultWrap([a.offsetx+b.x,b.y,c.x2,a.offsety+c.y2]);case"se":return a.resultWrap([b.x,b.y,a.offsetx+c.x2,a.offsety+c.y2]);case"ne":return a.resultWrap([b.x,a.offsety+b.y,a.offsetx+c.x2,c.y2]);case"nw":return a.resultWrap([a.offsetx+b.x,a.offsety+b.y,c.x2,c.y2]);case"move":return c.nx=b.x+a.offsetx,c.ny=b.y+a.offsety,a.resultWrap([c.nx,c.ny,c.nx+b.w,c.ny+b.h])}}},b.registerComponent("DragState",p);var q=function(a){this.core=a};q.prototype={on:function(b,c){a(this).on(b,c)},off:function(b){a(this).off(b)},trigger:function(b){a(this).trigger(b)}},b.registerComponent("EventManager",q);var r=function(a,b,c){this.src=a,b||(b=new Image),this.element=b,this.callback=c,this.load()};a.extend(r,{attach:function(a,b){return new r(a.src,a,b)},prototype:{getDimensions:function(){var a=this.element;return a.naturalWidth?[a.naturalWidth,a.naturalHeight]:a.width?[a.width,a.height]:null},fireCallback:function(){this.element.onload=null,"function"==typeof this.callback&&this.callback.apply(this,this.getDimensions())},isLoaded:function(){return this.element.complete},load:function(){var a=this,b=a.element;b.src=a.src,a.isLoaded()?a.fireCallback():a.element.onload=function(b){a.fireCallback()}}}}),b.registerComponent("ImageLoader",r);var s=function(a){this.core=a,this.init()};a.extend(s,{support:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch?!0:void 0},prototype:{init:function(){var b=this,c=a.Jcrop.component.DragState.prototype;c.touch||(b.initEvents(),b.shimDragState(),b.shimStageDrag(),c.touch=!0)},shimDragState:function(){var b=this;a.Jcrop.component.DragState.prototype.initEvents=function(c){"touch"==c.type.substr(0,5)?a(this.eventTarget).on("touchmove.jcrop.jcrop-touch",b.dragWrap(this.createDragHandler())).on("touchend.jcrop.jcrop-touch",this.createStopHandler()):a(this.eventTarget).on("mousemove.jcrop",this.createDragHandler()).on("mouseup.jcrop",this.createStopHandler())}},shimStageDrag:function(){this.core.container.addClass("jcrop-touch").on("touchstart.jcrop.jcrop-stage",this.dragWrap(this.core.ui.manager.startDragHandler()))},dragWrap:function(a){return function(b){return b.preventDefault(),b.stopPropagation(),"touch"==b.type.substr(0,5)?(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,a(b)):!1}},initEvents:function(){var a=this,b=a.core;b.container.on("touchstart.jcrop.jcrop-touch","."+b.opt.css_drag,a.dragWrap(b.startDrag()))}}}),b.registerComponent("Touch",s);var t=function(a){this.core=a,this.init()};a.extend(t,{defaults:{eventName:"keydown.jcrop",passthru:[9],debug:!1},prototype:{init:function(){a.extend(this,t.defaults),this.enable()},disable:function(){this.core.container.off(this.eventName)},enable:function(){var b=this,c=b.core;c.container.on(b.eventName,function(d){var e=d.shiftKey?16:2;if(a.inArray(d.keyCode,b.passthru)>=0)return!0;switch(d.keyCode){case 37:c.nudge(-e,0);break;case 38:c.nudge(0,-e);break;case 39:c.nudge(e,0);break;case 40:c.nudge(0,e);break;case 46:case 8:return c.requestDelete(),!1;default:b.debug&&console.log("keycode: "+d.keyCode)}d.metaKey||d.ctrlKey||d.preventDefault()})}}}),b.registerComponent("Keyboard",t);var u=function(){};a.extend(u,{defaults:{minSize:[8,8],maxSize:[0,0],aspectRatio:0,edge:{n:0,s:0,e:0,w:0},bgColor:null,bgOpacity:null,last:null,state:null,active:!0,linked:!0,canDelete:!0,canDrag:!0,canResize:!0,canSelect:!0},prototype:{init:function(a){this.core=a,this.startup(),this.linked=this.core.opt.linked,this.attach(),this.setOptions(this.core.opt),a.container.trigger("cropcreate",[this])},attach:function(){},startup:function(){var b=this,c=b.core.opt;a.extend(b,u.defaults),b.filter=b.core.getDefaultFilters(),b.element=a("<div />").addClass(c.css_selection).data({selection:b}),b.frame=a("<button />").addClass(c.css_button).data("ord","move").attr("type","button"),b.element.append(b.frame).appendTo(b.core.container),b.core.opt.is_msie&&b.frame.css({opacity:0,backgroundColor:"white"}),b.insertElements(),b.frame.on("focus.jcrop",function(a){b.core.setSelection(b),b.element.trigger("cropfocus",b),b.element.addClass("jcrop-focus")}).on("blur.jcrop",function(a){b.element.removeClass("jcrop-focus"),b.element.trigger("cropblur",b)})},propagate:["canDelete","canDrag","canResize","canSelect","minSize","maxSize","aspectRatio","edge"],setOptions:function(a){return b.propagate(this.propagate,a,this),this.refresh(),this},refresh:function(){this.allowResize(),this.allowDrag(),this.allowSelect(),this.callFilterFunction("refresh"),this.updateRaw(this.get(),"se")},callFilterFunction:function(a,b){for(var c=0;c<this.filter.length;c++)this.filter[c][a]&&this.filter[c][a](this);return this},addFilter:function(a){a.core=this.core,this.hasFilter(a)||(this.filter.push(a),this.sortFilters(),a.init&&a.init(),this.refresh())},hasFilter:function(a){var b,c=this.filter;for(b=0;b<c.length;b++)if(c[b]===a)return!0},sortFilters:function(){this.filter.sort(function(a,b){return a.priority-b.priority})},clearFilters:function(){for(var a,b=this.filter,a=0;a<b.length;a++)b[a].destroy&&b[a].destroy();this.filter=[]},removeFilter:function(a){for(var b,c=this.filter,d=[],b=0;b<c.length;b++)c[b].tag&&c[b].tag==a||a===c[b]?c[b].destroy&&c[b].destroy():d.push(c[b]);this.filter=d},runFilters:function(a,b){for(var c=0;c<this.filter.length;c++)a=this.filter[c].filter(a,b,this);return a},endDrag:function(){this.state&&(a(document.body).off(".jcrop"),this.focus(),this.state=null)},startDrag:function(c,d){var e=this;e.core;return d=d||a(c.target).data("ord"),this.focus(),"move"==d&&e.element.hasClass(e.core.opt.css_nodrag)?!1:(this.state=new b.component.DragState(c,this,d),!1)},allowSelect:function(a){return void 0===a&&(a=this.canSelect),a&&this.canSelect?this.frame.attr("disabled",!1):this.frame.attr("disabled","disabled"),this},allowDrag:function(a){var b=this,c=b.core.opt;return void 0==a&&(a=b.canDrag),a&&b.canDrag?b.element.removeClass(c.css_nodrag):b.element.addClass(c.css_nodrag),this},allowResize:function(a){var b=this,c=b.core.opt;return void 0==a&&(a=b.canResize),a&&b.canResize?b.element.removeClass(c.css_noresize):b.element.addClass(c.css_noresize),this},remove:function(){this.element.trigger("cropremove",this),this.element.remove()},toBack:function(){this.active=!1,this.element.removeClass("jcrop-current jcrop-focus")},toFront:function(){this.active=!0,this.element.addClass("jcrop-current"),this.callFilterFunction("refresh"),this.refresh()},redraw:function(a){return this.moveTo(a.x,a.y),this.resize(a.w,a.h),this.last=a,this},update:function(a,b){return this.updateRaw(this.core.scale(a),b)},updateRaw:function(a,b){return a=this.runFilters(a,b),this.redraw(a),this.element.trigger("cropmove",[this,this.core.unscale(a)]),this},animateTo:function(a,c){var d=new b.component.Animator(this),e=this.core.scale(b.wrapFromXywh(a));d.animate(e.x,e.y,e.w,e.h,c)},center:function(a){var b=this.get(),c=this.core,d=c.container.width(),e=c.container.height(),f=[(d-b.w)/2,(e-b.h)/2,b.w,b.h];return this[a?"setSelect":"animateTo"](f)},createElement:function(b,c){return a("<div />").addClass(b+" ord-"+c).data("ord",c)},moveTo:function(a,b){this.element.css({top:b+"px",left:a+"px"})},blur:function(){return this.element.blur(),this},focus:function(){return this.core.setSelection(this),this.frame.focus(),this},resize:function(a,b){this.element.css({width:a+"px",height:b+"px"})},get:function(){var a=this.element,b=a.position(),c=a.width(),d=a.height(),e={x:b.left,y:b.top};return e.x2=e.x+c,e.y2=e.y+d,e.w=c,e.h=d,e},insertElements:function(){var a,b=this,c=(b.core,b.element),d=b.core.opt,e=d.borders,f=d.handles,g=d.dragbars;for(a=0;a<g.length;a++)c.append(b.createElement(d.css_dragbars,g[a]));for(a=0;a<f.length;a++)c.append(b.createElement(d.css_handles,f[a]));for(a=0;a<e.length;a++)c.append(b.createElement(d.css_borders,e[a]))}}}),b.registerComponent("Selection",u);var v=function(b,c){a.extend(this,v.defaults,c||{}),this.manager=b,this.core=b.core};v.defaults={offset:[-8,-8],active:!0,minsize:[20,20]},a.extend(v.prototype,{start:function(c){var d=this.core;if(d.opt.allowSelect){if(d.opt.multi&&d.opt.multiMax&&d.ui.multi.length>=d.opt.multiMax)return!1;var e=a(c.currentTarget).offset(),f=c.pageX-e.left+this.offset[0],g=c.pageY-e.top+this.offset[1],h=d.ui.multi;if(!d.opt.multi)if(d.opt.multiCleanup){for(var i=0;i<h.length;i++)h[i].remove();d.ui.multi=[]}else d.removeSelection(d.ui.selection);d.container.addClass("jcrop-dragging");var j=d.newSelection().updateRaw(b.wrapFromXywh([f,g,1,1]));return j.element.trigger("cropstart",[j,this.core.unscale(j.get())]),j.startDrag(c,"se")}},end:function(a,b){this.drag(a,b);var c=this.sel.get();this.core.container.removeClass("jcrop-dragging"),c.w<this.minsize[0]||c.h<this.minsize[1]?this.core.requestDelete():this.sel.focus()}}),b.registerComponent("StageDrag",v);var w=function(a){this.core=a,this.ui=a.ui,this.init()};a.extend(w.prototype,{init:function(){this.setupEvents(),this.dragger=new v(this)},tellConfigUpdate:function(a){for(var b=0,c=this.ui.multi,d=c.length;d>b;b++)c[b].setOptions&&(c[b].linked||this.core.opt.linkCurrent&&c[b]==this.ui.selection)&&c[b].setOptions(a)},startDragHandler:function(){var a=this;return function(b){return!b.button||a.core.opt.is_ie_lt9?a.dragger.start(b):void 0}},removeEvents:function(){this.core.event.off(".jcrop-stage"),this.core.container.off(".jcrop-stage")},shimLegacyHandlers:function(b){var c,d=this.core;a.each(d.opt.legacyHandlers,function(a,e){a in b&&(c=b[a],d.container.off(".jcrop-"+a).on(e+".jcrop.jcrop-"+a,function(a,b,e){c.call(d,e)}),delete b[a])})},setupEvents:function(){var a=this,b=a.core;b.event.on("configupdate.jcrop-stage",function(c){a.shimLegacyHandlers(b.opt),a.tellConfigUpdate(b.opt),b.container.trigger("cropconfig",[b,b.opt])}),this.core.container.on("mousedown.jcrop.jcrop-stage",this.startDragHandler())}}),b.registerComponent("StageManager",w);var x=function(){};a.extend(x,{defaults:{selection:null,fading:!0,fadeDelay:1e3,fadeDuration:1e3,autoHide:!1,width:80,height:80,_hiding:null},prototype:{recopyCanvas:function(){var a=this.core.ui.stage,b=a.context;this.context.putImageData(b.getImageData(0,0,a.canvas.width,a.canvas.height),0,0)},init:function(b,c){var d=this;this.core=b,a.extend(this,x.defaults,c),d.initEvents(),d.refresh(),d.insertElements(),d.selection?(d.renderSelection(d.selection),d.selectionTarget=d.selection.element[0]):d.core.ui.selection&&d.renderSelection(d.core.ui.selection),d.core.ui.stage.canvas&&(d.context=d.preview[0].getContext("2d"),d.core.container.on("cropredraw",function(a){d.recopyCanvas(),d.refresh()}))},updateImage:function(b){return this.preview.remove(),this.preview=a(a.Jcrop.imageClone(b)),this.element.append(this.preview),this.refresh(),this},insertElements:function(){this.preview=a(a.Jcrop.imageClone(this.core.ui.stage.imgsrc)),this.element=a("<div />").addClass("jcrop-thumb").width(this.width).height(this.height).append(this.preview).appendTo(this.core.container)},resize:function(a,b){this.width=a,this.height=b,this.element.width(a).height(b),this.renderCoords(this.last)},refresh:function(){this.cw=this.core.opt.xscale*this.core.container.width(),this.ch=this.core.opt.yscale*this.core.container.height(),this.last&&this.renderCoords(this.last)},renderCoords:function(a){var b=this.width/a.w,c=this.height/a.h;return this.preview.css({width:Math.round(b*this.cw)+"px",height:Math.round(c*this.ch)+"px",marginLeft:"-"+Math.round(b*a.x)+"px",marginTop:"-"+Math.round(c*a.y)+"px"}),this.last=a,this},renderSelection:function(a){return this.renderCoords(a.core.unscale(a.get()))},selectionStart:function(a){this.renderSelection(a)},show:function(){this._hiding&&clearTimeout(this._hiding),this.fading?this.element.stop().animate({opacity:1},{duration:80,queue:!1}):this.element.stop().css({opacity:1})},hide:function(){var a=this;a.fading?a._hiding=setTimeout(function(){a._hiding=null,a.element.stop().animate({opacity:0},{duration:a.fadeDuration,queue:!1})},a.fadeDelay):a.element.hide()},initEvents:function(){var a=this;a.core.container.on("croprotstart croprotend cropimage cropstart cropmove cropend",function(b,c,d){if(a.selectionTarget&&a.selectionTarget!==b.target)return!1;switch(b.type){case"cropimage":a.updateImage(d);break;case"cropstart":a.selectionStart(c);case"croprotstart":a.show();break;case"cropend":a.renderCoords(d);case"croprotend":a.autoHide&&a.hide();break;case"cropmove":a.renderCoords(d)}})}}}),b.registerComponent("Thumbnailer",x);var y=function(){};y.prototype={init:function(b,c,d){c||(c=b.container),this.$btn=a(c),this.$targ=a(c),this.core=b,this.$btn.addClass("dialdrag").on("mousedown.dialdrag",this.mousedown()).data("dialdrag",this),a.isFunction(d)||(d=function(){}),this.callback=d,this.ondone=d},remove:function(){return this.$btn.removeClass("dialdrag").off(".dialdrag").data("dialdrag",null),this},setTarget:function(b){return this.$targ=a(b),this},getOffset:function(){var a=this.$targ,b=a.offset();return[b.left+a.width()/2,b.top+a.height()/2]},relMouse:function(a){var b=a.pageX-this.offset[0],c=a.pageY-this.offset[1],d=Math.atan2(c,b)*(180/Math.PI),e=Math.sqrt(Math.pow(b,2)+Math.pow(c,2));return[b,c,d,e]},mousedown:function(){function b(b){a(window).off(".dialdrag"),d.ondone.call(d,d.relMouse(b)),d.core.container.trigger("croprotend")}function c(a){d.callback.call(d,d.relMouse(a))}var d=this;return function(e){d.offset=d.getOffset();var f=d.relMouse(e);return d.angleOffset=-d.core.ui.stage.angle+f[2],d.distOffset=f[3],d.dragOffset=[f[0],f[1]],d.core.container.trigger("croprotstart"),a(window).on("mousemove.dialdrag",c).on("mouseup.dialdrag",b),d.callback.call(d,d.relMouse(e)),!1}}},b.registerComponent("DialDrag",y),b.defaults={edge:{n:0,s:0,e:0,w:0},setSelect:null,linked:!0,linkCurrent:!0,canDelete:!0,canSelect:!0,canDrag:!0,canResize:!0,eventManagerComponent:b.component.EventManager,keyboardComponent:b.component.Keyboard,dragstateComponent:b.component.DragState,stagemanagerComponent:b.component.StageManager,animatorComponent:b.component.Animator,selectionComponent:b.component.Selection,stageConstructor:b.stageConstructor,allowSelect:!0,multi:!1,multiMax:!1,multiCleanup:!0,animation:!0,animEasing:"swing",animDuration:400,fading:!0,fadeDuration:300,fadeEasing:"swing",bgColor:"black",bgOpacity:.5,applyFilters:["constrain","extent","backoff","ratio","shader","round"],borders:["e","w","s","n"],handles:["n","s","e","w","sw","ne","nw","se"],dragbars:["n","e","w","s"],dragEventTarget:window,xscale:1,yscale:1,boxWidth:null,boxHeight:null,css_nodrag:"jcrop-nodrag",css_drag:"jcrop-drag",css_container:"jcrop-active",css_shades:"jcrop-shades",css_selection:"jcrop-selection",css_borders:"jcrop-border",css_handles:"jcrop-handle jcrop-drag",css_button:"jcrop-box jcrop-drag",css_noresize:"jcrop-noresize",css_dragbars:"jcrop-dragbar jcrop-drag",legacyHandlers:{onChange:"cropmove",onSelect:"cropend"}},a.extend(b.prototype,{init:function(){this.event=new this.opt.eventManagerComponent(this),this.ui.keyboard=new this.opt.keyboardComponent(this),this.ui.manager=new this.opt.stagemanagerComponent(this),this.applyFilters(),a.Jcrop.supportsTouch&&new a.Jcrop.component.Touch(this),this.initEvents()},applySizeConstraints:function(){var c=this.opt,d=this.opt.imgsrc;if(d){var e=d.naturalWidth||d.width,f=d.naturalHeight||d.height,g=c.boxWidth||e,h=c.boxHeight||f;if(d&&(e>g||f>h)){var i=b.getLargestBox(e/f,g,h);a(d).width(i[0]).height(i[1]),this.resizeContainer(i[0],i[1]),this.opt.xscale=e/i[0],this.opt.yscale=f/i[1]}}if(this.opt.trueSize){var j=this.opt.trueSize[0],k=this.opt.trueSize[1],l=this.getContainerSize();this.opt.xscale=j/l[0],this.opt.yscale=k/l[1]}},initComponent:function(a){if(b.component[a]){var c=Array.prototype.slice.call(arguments),d=new b.component[a];return c.shift(),c.unshift(this),d.init.apply(d,c),d}},setOptions:function(b,c){return a.isPlainObject(b)||(b={}),a.extend(this.opt,b),this.opt.setSelect&&(this.ui.multi.length||this.newSelection(),this.setSelect(this.opt.setSelect),this.opt.setSelect=null),this.event.trigger("configupdate"),this},destroy:function(){this.opt.imgsrc?(this.container.before(this.opt.imgsrc),this.container.remove(),a(this.opt.imgsrc).removeData("Jcrop").show()):this.container.remove()},applyFilters:function(){for(var b,c=0,d=this.opt.applyFilters,e=d.length;e>c;c++)a.Jcrop.filter[d[c]]&&(b=new a.Jcrop.filter[d[c]]),b.core=this,b.init&&b.init(),this.filter[d[c]]=b},getDefaultFilters:function(){for(var a=[],b=0,c=this.opt.applyFilters,d=c.length;d>b;b++)this.filter.hasOwnProperty(c[b])&&a.push(this.filter[c[b]]);return a.sort(function(a,b){return a.priority-b.priority}),a},setSelection:function(a){for(var b=this.ui.multi,c=[],d=0;d<b.length;d++)b[d]!==a&&c.push(b[d]),b[d].toBack();return c.unshift(a),this.ui.multi=c,this.ui.selection=a,a.toFront(),a},getSelection:function(a){var b=this.ui.selection.get();return b},newSelection:function(a){return a||(a=new this.opt.selectionComponent),a.init(this),this.setSelection(a),a},hasSelection:function(a){for(var b=0;b<this.ui.multi;b++)if(a===this.ui.multi[b])return!0},removeSelection:function(a){for(var b,c=[],d=this.ui.multi,b=0;b<d.length;b++)a!==d[b]?c.push(d[b]):d[b].remove();return this.ui.multi=c},addFilter:function(a){for(var b=0,c=this.ui.multi,d=c.length;d>b;b++)c[b].addFilter(a);return this},removeFilter:function(a){for(var b=0,c=this.ui.multi,d=c.length;d>b;b++)c[b].removeFilter(a);return this},blur:function(){return this.ui.selection.blur(),this},focus:function(){return this.ui.selection.focus(),this},initEvents:function(){var a=this;a.container.on("selectstart",function(a){return!1}).on("mousedown","."+a.opt.css_drag,a.startDrag())},maxSelect:function(){this.setSelect([0,0,this.elw,this.elh])},nudge:function(a,b){var c=this.ui.selection,d=c.get();d.x+=a,d.x2+=a,d.y+=b,d.y2+=b,d.x<0?(d.x2=d.w,d.x=0):d.x2>this.elw&&(d.x2=this.elw,d.x=d.x2-d.w),d.y<0?(d.y2=d.h,d.y=0):d.y2>this.elh&&(d.y2=this.elh,d.y=d.y2-d.h),c.element.trigger("cropstart",[c,this.unscale(d)]),c.updateRaw(d,"move"),c.element.trigger("cropend",[c,this.unscale(d)])},refresh:function(){for(var a=0,b=this.ui.multi,c=b.length;c>a;a++)b[a].refresh()},blurAll:function(){for(var a=this.ui.multi,b=0;b<a.length;b++)a[b]!==sel&&n.push(a[b]),a[b].toBack()},scale:function(a){var b=this.opt.xscale,c=this.opt.yscale;return{x:a.x/b,y:a.y/c,x2:a.x2/b,y2:a.y2/c,
w:a.w/b,h:a.h/c}},unscale:function(a){var b=this.opt.xscale,c=this.opt.yscale;return{x:a.x*b,y:a.y*c,x2:a.x2*b,y2:a.y2*c,w:a.w*b,h:a.h*c}},requestDelete:function(){return this.ui.multi.length>1&&this.ui.selection.canDelete?this.deleteSelection():void 0},deleteSelection:function(){this.ui.selection&&(this.removeSelection(this.ui.selection),this.ui.multi.length&&this.ui.multi[0].focus(),this.ui.selection.refresh())},animateTo:function(a){return this.ui.selection&&this.ui.selection.animateTo(a),this},setSelect:function(a){return this.ui.selection&&this.ui.selection.update(b.wrapFromXywh(a)),this},startDrag:function(){var b=this;return function(c){var d=a(c.target),e=d.closest("."+b.opt.css_selection).data("selection"),f=d.data("ord");return b.container.trigger("cropstart",[e,b.unscale(e.get())]),e.startDrag(c,f),!1}},getContainerSize:function(){return[this.container.width(),this.container.height()]},resizeContainer:function(a,b){this.container.width(a).height(b),this.refresh()},setImage:function(b,c){var d=this,e=d.opt.imgsrc;return e?void new a.Jcrop.component.ImageLoader(b,null,function(f,g){d.resizeContainer(f,g),e.src=b,a(e).width(f).height(g),d.applySizeConstraints(),d.refresh(),d.container.trigger("cropimage",[d,e]),"function"==typeof c&&c.call(d,f,g)}):!1},update:function(a){this.ui.selection&&this.ui.selection.update(a)}}),a.fn.Jcrop=function(b,c){b=b||{};var d=this.eq(0).data("Jcrop"),e=Array.prototype.slice.call(arguments);return"api"==b?d:d&&"string"==typeof b?d[b]?(e.shift(),d[b].apply(d,e),d):!1:void this.each(function(){var d=a(this),e=d.data("Jcrop");return e?e.setOptions(b):(b.stageConstructor||(b.stageConstructor=a.Jcrop.stageConstructor),b.stageConstructor(this,b,function(b,e){var f=e.setSelect;f&&delete e.setSelect;var g=a.Jcrop.attach(b.element,e);"function"==typeof b.attach&&b.attach(g),d.data("Jcrop",g),f&&(g.newSelection(),g.setSelect(f)),"function"==typeof c&&c.call(g)})),this})};var z=function(a,b,c){function d(a){r.cssText=a}function e(a,b){return typeof a===b}function f(a,b){return!!~(""+a).indexOf(b)}function g(a,b){for(var d in a){var e=a[d];if(!f(e,"-")&&r[e]!==c)return"pfx"==b?e:!0}return!1}function h(a,b,d){for(var f in a){var g=b[a[f]];if(g!==c)return d===!1?a[f]:e(g,"function")?g.bind(d||b):g}return!1}function i(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),f=(a+" "+v.join(d+" ")+d).split(" ");return e(b,"string")||e(b,"undefined")?g(f,b):(f=(a+" "+w.join(d+" ")+d).split(" "),h(f,b,c))}var j,k,l,m="2.7.1",n={},o=b.documentElement,p="modernizr",q=b.createElement(p),r=q.style,s={}.toString,t=" -webkit- -moz- -o- -ms- ".split(" "),u="Webkit Moz O ms",v=u.split(" "),w=u.toLowerCase().split(" "),x={svg:"http://www.w3.org/2000/svg"},y={},z=[],A=z.slice,B=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:p+(d+1),j.appendChild(h);return f=["&#173;",'<style id="s',p,'">',a,"</style>"].join(""),j.id=p,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=o.style.overflow,o.style.overflow="hidden",o.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),o.style.overflow=i),!!g},C=function(){function a(a,f){f=f||b.createElement(d[a]||"div"),a="on"+a;var g=a in f;return g||(f.setAttribute||(f=b.createElement("div")),f.setAttribute&&f.removeAttribute&&(f.setAttribute(a,""),g=e(f[a],"function"),e(f[a],"undefined")||(f[a]=c),f.removeAttribute(a))),f=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),D={}.hasOwnProperty;l=e(D,"undefined")||e(D.call,"undefined")?function(a,b){return b in a&&e(a.constructor.prototype[b],"undefined")}:function(a,b){return D.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=A.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(A.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(A.call(arguments)))};return d}),y.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},y.canvastext=function(){return!(!n.canvas||!e(b.createElement("canvas").getContext("2d").fillText,"function"))},y.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:B(["@media (",t.join("touch-enabled),("),p,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},y.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},y.csstransforms=function(){return!!i("transform")},y.svg=function(){return!!b.createElementNS&&!!b.createElementNS(x.svg,"svg").createSVGRect},y.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==x.svg},y.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(s.call(b.createElementNS(x.svg,"clipPath")))};for(var E in y)l(y,E)&&(k=E.toLowerCase(),n[k]=y[E](),z.push((n[k]?"":"no-")+k));return n.addTest=function(a,b){if("object"==typeof a)for(var d in a)l(a,d)&&n.addTest(d,a[d]);else{if(a=a.toLowerCase(),n[a]!==c)return n;b="function"==typeof b?b():b,"undefined"!=typeof enableClasses&&enableClasses&&(o.className+=" "+(b?"":"no-")+a),n[a]=b}return n},d(""),q=j=null,n._version=m,n._prefixes=t,n._domPrefixes=w,n._cssomPrefixes=v,n.hasEvent=C,n.testProp=function(a){return g([a])},n.testAllProps=i,n.testStyles=B,n}(window,window.document);!function(){var a=new Image;a.onerror=function(){z.addTest("datauri",function(){return!1})},a.onload=function(){z.addTest("datauri",function(){return 1==a.width&&1==a.height})},a.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="}(),a.Jcrop=b,a.Jcrop.supportsCanvas=z.canvas,a.Jcrop.supportsCanvasText=z.canvastext,a.Jcrop.supportsDragAndDrop=z.draganddrop,a.Jcrop.supportsDataURI=z.datauri,a.Jcrop.supportsSVG=z.svg,a.Jcrop.supportsInlineSVG=z.inlinesvg,a.Jcrop.supportsSVGClipPaths=z.svgclippaths,a.Jcrop.supportsCSSTransforms=z.csstransforms,a.Jcrop.supportsTouch=z.touch}(jQuery);system/js/polyfill.filter-uncompressed.js000064400000002176152177723720014710 0ustar00/* Polyfill service v3.14.0
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 * 
 * UA detected: ie/8.0.0
 * Features requested: Array.prototype.filter
 * 
 * - Array.prototype.filter, License: CC0 */

(function(undefined) {
if (!('filter' in Array.prototype)) {

// Array.prototype.filter
Array.prototype.filter = function filter(callback) {
	if (this === undefined || this === null) {
		throw new TypeError(this + ' is not an object');
	}

	if (!(callback instanceof Function)) {
		throw new TypeError(callback + ' is not a function');
	}

	var
	object = Object(this),
	scope = arguments[1],
	arraylike = object instanceof String ? object.split('') : object,
	length = Math.max(Math.min(arraylike.length, 9007199254740991), 0) || 0,
	index = -1,
	result = [],
	element;

	while (++index < length) {
		element = arraylike[index];

		if (index in arraylike && callback.call(scope, element, index, object)) {
			result.push(element);
		}
	}

	return result;
};

}

})
.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
system/js/keepalive.js000064400000000716152177723720011030 0ustar00!function(){"use strict";document.addEventListener("DOMContentLoaded",function(){var o=Joomla.getOptions("system.keepalive"),n=o&&o.uri?o.uri.replace(/&amp;/g,"&"):"",t=o&&o.interval?o.interval:45e3;if(""===n){var e=Joomla.getOptions("system.paths");n=(e?e.root+"/index.php":window.location.pathname)+"?option=com_ajax&format=json"}window.setInterval(function(){Joomla.request({url:n,onSuccess:function(){},onError:function(){}})},t)})}(window,document,Joomla);
system/js/caption.js000064400000000753152177723720010521 0ustar00/*
        GNU General Public License version 2 or later; see LICENSE.txt
*/
var JCaption=function(c){var e,b,a=function(f){e=jQuery.noConflict();b=f;e(b).each(function(g,h){d(h)})},d=function(i){var h=e(i),f=h.attr("title"),j=h.attr("width")||i.width,l=h.attr("align")||h.css("float")||i.style.styleFloat||"none",g=e("<p/>",{text:f,"class":b.replace(".","_")}),k=e("<div/>",{"class":b.replace(".","_")+" "+l,css:{"float":l,width:j}});h.before(k);k.append(h);if(f!==""){k.append(g)}};a(c)};
system/js/modal-fields-uncompressed.js000064400000014603152177723720014130 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

(function() {
	"use strict";

	/**
	 * Process modal fields in parent.
	 *
	 * @param   string  fieldPrefix  The fields to be updated prefix.
	 * @param   string  id           The new id for the item.
	 * @param   string  title        The new title for the item.
	 * @param   string  catid        Future usage.
	 * @param   object  object       Future usage.
	 * @param   string  url          Future usage.
	 * @param   string  language     Future usage.
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	window.processModalParent = function (fieldPrefix, id, title, catid, url, language, object)
	{
		var fieldId = document.getElementById(fieldPrefix + '_id'), fieldTitle = document.getElementById(fieldPrefix + '_name');

		// Default values.
		id       = id || '';
		title    = title || '';
		catid    = catid || '';
		object   = object || '';
		url      = url || '';
		language = language || '';

		if (id)
		{
			fieldId.value    = id;
			fieldTitle.value = title;

			if (document.getElementById(fieldPrefix + '_select'))
			{
				jQuery('#' + fieldPrefix + '_select').addClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_new'))
			{
				jQuery('#' + fieldPrefix + '_new').addClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_edit'))
			{
				jQuery('#' + fieldPrefix + '_edit').removeClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_clear'))
			{
				jQuery('#' + fieldPrefix + '_clear').removeClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_propagate'))
			{
				jQuery('#' + fieldPrefix + '_propagate').removeClass('hidden');
			}
		}
		else
		{
			fieldId.value    = '';
			fieldTitle.value = fieldId.getAttribute('data-text');

			if (document.getElementById(fieldPrefix + '_select'))
			{
				jQuery('#' + fieldPrefix + '_select').removeClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_new'))
			{
				jQuery('#' + fieldPrefix + '_new').removeClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_edit'))
			{
				jQuery('#' + fieldPrefix + '_edit').addClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_clear'))
			{
				jQuery('#' + fieldPrefix + '_clear').addClass('hidden');
			}
			if (document.getElementById(fieldPrefix + '_propagate'))
			{
				jQuery('#' + fieldPrefix + '_propagate').addClass('hidden');
			}
		}

		if (fieldId.getAttribute('data-required') == '1')
		{
			document.formvalidator.validate(fieldId);
			document.formvalidator.validate(fieldTitle);
		}

		return false;
	}

	/**
	 * Process new/edit modal fields in child.
	 *
	 * @param   object  element       The modal footer button element.
	 * @param   string  fieldPrefix   The fields to be updated prefix.
	 * @param   string  action        Modal action (add, edit).
	 * @param   string  itemType      The item type (Article, Contact, etc).
	 * @param   string  task          Task to be done (apply, save, cancel).
	 * @param   string  formId        Id of the form field (defaults to itemtype-form).
	 * @param   string  idFieldId     Id of the id field (defaults to jform_id).
	 * @param   string  titleFieldId  Id of the title field (defaults to jform_title).
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	window.processModalEdit = function (element, fieldPrefix, action, itemType, task, formId, idFieldId, titleFieldId)
	{
		formId       = formId || itemType.toLowerCase() + '-form';
		idFieldId    = idFieldId || 'jform_id';
		titleFieldId = titleFieldId || 'jform_title';

		var modalId = element.parentNode.parentNode.id, submittedTask = task;

		// Set frame id.
		jQuery('#' + modalId + ' iframe').get(0).id = 'Frame_' + modalId;

		var iframeDocument = jQuery('#Frame_' + modalId).contents().get(0);

		// If Close (cancel task), close the modal.
		if (task === 'cancel')
		{
			// Submit button on child iframe so we can check out.
			document.getElementById('Frame_' + modalId).contentWindow.Joomla.submitbutton(itemType.toLowerCase() + '.' + task);

			jQuery('#' + modalId).modal('hide');
		}
		// For Save (apply task) and Save & Close (save task).
		else
		{
			// Attach onload event to the iframe.
			jQuery('#Frame_' + modalId).on('load', function()
			{
				// Reload iframe document var value.
				iframeDocument = jQuery(this).contents().get(0);

				// Validate the child form and update parent form.
				if (iframeDocument.getElementById(idFieldId) && iframeDocument.getElementById(idFieldId).value != '0')
				{
					window.processModalParent(fieldPrefix, iframeDocument.getElementById(idFieldId).value, iframeDocument.getElementById(titleFieldId).value);

					// If Save & Close (save task), submit the edit close action (so we don't have checked out items).
					if (task === 'save')
					{
						window.processModalEdit(element, fieldPrefix, 'edit', itemType, 'cancel', formId, idFieldId, titleFieldId);
					}
				}

				// Show the iframe again for future modals or in case of error.
				jQuery('#' + modalId + ' iframe').removeClass('hidden');
			});

			// Submit button on child iframe.
			if (iframeDocument.formvalidator.isValid(iframeDocument.getElementById(formId)))
			{
				// For Save & Close (save task) when creating we need to replace the task as apply because of redirects after submit and hide the iframe.
				if (task === 'save')
				{
					submittedTask = 'apply';
				}

				document.getElementById('Frame_' + modalId).contentWindow.Joomla.submitbutton(itemType.toLowerCase() + '.' + submittedTask);
			}
		}

		return false;
	}

	/**
	 * Process select modal fields in child.
	 *
	 * @param   string  itemType     The item type (Article, Contact, etc).
	 * @param   string  fieldPrefix  The fields to be updated prefix.
	 * @param   string  id           The new id for the item.
	 * @param   string  title        The new title for the item.
	 * @param   string  catid        Future usage.
	 * @param   object  object       Future usage.
	 * @param   string  url          Future usage.
	 * @param   string  language     Future usage.
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	window.processModalSelect = function(itemType, fieldPrefix, id, title, catid, object, url, language) {
		window.processModalParent(fieldPrefix, id, title, catid, url, language, object);
		jQuery('#ModalSelect' + itemType + '_' + fieldPrefix).modal('hide');

		return false;
	}

}());system/js/progressbar.js000064400000002127152177723720011412 0ustar00/*
        license: MIT-style
*/
Fx.ProgressBar=function(e,k){var g,h,c,j,a,l={onComplete:function(){},text:null,html5:true},f=function(n,m){g=jQuery.noConflict();g.extend(l,m);var q,p=g(n).attr("class"),r=g(n).attr("id"),o;q=g(n).get(0);h=l.html5&&b();if(h){o=g("<progress></progress>",{value:10,max:100,"class":p,id:r});g(q).replaceWith(o);q=o}else{o=g("<div>",{id:r,"class":p,"class":"progress progress-striped",role:"progressbar","aria-valuenow":"0","aria-valuemin":"0","aria-valuemax":"100"}).html(g("<div>",{"class":"bar"})).get(0);g(q).replaceWith(o);q=o}j=g(q);i(0)},b=function(){return"value" in document.createElement("progress")},d=function(){a=true;if(h){j.removeAttr("value")}else{j.find(".bar").css("width","100%").addClass("active");j.removeAttr("aria-valuenow").attr("title","")}},i=function(n){var m=g(l.text);if(n>=100){n=100}c=n;if(h){j.val(n)}else{j.find(".bar").css("width",n+"%");j.removeAttr("aria-valuenow").attr("title",Math.round(n)+"%")}if(m.length){m.text(Math.round(n)+"%")}if(n>=100){l.onComplete("complete")}return this};f(e,k);return{set:i,setIndeterminate:d,element:j.get(0)}};
system/js/modal-uncompressed.js000064400000032201152177723720012656 0ustar00/**
 * SqueezeBox - Expandable Lightbox
 *
 * Allows to open various content as modal,
 * centered and animated box.
 *
 * Dependencies: MooTools 1.4 or newer
 *
 * Inspired by
 *  ... Lokesh Dhakar	- The original Lightbox v2
 *
 * @version		1.3
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @author		Rouven Weßling <me [at] rouvenwessling.de>
 * @copyright	Author
 */

var SqueezeBox = {

	presets: {
		onOpen: function(){},
		onClose: function(){},
		onUpdate: function(){},
		onResize: function(){},
		onMove: function(){},
		onShow: function(){},
		onHide: function(){},
		size: {x: 600, y: 450},
		sizeLoading: {x: 200, y: 150},
		marginInner: {x: 20, y: 20},
		marginImage: {x: 50, y: 75},
		handler: false,
		target: null,
		closable: true,
		closeBtn: true,
		zIndex: 65555,
		overlayOpacity: 0.7,
		classWindow: '',
		classOverlay: '',
		overlayFx: {},
		resizeFx: {},
		contentFx: {},
		parse: false, // 'rel'
		parseSecure: false,
		shadow: true,
		overlay: true,
		document: null,
		ajaxOptions: {}
	},

	initialize: function(presets) {
		if (this.options) return this;

		this.presets = Object.merge(this.presets, presets);
		this.doc = this.presets.document || document;
		this.options = {};
		this.setOptions(this.presets).build();
		this.bound = {
			window: this.reposition.bind(this, [null]),
			scroll: this.checkTarget.bind(this),
			close: this.close.bind(this),
			key: this.onKey.bind(this)
		};
		this.isOpen = this.isLoading = false;
		return this;
	},

	build: function() {
		this.overlay = new Element('div', {
			id: 'sbox-overlay',
			'aria-hidden': 'true',
			styles: { zIndex: this.options.zIndex},
			tabindex: -1
		});
		this.win = new Element('div', {
			id: 'sbox-window',
			role: 'dialog',
			'aria-hidden': 'true',
			styles: {zIndex: this.options.zIndex + 2}
		});
		if (this.options.shadow) {
			if (Browser.chrome
			|| (Browser.safari && Browser.version >= 3)
			|| (Browser.opera && Browser.version >= 10.5)
			|| (Browser.firefox && Browser.version >= 3.5)
			|| (Browser.ie && Browser.version >= 9)) {
				this.win.addClass('shadow');
			} else if (!Browser.ie6) {
				var shadow = new Element('div', {'class': 'sbox-bg-wrap'}).inject(this.win);
				var relay = function(e) {
					this.overlay.fireEvent('click', [e]);
				}.bind(this);
				['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'].each(function(dir) {
					new Element('div', {'class': 'sbox-bg sbox-bg-' + dir}).inject(shadow).addEvent('click', relay);
				});
			}
		}
		this.content = new Element('div', {id: 'sbox-content'}).inject(this.win);
		this.closeBtn = new Element('a', {id: 'sbox-btn-close', href: '#', role: 'button'}).inject(this.win);
		this.closeBtn.setProperty('aria-controls', 'sbox-window');
		this.fx = {
			overlay: new Fx.Tween(this.overlay, Object.merge({
				property: 'opacity',
				onStart: Events.prototype.clearChain,
				duration: 250,
				link: 'cancel'
			}, this.options.overlayFx)).set(0),
			win: new Fx.Morph(this.win, Object.merge({
				onStart: Events.prototype.clearChain,
				unit: 'px',
				duration: 750,
				transition: Fx.Transitions.Quint.easeOut,
				link: 'cancel',
				unit: 'px'
			}, this.options.resizeFx)),
			content: new Fx.Tween(this.content, Object.merge({
				property: 'opacity',
				duration: 250,
				link: 'cancel'
			}, this.options.contentFx)).set(0)
		};
		document.id(this.doc.body).adopt(this.overlay, this.win);
	},

	assign: function(to, options) {
		return (document.id(to) || $$(to)).addEvent('click', function() {
			return !SqueezeBox.fromElement(this, options);
		});
	},

	open: function(subject, options) {
		this.initialize();

		if (this.element != null) this.trash();
		this.element = document.id(subject) || false;

		this.setOptions(Object.merge(this.presets, options || {}));

		if (this.element && this.options.parse) {
			var obj = this.element.getProperty(this.options.parse);
			if (obj && (obj = JSON.decode(obj, this.options.parseSecure))) this.setOptions(obj);
		}
		this.url = ((this.element) ? (this.element.get('href')) : subject) || this.options.url || '';

		this.assignOptions();

		var handler = handler || this.options.handler;
		if (handler) return this.setContent(handler, this.parsers[handler].call(this, true));
		var ret = false;
		return this.parsers.some(function(parser, key) {
			var content = parser.call(this);
			if (content) {
				ret = this.setContent(key, content);
				return true;
			}
			return false;
		}, this);
	},

	fromElement: function(from, options) {
		return this.open(from, options);
	},

	assignOptions: function() {
		this.overlay.addClass(this.options.classOverlay);
		this.win.addClass(this.options.classWindow);
	},

	close: function(e) {
		var stoppable = (typeOf(e) == 'domevent');
		if (stoppable) e.stop();
		if (!this.isOpen || (stoppable && !Function.from(this.options.closable).call(this, e))) return this;
		this.fx.overlay.start(0).chain(this.toggleOverlay.bind(this));
		this.win.setProperty('aria-hidden', 'true');
		this.fireEvent('onClose', [this.content]);
		this.trash();
		this.toggleListeners();
		this.isOpen = false;
		return this;
	},

	trash: function() {
		this.element = this.asset = null;
		this.content.empty();
		this.options = {};
		this.removeEvents().setOptions(this.presets).callChain();
	},

	onError: function() {
		this.asset = null;
		this.setContent('string', this.options.errorMsg || 'An error occurred');
	},

	setContent: function(handler, content) {
		if (!this.handlers[handler]) return false;
		this.content.className = 'sbox-content-' + handler;
		this.applyTimer = this.applyContent.delay(this.fx.overlay.options.duration, this, this.handlers[handler].call(this, content));
		if (this.overlay.retrieve('opacity')) return this;
		this.toggleOverlay(true);
		this.fx.overlay.start(this.options.overlayOpacity);
		return this.reposition();
	},

	applyContent: function(content, size) {
		if (!this.isOpen && !this.applyTimer) return;
		this.applyTimer = clearTimeout(this.applyTimer);
		this.hideContent();
		if (!content) {
			this.toggleLoading(true);
		} else {
			if (this.isLoading) this.toggleLoading(false);
			this.fireEvent('onUpdate', [this.content], 20);
		}
		if (content) {
			if (['string', 'array'].contains(typeOf(content))) {
				this.content.set('html', content);
			} else {
				this.content.adopt(content);
			}
		}
		this.callChain();
		if (!this.isOpen) {
			this.toggleListeners(true);
			this.resize(size, true);
			this.isOpen = true;
			this.win.setProperty('aria-hidden', 'false');
			this.fireEvent('onOpen', [this.content]);
		} else {
			this.resize(size);
		}
	},

	resize: function(size, instantly) {
		this.showTimer = clearTimeout(this.showTimer || null);
		var box = this.doc.getSize(), scroll = this.doc.getScroll();
		this.size = Object.merge((this.isLoading) ? this.options.sizeLoading : this.options.size, size);
		var parentSize = self.getSize();
		if (this.size.x == parentSize.x) {
			this.size.y = this.size.y - 50;
			this.size.x = this.size.x - 20;
		}
		if (box.x > 979) {
			var to = {
				width: this.size.x,
				height: this.size.y,
				left: (scroll.x + (box.x - this.size.x - this.options.marginInner.x) / 2).toInt(),
				top: (scroll.y + (box.y - this.size.y - this.options.marginInner.y) / 2).toInt()
			};
		} else {
			var to = {
				width: box.x - 40,
				height: box.y,
				left: (scroll.x + 10).toInt(),
				top: (scroll.y + 20).toInt()
			};
		}
		this.hideContent();
		if (!instantly) {
			this.fx.win.start(to).chain(this.showContent.bind(this));
		} else {
			this.win.setStyles(to);
			this.showTimer = this.showContent.delay(50, this);
		}
		return this.reposition();
	},

	toggleListeners: function(state) {
		var fn = (state) ? 'addEvent' : 'removeEvent';
		this.closeBtn[fn]('click', this.bound.close);
		this.overlay[fn]('click', this.bound.close);
		this.doc[fn]('keydown', this.bound.key)[fn]('mousewheel', this.bound.scroll);
		this.doc.getWindow()[fn]('resize', this.bound.window)[fn]('scroll', this.bound.window);
	},

	toggleLoading: function(state) {
		this.isLoading = state;
		this.win[(state) ? 'addClass' : 'removeClass']('sbox-loading');
		if (state) {
			this.win.setProperty('aria-busy', state);
			this.fireEvent('onLoading', [this.win]);
		}
	},

	toggleOverlay: function(state) {
		if (this.options.overlay) {
			var full = this.doc.getSize().x;
			this.overlay.set('aria-hidden', (state) ? 'false' : 'true');
			this.doc.body[(state) ? 'addClass' : 'removeClass']('body-overlayed');
			if (state) {
				this.scrollOffset = this.doc.getWindow().getSize().x - full;
			} else {
				this.doc.body.setStyle('margin-right', '');
			}
		}
	},

	showContent: function() {
		if (this.content.get('opacity')) this.fireEvent('onShow', [this.win]);
		this.fx.content.start(1);
	},

	hideContent: function() {
		if (!this.content.get('opacity')) this.fireEvent('onHide', [this.win]);
		this.fx.content.cancel().set(0);
	},

	onKey: function(e) {
		switch (e.key) {
			case 'esc': this.close(e);
			case 'up': case 'down': return false;
		}
	},

	checkTarget: function(e) {
		return e.target !== this.content && this.content.contains(e.target);
	},

	reposition: function() {
		var size = this.doc.getSize(), scroll = this.doc.getScroll(), ssize = this.doc.getScrollSize();
		var over = this.overlay.getStyles('height');
		var j = parseInt(over.height);
		if (ssize.y > j && size.y >= j) {
			this.overlay.setStyles({
				width: ssize.x + 'px',
				height: ssize.y + 'px'
			});
			this.win.setStyles({
				left: (scroll.x + (size.x - this.win.offsetWidth) / 2 - this.scrollOffset).toInt() + 'px',
				top: (scroll.y + (size.y - this.win.offsetHeight) / 2).toInt() + 'px'
			});
		}
		return this.fireEvent('onMove', [this.overlay, this.win]);
	},

	removeEvents: function(type){
		if (!this.$events) return this;
		if (!type) this.$events = null;
		else if (this.$events[type]) this.$events[type] = null;
		return this;
	},

	extend: function(properties) {
		return Object.append(this, properties);
	},

	handlers: new Hash(),

	parsers: new Hash()
};

SqueezeBox.extend(new Events(function(){})).extend(new Options(function(){})).extend(new Chain(function(){}));

SqueezeBox.parsers.extend({

	image: function(preset) {
		return (preset || (/\.(?:jpg|png|gif)$/i).test(this.url)) ? this.url : false;
	},

	clone: function(preset) {
		if (document.id(this.options.target)) return document.id(this.options.target);
		if (this.element && !this.element.parentNode) return this.element;
		var bits = this.url.match(/#([\w-]+)$/);
		return (bits) ? document.id(bits[1]) : (preset ? this.element : false);
	},

	ajax: function(preset) {
		return (preset || (this.url && !(/^(?:javascript|#)/i).test(this.url))) ? this.url : false;
	},

	iframe: function(preset) {
		return (preset || this.url) ? this.url : false;
	},

	string: function(preset) {
		return true;
	}
});

SqueezeBox.handlers.extend({

	image: function(url) {
		var size, tmp = new Image();
		this.asset = null;
		tmp.onload = tmp.onabort = tmp.onerror = (function() {
			tmp.onload = tmp.onabort = tmp.onerror = null;
			if (!tmp.width) {
				this.onError.delay(10, this);
				return;
			}
			var box = this.doc.getSize();
			box.x -= this.options.marginImage.x;
			box.y -= this.options.marginImage.y;
			size = {x: tmp.width, y: tmp.height};
			for (var i = 2; i--;) {
				if (size.x > box.x) {
					size.y *= box.x / size.x;
					size.x = box.x;
				} else if (size.y > box.y) {
					size.x *= box.y / size.y;
					size.y = box.y;
				}
			}
			size.x = size.x.toInt();
			size.y = size.y.toInt();
			this.asset = document.id(tmp);
			tmp = null;
			this.asset.width = size.x;
			this.asset.height = size.y;
			this.applyContent(this.asset, size);
		}).bind(this);
		tmp.src = url;
		if (tmp && tmp.onload && tmp.complete) tmp.onload();
		return (this.asset) ? [this.asset, size] : null;
	},

	clone: function(el) {
		if (el) return el.clone();
		return this.onError();
	},

	adopt: function(el) {
		if (el) return el;
		return this.onError();
	},

	ajax: function(url) {
		var options = this.options.ajaxOptions || {};
		this.asset = new Request.HTML(Object.merge({
			method: 'get',
			evalScripts: false
		}, this.options.ajaxOptions)).addEvents({
			onSuccess: function(resp) {
				this.applyContent(resp);
				if (options.evalScripts !== null && !options.evalScripts) Browser.exec(this.asset.response.javascript);
				this.fireEvent('onAjax', [resp, this.asset]);
				this.asset = null;
			}.bind(this),
			onFailure: this.onError.bind(this)
		});
		this.asset.send.delay(10, this.asset, [{url: url}]);
	},

	iframe: function(url) {
		var box = this.doc.getSize();
		if (box.x > 979) {
			var modal_width = this.options.size.x;
			var modal_height = this.options.size.y;
		} else {
			var modal_width = box.x;
			var modal_height = box.y - 50;
		}
		this.asset = new Element('iframe', Object.merge({
			src: url,
			frameBorder: 0,
			width: modal_width,
			height: modal_height
		}, this.options.iframeOptions));
		if (this.options.iframePreload) {
			this.asset.addEvent('load', function() {
				this.applyContent(this.asset.setStyle('display', ''));
			}.bind(this));
			this.asset.setStyle('display', 'none').inject(this.content);
			return false;
		}
		return this.asset;
	},

	string: function(str) {
		return str;
	}
});

SqueezeBox.handlers.url = SqueezeBox.handlers.ajax;
SqueezeBox.parsers.url = SqueezeBox.parsers.ajax;
SqueezeBox.parsers.adopt = SqueezeBox.parsers.clone;
system/js/punycode.js000064400000005414152177723720010711 0ustar00/*! https://mths.be/punycode v1.4.1 by @mathias - do not update to v2 */
!function(a){function b(a){throw new RangeError(E[a])}function c(a,b){for(var c=a.length,d=[];c--;)d[c]=b(a[c]);return d}function d(a,b){var d=a.split("@"),e="";d.length>1&&(e=d[0]+"@",a=d[1]),a=a.replace(D,".");var f=a.split("."),g=c(f,b).join(".");return e+g}function e(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function f(a){return c(a,function(a){var b="";return a>65535&&(a-=65536,b+=H(a>>>10&1023|55296),a=56320|1023&a),b+=H(a)}).join("")}function g(a){return 10>a-48?a-22:26>a-65?a-65:26>a-97?a-97:t}function h(a,b){return a+22+75*(26>a)-((0!=b)<<5)}function i(a,b,c){var d=0;for(a=c?G(a/x):a>>1,a+=G(a/b);a>F*v>>1;d+=t)a=G(a/F);return G(d+(F+1)*a/(a+w))}function j(a){var c,d,e,h,j,k,l,m,n,o,p=[],q=a.length,r=0,w=z,x=y;for(d=a.lastIndexOf(A),0>d&&(d=0),e=0;d>e;++e)a.charCodeAt(e)>=128&&b("not-basic"),p.push(a.charCodeAt(e));for(h=d>0?d+1:0;q>h;){for(j=r,k=1,l=t;h>=q&&b("invalid-input"),m=g(a.charCodeAt(h++)),(m>=t||m>G((s-r)/k))&&b("overflow"),r+=m*k,n=x>=l?u:l>=x+v?v:l-x,!(n>m);l+=t)o=t-n,k>G(s/o)&&b("overflow"),k*=o;c=p.length+1,x=i(r-j,c,0==j),G(r/c)>s-w&&b("overflow"),w+=G(r/c),r%=c,p.splice(r++,0,w)}return f(p)}function k(a){var c,d,f,g,j,k,l,m,n,o,p,q,r,w,x,B=[];for(a=e(a),q=a.length,c=z,d=0,j=y,k=0;q>k;++k)p=a[k],128>p&&B.push(H(p));for(f=g=B.length,g&&B.push(A);q>f;){for(l=s,k=0;q>k;++k)p=a[k],p>=c&&l>p&&(l=p);for(r=f+1,l-c>G((s-d)/r)&&b("overflow"),d+=(l-c)*r,c=l,k=0;q>k;++k)if(p=a[k],c>p&&++d>s&&b("overflow"),p==c){for(m=d,n=t;o=j>=n?u:n>=j+v?v:n-j,!(o>m);n+=t)x=m-o,w=t-o,B.push(H(h(o+x%w,0))),m=G(x/w);B.push(H(h(m,0))),j=i(d,r,f==g),d=0,++f}++d,++c}return B.join("")}function l(a){return d(a,function(a){return B.test(a)?j(a.slice(4).toLowerCase()):a})}function m(a){return d(a,function(a){return C.test(a)?"xn--"+k(a):a})}var n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o="object"==typeof module&&module&&!module.nodeType&&module,p="object"==typeof global&&global;(p.global===p||p.window===p||p.self===p)&&(a=p);var q,r,s=2147483647,t=36,u=1,v=26,w=38,x=700,y=72,z=128,A="-",B=/^xn--/,C=/[^\x20-\x7E]/,D=/[\x2E\u3002\uFF0E\uFF61]/g,E={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},F=t-u,G=Math.floor,H=String.fromCharCode;if(q={version:"1.4.1",ucs2:{decode:e,encode:f},decode:j,encode:k,toASCII:m,toUnicode:l},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return q});else if(n&&o)if(module.exports==n)o.exports=q;else for(r in q)q.hasOwnProperty(r)&&(n[r]=q[r]);else a.punycode=q}(this);system/js/core.js000064400000021150152177723720010006 0ustar00Joomla=window.Joomla||{},Joomla.editors=Joomla.editors||{},Joomla.editors.instances=Joomla.editors.instances||{},function(e,t){"use strict";e.submitform=function(e,o,n){o||(o=t.getElementById("adminForm")),e&&(o.task.value=e),o.noValidate=!n,n?o.hasAttribute("novalidate")&&o.removeAttribute("novalidate"):o.setAttribute("novalidate","");var r=t.createElement("input");r.style.display="none",r.type="submit",o.appendChild(r).click(),o.removeChild(r)},e.submitbutton=function(t){e.submitform(t)},e.Text={strings:{},_:function(t,o){var n=e.getOptions("joomla.jtext");return n&&(this.load(n),e.loadOptions({"joomla.jtext":null})),o=void 0===o?"":o,t=t.toUpperCase(),void 0!==this.strings[t]?this.strings[t]:o},load:function(e){for(var t in e)e.hasOwnProperty(t)&&(this.strings[t.toUpperCase()]=e[t]);return this}},e.JText=e.Text,e.optionsStorage=e.optionsStorage||null,e.getOptions=function(t,o){return e.optionsStorage||e.loadOptions(),void 0!==e.optionsStorage[t]?e.optionsStorage[t]:o},e.loadOptions=function(o){if(!o){for(var n,r,a,i=t.querySelectorAll(".joomla-script-options.new"),s=0,l=0,d=i.length;l<d;l++)n=(r=i[l]).text||r.textContent,(a=JSON.parse(n))&&(e.loadOptions(a),s++),r.className=r.className.replace(" new"," loaded");if(s)return}if(e.optionsStorage){if(o)for(var c in o)o.hasOwnProperty(c)&&(e.optionsStorage[c]=o[c])}else e.optionsStorage=o||{}},e.replaceTokens=function(e){if(/^[0-9A-F]{32}$/i.test(e)){var o,n,r,a=t.getElementsByTagName("input");for(o=0,r=a.length;o<r;o++)"hidden"==(n=a[o]).type&&"1"==n.value&&32==n.name.length&&(n.name=e)}},e.isEmail=function(e){console.warn("Joomla.isEmail() is deprecated, use the formvalidator instead");return/^[\w.!#$%&‚Äô*+\/=?^`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9-]{2,})+$/i.test(e)},e.checkAll=function(e,t){if(!e.form)return!1;t=t||"cb";var o,n,r,a=0;for(o=0,r=e.form.elements.length;o<r;o++)(n=e.form.elements[o]).type==e.type&&0===n.id.indexOf(t)&&(n.checked=e.checked,a+=n.checked?1:0);return e.form.boxchecked&&(e.form.boxchecked.value=a),!0},e.renderMessages=function(o){e.removeMessages();var n,r,a,i,s,l,d,c=t.getElementById("system-message-container");for(n in o)if(o.hasOwnProperty(n)){r=o[n],a=t.createElement("div"),d="notice"===n?"alert-info":"alert-"+n,d="message"===n?"alert-success":d,d="error"===n?"alert-error alert-danger":d,a.className="alert "+d;var u=t.createElement("button");for(u.setAttribute("type","button"),u.setAttribute("data-dismiss","alert"),u.className="close",u.innerHTML="×",a.appendChild(u),void 0!==e.JText._(n)&&((i=t.createElement("h4")).className="alert-heading",i.innerHTML=e.JText._(n),a.appendChild(i)),s=r.length-1;s>=0;s--)(l=t.createElement("div")).innerHTML=r[s],a.appendChild(l);c.appendChild(a)}},e.removeMessages=function(){for(var e=t.getElementById("system-message-container");e.firstChild;)e.removeChild(e.firstChild);e.style.display="none",e.offsetHeight,e.style.display=""},e.ajaxErrorsMessages=function(t,o,n){var r={};if("parsererror"===o){for(var a=t.responseText.trim(),i=[],s=a.length-1;s>=0;s--)i.unshift(["&#",a[s].charCodeAt(),";"].join(""));a=i.join(""),r.error=[e.JText._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",a)]}else"nocontent"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_NO_CONTENT")]:"timeout"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_TIMEOUT")]:"abort"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_CONNECTION_ABORT")]:t.responseJSON&&t.responseJSON.message?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" <em>"+t.responseJSON.message+"</em>"]:t.statusText?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" <em>"+t.statusText+"</em>"]:r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)];return r},e.isChecked=function(e,o){if(void 0===o&&(o=t.getElementById("adminForm")),o.boxchecked.value=e?parseInt(o.boxchecked.value)+1:parseInt(o.boxchecked.value)-1,o.elements["checkall-toggle"]){var n,r,a,i=!0;for(n=0,a=o.elements.length;n<a;n++)if("checkbox"==(r=o.elements[n]).type&&"checkall-toggle"!=r.name&&!r.checked){i=!1;break}o.elements["checkall-toggle"].checked=i}},e.popupWindow=function(e,t,o,n,r){console.warn("Joomla.popupWindow() is deprecated without a replacement!");var a=(screen.width-o)/2,i="height="+n+",width="+o+",top="+(screen.height-n)/2+",left="+a+",scrollbars="+r+",resizable";window.open(e,t,i).window.focus()},e.tableOrdering=function(o,n,r,a){void 0===a&&(a=t.getElementById("adminForm")),a.filter_order.value=o,a.filter_order_Dir.value=n,e.submitform(r,a)},window.writeDynaList=function(e,o,n,r,a,i){console.warn("window.writeDynaList() is deprecated without a replacement!");for(var s=t.createElement("select"),l=e.split(" "),d=0;d<l.length;d++){var c=l[d].split("=");"on"!==c[0].trim().substr(0,2).toLowerCase()&&"href"!==c[0].trim().toLowerCase()&&s.setAttribute(c[0],c[1].replace(/\"/g,""))}var u,m,p,h=n==r;for(u=0;u<o.length;u++)if((p=o[u])[0]==n){m=h?a==p[1]:0===u;var f=t.createElement("option");f.setAttribute("value",p[1]),f.innerText=p[2],m&&f.setAttribute("selected","selected"),s.appendChild(f)}i?i.appendChild(s):t.body.appendChild(s)},window.changeDynaList=function(e,o,n,r,a){console.warn("window.changeDynaList() is deprecated without a replacement!");for(var i,s,l,d,c=t.adminForm[e],u=n==r;c.firstChild;)c.removeChild(c.firstChild);i=0;for(s in o)o.hasOwnProperty(s)&&(l=o[s])[0]==n&&((d=new Option).value=l[1],d.text=l[2],(u&&a==d.value||!u&&0===i)&&(d.selected=!0),c.options[i++]=d);c.length=i},window.radioGetCheckedValue=function(e){if(console.warn("window.radioGetCheckedValue() is deprecated without a replacement!"),!e)return"";var t,o=e.length;if(void 0===o)return e.checked?e.value:"";for(t=0;t<o;t++)if(e[t].checked)return e[t].value;return""},window.getSelectedValue=function(e,o){console.warn("window.getSelectedValue() is deprecated without a replacement!");var n=t[e][o],r=n.selectedIndex;return null!==r&&r>-1?n.options[r].value:null},window.listItemTask=function(t,o){return console.warn("window.listItemTask() is deprecated use Joomla.listItemTask() instead"),e.listItemTask(t,o)},e.listItemTask=function(e,o){var n,r=t.adminForm,a=0,i=r[e];if(!i)return!1;for(;n=r["cb"+a];)n.checked=!1,a++;return i.checked=!0,r.boxchecked.value=1,window.submitform(o),!1},window.submitbutton=function(t){console.warn("window.submitbutton() is deprecated use Joomla.submitbutton() instead"),e.submitbutton(t)},window.submitform=function(t){console.warn("window.submitform() is deprecated use Joomla.submitform() instead"),e.submitform(t)},window.saveorder=function(e,t){console.warn("window.saveorder() is deprecated without a replacement!"),window.checkAll_button(e,t)},window.checkAll_button=function(o,n){var r,a;for(console.warn("window.checkAll_button() is deprecated without a replacement!"),n=n||"saveorder",r=0;r<=o;r++){if(!(a=t.adminForm["cb"+r]))return void alert("You cannot change the order of items, as an item in the list is `Checked Out`");a.checked=!0}e.submitform(n)},e.loadingLayer=function(o,n){if(o=o||"show",n=n||t.body,"load"===o){var r=(e.getOptions("system.paths")||{}).root||"",a=t.createElement("div");a.id="loading-logo",a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.width="100%",a.style.height="100%",a.style.opacity="0.8",a.style.filter="alpha(opacity=80)",a.style.overflow="hidden",a.style["z-index"]="10000",a.style.display="none",a.style["background-color"]="#fff",a.style["background-image"]='url("'+r+'/media/jui/images/ajax-loader.gif")',a.style["background-position"]="center",a.style["background-repeat"]="no-repeat",a.style["background-attachment"]="fixed",n.appendChild(a)}else t.getElementById("loading-logo")||e.loadingLayer("load",n),t.getElementById("loading-logo").style.display="show"==o?"block":"none";return t.getElementById("loading-logo")},e.extend=function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);return e},e.request=function(t){(t=e.extend({url:"",method:"GET",data:null,perform:!0},t)).method=t.data?"POST":t.method.toUpperCase();try{var o=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("MSXML2.XMLHTTP.3.0");if(o.open(t.method,t.url,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("X-Ajax-Engine","Joomla!"),"POST"===t.method){var n=e.getOptions("csrf.token","");n&&o.setRequestHeader("X-CSRF-Token",n),t.headers&&t.headers["Content-Type"]||o.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}if(t.headers)for(var r in t.headers)t.headers.hasOwnProperty(r)&&o.setRequestHeader(r,t.headers[r]);if(o.onreadystatechange=function(){4===o.readyState&&(200===o.status?t.onSuccess&&t.onSuccess.call(window,o.responseText,o):t.onError&&t.onError.call(window,o))},t.perform){if(t.onBefore&&!1===t.onBefore.call(window,o))return o;o.send(t.data)}}catch(e){return window.console&&console.log(e),!1}return o}}(Joomla,document);system/js/switcher-uncompressed.js000064400000004504152177723720013417 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Switcher behavior
 *
 * @package     Joomla
 * @since       1.5
 */
var JSwitcher = function(toggler, element, _options) {
    var $, $togglers, $elements, current, options = {
        onShow : function() {
        },
        onHide : function() {
        },
        cookieName : 'switcher',
        togglerSelector : 'a',
        elementSelector : 'div.tab',
        elementPrefix : 'page-'
    },

    initialize = function(toggler, element, _options) {
        $ = jQuery.noConflict();
        $.extend(options, _options);

        $togglers = $(toggler).find(options.togglerSelector);
        $elements = $(element).find(options.elementSelector);

        if (($togglers.length === 0) || ($togglers.length !== $elements.length)) {
            return;
        }

        hideAll();

        $togglers.each(function() {
            $(this).on('click', function() {
                display($(this).attr('id'));
            });
        })

        var first = document.location.hash.substring(1);
        if (first) {
            display(first);
        } else if ($togglers.length) {
            display($togglers.first().attr('id'));
        }
    },

    display = function(togglerId) {
        var $toggler = $('#' + togglerId), $element = $('#' + options.elementPrefix + togglerId);

        if ($toggler.length === 0 || $element.length === 0 || togglerId === current) {
            return this;
        }

        if (current) {
            hide($('#' + options.elementPrefix + current));
            $('#' + current).removeClass('active');
        }

        show($element);
        $toggler.addClass('active');
        current = togglerId;
        document.location.hash = current;
        $(window).scrollTop(0);
    },

    hide = function(element) {
        options.onShow(element);
        $(element).hide();
    },

    hideAll = function() {
        $elements.hide();
        $togglers.removeClass('active');
    },

    show = function(element) {
        options.onHide(element);
        $(element).show();
    };

    initialize(toggler, element, _options);

    return{
        display: display,
        hide: hide,
        hideAll: hideAll,
        show: show
    };
};
system/js/core-uncompressed.js000064400000066432152177723720012527 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

// Only define the Joomla namespace if not defined.
Joomla = window.Joomla || {};

// Only define editors if not defined
Joomla.editors = Joomla.editors || {};

// An object to hold each editor instance on page, only define if not defined.
Joomla.editors.instances = Joomla.editors.instances || {
	/**
	 * *****************************************************************
	 * All Editors MUST register, per instance, the following callbacks:
	 * *****************************************************************
	 *
	 * getValue         Type  Function  Should return the complete data from the editor
	 *                                  Example: function () { return this.element.value; }
	 * setValue         Type  Function  Should replace the complete data of the editor
	 *                                  Example: function (text) { return this.element.value = text; }
	 * getSelection     Type  Function  Should return the selected text from the editor
	 *                                  Example: function () { return this.selectedText; }
	 * replaceSelection Type  Function  Should replace the selected text of the editor
	 *                                  If nothing selected, will insert the data at the cursor
	 *                                  Example: function (text) { return insertAtCursor(this.element, text); }
	 *
	 * USAGE (assuming that jform_articletext is the textarea id)
	 * {
	 *   To get the current editor value:
	 *      Joomla.editors.instances['jform_articletext'].getValue();
	 *   To set the current editor value:
	 *      Joomla.editors.instances['jform_articletext'].setValue('Joomla! rocks');
	 *   To replace(selection) or insert a value at  the current editor cursor:
	 *      replaceSelection: Joomla.editors.instances['jform_articletext'].replaceSelection('Joomla! rocks')
	 * }
	 *
	 * *********************************************************
	 * ANY INTERACTION WITH THE EDITORS SHOULD USE THE ABOVE API
	 * *********************************************************
	 *
	 * jInsertEditorText() @deprecated 4.0
	 */
};

(function( Joomla, document ) {
	"use strict";

	/**
	 * Generic submit form
	 *
	 * @param  {String}  task      The given task
	 * @param  {node}    form      The form element
	 * @param  {bool}    validate  The form element
	 *
	 * @returns  {void}
	 */
	Joomla.submitform = function(task, form, validate) {

		if (!form) {
			form = document.getElementById('adminForm');
		}

		if (task) {
			form.task.value = task;
		}

		// Toggle HTML5 validation
		form.noValidate = !validate;

		if (!validate) {
			form.setAttribute('novalidate', '');
		} else if ( form.hasAttribute('novalidate') ) {
			form.removeAttribute('novalidate');
		}

		// Submit the form.
		// Create the input type="submit"
		var button = document.createElement('input');
		button.style.display = 'none';
		button.type = 'submit';

		// Append it and click it
		form.appendChild(button).click();

		// If "submit" was prevented, make sure we don't get a build up of buttons
		form.removeChild(button);
	};

	/**
	 * Default function. Can be overriden by the component to add custom logic
	 *
	 * @param  {bool}  task  The given task
	 *
	 * @returns {void}
	 */
	Joomla.submitbutton = function( pressbutton ) {
		Joomla.submitform( pressbutton );
	};

	/**
	 * Custom behavior for JavaScript I18N
	 *
	 * @type {{}}
	 *
	 * Allows you to call Joomla.Text._() to get a translated JavaScript string pushed in with Text::script() in Joomla.
	 */
	Joomla.Text = {
		strings:   {},

		/**
		 * Translates a string into the current language.
		 *
		 * @param {String} key   The string to translate
		 * @param {String} def   Default string
		 *
		 * @returns {String}
		 */
		'_': function( key, def ) {

			// Check for new strings in the optionsStorage, and load them
			var newStrings = Joomla.getOptions('joomla.jtext');
			if ( newStrings ) {
				this.load(newStrings);

				// Clean up the optionsStorage from useless data
				Joomla.loadOptions({'joomla.jtext': null});
			}

			def = def === undefined ? '' : def;
			key = key.toUpperCase();

			return this.strings[ key ] !== undefined ? this.strings[ key ] : def;
		},

		/**
		 * Load new strings in to Joomla.JText
		 *
		 * @param {Object} object  Object with new strings
		 * @returns {Joomla.JText}
		 */
		load: function( object ) {
			for ( var key in object ) {
				if (!object.hasOwnProperty(key)) continue;
				this.strings[ key.toUpperCase() ] = object[ key ];
			}

			return this;
		}
	};

	/**
	 * Proxy old Joomla.JText to Joomla.Text
	 *
	 * @deprecated 5.0 Use Joomla.Text
	 */
	Joomla.JText = Joomla.Text;

	/**
	 * Joomla options storage
	 *
	 * @type {{}}
	 *
	 * @since 3.7.0
	 */
	Joomla.optionsStorage = Joomla.optionsStorage || null;

	/**
	 * Get script(s) options
	 *
	 * @param  {String}  key  Name in Storage
	 * @param  {mixed}   def  Default value if nothing found
	 *
	 * @return {mixed}
	 *
	 * @since 3.7.0
	 */
	Joomla.getOptions = function( key, def ) {
		// Load options if they not exists
		if (!Joomla.optionsStorage) {
			Joomla.loadOptions();
		}

		return Joomla.optionsStorage[key] !== undefined ? Joomla.optionsStorage[key] : def;
	};

	/**
	 * Load new options from given options object or from Element
	 *
	 * @param  {Object|undefined}  options  The options object to load. Eg {"com_foobar" : {"option1": 1, "option2": 2}}
	 *
	 * @since 3.7.0
	 */
	Joomla.loadOptions = function( options ) {
		// Load form the script container
		if (!options) {
			var elements = document.querySelectorAll('.joomla-script-options.new'),
			    str, element, option, counter = 0;

			for (var i = 0, l = elements.length; i < l; i++) {
				element = elements[i];
				str     = element.text || element.textContent;
				option  = JSON.parse(str);

				if (option) {
					Joomla.loadOptions(option);
					counter++;
				}

				element.className = element.className.replace(' new', ' loaded');
			}

			if (counter) {
				return;
			}
		}

		// Initial loading
		if (!Joomla.optionsStorage) {
			Joomla.optionsStorage = options || {};
		}
		// Merge with existing
		else if ( options ) {
			for (var p in options) {
				if (options.hasOwnProperty(p)) {
					Joomla.optionsStorage[p] = options[p];
				}
			}
		}
	};

	/**
	 * Method to replace all request tokens on the page with a new one.
	 *
	 * @param {String}  newToken  The token
	 *
	 * Used in Joomla Installation
	 */
	Joomla.replaceTokens = function( newToken ) {
		if (!/^[0-9A-F]{32}$/i.test(newToken)) { return; }

		var els = document.getElementsByTagName( 'input' ),
		    i, el, n;

		for ( i = 0, n = els.length; i < n; i++ ) {
			el = els[i];

			if ( el.type == 'hidden' && el.value == '1' && el.name.length == 32 ) {
				el.name = newToken;
			}
		}
	};

	/**
	 * USED IN: administrator/components/com_banners/views/client/tmpl/default.php
	 * Actually, probably not used anywhere. Can we deprecate in favor of <input type="email">?
	 *
	 * Verifies if the string is in a valid email format
	 *
	 * @param  {string}  text  The text for validation
	 *
	 * @return {boolean}
	 *
	 * @deprecated  4.0 No replacement. Use formvalidator
	 */
	Joomla.isEmail = function( text ) {
		console.warn('Joomla.isEmail() is deprecated, use the formvalidator instead');

		var regex = /^[\w.!#$%&’*+\/=?^`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9-]{2,})+$/i;
		return regex.test( text );
	};

	/**
	 * USED IN: all list forms.
	 *
	 * Toggles the check state of a group of boxes
	 *
	 * Checkboxes must have an id attribute in the form cb0, cb1...
	 *
	 * @param   {mixed}   checkbox  The number of box to 'check', for a checkbox element
	 * @param   {string}  stub      An alternative field name
	 *
	 * @return  {boolean}
	 */
	Joomla.checkAll = function( checkbox, stub ) {
		if (!checkbox.form) return false;

		stub = stub ? stub : 'cb';

		var c = 0,
		    i, e, n;

		for ( i = 0, n = checkbox.form.elements.length; i < n; i++ ) {
			e = checkbox.form.elements[ i ];

			if ( e.type == checkbox.type && e.id.indexOf( stub ) === 0 ) {
				e.checked = checkbox.checked;
				c += e.checked ? 1 : 0;
			}
		}

		if ( checkbox.form.boxchecked ) {
			checkbox.form.boxchecked.value = c;
		}

		return true;
	};

	/**
	 * Render messages send via JSON
	 * Used by some javascripts such as validate.js
	 *
	 * @param   {object}  messages    JavaScript object containing the messages to render. Example:
	 *                              var messages = {
	 *                                  "message": ["Message one", "Message two"],
	 *                                  "error": ["Error one", "Error two"]
	 *                              };
	 * @return  {void}
	 */
	Joomla.renderMessages = function( messages ) {
		Joomla.removeMessages();

		var messageContainer = document.getElementById( 'system-message-container' ),
		    type, typeMessages, messagesBox, title, titleWrapper, i, messageWrapper, alertClass;

		for ( type in messages ) {
			if ( !messages.hasOwnProperty( type ) ) { continue; }
			// Array of messages of this type
			typeMessages = messages[ type ];

			// Create the alert box
			messagesBox = document.createElement( 'div' );

			// Message class
			alertClass = (type === 'notice') ? 'alert-info' : 'alert-' + type;
			alertClass = (type === 'message') ? 'alert-success' : alertClass;
			alertClass = (type === 'error') ? 'alert-error alert-danger' : alertClass;

			messagesBox.className = 'alert ' + alertClass;

			// Close button
			var buttonWrapper = document.createElement( 'button' );
			buttonWrapper.setAttribute('type', 'button');
			buttonWrapper.setAttribute('data-dismiss', 'alert');
			buttonWrapper.className = 'close';
			buttonWrapper.innerHTML = '×';
			messagesBox.appendChild( buttonWrapper );

			// Title
			title = Joomla.JText._( type );

			// Skip titles with untranslated strings
			if ( typeof title != 'undefined' ) {
				titleWrapper = document.createElement( 'h4' );
				titleWrapper.className = 'alert-heading';
				titleWrapper.innerHTML = Joomla.JText._( type );
				messagesBox.appendChild( titleWrapper );
			}

			// Add messages to the message box
			for ( i = typeMessages.length - 1; i >= 0; i-- ) {
				messageWrapper = document.createElement( 'div' );
				messageWrapper.innerHTML = typeMessages[ i ];
				messagesBox.appendChild( messageWrapper );
			}

			messageContainer.appendChild( messagesBox );
		}
	};

	/**
	 * Remove messages
	 *
	 * @return  {void}
	 */
	Joomla.removeMessages = function() {
		var messageContainer = document.getElementById( 'system-message-container' );

		// Empty container with a while for Chrome performance issues
		while ( messageContainer.firstChild ) messageContainer.removeChild( messageContainer.firstChild );

		// Fix Chrome bug not updating element height
		messageContainer.style.display = 'none';
		messageContainer.offsetHeight;
		messageContainer.style.display = '';
	};

	/**
	 * Treat AJAX errors.
	 * Used by some javascripts such as sendtestmail.js and permissions.js
	 *
	 * @param   {object}  xhr         XHR object.
	 * @param   {string}  textStatus  Type of error that occurred.
	 * @param   {string}  error       Textual portion of the HTTP status.
	 *
	 * @return  {object}  JavaScript object containing the system error message.
	 *
	 * @since  3.6.0
	 */
	Joomla.ajaxErrorsMessages = function( xhr, textStatus, error ) {
		var msg = {};

		// For jQuery jqXHR
		if (textStatus === 'parsererror')
		{
			// Html entity encode.
			var encodedJson = xhr.responseText.trim();

			var buf = [];
			for (var i = encodedJson.length-1; i >= 0; i--) {
				buf.unshift( [ '&#', encodedJson[i].charCodeAt(), ';' ].join('') );
			}

			encodedJson = buf.join('');

			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_PARSE').replace('%s', encodedJson) ];
		}
		else if (textStatus === 'nocontent')
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_NO_CONTENT') ];
		}
		else if (textStatus === 'timeout')
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_TIMEOUT') ];
		}
		else if (textStatus === 'abort')
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_CONNECTION_ABORT') ];
		}
		// For vannila XHR
		else if (xhr.responseJSON && xhr.responseJSON.message)
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_OTHER').replace('%s', xhr.status) + ' <em>' + xhr.responseJSON.message + '</em>' ];
		}
		else if (xhr.statusText)
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_OTHER').replace('%s', xhr.status) + ' <em>' + xhr.statusText + '</em>' ];
		}
		else
		{
			msg.error = [ Joomla.JText._('JLIB_JS_AJAX_ERROR_OTHER').replace('%s', xhr.status) ];
		}

		return msg;
	};

	/**
	 * USED IN: administrator/components/com_cache/views/cache/tmpl/default.php
	 * administrator/components/com_installer/views/discover/tmpl/default_item.php
	 * administrator/components/com_installer/views/update/tmpl/default_item.php
	 * administrator/components/com_languages/helpers/html/languages.php
	 * libraries/joomla/html/html/grid.php
	 *
	 * @param  {boolean}  isitchecked  Flag for checked
	 * @param  {node}     form         The form
	 *
	 * @return  {void}
	 */
	Joomla.isChecked = function( isitchecked, form ) {
		if ( typeof form  === 'undefined' ) {
			form = document.getElementById( 'adminForm' );
		}

		form.boxchecked.value = isitchecked ? parseInt(form.boxchecked.value) + 1 : parseInt(form.boxchecked.value) - 1;

		// If we don't have a checkall-toggle, done.
		if ( !form.elements[ 'checkall-toggle' ] ) return;

		// Toggle main toggle checkbox depending on checkbox selection
		var c = true, i, e, n;

		for ( i = 0, n = form.elements.length; i < n; i++ ) {
			e = form.elements[ i ];

			if ( e.type == 'checkbox' && e.name != 'checkall-toggle' && !e.checked ) {
				c = false;
				break;
			}
		}

		form.elements[ 'checkall-toggle' ].checked = c;
	};

	/**
	 * USED IN: libraries/joomla/html/toolbar/button/help.php
	 *
	 * Pops up a new window in the middle of the screen
	 *
	 * @deprecated  4.0 No replacement
	 */
	Joomla.popupWindow = function( mypage, myname, w, h, scroll ) {
		console.warn('Joomla.popupWindow() is deprecated without a replacement!');

		var winl = ( screen.width - w ) / 2,
		    wint = ( screen.height - h ) / 2,
		    winprops = 'height=' + h +
			    ',width=' + w +
			    ',top=' + wint +
			    ',left=' + winl +
			    ',scrollbars=' + scroll +
			    ',resizable';

		window.open( mypage, myname, winprops )
			.window.focus();
	};

	/**
	 * USED IN: libraries/joomla/html/html/grid.php
	 * In other words, on any reorderable table
	 *
	 * @param  {string}  order  The order value
	 * @param  {string}  dir    The direction
	 * @param  {string}  task   The task
	 * @param  {node}    form   The form
	 *
	 * return  {void}
	 */
	Joomla.tableOrdering = function( order, dir, task, form ) {
		if ( typeof form  === 'undefined' ) {
			form = document.getElementById( 'adminForm' );
		}

		form.filter_order.value = order;
		form.filter_order_Dir.value = dir;
		Joomla.submitform( task, form );
	};

	/**
	 * USED IN: administrator/components/com_modules/views/module/tmpl/default.php
	 *
	 * Writes a dynamically generated list
	 *
	 * @param string
	 *          The parameters to insert into the <select> tag
	 * @param array
	 *          A javascript array of list options in the form [key,value,text]
	 * @param string
	 *          The key to display for the initial state of the list
	 * @param string
	 *          The original key that was selected
	 * @param string
	 *          The original item value that was selected
	 * @param string
	 *          The elem where the list will be written
	 *
	 * @deprecated  4.0 No replacement
	 */
	window.writeDynaList = function ( selectParams, source, key, orig_key, orig_val, element ) {
		console.warn('window.writeDynaList() is deprecated without a replacement!');

		var select = document.createElement('select');
		var params = selectParams.split(' ');

		for (var l = 0; l < params.length; l++) {
			var par = params[l].split('=');

			// make sure the attribute / content can not be used for scripting
			if (par[0].trim().substr(0, 2).toLowerCase() === "on"
				|| par[0].trim().toLowerCase() === "href") {
				continue;
			}

			select.setAttribute(par[0], par[1].replace(/\"/g, ''));
		}

		var hasSelection = key == orig_key, i, selected, item;

		for (i = 0; i < source.length; i++) {
			item = source[i];

			if (item[0] != key) { continue; }

			selected = hasSelection ? orig_val == item[1] : i === 0;

			var el = document.createElement('option');
			el.setAttribute('value', item[1]);
			el.innerText = item[2];

			if (selected) {
				el.setAttribute('selected', 'selected');
			}

			select.appendChild(el);
		}

		if (element) {
			element.appendChild(select);
		} else {
			document.body.appendChild(select);
		}
	};

	/**
	 * USED IN: administrator/components/com_content/views/article/view.html.php
	 * actually, probably not used anywhere.
	 *
	 * Changes a dynamically generated list
	 *
	 * @param string
	 *          The name of the list to change
	 * @param array
	 *          A javascript array of list options in the form [key,value,text]
	 * @param string
	 *          The key to display
	 * @param string
	 *          The original key that was selected
	 * @param string
	 *          The original item value that was selected
	 *
	 * @deprecated  4.0 No replacement
	 */
	window.changeDynaList = function ( listname, source, key, orig_key, orig_val ) {
		console.warn('window.changeDynaList() is deprecated without a replacement!');

		var list = document.adminForm[ listname ],
		    hasSelection = key == orig_key,
		    i, x, item, opt;

		// empty the list
		while ( list.firstChild ) list.removeChild( list.firstChild );

		i = 0;

		for ( x in source ) {
			if (!source.hasOwnProperty(x)) { continue; }

			item = source[x];

			if ( item[ 0 ] != key ) { continue; }

			opt = new Option();
			opt.value = item[ 1 ];
			opt.text = item[ 2 ];

			if ( ( hasSelection && orig_val == opt.value ) || (!hasSelection && i === 0) ) {
				opt.selected = true;
			}

			list.options[ i++ ] = opt;
		}

		list.length = i;
	};

	/**
	 * USED IN: administrator/components/com_menus/views/menus/tmpl/default.php
	 * Probably not used at all
	 *
	 * @param radioObj
	 * @return
	 *
	 * @deprecated  4.0 No replacement
	 */
	// return the value of the radio button that is checked
	// return an empty string if none are checked, or
	// there are no radio buttons
	window.radioGetCheckedValue = function ( radioObj ) {
		console.warn('window.radioGetCheckedValue() is deprecated without a replacement!');

		if ( !radioObj ) { return ''; }

		var n = radioObj.length,
		    i;

		if ( n === undefined ) {
			return radioObj.checked ? radioObj.value : '';
		}

		for ( i = 0; i < n; i++ ) {
			if ( radioObj[ i ].checked ) {
				return radioObj[ i ].value;
			}
		}

		return '';
	};

	/**
	 * USED IN: administrator/components/com_users/views/mail/tmpl/default.php
	 * Let's get rid of this and kill it
	 *
	 * @param frmName
	 * @param srcListName
	 * @return
	 *
	 * @deprecated  4.0 No replacement
	 */
	window.getSelectedValue = function ( frmName, srcListName ) {
		console.warn('window.getSelectedValue() is deprecated without a replacement!');

		var srcList = document[ frmName ][ srcListName ],
		    i = srcList.selectedIndex;

		if ( i !== null && i > -1 ) {
			return srcList.options[ i ].value;
		} else {
			return null;
		}
	};

	/**
	 * USED IN: all over :)
	 *
	 * @param id
	 * @param task
	 * @return
	 *
	 * @deprecated 4.0  Use Joomla.listItemTask() instead
	 */
	window.listItemTask = function ( id, task ) {
		console.warn('window.listItemTask() is deprecated use Joomla.listItemTask() instead');

		return Joomla.listItemTask( id, task );
	};

	/**
	 * USED IN: all over :)
	 *
	 * @param  {string}  id    The id
	 * @param  {string}  task  The task
	 *
	 * @return {boolean}
	 */
	Joomla.listItemTask = function ( id, task ) {
		var f = document.adminForm,
		    i = 0, cbx,
		    cb = f[ id ];

		if ( !cb ) return false;

		while ( true ) {
			cbx = f[ 'cb' + i ];

			if ( !cbx ) break;

			cbx.checked = false;

			i++;
		}

		cb.checked = true;
		f.boxchecked.value = 1;
		window.submitform( task );

		return false;
	};

	/**
	 * Default function. Usually would be overriden by the component
	 *
	 * @deprecated 4.0  Use Joomla.submitbutton() instead.
	 */
	window.submitbutton = function ( pressbutton ) {
		console.warn('window.submitbutton() is deprecated use Joomla.submitbutton() instead');

		Joomla.submitbutton( pressbutton );
	};

	/**
	 * Submit the admin form
	 *
	 * @deprecated 4.0  Use Joomla.submitform() instead.
	 */
	window.submitform = function ( pressbutton ) {
		console.warn('window.submitform() is deprecated use Joomla.submitform() instead');

		Joomla.submitform(pressbutton);
	};

	// needed for Table Column ordering
	/**
	 * USED IN: libraries/joomla/html/html/grid.php
	 * There's a better way to do this now, can we try to kill it?
	 *
	 * @deprecated 4.0  No replacement
	 */
	window.saveorder = function ( n, task ) {
		console.warn('window.saveorder() is deprecated without a replacement!');

		window.checkAll_button( n, task );
	};

	/**
	 * Checks all the boxes unless one is missing then it assumes it's checked out.
	 * Weird. Probably only used by ^saveorder
	 *
	 * @param   integer  n     The total number of checkboxes expected
	 * @param   string   task  The task to perform
	 *
	 * @return  void
	 *
	 * @deprecated 4.0  No replacement
	 */
	window.checkAll_button = function ( n, task ) {
		console.warn('window.checkAll_button() is deprecated without a replacement!');

		task = task ? task : 'saveorder';

		var j, box;

		for ( j = 0; j <= n; j++ ) {
			box = document.adminForm[ 'cb' + j ];

			if ( box ) {
				box.checked = true;
			} else {
				alert( "You cannot change the order of items, as an item in the list is `Checked Out`" );
				return;
			}
		}

		Joomla.submitform( task );
	};

	/**
	 * Add Joomla! loading image layer.
	 *
	 * Used in: /administrator/components/com_installer/views/languages/tmpl/default.php
	 *          /installation/template/js/installation.js
	 *
	 * @param   {String}       task           The task to do [load, show, hide] (defaults to show).
	 * @param   {HTMLElement}  parentElement  The HTML element where we are appending the layer (defaults to body).
	 *
	 * @return  {HTMLElement}  The HTML loading layer element.
	 *
	 * @since  3.6.0
	 *
	 * @deprecated  4.0 No direct replacement.
	 *              4.0 will introduce a web component for the loading spinner, therefore the spinner will need to
	 *              explicitly be loaded in all relevant pages.
	 */
	Joomla.loadingLayer = function(task, parentElement) {
		// Set default values.
		task          = task || 'show';
		parentElement = parentElement || document.body;

		// Create the loading layer (hidden by default).
		if (task === 'load')
		{
			// Gets the site base path
			var systemPaths = Joomla.getOptions('system.paths') || {},
			    basePath    = systemPaths.root || '';

			var loadingDiv = document.createElement('div');

			loadingDiv.id = 'loading-logo';

			// The loading layer CSS styles are JS hardcoded so they can be used without adding CSS.

			// Loading layer style and positioning.
			loadingDiv.style['position']              = 'fixed';
			loadingDiv.style['top']                   = '0';
			loadingDiv.style['left']                  = '0';
			loadingDiv.style['width']                 = '100%';
			loadingDiv.style['height']                = '100%';
			loadingDiv.style['opacity']               = '0.8';
			loadingDiv.style['filter']                = 'alpha(opacity=80)';
			loadingDiv.style['overflow']              = 'hidden';
			loadingDiv.style['z-index']               = '10000';
			loadingDiv.style['display']               = 'none';
			loadingDiv.style['background-color']      = '#fff';

			// Loading logo positioning.
			loadingDiv.style['background-image']      = 'url("' + basePath + '/media/jui/images/ajax-loader.gif")';
			loadingDiv.style['background-position']   = 'center';
			loadingDiv.style['background-repeat']     = 'no-repeat';
			loadingDiv.style['background-attachment'] = 'fixed';

			parentElement.appendChild(loadingDiv);
		}
		// Show or hide the layer.
		else
		{
			if (!document.getElementById('loading-logo'))
			{
				Joomla.loadingLayer('load', parentElement);
			}

			document.getElementById('loading-logo').style['display'] = (task == 'show') ? 'block' : 'none';
		}

		return document.getElementById('loading-logo');
	};

	/**
	 * Method to Extend Objects
	 *
	 * @param  {Object}  destination
	 * @param  {Object}  source
	 *
	 * @return Object
	 */
	Joomla.extend = function (destination, source) {
		for (var p in source) {
			if (source.hasOwnProperty(p)) {
				destination[p] = source[p];
			}
		}

		return destination;
	};

	/**
	 * Method to perform AJAX request
	 *
	 * @param {Object} options   Request options:
	 * {
	 *    url:       'index.php',  // Request URL
	 *    method:    'GET',        // Request method GET (default), POST
	 *    data:      null,         // Data to be sent, see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send
	 *    perform:   true,         // Perform the request immediately, or return XMLHttpRequest instance and perform it later
	 *    headers:   null,         // Object of custom headers, eg {'X-Foo': 'Bar', 'X-Bar': 'Foo'}
	 *
	 *    onBefore:  function(xhr){}            // Callback on before the request
	 *    onSuccess: function(response, xhr){}, // Callback on the request success
	 *    onError:   function(xhr){},           // Callback on the request error
	 * }
	 *
	 * @return XMLHttpRequest|Boolean
	 *
	 * @example
	 *
	 * 	Joomla.request({
	 *		url: 'index.php?option=com_example&view=example',
	 *		onSuccess: function(response, xhr){
	 *			console.log(response);
	 *		}
	 * 	})
	 *
	 * @see    https://developer.mozilla.org/docs/Web/API/XMLHttpRequest
	 */
	Joomla.request = function (options) {

		// Prepare the options
		options = Joomla.extend({
			url:    '',
			method: 'GET',
			data:    null,
			perform: true
		}, options);

		// Use POST for send the data
		options.method = options.data ? 'POST' : options.method.toUpperCase();

		// Set up XMLHttpRequest instance
		try{
			var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('MSXML2.XMLHTTP.3.0');

			xhr.open(options.method, options.url, true);

			// Set the headers
			xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
			xhr.setRequestHeader('X-Ajax-Engine', 'Joomla!');

			if (options.method === 'POST') {
				var token = Joomla.getOptions('csrf.token', '');

				if (token) {
					xhr.setRequestHeader('X-CSRF-Token', token);
				}

				if (!options.headers || !options.headers['Content-Type']) {
					xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				}
			}

			// Custom headers
			if (options.headers){
				for (var p in options.headers) {
					if (options.headers.hasOwnProperty(p)) {
						xhr.setRequestHeader(p, options.headers[p]);
					}
				}
			}

			xhr.onreadystatechange = function () {
				// Request not finished
				if (xhr.readyState !== 4) return;

				// Request finished and response is ready
				if (xhr.status === 200) {
					if(options.onSuccess) {
						options.onSuccess.call(window, xhr.responseText, xhr);
					}
				} else if(options.onError) {
					options.onError.call(window, xhr);
				}
			};

			// Do request
			if (options.perform) {
				if (options.onBefore && options.onBefore.call(window, xhr) === false) {
					// Request interrupted
					return xhr;
				}

				xhr.send(options.data);
			}

		} catch (error) {
			window.console ? console.log(error) : null;
			return false;
		}

		return xhr;
	};

}( Joomla, document ));
system/js/permissions-uncompressed.js000064400000006650152177723720014146 0ustar00/**
 * Function to send Permissions via Ajax to Com-Config Application Controller
 */
function sendPermissions(event) {
	// set the icon while storing the values
	var icon = document.getElementById('icon_' + this.id);
	icon.removeAttribute('class');
	icon.setAttribute('style', 'background: url(../media/system/images/modal/spinner.gif); display: inline-block; width: 16px; height: 16px');

	//get values and prepare GET-Parameter
	var asset = 'not';
	var component = getUrlParam('component');
	var extension = getUrlParam('extension');
	var option    = getUrlParam('option');
	var view      = getUrlParam('view');
	var title     = component;
	var value     = this.value;
	var context   = '';

	if (document.getElementById('jform_context')){
		context = document.getElementById('jform_context').value;
		context = context.split('.')[0];
	}

	if (option == 'com_config' && component == false && extension == false)
	{
		asset = 'root.1';
	}
	else if (extension == false && view == 'component'){
		asset = component;
	}
	else if (context){
		if (view == 'group') {
			asset = context + '.fieldgroup.' + getUrlParam('id');
		}
		else {
			asset = context + '.field.' + getUrlParam('id');
		}
		title = document.getElementById('jform_title').value;
	}
	else if (extension != false && view != false){
		asset = extension + '.' + view + '.' + getUrlParam('id');
		title = document.getElementById('jform_title').value;
	}
	else if (extension == false && view != false){
		asset = option + '.' + view + '.' + getUrlParam('id');
		title = document.getElementById('jform_title').value;
	}

	var id = this.id.replace('jform_rules_', '');
	var lastUnderscoreIndex = id.lastIndexOf('_');

	var permission_data = {
		comp   : asset,
		action : id.substring(0, lastUnderscoreIndex),
		rule   : id.substring(lastUnderscoreIndex + 1),
		value  : value,
		title  : title
	};

	// Remove js messages, if they exist.
	Joomla.removeMessages();

	// doing ajax request
	jQuery.ajax({
		method: "POST",
		url: document.getElementById('permissions-sliders').getAttribute('data-ajaxuri'),
		data: permission_data,
		datatype: 'json'
	})
	.fail(function (jqXHR, textStatus, error) {
		// Remove the spinning icon.
		icon.removeAttribute('style');

		Joomla.renderMessages(Joomla.ajaxErrorsMessages(jqXHR, textStatus, error));

		window.scrollTo(0, 0);

		icon.setAttribute('class', 'icon-cancel');
	})
	.done(function (response) {
		// Remove the spinning icon.
		icon.removeAttribute('style');

		if (response.data)
		{
			// Check if everything is OK
			if (response.data.result == true)
			{
				icon.setAttribute('class', 'icon-save');

				jQuery(event.target).parents().next("td").find("span")
					.removeClass()
					.addClass(response['data']['class'])
					.html(response.data.text);
			}
		}

		// Render messages, if any. There are only message in case of errors.
		if (typeof response.messages == 'object' && response.messages !== null)
		{
			Joomla.renderMessages(response.messages);

			if (response.data && response.data.result == true)
			{
				icon.setAttribute('class', 'icon-save');
			}
			else
			{
				icon.setAttribute('class', 'icon-cancel');
			}

			window.scrollTo(0, 0);
		}
	});
}

/**
 * Function to get parameters out of the url
 */
function getUrlParam(variable) {
	var query = window.location.search.substring(1);
	var vars = query.split('&');
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split('=');
		if (pair[0] == variable)
		{
			return pair[1];
		}
	}
	return false;
}
system/js/highlighter-uncompressed.js000064400000007206152177723720014067 0ustar00/**
 * @package     Joomla.JavaScript
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

// Only define the Joomla namespace if not defined.
if (typeof(Joomla) === 'undefined') {
    var Joomla = {};
}

Joomla.Highlighter = function(_options){
    var $, words, options = {
        autoUnhighlight: true,
        caseSensitive: false,
        startElement: false,
        endElement: false,
        elements: [],
        className: 'highlight',
        onlyWords: true,
        tag: 'span'
    },

    highlight = function (words) {
        if (words.constructor === String) {
            words = [words];
        }
        if (options.autoUnhighlight) {
            unhighlight(words);
        }
        var pattern = options.onlyWords ? '\b' + pattern + '\b' : '(' + words.join('\\b|\\b') + ')',
        regex = new RegExp(pattern, options.caseSensitive ? '' : 'i');
        options.elements.map(function(el){
            recurse(el, regex, options.className);
        });
        return this;
    },

    unhighlight = function (words) {
        if (words.constructor === String) {
            words = [words];
        }

        var $elements, tn;
        words.map(function(word){
            word = (options.caseSensitive ? word : word.toUpperCase());
            if (words[word]) {
                $elements = $(words[word]);
                $elements.removeClass();
                $elements.each(function (index, el) {
                    tn = document.createTextNode($(el).text());
                    el.parentNode.replaceChild(tn, el);
                });
            }
        });
        return this;
    },

    recurse = function (node, regex, klass) {
        if (node.nodeType === 3) {
            var match = node.nodeValue.match(regex), highlight, $highlight, wordNode, wordClone, comparer, i;
            if (match) {
                highlight = document.createElement(options.tag);
                $highlight = $(highlight);
                $highlight.addClass(klass);
                wordNode = node.splitText(match.index);
                wordNode.splitText(match[0].length);
                wordClone = wordNode.cloneNode(true);
                $highlight.append(wordClone);
                $(wordNode).replaceWith(highlight)
                $highlight.attr('rel', $highlight.text());
                comparer = $highlight.text()
                if (!options.caseSensitive) {
                    comparer = $highlight.text().toUpperCase();
                }
                if (!words[comparer]) {
                    words[comparer] = [];
                }
                words[comparer].push(highlight);
                return 1;
            }
        } else if ((node.nodeType === 1 && node.childNodes) && !/(script|style|textarea|iframe)/i.test(node.tagName) && !(node.tagName === options.tag.toUpperCase() && node.className === klass)) {
            for (i = 0; i < node.childNodes.length; i++) {
                i += recurse(node.childNodes[i], regex, klass);
            }
        }
        return 0;
    },

    getElements = function ($start, $end) {
        var $next = $start.next();
        if ($next.attr('id') !== $end.attr('id')) {
            options.elements.push($next.get(0));
            getElements($next, $end);
        }
    },

    initialize = function(_options) {
        $ = jQuery.noConflict();
        $.extend(options, _options);
        getElements($(options.startElement), $(options.endElement));
        words = [];
    };

    initialize(_options);

    return {
        highlight: highlight,
        unhighlight : unhighlight
    };
}
system/js/combobox.js000064400000006751152177723720010700 0ustar00(function(e,t,n){var i=function(n,i){var s={},o=function(t,n){s.$elem=e(n);s.options=e.extend({},e.fn.ComboTransform.options,t);s.$input=e(n).find('input[type="text"]');s.$dropBtnDiv=e(n).find("div.btn-group");s.$dropBtn=s.$dropBtnDiv.find('[type="button"]');s.$dropDown=e(n).find("ul.dropdown-menu"),s.$dropDownOptions=s.$dropDown.find("li a");s.$dropDown.isEmpty=false;s.$dropBtn.isClicked=false;u();a()},u=function(){var e=s.$elem.width(),t=s.$dropBtnDiv.width(),n=e-3,r=-e+t,i=s.$dropDown.width();i<n?s.$dropDown.width(n+"px"):null;s.$dropDown.css("left",r+"px");s.$dropDown.css("max-height","150px");s.$dropDown.css("overflow-y","scroll");s.$dropDown.css("left",r+"px")},a=function(){s.$input.bind("focus",f);s.$input.bind("blur",l);if(s.options.updateList){s.$input.bind("keyup",p)}s.$dropDown.on("mouseenter",function(){d("clear");s.$input.unbind("blur",l)});s.$dropDown.on("mouseleave",function(e){s.$input.bind("blur",l)});s.$dropBtn.on("click",c);s.$dropDown.find("li").on("click",h);s.$dropDown.find("li a").on("mouseenter",function(){e(this).addClass("hover");s.$currHovered=e(this)});s.$dropDown.find("li a").on("mouseleave",function(){e(this).removeClass("hover")})},f=function(){if(!s.$dropDown.isEmpty){var e=s.$dropDown.height(),t=s.$input[0].clientHeight,n=s.$input.height(),r=-(n+e);s.$dropDown.css("top","100%");s.$elem.addClass("nav-hover");s.$dropBtnDiv.addClass("open");if(!v(s.$dropDown)){s.$dropDown.css("top",r+"px")}s.$input.bind("keypress keydown keyup",g)}},l=function(){s.$elem.removeClass("nav-hover");s.$dropBtnDiv.removeClass("open");if(s.$dropBtn.isClicked){s.$dropBtn.isClicked=false;s.$dropDown.isEmpty=true}d("clear");s.$input.unbind("keypress keydown keyup",g)},c=function(){var e=s.$dropDownOptions;e.show();s.$dropBtn.isClicked=s.$dropDown.isEmpty;s.$dropDown.isEmpty=false;s.$input.focus()},h=function(t){var n=e(t.target).text();s.$input.val(n);l();return false},p=function(t){var n=t&&(t.keycode||t.which);n=t.ctrlKey||t.altKey?-1:n;if(n>47&&n<59||n>62&&n<127||n==32||n==8){var r=s.$input.val().toLowerCase(),i=s.$dropDownOptions,o=0,u=false;i.each(function(){if(this.innerHTML.toLowerCase().indexOf(r)==0){e(this).show()}else{e(this).hide();if(e(this).hasClass("hover")){u=true}o++}});if(o==i.length){s.$dropDown.isEmpty=true;l()}else{s.$dropDown.isEmpty=false;if(u){d("clear")}f()}}else if(!s.$dropDown.isEmpty){if(n==38){d("prev")}else if(n==40){d("next")}else if(n==13&&s.$currHovered!=null){s.$input.val(s.$currHovered.html());l()}}},d=function(e){if(e=="next"||e=="prev"){var t=s.$dropDownOptions.filter(":visible"),n=t.filter(".hover"),r=t.index(n),i;if(e=="prev"){r=r==-1?t.length-1:r-1}else{r=r==t.length-1?0:r+1}if(n.length!=0){n.removeClass("hover")}i=t.eq(r);s.$currHovered=i;s.$currHovered.addClass("hover");m(s.$dropDown,s.$currHovered)}else if(e=="clear"){s.$currHovered!=null?s.$currHovered.removeClass("hover"):null;s.$currHovered=null}},v=function(e){var n=e[0].getBoundingClientRect();return n.top>=0&&n.left>=0&&n.bottom<=(window.innerHeight||t.documentElement.clientHeight)&&n.right<=(window.innerWidth||t.documentElement.clientWidth)},m=function(e,t){z=e[0].getBoundingClientRect();r=t[0].getBoundingClientRect();if(!(r.top>=z.top&&r.left>=z.left&&r.top+r.height<=z.top+z.height)){var n=r.top-z.top+e.scrollTop();e.scrollTop(n)}},g=function(e){if(e.keyCode==13){e.preventDefault()}};o(n,i)};e.fn.ComboTransform=function(e){return this.each(function(){i(e,this)})};e.fn.ComboTransform.options={updateList:true};e(function(){e("div.combobox").ComboTransform({updateList:true})})})(jQuery,document)
system/js/jquery.Jcrop.js000064400000223604152177723720011461 0ustar00/*! Jcrop.js v2.0.4 - build: 20151117
 *  @copyright 2008-2015 Tapmodo Interactive LLC
 *  @license Free software under MIT License
 *  @website http://jcrop.org/
 **/
(function($){
  'use strict';

  // Jcrop constructor
  var Jcrop = function(element,opt){
    var _ua = navigator.userAgent.toLowerCase();

    this.opt = $.extend({},Jcrop.defaults,opt || {});

    this.container = $(element);

    this.opt.is_msie = /msie/.test(_ua);
    this.opt.is_ie_lt9 = /msie [1-8]\./.test(_ua);

    this.container.addClass(this.opt.css_container);

    this.ui = {};
    this.state = null;
    this.ui.multi = [];
    this.ui.selection = null;
    this.filter = {};

    this.init();
    this.setOptions(opt);
    this.applySizeConstraints();
    this.container.trigger('cropinit',this);
      
    // IE<9 doesn't work if mouse events are attached to window
    if (this.opt.is_ie_lt9)
      this.opt.dragEventTarget = document.body;
  };


  // Jcrop static functions
  $.extend(Jcrop,{
    component: { },
    filter: { },
    stage: { },
    registerComponent: function(name,component){
      Jcrop.component[name] = component;
    },
    registerFilter: function(name,filter){
      Jcrop.filter[name] = filter;
    },
    registerStageType: function(name,stage){
      Jcrop.stage[name] = stage;
    },
    // attach: function(element,opt){{{
    attach: function(element,opt){
      var obj = new $.Jcrop(element,opt);
      return obj;
    },
    // }}}
    // imgCopy: function(imgel){{{
    imgCopy: function(imgel){
      var img = new Image;
      img.src = imgel.src;
      return img;
    },
    // }}}
    // imageClone: function(imgel){{{
    imageClone: function(imgel){
      return $.Jcrop.supportsCanvas?
        Jcrop.canvasClone(imgel):
        Jcrop.imgCopy(imgel);
    },
    // }}}
    // canvasClone: function(imgel){{{
    canvasClone: function(imgel){
      var canvas = document.createElement('canvas'),
          ctx = canvas.getContext('2d');

      $(canvas).width(imgel.width).height(imgel.height),
      canvas.width = imgel.naturalWidth;
      canvas.height = imgel.naturalHeight;
      ctx.drawImage(imgel,0,0,imgel.naturalWidth,imgel.naturalHeight);
      return canvas;
    },
    // }}}
    // propagate: function(plist,config,obj){{{
    propagate: function(plist,config,obj){
      for(var i=0,l=plist.length;i<l;i++)
        if (config.hasOwnProperty(plist[i]))
          obj[plist[i]] = config[plist[i]];
    },
    // }}}
    // getLargestBox: function(ratio,w,h){{{
    getLargestBox: function(ratio,w,h){
      if ((w/h) > ratio)
        return [ h * ratio, h ];
          else return [ w, w / ratio ];
    },
    // }}}
    // stageConstructor: function(el,options,callback){{{
    stageConstructor: function(el,options,callback){

      // Get a priority-ordered list of available stages
      var stages = [];
      $.each(Jcrop.stage,function(i,e){
        stages.push(e);
      });
      stages.sort(function(a,b){ return a.priority - b.priority; });

      // Find the first one that supports this element
      for(var i=0,l=stages.length;i<l;i++){
        if (stages[i].isSupported(el,options)){
          stages[i].create(el,options,function(obj,opt){
            if (typeof callback == 'function') callback(obj,opt);
          });
          break;
        }
      }
    },
    // }}}
    // supportsColorFade: function(){{{
    supportsColorFade: function(){
      return $.fx.step.hasOwnProperty('backgroundColor');
    },
    // }}}
    // wrapFromXywh: function(xywh){{{
    wrapFromXywh: function(xywh){
      var b = { x: xywh[0], y: xywh[1], w: xywh[2], h: xywh[3] };
      b.x2 = b.x + b.w;
      b.y2 = b.y + b.h;
      return b;
    }
    // }}}
  });

var AbstractStage = function(){
};

$.extend(AbstractStage,{
  isSupported: function(el,o){
    // @todo: should actually check if it's an HTML element
    return true;
  },
  // A higher priority means less desirable
  // AbstractStage is the last one we want to use
  priority: 100,
  create: function(el,options,callback){
    var obj = new AbstractStage;
    obj.element = el;
    callback.call(this,obj,options);
  },
  prototype: {
    attach: function(core){
      this.init(core);
      core.ui.stage = this;
    },
    triggerEvent: function(ev){
      $(this.element).trigger(ev);
      return this;
    },
    getElement: function(){
      return this.element;
    }
  }
});
Jcrop.registerStageType('Block',AbstractStage);


var ImageStage = function(){
};

ImageStage.prototype = new AbstractStage();

$.extend(ImageStage,{
  isSupported: function(el,o){
    if (el.tagName == 'IMG') return true;
  },
  priority: 90,
  create: function(el,options,callback){
    $.Jcrop.component.ImageLoader.attach(el,function(w,h){
      var obj = new ImageStage;
      obj.element = $(el).wrap('<div />').parent();

      obj.element.width(w).height(h);
      obj.imgsrc = el;

      if (typeof callback == 'function')
        callback.call(this,obj,options);
    });
  }
});
Jcrop.registerStageType('Image',ImageStage);


var CanvasStage = function(){
  this.angle = 0;
  this.scale = 1;
  this.scaleMin = 0.2;
  this.scaleMax = 1.25;
  this.offset = [0,0];
};

CanvasStage.prototype = new ImageStage();

$.extend(CanvasStage,{
  isSupported: function(el,o){
    if ($.Jcrop.supportsCanvas && (el.tagName == 'IMG')) return true;
  },
  priority: 60,
  create: function(el,options,callback){
    var $el = $(el);
    var opt = $.extend({},options);
    $.Jcrop.component.ImageLoader.attach(el,function(w,h){
      var obj = new CanvasStage;
      $el.hide();
      obj.createCanvas(el,w,h);
      $el.before(obj.element);
      obj.imgsrc = el;
      opt.imgsrc = el;

      if (typeof callback == 'function'){
        callback(obj,opt);
        obj.redraw();
      }
    });
  }
});

$.extend(CanvasStage.prototype,{
  init: function(core){
    this.core = core;
  },
  // setOffset: function(x,y) {{{
  setOffset: function(x,y) {
    this.offset = [x,y];
    return this;
  },
  // }}}
  // setAngle: function(v) {{{
  setAngle: function(v) {
    this.angle = v;
    return this;
  },
  // }}}
  // setScale: function(v) {{{
  setScale: function(v) {
    this.scale = this.boundScale(v);
    return this;
  },
  // }}}
  boundScale: function(v){
    if (v<this.scaleMin) v = this.scaleMin;
    else if (v>this.scaleMax) v = this.scaleMax;
    return v;
  },
  createCanvas: function(img,w,h){
    this.width = w;
    this.height = h;
    this.canvas = document.createElement('canvas');
    this.canvas.width = w;
    this.canvas.height = h;
    this.$canvas = $(this.canvas).width('100%').height('100%');
    this.context = this.canvas.getContext('2d');
    this.fillstyle = "rgb(0,0,0)";
    this.element = this.$canvas.wrap('<div />').parent().width(w).height(h);
  },
  triggerEvent: function(ev){
    this.$canvas.trigger(ev);
    return this;
  },
  // clear: function() {{{
  clear: function() {
    this.context.fillStyle = this.fillstyle;
    this.context.fillRect(0, 0, this.canvas.width, this.canvas.height);
    return this;
  },
  // }}}
  // redraw: function() {{{
  redraw: function() {
    // Save the current context
    this.context.save();
    this.clear();

    // Translate to the center point of our image
    this.context.translate(parseInt(this.width * 0.5), parseInt(this.height * 0.5));
    // Perform the rotation and scaling
    this.context.translate(this.offset[0]/this.core.opt.xscale,this.offset[1]/this.core.opt.yscale);
    this.context.rotate(this.angle * (Math.PI/180));
    this.context.scale(this.scale,this.scale);
    // Translate back to the top left of our image
    this.context.translate(-parseInt(this.width * 0.5), -parseInt(this.height * 0.5));
    // Finally we draw the image
    this.context.drawImage(this.imgsrc,0,0,this.width,this.height);

    // And restore the updated context
    this.context.restore();
    this.$canvas.trigger('cropredraw');
    return this;
  },
  // }}}
  // setFillStyle: function(v) {{{
  setFillStyle: function(v) {
    this.fillstyle = v;
    return this;
  }
  // }}}
});

Jcrop.registerStageType('Canvas',CanvasStage);


  /**
   *  BackoffFilter
   *  move out-of-bounds selection into allowed position at same size
   */
  var BackoffFilter = function(){
    this.minw = 40;
    this.minh = 40;
    this.maxw = 0;
    this.maxh = 0;
    this.core = null;
  };
  $.extend(BackoffFilter.prototype,{
    tag: 'backoff',
    priority: 22,
    filter: function(b){
      var r = this.bound;

      if (b.x < r.minx) { b.x = r.minx; b.x2 = b.w + b.x; }
      if (b.y < r.miny) { b.y = r.miny; b.y2 = b.h + b.y; }
      if (b.x2 > r.maxx) { b.x2 = r.maxx; b.x = b.x2 - b.w; }
      if (b.y2 > r.maxy) { b.y2 = r.maxy; b.y = b.y2 - b.h; }

      return b;
    },
    refresh: function(sel){
      this.elw = sel.core.container.width();
      this.elh = sel.core.container.height();
      this.bound = {
        minx: 0 + sel.edge.w,
        miny: 0 + sel.edge.n,
        maxx: this.elw + sel.edge.e,
        maxy: this.elh + sel.edge.s
      };
    }
  });
  Jcrop.registerFilter('backoff',BackoffFilter);

  /**
   *  ConstrainFilter
   *  a filter to constrain crop selection to bounding element
   */
  var ConstrainFilter = function(){
    this.core = null;
  };
  $.extend(ConstrainFilter.prototype,{
    tag: 'constrain',
    priority: 5,
    filter: function(b,ord){
      if (ord == 'move') {
        if (b.x < this.minx) { b.x = this.minx; b.x2 = b.w + b.x; }
        if (b.y < this.miny) { b.y = this.miny; b.y2 = b.h + b.y; }
        if (b.x2 > this.maxx) { b.x2 = this.maxx; b.x = b.x2 - b.w; }
        if (b.y2 > this.maxy) { b.y2 = this.maxy; b.y = b.y2 - b.h; }
      } else {
        if (b.x < this.minx) { b.x = this.minx; }
        if (b.y < this.miny) { b.y = this.miny; }
        if (b.x2 > this.maxx) { b.x2 = this.maxx; }
        if (b.y2 > this.maxy) { b.y2 = this.maxy; }
      }
      b.w = b.x2 - b.x;
      b.h = b.y2 - b.y;
      return b;
    },
    refresh: function(sel){
      this.elw = sel.core.container.width();
      this.elh = sel.core.container.height();
      this.minx = 0 + sel.edge.w;
      this.miny = 0 + sel.edge.n;
      this.maxx = this.elw + sel.edge.e;
      this.maxy = this.elh + sel.edge.s;
    }
  });
  Jcrop.registerFilter('constrain',ConstrainFilter);

  /**
   *  ExtentFilter
   *  a filter to implement minimum or maximum size
   */
  var ExtentFilter = function(){
    this.core = null;
  };
  $.extend(ExtentFilter.prototype,{
    tag: 'extent',
    priority: 12,
    offsetFromCorner: function(corner,box,b){
      var w = box[0], h = box[1];
      switch(corner){
        case 'bl': return [ b.x2 - w, b.y, w, h ];
        case 'tl': return [ b.x2 - w , b.y2 - h, w, h ];
        case 'br': return [ b.x, b.y, w, h ];
        case 'tr': return [ b.x, b.y2 - h, w, h ];
      }
    },
    getQuadrant: function(s){
      var relx = s.opposite[0]-s.offsetx
      var rely = s.opposite[1]-s.offsety;

      if ((relx < 0) && (rely < 0)) return 'br';
        else if ((relx >= 0) && (rely >= 0)) return 'tl';
        else if ((relx < 0) && (rely >= 0)) return 'tr';
        return 'bl';
    },
    filter: function(b,ord,sel){

      if (ord == 'move') return b;

      var w = b.w, h = b.h, st = sel.state, r = this.limits;
      var quad = st? this.getQuadrant(st): 'br';

      if (r.minw && (w < r.minw)) w = r.minw;
      if (r.minh && (h < r.minh)) h = r.minh;
      if (r.maxw && (w > r.maxw)) w = r.maxw;
      if (r.maxh && (h > r.maxh)) h = r.maxh;

      if ((w == b.w) && (h == b.h)) return b;

      return Jcrop.wrapFromXywh(this.offsetFromCorner(quad,[w,h],b));
    },
    refresh: function(sel){
      this.elw = sel.core.container.width();
      this.elh = sel.core.container.height();

      this.limits = {
        minw: sel.minSize[0],
        minh: sel.minSize[1],
        maxw: sel.maxSize[0],
        maxh: sel.maxSize[1]
      };
    }
  });
  Jcrop.registerFilter('extent',ExtentFilter);


  /**
   *  GridFilter
   *  a rudimentary grid effect
   */
  var GridFilter = function(){
    this.stepx = 1;
    this.stepy = 1;
    this.core = null;
  };
  $.extend(GridFilter.prototype,{
    tag: 'grid',
    priority: 19,
    filter: function(b){
      
      var n = {
        x: Math.round(b.x / this.stepx) * this.stepx,
        y: Math.round(b.y / this.stepy) * this.stepy,
        x2: Math.round(b.x2 / this.stepx) * this.stepx,
        y2: Math.round(b.y2 / this.stepy) * this.stepy
      };
      
      n.w = n.x2 - n.x;
      n.h = n.y2 - n.y;

      return n;
    }
  });
  Jcrop.registerFilter('grid',GridFilter);


  /**
   *  RatioFilter
   *  implements aspectRatio locking
   */
  var RatioFilter = function(){
    this.ratio = 0;
    this.core = null;
  };
  $.extend(RatioFilter.prototype,{
    tag: 'ratio',
    priority: 15,
    offsetFromCorner: function(corner,box,b){
      var w = box[0], h = box[1];
      switch(corner){
        case 'bl': return [ b.x2 - w, b.y, w, h ];
        case 'tl': return [ b.x2 - w , b.y2 - h, w, h ];
        case 'br': return [ b.x, b.y, w, h ];
        case 'tr': return [ b.x, b.y2 - h, w, h ];
      }
    },
    getBoundRatio: function(b,quad){
      var box = Jcrop.getLargestBox(this.ratio,b.w,b.h);
      return Jcrop.wrapFromXywh(this.offsetFromCorner(quad,box,b));
    },
    getQuadrant: function(s){
      var relx = s.opposite[0]-s.offsetx
      var rely = s.opposite[1]-s.offsety;

      if ((relx < 0) && (rely < 0)) return 'br';
        else if ((relx >= 0) && (rely >= 0)) return 'tl';
        else if ((relx < 0) && (rely >= 0)) return 'tr';
        return 'bl';
    },
    filter: function(b,ord,sel){

      if (!this.ratio) return b;

      var rt = b.w / b.h;
      var st = sel.state;

      var quad = st? this.getQuadrant(st): 'br';
      ord = ord || 'se';

      if (ord == 'move') return b;

      switch(ord) {
        case 'n':
          b.x2 = this.elw;
          b.w = b.x2 - b.x;
          quad = 'tr';
          break;
        case 's':
          b.x2 = this.elw;
          b.w = b.x2 - b.x;
          quad = 'br';
          break;
        case 'e':
          b.y2 = this.elh;
          b.h = b.y2 - b.y;
          quad = 'br';
          break;
        case 'w':
          b.y2 = this.elh;
          b.h = b.y2 - b.y;
          quad = 'bl';
          break;
      }

      return this.getBoundRatio(b,quad);
    },
    refresh: function(sel){
      this.ratio = sel.aspectRatio;
      this.elw = sel.core.container.width();
      this.elh = sel.core.container.height();
    }
  });
  Jcrop.registerFilter('ratio',RatioFilter);


  /**
   *  RoundFilter
   *  rounds coordinate values to integers
   */
  var RoundFilter = function(){
    this.core = null;
  };
  $.extend(RoundFilter.prototype,{
    tag: 'round',
    priority: 90,
    filter: function(b){
      
      var n = {
        x: Math.round(b.x),
        y: Math.round(b.y),
        x2: Math.round(b.x2),
        y2: Math.round(b.y2)
      };
      
      n.w = n.x2 - n.x;
      n.h = n.y2 - n.y;

      return n;
    }
  });
  Jcrop.registerFilter('round',RoundFilter);


  /**
   *  ShadeFilter
   *  A filter that implements div-based shading on any element
   *
   *  The shading you see is actually four semi-opaque divs
   *  positioned inside the container, around the selection
   */
  var ShadeFilter = function(opacity,color){
    this.color = color || 'black';
    this.opacity = opacity || 0.5;
    this.core = null;
    this.shades = {};
  };
  $.extend(ShadeFilter.prototype,{
    tag: 'shader',
    fade: true,
    fadeEasing: 'swing',
    fadeSpeed: 320,
    priority: 95,
    init: function(){
      var t = this;

      if (!t.attached) {
        t.visible = false;

        t.container = $('<div />').addClass(t.core.opt.css_shades)
          .prependTo(this.core.container).hide();

        t.elh = this.core.container.height();
        t.elw = this.core.container.width();

        t.shades = {
          top: t.createShade(),
          right: t.createShade(),
          left: t.createShade(),
          bottom: t.createShade()
        };

        t.attached = true;
      }
    },
    destroy: function(){
      this.container.remove();
    },
    setColor: function(color,instant){
      var t = this;

      if (color == t.color) return t;

      this.color = color;
      var colorfade = Jcrop.supportsColorFade();
      $.each(t.shades,function(u,i){
        if (!t.fade || instant || !colorfade) i.css('backgroundColor',color);
          else i.animate({backgroundColor:color},{queue:false,duration:t.fadeSpeed,easing:t.fadeEasing});
      });
      return t;
    },
    setOpacity: function(opacity,instant){
      var t = this;

      if (opacity == t.opacity) return t;

      t.opacity = opacity;
      $.each(t.shades,function(u,i){
        if (!t.fade || instant) i.css({opacity:opacity});
          else i.animate({opacity:opacity},{queue:false,duration:t.fadeSpeed,easing:t.fadeEasing});
      });
      return t;
    },
    createShade: function(){
      return $('<div />').css({
        position: 'absolute',
        backgroundColor: this.color,
        opacity: this.opacity
      }).appendTo(this.container);
    },
    refresh: function(sel){
      var m = this.core, s = this.shades;

      this.setColor(sel.bgColor?sel.bgColor:this.core.opt.bgColor);
      this.setOpacity(sel.bgOpacity?sel.bgOpacity:this.core.opt.bgOpacity);
        
      this.elh = m.container.height();
      this.elw = m.container.width();
      s.right.css('height',this.elh+'px');
      s.left.css('height',this.elh+'px');
    },
    filter: function(b,ord,sel){

      if (!sel.active) return b;

      var t = this,
        s = t.shades;
      
      s.top.css({
        left: Math.round(b.x)+'px',
        width: Math.round(b.w)+'px',
        height: Math.round(b.y)+'px'
      });
      s.bottom.css({
        top: Math.round(b.y2)+'px',
        left: Math.round(b.x)+'px',
        width: Math.round(b.w)+'px',
        height: (t.elh-Math.round(b.y2))+'px'
      });
      s.right.css({
        left: Math.round(b.x2)+'px',
        width: (t.elw-Math.round(b.x2))+'px'
      });
      s.left.css({
        width: Math.round(b.x)+'px'
      });

      if (!t.visible) {
        t.container.show();
        t.visible = true;
      }

      return b;
    }
  });
  Jcrop.registerFilter('shader',ShadeFilter);
  

  /**
   *  CanvasAnimator
   *  manages smooth cropping animation
   *
   *  This object is called internally to manage animation.
   *  An in-memory div is animated and a progress callback
   *  is used to update the selection coordinates of the
   *  visible selection in realtime.
   */
  var CanvasAnimator = function(stage){
    this.stage = stage;
    this.core = stage.core;
    this.cloneStagePosition();
  };

  CanvasAnimator.prototype = {

    cloneStagePosition: function(){
      var s = this.stage;
      this.angle = s.angle;
      this.scale = s.scale;
      this.offset = s.offset;
    },

    getElement: function(){
      var s = this.stage;

      return $('<div />')
        .css({
          position: 'absolute',
          top: s.offset[0]+'px',
          left: s.offset[1]+'px',
          width: s.angle+'px',
          height: s.scale+'px'
        });
    },

    animate: function(cb){
      var t = this;

      this.scale = this.stage.boundScale(this.scale);
      t.stage.triggerEvent('croprotstart');

      t.getElement().animate({
        top: t.offset[0]+'px',
        left: t.offset[1]+'px',
        width: t.angle+'px',
        height: t.scale+'px'
      },{
        easing: t.core.opt.animEasing,
        duration: t.core.opt.animDuration,
        complete: function(){
          t.stage.triggerEvent('croprotend');
          (typeof cb == 'function') && cb.call(this);
        },
        progress: function(anim){
          var props = {}, i, tw = anim.tweens;

          for(i=0;i<tw.length;i++){
            props[tw[i].prop] = tw[i].now; }

          t.stage.setAngle(props.width)
            .setScale(props.height)
            .setOffset(props.top,props.left)
            .redraw();
        }
      });
    }

  };
  Jcrop.stage.Canvas.prototype.getAnimator = function(){
    return new CanvasAnimator(this);
  };
  Jcrop.registerComponent('CanvasAnimator',CanvasAnimator);


  /**
   *  CropAnimator
   *  manages smooth cropping animation
   *
   *  This object is called internally to manage animation.
   *  An in-memory div is animated and a progress callback
   *  is used to update the selection coordinates of the
   *  visible selection in realtime.
   */
  // var CropAnimator = function(selection){{{
  var CropAnimator = function(selection){
    this.selection = selection;
    this.core = selection.core;
  };
  // }}}

  CropAnimator.prototype = {

    getElement: function(){
      var b = this.selection.get();

      return $('<div />')
        .css({
          position: 'absolute',
          top: b.y+'px',
          left: b.x+'px',
          width: b.w+'px',
          height: b.h+'px'
        });
    },

    animate: function(x,y,w,h,cb){
      var t = this;

      t.selection.allowResize(false);

      t.getElement().animate({
        top: y+'px',
        left: x+'px',
        width: w+'px',
        height: h+'px'
      },{
        easing: t.core.opt.animEasing,
        duration: t.core.opt.animDuration,
        complete: function(){
          t.selection.allowResize(true);
          cb && cb.call(this);
        },
        progress: function(anim){
          var props = {}, i, tw = anim.tweens;

          for(i=0;i<tw.length;i++){
            props[tw[i].prop] = tw[i].now; }

          var b = {
            x: parseInt(props.left),
            y: parseInt(props.top),
            w: parseInt(props.width),
            h: parseInt(props.height)
          };

          b.x2 = b.x + b.w;
          b.y2 = b.y + b.h;

          t.selection.updateRaw(b,'se');
        }
      });
    }

  };
  Jcrop.registerComponent('Animator',CropAnimator);


  /**
   *  DragState
   *  an object that handles dragging events
   *
   *  This object is used by the built-in selection object to
   *  track a dragging operation on a selection
   */
  // var DragState = function(e,selection,ord){{{
  var DragState = function(e,selection,ord){
    var t = this;

    t.x = e.pageX;
    t.y = e.pageY;

    t.selection = selection;
    t.eventTarget = selection.core.opt.dragEventTarget;
    t.orig = selection.get();

    selection.callFilterFunction('refresh');

    var p = selection.core.container.position();
    t.elx = p.left;
    t.ely = p.top;

    t.offsetx = 0;
    t.offsety = 0;
    t.ord = ord;
    t.opposite = t.getOppositeCornerOffset();

    t.initEvents(e);

  };
  // }}}

  DragState.prototype = {
    // getOppositeCornerOffset: function(){{{
    // Calculate relative offset of locked corner
    getOppositeCornerOffset: function(){

      var o = this.orig;
      var relx = this.x - this.elx - o.x;
      var rely = this.y - this.ely - o.y;

      switch(this.ord){
        case 'nw':
        case 'w':
          return [ o.w - relx, o.h - rely ];
          return [ o.x + o.w, o.y + o.h ];

        case 'sw':
          return [ o.w - relx, -rely ];
          return [ o.x + o.w, o.y ];

        case 'se':
        case 's':
        case 'e':
          return [ -relx, -rely ];
          return [ o.x, o.y ];

        case 'ne':
        case 'n':
          return [ -relx, o.h - rely ];
          return [ o.w, o.y + o.h ];
      }

      return [ null, null ];
    },
    // }}}
    // initEvents: function(e){{{
    initEvents: function(e){
      $(this.eventTarget)
        .on('mousemove.jcrop',this.createDragHandler())
        .on('mouseup.jcrop',this.createStopHandler());
    },
    // }}}
    // dragEvent: function(e){{{
    dragEvent: function(e){
      this.offsetx = e.pageX - this.x;
      this.offsety = e.pageY - this.y;
      this.selection.updateRaw(this.getBox(),this.ord);
    },
    // }}}
    // endDragEvent: function(e){{{
    endDragEvent: function(e){
      var sel = this.selection;
      sel.core.container.removeClass('jcrop-dragging');
      sel.element.trigger('cropend',[sel,sel.core.unscale(sel.get())]);
      sel.focus();
    },
    // }}}
    // createStopHandler: function(){{{
    createStopHandler: function(){
      var t = this;
      return function(e){
        $(t.eventTarget).off('.jcrop');
        t.endDragEvent(e);
        return false;
      };
    },
    // }}}
    // createDragHandler: function(){{{
    createDragHandler: function(){
      var t = this;
      return function(e){
        t.dragEvent(e);
        return false;
      };
    },
    // }}}
    //update: function(x,y){{{
    update: function(x,y){
      var t = this;
      t.offsetx = x - t.x;
      t.offsety = y - t.y;
    },
    //}}}
    //resultWrap: function(d){{{
    resultWrap: function(d){
      var b = {
          x: Math.min(d[0],d[2]),
          y: Math.min(d[1],d[3]),
          x2: Math.max(d[0],d[2]),
          y2: Math.max(d[1],d[3])
        };

      b.w = b.x2 - b.x;
      b.h = b.y2 - b.y;

      return b;
    },
    //}}}
    //getBox: function(){{{
    getBox: function(){
      var t = this;
      var o = t.orig;
      var _c = { x2: o.x + o.w, y2: o.y + o.h };
      switch(t.ord){
        case 'n': return t.resultWrap([ o.x, t.offsety + o.y, _c.x2, _c.y2 ]);
        case 's': return t.resultWrap([ o.x, o.y, _c.x2, t.offsety + _c.y2 ]);
        case 'e': return t.resultWrap([ o.x, o.y, t.offsetx + _c.x2, _c.y2 ]);
        case 'w': return t.resultWrap([ o.x + t.offsetx, o.y, _c.x2, _c.y2 ]);
        case 'sw': return t.resultWrap([ t.offsetx + o.x, o.y, _c.x2, t.offsety + _c.y2 ]);
        case 'se': return t.resultWrap([ o.x, o.y, t.offsetx + _c.x2, t.offsety + _c.y2 ]);
        case 'ne': return t.resultWrap([ o.x, t.offsety + o.y, t.offsetx + _c.x2, _c.y2 ]);
        case 'nw': return t.resultWrap([ t.offsetx + o.x, t.offsety + o.y, _c.x2, _c.y2 ]);
        case 'move':
          _c.nx = o.x + t.offsetx;
          _c.ny = o.y + t.offsety;
          return t.resultWrap([ _c.nx, _c.ny, _c.nx + o.w, _c.ny + o.h ]);
      }
    }
    //}}}
  };
  Jcrop.registerComponent('DragState',DragState);


  /**
   *  EventManager
   *  provides internal event support
   */
  var EventManager = function(core){
    this.core = core;
  };
  EventManager.prototype = {
      on: function(n,cb){ $(this).on(n,cb); },
      off: function(n){ $(this).off(n); },
      trigger: function(n){ $(this).trigger(n); }
  };
  Jcrop.registerComponent('EventManager',EventManager);


  /**
   * Image Loader
   * Reliably pre-loads images
   */
  // var ImageLoader = function(src,element,cb){{{
  var ImageLoader = function(src,element,cb){
    this.src = src;
    if (!element) element = new Image;
    this.element = element;
    this.callback = cb;
    this.load();
  };
  // }}}

  $.extend(ImageLoader,{
    // attach: function(el,cb){{{
    attach: function(el,cb){
      return new ImageLoader(el.src,el,cb);
    },
    // }}}
    // prototype: {{{
    prototype: {
      getDimensions: function(){
        var el = this.element;

        if (el.naturalWidth)
          return [ el.naturalWidth, el. naturalHeight ];

        if (el.width)
          return [ el.width, el.height ];

        return null;
      },
      fireCallback: function(){
        this.element.onload = null;
        if (typeof this.callback == 'function')
          this.callback.apply(this,this.getDimensions());
      },
      isLoaded: function(){
        return this.element.complete;
      },
      load: function(){
        var t = this;
        var el = t.element;

        el.src = t.src;

        if (t.isLoaded()) t.fireCallback();
          else t.element.onload = function(e){
            t.fireCallback();
          };
      }
    }
    // }}}
  });
  Jcrop.registerComponent('ImageLoader',ImageLoader);


  /**
   * JcropTouch
   * Detects and enables mobile touch support
   */
  // var JcropTouch = function(core){{{
  var JcropTouch = function(core){
    this.core = core;
    this.init();
  };
  // }}}

  $.extend(JcropTouch,{
    // support: function(){{{
    support: function(){
      if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch)
        return true;
    },
    // }}}
    prototype: {
      // init: function(){{{
      init: function(){
        var t = this,
          p = $.Jcrop.component.DragState.prototype;

        // A bit of an ugly hack to make sure we modify prototype
        // only once, store a key on the prototype
        if (!p.touch) {
          t.initEvents();
          t.shimDragState();
          t.shimStageDrag();
          p.touch = true;
        }
      },
      // }}}
      // shimDragState: function(){{{
      shimDragState: function(){
        var t = this;
        $.Jcrop.component.DragState.prototype.initEvents = function(e){
          
          // Attach subsequent drag event handlers based on initial
          // event type - avoids collecting "pseudo-mouse" events
          // generated by some mobile browsers in some circumstances
          if (e.type.substr(0,5) == 'touch') {

            $(this.eventTarget)
              .on('touchmove.jcrop.jcrop-touch',t.dragWrap(this.createDragHandler()))
              .on('touchend.jcrop.jcrop-touch',this.createStopHandler());

          }
          
          // For other events, use the mouse handlers that
          // the default DragState.initEvents() method sets...
          else {

            $(this.eventTarget)
              .on('mousemove.jcrop',this.createDragHandler())
              .on('mouseup.jcrop',this.createStopHandler());

          }

        };
      },
      // }}}
      // shimStageDrag: function(){{{
      shimStageDrag: function(){
        this.core.container
          .addClass('jcrop-touch')
          .on('touchstart.jcrop.jcrop-stage',this.dragWrap(this.core.ui.manager.startDragHandler()));
      },
      // }}}
      // dragWrap: function(cb){{{
      dragWrap: function(cb){
        return function(e){
          e.preventDefault();
          e.stopPropagation();
          if (e.type.substr(0,5) == 'touch') {
            e.pageX = e.originalEvent.changedTouches[0].pageX;
            e.pageY = e.originalEvent.changedTouches[0].pageY;
            return cb(e);
          }
          return false;
        };
      },
      // }}}
      // initEvents: function(){{{
      initEvents: function(){
        var t = this, c = t.core;

        c.container.on(
          'touchstart.jcrop.jcrop-touch',
          '.'+c.opt.css_drag,
          t.dragWrap(c.startDrag())
        );
      }
      // }}}
    }
  });
  Jcrop.registerComponent('Touch',JcropTouch);


  /**
   *  KeyWatcher
   *  provides keyboard support
   */
  // var KeyWatcher = function(core){{{
  var KeyWatcher = function(core){
    this.core = core;
    this.init();
  };
  // }}}
  $.extend(KeyWatcher,{
    // defaults: {{{
    defaults: {
      eventName: 'keydown.jcrop',
      passthru: [ 9 ],
      debug: false
    },
    // }}}
    prototype: {
      // init: function(){{{
      init: function(){
        $.extend(this,KeyWatcher.defaults);
        this.enable();
      },
      // }}}
      // disable: function(){{{
      disable: function(){
        this.core.container.off(this.eventName);
      },
      // }}}
      // enable: function(){{{
      enable: function(){
        var t = this, m = t.core;
        m.container.on(t.eventName,function(e){
          var nudge = e.shiftKey? 16: 2;

          if ($.inArray(e.keyCode,t.passthru) >= 0)
            return true;

          switch(e.keyCode){
            case 37: m.nudge(-nudge,0); break;
            case 38: m.nudge(0,-nudge); break;
            case 39: m.nudge(nudge,0); break;
            case 40: m.nudge(0,nudge); break;

            case 46:
            case 8:
              m.requestDelete();
              return false;
              break;

            default:
              if (t.debug) console.log('keycode: ' + e.keyCode);
              break;
          }

          if (!e.metaKey && !e.ctrlKey)
            e.preventDefault();
        });
      }
      // }}}
    }
  });
  Jcrop.registerComponent('Keyboard',KeyWatcher);


  /**
   * Selection
   * Built-in selection object
   */
  var Selection = function(){};

  $.extend(Selection,{
    // defaults: {{{
    defaults: {
      minSize: [ 8, 8 ],
      maxSize: [ 0, 0 ],
      aspectRatio: 0,
      edge: { n: 0, s: 0, e: 0, w: 0 },
      bgColor: null,
      bgOpacity: null,
      last: null,

      state: null,
      active: true,
      linked: true,
      canDelete: true,
      canDrag: true,
      canResize: true,
      canSelect: true
    },
    // }}}
    prototype: {
      // init: function(core){{{
      init: function(core){
        this.core = core;
        this.startup();
        this.linked = this.core.opt.linked;
        this.attach();
        this.setOptions(this.core.opt);
        core.container.trigger('cropcreate',[this]);
      },
      // }}}
      // attach: function(){{{
      attach: function(){
        // For extending init() sequence
      },
      // }}}
      // startup: function(){{{
      startup: function(){
        var t = this, o = t.core.opt;
        $.extend(t,Selection.defaults);
        t.filter = t.core.getDefaultFilters();

        t.element = $('<div />').addClass(o.css_selection).data({ selection: t });
        t.frame = $('<button />').addClass(o.css_button).data('ord','move').attr('type','button');
        t.element.append(t.frame).appendTo(t.core.container);

        // IE background/draggable hack
        if (t.core.opt.is_msie) t.frame.css({
          opacity: 0,
          backgroundColor: 'white'
        });

        t.insertElements();

        // Bind focus and blur events for this selection
        t.frame.on('focus.jcrop',function(e){
          t.core.setSelection(t);
          t.element.trigger('cropfocus',t);
          t.element.addClass('jcrop-focus');
        }).on('blur.jcrop',function(e){
          t.element.removeClass('jcrop-focus');
          t.element.trigger('cropblur',t);
        });
      },
      // }}}
      // propagate: [{{{
      propagate: [
        'canDelete', 'canDrag', 'canResize', 'canSelect',
        'minSize', 'maxSize', 'aspectRatio', 'edge'
      ],
      // }}}
      // setOptions: function(opt){{{
      setOptions: function(opt){
        Jcrop.propagate(this.propagate,opt,this);
        this.refresh();
        return this;
      },
      // }}}
      // refresh: function(){{{
      refresh: function(){
        this.allowResize();
        this.allowDrag();
        this.allowSelect();
        this.callFilterFunction('refresh');
        this.updateRaw(this.get(),'se');
      },
      // }}}
      // callFilterFunction: function(f,args){{{
      callFilterFunction: function(f,args){
        for(var i=0;i<this.filter.length;i++)
          if (this.filter[i][f]) this.filter[i][f](this);
        return this;
      },
      // }}}
      //addFilter: function(filter){{{
      addFilter: function(filter){
        filter.core = this.core;
        if (!this.hasFilter(filter)) {
          this.filter.push(filter);
          this.sortFilters();
          if (filter.init) filter.init();
          this.refresh();
        }
      },
      //}}}
      // hasFilter: function(filter){{{
      hasFilter: function(filter){
        var i, f = this.filter, n = [];
        for(i=0;i<f.length;i++) if (f[i] === filter) return true;
      },
      // }}}
      // sortFilters: function(){{{
      sortFilters: function(){
        this.filter.sort(
          function(x,y){ return x.priority - y.priority; }
        );
      },
      // }}}
      //clearFilters: function(){{{
      clearFilters: function(){
        var i, f = this.filter;

        for(var i=0;i<f.length;i++)
          if (f[i].destroy) f[i].destroy();

        this.filter = [];
      },
      //}}}
      // removeFiltersByTag: function(tag){{{
      removeFilter: function(tag){
        var i, f = this.filter, n = [];

        for(var i=0;i<f.length;i++)
          if ((f[i].tag && (f[i].tag == tag)) || (tag === f[i])){
            if (f[i].destroy) f[i].destroy();
          }
          else n.push(f[i]);

        this.filter = n;
      },
      // }}}
      // runFilters: function(b,ord){{{
      runFilters: function(b,ord){
        for(var i=0;i<this.filter.length;i++)
          b = this.filter[i].filter(b,ord,this);
        return b;
      },
      // }}}
      //endDrag: function(){{{
      endDrag: function(){
        if (this.state) {
          $(document.body).off('.jcrop');
          this.focus();
          this.state = null;
        }
      },
      //}}}
      // startDrag: function(e,ord){{{
      startDrag: function(e,ord){
        var t = this;
        var m = t.core;

        ord = ord || $(e.target).data('ord');

        this.focus();

        if ((ord == 'move') && t.element.hasClass(t.core.opt.css_nodrag))
          return false;

        this.state = new Jcrop.component.DragState(e,this,ord);
        return false;
      },
      // }}}
      // allowSelect: function(v){{{
      allowSelect: function(v){
        if (v === undefined) v = this.canSelect;

        if (v && this.canSelect) this.frame.attr('disabled',false);
          else this.frame.attr('disabled','disabled');

        return this;
      },
      // }}}
      // allowDrag: function(v){{{
      allowDrag: function(v){
        var t = this, o = t.core.opt;
        if (v == undefined) v = t.canDrag;

        if (v && t.canDrag) t.element.removeClass(o.css_nodrag);
          else t.element.addClass(o.css_nodrag);

        return this;
      },
      // }}}
      // allowResize: function(v){{{
      allowResize: function(v){
        var t = this, o = t.core.opt;
        if (v == undefined) v = t.canResize;

        if (v && t.canResize) t.element.removeClass(o.css_noresize);
          else t.element.addClass(o.css_noresize);

        return this;
      },
      // }}}
      // remove: function(){{{
      remove: function(){
        this.element.trigger('cropremove',this);
        this.element.remove();
      },
      // }}}
      // toBack: function(){{{
      toBack: function(){
        this.active = false;
        this.element.removeClass('jcrop-current jcrop-focus');
      },
      // }}}
      // toFront: function(){{{
      toFront: function(){
        this.active = true;
        this.element.addClass('jcrop-current');
        this.callFilterFunction('refresh');
        this.refresh();
      },
      // }}}
      // redraw: function(b){{{
      redraw: function(b){
        this.moveTo(b.x,b.y);
        this.resize(b.w,b.h);
        this.last = b;
        return this;
      },
      // }}}
      // update: function(b,ord){{{
      update: function(b,ord){
        return this.updateRaw(this.core.scale(b),ord);
      },
      // }}}
      // update: function(b,ord){{{
      updateRaw: function(b,ord){
        b = this.runFilters(b,ord);
        this.redraw(b);
        this.element.trigger('cropmove',[this,this.core.unscale(b)]);
        return this;
      },
      // }}}
      // animateTo: function(box,cb){{{
      animateTo: function(box,cb){
        var ca = new Jcrop.component.Animator(this),
            b = this.core.scale(Jcrop.wrapFromXywh(box));

        ca.animate(b.x,b.y,b.w,b.h,cb);
      },
      // }}}
      // center: function(instant){{{
      center: function(instant){
        var b = this.get(), m = this.core;
        var elw = m.container.width(), elh = m.container.height();
        var box = [ (elw-b.w)/2, (elh-b.h)/2, b.w, b.h ];
        return this[instant?'setSelect':'animateTo'](box);
      },
      // }}}
      //createElement: function(type,ord){{{
      createElement: function(type,ord){
        return $('<div />').addClass(type+' ord-'+ord).data('ord',ord);
      },
      //}}}
      //moveTo: function(x,y){{{
      moveTo: function(x,y){
        this.element.css({top: y+'px', left: x+'px'});
      },
      //}}}
      // blur: function(){{{
      blur: function(){
        this.element.blur();
        return this;
      },
      // }}}
      // focus: function(){{{
      focus: function(){
        this.core.setSelection(this);
        this.frame.focus();
        return this;
      },
      // }}}
      //resize: function(w,h){{{
      resize: function(w,h){
        this.element.css({width: w+'px', height: h+'px'});
      },
      //}}}
      //get: function(){{{
      get: function(){
        var b = this.element,
          o = b.position(),
          w = b.width(),
          h = b.height(),
          rv = { x: o.left, y: o.top };

        rv.x2 = rv.x + w;
        rv.y2 = rv.y + h;
        rv.w = w;
        rv.h = h;

        return rv;
      },
      //}}}
      //insertElements: function(){{{
      insertElements: function(){
        var t = this, i,
          m = t.core,
          fr = t.element,
          o = t.core.opt,
          b = o.borders,
          h = o.handles,
          d = o.dragbars;

        for(i=0; i<d.length; i++)
          fr.append(t.createElement(o.css_dragbars,d[i]));

        for(i=0; i<h.length; i++)
          fr.append(t.createElement(o.css_handles,h[i]));

        for(i=0; i<b.length; i++)
          fr.append(t.createElement(o.css_borders,b[i]));
      }
      //}}}
    }
  });
  Jcrop.registerComponent('Selection',Selection);


  /**
   * StageDrag
   * Facilitates dragging
   */
  // var StageDrag = function(manager,opt){{{
  var StageDrag = function(manager,opt){
    $.extend(this,StageDrag.defaults,opt || {});
    this.manager = manager;
    this.core = manager.core;
  };
  // }}}
  // StageDrag.defaults = {{{
  StageDrag.defaults = {
    offset: [ -8, -8 ],
    active: true,
    minsize: [ 20, 20 ]
  };
  // }}}

  $.extend(StageDrag.prototype,{
    // start: function(e){{{
    start: function(e){
      var c = this.core;

      // Do nothing if allowSelect is off
      if (!c.opt.allowSelect) return;

      // Also do nothing if we can't draw any more selections
      if (c.opt.multi && c.opt.multiMax && (c.ui.multi.length >= c.opt.multiMax)) return false;

      // calculate a few variables for this drag operation
      var o = $(e.currentTarget).offset();
      var origx = e.pageX - o.left + this.offset[0];
      var origy = e.pageY - o.top + this.offset[1];
      var m = c.ui.multi;

      // Determine newly dragged crop behavior if multi disabled
      if (!c.opt.multi) {
        // For multiCleaanup true, remove all existing selections
        if (c.opt.multiCleanup){
          for(var i=0;i<m.length;i++) m[i].remove();
          c.ui.multi = [];
        }
        // If not, only remove the currently active selection
        else {
          c.removeSelection(c.ui.selection);
        }
      }

      c.container.addClass('jcrop-dragging');

      // Create the new selection
      var sel = c.newSelection()
        // and position it
        .updateRaw(Jcrop.wrapFromXywh([origx,origy,1,1]));

      sel.element.trigger('cropstart',[sel,this.core.unscale(sel.get())]);
      
      return sel.startDrag(e,'se');
    },
    // }}}
    // end: function(x,y){{{
    end: function(x,y){
      this.drag(x,y);
      var b = this.sel.get();

      this.core.container.removeClass('jcrop-dragging');

      if ((b.w < this.minsize[0]) || (b.h < this.minsize[1]))
        this.core.requestDelete();

        else this.sel.focus();
    }
    // }}}
  });
  Jcrop.registerComponent('StageDrag',StageDrag);


  /**
   * StageManager
   * Provides basic stage-specific functionality
   */
  // var StageManager = function(core){{{
  var StageManager = function(core){
    this.core = core;
    this.ui = core.ui;
    this.init();
  };
  // }}}

  $.extend(StageManager.prototype,{
    // init: function(){{{
    init: function(){
      this.setupEvents();
      this.dragger = new StageDrag(this);
    },
    // }}}
    // tellConfigUpdate: function(options){{{
    tellConfigUpdate: function(options){
      for(var i=0,m=this.ui.multi,l=m.length;i<l;i++)
        if (m[i].setOptions && (m[i].linked || (this.core.opt.linkCurrent && m[i] == this.ui.selection)))
          m[i].setOptions(options);
    },
    // }}}
    // startDragHandler: function(){{{
    startDragHandler: function(){
      var t = this;
      return function(e){
        if (!e.button || t.core.opt.is_ie_lt9) return t.dragger.start(e);
      };
    },
    // }}}
    // removeEvents: function(){{{
    removeEvents: function(){
      this.core.event.off('.jcrop-stage');
      this.core.container.off('.jcrop-stage');
    },
    // }}}
    // shimLegacyHandlers: function(options){{{
    // This method uses the legacyHandlers configuration object to
    // gracefully wrap old-style Jcrop events with new ones
    shimLegacyHandlers: function(options){
      var _x = {}, core = this.core, tmp;

      $.each(core.opt.legacyHandlers,function(k,i){
        if (k in options) {
          tmp = options[k];
          core.container.off('.jcrop-'+k)
            .on(i+'.jcrop.jcrop-'+k,function(e,s,c){
              tmp.call(core,c);
            });
          delete options[k];
        }
      });
    },
    // }}}
    // setupEvents: function(){{{
    setupEvents: function(){
      var t = this, c = t.core;

      c.event.on('configupdate.jcrop-stage',function(e){
        t.shimLegacyHandlers(c.opt);
        t.tellConfigUpdate(c.opt)
        c.container.trigger('cropconfig',[c,c.opt]);
      });

      this.core.container
        .on('mousedown.jcrop.jcrop-stage',this.startDragHandler());
    }
    // }}}
  });
  Jcrop.registerComponent('StageManager',StageManager);


  var Thumbnailer = function(){
  };

  $.extend(Thumbnailer,{
    defaults: {
      // Set to a specific Selection object
      // If this value is set, the preview will only track that Selection
      selection: null,

      fading: true,
      fadeDelay: 1000,
      fadeDuration: 1000,
      autoHide: false,
      width: 80,
      height: 80,
      _hiding: null
    },

    prototype: {
      recopyCanvas: function(){
        var s = this.core.ui.stage, cxt = s.context;
        this.context.putImageData(cxt.getImageData(0,0,s.canvas.width,s.canvas.height),0,0);
      },
      init: function(core,options){
        var t = this;
        this.core = core;
        $.extend(this,Thumbnailer.defaults,options);
        t.initEvents();
        t.refresh();
        t.insertElements();
        if (t.selection) {
          t.renderSelection(t.selection);
          t.selectionTarget = t.selection.element[0];
        } else if (t.core.ui.selection) {
          t.renderSelection(t.core.ui.selection);
        }

        if (t.core.ui.stage.canvas) {
          t.context = t.preview[0].getContext('2d');
          t.core.container.on('cropredraw',function(e){
            t.recopyCanvas();
            t.refresh();
          });
        }
      },
      updateImage: function(imgel){
        this.preview.remove();
        this.preview = $($.Jcrop.imageClone(imgel));
        this.element.append(this.preview);
        this.refresh();
        return this;
      },
      insertElements: function(){
        this.preview = $($.Jcrop.imageClone(this.core.ui.stage.imgsrc));

        this.element = $('<div />').addClass('jcrop-thumb')
          .width(this.width).height(this.height)
          .append(this.preview)
          .appendTo(this.core.container);
      },
      resize: function(w,h){
        this.width = w;
        this.height = h;
        this.element.width(w).height(h);
        this.renderCoords(this.last);
      },
      refresh: function(){
        this.cw = (this.core.opt.xscale * this.core.container.width());
        this.ch = (this.core.opt.yscale * this.core.container.height());
        if (this.last) {
          this.renderCoords(this.last);
        }
      },
      renderCoords: function(c){
        var rx = this.width / c.w;
        var ry = this.height / c.h;

        this.preview.css({
          width: Math.round(rx * this.cw) + 'px',
          height: Math.round(ry * this.ch) + 'px',
          marginLeft: '-' + Math.round(rx * c.x) + 'px',
          marginTop: '-' + Math.round(ry * c.y) + 'px'
        });

        this.last = c;
        return this;
      },
      renderSelection: function(s){
        return this.renderCoords(s.core.unscale(s.get()));
      },
      selectionStart: function(s){
        this.renderSelection(s);
      },
      show: function(){
        if (this._hiding) clearTimeout(this._hiding);

        if (!this.fading) this.element.stop().css({ opacity: 1 });
        else this.element.stop().animate({ opacity: 1 },{ duration: 80, queue: false });
      },
      hide: function(){
        var t = this;
        if (!t.fading) t.element.hide();
        else t._hiding = setTimeout(function(){
          t._hiding = null;
          t.element.stop().animate({ opacity: 0 },{ duration: t.fadeDuration, queue: false });
        },t.fadeDelay);
      },
      initEvents: function(){
        var t = this;
        t.core.container.on('croprotstart croprotend cropimage cropstart cropmove cropend',function(e,s,c){
          if (t.selectionTarget && (t.selectionTarget !== e.target)) return false;

          switch(e.type){

            case 'cropimage':
              t.updateImage(c);
              break;

            case 'cropstart':
              t.selectionStart(s);
            case 'croprotstart':
              t.show();
              break;

            case 'cropend':
              t.renderCoords(c);
            case 'croprotend':
              if (t.autoHide) t.hide();
              break;

            case 'cropmove':
              t.renderCoords(c);
              break;
          }
        });
      }
    }
  });
  Jcrop.registerComponent('Thumbnailer',Thumbnailer);


  /**
   * DialDrag component
   * This is a little hacky, it was adapted from some previous/old code
   * Plan to update this API in the future
   */
  var DialDrag = function() { };

  DialDrag.prototype = {

    init: function(core,actuator,callback){
      var that = this;

      if (!actuator) actuator = core.container;
      this.$btn = $(actuator);
      this.$targ = $(actuator);
      this.core = core;

      this.$btn
        .addClass('dialdrag')
        .on('mousedown.dialdrag',this.mousedown())
        .data('dialdrag',this);

      if (!$.isFunction(callback)) callback = function(){ };
      this.callback = callback;
      this.ondone = callback;
    },

    remove: function(){
      this.$btn
        .removeClass('dialdrag')
        .off('.dialdrag')
        .data('dialdrag',null);
      return this;
    },

    setTarget: function(obj){
      this.$targ = $(obj);
      return this;
    },

    getOffset: function(){
      var targ = this.$targ, pos = targ.offset();
      return [
        pos.left + (targ.width()/2),
        pos.top + (targ.height()/2)
      ];
    },

    relMouse: function(e){
      var x = e.pageX - this.offset[0],
          y = e.pageY - this.offset[1],
          ang = Math.atan2(y,x) * (180 / Math.PI),
          vec = Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
      return [ x, y, ang, vec ];
    },

    mousedown: function(){
      var that = this;

      function mouseUp(e){
        $(window).off('.dialdrag');
        that.ondone.call(that,that.relMouse(e));
        that.core.container.trigger('croprotend');
      }

      function mouseMove(e){
        that.callback.call(that,that.relMouse(e));
      }

      return function(e) {
        that.offset = that.getOffset();
        var rel = that.relMouse(e);
        that.angleOffset = -that.core.ui.stage.angle+rel[2];
        that.distOffset = rel[3];
        that.dragOffset = [rel[0],rel[1]];
        that.core.container.trigger('croprotstart');

        $(window)
          .on('mousemove.dialdrag',mouseMove)
          .on('mouseup.dialdrag',mouseUp);

        that.callback.call(that,that.relMouse(e));

        return false;
      };
    }
    
  };
  Jcrop.registerComponent('DialDrag',DialDrag);


    /////////////////////////////////
    // DEFAULT SETTINGS

    Jcrop.defaults = {

      // Selection Behavior
      edge: { n: 0, s: 0, e: 0, w: 0 },
      setSelect: null,
      linked: true,
      linkCurrent: true,
      canDelete: true,
      canSelect: true,
      canDrag: true,
      canResize: true,

      // Component constructors
      eventManagerComponent:  Jcrop.component.EventManager,
      keyboardComponent:      Jcrop.component.Keyboard,
      dragstateComponent:     Jcrop.component.DragState,
      stagemanagerComponent:  Jcrop.component.StageManager,
      animatorComponent:      Jcrop.component.Animator,
      selectionComponent:     Jcrop.component.Selection,

      // This is a function that is called, which returns a stage object
      stageConstructor:       Jcrop.stageConstructor,

      // Stage Behavior
      allowSelect: true,
      multi: false,
      multiMax: false,
      multiCleanup: true,
      animation: true,
      animEasing: 'swing',
      animDuration: 400,
      fading: true,
      fadeDuration: 300,
      fadeEasing: 'swing',
      bgColor: 'black',
      bgOpacity: .5,

      // Startup options
      applyFilters: [ 'constrain', 'extent', 'backoff', 'ratio', 'shader', 'round' ],
      borders:  [ 'e', 'w', 's', 'n' ],
      handles:  [ 'n', 's', 'e', 'w', 'sw', 'ne', 'nw', 'se' ],
      dragbars: [ 'n', 'e', 'w', 's' ],

      dragEventTarget: window,

      xscale: 1,
      yscale: 1,

      boxWidth: null,
      boxHeight: null,

      // CSS Classes
      // @todo: These need to be moved to top-level object keys
      // for better customization. Currently if you try to extend one
      // via an options object to Jcrop, it will wipe out all
      // the others you don't specify. Be careful for now!
      css_nodrag: 'jcrop-nodrag',
      css_drag: 'jcrop-drag',
      css_container: 'jcrop-active',
      css_shades: 'jcrop-shades',
      css_selection: 'jcrop-selection',
      css_borders: 'jcrop-border',
      css_handles: 'jcrop-handle jcrop-drag',
      css_button: 'jcrop-box jcrop-drag',
      css_noresize: 'jcrop-noresize',
      css_dragbars: 'jcrop-dragbar jcrop-drag',

      legacyHandlers: {
        onChange: 'cropmove',
        onSelect: 'cropend'
      }

    };


  // Jcrop API methods
  $.extend(Jcrop.prototype,{
    //init: function(){{{
    init: function(){
      this.event = new this.opt.eventManagerComponent(this);
      this.ui.keyboard = new this.opt.keyboardComponent(this);
      this.ui.manager = new this.opt.stagemanagerComponent(this);
      this.applyFilters();

      if ($.Jcrop.supportsTouch)
        new $.Jcrop.component.Touch(this);

      this.initEvents();
    },
    //}}}
    // applySizeConstraints: function(){{{
    applySizeConstraints: function(){
      var o = this.opt,
          img = this.opt.imgsrc;

      if (img){

        var iw = img.naturalWidth || img.width,
            ih = img.naturalHeight || img.height,
            bw = o.boxWidth || iw,
            bh = o.boxHeight || ih;

        if (img && ((iw > bw) || (ih > bh))){
          var bx = Jcrop.getLargestBox(iw/ih,bw,bh);
          $(img).width(bx[0]).height(bx[1]);
          this.resizeContainer(bx[0],bx[1]);
          this.opt.xscale = iw / bx[0];
          this.opt.yscale = ih / bx[1];
        }
          
      }

      if (this.opt.trueSize){
        var dw = this.opt.trueSize[0];
        var dh = this.opt.trueSize[1];
        var cs = this.getContainerSize();
        this.opt.xscale = dw / cs[0];
        this.opt.yscale = dh / cs[1];
      }
    },
    // }}}
    initComponent: function(name){
      if (Jcrop.component[name]) {
        var args = Array.prototype.slice.call(arguments);
        var obj = new Jcrop.component[name];
        args.shift();
        args.unshift(this);
        obj.init.apply(obj,args);
        return obj;
      }
    },
    // setOptions: function(opt){{{
    setOptions: function(opt,proptype){

      if (!$.isPlainObject(opt)) opt = {};

      $.extend(this.opt,opt);

      // Handle a setSelect value
      if (this.opt.setSelect) {

        // If there is no current selection
        // passing setSelect will create one
        if (!this.ui.multi.length)
          this.newSelection();

        // Use these values to update the current selection
        this.setSelect(this.opt.setSelect);

        // Set to null so it doesn't get called again
        this.opt.setSelect = null;
      }

      this.event.trigger('configupdate');
      return this;
    },
    // }}}
    //destroy: function(){{{
    destroy: function(){
      if (this.opt.imgsrc) {
        this.container.before(this.opt.imgsrc);
        this.container.remove();
        $(this.opt.imgsrc).removeData('Jcrop').show();
      } else {
        // @todo: more elegant destroy() process for non-image containers
        this.container.remove();
      }
    },
    // }}}
    // applyFilters: function(){{{
    applyFilters: function(){
      var obj;
      for(var i=0,f=this.opt.applyFilters,l=f.length; i<l; i++){
        if ($.Jcrop.filter[f[i]])
          obj = new $.Jcrop.filter[f[i]];
          obj.core = this;
          if (obj.init) obj.init();
          this.filter[f[i]] = obj;
      }
    },
    // }}}
    // getDefaultFilters: function(){{{
    getDefaultFilters: function(){
      var rv = [];

      for(var i=0,f=this.opt.applyFilters,l=f.length; i<l; i++)
        if(this.filter.hasOwnProperty(f[i]))
          rv.push(this.filter[f[i]]);

      rv.sort(function(x,y){ return x.priority - y.priority; });
      return rv;
    },
    // }}}
    // setSelection: function(sel){{{
    setSelection: function(sel){
      var m = this.ui.multi;
      var n = [];
      for(var i=0;i<m.length;i++) {
        if (m[i] !== sel) n.push(m[i]);
        m[i].toBack();
      }
      n.unshift(sel);
      this.ui.multi = n;
      this.ui.selection = sel;
      sel.toFront();
      return sel;
    },
    // }}}
    // getSelection: function(raw){{{
    getSelection: function(raw){
      var b = this.ui.selection.get();
      return b;
    },
    // }}}
    // newSelection: function(){{{
    newSelection: function(sel){
      if (!sel)
        sel = new this.opt.selectionComponent();

      sel.init(this);
      this.setSelection(sel);

      return sel;
    },
    // }}}
    // hasSelection: function(sel){{{
    hasSelection: function(sel){
      for(var i=0;i<this.ui.multi;i++)
        if (sel === this.ui.multi[i]) return true;
    },
    // }}}
    // removeSelection: function(sel){{{
    removeSelection: function(sel){
      var i, n = [], m = this.ui.multi;
      for(var i=0;i<m.length;i++){
        if (sel !== m[i])
          n.push(m[i]);
        else m[i].remove();
      }
      return this.ui.multi = n;
    },
    // }}}
    //addFilter: function(filter){{{
    addFilter: function(filter){
      for(var i=0,m=this.ui.multi,l=m.length; i<l; i++)
        m[i].addFilter(filter);

      return this;
    },
    //}}}
    // removeFiltersByTag: function(tag){{{
    removeFilter: function(filter){
      for(var i=0,m=this.ui.multi,l=m.length; i<l; i++)
        m[i].removeFilter(filter);

      return this;
    },
    // }}}
    // blur: function(){{{
    blur: function(){
      this.ui.selection.blur();
      return this;
    },
    // }}}
    // focus: function(){{{
    focus: function(){
      this.ui.selection.focus();
      return this;
    },
    // }}}
    //initEvents: function(){{{
    initEvents: function(){
      var t = this;
      t.container.on('selectstart',function(e){ return false; })
        .on('mousedown','.'+t.opt.css_drag,t.startDrag());
    },
    //}}}
    // maxSelect: function(){{{
    maxSelect: function(){
      this.setSelect([0,0,this.elw,this.elh]);
    },
    // }}}
    // nudge: function(x,y){{{
    nudge: function(x,y){
      var s = this.ui.selection, b = s.get();

      b.x += x;
      b.x2 += x;
      b.y += y;
      b.y2 += y;

      if (b.x < 0) { b.x2 = b.w; b.x = 0; }
        else if (b.x2 > this.elw) { b.x2 = this.elw; b.x = b.x2 - b.w; }

      if (b.y < 0) { b.y2 = b.h; b.y = 0; }
        else if (b.y2 > this.elh) { b.y2 = this.elh; b.y = b.y2 - b.h; }
      
      s.element.trigger('cropstart',[s,this.unscale(b)]);
      s.updateRaw(b,'move');
      s.element.trigger('cropend',[s,this.unscale(b)]);
    },
    // }}}
    // refresh: function(){{{
    refresh: function(){
      for(var i=0,s=this.ui.multi,l=s.length;i<l;i++)
        s[i].refresh();
    },
    // }}}
    // blurAll: function(){{{
    blurAll: function(){
      var m = this.ui.multi;
      for(var i=0;i<m.length;i++) {
        if (m[i] !== sel) n.push(m[i]);
        m[i].toBack();
      }
    },
    // }}}
    // scale: function(b){{{
    scale: function(b){
      var xs = this.opt.xscale,
          ys = this.opt.yscale;

      return {
        x: b.x / xs,
        y: b.y / ys,
        x2: b.x2 / xs,
        y2: b.y2 / ys,
        w: b.w / xs,
        h: b.h / ys
      };
    },
    // }}}
    // unscale: function(b){{{
    unscale: function(b){
      var xs = this.opt.xscale,
          ys = this.opt.yscale;

      return {
        x: b.x * xs,
        y: b.y * ys,
        x2: b.x2 * xs,
        y2: b.y2 * ys,
        w: b.w * xs,
        h: b.h * ys
      };
    },
    // }}}
    // requestDelete: function(){{{
    requestDelete: function(){
      if ((this.ui.multi.length > 1) && (this.ui.selection.canDelete))
        return this.deleteSelection();
    },
    // }}}
    // deleteSelection: function(){{{
    deleteSelection: function(){
      if (this.ui.selection) {
        this.removeSelection(this.ui.selection);
        if (this.ui.multi.length) this.ui.multi[0].focus();
        this.ui.selection.refresh();
      }
    },
    // }}}
    // animateTo: function(box){{{
    animateTo: function(box){
      if (this.ui.selection)
        this.ui.selection.animateTo(box);
      return this;
    },
    // }}}
    // setselect: function(box){{{
    setSelect: function(box){
      if (this.ui.selection)
        this.ui.selection.update(Jcrop.wrapFromXywh(box));
      return this;
    },
    // }}}
    //startDrag: function(){{{
    startDrag: function(){
      var t = this;
      return function(e){
        var $targ = $(e.target);
        var selection = $targ.closest('.'+t.opt.css_selection).data('selection');
        var ord = $targ.data('ord');
        t.container.trigger('cropstart',[selection,t.unscale(selection.get())]);
        selection.startDrag(e,ord);
        return false;
      };
    },
    //}}}
    // getContainerSize: function(){{{
    getContainerSize: function(){
      return [ this.container.width(), this.container.height() ];
    },
    // }}}
    // resizeContainer: function(w,h){{{
    resizeContainer: function(w,h){
      this.container.width(w).height(h);
      this.refresh();
    },
    // }}}
    // setImage: function(src,cb){{{
    setImage: function(src,cb){
      var t = this, targ = t.opt.imgsrc;

      if (!targ) return false;

      new $.Jcrop.component.ImageLoader(src,null,function(w,h){
        t.resizeContainer(w,h);

        targ.src = src;
        $(targ).width(w).height(h);
        t.applySizeConstraints();
        t.refresh();
        t.container.trigger('cropimage',[t,targ]);

        if (typeof cb == 'function')
          cb.call(t,w,h);
      });
    },
    // }}}
    // update: function(b){{{
    update: function(b){
      if (this.ui.selection)
        this.ui.selection.update(b);
    }
    // }}}
  });

  // Jcrop jQuery plugin function
  $.fn.Jcrop = function(options,callback){
    options = options || {};

    var first = this.eq(0).data('Jcrop');
    var args = Array.prototype.slice.call(arguments);

    // Return API if requested
    if (options == 'api') { return first; }

    // Allow calling API methods (with arguments)
    else if (first && (typeof options == 'string')) {

      // Call method if it exists
      if (first[options]) {
        args.shift();
        first[options].apply(first,args);
        return first;
      }

      // Unknown input/method does not exist
      return false;
    }

    // Otherwise, loop over selected elements
    this.each(function(){
      var t = this, $t = $(this);
      var exists = $t.data('Jcrop');
      var obj;

      // If Jcrop already exists on this element only setOptions()
      if (exists)
        exists.setOptions(options);

      else {

        if (!options.stageConstructor)
          options.stageConstructor = $.Jcrop.stageConstructor;

        options.stageConstructor(this,options,function(stage,options){
          var selection = options.setSelect;
          if (selection) delete(options.setSelect);

          var obj = $.Jcrop.attach(stage.element,options);

          if (typeof stage.attach == 'function')
            stage.attach(obj);

          $t.data('Jcrop',obj);

          if (selection) {
            obj.newSelection();
            obj.setSelect(selection);
          }

          if (typeof callback == 'function')
            callback.call(obj);
        });
      }

      return this;
    });
  };

/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
 * Build: http://modernizr.com/download/#-csstransforms-canvas-canvastext-draganddrop-inlinesvg-svg-svgclippaths-touch-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-url_data_uri
 */
;

var Modernizr = (function( window, document, undefined ) {

    var version = '2.7.1',

    Modernizr = {},


    docElement = document.documentElement,

    mod = 'modernizr',
    modElem = document.createElement(mod),
    mStyle = modElem.style,

    inputElem  ,


    toString = {}.toString,

    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),



    omPrefixes = 'Webkit Moz O ms',

    cssomPrefixes = omPrefixes.split(' '),

    domPrefixes = omPrefixes.toLowerCase().split(' '),

    ns = {'svg': 'http://www.w3.org/2000/svg'},

    tests = {},
    inputs = {},
    attrs = {},

    classes = [],

    slice = classes.slice,

    featureName, 


    injectElementWithStyles = function( rule, callback, nodes, testnames ) {

      var style, ret, node, docOverflow,
          div = document.createElement('div'),
                body = document.body,
                fakeBody = body || document.createElement('body');

      if ( parseInt(nodes, 10) ) {
                      while ( nodes-- ) {
              node = document.createElement('div');
              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
              div.appendChild(node);
          }
      }

                style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join('');
      div.id = mod;
          (body ? div : fakeBody).innerHTML += style;
      fakeBody.appendChild(div);
      if ( !body ) {
                fakeBody.style.background = '';
                fakeBody.style.overflow = 'hidden';
          docOverflow = docElement.style.overflow;
          docElement.style.overflow = 'hidden';
          docElement.appendChild(fakeBody);
      }

      ret = callback(div, rule);
        if ( !body ) {
          fakeBody.parentNode.removeChild(fakeBody);
          docElement.style.overflow = docOverflow;
      } else {
          div.parentNode.removeChild(div);
      }

      return !!ret;

    },



    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;

            var isSupported = eventName in element;

        if ( !isSupported ) {
                if ( !element.setAttribute ) {
            element = document.createElement('div');
          }
          if ( element.setAttribute && element.removeAttribute ) {
            element.setAttribute(eventName, '');
            isSupported = is(element[eventName], 'function');

                    if ( !is(element[eventName], 'undefined') ) {
              element[eventName] = undefined;
            }
            element.removeAttribute(eventName);
          }
        }

        element = null;
        return isSupported;
      }
      return isEventSupported;
    })(),


    _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) { 
        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
      };
    }


    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;
      };
    }

    function setCss( str ) {
        mStyle.cssText = str;
    }

    function setCssAll( str1, str2 ) {
        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
    }

    function is( obj, type ) {
        return typeof obj === type;
    }

    function contains( str, substr ) {
        return !!~('' + str).indexOf(substr);
    }

    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;
    }

    function testDOMProps( props, obj, elem ) {
        for ( var i in props ) {
            var item = obj[props[i]];
            if ( item !== undefined) {

                            if (elem === false) return props[i];

                            if (is(item, 'function')){
                                return item.bind(elem || obj);
                }

                            return item;
            }
        }
        return false;
    }

    function testPropsAll( prop, prefixed, elem ) {

        var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1),
            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');

            if(is(prefixed, "string") || is(prefixed, "undefined")) {
          return testProps(props, prefixed);

            } else {
          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
          return testDOMProps(props, prefixed, elem);
        }
    }



    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'));
    };
    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;
    };

    tests['draganddrop'] = function() {
        var div = document.createElement('div');
        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
    };


    tests['csstransforms'] = function() {
        return !!testPropsAll('transform');
    };


    tests['svg'] = function() {
        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
    };

    tests['inlinesvg'] = function() {
      var div = document.createElement('div');
      div.innerHTML = '<svg/>';
      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
    };



    tests['svgclippaths'] = function() {
        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
    };

    for ( var feature in tests ) {
        if ( hasOwnProp(tests, feature) ) {
                                    featureName  = feature.toLowerCase();
            Modernizr[featureName] = tests[feature]();

            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
        }
    }



     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 ) {
                                              return Modernizr;
         }

         test = typeof test == 'function' ? test() : test;

         if (typeof enableClasses !== "undefined" && enableClasses) {
           docElement.className += ' ' + (test ? '' : 'no-') + feature;
         }
         Modernizr[feature] = test;

       }

       return Modernizr; 
     };


    setCss('');
    modElem = inputElem = null;


    Modernizr._version      = version;

    Modernizr._prefixes     = prefixes;
    Modernizr._domPrefixes  = domPrefixes;
    Modernizr._cssomPrefixes  = cssomPrefixes;


    Modernizr.hasEvent      = isEventSupported;

    Modernizr.testProp      = function(prop){
        return testProps([prop]);
    };

    Modernizr.testAllProps  = testPropsAll;


    Modernizr.testStyles    = injectElementWithStyles;
    return Modernizr;

})(window, window.document);
// data uri test.
// https://github.com/Modernizr/Modernizr/issues/14

// This test is asynchronous. Watch out.


// in IE7 in HTTPS this can cause a Mixed Content security popup. 
//  github.com/Modernizr/Modernizr/issues/362
// To avoid that you can create a new iframe and inject this.. perhaps..


(function(){

  var datauri = new Image();


  datauri.onerror = function() {
      Modernizr.addTest('datauri', function () { return false; });
  };  
  datauri.onload = function() {
      Modernizr.addTest('datauri', function () { return (datauri.width == 1 && datauri.height == 1); });
  };

  datauri.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";

})();
;

  // Attach to jQuery object
  $.Jcrop = Jcrop;

  $.Jcrop.supportsCanvas = Modernizr.canvas;
  $.Jcrop.supportsCanvasText = Modernizr.canvastext;
  $.Jcrop.supportsDragAndDrop = Modernizr.draganddrop;
  $.Jcrop.supportsDataURI = Modernizr.datauri;
  $.Jcrop.supportsSVG = Modernizr.svg;
  $.Jcrop.supportsInlineSVG = Modernizr.inlinesvg;
  $.Jcrop.supportsSVGClipPaths = Modernizr.svgclippaths;
  $.Jcrop.supportsCSSTransforms = Modernizr.csstransforms;
  $.Jcrop.supportsTouch = Modernizr.touch;

})(jQuery);
system/js/repeatable-uncompressed.js000064400000041623152177723720013676 0ustar00/**
 * @package		Joomla.JavaScript
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Options:
 * 		see defaults $.JRepeatable.defaults,
 * Options can be set through "data" atribute of the JRepeatable container (see example markup)
 *
 * Events:
 * 		$('input.form-field-repeatable')
 * 		.on('weready', function(e){
 * 			// fires when JRepeatable initialized
 * 		})
 * 		.on('prepare-template', function(e, template){
 * 			// fires when row template initialized
 * 		})
 * 		.on('prepare-modal', function(e, modal){
 * 			// fires when modal container initialized
 * 		})
 * 		.on('row-add', function(e, row){
 * 			// fires when new row added
 * 		})
 * 		.on('row-remove', function(e, row){
 * 			// fires before row removing
 * 		})
 * 		.on('value-update', function(e, value){
 * 			// fires before when value in hidden input was updated
 * 		});
 *
 * Dependancies: jQuery, Bootsrap.modal
 *
 * Example fields initial markup:
 *
 * <div id="jform_somename_container">
 *	<div id="jform_somename_modal" class="modal hide">
 * 		<table>
 * 			<thead>
 * 				<tr>
 * 					<th>Field label 1</th>
 * 					<th>Field label 2</th>
 * 					<th><a href="#" class="add">Add new</a></th>
 * 				</tr>
 * 			</thead>
 * 			<tbody>
 * 				<tr>
 * 					<td><input type="text" name="field1" /></td>
 * 					<td><input type="text" name="field2" /></td>
 * 					<td>
 * 						<a href="#" class="add">Add new after</a>
 * 						<a href="#" class="remove">Remove</a>
 * 					</td>
 * 				</tr>
 * 			</tbody>
 * 		</table>
 * 		<a href="#" class="close-modal">Close</a>
 * 	</div>
 * </div>
 * <button id="jform_somename_button" >Open modal</button>
 * <input type="hidden" name="jform[somename]" id="jform_somename" value=""
 * 		class="form-field-repeatable"
 * 		data-container="#jform_somename_container"
 * 		data-modal-element="#jform_somename_modal"
 * 		data-repeatable-element="table tbody tr"
 * 		data-bt-add="a.add" data-bt-remove="a.remove"
 * 		data-bt-modal-open="#jform_somename_button"
 * 		data-bt-modal-close="a.close-modal"
 * 		data-maximum="3" data-input="#jform_somename"
 * 		/>
 *
 * data-repeatable-element="table tbody tr" - means that <tr> inside <tbody> will be repeatable
 */

;(function($){
	"use strict";

    $.JRepeatable = function(input, options){
        // To avoid scope issues,
        var self = this;

        //direct call
        if(!self || self === window){
        	return new $.JRepeatable(input, options);
        }

        self.$input = $(input);

        // check if alredy exist
        if(self.$input.data("JRepeatable")){
        	return self;
        }

        // Add a reverse reference to the DOM object
        self.$input.data("JRepeatable", self);

        // method initialize
        self.init = function(){
        	// merge options
            self.options = $.extend({}, $.JRepeatable.defaults, options);

            self.$container = $(self.options.container);
            // Move out form the Form container
            // for prevent sending to server
            $('body').append(self.$container);

            // container where the rows is live
            self.$rowsContainer = self.$container.find(self.options.repeatableElement).parent();

            // prepare modal window
            self.prepareModal();

            // container for storing info about inputs
            self.inputs = [];
            self.values = {};

            // prepare a row template, and find available field names
            self.prepareTemplate();

            // check the values and keep it as object
            var val = self.$input.val();
            if(val){
            	// value can be not valid JSON
            	try {
            		self.values = JSON.parse(val);
				} catch (e) {
					if(e instanceof SyntaxError){
						// guess there a single quote problem
						try {
							val = val.replace(/'/g, '"').replace(/\\"/g, "\'");// ho ho ho
		            		self.values = JSON.parse(val);
						} catch (e) {
							// nop
							if(window.console){
    							console.log(e);
    						}
						}
					} else if(window.console){
						console.log(e);
					}
				}
            }

            // so init the form depend from values that we have
            self.buildRows();

            // bind open the modal
            $(document).on('click', self.options.btModalOpen, function (e) {
            	e.preventDefault();
            	self.$modalWindow.modal('show');
            });
            // bind close the modal
            self.$modalWindow.on('click', self.options.btModalClose, function (e) {
            	e.preventDefault();
            	self.$modalWindow.modal('hide');
            	// rollback
            	self.buildRows();
            });

            // bind save the modaldata
            self.$modalWindow.on('click', self.options.btModalSaveData, function (e) {
            	e.preventDefault();
            	self.$modalWindow.modal('hide');
            	self.refreshValue();
            });

            // bind add button
            self.$container.on('click', self.options.btAdd, function (e) {
            	e.preventDefault();
            	var after = $(this).parents(self.options.repeatableElement);
            	if(!after.length){
            		after = null;
            	}
            	self.addRow(after);
            });
            // bind remove button
            self.$container.on('click', self.options.btRemove, function (e) {
            	e.preventDefault();
            	var row = $(this).parents(self.options.repeatableElement);
            	self.removeRow(row);
            });

            // tell all that we a ready
            self.$input.trigger('weready');
        };

        // prepare a template that we will use for repeating
        self.prepareTemplate = function(){
        	//find available
        	var $rows = self.$container.find(self.options.repeatableElement);
        	var $row = $($rows.get(0));
        	// clear scripts that can be attached to the fields
        	try {
        		self.clearScripts($row);
			} catch (e) {
				if(window.console){
					console.log(e);
				}
			}

        	var inputs = $row.find('*[name]');
        	//keep the name and type for each
        	for(var i = 0, l = inputs.length; i < l; i++){
        		var name = $(inputs[i]).attr('name');
        		// check if alredy exist, for radio case
        		if(self.values[name]){
        			continue;
        		}
        		self.inputs.push({
        			name: name,
        			type: $(inputs[i]).attr('type') || inputs[i].tagName.toLowerCase()
        		});
        		// initialize values
        		self.values[name] = [];
        	}

        	// keep template
        	self.template = $row.prop('outerHTML');
        	// remove
        	$rows.remove();

        	// tell all that the template ready
            self.$input.trigger('prepare-template', self.template);
        };

        // prepare modal window
        self.prepareModal = function(){
        	var modalEl = $(self.options.modalElement);

        	// fix modal style
        	modalEl.css({
        		position: 'absolute',
        		width: 'auto',
        		'max-width': '100%'
        	});

        	modalEl.on('shown', function () {
        		self.resizeModal();
        	});
        	$(window).resize(function() {
        		self.resizeModal();
        	});

        	// init bootstrap modal
        	self.$modalWindow = modalEl.modal({show: false, backdrop: 'static'});

        	// tell all that the modal are ready
            self.$input.trigger('prepare-modal', self.$modalWindow);
        };

        //resize and count position for the modal popup
        self.resizeModal = function (){
        	if(!self.$modalWindow.is(':visible')){
        		// do nothing with hidden
        		return;
        	}
        	var docHalfWidth = $(document).width() / 2,
      	 	 	modalHalfWidth = self.$modalWindow.width() / 2,
      	 	 	rowsHalfWidth = self.$rowsContainer.width() / 2,
      	 	 	marginLeft = modalHalfWidth >= docHalfWidth ? 0 : -modalHalfWidth,
      	 	 	left = marginLeft ? '50%' : 0,
      	 	 	top = $(document).scrollTop() + $(window).height() * 0.2;//20% from top of visible win

        	self.$modalWindow.css({
       	    	 top: top,
       	    	 left: left,
       	         'margin-left': marginLeft,
       	         overflow: rowsHalfWidth > modalHalfWidth ? 'auto' : 'visible'
       	    });

        };

        // build rows
        self.buildRows = function(){
        	// clean up any old
        	var $oldRows = self.$rowsContainer.children();
        	if($oldRows.length){
        		self.removeRow($oldRows);
        	}

	        // go through values and add a new copy
	        // but make sure that at least one will be added
	        var count = self.values[Object.keys(self.values)[0]].length || 1,
            	row = null;
            for(var i = 0; i < count; i++){
            	row = self.addRow(row, i);
            }
        };

        // add new row
        self.addRow = function(after, valueKey){
        	// count how much we already have
        	var count = self.$container.find(self.options.repeatableElement).length;
        	if(count >= self.options.maximum){
        		return null;
        	}

        	// make new from template
        	var row = $.parseHTML(self.template);

        	//add to container
        	if(after){
        		$(after).after(row);
        	} else {
        		self.$rowsContainer.append(row);
        	}

        	var $row = $(row);
        	// fix names and id`s
        	self.fixUniqueAttributes($row, count + 1);
        	// set values
        	if(valueKey !== null && valueKey !== undefined){
            	for(var i = 0, l = self.inputs.length; i < l; i++){
            		var name  = self.inputs[i].name,
            			type  = self.inputs[i].type,
            			value = null;
            		if(self.values[name]){
            			value = self.values[name][valueKey];
            		}
            		// skip undefined
            		if(value === null || value === undefined){
            			continue;
            		}

            		if(type === 'radio'){
            			$row.find('*[name*="'+name+'"][value="' + value + '"]').attr('checked', 'checked');
            		}else if(type === 'checkbox'){
            			// check if there a multiple
            			if(value.length){
            				for(var v = 0, vl = value.length; v < vl; v++){
            					$row.find('*[name*="'+name+'"][value="' + value[v] + '"]').attr('checked', 'checked');
            				}
            			} else {
            				$row.find('*[name*="'+name+'"][value="' + value + '"]').attr('checked', 'checked');
            			}

            		} else {
            			$row.find('*[name*="'+name+'"]').val(value);
            		}
            	}
        	}

        	// try find out with related scripts,
        	// tricky thing, so be careful
        	try {
        		self.fixScripts($row);
			} catch (e) {
				if(window.console){
					console.log(e);
				}
			}

			// tell all about new row
            self.$input.trigger('row-add', $row);

        	return $row;
        };

        // remove row from container
        self.removeRow = function(row){
        	// tell all about row removing
            self.$input.trigger('row-remove', row);

        	$(row).remove();
        };

        //fix names ind id`s for field that in $row
        self.fixUniqueAttributes = function($row, count){
        	//all elements that have a "id" attribute
        	var haveIds = $row.find('*[id]');
        	self.increaseAttrName(haveIds, 'id', count);
        	// all labels that have a "for" attribute
        	var haveFor = $row.find('label[for]');
        	self.increaseAttrName(haveFor, 'for', count);
        	// all inputs that have a "name" attribute
        	var haveName = $row.find('*[name]');
        	self.increaseAttrName(haveName, 'name', count);
        };

        // increase attribute name like: attribute_value + '-' + count
        self.increaseAttrName = function (elements, attr, count){
        	for(var i = 0, l = elements.length; i < l; i++){
        		var $el =  $(elements[i]);
        		var oldValue = $el.attr(attr);
        		// set new
        		$el.attr(attr, count + '-' + oldValue);
        	}
        };

        // refresh value in the main input
        self.refreshValue = function(){
        	var $rows = self.$container.find(self.options.repeatableElement);
        	// reset existing
        	self.values = {};
        	// go through available input names
            for(var i = 0, l = self.inputs.length; i < l; i++){
            	var name = self.inputs[i].name,
            		type = self.inputs[i].type;
            	// init new
            	self.values[name] = [];
            	// find all inputs and take their values
            	for(var r = 0, rl = $rows.length; r < rl; r++){
            		var $row = $($rows[r]),
            			val  = null;
            		if(type === 'radio'){
            			val = $row.find('*[name*="'+name+'"]:checked').val();
            		}else if(type === 'checkbox'){
            			var checked = $row.find('*[name*="'+name+'"]:checked');
            			// test for multiple
            			if(checked.length > 1){
            				val = [];
            				for(var c = 0, cl = checked.length; c < cl; c++){
            					val.push($(checked[c]).val());
            				}
            			} else {
            				// single checkbox
            				val = checked.val();
            			}
            		}else{
            			val = $row.find('*[name*="'+name+'"]').val();
            		}
            		val = val === null ? '' : val;

            		self.values[name].push(val)
            	}
        	}
        	// put in to the main input
            self.$input.val(JSON.stringify(self.values));

            // tell all about value changed
            self.$input.trigger('value-update', self.values);
        };

        // remove scripts attached to fields
        self.clearScripts = function($row){
        	// destroy chosen if any
        	if($.fn.chosen){
                $row.find('select').each(function(){
					var $el = $(this);
					if ($el.data('chosen')) {
						$el.chosen('destroy');
						$el.addClass('here-was-chosen');
					}
				});
        	}
        	// colorpicker
        	if($.fn.minicolors){
        		$row.find('.minicolors input').each(function(){
        			$(this).minicolors('destroy', $(this));
        		});
        	}
        };

        // method for hack the scripts that can be related
        // to the one of field that in given $row
        self.fixScripts = function($row){

			// Chosen.js
			if ($.fn.chosen) {
				$row.find('select.here-was-chosen').removeClass('here-was-chosen').chosen();
			}

        	//color picker
        	$row.find('.minicolors').each(function() {
        		var $el = $(this);
        		$el.minicolors({
					control: $el.attr('data-control') || 'hue',
					position: $el.attr('data-position') || 'right',
					theme: 'bootstrap'
				});
			});

        	// fix media field
        	$row.find('a[onclick*="jInsertFieldValue"]').each(function(){
        		var $el = $(this),
        			inputId = $el.siblings('input[type="text"]').attr('id'),
        			$select = $el.prev(),
        			oldHref = $select.attr('href');
        		// update the clear button
        		$el.attr('onclick', "jInsertFieldValue('', '" + inputId + "');return false;");
        		// update select button
        		$select.attr('href', oldHref.replace(/&fieldid=(.+)&/, '&fieldid=' + inputId + '&'));
				jMediaRefreshPreview(inputId);
        	});
		
		// fix media field in ISIS Template
		$row.find('.field-media-wrapper').each(function(){
			var $el = $(this);
			$el.fieldMedia();
		});

        	// another modals
        	if(window.SqueezeBox && window.SqueezeBox.assign){
        		SqueezeBox.assign($row.find('a.modal').get(), {parse: 'rel'});
        	}
        };

        // Run initializer
        self.init();
    };

    // defaults
    $.JRepeatable.defaults = {
    	modalElement: "#modal-container", // id of the modal container
    	btModalOpen: "#open-modal", // id of the button for initiate the modal window
    	btModalClose: ".close-modal", // button for close the modal window, and rollback all changes
    	btModalSaveData: ".save-modal-data", // button for close the modal window, and keep the all changes
    	btAdd: "a.add", //  button selector for "add" action
    	btRemove: "a.remove",//  button selector for "remove" action
    	maximum: 10, // maximum repeating
    	repeatableElement: "table tbody tr"
    };

    $.fn.JRepeatable = function(options){
        return this.each(function(){
        	var options = options || {},
        		data = $(this).data();

        	for (var p in data) {
                // check options in the element
                if (data.hasOwnProperty(p)) {
                     options[p] = data[p];
                }
            }
         	new $.JRepeatable(this, options);
        });
    };

    // initialise all available
    // wait when all will be loaded, important for scripts fix
	$(window).on('load', function(){
		$('input.form-field-repeatable').JRepeatable();
	})

})(jQuery);

system/js/multiselect.js000064400000000657152177723720011421 0ustar00/*
        GNU General Public License version 2 or later; see LICENSE.txt
*/
(function(b){Joomla=window.Joomla||{};var a;Joomla.JMultiSelect=function(f){var e,c=function(g){a=b("#"+g).find("input[type=checkbox]");a.on("click",function(h){d(h)})},d=function(j){var h=b(j.target),l,k,g,i;if(j.shiftKey&&e.length){l=h.is(":checked");k=a.index(e);g=a.index(h);if(g<k){i=k;k=g;g=i}a.slice(k,g+1).attr("checked",l)}e=h};c(f)}})(jQuery);
system/js/mootools-core.js000064400000243665152177723720011700 0ustar00(function(){this.MooTools={version:"1.4.5",build:"74e34796f5f76640cdb98853004650aea1499d69"};var b=this.typeOf=function(b){if(null==b)return"null";if(null!=b.$family)return b.$family();if(b.nodeName){if(1==b.nodeType)return"element";if(3==b.nodeType)return/\S/.test(b.nodeValue)?"textnode":"whitespace"}else if("number"==typeof b.length){if(b.callee)return"arguments";if("item"in b)return"collection"}return typeof b};this.instanceOf=function(b,a){if(null==b)return!1;for(var c=b.$constructor||b.constructor;c;){if(c===
a)return!0;c=c.parent}return!b.hasOwnProperty?!1:b instanceof a};var a=this.Function,c=!0,d;for(d in{toString:1})c=null;c&&(c="hasOwnProperty,valueOf,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,constructor".split(","));a.prototype.overloadSetter=function(b){var a=this;return function(h,k){if(null==h)return this;if(b||"string"!=typeof h){for(var e in h)a.call(this,e,h[e]);if(c)for(var d=c.length;d--;)e=c[d],h.hasOwnProperty(e)&&a.call(this,e,h[e])}else a.call(this,h,k);return this}};
a.prototype.overloadGetter=function(b){var a=this;return function(c){var h,k;"string"!=typeof c?h=c:1<arguments.length?h=arguments:b&&(h=[c]);if(h){k={};for(var e=0;e<h.length;e++)k[h[e]]=a.call(this,h[e])}else k=a.call(this,c);return k}};a.prototype.extend=function(b,a){this[b]=a}.overloadSetter();a.prototype.implement=function(b,a){this.prototype[b]=a}.overloadSetter();var e=Array.prototype.slice;a.from=function(a){return"function"==b(a)?a:function(){return a}};Array.from=function(a){return null==
a?[]:f.isEnumerable(a)&&"string"!=typeof a?"array"==b(a)?a:e.call(a):[a]};Number.from=function(b){b=parseFloat(b);return isFinite(b)?b:null};String.from=function(b){return b+""};a.implement({hide:function(){this.$hidden=!0;return this},protect:function(){this.$protected=!0;return this}});var f=this.Type=function(a,c){if(a){var h=a.toLowerCase();f["is"+a]=function(a){return b(a)==h};null!=c&&(c.prototype.$family=function(){return h}.hide())}if(null==c)return null;c.extend(this);c.$constructor=f;return c.prototype.$constructor=
c},g=Object.prototype.toString;f.isEnumerable=function(b){return null!=b&&"number"==typeof b.length&&"[object Function]"!=g.call(b)};var i={},j=function(a){a=b(a.prototype);return i[a]||(i[a]=[])},m=function(a,c){if(!c||!c.$hidden){for(var k=j(this),d=0;d<k.length;d++){var o=k[d];"type"==b(o)?m.call(o,a,c):o.call(this,a,c)}k=this.prototype[a];if(null==k||!k.$protected)this.prototype[a]=c;null==this[a]&&"function"==b(c)&&h.call(this,a,function(b){return c.apply(b,e.call(arguments,1))})}},h=function(b,
a){if(!a||!a.$hidden){var c=this[b];if(null==c||!c.$protected)this[b]=a}};f.implement({implement:m.overloadSetter(),extend:h.overloadSetter(),alias:function(b,a){m.call(this,b,this.prototype[a])}.overloadSetter(),mirror:function(b){j(this).push(b);return this}});new f("Type",f);var k=function(b,a,c){var h=a!=Object,e=a.prototype;h&&(a=new f(b,a));for(var b=0,d=c.length;b<d;b++){var o=c[b],q=a[o],g=e[o];q&&q.protect();h&&g&&a.implement(o,g.protect())}if(h){var j=e.propertyIsEnumerable(c[0]);a.forEachMethod=
function(b){if(!j)for(var a=0,h=c.length;a<h;a++)b.call(e,e[c[a]],c[a]);for(var k in e)b.call(e,e[k],k)}}return k};k("String",String,"charAt,charCodeAt,concat,indexOf,lastIndexOf,match,quote,replace,search,slice,split,substr,substring,trim,toLowerCase,toUpperCase".split(","))("Array",Array,"pop,push,reverse,shift,sort,splice,unshift,concat,join,slice,indexOf,lastIndexOf,filter,forEach,every,map,some,reduce,reduceRight".split(","))("Number",Number,["toExponential","toFixed","toLocaleString","toPrecision"])("Function",
a,["apply","call","bind"])("RegExp",RegExp,["exec","test"])("Object",Object,"create,defineProperty,defineProperties,keys,getPrototypeOf,getOwnPropertyDescriptor,getOwnPropertyNames,preventExtensions,isExtensible,seal,isSealed,freeze,isFrozen".split(","))("Date",Date,["now"]);Object.extend=h.overloadSetter();Date.extend("now",function(){return+new Date});new f("Boolean",Boolean);Number.prototype.$family=function(){return isFinite(this)?"number":"null"}.hide();Number.extend("random",function(b,a){return Math.floor(Math.random()*
(a-b+1)+b)});var o=Object.prototype.hasOwnProperty;Object.extend("forEach",function(b,a,c){for(var h in b)o.call(b,h)&&a.call(c,b[h],h,b)});Object.each=Object.forEach;Array.implement({forEach:function(b,a){for(var c=0,h=this.length;c<h;c++)c in this&&b.call(a,this[c],c,this)},each:function(b,a){Array.forEach(this,b,a);return this}});var q=function(a){switch(b(a)){case "array":return a.clone();case "object":return Object.clone(a);default:return a}};Array.implement("clone",function(){for(var b=this.length,
a=Array(b);b--;)a[b]=q(this[b]);return a});var u=function(a,c,h){switch(b(h)){case "object":"object"==b(a[c])?Object.merge(a[c],h):a[c]=Object.clone(h);break;case "array":a[c]=h.clone();break;default:a[c]=h}return a};Object.extend({merge:function(a,c,h){if("string"==b(c))return u(a,c,h);for(var k=1,e=arguments.length;k<e;k++){var d=arguments[k],o;for(o in d)u(a,o,d[o])}return a},clone:function(b){var a={},c;for(c in b)a[c]=q(b[c]);return a},append:function(b){for(var a=1,c=arguments.length;a<c;a++){var h=
arguments[a]||{},k;for(k in h)b[k]=h[k]}return b}});["Object","WhiteSpace","TextNode","Collection","Arguments"].each(function(b){new f(b)});var r=Date.now();String.extend("uniqueID",function(){return(r++).toString(36)})})();
Array.implement({every:function(b,a){for(var c=0,d=this.length>>>0;c<d;c++)if(c in this&&!b.call(a,this[c],c,this))return!1;return!0},filter:function(b,a){for(var c=[],d,e=0,f=this.length>>>0;e<f;e++)e in this&&(d=this[e],b.call(a,d,e,this)&&c.push(d));return c},indexOf:function(b,a){for(var c=this.length>>>0,d=0>a?Math.max(0,c+a):a||0;d<c;d++)if(this[d]===b)return d;return-1},map:function(b,a){for(var c=this.length>>>0,d=Array(c),e=0;e<c;e++)e in this&&(d[e]=b.call(a,this[e],e,this));return d},some:function(b,
a){for(var c=0,d=this.length>>>0;c<d;c++)if(c in this&&b.call(a,this[c],c,this))return!0;return!1},clean:function(){return this.filter(function(b){return null!=b})},invoke:function(b){var a=Array.slice(arguments,1);return this.map(function(c){return c[b].apply(c,a)})},associate:function(b){for(var a={},c=Math.min(this.length,b.length),d=0;d<c;d++)a[b[d]]=this[d];return a},link:function(b){for(var a={},c=0,d=this.length;c<d;c++)for(var e in b)if(b[e](this[c])){a[e]=this[c];delete b[e];break}return a},
contains:function(b,a){return-1!=this.indexOf(b,a)},append:function(b){this.push.apply(this,b);return this},getLast:function(){return this.length?this[this.length-1]:null},getRandom:function(){return this.length?this[Number.random(0,this.length-1)]:null},include:function(b){this.contains(b)||this.push(b);return this},combine:function(b){for(var a=0,c=b.length;a<c;a++)this.include(b[a]);return this},erase:function(b){for(var a=this.length;a--;)this[a]===b&&this.splice(a,1);return this},empty:function(){this.length=
0;return this},flatten:function(){for(var b=[],a=0,c=this.length;a<c;a++){var d=typeOf(this[a]);"null"!=d&&(b=b.concat("array"==d||"collection"==d||"arguments"==d||instanceOf(this[a],Array)?Array.flatten(this[a]):this[a]))}return b},pick:function(){for(var b=0,a=this.length;b<a;b++)if(null!=this[b])return this[b];return null},hexToRgb:function(b){if(3!=this.length)return null;var a=this.map(function(b){1==b.length&&(b+=b);return b.toInt(16)});return b?a:"rgb("+a+")"},rgbToHex:function(b){if(3>this.length)return null;
if(4==this.length&&0==this[3]&&!b)return"transparent";for(var a=[],c=0;3>c;c++){var d=(this[c]-0).toString(16);a.push(1==d.length?"0"+d:d)}return b?a:"#"+a.join("")}});
String.implement({test:function(b,a){return("regexp"==typeOf(b)?b:RegExp(""+b,a)).test(this)},contains:function(b,a){return a?-1<(a+this+a).indexOf(a+b+a):-1<(""+this).indexOf(b)},trim:function(){return(""+this).replace(/^\s+|\s+$/g,"")},clean:function(){return(""+this).replace(/\s+/g," ").trim()},camelCase:function(){return(""+this).replace(/-\D/g,function(b){return b.charAt(1).toUpperCase()})},hyphenate:function(){return(""+this).replace(/[A-Z]/g,function(b){return"-"+b.charAt(0).toLowerCase()})},
capitalize:function(){return(""+this).replace(/\b[a-z]/g,function(b){return b.toUpperCase()})},escapeRegExp:function(){return(""+this).replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(b){return parseInt(this,b||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(b){var a=(""+this).match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return a?a.slice(1).hexToRgb(b):null},rgbToHex:function(b){var a=(""+this).match(/\d{1,3}/g);return a?a.rgbToHex(b):null},substitute:function(b,a){return(""+
this).replace(a||/\\?\{([^{}]+)\}/g,function(a,d){return"\\"==a.charAt(0)?a.slice(1):null!=b[d]?b[d]:""})}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this))},round:function(b){b=Math.pow(10,b||0).toFixed(0>b?-b:0);return Math.round(this*b)/b},times:function(b,a){for(var c=0;c<this;c++)b.call(a,c,this)},toFloat:function(){return parseFloat(this)},toInt:function(b){return parseInt(this,b||10)}});Number.alias("each","times");
(function(b){var a={};b.each(function(b){Number[b]||(a[b]=function(){return Math[b].apply(null,[this].concat(Array.from(arguments)))})});Number.implement(a)})("abs,acos,asin,atan,atan2,ceil,cos,exp,floor,log,max,min,pow,sin,sqrt,tan".split(","));Function.extend({attempt:function(){for(var b=0,a=arguments.length;b<a;b++)try{return arguments[b]()}catch(c){}return null}});
Function.implement({attempt:function(b,a){try{return this.apply(a,Array.from(b))}catch(c){}return null},bind:function(b){var a=this,c=1<arguments.length?Array.slice(arguments,1):null,d=function(){},e=function(){var f=b,g=arguments.length;this instanceof e&&(d.prototype=a.prototype,f=new d);g=!c&&!g?a.call(f):a.apply(f,c&&g?c.concat(Array.slice(arguments)):c||arguments);return f==b?g:f};return e},pass:function(b,a){var c=this;null!=b&&(b=Array.from(b));return function(){return c.apply(a,b||arguments)}},
delay:function(b,a,c){return setTimeout(this.pass(null==c?[]:c,a),b)},periodical:function(b,a,c){return setInterval(this.pass(null==c?[]:c,a),b)}});
(function(){var b=Object.prototype.hasOwnProperty;Object.extend({subset:function(b,c){for(var d={},e=0,f=c.length;e<f;e++){var g=c[e];g in b&&(d[g]=b[g])}return d},map:function(a,c,d){var e={},f;for(f in a)b.call(a,f)&&(e[f]=c.call(d,a[f],f,a));return e},filter:function(a,c,d){var e={},f;for(f in a){var g=a[f];b.call(a,f)&&c.call(d,g,f,a)&&(e[f]=g)}return e},every:function(a,c,d){for(var e in a)if(b.call(a,e)&&!c.call(d,a[e],e))return!1;return!0},some:function(a,c,d){for(var e in a)if(b.call(a,e)&&
c.call(d,a[e],e))return!0;return!1},keys:function(a){var c=[],d;for(d in a)b.call(a,d)&&c.push(d);return c},values:function(a){var c=[],d;for(d in a)b.call(a,d)&&c.push(a[d]);return c},getLength:function(b){return Object.keys(b).length},keyOf:function(a,c){for(var d in a)if(b.call(a,d)&&a[d]===c)return d;return null},contains:function(b,c){return null!=Object.keyOf(b,c)},toQueryString:function(b,c){var d=[];Object.each(b,function(b,a){c&&(a=c+"["+a+"]");var g;switch(typeOf(b)){case "object":g=Object.toQueryString(b,
a);break;case "array":var i={};b.each(function(b,a){i[a]=b});g=Object.toQueryString(i,a);break;default:g=a+"="+encodeURIComponent(b)}null!=b&&d.push(g)});return d.join("&")}})})();
(function(){var b=this.document,a=b.window=this,c=navigator.userAgent.toLowerCase(),d=navigator.platform.toLowerCase(),e=c.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,"unknown",0],f=this.Browser={extend:Function.prototype.extend,name:"version"==e[1]?e[3]:e[1],version:"ie"==e[1]&&b.documentMode||parseFloat("opera"==e[1]&&e[4]?e[4]:e[2]),Platform:{name:c.match(/ip(?:ad|od|hone)/)?"ios":(c.match(/(?:webos|android)/)||d.match(/mac|win|linux/)||
["other"])[0]},Features:{xpath:!!b.evaluate,air:!!a.runtime,query:!!b.querySelector,json:!!a.JSON},Plugins:{}};f[f.name]=!0;f[f.name+parseInt(f.version,10)]=!0;f.Platform[f.Platform.name]=!0;f.Request=function(){var b=function(){return new XMLHttpRequest},a=function(){return new ActiveXObject("MSXML2.XMLHTTP")},c=function(){return new ActiveXObject("Microsoft.XMLHTTP")};return Function.attempt(function(){b();return b},function(){a();return a},function(){c();return c})}();f.Features.xhr=!!f.Request;
c=(Function.attempt(function(){return navigator.plugins["Shockwave Flash"].description},function(){return(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")})||"0 r0").match(/\d+/g);f.Plugins.Flash={version:Number(c[0]||"0."+c[1])||0,build:Number(c[2])||0};f.exec=function(c){if(!c)return c;if(a.execScript)a.execScript(c);else{var h=b.createElement("script");h.setAttribute("type","text/javascript");h.text=c;b.head.appendChild(h);b.head.removeChild(h)}return c};String.implement("stripScripts",
function(b){var a="",c=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(b,c){a+=c+"\n";return""});!0===b?f.exec(a):"function"==typeOf(b)&&b(a,c);return c});f.extend({Document:this.Document,Window:this.Window,Element:this.Element,Event:this.Event});this.Window=this.$constructor=new Type("Window",function(){});this.$family=Function.from("window").hide();Window.mirror(function(b,c){a[b]=c});this.Document=b.$constructor=new Type("Document",function(){});b.$family=Function.from("document").hide();
Document.mirror(function(a,c){b[a]=c});b.html=b.documentElement;b.head||(b.head=b.getElementsByTagName("head")[0]);if(b.execCommand)try{b.execCommand("BackgroundImageCache",!1,!0)}catch(g){}if(this.attachEvent&&!this.addEventListener){var i=function(){this.detachEvent("onunload",i);b.head=b.html=b.window=null};this.attachEvent("onunload",i)}var j=Array.from;try{j(b.html.childNodes)}catch(m){Array.from=function(b){if(typeof b!="string"&&Type.isEnumerable(b)&&typeOf(b)!="array"){for(var a=b.length,
c=Array(a);a--;)c[a]=b[a];return c}return j(b)};var h=Array.prototype,k=h.slice;"pop,push,reverse,shift,sort,splice,unshift,concat,join,slice".split(",").each(function(b){var a=h[b];Array[b]=function(b){return a.apply(Array.from(b),k.call(arguments,1))}})}})();
(function(){var b={},a=this.DOMEvent=new Type("DOMEvent",function(a,d){d||(d=window);a=a||d.event;if(a.$extended)return a;this.event=a;this.$extended=!0;this.shift=a.shiftKey;this.control=a.ctrlKey;this.alt=a.altKey;this.meta=a.metaKey;for(var e=this.type=a.type,f=a.target||a.srcElement;f&&3==f.nodeType;)f=f.parentNode;this.target=document.id(f);if(0==e.indexOf("key")){if(f=this.code=a.which||a.keyCode,this.key=b[f],"keydown"==e&&(111<f&&124>f?this.key="f"+(f-111):95<f&&106>f&&(this.key=f-96)),null==
this.key)this.key=String.fromCharCode(f).toLowerCase()}else if("click"==e||"dblclick"==e||"contextmenu"==e||"DOMMouseScroll"==e||0==e.indexOf("mouse")){f=d.document;f=!f.compatMode||"CSS1Compat"==f.compatMode?f.html:f.body;this.page={x:null!=a.pageX?a.pageX:a.clientX+f.scrollLeft,y:null!=a.pageY?a.pageY:a.clientY+f.scrollTop};this.client={x:null!=a.pageX?a.pageX-d.pageXOffset:a.clientX,y:null!=a.pageY?a.pageY-d.pageYOffset:a.clientY};if("DOMMouseScroll"==e||"mousewheel"==e)this.wheel=a.wheelDelta?
a.wheelDelta/120:-(a.detail||0)/3;this.rightClick=3==a.which||2==a.button;if("mouseover"==e||"mouseout"==e){for(e=a.relatedTarget||a[("mouseover"==e?"from":"to")+"Element"];e&&3==e.nodeType;)e=e.parentNode;this.relatedTarget=document.id(e)}}else if(0==e.indexOf("touch")||0==e.indexOf("gesture"))if(this.rotation=a.rotation,this.scale=a.scale,this.targetTouches=a.targetTouches,this.changedTouches=a.changedTouches,(e=this.touches=a.touches)&&e[0])e=e[0],this.page={x:e.pageX,y:e.pageY},this.client={x:e.clientX,
y:e.clientY};this.client||(this.client={});this.page||(this.page={})});a.implement({stop:function(){return this.preventDefault().stopPropagation()},stopPropagation:function(){this.event.stopPropagation?this.event.stopPropagation():this.event.cancelBubble=!0;return this},preventDefault:function(){this.event.preventDefault?this.event.preventDefault():this.event.returnValue=!1;return this}});a.defineKey=function(a,d){b[a]=d;return this};a.defineKeys=a.defineKey.overloadSetter(!0);a.defineKeys({38:"up",
40:"down",37:"left",39:"right",27:"esc",32:"space",8:"backspace",9:"tab",46:"delete",13:"enter"})})();
(function(){var b=this.Class=new Type("Class",function(e){instanceOf(e,Function)&&(e={initialize:e});var d=function(){c(this);if(d.$prototyping)return this;this.$caller=null;var a=this.initialize?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;return a}.extend(this).implement(e);d.$constructor=b;d.prototype.$constructor=d;d.prototype.parent=a;return d}),a=function(){if(!this.$caller)throw Error('The method "parent" cannot be called.');var a=this.$caller.$name,b=this.$caller.$owner.parent,
b=b?b.prototype[a]:null;if(!b)throw Error('The method "'+a+'" has no parent.');return b.apply(this,arguments)},c=function(a){for(var b in a){var e=a[b];switch(typeOf(e)){case "object":var d=function(){};d.prototype=e;a[b]=c(new d);break;case "array":a[b]=e.clone()}}return a},d=function(a,b,c){c.$origin&&(c=c.$origin);var e=function(){if(c.$protected&&this.$caller==null)throw Error('The method "'+b+'" cannot be called.');var a=this.caller,h=this.$caller;this.caller=h;this.$caller=e;var k=c.apply(this,
arguments);this.$caller=h;this.caller=a;return k}.extend({$owner:a,$origin:c,$name:b});return e},e=function(a,c,e){if(b.Mutators.hasOwnProperty(a)&&(c=b.Mutators[a].call(this,c),null==c))return this;if("function"==typeOf(c)){if(c.$hidden)return this;this.prototype[a]=e?c:d(this,a,c)}else Object.merge(this.prototype,a,c);return this};b.implement("implement",e.overloadSetter());b.Mutators={Extends:function(a){this.parent=a;a.$prototyping=!0;var b=new a;delete a.$prototyping;this.prototype=b},Implements:function(a){Array.from(a).each(function(a){var a=
new a,b;for(b in a)e.call(this,b,a[b],!0)},this)}}})();
(function(){this.Chain=new Class({$chain:[],chain:function(){this.$chain.append(Array.flatten(arguments));return this},callChain:function(){return this.$chain.length?this.$chain.shift().apply(this,arguments):!1},clearChain:function(){this.$chain.empty();return this}});var b=function(a){return a.replace(/^on([A-Z])/,function(a,b){return b.toLowerCase()})};this.Events=new Class({$events:{},addEvent:function(a,c,d){a=b(a);this.$events[a]=(this.$events[a]||[]).include(c);d&&(c.internal=!0);return this},
addEvents:function(a){for(var b in a)this.addEvent(b,a[b]);return this},fireEvent:function(a,c,d){a=b(a);a=this.$events[a];if(!a)return this;c=Array.from(c);a.each(function(a){d?a.delay(d,this,c):a.apply(this,c)},this);return this},removeEvent:function(a,c){var a=b(a),d=this.$events[a];if(d&&!c.internal){var e=d.indexOf(c);-1!=e&&delete d[e]}return this},removeEvents:function(a){var c;if("object"==typeOf(a)){for(c in a)this.removeEvent(c,a[c]);return this}a&&(a=b(a));for(c in this.$events)if(!(a&&
a!=c))for(var d=this.$events[c],e=d.length;e--;)e in d&&this.removeEvent(c,d[e]);return this}});this.Options=new Class({setOptions:function(){var a=this.options=Object.merge.apply(null,[{},this.options].append(arguments));if(this.addEvent)for(var b in a)"function"==typeOf(a[b])&&/^on[A-Z]/.test(b)&&(this.addEvent(b,a[b]),delete a[b]);return this}})})();
(function(){function b(b,h,o,l,f,q,j,g,x,F,t,B,A,D,v,z){if(h||-1===c)if(a.expressions[++c]=[],d=-1,h)return"";if(o||l||-1===d)o=o||" ",b=a.expressions[c],e&&b[d]&&(b[d].reverseCombinator=m(o)),b[++d]={combinator:o,tag:"*"};o=a.expressions[c][d];if(f)o.tag=f.replace(i,"");else if(q)o.id=q.replace(i,"");else if(j)j=j.replace(i,""),o.classList||(o.classList=[]),o.classes||(o.classes=[]),o.classList.push(j),o.classes.push({value:j,regexp:RegExp("(^|\\s)"+k(j)+"(\\s|$)")});else if(A)z=(z=z||v)?z.replace(i,
""):null,o.pseudos||(o.pseudos=[]),o.pseudos.push({key:A.replace(i,""),value:z,type:1==B.length?"class":"element"});else if(g){var g=g.replace(i,""),t=(t||"").replace(i,""),y,E;switch(x){case "^=":E=RegExp("^"+k(t));break;case "$=":E=RegExp(k(t)+"$");break;case "~=":E=RegExp("(^|\\s)"+k(t)+"(\\s|$)");break;case "|=":E=RegExp("^"+k(t)+"(-|$)");break;case "=":y=function(a){return t==a};break;case "*=":y=function(a){return a&&-1<a.indexOf(t)};break;case "!=":y=function(a){return t!=a};break;default:y=
function(a){return!!a}}""==t&&/^[*$^]=$/.test(x)&&(y=function(){return!1});y||(y=function(a){return a&&E.test(a)});o.attributes||(o.attributes=[]);o.attributes.push({key:g,operator:x,value:t,test:y})}return""}var a,c,d,e,f={},g={},i=/\\/g,j=function(k,d){if(null==k)return null;if(!0===k.Slick)return k;var k=(""+k).replace(/^\s+|\s+$/g,""),q=(e=!!d)?g:f;if(q[k])return q[k];a={Slick:!0,expressions:[],raw:k,reverse:function(){return j(this.raw,!0)}};for(c=-1;k!=(k=k.replace(o,b)););a.length=a.expressions.length;
return q[a.raw]=e?h(a):a},m=function(a){return"!"===a?" ":" "===a?"!":/^!/.test(a)?a.replace(/^!/,""):"!"+a},h=function(a){for(var b=a.expressions,c=0;c<b.length;c++){for(var h=b[c],k={parts:[],tag:"*",combinator:m(h[0].combinator)},e=0;e<h.length;e++){var d=h[e];d.reverseCombinator||(d.reverseCombinator=" ");d.combinator=d.reverseCombinator;delete d.reverseCombinator}h.reverse().push(k)}return a},k=function(a){return a.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,function(a){return"\\"+a})},o=RegExp("^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(<unicode>+)(?:\\((?:(?:([\"'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)".replace(/<combinator>/,
"["+k(">+~`!@$%^&={}\\;</")+"]").replace(/<unicode>/g,"(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])").replace(/<unicode1>/g,"(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])")),q=this.Slick||{};q.parse=function(a){return j(a)};q.escapeRegExp=k;this.Slick||(this.Slick=q)}).apply("undefined"!=typeof exports?exports:this);
(function(){var b={},a={},c=Object.prototype.toString;b.isNativeCode=function(a){return/\{\s*\[native code\]\s*\}/.test(""+a)};b.isXML=function(a){return!!a.xmlVersion||!!a.xml||"[object XMLDocument]"==c.call(a)||9==a.nodeType&&"HTML"!=a.documentElement.nodeName};b.setDocument=function(b){var c=b.nodeType;if(9!=c)if(c)b=b.ownerDocument;else if(b.navigator)b=b.document;else return;if(this.document!==b){this.document=b;var c=b.documentElement,e=this.getUIDXML(c),d=a[e],f;if(!d){d=a[e]={};d.root=c;d.isXMLDocument=
this.isXML(b);d.brokenStarGEBTN=d.starSelectsClosedQSA=d.idGetsName=d.brokenMixedCaseQSA=d.brokenGEBCN=d.brokenCheckedQSA=d.brokenEmptyAttributeQSA=d.isHTMLDocument=d.nativeMatchesSelector=!1;var j,m,l,s,g,n=b.createElement("div"),i=b.body||b.getElementsByTagName("body")[0]||c;i.appendChild(n);try{n.innerHTML='<a id="slick_uniqueid"></a>',d.isHTMLDocument=!!b.getElementById("slick_uniqueid")}catch(x){}if(d.isHTMLDocument){n.style.display="none";n.appendChild(b.createComment(""));e=1<n.getElementsByTagName("*").length;
try{n.innerHTML="foo</foo>",j=(g=n.getElementsByTagName("*"))&&!!g.length&&"/"==g[0].nodeName.charAt(0)}catch(F){}d.brokenStarGEBTN=e||j;try{n.innerHTML='<a name="slick_uniqueid"></a><b id="slick_uniqueid"></b>',d.idGetsName=b.getElementById("slick_uniqueid")===n.firstChild}catch(t){}if(n.getElementsByClassName){try{n.innerHTML='<a class="f"></a><a class="b"></a>',n.getElementsByClassName("b").length,n.firstChild.className="b",l=2!=n.getElementsByClassName("b").length}catch(B){}try{n.innerHTML='<a class="a"></a><a class="f b a"></a>',
m=2!=n.getElementsByClassName("a").length}catch(A){}d.brokenGEBCN=l||m}if(n.querySelectorAll){try{n.innerHTML="foo</foo>",g=n.querySelectorAll("*"),d.starSelectsClosedQSA=g&&!!g.length&&"/"==g[0].nodeName.charAt(0)}catch(D){}try{n.innerHTML='<a class="MiX"></a>',d.brokenMixedCaseQSA=!n.querySelectorAll(".MiX").length}catch(v){}try{n.innerHTML='<select><option selected="selected">a</option></select>',d.brokenCheckedQSA=0==n.querySelectorAll(":checked").length}catch(z){}try{n.innerHTML='<a class=""></a>',
d.brokenEmptyAttributeQSA=0!=n.querySelectorAll('[class*=""]').length}catch(y){}}try{n.innerHTML='<form action="s"><input id="action"/></form>',s="s"!=n.firstChild.getAttribute("action")}catch(E){}d.nativeMatchesSelector=c.matchesSelector||c.mozMatchesSelector||c.webkitMatchesSelector;if(d.nativeMatchesSelector)try{d.nativeMatchesSelector.call(c,":slick"),d.nativeMatchesSelector=null}catch(G){}}try{c.slick_expando=1,delete c.slick_expando,d.getUID=this.getUIDHTML}catch(H){d.getUID=this.getUIDXML}i.removeChild(n);
n=g=i=null;d.getAttribute=d.isHTMLDocument&&s?function(a,b){var c=this.attributeGetters[b];return c?c.call(a):(c=a.getAttributeNode(b))?c.nodeValue:null}:function(a,b){var c=this.attributeGetters[b];return c?c.call(a):a.getAttribute(b)};d.hasAttribute=c&&this.isNativeCode(c.hasAttribute)?function(a,b){return a.hasAttribute(b)}:function(a,b){a=a.getAttributeNode(b);return!(!a||!a.specified&&!a.nodeValue)};j=c&&this.isNativeCode(c.contains);m=b&&this.isNativeCode(b.contains);d.contains=j&&m?function(a,
b){return a.contains(b)}:j&&!m?function(a,c){return a===c||(a===b?b.documentElement:a).contains(c)}:c&&c.compareDocumentPosition?function(a,b){return a===b||!!(a.compareDocumentPosition(b)&16)}:function(a,b){if(b){do if(b===a)return!0;while(b=b.parentNode)}return!1};d.documentSorter=c.compareDocumentPosition?function(a,b){return!a.compareDocumentPosition||!b.compareDocumentPosition?0:a.compareDocumentPosition(b)&4?-1:a===b?0:1}:"sourceIndex"in c?function(a,b){return!a.sourceIndex||!b.sourceIndex?
0:a.sourceIndex-b.sourceIndex}:b.createRange?function(a,b){if(!a.ownerDocument||!b.ownerDocument)return 0;var c=a.ownerDocument.createRange(),h=b.ownerDocument.createRange();c.setStart(a,0);c.setEnd(a,0);h.setStart(b,0);h.setEnd(b,0);return c.compareBoundaryPoints(Range.START_TO_END,h)}:null;c=null}for(f in d)this[f]=d[f]}};var d=/^([#.]?)((?:[\w-]+|\*))$/,e=/\[.+[*$^]=(?:""|'')?\]/,f={};b.search=function(a,b,c,j){var g=this.found=j?null:c||[];if(a)if(a.navigator)a=a.document;else{if(!a.nodeType)return g}else return g;
var r,i,l=this.uniques={},c=!(!c||!c.length),s=9==a.nodeType;this.document!==(s?a:a.ownerDocument)&&this.setDocument(a);if(c)for(i=g.length;i--;)l[this.getUID(g[i])]=!0;if("string"==typeof b){var p=b.match(d);a:if(p){i=p[1];var n=p[2];if(i)if("#"==i){if(!this.isHTMLDocument||!s)break a;p=a.getElementById(n);if(!p)return g;if(this.idGetsName&&p.getAttributeNode("id").nodeValue!=n)break a;if(j)return p||null;(!c||!l[this.getUID(p)])&&g.push(p)}else{if("."==i){if(!this.isHTMLDocument||(!a.getElementsByClassName||
this.brokenGEBCN)&&a.querySelectorAll)break a;if(a.getElementsByClassName&&!this.brokenGEBCN){r=a.getElementsByClassName(n);if(j)return r[0]||null;for(i=0;p=r[i++];)(!c||!l[this.getUID(p)])&&g.push(p)}else{var C=RegExp("(^|\\s)"+m.escapeRegExp(n)+"(\\s|$)");r=a.getElementsByTagName("*");for(i=0;p=r[i++];)if((className=p.className)&&C.test(className)){if(j)return p;(!c||!l[this.getUID(p)])&&g.push(p)}}}}else{if("*"==n&&this.brokenStarGEBTN)break a;r=a.getElementsByTagName(n);if(j)return r[0]||null;
for(i=0;p=r[i++];)(!c||!l[this.getUID(p)])&&g.push(p)}c&&this.sort(g);return j?null:g}a:if(a.querySelectorAll&&this.isHTMLDocument&&!f[b]&&!this.brokenMixedCaseQSA&&!(this.brokenCheckedQSA&&-1<b.indexOf(":checked")||this.brokenEmptyAttributeQSA&&e.test(b)||!s&&-1<b.indexOf(",")||m.disableQSA)){i=b;p=a;if(!s){var x=p.getAttribute("id");p.setAttribute("id","slickid__");i="#slickid__ "+i;a=p.parentNode}try{if(j)return a.querySelector(i)||null;r=a.querySelectorAll(i)}catch(F){f[b]=1;break a}finally{s||
(x?p.setAttribute("id",x):p.removeAttribute("id"),a=p)}if(this.starSelectsClosedQSA)for(i=0;p=r[i++];)"@"<p.nodeName&&(!c||!l[this.getUID(p)])&&g.push(p);else for(i=0;p=r[i++];)(!c||!l[this.getUID(p)])&&g.push(p);c&&this.sort(g);return g}r=this.Slick.parse(b);if(!r.length)return g}else{if(null==b)return g;if(b.Slick)r=b;else{if(this.contains(a.documentElement||a,b))g?g.push(b):g=b;return g}}this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=!c&&(j||1==r.length&&
1==r.expressions[0].length)?this.pushArray:this.pushUID;null==g&&(g=[]);var t,B,A,D,v,z,y=r.expressions;i=0;a:for(;z=y[i];i++)for(b=0;v=z[b];b++){x="combinator:"+v.combinator;if(!this[x])continue a;s=this.isXMLDocument?v.tag:v.tag.toUpperCase();p=v.id;n=v.classList;A=v.classes;D=v.attributes;v=v.pseudos;t=b===z.length-1;this.bitUniques={};t?(this.uniques=l,this.found=g):(this.uniques={},this.found=[]);if(0===b){if(this[x](a,s,p,A,D,v,n),j&&t&&g.length)break a}else if(j&&t){t=0;for(B=C.length;t<B;t++)if(this[x](C[t],
s,p,A,D,v,n),g.length)break a}else{t=0;for(B=C.length;t<B;t++)this[x](C[t],s,p,A,D,v,n)}C=this.found}(c||1<r.expressions.length)&&this.sort(g);return j?g[0]||null:g};b.uidx=1;b.uidk="slick-uniqueid";b.getUIDXML=function(a){var b=a.getAttribute(this.uidk);b||(b=this.uidx++,a.setAttribute(this.uidk,b));return b};b.getUIDHTML=function(a){return a.uniqueNumber||(a.uniqueNumber=this.uidx++)};b.sort=function(a){if(!this.documentSorter)return a;a.sort(this.documentSorter);return a};b.cacheNTH={};b.matchNTH=
/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;b.parseNTHArgument=function(a){var b=a.match(this.matchNTH);if(!b)return!1;var c=b[2]||!1,d=b[1]||1;"-"==d&&(d=-1);b=+b[3]||0;b="n"==c?{a:d,b:b}:"odd"==c?{a:2,b:1}:"even"==c?{a:2,b:0}:{a:0,b:d};return this.cacheNTH[a]=b};b.createNTHPseudo=function(a,b,c,d){return function(e,f){var g=this.getUID(e);if(!this[c][g]){var l=e.parentNode;if(!l)return!1;var l=l[a],s=1;if(d){var j=e.nodeName;do l.nodeName==j&&(this[c][this.getUID(l)]=s++);while(l=l[b])}else{do 1==l.nodeType&&
(this[c][this.getUID(l)]=s++);while(l=l[b])}}f=f||"n";s=this.cacheNTH[f]||this.parseNTHArgument(f);if(!s)return!1;l=s.a;s=s.b;g=this[c][g];if(0==l)return s==g;if(0<l){if(g<s)return!1}else if(s<g)return!1;return 0==(g-s)%l}};b.pushArray=function(a,b,c,d,e,f){this.matchSelector(a,b,c,d,e,f)&&this.found.push(a)};b.pushUID=function(a,b,c,d,e,f){var g=this.getUID(a);!this.uniques[g]&&this.matchSelector(a,b,c,d,e,f)&&(this.uniques[g]=!0,this.found.push(a))};b.matchNode=function(a,b){if(this.isHTMLDocument&&
this.nativeMatchesSelector)try{return this.nativeMatchesSelector.call(a,b.replace(/\[([^=]+)=\s*([^'"\]]+?)\s*\]/g,'[$1="$2"]'))}catch(c){}var d=this.Slick.parse(b);if(!d)return!0;var e=d.expressions,f=0,g;for(g=0;currentExpression=e[g];g++)if(1==currentExpression.length){var l=currentExpression[0];if(this.matchSelector(a,this.isXMLDocument?l.tag:l.tag.toUpperCase(),l.id,l.classes,l.attributes,l.pseudos))return!0;f++}if(f==d.length)return!1;d=this.search(this.document,d);for(g=0;e=d[g++];)if(e===
a)return!0;return!1};b.matchPseudo=function(a,b,c){var d="pseudo:"+b;if(this[d])return this[d](a,c);a=this.getAttribute(a,b);return c?c==a:!!a};b.matchSelector=function(a,b,c,d,e,f){if(b){var g=this.isXMLDocument?a.nodeName:a.nodeName.toUpperCase();if("*"==b){if("@">g)return!1}else if(g!=b)return!1}if(c&&a.getAttribute("id")!=c)return!1;if(d)for(b=d.length;b--;)if(c=this.getAttribute(a,"class"),!c||!d[b].regexp.test(c))return!1;if(e)for(b=e.length;b--;)if(d=e[b],d.operator?!d.test(this.getAttribute(a,
d.key)):!this.hasAttribute(a,d.key))return!1;if(f)for(b=f.length;b--;)if(d=f[b],!this.matchPseudo(a,d.key,d.value))return!1;return!0};var g={" ":function(a,b,c,d,e,f,g){var l;if(this.isHTMLDocument){if(c){l=this.document.getElementById(c);if(!l&&a.all||this.idGetsName&&l&&l.getAttributeNode("id").nodeValue!=c){g=a.all[c];if(!g)return;g[0]||(g=[g]);for(a=0;l=g[a++];){var s=l.getAttributeNode("id");if(s&&s.nodeValue==c){this.push(l,b,null,d,e,f);break}}return}if(l){if(this.document!==a&&!this.contains(a,
l))return;this.push(l,b,null,d,e,f);return}if(this.contains(this.root,a))return}if(d&&a.getElementsByClassName&&!this.brokenGEBCN&&(g=a.getElementsByClassName(g.join(" ")))&&g.length){for(a=0;l=g[a++];)this.push(l,b,c,null,e,f);return}}if((g=a.getElementsByTagName(b))&&g.length){this.brokenStarGEBTN||(b=null);for(a=0;l=g[a++];)this.push(l,b,c,d,e,f)}},">":function(a,b,c,d,e,f){if(a=a.firstChild){do 1==a.nodeType&&this.push(a,b,c,d,e,f);while(a=a.nextSibling)}},"+":function(a,b,c,d,e,f){for(;a=a.nextSibling;)if(1==
a.nodeType){this.push(a,b,c,d,e,f);break}},"^":function(a,b,c,d,e,f){if(a=a.firstChild)if(1==a.nodeType)this.push(a,b,c,d,e,f);else this["combinator:+"](a,b,c,d,e,f)},"~":function(a,b,c,d,e,f){for(;a=a.nextSibling;)if(1==a.nodeType){var g=this.getUID(a);if(this.bitUniques[g])break;this.bitUniques[g]=!0;this.push(a,b,c,d,e,f)}},"++":function(a,b,c,d,e,f){this["combinator:+"](a,b,c,d,e,f);this["combinator:!+"](a,b,c,d,e,f)},"~~":function(a,b,c,d,e,f){this["combinator:~"](a,b,c,d,e,f);this["combinator:!~"](a,
b,c,d,e,f)},"!":function(a,b,c,d,e,f){for(;a=a.parentNode;)a!==this.document&&this.push(a,b,c,d,e,f)},"!>":function(a,b,c,d,e,f){a=a.parentNode;a!==this.document&&this.push(a,b,c,d,e,f)},"!+":function(a,b,c,d,e,f){for(;a=a.previousSibling;)if(1==a.nodeType){this.push(a,b,c,d,e,f);break}},"!^":function(a,b,c,d,e,f){if(a=a.lastChild)if(1==a.nodeType)this.push(a,b,c,d,e,f);else this["combinator:!+"](a,b,c,d,e,f)},"!~":function(a,b,c,d,e,f){for(;a=a.previousSibling;)if(1==a.nodeType){var g=this.getUID(a);
if(this.bitUniques[g])break;this.bitUniques[g]=!0;this.push(a,b,c,d,e,f)}}},i;for(i in g)b["combinator:"+i]=g[i];var g={empty:function(a){var b=a.firstChild;return!(b&&1==b.nodeType)&&!(a.innerText||a.textContent||"").length},not:function(a,b){return!this.matchNode(a,b)},contains:function(a,b){return-1<(a.innerText||a.textContent||"").indexOf(b)},"first-child":function(a){for(;a=a.previousSibling;)if(1==a.nodeType)return!1;return!0},"last-child":function(a){for(;a=a.nextSibling;)if(1==a.nodeType)return!1;
return!0},"only-child":function(a){for(var b=a;b=b.previousSibling;)if(1==b.nodeType)return!1;for(;a=a.nextSibling;)if(1==a.nodeType)return!1;return!0},"nth-child":b.createNTHPseudo("firstChild","nextSibling","posNTH"),"nth-last-child":b.createNTHPseudo("lastChild","previousSibling","posNTHLast"),"nth-of-type":b.createNTHPseudo("firstChild","nextSibling","posNTHType",!0),"nth-last-of-type":b.createNTHPseudo("lastChild","previousSibling","posNTHTypeLast",!0),index:function(a,b){return this["pseudo:nth-child"](a,
""+(b+1))},even:function(a){return this["pseudo:nth-child"](a,"2n")},odd:function(a){return this["pseudo:nth-child"](a,"2n+1")},"first-of-type":function(a){for(var b=a.nodeName;a=a.previousSibling;)if(a.nodeName==b)return!1;return!0},"last-of-type":function(a){for(var b=a.nodeName;a=a.nextSibling;)if(a.nodeName==b)return!1;return!0},"only-of-type":function(a){for(var b=a,c=a.nodeName;b=b.previousSibling;)if(b.nodeName==c)return!1;for(;a=a.nextSibling;)if(a.nodeName==c)return!1;return!0},enabled:function(a){return!a.disabled},
disabled:function(a){return a.disabled},checked:function(a){return a.checked||a.selected},focus:function(a){return this.isHTMLDocument&&this.document.activeElement===a&&(a.href||a.type||this.hasAttribute(a,"tabindex"))},root:function(a){return a===this.root},selected:function(a){return a.selected}},j;for(j in g)b["pseudo:"+j]=g[j];j=b.attributeGetters={"for":function(){return"htmlFor"in this?this.htmlFor:this.getAttribute("for")},href:function(){return"href"in this?this.getAttribute("href",2):this.getAttribute("href")},
style:function(){return this.style?this.style.cssText:this.getAttribute("style")},tabindex:function(){var a=this.getAttributeNode("tabindex");return a&&a.specified?a.nodeValue:null},type:function(){return this.getAttribute("type")},maxlength:function(){var a=this.getAttributeNode("maxLength");return a&&a.specified?a.nodeValue:null}};j.MAXLENGTH=j.maxLength=j.maxlength;var m=b.Slick=this.Slick||{};m.version="1.1.7";m.search=function(a,c,d){return b.search(a,c,d)};m.find=function(a,c){return b.search(a,
c,null,!0)};m.contains=function(a,c){b.setDocument(a);return b.contains(a,c)};m.getAttribute=function(a,c){b.setDocument(a);return b.getAttribute(a,c)};m.hasAttribute=function(a,c){b.setDocument(a);return b.hasAttribute(a,c)};m.match=function(a,c){if(!a||!c)return!1;if(!c||c===a)return!0;b.setDocument(a);return b.matchNode(a,c)};m.defineAttributeGetter=function(a,c){b.attributeGetters[a]=c;return this};m.lookupAttributeGetter=function(a){return b.attributeGetters[a]};m.definePseudo=function(a,c){b["pseudo:"+
a]=function(a,b){return c.call(a,b)};return this};m.lookupPseudo=function(a){var c=b["pseudo:"+a];return c?function(a){return c.call(this,a)}:null};m.override=function(a,c){b.override(a,c);return this};m.isXML=b.isXML;m.uidOf=function(a){return b.getUIDHTML(a)};this.Slick||(this.Slick=m)}).apply("undefined"!=typeof exports?exports:this);
var Element=function(b,a){var c=Element.Constructors[b];if(c)return c(a);if("string"!=typeof b)return document.id(b).set(a);a||(a={});if(!/^[\w-]+$/.test(b)){c=Slick.parse(b).expressions[0][0];b="*"==c.tag?"div":c.tag;c.id&&null==a.id&&(a.id=c.id);var d=c.attributes;if(d)for(var e,f=0,g=d.length;f<g;f++)e=d[f],null==a[e.key]&&(null!=e.value&&"="==e.operator?a[e.key]=e.value:!e.value&&!e.operator&&(a[e.key]=!0));c.classList&&null==a["class"]&&(a["class"]=c.classList.join(" "))}return document.newElement(b,
a)};Browser.Element&&(Element.prototype=Browser.Element.prototype,Element.prototype._fireEvent=function(b){return function(a,c){return b.call(this,a,c)}}(Element.prototype.fireEvent));(new Type("Element",Element)).mirror(function(b){if(!Array.prototype[b]){var a={};a[b]=function(){for(var a=[],d=arguments,e=true,f=0,g=this.length;f<g;f++)var i=this[f],i=a[f]=i[b].apply(i,d),e=e&&typeOf(i)=="element";return e?new Elements(a):a};Elements.implement(a)}});
Browser.Element||(Element.parent=Object,Element.Prototype={$constructor:Element,$family:Function.from("element").hide()},Element.mirror(function(b,a){Element.Prototype[b]=a}));Element.Constructors={};
var IFrame=new Type("IFrame",function(){var b=Array.link(arguments,{properties:Type.isObject,iframe:function(a){return a!=null}}),a=b.properties||{},c;b.iframe&&(c=document.id(b.iframe));var d=a.onload||function(){};delete a.onload;a.id=a.name=[a.id,a.name,c?c.id||c.name:"IFrame_"+String.uniqueID()].pick();c=new Element(c||"iframe",a);b=function(){d.call(c.contentWindow)};window.frames[a.id]?b():c.addListener("load",b);return c}),Elements=this.Elements=function(b){if(b&&b.length)for(var a={},c,d=
0;c=b[d++];){var e=Slick.uidOf(c);if(!a[e]){a[e]=true;this.push(c)}}};Elements.prototype={length:0};Elements.parent=Array;
(new Type("Elements",Elements)).implement({filter:function(b,a){return!b?this:new Elements(Array.filter(this,typeOf(b)=="string"?function(a){return a.match(b)}:b,a))}.protect(),push:function(){for(var b=this.length,a=0,c=arguments.length;a<c;a++){var d=document.id(arguments[a]);d&&(this[b++]=d)}return this.length=b}.protect(),unshift:function(){for(var b=[],a=0,c=arguments.length;a<c;a++){var d=document.id(arguments[a]);d&&b.push(d)}return Array.prototype.unshift.apply(this,b)}.protect(),concat:function(){for(var b=
new Elements(this),a=0,c=arguments.length;a<c;a++){var d=arguments[a];Type.isEnumerable(d)?b.append(d):b.push(d)}return b}.protect(),append:function(b){for(var a=0,c=b.length;a<c;a++)this.push(b[a]);return this}.protect(),empty:function(){for(;this.length;)delete this[--this.length];return this}.protect()});
(function(){var b=Array.prototype.splice,a={"0":0,1:1,length:2};b.call(a,1,1);a[1]==1&&Elements.implement("splice",function(){for(var a=this.length,c=b.apply(this,arguments);a>=this.length;)delete this[a--];return c}.protect());Array.forEachMethod(function(a,b){Elements.implement(b,a)});Array.mirror(Elements);var c;try{c=document.createElement("<input name=x>").name=="x"}catch(d){}var e=function(a){return(""+a).replace(/&/g,"&amp;").replace(/"/g,"&quot;")};Document.implement({newElement:function(a,
b){if(b&&b.checked!=null)b.defaultChecked=b.checked;if(c&&b){a="<"+a;b.name&&(a=a+(' name="'+e(b.name)+'"'));b.type&&(a=a+(' type="'+e(b.type)+'"'));a=a+">";delete b.name;delete b.type}return this.id(this.createElement(a)).set(b)}})})();
(function(){Slick.uidOf(window);Slick.uidOf(document);Document.implement({newTextNode:function(a){return this.createTextNode(a)},getDocument:function(){return this},getWindow:function(){return this.window},id:function(){var a={string:function(b,c,d){return(b=Slick.find(d,"#"+b.replace(/(\W)/g,"\\$1")))?a.element(b,c):null},element:function(a,b){Slick.uidOf(a);if(!b&&!a.$family&&!/^(?:object|embed)$/i.test(a.tagName)){var c=a.fireEvent;a._fireEvent=function(a,b){return c(a,b)};Object.append(a,Element.Prototype)}return a},
object:function(b,c,d){return b.toElement?a.element(b.toElement(d),c):null}};a.textnode=a.whitespace=a.window=a.document=function(a){return a};return function(b,c,d){if(b&&b.$family&&b.uniqueNumber)return b;var e=typeOf(b);return a[e]?a[e](b,c,d||document):null}}()});window.$==null&&Window.implement("$",function(a,b){return document.id(a,b,this.document)});Window.implement({getDocument:function(){return this.document},getWindow:function(){return this}});[Document,Element].invoke("implement",{getElements:function(a){return Slick.search(this,
a,new Elements)},getElement:function(a){return document.id(Slick.find(this,a))}});var b={contains:function(a){return Slick.contains(this,a)}};document.contains||Document.implement(b);document.createElement("div").contains||Element.implement(b);var a=function(a,b){if(!a)return b;for(var a=Object.clone(Slick.parse(a)),c=a.expressions,d=c.length;d--;)c[d][0].combinator=b;return a};Object.forEach({getNext:"~",getPrevious:"!~",getParent:"!"},function(b,c){Element.implement(c,function(c){return this.getElement(a(c,
b))})});Object.forEach({getAllNext:"~",getAllPrevious:"!~",getSiblings:"~~",getChildren:">",getParents:"!"},function(b,c){Element.implement(c,function(c){return this.getElements(a(c,b))})});Element.implement({getFirst:function(b){return document.id(Slick.search(this,a(b,">"))[0])},getLast:function(b){return document.id(Slick.search(this,a(b,">")).getLast())},getWindow:function(){return this.ownerDocument.window},getDocument:function(){return this.ownerDocument},getElementById:function(a){return document.id(Slick.find(this,
"#"+(""+a).replace(/(\W)/g,"\\$1")))},match:function(a){return!a||Slick.match(this,a)}});window.$$==null&&Window.implement("$$",function(a){if(arguments.length==1){if(typeof a=="string")return Slick.search(this.document,a,new Elements);if(Type.isEnumerable(a))return new Elements(a)}return new Elements(arguments)});var c={before:function(a,b){var c=b.parentNode;c&&c.insertBefore(a,b)},after:function(a,b){var c=b.parentNode;c&&c.insertBefore(a,b.nextSibling)},bottom:function(a,b){b.appendChild(a)},
top:function(a,b){b.insertBefore(a,b.firstChild)}};c.inside=c.bottom;var d={},e={},f={};Array.forEach(["type","value","defaultValue","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","rowSpan","tabIndex","useMap"],function(a){f[a.toLowerCase()]=a});f.html="innerHTML";f.text=document.createElement("div").textContent==null?"innerText":"textContent";Object.forEach(f,function(a,b){e[b]=function(b,c){b[a]=c};d[b]=function(b){return b[a]}});Array.forEach(["compact","nowrap","ismap","declare",
"noshade","checked","disabled","readOnly","multiple","selected","noresize","defer","defaultChecked","autofocus","controls","autoplay","loop"],function(a){var b=a.toLowerCase();e[b]=function(b,c){b[a]=!!c};d[b]=function(b){return!!b[a]}});Object.append(e,{"class":function(a,b){"className"in a?a.className=b||"":a.setAttribute("class",b)},"for":function(a,b){"htmlFor"in a?a.htmlFor=b:a.setAttribute("for",b)},style:function(a,b){a.style?a.style.cssText=b:a.setAttribute("style",b)},value:function(a,b){a.value=
b!=null?b:""}});d["class"]=function(a){return"className"in a?a.className||null:a.getAttribute("class")};b=document.createElement("button");try{b.type="button"}catch(g){}if(b.type!="button")e.type=function(a,b){a.setAttribute("type",b)};b=null;b=document.createElement("input");b.value="t";b.type="submit";if(b.value!="t")e.type=function(a,b){var c=a.value;a.type=b;a.value=c};var b=null,i=function(a){a.random="attribute";return a.getAttribute("random")=="attribute"}(document.createElement("div"));Element.implement({setProperty:function(a,
b){var c=e[a.toLowerCase()];if(c)c(this,b);else{if(i)var d=this.retrieve("$attributeWhiteList",{});if(b==null){this.removeAttribute(a);i&&delete d[a]}else{this.setAttribute(a,""+b);i&&(d[a]=true)}}return this},setProperties:function(a){for(var b in a)this.setProperty(b,a[b]);return this},getProperty:function(a){var b=d[a.toLowerCase()];if(b)return b(this);if(i){var c=this.getAttributeNode(a),b=this.retrieve("$attributeWhiteList",{});if(!c)return null;if(c.expando&&!b[a]){c=this.outerHTML;if(c.substr(0,
c.search(/\/?['"]?>(?![^<]*<['"])/)).indexOf(a)<0)return null;b[a]=true}}b=Slick.getAttribute(this,a);return!b&&!Slick.hasAttribute(this,a)?null:b},getProperties:function(){var a=Array.from(arguments);return a.map(this.getProperty,this).associate(a)},removeProperty:function(a){return this.setProperty(a,null)},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this},set:function(a,b){var c=Element.Properties[a];c&&c.set?c.set.call(this,b):this.setProperty(a,b)}.overloadSetter(),
get:function(a){var b=Element.Properties[a];return b&&b.get?b.get.apply(this):this.getProperty(a)}.overloadGetter(),erase:function(a){var b=Element.Properties[a];b&&b.erase?b.erase.apply(this):this.removeProperty(a);return this},hasClass:function(a){return this.className.clean().contains(a," ")},addClass:function(a){if(!this.hasClass(a))this.className=(this.className+" "+a).clean();return this},removeClass:function(a){this.className=this.className.replace(RegExp("(^|\\s)"+a+"(?:\\s|$)"),"$1");return this},
toggleClass:function(a,b){b==null&&(b=!this.hasClass(a));return b?this.addClass(a):this.removeClass(a)},adopt:function(){var a=this,b,c=Array.flatten(arguments),d=c.length;d>1&&(a=b=document.createDocumentFragment());for(var e=0;e<d;e++){var f=document.id(c[e],true);f&&a.appendChild(f)}b&&this.appendChild(b);return this},appendText:function(a,b){return this.grab(this.getDocument().newTextNode(a),b)},grab:function(a,b){c[b||"bottom"](document.id(a,true),this);return this},inject:function(a,b){c[b||
"bottom"](this,document.id(a,true));return this},replaces:function(a){a=document.id(a,true);a.parentNode.replaceChild(this,a);return this},wraps:function(a,b){a=document.id(a,true);return this.replaces(a).grab(a,b)},getSelected:function(){this.selectedIndex;return new Elements(Array.from(this.options).filter(function(a){return a.selected}))},toQueryString:function(){var a=[];this.getElements("input, select, textarea").each(function(b){var c=b.type;if(b.name&&!b.disabled&&!(c=="submit"||c=="reset"||
c=="file"||c=="image")){c=b.get("tag")=="select"?b.getSelected().map(function(a){return document.id(a).get("value")}):(c=="radio"||c=="checkbox")&&!b.checked?null:b.get("value");Array.from(c).each(function(c){typeof c!="undefined"&&a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(c))})}});return a.join("&")}});var j={},m={},h=function(a){return m[a]||(m[a]={})},k=function(a){var b=a.uniqueNumber;a.removeEvents&&a.removeEvents();a.clearAttributes&&a.clearAttributes();if(b!=null){delete j[b];
delete m[b]}return a},o={input:"checked",option:"selected",textarea:"value"};Element.implement({destroy:function(){var a=k(this).getElementsByTagName("*");Array.each(a,k);Element.dispose(this);return null},empty:function(){Array.from(this.childNodes).each(Element.dispose);return this},dispose:function(){return this.parentNode?this.parentNode.removeChild(this):this},clone:function(a,b){var a=a!==false,c=this.cloneNode(a),d=[c],e=[this],f;if(a){d.append(Array.from(c.getElementsByTagName("*")));e.append(Array.from(this.getElementsByTagName("*")))}for(f=
d.length;f--;){var k=d[f],g=e[f];b||k.removeAttribute("id");if(k.clearAttributes){k.clearAttributes();k.mergeAttributes(g);k.removeAttribute("uniqueNumber");if(k.options)for(var j=k.options,m=g.options,h=j.length;h--;)j[h].selected=m[h].selected}(j=o[g.tagName.toLowerCase()])&&g[j]&&(k[j]=g[j])}if(Browser.ie){d=c.getElementsByTagName("object");e=this.getElementsByTagName("object");for(f=d.length;f--;)d[f].outerHTML=e[f].outerHTML}return document.id(c)}});[Element,Window,Document].invoke("implement",
{addListener:function(a,b,c){if(a=="unload")var d=b,e=this,b=function(){e.removeListener("unload",b);d()};else j[Slick.uidOf(this)]=this;this.addEventListener?this.addEventListener(a,b,!!c):this.attachEvent("on"+a,b);return this},removeListener:function(a,b,c){this.removeEventListener?this.removeEventListener(a,b,!!c):this.detachEvent("on"+a,b);return this},retrieve:function(a,b){var c=h(Slick.uidOf(this)),d=c[a];b!=null&&d==null&&(d=c[a]=b);return d!=null?d:null},store:function(a,b){h(Slick.uidOf(this))[a]=
b;return this},eliminate:function(a){delete h(Slick.uidOf(this))[a];return this}});window.attachEvent&&!window.addEventListener&&window.addListener("unload",function(){Object.each(j,k);window.CollectGarbage&&CollectGarbage()});Element.Properties={};Element.Properties.style={set:function(a){this.style.cssText=a},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};Element.Properties.html={set:function(a){a==
null?a="":typeOf(a)=="array"&&(a=a.join(""));this.innerHTML=a},erase:function(){this.innerHTML=""}};b=document.createElement("div");b.innerHTML="<nav></nav>";var q=b.childNodes.length==1;if(!q)for(var b=["abbr","article","aside","audio","canvas","datalist","details","figcaption","figure","footer","header","hgroup","mark","meter","nav","output","progress","section","summary","time","video"],u=document.createDocumentFragment(),r=b.length;r--;)u.createElement(b[r]);b=null;b=Function.attempt(function(){document.createElement("table").innerHTML=
"<tr><td></td></tr>";return true});r=document.createElement("tr");r.innerHTML="<td></td>";var w=r.innerHTML=="<td></td>",r=null;if(!b||!w||!q)Element.Properties.html.set=function(a){var b={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};b.thead=b.tfoot=b.tbody;return function(c){var d=b[this.get("tag")];!d&&!q&&(d=[0,"",""]);if(!d)return a.call(this,c);var e=d[0],f=document.createElement("div"),
k=f;q||u.appendChild(f);for(f.innerHTML=[d[1],c,d[2]].flatten().join("");e--;)k=k.firstChild;this.empty().adopt(k.childNodes);q||u.removeChild(f)}}(Element.Properties.html.set);b=document.createElement("form");b.innerHTML="<select><option>s</option></select>";if(b.firstChild.value!="s")Element.Properties.value={set:function(a){if(this.get("tag")!="select")return this.setProperty("value",a);for(var b=this.getElements("option"),c=0;c<b.length;c++){var d=b[c],e=d.getAttributeNode("value");if((e&&e.specified?
d.value:d.get("text"))==a)return d.selected=true}},get:function(){var a=this,b=a.get("tag");if(b!="select"&&b!="option")return this.getProperty("value");if(b=="select"&&!(a=a.getSelected()[0]))return"";return(b=a.getAttributeNode("value"))&&b.specified?a.value:a.get("text")}};b=null;if(document.createElement("div").getAttributeNode("id"))Element.Properties.id={set:function(a){this.id=this.getAttributeNode("id").value=a},get:function(){return this.id||null},erase:function(){this.id=this.getAttributeNode("id").value=
""}}})();
(function(){var b=document.html,a=document.createElement("div");a.style.color="red";a.style.color=null;var c=a.style.color=="red",a=null;Element.Properties.styles={set:function(a){this.setStyles(a)}};var a=b.style.opacity!=null,d=b.style.filter!=null,e=/alpha\(opacity=([\d.]+)\)/i,f=a?function(a,b){a.style.opacity=b}:d?function(a,b){var c=a.style;if(!a.currentStyle||!a.currentStyle.hasLayout)c.zoom=1;var b=b==null||b==1?"":"alpha(opacity="+(b*100).limit(0,100).round()+")",d=c.filter||a.getComputedStyle("filter")||"";
c.filter=e.test(d)?d.replace(e,b):d+b;c.filter||c.removeAttribute("filter")}:function(a,b){a.store("$opacity",b);a.style.visibility=b>0||b==null?"visible":"hidden"},g=a?function(a){a=a.style.opacity||a.getComputedStyle("opacity");return a==""?1:a.toFloat()}:d?function(a){var a=a.style.filter||a.getComputedStyle("filter"),b;a&&(b=a.match(e));return b==null||a==null?1:b[1]/100}:function(a){var b=a.retrieve("$opacity");b==null&&(b=a.style.visibility=="hidden"?0:1);return b},i=b.style.cssFloat==null?
"styleFloat":"cssFloat";Element.implement({getComputedStyle:function(a){if(this.currentStyle)return this.currentStyle[a.camelCase()];var b=Element.getDocument(this).defaultView;return(b=b?b.getComputedStyle(this,null):null)?b.getPropertyValue(a==i?"float":a.hyphenate()):null},setStyle:function(a,b){if(a=="opacity"){b!=null&&(b=parseFloat(b));f(this,b);return this}a=(a=="float"?i:a).camelCase();if(typeOf(b)!="string")var d=(Element.Styles[a]||"@").split(" "),b=Array.from(b).map(function(a,b){return!d[b]?
"":typeOf(a)=="number"?d[b].replace("@",Math.round(a)):a}).join(" ");else b==""+Number(b)&&(b=Math.round(b));this.style[a]=b;(b==""||b==null)&&c&&this.style.removeAttribute&&this.style.removeAttribute(a);return this},getStyle:function(a){if(a=="opacity")return g(this);var a=(a=="float"?i:a).camelCase(),b=this.style[a];if(!b||a=="zIndex"){var b=[],c;for(c in Element.ShortStyles)if(a==c){for(var d in Element.ShortStyles[c])b.push(this.getStyle(d));return b.join(" ")}b=this.getComputedStyle(a)}if(b){b=
""+b;(c=b.match(/rgba?\([\d\s,]+\)/))&&(b=b.replace(c[0],c[0].rgbToHex()))}if(Browser.ie&&isNaN(parseFloat(b))){if(/^(height|width)$/.test(a)){var e=0;(a=="width"?["left","right"]:["top","bottom"]).each(function(a){e=e+(this.getStyle("border-"+a+"-width").toInt()+this.getStyle("padding-"+a).toInt())},this);return this["offset"+a.capitalize()]-e+"px"}if(Browser.opera&&(""+b).indexOf("px")!=-1)return b;if(/^border(.+)Width|margin|padding/.test(a))return"0px"}return b},setStyles:function(a){for(var b in a)this.setStyle(b,
a[b]);return this},getStyles:function(){var a={};Array.flatten(arguments).each(function(b){a[b]=this.getStyle(b)},this);return a}});Element.Styles={left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",
borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"};Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(a){var b=Element.ShortStyles,c=Element.Styles;["margin","padding"].each(function(d){var e=d+a;b[d][e]=c[e]="@px"});var d="border"+a;b.border[d]=c[d]="@px @ rgb(@, @, @)";var e=
d+"Width",f=d+"Style",g=d+"Color";b[d]={};b.borderWidth[e]=b[d][e]=c[e]="@px";b.borderStyle[f]=b[d][f]=c[f]="@";b.borderColor[g]=b[d][g]=c[g]="rgb(@, @, @)"})})();
(function(){Element.Properties.events={set:function(a){this.addEvents(a)}};[Element,Window,Document].invoke("implement",{addEvent:function(a,b,d){var e=this.retrieve("events",{});e[a]||(e[a]={keys:[],values:[]});if(e[a].keys.contains(b))return this;e[a].keys.push(b);var f=a,g=Element.Events[a],i=b,j=this;if(g){g.onAdd&&g.onAdd.call(this,b,a);g.condition&&(i=function(d){return g.condition.call(this,d,a)?b.call(this,d):true});g.base&&(f=Function.from(g.base).call(this,a))}var m=function(){return b.call(j)},
h=Element.NativeEvents[f];if(h){h==2&&(m=function(a){a=new DOMEvent(a,j.getWindow());i.call(j,a)===false&&a.stop()});this.addListener(f,m,d)}e[a].values.push(m);return this},removeEvent:function(a,b,d){var e=this.retrieve("events");if(!e||!e[a])return this;var f=e[a],g=f.keys.indexOf(b);if(g==-1)return this;e=f.values[g];delete f.keys[g];delete f.values[g];if(f=Element.Events[a]){f.onRemove&&f.onRemove.call(this,b,a);f.base&&(a=Function.from(f.base).call(this,a))}return Element.NativeEvents[a]?this.removeListener(a,
e,d):this},addEvents:function(a){for(var b in a)this.addEvent(b,a[b]);return this},removeEvents:function(a){var b;if(typeOf(a)=="object"){for(b in a)this.removeEvent(b,a[b]);return this}var d=this.retrieve("events");if(!d)return this;if(a){if(d[a]){d[a].keys.each(function(b){this.removeEvent(a,b)},this);delete d[a]}}else{for(b in d)this.removeEvents(b);this.eliminate("events")}return this},fireEvent:function(a,b,d){var e=this.retrieve("events");if(!e||!e[a])return this;b=Array.from(b);e[a].keys.each(function(a){d?
a.delay(d,this,b):a.apply(this,b)},this);return this},cloneEvents:function(a,b){var a=document.id(a),d=a.retrieve("events");if(!d)return this;if(b)d[b]&&d[b].keys.each(function(a){this.addEvent(b,a)},this);else for(var e in d)this.cloneEvents(a,e);return this}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,orientationchange:2,touchstart:2,touchmove:2,
touchend:2,touchcancel:2,gesturestart:2,gesturechange:2,gestureend:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,paste:2,input:2,load:2,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};Element.Events={mousewheel:{base:Browser.firefox?"DOMMouseScroll":"mousewheel"}};if("onmouseenter"in document.documentElement)Element.NativeEvents.mouseenter=Element.NativeEvents.mouseleave=2;else{var b=function(a){a=a.relatedTarget;return a==null?true:!a?
false:a!=this&&a.prefix!="xul"&&typeOf(this)!="document"&&!this.contains(a)};Element.Events.mouseenter={base:"mouseover",condition:b};Element.Events.mouseleave={base:"mouseout",condition:b}}if(!window.addEventListener){Element.NativeEvents.propertychange=2;Element.Events.change={base:function(){var a=this.type;return this.get("tag")=="input"&&(a=="radio"||a=="checkbox")?"propertychange":"change"},condition:function(a){return this.type!="radio"||a.event.propertyName=="checked"&&this.checked}}}})();
(function(){var b,a=!!window.addEventListener;Element.NativeEvents.focusin=Element.NativeEvents.focusout=2;var c=function(a,b,c,d,e){for(;e&&e!=a;){if(b(e,d))return c.call(e,d,e);e=document.id(e.parentNode)}},d={mouseenter:{base:"mouseover"},mouseleave:{base:"mouseout"},focus:{base:"focus"+(a?"":"in"),capture:true},blur:{base:a?"blur":"focusout",capture:true}},e=function(a){return{base:"focusin",remove:function(b,c){var d=b.retrieve("$delegation:"+a+"listeners",{})[c];if(d&&d.forms)for(var e=d.forms.length;e--;)d.forms[e].removeEvent(a,
d.fns[e])},listen:function(b,d,e,f,g,i){if(f=g.get("tag")=="form"?g:f.target.getParent("form")){var r=b.retrieve("$delegation:"+a+"listeners",{}),w=r[i]||{forms:[],fns:[]},l=w.forms,s=w.fns;if(l.indexOf(f)==-1){l.push(f);l=function(a){c(b,d,e,a,g)};f.addEvent(a,l);s.push(l);r[i]=w;b.store("$delegation:"+a+"listeners",r)}}}}},f=function(a){return{base:"focusin",listen:function(b,d,e,f,g){var i={blur:function(){this.removeEvents(i)}};i[a]=function(a){c(b,d,e,a,g)};f.target.addEvents(i)}}};a||Object.append(d,
{submit:e("submit"),reset:e("reset"),change:f("change"),select:f("select")});var a=Element.prototype,g=a.addEvent,i=a.removeEvent,a=function(a,b){return function(c,d,e){if(c.indexOf(":relay")==-1)return a.call(this,c,d,e);var f=Slick.parse(c).expressions[0][0];if(f.pseudos[0].key!="relay")return a.call(this,c,d,e);var g=f.tag;f.pseudos.slice(1).each(function(a){g=g+(":"+a.key+(a.value?"("+a.value+")":""))});a.call(this,c,d);return b.call(this,g,f.pseudos[0].value,d)}};b=function(a,c,e,f){var g=this.retrieve("$delegates",
{}),q=g[a];if(!q)return this;if(f){var c=a,e=q[f].delegator,u=d[a]||{},a=u.base||c;u.remove&&u.remove(this,f);delete q[f];g[c]=q;return i.call(this,a,e)}if(e)for(u in q){f=q[u];if(f.match==c&&f.fn==e)return b.call(this,a,c,e,u)}else for(u in q){f=q[u];f.match==c&&b.call(this,a,c,f.fn,u)}return this};[Element,Window,Document].invoke("implement",{addEvent:a(g,function(a,b,e){var f=this.retrieve("$delegates",{}),i=f[a];if(i)for(var q in i)if(i[q].fn==e&&i[q].match==b)return this;q=a;var u=b,r=d[a]||
{},a=r.base||q,b=function(a){return Slick.match(a,u)},w=Element.Events[q];if(w&&w.condition)var l=b,s=w.condition,b=function(b,c){return l(b,c)&&s.call(b,c,a)};var p=this,n=String.uniqueID(),w=r.listen?function(a,c){if(!c&&a&&a.target)c=a.target;c&&r.listen(p,b,e,a,c,n)}:function(a,d){if(!d&&a&&a.target)d=a.target;d&&c(p,b,e,a,d)};i||(i={});i[n]={match:u,fn:e,delegator:w};f[q]=i;return g.call(this,a,w,r.capture)}),removeEvent:a(i,b)})})();
(function(){function b(a){return h(a,"-moz-box-sizing")=="border-box"}function a(a){return h(a,"border-top-width").toInt()||0}function c(a){return h(a,"border-left-width").toInt()||0}function d(a){return/^(?:body|html)$/i.test(a.tagName)}function e(a){a=a.getDocument();return!a.compatMode||a.compatMode=="CSS1Compat"?a.html:a.body}var f=document.createElement("div"),g=document.createElement("div");f.style.height="0";f.appendChild(g);var i=g.offsetParent===f,f=g=null,j=function(a){return h(a,"position")!=
"static"||d(a)},m=function(a){return j(a)||/^(?:table|td|th)$/i.test(a.tagName)};Element.implement({scrollTo:function(a,b){if(d(this))this.getWindow().scrollTo(a,b);else{this.scrollLeft=a;this.scrollTop=b}return this},getSize:function(){return d(this)?this.getWindow().getSize():{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){return d(this)?this.getWindow().getScrollSize():{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){return d(this)?this.getWindow().getScroll():
{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){for(var a=this.parentNode,b={x:0,y:0};a&&!d(a);){b.x=b.x+a.scrollLeft;b.y=b.y+a.scrollTop;a=a.parentNode}return b},getOffsetParent:i?function(){var a=this;if(d(a)||h(a,"position")=="fixed")return null;for(var b=h(a,"position")=="static"?m:j;a=a.parentNode;)if(b(a))return a;return null}:function(){if(d(this)||h(this,"position")=="fixed")return null;try{return this.offsetParent}catch(a){}return null},getOffsets:function(){if(this.getBoundingClientRect&&
!Browser.Platform.ios){var e=this.getBoundingClientRect(),f=document.id(this.getDocument().documentElement),g=f.getScroll(),i=this.getScrolls(),j=h(this,"position")=="fixed";return{x:e.left.toInt()+i.x+(j?0:g.x)-f.clientLeft,y:e.top.toInt()+i.y+(j?0:g.y)-f.clientTop}}e=this;f={x:0,y:0};if(d(this))return f;for(;e&&!d(e);){f.x=f.x+e.offsetLeft;f.y=f.y+e.offsetTop;if(Browser.firefox){if(!b(e)){f.x=f.x+c(e);f.y=f.y+a(e)}if((g=e.parentNode)&&h(g,"overflow")!="visible"){f.x=f.x+c(g);f.y=f.y+a(g)}}else if(e!=
this&&Browser.safari){f.x=f.x+c(e);f.y=f.y+a(e)}e=e.offsetParent}if(Browser.firefox&&!b(this)){f.x=f.x-c(this);f.y=f.y-a(this)}return f},getPosition:function(b){var d=this.getOffsets(),e=this.getScrolls(),d={x:d.x-e.x,y:d.y-e.y};if(b&&(b=document.id(b))){e=b.getPosition();return{x:d.x-e.x-c(b),y:d.y-e.y-a(b)}}return d},getCoordinates:function(a){if(d(this))return this.getWindow().getCoordinates();var a=this.getPosition(a),b=this.getSize(),a={left:a.x,top:a.y,width:b.x,height:b.y};a.right=a.left+a.width;
a.bottom=a.top+a.height;return a},computePosition:function(a){return{left:a.x-(h(this,"margin-left").toInt()||0),top:a.y-(h(this,"margin-top").toInt()||0)}},setPosition:function(a){return this.setStyles(this.computePosition(a))}});[Document,Window].invoke("implement",{getSize:function(){var a=e(this);return{x:a.clientWidth,y:a.clientHeight}},getScroll:function(){var a=this.getWindow(),b=e(this);return{x:a.pageXOffset||b.scrollLeft,y:a.pageYOffset||b.scrollTop}},getScrollSize:function(){var a=e(this),
b=this.getSize(),c=this.getDocument().body;return{x:Math.max(a.scrollWidth,c.scrollWidth,b.x),y:Math.max(a.scrollHeight,c.scrollHeight,b.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var a=this.getSize();return{top:0,left:0,bottom:a.y,right:a.x,height:a.y,width:a.x}}});var h=Element.getComputedStyle})();Element.alias({position:"setPosition"});
[Window,Document,Element].invoke("implement",{getHeight:function(){return this.getSize().y},getWidth:function(){return this.getSize().x},getScrollTop:function(){return this.getScroll().y},getScrollLeft:function(){return this.getScroll().x},getScrollHeight:function(){return this.getScrollSize().y},getScrollWidth:function(){return this.getScrollSize().x},getTop:function(){return this.getPosition().y},getLeft:function(){return this.getPosition().x}});
(function(){var b=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:60,unit:false,duration:500,frames:null,frameSkip:true,link:"ignore"},initialize:function(a){this.subject=this.subject||this;this.setOptions(a)},getTransition:function(){return function(a){return-(Math.cos(Math.PI*a)-1)/2}},step:function(a){if(this.options.frameSkip){var b=(this.time!=null?a-this.time:0)/this.frameInterval;this.time=a;this.frame=this.frame+b}else this.frame++;if(this.frame<this.frames)this.set(this.compute(this.from,
this.to,this.transition(this.frame/this.frames)));else{this.frame=this.frames;this.set(this.compute(this.from,this.to,1));this.stop()}},set:function(a){return a},compute:function(a,c,d){return b.compute(a,c,d)},check:function(){if(!this.isRunning())return true;switch(this.options.link){case "cancel":this.cancel();return true;case "chain":this.chain(this.caller.pass(arguments,this))}return false},start:function(a,c){if(!this.check(a,c))return this;this.from=a;this.to=c;this.frame=this.options.frameSkip?
0:-1;this.time=null;this.transition=this.getTransition();var d=this.options.frames,f=this.options.fps,h=this.options.duration;this.duration=b.Durations[h]||h.toInt();this.frameInterval=1E3/f;this.frames=d||Math.round(this.duration/this.frameInterval);this.fireEvent("start",this.subject);e.call(this,f);return this},stop:function(){if(this.isRunning()){this.time=null;f.call(this,this.options.fps);if(this.frames==this.frame){this.fireEvent("complete",this.subject);this.callChain()||this.fireEvent("chainComplete",
this.subject)}else this.fireEvent("stop",this.subject)}return this},cancel:function(){if(this.isRunning()){this.time=null;f.call(this,this.options.fps);this.frame=this.frames;this.fireEvent("cancel",this.subject).clearChain()}return this},pause:function(){if(this.isRunning()){this.time=null;f.call(this,this.options.fps)}return this},resume:function(){this.frame<this.frames&&!this.isRunning()&&e.call(this,this.options.fps);return this},isRunning:function(){var b=a[this.options.fps];return b&&b.contains(this)}});
b.compute=function(a,b,c){return(b-a)*c+a};b.Durations={"short":250,normal:500,"long":1E3};var a={},c={},d=function(){for(var a=Date.now(),b=this.length;b--;){var c=this[b];c&&c.step(a)}},e=function(b){var e=a[b]||(a[b]=[]);e.push(this);c[b]||(c[b]=d.periodical(Math.round(1E3/b),e))},f=function(b){var d=a[b];if(d){d.erase(this);if(!d.length&&c[b]){delete a[b];c[b]=clearInterval(c[b])}}}})();
Fx.CSS=new Class({Extends:Fx,prepare:function(b,a,c){var c=Array.from(c),d=c[0],c=c[1];if(c==null){var c=d,d=b.getStyle(a),e=this.options.unit;if(e&&d.slice(-e.length)!=e&&parseFloat(d)!=0){b.setStyle(a,c+e);var f=b.getComputedStyle(a);if(!/px$/.test(f)){f=b.style[("pixel-"+a).camelCase()];if(f==null){var g=b.style.left;b.style.left=c+e;f=b.style.pixelLeft;b.style.left=g}}d=(c||1)/(parseFloat(f)||1)*(parseFloat(d)||0);b.setStyle(a,d+e)}}return{from:this.parse(d),to:this.parse(c)}},parse:function(b){b=
Function.from(b)();b=typeof b=="string"?b.split(" "):Array.from(b);return b.map(function(a){var a=""+a,b=false;Object.each(Fx.CSS.Parsers,function(d){if(!b){var e=d.parse(a);if(e||e===0)b={value:e,parser:d}}});return b=b||{value:a,parser:Fx.CSS.Parsers.String}})},compute:function(b,a,c){var d=[];Math.min(b.length,a.length).times(function(e){d.push({value:b[e].parser.compute(b[e].value,a[e].value,c),parser:b[e].parser})});d.$family=Function.from("fx:css:value");return d},serve:function(b,a){typeOf(b)!=
"fx:css:value"&&(b=this.parse(b));var c=[];b.each(function(b){c=c.concat(b.parser.serve(b.value,a))});return c},render:function(b,a,c,d){b.setStyle(a,this.serve(c,d))},search:function(b){if(Fx.CSS.Cache[b])return Fx.CSS.Cache[b];var a={},c=RegExp("^"+b.escapeRegExp()+"$");Array.each(document.styleSheets,function(b){var e=b.href;if(!e||!e.contains("://")||e.contains(document.domain))Array.each(b.rules||b.cssRules,function(b){if(b.style){var d=b.selectorText?b.selectorText.replace(/^\w+/,function(a){return a.toLowerCase()}):
null;d&&c.test(d)&&Object.each(Element.Styles,function(c,d){if(b.style[d]&&!Element.ShortStyles[d]){c=""+b.style[d];a[d]=/^rgb/.test(c)?c.rgbToHex():c}})}})});return Fx.CSS.Cache[b]=a}});Fx.CSS.Cache={};
Fx.CSS.Parsers={Color:{parse:function(b){return b.match(/^#[0-9a-f]{3,6}$/i)?b.hexToRgb(true):(b=b.match(/(\d+),\s*(\d+),\s*(\d+)/))?[b[1],b[2],b[3]]:false},compute:function(b,a,c){return b.map(function(d,e){return Math.round(Fx.compute(b[e],a[e],c))})},serve:function(b){return b.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return a?b+a:b}},String:{parse:Function.from(!1),compute:function(b,a){return a},serve:function(b){return b}}};
Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a)},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property}this.render(this.element,b,a,this.options.unit);return this},start:function(b,a,c){if(!this.check(b,a,c))return this;var d=Array.flatten(arguments);this.property=this.options.property||d.shift();d=this.prepare(this.element,this.property,d);return this.parent(d.from,d.to)}});
Element.Properties.tween={set:function(b){this.get("tween").cancel().setOptions(b);return this},get:function(){var b=this.retrieve("tween");if(!b){b=new Fx.Tween(this,{link:"cancel"});this.store("tween",b)}return b}};
Element.implement({tween:function(b,a,c){this.get("tween").start(b,a,c);return this},fade:function(b){var a=this.get("tween"),c,d=["opacity"].append(arguments),e;d[1]==null&&(d[1]="toggle");switch(d[1]){case "in":c="start";d[1]=1;break;case "out":c="start";d[1]=0;break;case "show":c="set";d[1]=1;break;case "hide":c="set";d[1]=0;break;case "toggle":e=this.retrieve("fade:flag",this.getStyle("opacity")==1);c="start";d[1]=e?0:1;this.store("fade:flag",!e);e=true;break;default:c="start"}e||this.eliminate("fade:flag");
a[c].apply(a,d);d=d[d.length-1];c=="set"||d!=0?this.setStyle("visibility",d==0?"hidden":"visible"):a.chain(function(){this.element.setStyle("visibility","hidden");this.callChain()});return this},highlight:function(b,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));a=a=="transparent"?"#fff":a}var c=this.get("tween");c.start("background-color",b||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));c.callChain()}.bind(this));
return this}});
Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a)},set:function(b){typeof b=="string"&&(b=this.search(b));for(var a in b)this.render(this.element,a,b[a],this.options.unit);return this},compute:function(b,a,c){var d={},e;for(e in b)d[e]=this.parent(b[e],a[e],c);return d},start:function(b){if(!this.check(b))return this;typeof b=="string"&&(b=this.search(b));var a={},c={},d;for(d in b){var e=this.prepare(this.element,d,b[d]);a[d]=e.from;
c[d]=e.to}return this.parent(a,c)}});Element.Properties.morph={set:function(b){this.get("morph").cancel().setOptions(b);return this},get:function(){var b=this.retrieve("morph");if(!b){b=new Fx.Morph(this,{link:"cancel"});this.store("morph",b)}return b}};Element.implement({morph:function(b){this.get("morph").start(b);return this}});
Fx.implement({getTransition:function(){var b=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof b=="string"){var a=b.split(":"),b=Fx.Transitions,b=b[a[0]]||b[a[0].capitalize()];a[1]&&(b=b["ease"+a[1].capitalize()+(a[2]?a[2].capitalize():"")])}return b}});Fx.Transition=function(b,a){var a=Array.from(a),c=function(c){return b(c,a)};return Object.append(c,{easeIn:c,easeOut:function(c){return 1-b(1-c,a)},easeInOut:function(c){return(c<=0.5?b(2*c,a):2-b(2*(1-c),a))/2}})};Fx.Transitions={linear:function(b){return b}};
Fx.Transitions.extend=function(b){for(var a in b)Fx.Transitions[a]=new Fx.Transition(b[a])};
Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a&&a[0]||6)},Expo:function(b){return Math.pow(2,8*(b-1))},Circ:function(b){return 1-Math.sin(Math.acos(b))},Sine:function(b){return 1-Math.cos(b*Math.PI/2)},Back:function(b,a){a=a&&a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a)},Bounce:function(b){for(var a,c=0,d=1;;c=c+d,d=d/2)if(b>=(7-4*c)/11){a=d*d-Math.pow((11-6*c-11*b)/4,2);break}return a},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a&&a[0]||1)/3)}});
["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(b){return Math.pow(b,a+2)})});
(function(){var b=function(){},a="onprogress"in new Browser.Request,c=this.Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,timeout:0,noCache:false},initialize:function(a){this.xhr=new Browser.Request;this.setOptions(a);
this.headers=this.options.headers},onStateChange:function(){var c=this.xhr;if(c.readyState==4&&this.running){this.running=false;this.status=0;Function.attempt(function(){var a=c.status;this.status=a==1223?204:a}.bind(this));c.onreadystatechange=b;if(a)c.onprogress=c.onloadstart=b;clearTimeout(this.timer);this.response={text:this.xhr.responseText||"",xml:this.xhr.responseXML};this.options.isSuccess.call(this,this.status)?this.success(this.response.text,this.response.xml):this.failure()}},isSuccess:function(){var a=
this.status;return a>=200&&a<300},isRunning:function(){return!!this.running},processScripts:function(a){return this.options.evalResponse||/(ecma|java)script/.test(this.getHeader("Content-type"))?Browser.exec(a):a.stripScripts(this.options.evalScripts)},success:function(a,b){this.onSuccess(this.processScripts(a),b)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",
this.xhr)},loadstart:function(a){this.fireEvent("loadstart",[a,this.xhr])},progress:function(a){this.fireEvent("progress",[a,this.xhr])},timeout:function(){this.fireEvent("timeout",this.xhr)},setHeader:function(a,b){this.headers[a]=b;return this},getHeader:function(a){return Function.attempt(function(){return this.xhr.getResponseHeader(a)}.bind(this))},check:function(){if(!this.running)return true;switch(this.options.link){case "cancel":this.cancel();return true;case "chain":this.chain(this.caller.pass(arguments,
this))}return false},send:function(b){if(!this.check(b))return this;this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var c=typeOf(b);if(c=="string"||c=="element")b={data:b};var c=this.options,b=Object.append({data:c.data,url:c.url,method:c.method},b),c=b.data,d=""+b.url,b=b.method.toLowerCase();switch(typeOf(c)){case "element":c=document.id(c).toQueryString();break;case "object":case "hash":c=Object.toQueryString(c)}if(this.options.format)var i="format="+this.options.format,
c=c?i+"&"+c:i;if(this.options.emulation&&!["get","post"].contains(b)){b="_method="+b;c=c?b+"&"+c:b;b="post"}this.options.urlEncoded&&["post","put"].contains(b)&&(this.headers["Content-type"]="application/x-www-form-urlencoded"+(this.options.encoding?"; charset="+this.options.encoding:""));if(!d)d=document.location.pathname;i=d.lastIndexOf("/");if(i>-1&&(i=d.indexOf("#"))>-1)d=d.substr(0,i);this.options.noCache&&(d=d+((d.contains("?")?"&":"?")+String.uniqueID()));if(c&&b=="get"){d=d+((d.contains("?")?
"&":"?")+c);c=null}var j=this.xhr;if(a){j.onloadstart=this.loadstart.bind(this);j.onprogress=this.progress.bind(this)}j.open(b.toUpperCase(),d,this.options.async,this.options.user,this.options.password);if(this.options.user&&"withCredentials"in j)j.withCredentials=true;j.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(a,b){try{j.setRequestHeader(b,a)}catch(c){this.fireEvent("exception",[b,a])}},this);this.fireEvent("request");j.send(c);if(this.options.async){if(this.options.timeout)this.timer=
this.timeout.delay(this.options.timeout,this)}else this.onStateChange();return this},cancel:function(){if(!this.running)return this;this.running=false;var c=this.xhr;c.abort();clearTimeout(this.timer);c.onreadystatechange=b;if(a)c.onprogress=c.onloadstart=b;this.xhr=new Browser.Request;this.fireEvent("cancel");return this}}),d={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(a){d[a]=function(b){var c={method:a};if(b!=null)c.data=b;return this.send(c)}});c.implement(d);Element.Properties.send=
{set:function(a){this.get("send").cancel().setOptions(a);return this},get:function(){var a=this.retrieve("send");if(!a){a=new c({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")});this.store("send",a)}return a}};Element.implement({send:function(a){var b=this.get("send");b.send({data:this,url:a||b.options.url});return this}})})();
Request.HTML=new Class({Extends:Request,options:{update:!1,append:!1,evalScripts:!0,filter:!1,headers:{Accept:"text/html, application/xml, text/xml, */*"}},success:function(b){var a=this.options,c=this.response;c.html=b.stripScripts(function(a){c.javascript=a});if(b=c.html.match(/<body[^>]*>([\s\S]*?)<\/body>/i))c.html=b[1];b=(new Element("div")).set("html",c.html);c.tree=b.childNodes;c.elements=b.getElements(a.filter||"*");if(a.filter)c.tree=c.elements;if(a.update){b=document.id(a.update).empty();
a.filter?b.adopt(c.elements):b.set("html",c.html)}else if(a.append){var d=document.id(a.append);a.filter?c.elements.reverse().inject(d):d.adopt(b.getChildren())}a.evalScripts&&Browser.exec(c.javascript);this.onSuccess(c.tree,c.elements,c.html,c.javascript)}});Element.Properties.load={set:function(b){this.get("load").cancel().setOptions(b);return this},get:function(){var b=this.retrieve("load");if(!b){b=new Request.HTML({data:this,link:"cancel",update:this,method:"get"});this.store("load",b)}return b}};
Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this}});"undefined"==typeof JSON&&(this.JSON={});
(function(){var b={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},a=function(a){return b[a]||"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)};JSON.validate=function(a){a=a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");return/^[\],:{}\s]*$/.test(a)};JSON.encode=JSON.stringify?function(a){return JSON.stringify(a)}:function(b){b&&b.toJSON&&
(b=b.toJSON());switch(typeOf(b)){case "string":return'"'+b.replace(/[\x00-\x1f\\"]/g,a)+'"';case "array":return"["+b.map(JSON.encode).clean()+"]";case "object":case "hash":var d=[];Object.each(b,function(a,b){var c=JSON.encode(a);c&&d.push(JSON.encode(b)+":"+c)});return"{"+d+"}";case "number":case "boolean":return""+b;case "null":return"null"}return null};JSON.decode=function(a,b){if(!a||typeOf(a)!="string")return null;if(b||JSON.secure){if(JSON.parse)return JSON.parse(a);if(!JSON.validate(a))throw Error("JSON could not decode the input; security is enabled and the value is not secure.");
}return eval("("+a+")")}})();Request.JSON=new Class({Extends:Request,options:{secure:!0},initialize:function(b){this.parent(b);Object.append(this.headers,{Accept:"application/json","X-Request":"JSON"})},success:function(b){var a;try{a=this.response.json=JSON.decode(b,this.options.secure)}catch(c){this.fireEvent("error",[b,c]);return}if(a==null)this.onFailure();else this.onSuccess(a,b)}});
var Cookie=new Class({Implements:Options,options:{path:"/",domain:!1,duration:!1,secure:!1,document:document,encode:!0},initialize:function(b,a){this.key=b;this.setOptions(a)},write:function(b){this.options.encode&&(b=encodeURIComponent(b));this.options.domain&&(b=b+("; domain="+this.options.domain));this.options.path&&(b=b+("; path="+this.options.path));if(this.options.duration){var a=new Date;a.setTime(a.getTime()+this.options.duration*864E5);b=b+("; expires="+a.toGMTString())}this.options.secure&&
(b=b+"; secure");this.options.document.cookie=this.key+"="+b;return this},read:function(){var b=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return b?decodeURIComponent(b[1]):null},dispose:function(){(new Cookie(this.key,Object.merge({},this.options,{duration:-1}))).write("");return this}});Cookie.write=function(b,a,c){return(new Cookie(b,c)).write(a)};Cookie.read=function(b){return(new Cookie(b)).read()};Cookie.dispose=function(b,a){return(new Cookie(b,a)).dispose()};
(function(b,a){var c,d,e=[],f,g,i=a.createElement("div"),j=function(){clearTimeout(g);if(!c){Browser.loaded=c=true;a.removeListener("DOMContentLoaded",j).removeListener("readystatechange",m);a.fireEvent("domready");b.fireEvent("domready")}},m=function(){for(var a=e.length;a--;)if(e[a]()){j();return true}return false},h=function(){clearTimeout(g);m()||(g=setTimeout(h,10))};a.addListener("DOMContentLoaded",j);var k=function(){try{i.doScroll();return true}catch(a){}return false};if(i.doScroll&&!k()){e.push(k);
f=true}a.readyState&&e.push(function(){var b=a.readyState;return b=="loaded"||b=="complete"});"onreadystatechange"in a?a.addListener("readystatechange",m):f=true;f&&h();Element.Events.domready={onAdd:function(a){c&&a.call(this)}};Element.Events.load={base:"load",onAdd:function(a){d&&this==b&&a.call(this)},condition:function(){if(this==b){j();delete Element.Events.load}return true}};b.addEvent("load",function(){d=true})})(window,document);
(function(){var b=this.Swiff=new Class({Implements:Options,options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"window",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(a,c){this.instance="Swiff_"+String.uniqueID();this.setOptions(c);var c=this.options,d=this.id=c.id||this.instance,e=document.id(c.container);b.CallBacks[this.instance]={};var f=c.params,g=c.vars,i=c.callBacks,j=
Object.append({height:c.height,width:c.width},c.properties),m=this,h;for(h in i){b.CallBacks[this.instance][h]=function(a){return function(){return a.apply(m.object,arguments)}}(i[h]);g[h]="Swiff.CallBacks."+this.instance+"."+h}f.flashVars=Object.toQueryString(g);if(Browser.ie){j.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";f.movie=a}else j.type="application/x-shockwave-flash";j.data=a;var d='<object id="'+d+'"',k;for(k in j)d=d+(" "+k+'="'+j[k]+'"');var d=d+">",o;for(o in f)f[o]&&(d=d+('<param name="'+
o+'" value="'+f[o]+'" />'));this.object=(e?e.empty():new Element("div")).set("html",d+"</object>").firstChild},replaces:function(a){a=document.id(a,true);a.parentNode.replaceChild(this.toElement(),a);return this},inject:function(a){document.id(a,true).appendChild(this.toElement());return this},remote:function(){return b.remote.apply(b,[this.toElement()].append(arguments))}});b.CallBacks={};b.remote=function(a,b){var d=a.CallFunction('<invoke name="'+b+'" returntype="javascript">'+__flash__argumentsToXML(arguments,
2)+"</invoke>");return eval(d)}})();system/js/caption-uncompressed.js000064400000002476152177723720013232 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JCaption javascript behavior
 *
 * Used for displaying image captions
 *
 * @package     Joomla
 * @since       1.5
 * @version  1.0
 */
var JCaption = function(_selector) {
    var $, selector,
    
    initialize = function(_selector) {
        $ = jQuery.noConflict();
        selector = _selector;
        $(selector).each(function(index, el) {
            createCaption(el);
        })
    },
    
    createCaption = function(element) {
        var $el = $(element), 
        caption = $el.attr('title'),
        width = $el.attr("width") || element.width,
        align = $el.attr("align") || $el.css("float") || element.style.styleFloat || "none",
        $p = $('<p/>', {
            "text" : caption,
            "class" : selector.replace('.', '_')
        }),
        $container = $('<div/>', {
            "class" : selector.replace('.', '_') + " " + align,
            "css" : {
                "float" : align,
                "width" : width
            }
        });
        $el.before($container);
        $container.append($el);
        if (caption !== "") {
            $container.append($p);
        }
    }
    initialize(_selector);
}
system/js/calendar-setup.js000064400000006022152177723720011766 0ustar00Calendar.setup=function(g){function f(h,i){if(typeof g[h]=="undefined"){g[h]=i}}f("inputField",null);f("displayArea",null);f("button",null);f("eventName","click");f("ifFormat","%Y/%m/%d");f("daFormat","%Y/%m/%d");f("singleClick",true);f("disableFunc",null);f("dateStatusFunc",g.disableFunc);f("dateTooltipFunc",null);f("dateText",null);f("firstDay",null);f("align","Br");f("range",[1900,2999]);f("weekNumbers",true);f("flat",null);f("flatCallback",null);f("onSelect",null);f("onClose",null);f("onUpdate",null);f("date",null);f("showsTime",false);f("timeFormat","24");f("electric",true);f("step",2);f("position",null);f("cache",false);f("showOthers",false);f("multiple",null);var c=["inputField","displayArea","button"];for(var b in c){if(typeof g[c[b]]=="string"){g[c[b]]=document.getElementById(g[c[b]])}}if(!(g.flat||g.multiple||g.inputField||g.displayArea||g.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false}function a(i){var h=i.params;var j=(i.dateClicked||h.electric);if(j&&h.inputField){h.inputField.value=i.date.print(h.ifFormat);if(typeof h.inputField.onchange=="function"){h.inputField.onchange()}}if(j&&h.displayArea){h.displayArea.innerHTML=i.date.print(h.daFormat)}if(j&&typeof h.onUpdate=="function"){h.onUpdate(i)}if(j&&h.flat){if(typeof h.flatCallback=="function"){h.flatCallback(i)}}if(j&&h.singleClick&&i.dateClicked){i.callCloseHandler()}}if(g.flat!=null){if(typeof g.flat=="string"){g.flat=document.getElementById(g.flat)}if(!g.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false}var e=new Calendar(g.firstDay,g.date,g.onSelect||a);e.setDateToolTipHandler(g.dateTooltipFunc);e.showsOtherMonths=g.showOthers;e.showsTime=g.showsTime;e.time24=(g.timeFormat=="24");e.params=g;e.weekNumbers=g.weekNumbers;e.setRange(g.range[0],g.range[1]);e.setDateStatusHandler(g.dateStatusFunc);e.getDateText=g.dateText;if(g.ifFormat){e.setDateFormat(g.ifFormat)}if(g.inputField&&typeof g.inputField.value=="string"){e.parseDate(g.inputField.value)}e.create(g.flat);e.show();return false}var d=g.button||g.displayArea||g.inputField;d["on"+g.eventName]=function(){var h=g.inputField||g.displayArea;var k=g.inputField?g.ifFormat:g.daFormat;var o=false;var m=window.calendar;if(h){g.date=Date.parseDate(h.value||h.innerHTML,k)}if(!(m&&g.cache)){window.calendar=m=new Calendar(g.firstDay,g.date,g.onSelect||a,g.onClose||function(i){i.hide()});m.setDateToolTipHandler(g.dateTooltipFunc);m.showsTime=g.showsTime;m.time24=(g.timeFormat=="24");m.weekNumbers=g.weekNumbers;o=true}else{if(g.date){m.setDate(g.date)}m.hide()}if(g.multiple){m.multiple={};for(var j=g.multiple.length;--j>=0;){var n=g.multiple[j];var l=n.print("%Y%m%d");m.multiple[l]=n}}m.showsOtherMonths=g.showOthers;m.yearStep=g.step;m.setRange(g.range[0],g.range[1]);m.params=g;m.setDateStatusHandler(g.dateStatusFunc);m.getDateText=g.dateText;m.setDateFormat(k);if(o){m.create()}m.refresh();if(!g.position){m.showAtElement(g.button||g.displayArea||g.inputField,g.align)}else{m.showAt(g.position[0],g.position[1])}return false};return e};system/js/highlighter.js000064400000003064152177723720011360 0ustar00/*
		GNU General Public License version 2 or later; see LICENSE.txt
*/
if(typeof(Joomla)==="undefined"){var Joomla={}}Joomla.Highlighter=function(h){var d,f,i={autoUnhighlight:true,caseSensitive:false,startElement:false,endElement:false,elements:[],className:"highlight",onlyWords:true,tag:"span"},b=function(l){if(l.constructor===String){l=[l]}if(i.autoUnhighlight){g(l)}var k=i.onlyWords?"\b"+k+"\b":"("+l.join("\\b|\\b")+")",j=new RegExp(k,i.caseSensitive?"":"i");i.elements.map(function(m){a(m,j,i.className)});return this},g=function(l){if(l.constructor===String){l=[l]}var k,j;l.map(function(m){m=(i.caseSensitive?m:m.toUpperCase());if(l[m]){k=d(l[m]);k.removeClass();k.each(function(n,o){j=document.createTextNode(d(o).text());o.parentNode.replaceChild(j,o)})}});return this},a=function(k,r,q){if(k.nodeType===3){var o=k.nodeValue.match(r),l,j,s,p,n,m;if(o){l=document.createElement(i.tag);j=d(l);j.addClass(q);s=k.splitText(o.index);s.splitText(o[0].length);p=s.cloneNode(true);j.append(p);d(s).replaceWith(l);j.attr("rel",j.text());n=j.text();if(!i.caseSensitive){n=j.text().toUpperCase()}if(!f[n]){f[n]=[]}f[n].push(l);return 1}}else{if((k.nodeType===1&&k.childNodes)&&!/(script|style|textarea|iframe)/i.test(k.tagName)&&!(k.tagName===i.tag.toUpperCase()&&k.className===q)){for(m=0;m<k.childNodes.length;m++){m+=a(k.childNodes[m],r,q)}}}return 0},e=function(l,k){var j=l.next();if(j.attr("id")!==k.attr("id")){i.elements.push(j.get(0));e(j,k)}},c=function(j){d=jQuery.noConflict();d.extend(i,j);e(d(i.startElement),d(i.endElement));f=[]};c(h);return{highlight:b,unhighlight:g}};system/js/polyfill.event.js000064400000014506152177723720012037 0ustar00(function(e){"Window"in this||!function(e){e.constructor?e.Window=e.constructor:(e.Window=e.constructor=new Function("return function Window() {}")()).prototype=this}(this),"Document"in this||(this.HTMLDocument?this.Document=this.HTMLDocument:(this.Document=this.HTMLDocument=document.constructor=new Function("return function Document() {}")(),this.Document.prototype=document)),"Element"in this&&"HTMLElement"in this||!function(){function e(){return s--||clearTimeout(t),document.body&&!document.body.prototype&&/(complete|interactive)/.test(document.readyState)?(a(document,!0),t&&document.body.prototype&&clearTimeout(t),!!document.body.prototype):!1}if(window.Element&&!window.HTMLElement)return void(window.HTMLElement=window.Element);window.Element=window.HTMLElement=new Function("return function Element() {}")();var t,n=document.appendChild(document.createElement("body")),o=n.appendChild(document.createElement("iframe")),r=o.contentWindow.document,i=Element.prototype=r.appendChild(r.createElement("*")),c={},a=function(e,t){var n,o,r,i=e.childNodes||[],u=-1;if(1===e.nodeType&&e.constructor!==Element){e.constructor=Element;for(n in c)o=c[n],e[n]=o}for(;r=t&&i[++u];)a(r,t);return e},u=document.getElementsByTagName("*"),l=document.createElement,s=100;i.attachEvent("onpropertychange",function(e){for(var t,n=e.propertyName,o=!c.hasOwnProperty(n),r=i[n],a=c[n],l=-1;t=u[++l];)1===t.nodeType&&(o||t[n]===a)&&(t[n]=r);c[n]=r}),i.constructor=Element,i.hasAttribute||(i.hasAttribute=function(e){return null!==this.getAttribute(e)}),e(!0)||(document.onreadystatechange=e,t=setInterval(e,25)),document.createElement=function(e){var t=l(String(e).toLowerCase());return a(t)},document.removeChild(n)}(),"defineProperty"in Object&&function(){try{var e={};return Object.defineProperty(e,"test",{value:42}),!0}catch(t){return!1}}()||!function(e){var t=Object.prototype.hasOwnProperty("__defineGetter__"),n="Getters & setters cannot be defined on this javascript engine",o="A property cannot both have accessors and be writable or have a value";Object.defineProperty=function(r,i,c){if(e&&(r===window||r===document||r===Element.prototype||r instanceof Element))return e(r,i,c);if(null===r||!(r instanceof Object||"object"==typeof r))throw new TypeError("Object must be an object (Object.defineProperty polyfill)");if(!(c instanceof Object))throw new TypeError("Descriptor must be an object (Object.defineProperty polyfill)");var a=String(i),u="value"in c||"writable"in c,l="get"in c&&typeof c.get,s="set"in c&&typeof c.set;if(l){if("function"!==l)throw new TypeError("Getter expected a function (Object.defineProperty polyfill)");if(!t)throw new TypeError(n);if(u)throw new TypeError(o);r.__defineGetter__(a,c.get)}else r[a]=c.value;if(s){if("function"!==s)throw new TypeError("Setter expected a function (Object.defineProperty polyfill)");if(!t)throw new TypeError(n);if(u)throw new TypeError(o);r.__defineSetter__(a,c.set)}return"value"in c&&(r[a]=c.value),r}}(Object.defineProperty),function(e){if(!("Event"in e))return!1;if("function"==typeof e.Event)return!0;try{return new Event("click"),!0}catch(t){return!1}}(this)||!function(){function t(e,t){for(var n=-1,o=e.length;++n<o;)if(n in e&&e[n]===t)return n;return-1}var n={click:1,dblclick:1,keyup:1,keypress:1,keydown:1,mousedown:1,mouseup:1,mousemove:1,mouseover:1,mouseenter:1,mouseleave:1,mouseout:1,storage:1,storagecommit:1,textinput:1},o=window.Event&&window.Event.prototype||null;window.Event=Window.prototype.Event=function(t,n){if(!t)throw new Error("Not enough arguments");if("createEvent"in document){var o=document.createEvent("Event"),r=n&&n.bubbles!==e?n.bubbles:!1,i=n&&n.cancelable!==e?n.cancelable:!1;return o.initEvent(t,r,i),o}var o=document.createEventObject();return o.type=t,o.bubbles=n&&n.bubbles!==e?n.bubbles:!1,o.cancelable=n&&n.cancelable!==e?n.cancelable:!1,o},o&&Object.defineProperty(window.Event,"prototype",{configurable:!1,enumerable:!1,writable:!0,value:o}),"createEvent"in document||(window.addEventListener=Window.prototype.addEventListener=Document.prototype.addEventListener=Element.prototype.addEventListener=function(){var e=this,o=arguments[0],r=arguments[1];if(e===window&&o in n)throw new Error("In IE8 the event: "+o+" is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");e._events||(e._events={}),e._events[o]||(e._events[o]=function(n){var o,r=e._events[n.type].list,i=r.slice(),c=-1,a=i.length;for(n.preventDefault=function(){n.cancelable!==!1&&(n.returnValue=!1)},n.stopPropagation=function(){n.cancelBubble=!0},n.stopImmediatePropagation=function(){n.cancelBubble=!0,n.cancelImmediate=!0},n.currentTarget=e,n.relatedTarget=n.fromElement||null,n.target=n.target||n.srcElement||e,n.timeStamp=(new Date).getTime(),n.clientX&&(n.pageX=n.clientX+document.documentElement.scrollLeft,n.pageY=n.clientY+document.documentElement.scrollTop);++c<a&&!n.cancelImmediate;)c in i&&(o=i[c],-1!==t(r,o)&&"function"==typeof o&&o.call(e,n))},e._events[o].list=[],e.attachEvent&&e.attachEvent("on"+o,e._events[o])),e._events[o].list.push(r)},window.removeEventListener=Window.prototype.removeEventListener=Document.prototype.removeEventListener=Element.prototype.removeEventListener=function(){var e,n=this,o=arguments[0],r=arguments[1];n._events&&n._events[o]&&n._events[o].list&&(e=t(n._events[o].list,r),-1!==e&&(n._events[o].list.splice(e,1),n._events[o].list.length||(n.detachEvent&&n.detachEvent("on"+o,n._events[o]),delete n._events[o])))},window.dispatchEvent=Window.prototype.dispatchEvent=Document.prototype.dispatchEvent=Element.prototype.dispatchEvent=function(e){if(!arguments.length)throw new Error("Not enough arguments");if(!e||"string"!=typeof e.type)throw new Error("DOM Events Exception 0");var t=this,n=e.type;try{if(!e.bubbles){e.cancelBubble=!0;var o=function(e){e.cancelBubble=!0,(t||window).detachEvent("on"+n,o)};this.attachEvent("on"+n,o)}this.fireEvent("on"+n,e)}catch(r){e.target=t;do e.currentTarget=t,"_events"in t&&"function"==typeof t._events[n]&&t._events[n].call(t,e),"function"==typeof t["on"+n]&&t["on"+n].call(t,e),t=9===t.nodeType?t.parentWindow:t.parentNode;while(t&&!e.cancelBubble)}return!0},document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&document.dispatchEvent(new Event("DOMContentLoaded",{bubbles:!0}))}))}()}).call("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{});
system/js/mootree.js000064400000013723152177723720010537 0ustar00var MooTreeIcon="I,L,Lminus,Lplus,Rminus,Rplus,T,Tminus,Tplus,_closed,_doc,_open,minus,plus".split(","),MooTreeControl=new Class({initialize:function(a,b){b.control=this;b.div=a.div;this.root=new MooTreeNode(b);this.index={};this.enabled=!0;this.theme=a.theme||"mootree.gif";this.loader=a.loader||{icon:"mootree_loader.gif",text:"Loading...",color:"#a0a0a0"};this.selected=null;this.mode=a.mode;this.grid=a.grid;this.onExpand=a.onExpand||new Function;this.onSelect=a.onSelect||new Function;this.onClick=
a.onClick||new Function;this.root.update(!0)},insert:function(a){a.control=this;return this.root.insert(a)},select:function(a){this.onClick(a);a.onClick();this.selected!==a&&(this.selected&&(this.selected.select(!1),this.onSelect(this.selected,!1)),this.selected=a,a.select(!0),this.onSelect(a,!0))},expand:function(){this.root.toggle(!0,!0)},collapse:function(){this.root.toggle(!0,!1)},get:function(a){return this.index[a]||null},adopt:function(a,b){void 0===b&&(b=this.root);this.disable();this._adopt(a,
b);b.update(!0);document.id(a).destroy();this.enable()},_adopt:function(a,b){e=document.id(a);for(var c=0,d=e.getChildren(),c=0;c<d.length;c++)if("LI"==d[c].nodeName){for(var f={text:""},i="",h=null,l=null,g=0,h=0,k=null,j=d[c].getChildren(),g=0;g<j.length;g++)switch(j[g].nodeName){case "A":for(h=0;h<j[g].childNodes.length;h++)switch(k=j[g].childNodes[h],k.nodeName){case "#text":f.text+=k.nodeValue;break;case "#comment":i+=k.nodeValue}f.data=j[g].getProperties("href","target","title","name");break;
case "UL":l=j[g]}if(""!=f.label){f.data.url=f.data.href;if(""!=i){i=i.split(";");for(h=0;h<i.length;h++)g=i[h].trim().split(":"),2==g.length&&(f[g[0].trim()]=g[1].trim())}null!=d[c].id&&(f.id="node_"+d[c].id);h=b.insert(f);l&&this._adopt(l,h)}}},disable:function(){this.enabled=!1},enable:function(){this.enabled=!0;this.root.update(!0,!0)}}),MooTreeNode=new Class({initialize:function(a){this.text=a.text;this.id=a.id||null;this.nodes=[];this.parent=null;this.last=!0;this.control=a.control;this.selected=
!1;this.color=a.color||null;this.data=a.data||{};this.onExpand=a.onExpand||new Function;this.onSelect=a.onSelect||new Function;this.onClick=a.onClick||new Function;this.open=a.open?!0:!1;this.icon=a.icon;this.openicon=a.openicon||this.icon;this.id&&(this.control.index[this.id]=this);this.div={main:(new Element("div")).addClass("mooTree_node"),indent:new Element("div"),gadget:new Element("div"),icon:new Element("div"),text:(new Element("div")).addClass("mooTree_text"),sub:new Element("div")};this.div.main.adopt(this.div.indent);
this.div.main.adopt(this.div.gadget);this.div.main.adopt(this.div.icon);this.div.main.adopt(this.div.text);document.id(a.div).adopt(this.div.main);document.id(a.div).adopt(this.div.sub);this.div.gadget._node=this;this.div.gadget.onclick=this.div.gadget.ondblclick=function(){this._node.toggle()};this.div.icon._node=this.div.text._node=this;this.div.icon.onclick=this.div.icon.ondblclick=this.div.text.onclick=this.div.text.ondblclick=function(){this._node.control.select(this._node)}},insert:function(a){a.div=
this.div.sub;a.control=this.control;a=new MooTreeNode(a);a.parent=this;var b=this.nodes;b.length&&(b[b.length-1].last=!1);b.push(a);a.update();1==b.length&&this.update();1<b.length&&b[b.length-2].update(!0);return a},remove:function(){var a=this.parent;this._remove();a.update(!0)},_remove:function(){for(var a=this.nodes;a.length;)a[a.length-1]._remove();delete this.control.index[this.id];this.div.main.destroy();this.div.sub.destroy();this.parent&&(a=this.parent.nodes,a.erase(this),a.length&&(a[a.length-
1].last=!0))},clear:function(){for(this.control.disable();this.nodes.length;)this.nodes[this.nodes.length-1].remove();this.control.enable()},update:function(a,b){var c=!0;this.control.enabled||(this.invalidated=!0,c=!1);b&&(this.invalidated?this.invalidated=!1:c=!1);if(c){this.div.main.className="mooTree_node"+(this.selected?" mooTree_selected":"");for(var c=this,d="";c.parent;)c=c.parent,d=this.getImg(c.last||!this.control.grid?"":"I")+d;this.div.indent.innerHTML=d;c=this.div.text;c.empty();c.appendText(this.text);
this.color&&(c.style.color=this.color);this.div.icon.innerHTML=this.getImg(this.nodes.length?this.open?this.openicon||this.icon||"_open":this.icon||"_closed":this.icon||("folders"==this.control.mode?"_closed":"_doc"));this.div.gadget.innerHTML=this.getImg((this.control.grid?this.control.root==this?this.nodes.length?"R":"":this.last?"L":"T":"")+(this.nodes.length?this.open?"minus":"plus":""));this.div.sub.style.display=this.open?"block":"none"}a&&this.nodes.forEach(function(a){a.update(!0,b)})},getImg:function(a){var b=
'<div class="mooTree_img"';if(""!=a){var c=this.control.theme,d=MooTreeIcon.indexOf(a);-1==d&&(a=a.split("#"),c=a[0],d=2==a.length?parseInt(a[1])-1:0);b+=' style="background-image:url('+c+"); background-position:-"+18*d+'px 0px;"'}return b+"></div>"},toggle:function(a,b){this.open=void 0===b?!this.open:b;this.update();this.onExpand(this.open);this.control.onExpand(this,this.open);a&&this.nodes.forEach(function(a){a.toggle(!0,this.open)},this)},select:function(a){this.selected=a;this.update();this.onSelect(a)},
load:function(a,b){this.loading||(this.loading=!0,this.toggle(!1,!0),this.clear(),this.insert(this.control.loader),function(){(new Request({method:"GET",url:a,onSuccess:this._loaded.bind(this),onFailure:this._load_err.bind(this)})).send(b||"")}.bind(this).delay(20))},_loaded:function(a,b){this.control.disable();this.clear();this._import(b.documentElement);this.control.enable();this.loading=!1},_import:function(a){for(var a=a.childNodes,b=0;b<a.length;b++)if("node"==a[b].tagName){for(var c={data:{}},
d=a[b].attributes,f=0;f<d.length;f++)switch(d[f].name){case "text":case "id":case "icon":case "openicon":case "color":case "open":c[d[f].name]=d[f].value;break;default:c.data[d[f].name]=d[f].value}c=this.insert(c);c.data.load&&(c.open=!1,c.insert(this.control.loader),c.onExpand=function(){this.load(this.data.load);this.onExpand=new Function});a[b].childNodes.length&&c._import(a[b])}},_load_err:function(){window.alert("Error loading: "+this.text)}});system/js/html5fallback.js000064400000013466152177723720011602 0ustar00!function(a,b,c){"use strict";"function"!=typeof Object.create&&(Object.create=function(a){function b(){}return b.prototype=a,new b});var d=function(a,b){for(var c=["required","pattern","placeholder","autofocus","formnovalidate"],d=["email","url","number","range"],e={attributes:{},types:{}};b=c.pop();)e.attributes[b]=!!(b in a);for(;b=d.pop();)a.setAttribute("type",b),e.types[b]=a.type==b;return e}(b.createElement("input")),e={init:function(b,c){var d=this;d.elem=c,d.$elem=a(c),c.H5Form=d,d.options=a.extend({},a.fn.h5f.options,b),"form"===c.nodeName.toLowerCase()&&d.bindWithForm(d.elem,d.$elem)},bindWithForm:function(a,b){var i,e=this,f=!!b.attr("novalidate"),g=a.elements,h=g.length;for("onSubmit"===e.options.formValidationEvent&&b.on("submit",function(a){i=this.H5Form.donotValidate!==c&&this.H5Form.donotValidate,i||f||e.validateForm(e)?b.find(":input").each(function(){e.placeholder(e,this,"submit")}):(a.preventDefault(),this.donotValidate=!1)}),b.on("focusout focusin",function(a){e.placeholder(e,a.target,a.type)}),b.on("focusout change",e.validateField),b.find("fieldset").on("change",function(){e.validateField(this)}),d.attributes.formnovalidate||b.find(":submit[formnovalidate]").on("click",function(){e.donotValidate=!0});h--;)e.polyfill(g[h]),e.autofocus(e,g[h])},polyfill:function(a){if("form"===a.nodeName.toLowerCase())return!0;var b=a.form.H5Form;b.placeholder(b,a),b.numberType(b,a)},validateForm:function(){var f,g,a=this,b=a.elem,c=b.elements,d=c.length,e=!0;for(b.isValid=!0,f=0;f<d;f++)g=c[f],g.isRequired=!!g.required,g.isDisabled&&(g.isDisabled=!!g.disabled),g.isDisabled||(e=a.validateField(g),b.isValid&&!e&&a.setFocusOn(g),b.isValid=e&&b.isValid);return a.options.doRenderMessage&&a.renderErrorMessages(a,b),b.isValid},validateField:function(b){var j,k,l,e=b.target||b,f=!1,g=!1,h=!1,i=!1;return e.form===c?null:(j=e.form.H5Form,k=a(e),g=!!k.attr("required"),h=!!k.attr("disabled"),e.isDisabled||(f=!d.attributes.required&&g&&j.isValueMissing(j,e),i=!d.attributes.pattern&&j.matchPattern(j,e)),e.validityState={valueMissing:f,patternMismatch:i,valid:e.isDisabled||!(f||i)},d.attributes.required||(e.validityState.valueMissing?k.addClass(j.options.requiredClass):k.removeClass(j.options.requiredClass)),d.attributespattern||(e.validityState.patternMismatch?k.addClass(j.options.patternClass):k.removeClass(j.options.patternClass)),e.validityState.valid?(k.removeClass(j.options.invalidClass),l=j.findLabel(k),l.removeClass(j.options.invalidClass),l.attr("aria-invalid","false")):(k.addClass(j.options.invalidClass),l=j.findLabel(k),l.addClass(j.options.invalidClass),l.attr("aria-invalid","true")),e.validityState.valid)},isValueMissing:function(e,f){var k,l,m,g=a(f),h=f.type!==c?f.type:f.tagName.toLowerCase(),i=/^(checkbox|radio|fieldset)$/i.test(h),j=/^submit$/i.test(h);if(j)return!1;if(i){if("checkbox"===h)return!g.is(":checked");for(k="fieldset"===h?g.find("input"):b.getElementsByName(f.name),l=0,m=k.length;l<m;l++)if(a(k[l]).is(":checked"))return!1;return!0}return!(""!==g.val()&&(d.attributes.placeholder||!g.hasClass(e.options.placeholderClass)))},matchPattern:function(b,e){var j,k,f=a(e),g=f.attr("value"),h=f.attr("pattern"),i=f.attr("type");if(!d.attributes.placeholder&&f.attr("placeholder")&&f.hasClass(b.options.placeholderClass)||(g=f.attr("value")),""===g)return!1;if("email"===i){if(f.attr("multiple")===c)return!b.options.emailPatt.test(g);for(g=g.split(b.options.mutipleDelimiter),j=0,k=g.length;j<k;j++)if(!b.options.emailPatt.test(g[j].replace(/[ ]*/g,"")))return!0}else{if("url"===i)return!b.options.urlPatt.test(g);if("text"===i&&h!==c)return usrPatt=new RegExp("^(?:"+h+")$"),!usrPatt.test(g)}return!1},placeholder:function(b,e,f){var g=a(e),h=g.attr("placeholder"),i=/^(focusin|submit)$/i.test(f),j=/^(input|textarea)$/i.test(e.nodeName),k=/^password$/i.test(e.type),l=d.attributes.placeholder;l||!j||k||h===c||(""!==e.value||i?e.value===h&&i&&(e.value="",g.removeClass(b.options.placeholderClass)):(e.value=h,g.addClass(b.options.placeholderClass)))},numberType:function(b,c){var i,j,k,l,m,n,o,p,e=a(c),f=e.attr("type"),g=/^input$/i.test(c.nodeName),h=/^(number|range)$/i.test(f);if(!(!g||!h||"number"==f&&d.types.number||"range"==f&&d.types.range)){for(i=parseInt(e.attr("min")),j=parseInt(e.attr("max")),k=parseInt(e.attr("step")),l=parseInt(e.attr("value")),m=e.prop("attributes"),n=a("<select>"),i=isNaN(i)?-100:i,p=i;p<=j;p+=k)o=a('<option value="'+p+'">'+p+"</option>"),(l==p||l>p&&l<p+k)&&o.attr("selected",""),n.append(o);a.each(m,function(){n.attr(this.name,this.value)}),e.replaceWith(n)}},autofocus:function(b,c){var e=a(c),f=!!e.attr("autofocus"),g=/^(input|textarea|select|fieldset)$/i.test(c.nodeName),h=/^submit$/i.test(c.type),i=d.attributes.autofocus;!i&&g&&!h&&f&&a(function(){b.setFocusOn(c)})},findLabel:function(b){var d,c=a('label[for="'+b.attr("id")+'"]');return c.length<=0&&(d=b.parent(),"label"==d.get(0).tagName.toLowerCase()&&(c=d)),c},setFocusOn:function(b){"fieldset"===b.tagName.toLowerCase()?a(b).find(":first").focus():a(b).focus()},renderErrorMessages:function(b,c){for(var g,h,d=c.elements,e=d.length,f={errors:[]};e--;)g=a(d[e]),h=b.findLabel(g),g.hasClass(b.options.requiredClass)&&(f.errors[e]=h.text().replace("*","")+b.options.requiredMessage),g.hasClass(b.options.patternClass)&&(f.errors[e]=h.text().replace("*","")+b.options.patternMessage);f.errors.length>0&&Joomla.renderMessages(f)}};a.fn.h5f=function(a){return this.each(function(){Object.create(e).init(a,this)})},a.fn.h5f.options={invalidClass:"invalid",requiredClass:"required",requiredMessage:" is required.",placeholderClass:"placeholder",patternClass:"pattern",patternMessage:" doesn't match pattern.",doRenderMessage:!1,formValidationEvent:"onSubmit",emailPatt:/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,urlPatt:/[a-z][\-\.+a-z]*:\/\//i},a(function(){a("form").h5f({doRenderMessage:!0,requiredClass:"musthavevalue"})})}(jQuery,document);system/js/tabs.js000064400000004772152177723720010022 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

Object.append(Browser.Features, {
	localstorage: (function() {
		return ('localStorage' in window) && window.localStorage !== null;
	})()
});

/**
 * Tabs behavior
 *
 * @package		Joomla!
 * @subpackage	JavaScript
 * @since		1.5
 */
var JTabs = new Class({
	Implements: [Options, Events],

	options : {
		display: 0,
		useStorage: true,
		onActive: function(title, description) {
			description.setStyle('display', 'block');
			title.addClass('open').removeClass('closed');
		},
		onBackground: function(title, description){
			description.setStyle('display', 'none');
			title.addClass('closed').removeClass('open');
		},
		titleSelector: 'dt',
		descriptionSelector: 'dd'
	},

	initialize: function(dlist, options){
		this.setOptions(options);
		this.dlist = document.id(dlist);
		this.titles = this.dlist.getChildren(this.options.titleSelector);
		this.descriptions = this.dlist.getChildren(this.options.descriptionSelector);
		this.content = new Element('div').inject(this.dlist, 'after').addClass('current');
		this.storageName = 'jpanetabs_'+this.dlist.id;

		if (this.options.useStorage) {
			if (Browser.Features.localstorage) {
				this.options.display = this.options.display || localStorage[this.storageName];
			} else {
				this.options.display = this.options.display || Cookie.read(this.storageName);
			}
		}
		if (this.options.display === null || this.options.display === undefined) {
			this.options.display = 0;
		}
		this.options.display = this.options.display.toInt().limit(0, this.titles.length-1);

		for (var i = 0, l = this.titles.length; i < l; i++)
		{
			var title = this.titles[i];
			var description = this.descriptions[i];
			title.setStyle('cursor', 'pointer');
			title.addEvent('click', this.display.bind(this, i));
			description.inject(this.content);
		}

		this.display(this.options.display);

		if (this.options.initialize) this.options.initialize.call(this);
	},

	hideAllBut: function(but) {
		for (var i = 0, l = this.titles.length; i < l; i++)
		{
			if (i != but) this.fireEvent('onBackground', [this.titles[i], this.descriptions[i]]);
		}
	},

	display: function(i) {
		this.hideAllBut(i);
		this.fireEvent('onActive', [this.titles[i], this.descriptions[i]]);
		if (this.options.useStorage) {
			if (Browser.Features.localstorage) {
				localStorage[this.storageName] = i;
			} else {
				Cookie.write(this.storageName, i);
			}
		}
	}
});
system/js/tabs-state-uncompressed.js000064400000021523152177723720013636 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JavaScript behavior to allow selected tab to be remained after save or page reload
 * keeping state in sessionStorage with better handling of multiple tab widgets per page
 * and not saving the state if there is no id in the url (like on the CREATE page of content)
 */

jQuery(function ($) {

    // Ensure in IE8 we can use xpath
    if (typeof wgxpath.install === "function") {
        wgxpath.install();
    }

    /**
     * Tiny jQuery extension to allow getting of url params
     * @use jQuery.urlParam('param') or $.urlParam('myRegex|anotherRegex')
     * If no trailing equals sign in name, add one, allows for general reuse
     */
    $.urlParam = function (name) {
        if (!new RegExp("=$").exec(name)) {
            name = name + '=';
        }
        var results = new RegExp("[\\?&](" + name + ")([^&#]*)").exec(window.location.href);
        return results ? results[1] : null;
    };

    // jQuery extension to get the XPATH of a DOM element
    $.getXpath = function (el) {
        if (typeof el == "string") {
            return document.evaluate(el, document, null, 0, null);
        }
        if (!el || el.nodeType != 1) {
            return "";
        }
        if (el.id) {
            return "//*[@id='" + el.id + "']";
        }
        var a = [];
        var sames = a.filter.call(el.parentNode.children, function (x) {
            return x.tagName == el.tagName;
        });
        var b = [];
        return $.getXpath(el.parentNode) + "/" + el.tagName.toLowerCase() + (sames.length > 1 ? "[" + (b.indexOf.call(sames, el) + 1) + "]" : "");
    };

    // jQuery extension to get the DOM element from an XPATH
    $.findXpath = function (exp, ctxt) {
        var item;
        var coll = [];
        var result = document.evaluate(exp, ctxt || document, null, 5, null);

        while (item = result.iterateNext()) {
            coll.push(item);
        }

        return $(coll);
    };

    var loadTabs = function () {

        /**
         * Remove an item from an array
         */
        function remove_item(activeTabsHrefs, tabCollection) {
            for (var i = 0; i < activeTabsHrefs.length; i++) {
                if (activeTabsHrefs[i].indexOf(tabCollection) > -1) {
                    activeTabsHrefs.splice(i, 1);
                }
            }

            return activeTabsHrefs;
        }

        /**
         * Generate the sessionStorage key we will use
         * This is the URL minus some cleanup
         */
        function getStorageKey() {
            return window.location.href.toString().split(window.location.host)[1].replace(/&return=[a-zA-Z0-9%]+/, "").split('#')[0];
        }

        /**
         * Save this tab to the storage in the form of a pseudo keyed array
         */
        function saveActiveTab(event) {

            // Get a new storage key, normally the full url we are on with some cleanup
            var storageKey = getStorageKey();

            // get this tabs own href
            var href = $(event.target).attr("href");

            // find the collection of tabs this tab belongs to, and calcuate the unique xpath to it
            var tabCollection = $.getXpath($(event.target).closest(".nav-tabs").first().get(0));

            // error handling
            if (!tabCollection || typeof href == "undefined") {
                return;
            }

            // Create a dummy keyed array as js doesnt allow keyed arrays
            var storageValue = tabCollection + "|" + href;

            // Get the current array from the storage
            var activeTabsHrefs = JSON.parse(sessionStorage.getItem(storageKey));

            // If none start a new array
            if (!activeTabsHrefs) {
                var activeTabsHrefs = [];
            } else {
                // Avoid Duplicates in the storage
                remove_item(activeTabsHrefs, tabCollection);
            }

            // Save clicked tab, with relationship to tabCollection to the array
            activeTabsHrefs.push(storageValue);

            // Store the selected tabs as an array in sessionStorage
            sessionStorage.setItem(storageKey, JSON.stringify(activeTabsHrefs));
        }

        // Array with active tabs hrefs
        var activeTabsHrefs = JSON.parse(sessionStorage.getItem(getStorageKey()));

        // jQuery object with all tabs links
        var alltabs = $("a[data-toggle='tab']");

        // When a tab is clicked, save its state!
        alltabs.on("click", function (e) {
            saveActiveTab(e);
        });

        // Clean default tabs
        alltabs.parent(".active").removeClass("active");

        // If we cannot find a tab storage for this url, see if we are coming from a save of a new item
        if (!activeTabsHrefs) {
            var unSavedStateUrl = getStorageKey().replace(/\&id=[0-9]*|[a-z]\&{1}_id=[0-9]*/, '');
            activeTabsHrefs = JSON.parse(sessionStorage.getItem(unSavedStateUrl));
            sessionStorage.removeItem(unSavedStateUrl);
        }

        // we have some tab states to restore, if we see a hash then let that trump the saved state
        if (activeTabsHrefs !== null && !window.location.hash) {

            // When moving from tab area to a different view
            $.each(activeTabsHrefs, function (index, tabFakexPath) {

                // Click the tab
                var parts = tabFakexPath.split("|");
                $.findXpath(parts[0]).find("a[data-toggle='tab'][href='" + parts[1] + "']").click();

            });

        } else { // clean slate start

            // a list of tabs to click
            var tabsToClick = [];

            // If we are passing a hash then this trumps everything
            if (window.location.hash) {

                // for each set of tabs on the page
                alltabs.parents("ul").each(function (index, ul) {

                    // If no tabs is saved, activate first tab from each tab set and save it
                    var tabToClick = $(ul).find("a[href='" + window.location.hash + "']");

                    // If we found some|one
                    if (tabToClick.length) {

                        // if we managed to locate its selector directly
                        if (tabToClick.selector) {

                            // highlight tab of the tabs if the hash matches
                            tabsToClick.push(tabToClick);
                        } else {

                            // highlight first tab of the tabs
                            tabsToClick.push(tabToClick.first());
                        }

                        var parentPane = tabToClick.closest('.tab-pane');

                        // bubble up for nested tabs (like permissions tabs in the permissions pane)
                        if (parentPane) {
                            var id = parentPane.attr('id');
                            if (id) {
                                var parentTabToClick = $(parentPane).find("a[href='#" + id + "']");
                                if (parentTabToClick) {
                                    tabsToClick.push(parentTabToClick);
                                }
                            }
                        }
                    }

                    // cleanup for another loop
                    parentTabToClick = null;
                    tabToClick = null;
                    parentPane = null;
                    id = null;
                });

                // run in the right order bubbling up
                tabsToClick.reverse();

                // for all queued tabs
                for (var i = 0; i < tabsToClick.length; i++) {

                    // click the tabs, thus storing them
                    jQuery(tabsToClick[i].selector).click();
                }

                // Remove the #hash in the url - with support for older browsers with no flicker
                var scrollV, scrollH, loc = window.location;
                if ("pushState" in history)
                    history.pushState("", document.title, loc.pathname + loc.search);
                else {
                    // Prevent scrolling by storing the page's current scroll offset
                    scrollV = document.body.scrollTop;
                    scrollH = document.body.scrollLeft;
                    loc.hash = "";
                    // Restore the scroll offset, should be flicker free
                    document.body.scrollTop = scrollV;
                    document.body.scrollLeft = scrollH;
                }

            } else {
                alltabs.parents("ul").each(function (index, ul) {
                    // If no tabs is saved, activate first tab from each tab set and save it
                    $(ul).find("a").first().click();
                });
            }
        }
    };

    setTimeout(loadTabs, 100);
});
system/js/polyfill.event-uncompressed.js000064400000032160152177723720014540 0ustar00/**
 * Polyfill service v3.13.0
 * For detailed credits and licence information see http://github.com/financial-times/polyfill-service.
 * 
 * Features requested: Event
 * 
 * - Window, License: CC0 (required by "Event")
 * - Document, License: CC0 (required by "Element", "Event")
 * - Element, License: CC0 (required by "Event")
 * - Object.defineProperty, License: CC0 (required by "Event")
 * - Event, License: CC0
 *
 * @build      https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always,gated
 * 
 * @copyright  Copyright (c) 2016 Financial Times
 * @license    MIT License, https://github.com/Financial-Times/polyfill-service/blob/master/LICENSE.md
 */

(function(undefined) {
if (!('Window' in this)) {

// Window
(function(global) {
	if (global.constructor) {
		global.Window = global.constructor;
	} else {
		(global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;
	}
}(this));

}

if (!("Document" in this)) {

// Document
if (this.HTMLDocument) { // IE8

	// HTMLDocument is an extension of Document.  If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
	this.Document = this.HTMLDocument;

} else {

	// Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype.  The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.
	this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
	this.Document.prototype = document;
}

}

if (!('Element' in this && 'HTMLElement' in this)) {

// Element
(function () {

	// IE8
	if (window.Element && !window.HTMLElement) {
		window.HTMLElement = window.Element;
		return;
	}

	// create Element constructor
	window.Element = window.HTMLElement = new Function('return function Element() {}')();

	// generate sandboxed iframe
	var vbody = document.appendChild(document.createElement('body'));
	var frame = vbody.appendChild(document.createElement('iframe'));

	// use sandboxed iframe to replicate Element functionality
	var frameDocument = frame.contentWindow.document;
	var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
	var cache = {};

	// polyfill Element.prototype on an element
	var shiv = function (element, deep) {
		var
		childNodes = element.childNodes || [],
		index = -1,
		key, value, childNode;

		if (element.nodeType === 1 && element.constructor !== Element) {
			element.constructor = Element;

			for (key in cache) {
				value = cache[key];
				element[key] = value;
			}
		}

		while (childNode = deep && childNodes[++index]) {
			shiv(childNode, deep);
		}

		return element;
	};

	var elements = document.getElementsByTagName('*');
	var nativeCreateElement = document.createElement;
	var interval;
	var loopLimit = 100;

	prototype.attachEvent('onpropertychange', function (event) {
		var
		propertyName = event.propertyName,
		nonValue = !cache.hasOwnProperty(propertyName),
		newValue = prototype[propertyName],
		oldValue = cache[propertyName],
		index = -1,
		element;

		while (element = elements[++index]) {
			if (element.nodeType === 1) {
				if (nonValue || element[propertyName] === oldValue) {
					element[propertyName] = newValue;
				}
			}
		}

		cache[propertyName] = newValue;
	});

	prototype.constructor = Element;

	if (!prototype.hasAttribute) {
		// <Element>.hasAttribute
		prototype.hasAttribute = function hasAttribute(name) {
			return this.getAttribute(name) !== null;
		};
	}

	// Apply Element prototype to the pre-existing DOM as soon as the body element appears.
	function bodyCheck() {
		if (!(loopLimit--)) clearTimeout(interval);
		if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
			shiv(document, true);
			if (interval && document.body.prototype) clearTimeout(interval);
			return (!!document.body.prototype);
		}
		return false;
	}
	if (!bodyCheck(true)) {
		document.onreadystatechange = bodyCheck;
		interval = setInterval(bodyCheck, 25);
	}

	// Apply to any new elements created after load
	document.createElement = function createElement(nodeName) {
		var element = nativeCreateElement(String(nodeName).toLowerCase());
		return shiv(element);
	};

	// remove sandboxed iframe
	document.removeChild(vbody);
}());

}

if (!(// In IE8, defineProperty could only act on DOM elements, so full support
// for the feature requires the ability to set a property on an arbitrary object
'defineProperty' in Object && (function() {
	try {
		var a = {};
		Object.defineProperty(a, 'test', {value:42});
		return true;
	} catch(e) {
		return false
	}
}()))) {

// Object.defineProperty
(function (nativeDefineProperty) {

	var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
	var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
	var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';

	Object.defineProperty = function defineProperty(object, property, descriptor) {

		// Where native support exists, assume it
		if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
			return nativeDefineProperty(object, property, descriptor);
		}

		if (object === null || !(object instanceof Object || typeof object === 'object')) {
			throw new TypeError('Object must be an object (Object.defineProperty polyfill)');
		}

		if (!(descriptor instanceof Object)) {
			throw new TypeError('Descriptor must be an object (Object.defineProperty polyfill)');
		}

		var propertyString = String(property);
		var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
		var getterType = 'get' in descriptor && typeof descriptor.get;
		var setterType = 'set' in descriptor && typeof descriptor.set;

		// handle descriptor.get
		if (getterType) {
			if (getterType !== 'function') {
				throw new TypeError('Getter expected a function (Object.defineProperty polyfill)');
			}
			if (!supportsAccessors) {
				throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
			}
			if (hasValueOrWritable) {
				throw new TypeError(ERR_VALUE_ACCESSORS);
			}
			object.__defineGetter__(propertyString, descriptor.get);
		} else {
			object[propertyString] = descriptor.value;
		}

		// handle descriptor.set
		if (setterType) {
			if (setterType !== 'function') {
				throw new TypeError('Setter expected a function (Object.defineProperty polyfill)');
			}
			if (!supportsAccessors) {
				throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
			}
			if (hasValueOrWritable) {
				throw new TypeError(ERR_VALUE_ACCESSORS);
			}
			object.__defineSetter__(propertyString, descriptor.set);
		}

		// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
		if ('value' in descriptor) {
			object[propertyString] = descriptor.value;
		}

		return object;
	};
}(Object.defineProperty));

}

if (!((function(global) {

	if (!('Event' in global)) return false;
	if (typeof global.Event === 'function') return true;

	try {

		// In IE 9-11, the Event object exists but cannot be instantiated
		new Event('click');
		return true;
	} catch(e) {
		return false;
	}
}(this)))) {

// Event
(function () {
	var unlistenableWindowEvents = {
		click: 1,
		dblclick: 1,
		keyup: 1,
		keypress: 1,
		keydown: 1,
		mousedown: 1,
		mouseup: 1,
		mousemove: 1,
		mouseover: 1,
		mouseenter: 1,
		mouseleave: 1,
		mouseout: 1,
		storage: 1,
		storagecommit: 1,
		textinput: 1
	};

	function indexOf(array, element) {
		var
		index = -1,
		length = array.length;

		while (++index < length) {
			if (index in array && array[index] === element) {
				return index;
			}
		}

		return -1;
	}

	var existingProto = (window.Event && window.Event.prototype) || null;
	window.Event = Window.prototype.Event = function Event(type, eventInitDict) {
		if (!type) {
			throw new Error('Not enough arguments');
		}

		// Shortcut if browser supports createEvent
		if ('createEvent' in document) {
			var event = document.createEvent('Event');
			var bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
			var cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;

			event.initEvent(type, bubbles, cancelable);

			return event;
		}

		var event = document.createEventObject();

		event.type = type;
		event.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
		event.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;

		return event;
	};
	if (existingProto) {
		Object.defineProperty(window.Event, 'prototype', {
			configurable: false,
			enumerable: false,
			writable: true,
			value: existingProto
		});
	}

	if (!('createEvent' in document)) {
		window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {
			var
			element = this,
			type = arguments[0],
			listener = arguments[1];

			if (element === window && type in unlistenableWindowEvents) {
				throw new Error('In IE8 the event: ' + type + ' is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.');
			}

			if (!element._events) {
				element._events = {};
			}

			if (!element._events[type]) {
				element._events[type] = function (event) {
					var
					list = element._events[event.type].list,
					events = list.slice(),
					index = -1,
					length = events.length,
					eventElement;

					event.preventDefault = function preventDefault() {
						if (event.cancelable !== false) {
							event.returnValue = false;
						}
					};

					event.stopPropagation = function stopPropagation() {
						event.cancelBubble = true;
					};

					event.stopImmediatePropagation = function stopImmediatePropagation() {
						event.cancelBubble = true;
						event.cancelImmediate = true;
					};

					event.currentTarget = element;
					event.relatedTarget = event.fromElement || null;
					event.target = event.target || event.srcElement || element;
					event.timeStamp = new Date().getTime();

					if (event.clientX) {
						event.pageX = event.clientX + document.documentElement.scrollLeft;
						event.pageY = event.clientY + document.documentElement.scrollTop;
					}

					while (++index < length && !event.cancelImmediate) {
						if (index in events) {
							eventElement = events[index];

							if (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {
								eventElement.call(element, event);
							}
						}
					}
				};

				element._events[type].list = [];

				if (element.attachEvent) {
					element.attachEvent('on' + type, element._events[type]);
				}
			}

			element._events[type].list.push(listener);
		};

		window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {
			var
			element = this,
			type = arguments[0],
			listener = arguments[1],
			index;

			if (element._events && element._events[type] && element._events[type].list) {
				index = indexOf(element._events[type].list, listener);

				if (index !== -1) {
					element._events[type].list.splice(index, 1);

					if (!element._events[type].list.length) {
						if (element.detachEvent) {
							element.detachEvent('on' + type, element._events[type]);
						}
						delete element._events[type];
					}
				}
			}
		};

		window.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {
			if (!arguments.length) {
				throw new Error('Not enough arguments');
			}

			if (!event || typeof event.type !== 'string') {
				throw new Error('DOM Events Exception 0');
			}

			var element = this, type = event.type;

			try {
				if (!event.bubbles) {
					event.cancelBubble = true;

					var cancelBubbleEvent = function (event) {
						event.cancelBubble = true;

						(element || window).detachEvent('on' + type, cancelBubbleEvent);
					};

					this.attachEvent('on' + type, cancelBubbleEvent);
				}

				this.fireEvent('on' + type, event);
			} catch (error) {
				event.target = element;

				do {
					event.currentTarget = element;

					if ('_events' in element && typeof element._events[type] === 'function') {
						element._events[type].call(element, event);
					}

					if (typeof element['on' + type] === 'function') {
						element['on' + type].call(element, event);
					}

					element = element.nodeType === 9 ? element.parentWindow : element.parentNode;
				} while (element && !event.cancelBubble);
			}

			return true;
		};

		// Add the DOMContentLoaded Event
		document.attachEvent('onreadystatechange', function() {
			if (document.readyState === 'complete') {
				document.dispatchEvent(new Event('DOMContentLoaded', {
					bubbles: true
				}));
			}
		});
	}
}());

}


})
.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
system/js/frontediting-uncompressed.js000064400000014124152177723720014262 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JavaScript behavior to add front-end hover edit icons with tooltips for modules and menu items.
 *
 */
(function($) {

	$.fn.extend({
		/**
		 * This jQuery custom method makes the elements absolute, and with true argument moves them to end of body to avoid CSS inheritence
		 *
		 * @param   rebase boolean
		 * @returns {jQuery}
		 */
		jEditMakeAbsolute: function(rebase) {

			return this.each(function() {

				var el = $(this);
				var pos;

				if (rebase) {
					pos = el.offset();
				} else {
					pos = el.position();
				}

				el.css({ position: "absolute",
					marginLeft: 0, marginTop: 0,
					top: pos.top, left: pos.left,
					bottom: 'auto', right: 'auto'
				});

				if (rebase) {
					el.detach().appendTo("body");
				}
			});

		}
	});

	$(document).ready(function () {

		// Tooltip maximal dimensions for intelligent placement:
		var actualWidth = 200;
		var actualHeight = 100;
		// Tooltip smart tooltip placement function:
		var tooltipPlacer = function(tip, element) {
			var $element, above, below, boundBottom, boundLeft, boundRight, boundTop, elementAbove, elementBelow, elementLeft, elementRight, isWithinBounds, left, pos, right;
			isWithinBounds = function(elementPosition) {
				return boundTop < elementPosition.top && boundLeft < elementPosition.left && boundRight > (elementPosition.left + actualWidth) && boundBottom > (elementPosition.top + actualHeight);
			};
			$element = $(element);
			pos = $.extend({}, $element.offset(), {
				width: element.offsetWidth,
				height: element.offsetHeight
			});
			boundTop = $(document).scrollTop();
			boundLeft = $(document).scrollLeft();
			boundRight = boundLeft + $(window).width();
			boundBottom = boundTop + $(window).height();
			elementAbove = {
				top: pos.top - actualHeight,
				left: pos.left + pos.width / 2 - actualWidth / 2
			};
			elementBelow = {
				top: pos.top + pos.height,
				left: pos.left + pos.width / 2 - actualWidth / 2
			};
			elementLeft = {
				top: pos.top + pos.height / 2 - actualHeight / 2,
				left: pos.left - actualWidth
			};
			elementRight = {
				top: pos.top + pos.height / 2 - actualHeight / 2,
				left: pos.left + pos.width
			};
			above = isWithinBounds(elementAbove);
			below = isWithinBounds(elementBelow);
			left = isWithinBounds(elementLeft);
			right = isWithinBounds(elementRight);
			if (above) {
				return "top";
			} else {
				if (below) {
					return "bottom";
				} else {
					if (left) {
						return "left";
					} else {
						if (right) {
							return "right";
						} else {
							return "right";
						}
					}
				}
			}
		};

		// Modules edit icons:

		$('.jmoddiv').on({
			mouseenter: function() {

				// Get module editing URL and tooltip for module edit:
				var moduleEditUrl = $(this).data('jmodediturl');
				var moduleTip = $(this).data('jmodtip');
                var moduleTarget = $(this).data('target');

				// Stop timeout on previous tooltip and remove it:
				$('body>.btn.jmodedit').clearQueue().tooltip('destroy').remove();

				// Add editing button with tooltip:
				$(this).addClass('jmodinside')
					.prepend('<a class="btn jmodedit" href="#" target="' + moduleTarget + '"><span class="icon-edit"></span></a>')
					.children(":first").attr('href', moduleEditUrl).attr('title', moduleTip)
					.tooltip({"container": false, html: true, placement: tooltipPlacer})
					.jEditMakeAbsolute(true);

				$('.btn.jmodedit')
					.on({
						mouseenter: function() {
							// Stop delayed removal programmed by mouseleave of .jmoddiv or of this one:
							$(this).clearQueue();
						},
						mouseleave: function() {
							// Delay remove editing button if not hovering it:
							$(this).delay(500).queue(function(next) {
								$(this).tooltip('destroy').remove();
								next();
							});
						}
					});
			},
			mouseleave: function() {

				// Delay remove editing button if not hovering it:
				$('body>.btn.jmodedit').delay(500).queue(function(next) {
					$(this).tooltip('destroy').remove();
					next();
				});
			}
		});

		// Menu items edit icons:

		var activePopover = null;

		$('.jmoddiv[data-jmenuedittip] .nav li,.jmoddiv[data-jmenuedittip].nav li,.jmoddiv[data-jmenuedittip] .nav .nav-child li,.jmoddiv[data-jmenuedittip].nav .nav-child li').on({
			mouseenter: function() {

				// Get menu ItemId from the item-nnn class of the li element of the menu:
				var itemids = /\bitem-(\d+)\b/.exec($(this).attr('class'));
				if (typeof itemids[1] == 'string') {
					// Find module editing URL from enclosing module:
					var enclosingModuleDiv = $(this).closest('.jmoddiv');
					var moduleEditUrl = enclosingModuleDiv.data('jmodediturl');
					// Transform module editing URL into Menu Item editing url:
					var menuitemEditUrl = moduleEditUrl.replace(/\/index.php\?option=com_config&controller=config.display.modules([^\d]+).+$/, '/administrator/index.php?option=com_menus&view=item&layout=edit$1' + itemids[1]);

				}

				// Get tooltip for menu items from enclosing module
				var menuEditTip = enclosingModuleDiv.data('jmenuedittip').replace('%s', itemids[1]);

				var content = $('<div><a class="btn jfedit-menu" href="#" target="_blank"><span class="icon-edit"></span></a></div>');
				content.children('a.jfedit-menu').prop('href', menuitemEditUrl).prop('title', menuEditTip);

				if (activePopover) {
					$(activePopover).popover('hide');
				}
				$(this).popover({html:true, content:content.html(), container:'body', trigger:'manual', animation:false, placement: 'bottom'}).popover('show');
				activePopover = this;

				$('body>div.popover')
					.on({
					mouseenter: function() {
						if (activePopover) {
							$(activePopover).clearQueue();
						}
					},
					mouseleave: function() {
						if (activePopover) {
							$(activePopover).popover('hide');
						}
					}
				})
				.find('a.jfedit-menu').tooltip({"container": false, html: true, placement: 'bottom'});
			},
			mouseleave: function() {
				$(this).delay(1500).queue(function(next) { $(this).popover('hide'); next() });
			}
		});
	});
})(jQuery);
system/js/calendar-uncompressed.js000064400000140026152177723720013340 0ustar00/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
 * -----------------------------------------------------------
 *
 * The DHTML Calendar, version 1.0 "It is happening again"
 *
 * Details and latest version at:
 * www.dynarch.com/projects/calendar
 *
 * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 */

/** The Calendar object constructor. */
Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
	// member variables
	this.activeDiv = null;
	this.currentDateEl = null;
	this.getDateStatus = null;
	this.getDateToolTip = null;
	this.getDateText = null;
	this.timeout = null;
	this.onSelected = onSelected || null;
	this.onClose = onClose || null;
	this.dragging = false;
	this.hidden = false;
	this.minYear = 1970;
	this.maxYear = 2050;
	this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
	this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
	this.isPopup = true;
	this.weekNumbers = true;
	this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
	this.showsOtherMonths = false;
	this.dateStr = dateStr;
	this.ar_days = null;
	this.showsTime = false;
	this.time24 = true;
	this.yearStep = 2;
	this.hiliteToday = true;
	this.multiple = null;
	// HTML elements
	this.table = null;
	this.element = null;
	this.tbody = null;
	this.firstdayname = null;
	// Combo boxes
	this.monthsCombo = null;
	this.yearsCombo = null;
	this.hilitedMonth = null;
	this.activeMonth = null;
	this.hilitedYear = null;
	this.activeYear = null;
	// Information
	this.dateClicked = false;

	// one-time initializations
	if (typeof Calendar._SDN == "undefined") {
		// table of short day names
		if (typeof Calendar._SDN_len == "undefined")
			Calendar._SDN_len = 3;
		var ar = new Array();
		for (var i = 8; i > 0;) {
			ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
		}
		Calendar._SDN = ar;
		// table of short month names
		if (typeof Calendar._SMN_len == "undefined")
			Calendar._SMN_len = 3;
		ar = new Array();
		for (var i = 12; i > 0;) {
			ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
		}
		Calendar._SMN = ar;
	}
};

// ** constants

/// "static", needed for event handlers.
Calendar._C = null;

/// detect a special case of "web browser"
Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
		   !/opera/i.test(navigator.userAgent) );

Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );

/// detect Opera browser
Calendar.is_opera = /opera/i.test(navigator.userAgent);

/// detect KHTML-based browsers
Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);

// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
//        library, at some point.

Calendar.getAbsolutePos = function(el) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = this.getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

Calendar.isRelated = function (el, evt) {
	var related = evt.relatedTarget;
	if (!related) {
		var type = evt.type;
		if (type == "mouseover") {
			related = evt.fromElement;
		} else if (type == "mouseout") {
			related = evt.toElement;
		}
	}
	while (related) {
		if (related == el) {
			return true;
		}
		related = related.parentNode;
	}
	return false;
};

Calendar.removeClass = function(el, className) {
	if (!(el && el.className)) {
		return;
	}
	var cls = el.className.split(" ");
	var ar = new Array();
	for (var i = cls.length; i > 0;) {
		if (cls[--i] != className) {
			ar[ar.length] = cls[i];
		}
	}
	el.className = ar.join(" ");
};

Calendar.addClass = function(el, className) {
	Calendar.removeClass(el, className);
	el.className += " " + className;
};

// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately.
Calendar.getElement = function(ev) {
	var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
	while (f.nodeType != 1 || /^div$/i.test(f.tagName))
		f = f.parentNode;
	return f;
};

Calendar.getTargetElement = function(ev) {
	var f = Calendar.is_ie ? window.event.srcElement : ev.target;
	while (f.nodeType != 1)
		f = f.parentNode;
	return f;
};

Calendar.stopEvent = function(ev) {
	ev || (ev = window.event);
	if (Calendar.is_ie) {
		ev.cancelBubble = true;
		ev.returnValue = false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
	return false;
};

Calendar.addEvent = function(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
};

Calendar.removeEvent = function(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
};

Calendar.createElement = function(type, parent) {
	var el = null;
	if (document.createElementNS) {
		// use the XHTML namespace; IE won't normally get here unless
		// _they_ "fix" the DOM2 implementation.
		el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
	} else {
		el = document.createElement(type);
	}
	if (typeof parent != "undefined") {
		parent.appendChild(el);
	}
	return el;
};

// END: UTILITY FUNCTIONS

// BEGIN: CALENDAR STATIC FUNCTIONS

/** Internal -- adds a set of events to make some element behave like a button. */
Calendar._add_evs = function(el) {
	with (Calendar) {
		addEvent(el, "mouseover", dayMouseOver);
		addEvent(el, "mousedown", dayMouseDown);
		addEvent(el, "mouseout", dayMouseOut);
		if (is_ie) {
			addEvent(el, "dblclick", dayMouseDblClick);
			el.setAttribute("unselectable", true);
		}
	}
};

Calendar.findMonth = function(el) {
	if (typeof el.month != "undefined") {
		return el;
	} else if (typeof el.parentNode.month != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.findYear = function(el) {
	if (typeof el.year != "undefined") {
		return el;
	} else if (typeof el.parentNode.year != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.showMonthsCombo = function () {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var mc = cal.monthsCombo;
	if (cal.hilitedMonth) {
		Calendar.removeClass(cal.hilitedMonth, "hilite");
	}
	if (cal.activeMonth) {
		Calendar.removeClass(cal.activeMonth, "active");
	}
	var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
	Calendar.addClass(mon, "active");
	cal.activeMonth = mon;
	var s = mc.style;
	s.display = "block";
	if (cd.navtype < 0)
		s.left = cd.offsetLeft + "px";
	else {
		var mcw = mc.offsetWidth;
		if (typeof mcw == "undefined")
			// Konqueror brain-dead techniques
			mcw = 50;
		s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
	}
	s.top = (cd.offsetTop + cd.offsetHeight) + "px";
};

Calendar.showYearsCombo = function (fwd) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var yc = cal.yearsCombo;
	if (cal.hilitedYear) {
		Calendar.removeClass(cal.hilitedYear, "hilite");
	}
	if (cal.activeYear) {
		Calendar.removeClass(cal.activeYear, "active");
	}
	cal.activeYear = null;
	var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
	var yr = yc.firstChild;
	var show = false;
	for (var i = 12; i > 0; --i) {
		if (Y >= cal.minYear && Y <= cal.maxYear) {
			yr.innerHTML = Y;
			yr.year = Y;
			yr.style.display = "block";
			show = true;
		} else {
			yr.style.display = "none";
		}
		yr = yr.nextSibling;
		Y += fwd ? cal.yearStep : -cal.yearStep;
	}
	if (show) {
		var s = yc.style;
		s.display = "block";
		if (cd.navtype < 0)
			s.left = cd.offsetLeft + "px";
		else {
			var ycw = yc.offsetWidth;
			if (typeof ycw == "undefined")
				// Konqueror brain-dead techniques
				ycw = 50;
			s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
		}
		s.top = (cd.offsetTop + cd.offsetHeight) + "px";
	}
};

// event handlers

Calendar.tableMouseUp = function(ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	if (cal.timeout) {
		clearTimeout(cal.timeout);
	}
	var el = cal.activeDiv;
	if (!el) {
		return false;
	}
	var target = Calendar.getTargetElement(ev);
	ev || (ev = window.event);
	Calendar.removeClass(el, "active");
	if (target == el || target.parentNode == el) {
		Calendar.cellClick(el, ev);
	}
	var mon = Calendar.findMonth(target);
	var date = null;
	if (mon) {
		date = new Date(cal.date);
		if (mon.month != date.getMonth()) {
			date.setMonth(mon.month);
			cal.setDate(date);
			cal.dateClicked = false;
			cal.callHandler();
		}
	} else {
		var year = Calendar.findYear(target);
		if (year) {
			date = new Date(cal.date);
			if (year.year != date.getFullYear()) {
				date.setFullYear(year.year);
				cal.setDate(date);
				cal.dateClicked = false;
				cal.callHandler();
			}
		}
	}
	with (Calendar) {
		removeEvent(document, "mouseup", tableMouseUp);
		removeEvent(document, "mouseover", tableMouseOver);
		removeEvent(document, "mousemove", tableMouseOver);
		cal._hideCombos();
		_C = null;
		return stopEvent(ev);
	}
};

Calendar.tableMouseOver = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return;
	}
	var el = cal.activeDiv;
	var target = Calendar.getTargetElement(ev);
	if (target == el || target.parentNode == el) {
		Calendar.addClass(el, "hilite active");
		Calendar.addClass(el.parentNode, "rowhilite");
	} else {
		if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
			Calendar.removeClass(el, "active");
		Calendar.removeClass(el, "hilite");
		Calendar.removeClass(el.parentNode, "rowhilite");
	}
	ev || (ev = window.event);
	if (el.navtype == 50 && target != el) {
		var pos = Calendar.getAbsolutePos(el);
		var w = el.offsetWidth;
		var x = ev.clientX;
		var dx;
		var decrease = true;
		if (x > pos.x + w) {
			dx = x - pos.x - w;
			decrease = false;
		} else
			dx = pos.x - x;

		if (dx < 0) dx = 0;
		var range = el._range;
		var current = el._current;
		var count = Math.floor(dx / 10) % range.length;
		for (var i = range.length; --i >= 0;)
			if (range[i] == current)
				break;
		while (count-- > 0)
			if (decrease) {
				if (--i < 0)
					i = range.length - 1;
			} else if ( ++i >= range.length )
				i = 0;
		var newval = range[i];
		el.innerHTML = newval;

		cal.onUpdateTime();
	}
	var mon = Calendar.findMonth(target);
	if (mon) {
		if (mon.month != cal.date.getMonth()) {
			if (cal.hilitedMonth) {
				Calendar.removeClass(cal.hilitedMonth, "hilite");
			}
			Calendar.addClass(mon, "hilite");
			cal.hilitedMonth = mon;
		} else if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
	} else {
		if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
		var year = Calendar.findYear(target);
		if (year) {
			if (year.year != cal.date.getFullYear()) {
				if (cal.hilitedYear) {
					Calendar.removeClass(cal.hilitedYear, "hilite");
				}
				Calendar.addClass(year, "hilite");
				cal.hilitedYear = year;
			} else if (cal.hilitedYear) {
				Calendar.removeClass(cal.hilitedYear, "hilite");
			}
		} else if (cal.hilitedYear) {
			Calendar.removeClass(cal.hilitedYear, "hilite");
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.tableMouseDown = function (ev) {
	if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
		return Calendar.stopEvent(ev);
	}
};

Calendar.calDragIt = function (ev) {
	var cal = Calendar._C;
	if (!(cal && cal.dragging)) {
		return false;
	}
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posX = ev.pageX;
		posY = ev.pageY;
	}
	cal.hideShowCovered();
	var st = cal.element.style;
	st.left = (posX - cal.xOffs) + "px";
	st.top = (posY - cal.yOffs) + "px";
	return Calendar.stopEvent(ev);
};

Calendar.calDragEnd = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	cal.dragging = false;
	with (Calendar) {
		removeEvent(document, "mousemove", calDragIt);
		removeEvent(document, "mouseup", calDragEnd);
		tableMouseUp(ev);
	}
	cal.hideShowCovered();
};

Calendar.dayMouseDown = function(ev) {
	var el = Calendar.getElement(ev);
	if (el.disabled) {
		return false;
	}
	var cal = el.calendar;
	cal.activeDiv = el;
	Calendar._C = cal;
	if (el.navtype != 300) with (Calendar) {
		if (el.navtype == 50) {
			el._current = el.innerHTML;
			addEvent(document, "mousemove", tableMouseOver);
		} else
			addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
		addClass(el, "hilite active");
		addEvent(document, "mouseup", tableMouseUp);
	} else if (cal.isPopup) {
		cal._dragStart(ev);
	}
	if (el.navtype == -1 || el.navtype == 1) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
	} else if (el.navtype == -2 || el.navtype == 2) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
	} else {
		cal.timeout = null;
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseDblClick = function(ev) {
	Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
	if (Calendar.is_ie) {
		document.selection.empty();
	}
};

Calendar.dayMouseOver = function(ev) {
	var el = Calendar.getElement(ev);
	if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
		return false;
	}
	if (el.ttip) {
		if (el.ttip.substr(0, 1) == "_") {
			el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
		}
		el.calendar.tooltips.innerHTML = el.ttip;
	}
	if (el.navtype != 300) {
		Calendar.addClass(el, "hilite");
		if (el.caldate) {
			Calendar.addClass(el.parentNode, "rowhilite");
			var cal = el.calendar;
			if (cal && cal.getDateToolTip) {
				var d = el.caldate;
				window.status = d;
				el.title = cal.getDateToolTip(d, d.getFullYear(), d.getMonth(), d.getDate());
			}
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseOut = function(ev) {
	with (Calendar) {
		var el = getElement(ev);
		if (isRelated(el, ev) || _C || el.disabled)
			return false;
		removeClass(el, "hilite");
		if (el.caldate)
			removeClass(el.parentNode, "rowhilite");
		if (el.calendar)
			el.calendar.tooltips.innerHTML = _TT["SEL_DATE"];
		// return stopEvent(ev);
	}
};

/**
 *  A generic "click" handler :) handles all types of buttons defined in this
 *  calendar.
 */
Calendar.cellClick = function(el, ev) {
	var cal = el.calendar;
	var closing = false;
	var newdate = false;
	var date = null;
	if (typeof el.navtype == "undefined") {
		if (cal.currentDateEl) {
			Calendar.removeClass(cal.currentDateEl, "selected");
			Calendar.addClass(el, "selected");
			closing = (cal.currentDateEl == el);
			if (!closing) {
				cal.currentDateEl = el;
			}
		}
		cal.date.setDateOnly(el.caldate);
		date = cal.date;
		var other_month = !(cal.dateClicked = !el.otherMonth);
		if (!other_month && !cal.currentDateEl && cal.multiple)
			cal._toggleMultipleDate(new Date(date));
		else
			newdate = !el.disabled;
		// a date was clicked
		if (other_month)
			cal._init(cal.firstDayOfWeek, date);
	} else {
		if (el.navtype == 200) {
			Calendar.removeClass(el, "hilite");
			cal.callCloseHandler();
			return;
		}
		date = new Date(cal.date);
		if (el.navtype == 0)
			date.setDateOnly(new Date()); // TODAY
		// unless "today" was clicked, we assume no date was clicked so
		// the selected handler will know not to close the calenar when
		// in single-click mode.
		// cal.dateClicked = (el.navtype == 0);
		cal.dateClicked = false;
		var year = date.getFullYear();
		var mon = date.getMonth();
		function setMonth(m) {
			var day = date.getDate();
			var max = date.getMonthDays(m);
			if (day > max) {
				date.setDate(max);
			}
			date.setMonth(m);
		};
		switch (el.navtype) {
		    case 400:
			Calendar.removeClass(el, "hilite");
			var text = Calendar._TT["ABOUT"];
			if (typeof text != "undefined") {
				text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
			} else {
				// FIXME: this should be removed as soon as lang files get updated!
				text = "Help and about box text is not translated into this language.\n" +
					"If you know this language and you feel generous please update\n" +
					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +
					"Thank you!\n" +
					"http://dynarch.com/mishoo/calendar.epl\n";
			}
			alert(text);
			return;
		    case -2:
			if (year > cal.minYear) {
				date.setFullYear(year - 1);
			}
			break;
		    case -1:
			if (mon > 0) {
				setMonth(mon - 1);
			} else if (year-- > cal.minYear) {
				date.setFullYear(year);
				setMonth(11);
			}
			break;
		    case 1:
			if (mon < 11) {
				setMonth(mon + 1);
			} else if (year < cal.maxYear) {
				date.setFullYear(year + 1);
				setMonth(0);
			}
			break;
		    case 2:
			if (year < cal.maxYear) {
				date.setFullYear(year + 1);
			}
			break;
		    case 100:
			cal.setFirstDayOfWeek(el.fdow);
			return;
		    case 50:
			var range = el._range;
			var current = el.innerHTML;
			for (var i = range.length; --i >= 0;)
				if (range[i] == current)
					break;
			if (ev && ev.shiftKey) {
				if (--i < 0)
					i = range.length - 1;
			} else if ( ++i >= range.length )
				i = 0;
			var newval = range[i];
			el.innerHTML = newval;
			cal.onUpdateTime();
			return;
		    case 0:
			// TODAY will bring us here
			if ((typeof cal.getDateStatus == "function") &&
			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
				return false;
			}
			break;
		}
		if (!date.equalsTo(cal.date)) {
			cal.setDate(date);
			newdate = true;
		} else if (el.navtype == 0)
			newdate = closing = true;
	}
	if (newdate) {
		ev && cal.callHandler();
	}
	if (closing) {
		Calendar.removeClass(el, "hilite");
		ev && cal.callCloseHandler();
	}
};

// END: CALENDAR STATIC FUNCTIONS

// BEGIN: CALENDAR OBJECT FUNCTIONS

/**
 *  This function creates the calendar inside the given parent.  If _par is
 *  null than it creates a popup calendar inside the BODY element.  If _par is
 *  an element, be it BODY, then it creates a non-popup calendar (still
 *  hidden).  Some properties need to be set before calling this function.
 */
Calendar.prototype.create = function (_par) {
	var parent = null;
	if (! _par) {
		// default parent is the document body, in which case we create
		// a popup calendar.
		parent = document.getElementsByTagName("body")[0];
		this.isPopup = true;
	} else {
		parent = _par;
		this.isPopup = false;
	}
	this.date = this.dateStr ? new Date(this.dateStr) : new Date();

	var table = Calendar.createElement("table");
	this.table = table;
	table.cellSpacing = 0;
	table.cellPadding = 0;
	table.calendar = this;
	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);

	var div = Calendar.createElement("div");
	this.element = div;
	div.className = "calendar";
	if (this.isPopup) {
		div.style.position = "absolute";
		div.style.display = "none";
	}
	div.appendChild(table);

	var thead = Calendar.createElement("thead", table);
	var cell = null;
	var row = null;

	var cal = this;
	var hh = function (text, cs, navtype) {
		cell = Calendar.createElement("td", row);
		cell.colSpan = cs;
		cell.className = "button";
		if (navtype != 0 && Math.abs(navtype) <= 2)
			cell.className += " nav";
		Calendar._add_evs(cell);
		cell.calendar = cal;
		cell.navtype = navtype;
		cell.innerHTML = "<div unselectable='on'>" + text + "</div>";
		return cell;
	};

	row = Calendar.createElement("tr", thead);
	var title_length = 6;
	(this.isPopup) && --title_length;
	(this.weekNumbers) && ++title_length;

	hh("?", 1, 400).ttip = Calendar._TT["INFO"];
	this.title = hh("", title_length, 300);
	this.title.className = "title";
	if (this.isPopup) {
		this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
		this.title.style.cursor = "move";
		hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
	}

	row = Calendar.createElement("tr", thead);
	row.className = "headrow";

	this._nav_py = hh("&#x00ab;", 1, -2);
	this._nav_py.ttip = Calendar._TT["PREV_YEAR"];

	this._nav_pm = hh("&#x2039;", 1, -1);
	this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];

	this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
	this._nav_now.ttip = Calendar._TT["GO_TODAY"];

	this._nav_nm = hh("&#x203a;", 1, 1);
	this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];

	this._nav_ny = hh("&#x00bb;", 1, 2);
	this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];

	// day names
	row = Calendar.createElement("tr", thead);
	row.className = "daynames";
	if (this.weekNumbers) {
		cell = Calendar.createElement("td", row);
		cell.className = "name wn";
		cell.innerHTML = Calendar._TT["WK"];
	}
	for (var i = 7; i > 0; --i) {
		cell = Calendar.createElement("td", row);
		if (!i) {
			cell.navtype = 100;
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}
	this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
	this._displayWeekdays();

	var tbody = Calendar.createElement("tbody", table);
	this.tbody = tbody;

	for (i = 6; i > 0; --i) {
		row = Calendar.createElement("tr", tbody);
		if (this.weekNumbers) {
			cell = Calendar.createElement("td", row);
		}
		for (var j = 7; j > 0; --j) {
			cell = Calendar.createElement("td", row);
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}

	if (this.showsTime) {
		row = Calendar.createElement("tr", tbody);
		row.className = "time";

		cell = Calendar.createElement("td", row);
		cell.className = "time";
		cell.colSpan = 2;
		cell.innerHTML = Calendar._TT["TIME"] || "&#160;";

		cell = Calendar.createElement("td", row);
		cell.className = "time";
		cell.colSpan = this.weekNumbers ? 4 : 3;

		(function(){
			function makeTimePart(className, init, range_start, range_end) {
				var part = Calendar.createElement("span", cell);
				part.className = className;
				part.innerHTML = init;
				part.calendar = cal;
				part.ttip = Calendar._TT["TIME_PART"];
				part.navtype = 50;
				part._range = [];
				if (typeof range_start != "number")
					part._range = range_start;
				else {
					for (var i = range_start; i <= range_end; ++i) {
						var txt;
						if (i < 10 && range_end >= 10) txt = '0' + i;
						else txt = '' + i;
						part._range[part._range.length] = txt;
					}
				}
				Calendar._add_evs(part);
				return part;
			};
			var hrs = cal.date.getHours();
			var mins = cal.date.getMinutes();
			var t12 = !cal.time24;
			var pm = (hrs > 12);
			if (t12 && pm) hrs -= 12;
			var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
			var span = Calendar.createElement("span", cell);
			span.innerHTML = ":";
			span.className = "colon";
			var M = makeTimePart("minute", mins, 0, 59);
			var AP = null;
			cell = Calendar.createElement("td", row);
			cell.className = "time";
			cell.colSpan = 2;
			if (t12)
				AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
			else
				cell.innerHTML = "&#160;";

			cal.onSetTime = function() {
				var pm, hrs = this.date.getHours(),
					mins = this.date.getMinutes();
				if (t12) {
					pm = (hrs >= 12);
					if (pm) hrs -= 12;
					if (hrs == 0) hrs = 12;
					AP.innerHTML = pm ? "pm" : "am";
				}
				H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;
				M.innerHTML = (mins < 10) ? ("0" + mins) : mins;
			};

			cal.onUpdateTime = function() {
				var date = this.date;
				var h = parseInt(H.innerHTML, 10);
				if (t12) {
					if (/pm/i.test(AP.innerHTML) && h < 12)
						h += 12;
					else if (/am/i.test(AP.innerHTML) && h == 12)
						h = 0;
				}
				var d = date.getDate();
				var m = date.getMonth();
				var y = date.getFullYear();
				date.setHours(h);
				date.setMinutes(parseInt(M.innerHTML, 10));
				date.setFullYear(y);
				date.setMonth(m);
				date.setDate(d);
				this.dateClicked = false;
				this.callHandler();
			};
		})();
	} else {
		this.onSetTime = this.onUpdateTime = function() {};
	}

	var tfoot = Calendar.createElement("tfoot", table);

	row = Calendar.createElement("tr", tfoot);
	row.className = "footrow";

	cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
	cell.className = "ttip";
	if (this.isPopup) {
		cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
		cell.style.cursor = "move";
	}
	this.tooltips = cell;

	div = Calendar.createElement("div", this.element);
	this.monthsCombo = div;
	div.className = "combo";
	for (i = 0; i < Calendar._MN.length; ++i) {
		var mn = Calendar.createElement("div");
		mn.className = Calendar.is_ie ? "label-IEfix" : "label";
		mn.month = i;
		mn.innerHTML = Calendar._SMN[i];
		div.appendChild(mn);
	}

	div = Calendar.createElement("div", this.element);
	this.yearsCombo = div;
	div.className = "combo";
	for (i = 12; i > 0; --i) {
		var yr = Calendar.createElement("div");
		yr.className = Calendar.is_ie ? "label-IEfix" : "label";
		div.appendChild(yr);
	}

	this._init(this.firstDayOfWeek, this.date);
	parent.appendChild(this.element);
};

/** keyboard navigation, only for popup calendars */
Calendar._keyEvent = function(ev) {
	var cal = window._dynarch_popupCalendar;
	if (!cal || cal.multiple)
		return false;
	(Calendar.is_ie) && (ev = window.event);
	var act = (Calendar.is_ie || ev.type == "keypress"),
		K = ev.keyCode;
	if (ev.ctrlKey) {
		switch (K) {
		    case 37: // KEY left
			act && Calendar.cellClick(cal._nav_pm);
			break;
		    case 38: // KEY up
			act && Calendar.cellClick(cal._nav_py);
			break;
		    case 39: // KEY right
			act && Calendar.cellClick(cal._nav_nm);
			break;
		    case 40: // KEY down
			act && Calendar.cellClick(cal._nav_ny);
			break;
		    default:
			return false;
		}
	} else switch (K) {
	    case 32: // KEY space (now)
		Calendar.cellClick(cal._nav_now);
		break;
	    case 27: // KEY esc
		act && cal.callCloseHandler();
		break;
	    case 37: // KEY left
	    case 38: // KEY up
	    case 39: // KEY right
	    case 40: // KEY down
		if (act) {
			var prev, x, y, ne, el, step;
			prev = K == 37 || K == 38;
			step = (K == 37 || K == 39) ? 1 : 7;
			function setVars() {
				el = cal.currentDateEl;
				var p = el.pos;
				x = p & 15;
				y = p >> 4;
				ne = cal.ar_days[y][x];
			};setVars();
			function prevMonth() {
				var date = new Date(cal.date);
				date.setDate(date.getDate() - step);
				cal.setDate(date);
			};
			function nextMonth() {
				var date = new Date(cal.date);
				date.setDate(date.getDate() + step);
				cal.setDate(date);
			};
			while (1) {
				switch (K) {
				    case 37: // KEY left
					if (--x >= 0)
						ne = cal.ar_days[y][x];
					else {
						x = 6;
						K = 38;
						continue;
					}
					break;
				    case 38: // KEY up
					if (--y >= 0)
						ne = cal.ar_days[y][x];
					else {
						prevMonth();
						setVars();
					}
					break;
				    case 39: // KEY right
					if (++x < 7)
						ne = cal.ar_days[y][x];
					else {
						x = 0;
						K = 40;
						continue;
					}
					break;
				    case 40: // KEY down
					if (++y < cal.ar_days.length)
						ne = cal.ar_days[y][x];
					else {
						nextMonth();
						setVars();
					}
					break;
				}
				break;
			}
			if (ne) {
				if (!ne.disabled)
					Calendar.cellClick(ne);
				else if (prev)
					prevMonth();
				else
					nextMonth();
			}
		}
		break;
	    case 13: // KEY enter
		if (act)
			Calendar.cellClick(cal.currentDateEl, ev);
		break;
	    default:
		return false;
	}
	return Calendar.stopEvent(ev);
};

/**
 *  (RE)Initializes the calendar to the given date and firstDayOfWeek
 */
Calendar.prototype._init = function (firstDayOfWeek, date) {
	var today = new Date(),
		TY = today.getFullYear(),
		TM = today.getMonth(),
		TD = today.getDate();
	this.table.style.visibility = "hidden";
	var year = date.getFullYear();
	if (year < this.minYear) {
		year = this.minYear;
		date.setFullYear(year);
	} else if (year > this.maxYear) {
		year = this.maxYear;
		date.setFullYear(year);
	}
	this.firstDayOfWeek = firstDayOfWeek;
	this.date = new Date(date);
	var month = date.getMonth();
	var mday = date.getDate();
	var no_days = date.getMonthDays();

	// calendar voodoo for computing the first day that would actually be
	// displayed in the calendar, even if it's from the previous month.
	// WARNING: this is magic. ;-)
	date.setDate(1);
	var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
	if (day1 < 0)
		day1 += 7;
	date.setDate(-day1);
	date.setDate(date.getDate() + 1);

	var row = this.tbody.firstChild;
	var MN = Calendar._SMN[month];
	var ar_days = this.ar_days = new Array();
	var weekend = Calendar._TT["WEEKEND"];
	var dates = this.multiple ? (this.datesCells = {}) : null;
	for (var i = 0; i < 6; ++i, row = row.nextSibling) {
		var cell = row.firstChild;
		if (this.weekNumbers) {
			cell.className = "day wn";
			cell.innerHTML = date.getWeekNumber();
			cell = cell.nextSibling;
		}
		row.className = "daysrow";
		var hasdays = false, iday, dpos = ar_days[i] = [];
		for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {
			iday = date.getDate();
			var wday = date.getDay();
			cell.className = "day";
			cell.pos = i << 4 | j;
			dpos[j] = cell;
			var current_month = (date.getMonth() == month);
			if (!current_month) {
				if (this.showsOtherMonths) {
					cell.className += " othermonth";
					cell.otherMonth = true;
				} else {
					cell.className = "emptycell";
					cell.innerHTML = "&#160;";
					cell.disabled = true;
					continue;
				}
			} else {
				cell.otherMonth = false;
				hasdays = true;
			}
			cell.disabled = false;
			cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;
			if (dates)
				dates[date.print("%Y%m%d")] = cell;
			if (this.getDateStatus) {
				var status = this.getDateStatus(date, year, month, iday);
				if (status === true) {
					cell.className += " disabled";
					cell.disabled = true;
				} else {
					if (/disabled/i.test(status))
						cell.disabled = true;
					cell.className += " " + status;
				}
			}
			if (!cell.disabled) {
				cell.caldate = new Date(date);
				cell.ttip = "_";
				if (!this.multiple && current_month
				    && iday == mday && this.hiliteToday) {
					cell.className += " selected";
					this.currentDateEl = cell;
				}
				if (date.getFullYear() == TY &&
				    date.getMonth() == TM &&
				    iday == TD) {
					cell.className += " today";
					cell.ttip += Calendar._TT["PART_TODAY"];
				}
				if (weekend.indexOf(wday.toString()) != -1)
					cell.className += cell.otherMonth ? " oweekend" : " weekend";
			}
		}
		if (!(hasdays || this.showsOtherMonths))
			row.className = "emptyrow";
	}
	this.title.innerHTML = Calendar._MN[month] + ", " + year;
	this.onSetTime();
	this.table.style.visibility = "visible";
	this._initMultipleDates();
	// PROFILE
	// this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
};

Calendar.prototype._initMultipleDates = function() {
	if (this.multiple) {
		for (var i in this.multiple) {
			var cell = this.datesCells[i];
			var d = this.multiple[i];
			if (!d)
				continue;
			if (cell)
				cell.className += " selected";
		}
	}
};

Calendar.prototype._toggleMultipleDate = function(date) {
	if (this.multiple) {
		var ds = date.print("%Y%m%d");
		var cell = this.datesCells[ds];
		if (cell) {
			var d = this.multiple[ds];
			if (!d) {
				Calendar.addClass(cell, "selected");
				this.multiple[ds] = date;
			} else {
				Calendar.removeClass(cell, "selected");
				delete this.multiple[ds];
			}
		}
	}
};

Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
	this.getDateToolTip = unaryFunction;
};

/**
 *  Calls _init function above for going to a certain date (but only if the
 *  date is different than the currently selected one).
 */
Calendar.prototype.setDate = function (date) {
	if (!date.equalsTo(this.date)) {
		this._init(this.firstDayOfWeek, date);
	}
};

/**
 *  Refreshes the calendar.  Useful if the "disabledHandler" function is
 *  dynamic, meaning that the list of disabled date can change at runtime.
 *  Just * call this function if you think that the list of disabled dates
 *  should * change.
 */
Calendar.prototype.refresh = function () {
	this._init(this.firstDayOfWeek, this.date);
};

/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
	this._init(firstDayOfWeek, this.date);
	this._displayWeekdays();
};

/**
 *  Allows customization of what dates are enabled.  The "unaryFunction"
 *  parameter must be a function object that receives the date (as a JS Date
 *  object) and returns a boolean value.  If the returned value is true then
 *  the passed date will be marked as disabled.
 */
Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
	this.getDateStatus = unaryFunction;
};

/** Customization of allowed year range for the calendar. */
Calendar.prototype.setRange = function (a, z) {
	this.minYear = a;
	this.maxYear = z;
};

/** Calls the first user handler (selectedHandler). */
Calendar.prototype.callHandler = function () {
	if (this.onSelected) {
		this.onSelected(this, this.date.print(this.dateFormat));
	}
};

/** Calls the second user handler (closeHandler). */
Calendar.prototype.callCloseHandler = function () {
	if (this.onClose) {
		this.onClose(this);
	}
	this.hideShowCovered();
};

/** Removes the calendar object from the DOM tree and destroys it. */
Calendar.prototype.destroy = function () {
	var el = this.element.parentNode;
	el.removeChild(this.element);
	Calendar._C = null;
	window._dynarch_popupCalendar = null;
};

/**
 *  Moves the calendar element to a different section in the DOM tree (changes
 *  its parent).
 */
Calendar.prototype.reparent = function (new_parent) {
	var el = this.element;
	el.parentNode.removeChild(el);
	new_parent.appendChild(el);
};

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
Calendar._checkCalendar = function(ev) {
	var calendar = window._dynarch_popupCalendar;
	if (!calendar) {
		return false;
	}
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null && el != calendar.element; el = el.parentNode);
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		window._dynarch_popupCalendar.callCloseHandler();
		return Calendar.stopEvent(ev);
	}
};

/** Shows the calendar. */
Calendar.prototype.show = function () {
	var rows = this.table.getElementsByTagName("tr");
	for (var i = rows.length; i > 0;) {
		var row = rows[--i];
		Calendar.removeClass(row, "rowhilite");
		var cells = row.getElementsByTagName("td");
		for (var j = cells.length; j > 0;) {
			var cell = cells[--j];
			Calendar.removeClass(cell, "hilite");
			Calendar.removeClass(cell, "active");
		}
	}
	this.element.style.display = "block";
	this.hidden = false;
	if (this.isPopup) {
		window._dynarch_popupCalendar = this;
		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.hideShowCovered();
};

/**
 *  Hides the calendar.  Also removes any "hilite" from the class of any TD
 *  element.
 */
Calendar.prototype.hide = function () {
	if (this.isPopup) {
		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.element.style.display = "none";
	this.hidden = true;
	this.hideShowCovered();
};

/**
 *  Shows the calendar at a given absolute position (beware that, depending on
 *  the calendar element style -- position property -- this might be relative
 *  to the parent's containing rectangle).
 */
Calendar.prototype.showAt = function (x, y) {
	var s = this.element.style;
	s.left = x + "px";
	s.top = y + "px";
	this.show();
};

/** Shows the calendar near a given element. */
Calendar.prototype.showAtElement = function (el, opts) {
	var self = this;
	var p = Calendar.getAbsolutePos(el);
	if (!opts || typeof opts != "string") {
		this.showAt(p.x, p.y + el.offsetHeight);
		return true;
	}
	function fixPosition(box) {
		if (box.x < 0)
			box.x = 0;
		if (box.y < 0)
			box.y = 0;
		var cp = document.createElement("div");
		var s = cp.style;
		s.position = "absolute";
		s.right = s.bottom = s.width = s.height = "0px";
		document.body.appendChild(cp);
		var br = Calendar.getAbsolutePos(cp);
		document.body.removeChild(cp);
		if (Calendar.is_ie) {
			br.y += document.body.scrollTop;
			br.x += document.body.scrollLeft;
			br.y += (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
			br.x += (document.documentElement && document.documentElement.scrollLeft) || document.body.scrollLeft;
		} else {
			br.y += window.scrollY;
			br.x += window.scrollX;
		}
		var tmp = box.x + box.width - br.x;
		if (tmp > 0) box.x -= tmp;
		tmp = box.y + box.height - br.y;
		if (tmp > 0) box.y -= tmp;
	};
	this.element.style.display = "block";
	Calendar.continuation_for_the_khtml_browser = function() {
		var w = self.element.offsetWidth;
		var h = self.element.offsetHeight;
		self.element.style.display = "none";
		var valign = opts.substr(0, 1);
		var halign = "l";
		if (opts.length > 1) {
			halign = opts.substr(1, 1);
		}
		// vertical alignment
		switch (valign) {
		    case "T": p.y -= h; break;
		    case "B": p.y += el.offsetHeight; break;
		    case "C": p.y += (el.offsetHeight - h) / 2; break;
		    case "t": p.y += el.offsetHeight - h; break;
		    case "b": break; // already there
		}
		// horizontal alignment
		switch (halign) {
		    case "L": p.x -= w; break;
		    case "R": p.x += el.offsetWidth; break;
		    case "C": p.x += (el.offsetWidth - w) / 2; break;
		    case "l": p.x += el.offsetWidth - w; break;
		    case "r": break; // already there
		}
		p.width = w;
		p.height = h + 40;
		self.monthsCombo.style.display = "none";
		fixPosition(p);
		self.showAt(p.x, p.y);
	};
	if (Calendar.is_khtml)
		setTimeout("Calendar.continuation_for_the_khtml_browser()", 10);
	else
		Calendar.continuation_for_the_khtml_browser();
};

/** Customizes the date format. */
Calendar.prototype.setDateFormat = function (str) {
	this.dateFormat = str;
};

/** Customizes the tooltip date format. */
Calendar.prototype.setTtDateFormat = function (str) {
	this.ttDateFormat = str;
};

/**
 *  Tries to identify the date represented in a string.  If successful it also
 *  calls this.setDate which moves the calendar to the given date.
 */
Calendar.prototype.parseDate = function(str, fmt) {
	if (!fmt)
		fmt = this.dateFormat;
	this.setDate(Date.parseDate(str, fmt));
};

Calendar.prototype.hideShowCovered = function () {
	if (!Calendar.is_ie && !Calendar.is_opera)
		return;
	function getVisib(obj){
		var value = obj.style.visibility;
		if (!value) {
			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
				if (!Calendar.is_khtml)
					value = document.defaultView.
						getComputedStyle(obj, "").getPropertyValue("visibility");
				else
					value = '';
			} else if (obj.currentStyle) { // IE
				value = obj.currentStyle.visibility;
			} else
				value = '';
		}
		return value;
	};

	var tags = new Array("applet", "iframe", "select");
	var el = this.element;

	var p = Calendar.getAbsolutePos(el);
	var EX1 = p.x;
	var EX2 = el.offsetWidth + EX1;
	var EY1 = p.y;
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			p = Calendar.getAbsolutePos(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				cc.style.visibility = cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				cc.style.visibility = "hidden";
			}
		}
	}
};

/** Internal function; it displays the bar with the names of the weekday. */
Calendar.prototype._displayWeekdays = function () {
	var fdow = this.firstDayOfWeek;
	var cell = this.firstdayname;
	var weekend = Calendar._TT["WEEKEND"];
	for (var i = 0; i < 7; ++i) {
		cell.className = "day name";
		var realday = (i + fdow) % 7;
		if (i) {
			cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
			cell.navtype = 100;
			cell.calendar = this;
			cell.fdow = realday;
			Calendar._add_evs(cell);
		}
		if (weekend.indexOf(realday.toString()) != -1) {
			Calendar.addClass(cell, "weekend");
		}
		cell.innerHTML = Calendar._SDN[(i + fdow) % 7];
		cell = cell.nextSibling;
	}
};

/** Internal function.  Hides all combo boxes that might be displayed. */
Calendar.prototype._hideCombos = function () {
	this.monthsCombo.style.display = "none";
	this.yearsCombo.style.display = "none";
};

/** Internal function.  Starts dragging the element. */
Calendar.prototype._dragStart = function (ev) {
	if (this.dragging) {
		return;
	}
	this.dragging = true;
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posY = ev.clientY + window.scrollY;
		posX = ev.clientX + window.scrollX;
	}
	var st = this.element.style;
	this.xOffs = posX - parseInt(st.left);
	this.yOffs = posY - parseInt(st.top);
	with (Calendar) {
		addEvent(document, "mousemove", calDragIt);
		addEvent(document, "mouseup", calDragEnd);
	}
};

// BEGIN: DATE OBJECT PATCHES

/** Adds the number of days array to the Date object. */
Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/** Constants used for time computations */
Date.SECOND = 1000 /* milliseconds */;
Date.MINUTE = 60 * Date.SECOND;
Date.HOUR   = 60 * Date.MINUTE;
Date.DAY    = 24 * Date.HOUR;
Date.WEEK   =  7 * Date.DAY;

Date.parseDate = function(str, fmt) {
	var today = new Date();
	var y = 0;
	var m = -1;
	var d = 0;
	var a = str.split(/\W+/);
	var b = fmt.match(/%./g);
	var i = 0, j = 0;
	var hr = 0;
	var min = 0;
	for (i = 0; i < a.length; ++i) {
		if (!a[i])
			continue;
		switch (b[i]) {
		    case "%d":
		    case "%e":
			d = parseInt(a[i], 10);
			break;

		    case "%m":
			m = parseInt(a[i], 10) - 1;
			break;

		    case "%Y":
		    case "%y":
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
			break;

		    case "%b":
		    case "%B":
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
			}
			break;

		    case "%H":
		    case "%I":
		    case "%k":
		    case "%l":
			hr = parseInt(a[i], 10);
			break;

		    case "%P":
		    case "%p":
			if (/pm/i.test(a[i]) && hr < 12)
				hr += 12;
			else if (/am/i.test(a[i]) && hr >= 12)
				hr -= 12;
			break;

		    case "%M":
			min = parseInt(a[i], 10);
			break;
		}
	}
	if (isNaN(y)) y = today.getFullYear();
	if (isNaN(m)) m = today.getMonth();
	if (isNaN(d)) d = today.getDate();
	if (isNaN(hr)) hr = today.getHours();
	if (isNaN(min)) min = today.getMinutes();
	if (y != 0 && m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	y = 0; m = -1; d = 0;
	for (i = 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) != -1) {
			var t = -1;
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
			}
			if (t != -1) {
				if (m != -1) {
					d = m+1;
				}
				m = t;
			}
		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
			m = a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y == 0) {
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
		} else if (d == 0) {
			d = a[i];
		}
	}
	if (y == 0)
		y = today.getFullYear();
	if (m != -1 && d != 0)
		return new Date(y, m, d, hr, min, 0);
	return today;
};

/** Returns the number of days in the current month */
Date.prototype.getMonthDays = function(month) {
	var year = this.getFullYear();
	if (typeof month == "undefined") {
		month = this.getMonth();
	}
	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
		return 29;
	} else {
		return Date._MD[month];
	}
};

/** Returns the number of day in the year. */
Date.prototype.getDayOfYear = function() {
	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
	var time = now - then;
	return Math.floor(time / Date.DAY);
};

/** Returns the number of the week in year, as defined in ISO 8601. */
Date.prototype.getWeekNumber = function() {
	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var DoW = d.getDay();
	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
	var ms = d.valueOf(); // GMT
	d.setMonth(0);
	d.setDate(4); // Thu in Week 1
	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
};

/** Checks date and time equality */
Date.prototype.equalsTo = function(date) {
	return ((this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() == date.getDate()) &&
		(this.getHours() == date.getHours()) &&
		(this.getMinutes() == date.getMinutes()));
};

/** Set only the year, month, date parts (keep existing time) */
Date.prototype.setDateOnly = function(date) {
	var tmp = new Date(date);
	this.setDate(1);
	this.setFullYear(tmp.getFullYear());
	this.setMonth(tmp.getMonth());
	this.setDate(tmp.getDate());
};

/** Prints the date in a string according to the given format. */
Date.prototype.print = function (str) {
	var m = this.getMonth();
	var d = this.getDate();
	var y = this.getFullYear();
	var wn = this.getWeekNumber();
	var w = this.getDay();
	var s = {};
	var hr = this.getHours();
	var pm = (hr >= 12);
	var ir = (pm) ? (hr - 12) : hr;
	var dy = this.getDayOfYear();
	if (ir == 0)
		ir = 12;
	var min = this.getMinutes();
	var sec = this.getSeconds();
	s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
	s["%A"] = Calendar._DN[w]; // full weekday name
	s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
	s["%B"] = Calendar._MN[m]; // full month name
	// FIXME: %c : preferred date and time representation for the current locale
	s["%C"] = 1 + Math.floor(y / 100); // the century number
	s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
	s["%e"] = d; // the day of the month (range 1 to 31)
	// FIXME: %D : american date style: %m/%d/%y
	// FIXME: %E, %F, %G, %g, %h (man strftime)
	s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
	s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
	s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
	s["%k"] = hr;		// hour, range 0 to 23 (24h format)
	s["%l"] = ir;		// hour, range 1 to 12 (12h format)
	s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
	s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
	s["%n"] = "\n";		// a newline character
	s["%p"] = pm ? "PM" : "AM";
	s["%P"] = pm ? "pm" : "am";
	// FIXME: %r : the time in am/pm notation %I:%M:%S %p
	// FIXME: %R : the time in 24-hour notation %H:%M
	s["%s"] = Math.floor(this.getTime() / 1000);
	s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
	s["%t"] = "\t";		// a tab character
	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
	s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
	s["%u"] = w + 1;	// the day of the week (range 1 to 7, 1 = MON)
	s["%w"] = w;		// the day of the week (range 0 to 6, 0 = SUN)
	// FIXME: %x : preferred date representation for the current locale without the time
	// FIXME: %X : preferred time representation for the current locale without the date
	s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
	s["%Y"] = y;		// year with the century
	s["%%"] = "%";		// a literal '%' character

	var re = /%./g;
	if (!Calendar.is_ie5 && !Calendar.is_khtml)
		return str.replace(re, function (par) { return s[par] || par; });

	var a = str.match(re);
	for (var i = 0; i < a.length; i++) {
		var tmp = s[a[i]];
		if (tmp) {
			re = new RegExp(a[i], 'g');
			str = str.replace(re, tmp);
		}
	}

	return str;
};

// END: DATE OBJECT PATCHES


// global object that remembers the calendar
window._dynarch_popupCalendar = null;
system/js/frontediting.js000064400000005276152177723720011565 0ustar00!function(t){t.fn.extend({jEditMakeAbsolute:function(e){return this.each(function(){var o,i=t(this);o=e?i.offset():i.position(),i.css({position:"absolute",marginLeft:0,marginTop:0,top:o.top,left:o.left,bottom:"auto",right:"auto"}),e&&i.detach().appendTo("body")})}}),t(document).ready(function(){var e=200,o=100,i=function(i,n){var d,a,l,r,s,p,u,m,c,h,f,v,j,b,g;return v=function(t){return u<t.top&&s<t.left&&p>t.left+e&&r>t.top+o},d=t(n),b=t.extend({},d.offset(),{width:n.offsetWidth,height:n.offsetHeight}),u=t(document).scrollTop(),s=t(document).scrollLeft(),p=s+t(window).width(),r=u+t(window).height(),m={top:b.top-o,left:b.left+b.width/2-e/2},c={top:b.top+b.height,left:b.left+b.width/2-e/2},h={top:b.top+b.height/2-o/2,left:b.left-e},f={top:b.top+b.height/2-o/2,left:b.left+b.width},a=v(m),l=v(c),j=v(h),g=v(f),a?"top":l?"bottom":j?"left":"right"};t(".jmoddiv").on({mouseenter:function(){var e=t(this).data("jmodediturl"),o=t(this).data("jmodtip"),n=t(this).data("target");t("body>.btn.jmodedit").clearQueue().tooltip("destroy").remove(),t(this).addClass("jmodinside").prepend('<a class="btn jmodedit" href="#" target="'+n+'"><span class="icon-edit"></span></a>').children(":first").attr("href",e).attr("title",o).tooltip({container:!1,html:!0,placement:i}).jEditMakeAbsolute(!0),t(".btn.jmodedit").on({mouseenter:function(){t(this).clearQueue()},mouseleave:function(){t(this).delay(500).queue(function(e){t(this).tooltip("destroy").remove(),e()})}})},mouseleave:function(){t("body>.btn.jmodedit").delay(500).queue(function(e){t(this).tooltip("destroy").remove(),e()})}});var n=null;t(".jmoddiv[data-jmenuedittip] .nav li,.jmoddiv[data-jmenuedittip].nav li,.jmoddiv[data-jmenuedittip] .nav .nav-child li,.jmoddiv[data-jmenuedittip].nav .nav-child li").on({mouseenter:function(){var e=/\bitem-(\d+)\b/.exec(t(this).attr("class"));if("string"==typeof e[1])var o=t(this).closest(".jmoddiv"),i=o.data("jmodediturl"),d=i.replace(/\/index.php\?option=com_config&controller=config.display.modules([^\d]+).+$/,"/administrator/index.php?option=com_menus&view=item&layout=edit$1"+e[1]);var a=o.data("jmenuedittip").replace("%s",e[1]),l=t('<div><a class="btn jfedit-menu" href="#" target="_blank"><span class="icon-edit"></span></a></div>');l.children("a.jfedit-menu").prop("href",d).prop("title",a),n&&t(n).popover("hide"),t(this).popover({html:!0,content:l.html(),container:"body",trigger:"manual",animation:!1,placement:"bottom"}).popover("show"),n=this,t("body>div.popover").on({mouseenter:function(){n&&t(n).clearQueue()},mouseleave:function(){n&&t(n).popover("hide")}}).find("a.jfedit-menu").tooltip({container:!1,html:!0,placement:"bottom"})},mouseleave:function(){t(this).delay(1500).queue(function(e){t(this).popover("hide"),e()})}})})}(jQuery);system/js/tabs-state.js000064400000005005152177723720011126 0ustar00jQuery(function($){if(typeof wgxpath.install==="function"){wgxpath.install()}$.urlParam=function(a){if(!new RegExp("=$").exec(a)){a=a+'='}var b=new RegExp("[\\?&]("+a+")([^&#]*)").exec(window.location.href);return b?b[1]:null};$.getXpath=function(c){if(typeof c=="string"){return document.evaluate(c,document,null,0,null)}if(!c||c.nodeType!=1){return""}if(c.id){return"//*[@id='"+c.id+"']"}var a=[];var d=a.filter.call(c.parentNode.children,function(x){return x.tagName==c.tagName});var b=[];return $.getXpath(c.parentNode)+"/"+c.tagName.toLowerCase()+(d.length>1?"["+(b.indexOf.call(d,c)+1)+"]":"")};$.findXpath=function(a,b){var c;var d=[];var e=document.evaluate(a,b||document,null,5,null);while(c=e.iterateNext()){d.push(c)}return $(d)};var m=function(){function remove_item(a,b){for(var i=0;i<a.length;i++){if(a[i].indexOf(b)>-1){a.splice(i,1)}}return a}function getStorageKey(){return window.location.href.toString().split(window.location.host)[1].replace(/&return=[a-zA-Z0-9%]+/,"").split('#')[0]}function saveActiveTab(a){var b=getStorageKey();var c=$(a.target).attr("href");var d=$.getXpath($(a.target).closest(".nav-tabs").first().get(0));if(!d||typeof c=="undefined"){return}var e=d+"|"+c;var f=JSON.parse(sessionStorage.getItem(b));if(!f){var f=[]}else{remove_item(f,d)}f.push(e);sessionStorage.setItem(b,JSON.stringify(f))}var g=JSON.parse(sessionStorage.getItem(getStorageKey()));var h=$("a[data-toggle='tab']");h.on("click",function(e){saveActiveTab(e)});h.parent(".active").removeClass("active");if(!g){var j=getStorageKey().replace(/\&id=[0-9]*|[a-z]\&{1}_id=[0-9]*/,'');g=JSON.parse(sessionStorage.getItem(j));sessionStorage.removeItem(j)}if(g!==null&&!window.location.hash){$.each(g,function(a,b){var c=b.split("|");$.findXpath(c[0]).find("a[data-toggle='tab'][href='"+c[1]+"']").click()})}else{var k=[];if(window.location.hash){h.parents("ul").each(function(a,b){var c=$(b).find("a[href='"+window.location.hash+"']");if(c.length){if(c.selector){k.push(c)}else{k.push(c.first())}var d=c.closest('.tab-pane');if(d){var e=d.attr('id');if(e){var f=$(d).find("a[href='#"+e+"']");if(f){k.push(f)}}}}f=null;c=null;d=null;e=null});k.reverse();for(var i=0;i<k.length;i++){jQuery(k[i].selector).click()}var l,scrollH,loc=window.location;if("pushState"in history)history.pushState("",document.title,loc.pathname+loc.search);else{l=document.body.scrollTop;scrollH=document.body.scrollLeft;loc.hash="";document.body.scrollTop=l;document.body.scrollLeft=scrollH}}else{h.parents("ul").each(function(a,b){$(b).find("a").first().click()})}}};setTimeout(m,100)});system/js/polyfill.xpath-uncompressed.js000064400000072505152177723720014552 0ustar00(function(undefined) {
    if (!('evaluate' in Array.prototype)) {
        (function(){'use strict';var k=this;
            function aa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==
                b&&"undefined"==typeof a.call)return"object";return b}function l(a){return"string"==typeof a}function ba(a,b,c){return a.call.apply(a.bind,arguments)}function ca(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
            function da(a,b,c){da=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ba:ca;return da.apply(null,arguments)}function ea(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}
            function m(a){var b=n;function c(){}c.prototype=b.prototype;a.G=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.F=function(a,c,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[c].apply(a,g)}};/*

             The MIT License

             Copyright (c) 2007 Cybozu Labs, Inc.
             Copyright (c) 2012 Google Inc.

             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.
             */
            var fa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function q(a,b){return-1!=a.indexOf(b)}function ga(a,b){return a<b?-1:a>b?1:0};var ha=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(l(a))return l(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},r=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},ia=Array.prototype.filter?function(a,b,c){return Array.prototype.filter.call(a,
                b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=l(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var p=g[h];b.call(c,p,h,a)&&(e[f++]=p)}return e},t=Array.prototype.reduce?function(a,b,c,d){d&&(b=da(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;r(a,function(c,g){e=b.call(d,e,c,g,a)});return e},ja=Array.prototype.some?function(a,b,c){return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;
                return!1};function ka(a,b){a:{for(var c=a.length,d=l(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:l(a)?a.charAt(b):a[b]}function la(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ma(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var u;a:{var na=k.navigator;if(na){var oa=na.userAgent;if(oa){u=oa;break a}}u=""};var pa=q(u,"Opera"),v=q(u,"Trident")||q(u,"MSIE"),qa=q(u,"Edge"),ra=q(u,"Gecko")&&!(q(u.toLowerCase(),"webkit")&&!q(u,"Edge"))&&!(q(u,"Trident")||q(u,"MSIE"))&&!q(u,"Edge"),sa=q(u.toLowerCase(),"webkit")&&!q(u,"Edge");function ta(){var a=k.document;return a?a.documentMode:void 0}var ua;
            a:{var va="",wa=function(){var a=u;if(ra)return/rv\:([^\);]+)(\)|;)/.exec(a);if(qa)return/Edge\/([\d\.]+)/.exec(a);if(v)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(sa)return/WebKit\/(\S+)/.exec(a);if(pa)return/(?:Version)[ \/]?(\S+)/.exec(a)}();wa&&(va=wa?wa[1]:"");if(v){var xa=ta();if(null!=xa&&xa>parseFloat(va)){ua=String(xa);break a}}ua=va}var ya={};
            function za(a){if(!ya[a]){for(var b=0,c=fa(String(ua)).split("."),d=fa(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||"",h=d[f]||"",p=/(\d*)(\D*)/g,x=/(\d*)(\D*)/g;do{var D=p.exec(g)||["","",""],X=x.exec(h)||["","",""];if(0==D[0].length&&0==X[0].length)break;b=ga(0==D[1].length?0:parseInt(D[1],10),0==X[1].length?0:parseInt(X[1],10))||ga(0==D[2].length,0==X[2].length)||ga(D[2],X[2])}while(0==b)}ya[a]=0<=b}}
            var Aa=k.document,Ba=Aa&&v?ta()||("CSS1Compat"==Aa.compatMode?parseInt(ua,10):5):void 0;!ra&&!v||v&&9<=Number(Ba)||ra&&za("1.9.1");v&&za("9");function Ca(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
            function Da(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(v&&!(9<=Number(Ba))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?Ea(a,b):!c&&Ca(e,b)?-1*Fa(a,b):!d&&Ca(f,a)?Fa(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9==a.nodeType?
                a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.collapse(!0);a=d.createRange();a.selectNode(b);a.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,a)}function Fa(a,b){var c=a.parentNode;if(c==b)return-1;for(;b.parentNode!=c;)b=b.parentNode;return Ea(b,a)}function Ea(a,b){for(;b=b.previousSibling;)if(b==a)return-1;return 1};var w=v&&!(9<=Number(Ba)),Ga=v&&!(8<=Number(Ba));function y(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function Ha(a,b){var c=Ga&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new y(b,a,b.nodeName,c)};function z(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(w&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),w&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return""+b}
            function A(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Ga&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function B(a,b,c,d,e){return(w?Ia:Ja).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)}
            function Ia(a,b,c,d,e){if(a instanceof E||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=Ka(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)A(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||F(e,b);return e}La(a,b,c,d,e);return e}
            function Ja(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!v?(b=b.getElementsByName(d),r(b,function(b){a.a(b)&&F(e,b)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),r(b,function(b){b.className==d&&a.a(b)&&F(e,b)})):a instanceof G?La(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),r(b,function(a){A(a,c,d)&&F(e,a)}));return e}
            function Ma(a,b,c,d,e){var f;if((a instanceof E||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=Ka(a);if("*"!=g&&(f=ia(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=ia(f,function(a){return A(a,c,d)}));r(f,function(a){"*"==g&&("!"==a.tagName||"*"==g&&1!=a.nodeType)||F(e,a)});return e}return Na(a,b,c,d,e)}function Na(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b);return e}
            function La(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b),La(a,b,c,d,e)}function Ka(a){if(a instanceof G){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};function C(){this.b=this.a=null;this.l=0}function Oa(a){this.node=a;this.a=this.b=null}function Pa(a,b){if(!a.a)return b;if(!b.a)return a;var c=a.a;b=b.a;for(var d=null,e,f=0;c&&b;){e=c.node;var g=b.node;e==g||e instanceof y&&g instanceof y&&e.a==g.a?(e=c,c=c.a,b=b.a):0<Da(c.node,b.node)?(e=b,b=b.a):(e=c,c=c.a);(e.b=d)?d.a=e:a.a=e;d=e;f++}for(e=c||b;e;)e.b=d,d=d.a=e,f++,e=e.a;a.b=d;a.l=f;return a}function Qa(a,b){b=new Oa(b);b.a=a.a;a.b?a.a.b=b:a.a=a.b=b;a.a=b;a.l++}
            function F(a,b){b=new Oa(b);b.b=a.b;a.a?a.b.a=b:a.a=a.b=b;a.b=b;a.l++}function Ra(a){return(a=a.a)?a.node:null}function Sa(a){return(a=Ra(a))?z(a):""}function H(a,b){return new Ta(a,!!b)}function Ta(a,b){this.f=a;this.b=(this.c=b)?a.b:a.a;this.a=null}function I(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.c?b.b:b.a;return c.node};function n(a){this.i=a;this.b=this.g=!1;this.f=null}function J(a){return"\n  "+a.toString().split("\n").join("\n  ")}function Ua(a,b){a.g=b}function Va(a,b){a.b=b}function K(a,b){a=a.a(b);return a instanceof C?+Sa(a):+a}function L(a,b){a=a.a(b);return a instanceof C?Sa(a):""+a}function M(a,b){a=a.a(b);return a instanceof C?!!a.l:!!a};function N(a,b,c){n.call(this,a.i);this.c=a;this.h=b;this.o=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Wa&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,s:b}):this.f={name:b.f.name,s:c})}m(N);
            function O(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof C&&c instanceof C){b=H(b);for(d=I(b);d;d=I(b))for(e=H(c),f=I(e);f;f=I(e))if(a(z(d),z(f)))return!0;return!1}if(b instanceof C||c instanceof C){b instanceof C?(e=b,d=c):(e=c,d=b);f=H(e);for(var g=typeof d,h=I(f);h;h=I(f)){switch(g){case "number":h=+z(h);break;case "boolean":h=!!z(h);break;case "string":h=z(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?"boolean"==
            typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}N.prototype.a=function(a){return this.c.m(this.h,this.o,a)};N.prototype.toString=function(){var a="Binary Expression: "+this.c,a=a+J(this.h);return a+=J(this.o)};function Xa(a,b,c,d){this.a=a;this.w=b;this.i=c;this.m=d}Xa.prototype.toString=function(){return this.a};var Ya={};
            function P(a,b,c,d){if(Ya.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Xa(a,b,c,d);return Ya[a.toString()]=a}P("div",6,1,function(a,b,c){return K(a,c)/K(b,c)});P("mod",6,1,function(a,b,c){return K(a,c)%K(b,c)});P("*",6,1,function(a,b,c){return K(a,c)*K(b,c)});P("+",5,1,function(a,b,c){return K(a,c)+K(b,c)});P("-",5,1,function(a,b,c){return K(a,c)-K(b,c)});P("<",4,2,function(a,b,c){return O(function(a,b){return a<b},a,b,c)});
            P(">",4,2,function(a,b,c){return O(function(a,b){return a>b},a,b,c)});P("<=",4,2,function(a,b,c){return O(function(a,b){return a<=b},a,b,c)});P(">=",4,2,function(a,b,c){return O(function(a,b){return a>=b},a,b,c)});var Wa=P("=",3,2,function(a,b,c){return O(function(a,b){return a==b},a,b,c,!0)});P("!=",3,2,function(a,b,c){return O(function(a,b){return a!=b},a,b,c,!0)});P("and",2,2,function(a,b,c){return M(a,c)&&M(b,c)});P("or",1,2,function(a,b,c){return M(a,c)||M(b,c)});function Q(a,b,c){this.a=a;this.b=b||1;this.f=c||1};function Za(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");n.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}m(Za);Za.prototype.a=function(a){a=this.c.a(a);return $a(this.h,a)};Za.prototype.toString=function(){var a;a="Filter:"+J(this.c);return a+=J(this.h)};function ab(a,b){if(b.length<a.A)throw Error("Function "+a.j+" expects at least"+a.A+" arguments, "+b.length+" given");if(null!==a.v&&b.length>a.v)throw Error("Function "+a.j+" expects at most "+a.v+" arguments, "+b.length+" given");a.B&&r(b,function(b,d){if(4!=b.i)throw Error("Argument "+d+" to function "+a.j+" is not of type Nodeset: "+b);});n.call(this,a.i);this.h=a;this.c=b;Ua(this,a.g||ja(b,function(a){return a.g}));Va(this,a.D&&!b.length||a.C&&!!b.length||ja(b,function(a){return a.b}))}m(ab);
            ab.prototype.a=function(a){return this.h.m.apply(null,la(a,this.c))};ab.prototype.toString=function(){var a="Function: "+this.h;if(this.c.length)var b=t(this.c,function(a,b){return a+J(b)},"Arguments:"),a=a+J(b);return a};function bb(a,b,c,d,e,f,g,h,p){this.j=a;this.i=b;this.g=c;this.D=d;this.C=e;this.m=f;this.A=g;this.v=void 0!==h?h:g;this.B=!!p}bb.prototype.toString=function(){return this.j};var cb={};
            function R(a,b,c,d,e,f,g,h){if(cb.hasOwnProperty(a))throw Error("Function already created: "+a+".");cb[a]=new bb(a,b,c,d,!1,e,f,g,h)}R("boolean",2,!1,!1,function(a,b){return M(b,a)},1);R("ceiling",1,!1,!1,function(a,b){return Math.ceil(K(b,a))},1);R("concat",3,!1,!1,function(a,b){return t(ma(arguments,1),function(b,d){return b+L(d,a)},"")},2,null);R("contains",2,!1,!1,function(a,b,c){return q(L(b,a),L(c,a))},2);R("count",1,!1,!1,function(a,b){return b.a(a).l},1,1,!0);
            R("false",2,!1,!1,function(){return!1},0);R("floor",1,!1,!1,function(a,b){return Math.floor(K(b,a))},1);R("id",4,!1,!1,function(a,b){function c(a){if(w){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return ka(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument;a=L(b,a).split(/\s+/);var f=[];r(a,function(a){a=c(a);!a||0<=ha(f,a)||f.push(a)});f.sort(Da);var g=new C;r(f,function(a){F(g,a)});return g},1);
            R("lang",2,!1,!1,function(){return!1},1);R("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);R("local-name",3,!1,!0,function(a,b){return(a=b?Ra(b.a(a)):a.a)?a.localName||a.nodeName.toLowerCase():""},0,1,!0);R("name",3,!1,!0,function(a,b){return(a=b?Ra(b.a(a)):a.a)?a.nodeName.toLowerCase():""},0,1,!0);R("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
            R("normalize-space",3,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);R("not",2,!1,!1,function(a,b){return!M(b,a)},1);R("number",1,!1,!0,function(a,b){return b?K(b,a):+z(a.a)},0,1);R("position",1,!0,!1,function(a){return a.b},0);R("round",1,!1,!1,function(a,b){return Math.round(K(b,a))},1);R("starts-with",2,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);return 0==b.lastIndexOf(a,0)},2);R("string",3,!1,!0,function(a,b){return b?L(b,a):z(a.a)},0,1);
            R("string-length",1,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).length},0,1);R("substring",3,!1,!1,function(a,b,c,d){c=K(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?K(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=L(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);R("substring-after",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
            R("substring-before",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);R("sum",1,!1,!1,function(a,b){a=H(b.a(a));b=0;for(var c=I(a);c;c=I(a))b+=+z(c);return b},1,1,!0);R("translate",3,!1,!1,function(a,b,c,d){b=L(b,a);c=L(c,a);var e=L(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);R("true",2,!1,!1,function(){return!0},0);function G(a,b){this.h=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function db(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}G.prototype.a=function(a){return null===this.b||this.b==a.nodeType};G.prototype.f=function(){return this.h};
            G.prototype.toString=function(){var a="Kind Test: "+this.h;null===this.c||(a+=J(this.c));return a};function eb(a){this.b=a;this.a=0}function fb(a){a=a.match(gb);for(var b=0;b<a.length;b++)hb.test(a[b])&&a.splice(b,1);return new eb(a)}var gb=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,hb=/^\s/;function S(a,b){return a.b[a.a+(b||0)]}function T(a){return a.b[a.a++]}function ib(a){return a.b.length<=a.a};function jb(a){n.call(this,3);this.c=a.substring(1,a.length-1)}m(jb);jb.prototype.a=function(){return this.c};jb.prototype.toString=function(){return"Literal: "+this.c};function E(a,b){this.j=a.toLowerCase();a="*"==this.j?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():a}E.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=void 0!==a.localName?a.localName:a.nodeName;return"*"!=this.j&&this.j!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};E.prototype.f=function(){return this.j};
            E.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j};function kb(a){n.call(this,1);this.c=a}m(kb);kb.prototype.a=function(){return this.c};kb.prototype.toString=function(){return"Number: "+this.c};function lb(a,b){n.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;1==this.c.length&&(a=this.c[0],a.u||a.c!=mb||(a=a.o,"*"!=a.f()&&(this.f={name:a.f(),s:null})))}m(lb);function nb(){n.call(this,4)}m(nb);nb.prototype.a=function(a){var b=new C;a=a.a;9==a.nodeType?F(b,a):F(b,a.ownerDocument);return b};nb.prototype.toString=function(){return"Root Helper Expression"};function ob(){n.call(this,4)}m(ob);ob.prototype.a=function(a){var b=new C;F(b,a.a);return b};ob.prototype.toString=function(){return"Context Helper Expression"};
            function pb(a){return"/"==a||"//"==a}lb.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof C))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.l;c++){var e=a[c],f=H(b,e.c.a),g;if(e.g||e.c!=qb)if(e.g||e.c!=rb)for(g=I(f),b=e.a(new Q(g));null!=(g=I(f));)g=e.a(new Q(g)),b=Pa(b,g);else g=I(f),b=e.a(new Q(g));else{for(g=I(f);(b=I(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new Q(g))}}return b};
            lb.prototype.toString=function(){var a;a="Path Expression:"+J(this.h);if(this.c.length){var b=t(this.c,function(a,b){return a+J(b)},"Steps:");a+=J(b)}return a};function sb(a,b){this.a=a;this.b=!!b}
            function $a(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=H(b),f=b.l,g,h=0;g=I(e);h++){var p=a.b?f-h:h+1;g=d.a(new Q(g,p,f));if("number"==typeof g)p=p==g;else if("string"==typeof g||"boolean"==typeof g)p=!!g;else if(g instanceof C)p=0<g.l;else throw Error("Predicate.evaluate returned an unexpected type.");if(!p){p=e;g=p.f;var x=p.a;if(!x)throw Error("Next must be called at least once before remove.");var D=x.b,x=x.a;D?D.a=x:g.a=x;x?x.b=D:g.b=D;g.l--;p.a=null}}return b}
            sb.prototype.toString=function(){return t(this.a,function(a,b){return a+J(b)},"Predicates:")};function U(a,b,c,d){n.call(this,4);this.c=a;this.o=b;this.h=c||new sb([]);this.u=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.b&&b&&(a=b.name,a=w?a.toLowerCase():a,this.f={name:a,s:b.s});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}m(U);
            U.prototype.a=function(a){var b=a.a,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.s?L(c.s,a):null,f=1);if(this.u)if(this.g||this.c!=tb)if(b=H((new U(ub,new G("node"))).a(a)),c=I(b))for(a=this.m(c,d,e,f);null!=(c=I(b));)a=Pa(a,this.m(c,d,e,f));else a=new C;else a=B(this.o,b,d,e),a=$a(this.h,a,f);else a=this.m(a.a,d,e,f);return a};U.prototype.m=function(a,b,c,d){a=this.c.f(this.o,a,b,c);return a=$a(this.h,a,d)};
            U.prototype.toString=function(){var a;a="Step:"+J("Operator: "+(this.u?"//":"/"));this.c.j&&(a+=J("Axis: "+this.c));a+=J(this.o);if(this.h.a.length){var b=t(this.h.a,function(a,b){return a+J(b)},"Predicates:");a+=J(b)}return a};function vb(a,b,c,d){this.j=a;this.f=b;this.a=c;this.b=d}vb.prototype.toString=function(){return this.j};var wb={};function V(a,b,c,d){if(wb.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new vb(a,b,c,!!d);return wb[a]=b}
            V("ancestor",function(a,b){for(var c=new C;b=b.parentNode;)a.a(b)&&Qa(c,b);return c},!0);V("ancestor-or-self",function(a,b){var c=new C;do a.a(b)&&Qa(c,b);while(b=b.parentNode);return c},!0);
            var mb=V("attribute",function(a,b){var c=new C,d=a.f();if("style"==d&&w&&b.style)return F(c,new y(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof G&&null===a.b||"*"==d)for(a=0;d=e[a];a++)w?d.nodeValue&&F(c,Ha(b,d)):F(c,d);else(d=e.getNamedItem(d))&&(w?d.nodeValue&&F(c,Ha(b,d)):F(c,d));return c},!1),tb=V("child",function(a,b,c,d,e){return(w?Ma:Na).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)},!1,!0);V("descendant",B,!1,!0);
            var ub=V("descendant-or-self",function(a,b,c,d){var e=new C;A(b,c,d)&&a.a(b)&&F(e,b);return B(a,b,c,d,e)},!1,!0),qb=V("following",function(a,b,c,d){var e=new C;do for(var f=b;f=f.nextSibling;)A(f,c,d)&&a.a(f)&&F(e,f),e=B(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);V("following-sibling",function(a,b){for(var c=new C;b=b.nextSibling;)a.a(b)&&F(c,b);return c},!1);V("namespace",function(){return new C},!1);
            var xb=V("parent",function(a,b){var c=new C;if(9==b.nodeType)return c;if(2==b.nodeType)return F(c,b.ownerElement),c;b=b.parentNode;a.a(b)&&F(c,b);return c},!1),rb=V("preceding",function(a,b,c,d){var e=new C,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var p=[];for(b=f[g];b=b.previousSibling;)p.unshift(b);for(var x=0,D=p.length;x<D;x++)b=p[x],A(b,c,d)&&a.a(b)&&F(e,b),e=B(a,b,c,d,e)}return e},!0,!0);
            V("preceding-sibling",function(a,b){for(var c=new C;b=b.previousSibling;)a.a(b)&&Qa(c,b);return c},!0);var yb=V("self",function(a,b){var c=new C;a.a(b)&&F(c,b);return c},!1);function zb(a){n.call(this,1);this.c=a;this.g=a.g;this.b=a.b}m(zb);zb.prototype.a=function(a){return-K(this.c,a)};zb.prototype.toString=function(){return"Unary Expression: -"+J(this.c)};function Ab(a){n.call(this,4);this.c=a;Ua(this,ja(this.c,function(a){return a.g}));Va(this,ja(this.c,function(a){return a.b}))}m(Ab);Ab.prototype.a=function(a){var b=new C;r(this.c,function(c){c=c.a(a);if(!(c instanceof C))throw Error("Path expression must evaluate to NodeSet.");b=Pa(b,c)});return b};Ab.prototype.toString=function(){return t(this.c,function(a,b){return a+J(b)},"Union Expression:")};function Bb(a,b){this.a=a;this.b=b}function Cb(a){for(var b,c=[];;){W(a,"Missing right hand side of binary expression.");b=Db(a);var d=T(a.a);if(!d)break;var e=(d=Ya[d]||null)&&d.w;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].w;)b=new N(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new N(c.pop(),c.pop(),b);return b}function W(a,b){if(ib(a.a))throw Error(b);}function Eb(a,b){a=T(a.a);if(a!=b)throw Error("Bad token, expected: "+b+" got: "+a);}
            function Fb(a){a=T(a.a);if(")"!=a)throw Error("Bad token: "+a);}function Gb(a){a=T(a.a);if(2>a.length)throw Error("Unclosed literal string");return new jb(a)}
            function Hb(a){var b,c=[],d;if(pb(S(a.a))){b=T(a.a);d=S(a.a);if("/"==b&&(ib(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new nb;d=new nb;W(a,"Missing next location step.");b=Ib(a,b);c.push(b)}else{a:{b=S(a.a);d=b.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":T(a.a);b=Cb(a);W(a,'unclosed "("');Eb(a,")");break;case '"':case "'":b=Gb(a);break;default:if(isNaN(+b))if(!db(b)&&/(?![0-9])[\w]/.test(d)&&"("==S(a.a,1)){b=T(a.a);
                b=cb[b]||null;T(a.a);for(d=[];")"!=S(a.a);){W(a,"Missing function argument list.");d.push(Cb(a));if(","!=S(a.a))break;T(a.a)}W(a,"Unclosed function argument list.");Fb(a);b=new ab(b,d)}else{b=null;break a}else b=new kb(+T(a.a))}"["==S(a.a)&&(d=new sb(Jb(a)),b=new Za(b,d))}if(b)if(pb(S(a.a)))d=b;else return b;else b=Ib(a,"/"),d=new ob,c.push(b)}for(;pb(S(a.a));)b=T(a.a),W(a,"Missing next location step."),b=Ib(a,b),c.push(b);return new lb(d,c)}
            function Ib(a,b){var c,d;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==S(a.a))return d=new U(yb,new G("node")),T(a.a),d;if(".."==S(a.a))return d=new U(xb,new G("node")),T(a.a),d;var e;if("@"==S(a.a))e=mb,T(a.a),W(a,"Missing attribute name");else if("::"==S(a.a,1)){if(!/(?![0-9])[\w]/.test(S(a.a).charAt(0)))throw Error("Bad token: "+T(a.a));c=T(a.a);e=wb[c]||null;if(!e)throw Error("No axis with name: "+c);T(a.a);W(a,"Missing node name")}else e=tb;c=S(a.a);if(/(?![0-9])[\w\*]/.test(c.charAt(0)))if("("==
                S(a.a,1)){if(!db(c))throw Error("Invalid node type: "+c);c=T(a.a);if(!db(c))throw Error("Invalid type name: "+c);Eb(a,"(");W(a,"Bad nodetype");var f=S(a.a).charAt(0),g=null;if('"'==f||"'"==f)g=Gb(a);W(a,"Bad nodetype");Fb(a);c=new G(c,g)}else if(c=T(a.a),f=c.indexOf(":"),-1==f)c=new E(c);else{var g=c.substring(0,f),h;if("*"==g)h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);c=c.substr(f+1);c=new E(c,h)}else throw Error("Bad token: "+T(a.a));a=new sb(Jb(a),e.a);return d||
                new U(e,c,a,"//"==b)}function Jb(a){for(var b=[];"["==S(a.a);){T(a.a);W(a,"Missing predicate expression.");var c=Cb(a);b.push(c);W(a,"Unclosed predicate expression.");Eb(a,"]")}return b}function Db(a){if("-"==S(a.a))return T(a.a),new zb(Db(a));var b=Hb(a);if("|"!=S(a.a))a=b;else{for(b=[b];"|"==T(a.a);)W(a,"Missing next union location path."),b.push(Hb(a));a.a.a--;a=new Ab(b)}return a};function Kb(a){switch(a.nodeType){case 1:return ea(Lb,a);case 9:return Kb(a.documentElement);case 11:case 10:case 6:case 12:return Mb;default:return a.parentNode?Kb(a.parentNode):Mb}}function Mb(){return null}function Lb(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?Lb(a.parentNode,b):null};function Nb(a,b){if(!a.length)throw Error("Empty XPath expression.");a=fb(a);if(ib(a))throw Error("Invalid XPath expression.");b?"function"==aa(b)||(b=da(b.lookupNamespaceURI,b)):b=function(){return null};var c=Cb(new Bb(a,b));if(!ib(a))throw Error("Bad token: "+T(a));this.evaluate=function(a,b){a=c.a(new Q(a));return new Y(a,b)}}
            function Y(a,b){if(0==b)if(a instanceof C)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof C))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof C?Sa(a):""+a;break;case 1:this.numberValue=a instanceof C?+Sa(a):+a;break;case 3:this.booleanValue=a instanceof C?0<a.l:!!a;break;case 4:case 5:case 6:case 7:var d=
                H(a);c=[];for(var e=I(d);e;e=I(d))c.push(e instanceof y?e.a:e);this.snapshotLength=a.l;this.invalidIteratorState=!1;break;case 8:case 9:a=Ra(a);this.singleNodeValue=a instanceof y?a.a:a;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||
            0>a?null:c[a]}}Y.ANY_TYPE=0;Y.NUMBER_TYPE=1;Y.STRING_TYPE=2;Y.BOOLEAN_TYPE=3;Y.UNORDERED_NODE_ITERATOR_TYPE=4;Y.ORDERED_NODE_ITERATOR_TYPE=5;Y.UNORDERED_NODE_SNAPSHOT_TYPE=6;Y.ORDERED_NODE_SNAPSHOT_TYPE=7;Y.ANY_UNORDERED_NODE_TYPE=8;Y.FIRST_ORDERED_NODE_TYPE=9;function Ob(a){this.lookupNamespaceURI=Kb(a)}
            function Pb(a,b){a=a||k;var c=a.Document&&a.Document.prototype||a.document;if(!c.evaluate||b)a.XPathResult=Y,c.evaluate=function(a,b,c,g){return(new Nb(a,c)).evaluate(b,g)},c.createExpression=function(a,b){return new Nb(a,b)},c.createNSResolver=function(a){return new Ob(a)}}var Qb=["wgxpath","install"],Z=k;Qb[0]in Z||!Z.execScript||Z.execScript("var "+Qb[0]);for(var Rb;Qb.length&&(Rb=Qb.shift());)Qb.length||void 0===Pb?Z[Rb]?Z=Z[Rb]:Z=Z[Rb]={}:Z[Rb]=Pb;}).call(this)
    }

    setTimeout(function(){wgxpath.install()}, 100);
})
    .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});

system/js/polyfill.map-uncompressed.js000064400000002104152177723720014167 0ustar00/* Polyfill service v3.14.0
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 * 
 * UA detected: ie/8.0.0
 * Features requested: Array.prototype.map
 * 
 * - Array.prototype.map, License: CC0 */

(function(undefined) {
if (!('map' in Array.prototype)) {

// Array.prototype.map
Array.prototype.map = function map(callback) {
	if (this === undefined || this === null) {
		throw new TypeError(this + ' is not an object');
	}

	if (!(callback instanceof Function)) {
		throw new TypeError(callback + ' is not a function');
	}

	var
	object = Object(this),
	scope = arguments[1],
	arraylike = object instanceof String ? object.split('') : object,
	length = Math.max(Math.min(arraylike.length, 9007199254740991), 0) || 0,
	index = -1,
	result = [];

	while (++index < length) {
		if (index in arraylike) {
			result[index] = callback.call(scope, arraylike[index], index, object);
		}
	}

	return result;
};

}

})
.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
system/js/subform-repeatable-uncompressed.js000064400000023507152177723720015352 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

;(function($){
	"use strict";
	$.subformRepeatable = function(container, options){
		this.$container = $(container);

		// check if already exist
		if(this.$container.data("subformRepeatable")){
			return self;
		}

		// Add a reverse reference to the DOM object
		this.$container.data("subformRepeatable", self);

		// merge options
		this.options = $.extend({}, $.subformRepeatable.defaults, options);

		// template for the repeating group
		this.template = '';

		// prepare a row template, and find available field names
		this.prepareTemplate();

		// check rows container
		this.$containerRows = this.options.rowsContainer ? this.$container.find(this.options.rowsContainer) : this.$container;

		// To avoid scope issues,
		var self = this;

		// bind add button
		this.$container.on('click', this.options.btAdd, function (e) {
			e.preventDefault();
			var after = $(this).parents(self.options.repeatableElement);
			if(!after.length){
				after = null;
			}
			self.addRow(after);
		});

		// bind remove button
		this.$container.on('click', this.options.btRemove, function (e) {
			e.preventDefault();
			var $row = $(this).parents(self.options.repeatableElement);
			self.removeRow($row);
		});

		// bind move button
		if(this.options.btMove){
			this.$containerRows.sortable({
				items: this.options.repeatableElement,
				handle: this.options.btMove,
				tolerance: 'pointer'
			});
		}

		// tell all that we a ready
		this.$container.trigger('subform-ready');
	};

	// prepare a template that we will use repeating
	$.subformRepeatable.prototype.prepareTemplate = function(){
		// create from template
		if (this.options.rowTemplateSelector) {
			// Find the template element and get its HTML content, this is our template.
			var $tmplElement = this.$container.find(this.options.rowTemplateSelector).last();

			this.template = $.trim($tmplElement.html()) || '';

			// This is IE fix for <template>
			$tmplElement.css('display', 'none'); // Make sure it not visible
			var map = {'SUBFORMLT': '<', 'SUBFORMGT': '>'};
			this.template = this.template.replace(/(SUBFORMLT)|(SUBFORMGT)/g, function(match){
				return map[match];
			});
		}
		// create from existing rows
		else {
			//find first available
			var row = this.$container.find(this.options.repeatableElement).get(0),
				$row = $(row).clone();

			// clear scripts that can be attached to the fields
			try {
				this.clearScripts($row);
			} catch (e) {
				if(window.console){
					console.log(e);
				}
			}

			this.template = $row.prop('outerHTML');
		}
	};

	// add new row
	$.subformRepeatable.prototype.addRow = function(after){
		// count how much we already have
		var count = this.$containerRows.find(this.options.repeatableElement).length;
		if(count >= this.options.maximum){
			return null;
		}

		// make new from template
		var row = $.parseHTML(this.template);

		//add to container
		if(after){
			$(after).after(row);
		} else {
			this.$containerRows.append(row);
		}

		var $row = $(row);
		//add marker that it is new
		$row.attr('data-new', 'true');
		// fix names and id`s, and reset values
		this.fixUniqueAttributes($row, count);

		// try find out with related scripts,
		// tricky thing, so be careful
		try {
			this.fixScripts($row);
		} catch (e) {
			if(window.console){
				console.log(e);
			}
		}

		// tell everyone about the new row
		this.$container.trigger('subform-row-add', $row);
		return $row;
	};

	// remove row
	$.subformRepeatable.prototype.removeRow = function($row){
		// count how much we have
		var count = this.$containerRows.find(this.options.repeatableElement).length;
		if(count <= this.options.minimum){
			return;
		}

		// tell everyoune about the row will be removed
		this.$container.trigger('subform-row-remove', $row);
		$row.remove();
	};

	// fix names and id`s for fields in $row
	$.subformRepeatable.prototype.fixUniqueAttributes = function(
		$row, // the jQuery object to do fixes in
		_count, // existing count of rows
		_group, // current group name, e.g. 'optionsX'
		_basename // group base name, without count, e.g. 'options'
	) {
		var group = (typeof _group === 'undefined' ? $row.attr('data-group') : _group),
			basename = (typeof _basename === 'undefined' ? $row.attr('data-base-name') : _basename),
			count    = (typeof _count === 'undefined' ? 0 : _count),
			groupnew = basename + count;

		$row.attr('data-group', groupnew);

		// Fix inputs that have a "name" attribute
		var haveName = $row.find('[name]'),
			ids = {}; // Collect id for fix checkboxes and radio

		for (var i = 0, l = haveName.length; i < l; i++) {
			var $el     = $(haveName[i]),
				name    = $el.attr('name'),
				id      = name.replace(/(\[\]$)/g, '').replace(/(\]\[)/g, '__').replace(/\[/g, '_').replace(/\]/g, '').replace(/\W/g, '_'), // id from name
				nameNew = name.replace('[' + group + '][', '['+ groupnew +']['), // New name
				idNew   = id.replace(group, groupnew), // Count new id
				countMulti = 0, // count for multiple radio/checkboxes
				forOldAttr = id; // Fix "for" in the labels

			if ($el.prop('type') === 'checkbox' && name.match(/\[\]$/)) { // <input type="checkbox" name="name[]"> fix
				// Recount id
				countMulti = ids[id] ? ids[id].length : 0;
				if (!countMulti) {
					// Set the id for fieldset and group label
					$el.closest('fieldset.checkboxes').attr('id', idNew);
					$row.find('label[for="' + id + '"]').attr('for', idNew).attr('id', idNew + '-lbl');
				}
				forOldAttr = forOldAttr + countMulti;
				idNew = idNew + countMulti;
			}
			else if ($el.prop('type') === 'radio') { // <input type="radio"> fix
				// Recount id
				countMulti = ids[id] ? ids[id].length : 0;
				if (!countMulti) {
					// Set the id for fieldset and group label
					$el.closest('fieldset.radio').attr('id', idNew);
					$row.find('label[for="' + id + '"]').attr('for', idNew).attr('id', idNew + '-lbl');
				}
				forOldAttr = forOldAttr + countMulti;
				idNew = idNew + countMulti;
			}

			// Cache already used id
			if (ids[id]) {
				ids[id].push(true);
			} else {
				ids[id] = [true];
			}

			// Replace the name to new one
			$el.attr('name', nameNew);
			// Set new id
			$el.attr('id', idNew);
			// Guess there a label for this input
			$row.find('label[for="' + forOldAttr + '"]').attr('for', idNew).attr('id', idNew + '-lbl');
		}

		/**
		 * Recursively replace our basename + old group with basename + new group
		 * inside of nested subform template elements. First we try to find such
		 * template elements, then we iterate through them and do the same replacements
		 * that we have made here inside of them.
		 */
		var nestedTemplates = $row.find(this.options.rowTemplateSelector);
		// If we found it, iterate over the found ones (might be more than one!)
		for (var j = 0; j < nestedTemplates.length; j++) {
			// Get the nested templates content (as DocumentFragment) and cast it
			// to a jQuery object
			var nestedTemplate = $($(nestedTemplates[j]).prop('content'));
			// Fix the attributes for this nested template.
			this.fixUniqueAttributes(nestedTemplate, count, group, basename);
		}
	};

	// remove scripts attached to fields
	// @TODO: make thing better when something like that will be accepted https://github.com/joomla/joomla-cms/pull/6357
	$.subformRepeatable.prototype.clearScripts = function($row){
		// destroy chosen if any
		if($.fn.chosen){
			$row.find('select.chzn-done').each(function(){
				var $el = $(this);
				$el.next('.chzn-container').remove();
				$el.show().addClass('fix-chosen');
			});
		}
	};

	// method for hack the scripts that can be related
	// to the one of field that in given $row
	// @TODO Stop using this function. Elements within subforms should initialize themselves
	$.subformRepeatable.prototype.fixScripts = function($row){
		// fix media field
		$row.find('a[onclick*="jInsertFieldValue"]').each(function(){
				var $el = $(this),
				inputId = $el.siblings('input[type="text"]').attr('id'),
				$select = $el.prev(),
				oldHref = $select.attr('href');
			// update the clear button
			$el.attr('onclick', "jInsertFieldValue('', '" + inputId + "');return false;")
			// update select button
			$select.attr('href', oldHref.replace(/&fieldid=(.+)&/, '&fieldid=' + inputId + '&'));
		});
	};

	// defaults
	$.subformRepeatable.defaults = {
		// button selector for "add" action, must be unique per nested subform!
		btAdd: ".group-add",
		// button selector for "remove" action, must be unique per nested subform!
		btRemove: ".group-remove",
		// button selector for "move" action, must be unique per nested subform!
		btMove: ".group-move",
		// minimum repeating
		minimum: 0,
		// maximum repeating
		maximum: 10,
		// selector for the repeatable element inside the main container,
		// must be unique per nested subform!
		repeatableElement: ".subform-repeatable-group",
		// selector for the row template element with URL-encoded template inside it,
		// must *NOT* be unique per nested subform!
		rowTemplateSelector: 'template.subform-repeatable-template-section',
		// container for rows, same as main container by default
		rowsContainer: null
	};

	$.fn.subformRepeatable = function(options){
		return this.each(function(){
			var options = options || {},
				data = $(this).data();

			if(data.subformRepeatable){
				// Alredy initialized, nothing to do here
				return;
			}

			for (var p in data) {
				// check options in the element
				if (data.hasOwnProperty(p)) {
					options[p] = data[p];
				}
			}

			var inst = new $.subformRepeatable(this, options);
			$(this).data('subformRepeatable', inst);
		});
	};

	// initialise all available on load and again within any added row
	$(function ($) {
		initSubform();
		$(document).on('subform-row-add', initSubform);

		function initSubform (event, container) {
			$(container || document).find('div.subform-repeatable').subformRepeatable();
		}
	});

})(jQuery);
system/js/sendtestmail.js000064400000001764152177723720011563 0ustar00var sendTestMail=function(){$=jQuery;var e={smtpauth:$('input[name="jform[smtpauth]"]:checked').val(),smtpuser:$('input[name="jform[smtpuser]"]').val(),smtppass:$('input[name="jform[smtppass]"]').val(),smtphost:$('input[name="jform[smtphost]"]').val(),smtpsecure:$('select[name="jform[smtpsecure]"]').val(),smtpport:$('input[name="jform[smtpport]"]').val(),mailfrom:$('input[name="jform[mailfrom]"]').val(),fromname:$('input[name="jform[fromname]"]').val(),mailer:$('select[name="jform[mailer]"]').val(),mailonline:$('input[name="jform[mailonline]"]:checked').val()};Joomla.removeMessages(),$.ajax({method:"POST",url:document.getElementById("sendtestmail").getAttribute("data-ajaxuri"),data:e,dataType:"json"}).fail(function(e,a,m){Joomla.renderMessages(Joomla.ajaxErrorsMessages(e,a,m)),window.scrollTo(0,0)}).done(function(e){"object"==typeof e.messages&&null!==e.messages&&(Joomla.renderMessages(e.messages),window.scrollTo(0,0))})};jQuery(document).ready(function(e){e("#sendtestmail").click(sendTestMail)});system/js/mootools-more.js000064400000716431152177723720011706 0ustar00// MooTools: the javascript framework.
// Load this file's selection again by visiting: http://mootools.net/more/065f2f092ece4e3b32bb5214464cf926 
// Or build this file again with packager using: packager build More/More More/Events.Pseudos More/Class.Refactor More/Class.Binds More/Class.Occlude More/Chain.Wait More/Array.Extras More/Date More/Date.Extras More/Number.Format More/Object.Extras More/String.Extras More/String.QueryString More/URI More/URI.Relative More/Hash More/Hash.Extras More/Element.Forms More/Elements.From More/Element.Event.Pseudos More/Element.Event.Pseudos.Keys More/Element.Measure More/Element.Pin More/Element.Position More/Element.Shortcuts More/Form.Request More/Form.Request.Append More/Form.Validator More/Form.Validator.Inline More/Form.Validator.Extras More/OverText More/Fx.Elements More/Fx.Accordion More/Fx.Move More/Fx.Reveal More/Fx.Scroll More/Fx.Slide More/Fx.SmoothScroll More/Fx.Sort More/Drag More/Drag.Move More/Slider More/Sortables More/Request.JSONP More/Request.Queue More/Request.Periodical More/Assets More/Color More/Group More/Hash.Cookie More/IframeShim More/Table More/HtmlTable More/HtmlTable.Zebra More/HtmlTable.Sort More/HtmlTable.Select More/Keyboard More/Keyboard.Extras More/Mask More/Scroller More/Tips More/Spinner More/Locale More/Locale.Set.From More/Locale.en-US.Date More/Locale.en-US.Form.Validator More/Locale.en-US.Number More/Locale.ar.Date More/Locale.ar.Form.Validator More/Locale.ca-CA.Date More/Locale.ca-CA.Form.Validator More/Locale.cs-CZ.Date More/Locale.cs-CZ.Form.Validator More/Locale.da-DK.Date More/Locale.da-DK.Form.Validator More/Locale.de-CH.Date More/Locale.de-CH.Form.Validator More/Locale.de-DE.Date More/Locale.de-DE.Form.Validator More/Locale.de-DE.Number More/Locale.en-GB.Date More/Locale.es-AR.Date More/Locale.es-AR.Form.Validator More/Locale.es-ES.Date More/Locale.es-ES.Form.Validator More/Locale.et-EE.Date More/Locale.et-EE.Form.Validator More/Locale.EU.Number More/Locale.fa.Date More/Locale.fa.Form.Validator More/Locale.fi-FI.Date More/Locale.fi-FI.Form.Validator More/Locale.fi-FI.Number More/Locale.fr-FR.Date More/Locale.fr-FR.Form.Validator More/Locale.fr-FR.Number More/Locale.he-IL.Date More/Locale.he-IL.Form.Validator More/Locale.he-IL.Number More/Locale.hu-HU.Date More/Locale.hu-HU.Form.Validator More/Locale.it-IT.Date More/Locale.it-IT.Form.Validator More/Locale.ja-JP.Date More/Locale.ja-JP.Form.Validator More/Locale.ja-JP.Number More/Locale.nl-NL.Date More/Locale.nl-NL.Form.Validator More/Locale.nl-NL.Number More/Locale.no-NO.Date More/Locale.no-NO.Form.Validator More/Locale.pl-PL.Date More/Locale.pl-PL.Form.Validator More/Locale.pt-BR.Date More/Locale.pt-BR.Form.Validator More/Locale.pt-PT.Date More/Locale.pt-PT.Form.Validator More/Locale.ru-RU-unicode.Date More/Locale.ru-RU-unicode.Form.Validator More/Locale.si-SI.Date More/Locale.si-SI.Form.Validator More/Locale.sv-SE.Date More/Locale.sv-SE.Form.Validator More/Locale.uk-UA.Date More/Locale.uk-UA.Form.Validator More/Locale.zh-CH.Date More/Locale.zh-CH.Form.Validator
/*
---
copyrights:
  - [MooTools](http://mootools.net)

licenses:
  - [MIT License](http://mootools.net/license.txt)
...
*/
MooTools.More={version:"1.4.0.1",build:"a4244edf2aa97ac8a196fc96082dd35af1abab87"};(function(){Events.Pseudos=function(h,e,f){var d="_monitorEvents:";var c=function(i){return{store:i.store?function(j,k){i.store(d+j,k);
}:function(j,k){(i._monitorEvents||(i._monitorEvents={}))[j]=k;},retrieve:i.retrieve?function(j,k){return i.retrieve(d+j,k);}:function(j,k){if(!i._monitorEvents){return k;
}return i._monitorEvents[j]||k;}};};var g=function(k){if(k.indexOf(":")==-1||!h){return null;}var j=Slick.parse(k).expressions[0][0],p=j.pseudos,i=p.length,o=[];
while(i--){var n=p[i].key,m=h[n];if(m!=null){o.push({event:j.tag,value:p[i].value,pseudo:n,original:k,listener:m});}}return o.length?o:null;};return{addEvent:function(m,p,j){var n=g(m);
if(!n){return e.call(this,m,p,j);}var k=c(this),r=k.retrieve(m,[]),i=n[0].event,l=Array.slice(arguments,2),o=p,q=this;n.each(function(s){var t=s.listener,u=o;
if(t==false){i+=":"+s.pseudo+"("+s.value+")";}else{o=function(){t.call(q,s,u,arguments,o);};}});r.include({type:i,event:p,monitor:o});k.store(m,r);if(m!=i){e.apply(this,[m,p].concat(l));
}return e.apply(this,[i,o].concat(l));},removeEvent:function(m,l){var k=g(m);if(!k){return f.call(this,m,l);}var n=c(this),j=n.retrieve(m);if(!j){return this;
}var i=Array.slice(arguments,2);f.apply(this,[m,l].concat(i));j.each(function(o,p){if(!l||o.event==l){f.apply(this,[o.type,o.monitor].concat(i));}delete j[p];
},this);n.store(m,j);return this;}};};var b={once:function(e,f,d,c){f.apply(this,d);this.removeEvent(e.event,c).removeEvent(e.original,f);},throttle:function(d,e,c){if(!e._throttled){e.apply(this,c);
e._throttled=setTimeout(function(){e._throttled=false;},d.value||250);}},pause:function(d,e,c){clearTimeout(e._pause);e._pause=e.delay(d.value||250,this,c);
}};Events.definePseudo=function(c,d){b[c]=d;return this;};Events.lookupPseudo=function(c){return b[c];};var a=Events.prototype;Events.implement(Events.Pseudos(b,a.addEvent,a.removeEvent));
["Request","Fx"].each(function(c){if(this[c]){this[c].implement(Events.prototype);}});})();Class.refactor=function(b,a){Object.each(a,function(e,d){var c=b.prototype[d];
c=(c&&c.$origin)||c||function(){};b.implement(d,(typeof e=="function")?function(){var f=this.previous;this.previous=c;var g=e.apply(this,arguments);this.previous=f;
return g;}:e);});return b;};Class.Mutators.Binds=function(a){if(!this.prototype.initialize){this.implement("initialize",function(){});}return Array.from(a).concat(this.prototype.Binds||[]);
};Class.Mutators.initialize=function(a){return function(){Array.from(this.Binds).each(function(b){var c=this[b];if(c){this[b]=c.bind(this);}},this);return a.apply(this,arguments);
};};Class.Occlude=new Class({occlude:function(c,b){b=document.id(b||this.element);var a=b.retrieve(c||this.property);if(a&&!this.occluded){return(this.occluded=a);
}this.occluded=false;b.store(c||this.property,this);return this.occluded;}});(function(){var a={wait:function(b){return this.chain(function(){this.callChain.delay(b==null?500:b,this);
return this;}.bind(this));}};Chain.implement(a);if(this.Fx){Fx.implement(a);}if(this.Element&&Element.implement&&this.Fx){Element.implement({chains:function(b){Array.from(b||["tween","morph","reveal"]).each(function(c){c=this.get(c);
if(!c){return;}c.setOptions({link:"chain"});},this);return this;},pauseFx:function(c,b){this.chains(b).get(b||"tween").wait(c);return this;}});}})();(function(a){Array.implement({min:function(){return Math.min.apply(null,this);
},max:function(){return Math.max.apply(null,this);},average:function(){return this.length?this.sum()/this.length:0;},sum:function(){var b=0,c=this.length;
if(c){while(c--){b+=this[c];}}return b;},unique:function(){return[].combine(this);},shuffle:function(){for(var c=this.length;c&&--c;){var b=this[c],d=Math.floor(Math.random()*(c+1));
this[c]=this[d];this[d]=b;}return this;},reduce:function(d,e){for(var c=0,b=this.length;c<b;c++){if(c in this){e=e===a?this[c]:d.call(null,e,this[c],c,this);
}}return e;},reduceRight:function(c,d){var b=this.length;while(b--){if(b in this){d=d===a?this[b]:c.call(null,d,this[b],b,this);}}return d;}});})();(function(){var b=function(c){return c!=null;
};var a=Object.prototype.hasOwnProperty;Object.extend({getFromPath:function(e,f){if(typeof f=="string"){f=f.split(".");}for(var d=0,c=f.length;d<c;d++){if(a.call(e,f[d])){e=e[f[d]];
}else{return null;}}return e;},cleanValues:function(c,e){e=e||b;for(var d in c){if(!e(c[d])){delete c[d];}}return c;},erase:function(c,d){if(a.call(c,d)){delete c[d];
}return c;},run:function(d){var c=Array.slice(arguments,1);for(var e in d){if(d[e].apply){d[e].apply(d,c);}}return d;}});})();(function(){var b=null,a={},d={};
var c=function(f){if(instanceOf(f,e.Set)){return f;}else{return a[f];}};var e=this.Locale={define:function(f,j,h,i){var g;if(instanceOf(f,e.Set)){g=f.name;
if(g){a[g]=f;}}else{g=f;if(!a[g]){a[g]=new e.Set(g);}f=a[g];}if(j){f.define(j,h,i);}if(!b){b=f;}return f;},use:function(f){f=c(f);if(f){b=f;this.fireEvent("change",f);
}return this;},getCurrent:function(){return b;},get:function(g,f){return(b)?b.get(g,f):"";},inherit:function(f,g,h){f=c(f);if(f){f.inherit(g,h);}return this;
},list:function(){return Object.keys(a);}};Object.append(e,new Events);e.Set=new Class({sets:{},inherits:{locales:[],sets:{}},initialize:function(f){this.name=f||"";
},define:function(i,g,h){var f=this.sets[i];if(!f){f={};}if(g){if(typeOf(g)=="object"){f=Object.merge(f,g);}else{f[g]=h;}}this.sets[i]=f;return this;},get:function(r,j,q){var p=Object.getFromPath(this.sets,r);
if(p!=null){var m=typeOf(p);if(m=="function"){p=p.apply(null,Array.from(j));}else{if(m=="object"){p=Object.clone(p);}}return p;}var h=r.indexOf("."),o=h<0?r:r.substr(0,h),k=(this.inherits.sets[o]||[]).combine(this.inherits.locales).include("en-US");
if(!q){q=[];}for(var g=0,f=k.length;g<f;g++){if(q.contains(k[g])){continue;}q.include(k[g]);var n=a[k[g]];if(!n){continue;}p=n.get(r,j,q);if(p!=null){return p;
}}return"";},inherit:function(g,h){g=Array.from(g);if(h&&!this.inherits.sets[h]){this.inherits.sets[h]=[];}var f=g.length;while(f--){(h?this.inherits.sets[h]:this.inherits.locales).unshift(g[f]);
}return this;}});})();Locale.define("en-US","Date",{months:["January","February","March","April","May","June","July","August","September","October","November","December"],months_abbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],days_abbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dateOrder:["month","date","year"],shortDate:"%m/%d/%Y",shortTime:"%I:%M%p",AM:"AM",PM:"PM",firstDayOfWeek:0,ordinal:function(a){return(a>3&&a<21)?"th":["th","st","nd","rd","th"][Math.min(a%10,4)];
},lessThanMinuteAgo:"less than a minute ago",minuteAgo:"about a minute ago",minutesAgo:"{delta} minutes ago",hourAgo:"about an hour ago",hoursAgo:"about {delta} hours ago",dayAgo:"1 day ago",daysAgo:"{delta} days ago",weekAgo:"1 week ago",weeksAgo:"{delta} weeks ago",monthAgo:"1 month ago",monthsAgo:"{delta} months ago",yearAgo:"1 year ago",yearsAgo:"{delta} years ago",lessThanMinuteUntil:"less than a minute from now",minuteUntil:"about a minute from now",minutesUntil:"{delta} minutes from now",hourUntil:"about an hour from now",hoursUntil:"about {delta} hours from now",dayUntil:"1 day from now",daysUntil:"{delta} days from now",weekUntil:"1 week from now",weeksUntil:"{delta} weeks from now",monthUntil:"1 month from now",monthsUntil:"{delta} months from now",yearUntil:"1 year from now",yearsUntil:"{delta} years from now"});
(function(){var a=this.Date;var f=a.Methods={ms:"Milliseconds",year:"FullYear",min:"Minutes",mo:"Month",sec:"Seconds",hr:"Hours"};["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds","Time","TimezoneOffset","Week","Timezone","GMTOffset","DayOfYear","LastMonth","LastDayOfMonth","UTCDate","UTCDay","UTCFullYear","AMPM","Ordinal","UTCHours","UTCMilliseconds","UTCMinutes","UTCMonth","UTCSeconds","UTCMilliseconds"].each(function(s){a.Methods[s.toLowerCase()]=s;
});var p=function(u,t,s){if(t==1){return u;}return u<Math.pow(10,t-1)?(s||"0")+p(u,t-1,s):u;};a.implement({set:function(u,s){u=u.toLowerCase();var t=f[u]&&"set"+f[u];
if(t&&this[t]){this[t](s);}return this;}.overloadSetter(),get:function(t){t=t.toLowerCase();var s=f[t]&&"get"+f[t];if(s&&this[s]){return this[s]();}return null;
}.overloadGetter(),clone:function(){return new a(this.get("time"));},increment:function(s,u){s=s||"day";u=u!=null?u:1;switch(s){case"year":return this.increment("month",u*12);
case"month":var t=this.get("date");this.set("date",1).set("mo",this.get("mo")+u);return this.set("date",t.min(this.get("lastdayofmonth")));case"week":return this.increment("day",u*7);
case"day":return this.set("date",this.get("date")+u);}if(!a.units[s]){throw new Error(s+" is not a supported interval");}return this.set("time",this.get("time")+u*a.units[s]());
},decrement:function(s,t){return this.increment(s,-1*(t!=null?t:1));},isLeapYear:function(){return a.isLeapYear(this.get("year"));},clearTime:function(){return this.set({hr:0,min:0,sec:0,ms:0});
},diff:function(t,s){if(typeOf(t)=="string"){t=a.parse(t);}return((t-this)/a.units[s||"day"](3,3)).round();},getLastDayOfMonth:function(){return a.daysInMonth(this.get("mo"),this.get("year"));
},getDayOfYear:function(){return(a.UTC(this.get("year"),this.get("mo"),this.get("date")+1)-a.UTC(this.get("year"),0,1))/a.units.day();},setDay:function(t,s){if(s==null){s=a.getMsg("firstDayOfWeek");
if(s===""){s=1;}}t=(7+a.parseDay(t,true)-s)%7;var u=(7+this.get("day")-s)%7;return this.increment("day",t-u);},getWeek:function(v){if(v==null){v=a.getMsg("firstDayOfWeek");
if(v===""){v=1;}}var x=this,u=(7+x.get("day")-v)%7,t=0,w;if(v==1){var y=x.get("month"),s=x.get("date")-u;if(y==11&&s>28){return 1;}if(y==0&&s<-2){x=new a(x).decrement("day",u);
u=0;}w=new a(x.get("year"),0,1).get("day")||7;if(w>4){t=-7;}}else{w=new a(x.get("year"),0,1).get("day");}t+=x.get("dayofyear");t+=6-u;t+=(7+w-v)%7;return(t/7);
},getOrdinal:function(s){return a.getMsg("ordinal",s||this.get("date"));},getTimezone:function(){return this.toString().replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");
},getGMTOffset:function(){var s=this.get("timezoneOffset");return((s>0)?"-":"+")+p((s.abs()/60).floor(),2)+p(s%60,2);},setAMPM:function(s){s=s.toUpperCase();
var t=this.get("hr");if(t>11&&s=="AM"){return this.decrement("hour",12);}else{if(t<12&&s=="PM"){return this.increment("hour",12);}}return this;},getAMPM:function(){return(this.get("hr")<12)?"AM":"PM";
},parse:function(s){this.set("time",a.parse(s));return this;},isValid:function(s){if(!s){s=this;}return typeOf(s)=="date"&&!isNaN(s.valueOf());},format:function(s){if(!this.isValid()){return"invalid date";
}if(!s){s="%x %X";}if(typeof s=="string"){s=g[s.toLowerCase()]||s;}if(typeof s=="function"){return s(this);}var t=this;return s.replace(/%([a-z%])/gi,function(v,u){switch(u){case"a":return a.getMsg("days_abbr")[t.get("day")];
case"A":return a.getMsg("days")[t.get("day")];case"b":return a.getMsg("months_abbr")[t.get("month")];case"B":return a.getMsg("months")[t.get("month")];
case"c":return t.format("%a %b %d %H:%M:%S %Y");case"d":return p(t.get("date"),2);case"e":return p(t.get("date"),2," ");case"H":return p(t.get("hr"),2);
case"I":return p((t.get("hr")%12)||12,2);case"j":return p(t.get("dayofyear"),3);case"k":return p(t.get("hr"),2," ");case"l":return p((t.get("hr")%12)||12,2," ");
case"L":return p(t.get("ms"),3);case"m":return p((t.get("mo")+1),2);case"M":return p(t.get("min"),2);case"o":return t.get("ordinal");case"p":return a.getMsg(t.get("ampm"));
case"s":return Math.round(t/1000);case"S":return p(t.get("seconds"),2);case"T":return t.format("%H:%M:%S");case"U":return p(t.get("week"),2);case"w":return t.get("day");
case"x":return t.format(a.getMsg("shortDate"));case"X":return t.format(a.getMsg("shortTime"));case"y":return t.get("year").toString().substr(2);case"Y":return t.get("year");
case"z":return t.get("GMTOffset");case"Z":return t.get("Timezone");}return u;});},toISOString:function(){return this.format("iso8601");}}).alias({toJSON:"toISOString",compare:"diff",strftime:"format"});
var k=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var g={db:"%Y-%m-%d %H:%M:%S",compact:"%Y%m%dT%H%M%S","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M",rfc822:function(s){return k[s.get("day")]+s.format(", %d ")+h[s.get("month")]+s.format(" %Y %H:%M:%S %Z");
},rfc2822:function(s){return k[s.get("day")]+s.format(", %d ")+h[s.get("month")]+s.format(" %Y %H:%M:%S %z");},iso8601:function(s){return(s.getUTCFullYear()+"-"+p(s.getUTCMonth()+1,2)+"-"+p(s.getUTCDate(),2)+"T"+p(s.getUTCHours(),2)+":"+p(s.getUTCMinutes(),2)+":"+p(s.getUTCSeconds(),2)+"."+p(s.getUTCMilliseconds(),3)+"Z");
}};var c=[],n=a.parse;var r=function(v,x,u){var t=-1,w=a.getMsg(v+"s");switch(typeOf(x)){case"object":t=w[x.get(v)];break;case"number":t=w[x];if(!t){throw new Error("Invalid "+v+" index: "+x);
}break;case"string":var s=w.filter(function(y){return this.test(y);},new RegExp("^"+x,"i"));if(!s.length){throw new Error("Invalid "+v+" string");}if(s.length>1){throw new Error("Ambiguous "+v);
}t=s[0];}return(u)?w.indexOf(t):t;};var i=1900,o=70;a.extend({getMsg:function(t,s){return Locale.get("Date."+t,s);},units:{ms:Function.from(1),second:Function.from(1000),minute:Function.from(60000),hour:Function.from(3600000),day:Function.from(86400000),week:Function.from(608400000),month:function(t,s){var u=new a;
return a.daysInMonth(t!=null?t:u.get("mo"),s!=null?s:u.get("year"))*86400000;},year:function(s){s=s||new a().get("year");return a.isLeapYear(s)?31622400000:31536000000;
}},daysInMonth:function(t,s){return[31,a.isLeapYear(s)?29:28,31,30,31,30,31,31,30,31,30,31][t];},isLeapYear:function(s){return((s%4===0)&&(s%100!==0))||(s%400===0);
},parse:function(v){var u=typeOf(v);if(u=="number"){return new a(v);}if(u!="string"){return v;}v=v.clean();if(!v.length){return null;}var s;c.some(function(w){var t=w.re.exec(v);
return(t)?(s=w.handler(t)):false;});if(!(s&&s.isValid())){s=new a(n(v));if(!(s&&s.isValid())){s=new a(v.toInt());}}return s;},parseDay:function(s,t){return r("day",s,t);
},parseMonth:function(t,s){return r("month",t,s);},parseUTC:function(t){var s=new a(t);var u=a.UTC(s.get("year"),s.get("mo"),s.get("date"),s.get("hr"),s.get("min"),s.get("sec"),s.get("ms"));
return new a(u);},orderIndex:function(s){return a.getMsg("dateOrder").indexOf(s)+1;},defineFormat:function(s,t){g[s]=t;return this;},defineParser:function(s){c.push((s.re&&s.handler)?s:l(s));
return this;},defineParsers:function(){Array.flatten(arguments).each(a.defineParser);return this;},define2DigitYearStart:function(s){o=s%100;i=s-o;return this;
}}).extend({defineFormats:a.defineFormat.overloadSetter()});var d=function(s){return new RegExp("(?:"+a.getMsg(s).map(function(t){return t.substr(0,3);
}).join("|")+")[a-z]*");};var m=function(s){switch(s){case"T":return"%H:%M:%S";case"x":return((a.orderIndex("month")==1)?"%m[-./]%d":"%d[-./]%m")+"([-./]%y)?";
case"X":return"%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%z?";}return null;};var j={d:/[0-2]?[0-9]|3[01]/,H:/[01]?[0-9]|2[0-3]/,I:/0?[1-9]|1[0-2]/,M:/[0-5]?\d/,s:/\d+/,o:/[a-z]*/,p:/[ap]\.?m\.?/,y:/\d{2}|\d{4}/,Y:/\d{4}/,z:/Z|[+-]\d{2}(?::?\d{2})?/};
j.m=j.I;j.S=j.M;var e;var b=function(s){e=s;j.a=j.A=d("days");j.b=j.B=d("months");c.each(function(u,t){if(u.format){c[t]=l(u.format);}});};var l=function(u){if(!e){return{format:u};
}var s=[];var t=(u.source||u).replace(/%([a-z])/gi,function(w,v){return m(v)||w;}).replace(/\((?!\?)/g,"(?:").replace(/ (?!\?|\*)/g,",? ").replace(/%([a-z%])/gi,function(w,v){var x=j[v];
if(!x){return v;}s.push(v);return"("+x.source+")";}).replace(/\[a-z\]/gi,"[a-z\\u00c0-\\uffff;&]");return{format:u,re:new RegExp("^"+t+"$","i"),handler:function(y){y=y.slice(1).associate(s);
var v=new a().clearTime(),x=y.y||y.Y;if(x!=null){q.call(v,"y",x);}if("d" in y){q.call(v,"d",1);}if("m" in y||y.b||y.B){q.call(v,"m",1);}for(var w in y){q.call(v,w,y[w]);
}return v;}};};var q=function(s,t){if(!t){return this;}switch(s){case"a":case"A":return this.set("day",a.parseDay(t,true));case"b":case"B":return this.set("mo",a.parseMonth(t,true));
case"d":return this.set("date",t);case"H":case"I":return this.set("hr",t);case"m":return this.set("mo",t-1);case"M":return this.set("min",t);case"p":return this.set("ampm",t.replace(/\./g,""));
case"S":return this.set("sec",t);case"s":return this.set("ms",("0."+t)*1000);case"w":return this.set("day",t);case"Y":return this.set("year",t);case"y":t=+t;
if(t<100){t+=i+(t<o?100:0);}return this.set("year",t);case"z":if(t=="Z"){t="+00";}var u=t.match(/([+-])(\d{2}):?(\d{2})?/);u=(u[1]+"1")*(u[2]*60+(+u[3]||0))+this.getTimezoneOffset();
return this.set("time",this-u*60000);}return this;};a.defineParsers("%Y([-./]%m([-./]%d((T| )%X)?)?)?","%Y%m%d(T%H(%M%S?)?)?","%x( %X)?","%d%o( %b( %Y)?)?( %X)?","%b( %d%o)?( %Y)?( %X)?","%Y %b( %d%o( %X)?)?","%o %b %d %X %z %Y","%T","%H:%M( ?%p)?");
Locale.addEvent("change",function(s){if(Locale.get("Date")){b(s);}}).fireEvent("change",Locale.getCurrent());})();Date.implement({timeDiffInWords:function(a){return Date.distanceOfTimeInWords(this,a||new Date);
},timeDiff:function(f,c){if(f==null){f=new Date;}var h=((f-this)/1000).floor().abs();var e=[],a=[60,60,24,365,0],d=["s","m","h","d","y"],g,b;for(var i=0;
i<a.length;i++){if(i&&!h){break;}g=h;if((b=a[i])){g=(h%b);h=(h/b).floor();}e.unshift(g+(d[i]||""));}return e.join(c||":");}}).extend({distanceOfTimeInWords:function(b,a){return Date.getTimePhrase(((a-b)/1000).toInt());
},getTimePhrase:function(f){var d=(f<0)?"Until":"Ago";if(f<0){f*=-1;}var b={minute:60,hour:60,day:24,week:7,month:52/12,year:12,eon:Infinity};var e="lessThanMinute";
for(var c in b){var a=b[c];if(f<1.5*a){if(f>0.75*a){e=c;}break;}f/=a;e=c+"s";}f=f.round();return Date.getMsg(e+d,f).substitute({delta:f});}}).defineParsers({re:/^(?:tod|tom|yes)/i,handler:function(a){var b=new Date().clearTime();
switch(a[0]){case"tom":return b.increment();case"yes":return b.decrement();default:return b;}}},{re:/^(next|last) ([a-z]+)$/i,handler:function(e){var f=new Date().clearTime();
var b=f.getDay();var c=Date.parseDay(e[2],true);var a=c-b;if(c<=b){a+=7;}if(e[1]=="last"){a-=7;}return f.set("date",f.getDate()+a);}}).alias("timeAgoInWords","timeDiffInWords");
Locale.define("en-US","Number",{decimal:".",group:",",currency:{prefix:"$ "}});Number.implement({format:function(q){var n=this;q=q?Object.clone(q):{};var a=function(i){if(q[i]!=null){return q[i];
}return Locale.get("Number."+i);};var f=n<0,h=a("decimal"),k=a("precision"),o=a("group"),c=a("decimals");if(f){var e=a("negative")||{};if(e.prefix==null&&e.suffix==null){e.prefix="-";
}["prefix","suffix"].each(function(i){if(e[i]){q[i]=a(i)+e[i];}});n=-n;}var l=a("prefix"),p=a("suffix");if(c!==""&&c>=0&&c<=20){n=n.toFixed(c);}if(k>=1&&k<=21){n=(+n).toPrecision(k);
}n+="";var m;if(a("scientific")===false&&n.indexOf("e")>-1){var j=n.split("e"),b=+j[1];n=j[0].replace(".","");if(b<0){b=-b-1;m=j[0].indexOf(".");if(m>-1){b-=m-1;
}while(b--){n="0"+n;}n="0."+n;}else{m=j[0].lastIndexOf(".");if(m>-1){b-=j[0].length-m-1;}while(b--){n+="0";}}}if(h!="."){n=n.replace(".",h);}if(o){m=n.lastIndexOf(h);
m=(m>-1)?m:n.length;var d=n.substring(m),g=m;while(g--){if((m-g-1)%3==0&&g!=(m-1)){d=o+d;}d=n.charAt(g)+d;}n=d;}if(l){n=l+n;}if(p){n+=p;}return n;},formatCurrency:function(b){var a=Locale.get("Number.currency")||{};
if(a.scientific==null){a.scientific=false;}a.decimals=b!=null?b:(a.decimals==null?2:a.decimals);return this.format(a);},formatPercentage:function(b){var a=Locale.get("Number.percentage")||{};
if(a.suffix==null){a.suffix="%";}a.decimals=b!=null?b:(a.decimals==null?2:a.decimals);return this.format(a);}});(function(){var c={a:/[àáâãäåăą]/g,A:/[ÀÁÂÃÄÅĂĄ]/g,c:/[ćčç]/g,C:/[ĆČÇ]/g,d:/[ďđ]/g,D:/[ĎÐ]/g,e:/[èéêëěę]/g,E:/[ÈÉÊËĚĘ]/g,g:/[ğ]/g,G:/[Ğ]/g,i:/[ìíîï]/g,I:/[ÌÍÎÏ]/g,l:/[ĺľł]/g,L:/[ĹĽŁ]/g,n:/[ñňń]/g,N:/[ÑŇŃ]/g,o:/[òóôõöøő]/g,O:/[ÒÓÔÕÖØ]/g,r:/[řŕ]/g,R:/[ŘŔ]/g,s:/[ššş]/g,S:/[ŠŞŚ]/g,t:/[ťţ]/g,T:/[ŤŢ]/g,ue:/[ü]/g,UE:/[Ü]/g,u:/[ùúûůµ]/g,U:/[ÙÚÛŮ]/g,y:/[ÿý]/g,Y:/[ŸÝ]/g,z:/[žźż]/g,Z:/[ŽŹŻ]/g,th:/[þ]/g,TH:/[Þ]/g,dh:/[ð]/g,DH:/[Ð]/g,ss:/[ß]/g,oe:/[œ]/g,OE:/[Œ]/g,ae:/[æ]/g,AE:/[Æ]/g},b={" ":/[\xa0\u2002\u2003\u2009]/g,"*":/[\xb7]/g,"'":/[\u2018\u2019]/g,'"':/[\u201c\u201d]/g,"...":/[\u2026]/g,"-":/[\u2013]/g,"&raquo;":/[\uFFFD]/g};
var a=function(f,h){var e=f,g;for(g in h){e=e.replace(h[g],g);}return e;};var d=function(e,g){e=e||"";var h=g?"<"+e+"(?!\\w)[^>]*>([\\s\\S]*?)</"+e+"(?!\\w)>":"</?"+e+"([^>]+)?>",f=new RegExp(h,"gi");
return f;};String.implement({standardize:function(){return a(this,c);},repeat:function(e){return new Array(e+1).join(this);},pad:function(e,h,g){if(this.length>=e){return this;
}var f=(h==null?" ":""+h).repeat(e-this.length).substr(0,e-this.length);if(!g||g=="right"){return this+f;}if(g=="left"){return f+this;}return f.substr(0,(f.length/2).floor())+this+f.substr(0,(f.length/2).ceil());
},getTags:function(e,f){return this.match(d(e,f))||[];},stripTags:function(e,f){return this.replace(d(e,f),"");},tidy:function(){return a(this,b);},truncate:function(e,f,i){var h=this;
if(f==null&&arguments.length==1){f="…";}if(h.length>e){h=h.substring(0,e);if(i){var g=h.lastIndexOf(i);if(g!=-1){h=h.substr(0,g);}}if(f){h+=f;}}return h;
}});})();String.implement({parseQueryString:function(d,a){if(d==null){d=true;}if(a==null){a=true;}var c=this.split(/[&;]/),b={};if(!c.length){return b;
}c.each(function(i){var e=i.indexOf("=")+1,g=e?i.substr(e):"",f=e?i.substr(0,e-1).match(/([^\]\[]+|(\B)(?=\]))/g):[i],h=b;if(!f){return;}if(a){g=decodeURIComponent(g);
}f.each(function(k,j){if(d){k=decodeURIComponent(k);}var l=h[k];if(j<f.length-1){h=h[k]=l||{};}else{if(typeOf(l)=="array"){l.push(g);}else{h[k]=l!=null?[l,g]:g;
}}});});return b;},cleanQueryString:function(a){return this.split("&").filter(function(e){var b=e.indexOf("="),c=b<0?"":e.substr(0,b),d=e.substr(b+1);return a?a.call(null,c,d):(d||d===0);
}).join("&");}});(function(){var b=function(){return this.get("value");};var a=this.URI=new Class({Implements:Options,options:{},regex:/^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,parts:["scheme","user","password","host","port","directory","file","query","fragment"],schemes:{http:80,https:443,ftp:21,rtsp:554,mms:1755,file:0},initialize:function(d,c){this.setOptions(c);
var e=this.options.base||a.base;if(!d){d=e;}if(d&&d.parsed){this.parsed=Object.clone(d.parsed);}else{this.set("value",d.href||d.toString(),e?new a(e):false);
}},parse:function(e,d){var c=e.match(this.regex);if(!c){return false;}c.shift();return this.merge(c.associate(this.parts),d);},merge:function(d,c){if((!d||!d.scheme)&&(!c||!c.scheme)){return false;
}if(c){this.parts.every(function(e){if(d[e]){return false;}d[e]=c[e]||"";return true;});}d.port=d.port||this.schemes[d.scheme.toLowerCase()];d.directory=d.directory?this.parseDirectory(d.directory,c?c.directory:""):"/";
return d;},parseDirectory:function(d,e){d=(d.substr(0,1)=="/"?"":(e||"/"))+d;if(!d.test(a.regs.directoryDot)){return d;}var c=[];d.replace(a.regs.endSlash,"").split("/").each(function(f){if(f==".."&&c.length>0){c.pop();
}else{if(f!="."){c.push(f);}}});return c.join("/")+"/";},combine:function(c){return c.value||c.scheme+"://"+(c.user?c.user+(c.password?":"+c.password:"")+"@":"")+(c.host||"")+(c.port&&c.port!=this.schemes[c.scheme]?":"+c.port:"")+(c.directory||"/")+(c.file||"")+(c.query?"?"+c.query:"")+(c.fragment?"#"+c.fragment:"");
},set:function(d,f,e){if(d=="value"){var c=f.match(a.regs.scheme);if(c){c=c[1];}if(c&&this.schemes[c.toLowerCase()]==null){this.parsed={scheme:c,value:f};
}else{this.parsed=this.parse(f,(e||this).parsed)||(c?{scheme:c,value:f}:{value:f});}}else{if(d=="data"){this.setData(f);}else{this.parsed[d]=f;}}return this;
},get:function(c,d){switch(c){case"value":return this.combine(this.parsed,d?d.parsed:false);case"data":return this.getData();}return this.parsed[c]||"";
},go:function(){document.location.href=this.toString();},toURI:function(){return this;},getData:function(e,d){var c=this.get(d||"query");if(!(c||c===0)){return e?null:{};
}var f=c.parseQueryString();return e?f[e]:f;},setData:function(c,f,d){if(typeof c=="string"){var e=this.getData();e[arguments[0]]=arguments[1];c=e;}else{if(f){c=Object.merge(this.getData(),c);
}}return this.set(d||"query",Object.toQueryString(c));},clearData:function(c){return this.set(c||"query","");},toString:b,valueOf:b});a.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};
a.base=new a(Array.from(document.getElements("base[href]",true)).getLast(),{base:document.location});String.implement({toURI:function(c){return new a(this,c);
}});})();URI=Class.refactor(URI,{combine:function(f,e){if(!e||f.scheme!=e.scheme||f.host!=e.host||f.port!=e.port){return this.previous.apply(this,arguments);
}var a=f.file+(f.query?"?"+f.query:"")+(f.fragment?"#"+f.fragment:"");if(!e.directory){return(f.directory||(f.file?"":"./"))+a;}var d=e.directory.split("/"),c=f.directory.split("/"),g="",h;
var b=0;for(h=0;h<d.length&&h<c.length&&d[h]==c[h];h++){}for(b=0;b<d.length-h-1;b++){g+="../";}for(b=h;b<c.length-1;b++){g+=c[b]+"/";}return(g||(f.file?"":"./"))+a;
},toAbsolute:function(a){a=new URI(a);if(a){a.set("directory","").set("file","");}return this.toRelative(a);},toRelative:function(a){return this.get("value",new URI(a));
}});(function(){if(this.Hash){return;}var a=this.Hash=new Type("Hash",function(b){if(typeOf(b)=="hash"){b=Object.clone(b.getClean());}for(var c in b){this[c]=b[c];
}return this;});this.$H=function(b){return new a(b);};a.implement({forEach:function(b,c){Object.forEach(this,b,c);},getClean:function(){var c={};for(var b in this){if(this.hasOwnProperty(b)){c[b]=this[b];
}}return c;},getLength:function(){var c=0;for(var b in this){if(this.hasOwnProperty(b)){c++;}}return c;}});a.alias("each","forEach");a.implement({has:Object.prototype.hasOwnProperty,keyOf:function(b){return Object.keyOf(this,b);
},hasValue:function(b){return Object.contains(this,b);},extend:function(b){a.each(b||{},function(d,c){a.set(this,c,d);},this);return this;},combine:function(b){a.each(b||{},function(d,c){a.include(this,c,d);
},this);return this;},erase:function(b){if(this.hasOwnProperty(b)){delete this[b];}return this;},get:function(b){return(this.hasOwnProperty(b))?this[b]:null;
},set:function(b,c){if(!this[b]||this.hasOwnProperty(b)){this[b]=c;}return this;},empty:function(){a.each(this,function(c,b){delete this[b];},this);return this;
},include:function(b,c){if(this[b]==undefined){this[b]=c;}return this;},map:function(b,c){return new a(Object.map(this,b,c));},filter:function(b,c){return new a(Object.filter(this,b,c));
},every:function(b,c){return Object.every(this,b,c);},some:function(b,c){return Object.some(this,b,c);},getKeys:function(){return Object.keys(this);},getValues:function(){return Object.values(this);
},toQueryString:function(b){return Object.toQueryString(this,b);}});a.alias({indexOf:"keyOf",contains:"hasValue"});})();Hash.implement({getFromPath:function(a){return Object.getFromPath(this,a);
},cleanValues:function(a){return new Hash(Object.cleanValues(this,a));},run:function(){Object.run(arguments);}});Element.implement({tidy:function(){this.set("value",this.get("value").tidy());
},getTextInRange:function(b,a){return this.get("value").substring(b,a);},getSelectedText:function(){if(this.setSelectionRange){return this.getTextInRange(this.getSelectionStart(),this.getSelectionEnd());
}return document.selection.createRange().text;},getSelectedRange:function(){if(this.selectionStart!=null){return{start:this.selectionStart,end:this.selectionEnd};
}var e={start:0,end:0};var a=this.getDocument().selection.createRange();if(!a||a.parentElement()!=this){return e;}var c=a.duplicate();if(this.type=="text"){e.start=0-c.moveStart("character",-100000);
e.end=e.start+a.text.length;}else{var b=this.get("value");var d=b.length;c.moveToElementText(this);c.setEndPoint("StartToEnd",a);if(c.text.length){d-=b.match(/[\n\r]*$/)[0].length;
}e.end=d-c.text.length;c.setEndPoint("StartToStart",a);e.start=d-c.text.length;}return e;},getSelectionStart:function(){return this.getSelectedRange().start;
},getSelectionEnd:function(){return this.getSelectedRange().end;},setCaretPosition:function(a){if(a=="end"){a=this.get("value").length;}this.selectRange(a,a);
return this;},getCaretPosition:function(){return this.getSelectedRange().start;},selectRange:function(e,a){if(this.setSelectionRange){this.focus();this.setSelectionRange(e,a);
}else{var c=this.get("value");var d=c.substr(e,a-e).replace(/\r/g,"").length;e=c.substr(0,e).replace(/\r/g,"").length;var b=this.createTextRange();b.collapse(true);
b.moveEnd("character",e+d);b.moveStart("character",e);b.select();}return this;},insertAtCursor:function(b,a){var d=this.getSelectedRange();var c=this.get("value");
this.set("value",c.substring(0,d.start)+b+c.substring(d.end,c.length));if(a!==false){this.selectRange(d.start,d.start+b.length);}else{this.setCaretPosition(d.start+b.length);
}return this;},insertAroundCursor:function(b,a){b=Object.append({before:"",defaultMiddle:"",after:""},b);var c=this.getSelectedText()||b.defaultMiddle;
var g=this.getSelectedRange();var f=this.get("value");if(g.start==g.end){this.set("value",f.substring(0,g.start)+b.before+c+b.after+f.substring(g.end,f.length));
this.selectRange(g.start+b.before.length,g.end+b.before.length+c.length);}else{var d=f.substring(g.start,g.end);this.set("value",f.substring(0,g.start)+b.before+d+b.after+f.substring(g.end,f.length));
var e=g.start+b.before.length;if(a!==false){this.selectRange(e,e+d.length);}else{this.setCaretPosition(e+f.length);}}return this;}});Elements.from=function(e,d){if(d||d==null){e=e.stripScripts();
}var b,c=e.match(/^\s*<(t[dhr]|tbody|tfoot|thead)/i);if(c){b=new Element("table");var a=c[1].toLowerCase();if(["td","th","tr"].contains(a)){b=new Element("tbody").inject(b);
if(a!="tr"){b=new Element("tr").inject(b);}}}return(b||new Element("div")).set("html",e).getChildren();};(function(){var d={relay:false},c=["once","throttle","pause"],b=c.length;
while(b--){d[c[b]]=Events.lookupPseudo(c[b]);}DOMEvent.definePseudo=function(e,f){d[e]=f;return this;};var a=Element.prototype;[Element,Window,Document].invoke("implement",Events.Pseudos(d,a.addEvent,a.removeEvent));
})();(function(){var a="$moo:keys-pressed",b="$moo:keys-keyup";DOMEvent.definePseudo("keys",function(d,e,c){var g=c[0],f=[],h=this.retrieve(a,[]);f.append(d.value.replace("++",function(){f.push("+");
return"";}).split("+"));h.include(g.key);if(f.every(function(j){return h.contains(j);})){e.apply(this,c);}this.store(a,h);if(!this.retrieve(b)){var i=function(j){(function(){h=this.retrieve(a,[]).erase(j.key);
this.store(a,h);}).delay(0,this);};this.store(b,i).addEvent("keyup",i);}});DOMEvent.defineKeys({"16":"shift","17":"control","18":"alt","20":"capslock","33":"pageup","34":"pagedown","35":"end","36":"home","144":"numlock","145":"scrolllock","186":";","187":"=","188":",","190":".","191":"/","192":"`","219":"[","220":"\\","221":"]","222":"'","107":"+"}).defineKey(Browser.firefox?109:189,"-");
})();(function(){var b=function(e,d){var f=[];Object.each(d,function(g){Object.each(g,function(h){e.each(function(i){f.push(i+"-"+h+(i=="border"?"-width":""));
});});});return f;};var c=function(f,e){var d=0;Object.each(e,function(h,g){if(g.test(f)){d=d+h.toInt();}});return d;};var a=function(d){return !!(!d||d.offsetHeight||d.offsetWidth);
};Element.implement({measure:function(h){if(a(this)){return h.call(this);}var g=this.getParent(),e=[];while(!a(g)&&g!=document.body){e.push(g.expose());
g=g.getParent();}var f=this.expose(),d=h.call(this);f();e.each(function(i){i();});return d;},expose:function(){if(this.getStyle("display")!="none"){return function(){};
}var d=this.style.cssText;this.setStyles({display:"block",position:"absolute",visibility:"hidden"});return function(){this.style.cssText=d;}.bind(this);
},getDimensions:function(d){d=Object.merge({computeSize:false},d);var i={x:0,y:0};var h=function(j,e){return(e.computeSize)?j.getComputedSize(e):j.getSize();
};var f=this.getParent("body");if(f&&this.getStyle("display")=="none"){i=this.measure(function(){return h(this,d);});}else{if(f){try{i=h(this,d);}catch(g){}}}return Object.append(i,(i.x||i.x===0)?{width:i.x,height:i.y}:{x:i.width,y:i.height});
},getComputedSize:function(d){d=Object.merge({styles:["padding","border"],planes:{height:["top","bottom"],width:["left","right"]},mode:"both"},d);var g={},e={width:0,height:0},f;
if(d.mode=="vertical"){delete e.width;delete d.planes.width;}else{if(d.mode=="horizontal"){delete e.height;delete d.planes.height;}}b(d.styles,d.planes).each(function(h){g[h]=this.getStyle(h).toInt();
},this);Object.each(d.planes,function(i,h){var k=h.capitalize(),j=this.getStyle(h);if(j=="auto"&&!f){f=this.getDimensions();}j=g[h]=(j=="auto")?f[h]:j.toInt();
e["total"+k]=j;i.each(function(m){var l=c(m,g);e["computed"+m.capitalize()]=l;e["total"+k]+=l;});},this);return Object.append(e,g);}});})();(function(){var a=false,b=false;
var c=function(){var d=new Element("div").setStyles({position:"fixed",top:0,right:0}).inject(document.body);a=(d.offsetTop===0);d.dispose();b=true;};Element.implement({pin:function(h,f){if(!b){c();
}if(this.getStyle("display")=="none"){return this;}var j,k=window.getScroll(),l,e;if(h!==false){j=this.getPosition(a?document.body:this.getOffsetParent());
if(!this.retrieve("pin:_pinned")){var g={top:j.y-k.y,left:j.x-k.x};if(a&&!f){this.setStyle("position","fixed").setStyles(g);}else{l=this.getOffsetParent();
var i=this.getPosition(l),m=this.getStyles("left","top");if(l&&m.left=="auto"||m.top=="auto"){this.setPosition(i);}if(this.getStyle("position")=="static"){this.setStyle("position","absolute");
}i={x:m.left.toInt()-k.x,y:m.top.toInt()-k.y};e=function(){if(!this.retrieve("pin:_pinned")){return;}var n=window.getScroll();this.setStyles({left:i.x+n.x,top:i.y+n.y});
}.bind(this);this.store("pin:_scrollFixer",e);window.addEvent("scroll",e);}this.store("pin:_pinned",true);}}else{if(!this.retrieve("pin:_pinned")){return this;
}l=this.getParent();var d=(l.getComputedStyle("position")!="static"?l:l.getOffsetParent());j=this.getPosition(d);this.store("pin:_pinned",false);e=this.retrieve("pin:_scrollFixer");
if(!e){this.setStyles({position:"absolute",top:j.y+k.y,left:j.x+k.x});}else{this.store("pin:_scrollFixer",null);window.removeEvent("scroll",e);}this.removeClass("isPinned");
}return this;},unpin:function(){return this.pin(false);},togglePin:function(){return this.pin(!this.retrieve("pin:_pinned"));}});})();(function(b){var a=Element.Position={options:{relativeTo:document.body,position:{x:"center",y:"center"},offset:{x:0,y:0}},getOptions:function(d,c){c=Object.merge({},a.options,c);
a.setPositionOption(c);a.setEdgeOption(c);a.setOffsetOption(d,c);a.setDimensionsOption(d,c);return c;},setPositionOption:function(c){c.position=a.getCoordinateFromValue(c.position);
},setEdgeOption:function(d){var c=a.getCoordinateFromValue(d.edge);d.edge=c?c:(d.position.x=="center"&&d.position.y=="center")?{x:"center",y:"center"}:{x:"left",y:"top"};
},setOffsetOption:function(f,d){var c={x:0,y:0},g=f.measure(function(){return document.id(this.getOffsetParent());}),e=g.getScroll();if(!g||g==f.getDocument().body){return;
}c=g.measure(function(){var i=this.getPosition();if(this.getStyle("position")=="fixed"){var h=window.getScroll();i.x+=h.x;i.y+=h.y;}return i;});d.offset={parentPositioned:g!=document.id(d.relativeTo),x:d.offset.x-c.x+e.x,y:d.offset.y-c.y+e.y};
},setDimensionsOption:function(d,c){c.dimensions=d.getDimensions({computeSize:true,styles:["padding","border","margin"]});},getPosition:function(e,d){var c={};
d=a.getOptions(e,d);var f=document.id(d.relativeTo)||document.body;a.setPositionCoordinates(d,c,f);if(d.edge){a.toEdge(c,d);}var g=d.offset;c.left=((c.x>=0||g.parentPositioned||d.allowNegative)?c.x:0).toInt();
c.top=((c.y>=0||g.parentPositioned||d.allowNegative)?c.y:0).toInt();a.toMinMax(c,d);if(d.relFixedPosition||f.getStyle("position")=="fixed"){a.toRelFixedPosition(f,c);
}if(d.ignoreScroll){a.toIgnoreScroll(f,c);}if(d.ignoreMargins){a.toIgnoreMargins(c,d);}c.left=Math.ceil(c.left);c.top=Math.ceil(c.top);delete c.x;delete c.y;
return c;},setPositionCoordinates:function(k,g,d){var f=k.offset.y,h=k.offset.x,e=(d==document.body)?window.getScroll():d.getPosition(),j=e.y,c=e.x,i=window.getSize();
switch(k.position.x){case"left":g.x=c+h;break;case"right":g.x=c+h+d.offsetWidth;break;default:g.x=c+((d==document.body?i.x:d.offsetWidth)/2)+h;break;}switch(k.position.y){case"top":g.y=j+f;
break;case"bottom":g.y=j+f+d.offsetHeight;break;default:g.y=j+((d==document.body?i.y:d.offsetHeight)/2)+f;break;}},toMinMax:function(c,d){var f={left:"x",top:"y"},e;
["minimum","maximum"].each(function(g){["left","top"].each(function(h){e=d[g]?d[g][f[h]]:null;if(e!=null&&((g=="minimum")?c[h]<e:c[h]>e)){c[h]=e;}});});
},toRelFixedPosition:function(e,c){var d=window.getScroll();c.top+=d.y;c.left+=d.x;},toIgnoreScroll:function(e,d){var c=e.getScroll();d.top-=c.y;d.left-=c.x;
},toIgnoreMargins:function(c,d){c.left+=d.edge.x=="right"?d.dimensions["margin-right"]:(d.edge.x!="center"?-d.dimensions["margin-left"]:-d.dimensions["margin-left"]+((d.dimensions["margin-right"]+d.dimensions["margin-left"])/2));
c.top+=d.edge.y=="bottom"?d.dimensions["margin-bottom"]:(d.edge.y!="center"?-d.dimensions["margin-top"]:-d.dimensions["margin-top"]+((d.dimensions["margin-bottom"]+d.dimensions["margin-top"])/2));
},toEdge:function(c,d){var e={},g=d.dimensions,f=d.edge;switch(f.x){case"left":e.x=0;break;case"right":e.x=-g.x-g.computedRight-g.computedLeft;break;default:e.x=-(Math.round(g.totalWidth/2));
break;}switch(f.y){case"top":e.y=0;break;case"bottom":e.y=-g.y-g.computedTop-g.computedBottom;break;default:e.y=-(Math.round(g.totalHeight/2));break;}c.x+=e.x;
c.y+=e.y;},getCoordinateFromValue:function(c){if(typeOf(c)!="string"){return c;}c=c.toLowerCase();return{x:c.test("left")?"left":(c.test("right")?"right":"center"),y:c.test(/upper|top/)?"top":(c.test("bottom")?"bottom":"center")};
}};Element.implement({position:function(d){if(d&&(d.x!=null||d.y!=null)){return(b?b.apply(this,arguments):this);}var c=this.setStyle("position","absolute").calculatePosition(d);
return(d&&d.returnPos)?c:this.setStyles(c);},calculatePosition:function(c){return a.getPosition(this,c);}});})(Element.prototype.position);Element.implement({isDisplayed:function(){return this.getStyle("display")!="none";
},isVisible:function(){var a=this.offsetWidth,b=this.offsetHeight;return(a==0&&b==0)?false:(a>0&&b>0)?true:this.style.display!="none";},toggle:function(){return this[this.isDisplayed()?"hide":"show"]();
},hide:function(){var b;try{b=this.getStyle("display");}catch(a){}if(b=="none"){return this;}return this.store("element:_originalDisplay",b||"").setStyle("display","none");
},show:function(a){if(!a&&this.isDisplayed()){return this;}a=a||this.retrieve("element:_originalDisplay")||"block";return this.setStyle("display",(a=="none")?"block":a);
},swapClass:function(a,b){return this.removeClass(a).addClass(b);}});Document.implement({clearSelection:function(){if(window.getSelection){var a=window.getSelection();
if(a&&a.removeAllRanges){a.removeAllRanges();}}else{if(document.selection&&document.selection.empty){try{document.selection.empty();}catch(b){}}}}});var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:"iframeShim",src:'javascript:false;document.write("");',display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.ie6||(Browser.firefox&&Browser.version<3&&Browser.Platform.mac))},property:"IframeShim",initialize:function(b,a){this.element=document.id(b);
if(this.occlude()){return this.occluded;}this.setOptions(a);this.makeShim();return this;},makeShim:function(){if(this.options.browsers){var c=this.element.getStyle("zIndex").toInt();
if(!c){c=1;var b=this.element.getStyle("position");if(b=="static"||!b){this.element.setStyle("position","relative");}this.element.setStyle("zIndex",c);
}c=((this.options.zIndex!=null||this.options.zIndex===0)&&c>this.options.zIndex)?this.options.zIndex:c-1;if(c<0){c=1;}this.shim=new Element("iframe",{src:this.options.src,scrolling:"no",frameborder:0,styles:{zIndex:c,position:"absolute",border:"none",filter:"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"},"class":this.options.className}).store("IframeShim",this);
var a=(function(){this.shim.inject(this.element,"after");this[this.options.display?"show":"hide"]();this.fireEvent("inject");}).bind(this);if(!IframeShim.ready){window.addEvent("load",a);
}else{a();}}else{this.position=this.hide=this.show=this.dispose=Function.from(this);}},position:function(){if(!IframeShim.ready||!this.shim){return this;
}var a=this.element.measure(function(){return this.getSize();});if(this.options.margin!=undefined){a.x=a.x-(this.options.margin*2);a.y=a.y-(this.options.margin*2);
this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin;}this.shim.set({width:a.x,height:a.y}).position({relativeTo:this.element,offset:this.options.offset});
return this;},hide:function(){if(this.shim){this.shim.setStyle("display","none");}return this;},show:function(){if(this.shim){this.shim.setStyle("display","block");
}return this.position();},dispose:function(){if(this.shim){this.shim.dispose();}return this;},destroy:function(){if(this.shim){this.shim.destroy();}return this;
}});window.addEvent("load",function(){IframeShim.ready=true;});var Mask=new Class({Implements:[Options,Events],Binds:["position"],options:{style:{},"class":"mask",maskMargins:false,useIframeShim:true,iframeShimOptions:{}},initialize:function(b,a){this.target=document.id(b)||document.id(document.body);
this.target.store("mask",this);this.setOptions(a);this.render();this.inject();},render:function(){this.element=new Element("div",{"class":this.options["class"],id:this.options.id||"mask-"+String.uniqueID(),styles:Object.merge({},this.options.style,{display:"none"}),events:{click:function(a){this.fireEvent("click",a);
if(this.options.hideOnClick){this.hide();}}.bind(this)}});this.hidden=true;},toElement:function(){return this.element;},inject:function(b,a){a=a||(this.options.inject?this.options.inject.where:"")||this.target==document.body?"inside":"after";
b=b||(this.options.inject&&this.options.inject.target)||this.target;this.element.inject(b,a);if(this.options.useIframeShim){this.shim=new IframeShim(this.element,this.options.iframeShimOptions);
this.addEvents({show:this.shim.show.bind(this.shim),hide:this.shim.hide.bind(this.shim),destroy:this.shim.destroy.bind(this.shim)});}},position:function(){this.resize(this.options.width,this.options.height);
this.element.position({relativeTo:this.target,position:"topLeft",ignoreMargins:!this.options.maskMargins,ignoreScroll:this.target==document.body});return this;
},resize:function(a,e){var b={styles:["padding","border"]};if(this.options.maskMargins){b.styles.push("margin");}var d=this.target.getComputedSize(b);if(this.target==document.body){this.element.setStyles({width:0,height:0});
var c=window.getScrollSize();if(d.totalHeight<c.y){d.totalHeight=c.y;}if(d.totalWidth<c.x){d.totalWidth=c.x;}}this.element.setStyles({width:Array.pick([a,d.totalWidth,d.x]),height:Array.pick([e,d.totalHeight,d.y])});
return this;},show:function(){if(!this.hidden){return this;}window.addEvent("resize",this.position);this.position();this.showMask.apply(this,arguments);
return this;},showMask:function(){this.element.setStyle("display","block");this.hidden=false;this.fireEvent("show");},hide:function(){if(this.hidden){return this;
}window.removeEvent("resize",this.position);this.hideMask.apply(this,arguments);if(this.options.destroyOnHide){return this.destroy();}return this;},hideMask:function(){this.element.setStyle("display","none");
this.hidden=true;this.fireEvent("hide");},toggle:function(){this[this.hidden?"show":"hide"]();},destroy:function(){this.hide();this.element.destroy();this.fireEvent("destroy");
this.target.eliminate("mask");}});Element.Properties.mask={set:function(b){var a=this.retrieve("mask");if(a){a.destroy();}return this.eliminate("mask").store("mask:options",b);
},get:function(){var a=this.retrieve("mask");if(!a){a=new Mask(this,this.retrieve("mask:options"));this.store("mask",a);}return a;}};Element.implement({mask:function(a){if(a){this.set("mask",a);
}this.get("mask").show();return this;},unmask:function(){this.get("mask").hide();return this;}});var Spinner=new Class({Extends:Mask,Implements:Chain,options:{"class":"spinner",containerPosition:{},content:{"class":"spinner-content"},messageContainer:{"class":"spinner-msg"},img:{"class":"spinner-img"},fxOptions:{link:"chain"}},initialize:function(c,a){this.target=document.id(c)||document.id(document.body);
this.target.store("spinner",this);this.setOptions(a);this.render();this.inject();var b=function(){this.active=false;}.bind(this);this.addEvents({hide:b,show:b});
},render:function(){this.parent();this.element.set("id",this.options.id||"spinner-"+String.uniqueID());this.content=document.id(this.options.content)||new Element("div",this.options.content);
this.content.inject(this.element);if(this.options.message){this.msg=document.id(this.options.message)||new Element("p",this.options.messageContainer).appendText(this.options.message);
this.msg.inject(this.content);}if(this.options.img){this.img=document.id(this.options.img)||new Element("div",this.options.img);this.img.inject(this.content);
}this.element.set("tween",this.options.fxOptions);},show:function(a){if(this.active){return this.chain(this.show.bind(this));}if(!this.hidden){this.callChain.delay(20,this);
return this;}this.active=true;return this.parent(a);},showMask:function(a){var b=function(){this.content.position(Object.merge({relativeTo:this.element},this.options.containerPosition));
}.bind(this);if(a){this.parent();b();}else{if(!this.options.style.opacity){this.options.style.opacity=this.element.getStyle("opacity").toFloat();}this.element.setStyles({display:"block",opacity:0}).tween("opacity",this.options.style.opacity);
b();this.hidden=false;this.fireEvent("show");this.callChain();}},hide:function(a){if(this.active){return this.chain(this.hide.bind(this));}if(this.hidden){this.callChain.delay(20,this);
return this;}this.active=true;return this.parent(a);},hideMask:function(a){if(a){return this.parent();}this.element.tween("opacity",0).get("tween").chain(function(){this.element.setStyle("display","none");
this.hidden=true;this.fireEvent("hide");this.callChain();}.bind(this));},destroy:function(){this.content.destroy();this.parent();this.target.eliminate("spinner");
}});Request=Class.refactor(Request,{options:{useSpinner:false,spinnerOptions:{},spinnerTarget:false},initialize:function(a){this._send=this.send;this.send=function(b){var c=this.getSpinner();
if(c){c.chain(this._send.pass(b,this)).show();}else{this._send(b);}return this;};this.previous(a);},getSpinner:function(){if(!this.spinner){var b=document.id(this.options.spinnerTarget)||document.id(this.options.update);
if(this.options.useSpinner&&b){b.set("spinner",this.options.spinnerOptions);var a=this.spinner=b.get("spinner");["complete","exception","cancel"].each(function(c){this.addEvent(c,a.hide.bind(a));
},this);}}return this.spinner;}});Element.Properties.spinner={set:function(a){var b=this.retrieve("spinner");if(b){b.destroy();}return this.eliminate("spinner").store("spinner:options",a);
},get:function(){var a=this.retrieve("spinner");if(!a){a=new Spinner(this,this.retrieve("spinner:options"));this.store("spinner",a);}return a;}};Element.implement({spin:function(a){if(a){this.set("spinner",a);
}this.get("spinner").show();return this;},unspin:function(){this.get("spinner").hide();return this;}});if(!window.Form){window.Form={};}(function(){Form.Request=new Class({Binds:["onSubmit","onFormValidate"],Implements:[Options,Events,Class.Occlude],options:{requestOptions:{evalScripts:true,useSpinner:true,emulation:false,link:"ignore"},sendButtonClicked:true,extraData:{},resetForm:true},property:"form.request",initialize:function(b,c,a){this.element=document.id(b);
if(this.occlude()){return this.occluded;}this.setOptions(a).setTarget(c).attach();},setTarget:function(a){this.target=document.id(a);if(!this.request){this.makeRequest();
}else{this.request.setOptions({update:this.target});}return this;},toElement:function(){return this.element;},makeRequest:function(){var a=this;this.request=new Request.HTML(Object.merge({update:this.target,emulation:false,spinnerTarget:this.element,method:this.element.get("method")||"post"},this.options.requestOptions)).addEvents({success:function(c,e,d,b){["complete","success"].each(function(f){a.fireEvent(f,[a.target,c,e,d,b]);
});},failure:function(){a.fireEvent("complete",arguments).fireEvent("failure",arguments);},exception:function(){a.fireEvent("failure",arguments);}});return this.attachReset();
},attachReset:function(){if(!this.options.resetForm){return this;}this.request.addEvent("success",function(){Function.attempt(function(){this.element.reset();
}.bind(this));if(window.OverText){OverText.update();}}.bind(this));return this;},attach:function(a){var c=(a!=false)?"addEvent":"removeEvent";this.element[c]("click:relay(button, input[type=submit])",this.saveClickedButton.bind(this));
var b=this.element.retrieve("validator");if(b){b[c]("onFormValidate",this.onFormValidate);}else{this.element[c]("submit",this.onSubmit);}return this;},detach:function(){return this.attach(false);
},enable:function(){return this.attach();},disable:function(){return this.detach();},onFormValidate:function(c,b,a){if(!a){return;}var d=this.element.retrieve("validator");
if(c||(d&&!d.options.stopOnFailure)){a.stop();this.send();}},onSubmit:function(a){var b=this.element.retrieve("validator");if(b){this.element.removeEvent("submit",this.onSubmit);
b.addEvent("onFormValidate",this.onFormValidate);this.element.validate();return;}if(a){a.stop();}this.send();},saveClickedButton:function(b,c){var a=c.get("name");
if(!a||!this.options.sendButtonClicked){return;}this.options.extraData[a]=c.get("value")||true;this.clickedCleaner=function(){delete this.options.extraData[a];
this.clickedCleaner=function(){};}.bind(this);},clickedCleaner:function(){},send:function(){var b=this.element.toQueryString().trim(),a=Object.toQueryString(this.options.extraData);
if(b){b+="&"+a;}else{b=a;}this.fireEvent("send",[this.element,b.parseQueryString()]);this.request.send({data:b,url:this.options.requestOptions.url||this.element.get("action")});
this.clickedCleaner();return this;}});Element.implement("formUpdate",function(c,b){var a=this.retrieve("form.request");if(!a){a=new Form.Request(this,c,b);
}else{if(c){a.setTarget(c);}if(b){a.setOptions(b).makeRequest();}}a.send();return this;});})();(function(){var a=function(d){var b=d.options.hideInputs;
if(window.OverText){var c=[null];OverText.each(function(e){c.include("."+e.options.labelClass);});if(c){b+=c.join(", ");}}return(b)?d.element.getElements(b):null;
};Fx.Reveal=new Class({Extends:Fx.Morph,options:{link:"cancel",styles:["padding","border","margin"],transitionOpacity:!Browser.ie6,mode:"vertical",display:function(){return this.element.get("tag")!="tr"?"block":"table-row";
},opacity:1,hideInputs:Browser.ie?"select, input, textarea, object, embed":null},dissolve:function(){if(!this.hiding&&!this.showing){if(this.element.getStyle("display")!="none"){this.hiding=true;
this.showing=false;this.hidden=true;this.cssText=this.element.style.cssText;var d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});
if(this.options.transitionOpacity){d.opacity=this.options.opacity;}var c={};Object.each(d,function(f,e){c[e]=[f,0];});this.element.setStyles({display:Function.from(this.options.display).call(this),overflow:"hidden"});
var b=a(this);if(b){b.setStyle("visibility","hidden");}this.$chain.unshift(function(){if(this.hidden){this.hiding=false;this.element.style.cssText=this.cssText;
this.element.setStyle("display","none");if(b){b.setStyle("visibility","visible");}}this.fireEvent("hide",this.element);this.callChain();}.bind(this));this.start(c);
}else{this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element);}}else{if(this.options.link=="chain"){this.chain(this.dissolve.bind(this));
}else{if(this.options.link=="cancel"&&!this.hiding){this.cancel();this.dissolve();}}}return this;},reveal:function(){if(!this.showing&&!this.hiding){if(this.element.getStyle("display")=="none"){this.hiding=false;
this.showing=true;this.hidden=false;this.cssText=this.element.style.cssText;var d;this.element.measure(function(){d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});
}.bind(this));if(this.options.heightOverride!=null){d.height=this.options.heightOverride.toInt();}if(this.options.widthOverride!=null){d.width=this.options.widthOverride.toInt();
}if(this.options.transitionOpacity){this.element.setStyle("opacity",0);d.opacity=this.options.opacity;}var c={height:0,display:Function.from(this.options.display).call(this)};
Object.each(d,function(f,e){c[e]=0;});c.overflow="hidden";this.element.setStyles(c);var b=a(this);if(b){b.setStyle("visibility","hidden");}this.$chain.unshift(function(){this.element.style.cssText=this.cssText;
this.element.setStyle("display",Function.from(this.options.display).call(this));if(!this.hidden){this.showing=false;}if(b){b.setStyle("visibility","visible");
}this.callChain();this.fireEvent("show",this.element);}.bind(this));this.start(d);}else{this.callChain();this.fireEvent("complete",this.element);this.fireEvent("show",this.element);
}}else{if(this.options.link=="chain"){this.chain(this.reveal.bind(this));}else{if(this.options.link=="cancel"&&!this.showing){this.cancel();this.reveal();
}}}return this;},toggle:function(){if(this.element.getStyle("display")=="none"){this.reveal();}else{this.dissolve();}return this;},cancel:function(){this.parent.apply(this,arguments);
if(this.cssText!=null){this.element.style.cssText=this.cssText;}this.hiding=false;this.showing=false;return this;}});Element.Properties.reveal={set:function(b){this.get("reveal").cancel().setOptions(b);
return this;},get:function(){var b=this.retrieve("reveal");if(!b){b=new Fx.Reveal(this);this.store("reveal",b);}return b;}};Element.Properties.dissolve=Element.Properties.reveal;
Element.implement({reveal:function(b){this.get("reveal").setOptions(b).reveal();return this;},dissolve:function(b){this.get("reveal").setOptions(b).dissolve();
return this;},nix:function(b){var c=Array.link(arguments,{destroy:Type.isBoolean,options:Type.isObject});this.get("reveal").setOptions(b).dissolve().chain(function(){this[c.destroy?"destroy":"dispose"]();
}.bind(this));return this;},wink:function(){var c=Array.link(arguments,{duration:Type.isNumber,options:Type.isObject});var b=this.get("reveal").setOptions(c.options);
b.reveal().chain(function(){(function(){b.dissolve();}).delay(c.duration||2000);});}});})();Form.Request.Append=new Class({Extends:Form.Request,options:{useReveal:true,revealOptions:{},inject:"bottom"},makeRequest:function(){this.request=new Request.HTML(Object.merge({url:this.element.get("action"),method:this.element.get("method")||"post",spinnerTarget:this.element},this.options.requestOptions,{evalScripts:false})).addEvents({success:function(b,g,f,a){var c;
var d=Elements.from(f);if(d.length==1){c=d[0];}else{c=new Element("div",{styles:{display:"none"}}).adopt(d);}c.inject(this.target,this.options.inject);
if(this.options.requestOptions.evalScripts){Browser.exec(a);}this.fireEvent("beforeEffect",c);var e=function(){this.fireEvent("success",[c,this.target,b,g,f,a]);
}.bind(this);if(this.options.useReveal){c.set("reveal",this.options.revealOptions).get("reveal").chain(e);c.reveal();}else{e();}}.bind(this),failure:function(a){this.fireEvent("failure",a);
}.bind(this)});this.attachReset();}});Locale.define("en-US","FormValidator",{required:"This field is required.",length:"Please enter {length} characters (you entered {elLength} characters)",minLength:"Please enter at least {minLength} characters (you entered {length} characters).",maxLength:"Please enter no more than {maxLength} characters (you entered {length} characters).",integer:"Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.",numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',digits:"Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).",alpha:"Please use only letters (a-z) within this field. No spaces or other characters are allowed.",alphanum:"Please use only letters (a-z) or numbers (0-9) in this field. No spaces or other characters are allowed.",dateSuchAs:"Please enter a valid date such as {date}",dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',email:'Please enter a valid email address. For example "fred@domain.com".',url:"Please enter a valid URL such as http://www.example.com.",currencyDollar:"Please enter a valid $ amount. For example $100.00 .",oneRequired:"Please enter something for at least one of these inputs.",errorPrefix:"Error: ",warningPrefix:"Warning: ",noSpace:"There can be no spaces in this input.",reqChkByNode:"No items are selected.",requiredChk:"This field is required.",reqChkByName:"Please select a {label}.",match:"This field needs to match the {matchName} field",startDate:"the start date",endDate:"the end date",currendDate:"the current date",afterDate:"The date should be the same or after {label}.",beforeDate:"The date should be the same or before {label}.",startMonth:"Please select a start month",sameMonth:"These two dates must be in the same month - you must change one or the other.",creditcard:"The credit card number entered is invalid. Please check the number and try again. {length} digits entered."});
if(!window.Form){window.Form={};}var InputValidator=this.InputValidator=new Class({Implements:[Options],options:{errorMsg:"Validation failed.",test:Function.from(true)},initialize:function(b,a){this.setOptions(a);
this.className=b;},test:function(b,a){b=document.id(b);return(b)?this.options.test(b,a||this.getProps(b)):false;},getError:function(c,a){c=document.id(c);
var b=this.options.errorMsg;if(typeOf(b)=="function"){b=b(c,a||this.getProps(c));}return b;},getProps:function(a){a=document.id(a);return(a)?a.get("validatorProps"):{};
}});Element.Properties.validators={get:function(){return(this.get("data-validators")||this.className).clean().split(" ");}};Element.Properties.validatorProps={set:function(a){return this.eliminate("$moo:validatorProps").store("$moo:validatorProps",a);
},get:function(a){if(a){this.set(a);}if(this.retrieve("$moo:validatorProps")){return this.retrieve("$moo:validatorProps");}if(this.getProperty("data-validator-properties")||this.getProperty("validatorProps")){try{this.store("$moo:validatorProps",JSON.decode(this.getProperty("validatorProps")||this.getProperty("data-validator-properties")));
}catch(c){return{};}}else{var b=this.get("validators").filter(function(d){return d.test(":");});if(!b.length){this.store("$moo:validatorProps",{});}else{a={};
b.each(function(d){var f=d.split(":");if(f[1]){try{a[f[0]]=JSON.decode(f[1]);}catch(g){}}});this.store("$moo:validatorProps",a);}}return this.retrieve("$moo:validatorProps");
}};Form.Validator=new Class({Implements:[Options,Events],Binds:["onSubmit"],options:{fieldSelectors:"input, select, textarea",ignoreHidden:true,ignoreDisabled:true,useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,stopOnFailure:true,warningPrefix:function(){return Form.Validator.getMsg("warningPrefix")||"Warning: ";
},errorPrefix:function(){return Form.Validator.getMsg("errorPrefix")||"Error: ";}},initialize:function(b,a){this.setOptions(a);this.element=document.id(b);
this.element.store("validator",this);this.warningPrefix=Function.from(this.options.warningPrefix)();this.errorPrefix=Function.from(this.options.errorPrefix)();
if(this.options.evaluateOnSubmit){this.element.addEvent("submit",this.onSubmit);}if(this.options.evaluateFieldsOnBlur||this.options.evaluateFieldsOnChange){this.watchFields(this.getFields());
}},toElement:function(){return this.element;},getFields:function(){return(this.fields=this.element.getElements(this.options.fieldSelectors));},watchFields:function(a){a.each(function(b){if(this.options.evaluateFieldsOnBlur){b.addEvent("blur",this.validationMonitor.pass([b,false],this));
}if(this.options.evaluateFieldsOnChange){b.addEvent("change",this.validationMonitor.pass([b,true],this));}},this);},validationMonitor:function(){clearTimeout(this.timer);
this.timer=this.validateField.delay(50,this,arguments);},onSubmit:function(a){if(this.validate(a)){this.reset();}},reset:function(){this.getFields().each(this.resetField,this);
return this;},validate:function(b){var a=this.getFields().map(function(c){return this.validateField(c,true);},this).every(function(c){return c;});this.fireEvent("formValidate",[a,this.element,b]);
if(this.options.stopOnFailure&&!a&&b){b.preventDefault();}return a;},validateField:function(j,b){if(this.paused){return true;}j=document.id(j);var f=!j.hasClass("validation-failed");
var g,i;if(this.options.serial&&!b){g=this.element.getElement(".validation-failed");i=this.element.getElement(".warning");}if(j&&(!g||b||j.hasClass("validation-failed")||(g&&!this.options.serial))){var a=j.get("validators");
var d=a.some(function(k){return this.getValidator(k);},this);var h=[];a.each(function(k){if(k&&!this.test(k,j)){h.include(k);}},this);f=h.length===0;if(d&&!this.hasValidator(j,"warnOnly")){if(f){j.addClass("validation-passed").removeClass("validation-failed");
this.fireEvent("elementPass",[j]);}else{j.addClass("validation-failed").removeClass("validation-passed");this.fireEvent("elementFail",[j,h]);}}if(!i){var e=a.some(function(k){if(k.test("^warn")){return this.getValidator(k.replace(/^warn-/,""));
}else{return null;}},this);j.removeClass("warning");var c=a.map(function(k){if(k.test("^warn")){return this.test(k.replace(/^warn-/,""),j,true);}else{return null;
}},this);}}return f;},test:function(b,d,e){d=document.id(d);if((this.options.ignoreHidden&&!d.isVisible())||(this.options.ignoreDisabled&&d.get("disabled"))){return true;
}var a=this.getValidator(b);if(e!=null){e=false;}if(this.hasValidator(d,"warnOnly")){e=true;}var c=this.hasValidator(d,"ignoreValidation")||(a?a.test(d):true);
if(a&&d.isVisible()){this.fireEvent("elementValidate",[c,d,b,e]);}if(e){return true;}return c;},hasValidator:function(b,a){return b.get("validators").contains(a);
},resetField:function(a){a=document.id(a);if(a){a.get("validators").each(function(b){if(b.test("^warn-")){b=b.replace(/^warn-/,"");}a.removeClass("validation-failed");
a.removeClass("warning");a.removeClass("validation-passed");},this);}return this;},stop:function(){this.paused=true;return this;},start:function(){this.paused=false;
return this;},ignoreField:function(a,b){a=document.id(a);if(a){this.enforceField(a);if(b){a.addClass("warnOnly");}else{a.addClass("ignoreValidation");}}return this;
},enforceField:function(a){a=document.id(a);if(a){a.removeClass("warnOnly").removeClass("ignoreValidation");}return this;}});Form.Validator.getMsg=function(a){return Locale.get("FormValidator."+a);
};Form.Validator.adders={validators:{},add:function(b,a){this.validators[b]=new InputValidator(b,a);if(!this.initialize){this.implement({validators:this.validators});
}},addAllThese:function(a){Array.from(a).each(function(b){this.add(b[0],b[1]);},this);},getValidator:function(a){return this.validators[a.split(":")[0]];
}};Object.append(Form.Validator,Form.Validator.adders);Form.Validator.implement(Form.Validator.adders);Form.Validator.add("IsEmpty",{errorMsg:false,test:function(a){if(a.type=="select-one"||a.type=="select"){return !(a.selectedIndex>=0&&a.options[a.selectedIndex].value!="");
}else{return((a.get("value")==null)||(a.get("value").length==0));}}});Form.Validator.addAllThese([["required",{errorMsg:function(){return Form.Validator.getMsg("required");
},test:function(a){return !Form.Validator.getValidator("IsEmpty").test(a);}}],["length",{errorMsg:function(a,b){if(typeOf(b.length)!="null"){return Form.Validator.getMsg("length").substitute({length:b.length,elLength:a.get("value").length});
}else{return"";}},test:function(a,b){if(typeOf(b.length)!="null"){return(a.get("value").length==b.length||a.get("value").length==0);}else{return true;}}}],["minLength",{errorMsg:function(a,b){if(typeOf(b.minLength)!="null"){return Form.Validator.getMsg("minLength").substitute({minLength:b.minLength,length:a.get("value").length});
}else{return"";}},test:function(a,b){if(typeOf(b.minLength)!="null"){return(a.get("value").length>=(b.minLength||0));}else{return true;}}}],["maxLength",{errorMsg:function(a,b){if(typeOf(b.maxLength)!="null"){return Form.Validator.getMsg("maxLength").substitute({maxLength:b.maxLength,length:a.get("value").length});
}else{return"";}},test:function(a,b){return a.get("value").length<=(b.maxLength||10000);}}],["validate-integer",{errorMsg:Form.Validator.getMsg.pass("integer"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^(-?[1-9]\d*|0)$/).test(a.get("value"));
}}],["validate-numeric",{errorMsg:Form.Validator.getMsg.pass("numeric"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(a.get("value"));
}}],["validate-digits",{errorMsg:Form.Validator.getMsg.pass("digits"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^[\d() .:\-\+#]+$/.test(a.get("value")));
}}],["validate-alpha",{errorMsg:Form.Validator.getMsg.pass("alpha"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^[a-zA-Z]+$/).test(a.get("value"));
}}],["validate-alphanum",{errorMsg:Form.Validator.getMsg.pass("alphanum"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||!(/\W/).test(a.get("value"));
}}],["validate-date",{errorMsg:function(a,b){if(Date.parse){var c=b.dateFormat||"%x";return Form.Validator.getMsg("dateSuchAs").substitute({date:new Date().format(c)});
}else{return Form.Validator.getMsg("dateInFormatMDY");}},test:function(e,g){if(Form.Validator.getValidator("IsEmpty").test(e)){return true;}var a=Locale.getCurrent().sets.Date,b=new RegExp([a.days,a.days_abbr,a.months,a.months_abbr].flatten().join("|"),"i"),i=e.get("value"),f=i.match(/[a-z]+/gi);
if(f&&!f.every(b.exec,b)){return false;}var c=Date.parse(i),h=g.dateFormat||"%x",d=c.format(h);if(d!="invalid date"){e.set("value",d);}return c.isValid();
}}],["validate-email",{errorMsg:Form.Validator.getMsg.pass("email"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+\/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i).test(a.get("value"));
}}],["validate-url",{errorMsg:Form.Validator.getMsg.pass("url"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(a.get("value"));
}}],["validate-currency-dollar",{errorMsg:Form.Validator.getMsg.pass("currencyDollar"),test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(a.get("value"));
}}],["validate-one-required",{errorMsg:Form.Validator.getMsg.pass("oneRequired"),test:function(a,b){var c=document.id(b["validate-one-required"])||a.getParent(b["validate-one-required"]);
return c.getElements("input").some(function(d){if(["checkbox","radio"].contains(d.get("type"))){return d.get("checked");}return d.get("value");});}}]]);
Element.Properties.validator={set:function(a){this.get("validator").setOptions(a);},get:function(){var a=this.retrieve("validator");if(!a){a=new Form.Validator(this);
this.store("validator",a);}return a;}};Element.implement({validate:function(a){if(a){this.set("validator",a);}return this.get("validator").validate();}});
Form.Validator.Inline=new Class({Extends:Form.Validator,options:{showError:function(a){if(a.reveal){a.reveal();}else{a.setStyle("display","block");}},hideError:function(a){if(a.dissolve){a.dissolve();
}else{a.setStyle("display","none");}},scrollToErrorsOnSubmit:true,scrollToErrorsOnBlur:false,scrollToErrorsOnChange:false,scrollFxOptions:{transition:"quad:out",offset:{y:-20}}},initialize:function(b,a){this.parent(b,a);
this.addEvent("onElementValidate",function(g,f,e,h){var d=this.getValidator(e);if(!g&&d.getError(f)){if(h){f.addClass("warning");}var c=this.makeAdvice(e,f,d.getError(f),h);
this.insertAdvice(c,f);this.showAdvice(e,f);}else{this.hideAdvice(e,f);}});},makeAdvice:function(d,f,c,g){var e=(g)?this.warningPrefix:this.errorPrefix;
e+=(this.options.useTitles)?f.title||c:c;var a=(g)?"warning-advice":"validation-advice";var b=this.getAdvice(d,f);if(b){b=b.set("html",e);}else{b=new Element("div",{html:e,styles:{display:"none"},id:"advice-"+d.split(":")[0]+"-"+this.getFieldId(f)}).addClass(a);
}f.store("$moo:advice-"+d,b);return b;},getFieldId:function(a){return a.id?a.id:a.id="input_"+a.name;},showAdvice:function(b,c){var a=this.getAdvice(b,c);
if(a&&!c.retrieve("$moo:"+this.getPropName(b))&&(a.getStyle("display")=="none"||a.getStyle("visiblity")=="hidden"||a.getStyle("opacity")==0)){c.store("$moo:"+this.getPropName(b),true);
this.options.showError(a);this.fireEvent("showAdvice",[c,a,b]);}},hideAdvice:function(b,c){var a=this.getAdvice(b,c);if(a&&c.retrieve("$moo:"+this.getPropName(b))){c.store("$moo:"+this.getPropName(b),false);
this.options.hideError(a);this.fireEvent("hideAdvice",[c,a,b]);}},getPropName:function(a){return"advice"+a;},resetField:function(a){a=document.id(a);if(!a){return this;
}this.parent(a);a.get("validators").each(function(b){this.hideAdvice(b,a);},this);return this;},getAllAdviceMessages:function(d,c){var b=[];if(d.hasClass("ignoreValidation")&&!c){return b;
}var a=d.get("validators").some(function(g){var e=g.test("^warn-")||d.hasClass("warnOnly");if(e){g=g.replace(/^warn-/,"");}var f=this.getValidator(g);if(!f){return;
}b.push({message:f.getError(d),warnOnly:e,passed:f.test(),validator:f});},this);return b;},getAdvice:function(a,b){return b.retrieve("$moo:advice-"+a);
},insertAdvice:function(a,c){var b=c.get("validatorProps");if(!b.msgPos||!document.id(b.msgPos)){if(c.type&&c.type.toLowerCase()=="radio"){c.getParent().adopt(a);
}else{a.inject(document.id(c),"after");}}else{document.id(b.msgPos).grab(a);}},validateField:function(g,f,b){var a=this.parent(g,f);if(((this.options.scrollToErrorsOnSubmit&&b==null)||b)&&!a){var c=document.id(this).getElement(".validation-failed");
var d=document.id(this).getParent();while(d!=document.body&&d.getScrollSize().y==d.getSize().y){d=d.getParent();}var e=d.retrieve("$moo:fvScroller");if(!e&&window.Fx&&Fx.Scroll){e=new Fx.Scroll(d,this.options.scrollFxOptions);
d.store("$moo:fvScroller",e);}if(c){if(e){e.toElement(c);}else{d.scrollTo(d.getScroll().x,c.getPosition(d).y-20);}}}return a;},watchFields:function(a){a.each(function(b){if(this.options.evaluateFieldsOnBlur){b.addEvent("blur",this.validationMonitor.pass([b,false,this.options.scrollToErrorsOnBlur],this));
}if(this.options.evaluateFieldsOnChange){b.addEvent("change",this.validationMonitor.pass([b,true,this.options.scrollToErrorsOnChange],this));}},this);}});
Form.Validator.addAllThese([["validate-enforce-oncheck",{test:function(a,b){var c=a.getParent("form").retrieve("validator");if(!c){return true;}(b.toEnforce||document.id(b.enforceChildrenOf).getElements("input, select, textarea")).map(function(d){if(a.checked){c.enforceField(d);
}else{c.ignoreField(d);c.resetField(d);}});return true;}}],["validate-ignore-oncheck",{test:function(a,b){var c=a.getParent("form").retrieve("validator");
if(!c){return true;}(b.toIgnore||document.id(b.ignoreChildrenOf).getElements("input, select, textarea")).each(function(d){if(a.checked){c.ignoreField(d);
c.resetField(d);}else{c.enforceField(d);}});return true;}}],["validate-nospace",{errorMsg:function(){return Form.Validator.getMsg("noSpace");},test:function(a,b){return !a.get("value").test(/\s/);
}}],["validate-toggle-oncheck",{test:function(b,c){var d=b.getParent("form").retrieve("validator");if(!d){return true;}var a=c.toToggle||document.id(c.toToggleChildrenOf).getElements("input, select, textarea");
if(!b.checked){a.each(function(e){d.ignoreField(e);d.resetField(e);});}else{a.each(function(e){d.enforceField(e);});}return true;}}],["validate-reqchk-bynode",{errorMsg:function(){return Form.Validator.getMsg("reqChkByNode");
},test:function(a,b){return(document.id(b.nodeId).getElements(b.selector||"input[type=checkbox], input[type=radio]")).some(function(c){return c.checked;
});}}],["validate-required-check",{errorMsg:function(a,b){return b.useTitle?a.get("title"):Form.Validator.getMsg("requiredChk");},test:function(a,b){return !!a.checked;
}}],["validate-reqchk-byname",{errorMsg:function(a,b){return Form.Validator.getMsg("reqChkByName").substitute({label:b.label||a.get("type")});},test:function(b,d){var c=d.groupName||b.get("name");
var a=$$(document.getElementsByName(c)).some(function(g,f){return g.checked;});var e=b.getParent("form").retrieve("validator");if(a&&e){e.resetField(b);
}return a;}}],["validate-match",{errorMsg:function(a,b){return Form.Validator.getMsg("match").substitute({matchName:b.matchName||document.id(b.matchInput).get("name")});
},test:function(b,c){var d=b.get("value");var a=document.id(c.matchInput)&&document.id(c.matchInput).get("value");return d&&a?d==a:true;}}],["validate-after-date",{errorMsg:function(a,b){return Form.Validator.getMsg("afterDate").substitute({label:b.afterLabel||(b.afterElement?Form.Validator.getMsg("startDate"):Form.Validator.getMsg("currentDate"))});
},test:function(b,c){var d=document.id(c.afterElement)?Date.parse(document.id(c.afterElement).get("value")):new Date();var a=Date.parse(b.get("value"));
return a&&d?a>=d:true;}}],["validate-before-date",{errorMsg:function(a,b){return Form.Validator.getMsg("beforeDate").substitute({label:b.beforeLabel||(b.beforeElement?Form.Validator.getMsg("endDate"):Form.Validator.getMsg("currentDate"))});
},test:function(b,c){var d=Date.parse(b.get("value"));var a=document.id(c.beforeElement)?Date.parse(document.id(c.beforeElement).get("value")):new Date();
return a&&d?a>=d:true;}}],["validate-custom-required",{errorMsg:function(){return Form.Validator.getMsg("required");},test:function(a,b){return a.get("value")!=b.emptyValue;
}}],["validate-same-month",{errorMsg:function(a,b){var c=document.id(b.sameMonthAs)&&document.id(b.sameMonthAs).get("value");var d=a.get("value");if(d!=""){return Form.Validator.getMsg(c?"sameMonth":"startMonth");
}},test:function(a,b){var d=Date.parse(a.get("value"));var c=Date.parse(document.id(b.sameMonthAs)&&document.id(b.sameMonthAs).get("value"));return d&&c?d.format("%B")==c.format("%B"):true;
}}],["validate-cc-num",{errorMsg:function(a){var b=a.get("value").replace(/[^0-9]/g,"");return Form.Validator.getMsg("creditcard").substitute({length:b.length});
},test:function(c){if(Form.Validator.getValidator("IsEmpty").test(c)){return true;}var g=c.get("value");g=g.replace(/[^0-9]/g,"");var a=false;if(g.test(/^4[0-9]{12}([0-9]{3})?$/)){a="Visa";
}else{if(g.test(/^5[1-5]([0-9]{14})$/)){a="Master Card";}else{if(g.test(/^3[47][0-9]{13}$/)){a="American Express";}else{if(g.test(/^6011[0-9]{12}$/)){a="Discover";
}}}}if(a){var d=0;var e=0;for(var b=g.length-1;b>=0;--b){e=g.charAt(b).toInt();if(e==0){continue;}if((g.length-b)%2==0){e+=e;}if(e>9){e=e.toString().charAt(0).toInt()+e.toString().charAt(1).toInt();
}d+=e;}if((d%10)==0){return true;}}var f="";while(g!=""){f+=" "+g.substr(0,4);g=g.substr(4);}c.getParent("form").retrieve("validator").ignoreField(c);c.set("value",f.clean());
c.getParent("form").retrieve("validator").enforceField(c);return false;}}]]);var OverText=new Class({Implements:[Options,Events,Class.Occlude],Binds:["reposition","assert","focus","hide"],options:{element:"label",labelClass:"overTxtLabel",positionOptions:{position:"upperLeft",edge:"upperLeft",offset:{x:4,y:2}},poll:false,pollInterval:250,wrap:false},property:"OverText",initialize:function(b,a){b=this.element=document.id(b);
if(this.occlude()){return this.occluded;}this.setOptions(a);this.attach(b);OverText.instances.push(this);if(this.options.poll){this.poll();}},toElement:function(){return this.element;
},attach:function(){var b=this.element,a=this.options,c=a.textOverride||b.get("alt")||b.get("title");if(!c){return this;}var d=this.text=new Element(a.element,{"class":a.labelClass,styles:{lineHeight:"normal",position:"absolute",cursor:"text"},html:c,events:{click:this.hide.pass(a.element=="label",this)}}).inject(b,"after");
if(a.element=="label"){if(!b.get("id")){b.set("id","input_"+String.uniqueID());}d.set("for",b.get("id"));}if(a.wrap){this.textHolder=new Element("div.overTxtWrapper",{styles:{lineHeight:"normal",position:"relative"}}).grab(d).inject(b,"before");
}return this.enable();},destroy:function(){this.element.eliminate(this.property);this.disable();if(this.text){this.text.destroy();}if(this.textHolder){this.textHolder.destroy();
}return this;},disable:function(){this.element.removeEvents({focus:this.focus,blur:this.assert,change:this.assert});window.removeEvent("resize",this.reposition);
this.hide(true,true);return this;},enable:function(){this.element.addEvents({focus:this.focus,blur:this.assert,change:this.assert});window.addEvent("resize",this.reposition);
this.reposition();return this;},wrap:function(){if(this.options.element=="label"){if(!this.element.get("id")){this.element.set("id","input_"+String.uniqueID());
}this.text.set("for",this.element.get("id"));}},startPolling:function(){this.pollingPaused=false;return this.poll();},poll:function(a){if(this.poller&&!a){return this;
}if(a){clearInterval(this.poller);}else{this.poller=(function(){if(!this.pollingPaused){this.assert(true);}}).periodical(this.options.pollInterval,this);
}return this;},stopPolling:function(){this.pollingPaused=true;return this.poll(true);},focus:function(){if(this.text&&(!this.text.isDisplayed()||this.element.get("disabled"))){return this;
}return this.hide();},hide:function(c,a){if(this.text&&(this.text.isDisplayed()&&(!this.element.get("disabled")||a))){this.text.hide();this.fireEvent("textHide",[this.text,this.element]);
this.pollingPaused=true;if(!c){try{this.element.fireEvent("focus");this.element.focus();}catch(b){}}}return this;},show:function(){if(this.text&&!this.text.isDisplayed()){this.text.show();
this.reposition();this.fireEvent("textShow",[this.text,this.element]);this.pollingPaused=false;}return this;},test:function(){return !this.element.get("value");
},assert:function(a){return this[this.test()?"show":"hide"](a);},reposition:function(){this.assert(true);if(!this.element.isVisible()){return this.stopPolling().hide();
}if(this.text&&this.test()){this.text.position(Object.merge(this.options.positionOptions,{relativeTo:this.element}));}return this;}});OverText.instances=[];
Object.append(OverText,{each:function(a){return OverText.instances.each(function(c,b){if(c.element&&c.text){a.call(OverText,c,b);}});},update:function(){return OverText.each(function(a){return a.reposition();
});},hideAll:function(){return OverText.each(function(a){return a.hide(true,true);});},showAll:function(){return OverText.each(function(a){return a.show();
});}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a);},compute:function(g,h,j){var c={};
for(var d in g){var a=g[d],e=h[d],f=c[d]={};for(var b in a){f[b]=this.parent(a[b],e[b],j);}}return c;},set:function(b){for(var c in b){if(!this.elements[c]){continue;
}var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit);}}return this;},start:function(c){if(!this.check(c)){return this;}var h={},j={};
for(var d in c){if(!this.elements[d]){continue;}var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);a[b]=e.from;
g[b]=e.to;}}return this.parent(h,j);}});Fx.Accordion=new Class({Extends:Fx.Elements,options:{fixedHeight:false,fixedWidth:false,display:0,show:false,height:true,width:false,opacity:true,alwaysHide:false,trigger:"click",initialDisplayFx:true,resetHeight:true},initialize:function(){var g=function(h){return h!=null;
};var f=Array.link(arguments,{container:Type.isElement,options:Type.isObject,togglers:g,elements:g});this.parent(f.elements,f.options);var b=this.options,e=this.togglers=$$(f.togglers);
this.previous=-1;this.internalChain=new Chain();if(b.alwaysHide){this.options.link="chain";}if(b.show||this.options.show===0){b.display=false;this.previous=b.show;
}if(b.start){b.display=false;b.show=false;}var d=this.effects={};if(b.opacity){d.opacity="fullOpacity";}if(b.width){d.width=b.fixedWidth?"fullWidth":"offsetWidth";
}if(b.height){d.height=b.fixedHeight?"fullHeight":"scrollHeight";}for(var c=0,a=e.length;c<a;c++){this.addSection(e[c],this.elements[c]);}this.elements.each(function(j,h){if(b.show===h){this.fireEvent("active",[e[h],j]);
}else{for(var k in d){j.setStyle(k,0);}}},this);if(b.display||b.display===0||b.initialDisplayFx===false){this.display(b.display,b.initialDisplayFx);}if(b.fixedHeight!==false){b.resetHeight=false;
}this.addEvent("complete",this.internalChain.callChain.bind(this.internalChain));},addSection:function(g,d){g=document.id(g);d=document.id(d);this.togglers.include(g);
this.elements.include(d);var f=this.togglers,c=this.options,h=f.contains(g),a=f.indexOf(g),b=this.display.pass(a,this);g.store("accordion:display",b).addEvent(c.trigger,b);
if(c.height){d.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(c.width){d.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
}d.fullOpacity=1;if(c.fixedWidth){d.fullWidth=c.fixedWidth;}if(c.fixedHeight){d.fullHeight=c.fixedHeight;}d.setStyle("overflow","hidden");if(!h){for(var e in this.effects){d.setStyle(e,0);
}}return this;},removeSection:function(f,b){var e=this.togglers,a=e.indexOf(f),c=this.elements[a];var d=function(){e.erase(f);this.elements.erase(c);this.detach(f);
}.bind(this);if(this.now==a||b!=null){this.display(b!=null?b:(a-1>=0?a-1:0)).chain(d);}else{d();}return this;},detach:function(b){var a=function(c){c.removeEvent(this.options.trigger,c.retrieve("accordion:display"));
}.bind(this);if(!b){this.togglers.each(a);}else{a(b);}return this;},display:function(b,c){if(!this.check(b,c)){return this;}var h={},g=this.elements,a=this.options,f=this.effects;
if(c==null){c=true;}if(typeOf(b)=="element"){b=g.indexOf(b);}if(b==this.previous&&!a.alwaysHide){return this;}if(a.resetHeight){var e=g[this.previous];
if(e&&!this.selfHidden){for(var d in f){e.setStyle(d,e[f[d]]);}}}if((this.timer&&a.link=="chain")||(b===this.previous&&!a.alwaysHide)){return this;}this.previous=b;
this.selfHidden=false;g.each(function(l,k){h[k]={};var j;if(k!=b){j=true;}else{if(a.alwaysHide&&((l.offsetHeight>0&&a.height)||l.offsetWidth>0&&a.width)){j=true;
this.selfHidden=true;}}this.fireEvent(j?"background":"active",[this.togglers[k],l]);for(var m in f){h[k][m]=j?0:l[f[m]];}if(!c&&!j&&a.resetHeight){h[k].height="auto";
}},this);this.internalChain.clearChain();this.internalChain.chain(function(){if(a.resetHeight&&!this.selfHidden){var i=g[b];if(i){i.setStyle("height","auto");
}}}.bind(this));return c?this.start(h):this.set(h).internalChain.callChain();}});Fx.Move=new Class({Extends:Fx.Morph,options:{relativeTo:document.body,position:"center",edge:false,offset:{x:0,y:0}},start:function(a){var b=this.element,c=b.getStyles("top","left");
if(c.top=="auto"||c.left=="auto"){b.setPosition(b.getPosition(b.getOffsetParent()));}return this.parent(b.position(Object.merge({},this.options,a,{returnPos:true})));
}});Element.Properties.move={set:function(a){this.get("move").cancel().setOptions(a);return this;},get:function(){var a=this.retrieve("move");if(!a){a=new Fx.Move(this,{link:"cancel"});
this.store("move",a);}return a;}};Element.implement({move:function(a){this.get("move").start(a);return this;}});(function(){Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(c,b){this.element=this.subject=document.id(c);
this.parent(b);if(typeOf(this.element)!="element"){this.element=document.id(this.element.getDocument().body);}if(this.options.wheelStops){var d=this.element,e=this.cancel.pass(false,this);
this.addEvent("start",function(){d.addEvent("mousewheel",e);},true);this.addEvent("complete",function(){d.removeEvent("mousewheel",e);},true);}},set:function(){var b=Array.flatten(arguments);
if(Browser.firefox){b=[Math.round(b[0]),Math.round(b[1])];}this.element.scrollTo(b[0],b[1]);return this;},compute:function(d,c,b){return[0,1].map(function(e){return Fx.compute(d[e],c[e],b);
});},start:function(c,d){if(!this.check(c,d)){return this;}var b=this.element.getScroll();return this.parent([b.x,b.y],[c,d]);},calculateScroll:function(g,f){var d=this.element,b=d.getScrollSize(),h=d.getScroll(),j=d.getSize(),c=this.options.offset,i={x:g,y:f};
for(var e in i){if(!i[e]&&i[e]!==0){i[e]=h[e];}if(typeOf(i[e])!="number"){i[e]=b[e]-j[e];}i[e]+=c[e];}return[i.x,i.y];},toTop:function(){return this.start.apply(this,this.calculateScroll(false,0));
},toLeft:function(){return this.start.apply(this,this.calculateScroll(0,false));},toRight:function(){return this.start.apply(this,this.calculateScroll("right",false));
},toBottom:function(){return this.start.apply(this,this.calculateScroll(false,"bottom"));},toElement:function(d,e){e=e?Array.from(e):["x","y"];var c=a(this.element)?{x:0,y:0}:this.element.getScroll();
var b=Object.map(document.id(d).getPosition(this.element),function(g,f){return e.contains(f)?g+c[f]:false;});return this.start.apply(this,this.calculateScroll(b.x,b.y));
},toElementEdge:function(d,g,e){g=g?Array.from(g):["x","y"];d=document.id(d);var i={},f=d.getPosition(this.element),j=d.getSize(),h=this.element.getScroll(),b=this.element.getSize(),c={x:f.x+j.x,y:f.y+j.y};
["x","y"].each(function(k){if(g.contains(k)){if(c[k]>h[k]+b[k]){i[k]=c[k]-b[k];}if(f[k]<h[k]){i[k]=f[k];}}if(i[k]==null){i[k]=h[k];}if(e&&e[k]){i[k]=i[k]+e[k];
}},this);if(i.x!=h.x||i.y!=h.y){this.start(i.x,i.y);}return this;},toElementCenter:function(e,f,h){f=f?Array.from(f):["x","y"];e=document.id(e);var i={},c=e.getPosition(this.element),d=e.getSize(),b=this.element.getScroll(),g=this.element.getSize();
["x","y"].each(function(j){if(f.contains(j)){i[j]=c[j]-(g[j]-d[j])/2;}if(i[j]==null){i[j]=b[j];}if(h&&h[j]){i[j]=i[j]+h[j];}},this);if(i.x!=b.x||i.y!=b.y){this.start(i.x,i.y);
}return this;}});function a(b){return(/^(?:body|html)$/i).test(b.tagName);}})();Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical",wrapper:false,hideOverflow:true,resetHeight:false},initialize:function(b,a){b=this.element=this.subject=document.id(b);
this.parent(a);a=this.options;var d=b.retrieve("wrapper"),c=b.getStyles("margin","position","overflow");if(a.hideOverflow){c=Object.append(c,{overflow:"hidden"});
}if(a.wrapper){d=document.id(a.wrapper).setStyles(c);}if(!d){d=new Element("div",{styles:c}).wraps(b);}b.store("wrapper",d).setStyle("margin",0);if(b.getStyle("overflow")=="visible"){b.setStyle("overflow","hidden");
}this.now=[];this.open=true;this.wrapper=d;this.addEvent("complete",function(){this.open=(d["offset"+this.layout.capitalize()]!=0);if(this.open&&this.options.resetHeight){d.setStyle("height","");
}},true);},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";
this.layout="width";this.offset=this.element.offsetWidth;},set:function(a){this.element.setStyle(this.margin,a[0]);this.wrapper.setStyle(this.layout,a[1]);
return this;},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a);});},start:function(b,e){if(!this.check(b,e)){return this;
}this[e||this.options.mode]();var d=this.element.getStyle(this.margin).toInt(),c=this.wrapper.getStyle(this.layout).toInt(),a=[[d,c],[0,this.offset]],g=[[d,c],[-this.offset,0]],f;
switch(b){case"in":f=a;break;case"out":f=g;break;case"toggle":f=(c==0)?a:g;}return this.parent(f[0],f[1]);},slideIn:function(a){return this.start("in",a);
},slideOut:function(a){return this.start("out",a);},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(a){this[a||this.options.mode]();
this.open=true;return this.set([0,this.offset]);},toggle:function(a){return this.start("toggle",a);}});Element.Properties.slide={set:function(a){this.get("slide").cancel().setOptions(a);
return this;},get:function(){var a=this.retrieve("slide");if(!a){a=new Fx.Slide(this,{link:"cancel"});this.store("slide",a);}return a;}};Element.implement({slide:function(d,e){d=d||"toggle";
var b=this.get("slide"),a;switch(d){case"hide":b.hide(e);break;case"show":b.show(e);break;case"toggle":var c=this.retrieve("slide:flag",b.open);b[c?"slideOut":"slideIn"](e);
this.store("slide:flag",!c);a=true;break;default:b.start(d,e);}if(!a){this.eliminate("slide:flag");}return this;}});Fx.SmoothScroll=new Class({Extends:Fx.Scroll,options:{axes:["x","y"]},initialize:function(c,d){d=d||document;
this.doc=d.getDocument();this.parent(this.doc,c);var e=d.getWindow(),a=e.location.href.match(/^[^#]*/)[0]+"#",b=$$(this.options.links||this.doc.links);
b.each(function(g){if(g.href.indexOf(a)!=0){return;}var f=g.href.substr(a.length);if(f){this.useLink(g,f);}},this);this.addEvent("complete",function(){e.location.hash=this.anchor;
this.element.scrollTo(this.to[0],this.to[1]);},true);},useLink:function(b,a){b.addEvent("click",function(d){var c=document.id(a)||this.doc.getElement("a[name="+a+"]");
if(!c){return;}d.preventDefault();this.toElement(c,this.options.axes).chain(function(){this.fireEvent("scrolledTo",[b,c]);}.bind(this));this.anchor=a;}.bind(this));
return this;}});Fx.Sort=new Class({Extends:Fx.Elements,options:{mode:"vertical"},initialize:function(b,a){this.parent(b,a);this.elements.each(function(c){if(c.getStyle("position")=="static"){c.setStyle("position","relative");
}});this.setDefaultOrder();},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(b,a){return a;});},sort:function(){if(!this.check(arguments)){return this;
}var e=Array.flatten(arguments);var i=0,a=0,c={},h={},d=this.options.mode=="vertical";var f=this.elements.map(function(m,k){var l=m.getComputedSize({styles:["border","padding","margin"]});
var n;if(d){n={top:i,margin:l["margin-top"],height:l.totalHeight};i+=n.height-l["margin-top"];}else{n={left:a,margin:l["margin-left"],width:l.totalWidth};
a+=n.width;}var j=d?"top":"left";h[k]={};var o=m.getStyle(j).toInt();h[k][j]=o||0;return n;},this);this.set(h);e=e.map(function(j){return j.toInt();});
if(e.length!=this.elements.length){this.currentOrder.each(function(j){if(!e.contains(j)){e.push(j);}});if(e.length>this.elements.length){e.splice(this.elements.length-1,e.length-this.elements.length);
}}var b=0;i=a=0;e.each(function(k){var j={};if(d){j.top=i-f[k].top-b;i+=f[k].height;}else{j.left=a-f[k].left;a+=f[k].width;}b=b+f[k].margin;c[k]=j;},this);
var g={};Array.clone(e).sort().each(function(j){g[j]=c[j];});this.start(g);this.currentOrder=e;return this;},rearrangeDOM:function(a){a=a||this.currentOrder;
var b=this.elements[0].getParent();var c=[];this.elements.setStyle("opacity",0);a.each(function(d){c.push(this.elements[d].inject(b).setStyles({top:0,left:0}));
},this);this.elements.setStyle("opacity",1);this.elements=$$(c);this.setDefaultOrder();return this;},getDefaultOrder:function(){return this.elements.map(function(b,a){return a;
});},getCurrentOrder:function(){return this.currentOrder;},forward:function(){return this.sort(this.getDefaultOrder());},backward:function(){return this.sort(this.getDefaultOrder().reverse());
},reverse:function(){return this.sort(this.currentOrder.reverse());},sortByElements:function(a){return this.sort(a.map(function(b){return this.elements.indexOf(b);
},this));},swap:function(c,b){if(typeOf(c)=="element"){c=this.elements.indexOf(c);}if(typeOf(b)=="element"){b=this.elements.indexOf(b);}var a=Array.clone(this.currentOrder);
a[this.currentOrder.indexOf(c)]=b;a[this.currentOrder.indexOf(b)]=c;return this.sort(a);}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,stopPropagation:false,modifiers:{x:"left",y:"top"}},initialize:function(){var b=Array.link(arguments,{options:Type.isObject,element:function(c){return c!=null;
}});this.element=document.id(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=typeOf(this.options.handle);this.handles=((a=="array"||a=="collection")?$$(this.options.handle):document.id(this.options.handle))||this.element;
this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.ie)?"selectstart":"mousedown";if(Browser.ie&&!Drag.ondragstartFixed){document.ondragstart=Function.from(false);
Drag.ondragstartFixed=true;}this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:Function.from(false)};
this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);
return this;},start:function(a){var j=this.options;if(a.rightClick){return;}if(j.preventDefault){a.preventDefault();}if(j.stopPropagation){a.stopPropagation();
}this.mouse.start=a.page;this.fireEvent("beforeStart",this.element);var c=j.limit;this.limit={x:[],y:[]};var e,g;for(e in j.modifiers){if(!j.modifiers[e]){continue;
}var b=this.element.getStyle(j.modifiers[e]);if(b&&!b.match(/px$/)){if(!g){g=this.element.getCoordinates(this.element.getOffsetParent());}b=g[j.modifiers[e]];
}if(j.style){this.value.now[e]=(b||0).toInt();}else{this.value.now[e]=this.element[j.modifiers[e]];}if(j.invert){this.value.now[e]*=-1;}this.mouse.pos[e]=a.page[e]-this.value.now[e];
if(c&&c[e]){var d=2;while(d--){var f=c[e][d];if(f||f===0){this.limit[e][d]=(typeof f=="function")?f():f;}}}}if(typeOf(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};
}var h={mousemove:this.bound.check,mouseup:this.bound.cancel};h[this.selection]=this.bound.eventStop;this.document.addEvents(h);},check:function(a){if(this.options.preventDefault){a.preventDefault();
}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});
this.fireEvent("start",[this.element,a]).fireEvent("snap",this.element);}},drag:function(b){var a=this.options;if(a.preventDefault){b.preventDefault();
}this.mouse.now=b.page;for(var c in a.modifiers){if(!a.modifiers[c]){continue;}this.value.now[c]=this.mouse.now[c]-this.mouse.pos[c];if(a.invert){this.value.now[c]*=-1;
}if(a.limit&&this.limit[c]){if((this.limit[c][1]||this.limit[c][1]===0)&&(this.value.now[c]>this.limit[c][1])){this.value.now[c]=this.limit[c][1];}else{if((this.limit[c][0]||this.limit[c][0]===0)&&(this.value.now[c]<this.limit[c][0])){this.value.now[c]=this.limit[c][0];
}}}if(a.grid[c]){this.value.now[c]-=((this.value.now[c]-(this.limit[c][0]||0))%a.grid[c]);}if(a.style){this.element.setStyle(a.modifiers[c],this.value.now[c]+a.unit);
}else{this.element[a.modifiers[c]]=this.value.now[c];}}this.fireEvent("drag",[this.element,b]);},cancel:function(a){this.document.removeEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});
if(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element);}},stop:function(b){var a={mousemove:this.bound.drag,mouseup:this.bound.stop};
a[this.selection]=this.bound.eventStop;this.document.removeEvents(a);if(b){this.fireEvent("complete",[this.element,b]);}}});Element.implement({makeResizable:function(a){var b=new Drag(this,Object.merge({modifiers:{x:"width",y:"height"}},a));
this.store("resizer",b);return b.addEvent("drag",function(){this.fireEvent("resize",b);}.bind(this));}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false,precalculate:false,includeMargins:true,checkDroppables:true},initialize:function(b,a){this.parent(b,a);
b=this.element;this.droppables=$$(this.options.droppables);this.container=document.id(this.options.container);if(this.container&&typeOf(this.container)!="element"){this.container=document.id(this.container.getDocument().body);
}if(this.options.style){if(this.options.modifiers.x=="left"&&this.options.modifiers.y=="top"){var c=b.getOffsetParent(),d=b.getStyles("left","top");if(c&&(d.left=="auto"||d.top=="auto")){b.setPosition(b.getPosition(c));
}}if(b.getStyle("position")=="static"){b.setStyle("position","absolute");}}this.addEvent("start",this.checkDroppables,true);this.overed=null;},start:function(a){if(this.container){this.options.limit=this.calculateLimit();
}if(this.options.precalculate){this.positions=this.droppables.map(function(b){return b.getCoordinates();});}this.parent(a);},calculateLimit:function(){var j=this.element,e=this.container,d=document.id(j.getOffsetParent())||document.body,h=e.getCoordinates(d),c={},b={},k={},g={},m={};
["top","right","bottom","left"].each(function(q){c[q]=j.getStyle("margin-"+q).toInt();b[q]=j.getStyle("border-"+q).toInt();k[q]=e.getStyle("margin-"+q).toInt();
g[q]=e.getStyle("border-"+q).toInt();m[q]=d.getStyle("padding-"+q).toInt();},this);var f=j.offsetWidth+c.left+c.right,p=j.offsetHeight+c.top+c.bottom,i=0,l=0,o=h.right-g.right-f,a=h.bottom-g.bottom-p;
if(this.options.includeMargins){i+=c.left;l+=c.top;}else{o+=c.right;a+=c.bottom;}if(j.getStyle("position")=="relative"){var n=j.getCoordinates(d);n.left-=j.getStyle("left").toInt();
n.top-=j.getStyle("top").toInt();i-=n.left;l-=n.top;if(e.getStyle("position")!="relative"){i+=g.left;l+=g.top;}o+=c.left-n.left;a+=c.top-n.top;if(e!=d){i+=k.left+m.left;
l+=((Browser.ie6||Browser.ie7)?0:k.top)+m.top;}}else{i-=c.left;l-=c.top;if(e!=d){i+=h.left+g.left;l+=h.top+g.top;}}return{x:[i,o],y:[l,a]};},getDroppableCoordinates:function(c){var b=c.getCoordinates();
if(c.getStyle("position")=="fixed"){var a=window.getScroll();b.left+=a.x;b.right+=a.x;b.top+=a.y;b.bottom+=a.y;}return b;},checkDroppables:function(){var a=this.droppables.filter(function(d,c){d=this.positions?this.positions[c]:this.getDroppableCoordinates(d);
var b=this.mouse.now;return(b.x>d.left&&b.x<d.right&&b.y<d.bottom&&b.y>d.top);},this).getLast();if(this.overed!=a){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);
}if(a){this.fireEvent("enter",[this.element,a]);}this.overed=a;}},drag:function(a){this.parent(a);if(this.options.checkDroppables&&this.droppables.length){this.checkDroppables();
}},stop:function(a){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed,a]);this.overed=null;return this.parent(a);}});Element.implement({makeDraggable:function(a){var b=new Drag.Move(this,a);
this.store("dragger",b);return b;}});var Slider=new Class({Implements:[Events,Options],Binds:["clickedElement","draggedKnob","scrolledElement"],options:{onTick:function(a){this.setKnobPosition(a);
},initialStep:0,snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(f,a,e){this.setOptions(e);e=this.options;this.element=document.id(f);
a=this.knob=document.id(a);this.previousChange=this.previousEnd=this.step=-1;var b={},d={x:false,y:false};switch(e.mode){case"vertical":this.axis="y";this.property="top";
this.offset="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";this.offset="offsetWidth";}this.setSliderDimensions();this.setRange(e.range);
if(a.getStyle("position")=="static"){a.setStyle("position","relative");}a.setStyle(this.property,-e.offset);d[this.axis]=this.property;b[this.axis]=[-e.offset,this.full-e.offset];
var c={snap:0,limit:b,modifiers:d,onDrag:this.draggedKnob,onStart:this.draggedKnob,onBeforeStart:(function(){this.isDragging=true;}).bind(this),onCancel:function(){this.isDragging=false;
}.bind(this),onComplete:function(){this.isDragging=false;this.draggedKnob();this.end();}.bind(this)};if(e.snap){this.setSnap(c);}this.drag=new Drag(a,c);
this.attach();if(e.initialStep!=null){this.set(e.initialStep);}},attach:function(){this.element.addEvent("mousedown",this.clickedElement);if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement);
}this.drag.attach();return this;},detach:function(){this.element.removeEvent("mousedown",this.clickedElement).removeEvent("mousewheel",this.scrolledElement);
this.drag.detach();return this;},autosize:function(){this.setSliderDimensions().setKnobPosition(this.toPosition(this.step));this.drag.options.limit[this.axis]=[-this.options.offset,this.full-this.options.offset];
if(this.options.snap){this.setSnap();}return this;},setSnap:function(a){if(!a){a=this.drag.options;}a.grid=Math.ceil(this.stepWidth);a.limit[this.axis][1]=this.full;
return this;},setKnobPosition:function(a){if(this.options.snap){a=this.toPosition(this.step);}this.knob.setStyle(this.property,a);return this;},setSliderDimensions:function(){this.full=this.element.measure(function(){this.half=this.knob[this.offset]/2;
return this.element[this.offset]-this.knob[this.offset]+(this.options.offset*2);}.bind(this));return this;},set:function(a){if(!((this.range>0)^(a<this.min))){a=this.min;
}if(!((this.range>0)^(a>this.max))){a=this.max;}this.step=Math.round(a);return this.checkStep().fireEvent("tick",this.toPosition(this.step)).end();},setRange:function(a,b){this.min=Array.pick([a[0],0]);
this.max=Array.pick([a[1],this.options.steps]);this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;
this.stepWidth=this.stepSize*this.full/Math.abs(this.range);if(a){this.set(Array.pick([b,this.step]).floor(this.min).max(this.max));}return this;},clickedElement:function(c){if(this.isDragging||c.target==this.knob){return;
}var b=this.range<0?-1:1,a=c.page[this.axis]-this.element.getPosition()[this.axis]-this.half;a=a.limit(-this.options.offset,this.full-this.options.offset);
this.step=Math.round(this.min+b*this.toStep(a));this.checkStep().fireEvent("tick",a).end();},scrolledElement:function(a){var b=(this.options.mode=="horizontal")?(a.wheel<0):(a.wheel>0);
this.set(this.step+(b?-1:1)*this.stepSize);a.stop();},draggedKnob:function(){var b=this.range<0?-1:1,a=this.drag.value.now[this.axis];a=a.limit(-this.options.offset,this.full-this.options.offset);
this.step=Math.round(this.min+b*this.toStep(a));this.checkStep();},checkStep:function(){var a=this.step;if(this.previousChange!=a){this.previousChange=a;
this.fireEvent("change",a);}return this;},end:function(){var a=this.step;if(this.previousEnd!==a){this.previousEnd=a;this.fireEvent("complete",a+"");}return this;
},toStep:function(a){var b=(a+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(b-=b%this.stepSize):b;},toPosition:function(a){return(this.full*Math.abs(this.min-a))/(this.steps*this.stepSize)-this.options.offset;
}});var Sortables=new Class({Implements:[Events,Options],options:{opacity:1,clone:false,revert:false,handle:false,dragOptions:{}},initialize:function(a,b){this.setOptions(b);
this.elements=[];this.lists=[];this.idle=true;this.addLists($$(document.id(a)||a));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,Object.merge({duration:250,link:"cancel"},this.options.revert));
}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(a){this.elements.push(a);
var b=a.retrieve("sortables:start",function(c){this.start.call(this,c,a);}.bind(this));(this.options.handle?a.getElement(this.options.handle)||a:a).addEvent("mousedown",b);
},this);return this;},addLists:function(){Array.flatten(arguments).each(function(a){this.lists.include(a);this.addItems(a.getChildren());},this);return this;
},removeItems:function(){return $$(Array.flatten(arguments).map(function(a){this.elements.erase(a);var b=a.retrieve("sortables:start");(this.options.handle?a.getElement(this.options.handle)||a:a).removeEvent("mousedown",b);
return a;},this));},removeLists:function(){return $$(Array.flatten(arguments).map(function(a){this.lists.erase(a);this.removeItems(a.getChildren());return a;
},this));},getClone:function(b,a){if(!this.options.clone){return new Element(a.tagName).inject(document.body);}if(typeOf(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list);
}var c=a.clone(true).setStyles({margin:0,position:"absolute",visibility:"hidden",width:a.getStyle("width")}).addEvent("mousedown",function(d){a.fireEvent("mousedown",d);
});if(c.get("html").test("radio")){c.getElements("input[type=radio]").each(function(d,e){d.set("name","clone_"+e);if(d.get("checked")){a.getElements("input[type=radio]")[e].set("checked",true);
}});}return c.inject(this.list).setPosition(a.getPosition(a.getOffsetParent()));},getDroppables:function(){var a=this.list.getChildren().erase(this.clone).erase(this.element);
if(!this.options.constrain){a.append(this.lists).erase(this.list);}return a;},insert:function(c,b){var a="inside";if(this.lists.contains(b)){this.list=b;
this.drag.droppables=this.getDroppables();}else{a=this.element.getAllPrevious().contains(b)?"before":"after";}this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone]);
},start:function(b,a){if(!this.idle||b.rightClick||["button","input","a","textarea"].contains(b.target.get("tag"))){return;}this.idle=false;this.element=a;
this.opacity=a.getStyle("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,Object.merge({droppables:this.getDroppables()},this.options.dragOptions)).addEvents({onSnap:function(){b.stop();
this.clone.setStyle("visibility","visible");this.element.setStyle("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]);
}.bind(this),onEnter:this.insert.bind(this),onCancel:this.end.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(b);
},end:function(){this.drag.detach();this.element.setStyle("opacity",this.opacity);if(this.effect){var b=this.element.getStyles("width","height"),d=this.clone,c=d.computePosition(this.element.getPosition(this.clone.getOffsetParent()));
var a=function(){this.removeEvent("cancel",a);d.destroy();};this.effect.element=d;this.effect.start({top:c.top,left:c.left,width:b.width,height:b.height,opacity:0.25}).addEvent("cancel",a).chain(a);
}else{this.clone.destroy();}this.reset();},reset:function(){this.idle=true;this.fireEvent("complete",this.element);},serialize:function(){var c=Array.link(arguments,{modifier:Type.isFunction,index:function(d){return d!=null;
}});var b=this.lists.map(function(d){return d.getChildren().map(c.modifier||function(e){return e.get("id");},this);},this);var a=c.index;if(this.lists.length==1){a=0;
}return(a||a===0)&&a>=0&&a<this.lists.length?b[a]:b;}});Request.JSONP=new Class({Implements:[Chain,Events,Options],options:{onRequest:function(a){if(this.options.log&&window.console&&console.log){console.log("JSONP retrieving script with url:"+a);
}},onError:function(a){if(this.options.log&&window.console&&console.warn){console.warn("JSONP "+a+" will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs");
}},url:"",callbackKey:"callback",injectScript:document.head,data:"",link:"ignore",timeout:0,log:false},initialize:function(a){this.setOptions(a);},send:function(c){if(!Request.prototype.check.call(this,c)){return this;
}this.running=true;var d=typeOf(c);if(d=="string"||d=="element"){c={data:c};}c=Object.merge(this.options,c||{});var e=c.data;switch(typeOf(e)){case"element":e=document.id(e).toQueryString();
break;case"object":case"hash":e=Object.toQueryString(e);}var b=this.index=Request.JSONP.counter++;var f=c.url+(c.url.test("\\?")?"&":"?")+(c.callbackKey)+"=Request.JSONP.request_map.request_"+b+(e?"&"+e:"");
if(f.length>2083){this.fireEvent("error",f);}Request.JSONP.request_map["request_"+b]=function(){this.success(arguments,b);}.bind(this);var a=this.getScript(f).inject(c.injectScript);
this.fireEvent("request",[f,a]);if(c.timeout){this.timeout.delay(c.timeout,this);}return this;},getScript:function(a){if(!this.script){this.script=new Element("script",{type:"text/javascript",async:true,src:a});
}return this.script;},success:function(b,a){if(!this.running){return;}this.clear().fireEvent("complete",b).fireEvent("success",b).callChain();},cancel:function(){if(this.running){this.clear().fireEvent("cancel");
}return this;},isRunning:function(){return !!this.running;},clear:function(){this.running=false;if(this.script){this.script.destroy();this.script=null;
}return this;},timeout:function(){if(this.running){this.running=false;this.fireEvent("timeout",[this.script.get("src"),this.script]).fireEvent("failure").cancel();
}return this;}});Request.JSONP.counter=0;Request.JSONP.request_map={};Request.Queue=new Class({Implements:[Options,Events],Binds:["attach","request","complete","cancel","success","failure","exception"],options:{stopOnFailure:true,autoAdvance:true,concurrent:1,requests:{}},initialize:function(a){var b;
if(a){b=a.requests;delete a.requests;}this.setOptions(a);this.requests={};this.queue=[];this.reqBinders={};if(b){this.addRequests(b);}},addRequest:function(a,b){this.requests[a]=b;
this.attach(a,b);return this;},addRequests:function(a){Object.each(a,function(c,b){this.addRequest(b,c);},this);return this;},getName:function(a){return Object.keyOf(this.requests,a);
},attach:function(a,b){if(b._groupSend){return this;}["request","complete","cancel","success","failure","exception"].each(function(c){if(!this.reqBinders[a]){this.reqBinders[a]={};
}this.reqBinders[a][c]=function(){this["on"+c.capitalize()].apply(this,[a,b].append(arguments));}.bind(this);b.addEvent(c,this.reqBinders[a][c]);},this);
b._groupSend=b.send;b.send=function(c){this.send(a,c);return b;}.bind(this);return this;},removeRequest:function(b){var a=typeOf(b)=="object"?this.getName(b):b;
if(!a&&typeOf(a)!="string"){return this;}b=this.requests[a];if(!b){return this;}["request","complete","cancel","success","failure","exception"].each(function(c){b.removeEvent(c,this.reqBinders[a][c]);
},this);b.send=b._groupSend;delete b._groupSend;return this;},getRunning:function(){return Object.filter(this.requests,function(a){return a.running;});
},isRunning:function(){return !!(Object.keys(this.getRunning()).length);},send:function(b,a){var c=function(){this.requests[b]._groupSend(a);this.queue.erase(c);
}.bind(this);c.name=b;if(Object.keys(this.getRunning()).length>=this.options.concurrent||(this.error&&this.options.stopOnFailure)){this.queue.push(c);}else{c();
}return this;},hasNext:function(a){return(!a)?!!this.queue.length:!!this.queue.filter(function(b){return b.name==a;}).length;},resume:function(){this.error=false;
(this.options.concurrent-Object.keys(this.getRunning()).length).times(this.runNext,this);return this;},runNext:function(a){if(!this.queue.length){return this;
}if(!a){this.queue[0]();}else{var b;this.queue.each(function(c){if(!b&&c.name==a){b=true;c();}});}return this;},runAll:function(){this.queue.each(function(a){a();
});return this;},clear:function(a){if(!a){this.queue.empty();}else{this.queue=this.queue.map(function(b){if(b.name!=a){return b;}else{return false;}}).filter(function(b){return b;
});}return this;},cancel:function(a){this.requests[a].cancel();return this;},onRequest:function(){this.fireEvent("request",arguments);},onComplete:function(){this.fireEvent("complete",arguments);
if(!this.queue.length){this.fireEvent("end");}},onCancel:function(){if(this.options.autoAdvance&&!this.error){this.runNext();}this.fireEvent("cancel",arguments);
},onSuccess:function(){if(this.options.autoAdvance&&!this.error){this.runNext();}this.fireEvent("success",arguments);},onFailure:function(){this.error=true;
if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext();}this.fireEvent("failure",arguments);},onException:function(){this.error=true;
if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext();}this.fireEvent("exception",arguments);}});Request.implement({options:{initialDelay:5000,delay:5000,limit:60000},startTimer:function(b){var a=function(){if(!this.running){this.send({data:b});
}};this.lastDelay=this.options.initialDelay;this.timer=a.delay(this.lastDelay,this);this.completeCheck=function(c){clearTimeout(this.timer);this.lastDelay=(c)?this.options.delay:(this.lastDelay+this.options.delay).min(this.options.limit);
this.timer=a.delay(this.lastDelay,this);};return this.addEvent("complete",this.completeCheck);},stopTimer:function(){clearTimeout(this.timer);return this.removeEvent("complete",this.completeCheck);
}});var Asset={javascript:function(d,b){if(!b){b={};}var a=new Element("script",{src:d,type:"text/javascript"}),e=b.document||document,c=b.onload||b.onLoad;
delete b.onload;delete b.onLoad;delete b.document;if(c){if(typeof a.onreadystatechange!="undefined"){a.addEvent("readystatechange",function(){if(["loaded","complete"].contains(this.readyState)){c.call(this);
}});}else{a.addEvent("load",c);}}return a.set(b).inject(e.head);},css:function(d,a){if(!a){a={};}var b=new Element("link",{rel:"stylesheet",media:"screen",type:"text/css",href:d});
var c=a.onload||a.onLoad,e=a.document||document;delete a.onload;delete a.onLoad;delete a.document;if(c){b.addEvent("load",c);}return b.set(a).inject(e.head);
},image:function(c,b){if(!b){b={};}var d=new Image(),a=document.id(d)||new Element("img");["load","abort","error"].each(function(e){var g="on"+e,f="on"+e.capitalize(),h=b[g]||b[f]||function(){};
delete b[f];delete b[g];d[g]=function(){if(!d){return;}if(!a.parentNode){a.width=d.width;a.height=d.height;}d=d.onload=d.onabort=d.onerror=null;h.delay(1,a,a);
a.fireEvent(e,a,1);};});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1);}return a.set(b);},images:function(c,b){c=Array.from(c);var d=function(){},a=0;
b=Object.merge({onComplete:d,onProgress:d,onError:d,properties:{}},b);return new Elements(c.map(function(f,e){return Asset.image(f,Object.append(b.properties,{onload:function(){a++;
b.onProgress.call(this,a,e,f);if(a==c.length){b.onComplete();}},onerror:function(){a++;b.onError.call(this,a,e,f);if(a==c.length){b.onComplete();}}}));
}));}};(function(){var a=this.Color=new Type("Color",function(c,d){if(arguments.length>=3){d="rgb";c=Array.slice(arguments,0,3);}else{if(typeof c=="string"){if(c.match(/rgb/)){c=c.rgbToHex().hexToRgb(true);
}else{if(c.match(/hsb/)){c=c.hsbToRgb();}else{c=c.hexToRgb(true);}}}}d=d||"rgb";switch(d){case"hsb":var b=c;c=c.hsbToRgb();c.hsb=b;break;case"hex":c=c.hexToRgb(true);
break;}c.rgb=c.slice(0,3);c.hsb=c.hsb||c.rgbToHsb();c.hex=c.rgbToHex();return Object.append(c,this);});a.implement({mix:function(){var b=Array.slice(arguments);
var d=(typeOf(b.getLast())=="number")?b.pop():50;var c=this.slice();b.each(function(e){e=new a(e);for(var f=0;f<3;f++){c[f]=Math.round((c[f]/100*(100-d))+(e[f]/100*d));
}});return new a(c,"rgb");},invert:function(){return new a(this.map(function(b){return 255-b;}));},setHue:function(b){return new a([b,this.hsb[1],this.hsb[2]],"hsb");
},setSaturation:function(b){return new a([this.hsb[0],b,this.hsb[2]],"hsb");},setBrightness:function(b){return new a([this.hsb[0],this.hsb[1],b],"hsb");
}});this.$RGB=function(e,d,c){return new a([e,d,c],"rgb");};this.$HSB=function(e,d,c){return new a([e,d,c],"hsb");};this.$HEX=function(b){return new a(b,"hex");
};Array.implement({rgbToHsb:function(){var c=this[0],d=this[1],k=this[2],h=0;var j=Math.max(c,d,k),f=Math.min(c,d,k);var l=j-f;var i=j/255,g=(j!=0)?l/j:0;
if(g!=0){var e=(j-c)/l;var b=(j-d)/l;var m=(j-k)/l;if(c==j){h=m-b;}else{if(d==j){h=2+e-m;}else{h=4+b-e;}}h/=6;if(h<0){h++;}}return[Math.round(h*360),Math.round(g*100),Math.round(i*100)];
},hsbToRgb:function(){var d=Math.round(this[2]/100*255);if(this[1]==0){return[d,d,d];}else{var b=this[0]%360;var g=b%60;var h=Math.round((this[2]*(100-this[1]))/10000*255);
var e=Math.round((this[2]*(6000-this[1]*g))/600000*255);var c=Math.round((this[2]*(6000-this[1]*(60-g)))/600000*255);switch(Math.floor(b/60)){case 0:return[d,c,h];
case 1:return[e,d,h];case 2:return[h,d,c];case 3:return[h,e,d];case 4:return[c,h,d];case 5:return[d,h,e];}}return false;}});String.implement({rgbToHsb:function(){var b=this.match(/\d{1,3}/g);
return(b)?b.rgbToHsb():null;},hsbToRgb:function(){var b=this.match(/\d{1,3}/g);return(b)?b.hsbToRgb():null;}});})();(function(){this.Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);
},addEvent:function(e,d){var g=this.instances,a=g.length,f=a,c=new Array(a),b=this;g.each(function(h,j){h.addEvent(e,function(){if(!c[j]){f--;}c[j]=arguments;
if(!f){d.call(b,g,h,c);f=a;c=new Array(a);}});});}});})();Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(b,a){this.parent(b,a);
this.load();},save:function(){var a=JSON.encode(this.hash);if(!a||a.length>4096){return false;}if(a=="{}"){this.dispose();}else{this.write(a);}return true;
},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.each(Hash.prototype,function(b,a){if(typeof b=="function"){Hash.Cookie.implement(a,function(){var c=b.apply(this.hash,arguments);
if(this.options.autoSave){this.save();}return c;});}});(function(){var a=this.Table=function(){this.length=0;var c=[],b=[];this.set=function(e,g){var d=c.indexOf(e);
if(d==-1){var f=c.length;c[f]=e;b[f]=g;this.length++;}else{b[d]=g;}return this;};this.get=function(e){var d=c.indexOf(e);return(d==-1)?null:b[d];};this.erase=function(e){var d=c.indexOf(e);
if(d!=-1){this.length--;c.splice(d,1);return b.splice(d,1)[0];}return null;};this.each=this.forEach=function(f,g){for(var e=0,d=this.length;e<d;e++){f.call(g,c[e],b[e],this);
}};};if(this.Type){new Type("Table",a);}})();var HtmlTable=new Class({Implements:[Options,Events,Class.Occlude],options:{properties:{cellpadding:0,cellspacing:0,border:0},rows:[],headers:[],footers:[]},property:"HtmlTable",initialize:function(){var a=Array.link(arguments,{options:Type.isObject,table:Type.isElement,id:Type.isString});
this.setOptions(a.options);if(!a.table&&a.id){a.table=document.id(a.id);}this.element=a.table||new Element("table",this.options.properties);if(this.occlude()){return this.occluded;
}this.build();},build:function(){this.element.store("HtmlTable",this);this.body=document.id(this.element.tBodies[0])||new Element("tbody").inject(this.element);
$$(this.body.rows);if(this.options.headers.length){this.setHeaders(this.options.headers);}else{this.thead=document.id(this.element.tHead);}if(this.thead){this.head=this.getHead();
}if(this.options.footers.length){this.setFooters(this.options.footers);}this.tfoot=document.id(this.element.tFoot);if(this.tfoot){this.foot=document.id(this.tfoot.rows[0]);
}this.options.rows.each(function(a){this.push(a);},this);},toElement:function(){return this.element;},empty:function(){this.body.empty();return this;},set:function(e,a){var d=(e=="headers")?"tHead":"tFoot",b=d.toLowerCase();
this[b]=(document.id(this.element[d])||new Element(b).inject(this.element,"top")).empty();var c=this.push(a,{},this[b],e=="headers"?"th":"td");if(e=="headers"){this.head=this.getHead();
}else{this.foot=this.getHead();}return c;},getHead:function(){var a=this.thead.rows;return a.length>1?$$(a):a.length?document.id(a[0]):false;},setHeaders:function(a){this.set("headers",a);
return this;},setFooters:function(a){this.set("footers",a);return this;},update:function(d,e,a){var b=d.getChildren(a||"td"),c=b.length-1;e.each(function(i,f){var j=b[f]||new Element(a||"td").inject(d),h=(i?i.content:"")||i,g=typeOf(h);
if(i&&i.properties){j.set(i.properties);}if(/(element(s?)|array|collection)/.test(g)){j.empty().adopt(h);}else{j.set("html",h);}if(f>c){b.push(j);}else{b[f]=j;
}});return{tr:d,tds:b};},push:function(e,c,d,a,b){if(typeOf(e)=="element"&&e.get("tag")=="tr"){e.inject(d||this.body,b);return{tr:e,tds:e.getChildren("td")};
}return this.update(new Element("tr",c).inject(d||this.body,b),e,a);},pushMany:function(d,c,e,a,b){return d.map(function(f){return this.push(f,c,e,a,b);
},this);}});["adopt","inject","wraps","grab","replaces","dispose"].each(function(a){HtmlTable.implement(a,function(){this.element[a].apply(this.element,arguments);
return this;});});HtmlTable=Class.refactor(HtmlTable,{options:{classZebra:"table-tr-odd",zebra:true,zebraOnlyVisibleRows:true},initialize:function(){this.previous.apply(this,arguments);
if(this.occluded){return this.occluded;}if(this.options.zebra){this.updateZebras();}},updateZebras:function(){var a=0;Array.each(this.body.rows,function(b){if(!this.options.zebraOnlyVisibleRows||b.isDisplayed()){this.zebra(b,a++);
}},this);},setRowStyle:function(b,a){if(this.previous){this.previous(b,a);}this.zebra(b,a);},zebra:function(b,a){return b[((a%2)?"remove":"add")+"Class"](this.options.classZebra);
},push:function(){var a=this.previous.apply(this,arguments);if(this.options.zebra){this.updateZebras();}return a;}});HtmlTable=Class.refactor(HtmlTable,{options:{sortIndex:0,sortReverse:false,parsers:[],defaultParser:"string",classSortable:"table-sortable",classHeadSort:"table-th-sort",classHeadSortRev:"table-th-sort-rev",classNoSort:"table-th-nosort",classGroupHead:"table-tr-group-head",classGroup:"table-tr-group",classCellSort:"table-td-sort",classSortSpan:"table-th-sort-span",sortable:false,thSelector:"th"},initialize:function(){this.previous.apply(this,arguments);
if(this.occluded){return this.occluded;}this.sorted={index:null,dir:1};if(!this.bound){this.bound={};}this.bound.headClick=this.headClick.bind(this);this.sortSpans=new Elements();
if(this.options.sortable){this.enableSort();if(this.options.sortIndex!=null){this.sort(this.options.sortIndex,this.options.sortReverse);}}},attachSorts:function(a){this.detachSorts();
if(a!==false){this.element.addEvent("click:relay("+this.options.thSelector+")",this.bound.headClick);}},detachSorts:function(){this.element.removeEvents("click:relay("+this.options.thSelector+")");
},setHeaders:function(){this.previous.apply(this,arguments);if(this.sortEnabled){this.setParsers();}},setParsers:function(){this.parsers=this.detectParsers();
},detectParsers:function(){return this.head&&this.head.getElements(this.options.thSelector).flatten().map(this.detectParser,this);},detectParser:function(a,b){if(a.hasClass(this.options.classNoSort)||a.retrieve("htmltable-parser")){return a.retrieve("htmltable-parser");
}var c=new Element("div");c.adopt(a.childNodes).inject(a);var f=new Element("span",{"class":this.options.classSortSpan}).inject(c,"top");this.sortSpans.push(f);
var g=this.options.parsers[b],e=this.body.rows,d;switch(typeOf(g)){case"function":g={convert:g};d=true;break;case"string":g=g;d=true;break;}if(!d){HtmlTable.ParserPriority.some(function(k){var o=HtmlTable.Parsers[k],m=o.match;
if(!m){return false;}for(var n=0,l=e.length;n<l;n++){var h=document.id(e[n].cells[b]),p=h?h.get("html").clean():"";if(p&&m.test(p)){g=o;return true;}}});
}if(!g){g=this.options.defaultParser;}a.store("htmltable-parser",g);return g;},headClick:function(b,a){if(!this.head||a.hasClass(this.options.classNoSort)){return;
}return this.sort(Array.indexOf(this.head.getElements(this.options.thSelector).flatten(),a)%this.body.rows[0].cells.length);},serialize:function(){var a=this.previous.apply(this,arguments)||{};
if(this.options.sortable){a.sortIndex=this.sorted.index;a.sortReverse=this.sorted.reverse;}return a;},restore:function(a){if(this.options.sortable&&a.sortIndex){this.sort(a.sortIndex,a.sortReverse);
}this.previous.apply(this,arguments);},setSortedState:function(b,a){if(a!=null){this.sorted.reverse=a;}else{if(this.sorted.index==b){this.sorted.reverse=!this.sorted.reverse;
}else{this.sorted.reverse=this.sorted.index==null;}}if(b!=null){this.sorted.index=b;}},setHeadSort:function(a){var b=$$(!this.head.length?this.head.cells[this.sorted.index]:this.head.map(function(c){return c.getElements(this.options.thSelector)[this.sorted.index];
},this).clean());if(!b.length){return;}if(a){b.addClass(this.options.classHeadSort);if(this.sorted.reverse){b.addClass(this.options.classHeadSortRev);}else{b.removeClass(this.options.classHeadSortRev);
}}else{b.removeClass(this.options.classHeadSort).removeClass(this.options.classHeadSortRev);}},setRowSort:function(b,a){var e=b.length,d=this.body,g,f;
while(e){var h=b[--e],c=h.position,i=d.rows[c];if(i.disabled){continue;}if(!a){g=this.setGroupSort(g,i,h);this.setRowStyle(i,e);}d.appendChild(i);for(f=0;
f<e;f++){if(b[f].position>c){b[f].position--;}}}},setRowStyle:function(b,a){this.previous(b,a);b.cells[this.sorted.index].addClass(this.options.classCellSort);
},setGroupSort:function(b,c,a){if(b==a.value){c.removeClass(this.options.classGroupHead).addClass(this.options.classGroup);}else{c.removeClass(this.options.classGroup).addClass(this.options.classGroupHead);
}return a.value;},getParser:function(){var a=this.parsers[this.sorted.index];return typeOf(a)=="string"?HtmlTable.Parsers[a]:a;},sort:function(c,b,e){if(!this.head){return;
}if(!e){this.clearSort();this.setSortedState(c,b);this.setHeadSort(true);}var f=this.getParser();if(!f){return;}var a;if(!Browser.ie){a=this.body.getParent();
this.body.dispose();}var d=this.parseData(f).sort(function(h,g){if(h.value===g.value){return 0;}return h.value>g.value?1:-1;});if(this.sorted.reverse==(f==HtmlTable.Parsers["input-checked"])){d.reverse(true);
}this.setRowSort(d,e);if(a){a.grab(this.body);}this.fireEvent("stateChanged");return this.fireEvent("sort",[this.body,this.sorted.index]);},parseData:function(a){return Array.map(this.body.rows,function(d,b){var c=a.convert.call(document.id(d.cells[this.sorted.index]));
return{position:b,value:c};},this);},clearSort:function(){this.setHeadSort(false);this.body.getElements("td").removeClass(this.options.classCellSort);},reSort:function(){if(this.sortEnabled){this.sort.call(this,this.sorted.index,this.sorted.reverse);
}return this;},enableSort:function(){this.element.addClass(this.options.classSortable);this.attachSorts(true);this.setParsers();this.sortEnabled=true;return this;
},disableSort:function(){this.element.removeClass(this.options.classSortable);this.attachSorts(false);this.sortSpans.each(function(a){a.destroy();});this.sortSpans.empty();
this.sortEnabled=false;return this;}});HtmlTable.ParserPriority=["date","input-checked","input-value","float","number"];HtmlTable.Parsers={date:{match:/^\d{2}[-\/ ]\d{2}[-\/ ]\d{2,4}$/,convert:function(){var a=Date.parse(this.get("text").stripTags());
return(typeOf(a)=="date")?a.format("db"):"";},type:"date"},"input-checked":{match:/ type="(radio|checkbox)" /,convert:function(){return this.getElement("input").checked;
}},"input-value":{match:/<input/,convert:function(){return this.getElement("input").value;}},number:{match:/^\d+[^\d.,]*$/,convert:function(){return this.get("text").stripTags().toInt();
},number:true},numberLax:{match:/^[^\d]+\d+$/,convert:function(){return this.get("text").replace(/[^-?^0-9]/,"").stripTags().toInt();},number:true},"float":{match:/^[\d]+\.[\d]+/,convert:function(){return this.get("text").replace(/[^-?^\d.]/,"").stripTags().toFloat();
},number:true},floatLax:{match:/^[^\d]+[\d]+\.[\d]+$/,convert:function(){return this.get("text").replace(/[^-?^\d.]/,"").stripTags();},number:true},string:{match:null,convert:function(){return this.get("text").stripTags().toLowerCase();
}},title:{match:null,convert:function(){return this.title;}}};HtmlTable.defineParsers=function(a){HtmlTable.Parsers=Object.append(HtmlTable.Parsers,a);
for(var b in a){HtmlTable.ParserPriority.unshift(b);}};(function(){var a=this.Keyboard=new Class({Extends:Events,Implements:[Options],options:{defaultEventType:"keydown",active:false,manager:null,events:{},nonParsedEvents:["activate","deactivate","onactivate","ondeactivate","changed","onchanged"]},initialize:function(f){if(f&&f.manager){this._manager=f.manager;
delete f.manager;}this.setOptions(f);this._setup();},addEvent:function(h,g,f){return this.parent(a.parse(h,this.options.defaultEventType,this.options.nonParsedEvents),g,f);
},removeEvent:function(g,f){return this.parent(a.parse(g,this.options.defaultEventType,this.options.nonParsedEvents),f);},toggleActive:function(){return this[this.isActive()?"deactivate":"activate"]();
},activate:function(f){if(f){if(f.isActive()){return this;}if(this._activeKB&&f!=this._activeKB){this.previous=this._activeKB;this.previous.fireEvent("deactivate");
}this._activeKB=f.fireEvent("activate");a.manager.fireEvent("changed");}else{if(this._manager){this._manager.activate(this);}}return this;},isActive:function(){return this._manager?(this._manager._activeKB==this):(a.manager==this);
},deactivate:function(f){if(f){if(f===this._activeKB){this._activeKB=null;f.fireEvent("deactivate");a.manager.fireEvent("changed");}}else{if(this._manager){this._manager.deactivate(this);
}}return this;},relinquish:function(){if(this.isActive()&&this._manager&&this._manager.previous){this._manager.activate(this._manager.previous);}else{this.deactivate();
}return this;},manage:function(f){if(f._manager){f._manager.drop(f);}this._instances.push(f);f._manager=this;if(!this._activeKB){this.activate(f);}return this;
},drop:function(f){f.relinquish();this._instances.erase(f);if(this._activeKB==f){if(this.previous&&this._instances.contains(this.previous)){this.activate(this.previous);
}else{this._activeKB=this._instances[0];}}return this;},trace:function(){a.trace(this);},each:function(f){a.each(this,f);},_instances:[],_disable:function(f){if(this._activeKB==f){this._activeKB=null;
}},_setup:function(){this.addEvents(this.options.events);if(a.manager&&!this._manager){a.manager.manage(this);}if(this.options.active){this.activate();
}else{this.relinquish();}},_handle:function(h,g){if(h.preventKeyboardPropagation){return;}var f=!!this._manager;if(f&&this._activeKB){this._activeKB._handle(h,g);
if(h.preventKeyboardPropagation){return;}}this.fireEvent(g,h);if(!f&&this._activeKB){this._activeKB._handle(h,g);}}});var b={};var c=["shift","control","alt","meta"];
var e=/^(?:shift|control|ctrl|alt|meta)$/;a.parse=function(h,g,k){if(k&&k.contains(h.toLowerCase())){return h;}h=h.toLowerCase().replace(/^(keyup|keydown):/,function(m,l){g=l;
return"";});if(!b[h]){var f,j={};h.split("+").each(function(l){if(e.test(l)){j[l]=true;}else{f=l;}});j.control=j.control||j.ctrl;var i=[];c.each(function(l){if(j[l]){i.push(l);
}});if(f){i.push(f);}b[h]=i.join("+");}return g+":keys("+b[h]+")";};a.each=function(f,g){var h=f||a.manager;while(h){g.run(h);h=h._activeKB;}};a.stop=function(f){f.preventKeyboardPropagation=true;
};a.manager=new a({active:true});a.trace=function(f){f=f||a.manager;var g=window.console&&console.log;if(g){console.log("the following items have focus: ");
}a.each(f,function(h){if(g){console.log(document.id(h.widget)||h.wiget||h);}});};var d=function(g){var f=[];c.each(function(h){if(g[h]){f.push(h);}});if(!e.test(g.key)){f.push(g.key);
}a.manager._handle(g,g.type+":keys("+f.join("+")+")");};document.addEvents({keyup:d,keydown:d});})();Keyboard.prototype.options.nonParsedEvents.combine(["rebound","onrebound"]);
Keyboard.implement({addShortcut:function(b,a){this._shortcuts=this._shortcuts||[];this._shortcutIndex=this._shortcutIndex||{};a.getKeyboard=Function.from(this);
a.name=b;this._shortcutIndex[b]=a;this._shortcuts.push(a);if(a.keys){this.addEvent(a.keys,a.handler);}return this;},addShortcuts:function(b){for(var a in b){this.addShortcut(a,b[a]);
}return this;},removeShortcut:function(b){var a=this.getShortcut(b);if(a&&a.keys){this.removeEvent(a.keys,a.handler);delete this._shortcutIndex[b];this._shortcuts.erase(a);
}return this;},removeShortcuts:function(a){a.each(this.removeShortcut,this);return this;},getShortcuts:function(){return this._shortcuts||[];},getShortcut:function(a){return(this._shortcutIndex||{})[a];
}});Keyboard.rebind=function(b,a){Array.from(a).each(function(c){c.getKeyboard().removeEvent(c.keys,c.handler);c.getKeyboard().addEvent(b,c.handler);c.keys=b;
c.getKeyboard().fireEvent("rebound");});};Keyboard.getActiveShortcuts=function(b){var a=[],c=[];Keyboard.each(b,[].push.bind(a));a.each(function(d){c.extend(d.getShortcuts());
});return c;};Keyboard.getShortcut=function(c,b,d){d=d||{};var a=d.many?[]:null,e=d.many?function(g){var f=g.getShortcut(c);if(f){a.push(f);}}:function(f){if(!a){a=f.getShortcut(c);
}};Keyboard.each(b,e);return a;};Keyboard.getShortcuts=function(b,a){return Keyboard.getShortcut(b,a,{many:true});};HtmlTable=Class.refactor(HtmlTable,{options:{useKeyboard:true,classRowSelected:"table-tr-selected",classRowHovered:"table-tr-hovered",classSelectable:"table-selectable",shiftForMultiSelect:true,allowMultiSelect:true,selectable:false,selectHiddenRows:false},initialize:function(){this.previous.apply(this,arguments);
if(this.occluded){return this.occluded;}this.selectedRows=new Elements();if(!this.bound){this.bound={};}this.bound.mouseleave=this.mouseleave.bind(this);
this.bound.clickRow=this.clickRow.bind(this);this.bound.activateKeyboard=function(){if(this.keyboard&&this.selectEnabled){this.keyboard.activate();}}.bind(this);
if(this.options.selectable){this.enableSelect();}},empty:function(){this.selectNone();return this.previous();},enableSelect:function(){this.selectEnabled=true;
this.attachSelects();this.element.addClass(this.options.classSelectable);return this;},disableSelect:function(){this.selectEnabled=false;this.attachSelects(false);
this.element.removeClass(this.options.classSelectable);return this;},push:function(){var a=this.previous.apply(this,arguments);this.updateSelects();return a;
},toggleRow:function(a){return this[(this.isSelected(a)?"de":"")+"selectRow"](a);},selectRow:function(b,a){if(this.isSelected(b)||(!a&&!this.body.getChildren().contains(b))){return;
}if(!this.options.allowMultiSelect){this.selectNone();}if(!this.isSelected(b)){this.selectedRows.push(b);b.addClass(this.options.classRowSelected);this.fireEvent("rowFocus",[b,this.selectedRows]);
this.fireEvent("stateChanged");}this.focused=b;document.clearSelection();return this;},isSelected:function(a){return this.selectedRows.contains(a);},getSelected:function(){return this.selectedRows;
},getSelected:function(){return this.selectedRows;},serialize:function(){var a=this.previous.apply(this,arguments)||{};if(this.options.selectable){a.selectedRows=this.selectedRows.map(function(b){return Array.indexOf(this.body.rows,b);
}.bind(this));}return a;},restore:function(a){if(this.options.selectable&&a.selectedRows){a.selectedRows.each(function(b){this.selectRow(this.body.rows[b]);
}.bind(this));}this.previous.apply(this,arguments);},deselectRow:function(b,a){if(!this.isSelected(b)||(!a&&!this.body.getChildren().contains(b))){return;
}this.selectedRows=new Elements(Array.from(this.selectedRows).erase(b));b.removeClass(this.options.classRowSelected);this.fireEvent("rowUnfocus",[b,this.selectedRows]);
this.fireEvent("stateChanged");return this;},selectAll:function(a){if(!a&&!this.options.allowMultiSelect){return;}this.selectRange(0,this.body.rows.length,a);
return this;},selectNone:function(){return this.selectAll(true);},selectRange:function(b,a,f){if(!this.options.allowMultiSelect&&!f){return;}var g=f?"deselectRow":"selectRow",e=Array.clone(this.body.rows);
if(typeOf(b)=="element"){b=e.indexOf(b);}if(typeOf(a)=="element"){a=e.indexOf(a);}a=a<e.length-1?a:e.length-1;if(a<b){var d=b;b=a;a=d;}for(var c=b;c<=a;
c++){if(this.options.selectHiddenRows||e[c].isDisplayed()){this[g](e[c],true);}}return this;},deselectRange:function(b,a){this.selectRange(b,a,true);},getSelected:function(){return this.selectedRows;
},enterRow:function(a){if(this.hovered){this.hovered=this.leaveRow(this.hovered);}this.hovered=a.addClass(this.options.classRowHovered);},leaveRow:function(a){a.removeClass(this.options.classRowHovered);
},updateSelects:function(){Array.each(this.body.rows,function(a){var b=a.retrieve("binders");if(!b&&!this.selectEnabled){return;}if(!b){b={mouseenter:this.enterRow.pass([a],this),mouseleave:this.leaveRow.pass([a],this)};
a.store("binders",b);}if(this.selectEnabled){a.addEvents(b);}else{a.removeEvents(b);}},this);},shiftFocus:function(b,a){if(!this.focused){return this.selectRow(this.body.rows[0],a);
}var c=this.getRowByOffset(b,this.options.selectHiddenRows);if(c===null||this.focused==this.body.rows[c]){return this;}this.toggleRow(this.body.rows[c],a);
},clickRow:function(a,b){var c=(a.shift||a.meta||a.control)&&this.options.shiftForMultiSelect;if(!c&&!(a.rightClick&&this.isSelected(b)&&this.options.allowMultiSelect)){this.selectNone();
}if(a.rightClick){this.selectRow(b);}else{this.toggleRow(b);}if(a.shift){this.selectRange(this.rangeStart||this.body.rows[0],b,this.rangeStart?!this.isSelected(b):true);
this.focused=b;}this.rangeStart=b;},getRowByOffset:function(e,d){if(!this.focused){return 0;}var b=Array.indexOf(this.body.rows,this.focused);if((b==0&&e<0)||(b==this.body.rows.length-1&&e>0)){return null;
}if(d){b+=e;}else{var a=0,c=0;if(e>0){while(c<e&&b<this.body.rows.length-1){if(this.body.rows[++b].isDisplayed()){c++;}}}else{while(c>e&&b>0){if(this.body.rows[--b].isDisplayed()){c--;
}}}}return b;},attachSelects:function(d){d=d!=null?d:true;var g=d?"addEvents":"removeEvents";this.element[g]({mouseleave:this.bound.mouseleave,click:this.bound.activateKeyboard});
this.body[g]({"click:relay(tr)":this.bound.clickRow,"contextmenu:relay(tr)":this.bound.clickRow});if(this.options.useKeyboard||this.keyboard){if(!this.keyboard){this.keyboard=new Keyboard();
}if(!this.selectKeysDefined){this.selectKeysDefined=true;var f,e;var c=function(i){var h=function(j){clearTimeout(f);j.preventDefault();var k=this.body.rows[this.getRowByOffset(i,this.options.selectHiddenRows)];
if(j.shift&&k&&this.isSelected(k)){this.deselectRow(this.focused);this.focused=k;}else{if(k&&(!this.options.allowMultiSelect||!j.shift)){this.selectNone();
}this.shiftFocus(i,j);}if(e){f=h.delay(100,this,j);}else{f=(function(){e=true;h(j);}).delay(400);}}.bind(this);return h;}.bind(this);var b=function(){clearTimeout(f);
e=false;};this.keyboard.addEvents({"keydown:shift+up":c(-1),"keydown:shift+down":c(1),"keyup:shift+up":b,"keyup:shift+down":b,"keyup:up":b,"keyup:down":b});
var a="";if(this.options.allowMultiSelect&&this.options.shiftForMultiSelect&&this.options.useKeyboard){a=" (Shift multi-selects).";}this.keyboard.addShortcuts({"Select Previous Row":{keys:"up",shortcut:"up arrow",handler:c(-1),description:"Select the previous row in the table."+a},"Select Next Row":{keys:"down",shortcut:"down arrow",handler:c(1),description:"Select the next row in the table."+a}});
}this.keyboard[d?"activate":"deactivate"]();}this.updateSelects();},mouseleave:function(){if(this.hovered){this.leaveRow(this.hovered);}}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(a,b){this.element.scrollTo(a,b);
},fps:50},initialize:function(b,a){this.setOptions(a);this.element=document.id(b);this.docBody=document.id(this.element.getDocument().body);this.listener=(typeOf(this.element)!="element")?this.docBody:this.element;
this.timer=null;this.bound={attach:this.attach.bind(this),detach:this.detach.bind(this),getCoords:this.getCoords.bind(this)};},start:function(){this.listener.addEvents({mouseover:this.bound.attach,mouseleave:this.bound.detach});
return this;},stop:function(){this.listener.removeEvents({mouseover:this.bound.attach,mouseleave:this.bound.detach});this.detach();this.timer=clearInterval(this.timer);
return this;},attach:function(){this.listener.addEvent("mousemove",this.bound.getCoords);},detach:function(){this.listener.removeEvent("mousemove",this.bound.getCoords);
this.timer=clearInterval(this.timer);},getCoords:function(a){this.page=(this.listener.get("tag")=="body")?a.client:a.page;if(!this.timer){this.timer=this.scroll.periodical(Math.round(1000/this.options.fps),this);
}},scroll:function(){var c=this.element.getSize(),a=this.element.getScroll(),h=this.element!=this.docBody?this.element.getOffsets():{x:0,y:0},d=this.element.getScrollSize(),g={x:0,y:0},e=this.options.area.top||this.options.area,b=this.options.area.bottom||this.options.area;
for(var f in this.page){if(this.page[f]<(e+h[f])&&a[f]!=0){g[f]=(this.page[f]-e-h[f])*this.options.velocity;}else{if(this.page[f]+b>(c[f]+h[f])&&a[f]+c[f]!=d[f]){g[f]=(this.page[f]-c[f]+b-h[f])*this.options.velocity;
}}g[f]=g[f].round();}if(g.y||g.x){this.fireEvent("change",[a.x+g.x,a.y+g.y]);}}});(function(){var a=function(c,b){return(c)?(typeOf(c)=="function"?c(b):b.get(c)):"";
};this.Tips=new Class({Implements:[Events,Options],options:{onShow:function(){this.tip.setStyle("display","block");},onHide:function(){this.tip.setStyle("display","none");
},title:"title",text:function(b){return b.get("rel")||b.get("href");},showDelay:100,hideDelay:100,className:"tip-wrap",offset:{x:16,y:16},windowPadding:{x:0,y:0},fixed:false,waiAria:true},initialize:function(){var b=Array.link(arguments,{options:Type.isObject,elements:function(c){return c!=null;
}});this.setOptions(b.options);if(b.elements){this.attach(b.elements);}this.container=new Element("div",{"class":"tip"});if(this.options.id){this.container.set("id",this.options.id);
if(this.options.waiAria){this.attachWaiAria();}}},toElement:function(){if(this.tip){return this.tip;}this.tip=new Element("div",{"class":this.options.className,styles:{position:"absolute",top:0,left:0}}).adopt(new Element("div",{"class":"tip-top"}),this.container,new Element("div",{"class":"tip-bottom"}));
return this.tip;},attachWaiAria:function(){var b=this.options.id;this.container.set("role","tooltip");if(!this.waiAria){this.waiAria={show:function(c){if(b){c.set("aria-describedby",b);
}this.container.set("aria-hidden","false");},hide:function(c){if(b){c.erase("aria-describedby");}this.container.set("aria-hidden","true");}};}this.addEvents(this.waiAria);
},detachWaiAria:function(){if(this.waiAria){this.container.erase("role");this.container.erase("aria-hidden");this.removeEvents(this.waiAria);}},attach:function(b){$$(b).each(function(d){var f=a(this.options.title,d),e=a(this.options.text,d);
d.set("title","").store("tip:native",f).retrieve("tip:title",f);d.retrieve("tip:text",e);this.fireEvent("attach",[d]);var c=["enter","leave"];if(!this.options.fixed){c.push("move");
}c.each(function(h){var g=d.retrieve("tip:"+h);if(!g){g=function(i){this["element"+h.capitalize()].apply(this,[i,d]);}.bind(this);}d.store("tip:"+h,g).addEvent("mouse"+h,g);
},this);},this);return this;},detach:function(b){$$(b).each(function(d){["enter","leave","move"].each(function(e){d.removeEvent("mouse"+e,d.retrieve("tip:"+e)).eliminate("tip:"+e);
});this.fireEvent("detach",[d]);if(this.options.title=="title"){var c=d.retrieve("tip:native");if(c){d.set("title",c);}}},this);return this;},elementEnter:function(c,b){clearTimeout(this.timer);
this.timer=(function(){this.container.empty();["title","text"].each(function(e){var d=b.retrieve("tip:"+e);var f=this["_"+e+"Element"]=new Element("div",{"class":"tip-"+e}).inject(this.container);
if(d){this.fill(f,d);}},this);this.show(b);this.position((this.options.fixed)?{page:b.getPosition()}:c);}).delay(this.options.showDelay,this);},elementLeave:function(c,b){clearTimeout(this.timer);
this.timer=this.hide.delay(this.options.hideDelay,this,b);this.fireForParent(c,b);},setTitle:function(b){if(this._titleElement){this._titleElement.empty();
this.fill(this._titleElement,b);}return this;},setText:function(b){if(this._textElement){this._textElement.empty();this.fill(this._textElement,b);}return this;
},fireForParent:function(c,b){b=b.getParent();if(!b||b==document.body){return;}if(b.retrieve("tip:enter")){b.fireEvent("mouseenter",c);}else{this.fireForParent(c,b);
}},elementMove:function(c,b){this.position(c);},position:function(f){if(!this.tip){document.id(this);}var c=window.getSize(),b=window.getScroll(),g={x:this.tip.offsetWidth,y:this.tip.offsetHeight},d={x:"left",y:"top"},e={y:false,x2:false,y2:false,x:false},h={};
for(var i in d){h[d[i]]=f.page[i]+this.options.offset[i];if(h[d[i]]<0){e[i]=true;}if((h[d[i]]+g[i]-b[i])>c[i]-this.options.windowPadding[i]){h[d[i]]=f.page[i]-this.options.offset[i]-g[i];
e[i+"2"]=true;}}this.fireEvent("bound",e);this.tip.setStyles(h);},fill:function(b,c){if(typeof c=="string"){b.set("html",c);}else{b.adopt(c);}},show:function(b){if(!this.tip){document.id(this);
}if(!this.tip.getParent()){this.tip.inject(document.body);}this.fireEvent("show",[this.tip,b]);},hide:function(b){if(!this.tip){document.id(this);}this.fireEvent("hide",[this.tip,b]);
}});})();(function(){var a={json:JSON.decode};Locale.Set.defineParser=function(b,c){a[b]=c;};Locale.Set.from=function(d,c){if(instanceOf(d,Locale.Set)){return d;
}if(!c&&typeOf(d)=="string"){c="json";}if(a[c]){d=a[c](d);}var b=new Locale.Set;b.sets=d.sets||{};if(d.inherits){b.inherits.locales=Array.from(d.inherits.locales);
b.inherits.sets=d.inherits.sets||{};}return b;};})();Locale.define("ar","Date",{dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M"});
Locale.define("ar","FormValidator",{required:"هذا الحقل مطلوب.",minLength:"رجاءً إدخال {minLength} أحرف على الأقل (تم إدخال {length} أحرف).",maxLength:"الرجاء عدم إدخال أكثر من {maxLength} أحرف (تم إدخال {length} أحرف).",integer:"الرجاء إدخال عدد صحيح في هذا الحقل. أي رقم ذو كسر عشري أو مئوي (مثال 1.25 ) غير مسموح.",numeric:'الرجاء إدخال قيم رقمية في هذا الحقل (مثال "1" أو "1.1" أو "-1" أو "-1.1").',digits:"الرجاء أستخدام قيم رقمية وعلامات ترقيمية فقط في هذا الحقل (مثال, رقم هاتف مع نقطة أو شحطة)",alpha:"الرجاء أستخدام أحرف فقط (ا-ي) في هذا الحقل. أي فراغات أو علامات غير مسموحة.",alphanum:"الرجاء أستخدام أحرف فقط (ا-ي) أو أرقام (0-9) فقط في هذا الحقل. أي فراغات أو علامات غير مسموحة.",dateSuchAs:"الرجاء إدخال تاريخ صحيح كالتالي {date}",dateInFormatMDY:"الرجاء إدخال تاريخ صحيح (مثال, 31-12-1999)",email:"الرجاء إدخال بريد إلكتروني صحيح.",url:"الرجاء إدخال عنوان إلكتروني صحيح مثل http://www.example.com",currencyDollar:"الرجاء إدخال قيمة $ صحيحة. مثال, 100.00$",oneRequired:"الرجاء إدخال قيمة في أحد هذه الحقول على الأقل.",errorPrefix:"خطأ: ",warningPrefix:"تحذير: "});
Locale.define("ca-CA","Date",{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juli","Agost","Setembre","Octubre","Novembre","Desembre"],months_abbr:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],days_abbr:["dg","dl","dt","dc","dj","dv","ds"],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:0,ordinal:"",lessThanMinuteAgo:"fa menys d`un minut",minuteAgo:"fa un minut",minutesAgo:"fa {delta} minuts",hourAgo:"fa un hora",hoursAgo:"fa unes {delta} hores",dayAgo:"fa un dia",daysAgo:"fa {delta} dies",lessThanMinuteUntil:"menys d`un minut des d`ara",minuteUntil:"un minut des d`ara",minutesUntil:"{delta} minuts des d`ara",hourUntil:"un hora des d`ara",hoursUntil:"unes {delta} hores des d`ara",dayUntil:"1 dia des d`ara",daysUntil:"{delta} dies des d`ara"});
Locale.define("ca-CA","FormValidator",{required:"Aquest camp es obligatori.",minLength:"Per favor introdueix al menys {minLength} caracters (has introduit {length} caracters).",maxLength:"Per favor introdueix no mes de {maxLength} caracters (has introduit {length} caracters).",integer:"Per favor introdueix un nombre enter en aquest camp. Nombres amb decimals (p.e. 1,25) no estan permesos.",numeric:'Per favor introdueix sols valors numerics en aquest camp (p.e. "1" o "1,1" o "-1" o "-1,1").',digits:"Per favor usa sols numeros i puntuacio en aquest camp (per exemple, un nombre de telefon amb guions i punts no esta permes).",alpha:"Per favor utilitza lletres nomes (a-z) en aquest camp. No s´admiteixen espais ni altres caracters.",alphanum:"Per favor, utilitza nomes lletres (a-z) o numeros (0-9) en aquest camp. No s´admiteixen espais ni altres caracters.",dateSuchAs:"Per favor introdueix una data valida com {date}",dateInFormatMDY:'Per favor introdueix una data valida com DD/MM/YYYY (p.e. "31/12/1999")',email:'Per favor, introdueix una adreça de correu electronic valida. Per exemple, "fred@domain.com".',url:"Per favor introdueix una URL valida com http://www.example.com.",currencyDollar:"Per favor introdueix una quantitat valida de €. Per exemple €100,00 .",oneRequired:"Per favor introdueix alguna cosa per al menys una d´aquestes entrades.",errorPrefix:"Error: ",warningPrefix:"Avis: ",noSpace:"No poden haver espais en aquesta entrada.",reqChkByNode:"No hi han elements seleccionats.",requiredChk:"Aquest camp es obligatori.",reqChkByName:"Per favor selecciona una {label}.",match:"Aquest camp necessita coincidir amb el camp {matchName}",startDate:"la data de inici",endDate:"la data de fi",currendDate:"la data actual",afterDate:"La data deu ser igual o posterior a {label}.",beforeDate:"La data deu ser igual o anterior a {label}.",startMonth:"Per favor selecciona un mes d´orige",sameMonth:"Aquestes dos dates deuen estar dins del mateix mes - deus canviar una o altra."});
(function(){var a=function(e,d,c,b){if(e==1){return d;}else{if(e==2||e==3||e==4){return c;}else{return b;}}};Locale.define("cs-CZ","Date",{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],months_abbr:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],days_abbr:["ne","po","út","st","čt","pá","so"],dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H:%M",AM:"dop.",PM:"odp.",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"před chvílí",minuteAgo:"přibližně před minutou",minutesAgo:function(b){return"před {delta} "+a(b,"minutou","minutami","minutami");
},hourAgo:"přibližně před hodinou",hoursAgo:function(b){return"před {delta} "+a(b,"hodinou","hodinami","hodinami");},dayAgo:"před dnem",daysAgo:function(b){return"před {delta} "+a(b,"dnem","dny","dny");
},weekAgo:"před týdnem",weeksAgo:function(b){return"před {delta} "+a(b,"týdnem","týdny","týdny");},monthAgo:"před měsícem",monthsAgo:function(b){return"před {delta} "+a(b,"měsícem","měsíci","měsíci");
},yearAgo:"před rokem",yearsAgo:function(b){return"před {delta} "+a(b,"rokem","lety","lety");},lessThanMinuteUntil:"za chvíli",minuteUntil:"přibližně za minutu",minutesUntil:function(b){return"za {delta} "+a(b,"minutu","minuty","minut");
},hourUntil:"přibližně za hodinu",hoursUntil:function(b){return"za {delta} "+a(b,"hodinu","hodiny","hodin");},dayUntil:"za den",daysUntil:function(b){return"za {delta} "+a(b,"den","dny","dnů");
},weekUntil:"za týden",weeksUntil:function(b){return"za {delta} "+a(b,"týden","týdny","týdnů");},monthUntil:"za měsíc",monthsUntil:function(b){return"za {delta} "+a(b,"měsíc","měsíce","měsíců");
},yearUntil:"za rok",yearsUntil:function(b){return"za {delta} "+a(b,"rok","roky","let");}});})();Locale.define("cs-CZ","FormValidator",{required:"Tato položka je povinná.",minLength:"Zadejte prosím alespoň {minLength} znaků (napsáno {length} znaků).",maxLength:"Zadejte prosím méně než {maxLength} znaků (nápsáno {length} znaků).",integer:"Zadejte prosím celé číslo. Desetinná čísla (např. 1.25) nejsou povolena.",numeric:'Zadejte jen číselné hodnoty (tj. "1" nebo "1.1" nebo "-1" nebo "-1.1").',digits:"Zadejte prosím pouze čísla a interpunkční znaménka(například telefonní číslo s pomlčkami nebo tečkami je povoleno).",alpha:"Zadejte prosím pouze písmena (a-z). Mezery nebo jiné znaky nejsou povoleny.",alphanum:"Zadejte prosím pouze písmena (a-z) nebo číslice (0-9). Mezery nebo jiné znaky nejsou povoleny.",dateSuchAs:"Zadejte prosím platné datum jako {date}",dateInFormatMDY:'Zadejte prosím platné datum jako MM / DD / RRRR (tj. "12/31/1999")',email:'Zadejte prosím platnou e-mailovou adresu. Například "fred@domain.com".',url:"Zadejte prosím platnou URL adresu jako http://www.example.com.",currencyDollar:"Zadejte prosím platnou částku. Například $100.00.",oneRequired:"Zadejte prosím alespoň jednu hodnotu pro tyto položky.",errorPrefix:"Chyba: ",warningPrefix:"Upozornění: ",noSpace:"V této položce nejsou povoleny mezery",reqChkByNode:"Nejsou vybrány žádné položky.",requiredChk:"Tato položka je vyžadována.",reqChkByName:"Prosím vyberte {label}.",match:"Tato položka se musí shodovat s položkou {matchName}",startDate:"datum zahájení",endDate:"datum ukončení",currendDate:"aktuální datum",afterDate:"Datum by mělo být stejné nebo větší než {label}.",beforeDate:"Datum by mělo být stejné nebo menší než {label}.",startMonth:"Vyberte počáteční měsíc.",sameMonth:"Tyto dva datumy musí být ve stejném měsíci - změňte jeden z nich.",creditcard:"Zadané číslo kreditní karty je neplatné. Prosím opravte ho. Bylo zadáno {length} čísel."});
Locale.define("da-DK","Date",{months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],months_abbr:["jan.","feb.","mar.","apr.","maj.","jun.","jul.","aug.","sep.","okt.","nov.","dec."],days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],days_abbr:["søn","man","tir","ons","tor","fre","lør"],dateOrder:["date","month","year"],shortDate:"%d-%m-%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"mindre end et minut siden",minuteAgo:"omkring et minut siden",minutesAgo:"{delta} minutter siden",hourAgo:"omkring en time siden",hoursAgo:"omkring {delta} timer siden",dayAgo:"1 dag siden",daysAgo:"{delta} dage siden",weekAgo:"1 uge siden",weeksAgo:"{delta} uger siden",monthAgo:"1 måned siden",monthsAgo:"{delta} måneder siden",yearAgo:"1 år siden",yearsAgo:"{delta} år siden",lessThanMinuteUntil:"mindre end et minut fra nu",minuteUntil:"omkring et minut fra nu",minutesUntil:"{delta} minutter fra nu",hourUntil:"omkring en time fra nu",hoursUntil:"omkring {delta} timer fra nu",dayUntil:"1 dag fra nu",daysUntil:"{delta} dage fra nu",weekUntil:"1 uge fra nu",weeksUntil:"{delta} uger fra nu",monthUntil:"1 måned fra nu",monthsUntil:"{delta} måneder fra nu",yearUntil:"1 år fra nu",yearsUntil:"{delta} år fra nu"});
Locale.define("da-DK","FormValidator",{required:"Feltet skal udfyldes.",minLength:"Skriv mindst {minLength} tegn (du skrev {length} tegn).",maxLength:"Skriv maksimalt {maxLength} tegn (du skrev {length} tegn).",integer:"Skriv et tal i dette felt. Decimal tal (f.eks. 1.25) er ikke tilladt.",numeric:'Skriv kun tal i dette felt (i.e. "1" eller "1.1" eller "-1" eller "-1.1").',digits:"Skriv kun tal og tegnsætning i dette felt (eksempel, et telefon nummer med bindestreg eller punktum er tilladt).",alpha:"Skriv kun bogstaver (a-z) i dette felt. Mellemrum og andre tegn er ikke tilladt.",alphanum:"Skriv kun bogstaver (a-z) eller tal (0-9) i dette felt. Mellemrum og andre tegn er ikke tilladt.",dateSuchAs:"Skriv en gyldig dato som {date}",dateInFormatMDY:'Skriv dato i formatet DD-MM-YYYY (f.eks. "31-12-1999")',email:'Skriv en gyldig e-mail adresse. F.eks "fred@domain.com".',url:'Skriv en gyldig URL adresse. F.eks "http://www.example.com".',currencyDollar:"Skriv et gldigt beløb. F.eks Kr.100.00 .",oneRequired:"Et eller flere af felterne i denne formular skal udfyldes.",errorPrefix:"Fejl: ",warningPrefix:"Advarsel: ",noSpace:"Der må ikke benyttes mellemrum i dette felt.",reqChkByNode:"Foretag et valg.",requiredChk:"Dette felt skal udfyldes.",reqChkByName:"Vælg en {label}.",match:"Dette felt skal matche {matchName} feltet",startDate:"start dato",endDate:"slut dato",currendDate:"dags dato",afterDate:"Datoen skal være større end eller lig med {label}.",beforeDate:"Datoen skal være mindre end eller lig med {label}.",startMonth:"Vælg en start måned",sameMonth:"De valgte datoer skal være i samme måned - skift en af dem."});
Locale.define("de-DE","Date",{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],months_abbr:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],days_abbr:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H:%M",AM:"vormittags",PM:"nachmittags",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"vor weniger als einer Minute",minuteAgo:"vor einer Minute",minutesAgo:"vor {delta} Minuten",hourAgo:"vor einer Stunde",hoursAgo:"vor {delta} Stunden",dayAgo:"vor einem Tag",daysAgo:"vor {delta} Tagen",weekAgo:"vor einer Woche",weeksAgo:"vor {delta} Wochen",monthAgo:"vor einem Monat",monthsAgo:"vor {delta} Monaten",yearAgo:"vor einem Jahr",yearsAgo:"vor {delta} Jahren",lessThanMinuteUntil:"in weniger als einer Minute",minuteUntil:"in einer Minute",minutesUntil:"in {delta} Minuten",hourUntil:"in ca. einer Stunde",hoursUntil:"in ca. {delta} Stunden",dayUntil:"in einem Tag",daysUntil:"in {delta} Tagen",weekUntil:"in einer Woche",weeksUntil:"in {delta} Wochen",monthUntil:"in einem Monat",monthsUntil:"in {delta} Monaten",yearUntil:"in einem Jahr",yearsUntil:"in {delta} Jahren"});
Locale.define("de-CH").inherit("de-DE","Date");Locale.define("de-CH","FormValidator",{required:"Dieses Feld ist obligatorisch.",minLength:"Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).",maxLength:"Bitte geben Sie nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).",integer:"Geben Sie bitte eine ganze Zahl ein. Dezimalzahlen (z.B. 1.25) sind nicht erlaubt.",numeric:"Geben Sie bitte nur Zahlenwerte in dieses Eingabefeld ein (z.B. &quot;1&quot;, &quot;1.1&quot;, &quot;-1&quot; oder &quot;-1.1&quot;).",digits:"Benutzen Sie bitte nur Zahlen und Satzzeichen in diesem Eingabefeld (erlaubt ist z.B. eine Telefonnummer mit Bindestrichen und Punkten).",alpha:"Benutzen Sie bitte nur Buchstaben (a-z) in diesem Feld. Leerzeichen und andere Zeichen sind nicht erlaubt.",alphanum:"Benutzen Sie bitte nur Buchstaben (a-z) und Zahlen (0-9) in diesem Eingabefeld. Leerzeichen und andere Zeichen sind nicht erlaubt.",dateSuchAs:"Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel {date}",dateInFormatMDY:"Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel TT.MM.JJJJ (z.B. &quot;31.12.1999&quot;)",email:"Geben Sie bitte eine g&uuml;ltige E-Mail Adresse ein. Wie zum Beispiel &quot;maria@bernasconi.ch&quot;.",url:"Geben Sie bitte eine g&uuml;ltige URL ein. Wie zum Beispiel http://www.example.com.",currencyDollar:"Geben Sie bitte einen g&uuml;ltigen Betrag in Schweizer Franken ein. Wie zum Beispiel 100.00 CHF .",oneRequired:"Machen Sie f&uuml;r mindestens eines der Eingabefelder einen Eintrag.",errorPrefix:"Fehler: ",warningPrefix:"Warnung: ",noSpace:"In diesem Eingabefeld darf kein Leerzeichen sein.",reqChkByNode:"Es wurden keine Elemente gew&auml;hlt.",requiredChk:"Dieses Feld ist obligatorisch.",reqChkByName:"Bitte w&auml;hlen Sie ein {label}.",match:"Dieses Eingabefeld muss mit dem Feld {matchName} &uuml;bereinstimmen.",startDate:"Das Anfangsdatum",endDate:"Das Enddatum",currendDate:"Das aktuelle Datum",afterDate:"Das Datum sollte zur gleichen Zeit oder sp&auml;ter sein {label}.",beforeDate:"Das Datum sollte zur gleichen Zeit oder fr&uuml;her sein {label}.",startMonth:"W&auml;hlen Sie bitte einen Anfangsmonat",sameMonth:"Diese zwei Datumsangaben m&uuml;ssen im selben Monat sein - Sie m&uuml;ssen eine von beiden ver&auml;ndern.",creditcard:"Die eingegebene Kreditkartennummer ist ung&uuml;ltig. Bitte &uuml;berpr&uuml;fen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben."});
Locale.define("de-DE","FormValidator",{required:"Dieses Eingabefeld muss ausgefüllt werden.",minLength:"Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben nur {length} Zeichen eingegeben).",maxLength:"Geben Sie bitte nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).",integer:'Geben Sie in diesem Eingabefeld bitte eine ganze Zahl ein. Dezimalzahlen (z.B. "1.25") sind nicht erlaubt.',numeric:'Geben Sie in diesem Eingabefeld bitte nur Zahlenwerte (z.B. "1", "1.1", "-1" oder "-1.1") ein.',digits:"Geben Sie in diesem Eingabefeld bitte nur Zahlen und Satzzeichen ein (z.B. eine Telefonnummer mit Bindestrichen und Punkten ist erlaubt).",alpha:"Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) ein. Leerzeichen und andere Zeichen sind nicht erlaubt.",alphanum:"Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) und Zahlen (0-9) ein. Leerzeichen oder andere Zeichen sind nicht erlaubt.",dateSuchAs:'Geben Sie bitte ein gültiges Datum ein (z.B. "{date}").',dateInFormatMDY:'Geben Sie bitte ein gültiges Datum im Format TT.MM.JJJJ ein (z.B. "31.12.1999").',email:'Geben Sie bitte eine gültige E-Mail-Adresse ein (z.B. "max@mustermann.de").',url:'Geben Sie bitte eine gültige URL ein (z.B. "http://www.example.com").',currencyDollar:"Geben Sie bitte einen gültigen Betrag in EURO ein (z.B. 100.00€).",oneRequired:"Bitte füllen Sie mindestens ein Eingabefeld aus.",errorPrefix:"Fehler: ",warningPrefix:"Warnung: ",noSpace:"Es darf kein Leerzeichen in diesem Eingabefeld sein.",reqChkByNode:"Es wurden keine Elemente gewählt.",requiredChk:"Dieses Feld muss ausgefüllt werden.",reqChkByName:"Bitte wählen Sie ein {label}.",match:"Dieses Eingabefeld muss mit dem {matchName} Eingabefeld übereinstimmen.",startDate:"Das Anfangsdatum",endDate:"Das Enddatum",currendDate:"Das aktuelle Datum",afterDate:"Das Datum sollte zur gleichen Zeit oder später sein als {label}.",beforeDate:"Das Datum sollte zur gleichen Zeit oder früher sein als {label}.",startMonth:"Wählen Sie bitte einen Anfangsmonat",sameMonth:"Diese zwei Datumsangaben müssen im selben Monat sein - Sie müssen eines von beiden verändern.",creditcard:"Die eingegebene Kreditkartennummer ist ungültig. Bitte überprüfen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben."});
Locale.define("EU","Number",{decimal:",",group:".",currency:{prefix:"€ "}});Locale.define("de-DE").inherit("EU","Number");Locale.define("en-GB","Date",{dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M"}).inherit("en-US","Date");
Locale.define("es-ES","Date",{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],months_abbr:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],days_abbr:["dom","lun","mar","mié","juv","vie","sáb"],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"hace menos de un minuto",minuteAgo:"hace un minuto",minutesAgo:"hace {delta} minutos",hourAgo:"hace una hora",hoursAgo:"hace unas {delta} horas",dayAgo:"hace un día",daysAgo:"hace {delta} días",weekAgo:"hace una semana",weeksAgo:"hace unas {delta} semanas",monthAgo:"hace un mes",monthsAgo:"hace {delta} meses",yearAgo:"hace un año",yearsAgo:"hace {delta} años",lessThanMinuteUntil:"menos de un minuto desde ahora",minuteUntil:"un minuto desde ahora",minutesUntil:"{delta} minutos desde ahora",hourUntil:"una hora desde ahora",hoursUntil:"unas {delta} horas desde ahora",dayUntil:"un día desde ahora",daysUntil:"{delta} días desde ahora",weekUntil:"una semana desde ahora",weeksUntil:"unas {delta} semanas desde ahora",monthUntil:"un mes desde ahora",monthsUntil:"{delta} meses desde ahora",yearUntil:"un año desde ahora",yearsUntil:"{delta} años desde ahora"});
Locale.define("es-AR").inherit("es-ES","Date");Locale.define("es-AR","FormValidator",{required:"Este campo es obligatorio.",minLength:"Por favor ingrese al menos {minLength} caracteres (ha ingresado {length} caracteres).",maxLength:"Por favor no ingrese más de {maxLength} caracteres (ha ingresado {length} caracteres).",integer:"Por favor ingrese un número entero en este campo. Números con decimales (p.e. 1,25) no se permiten.",numeric:'Por favor ingrese solo valores numéricos en este campo (p.e. "1" o "1,1" o "-1" o "-1,1").',digits:"Por favor use sólo números y puntuación en este campo (por ejemplo, un número de teléfono con guiones y/o puntos no está permitido).",alpha:"Por favor use sólo letras (a-z) en este campo. No se permiten espacios ni otros caracteres.",alphanum:"Por favor, usa sólo letras (a-z) o números (0-9) en este campo. No se permiten espacios u otros caracteres.",dateSuchAs:"Por favor ingrese una fecha válida como {date}",dateInFormatMDY:'Por favor ingrese una fecha válida, utulizando el formato DD/MM/YYYY (p.e. "31/12/1999")',email:'Por favor, ingrese una dirección de e-mail válida. Por ejemplo, "fred@dominio.com".',url:"Por favor ingrese una URL válida como http://www.example.com.",currencyDollar:"Por favor ingrese una cantidad válida de pesos. Por ejemplo $100,00 .",oneRequired:"Por favor ingrese algo para por lo menos una de estas entradas.",errorPrefix:"Error: ",warningPrefix:"Advertencia: ",noSpace:"No se permiten espacios en este campo.",reqChkByNode:"No hay elementos seleccionados.",requiredChk:"Este campo es obligatorio.",reqChkByName:"Por favor selecciona una {label}.",match:"Este campo necesita coincidir con el campo {matchName}",startDate:"la fecha de inicio",endDate:"la fecha de fin",currendDate:"la fecha actual",afterDate:"La fecha debe ser igual o posterior a {label}.",beforeDate:"La fecha debe ser igual o anterior a {label}.",startMonth:"Por favor selecciona un mes de origen",sameMonth:"Estas dos fechas deben estar en el mismo mes - debes cambiar una u otra."});
Locale.define("es-ES","FormValidator",{required:"Este campo es obligatorio.",minLength:"Por favor introduce al menos {minLength} caracteres (has introducido {length} caracteres).",maxLength:"Por favor introduce no m&aacute;s de {maxLength} caracteres (has introducido {length} caracteres).",integer:"Por favor introduce un n&uacute;mero entero en este campo. N&uacute;meros con decimales (p.e. 1,25) no se permiten.",numeric:'Por favor introduce solo valores num&eacute;ricos en este campo (p.e. "1" o "1,1" o "-1" o "-1,1").',digits:"Por favor usa solo n&uacute;meros y puntuaci&oacute;n en este campo (por ejemplo, un n&uacute;mero de tel&eacute;fono con guiones y puntos no esta permitido).",alpha:"Por favor usa letras solo (a-z) en este campo. No se admiten espacios ni otros caracteres.",alphanum:"Por favor, usa solo letras (a-z) o n&uacute;meros (0-9) en este campo. No se admiten espacios ni otros caracteres.",dateSuchAs:"Por favor introduce una fecha v&aacute;lida como {date}",dateInFormatMDY:'Por favor introduce una fecha v&aacute;lida como DD/MM/YYYY (p.e. "31/12/1999")',email:'Por favor, introduce una direcci&oacute;n de email v&aacute;lida. Por ejemplo, "fred@domain.com".',url:"Por favor introduce una URL v&aacute;lida como http://www.example.com.",currencyDollar:"Por favor introduce una cantidad v&aacute;lida de €. Por ejemplo €100,00 .",oneRequired:"Por favor introduce algo para por lo menos una de estas entradas.",errorPrefix:"Error: ",warningPrefix:"Aviso: ",noSpace:"No pueden haber espacios en esta entrada.",reqChkByNode:"No hay elementos seleccionados.",requiredChk:"Este campo es obligatorio.",reqChkByName:"Por favor selecciona una {label}.",match:"Este campo necesita coincidir con el campo {matchName}",startDate:"la fecha de inicio",endDate:"la fecha de fin",currendDate:"la fecha actual",afterDate:"La fecha debe ser igual o posterior a {label}.",beforeDate:"La fecha debe ser igual o anterior a {label}.",startMonth:"Por favor selecciona un mes de origen",sameMonth:"Estas dos fechas deben estar en el mismo mes - debes cambiar una u otra."});
Locale.define("et-EE","Date",{months:["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],months_abbr:["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],days:["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],days_abbr:["pühap","esmasp","teisip","kolmap","neljap","reede","laup"],dateOrder:["month","date","year"],shortDate:"%m.%d.%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"vähem kui minut aega tagasi",minuteAgo:"umbes minut aega tagasi",minutesAgo:"{delta} minutit tagasi",hourAgo:"umbes tund aega tagasi",hoursAgo:"umbes {delta} tundi tagasi",dayAgo:"1 päev tagasi",daysAgo:"{delta} päeva tagasi",weekAgo:"1 nädal tagasi",weeksAgo:"{delta} nädalat tagasi",monthAgo:"1 kuu tagasi",monthsAgo:"{delta} kuud tagasi",yearAgo:"1 aasta tagasi",yearsAgo:"{delta} aastat tagasi",lessThanMinuteUntil:"vähem kui minuti aja pärast",minuteUntil:"umbes minuti aja pärast",minutesUntil:"{delta} minuti pärast",hourUntil:"umbes tunni aja pärast",hoursUntil:"umbes {delta} tunni pärast",dayUntil:"1 päeva pärast",daysUntil:"{delta} päeva pärast",weekUntil:"1 nädala pärast",weeksUntil:"{delta} nädala pärast",monthUntil:"1 kuu pärast",monthsUntil:"{delta} kuu pärast",yearUntil:"1 aasta pärast",yearsUntil:"{delta} aasta pärast"});
Locale.define("et-EE","FormValidator",{required:"Väli peab olema täidetud.",minLength:"Palun sisestage vähemalt {minLength} tähte (te sisestasite {length} tähte).",maxLength:"Palun ärge sisestage rohkem kui {maxLength} tähte (te sisestasite {length} tähte).",integer:"Palun sisestage väljale täisarv. Kümnendarvud (näiteks 1.25) ei ole lubatud.",numeric:'Palun sisestage ainult numbreid väljale (näiteks "1", "1.1", "-1" või "-1.1").',digits:"Palun kasutage ainult numbreid ja kirjavahemärke (telefoninumbri sisestamisel on lubatud kasutada kriipse ja punkte).",alpha:"Palun kasutage ainult tähti (a-z). Tühikud ja teised sümbolid on keelatud.",alphanum:"Palun kasutage ainult tähti (a-z) või numbreid (0-9). Tühikud ja teised sümbolid on keelatud.",dateSuchAs:"Palun sisestage kehtiv kuupäev kujul {date}",dateInFormatMDY:'Palun sisestage kehtiv kuupäev kujul MM.DD.YYYY (näiteks: "12.31.1999").',email:'Palun sisestage kehtiv e-maili aadress (näiteks: "fred@domain.com").',url:"Palun sisestage kehtiv URL (näiteks: http://www.example.com).",currencyDollar:"Palun sisestage kehtiv $ summa (näiteks: $100.00).",oneRequired:"Palun sisestage midagi vähemalt ühele antud väljadest.",errorPrefix:"Viga: ",warningPrefix:"Hoiatus: ",noSpace:"Väli ei tohi sisaldada tühikuid.",reqChkByNode:"Ükski väljadest pole valitud.",requiredChk:"Välja täitmine on vajalik.",reqChkByName:"Palun valige üks {label}.",match:"Väli peab sobima {matchName} väljaga",startDate:"algkuupäev",endDate:"lõppkuupäev",currendDate:"praegune kuupäev",afterDate:"Kuupäev peab olema võrdne või pärast {label}.",beforeDate:"Kuupäev peab olema võrdne või enne {label}.",startMonth:"Palun valige algkuupäev.",sameMonth:"Antud kaks kuupäeva peavad olema samas kuus - peate muutma ühte kuupäeva."});
Locale.define("fa","Date",{months:["ژانویه","فوریه","مارس","آپریل","مه","ژوئن","ژوئیه","آگوست","سپتامبر","اکتبر","نوامبر","دسامبر"],months_abbr:["1","2","3","4","5","6","7","8","9","10","11","12"],days:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],days_abbr:["ي","د","س","چ","پ","ج","ش"],dateOrder:["month","date","year"],shortDate:"%m/%d/%Y",shortTime:"%I:%M%p",AM:"ق.ظ",PM:"ب.ظ",ordinal:"ام",lessThanMinuteAgo:"کمتر از یک دقیقه پیش",minuteAgo:"حدود یک دقیقه پیش",minutesAgo:"{delta} دقیقه پیش",hourAgo:"حدود یک ساعت پیش",hoursAgo:"حدود {delta} ساعت پیش",dayAgo:"1 روز پیش",daysAgo:"{delta} روز پیش",weekAgo:"1 هفته پیش",weeksAgo:"{delta} هفته پیش",monthAgo:"1 ماه پیش",monthsAgo:"{delta} ماه پیش",yearAgo:"1 سال پیش",yearsAgo:"{delta} سال پیش",lessThanMinuteUntil:"کمتر از یک دقیقه از حالا",minuteUntil:"حدود یک دقیقه از حالا",minutesUntil:"{delta} دقیقه از حالا",hourUntil:"حدود یک ساعت از حالا",hoursUntil:"حدود {delta} ساعت از حالا",dayUntil:"1 روز از حالا",daysUntil:"{delta} روز از حالا",weekUntil:"1 هفته از حالا",weeksUntil:"{delta} هفته از حالا",monthUntil:"1 ماه از حالا",monthsUntil:"{delta} ماه از حالا",yearUntil:"1 سال از حالا",yearsUntil:"{delta} سال از حالا"});
Locale.define("fa","FormValidator",{required:"این فیلد الزامی است.",minLength:"شما باید حداقل {minLength} حرف وارد کنید ({length} حرف وارد کرده اید).",maxLength:"لطفا حداکثر {maxLength} حرف وارد کنید (شما {length} حرف وارد کرده اید).",integer:"لطفا از عدد صحیح استفاده کنید. اعداد اعشاری (مانند 1.25) مجاز نیستند.",numeric:'لطفا فقط داده عددی وارد کنید (مانند "1" یا "1.1" یا "1-" یا "1.1-").',digits:"لطفا فقط از اعداد و علامتها در این فیلد استفاده کنید (برای مثال شماره تلفن با خط تیره و نقطه قابل قبول است).",alpha:"لطفا فقط از حروف الفباء برای این بخش استفاده کنید. کاراکترهای دیگر و فاصله مجاز نیستند.",alphanum:"لطفا فقط از حروف الفباء و اعداد در این بخش استفاده کنید. کاراکترهای دیگر و فاصله مجاز نیستند.",dateSuchAs:"لطفا یک تاریخ معتبر مانند {date} وارد کنید.",dateInFormatMDY:'لطفا یک تاریخ معتبر به شکل MM/DD/YYYY وارد کنید (مانند "12/31/1999").',email:'لطفا یک آدرس ایمیل معتبر وارد کنید. برای مثال "fred@domain.com".',url:"لطفا یک URL معتبر مانند http://www.example.com وارد کنید.",currencyDollar:"لطفا یک محدوده معتبر برای این بخش وارد کنید مانند 100.00$ .",oneRequired:"لطفا حداقل یکی از فیلدها را پر کنید.",errorPrefix:"خطا: ",warningPrefix:"هشدار: ",noSpace:"استفاده از فاصله در این بخش مجاز نیست.",reqChkByNode:"موردی انتخاب نشده است.",requiredChk:"این فیلد الزامی است.",reqChkByName:"لطفا یک {label} را انتخاب کنید.",match:"این فیلد باید با فیلد {matchName} مطابقت داشته باشد.",startDate:"تاریخ شروع",endDate:"تاریخ پایان",currendDate:"تاریخ کنونی",afterDate:"تاریخ میبایست برابر یا بعد از {label} باشد",beforeDate:"تاریخ میبایست برابر یا قبل از {label} باشد",startMonth:"لطفا ماه شروع را انتخاب کنید",sameMonth:"این دو تاریخ باید در یک ماه باشند - شما باید یکی یا هر دو را تغییر دهید.",creditcard:"شماره کارت اعتباری که وارد کرده اید معتبر نیست. لطفا شماره را بررسی کنید و مجددا تلاش کنید. {length} رقم وارد شده است."});
Locale.define("fi-FI","Date",{months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],months_abbr:["tammik.","helmik.","maalisk.","huhtik.","toukok.","kesäk.","heinäk.","elok.","syysk.","lokak.","marrask.","jouluk."],days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],days_abbr:["su","ma","ti","ke","to","pe","la"],dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"vajaa minuutti sitten",minuteAgo:"noin minuutti sitten",minutesAgo:"{delta} minuuttia sitten",hourAgo:"noin tunti sitten",hoursAgo:"noin {delta} tuntia sitten",dayAgo:"päivä sitten",daysAgo:"{delta} päivää sitten",weekAgo:"viikko sitten",weeksAgo:"{delta} viikkoa sitten",monthAgo:"kuukausi sitten",monthsAgo:"{delta} kuukautta sitten",yearAgo:"vuosi sitten",yearsAgo:"{delta} vuotta sitten",lessThanMinuteUntil:"vajaan minuutin kuluttua",minuteUntil:"noin minuutin kuluttua",minutesUntil:"{delta} minuutin kuluttua",hourUntil:"noin tunnin kuluttua",hoursUntil:"noin {delta} tunnin kuluttua",dayUntil:"päivän kuluttua",daysUntil:"{delta} päivän kuluttua",weekUntil:"viikon kuluttua",weeksUntil:"{delta} viikon kuluttua",monthUntil:"kuukauden kuluttua",monthsUntil:"{delta} kuukauden kuluttua",yearUntil:"vuoden kuluttua",yearsUntil:"{delta} vuoden kuluttua"});
Locale.define("fi-FI","FormValidator",{required:"Tämä kenttä on pakollinen.",minLength:"Ole hyvä ja anna vähintään {minLength} merkkiä (annoit {length} merkkiä).",maxLength:"Älä anna enempää kuin {maxLength} merkkiä (annoit {length} merkkiä).",integer:"Ole hyvä ja anna kokonaisluku. Luvut, joissa on desimaaleja (esim. 1.25) eivät ole sallittuja.",numeric:'Anna tähän kenttään lukuarvo (kuten "1" tai "1.1" tai "-1" tai "-1.1").',digits:"Käytä pelkästään numeroita ja välimerkkejä tässä kentässä (syötteet, kuten esim. puhelinnumero, jossa on väliviivoja, pilkkuja tai pisteitä, kelpaa).",alpha:"Anna tähän kenttään vain kirjaimia (a-z). Välilyönnit tai muut merkit eivät ole sallittuja.",alphanum:"Anna tähän kenttään vain kirjaimia (a-z) tai numeroita (0-9). Välilyönnit tai muut merkit eivät ole sallittuja.",dateSuchAs:"Ole hyvä ja anna kelvollinen päivmäärä, kuten esimerkiksi {date}",dateInFormatMDY:'Ole hyvä ja anna kelvollinen päivämäärä muodossa pp/kk/vvvv (kuten "12/31/1999")',email:'Ole hyvä ja anna kelvollinen sähköpostiosoite (kuten esimerkiksi "matti@meikalainen.com").',url:"Ole hyvä ja anna kelvollinen URL, kuten esimerkiksi http://www.example.com.",currencyDollar:"Ole hyvä ja anna kelvollinen eurosumma (kuten esimerkiksi 100,00 EUR) .",oneRequired:"Ole hyvä ja syötä jotakin ainakin johonkin näistä kentistä.",errorPrefix:"Virhe: ",warningPrefix:"Varoitus: ",noSpace:"Tässä syötteessä ei voi olla välilyöntejä",reqChkByNode:"Ei valintoja.",requiredChk:"Tämä kenttä on pakollinen.",reqChkByName:"Ole hyvä ja valitse {label}.",match:"Tämän kentän tulee vastata kenttää {matchName}",startDate:"alkupäivämäärä",endDate:"loppupäivämäärä",currendDate:"nykyinen päivämäärä",afterDate:"Päivämäärän tulisi olla sama tai myöhäisempi ajankohta kuin {label}.",beforeDate:"Päivämäärän tulisi olla sama tai aikaisempi ajankohta kuin {label}.",startMonth:"Ole hyvä ja valitse aloituskuukausi",sameMonth:"Näiden kahden päivämäärän tulee olla saman kuun sisällä -- sinun pitää muuttaa jompaa kumpaa.",creditcard:"Annettu luottokortin numero ei kelpaa. Ole hyvä ja tarkista numero sekä yritä uudelleen. {length} numeroa syötetty."});
Locale.define("fi-FI","Number",{group:" "}).inherit("EU","Number");Locale.define("fr-FR","Date",{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],months_abbr:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],days_abbr:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:function(a){return(a>1)?"":"er";
},lessThanMinuteAgo:"il y a moins d'une minute",minuteAgo:"il y a une minute",minutesAgo:"il y a {delta} minutes",hourAgo:"il y a une heure",hoursAgo:"il y a {delta} heures",dayAgo:"il y a un jour",daysAgo:"il y a {delta} jours",weekAgo:"il y a une semaine",weeksAgo:"il y a {delta} semaines",monthAgo:"il y a 1 mois",monthsAgo:"il y a {delta} mois",yearthAgo:"il y a 1 an",yearsAgo:"il y a {delta} ans",lessThanMinuteUntil:"dans moins d'une minute",minuteUntil:"dans une minute",minutesUntil:"dans {delta} minutes",hourUntil:"dans une heure",hoursUntil:"dans {delta} heures",dayUntil:"dans un jour",daysUntil:"dans {delta} jours",weekUntil:"dans 1 semaine",weeksUntil:"dans {delta} semaines",monthUntil:"dans 1 mois",monthsUntil:"dans {delta} mois",yearUntil:"dans 1 an",yearsUntil:"dans {delta} ans"});
Locale.define("fr-FR","FormValidator",{required:"Ce champ est obligatoire.",length:"Veuillez saisir {length} caract&egrave;re(s) (vous avez saisi {elLength} caract&egrave;re(s)",minLength:"Veuillez saisir un minimum de {minLength} caract&egrave;re(s) (vous avez saisi {length} caract&egrave;re(s)).",maxLength:"Veuillez saisir un maximum de {maxLength} caract&egrave;re(s) (vous avez saisi {length} caract&egrave;re(s)).",integer:'Veuillez saisir un nombre entier dans ce champ. Les nombres d&eacute;cimaux (ex : "1,25") ne sont pas autoris&eacute;s.',numeric:'Veuillez saisir uniquement des chiffres dans ce champ (ex : "1" ou "1,1" ou "-1" ou "-1,1").',digits:"Veuillez saisir uniquement des chiffres et des signes de ponctuation dans ce champ (ex : un num&eacute;ro de t&eacute;l&eacute;phone avec des traits d'union est autoris&eacute;).",alpha:"Veuillez saisir uniquement des lettres (a-z) dans ce champ. Les espaces ou autres caract&egrave;res ne sont pas autoris&eacute;s.",alphanum:"Veuillez saisir uniquement des lettres (a-z) ou des chiffres (0-9) dans ce champ. Les espaces ou autres caract&egrave;res ne sont pas autoris&eacute;s.",dateSuchAs:"Veuillez saisir une date correcte comme {date}",dateInFormatMDY:'Veuillez saisir une date correcte, au format JJ/MM/AAAA (ex : "31/11/1999").',email:'Veuillez saisir une adresse de courrier &eacute;lectronique. Par example "fred@domaine.com".',url:"Veuillez saisir une URL, comme http://www.example.com.",currencyDollar:"Veuillez saisir une quantit&eacute; correcte. Par example 100,00&euro;.",oneRequired:"Veuillez s&eacute;lectionner au moins une de ces options.",errorPrefix:"Erreur : ",warningPrefix:"Attention : ",noSpace:"Ce champ n'accepte pas les espaces.",reqChkByNode:"Aucun &eacute;l&eacute;ment n'est s&eacute;lectionn&eacute;.",requiredChk:"Ce champ est obligatoire.",reqChkByName:"Veuillez s&eacute;lectionner un(e) {label}.",match:"Ce champ doit correspondre avec le champ {matchName}.",startDate:"date de d&eacute;but",endDate:"date de fin",currendDate:"date actuelle",afterDate:"La date doit &ecirc;tre identique ou post&eacute;rieure &agrave; {label}.",beforeDate:"La date doit &ecirc;tre identique ou ant&eacute;rieure &agrave; {label}.",startMonth:"Veuillez s&eacute;lectionner un mois de d&eacute;but.",sameMonth:"Ces deux dates doivent &ecirc;tre dans le m&ecirc;me mois - vous devez en modifier une.",creditcard:"Le num&eacute;ro de carte de cr&eacute;dit est invalide. Merci de v&eacute;rifier le num&eacute;ro et de r&eacute;essayer. Vous avez entr&eacute; {length} chiffre(s)."});
Locale.define("fr-FR","Number",{group:" "}).inherit("EU","Number");Locale.define("he-IL","Date",{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],months_abbr:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],days_abbr:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:0,ordinal:"",lessThanMinuteAgo:"לפני פחות מדקה",minuteAgo:"לפני כדקה",minutesAgo:"לפני {delta} דקות",hourAgo:"לפני כשעה",hoursAgo:"לפני {delta} שעות",dayAgo:"לפני יום",daysAgo:"לפני {delta} ימים",weekAgo:"לפני שבוע",weeksAgo:"לפני {delta} שבועות",monthAgo:"לפני חודש",monthsAgo:"לפני {delta} חודשים",yearAgo:"לפני שנה",yearsAgo:"לפני {delta} שנים",lessThanMinuteUntil:"בעוד פחות מדקה",minuteUntil:"בעוד כדקה",minutesUntil:"בעוד {delta} דקות",hourUntil:"בעוד כשעה",hoursUntil:"בעוד {delta} שעות",dayUntil:"בעוד יום",daysUntil:"בעוד {delta} ימים",weekUntil:"בעוד שבוע",weeksUntil:"בעוד {delta} שבועות",monthUntil:"בעוד חודש",monthsUntil:"בעוד {delta} חודשים",yearUntil:"בעוד שנה",yearsUntil:"בעוד {delta} שנים"});
Locale.define("he-IL","FormValidator",{required:"נא למלא שדה זה.",minLength:"נא להזין לפחות {minLength} תווים (הזנת {length} תווים).",maxLength:"נא להזין עד {maxLength} תווים (הזנת {length} תווים).",integer:"נא להזין מספר שלם לשדה זה. מספרים עשרוניים (כמו 1.25) אינם חוקיים.",numeric:'נא להזין ערך מספרי בלבד בשדה זה (כמו "1", "1.1", "-1" או "-1.1").',digits:"נא להזין רק ספרות וסימני הפרדה בשדה זה (למשל, מספר טלפון עם מקפים או נקודות הוא חוקי).",alpha:"נא להזין רק אותיות באנגלית (a-z) בשדה זה. רווחים או תווים אחרים אינם חוקיים.",alphanum:"נא להזין רק אותריות באנגלית (a-z) או ספרות (0-9) בשדה זה. אווחרים או תווים אחרים אינם חוקיים.",dateSuchAs:"נא להזין תאריך חוקי, כמו {date}",dateInFormatMDY:'נא להזין תאריך חוקי בפורמט MM/DD/YYYY (כמו "12/31/1999")',email:'נא להזין כתובת אימייל חוקית. לדוגמה: "fred@domain.com".',url:"נא להזין כתובת אתר חוקית, כמו http://www.example.com.",currencyDollar:"נא להזין סכום דולרי חוקי. לדוגמה $100.00.",oneRequired:"נא לבחור לפחות בשדה אחד.",errorPrefix:"שגיאה: ",warningPrefix:"אזהרה: ",noSpace:"אין להזין רווחים בשדה זה.",reqChkByNode:"נא לבחור אחת מהאפשרויות.",requiredChk:"שדה זה נדרש.",reqChkByName:"נא לבחור {label}.",match:"שדה זה צריך להתאים לשדה {matchName}",startDate:"תאריך ההתחלה",endDate:"תאריך הסיום",currendDate:"התאריך הנוכחי",afterDate:"התאריך צריך להיות זהה או אחרי {label}.",beforeDate:"התאריך צריך להיות זהה או לפני {label}.",startMonth:"נא לבחור חודש התחלה",sameMonth:"שני תאריכים אלה צריכים להיות באותו חודש - נא לשנות אחד התאריכים.",creditcard:"מספר כרטיס האשראי שהוזן אינו חוקי. נא לבדוק שנית. הוזנו {length} ספרות."});
Locale.define("he-IL","Number",{decimal:".",group:",",currency:{suffix:" ₪"}});Locale.define("hu-HU","Date",{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],months_abbr:["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],days:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],days_abbr:["V","H","K","Sze","Cs","P","Szo"],dateOrder:["year","month","date"],shortDate:"%Y.%m.%d.",shortTime:"%I:%M",AM:"de.",PM:"du.",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"alig egy perce",minuteAgo:"egy perce",minutesAgo:"{delta} perce",hourAgo:"egy órája",hoursAgo:"{delta} órája",dayAgo:"1 napja",daysAgo:"{delta} napja",weekAgo:"1 hete",weeksAgo:"{delta} hete",monthAgo:"1 hónapja",monthsAgo:"{delta} hónapja",yearAgo:"1 éve",yearsAgo:"{delta} éve",lessThanMinuteUntil:"alig egy perc múlva",minuteUntil:"egy perc múlva",minutesUntil:"{delta} perc múlva",hourUntil:"egy óra múlva",hoursUntil:"{delta} óra múlva",dayUntil:"1 nap múlva",daysUntil:"{delta} nap múlva",weekUntil:"1 hét múlva",weeksUntil:"{delta} hét múlva",monthUntil:"1 hónap múlva",monthsUntil:"{delta} hónap múlva",yearUntil:"1 év múlva",yearsUntil:"{delta} év múlva"});
Locale.define("hu-HU","FormValidator",{required:"A mező kitöltése kötelező.",minLength:"Legalább {minLength} karakter megadása szükséges (megadva {length} karakter).",maxLength:"Legfeljebb {maxLength} karakter megadása lehetséges (megadva {length} karakter).",integer:"Egész szám megadása szükséges. A tizedesjegyek (pl. 1.25) nem engedélyezettek.",numeric:'Szám megadása szükséges (pl. "1" vagy "1.1" vagy "-1" vagy "-1.1").',digits:"Csak számok és írásjelek megadása lehetséges (pl. telefonszám kötőjelek és/vagy perjelekkel).",alpha:"Csak betűk (a-z) megadása lehetséges. Szóköz és egyéb karakterek nem engedélyezettek.",alphanum:"Csak betűk (a-z) vagy számok (0-9) megadása lehetséges. Szóköz és egyéb karakterek nem engedélyezettek.",dateSuchAs:"Valós dátum megadása szükséges (pl. {date}).",dateInFormatMDY:'Valós dátum megadása szükséges ÉÉÉÉ.HH.NN. formában. (pl. "1999.12.31.")',email:'Valós e-mail cím megadása szükséges (pl. "fred@domain.hu").',url:"Valós URL megadása szükséges (pl. http://www.example.com).",currencyDollar:"Valós pénzösszeg megadása szükséges (pl. 100.00 Ft.).",oneRequired:"Az alábbi mezők legalább egyikének kitöltése kötelező.",errorPrefix:"Hiba: ",warningPrefix:"Figyelem: ",noSpace:"A mező nem tartalmazhat szóközöket.",reqChkByNode:"Nincs egyetlen kijelölt elem sem.",requiredChk:"A mező kitöltése kötelező.",reqChkByName:"Egy {label} kiválasztása szükséges.",match:"A mezőnek egyeznie kell a(z) {matchName} mezővel.",startDate:"a kezdet dátuma",endDate:"a vég dátuma",currendDate:"jelenlegi dátum",afterDate:"A dátum nem lehet kisebb, mint {label}.",beforeDate:"A dátum nem lehet nagyobb, mint {label}.",startMonth:"Kezdeti hónap megadása szükséges.",sameMonth:"A két dátumnak ugyanazon hónapban kell lennie.",creditcard:"A megadott bankkártyaszám nem valódi (megadva {length} számjegy)."});
Locale.define("it-IT","Date",{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],months_abbr:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],days_abbr:["dom","lun","mar","mer","gio","ven","sab"],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H.%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"º",lessThanMinuteAgo:"meno di un minuto fa",minuteAgo:"circa un minuto fa",minutesAgo:"circa {delta} minuti fa",hourAgo:"circa un'ora fa",hoursAgo:"circa {delta} ore fa",dayAgo:"circa 1 giorno fa",daysAgo:"circa {delta} giorni fa",weekAgo:"una settimana fa",weeksAgo:"{delta} settimane fa",monthAgo:"un mese fa",monthsAgo:"{delta} mesi fa",yearAgo:"un anno fa",yearsAgo:"{delta} anni fa",lessThanMinuteUntil:"tra meno di un minuto",minuteUntil:"tra circa un minuto",minutesUntil:"tra circa {delta} minuti",hourUntil:"tra circa un'ora",hoursUntil:"tra circa {delta} ore",dayUntil:"tra circa un giorno",daysUntil:"tra circa {delta} giorni",weekUntil:"tra una settimana",weeksUntil:"tra {delta} settimane",monthUntil:"tra un mese",monthsUntil:"tra {delta} mesi",yearUntil:"tra un anno",yearsUntil:"tra {delta} anni"});
Locale.define("it-IT","FormValidator",{required:"Il campo &egrave; obbligatorio.",minLength:"Inserire almeno {minLength} caratteri (ne sono stati inseriti {length}).",maxLength:"Inserire al massimo {maxLength} caratteri (ne sono stati inseriti {length}).",integer:"Inserire un numero intero. Non sono consentiti decimali (es.: 1.25).",numeric:'Inserire solo valori numerici (es.: "1" oppure "1.1" oppure "-1" oppure "-1.1").',digits:"Inserire solo numeri e caratteri di punteggiatura. Per esempio &egrave; consentito un numero telefonico con trattini o punti.",alpha:"Inserire solo lettere (a-z). Non sono consentiti spazi o altri caratteri.",alphanum:"Inserire solo lettere (a-z) o numeri (0-9). Non sono consentiti spazi o altri caratteri.",dateSuchAs:"Inserire una data valida del tipo {date}",dateInFormatMDY:'Inserire una data valida nel formato MM/GG/AAAA (es.: "12/31/1999")',email:'Inserire un indirizzo email valido. Per esempio "nome@dominio.com".',url:'Inserire un indirizzo valido. Per esempio "http://www.example.com".',currencyDollar:'Inserire un importo valido. Per esempio "$100.00".',oneRequired:"Completare almeno uno dei campi richiesti.",errorPrefix:"Errore: ",warningPrefix:"Attenzione: ",noSpace:"Non sono consentiti spazi.",reqChkByNode:"Nessuna voce selezionata.",requiredChk:"Il campo &egrave; obbligatorio.",reqChkByName:"Selezionare un(a) {label}.",match:"Il valore deve corrispondere al campo {matchName}",startDate:"data d'inizio",endDate:"data di fine",currendDate:"data attuale",afterDate:"La data deve corrispondere o essere successiva al {label}.",beforeDate:"La data deve corrispondere o essere precedente al {label}.",startMonth:"Selezionare un mese d'inizio",sameMonth:"Le due date devono essere dello stesso mese - occorre modificarne una."});
Locale.define("ja-JP","Date",{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],months_abbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],days:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],days_abbr:["日","月","火","水","木","金","土"],dateOrder:["year","month","date"],shortDate:"%Y/%m/%d",shortTime:"%H:%M",AM:"午前",PM:"午後",firstDayOfWeek:0,ordinal:"",lessThanMinuteAgo:"1分以内前",minuteAgo:"約1分前",minutesAgo:"約{delta}分前",hourAgo:"約1時間前",hoursAgo:"約{delta}時間前",dayAgo:"1日前",daysAgo:"{delta}日前",weekAgo:"1週間前",weeksAgo:"{delta}週間前",monthAgo:"1ヶ月前",monthsAgo:"{delta}ヶ月前",yearAgo:"1年前",yearsAgo:"{delta}年前",lessThanMinuteUntil:"今から約1分以内",minuteUntil:"今から約1分",minutesUntil:"今から約{delta}分",hourUntil:"今から約1時間",hoursUntil:"今から約{delta}時間",dayUntil:"今から1日間",daysUntil:"今から{delta}日間",weekUntil:"今から1週間",weeksUntil:"今から{delta}週間",monthUntil:"今から1ヶ月",monthsUntil:"今から{delta}ヶ月",yearUntil:"今から1年",yearsUntil:"今から{delta}年"});
Locale.define("ja-JP","FormValidator",{required:"入力は必須です。",minLength:"入力文字数は{minLength}以上にしてください。({length}文字)",maxLength:"入力文字数は{maxLength}以下にしてください。({length}文字)",integer:"整数を入力してください。",numeric:'入力できるのは数値だけです。(例: "1", "1.1", "-1", "-1.1"....)',digits:"入力できるのは数値と句読記号です。 (例: -や+を含む電話番号など).",alpha:"入力できるのは半角英字だけです。それ以外の文字は入力できません。",alphanum:"入力できるのは半角英数字だけです。それ以外の文字は入力できません。",dateSuchAs:"有効な日付を入力してください。{date}",dateInFormatMDY:'日付の書式に誤りがあります。YYYY/MM/DD (i.e. "1999/12/31")',email:"メールアドレスに誤りがあります。",url:"URLアドレスに誤りがあります。",currencyDollar:"金額に誤りがあります。",oneRequired:"ひとつ以上入力してください。",errorPrefix:"エラー: ",warningPrefix:"警告: ",noSpace:"スペースは入力できません。",reqChkByNode:"選択されていません。",requiredChk:"この項目は必須です。",reqChkByName:"{label}を選択してください。",match:"{matchName}が入力されている場合必須です。",startDate:"開始日",endDate:"終了日",currendDate:"今日",afterDate:"{label}以降の日付にしてください。",beforeDate:"{label}以前の日付にしてください。",startMonth:"開始月を選択してください。",sameMonth:"日付が同一です。どちらかを変更してください。"});
Locale.define("ja-JP","Number",{decimal:".",group:",",currency:{decimals:0,prefix:"\\"}});Locale.define("nl-NL","Date",{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],months_abbr:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],days_abbr:["zo","ma","di","wo","do","vr","za"],dateOrder:["date","month","year"],shortDate:"%d-%m-%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"e",lessThanMinuteAgo:"minder dan een minuut geleden",minuteAgo:"ongeveer een minuut geleden",minutesAgo:"{delta} minuten geleden",hourAgo:"ongeveer een uur geleden",hoursAgo:"ongeveer {delta} uur geleden",dayAgo:"een dag geleden",daysAgo:"{delta} dagen geleden",weekAgo:"een week geleden",weeksAgo:"{delta} weken geleden",monthAgo:"een maand geleden",monthsAgo:"{delta} maanden geleden",yearAgo:"een jaar geleden",yearsAgo:"{delta} jaar geleden",lessThanMinuteUntil:"over minder dan een minuut",minuteUntil:"over ongeveer een minuut",minutesUntil:"over {delta} minuten",hourUntil:"over ongeveer een uur",hoursUntil:"over {delta} uur",dayUntil:"over ongeveer een dag",daysUntil:"over {delta} dagen",weekUntil:"over een week",weeksUntil:"over {delta} weken",monthUntil:"over een maand",monthsUntil:"over {delta} maanden",yearUntil:"over een jaar",yearsUntil:"over {delta} jaar"});
Locale.define("nl-NL","FormValidator",{required:"Dit veld is verplicht.",length:"Vul precies {length} karakters in (je hebt {elLength} karakters ingevoerd).",minLength:"Vul minimaal {minLength} karakters in (je hebt {length} karakters ingevoerd).",maxLength:"Vul niet meer dan {maxLength} karakters in (je hebt {length} karakters ingevoerd).",integer:"Vul een getal in. Getallen met decimalen (bijvoorbeeld 1.25) zijn niet toegestaan.",numeric:'Vul alleen numerieke waarden in (bijvoorbeeld "1" of "1.1" of "-1" of "-1.1").',digits:"Vul alleen nummers en leestekens in (bijvoorbeeld een telefoonnummer met streepjes is toegestaan).",alpha:"Vul alleen letters in (a-z). Spaties en andere karakters zijn niet toegestaan.",alphanum:"Vul alleen letters (a-z) of nummers (0-9) in. Spaties en andere karakters zijn niet toegestaan.",dateSuchAs:"Vul een geldige datum in, zoals {date}",dateInFormatMDY:'Vul een geldige datum, in het formaat MM/DD/YYYY (bijvoorbeeld "12/31/1999")',email:'Vul een geldig e-mailadres in. Bijvoorbeeld "fred@domein.nl".',url:"Vul een geldige URL in, zoals http://www.example.com.",currencyDollar:"Vul een geldig $ bedrag in. Bijvoorbeeld $100.00 .",oneRequired:"Vul iets in bij in ieder geval een van deze velden.",warningPrefix:"Waarschuwing: ",errorPrefix:"Fout: ",noSpace:"Spaties zijn niet toegestaan in dit veld.",reqChkByNode:"Er zijn geen items geselecteerd.",requiredChk:"Dit veld is verplicht.",reqChkByName:"Selecteer een {label}.",match:"Dit veld moet overeen komen met het {matchName} veld",startDate:"de begin datum",endDate:"de eind datum",currendDate:"de huidige datum",afterDate:"De datum moet hetzelfde of na {label} zijn.",beforeDate:"De datum moet hetzelfde of voor {label} zijn.",startMonth:"Selecteer een begin maand",sameMonth:"Deze twee data moeten in dezelfde maand zijn - u moet een van beide aanpassen.",creditcard:"Het ingevulde creditcardnummer is niet geldig. Controleer het nummer en probeer opnieuw. {length} getallen ingevuld."});
Locale.define("nl-NL").inherit("EU","Number");Locale.define("no-NO","Date",{dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,lessThanMinuteAgo:"kortere enn et minutt siden",minuteAgo:"omtrent et minutt siden",minutesAgo:"{delta} minutter siden",hourAgo:"omtrent en time siden",hoursAgo:"omtrent {delta} timer siden",dayAgo:"{delta} dag siden",daysAgo:"{delta} dager siden"});
Locale.define("no-NO","FormValidator",{required:"Dette feltet er påkrevd.",minLength:"Vennligst skriv inn minst {minLength} tegn (du skrev {length} tegn).",maxLength:"Vennligst skriv inn maksimalt {maxLength} tegn (du skrev {length} tegn).",integer:"Vennligst skriv inn et tall i dette feltet. Tall med desimaler (for eksempel 1,25) er ikke tillat.",numeric:'Vennligst skriv inn kun numeriske verdier i dette feltet (for eksempel "1", "1.1", "-1" eller "-1.1").',digits:"Vennligst bruk kun nummer og skilletegn i dette feltet.",alpha:"Vennligst bruk kun bokstaver (a-z) i dette feltet. Ingen mellomrom eller andre tegn er tillat.",alphanum:"Vennligst bruk kun bokstaver (a-z) eller nummer (0-9) i dette feltet. Ingen mellomrom eller andre tegn er tillat.",dateSuchAs:"Vennligst skriv inn en gyldig dato, som {date}",dateInFormatMDY:'Vennligst skriv inn en gyldig dato, i formatet MM/DD/YYYY (for eksempel "12/31/1999")',email:'Vennligst skriv inn en gyldig epost-adresse. For eksempel "espen@domene.no".',url:"Vennligst skriv inn en gyldig URL, for eksempel http://www.example.com.",currencyDollar:"Vennligst fyll ut et gyldig $ beløp. For eksempel $100.00 .",oneRequired:"Vennligst fyll ut noe i minst ett av disse feltene.",errorPrefix:"Feil: ",warningPrefix:"Advarsel: "});
Locale.define("pl-PL","Date",{months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],months_abbr:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],days_abbr:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],dateOrder:["year","month","date"],shortDate:"%Y-%m-%d",shortTime:"%H:%M",AM:"nad ranem",PM:"po południu",firstDayOfWeek:1,ordinal:function(a){return(a>3&&a<21)?"ty":["ty","szy","gi","ci","ty"][Math.min(a%10,4)];
},lessThanMinuteAgo:"mniej niż minute temu",minuteAgo:"około minutę temu",minutesAgo:"{delta} minut temu",hourAgo:"około godzinę temu",hoursAgo:"około {delta} godzin temu",dayAgo:"Wczoraj",daysAgo:"{delta} dni temu",lessThanMinuteUntil:"za niecałą minutę",minuteUntil:"za około minutę",minutesUntil:"za {delta} minut",hourUntil:"za około godzinę",hoursUntil:"za około {delta} godzin",dayUntil:"za 1 dzień",daysUntil:"za {delta} dni"});
Locale.define("pl-PL","FormValidator",{required:"To pole jest wymagane.",minLength:"Wymagane jest przynajmniej {minLength} znaków (wpisanych zostało tylko {length}).",maxLength:"Dozwolone jest nie więcej niż {maxLength} znaków (wpisanych zostało {length})",integer:"To pole wymaga liczb całych. Liczby dziesiętne (np. 1.25) są niedozwolone.",numeric:'Prosimy używać tylko numerycznych wartości w tym polu (np. "1", "1.1", "-1" lub "-1.1").',digits:"Prosimy używać liczb oraz zankow punktuacyjnych w typ polu (dla przykładu, przy numerze telefonu myślniki i kropki są dozwolone).",alpha:"Prosimy używać tylko liter (a-z) w tym polu. Spacje oraz inne znaki są niedozwolone.",alphanum:"Prosimy używać tylko liter (a-z) lub liczb (0-9) w tym polu. Spacje oraz inne znaki są niedozwolone.",dateSuchAs:"Prosimy podać prawidłową datę w formacie: {date}",dateInFormatMDY:'Prosimy podać poprawną date w formacie DD.MM.RRRR (i.e. "12.01.2009")',email:'Prosimy podać prawidłowy adres e-mail, np. "jan@domena.pl".',url:"Prosimy podać prawidłowy adres URL, np. http://www.example.com.",currencyDollar:"Prosimy podać prawidłową sumę w PLN. Dla przykładu: 100.00 PLN.",oneRequired:"Prosimy wypełnić chociaż jedno z pól.",errorPrefix:"Błąd: ",warningPrefix:"Uwaga: ",noSpace:"W tym polu nie mogą znajdować się spacje.",reqChkByNode:"Brak zaznaczonych elementów.",requiredChk:"To pole jest wymagane.",reqChkByName:"Prosimy wybrać z {label}.",match:"To pole musi być takie samo jak {matchName}",startDate:"data początkowa",endDate:"data końcowa",currendDate:"aktualna data",afterDate:"Podana data poinna być taka sama lub po {label}.",beforeDate:"Podana data poinna być taka sama lub przed {label}.",startMonth:"Prosimy wybrać początkowy miesiąc.",sameMonth:"Te dwie daty muszą być w zakresie tego samego miesiąca - wymagana jest zmiana któregoś z pól."});
Locale.define("pt-PT","Date",{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],months_abbr:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],days:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],days_abbr:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dateOrder:["date","month","year"],shortDate:"%d-%m-%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"º",lessThanMinuteAgo:"há menos de um minuto",minuteAgo:"há cerca de um minuto",minutesAgo:"há {delta} minutos",hourAgo:"há cerca de uma hora",hoursAgo:"há cerca de {delta} horas",dayAgo:"há um dia",daysAgo:"há {delta} dias",weekAgo:"há uma semana",weeksAgo:"há {delta} semanas",monthAgo:"há um mês",monthsAgo:"há {delta} meses",yearAgo:"há um ano",yearsAgo:"há {delta} anos",lessThanMinuteUntil:"em menos de um minuto",minuteUntil:"em um minuto",minutesUntil:"em {delta} minutos",hourUntil:"em uma hora",hoursUntil:"em {delta} horas",dayUntil:"em um dia",daysUntil:"em {delta} dias",weekUntil:"em uma semana",weeksUntil:"em {delta} semanas",monthUntil:"em um mês",monthsUntil:"em {delta} meses",yearUntil:"em um ano",yearsUntil:"em {delta} anos"});
Locale.define("pt-BR","Date",{shortDate:"%d/%m/%Y"}).inherit("pt-PT","Date");Locale.define("pt-BR","FormValidator",{required:"Este campo é obrigatório.",minLength:"Digite pelo menos {minLength} caracteres (tamanho atual: {length}).",maxLength:"Não digite mais de {maxLength} caracteres (tamanho atual: {length}).",integer:"Por favor digite apenas um número inteiro neste campo. Não são permitidos números decimais (por exemplo, 1,25).",numeric:'Por favor digite apenas valores numéricos neste campo (por exemplo, "1" ou "1.1" ou "-1" ou "-1,1").',digits:"Por favor use apenas números e pontuação neste campo (por exemplo, um número de telefone com traços ou pontos é permitido).",alpha:"Por favor use somente letras (a-z). Espaço e outros caracteres não são permitidos.",alphanum:"Use somente letras (a-z) ou números (0-9) neste campo. Espaço e outros caracteres não são permitidos.",dateSuchAs:"Digite uma data válida, como {date}",dateInFormatMDY:'Digite uma data válida, como DD/MM/YYYY (por exemplo, "31/12/1999")',email:'Digite um endereço de email válido. Por exemplo "nome@dominio.com".',url:"Digite uma URL válida. Exemplo: http://www.example.com.",currencyDollar:"Digite um valor em dinheiro válido. Exemplo: R$100,00 .",oneRequired:"Digite algo para pelo menos um desses campos.",errorPrefix:"Erro: ",warningPrefix:"Aviso: ",noSpace:"Não é possível digitar espaços neste campo.",reqChkByNode:"Não foi selecionado nenhum item.",requiredChk:"Este campo é obrigatório.",reqChkByName:"Por favor digite um {label}.",match:"Este campo deve ser igual ao campo {matchName}.",startDate:"a data inicial",endDate:"a data final",currendDate:"a data atual",afterDate:"A data deve ser igual ou posterior a {label}.",beforeDate:"A data deve ser igual ou anterior a {label}.",startMonth:"Por favor selecione uma data inicial.",sameMonth:"Estas duas datas devem ter o mesmo mês - você deve modificar uma das duas.",creditcard:"O número do cartão de crédito informado é inválido. Por favor verifique o valor e tente novamente. {length} números informados."});
Locale.define("pt-PT","FormValidator",{required:"Este campo é necessário.",minLength:"Digite pelo menos{minLength} caracteres (comprimento {length} caracteres).",maxLength:"Não insira mais de {maxLength} caracteres (comprimento {length} caracteres).",integer:"Digite um número inteiro neste domínio. Com números decimais (por exemplo, 1,25), não são permitidas.",numeric:'Digite apenas valores numéricos neste domínio (p.ex., "1" ou "1.1" ou "-1" ou "-1,1").',digits:"Por favor, use números e pontuação apenas neste campo (p.ex., um número de telefone com traços ou pontos é permitida).",alpha:"Por favor use somente letras (a-z), com nesta área. Não utilize espaços nem outros caracteres são permitidos.",alphanum:"Use somente letras (a-z) ou números (0-9) neste campo. Não utilize espaços nem outros caracteres são permitidos.",dateSuchAs:"Digite uma data válida, como {date}",dateInFormatMDY:'Digite uma data válida, como DD/MM/YYYY (p.ex. "31/12/1999")',email:'Digite um endereço de email válido. Por exemplo "fred@domain.com".',url:"Digite uma URL válida, como http://www.example.com.",currencyDollar:"Digite um valor válido $. Por exemplo $ 100,00. ",oneRequired:"Digite algo para pelo menos um desses insumos.",errorPrefix:"Erro: ",warningPrefix:"Aviso: "});
(function(){var a=function(h,e,d,g,b){var c=h%10,f=h%100;if(c==1&&f!=11){return e;}else{if((c==2||c==3||c==4)&&!(f==12||f==13||f==14)){return d;}else{if(c==0||(c==5||c==6||c==7||c==8||c==9)||(f==11||f==12||f==13||f==14)){return g;
}else{return b;}}}};Locale.define("ru-RU","Date",{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],months_abbr:["янв","февр","март","апр","май","июнь","июль","авг","сент","окт","нояб","дек"],days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],days_abbr:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H:%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"меньше минуты назад",minuteAgo:"минуту назад",minutesAgo:function(b){return"{delta} "+a(b,"минуту","минуты","минут")+" назад";
},hourAgo:"час назад",hoursAgo:function(b){return"{delta} "+a(b,"час","часа","часов")+" назад";},dayAgo:"вчера",daysAgo:function(b){return"{delta} "+a(b,"день","дня","дней")+" назад";
},weekAgo:"неделю назад",weeksAgo:function(b){return"{delta} "+a(b,"неделя","недели","недель")+" назад";},monthAgo:"месяц назад",monthsAgo:function(b){return"{delta} "+a(b,"месяц","месяца","месецев")+" назад";
},yearAgo:"год назад",yearsAgo:function(b){return"{delta} "+a(b,"год","года","лет")+" назад";},lessThanMinuteUntil:"меньше чем через минуту",minuteUntil:"через минуту",minutesUntil:function(b){return"через {delta} "+a(b,"час","часа","часов")+"";
},hourUntil:"через час",hoursUntil:function(b){return"через {delta} "+a(b,"час","часа","часов")+"";},dayUntil:"завтра",daysUntil:function(b){return"через {delta} "+a(b,"день","дня","дней")+"";
},weekUntil:"через неделю",weeksUntil:function(b){return"через {delta} "+a(b,"неделю","недели","недель")+"";},monthUntil:"через месяц",monthsUntil:function(b){return"через {delta} "+a(b,"месяц","месяца","месецев")+"";
},yearUntil:"через",yearsUntil:function(b){return"через {delta} "+a(b,"год","года","лет")+"";}});})();Locale.define("ru-RU","FormValidator",{required:"Это поле обязательно к заполнению.",minLength:"Пожалуйста, введите хотя бы {minLength} символов (Вы ввели {length}).",maxLength:"Пожалуйста, введите не больше {maxLength} символов (Вы ввели {length}).",integer:"Пожалуйста, введите в это поле число. Дробные числа (например 1.25) тут не разрешены.",numeric:'Пожалуйста, введите в это поле число (например "1" или "1.1", или "-1", или "-1.1").',digits:"В этом поле Вы можете использовать только цифры и знаки пунктуации (например, телефонный номер со знаками дефиса или с точками).",alpha:"В этом поле можно использовать только латинские буквы (a-z). Пробелы и другие символы запрещены.",alphanum:"В этом поле можно использовать только латинские буквы (a-z) и цифры (0-9). Пробелы и другие символы запрещены.",dateSuchAs:"Пожалуйста, введите корректную дату {date}",dateInFormatMDY:'Пожалуйста, введите дату в формате ММ/ДД/ГГГГ (например "12/31/1999")',email:'Пожалуйста, введите корректный емейл-адрес. Для примера "fred@domain.com".',url:"Пожалуйста, введите правильную ссылку вида http://www.example.com.",currencyDollar:"Пожалуйста, введите сумму в долларах. Например: $100.00 .",oneRequired:"Пожалуйста, выберите хоть что-нибудь в одном из этих полей.",errorPrefix:"Ошибка: ",warningPrefix:"Внимание: "});
(function(){var a=function(f,d,c,e,b){return(f>=1&&f<=3)?arguments[f]:b;};Locale.define("si-SI","Date",{months:["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],months_abbr:["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],days:["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],days_abbr:["ned","pon","tor","sre","čet","pet","sob"],dateOrder:["date","month","year"],shortDate:"%d.%m.%Y",shortTime:"%H.%M",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:".",lessThanMinuteAgo:"manj kot minuto nazaj",minuteAgo:"minuto nazaj",minutesAgo:function(b){return"{delta} "+a(b,"minuto","minuti","minute","minut")+" nazaj";
},hourAgo:"uro nazaj",hoursAgo:function(b){return"{delta} "+a(b,"uro","uri","ure","ur")+" nazaj";},dayAgo:"dan nazaj",daysAgo:function(b){return"{delta} "+a(b,"dan","dneva","dni","dni")+" nazaj";
},weekAgo:"teden nazaj",weeksAgo:function(b){return"{delta} "+a(b,"teden","tedna","tedne","tednov")+" nazaj";},monthAgo:"mesec nazaj",monthsAgo:function(b){return"{delta} "+a(b,"mesec","meseca","mesece","mesecov")+" nazaj";
},yearthAgo:"leto nazaj",yearsAgo:function(b){return"{delta} "+a(b,"leto","leti","leta","let")+" nazaj";},lessThanMinuteUntil:"še manj kot minuto",minuteUntil:"še minuta",minutesUntil:function(b){return"še {delta} "+a(b,"minuta","minuti","minute","minut");
},hourUntil:"še ura",hoursUntil:function(b){return"še {delta} "+a(b,"ura","uri","ure","ur");},dayUntil:"še dan",daysUntil:function(b){return"še {delta} "+a(b,"dan","dneva","dnevi","dni");
},weekUntil:"še tedn",weeksUntil:function(b){return"še {delta} "+a(b,"teden","tedna","tedni","tednov");},monthUntil:"še mesec",monthsUntil:function(b){return"še {delta} "+a(b,"mesec","meseca","meseci","mesecov");
},yearUntil:"še leto",yearsUntil:function(b){return"še {delta} "+a(b,"leto","leti","leta","let");}});})();Locale.define("si-SI","FormValidator",{required:"To polje je obvezno",minLength:"Prosim, vnesite vsaj {minLength} znakov (vnesli ste {length} znakov).",maxLength:"Prosim, ne vnesite več kot {maxLength} znakov (vnesli ste {length} znakov).",integer:"Prosim, vnesite celo število. Decimalna števila (kot 1,25) niso dovoljena.",numeric:'Prosim, vnesite samo numerične vrednosti (kot "1" ali "1.1" ali "-1" ali "-1.1").',digits:"Prosim, uporabite številke in ločila le na tem polju (na primer, dovoljena je telefonska številka z pomišlaji ali pikami).",alpha:"Prosim, uporabite le črke v tem plju. Presledki in drugi znaki niso dovoljeni.",alphanum:"Prosim, uporabite samo črke ali številke v tem polju. Presledki in drugi znaki niso dovoljeni.",dateSuchAs:"Prosim, vnesite pravilen datum kot {date}",dateInFormatMDY:'Prosim, vnesite pravilen datum kot MM.DD.YYYY (primer "12.31.1999")',email:'Prosim, vnesite pravilen email naslov. Na primer "fred@domain.com".',url:"Prosim, vnesite pravilen URL kot http://www.example.com.",currencyDollar:"Prosim, vnesit epravilno vrednost €. Primer 100,00€ .",oneRequired:"Prosimo, vnesite nekaj za vsaj eno izmed teh polj.",errorPrefix:"Napaka: ",warningPrefix:"Opozorilo: ",noSpace:"To vnosno polje ne dopušča presledkov.",reqChkByNode:"Nič niste izbrali.",requiredChk:"To polje je obvezno",reqChkByName:"Prosim, izberite {label}.",match:"To polje se mora ujemati z poljem {matchName}",startDate:"datum začetka",endDate:"datum konca",currendDate:"trenuten datum",afterDate:"Datum bi moral biti isti ali po {label}.",beforeDate:"Datum bi moral biti isti ali pred {label}.",startMonth:"Prosim, vnesite začetni datum",sameMonth:"Ta dva datuma morata biti v istem mesecu - premeniti morate eno ali drugo.",creditcard:"Številka kreditne kartice ni pravilna. Preverite številko ali poskusite še enkrat. Vnešenih {length} znakov."});
Locale.define("sv-SE","Date",{months:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],months_abbr:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],days:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],days_abbr:["sön","mån","tis","ons","tor","fre","lör"],dateOrder:["year","month","date"],shortDate:"%Y-%m-%d",shortTime:"%H:%M",AM:"",PM:"",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"mindre än en minut sedan",minuteAgo:"ungefär en minut sedan",minutesAgo:"{delta} minuter sedan",hourAgo:"ungefär en timme sedan",hoursAgo:"ungefär {delta} timmar sedan",dayAgo:"1 dag sedan",daysAgo:"{delta} dagar sedan",lessThanMinuteUntil:"mindre än en minut sedan",minuteUntil:"ungefär en minut sedan",minutesUntil:"{delta} minuter sedan",hourUntil:"ungefär en timme sedan",hoursUntil:"ungefär {delta} timmar sedan",dayUntil:"1 dag sedan",daysUntil:"{delta} dagar sedan"});
Locale.define("sv-SE","FormValidator",{required:"Fältet är obligatoriskt.",minLength:"Ange minst {minLength} tecken (du angav {length} tecken).",maxLength:"Ange högst {maxLength} tecken (du angav {length} tecken). ",integer:"Ange ett heltal i fältet. Tal med decimaler (t.ex. 1,25) är inte tillåtna.",numeric:'Ange endast numeriska värden i detta fält (t.ex. "1" eller "1.1" eller "-1" eller "-1,1").',digits:"Använd endast siffror och skiljetecken i detta fält (till exempel ett telefonnummer med bindestreck tillåtet).",alpha:"Använd endast bokstäver (a-ö) i detta fält. Inga mellanslag eller andra tecken är tillåtna.",alphanum:"Använd endast bokstäver (a-ö) och siffror (0-9) i detta fält. Inga mellanslag eller andra tecken är tillåtna.",dateSuchAs:"Ange ett giltigt datum som t.ex. {date}",dateInFormatMDY:'Ange ett giltigt datum som t.ex. YYYY-MM-DD (i.e. "1999-12-31")',email:'Ange en giltig e-postadress. Till exempel "erik@domain.com".',url:"Ange en giltig webbadress som http://www.example.com.",currencyDollar:"Ange en giltig belopp. Exempelvis 100,00.",oneRequired:"Vänligen ange minst ett av dessa alternativ.",errorPrefix:"Fel: ",warningPrefix:"Varning: ",noSpace:"Det får inte finnas några mellanslag i detta fält.",reqChkByNode:"Inga objekt är valda.",requiredChk:"Detta är ett obligatoriskt fält.",reqChkByName:"Välj en {label}.",match:"Detta fält måste matcha {matchName}",startDate:"startdatumet",endDate:"slutdatum",currendDate:"dagens datum",afterDate:"Datumet bör vara samma eller senare än {label}.",beforeDate:"Datumet bör vara samma eller tidigare än {label}.",startMonth:"Välj en start månad",sameMonth:"Dessa två datum måste vara i samma månad - du måste ändra det ena eller det andra."});
(function(){var a=function(j,e,c,i,b){var h=(j/10).toInt(),g=j%10,f=(j/100).toInt();if(h==1&&j>10){return i;}if(g==1){return e;}if(g>0&&g<5){return c;}return i;
};Locale.define("uk-UA","Date",{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],months_abbr:["Січ","Лют","Бер","Квіт","Трав","Черв","Лип","Серп","Вер","Жовт","Лист","Груд"],days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],days_abbr:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dateOrder:["date","month","year"],shortDate:"%d/%m/%Y",shortTime:"%H:%M",AM:"до полудня",PM:"по полудню",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"меньше хвилини тому",minuteAgo:"хвилину тому",minutesAgo:function(b){return"{delta} "+a(b,"хвилину","хвилини","хвилин")+" тому";
},hourAgo:"годину тому",hoursAgo:function(b){return"{delta} "+a(b,"годину","години","годин")+" тому";},dayAgo:"вчора",daysAgo:function(b){return"{delta} "+a(b,"день","дня","днів")+" тому";
},weekAgo:"тиждень тому",weeksAgo:function(b){return"{delta} "+a(b,"тиждень","тижні","тижнів")+" тому";},monthAgo:"місяць тому",monthsAgo:function(b){return"{delta} "+a(b,"місяць","місяці","місяців")+" тому";
},yearAgo:"рік тому",yearsAgo:function(b){return"{delta} "+a(b,"рік","роки","років")+" тому";},lessThanMinuteUntil:"за мить",minuteUntil:"через хвилину",minutesUntil:function(b){return"через {delta} "+a(b,"хвилину","хвилини","хвилин");
},hourUntil:"через годину",hoursUntil:function(b){return"через {delta} "+a(b,"годину","години","годин");},dayUntil:"завтра",daysUntil:function(b){return"через {delta} "+a(b,"день","дня","днів");
},weekUntil:"через тиждень",weeksUntil:function(b){return"через {delta} "+a(b,"тиждень","тижні","тижнів");},monthUntil:"через місяць",monthesUntil:function(b){return"через {delta} "+a(b,"місяць","місяці","місяців");
},yearUntil:"через рік",yearsUntil:function(b){return"через {delta} "+a(b,"рік","роки","років");}});})();Locale.define("uk-UA","FormValidator",{required:"Це поле повинне бути заповненим.",minLength:"Введіть хоча б {minLength} символів (Ви ввели {length}).",maxLength:"Кількість символів не може бути більше {maxLength} (Ви ввели {length}).",integer:"Введіть в це поле число. Дробові числа (наприклад 1.25) не дозволені.",numeric:'Введіть в це поле число (наприклад "1" або "1.1", або "-1", або "-1.1").',digits:"В цьому полі ви можете використовувати лише цифри і знаки пунктіації (наприклад, телефонний номер з знаками дефізу або з крапками).",alpha:"В цьому полі можна використовувати лише латинські літери (a-z). Пробіли і інші символи заборонені.",alphanum:"В цьому полі можна використовувати лише латинські літери (a-z) і цифри (0-9). Пробіли і інші символи заборонені.",dateSuchAs:"Введіть коректну дату {date}.",dateInFormatMDY:'Введіть дату в форматі ММ/ДД/РРРР (наприклад "12/31/2009").',email:'Введіть коректну адресу електронної пошти (наприклад "name@domain.com").',url:"Введіть коректне інтернет-посилання (наприклад http://www.example.com).",currencyDollar:'Введіть суму в доларах (наприклад "$100.00").',oneRequired:"Заповніть одне з полів.",errorPrefix:"Помилка: ",warningPrefix:"Увага: ",noSpace:"Пробіли заборонені.",reqChkByNode:"Не відмічено жодного варіанту.",requiredChk:"Це поле повинне бути віміченим.",reqChkByName:"Будь ласка, відмітьте {label}.",match:"Це поле повинно відповідати {matchName}",startDate:"початкова дата",endDate:"кінцева дата",currendDate:"сьогоднішня дата",afterDate:"Ця дата повинна бути такою ж, або пізнішою за {label}.",beforeDate:"Ця дата повинна бути такою ж, або ранішою за {label}.",startMonth:"Будь ласка, виберіть початковий місяць",sameMonth:"Ці дати повинні відноситись одного і того ж місяця. Будь ласка, змініть одну з них.",creditcard:"Номер кредитної карти введений неправильно. Будь ласка, перевірте його. Введено {length} символів."});
Locale.define("zh-CHS","Date",{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],months_abbr:["一","二","三","四","五","六","七","八","九","十","十一","十二"],days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],days_abbr:["日","一","二","三","四","五","六"],dateOrder:["year","month","date"],shortDate:"%Y-%m-%d",shortTime:"%I:%M%p",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"不到1分钟前",minuteAgo:"大约1分钟前",minutesAgo:"{delta}分钟之前",hourAgo:"大约1小时前",hoursAgo:"大约{delta}小时前",dayAgo:"1天前",daysAgo:"{delta}天前",weekAgo:"1星期前",weeksAgo:"{delta}星期前",monthAgo:"1个月前",monthsAgo:"{delta}个月前",yearAgo:"1年前",yearsAgo:"{delta}年前",lessThanMinuteUntil:"从现在开始不到1分钟",minuteUntil:"从现在开始約1分钟",minutesUntil:"从现在开始约{delta}分钟",hourUntil:"从现在开始1小时",hoursUntil:"从现在开始约{delta}小时",dayUntil:"从现在开始1天",daysUntil:"从现在开始{delta}天",weekUntil:"从现在开始1星期",weeksUntil:"从现在开始{delta}星期",monthUntil:"从现在开始一个月",monthsUntil:"从现在开始{delta}个月",yearUntil:"从现在开始1年",yearsUntil:"从现在开始{delta}年"});
Locale.define("zh-CHT","Date",{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],months_abbr:["一","二","三","四","五","六","七","八","九","十","十一","十二"],days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],days_abbr:["日","一","二","三","四","五","六"],dateOrder:["year","month","date"],shortDate:"%Y-%m-%d",shortTime:"%I:%M%p",AM:"AM",PM:"PM",firstDayOfWeek:1,ordinal:"",lessThanMinuteAgo:"不到1分鐘前",minuteAgo:"大約1分鐘前",minutesAgo:"{delta}分鐘之前",hourAgo:"大約1小時前",hoursAgo:"大約{delta}小時前",dayAgo:"1天前",daysAgo:"{delta}天前",weekAgo:"1星期前",weeksAgo:"{delta}星期前",monthAgo:"1个月前",monthsAgo:"{delta}个月前",yearAgo:"1年前",yearsAgo:"{delta}年前",lessThanMinuteUntil:"從現在開始不到1分鐘",minuteUntil:"從現在開始約1分鐘",minutesUntil:"從現在開始約{delta}分鐘",hourUntil:"從現在開始1小時",hoursUntil:"從現在開始約{delta}小時",dayUntil:"從現在開始1天",daysUntil:"從現在開始{delta}天",weekUntil:"從現在開始1星期",weeksUntil:"從現在開始{delta}星期",monthUntil:"從現在開始一個月",monthsUntil:"從現在開始{delta}個月",yearUntil:"從現在開始1年",yearsUntil:"從現在開始{delta}年"});
Locale.define("zh-CHS","FormValidator",{required:"此项必填。",minLength:"请至少输入 {minLength} 个字符 (已输入 {length} 个)。",maxLength:"最多只能输入 {maxLength} 个字符 (已输入 {length} 个)。",integer:'请输入一个整数,不能包含小数点。例如:"1", "200"。',numeric:'请输入一个数字,例如:"1", "1.1", "-1", "-1.1"。',digits:"请输入由数字和标点符号组成的内容。例如电话号码。",alpha:"请输入 A-Z 的 26 个字母,不能包含空格或任何其他字符。",alphanum:"请输入 A-Z 的 26 个字母或 0-9 的 10 个数字,不能包含空格或任何其他字符。",dateSuchAs:"请输入合法的日期格式,如:{date}。",dateInFormatMDY:'请输入合法的日期格式,例如:YYYY-MM-DD ("2010-12-31")。',email:'请输入合法的电子信箱地址,例如:"fred@domain.com"。',url:"请输入合法的 Url 地址,例如:http://www.example.com。",currencyDollar:"请输入合法的货币符号,例如:¥100.0",oneRequired:"请至少选择一项。",errorPrefix:"错误:",warningPrefix:"警告:",noSpace:"不能包含空格。",reqChkByNode:"未选择任何内容。",requiredChk:"此项必填。",reqChkByName:"请选择 {label}.",match:"必须与{matchName}相匹配",startDate:"起始日期",endDate:"结束日期",currendDate:"当前日期",afterDate:"日期必须等于或晚于 {label}.",beforeDate:"日期必须早于或等于 {label}.",startMonth:"请选择起始月份",sameMonth:"您必须修改两个日期中的一个,以确保它们在同一月份。",creditcard:"您输入的信用卡号码不正确。当前已输入{length}个字符。"});
Locale.define("zh-CHT","FormValidator",{required:"此項必填。 ",minLength:"請至少輸入{minLength} 個字符(已輸入{length} 個)。 ",maxLength:"最多只能輸入{maxLength} 個字符(已輸入{length} 個)。 ",integer:'請輸入一個整數,不能包含小數點。例如:"1", "200"。 ',numeric:'請輸入一個數字,例如:"1", "1.1", "-1", "-1.1"。 ',digits:"請輸入由數字和標點符號組成的內容。例如電話號碼。 ",alpha:"請輸入AZ 的26 個字母,不能包含空格或任何其他字符。 ",alphanum:"請輸入AZ 的26 個字母或0-9 的10 個數字,不能包含空格或任何其他字符。 ",dateSuchAs:"請輸入合法的日期格式,如:{date}。 ",dateInFormatMDY:'請輸入合法的日期格式,例如:YYYY-MM-DD ("2010-12-31")。 ',email:'請輸入合法的電子信箱地址,例如:"fred@domain.com"。 ',url:"請輸入合法的Url 地址,例如:http://www.example.com。 ",currencyDollar:"請輸入合法的貨幣符號,例如:¥100.0",oneRequired:"請至少選擇一項。 ",errorPrefix:"錯誤:",warningPrefix:"警告:",noSpace:"不能包含空格。 ",reqChkByNode:"未選擇任何內容。 ",requiredChk:"此項必填。 ",reqChkByName:"請選擇 {label}.",match:"必須與{matchName}相匹配",startDate:"起始日期",endDate:"結束日期",currendDate:"當前日期",afterDate:"日期必須等於或晚於{label}.",beforeDate:"日期必須早於或等於{label}.",startMonth:"請選擇起始月份",sameMonth:"您必須修改兩個日期中的一個,以確保它們在同一月份。 ",creditcard:"您輸入的信用卡號碼不正確。當前已輸入{length}個字符。 "});
Form.Validator.add("validate-currency-yuan",{errorMsg:function(){return Form.Validator.getMsg("currencyYuan");},test:function(a){return Form.Validator.getValidator("IsEmpty").test(a)||(/^¥?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(a.get("value"));
}});system/js/modal.js000064400000023617152177723720010164 0ustar00/*
		MIT-style license
 @author		Harald Kirschner <mail [at] digitarald.de>
 @author		Rouven Weßling <me [at] rouvenwessling.de>
 @copyright	Author
*/
var SqueezeBox={presets:{onOpen:function(){},onClose:function(){},onUpdate:function(){},onResize:function(){},onMove:function(){},onShow:function(){},onHide:function(){},size:{x:600,y:450},sizeLoading:{x:200,y:150},marginInner:{x:20,y:20},marginImage:{x:50,y:75},handler:false,target:null,closable:true,closeBtn:true,zIndex:65555,overlayOpacity:.7,classWindow:"",classOverlay:"",overlayFx:{},resizeFx:{},contentFx:{},parse:false,parseSecure:false,shadow:true,overlay:true,document:null,ajaxOptions:{}},initialize:function(e){if(this.options)return this;this.presets=Object.merge(this.presets,e);this.doc=this.presets.document||document;this.options={};this.setOptions(this.presets).build();this.bound={window:this.reposition.bind(this,[null]),scroll:this.checkTarget.bind(this),close:this.close.bind(this),key:this.onKey.bind(this)};this.isOpen=this.isLoading=false;return this},build:function(){this.overlay=new Element("div",{id:"sbox-overlay","aria-hidden":"true",styles:{zIndex:this.options.zIndex},tabindex:-1});this.win=new Element("div",{id:"sbox-window",role:"dialog","aria-hidden":"true",styles:{zIndex:this.options.zIndex+2}});if(this.options.shadow){if(Browser.chrome||Browser.safari&&Browser.version>=3||Browser.opera&&Browser.version>=10.5||Browser.firefox&&Browser.version>=3.5||Browser.ie&&Browser.version>=9){this.win.addClass("shadow")}else if(!Browser.ie6){var e=(new Element("div",{"class":"sbox-bg-wrap"})).inject(this.win);var t=function(e){this.overlay.fireEvent("click",[e])}.bind(this);["n","ne","e","se","s","sw","w","nw"].each(function(n){(new Element("div",{"class":"sbox-bg sbox-bg-"+n})).inject(e).addEvent("click",t)})}}this.content=(new Element("div",{id:"sbox-content"})).inject(this.win);this.closeBtn=(new Element("a",{id:"sbox-btn-close",href:"#",role:"button"})).inject(this.win);this.closeBtn.setProperty("aria-controls","sbox-window");this.fx={overlay:(new Fx.Tween(this.overlay,Object.merge({property:"opacity",onStart:Events.prototype.clearChain,duration:250,link:"cancel"},this.options.overlayFx))).set(0),win:new Fx.Morph(this.win,Object.merge({onStart:Events.prototype.clearChain,unit:"px",duration:750,transition:Fx.Transitions.Quint.easeOut,link:"cancel",unit:"px"},this.options.resizeFx)),content:(new Fx.Tween(this.content,Object.merge({property:"opacity",duration:250,link:"cancel"},this.options.contentFx))).set(0)};document.id(this.doc.body).adopt(this.overlay,this.win)},assign:function(e,t){return(document.id(e)||$$(e)).addEvent("click",function(){return!SqueezeBox.fromElement(this,t)})},open:function(e,t){this.initialize();if(this.element!=null)this.trash();this.element=document.id(e)||false;this.setOptions(Object.merge(this.presets,t||{}));if(this.element&&this.options.parse){var n=this.element.getProperty(this.options.parse);if(n&&(n=JSON.decode(n,this.options.parseSecure)))this.setOptions(n)}this.url=(this.element?this.element.get("href"):e)||this.options.url||"";this.assignOptions();var r=r||this.options.handler;if(r)return this.setContent(r,this.parsers[r].call(this,true));var i=false;return this.parsers.some(function(e,t){var n=e.call(this);if(n){i=this.setContent(t,n);return true}return false},this)},fromElement:function(e,t){return this.open(e,t)},assignOptions:function(){this.overlay.addClass(this.options.classOverlay);this.win.addClass(this.options.classWindow)},close:function(e){var t=typeOf(e)=="domevent";if(t)e.stop();if(!this.isOpen||t&&!Function.from(this.options.closable).call(this,e))return this;this.fx.overlay.start(0).chain(this.toggleOverlay.bind(this));this.win.setProperty("aria-hidden","true");this.fireEvent("onClose",[this.content]);this.trash();this.toggleListeners();this.isOpen=false;return this},trash:function(){this.element=this.asset=null;this.content.empty();this.options={};this.removeEvents().setOptions(this.presets).callChain()},onError:function(){this.asset=null;this.setContent("string",this.options.errorMsg||"An error occurred")},setContent:function(e,t){if(!this.handlers[e])return false;this.content.className="sbox-content-"+e;this.applyTimer=this.applyContent.delay(this.fx.overlay.options.duration,this,this.handlers[e].call(this,t));if(this.overlay.retrieve("opacity"))return this;this.toggleOverlay(true);this.fx.overlay.start(this.options.overlayOpacity);return this.reposition()},applyContent:function(e,t){if(!this.isOpen&&!this.applyTimer)return;this.applyTimer=clearTimeout(this.applyTimer);this.hideContent();if(!e){this.toggleLoading(true)}else{if(this.isLoading)this.toggleLoading(false);this.fireEvent("onUpdate",[this.content],20)}if(e){if(["string","array"].contains(typeOf(e))){this.content.set("html",e)}else {this.content.adopt(e)}}this.callChain();if(!this.isOpen){this.toggleListeners(true);this.resize(t,true);this.isOpen=true;this.win.setProperty("aria-hidden","false");this.fireEvent("onOpen",[this.content])}else{this.resize(t)}},resize:function(e,t){this.showTimer=clearTimeout(this.showTimer||null);var n=this.doc.getSize(),r=this.doc.getScroll();this.size=Object.merge(this.isLoading?this.options.sizeLoading:this.options.size,e);var i=self.getSize();if(this.size.x==i.x){this.size.y=this.size.y-50;this.size.x=this.size.x-20}if(n.x>979){var s={width:this.size.x,height:this.size.y,left:(r.x+(n.x-this.size.x-this.options.marginInner.x)/2).toInt(),top:(r.y+(n.y-this.size.y-this.options.marginInner.y)/2).toInt()}}else{var s={width:n.x-40,height:n.y,left:(r.x+10).toInt(),top:(r.y+20).toInt()}}this.hideContent();if(!t){this.fx.win.start(s).chain(this.showContent.bind(this))}else{this.win.setStyles(s);this.showTimer=this.showContent.delay(50,this)}return this.reposition()},toggleListeners:function(e){var t=e?"addEvent":"removeEvent";this.closeBtn[t]("click",this.bound.close);this.overlay[t]("click",this.bound.close);this.doc[t]("keydown",this.bound.key)[t]("mousewheel",this.bound.scroll);this.doc.getWindow()[t]("resize",this.bound.window)[t]("scroll",this.bound.window)},toggleLoading:function(e){this.isLoading=e;this.win[e?"addClass":"removeClass"]("sbox-loading");if(e){this.win.setProperty("aria-busy",e);this.fireEvent("onLoading",[this.win])}},toggleOverlay:function(e){if(this.options.overlay){var t=this.doc.getSize().x;this.overlay.set("aria-hidden",e?"false":"true");this.doc.body[e?"addClass":"removeClass"]("body-overlayed");if(e){this.scrollOffset=this.doc.getWindow().getSize().x-t}else{this.doc.body.setStyle("margin-right","")}}},showContent:function(){if(this.content.get("opacity"))this.fireEvent("onShow",[this.win]);this.fx.content.start(1)},hideContent:function(){if(!this.content.get("opacity"))this.fireEvent("onHide",[this.win]);this.fx.content.cancel().set(0)},onKey:function(e){switch(e.key){case"esc":this.close(e);case"up":case"down":return false}},checkTarget:function(e){return e.target!==this.content&&this.content.contains(e.target)},reposition:function(){var e=this.doc.getSize(),t=this.doc.getScroll(),n=this.doc.getScrollSize();var r=this.overlay.getStyles("height");var i=parseInt(r.height);if(n.y>i&&e.y>=i){this.overlay.setStyles({width:n.x+"px",height:n.y+"px"});this.win.setStyles({left:(t.x+(e.x-this.win.offsetWidth)/2-this.scrollOffset).toInt()+"px",top:(t.y+(e.y-this.win.offsetHeight)/2).toInt()+"px"})}return this.fireEvent("onMove",[this.overlay,this.win])},removeEvents:function(e){if(!this.$events)return this;if(!e)this.$events=null;else if(this.$events[e])this.$events[e]=null;return this},extend:function(e){return Object.append(this,e)},handlers:new Hash,parsers:new Hash};SqueezeBox.extend(new Events(function(){})).extend(new Options(function(){})).extend(new Chain(function(){}));SqueezeBox.parsers.extend({image:function(e){return e||/\.(?:jpg|png|gif)$/i.test(this.url)?this.url:false},clone:function(e){if(document.id(this.options.target))return document.id(this.options.target);if(this.element&&!this.element.parentNode)return this.element;var t=this.url.match(/#([\w-]+)$/);return t?document.id(t[1]):e?this.element:false},ajax:function(e){return e||this.url&&!/^(?:javascript|#)/i.test(this.url)?this.url:false},iframe:function(e){return e||this.url?this.url:false},string:function(e){return true}});SqueezeBox.handlers.extend({image:function(e){var t,n=new Image;this.asset=null;n.onload=n.onabort=n.onerror=function(){n.onload=n.onabort=n.onerror=null;if(!n.width){this.onError.delay(10,this);return}var e=this.doc.getSize();e.x-=this.options.marginImage.x;e.y-=this.options.marginImage.y;t={x:n.width,y:n.height};for(var r=2;r--;){if(t.x>e.x){t.y*=e.x/t.x;t.x=e.x}else if(t.y>e.y){t.x*=e.y/t.y;t.y=e.y}}t.x=t.x.toInt();t.y=t.y.toInt();this.asset=document.id(n);n=null;this.asset.width=t.x;this.asset.height=t.y;this.applyContent(this.asset,t)}.bind(this);n.src=e;if(n&&n.onload&&n.complete)n.onload();return this.asset?[this.asset,t]:null},clone:function(e){if(e)return e.clone();return this.onError()},adopt:function(e){if(e)return e;return this.onError()},ajax:function(e){var t=this.options.ajaxOptions||{};this.asset=(new Request.HTML(Object.merge({method:"get",evalScripts:false},this.options.ajaxOptions))).addEvents({onSuccess:function(e){this.applyContent(e);if(t.evalScripts!==null&&!t.evalScripts)Browser.exec(this.asset.response.javascript);this.fireEvent("onAjax",[e,this.asset]);this.asset=null}.bind(this),onFailure:this.onError.bind(this)});this.asset.send.delay(10,this.asset,[{url:e}])},iframe:function(e){var t=this.doc.getSize();if(t.x>979){var n=this.options.size.x;var r=this.options.size.y}else{var n=t.x;var r=t.y-50}this.asset=new Element("iframe",Object.merge({src:e,frameBorder:0,width:n,height:r},this.options.iframeOptions));if(this.options.iframePreload){this.asset.addEvent("load",function(){this.applyContent(this.asset.setStyle("display",""))}.bind(this));this.asset.setStyle("display","none").inject(this.content);return false}return this.asset},string:function(e){return e}});SqueezeBox.handlers.url=SqueezeBox.handlers.ajax;SqueezeBox.parsers.url=SqueezeBox.parsers.ajax;SqueezeBox.parsers.adopt=SqueezeBox.parsers.clone;
system/js/modal-fields.js000064400000004272152177723720011424 0ustar00!function(){"use strict";window.processModalParent=function(e,t,d,n,a,o,r){var l=document.getElementById(e+"_id"),m=document.getElementById(e+"_name");return t=t||"",d=d||"",n=n||"",r=r||"",a=a||"",o=o||"",t?(l.value=t,m.value=d,document.getElementById(e+"_select")&&jQuery("#"+e+"_select").addClass("hidden"),document.getElementById(e+"_new")&&jQuery("#"+e+"_new").addClass("hidden"),document.getElementById(e+"_edit")&&jQuery("#"+e+"_edit").removeClass("hidden"),document.getElementById(e+"_clear")&&jQuery("#"+e+"_clear").removeClass("hidden"),document.getElementById(e+"_propagate")&&jQuery("#"+e+"_propagate").removeClass("hidden")):(l.value="",m.value=l.getAttribute("data-text"),document.getElementById(e+"_select")&&jQuery("#"+e+"_select").removeClass("hidden"),document.getElementById(e+"_new")&&jQuery("#"+e+"_new").removeClass("hidden"),document.getElementById(e+"_edit")&&jQuery("#"+e+"_edit").addClass("hidden"),document.getElementById(e+"_clear")&&jQuery("#"+e+"_clear").addClass("hidden"),document.getElementById(e+"_propagate")&&jQuery("#"+e+"_propagate").addClass("hidden")),"1"==l.getAttribute("data-required")&&(document.formvalidator.validate(l),document.formvalidator.validate(m)),!1},window.processModalEdit=function(e,t,d,n,a,o,r,l){o=o||n.toLowerCase()+"-form",r=r||"jform_id",l=l||"jform_title";var m=e.parentNode.parentNode.id,u=a;jQuery("#"+m+" iframe").get(0).id="Frame_"+m;var i=jQuery("#Frame_"+m).contents().get(0);return"cancel"===a?(document.getElementById("Frame_"+m).contentWindow.Joomla.submitbutton(n.toLowerCase()+"."+a),jQuery("#"+m).modal("hide")):(jQuery("#Frame_"+m).on("load",function(){(i=jQuery(this).contents().get(0)).getElementById(r)&&"0"!=i.getElementById(r).value&&(window.processModalParent(t,i.getElementById(r).value,i.getElementById(l).value),"save"===a&&window.processModalEdit(e,t,"edit",n,"cancel",o,r,l)),jQuery("#"+m+" iframe").removeClass("hidden")}),i.formvalidator.isValid(i.getElementById(o))&&("save"===a&&(u="apply"),document.getElementById("Frame_"+m).contentWindow.Joomla.submitbutton(n.toLowerCase()+"."+u))),!1},window.processModalSelect=function(e,t,d,n,a,o,r,l){return window.processModalParent(t,d,n,a,r,l,o),jQuery("#ModalSelect"+e+"_"+t).modal("hide"),!1}}();system/js/polyfill.classlist-uncompressed.js000064400000025137152177723720015426 0ustar00/**
 * Polyfill service v3.13.0
 * For detailed credits and licence information see http://github.com/financial-times/polyfill-service.
 * 
 * Features requested: Element.prototype.classList
 * 
 * - Object.defineProperty, License: CC0 (required by "Element.prototype.classList")
 * - _DOMTokenList, License: CC0 (required by "Element.prototype.classList")
 * - Document, License: CC0 (required by "Element", "Element.prototype.classList")
 * - Element, License: CC0 (required by "Element.prototype.classList")
 * - Element.prototype.classList, License: CC0
 *
 * @build      https://cdn.polyfill.io/v2/polyfill.js?features=Element.prototype.classList&flags=always,gated
 * 
 * @copyright  Copyright (c) 2016 Financial Times
 * @license    MIT License, https://github.com/Financial-Times/polyfill-service/blob/master/LICENSE.md
 */

(function(undefined) {
if (!(// In IE8, defineProperty could only act on DOM elements, so full support
// for the feature requires the ability to set a property on an arbitrary object
'defineProperty' in Object && (function() {
	try {
		var a = {};
		Object.defineProperty(a, 'test', {value:42});
		return true;
	} catch(e) {
		return false
	}
}()))) {

// Object.defineProperty
(function (nativeDefineProperty) {

	var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
	var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
	var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';

	Object.defineProperty = function defineProperty(object, property, descriptor) {

		// Where native support exists, assume it
		if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
			return nativeDefineProperty(object, property, descriptor);
		}

		if (object === null || !(object instanceof Object || typeof object === 'object')) {
			throw new TypeError('Object must be an object (Object.defineProperty polyfill)');
		}

		if (!(descriptor instanceof Object)) {
			throw new TypeError('Descriptor must be an object (Object.defineProperty polyfill)');
		}

		var propertyString = String(property);
		var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
		var getterType = 'get' in descriptor && typeof descriptor.get;
		var setterType = 'set' in descriptor && typeof descriptor.set;

		// handle descriptor.get
		if (getterType) {
			if (getterType !== 'function') {
				throw new TypeError('Getter expected a function (Object.defineProperty polyfill)');
			}
			if (!supportsAccessors) {
				throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
			}
			if (hasValueOrWritable) {
				throw new TypeError(ERR_VALUE_ACCESSORS);
			}
			object.__defineGetter__(propertyString, descriptor.get);
		} else {
			object[propertyString] = descriptor.value;
		}

		// handle descriptor.set
		if (setterType) {
			if (setterType !== 'function') {
				throw new TypeError('Setter expected a function (Object.defineProperty polyfill)');
			}
			if (!supportsAccessors) {
				throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
			}
			if (hasValueOrWritable) {
				throw new TypeError(ERR_VALUE_ACCESSORS);
			}
			object.__defineSetter__(propertyString, descriptor.set);
		}

		// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
		if ('value' in descriptor) {
			object[propertyString] = descriptor.value;
		}

		return object;
	};
}(Object.defineProperty));

}


// _DOMTokenList
var _DOMTokenList = (function () { // eslint-disable-line no-unused-vars

	function tokenize(token) {
		if (/^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/.test(token)) {
			return String(token);
		} else {
			throw new Error('InvalidCharacterError: DOM Exception 5');
		}
	}

	function toObject(self) {
		for (var index = -1, object = {}, element; element = self[++index];) {
			object[element] = true;
		}

		return object;
	}

	function fromObject(self, object) {
		var array = [], token;

		for (token in object) {
			if (object[token]) {
				array.push(token);
			}
		}

		[].splice.apply(self, [0, self.length].concat(array));
	}

	var DTL = function() {};

	DTL.prototype = {
		constructor: DTL,
		item: function item(index) {
			return this[parseFloat(index)] || null;
		},
		length: Array.prototype.length,
		toString: function toString() {
			return [].join.call(this, ' ');
		},

		add: function add() {
			for (var object = toObject(this), index = 0, token; index in arguments; ++index) {
				token = tokenize(arguments[index]);

				object[token] = true;
			}

			fromObject(this, object);
		},
		contains: function contains(token) {
			return token in toObject(this);
		},
		remove: function remove() {
			for (var object = toObject(this), index = 0, token; index in arguments; ++index) {
				token = tokenize(arguments[index]);

				object[token] = false;
			}

			fromObject(this, object);
		},
		toggle: function toggle(token) {
			var
			object = toObject(this),
			contains = 1 in arguments ? !arguments[1] : tokenize(token) in object;

			object[token] = !contains;

			fromObject(this, object);

			return !contains;
		}
	};

	return DTL;

}());
if (!("Document" in this)) {

// Document
if (this.HTMLDocument) { // IE8

	// HTMLDocument is an extension of Document.  If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
	this.Document = this.HTMLDocument;

} else {

	// Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype.  The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.
	this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
	this.Document.prototype = document;
}

}

if (!('Element' in this && 'HTMLElement' in this)) {

// Element
(function () {

	// IE8
	if (window.Element && !window.HTMLElement) {
		window.HTMLElement = window.Element;
		return;
	}

	// create Element constructor
	window.Element = window.HTMLElement = new Function('return function Element() {}')();

	// generate sandboxed iframe
	var vbody = document.appendChild(document.createElement('body'));
	var frame = vbody.appendChild(document.createElement('iframe'));

	// use sandboxed iframe to replicate Element functionality
	var frameDocument = frame.contentWindow.document;
	var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
	var cache = {};

	// polyfill Element.prototype on an element
	var shiv = function (element, deep) {
		var
		childNodes = element.childNodes || [],
		index = -1,
		key, value, childNode;

		if (element.nodeType === 1 && element.constructor !== Element) {
			element.constructor = Element;

			for (key in cache) {
				value = cache[key];
				element[key] = value;
			}
		}

		while (childNode = deep && childNodes[++index]) {
			shiv(childNode, deep);
		}

		return element;
	};

	var elements = document.getElementsByTagName('*');
	var nativeCreateElement = document.createElement;
	var interval;
	var loopLimit = 100;

	prototype.attachEvent('onpropertychange', function (event) {
		var
		propertyName = event.propertyName,
		nonValue = !cache.hasOwnProperty(propertyName),
		newValue = prototype[propertyName],
		oldValue = cache[propertyName],
		index = -1,
		element;

		while (element = elements[++index]) {
			if (element.nodeType === 1) {
				if (nonValue || element[propertyName] === oldValue) {
					element[propertyName] = newValue;
				}
			}
		}

		cache[propertyName] = newValue;
	});

	prototype.constructor = Element;

	if (!prototype.hasAttribute) {
		// <Element>.hasAttribute
		prototype.hasAttribute = function hasAttribute(name) {
			return this.getAttribute(name) !== null;
		};
	}

	// Apply Element prototype to the pre-existing DOM as soon as the body element appears.
	function bodyCheck() {
		if (!(loopLimit--)) clearTimeout(interval);
		if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
			shiv(document, true);
			if (interval && document.body.prototype) clearTimeout(interval);
			return (!!document.body.prototype);
		}
		return false;
	}
	if (!bodyCheck(true)) {
		document.onreadystatechange = bodyCheck;
		interval = setInterval(bodyCheck, 25);
	}

	// Apply to any new elements created after load
	document.createElement = function createElement(nodeName) {
		var element = nativeCreateElement(String(nodeName).toLowerCase());
		return shiv(element);
	};

	// remove sandboxed iframe
	document.removeChild(vbody);
}());

}

if (!('document' in this && "classList" in document.documentElement)) {

// Element.prototype.classList
Object.defineProperty(Element.prototype, 'classList', {
	configurable: true,
	get: function () {

		function pull() {
			var className = (typeof element.className === "object" ? element.className.baseVal : element.className);
			[].splice.apply(classList, [0, classList.length].concat((className || '').replace(/^\s+|\s+$/g, '').split(/\s+/)));
		}

		function push() {
			if (element.attachEvent) {
				element.detachEvent('onpropertychange', pull);
			}

			if (typeof element.className === "object") {
				element.className.baseVal = original.toString.call(classList);
			} else {
				element.className = original.toString.call(classList);
			}

			if (element.attachEvent) {
				element.attachEvent('onpropertychange', pull);
			}
		}

		var element = this;
		var original = _DOMTokenList.prototype;
		var ClassList = function ClassList() {};
		var classList;

		ClassList.prototype = new _DOMTokenList;

		ClassList.prototype.item = function item(index) { // eslint-disable-line no-unused-vars
			return pull(), original.item.apply(classList, arguments);
		};

		ClassList.prototype.toString = function toString() {
			return pull(), original.toString.apply(classList, arguments);
		};

		ClassList.prototype.add = function add() {
			return pull(), original.add.apply(classList, arguments), push();
		};

		ClassList.prototype.contains = function contains(token) { // eslint-disable-line no-unused-vars
			return pull(), original.contains.apply(classList, arguments);
		};

		ClassList.prototype.remove = function remove() {
			return pull(), original.remove.apply(classList, arguments), push();
		};

		ClassList.prototype.toggle = function toggle(token) {
			return pull(), token = original.toggle.apply(classList, arguments), push(), token;
		};

		classList = new ClassList;

		if (element.attachEvent) {
			element.attachEvent('onpropertychange', pull);
		}

		return classList;
	}
});

}


})
.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
system/js/keepalive-uncompressed.js000064400000002323152177723720013531 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Keepalive javascript behavior
 *
 * Used for keeping the session alive
 *
 * @package  Joomla
 * @since    3.7.0
 */
!(function(){
	'use strict';

	document.addEventListener('DOMContentLoaded', function() {

		var keepaliveOptions  = Joomla.getOptions('system.keepalive'),
		    keepaliveUri      = keepaliveOptions && keepaliveOptions.uri ? keepaliveOptions.uri.replace(/&amp;/g, '&') : '',
		    keepaliveInterval = keepaliveOptions && keepaliveOptions.interval ? keepaliveOptions.interval : 45 * 1000;

		// Fallback in case no keepalive uri was found.
		if (keepaliveUri === '')
		{
			var systemPaths = Joomla.getOptions('system.paths');

			keepaliveUri = (systemPaths ? systemPaths.root + '/index.php' : window.location.pathname) + '?option=com_ajax&format=json';
		}

		window.setInterval(function() {
			Joomla.request({
				url: keepaliveUri,
				onSuccess: function(response, xhr)
				{
					// Do nothing
				},
				onError: function(xhr)
				{
					// Do nothing
				}
			});
		}, keepaliveInterval);

	});

})(window, document, Joomla);
system/js/color-field-init.min.js000064400000000266152177723720013005 0ustar00jQuery(document).ready(function($){$("select.simplecolors").simplecolors();$(document).on("subform-row-add",function(event,row){$(row).find("select.simplecolors").simplecolors()})});system/js/subform-repeatable.js000064400000012243152177723720012640 0ustar00(function($){"use strict";$.subformRepeatable=function(container,options){this.$container=$(container);if(this.$container.data("subformRepeatable")){return self}this.$container.data("subformRepeatable",self);this.options=$.extend({},$.subformRepeatable.defaults,options);this.template="";this.prepareTemplate();this.$containerRows=this.options.rowsContainer?this.$container.find(this.options.rowsContainer):this.$container;var self=this;this.$container.on("click",this.options.btAdd,function(e){e.preventDefault();var after=$(this).parents(self.options.repeatableElement);if(!after.length){after=null}self.addRow(after)});this.$container.on("click",this.options.btRemove,function(e){e.preventDefault();var $row=$(this).parents(self.options.repeatableElement);self.removeRow($row)});if(this.options.btMove){this.$containerRows.sortable({items:this.options.repeatableElement,handle:this.options.btMove,tolerance:"pointer"})}this.$container.trigger("subform-ready")};$.subformRepeatable.prototype.prepareTemplate=function(){if(this.options.rowTemplateSelector){var $tmplElement=this.$container.find(this.options.rowTemplateSelector).last();this.template=$.trim($tmplElement.html())||"";$tmplElement.css("display","none");var map={SUBFORMLT:"<",SUBFORMGT:">"};this.template=this.template.replace(/(SUBFORMLT)|(SUBFORMGT)/g,function(match){return map[match]})}else{var row=this.$container.find(this.options.repeatableElement).get(0),$row=$(row).clone();try{this.clearScripts($row)}catch(e){if(window.console){console.log(e)}}this.template=$row.prop("outerHTML")}};$.subformRepeatable.prototype.addRow=function(after){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count>=this.options.maximum){return null}var row=$.parseHTML(this.template);if(after){$(after).after(row)}else{this.$containerRows.append(row)}var $row=$(row);$row.attr("data-new","true");this.fixUniqueAttributes($row,count);try{this.fixScripts($row)}catch(e){if(window.console){console.log(e)}}this.$container.trigger("subform-row-add",$row);return $row};$.subformRepeatable.prototype.removeRow=function($row){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count<=this.options.minimum){return}this.$container.trigger("subform-row-remove",$row);$row.remove()};$.subformRepeatable.prototype.fixUniqueAttributes=function($row,_count,_group,_basename){var group=typeof _group==="undefined"?$row.attr("data-group"):_group,basename=typeof _basename==="undefined"?$row.attr("data-base-name"):_basename,count=typeof _count==="undefined"?0:_count,groupnew=basename+count;$row.attr("data-group",groupnew);var haveName=$row.find("[name]"),ids={};for(var i=0,l=haveName.length;i<l;i++){var $el=$(haveName[i]),name=$el.attr("name"),id=name.replace(/(\[\]$)/g,"").replace(/(\]\[)/g,"__").replace(/\[/g,"_").replace(/\]/g,"").replace(/\W/g,"_"),nameNew=name.replace("["+group+"][","["+groupnew+"]["),idNew=id.replace(group,groupnew),countMulti=0,forOldAttr=id;if($el.prop("type")==="checkbox"&&name.match(/\[\]$/)){countMulti=ids[id]?ids[id].length:0;if(!countMulti){$el.closest("fieldset.checkboxes").attr("id",idNew);$row.find('label[for="'+id+'"]').attr("for",idNew).attr("id",idNew+"-lbl")}forOldAttr=forOldAttr+countMulti;idNew=idNew+countMulti}else if($el.prop("type")==="radio"){countMulti=ids[id]?ids[id].length:0;if(!countMulti){$el.closest("fieldset.radio").attr("id",idNew);$row.find('label[for="'+id+'"]').attr("for",idNew).attr("id",idNew+"-lbl")}forOldAttr=forOldAttr+countMulti;idNew=idNew+countMulti}if(ids[id]){ids[id].push(true)}else{ids[id]=[true]}$el.attr("name",nameNew);$el.attr("id",idNew);$row.find('label[for="'+forOldAttr+'"]').attr("for",idNew).attr("id",idNew+"-lbl")}var nestedTemplates=$row.find(this.options.rowTemplateSelector);for(var j=0;j<nestedTemplates.length;j++){var nestedTemplate=$($(nestedTemplates[j]).prop("content"));this.fixUniqueAttributes(nestedTemplate,count,group,basename)}};$.subformRepeatable.prototype.clearScripts=function($row){if($.fn.chosen){$row.find("select.chzn-done").each(function(){var $el=$(this);$el.next(".chzn-container").remove();$el.show().addClass("fix-chosen")})}};$.subformRepeatable.prototype.fixScripts=function($row){$row.find('a[onclick*="jInsertFieldValue"]').each(function(){var $el=$(this),inputId=$el.siblings('input[type="text"]').attr("id"),$select=$el.prev(),oldHref=$select.attr("href");$el.attr("onclick","jInsertFieldValue('', '"+inputId+"');return false;");$select.attr("href",oldHref.replace(/&fieldid=(.+)&/,"&fieldid="+inputId+"&"))})};$.subformRepeatable.defaults={btAdd:".group-add",btRemove:".group-remove",btMove:".group-move",minimum:0,maximum:10,repeatableElement:".subform-repeatable-group",rowTemplateSelector:"template.subform-repeatable-template-section",rowsContainer:null};$.fn.subformRepeatable=function(options){return this.each(function(){var options=options||{},data=$(this).data();if(data.subformRepeatable){return}for(var p in data){if(data.hasOwnProperty(p)){options[p]=data[p]}}var inst=new $.subformRepeatable(this,options);$(this).data("subformRepeatable",inst)})};$(function($){initSubform();$(document).on("subform-row-add",initSubform);function initSubform(event,container){$(container||document).find("div.subform-repeatable").subformRepeatable()}})})(jQuery);
system/images/arrow_rtl.png000064400000000133152177723720012070 0ustar00�PNG


IHDR		�"IDAT�c`�)������`
p*BV@�ID�	��>�(!x��IEND�B`�system/images/indent3.png000064400000000141152177723720011420 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc����1X@�l
Y�Jq�}��IEND�B`�system/images/notice-note.png000064400000001403152177723720012302 0ustar00�PNG


IHDRV�g�IDATx����@���9G���#p��`�m�%������,�}]��i:7�~x��`ŭ��]qpGҼ�p�nGnJ�ܥ�ޖ.�/Ѹ!�]T����u\���<\g�ћ\|K|�S+^N!|�E��C� ��rI�+�./J�����@�E�
t�*?ϡ|J�P�y:+���")
���Ŗ�1A�)<�"t��i3��(�HO��e�pB������ѳ���I�N1z�����CQ�<Q@N|�8D�E����h�l=**z4�1Q���q��AD̅�[
���{F4+��/����w���⓹蠩4N�}#�;Յ*z r0�!q��	�B?�w9&���蘃�dš�0Y;ʅ�	[}T�;��F%@8�z�X;5��yvt��3k�0�����g�s���q�a�l�C��>����sUt�Έ�IQ�Y
*=���nT�./fP���%>�{�qWuF�݂���F41�9�q��v�[��[����
7<���ʼ�ٟ6w��ѽ��}�����ޙ�H����/Ya?��w��#hC��c~�>�C�����yL���;�%`�fn����>�|}�a����U�/3Z�Ό�{4�z;JF��Nr�w����ũA*n�

|Nm���o�u���,��p�k�
�ݎF�{�ijA�t����y�7h��3|��uf8`�g8ð���ᯤ�_�[x�̋IEND�B`�system/images/mootree_loader.gif000064400000001040152177723720013034 0ustar00GIF89a�������������Ю��|||���!�NETSCAPE2.0!�
�,@D8��n�)(�����qSw� fL8�a�r���Bw	Qj��$�a�|��c�E.��X����!�
,>pHa��xD��!�%lc!!,{���t>y�@��h*J�F�Ci|�@�z�M#!�
,88�#�pC���h}�݀w4[�
�Q,' (D(δ��R;�D��8��& �D�W$!�
,
9p�I��(���&��q�}�	�e,\���xl�'���(���" �஗!�
,=�I�5Kq�-��
�x@�FQz�a�C �a�D|��7�ɂ#A���E���	D
&K�!�
,98�p��2H��hu_�Z�9����,�&���‚�W���Px#�ox��CL�;system/images/mootree.gif000064400000002724152177723720011520 0ustar00GIF89a��}����@�����Y��␐����sss��ཽ��̦غ{��=U������͑ɭx��z��������L�oI����Š��ޤ˄�ڹ���|���ҕ��η�u�ٝzg@���Ծ�������Ҷ|��^�Ε��昹u�כ��ǿ�_�vQ����К��E���q]5��ū�T��6Ѳs��Y�����}ؼ�����ȋ�wB����ٮ����ǝg�߿�j�灛�I���Ʋ����Å�����洰W���ˬk�ċ�۟��R�ԗ��`�zT�Ħca+��<�������넄����ַx�׽Ӵuťd۽~ư���S����ħkvb:�zH�����sM�}X��E������|hA�Ϫ���ɬq���`n+��B���Wm.!�XMP DataXMP�?xpacke                                                                            
                            
?xpacket end="w"?>!�},�@��}��}����������������������������������	$�	_�����$���������������‚���������a�wf"@Rv�N^^,��,^N�����،����������^�X(���AnἜ@�o�	o'��a�"�D+jܘq�"+BN�c�
 	9� D*���I�$J��:��ɓ�ΞBtQp��6k�Us��^4�+'(��8H�8P�G)Ӟ�<�T$l���:u$2d���3��~h����=�m`���غ�+���Ihu&X̸�$ƍCN��d�a)]��h��&�Q�(�a�mxZ�V���	����n"��iF�-O�L�g��$����p��_��7��	�'�.��%R���4"ڞ�4 ���١����t����;L�pⲍ4�����*A���GPD�S-���F� ��
)�aX}����}f����8�J��ڋ/�(��b��E�|8:7���aŐVLQ�I+<�jp�LDy$I�8̎����"��	p��#`����[vy&�h��f�f~Ĝ>`Q�i�4�B��g~j�	RĜ@�ygs0R�d�9&bX2�@]�R�$�
@���b�榏t�i�RJI����)��dPƬ:�Q�
c��Rj�c�}�J��T�j���6bj�>�d��4���22���<2�٪:ɵ�tk-��>���A
�d��
��{�T栫��f��n"�V�/�ኈ�_|��%B��sZ�'���7�f��G�0���g%�!�#����7�SĔr9�|\gl�&����[�l�cd����&T��L��
S�a�΂ �R).���1'�E�!GyD=5Ѣ��6�G�H�`�f(�B(D���$N�N�q�r3���i1�x�m_�8ځ;system/images/notice-download.png000064400000001706152177723720013152 0ustar00�PNG


IHDRV�g�IDATx��,GƯcg�3���El�I1V),���8�6�m�;>b�.�K�nfY)�����g���z(��5?}�(�hĪ���߰��+�W�y�{�>d�<c�@"N1~�#z���e��Hg�7v�~�@:X������Z{�+��k�p�^������,
���a�谎i"�5Xk9�n
�]��S���!�MEtpf�a�)C<5qd��8үc.�J��]p�׿}�ۖ�$�l�~���
y�Yޭc!ZE���ȅ)��S7Ы�EvI.G!�&����ߡ�:���Ҽ-�0�s8u�L����(e[#OZ�t8�j�H7�B_���٪�,�lm26�p�V'��nʅ���/m6@6ϳ��
��z
N(rb���N�x}�^H������mu�
�ΠT)�Ke�_�'�f�ʆT ��Q�u�:3+��&�:�MJW�PWj��l}���B�x/z?܍�_􁶲�Y1��a�N�eԥ��[E�"���F�N���O<����|fV�,��AXj�/Q'Y���1D�#X�oM���˯�RG'���,]j�,�ۥ�ns�u���S,n�����ݙTx]�
Pj���̘��e�t��I��TJ��Di.�E��lb��F;T[_�2!f���\6)i�'�Z��a�60ߕ��ہ��b���P*)X3w f/ϊ���Z�	��l�n�=	9�s&�_� �N�J�cGk6pl���.��T{�;�N���B��A�W �%AʖA���Zۺ��&H�}/��
�s�!���1r�1�R鵝Kgq���U)�UX%KMt|R��y��J'����q�x��\+�	Q�ԉ�'�� ���أgeR�>�价W(�a�^f!T���Y��TL!�A�ܶ�@f��y$�S$8 ��,k�;�����:��IEND�B`�system/images/edit_unpublished.png000064400000001032152177723720013403 0ustar00�PNG


IHDRO#+QtRNS�<��IDATx��5x[1`-�-���i)����R\������f�g�r�rMr�i�e�aN��{����t��G_�,�e2Z�t��D%�g4�#��ł;Fwu���a����;��d�ը�k�Ύq�[�/����J1�b����x��,�)�Pc��^ܓ��u�E5ti�~�|���[^k�n�$Y��ǯe�o��.�h��o�����^� ���$��T�c�38涐�?%���xT3�&��~Y�mW�ǰ�E)����Jx�5$�&S"m/�P_���q�B��Nx,c2�����W6�ZR�5��ajk)�~\���k��U�%UK�G���g
�$w�:��?W��H�ҟ�ԅ���)M��i�4����N�]p�����)b�����[��mcy�a�ng���)D1���:�ܣλ���m�HW���o��29�����q�@��P�c�%w�\m�����PY͟IEND�B`�system/images/no_indent.png000064400000000121152177723720012027 0ustar00�PNG


IHDR7n�$tRNS���
IDATxch��L��IEND�B`�system/images/indent1.png000064400000000137152177723720011423 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc������`�RJ6J�1���IEND�B`�system/images/weblink.png000064400000001422152177723720011512 0ustar00�PNG


IHDR�a�IDATxu�p�X���vT=۶m���l۶m۶Y۶;���o�=S�?�%9I~���v��a�5��ߌ?�:���S9�:�U�B#�/��c<�F;q��RӴ[����Ͼ9X��`��uh� W�����jxZ�?^-���Tϼ�5�4.ۤHn�e�}E�ؤ��Au'>X.dzҤ�Z7��bRv���8.�gr߱�G��r��]l%��sC7���qYo٤�F�]?��d�3u�"�CO8�9��w�kd҅h���00TF��Ňc_r�!�w�`��X&���\��a�D{8����|.�Sv���f����R#C79�x���xR�͚�ʏ�#���7�O�F���q��Q$b���7�t�gYF�%6�]�J��t�o��j�e�ny_ƺ*^�‡xA���c5�~`��X�������L�[j�a0�%j��筪�$pL'A��>�k��q#���S����tTz����q�CV��JV��!Y�
���1��/��w%�I��Ȇn3ߙ�^���[���H�9όw1�29X���!�br�;��G&�Ba��(�����E���7�w}O�S8�B�0H�"���d�����,�!g/
]{��@�N�ɏ�/��Y�Xfp�ijN=�M,�i ��"
�R�Q�P��%SG��벢w�i/�����>s��g�z�B��%��Jj�/�4JE����f�uS�^9C��Jۖ<��L.���?mkIEND�B`�system/images/indent5.png000064400000000133152177723720011423 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc����Y@�l
��L];u$�IEND�B`�system/images/sort1.png000064400000000240152177723720011124 0ustar00�PNG


IHDR��(�tRNS�[�"�YIDATxc���U�755��=�(޶t�����d�w��������6�����0���c�>������~�����	��C����m�/���IEND�B`�system/images/printButton.png000064400000000344152177723720012411 0ustar00�PNG


IHDR(-S?PLTE����ݾ�Ϣ���NNN���������kkk�����������������N����������/���O̫gtRNS@��fSIDATx^��G�0EA�Kz��Y#}R���x���Ax�60_
Cబg�#����E�a���8k�) �F��P��ȥG�k�IEND�B`�system/images/sort_asc.png000064400000000155152177723720011676 0ustar00�PNG


IHDRs;tRNSv��8&IDATxc@))��9)(�(2�)`�CBe
`S�P���K��>e�IEND�B`�system/images/rating_star.png000064400000000424152177723720012375 0ustar00�PNG


IHDR	";0LtRNS���7X}�IDATxu��AA��8Z�:@�2�������%"�}y�뷾coH�s~~^(*����x�Ͷ���iZ8�k+�����f�!��S�E�����X�>]__Ñ
:��x�yJ�<�P�8�
��M�,��ё���'�_l��ns�_�བྷ�!|����m�4P�0a�\�^������� P^H�">�����/�7`��g�,��)��IEND�B`�system/images/blank.png000064400000000133152177723720011144 0ustar00�PNG


IHDREMإ��tRNS���IDATxc��?G"k�5��|���R�IEND�B`�system/images/indent4.png000064400000000133152177723720011422 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc����Y@�l
��L];u$�IEND�B`�system/images/notice-alert.png000064400000001536152177723720012453 0ustar00�PNG


IHDRV�g%IDATxՖ5�WE�7р������w��W�R�L�>̜�����Ff�ɝ���~k��-�{���\:��Y"_E�p�W�������Ϋ�{>��@%�y��^^sŀ#O��M&ۦɁ�z�7_���g􀀷_)�y�E`�E��l��q7��c$*O0�M͙h)=(�f��Qh[z��`�U|8Ņ��x8V����!=�*�%�;޼�^ց{ct�C�{N��3J�m*�5F��5َ[��=CY�5I�o����k#�K�h����8��1H�|]iq8�qq���\��\���4�Smr�8O5W�v(g0�h]�;��p�˜Nip��Ntڊ�������~箑�O��4�!�&4�I����	���H�$�(�@LյT�����R����L�Q��h�R��"/�S_Gz4�D9�Ê��T�$+���$+�k���@9��J���S7���&E��'�c�,���I|��t_�ٺ?��2{��!ۂ϶�vb7��2ٟ`����Έ��+%���UaW����v15��!�{s���(�M!e_ؒ�)���S���
���K�&�����'��8�Kh��*�P�<�r/�X�2A��]�<�K�s�Ԗm����0�%+F,j:bQ\��i�XP��EA5���aV@�찀yi+�,��bV�mL�Ü��2t>i��.�h�ݑ������1#f�m���cf�*�3#n��hρ�)�Gt���Ӄ�����o���[J෰�G��#a-�"���B:C����|_��8��~���J�
���ҙ�	�i���;<�pH�X�IEND�B`�system/images/emailButton.png000064400000000400152177723720012335 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxc�O"�����???�4c������߷_�<y��Ϋ�����������÷?/>����קD�.�X4�,|ڴ����ן�<|��ڳ@����5`ṷ� ���u�/�l�0�y�����e�����N����O@��s�C���y�O��|�]�q����T˦��IEND�B`�system/images/sort_none.png000064400000000147152177723720012070 0ustar00�PNG


IHDRVu\�.IDAT(�c` ����LJA�$
 L�+H��y�h �yD�1~�,d�q���]��IEND�B`�system/images/arrow.png000064400000000153152177723720011211 0ustar00�PNG


IHDR		o�GtRNS���7X} IDATxc��)�€O�p�Av98"]��%��n�H�aIEND�B`�system/images/rating_star_blank.png000064400000000242152177723720013542 0ustar00�PNG


IHDR	�2��tRNS�[�"�[IDATx5Ƶ�0���af�CM�c�;u�_u���/@�U���V�MC�O�==J2���\+ҩ�vi�T�m¼q��d��W*�|����YD�VH6�>�IEND�B`�system/images/icon-16-logout.png000064400000000643152177723720012546 0ustar00�PNG


IHDR�ajIDATx��r,�s��7�m۶��#�{�8Ũ[��;϶�z=N�����=SMd��㇕��h�DK4���-Q@c�;�Q]&*�bꃁj��(sa��K���y�?%&	��(	
[��d.��}���Y�����ku+�I�o��>��c�����<��Ce ���Dor�2��u���U�\������X��6��,5�2U<�8OK|y5nj]p�*�>�W�^��R��ظ'^ܚ�dY�M�����MV��o�� ߇W��K�[�NR�6�T�֓Tx(�������3�j<��������	�wĘH�X$��x�l8N�;�����%e}��l��?�uhpis1]IEND�B`�system/images/notice-info.png000064400000002122152177723720012267 0ustar00�PNG


IHDRV�gIDATx���RSg�WN$4����K�%p	�x\B9�A���19�)A��B��� EGQN��c�cg�?o׷�)!;�f�Y߷ֻ�;{�M_#)|��C�7��p��X����Q���3~˃c\�x��"�ɘǣ�����h4�`��fވ�>�}by&��#h���o��/a\�yߎ��2v k��Q
�x6��
=a�~(�wi����@��0�&���i�gi`�0�#��W�:/nط��؏��a�=���3�=���5ѓ5Z��@Ùw]�X�Z2z�@=�d��:��d�5ы�T�y`_d�����m��w��V�kԾ��Q�н�V�D/A˻`����$eǎ�Rf��{�kԩk@�l�5΃�@-�\���poA۵%�eӶW�����Y��u6
"��m8f��0r�»lں�r�tgH���K���%8'sw
Y���L��=l�̰N��������i5FMkP��2?Y��wF�H0�M��T���5��oK6����8�@�@u��\J|R�"�%���6����]o�Q���^��
C�>�jg@
�i��%�L�����꧈��O��9b�ٴs*F۰(�
�7瑖����{���Τ��ֿ���`z�yPwc���|�|8n<|��jfE?%���
��_��O�9����)~��Mm+ Ǵ�D��k��L�䘲fTOC[5��~J��r��8Y�'A�r�*]��i�+峏RF�d�X����l�J}p<^N0uV�|�����@��D=�sL�P���^�0;�i٘Um�����l�/l�9�񺭷�]m����>꣏F�Ǧ)�R9�}�
��>P��G�lF�[ށm�${/��G�N�P>s�*��	QɠD�"�[S솹�&{t%�l�]m�2m����ڵ.���XXod=�E=FE�V��(l�QA+����p��S�K��d�t�5�{f���3� �g�g��F+��	0�6�p���{q���i
�A���E"��Jy�9)�>��1�X��H�5�Ŀ~��M�PIEND�B`�system/images/checked_out.png000064400000000606152177723720012337 0ustar00�PNG


IHDR�aMIDATxc�	H�-�0u�����_�r���n�Dj.J�1w����F�����̂e+׼_�b�{ _����|����Y���
+֬�|��x5�lX�b� �.WQ�2����	�0y� ]������vN�������2m�y��7̜9���_�0c��/�����U�����d��G�����c����*��?o���G��	�%�m��t��V��:�6`O:A*ZqP\��P��߿����K�O�:����3�/_������96�
PPQ3�IJ��cמ����9�߾�����_�i��Qq���s�BgI��IEND�B`�system/images/calendar.png000064400000001120152177723720011623 0ustar00�PNG


IHDR�aIDATx����I���}�c۶K��b�rl뿈�۶}w��ۙ�,�U���L�&+���O'Cm�����?jnP���he�"Gf�-];
@�޹vr�!��]�<Zp9q�0����<���w��ף�{���`�@�l~FB|�����Wi>�|L�?�H�H���<y�|
P!�%E�ӳa�ݧ[�<�8�rXu�>���aݡ������/�}1�(Vy��f�������ݟ�!��d�H �;7��Ξ�(:��!�����ʔ(�m;���',���=0Bpq㱇~4�C�
���(�ō��p<�/��6�OJ������́�P�HQ�ߺ�5��e�m�r�9)�$�F}AIHsl���p��-,,��~�+ b���sҒb�J��X�0�!4��E�3����u�M�q���\������S��c��W�!T,�ĿO�R"O<7�{E��.�y����圴��S��!�I#�}S�\�ђ��������[���
��A�3f�vIIEND�B`�system/images/new.png000064400000000426152177723720010653 0ustar00�PNG


IHDR�a�IDATxڽ�!!F�wZ/�T���xq#�����H�9��̩8�ŝySL���11nk4|`zg���R}�,�R@Ġ��_`(<M�YZ���/�O��
β���#A+?u�d"߼\	�1��赪��e��|��(�T�\�/#>�DZ�O-�Bı&�q,��(.PH��ؼ��ĮF5��nD�E�
5�
�����d�T�*���p��6?�_��1��QIEND�B`�system/images/sort0.png000064400000000227152177723720011130 0ustar00�PNG


IHDR��(�tRNS�[�"�PIDATxc����p����pvӤSϠ�%��_��S'�?�6���vө��.~�k�_�~�Γ'@��M�]�~�ɇ�v!Z[m�JC�IEND�B`�system/images/livemarks.png000064400000001202152177723720012050 0ustar00�PNG


IHDR�aIIDATx���k�Ŷ�Bl'�ضm۶m۶m���o^��*{s�z9�g)�?!�My�ئ�za�o�
���NO�����D$. b������d86�zy��	�=���	ߝmoV�o�k�����dV�C_!rk�lo��l���JDn��u�mPD$�"���&h���X��;�rs^l���!��y�akRÆ4�PD��.�"�*��S`���̤-N�cV����
�eo7"W�ի2�	:,R�I	�� �C|�4'pNb^�-A��>kK��^��L�N`NB�������.��I�O��q�@]��"��2�	�L��6%A��8H�0�A�T\��&x���>�s�2�	Z	�8!x��(��U�#�[���o�O�p���/���2�	Z�jj�I�ay@��h�)8_���]mϫ�}�X޴�\�Lx; =�����G�|t��M��e��ś&�	M{;���]B��#H	"z
澩�M*�_�gh�혉uq�.���W^���NM�_�4@��"���^p��Uc��H�M佡�:Q��|�i,�J��J̧�*�"�~@Y���?�G!XR
��z�IEND�B`�system/images/sort_desc.png000064400000000150152177723720012041 0ustar00�PNG


IHDRVu\�/IDAT(�cHII�O
f E10��r)�s16���rgಁ$
�uQމYD�IEND�B`�system/images/pdf_button.png000064400000000602152177723720012222 0ustar00�PNG


IHDR��h6tRNS���7X}7IDATx���~DQ��c��n��q�M�����>�m۶m�(���\���]E�R���kF:�Z�JK{:;��;X?�����FFg���srr211�O2>.E�������[�}�unj�Ȥ��m�	'eee�D��
gpx�O��	���`L��[���H���6]T��%������6�*վ���^�Vgg�9)*��o���F#
�����RS�BCwu:�X~i��F���EG�,.���b��,(�����H��V]]�Aݧa>��RX���������,\�=�?߯tℜV%M
�IEND�B`�system/images/icon_error.gif000064400000000471152177723720012204 0ustar00GIF87a��H�L�eP�f�3�++�������
��:9�p9�dz�97��>$��*'� �^�:4��?����&�E?�^*��������,@��'��b�f3�M6Aetmc��H�@3�P�2@hB��5il�CnG:V&���Q�2�	��x4���QaM�mY�"y4?W|Bf"=��	C@E��D@FHKxMdf�ILMQ
wj5�5r"v.x3Y~
w�X�[
L5�4f:�>�?"sB�<>����
����"!;system/images/indent.png000064400000000131152177723720011334 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc���Z���:�N�5ȏ�IEND�B`�system/images/mooRainbow/blank.gif000064400000000045152177723720013243 0ustar00GIF89ap!�,@D;system/images/mooRainbow/moor_cursor.gif000064400000000120152177723720014517 0ustar00GIF89a�������!�,!��i�X�F�����	_("`7���i��@Y�;system/images/mooRainbow/moor_boverlay.png000064400000001103152177723720015046 0ustar00�PNG


IHDR�{`�
IDATx�؁@@����V�m���O�e�3k����`�tx�/�� +�Xx�G V�������p7V�
`�X�4�@���g����@ �@ �@ �@�������@@���@��g V@8qb @!�X�����@�X7n��7V�
�+��
��p��
@G �@��7V�
�+��
��p��
@G �@��p��
@G �@��p��
@ |�3+ ���+ �@ �@ �@ �@o&��/��@�4>��h�X7�q` ��
��`���c�0^�X�
�`�x������%v�IEND�B`�system/images/mooRainbow/moor_arrows.gif000064400000000134152177723720014524 0ustar00GIF89a)	����nmo!�,)	@-T.���|B���F�\�op�ց�$�i������r�9���^�p�;system/images/mooRainbow/moor_slider.png000064400000000241152177723720014507 0ustar00�PNG


IHDR��hIDATx�˹	@0s�����j5~Ig$�c�4M�4M�v�'��L:�i��i�f=s�1M�4M�4�9?��<;�i��i�f=O�1M�4M�4�9?�<�1M�4M�4��Ԩu�'��IEND�B`�system/images/mooRainbow/moor_woverlay.png000064400000000777152177723720015113 0ustar00�PNG


IHDR�{`��IDATxb����?*F�PIL�B�(�����¤IWI�̈́|C.��c	3F�1�]:` �o���JCx                                    �������������������������������������������                                          0��)�:�IEND�B`�system/images/indent2.png000064400000000137152177723720011424 0ustar00�PNG


IHDR		�Y�tRNS�[�"�IDATxc��� ����0�8I=�2IEND�B`�system/images/tooltip.png000064400000000720152177723720011551 0ustar00�PNG


IHDR�a�IDATx}�+̬0�+��Xd%��r%v%Y[�Db����J�J�ʕ����f�'����L_
��[��o}��]@�{_qS��zIBܱ�P��~>Xw��	����+��Y�$F"n�
����'@��
��Ѝ�b�;�� <)�$>J=c����A9��>�����z3-1o��ܔ�jfFP��Z�b�|Å� �?Ն�{���1�G�۶s)
a?���PO����T~�f�v��D��
�E�(ړ�$�		խ����J�#cDB��x�Gx�lP��'?��K]��8T���
T�OL		}�>���(�-�{���
b�/���A�ݨk򕷄6�ebf�$��j`
I
�o7�63�c��'�B!�M���ϝE,}��	U�Tڡ2�Q.,���+��Qѱ�IEND�B`�system/images/edit.png000064400000000650152177723720011006 0ustar00�PNG


IHDR٬tRNS����/�]IDATx����0��������Ň���b1,.F��������`08_�ᆵ��;��u�����d�Ǐ���� a�喐�a"j�B3��&cg8�pB����Kf���po�����0�o���������fkB�X���ݱrv���KL_1M��퐧#�^"|����]�v���
V�xo��u'�j�	:_�q���hyoph���k�RZg���"1�x��?e�'�>]�*�ZEK�0/�qg������.�9Ka����=0Bzê�I���|"@����r��\B����-\N�c)����2#���H�%�
H/Ֆ���V�B��oi���$�W�˖��<�����οDY7��IEND�B`�system/images/livemarks-rtl.png000064400000001203152177723720012650 0ustar00�PNG


IHDR�aJIDATx��S��F��I�w���k۶��Z�z�m?ն��Fm۶}�$�Lm�_<��s��������;����(nɜ�@�����i�/�KG�ύ�e���e]��:p<p%8� /I'=D�P5H:��஋��X�9��{�$���z�|��L>@��={0F������璉E�m�n��'��{܉]?������7�+Q����{���/P�W�0��)�F8�}�W�Gu�m"YI>
��R��q�M.��}����l��%p����iQ�S�G݅R���K�_��4�m�}��Sp�f�7bV��O�H<7��wQ�(𤢠cg2�����1�\���;w�D~�4I
%�!�Se�[��h�J�n3"�#|��X���$�+!����ϣ�P���G�*d#�x�^NUD#Ѿ
eW(J�Ux���^��Є�T�)���m��d�د�!
;��w6��G��H�!0�>�W�11>~]�����Sh����e�ҭ��zO�	���7���J�X
�\_���π�yJ����>x?^��?��t@j"w�KjK ����F��p#��d��IEND�B`�system/images/modal/bg_w.png000064400000000127152177723720012072 0ustar00�PNG


IHDR!�A�IDAT[cd`d�F4���̂��H���?�:�G�LIEND�B`�system/images/modal/bg_n.png000064400000000141152177723720012055 0ustar00�PNG


IHDR(��X�(IDATxcb`db`�!F	c0A�0�g ��2��0��0�_����M�IEND�B`�system/images/modal/bg_e.png000064400000000134152177723720012046 0ustar00�PNG


IHDR!�A�#IDATxcd0g`b�����I���� ��h�R��T�IEND�B`�system/images/modal/bg_s.png000064400000000140152177723720012061 0ustar00�PNG


IHDR!��	4'IDAT[c`0fb`fb�F�PI��#q�!q���b�0�Cu�s�IEND�B`�system/images/modal/bg_sw.png000064400000000456152177723720012262 0ustar00�PNG


IHDR!!��
��IDATx^��� �"��v7.�G��J|��%~U��{�s�vW��۹�8�pe��l��U��V���������B�8��\$�brD�(=��"�wg�: �5�ӧ`H<�!ē4"b�-�ҍ�r�e���#�d`�r#�9Ԍ�|#<��H�W��B�u� �P�A3b7�)�0�P��_N�b������K�&)hc&�a&�_�8�91g�Rf�AY�#b���v�B}9O"�2��IEND�B`�system/images/modal/closebox.png000064400000002032152177723720012767 0ustar00�PNG


IHDR�9f)�IDATx���$[����j�����gm۶m۶�{�l۶mmm^Nw�1��	����n�@�@M7m�����4�����ter7-����Cd��΋:��7cq����U���%L�����Q���D��GZ�D�j��=/�*޷������	a���6�5�4���N���z��~���{KvjI\�#������&e�;�
���yO�A���8o���'Ǘ%)�0��jl�7���&zԗl���>"�M�Ia�X�K\�R�z���[��Ɋ&T��v���q�P���KD܂N=@|*�����%܄X�Ҁ?�va]r�M'���.�wt$�6�e
�����%zvkB&�`��ͦ�ѝ��Nt�LϷ�v7��4��ܬ�jd��菧Q�X>[�%m@?�;D��i�6�LF��;	���
�T�@�ã�N ��_[�@G�/����Ļܶ���� @�D�U�ZB�ֺ���(�}��o.B4��b�;L_C���q#�p�����c(E�#.�C��D�ꢿP��	}�I�z���*,W���F$��~Qk�־�%^�yX��e#V�ț��sDKՔj��U��6o0҇�_��x��ǎ������n��*��%�\��n�L�ى�#�6�G�\���5?�-�ٜN�z�?��E?�G%AA��s��Y�e��9�����Nߍ��,^~=�bix�3�5����';]����`(����a�@ij讓��'���`��M/s�};1]�!.F�J"��+�Q�ͻ��ψ���}�u������珇��>�A_�WR,$��9���r�/>�:��W_��b'�8�v�5�P$�}1k��pE����?�������Z�p����!��ؙ�|t�0�
l����A�^��f��3�9C,���
W��bN돑��ɬ����)F:G�^q:�3B9%Y���R�b䳕��P�kkm���@�#L0�jbK�^>1�ӊ�iB����0��=�IEND�B`�system/images/modal/bg_se.png000064400000000520152177723720012230 0ustar00�PNG


IHDR!!��
�IDATx��n�P�����+�]Y�*���c{i7�X�0ُmG�ٽ
��z,+�1��d�U���u�/l��s/��ݞ3�� �P�rlL��Ã��#��Fx
F��(�PŠ:�/�Y�F`:Rx�{�2��"6	�{����?�/�0�G�2�l���A�{s�8 ����=�R��v�l�Gc
����,�~N���.���
�"Ty苘�辈7�pǀ[�m�����̿��"8fX�"��(}�^ަp�o��"�z+��$�<�Ž�?(R���O<IEND�B`�system/images/modal/bg_ne.png000064400000000524152177723720012227 0ustar00�PNG


IHDR!(��[,IDATx�ՋnQ��}�7V{=d�?d��л����*��B�A�d,��]$�x�i���D��i(0@0�!p���4D@�B��le("��A�D��+#��D��?��y���Zs���9 ����H�"� p�� �eA�0��/�i��̂ �ad��s*"`0��q#�1WM��^+R.��g�/��،� Fho,X*���U�r�:/��2���A������G�F`{�8��	��ͤ�]\|fD�@��q���wI�}~Z�O���F�vIEND�B`�system/images/modal/bg_nw.png000064400000000507152177723720012252 0ustar00�PNG


IHDR!(��[,IDATx��	n�@Cѡ&�?r�
;߰
'm�ꉒ�ӏ�O�ƴpN�>L(=O����5h^�)t>���(E�kD���`��LL��'&�}�9�
�z�"�>��Y���(2PF��:Fj�S@��� �M��
����:�B"3��0R��~|�M�^ M��p���A�D�{��ݑ�1\��}��g��pi���7�}�HD�z%�c�A�)Q�����f��?ʵvۄp�c���"B�`B�?�q|�.�IEND�B`�system/images/modal/spinner.gif000064400000003041152177723720012611 0ustar00GIF89a�?


%%%666DDDLLLTTT[[[dddlllttt{{{������������������������������������������������������������������������������������������������������������������������������������������������������������!�NETSCAPE2.0!�?,�����n
��RC�~o�Y-1����J��eF�$�v1_oa��SFr��29?,	8:BS".J#EJ')C-W7"#
,W6C.&>K,�C9!;K 6?>$�'75-8)�+b1)#/(?5)�?:>!?!4W1/? >8�K>�?$�:IBA!�?,
X��p��$zD�+��!=�3�����~/�T))@B�X�r
��C	Ȅ����	w6D(>IB$0�B1�D3,�?:%�A!�?,Q��pXi�B��c~6CY[@~�g#�l���A������PT:ȆE�~'�F�D2:C<7
>B.%HMC"3�1WBA!�?,

O����L�H�,�M?ܢ��U2?
4B0%Y���*@~7�j��P�/D�~���<I�G��.
�j�?HA!�?,Z�����	���T�� �#���6��%����%,�V$G��0 =ݣ� ����][ 
w-w"{?>JH).{?(<{�?A!�?,P��o�Y	�_);^d��O�X�ʱ8"��$�
g�r�)�12��D��b8
?*=B1f.�f6^A!�?,

O��p��ňB,C�w�ȅ���FU!�2�d�2��1A�H�ߢ�x�$-������ 
@~-X=?	?(D�0D
	=?NCA!�?,
V��pH̸��S
ɼ�>�SH�T.��YB8dDA��6����
)h��B�	d���+�h	?	?,C"+?=2"C=a�<?:DA!�?,Q��p��
�X��?��XS�'��HL!�� 6Ԥ�Ӱ~�_�H)@�Z�J �?
0P'??
>5qG>7BOGA!�?,

N��0�	�BE�p !�C�zZS+�䞞_�`�����~�ꩠ�8V�H�(?4G.M??6zG_?HA!�?,
U����3��ȟ�!B�_��vѣ��u �SV1 FY�꓾M
ݘ�]>�Z�X*�X
"/I8??PG/)??8i$>?A!�?,S����W��W���O�\~AWP�~(�9�Fñ6�j�s�|�G��
!
5!'7?&*?0)#C:?!C1/? A;plg_captcha_recaptcha_invisible/js/recaptcha.js000064400000002107152177723720016010 0ustar00/**
 * @package		Joomla.JavaScript
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
window.JoomlaInitReCaptchaInvisible = function() {
	'use strict';

	var items = document.getElementsByClassName('g-recaptcha'),
	    item,
	    option_keys = ['sitekey', 'badge', 'size', 'tabindex', 'callback', 'expired-callback', 'error-callback'],
	    options = {},
	    option_key_fq
	;

	for (var i = 0, l = items.length; i < l; i++) {
		item = items[i];
		if (item.dataset) {
			options = item.dataset;
		} else {
			for (var j = 0; j < option_keys.length; j++) {
				option_key_fq = ('data-' + option_keys[j]);
				if (item.hasAttribute(option_key_fq)) {
					options[option_keys[j]] = item.getAttribute(option_key_fq);
				}
			}
		}

		// Set the widget id of the recaptcha item
		item.setAttribute(
			'data-recaptcha-widget-id',
			grecaptcha.render(item, options)
		);
		// Execute the invisible reCAPTCHA
		grecaptcha.execute(item.getAttribute('data-recaptcha-widget-id'));
	}
};
plg_captcha_recaptcha_invisible/js/recaptcha.min.js000064400000000722152177723720016573 0ustar00window.JoomlaInitReCaptchaInvisible=function(){"use strict";for(var t,e,a=document.getElementsByClassName("g-recaptcha"),i=["sitekey","badge","type","size","tabindex","callback"],c={},r=0,d=a.length;r<d;r++){if((t=a[r]).dataset)c=t.dataset;else for(var s=0;s<i.length;s++)e="data-"+i[s],t.hasAttribute(e)&&(c[i[s]]=t.getAttribute(e));t.setAttribute("data-recaptcha-widget-id",grecaptcha.render(t,c)),grecaptcha.execute(t.getAttribute("data-recaptcha-widget-id"))}};
index.html000064400000000037152177723720006556 0ustar00<!DOCTYPE html><title></title>
mailto/images/close-x.png000064400000000162152177723720011372 0ustar00�PNG


IHDRs;9IDATxU���,31,��AE
�����k��m#��o���t��Ȁ�)��i�J"	)�F�IEND�B`�com_pwtacl/css/pwtacl.less000064400000014111152177723720011661 0ustar00/**
 * @package    PwtAcl
 *
 * @author     Sander Potjer - Perfect Web Team <extensions@perfectwebteam.com>
 * @copyright  Copyright (C) 2011 - [year] Perfect Web Team. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 * @link       https://extensions.perfectwebteam.com/pwt-acl
 */

// Colors
@red: #942A25;
@green: #378137;
@yellow: #FFFFCF;
@gray_lighter: #F0F0F0;
@gray_light: #CCC;
@gray_dark: #AAA;
@table_odd: #f9f9f9;

// Titlebar
.page-title {
	.icon-pwtacl {
		background-image: url('../images/pwt-acl.png');
		background-size: contain;
		background-repeat: no-repeat;
		width: 105px;
		height: 35px;
		position: relative;
		margin-bottom: -10px;
		margin-right: 5px !important;
	}
}

// Control Panel
.well.groups,
.well.users {
	min-height: 500px;
	padding-bottom: 0;

	.dataTables_wrapper {
		overflow: hidden;
		position: relative;
		margin-bottom: 10px;

		.dataTables_length {
			float: left;
			height: 30px;
			margin-top: 4px;

			select {
				margin: 0 5px 0 0;
				width: 50px;
				float: left;
			}
		}

		.dataTables_filter {
			input {
				width: 96%;
			}
		}

		.dataTables_paginate {
			float: right;
			text-align: right;
			height: 20px;
			margin-top: 7px;
		}
	}

	.dataTables_paginate a {
		background: none repeat scroll 0 0 #FFF;
		border: 1px solid @gray_light;
		text-decoration: none;
		margin: 0 0 0 5px;
		border-radius: 4px 4px 4px 4px;
		line-height: 18px;
		padding: 4px 14px;
		vertical-align: middle;

		&:hover {
			background: none repeat scroll 0 0 #E8F6FE;
			border: 1px solid @gray_dark;
			cursor: pointer;
			text-decoration: none;
		}
	}
}

// Table
table#pwtacl {
	thead {
		background-color: #f0f0f0;
		border-bottom: 1px solid #CCCCCC;

		th {
			text-align: center;
			font-weight: normal;
			font-size: 12px;
		}

		.border-left {
			border-left-color: @gray_dark;
		}
	}

	tr {
		&.odd td {
			background: @table_odd;
		}

		td {
			&.title {
				overflow: hidden;
				white-space: nowrap;

				.icons {
					float: left;
				}

				&.trashed a {
					color: @gray_dark;
				}
			}
			&.no-action {
				background: @gray_lighter;
			}

			&.action {
				text-align: center;
				padding: 0;
				font-size: 18px;
				vertical-align: middle;

				&.edit {
					cursor: pointer;
				}
			}

			&.core-login-site,
			&.core-admin,
			&.core-create,
			&.assetid,
			&.border-left {
				border-left-color: @gray_dark;
			}

			&.border-right {
				border-right: 1px solid @gray_dark;
			}

			&.padding-small {
				padding: 5px 4px;
			}

			&.padding-none {
				padding: 0;
			}
		}
	}

	.large-icon {
		margin-right: 0;
	}

	.table-additional {
		border: none;
		margin-bottom: 0;
		border-bottom: 1px solid @gray_dark;
		border-top: 1px solid @gray_dark;

		tr,
		td {
			border-left: none;
			border-radius: 0;

			&.border-left {
				border-left: 1px solid @gray_dark;
			}
		}
	}

	.additional {
		display: none;
	}

	.powered-by-pwtacl {
		float: right;
		display: inline-table;
		font-size: 18px;
	}

	.icon-lock:before {
		color: @red;
	}
}

// Legend
table#legend {
	tr {
		border-bottom: 5px solid #F0F0F0;
	}

	.legend-icon {
		background: #f9f9f9;
		text-align: center;
	}

	.legend-title {
		padding-left: 10px;
	}

	.icon-lock:before {
		color: #942A25;
	}
}

//Actions
.action {
	&.allowed {
		background-color: @green !important;

		[class^="icon-"]:before {
			color: #fff;
		}
	}

	&.denied {
		background-color: @red !important;;

		[class^="icon-"]:before {
			color: #fff;
		}
	}

	&.conflict {
		background-color: @yellow !important;;
	}
}

// Diagnostics
.diagnostics {
	.progress {
		margin: 20px 0 0 0;
		height: 25px;
		background: #fff;
	}

	.accordion-group {
		margin-bottom: 5px;
	}

	.accordion-heading .badge {
		text-align: center;
	}

	.icon-ok.icon-white {
		margin: 0;
	}

	.icon-ok.icon-white::before {
		color: #fff;
	}

	.quickscan {
		padding-right: 14px;

		&.quickscan-issues {
			background-color: #fcf8e3;
			border: 1px solid #faebcc;
			color: #8a6d3b;

			legend {
				color: #8a6d3b;
				border-bottom-color: #faebcc;
				font-weight: 700;
			}
		}

		&.quickscan-noissues {
			background-color: #dff0d8;
			border-color: #d6e9c6;
			color: #3c763d;

			legend {
				color: #3c763d;
				border-bottom-color: #d6e9c6;
				font-weight: 700;
			}
		}
	}

	.typeofchange {
		display: block;
		text-align: center;
	}

	.js-results-table {
		margin-top: 14px;
	}

	.accordion-heading {
		background: #e6e6e6;
	}

	.accordion-heading h3 {
		margin: 6px 0;
	}

	.accordion-heading small {
		color: #555;
	}

	.accordion-heading a {
		text-decoration: none;
	}

	.accordion-heading .badge-warning {
		margin-right: 5px;
	}

	.accordion-inner {
		background: #F0F0F0;
	}

	.accordion-inner .alert {
		margin-bottom: 0;
	}

	.completed {
		border-color: #d6e9c6;
	}

	.completed .accordion-heading {
		background-color: #dff0d8;
		color: #3c763d;
	}

	.nopointer {
		cursor: default;
	}
}

// Siderbar
.sidebar-content {
	padding: 0 14px;

	.nav-list {
		padding: 0;
	}

	.action {
		line-height: 24px;
		padding-left: 3px;
	}

	.allowed,
	.denied {
		color: #fff;
	}
}

// Filter tools
.js-stools {
	margin-bottom: 10px;
}

// PWT Extensions Dashboard
.com_pwtacl {
	header.header {
		background-image: url('../images/pwt-bg.jpg');
		background-size: cover;

		.icon-pwtimage {
			background-image: url('../images/pwt-acl.png');
			background-size: contain;
			background-repeat: no-repeat;
			width: 115px;
			height: 35px;
			position: relative;
			margin-bottom: -10px;
			margin-right: 5px !important;
		}
	}

	.pwt-extensions {
		font-size: 1.05em;
		line-height: 130%;

		p:last-child {
			margin-bottom: 0;
		}

		.pwt-heading {
			margin: 20px 0 8px;
			font-size: 1.2em;
			font-weight: 700;
		}

		.pwt-section {
			margin-bottom: 16px;

			&:last-child {
				margin-bottom: 0;
			}
		}

		.pwt-section--border-top {
			border-top: 1px solid #CCC;
			padding-top: 16px;
		}

		.pwt-extension-logo {
			max-height: 75px;
		}

		.btn-group-justified {
			display: table;
			width: 100%;
			table-layout: fixed;
			border-collapse: separate;

			> .btn,
			> .btn-group {
				display: table-cell;
				float: none;
				width: 1%;

				.btn {
					width: 100%;
				}
			}
		}
	}
}
com_pwtacl/css/pwtacl.css.map000064400000007126152177723720012267 0ustar00{"version":3,"sources":["pwtacl.less"],"names":[],"mappings":";;;;;;;;AAmBA,WACC;EACC,sBAAsB,wBAAtB;EACA,wBAAA;EACA,4BAAA;EACA,YAAA;EACA,YAAA;EACA,kBAAA;EACA,oBAAA;EACA,4BAAA;;AAKF,KAAK;AACL,KAAK;EACJ,iBAAA;EACA,iBAAA;;AAHD,KAAK,OAKJ;AAJD,KAAK,MAIJ;EACC,gBAAA;EACA,kBAAA;EACA,mBAAA;;AARF,KAAK,OAKJ,oBAKC;AATF,KAAK,MAIJ,oBAKC;EACC,WAAA;EACA,YAAA;EACA,eAAA;;AAbH,KAAK,OAKJ,oBAKC,mBAKC;AAdH,KAAK,MAIJ,oBAKC,mBAKC;EACC,iBAAA;EACA,WAAA;EACA,WAAA;;AAlBJ,KAAK,OAKJ,oBAiBC,mBACC;AAtBH,KAAK,MAIJ,oBAiBC,mBACC;EACC,UAAA;;AAxBJ,KAAK,OAKJ,oBAuBC;AA3BF,KAAK,MAIJ,oBAuBC;EACC,YAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;;AAhCH,KAAK,OAoCJ,qBAAqB;AAnCtB,KAAK,MAmCJ,qBAAqB;EACpB,uCAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;EACA,8BAAA;EACA,iBAAA;EACA,iBAAA;EACA,sBAAA;;AAEA,KA9CG,OAoCJ,qBAAqB,EAUnB;AAAD,KA7CG,MAmCJ,qBAAqB,EAUnB;EACA,0CAAA;EACA,sBAAA;EACA,eAAA;EACA,qBAAA;;AAMH,KAAK,OACJ;EACC,yBAAA;EACA,gCAAA;;AAHF,KAAK,OACJ,MAIC;EACC,kBAAA;EACA,mBAAA;EACA,eAAA;;AARH,KAAK,OACJ,MAUC;EACC,uBAAA;;AAKD,KAjBG,OAgBJ,GACE,IAAK;EACL,mBAAA;;AAIA,KAtBE,OAgBJ,GAKC,GACE;EACA,gBAAA;EACA,mBAAA;;AAFD,KAtBE,OAgBJ,GAKC,GACE,MAIA;EACC,WAAA;;AAGD,KA9BC,OAgBJ,GAKC,GACE,MAQC,QAAS;EACT,WAAA;;AAGF,KAlCE,OAgBJ,GAKC,GAaE;EACA,mBAAA;;AAGD,KAtCE,OAgBJ,GAKC,GAiBE;EACA,kBAAA;EACA,UAAA;EACA,eAAA;EACA,sBAAA;;AAEA,KA5CC,OAgBJ,GAKC,GAiBE,OAMC;EACA,eAAA;;AAIF,KAjDE,OAgBJ,GAKC,GA4BE;AACD,KAlDE,OAgBJ,GAKC,GA6BE;AACD,KAnDE,OAgBJ,GAKC,GA8BE;AACD,KApDE,OAgBJ,GAKC,GA+BE;AACD,KArDE,OAgBJ,GAKC,GAgCE;EACA,uBAAA;;AAGD,KAzDE,OAgBJ,GAKC,GAoCE;EACA,4BAAA;;AAGD,KA7DE,OAgBJ,GAKC,GAwCE;EACA,gBAAA;;AAGD,KAjEE,OAgBJ,GAKC,GA4CE;EACA,UAAA;;AAlEJ,KAAK,OAuEJ;EACC,eAAA;;AAxEF,KAAK,OA2EJ;EACC,YAAA;EACA,gBAAA;EACA,6BAAA;EACA,0BAAA;;AA/EF,KAAK,OA2EJ,kBAMC;AAjFF,KAAK,OA2EJ,kBAOC;EACC,iBAAA;EACA,gBAAA;;AAEA,KAtFE,OA2EJ,kBAMC,GAKE;AAAD,KAtFE,OA2EJ,kBAOC,GAIE;EACA,2BAAA;;AAvFJ,KAAK,OA4FJ;EACC,aAAA;;AA7FF,KAAK,OAgGJ;EACC,YAAA;EACA,qBAAA;EACA,eAAA;;AAnGF,KAAK,OAsGJ,WAAU;EACT,cAAA;;AAKF,KAAK,OACJ;EACC,gCAAA;;AAFF,KAAK,OAKJ;EACC,mBAAA;EACA,kBAAA;;AAPF,KAAK,OAUJ;EACC,kBAAA;;AAXF,KAAK,OAcJ,WAAU;EACT,cAAA;;AAMD,OAAC;EACA,yBAAA;;AADD,OAAC,QAGA,iBAAgB;EACf,WAAA;;AAIF,OAAC;EACA,yBAAA;;AADD,OAAC,OAGA,iBAAgB;EACf,WAAA;;AAIF,OAAC;EACA,yBAAA;;AAKF,YACC;EACC,kBAAA;EACA,YAAA;EACA,gBAAA;;AAJF,YAOC;EACC,kBAAA;;AARF,YAWC,mBAAmB;EAClB,kBAAA;;AAZF,YAeC,SAAQ;EACP,SAAA;;AAhBF,YAmBC,SAAQ,WAAW;EAClB,WAAA;;AApBF,YAuBC;EACC,mBAAA;;AAEA,YAHD,WAGE;EACA,yBAAA;EACA,yBAAA;EACA,cAAA;;AAHD,YAHD,WAGE,iBAKA;EACC,cAAA;EACA,4BAAA;EACA,gBAAA;;AAIF,YAfD,WAeE;EACA,yBAAA;EACA,qBAAA;EACA,cAAA;;AAHD,YAfD,WAeE,mBAKA;EACC,cAAA;EACA,4BAAA;EACA,gBAAA;;AA9CJ,YAmDC;EACC,cAAA;EACA,kBAAA;;AArDF,YAwDC;EACC,gBAAA;;AAzDF,YA4DC;EACC,mBAAA;;AA7DF,YAgEC,mBAAmB;EAClB,aAAA;;AAjEF,YAoEC,mBAAmB;EAClB,WAAA;;AArEF,YAwEC,mBAAmB;EAClB,qBAAA;;AAzEF,YA4EC,mBAAmB;EAClB,iBAAA;;AA7EF,YAgFC;EACC,mBAAA;;AAjFF,YAoFC,iBAAiB;EAChB,gBAAA;;AArFF,YAwFC;EACC,qBAAA;;AAzFF,YA4FC,WAAW;EACV,yBAAA;EACA,cAAA;;AA9FF,YAiGC;EACC,eAAA;;AAKF;EACC,eAAA;;AADD,gBAGC;EACC,UAAA;;AAJF,gBAOC;EACC,iBAAA;EACA,iBAAA;;AATF,gBAYC;AAZD,gBAaC;EACC,WAAA;;AAKF;EACC,mBAAA;;AAID,WACC,OAAM;EACL,sBAAsB,uBAAtB;EACA,sBAAA;;AAHF,WACC,OAAM,OAIL;EACC,sBAAsB,wBAAtB;EACA,wBAAA;EACA,4BAAA;EACA,YAAA;EACA,YAAA;EACA,kBAAA;EACA,oBAAA;EACA,4BAAA;;AAbH,WAiBC;EACC,iBAAA;EACA,iBAAA;;AAnBF,WAiBC,gBAIC,EAAC;EACA,gBAAA;;AAtBH,WAiBC,gBAQC;EACC,kBAAA;EACA,gBAAA;EACA,gBAAA;;AA5BH,WAiBC,gBAcC;EACC,mBAAA;;AAEA,WAjBF,gBAcC,aAGE;EACA,gBAAA;;AAnCJ,WAiBC,gBAsBC;EACC,0BAAA;EACA,iBAAA;;AAzCH,WAiBC,gBA2BC;EACC,gBAAA;;AA7CH,WAiBC,gBA+BC;EACC,cAAA;EACA,WAAA;EACA,mBAAA;EACA,yBAAA;;AApDH,WAiBC,gBA+BC,qBAMC;AAtDH,WAiBC,gBA+BC,qBAOC;EACC,mBAAA;EACA,WAAA;EACA,SAAA;;AA1DJ,WAiBC,gBA+BC,qBAMC,OAMC;AA5DJ,WAiBC,gBA+BC,qBAOC,aAKC;EACC,WAAA","file":"pwtacl.css"}com_pwtacl/css/pwtacl.css000064400000016407152177723720011515 0ustar00/**
 * @package    PwtAcl
 *
 * @author     Sander Potjer - Perfect Web Team <extensions@perfectwebteam.com>
 * @copyright  Copyright (C) 2011 - [year] Perfect Web Team. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 * @link       https://extensions.perfectwebteam.com/pwt-acl
 */
.page-title .icon-pwtacl {
  background-image: url('../images/pwt-acl.png');
  background-size: contain;
  background-repeat: no-repeat;
  width: 105px;
  height: 35px;
  position: relative;
  margin-bottom: -10px;
  margin-right: 5px !important;
}
.well.groups,
.well.users {
  min-height: 500px;
  padding-bottom: 0;
}
.well.groups .dataTables_wrapper,
.well.users .dataTables_wrapper {
  overflow: hidden;
  position: relative;
  margin-bottom: 10px;
}
.well.groups .dataTables_wrapper .dataTables_length,
.well.users .dataTables_wrapper .dataTables_length {
  float: left;
  height: 30px;
  margin-top: 4px;
}
.well.groups .dataTables_wrapper .dataTables_length select,
.well.users .dataTables_wrapper .dataTables_length select {
  margin: 0 5px 0 0;
  width: 50px;
  float: left;
}
.well.groups .dataTables_wrapper .dataTables_filter input,
.well.users .dataTables_wrapper .dataTables_filter input {
  width: 96%;
}
.well.groups .dataTables_wrapper .dataTables_paginate,
.well.users .dataTables_wrapper .dataTables_paginate {
  float: right;
  text-align: right;
  height: 20px;
  margin-top: 7px;
}
.well.groups .dataTables_paginate a,
.well.users .dataTables_paginate a {
  background: none repeat scroll 0 0 #FFF;
  border: 1px solid #CCC;
  text-decoration: none;
  margin: 0 0 0 5px;
  border-radius: 4px 4px 4px 4px;
  line-height: 18px;
  padding: 4px 14px;
  vertical-align: middle;
}
.well.groups .dataTables_paginate a:hover,
.well.users .dataTables_paginate a:hover {
  background: none repeat scroll 0 0 #E8F6FE;
  border: 1px solid #AAA;
  cursor: pointer;
  text-decoration: none;
}
table#pwtacl thead {
  background-color: #f0f0f0;
  border-bottom: 1px solid #CCCCCC;
}
table#pwtacl thead th {
  text-align: center;
  font-weight: normal;
  font-size: 12px;
}
table#pwtacl thead .border-left {
  border-left-color: #AAA;
}
table#pwtacl tr.odd td {
  background: #f9f9f9;
}
table#pwtacl tr td.title {
  overflow: hidden;
  white-space: nowrap;
}
table#pwtacl tr td.title .icons {
  float: left;
}
table#pwtacl tr td.title.trashed a {
  color: #AAA;
}
table#pwtacl tr td.no-action {
  background: #F0F0F0;
}
table#pwtacl tr td.action {
  text-align: center;
  padding: 0;
  font-size: 18px;
  vertical-align: middle;
}
table#pwtacl tr td.action.edit {
  cursor: pointer;
}
table#pwtacl tr td.core-login-site,
table#pwtacl tr td.core-admin,
table#pwtacl tr td.core-create,
table#pwtacl tr td.assetid,
table#pwtacl tr td.border-left {
  border-left-color: #AAA;
}
table#pwtacl tr td.border-right {
  border-right: 1px solid #AAA;
}
table#pwtacl tr td.padding-small {
  padding: 5px 4px;
}
table#pwtacl tr td.padding-none {
  padding: 0;
}
table#pwtacl .large-icon {
  margin-right: 0;
}
table#pwtacl .table-additional {
  border: none;
  margin-bottom: 0;
  border-bottom: 1px solid #AAA;
  border-top: 1px solid #AAA;
}
table#pwtacl .table-additional tr,
table#pwtacl .table-additional td {
  border-left: none;
  border-radius: 0;
}
table#pwtacl .table-additional tr.border-left,
table#pwtacl .table-additional td.border-left {
  border-left: 1px solid #AAA;
}
table#pwtacl .additional {
  display: none;
}
table#pwtacl .powered-by-pwtacl {
  float: right;
  display: inline-table;
  font-size: 18px;
}
table#pwtacl .icon-lock:before {
  color: #942A25;
}
table#legend tr {
  border-bottom: 5px solid #F0F0F0;
}
table#legend .legend-icon {
  background: #f9f9f9;
  text-align: center;
}
table#legend .legend-title {
  padding-left: 10px;
}
table#legend .icon-lock:before {
  color: #942A25;
}
.action.allowed {
  background-color: #378137 !important;
}
.action.allowed [class^="icon-"]:before {
  color: #fff;
}
.action.denied {
  background-color: #942A25 !important;
}
.action.denied [class^="icon-"]:before {
  color: #fff;
}
.action.conflict {
  background-color: #FFFFCF !important;
}
.diagnostics .progress {
  margin: 20px 0 0 0;
  height: 25px;
  background: #fff;
}
.diagnostics .accordion-group {
  margin-bottom: 5px;
}
.diagnostics .accordion-heading .badge {
  text-align: center;
}
.diagnostics .icon-ok.icon-white {
  margin: 0;
}
.diagnostics .icon-ok.icon-white::before {
  color: #fff;
}
.diagnostics .quickscan {
  padding-right: 14px;
}
.diagnostics .quickscan.quickscan-issues {
  background-color: #fcf8e3;
  border: 1px solid #faebcc;
  color: #8a6d3b;
}
.diagnostics .quickscan.quickscan-issues legend {
  color: #8a6d3b;
  border-bottom-color: #faebcc;
  font-weight: 700;
}
.diagnostics .quickscan.quickscan-noissues {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.diagnostics .quickscan.quickscan-noissues legend {
  color: #3c763d;
  border-bottom-color: #d6e9c6;
  font-weight: 700;
}
.diagnostics .typeofchange {
  display: block;
  text-align: center;
}
.diagnostics .js-results-table {
  margin-top: 14px;
}
.diagnostics .accordion-heading {
  background: #e6e6e6;
}
.diagnostics .accordion-heading h3 {
  margin: 6px 0;
}
.diagnostics .accordion-heading small {
  color: #555;
}
.diagnostics .accordion-heading a {
  text-decoration: none;
}
.diagnostics .accordion-heading .badge-warning {
  margin-right: 5px;
}
.diagnostics .accordion-inner {
  background: #F0F0F0;
}
.diagnostics .accordion-inner .alert {
  margin-bottom: 0;
}
.diagnostics .completed {
  border-color: #d6e9c6;
}
.diagnostics .completed .accordion-heading {
  background-color: #dff0d8;
  color: #3c763d;
}
.diagnostics .nopointer {
  cursor: default;
}
.sidebar-content {
  padding: 0 14px;
}
.sidebar-content .nav-list {
  padding: 0;
}
.sidebar-content .action {
  line-height: 24px;
  padding-left: 3px;
}
.sidebar-content .allowed,
.sidebar-content .denied {
  color: #fff;
}
.js-stools {
  margin-bottom: 10px;
}
.com_pwtacl header.header {
  background-image: url('../images/pwt-bg.jpg');
  background-size: cover;
}
.com_pwtacl header.header .icon-pwtimage {
  background-image: url('../images/pwt-acl.png');
  background-size: contain;
  background-repeat: no-repeat;
  width: 115px;
  height: 35px;
  position: relative;
  margin-bottom: -10px;
  margin-right: 5px !important;
}
.com_pwtacl .pwt-extensions {
  font-size: 1.05em;
  line-height: 130%;
}
.com_pwtacl .pwt-extensions p:last-child {
  margin-bottom: 0;
}
.com_pwtacl .pwt-extensions .pwt-heading {
  margin: 20px 0 8px;
  font-size: 1.2em;
  font-weight: 700;
}
.com_pwtacl .pwt-extensions .pwt-section {
  margin-bottom: 16px;
}
.com_pwtacl .pwt-extensions .pwt-section:last-child {
  margin-bottom: 0;
}
.com_pwtacl .pwt-extensions .pwt-section--border-top {
  border-top: 1px solid #CCC;
  padding-top: 16px;
}
.com_pwtacl .pwt-extensions .pwt-extension-logo {
  max-height: 75px;
}
.com_pwtacl .pwt-extensions .btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.com_pwtacl .pwt-extensions .btn-group-justified > .btn,
.com_pwtacl .pwt-extensions .btn-group-justified > .btn-group {
  display: table-cell;
  float: none;
  width: 1%;
}
.com_pwtacl .pwt-extensions .btn-group-justified > .btn .btn,
.com_pwtacl .pwt-extensions .btn-group-justified > .btn-group .btn {
  width: 100%;
}
/*# sourceMappingURL=pwtacl.css.map */com_pwtacl/js/diagnostics.js000064400000007645152177723720012206 0ustar00/**
 * @package    PwtAcl
 *
 * @author     Sander Potjer - Perfect Web Team <extensions@perfectwebteam.com>
 * @copyright  Copyright (C) 2011 - [year] Perfect Web Team. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 * @link       https://extensions.perfectwebteam.com/pwt-acl
 */

jQuery(document).ready(function ($) {
    jQuery('.js--start').on('click', function (e) {
        jQuery('.js--start').addClass('disabled').attr('disabled', 'disabled');
        jQuery('.progress').removeClass('hidden');
        var timeout = parseInt($(this).attr('data-timeout'));

        diagnostics(1);

        function diagnostics(step) {
            jQuery.ajax({
                url: 'index.php?option=com_pwtacl&task=diagnostics.runDiagnostics&step=' + step,
                dataType: 'json',
                success: function (a) {
                    var total = a.data.total,
                        items = a.data.items,
                        html = "",
                        stepclass = '.step' + step;

                    if (items) for (var action in items) {
                        for (var type in items[action]) {
                            for (var id in items[action][type]) {
                                var item = items[action][type][id];
                                html += '<tr>';
                                html += '<td><span class="typeofchange label label-' + item.label + '">' + item.action + '</span></td>';
                                html += '<td><span class="' + item.icon + '"></span>' + item.object + '</td>';
                                html += '<td>' + item.title + '<br><small>' + item.name + '</small></td>';
                                html += '<td>';

                                for (var field in item.changes) {
                                    var change = item.changes[field];
                                    if (change.old) {
                                        html += '<div class="btn-group"><span class="btn btn-small disabled">' + field + '</span><span class="btn btn-small btn-danger">' + change.old + '</span><span class="btn btn-small btn-success">' + change.new + '</span></div>';
                                    }
                                }

                                html += '</td>';
                                html += '<td>' + item.id + '</td>';
                                html += '</tr>';
                            }
                        }

                        jQuery(stepclass + ' table').removeClass('hidden');
                        jQuery(stepclass + ' tbody').html(html);
                    }

                    jQuery('.progress .bar').attr('style', 'width:' + 100 / 14 * step + '%');
                    jQuery(stepclass + ' .accordion-toggle').attr('href', '#step' + step).removeClass('nopointer');
                    jQuery(stepclass + ' h3').removeClass('muted').addClass('text-success');
                    jQuery(stepclass + ' .js-step-done').removeClass('hidden');
                    if (total) {
                        jQuery(stepclass + ' .js-assets-fixed').removeClass('hidden');
                        jQuery(stepclass + ' .js-assets-fixed-number').html(total);
                    }

                    step++;
                    if (step <= 14) {
                        setTimeout(function () {
                            diagnostics(step);
                        }, timeout)
                    } else {
                        jQuery('.completed').removeClass('hidden');
                        jQuery('.progress').removeClass('active').removeClass('progress-striped');
                        jQuery('.quickscan-issues').addClass('hidden');
                        jQuery('.quickscan-noissues').removeClass('hidden');
                    }
                },
                error: function (data) {
                    console.log('error' + data);
                }
            });
        }
    });
});com_pwtacl/js/datatables.min.js000064400000255205152177723720012562 0ustar00/*!
 DataTables 1.10.16
 ©2008-2017 SpryMedia Ltd - datatables.net/license
*/
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,G){E||(E=window);G||(G="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(G,E,E.document)}:h(jQuery,window,document)})(function(h,E,G,k){function X(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
    d[c]=e,"o"===b[1]&&X(a[e])});a._hungarianMap=d}function I(a,b,c){a._hungarianMap||X(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),I(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
    a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&cb(a)}function db(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
    a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&I(m.models.oSearch,a[b])}function eb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function fb(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute",
    top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function gb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Da(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:G.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);ja(a,d,h(b).data())}function ja(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=
    e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(eb(c),I(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===
    typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=
    d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Y(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ea(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ka(a);r(a,null,"column-sizing",[a])}function Z(a,b){var c=la(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function $(a,b){var c=
    la(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function aa(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function la(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Fa(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){t[i]===
k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function hb(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Da(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<
i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function M(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ga(a,e,c,d);return e}function ma(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ha(a,e);return M(a,
    c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(J(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function ib(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,
    d,{settings:a,row:b,col:c})}function Ia(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function Q(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=Q(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       b,f){var g,j;if(""!==f){j=Ia(f);for(var i=0,n=j.length;i<n;i++){f=j[i].match(ba);g=j[i].match(U);if(f){j[i]=j[i].replace(ba,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(U,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function R(a){if(h.isPlainObject(a))return R(a._);
    if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ia(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ba);j=e[i].match(U);if(g){e[i]=e[i].replace(ba,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(U,
        ""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(U))a[f.replace(U,"")](d);else a[f.replace(ba,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ja(a){return D(a.aoData,"_aData")}function na(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function oa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ca(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);
    c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ha(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Ka(a,e)}}function Ha(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");
    -1!==c&&(c=a.substring(c+1),R(a)(d,b.getAttribute(c)))}},m=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(R(j.mData._)(d,n),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=R(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)m(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)m(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&R(a.rowId)(d,b);return{data:d,cells:e}}
    function Ga(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||G.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Ka(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:G.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i);
        n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Ka(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function jb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===
        h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),La(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Ma(a,"header")(a,d,f,n);i&&da(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
        if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function ea(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);
        for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function N(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=
        -1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!kb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ga(a,l);l=q.nTr;if(0!==e){var t=d[c%e];q._sRowStripe!=t&&(h(l).removeClass(q._sRowStripe).addClass(t),q._sRowStripe=t)}r(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:
        f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ja(a),g,n,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ja(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function S(a,b){var c=a.oFeatures,d=c.bFilter;
        c.bSort&&lb(a);d?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;N(a);a._drawHold=!1}function mb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];
        n=f[k+1];if("'"==n||'"'==n){l="";for(q=2;f[k+q]!=n;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=nb(a);else if("f"==j&&d.bFilter)g=ob(a);else if("r"==j&&d.bProcessing)g=pb(a);else if("t"==j)g=qb(a);else if("i"==j&&d.bInfo)g=rb(a);else if("p"==
        j&&d.bPaginate)g=sb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function da(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");
        q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],da(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},
        e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&J(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",
            [a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?J(a,0,"Invalid JSON response",1):4===b.readyState&&J(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function kb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,
        !0),sa(a,tb(a),function(b){ub(a,b)}),!1):!0}function tb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,k=V(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",i);var pa={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g],
        l=f[g],i="function"==typeof n.mData?"function":n.mData,pa.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,n.bSearchable)),d.bSort&&t("bSortable_"+g,n.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",e.bRegex));d.bSort&&(h.each(k,function(a,b){pa.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+
        a,b.dir)}),t("iSortingCols",k.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:pa:b?j:pa}function ub(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}na(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)M(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;N(a);a._bInitComplete||
    ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?Q(c)(b):b}function ob(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?
        "":this.value;b!=e.sSearch&&(fa(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,N(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Na(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==G.activeElement&&i.val(e.sSearch)}catch(d){}});
        return b[0]}function fa(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Fa(a);if("ssp"!=y(a)){vb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)wb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);xb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function xb(a){for(var b=
        m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function wb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Oa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function vb(a,b,c,d,e,f){var d=Oa(b,d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==m.ext.search.length&&(c=!0);j=yb(a);if(0>=b.length)a.aiDisplay=
        g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Oa(a,b,c,d){a=b?a:Pa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function yb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;
        d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join("  ");c=!0}return c}function zb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,
        caseInsensitive:a.bCaseInsensitive}}function Ab(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function rb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Bb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Bb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+
        1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Cb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Cb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,
        f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ga(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){mb(a);jb(a);ea(a,a.aoHeader);ea(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ea(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);S(a);e=y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)M(a,f[b]);a.iInitDisplayStart=
        d;S(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ga(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&Y(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Qa(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Ra(a);r(a,null,"length",[a,c])}function nb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=
        new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Qa(a,h(this).val());N(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function sb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){N(a)},
        b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Ma(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Sa(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===
    e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:J(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&N(a));return b}function pb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",
        b?"block":"none");r(a,null,"processing",[a,b])}function qb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
        {"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",
        0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:ka,sName:"scrolling"});return i[0]}function ka(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"),
        j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),m=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,T=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),O,K,P,w,Ta=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};K=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==K&&a.scrollBarVis!==k)a.scrollBarVis=K,Y(a);else{a.scrollBarVis=K;p.children("thead, tfoot").remove();
        u&&(P=u.clone().prependTo(p),O=u.find("tr"),P=P.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");K=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=Z(a,b);c.style.width=a.aoColumns[B].sWidth});u&&H(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){r.width="100%";if(T&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=
            v(d),f=p.outerWidth());H(C,K);H(function(a){z.push(a.innerHTML);Ta.push(v(h(a).css("width")))},K);H(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ta[b]},o);h(K).height(0);u&&(H(C,P),H(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},P),H(function(a,b){a.style.width=y[b]},O),h(P).height(0));H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+z[b]+"</div>";a.style.width=Ta[b]},K);u&&H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+
            A[b]+"</div>";a.style.width=y[b]},P);if(p.outerWidth()<f){O=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(T&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(O-b);(""===c||""!==d)&&J(a,1,"Possible column misalignment",6)}else O="100%";q.width=v(O);g.width=v(O);u&&(a.nScrollFoot.style.width=v(O));!e&&T&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();n[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+
            (x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function H(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Ea(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,
        e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=la(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,m,o,p=a.oBrowser,d=p.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)o=c[i[m]],null!==o.sWidth&&(o.sWidth=Db(o.sWidthOrig,k),t=!0);if(d||!t&&!f&&!e&&j==aa(a)&&j==n.length)for(m=0;m<j;m++)i=Z(a,m),null!==i&&(c[i].sWidth=v(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));
        j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=ra(a,j.find("thead")[0]);for(m=0;m<i.length;m++)o=c[i[m]],n[m].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):"",o.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)t=i[m],o=c[t],h(Eb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",
            j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=
        v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Na(function(){Y(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Db(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||G.body),d=c[0].offsetWidth;c.remove();return d}function Eb(a,b){var c=Fb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Fb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,
        ""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function V(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||
        "string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function lb(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Fa(a);h=V(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Gb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g=
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               0;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Hb(a){for(var b,c,d=a.aoColumns,e=V(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,
        "");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Ua(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,
        D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);S(a);"function"==typeof d&&d(a)}function La(a,b,c,d){var e=a.aoColumns[c];Va(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Ua(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Ua(a,c,b.shiftKey,d))})}
    function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=V(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Gb(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],
        c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:zb(a.oPreviousSearch),columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:zb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,
        b)}}function Ib(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==
    k&&h.extend(a.oPreviousSearch,Ab(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Ab(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=m.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function J(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+
        " - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Jb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],
        h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Va(a,b,c){h(a).on("click.DT",b,function(b){a.blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+
        ".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Ra(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Ma(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ha(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=W(0,b):a<=d?(c=W(0,
        c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=W(b-(c-2),b):(c=W(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function cb(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Wa)},"html-num":function(b){return za(b,a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Wa)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=
        [ya(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=
        function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ka(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};
        this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();
            return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};
        this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in m.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Jb(e,a,!0):
            a,j=0,i,e=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())J(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{db(l);eb(l.column);I(l,l,!0);I(l.column,l.column,!0);I(l,h.extend(g,q.data()));var t=m.settings,j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();
            break}else{J(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+m.ext._unique++;var p=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();db(g);g.oLanguage&&Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);
            g=Jb(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],
                ["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",
                g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",g.fnPreDrawCallback,"user");p.rowIdFn=Q(g.rowId);fb(p);var u=p.oClasses;h.extend(u,m.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=
                !0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);I(l.oLanguage,a);h.extend(true,v,a);ga(p)},error:function(){ga(p)}}),n=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&
            (h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(da(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=g.aoColumns;j=0;for(i=t.length;j<i;j++)Da(p,e?e[j]:null);hb(p,g.aoColumnDefs,t,function(a,b){ja(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===
                a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ja(p,a)}}})}var T=p.oFeatures,e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);T.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=V(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Hb(p)}});
                z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||T.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);
                else if(b.length>0){p.nTFoot=b[0];da(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)M(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&ma(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();p.bInitialised=true;n===false&&ga(p)};g.bStateSave?(T.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Ib(p,g,e)):e()}});b=null;return this},x,s,o,u,Xa={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
        "g"),Wa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,L=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Ob=function(a,b){Xa[b]||(Xa[b]=RegExp(Pa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Xa[b],"."):a},Ya=function(a,b,c){var d="string"===typeof a;if(L(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Wa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return L(a)?!0:!(L(a)||"string"===
        typeof a)?null:Ya(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<f;e++)a[e]&&d.push(a[e][b]);return d},ia=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},W=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);
        return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};m.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,
            "\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ba=/\[.*?\]$/,U=/\(\)$/,Pa=m.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=/<.*?>/g,Na=m.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof
        h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};m.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},
        each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,n,l=this.context,m,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(m=Ba(l[g],u.opts));h=0;for(n=o.length;h<n;h++)f=o[h],f=
            "cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,m),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},
        pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return gb(this,a,b,0,this.length,1)},reduceRight:w.reduceRight||function(a,b){return gb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==
        e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===
        typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()",
        "table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?N(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),S(b,!1===a))})});o("page()",function(a){return a===
    k?this.page.info().page:this.iterator("table",function(b){Sa(b,a)})});o("page.info()",function(){if(0===this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:
        k:this.iterator("table",function(b){Qa(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))S(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){na(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)M(a,c[d]);S(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var Za=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"===
        i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return qa(f)},$a=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},ab=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=
        a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:W(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<
    d;c++)"none"==j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=b,f;return Za("row",a,function(a){var b=Nb(a);if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});
        b=Qb(ia(c.aoData,f,"nTr"));if(a.nodeName){if(a._DT_RowIndex!==k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){var i=c.aIds[a.replace(/^#/,"")];if(i!==k)return[i.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ia(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){ca(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<
    n;i++)l[i]._DT_CellIndex.row=g}oa(b.aiDisplayMaster,c);oa(b.aiDisplay,c);oa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Ra(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(ma(b,c)[0]):h.push(M(b,c));return h},1),c=this.rows(-1);
        c.pop();h.merge(c,b);return c});o("row()",function(a,b){return ab(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;b[0].aoData[this[0]]._aData=a;ca(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&
    "TR"===a.nodeName.toUpperCase()?ma(b,a)[0]:M(b,a)});return this.row(b[0])});var bb=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<D(g,
        "_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=aa(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&bb(f,c)}))}}};o("row().child()",function(a,b){var c=this.context;
        if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)bb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);c._detailsShow&&
        c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){bb(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,c,d,e){for(var c=
        [],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return Za("column",e,function(a){var b=Nb(a);if(a==="")return W(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=
        parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[Z(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()",
        "column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});u("columns().cache()","column().cache()",
        function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ia(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ia(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m=
        h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(n=j.length;i<n;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[m]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;ea(b,b.aoHeader);ea(b,b.aoFooter);xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?$(b,c):c},1)});o("columns.adjust()",
        function(){return this.iterator("table",function(a){Y(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return Z(c,b);if("fromData"===a||"toVisible"===a)return $(c,b)}});o("column()",function(a,b){return ab(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=$a(c),f=
        b.aoData,g=Ba(b,e),j=Qb(ia(f,g,"anCells")),i=h([].concat.apply([],j)),l,n=b.aoColumns.length,m,o,u,s,r,v;return Za("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){m=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<n;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&m.push(r)}else m.push(r)}}return m}if(h.isPlainObject(a))return[a];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||
        !a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b,c),e=this.rows(a,c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&
    a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        b,c){return{row:b,column:c,columnVisible:$(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){ca(b,c,a,d)})});o("cell()",function(a,b,c){return ab(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;ib(b[0],c[0].row,c[0].column,a);ca(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==
    c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){La(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()",
        "column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&fa(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),fa(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?
        this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b=m.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof m.Api)return!0;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?
        h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};m.camelToHungarian=I;o("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);
        a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){na(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||
        !1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));
        b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,
            1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,n){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,n)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.16";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow=
        {nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,
        sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
            this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+
            "_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",
            sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};
    X(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};X(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,
            bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],
        aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,
        aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,
            b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=x={buttons:{},classes:{},build:"dt/dt-1.10.16",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},
        order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",
        sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",
        sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Kb=m.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ha(a,
            b)]},simple_numbers:function(a,b){return["previous",ha(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ha(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ha(a,b),"last"]},_numbers:ha,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},n,l,m=0,o=function(b,d){var k,s,u,r,v=function(b){Sa(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=
                h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{n=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":n=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":n=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":n=j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":n=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:n=r+1;l=e===r?g.sPageButtonActive:""}if(n!==null){u=h("<a>",{"class":g.sPageButton+
                " "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(n).appendTo(b);Va(u,{action:r},v);m++}}}},s;try{s=h(b).find(G.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+s+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);
        return null!==b&&!isNaN(b)||L(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return L(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return L(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return L(a)?
            a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||-Infinity},"html-pre":function(a){return L(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return L(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<
        b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});cb("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);
                h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,
        "&quot;"):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:kb,_fnAjaxParameters:tb,_fnAjaxUpdateDraw:ub,
        _fnAjaxDataSrc:ta,_fnAddColumn:Da,_fnColumnOptions:ja,_fnAdjustColumnSizing:Y,_fnVisibleToColumnIndex:Z,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:la,_fnColumnTypes:Fa,_fnApplyColumnDefs:hb,_fnHungarianMap:X,_fnCamelToHungarian:I,_fnLanguageCompat:Ca,_fnBrowserDetect:fb,_fnAddData:M,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:ib,
        _fnSplitObjNotation:Ia,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ja,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ca,_fnGetRowElements:Ha,_fnCreateTr:Ga,_fnBuildHead:jb,_fnDrawHead:ea,_fnDraw:N,_fnReDraw:S,_fnAddOptionsHtml:mb,_fnDetectHeader:da,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:ob,_fnFilterComplete:fa,_fnFilterCustom:xb,_fnFilterColumn:wb,_fnFilter:vb,_fnFilterCreateSearch:Oa,_fnEscapeRegex:Pa,_fnFilterData:yb,_fnFeatureHtmlInfo:rb,_fnUpdateInfo:Bb,_fnInfoMacros:Cb,_fnInitialise:ga,
        _fnInitComplete:ua,_fnLengthChange:Qa,_fnFeatureHtmlLength:nb,_fnFeatureHtmlPaginate:sb,_fnPageChange:Sa,_fnFeatureHtmlProcessing:pb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:qb,_fnScrollDraw:ka,_fnApplyToChildren:H,_fnCalculateColumnWidths:Ea,_fnThrottle:Na,_fnConvertToWidth:Db,_fnGetWidestNode:Eb,_fnGetMaxLenString:Fb,_fnStringToCss:v,_fnSortFlatten:V,_fnSort:lb,_fnSortAria:Hb,_fnSortListener:Ua,_fnSortAttachListener:La,_fnSortingClasses:wa,_fnSortData:Gb,_fnSaveState:xa,_fnLoadState:Ib,_fnSettingsFromNode:ya,
        _fnLog:J,_fnMap:F,_fnBindAction:Va,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Ra,_fnRenderer:Ma,_fnDataSource:y,_fnRowAttributes:Ka,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});


com_pwtacl/js/assetissues.js000064400000000600152177723720012232 0ustar00jQuery(document).ready(function () {
    jQuery('#system-message-container').prepend(
        '<div class="alert alert-warning alert-joomlaupdate">'
        + pwtacl.PWTACLDIAGNOSTICS_MESSAGE
        + ' <button class="btn btn-primary" onclick="document.location=\'' + pwtacl.PWTACLDIAGNOSTICS_URL + '\'">' + pwtacl.PWTACLDIAGNOSTICS_BUTTON + '</button>'
        + '</div>'
    );
});com_pwtacl/js/permissions.js000064400000023555152177723720012250 0ustar00/**
 * @package    PwtAcl
 *
 * @author     Sander Potjer - Perfect Web Team <extensions@perfectwebteam.com>
 * @copyright  Copyright (C) 2011 - [year] Perfect Web Team. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 * @link       https://extensions.perfectwebteam.com/pwt-acl
 */

// 1 = Allowed
// 0 = Denied
// 9 = Not set

jQuery(document).ready(function ($) {
    var action = $('.action.edit');
    options = Joomla.getOptions('pwtacl');

    if (action) {
        action.click(function (e) {
            e.preventDefault();
            var assetid = parseInt($(this).attr('data-assetid')),
                action = $(this).attr('data-action'),
                groupid = parseInt($(this).attr('data-groupid')),
                parentid = parseInt($(this).attr('data-parentid')),
                setting = parseInt($(this).attr('data-setting')),
                setting_calculated = parseInt($(this).attr('data-setting-calculated')),
                setting_parent = parseInt($(this).attr('data-setting-parent')),
                newsetting = null,
                newsettingchilds = null,
                newcalculatedsetting = null;

            // Double-check to prevent Super User access revoking...
            if (assetid === 1 && action == 'core.admin' && setting === 1) {
                var retVal = confirm(options.superuseralert);
                if (retVal == false) {
                    return false;
                }
            }

            // Parent not-set
            if (setting_calculated === 9) {

                // Not-set -> Allowed
                if (setting === 9) {
                    newsetting = 1;
                    newsettingchilds = 1;
                    newcalculatedsetting = 1;

                    $(this).addClass('allowed');
                    $(this).find('span').removeClass().addClass('icon-ok');
                }
            }

            // Parent allowed
            else if (setting_calculated === 1) {

                // Allowed -> Denied
                if (setting_parent === 1 && setting === 1) {
                    newsetting = 0;
                    newsettingchilds = 0;
                    newcalculatedsetting = 0;

                    $(this).removeClass('allowed').addClass('denied');
                    $(this).find('span').removeClass('icon-ok').addClass('icon-not-ok');
                }

                // Allowed -> Not-set
                else if (setting === 1) {
                    newsetting = 9;
                    newsettingchilds = 9;
                    newcalculatedsetting = 9;

                    $(this).removeClass('allowed');
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                }


                // Inherited Allowed -> Denied
                if (setting === 9) {
                    newsetting = 0;
                    newsettingchilds = 0;
                    newcalculatedsetting = 0;

                    $(this).addClass('denied');
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                }
            }

            // Parent denied
            else if (setting_calculated === 0) {

                // Denied -> Not-set (allowed)
                if (setting_parent === 1 && setting === 0) {
                    newsetting = 9;
                    newsettingchilds = 1;
                    newcalculatedsetting = 1;

                    $(this).removeClass('denied');
                    $(this).find('span').removeClass().addClass('icon-ok');
                }

                // Denied -> Not-set
                else if (setting === 0) {
                    newsetting = 9;
                    newsettingchilds = 9;
                    newcalculatedsetting = 9;

                    $(this).removeClass('denied');
                }

                // Allowed -> Locked
                if (setting === 1) {
                    newsetting = 9;
                    newcalculatedsetting = 0;

                    $(this).removeClass('conflict');
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                }
            }

            // Set new asset settings
            $(this).attr('data-setting', newsetting);
            $(this).attr('data-setting-calculated', newcalculatedsetting);

            if (newsetting !== null) {
                saveAction(assetid, action, groupid, newsetting);
            }

            if (newsettingchilds !== null) {
                setChilds(assetid, action, newsettingchilds, newsetting, groupid);
            }
        });
    }

    function setChilds(assetid_parent, action, setting_calculated, setting_parent, groupid) {

        $('td[data-parentid="' + assetid_parent + '"][data-action="' + action + '"]').each(function () {

            var setting = parseInt($(this).attr('data-setting')),
                assetid = parseInt($(this).attr('data-assetid'));

            if (setting_calculated === 9) {

                if (setting === 9) {
                    $(this).attr('data-setting-calculated', setting_calculated);
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                }

                if (setting === 0) {
                    $(this).attr('data-setting', 9);
                    $(this).removeClass('denied');
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                    saveAction(assetid, action, groupid, 9);
                }
            }

            else if (setting_calculated === 1) {
                if (setting === 9) {
                    $(this).attr('data-setting-calculated', setting_calculated);
                    $(this).find('span').removeClass().addClass('icon-ok');
                }

                if (setting === 1) {
                    $(this).attr('data-setting-calculated', setting_calculated);
                    $(this).attr('data-setting', 9);
                    $(this).removeClass('allowed');
                    saveAction(assetid, action, groupid, 9);
                }
            }

            else if (setting_calculated === 0) {

                if (setting_parent === 0 && setting === 9) {
                    $(this).attr('data-setting-calculated', setting_calculated);
                    $(this).attr('data-setting', 9);
                    $(this).find('span').removeClass().addClass('icon-lock');
                }

                else if (setting === 9) {
                    $(this).attr('data-setting-calculated', setting_calculated);
                    $(this).attr('data-setting', 9);
                    $(this).find('span').removeClass().addClass('icon-not-ok');
                }

                if (setting === 0) {
                    $(this).attr('data-setting', 9);
                    $(this).removeClass('denied');
                    $(this).find('span').removeClass().addClass('icon-lock');
                    saveAction(assetid, action, groupid, 9);
                }
            }

            // Set parent asset setting
            $(this).attr('data-setting-parent', setting_parent);

            setChilds(assetid, action, setting_calculated, setting_parent);
        });
    }

    function saveAction(assetid, action, groupid, setting) {
        request = {
            'assetid': assetid,
            'action': action,
            'groupid': groupid,
            'setting': setting
        };

        $.ajax({
            type: 'POST',
            data: request,
            url: 'index.php?option=com_pwtacl&task=assets.saveAction',
            success: function (response) {
                if (assetid === 1 && action == 'core.admin') {
                    location.reload();
                }
            }
        });
    }

    // Fixed table headers
    $.fn.fixedHeader = function (options) {
        var config = {
            topOffset: 82
        };

        if (options) {
            $.extend(config, options);
        }

        return this.each(function () {
            var o = $(this),
                $win = $(window),
                $head = $('thead', o),
                isFixed = 0,
                headTop = $head.length && $head.offset().top - config.topOffset;

            function processScroll() {
                if (!o.is(':visible')) return;
                if ($('thead.header-copy').length) {
                    $('thead.header-copy th').each(function (i, th) {
                        $(th).width($($head.find('th')[i]).width());
                    });
                    var i, scrollTop = $win.scrollTop();
                }
                var t = $head.length && $head.offset().top - config.topOffset;
                if (!isFixed && headTop != t) {
                    headTop = t;
                }
                if (scrollTop >= headTop && !isFixed) {
                    isFixed = 1;
                } else if (scrollTop <= headTop && isFixed) {
                    isFixed = 0;
                }
                isFixed ? $('thead.header-copy', o).show().offset({left: $head.offset().left}) : $('thead.header-copy', o).hide();
            }

            $win.on('scroll', processScroll);

            $head.clone(true).addClass('header-copy header-fixed').css({
                'position': 'fixed',
                'top': config['topOffset']
            }).appendTo(o);
            o.find('thead.header-copy');

            o.find('thead > tr > th').each(function (i, h) {
                var w = $(h).width();
                o.find('thead.header-copy> tr > th:eq(' + i + ')').width(w)
            });

            processScroll();
        });
    };

    $('.table-fixed-header').fixedHeader();

    $('[data-toggle=additional]').click(function (e) {
        e.preventDefault();
        $(this.getAttribute('data-target')).toggle();
        $(this).find('span').toggleClass('icon-arrow-right icon-arrow-down');
    });
});

jQuery(window).on('resize', function () {
    jQuery('.header-copy').remove();
    jQuery('.table-fixed-header').fixedHeader();
});
com_pwtacl/images/pwt-acl.png000064400000045301152177723720012236 0ustar00�PNG


IHDR����p�	pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*!	J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ	�b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(��	A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8,	�c˱"����V����cϱw�E�	6wB aAHXLXN�H� $4�	7	�Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S�	Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN	�(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#�׹���=TR��+�G�����w-
6
U����#pDy��	�
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�򗓿m|�����������x31^�V��w�w��O�| (�h���SЧ�������c3-� cHRMz%������u0�`:�o�_�F?�IDATx��{pT�柾ߤVK	a.L `@��`�@kǛĦ6�2�@&��I�I\[��k*L�f����JmmbOLf6�gf�ɬo��!1f��`�ld��Z-����C:����\���ϯ����ϭOw�����<�����XK+�^�B�sb1�b1�q��e
S�]*�L۶V�͛���/���$�B!̀g��ѽ���Sɑ/d3;�n<aŪ5���A"�@ �� r�FGGM�~�\F>�o�9����h���K�R8	!�4�`v��d/�������%�;X�b‘��絴� ��r�b###(�J��'�ϣ\.[v^�@�*��x<Fn~�7^���{yBq�r��T,�L�|���aDc-��W( �2B�_%S*�p��e��r��|>��a������
�h�P~��h���{��-q���^�D!ĕ�9%��ʥR���{(�E.I:����|>�p8l�<1@�FFF ˲e�4r_�P�b1��q��� �%��q�����?��gyGBq�`v��dbJ.�\BI�ہ$1gn7�^�f��f��B��A�!�LZ�x��x I��M�׋P(�h4z�P�F�[}�LB!�̖�U�p���0��)B�"}���l>�~����M�2��Y��r�,\�Y)����hmm��PR2	!��[0�F/������f�ىϏx[B�v�&��� ��,&&&��Zu��`�H---���vJJ&!����#�G6�6m'�1��k2��ɤ����
�\�d�q7�QhiiAGG�͛������8�GȎ[?��S��!�8�'r�w'R�^3wR.��֖�ߠlKY����Y�i!�b��r
��Ŧ;��� |>��.5G2	!�8[0�9����@ �XK��Қ���Y�iV�)��~D"��qtvv����@�����LB!�Ń�X2�D�|�*S���%͗ˑ��EK�2
!OgP�D�e���f���_���;yB�`�ª57�6�
��Ǚ�i����u�+�ފP��N���7S.%�B��s����΂EK���i��~?��8��
$�L"����H$�Z(g��dteb:�~[�~9!�'�Ⲅ�ĸ�ۗ$	����L�6�l����hkkCww7-Z��s碵�UW�w���1�`߭�x0�;�B�s���W4�r����d2|uu�'�(���uZ(������f��.��dBq�`�m��dY6}Sabb�T�y�(�S-�s��ł0o�<���*��ܸ^/%�B��`�[���XҲ}�r9���R2U�t�׊#��b���J(#�����M*��LB!��+w8a���$In��C���N��1�|tvv"�54�	�0)��B�d���QE�b�چ,姬MM���i�jMWT�~���B�M�(&GD,�츢Z��a��q��3Pr.�.�3i¸"J&!�ۣ�oX�S+��k�T��ӶJcNgg':::��ڪ;:�4�4�B8]N!Ć����;M[\�9�B�������
��bhooGOO:;;���`r�٩0T��I!ľ��o�N��+�uf.�h'����Ɯ9s��A�$��r	�����)��B�h��f������n�-.B4��s*>��`p����t��e�����T ��#����|�~h��ܵ��=���Bl�~���/O�R�!���i�i�#Q,_��6"
!����8�S:�E�r�\�����D@�e��i���f����p�
�LL�ФdB��$��wm_�����<��ʝ7*�h6�~?��-�^/����=�-�T
�B�U72�f���B�$�!�عk��^
����-����&��$I��t���=g�tww����XL�\NLL�N.������ũi�-��.�Bl�f�v�9����X�|��7�ѧ��q&�i�Pvvv^��mTO>�wmS��I!��]{�<��`�`X�s+�%W���R���Ӯ3;��4�l�P(8�c��I�$���A�t�`�]2s�FGG!˲!��|�F������"J&!�P2m�|�Y�I�+��������%Sdn�#�㊄H��?���ݻ�/��ˠO0-�$CX�j�#.�̠�(���p�aB9S.�GT�Q2	!�$�la^�83�e�>�B!�T*�T*u�P��a���:�#��-�k��Ǜj9L��gj���H�����>��~l
�ِ/���B	b���0,:��G$"���I!�L{	�ۍ8;�)�B!ttt`���X�l�ϟ���VH��R�d�cvsQ=�&��LB�d6#3k07��5���m�2#� �Ԝr�x<�B���)
WM�7�r��&�k2	!D
�`M�*�Lh�|��%�#�f��ߏH$�X,VW(g# 
5�Ŕ$	cccM�db&�i��S%s��?x��>���'6,M<
`/!��If�I���ԙ��w��E��	��Ǩ�G�χp8<]�i5�GT�B�д%���?�[��r�(��J&�)��0����W�z�e2��:��t�[���lqD�`\%�B(���;˅��B!�\V���^��Xs����d�̛7mmm��J�J%d�Y�E����"�<u�'T%�S!Ļy�!MH�#$�c�:�	���Hd�ӻR(QY.����,�j�8"�$�LB�d6�jS�ѠN�XK+�^����No�1Ǯ��~�B!��2�<;�gA�$d2^�p��B����g�^�u@���x�蓚� ��Ԁ-����0���I!�L;	�d6�y����9�����y<��aæmG$�(��� lߵ}y�^���m����!�!b������Bkk�+�5��2��,�Ţ�m�J%ʥ v
�w��$�qz1Y��G��ּ�J�>�p�X�-	�"1�!$��\{��<�.QM�R�K
&%�B�O��%s6�4|M򫄲��h�0�3���٬�k��"2��&IL�R��Uss{��+�dB%�F��_�PE���w�*��u�E/�J�d2(�J�ϙ��0d����(&%�B(������+���P>��/�.��—�e�&�l6˥)�v�̯���t^�dB(�M+���VW0��2ڂhk;"�6�QMB9�fZ�&��լ����\���iW��>��	��ޕ;��#�P2�Q0'���N�hK�P����

5�W,��f��˔$	|KR2�����k��ݔLB%�I���T
ee��ǂ�	��a�D�ed���L�Q0)��B�t�`F[�Y)�3i�L�R��l6�B��8"
&%�B(��L̘"�I��r��r����!�]y�3���I!�L��@��ҥKMw��R)
��y�y��Z8�I�$�J�
3��/�}p�6M��d��#�$	�L�,�-��@ ��@�$�;K�=M!�S4T2�-��ZǸ,˔L�|��J&!�$�{v�9��Y3��l�Q�z���r�t�B�oA��I(��bc�r�d�̗}�n�+�e���B���\�j^&���LB�d�C0}�n�,�˪�.��"�4�̆��;V�eJ&!�4�d�^0%Ir�(��ؘ�SY�111��L�7��K�l���(�;�mءI2�LB(�N�n�Cl�
�t_�hV�X᪻&�J]�1��H$©_�r9ֲZ,��L��ly����6����;�k?��"xBi6vN��v"���>H��`Ό#�C6�E6���Oʸud�ٙr	}�-۰CX������M���9���w�D�G��b��t:ͺLWd
�r���Z2wm_�O�$�P2�%�/��@�0�i��,#�N�.SP2���y2Y�)���b�t�&�e#��i�T*!�ɠX,�mXN��G�\F2���)���R�t�`���8�KWm��}e�Y�j<��%7��Q;�N�$�J��`���@�W�5�H�B�y����x8Mn:�v�dB�z���h�L��ˤ]>ĝ��J��#I�1��b/�:�(����o��s�)��W�q�v8X��`G�Y���d,A�`6��Q2	!�|v�U2%�N�+2#�H+�r�L��0���|�8"J&!�4�d�
��v9`'t��G�Wz��,�2��(���|lľMS2	!��)4�[|�f��p�]]]X�n�m_aY�122bk��|�D"�z�M�n,�\I#�r�.]2�>��e%w�9�7�Y��D�B����k!����X�b	��HHfCGj�{��;�$�	�)�ܶm��c�<�Mˏ�̹AL���{C�8r���ߩe������T?���g��3�.T�=D�Qӻ�c�0�ӭضi��8<������K�̑�?��V|��7�����?�>x��׼n###V������O����[��
x)�
beO��]�<<8-Pn'
�wN�mA�k]#���7��{c\�c`8�����k�`^[���^8>l�1�J�pZl��[�n���l+������g�ܯ_�U���OO<�Yxv|��5��DL�E�o��.�z���#?�WK_��Տ��S���7񣩎`&�I��~y$19�),�_�������{09�N,��]wը\-�=2��wR����BX���s"Br��
��pjp��3n�؉��?��10�١f�L5?����95s��|����Ǿ�z�A|�㷡%V��z��I���>_�g�YӦ��ӭ�r	�6���/��5Q�0o�a)�R�T*e�\����m�!,�O|q�&k2���Y�bM�҉�aY�+�Cߢ8�۲�mY�[�%L���k��-��o�BUrO\M�k2��]��ӗ����v���៟x�٭5E�_��k?�F?��"���t���gc�5
̻>B����?F̐�]ۗ')�֣V��b7x�ye��Kq�����W��p�uM�p�T#���$o�������[��O<��7����3�.`"�=Os�,ۭD�eLLLʾ�izޭ������;�'��GD�t)}���4����C+;4�U�%���ЃD4���ik��o�+�Q̙���o}������м��,z���Y,��R�*��hX�s���h���14&�Q2](�Z�jeO�R�醌�ۮ���ly+{b�o�BM�O(�V	思��S�0�qׇo���k$��+��0o߰J���r�lV�
DzF"��ͷ�����
c�(�6eݢVM��X���H��o�B�OE�^ܽ�����X�'�H�=g���ۿ��`:q]rQ�/�F2��`NJ��)�B��L&�I,6��>Ģ�G��&_�r1�c䒒iS�6���i�>w����l����]�)�&�L���L����FJ��QL�i�J$IB&�Q]��w��i�X4���_ď�*����}
{J���+�Ni�	�SSέ�l/��00��K�F�ҩ�p|?�����xxp���7$�g^[�mY��*��>�$S�ZyI;]�K�.	�a:U2��S����[��WN���dӆUx��_�~�,��d2�D"�K+1���Ы0�S.�Ӡ8"=�)���k���=g�`rş>��}kP�aY��hk���m�钳\��S�i����p�n���tUI\�Ê���c�49߮S��e�G�-�5���
�Y����w��;I*֜.�'	���7���V��8p�$Ҹ%�hpH�5S�B�B�P]1�3=^)��XpY]����@ɴ�\֓�\�T�1+{bx!���>z��<�5fH���J>y�?5�D4�
��T5Xq�b�d��~;]�l6���q������\���	Ǵ�x�R�~�jlڰ��ڗ>�#���D:����ō7,մ�oX���h�����e�H��Ta���^�co����5���xS�jL���[5=���ףP(�Pp�Zǔ�"���ҩ��>J��W��̆Mr��Hx��E�V�If�x���N�ө�4^y+ɛ��.�js�nWgtt���D��k֬�����N��ܾa5�����͞�v|�����8��I͂���xN�`*�B�2�z���0�Ag�M�3U0�.�F�muc���F��̿��
��m�ԣF2w�ux�^5��+���^J���.��30�E�`�n��em�̻�wkj`z������s�^8>����5�]�]B��LU���o�+cv��,���{��	|���_�N�q|tjÃ:���k�jפr
�J!4bz�r{f�v����3�
�K;`�q���gن;D��k���k�S[�sR?�jD�{�	��qzp��c��쳲'���'����}�-��J�����*�~��E[��Hf�a�9��>�GGGM�t-��3�K��'��<�3����j��Vcphg�
j�FK,�y�ڵI��(
�	a��6Uk�����w�K���|������o���5*���{���S�i!����>�hw�W�4)x�4��q��<�ߞ�B��o�h�4=�d%�v�*##�J4:��߼�k$s�-�t���$b.��n�Z�X-뙋�'�H���v�qD�H&�ھ|'%S�\�4�T�\V늞�]V��c�U���X?��m3J���j��rI��L-����vE�X62�J]5:g���SF��Q#���E��m�\�X��ɵ�����|�8(���iCD�{��*�|M���+��Ή`eO̱rIH�%��S�9qEz�J�ŏ56f(QCg�]�,�˗��wnYoʵ2k�\���iz<��:-���i#D�{f
�p�L��F��fj<��(���i�`&�E��˻�<��W1��&�˗��-:f�bn�/���Z��	o'�p�%����w��l>,���f��Eq$��!+l�!�L3��/���J��nG4
��=�Eg��u�˗�7eTT���!-���5��$Ik�LJ��V�S�i$3Ū/&����ۇVv?�%�7wK�]{��Y"�S��*\�଺8�!���<
���̻>r���_V'7Z��hau�\��c����k�.��LѶ�>+{b£�Ɍ��r�v��T-�����qGu�9�m�rz[�����S�F�vz���r�2)�����ǝ]I��d�HsO�X��n�f�u*�T����	%�`�|ɎW���u��Gxn�Ř�I���g߾�_<�tF�諑u��G0�]��8"J���4��=�V���l���D;ǓɖKZb�t�&�:L���M���T;=~��/��U�ӳ��Qr9�vn�U�Q2-BT�^{�~㥈�Y��&����C��$�U��l#��f�\��-���cP;=����(��8�R0��a%�8=�DqDZ%��j%�(��V2E�{���ds�-�zl��}V
f�X�)�e/	if��$�v�$�$�1qE��n|Fc��ir��Bj���F���A&�A��s��g�4�VI=���&�#�£�6�xJ����;�R���L��QqLf�B�V5��L����4�d�y�&�x�f��cJܐZfv������&W[�ypj�U�e]�o��
U��;M���̹A�����դqDZءV2��V�L夿j��$��3)`�{"S�V4���%p�җ�P2��~;��S�ɯ7��{r��Am���Smg���r/z]�>�L�7��%;ƭ��G>��]v6ŷ�psϸ�ѽS��h�Q#��9��4�d�N0�W��h���o�umr=qE=]�X�D|���Z�G�L�k��<��{(��J���w7�d�7��+ɘ�g�/lf7�,L��"&�z�m����G1��>V�Գl�ָ"����Ȥ�&������5���jblwGd�d>�V2�~��|QD�{�I��+7��'
�}�Q0	�L׍`��+��g�jz���hը�3�.h��W�6�h�Qփ���~�U�(j����:�F�8"���
;�Q�o}|ٓ����ʥH��ks!��#������f��{D��	�d�T0�<��g�ݪy��5F�ZWd��ir-#�Z�/���w7���ev$�<��%m�)��./M�����)"��f5���zg�8!u%�W�`��e6�$�$ɖ��w}�&|�ޭ��_���+�QԮMn��i�7�O�4�ڕ����^?}>���j��B/�{�<a��9��K�~�o��S�i$3E�#���f4��e
&!�?2�^��%��g�]�phh�Vuhw}�&<t��4?�^-����b"�Ӵ�M*�0���P��ɻ�a��n�PV��`2��T�W��/nZ��M���BwZgg�]�}!:��J����s�׵�922b�Q̞�v|�[�Q�\����ź�9�1N�F#�FN�WʱZ�Lyk��TV
�}#�c�t��N�{<��h�k.�@sO�X2d]�ׄG1�����rz�a��+��6�x<�B
��}�j<t���OO<�{Ŝ��Q<���QD5��LJ�X\����WK��,O5��Z�/�����L��c�R�K�K��ۂ��-r)2}l�\�4���>��b�!�|ȯs�|�ng�H$�Q(4oCͨ��qZb,_ң�"|��z�=��ܰT(�G��hm�s�~��c��}�M�ï�����W_y��? ��Rr��l��8"{�z���<D�{D���wR��ʎ�B����0�%��b~��Q<G0]q-?��Wlq>��UU�x��IM#��߲
��5�vz|"���>x��j��( �k߿XSn�2=�(sD���w�q�#�>�9-A��?���Έq�/�0ZW0���P��q^���Ke�r�9 ��fK���������}v:�h4�H����L;p�� ���WNh�oX��X�j�f�cT}Q�ce�\����Lj�y�`��~~Z4�R	�rYS	�]����9����y��������]�����X����鼶���^�����q��e
����$2Y�q�\�6�u"��E,	��I$Akk�5_Ne"��_������R�}Y�zqE�nQY��&T풗�h��@j�':��ū�ǁɺ^'���eȲI�P( IdYF�T�w�g�V���S�1鼌Co�L����w�nC�w1%6QOz	!Ӽ�W0?d����ȥ��H��Շ~�iu��tVu����}�S����ЃjH7�_^S@���6��QLwe�XT���a��>�԰��N�6[W�A,T�ա7�H�e���a��n�>!t��J�y��٫W0{}>����U˙s��_~X��jGjM���v��p���|��l�i�[5N�Ϭ��`6�P��'ww���ն՝b"xrشc8�f}���|�x};onB��c�?ps�т��x�H$\#���w���UO����n�ZqEfO�k��X׿�L�QX��{���.��c�-�Z�e�TR+��$�U�ߏ~��Y}���!�����7�8��(�{�w����1�z��9MNH
���c%���;77�,�8"�s��C?��O��
�j�^��bZ1=^y-Բ�U�e�t�|eZM��l��
�t�P�E�EH������G���o;�:�-(l�

�V�^�5�,��ҹQ}��b��+�U���|��ܜ�%�h��ee�S9sn�y�g��C?�$V�8�����5�
���W���r|�T�{�\F:�F�X���ݚ���Q0�E�T�,�����{�}z��'}�{������T�����ˋ6��6�,����k��n�W�‘�93��IL�sx�7�b�׿�_\h�-h�ì&�VM�k��XxZ2 ����ߞ��p��L�ee�����ةA.�r�U��sтƘ_���4��G��gYW�oDB��̼�R.}9�
� �Gdw�<s���~G��5|�r6����.��oX==
i��x���T���,�j��4d�{��Q�*��y(���?-��ܢ�s|J.������xs���x�b��V�}^<�����q���5Z�L�'ġr�E�7J0{�>+�Ԉ�x:�7+��/N�@���Ҩs��M��W)kVN���MVMװ*Kv��^�e�}H�t�PV���f�K���r�.]��&�}��VKJq�\:J0��#��C?r�+𕓸K�`V4�X==>���'U�b*�g�]�_�t&�J0�,CJl#���>�i��⎗K@��Ǯ(�>ZW�Q��qY;�P.k�%��3��NK?L�Gd��D:��y˗�%6Y�F֌�W�RCz�G&ez�R�����xGՏ���L�P��\��hs��������r�uu�!U.5&,�tKQ#8���s������æ�Z�ɕ��5�`��^VJ&Q'�EQ.M@�����m��Zw��b�\�L�>T�G�H��mDq���X�f�%��u{*�ɕ�����k�J���f��� ʥI�6���+�����۠u�	q�\��uV�������y��/���U���}ͺ=
�zׇoR5�
LN��3�J	���f����,��\��ӛ{f�ge�����4yw<���$��Y�:��k��8-�ȮL��8p���n�vU]��Խ��L��~�*aT�0U�Z�zZ�s<�~?$I�u��|�T�Q���s(� ��s��$�=z����������f��G���;ľ�>�q>�9��"B�4P0M���2��8z��j�T�c��q=��^K<Ѿ���\.�n"�+��$all�BI�l(���?=tA��ůN5�ܳ���pN�>^<1��6/���q�n���~���TO���AnuQ3p��	�a��q=i�q�97����L&�Z��L���e����r�\.C�e�uzS.M@��Gt]p�y�Ȑ���6��U���6��څ!�K݂	 a֙0���Fq�ܠ�ri��mk�ZR+߲,#�N�
P�Wd7�������\�A��GMw����H�m��{䢪i�oܱ��E�m��#�Zs�Yg�8"�0sӬ��J�4m�#��r�t�BA�d�ellLw�^f��yc��r��[�RMsϯt��c4{G1�4���Q��xz%���3�n�%�Zs�g�8"s9`�T�Y��W֜�O��^[;���;����R���T����Bi�\36�F�����m��"�T�4�h姇.�bJ���ҹQܷy��^�[�ϯ�S_Z��m�B�r��"��F�
��GKp��\�5=~e�L����,�H��uL͈{6��,�H��tXt��BD�{^<9l��N�e��{tfU>��Qh��Nیdn]=��S+�tn�� >�q���A(�f�f#φqD�qЄ�F���+%�h����,˘���[�)"�f��֘�dBY�N�em�������5��BTz�6�;?�j��,h�ß^�k�T��߼cIը��l^��Nb�\����;{��9㈬�	2h���5v?��+u��bQ�`�G��No��r7�rvě{�my��ΏM_�m���3-��ß^a���څ�r�����;z)��t�T-�0pz�qD֣�)�fO�+��䱫��Z�۵��q
%�R-j�{��=^�gG�4��S�r@uj,��W6/�>�����x߼c��x=�yG/6^��1M.��f#v�8��a�T�U����;v��*��d2�Ȣ��Wd�K�es�%�n型��m�C�So�0���3�5=w��(��V��_%\��f�߼c	��Қ����X-����|� gQ�8��IU+�ԖՓ�	�+͆�QI��N��D��(����!��rI���hsϡ���>���<���ۺ�?گ/(��ya@x��2��ыCo&q��q���QU�tnK��X��k��;�-y��]�6���l�E�].�f��2���5�|�ܠe��B��A��s�R	�L�px:�h�`���h�EʥCAK�e��_V���a!�ܶz~�����M]ѥ$gc����b�����]�f��&�f��_ټ�a���w�5�6S.+�}zv�8�ƣL5�	|�ׯ:�؍��/���f�(�J�BW���V���d��OR.m�hsϯ ���4y:/ו�Xȇ���"V/��١��qD��aY�G�����L �K@E
fl�	=ƌ#�F�뛛u�G
l����u�~���8"FQ.턚��5�퀨o3�F��v<y�1S�J
)�ri�\�L��d���+Xg�
��.�޺O3�]�$d2�E���2:�riKD�{�^�غ�G��YЊ�xȰ���2��w'��Cl}}������I�%�Ǭ�KK�qD�cr��A��o���nr#�]�ed�Y$�I��w�E>��PR.m�hs�^�^��>��t��Ȣj����|�8��k�����wҐ�S������V�T�`�� g�}�#Z���޿�ir=Ǯe*����0�����y��|>��qʥ�P��s��Qǝ��o3)`�b*��9�?��醋��T��0��9�QK����F�XM�O�ڍ3�Ⱦ<|��c�����q�S��C����\.�P(�P( ��Ϻd�$I�u�>��B�R	�@�?��!���iV��+�����v�Л�Htv��S�c��q�i,��=�u/U����N.kif��\�B0Gdo���R��Z#��+��̹A,_ңR�O
e�P��$�)q��I���>
Q2���
�r��S�|�D�{^<qٱө鼌�9-�ٽmu��1=�����?�T�������w�q�ͤ�C�I�ɥZ������b�8��?�W�q�h^os��3?�n�E]�O��ǯ�oq�G��W�c�G�J5(�C�x�^x<��H�\.�P(Tu��J^y�
~�.�[�}��r��?�Y�\@7�S+��˺��9&%O���W�һ�A�]؊X�'J~�R鼌��2JT����GK�g�`"'�
o�!��-�s3&���D���j���1��	�$i�fR�PΔ��F8�M��A��P.	!�)���ژ��H�&G�(����io#2(��r��s��w�`*u�,�\B����P�����p�RoY?�dY�����r����Ś��r��˺L�%!��].��j�O�ǃ��6Gi*S���t�P
�Y;���K��z��a��ˤ\R.	!ĉr�F0{k�ώ�W�Y6��C6GK��QT��c6�T�!��#�
�B\'��f<w͗���b�M9�
1�GT��5WTO�Y�I�$��ɥ�`Nu�W�NqDF��=[
�N�F�A�8�zT���r��`0��u��KBQ���
;˥�`b���H$�X,�J�a7��(�ޕK.څZqD"�)R*�2�<��`3�eR.	!D�g����o��+��l�/�^5���8����S0-J#��̠^Q=���YE2�h�rI!.�K!����u�T@8���s|Q=X�i<VD��H�x=�T+�J�O �\R.	!đr)$�z��2r�B�tvv��V�T*�P(��B�r�\β� ;�%P;��޾��2��[�k�KBq�\�
f�"
�r�tmmm�~%��J".���25qD��|�S9�����~����KBq�\���)�E��N�!I���]ې�ir�k�4�8](���Q�|>ͣ�.e����eR�\>
��|�B(�n̩�K0��ʈ^>���˗�H$\Y+Ƹ��Bi�� 3�GTѸ��P�
�����f���Sv�]H�\�G0�|� ��PU	S$3�R������ӻ�i�GT�ϧ{�e�\BH�e]����H�/呑����n��f�+rJt��#��Q���ˤ\BH��e]��c	������X,"�H��.3�˹���rj��Q�1^#K-V�I�$��&�K�9^�M�0V @GG�kj���
�\q.n�2K.����r��wڼ.�rI!M*�53�`[/�sj7�z���ኘ�X,�ة�E����D֌�R��o��B���Mr	Ԟ"�ղ�R����a���9~��\.�(��\-�Bi����;�r��`0h��L�%!����|����n;�Z��Yφ��Ʀ�2��,˶�+j�� 30#��z��ݧ6�ˤ\B岮`.ֻ�L&�b����N�6���yD�Q[K3wz)���5"�h6�ũ�`�~Q.	!�r)$��F�X,bhh����e/

LY��WˡP#a�,0S0+%3X�^�\B�RX07��R��K�.!�H�f4P+�d.f��êQ�b�8�nA]�~L�-N�$��em�/ؖ0cg�d�bmmm��H�|ޔ�"��[��P�W.�����Y�:+��&���>��Z�H�$�P.�P0��t:
I�����B�`�`2:�1(��v�*�Le�\B��>�	L�^�t	����W���˥�㵰�G��op(�&���~��(�B�l^�\l��eY��˗��m_�)�2$I���$������Nr��YqE�~�J%�S�z�r��?^	!�rio���K�T*!�LB�e��
����� {R*�l[�jv7y�?�RIO]&�B(��L�����Pv��e�r9D���Noe��Bi?GdW�T�[c]&�B(��\3�1�A>ڈ�	H$���,���+�D�Q�M��k_/;t��;�l6���PQ�I�$�q�crm�d3_�j�.
�2(��|�2:::.�3k�f�&'��	�TV��B�ˬ�^�\B�8���杼6L`r
oxxmmm��b
�j�B���\:�d��Yy�f	e�\B��0�L�����P,��
�ˬJ5_�B��\:�|�A��z_W�ˤ\B��P���].�ɠX,���S�d�J%H��Z(�m�T*9& �Y�cQ=<OC�f�rs��O�$�ʥ��k�,�Bgg�p�Q��1�K\���Շ��_k'��n��$�P(�<��B(��LE".]��D"Q5������:<
�}�{���7.���B(��
fx���v>�d2�B����6���QFDu��B�K������y���ݔKB�\.����%0Y���0���H��5�݌[�u�I79�B(��!��`pZ(�E��~��+E�e���`�t�
J6L�%!�P.M̆u�W�P�ț�㙖L�;��2z�T�t�jJ
�&�\B���LX�㩑Ie�R����t�\.3��81�H䇒��m�yi��>{`�rB�\�S0��Je���&E�Lv�[���D�_�S�\�Mc ��x�n�/�F�/�f�\z��i����y���L+���"�"�G$�����\B������y7/����)/��3=�m�P�vV�e�J%�Y$�N�#�qd�#�%!�P.-�>�2W٘S�ӻQ(�fK&�̧Y��^��%�KB�\6D0��{p @0��P�&�f7�0��|�tK��j�J�$��e����P���f�e2��\�t[�x=��\B�ҍ��W����.ӌ�0����D�S��ɓ�\[�rI!����K��u����aŬ�b��P(�;� �GT3	`���{�)��R��Sr��Ka�`H4C7�u��$Q0
��qD"?�8�r9ŷ�C��f�^������y���<���,'��e%2�R���ɥ��D�M�z��?p�vލ�Bt�M�sq3���dԨm�N�	�&���[.	!����O��2�H9���%���R�H�$�bK��ܬ���鎈��>�l���z�#�B���u��6�E�zuǗ�eJ�F1�\^�WD�$��h�B�N�W�b�����29M��f�#���(&�B��s3/�Ւ����)N�� ��KB!��6^�k�����)qE��\6{Q�7�T\�B���������Z��o}8r)�#�rI!�ɂ���0�d��ˤ<տ>�#��(��B(�.EM����a	�83F0��H�$��$�$�6�P2��qD�~�L�o����U!�B�t!"�?�ü��Q��e�W�B��s?/��V'��#�W`�.��~?�B�c���A��@�j]&㊮�%㈴�%�-�>M�$��X�|��A��erԎ׀rI!����8M��ju��^s�8"�%!��&̩��d��rg�e6���(��B��/���ϻ�"�{xI����(#w>�OӚ�N�qD�KB!dZ0�$�?>)��%S��Z��n�qD��ࣔKB!�r��qݺ{���/�v��2"�HӜ+;�5���O���B�۸&5|�����n�!�<&���hj1w��P�rI�����G��	/!�WzP�\���>�)��F��|�06����~N�Bq;��0K��RIEND�B`�com_pwtacl/images/pwt-bg.jpg000064400000013226152177723720012064 0ustar00���JFIF��C


		
%# , #&')*)-0-(0%()(��C



(((((((((((((((((((((((((((((((((((((((((((((((((((����"����/!1AQa�"2Rq�B���#3����!AQ1��?��}��LP��0a@L
z���o��q�^u5&}6�+^8�0��`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0���<=n�J4tb1��yq}?G�j�[���ӝ��{?ۗ���5+�K��b՚������+�iy����|
|
|
|
|
|
|
|
|
|
|
|
|
|
|?�M�?pXckV?v��gf ����m�uLP��0a@LP��0a@LPޏ�Z�<v�{�e��>����O�b"ݚ�k;:�w�|f7�q����<��~�=,��}9zO�huX��)y��:�?��`��(�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&B��Ԯ���-8��o�:���zz~koohx�ٯ�:��շ6`8��ZV�:�{K�]:�D�%#f(�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(	�
`€�0�&(�Dfx���m{c�����R�{̱����fH�=�N��ݴmdY:���GJ)���<��A��f�ub��yq�/S�O��դ���q��`f��)kc�A���<�u&gш2��gш���]�'�:���[O���.�Q�u�LGm���6�W��9����C���Q�⺟���c}��}��:�����x��M�:�&9�O���`~�y\�w����oy�/K�֮�Om[m��G���yԼ�_�Zr1��#�1�-�x�|��N&8����c�y��Z��uW�f�<��3�3�n⽦֙����	�Z��V9�{:zq���"7q�7Kyִ~�.��%��ӛ�Ţ?[�,l�4�ެ�����0 )7��̂��Z��Vԙb�Re��  y��������>#R~�������z���;�_�eӉ|g1oX��t�U�4"+��n���V��st�v�U��+o�iæs�'[���1ς|KG]�7M}I��<���?sZ4+9�9ǫ�&f֙��fs�Pq���ݖ�;"s9���}ۺk�D�"��`����|���x�O
�i��A���'WR)�����.�Υ�{m,����+J�8�‘���4�}�[~j���GSI��q����@!��"7�D�Z�
v�x`��3�O118�X��:O�k�b���i��8�����z�����lo[m.����113bxzյ�q]_�i������~����'J���]��Lb}��(|f_=�~��GU�Y����z�S�#��&s��1W�o�g��7}`�f���Amf-H�q;J��{�۷LJJ5��m��ٿRݵ�qN���J�@2$� ١���kJ��g���b"#h���O�zSy���nC�g �0֧�Ӛ��38��q1�7�z}���m�f��Y�gd�l�h�p\ϢZ��\�O��N��3��x���D�3Y��Z8���I��}��Gݧ��8^>���4:���loY��;O����LMfbc���辭��]x���>a[������:���^;�L�0�;LD�Q�=��28~����f��_Sh�A-���S�'��'�Rq��Dc��6��.�;wV'��������0�@#@��F��ȍE���5y�s��oM�:��#yj�z���h��m�Y;[����@�1դjRk?�yӘ���LsM�����r#��MF�+0�.Q/n�̂��-h��k�I�ل�y�g:�1��9�ȀB 	��kh�fbc�m/K��Ʈ�+�v����</W�zUs�x��ķ���ՙ�z��z}�5t�^�>�?TF��{�OM��u5΍�g�g
�[�������fe�oQ=WSk�5��b^��z�����~q�����s����{n:��_xf�ѿe���5@yrk߾��߯~��9�p3j� �7�{�::-/�����/[��h�t�ΌF?2��|
Z�z�m�Pe���Y��z�<�^�����i��#q�X͢?v�jL�"1��s�r#;jg�=XN��H@�>��s[E�3[D�1/O��ƶ��z����Q���'�^~>���t:�΍�g�gxn��>6�����k1�8z}'�5t�+�G}<Lr��{�{V���qZ�fZ�n�G��to9���8>��Ek5g��V�u�u:��uմ�3��k�Ϲ�a\@	�ա~��˕���/���+�6�{���M���Zz���+ȍ���g� ==�]��W�-?�,D��3<a�hiƖ�R9��Ϩ�co� m�`-=�Z��?��Yk�����5;�5��O��Ԭ��Y��h���c�q���; �����4�[Nf�����Լ�Vf֟,&Q�kφ�m���
��o>Vk�\�	�ui�|�:z{wW�y����m�ݑ11�a���3�8on�I��������;˟a�F�-+7�R9�u�;F-iշ卢�:F��R��I�Pa&b#y�&b��U�f,m��33;�ke�s�a�fg�9��85���f<K���i���Tp��h�"���o"�ڂ+��,���1�K:��?8�Q]ۚf�"r4��z��:{�&��Ýk3[D�tWo������0KZ+Y��_x���K���mH�#E�6���������Zߴ8�t�WR)�/f��V+]����������Rf"7�5[W?������:�m_���s9�:�aïN�I���}F��ҟ�	\!�����y��|�O�T=�E�w�b,�K:�Y��Zxg[ϝۚf嘙��Zd@�Oy��~�13��[wV%(��>�[GR+Kw����G��6�;��3B���y�_Om�>6y�'�]�_.��L��w�����Y��ӝmh�q̊�~�R��h��p�8������
��L�Ff`��3��j��v���3?"u������33��1��8��v_1�e�]��q�I��f'���m#4@	���j�'@�7�,��ij����U�3K:�չ��ܳ1>U�@z{�[�gi���x�:v�R'�4(>F8"qh�y]�U����hж&k<:���̲�
MX͒��n�9njV,�L�'�:
/���h�W�=&��k�c�ןw��8�G�-1��l&q��}_��s33��N�[W�����i�s3?�t��WN�Ţ6�]�u)����<��-�bf'��,��v�t���lη�1�^%�o����i��Vu��s_Y�f104�f��m�]R���^����ȱ��>|���b}�4�u"A�����(E�' ��gR(�`����Z_kF3�w���Ffp�U�O��33;�@f��^����F�K�Ǹ�I����������/Ae�,g�g�n�ǧ�~:����mod_languages/css/template.css000064400000000517152177723720012506 0ustar00div.mod-languages ul {
	margin: 0;
	padding: 0;
	list-style:none;
}
div.mod-languages li {
	margin-left: 5px;
	margin-right: 5px;
}

div.mod-languages ul.lang-inline li {
	display:inline;
}

div.mod-languages ul.lang-block li {
	display:block;
}

div.mod-languages img {
	border:none;
}

div.mod-languages a {
	text-decoration: none;
}mod_languages/images/sr_yu.gif000064400000000441152177723720012462 0ustar00GIF87a�!�����ziꧪ�b0̙3�ED����IF�-0�Z0�~t�{t볽�i6�33�����̙�����x�xhߐ����e?�ff�[#��ⰺ�胇�`0�43���,F��pH,��L�xT.�Y<>��`+@T&
wLD0L��FH�b6��q4rAh�|��|������A;mod_languages/images/ro_ro.gif000064400000000112152177723720012434 0ustar00GIF87a�+�&��,@#�/��}�RsD9C�7�z	��`���F�S��+�kS;mod_languages/images/az.gif000064400000000250152177723720011731 0ustar00GIF87a��f����5D�7F�~����bm�8�.�4�\j�t��3����"H����HV�3��5,-�$�di�h����Ғ
l�sD��;��
��l:�ШtJ�BC;mod_languages/images/ga_ie.gif000064400000000500152177723720012361 0ustar00GIF87a�����s�C�f�5���B�C�K�s���s�B�s�D�C���f�B�B�D�C���s�A�A������4�B�L�I������s�s�6�J��,e���A�8�$ $�0�K��(}
J�!2x�@@H`��E׫���dzh�����[w��Zj|voyh�l~pz�}w��t���a�r\|$

&'Y�#A;mod_languages/images/pt_pt.gif000064400000000436152177723720012453 0ustar00GIF87a�!b3�l8z*�%V�^�?�%n�˒ҫ�Ɯ��h"�uX���͆$�_G�jR�&?�$�|�iN�mG�{O�!�g0���|��jnެ��Վ�p�$�`,C@�p�Hq�l.���R@��F��`&X�ƒh0>�(�Pd ��z(�T6N�x)XJO�Y��OE�A;mod_languages/images/de_li.gif000064400000000251152177723720012374 0ustar00GIF87a� _`Q��-0KrpqQ`fVp^ 8^#f@KNϯ1 Av��Y@Q^��&��]߿<�;+~�%,.�$�diJͩ.�jY�B��A���'����q�l:�ШtJ�Z�!;mod_languages/images/sw_ke.gif000064400000000321152177723720012426 0ustar00GIF87a��3����ff��33��3�3��fff3�̙�����f�f̙�f�̙��f�f��̙��3�ff��f3�̙̙��f����f���̙f�����f,V�"�di��-ò�O,;٥\�#�D�����
�d��L�$@�.=N�J5x��gX�|��tZ#P�݂��Qr�%ł�!-|�!;mod_languages/images/en.gif000064400000002003152177723720011717 0ustar00GIF87a���璘菚%q�.B�-Bڿ��+�*풛�8H뜦}��,x K�)v�,$r�+���-�ꗡ�3E�ּ����F����6}� �64|���(�*����.����)�-U�w�4H铝����#8����e��Ua�T`����j}`r����'t텎�|�y�`p���ݼ�)t���`��Vb�����Ra���pw�����dr�pm�l����$wh��x�p`���i�n�����럩����0D�**w�9L�8L�1E#s/��i|� N����� *o����پ�)R�茗�WcTb��d�9���)>h�<Z�j������!-���Qp莙 }����rx������뫵��Ǯ��8^�̻�z"K�鐚���x�4Fc��'s���Vcꖠ�4G4z�Tafu�+Y�맰1��y�蒝~�õb�������*v�������쥮u���쌖�,���ߥ��GXp��������-,@�p(󠁖=�l
#�FO^���'V,S&xp�
ШX�$PEEP�+����#�+H\Ԉ��GP5b0"Y�81�$(]
�T�.=�C:N �+
q��5��/�
��E���h��f
�Kc�d�V�@m�� �i�E]�@*@΁,-�pQA��oX��B����sϣ���j�*Ȍ(0%5�F'37Z�1�DL�>@"#d���DZT% ;mod_languages/images/eu_es.gif000064400000000346152177723720012425 0ustar00GIF87a
�����ff3��3�3�33�33���3f33�f�3�33�f3fff3�����3�3���3��,
k��Gq0C�TLy��$�b@�@a,�	��*�ab�
x�b�P9�@.�v-"b�z�b�A����0�"��vP!2mHJ@�358:<0
	"$&(*,.0
!;mod_languages/images/mn.gif000064400000000266152177723720011740 0ustar00GIF87a�G����T��&�S��r��d���m��v�+��D��f�O��`��,@;�%�@i�hQ�e����@<>���A���t�2�DZ>�2a��B!Y`KKT3��B;mod_languages/images/et_ee.gif000064400000000076152177723720012406 0ustar00GIF87a�:u���,�������ڋ��V���H��);mod_languages/images/hi.gif000064400000000163152177723720011722 0ustar00GIF87a���300����00�..����qq�tt�ww����nn�//�����//�,(�I��8�m���,	h�b8g��º�8m��|��p�;mod_languages/images/he_il.gif000064400000000104152177723720012375 0ustar00GIF89a����J�!�,@����ኴ�$Dk�V�3r�!*�w:;mod_languages/images/ko_kr.gif000064400000001012152177723720012421 0ustar00GIF87a�K����ttt~~~CCC����-uuu�������
 `*Z���������5�;�����Vd��ҽ������撜^^^4�?1j�Ra������0O����Qw��������v�������lll���B��#QQQaaa�����E!Z���rrr'4u���[�MLM����
"ddd����YYYA�```�[z�����Q{����XXX�*�����3�/Q��������SSS,@o�J�����:-3 J5$�J6
9J%�4/J?�+*
��@.(����!�D�H2E#CA'K7"�=)1G8�I&>;F,J0��	B<�K�섁;mod_languages/images/ka.gif000064400000000103152177723720011707 0ustar00GIF87a�����,"�oȉzS2@{߫�žQ�H�&�yZ�L�E5ݫnj;mod_languages/images/et.gif000064400000000076152177723720011735 0ustar00GIF87a�:u���,�������ڋ��V���H��);mod_languages/images/bg_bg.gif000064400000000076152177723720012365 0ustar00GIF87a�����&�3,�������ڋ��6���H��);mod_languages/images/sk.gif000064400000000447152177723720011744 0ustar00GIF87a�-�zz��,�9I)0�-/��yy�""�鉓�&;�&&=��'@FF�VV�n|됙qq�eC��wy�2F�y��z��-TH���!?�;���KG��-A�yz���MM�划�[[nn�c?|�:K�*?�!;	3����xx�,L@�pH,�ȤRx��*�j@BL`��N[�D'�hyϥ���H�^Ǥ�"�D�)�e{���$������A;mod_languages/images/ur.gif000064400000000464152177723720011754 0ustar00GIF87a�)���n?�?U�Uk�ؾ������
l
��������7�7������P�P�™����q1�1��w���d�d�ӵ�׼s�ϯt(~(����Ѳ0�0R�R��y���j�ٿfp,@Y@�p�*��!�H:G����"AáP��	Sܤ_�Pa ���
�#�F�ÃB(2!pVI
F)&�uE%"SxF	�vGA;mod_languages/images/nb_no.gif000064400000000112152177723720012407 0ustar00GIF87a������+-,@#�p��k�Ves�x�b�I�1g�z�+j����};mod_languages/images/cz.gif000064400000000261152177723720011735 0ustar00GIF87a�����ZZ�q[A���7��}O��H�
†F������,6� Ddi�HhKB��0��e]˳^�.�A�G!�lt��Y+,���;m��;mod_languages/images/af.gif000064400000001024152177723720011705 0ustar00GIF87a�C3��`�@6|Pɶmmu��5�����⑻�=�|����
r[�R��ka���$P�?M���"zz�n��Q�F���i��~eჃ{�5ooiiv�����ɡ���$�� �?e�����``�q������+��	jbF��`M$tX����p\�6+�66��ń�1�����ffhh,y�BB"&A�����C#	,���!<+;��@4%'8�16)9�@� 2�.?��?��-���B�@:�����
�BC/��@=�3��7(5�0���$>*���
��;mod_languages/images/da.gif000064400000000074152177723720011707 0ustar00GIF87a�����3,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/cy_gb.gif000064400000001747152177723720012416 0ustar00GIF87a��y��t�z�|������"b���^0�fg�1�2z?X�)l@�FP,[�����;X1�'�$$#g잞�����&(_Z?���gg����l�s��??MQ�88���
�'����⛛4T�|8�������{3��������GQﭭ�__ꥥo4���@�SS���.�2�2�^DjB�tt���t;OI����1W�	蓓����c����tt�%%s}z�!!�������YYvᕕ�1�1�����^B�GLu��NN���$�볳�55��!RL�������q?�hﶶ�#)�����*�8;��Mt)�#����~,�!	H���+;�h� �O�-fAB 0F�\tx��#0.�@*�B������ˣ���� DBѡ�N5�)ÁH	)t�D�:?�h �Ɗ!H!4��ϟL��@g$�4F��0@`��,+FD06�!aJ���x	@�Xb���>�r`2cC�Ǒn$��
	(Tt1����c˞;mod_languages/images/sr_rs.gif000064400000000441152177723720012451 0ustar00GIF87a�!�����ziꧪ�b0̙3�ED����IF�-0�Z0�~t�{t볽�i6�33�����̙�����x�xhߐ����e?�ff�[#��ⰺ�胇�`0�43���,F��pH,��L�xT.�Y<>��`+@T&
wLD0L��FH�b6��q4rAh�|��|������A;mod_languages/images/da_dk.gif000064400000000074152177723720012365 0ustar00GIF87a�����3,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/nl.gif000064400000000076152177723720011736 0ustar00GIF87a�!F�����(,�������ڋ�����H��);mod_languages/images/tk_tm.gif000064400000001044152177723720012437 0ustar00GIF87a�(�f"�h"�g"�g#�g&�g*�g)�f#�f"�h!�`�gv�O"�g"�`�_�X�=<-�e�9=�]�bO�c5�o�fD#�bv˞%�dm�O�`S���k�XEu�P�HF�j�կ�lb�U�l�T?�c?�j�lEJ�~�yI�ml�[P)�g)�g�hW�sl�{@�w&�e+�h�15�i"�f"�g2�m�bCf�T$�c�gHl�^�cF�UA��d�-3�PJ�uL�m^�Y�m�fQ�mM'�f#�e�pJ)�f`Î&�d�7D*�h�ml�Z3�ny|Uf�K�eḧ́}pU�kOdđ�5D�@4m�Z�p\F�|�g�m�VDj�P�ibK �`,��-KUAR?j6P��
DZadc5M��N@"`Y4V,��])CI9<^$0�	:ShTQW1�
i/F&'7�;=_!HҜGLB>%ۏ+ (gJ�O3.#�b[2\�*��(����@;mod_languages/images/hk.gif000064400000000514152177723720011724 0ustar00GIF87a�=�8!�F1�(�*�#	�ſ�"����)�"	�|�&
�]J�'�z�1�2��%�!�9!�$
�hV�$��cP����u��M9����v��������#���º�9"�YF�A+�&
�zk�,�td�� ��!�&�����`M�����P<�G1�H3�)�4,@q�`H,B��g`h�B.��
�����EZ���Z�:�K�
�,���@�
ƽ�@��W{yewe=mK
4"/c�f:$
3'#�U)+%8756UdK.	��BG�CA;mod_languages/images/tw.gif000064400000002002152177723720011746 0ustar00GIF87a����		���$$���**���&&����,,��UU��##�""�JJ�����  �����������

������!!���$${{��MM�OO�))����
��SS�QQ��++����������%$�NN��ZZ���_\77��%!==��))���""``���# 
�� ��##��,,�	YY������ �		WW����KK���$$�

���!!�((�((�''�!#���[[Y]���UU����HH��dd��XX� �� �"���bb���DD�&%yy�����%%���..QQ������������JJ�WW55�
	�55��
�RR��HH�	���,@�#����S�3f�( �T�De22���,�0" J� �i��>b�1Tⓢ6�x`A�u6�Xt�	'JZ����2I�,��
.X~��.l��CN�Aa�|X���#p�!j�H-�X*De��
�"��ωNw�xPRd�
4� ��JA����ї'!�6����
BM� ���6L``j
;y�,���9b�Q��Gs(  E����ȉ#�;mod_languages/images/fr.gif000064400000000112152177723720011723 0ustar00GIF87a��$���&�,@#���}�RsOD9A�7�z��`���F�S��+�kS;mod_languages/images/th.gif000064400000000076152177723720011740 0ustar00GIF87a��3f���,�������4؋�޼��Q�(2�i;mod_languages/images/belg.gif000064400000000112152177723720012225 0ustar00GIF89a��$��,@#���}�RsOD9A�7�z��`���F�S��+�kS;mod_languages/images/vi.gif000064400000000436152177723720011743 0ustar00GIF87a�$�������������������9�f�n�g�"��K�\
���1�}
�'���x
�������
�����b
,C��pH,�	�q9b��LJ:tD,��s�0+
`�!]����QG� �PI�$@hP$C$oC�ooA;mod_languages/images/ar_aa.gif000064400000001751152177723720012371 0ustar00GIF87a�����������W�L�Y�MC�k�]���up�e��v�����	R��e�E������d�Ve�Xa�WH���~��vZ�Nd�X��w�s�����vR�Ep�kb�WX�+������do�D4�Y�Nk�K
���h~�h���p�O������x�qg�Lq�ev�k��br�gi�G|�v��}T�':�+#�G�75�'x�s1�"q�f��������кW�K|�Y�Ѱ��u?�5v�o,���[�1^�2h�\�Ь��a�U^�S�j�@T�%R�%/�!a�?��ğx�l]�Q������v�n8�7�*���V�Kj�]������K�L���x���~�g���Y�LO�E.�V�L"�3����z�v��i�J���k�]���Q�"�
�<�0|�wm�O��x:�$�����,�@���10$	Dp�L��D�68PD$&\�aF
�"!q,@�	
6~44p�DT$�$=@�3�Ã.t~�g�����Q!����`��APpl�Ѩ�d�l�	)���Ƀ���CuRDbk���C��QE�{�m{bI�0X�����M���� b�Ƅr(�1�L��,(��'�
@`$D@;mod_languages/images/de_at.gif000064400000000131152177723720012371 0ustar00GIF87a��*:�8G����)9�%6,&H��0���8���� �d9h��l�p	ΟfgT>9|�;mod_languages/images/gl.gif000064400000000537152177723720011731 0ustar00GIF87a�����������������^��y��������������ƙ���ʓ��]����������N�������������9��8��V��;y�#[��޽�������crN�Ű:d5r0U����b����"e�,i���ˍ3�@�H���h�{`�䄰����������������Ag���,���# H�4���D*���X�X��p`X�	�'d1�&��R���aY	F�C��X );Y�X.4X�g'%+V8�X6>-_
�X3m_*gY<5

���=	
9CA;mod_languages/images/mn_mn.gif000064400000000266152177723720012432 0ustar00GIF87a�G����T��&�S��r��d���m��v�+��D��f�O��`��,@;�%�@i�hQ�e����@<>���A���t�2�DZ>�2a��B!Y`KKT3��B;mod_languages/images/uk_ua.gif000064400000000064152177723720012426 0ustar00GIF87a�3f��,������<�ڋ�޼��V;mod_languages/images/cz_cz.gif000064400000000261152177723720012431 0ustar00GIF87a�����ZZ�q[A���7��}O��H�
†F������,6� Ddi�HhKB��0��e]˳^�.�A�G!�lt��Y+,���;m��;mod_languages/images/be.gif000064400000001120152177723720011702 0ustar00GIF87a�m�""Ӏ�������᫫�Ќ����ь��������†��*?����{{���Ǜ��ĕ�Ц�э���ψ���q��c��3D̀�ȧ��uu�CC����^_�h��Ȫ��		ਨǞ��{{���?H�{�ǔ���ˢ�ƅ�����nk��̰�ᆪ�������

ҍ�ƞ���������ň��99��ś�Ԧ��ʭ��ʊ��ᨨ�FP�z��ό�Ԁ���૫������,@��5"C#
c��
M+.Y>V:
f���1
]'/=*Bj�j�j4,`X9d���dTL83&i���kEADObl	�l�b�U%[2a7g���^-P!<S;���W�6N)\k���?� �����Ƞ��I�(C��D�e����A�)���@���H ;mod_languages/images/en_gb.gif000064400000002003152177723720012367 0ustar00GIF87a���璘菚%q�.B�-Bڿ��+�*풛�8H뜦}��,x K�)v�,$r�+���-�ꗡ�3E�ּ����F����6}� �64|���(�*����.����)�-U�w�4H铝����#8����e��Ua�T`����j}`r����'t텎�|�y�`p���ݼ�)t���`��Vb�����Ra���pw�����dr�pm�l����$wh��x�p`���i�n�����럩����0D�**w�9L�8L�1E#s/��i|� N����� *o����پ�)R�茗�WcTb��d�9���)>h�<Z�j������!-���Qp莙 }����rx������뫵��Ǯ��8^�̻�z"K�鐚���x�4Fc��'s���Vcꖠ�4G4z�Tafu�+Y�맰1��y�蒝~�õb�������*v�������쥮u���쌖�,���ߥ��GXp��������-,@�p(󠁖=�l
#�FO^���'V,S&xp�
ШX�$PEEP�+����#�+H\Ԉ��GP5b0"Y�81�$(]
�T�.=�C:N �+
q��5��/�
��E���h��f
�Kc�d�V�@m�� �i�E]�@*@΁,-�pQA��oX��B����sϣ���j�*Ȍ(0%5�F'37Z�1�DL�>@"#d���DZT% ;mod_languages/images/fr_ca.gif000064400000000221152177723720012367 0ustar00GIF89a�a�����_��z������˨��S�`��z�ˬ�܈�Ϊ��z��S�!��,>���!�jG�%��iq_����̴rt~�|�@bHD.�"��iZ���Q�)tz�i";mod_languages/images/pl_pl.gif000064400000000064152177723720012430 0ustar00GIF87a�����,������<�ڋ�޼��V;mod_languages/images/el.gif000064400000001031152177723720011715 0ustar00GIF87a������W�G�������F����Ey�[��X��������W����G�U�U�1j�8o�^��O���I|�=�A�p�����
N�������b��M����@����
Q�L�F����!_�I�P�S��S�Q��J{�X�h��G�\�_��\��K~�@�������\����Y�����z����[��Ey�,~�,3!9;'���(+$6@���-7)50? ���<:�#&
���1*
>2���=.84	���A/%"���B���������
����
����������;mod_languages/images/gd_gb.gif000064400000000263152177723720012365 0ustar00GIF89a���U�����3U�3��3��f�̙�̙�̙���������U�!�,`�56��^�d�G �VuH�s�RXX��a���pJIq���G��j�̥pC1|���RP��ץ��k�U\��4l�	̏0�>���2
|�gJIM;mod_languages/images/lv.gif000064400000000062152177723720011741 0ustar00GIF87a�����,�����!��ڋsܼ{^;mod_languages/images/ca_es.gif000064400000000102152177723720012365 0ustar00GIF87a���S��,@��y��߀��N����Z�(df~$wf;mod_languages/images/ch.gif000064400000000565152177723720011722 0ustar00GIF87a�3������������������������� �!!�0/�12�?A�?B�@?�@A�AA�A?�AA�A@�pr�����~�������������������������������������,@���A�(Hc�aH$$ɤ���dQj2�2��%q<��"	m���@Y"Y|%��d01.&tlzP#%z3*'
BIx2skZ)+2,2d2$�
 ��lIEI22
�����I�QA;mod_languages/images/icon-16-language.png000064400000001227152177723720014300 0ustar00�PNG


IHDR�a^IDATxڵ���a�fG�f+�p�m۶mKg۶m۶-=�O��&����9�]��^`M�	���=Εp����{Z�yѧz�?�/�w����K�X;��Z��I�jE6���{�����W_�m�W���"�9�.���A׋x\��N9I�FT]���i��-�Bʚ=��1J��	�lr�
/G/����9�3��o	�i��,���Y4Z�q̉�ɩ ��	��RԢ��d��
�T��q�!�g~�$�ߛ%V�*�HM��Ol�\H��OA��K`�f\�o��ш,�?�����wn�X�%]�C^M3%�-|
�e�R��'�s�5�k�iĕ���;�P,U
��|��Iw�Sh_��>�hzH,��W]S�&���io=�p��/��c�
�e��o������ɫn@�?��v��B�U��g���5	���z���O��e��_�%!p�8t�bY����p�G[��6�X$�N�c�8#��gS��=Ϝbwȼ���e��{fe��Vу���G��5	i�K/���w|�HX�MţF�5�t�vEOp�Cs�X�gG�UL�7^�p���jY�vV}u�ݣ���1�d��A���f�R�IEND�B`�mod_languages/images/de.gif000064400000000076152177723720011715 0ustar00GIF87a����,�������ڋ�����H��);mod_languages/images/eo.gif000064400000000261152177723720011724 0ustar00GIF87a��������������������k�kI�I��������<�<�ۧ.�.��������ܯޯz�z����.�.�������,@6  �f�h���8!�'`HV#(��e�� S�Y��h�@�``\(�H�p�z��;mod_languages/images/en_nz.gif000064400000001023152177723720012427 0ustar00GIF87a	�$}#}"|"}y(!}'.9��S`���!|-:�
,�z����q�${,�OD��w��h�.��NZȚ�Pc�|nV�����K`yb�Ú�`^�>]�&%~|v�EP�0�隤$�T`ʰ�|>n�^i#~(�^k"~&~*��s�QM�3�䐜����"8�J_'�=Q8O�:?�{�Ogg|�	*� |.8�jM�
*�%2�����l\�!~�Zf'}���+|�Ti!UJ�)MF�,	x�M!<	%C70�3';6ILQE�O/)8,K9?N1A
�@*H$
G "RS:>&4-5+FJ=�#�BP�����.���2D���(�;mod_languages/images/pl.gif000064400000000064152177723720011735 0ustar00GIF87a�����,������<�ڋ�޼��V;mod_languages/images/cbk_iq.gif000064400000000435152177723720012554 0ustar00GIF87a�$�����<�����7��'��!��H�.�����{����Q�����=����m���B�����0��o��?���c����O�����3���,B@�pH,���'iT4@��hJ%,����F �B��-�$		������	�G����	a�#�����A;mod_languages/images/lv_lv.gif000064400000000062152177723720012442 0ustar00GIF87a�����,�����!��ڋsܼ{^;mod_languages/images/km_kh.gif000064400000000177152177723720012420 0ustar00GIF87a��������))�[[�oo�rr�}}倀�ﵵ�����,@4��I�8�[Pd$&�ơ
��V��40���z���� ��L��l"Z�h4;mod_languages/images/srp_me.gif000064400000000460152177723720012607 0ustar00GIF89a�1Ț@Ú>�1��<�/3��;�Q@��:Þ>�g7�^6��<��B��;��;�03�"2��;��<��;w`��S�:�1��D�<4��;��9Þ?�:4��9�43��9�.3��;��<�b7�)3��>˜?�+3��=��<��:�}X�r8�p7��=�1��>,@U@�pH,aH�6�I!Ԃ�D!N*��`�
�u��I��29 \@y^>���ZuqP /')-�P
"#�e	.tF�FA;mod_languages/images/bg.gif000064400000000076152177723720011715 0ustar00GIF87a�����&�3,�������ڋ��6���H��);mod_languages/images/tr_tr.gif000064400000000430152177723720012451 0ustar00GIF87a�%����#/�7B����2=�7B�AJ����^f�����NW�?I�FP�4?���������AL����%0�/;�������fn�2<�ls�:D�BL�v}�ow�rz��U^,@=@�pH,C���B0���I��F*�(��vL.K���!s�#��bQ@E$f�$A;mod_languages/images/mk_mk.gif000064400000000622152177723720012420 0ustar00GIF87a�=�@�������(ހ��%�+���T��a��]߄���i��O��������������� �W��������-�R���j�����9�����f��������?���1�Z���,@������z��t4e�WX5�JL{b��T��4�,7P�7�eH���ux�8-#;<0/#-U)
T^
$!&�
T8�=
)s=�
,�_%6,J1"%0.4*.s5z}1�23^HJG2A;mod_languages/images/pt.gif000064400000000436152177723720011750 0ustar00GIF87a�!b3�l8z*�%V�^�?�%n�˒ҫ�Ɯ��h"�uX���͆$�_G�jR�&?�$�|�iN�mG�{O�!�g0���|��jnެ��Վ�p�$�`,C@�p�Hq�l.���R@��F��`&X�ƒh0>�(�Pd ��z(�T6N�x)XJO�Y��OE�A;mod_languages/images/sr.gif000064400000000441152177723720011745 0ustar00GIF87a�!�����ziꧪ�b0̙3�ED����IF�-0�Z0�~t�{t볽�i6�33�����̙�����x�xhߐ����e?�ff�[#��ⰺ�胇�`0�43���,F��pH,��L�xT.�Y<>��`+@T&
wLD0L��FH�b6��q4rAh�|��|������A;mod_languages/images/es_co.gif000064400000000124152177723720012407 0ustar00GIF87a�:��&����8�7�,!8��0�I��8k���G�di�E����p,�tm�	;mod_languages/images/en_ca.gif000064400000000525152177723720012371 0ustar00GIF89a������W]���z����$+�����sx�~��"�mr�������&�!�/7���������!*����w|�������*2��������&.�pv�����$��������"�x}�18�}��&,�ty����������$�(�����06��rw�������x~���!��,r���C�8���C�j��#����3�t+u�@����>FR$Rg�OL��XL��lF�D�
:|[O6z�Ph44dpQ/*7�p]%%W(�O�W��HH�PA;mod_languages/images/fa_ir.gif000064400000000476152177723720012411 0ustar00GIF87a�,������r��t†�bb����\\�cc�mmr…������ddtÆs†���nn�������CC������dd���uÇ�DDsň���rň�optÇ�eetƊ�wx����cc�aa������������3�3s…,c��pH,��d��X	��i�0�u
����B�(tϛ`͖@B�{N<��.J&~&���$##�#$��)�����*�����(�����A;mod_languages/images/mk.gif000064400000000622152177723720011731 0ustar00GIF87a�=�@�������(ހ��%�+���T��a��]߄���i��O��������������� �W��������-�R���j�����9�����f��������?���1�Z���,@������z��t4e�WX5�JL{b��T��4�,7P�7�eH���ux�8-#;<0/#-U)
T^
$!&�
T8�=
)s=�
,�_%6,J1"%0.4*.s5z}1�23^HJG2A;mod_languages/images/gl_es.gif000064400000000537152177723720012420 0ustar00GIF87a�����������������^��y��������������ƙ���ʓ��]����������N�������������9��8��V��;y�#[��޽�������crN�Ű:d5r0U����b����"e�,i���ˍ3�@�H���h�{`�䄰����������������Ag���,���# H�4���D*���X�X��p`X�	�'d1�&��R���aY	F�C��X );Y�X.4X�g'%+V8�X6>-_
�X3m_*gY<5

���=	
9CA;mod_languages/images/sv.gif000064400000000074152177723720011753 0ustar00GIF87a���[�,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/bs.gif000064400000000470152177723720011727 0ustar00GIF89a�(���tYUX��

�;=��UU�WW�QT�##�kmʉ��dVe���n_b{mlrdm���jm��]]�x{�rcc�sknbsUX�aR`�
����\^��
����������!�(,U@�pH,O�@B�19�O�i��(�D�V����N%�c\6��G�6�dk�NOu}'%d}n
&���TF�EA;mod_languages/images/sy_iq.gif000064400000002021152177723720012441 0ustar00GIF87a�-<m������������������댁���o��������������������Tb���������su�j��������䩀����������zk�nz�wy�xn��������������������݌����������ϸ��������~��������s�gc��������v�������������أ�ɴ���pg��������������������$���������������HOѠ��mm���ע��������������������ğ���������nYs�������������������o����H4�����������������������sl����g|�\^����������<F�������������������������Č��vu㫿老���٬��hj�qg_�����������������Ԝ]�������OT��x�������ބ���ɗ���S`�������DP������YZ�CA������������������������������o��UU������������Ц���޳��������,@�����@�e4 H9��#~�Ѵh��t�۔d���e��F��-
��d�-1*<Ј�Ntx�(��ȘQ�Q���%��=����q��N�z�P���"z�`5��JWz�I�S����!@�e�Z���IS\��W�4}�T��5��c�Q��5���	p��
�a�<|$���@P�p!gN�e�b�@@�ɥ�vX���'"��C�;�(�d%�;mod_languages/images/sy.gif000064400000002021152177723720011750 0ustar00GIF87a�-<m������������������댁���o��������������������Tb���������su�j��������䩀����������zk�nz�wy�xn��������������������݌����������ϸ��������~��������s�gc��������v�������������أ�ɴ���pg��������������������$���������������HOѠ��mm���ע��������������������ğ���������nYs�������������������o����H4�����������������������sl����g|�\^����������<F�������������������������Č��vu㫿老���٬��hj�qg_�����������������Ԝ]�������OT��x�������ބ���ɗ���S`�������DP������YZ�CA������������������������������o��UU������������Ц���޳��������,@�����@�e4 H9��#~�Ѵh��t�۔d���e��F��-
��d�-1*<Ј�Ntx�(��ȘQ�Q���%��=����q��N�z�P���"z�`5��JWz�I�S����!@�e�Z���IS\��W�4}�T��5��c�Q��5���	p��
�a�<|$���@P�p!gN�e�b�@@�ɥ�vX���'"��C�;�(�d%�;mod_languages/images/dk.gif000064400000000074152177723720011721 0ustar00GIF87a�����3,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/it_it.gif000064400000000112152177723720012424 0ustar00GIF87a��F����#,,@#���}�RsD9E�7�z��`���F�S��+�kS;mod_languages/images/tr.gif000064400000000430152177723720011744 0ustar00GIF87a�%����#/�7B����2=�7B�AJ����^f�����NW�?I�FP�4?���������AL����%0�/;�������fn�2<�ls�:D�BL�v}�ow�rz��U^,@=@�pH,C���B0���I��F*�(��vL.K���!s�#��bQ@E$f�$A;mod_languages/images/km.gif000064400000000177152177723720011736 0ustar00GIF87a��������))�[[�oo�rr�}}倀�ﵵ�����,@4��I�8�[Pd$&�ơ
��V��40���z���� ��L��l"Z�h4;mod_languages/images/gd.gif000064400000000263152177723720011715 0ustar00GIF89a���U�����3U�3��3��f�̙�̙�̙���������U�!�,`�56��^�d�G �VuH�s�RXX��a���pJIq���G��j�̥pC1|���RP��ץ��k�U\��4l�	̏0�>���2
|�gJIM;mod_languages/images/ku.gif000064400000000435152177723720011743 0ustar00GIF87a�$�����<�����7��'��!��H�.�����{����Q�����=����m���B�����0��o��?���c����O�����3���,B@�pH,���'iT4@��hJ%,����F �B��-�$		������	�G����	a�#�����A;mod_languages/images/de_lu.gif000064400000000122152177723720012405 0ustar00GIF87a������/>�)9���,(��;0�I����ͻ�`(�`�h��l�p,�q;mod_languages/images/lt_lt.gif000064400000000076152177723720012443 0ustar00GIF87a����f3,�������ڋ�����H��);mod_languages/images/nn_no.gif000064400000000112152177723720012423 0ustar00GIF87a������+-,@#�p��k�Ves�x�b�I�1g�z�+j����};mod_languages/images/br_fr.gif000064400000000136152177723720012414 0ustar00GIF87a���ӿ����ٗ�����,+�\�00k�8_�z!`(
i:R4k��b,�i-��6���@���;mod_languages/images/si.gif000064400000000305152177723720011733 0ustar00GIF89a�???��ߏ�����������@@@555cccooo___///OOO���������,@J $�di�c��%����!ꋏȣ�����(�����b���ш4V�[}�G�x8V��Л�Q!;mod_languages/images/es_es.gif000064400000000251152177723720012416 0ustar00GIF87a����F��N�B��wT�YC�UJʼn(͜�`$ե	��NJCÖD�Y�M�����jMƞ7�u�����O,. &�di�h�,�HJ��4P@�"�|B�
�F &�!�a�DʨRE�ZQ!;mod_languages/images/prs_af.gif000064400000000306152177723720012573 0ustar00GIF87a��m`�	�tg�
��=8ރ}�&&�iYۉs�{n�{ؐ|�㗖�\]�F6⎁��,@K  �Te�V��dA Q�+{I�q������	�b�H���E��C$bLG
�@�8���c�L��x��+�;mod_languages/images/sv_se.gif000064400000000074152177723720012442 0ustar00GIF87a���[�,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/zh.gif000064400000000241152177723720011740 0ustar00GIF87a���r�u�v�4�
�����������+�q�N��7��b��,@&�$�di���8�d�(!P4q���3Q���HL�� �l:C;mod_languages/images/ko.gif000064400000001012152177723720011725 0ustar00GIF87a�K����ttt~~~CCC����-uuu�������
 `*Z���������5�;�����Vd��ҽ������撜^^^4�?1j�Ra������0O����Qw��������v�������lll���B��#QQQaaa�����E!Z���rrr'4u���[�MLM����
"ddd����YYYA�```�[z�����Q{����XXX�*�����3�/Q��������SSS,@o�J�����:-3 J5$�J6
9J%�4/J?�+*
��@.(����!�D�H2E#CA'K7"�=)1G8�I&>;F,J0��	B<�K�섁;mod_languages/images/hk_hk.gif000064400000000514152177723720012406 0ustar00GIF87a�=�8!�F1�(�*�#	�ſ�"����)�"	�|�&
�]J�'�z�1�2��%�!�9!�$
�hV�$��cP����u��M9����v��������#���º�9"�YF�A+�&
�zk�,�td�� ��!�&�����`M�����P<�G1�H3�)�4,@q�`H,B��g`h�B.��
�����EZ���Z�:�K�
�,���@�
ƽ�@��W{yewe=mK
4"/c�f:$
3'#�U)+%8756UdK.	��BG�CA;mod_languages/images/ar.gif000064400000001751152177723720011730 0ustar00GIF87a�����������W�L�Y�MC�k�]���up�e��v�����	R��e�E������d�Ve�Xa�WH���~��vZ�Nd�X��w�s�����vR�Ep�kb�WX�+������do�D4�Y�Nk�K
���h~�h���p�O������x�qg�Lq�ev�k��br�gi�G|�v��}T�':�+#�G�75�'x�s1�"q�f��������кW�K|�Y�Ѱ��u?�5v�o,���[�1^�2h�\�Ь��a�U^�S�j�@T�%R�%/�!a�?��ğx�l]�Q������v�n8�7�*���V�Kj�]������K�L���x���~�g���Y�LO�E.�V�L"�3����z�v��i�J���k�]���Q�"�
�<�0|�wm�O��x:�$�����,�@���10$	Dp�L��D�68PD$&\�aF
�"!q,@�	
6~44p�DT$�$=@�3�Ã.t~�g�����Q!����`��APpl�Ѩ�d�l�	)���Ƀ���CuRDbk���C��QE�{�m{bI�0X�����M���� b�Ƅr(�1�L��,(��'�
@`$D@;mod_languages/images/hr.gif000064400000000446152177723720011737 0ustar00GIF89a�&��������(G��������;1|���4&ryBS����86`|u�VW���Z7l�����UL���"!u���w{lheZ�&(������l�������f���!�?,C��pH,�Hc��a@�D��9K��'$����p��0��Ql�bK0h�I��%21$�y������A;mod_languages/images/hi_in.gif000064400000000163152177723720012410 0ustar00GIF87a���300����00�..����qq�tt�ww����nn�//�����//�,(�I��8�m���,	h�b8g��º�8m��|��p�;mod_languages/images/fr_fr.gif000064400000000112152177723720012412 0ustar00GIF87a��$���&�,@#���}�RsOD9A�7�z��`���F�S��+�kS;mod_languages/images/at.gif000064400000000123152177723720011722 0ustar00GIF87a����������̙33, ��0�邽AX����y���$&��+A�t�$;mod_languages/images/es.gif000064400000000251152177723720011727 0ustar00GIF87a����F��N�B��wT�YC�UJʼn(͜�`$ե	��NJCÖD�Y�M�����jMƞ7�u�����O,. &�di�h�,�HJ��4P@�"�|B�
�F &�!�a�DʨRE�ZQ!;mod_languages/images/ro.gif000064400000000112152177723720011734 0ustar00GIF87a�+�&��,@#�/��}�RsD9C�7�z	��`���F�S��+�kS;mod_languages/images/bn.gif000064400000000131152177723720011714 0ustar00GIF87a��
��)@L&�f3,&X���
�Q
@:X$x��d�)���m$�Su�|�$;mod_languages/images/ka_ge.gif000064400000000103152177723720012362 0ustar00GIF87a�����,"�oȉzS2@{߫�žQ�H�&�yZ�L�E5ݫnj;mod_languages/images/uz_uz.gif000064400000000501152177723720012472 0ustar00GIF87a�=�1������������p��
�� ��G���� ����!��e�Ҽ������#�����W��,��$����+������#�������������
����1�������b��l�Ռ�ݨ��������]�������V�������Z��������������9�:���������,f�Ñ 2���t�9�ԧ$�i��E�z9����f!ժ�n�F�ʦ1@,�m�ǥd=�==8��8<���������;����������9�����:�����A;mod_languages/images/nl_be.gif000064400000000112152177723720012373 0ustar00GIF89a��$��,#���}�RsOD9A�7�z��`���F�S��+�kS;mod_languages/images/ug_cn.gif000064400000001030152177723720012407 0ustar00GIF87a����MMM������www��ص�������������kkkrrruuu���������...���������qqq���ZZZ���������nnn555��꺺����HHH***FFF�����˞��TTT~~~mmm������sssttt�����������胃���������ё�����GGG�����祥����iiiUUU�����Ē��[[[}}}���EEE>>>DDD,}���������7�.	%�*�;�$��1,

�B-G(<89DE
0>)I#35 H"�+&'246F@
AC�/!�	��=:?�����;mod_languages/images/bs_ba.gif000064400000000470152177723720012371 0ustar00GIF89a�(���tYUX��

�;=��UU�WW�QT�##�kmʉ��dVe���n_b{mlrdm���jm��]]�x{�rcc�sknbsUX�aR`�
����\^��
����������!�(,U@�pH,O�@B�19�O�i��(�D�V����N%�c\6��G�6�dk�NOu}'%d}n
&���TF�EA;mod_languages/images/zh_cn.gif000064400000000241152177723720012420 0ustar00GIF87a���r�u�v�4�
�����������+�q�N��7��b��,@&�$�di���8�d�(!P4q���3Q���HL�� �l:C;mod_languages/images/is.gif000064400000000112152177723720011727 0ustar00GIF87a�����3�,@#�p��k�Ves�x�b�I�1g�z�+j����};mod_languages/images/he.gif000064400000000104152177723720011711 0ustar00GIF89a����J�!�,@����ኴ�$Dk�V�3r�!*�w:;mod_languages/images/id.gif000064400000000074152177723720011717 0ustar00GIF89a��&���!�
,������<�ڋ�޼��V;mod_languages/images/ps_af.gif000064400000000306152177723720012411 0ustar00GIF87a��m`�	�tg�
��=8ރ}�&&�iYۉs�{n�{ؐ|�㗖�\]�F6⎁��,@K  �Te�V��dA Q�+{I�q������	�b�H���E��C$bLG
�@�8���c�L��x��+�;mod_languages/images/ca.gif000064400000000102152177723720011676 0ustar00GIF87a���S��,@��y��߀��N����Z�(df~$wf;mod_languages/images/ta_in.gif000064400000001110152177723720012405 0ustar00GIF87a�e���000666888:::===???0O61O74O71P72R75R73P93Q:3Q;4Q94Q:4Q;5R94R:6R;6S=6T=BBBFFFGGGOOOSSSVVV[[[___eeekkklllppprrrssswww���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+++,@��


	��B(*!@cUUTVc`\>U,_dD5:N^CdC'c7^AcJ6Yd���9?�]M�4+$&H b]/2a`R0Q�ԷSL[����[(P!^dM"b�1E[OK=4b\I.5-FB5j�q���23xd��e��(%R���(T�p�*@p �A�@;mod_languages/images/no.gif000064400000000112152177723720011730 0ustar00GIF87a������+-,@#�p��k�Ves�x�b�I�1g�z�+j����};mod_languages/images/de_de.gif000064400000000076152177723720012365 0ustar00GIF87a����,�������ڋ�����H��);mod_languages/images/kk_kz.gif000064400000000477152177723720012443 0ustar00GIF89a	�����������N������E��C����:��i�|��w�qe�~D����#��[��5����b����B����\��	����
��^��f�}-��]���ɘ�Y��@a��4���Ϗ�^K������.��"��/��$����K��E��P����!�,	\@	H(���(��A� B��t�ʄ&[pF�+�=��∐Jx11!D3)-J2~
*+'OLz`J/,DOHUA;mod_languages/images/el_gr.gif000064400000001031152177723720012405 0ustar00GIF87a������W�G�������F����Ey�[��X��������W����G�U�U�1j�8o�^��O���I|�=�A�p�����
N�������b��M����@����
Q�L�F����!_�I�P�S��S�Q��J{�X�h��G�\�_��\��K~�@�������\����Y�����z����[��Ey�,~�,3!9;'���(+$6@���-7)50? ���<:�#&
���1*
>2���=.84	���A/%"���B���������
����
����������;mod_languages/images/sq_al.gif000064400000000150152177723720012415 0ustar00GIF87a���3f�,5X�ܮ!�"�+D�<�}�!�9���x6#;/��mV/h�$�r�`3��A<.	;mod_languages/images/hy.gif000064400000000076152177723720011745 0ustar00GIF87a�����,�������ڋ��6���H��);mod_languages/images/fa.gif000064400000000476152177723720011717 0ustar00GIF87a�,������r��t†�bb����\\�cc�mmr…������ddtÆs†���nn�������CC������dd���uÇ�DDsň���rň�optÇ�eetƊ�wx����cc�aa������������3�3s…,c��pH,��d��X	��i�0�u
����B�(tϛ`͖@B�{N<��.J&~&���$##�#$��)�����*�����(�����A;mod_languages/images/dz_bt.gif000064400000001016152177723720012422 0ustar00GIF87a��N�O�O�Q�R�T�V�Y�{�}�`+�`,�g6�h7�rE�~W����W���g��m��`��o�q�s�r����%�� ��!��"��%��.��(��)��*��>��J��_��w��s멓묗ꮙ齛��븧��ޖ�ߚ�҃�܆�ݍ��õ�ۦ�۶�ַ�ò�����������������������������������������,s�������!�#��%8E1&��5IHA7
���4J,/��$<='GB>-��2:.?F���"D6)0ă (9+*�C�3
@��	�;�Đ��;mod_languages/images/sl.gif000064400000000252152177723720011737 0ustar00GIF87a����#�鉗���L8����F6�qR���㬠�	�MTԫ��%3�,?�qi����+?�,/  �di��Q���,/ ���8w�A�+��rY�8�ШtJ�Z��;mod_languages/images/ru_ru.gif000064400000000136152177723720012456 0ustar00GIF89a�������--���--�,+H��,0�)���K
�`(�7�_���:C �t�����P�;mod_languages/images/af_za.gif000064400000001024152177723720012377 0ustar00GIF87a�C3��`�@6|Pɶmmu��5�����⑻�=�|����
r[�R��ka���$P�?M���"zz�n��Q�F���i��~eჃ{�5ooiiv�����ɡ���$�� �?e�����``�q������+��	jbF��`M$tX����p\�6+�66��ń�1�����ffhh,y�BB"&A�����C#	,���!<+;��@4%'8�16)9�@� 2�.?��?��-���B�@:�����
�BC/��@=�3��7(5�0���$>*���
��;mod_languages/images/sk_sk.gif000064400000000447152177723720012441 0ustar00GIF87a�-�zz��,�9I)0�-/��yy�""�鉓�&;�&&=��'@FF�VV�n|됙qq�eC��wy�2F�y��z��-TH���!?�;���KG��-A�yz���MM�划�[[nn�c?|�:K�*?�!;	3����xx�,L@�pH,�ȤRx��*�j@BL`��N[�D'�hyϥ���H�^Ǥ�"�D�)�e{���$������A;mod_languages/images/ur_pk.gif000064400000000464152177723720012446 0ustar00GIF87a�)���n?�?U�Uk�ؾ������
l
��������7�7������P�P�™����q1�1��w���d�d�ӵ�׼s�ϯt(~(����Ѳ0�0R�R��y���j�ٿfp,@Y@�p�*��!�H:G����"AáP��	Sܤ_�Pa ���
�#�F�ÃB(2!pVI
F)&�uE%"SxF	�vGA;mod_languages/images/en_us.gif000064400000000132152177723720012427 0ustar00GIF89a�f���������,@'�,0FB�����
����h�q��b7�`�w��|�G	;mod_languages/images/nl_nl.gif000064400000000076152177723720012427 0ustar00GIF87a�!F�����(,�������ڋ�����H��);mod_languages/images/be_by.gif000064400000001120152177723720012374 0ustar00GIF87a�m�""Ӏ�������᫫�Ќ����ь��������†��*?����{{���Ǜ��ĕ�Ц�э���ψ���q��c��3D̀�ȧ��uu�CC����^_�h��Ȫ��		ਨǞ��{{���?H�{�ǔ���ˢ�ƅ�����nk��̰�ᆪ�������

ҍ�ƞ���������ň��99��ś�Ԧ��ʭ��ʊ��ᨨ�FP�z��ό�Ԁ���૫������,@��5"C#
c��
M+.Y>V:
f���1
]'/=*Bj�j�j4,`X9d���dTL83&i���kEADObl	�l�b�U%[2a7g���^-P!<S;���W�6N)\k���?� �����Ƞ��I�(C��D�e����A�)���@���H ;mod_languages/images/ms_my.gif000064400000000316152177723720012446 0ustar00GIF87a�33f�f���3�ff�ff̙�333fff3���3f���̙33f3f�����333���f��3f̙��33,S���a��a��� By�Ub�6P�!0�À@,�"A&��4z�`��6OB�QA��ω�z���8qK���	�����~!;mod_languages/images/hu.gif000064400000000076152177723720011741 0ustar00GIF87a��F����#,,�������ڋ�����H��);mod_languages/images/vi_vn.gif000064400000000436152177723720012446 0ustar00GIF87a�$�������������������9�f�n�g�"��K�\
���1�}
�'���x
�������
�����b
,C��pH,�	�q9b��LJ:tD,��s�0+
`�!]����QG� �PI�$@hP$C$oC�ooA;mod_languages/images/ja_jp.gif000064400000000131152177723720012400 0ustar00GIF87a��3Q�f}���@�&���,&X��Љ0FQ	@:Xx^�
d7�)���m$�Su�|�$;mod_languages/images/sl_si.gif000064400000000252152177723720012432 0ustar00GIF87a����#�鉗���L8����F6�qR���㬠�	�MTԫ��%3�,?�qi����+?�,/  �di��Q���,/ ���8w�A�+��rY�8�ШtJ�Z��;mod_languages/images/cy.gif000064400000001747152177723720011746 0ustar00GIF87a��y��t�z�|������"b���^0�fg�1�2z?X�)l@�FP,[�����;X1�'�$$#g잞�����&(_Z?���gg����l�s��??MQ�88���
�'����⛛4T�|8�������{3��������GQﭭ�__ꥥo4���@�SS���.�2�2�^DjB�tt���t;OI����1W�	蓓����c����tt�%%s}z�!!�������YYvᕕ�1�1�����^B�GLu��NN���$�볳�55��!RL�������q?�hﶶ�#)�����*�8;��Mt)�#����~,�!	H���+;�h� �O�-fAB 0F�\tx��#0.�@*�B������ˣ���� DBѡ�N5�)ÁH	)t�D�:?�h �Ɗ!H!4��ϟL��@g$�4F��0@`��,+FD06�!aJ���x	@�Xb���>�r`2cC�Ǒn$��
	(Tt1����c˞;mod_languages/images/al.gif000064400000000150152177723720011712 0ustar00GIF87a���3f�,5X�ܮ!�"�+D�<�}�!�9���x6#;/��mV/h�$�r�`3��A<.	;mod_languages/images/fi_fi.gif000064400000000074152177723720012377 0ustar00GIF87a�����,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/az_az.gif000064400000000250152177723720012423 0ustar00GIF87a��f����5D�7F�~����bm�8�.�4�\j�t��3����"H����HV�3��5,-�$�di�h����Ғ
l�sD��;��
��l:�ШtJ�BC;mod_languages/images/de_ch.gif000064400000000561152177723720012366 0ustar00GIF87a����������������������AA���@?������A?��������!!�����0/�A@���� ���������?B�����������@A�AA����12�pr�?A,��`@	��I��BH����D#��AR���+��"8v��J.+ ��C'")�MF,�MF	�m�`EF*}|MyBF/�#�l[�O$y�`
baFM�A;mod_languages/images/pt_br.gif000064400000000300152177723720012421 0ustar00GIF87a��+�U��3+�3+�3U�3�3�fU�f��f��f������̙�̙������,E� �di�B��	LЎB3)�L�;Cn7!�F؄8< ��Q�i	+\u��m�s�WlVJ��pR;mod_languages/images/sw.gif000064400000000321152177723720011747 0ustar00GIF87a��3����ff��33��3�3��fff3�̙�����f�f̙�f�̙��f�f��̙��3�ff��f3�̙̙��f����f���̙f�����f,V�"�di��-ò�O,;٥\�#�D�����
�d��L�$@�.=N�J5x��gX�|��tZ#P�݂��Qr�%ł�!-|�!;mod_languages/images/lt.gif000064400000000076152177723720011744 0ustar00GIF87a����f3,�������ڋ�����H��);mod_languages/images/is_is.gif000064400000000112152177723720012422 0ustar00GIF87a�����3�,@#�p��k�Ves�x�b�I�1g�z�+j����};mod_languages/images/br.gif000064400000000136152177723720011725 0ustar00GIF87a���ӿ����ٗ�����,+�\�00k�8_�z!`(
i:R4k��b,�i-��6���@���;mod_languages/images/hu_hu.gif000064400000000076152177723720012435 0ustar00GIF87a��F����#,,�������ڋ�����H��);mod_languages/images/id_id.gif000064400000000074152177723720012373 0ustar00GIF89a��&���!�
,������<�ڋ�޼��V;mod_languages/images/hr_hr.gif000064400000000446152177723720012430 0ustar00GIF89a�&��������(G��������;1|���4&ryBS����86`|u�VW���Z7l�����UL���"!u���w{lheZ�&(������l�������f���!�?,C��pH,�Hc��a@�D��9K��'$����p��0��Ql�bK0h�I��%21$�y������A;mod_languages/images/ps.gif000064400000000306152177723720011743 0ustar00GIF87a��m`�	�tg�
��=8ރ}�&&�iYۉs�{n�{ؐ|�㗖�\]�F6⎁��,@K  �Te�V��dA Q�+{I�q������	�b�H���E��C$bLG
�@�8���c�L��x��+�;mod_languages/images/bn_bd.gif000064400000000131152177723720012361 0ustar00GIF87a��
��)@L&�f3,&X���
�Q
@:X$x��d�)���m$�Su�|�$;mod_languages/images/cs_cz.gif000064400000000261152177723720012422 0ustar00GIF87a�����ZZ�q[A���7��}O��H�
†F������,6� Ddi�HhKB��0��e]˳^�.�A�G!�lt��Y+,���;m��;mod_languages/images/lo.gif000064400000002015152177723720011732 0ustar00GIF87a���_[������������T`�����AS��9a���b��IH8`�\f��>e�X�۱��La�ٴ\��?;X��:`�Vx���PMZ|�U~�f��*]�\~֢8dq��)�jg�IG�LJ�ro�db�t�^�gd���i��8e���v�ޟ4`AR���-)�s��\Y�Y{��ٴ]������۷Wz�;g���u|��p��Ee�w���v��<f�?c������7g�FW����@Q�g��_mºg�̆�g��al��XT�Z����t��6i�oz�WU�Ih�it����]h��Fr�Or����*%3\�\h�Aj͓5w�̬Un^i��nkk�|�˛8h�:7�=l����?`s��Iu�TQ�m�|��b_T}�%�k��-_����x��'Y�:K��V|�/\���a��;7���:i�M\�2d�^[�+'�t(��Pwfs���LH�Y����MI�\��1-_g�Ik�Uf��j��x�{��40��w�gu����li�;l�FB����@p���B>s����QM�Uw�]�|�4\�83d��
���,@��	������2h��q$+�Ug�d��@�HT2�PƉ�b|\���L��RՃ�0-�b�H��)��kSĎ�O*I@�Tp1,Γ%nL�2�E�[�:T"�
Np����Z,f�@��B�L��C�S�{\1s(
$r�THp'U=�p\�DbR�/����3eD-����-R�����G��X��ʐ/�@�����9$����b|墵k��4P`�@@;mod_languages/images/eo_xx.gif000064400000000261152177723720012443 0ustar00GIF87a��������������������k�kI�I��������<�<�ۧ.�.��������ܯޯz�z����.�.�������,@6  �f�h���8!�'`HV#(��e�� S�Y��h�@�``\(�H�p�z��;mod_languages/images/uk.gif000064400000000064152177723720011741 0ustar00GIF87a�3f��,������<�ڋ�޼��V;mod_languages/images/th_th.gif000064400000000076152177723720012433 0ustar00GIF87a��3f���,�������4؋�޼��Q�(2�i;mod_languages/images/ta.gif000064400000001110152177723720011717 0ustar00GIF87a�e���000666888:::===???0O61O74O71P72R75R73P93Q:3Q;4Q94Q:4Q;5R94R:6R;6S=6T=BBBFFFGGGOOOSSSVVV[[[___eeekkklllppprrrssswww���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+++,@��


	��B(*!@cUUTVc`\>U,_dD5:N^CdC'c7^AcJ6Yd���9?�]M�4+$&H b]/2a`R0Q�ԷSL[����[(P!^dM"b�1E[OK=4b\I.5-FB5j�q���23xd��e��(%R���(T�p�*@p �A�@;mod_languages/images/hy_am.gif000064400000000076152177723720012422 0ustar00GIF87a�����,�������ڋ��6���H��);mod_languages/images/en_au.gif000064400000000336152177723720012413 0ustar00GIF87a��33��f��3ff33����3f�ff�f����3�ff�̙�ff��3f̙���ff�������f���,c ��D&T��Z$
8PS���H�D��V�#@�H���U��U��I�P,
�D�q�Xo��ud�zk���-7|s#z+~w�-!;mod_languages/images/ru.gif000064400000000136152177723720011750 0ustar00GIF89a�������--���--�,+H��,0�)���K
�`(�7�_���:C �t�����P�;mod_languages/images/fi.gif000064400000000074152177723720011721 0ustar00GIF87a�����,@�
p˛
ϋp҄���R�|]xm&���~;mod_languages/images/it.gif000064400000000112152177723720011730 0ustar00GIF87a��F����#,,@#���}�RsD9E�7�z��`���F�S��+�kS;mod_languages/images/cs.gif000064400000000261152177723720011726 0ustar00GIF87a�����ZZ�q[A���7��}O��H�
†F������,6� Ddi�HhKB��0��e]˳^�.�A�G!�lt��Y+,���;m��;mod_languages/images/zh_tw.gif000064400000002002152177723720012447 0ustar00GIF87a����		���$$���**���&&����,,��UU��##�""�JJ�����  �����������

������!!���$${{��MM�OO�))����
��SS�QQ��++����������%$�NN��ZZ���_\77��%!==��))���""``���# 
�� ��##��,,�	YY������ �		WW����KK���$$�

���!!�((�((�''�!#���[[Y]���UU����HH��dd��XX� �� �"���bb���DD�&%yy�����%%���..QQ������������JJ�WW55�
	�55��
�RR��HH�	���,@�#����S�3f�( �T�De22���,�0" J� �i��>b�1Tⓢ6�x`A�u6�Xt�	'JZ����2I�,��
.X~��.l��CN�Aa�|X���#p�!j�H-�X*De��
�"��ωNw�xPRd�
4� ��JA����ї'!�6����
BM� ���6L``j
;y�,���9b�Q��Gs(  E����ȉ#�;mod_languages/images/us.gif000064400000000131152177723720011744 0ustar00GIF87a�����f33�ff�,@&����I��K	�÷B]h�^���M��b��f��|%;mod_languages/images/lo_la.gif000064400000002015152177723720012406 0ustar00GIF87a���_[������������T`�����AS��9a���b��IH8`�\f��>e�X�۱��La�ٴ\��?;X��:`�Vx���PMZ|�U~�f��*]�\~֢8dq��)�jg�IG�LJ�ro�db�t�^�gd���i��8e���v�ޟ4`AR���-)�s��\Y�Y{��ٴ]������۷Wz�;g���u|��p��Ee�w���v��<f�?c������7g�FW����@Q�g��_mºg�̆�g��al��XT�Z����t��6i�oz�WU�Ih�it����]h��Fr�Or����*%3\�\h�Aj͓5w�̬Un^i��nkk�|�˛8h�:7�=l����?`s��Iu�TQ�m�|��b_T}�%�k��-_����x��'Y�:K��V|�/\���a��;7���:i�M\�2d�^[�+'�t(��Pwfs���LH�Y����MI�\��1-_g�Ik�Uf��j��x�{��40��w�gu����li�;l�FB����@p���B>s����QM�Uw�]�|�4\�83d��
���,@��	������2h��q$+�Ug�d��@�HT2�PƉ�b|\���L��RՃ�0-�b�H��)��kSĎ�O*I@�Tp1,Γ%nL�2�E�[�:T"�
Np����Z,f�@��B�L��C�S�{\1s(
$r�THp'U=�p\�DbR�/����3eD-����-R�����G��X��ʐ/�@�����9$����b|墵k��4P`�@@;mod_languages/images/uz.gif000064400000000501152177723720011754 0ustar00GIF87a�=�1������������p��
�� ��G���� ����!��e�Ҽ������#�����W��,��$����+������#�������������
����1�������b��l�Ռ�ݨ��������]�������V�������Z��������������9�:���������,f�Ñ 2���t�9�ԧ$�i��E�z9����f!ժ�n�F�ʦ1@,�m�ǥd=�==8��8<���������;����������9�����:�����A;mod_languages/images/ja.gif000064400000000131152177723720011707 0ustar00GIF87a��3Q�f}���@�&���,&X��Љ0FQ	@:Xx^�
d7�)���m$�Su�|�$;overrider/css/overrider.css000064400000001632152177723720012067 0ustar00/**
 * @package		Joomla.Administrator
 * @subpackage	com_languages
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.overrider-spinner {
	background-image:url(../../system/images/modal/spinner.gif);
	background-repeat:no-repeat;
	background-position:center;
}

#refresh-status{
	display:none;
	height:16px;
	padding-left:25px;
	background-position:left;
}

#results-container{
	display:none;
	padding-bottom:10px;
}
#more-results{
	display:none;
	height:16px;
	padding:10px 0;
}
.row0{
	background-color:#f7f7f7;
}
.row1{
	background-color:#f0f0f0;
	border-top:1px solid #ffffff;
}
.result{
	padding:5px 0px;
	border:1px solid #ffffff;
}
.result:hover{
	background-color:#e8f6fe;
	cursor:pointer;
}
.result-key{
	color:#666666;
	padding-left:5px;
}
.result-string{
	padding-left:25px;
	margin-top:5px;
}overrider/js/overrider.js000064400000013046152177723720011541 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Some state variables for the overrider
 */
Joomla.overrider = {
	states: {
		refreshing  : false,
		refreshed   : false,
		counter     : 0,
		searchstring: '',
		searchtype  : 'value'
	}
};

/**
 * Method for refreshing the database cache of known language strings via Ajax
 *
 * @return  void
 *
 * @since   2.5
 */
Joomla.overrider.refreshCache = function()
{
	var $ = jQuery.noConflict(), self = this;
	this.states.refreshing = true;

	$('#refresh-status').slideDown().css('display', 'block');

	$.ajax(
	{
		type: "POST",
		url: 'index.php?option=com_languages&task=strings.refresh&format=json',
		dataType: 'json'
	}).done(function (r)
	{
		if (r.error && r.message)
		{
			alert(r.message);
		}

		if (r.messages)
		{
			Joomla.renderMessages(r.messages);
		}

		$('#refresh-status').slideUp().hide();
		self.states.refreshing = false;
	}).fail(function (xhr)
	{
		alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR'));
		$('#refresh-status').slideUp().hide();
	});
};

/**
 * Method for searching known language strings via Ajax
 *
 * @param   more  Determines the limit start of the results
 *
 * @return  void
 *
 * @since   2.5
 */
Joomla.overrider.searchStrings = function(more)
{
	var $ = jQuery.noConflict(), self = this;

	// Prevent searching if the cache is refreshed at the moment
	if (this.states.refreshing)
	{
		return;
	}

	// Only update the used searchstring and searchtype if the search button
	// was used to start the search (that will be the case if 'more' is null)
	if (!more)
	{
		this.states.searchstring = $('#jform_searchstring').val();
		this.states.searchtype   = $('#jform_searchtype') !== null ? $('#jform_searchtype').val() : 'value';
	}

	if (!this.states.searchstring)
	{
		$('#jform_searchstring').addClass('invalid');

		return;
	}


	if (more)
	{
		// If 'more' is greater than 0 we have already displayed some results for
		// the current searchstring, so display the spinner at the more link
		$('#more-results').addClass('overrider-spinner');
	}
	else
	{
		// Otherwise it is a new searchstring and we have to remove all previous results first
		$('#more-results').hide();
		var $children = $('#results-container div.language-results');
		$children.remove();
		$('#results-container').addClass('overrider-spinner').slideDown().css('display', 'block');
	}

	$.ajax(
	{
		type: "POST",
		url: 'index.php?option=com_languages&task=strings.search&format=json',
		data: 'searchstring=' + self.states.searchstring + '&searchtype=' + self.states.searchtype + '&more=' + more,
		dataType: 'json'
	}).done(function (r)
	{
		if (r.error && r.message)
		{
			alert(r.message);
		}

		if (r.messages)
		{
			Joomla.renderMessages(r.messages);
		}

		if (r.data)
		{
			if (r.data.results)
			{
				self.insertResults(r.data.results);
			}

			if (r.data.more)
			{
				// If there are more results than the sent ones
				// display the more link
				self.states.more = r.data.more;
				$('#more-results').slideDown().css('display', 'block');
			}
			else
			{
				$('#more-results').hide();
			}
		}

		$('#results-container').removeClass('overrider-spinner');
		$('#more-results').removeClass('overrider-spinner');
	}).fail(function (xhr)
	{
		alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR'));
		$('#results-container').removeClass('overrider-spinner');
		$('#more-results').removeClass('overrider-spinner');
	});
};

/**
 * Method inserting the received results into the results container
 *
 * @param   results  An array of search result objects
 *
 * @return  void
 *
 * @since   2.5
 */
Joomla.overrider.insertResults = function(results)
{
	var $ = jQuery.noConflict(), self = this;

	// For creating an individual ID for each result we use a counter
	this.states.counter = this.states.counter + 1;

	// Create a container into which all the results will be inserted
	var $results_div = $('<div>', {
		id : 'language-results' + self.states.counter,
		class : 'language-results',
		style : 'display:none;'
	});

	// Create some elements for each result and insert it into the container
	$.each(results, function(index, item) {

		var $div = $('<div>', {
			class: 'result row' + index % 2,
			onclick: 'Joomla.overrider.selectString(' + self.states.counter + index + ');'
		});

		var $key = $('<div>', {
			id:  'override_key' + self.states.counter + index,
			class: 'result-key',
			html: item.constant,
			title: item.file
		});

		var $string = $('<div>',{
			id: 'override_string' + self.states.counter + index,
			class:	'result-string',
			html: item.string
		});

		$key.appendTo($div);
		$string.appendTo($div);
		$div.appendTo($results_div);

	});

	// If there aren't any results display an appropriate message
	if (!results.length)
	{
		var $noresult = $('<div>',{
			html: Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_NO_RESULTS')
		});
		$noresult.appendTo($results_div);
	}

	// Finally insert the container afore the more link and reveal it
	$('#more-results').before($results_div);
	$('#language-results' + this.states.counter).slideDown().css('display','block');
};

/**
 * Inserts a specific constant/value pair into the form and scrolls the page back to the top
 *
 * @param   id  The ID of the element which was selected for insertion
 *
 * @return  void
 *
 * @since   2.5
 */
Joomla.overrider.selectString = function(id)
{
	var $ = jQuery.noConflict();
	$('#jform_key').val($('#override_key' + id).html());
	$('#jform_override').val($('#override_string' + id).html());
	$(window).scrollTop(0);
};
overrider/js/overrider.min.js000064400000005707152177723720012330 0ustar00Joomla.overrider={states:{refreshing:!1,refreshed:!1,counter:0,searchstring:"",searchtype:"value"}},Joomla.overrider.refreshCache=function(){var a=jQuery.noConflict(),b=this;this.states.refreshing=!0,a("#refresh-status").slideDown().css("display","block"),a.ajax({type:"POST",url:"index.php?option=com_languages&task=strings.refresh&format=json",dataType:"json"}).done(function(c){c.error&&c.message&&alert(c.message),c.messages&&Joomla.renderMessages(c.messages),a("#refresh-status").slideUp().hide(),b.states.refreshing=!1}).fail(function(b){alert(Joomla.JText._("COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR")),a("#refresh-status").slideUp().hide()})},Joomla.overrider.searchStrings=function(a){var b=jQuery.noConflict(),c=this;if(!this.states.refreshing){if(a||(this.states.searchstring=b("#jform_searchstring").val(),this.states.searchtype=null!==b("#jform_searchtype")?b("#jform_searchtype").val():"value"),!this.states.searchstring)return void b("#jform_searchstring").addClass("invalid");if(a)b("#more-results").addClass("overrider-spinner");else{b("#more-results").hide();var d=b("#results-container div.language-results");d.remove(),b("#results-container").addClass("overrider-spinner").slideDown().css("display","block")}b.ajax({type:"POST",url:"index.php?option=com_languages&task=strings.search&format=json",data:"searchstring="+c.states.searchstring+"&searchtype="+c.states.searchtype+"&more="+a,dataType:"json"}).done(function(a){a.error&&a.message&&alert(a.message),a.messages&&Joomla.renderMessages(a.messages),a.data&&(a.data.results&&c.insertResults(a.data.results),a.data.more?(c.states.more=a.data.more,b("#more-results").slideDown().css("display","block")):b("#more-results").hide()),b("#results-container").removeClass("overrider-spinner"),b("#more-results").removeClass("overrider-spinner")}).fail(function(a){alert(Joomla.JText._("COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR")),b("#results-container").removeClass("overrider-spinner"),b("#more-results").removeClass("overrider-spinner")})}},Joomla.overrider.insertResults=function(a){var b=jQuery.noConflict(),c=this;this.states.counter=this.states.counter+1;var d=b("<div>",{id:"language-results"+c.states.counter,class:"language-results",style:"display:none;"});if(b.each(a,function(a,e){var f=b("<div>",{class:"result row"+a%2,onclick:"Joomla.overrider.selectString("+c.states.counter+a+");"}),g=b("<div>",{id:"override_key"+c.states.counter+a,class:"result-key",html:e.constant,title:e.file}),h=b("<div>",{id:"override_string"+c.states.counter+a,class:"result-string",html:e.string});g.appendTo(f),h.appendTo(f),f.appendTo(d)}),!a.length){var e=b("<div>",{html:Joomla.JText._("COM_LANGUAGES_VIEW_OVERRIDE_NO_RESULTS")});e.appendTo(d)}b("#more-results").before(d),b("#language-results"+this.states.counter).slideDown().css("display","block")},Joomla.overrider.selectString=function(a){var b=jQuery.noConflict();b("#jform_key").val(b("#override_key"+a).html()),b("#jform_override").val(b("#override_string"+a).html()),b(window).scrollTop(0)};
plg_captcha_recaptcha/js/recaptcha.js000064400000001725152177723720013751 0ustar00/**
 * @package		Joomla.JavaScript
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
window.JoomlaInitReCaptcha2 = function() {
	'use strict';

	var items = document.getElementsByClassName('g-recaptcha'),
	    item,
	    option_keys = ['sitekey', 'theme', 'size', 'tabindex', 'callback', 'expired-callback', 'error-callback'],
	    options = {},
	    option_key_fq
	;

	for (var i = 0, l = items.length; i < l; i++) {
		item = items[i];
		if (item.dataset) {
			options = item.dataset;
		} else {
			for (var j = 0; j < option_keys.length; j++) {
				option_key_fq = ('data-' + option_keys[j]);
				if (item.hasAttribute(option_key_fq)) {
					options[option_keys[j]] = item.getAttribute(option_key_fq);
				}
			}
		}

		// Set the widget id of the recaptcha item
		item.setAttribute(
			'data-recaptcha-widget-id',
			grecaptcha.render(item, options)
		);
	}
};
plg_captcha_recaptcha/js/recaptcha.min.js000064400000000636152177723720014533 0ustar00window.JoomlaInitReCaptcha2=function(){"use strict";for(var t,e,a=document.getElementsByClassName("g-recaptcha"),c=["sitekey","theme","type","size","tabindex","callback","expired-callback"],i={},r=0,s=a.length;r<s;r++){if((t=a[r]).dataset)i=t.dataset;else for(var d=0;d<c.length;d++)e="data-"+c[d],t.hasAttribute(e)&&(i[c[d]]=t.getAttribute(e));t.setAttribute("data-recaptcha-widget-id",grecaptcha.render(t,i))}};
regularlabs/less/popup.less000064400000003336152177723720012072 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "init.less";
@import "font.less";

body.reglab-popup {
	padding: 0;

	.container-fluid {
		padding: 0 20px;
	}

	.navbar {
		margin-bottom: 10px;

		.navbar-inner {
			padding-left:  0;
			padding-right: 0;
			border-radius: 0;
			border-left: none;
			border-right: none;
		}

		.btn-toolbar,
		#toolbar {
			margin-top:    2px;
			margin-bottom: 2px;
		}
	}

	.header {
		margin-left:  0;
		margin-right: 0;

		&.has-navbar-fixed-top {
			margin-top:     44px;
			margin-bottom:  10px;
			padding-top:    2px;
			padding-bottom: 2px;
		}
	}

	.subhead {
		margin-left:   0;
		margin-right:  0;
		padding-left:  0;
		padding-right: 0;
	}

	.page-title {
		text-align: left;
	}

	label > span[class^="icon-reglab"] {
		padding: 1px 0 3px;
	}

	.reglab-overlay {
		background-color: #000000;
		position:         fixed;
		left:             0;
		top:              0;
		width:            100%;
		height:           100%;
		z-index:          5000;
		opacity:          .2;
		cursor:           wait;
	}

	.chzn-container-single .chzn-single div b {
		background: none !important;
	}


	.nav-tabs {
		> li {
			> a {
				border-color:     #eeeeee #eeeeee #dddddd;
				background-color: #f5f5f5;
				margin-right:     4px;
				&:hover,
				&:focus {
					background-color: #eeeeee;
				}
			}
			&.active a {
				border-color:        #dddddd;
				border-bottom-color: transparent;
				background-color:    #ffffff;
			}
		}
	}
}
regularlabs/less/style.less000064400000013415152177723720012066 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "init.less";
@import "font.less";

.rl_tablelist {
	td {
		height: 22px;
		color:  @gray;
	}

	td.has-context {
		height: 23px;
	}
}

.rl_code {
	#font > #family > .monospace;
	color: @grayLight;
}

.well {
	.well {
		border-color: darken(@wellBackground, 7%);
	}
}

div.rl_well {
	padding-bottom: 0;

	h4 {
		margin-top: 6px;
	}

	&.alert-success,
	&.alert-error {
		color: @grayDark;
	}

	.controls .btn-group > .btn {
		min-width: auto;
	}
}

.well-striped:nth-child(even) {
	background-color: lighten(@wellBackground, 3%);
}

.alert.alert-inline {
	margin: 14px 0 0;
}

.alert.alert-noclose {
	padding: 8px 14px;
}

.rl_btn-ignore.btn-danger.active {
	background-color: @grayLight;
	border:           1px solid rgba(0, 0, 0, 0.2);

	&:hover,
	&:focus {
		background-color: darken(@grayLight, 15%);
	}
}

.rl_btn-exclude.btn-success.active {
	background-color: @btnDangerBackground;
	border:           1px solid rgba(0, 0, 0, 0.2);

	&:hover,
	&:focus {
		background-color: darken(@btnDangerBackground, 15%);
	}
}

.btn-group.btn-group-full,
.subform-table-layout table .btn-group.btn-group-full,
.btn-full {
	width: 100%;
	box-sizing: border-box;
	margin: 0;
}

.icon-back:before {
	content: "\e008";
}

.icon-spin {
	-webkit-animation: spin .5s infinite linear;
	animation:         spin .5s infinite linear;
}

@-webkit-keyframes spin {
	0% {
		-webkit-transform: rotate(0deg)
	}
	100% {
		-webkit-transform: rotate(359deg)
	}
}

@-moz-keyframes spin {
	0% {
		-moz-transform: rotate(0deg)
	}
	100% {
		-moz-transform: rotate(359deg)
	}
}

@-ms-keyframes spin {
	0% {
		-ms-transform: rotate(0deg)
	}
	100% {
		-ms-transform: rotate(359deg)
	}
}

@-o-keyframes spin {
	0% {
		-o-transform: rotate(0deg)
	}
	100% {
		-o-transform: rotate(359deg)
	}
}

@keyframes spin {
	0% {
		transform: rotate(0deg)
	}
	100% {
		transform: rotate(359deg)
	}
}


/* Dropdown and dropup fixes */
.btn-toolbar .modal,
.btn-toolbar .dropdown-menu {
	font-size: 13px;
}

@media (min-width: 768px) {
	.dropdown {
		display: inline-block;
	}

	.dropdown-menu.dropup-menu {
		bottom: 100%;
		top:    auto;
	}
}

/* popovers */
.popover {
	width:     auto;
	min-width: 200px;
}

/* icons */
.icon-color {
	background: transparent url(../images/icon-color.png) no-repeat;
	width:      16px !important;
	height:     16px !important;
}

.clearfix {
	.clearfix();
}

.thumbnail-small > .thumbnail > img {
	max-width: 40px;
}

#key_button,
#jform_key_button {
	margin-left: 8px;
}

.ghosted {
	.opacity(60);
}

.rl_licence {
	margin-top: 30px;
	text-align: center;
}

.rl_footer {
	margin-top: 30px;

	div {
		margin-top: 30px;
		text-align: center;
	}

	.rl_footer_review {
		margin-top: 5px;

		a.stars {
			display: inline-block;

			.icon-star {
				color:  mix(@yellow, @orange);
				margin: 0;
				.transition-duration(500ms);
			}

			&:hover {
				text-decoration: none;

				.icon-star {
					.rotate(216deg);
				}
			}
		}
	}

	.rl_footer_logo {
		img {
			vertical-align: -40%;
		}
	}

	.rl_footer_copyright {
		margin-top: 3px;
		font-size:  0.7em;
		.opacity(60);
	}
}

.rl_simplecategory_new {
	margin-top: 4px;
}

.rl_codemirror .CodeMirror-activeline-background {
	background: rgba(164, 194, 235, .1);
}

/* better responsiveness */
@media (min-width: 768px) and (max-width: 1200px) {
	.row-fluid [class*="span"] {
		&[class*="span-md"] {
			margin-left:  2.12%;
			*margin-left: 2.03%;

			&:first-child {
				margin-left: 0;
			}
		}

		&.span-md-12 {
			width:       100%;
			*width:      99.94680851063829%;
			margin-left: 0;
		}

		&.span-md-11 {
			width:  91.48936170212765%;
			*width: 91.43617021276594%;
		}

		&.span-md-10 {
			width:  82.97872340425532%;
			*width: 82.92553191489361%;
		}

		&.span-md-9 {
			width:  74.46808510638297%;
			*width: 74.41489361702126%;
		}

		&.span-md-8 {
			width:  65.95744680851064%;
			*width: 65.90425531914893%;
		}

		&.span-md-7 {
			width:  57.44680851063829%;
			*width: 57.39361702127659%;
		}

		&.span-md-6 {
			width:  48.93617021276595%;
			*width: 48.88297872340425%;
		}

		&.span-md-5 {
			width:  40.42553191489362%;
			*width: 40.37234042553192%;
		}

		&.span-md-4 {
			width:  31.914893617021278%;
			*width: 31.861702127659576%;
		}

		&.span-md-3 {
			width:  23.404255319148934%;
			*width: 23.351063829787233%;
		}

		&.span-md-2 {
			width:  14.893617021276595%;
			*width: 14.840425531914894%;
		}

		&.span-md-1 {
			width:  6.382978723404255%;
			*width: 6.329787234042553%;
		}
	}
}

@media (min-width: 1200px) and (max-width: 1400px) {
	.row-fluid [class*="span"] {
		&.span-lg-12 {
			width:       100%;
			*width:      99.94680851063829%;
			margin-left: 0;
		}

		&.span-lg-11 {
			width:  91.48936170212765%;
			*width: 91.43617021276594%;
		}

		&.span-lg-10 {
			width:  82.97872340425532%;
			*width: 82.92553191489361%;
		}

		&.span-lg-9 {
			width:  74.46808510638297%;
			*width: 74.41489361702126%;
		}

		&.span-lg-8 {
			width:  65.95744680851064%;
			*width: 65.90425531914893%;
		}

		&.span-lg-7 {
			width:  57.44680851063829%;
			*width: 57.39361702127659%;
		}

		&.span-lg-6 {
			width:  48.93617021276595%;
			*width: 48.88297872340425%;
		}

		&.span-lg-5 {
			width:  40.42553191489362%;
			*width: 40.37234042553192%;
		}

		&.span-lg-4 {
			width:  31.914893617021278%;
			*width: 31.861702127659576%;
		}

		&.span-lg-3 {
			width:  23.404255319148934%;
			*width: 23.351063829787233%;
		}

		&.span-lg-2 {
			width:  14.893617021276595%;
			*width: 14.840425531914894%;
		}

		&.span-lg-1 {
			width:  6.382978723404255%;
			*width: 6.329787234042553%;
		}
	}
}
regularlabs/less/frontend.less000064400000004174152177723720012547 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "../../jui/less/mixins.less";
@import "../../jui/less/variables.less";
@import "../../jui/less/grid.less";
@import "../../jui/less/forms.less";
@import "../../jui/less/dropdowns.less";
@import "../../jui/less/wells.less";
@import "../../jui/less/component-animations.less";
@import "../../jui/less/close.less";
@import "../../jui/less/buttons.less";
@import "../../jui/less/button-groups.less";
@import "../../jui/less/alerts.less";
@import "../../jui/less/tooltip.less";
@import "../../jui/less/accordion.less";
@import "../../jui/less/utilities.less";
@import "../../jui/less/bootstrap-extended.less";
@import "../../../administrator/templates/isis/less/icomoon.less";
@import "multiselect.less";

/* Chosen color styles */
[class^="chzn-color"].chzn-single,
[class*=" chzn-color"].chzn-single,
[class^="chzn-color"].chzn-single .chzn-single-with-drop,
[class*=" chzn-color"].chzn-single .chzn-single-with-drop {
	.box-shadow(none);
}

.chzn-color.chzn-single[rel="value_1"],
.chzn-color-reverse.chzn-single[rel="value_0"],
.chzn-color-state.chzn-single[rel="value_1"] {
	.buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
}

.chzn-color.chzn-single[rel="value_0"],
.chzn-color-reverse.chzn-single[rel="value_1"],
.chzn-color-state.chzn-single[rel="value_0"],
.chzn-color-state.chzn-single[rel="value_-1"],
.chzn-color-state.chzn-single[rel="value_-2"] {
	.buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
}

/* Min-width on buttons */
.controls .btn-group > .btn {
	min-width: 50px;
}

.controls .btn-group.btn-group-yesno > .btn {
	min-width: 84px;
	padding:   2px 12px;
}

.control-label {
	> label {
		> h4 {
			margin-bottom: 0;
		}
	}
}

.controls {
	> fieldset {
		margin-bottom:  0;
		padding-top:    0;
		padding-bottom: 0;
	}
}

.chzn-container .chzn-drop {
	z-index: 1040;
}
regularlabs/less/codemirror.less000064400000002160152177723720013066 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 */
@import "init.less";

.rl_codemirror .CodeMirror {
	height:         100px;
	min-height:     100px;
	max-height:     none;
	padding-bottom: 15px;
}

.rl_codemirror .cm-resize-handle {
	position:      relative;
	background:    #f7f7f7;
	height:        15px;
	user-select:   none;
	cursor:        ns-resize;
	border-top:    1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
	z-index:       2;

	&:before {
		position:    absolute;
		left:        50%;
		content:     '\2261'; /* https://en.wikipedia.org/wiki/Triple_bar */
		color:       #999999;
		line-height: 13px;
		font-size:   15px;
	}

	&:hover {
		background: #f0f0f0;
	}

	&:hover:before {
		color: black;
	}
}
regularlabs/less/color.less000064400000014304152177723720012042 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * BASED ON:
 * jQuery MiniColors: A tiny color picker built on jQuery
 * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
 * Dual-licensed under the MIT and GPL Version 2 licenses
 */
@import "init.less";

.minicolors {
	position: relative;
	display:  inline-block;
	z-index:  11;
}

.minicolors-focus {
	z-index: 12;
}

.minicolors.minicolors-theme-default .minicolors-input {
	margin:       0;
	border:       solid 1px #cccccc;
	font:         14px sans-serif;
	width:        65px;
	height:       16px;
	.border-radius(0);
	.box-shadow(~"inset 0 2px 4px rgba(0, 0, 0, .04)");
	padding:      2px;
	margin-right: -1px;
}

.minicolors-theme-default.minicolors .minicolors-input {
	vertical-align: middle;
	outline:        none;
}

.minicolors-theme-default.minicolors-swatch-left .minicolors-input {
	margin-left:  -1px;
	margin-right: auto;
}

.minicolors-theme-default.minicolors-focus .minicolors-input,
.minicolors-theme-default.minicolors-focus .minicolors-swatch {
	border-color: #999999;
}

.minicolors-hidden {
	position: absolute;
	left:     -9999em;
}

.minicolors-swatch {
	position:       relative;
	width:          20px;
	height:         20px;
	text-align:     left;
	background:     url(../images/minicolors.png) -80px 0;
	border:         solid 1px #cccccc;
	vertical-align: middle;
	display:        inline-block;
}

.minicolors-swatch span {
	position:   absolute;
	width:      100%;
	height:     100%;
	background: none;
	.box-shadow(~"inset 0 9px 0 rgba(255, 255, 255, .1)");
	display:    inline-block;
}

// Panel
.minicolors-panel {
	position:   absolute;
	top:        26px;
	left:       0;
	width:      173px;
	height:     152px;
	background: white;
	border:     solid 1px #cccccc;
	.box-shadow(~"0 0 20px rgba(0, 0, 0, .2)");
	display:    none;
}

.minicolors-position-top .minicolors-panel {
	top: -156px;
}

.minicolors-position-left .minicolors-panel {
	left: -83px;
}

.minicolors-position-left.minicolors-with-opacity .minicolors-panel {
	left: -104px;
}

.minicolors-with-opacity .minicolors-panel {
	width: 194px;
}

.minicolors .minicolors-grid {
	position:   absolute;
	top:        1px;
	left:       1px;
	width:      150px;
	height:     150px;
	background: url(../images/minicolors.png) -120px 0;
	cursor:     crosshair;
}

.minicolors .minicolors-grid-inner {
	position:   absolute;
	top:        0;
	left:       0;
	width:      150px;
	height:     150px;
	background: none;
}

.minicolors-slider-saturation .minicolors-grid {
	background-position: -420px 0;
}

.minicolors-slider-saturation .minicolors-grid-inner {
	background: url(../images/minicolors.png) -270px 0;
}

.minicolors-slider-brightness .minicolors-grid {
	background-position: -570px 0;
}

.minicolors-slider-brightness .minicolors-grid-inner {
	background: black;
}

.minicolors-slider-wheel .minicolors-grid {
	background-position: -720px 0;
}

.minicolors-slider,
.minicolors-opacity-slider {
	position:   absolute;
	top:        1px;
	left:       152px;
	width:      20px;
	height:     150px;
	background: white url(../images/minicolors.png) 0 0;
	cursor:     crosshair;
}

.minicolors-slider-saturation .minicolors-slider {
	background-position: -60px 0;
}

.minicolors-slider-brightness .minicolors-slider {
	background-position: -20px 0;
}

.minicolors-slider-wheel .minicolors-slider {
	background-position: -20px 0;
}

.minicolors-opacity-slider {
	left:                173px;
	background-position: -40px 0;
	display:             none;
}

.minicolors-with-opacity .minicolors-opacity-slider {
	display: block;
}

// Pickers
.minicolors-grid .minicolors-picker {
	position:    absolute;
	top:         70px;
	left:        70px;
	width:       10px;
	height:      10px;
	border:      solid 1px black;
	.border-radius(10px);
	margin-top:  -6px;
	margin-left: -6px;
	background:  none;
}

.minicolors-grid .minicolors-picker span {
	position: absolute;
	top:      0;
	left:     0;
	width:    6px;
	height:   6px;
	.border-radius(6px);
	border:   solid 2px white;
}

.minicolors-picker {
	position:   absolute;
	top:        0;
	left:       0;
	width:      18px;
	height:     2px;
	background: white;
	border:     solid 1px black;
	margin-top: -2px;
}

// Inline controls
.minicolors-inline .minicolors-input,
.minicolors-inline .minicolors-swatch {
	display: none;
}

.minicolors-inline .minicolors-panel {
	position: relative;
	top:      auto;
	left:     auto;
	display:  inline-block;
}

// Bootstrap Theme (theme: 'bootstrap')

// Input styles
.minicolors-theme-bootstrap .minicolors-input {
	padding:          4px 6px;
	padding-left:     30px;
	background-color: white;
	border:           1px solid #cccccc;
	.border-radius(3px);
	color:            #555555;
	font-family:      Arial, 'Helvetica Neue', Helvetica, sans-serif;
	font-size:        14px;
	height:           19px;
	margin:           0;
	.box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, 0.075)");
}

// When the input has focus
.minicolors-theme-bootstrap.minicolors-focus .minicolors-input {
	border-color: #6fb8f1;
	.box-shadow(~"0 0 10px #6fb8f1");
	outline:      none;
}

// Swatch styles
.minicolors-theme-bootstrap .minicolors-swatch {
	position: absolute;
	left:     4px;
	top:      4px;
	z-index:  12;
}

// Handle swatch position (left = default / right)
.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-input {
	padding-left:  6px;
	padding-right: 30px;
}

.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-swatch {
	left:  auto;
	right: 4px;
}

// Panel styles
.minicolors-theme-bootstrap .minicolors-panel {
	top:     28px;
	z-index: 13;
}

// Handle panel positions (top / left)
.minicolors-theme-bootstrap.minicolors-position-top .minicolors-panel {
	top: -154px;
}

.minicolors-theme-bootstrap.minicolors-position-left .minicolors-panel {
	left: -63px;
}

// Don't forget to adjust the left position in case the opacity slider is visible!
.minicolors-theme-bootstrap.minicolors-position-left.minicolors-with-opacity .minicolors-panel {
	left: -84px;
}
regularlabs/less/form.less000064400000003621152177723720011667 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "init.less";

.chzn-small {
	width: 120px;
}

// hide chosen dropdown on color picker J3.2.3+
div.chzn-container[id^="color_"][id$="_chzn"],
div.chzn-container#advancedparams_color_chzn {
	display: none;
}

.input-full {
	width:      100%;
	box-sizing: border-box;
}

input[type="text"].input-full {
	height: 28px;
}

.controls .input-maximize {
	&:focus,
	.chzn-container:hover,
	.chzn-with-drop {
		min-width: 99%;
	}
}

.btn-group-yesno-reverse {
	.active {
		&.btn-success {
			.buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
		}

		&.btn-danger {
			.buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
		}
	}
}

input.rl_codefield,
input.rl_keyfield,
div.rl_keycode {
	#font > #family > .monospace;
	font-size: 1.4em !important;
}

input.rl_codefield,
input.rl_keyfield {
	font-size: 14px !important;
}

.btn.disabled {
	cursor: not-allowed !important;
}

.rl_keycode {
	color:   @grayLight;
	padding: 2px 0;
}

fieldset.rl_plaintext {
	margin-top: 5px;
}

.rl_textarea {
	.box-sizing(border-box);
}

.inlist .simplecolors-swatch span {
	position: relative;
}


.rl_spinner {
	display:        inline-block;
	box-sizing:     border-box;
	vertical-align: top;
	margin:         0 4px;
	border-top:     5px solid #7ac143;
	border-right:   5px solid #f9a541;
	border-bottom:  5px solid #f44321;
	border-left:    5px solid #5091cd;
	border-radius:  50%;
	width:          20px;
	height:         20px;
	animation:      rl_spinner 1s linear infinite;
}

@keyframes rl_spinner {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}
regularlabs/less/colorpicker.less000064400000004035152177723720013240 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 */
@import "init.less";

.rl_colorpicker-swatch {
	cursor:         pointer;
	position:       relative;
	width:          20px;
	height:         20px;
	text-align:     left;
	background:     url(../images/minicolors.png) -80px 0;
	border:         solid 1px #cccccc;
	vertical-align: middle;
	display:        inline-block;
	.border-radius(3px);
	overflow:       hidden;
}

.rl_colorpicker-swatch span {
	position:   absolute;
	width:      100%;
	height:     100%;
	background: none;
	.box-shadow(~"inset 0 9px 0 rgba(255, 255, 255, .1)");
	display:    inline-block;
}

.rl_colorpicker-panel .rl_colorpicker-swatch {
	margin: 0 4px 4px 0;
}

.rl_colorpicker-swatch.active,
.rl_colorpicker-swatch:hover,
.rl_colorpicker-swatch:focus,
.rl_colorpicker-swatch span:focus {
	outline: 0;
	outline: thin dotted \9; /* IE6-9 */
}

.rl_colorpicker-swatch:hover,
.rl_colorpicker-swatch.active {
	border-color: rgba(82, 168, 236, 0.8);
	.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}

.rl_colorpicker-panel {
	position:              absolute;
	top:                   100%;
	left:                  0;
	z-index:               10;
	display:               none;
	float:                 left;
	padding:               6px 2px 2px 6px;
	margin:                1px 0 0;
	list-style:            none;
	background-color:      #ffffff;
	border:                1px solid #dddddd;
	*border-right-width:   2px;
	*border-bottom-width:  2px;
	-webkit-border-radius: 5px;
	-moz-border-radius:    5px;
	border-radius:         5px;
	.box-shadow(~"0 5px 10px rgba(0, 0, 0, 0.2)");
	.background-clip(padding-box);
}
regularlabs/less/mixins.less000064400000000371152177723720012232 0ustar00@import "../../jui/less/mixins.less";

.transition-duration(@transition) {
	-webkit-transition-duration: @transition;
	-moz-transition-duration:    @transition;
	-o-transition-duration:      @transition;
	transition-duration:         @transition;
}
regularlabs/less/font.less000064400000012740152177723720011674 0ustar00@font-face {
	font-family: 'RegularLabs';
	src:         url('../fonts/RegularLabs.eot');
	src:         url('../fonts/RegularLabs.eot?#iefix') format('embedded-opentype'),
				 url('../fonts/RegularLabs.woff') format('woff'),
				 url('../fonts/RegularLabs.ttf') format('truetype'),
				 url('../fonts/RegularLabs.svg#RegularLabs') format('svg');
	font-weight: normal;
	font-style:  normal;
}

@font-face {
	font-family: 'RegularLabsIcons';
	src:         url('../fonts/RegularLabsIcons.eot');
	src:         url('../fonts/RegularLabsIcons.eot?#iefix') format('embedded-opentype'),
				 url('../fonts/RegularLabsIcons.woff') format('woff'),
				 url('../fonts/RegularLabsIcons.ttf') format('truetype'),
				 url('../fonts/RegularLabsIcons.svg#RegularLabsIcons') format('svg');
	font-weight: normal;
	font-style:  normal;
}

.icon-reglab,
[class^="icon-reglab-"],
[class*=" icon-reglab-"] {
	display:                 inline-block;
	width:                   14px;
	height:                  14px;
	.ie7-restore-right-whitespace();
	line-height:             16px;
	font-size:               16px;

	speak:                   none;
	font-style:              normal;
	font-weight:             normal;
	font-variant:            normal;
	text-transform:          none;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing:  antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.icon-reglab {
	&:before {
		font-family: 'RegularLabs' !important;
		font-size:   14.2px !important;
	}
}

h1, h2 {
	.icon-reglab {
		&:before {
			font-size: 16px !important;
		}
	}
}

.btn {
	.icon-reglab {
		text-indent: -2px;
		font-size:   12px;

		&:before {
			vertical-align: -3px;
		}
	}
}

.icon-reglab-24 {
	&:before {
		vertical-align: -5px;
		@media screen and (-webkit-min-device-pixel-ratio: 0) {
			vertical-align: -3px;
		}
	}
}

.icon- {
	&reglab:before {
		content: "\e000";
	}

	&nonumber:before {
		content: "\e100";
	}

	&addtomenu:before {
		content: "\e001";
	}

	&advancedmodulemanager:before {
		content: "\e003";
	}

	&advancedtemplatemanager:before {
		content: "\e015";
	}

	&articlesanywhere:before {
		content: "\e004";
	}

	&articlesfield:before {
		content: "\e01d";
	}

	&betterpreview:before {
		content: "\e005";
	}

	&bettertrash:before {
		content: "\e01b";
	}

	&cachecleaner:before {
		content: "\e006";
	}

	&cdnforjoomla:before {
		content: "\e007";
	}

	&componentsanywhere:before {
		content: "\e008";
	}

	&conditionalcontent:before {
		content: "\e019";
	}

	&contenttemplater:before {
		content: "\e009";
	}

	&dbreplacer:before {
		content: "\e00a";
	}

	&dummycontent:before {
		content: "\e017";
	}

	&emailprotector:before {
		content: "\e00b";
	}

	&geoip:before {
		content: "\e018";
	}

	&iplogin:before {
		content: "\e016";
	}

	&keyboardshortcuts:before {
		content: "\e01e";
	}

	&modals:before {
		content: "\e00c";
	}

	&modulesanywhere:before {
		content: "\e00d";
	}

	&quickindex:before {
		content: "\e01c";
	}

	&rereplacer:before {
		content: "\e00e";
	}

	&simpleusernotes:before {
		content: "\e01a";
	}

	&sliders:before {
		content: "\e00f";
	}

	&snippets:before {
		content: "\e010";
	}

	&sourcerer:before {
		content: "\e011";
	}

	&tabs:before {
		content: "\e012";
	}

	&tooltips:before {
		content: "\e014";
	}

	&whatnothing:before {
		content: " ";
		width:   16px;
		display: inline-block;
	}
}

[class^="icon-reglab-"],
[class*=" icon-reglab-"] {
	&:before {
		font-family: 'RegularLabsIcons' !important;
	}
}

.icon-reglab- {
	&paragraph-left:before {
		content: "\e001";
	}

	&paragraph-center:before {
		content: "\e002";
	}

	&paragraph-right:before {
		content: "\e003";
	}

	&paragraph-justify:before {
		content: "\e004";
	}

	&undo:before {
		content: "\e005";
	}

	&redo:before {
		content: "\e006";
	}

	&spinner:before {
		content: "\e007";
	}

	&lock:before {
		content: "\e008";
	}

	&unlocked:before {
		content: "\e009";
	}

	&cog:before {
		content: "\e00a";
	}

	&arrow-up:before {
		content: "\e00b";
	}

	&arrow-right:before {
		content: "\e00c";
	}

	&arrow-down:before {
		content: "\e00d";
	}

	&arrow-left:before {
		content: "\e00e";
	}

	&top:before {
		content: "\e00f";
	}

	&bottom:before {
		content: "\e010";
	}

	&simple:before {
		content: "\e011";
	}

	&normal:before {
		content: "\e012";
	}

	&advanced:before {
		content: "\e013";
	}

	&home:before {
		content: "\e014";
	}

	&info:before {
		content: "\e015";
	}

	&warning:before {
		content: "\e016";
	}

	&not-ok:before {
		content: "\e017";
	}

	&link:before {
		content: "\e018";
	}

	&eye:before {
		content: "\e019";
	}

	&search:before {
		content: "\e01a";
	}

	&earth:before {
		content: "\e01f";
	}

	&src_sourcetags:before {
		content: "\e01b";
	}

	&src_nosourcetags:before {
		content: "\e01c";
	}

	&src_tagstyle:before {
		content: "\e01d";
	}

	&src_tagstyle_brackets:before {
		content: "\e01e";
	}

	&bundle:before {
		content: "\e021";
	}

	&lifetime:before {
		content: "\e022";
	}

	&twitter:before {
		content: "\e030";
	}

	&google-plus:before {
		content: "\e031";
	}

	&facebook:before {
		content: "\e032";
	}

	&joomla:before {
		content: "\e033";
	}
}

.icon-reglab.icon- {
	&src_sourcetags:before {
		font-family: 'RegularLabsIcons' !important;
		content:     "\e01b";
	}

	&src_nosourcetags:before {
		font-family: 'RegularLabsIcons' !important;
		content:     "\e01c";
	}

	&src_tagstyle:before {
		font-family: 'RegularLabsIcons' !important;
		content:     "\e01d";
	}

	&src_tagstyle_brackets:before {
		font-family: 'RegularLabsIcons' !important;
		content:     "\e01e";
	}
}

.icon-expired:before {
	content: "\6e";
}
regularlabs/less/variables.less000064400000000105152177723720012666 0ustar00@import "../../../administrator/templates/isis/less/variables.less";
regularlabs/less/multiselect.less000064400000001547152177723720013263 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

div.rl_multiselect {
	margin-bottom: 0;

	ul.rl_multiselect-ul {
		margin:     0;
		padding:    0;
		margin-top: 8px;

		li {
			margin:     0;
			padding:    2px 10px 2px;
			list-style: none;
		}

		span.rl_multiselect-toggle {
			line-height: 18px;
		}

		label {
			font-size:   1em;
			margin-left: 8px;

			&.nav-header {
				padding: 0;
			}
		}

		input {
			margin: 2px 0 0 8px;
		}

		.rl_multiselect-menu {
			margin: 0 6px;
		}

		ul.dropdown-menu {
			margin: 0;

			li {
				padding: 0 5px;
				border:  none;
			}
		}
	}
}

regularlabs/less/init.less000064400000000061152177723720011662 0ustar00@import "variables.less";
@import "mixins.less";
regularlabs/css/style.min.css000064400000023327152177723720012317 0ustar00.rl_footer div,.rl_licence{text-align:center}.ghosted,.rl_footer .rl_footer_copyright{opacity:.6;filter:alpha(opacity=60)}@font-face{font-family:RegularLabs;src:url(../fonts/RegularLabs.eot);src:url(../fonts/RegularLabs.eot?#iefix) format('embedded-opentype'),url(../fonts/RegularLabs.woff) format('woff'),url(../fonts/RegularLabs.ttf) format('truetype'),url(../fonts/RegularLabs.svg#RegularLabs) format('svg');font-weight:400;font-style:normal}@font-face{font-family:RegularLabsIcons;src:url(../fonts/RegularLabsIcons.eot);src:url(../fonts/RegularLabsIcons.eot?#iefix) format('embedded-opentype'),url(../fonts/RegularLabsIcons.woff) format('woff'),url(../fonts/RegularLabsIcons.ttf) format('truetype'),url(../fonts/RegularLabsIcons.svg#RegularLabsIcons) format('svg');font-weight:400;font-style:normal}.icon-reglab,[class*=" icon-reglab-"],[class^=icon-reglab-]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:16px;font-size:16px;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-reglab:before{font-family:RegularLabs!important;font-size:14.2px!important;content:"\e000"}.icon-reglab.icon-src_nosourcetags:before,.icon-reglab.icon-src_sourcetags:before,.icon-reglab.icon-src_tagstyle:before,.icon-reglab.icon-src_tagstyle_brackets:before,[class*=" icon-reglab-"]:before,[class^=icon-reglab-]:before{font-family:RegularLabsIcons!important}h1 .icon-reglab:before,h2 .icon-reglab:before{font-size:16px!important}.btn .icon-reglab{text-indent:-2px;font-size:12px}.btn .icon-reglab:before{vertical-align:-3px}.icon-reglab-24:before{vertical-align:-5px}@media screen and (-webkit-min-device-pixel-ratio:0){.icon-reglab-24:before{vertical-align:-3px}}.icon-nonumber:before{content:"\e100"}.icon-addtomenu:before{content:"\e001"}.icon-advancedmodulemanager:before{content:"\e003"}.icon-advancedtemplatemanager:before{content:"\e015"}.icon-articlesanywhere:before{content:"\e004"}.icon-articlesfield:before{content:"\e01d"}.icon-betterpreview:before{content:"\e005"}.icon-bettertrash:before{content:"\e01b"}.icon-cachecleaner:before{content:"\e006"}.icon-cdnforjoomla:before{content:"\e007"}.icon-componentsanywhere:before{content:"\e008"}.icon-conditionalcontent:before{content:"\e019"}.icon-contenttemplater:before{content:"\e009"}.icon-dbreplacer:before{content:"\e00a"}.icon-dummycontent:before{content:"\e017"}.icon-emailprotector:before{content:"\e00b"}.icon-geoip:before{content:"\e018"}.icon-iplogin:before{content:"\e016"}.icon-keyboardshortcuts:before{content:"\e01e"}.icon-modals:before{content:"\e00c"}.icon-modulesanywhere:before{content:"\e00d"}.icon-quickindex:before{content:"\e01c"}.icon-rereplacer:before{content:"\e00e"}.icon-simpleusernotes:before{content:"\e01a"}.icon-sliders:before{content:"\e00f"}.icon-snippets:before{content:"\e010"}.icon-sourcerer:before{content:"\e011"}.icon-tabs:before{content:"\e012"}.icon-tooltips:before{content:"\e014"}.icon-whatnothing:before{content:" ";width:16px;display:inline-block}.icon-reglab-paragraph-left:before{content:"\e001"}.icon-reglab-paragraph-center:before{content:"\e002"}.icon-reglab-paragraph-right:before{content:"\e003"}.icon-reglab-paragraph-justify:before{content:"\e004"}.icon-reglab-undo:before{content:"\e005"}.icon-reglab-redo:before{content:"\e006"}.icon-reglab-spinner:before{content:"\e007"}.icon-reglab-lock:before{content:"\e008"}.icon-reglab-unlocked:before{content:"\e009"}.icon-reglab-cog:before{content:"\e00a"}.icon-reglab-arrow-up:before{content:"\e00b"}.icon-reglab-arrow-right:before{content:"\e00c"}.icon-reglab-arrow-down:before{content:"\e00d"}.icon-reglab-arrow-left:before{content:"\e00e"}.icon-reglab-top:before{content:"\e00f"}.icon-reglab-bottom:before{content:"\e010"}.icon-reglab-simple:before{content:"\e011"}.icon-reglab-normal:before{content:"\e012"}.icon-reglab-advanced:before{content:"\e013"}.icon-reglab-home:before{content:"\e014"}.icon-reglab-info:before{content:"\e015"}.icon-reglab-warning:before{content:"\e016"}.icon-reglab-not-ok:before{content:"\e017"}.icon-reglab-link:before{content:"\e018"}.icon-reglab-eye:before{content:"\e019"}.icon-reglab-search:before{content:"\e01a"}.icon-reglab-earth:before{content:"\e01f"}.icon-reglab-src_sourcetags:before{content:"\e01b"}.icon-reglab-src_nosourcetags:before{content:"\e01c"}.icon-reglab-src_tagstyle:before{content:"\e01d"}.icon-reglab-src_tagstyle_brackets:before{content:"\e01e"}.icon-reglab-bundle:before{content:"\e021"}.icon-reglab-lifetime:before{content:"\e022"}.icon-reglab-twitter:before{content:"\e030"}.icon-reglab-google-plus:before{content:"\e031"}.icon-reglab-facebook:before{content:"\e032"}.icon-reglab-joomla:before{content:"\e033"}.icon-reglab.icon-src_sourcetags:before{content:"\e01b"}.icon-reglab.icon-src_nosourcetags:before{content:"\e01c"}.icon-reglab.icon-src_tagstyle:before{content:"\e01d"}.icon-reglab.icon-src_tagstyle_brackets:before{content:"\e01e"}.icon-expired:before{content:"\6e"}.rl_tablelist td{height:22px;color:#555}.rl_tablelist td.has-context{height:23px}.rl_code{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;color:#999}.well .well{border-color:#dedede}div.rl_well{padding-bottom:0}div.rl_well h4{margin-top:6px}div.rl_well.alert-error,div.rl_well.alert-success{color:#333}div.rl_well .controls .btn-group>.btn{min-width:auto}.well-striped:nth-child(even){background-color:#f8f8f8}.alert.alert-inline{margin:14px 0 0}.alert.alert-noclose{padding:8px 14px}.rl_btn-ignore.btn-danger.active{background-color:#999;border:1px solid rgba(0,0,0,.2)}.rl_btn-ignore.btn-danger.active:focus,.rl_btn-ignore.btn-danger.active:hover{background-color:#737373}.rl_btn-exclude.btn-success.active{background-color:#bd362f;border:1px solid rgba(0,0,0,.2)}.rl_btn-exclude.btn-success.active:focus,.rl_btn-exclude.btn-success.active:hover{background-color:#802420}.btn-full,.btn-group.btn-group-full,.subform-table-layout table .btn-group.btn-group-full{width:100%;box-sizing:border-box;margin:0}.rl_footer,.rl_footer div,.rl_licence{margin-top:30px}.icon-back:before{content:"\e008"}.icon-spin{-webkit-animation:spin .5s infinite linear;animation:spin .5s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.btn-toolbar .dropdown-menu,.btn-toolbar .modal{font-size:13px}@media (min-width:768px){.dropdown{display:inline-block}.dropdown-menu.dropup-menu{bottom:100%;top:auto}}.popover{width:auto;min-width:200px}.icon-color{background:url(../images/icon-color.png) no-repeat;width:16px!important;height:16px!important}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.thumbnail-small>.thumbnail>img{max-width:40px}#jform_key_button,#key_button{margin-left:8px}.rl_footer .rl_footer_review{margin-top:5px}.rl_footer .rl_footer_review a.stars{display:inline-block}.rl_footer .rl_footer_review a.stars .icon-star{color:#fcac0a;margin:0;-webkit-transition-duration:.5s;-moz-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s}.rl_footer .rl_footer_review a.stars:hover{text-decoration:none}.rl_footer .rl_footer_review a.stars:hover .icon-star{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.rl_footer .rl_footer_logo img{vertical-align:-40%}.rl_footer .rl_footer_copyright{margin-top:3px;font-size:.7em}.rl_simplecategory_new{margin-top:4px}.rl_codemirror .CodeMirror-activeline-background{background:rgba(164,194,235,.1)}@media (min-width:768px) and (max-width:1200px){.row-fluid [class*=span][class*=span-md]{margin-left:2.12%;*margin-left:2.03%}.row-fluid [class*=span][class*=span-md]:first-child{margin-left:0}.row-fluid [class*=span].span-md-12{width:100%;*width:99.94680851%;margin-left:0}.row-fluid [class*=span].span-md-11{width:91.4893617%;*width:91.43617021%}.row-fluid [class*=span].span-md-10{width:82.9787234%;*width:82.92553191%}.row-fluid [class*=span].span-md-9{width:74.46808511%;*width:74.41489362%}.row-fluid [class*=span].span-md-8{width:65.95744681%;*width:65.90425532%}.row-fluid [class*=span].span-md-7{width:57.44680851%;*width:57.39361702%}.row-fluid [class*=span].span-md-6{width:48.93617021%;*width:48.88297872%}.row-fluid [class*=span].span-md-5{width:40.42553191%;*width:40.37234043%}.row-fluid [class*=span].span-md-4{width:31.91489362%;*width:31.86170213%}.row-fluid [class*=span].span-md-3{width:23.40425532%;*width:23.35106383%}.row-fluid [class*=span].span-md-2{width:14.89361702%;*width:14.84042553%}.row-fluid [class*=span].span-md-1{width:6.38297872%;*width:6.32978723%}}@media (min-width:1200px) and (max-width:1400px){.row-fluid [class*=span].span-lg-12{width:100%;*width:99.94680851%;margin-left:0}.row-fluid [class*=span].span-lg-11{width:91.4893617%;*width:91.43617021%}.row-fluid [class*=span].span-lg-10{width:82.9787234%;*width:82.92553191%}.row-fluid [class*=span].span-lg-9{width:74.46808511%;*width:74.41489362%}.row-fluid [class*=span].span-lg-8{width:65.95744681%;*width:65.90425532%}.row-fluid [class*=span].span-lg-7{width:57.44680851%;*width:57.39361702%}.row-fluid [class*=span].span-lg-6{width:48.93617021%;*width:48.88297872%}.row-fluid [class*=span].span-lg-5{width:40.42553191%;*width:40.37234043%}.row-fluid [class*=span].span-lg-4{width:31.91489362%;*width:31.86170213%}.row-fluid [class*=span].span-lg-3{width:23.40425532%;*width:23.35106383%}.row-fluid [class*=span].span-lg-2{width:14.89361702%;*width:14.84042553%}.row-fluid [class*=span].span-lg-1{width:6.38297872%;*width:6.32978723%}}regularlabs/css/frontend.css000064400000243326152177723720012217 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
.row {
  margin-left: -20px;
  *zoom: 1;
}
.row:before,
.row:after {
  display: table;
  content: "";
  line-height: 0;
}
.row:after {
  clear: both;
}
[class*="span"] {
  float: left;
  min-height: 1px;
  margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
  width: 940px;
}
.span12 {
  width: 940px;
}
.span11 {
  width: 860px;
}
.span10 {
  width: 780px;
}
.span9 {
  width: 700px;
}
.span8 {
  width: 620px;
}
.span7 {
  width: 540px;
}
.span6 {
  width: 460px;
}
.span5 {
  width: 380px;
}
.span4 {
  width: 300px;
}
.span3 {
  width: 220px;
}
.span2 {
  width: 140px;
}
.span1 {
  width: 60px;
}
.offset12 {
  margin-left: 980px;
}
.offset11 {
  margin-left: 900px;
}
.offset10 {
  margin-left: 820px;
}
.offset9 {
  margin-left: 740px;
}
.offset8 {
  margin-left: 660px;
}
.offset7 {
  margin-left: 580px;
}
.offset6 {
  margin-left: 500px;
}
.offset5 {
  margin-left: 420px;
}
.offset4 {
  margin-left: 340px;
}
.offset3 {
  margin-left: 260px;
}
.offset2 {
  margin-left: 180px;
}
.offset1 {
  margin-left: 100px;
}
.row-fluid {
  width: 100%;
  *zoom: 1;
}
.row-fluid:before,
.row-fluid:after {
  display: table;
  content: "";
  line-height: 0;
}
.row-fluid:after {
  clear: both;
}
.row-fluid [class*="span"] {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  float: left;
  margin-left: 2.12765957%;
  *margin-left: 2.07446809%;
}
.row-fluid [class*="span"]:first-child {
  margin-left: 0;
}
.row-fluid .controls-row [class*="span"] + [class*="span"] {
  margin-left: 2.12765957%;
}
.row-fluid .span12 {
  width: 100%;
  *width: 99.94680851%;
}
.row-fluid .span11 {
  width: 91.4893617%;
  *width: 91.43617021%;
}
.row-fluid .span10 {
  width: 82.9787234%;
  *width: 82.92553191%;
}
.row-fluid .span9 {
  width: 74.46808511%;
  *width: 74.41489362%;
}
.row-fluid .span8 {
  width: 65.95744681%;
  *width: 65.90425532%;
}
.row-fluid .span7 {
  width: 57.44680851%;
  *width: 57.39361702%;
}
.row-fluid .span6 {
  width: 48.93617021%;
  *width: 48.88297872%;
}
.row-fluid .span5 {
  width: 40.42553191%;
  *width: 40.37234043%;
}
.row-fluid .span4 {
  width: 31.91489362%;
  *width: 31.86170213%;
}
.row-fluid .span3 {
  width: 23.40425532%;
  *width: 23.35106383%;
}
.row-fluid .span2 {
  width: 14.89361702%;
  *width: 14.84042553%;
}
.row-fluid .span1 {
  width: 6.38297872%;
  *width: 6.32978723%;
}
.row-fluid .offset12 {
  margin-left: 104.25531915%;
  *margin-left: 104.14893617%;
}
.row-fluid .offset12:first-child {
  margin-left: 102.12765957%;
  *margin-left: 102.0212766%;
}
.row-fluid .offset11 {
  margin-left: 95.74468085%;
  *margin-left: 95.63829787%;
}
.row-fluid .offset11:first-child {
  margin-left: 93.61702128%;
  *margin-left: 93.5106383%;
}
.row-fluid .offset10 {
  margin-left: 87.23404255%;
  *margin-left: 87.12765957%;
}
.row-fluid .offset10:first-child {
  margin-left: 85.10638298%;
  *margin-left: 85%;
}
.row-fluid .offset9 {
  margin-left: 78.72340426%;
  *margin-left: 78.61702128%;
}
.row-fluid .offset9:first-child {
  margin-left: 76.59574468%;
  *margin-left: 76.4893617%;
}
.row-fluid .offset8 {
  margin-left: 70.21276596%;
  *margin-left: 70.10638298%;
}
.row-fluid .offset8:first-child {
  margin-left: 68.08510638%;
  *margin-left: 67.9787234%;
}
.row-fluid .offset7 {
  margin-left: 61.70212766%;
  *margin-left: 61.59574468%;
}
.row-fluid .offset7:first-child {
  margin-left: 59.57446809%;
  *margin-left: 59.46808511%;
}
.row-fluid .offset6 {
  margin-left: 53.19148936%;
  *margin-left: 53.08510638%;
}
.row-fluid .offset6:first-child {
  margin-left: 51.06382979%;
  *margin-left: 50.95744681%;
}
.row-fluid .offset5 {
  margin-left: 44.68085106%;
  *margin-left: 44.57446809%;
}
.row-fluid .offset5:first-child {
  margin-left: 42.55319149%;
  *margin-left: 42.44680851%;
}
.row-fluid .offset4 {
  margin-left: 36.17021277%;
  *margin-left: 36.06382979%;
}
.row-fluid .offset4:first-child {
  margin-left: 34.04255319%;
  *margin-left: 33.93617021%;
}
.row-fluid .offset3 {
  margin-left: 27.65957447%;
  *margin-left: 27.55319149%;
}
.row-fluid .offset3:first-child {
  margin-left: 25.53191489%;
  *margin-left: 25.42553191%;
}
.row-fluid .offset2 {
  margin-left: 19.14893617%;
  *margin-left: 19.04255319%;
}
.row-fluid .offset2:first-child {
  margin-left: 17.0212766%;
  *margin-left: 16.91489362%;
}
.row-fluid .offset1 {
  margin-left: 10.63829787%;
  *margin-left: 10.53191489%;
}
.row-fluid .offset1:first-child {
  margin-left: 8.5106383%;
  *margin-left: 8.40425532%;
}
[class*="span"].hide,
.row-fluid [class*="span"].hide {
  display: none;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
  float: right;
}
form {
  margin: 0 0 20px;
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: 40px;
  color: #333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
legend small {
  font-size: 15px;
  color: #999;
}
label,
input,
button,
select,
textarea {
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
}
input,
button,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
label {
  display: block;
  margin-bottom: 5px;
}
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  display: inline-block;
  height: 20px;
  padding: 4px 6px;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 20px;
  color: #555;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  vertical-align: middle;
}
input,
textarea,
.uneditable-input {
  width: 206px;
}
textarea {
  height: auto;
}
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  background-color: #fff;
  border: 1px solid #ccc;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border linear .2s, box-shadow linear .2s;
  -moz-transition: border linear .2s, box-shadow linear .2s;
  -o-transition: border linear .2s, box-shadow linear .2s;
  transition: border linear .2s, box-shadow linear .2s;
}
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {
  border-color: rgba(82, 168, 236, 0.8);
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  *margin-top: 0;
  /* IE7 */
  margin-top: 1px \9;
  /* IE8-9 */
  line-height: normal;
}
input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
  width: auto;
}
select,
input[type="file"] {
  height: 30px;
  /* In IE7, the height of the select element cannot be changed by height, only font-size */
  *margin-top: 4px;
  /* For IE7, add top margin to align select with labels */
  line-height: 30px;
}
select {
  width: 220px;
  border: 1px solid #ccc;
  background-color: #fff;
}
select[multiple],
select[size] {
  height: auto;
}
select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.uneditable-input,
.uneditable-textarea {
  color: #999;
  background-color: #fcfcfc;
  border-color: #ccc;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  cursor: not-allowed;
}
.uneditable-input {
  overflow: hidden;
  white-space: nowrap;
}
.uneditable-textarea {
  width: auto;
  height: auto;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #999;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #999;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #999;
}
.radio,
.checkbox {
  min-height: 20px;
  padding-left: 20px;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
  float: left;
  margin-left: -20px;
}
.controls > .radio:first-child,
.controls > .checkbox:first-child {
  padding-top: 5px;
}
.radio.inline,
.checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle;
}
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
  margin-left: 10px;
}
.input-mini {
  width: 60px;
}
.input-small {
  width: 90px;
}
.input-medium {
  width: 150px;
}
.input-large {
  width: 210px;
}
.input-xlarge {
  width: 270px;
}
.input-xxlarge {
  width: 530px;
}
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"] {
  float: none;
  margin-left: 0;
}
.input-append input[class*="span"],
.input-append .uneditable-input[class*="span"],
.input-prepend input[class*="span"],
.input-prepend .uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"],
.row-fluid .input-prepend [class*="span"],
.row-fluid .input-append [class*="span"] {
  display: inline-block;
}
input,
textarea,
.uneditable-input {
  margin-left: 0;
}
.controls-row [class*="span"] + [class*="span"] {
  margin-left: 20px;
}
input.span12,
textarea.span12,
.uneditable-input.span12 {
  width: 926px;
}
input.span11,
textarea.span11,
.uneditable-input.span11 {
  width: 846px;
}
input.span10,
textarea.span10,
.uneditable-input.span10 {
  width: 766px;
}
input.span9,
textarea.span9,
.uneditable-input.span9 {
  width: 686px;
}
input.span8,
textarea.span8,
.uneditable-input.span8 {
  width: 606px;
}
input.span7,
textarea.span7,
.uneditable-input.span7 {
  width: 526px;
}
input.span6,
textarea.span6,
.uneditable-input.span6 {
  width: 446px;
}
input.span5,
textarea.span5,
.uneditable-input.span5 {
  width: 366px;
}
input.span4,
textarea.span4,
.uneditable-input.span4 {
  width: 286px;
}
input.span3,
textarea.span3,
.uneditable-input.span3 {
  width: 206px;
}
input.span2,
textarea.span2,
.uneditable-input.span2 {
  width: 126px;
}
input.span1,
textarea.span1,
.uneditable-input.span1 {
  width: 46px;
}
.controls-row {
  *zoom: 1;
}
.controls-row:before,
.controls-row:after {
  display: table;
  content: "";
  line-height: 0;
}
.controls-row:after {
  clear: both;
}
.controls-row [class*="span"],
.row-fluid .controls-row [class*="span"] {
  float: left;
}
.controls-row .checkbox[class*="span"],
.controls-row .radio[class*="span"] {
  padding-top: 5px;
}
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
  cursor: not-allowed;
  background-color: #eee;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
  background-color: transparent;
}
.control-group.warning .control-label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
  color: #c09853;
}
.control-group.warning .checkbox,
.control-group.warning .radio,
.control-group.warning input,
.control-group.warning select,
.control-group.warning textarea {
  color: #c09853;
}
.control-group.warning input,
.control-group.warning select,
.control-group.warning textarea {
  border-color: #c09853;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.control-group.warning input:focus,
.control-group.warning select:focus,
.control-group.warning textarea:focus {
  border-color: #a47e3c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
}
.control-group.warning .input-prepend .add-on,
.control-group.warning .input-append .add-on {
  color: #c09853;
  background-color: #fcf8e3;
  border-color: #c09853;
}
.control-group.error .control-label,
.control-group.error .help-block,
.control-group.error .help-inline {
  color: #b94a48;
}
.control-group.error .checkbox,
.control-group.error .radio,
.control-group.error input,
.control-group.error select,
.control-group.error textarea {
  color: #b94a48;
}
.control-group.error input,
.control-group.error select,
.control-group.error textarea {
  border-color: #b94a48;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
  border-color: #953b39;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
}
.control-group.error .input-prepend .add-on,
.control-group.error .input-append .add-on {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #b94a48;
}
.control-group.success .control-label,
.control-group.success .help-block,
.control-group.success .help-inline {
  color: #468847;
}
.control-group.success .checkbox,
.control-group.success .radio,
.control-group.success input,
.control-group.success select,
.control-group.success textarea {
  color: #468847;
}
.control-group.success input,
.control-group.success select,
.control-group.success textarea {
  border-color: #468847;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.control-group.success input:focus,
.control-group.success select:focus,
.control-group.success textarea:focus {
  border-color: #356635;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
}
.control-group.success .input-prepend .add-on,
.control-group.success .input-append .add-on {
  color: #468847;
  background-color: #dff0d8;
  border-color: #468847;
}
.control-group.info .control-label,
.control-group.info .help-block,
.control-group.info .help-inline {
  color: #3a87ad;
}
.control-group.info .checkbox,
.control-group.info .radio,
.control-group.info input,
.control-group.info select,
.control-group.info textarea {
  color: #3a87ad;
}
.control-group.info input,
.control-group.info select,
.control-group.info textarea {
  border-color: #3a87ad;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.control-group.info input:focus,
.control-group.info select:focus,
.control-group.info textarea:focus {
  border-color: #2d6987;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
}
.control-group.info .input-prepend .add-on,
.control-group.info .input-append .add-on {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #3a87ad;
}
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
}
input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus {
  border-color: #e9322d;
  -webkit-box-shadow: 0 0 6px #f8b9b7;
  -moz-box-shadow: 0 0 6px #f8b9b7;
  box-shadow: 0 0 6px #f8b9b7;
}
.form-actions {
  padding: 19px 20px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border-top: 1px solid #e5e5e5;
  *zoom: 1;
}
.form-actions:before,
.form-actions:after {
  display: table;
  content: "";
  line-height: 0;
}
.form-actions:after {
  clear: both;
}
.help-block,
.help-inline {
  color: #595959;
}
.help-block {
  display: block;
  margin-bottom: 10px;
}
.help-inline {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  vertical-align: middle;
  padding-left: 5px;
}
.input-append,
.input-prepend {
  display: inline-block;
  margin-bottom: 10px;
  vertical-align: middle;
  font-size: 0;
  white-space: nowrap;
}
.input-append input,
.input-prepend input,
.input-append select,
.input-prepend select,
.input-append .uneditable-input,
.input-prepend .uneditable-input,
.input-append .dropdown-menu,
.input-prepend .dropdown-menu,
.input-append .popover,
.input-prepend .popover {
  font-size: 14px;
}
.input-append input,
.input-prepend input,
.input-append select,
.input-prepend select,
.input-append .uneditable-input,
.input-prepend .uneditable-input {
  position: relative;
  margin-bottom: 0;
  *margin-left: 0;
  vertical-align: top;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.input-append input:focus,
.input-prepend input:focus,
.input-append select:focus,
.input-prepend select:focus,
.input-append .uneditable-input:focus,
.input-prepend .uneditable-input:focus {
  z-index: 2;
}
.input-append .add-on,
.input-prepend .add-on {
  display: inline-block;
  width: auto;
  height: 20px;
  min-width: 16px;
  padding: 4px 5px;
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  text-align: center;
  text-shadow: 0 1px 0 #fff;
  background-color: #eee;
  border: 1px solid #ccc;
}
.input-append .add-on,
.input-prepend .add-on,
.input-append .btn,
.input-prepend .btn,
.input-append .btn-group > .dropdown-toggle,
.input-prepend .btn-group > .dropdown-toggle {
  vertical-align: top;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.input-prepend .add-on,
.input-prepend .btn {
  margin-right: -1px;
}
.input-prepend .add-on:first-child,
.input-prepend .btn:first-child {
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
}
.input-append input,
.input-append select,
.input-append .uneditable-input {
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
}
.input-append input + .btn-group .btn:last-child,
.input-append select + .btn-group .btn:last-child,
.input-append .uneditable-input + .btn-group .btn:last-child {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.input-append .add-on,
.input-append .btn,
.input-append .btn-group {
  margin-left: -1px;
}
.input-append .add-on:last-child,
.input-append .btn:last-child,
.input-append .btn-group:last-child > .dropdown-toggle {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.input-prepend.input-append input,
.input-prepend.input-append select,
.input-prepend.input-append .uneditable-input {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.input-prepend.input-append input + .btn-group .btn,
.input-prepend.input-append select + .btn-group .btn,
.input-prepend.input-append .uneditable-input + .btn-group .btn {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.input-prepend.input-append .add-on:first-child,
.input-prepend.input-append .btn:first-child {
  margin-right: -1px;
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
}
.input-prepend.input-append .add-on:last-child,
.input-prepend.input-append .btn:last-child {
  margin-left: -1px;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
}
.input-prepend.input-append .btn-group:first-child {
  margin-left: 0;
}
input.search-query {
  padding-right: 14px;
  padding-right: 4px \9;
  padding-left: 14px;
  padding-left: 4px \9;
  /* IE7-8 doesn't have border-radius, so don't indent the padding */
  margin-bottom: 0;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  border-radius: 15px;
}
/* Allow for input prepend/append in search forms */
.form-search .input-append .search-query,
.form-search .input-prepend .search-query {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.form-search .input-append .search-query {
  -webkit-border-radius: 14px 0 0 14px;
  -moz-border-radius: 14px 0 0 14px;
  border-radius: 14px 0 0 14px;
}
.form-search .input-append .btn {
  -webkit-border-radius: 0 14px 14px 0;
  -moz-border-radius: 0 14px 14px 0;
  border-radius: 0 14px 14px 0;
}
.form-search .input-prepend .search-query {
  -webkit-border-radius: 0 14px 14px 0;
  -moz-border-radius: 0 14px 14px 0;
  border-radius: 0 14px 14px 0;
}
.form-search .input-prepend .btn {
  -webkit-border-radius: 14px 0 0 14px;
  -moz-border-radius: 14px 0 0 14px;
  border-radius: 14px 0 0 14px;
}
.js-stools-field-filter .input-prepend,
.js-stools-field-filter .input-append {
  margin-bottom: 0;
}
.form-search input,
.form-inline input,
.form-horizontal input,
.form-search textarea,
.form-inline textarea,
.form-horizontal textarea,
.form-search select,
.form-inline select,
.form-horizontal select,
.form-search .help-inline,
.form-inline .help-inline,
.form-horizontal .help-inline,
.form-search .uneditable-input,
.form-inline .uneditable-input,
.form-horizontal .uneditable-input,
.form-search .input-prepend,
.form-inline .input-prepend,
.form-horizontal .input-prepend,
.form-search .input-append,
.form-inline .input-append,
.form-horizontal .input-append {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  margin-bottom: 0;
  vertical-align: middle;
}
.form-search .hide,
.form-inline .hide,
.form-horizontal .hide {
  display: none;
}
.form-search label,
.form-inline label,
.form-search .btn-group,
.form-inline .btn-group {
  display: inline-block;
}
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
  margin-bottom: 0;
}
.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle;
}
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0;
}
.control-group {
  margin-bottom: 10px;
}
legend + .control-group {
  margin-top: 20px;
  -webkit-margin-top-collapse: separate;
}
.form-horizontal .control-group {
  margin-bottom: 20px;
  *zoom: 1;
}
.form-horizontal .control-group:before,
.form-horizontal .control-group:after {
  display: table;
  content: "";
  line-height: 0;
}
.form-horizontal .control-group:after {
  clear: both;
}
.form-horizontal .control-label {
  float: left;
  width: 160px;
  padding-top: 5px;
  text-align: right;
}
.form-horizontal .controls {
  *display: inline-block;
  *padding-left: 20px;
  margin-left: 180px;
  *margin-left: 0;
}
.form-horizontal .controls:first-child {
  *padding-left: 180px;
}
.form-horizontal .help-block {
  margin-bottom: 0;
}
.form-horizontal input + .help-block,
.form-horizontal select + .help-block,
.form-horizontal textarea + .help-block,
.form-horizontal .uneditable-input + .help-block,
.form-horizontal .input-prepend + .help-block,
.form-horizontal .input-append + .help-block {
  margin-top: 10px;
}
.form-horizontal .form-actions {
  padding-left: 180px;
}
/*Fix for tooltips wrong positioning*/
.control-label .hasPopover,
.control-label .hasTooltip {
  display: inline-block;
}
/* Field subform repeatable */
.subform-repeatable-wrapper .btn-group > .btn.button {
  min-width: 0;
}
.subform-repeatable-wrapper .ui-sortable-helper {
  background: #fff;
}
.subform-repeatable-wrapper tr.ui-sortable-helper {
  display: table;
}
/*Fix for floating 3 columns without overlapping */
@media (min-width: 980px) and (max-width: 1215px) {
  .float-cols .control-label {
    float: none;
  }
  .float-cols .controls {
    margin-left: 0;
  }
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle {
  *margin-bottom: -3px;
}
.dropdown-toggle:active,
.open .dropdown-toggle {
  outline: 0;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  vertical-align: top;
  border-top: 4px solid #000;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
}
.dropdown .caret {
  margin-top: 8px;
  margin-left: 2px;
}
.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;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  *width: 100%;
  height: 1px;
  margin: 9px 1px;
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #fff;
}
.dropdown-menu .menuitem-group {
  margin: 4px 1px;
  overflow: hidden;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
  background-color: #eee;
  color: #555;
  text-transform: capitalize;
  font-size: 95%;
  padding: 3px 20px;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 20px;
  color: #333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
  text-decoration: none;
  color: #fff;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #08c, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #08c, #0077b3);
  background-image: -o-linear-gradient(top, #08c, #0077b3);
  background-image: linear-gradient(to bottom, #08c, #0077b3);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #08c, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #08c, #0077b3);
  background-image: -o-linear-gradient(top, #08c, #0077b3);
  background-image: linear-gradient(to bottom, #08c, #0077b3);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
}
.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: default;
}
.open {
  *z-index: 1000;
}
.open > .dropdown-menu {
  display: block;
}
.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 solid #000;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 6px 6px 6px 6px;
  -moz-border-radius: 6px 6px 6px 6px;
  border-radius: 6px 6px 6px 6px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropup .dropdown-submenu > .dropdown-menu {
  top: auto;
  bottom: 0;
  margin-top: 0;
  margin-bottom: -2px;
  -webkit-border-radius: 5px 5px 5px 0;
  -moz-border-radius: 5px 5px 5px 0;
  border-radius: 5px 5px 5px 0;
}
.dropdown-submenu > a:after {
  display: block;
  content: " ";
  float: right;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-left-color: #cccccc;
  margin-top: 5px;
  margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
  border-left-color: #fff;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
}
.dropdown .dropdown-menu .nav-header {
  padding-left: 20px;
  padding-right: 20px;
}
.typeahead {
  z-index: 1051;
  margin-top: 2px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  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-large {
  padding: 24px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
}
.well-small {
  padding: 9px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -moz-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
  -moz-transition: height 0.35s ease;
  -o-transition: height 0.35s ease;
  transition: height 0.35s ease;
}
.collapse.in {
  height: auto;
}
.close {
  float: right;
  font-size: 20px;
  font-weight: bold;
  line-height: 20px;
  color: #000;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.4;
  filter: alpha(opacity=40);
}
button.close {
  padding: 3;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.alert-options {
  float: right;
  line-height: 20px;
  color: #000;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.alert-options:hover,
.alert-options:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.4;
  filter: alpha(opacity=40);
}
.btn {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  padding: 4px 12px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  color: #333;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  background-color: #f5f5f5;
  background-image: -moz-linear-gradient(top, #fff, #e6e6e6);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #fff, #e6e6e6);
  background-image: -o-linear-gradient(top, #fff, #e6e6e6);
  background-image: linear-gradient(to bottom, #fff, #e6e6e6);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  *background-color: #e6e6e6;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  border: 1px solid #ccc;
  *border: 0;
  border-bottom-color: #b3b3b3;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  *margin-left: 0.3em;
  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
}
.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn.disabled,
.btn[disabled] {
  color: #333;
  background-color: #e6e6e6;
  *background-color: #d9d9d9;
}
.btn:active,
.btn.active {
  background-color: #cccccc \9;
}
.btn:first-child {
  *margin-left: 0;
}
.btn:hover,
.btn:focus {
  color: #333;
  text-decoration: none;
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
  -moz-transition: background-position 0.1s linear;
  -o-transition: background-position 0.1s linear;
  transition: background-position 0.1s linear;
}
.btn:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn.active,
.btn:active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
}
.btn.disabled,
.btn[disabled] {
  cursor: default;
  background-image: none;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.btn-large {
  padding: 11px 19px;
  font-size: 17.5px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
}
.btn-large [class^="icon-"],
.btn-large [class*=" icon-"] {
  margin-top: 4px;
}
.btn-small {
  padding: 2px 10px;
  font-size: 11.9px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
.btn-small [class^="icon-"],
.btn-small [class*=" icon-"] {
  margin-top: 0;
}
.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
  margin-top: -1px;
}
.btn-mini {
  padding: 0 6px;
  font-size: 10.5px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
.btn-block {
  display: block;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
.btn-info.active,
.btn-inverse.active {
  color: rgba(255, 255, 255, 0.75);
}
.btn-primary {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #006dcc;
  background-image: -moz-linear-gradient(top, #08c, #0044cc);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
  background-image: -webkit-linear-gradient(top, #08c, #0044cc);
  background-image: -o-linear-gradient(top, #08c, #0044cc);
  background-image: linear-gradient(to bottom, #08c, #0044cc);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  border-color: #0044cc #0044cc #002a80;
  *background-color: #0044cc;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary.disabled,
.btn-primary[disabled] {
  color: #fff;
  background-color: #0044cc;
  *background-color: #003bb3;
}
.btn-primary:active,
.btn-primary.active {
  background-color: #003399 \9;
}
.btn-warning {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  border-color: #f89406 #f89406 #ad6704;
  *background-color: #f89406;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.btn-warning.disabled,
.btn-warning[disabled] {
  color: #fff;
  background-color: #f89406;
  *background-color: #df8505;
}
.btn-warning:active,
.btn-warning.active {
  background-color: #c67605 \9;
}
.btn-danger {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #da4f49;
  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
  border-color: #bd362f #bd362f #802420;
  *background-color: #bd362f;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.btn-danger.disabled,
.btn-danger[disabled] {
  color: #fff;
  background-color: #bd362f;
  *background-color: #a9302a;
}
.btn-danger:active,
.btn-danger.active {
  background-color: #942a25 \9;
}
.btn-success {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #5bb75b;
  background-image: -moz-linear-gradient(top, #62c462, #51a351);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
  background-image: -o-linear-gradient(top, #62c462, #51a351);
  background-image: linear-gradient(to bottom, #62c462, #51a351);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
  border-color: #51a351 #51a351 #387038;
  *background-color: #51a351;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.btn-success.disabled,
.btn-success[disabled] {
  color: #fff;
  background-color: #51a351;
  *background-color: #499249;
}
.btn-success:active,
.btn-success.active {
  background-color: #408140 \9;
}
.btn-info {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #49afcd;
  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
  border-color: #2f96b4 #2f96b4 #1f6377;
  *background-color: #2f96b4;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.btn-info.disabled,
.btn-info[disabled] {
  color: #fff;
  background-color: #2f96b4;
  *background-color: #2a85a0;
}
.btn-info:active,
.btn-info.active {
  background-color: #24748c \9;
}
.btn-inverse {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #363636;
  background-image: -moz-linear-gradient(top, #444, #222);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444), to(#222));
  background-image: -webkit-linear-gradient(top, #444, #222);
  background-image: -o-linear-gradient(top, #444, #222);
  background-image: linear-gradient(to bottom, #444, #222);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
  border-color: #222 #222 #000000;
  *background-color: #222;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-inverse:hover,
.btn-inverse:focus,
.btn-inverse:active,
.btn-inverse.active,
.btn-inverse.disabled,
.btn-inverse[disabled] {
  color: #fff;
  background-color: #222;
  *background-color: #151515;
}
.btn-inverse:active,
.btn-inverse.active {
  background-color: #080808 \9;
}
button.btn,
input[type="submit"].btn {
  *padding-top: 3px;
  *padding-bottom: 3px;
}
button.btn::-moz-focus-inner,
input[type="submit"].btn::-moz-focus-inner {
  padding: 0;
  border: 0;
}
button.btn.btn-large,
input[type="submit"].btn.btn-large {
  *padding-top: 7px;
  *padding-bottom: 7px;
}
button.btn.btn-small,
input[type="submit"].btn.btn-small {
  *padding-top: 3px;
  *padding-bottom: 3px;
}
button.btn.btn-mini,
input[type="submit"].btn.btn-mini {
  *padding-top: 1px;
  *padding-bottom: 1px;
}
.btn-link,
.btn-link:active,
.btn-link[disabled] {
  background-color: transparent;
  background-image: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.btn-link {
  border-color: transparent;
  cursor: pointer;
  color: #08c;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.btn-link:hover,
.btn-link:focus {
  color: #005580;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
.btn-link[disabled]:focus {
  color: #333;
  text-decoration: none;
}
.btn-group {
  position: relative;
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  font-size: 0;
  vertical-align: middle;
  white-space: nowrap;
  *margin-left: 0.3em;
}
.btn-group:first-child {
  *margin-left: 0;
}
.btn-group + .btn-group {
  margin-left: 5px;
}
.btn-toolbar {
  font-size: 0;
  margin-top: 10px;
  margin-bottom: 10px;
}
.btn-toolbar > .btn + .btn,
.btn-toolbar > .btn-group + .btn,
.btn-toolbar > .btn + .btn-group {
  margin-left: 5px;
}
.btn-group > .btn {
  position: relative;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.btn-group > .btn + .btn {
  margin-left: -1px;
}
.btn-group > .btn,
.btn-group > .dropdown-menu,
.btn-group > .popover {
  font-size: 14px;
}
.btn-group > .btn-mini {
  font-size: 10.5px;
}
.btn-group > .btn-small {
  font-size: 11.9px;
}
.btn-group > .btn-large {
  font-size: 17.5px;
}
.btn-group > .btn:first-child {
  margin-left: 0;
  -webkit-border-top-left-radius: 4px;
  -moz-border-radius-topleft: 4px;
  border-top-left-radius: 4px;
  -webkit-border-bottom-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  border-bottom-left-radius: 4px;
}
.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
  -webkit-border-top-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  border-top-right-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  border-bottom-right-radius: 4px;
}
.btn-group > .btn.large:first-child {
  margin-left: 0;
  -webkit-border-top-left-radius: 6px;
  -moz-border-radius-topleft: 6px;
  border-top-left-radius: 6px;
  -webkit-border-bottom-left-radius: 6px;
  -moz-border-radius-bottomleft: 6px;
  border-bottom-left-radius: 6px;
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
  -webkit-border-top-right-radius: 6px;
  -moz-border-radius-topright: 6px;
  border-top-right-radius: 6px;
  -webkit-border-bottom-right-radius: 6px;
  -moz-border-radius-bottomright: 6px;
  border-bottom-right-radius: 6px;
}
.btn-group > .btn:hover,
.btn-group > .btn:focus,
.btn-group > .btn:active,
.btn-group > .btn.active {
  z-index: 2;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  *padding-top: 5px;
  *padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-toggle {
  padding-left: 5px;
  padding-right: 5px;
  *padding-top: 2px;
  *padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-toggle {
  *padding-top: 5px;
  *padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
  *padding-top: 7px;
  *padding-bottom: 7px;
}
.btn-group.open .dropdown-toggle {
  background-image: none;
  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
}
.btn-group.open .btn.dropdown-toggle {
  background-color: #e6e6e6;
}
.btn-group.open .btn-primary.dropdown-toggle {
  background-color: #0044cc;
}
.btn-group.open .btn-warning.dropdown-toggle {
  background-color: #f89406;
}
.btn-group.open .btn-danger.dropdown-toggle {
  background-color: #bd362f;
}
.btn-group.open .btn-success.dropdown-toggle {
  background-color: #51a351;
}
.btn-group.open .btn-info.dropdown-toggle {
  background-color: #2f96b4;
}
.btn-group.open .btn-inverse.dropdown-toggle {
  background-color: #222;
}
.btn .caret {
  margin-top: 8px;
  margin-left: 0;
}
.btn-large .caret {
  margin-top: 6px;
}
.btn-large .caret {
  border-left-width: 5px;
  border-right-width: 5px;
  border-top-width: 5px;
}
.btn-mini .caret,
.btn-small .caret {
  margin-top: 8px;
}
.dropup .btn-large .caret {
  border-bottom-width: 5px;
}
.btn-primary .caret,
.btn-warning .caret,
.btn-danger .caret,
.btn-info .caret,
.btn-success .caret,
.btn-inverse .caret {
  border-top-color: #fff;
  border-bottom-color: #fff;
}
.btn-group-vertical {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
}
.btn-group-vertical > .btn {
  display: block;
  float: none;
  max-width: 100%;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
.btn-group-vertical > .btn + .btn {
  margin-left: 0;
  margin-top: -1px;
}
.btn-group-vertical > .btn:first-child {
  -webkit-border-radius: 4px 4px 0 0;
  -moz-border-radius: 4px 4px 0 0;
  border-radius: 4px 4px 0 0;
}
.btn-group-vertical > .btn:last-child {
  -webkit-border-radius: 0 0 4px 4px;
  -moz-border-radius: 0 0 4px 4px;
  border-radius: 0 0 4px 4px;
}
.btn-group-vertical > .btn-large:first-child {
  -webkit-border-radius: 6px 6px 0 0;
  -moz-border-radius: 6px 6px 0 0;
  border-radius: 6px 6px 0 0;
}
.btn-group-vertical > .btn-large:last-child {
  -webkit-border-radius: 0 0 6px 6px;
  -moz-border-radius: 0 0 6px 6px;
  border-radius: 0 0 6px 6px;
}
.alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: 20px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #fcf8e3;
  border: 1px solid #fbeed5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.alert,
.alert h4 {
  color: #c09853;
}
.alert h4 {
  margin: 0 0 0.5em;
}
.alert .close {
  position: relative;
  top: -2px;
  right: -21px;
  line-height: 20px;
  cursor: pointer;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #468847;
}
.alert-success h4 {
  color: #468847;
}
.alert-danger,
.alert-error {
  background-color: #f2dede;
  border-color: #eed3d7;
  color: #b94a48;
}
.alert-danger h4,
.alert-error h4 {
  color: #b94a48;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #3a87ad;
}
.alert-info h4 {
  color: #3a87ad;
}
.alert-block {
  padding-top: 14px;
  padding-bottom: 14px;
}
.alert-block > p,
.alert-block > ul {
  margin-bottom: 0;
}
.alert-block p + p {
  margin-top: 5px;
}
.tooltip {
  position: absolute;
  z-index: 1030;
  display: block;
  visibility: visible;
  font-size: 11px;
  line-height: 1.4;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.8;
  filter: alpha(opacity=80);
}
.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: 8px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: #000;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.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.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;
}
.accordion {
  margin-bottom: 20px;
}
.accordion-group {
  margin-bottom: 2px;
  border: 1px solid #e5e5e5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.accordion-heading {
  border-bottom: 0;
}
.accordion-heading .accordion-toggle {
  display: block;
  padding: 8px 15px;
}
.accordion-toggle {
  cursor: pointer;
}
.accordion-inner {
  padding: 9px 15px;
  border-top: 1px solid #e5e5e5;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.hide {
  display: none;
}
.show {
  display: block;
}
.invisible {
  visibility: hidden;
}
.affix {
  position: fixed;
}
/* Extending Bootstrap */
/* Typography */
.small {
  font-size: 11px;
}
/* Max Width */
iframe,
svg {
  max-width: 100%;
}
/* Nowrap */
.nowrap {
  white-space: nowrap;
}
/* Center */
.center,
.table td.center,
.table th.center {
  text-align: center;
}
/* Disabled Link */
a.disabled,
a.disabled:hover {
  color: #999999;
  background-color: transparent;
  cursor: default;
  text-decoration: none;
}
/* Hero Banner */
.hero-unit {
  text-align: center;
}
.hero-unit .lead {
  margin-bottom: 18px;
  font-size: 20px;
  font-weight: 200;
  line-height: 27px;
}
.btn .caret {
  margin-bottom: 7px;
}
.btn.btn-micro .caret {
  margin: 5px 0;
}
.blog-row-rule,
.blog-item-rule {
  border: 0;
}
/* Modal */
body.modal {
  padding-top: 0;
}
/* Alternating Rows */
.row-even,
.row-odd {
  padding: 5px;
  width: 99%;
  border-bottom: 1px solid #ddd;
}
.row-odd {
  background-color: transparent;
}
.row-even {
  background-color: #f9f9f9;
}
.blog-row-rule,
.blog-item-rule {
  border: 0;
}
/* Row reveal */
.row-fluid .row-reveal {
  visibility: hidden;
}
.row-fluid:hover .row-reveal {
  visibility: visible;
}
/* Buttons */
.btn-wide {
  width: 80%;
}
/* Nav List Offset */
.nav-list > li.offset > a {
  padding-left: 30px;
  font-size: 12px;
}
.blog-row-rule,
.blog-item-rule {
  border: 0;
}
.row-fluid .offset1 {
  margin-left: 8.38297872%;
}
.row-fluid .offset2 {
  margin-left: 16.89361702%;
}
.row-fluid .offset3 {
  margin-left: 25.40425532%;
}
.row-fluid .offset4 {
  margin-left: 33.91489361%;
}
.row-fluid .offset5 {
  margin-left: 42.42553191%;
}
.row-fluid .offset6 {
  margin-left: 50.93617021%;
}
.row-fluid .offset7 {
  margin-left: 59.4468085%;
}
.row-fluid .offset8 {
  margin-left: 67.9574468%;
}
.row-fluid .offset9 {
  margin-left: 76.4680851%;
}
.row-fluid .offset10 {
  margin-left: 84.9787234%;
}
.row-fluid .offset11 {
  margin-left: 91.48936169%;
}
/* Navbar Buttons */
.navbar .nav > li > a.btn {
  padding: 4px 10px;
  line-height: 18px;
}
/* Nav Tabs Dark */
.nav-tabs.nav-dark {
  border-bottom: 1px solid #333;
  text-shadow: 1px 1px 1px #000;
}
.nav-tabs.nav-dark > li > a {
  color: #F8F8F8;
}
.nav-tabs.nav-dark > li > a:hover {
  border-color: #333 #333 #111;
  background-color: #777777;
}
.nav-tabs.nav-dark > .active > a,
.nav-tabs.nav-dark > .active > a:hover {
  color: #ffffff;
  background-color: #555555;
  border: 1px solid #222;
  border-bottom-color: transparent;
}
/* Inline Thumbnails */
.thumbnail.pull-left {
  margin: 0 10px 10px 0;
}
.thumbnail.pull-right {
  margin: 0 0 10px 10px;
}
/* Specific Widths */
.width-10 {
  width: 10px;
}
.width-20 {
  width: 20px;
}
.width-30 {
  width: 30px;
}
.width-40 {
  width: 40px;
}
.width-50 {
  width: 50px;
}
.width-60 {
  width: 60px;
}
.width-70 {
  width: 70px;
}
.width-80 {
  width: 80px;
}
.width-90 {
  width: 90px;
}
.width-100 {
  width: 100px;
}
/* Specific Heights */
.height-10 {
  height: 10px;
}
.height-20 {
  height: 20px;
}
.height-30 {
  height: 30px;
}
.height-40 {
  height: 40px;
}
.height-50 {
  height: 50px;
}
.height-60 {
  height: 60px;
}
.height-70 {
  height: 70px;
}
.height-80 {
  height: 80px;
}
.height-90 {
  height: 90px;
}
.height-100 {
  height: 100px;
}
/* Horizontal Row (hr) */
hr.hr-condensed {
  margin: 10px 0;
}
/* Striped */
.list-striped,
.row-striped {
  list-style: none;
  line-height: 18px;
  text-align: left;
  vertical-align: middle;
  border-top: 1px solid #ddd;
  margin-left: 0;
}
.list-striped li,
.list-striped dd,
.row-striped .row,
.row-striped .row-fluid {
  border-bottom: 1px solid #ddd;
  padding: 8px;
}
.list-striped li:nth-child(odd),
.list-striped dd:nth-child(odd),
.row-striped .row:nth-child(odd),
.row-striped .row-fluid:nth-child(odd) {
  background-color: #f9f9f9;
}
.list-striped li:hover,
.list-striped dd:hover,
.row-striped .row:hover,
.row-striped .row-fluid:hover {
  background-color: #f5f5f5;
}
.row-striped .row-fluid {
  width: 100%;
  box-sizing: border-box;
}
.row-striped .row-fluid [class*="span"] {
  min-height: 10px;
}
.row-striped .row-fluid [class*="span"] {
  margin-left: 8px;
}
.row-striped .row-fluid [class*="span"]:first-child {
  margin-left: 0;
}
/* Condensed */
.list-condensed li {
  padding: 4px 5px;
}
.row-condensed .row,
.row-condensed .row-fluid {
  padding: 4px 5px;
}
/* Bordered */
.list-bordered,
.row-bordered {
  list-style: none;
  line-height: 18px;
  text-align: left;
  vertical-align: middle;
  margin-left: 0;
  border: 1px solid #ddd;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
/* Radio Button Groups */
.radio.btn-group input[type=radio] {
  display: none;
}
.radio.btn-group > label {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.radio.btn-group > label:first-of-type {
  margin-left: 0;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  -moz-border-radius-topleft: 4px;
}
fieldset.radio.btn-group {
  padding-left: 0;
}
/* iFrames */
.iframe-bordered {
  border: 1px solid #ddd;
}
/* Tabbed Content */
.tab-content {
  overflow: visible;
}
.tabs-left .tab-content {
  overflow: auto;
}
/* Non-linkable nav-tabs */
.nav-tabs > li > span {
  display: block;
  margin-right: 2px;
  padding-right: 12px;
  padding-left: 12px;
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: 18px;
  border: 1px solid transparent;
  -webkit-border-radius: 4px 4px 0 0;
  -moz-border-radius: 4px 4px 0 0;
  border-radius: 4px 4px 0 0;
}
/* Extended Joomla Button Classes */
.btn-micro {
  padding: 1px 4px;
  font-size: 10px;
  line-height: 8px;
}
.btn-group > .btn-micro {
  font-size: 10px;
}
/* Joomla => Bootstrap Tooltip */
.tip-wrap {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: #000;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  z-index: 100;
}
/* Page Header */
.page-header {
  margin: 2px 0px 10px 0px;
  padding-bottom: 5px;
}
/* Input Prepend Chosen Select Boxes */
/* Common styling for Chosen Select Boxes with Input Prepend/Append */
.input-prepend > .add-on,
.input-append > .add-on {
  vertical-align: top;
}
/* Styles specific to Input Prepend Chosen Select Boxes */
.input-prepend .chzn-container-single .chzn-single {
  -webkit-border-radius: 0 3px 3px 0;
  -moz-border-radius: 0 3px 3px 0;
  border-radius: 0 3px 3px 0;
}
.input-prepend .chzn-container-single .chzn-single-with-drop {
  -webkit-border-radius: 0 3px 0 0;
  -moz-border-radius: 0 3px 0 0;
  border-radius: 0 3px 0 0;
}
/* Styles specific to Input Append Chosen Select Boxes */
.input-append .chzn-container-single .chzn-single {
  -webkit-border-radius: 3px 0 0 3px;
  -moz-border-radius: 3px 0 0 3px;
  border-radius: 3px 0 0 3px;
}
.input-append .chzn-container-single .chzn-single-with-drop {
  -webkit-border-radius: 3px 0 0 0;
  -moz-border-radius: 3px 0 0 0;
  border-radius: 3px 0 0 0;
}
/* Styles specific to combined Input Prepend and Append Chosen Select Boxes */
.input-prepend.input-append .chzn-container-single .chzn-single,
.input-prepend.input-append .chzn-container-single .chzn-single-with-drop {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
/* Accessible Hidden Elements (good for hidden labels and such) */
.element-invisible {
  position: absolute;
  padding: 0;
  margin: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}
/* Make Accessible Hidden Elements visible on focus */
.element-invisible:focus {
  width: auto;
  height: auto;
  overflow: auto;
  background: #eee;
  color: #000;
  padding: 1em;
}
/* Form Vertical Overrides Form Horizontal */
.form-vertical .control-label {
  float: none;
  width: auto;
  padding-right: 0;
  padding-top: 0;
  text-align: left;
}
.form-vertical .controls {
  margin-left: 0;
}
/* Auto Width */
.width-auto {
  width: auto;
}
/* Chosen proper wrapping in Bootstrap btn-group */
.btn-group .chzn-results {
  white-space: normal;
}
/* Accordion overflow fix */
.accordion-body.in:hover {
  overflow: visible;
}
/* Invalid indicators */
.invalid {
  color: #9d261d;
  font-weight: bold;
}
input.invalid {
  border: 1px solid #9d261d;
  background: #f2dede;
}
select.chzn-done.invalid + .chzn-container.chzn-container-single > a.chzn-single,
select.chzn-done.invalid + .chzn-container.chzn-container-multi > ul.chzn-choices {
  border-color: #9d261d;
  color: #9d261d;
}
/* Tweaking of tooltips */
.tooltip {
  max-width: 400px;
}
.tooltip-inner {
  max-width: none;
  text-align: left;
  text-shadow: none;
}
th .tooltip-inner {
  font-weight: normal;
}
.tooltip.hasimage {
  opacity: 1;
}
/* Align tip text to left (old mootools tip) */
.tip-text {
  text-align: left;
}
.btn-group > .btn + .dropdown-backdrop + .btn {
  margin-left: -1px;
}
.btn-group > .btn + .dropdown-backdrop + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  *padding-top: 5px;
  *padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-backdrop + .dropdown-toggle {
  padding-left: 5px;
  padding-right: 5px;
  *padding-top: 2px;
  *padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-backdrop + .dropdown-toggle {
  *padding-top: 5px;
  *padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-backdrop + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
  *padding-top: 7px;
  *padding-bottom: 7px;
}
.dropdown-menu {
  text-align: left;
}
.alert-link {
  font-weight: bold;
}
.alert .alert-link {
  color: #a47e3c;
}
.alert-success .alert-link {
  color: #356635;
}
.alert-danger .alert-link,
.alert-error .alert-link {
  color: #953b39;
}
.alert-info .alert-link {
  color: #2d6987;
}
@font-face {
  font-family: 'IcoMoon';
  src: url('../../../../media/jui/fonts/IcoMoon.eot');
  src: url('../../../../media/jui/fonts/IcoMoon.eot?#iefix') format('embedded-opentype'), url('../../../../media/jui/fonts/IcoMoon.woff') format('woff'), url('../../../../media/jui/fonts/IcoMoon.ttf') format('truetype'), url('../../../../media/jui/fonts/IcoMoon.svg#IcoMoon') format('svg');
  font-weight: normal;
  font-style: normal;
}
/*
 * Due to a bug in the compiler that doesn't handle the relative paths correctly, the @font-face stuff needs to go in the templates less files
@font-face {
	font-family: 'IcoMoon';
	src: url('../fonts/IcoMoon.eot');
	src: url('../fonts/IcoMoon.eot?#iefix') format('embedded-opentype'),
		url('../fonts/IcoMoon.woff') format('woff'),
		url('../fonts/IcoMoon.ttf') format('truetype'),
		url('../fonts/IcoMoon.svg#IcoMoon') format('svg');
	font-weight: normal;
	font-style: normal;
}
*/
/* Use the following CSS code if you want to use data attributes for inserting your icons */
[data-icon]:before {
  font-family: 'IcoMoon';
  content: attr(data-icon);
  speak: none;
}
/* From Bootstrap */
[class^="icon-"],
[class*=" icon-"] {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 0.25em;
  line-height: 14px;
}
/* Use the following CSS code if you want to have a class per icon */
[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: 'IcoMoon';
  font-style: normal;
  speak: none;
}
[class^="icon-"].disabled,
[class*=" icon-"].disabled {
  font-weight: normal;
}
.icon-joomla:before {
  content: "\e200";
}
.icon-chevron-up:before,
.icon-uparrow:before,
.icon-arrow-up:before {
  content: "\e005";
}
.icon-chevron-right:before,
.icon-rightarrow:before,
.icon-arrow-right:before {
  content: "\e006";
}
.icon-chevron-down:before,
.icon-downarrow:before,
.icon-arrow-down:before {
  content: "\e007";
}
.icon-chevron-left:before,
.icon-leftarrow:before,
.icon-arrow-left:before {
  content: "\e008";
}
.icon-arrow-first:before {
  content: "\e003";
}
.icon-arrow-last:before {
  content: "\e004";
}
.icon-arrow-up-2:before {
  content: "\e009";
}
.icon-arrow-right-2:before {
  content: "\e00a";
}
.icon-arrow-down-2:before {
  content: "\e00b";
}
.icon-arrow-left-2:before {
  content: "\e00c";
}
.icon-arrow-up-3:before {
  content: "\e00f";
}
.icon-arrow-right-3:before {
  content: "\e010";
}
.icon-arrow-down-3:before {
  content: "\e011";
}
.icon-arrow-left-3:before {
  content: "\e012";
}
.icon-menu-2:before {
  content: "\e00e";
}
.icon-arrow-up-4:before {
  content: "\e201";
}
.icon-arrow-right-4:before {
  content: "\e202";
}
.icon-arrow-down-4:before {
  content: "\e203";
}
.icon-arrow-left-4:before {
  content: "\e204";
}
.icon-share:before,
.icon-redo:before {
  content: "\27";
}
.icon-undo:before {
  content: "\28";
}
.icon-forward-2:before {
  content: "\e205";
}
.icon-backward-2:before,
.icon-reply:before {
  content: "\e206";
}
.icon-unblock:before,
.icon-refresh:before,
.icon-redo-2:before {
  content: "\6c";
}
.icon-undo-2:before {
  content: "\e207";
}
.icon-move:before {
  content: "\7a";
}
.icon-expand:before {
  content: "\66";
}
.icon-contract:before {
  content: "\67";
}
.icon-expand-2:before {
  content: "\68";
}
.icon-contract-2:before {
  content: "\69";
}
.icon-play:before {
  content: "\e208";
}
.icon-pause:before {
  content: "\e209";
}
.icon-stop:before {
  content: "\e210";
}
.icon-previous:before,
.icon-backward:before {
  content: "\7c";
}
.icon-next:before,
.icon-forward:before {
  content: "\7b";
}
.icon-first:before {
  content: "\7d";
}
.icon-last:before {
  content: "\e000";
}
.icon-play-circle:before {
  content: "\e00d";
}
.icon-pause-circle:before {
  content: "\e211";
}
.icon-stop-circle:before {
  content: "\e212";
}
.icon-backward-circle:before {
  content: "\e213";
}
.icon-forward-circle:before {
  content: "\e214";
}
.icon-loop:before {
  content: "\e001";
}
.icon-shuffle:before {
  content: "\e002";
}
.icon-search:before {
  content: "\53";
}
.icon-zoom-in:before {
  content: "\64";
}
.icon-zoom-out:before {
  content: "\65";
}
.icon-apply:before,
.icon-edit:before,
.icon-pencil:before {
  content: "\2b";
}
.icon-pencil-2:before {
  content: "\2c";
}
.icon-brush:before {
  content: "\3b";
}
.icon-save-new:before,
.icon-plus-2:before {
  content: "\5d";
}
.icon-minus-sign:before,
.icon-minus-2:before {
  content: "\5e";
}
.icon-delete:before,
.icon-remove:before,
.icon-cancel-2:before {
  content: "\49";
}
.icon-publish:before,
.icon-save:before,
.icon-ok:before,
.icon-checkmark:before {
  content: "\47";
}
.icon-new:before,
.icon-plus:before {
  content: "\2a";
}
.icon-plus-circle:before {
  content: "\e215";
}
.icon-minus:before,
.icon-not-ok:before {
  content: "\4b";
}
.icon-ban-circle:before,
.icon-minus-circle:before {
  content: "\e216";
}
.icon-unpublish:before,
.icon-cancel:before {
  content: "\4a";
}
.icon-cancel-circle:before {
  content: "\e217";
}
.icon-checkmark-2:before {
  content: "\e218";
}
.icon-checkmark-circle:before {
  content: "\e219";
}
.icon-info:before {
  content: "\e220";
}
.icon-info-2:before,
.icon-info-circle:before {
  content: "\e221";
}
.icon-question:before,
.icon-question-sign:before,
.icon-help:before {
  content: "\45";
}
.icon-question-2:before,
.icon-question-circle:before {
  content: "\e222";
}
.icon-notification:before {
  content: "\e223";
}
.icon-notification-2:before,
.icon-notification-circle:before {
  content: "\e224";
}
.icon-pending:before,
.icon-warning:before {
  content: "\48";
}
.icon-warning-2:before,
.icon-warning-circle:before {
  content: "\e225";
}
.icon-checkbox-unchecked:before {
  content: "\3d";
}
.icon-checkin:before,
.icon-checkbox:before,
.icon-checkbox-checked:before {
  content: "\3e";
}
.icon-checkbox-partial:before {
  content: "\3f";
}
.icon-square:before {
  content: "\e226";
}
.icon-radio-unchecked:before {
  content: "\e227";
}
.icon-radio-checked:before,
.icon-generic:before {
  content: "\e228";
}
.icon-circle:before {
  content: "\e229";
}
.icon-signup:before {
  content: "\e230";
}
.icon-grid:before,
.icon-grid-view:before {
  content: "\58";
}
.icon-grid-2:before,
.icon-grid-view-2:before {
  content: "\59";
}
.icon-menu:before {
  content: "\5a";
}
.icon-list:before,
.icon-list-view:before {
  content: "\31";
}
.icon-list-2:before {
  content: "\e231";
}
.icon-menu-3:before {
  content: "\e232";
}
.icon-folder-open:before,
.icon-folder:before {
  content: "\2d";
}
.icon-folder-close:before,
.icon-folder-2:before {
  content: "\2e";
}
.icon-folder-plus:before {
  content: "\e234";
}
.icon-folder-minus:before {
  content: "\e235";
}
.icon-folder-3:before {
  content: "\e236";
}
.icon-folder-plus-2:before {
  content: "\e237";
}
.icon-folder-remove:before {
  content: "\e238";
}
.icon-file:before {
  content: "\e016";
}
.icon-file-2:before {
  content: "\e239";
}
.icon-file-add:before,
.icon-file-plus:before {
  content: "\29";
}
.icon-file-minus:before {
  content: "\e017";
}
.icon-file-check:before {
  content: "\e240";
}
.icon-file-remove:before {
  content: "\e241";
}
.icon-save-copy:before,
.icon-copy:before {
  content: "\e018";
}
.icon-stack:before {
  content: "\e242";
}
.icon-tree:before {
  content: "\e243";
}
.icon-tree-2:before {
  content: "\e244";
}
.icon-paragraph-left:before {
  content: "\e246";
}
.icon-paragraph-center:before {
  content: "\e247";
}
.icon-paragraph-right:before {
  content: "\e248";
}
.icon-paragraph-justify:before {
  content: "\e249";
}
.icon-screen:before {
  content: "\e01c";
}
.icon-tablet:before {
  content: "\e01d";
}
.icon-mobile:before {
  content: "\e01e";
}
.icon-box-add:before {
  content: "\51";
}
.icon-box-remove:before {
  content: "\52";
}
.icon-download:before {
  content: "\e021";
}
.icon-upload:before {
  content: "\e022";
}
.icon-home:before {
  content: "\21";
}
.icon-home-2:before {
  content: "\e250";
}
.icon-out-2:before,
.icon-new-tab:before {
  content: "\e024";
}
.icon-out-3:before,
.icon-new-tab-2:before {
  content: "\e251";
}
.icon-link:before {
  content: "\e252";
}
.icon-picture:before,
.icon-image:before {
  content: "\2f";
}
.icon-pictures:before,
.icon-images:before {
  content: "\30";
}
.icon-palette:before,
.icon-color-palette:before {
  content: "\e014";
}
.icon-camera:before {
  content: "\55";
}
.icon-camera-2:before,
.icon-video:before {
  content: "\e015";
}
.icon-play-2:before,
.icon-video-2:before,
.icon-youtube:before {
  content: "\56";
}
.icon-music:before {
  content: "\57";
}
.icon-user:before {
  content: "\22";
}
.icon-users:before {
  content: "\e01f";
}
.icon-vcard:before {
  content: "\6d";
}
.icon-address:before {
  content: "\70";
}
.icon-share-alt:before,
.icon-out:before {
  content: "\26";
}
.icon-enter:before {
  content: "\e257";
}
.icon-exit:before {
  content: "\e258";
}
.icon-comment:before,
.icon-comments:before {
  content: "\24";
}
.icon-comments-2:before {
  content: "\25";
}
.icon-quote:before,
.icon-quotes-left:before {
  content: "\60";
}
.icon-quote-2:before,
.icon-quotes-right:before {
  content: "\61";
}
.icon-quote-3:before,
.icon-bubble-quote:before {
  content: "\e259";
}
.icon-phone:before {
  content: "\e260";
}
.icon-phone-2:before {
  content: "\e261";
}
.icon-envelope:before,
.icon-mail:before {
  content: "\4d";
}
.icon-envelope-opened:before,
.icon-mail-2:before {
  content: "\4e";
}
.icon-unarchive:before,
.icon-drawer:before {
  content: "\4f";
}
.icon-archive:before,
.icon-drawer-2:before {
  content: "\50";
}
.icon-briefcase:before {
  content: "\e020";
}
.icon-tag:before {
  content: "\e262";
}
.icon-tag-2:before {
  content: "\e263";
}
.icon-tags:before {
  content: "\e264";
}
.icon-tags-2:before {
  content: "\e265";
}
.icon-options:before,
.icon-cog:before {
  content: "\38";
}
.icon-cogs:before {
  content: "\37";
}
.icon-screwdriver:before,
.icon-tools:before {
  content: "\36";
}
.icon-wrench:before {
  content: "\3a";
}
.icon-equalizer:before {
  content: "\39";
}
.icon-dashboard:before {
  content: "\78";
}
.icon-switch:before {
  content: "\e266";
}
.icon-filter:before {
  content: "\54";
}
.icon-purge:before,
.icon-trash:before {
  content: "\4c";
}
.icon-checkedout:before,
.icon-lock:before,
.icon-locked:before {
  content: "\23";
}
.icon-unlock:before {
  content: "\e267";
}
.icon-key:before {
  content: "\5f";
}
.icon-support:before {
  content: "\46";
}
.icon-database:before {
  content: "\62";
}
.icon-scissors:before {
  content: "\e268";
}
.icon-health:before {
  content: "\6a";
}
.icon-wand:before {
  content: "\6b";
}
.icon-eye-open:before,
.icon-eye:before {
  content: "\3c";
}
.icon-eye-close:before,
.icon-eye-blocked:before,
.icon-eye-2:before {
  content: "\e269";
}
.icon-clock:before {
  content: "\6e";
}
.icon-compass:before {
  content: "\6f";
}
.icon-broadcast:before,
.icon-connection:before,
.icon-wifi:before {
  content: "\e01b";
}
.icon-book:before {
  content: "\e271";
}
.icon-lightning:before,
.icon-flash:before {
  content: "\79";
}
.icon-print:before,
.icon-printer:before {
  content: "\e013";
}
.icon-feed:before {
  content: "\71";
}
.icon-calendar:before {
  content: "\43";
}
.icon-calendar-2:before {
  content: "\44";
}
.icon-calendar-3:before {
  content: "\e273";
}
.icon-pie:before {
  content: "\77";
}
.icon-bars:before {
  content: "\76";
}
.icon-chart:before {
  content: "\75";
}
.icon-power-cord:before {
  content: "\32";
}
.icon-cube:before {
  content: "\33";
}
.icon-puzzle:before {
  content: "\34";
}
.icon-attachment:before,
.icon-paperclip:before,
.icon-flag-2:before {
  content: "\72";
}
.icon-lamp:before {
  content: "\74";
}
.icon-pin:before,
.icon-pushpin:before {
  content: "\73";
}
.icon-location:before {
  content: "\63";
}
.icon-shield:before {
  content: "\e274";
}
.icon-flag:before {
  content: "\35";
}
.icon-flag-3:before {
  content: "\e275";
}
.icon-bookmark:before {
  content: "\e023";
}
.icon-bookmark-2:before {
  content: "\e276";
}
.icon-heart:before {
  content: "\e277";
}
.icon-heart-2:before {
  content: "\e278";
}
.icon-thumbs-up:before {
  content: "\5b";
}
.icon-thumbs-down:before {
  content: "\5c";
}
.icon-unfeatured:before,
.icon-asterisk:before,
.icon-star-empty:before {
  content: "\40";
}
.icon-star-2:before {
  content: "\41";
}
.icon-featured:before,
.icon-default:before,
.icon-star:before {
  content: "\42";
}
.icon-smiley:before,
.icon-smiley-happy:before {
  content: "\e279";
}
.icon-smiley-2:before,
.icon-smiley-happy-2:before {
  content: "\e280";
}
.icon-smiley-sad:before {
  content: "\e281";
}
.icon-smiley-sad-2:before {
  content: "\e282";
}
.icon-smiley-neutral:before {
  content: "\e283";
}
.icon-smiley-neutral-2:before {
  content: "\e284";
}
.icon-cart:before {
  content: "\e019";
}
.icon-basket:before {
  content: "\e01a";
}
.icon-credit:before {
  content: "\e286";
}
.icon-credit-2:before {
  content: "\e287";
}
.icon-expired:before {
  content: "\4b";
}
.icon-edit:before {
  color: #2f96b4;
}
.icon-publish:before,
.icon-save:before,
.icon-ok:before,
.icon-save-new:before,
.icon-save-copy:before,
.btn-toolbar .icon-copy:before {
  color: #51a351;
}
.icon-unpublish:before,
.icon-not-ok:before,
.icon-eye-close:before,
.icon-ban-circle:before,
.icon-minus-sign:before,
.btn-toolbar .icon-cancel:before {
  color: #bd362f;
}
.icon-featured:before,
.icon-default:before,
.icon-expired:before,
.icon-pending:before {
  color: #f89406;
}
.icon-back:before {
  content: "\e008";
}
/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
div.rl_multiselect {
  margin-bottom: 0;
}
div.rl_multiselect ul.rl_multiselect-ul {
  margin: 0;
  padding: 0;
  margin-top: 8px;
}
div.rl_multiselect ul.rl_multiselect-ul li {
  margin: 0;
  padding: 2px 10px 2px;
  list-style: none;
}
div.rl_multiselect ul.rl_multiselect-ul span.rl_multiselect-toggle {
  line-height: 18px;
}
div.rl_multiselect ul.rl_multiselect-ul label {
  font-size: 1em;
  margin-left: 8px;
}
div.rl_multiselect ul.rl_multiselect-ul label.nav-header {
  padding: 0;
}
div.rl_multiselect ul.rl_multiselect-ul input {
  margin: 2px 0 0 8px;
}
div.rl_multiselect ul.rl_multiselect-ul .rl_multiselect-menu {
  margin: 0 6px;
}
div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu {
  margin: 0;
}
div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu li {
  padding: 0 5px;
  border: none;
}
/* Chosen color styles */
[class^="chzn-color"].chzn-single,
[class*=" chzn-color"].chzn-single,
[class^="chzn-color"].chzn-single .chzn-single-with-drop,
[class*=" chzn-color"].chzn-single .chzn-single-with-drop {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.chzn-color.chzn-single[rel="value_1"],
.chzn-color-reverse.chzn-single[rel="value_0"],
.chzn-color-state.chzn-single[rel="value_1"] {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #5bb75b;
  background-image: -moz-linear-gradient(top, #62c462, #51a351);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
  background-image: -o-linear-gradient(top, #62c462, #51a351);
  background-image: linear-gradient(to bottom, #62c462, #51a351);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
  border-color: #51a351 #51a351 #387038;
  *background-color: #51a351;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.chzn-color.chzn-single[rel="value_1"]:hover,
.chzn-color-reverse.chzn-single[rel="value_0"]:hover,
.chzn-color-state.chzn-single[rel="value_1"]:hover,
.chzn-color.chzn-single[rel="value_1"]:focus,
.chzn-color-reverse.chzn-single[rel="value_0"]:focus,
.chzn-color-state.chzn-single[rel="value_1"]:focus,
.chzn-color.chzn-single[rel="value_1"]:active,
.chzn-color-reverse.chzn-single[rel="value_0"]:active,
.chzn-color-state.chzn-single[rel="value_1"]:active,
.chzn-color.chzn-single[rel="value_1"].active,
.chzn-color-reverse.chzn-single[rel="value_0"].active,
.chzn-color-state.chzn-single[rel="value_1"].active,
.chzn-color.chzn-single[rel="value_1"].disabled,
.chzn-color-reverse.chzn-single[rel="value_0"].disabled,
.chzn-color-state.chzn-single[rel="value_1"].disabled,
.chzn-color.chzn-single[rel="value_1"][disabled],
.chzn-color-reverse.chzn-single[rel="value_0"][disabled],
.chzn-color-state.chzn-single[rel="value_1"][disabled] {
  color: #fff;
  background-color: #51a351;
  *background-color: #499249;
}
.chzn-color.chzn-single[rel="value_1"]:active,
.chzn-color-reverse.chzn-single[rel="value_0"]:active,
.chzn-color-state.chzn-single[rel="value_1"]:active,
.chzn-color.chzn-single[rel="value_1"].active,
.chzn-color-reverse.chzn-single[rel="value_0"].active,
.chzn-color-state.chzn-single[rel="value_1"].active {
  background-color: #408140 \9;
}
.chzn-color.chzn-single[rel="value_0"],
.chzn-color-reverse.chzn-single[rel="value_1"],
.chzn-color-state.chzn-single[rel="value_0"],
.chzn-color-state.chzn-single[rel="value_-1"],
.chzn-color-state.chzn-single[rel="value_-2"] {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #da4f49;
  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
  border-color: #bd362f #bd362f #802420;
  *background-color: #bd362f;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.chzn-color.chzn-single[rel="value_0"]:hover,
.chzn-color-reverse.chzn-single[rel="value_1"]:hover,
.chzn-color-state.chzn-single[rel="value_0"]:hover,
.chzn-color-state.chzn-single[rel="value_-1"]:hover,
.chzn-color-state.chzn-single[rel="value_-2"]:hover,
.chzn-color.chzn-single[rel="value_0"]:focus,
.chzn-color-reverse.chzn-single[rel="value_1"]:focus,
.chzn-color-state.chzn-single[rel="value_0"]:focus,
.chzn-color-state.chzn-single[rel="value_-1"]:focus,
.chzn-color-state.chzn-single[rel="value_-2"]:focus,
.chzn-color.chzn-single[rel="value_0"]:active,
.chzn-color-reverse.chzn-single[rel="value_1"]:active,
.chzn-color-state.chzn-single[rel="value_0"]:active,
.chzn-color-state.chzn-single[rel="value_-1"]:active,
.chzn-color-state.chzn-single[rel="value_-2"]:active,
.chzn-color.chzn-single[rel="value_0"].active,
.chzn-color-reverse.chzn-single[rel="value_1"].active,
.chzn-color-state.chzn-single[rel="value_0"].active,
.chzn-color-state.chzn-single[rel="value_-1"].active,
.chzn-color-state.chzn-single[rel="value_-2"].active,
.chzn-color.chzn-single[rel="value_0"].disabled,
.chzn-color-reverse.chzn-single[rel="value_1"].disabled,
.chzn-color-state.chzn-single[rel="value_0"].disabled,
.chzn-color-state.chzn-single[rel="value_-1"].disabled,
.chzn-color-state.chzn-single[rel="value_-2"].disabled,
.chzn-color.chzn-single[rel="value_0"][disabled],
.chzn-color-reverse.chzn-single[rel="value_1"][disabled],
.chzn-color-state.chzn-single[rel="value_0"][disabled],
.chzn-color-state.chzn-single[rel="value_-1"][disabled],
.chzn-color-state.chzn-single[rel="value_-2"][disabled] {
  color: #fff;
  background-color: #bd362f;
  *background-color: #a9302a;
}
.chzn-color.chzn-single[rel="value_0"]:active,
.chzn-color-reverse.chzn-single[rel="value_1"]:active,
.chzn-color-state.chzn-single[rel="value_0"]:active,
.chzn-color-state.chzn-single[rel="value_-1"]:active,
.chzn-color-state.chzn-single[rel="value_-2"]:active,
.chzn-color.chzn-single[rel="value_0"].active,
.chzn-color-reverse.chzn-single[rel="value_1"].active,
.chzn-color-state.chzn-single[rel="value_0"].active,
.chzn-color-state.chzn-single[rel="value_-1"].active,
.chzn-color-state.chzn-single[rel="value_-2"].active {
  background-color: #942a25 \9;
}
/* Min-width on buttons */
.controls .btn-group > .btn {
  min-width: 50px;
}
.controls .btn-group.btn-group-yesno > .btn {
  min-width: 84px;
  padding: 2px 12px;
}
.control-label > label > h4 {
  margin-bottom: 0;
}
.controls > fieldset {
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.chzn-container .chzn-drop {
  z-index: 1040;
}
regularlabs/css/style.css000064400000030432152177723720011530 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@font-face {
  font-family: 'RegularLabs';
  src: url('../fonts/RegularLabs.eot');
  src: url('../fonts/RegularLabs.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabs.woff') format('woff'), url('../fonts/RegularLabs.ttf') format('truetype'), url('../fonts/RegularLabs.svg#RegularLabs') format('svg');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'RegularLabsIcons';
  src: url('../fonts/RegularLabsIcons.eot');
  src: url('../fonts/RegularLabsIcons.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabsIcons.woff') format('woff'), url('../fonts/RegularLabsIcons.ttf') format('truetype'), url('../fonts/RegularLabsIcons.svg#RegularLabsIcons') format('svg');
  font-weight: normal;
  font-style: normal;
}
.icon-reglab,
[class^="icon-reglab-"],
[class*=" icon-reglab-"] {
  display: inline-block;
  width: 14px;
  height: 14px;
  *margin-right: 0.3em;
  line-height: 16px;
  font-size: 16px;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-reglab:before {
  font-family: 'RegularLabs' !important;
  font-size: 14.2px !important;
}
h1 .icon-reglab:before,
h2 .icon-reglab:before {
  font-size: 16px !important;
}
.btn .icon-reglab {
  text-indent: -2px;
  font-size: 12px;
}
.btn .icon-reglab:before {
  vertical-align: -3px;
}
.icon-reglab-24:before {
  vertical-align: -5px;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  .icon-reglab-24:before {
    vertical-align: -3px;
  }
}
.icon-reglab:before {
  content: "\e000";
}
.icon-nonumber:before {
  content: "\e100";
}
.icon-addtomenu:before {
  content: "\e001";
}
.icon-advancedmodulemanager:before {
  content: "\e003";
}
.icon-advancedtemplatemanager:before {
  content: "\e015";
}
.icon-articlesanywhere:before {
  content: "\e004";
}
.icon-articlesfield:before {
  content: "\e01d";
}
.icon-betterpreview:before {
  content: "\e005";
}
.icon-bettertrash:before {
  content: "\e01b";
}
.icon-cachecleaner:before {
  content: "\e006";
}
.icon-cdnforjoomla:before {
  content: "\e007";
}
.icon-componentsanywhere:before {
  content: "\e008";
}
.icon-conditionalcontent:before {
  content: "\e019";
}
.icon-contenttemplater:before {
  content: "\e009";
}
.icon-dbreplacer:before {
  content: "\e00a";
}
.icon-dummycontent:before {
  content: "\e017";
}
.icon-emailprotector:before {
  content: "\e00b";
}
.icon-geoip:before {
  content: "\e018";
}
.icon-iplogin:before {
  content: "\e016";
}
.icon-keyboardshortcuts:before {
  content: "\e01e";
}
.icon-modals:before {
  content: "\e00c";
}
.icon-modulesanywhere:before {
  content: "\e00d";
}
.icon-quickindex:before {
  content: "\e01c";
}
.icon-rereplacer:before {
  content: "\e00e";
}
.icon-simpleusernotes:before {
  content: "\e01a";
}
.icon-sliders:before {
  content: "\e00f";
}
.icon-snippets:before {
  content: "\e010";
}
.icon-sourcerer:before {
  content: "\e011";
}
.icon-tabs:before {
  content: "\e012";
}
.icon-tooltips:before {
  content: "\e014";
}
.icon-whatnothing:before {
  content: " ";
  width: 16px;
  display: inline-block;
}
[class^="icon-reglab-"]:before,
[class*=" icon-reglab-"]:before {
  font-family: 'RegularLabsIcons' !important;
}
.icon-reglab-paragraph-left:before {
  content: "\e001";
}
.icon-reglab-paragraph-center:before {
  content: "\e002";
}
.icon-reglab-paragraph-right:before {
  content: "\e003";
}
.icon-reglab-paragraph-justify:before {
  content: "\e004";
}
.icon-reglab-undo:before {
  content: "\e005";
}
.icon-reglab-redo:before {
  content: "\e006";
}
.icon-reglab-spinner:before {
  content: "\e007";
}
.icon-reglab-lock:before {
  content: "\e008";
}
.icon-reglab-unlocked:before {
  content: "\e009";
}
.icon-reglab-cog:before {
  content: "\e00a";
}
.icon-reglab-arrow-up:before {
  content: "\e00b";
}
.icon-reglab-arrow-right:before {
  content: "\e00c";
}
.icon-reglab-arrow-down:before {
  content: "\e00d";
}
.icon-reglab-arrow-left:before {
  content: "\e00e";
}
.icon-reglab-top:before {
  content: "\e00f";
}
.icon-reglab-bottom:before {
  content: "\e010";
}
.icon-reglab-simple:before {
  content: "\e011";
}
.icon-reglab-normal:before {
  content: "\e012";
}
.icon-reglab-advanced:before {
  content: "\e013";
}
.icon-reglab-home:before {
  content: "\e014";
}
.icon-reglab-info:before {
  content: "\e015";
}
.icon-reglab-warning:before {
  content: "\e016";
}
.icon-reglab-not-ok:before {
  content: "\e017";
}
.icon-reglab-link:before {
  content: "\e018";
}
.icon-reglab-eye:before {
  content: "\e019";
}
.icon-reglab-search:before {
  content: "\e01a";
}
.icon-reglab-earth:before {
  content: "\e01f";
}
.icon-reglab-src_sourcetags:before {
  content: "\e01b";
}
.icon-reglab-src_nosourcetags:before {
  content: "\e01c";
}
.icon-reglab-src_tagstyle:before {
  content: "\e01d";
}
.icon-reglab-src_tagstyle_brackets:before {
  content: "\e01e";
}
.icon-reglab-bundle:before {
  content: "\e021";
}
.icon-reglab-lifetime:before {
  content: "\e022";
}
.icon-reglab-twitter:before {
  content: "\e030";
}
.icon-reglab-google-plus:before {
  content: "\e031";
}
.icon-reglab-facebook:before {
  content: "\e032";
}
.icon-reglab-joomla:before {
  content: "\e033";
}
.icon-reglab.icon-src_sourcetags:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01b";
}
.icon-reglab.icon-src_nosourcetags:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01c";
}
.icon-reglab.icon-src_tagstyle:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01d";
}
.icon-reglab.icon-src_tagstyle_brackets:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01e";
}
.icon-expired:before {
  content: "\6e";
}
.rl_tablelist td {
  height: 22px;
  color: #555;
}
.rl_tablelist td.has-context {
  height: 23px;
}
.rl_code {
  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
  color: #999;
}
.well .well {
  border-color: #dedede;
}
div.rl_well {
  padding-bottom: 0;
}
div.rl_well h4 {
  margin-top: 6px;
}
div.rl_well.alert-success,
div.rl_well.alert-error {
  color: #333;
}
div.rl_well .controls .btn-group > .btn {
  min-width: auto;
}
.well-striped:nth-child(even) {
  background-color: #f8f8f8;
}
.alert.alert-inline {
  margin: 14px 0 0;
}
.alert.alert-noclose {
  padding: 8px 14px;
}
.rl_btn-ignore.btn-danger.active {
  background-color: #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
}
.rl_btn-ignore.btn-danger.active:hover,
.rl_btn-ignore.btn-danger.active:focus {
  background-color: #737373;
}
.rl_btn-exclude.btn-success.active {
  background-color: #bd362f;
  border: 1px solid rgba(0, 0, 0, 0.2);
}
.rl_btn-exclude.btn-success.active:hover,
.rl_btn-exclude.btn-success.active:focus {
  background-color: #802420;
}
.btn-group.btn-group-full,
.subform-table-layout table .btn-group.btn-group-full,
.btn-full {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}
.icon-back:before {
  content: "\e008";
}
.icon-spin {
  -webkit-animation: spin 0.5s infinite linear;
  animation: spin 0.5s infinite linear;
}
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
  }
}
@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(359deg);
  }
}
@-ms-keyframes spin {
  0% {
    -ms-transform: rotate(0deg);
  }
  100% {
    -ms-transform: rotate(359deg);
  }
}
@-o-keyframes spin {
  0% {
    -o-transform: rotate(0deg);
  }
  100% {
    -o-transform: rotate(359deg);
  }
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(359deg);
  }
}
/* Dropdown and dropup fixes */
.btn-toolbar .modal,
.btn-toolbar .dropdown-menu {
  font-size: 13px;
}
@media (min-width: 768px) {
  .dropdown {
    display: inline-block;
  }
  .dropdown-menu.dropup-menu {
    bottom: 100%;
    top: auto;
  }
}
/* popovers */
.popover {
  width: auto;
  min-width: 200px;
}
/* icons */
.icon-color {
  background: transparent url(../images/icon-color.png) no-repeat;
  width: 16px !important;
  height: 16px !important;
}
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
  line-height: 0;
}
.clearfix:after {
  clear: both;
}
.thumbnail-small > .thumbnail > img {
  max-width: 40px;
}
#key_button,
#jform_key_button {
  margin-left: 8px;
}
.ghosted {
  opacity: 0.6;
  filter: alpha(opacity=60);
}
.rl_licence {
  margin-top: 30px;
  text-align: center;
}
.rl_footer {
  margin-top: 30px;
}
.rl_footer div {
  margin-top: 30px;
  text-align: center;
}
.rl_footer .rl_footer_review {
  margin-top: 5px;
}
.rl_footer .rl_footer_review a.stars {
  display: inline-block;
}
.rl_footer .rl_footer_review a.stars .icon-star {
  color: #fcac0a;
  margin: 0;
  -webkit-transition-duration: 500ms;
  -moz-transition-duration: 500ms;
  -o-transition-duration: 500ms;
  transition-duration: 500ms;
}
.rl_footer .rl_footer_review a.stars:hover {
  text-decoration: none;
}
.rl_footer .rl_footer_review a.stars:hover .icon-star {
  -webkit-transform: rotate(216deg);
  -moz-transform: rotate(216deg);
  -ms-transform: rotate(216deg);
  -o-transform: rotate(216deg);
  transform: rotate(216deg);
}
.rl_footer .rl_footer_logo img {
  vertical-align: -40%;
}
.rl_footer .rl_footer_copyright {
  margin-top: 3px;
  font-size: 0.7em;
  opacity: 0.6;
  filter: alpha(opacity=60);
}
.rl_simplecategory_new {
  margin-top: 4px;
}
.rl_codemirror .CodeMirror-activeline-background {
  background: rgba(164, 194, 235, 0.1);
}
/* better responsiveness */
@media (min-width: 768px) and (max-width: 1200px) {
  .row-fluid [class*="span"][class*="span-md"] {
    margin-left: 2.12%;
    *margin-left: 2.03%;
  }
  .row-fluid [class*="span"][class*="span-md"]:first-child {
    margin-left: 0;
  }
  .row-fluid [class*="span"].span-md-12 {
    width: 100%;
    *width: 99.94680851%;
    margin-left: 0;
  }
  .row-fluid [class*="span"].span-md-11 {
    width: 91.4893617%;
    *width: 91.43617021%;
  }
  .row-fluid [class*="span"].span-md-10 {
    width: 82.9787234%;
    *width: 82.92553191%;
  }
  .row-fluid [class*="span"].span-md-9 {
    width: 74.46808511%;
    *width: 74.41489362%;
  }
  .row-fluid [class*="span"].span-md-8 {
    width: 65.95744681%;
    *width: 65.90425532%;
  }
  .row-fluid [class*="span"].span-md-7 {
    width: 57.44680851%;
    *width: 57.39361702%;
  }
  .row-fluid [class*="span"].span-md-6 {
    width: 48.93617021%;
    *width: 48.88297872%;
  }
  .row-fluid [class*="span"].span-md-5 {
    width: 40.42553191%;
    *width: 40.37234043%;
  }
  .row-fluid [class*="span"].span-md-4 {
    width: 31.91489362%;
    *width: 31.86170213%;
  }
  .row-fluid [class*="span"].span-md-3 {
    width: 23.40425532%;
    *width: 23.35106383%;
  }
  .row-fluid [class*="span"].span-md-2 {
    width: 14.89361702%;
    *width: 14.84042553%;
  }
  .row-fluid [class*="span"].span-md-1 {
    width: 6.38297872%;
    *width: 6.32978723%;
  }
}
@media (min-width: 1200px) and (max-width: 1400px) {
  .row-fluid [class*="span"].span-lg-12 {
    width: 100%;
    *width: 99.94680851%;
    margin-left: 0;
  }
  .row-fluid [class*="span"].span-lg-11 {
    width: 91.4893617%;
    *width: 91.43617021%;
  }
  .row-fluid [class*="span"].span-lg-10 {
    width: 82.9787234%;
    *width: 82.92553191%;
  }
  .row-fluid [class*="span"].span-lg-9 {
    width: 74.46808511%;
    *width: 74.41489362%;
  }
  .row-fluid [class*="span"].span-lg-8 {
    width: 65.95744681%;
    *width: 65.90425532%;
  }
  .row-fluid [class*="span"].span-lg-7 {
    width: 57.44680851%;
    *width: 57.39361702%;
  }
  .row-fluid [class*="span"].span-lg-6 {
    width: 48.93617021%;
    *width: 48.88297872%;
  }
  .row-fluid [class*="span"].span-lg-5 {
    width: 40.42553191%;
    *width: 40.37234043%;
  }
  .row-fluid [class*="span"].span-lg-4 {
    width: 31.91489362%;
    *width: 31.86170213%;
  }
  .row-fluid [class*="span"].span-lg-3 {
    width: 23.40425532%;
    *width: 23.35106383%;
  }
  .row-fluid [class*="span"].span-lg-2 {
    width: 14.89361702%;
    *width: 14.84042553%;
  }
  .row-fluid [class*="span"].span-lg-1 {
    width: 6.38297872%;
    *width: 6.32978723%;
  }
}
regularlabs/css/form.min.css000064400000006354152177723720012123 0ustar00.btn-group-yesno-reverse .active.btn-danger,.btn-group-yesno-reverse .active.btn-success{text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff}.chzn-small{width:120px}div.chzn-container#advancedparams_color_chzn,div.chzn-container[id^=color_][id$="_chzn"]{display:none}.input-full{width:100%;box-sizing:border-box}input[type=text].input-full{height:28px}.controls .input-maximize .chzn-container:hover,.controls .input-maximize .chzn-with-drop,.controls .input-maximize:focus{min-width:99%}.btn-group-yesno-reverse .active.btn-success{background-color:#ad312b;background-image:-moz-linear-gradient(top,#bd362f,#942a25);background-image:-webkit-gradient(linear,0 0,0 100%,from(#bd362f),to(#942a25));background-image:-webkit-linear-gradient(top,#bd362f,#942a25);background-image:-o-linear-gradient(top,#bd362f,#942a25);background-image:linear-gradient(to bottom,#bd362f,#942a25);border-color:#942a25 #942a25 #571916;*background-color:#942a25}.btn-group-yesno-reverse .active.btn-success.active,.btn-group-yesno-reverse .active.btn-success.disabled,.btn-group-yesno-reverse .active.btn-success:active,.btn-group-yesno-reverse .active.btn-success:focus,.btn-group-yesno-reverse .active.btn-success:hover,.btn-group-yesno-reverse .active.btn-success[disabled]{color:#fff;background-color:#942a25;*background-color:#802420}.btn-group-yesno-reverse .active.btn-success.active,.btn-group-yesno-reverse .active.btn-success:active{background-color:#6b1f1b\9}.btn-group-yesno-reverse .active.btn-danger{background-color:#409740;background-image:-moz-linear-gradient(top,#46a546,#378137);background-image:-webkit-gradient(linear,0 0,0 100%,from(#46a546),to(#378137));background-image:-webkit-linear-gradient(top,#46a546,#378137);background-image:-o-linear-gradient(top,#46a546,#378137);background-image:linear-gradient(to bottom,#46a546,#378137);border-color:#378137 #378137 #204b20;*background-color:#378137}.btn-group-yesno-reverse .active.btn-danger.active,.btn-group-yesno-reverse .active.btn-danger.disabled,.btn-group-yesno-reverse .active.btn-danger:active,.btn-group-yesno-reverse .active.btn-danger:focus,.btn-group-yesno-reverse .active.btn-danger:hover,.btn-group-yesno-reverse .active.btn-danger[disabled]{color:#fff;background-color:#378137;*background-color:#2f6f2f}.btn-group-yesno-reverse .active.btn-danger.active,.btn-group-yesno-reverse .active.btn-danger:active{background-color:#285d28\9}div.rl_keycode,input.rl_codefield,input.rl_keyfield{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:1.4em!important}input.rl_codefield,input.rl_keyfield{font-size:14px!important}.btn.disabled{cursor:not-allowed!important}.rl_keycode{color:#999;padding:2px 0}fieldset.rl_plaintext{margin-top:5px}.rl_textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inlist .simplecolors-swatch span{position:relative}.rl_spinner{display:inline-block;box-sizing:border-box;vertical-align:top;margin:0 4px;border-top:5px solid #7ac143;border-right:5px solid #f9a541;border-bottom:5px solid #f44321;border-left:5px solid #5091cd;border-radius:50%;width:20px;height:20px;animation:rl_spinner 1s linear infinite}@keyframes rl_spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}regularlabs/css/popup.css000064400000016744152177723720011545 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@font-face {
  font-family: 'RegularLabs';
  src: url('../fonts/RegularLabs.eot');
  src: url('../fonts/RegularLabs.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabs.woff') format('woff'), url('../fonts/RegularLabs.ttf') format('truetype'), url('../fonts/RegularLabs.svg#RegularLabs') format('svg');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'RegularLabsIcons';
  src: url('../fonts/RegularLabsIcons.eot');
  src: url('../fonts/RegularLabsIcons.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabsIcons.woff') format('woff'), url('../fonts/RegularLabsIcons.ttf') format('truetype'), url('../fonts/RegularLabsIcons.svg#RegularLabsIcons') format('svg');
  font-weight: normal;
  font-style: normal;
}
.icon-reglab,
[class^="icon-reglab-"],
[class*=" icon-reglab-"] {
  display: inline-block;
  width: 14px;
  height: 14px;
  *margin-right: 0.3em;
  line-height: 16px;
  font-size: 16px;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-reglab:before {
  font-family: 'RegularLabs' !important;
  font-size: 14.2px !important;
}
h1 .icon-reglab:before,
h2 .icon-reglab:before {
  font-size: 16px !important;
}
.btn .icon-reglab {
  text-indent: -2px;
  font-size: 12px;
}
.btn .icon-reglab:before {
  vertical-align: -3px;
}
.icon-reglab-24:before {
  vertical-align: -5px;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  .icon-reglab-24:before {
    vertical-align: -3px;
  }
}
.icon-reglab:before {
  content: "\e000";
}
.icon-nonumber:before {
  content: "\e100";
}
.icon-addtomenu:before {
  content: "\e001";
}
.icon-advancedmodulemanager:before {
  content: "\e003";
}
.icon-advancedtemplatemanager:before {
  content: "\e015";
}
.icon-articlesanywhere:before {
  content: "\e004";
}
.icon-articlesfield:before {
  content: "\e01d";
}
.icon-betterpreview:before {
  content: "\e005";
}
.icon-bettertrash:before {
  content: "\e01b";
}
.icon-cachecleaner:before {
  content: "\e006";
}
.icon-cdnforjoomla:before {
  content: "\e007";
}
.icon-componentsanywhere:before {
  content: "\e008";
}
.icon-conditionalcontent:before {
  content: "\e019";
}
.icon-contenttemplater:before {
  content: "\e009";
}
.icon-dbreplacer:before {
  content: "\e00a";
}
.icon-dummycontent:before {
  content: "\e017";
}
.icon-emailprotector:before {
  content: "\e00b";
}
.icon-geoip:before {
  content: "\e018";
}
.icon-iplogin:before {
  content: "\e016";
}
.icon-keyboardshortcuts:before {
  content: "\e01e";
}
.icon-modals:before {
  content: "\e00c";
}
.icon-modulesanywhere:before {
  content: "\e00d";
}
.icon-quickindex:before {
  content: "\e01c";
}
.icon-rereplacer:before {
  content: "\e00e";
}
.icon-simpleusernotes:before {
  content: "\e01a";
}
.icon-sliders:before {
  content: "\e00f";
}
.icon-snippets:before {
  content: "\e010";
}
.icon-sourcerer:before {
  content: "\e011";
}
.icon-tabs:before {
  content: "\e012";
}
.icon-tooltips:before {
  content: "\e014";
}
.icon-whatnothing:before {
  content: " ";
  width: 16px;
  display: inline-block;
}
[class^="icon-reglab-"]:before,
[class*=" icon-reglab-"]:before {
  font-family: 'RegularLabsIcons' !important;
}
.icon-reglab-paragraph-left:before {
  content: "\e001";
}
.icon-reglab-paragraph-center:before {
  content: "\e002";
}
.icon-reglab-paragraph-right:before {
  content: "\e003";
}
.icon-reglab-paragraph-justify:before {
  content: "\e004";
}
.icon-reglab-undo:before {
  content: "\e005";
}
.icon-reglab-redo:before {
  content: "\e006";
}
.icon-reglab-spinner:before {
  content: "\e007";
}
.icon-reglab-lock:before {
  content: "\e008";
}
.icon-reglab-unlocked:before {
  content: "\e009";
}
.icon-reglab-cog:before {
  content: "\e00a";
}
.icon-reglab-arrow-up:before {
  content: "\e00b";
}
.icon-reglab-arrow-right:before {
  content: "\e00c";
}
.icon-reglab-arrow-down:before {
  content: "\e00d";
}
.icon-reglab-arrow-left:before {
  content: "\e00e";
}
.icon-reglab-top:before {
  content: "\e00f";
}
.icon-reglab-bottom:before {
  content: "\e010";
}
.icon-reglab-simple:before {
  content: "\e011";
}
.icon-reglab-normal:before {
  content: "\e012";
}
.icon-reglab-advanced:before {
  content: "\e013";
}
.icon-reglab-home:before {
  content: "\e014";
}
.icon-reglab-info:before {
  content: "\e015";
}
.icon-reglab-warning:before {
  content: "\e016";
}
.icon-reglab-not-ok:before {
  content: "\e017";
}
.icon-reglab-link:before {
  content: "\e018";
}
.icon-reglab-eye:before {
  content: "\e019";
}
.icon-reglab-search:before {
  content: "\e01a";
}
.icon-reglab-earth:before {
  content: "\e01f";
}
.icon-reglab-src_sourcetags:before {
  content: "\e01b";
}
.icon-reglab-src_nosourcetags:before {
  content: "\e01c";
}
.icon-reglab-src_tagstyle:before {
  content: "\e01d";
}
.icon-reglab-src_tagstyle_brackets:before {
  content: "\e01e";
}
.icon-reglab-bundle:before {
  content: "\e021";
}
.icon-reglab-lifetime:before {
  content: "\e022";
}
.icon-reglab-twitter:before {
  content: "\e030";
}
.icon-reglab-google-plus:before {
  content: "\e031";
}
.icon-reglab-facebook:before {
  content: "\e032";
}
.icon-reglab-joomla:before {
  content: "\e033";
}
.icon-reglab.icon-src_sourcetags:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01b";
}
.icon-reglab.icon-src_nosourcetags:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01c";
}
.icon-reglab.icon-src_tagstyle:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01d";
}
.icon-reglab.icon-src_tagstyle_brackets:before {
  font-family: 'RegularLabsIcons' !important;
  content: "\e01e";
}
.icon-expired:before {
  content: "\6e";
}
body.reglab-popup {
  padding: 0;
}
body.reglab-popup .container-fluid {
  padding: 0 20px;
}
body.reglab-popup .navbar {
  margin-bottom: 10px;
}
body.reglab-popup .navbar .navbar-inner {
  padding-left: 0;
  padding-right: 0;
  border-radius: 0;
  border-left: none;
  border-right: none;
}
body.reglab-popup .navbar .btn-toolbar,
body.reglab-popup .navbar #toolbar {
  margin-top: 2px;
  margin-bottom: 2px;
}
body.reglab-popup .header {
  margin-left: 0;
  margin-right: 0;
}
body.reglab-popup .header.has-navbar-fixed-top {
  margin-top: 44px;
  margin-bottom: 10px;
  padding-top: 2px;
  padding-bottom: 2px;
}
body.reglab-popup .subhead {
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}
body.reglab-popup .page-title {
  text-align: left;
}
body.reglab-popup label > span[class^="icon-reglab"] {
  padding: 1px 0 3px;
}
body.reglab-popup .reglab-overlay {
  background-color: #000000;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 5000;
  opacity: 0.2;
  cursor: wait;
}
body.reglab-popup .chzn-container-single .chzn-single div b {
  background: none !important;
}
body.reglab-popup .nav-tabs > li > a {
  border-color: #eeeeee #eeeeee #dddddd;
  background-color: #f5f5f5;
  margin-right: 4px;
}
body.reglab-popup .nav-tabs > li > a:hover,
body.reglab-popup .nav-tabs > li > a:focus {
  background-color: #eeeeee;
}
body.reglab-popup .nav-tabs > li.active a {
  border-color: #dddddd;
  border-bottom-color: transparent;
  background-color: #ffffff;
}
regularlabs/css/colorpicker.min.css000064400000003116152177723720013465 0ustar00.rl_colorpicker-swatch{cursor:pointer;position:relative;width:20px;height:20px;text-align:left;background:url(../images/minicolors.png) -80px 0;border:1px solid #ccc;vertical-align:middle;display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;overflow:hidden}.rl_colorpicker-swatch span{position:absolute;width:100%;height:100%;background:0 0;-webkit-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);box-shadow:inset 0 9px 0 rgba(255,255,255,.1);display:inline-block}.rl_colorpicker-panel .rl_colorpicker-swatch{margin:0 4px 4px 0}.rl_colorpicker-swatch span:focus,.rl_colorpicker-swatch.active,.rl_colorpicker-swatch:focus,.rl_colorpicker-swatch:hover{outline:0;outline:dotted thin\9}.rl_colorpicker-swatch.active,.rl_colorpicker-swatch:hover{border-color:rgba(82,168,236,.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}.rl_colorpicker-panel{position:absolute;top:100%;left:0;z-index:10;display:none;float:left;padding:6px 2px 2px 6px;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ddd;*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}regularlabs/css/popup.min.css000064400000013773152177723720012326 0ustar00body.reglab-popup .header,body.reglab-popup .subhead{margin-left:0;margin-right:0}@font-face{font-family:RegularLabs;src:url(../fonts/RegularLabs.eot);src:url(../fonts/RegularLabs.eot?#iefix) format('embedded-opentype'),url(../fonts/RegularLabs.woff) format('woff'),url(../fonts/RegularLabs.ttf) format('truetype'),url(../fonts/RegularLabs.svg#RegularLabs) format('svg');font-weight:400;font-style:normal}@font-face{font-family:RegularLabsIcons;src:url(../fonts/RegularLabsIcons.eot);src:url(../fonts/RegularLabsIcons.eot?#iefix) format('embedded-opentype'),url(../fonts/RegularLabsIcons.woff) format('woff'),url(../fonts/RegularLabsIcons.ttf) format('truetype'),url(../fonts/RegularLabsIcons.svg#RegularLabsIcons) format('svg');font-weight:400;font-style:normal}.icon-reglab,[class*=" icon-reglab-"],[class^=icon-reglab-]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:16px;font-size:16px;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-reglab:before{font-family:RegularLabs!important;font-size:14.2px!important;content:"\e000"}.icon-reglab.icon-src_nosourcetags:before,.icon-reglab.icon-src_sourcetags:before,.icon-reglab.icon-src_tagstyle:before,.icon-reglab.icon-src_tagstyle_brackets:before,[class*=" icon-reglab-"]:before,[class^=icon-reglab-]:before{font-family:RegularLabsIcons!important}h1 .icon-reglab:before,h2 .icon-reglab:before{font-size:16px!important}.btn .icon-reglab{text-indent:-2px;font-size:12px}.btn .icon-reglab:before{vertical-align:-3px}.icon-reglab-24:before{vertical-align:-5px}@media screen and (-webkit-min-device-pixel-ratio:0){.icon-reglab-24:before{vertical-align:-3px}}.icon-nonumber:before{content:"\e100"}.icon-addtomenu:before{content:"\e001"}.icon-advancedmodulemanager:before{content:"\e003"}.icon-advancedtemplatemanager:before{content:"\e015"}.icon-articlesanywhere:before{content:"\e004"}.icon-articlesfield:before{content:"\e01d"}.icon-betterpreview:before{content:"\e005"}.icon-bettertrash:before{content:"\e01b"}.icon-cachecleaner:before{content:"\e006"}.icon-cdnforjoomla:before{content:"\e007"}.icon-componentsanywhere:before{content:"\e008"}.icon-conditionalcontent:before{content:"\e019"}.icon-contenttemplater:before{content:"\e009"}.icon-dbreplacer:before{content:"\e00a"}.icon-dummycontent:before{content:"\e017"}.icon-emailprotector:before{content:"\e00b"}.icon-geoip:before{content:"\e018"}.icon-iplogin:before{content:"\e016"}.icon-keyboardshortcuts:before{content:"\e01e"}.icon-modals:before{content:"\e00c"}.icon-modulesanywhere:before{content:"\e00d"}.icon-quickindex:before{content:"\e01c"}.icon-rereplacer:before{content:"\e00e"}.icon-simpleusernotes:before{content:"\e01a"}.icon-sliders:before{content:"\e00f"}.icon-snippets:before{content:"\e010"}.icon-sourcerer:before{content:"\e011"}.icon-tabs:before{content:"\e012"}.icon-tooltips:before{content:"\e014"}.icon-whatnothing:before{content:" ";width:16px;display:inline-block}.icon-reglab-paragraph-left:before{content:"\e001"}.icon-reglab-paragraph-center:before{content:"\e002"}.icon-reglab-paragraph-right:before{content:"\e003"}.icon-reglab-paragraph-justify:before{content:"\e004"}.icon-reglab-undo:before{content:"\e005"}.icon-reglab-redo:before{content:"\e006"}.icon-reglab-spinner:before{content:"\e007"}.icon-reglab-lock:before{content:"\e008"}.icon-reglab-unlocked:before{content:"\e009"}.icon-reglab-cog:before{content:"\e00a"}.icon-reglab-arrow-up:before{content:"\e00b"}.icon-reglab-arrow-right:before{content:"\e00c"}.icon-reglab-arrow-down:before{content:"\e00d"}.icon-reglab-arrow-left:before{content:"\e00e"}.icon-reglab-top:before{content:"\e00f"}.icon-reglab-bottom:before{content:"\e010"}.icon-reglab-simple:before{content:"\e011"}.icon-reglab-normal:before{content:"\e012"}.icon-reglab-advanced:before{content:"\e013"}.icon-reglab-home:before{content:"\e014"}.icon-reglab-info:before{content:"\e015"}.icon-reglab-warning:before{content:"\e016"}.icon-reglab-not-ok:before{content:"\e017"}.icon-reglab-link:before{content:"\e018"}.icon-reglab-eye:before{content:"\e019"}.icon-reglab-search:before{content:"\e01a"}.icon-reglab-earth:before{content:"\e01f"}.icon-reglab-src_sourcetags:before{content:"\e01b"}.icon-reglab-src_nosourcetags:before{content:"\e01c"}.icon-reglab-src_tagstyle:before{content:"\e01d"}.icon-reglab-src_tagstyle_brackets:before{content:"\e01e"}.icon-reglab-bundle:before{content:"\e021"}.icon-reglab-lifetime:before{content:"\e022"}.icon-reglab-twitter:before{content:"\e030"}.icon-reglab-google-plus:before{content:"\e031"}.icon-reglab-facebook:before{content:"\e032"}.icon-reglab-joomla:before{content:"\e033"}.icon-reglab.icon-src_sourcetags:before{content:"\e01b"}.icon-reglab.icon-src_nosourcetags:before{content:"\e01c"}.icon-reglab.icon-src_tagstyle:before{content:"\e01d"}.icon-reglab.icon-src_tagstyle_brackets:before{content:"\e01e"}.icon-expired:before{content:"\6e"}body.reglab-popup{padding:0}body.reglab-popup .container-fluid{padding:0 20px}body.reglab-popup .navbar{margin-bottom:10px}body.reglab-popup .navbar .navbar-inner{padding-left:0;padding-right:0;border-radius:0;border-left:none;border-right:none}body.reglab-popup .navbar #toolbar,body.reglab-popup .navbar .btn-toolbar{margin-top:2px;margin-bottom:2px}body.reglab-popup .header.has-navbar-fixed-top{margin-top:44px;margin-bottom:10px;padding-top:2px;padding-bottom:2px}body.reglab-popup .subhead{padding-left:0;padding-right:0}body.reglab-popup .page-title{text-align:left}body.reglab-popup label>span[class^=icon-reglab]{padding:1px 0 3px}body.reglab-popup .reglab-overlay{background-color:#000;position:fixed;left:0;top:0;width:100%;height:100%;z-index:5000;opacity:.2;cursor:wait}body.reglab-popup .chzn-container-single .chzn-single div b{background:0 0!important}body.reglab-popup .nav-tabs>li>a{border-color:#eee #eee #ddd;background-color:#f5f5f5;margin-right:4px}body.reglab-popup .nav-tabs>li>a:focus,body.reglab-popup .nav-tabs>li>a:hover{background-color:#eee}body.reglab-popup .nav-tabs>li.active a{border-color:#ddd #ddd transparent;background-color:#fff}regularlabs/css/colorpicker.css000064400000004471152177723720012710 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 */
.rl_colorpicker-swatch {
  cursor: pointer;
  position: relative;
  width: 20px;
  height: 20px;
  text-align: left;
  background: url(../images/minicolors.png) -80px 0;
  border: solid 1px #cccccc;
  vertical-align: middle;
  display: inline-block;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  overflow: hidden;
}
.rl_colorpicker-swatch span {
  position: absolute;
  width: 100%;
  height: 100%;
  background: none;
  -webkit-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  -moz-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  display: inline-block;
}
.rl_colorpicker-panel .rl_colorpicker-swatch {
  margin: 0 4px 4px 0;
}
.rl_colorpicker-swatch.active,
.rl_colorpicker-swatch:hover,
.rl_colorpicker-swatch:focus,
.rl_colorpicker-swatch span:focus {
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */
}
.rl_colorpicker-swatch:hover,
.rl_colorpicker-swatch.active {
  border-color: rgba(82, 168, 236, 0.8);
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
}
.rl_colorpicker-panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  display: none;
  float: left;
  padding: 6px 2px 2px 6px;
  margin: 1px 0 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding-box;
  background-clip: padding-box;
}
regularlabs/css/codemirror.css000064400000002164152177723720012536 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 */
.rl_codemirror .CodeMirror {
  height: 100px;
  min-height: 100px;
  max-height: none;
  padding-bottom: 15px;
}
.rl_codemirror .cm-resize-handle {
  position: relative;
  background: #f7f7f7;
  height: 15px;
  user-select: none;
  cursor: ns-resize;
  border-top: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  z-index: 2;
}
.rl_codemirror .cm-resize-handle:before {
  position: absolute;
  left: 50%;
  content: '\2261';
  /* https://en.wikipedia.org/wiki/Triple_bar */
  color: #999999;
  line-height: 13px;
  font-size: 15px;
}
.rl_codemirror .cm-resize-handle:hover {
  background: #f0f0f0;
}
.rl_codemirror .cm-resize-handle:hover:before {
  color: black;
}
regularlabs/css/form.css000064400000010671152177723720011336 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
.chzn-small {
  width: 120px;
}
div.chzn-container[id^="color_"][id$="_chzn"],
div.chzn-container#advancedparams_color_chzn {
  display: none;
}
.input-full {
  width: 100%;
  box-sizing: border-box;
}
input[type="text"].input-full {
  height: 28px;
}
.controls .input-maximize:focus,
.controls .input-maximize .chzn-container:hover,
.controls .input-maximize .chzn-with-drop {
  min-width: 99%;
}
.btn-group-yesno-reverse .active.btn-success {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #ad312b;
  background-image: -moz-linear-gradient(top, #bd362f, #942a25);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bd362f), to(#942a25));
  background-image: -webkit-linear-gradient(top, #bd362f, #942a25);
  background-image: -o-linear-gradient(top, #bd362f, #942a25);
  background-image: linear-gradient(to bottom, #bd362f, #942a25);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbd362f', endColorstr='#ff942a25', GradientType=0);
  border-color: #942a25 #942a25 #571916;
  *background-color: #942a25;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-group-yesno-reverse .active.btn-success:hover,
.btn-group-yesno-reverse .active.btn-success:focus,
.btn-group-yesno-reverse .active.btn-success:active,
.btn-group-yesno-reverse .active.btn-success.active,
.btn-group-yesno-reverse .active.btn-success.disabled,
.btn-group-yesno-reverse .active.btn-success[disabled] {
  color: #fff;
  background-color: #942a25;
  *background-color: #802420;
}
.btn-group-yesno-reverse .active.btn-success:active,
.btn-group-yesno-reverse .active.btn-success.active {
  background-color: #6b1f1b \9;
}
.btn-group-yesno-reverse .active.btn-danger {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #409740;
  background-image: -moz-linear-gradient(top, #46a546, #378137);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#46a546), to(#378137));
  background-image: -webkit-linear-gradient(top, #46a546, #378137);
  background-image: -o-linear-gradient(top, #46a546, #378137);
  background-image: linear-gradient(to bottom, #46a546, #378137);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff46a546', endColorstr='#ff378137', GradientType=0);
  border-color: #378137 #378137 #204b20;
  *background-color: #378137;
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-group-yesno-reverse .active.btn-danger:hover,
.btn-group-yesno-reverse .active.btn-danger:focus,
.btn-group-yesno-reverse .active.btn-danger:active,
.btn-group-yesno-reverse .active.btn-danger.active,
.btn-group-yesno-reverse .active.btn-danger.disabled,
.btn-group-yesno-reverse .active.btn-danger[disabled] {
  color: #fff;
  background-color: #378137;
  *background-color: #2f6f2f;
}
.btn-group-yesno-reverse .active.btn-danger:active,
.btn-group-yesno-reverse .active.btn-danger.active {
  background-color: #285d28 \9;
}
input.rl_codefield,
input.rl_keyfield,
div.rl_keycode {
  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
  font-size: 1.4em !important;
}
input.rl_codefield,
input.rl_keyfield {
  font-size: 14px !important;
}
.btn.disabled {
  cursor: not-allowed !important;
}
.rl_keycode {
  color: #999;
  padding: 2px 0;
}
fieldset.rl_plaintext {
  margin-top: 5px;
}
.rl_textarea {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.inlist .simplecolors-swatch span {
  position: relative;
}
.rl_spinner {
  display: inline-block;
  box-sizing: border-box;
  vertical-align: top;
  margin: 0 4px;
  border-top: 5px solid #7ac143;
  border-right: 5px solid #f9a541;
  border-bottom: 5px solid #f44321;
  border-left: 5px solid #5091cd;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  animation: rl_spinner 1s linear infinite;
}
@keyframes rl_spinner {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
regularlabs/css/multiselect.min.css000064400000001277152177723720013511 0ustar00div.rl_multiselect{margin-bottom:0}div.rl_multiselect ul.rl_multiselect-ul{margin:8px 0 0;padding:0}div.rl_multiselect ul.rl_multiselect-ul li{margin:0;padding:2px 10px;list-style:none}div.rl_multiselect ul.rl_multiselect-ul span.rl_multiselect-toggle{line-height:18px}div.rl_multiselect ul.rl_multiselect-ul label{font-size:1em;margin-left:8px}div.rl_multiselect ul.rl_multiselect-ul label.nav-header{padding:0}div.rl_multiselect ul.rl_multiselect-ul input{margin:2px 0 0 8px}div.rl_multiselect ul.rl_multiselect-ul .rl_multiselect-menu{margin:0 6px}div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu{margin:0}div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu li{padding:0 5px;border:none}regularlabs/css/multiselect.css000064400000002177152177723720012727 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
div.rl_multiselect {
  margin-bottom: 0;
}
div.rl_multiselect ul.rl_multiselect-ul {
  margin: 0;
  padding: 0;
  margin-top: 8px;
}
div.rl_multiselect ul.rl_multiselect-ul li {
  margin: 0;
  padding: 2px 10px 2px;
  list-style: none;
}
div.rl_multiselect ul.rl_multiselect-ul span.rl_multiselect-toggle {
  line-height: 18px;
}
div.rl_multiselect ul.rl_multiselect-ul label {
  font-size: 1em;
  margin-left: 8px;
}
div.rl_multiselect ul.rl_multiselect-ul label.nav-header {
  padding: 0;
}
div.rl_multiselect ul.rl_multiselect-ul input {
  margin: 2px 0 0 8px;
}
div.rl_multiselect ul.rl_multiselect-ul .rl_multiselect-menu {
  margin: 0 6px;
}
div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu {
  margin: 0;
}
div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu li {
  padding: 0 5px;
  border: none;
}
regularlabs/css/frontend.min.css000064400000177737152177723720013015 0ustar00.row-fluid:after,.row-fluid:before,.row:after,.row:before{display:table;content:"";line-height:0}fieldset,legend{padding:0;border:0}.btn-group,.dropdown-menu>li>a,.nowrap,.uneditable-input{white-space:nowrap}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover,.input-append .uneditable-input:focus,.input-append input:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-prepend input:focus,.input-prepend select:focus{z-index:2}.controls-row:after,.form-actions:after,.form-horizontal .control-group:after,.row-fluid:after,.row:after{clear:both}.row{margin-left:-20px;*zoom:1}[class*=span]{float:left;min-height:1px;margin-left:20px}.container,.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container,.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid [class*=span]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.12765957%;*margin-left:2.07446809%}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .controls-row [class*=span]+[class*=span]{margin-left:2.12765957%}.row-fluid .span12{width:100%;*width:99.94680851%}.row-fluid .span11{width:91.4893617%;*width:91.43617021%}.row-fluid .span10{width:82.9787234%;*width:82.92553191%}.row-fluid .span9{width:74.46808511%;*width:74.41489362%}.row-fluid .span8{width:65.95744681%;*width:65.90425532%}.row-fluid .span7{width:57.44680851%;*width:57.39361702%}.row-fluid .span6{width:48.93617021%;*width:48.88297872%}.row-fluid .span5{width:40.42553191%;*width:40.37234043%}.row-fluid .span4{width:31.91489362%;*width:31.86170213%}.row-fluid .span3{width:23.40425532%;*width:23.35106383%}.row-fluid .span2{width:14.89361702%;*width:14.84042553%}.row-fluid .span1{width:6.38297872%;*width:6.32978723%}.row-fluid .offset12{margin-left:104.25531915%;*margin-left:104.14893617%}.row-fluid .offset12:first-child{margin-left:102.12765957%;*margin-left:102.0212766%}.row-fluid .offset11{*margin-left:95.63829787%}.row-fluid .offset11:first-child{margin-left:93.61702128%;*margin-left:93.5106383%}.row-fluid .offset10{*margin-left:87.12765957%}.row-fluid .offset10:first-child{margin-left:85.10638298%;*margin-left:85%}.row-fluid .offset9{*margin-left:78.61702128%}.row-fluid .offset9:first-child{margin-left:76.59574468%;*margin-left:76.4893617%}.row-fluid .offset8{*margin-left:70.10638298%}.row-fluid .offset8:first-child{margin-left:68.08510638%;*margin-left:67.9787234%}.row-fluid .offset7{*margin-left:61.59574468%}.row-fluid .offset7:first-child{margin-left:59.57446809%;*margin-left:59.46808511%}.row-fluid .offset6{*margin-left:53.08510638%}.row-fluid .offset6:first-child{margin-left:51.06382979%;*margin-left:50.95744681%}.row-fluid .offset5{*margin-left:44.57446809%}.row-fluid .offset5:first-child{margin-left:42.55319149%;*margin-left:42.44680851%}.row-fluid .offset4{*margin-left:36.06382979%}.row-fluid .offset4:first-child{margin-left:34.04255319%;*margin-left:33.93617021%}.row-fluid .offset3{*margin-left:27.55319149%}.row-fluid .offset3:first-child{margin-left:25.53191489%;*margin-left:25.42553191%}.row-fluid .offset2{*margin-left:19.04255319%}.row-fluid .offset2:first-child{margin-left:17.0212766%;*margin-left:16.91489362%}.row-fluid .offset1{*margin-left:10.53191489%}.row-fluid .offset1:first-child{margin-left:8.5106383%;*margin-left:8.40425532%}.row-fluid [class*=span].hide,[class*=span].hide{display:none}label,legend{display:block}.row-fluid [class*=span].pull-right,[class*=span].pull-right{float:right}form{margin:0 0 20px}fieldset{margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}button,input,label,select,textarea{font-size:14px;font-weight:400;line-height:20px}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{margin-bottom:5px}.uneditable-input,input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],select,textarea{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle}.controls-row .checkbox[class*=span],.controls-row .radio[class*=span],.controls>.checkbox:first-child,.controls>.radio:first-child{padding-top:5px}.uneditable-input,input,textarea{width:206px}textarea{height:auto}.uneditable-input,input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],textarea{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.uneditable-input:focus,input[type=week]:focus,input[type=number]:focus,input[type=email]:focus,input[type=url]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,input[type=text]:focus,input[type=password]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,textarea:focus{border-color:rgba(82,168,236,.8);outline:0;outline:dotted thin\9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=radio],input[type=checkbox],input[type=file],input[type=image],input[type=submit],input[type=reset],input[type=button]{width:auto}input[type=file],select{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid #ccc;background-color:#fff}select[multiple],select[size]{height:auto}input[type=radio]:focus,input[type=checkbox]:focus,input[type=file]:focus,select:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025);cursor:not-allowed}.uneditable-input{overflow:hidden}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.checkbox,.radio{min-height:20px;padding-left:20px}.checkbox input[type=checkbox],.radio input[type=radio]{float:left;margin-left:-20px}.checkbox.inline,.radio.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.checkbox.inline+.checkbox.inline,.radio.inline+.radio.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.uneditable-input[class*=span],input[class*=span],select[class*=span],textarea[class*=span]{float:none;margin-left:0}.input-append .uneditable-input[class*=span],.input-append input[class*=span],.input-prepend .uneditable-input[class*=span],.input-prepend input[class*=span],.row-fluid .input-append [class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span]{display:inline-block}.controls-row:after,.controls-row:before,.form-actions:after,.form-actions:before{display:table;line-height:0;content:""}.uneditable-input,input,textarea{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}.uneditable-input.span12,input.span12,textarea.span12{width:926px}.uneditable-input.span11,input.span11,textarea.span11{width:846px}.uneditable-input.span10,input.span10,textarea.span10{width:766px}.uneditable-input.span9,input.span9,textarea.span9{width:686px}.uneditable-input.span8,input.span8,textarea.span8{width:606px}.uneditable-input.span7,input.span7,textarea.span7{width:526px}.uneditable-input.span6,input.span6,textarea.span6{width:446px}.uneditable-input.span5,input.span5,textarea.span5{width:366px}.uneditable-input.span4,input.span4,textarea.span4{width:286px}.uneditable-input.span3,input.span3,textarea.span3{width:206px}.uneditable-input.span2,input.span2,textarea.span2{width:126px}.uneditable-input.span1,input.span1,textarea.span1{width:46px}.controls-row{*zoom:1}.controls-row [class*=span],.row-fluid .controls-row [class*=span]{float:left}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=radio][disabled],input[type=radio][readonly],input[type=checkbox][disabled],input[type=checkbox][readonly]{background-color:transparent}.control-group.warning .checkbox,.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-append .add-on,.control-group.warning .input-prepend .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .checkbox,.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-append .add-on,.control-group.error .input-prepend .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .checkbox,.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-append .add-on,.control-group.success .input-prepend .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .checkbox,.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3}.control-group.info .input-append .add-on,.control-group.info .input-prepend .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap}.input-append .dropdown-menu,.input-append .popover,.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .dropdown-menu,.input-prepend .popover,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{font-size:14px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-append .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .add-on,.input-prepend .btn,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append .uneditable-input+.btn-group .btn:last-child,.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn-group:last-child>.dropdown-toggle,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .uneditable-input,.input-prepend.input-append input,.input-prepend.input-append select{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .uneditable-input+.btn-group .btn,.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px\9;padding-left:14px;padding-left:4px\9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn,.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.js-stools-field-filter .input-append,.js-stools-field-filter .input-prepend{margin-bottom:0}.form-horizontal .help-inline,.form-horizontal .input-append,.form-horizontal .input-prepend,.form-horizontal .uneditable-input,.form-horizontal input,.form-horizontal select,.form-horizontal textarea,.form-inline .help-inline,.form-inline .input-append,.form-inline .input-prepend,.form-inline .uneditable-input,.form-inline input,.form-inline select,.form-inline textarea,.form-search .help-inline,.form-search .input-append,.form-search .input-prepend,.form-search .uneditable-input,.form-search input,.form-search select,.form-search textarea{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-horizontal .hide,.form-inline .hide,.form-search .hide{display:none}.form-inline .btn-group,.form-inline label,.form-search .btn-group,.form-search label{display:inline-block}.form-inline .input-append,.form-inline .input-prepend,.form-search .input-append,.form-search .input-prepend{margin-bottom:0}.form-inline .checkbox,.form-inline .radio,.form-search .checkbox,.form-search .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-search .radio input[type=radio]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:after,.form-horizontal .control-group:before{display:table;content:"";line-height:0}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.btn,.center,.hero-unit,.table td.center,.table th.center{text-align:center}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal .input-append+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}.control-label .hasPopover,.control-label .hasTooltip{display:inline-block}.subform-repeatable-wrapper .btn-group>.btn.button{min-width:0}.subform-repeatable-wrapper .ui-sortable-helper{background:#fff}.subform-repeatable-wrapper tr.ui-sortable-helper{display:table}@media (min-width:980px) and (max-width:1215px){.float-cols .control-label{float:none}.float-cols .controls{margin-left:0}}.dropdown,.dropup{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu>li>a,.dropdown-submenu:hover>.dropdown-menu,.open>.dropdown-menu{display:block}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu .menuitem-group{margin:4px 1px;overflow:hidden;border-top:1px solid #eee;border-bottom:1px solid #eee;background-color:#eee;color:#555;text-transform:capitalize;font-size:95%;padding:3px 20px}.dropdown-menu>li>a{padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#fff;background-color:#0081c2;background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);text-decoration:none}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{outline:0;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:default}.open{*z-index:1000}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.alert .close,.btn-group,.btn-group>.btn,.collapse,.dropdown-submenu{position:relative}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:6px 6px 6px 6px;-moz-border-radius:6px;border-radius:6px}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent transparent transparent #ccc;border-style:solid;border-width:5px 0 5px 5px;margin-top:5px;margin-right:-10px}.btn,.btn-group{display:inline-block;*zoom:1}.btn-block,input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.alert-options,.close{float:right;text-shadow:0 1px 0 #fff;color:#000;line-height:20px}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-small,.well-small{-webkit-border-radius:3px;-moz-border-radius:3px}.well-small{padding:9px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{font-size:20px;font-weight:700;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:3;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.alert-options{opacity:.2;filter:alpha(opacity=20)}.alert-options:focus,.alert-options:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.btn{*display:inline;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn.active,.btn.disabled,.btn:active,.btn:focus,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:first-child{*margin-left:0}.btn:focus,.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.active,.btn:active{background-color:#ccc\9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.accordion-toggle,.alert .close,.btn-link{cursor:pointer}.btn-danger,.btn-info,.btn-inverse,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class*=" icon-"],.btn-large [class^=icon-]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;border-radius:3px}.btn-small [class*=" icon-"],.btn-small [class^=icon-]{margin-top:0}.btn-mini [class*=" icon-"],.btn-mini [class^=icon-]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}.btn-danger.active,.btn-info.active,.btn-inverse.active,.btn-primary.active,.btn-success.active,.btn-warning.active{color:rgba(255,255,255,.75)}.btn-primary{color:#fff;background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);border-color:#04c #04c #002a80;*background-color:#04c}.btn-primary.active,.btn-primary.disabled,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary.active,.btn-primary:active{background-color:#039\9}.btn-warning{color:#fff;background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);border-color:#f89406 #f89406 #ad6704;*background-color:#f89406}.btn-warning.active,.btn-warning.disabled,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning.active,.btn-warning:active{background-color:#c67605\9}.btn-danger{color:#fff;background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);border-color:#bd362f #bd362f #802420;*background-color:#bd362f}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger.active,.btn-danger:active{background-color:#942a25\9}.btn-success{color:#fff;background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);border-color:#51a351 #51a351 #387038;*background-color:#51a351}.btn-success.active,.btn-success.disabled,.btn-success:active,.btn-success:focus,.btn-success:hover,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success.active,.btn-success:active{background-color:#408140\9}.btn-info{color:#fff;background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);border-color:#2f96b4 #2f96b4 #1f6377;*background-color:#2f96b4}.btn-info.active,.btn-info.disabled,.btn-info:active,.btn-info:focus,.btn-info:hover,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info.active,.btn-info:active{background-color:#24748c\9}.btn-inverse{color:#fff;background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);border-color:#222 #222 #000;*background-color:#222}.btn-inverse.active,.btn-inverse.disabled,.btn-inverse:active,.btn-inverse:focus,.btn-inverse:hover,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse.active,.btn-inverse:active{background-color:#080808\9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}.btn-group>.btn,.btn-link{-webkit-border-radius:0;-moz-border-radius:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;color:#08c;border-radius:0}.btn-link:focus,.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{*display:inline;font-size:0;vertical-align:middle;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn{margin-left:5px}.btn-group>.btn{border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.small,.tooltip{font-size:11px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px;border-left-width:5px;border-right-width:5px;border-top-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-danger .caret,.btn-info .caret,.btn-inverse .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0 0 .5em}.alert .close{top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success h4{color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info,.alert-info h4{color:#3a87ad}.alert-info{background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.invisible,.row-fluid .row-reveal{visibility:hidden}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.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{padding:8px;color:#fff;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.row-odd,a.disabled,a.disabled:hover{background-color:transparent}.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.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}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.affix{position:fixed}iframe,svg{max-width:100%}a.disabled,a.disabled:hover{color:#999;cursor:default;text-decoration:none}.hero-unit .lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}.btn .caret{margin-bottom:7px}.btn.btn-micro .caret{margin:5px 0}body.modal{padding-top:0}.row-even,.row-odd{padding:5px;width:99%;border-bottom:1px solid #ddd}.row-even{background-color:#f9f9f9}.row-fluid:hover .row-reveal{visibility:visible}.btn-wide{width:80%}.nav-list>li.offset>a{padding-left:30px;font-size:12px}.btn-group>.btn-micro,.btn-micro{font-size:10px}.blog-item-rule,.blog-row-rule{border:0}.row-fluid .offset1{margin-left:8.38297872%}.row-fluid .offset2{margin-left:16.89361702%}.row-fluid .offset3{margin-left:25.40425532%}.row-fluid .offset4{margin-left:33.91489361%}.row-fluid .offset5{margin-left:42.42553191%}.row-fluid .offset6{margin-left:50.93617021%}.row-fluid .offset7{margin-left:59.4468085%}.row-fluid .offset8{margin-left:67.9574468%}.row-fluid .offset9{margin-left:76.4680851%}.row-fluid .offset10{margin-left:84.9787234%}.row-fluid .offset11{margin-left:91.48936169%}.navbar .nav>li>a.btn{padding:4px 10px;line-height:18px}.nav-tabs.nav-dark{border-bottom:1px solid #333;text-shadow:1px 1px 1px #000}.nav-tabs.nav-dark>li>a{color:#F8F8F8}.nav-tabs.nav-dark>li>a:hover{border-color:#333 #333 #111;background-color:#777}.nav-tabs.nav-dark>.active>a,.nav-tabs.nav-dark>.active>a:hover{color:#fff;background-color:#555;border:1px solid #222;border-bottom-color:transparent}.thumbnail.pull-left{margin:0 10px 10px 0}.thumbnail.pull-right{margin:0 0 10px 10px}.width-10{width:10px}.width-20{width:20px}.width-30{width:30px}.width-40{width:40px}.width-50{width:50px}.width-60{width:60px}.width-70{width:70px}.width-80{width:80px}.width-90{width:90px}.width-100{width:100px}.height-10{height:10px}.height-20{height:20px}.height-30{height:30px}.height-40{height:40px}.height-50{height:50px}.height-60{height:60px}.height-70{height:70px}.height-80{height:80px}.height-90{height:90px}.height-100{height:100px}hr.hr-condensed{margin:10px 0}.list-striped,.row-striped{list-style:none;line-height:18px;text-align:left;vertical-align:middle;border-top:1px solid #ddd;margin-left:0}.list-striped dd,.list-striped li,.row-striped .row,.row-striped .row-fluid{border-bottom:1px solid #ddd;padding:8px}.list-striped dd:nth-child(odd),.list-striped li:nth-child(odd),.row-striped .row-fluid:nth-child(odd),.row-striped .row:nth-child(odd){background-color:#f9f9f9}.list-striped dd:hover,.list-striped li:hover,.row-striped .row-fluid:hover,.row-striped .row:hover{background-color:#f5f5f5}.row-striped .row-fluid{width:100%;box-sizing:border-box}.row-striped .row-fluid [class*=span]{min-height:10px;margin-left:8px}.row-striped .row-fluid [class*=span]:first-child{margin-left:0}.list-condensed li,.row-condensed .row,.row-condensed .row-fluid{padding:4px 5px}.list-bordered,.row-bordered{list-style:none;line-height:18px;text-align:left;vertical-align:middle;margin-left:0;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.radio.btn-group input[type=radio]{display:none}.radio.btn-group>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio.btn-group>label:first-of-type{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}fieldset.radio.btn-group{padding-left:0}.iframe-bordered{border:1px solid #ddd}.tab-content{overflow:visible}.tabs-left .tab-content{overflow:auto}.nav-tabs>li>span{display:block;margin-right:2px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;padding:8px 12px}.btn-micro{padding:1px 4px;line-height:8px}.tip-wrap{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;z-index:100}.dropdown-menu,.tip-text,.tooltip-inner{text-align:left}.page-header{margin:2px 0 10px;padding-bottom:5px}.input-append>.add-on,.input-prepend>.add-on{vertical-align:top}.input-prepend .chzn-container-single .chzn-single{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend .chzn-container-single .chzn-single-with-drop{-webkit-border-radius:0 3px 0 0;-moz-border-radius:0 3px 0 0;border-radius:0 3px 0 0}.input-append .chzn-container-single .chzn-single{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .chzn-container-single .chzn-single-with-drop{-webkit-border-radius:3px 0 0 0;-moz-border-radius:3px 0 0;border-radius:3px 0 0}.input-prepend.input-append .chzn-container-single .chzn-single,.input-prepend.input-append .chzn-container-single .chzn-single-with-drop{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.element-invisible{position:absolute;padding:0;margin:0;border:0;height:1px;width:1px;overflow:hidden}.element-invisible:focus{width:auto;height:auto;overflow:auto;background:#eee;color:#000;padding:1em}.form-vertical .control-label{float:none;width:auto;padding-right:0;padding-top:0;text-align:left}.form-vertical .controls{margin-left:0}.width-auto{width:auto}.btn-group .chzn-results{white-space:normal}.accordion-body.in:hover{overflow:visible}.invalid{color:#9d261d;font-weight:700}input.invalid{border:1px solid #9d261d;background:#f2dede}select.chzn-done.invalid+.chzn-container.chzn-container-multi>ul.chzn-choices,select.chzn-done.invalid+.chzn-container.chzn-container-single>a.chzn-single{border-color:#9d261d;color:#9d261d}.tooltip{max-width:400px}.tooltip-inner{max-width:none;text-shadow:none}th .tooltip-inner{font-weight:400}.tooltip.hasimage{opacity:1}.btn-group>.btn+.dropdown-backdrop+.btn{margin-left:-1px}.btn-group>.btn+.dropdown-backdrop+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group>.btn-mini+.dropdown-backdrop+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group>.btn-small+.dropdown-backdrop+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-backdrop+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.alert-link{font-weight:700}.alert .alert-link{color:#a47e3c}.alert-success .alert-link{color:#356635}.alert-danger .alert-link,.alert-error .alert-link{color:#953b39}.alert-info .alert-link{color:#2d6987}@font-face{font-family:IcoMoon;src:url(../../../../media/jui/fonts/IcoMoon.eot);src:url(../../../../media/jui/fonts/IcoMoon.eot?#iefix) format('embedded-opentype'),url(../../../../media/jui/fonts/IcoMoon.woff) format('woff'),url(../../../../media/jui/fonts/IcoMoon.ttf) format('truetype'),url(../../../../media/jui/fonts/IcoMoon.svg#IcoMoon) format('svg');font-weight:400;font-style:normal}[data-icon]:before{font-family:IcoMoon;content:attr(data-icon);speak:none}[class*=" icon-"],[class^=icon-]{display:inline-block;width:14px;height:14px;margin-right:.25em;line-height:14px}[class*=" icon-"]:before,[class^=icon-]:before{font-family:IcoMoon;font-style:normal;speak:none}[class*=" icon-"].disabled,[class^=icon-].disabled{font-weight:400}.icon-joomla:before{content:"\e200"}.icon-arrow-up:before,.icon-chevron-up:before,.icon-uparrow:before{content:"\e005"}.icon-arrow-right:before,.icon-chevron-right:before,.icon-rightarrow:before{content:"\e006"}.icon-arrow-down:before,.icon-chevron-down:before,.icon-downarrow:before{content:"\e007"}.icon-arrow-left:before,.icon-chevron-left:before,.icon-leftarrow:before{content:"\e008"}.icon-arrow-first:before{content:"\e003"}.icon-arrow-last:before{content:"\e004"}.icon-arrow-up-2:before{content:"\e009"}.icon-arrow-right-2:before{content:"\e00a"}.icon-arrow-down-2:before{content:"\e00b"}.icon-arrow-left-2:before{content:"\e00c"}.icon-arrow-up-3:before{content:"\e00f"}.icon-arrow-right-3:before{content:"\e010"}.icon-arrow-down-3:before{content:"\e011"}.icon-arrow-left-3:before{content:"\e012"}.icon-menu-2:before{content:"\e00e"}.icon-arrow-up-4:before{content:"\e201"}.icon-arrow-right-4:before{content:"\e202"}.icon-arrow-down-4:before{content:"\e203"}.icon-arrow-left-4:before{content:"\e204"}.icon-redo:before,.icon-share:before{content:"\27"}.icon-undo:before{content:"\28"}.icon-forward-2:before{content:"\e205"}.icon-backward-2:before,.icon-reply:before{content:"\e206"}.icon-redo-2:before,.icon-refresh:before,.icon-unblock:before{content:"\6c"}.icon-undo-2:before{content:"\e207"}.icon-move:before{content:"\7a"}.icon-expand:before{content:"\66"}.icon-contract:before{content:"\67"}.icon-expand-2:before{content:"\68"}.icon-contract-2:before{content:"\69"}.icon-play:before{content:"\e208"}.icon-pause:before{content:"\e209"}.icon-stop:before{content:"\e210"}.icon-backward:before,.icon-previous:before{content:"\7c"}.icon-forward:before,.icon-next:before{content:"\7b"}.icon-first:before{content:"\7d"}.icon-last:before{content:"\e000"}.icon-play-circle:before{content:"\e00d"}.icon-pause-circle:before{content:"\e211"}.icon-stop-circle:before{content:"\e212"}.icon-backward-circle:before{content:"\e213"}.icon-forward-circle:before{content:"\e214"}.icon-loop:before{content:"\e001"}.icon-shuffle:before{content:"\e002"}.icon-search:before{content:"\53"}.icon-zoom-in:before{content:"\64"}.icon-zoom-out:before{content:"\65"}.icon-apply:before,.icon-edit:before,.icon-pencil:before{content:"\2b"}.icon-pencil-2:before{content:"\2c"}.icon-brush:before{content:"\3b"}.icon-plus-2:before,.icon-save-new:before{content:"\5d"}.icon-minus-2:before,.icon-minus-sign:before{content:"\5e"}.icon-cancel-2:before,.icon-delete:before,.icon-remove:before{content:"\49"}.icon-checkmark:before,.icon-ok:before,.icon-publish:before,.icon-save:before{content:"\47"}.icon-new:before,.icon-plus:before{content:"\2a"}.icon-plus-circle:before{content:"\e215"}.icon-minus:before,.icon-not-ok:before{content:"\4b"}.icon-ban-circle:before,.icon-minus-circle:before{content:"\e216"}.icon-cancel:before,.icon-unpublish:before{content:"\4a"}.icon-cancel-circle:before{content:"\e217"}.icon-checkmark-2:before{content:"\e218"}.icon-checkmark-circle:before{content:"\e219"}.icon-info:before{content:"\e220"}.icon-info-2:before,.icon-info-circle:before{content:"\e221"}.icon-help:before,.icon-question-sign:before,.icon-question:before{content:"\45"}.icon-question-2:before,.icon-question-circle:before{content:"\e222"}.icon-notification:before{content:"\e223"}.icon-notification-2:before,.icon-notification-circle:before{content:"\e224"}.icon-pending:before,.icon-warning:before{content:"\48"}.icon-warning-2:before,.icon-warning-circle:before{content:"\e225"}.icon-checkbox-unchecked:before{content:"\3d"}.icon-checkbox-checked:before,.icon-checkbox:before,.icon-checkin:before{content:"\3e"}.icon-checkbox-partial:before{content:"\3f"}.icon-square:before{content:"\e226"}.icon-radio-unchecked:before{content:"\e227"}.icon-generic:before,.icon-radio-checked:before{content:"\e228"}.icon-circle:before{content:"\e229"}.icon-signup:before{content:"\e230"}.icon-grid-view:before,.icon-grid:before{content:"\58"}.icon-grid-2:before,.icon-grid-view-2:before{content:"\59"}.icon-menu:before{content:"\5a"}.icon-list-view:before,.icon-list:before{content:"\31"}.icon-list-2:before{content:"\e231"}.icon-menu-3:before{content:"\e232"}.icon-folder-open:before,.icon-folder:before{content:"\2d"}.icon-folder-2:before,.icon-folder-close:before{content:"\2e"}.icon-folder-plus:before{content:"\e234"}.icon-folder-minus:before{content:"\e235"}.icon-folder-3:before{content:"\e236"}.icon-folder-plus-2:before{content:"\e237"}.icon-folder-remove:before{content:"\e238"}.icon-file:before{content:"\e016"}.icon-file-2:before{content:"\e239"}.icon-file-add:before,.icon-file-plus:before{content:"\29"}.icon-file-minus:before{content:"\e017"}.icon-file-check:before{content:"\e240"}.icon-file-remove:before{content:"\e241"}.icon-copy:before,.icon-save-copy:before{content:"\e018"}.icon-stack:before{content:"\e242"}.icon-tree:before{content:"\e243"}.icon-tree-2:before{content:"\e244"}.icon-paragraph-left:before{content:"\e246"}.icon-paragraph-center:before{content:"\e247"}.icon-paragraph-right:before{content:"\e248"}.icon-paragraph-justify:before{content:"\e249"}.icon-screen:before{content:"\e01c"}.icon-tablet:before{content:"\e01d"}.icon-mobile:before{content:"\e01e"}.icon-box-add:before{content:"\51"}.icon-box-remove:before{content:"\52"}.icon-download:before{content:"\e021"}.icon-upload:before{content:"\e022"}.icon-home:before{content:"\21"}.icon-home-2:before{content:"\e250"}.icon-new-tab:before,.icon-out-2:before{content:"\e024"}.icon-new-tab-2:before,.icon-out-3:before{content:"\e251"}.icon-link:before{content:"\e252"}.icon-image:before,.icon-picture:before{content:"\2f"}.icon-images:before,.icon-pictures:before{content:"\30"}.icon-color-palette:before,.icon-palette:before{content:"\e014"}.icon-camera:before{content:"\55"}.icon-camera-2:before,.icon-video:before{content:"\e015"}.icon-play-2:before,.icon-video-2:before,.icon-youtube:before{content:"\56"}.icon-music:before{content:"\57"}.icon-user:before{content:"\22"}.icon-users:before{content:"\e01f"}.icon-vcard:before{content:"\6d"}.icon-address:before{content:"\70"}.icon-out:before,.icon-share-alt:before{content:"\26"}.icon-enter:before{content:"\e257"}.icon-exit:before{content:"\e258"}.icon-comment:before,.icon-comments:before{content:"\24"}.icon-comments-2:before{content:"\25"}.icon-quote:before,.icon-quotes-left:before{content:"\60"}.icon-quote-2:before,.icon-quotes-right:before{content:"\61"}.icon-bubble-quote:before,.icon-quote-3:before{content:"\e259"}.icon-phone:before{content:"\e260"}.icon-phone-2:before{content:"\e261"}.icon-envelope:before,.icon-mail:before{content:"\4d"}.icon-envelope-opened:before,.icon-mail-2:before{content:"\4e"}.icon-drawer:before,.icon-unarchive:before{content:"\4f"}.icon-archive:before,.icon-drawer-2:before{content:"\50"}.icon-briefcase:before{content:"\e020"}.icon-tag:before{content:"\e262"}.icon-tag-2:before{content:"\e263"}.icon-tags:before{content:"\e264"}.icon-tags-2:before{content:"\e265"}.icon-cog:before,.icon-options:before{content:"\38"}.icon-cogs:before{content:"\37"}.icon-screwdriver:before,.icon-tools:before{content:"\36"}.icon-wrench:before{content:"\3a"}.icon-equalizer:before{content:"\39"}.icon-dashboard:before{content:"\78"}.icon-switch:before{content:"\e266"}.icon-filter:before{content:"\54"}.icon-purge:before,.icon-trash:before{content:"\4c"}.icon-checkedout:before,.icon-lock:before,.icon-locked:before{content:"\23"}.icon-unlock:before{content:"\e267"}.icon-key:before{content:"\5f"}.icon-support:before{content:"\46"}.icon-database:before{content:"\62"}.icon-scissors:before{content:"\e268"}.icon-health:before{content:"\6a"}.icon-wand:before{content:"\6b"}.icon-eye-open:before,.icon-eye:before{content:"\3c"}.icon-eye-2:before,.icon-eye-blocked:before,.icon-eye-close:before{content:"\e269"}.icon-clock:before{content:"\6e"}.icon-compass:before{content:"\6f"}.icon-broadcast:before,.icon-connection:before,.icon-wifi:before{content:"\e01b"}.icon-book:before{content:"\e271"}.icon-flash:before,.icon-lightning:before{content:"\79"}.icon-print:before,.icon-printer:before{content:"\e013"}.icon-feed:before{content:"\71"}.icon-calendar:before{content:"\43"}.icon-calendar-2:before{content:"\44"}.icon-calendar-3:before{content:"\e273"}.icon-pie:before{content:"\77"}.icon-bars:before{content:"\76"}.icon-chart:before{content:"\75"}.icon-power-cord:before{content:"\32"}.icon-cube:before{content:"\33"}.icon-puzzle:before{content:"\34"}.icon-attachment:before,.icon-flag-2:before,.icon-paperclip:before{content:"\72"}.icon-lamp:before{content:"\74"}.icon-pin:before,.icon-pushpin:before{content:"\73"}.icon-location:before{content:"\63"}.icon-shield:before{content:"\e274"}.icon-flag:before{content:"\35"}.icon-flag-3:before{content:"\e275"}.icon-bookmark:before{content:"\e023"}.icon-bookmark-2:before{content:"\e276"}.icon-heart:before{content:"\e277"}.icon-heart-2:before{content:"\e278"}.icon-thumbs-up:before{content:"\5b"}.icon-thumbs-down:before{content:"\5c"}.icon-asterisk:before,.icon-star-empty:before,.icon-unfeatured:before{content:"\40"}.icon-star-2:before{content:"\41"}.icon-default:before,.icon-featured:before,.icon-star:before{content:"\42"}.icon-smiley-happy:before,.icon-smiley:before{content:"\e279"}.icon-smiley-2:before,.icon-smiley-happy-2:before{content:"\e280"}.icon-smiley-sad:before{content:"\e281"}.icon-smiley-sad-2:before{content:"\e282"}.icon-smiley-neutral:before{content:"\e283"}.icon-smiley-neutral-2:before{content:"\e284"}.icon-cart:before{content:"\e019"}.icon-basket:before{content:"\e01a"}.icon-credit:before{content:"\e286"}.icon-credit-2:before{content:"\e287"}.icon-expired:before{content:"\4b"}.icon-edit:before{color:#2f96b4}.btn-toolbar .icon-copy:before,.icon-ok:before,.icon-publish:before,.icon-save-copy:before,.icon-save-new:before,.icon-save:before{color:#51a351}.btn-toolbar .icon-cancel:before,.icon-ban-circle:before,.icon-eye-close:before,.icon-minus-sign:before,.icon-not-ok:before,.icon-unpublish:before{color:#bd362f}.icon-default:before,.icon-expired:before,.icon-featured:before,.icon-pending:before{color:#f89406}.icon-back:before{content:"\e008"}div.rl_multiselect{margin-bottom:0}div.rl_multiselect ul.rl_multiselect-ul{margin:8px 0 0;padding:0}div.rl_multiselect ul.rl_multiselect-ul li{margin:0;padding:2px 10px;list-style:none}div.rl_multiselect ul.rl_multiselect-ul span.rl_multiselect-toggle{line-height:18px}div.rl_multiselect ul.rl_multiselect-ul label{font-size:1em;margin-left:8px}div.rl_multiselect ul.rl_multiselect-ul label.nav-header{padding:0}div.rl_multiselect ul.rl_multiselect-ul input{margin:2px 0 0 8px}div.rl_multiselect ul.rl_multiselect-ul .rl_multiselect-menu{margin:0 6px}div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu{margin:0}div.rl_multiselect ul.rl_multiselect-ul ul.dropdown-menu li{padding:0 5px;border:none}[class*=" chzn-color"].chzn-single,[class*=" chzn-color"].chzn-single .chzn-single-with-drop,[class^=chzn-color].chzn-single,[class^=chzn-color].chzn-single .chzn-single-with-drop{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.chzn-color-reverse.chzn-single[rel=value_0],.chzn-color-state.chzn-single[rel=value_1],.chzn-color.chzn-single[rel=value_1]{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.chzn-color-reverse.chzn-single[rel=value_0].active,.chzn-color-reverse.chzn-single[rel=value_0].disabled,.chzn-color-reverse.chzn-single[rel=value_0]:active,.chzn-color-reverse.chzn-single[rel=value_0]:focus,.chzn-color-reverse.chzn-single[rel=value_0]:hover,.chzn-color-reverse.chzn-single[rel=value_0][disabled],.chzn-color-state.chzn-single[rel=value_1].active,.chzn-color-state.chzn-single[rel=value_1].disabled,.chzn-color-state.chzn-single[rel=value_1]:active,.chzn-color-state.chzn-single[rel=value_1]:focus,.chzn-color-state.chzn-single[rel=value_1]:hover,.chzn-color-state.chzn-single[rel=value_1][disabled],.chzn-color.chzn-single[rel=value_1].active,.chzn-color.chzn-single[rel=value_1].disabled,.chzn-color.chzn-single[rel=value_1]:active,.chzn-color.chzn-single[rel=value_1]:focus,.chzn-color.chzn-single[rel=value_1]:hover,.chzn-color.chzn-single[rel=value_1][disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.chzn-color-reverse.chzn-single[rel=value_0].active,.chzn-color-reverse.chzn-single[rel=value_0]:active,.chzn-color-state.chzn-single[rel=value_1].active,.chzn-color-state.chzn-single[rel=value_1]:active,.chzn-color.chzn-single[rel=value_1].active,.chzn-color.chzn-single[rel=value_1]:active{background-color:#408140\9}.chzn-color-reverse.chzn-single[rel=value_1],.chzn-color-state.chzn-single[rel=value_0],.chzn-color-state.chzn-single[rel=value_-1],.chzn-color-state.chzn-single[rel=value_-2],.chzn-color.chzn-single[rel=value_0]{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.chzn-color-reverse.chzn-single[rel=value_1].active,.chzn-color-reverse.chzn-single[rel=value_1].disabled,.chzn-color-reverse.chzn-single[rel=value_1]:active,.chzn-color-reverse.chzn-single[rel=value_1]:focus,.chzn-color-reverse.chzn-single[rel=value_1]:hover,.chzn-color-reverse.chzn-single[rel=value_1][disabled],.chzn-color-state.chzn-single[rel=value_0].active,.chzn-color-state.chzn-single[rel=value_0].disabled,.chzn-color-state.chzn-single[rel=value_0]:active,.chzn-color-state.chzn-single[rel=value_0]:focus,.chzn-color-state.chzn-single[rel=value_0]:hover,.chzn-color-state.chzn-single[rel=value_0][disabled],.chzn-color-state.chzn-single[rel=value_-1].active,.chzn-color-state.chzn-single[rel=value_-1].disabled,.chzn-color-state.chzn-single[rel=value_-1]:active,.chzn-color-state.chzn-single[rel=value_-1]:focus,.chzn-color-state.chzn-single[rel=value_-1]:hover,.chzn-color-state.chzn-single[rel=value_-1][disabled],.chzn-color-state.chzn-single[rel=value_-2].active,.chzn-color-state.chzn-single[rel=value_-2].disabled,.chzn-color-state.chzn-single[rel=value_-2]:active,.chzn-color-state.chzn-single[rel=value_-2]:focus,.chzn-color-state.chzn-single[rel=value_-2]:hover,.chzn-color-state.chzn-single[rel=value_-2][disabled],.chzn-color.chzn-single[rel=value_0].active,.chzn-color.chzn-single[rel=value_0].disabled,.chzn-color.chzn-single[rel=value_0]:active,.chzn-color.chzn-single[rel=value_0]:focus,.chzn-color.chzn-single[rel=value_0]:hover,.chzn-color.chzn-single[rel=value_0][disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.chzn-color-reverse.chzn-single[rel=value_1].active,.chzn-color-reverse.chzn-single[rel=value_1]:active,.chzn-color-state.chzn-single[rel=value_0].active,.chzn-color-state.chzn-single[rel=value_0]:active,.chzn-color-state.chzn-single[rel=value_-1].active,.chzn-color-state.chzn-single[rel=value_-1]:active,.chzn-color-state.chzn-single[rel=value_-2].active,.chzn-color-state.chzn-single[rel=value_-2]:active,.chzn-color.chzn-single[rel=value_0].active,.chzn-color.chzn-single[rel=value_0]:active{background-color:#942a25\9}.controls .btn-group>.btn{min-width:50px}.controls .btn-group.btn-group-yesno>.btn{min-width:84px;padding:2px 12px}.control-label>label>h4{margin-bottom:0}.controls>fieldset{margin-bottom:0;padding-top:0;padding-bottom:0}.chzn-container .chzn-drop{z-index:1040}regularlabs/css/color.css000064400000014356152177723720011515 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
/**
 * BASED ON:
 * jQuery MiniColors: A tiny color picker built on jQuery
 * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
 * Dual-licensed under the MIT and GPL Version 2 licenses
 */
.minicolors {
  position: relative;
  display: inline-block;
  z-index: 11;
}
.minicolors-focus {
  z-index: 12;
}
.minicolors.minicolors-theme-default .minicolors-input {
  margin: 0;
  border: solid 1px #cccccc;
  font: 14px sans-serif;
  width: 65px;
  height: 16px;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
  padding: 2px;
  margin-right: -1px;
}
.minicolors-theme-default.minicolors .minicolors-input {
  vertical-align: middle;
  outline: none;
}
.minicolors-theme-default.minicolors-swatch-left .minicolors-input {
  margin-left: -1px;
  margin-right: auto;
}
.minicolors-theme-default.minicolors-focus .minicolors-input,
.minicolors-theme-default.minicolors-focus .minicolors-swatch {
  border-color: #999999;
}
.minicolors-hidden {
  position: absolute;
  left: -9999em;
}
.minicolors-swatch {
  position: relative;
  width: 20px;
  height: 20px;
  text-align: left;
  background: url(../images/minicolors.png) -80px 0;
  border: solid 1px #cccccc;
  vertical-align: middle;
  display: inline-block;
}
.minicolors-swatch span {
  position: absolute;
  width: 100%;
  height: 100%;
  background: none;
  -webkit-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  -moz-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
  display: inline-block;
}
.minicolors-panel {
  position: absolute;
  top: 26px;
  left: 0;
  width: 173px;
  height: 152px;
  background: white;
  border: solid 1px #cccccc;
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
  -moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
  box-shadow: 0 0 20px rgba(0, 0, 0, .2);
  display: none;
}
.minicolors-position-top .minicolors-panel {
  top: -156px;
}
.minicolors-position-left .minicolors-panel {
  left: -83px;
}
.minicolors-position-left.minicolors-with-opacity .minicolors-panel {
  left: -104px;
}
.minicolors-with-opacity .minicolors-panel {
  width: 194px;
}
.minicolors .minicolors-grid {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 150px;
  height: 150px;
  background: url(../images/minicolors.png) -120px 0;
  cursor: crosshair;
}
.minicolors .minicolors-grid-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 150px;
  height: 150px;
  background: none;
}
.minicolors-slider-saturation .minicolors-grid {
  background-position: -420px 0;
}
.minicolors-slider-saturation .minicolors-grid-inner {
  background: url(../images/minicolors.png) -270px 0;
}
.minicolors-slider-brightness .minicolors-grid {
  background-position: -570px 0;
}
.minicolors-slider-brightness .minicolors-grid-inner {
  background: black;
}
.minicolors-slider-wheel .minicolors-grid {
  background-position: -720px 0;
}
.minicolors-slider,
.minicolors-opacity-slider {
  position: absolute;
  top: 1px;
  left: 152px;
  width: 20px;
  height: 150px;
  background: white url(../images/minicolors.png) 0 0;
  cursor: crosshair;
}
.minicolors-slider-saturation .minicolors-slider {
  background-position: -60px 0;
}
.minicolors-slider-brightness .minicolors-slider {
  background-position: -20px 0;
}
.minicolors-slider-wheel .minicolors-slider {
  background-position: -20px 0;
}
.minicolors-opacity-slider {
  left: 173px;
  background-position: -40px 0;
  display: none;
}
.minicolors-with-opacity .minicolors-opacity-slider {
  display: block;
}
.minicolors-grid .minicolors-picker {
  position: absolute;
  top: 70px;
  left: 70px;
  width: 10px;
  height: 10px;
  border: solid 1px black;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
  margin-top: -6px;
  margin-left: -6px;
  background: none;
}
.minicolors-grid .minicolors-picker span {
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  border: solid 2px white;
}
.minicolors-picker {
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 2px;
  background: white;
  border: solid 1px black;
  margin-top: -2px;
}
.minicolors-inline .minicolors-input,
.minicolors-inline .minicolors-swatch {
  display: none;
}
.minicolors-inline .minicolors-panel {
  position: relative;
  top: auto;
  left: auto;
  display: inline-block;
}
.minicolors-theme-bootstrap .minicolors-input {
  padding: 4px 6px;
  padding-left: 30px;
  background-color: white;
  border: 1px solid #cccccc;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  color: #555555;
  font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
  font-size: 14px;
  height: 19px;
  margin: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.minicolors-theme-bootstrap.minicolors-focus .minicolors-input {
  border-color: #6fb8f1;
  -webkit-box-shadow: 0 0 10px #6fb8f1;
  -moz-box-shadow: 0 0 10px #6fb8f1;
  box-shadow: 0 0 10px #6fb8f1;
  outline: none;
}
.minicolors-theme-bootstrap .minicolors-swatch {
  position: absolute;
  left: 4px;
  top: 4px;
  z-index: 12;
}
.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-input {
  padding-left: 6px;
  padding-right: 30px;
}
.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-swatch {
  left: auto;
  right: 4px;
}
.minicolors-theme-bootstrap .minicolors-panel {
  top: 28px;
  z-index: 13;
}
.minicolors-theme-bootstrap.minicolors-position-top .minicolors-panel {
  top: -154px;
}
.minicolors-theme-bootstrap.minicolors-position-left .minicolors-panel {
  left: -63px;
}
.minicolors-theme-bootstrap.minicolors-position-left.minicolors-with-opacity .minicolors-panel {
  left: -84px;
}
regularlabs/css/color.min.css000064400000011466152177723720012276 0ustar00.minicolors{position:relative;display:inline-block;z-index:11}.minicolors-focus{z-index:12}.minicolors.minicolors-theme-default .minicolors-input{margin:0 -1px 0 0;border:1px solid #ccc;font:14px sans-serif;width:65px;height:16px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.04);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.04);box-shadow:inset 0 2px 4px rgba(0,0,0,.04);padding:2px}.minicolors-theme-default.minicolors .minicolors-input{vertical-align:middle;outline:0}.minicolors-theme-default.minicolors-swatch-left .minicolors-input{margin-left:-1px;margin-right:auto}.minicolors-theme-default.minicolors-focus .minicolors-input,.minicolors-theme-default.minicolors-focus .minicolors-swatch{border-color:#999}.minicolors-hidden{position:absolute;left:-9999em}.minicolors-swatch{position:relative;width:20px;height:20px;text-align:left;background:url(../images/minicolors.png) -80px 0;border:1px solid #ccc;vertical-align:middle;display:inline-block}.minicolors-swatch span{position:absolute;width:100%;height:100%;background:0 0;-webkit-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);box-shadow:inset 0 9px 0 rgba(255,255,255,.1);display:inline-block}.minicolors-panel{position:absolute;top:26px;left:0;width:173px;height:152px;background:#fff;border:1px solid #ccc;-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);-moz-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);display:none}.minicolors-position-top .minicolors-panel{top:-156px}.minicolors-position-left .minicolors-panel{left:-83px}.minicolors-position-left.minicolors-with-opacity .minicolors-panel{left:-104px}.minicolors-with-opacity .minicolors-panel{width:194px}.minicolors .minicolors-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background:url(../images/minicolors.png) -120px 0;cursor:crosshair}.minicolors .minicolors-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px;background:0 0}.minicolors-slider-saturation .minicolors-grid{background-position:-420px 0}.minicolors-slider-saturation .minicolors-grid-inner{background:url(../images/minicolors.png) -270px 0}.minicolors-slider-brightness .minicolors-grid{background-position:-570px 0}.minicolors-slider-brightness .minicolors-grid-inner{background:#000}.minicolors-slider-wheel .minicolors-grid{background-position:-720px 0}.minicolors-opacity-slider,.minicolors-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background:url(../images/minicolors.png) #fff;cursor:crosshair}.minicolors-slider-saturation .minicolors-slider{background-position:-60px 0}.minicolors-slider-brightness .minicolors-slider,.minicolors-slider-wheel .minicolors-slider{background-position:-20px 0}.minicolors-opacity-slider{left:173px;background-position:-40px 0;display:none}.minicolors-with-opacity .minicolors-opacity-slider{display:block}.minicolors-grid .minicolors-picker{position:absolute;top:70px;left:70px;width:10px;height:10px;border:1px solid #000;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;margin-top:-6px;margin-left:-6px;background:0 0}.minicolors-grid .minicolors-picker span{position:absolute;top:0;left:0;width:6px;height:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;border:2px solid #fff}.minicolors-picker{position:absolute;top:0;left:0;width:18px;height:2px;background:#fff;border:1px solid #000;margin-top:-2px}.minicolors-inline .minicolors-input,.minicolors-inline .minicolors-swatch{display:none}.minicolors-inline .minicolors-panel{position:relative;top:auto;left:auto;display:inline-block}.minicolors-theme-bootstrap .minicolors-input{padding:4px 6px 4px 30px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;color:#555;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:14px;height:19px;margin:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.minicolors-theme-bootstrap.minicolors-focus .minicolors-input{border-color:#6fb8f1;-webkit-box-shadow:0 0 10px #6fb8f1;-moz-box-shadow:0 0 10px #6fb8f1;box-shadow:0 0 10px #6fb8f1;outline:0}.minicolors-theme-bootstrap .minicolors-swatch{position:absolute;left:4px;top:4px;z-index:12}.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-input{padding-left:6px;padding-right:30px}.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-swatch{left:auto;right:4px}.minicolors-theme-bootstrap .minicolors-panel{top:28px;z-index:13}.minicolors-theme-bootstrap.minicolors-position-top .minicolors-panel{top:-154px}.minicolors-theme-bootstrap.minicolors-position-left .minicolors-panel{left:-63px}.minicolors-theme-bootstrap.minicolors-position-left.minicolors-with-opacity .minicolors-panel{left:-84px}regularlabs/css/codemirror.min.css000064400000001003152177723720013307 0ustar00.rl_codemirror .CodeMirror{height:100px;min-height:100px;max-height:none;padding-bottom:15px}.rl_codemirror .cm-resize-handle{position:relative;background:#f7f7f7;height:15px;user-select:none;cursor:ns-resize;border-top:1px solid #ccc;border-bottom:1px solid #ccc;z-index:2}.rl_codemirror .cm-resize-handle:before{position:absolute;left:50%;content:'\2261';color:#999;line-height:13px;font-size:15px}.rl_codemirror .cm-resize-handle:hover{background:#f0f0f0}.rl_codemirror .cm-resize-handle:hover:before{color:#000}regularlabs/js/codemirror.js000064400000017025152177723720012210 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var RegularLabsCodeMirror = null;

(function($) {
	"use strict";

	RegularLabsCodeMirror = {
		init: function(id) {
			if (!$('#rl_codemirror_' + id + ' .CodeMirror').length) {
				setTimeout(function() {
					RegularLabsCodeMirror.init(id);
				}, 100);
				return;
			}

			RegularLabsCodeMirror.resizeWidth(id);
			cmResize(Joomla.editors.instances[id], {
				minHeight      : 50,
				resizableWidth : false,        //Which direction the editor can be resized (default: both width and height).
				resizableHeight: true,
				cssClass       : 'cm-resize-handle' //CSS class to use on the *default* resize handle.
			});

			$(window).resize(function() {
				RegularLabsCodeMirror.resizeWidth(id);
			});
		},

		resizeWidth: function(id) {
			$('#rl_codemirror_' + id + ' .CodeMirror').width(100).css('visibility', 'hidden');
			setTimeout(function() {
				$('#rl_codemirror_' + id + ' .CodeMirror').each(function() {
					var new_width = $(this).parent().width();

					if (new_width <= 100) {
						setTimeout(function() {
							RegularLabsCodeMirror.resizeWidth(id);
						}, 100);
						return;
					}

					$(this).width(new_width).css('visibility', 'visible');
				})
			}, 100);
		}
	};
})(jQuery);

(function(global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
		typeof define === 'function' && define.amd ? define(factory) :
			(global.cmResize = factory());
}(this, (function() {
	'use strict';

	function dragTracker(options) {

		var ep = Element.prototype;
		if (!ep.matches) ep.matches = ep.msMatchesSelector || ep.webkitMatchesSelector;
		if (!ep.closest) ep.closest = function(s) {
			var node = this;
			do {
				if (node.matches(s)) return node;
				node = node.tagName === 'svg' ? node.parentNode : node.parentElement;
			} while (node);

			return null;
		};

		options            = options || {};
		var container      = options.container || document.documentElement,
			selector       = options.selector,
			callback       = options.callback || console.log,
			callbackStart  = options.callbackDragStart,
			callbackEnd    = options.callbackDragEnd,

			callbackClick  = options.callbackClick,
			propagate      = options.propagateEvents,
			roundCoords    = options.roundCoords !== false,
			dragOutside    = options.dragOutside !== false,

			handleOffset   = options.handleOffset || options.handleOffset !== false;
		var offsetToCenter = null;
		switch (handleOffset) {
			case 'center':
				offsetToCenter = true;
				break;
			case 'topleft':
			case 'top-left':
				offsetToCenter = false;
				break;
		}

		var dragged     = void 0,
			mouseOffset = void 0,
			dragStart   = void 0;

		function getMousePos(e, elm, offset, stayWithin) {
			var x = e.clientX,
				y = e.clientY;

			function respectBounds(value, min, max) {
				return Math.max(min, Math.min(value, max));
			}

			if (elm) {
				var bounds = elm.getBoundingClientRect();
				x -= bounds.left;
				y -= bounds.top;

				if (offset) {
					x -= offset[0];
					y -= offset[1];
				}
				if (stayWithin) {
					x = respectBounds(x, 0, bounds.width);
					y = respectBounds(y, 0, bounds.height);
				}

				if (elm !== container) {
					var center = offsetToCenter !== null ? offsetToCenter
						: elm.nodeName === 'circle' || elm.nodeName === 'ellipse';

					if (center) {
						x -= bounds.width / 2;
						y -= bounds.height / 2;
					}
				}
			}
			return roundCoords ? [Math.round(x), Math.round(y)] : [x, y];
		}

		function stopEvent(e) {
			e.preventDefault();
			if (!propagate) {
				e.stopPropagation();
			}
		}

		function onDown(e) {
			if (selector) {
				dragged = selector instanceof Element ? selector.contains(e.target) ? selector : null : e.target.closest(selector);
			} else {
				dragged = {};
			}

			if (dragged) {
				stopEvent(e);

				mouseOffset = selector && handleOffset ? getMousePos(e, dragged) : [0, 0];
				dragStart   = getMousePos(e, container, mouseOffset);
				if (roundCoords) {
					dragStart = dragStart.map(Math.round);
				}

				if (callbackStart) {
					callbackStart(dragged, dragStart);
				}
			}
		}

		function onMove(e) {
			if (!dragged) {
				return;
			}
			stopEvent(e);

			var pos = getMousePos(e, container, mouseOffset, !dragOutside);
			callback(dragged, pos, dragStart);
		}

		function onEnd(e) {
			if (!dragged) {
				return;
			}

			if (callbackEnd || callbackClick) {
				var pos = getMousePos(e, container, mouseOffset, !dragOutside);

				if (callbackClick && dragStart[0] === pos[0] && dragStart[1] === pos[1]) {
					callbackClick(dragged, dragStart);
				}
				if (callbackEnd) {
					callbackEnd(dragged, pos, dragStart);
				}
			}
			dragged = null;
		}

		container.addEventListener('mousedown', function(e) {
			if (isLeftButton(e)) {
				onDown(e);
			}
		});
		container.addEventListener('touchstart', function(e) {
			relayTouch(e, onDown);
		});

		window.addEventListener('mousemove', function(e) {
			if (!dragged) {
				return;
			}

			if (isLeftButton(e)) {
				onMove(e);
			} else {
				onEnd(e);
			}
		});
		window.addEventListener('touchmove', function(e) {
			relayTouch(e, onMove);
		});

		window.addEventListener('mouseup', function(e) {
			if (dragged && !isLeftButton(e)) {
				onEnd(e);
			}
		});

		function onTouchEnd(e) {
			onEnd(tweakTouch(e));
		}

		container.addEventListener('touchend', onTouchEnd);
		container.addEventListener('touchcancel', onTouchEnd);

		function isLeftButton(e) {
			return e.buttons !== undefined ? e.buttons === 1 :
				e.which === 1;
		}

		function relayTouch(e, handler) {
			if (e.touches.length !== 1) {
				onEnd(e);
				return;
			}

			handler(tweakTouch(e));
		}

		function tweakTouch(e) {
			var touch = e.targetTouches[0];
			if (!touch) {
				touch = e.changedTouches[0];
			}

			touch.preventDefault  = e.preventDefault.bind(e);
			touch.stopPropagation = e.stopPropagation.bind(e);
			return touch;
		}
	}

	function cmResize(cm, config) {
		config = config || {};

		var minW    = config.minWidth || 200,
			minH    = config.minHeight || 100,
			resizeW = config.resizableWidth !== false,
			resizeH = config.resizableHeight !== false,
			css     = config.cssClass || 'cm-resize-handle';

		var cmElement = cm.display.wrapper,
			cmHandle  = config.handle || function() {
				var h       = cmElement.appendChild(document.createElement('div'));
				h.className = css;
				return h;
			}();

		var vScroll = cmElement.querySelector('.CodeMirror-vscrollbar'),
			hScroll = cmElement.querySelector('.CodeMirror-hscrollbar');

		function constrainScrollbars() {
			if (!config.handle) {
				vScroll.style.bottom = '18px';
				hScroll.style.right  = '18px';
			}
		}

		cm.on('update', constrainScrollbars);
		constrainScrollbars();

		var startPos  = void 0,
			startSize = void 0;
		dragTracker({
			container: cmHandle.offsetParent,
			selector : cmHandle,

			callbackDragStart: function callbackDragStart(handle, pos) {
				startPos  = pos;
				startSize = [cmElement.clientWidth, cmElement.clientHeight];
			},
			callback         : function callback(handle, pos) {
				var diffX = pos[0] - startPos[0],
					diffY = pos[1] - startPos[1],
					cw    = resizeW ? Math.max(minW, startSize[0] + diffX) : null,
					ch    = resizeH ? Math.max(minH, startSize[1] + diffY) : null;

				cm.setSize(cw, ch);
			}
		});

		return cmHandle;
	}

	return cmResize;

})));
regularlabs/js/form.min.js000064400000010213152177723720011560 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var RegularLabsForm=null;
(function($){RegularLabsForm={getValue:function(name,escape){var $field=$('[name="'+name+'"]');if(!$field.length)$field=$('[name="'+name+'[]"]');if(!$field.length)return;var type=$field[0].type;switch(type){case "radio":$field=$('[name="'+name+'"]:checked');break;case "checkbox":return this.getValuesFromList($('[name="'+name+'[]"]:checked'),escape);case "select":case "select-one":case "select-multiple":return this.getValuesFromList($field.find("option:checked"),escape)}return this.prepareValue($field.val(),escape)},
getValuesFromList:function($elements,escape){var self=this;var values=[];$elements.each(function(){values.push(self.prepareValue($(this).val(),escape))});return values},prepareValue:function(value,escape){if(!isNaN(value)&&value.indexOf(".")<0)return parseInt(value);if(escape)value=value.replace(/"/g,'\\"');return value.trim()},toTextValue:function(str){return(str+"").replace(/^[\s-]*/,"").trim()},toSimpleValue:function(str){return(str+"").toLowerCase().replace(/[^0-9a-z]/g,"").trim()},preg_quote:function(str){return(str+
"").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}=!<>\|:])/g,"\\$1")},escape:function(str){return(str+"").replace(/(["])/g,"\\$1")},setRadio:function(id,value){value=value?1:0;document.getElements("input#jform_"+id+value+",input#jform_params_"+id+value+",input#advancedparams_"+id+value).each(function(el){el.click()})},initCheckAlls:function(id,classname){$("#"+id).attr("checked",this.allChecked(classname));$("input."+classname).click(function(){$("#"+id).attr("checked",this.allChecked(classname))})},allChecked:function(classname){return $("input."+
classname+":checkbox:not(:checked)").length<1},checkAll:function(checkbox,classname){var allchecked=this.allChecked(classname);$(checkbox).attr("checked",!allchecked);$("input."+classname).attr("checked",!allchecked)},getEditorSelection:function(editorname){var editor_textarea=document.getElementById(editorname);if(!editor_textarea)return"";var iframes=editor_textarea.parentNode.getElementsByTagName("iframe");if(!iframes.length)return"";var editor_frame=iframes[0];var contentWindow=editor_frame.contentWindow;
if(typeof contentWindow.getSelection!=="undefined"){var sel=contentWindow.getSelection();if(sel.rangeCount){var container=contentWindow.document.createElement("div");var len=sel.rangeCount;for(var i=0;i<len;++i)container.appendChild(sel.getRangeAt(i).cloneContents());return container.innerHTML}return""}if(typeof contentWindow.document.selection!=="undefined")if(contentWindow.document.selection.type=="Text")return contentWindow.document.selection.createRange().htmlText;return""},toggleSelectListSelection:function(id){var el=
document.getElement("#"+id);if(el&&el.options)for(var i=0;i<el.options.length;i++)if(!el.options[i].disabled)el.options[i].selected=!el.options[i].selected},prependTextarea:function(id,content,separator){var textarea=jQuery("#"+id);var orig_content=textarea.val().trim();if(orig_content&&separator)orig_content="\n\n"+separator+"\n\n"+orig_content;textarea.val(content+orig_content)},setToggleTitleClass:function(input,value){var el=$(input).parent().parent().parent().parent();el.removeClass("alert-success").removeClass("alert-error");
if(value===2)el.addClass("alert-error");else if(value)el.addClass("alert-success")}};$(document).ready(function(){removeEmptyControlGroups();addKeyUpOnShowOn();function removeEmptyControlGroups(){$("div.control-group > div").each(function(i,el){if($(el).html().trim()==""&&($(el).attr("class")=="control-label"||$(el).attr("class")=="controls"))$(el).remove()});$("div.control-group").each(function(i,el){if($(el).html().trim()=="")$(el).remove()});$("div.control-group > div.hide").each(function(i,el){$(el).parent().css("margin",
0)})}function addKeyUpOnShowOn(){var field_ids=[];$("[data-showon]").each(function(){var $target=$(this);var jsondata=$target.data("showon")||[];for(var i=0,len=jsondata.length;i<len;i++){field_ids.push('[name="'+jsondata[i]["field"]+'"]');field_ids.push('[name="'+jsondata[i]["field"]+'[]"]')}});$(field_ids.join(",")).on("keyup",function(){$(this).change()})}})})(jQuery);regularlabs/js/simplecategories.js000064400000001717152177723720013403 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	"use strict";

	$(document).ready(function() {
		// remove all empty control groups
		$('div.rl_simplecategory').each(function(i, el) {
			var $el = $(el);

			var func = function() {
				var new_value = $(this).val();

				if (new_value == '-1') {
					$el.find('.rl_simplecategory_value').val($el.find('.rl_simplecategory_new input').val());
					return;
				}

				$el.find('.rl_simplecategory_value').val(new_value);
			};

			$el.find('.rl_simplecategory_select select').bind('change', func).bind('keyup', func);
			$el.find('.rl_simplecategory_new input').bind('change', func).bind('keyup', func);
		});
	});
})(jQuery);
regularlabs/js/color.js000064400000056075152177723720011171 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

/**
 * BASED ON:
 * jQuery MiniColors: A tiny color picker built on jQuery
 * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
 * Dual-licensed under the MIT and GPL Version 2 licenses
 *
 */
if (jQuery) (function($) {
	$(document).ready(function() {
		$('.rl_color').minicolors();
	});

	// Yay, MiniColors!
	$.minicolors = {
		// Default settings
		defaultSettings: {
			animationSpeed : 100,
			animationEasing: 'swing',
			change         : null,
			changeDelay    : 0,
			control        : 'hue',
			defaultValue   : '',
			hide           : null,
			hideSpeed      : 100,
			inline         : false,
			letterCase     : 'lowercase',
			opacity        : false,
			position       : 'default',
			show           : null,
			showSpeed      : 100,
			swatchPosition : 'left',
			textfield      : true,
			theme          : 'default'
		}
	};

	// Public methods
	$.extend($.fn, {
		minicolors: function(method, data) {

			switch (method) {

				// Destroy the control
				case 'destroy':
					$(this).each(function() {
						destroy($(this));
					});
					return $(this);

				// Get/set opacity
				case 'opacity':
					if (data === undefined) {
						// Getter
						return $(this).attr('data-opacity');
					} else {
						// Setter
						$(this).each(function() {
							refresh($(this).attr('data-opacity', data));
						});
						return $(this);
					}

				// Get an RGB(A) object based on the current color/opacity
				case 'rgbObject':
					return rgbObject($(this), method === 'rgbaObject');

				// Get an RGB(A) string based on the current color/opacity
				case 'rgbString':
				case 'rgbaString':
					return rgbString($(this), method === 'rgbaString');

				// Get/set settings on the fly
				case 'settings':
					if (data === undefined) {
						return $(this).data('minicolors-settings');
					} else {
						// Setter
						$(this).each(function() {
							var settings = $(this).data('minicolors-settings') || {};
							destroy($(this));
							$(this).minicolors($.extend(true, settings, data));
						});
						return $(this);
					}

				// Get/set the hex color value
				case 'value':
					if (data === undefined) {
						// Getter
						return $(this).val();
					} else {
						// Setter
						$(this).each(function() {
							refresh($(this).val(data));
						});
						return $(this);
					}

				// Initializes the control
				case 'create':
				default:
					if (method !== 'create') data = method;
					$(this).each(function() {
						init($(this), data);
					});
					return $(this);

			}

		}
	});

	// Initialize input elements
	function init(input, settings) {

		var minicolors      = $('<span class="minicolors" />'),
			defaultSettings = $.minicolors.defaultSettings;

		// Do nothing if already initialized
		if (input.data('minicolors-initialized')) return;

		// Handle settings
		settings = $.extend(true, {}, defaultSettings, settings);

		// The wrapper
		minicolors
			.addClass('minicolors-theme-' + settings.theme)
			.addClass('minicolors-swatch-position-' + settings.swatchPosition)
			.toggleClass('minicolors-swatch-left', settings.swatchPosition === 'left')
			.toggleClass('minicolors-with-opacity', settings.opacity);

		// Custom positioning
		if (settings.position !== undefined) {
			$.each(settings.position.split(' '), function() {
				minicolors.addClass('minicolors-position-' + this);
			});
		}

		// The input
		input
			.addClass('minicolors-input')
			.data('minicolors-initialized', true)
			.data('minicolors-settings', settings)
			.prop('size', 7)
			.prop('maxlength', 7)
			.wrap(minicolors)
			.after(
				'<span class="minicolors-panel minicolors-slider-' + settings.control + '">' +
				'<span class="minicolors-slider">' +
				'<span class="minicolors-picker"></span>' +
				'</span>' +
				'<span class="minicolors-opacity-slider">' +
				'<span class="minicolors-picker"></span>' +
				'</span>' +
				'<span class="minicolors-grid">' +
				'<span class="minicolors-grid-inner"></span>' +
				'<span class="minicolors-picker"><span></span></span>' +
				'</span>' +
				'</span>'
			);

		// Prevent text selection in IE
		input.parent().find('.minicolors-panel').on('selectstart', function() {
			return false;
		}).end();

		// Detect swatch position
		if (settings.swatchPosition === 'left') {
			// Left
			input.before('<span class="minicolors-swatch"><span></span></span>');
		} else {
			// Right
			input.after('<span class="minicolors-swatch"><span></span></span>');
		}

		// Disable textfield
		if (!settings.textfield) input.addClass('minicolors-hidden');

		// Inline controls
		if (settings.inline) input.parent().addClass('minicolors-inline');

		updateFromInput(input);

	}

	// Returns the input back to its original state
	function destroy(input) {

		var minicolors = input.parent();

		// Revert the input element
		input
			.removeData('minicolors-initialized')
			.removeData('minicolors-settings')
			.removeProp('size')
			.removeProp('maxlength')
			.removeClass('minicolors-input');

		// Remove the wrap and destroy whatever remains
		minicolors.before(input).remove();

	}

	// Refresh the specified control
	function refresh(input) {
		updateFromInput(input);
	}

	// Shows the specified dropdown panel
	function show(input) {

		var minicolors = input.parent(),
			panel      = minicolors.find('.minicolors-panel'),
			settings   = input.data('minicolors-settings');

		// Do nothing if uninitialized, disabled, or already open
		if (!input.data('minicolors-initialized') || input.prop('disabled') || minicolors.hasClass('minicolors-focus')) return;

		hide();

		minicolors.addClass('minicolors-focus');
		panel
			.stop(true, true)
			.fadeIn(settings.showSpeed, function() {
				if (settings.show) settings.show.call(input);
			});

	}

	// Hides all dropdown panels
	function hide() {

		$('.minicolors-input').each(function() {

			var input      = $(this),
				settings   = input.data('minicolors-settings'),
				minicolors = input.parent();

			// Don't hide inline controls
			if (settings.inline) return;

			minicolors.find('.minicolors-panel').fadeOut(settings.hideSpeed, function() {
				if (minicolors.hasClass('minicolors-focus')) {
					if (settings.hide) settings.hide.call(input);
				}
				minicolors.removeClass('minicolors-focus');
			});

		});
	}

	// Moves the selected picker
	function move(target, event, animate) {

		var input    = target.parents('.minicolors').find('.minicolors-input'),
			settings = input.data('minicolors-settings'),
			picker   = target.find('[class$=-picker]'),
			offsetX  = target.offset().left,
			offsetY  = target.offset().top,
			x        = Math.round(event.pageX - offsetX),
			y        = Math.round(event.pageY - offsetY),
			duration = animate ? settings.animationSpeed : 0,
			wx, wy, r, phi;

		// Touch support
		if (event.originalEvent.changedTouches) {
			x = event.originalEvent.changedTouches[0].pageX - offsetX;
			y = event.originalEvent.changedTouches[0].pageY - offsetY;
		}

		// Constrain picker to its container
		if (x < 0) x = 0;
		if (y < 0) y = 0;
		if (x > target.width()) x = target.width();
		if (y > target.height()) y = target.height();

		// Constrain color wheel values to the wheel
		if (target.parent().is('.minicolors-slider-wheel') && picker.parent().is('.minicolors-grid')) {
			wx  = 75 - x;
			wy  = 75 - y;
			r   = Math.sqrt(wx * wx + wy * wy);
			phi = Math.atan2(wy, wx);
			if (phi < 0) phi += Math.PI * 2;
			if (r > 75) {
				r = 75;
				x = 75 - (75 * Math.cos(phi));
				y = 75 - (75 * Math.sin(phi));
			}
			x = Math.round(x);
			y = Math.round(y);
		}

		// Move the picker
		if (target.is('.minicolors-grid')) {
			picker
				.stop(true)
				.animate({
					top : y + 'px',
					left: x + 'px'
				}, duration, settings.animationEasing, function() {
					updateFromControl(input);
				});
		} else {
			picker
				.stop(true)
				.animate({
					top: y + 'px'
				}, duration, settings.animationEasing, function() {
					updateFromControl(input);
				});
		}

	}

	// Sets the input based on the color picker values
	function updateFromControl(input) {

		function getCoords(picker, container) {

			var left, top;
			if (!picker.length || !container) return null;
			left = picker.offset().left;
			top  = picker.offset().top;

			return {
				x: left - container.offset().left + (picker.outerWidth() / 2),
				y: top - container.offset().top + (picker.outerHeight() / 2)
			};

		}

		var hue, saturation, brightness, opacity, rgb, hex, x, y, r, phi,

			// Helpful references
			minicolors    = input.parent(),
			settings      = input.data('minicolors-settings'),
			panel         = minicolors.find('.minicolors-panel'),
			swatch        = minicolors.find('.minicolors-swatch'),

			// Panel objects
			grid          = minicolors.find('.minicolors-grid'),
			slider        = minicolors.find('.minicolors-slider'),
			opacitySlider = minicolors.find('.minicolors-opacity-slider'),

			// Picker objects
			gridPicker    = grid.find('[class$=-picker]'),
			sliderPicker  = slider.find('[class$=-picker]'),
			opacityPicker = opacitySlider.find('[class$=-picker]'),

			// Picker positions
			gridPos       = getCoords(gridPicker, grid),
			sliderPos     = getCoords(sliderPicker, slider),
			opacityPos    = getCoords(opacityPicker, opacitySlider);

		// Determine HSB values
		switch (settings.control) {

			case 'wheel':
				// Calculate hue, saturation, and brightness
				x   = (grid.width() / 2) - gridPos.x;
				y   = (grid.height() / 2) - gridPos.y;
				r   = Math.sqrt(x * x + y * y);
				phi = Math.atan2(y, x);
				if (phi < 0) phi += Math.PI * 2;
				if (r > 75) {
					r         = 75;
					gridPos.x = 69 - (75 * Math.cos(phi));
					gridPos.y = 69 - (75 * Math.sin(phi));
				}
				saturation = keepWithin(r / 0.75, 0, 100);
				hue        = keepWithin(phi * 180 / Math.PI, 0, 360);
				brightness = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
				hex        = hsb2hex({
					h: hue,
					s: saturation,
					b: brightness
				});

				// Update UI
				slider.css('backgroundColor', hsb2hex({h: hue, s: saturation, b: 100}));
				break;

			case 'saturation':
				// Calculate hue, saturation, and brightness
				hue        = keepWithin(parseInt(gridPos.x * (360 / grid.width())), 0, 360);
				saturation = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
				brightness = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
				hex        = hsb2hex({
					h: hue,
					s: saturation,
					b: brightness
				});

				// Update UI
				slider.css('backgroundColor', hsb2hex({h: hue, s: 100, b: brightness}));
				minicolors.find('.minicolors-grid-inner').css('opacity', saturation / 100);
				break;

			case 'brightness':
				// Calculate hue, saturation, and brightness
				hue        = keepWithin(parseInt(gridPos.x * (360 / grid.width())), 0, 360);
				saturation = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
				brightness = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
				hex        = hsb2hex({
					h: hue,
					s: saturation,
					b: brightness
				});

				// Update UI
				slider.css('backgroundColor', hsb2hex({h: hue, s: saturation, b: 100}));
				minicolors.find('.minicolors-grid-inner').css('opacity', 1 - (brightness / 100));
				break;

			default:
				// Calculate hue, saturation, and brightness
				hue        = keepWithin(360 - parseInt(sliderPos.y * (360 / slider.height())), 0, 360);
				saturation = keepWithin(Math.floor(gridPos.x * (100 / grid.width())), 0, 100);
				brightness = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
				hex        = hsb2hex({
					h: hue,
					s: saturation,
					b: brightness
				});

				// Update UI
				grid.css('backgroundColor', hsb2hex({h: hue, s: 100, b: 100}));
				break;

		}

		// Determine opacity
		if (settings.opacity) {
			opacity = parseFloat(1 - (opacityPos.y / opacitySlider.height())).toFixed(2);
		} else {
			opacity = 1;
		}

		// Adjust case
		input.val(convertCase(hex, settings.letterCase));
		if (settings.opacity) input.attr('data-opacity', opacity);

		// Set swatch color
		swatch.find('SPAN').css({
			backgroundColor: hex,
			opacity        : opacity
		});

		// Handle change event
		if (hex + opacity !== input.data('minicolors-lastChange')) {

			// Remember last-changed value
			input.data('minicolors-lastChange', hex + opacity);

			// Fire change event
			if (settings.change) {
				if (settings.changeDelay) {
					// Call after a delay
					clearTimeout(input.data('minicolors-changeTimeout'));
					input.data('minicolors-changeTimeout', setTimeout(function() {
						settings.change.call(input, hex, opacity);
					}, settings.changeDelay));
				} else {
					// Call immediately
					settings.change.call(input, hex, opacity);
				}
			}

		}

	}

	// Sets the color picker values from the input
	function updateFromInput(input, preserveInputValue) {

		var hex,
			hsb,
			opacity,
			x, y, r, phi,

			// Helpful references
			minicolors    = input.parent(),
			settings      = input.data('minicolors-settings'),
			swatch        = minicolors.find('.minicolors-swatch'),

			// Panel objects
			grid          = minicolors.find('.minicolors-grid'),
			slider        = minicolors.find('.minicolors-slider'),
			opacitySlider = minicolors.find('.minicolors-opacity-slider'),

			// Picker objects
			gridPicker    = grid.find('[class$=-picker]'),
			sliderPicker  = slider.find('[class$=-picker]'),
			opacityPicker = opacitySlider.find('[class$=-picker]');

		// Determine hex/HSB values
		hex = convertCase(parseHex(input.val(), true), settings.letterCase);
		if (!hex) hex = convertCase(parseHex(settings.defaultValue, true));
		hsb = hex2hsb(hex);

		// Update input value
		if (!preserveInputValue) input.val(hex);

		// Determine opacity value
		if (settings.opacity) {
			opacity = input.attr('data-opacity') === '' ? 1 : keepWithin(parseFloat(input.attr('data-opacity')).toFixed(2), 0, 1);
			input.attr('data-opacity', opacity);
			swatch.find('SPAN').css('opacity', opacity);

			// Set opacity picker position
			y = keepWithin(opacitySlider.height() - (opacitySlider.height() * opacity), 0, opacitySlider.height());
			opacityPicker.css('top', y + 'px');
		}

		// Update swatch
		swatch.find('SPAN').css('backgroundColor', hex);

		// Determine picker locations
		switch (settings.control) {

			case 'wheel':
				// Set grid position
				r   = keepWithin(Math.ceil(hsb.s * 0.75), 0, grid.height() / 2);
				phi = hsb.h * Math.PI / 180;
				x   = keepWithin(75 - Math.cos(phi) * r, 0, grid.width());
				y   = keepWithin(75 - Math.sin(phi) * r, 0, grid.height());
				gridPicker.css({
					top : y + 'px',
					left: x + 'px'
				});

				// Set slider position
				y = 150 - (hsb.b / (100 / grid.height()));
				if (hex === '') y = 0;
				sliderPicker.css('top', y + 'px');

				// Update panel color
				slider.css('backgroundColor', hsb2hex({h: hsb.h, s: hsb.s, b: 100}));
				break;

			case 'saturation':
				// Set grid position
				x = keepWithin((5 * hsb.h) / 12, 0, 150);
				y = keepWithin(grid.height() - Math.ceil(hsb.b / (100 / grid.height())), 0, grid.height());
				gridPicker.css({
					top : y + 'px',
					left: x + 'px'
				});

				// Set slider position
				y = keepWithin(slider.height() - (hsb.s * (slider.height() / 100)), 0, slider.height());
				sliderPicker.css('top', y + 'px');

				// Update UI
				slider.css('backgroundColor', hsb2hex({h: hsb.h, s: 100, b: hsb.b}));
				minicolors.find('.minicolors-grid-inner').css('opacity', hsb.s / 100);

				break;

			case 'brightness':
				// Set grid position
				x = keepWithin((5 * hsb.h) / 12, 0, 150);
				y = keepWithin(grid.height() - Math.ceil(hsb.s / (100 / grid.height())), 0, grid.height());
				gridPicker.css({
					top : y + 'px',
					left: x + 'px'
				});

				// Set slider position
				y = keepWithin(slider.height() - (hsb.b * (slider.height() / 100)), 0, slider.height());
				sliderPicker.css('top', y + 'px');

				// Update UI
				slider.css('backgroundColor', hsb2hex({h: hsb.h, s: hsb.s, b: 100}));
				minicolors.find('.minicolors-grid-inner').css('opacity', 1 - (hsb.b / 100));
				break;

			default:
				// Set grid position
				x = keepWithin(Math.ceil(hsb.s / (100 / grid.width())), 0, grid.width());
				y = keepWithin(grid.height() - Math.ceil(hsb.b / (100 / grid.height())), 0, grid.height());
				gridPicker.css({
					top : y + 'px',
					left: x + 'px'
				});

				// Set slider position
				y = keepWithin(slider.height() - (hsb.h / (360 / slider.height())), 0, slider.height());
				sliderPicker.css('top', y + 'px');

				// Update panel color
				grid.css('backgroundColor', hsb2hex({h: hsb.h, s: 100, b: 100}));
				break;

		}

	}

	// Generates an RGB(A) object based on the input's value
	function rgbObject(input) {
		var hex     = parseHex($(input).val(), true),
			rgb     = hex2rgb(hex),
			opacity = $(input).attr('data-opacity');
		if (!rgb) return null;
		if (opacity !== undefined) $.extend(rgb, {a: parseFloat(opacity)});
		return rgb;
	}

	// Genearates an RGB(A) string based on the input's value
	function rgbString(input, alpha) {
		var hex     = parseHex($(input).val(), true),
			rgb     = hex2rgb(hex),
			opacity = $(input).attr('data-opacity');
		if (!rgb) return null;
		if (opacity === undefined) opacity = 1;
		if (alpha) {
			return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + parseFloat(opacity) + ')';
		} else {
			return 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')';
		}
	}

	// Converts to the letter case specified in settings
	function convertCase(string, letterCase) {
		return letterCase === 'uppercase' ? string.toUpperCase() : string.toLowerCase();
	}

	// Parses a string and returns a valid hex string when possible
	function parseHex(string, expand) {
		string = string.replace(/[^A-F0-9]/ig, '');
		if (string.length !== 3 && string.length !== 6) return '';
		if (string.length === 3 && expand) {
			string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];
		}
		return '#' + string;
	}

	// Keeps value within min and max
	function keepWithin(value, min, max) {
		if (value < min) value = min;
		if (value > max) value = max;
		return value;
	}

	// Converts an HSB object to an RGB object
	function hsb2rgb(hsb) {
		var rgb = {};
		var h   = Math.round(hsb.h);
		var s   = Math.round(hsb.s * 255 / 100);
		var v   = Math.round(hsb.b * 255 / 100);
		if (s === 0) {
			rgb.r = rgb.g = rgb.b = v;
		} else {
			var t1 = v;
			var t2 = (255 - s) * v / 255;
			var t3 = (t1 - t2) * (h % 60) / 60;
			if (h === 360) h = 0;
			if (h < 60) {
				rgb.r = t1;
				rgb.b = t2;
				rgb.g = t2 + t3;
			} else if (h < 120) {
				rgb.g = t1;
				rgb.b = t2;
				rgb.r = t1 - t3;
			} else if (h < 180) {
				rgb.g = t1;
				rgb.r = t2;
				rgb.b = t2 + t3;
			} else if (h < 240) {
				rgb.b = t1;
				rgb.r = t2;
				rgb.g = t1 - t3;
			} else if (h < 300) {
				rgb.b = t1;
				rgb.g = t2;
				rgb.r = t2 + t3;
			} else if (h < 360) {
				rgb.r = t1;
				rgb.g = t2;
				rgb.b = t1 - t3;
			} else {
				rgb.r = 0;
				rgb.g = 0;
				rgb.b = 0;
			}
		}
		return {
			r: Math.round(rgb.r),
			g: Math.round(rgb.g),
			b: Math.round(rgb.b)
		};
	}

	// Converts an RGB object to a hex string
	function rgb2hex(rgb) {
		var hex = [
			rgb.r.toString(16),
			rgb.g.toString(16),
			rgb.b.toString(16)
		];
		$.each(hex, function(nr, val) {
			if (val.length === 1) hex[nr] = '0' + val;
		});
		return '#' + hex.join('');
	}

	// Converts an HSB object to a hex string
	function hsb2hex(hsb) {
		return rgb2hex(hsb2rgb(hsb));
	}

	// Converts a hex string to an HSB object
	function hex2hsb(hex) {
		var hsb = rgb2hsb(hex2rgb(hex));
		if (hsb.s === 0) hsb.h = 360;
		return hsb;
	}

	// Converts an RGB object to an HSB object
	function rgb2hsb(rgb) {
		var hsb   = {h: 0, s: 0, b: 0};
		var min   = Math.min(rgb.r, rgb.g, rgb.b);
		var max   = Math.max(rgb.r, rgb.g, rgb.b);
		var delta = max - min;
		hsb.b     = max;
		hsb.s     = max !== 0 ? 255 * delta / max : 0;
		if (hsb.s !== 0) {
			if (rgb.r === max) {
				hsb.h = (rgb.g - rgb.b) / delta;
			} else if (rgb.g === max) {
				hsb.h = 2 + (rgb.b - rgb.r) / delta;
			} else {
				hsb.h = 4 + (rgb.r - rgb.g) / delta;
			}
		} else {
			hsb.h = -1;
		}
		hsb.h *= 60;
		if (hsb.h < 0) {
			hsb.h += 360;
		}
		hsb.s *= 100 / 255;
		hsb.b *= 100 / 255;
		return hsb;
	}

	// Converts a hex string to an RGB object
	function hex2rgb(hex) {
		hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
		return {
			r: hex >> 16,
			g: (hex & 0x00FF00) >> 8,
			b: (hex & 0x0000FF)
		};
	}

	// Handle events
	$(document)
	// Hide on clicks outside of the control
		.on('mousedown.minicolors touchstart.minicolors', function(event) {
			if (!$(event.target).parents().add(event.target).hasClass('minicolors')) {
				hide();
			}
		})
		// Start moving
		.on('mousedown.minicolors touchstart.minicolors', '.minicolors-grid, .minicolors-slider, .minicolors-opacity-slider', function(event) {
			var target = $(this);
			event.preventDefault();
			$(document).data('minicolors-target', target);
			move(target, event, true);
		})
		// Move pickers
		.on('mousemove.minicolors touchmove.minicolors', function(event) {
			var target = $(document).data('minicolors-target');
			if (target) move(target, event);
		})
		// Stop moving
		.on('mouseup.minicolors touchend.minicolors', function() {
			$(this).removeData('minicolors-target');
		})
		// Toggle panel when swatch is clicked
		.on('mousedown.minicolors touchstart.minicolors', '.minicolors-swatch', function() {
			var input      = $(this).parent().find('.minicolors-input'),
				minicolors = input.parent();
			if (minicolors.hasClass('minicolors-focus')) {
				hide(input);
			} else {
				show(input);
			}
		})
		// Show on focus
		.on('focus.minicolors', '.minicolors-input', function() {
			var input = $(this);
			if (!input.data('minicolors-initialized')) return;
			show(input);
		})
		// Fix hex and hide on blur
		.on('blur.minicolors', '.minicolors-input', function() {
			var input    = $(this),
				settings = input.data('minicolors-settings');
			if (!input.data('minicolors-initialized')) return;

			// Parse Hex
			input.val(parseHex(input.val(), true));

			// Is it blank?
			if (input.val() === '') input.val(parseHex(settings.defaultValue, true));

			// Adjust case
			input.val(convertCase(input.val(), settings.letterCase));

			hide(input);
		})
		// Handle keypresses
		.on('keydown.minicolors', '.minicolors-input', function(event) {
			var input = $(this);
			if (!input.data('minicolors-initialized')) return;
			switch (event.keyCode) {
				case 9: // tab
					hide();
					break;
				case 27: // esc
					hide();
					input.blur();
					break;
			}
		})
		// Update on keyup
		.on('keyup.minicolors', '.minicolors-input', function() {
			var input = $(this);
			if (!input.data('minicolors-initialized')) return;
			updateFromInput(input, true);
		})
		// Update on paste
		.on('paste.minicolors', '.minicolors-input', function() {
			var input = $(this);
			if (!input.data('minicolors-initialized')) return;
			setTimeout(function() {
				updateFromInput(input, true);
			}, 1);
		});

})(jQuery);
regularlabs/js/simplecategories.min.js000064400000001156152177723720014162 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){$(document).ready(function(){$("div.rl_simplecategory").each(function(i,el){var $el=$(el);var func=function(){var new_value=$(this).val();if(new_value=="-1"){$el.find(".rl_simplecategory_value").val($el.find(".rl_simplecategory_new input").val());return}$el.find(".rl_simplecategory_value").val(new_value)};$el.find(".rl_simplecategory_select select").bind("change",func).bind("keyup",func);$el.find(".rl_simplecategory_new input").bind("change",func).bind("keyup",func)})})})(jQuery);
regularlabs/js/codemirror.min.js000064400000012777152177723720013003 0ustar00/*
 * Copyright © 2019 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var RegularLabsCodeMirror=null;
(function($){RegularLabsCodeMirror={init:function(id){if(!$("#rl_codemirror_"+id+" .CodeMirror").length){setTimeout(function(){RegularLabsCodeMirror.init(id)},100);return}RegularLabsCodeMirror.resizeWidth(id);cmResize(Joomla.editors.instances[id],{minHeight:50,resizableWidth:false,resizableHeight:true,cssClass:"cm-resize-handle"});$(window).resize(function(){RegularLabsCodeMirror.resizeWidth(id)})},resizeWidth:function(id){$("#rl_codemirror_"+id+" .CodeMirror").width(100).css("visibility","hidden");
setTimeout(function(){$("#rl_codemirror_"+id+" .CodeMirror").each(function(){var new_width=$(this).parent().width();if(new_width<=100){setTimeout(function(){RegularLabsCodeMirror.resizeWidth(id)},100);return}$(this).width(new_width).css("visibility","visible")})},100)}}})(jQuery);
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):global.cmResize=factory()})(this,function(){function dragTracker(options){var ep=Element.prototype;if(!ep.matches)ep.matches=ep.msMatchesSelector||ep.webkitMatchesSelector;if(!ep.closest)ep.closest=function(s){var node=this;do{if(node.matches(s))return node;node=node.tagName==="svg"?node.parentNode:node.parentElement}while(node);return null};
options=options||{};var container=options.container||document.documentElement,selector=options.selector,callback=options.callback||console.log,callbackStart=options.callbackDragStart,callbackEnd=options.callbackDragEnd,callbackClick=options.callbackClick,propagate=options.propagateEvents,roundCoords=options.roundCoords!==false,dragOutside=options.dragOutside!==false,handleOffset=options.handleOffset||options.handleOffset!==false;var offsetToCenter=null;switch(handleOffset){case "center":offsetToCenter=
true;break;case "topleft":case "top-left":offsetToCenter=false;break}var dragged=void 0,mouseOffset=void 0,dragStart=void 0;function getMousePos(e,elm,offset,stayWithin){var x=e.clientX,y=e.clientY;function respectBounds(value,min,max){return Math.max(min,Math.min(value,max))}if(elm){var bounds=elm.getBoundingClientRect();x-=bounds.left;y-=bounds.top;if(offset){x-=offset[0];y-=offset[1]}if(stayWithin){x=respectBounds(x,0,bounds.width);y=respectBounds(y,0,bounds.height)}if(elm!==container){var center=
offsetToCenter!==null?offsetToCenter:elm.nodeName==="circle"||elm.nodeName==="ellipse";if(center){x-=bounds.width/2;y-=bounds.height/2}}}return roundCoords?[Math.round(x),Math.round(y)]:[x,y]}function stopEvent(e){e.preventDefault();if(!propagate)e.stopPropagation()}function onDown(e){if(selector)dragged=selector instanceof Element?selector.contains(e.target)?selector:null:e.target.closest(selector);else dragged={};if(dragged){stopEvent(e);mouseOffset=selector&&handleOffset?getMousePos(e,dragged):
[0,0];dragStart=getMousePos(e,container,mouseOffset);if(roundCoords)dragStart=dragStart.map(Math.round);if(callbackStart)callbackStart(dragged,dragStart)}}function onMove(e){if(!dragged)return;stopEvent(e);var pos=getMousePos(e,container,mouseOffset,!dragOutside);callback(dragged,pos,dragStart)}function onEnd(e){if(!dragged)return;if(callbackEnd||callbackClick){var pos=getMousePos(e,container,mouseOffset,!dragOutside);if(callbackClick&&dragStart[0]===pos[0]&&dragStart[1]===pos[1])callbackClick(dragged,
dragStart);if(callbackEnd)callbackEnd(dragged,pos,dragStart)}dragged=null}container.addEventListener("mousedown",function(e){if(isLeftButton(e))onDown(e)});container.addEventListener("touchstart",function(e){relayTouch(e,onDown)});window.addEventListener("mousemove",function(e){if(!dragged)return;if(isLeftButton(e))onMove(e);else onEnd(e)});window.addEventListener("touchmove",function(e){relayTouch(e,onMove)});window.addEventListener("mouseup",function(e){if(dragged&&!isLeftButton(e))onEnd(e)});function onTouchEnd(e){onEnd(tweakTouch(e))}
container.addEventListener("touchend",onTouchEnd);container.addEventListener("touchcancel",onTouchEnd);function isLeftButton(e){return e.buttons!==undefined?e.buttons===1:e.which===1}function relayTouch(e,handler){if(e.touches.length!==1){onEnd(e);return}handler(tweakTouch(e))}function tweakTouch(e){var touch=e.targetTouches[0];if(!touch)touch=e.changedTouches[0];touch.preventDefault=e.preventDefault.bind(e);touch.stopPropagation=e.stopPropagation.bind(e);return touch}}function cmResize(cm,config){config=
config||{};var minW=config.minWidth||200,minH=config.minHeight||100,resizeW=config.resizableWidth!==false,resizeH=config.resizableHeight!==false,css=config.cssClass||"cm-resize-handle";var cmElement=cm.display.wrapper,cmHandle=config.handle||function(){var h=cmElement.appendChild(document.createElement("div"));h.className=css;return h}();var vScroll=cmElement.querySelector(".CodeMirror-vscrollbar"),hScroll=cmElement.querySelector(".CodeMirror-hscrollbar");function constrainScrollbars(){if(!config.handle){vScroll.style.bottom=
"18px";hScroll.style.right="18px"}}cm.on("update",constrainScrollbars);constrainScrollbars();var startPos=void 0,startSize=void 0;dragTracker({container:cmHandle.offsetParent,selector:cmHandle,callbackDragStart:function callbackDragStart(handle,pos){startPos=pos;startSize=[cmElement.clientWidth,cmElement.clientHeight]},callback:function callback(handle,pos){var diffX=pos[0]-startPos[0],diffY=pos[1]-startPos[1],cw=resizeW?Math.max(minW,startSize[0]+diffX):null,ch=resizeH?Math.max(minH,startSize[1]+
diffY):null;cm.setSize(cw,ch)}});return cmHandle}return cmResize});regularlabs/js/multiselect.min.js000064400000011366152177723720013161 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var RegularLabsMultiSelect=null;
(function($){$(document).ready(function(){$(".rl_multiselect").each(function(){RegularLabsMultiSelect.init($(this))})});RegularLabsMultiSelect={init:function(element){var controls=element.find("div.rl_multiselect-controls");var list=element.find("ul.rl_multiselect-ul");var menu=element.find("div.rl_multiselect-menu-block").html();var maxheight=list.css("max-height");list.find("li").each(function(){var $li=$(this);var $div=$li.find("div.rl_multiselect-item:first");$li.prepend('<span class="pull-left icon-"></span>');$div.after('<div class="clearfix"></div>');
if($li.find("ul.rl_multiselect-sub").length){$li.find("span.icon-").addClass("rl_multiselect-toggle icon-minus");$div.find("label:first").after(menu);if(!$li.find("ul.rl_multiselect-sub ul.rl_multiselect-sub").length)$li.find("div.rl_multiselect-menu-expand").remove()}});list.find("span.rl_multiselect-toggle").click(function(){var $icon=$(this);if($icon.parent().find("ul.rl_multiselect-sub").is(":visible")){$icon.removeClass("icon-minus").addClass("icon-plus");$icon.parent().find("ul.rl_multiselect-sub").hide();
$icon.parent().find("ul.rl_multiselect-sub span.rl_multiselect-toggle").removeClass("icon-minus").addClass("icon-plus")}else{$icon.removeClass("icon-plus").addClass("icon-minus");$icon.parent().find("ul.rl_multiselect-sub").show();$icon.parent().find("ul.rl_multiselect-sub span.rl_multiselect-toggle").removeClass("icon-plus").addClass("icon-minus")}});controls.find("input.rl_multiselect-filter").keyup(function(){var $text=$(this).val().toLowerCase();list.find("li").each(function(){var $li=$(this);
if($li.text().toLowerCase().indexOf($text)<0)$li.hide();else $li.show()})});controls.find("a.rl_multiselect-checkall").click(function(){list.find("input").prop("checked",true)});controls.find("a.rl_multiselect-uncheckall").click(function(){list.find("input").prop("checked",false)});controls.find("a.rl_multiselect-toggleall").click(function(){list.find("input").each(function(){var $input=$(this);if($input.prop("checked"))$input.prop("checked",false);else $input.prop("checked",true)})});controls.find("a.rl_multiselect-expandall").click(function(){list.find("ul.rl_multiselect-sub").show();
list.find("span.rl_multiselect-toggle").removeClass("icon-plus").addClass("icon-minus")});controls.find("a.rl_multiselect-collapseall").click(function(){list.find("ul.rl_multiselect-sub").hide();list.find("span.rl_multiselect-toggle").removeClass("icon-minus").addClass("icon-plus")});controls.find("a.rl_multiselect-showall").click(function(){list.find("li").show()});controls.find("a.rl_multiselect-showselected").click(function(){list.find("li").each(function(){var $li=$(this);var $hide=true;$li.find("input").each(function(){if($(this).prop("checked")){$hide=
false;return false}});if($hide){$li.hide();return}$li.show()})});controls.find("a.rl_multiselect-maximize").click(function(){list.css("max-height","");controls.find("a.rl_multiselect-maximize").hide();controls.find("a.rl_multiselect-minimize").show()});controls.find("a.rl_multiselect-minimize").click(function(){list.css("max-height",maxheight);controls.find("a.rl_multiselect-minimize").hide();controls.find("a.rl_multiselect-maximize").show()});element.find("a.checkall").click(function(){$(this).parent().parent().parent().parent().parent().parent().find("ul.rl_multiselect-sub input").prop("checked",
true)});element.find("a.uncheckall").click(function(){$(this).parent().parent().parent().parent().parent().parent().find("ul.rl_multiselect-sub input").prop("checked",false)});element.find("a.expandall").click(function(){var $parent=$(this).parent().parent().parent().parent().parent().parent().parent();$parent.find("ul.rl_multiselect-sub").show();$parent.find("ul.rl_multiselect-sub span.rl_multiselect-toggle").removeClass("icon-plus").addClass("icon-minus")});element.find("a.collapseall").click(function(){var $parent=
$(this).parent().parent().parent().parent().parent().parent().parent();$parent.find("li ul.rl_multiselect-sub").hide();$parent.find("li span.rl_multiselect-toggle").removeClass("icon-minus").addClass("icon-plus")});element.find("div.rl_multiselect-item.hidechildren").click(function(){var $parent=$(this).parent();$(this).find("input").each(function(){var $sub=$parent.find("ul.rl_multiselect-sub").first();var $input=$(this);if($input.prop("checked")){$parent.find("span.rl_multiselect-toggle, div.rl_multiselect-menu").css("visibility",
"hidden");if(!$sub.parent().hasClass("hidelist"))$sub.wrap('<div style="display:none;" class="hidelist"></div>')}else{$parent.find("span.rl_multiselect-toggle, div.rl_multiselect-menu").css("visibility","visible");if($sub.parent().hasClass("hidelist"))$sub.unwrap()}})})}}})(jQuery);
regularlabs/js/jquery.cookie.js000064400000003450152177723720012627 0ustar00/*!
 * jQuery Cookie Plugin v1.3
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2011, Klaus Hartl
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.opensource.org/licenses/GPL-2.0
 */
(function($, document, undefined) {

	var pluses = /\+/g;

	function raw(s) {
		return s;
	}

	function decoded(s) {
		return decodeURIComponent(s.replace(pluses, ' '));
	}

	var config = $.cookie = function(key, value, options) {

		// write
		if (value !== undefined) {
			options = $.extend({}, config.defaults, options);

			if (value === null) {
				options.expires = -1;
			}

			if (typeof options.expires === 'number') {
				var days = options.expires, t = options.expires = new Date();
				t.setDate(t.getDate() + days);
			}

			value = config.json ? JSON.stringify(value) : String(value);

			return (document.cookie = [
				encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
				options.path ? '; path=' + options.path : '',
				options.domain ? '; domain=' + options.domain : '',
				options.secure ? '; secure' : ''
			].join(''));
		}

		// read
		var decode  = config.raw ? raw : decoded;
		var cookies = document.cookie.split('; ');
		for (var i = 0, l = cookies.length; i < l; i++) {
			var parts = cookies[i].split('=');
			if (decode(parts.shift()) === key) {
				var cookie = decode(parts.join('='));
				return config.json ? JSON.parse(cookie) : cookie;
			}
		}

		return null;
	};

	config.defaults = {};

	$.removeCookie = function(key, options) {
		if ($.cookie(key) !== null) {
			$.cookie(key, null, options);
			return true;
		}
		return false;
	};

})(jQuery, document);
regularlabs/js/toggler.min.js000064400000010046152177723720012264 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var RegularLabsToggler=null;
(function($){$(document).ready(function(){if($(".rl_toggler").length)RegularLabsToggler.initialize();else $(function(){if($(".rl_toggler").length)RegularLabsToggler.initialize()}).delay(2E3)});RegularLabsToggler={togglers:{},elements:{},initialize:function(){this.togglers=$(".rl_toggler");if(!this.togglers.length)return;this.initTogglers()},initTogglers:function(){var self=this;var new_togglers={};this.elements={};$.each(this.togglers,function(i,toggler){if(!toggler.id)return;$(toggler).show();$(toggler).removeAttr("height");
toggler.height=$(toggler).height();toggler.elements={};toggler.nofx=$(toggler).hasClass("rl_toggler_nofx");toggler.method=$(toggler).hasClass("rl_toggler_and")?"and":"or";toggler.ids=toggler.id.split("___");for(var i=1;i<toggler.ids.length;i++){var keyval=toggler.ids[i].split(".");var key=keyval[0];var val=1;if(keyval.length>1)val=keyval[1];if(typeof toggler.elements[key]==="undefined")toggler.elements[key]=[];toggler.elements[key].push(val);if(typeof self.elements[key]==="undefined"){self.elements[key]=
{};self.elements[key].elements=[];self.elements[key].values=[];self.elements[key].togglers=[]}self.elements[key].togglers.push(toggler.id)}new_togglers[toggler.id]=toggler});this.togglers=new_togglers;new_togglers=null;this.setElements();$.each(this.togglers,function(i,toggler){self.toggleByID(toggler.id,1)});$(document.body).delay(250).css("cursor","")},autoHeightDivs:function(){$.each($("div.col div, div.fltrt div"),function(i,el){if(el.getStyle("height")!="0px"&&!el.hasClass("input")&&!el.hasClass("rl_hr")&&
el.id.indexOf("gk_")<0&&el.className.indexOf("gk_")<0&&el.className.indexOf("switcher-")<0)el.css("height","auto")})},toggle:function(el_name){this.setValues(el_name);for(var i=0;i<this.elements[el_name].togglers.length;i++)this.toggleByID(this.elements[el_name].togglers[i])},toggleByID:function(id,nofx){if(typeof this.togglers[id]==="undefined")return;var toggler=this.togglers[id];var show=this.isShow(toggler);if(nofx||toggler.nofx)if(show)$(toggler).show();else $(toggler).hide();else if(show)$(toggler).slideDown();
else $(toggler).slideUp()},isShow:function(toggler){var show=toggler.method=="and";for(var el_name in toggler.elements){var vals=toggler.elements[el_name];var values=this.elements[el_name].values;if(values!=null&&values.length&&(vals=="*"&&values!=""||vals.toString().substr(0,1)==="!"&&!RegularLabsScripts.in_array(vals.toString().substr(1),values)||RegularLabsScripts.in_array(vals,values))){if(toggler.method=="or"){show=1;break}}else if(toggler.method=="and"){show=0;break}}return show},setValues:function(el_name){var els=
this.elements[el_name].elements;var values=[];$.each(els,function(i,el){switch(el.type){case "radio":case "checkbox":if(el.checked)values.push(el.value);break;default:if(typeof el.elements!=="undefined"&&el.elements.length>1)for(var i=0;i<el.elements.length;i++){if(el.checked)values.push(el.value)}else values.push(el.value);break}});this.elements[el_name].values=values},setElements:function(){var self=this;$.each($("input, select, textarea"),function(i,el){var el_name=el.name.replace("@","_").replace("[]",
"").replace(/^(?:jform\[(?:field)?params\]|jform|params|fieldparams|advancedparams)\[(.*?)\]/g,"$1").replace(/^(.*?)\[(.*?)\]/g,"$1_$2").trim();if(el_name!=="")if(typeof self.elements[el_name]!=="undefined"){self.elements[el_name].elements.push(el);self.setValues(el_name);self.setElementEvents(el,el_name)}})},setElementEvents:function(el,el_name){if($(el).attr("togglerEventAdded"))return;var self=this;var type;if(typeof el.type==="undefined"){if($(el).prop("tagName").toLowerCase()=="select")type=
"select"}else type=el.type;var func=function(){self.toggle(el_name)};switch(type){case "radio":case "checkbox":$(el).bind("click",func).bind("keyup",func);break;case "select":case "select-one":case "text":case "textarea":$(el).bind("change",func).bind("keyup",func);break;default:$(el).bind("change",func);break}$(el).attr("togglerEventAdded",1)}}})(jQuery);regularlabs/js/regular.min.js000064400000003650152177723720012265 0ustar00/*
 * RegularJS - A light and simple JavaScript Library
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
window.Regular={addClass:function(el,clss){if(!el)return;el.className+=" "+clss;var classes=el.className.split(" ");classes=classes.filter(function(value,index,classes){return classes.indexOf(value)===index});el.className=classes.join(" ")},removeClass:function(el,clss){if(!el)return;var classes=el.className.split(" ");classes=classes.filter(function(value,index,classes){return classes.indexOf(value)===index});var index=classes.indexOf(clss);if(index!=-1)classes.splice(index,1);el.className=classes.join(" ")},
hasClass:function(el,clss){if(!el)return false;var classes=el.className.split(" ");return classes.indexOf(clss)>-1},toggleClass:function(el,clss){if(!el)return;if(this.hasClass(el,clss)){this.removeClass(el,clss);return}this.addClass(el,clss)},show:function(el){el.style.opacity=100;if(el.style.display=="none")el.style.display="block"},hide:function(el){el.style.opacity=0;el.style.display="none"},fadeIn:function(el,duration,oncomplete){var self=this;duration=duration?duration:250;var wait=50;var nr_of_steps=
duration/wait;var change=1/nr_of_steps;if(!el.style.opacity||el.style.opacity==1)el.style.opacity=0;if(el.style.display=="none")el.style.display="block";(function fade(){el.style.opacity=parseFloat(el.style.opacity)+change;if(el.style.opacity>=1){self.show(el);if(oncomplete)oncomplete.call();return}setTimeout(function(){fade.call()},wait)})()},fadeOut:function(el,duration,oncomplete){var self=this;duration=duration?duration:250;var wait=50;var nr_of_steps=duration/wait;var change=1/nr_of_steps;if(!el.style.opacity||
el.style.opacity==0)el.style.opacity=1;(function fade(){el.style.opacity=parseFloat(el.style.opacity)-change;if(el.style.opacity<=0){self.hide(el);if(oncomplete)oncomplete.call();return}setTimeout(function(){fade.call()},wait)})()}};regularlabs/js/multiselect.js000064400000014733152177723720012400 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var RegularLabsMultiSelect = null;

(function($) {
	"use strict";

	$(document).ready(function() {
		$('.rl_multiselect').each(function() {
			RegularLabsMultiSelect.init($(this));
		});
	});

	RegularLabsMultiSelect = {
		init: function(element) {
			var controls  = element.find('div.rl_multiselect-controls');
			var list      = element.find('ul.rl_multiselect-ul');
			var menu      = element.find('div.rl_multiselect-menu-block').html();
			var maxheight = list.css('max-height');

			list.find('li').each(function() {
				var $li  = $(this);
				var $div = $li.find('div.rl_multiselect-item:first');

				// Add icons
				$li.prepend('<span class="pull-left icon-"></span>');

				// Append clearfix
				$div.after('<div class="clearfix"></div>');

				if ($li.find('ul.rl_multiselect-sub').length) {
					// Add classes to Expand/Collapse icons
					$li.find('span.icon-').addClass('rl_multiselect-toggle icon-minus');

					// Append drop down menu in nodes
					$div.find('label:first').after(menu);

					if (!$li.find('ul.rl_multiselect-sub ul.rl_multiselect-sub').length) {
						$li.find('div.rl_multiselect-menu-expand').remove();
					}
				}
			});

			// Takes care of the Expand/Collapse of a node
			list.find('span.rl_multiselect-toggle').click(function() {
				var $icon = $(this);

				// Take care of parent UL
				if ($icon.parent().find('ul.rl_multiselect-sub').is(':visible')) {
					$icon.removeClass('icon-minus').addClass('icon-plus');
					$icon.parent().find('ul.rl_multiselect-sub').hide();
					$icon.parent().find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');
				} else {
					$icon.removeClass('icon-plus').addClass('icon-minus');
					$icon.parent().find('ul.rl_multiselect-sub').show();
					$icon.parent().find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');
				}
			});

			// Takes care of the filtering
			controls.find('input.rl_multiselect-filter').keyup(function() {
				var $text = $(this).val().toLowerCase();
				list.find('li').each(function() {
					var $li = $(this);
					if ($li.text().toLowerCase().indexOf($text) < 0) {
						$li.hide();
					} else {
						$li.show();
					}
				});
			});

			// Checks all checkboxes in the list
			controls.find('a.rl_multiselect-checkall').click(function() {
				list.find('input').prop('checked', true);
			});

			// Unchecks all checkboxes in the list
			controls.find('a.rl_multiselect-uncheckall').click(function() {
				list.find('input').prop('checked', false);
			});

			// Toggles all checkboxes in the list
			controls.find('a.rl_multiselect-toggleall').click(function() {
				list.find('input').each(function() {
					var $input = $(this);
					if ($input.prop('checked')) {
						$input.prop('checked', false);
					} else {
						$input.prop('checked', true);
					}
				});
			});

			// Expands all sub-items in the list
			controls.find('a.rl_multiselect-expandall').click(function() {
				list.find('ul.rl_multiselect-sub').show();
				list.find('span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');
			});

			// Hides all sub-items in the list
			controls.find('a.rl_multiselect-collapseall').click(function() {
				list.find('ul.rl_multiselect-sub').hide();
				list.find('span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');
			});

			// Shows all selected items in the list
			controls.find('a.rl_multiselect-showall').click(function() {
				list.find('li').show();
			});

			// Shows all selected items in the list
			controls.find('a.rl_multiselect-showselected').click(function() {
				list.find('li').each(function() {
					var $li   = $(this);
					var $hide = true;
					$li.find('input').each(function() {
						if ($(this).prop('checked')) {
							$hide = false;
							return false;
						}
					});

					if ($hide) {
						$li.hide();
						return;
					}

					$li.show();
				});
			});

			// Maximizes the list
			controls.find('a.rl_multiselect-maximize').click(function() {
				list.css('max-height', '');
				controls.find('a.rl_multiselect-maximize').hide();
				controls.find('a.rl_multiselect-minimize').show();
			});

			// Minimizes the list
			controls.find('a.rl_multiselect-minimize').click(function() {
				list.css('max-height', maxheight);
				controls.find('a.rl_multiselect-minimize').hide();
				controls.find('a.rl_multiselect-maximize').show();
			});

			// Take care of children check/uncheck all
			element.find('a.checkall').click(function() {
				$(this).parent().parent().parent().parent().parent().parent().find('ul.rl_multiselect-sub input').prop('checked', true);
			});
			element.find('a.uncheckall').click(function() {
				$(this).parent().parent().parent().parent().parent().parent().find('ul.rl_multiselect-sub input').prop('checked', false);
			});

			// Take care of children toggle all
			element.find('a.expandall').click(function() {
				var $parent = $(this).parent().parent().parent().parent().parent().parent().parent();
				$parent.find('ul.rl_multiselect-sub').show();
				$parent.find('ul.rl_multiselect-sub span.rl_multiselect-toggle').removeClass('icon-plus').addClass('icon-minus');
			});
			element.find('a.collapseall').click(function() {
				var $parent = $(this).parent().parent().parent().parent().parent().parent().parent();
				$parent.find('li ul.rl_multiselect-sub').hide();
				$parent.find('li span.rl_multiselect-toggle').removeClass('icon-minus').addClass('icon-plus');
			});
			element.find('div.rl_multiselect-item.hidechildren').click(function() {
				var $parent = $(this).parent();

				$(this).find('input').each(function() {
					var $sub   = $parent.find('ul.rl_multiselect-sub').first();
					var $input = $(this);
					if ($input.prop('checked')) {
						$parent.find('span.rl_multiselect-toggle, div.rl_multiselect-menu').css('visibility', 'hidden');
						if (!$sub.parent().hasClass('hidelist')) {
							$sub.wrap('<div style="display:none;" class="hidelist"></div>');
						}
					} else {
						$parent.find('span.rl_multiselect-toggle, div.rl_multiselect-menu').css('visibility', 'visible');
						if ($sub.parent().hasClass('hidelist')) {
							$sub.unwrap();
						}
					}
				});
			});
		}
	};
})(jQuery);
regularlabs/js/toggler.js000064400000014045152177723720011505 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var RegularLabsToggler = null;

(function($) {
	"use strict";

	$(document).ready(function() {
		if ($('.rl_toggler').length) {
			RegularLabsToggler.initialize();
		} else {
			// Try again 2 seconds later, because IE sometimes can't see object immediately
			$(function() {
				if ($('.rl_toggler').length) {
					RegularLabsToggler.initialize();
				}
			}).delay(2000);
		}
	});

	RegularLabsToggler = {
		togglers: {}, // holds all the toggle areas
		elements: {}, // holds all the elements and their values that affect toggle areas

		initialize: function() {
			this.togglers = $('.rl_toggler');
			if (!this.togglers.length) {
				return;
			}

			this.initTogglers();
		},

		initTogglers: function() {
			var self = this;

			var new_togglers = {};
			this.elements    = {};

			$.each(this.togglers, function(i, toggler) {
				// init togglers
				if (!toggler.id) {
					return;
				}

				$(toggler).show();
				$(toggler).removeAttr('height');

				toggler.height   = $(toggler).height();
				toggler.elements = {};
				toggler.nofx     = $(toggler).hasClass('rl_toggler_nofx');
				toggler.method   = ($(toggler).hasClass('rl_toggler_and')) ? 'and' : 'or';
				toggler.ids      = toggler.id.split('___');

				for (var i = 1; i < toggler.ids.length; i++) {
					var keyval = toggler.ids[i].split('.');

					var key = keyval[0];
					var val = 1;
					if (keyval.length > 1) {
						val = keyval[1];
					}

					if (typeof toggler.elements[key] === 'undefined') {
						toggler.elements[key] = [];
					}
					toggler.elements[key].push(val);

					if (typeof self.elements[key] === 'undefined') {
						self.elements[key]          = {};
						self.elements[key].elements = [];
						self.elements[key].values   = [];
						self.elements[key].togglers = [];
					}
					self.elements[key].togglers.push(toggler.id);
				}

				new_togglers[toggler.id] = toggler;
			});

			this.togglers = new_togglers;
			new_togglers  = null;

			this.setElements();

			// hide togglers that should be
			$.each(this.togglers, function(i, toggler) {
				self.toggleByID(toggler.id, 1);
			});

			$(document.body).delay(250).css('cursor', '');
		},

		autoHeightDivs: function() {
			// set all divs in the form to auto height
			$.each($('div.col div, div.fltrt div'), function(i, el) {
				if (el.getStyle('height') != '0px'
					&& !el.hasClass('input')
					&& !el.hasClass('rl_hr')
					// GK elements
					&& el.id.indexOf('gk_') < 0
					&& el.className.indexOf('gk_') < 0
					&& el.className.indexOf('switcher-') < 0
				) {
					el.css('height', 'auto');
				}
			});
		},

		toggle: function(el_name) {
			this.setValues(el_name);
			for (var i = 0; i < this.elements[el_name].togglers.length; i++) {
				this.toggleByID(this.elements[el_name].togglers[i]);
			}
			//this.autoHeightDivs();
		},

		toggleByID: function(id, nofx) {
			if (typeof this.togglers[id] === 'undefined') {
				return;
			}

			var toggler = this.togglers[id];

			var show = this.isShow(toggler);

			if (nofx || toggler.nofx) {
				if (show) {
					$(toggler).show();
				} else {
					$(toggler).hide();
				}
			} else {
				if (show) {
					$(toggler).slideDown();
				} else {
					$(toggler).slideUp();
				}
			}
		},

		isShow: function(toggler) {
			var show = (toggler.method == 'and');
			for (var el_name in toggler.elements) {
				var vals   = toggler.elements[el_name];
				var values = this.elements[el_name].values;
				if (
					values != null && values.length
					&& (
						(vals == '*' && values != '')
						|| (vals.toString().substr(0, 1) === '!' && !RegularLabsScripts.in_array(vals.toString().substr(1), values))
						|| RegularLabsScripts.in_array(vals, values)
					)
				) {
					if (toggler.method == 'or') {
						show = 1;
						break;
					}
				} else {
					if (toggler.method == 'and') {
						show = 0;
						break;
					}
				}
			}

			return show;
		},

		setValues: function(el_name) {
			var els = this.elements[el_name].elements;

			var values = [];
			// get value
			$.each(els, function(i, el) {
				switch (el.type) {
					case 'radio':
					case 'checkbox':
						if (el.checked) {
							values.push(el.value);
						}
						break;
					default:
						if (typeof el.elements !== 'undefined' && el.elements.length > 1) {
							for (var i = 0; i < el.elements.length; i++) {
								if (el.checked) {
									values.push(el.value);
								}
							}
						} else {
							values.push(el.value);
						}
						break;
				}
			});
			this.elements[el_name].values = values;
		},

		setElements: function() {
			var self = this;
			$.each($('input, select, textarea'), function(i, el) {
				var el_name = el.name
					.replace('@', '_')
					.replace('[]', '')
					.replace(/^(?:jform\[(?:field)?params\]|jform|params|fieldparams|advancedparams)\[(.*?)\]/g, '\$1')
					.replace(/^(.*?)\[(.*?)\]/g, '\$1_\$2')
					.trim();

				if (el_name !== '') {
					if (typeof self.elements[el_name] !== 'undefined') {
						self.elements[el_name].elements.push(el);
						self.setValues(el_name);
						self.setElementEvents(el, el_name);
					}
				}
			});
		},

		setElementEvents: function(el, el_name) {
			if ($(el).attr('togglerEventAdded')) {
				return;
			}

			var self = this;
			var type;
			if (typeof el.type === 'undefined') {
				if ($(el).prop("tagName").toLowerCase() == 'select') {
					type = 'select';
				}
			} else {
				type = el.type;
			}

			var func = function() {
				self.toggle(el_name);
			};

			switch (type) {
				case 'radio':
				case 'checkbox':
					$(el).bind('click', func).bind('keyup', func);
					break;
				case 'select':
				case 'select-one':
				case 'text':
				case 'textarea':
					$(el).bind('change', func).bind('keyup', func);
					break;
				default:
					$(el).bind('change', func);
					break;
			}

			$(el).attr('togglerEventAdded', 1);
		}
	}
})(jQuery);
regularlabs/js/colorpicker.js000064400000011117152177723720012353 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 */

(function($) {
	"use strict";

	var RegularLabsColorPicker = function(element, options) {
		this.select  = $(element);
		this.options = $.extend({}, $.fn.nncolorpicker.defaults, options);

		this.select.hide();

		// Build the list of colors
		var list = '';
		$('option', this.select).each(function() {
			var option = $(this);
			var color  = option.val();
			if (option.text() == '-') {
				list += '<br>';
			} else {
				var clss = 'nncolorpicker-swatch';
				if (color == 'none') {
					clss += ' nocolor';
					color = 'transparent';
				}
				if (option.attr('selected')) {
					clss += ' active';
				}
				list += '<span class="' + clss + '"><span style="background-color: ' + color + ';" tabindex="0"></span></span>';
			}
		});

		var color = this.select.val();
		var clss  = 'nncolorpicker-swatch';
		if (color == 'none') {
			clss += ' nocolor';
			color = 'transparent';
		}
		this.icon = $('<span class="' + clss + '"><span style="background-color: ' + color + ';" tabindex="0"></span></span>').insertAfter(this.select);
		this.icon.on('click', $.proxy(this.show, this));

		this.panel = $('<span class="nncolorpicker-panel"></span>').appendTo(document.body);
		this.panel.html(list);
		this.panel.on('click', $.proxy(this.click, this));

		// Hide panel when clicking outside
		$(document).on('mousedown', $.proxy(this.hide, this));
		this.panel.on('mousedown', $.proxy(this.mousedown, this));

	};

	/**
	 * RegularLabsColorPicker class
	 */
	RegularLabsColorPicker.prototype = {
		constructor: RegularLabsColorPicker,

		show: function() {
			var bootstrapArrowWidth = 16; // Empirical value
			var pos                 = this.icon.offset();
			this.panel.css({
				left: pos.left + this.icon.width() / 2 - bootstrapArrowWidth, // Middle of the icon
				top : pos.top + this.icon.outerHeight()
			});

			this.panel.show(this.options.delay);
		},

		hide: function() {
			this.panel.hide(this.options.delay);
		},

		click: function(e) {
			var target = $(e.target);
			if (target.length === 1) {
				if (target[0].nodeName.toLowerCase() === 'span') {
					// When you click on a color

					var color   = '';
					var bgcolor = '';
					var clss    = '';
					if (target.parent().hasClass('nocolor')) {
						color   = 'none';
						bgcolor = 'transparent';
						clss    = 'nocolor';
					} else {
						color   = this.rgb2hex(target.css('background-color'));
						bgcolor = color;
					}

					// Mark this div as the selected one
					target.parent().siblings().removeClass('active');
					target.parent().addClass('active');

					this.icon.removeClass('nocolor').addClass(clss);
					this.icon.find('span').css('background-color', bgcolor);

					// Hide the panel
					this.hide();

					// Change select value
					this.select.val(color).change();
				}
			}
		},

		/**
		 * Prevents the mousedown event from "eating" the click event.
		 */
		mousedown: function(e) {
			e.stopPropagation();
			e.preventDefault();
		},

		/**
		 * Converts a RGB color to its hexadecimal value.
		 *
		 * See http://stackoverflow.com/questions/1740700/get-hex-value-rather-than-rgb-value-using-$
		 */
		rgb2hex: function(rgb) {
			function hex(x) {
				return ("0" + parseInt(x, 10).toString(16)).slice(-2);
			}

			var matches = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
			if (matches === null) {
				// Fix for Internet Explorer < 9
				// Variable rgb is already a hexadecimal value
				return rgb;
			} else {
				return '#' + hex(matches[1]) + hex(matches[2]) + hex(matches[3]);
			}
		}
	};

	/**
	 * Plugin definition.
	 */
	$.fn.nncolorpicker = function(option) {
		// For HTML element passed to the plugin
		return this.each(function() {
			var self    = $(this),
				data    = self.data('nncolorpicker'),
				options = typeof option === 'object' && option;
			if (!data) {
				self.data('nncolorpicker', (data = new RegularLabsColorPicker(this, options)));
			}
			if (typeof option === 'string') {
				data[option]();
			}
		});
	};

	$.fn.nncolorpicker.Constructor = RegularLabsColorPicker;

	/**
	 * Default options.
	 */
	$.fn.nncolorpicker.defaults = {
		// Animation delay
		delay: 0
	};

	$(document).ready(function() {
		$('select.nncolorpicker').nncolorpicker();
	});
})(jQuery);
regularlabs/js/colorpicker.min.js000064400000005455152177723720013145 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){var RegularLabsColorPicker=function(element,options){this.select=$(element);this.options=$.extend({},$.fn.nncolorpicker.defaults,options);this.select.hide();var list="";$("option",this.select).each(function(){var option=$(this);var color=option.val();if(option.text()=="-")list+="<br>";else{var clss="nncolorpicker-swatch";if(color=="none"){clss+=" nocolor";color="transparent"}if(option.attr("selected"))clss+=" active";list+='<span class="'+clss+'"><span style="background-color: '+color+
';" tabindex="0"></span></span>'}});var color=this.select.val();var clss="nncolorpicker-swatch";if(color=="none"){clss+=" nocolor";color="transparent"}this.icon=$('<span class="'+clss+'"><span style="background-color: '+color+';" tabindex="0"></span></span>').insertAfter(this.select);this.icon.on("click",$.proxy(this.show,this));this.panel=$('<span class="nncolorpicker-panel"></span>').appendTo(document.body);this.panel.html(list);this.panel.on("click",$.proxy(this.click,this));$(document).on("mousedown",
$.proxy(this.hide,this));this.panel.on("mousedown",$.proxy(this.mousedown,this))};RegularLabsColorPicker.prototype={constructor:RegularLabsColorPicker,show:function(){var bootstrapArrowWidth=16;var pos=this.icon.offset();this.panel.css({left:pos.left+this.icon.width()/2-bootstrapArrowWidth,top:pos.top+this.icon.outerHeight()});this.panel.show(this.options.delay)},hide:function(){this.panel.hide(this.options.delay)},click:function(e){var target=$(e.target);if(target.length===1)if(target[0].nodeName.toLowerCase()===
"span"){var color="";var bgcolor="";var clss="";if(target.parent().hasClass("nocolor")){color="none";bgcolor="transparent";clss="nocolor"}else{color=this.rgb2hex(target.css("background-color"));bgcolor=color}target.parent().siblings().removeClass("active");target.parent().addClass("active");this.icon.removeClass("nocolor").addClass(clss);this.icon.find("span").css("background-color",bgcolor);this.hide();this.select.val(color).change()}},mousedown:function(e){e.stopPropagation();e.preventDefault()},
rgb2hex:function(rgb){function hex(x){return("0"+parseInt(x,10).toString(16)).slice(-2)}var matches=rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(matches===null)return rgb;else return"#"+hex(matches[1])+hex(matches[2])+hex(matches[3])}};$.fn.nncolorpicker=function(option){return this.each(function(){var self=$(this),data=self.data("nncolorpicker"),options=typeof option==="object"&&option;if(!data)self.data("nncolorpicker",data=new RegularLabsColorPicker(this,options));if(typeof option==="string")data[option]()})};
$.fn.nncolorpicker.Constructor=RegularLabsColorPicker;$.fn.nncolorpicker.defaults={delay:0};$(document).ready(function(){$("select.nncolorpicker").nncolorpicker()})})(jQuery);
regularlabs/js/regular.js000064400000005666152177723720011514 0ustar00/**
 * @package         RegularJS
 * @description     A light and simple JavaScript Library
 *
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://github.com/regularlabs/regularjs
 * @copyright       Copyright © 2018 Regular Labs - All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

/*jslint node: true */
"use strict";

window.Regular = {
	addClass: function(el, clss) {
		if (!el) {
			return;
		}

		el.className += ' ' + clss;

		var classes = el.className.split(' ');

		classes = classes.filter(function(value, index, classes) {
			return classes.indexOf(value) === index;
		});

		el.className = classes.join(' ');
	},

	removeClass: function(el, clss) {
		if (!el) {
			return;
		}

		var classes = el.className.split(' ');

		classes = classes.filter(function(value, index, classes) {
			return classes.indexOf(value) === index;
		});

		var index = classes.indexOf(clss);

		if (index != -1) {
			classes.splice(index, 1);
		}

		el.className = classes.join(' ');
	},

	hasClass: function(el, clss) {
		if (!el) {
			return false;
		}

		var classes = el.className.split(' ');

		return classes.indexOf(clss) > -1;
	},

	toggleClass: function(el, clss) {
		if (!el) {
			return;
		}

		if (this.hasClass(el, clss)) {
			this.removeClass(el, clss);
			return;
		}

		this.addClass(el, clss);
	},

	show: function(el) {
		el.style.opacity = 100;

		if (el.style.display == 'none') {
			el.style.display = 'block';
		}
	},

	hide: function(el) {
		el.style.opacity = 0;
		el.style.display = 'none';
	},

	fadeIn: function(el, duration, oncomplete) {
		var self = this;

		duration = duration ? duration : 250; // total time to fade from 1 to 0 opacity

		var wait        = 50; // amount of time between steps
		var nr_of_steps = duration / wait;
		var change      = 1 / nr_of_steps; // time to wait before next step

		if (!el.style.opacity || el.style.opacity == 1) {
			el.style.opacity = 0;
		}
		if (el.style.display == 'none') {
			el.style.display = 'block';
		}

		(function fade() {
			el.style.opacity = parseFloat(el.style.opacity) + change;
			if (el.style.opacity >= 1) {
				self.show(el);
				if (oncomplete) {
					oncomplete.call();
				}
				return;
			}
			setTimeout(function() {
				fade.call();
			}, wait);
		})();
	},

	fadeOut: function(el, duration, oncomplete) {
		var self = this;

		duration = duration ? duration : 250; // total time to fade from 1 to 0 opacity

		var wait        = 50; // amount of time between steps
		var nr_of_steps = duration / wait;
		var change      = 1 / nr_of_steps; // time to wait before next step

		if (!el.style.opacity || el.style.opacity == 0) {
			el.style.opacity = 1;
		}

		(function fade() {
			el.style.opacity = parseFloat(el.style.opacity) - change;
			if (el.style.opacity <= 0) {
				self.hide(el);
				if (oncomplete) {
					oncomplete.call();
				}
				return;
			}
			setTimeout(function() {
				fade.call();
			}, wait);
		})();
	}
};
regularlabs/js/script.js000064400000015315152177723720011347 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var RegularLabsScripts = null;

(function($) {
	"use strict";

	RegularLabsScripts = {
		ajax_list        : [],
		started_ajax_list: false,
		ajax_list_timer  : null,

		loadajax: function(url, success, fail, query, timeout, dataType, cache) {
			// console.log(url);

			if (url.indexOf('index.php') !== 0 && url.indexOf('administrator/index.php') !== 0) {
				url = url.replace('http://', '');
				url = 'index.php?rl_qp=1&url=' + encodeURIComponent(url);
				if (timeout) {
					url += '&timeout=' + timeout;
				}
				if (cache) {
					url += '&cache=' + cache;
				}
			}

			var base = window.location.pathname;
			base     = base.substring(0, base.lastIndexOf('/'));

			if (
				typeof Joomla !== 'undefined'
				&& typeof Joomla.getOptions !== 'undefined'
				&& Joomla.getOptions('system.paths')
			) {
				var paths = Joomla.getOptions('system.paths');
				base      = paths.base;
			}

			// console.log(url);
			// console.log(base + '/' + url);

			$.ajax({
				type    : 'post',
				url     : base + '/' + url,
				dataType: dataType ? dataType : '',
				success : function(data) {
					if (success) {
						eval(success + ';');
					}
				},
				error   : function(data) {
					if (fail) {
						eval(fail + ';');
					}
				}
			});
		},

		displayVersion: function(data, extension, version) {
			if (!data) {
				return;
			}

			var xml = this.getObjectFromXML(data);

			if (!xml) {
				return;
			}

			if (typeof xml[extension] === 'undefined') {
				return;
			}

			var dat = xml[extension];

			if (!dat || typeof dat.version === 'undefined' || !dat.version) {
				return;
			}

			var new_version = dat.version;
			var compare     = this.compareVersions(version, new_version);

			if (compare != '<') {
				return;
			}

			var el = $('#regularlabs_newversionnumber_' + extension);
			if (el) {
				el.text(new_version);
			}

			el = $('#regularlabs_version_' + extension);
			if (el) {
				el.css('display', 'block');
				el.parent().removeClass('hide');
			}
		},

		addToLoadAjaxList: function(url, success, error) {
			// wrap inside the loadajax function (and escape string values)
			var action = "RegularLabsScripts.loadajax(" +
				"'" + url.replace(/'/g, "\\'") + "'," +
				"'" + success.replace(/'/g, "\\'") + ";RegularLabsScripts.ajaxRun();'," +
				"'" + error.replace(/'/g, "\\'") + ";RegularLabsScripts.ajaxRun();'" +
				")";

			this.addToAjaxList(action);
		},

		addToAjaxList: function(action) {
			this.ajax_list.push(action);

			if (!this.started_ajax_list) {
				this.ajaxRun();
			}
		},

		ajaxRun: function() {
			if (typeof RegularLabsToggler !== 'undefined') {
				RegularLabsToggler.initialize();
			}

			if (!this.ajax_list.length) {
				return;
			}

			clearTimeout(this.ajax_list_timer);

			this.started_ajax_list = true;

			var action = this.ajax_list.shift();

			eval(action + ';');

			if (!this.ajax_list.length) {
				return;
			}

			// Re-trigger this ajaxRun function just in case it hangs somewhere
			this.ajax_list_timer = setTimeout(
				function() {
					RegularLabsScripts.ajaxRun();
				},
				5000
			);
		},

		in_array: function(needle, haystack, casesensitive) {
			if ({}.toString.call(needle).slice(8, -1) != 'Array') {
				needle = [needle];
			}
			if ({}.toString.call(haystack).slice(8, -1) != 'Array') {
				haystack = [haystack];
			}

			for (var h = 0; h < haystack.length; h++) {
				for (var n = 0; n < needle.length; n++) {
					if (casesensitive) {
						if (haystack[h] == needle[n]) {
							return true;
						}
					} else {
						if (haystack[h].toLowerCase() == needle[n].toLowerCase()) {
							return true;
						}
					}
				}
			}
			return false;
		},

		getObjectFromXML: function(xml) {
			if (!xml) {
				return;
			}

			var obj = [];
			$(xml).find('extension').each(function() {
				var el = [];
				$(this).children().each(function() {
					el[this.nodeName.toLowerCase()] = String($(this).text()).trim();
				});
				if (typeof el.alias !== 'undefined') {
					obj[el.alias] = el;
				}
				if (typeof el.extname !== 'undefined' && el.extname != el.alias) {
					obj[el.extname] = el;
				}
			});

			return obj;
		},

		compareVersions: function(num1, num2) {
			num1 = num1.split('.');
			num2 = num2.split('.');

			var let1 = '';
			var let2 = '';

			var max = Math.max(num1.length, num2.length);
			for (var i = 0; i < max; i++) {
				if (typeof num1[i] === 'undefined') {
					num1[i] = '0';
				}
				if (typeof num2[i] === 'undefined') {
					num2[i] = '0';
				}

				let1    = num1[i].replace(/^[0-9]*(.*)/, '$1');
				num1[i] = parseInt(num1[i]);
				let2    = num2[i].replace(/^[0-9]*(.*)/, '$1');
				num2[i] = parseInt(num2[i]);

				if (num1[i] < num2[i]) {
					return '<';
				}

				if (num1[i] > num2[i]) {
					return '>';
				}
			}

			// numbers are same, so compare trailing letters
			if (let2 && (!let1 || let1 > let2)) {
				return '>';
			}

			if (let1 && (!let2 || let1 < let2)) {
				return '<';
			}

			return '=';
		},

		getEditorSelection: function(editorname) {
			var editor_textarea = document.getElementById(editorname);

			if (!editor_textarea) {
				return '';
			}

			var iframes = editor_textarea.parentNode.getElementsByTagName('iframe');

			if (!iframes.length) {
				return '';
			}

			var editor_frame  = iframes[0];
			var contentWindow = editor_frame.contentWindow;

			if (typeof contentWindow.getSelection !== 'undefined') {
				var sel = contentWindow.getSelection();

				if (sel.rangeCount) {
					var container = contentWindow.document.createElement("div");
					var len       = sel.rangeCount;
					for (var i = 0; i < len; ++i) {
						container.appendChild(sel.getRangeAt(i).cloneContents());
					}

					return container.innerHTML;
				}

				return '';
			}

			if (typeof contentWindow.document.selection !== 'undefined') {
				if (contentWindow.document.selection.type == "Text") {
					return contentWindow.document.selection.createRange().htmlText;
				}
			}

			return '';
		},

		/* 2018-11-01: These methods have moved to RegularLabsForm. Keeping them here for backwards compatibility. */
		setRadio                 : function(id, value) {
		},
		initCheckAlls            : function(id, classname) {
		},
		allChecked               : function(classname) {
			return false;
		},
		checkAll                 : function(checkbox, classname) {
		},
		toggleSelectListSelection: function(id) {
		},
		prependTextarea          : function(id, content, separator) {
		},
		setToggleTitleClass      : function(input, value) {
		}
	};
})(jQuery);
regularlabs/js/color.min.js000064400000036065152177723720011750 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
if(jQuery)(function($){$(document).ready(function(){$(".rl_color").minicolors()});$.minicolors={defaultSettings:{animationSpeed:100,animationEasing:"swing",change:null,changeDelay:0,control:"hue",defaultValue:"",hide:null,hideSpeed:100,inline:false,letterCase:"lowercase",opacity:false,position:"default",show:null,showSpeed:100,swatchPosition:"left",textfield:true,theme:"default"}};$.extend($.fn,{minicolors:function(method,data){switch(method){case "destroy":$(this).each(function(){destroy($(this))});
return $(this);case "opacity":if(data===undefined)return $(this).attr("data-opacity");else{$(this).each(function(){refresh($(this).attr("data-opacity",data))});return $(this)}case "rgbObject":return rgbObject($(this),method==="rgbaObject");case "rgbString":case "rgbaString":return rgbString($(this),method==="rgbaString");case "settings":if(data===undefined)return $(this).data("minicolors-settings");else{$(this).each(function(){var settings=$(this).data("minicolors-settings")||{};destroy($(this));
$(this).minicolors($.extend(true,settings,data))});return $(this)}case "value":if(data===undefined)return $(this).val();else{$(this).each(function(){refresh($(this).val(data))});return $(this)}case "create":default:if(method!=="create")data=method;$(this).each(function(){init($(this),data)});return $(this)}}});function init(input,settings){var minicolors=$('<span class="minicolors" />'),defaultSettings=$.minicolors.defaultSettings;if(input.data("minicolors-initialized"))return;settings=$.extend(true,
{},defaultSettings,settings);minicolors.addClass("minicolors-theme-"+settings.theme).addClass("minicolors-swatch-position-"+settings.swatchPosition).toggleClass("minicolors-swatch-left",settings.swatchPosition==="left").toggleClass("minicolors-with-opacity",settings.opacity);if(settings.position!==undefined)$.each(settings.position.split(" "),function(){minicolors.addClass("minicolors-position-"+this)});input.addClass("minicolors-input").data("minicolors-initialized",true).data("minicolors-settings",
settings).prop("size",7).prop("maxlength",7).wrap(minicolors).after('<span class="minicolors-panel minicolors-slider-'+settings.control+'">'+'<span class="minicolors-slider">'+'<span class="minicolors-picker"></span>'+"</span>"+'<span class="minicolors-opacity-slider">'+'<span class="minicolors-picker"></span>'+"</span>"+'<span class="minicolors-grid">'+'<span class="minicolors-grid-inner"></span>'+'<span class="minicolors-picker"><span></span></span>'+"</span>"+"</span>");input.parent().find(".minicolors-panel").on("selectstart",
function(){return false}).end();if(settings.swatchPosition==="left")input.before('<span class="minicolors-swatch"><span></span></span>');else input.after('<span class="minicolors-swatch"><span></span></span>');if(!settings.textfield)input.addClass("minicolors-hidden");if(settings.inline)input.parent().addClass("minicolors-inline");updateFromInput(input)}function destroy(input){var minicolors=input.parent();input.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeProp("maxlength").removeClass("minicolors-input");
minicolors.before(input).remove()}function refresh(input){updateFromInput(input)}function show(input){var minicolors=input.parent(),panel=minicolors.find(".minicolors-panel"),settings=input.data("minicolors-settings");if(!input.data("minicolors-initialized")||input.prop("disabled")||minicolors.hasClass("minicolors-focus"))return;hide();minicolors.addClass("minicolors-focus");panel.stop(true,true).fadeIn(settings.showSpeed,function(){if(settings.show)settings.show.call(input)})}function hide(){$(".minicolors-input").each(function(){var input=
$(this),settings=input.data("minicolors-settings"),minicolors=input.parent();if(settings.inline)return;minicolors.find(".minicolors-panel").fadeOut(settings.hideSpeed,function(){if(minicolors.hasClass("minicolors-focus"))if(settings.hide)settings.hide.call(input);minicolors.removeClass("minicolors-focus")})})}function move(target,event,animate){var input=target.parents(".minicolors").find(".minicolors-input"),settings=input.data("minicolors-settings"),picker=target.find("[class$=-picker]"),offsetX=
target.offset().left,offsetY=target.offset().top,x=Math.round(event.pageX-offsetX),y=Math.round(event.pageY-offsetY),duration=animate?settings.animationSpeed:0,wx,wy,r,phi;if(event.originalEvent.changedTouches){x=event.originalEvent.changedTouches[0].pageX-offsetX;y=event.originalEvent.changedTouches[0].pageY-offsetY}if(x<0)x=0;if(y<0)y=0;if(x>target.width())x=target.width();if(y>target.height())y=target.height();if(target.parent().is(".minicolors-slider-wheel")&&picker.parent().is(".minicolors-grid")){wx=
75-x;wy=75-y;r=Math.sqrt(wx*wx+wy*wy);phi=Math.atan2(wy,wx);if(phi<0)phi+=Math.PI*2;if(r>75){r=75;x=75-75*Math.cos(phi);y=75-75*Math.sin(phi)}x=Math.round(x);y=Math.round(y)}if(target.is(".minicolors-grid"))picker.stop(true).animate({top:y+"px",left:x+"px"},duration,settings.animationEasing,function(){updateFromControl(input)});else picker.stop(true).animate({top:y+"px"},duration,settings.animationEasing,function(){updateFromControl(input)})}function updateFromControl(input){function getCoords(picker,
container){var left,top;if(!picker.length||!container)return null;left=picker.offset().left;top=picker.offset().top;return{x:left-container.offset().left+picker.outerWidth()/2,y:top-container.offset().top+picker.outerHeight()/2}}var hue,saturation,brightness,opacity,rgb,hex,x,y,r,phi,minicolors=input.parent(),settings=input.data("minicolors-settings"),panel=minicolors.find(".minicolors-panel"),swatch=minicolors.find(".minicolors-swatch"),grid=minicolors.find(".minicolors-grid"),slider=minicolors.find(".minicolors-slider"),
opacitySlider=minicolors.find(".minicolors-opacity-slider"),gridPicker=grid.find("[class$=-picker]"),sliderPicker=slider.find("[class$=-picker]"),opacityPicker=opacitySlider.find("[class$=-picker]"),gridPos=getCoords(gridPicker,grid),sliderPos=getCoords(sliderPicker,slider),opacityPos=getCoords(opacityPicker,opacitySlider);switch(settings.control){case "wheel":x=grid.width()/2-gridPos.x;y=grid.height()/2-gridPos.y;r=Math.sqrt(x*x+y*y);phi=Math.atan2(y,x);if(phi<0)phi+=Math.PI*2;if(r>75){r=75;gridPos.x=
69-75*Math.cos(phi);gridPos.y=69-75*Math.sin(phi)}saturation=keepWithin(r/.75,0,100);hue=keepWithin(phi*180/Math.PI,0,360);brightness=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});slider.css("backgroundColor",hsb2hex({h:hue,s:saturation,b:100}));break;case "saturation":hue=keepWithin(parseInt(gridPos.x*(360/grid.width())),0,360);saturation=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);brightness=keepWithin(100-
Math.floor(gridPos.y*(100/grid.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});slider.css("backgroundColor",hsb2hex({h:hue,s:100,b:brightness}));minicolors.find(".minicolors-grid-inner").css("opacity",saturation/100);break;case "brightness":hue=keepWithin(parseInt(gridPos.x*(360/grid.width())),0,360);saturation=keepWithin(100-Math.floor(gridPos.y*(100/grid.height())),0,100);brightness=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);hex=hsb2hex({h:hue,s:saturation,
b:brightness});slider.css("backgroundColor",hsb2hex({h:hue,s:saturation,b:100}));minicolors.find(".minicolors-grid-inner").css("opacity",1-brightness/100);break;default:hue=keepWithin(360-parseInt(sliderPos.y*(360/slider.height())),0,360);saturation=keepWithin(Math.floor(gridPos.x*(100/grid.width())),0,100);brightness=keepWithin(100-Math.floor(gridPos.y*(100/grid.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});grid.css("backgroundColor",hsb2hex({h:hue,s:100,b:100}));break}if(settings.opacity)opacity=
parseFloat(1-opacityPos.y/opacitySlider.height()).toFixed(2);else opacity=1;input.val(convertCase(hex,settings.letterCase));if(settings.opacity)input.attr("data-opacity",opacity);swatch.find("SPAN").css({backgroundColor:hex,opacity:opacity});if(hex+opacity!==input.data("minicolors-lastChange")){input.data("minicolors-lastChange",hex+opacity);if(settings.change)if(settings.changeDelay){clearTimeout(input.data("minicolors-changeTimeout"));input.data("minicolors-changeTimeout",setTimeout(function(){settings.change.call(input,
hex,opacity)},settings.changeDelay))}else settings.change.call(input,hex,opacity)}}function updateFromInput(input,preserveInputValue){var hex,hsb,opacity,x,y,r,phi,minicolors=input.parent(),settings=input.data("minicolors-settings"),swatch=minicolors.find(".minicolors-swatch"),grid=minicolors.find(".minicolors-grid"),slider=minicolors.find(".minicolors-slider"),opacitySlider=minicolors.find(".minicolors-opacity-slider"),gridPicker=grid.find("[class$=-picker]"),sliderPicker=slider.find("[class$=-picker]"),
opacityPicker=opacitySlider.find("[class$=-picker]");hex=convertCase(parseHex(input.val(),true),settings.letterCase);if(!hex)hex=convertCase(parseHex(settings.defaultValue,true));hsb=hex2hsb(hex);if(!preserveInputValue)input.val(hex);if(settings.opacity){opacity=input.attr("data-opacity")===""?1:keepWithin(parseFloat(input.attr("data-opacity")).toFixed(2),0,1);input.attr("data-opacity",opacity);swatch.find("SPAN").css("opacity",opacity);y=keepWithin(opacitySlider.height()-opacitySlider.height()*opacity,
0,opacitySlider.height());opacityPicker.css("top",y+"px")}swatch.find("SPAN").css("backgroundColor",hex);switch(settings.control){case "wheel":r=keepWithin(Math.ceil(hsb.s*.75),0,grid.height()/2);phi=hsb.h*Math.PI/180;x=keepWithin(75-Math.cos(phi)*r,0,grid.width());y=keepWithin(75-Math.sin(phi)*r,0,grid.height());gridPicker.css({top:y+"px",left:x+"px"});y=150-hsb.b/(100/grid.height());if(hex==="")y=0;sliderPicker.css("top",y+"px");slider.css("backgroundColor",hsb2hex({h:hsb.h,s:hsb.s,b:100}));break;
case "saturation":x=keepWithin(5*hsb.h/12,0,150);y=keepWithin(grid.height()-Math.ceil(hsb.b/(100/grid.height())),0,grid.height());gridPicker.css({top:y+"px",left:x+"px"});y=keepWithin(slider.height()-hsb.s*(slider.height()/100),0,slider.height());sliderPicker.css("top",y+"px");slider.css("backgroundColor",hsb2hex({h:hsb.h,s:100,b:hsb.b}));minicolors.find(".minicolors-grid-inner").css("opacity",hsb.s/100);break;case "brightness":x=keepWithin(5*hsb.h/12,0,150);y=keepWithin(grid.height()-Math.ceil(hsb.s/
(100/grid.height())),0,grid.height());gridPicker.css({top:y+"px",left:x+"px"});y=keepWithin(slider.height()-hsb.b*(slider.height()/100),0,slider.height());sliderPicker.css("top",y+"px");slider.css("backgroundColor",hsb2hex({h:hsb.h,s:hsb.s,b:100}));minicolors.find(".minicolors-grid-inner").css("opacity",1-hsb.b/100);break;default:x=keepWithin(Math.ceil(hsb.s/(100/grid.width())),0,grid.width());y=keepWithin(grid.height()-Math.ceil(hsb.b/(100/grid.height())),0,grid.height());gridPicker.css({top:y+"px",
left:x+"px"});y=keepWithin(slider.height()-hsb.h/(360/slider.height()),0,slider.height());sliderPicker.css("top",y+"px");grid.css("backgroundColor",hsb2hex({h:hsb.h,s:100,b:100}));break}}function rgbObject(input){var hex=parseHex($(input).val(),true),rgb=hex2rgb(hex),opacity=$(input).attr("data-opacity");if(!rgb)return null;if(opacity!==undefined)$.extend(rgb,{a:parseFloat(opacity)});return rgb}function rgbString(input,alpha){var hex=parseHex($(input).val(),true),rgb=hex2rgb(hex),opacity=$(input).attr("data-opacity");
if(!rgb)return null;if(opacity===undefined)opacity=1;if(alpha)return"rgba("+rgb.r+", "+rgb.g+", "+rgb.b+", "+parseFloat(opacity)+")";else return"rgb("+rgb.r+", "+rgb.g+", "+rgb.b+")"}function convertCase(string,letterCase){return letterCase==="uppercase"?string.toUpperCase():string.toLowerCase()}function parseHex(string,expand){string=string.replace(/[^A-F0-9]/ig,"");if(string.length!==3&&string.length!==6)return"";if(string.length===3&&expand)string=string[0]+string[0]+string[1]+string[1]+string[2]+
string[2];return"#"+string}function keepWithin(value,min,max){if(value<min)value=min;if(value>max)value=max;return value}function hsb2rgb(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s===0)rgb.r=rgb.g=rgb.b=v;else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h===360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3}else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3}else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3}else if(h<240){rgb.b=t1;rgb.r=
t2;rgb.g=t1-t3}else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3}else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3}else{rgb.r=0;rgb.g=0;rgb.b=0}}return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)}}function rgb2hex(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length===1)hex[nr]="0"+val});return"#"+hex.join("")}function hsb2hex(hsb){return rgb2hex(hsb2rgb(hsb))}function hex2hsb(hex){var hsb=rgb2hsb(hex2rgb(hex));if(hsb.s===0)hsb.h=
360;return hsb}function rgb2hsb(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;hsb.s=max!==0?255*delta/max:0;if(hsb.s!==0)if(rgb.r===max)hsb.h=(rgb.g-rgb.b)/delta;else if(rgb.g===max)hsb.h=2+(rgb.b-rgb.r)/delta;else hsb.h=4+(rgb.r-rgb.g)/delta;else hsb.h=-1;hsb.h*=60;if(hsb.h<0)hsb.h+=360;hsb.s*=100/255;hsb.b*=100/255;return hsb}function hex2rgb(hex){hex=parseInt(hex.indexOf("#")>-1?hex.substring(1):hex,16);return{r:hex>>
16,g:(hex&65280)>>8,b:hex&255}}$(document).on("mousedown.minicolors touchstart.minicolors",function(event){if(!$(event.target).parents().add(event.target).hasClass("minicolors"))hide()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(event){var target=$(this);event.preventDefault();$(document).data("minicolors-target",target);move(target,event,true)}).on("mousemove.minicolors touchmove.minicolors",function(event){var target=
$(document).data("minicolors-target");if(target)move(target,event)}).on("mouseup.minicolors touchend.minicolors",function(){$(this).removeData("minicolors-target")}).on("mousedown.minicolors touchstart.minicolors",".minicolors-swatch",function(){var input=$(this).parent().find(".minicolors-input"),minicolors=input.parent();if(minicolors.hasClass("minicolors-focus"))hide(input);else show(input)}).on("focus.minicolors",".minicolors-input",function(){var input=$(this);if(!input.data("minicolors-initialized"))return;
show(input)}).on("blur.minicolors",".minicolors-input",function(){var input=$(this),settings=input.data("minicolors-settings");if(!input.data("minicolors-initialized"))return;input.val(parseHex(input.val(),true));if(input.val()==="")input.val(parseHex(settings.defaultValue,true));input.val(convertCase(input.val(),settings.letterCase));hide(input)}).on("keydown.minicolors",".minicolors-input",function(event){var input=$(this);if(!input.data("minicolors-initialized"))return;switch(event.keyCode){case 9:hide();
break;case 27:hide();input.blur();break}}).on("keyup.minicolors",".minicolors-input",function(){var input=$(this);if(!input.data("minicolors-initialized"))return;updateFromInput(input,true)}).on("paste.minicolors",".minicolors-input",function(){var input=$(this);if(!input.data("minicolors-initialized"))return;setTimeout(function(){updateFromInput(input,true)},1)})})(jQuery);regularlabs/js/script.min.js000064400000010751152177723720012130 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var RegularLabsScripts=null;
(function($){RegularLabsScripts={ajax_list:[],started_ajax_list:false,ajax_list_timer:null,loadajax:function(url,success,fail,query,timeout,dataType,cache){if(url.indexOf("index.php")!==0&&url.indexOf("administrator/index.php")!==0){url=url.replace("http://","");url="index.php?rl_qp=1&url="+encodeURIComponent(url);if(timeout)url+="&timeout="+timeout;if(cache)url+="&cache="+cache}var base=window.location.pathname;base=base.substring(0,base.lastIndexOf("/"));if(typeof Joomla!=="undefined"&&typeof Joomla.getOptions!==
"undefined"&&Joomla.getOptions("system.paths")){var paths=Joomla.getOptions("system.paths");base=paths.base}$.ajax({type:"post",url:base+"/"+url,dataType:dataType?dataType:"",success:function(data){if(success)eval(success+";")},error:function(data){if(fail)eval(fail+";")}})},displayVersion:function(data,extension,version){if(!data)return;var xml=this.getObjectFromXML(data);if(!xml)return;if(typeof xml[extension]==="undefined")return;var dat=xml[extension];if(!dat||typeof dat.version==="undefined"||
!dat.version)return;var new_version=dat.version;var compare=this.compareVersions(version,new_version);if(compare!="<")return;var el=$("#regularlabs_newversionnumber_"+extension);if(el)el.text(new_version);el=$("#regularlabs_version_"+extension);if(el){el.css("display","block");el.parent().removeClass("hide")}},addToLoadAjaxList:function(url,success,error){var action="RegularLabsScripts.loadajax("+"'"+url.replace(/'/g,"\\'")+"',"+"'"+success.replace(/'/g,"\\'")+";RegularLabsScripts.ajaxRun();',"+"'"+
error.replace(/'/g,"\\'")+";RegularLabsScripts.ajaxRun();'"+")";this.addToAjaxList(action)},addToAjaxList:function(action){this.ajax_list.push(action);if(!this.started_ajax_list)this.ajaxRun()},ajaxRun:function(){if(typeof RegularLabsToggler!=="undefined")RegularLabsToggler.initialize();if(!this.ajax_list.length)return;clearTimeout(this.ajax_list_timer);this.started_ajax_list=true;var action=this.ajax_list.shift();eval(action+";");if(!this.ajax_list.length)return;this.ajax_list_timer=setTimeout(function(){RegularLabsScripts.ajaxRun()},
5E3)},in_array:function(needle,haystack,casesensitive){if({}.toString.call(needle).slice(8,-1)!="Array")needle=[needle];if({}.toString.call(haystack).slice(8,-1)!="Array")haystack=[haystack];for(var h=0;h<haystack.length;h++)for(var n=0;n<needle.length;n++)if(casesensitive){if(haystack[h]==needle[n])return true}else if(haystack[h].toLowerCase()==needle[n].toLowerCase())return true;return false},getObjectFromXML:function(xml){if(!xml)return;var obj=[];$(xml).find("extension").each(function(){var el=
[];$(this).children().each(function(){el[this.nodeName.toLowerCase()]=String($(this).text()).trim()});if(typeof el.alias!=="undefined")obj[el.alias]=el;if(typeof el.extname!=="undefined"&&el.extname!=el.alias)obj[el.extname]=el});return obj},compareVersions:function(num1,num2){num1=num1.split(".");num2=num2.split(".");var let1="";var let2="";var max=Math.max(num1.length,num2.length);for(var i=0;i<max;i++){if(typeof num1[i]==="undefined")num1[i]="0";if(typeof num2[i]==="undefined")num2[i]="0";let1=
num1[i].replace(/^[0-9]*(.*)/,"$1");num1[i]=parseInt(num1[i]);let2=num2[i].replace(/^[0-9]*(.*)/,"$1");num2[i]=parseInt(num2[i]);if(num1[i]<num2[i])return"<";if(num1[i]>num2[i])return">"}if(let2&&(!let1||let1>let2))return">";if(let1&&(!let2||let1<let2))return"<";return"="},getEditorSelection:function(editorname){var editor_textarea=document.getElementById(editorname);if(!editor_textarea)return"";var iframes=editor_textarea.parentNode.getElementsByTagName("iframe");if(!iframes.length)return"";var editor_frame=
iframes[0];var contentWindow=editor_frame.contentWindow;if(typeof contentWindow.getSelection!=="undefined"){var sel=contentWindow.getSelection();if(sel.rangeCount){var container=contentWindow.document.createElement("div");var len=sel.rangeCount;for(var i=0;i<len;++i)container.appendChild(sel.getRangeAt(i).cloneContents());return container.innerHTML}return""}if(typeof contentWindow.document.selection!=="undefined")if(contentWindow.document.selection.type=="Text")return contentWindow.document.selection.createRange().htmlText;
return""},setRadio:function(id,value){},initCheckAlls:function(id,classname){},allChecked:function(classname){return false},checkAll:function(checkbox,classname){},toggleSelectListSelection:function(id){},prependTextarea:function(id,content,separator){},setToggleTitleClass:function(input,value){}}})(jQuery);regularlabs/js/jquery.cookie.min.js000064400000002416152177723720013412 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($,document,undefined){var pluses=/\+/g;function raw(s){return s}function decoded(s){return decodeURIComponent(s.replace(pluses," "))}var config=$.cookie=function(key,value,options){if(value!==undefined){options=$.extend({},config.defaults,options);if(value===null)options.expires=-1;if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date;t.setDate(t.getDate()+days)}value=config.json?JSON.stringify(value):String(value);return document.cookie=[encodeURIComponent(key),
"=",config.raw?value:encodeURIComponent(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join("")}var decode=config.raw?raw:decoded;var cookies=document.cookie.split("; ");for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split("=");if(decode(parts.shift())===key){var cookie=decode(parts.join("="));return config.json?JSON.parse(cookie):cookie}}return null};
config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)!==null){$.cookie(key,null,options);return true}return false}})(jQuery,document);
regularlabs/js/textareaplus.min.js000064400000001000152177723720013330 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){$(document).ready(function(){$(".rl_resize_textarea").click(function(){var $el=$(this);var $field=$("#"+$el.attr("data-id"));if($el.hasClass("rl_minimize")){$el.removeClass("rl_minimize").addClass("rl_maximize");$field.css({"height":$el.attr("data-min")});return}$el.removeClass("rl_maximize").addClass("rl_minimize");$field.css({"height":$el.attr("data-max")})})})})(jQuery);regularlabs/js/textareaplus.js000064400000001453152177723720012562 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	"use strict";

	$(document).ready(function() {

		$('.rl_resize_textarea').click(function() {
			var $el    = $(this);
			var $field = $('#' + $el.attr('data-id'));

			if ($el.hasClass('rl_minimize')) {
				$el.removeClass('rl_minimize').addClass('rl_maximize');
				$field.css({'height': $el.attr('data-min')});
				return;
			}

			$el.removeClass('rl_maximize').addClass('rl_minimize');
			$field.css({'height': $el.attr('data-max')});
		});
	});
})(jQuery);
regularlabs/js/form.js000064400000013255152177723720011007 0ustar00/**
 * @package         Regular Labs Library
 * @version         19.7.21312
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var RegularLabsForm = null;

(function($) {
	"use strict";

	RegularLabsForm = {
		getValue: function(name, escape) {
			var $field = $('[name="' + name + '"]');

			if (!$field.length) {
				$field = $('[name="' + name + '[]"]');
			}

			if (!$field.length) {
				return;
			}

			var type = $field[0].type;

			switch (type) {
				case 'radio':
					$field = $('[name="' + name + '"]:checked');
					break;

				case 'checkbox':
					return this.getValuesFromList($('[name="' + name + '[]"]:checked'), escape);

				case 'select':
				case 'select-one':
				case 'select-multiple':
					return this.getValuesFromList($field.find('option:checked'), escape);
			}

			return this.prepareValue($field.val(), escape);
		},

		getValuesFromList: function($elements, escape) {
			var self = this;

			var values = [];

			$elements.each(function() {
				values.push(self.prepareValue($(this).val(), escape));
			});

			return values;
		},

		prepareValue: function(value, escape) {
			if (!isNaN(value) && value.indexOf('.') < 0) {
				return parseInt(value);
			}

			if (escape) {
				value = value.replace(/"/g, '\\"');
			}

			return value.trim();
		},

		toTextValue: function(str) {
			return (str + '').replace(/^[\s-]*/, '').trim();
		},

		toSimpleValue: function(str) {
			return (str + '').toLowerCase().replace(/[^0-9a-z]/g, '').trim();
		},

		preg_quote: function(str) {
			return (str + '').replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!<>\|\:])/g, '\\$1');
		},

		escape: function(str) {
			return (str + '').replace(/([\"])/g, '\\$1');
		},

		setRadio: function(id, value) {
			value = value ? 1 : 0;
			document.getElements('input#jform_' + id + value + ',input#jform_params_' + id + value + ',input#advancedparams_' + id + value).each(function(el) {
				el.click();
			});
		},

		initCheckAlls: function(id, classname) {
			$('#' + id).attr('checked', this.allChecked(classname));
			$('input.' + classname).click(function() {
				$('#' + id).attr('checked', this.allChecked(classname));
			});
		},

		allChecked: function(classname) {
			return $('input.' + classname + ':checkbox:not(:checked)').length < 1;
		},

		checkAll: function(checkbox, classname) {
			var allchecked = this.allChecked(classname);
			$(checkbox).attr('checked', !allchecked);
			$('input.' + classname).attr('checked', !allchecked);
		},

		getEditorSelection: function(editorname) {
			var editor_textarea = document.getElementById(editorname);

			if (!editor_textarea) {
				return '';
			}

			var iframes = editor_textarea.parentNode.getElementsByTagName('iframe');

			if (!iframes.length) {
				return '';
			}

			var editor_frame  = iframes[0];
			var contentWindow = editor_frame.contentWindow;

			if (typeof contentWindow.getSelection !== 'undefined') {
				var sel = contentWindow.getSelection();

				if (sel.rangeCount) {
					var container = contentWindow.document.createElement("div");
					var len       = sel.rangeCount;
					for (var i = 0; i < len; ++i) {
						container.appendChild(sel.getRangeAt(i).cloneContents());
					}

					return container.innerHTML;
				}

				return '';
			}

			if (typeof contentWindow.document.selection !== 'undefined') {
				if (contentWindow.document.selection.type == "Text") {
					return contentWindow.document.selection.createRange().htmlText;
				}
			}

			return '';
		},

		toggleSelectListSelection: function(id) {
			var el = document.getElement('#' + id);
			if (el && el.options) {
				for (var i = 0; i < el.options.length; i++) {
					if (!el.options[i].disabled) {
						el.options[i].selected = !el.options[i].selected;
					}
				}
			}
		},

		prependTextarea: function(id, content, separator) {
			var textarea     = jQuery('#' + id);
			var orig_content = textarea.val().trim();

			if (orig_content && separator) {
				orig_content = "\n\n" + separator + "\n\n" + orig_content;
			}

			textarea.val(content + orig_content);
		},

		setToggleTitleClass: function(input, value) {
			var el = $(input).parent().parent().parent().parent();

			el.removeClass('alert-success').removeClass('alert-error');
			if (value === 2) {
				el.addClass('alert-error');
			} else if (value) {
				el.addClass('alert-success');
			}
		}
	};

	$(document).ready(function() {
		removeEmptyControlGroups();
		addKeyUpOnShowOn();

		function removeEmptyControlGroups() {
			// remove all empty control groups
			$('div.control-group > div').each(function(i, el) {
				if (
					$(el).html().trim() == ''
					&& (
						$(el).attr('class') == 'control-label'
						|| $(el).attr('class') == 'controls'
					)
				) {
					$(el).remove();
				}
			});
			$('div.control-group').each(function(i, el) {
				if ($(el).html().trim() == '') {
					$(el).remove();
				}
			});
			$('div.control-group > div.hide').each(function(i, el) {
				$(el).parent().css('margin', 0);
			});
		}

		/**
		 * Adds keyup triggers to fields to trigger show/hide of showon fields
		 */
		function addKeyUpOnShowOn() {
			var field_ids = [];

			$('[data-showon]').each(function() {
				var $target  = $(this);
				var jsondata = $target.data('showon') || [];

				// Collect an all referenced elements
				for (var i = 0, len = jsondata.length; i < len; i++) {
					field_ids.push('[name="' + jsondata[i]['field'] + '"]');
					field_ids.push('[name="' + jsondata[i]['field'] + '[]"]');
				}
			});

			// Trigger the change event on keyup
			$(field_ids.join(',')).on('keyup', function() {
				$(this).change();
			});
		}
	});

})(jQuery);
regularlabs/images/logo.png000064400000006251152177723720012003 0ustar00�PNG


IHDR0�hd��PLTE=
!A�!A�?�;�$G� A�!A�A�!@� A� A�!A� A�!?� A�?�<�@�#E�>� A�!B�"@�5y"@�"D� >�%I�	5}	1n#F�"B����"C� @�%E�#� �$D�#C����*�8�1�'�0N�����<������
.���u���5����Hc�:W�5S�,J����A\������\t�Oi�)H����������ݢ��t��j��Tm�$E�$D���ꍞ�d{�����ڭphtRNSX���6Chpޟ��ٛ8�P%�d��`�η\+걅��1.�=��	�}z@!�wmTI;���T��u"��0�ж�{L2��riG�peML@�̼C��h^���
IDATh��C1�C- �Z���:hK���
�{��\)���������.�a�V�_�K�#�]��K�`!��v���RײsϮ��`e��ā�H��l�؞�B�+������V���:�XXi�.�Կ�,�Y#6x{0�j9�~���#�;_�2zFSS�XO,1����g~�G����V��8��d�&'�=|��Ï�����P5ݶ�=�,���\�W~k�0W��%�p8/��!̬�'�c�F���=D���w���?.^R����t�a�:�p���u\蒨�D�B���f?�z��ˉ��up�@�-V��MVe�ñ��٘���lj���d|� ��xw��_�j���8ѥ��4�z���LO=z9�ޤ���g�/�Ae�Ĥj뷮��zz��������X�GϞLϦ��XoT��{�>N��<۩ұ��x����+0�������OeA�l(AS�#*�ԙd��� ��7uݚ�@/�éd,=&bS�Ы8;����Ok�Y��jZt�M��lt�7[}>�#���u�pT�*}n����j�֔P�M��v��<��#����b��&}��`t�U����ħzҼ*b��T.
<.2Y�e���<�}%+7�	ב�S��f/1Nv�F�m�yY:g�	6���d�H'������ ĘNr�������388��s48����إ�!vɣo��b�(�ڒC?ތO�j��a�-�ݭ��87�a��<��!�����Y{�p�|B/z�"���k�"�\BG%y�rJ��Pd[zi�tp7��0��ʏ�I0T�����cɧ:D�˿xRh
�y�.J��G����+���1t_h�\\G>-�]��>i N^�`�X\��4��D��d�ް���,��qCM�+�|�h��78�-��S�QRZQ���ѝK|6�va	�vὨ���4W�G�'�J��V�b6�Xz5B$��rJ(�P���i�:����Q۬T�N0�^Y��7+��X�ću�ꏊ���V���C:����J0
j���.ƍ!iG���,'�r��V��Jg'��>�b��e�ߠ��Q2�
�&��)v�j�2��F�	Q+�!��D����xt0�ઠ:�f��I_�d�Q����	pG�9�f�}���rGF`�Z+�� K�*K.y��L�SG5����t�-����X�;�u�I�p�JG��_$b�<�uhh`�b+��!�O�x�:��߫c�jFr+���<u��ƒ��^<b�$���:v�H5��ڣ�1�aO�輘���ӛ���UaN=Y��Ҡ�o�mY\G��<j��Oc3[�H�)N���n#��@ҫ<m����,�t�_�d��Z)��Aס�Z埄P���^��	\�IN)ɴ/65���&��QM�9���9!qڰ�l�0AN����t���>�/�����F���t�tJ�Ch�nR�40+FO�Թ`f��!���\\"�Mَ^�[졈͔��$pY"��\�����&�+�`{$1Wğ� \��T22�+���!�N��ʂŀYȹÜ�;�ᓳ�+K���4�r}1^q�)G�f�KcQ�G��%�3|��y=��L"�Wm���v�0@�qm%T��A;�nIUB��&��[GhY\GO���@�jnJQ���oН�D�����j��t�
l���nѧЫt�;l\RGn��&�,u4�2h����UN�_����k��
�N��F�~����Mt}X��I 7i��v����0��U����������7��;;��O��:��qxA*�1��a�@���|%넃�`���W�2��W�Fr�eul_�o3UJ˱w����������P��`T�n�q{�����"�h�Q���'��YaX��Q����d
��=;�ct�":�n�J����A�r흪,�
?~�`dd�ӷ�1u���v�_L��J���B�y�<�%���m��A+�A�ޣ��',�XGy^��(��
e42,��C:86ٕ�i5�d��U�Ɍ�3G��sIM.�9ʖ\(bp�![�PY?J<��TG�\n������X0|���P �9W���D�s-����1u��
��ޮ|�E�����ܓYu�H�n���C���i�R�ym$����dQ
��$��ҡS߹��!Ǧ�e#'̾�	���=ք�tl��QdS�>�oThsEE7������$��Z2�HX���n<nZ�.�t����&m���&یv�ц��P�ߩJ�EΜ���S;
iW�ƈ�f��:�%��l^P|ƈ�c������w�n���[˪�/�:�@����)���φ���Ɔ��ʆ@�c�y�:�k�谓��,��lф��̜fV��	~
����ݢ��f��n7�QxR]
�v���.�A�j�b
&�����el�?D#�76�jk��b�/�J��-K�8p|?,��&�$��g�c�o�Jug�W�E��r]T���h��6��T�]��h�����ߨ�����6�9��Z����>�W�,�%X�*aIEND�B`�regularlabs/images/icon-color.png000064400000000652152177723720013106 0ustar00�PNG


IHDR(-S�PLTE��$����+����:FϦ��D�=%�� ��+����+I��V�S�4#�=!w�p�d�>����]���/����D]��d�	�l��#�m��]�`T�R��9��9�J6��4����q�}����������"M���0O�.O�/O��5&�<$~�}���x�tRNS3�C�.�IDAT�m�G�PE�'_@E�9����_�X�zp���$-��-�����DжI�s�"��{�̲� �����”"Q�C ���,_�3�s�,׽��`�ax�<���AӴ3&Կ��x��0�f�4U�,��<8T�
�i�Z��(��@
G}��sb�)�IEND�B`�regularlabs/images/minicolors.png000064400000061553152177723720013227 0ustar00�PNG


IHDRf��qkH�PLTE������777+++NNN[[[CCChhh


uuu�����㋋����������������!!!			///���:::TTT;;;������428$$$```���qro��z������lll���CCC��� tss������SSS��������¡�����FM|
���Ɛ��������qA<����ͩ������D9���������y�A�W/�������������������)0	%�����
�Q
��
����V
C�������I	L�����n���8������@�����������k��؅�
��y������
�׮�C��<�{	�����[�
6������
�����n�����M�L�Q��
�]�C7>��m�p>�h
��92���A`�������HGi�	b�~�b68��{����_9������s�
��
�:�tu8��
����S��C�N��7�.*��\���y���
��}����b��wc��<��e̫�
�f�����h��c��<a����g�@��`Kݑ����So`FƩ�P��;���z~7NW6�m����
	ݨ�bd
�M��M}�~��w�A�I�;T�7u�S�L��~���K�:��oE��˨��uҸ����ӂR�p��ERzU?NtRNS����������������������׈��/q[G���qI�t�B��/��Y��oS|�����������ݦ��{��_�IDATx���kTgƥ@ ����R21T0���h��B1�b�B�B@��Ph�&�`#DH����J�tߥ��t!t�+������^�=�|g&3I���y��q�����t�ܑ#s�]����`�����b^~��B^}���+��R��W6�y��j6m�T͆M
Y�a]5�:�YӱFr9�|��'��Ǐ���#�����+W����*f�9̼��ǜ={��ի��3g�\�p�#��j>a�!�/����	�r9���*��է�{�~��B�^ś��U-�Wۘx��Wk��J��?MZ��)�s�������`,��H�FS����XJ���c�z0��o`�Q�uK~l��+�ֹL̎&�0s�QCL댱�c=�����C�&&ÒȬ'8�d�Ni`�,3f�1{a��Ҙ!�f lT�Rv���-��ǎ$�������=�����mYA�j߫2��3��F�6��l�M�t6�߰�gS)ò���u�h�"fH`6�4�δ�ى�f/�q�Nl��׭�p�}��}�f-��Q����yF�� ��Fڱc[�a�8�V��L�1	�C�X"�Qƈ�w����n�0�!����u����6k���3�,��\,��|�eиm'����Vp�<���j�O���Z��*���(��>ΖJZ�Vì3�{,�+-hj|kP��m�Ɛ0j�Y�S�X0���HU�!gh��dF�	j�uig�4`ֹ��]])̂�2��4~8�����W�6�N-�f��XP�d�X�~��RR��Ĭ�\g�.A[L˘1�0��v2f.�0�]<��4�6�n`{��k$cb�\f��!e�]yN��"Y��gة�W�S�'�ߩ�0C��Ң�ZǬ2��gAY��"�)�ԩ�1z>�2Kڑ�f ���A�5���02#cAU�ڞ1[��HZ��a�
Ac�g,�fE1;�0D�d�ϰSK�l��c6�f+o��?'F!#e'
�e�h��V0#Z�m$GQ4�m�f���d�[E� C��>��C�E9cQ�V`�6S�!��n9����!�b�<�
Z��;z؊I�իK�����)�y!}!���Y)̾X!�*�9AY�!�5z���ӷ�gF��a���h�J"��:��bB��mvPb&à}m(lV�M��Qad-"�m�߲%AL)��`6��G#d��a���Čɯ�7ƌ)�x�**l`Û�2����:�\�%��˥z[����T9fH������J.46�,ޭ�M���Ϧ�����	4lF�Z�Ը��T��!8���+���.k3��QU�Q������P��b��zp�	�e����
�Z3��,���:�X3ơ�8.:q+y*���x}�&���|�]m��Jڬc�Hj�i26,��&3�J21R��28��	�),�j��hNV U~�%���},]և�Pf��$[t�h�FM=6�hh����DfX��O��;�!Y=B��]-��{�!fO &��"������'
1Κ�Y�2�>s�0�,)���0��6���L]�`��Ay9@7(1k�j�i��*d��"3&*���i�2�ų��m��-��cF�pԳS���`f	�/���,���ʔy�1�k�F�0[Y�U�G,�ljx��x�r���	�:#d��&v���X�2���a�Ź�03��ۈ�B�5�n ����dN��C����f5�8�v��S���ld`�B�>}J̄�w�1��'O�H�5��Rvj�cvt`֪�$�a�Lf���
��5�P猵<]�1�	��Y4�3�N6k�d��.J#b1����ۍ16��d���VU&KP��1\	�\�|x0�����Ͷ�,��8æ����.Z��I`���C���l�<��\����6.�t�܎���wi	3�΅�3dI6k��=�2fj��QgN�!�8j3�,�4z�`��a��&eɁ�"�+IJ��Fa�E�8���Z�ˌ�%d۷���x������i4�<�2c��\�������~�3��1���f�3��f�`��f��}�3��@�<AN�_����O�]��?f��b6땟��3����0.3<��ٌ�ی��Z�fy��
5�b�7��y̔������8l �c��-�H�B��q�`XB�:sȺ2���-,�Z��3��6z����}��q�(2{��
e��}_��3��1�Y����f�Y�m�c�䘝�o��0�M!�B�3EC���i�BS�ag�93І�llv��1P��l����j3R�1�Dd, �8d8U!��8�27Y�5@Fʂ40f�g�$-l�(fm�>P����G������6s�V�f���“�Y��_�pf{Fbv
�f�2�0cV3�1f�8&�5��3T ӵH�D ��4R�6rFء�!��q�4�lvL*�O�&ͩ�S�Z+��`�� c�f�Ð2��l'c׃/�
��� ��9�Ɍ:��3@6?����Tg�jƈ�]~�i��y�1���l��1��֊����N,n�
)3Μ0�3=%��6t&{Fp��^:4DچP.C��!���Βt,�1��]딭��'ݍb���v��[F�,�l���a��ΘpV&3`f%cH`�����0�1�l����=r�Ag���a3�(�d�Y[���j�Rv�)[>fH��')g_��c3�u|���0,9��0����]�ˮM�3ڌq��򟂐3o�f�
a�}Cpywy1	c8�����N��8�@e�^oO���6s��1����(dvra��LeV�fm�6��y���Gg�f�k(c3����2Ln�6�ő��<�G���E_�ؙ-&��]hl��Q�Z�Ie�P6K��5e�
8�l* È��a�,�uٵ�!C@Z}�
1[�a�l�0�lg9����HmV,B�x��do5s��f��`�6�_�f��=�Y�Lt��=��Vfh����N����$���Z��x,�5'M<�A�d���1�͖�Yp���l���VrV�26H�$�hj3�2CEg56#i��Ʃ��칬�	��L���Lӷ{�qȄ�����/g��ţ�UΜ2���fL��O��6~�mF���mFȌ�fmƄ�eƘ�� $M��s��h���cƴ�Y�i��o3dl��_�ա�x��=�	e�ZOj3��kR�lb_�0C���>g��W�u�������.c&ۅA#�˔��<lˈxi�/[������6��'��lf��N�6{�:�\��f̅���(�?�ݻgW3��8��b�*6���4̂����O>߶�����_�5�f/�h��#�(3��Ԧ>v��f&v�7P%�%ea�I����>;��>f�Y�Ӷ�Y	��H���p���n2�٬w'��IAS�1�X���R��/d�\�1�c�)g�͞d�S��H9�4��݃�$��6��_V���g���ަ1�2��w����Pg����z�n�q��iHЦ�$56�1��PȠ2ꠡCl@�4�Yw^�j]��֒�4
eе��u�9d��2&.bB�t���6�9c�vɢ�i�)����J\f�i�m�`���n����#�ɿ�Qg�_V}&9���0���ߗ5]����)}���Fm�*�`���O_gMbƴ`���>�f"���ٝ�w ��|p����fvd\8i�9h��hi70�
�2�U�lR��x���VY���!�(9K�i3BF��Xķ�o�Ơ۵�"s�Y�3�b"F�zu���Te�E3�\f?d��y���5�0�lv�t֜�HXj3�	0l�%�S�_�?w��2I�U�f�,(k��a@Yc�f�d�@ e�ge̹Y�Ǡ3�8+��(#g�(��4=}�6�A��5ጙ��̸m$lB���,��w!�l2����b�a$�XKJ�v�v��
&���Pd�:d\]S�	h^N���nj�m��w�!��Y��#��)+��6��6�F�s.0�?�YR�x����Dr�r�x�D�n��`�ך����*g�m�4�,��Xc���Dg�=@-�u~;dJV�Fΰo�Lf�;999�;d�1gwK�:k'Ì��i�0L"�7��^@�6{��,l�+c�ta�3B���RWw��,�,�Y06C��L ̮e�,�LA�G����*f�2�i,���WS�F�0�l��a�2��9���~pMm6^�f����x0�F.M]��Df���-�:��m��f�x����I�i:ҵ%��&dV���d:�0bPͷ��ޚt�@Ufӭ��I�-ľ1�Y��P�A~�{a�h�=d%6��P�겇d��eUcF��ee6+י|��2��D��Y�l���ߞ���ɦq�C�r��	ew@�q�@fA3�e��G;��1�V풮��u�:8C%����Fg�Pf�j�d��)�Y�����4GXl��!}3�eo��Q���0,f�B�"e&cx��3����n���L��`�i�o���f�B�~e�it�֖՗�c��ٳ�)�7{l�^+�3��l�!S���|7� �M��l�s�2��{�;��S�d�gDjmV)@���1AĄ2/(�خ��9+ 6D�au���"�5�ݹ{'K�ͺːZfocP&"s�v1�
Y0��N����I��	d�ʈ�uF�0X0!3�-�4b�_�*�A���f??}���l��,6���c!�i��\����t��9�@����X����祯��!�}u�+� ���G�f�'�ٻ��͂��W/�u�Qg3�Ռ6C�������i��2��?X�C�aI���^i�L9�evd�!k�s�1!m���t���7$v��lf�ad	�12��a�@�
 V�F�a�$L��0�R�E��f�� ��m6�y��w(�&m攡�2&(���E
23�P@�2\ht�"�k�H{�C\[������e���h�z{�	R��Q f��3��@����!&�;�,�3�'d�l�>S�9h���AƄ2��u�� ð��k��s>#_���XfA���o3ЅQ��|�m4P3ƌ2] 4ڬ�3�'̖.����1.�4�}f:���F�,I�f�Z�4���1nj1�Q@i�$6[�ٺ�.{
6��N~#��1�2�&�p���K��K�w��(��3���gw�f�,3�Pf��Ŗ1��A��A�r���M����τ2N�â3��J����y�K���o�X�3&�E�AL ��zv貃�r0��Y�1N�)����l^m�d��e"3����H���v�Il&23�V7fG��8�-#7�S�4!��	�L)d�y|�ubF��c)��{��f�
f�4j�g��Af���lܿ�a�X�et�}u�� ʰm���!c2�!+m���#F���%���ܹ�x:�q\��7.(���f	�$D��N��"�RZ��6,�J"����i�l%��rXg+�q���{�y��L�b����]������ڙo����}q��|yՅ���'��)�z��s��f�++�4�L�f�bQ���Ou��
���f�-��6����Й���E���Ͷu6��
M��t?��?��i�k�]�̮r�������g�3d�:�84��Y��8��!�Sthe���Yr�frvCǙ��f�&di���$
��i�A�|��H�ih�y�|���/�H��|5j3�:��j{;�njbmN��qƪkXu�b�T&�t��;n302(�g��ӿd���euk��[�q���1K�A�8f�8�ϴ���_��Z���a�z�f�͐�Afw�2�f@��)�͠�Ѥ��ed���d
f��X��yt�p���4td�3 �lgo����/Z�q��2���6{��X�f͋���LAb��Ζ�٩L�,u^d�d�t���ˀC�b�(���c�l�2Zg��lfK��M��թ�mhPV6[���H��ɮtάa��b�P���;5ΪF��6;�l��ҙ2�fR�b�h�Y����gϣ3liZA6Nڀ2棏�fA�ƠL3S�Q���5��H�ܿ�˃c3K���5 ��р�6aj!V�3��g.�U��1�(x��6����Lf*�d�̀�`�
��f�lf���d��f���=��!�//���KC�F��f~h|�l��ui3t��P���١�;���Rgf3*�1�@�����Cc��
M��P��A�<3Qud�4f=e��R0;� �PcK���3�� ��_��htUwc�� +ت�����6s���q&�~��A~��Wq��j�u6�g�̀l�3�6j��v�j�݌��`g<h3<i���W�%�y�qsf2K��f.30s���m���yf�Scaւ��Z�DS6{~@�C���͍�.���U����38��m���y���)��!��t��<����R�h_�Ƴ(���4X��h�%�J�FQX��Y�a�/%銝8ei�_�� 3������cg���f;�ج�9�C�ƽ�
ce������i`�k�=�C��c<��\�el�K���,���d,m6��,���'	�@��lfi��ٽ�Sc��3H�Ғ��%3A��N��'�=��'�g��⌁1�ff�CiL�t��Th��QtU�	�5�6��������T�n�-dkN�D�Ӂ&���U'�:��W�-g-k��
�gq�����:̀�2lg�rfDg���Ybg����qht�=Kx*�������N���Ǜ��/�͠,8s�=��3���2ә�L�ik�!�f��'<)�y
3���e��[i��dF���5Pf�
)�e��m��
dҙfÆ�,I{Cd$H�3�H�Q+��H�l�Dz����n�S۠���b>�h����&�/
B����Hk�g�:e��5lf�f�3@Cf?'F���S6�9K�	41�46s�
�/�E1B�m�vq�LS�P��Y�%�g��y����6ӡ񅇜2��cN�d�͞	�������I� �lvCk�Ĭdf�����Rg�)��- [��,0e@f���qf�
v4�t6�>f0%���L:s����i֌�F!m
��1�Vd�5�i
��Qc�)[������y��ef�<3��,�W�Ҝ���d=f_�ΰ����ې���,L���h������ʌO`�lV:ۘ�F@+ΐ�l��
�g[�f���2{k�f��̀�4�m���)��ˈ3Mq��Q�	5ofFCMfI��L7�w�>S�]�:�f܎�u�6;�MpiԆ����c��"^�B���	+SF+�Y~3�u�KܚM���2c@f6��8b�W�{�m4l&�Jf�lE&o�L�՗���̿[�l!e3i30e��g�'�f=e�Y�ř�2K�֪<
����
�䬥l��F�fú�����d���U:{t$˰٢�4
0����!������1�' �Ŭ�r�ظ�Ęj{Z�,�(s�Q���i6�5I;-eF~Gg������l����Z���Y�L�O�!h.3�l���L��Y�lV:�g�l�qF���fw����a��vlt��L�Q��=LAF�iĘC��,�ϒ5��u�P;W�N�Y"f�X]���%e'g]U3Ʋ- ce�/��L�	�U	��/�o��f�����S��T�%ga3u����m�ξ�
l��mvV��2r��z�6�Q���B�j��;b����Ľ���� {�Ml�yK����C�~ �:[�Pve2F=p��� jn3HCfFYA����S�)�9hd��cv�aG�ece�I��lk�a��B�!�����HK�YIK��g`FZ�����_O�Yq��l�d�!3d��u6�l4�}���img�9}����C�ߛ�<��"�a3��e�YqF�y��Yr�6Cgp&Юim��.
���X:�f��L��
�E6��g�Uv ���Ϭw�d�Q*��֑L���j�]���b9`�M�|�L����=S�9cl�1m�&�ٳ0&�T�L�f�l��
��YAg������f�T0�t6��򞳺t/���p��˰��{���)!ۘ������Ff��;�����83��^�쎧�p�qj��a���Eř0K�c�2o1F��,!c`LS2��� �e��s���QJ]�`5�h�v�4�5T��e�@cQG�@����
��+�1�b���l���L>+�If�l��~���f?�����5v;2~�F␍ڌO�X�����̩o��od�ϫ� �K�l����\��[��@�����Ly�[3�L��6��e6;8�S�Z�,����۬�Y�38c�4�g�L�2�m6!�Bi�<3��&Zu%����1	Cc����
�J�a���*
i�<02і�����6Cg߉��2t��6k}6/30�fm��d�}���}����lE�l��n���h٬(S�Ȉd��l&�Y�l�ac~f����Ifyf���9�l�0CgN:�f�ˍ����)�E�C�
��*����z��h�����f&c����l�,3�b�l�%�4YƉҘ&�q�g�>�j���hk3Q��3�6#ܛ���s�M���,d��sem�26�@c2[٘a�|�8f3b�56{��Y�hyjL��M�2�gwX]f�3N��/"N�o�@p�^g��u�dY��@�Aea���?ج�l)���Y�̨�A�@�f�(�h\��������0�ʰ���2�93���
2K��SF�����v�ߛ��z̾,�m��3���|��u6�g�f6K�f�f�����l�Q�62�Yܛ���o�����Y�5k�f=d�i��{����2��B,8c�#��6�e�FX�S�D�z�&�,�ݩ"�9_۞j1�r2�M�i�2Mta��T�Yv��j>K�x���(���)�If�?�1s���,u�Y،Ա�lƳ���`�2coOOלAہ�����a�'�f��婑l�ft�����&�)/��nH�d��56��H�*W��Ѱ���]�-�.^��Rfå��*���
Ƽe3��[F��H
��̌���e�y�v��$��.��ʂ����V^��P|x�Q�!f�7����Ly��f��~��l����K�,uf��g�dV6k?���v1�[�ԟ1��t�Pc�:3n�/�Q6{�u��ԙ��<4�n�wD�0�2a&�my�ad攽���f�!��l�
��2umpd�[ݤ��԰���<�Q�8e��4eV�QW3�\�j2
����x���q����Q�e�1Fu�9gm5XmV�JpiQ�L��ȴY�V�Ie�L�%Is��f�Y��[�L�mdC��W{�^2Z�9hvn��3�Yu��8�#�i?�����o�2�8ۜ6���=64��-hN���g�R�FJfyl,�h
g���ٙ1A�g.���,�"3/�F��Lu�.�ҙF4/iXsԠ��Y?9f^��1�t��ٞkv�S�0j����k�U�Y^�,\�X��p�h�;c�q!�&n�����峯�2+�u:�dC�A6��R63�>�e��lEf�=2��82>`���X6�h6S�l�pfܪ��l�`3�,0{����x�x
���4;�*0�/֪)ȸ;ۄ���h�	2�3c��řU�����$b\�Q�9v)�%^⍫.���Bc6��]A,ː��
���P64v�ဦ]u�dق���
3lee32�f���"mh3sY�.���9K�%h+3s���Lg����6h��e�4ս���"�Y��sF^K����-l��ΰY���fpF4q�)�eNZA�Њ3��^��r���B[β�ӄٵ#�L}�!B�裎�嘣y�<�����LC2]�6�����L5����
e>e�TY�,(s�i��k�Sf*�ٷ�����FR�i>ev`d+�v�v��6/cڎ���u�G���9e��<mF93�6s���Ӛ�8ce3��̰�2��8e@�pk�6���l
��ήO�d�63��Q��Cf�5I�*{,���>:�
�ƺ̠˖��hAb�pi@s��P�2�%j�1-Hc��Fʌ$f-���Z�A�S#����Heۍ��6s�z���y�xZ�m/9]٦���7��N�Hl�r����)ܝgE2�f(�)Cf-iテ�Bgʐ�k��9eOC)�9f�7���,N�&|f�'��_�dJ.jԲ���>:�%�3��m���L�l���u��:Z/t�U�����'�{Z ,۳�&]�� Lu��2fO>s�`0d��iR�F��Ͽc��y~�Z�{����Ͷ;d�m��q��>s�E
���٦|�o�)�O@��Ч��F����1�f��]�CV6{-e&�
��[׸�,;T�1)3:7�٦�����l�a�K/�Tt`d��f�<#Ȟ�1�b�nj?Bʕ��Jt^�nZ*S��b��" �i$2v4klmp������Ʌ�Xp�e���M��h�Q����fN�v���l���&�4��J�l-�q�2S��=�@ٌ���v�앤�/�
�(�o1���@Y���f�ο����eg~hLЀ����ۃ4
�y.�hTAf�͞�u.�Q���	�i��o�bë��t�E�=��՚`��9 �,X`��#s���«C��ʰ)�!3 c�ٌ˜�ʀlq6��h�����Ƭ����f�&�Td���O��h6f
�e[a,(K�ՙ��)�Z���� ;.uhsP��8�4b38;[��2
-�(C���Ƭ�<�C#�yϝ�پ]{̸BY�%a����Ǵ%b���I��&d�B#�U����g���Z	�4�硳��8�f�Yܝ;2�Sm�:�f����1Q�V3�ǷZ�~�K�Q�u�c5����9�(۔6Cff3����,�Ja��:�@s�A�q��sV�թ�f�L�>4��F~�	��f��o�2|�iEz�
2e+�*�2cO�Y�،���&bi���Y��!�Xҥz�2XnM6�2m`Ke�X�h1-f�����������̂�(�M��G�id3��W�Hb֤��t�ٕ6��ּ��ޥ��ś�l�>oCfi3ߎ��2����ଳٖw�όf�נ�F1K�ep�6�Ί3
e�͠L�iD�;�R� ml`��Z6K�|�����M¬�b�4���E�4|_�so:d,�4V���b���y��0-F�l�A� ��8��	6�3Mܛi�l���Ԉͨ��S6[�Af�38���ƙQ��n���Eܛ��ֻ�Բ�Z��%F�
fm�fp�!�&ʘ9:�3��i��~�����Tlg���+�Vƨ��}s��cvzd$ço�1Ė�ِ1-!fkb�٬;�C�2�hbhL���Jh7�̀,)KȠ,�Q�d߆��Ę��ǀ�m�/�N�>�S�.sȴn���go�q�bfw:P�2S���+��fo0�i�2�3#2S^{�5t��춁͠��gW���R-9�4d��M�]SR���wg0�9h�省�e[5`挹��%d
f}z̎X>f0f���a�clUH�1��Af*�"3 �- ch
�F��Ҿ6���ǿIhi�^fZ����2�Ad?��#l5�����lfdױ��}Z��.�z�E|���e���C���JgA�G�{3>E3��O>5ξx��<7g����Hڬ8;�0���EZ@�ps��݄���
�y.PE�8��2@3�7�83�6&��:#�,3Qux�r�]�l٘cl��"Ҋ1\��8�Q��*�F�F���Pŝ1J�,(����hysf�Q����0���A2S37F�s;	a��L��"IM�.��u���K}Š3;3�e����٬ ����f��T(�|�(c2���f�1������fI�f��ϔ�&���)�Y�Y�&ʘ��hP�Q�2N��h�%cV�#��R0�Ԡ+�CY�g�|h"#���>\C�a���i��9i�YڌN�2c���f%�3R�F�+Hs�
�>e�aB����5�}6�e�$�uƽ�=�Χp:4��|���6tv[�30kH�@Y�lnM�n2�\g�{�3��l�Q�g�&�86#�q�8�<C-i���_�Υ��*�A�BDHq �"^'�8��A���x����:�hEp`

�(t�@�`�j�V;(t���}������x4��}���NL���g�]Md33�R�88�Й�4a�,�\)�.���-|h�1�r��҈/U�q�Q�������I+���Jft��`,�6K�a�a��H��c�3������L:ce�™Q�1���L9a�)��Ffp�͎d�6#0��H��yad�U�l�Y�Ls��u�Y���5
���8S���l�f�b��\�!��f謘Y&��͸:d�V^.n(cοX���
��8\��D�\f{@�[�,t�%h�Y���!��Ђ2�� ��l�3�6��l��C>,�W��L�|i��\}y�u��׫"�ԔY�F�o��mPf����LK1�Aq���|@K��f�۱Q��)3�Y�v/6+��ҙlhƙ�l�m����pv�����,�!ʾd�Z��@�N���b�:�\�3;fm��]�)Y�l�a�U�d���Ъl;k���Y鬱�ˌN�ٯ�2s�f�|o�ޏ��fr	�ڼ���dm�}��k�L���S:�_����A��)klvB5����56;�6�2lf2[{:t���{Mg�ٍZ���{i30S�UW�*��$�n=K�S(��>�8d4|g@�٬(�|0	��f���������l�Ylg���X���0X�M`i���1X�>�Y�L��s� �)6�C�i�)��Wjrơ�\F#	Kn�QwۧH"X~>nX�1��Q��Mo�q���<�̚6�G �%�LEg`��>n��3*�E�qji���8S4
���ig�±q58�뭲�8#)�1��ft\>�H3m]�UW�Y��u(�+cOʨn|u:TW�,}P�ц��Y�y�Xm:�e���DY��ý��ӽ�&ی�Wo��33S����r��O�JEf��k�(2�ٷ���0��^25!��:4"3J�2�%gk��`a��N�`�A�g0��}Z�Q��*:S�l���e3ʒ�H�����l2f}f�l�'�g�Usê�Lk 竐��2�fD{X��h˭Oa��������ld�=�Ȓ3@s��25��`6����e[����L�Á3��Ȣ���9g��)��3�Yb���t��z�({�ed����!K��g��2@s��� 
�g����8�f�V���	̮S�s��"+�1-i�3�]m c���U�,�%n�W�U�϶���r��;A�M�1�f{~{80;�[BVG���#_AYBV�5�-�ng_��,L��{����e�2J�F[����"���0 S�fG��b�����fO���� ��W9c�L�����e?�M��:ȐY����a&���-8c�@�m����r>+�x�P�J�	7� �`~ײ�дiXff3�m�2�3g=f��1��A�Iee��m���B��bY��;����aLl��o�w^�FJf�3��1V:K��g@F��*<CP]f�2#ul�3�QQ�5�E�dF���쉰�0hOc3�>({V+@��Hb�Ɍg,���EYpv��1+��3�#@V.ۂ/�Op��RflWi+�H×�4�ƢLo3����Z�3��uV6Ӗ�i�fyj��l�U2��K��in�X���?C�nk���O)�Y،_�98;�9dJ<	�JfPv�O�Y�,dv�رԙS���ٻ��2�Y1��6�Be 6�L������z�>kR�y��
d0�e4 �p�W1���+��+�]��_�Y��(�-�^\�1�M��7B��0jW�*ʬ-f��[3���g e��2 �	Ȍ�ӧG2����!3�V:����J0��%)�e�A����fM.�f�9g0+��)qFBf�͠�sQ�d�({�uf�*��W�35A��Q��<5�1(2
d�7���!�6�
4�,��5��6_͵�l�'�Ř�{���=��6�X�#3V��tAb�;�/@ˎ`�z�t�a3(���l��ĘU�i��d�Y���L�������;3b�g��Bg�2
�56Cg`�d)3l挱�Z�;{p��]�@Y@.�K̒�g�G�g
��f��M�8bЂ�����!ff�&�L�+�u�����1�F
0��1lË)�1~̾Й�l�cE5��
�Q{w��9g%��f�L�2
��f�2�r�V��1{~�fҙ ��EKg�T(+ΠL2kt�،��?�8z<A�f K��������Q��i8�m����l��m���n�Mq&��H�Y��X�>�f�ҫbu�z��=U�cф�ۣ��@���t14.	�K��p���ф,8{�;��YRb@Ƒ�!�	���cmg[��Y8됉��2��ف�о���e-c
g�����){�Y��)���HP���AF�f=dϨ �X��&�f!3�1��2��:̆9�3�A9`���0��ی�V���KY�j^2��N�Y�dh�L����9�s#�� {k�͂4@ۢ������L
�e��=�cZL�L�۬��߾A�ޛ1�Q�Lu�>O�AY1f�CY�L�
�4PF\fktU��=��'�ٛ�(�4�Y���9i�s��F��f}fnj����l��"�2�ҧ�ْm5n
��1K^Sh�Y�Ƃ�b�nj1�駰� � ���2#�4#I�g�Y������NƜ��YAv@2�8+������ ���n3�df:��YqV�Ftf� �Hf�3
����ȸ�d�#�T�c�4��	g��Ls"��	�T�a�ٝ��^�&`vu7�>i�%b�s�V�2V�li�|i��LA��ˢ:.�VgŚ����6�M��	���4�u����2;5�����A�53�1�s�n�–79����L�,#(�ıQ6;�o��0;�.{�dV:�S�F�d����Q"�Lc3"�=�T�� �"n3��*О���c�(�d�ى��V4R:[h��1�A��6;f���SU�1��2�0
�[�b��M��)�f�(��=1><3l�e
2�Hfyn�#c@��쌌=�(�e،�31�J�2�1ȴޠ@�6+ʒ1��82:f��LfZ�S�{�b��(�1�J��7 ��L���lRb#���>c#���S����s0��&�f	K�J��d�d��,1	���,68�6���}����Injwg�Rf�m&�Xn3td�$�
`��xB���g�����͌2
>;��
�F63�D�)²q�@����F�ٱ�͡����3\FE��v�a3��S��yf}4A6m�qȘ�.�}&�	4Ͳ�,(Ӽm��Y��n��0�庺�3�Qe����]�E��rX݁[P��u�9k\�ԡq�Jg�����ț��f'93vI�e[�Ę�f�{f��l�A۲2�3�*ʀ�@+�tf4��7�����͠,Ό�)Aֽ7?4b���d�.S�AV6ӏS���:����il�ds�g0�C�-/��y{� ̺<;f���uǘ�?D4k~�1�,VI,o�4VT�J҄���1%�6+���m�e��L1�~*��I�d��,H�E&����������m��f!3Όt�C�Q@Cf����7\h،&h�Ќ2��9+҄�e�̜��2dF���!S����f�r�ǎe��نz�F��ό��d3ΌZڂ4���13�)y����_��5_��E�K;��2�jw��-��..�2
Ub��k��+��F�Z����AڸΠ�d�a��ma3�x�3��y7�����iן�:8��L3����@Rv�Bg �y�Q�YP��Fc��(S�+e�l�Syhh�]��Q�zAV2S1�6[7����g��7��PAL�?��}�Qi�Q��ev�F�*���+�����U�uf�Fp1���@׼��%��ǒ�ȢM��訉2�-(S
�!�V�Ch*3s�f�铩�����`mKS6+��oOL�ٺ�t��$�����h͛��Yr��|N�vf��A�LS�83�m��Zq�^�)�]�Mfn��	�(I�|�)`v\��n��H��Y4 c������	�-Zs�@e�+L��fv̜0�bLFٜ._����q��2آ�^Xl����l���^g�6{m��~*�N3�H;9�hf3@��T��Ȥ��ǟme��tf��B��6�N:�e��f&�83�lv��1����h�l. �X^�	Y��S�,�>F�qd���ˬ'�I�����l9�����0f����5��UW�׭�f3 �̜�y課	2�bcM
�D��Y���1v�:K��0�E�L6�Ԙ�gA�[��,]&��If*����ά��Q�ϊ4Ɍ֡�g���ʔ�r�0S	�Y�2uu����3(�\o�1i��T@[k9c2P�	�߈8d�)q��-�����نX�M�vv�`��K3�mK	�e��j׶�l<�l��L�Ef�M�i3 #0ֺ��<9�Mȶ4��lWM���>����J��ˀ��Y�3+�%e��|�4l���2������I[ϟ��ql��7gB���sŘ*Њ�2G��G��(��4%�S̩2�!#�NƬm�!���q��7�6`��uS�ui�a��)��`ck1��s���k#����kIdҙq��,6�j���7������.��]��_�Di�l�������C&3�L÷��l�!�tA��.3�1�z�8��i�0��dV�%hF���ג4����L�!3��x�zJ�	�
��̬��l�����6Wh3S�N��ŢK�l
,�&��2h칑",A�l3��F�i�*Ͷ`3���1��LC&?j�z��mN�������o��׽� ��(�т�z�,��F6� d�=5ZN�͐��L2[�Ϊ�H�������[��ؓ f6�9hΘ����!Nw{f�qvJ��	�h�u���s�0K�T�b�gv�ZĬy\$\���,�yK>����:!�3�f�S#�9Vful�&e�$�H�Ɣ�Z���g5��K�i�Ŗ_�C����Lܪ�(�a���g�0�V����g�̀��Cs@��6;ƒ�h�����f�̙S�=��	4�͊2M�6�2Z�A=1c�8�ƻlM�4��'bF��Blg��?�(Xq!ΒM57�n�
���[ZԦ
5�jq�,�M��h�0�H�L�}���	�
��
�\)|�Sا㧈�ՑW�`@(���U����,+�Q�O�:�❙Hs�4<��:���2�hBcNq�^^�g��M��㈵��X%8�B4�%д
��~����a�U�O�ܵK�Ru[�m1��Ŧ]�U	{f��3���e��
� cN�Y�l���S'�02k0;#�B�, �0�
��uoΒ3h���s&
����La�'E�j*S�~�Dښ8SQ�٬H�͎	Њ��G6+Ȝ�o��3�N��7s�f�>i,�����\B��ݩ����Lej��d�i{��a����5Q�����L�����d�ݣ�%c����AV��O���L���c2��u'FA�{3Qb���?f��C��#cc3�eA�q�p��?G�e�?�|q
�h1F��7@���;��u'���i�*t��S��f睷[#ꊲ5ʵm����h���1��f�ߜi��,�Ye����6;|xe,�w�Rw�:C��w0{V2��~8�"���uʘ����4�b��[�
��T�
���@gi3dF#��b��1�F��x�d��)�P+�4F��@#pi��;���k�_�"�&�򫣶3�@�d�ڭm�R[N���"��)�)�ٶW���l6l���i+MLe�N���ʹ�0tv�[oi���=���jpvث4��Ҏ�N�Q[�w��v��}��,�xٌ����Y0���n50+�h0F�A�phlN�&����H!�6Cf�8Ce,Tg|W�bl]����������1���"��|!�4cYbg�ɘ-���y�
7݀��z�.7]wmgǬ��P��e�8c��vQG�lV�[
`��W�Z5��:�V�2ps��Y��f'��P�g8�̕�6�����a8������P����hh�&��f@f��ۻ�fo�YQgn�&b�:���ř���ٌ�6��e��&2�(�48���E�d���c���G���l�ޛ��%�
\�S��V�
�v3�����Q
0�T�4V	�<{
1�v4��>ҥi�63�K�1�6�P�1�ٸ�2�[m������_H��#��hl�HȬ�M�mRϛ�X+�#�m�l��Jfj`F�){Ȟ4��3#�1��`�z2�Q���AFc,�1IX527��ըޤ��ԝM��cƟ��4�3vJ������`�l�B�"B�K���I�d�(�(��K�H�w��s�Η9�k����~���8��<��/35?�=��̮���F)��-3:L��}d���R],�ǂa�k���l ݎa�ƝFY���ٸ�fp���L����b�|�3�m���W�R��#��e�4P{Wvʪ�P�Aԙ(S�k��cee�9S(3sp�(�@g
ƌ3�M�5�cO1n�¬dM�
��h����	'�"�N�%Ž�p�=_J]Z�W���E��{3�W3�E��@���,�1�&��΂��uv�E)�%�C�:�?��l����-�0��,��a�e��i�>�����2�!#R���*3 ��2�B&AYB�A^e�}!��{L17Iƞ���x˽�3��.$��ce�xg>f��1��1+�t%ĵPY������Y�6�����qi9f"�p���.����Cje��bF> w�1��6K�8Oi�:j<9�jN�!���2�@
C�oJv�3�t��w $1�&0Sг����F��ό_("�Zb�Q�Z詠��7Lc֫Ǭ�,��Y#��-銽�Td�.�@�N V��̱r�
2����0��+38�A2;
j�o�tܼ�EZ�o��=g=扙���@I�"Ȕ�1중b��d,
CY�ə+�,d�-�L��|���?~$�ϯ�
����W�{O	?�)���Ԙ�:f�Z݆��.�%�m�&����2K��N+I;�Y�g�m�S��Y���6���̆��.j&�ޮEz�n��/�~��a�(E�� ����h�(�ҽ�$a,qF-�nY���.�:�2\�]c�����e1�����̤��?d�gF��rr�xh��,E����#���Mc�W]
,hJ��	S�h��m�d[�\��ꌌFb��Y[f���\O������6������3 C�AY�f�bk3�`� e@�Ĕw�3!�1@+ʀ%iUg�fp�m����� K�`L�q�����R�g0�*S��7��-Ekq>a�O���"�4fT���C���R�{睻&V��H����ϣ��2 Ӂ�m&�0|F~&��zȔ���Ж>6f��A`��47�.3���q=!мΔ�
�Z̮1�:�pp��7�ZIM��끱�,9{醙L�8{�8�0����ŝ�3�j
h��f�%{Z�>��{��<�wt�#�v[���s��HK�d�l3��LZ��[�@̺Ld-e<2ꡱ\�ٽ�Y+!�Y���'���Y��AB�r���Ȟ�s@�%d�|<��ǟ2+�Ȋ1�e�'�ɤ�`�p��F(;{̨����H�Y���ja�_�8��0��w¤#�Ì6�uf�Qf@�!
��0�4������3p��2�=m�	1�Gڬ��6s��p׻��(K�e�L�9dDE�`F�c��UCʀL�$�g�g䤌�(ʬ�~l�̰���q�+(+ҮZ�ю�Li�#vy�0���sZL�l����Ʌ��
_�!������i3Ӝ(3�W��N�,C�`v&\�83_x@��q�(�����Lu6�f�,��ʌd�.μ���ڢ�ZRvNc�d�3B̂1Y�e
�Z=�&��xf�Y+1t9xՖ{�f����q����K��h4�y�%b�U��l2�Kw�{'��3@��V�av[�eYgX-��ٜ6kA��%�R���Q�}�!3>*�Uf�C��B�
�J�e=iP����)M�!퉃i
f�dYg�r����6�&(#�O���S�(+dRr�B��+�`��1��_~��]�p�Y3k��}�X�d#[��.����N6�F��C;f�;�0Y�t�
��&�Yg1��f�Z�Zplյ���u2h�c⣴1o3R��b���� S���3�I�V��1{[�HO�Y�j�g�G�A��,]�6ľ`�6Ue�l�)�����:].]'�r)@sg�0+[qi����ʠ"��(3vvY�<��ֶ�RE�e�,tr��]�f��M-Ȃ3�����4��3o�)ҾM��� �a��f
h`V
���1���g����%hE�g�f���S��P��ht߈�0K�h���b��1��tx!f�b�vHg�lՃ��=�!_x3�,b���u��?`V��f��c�f��q�;=�)BW �a���D��u��,��({6 S�1�մ٧?٧�XJxq$����� ��ob&���ᖯ�g5�.$y#r�v��.����!�r
K �ц���$�l�����N¬ڬ��4�m0�qHp�r��m��jFZ�)��"M�)�(S�ܷ��8;�m&;g9g���g���,A�
�5d
v����pj�jW�1m�M�i$�t�VdI�L�.v�XAF��פ�5NOY[f��J�f�/��YK��ƅ�Y93{z�Ck���Ѿ���1	����e��w��*3@[Rf�ff�Y��$g�(K��S0�c1e�`�A�}IA��6w:o�b�*Ȥ��aL���0�M��1{�2�H��r��2�f��l��8�X
�&�?��B���h���6;�|aI�IN�v��л��n:D�E�=؁kx�>0�@Z�fR��{�ǯɧ���c�){_��83������g=b�V��⚠1I�Ҟ�mEcScs܀�ò�!6gm����Ɗuv��&9iH�4ZmN{��u�|g�O]��e��Nm��/߻������	-��62ECxi�b,�4z�p��쒨3��=
ddPf �}����#F�9c��P&�هN�3F�i����YO��c�(��Q-X]��
e@v���F��w�L��`�ʸF1�6�Ym�D3�A���=��;�I�U��w�Ԭ�����N+�5m���쐍���q̀��:��td��Wm���'q�Y�ٹ�=
h�V�]��N�qҾŸ
��AȄ�f�#)����Ӝ3Tu�A�@o���l�b(�W�s0C�f3��g(�lM��q^�	+Ȳ�9��K �;H+'c��({�-ybe:��u��\�N�M�d!h_;g�
���(�Pf���ic�E��fb�B6����8]�[�IStm���e�Q^q���"-e�J���f@44�����j��
f�2�'�*<7ړc˙�[����g8kd�f�s��ɋQ�J0h��gP�}�D�! �p<1d��q�fc֫�}Z�6{�-��Ȅ�����qs�1YI[�&�m�fSf*��<e��Z�8u�� �r�x�Y�	*�3��bR�Ɣ��H�O�١0����\0�}M�e�b�e$dt9e���ziD���3�j �Lm�~$�8�K�[�i~��E�+�	Ö�1�60�Le����d���U���=^טu�L��Y8T���1�h.6˜m��2�6s+{]�Ij4��p1�ev�Q�,��}�:��}��e#ό��'�!(���6[o�t�L�?M�H��c��n�di� ���)�t�b����5�Q[E�e�iM�ȖVʖf�ޖ	�C����ž��j2N���A7
�(dļgxy�X�
Z,�ƨ2�I��XP�52��e�%c8K�HRvz��E�p����n�����|�AZ��&�*�Z�����V�l��c�wu��a��{��
n�|�}�;�i�"�8K7�I��2#�*Β�!b�֡��d���ie-hN���e��l���l>f[���D�z�\ټ1�
4���%���&���y�!M�F�d�D�-�f�c�sD�❺����J�\�c+�z5��Mf#t�q�e�e��VLEb��j�h�圁A�� {TNΒ��2A��+�^'��_|�&)C�hk���z`Q�E0��8
f�Vg�1t�����*!c�1�V�,�1m�E��
�!+��fe�
4j�lO6��/�ڌO̦8+Оa@�6k���μ̈́e�a6�Yb�;������Zp����5;�����ڽ�k�U(CBM�ocvK��cW��(�,�n�h�$�@�äE�K�Jb��K�dIZ��G�uYr���dJ�e�J"Ƹb�f���m�.�n�n�o4�5���Y�S����zS'�ⶱ�d�M��2�h4t�qa�6���c��2�lo���$j�Q��rb��c��>JO��X`6�YCY��	����Zq�gm����9g�1_|�Vl�4k0i����1�!F���b�e&�M��ˤ��s�|9�[F�Z������O�=T�n�&K?(wo��c%�T|T�h �wb�1iZh��t���Ë)�!�ε�aHS�e��BL��e�`,)�rް��##��M�`��+��M�xB���[[�[6��+n�M�{kK�-XS�u����[Fu�2p��ڝ��H��D�8[�o,i@A}��q�w�H�Wt��rp��A���Z�0�7��i���/�id�4i1�����)�?��d�1�k1��S���f6��L0W�b�-�D�9o�1+�J���d�TdG
�v�$�7t$�\q!�ބS��^���oWN�-�d���
S=�O��X�ŐS���>J�FL,e�5�F�a�7�d�f@vh�6��%��=*'d���‰ص�a0��ˠl Ϭ��r_dc��Yj�����{�x�\+Ș������\���2��.ޜ���	}��ߙ�Z��=�,M��$d�8Qh:����+��a���M����$�0�ưD�)�e�fd
��B�(3=n����3�,���ɔ�۬����Wr�ǂ��W"�1�s��Xi֟Pʩʲ�?��2���:�J�n��(������=��Τ��ͦ�#�0�gFYR�a���3��},Ĕ�U���(f7:B�u�\�%l�1yu� ����݊�1�j�Dl�����*�AY��������3�ҴE���*CZUV��� K��͈�Ǎ��}�3tu�]fmf�y�E��e@��,�к*[���1cܶ� ��lY�R�K�+��-X������!R�q�eg�R2W�;�ٙ���Q�|A�OEO����I����n��{v}����6���6�֦v5`�V�v=7(��>iަ��D�:]��4�0Ȭ*p����5u�=Y�Qi�F�
���:��C�!��A+qآۡB�z���p挹���H�� � +k�,��2Y{v>�dfe�!f�F��uYP���/<��8QnV��\:�-�Iۀ�˘SAjRW�}m)a���,�3��Q�-��FܳH�I
�$?����s��!7������i�/�ͪ�L�]��L,=��1:�5`e�ĭ��fu�j��/��w�DY��H[�r��z1+A�����X��vi�xӏp6��ȤB�u:y5�b�e���Sf[A.�CI��̎0fzcm�I?V���k��x�VfK�+hQUY	�)8������r�}���`���xF��@��c��Th�H׻�-AF��t%
�X;u�1+5�Zw��@d�P�$�~ZD΀l/f����Y�ȿ�u�0Y�NI��2Y�Ԝ��i�]�M]ʲuF	a�ϔ_{&�	��è���Y"F?���DF�q��]�blT��V�Ɨ���n�� :ɪ	�`֤!�Y�y��GFAc��ڇ����y���6�@Ċ�7l�v2�J��N�C�l�����?�(ʻ~�a���R�s�ͪ��,3:���\�l�E�r�¬�ҠL���d^&��v��9���-ՂY�Wg�]"
���f/�Z��G��	OX�����a�d�tAŨ��u�PQ���&�V�=>����\0eNj�
�W���_����u͘��Ȝ���8����g[]�
;�v7�V�T=�SM����ΑѠ��^���5��*�=�A:F�D�c�E���5��-Z��_��J�z��f֨�A��.�����Rݤ�պ���L���Ć�[�=f�z_ߥ�t{;=��������'�S���IEND�B`�regularlabs/fonts/RegularLabs.svg000064400000120047152177723720013145 0ustar00<?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>Generated by IcoMoon</metadata>
<defs>
<font id="RegularLabs" horiz-adv-x="512">
<font-face units-per-em="512" ascent="512" descent="0" />
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#x20;" horiz-adv-x="256" d="" />
<glyph unicode="&#xe000;" glyph-name="regularlabs" d="M272 32h-32c-8.837 0-16-7.163-16-16s7.163-16 16-16h32c8.837 0 16 7.163 16 16s-7.163 16-16 16zM304 80h-96c-8.837 0-16-7.163-16-16s7.163-16 16-16h96c8.837 0 16 7.163 16 16s-7.163 16-16 16zM432.904 394.74c-9.671 22.865-23.514 43.397-41.141 61.025s-38.16 31.469-61.024 41.141c-23.681 10.016-48.827 15.094-74.739 15.094s-51.058-5.078-74.739-15.094c-22.865-9.671-43.397-23.513-61.025-41.141s-31.47-38.159-41.141-61.025c-10.017-23.681-15.095-48.827-15.095-74.74 0-36.041 10.049-71.175 29.063-101.602 16.722-26.762 39.734-48.971 66.938-64.7v-41.698c0-8.837 7.163-16 16-16h160c8.837 0 16 7.163 16 16v41.697c27.204 15.729 50.216 37.938 66.939 64.7 19.012 30.426 29.061 65.56 29.061 101.602 0 25.913-5.079 51.059-15.096 74.74zM391.801 235.355c-15.412-24.666-37.226-44.69-63.084-57.909-5.351-2.736-8.717-8.238-8.717-14.247v-35.2h-128v35.2c0 6.009-3.367 11.512-8.718 14.246-25.857 13.219-47.671 33.243-63.083 57.909-15.832 25.337-24.2 54.606-24.2 84.645 0 21.607 4.228 42.559 12.567 62.274 8.058 19.050 19.597 36.163 34.297 50.863s31.813 26.238 50.863 34.296c19.715 8.339 40.667 12.567 62.273 12.567s42.558-4.228 62.274-12.567c19.050-8.058 36.163-19.596 50.863-34.296s26.238-31.813 34.296-50.863c8.339-19.715 12.567-40.667 12.567-62.274 0-30.040-8.368-59.309-24.199-84.645zM256 448c-17.273 0-34.037-3.387-49.828-10.065-15.244-6.448-28.931-15.675-40.681-27.425s-20.977-25.438-27.424-40.682c-6.679-15.791-10.066-32.555-10.066-49.828 0-8.837 7.163-16 16-16s16 7.163 16 16c0 25.643 9.986 49.75 28.118 67.882s42.239 28.118 67.882 28.118c8.837 0 16 7.163 16 16s-7.163 16-16 16z" />
<glyph unicode="&#xe001;" glyph-name="addtomenu" d="M496 223h-160c-8.837 0-16-7.164-16-16v-192c0-8.837 7.163-16 16-16h160c8.836 0 16 7.163 16 16v192c0 8.836-7.164 16-16 16zM480 191v-32h-128v32h128zM480 127v-32h-128v32h128zM352 31v32h128v-32h-128zM160 431c0-8.837-7.163-16-16-16h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16h64c8.837 0 16-7.163 16-16zM208.067 302.934c10.275 10.275 15.933 23.935 15.933 38.467v115.199c0 14.53-5.659 28.191-15.933 38.466-10.275 10.275-23.936 15.934-38.467 15.934h-115.2c-14.531 0-28.192-5.659-38.467-15.933-10.275-10.276-15.933-23.937-15.933-38.467v-115.199c0-14.531 5.658-28.191 15.933-38.467s23.936-15.934 38.467-15.934h115.2c14.531 0 28.192 5.658 38.467 15.934zM32 341.401v115.199c0 12.351 10.049 22.4 22.4 22.4h115.2c12.352 0 22.4-10.049 22.4-22.4v-115.199c0-12.352-10.049-22.4-22.4-22.4h-115.2c-12.351-0.001-22.4 10.048-22.4 22.4zM252.097 100.534c-0.079-0.091-0.155-0.184-0.237-0.273-0.178-0.196-0.36-0.389-0.547-0.576l-31.999-31.999c-3.124-3.123-7.219-4.686-11.314-4.686s-8.189 1.563-11.314 4.686c-6.248 6.249-6.248 16.38 0 22.628l4.686 4.687h-89.372c-8.837 0-16 7.163-16 16 0 0.002 0 0.003 0 0.005v95.994c0 8.837 7.163 16 16 16 8.836 0 16-7.163 16-16v-80h73.372l-4.686 4.686c-6.248 6.249-6.248 16.38 0 22.628 6.249 6.249 16.379 6.249 22.627 0l31.999-31.999c0.187-0.187 0.369-0.379 0.547-0.575 0.082-0.090 0.158-0.183 0.237-0.274 0.091-0.105 0.184-0.209 0.273-0.317 0.098-0.12 0.191-0.242 0.286-0.364 0.064-0.082 0.129-0.164 0.192-0.248 0.101-0.135 0.197-0.273 0.292-0.411 0.052-0.074 0.105-0.147 0.156-0.224 0.096-0.143 0.187-0.287 0.277-0.432 0.047-0.076 0.096-0.15 0.142-0.228 0.086-0.143 0.167-0.287 0.249-0.432 0.047-0.084 0.095-0.167 0.141-0.253 0.073-0.137 0.143-0.275 0.212-0.414 0.049-0.097 0.099-0.193 0.145-0.293 0.060-0.126 0.116-0.254 0.172-0.381 0.051-0.115 0.102-0.23 0.15-0.347 0.047-0.112 0.090-0.227 0.135-0.34 0.052-0.134 0.104-0.268 0.151-0.403 0.036-0.099 0.068-0.199 0.101-0.299 0.050-0.15 0.1-0.301 0.146-0.453 0.027-0.088 0.051-0.177 0.076-0.266 0.046-0.164 0.092-0.328 0.133-0.493 0.021-0.082 0.038-0.165 0.057-0.247 0.040-0.171 0.079-0.342 0.113-0.516 0.017-0.084 0.030-0.169 0.045-0.253 0.031-0.171 0.062-0.341 0.087-0.513 0.014-0.098 0.024-0.195 0.037-0.293 0.020-0.158 0.042-0.317 0.057-0.478 0.013-0.13 0.020-0.259 0.030-0.389 0.009-0.13 0.021-0.26 0.028-0.391 0.012-0.249 0.018-0.498 0.019-0.747 0-0.015 0-0.028 0-0.043s0-0.028 0-0.043c0-0.249-0.007-0.498-0.019-0.746-0.006-0.132-0.019-0.261-0.028-0.392-0.010-0.13-0.017-0.259-0.030-0.388-0.016-0.161-0.037-0.319-0.057-0.479-0.013-0.098-0.023-0.195-0.037-0.293-0.025-0.172-0.056-0.342-0.087-0.513-0.015-0.084-0.028-0.169-0.045-0.253-0.034-0.173-0.073-0.344-0.113-0.516-0.019-0.082-0.037-0.164-0.057-0.247-0.041-0.165-0.087-0.329-0.133-0.493-0.025-0.088-0.049-0.178-0.076-0.266-0.046-0.152-0.096-0.303-0.146-0.453-0.033-0.1-0.066-0.199-0.101-0.299-0.048-0.136-0.1-0.27-0.152-0.402-0.044-0.114-0.087-0.229-0.134-0.341-0.048-0.116-0.099-0.231-0.15-0.347-0.057-0.127-0.112-0.255-0.172-0.381-0.047-0.099-0.096-0.195-0.145-0.293-0.069-0.139-0.139-0.277-0.212-0.414-0.046-0.085-0.094-0.168-0.141-0.252-0.081-0.146-0.163-0.29-0.249-0.433-0.046-0.077-0.095-0.151-0.142-0.228-0.091-0.145-0.182-0.289-0.277-0.432-0.050-0.075-0.104-0.148-0.156-0.224-0.096-0.138-0.192-0.276-0.292-0.411-0.063-0.084-0.128-0.165-0.192-0.248-0.095-0.121-0.188-0.244-0.286-0.364-0.088-0.103-0.181-0.206-0.272-0.313v0zM160 367c0-8.837-7.163-16-16-16h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16h64c8.837 0 16-7.163 16-16z" />
<glyph unicode="&#xe003;" glyph-name="advancedmodulemanager" d="M507.582 489.112l-8.907 15.439c-15.54-9.303-30.858-19.39-45.952-30.26-6.276 3.017-13.306 4.709-20.723 4.709h-352c-26.467 0-48-21.533-48-48v-352c0-26.468 21.532-48 48-48h352c26.467 0 48 21.532 48 48v352c0 11.091-3.783 21.314-10.123 29.451 12.362 10.081 24.93 19.636 37.705 28.661v0zM448 431v-352c0-8.822-7.178-16-16-16h-352c-8.822 0-16 7.178-16 16v352c0 8.822 7.178 16 16 16h337.294c-25.97-21.337-51.247-45.104-75.831-71.307-49.582-52.849-91.892-110.648-126.927-173.393l-10.688 23.752c-19.596 44.137-37.61 66.211-54.037 66.211-11.876 0-25.831-7.326-41.864-21.971 11.876-1.188 22.909-9.055 33.105-23.606 10.192-14.546 22.713-40.132 37.559-76.748l6.829-16.925c6.332-15.839 10.192-27.314 11.579-34.441 8.113 7.32 17.814 14.646 29.097 21.972l13.064 8.61c21.971 60.172 57.696 121.629 107.183 184.379 31.328 39.725 64.364 75.086 99.106 106.086 1.6-2.49 2.531-5.447 2.531-8.619v0z" />
<glyph unicode="&#xe004;" glyph-name="articlesanywhere" d="M80 335c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16s-7.163-16-16-16h-160c-8.837 0-16 7.163-16 16zM96 255h160c8.837 0 16 7.163 16 16s-7.163 16-16 16h-160c-8.837 0-16-7.163-16-16s7.163-16 16-16zM96 383h160c8.837 0 16 7.163 16 16s-7.163 16-16 16h-160c-8.837 0-16-7.163-16-16s7.163-16 16-16zM512 367v-256c0-26.467-21.533-48-48-48h-48v-16c0-26.467-21.533-48-48-48h-256c-26.468 0-48 21.533-48 48v112h-16c-26.468 0-48 21.533-48 48v256c0 26.467 21.533 48 48 48h256c26.467 0 48-21.533 48-48v-48h112c26.467 0 48-21.533 48-48zM48 191h256c8.822 0 16 7.178 16 16v256c0 8.822-7.178 16-16 16h-256c-8.822 0-16-7.178-16-16v-256c0-8.822 7.178-16 16-16zM384 63h-176c-20.859 0-38.65 13.376-45.254 32h-2.746c-8.837 0-16 7.163-16 16s7.163 16 16 16v32h-64v-112c0-8.822 7.178-16 16-16h256c8.822 0 16 7.178 16 16v16zM480 367c0 8.822-7.178 16-16 16h-112v-64h64c8.837 0 16-7.163 16-16s-7.163-16-16-16h-64v-31.984l64.004-0.016c8.837-0.003 15.998-7.168 15.996-16.004-0.003-8.835-7.166-15.996-16-15.996-0.003 0-0.003 0-0.004 0l-63.996 0.016v-16.016c0-5.608-0.971-10.993-2.745-16h66.745c8.837 0 16-7.163 16-16s-7.163-16-16-16h-224v-48c0-8.822 7.177-16 16-16h256c8.822 0 16 7.178 16 16v256z" />
<glyph unicode="&#xe005;" glyph-name="betterpreview" d="M501.625 266.817c-4.474 4.659-111.082 114.169-245.625 114.169s-241.151-109.51-245.625-114.169l-10.375-10.817 10.375-10.817c4.473-4.659 111.081-114.169 245.625-114.169s241.151 109.51 245.625 114.169l10.375 10.817-10.375 10.817zM152.941 185.389c-50.563 21.967-90.072 54.029-108.561 70.611 18.492 16.584 57.999 48.642 108.561 70.61-13.817-20.106-21.928-44.425-21.928-70.61s8.111-50.505 21.928-70.611zM256 162.26c-51.688 0-93.74 42.052-93.74 93.74s42.052 93.74 93.74 93.74 93.74-42.052 93.74-93.74c0-51.688-42.052-93.74-93.74-93.74zM359.059 185.389c13.817 20.106 21.928 44.425 21.928 70.611 0 26.184-8.111 50.505-21.928 70.61 50.562-21.967 90.072-54.029 108.561-70.61-18.491-16.584-57.999-48.643-108.561-70.611zM256 287.246c-17.258 0-31.246-13.988-31.246-31.246s13.988-31.247 31.246-31.247c17.259 0 31.247 13.988 31.247 31.247s-13.988 31.246-31.247 31.246z" />
<glyph unicode="&#xe006;" glyph-name="cachecleaner" d="M391.873 209.072l-368-207.999c-2.475-1.4-5.183-2.073-7.863-2.073-4.859 0-9.627 2.213-12.748 6.319-4.842 6.37-4.234 15.338 1.424 20.995l220.018 220.017-100.584 25.147c-6.352 1.588-11.095 6.886-11.974 13.373s2.282 12.856 7.982 16.078l368 207.999c6.965 3.938 15.769 2.123 20.611-4.247s4.233-15.338-1.425-20.996l-220.018-220.016 100.585-25.146c6.352-1.588 11.095-6.886 11.975-13.373 0.879-6.488-2.283-12.857-7.983-16.078v0zM116.686 371.686c3.125-3.125 7.219-4.687 11.314-4.687s8.189 1.562 11.313 4.687c6.249 6.248 6.249 16.379 0 22.627l-112 112c-6.249 6.248-16.379 6.248-22.627 0-6.249-6.248-6.249-16.38 0-22.628l112-111.999zM507.314 26.315l-112 112c-6.249 6.248-16.379 6.248-22.628 0s-6.248-16.379 0-22.628l112-111.999c3.125-3.124 7.219-4.686 11.314-4.686s8.189 1.562 11.313 4.686c6.249 6.248 6.249 16.379 0.001 22.627z" />
<glyph unicode="&#xe007;" glyph-name="cdnforjoomla" d="M469.88 323.361c-23.437 18.652-54.276 30.708-87.678 34.417-3.404 6.409-7.651 12.492-12.694 18.165-7.133 8.024-15.7 15.055-25.463 20.896-19.86 11.881-43.39 18.161-68.045 18.161-22.133 0-43.644-5.148-62.206-14.89-13.055-6.849-24.226-15.722-32.969-26.092-11.304 5.855-23.944 8.982-36.825 8.982-10.793 0-21.271-2.117-31.145-6.293-9.528-4.030-18.083-9.797-25.424-17.139-7.342-7.342-13.108-15.896-17.138-25.424-2.771-6.552-4.63-13.37-5.57-20.369-16.603-5.738-31.502-16.021-42.795-29.705-6.945-8.414-12.361-17.856-16.098-28.063-3.868-10.564-5.83-21.669-5.83-33.007 0-12.952 2.541-25.525 7.551-37.371 4.836-11.434 11.755-21.699 20.567-30.511s19.076-15.731 30.51-20.567c11.845-5.011 24.42-7.551 37.372-7.551 11.108 0 22.001 1.885 32.379 5.602 3.735 1.338 7.369 2.902 10.892 4.683 6.338-9.899 15.159-18.668 25.907-25.597 8.272-5.332 17.474-9.475 27.349-12.313 10.099-2.903 20.688-4.375 31.473-4.375 19.619 0 38.474 4.865 54.524 14.071 11.618 6.663 21.181 15.232 28.21 25.189 16.954-4.82 34.811-7.26 53.266-7.26 39.712 0 77.23 11.506 105.645 32.399 14.29 10.507 25.574 22.854 33.537 36.698 8.506 14.787 12.818 30.567 12.818 46.903 0 30.204-14.959 58.744-42.12 80.361zM446.688 185.18c-22.959-16.883-53.746-26.18-86.688-26.18-19.42 0-37.963 3.19-55.115 9.483-0.042 0.015-0.084 0.027-0.125 0.042-0.209 0.075-0.416 0.146-0.625 0.212-0.029 0.009-0.058 0.017-0.087 0.026-0.24 0.074-0.481 0.143-0.724 0.205-0.004 0-0.008 0.002-0.013 0.003-7.415 1.898-15.336-1.756-18.562-8.98-8.807-19.733-33.221-32.991-60.749-32.991-29.856 0-56.125 15.912-62.54 37.854-0.022 0.080-0.046 0.161-0.070 0.241-0.921 3.234-1.39 6.566-1.39 9.905 0 8.837-7.163 16-16 16s-16-7.163-16-16c0-2.416 0.13-4.828 0.387-7.227-9.762-5.763-20.799-8.773-32.386-8.773-35.29 0-64 28.71-64 64 0 30.234 21.432 56.574 50.975 62.676 0.078 0.016 0.155 0.031 0.232 0.047 4.176 0.847 8.479 1.277 12.792 1.277 8.836 0 16 7.163 16 16 0 7.928-5.768 14.505-13.334 15.774 6.54 18.742 24.391 32.226 45.334 32.226 11.103 0 21.902-3.869 30.453-10.897 0.688-0.599 1.439-1.144 2.246-1.63 0.007-0.005 0.014-0.009 0.021-0.013 0.109-0.065 0.215-0.134 0.326-0.197 0.108-0.062 0.218-0.117 0.327-0.176 0.021-0.012 0.043-0.023 0.065-0.035 0.217-0.116 0.435-0.226 0.655-0.331 0.014-0.007 0.028-0.014 0.042-0.021 7.362-3.489 16.253-0.87 20.516 6.175 0.015 0.024 0.030 0.049 0.045 0.074 0.058 0.097 0.118 0.189 0.174 0.287 13.426 23.549 43.702 38.764 77.13 38.764 36.851 0 69.935-18.85 80.531-45.858 0.070-0.19 0.141-0.38 0.218-0.567 2.156-5.688 3.251-11.598 3.251-17.575 0-8.837 7.163-16 16-16s16 7.163 16 16c0 1.659-0.056 3.314-0.156 4.964 50.844-9.922 88.156-42.97 88.156-80.964 0-21.49-11.83-42.025-33.312-57.82z" />
<glyph unicode="&#xe008;" glyph-name="componentsanywhere" d="M457.599 416h-105.599v41.6c0 29.997-24.404 54.4-54.401 54.4h-243.2c-29.997 0-54.4-24.403-54.4-54.4v-243.2c0-29.997 24.403-54.4 54.4-54.4h9.6v-105.599c0-29.998 24.403-54.401 54.4-54.401h243.2c29.997 0 54.401 24.403 54.401 54.401v9.599h41.599c29.997 0 54.401 24.403 54.401 54.401v243.2c-0 29.997-24.404 54.4-54.401 54.4zM32 214.401v243.2c0 12.35 10.050 22.4 22.4 22.4h243.2c12.35 0 22.4-10.050 22.4-22.4v-243.2c0-12.35-10.050-22.4-22.401-22.4h-243.2c-12.35 0-22.4 10.050-22.4 22.401zM384 54.401c0-12.35-10.050-22.401-22.401-22.401h-243.2c-12.35 0-22.4 10.050-22.4 22.401v105.599h64v-41.599c0-29.998 24.403-54.401 54.4-54.401h169.6v-9.599zM480 118.401c0-12.35-10.050-22.401-22.401-22.401h-243.2c-12.35 0-22.4 10.050-22.4 22.401v41.599h105.6c29.997 0 54.401 24.403 54.401 54.401v169.599h105.6c12.35 0 22.401-10.050 22.401-22.4v-243.2z" />
<glyph unicode="&#xe009;" glyph-name="contenttemplater" d="M80 335c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16s-7.163-16-16-16h-160c-8.837 0-16 7.163-16 16zM272 271c0 8.837-7.163 16-16 16h-160c-8.837 0-16-7.163-16-16s7.163-16 16-16h160c8.837 0 16 7.163 16 16zM96 383h160c8.837 0 16 7.163 16 16s-7.163 16-16 16h-160c-8.837 0-16-7.163-16-16s7.163-16 16-16zM512 335v-288c0-26.467-21.533-48-48-48h-288c-26.467 0-48 21.533-48 48v112h-80c-26.468 0-48 21.533-48 48v256c0 26.467 21.533 48 48 48h256c26.467 0 48-21.533 48-48v-80h112c26.467 0 48-21.533 48-48zM48 191h256c8.822 0 16 7.178 16 16v256c0 8.822-7.178 16-16 16h-256c-8.822 0-16-7.178-16-16v-256c0-8.822 7.178-16 16-16zM480 335c0 8.822-7.178 16-16 16h-112v-144c0-26.467-21.533-48-48-48h-144v-112c0-8.822 7.177-16 16-16h288c8.822 0 16 7.178 16 16v288z" />
<glyph unicode="&#xe00a;" glyph-name="dbreplacer" d="M512 431c0 7.946-2.753 15.563-8.183 22.639-4.308 5.615-10.413 10.934-18.145 15.808-13.454 8.482-32.243 15.975-55.845 22.269-46.634 12.435-108.368 19.284-173.827 19.284s-127.192-6.849-173.828-19.285c-23.602-6.294-42.391-13.786-55.845-22.269-7.731-4.874-13.836-10.192-18.145-15.808-5.429-7.075-8.182-14.691-8.182-22.638v0-352c0-7.946 2.753-15.563 8.182-22.639 4.309-5.615 10.414-10.934 18.145-15.808 13.454-8.483 32.243-15.975 55.844-22.269 46.637-12.435 108.37-19.284 173.829-19.284s127.192 6.849 173.828 19.285c23.602 6.294 42.391 13.786 55.845 22.269 7.731 4.874 13.836 10.192 18.145 15.808 5.429 7.075 8.182 14.692 8.182 22.638v352zM43.394 442.377c10.57 6.665 26.831 13.033 47.023 18.418 44.024 11.74 102.828 18.205 165.583 18.205s121.56-6.465 165.583-18.205c20.192-5.385 36.453-11.753 47.023-18.418 9.347-5.892 11.394-10.211 11.394-11.377 0-1.167-2.047-5.484-11.394-11.378-10.57-6.664-26.831-13.033-47.023-18.418-44.023-11.739-102.828-18.204-165.583-18.204s-121.56 6.465-165.583 18.204c-20.192 5.385-36.453 11.754-47.023 18.418-9.347 5.894-11.394 10.211-11.394 11.378s2.047 5.485 11.394 11.377zM468.607 67.622c-10.571-6.664-26.831-13.033-47.023-18.418-44.024-11.739-102.829-18.204-165.584-18.204s-121.56 6.465-165.583 18.204c-20.192 5.385-36.453 11.754-47.023 18.418-9.347 5.894-11.394 10.212-11.394 11.378v310.211c12.885-7.117 29.72-13.473 50.172-18.926 46.636-12.436 108.37-19.285 173.828-19.285 65.459 0 127.192 6.849 173.828 19.285 20.453 5.453 37.287 11.809 50.172 18.927v-310.212c0-1.166-2.047-5.484-11.393-11.378zM305.666 165.737c-5.34-12.623-12.98-23.958-22.713-33.689-9.731-9.732-21.066-17.373-33.69-22.713-13.074-5.531-26.957-8.335-41.263-8.335s-28.188 2.804-41.263 8.334c-12.624 5.34-23.958 12.981-33.69 22.713s-17.374 21.066-22.712 33.69c-5.531 13.075-8.335 26.958-8.335 41.263s2.804 28.188 8.334 41.264c5.339 12.623 12.981 23.958 22.712 33.689 9.732 9.732 21.067 17.373 33.69 22.713 13.076 5.53 26.959 8.334 41.264 8.334 5.523 0 10-4.477 10-10s-4.477-10-10-10c-47.421 0-86-38.579-86-86s38.579-86 86-86c41.964 0 76.998 30.214 84.507 70.028-2.898-3.512-7.933-4.696-12.179-2.573-4.94 2.471-6.942 8.477-4.473 13.417l28.145 56.289 28.145-56.289c2.469-4.94 0.467-10.946-4.473-13.417-1.436-0.717-2.962-1.057-4.465-1.057-3.668 0-7.199 2.025-8.951 5.529l-0.945 1.891c-1.143-10.011-3.699-19.751-7.645-29.081zM401.666 248.264c5.53-13.075 8.334-26.958 8.334-41.264s-2.805-28.188-8.334-41.264c-5.34-12.623-12.981-23.958-22.713-33.689-9.731-9.732-21.066-17.373-33.69-22.713-13.075-5.53-26.958-8.334-41.263-8.334-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10 47.42 0 86 38.579 86 86s-38.58 86-86 86c-41.965 0-76.999-30.214-84.507-70.029 2.898 3.512 7.932 4.697 12.179 2.574 4.94-2.471 6.942-8.477 4.473-13.417l-28.145-56.289-28.145 56.289c-2.47 4.939-0.467 10.946 4.473 13.416s10.946 0.468 13.416-4.472l0.945-1.891c1.142 10.012 3.699 19.752 7.645 29.081 5.339 12.624 12.981 23.958 22.713 33.69 9.731 9.731 21.066 17.373 33.689 22.712 13.076 5.532 26.959 8.336 41.264 8.336s28.188-2.805 41.264-8.334c12.623-5.34 23.958-12.981 33.689-22.713s17.373-21.066 22.713-33.689z" />
<glyph unicode="&#xe00b;" glyph-name="emailprotector" d="M464 448h-416c-26.469 0-48-21.531-48-48v-288c0-26.469 21.532-48 48-48h416c26.469 0 48 21.531 48 48v288c0 26.469-21.531 48-48 48zM32 393.375l137.375-137.375-137.375-137.375v274.75zM256 214.625l-201.375 201.375h402.75l-201.375-201.375zM192 233.375l52.688-52.688c3.121-3.125 7.219-4.688 11.313-4.688s8.19 1.563 11.313 4.688l52.688 52.688 137.375-137.375h-402.75l137.375 137.375zM342.625 256l137.375 137.375v-274.75l-137.375 137.375z" />
<glyph unicode="&#xe00c;" glyph-name="modals" d="M448 367c0 26.467-21.533 48-48 48h-288c-26.468 0-48-21.533-48-48v-224c0-26.467 21.533-48 48-48h288c26.467 0 48 21.533 48 48v224zM416 143c0-8.822-7.178-16-16-16h-288c-8.822 0-16 7.178-16 16v224c0 8.822 7.178 16 16 16h288c8.822 0 16-7.178 16-16v-224zM0 419.363c0 15.929 6.203 30.905 17.466 42.17 11.265 11.264 26.24 17.467 42.17 17.467 8.837 0 16-7.163 16-16s-7.163-16-16-16c-15.238 0-27.636-12.398-27.636-27.637 0-8.837-7.164-16-16-16s-16 7.163-16 16zM75.636 47c0-8.837-7.163-16-16-16-15.93 0-30.906 6.203-42.169 17.466-11.264 11.264-17.467 26.24-17.467 42.171 0 8.837 7.163 16 16 16 8.836 0 16-7.163 16-16 0-15.238 12.398-27.637 27.636-27.637 8.837 0 16-7.163 16-16zM512 90.637c0-15.931-6.203-30.907-17.467-42.171-11.263-11.263-26.239-17.466-42.169-17.466-8.836 0-16 7.163-16 16s7.164 16 16 16c15.239 0 27.636 12.399 27.636 27.637 0 8.837 7.163 16 16 16s16-7.163 16-16zM436.364 463c0 8.837 7.164 16 16 16 15.931 0 30.906-6.203 42.17-17.468s17.466-26.241 17.466-42.169c0-8.837-7.163-16-16-16s-16 7.163-16 16c0 15.239-12.397 27.637-27.636 27.637-8.836 0-16 7.163-16 16z" />
<glyph unicode="&#xe00d;" glyph-name="modulesanywhere" d="M496.068 399.067c-10.276 10.274-23.937 15.933-38.468 15.933h-105.6v41.6c0 14.53-5.658 28.191-15.934 38.466-10.274 10.275-23.935 15.934-38.466 15.934h-243.2c-14.53 0-28.191-5.659-38.467-15.934s-15.933-23.936-15.933-38.466v-243.2c0-14.53 5.658-28.19 15.933-38.466s23.936-15.934 38.467-15.934h9.6v-105.6c0-14.53 5.658-28.191 15.933-38.467 10.275-10.274 23.936-15.933 38.467-15.933h243.2c14.531 0 28.191 5.659 38.467 15.934 10.275 10.275 15.933 23.936 15.933 38.467v9.599h41.6c14.531 0 28.192 5.658 38.467 15.934 10.275 10.275 15.933 23.935 15.933 38.466v243.2c0 14.53-5.658 28.191-15.932 38.467v0zM457.6 383c12.352 0 22.4-10.049 22.4-22.4v-9.6h-128v32h105.6zM54.4 479h243.2c12.352 0 22.4-10.049 22.4-22.4v-9.6h-288v9.6c0 12.351 10.048 22.4 22.4 22.4zM32 213.4v201.6h288v-201.6c0-12.351-10.049-22.4-22.4-22.4h-243.2c-12.352 0-22.4 10.049-22.4 22.4zM384 53.401c0-12.352-10.049-22.4-22.4-22.4h-243.2c-12.352 0-22.4 10.049-22.4 22.4v105.599h64v-41.6c0-14.53 5.659-28.191 15.933-38.467 10.275-10.274 23.935-15.933 38.467-15.933h169.6v-9.599zM457.6 95h-243.2c-12.351 0-22.399 10.049-22.399 22.4v41.6h105.6c14.531 0 28.192 5.658 38.467 15.934 10.274 10.275 15.932 23.935 15.932 38.466v105.6h128v-201.6c0-12.351-10.049-22.4-22.4-22.4z" />
<glyph unicode="&#xe00e;" glyph-name="rereplacer" d="M338.162 186.489c-8.865-20.96-21.553-39.781-37.711-55.939s-34.979-28.846-55.939-37.711c-21.708-9.183-44.759-13.839-68.512-13.839s-46.804 4.656-68.512 13.838c-20.96 8.865-39.78 21.553-55.939 37.711s-28.846 34.979-37.711 55.939c-9.182 21.709-13.838 44.759-13.838 68.512s4.656 46.804 13.837 68.512c8.865 20.96 21.553 39.781 37.711 55.939s34.979 28.846 55.939 37.711c21.71 9.183 44.76 13.838 68.513 13.838 8.837 0 16-7.163 16-16s-7.163-16-16-16c-79.402 0-144-64.599-144-144 0-79.402 64.598-144 144-144 71.359 0 130.761 52.174 142.063 120.379-4.092-7.561-13.473-10.563-21.219-6.689-7.902 3.951-11.106 13.563-7.154 21.466l46.31 92.622 46.311-92.622c3.952-7.903 0.748-17.515-7.155-21.466-2.297-1.148-4.739-1.693-7.143-1.693-5.87 0-11.521 3.241-14.323 8.848l-2.592 5.184c-1.76-17.417-6.088-34.352-12.936-50.54v0zM498.162 323.512c-8.865 20.96-21.553 39.781-37.712 55.939s-34.979 28.846-55.938 37.711c-21.709 9.183-44.76 13.838-68.512 13.838-23.754 0-46.805-4.655-68.513-13.838-20.96-8.865-39.78-21.553-55.938-37.711s-28.846-34.979-37.711-55.939c-6.847-16.188-11.175-33.123-12.935-50.539l-2.591 5.183c-3.952 7.903-13.562 11.107-21.466 7.155-7.903-3.952-11.107-13.563-7.155-21.467l46.309-92.621 46.311 92.622c3.952 7.903 0.748 17.515-7.155 21.466-7.746 3.873-17.127 0.87-21.218-6.689 11.301 68.204 70.703 120.378 142.062 120.378 79.401 0 144-64.599 144-144s-64.599-144-144-144c-8.837 0-16-7.163-16-16s7.163-16 16-16c23.753 0 46.803 4.656 68.512 13.838 20.96 8.865 39.78 21.553 55.939 37.711s28.846 34.979 37.711 55.939c9.183 21.71 13.838 44.76 13.838 68.512s-4.655 46.804-13.838 68.512v0z" />
<glyph unicode="&#xe00f;" glyph-name="sliders" d="M496.067 399.028c-4.721 4.721-10.159 8.464-16.066 11.135v46.443c0 14.529-5.658 28.188-15.933 38.462-10.276 10.274-23.937 15.932-38.468 15.932h-339.2c-14.531 0-28.192-5.658-38.467-15.932s-15.933-23.933-15.933-38.462v-46.443c-5.907-2.671-11.346-6.414-16.067-11.135-10.275-10.275-15.933-23.934-15.933-38.463v-307.17c0-14.528 5.658-28.188 15.933-38.462s23.936-15.933 38.467-15.933h403.2c14.531 0 28.192 5.658 38.467 15.933s15.933 23.933 15.933 38.462v307.17c0 14.529-5.658 28.188-15.933 38.463zM64 456.606c0 12.351 10.048 22.398 22.4 22.398h339.2c12.352 0 22.4-10.048 22.4-22.398v-41.646h-384v41.646zM480 53.395c0-12.35-10.049-22.397-22.4-22.397h-403.2c-12.352-0.001-22.4 10.046-22.4 22.397v307.17c0 12.351 10.048 22.398 22.399 22.398h403.2c12.352 0 22.4-10.048 22.4-22.398v-307.17zM203.314 202.294c6.249-6.247 6.249-16.378 0-22.626l-59.314-59.307-59.314 59.308c-6.249 6.248-6.249 16.379 0 22.626s16.379 6.247 22.627 0l20.687-20.685v89.364c0 8.836 7.163 15.998 16 15.998s16-7.162 16-15.998v-89.364l20.686 20.685c6.249 6.246 16.38 6.246 22.628-0.001zM427.314 234.291c6.249-6.248 6.249-16.378 0-22.626-3.124-3.124-7.219-4.686-11.313-4.686s-8.189 1.562-11.313 4.686l-20.688 20.685v-89.363c0-8.836-7.163-15.999-16-15.999s-16 7.163-16 15.999v89.363l-20.687-20.685c-6.248-6.247-16.379-6.247-22.628 0s-6.248 16.378 0 22.626l59.315 59.308 59.314-59.308z" />
<glyph unicode="&#xe010;" glyph-name="snippets" d="M441.707 142.144c-4.030 9.528-9.797 18.082-17.139 25.425-7.342 7.342-15.896 13.107-25.424 17.138-9.872 4.175-20.351 6.293-31.144 6.293s-21.271-2.118-31.145-6.294c-3.871-1.638-7.579-3.566-11.112-5.766l-50.356 73.598 137.818 201.427c4.989 7.293 3.123 17.25-4.17 22.239-7.294 4.99-17.251 3.123-22.24-4.17l-130.795-191.162-130.795 191.162c-4.99 7.293-14.947 9.16-22.24 4.17-7.292-4.989-9.16-14.946-4.17-22.239l137.818-201.427-50.356-73.599c-3.534 2.2-7.241 4.129-11.113 5.767-9.873 4.176-20.351 6.294-31.144 6.294s-21.271-2.118-31.144-6.294c-9.528-4.030-18.082-9.796-25.424-17.138-7.342-7.343-13.108-15.896-17.138-25.425-4.177-9.872-6.294-20.351-6.294-31.144s2.117-21.271 6.293-31.145c4.030-9.528 9.796-18.082 17.138-25.424s15.896-13.108 25.424-17.138c9.874-4.175 20.352-6.292 31.145-6.292s21.271 2.117 31.144 6.293c9.528 4.029 18.083 9.796 25.425 17.138s13.108 15.896 17.138 25.424c4.176 9.873 6.294 20.352 6.294 31.145s-2.118 21.271-6.294 31.145c-2.161 5.111-4.828 9.938-7.964 14.453l46.257 67.605 46.257-67.606c-3.136-4.515-5.802-9.342-7.964-14.453-4.176-9.873-6.293-20.352-6.293-31.145 0-10.792 2.117-21.271 6.293-31.144 4.030-9.528 9.797-18.082 17.139-25.424s15.896-13.108 25.424-17.139c9.873-4.176 20.352-6.294 31.145-6.294s21.271 2.118 31.145 6.294c9.528 4.030 18.082 9.797 25.424 17.139s13.108 15.896 17.139 25.424c4.176 9.873 6.293 20.352 6.293 31.144-0.002 10.793-2.119 21.272-6.295 31.145zM144 63c-26.467 0-48 21.532-48 47.999s21.532 48.001 48 48.001 48-21.533 48-48.001c0-26.467-21.533-47.999-48-47.999zM368 63c-26.467 0-48 21.532-48 47.999s21.533 48.001 48 48.001 48-21.533 48-48.001c0-26.467-21.533-47.999-48-47.999z" />
<glyph unicode="&#xe011;" glyph-name="sourcerer" d="M219.314 403.686l-148.686-148.686 148.686-148.687c6.249-6.248 6.249-16.379 0-22.628-3.124-3.122-7.219-4.685-11.314-4.685s-8.189 1.563-11.314 4.686l-171.314 171.314 171.314 171.314c6.249 6.249 16.379 6.249 22.627 0 6.249-6.248 6.249-16.379 0.001-22.628zM315.314 426.314c-6.248 6.249-16.379 6.249-22.628 0-6.248-6.248-6.248-16.379 0-22.628l148.686-148.686-148.686-148.686c-6.248-6.248-6.248-16.379 0-22.628 3.125-3.123 7.22-4.686 11.314-4.686s8.189 1.563 11.313 4.686l171.314 171.314-171.313 171.314z" />
<glyph unicode="&#xe012;" glyph-name="tabs" d="M496.431 398.9c-4.773 4.915-10.302 8.808-16.431 11.575v46.125c0 7.464-1.584 14.725-4.707 21.58-2.934 6.439-7.088 12.225-12.347 17.197-5.158 4.878-11.108 8.717-17.685 11.411-6.821 2.795-13.975 4.212-21.261 4.212h-81.6c-8.088 0-15.907-1.747-23.067-5.111-0.684 0.312-1.373 0.613-2.071 0.899-6.822 2.795-13.977 4.212-21.262 4.212h-81.6c-8.088 0-15.907-1.747-23.068-5.111-0.684 0.313-1.373 0.613-2.071 0.899-6.822 2.795-13.976 4.212-21.261 4.212h-81.6c-14.531 0-28.192-5.659-38.467-15.933-10.275-10.276-15.933-23.937-15.933-38.467v-46.69c-5.792-2.618-11.101-6.208-15.706-10.685-10.508-10.214-16.294-23.931-16.294-38.625v-307.199c0-14.53 5.658-28.191 15.933-38.467 10.275-10.275 23.936-15.934 38.467-15.934h403.2c14.531 0 28.192 5.659 38.467 15.934s15.933 23.936 15.933 38.467v307.199c0 14.36-5.529 27.962-15.569 38.3zM448 456.6v-41.6h-96v41.6c0 7.464-1.584 14.725-4.707 21.58-0.126 0.275-0.256 0.547-0.387 0.82h77.094c12.785 0 24-10.467 24-22.4zM320 456.6v-41.6h-96v41.6c0 7.464-1.584 14.725-4.708 21.58-0.125 0.275-0.256 0.547-0.386 0.82h77.094c12.785 0 24-10.467 24-22.4zM86.4 479h81.6c12.785 0 24-10.467 24-22.4v-41.6h-128v41.6c0 12.351 10.049 22.4 22.4 22.4zM480 53.401c0-12.352-10.049-22.4-22.4-22.4h-403.2c-12.352-0.001-22.4 10.048-22.4 22.4v307.199c0 12.77 10.318 22.4 24 22.4h403.2c11.080 0 20.8-10.467 20.8-22.4v-307.199zM432 303c0-8.837-7.163-16-16-16h-320c-8.837 0-16 7.163-16 16s7.163 16 16 16h320c8.837 0 16-7.163 16-16zM432 111c0-8.837-7.163-16-16-16h-320c-8.837 0-16 7.163-16 16s7.163 16 16 16h320c8.837 0 16-7.163 16-16zM432 207c0-8.837-7.163-16-16-16h-320c-8.837 0-16 7.163-16 16s7.163 16 16 16h320c8.837 0 16-7.163 16-16z" />
<glyph unicode="&#xe014;" glyph-name="tooltips" d="M496.432 431.898c-4.846 4.99-10.467 8.928-16.707 11.703-6.563 2.919-13.469 4.399-20.526 4.399h-403.199c-15.14 0-29.241-5.603-39.706-15.776-10.508-10.216-16.294-23.934-16.294-38.628v-211.191c0-14.531 5.658-28.192 15.933-38.469 10.274-10.277 23.936-15.936 38.467-15.936h41.6v-80c0-6.472 3.898-12.306 9.877-14.782 1.979-0.819 4.058-1.219 6.119-1.219 4.164 0 8.257 1.626 11.317 4.687l91.314 91.314h242.973c14.531 0 28.193 5.659 38.467 15.936s15.933 23.937 15.933 38.469v211.191c0 14.361-5.529 27.963-15.568 38.302zM480 182.405c0-12.354-10.049-22.405-22.4-22.405h-249.6c-4.244 0-8.313-1.686-11.314-4.687l-68.686-68.686v57.373c0 8.836-7.164 16-16 16h-57.6c-12.352 0-22.4 10.051-22.4 22.405v211.191c0 12.772 10.317 22.404 24 22.404h403.2c11.080 0 20.8-10.469 20.8-22.404v-211.191z" />
<glyph unicode="&#xe015;" glyph-name="advancedtemplatemanager" d="M475.313 475.313c-6.243 6.25-16.382 6.25-22.625 0l-264.601-264.601c-12.65 8.387-27.803 13.289-44.086 13.289-44.112 0-80-35.887-80-80 0-42.421-29.032-86.7-29.313-87.125-4.231-6.347-3.394-14.797 2-20.188 3.090-3.094 7.188-4.688 11.319-4.688 3.072 0 6.163 0.882 8.868 2.688 0.441 0.293 44.463 29.313 87.125 29.313 44.113 0 80 35.887 80 80 0 16.283-4.901 31.436-13.289 44.086l264.601 264.601c6.25 6.246 6.25 16.378 0 22.625z" />
<glyph unicode="&#xe016;" glyph-name="iplogin" d="M112 448c-26.469 0-48-21.531-48-48s21.531-48 48-48 48 21.531 48 48-21.531 48-48 48zM112 384c-8.822 0-16 7.178-16 16s7.178 16 16 16 16-7.178 16-16-7.178-16-16-16zM307.865 290.76c8.060 19.372 12.135 39.919 12.135 61.24 0 88.225-71.775 160-160 160s-160-71.775-160-160 71.775-160 160-160c21.322 0 41.869 4.075 61.24 12.135l44.131-44.135h22.628v-22.628l41.372-41.372h22.628v-22.628l73.372-73.372h86.628v86.628l-204.135 204.131zM480 32h-41.372l-54.628 54.628v41.372h-41.372l-22.628 22.628v41.372h-41.372l-50.806 50.806-10.331-5.204c-17.919-9.028-37.262-13.603-57.49-13.603-70.578 0-128 57.422-128 128s57.422 128 128 128 128-57.422 128-128c0-20.228-4.575-39.572-13.603-57.49l-5.204-10.331 210.807-210.807v-41.372z" />
<glyph unicode="&#xe017;" glyph-name="dummycontent" d="M464 512h-416c-26.469 0-48-21.531-48-48v-416c0-26.469 21.532-48 48-48h416c26.469 0 48 21.531 48 47.997v416c0 26.466-21.531 48-48 48.003zM480 47.997c0-8.822-7.178-15.997-16-15.997h-416c-8.822 0-16 7.178-16 16v416c0 8.822 7.178 16 16 16h415.997c8.825 0 16.003-7.182 16.003-16.004v-416zM416 128h-320c-8.838 0-16-7.163-16-16s7.162-16 16-16h320c8.838 0 16 7.162 16 16s-7.162 16-16 16zM416 320h-320c-8.838 0-16-7.163-16-16s7.162-16 16-16h320c8.838 0 16 7.163 16 16s-7.162 16-16 16zM416 224h-320c-8.838 0-16-7.163-16-16s7.162-16 16-16h320c8.838 0 16 7.162 16 16s-7.162 16-16 16zM416 415.997l-320 0.003c-8.834 0-16-7.163-16-16s7.162-16 16-16l320-0.004c8.834 0 16 7.163 16 16s-7.162 16-16 16z" />
<glyph unicode="&#xe018;" glyph-name="geoip" d="M432 32h-160v96.656c20.268 1.663 39.964 6.498 58.739 14.439 22.865 9.671 43.397 23.514 61.024 41.141s31.469 38.16 41.141 61.024c10.017 23.681 15.096 48.827 15.096 74.739s-5.079 51.058-15.096 74.739c-9.671 22.865-23.514 43.397-41.141 61.024s-38.16 31.47-61.024 41.141c-23.681 10.017-48.827 15.095-74.739 15.095s-51.058-5.079-74.739-15.095c-22.865-9.671-43.397-23.513-61.025-41.141s-31.469-38.16-41.141-61.024c-10.017-23.681-15.096-48.827-15.096-74.739s5.079-51.058 15.095-74.739c9.671-22.865 23.513-43.397 41.141-61.024s38.16-31.469 61.025-41.141c18.775-7.942 38.471-12.776 58.739-14.439v-96.656h-160c-8.837 0-16-7.163-16-16s7.163-16 16-16h352c8.837 0 16 7.163 16 16s-7.163 16-16 16zM198 254.514c-3.040 15.812-4.931 32.399-5.658 49.486h127.317c-0.726-17.087-2.618-33.674-5.658-49.486-0.174-0.906-0.356-1.805-0.536-2.702-18.344 2.748-37.694 4.188-57.464 4.188-19.771 0-39.12-1.44-57.464-4.188-0.181 0.898-0.362 1.796-0.536 2.702zM213.998 437.829c6.377 14.031 13.903 25.313 21.763 32.626 6.806 6.334 13.615 9.545 20.239 9.545s13.433-3.211 20.239-9.545c7.86-7.314 15.385-18.596 21.763-32.626 2.632-5.792 5.048-11.975 7.243-18.512-15.813-2.2-32.289-3.317-49.246-3.317s-33.433 1.117-49.245 3.317c2.195 6.537 4.611 12.719 7.244 18.512zM198.536 388.188c18.344-2.748 37.693-4.188 57.464-4.188s39.12 1.44 57.464 4.188c0.181-0.899 0.362-1.796 0.536-2.702 3.040-15.811 4.932-32.399 5.658-49.485h-127.317c0.726 17.087 2.618 33.674 5.658 49.486 0.174 0.906 0.356 1.804 0.536 2.702zM235.761 169.545c-7.859 7.314-15.386 18.596-21.763 32.627-2.632 5.793-5.049 11.976-7.244 18.512 15.814 2.2 32.29 3.317 49.246 3.317s33.433-1.118 49.245-3.317c-2.195-6.538-4.611-12.719-7.243-18.512-6.377-14.031-13.903-25.313-21.763-32.627-6.806-6.333-13.615-9.544-20.239-9.544s-13.433 3.212-20.239 9.545zM318.813 172.799c2.923 4.99 5.702 10.368 8.32 16.13 3.639 8.005 6.903 16.597 9.781 25.663 10.846-2.72 21.008-5.993 30.197-9.716-14.097-13.618-30.329-24.401-48.298-32.078zM388.611 230.423c-13.060 6.072-27.805 11.161-43.745 15.161 3.709 18.417 6.018 38.099 6.815 58.416h63.536c-1.575-15.957-5.519-31.464-11.783-46.273-4.067-9.615-9.022-18.737-14.822-27.304zM415.216 336h-63.536c-0.798 20.317-3.107 39.999-6.815 58.416 15.942 4 30.687 9.089 43.746 15.161 5.799-8.567 10.755-17.688 14.822-27.303 6.264-14.809 10.208-30.316 11.784-46.274zM367.111 435.122c-9.188-3.724-19.351-6.996-30.197-9.716-2.878 9.067-6.142 17.659-9.781 25.665-2.619 5.761-5.398 11.14-8.32 16.129 17.968-7.677 34.201-18.46 48.298-32.078zM193.186 467.2c-2.922-4.989-5.702-10.368-8.32-16.129-3.639-8.006-6.903-16.599-9.781-25.665-10.847 2.72-21.010 5.992-30.198 9.715 14.098 13.619 30.331 24.402 48.299 32.079zM123.388 409.575c13.061-6.072 27.805-11.161 43.747-15.16-3.709-18.417-6.018-38.099-6.815-58.415h-63.535c1.575 15.957 5.519 31.464 11.783 46.273 4.067 9.615 9.022 18.736 14.82 27.302zM96.784 304h63.535c0.798-20.317 3.107-39.998 6.815-58.415-15.942-3.999-30.686-9.088-43.747-15.16-5.799 8.567-10.754 17.687-14.821 27.302-6.263 14.809-10.207 30.316-11.783 46.273zM144.887 204.879c9.189 3.724 19.351 6.995 30.198 9.716 2.878-9.067 6.142-17.659 9.781-25.665 2.619-5.762 5.398-11.14 8.32-16.13-17.969 7.678-34.202 18.461-48.299 32.079z" />
<glyph unicode="&#xe019;" glyph-name="conditionalcontent" d="M400 288h-240v96c0 52.925 43.075 96 96 96s96-43.075 96-96v-16h32v16c0 70.575-57.425 128-128 128s-128-57.425-128-128v-96h-16c-26.475 0-48-21.55-48-48v-192c0-26.475 21.525-48 48-48h288c26.475 0 48 21.525 48 48v192c0 26.475-21.525 48-48 48zM416 48c0-8.825-7.175-16-16-16h-288c-8.825 0-16 7.175-16 16v192c0 8.825 7.175 16 16 16h288c8.825 0 16-7.175 16-16v-192zM352 192h-192c-8.825 0-16-7.175-16-16s7.175-16 16-16h192c8.825 0 16 7.175 16 16s-7.175 16-16 16zM352 128h-192c-8.825 0-16-7.175-16-16s7.175-16 16-16h192c8.825 0 16 7.175 16 16s-7.175 16-16 16z" />
<glyph unicode="&#xe01a;" glyph-name="simpleusernotes" d="M432 288h-93.375c-13.725 31.4-37.15 57.575-66.85 74.675 10.6 15.775 16.25 34.325 16.225 53.325 0 52.925-43.075 96-96 96s-96-43.075-96-96c0-19.3 5.65-37.675 16.15-53.325-49.275-28.3-80.15-80.75-80.15-138.675v-112c0-26.475 21.525-48 48-48h112v-16c0-26.475 21.525-48 48-48h192c26.475 0 48 21.525 48 48v192c0 26.475-21.525 48-48 48zM192 480c35.3 0 64-28.7 64-64s-28.7-64-64-64c-35.35 0-64 28.65-64 64 0 35.3 28.7 64 64 64zM80 96c-8.825 0-16 7.175-16 16v112c-0.075 48.65 27.5 93.125 71.125 114.675 33.825-24.9 79.9-24.875 113.725 0.025 22.6-11.225 41.375-28.85 54-50.675h-62.85c-26.475 0-48-21.55-48-48v-144h-112zM448 48c0-8.825-7.175-16-16-16h-192c-8.825 0-16 7.175-16 16v192c0 8.825 7.175 16 16 16h192c8.825 0 16-7.175 16-16v-192zM384 128h-96c-8.825 0-16-7.175-16-16s7.175-16 16-16h96c8.825 0 16 7.175 16 16s-7.175 16-16 16zM384 192h-96c-8.825 0-16-7.175-16-16s7.175-16 16-16h96c8.825 0 16 7.175 16 16s-7.175 16-16 16z" />
<glyph unicode="&#xe01b;" glyph-name="bettertrash" d="M400 384.003h-288c-26.469 0-48-21.531-48-48v-288.003c0-26.469 21.531-48 48-48h288c26.469 0 48 21.531 48 47.997v288.003c0 26.466-21.531 47.996-48 48.003zM416 47.997c0-8.822-7.178-15.997-16-15.997h-288c-8.822 0-16 7.178-16 16v288.003c0 8.822 7.178 16 16 16h287.997c8.825 0 16.003-7.181 16.003-16.003v-288.003zM80 416h352c8.837 0 16 7.163 16 16s-7.163 16-16 16h-112v48c0 8.837-7.163 16-16 16h-96c-8.838 0-16-7.163-16-16v-48h-112c-8.838 0-16-7.163-16-16s7.162-16 16-16zM224 480h64v-32h-64v32zM176 320c-8.838 0-16-7.163-16-16v-232c0-8.837 7.162-16 16-16s16 7.163 16 16v232c0 8.837-7.162 16-16 16zM256 320c-8.838 0-16-7.163-16-16v-232c0-8.837 7.162-16 16-16s16 7.163 16 16v232c0 8.837-7.163 16-16 16zM336 320c-8.837 0-16-7.163-16-16v-232c0-8.837 7.163-16 16-16s16 7.163 16 16v232c0 8.837-7.163 16-16 16z" />
<glyph unicode="&#xe01c;" glyph-name="quickindex" d="M475.314 35.686c-3.124-3.123-7.219-4.686-11.314-4.686s-8.189 1.563-11.314 4.686l-128 128c-6.248 6.249-6.248 16.38 0 22.628 6.249 6.249 16.38 6.249 22.628 0l128-128c6.249-6.248 6.249-16.379 0-22.628zM339.42 256.715c-8.060-19.055-19.594-36.164-34.282-50.854-14.689-14.688-31.799-26.223-50.854-34.281-19.735-8.347-40.691-12.58-62.284-12.58s-42.548 4.232-62.284 12.58c-19.055 8.059-36.164 19.593-50.854 34.281-14.689 14.689-26.223 31.799-34.282 50.854-8.347 19.736-12.58 40.691-12.58 62.285 0 21.593 4.232 42.549 12.58 62.285 8.059 19.055 19.594 36.164 34.282 50.853 14.689 14.688 31.798 26.224 50.854 34.282 19.736 8.348 40.691 12.58 62.284 12.58s42.548-4.232 62.284-12.58c19.055-8.059 36.164-19.594 50.854-34.282 14.688-14.688 26.223-31.798 34.282-50.853 8.348-19.736 12.58-40.691 12.58-62.285s-4.232-42.549-12.58-62.285zM320 319c0 70.579-57.421 128-128 128s-128-57.421-128-128 57.42-128 128-128c70.579 0 128 57.421 128 128z" />
<glyph unicode="&#xe01d;" glyph-name="articlesfield" d="M288 336h128c8.837 0 16 7.163 16 16s-7.163 16-16 16h-128c-8.837 0-16-7.163-16-16s7.163-16 16-16zM416 288h-48c-8.837 0-16-7.163-16-16s7.163-16 16-16h48c8.837 0 16 7.163 16 16s-7.163 16-16 16zM288 416h128c8.837 0 16 7.163 16 16s-7.163 16-16 16h-128c-8.837 0-16-7.163-16-16s7.163-16 16-16zM464 512h-224.004c-26.465-0.007-47.996-21.538-47.996-48.003v-111.997c0-8.837 7.162-16 16-16s16 7.163 16 16v111.997c0 8.822 7.178 16.003 16 16.003h223.997c8.825 0 16.003-7.181 16.003-16.003v-224c0-8.822-7.178-15.997-16-15.997h-224c-8.822 0-16 7.175-16 15.997v16.003c0 8.837-7.162 16-16 16s-16-7.163-16-16v-16.003c0-26.466 21.531-47.997 48-47.997h224c26.469 0 48 21.531 48 47.997v224c0 26.466-21.531 47.997-48 48.003zM224 176h-128c-8.838 0-16-7.163-16-16s7.162-16 16-16h128c8.838 0 16 7.163 16 16s-7.162 16-16 16zM144 256h-48c-8.838 0-16-7.163-16-16s7.162-16 16-16h48c8.838 0 16 7.163 16 16s-7.162 16-16 16zM224 96h-128c-8.838 0-16-7.163-16-16s7.162-16 16-16h128c8.838 0 16 7.163 16 16s-7.162 16-16 16zM304 176c-8.837 0-16-7.163-16-16v-112.003c0-8.822-7.178-15.997-16-15.997h-224c-8.822 0-16 7.175-16 15.997v224c0 8.822 7.178 16.003 16 16.003h223.997c8.825 0 16.003-7.182 16.003-16.004v-15.996c0-8.837 7.163-16 16-16s16 7.163 16 16v15.996c0 26.466-21.531 47.997-48 48.004h-224.003c-26.465-0.006-47.997-21.538-47.997-48.004v-224c0-26.466 21.532-47.997 48-47.997h224c26.469 0 48 21.531 48 47.997v112.003c0 8.837-7.163 16-16 16z" />
<glyph unicode="&#xe01e;" glyph-name="keyboardshortcuts" d="M464 96h-416c-26.467 0-48 21.532-48 47.998v224.002c0 26.466 21.532 47.999 47.998 48.001h416.002c26.468-0.002 48-21.536 48-48.001v-224.002c0-26.466-21.533-47.998-48-47.998zM48 384c-8.822-0.001-16-7.179-16-16.001v-224.002c0-8.822 7.178-15.998 16-15.998h416c8.822 0 16 7.177 16 15.998v224.002c0 8.822-7.178 16.001-16.002 16.001h-415.998zM344 176h-176c-8.837 0-16 7.163-16 16s7.163 16 16 16h176c8.837 0 16-7.163 16-16s-7.163-16-16-16zM104 303.999h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM184 304.002h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM264 304.002h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM104 240h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM184 240.002h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM264 240.002h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM344 303.999h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM424 303.999h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM344 240h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM424 240h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM104 176h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16zM424 176h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h16c8.837 0 16-7.163 16-16s-7.163-16-16-16z" />
<glyph unicode="&#xe100;" glyph-name="nonumber" d="M512 159c0-13.255-10.745-24-24-24h-82.5c-13.255 0-24 10.745-24 24s10.745 24 24 24h82.5c13.255 0 24-10.745 24-24zM301.5 159c0 13.255-10.745 24-24 24h-253.5c-13.255 0-24-10.745-24-24s10.745-24 24-24h253.5c13.255 0 24 10.745 24 24zM210.5 351c0-13.255 10.745-24 24-24h253.5c13.255 0 24 10.745 24 24s-10.745 24-24 24h-253.5c-13.255 0-24-10.745-24-24zM24 327c0.003 0 0.007 0 0.010 0l82.494 0.035c13.255 0.005 23.996 10.755 23.99 24.010-0.005 13.252-10.75 23.99-24 23.99-0.003 0-0.008 0-0.011 0l-82.493-0.035c-13.255-0.006-23.996-10.756-23.99-24.010 0.006-13.251 10.75-23.99 24-23.99zM106.424 118.131c-12.771 3.547-26-3.93-29.547-16.701l-20-72c-3.548-12.771 3.93-26.001 16.701-29.549 2.149-0.597 4.31-0.881 6.437-0.881 10.511 0 20.16 6.961 23.111 17.582l20 72c3.546 12.772-3.931 26.001-16.702 29.549v0zM128.604 199.862c2.141-0.592 4.292-0.874 6.41-0.874 10.522 0 20.178 6.976 23.118 17.61l73 264c3.533 12.775-3.96 25.995-16.735 29.527-12.774 3.533-25.995-3.96-29.528-16.735l-73-264c-3.533-12.775 3.959-25.995 16.735-29.528zM405.576 391.869c2.149-0.597 4.311-0.881 6.438-0.881 10.512 0 20.16 6.96 23.111 17.582l20 72c3.547 12.771-3.931 26-16.701 29.548-12.772 3.547-26.001-3.93-29.549-16.7l-20-72c-3.547-12.771 3.93-26.001 16.701-29.549zM383.397 310.138c-12.774 3.533-25.996-3.96-29.528-16.735l-73-264c-3.532-12.775 3.96-25.996 16.735-29.527 2.141-0.593 4.292-0.875 6.41-0.875 10.522 0 20.178 6.975 23.118 17.609l73 264c3.532 12.775-3.96 25.996-16.735 29.528v0z" />
</font></defs></svg>regularlabs/fonts/RegularLabs.eot000064400000027010152177723720013131 0ustar00.T-�LP=��wRegularLabsRegularVersion 1.0RegularLabs�0OS/2A���`cmap�j�lgasp�glyf����(�head���*06hhea#*h$hmtx?�*��loca�T��+Fmaxp2G+\ name]l��+|�post-4 ��LfGLf��@� P �������� ����������   !��797979@�
Iw�%#";2654&7#";2654&.'.'.#";26=>7>54&'#54&'.'.5467>7>7>32'"3265467>32654&# 		 		`		`		z

&&


"	�	"
) � �
			
#		 				0				;



&4!*		*!4&�
##
++�	
		#
			���)FW6D%#";26=4&#5#553+"&546;2>=4&'.+";267'546;2+"&5010"1#"&'&4?#"&581546323'&4762021881021810181028181810181208181018181018381018101818101810181810181881810181881"010181810181810#818818181"1818810"189+"&546;2�		�		������	@		@	0
t

t
�
	t	

	t	
� Y			I \	@		@	�	�		�	   @  `  �				�
t

t
&t	

	t	

	� 	`		P 
				 ��M'.#!"3!2654&'>7#!"&5463!'.#">?>7>71�	
��`	
<	��		Q&%?		
5%1���`:��		`	$(W/!!'-\05���
)HXn�46;2+"&32654&+"732654&+"+#!"&=#"&5463!232!2654&#!"#"&'#"&54635#3!2654&+32+32#81#32+3!265P	�		�	�		�		�		�		�0�p�0		�		W�		@		`	p@		@@		@C		�		O				I				�				�p0�			�	�		 p		@	@		 				0		�}+7DP&'.'&#"327>76?.'>7"&546327>54&''"32654&�B,-22-,B

B,-22-,B
��&99&
q'77''77@

&99&g


****G**$$&7''77''7$$**f



����"4F%#"&'&4?'.'&67%61%326764/&"'&"326764'����ep�e��pp�pp���	��	�pp��pp_�Z�.'.'.'.#".#"3267>73267>73267>7>54&'#"&'0410"1818#81&#"&'814&54&#"#"&5467812632654&'>3228181818120181678181>32813265<5�-
#
	

	
		


6
,
!$			&	
*-		&2C	
		
	


	
		


)�		&#					.0?R#54&+";;26=326=4&#546;2+"&5+"&=3;7+"&=326=32�j �  
 � *  �V
	�	

	�	
`
	�	
@ �`
	�	
j j	
�*  � j  
 � ��	

	�	

	�	

	j* 6	

	* �
	����
)CSe46;2+"&4&+";26'32654&+"#!"&=#"&5463!232!2654&#!"%4&++3!265P	�		�	�	�		�	��		�		���Pp�0		�		�	p�	 	O				9				w				0��pP�			�	�	�p		���2Wx�4&'.'.'.#"13267>7>7>5>7>32#"&'.'.5467#"&'.'.53267>7'#"&'.'.'.5467>7>7>32#"3267'.?"#"&/7#"&54632654&#">'&676>7>7>7>32

#Z11Z#



#Z11Z#

�+!V//V!!V//V!�!V//V!
#Z11Z#
�





$22$0`

$22$0



�	

	��	

	k
				

				
��
				
6
	

	
��b




2$$2(88R


2$$2(88

@� #!"3!2654&7'!326?!%7�`��<�������55��n ���� 7��`ɷ44������5J_t4&#!"3!265##!"&=463!2%467>32#"#"&5#"&'.5463232%#"&546326546324632#"&54&#"&���  	��		 	�`		

		L
				
�		

		L
				
o�		�		4				

��			

	%				

n			

	���5<GRdw.+54&'.+";;267>=3267>=4&'12#5%32!54635!+"&5+"&=3;7#"&=3267>=3#�
j
�



�
*
&	
����	
��
	 
	�	
`
	�	
@
�J�	
j
�
	�*

�
j



�

	
 `
	

	
����	

	�	

	j*
 
	*
j�	
O�F�%#"&'.'.'.5467>7>7>32#"3267'.?#"&/17.'.'.#"'.76&'&>32#"3267>7>7>54&'1R
""

"		<TT<6P..�
""
..P6<TT<		"
�

""
		T<<TE3]]

�



]]3ET<<T		
""���)3D]y.'54&'.#!"3!267>54&%463!2!#!"&5463!2%'&4762546327627#"&/#"&="'&4?�	
��
	
�
�H
	T	
���
	�l	

	�	
��;;		�		;;�//
��4
B	

	*��	

	4	

	�̕<<Y		Y Y		Y<<@��t��%.'.'.#"'76&'&'..'.#"3267>7>7>54&'.'73267>7>7>54&'"&546323"&54632�	
3�
��
�3
		

	..	

	����
	J�
��
�J	

		
CC
		
OO��'#"&/7627&"326?'۔���`����������������DQ^hy���.'54&'.'.'.+"0&#.+"0&#.+"3!267>54&''#54&'04132#54&'04132'32#546#!"&5463!2'#!"&5463!2#!"&5463!25#!"&5463!2�	RRR

�
0`M
�`M
�R
�
�
	�l	

�	0	��		@		��		@		��		@	�/	
/��

4
:**
	**


	**	
�V	

	4	

	��				�				Y				 �+E.'.#!";2326?3267>=4&'+"54&+"&=463!2�	�m
*\�

	�E	:	

�	��
P[
�
�	
D9	
	�	

	�# ��"&".#"132670632654&'64���	!/7 !/���/! 7/!		1M"32654&"&54632>54&#"32673335'#'5#'5#'#"&54632p				�^BB^^B,)IW̬)7))3
5KK55K��@				]B^^BB^,)IW��7))3K55KK5
�) .<JY!"3!2654&#!"&5463!2'!"3!2654&'!"3!2654&!"3!2654&'!"3!2654&#�`�	�`		�	@��		@		��		@		��		@		��		@		�`��0		�		�`P				�				`				�				
@�AUn���������%#5>7>7>7>54&'.'.'.#"#"3!2654&#'.'3#.#""457>7>32#"&'>732672#>7<3.'.'>32#"&'7>7>77.'>737#.'>7'.'.''.'>7#>7>73.'.'>7.'��



&&



�		`		��







�%



S

F
??
/
�

F
??
0

 a

&&



&&

a				�

�

		2

�
		


9
c
W


9
j
c

@�!1?M#54632354&#"#"3!26=4&#!"&=463!2#";2654&#";2654&��8((8 K55K 	��		 	@�		�		�		�		 `(88(5KK5`���		�		0				@				 �#/CSao#.'>54&#";;26=4&%2#"&546"&=46727#"#+"&=46;2#";2654&'#";2654&�]"8((8%+p���&&%&V	&!?
?pp	�		�	@`		`		`		`		 &
(88(J+p��&&%&��	p$?	�0		�		p				@				@� 8<JXf!"3!2654&#!"&5463!2!2654&+54&+"#"73#"326=4&3"326=4&3"326=4&��� 	��		 	��`		p	`	p		�@@0				I				I				��� ��		 		��p		0		0		@ �	�		�		�		�		�		�	 ��BN%#"&/&4762'#"&'.'.'.5467>7>7>32'4&#"326����K55KK55K$���>5KK55KK
)Wes��32654&+"#";2654&'32654&+"7#"326=46;2+"&=4&#";26=4&#";2654&'#";2654&#";2654&7"+"&=46;2326=4&+";26=4&# �		�		�0		0		��		�		��			�		�			����		�		W0		0		I�		�		I		�		�			��	P				0				�				`p		p		�				���				P				�				P	p		�				�p	`�-;IWes�������%!"&=463!2"3!26=4&##"&546;2'#"&546;23#"&546;23#"&546;2#"&546;23#"&546;23#"&546;27#"&546;23#"&546;2#"&546;23#"&546;2#"&546;2!#"&546;2�`��L		�		x�		�		�				I				I				�				I				I				I				I				W				I				��				9				`�� 	�		�	�				�												@												@								@								@								���
)>Pbs�%+"&546;24&+";26';2654&+"8132654&#81#"3&2326?6&'7232676&'&%2326?6&'&&232676&'1
R
	S
�	�

�
Z	�

�
�S	
R

R	





I

	I




	

	I


I

�






�


"



�

H	
H	R
	

��	�
H	

H	U

��	
	w��=_<��2���2����"@ @#@@ @ 
��T�@N�B���	:

�~���
4
� ��.���P"E��B�!c
�		�	M	�	,	n	
4�RegularLabsRegularLabsVersion 1.0Version 1.0RegularLabsRegularLabsRegularLabsRegularLabsRegularRegularRegularLabsRegularLabsFont generated by IcoMoon.Font generated by IcoMoon.regularlabs/fonts/RegularLabsIcons.ttf000064400000016200152177723720014132 0ustar00�0OS/2A�"�`cmap��dgasp�glyft���thead�4S�6hhea)4$hmtxKMX�locaY
R��Rmaxp/L name���l�post` ��LfGLf��@�3 H ��"�3���� ��!�0������  ���797979@�!!!!!!!!!!!!�`���`���`���           @�!!!!!!!!'!!!!�`@��@��@��`���   ` ` � ` @�!!!!!!!!!!!!��`�����`�����`���           @�!!!!!!!!!!!!������` ` ` ` ` `  }
%>.'76}VT��dr#''ZN2��|Mw���55&.> ��TV5'#rd�|��2NZ'9�wM)#7.#"3267>7#".54>327�HG&&GG&&G1$c:5]F((F]55]#K@HG&&G+(/(F]55]F((#K@�(2#54&+"#"3!26=4&#7.546327#546;2(8(@(8


r@

.�
@
 `(88(`
�

�
�F

�`

��#2#"#"3!26=4&+546;2354&#7.54632�@(8�




@
@8�@

�8(`
�

�
`

``(8�`F

0<%5'.'7'./#'737>77'>?"&54632I+D<
`
<D+IJ+D=
`
=D+J�%%%%�`
<D+II+D<
`
=D+JJ+D=
%%%%	333������	!!�����%###����5!5!5�����!"3!2654&!!�@

�

�@�
�@

�
� �!"3!2654&!!�@

�

�@�
�@

�
��`'IW%2>54.#"2#".54>2+"&5#+"&=46;235463267#"&'75]F((F]55]F((F]5+L8!!8L++L8!!8L�	
@
@
@
	`	@	0#:H,"(F]55]F((F]55]F(�!8L++L8!!8L++L8!P	0



0			�"#+'3?M%2>54.#"2#".54>4632#"&74632#"&#"&'73265]F((F]55]F((F]5+L8!!8L++L8!!8LU



�



 )H,,H)22(F]55]F((F]55]F(�!8L++L8!!8L++L8!p






�#++#'3?K%2>54.#"2#".54>4632#"&732654&#"32654&#"5]F((F]55]F((F]5+L8!!8L++L8!!8L%%%%�



�



(F]55]F((F]55]F(�!8L++L8!!8L++L8!��%%%%� �
-5%!57��@������Q��J���!"32>54.3##535#5335]F((F]55]F((F]U@@`�  ` (F]55]F((F]55]F(`@� � ��%5%.#"3!267>'+"&=46;25+"&=46;2���	�	�	 		 		 		 	]���""
		 		`		�		"32>54.!5!5]F((F]55]F((F]K�(F]55]F((F]55]F(��@##��#H'&"7./&4?62764.'"/&4?.72?64/�$d#n##(m61M#�(m61M##$d#n##�##m$d$(6m62"M#dy(6m62"M#d$##m$d$`�8D"32>7.#"&'.'>7>732654&'#"&54632*MB55BM**MB55BMT&&@""@&&K55K~�*;$$;**;$$;*U&&&&
5KK5
�(%'.>54&#"326776&%"&54632�y
pPPppP$?	g
&

��5KK55KKLg	?$PppPPp
y

&�K55KK55K �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#=
					
	
	

			�										�										�
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		 �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#'6#"&'&67=
					
	
	

			�										�										

� �
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		�
�a
 �'9#"&/7>7.326?''&:32676&'�yy��
�
yy��J`	`���
����
��(�a� �#5HZ#"&546;#"&5463;#";#"'&:32676&'2654&+32654&+332654&+32654&+0				p			00	,`	`��		00		`		00		�A					��		�		�a� 		�A				�A		 �$0<5!#3267#"!4&+5>7326=#"&=3"%#*'>=3���`8(3 %% 3(8`��":w":�@@@(8#c%%c#8(@z"  
:"
  �$0;G5!#3267#"!4&+5>7326=#"&=3"7'7'3737#*'>=3���`8(3 %% 3(8`��":�OOObbO�":�@@@(8#c%%c#8(@z"  
 ]::]:]]:"
 0�A>7.#".'"&'0#"&'3#*'32>5<5>7"(+>Ap'

0$

6#C%
#R,HpL'�	
	
=,;0.&9 )6Vk4a�+3#"&546327.#"32654&'#%#5##3353�\*0*;;* 	,7!D__DFV�]00000084<++<	*_DD_YF
00000��35#"#3337#5460PP.B@@`P`	�`B.0`�`0	7So627'..#"7'&47%4&#"&7627>'>56&/"/732654&''"'&4?'32676?'�#39&(	r3rz('<r2r
"
2":r2r
"
2=&("�r#3(%:r3v2!(%=r2r#
E("r2r
#2=&��:r3r#

3	(&pr

#3;%(r3��B=_<��o���o��( �#�
Jv���
J��8J\n���@�2d��L��J�		�	�
T
�
��(��Q�0�
�	 	�	 a	 �	;	 �	
4RegularLabsIconsRegularLabsIconsVersion 1.0Version 1.0RegularLabsIconsRegularLabsIconsRegularLabsIconsRegularLabsIconsRegularRegularRegularLabsIconsRegularLabsIconsFont generated by IcoMoon.Font generated by IcoMoon.regularlabs/fonts/RegularLabs.woff000064400000026640152177723720013313 0ustar00wOFF-�-TOS/2``A��cmaphll�j�gasp�glyf�(�(����head*|66���hhea*�$$#hmtx*���?�loca+`FF�T��maxp+�  2Gname+���]l��post-�  ��LfGLf��@� P �������� ����������   !��797979@�
Iw�%#";2654&7#";2654&.'.'.#";26=>7>54&'#54&'.'.5467>7>7>32'"3265467>32654&# 		 		`		`		z

&&


"	�	"
) � �
			
#		 				0				;



&4!*		*!4&�
##
++�	
		#
			���)FW6D%#";26=4&#5#553+"&546;2>=4&'.+";267'546;2+"&5010"1#"&'&4?#"&581546323'&4762021881021810181028181810181208181018181018381018101818101810181810181881810181881"010181810181810#818818181"1818810"189+"&546;2�		�		������	@		@	0
t

t
�
	t	

	t	
� Y			I \	@		@	�	�		�	   @  `  �				�
t

t
&t	

	t	

	� 	`		P 
				 ��M'.#!"3!2654&'>7#!"&5463!'.#">?>7>71�	
��`	
<	��		Q&%?		
5%1���`:��		`	$(W/!!'-\05���
)HXn�46;2+"&32654&+"732654&+"+#!"&=#"&5463!232!2654&#!"#"&'#"&54635#3!2654&+32+32#81#32+3!265P	�		�	�		�		�		�		�0�p�0		�		W�		@		`	p@		@@		@C		�		O				I				�				�p0�			�	�		 p		@	@		 				0		�}+7DP&'.'&#"327>76?.'>7"&546327>54&''"32654&�B,-22-,B

B,-22-,B
��&99&
q'77''77@

&99&g


****G**$$&7''77''7$$**f



����"4F%#"&'&4?'.'&67%61%326764/&"'&"326764'����ep�e��pp�pp���	��	�pp��pp_�Z�.'.'.'.#".#"3267>73267>73267>7>54&'#"&'0410"1818#81&#"&'814&54&#"#"&5467812632654&'>3228181818120181678181>32813265<5�-
#
	

	
		


6
,
!$			&	
*-		&2C	
		
	


	
		


)�		&#					.0?R#54&+";;26=326=4&#546;2+"&5+"&=3;7+"&=326=32�j �  
 � *  �V
	�	

	�	
`
	�	
@ �`
	�	
j j	
�*  � j  
 � ��	

	�	

	�	

	j* 6	

	* �
	����
)CSe46;2+"&4&+";26'32654&+"#!"&=#"&5463!232!2654&#!"%4&++3!265P	�		�	�	�		�	��		�		���Pp�0		�		�	p�	 	O				9				w				0��pP�			�	�	�p		���2Wx�4&'.'.'.#"13267>7>7>5>7>32#"&'.'.5467#"&'.'.53267>7'#"&'.'.'.5467>7>7>32#"3267'.?"#"&/7#"&54632654&#">'&676>7>7>7>32

#Z11Z#



#Z11Z#

�+!V//V!!V//V!�!V//V!
#Z11Z#
�





$22$0`

$22$0



�	

	��	

	k
				

				
��
				
6
	

	
��b




2$$2(88R


2$$2(88

@� #!"3!2654&7'!326?!%7�`��<�������55��n ���� 7��`ɷ44������5J_t4&#!"3!265##!"&=463!2%467>32#"#"&5#"&'.5463232%#"&546326546324632#"&54&#"&���  	��		 	�`		

		L
				
�		

		L
				
o�		�		4				

��			

	%				

n			

	���5<GRdw.+54&'.+";;267>=3267>=4&'12#5%32!54635!+"&5+"&=3;7#"&=3267>=3#�
j
�



�
*
&	
����	
��
	 
	�	
`
	�	
@
�J�	
j
�
	�*

�
j



�

	
 `
	

	
����	

	�	

	j*
 
	*
j�	
O�F�%#"&'.'.'.5467>7>7>32#"3267'.?#"&/17.'.'.#"'.76&'&>32#"3267>7>7>54&'1R
""

"		<TT<6P..�
""
..P6<TT<		"
�

""
		T<<TE3]]

�



]]3ET<<T		
""���)3D]y.'54&'.#!"3!267>54&%463!2!#!"&5463!2%'&4762546327627#"&/#"&="'&4?�	
��
	
�
�H
	T	
���
	�l	

	�	
��;;		�		;;�//
��4
B	

	*��	

	4	

	�̕<<Y		Y Y		Y<<@��t��%.'.'.#"'76&'&'..'.#"3267>7>7>54&'.'73267>7>7>54&'"&546323"&54632�	
3�
��
�3
		

	..	

	����
	J�
��
�J	

		
CC
		
OO��'#"&/7627&"326?'۔���`����������������DQ^hy���.'54&'.'.'.+"0&#.+"0&#.+"3!267>54&''#54&'04132#54&'04132'32#546#!"&5463!2'#!"&5463!2#!"&5463!25#!"&5463!2�	RRR

�
0`M
�`M
�R
�
�
	�l	

�	0	��		@		��		@		��		@	�/	
/��

4
:**
	**


	**	
�V	

	4	

	��				�				Y				 �+E.'.#!";2326?3267>=4&'+"54&+"&=463!2�	�m
*\�

	�E	:	

�	��
P[
�
�	
D9	
	�	

	�# ��"&".#"132670632654&'64���	!/7 !/���/! 7/!		1M"32654&"&54632>54&#"32673335'#'5#'5#'#"&54632p				�^BB^^B,)IW̬)7))3
5KK55K��@				]B^^BB^,)IW��7))3K55KK5
�) .<JY!"3!2654&#!"&5463!2'!"3!2654&'!"3!2654&!"3!2654&'!"3!2654&#�`�	�`		�	@��		@		��		@		��		@		��		@		�`��0		�		�`P				�				`				�				
@�AUn���������%#5>7>7>7>54&'.'.'.#"#"3!2654&#'.'3#.#""457>7>32#"&'>732672#>7<3.'.'>32#"&'7>7>77.'>737#.'>7'.'.''.'>7#>7>73.'.'>7.'��



&&



�		`		��







�%



S

F
??
/
�

F
??
0

 a

&&



&&

a				�

�

		2

�
		


9
c
W


9
j
c

@�!1?M#54632354&#"#"3!26=4&#!"&=463!2#";2654&#";2654&��8((8 K55K 	��		 	@�		�		�		�		 `(88(5KK5`���		�		0				@				 �#/CSao#.'>54&#";;26=4&%2#"&546"&=46727#"#+"&=46;2#";2654&'#";2654&�]"8((8%+p���&&%&V	&!?
?pp	�		�	@`		`		`		`		 &
(88(J+p��&&%&��	p$?	�0		�		p				@				@� 8<JXf!"3!2654&#!"&5463!2!2654&+54&+"#"73#"326=4&3"326=4&3"326=4&��� 	��		 	��`		p	`	p		�@@0				I				I				��� ��		 		��p		0		0		@ �	�		�		�		�		�		�	 ��BN%#"&/&4762'#"&'.'.'.5467>7>7>32'4&#"326����K55KK55K$���>5KK55KK
)Wes��32654&+"#";2654&'32654&+"7#"326=46;2+"&=4&#";26=4&#";2654&'#";2654&#";2654&7"+"&=46;2326=4&+";26=4&# �		�		�0		0		��		�		��			�		�			����		�		W0		0		I�		�		I		�		�			��	P				0				�				`p		p		�				���				P				�				P	p		�				�p	`�-;IWes�������%!"&=463!2"3!26=4&##"&546;2'#"&546;23#"&546;23#"&546;2#"&546;23#"&546;23#"&546;27#"&546;23#"&546;2#"&546;23#"&546;2#"&546;2!#"&546;2�`��L		�		x�		�		�				I				I				�				I				I				I				I				W				I				��				9				`�� 	�		�	�				�												@												@								@								@								���
)>Pbs�%+"&546;24&+";26';2654&+"8132654&#81#"3&2326?6&'7232676&'&%2326?6&'&&232676&'1
R
	S
�	�

�
Z	�

�
�S	
R

R	





I

	I




	

	I


I

�






�


"



�

H	
H	R
	

��	�
H	

H	U

��	
	w��=_<��2���2����"@ @#@@ @ 
��T�@N�B���	:

�~���
4
� ��.���P"E��B�!c
�		�	M	�	,	n	
4�RegularLabsRegularLabsVersion 1.0Version 1.0RegularLabsRegularLabsRegularLabsRegularLabsRegularRegularRegularLabsRegularLabsFont generated by IcoMoon.Font generated by IcoMoon.regularlabs/fonts/RegularLabs.ttf000064400000026524152177723720013150 0ustar00�0OS/2A���`cmap�j�lgasp�glyf����(�head���*06hhea#*h$hmtx?�*��loca�T��+Fmaxp2G+\ name]l��+|�post-4 ��LfGLf��@� P �������� ����������   !��797979@�
Iw�%#";2654&7#";2654&.'.'.#";26=>7>54&'#54&'.'.5467>7>7>32'"3265467>32654&# 		 		`		`		z

&&


"	�	"
) � �
			
#		 				0				;



&4!*		*!4&�
##
++�	
		#
			���)FW6D%#";26=4&#5#553+"&546;2>=4&'.+";267'546;2+"&5010"1#"&'&4?#"&581546323'&4762021881021810181028181810181208181018181018381018101818101810181810181881810181881"010181810181810#818818181"1818810"189+"&546;2�		�		������	@		@	0
t

t
�
	t	

	t	
� Y			I \	@		@	�	�		�	   @  `  �				�
t

t
&t	

	t	

	� 	`		P 
				 ��M'.#!"3!2654&'>7#!"&5463!'.#">?>7>71�	
��`	
<	��		Q&%?		
5%1���`:��		`	$(W/!!'-\05���
)HXn�46;2+"&32654&+"732654&+"+#!"&=#"&5463!232!2654&#!"#"&'#"&54635#3!2654&+32+32#81#32+3!265P	�		�	�		�		�		�		�0�p�0		�		W�		@		`	p@		@@		@C		�		O				I				�				�p0�			�	�		 p		@	@		 				0		�}+7DP&'.'&#"327>76?.'>7"&546327>54&''"32654&�B,-22-,B

B,-22-,B
��&99&
q'77''77@

&99&g


****G**$$&7''77''7$$**f



����"4F%#"&'&4?'.'&67%61%326764/&"'&"326764'����ep�e��pp�pp���	��	�pp��pp_�Z�.'.'.'.#".#"3267>73267>73267>7>54&'#"&'0410"1818#81&#"&'814&54&#"#"&5467812632654&'>3228181818120181678181>32813265<5�-
#
	

	
		


6
,
!$			&	
*-		&2C	
		
	


	
		


)�		&#					.0?R#54&+";;26=326=4&#546;2+"&5+"&=3;7+"&=326=32�j �  
 � *  �V
	�	

	�	
`
	�	
@ �`
	�	
j j	
�*  � j  
 � ��	

	�	

	�	

	j* 6	

	* �
	����
)CSe46;2+"&4&+";26'32654&+"#!"&=#"&5463!232!2654&#!"%4&++3!265P	�		�	�	�		�	��		�		���Pp�0		�		�	p�	 	O				9				w				0��pP�			�	�	�p		���2Wx�4&'.'.'.#"13267>7>7>5>7>32#"&'.'.5467#"&'.'.53267>7'#"&'.'.'.5467>7>7>32#"3267'.?"#"&/7#"&54632654&#">'&676>7>7>7>32

#Z11Z#



#Z11Z#

�+!V//V!!V//V!�!V//V!
#Z11Z#
�





$22$0`

$22$0



�	

	��	

	k
				

				
��
				
6
	

	
��b




2$$2(88R


2$$2(88

@� #!"3!2654&7'!326?!%7�`��<�������55��n ���� 7��`ɷ44������5J_t4&#!"3!265##!"&=463!2%467>32#"#"&5#"&'.5463232%#"&546326546324632#"&54&#"&���  	��		 	�`		

		L
				
�		

		L
				
o�		�		4				

��			

	%				

n			

	���5<GRdw.+54&'.+";;267>=3267>=4&'12#5%32!54635!+"&5+"&=3;7#"&=3267>=3#�
j
�



�
*
&	
����	
��
	 
	�	
`
	�	
@
�J�	
j
�
	�*

�
j



�

	
 `
	

	
����	

	�	

	j*
 
	*
j�	
O�F�%#"&'.'.'.5467>7>7>32#"3267'.?#"&/17.'.'.#"'.76&'&>32#"3267>7>7>54&'1R
""

"		<TT<6P..�
""
..P6<TT<		"
�

""
		T<<TE3]]

�



]]3ET<<T		
""���)3D]y.'54&'.#!"3!267>54&%463!2!#!"&5463!2%'&4762546327627#"&/#"&="'&4?�	
��
	
�
�H
	T	
���
	�l	

	�	
��;;		�		;;�//
��4
B	

	*��	

	4	

	�̕<<Y		Y Y		Y<<@��t��%.'.'.#"'76&'&'..'.#"3267>7>7>54&'.'73267>7>7>54&'"&546323"&54632�	
3�
��
�3
		

	..	

	����
	J�
��
�J	

		
CC
		
OO��'#"&/7627&"326?'۔���`����������������DQ^hy���.'54&'.'.'.+"0&#.+"0&#.+"3!267>54&''#54&'04132#54&'04132'32#546#!"&5463!2'#!"&5463!2#!"&5463!25#!"&5463!2�	RRR

�
0`M
�`M
�R
�
�
	�l	

�	0	��		@		��		@		��		@	�/	
/��

4
:**
	**


	**	
�V	

	4	

	��				�				Y				 �+E.'.#!";2326?3267>=4&'+"54&+"&=463!2�	�m
*\�

	�E	:	

�	��
P[
�
�	
D9	
	�	

	�# ��"&".#"132670632654&'64���	!/7 !/���/! 7/!		1M"32654&"&54632>54&#"32673335'#'5#'5#'#"&54632p				�^BB^^B,)IW̬)7))3
5KK55K��@				]B^^BB^,)IW��7))3K55KK5
�) .<JY!"3!2654&#!"&5463!2'!"3!2654&'!"3!2654&!"3!2654&'!"3!2654&#�`�	�`		�	@��		@		��		@		��		@		��		@		�`��0		�		�`P				�				`				�				
@�AUn���������%#5>7>7>7>54&'.'.'.#"#"3!2654&#'.'3#.#""457>7>32#"&'>732672#>7<3.'.'>32#"&'7>7>77.'>737#.'>7'.'.''.'>7#>7>73.'.'>7.'��



&&



�		`		��







�%



S

F
??
/
�

F
??
0

 a

&&



&&

a				�

�

		2

�
		


9
c
W


9
j
c

@�!1?M#54632354&#"#"3!26=4&#!"&=463!2#";2654&#";2654&��8((8 K55K 	��		 	@�		�		�		�		 `(88(5KK5`���		�		0				@				 �#/CSao#.'>54&#";;26=4&%2#"&546"&=46727#"#+"&=46;2#";2654&'#";2654&�]"8((8%+p���&&%&V	&!?
?pp	�		�	@`		`		`		`		 &
(88(J+p��&&%&��	p$?	�0		�		p				@				@� 8<JXf!"3!2654&#!"&5463!2!2654&+54&+"#"73#"326=4&3"326=4&3"326=4&��� 	��		 	��`		p	`	p		�@@0				I				I				��� ��		 		��p		0		0		@ �	�		�		�		�		�		�	 ��BN%#"&/&4762'#"&'.'.'.5467>7>7>32'4&#"326����K55KK55K$���>5KK55KK
)Wes��32654&+"#";2654&'32654&+"7#"326=46;2+"&=4&#";26=4&#";2654&'#";2654&#";2654&7"+"&=46;2326=4&+";26=4&# �		�		�0		0		��		�		��			�		�			����		�		W0		0		I�		�		I		�		�			��	P				0				�				`p		p		�				���				P				�				P	p		�				�p	`�-;IWes�������%!"&=463!2"3!26=4&##"&546;2'#"&546;23#"&546;23#"&546;2#"&546;23#"&546;23#"&546;27#"&546;23#"&546;2#"&546;23#"&546;2#"&546;2!#"&546;2�`��L		�		x�		�		�				I				I				�				I				I				I				I				W				I				��				9				`�� 	�		�	�				�												@												@								@								@								���
)>Pbs�%+"&546;24&+";26';2654&+"8132654&#81#"3&2326?6&'7232676&'&%2326?6&'&&232676&'1
R
	S
�	�

�
Z	�

�
�S	
R

R	





I

	I




	

	I


I

�






�


"



�

H	
H	R
	

��	�
H	

H	U

��	
	w��=_<��2���2����"@ @#@@ @ 
��T�@N�B���	:

�~���
4
� ��.���P"E��B�!c
�		�	M	�	,	n	
4�RegularLabsRegularLabsVersion 1.0Version 1.0RegularLabsRegularLabsRegularLabsRegularLabsRegularRegularRegularLabsRegularLabsFont generated by IcoMoon.Font generated by IcoMoon.regularlabs/fonts/RegularLabsIcons.svg000064400000052674152177723720014153 0ustar00<?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>Generated by IcoMoon</metadata>
<defs>
<font id="RegularLabsIcons" horiz-adv-x="512">
<font-face units-per-em="512" ascent="512" descent="0" />
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#x20;" horiz-adv-x="256" d="" />
<glyph unicode="&#xe001;" glyph-name="paragraph-left" d="M0 416h512v-32h-512zM0 352h352v-32h-352zM0 288h512v-32h-512zM0 224h352v-32h-352zM0 160h512v-32h-512zM0 96h352v-32h-352z" />
<glyph unicode="&#xe002;" glyph-name="paragraph-center" d="M0 416h512v-32h-512zM96 352h320v-32h-320zM96 224h320v-32h-320zM96 96h320v-32h-320zM0 288h512v-32h-512zM0 160h512v-32h-512z" />
<glyph unicode="&#xe003;" glyph-name="paragraph-right" d="M0 416h512v-32h-512zM160 352h352v-32h-352zM0 288h512v-32h-512zM160 224h352v-32h-352zM0 160h512v-32h-512zM160 96h352v-32h-352z" />
<glyph unicode="&#xe004;" glyph-name="paragraph-justify" d="M0 352h512v-32h-512zM0 224h512v-32h-512zM0 96h512v-32h-512zM0 416h512v-32h-512zM0 288h512v-32h-512zM0 160h512v-32h-512z" />
<glyph unicode="&#xe005;" glyph-name="undo" d="M380.931 0c56.863 103.016 66.444 260.153-156.931 254.912v-126.912l-192 192 192 192v-124.186c267.481 6.971 297.285-236.107 156.931-387.814z" />
<glyph unicode="&#xe006;" glyph-name="redo" d="M288 387.814v124.186l192-192-192-192v126.912c-223.375 5.241-213.794-151.896-156.93-254.912-140.356 151.707-110.55 394.785 156.93 387.814z" />
<glyph unicode="&#xe007;" glyph-name="spinner" d="M512 320h-192l71.765 71.765c-36.265 36.263-84.48 56.235-135.765 56.235s-99.5-19.972-135.765-56.235c-36.263-36.265-56.235-84.48-56.235-135.765s19.972-99.5 56.235-135.765c36.265-36.263 84.48-56.235 135.765-56.235s99.5 19.972 135.764 56.236c3.028 3.027 5.93 6.146 8.728 9.334l48.16-42.141c-46.923-53.583-115.832-87.429-192.652-87.429-141.385 0-256 114.615-256 256s114.615 256 256 256c70.693 0 134.684-28.663 181.008-74.992l74.992 74.992v-192z" />
<glyph unicode="&#xe008;" glyph-name="lock" d="M296 288h-8v96c0 52.935-43.065 96-96 96h-64c-52.935 0-96-43.065-96-96v-96h-8c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24zM192 64h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6zM224 288h-128v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96z" />
<glyph unicode="&#xe009;" glyph-name="unlocked" d="M384 480h-64c-52.935 0-96-43.065-96-96v-96h-200c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24h-8v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96h64v96c0 52.935-43.065 96-96 96zM192 64h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6z" />
<glyph unicode="&#xe00a;" glyph-name="cog" d="M512 207.953v96.094l-73.387 12.231c-2.979 9.066-6.611 17.834-10.847 26.25l43.227 60.517-67.948 67.949-60.413-43.152c-8.455 4.277-17.269 7.944-26.384 10.951l-12.201 73.207h-96.094l-12.201-73.208c-9.115-3.007-17.929-6.674-26.383-10.951l-60.414 43.152-67.949-67.949 43.227-60.518c-4.235-8.415-7.867-17.183-10.846-26.249l-73.387-12.23v-96.094l73.559-12.26c2.98-8.984 6.605-17.674 10.821-26.015l-43.374-60.724 67.949-67.948 60.827 43.447c8.301-4.175 16.945-7.764 25.882-10.717l12.289-73.736h96.094l12.289 73.737c8.937 2.953 17.581 6.542 25.883 10.716l60.826-43.446 67.948 67.948-43.372 60.723c4.216 8.341 7.839 17.031 10.82 26.016l73.559 12.259zM256 192c-35.346 0-64 28.653-64 64s28.654 64 64 64c35.347 0 64-28.654 64-64s-28.653-64-64-64z" />
<glyph unicode="&#xe00b;" glyph-name="arrow-up" d="M256.001 512l-256.001-256h160v-255.999l192-0.001v256h160z" />
<glyph unicode="&#xe00c;" glyph-name="arrow-right" d="M512 256l-256 256v-160h-255.999l-0.001-192h256v-160z" />
<glyph unicode="&#xe00d;" glyph-name="arrow-down" d="M256 0l256 256h-160v255.999l-192 0.001v-256h-160z" />
<glyph unicode="&#xe00e;" glyph-name="arrow-left" d="M0 256l256-256v160h255.999l0.001 192h-256v160z" />
<glyph unicode="&#xe00f;" glyph-name="top" d="M480 512h-448c-17.6 0-32-14.399-32-32v-448c0-17.601 14.398-32 32-32h448c17.6 0 32 14.399 32 32v448c0 17.601-14.4 32-32 32zM480 32h-448v384h448v-384z" />
<glyph unicode="&#xe010;" glyph-name="bottom" d="M480 512h-448c-17.6 0-32-14.399-32-32v-448c0-17.601 14.398-32 32-32h448c17.6 0 32 14.399 32 32v448c0 17.601-14.4 32-32 32zM480 128h-448v352h448v-352z" />
<glyph unicode="&#xe011;" glyph-name="simple" d="M256 0c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 464c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM400 384c8.8 0 16-7.2 16-16v-48c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32h-64c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32v48c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-16h64v16c0 8.8 7.2 16 16 16h96zM256 128c46.604 0 87.386 24.909 109.773 62.139l27.44-16.467c-27.983-46.535-78.958-77.672-137.213-77.672-24.229 0-47.192 5.398-67.77 15.041l16.581 27.639c15.677-6.857 32.982-10.68 51.189-10.68z" />
<glyph unicode="&#xe012;" glyph-name="normal" d="M256 0c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 464c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM128 352c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM320 352c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM352.049 198.37l41.164-24.698c-27.981-46.535-78.958-77.672-137.213-77.672s-109.232 31.137-137.213 77.672l41.164 24.698c19.587-32.574 55.271-54.37 96.049-54.37s76.462 21.796 96.049 54.37z" />
<glyph unicode="&#xe013;" glyph-name="advanced" d="M256 0c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 464c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM192 160c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM320 336c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48zM128 336c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48z" />
<glyph unicode="&#xe014;" glyph-name="home" d="M512 216.777l-256 198.714-256-198.714v81.019l256 198.713 256-198.714zM448 224v-192h-384v192l192 144z" />
<glyph unicode="&#xe015;" glyph-name="info" d="M256 512c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM224 416h64v-64h-64v64zM320 96h-128v32h32v128h-32v32h96v-160h32v-32z" />
<glyph unicode="&#xe016;" glyph-name="warning" d="M505.216 92.624l-191.984 384c-10.832 21.68-32.976 35.376-57.232 35.376s-46.4-13.696-57.232-35.376l-191.984-384c-9.92-19.84-8.864-43.408 2.8-62.288 11.664-18.848 32.256-30.336 54.432-30.336h383.952c22.192 0 42.784 11.488 54.432 30.336 11.664 18.88 12.72 42.448 2.816 62.288zM287.968 80c0-8.848-7.152-16-16-16h-32c-8.848 0-16 7.152-16 16v32c0 8.848 7.152 16 16 16h32c8.848 0 16-7.152 16-16v-32zM287.968 208c0-8.848-7.152-16-16-16h-32c-8.848 0-16 7.152-16 16v160c0 8.832 7.152 16 16 16h32c8.848 0 16-7.168 16-16v-160z" />
<glyph unicode="&#xe017;" glyph-name="not-ok" d="M256 512c-141.376 0-256-114.624-256-256s114.624-256 256-256 256 114.624 256 256-114.624 256-256 256zM384 224h-256v64h256v-64z" />
<glyph unicode="&#xe018;" glyph-name="link" d="M476.698 474.679l-2.014 2.021c-47.074 47.067-124.097 47.067-171.163 0l-109.053-109.068c-47.067-47.066-47.067-124.088 0-171.155l2.013-2.013c3.916-3.924 8.073-7.462 12.368-10.729l39.924 39.925c-4.651 2.747-9.063 6.036-13.058 10.030l-2.021 2.021c-25.557 25.549-25.557 67.136 0 92.695l109.064 109.056c25.558 25.559 67.137 25.559 92.693 0l2.021-2.012c25.55-25.558 25.55-67.146 0-92.695l-49.343-49.343c8.566-21.154 12.624-43.7 12.269-66.193l76.302 76.302c47.067 47.068 47.067 124.089-0.002 171.158zM315.521 317.533c-3.916 3.916-8.073 7.461-12.368 10.72l-39.924-39.916c4.652-2.748 9.063-6.037 13.058-10.031l2.021-2.020c25.558-25.558 25.558-67.136 0-92.694l-109.065-109.067c-25.559-25.551-67.138-25.551-92.694 0l-2.021 2.021c-25.549 25.56-25.549 67.138 0 92.694l49.344 49.343c-8.567 21.153-12.623 43.701-12.269 66.193l-76.301-76.299c-47.068-47.066-47.068-124.089 0-171.162l2.013-2.016c47.076-47.064 124.096-47.064 171.164 0l109.055 109.059c47.067 47.066 47.067 124.097 0 171.163l-2.013 2.012z" />
<glyph unicode="&#xe019;" glyph-name="eye" d="M256 416c-111.659 0-208.441-65.021-256-160 47.559-94.979 144.341-160 256-160 111.657 0 208.439 65.021 256 160-47.558 94.979-144.343 160-256 160zM382.225 331.148c30.081-19.187 55.571-44.887 74.717-75.148-19.146-30.261-44.637-55.961-74.718-75.149-37.797-24.108-81.445-36.851-126.224-36.851-44.78 0-88.428 12.743-126.225 36.852-30.080 19.186-55.57 44.886-74.717 75.148 19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-70.692 57.308-128 128-128s128 57.308 128 128c0 15.387-2.725 30.134-7.704 43.799 1.99-1.189 3.969-2.401 5.929-3.651zM256 307c0-26.51-21.49-48-48-48s-48 21.49-48 48 21.49 48 48 48 48-21.49 48-48z" />
<glyph unicode="&#xe01a;" glyph-name="search" d="M496.131 76.302l-121.276 103.147c-12.537 11.283-25.945 16.463-36.776 15.963 28.628 33.534 45.921 77.039 45.921 124.588 0 106.039-85.961 192-192 192s-192-85.961-192-192c0-106.039 85.961-192 192-192 47.549 0 91.054 17.293 124.588 45.922-0.5-10.831 4.68-24.239 15.963-36.776l103.147-121.276c17.661-19.623 46.511-21.277 64.11-3.678s15.946 46.449-3.677 64.11zM192 192c-70.692 0-128 57.308-128 128s57.308 128 128 128 128-57.308 128-128-57.307-128-128-128z" />
<glyph unicode="&#xe01b;" glyph-name="src_sourcetags" d="M316.631 225.336c2.789-7.281 4.182-16.029 4.182-26.25 0-21.372-6.272-38.563-18.816-51.572s-30.897-19.515-55.056-19.515c-12.391 0-23.542 1.707-33.452 5.112-9.917 3.403-17.35 6.504-22.301 9.291l8.362 32.987c4.646-2.483 10.918-5.271 18.817-8.362 7.897-3.1 16.646-4.647 26.25-4.647 11.769 0 20.675 3.326 26.715 9.99 6.040 6.657 9.060 15.405 9.060 26.251 0 6.809-1.241 12.615-3.718 17.423-2.482 4.798-5.733 9.059-9.756 12.775-4.028 3.718-8.676 7.042-13.938 9.989-5.271 2.94-10.534 6.112-15.797 9.524-5.271 3.093-10.381 6.737-15.332 10.919-4.958 4.181-9.372 8.98-13.241 14.403-3.877 5.415-6.969 11.615-9.292 18.583-2.323 6.97-3.484 15.1-3.484 24.392 0 20.131 6.272 36.392 18.816 48.784 12.544 12.387 29.503 18.587 50.875 18.587 8.98 0 17.495-1.161 25.554-3.484 8.051-2.323 14.707-4.878 19.979-7.666l-8.828-32.058c-5.575 3.092-11.151 5.415-16.727 6.969-5.575 1.546-11.615 2.323-18.12 2.323-9.915 0-17.813-2.868-23.694-8.595-5.887-5.735-8.828-14.019-8.828-24.857 0-6.199 1.082-11.543 3.252-16.029 2.163-4.494 5.031-8.522 8.596-12.080 3.557-3.564 7.586-6.896 12.079-9.989 4.485-3.1 9.213-6.040 14.171-8.828 5.88-3.411 11.687-7.128 17.422-11.15 5.729-4.030 10.838-8.756 15.332-14.171 4.486-5.424 8.13-11.776 10.918-19.049zM86.622 279.502c9.379 21.103 9.379 47.23 9.379 72.498 0 21.929 0 59.722 6.621 74.62 4.505 10.136 12.944 20.498 41.379 20.498 8.836 0 16 7.163 16 16s-7.163 16-16 16c-18.292 0-33.032-3.411-45.063-10.43-11.321-6.604-19.92-16.385-25.558-29.073-9.379-21.103-9.379-62.348-9.379-87.616 0-21.928 0-44.604-6.621-59.502-4.505-10.135-12.945-20.497-41.379-20.497-8.837 0-16-7.163-16-16s7.163-15.999 16-15.999c28.435 0 36.874-10.363 41.379-20.5 6.621-14.896 6.621-37.572 6.621-59.501 0-25.268 0-67.392 9.379-88.495 5.638-12.688 14.238-22.468 25.559-29.072 12.031-7.019 26.771-10.43 45.063-10.43 8.836 0 16 7.163 16 16.001 0 8.835-7.163 15.999-16 15.999-28.435 0-36.875 10.362-41.379 20.499-6.621 14.896-6.621 53.568-6.621 75.498 0 25.268 0 51.396-9.379 72.497-4.225 9.504-10.108 17.373-17.552 23.503 7.444 6.128 13.327 14 17.551 23.502zM495.999 272c-28.435 0-36.874 10.362-41.379 20.498-6.621 14.898-6.621 37.574-6.621 59.502 0 25.268 0 66.513-9.378 87.616-5.639 12.688-14.238 22.468-25.56 29.072-12.031 7.019-26.771 10.43-45.062 10.43-8.837 0-16.001-7.163-16.001-16s7.164-16 16.001-16c28.435 0 36.873-10.362 41.379-20.498 6.622-14.898 6.622-52.691 6.622-74.62 0-25.268 0-51.395 9.379-72.498 4.223-9.502 10.105-17.374 17.55-23.501-7.444-6.13-13.327-14-17.55-23.503-9.379-21.102-9.379-47.23-9.379-72.498 0-21.93 0-60.602-6.621-75.498-4.506-10.137-12.944-20.499-41.379-20.499-8.837 0-16.001-7.164-16.001-15.999 0-8.838 7.164-16.001 16.001-16.001 18.291 0 33.030 3.411 45.062 10.43 11.321 6.604 19.921 16.385 25.56 29.072 9.378 21.104 9.378 63.228 9.378 88.495 0 21.929 0 44.604 6.621 59.501 4.505 10.137 12.944 20.5 41.379 20.5 8.837 0 16.001 7.162 16.001 15.999s-7.165 16-16.002 16z" />
<glyph unicode="&#xe01c;" glyph-name="src_nosourcetags" d="M316.631 225.336c2.789-7.281 4.182-16.029 4.182-26.25 0-21.372-6.272-38.563-18.816-51.572s-30.897-19.515-55.056-19.515c-12.391 0-23.542 1.707-33.452 5.112-9.917 3.403-17.35 6.504-22.301 9.291l8.362 32.987c4.646-2.483 10.918-5.271 18.817-8.362 7.897-3.1 16.646-4.647 26.25-4.647 11.769 0 20.675 3.326 26.715 9.99 6.040 6.657 9.060 15.405 9.060 26.251 0 6.809-1.241 12.615-3.718 17.423-2.482 4.798-5.733 9.059-9.756 12.775-4.028 3.718-8.676 7.042-13.938 9.989-5.271 2.94-10.534 6.112-15.797 9.524-5.271 3.093-10.381 6.737-15.332 10.919-4.958 4.181-9.372 8.98-13.241 14.403-3.877 5.415-6.969 11.615-9.292 18.583-2.323 6.97-3.484 15.1-3.484 24.392 0 20.131 6.272 36.392 18.816 48.784 12.544 12.387 29.503 18.587 50.875 18.587 8.98 0 17.495-1.161 25.554-3.484 8.051-2.323 14.707-4.878 19.979-7.666l-8.828-32.058c-5.575 3.092-11.151 5.415-16.727 6.969-5.575 1.546-11.615 2.323-18.12 2.323-9.915 0-17.813-2.868-23.694-8.595-5.887-5.735-8.828-14.019-8.828-24.857 0-6.199 1.082-11.543 3.252-16.029 2.163-4.494 5.031-8.522 8.596-12.080 3.557-3.564 7.586-6.896 12.079-9.989 4.485-3.1 9.213-6.040 14.171-8.828 5.88-3.411 11.687-7.128 17.422-11.15 5.729-4.030 10.838-8.756 15.332-14.171 4.486-5.424 8.13-11.776 10.918-19.049zM86.622 279.502c9.379 21.103 9.379 47.23 9.379 72.498 0 21.929 0 59.722 6.621 74.62 4.505 10.136 12.944 20.498 41.379 20.498 8.836 0 16 7.163 16 16s-7.163 16-16 16c-18.292 0-33.032-3.411-45.063-10.43-11.321-6.604-19.92-16.385-25.558-29.073-9.379-21.103-9.379-62.348-9.379-87.616 0-21.928 0-44.604-6.621-59.502-4.505-10.135-12.945-20.497-41.379-20.497-8.837 0-16-7.163-16-16s7.163-15.999 16-15.999c28.435 0 36.874-10.363 41.379-20.5 6.621-14.896 6.621-37.572 6.621-59.501 0-25.268 0-67.392 9.379-88.495 5.638-12.688 14.238-22.468 25.559-29.072 12.031-7.019 26.771-10.43 45.063-10.43 8.836 0 16 7.163 16 16.001 0 8.835-7.163 15.999-16 15.999-28.435 0-36.875 10.362-41.379 20.499-6.621 14.896-6.621 53.568-6.621 75.498 0 25.268 0 51.396-9.379 72.497-4.225 9.504-10.108 17.373-17.552 23.503 7.444 6.128 13.327 14 17.551 23.502zM495.999 272c-28.435 0-36.874 10.362-41.379 20.498-6.621 14.898-6.621 37.574-6.621 59.502 0 25.268 0 66.513-9.378 87.616-5.639 12.688-14.238 22.468-25.56 29.072-12.031 7.019-26.771 10.43-45.062 10.43-8.837 0-16.001-7.163-16.001-16s7.164-16 16.001-16c28.435 0 36.873-10.362 41.379-20.498 6.622-14.898 6.622-52.691 6.622-74.62 0-25.268 0-51.395 9.379-72.498 4.223-9.502 10.105-17.374 17.55-23.501-7.444-6.13-13.327-14-17.55-23.503-9.379-21.102-9.379-47.23-9.379-72.498 0-21.93 0-60.602-6.621-75.498-4.506-10.137-12.944-20.499-41.379-20.499-8.837 0-16.001-7.164-16.001-15.999 0-8.838 7.164-16.001 16.001-16.001 18.291 0 33.030 3.411 45.062 10.43 11.321 6.604 19.921 16.385 25.56 29.072 9.378 21.104 9.378 63.228 9.378 88.495 0 21.929 0 44.604 6.621 59.501 4.505 10.137 12.944 20.5 41.379 20.5 8.837 0 16.001 7.162 16.001 15.999s-7.165 16-16.002 16zM486.005 475.612c6.899 5.52 16.969 4.401 22.488-2.499 5.521-6.9 4.4-16.969-2.498-22.489l-480-415.115c-2.95-2.359-6.48-3.506-9.985-3.506-4.694 0-9.344 2.056-12.504 6.005-5.521 6.9-4.401 16.969 2.499 22.489" />
<glyph unicode="&#xe01d;" glyph-name="src_tagstyle" d="M157.72 422.885l-120.401-167.324 120.401-167.325c4.546-7.578 2.089-17.406-5.488-21.953-2.577-1.545-5.416-2.281-8.217-2.282-5.436 0-10.735 2.771-13.735 7.771l-130.28 183.789 130.28 183.789c4.547 7.578 14.375 10.034 21.952 5.488 7.578-4.547 10.035-14.375 5.488-21.953zM381.719 439.349c-4.546 7.577-14.374 10.035-21.951 5.488-7.578-4.546-10.034-14.375-5.488-21.952l120.402-167.325-120.402-167.324c-4.546-7.578-2.090-17.406 5.488-21.953 2.578-1.545 5.414-2.282 8.217-2.282 5.435 0 10.735 2.771 13.734 7.771l130.281 183.789-130.281 183.788zM307.88 478.639c-8.571 2.143-17.26-3.068-19.403-11.641l-95.999-415.115c-2.143-8.572 3.069-17.258 11.642-19.402 1.303-0.325 2.608-0.48 3.892-0.48 7.169 0 13.693 4.853 15.51 12.122l96 415.115c2.143 8.571-3.069 17.259-11.642 19.401z" />
<glyph unicode="&#xe01e;" glyph-name="src_tagstyle_brackets" d="M512 479.117v-447.114h-48.001c-8.837 0-16 7.163-16 16.001 0 8.835 7.163 15.999 16 15.999h16v383.114h-16c-8.837 0-16 7.163-16 16s7.163 16 16 16h48.001zM351.999 463.118c0-8.837 7.164-16 16.001-16h15.999v-383.114h-15.999c-8.837 0-16.001-7.164-16.001-15.999 0-8.838 7.164-16.001 16.001-16.001h48v447.113h-48c-8.837 0-16.001-7.163-16.001-15.999zM307.88 478.639c-8.571 2.143-17.26-3.068-19.403-11.641l-95.999-415.115c-2.143-8.572 3.069-17.258 11.642-19.402 1.303-0.325 2.608-0.48 3.892-0.48 7.169 0 13.693 4.853 15.51 12.122l96 415.115c2.143 8.571-3.069 17.259-11.642 19.401zM48.001 447.117c8.836 0 16 7.163 16 16 0 8.836-7.164 16-16 16h-48v-447.114h48c8.836 0 16 7.163 16 16.001 0 8.835-7.164 15.999-16 15.999h-16v383.114h16zM144.001 447.117c8.836 0 16 7.163 16 16 0 8.836-7.163 16-16 16h-48v-447.114h48c8.836 0 16 7.163 16 16.001 0 8.835-7.163 15.999-16 15.999h-16.001v383.114h16.001z" />
<glyph unicode="&#xe021;" glyph-name="bundle" d="M416 416v64h-320v-64h-96v-64c0-53.019 42.979-96 96-96 10.038 0 19.715 1.543 28.81 4.401 23.087-33.004 58.304-56.898 99.19-65.198v-99.203h-32c-35.347 0-64-28.653-64-64h256c0 35.347-28.653 64-64 64h-32v99.203c40.886 8.3 76.103 32.193 99.19 65.198 9.095-2.858 18.772-4.401 28.81-4.401 53.021 0 96 42.981 96 96v64h-96zM96 294c-31.981 0-58 26.019-58 58v32h58v-32c0-20.093 3.715-39.316 10.477-57.034-3.401-0.623-6.899-0.966-10.477-0.966zM474 352c0-31.981-26.019-58-58-58-3.578 0-7.076 0.343-10.477 0.966 6.762 17.718 10.477 36.941 10.477 57.034v32h58v-32z" />
<glyph unicode="&#xe022;" glyph-name="lifetime" d="M416 416v64h-320v-64h-96v-64c0-53.019 42.979-96 96-96 10.038 0 19.715 1.543 28.81 4.401 23.087-33.004 58.304-56.898 99.19-65.198v-99.203h-32c-35.347 0-64-28.653-64-64h256c0 35.347-28.653 64-64 64h-32v99.203c40.886 8.3 76.103 32.193 99.19 65.198 9.095-2.858 18.772-4.401 28.81-4.401 53.021 0 96 42.981 96 96v64h-96zM96 294c-31.981 0-58 26.019-58 58v32h58v-32c0-20.093 3.715-39.316 10.477-57.034-3.401-0.623-6.899-0.966-10.477-0.966zM304.707 326.403l30.51-93.208-79.217 57.821-79.216-57.821 30.509 93.208-79.468 57.472 98.072-0.214 30.103 93.339 30.104-93.339 98.071 0.214-79.468-57.472zM474 352c0-31.981-26.019-58-58-58-3.578 0-7.076 0.343-10.477 0.966 6.762 17.718 10.477 36.941 10.477 57.034v32h58v-32z" />
<glyph unicode="&#xe030;" glyph-name="twitter" d="M512 414.791c-18.838-8.354-39.082-14.001-60.33-16.54 21.686 13 38.343 33.585 46.186 58.115-20.298-12.039-42.778-20.78-66.705-25.49-19.16 20.415-46.461 33.17-76.673 33.17-58.011 0-105.044-47.029-105.044-105.039 0-8.233 0.929-16.25 2.72-23.939-87.3 4.382-164.701 46.2-216.509 109.753-9.042-15.514-14.223-33.558-14.223-52.809 0-36.444 18.544-68.596 46.73-87.433-17.219 0.546-33.416 5.271-47.577 13.139-0.010-0.438-0.010-0.878-0.010-1.321 0-50.894 36.209-93.348 84.261-103-8.813-2.4-18.094-3.686-27.674-3.686-6.769 0-13.349 0.66-19.764 1.886 13.368-41.73 52.16-72.103 98.126-72.948-35.95-28.175-81.243-44.967-130.458-44.967-8.479 0-16.84 0.497-25.058 1.47 46.486-29.805 101.701-47.197 161.021-47.197 193.211 0 298.868 160.062 298.868 298.872 0 4.554-0.103 9.084-0.305 13.59 20.528 14.81 38.336 33.31 52.418 54.374z" />
<glyph unicode="&#xe031;" glyph-name="google-plus" d="M162.9 283.3v-55.9h92.4c-3.7-24-27.9-70.3-92.4-70.3-55.6 0-101 46.1-101 102.9s45.4 102.9 101 102.9c31.7 0 52.8-13.5 64.9-25.1l44.2 42.6c-28.4 26.5-65.2 42.6-109.1 42.6-90.1-0.1-162.9-72.9-162.9-163s72.8-162.9 162.9-162.9c94 0 156.4 66.1 156.4 159.2 0 10.7-1.2 18.9-2.6 27h-153.8zM512 288h-48v48h-48v-48h-48v-48h48v-48h48v48h48z" />
<glyph unicode="&#xe032;" glyph-name="facebook" d="M304 416h80v96h-80c-61.757 0-112-50.243-112-112v-48h-64v-96h64v-256h96v256h80l16 96h-96v48c0 8.673 7.327 16 16 16z" />
<glyph unicode="&#xe033;" glyph-name="joomla" d="M133.002 373.661c16.416 16.422 43.001 16.422 59.402 0.016l3.913-3.934 50.552 50.578-3.937 3.94c-28.812 28.85-69.257 38.939-106.21 30.261-5.297 32.591-33.544 57.462-67.587 57.478-37.825 0-68.477-30.721-68.485-68.579 0-32.668 22.795-60 53.331-66.915-11.569-38.725-2.121-82.417 28.423-112.992l113.913-113.95 50.498 50.607-113.905 113.943c-16.341 16.361-16.371 43.063 0.092 59.547zM511.356 443.421c0.008 37.881-30.659 68.579-68.492 68.579-34.617 0-63.239-25.722-67.841-59.119-38.537 11.332-81.892 1.748-112.32-28.704l-113.92-113.95 50.551-50.586 113.883 113.928c16.47 16.483 42.994 16.453 59.342 0.092 16.4-16.415 16.4-43.057-0.016-59.478l-3.897-3.918 50.505-50.624 3.929 3.964c30.229 30.283 39.839 73.378 28.806 111.819 33.575 4.417 59.47 33.182 59.47 67.997zM453.133 136.468c9.051 37.229-0.988 78.162-30.054 107.25l-113.745 113.996-50.551-50.561 113.76-114.006c16.47-16.498 16.432-43.048 0.092-59.424-16.401-16.407-43.002-16.407-59.418 0.015l-3.883 3.895-50.497-50.623 3.866-3.864c30.758-30.797 74.809-40.219 113.684-28.244 6.316-31.341 33.967-54.902 67.129-54.902 37.802 0 68.484 30.675 68.484 68.563 0 34.6-25.59 63.228-58.867 67.905zM306.172 247.658l-113.768-113.996c-16.355-16.384-43.017-16.414-59.472 0.062-16.409 16.452-16.416 43.049-0.022 59.485l3.904 3.887-50.543 50.562-3.867-3.856c-29.38-29.401-39.28-70.917-29.725-108.491-30.199-7.13-52.679-34.317-52.679-66.748-0.008-37.873 30.666-68.563 68.491-68.563 32.55 0.016 59.794 22.709 66.77 53.191 37.351-9.276 78.499 0.652 107.672 29.878l113.745 113.98-50.506 50.609z" />
</font></defs></svg>regularlabs/fonts/RegularLabsIcons.eot000064400000016510152177723720014130 0ustar00H��LP=B� RegularLabsIconsRegularVersion 1.0 RegularLabsIcons�0OS/2A�"�`cmap��dgasp�glyft���thead�4S�6hhea)4$hmtxKMX�locaY
R��Rmaxp/L name���l�post` ��LfGLf��@�3 H ��"�3���� ��!�0������  ���797979@�!!!!!!!!!!!!�`���`���`���           @�!!!!!!!!'!!!!�`@��@��@��`���   ` ` � ` @�!!!!!!!!!!!!��`�����`�����`���           @�!!!!!!!!!!!!������` ` ` ` ` `  }
%>.'76}VT��dr#''ZN2��|Mw���55&.> ��TV5'#rd�|��2NZ'9�wM)#7.#"3267>7#".54>327�HG&&GG&&G1$c:5]F((F]55]#K@HG&&G+(/(F]55]F((#K@�(2#54&+"#"3!26=4&#7.546327#546;2(8(@(8


r@

.�
@
 `(88(`
�

�
�F

�`

��#2#"#"3!26=4&+546;2354&#7.54632�@(8�




@
@8�@

�8(`
�

�
`

``(8�`F

0<%5'.'7'./#'737>77'>?"&54632I+D<
`
<D+IJ+D=
`
=D+J�%%%%�`
<D+II+D<
`
=D+JJ+D=
%%%%	333������	!!�����%###����5!5!5�����!"3!2654&!!�@

�

�@�
�@

�
� �!"3!2654&!!�@

�

�@�
�@

�
��`'IW%2>54.#"2#".54>2+"&5#+"&=46;235463267#"&'75]F((F]55]F((F]5+L8!!8L++L8!!8L�	
@
@
@
	`	@	0#:H,"(F]55]F((F]55]F(�!8L++L8!!8L++L8!P	0



0			�"#+'3?M%2>54.#"2#".54>4632#"&74632#"&#"&'73265]F((F]55]F((F]5+L8!!8L++L8!!8LU



�



 )H,,H)22(F]55]F((F]55]F(�!8L++L8!!8L++L8!p






�#++#'3?K%2>54.#"2#".54>4632#"&732654&#"32654&#"5]F((F]55]F((F]5+L8!!8L++L8!!8L%%%%�



�



(F]55]F((F]55]F(�!8L++L8!!8L++L8!��%%%%� �
-5%!57��@������Q��J���!"32>54.3##535#5335]F((F]55]F((F]U@@`�  ` (F]55]F((F]55]F(`@� � ��%5%.#"3!267>'+"&=46;25+"&=46;2���	�	�	 		 		 		 	]���""
		 		`		�		"32>54.!5!5]F((F]55]F((F]K�(F]55]F((F]55]F(��@##��#H'&"7./&4?62764.'"/&4?.72?64/�$d#n##(m61M#�(m61M##$d#n##�##m$d$(6m62"M#dy(6m62"M#d$##m$d$`�8D"32>7.#"&'.'>7>732654&'#"&54632*MB55BM**MB55BMT&&@""@&&K55K~�*;$$;**;$$;*U&&&&
5KK5
�(%'.>54&#"326776&%"&54632�y
pPPppP$?	g
&

��5KK55KKLg	?$PppPPp
y

&�K55KK55K �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#=
					
	
	

			�										�										�
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		 �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#'6#"&'&67=
					
	
	

			�										�										

� �
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		�
�a
 �'9#"&/7>7.326?''&:32676&'�yy��
�
yy��J`	`���
����
��(�a� �#5HZ#"&546;#"&5463;#";#"'&:32676&'2654&+32654&+332654&+32654&+0				p			00	,`	`��		00		`		00		�A					��		�		�a� 		�A				�A		 �$0<5!#3267#"!4&+5>7326=#"&=3"%#*'>=3���`8(3 %% 3(8`��":w":�@@@(8#c%%c#8(@z"  
:"
  �$0;G5!#3267#"!4&+5>7326=#"&=3"7'7'3737#*'>=3���`8(3 %% 3(8`��":�OOObbO�":�@@@(8#c%%c#8(@z"  
 ]::]:]]:"
 0�A>7.#".'"&'0#"&'3#*'32>5<5>7"(+>Ap'

0$

6#C%
#R,HpL'�	
	
=,;0.&9 )6Vk4a�+3#"&546327.#"32654&'#%#5##3353�\*0*;;* 	,7!D__DFV�]00000084<++<	*_DD_YF
00000��35#"#3337#5460PP.B@@`P`	�`B.0`�`0	7So627'..#"7'&47%4&#"&7627>'>56&/"/732654&''"'&4?'32676?'�#39&(	r3rz('<r2r
"
2":r2r
"
2=&("�r#3(%:r3v2!(%=r2r#
E("r2r
#2=&��:r3r#

3	(&pr

#3;%(r3��B=_<��o���o��( �#�
Jv���
J��8J\n���@�2d��L��J�		�	�
T
�
��(��Q�0�
�	 	�	 a	 �	;	 �	
4RegularLabsIconsRegularLabsIconsVersion 1.0Version 1.0RegularLabsIconsRegularLabsIconsRegularLabsIconsRegularLabsIconsRegularRegularRegularLabsIconsRegularLabsIconsFont generated by IcoMoon.Font generated by IcoMoon.regularlabs/fonts/RegularLabsIcons.woff000064400000016314152177723720014304 0ustar00wOFF��OS/2``A�"cmaphdd��gasp�glyf�ttt��headH66�4Shhea�$$)hmtx���KMlocaDRRY
R�maxp�  /name������post�  ��LfGLf��@�3 H ��"�3���� ��!�0������  ���797979@�!!!!!!!!!!!!�`���`���`���           @�!!!!!!!!'!!!!�`@��@��@��`���   ` ` � ` @�!!!!!!!!!!!!��`�����`�����`���           @�!!!!!!!!!!!!������` ` ` ` ` `  }
%>.'76}VT��dr#''ZN2��|Mw���55&.> ��TV5'#rd�|��2NZ'9�wM)#7.#"3267>7#".54>327�HG&&GG&&G1$c:5]F((F]55]#K@HG&&G+(/(F]55]F((#K@�(2#54&+"#"3!26=4&#7.546327#546;2(8(@(8


r@

.�
@
 `(88(`
�

�
�F

�`

��#2#"#"3!26=4&+546;2354&#7.54632�@(8�




@
@8�@

�8(`
�

�
`

``(8�`F

0<%5'.'7'./#'737>77'>?"&54632I+D<
`
<D+IJ+D=
`
=D+J�%%%%�`
<D+II+D<
`
=D+JJ+D=
%%%%	333������	!!�����%###����5!5!5�����!"3!2654&!!�@

�

�@�
�@

�
� �!"3!2654&!!�@

�

�@�
�@

�
��`'IW%2>54.#"2#".54>2+"&5#+"&=46;235463267#"&'75]F((F]55]F((F]5+L8!!8L++L8!!8L�	
@
@
@
	`	@	0#:H,"(F]55]F((F]55]F(�!8L++L8!!8L++L8!P	0



0			�"#+'3?M%2>54.#"2#".54>4632#"&74632#"&#"&'73265]F((F]55]F((F]5+L8!!8L++L8!!8LU



�



 )H,,H)22(F]55]F((F]55]F(�!8L++L8!!8L++L8!p






�#++#'3?K%2>54.#"2#".54>4632#"&732654&#"32654&#"5]F((F]55]F((F]5+L8!!8L++L8!!8L%%%%�



�



(F]55]F((F]55]F(�!8L++L8!!8L++L8!��%%%%� �
-5%!57��@������Q��J���!"32>54.3##535#5335]F((F]55]F((F]U@@`�  ` (F]55]F((F]55]F(`@� � ��%5%.#"3!267>'+"&=46;25+"&=46;2���	�	�	 		 		 		 	]���""
		 		`		�		"32>54.!5!5]F((F]55]F((F]K�(F]55]F((F]55]F(��@##��#H'&"7./&4?62764.'"/&4?.72?64/�$d#n##(m61M#�(m61M##$d#n##�##m$d$(6m62"M#dy(6m62"M#d$##m$d$`�8D"32>7.#"&'.'>7>732654&'#"&54632*MB55BM**MB55BMT&&@""@&&K55K~�*;$$;**;$$;*U&&&&
5KK5
�(%'.>54&#"326776&%"&54632�y
pPPppP$?	g
&

��5KK55KKLg	?$PppPPp
y

&�K55KK55K �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#=
					
	
	

			�										�										�
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		 �b��%#"&'.'73267>54&'.'.'.'.'.'.'.5467>32.'.#"'>5467>32654&#"#"3232654&#"&'.54&'.'>7"&'.54&'.'.#"32#"3267>7>5467>32654&#'6#"&'&67=
					
	
	

			�										�										

� �
	

!
		
	
	 	7&/
			5 
		
 6
		
0&
 5			
/&&0
		
6 
		�
�a
 �'9#"&/7>7.326?''&:32676&'�yy��
�
yy��J`	`���
����
��(�a� �#5HZ#"&546;#"&5463;#";#"'&:32676&'2654&+32654&+332654&+32654&+0				p			00	,`	`��		00		`		00		�A					��		�		�a� 		�A				�A		 �$0<5!#3267#"!4&+5>7326=#"&=3"%#*'>=3���`8(3 %% 3(8`��":w":�@@@(8#c%%c#8(@z"  
:"
  �$0;G5!#3267#"!4&+5>7326=#"&=3"7'7'3737#*'>=3���`8(3 %% 3(8`��":�OOObbO�":�@@@(8#c%%c#8(@z"  
 ]::]:]]:"
 0�A>7.#".'"&'0#"&'3#*'32>5<5>7"(+>Ap'

0$

6#C%
#R,HpL'�	
	
=,;0.&9 )6Vk4a�+3#"&546327.#"32654&'#%#5##3353�\*0*;;* 	,7!D__DFV�]00000084<++<	*_DD_YF
00000��35#"#3337#5460PP.B@@`P`	�`B.0`�`0	7So627'..#"7'&47%4&#"&7627>'>56&/"/732654&''"'&4?'32676?'�#39&(	r3rz('<r2r
"
2":r2r
"
2=&("�r#3(%:r3v2!(%=r2r#
E("r2r
#2=&��:r3r#

3	(&pr

#3;%(r3��B=_<��o���o��( �#�
Jv���
J��8J\n���@�2d��L��J�		�	�
T
�
��(��Q�0�
�	 	�	 a	 �	;	 �	
4RegularLabsIconsRegularLabsIconsVersion 1.0Version 1.0RegularLabsIconsRegularLabsIconsRegularLabsIconsRegularLabsIconsRegularRegularRegularLabsIconsRegularLabsIconsFont generated by IcoMoon.Font generated by IcoMoon.mod_sampledata/js/sampledata-process.js000064400000005175152177723720014304 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

!(function ($) {
	"use strict";

	var inProgress = false;

	var sampledataAjax = function(type, steps, step) {
		if (step > steps) {
			$('.sampledata-' + type + ' .row-title').append('<span class="icon-publish"> </span>');
			inProgress = false;
			return;
		}
		var stepClass = 'sampledata-steps-' + type + '-' + step,
			$stepLi = $('<li class="' + stepClass + '"><p class="loader-image text-center"><img src="' + window.modSampledataIconProgress + '" width="30" height="30" ></p></li>'),
			$progress = $(".sampledata-progress-" + type + " progress");

		$("div.sampledata-progress-" + type + " ul").append($stepLi);

		var request = $.ajax({
			url: window.modSampledataUrl,
			type: 'POST',
			dataType: 'json',
			data: {
				type: type,
				plugin: 'SampledataApplyStep' + step,
				step: step
			}
		});
		request.done(function(response){
			$stepLi.children('.loader-image').remove();

			if (response.success && response.data && response.data.length > 0) {
				var success, value, resultClass, $msg;

				// Display all messages that we got
				for(var i = 0, l = response.data.length; i < l; i++) {
					value   = response.data[i];
					success = value.success;
					resultClass = success ? 'success' : 'error';
					$stepLi.append($('<div>', {
						html: value.message,
						'class': 'alert alert-' + resultClass,
					}));
				}

				// Update progress
				$progress.val(step/steps);

				// Move on next step
				if (success) {
					step++;
					sampledataAjax(type, steps, step);
				}

			} else {
				$stepLi.addClass('alert alert-error');
				$stepLi.html(Joomla.JText._('MOD_SAMPLEDATA_INVALID_RESPONSE'));
				inProgress = false;
			}
		});
		request.fail(function(jqXHR, textStatus){
			alert('Something went wrong! Please close and reopen the browser and try again!');
		});
	};

	window.sampledataApply = function(el) {
		var $el = $(el), type = $el.data('type'), steps = $el.data('steps');

		// Check whether the work in progress or we alredy proccessed with current item
		if (inProgress) {
			return;
		}
		if ($el.data('processed')) {
			alert(Joomla.JText._('MOD_SAMPLEDATA_ITEM_ALREADY_PROCESSED'));
			return;
		}

		// Make sure that use run this not by random clicking on the page links
		if (!confirm(Joomla.JText._('MOD_SAMPLEDATA_CONFIRM_START'))) {
			return false;
		}

		// Turn on the progress container
		$('.sampledata-progress-' + type).show();
		$el.data('processed', true)

		inProgress = true;
		sampledataAjax(type, steps, 1);
		return false;
	};

})(jQuery);
com_menus/js/admin-items-modal.min.js000064400000002572152177723720013611 0ustar00!function(){"use strict";window.jSelectMenuItem=function(t,e,n,a,o,i){var r,d,l="";if(!Joomla.getOptions("xtd-menus"))return window.parent.jModalClose(),!1;d=Joomla.getOptions("xtd-menus").editor,""!==i&&(l="&lang="),r='<a href="'+n+l+i+'">'+e+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(d)?void 0!==window.parent.Joomla.editors.instances[d].getSelection&&window.parent.Joomla.editors.instances[d].getSelection()?window.parent.Joomla.editors.instances[d].replaceSelection('<a href="'+n+l+i+'">'+window.parent.Joomla.editors.instances[d].getSelection()+"</a>"):window.parent.Joomla.editors.instances[d].replaceSelection(r):window.parent.jInsertEditorText(r,d),window.parent.jModalClose()},document.addEventListener("DOMContentLoaded",function(){for(var t=document.querySelectorAll(".select-link"),e=0,n=t.length;e<n;e++)t[e].addEventListener("click",function(t){t.preventDefault();var e=t.target.getAttribute("data-function");"jSelectMenuItem"===e?window[e](t.target.getAttribute("data-id"),t.target.getAttribute("data-title"),t.target.getAttribute("data-uri"),null,null,t.target.getAttribute("data-language")):window.parent[e](t.target.getAttribute("data-id"),t.target.getAttribute("data-title"),null,null,t.target.getAttribute("data-uri"),t.target.getAttribute("data-language"),null)})})}();
com_menus/js/admin-items-modal.js000064400000004706152177723720013030 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
(function() {
	"use strict";
	/**
	 * Javascript to insert the link
	 * View element calls jSelectContact when a contact is clicked
	 * jSelectContact creates the link tag, sends it to the editor,
	 * and closes the select frame.
	 */

	window.jSelectMenuItem = function(id, title, uri, object, link, lang)
	{
		var thislang = '', tag, editor;

		if (!Joomla.getOptions('xtd-menus')) {
			// Something went wrong!
			window.parent.jModalClose();
			return false;
		}

		editor = Joomla.getOptions('xtd-menus').editor;

		if (lang !== '')
		{
			thislang = '&lang=';
		}

		tag = '<a href=\"' + uri + thislang + lang + '">' + title + '</a>';

		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			if (typeof window.parent.Joomla.editors.instances[editor]['getSelection'] !== 'undefined' && window.parent.Joomla.editors.instances[editor].getSelection()) {
				window.parent.Joomla.editors.instances[editor].replaceSelection('<a href=\"' + uri + thislang + lang + '">' + window.parent.Joomla.editors.instances[editor].getSelection() + '</a>');
			} else {
				window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
			}
		} else {
			window.parent.jInsertEditorText(tag, editor);
		}

		window.parent.jModalClose();
	};

	document.addEventListener('DOMContentLoaded', function(){
		// Get the elements
		var elements = document.querySelectorAll('.select-link');

		for(var i = 0, l = elements.length; l>i; i++) {
			// Listen for click event
			elements[i].addEventListener('click', function (event) {
				event.preventDefault();
				var functionName = event.target.getAttribute('data-function');

				if (functionName === 'jSelectMenuItem') {
					// Used in xtd_contacts
					window[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), event.target.getAttribute('data-uri'), null, null, event.target.getAttribute('data-language'));
				} else {
					// Used in com_menus
					window.parent[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), null, null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'), null);
				}
			})
		}
	});
})();
betterpreview/less/style.less000064400000003557152177723720012460 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "../../regularlabs/less/init.less";

.betterpreview-dropdown {
	display: inline-block;
	.dropdown-menu > li {
		> .list-item {
			padding:     8px 20px;
			margin:      0;
			display:     block;
			clear:       both;
			font-weight: normal;
			line-height: @baseLineHeight;
			color:       @dropdownLinkColor;
			white-space: nowrap;
		}
		> a.list-item {
			color: @dropdownLinkColor !important;
			&:hover {
				color: @white !important;
				.icon-url,
				.icon-urlinfo {
					color: @white;
				}
				.label {
					background-color: @white;
					color:            @dropdownLinkBackgroundHover;
					text-shadow:      none;
				}
			}
		}
		table {
			width:   100%;
			margin:  0;
			padding: 0;
			td {
				margin:         0;
				padding:        0;
				vertical-align: middle;
				&.rl_status_td_right {
					text-align: right;
					span {
						margin-left: 5px;
					}
				}
			}
		}
		&.divider {
			clear:  both;
			margin: 2px 0 1px;
		}
	}
}

.betterpreview-alert {
	position: fixed;
	top:      10%;
}

.icon-url {
	color: #51a351;
}

.icon-url:before {
	content: "\e024";
}

.icon-urlinfo {
	margin-top: 2px;
	color:      #2f96b4;
}

.icon-urlinfo:before {
	content: "\45";
}

#betterpreview_urlinfo {
	.icon-url {
		vertical-align: middle;
	}
}

@media (max-width: 738px) {
	.betterpreview-dropdown {
		.icon-arrow-down-3 {
			display: none;
		}
	}
}

/* Make status position show on mobile */
@media (max-width: 767px) {
	#status.hidden-phone {
		display:    block !important;
		text-align: center;
		.pull-right {
			float:   none;
			display: block;
		}
	}
}
betterpreview/less/preview.less000064400000001631152177723720012770 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "../../regularlabs/less/init.less";

div.betterpreview_message,
div.betterpreview_error {
	position:         fixed;
	top:              0;
	right:            0;
	padding:          7px 20px;
	width:            100%;
	text-align:       center;
	font-weight:      bold;
	font-size:        13px;
	line-height:      18px;
	color:            #ffffff;
	background-color: #666666;
	z-index:          2000;
	.opacity(70);
	cursor:           pointer;
	&:before {
		display: 'block';
		content: 'x';
		float:   right;
	}
}

div.betterpreview_error {
	top:              32px;
	background-color: #9d261d;
}
betterpreview/css/style.min.css000064400000002774152177723720012706 0ustar00.betterpreview-dropdown{display:inline-block}.betterpreview-dropdown .dropdown-menu>li>.list-item{padding:8px 20px;margin:0;display:block;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.betterpreview-dropdown .dropdown-menu>li>a.list-item{color:#333!important}.betterpreview-dropdown .dropdown-menu>li>a.list-item:hover{color:#fff!important}.betterpreview-dropdown .dropdown-menu>li>a.list-item:hover .icon-url,.betterpreview-dropdown .dropdown-menu>li>a.list-item:hover .icon-urlinfo{color:#fff}.betterpreview-dropdown .dropdown-menu>li>a.list-item:hover .label{background-color:#fff;color:#3071a9;text-shadow:none}.betterpreview-dropdown .dropdown-menu>li table{width:100%;margin:0;padding:0}.betterpreview-dropdown .dropdown-menu>li table td{margin:0;padding:0;vertical-align:middle}.betterpreview-dropdown .dropdown-menu>li table td.rl_status_td_right{text-align:right}.betterpreview-dropdown .dropdown-menu>li table td.rl_status_td_right span{margin-left:5px}.betterpreview-dropdown .dropdown-menu>li.divider{clear:both;margin:2px 0 1px}.betterpreview-alert{position:fixed;top:10%}.icon-url{color:#51a351}.icon-url:before{content:"\e024"}.icon-urlinfo{margin-top:2px;color:#2f96b4}.icon-urlinfo:before{content:"\45"}#betterpreview_urlinfo .icon-url{vertical-align:middle}@media (max-width:738px){.betterpreview-dropdown .icon-arrow-down-3{display:none}}@media (max-width:767px){#status.hidden-phone{display:block!important;text-align:center}#status.hidden-phone .pull-right{float:none;display:block}}betterpreview/css/preview.css000064400000001526152177723720012437 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
div.betterpreview_message,
div.betterpreview_error {
  position: fixed;
  top: 0;
  right: 0;
  padding: 7px 20px;
  width: 100%;
  text-align: center;
  font-weight: bold;
  font-size: 13px;
  line-height: 18px;
  color: #ffffff;
  background-color: #666666;
  z-index: 2000;
  opacity: 0.7;
  filter: alpha(opacity=70);
  cursor: pointer;
}
div.betterpreview_message:before,
div.betterpreview_error:before {
  display: 'block';
  content: 'x';
  float: right;
}
div.betterpreview_error {
  top: 32px;
  background-color: #9d261d;
}
betterpreview/css/style.css000064400000004225152177723720012115 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
.betterpreview-dropdown {
  display: inline-block;
}
.betterpreview-dropdown .dropdown-menu > li > .list-item {
  padding: 8px 20px;
  margin: 0;
  display: block;
  clear: both;
  font-weight: normal;
  line-height: 18px;
  color: #333;
  white-space: nowrap;
}
.betterpreview-dropdown .dropdown-menu > li > a.list-item {
  color: #333 !important;
}
.betterpreview-dropdown .dropdown-menu > li > a.list-item:hover {
  color: #fff !important;
}
.betterpreview-dropdown .dropdown-menu > li > a.list-item:hover .icon-url,
.betterpreview-dropdown .dropdown-menu > li > a.list-item:hover .icon-urlinfo {
  color: #fff;
}
.betterpreview-dropdown .dropdown-menu > li > a.list-item:hover .label {
  background-color: #fff;
  color: #3071a9;
  text-shadow: none;
}
.betterpreview-dropdown .dropdown-menu > li table {
  width: 100%;
  margin: 0;
  padding: 0;
}
.betterpreview-dropdown .dropdown-menu > li table td {
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.betterpreview-dropdown .dropdown-menu > li table td.rl_status_td_right {
  text-align: right;
}
.betterpreview-dropdown .dropdown-menu > li table td.rl_status_td_right span {
  margin-left: 5px;
}
.betterpreview-dropdown .dropdown-menu > li.divider {
  clear: both;
  margin: 2px 0 1px;
}
.betterpreview-alert {
  position: fixed;
  top: 10%;
}
.icon-url {
  color: #51a351;
}
.icon-url:before {
  content: "\e024";
}
.icon-urlinfo {
  margin-top: 2px;
  color: #2f96b4;
}
.icon-urlinfo:before {
  content: "\45";
}
#betterpreview_urlinfo .icon-url {
  vertical-align: middle;
}
@media (max-width: 738px) {
  .betterpreview-dropdown .icon-arrow-down-3 {
    display: none;
  }
}
/* Make status position show on mobile */
@media (max-width: 767px) {
  #status.hidden-phone {
    display: block !important;
    text-align: center;
  }
  #status.hidden-phone .pull-right {
    float: none;
    display: block;
  }
}
betterpreview/css/preview.min.css000064400000000660152177723720013217 0ustar00div.betterpreview_error,div.betterpreview_message{position:fixed;top:0;right:0;padding:7px 20px;width:100%;text-align:center;font-weight:700;font-size:13px;line-height:18px;color:#fff;background-color:#666;z-index:2000;opacity:.7;filter:alpha(opacity=70);cursor:pointer}div.betterpreview_error:before,div.betterpreview_message:before{display:'block';content:'x';float:right}div.betterpreview_error{top:32px;background-color:#9d261d}betterpreview/js/preview.min.js000064400000000603152177723720012664 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){$(document).ready(function(){$("div.betterpreview_message, div.betterpreview_error").click(function(e){$(this).fadeOut();e.stopPropagation()});$("html").click(function(){$("div.betterpreview_message, div.betterpreview_error").fadeOut()})})})(jQuery);
betterpreview/js/preview.js000064400000001176152177723720012110 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	"use strict";

	$(document).ready(function() {
		$('div.betterpreview_message, div.betterpreview_error').click(function(e) {
			$(this).fadeOut();
			e.stopPropagation();
		});
		$('html').click(function() {
			$('div.betterpreview_message, div.betterpreview_error').fadeOut();
		});
	});
})(jQuery);
betterpreview/js/script.js000064400000001550152177723720011727 0ustar00/**
 * @package         Better Preview
 * @version         6.2.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	"use strict";

	$(document).ready(function() {
		$('.betterpreview-dropdown .dropdown-toggle').hover(function() {
			var el   = $(this).parent();
			var menu = el.find('.dropdown-menu');

			menu.stop(true, true).show();
			el.addClass('open');

			var hide = function() {
				menu.stop(true, true).hide();
				el.removeClass('open');
			};

			$('html').click(function() {
				hide();
			});
			menu.hover(function() {
			}, function() {
				hide();
			});
			$('#menu').hover(function() {
				hide();
			});
		});

	});
})(jQuery);

betterpreview/js/script.min.js000064400000001057152177723720012513 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){"use strict";$(document).ready(function(){$('.betterpreview-dropdown .dropdown-toggle').hover(function(){var el=$(this).parent();var menu=el.find('.dropdown-menu');menu.stop(true,true).show();el.addClass('open');var hide=function(){menu.stop(true,true).hide();el.removeClass('open');};$('html').click(function(){hide();});menu.hover(function(){},function(){hide();});$('#menu').hover(function(){hide();});});});})(jQuery);
betterpreview/images/preview.gif000064400000052377152177723720013103 0ustar00GIF89ad�������­��ν760ionq�����Ÿ((���ܷ��ļ������ҡ���k/(��籒�K.Cu�����˹��x#U�qo9:B���EE໥�űڪ����uk����DDM���8t|�����ܱ���ֵ����ƲNQST[�μ�ɵ�����՘�YZa���2K��sm���JJQ�����Ӛ��AZ����44<4���)C�;U�mTLҽ�}��Pd�ƻ����SK�YY���Ծ���Ƶ����������ԫ�����ɦ�������**1���ľ�����vy~������Ĕ����伿����d[٣�������хv��u:3֡���������Ѥ��%$+�����Xo���������ې��������i|�S50e'«����������ȱ߸�����''�ݘ�ᨧՆ�WFB[ �����}�����e�����������������ɘ�dfl�����������߲��K������9P��Ī����������==��$=|Ĭ���w�����������|�������OOV������b`b�ϸ��³�34�����������@?F0)'���%Ῡ���009���ơ�TOLua^2����Ķ�--5��"";3.�00 .=���#h�����@BF`��,G�������������ʯ����������U{H@�ȭ����󞕐ܲ�������Ck�а�1Qy�NN�����!�NETSCAPE2.0!�XMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:296c63df-1d62-4ab6-bf2b-c9ce56e47871" xmpMM:DocumentID="xmp.did:2ACE418EE38711E88AF1907F5A67F62A" xmpMM:InstanceID="xmp.iid:9B700860E38611E88AF1907F5A67F62A" xmp:CreatorTool="Adobe Photoshop CC 2019 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:f901c70b-9f75-4364-a753-660818e2bcd8" stRef:documentID="adobe:docid:photoshop:02b513cc-a6ac-3444-9b2c-2d5c4275be1e"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

	!�	��,d���	H����*\Ȱ�Ç!�
��ŋ�r2*�Ǐ &�3�Dȓ(�b�n`!�Rʜ�jR&���L��_��R�z�Ik:�C�B�k6�CE�"ѫ�T3m҄$�&L�dA�x%�1݁�-ByI���:!��	��Y 4)^ԣq�,�Ŵ5��M�IHlSc����[��^��Xq<B��Z��W'�
����|��b�Ӻ�&�3�$ж���ْ��@��ľ��6�ϟ')'�;��2�L�0:�m��]Wn[�׼�$�A���.���C{"�,��>�Whg�aj
�[Ae�0
�l�`	%�����7�k���l@V�BP�G B�S�B�
!�
҇'m��'~ԡI�l����ч@���D�ա��P�1'4�d��|QFa�$F	��@Öh0m���n4a�3x��^���$A$���Mn�f��Z �%
]z9�g`�f��YT��?|d@�'`aC	{&�O\v9(�f**M��_�H�����9Fs��1���i�����)��$�<��-�N���%�)
_��B
M��b�هW�+-�~P줽���4}"�	M� �>D�F(�вƼQ��z��9@��l�^!y�S�pW4!~�O���<���� 
�}u�D���ǚN�r�
g�������\t�q�e4!8������:QD��k̠�>g������,@�������lIC%�Q�X0�01 �4y���P�X0�PH
k�&cllL�"Ts	2���R#@:進M��$шA����s����������-���"I��& p�!R�!��L"ˀ
 Tl���Q ����X�!5�ZA(3-,R��ACĄ���a�1�TJ�����#�&x�H̐���xP,]J#X
�q	PX���>��2���&��S���V
��J�B�
XaJ�B�(`�to
@>��C�B(��
����mȄ��
���7�`|�4`�h�[��N��h0��-�X���b�n� ���iE�|Ԇ(����D4 0C\4���$
�*#HB@�($���B�0X���(`��@
:�|�
�*�����sr��A�BЀ�`0���'v�S��*~@�bT/
ՠ��ɄP��	^�U
ٟ,.���+�S�A�fD�%-
���>�`, >�]�<����)v��-�T�]�� �1�C�A0ש6�@�TR�}̀���(���S"�(�d
P�a�R
��3n�MxjP)��-C]a7`�>��h��C��aza��� �`N)���a�����t7@
��H� I!X��`��%D�[
:�`�����l86h`��
ԣ�AQBM��)0E�W�M�Ӱ9�@i`�Ku�L�� Z�)e�6�j�v`
��7�̲��K)@+�����t���ju����0�Q
Ai@��ns�%���R1�0Z�>� �XjS����@��.:�)6��`�����6�
�
jB���w���R{|����<��.v0�b��B����浼�Ւ��[��CŠ/p�X��V�A�Q��YX�ΰ��K�#XV�Dp�J����sq��ؿ��pN;�au��?!H zЂx��^�W`x��!�0NqJY�X�!�o���,.��Cl�6x�qE
��2."��M2%��E��k�a֠ҀvND	ZP�X�
��$��6���GM�?3C�h5�Z��?�|W6"v���9Q
���,�`KHA
�C*2��C�"���*T��@�=:�X�:�X@�j�i���8FA�a�v�[1�E9fu�C
�ȷ#�Љw "
r��a�
n<��nf���B羁�Qځ���x��a��gC@Џ~���	�І6�
X��	�7x�f��-��^f�70��HAƁ�8��xǗn�ld�G�������Ȇ8`qU´�Y3p�,m�����@8��g�P?z��~�c@�(��G~uX8���kv�Ӝ[zn6��k��rh�܍~t�G]�P��rX��;`u�w:&l$���V���50��t`�;v�y�o����y?�H@����6\��N�p7��W���;�3�
��!~��_uH�fdpp������� �H��د;�w��S���y�7zQ�y��X�a iO`r������{��}�~!�@�*�1����
ڀ��ؗ}��}��~��	�Ё���$�� 0� 0��{��w��}�������� `�.'t��0�`�(2�qn��P���ޗِ���d�
��r��M�!�_�m.8�3؄��*ׁڐ
�Ts�p���U7��`|H�D�,Hpc(yt������x��	� V��?Ϡ
?8rO�p��P��
��u�xy+�p��Q��Q��_8dH�^8��@�K��X����>�,�����7�"�X��	%7���k�Ȅ�8��g
�0>P&3�f.8�A���`��H��ׄڇ����`[�$Q@  Hs�8�������x�������Q�U&�}��
Y�`����v�gwNh
��!�_�e[���8�!)��@��H��Ȅ)	wN�
��pN�$Q!��jv����;Y��gt?Yw�o�	>�O��Ȕ�%Y���S�w�`Y�`�6	��0�dY�Qy��qO��&��!r9�tY�HWwi����
�x��
;0��rY��k���01p:%���'�`b�;�0��
�n�01���	��[�;�4'(���K.��Pl�`	�@

�	�P
��, ���	pt�Y���z�iEp
P��[�p���YmU�`m��M�
P�`*`�@�I@p
J� ���2b +�
�@zG@��j��@�p
ߠ��;+�*�+���*�
2ڟ:�P����>j�*���A*�`C�"JB*�`F`6zA�:�@�?ʤA�SJ䀡G�G�f���
7�W
=��D���Z��`I��tz�p����Bz�٢+ڢ-��
p��FP�7*WZ>
�Bj��z�PJ�T�W��j�Oک�}�Sp�
p�\��E������p�+���Z�������7J������F��	��*�Ap�:*�����!�L�7j���Z�F��
�*�
*�T����Z��@��*�R��
p�A��D��.�E�FJ�+p��0���!*�튬T��:zˤOz���A W*��&���K�A�:��Z�k����z x��
1��搣�{�6A���o���*�:�m
�C˲���Z��Pq
qC��7l�YZ�G�&P��@�7J�����Z���P�L
�F�:��0�:�B�
1:@�F
�`��©�=���:�`Jp(�(�
����P�
8�Ȱ
C0�d��P�΀р��8�������[���2 �;C�wЀ	a
נ���ū�8p�=�C�!y8`��
������wP
������+=��ڋ��&��ߛ��+������6P��sp���p��+�Ƞ�Π�H�V�
,��嫽C��~|�&�9@��C������;�Cp@�M2'�]�e���=���{����L?[`&@R���C��[�G,�Ȱ����P�>�t�� ��=��90cP��-��E��+�K�"�J����`�C�Z��u<����`��|�c�9`>�el'@>\�k\�\P�|p�0�.L������˰�[�.�5�^�ȦL�L���w���<&ɒLɻ���<��ml��Rl.���ŧ�L�x�����h���^p
ؼ����JL��pwp\ �0@���l<�>|��̜͠�@�&p���;��l�4��{��5@:.@�p�|�.�Ω�����`� M]�ƌ�L�n5�����%�<�RlB �(�Аk� ���,��/v����<�=��H�C����9�(����L���lP��ɡ\�$p�B�/�L��ۼ� <��ˌ��J�~�у����M�ʉ��y�(}���b������em�8�`����|
��ٸ,����K_�w��p���ى��B���AD/Pˆ�҉�Ք��0M2mc=��|�&��p.s`�p׌�Эum���s��mڭݤ������݌`�H��&"V��\�[-�.m�,���=���h��:�Dz�h@�5P�/p����]�N�.�}�PW]��mψ}̺���\�
�4M�}�8�~~,�[����T�.����)����������h�ɒ\��=�ĭ�$^�&~���.��N��[���~7.Ň��[=ɻ��ӛ��B>�f-�m�T~�h~��}������,��\?��k�ƞL��|���~��>@���p����s>�M��i��䆎��'�ȑ�Z���l�f̔��t�ۍ>Ʀn�]���՟~�
A)!�	
�,d���	H����*\Ȱ�Ç!�
��ŋ�r2*�Ǐ &�3�Dȓ(�b�n`!�Rʜ�jR&���L��_��R�z�Ik:�C�B�k6�CE�"ѫ�T3m҄$�&L�dA�x%�1݁�-ByI���:!��	��Y 4)^ԣq�,�Ŵ5��M�IHlSc����[��^��Xq<B��Z��W'�
����|��b�Ӻ�&�3�$ж���ْ��@��ľ��6�ϟ')'�;���@�v�ڞ�FǶma�h��m�����$�VC��k�5���b/6"`��Odq��a�~�U��z�AM='��4�H"���A	%���
8�kX���l@V�!� '�x�\�<� hQh��MT��>���)��@�}�@�XB��5.�8׃���%"Р���e(M�)f^�Q�i��BP�e;Lc�`�@(�e�^��g�m������cD�b����A3 0Ş^� &�f��>�Fj�ą�'l"��k�A�8AI�M`����bZ�<G�*A'�A�	��'I3ԱO<Dd�G> ���!���<DL�֮�3*��й@����IT�\��J��M����(��T�Au�-�1�4�=
o�>\�0�>L��s�
�ï2��\2Hs(�>��qFTVH�yH��чdwo�<�C*>��!M���Xr=���04����T^��sF'hA�<ć+QSG`xqG"`$�>uD��@�@m PG'��� HH�#�$�\2�;��?�|Т-Ѐ`ܱ8���TPM2�d��`x�;�"�$�C"���&]q�1� BY��H"jHJ(����PQC4i� �L��! ��'��7�1�1
��+� Ƞ]I1,�h���	�a��%I$���,���X���P�b,�R0- ���\+�
�A(XF7������P�jъ+���X�7��Jxb���tQ15T�!P4�0�����b8�@����#<��a�����Z����(DV�#`���°�&0k�������@
�C��)?d��hC��H�����	�dLA"`�< B{�8^�%T�)�AV���!}����@,-�!w�t�1Z@�2�H�D
�&B
YX�:��K&P�jPC��Uc`N�J��
m����E'E2�5���.��
Z'3P
E0͌Q��h@�jXa��B�����3#��By '�@|�(.AC��Xg4��KP��T
���Eh�q�Xc�g��K"�A
��]\�W�����QD�c�DE��Bj�C
�3�����j��R^�@�PY�0��~�U�� ��)8���l�<�Cvы^���_����΀K�0	����� �U��[$���1��{0�n�[|�:�pA��J�iM��|����
�e�@"*Q��C
s�@
���A�D
2`Jt��{Ҁ���E+8̸^�7� ��X��E�AB05>�&p�\��	At�Bi�gB�f��S���괵�`fk����[�@ȫ'�j	A2}V��,`�0aE+�
�ob��j0 �E-�0�r,`OZJq�h�W
\�
[��
�P	/��)�p2<]�*bZ��'���.�Z�$BUT�&�
M@n����-At�c�X��ԩȫ�,)��3@�1f��V����Z��
7�AA�1Z�cU�M�ly=Ƹ�<)�a9W�
x��
rL>���^�X	]��A�{r�gZ$BҒfCU+}6\���t�=�i��@E��40eZT�2�HA\��;C�ϋA�5}_e/����FoI�-�;�X�$s0D8���:Ӓ��N�������p�#j'����diat� H1��q�`b0�%� ��!�H�!R�
�~بBDܣ���OTd
�`��f-��`�,}�f>sm� ��u�!�X��p��;�9D��7��
q��7��0��T��	fh�	��
�3���gk�=��@�~��IO�6�!n���O@������	�����Ȇ5�1�q�=p���n��[#�pđ��'��lw��!X�:�PB>lp\���xB�1���#��4y��>�ǀ6��=�p��aQPq1���@��h�
�{�G^���8��y������Xh~�0�+��'�����}�_�~�W~�w~�w�y		k��Po�
�	��{��}���
��tܠv�~	X~ק"�
�O�y`������7~��yx~��~�W~�g*à��'/(yۇ��G��7���j��
���`X"h  ����2�{4������	�����~�"���+؂_y��{c���7~nx���g �wW{rChIg���z�}�~5脟�ِ��pk�
�ww��u�1؅��� s���e؇s�ڐ
�?p�p��o(�� �*Ȃ���a����M���	��E��RϠ
h|O�t�D�t�84'���{|(���p>�;��-�y׈w
� l��@��@s�{�H�5����uEM�o��(������؏e~�
+�4dB3@��q�5���J��i
 
npW�N4Ⰳ}�5��"�����G��`
o�	�@�b�����w8`w�#�}b(y�|h
��!�\N3����]�	 �7��9	���
���JwEa!0}v8��b��{㘁�o0$����t�b��8�{	|`
�Ѩ��s�y����:	|f�l@�&tIr���	�����i��N!@��y������xIvaIs��gI"0��)�`b�;�0��
��x���O��0��`�Q���)
�@��
G
�@
����
�P
,����
@��P���z�iEp
���[�zJ�W�q��V-�
P�`*`�@J@p
,J� ����"c �� �Gp�0':h���
�
��
*�
z +�R�+�D*�
Z:�:�?P0���fڣ*����i*�`k��IJj*�`F`^zA�b���gJ�i��{J��G�o�j��z��
_�
e:�l����?ڥ�`q��p����� ���jz�Y�SZ�U�
p=z�FХ_*Zf��jj��z��xʫ|����wZ�q����{�
�z�E�����z��+��ڭ�P���:�_ʮC��
�F �	�⪬A�b*�
������tj�_�C�ۭF@�
�*�
*��|*�C�
ۦ����*p�zz�
�A�lz�.�E��nʯ+𧪰�ú�!*��|�bz(K�wz7�`�A *4{�&�0�G˳A�b��ڪ)k�F��z�|��
Y����F��^A�C��z�!��:0r
�kK��C��ڭ��qk;�_�z��ڴG�&����_J�z�0��ڦ
���t��n�����,��j�
1:��n���
���=���b�`=Jp(p�(�
K���P�
8�Ȱ
C��d����΀р���8����p8�@8�
�+2��C0�pa��p
�
�����0ً/���뾠𿼐��@�fS
���|�,=@���f(������<������6��.�sp����,4��0�� �%�5,��<�C��ˀ��\��\�t�^0Ȁ�C�F|��;w��mXq����-����4���ǻ���g�6`�E�2<p�n�[�t��|�-�|ƻ@-dl�hl90c���V,�nLù��t�J�J�p����l���ǟ�����`��|�c�9`g��l'@g�•��\P�|p���W����;<�)�˰�[�.�5�^0����4�Gl�w����<O�˼�˻���e<�����e.��k�ь�:�Ţl6�\�h���^p
]�|�s��=s���]�Ϻ�������|�ɼ���&���3�\��\�(l6��͌Ps0.@�p�<��<���f�v�٥�-Ҹ�˽|�&=�l�-l�N���e�`(�����|���9��J�@`/�BM�lL�Z�f�։��u[zL -Җ<Ս,��@�h����].��.�J��[�Ռ�h������_�d@�B�D}���v�͉����~�]�ս��L���*�̊
^^`vP��� ����-�wP�2�L_�������+ܳ<�g}͟�8@/�ͪ�ԭ�-ϋ�VMXM�*��^�u[p.s`��ٌ 2"��̍m=/�v����=��m�����/�h�V{�]���c�ȍ,��χ]�,��/��/��B�T��h��\��Y/��.���*��'�ͧ�_���{����$
�,ےl����]��@�%n�(��*���R>�2����5n�7�_<���������n�]��I��K��[p�p��q�n��[��{�����]�q��L�Ȝ؊�޸��#v�䊾茮�;��y�筍����A�\ɗ��+�΅�Ң>�N�.�N����m�"e,ɓL�f�Ꝟ˹Ŕ��l�R�Œ�����M�-댼��.������5�"!�	d�,d���	H����*\Ȱ�Ç!�
��ŋ�r2*�Ǐ &�3�Dȓ(�b�n`!�Rʜ�jR&���L��_��R�z�Ik:�C�B�k6�CE�"ѫ�T3m҄$�&L�dA�x%�1݁�-ByI���:!��	��Y 4)^ԣq�,�Ŵ5��M�IHlSc����[��^��Xq<B��Z��W'�
����|��b�Ӻ�&�3�$ж���ْ��@��ľ��6�ϟ')'�;��2�L�0:�m��]Wn[�׼�$�A���.���C�ζiD��_L=�}"�s���<�2;L��<����L�~�8��DH�d�Q��2I2ʑ��]�8q	��S
0���B
���D�%�e1u{�q�>"�3-RM(Mid3��GD4�����;��F>*�0 G���*zM�
�QC���	0̈��"0�L"�0E(��g�n��!���%�x�G�\A�.��p�Vh
z��i�U���R�'IP��0�d��԰��@�ƭn�<DL��2>(��
`��>�
�_d�=�V��M��
��a�@M>�"?�"&T��
`�ƵW��4����B(d���,�C"���K,�l�``��~�`k}��u���-x�� <l�Ƞp
#��@1'�`�)k,�!�Q�	Z!��
�p-{�B�8��M"�dp6��	'�� HH#�$�\2�;��BԒ��@ K,�`R?T`#2xP;��B)I�$`������P��ѿ�}
���]��/��3����0��� ���F,���B
y��(K`�1T� �$��NL�@
س�̸�c��Mа�6���A/[`�
2������q ��QK+W�0*4xc(�x��"3X����0��a�\/���/�0�bЃ>��=�B��?'�b��
H��a�����Z��A�>���`*V��$���~��\p�|��p3��:�M�2��j���)
�G#[� ��U��h�h	�����O�a�x��7bX�U�a`A(�7�/$�I�j�E���n(���Ȑ�4�h�Jf�	�8q�L��	���\,`%L�6iQ���C �@�?����+�pE��d%�,dA
��B4AZT�
;���/%��H�+����?���E6r!��"���IN��%��'6a���4��T��j�RU8��:���
5�	
��I���h);UR�(�Q<�!�0��Њ@P����$�1�e�D��&�`-h��`�2�zŰ(�h��l�<�Cvю�)�$�(��Ω&�-����
"�.��PLtEMp�;�)EL�5��L�[@�8�?\�-��tN��-��� �7p�$`	�� ��p�.:5�!5@�? !�a��A�0�($	�s��1RP��i�C!��Nf���!j��0�C&��x0\���`0�X�F)X@����!���"��Ec ���dw�&d����EJ3���Ҡ�6��)���;X�u�0�����]@nu��UT�"�E-�0�r,@��a|E`C(��
�[@u�p�{����,^a�VЂ>q�O�`N�p����@�.��?���$�-m�'5b��yJ�f@#j��۸�
ΰcߣ �)�<ދ�X�`�d�iD��m���o�����
XV�l�9�u��i܂�1тg4�p&�0��es��"�s���`U�
�C3��l`�9(�+�06���0�x�,Y�"p�`�7zc�@���t3r���`��`��b���Nu�B�
j8����8X�"x���<!��f!CXB
R8�R��T"�(��*T��@�=:�X��P�x7`��C�A�8��ڈA.�1߲C
�ȸ#�Љw "
r�v����'pC����3�1�'��Fl!��
���nkX#��@�~���F��
q��O@��	4�.��8� �{D��й�s����?φ;0 ��=O/z?�
q���8��rnh���9�î�8`�c/����h�$��'���k����?d�:�o�����g��I.tX���<,���Ш{��1����\�;�Q��ճ���':,x�t�?�hߓ��ċ��_<㇟z��BG>�왿zH`( p9�{�{p"��7=�S�v����G:�W?��'�7r�Gv����|�7�}�~C	��@s�aH}�0v��Br�wx�G|�g$~(8�	�~�`{���{� 		����|�W&�
�pp
�'yi��0r���	�}����z�Ѐp�ِ��Pi�
�'y�P�A�����p�|�7UX|ڐ
�<p�p��p���|�O���7��LG�� 
)�)����D�)*��p �o�v�'�0��5���-�v��Ob���؆n�SH��
!�P��AM�o����1��p�H��7��g
�W�HHB��w���
�@�anX�#�m 
n`d�v)  �Wusֈ�9h��8|�`
o�	�d+���K86ŀs�Ȇ����� ��E�	l���1�w��8��'�����`O�	��F��
V�8����_׆�x�o�"ײO�j4i �8�	��gx+�x�`�Ȉ3�	�@s8)����;ٓ�sO�4'ߥ:� I��:ٔd�x?����
�tKV��
;0�I��`����gP'"��csR`	��;�0��
������O��0�r� �h�
�@���F
�@
��	�P
��,`���	p��I
U�
�
�AP�Q���	�����vi�ioؠ0��
P�`*`�@�)@p
�I� ����2��yc �� ��Gp�0�h����
�
��
*�
z +��+��`�*�
�:�������
P��* ���`校	����� F`��G�0���:���*J��G�Z�<j��
�.J�1��z:�
A�
jF�J&����)0�����:�Z�_�О&j
��b0�EP�E��F��z�i���0����[j�r�t*�v��A�|*�&Z�!u���*�n���*���*���������}j��+�w�Z��P�}*���:�������zઊj��
�ݠ�����K��*y������������&�Qڡ���
�
�[�� �����Z�P�#j�@��J��0���&j�J��zP�\��Zj�F��:�����:�`�}j��0���A�@�����[��K<��.����
������A� �e���z
a��
���`�e) k�z���9�5��A��V����H��K�c��١5k���:J@(�(���A��FОp�t��P�c�8
з��Ȱ
C��d����΀р��8����4�@8з
�#2p�C0�pa��p
�
�����42�0��-�p>�����f���wP
����3��Ӻ���8@kh
�����Ƌ�;���`�6���sp�������+����K#Y���2@�䛻�[�ˀ��\��\�t�^0)��˺�K�h;w� )�q������� ��˹l����{��6`�E��;@�̹���k�|����@�l90c���������p��n���P�9P)l�e��/L���ΰv�\�|09�6�]��qt����P<����2W�f��\�L��[�.�5�^���y|����p8�t�P��c\�g�]��	�=�{�`\6�΀�I��u����0�v�{���װʍ���Ǡ;�wp\`\Åə<�d��j����A,�t��l��`�V���+��˻w0��50s�d�w��*����༻ l�\$l���dl�������@���l\&�Y)��\�Y<��̻�J�@`/��������� ���Y$Lɼ�@��7�����L�sL\���.�J�џ���<�K<������J@]�����{���ԉ��b�(=\s��f|ƟL/=��,�4}\	��U��Π�װ�l��w�����K�R�_�f�l�ş��K̻��8@/p�T��W��5��M���<ӧ|\��Yp.s`�r�J��J0�_��pѫ��v�ک�Ω�ٌڠ��}�/�h�T%
\�����cP�7�U\�Ð��<�؜��\�BpPL�h��\��-/p�؝��Y5`��M�P�^���%}҈��ͬՠ<�n�Ñ}���(ń��m�.@��Y��������hP�Q�RT]ռ������};�ޤL�a��
=��]������Q�(�^'����Y���Ɛ��3Mӓ-����#~�8����%l�)��a��)���>��-�;Ǘ,�>��P�ɜ�@�@��*^�m!)��=��e|�-�d��AN�b,��6�D����/M���6|�w��iL������9�!�
�,d���	H����*\Ȱ�Ç#J�H�"EWNFY�ȱ��$q&��H�$�],�
,r�ɗ0QM�$0U�	�\����V*�@)~�0i�@'qY��o͆�
J�a �j�M��dԄ	�,�c�Ŀ�;��E(/ɿZ'�q2�P<�&�sJ4�������\�i9	}Ujl��}��cp+p�K��G�3X9���[�W��VB�w�V�asƛ�yv�89U�~h�״7�n͙��p�s���i@��mz<��g_�jwš$�P7���k�5���b�5"`��Oq�X���B���AM='���4�H"���A	%�����7�k8���lV�� '�x\N� hQh��MT��>���)��@�}�@�W?��5&�XB"�1_��@Ôh0Õ�4��M\�GD(���A�K��0
����T@C�V^��Z���]�BfB\�����WB3 �Ĝuΰ%�F�>�FHi�Š't!
�`��h�81��M@����BZ�<Da��)A'��	��'I3ԱO<Dd�G>���n$�,�nx"��5+A�l�i4*��@����IT��\���*��JbԴ�#(����Au�-�1�4�m��=�p���0A��+�~0Ȋ~s� ̡����NY��yH��чD���<��)>��!M���Xr=���04�����]��sF'hA�<ć+ISG`xqG"`$�>uD��@�@m PG'�1� HH#�$�\2�;�S�?�|P�-Ѐ`ܱ8�p��TPM2�d��`x�;�"�$�C"���&Uq�1� BY��H"jHJ(����PQC4a� �L��! ��'�ķ�1�1J��+� Ȁ]I1,��`���	�a��%I$���,���,�3n�@��,�R0- ��`\+�
�A(XF7������P�jъ+���X�7��Jxb���t�05T�!P4�0����b8�@�����#4��a�����Z���(DVq#`���°�&k�������@
�C�J�!��Fb�F�^'�1���@����i�xx��P
?��uX^��o_H�����H�h�*ˠF �a(�P5da��,�@	J�A
Q��7JT� �L�$(a
7�AK�JV
�h�C ?�F4Ѕ\A��dF���y1
�s
hQ
+�`W���3#м.��#�@u�(.�B���g4��KP��T
�0�Eh�p�c젆yv�J"��4��+��
�&�� 
��r�P�VQB�xH�!~`��"�8��j��QW�@� "+�ऩ����V�1���V�-��p�.zы��jB���T�#P�5��N}�la��^3"P�^P��n��(j���*��y���т\A��HB
�y�a��q!�<��A�@��V�NFj�p00�,0��P�0#Y��"u���K���mc7']���� 
F
3��?�S�*�LPmk]��l!I�.��;%���X�B��
TƒQA�Pf��U�*���0d���,ʱ:M��R���(�T7L�7 C%�$;���-xpr���hA�8�':�_R"*F�q�&�7HF	�����	0�1rgXC�Tڕ���eC�@D3�4���HX�*G����� ��*eLZ����x�&�tu*�g�ڌ��� q����\g���ճ��A�&,�ʹHD���"�lP�]gG�ԣ���lq�+hɴ���Q����"	l��R7���^����
�萲[�
v0�7� qH.�`�p�#	jV�*���n�"E+��G�F�+
.}�3�����.�A�b#��,�`KHA
�C*2��C�"?��Q�*4 ��G����,�@�U��
�F-B������A.�1��C
���#�Љw "
r���a�
n<��8esz@%!]j�p<`��)��#@u��Xφ60����:��
m�����np@��O�����؀D6�񌁌c�p��Nu���Ȇ;0 �8>h�:��
q������a�c�̀���4�<��x�S���<�ш���뒇�f�~���A?��`��E#Ro��^�g�8�Qv���,�{�b�e��^!<��@�?@P��>��ǀ�o��c��b��	2��vܠ
����z��7��x=�
\wܧև|#�
�O�xp��~�'�G}�y��}��}�g}�f"à��'8x̗��G��G���\������W"x~ 0����"�z$Ȁ�����	�Ѐ��}�'"���؁O(x��zS���G}^x���f �igzr3x~<g��j�|�}%胐�ِ���j�
חv�u�1؄� �Pr���U؆e�ڐ
p?p�p��_(�� �ȁ���S����=���	�E�#RϠ
x{O t�4�sx8''���zl8��p>;��-�xǨv \��@��pr{�H�%����m�DM�o��(�����؎U(}�
�YID3@��aX5����:��i
 
n�V�sM4ⰂoW5���η��G��`
o�	�@�b�����7Rw��|R8x
�{�g
��! \F3����U�	 �'��)	�
��
��PJn�`!@|�7��R�ҸzӨ��o�#����d�R��(�k{`
���syy�{��*{X�l@�&dIr��z	�����i��pM!@��y������hiuQyr��gpH"0��)�`b�;�0��
�x���O��0��`�Q���)
�@���F
��@
����
�P
,���
@��P���z�iEp
���[�y�I�W��p�@V%�
P�`*`�@�I@p
J� ���b"c �� �Gp�0:h����
�
��
*�
z +�B�+�<*�
J:�:�/P0���Vڢ*����Y*�`[��9JZ*�`F`NzA�R���WJ�Y��kJ��G�_j�~z��
O�o
U:�\�����/ڤ�`a��p����� ���Zz�Y�CZ�E�
p-z�FФO*oZV��Zj��z��hʪl�o���gZ�q����k�
�tz�E�����z��+��ڬ�P���:�Oʭ3��
�F �	�Ҫ�A�R*�
������dj�O�3��ڬF@�
�*�
*��l*�3��ڥ����*p�jz�
�A�\z�.�E��^ʮ+𦪰���!*��l�RzK�gz'��`�A o*${�&�0�7˲A�R��کk�6��z�{��
I����6��NA�3��z���:`q
�[K��3��ڬ��q[;�O�z�qڳG�&����OJ�z�0��ڥ����d��^�������Z�
1:��^��x
�٩�=���R�`-Jp(p�(�
K���P�
8�Ȱ
C��d����΀р��8�����7�@8�
�+2���C0�pa��p
�
��ҋ��0�/���뽠𾼐��@�^S
����{��+=@���'�����<������6��sp����,$��0�� ��$�%,��;�C��ˀ��\��\�t�^0Ȁ�3�6|��;w�P"�q��������$��ۿ����_�6`�E�"<p�^�K�d��|�|Ż@R�Tl�Xl90c���F�,�^L©��d�:�J�p����\��sƏ�����`��|�c�9`W�~<'@W����\P�|p���G����+<��˰�[�.�5�^0���$ܿ7l�w����<?�ʬ�ʻ���U<ȷ����e.��k���*�Ē�5�\�h���^p
�\�|�c��5s��%]�Ϊ�����ζ|ȹ����&��@3p\��\��5��̌Ps0.@�p�<��<���^�v�ϥ�Ѩ�ʭ|�=�l�l�>���e�e_(��q��|���)��J�@`/�2M�\L�J�V�Չ���ZjL-ц<�},��@�X�κ<]��.�J��[�Ō�X������_�d@�2�4}���f�̉����n-]�ԭ���Lu����zm]N}_vP��� ��۲-�wP�"�L_�������+ۣ<�W}̏�8@/�̚�ӝ-�{�FMHM����l]��Zp.�s`��،�1�ؼ�]=/�v������=޾m������/�h�Uk�\���c��}m��w]�������B0T��h��\�Y/��������̗<_���k����
��,ڂl����M��B��̼��.��@�Z!>�D.�@��%n�'>_,������ȵ��n�M��9��;����.��b��[�� TL��?=�O�EG]�4��y��ٍ�*>�h��|��+��j�杍��尌�^��\ȇ����v�ђ>�N�.�N���jQ"U,ȃL�V�鍞ʩĄ��l�B�|������uM�-�|��.밌����o�%*";jui/less/component-animations.less000064400000000462152177723720013352 0ustar00//
// Component animations
// --------------------------------------------------


.fade {
  opacity: 0;
  .transition(opacity .15s linear);
  &.in {
    opacity: 1;
  }
}

.collapse {
  position: relative;
  height: 0;
  overflow: hidden;
  .transition(height .35s ease);
  &.in {
    height: auto;
  }
}
jui/less/grid.less000064400000000655152177723720010141 0ustar00//
// Grid system
// --------------------------------------------------


// Fixed (940px)
#grid > .core(@gridColumnWidth, @gridGutterWidth);

// Fluid (940px)
#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);

// Reset utility classes due to specificity
[class*="span"].hide,
.row-fluid [class*="span"].hide {
  display: none;
}

[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
  float: right;
}
jui/less/progress-bars.less000064400000005452152177723720012005 0ustar00//
// Progress bars
// --------------------------------------------------


// ANIMATIONS
// ----------

// Webkit
@-webkit-keyframes progress-bar-stripes {
  from  { background-position: 40px 0; }
  to    { background-position: 0 0; }
}

// Firefox
@-moz-keyframes progress-bar-stripes {
  from  { background-position: 40px 0; }
  to    { background-position: 0 0; }
}

// IE9
@-ms-keyframes progress-bar-stripes {
  from  { background-position: 40px 0; }
  to    { background-position: 0 0; }
}

// Opera
@-o-keyframes progress-bar-stripes {
  from  { background-position: 0 0; }
  to    { background-position: 40px 0; }
}

// Spec
@keyframes progress-bar-stripes {
  from  { background-position: 40px 0; }
  to    { background-position: 0 0; }
}



// THE BARS
// --------

// Outer container
.progress {
  overflow: hidden;
  height: @baseLineHeight;
  margin-bottom: @baseLineHeight;
  #gradient > .vertical(#f5f5f5, #f9f9f9);
  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
  .border-radius(@baseBorderRadius);
}

// Bar of progress
.progress .bar {
  width: 0%;
  height: 100%;
  color: @white;
  float: left;
  font-size: 12px;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
  #gradient > .vertical(#149bdf, #0480be);
  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
  .box-sizing(border-box);
  .transition(width .6s ease);
}
.progress .bar + .bar {
  .box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)");
}

// Striped bars
.progress-striped .bar {
  #gradient > .striped(#149bdf);
  .background-size(40px 40px);
}

// Call animation for the active one
.progress.active .bar {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
     -moz-animation: progress-bar-stripes 2s linear infinite;
      -ms-animation: progress-bar-stripes 2s linear infinite;
       -o-animation: progress-bar-stripes 2s linear infinite;
          animation: progress-bar-stripes 2s linear infinite;
}



// COLORS
// ------

// Danger (red)
.progress-danger .bar, .progress .bar-danger {
  #gradient > .vertical(#ee5f5b, #c43c35);
}
.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
  #gradient > .striped(#ee5f5b);
}

// Success (green)
.progress-success .bar, .progress .bar-success {
  #gradient > .vertical(#62c462, #57a957);
}
.progress-success.progress-striped .bar, .progress-striped .bar-success {
  #gradient > .striped(#62c462);
}

// Info (teal)
.progress-info .bar, .progress .bar-info {
  #gradient > .vertical(#5bc0de, #339bb9);
}
.progress-info.progress-striped .bar, .progress-striped .bar-info {
  #gradient > .striped(#5bc0de);
}

// Warning (orange)
.progress-warning .bar, .progress .bar-warning {
  #gradient > .vertical(lighten(@orange, 15%), @orange);
}
.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
  #gradient > .striped(lighten(@orange, 15%));
}
jui/less/modals.joomla.less000064400000003133152177723720011745 0ustar00//
// Modals
// --------------------------------------------------

/* Joomla JUI NOTE: Original .modal definition has to be commented */

// > Joomla JUI
// Base modal
div.modal {
  position: fixed;
  top: 5%;
  left: 50%;
  z-index: @zindexModal;
  width: 80%;
  margin-left: -40%;
  background-color: @white;
  border: 1px solid #999;
  border: 1px solid rgba(0,0,0,.3);
  *border: 1px solid #999; /* IE6-7 */
  .border-radius(6px);
  .box-shadow(0 3px 7px rgba(0,0,0,0.3));
  .background-clip(padding-box);
  // Remove focus outline from opened modal
  outline: none;

  &.fade {
    .transition(e('opacity .3s linear, top .3s ease-out'));
    top: -25%;
  }
  &.fade.in { top: 5%; }
}
//Modal for Batch views
.modal-batch {
  overflow-y: visible;
}
// Modal viewport dimensions
.modal-body[class^="jviewport-height"],
.modal-body[class*="jviewport-height"] {
  max-height: none;
}
.jviewport-height {
  &10 { height: 10vh; }
  &20 { height: 20vh; }
  &30 { height: 30vh; }
  &40 { height: 40vh; }
  &50 { height: 50vh; }
  &60 { height: 60vh; }
  &70 { height: 70vh; }
  &80 { height: 80vh; }
  &90 { height: 90vh; }
  &100 { height: 100vh; }
}
div.modal.jviewport-width {
  &10 { width: 10vw; margin-left: -5vw; }
  &20 { width: 20vw; margin-left: -10vw; }
  &30 { width: 30vw; margin-left: -15vw; }
  &40 { width: 40vw; margin-left: -20vw; }
  &50 { width: 50vw; margin-left: -25vw; }
  &60 { width: 60vw; margin-left: -30vw; }
  &70 { width: 70vw; margin-left: -35vw; }
  &80 { width: 80vw; margin-left: -40vw; }
  &90 { width: 90vw; margin-left: -45vw; }
  &100 { width: 100vw; margin-left: -50vw; }
}
// < Joomla JUI
jui/less/breadcrumbs.less000064400000000657152177723720011507 0ustar00//
// Breadcrumbs
// --------------------------------------------------


.breadcrumb {
  padding: 8px 15px;
  margin: 0 0 @baseLineHeight;
  list-style: none;
  background-color: #f5f5f5;
  .border-radius(@baseBorderRadius);
  > li {
    display: inline-block;
    .ie7-inline-block();
    text-shadow: 0 1px 0 @white;
    > .divider {
      padding: 0 5px;
      color: #ccc;
    }
  }
  > .active {
    color: @grayLight;
  }
}
jui/less/layouts.less000064400000000511152177723720010703 0ustar00//
// Layouts
// --------------------------------------------------


// Container (centered, fixed-width layouts)
.container {
  .container-fixed();
}

// Fluid layouts (left aligned, with sidebar, min- & max-width content)
.container-fluid {
  padding-right: @gridGutterWidth;
  padding-left: @gridGutterWidth;
  .clearfix();
}jui/less/tables.less000064400000014416152177723720010466 0ustar00//
// Tables
// --------------------------------------------------


// BASE TABLES
// -----------------

table {
  max-width: 100%;
  background-color: @tableBackground;
  border-collapse: collapse;
  border-spacing: 0;
}

// BASELINE STYLES
// ---------------

.table {
  width: 100%;
  margin-bottom: @baseLineHeight;
  // Cells
  th,
  td {
    padding: 8px;
    line-height: @baseLineHeight;
    text-align: left;
    vertical-align: top;
    border-top: 1px solid @tableBorder;
  }
  th {
    font-weight: bold;
  }
  // Bottom align for column headings
  thead th {
    vertical-align: bottom;
  }
  // Remove top border from thead by default
  caption + thead tr:first-child th,
  caption + thead tr:first-child td,
  colgroup + thead tr:first-child th,
  colgroup + thead tr:first-child td,
  thead:first-child tr:first-child th,
  thead:first-child tr:first-child td {
    border-top: 0;
  }
  // Account for multiple tbody instances
  tbody + tbody {
    border-top: 2px solid @tableBorder;
  }

  // Nesting
  .table {
    background-color: @bodyBackground;
  }
}



// CONDENSED TABLE W/ HALF PADDING
// -------------------------------

.table-condensed {
  th,
  td {
    padding: 4px 5px;
  }
}


// BORDERED VERSION
// ----------------

.table-bordered {
  border: 1px solid @tableBorder;
  border-collapse: separate; // Done so we can round those corners!
  *border-collapse: collapse; // IE7 can't round corners anyway
  border-left: 0;
  .border-radius(@baseBorderRadius);
  th,
  td {
    border-left: 1px solid @tableBorder;
  }
  // Prevent a double border
  caption + thead tr:first-child th,
  caption + tbody tr:first-child th,
  caption + tbody tr:first-child td,
  colgroup + thead tr:first-child th,
  colgroup + tbody tr:first-child th,
  colgroup + tbody tr:first-child td,
  thead:first-child tr:first-child th,
  tbody:first-child tr:first-child th,
  tbody:first-child tr:first-child td {
    border-top: 0;
  }
  // For first th/td in the first row in the first thead or tbody
  thead:first-child tr:first-child > th:first-child,
  tbody:first-child tr:first-child > td:first-child,
  tbody:first-child tr:first-child > th:first-child {
    .border-top-left-radius(@baseBorderRadius);
  }
  // For last th/td in the first row in the first thead or tbody
  thead:first-child tr:first-child > th:last-child,
  tbody:first-child tr:first-child > td:last-child,
  tbody:first-child tr:first-child > th:last-child {
    .border-top-right-radius(@baseBorderRadius);
  }
  // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot
  thead:last-child tr:last-child > th:first-child,
  tbody:last-child tr:last-child > td:first-child,
  tbody:last-child tr:last-child > th:first-child,
  tfoot:last-child tr:last-child > td:first-child,
  tfoot:last-child tr:last-child > th:first-child {
    .border-bottom-left-radius(@baseBorderRadius);
  }
  // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot
  thead:last-child tr:last-child > th:last-child,
  tbody:last-child tr:last-child > td:last-child,
  tbody:last-child tr:last-child > th:last-child,
  tfoot:last-child tr:last-child > td:last-child,
  tfoot:last-child tr:last-child > th:last-child {
    .border-bottom-right-radius(@baseBorderRadius);
  }

  // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot
  tfoot + tbody:last-child tr:last-child td:first-child {
    .border-bottom-left-radius(0);
  }
  tfoot + tbody:last-child tr:last-child td:last-child {
    .border-bottom-right-radius(0);
  }

  // Special fixes to round the left border on the first td/th
  caption + thead tr:first-child th:first-child,
  caption + tbody tr:first-child td:first-child,
  colgroup + thead tr:first-child th:first-child,
  colgroup + tbody tr:first-child td:first-child {
    .border-top-left-radius(@baseBorderRadius);
  }
  caption + thead tr:first-child th:last-child,
  caption + tbody tr:first-child td:last-child,
  colgroup + thead tr:first-child th:last-child,
  colgroup + tbody tr:first-child td:last-child {
    .border-top-right-radius(@baseBorderRadius);
  }

}




// ZEBRA-STRIPING
// --------------

// Default zebra-stripe styles (alternating gray and transparent backgrounds)
.table-striped {
  tbody {
    > tr:nth-child(odd) > td,
    > tr:nth-child(odd) > th {
      background-color: @tableBackgroundAccent;
    }
  }
}


// HOVER EFFECT
// ------------
// Placed here since it has to come after the potential zebra striping
.table-hover {
  tbody {
    tr:hover > td,
    tr:hover > th {
      background-color: @tableBackgroundHover;
    }
  }
}


// TABLE CELL SIZING
// -----------------

// Reset default grid behavior
table td[class*="span"],
table th[class*="span"],
.row-fluid table td[class*="span"],
.row-fluid table th[class*="span"] {
  display: table-cell;
  float: none; // undo default grid column styles
  margin-left: 0; // undo default grid column styles
}

// Change the column widths to account for td/th padding
.table td,
.table th {
  &.span1     { .tableColumns(1); }
  &.span2     { .tableColumns(2); }
  &.span3     { .tableColumns(3); }
  &.span4     { .tableColumns(4); }
  &.span5     { .tableColumns(5); }
  &.span6     { .tableColumns(6); }
  &.span7     { .tableColumns(7); }
  &.span8     { .tableColumns(8); }
  &.span9     { .tableColumns(9); }
  &.span10    { .tableColumns(10); }
  &.span11    { .tableColumns(11); }
  &.span12    { .tableColumns(12); }
}



// TABLE BACKGROUNDS
// -----------------
// Exact selectors below required to override .table-striped

.table tbody tr {
  &.success > td {
    background-color: @successBackground;
  }
  &.error > td {
    background-color: @errorBackground;
  }
  &.warning > td {
    background-color: @warningBackground;
  }
  &.info > td {
    background-color: @infoBackground;
  }
}

// Hover states for .table-hover
.table-hover tbody tr {
  &.success:hover > td {
    background-color: darken(@successBackground, 5%);
  }
  &.error:hover > td {
    background-color: darken(@errorBackground, 5%);
  }
  &.warning:hover > td {
    background-color: darken(@warningBackground, 5%);
  }
  &.info:hover > td {
    background-color: darken(@infoBackground, 5%);
  }
}


// TABLE WITHOUT HEADER
// -----------------
// Table with table header hidden
.table-noheader {
  border-collapse: collapse;
  thead {
	display: none;
  }
}jui/less/media.less000064400000001534152177723720010270 0ustar00// Media objects
// Source: http://stubbornella.org/content/?p=497
// --------------------------------------------------


// Common styles
// -------------------------

// Clear the floats
.media,
.media-body {
  overflow: hidden;
  *overflow: visible;
  zoom: 1;
}

// Proper spacing between instances of .media
.media,
.media .media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}

// For images and videos, set to block
.media-object {
  display: block;
}

// Reset margins on headings for tighter default spacing
.media-heading {
  margin: 0 0 5px;
}


// Media image alignment
// -------------------------

.media > .pull-left {
  margin-right: 10px;
}
.media > .pull-right {
  margin-left: 10px;
}


// Media list variation
// -------------------------

// Undo default ul/ol styles
.media-list {
  margin-left: 0;
  list-style: none;
}
jui/less/modals.less000064400000003134152177723720010466 0ustar00//
// Modals
// --------------------------------------------------

// Background
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: @zindexModalBackdrop;
  background-color: @black;
  // Fade for backdrop
  &.fade { opacity: 0; }
}

.modal-backdrop,
.modal-backdrop.fade.in {
  .opacity(80);
}

// Base modal
// > Joomla JUI
// .modal REMOVED
// < Joomla JUI

.modal-header {
  padding: 9px 15px;
  border-bottom: 1px solid #eee;
  // Close icon
  .close { margin-top: 2px; }
  // Heading
  h3 {
    margin: 0;
    line-height: 30px;
  }
}

// Body (where all modal content resides)
.modal-body {
  width: 98%;
  position: relative;
  max-height: 400px;
  padding: 1%;
}
// Remove border and scrollbar from iframe modal
.modal-body iframe {
  width: 100%;
  max-height: none;
  border: 0 !important;
}
// Remove bottom margin if need be
.modal-form {
  margin-bottom: 0;
}

// Footer (for actions)
.modal-footer {
  padding: 14px 15px 15px;
  margin-bottom: 0;
  text-align: right; // right align buttons
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  .border-radius(0 0 6px 6px);
  .box-shadow(inset 0 1px 0 @white);
  .clearfix(); // clear it in case folks use .pull-* classes on buttons

  // Properly space out buttons
  .btn + .btn {
    margin-left: 5px;
    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
  }
  // but override that for button groups
  .btn-group .btn + .btn {
    margin-left: -1px;
  }
  // and override it for block buttons as well
  .btn-block + .btn-block {
    margin-left: 0;
  }
}
jui/less/responsive-767px-max.joomla.less000064400000001301152177723720014332 0ustar00//
// Responsive: Landscape phone to desktop/tablet
// --------------------------------------------------

/* Joomla JUI NOTE: Original .modal definition has to be commented */

// > Joomla JUI
@media (max-width: 767px) {
  
  // Modals
  div.modal {
    position: fixed;
    top:   20px;
    left:  20px;
    right: 20px;
    width: auto;
    margin: 0;
    &.fade  { top: -100px; }
    &.fade.in { top: 20px; }
  }

  // Modals viewport width
  div.modal[class*="jviewport-width"] {
    width: auto;
    margin: 0;
  }

}

// UP TO LANDSCAPE PHONE
// ---------------------

@media (max-width: 480px) {

  // Modals
  div.modal {
    top:   10px;
    left:  10px;
    right: 10px;
  }

}
// < Joomla JUI
jui/less/bootstrap-extended.less000064400000023425152177723720013027 0ustar00/* Extending Bootstrap */
/* Typography */
.small {
	font-size: 11px;
}
/* Max Width */
iframe,
svg {
	max-width: 100%;
}
/* Nowrap */
.nowrap {
	white-space: nowrap;
}
/* Center */
.center,
.table td.center,
.table th.center {
	text-align: center;
}
/* Disabled Link */
a.disabled,
a.disabled:hover {
  color: #999999;
  background-color: transparent;
  cursor: default;
  text-decoration: none;
}
/* Hero Banner */
.hero-unit {
	text-align: center;
}
.hero-unit .lead {
	margin-bottom: 18px;
	font-size: 20px;
	font-weight: 200;
	line-height: 27px;
}
.btn .caret {
	margin-bottom: 7px;
}
.btn.btn-micro .caret {
	margin: 5px 0;
}
.blog-row-rule,
.blog-item-rule {
	border: 0;
}

/* Modal */
body.modal {
	padding-top: 0;
}

/* Alternating Rows */
.row-even,.row-odd {
	padding: 5px;
	width: 99%;
	border-bottom: 1px solid @tableBorder;
}
.row-odd {
	background-color: @tableBackground;
}
.row-even {
	background-color: @tableBackgroundAccent;
}

.blog-row-rule,
.blog-item-rule {
	border: 0;
}

/* Row reveal */
.row-fluid .row-reveal {
	visibility: hidden;
}
.row-fluid:hover .row-reveal {
	visibility: visible;
}

/* Buttons */
.btn-wide {
	width: 80%;
}

/* Nav List Offset */
.nav-list > li.offset > a {
	padding-left: 30px;
	font-size: 12px;
}
.blog-row-rule,
.blog-item-rule {
	border: 0;
}

.row-fluid .offset1 {
  margin-left: 8.382978723%;
}
.row-fluid .offset2 {
  margin-left: 16.89361702%;
}
.row-fluid .offset3 {
  margin-left: 25.404255317%;
}
.row-fluid .offset4 {
  margin-left: 33.914893614%;
}
.row-fluid .offset5 {
  margin-left: 42.425531911%;
}
.row-fluid .offset6 {
  margin-left: 50.93617020799999%;
}
.row-fluid .offset7 {
  margin-left: 59.446808505%;
}
.row-fluid .offset8 {
  margin-left: 67.95744680199999%;
}
.row-fluid .offset9 {
  margin-left: 76.468085099%;
}
.row-fluid .offset10 {
  margin-left: 84.97872339599999%;
}
.row-fluid .offset11 {
  margin-left: 91.489361693%;
}

/* Navbar Buttons */
.navbar .nav > li > a.btn {
	padding: 4px 10px;
	line-height: 18px;
}

/* Nav Tabs Dark */
.nav-tabs.nav-dark {
	border-bottom: 1px solid #333;
	text-shadow: 1px 1px 1px #000;
}
.nav-tabs.nav-dark > li > a {
	color: #F8F8F8;
}
.nav-tabs.nav-dark > li > a:hover {
  border-color: #333 #333 #111;
  background-color: #777777;
}
.nav-tabs.nav-dark > .active > a, .nav-tabs.nav-dark > .active > a:hover {
  color: #ffffff;
  background-color: #555555;
  border: 1px solid #222;
  border-bottom-color: transparent;
}

/* Inline Thumbnails */
.thumbnail.pull-left {
	margin: 0 10px 10px 0;
}
.thumbnail.pull-right {
	margin: 0 0 10px 10px;
}

/* Specific Widths */
.width-10 {
	width: 10px;
}
.width-20 {
	width: 20px;
}
.width-30 {
	width: 30px;
}
.width-40 {
	width: 40px;
}
.width-50 {
	width: 50px;
}
.width-60 {
	width: 60px;
}
.width-70 {
	width: 70px;
}
.width-80 {
	width: 80px;
}
.width-90 {
	width: 90px;
}
.width-100 {
	width: 100px;
}

/* Specific Heights */
.height-10 {
	height: 10px;
}
.height-20 {
	height: 20px;
}
.height-30 {
	height: 30px;
}
.height-40 {
	height: 40px;
}
.height-50 {
	height: 50px;
}
.height-60 {
	height: 60px;
}
.height-70 {
	height: 70px;
}
.height-80 {
	height: 80px;
}
.height-90 {
	height: 90px;
}
.height-100 {
	height: 100px;
}

/* Horizontal Row (hr) */
hr.hr-condensed {
	margin: 10px 0;
}

/* Striped */
.list-striped,
.row-striped {
	list-style: none;
	line-height: 18px;
	text-align: left;
	vertical-align: middle;
	border-top: 1px solid @tableBorder;
	margin-left: 0;
}

.list-striped li,
.list-striped dd,
.row-striped .row,
.row-striped .row-fluid {
	border-bottom: 1px solid @tableBorder;
	padding: 8px;
}

.list-striped li:nth-child(odd),
.list-striped dd:nth-child(odd),
.row-striped .row:nth-child(odd),
.row-striped .row-fluid:nth-child(odd) {
	background-color: @tableBackgroundAccent;
}

.list-striped li:hover,
.list-striped dd:hover,
.row-striped .row:hover,
.row-striped .row-fluid:hover {
	background-color: @tableBackgroundHover;
}

.row-striped .row-fluid {
	width: 100%;
	box-sizing: border-box; // box-sizing since we don't care about padding
}
.row-striped .row-fluid [class*="span"] {
	min-height: 10px;
}
.row-striped .row-fluid [class*="span"] {
	margin-left: 8px;
}
.row-striped .row-fluid [class*="span"]:first-child {
	margin-left: 0;
}

/* Condensed */
.list-condensed {
  li {
    padding: 4px 5px;
  }
}
.row-condensed {
  .row, .row-fluid {
    padding: 4px 5px;
  }
}

/* Bordered */
.list-bordered,
.row-bordered{
	list-style: none;
	line-height: 18px;
	text-align: left;
	vertical-align: middle;
	margin-left: 0;
	border: 1px solid @tableBorder;
	.border-radius(4px);
}

/* Radio Button Groups */
.radio.btn-group input[type=radio] {
    display: none;
}
.radio.btn-group > label {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.radio.btn-group > label:first-of-type {
	margin-left: 0;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-moz-border-radius-bottomleft: 4px;
	-moz-border-radius-topleft: 4px;
}
fieldset.radio.btn-group {
	padding-left: 0;
}

/* iFrames */
.iframe-bordered {
	border: 1px solid @tableBorder;
}

/* Tabbed Content */
.tab-content{
	overflow: visible;
}
.tabs-left .tab-content{
	overflow: auto;
}
/* Non-linkable nav-tabs */
.nav-tabs > li > span {
    display: block;
    margin-right: 2px;
    padding-right: 12px;
    padding-left: 12px;
    padding-top: 8px;
    padding-bottom: 8px;
    line-height: 18px;
    border: 1px solid transparent;
    -webkit-border-radius: 4px 4px 0 0;
    -moz-border-radius: 4px 4px 0 0;
    border-radius: 4px 4px 0 0;
}

/* Extended Joomla Button Classes */
.btn-micro {
	padding: 1px 4px;
	font-size: 10px;
	line-height: 8px;
}
.btn-group > .btn-micro {
	font-size: 10px;
}

/* Joomla => Bootstrap Tooltip */
.tip-wrap {
	max-width: 200px;
	padding: 3px 8px;
	color: @white;
	text-align: center;
	text-decoration: none;
	background-color: @black;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	z-index: 100;
}

/* Page Header */
.page-header{
	margin: 2px 0px 10px 0px;
	padding-bottom: 5px;
}
/* Input Prepend Chosen Select Boxes */
/* Common styling for Chosen Select Boxes with Input Prepend/Append */
.input-prepend > .add-on,
.input-append > .add-on {
	vertical-align: top;
}
/* Styles specific to Input Prepend Chosen Select Boxes */
.input-prepend .chzn-container-single .chzn-single {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.input-prepend .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 0 3px 0 0;
	-moz-border-radius: 0 3px 0 0;
	border-radius: 0 3px 0 0;
}
/* Styles specific to Input Append Chosen Select Boxes */
.input-append .chzn-container-single .chzn-single {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.input-append .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 3px 0 0 0;
	-moz-border-radius: 3px 0 0 0;
	border-radius: 3px 0 0 0;
}
/* Styles specific to combined Input Prepend and Append Chosen Select Boxes */
.input-prepend.input-append .chzn-container-single .chzn-single,
.input-prepend.input-append .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}

/* Accessible Hidden Elements (good for hidden labels and such) */
.element-invisible {
	position: absolute;
	padding: 0;
	margin: 0;
	border: 0;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* Make Accessible Hidden Elements visible on focus */
.element-invisible:focus {
	width:auto;
	height:auto;
	overflow:auto;
	background:#eee;
	color:#000;
	padding:1em;
}

/* Form Vertical Overrides Form Horizontal */
.form-vertical {
	.control-label {
		float: none;
		width: auto;
		padding-right: 0;
		padding-top: 0;
		text-align: left;
	}
	.controls{
		margin-left: 0;
	}
}

/* Auto Width */
.width-auto {
	width: auto;
}

/* Chosen proper wrapping in Bootstrap btn-group */
.btn-group .chzn-results {
	white-space: normal;
}

/* Accordion overflow fix */
.accordion-body.in:hover {
	overflow:visible;
}

/* Invalid indicators */
.invalid {
	color: @red;
	font-weight: bold;
}
input.invalid {
	border: 1px solid @red;
	background: #f2dede;
}
select.chzn-done.invalid + .chzn-container.chzn-container-single > a.chzn-single,
select.chzn-done.invalid + .chzn-container.chzn-container-multi > ul.chzn-choices {
	border-color: @red;
	color: @red;
}

/* Tweaking of tooltips */
.tooltip {
	max-width: 400px;
}
.tooltip-inner {
	max-width: none;
	text-align: left;
	text-shadow: none;
}
th .tooltip-inner {
	font-weight: normal;
}
.tooltip.hasimage {
	opacity: 1;
}

/* Align tip text to left (old mootools tip) */
.tip-text {
	text-align:left;
}

// Fix for bug when dropdown-backdrop element is created
.btn-group > .btn + .dropdown-backdrop + .btn {
	margin-left: -1px;
}
.btn-group > .btn + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 8px;
	padding-right: 8px;
	.box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
	*padding-top: 5px;
	*padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 5px;
	padding-right: 5px;
	*padding-top: 2px;
	*padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-backdrop + .dropdown-toggle {
	*padding-top: 5px;
	*padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 12px;
	padding-right: 12px;
	*padding-top: 7px;
	*padding-bottom: 7px;
}
.dropdown-menu {
	text-align: left;
}

// Add Bootstrap 3 .alert-link
.alert-link {
  font-weight: bold;
}

.alert .alert-link {
  color: darken(@warningText, 10%);
}

.alert-success .alert-link {
  color: darken(@successText, 10%);
}

.alert-danger .alert-link,
.alert-error .alert-link {
  color: darken(@errorText, 10%);
}

.alert-info .alert-link {
  color: darken(@infoText, 10%);
}
jui/less/buttons.less000064400000011236152177723720010707 0ustar00//
// Buttons
// --------------------------------------------------


// Base styles
// --------------------------------------------------

// Core
.btn {
  display: inline-block;
  .ie7-inline-block();
  padding: 4px 12px;
  margin-bottom: 0; // For input.btn
  font-size: @baseFontSize;
  line-height: @baseLineHeight;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
  border: 1px solid @btnBorder;
  *border: 0; // Remove the border to prevent IE7's black border on input:focus
  border-bottom-color: darken(@btnBorder, 10%);
  .border-radius(@baseBorderRadius);
  .ie7-restore-left-whitespace(); // Give IE7 some love
  .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");

  // Hover/focus state
  &:hover,
  &:focus {
    color: @grayDark;
    text-decoration: none;
    background-position: 0 -15px;

    // transition is only when going to hover/focus, otherwise the background
    // behind the gradient (there for IE<=9 fallback) gets mismatched
    .transition(background-position .1s linear);
  }

  // Focus state for keyboard and accessibility
  &:focus {
    .tab-focus();
  }

  // Active state
  &.active,
  &:active {
    background-image: none;
    outline: 0;
    .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
  }

  // Disabled state
  &.disabled,
  &[disabled] {
    cursor: default;
    background-image: none;
    .opacity(65);
    .box-shadow(none);
  }

}



// Button Sizes
// --------------------------------------------------

// Large
.btn-large {
  padding: @paddingLarge;
  font-size: @fontSizeLarge;
  .border-radius(@borderRadiusLarge);
}
.btn-large [class^="icon-"],
.btn-large [class*=" icon-"] {
  margin-top: 4px;
}

// Small
.btn-small {
  padding: @paddingSmall;
  font-size: @fontSizeSmall;
  .border-radius(@borderRadiusSmall);
}
.btn-small [class^="icon-"],
.btn-small [class*=" icon-"] {
  margin-top: 0;
}
.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
  margin-top: -1px;
}

// Mini
.btn-mini {
  padding: @paddingMini;
  font-size: @fontSizeMini;
  .border-radius(@borderRadiusSmall);
}


// Block button
// -------------------------

.btn-block {
  display: block;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  .box-sizing(border-box);
}

// Vertically space out multiple block buttons
.btn-block + .btn-block {
  margin-top: 5px;
}

// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
  &.btn-block {
    width: 100%;
  }
}



// Alternate buttons
// --------------------------------------------------

// Provide *some* extra contrast for those who can get it
.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
.btn-info.active,
.btn-inverse.active {
  color: rgba(255,255,255,.75);
}

// Set the backgrounds
// -------------------------
.btn-primary {
  .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
}
// Warning appears are orange
.btn-warning {
  .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
}
// Danger and error appear as red
.btn-danger {
  .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
}
// Success appears as green
.btn-success {
  .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
}
// Info appears as a neutral blue
.btn-info {
  .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
}
// Inverse appears as dark gray
.btn-inverse {
  .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
}


// Cross-browser Jank
// --------------------------------------------------

button.btn,
input[type="submit"].btn {

  // Firefox 3.6 only I believe
  &::-moz-focus-inner {
    padding: 0;
    border: 0;
  }

  // IE7 has some default padding on button controls
  *padding-top: 3px;
  *padding-bottom: 3px;

  &.btn-large {
    *padding-top: 7px;
    *padding-bottom: 7px;
  }
  &.btn-small {
    *padding-top: 3px;
    *padding-bottom: 3px;
  }
  &.btn-mini {
    *padding-top: 1px;
    *padding-bottom: 1px;
  }
}


// Link buttons
// --------------------------------------------------

// Make a button look and behave like a link
.btn-link,
.btn-link:active,
.btn-link[disabled] {
  background-color: transparent;
  background-image: none;
  .box-shadow(none);
}
.btn-link {
  border-color: transparent;
  cursor: pointer;
  color: @linkColor;
  .border-radius(0);
}
.btn-link:hover,
.btn-link:focus {
  color: @linkColorHover;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
.btn-link[disabled]:focus {
  color: @grayDark;
  text-decoration: none;
}
jui/less/dropdowns.less000064400000013650152177723720011232 0ustar00//
// Dropdown menus
// --------------------------------------------------


// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle {
  // The caret makes the toggle a bit too tall in IE7
  *margin-bottom: -3px;
}
.dropdown-toggle:active,
.open .dropdown-toggle {
  outline: 0;
}

// Dropdown arrow/caret
// --------------------
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  vertical-align: top;
  border-top:   4px solid @black;
  border-right: 4px solid transparent;
  border-left:  4px solid transparent;
  content: "";
}

// Place the caret
.dropdown .caret {
  margin-top: 8px;
  margin-left: 2px;
}

// The dropdown menu (ul)
// ----------------------
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: @zindexDropdown;
  display: none; // none by default, but block on "open" of the menu
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0; // override default ul
  list-style: none;
  background-color: @dropdownBackground;
  border: 1px solid #ccc; // Fallback for IE7-8
  border: 1px solid @dropdownBorder;
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  .border-radius(6px);
  .box-shadow(0 5px 10px rgba(0,0,0,.2));
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding;
          background-clip: padding-box;

  // Aligns the dropdown menu to right
  &.pull-right {
    right: 0;
    left: auto;
  }

  // Dividers (basically an hr) within the dropdown
  .divider {
    .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
  }

  // Labelled Separator (group label for menu items group) within the dropdown
  .menuitem-group {
    margin: 4px 1px;
    overflow: hidden;
    border-top: 1px solid @grayLighter;
    border-bottom: 1px solid @grayLighter;
    background-color: @grayLighter;
    color: @gray;
    text-transform: capitalize;
    font-size: 95%;
    padding: 3px 20px;
  }

  // Links within the dropdown menu
  > li > a {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: normal;
    line-height: @baseLineHeight;
    color: @dropdownLinkColor;
    white-space: nowrap;
  }
}

// Hover/Focus state
// -----------
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
  text-decoration: none;
  color: @dropdownLinkColorHover;
  #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));
}

// Active state
// ------------
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: @dropdownLinkColorActive;
  text-decoration: none;
  outline: 0;
  #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));
}

// Disabled state
// --------------
// Gray out text and ensure the hover/focus state remains gray
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: @grayLight;
}
// Nuke hover/focus effects
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none; // Remove CSS gradient
  .reset-filter();
  cursor: default;
}

// Open state for the dropdown
// ---------------------------
.open {
  // IE7's z-index only goes to the nearest positioned ancestor, which would
  // make the menu appear below buttons that appeared later on the page
  *z-index: @zindexDropdown;

  & > .dropdown-menu {
    display: block;
  }
}

// Backdrop to catch body clicks on mobile, etc.
// ---------------------------
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: @zindexDropdown - 10;
}

// Right aligned dropdowns
// ---------------------------
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}

// Allow for dropdowns to go bottom up (aka, dropup-menu)
// ------------------------------------------------------
// Just add .dropup after the standard .dropdown class and you're set, bro.
// TODO: abstract this so that the navbar fixed styles are not placed here?
.dropup,
.navbar-fixed-bottom .dropdown {
  // Reverse the caret
  .caret {
    border-top: 0;
    border-bottom: 4px solid @black;
    content: "";
  }
  // Different positioning for bottom up menu
  .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-bottom: 1px;
  }
}

// Sub menus
// ---------------------------
.dropdown-submenu {
  position: relative;
}
// Default dropdowns
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  .border-radius(6px 6px 6px 6px);
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

// Dropups
.dropup .dropdown-submenu > .dropdown-menu {
  top: auto;
  bottom: 0;
  margin-top: 0;
  margin-bottom: -2px;
  .border-radius(5px 5px 5px 0);
}

// Caret to indicate there is a submenu
.dropdown-submenu > a:after {
  display: block;
  content: " ";
  float: right;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-left-color: darken(@dropdownBackground, 20%);
  margin-top: 5px;
  margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
  border-left-color: @dropdownLinkColorHover;
}

// Left aligned submenus
.dropdown-submenu.pull-left {
  // Undo the float
  // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
  float: none;

  // Positioning the submenu
  > .dropdown-menu {
    left: -100%;
    margin-left: 10px;
    .border-radius(6px 0 6px 6px);
  }
}

// Tweak nav headers
// -----------------
// Increase padding from 15px to 20px on sides
.dropdown .dropdown-menu .nav-header {
  padding-left: 20px;
  padding-right: 20px;
}

// Typeahead
// ---------
.typeahead {
  z-index: 1051;
  margin-top: 2px; // give it some space to breathe
  .border-radius(@baseBorderRadius);
}
jui/less/utilities.less000064400000000517152177723720011224 0ustar00//
// Utility classes
// --------------------------------------------------


// Quick floats
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}

// Toggling content
.hide {
  display: none;
}
.show {
  display: block;
}

// Visibility
.invisible {
  visibility: hidden;
}

// For Affix plugin
.affix {
  position: fixed;
}
jui/less/icomoon.less000064400000027665152177723720010671 0ustar00/*
 * Due to a bug in the compiler that doesn't handle the relative paths correctly, the @font-face stuff needs to go in the templates less files
@font-face {
	font-family: 'IcoMoon';
	src: url('../fonts/IcoMoon.eot');
	src: url('../fonts/IcoMoon.eot?#iefix') format('embedded-opentype'),
		url('../fonts/IcoMoon.woff') format('woff'),
		url('../fonts/IcoMoon.ttf') format('truetype'),
		url('../fonts/IcoMoon.svg#IcoMoon') format('svg');
	font-weight: normal;
	font-style: normal;
}
*/

/* Use the following CSS code if you want to use data attributes for inserting your icons */
[data-icon]:before {
	font-family: 'IcoMoon';
	content: attr(data-icon);
	speak: none;
}

/* From Bootstrap */
[class^="icon-"],
[class*=" icon-"] {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: .25em;
	line-height: 14px;
}

/* Use the following CSS code if you want to have a class per icon */
[class^="icon-"]:before, [class*=" icon-"]:before {
	font-family: 'IcoMoon';
	font-style: normal;
	speak: none;
}
[class^="icon-"].disabled,
[class*=" icon-"].disabled {
	font-weight: normal;
}

.icon-joomla:before {
	content: "\e200";
}
.icon-chevron-up:before,
.icon-uparrow:before,
.icon-arrow-up:before {
	content: "\e005";
}
.icon-chevron-right:before,
.icon-rightarrow:before,
.icon-arrow-right:before{
	content: "\e006";
}
.icon-chevron-down:before,
.icon-downarrow:before,
.icon-arrow-down:before {
	content: "\e007";
}
.icon-chevron-left:before,
.icon-leftarrow:before,
.icon-arrow-left:before {
	content: "\e008";
}
.icon-arrow-first:before {
	content: "\e003";
}
.icon-arrow-last:before {
	content: "\e004";
}
.icon-arrow-up-2:before {
	content: "\e009";
}
.icon-arrow-right-2:before {
	content: "\e00a";
}
.icon-arrow-down-2:before {
	content: "\e00b";
}
.icon-arrow-left-2:before {
	content: "\e00c";
}
.icon-arrow-up-3:before {
	content: "\e00f";
}
.icon-arrow-right-3:before {
	content: "\e010";
}
.icon-arrow-down-3:before {
	content: "\e011";
}
.icon-arrow-left-3:before {
	content: "\e012";
}
.icon-menu-2:before {
	content: "\e00e";
}
.icon-arrow-up-4:before {
	content: "\e201";
}
.icon-arrow-right-4:before {
	content: "\e202";
}
.icon-arrow-down-4:before {
	content: "\e203";
}
.icon-arrow-left-4:before {
	content: "\e204";
}
.icon-share:before,
.icon-redo:before {
	content: "\27";
}
.icon-undo:before {
	content: "\28";
}
.icon-forward-2:before {
	content: "\e205";
}
.icon-backward-2:before,
.icon-reply:before {
	content: "\e206";
}
.icon-unblock:before,
.icon-refresh:before,
.icon-redo-2:before {
	content: "\6c";
}
.icon-undo-2:before {
	content: "\e207";
}
.icon-move:before {
	content: "\7a";
}
.icon-expand:before {
	content: "\66";
}
.icon-contract:before {
	content: "\67";
}
.icon-expand-2:before {
	content: "\68";
}
.icon-contract-2:before {
	content: "\69";
}
.icon-play:before {
	content: "\e208";
}
.icon-pause:before {
	content: "\e209";
}
.icon-stop:before {
	content: "\e210";
}
.icon-previous:before,
.icon-backward:before {
	content: "\7c";
}
.icon-next:before,
.icon-forward:before {
	content: "\7b";
}
.icon-first:before {
	content: "\7d";
}
.icon-last:before {
	content: "\e000";
}
.icon-play-circle:before {
	content: "\e00d";
}
.icon-pause-circle:before {
	content: "\e211";
}
.icon-stop-circle:before {
	content: "\e212";
}
.icon-backward-circle:before {
	content: "\e213";
}
.icon-forward-circle:before {
	content: "\e214";
}
.icon-loop:before {
	content: "\e001";
}
.icon-shuffle:before {
	content: "\e002";
}
.icon-search:before {
	content: "\53";
}
.icon-zoom-in:before {
	content: "\64";
}
.icon-zoom-out:before {
	content: "\65";
}
.icon-apply:before,
.icon-edit:before,
.icon-pencil:before {
	content: "\2b";
}
.icon-pencil-2:before {
	content: "\2c";
}
.icon-brush:before {
	content: "\3b";
}
.icon-save-new:before,
.icon-plus-2:before  {
	content: "\5d";
}
.icon-minus-sign:before,
.icon-minus-2:before {
	content: "\5e";
}
.icon-delete:before,
.icon-remove:before,
.icon-cancel-2:before {
	content: "\49";
}
.icon-publish:before,
.icon-save:before,
.icon-ok:before,
.icon-checkmark:before {
	content: "\47";
}
.icon-new:before,
.icon-plus:before {
	content: "\2a";
}
.icon-plus-circle:before {
	content: "\e215";
}
.icon-minus:before,
.icon-not-ok:before {
	content: "\4b";
}
.icon-ban-circle:before,
.icon-minus-circle:before {
	content: "\e216";
}
.icon-unpublish:before,
.icon-cancel:before {
	content: "\4a";
}
.icon-cancel-circle:before {
	content: "\e217";
}
.icon-checkmark-2:before {
	content: "\e218";
}
.icon-checkmark-circle:before {
	content: "\e219";
}
.icon-info:before {
	content: "\e220";
}
.icon-info-2:before,
.icon-info-circle:before {
	content: "\e221";
}
.icon-question:before,
.icon-question-sign:before,
.icon-help:before {
	content: "\45";
}
.icon-question-2:before,
.icon-question-circle:before {
	content: "\e222";
}
.icon-notification:before {
	content: "\e223";
}
.icon-notification-2:before,
.icon-notification-circle:before {
	content: "\e224";
}
.icon-pending:before,
.icon-warning:before {
	content: "\48";
}
.icon-warning-2:before,
.icon-warning-circle:before {
	content: "\e225";
}
.icon-checkbox-unchecked:before {
	content: "\3d";
}
.icon-checkin:before,
.icon-checkbox:before,
.icon-checkbox-checked:before {
	content: "\3e";
}
.icon-checkbox-partial:before {
	content: "\3f";
}
.icon-square:before {
	content: "\e226";
}
.icon-radio-unchecked:before {
	content: "\e227";
}
.icon-radio-checked:before,
.icon-generic:before {
	content: "\e228";
}
.icon-circle:before {
	content: "\e229";
}
.icon-signup:before {
	content: "\e230";
}
.icon-grid:before,
.icon-grid-view:before {
	content: "\58";
}
.icon-grid-2:before,
.icon-grid-view-2:before {
	content: "\59";
}
.icon-menu:before {
	content: "\5a";
}
.icon-list:before,
.icon-list-view:before {
	content: "\31";
}
.icon-list-2:before {
	content: "\e231";
}
.icon-menu-3:before {
	content: "\e232";
}
.icon-folder-open:before,
.icon-folder:before {
	content: "\2d";
}
.icon-folder-close:before,
.icon-folder-2:before {
	content: "\2e";
}
.icon-folder-plus:before {
	content: "\e234";
}
.icon-folder-minus:before {
	content: "\e235";
}
.icon-folder-3:before {
	content: "\e236";
}
.icon-folder-plus-2:before {
	content: "\e237";
}
.icon-folder-remove:before {
	content: "\e238";
}
.icon-file:before {
	content: "\e016";
}
.icon-file-2:before {
	content: "\e239";
}
.icon-file-add:before,
.icon-file-plus:before {
	content: "\29";
}
.icon-file-minus:before {
	content: "\e017";
}
.icon-file-check:before {
	content: "\e240";
}
.icon-file-remove:before {
	content: "\e241";
}
.icon-save-copy:before,
.icon-copy:before {
	content: "\e018";
}
.icon-stack:before {
	content: "\e242";
}
.icon-tree:before {
	content: "\e243";
}
.icon-tree-2:before {
	content: "\e244";
}
.icon-paragraph-left:before {
	content: "\e246";
}
.icon-paragraph-center:before {
	content: "\e247";
}
.icon-paragraph-right:before {
	content: "\e248";
}
.icon-paragraph-justify:before {
	content: "\e249";
}
.icon-screen:before {
	content: "\e01c";
}
.icon-tablet:before {
	content: "\e01d";
}
.icon-mobile:before {
	content: "\e01e";
}
.icon-box-add:before {
	content: "\51";
}
.icon-box-remove:before {
	content: "\52";
}
.icon-download:before {
	content: "\e021";
}
.icon-upload:before {
	content: "\e022";
}
.icon-home:before {
	content: "\21";
}
.icon-home-2:before {
	content: "\e250";
}
.icon-out-2:before,
.icon-new-tab:before {
	content: "\e024";
}
.icon-out-3:before,
.icon-new-tab-2:before {
	content: "\e251";
}
.icon-link:before {
	content: "\e252";
}
.icon-picture:before,
.icon-image:before {
	content: "\2f";
}
.icon-pictures:before,
.icon-images:before {
	content: "\30";
}
.icon-palette:before,
.icon-color-palette:before {
	content: "\e014";
}
.icon-camera:before {
	content: "\55";
}
.icon-camera-2:before,
.icon-video:before {
	content: "\e015";
}
.icon-play-2:before,
.icon-video-2:before,
.icon-youtube:before {
	content: "\56";
}
.icon-music:before {
	content: "\57";
}
.icon-user:before {
	content: "\22";
}
.icon-users:before {
	content: "\e01f";
}
.icon-vcard:before {
	content: "\6d";
}
.icon-address:before {
	content: "\70";
}
.icon-share-alt:before,
.icon-out:before {
	content: "\26";
}
.icon-enter:before {
	content: "\e257";
}
.icon-exit:before {
	content: "\e258";
}
.icon-comment:before,
.icon-comments:before {
	content: "\24";
}
.icon-comments-2:before {
	content: "\25";
}
.icon-quote:before,
.icon-quotes-left:before {
	content: "\60";
}
.icon-quote-2:before,
.icon-quotes-right:before {
	content: "\61";
}
.icon-quote-3:before,
.icon-bubble-quote:before {
	content: "\e259";
}
.icon-phone:before {
	content: "\e260";
}
.icon-phone-2:before {
	content: "\e261";
}
.icon-envelope:before,
.icon-mail:before {
	content: "\4d";
}
.icon-envelope-opened:before,
.icon-mail-2:before {
	content: "\4e";
}
.icon-unarchive:before,
.icon-drawer:before {
	content: "\4f";
}
.icon-archive:before,
.icon-drawer-2:before {
	content: "\50";
}
.icon-briefcase:before {
	content: "\e020";
}
.icon-tag:before {
	content: "\e262";
}
.icon-tag-2:before {
	content: "\e263";
}
.icon-tags:before {
	content: "\e264";
}
.icon-tags-2:before {
	content: "\e265";
}
.icon-options:before,
.icon-cog:before {
	content: "\38";
}
.icon-cogs:before {
	content: "\37";
}
.icon-screwdriver:before,
.icon-tools:before {
	content: "\36";
}
.icon-wrench:before {
	content: "\3a";
}
.icon-equalizer:before {
	content: "\39";
}
.icon-dashboard:before {
	content: "\78";
}
.icon-switch:before {
	content: "\e266";
}
.icon-filter:before {
	content: "\54";
}
.icon-purge:before,
.icon-trash:before {
	content: "\4c";
}
.icon-checkedout:before,
.icon-lock:before,
.icon-locked:before {
	content: "\23";
}
.icon-unlock:before {
	content: "\e267";
}
.icon-key:before {
	content: "\5f";
}
.icon-support:before {
	content: "\46";
}
.icon-database:before {
	content: "\62";
}
.icon-scissors:before {
	content: "\e268";
}
.icon-health:before {
	content: "\6a";
}
.icon-wand:before {
	content: "\6b";
}
.icon-eye-open:before,
.icon-eye:before {
	content: "\3c";
}
.icon-eye-close:before,
.icon-eye-blocked:before,
.icon-eye-2:before {
	content: "\e269";
}
.icon-clock:before {
	content: "\6e";
}
.icon-compass:before {
	content: "\6f";
}
.icon-broadcast:before,
.icon-connection:before,
.icon-wifi:before {
	content: "\e01b";
}
.icon-book:before {
	content: "\e271";
}
.icon-lightning:before,
.icon-flash:before {
	content: "\79";
}
.icon-print:before,
.icon-printer:before {
	content: "\e013";
}
.icon-feed:before {
	content: "\71";
}
.icon-calendar:before {
	content: "\43";
}
.icon-calendar-2:before {
	content: "\44";
}
.icon-calendar-3:before {
	content: "\e273";
}
.icon-pie:before {
	content: "\77";
}
.icon-bars:before {
	content: "\76";
}
.icon-chart:before {
	content: "\75";
}
.icon-power-cord:before {
	content: "\32";
}
.icon-cube:before {
	content: "\33";
}
.icon-puzzle:before {
	content: "\34";
}
.icon-attachment:before,
.icon-paperclip:before,
.icon-flag-2:before {
	content: "\72";
}
.icon-lamp:before {
	content: "\74";
}
.icon-pin:before,
.icon-pushpin:before {
	content: "\73";
}
.icon-location:before {
	content: "\63";
}
.icon-shield:before {
	content: "\e274";
}
.icon-flag:before {
	content: "\35";
}
.icon-flag-3:before {
	content: "\e275";
}
.icon-bookmark:before {
	content: "\e023";
}
.icon-bookmark-2:before {
	content: "\e276";
}
.icon-heart:before {
	content: "\e277";
}
.icon-heart-2:before {
	content: "\e278";
}
.icon-thumbs-up:before {
	content: "\5b";
}
.icon-thumbs-down:before{
	content: "\5c";
}
.icon-unfeatured:before,
.icon-asterisk:before,
.icon-star-empty:before {
	content: "\40";
}
.icon-star-2:before {
	content: "\41";
}
.icon-featured:before,
.icon-default:before,
.icon-star:before{
	content: "\42";
}
.icon-smiley:before,
.icon-smiley-happy:before {
	content: "\e279";
}
.icon-smiley-2:before,
.icon-smiley-happy-2:before {
	content: "\e280";
}
.icon-smiley-sad:before {
	content: "\e281";
}
.icon-smiley-sad-2:before {
	content: "\e282";
}
.icon-smiley-neutral:before {
	content: "\e283";
}
.icon-smiley-neutral-2:before {
	content: "\e284";
}
.icon-cart:before {
	content: "\e019";
}
.icon-basket:before {
	content: "\e01a";
}
.icon-credit:before {
	content: "\e286";
}
.icon-credit-2:before {
	content: "\e287";
}
.icon-expired:before {
content: "\4b";
}
jui/less/type.less000064400000011371152177723720010172 0ustar00//
// Typography
// --------------------------------------------------


// Body text
// -------------------------

p {
  margin: 0 0 @baseLineHeight / 2;
}
.lead {
  margin-bottom: @baseLineHeight;
  font-size: @baseFontSize * 1.5;
  font-weight: 200;
  line-height: @baseLineHeight * 1.5;
}


// Emphasis & misc
// -------------------------

// Ex: 14px base font * 85% = about 12px
small   { font-size: 85%; }

strong  { font-weight: bold; }
em      { font-style: italic; }
cite    { font-style: normal; }

// Utility classes
.muted               { color: @grayLight; }
a.muted:hover,
a.muted:focus        { color: darken(@grayLight, 10%); }

.text-warning        { color: @warningText; }
a.text-warning:hover,
a.text-warning:focus { color: darken(@warningText, 10%); }

.text-error          { color: @errorText; }
a.text-error:hover,
a.text-error:focus   { color: darken(@errorText, 10%); }

.text-info           { color: @infoText; }
a.text-info:hover,
a.text-info:focus    { color: darken(@infoText, 10%); }

.text-success        { color: @successText; }
a.text-success:hover,
a.text-success:focus { color: darken(@successText, 10%); }

.text-left           { text-align: left; }
.text-right          { text-align: right; }
.text-center         { text-align: center; }


// Headings
// -------------------------

h1, h2, h3, h4, h5, h6 {
  margin: (@baseLineHeight / 2) 0;
  font-family: @headingsFontFamily;
  font-weight: @headingsFontWeight;
  line-height: @baseLineHeight;
  color: @headingsColor;
  text-rendering: optimizelegibility; // Fix the character spacing for headings
  small {
    font-weight: normal;
    line-height: 1;
    color: @grayLight;
  }
}

h1,
h2,
h3 { line-height: @baseLineHeight * 2; }

h1 { font-size: @baseFontSize * 2.75; } // ~38px
h2 { font-size: @baseFontSize * 2.25; } // ~32px
h3 { font-size: @baseFontSize * 1.75; } // ~24px
h4 { font-size: @baseFontSize * 1.25; } // ~18px
h5 { font-size: @baseFontSize; }
h6 { font-size: @baseFontSize * 0.85; } // ~12px

h1 small { font-size: @baseFontSize * 1.75; } // ~24px
h2 small { font-size: @baseFontSize * 1.25; } // ~18px
h3 small { font-size: @baseFontSize; }
h4 small { font-size: @baseFontSize; }


// Page header
// -------------------------

.page-header {
  padding-bottom: (@baseLineHeight / 2) - 1;
  margin: @baseLineHeight 0 (@baseLineHeight * 1.5);
  border-bottom: 1px solid @grayLighter;
}



// Lists
// --------------------------------------------------

// Unordered and Ordered lists
ul, ol {
  padding: 0;
  margin: 0 0 @baseLineHeight / 2 25px;
}
ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0;
}
li {
  line-height: @baseLineHeight;
}

// Remove default list styles
ul.unstyled,
ol.unstyled {
  margin-left: 0;
  list-style: none;
}

// Single-line list items
ul.inline,
ol.inline {
  margin-left: 0;
  list-style: none;
  > li {
    display: inline-block;
    .ie7-inline-block();
    padding-left: 5px;
    padding-right: 5px;
  }
}

// Description Lists
dl {
  margin-bottom: @baseLineHeight;
}
dt,
dd {
  line-height: @baseLineHeight;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: @baseLineHeight / 2;
}
// Horizontal layout (like forms)
.dl-horizontal {
  .clearfix(); // Ensure dl clears floats if empty dd elements present
  dt {
    float: left;
    width: @horizontalComponentOffset - 20;
    clear: left;
    text-align: right;
    .text-overflow();
  }
  dd {
    margin-left: @horizontalComponentOffset;
  }
}

// MISC
// ----

// Horizontal rules
hr {
  margin: @baseLineHeight 0;
  border: 0;
  border-top: 1px solid @hrBorder;
  border-bottom: 1px solid @white;
}

// Abbreviations and acronyms
abbr[title],
// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted @grayLight;
}
abbr.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

// Blockquotes
blockquote {
  padding: 0 0 0 15px;
  margin: 0 0 @baseLineHeight;
  border-left: 5px solid @grayLighter;
  p {
    margin-bottom: 0;
    font-size: @baseFontSize * 1.25;
    font-weight: 300;
    line-height: 1.25;
  }
  small {
    display: block;
    line-height: @baseLineHeight;
    color: @grayLight;
    &:before {
      content: '\2014 \00A0';
    }
  }

  // Float right with text-align: right
  &.pull-right {
    float: right;
    padding-right: 15px;
    padding-left: 0;
    border-right: 5px solid @grayLighter;
    border-left: 0;
    p,
    small {
      text-align: right;
    }
    small {
      &:before {
        content: '';
      }
      &:after {
        content: '\00A0 \2014';
      }
    }
  }
}

// Quotes
q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
}

// Addresses
address {
  display: block;
  margin-bottom: @baseLineHeight;
  font-style: normal;
  line-height: @baseLineHeight;
}
jui/less/labels-badges.less000064400000003534152177723720011700 0ustar00//
// Labels and badges
// --------------------------------------------------


// Base classes
.label,
.badge {
  display: inline-block;
  padding: 2px 4px;
  font-size: @baseFontSize * .846;
  font-weight: bold;
  line-height: 14px; // ensure proper line-height if floated
  color: @white;
  vertical-align: baseline;
  white-space: nowrap;
  text-shadow: 0 -1px 0 rgba(0,0,0,.25);
  background-color: @grayLight;
}
// Set unique padding and border-radii
.label {
  .border-radius(3px);
}
.badge {
  padding-left: 9px;
  padding-right: 9px;
  .border-radius(9px);
}

// Empty labels/badges collapse
.label,
.badge {
  &:empty {
    display: none;
  }
}

// Hover/focus state, but only for links
a {
  &.label:hover,
  &.label:focus,
  &.badge:hover,
  &.badge:focus {
    color: @white;
    text-decoration: none;
    cursor: pointer;
  }
}

// Colors
// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
.label,
.badge {
  // Important (red)
  &-important         { background-color: @errorText; }
  &-important[href]   { background-color: darken(@errorText, 10%); }
  // Warnings (orange)
  &-warning           { background-color: @orange; }
  &-warning[href]     { background-color: darken(@orange, 10%); }
  // Success (green)
  &-success           { background-color: @successText; }
  &-success[href]     { background-color: darken(@successText, 10%); }
  // Info (turquoise)
  &-info              { background-color: @infoText; }
  &-info[href]        { background-color: darken(@infoText, 10%); }
  // Inverse (black)
  &-inverse           { background-color: @grayDark; }
  &-inverse[href]     { background-color: darken(@grayDark, 10%); }
}

// Quick fix for labels/badges in buttons
.btn {
  .label,
  .badge {
    position: relative;
    top: -1px;
  }
}
.btn-mini {
  .label,
  .badge {
    top: 0;
  }
}
jui/less/code.less000064400000002402152177723720010116 0ustar00//
// Code (inline and blocK)
// --------------------------------------------------


// Inline and block code styles
code,
pre {
  padding: 0 3px 2px;
  #font > #family > .monospace;
  font-size: @baseFontSize - 2;
  color: @grayDark;
  .border-radius(3px);
}

// Inline code
code {
  padding: 2px 4px;
  color: #d14;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
  white-space: nowrap;
}

// Blocks of code
pre {
  display: block;
  padding: (@baseLineHeight - 1) / 2;
  margin: 0 0 @baseLineHeight / 2;
  font-size: @baseFontSize - 1; // 14px to 13px
  line-height: @baseLineHeight;
  word-break: break-all;
  word-wrap: break-word;
  white-space: pre;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #ccc; // fallback for IE7-8
  border: 1px solid rgba(0,0,0,.15);
  .border-radius(@baseBorderRadius);

  // Make prettyprint styles more spaced out for readability
  &.prettyprint {
    margin-bottom: @baseLineHeight;
  }

  // Account for some code outputs that place code tags in pre tags
  code {
    padding: 0;
    color: inherit;
    white-space: pre;
    white-space: pre-wrap;
    background-color: transparent;
    border: 0;
  }
}

// Enable scrollable blocks of code
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}jui/less/responsive-767px-max.less000064400000010132152177723720013054 0ustar00//
// Responsive: Landscape phone to desktop/tablet
// --------------------------------------------------


@media (max-width: 767px) {

  // Padding to set content in a bit
  body {
    padding-left: 20px;
    padding-right: 20px;
  }
  // Negative indent the now static "fixed" navbar
  .navbar-fixed-top,
  .navbar-fixed-bottom,
  .navbar-static-top {
    margin-left: -20px;
    margin-right: -20px;
  }
  // Remove padding on container given explicit padding set on body
  .container-fluid {
    padding: 0;
  }

  // TYPOGRAPHY
  // ----------
  // Reset horizontal dl
  .dl-horizontal {
    dt {
      float: none;
      clear: none;
      width: auto;
      text-align: left;
    }
    dd {
      margin-left: 0;
    }
  }

  // MENU SEPARATOR
  // --------------
  // Reset background
  .dropdown-menu .menuitem-group {
    background-color: #10223e;
    color: #eee;
  }
 
  // GRID & CONTAINERS
  // -----------------
  // Remove width from containers
  .container {
    width: auto;
  }
  // Fluid rows
  .row-fluid {
    width: 100%;
  }
  // Undo negative margin on rows and thumbnails
  .row,
  .thumbnails {
    margin-left: 0;
  }
  .thumbnails > li {
    float: none;
    margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present
  }
  // Make all grid-sized elements block level again
  [class*="span"],
  .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing
  .row-fluid [class*="span"] {
    float: none;
    display: block;
    width: 100%;
    margin-left: 0;
    .box-sizing(border-box);
  }
  .span12,
  .row-fluid .span12 {
    width: 100%;
    .box-sizing(border-box);
  }
  .row-fluid [class*="offset"]:first-child {
    margin-left: 0;
  }

  // FORM FIELDS
  // -----------
  // Make span* classes full width
  .input-large,
  .input-xlarge,
  .input-xxlarge,
  input[class*="span"],
  select[class*="span"],
  textarea[class*="span"],
  .uneditable-input {
    .input-block-level();
  }
  // But don't let it screw up prepend/append inputs
  .input-prepend input,
  .input-append input,
  .input-prepend input[class*="span"],
  .input-append input[class*="span"] {
    display: inline-block; // redeclare so they don't wrap to new lines
  }
  .controls-row [class*="span"] + [class*="span"] {
    margin-left: 0;
  }

  // Modals
// /* >>> JUI >>> */
// .modal REMOVED
// /* <<< JUI <<< */

}



// UP TO LANDSCAPE PHONE
// ---------------------

@media (max-width: 480px) {

  // Smooth out the collapsing/expanding nav
  .nav-collapse {
    -webkit-transform: translate3d(0, 0, 0); // activate the GPU
  }

  // Block level the page header small tag for readability
  .page-header h1 small {
    display: block;
    line-height: @baseLineHeight;
  }

  // Update checkboxes for iOS
  input[type="checkbox"],
  input[type="radio"] {
    border: 1px solid #ccc;
  }

  // Remove the horizontal form styles
  .form-horizontal {
    .control-label {
      float: none;
      width: auto;
      padding-top: 0;
      text-align: left;
    }
    // Move over all input controls and content
    .controls {
      margin-left: 0;
    }
    // Move the options list down to align with labels
    .control-list {
      padding-top: 0; // has to be padding because margin collaspes
    }
    // Move over buttons in .form-actions to align with .controls
    .form-actions {
      padding-left: 10px;
      padding-right: 10px;
    }
  }

  // Gracefully displays the filter-search fields and buttons
  .tag-category input#filter-search,
  .newsfeed-category input#filter-search {
    width: auto;
    margin-bottom: @baseLineHeight / 2;
  }
  .category-list input#filter-search {
    width: auto;
  }

  // Medias
  // Reset float and spacing to stack
  .media .pull-left,
  .media .pull-right  {
    float: none;
    display: block;
    margin-bottom: 10px;
  }
  // Remove side margins since we stack instead of indent
  .media-object {
    margin-right: 0;
    margin-left: 0;
  }

  // Modals
// > Joomla JUI
// .modal REMOVED
// < Joomla JUI

  .modal-header .close {
    padding: 10px;
    margin: -10px;
  }

  // Carousel
  .carousel-caption {
    position: static;
  }

}
jui/less/scaffolding.less000064400000001565152177723720011474 0ustar00//
// Scaffolding
// --------------------------------------------------


// Body reset
// -------------------------

body {
  margin: 0;
  font-family: @baseFontFamily;
  font-size: @baseFontSize;
  line-height: @baseLineHeight;
  color: @textColor;
  background-color: @bodyBackground;
}


// Links
// -------------------------

a {
  color: @linkColor;
  text-decoration: none;
}
a:hover,
a:focus {
  color: @linkColorHover;
  text-decoration: underline;
}


// Images
// -------------------------

// Rounded corners
.img-rounded {
  .border-radius(6px);
}

// Add polaroid-esque trim
.img-polaroid {
  padding: 4px;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0,0,0,.2);
  .box-shadow(0 1px 3px rgba(0,0,0,.1));
}

// Perfect circle
.img-circle {
  .border-radius(500px); // crank the border-radius so it works with most reasonably sized images
}
jui/less/pagination.less000064400000005166152177723720011347 0ustar00//
// Pagination (multiple pages)
// --------------------------------------------------

// Space out pagination from surrounding content
.pagination {
  margin: @baseLineHeight 0;
}

.pagination ul {
  // Allow for text-based alignment
  display: inline-block;
  .ie7-inline-block();
  // Reset default ul styles
  margin-left: 0;
  margin-bottom: 0;
  // Visuals
  .border-radius(@baseBorderRadius);
  .box-shadow(0 1px 2px rgba(0,0,0,.05));
}
.pagination ul > li {
  display: inline; // Remove list-style and block-level defaults
}
.pagination ul > li > a,
.pagination ul > li > span {
  float: left; // Collapse white-space
  padding: 4px 12px;
  line-height: @baseLineHeight;
  text-decoration: none;
  background-color: @paginationBackground;
  border: 1px solid @paginationBorder;
  border-left-width: 0;
}
.pagination ul > li > a:hover,
.pagination ul > li > a:focus,
.pagination ul > .active > a,
.pagination ul > .active > span {
  background-color: @paginationActiveBackground;
}
.pagination ul > .active > a,
.pagination ul > .active > span {
  color: @grayLight;
  cursor: default;
}
.pagination ul > .disabled > span,
.pagination ul > .disabled > a,
.pagination ul > .disabled > a:hover,
.pagination ul > .disabled > a:focus {
  color: @grayLight;
  background-color: transparent;
  cursor: default;
}
.pagination ul > li:first-child > a,
.pagination ul > li:first-child > span {
  border-left-width: 1px;
  .border-left-radius(@baseBorderRadius);
}
.pagination ul > li:last-child > a,
.pagination ul > li:last-child > span {
  .border-right-radius(@baseBorderRadius);
}


// Alignment
// --------------------------------------------------

.pagination-centered {
  text-align: center;
}
.pagination-right {
  text-align: right;
}


// Sizing
// --------------------------------------------------

// Large
.pagination-large {
  ul > li > a,
  ul > li > span {
    padding: @paddingLarge;
    font-size: @fontSizeLarge;
  }
  ul > li:first-child > a,
  ul > li:first-child > span {
    .border-left-radius(@borderRadiusLarge);
  }
  ul > li:last-child > a,
  ul > li:last-child > span {
    .border-right-radius(@borderRadiusLarge);
  }
}

// Small and mini
.pagination-mini,
.pagination-small {
  ul > li:first-child > a,
  ul > li:first-child > span {
    .border-left-radius(@borderRadiusSmall);
  }
  ul > li:last-child > a,
  ul > li:last-child > span {
    .border-right-radius(@borderRadiusSmall);
  }
}

// Small
.pagination-small {
  ul > li > a,
  ul > li > span {
    padding: @paddingSmall;
    font-size: @fontSizeSmall;
  }
}
// Mini
.pagination-mini {
  ul > li > a,
  ul > li > span {
    padding: @paddingMini;
    font-size: @fontSizeMini;
  }
}
jui/less/wells.less000064400000001050152177723720010330 0ustar00//
// Wells
// --------------------------------------------------


// Base class
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: @wellBackground;
  border: 1px solid darken(@wellBackground, 7%);
  .border-radius(@baseBorderRadius);
  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
  blockquote {
    border-color: #ddd;
    border-color: rgba(0,0,0,.15);
  }
}

// Sizes
.well-large {
  padding: 24px;
  .border-radius(@borderRadiusLarge);
}
.well-small {
  padding: 9px;
  .border-radius(@borderRadiusSmall);
}
jui/less/responsive-utilities.less000064400000003102152177723720013410 0ustar00//
// Responsive: Utility classes
// --------------------------------------------------


// IE10 Metro responsive
// Required for Windows 8 Metro split-screen snapping with IE10
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport{
  width: device-width;
}

// Hide from screenreaders and browsers
// Credit: HTML5 Boilerplate
.hidden {
  display: none;
  visibility: hidden;
}

// Visibility utilities

// For desktops
.visible-phone     { display: none !important; }
.visible-tablet    { display: none !important; }
.hidden-phone      { }
.hidden-tablet     { }
.hidden-desktop    { display: none !important; }
.visible-desktop   { display: inherit !important; }

// Tablets & small desktops only
@media (min-width: 768px) and (max-width: 979px) {
  // Hide everything else
  .hidden-desktop    { display: inherit !important; }
  .visible-desktop   { display: none !important ; }
  // Show
  .visible-tablet    { display: inherit !important; }
  // Hide
  .hidden-tablet     { display: none !important; }
}

// Phones only
@media (max-width: 767px) {
  // Hide everything else
  .hidden-desktop    { display: inherit !important; }
  .visible-desktop   { display: none !important; }
  // Show
  .visible-phone     { display: inherit !important; } // Use inherit to restore previous behavior
  // Hide
  .hidden-phone      { display: none !important; }
}

// Print utilities
.visible-print    { display: none !important; }
.hidden-print     { }

@media print {
  .visible-print  { display: inherit !important; }
  .hidden-print   { display: none !important; }
}
jui/less/reset.less000064400000010170152177723720010327 0ustar00//
// Reset CSS
// Adapted from http://github.com/necolas/normalize.css
// --------------------------------------------------


// Display in IE6-9 and FF3
// -------------------------

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block;
}

// Display block in IE6-9 and FF3
// -------------------------

audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}

// Prevents modern browsers from displaying 'audio' without controls
// -------------------------

audio:not([controls]) {
    display: none;
}

// Base settings
// -------------------------

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}
// Focus states
a:focus {
  .tab-focus();
}
// Hover & Active
a:hover,
a:active {
  outline: 0;
}

// Prevents sub and sup affecting line-height in all browsers
// -------------------------

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}

// Img border in a's and image quality
// -------------------------

img {
  /* Responsive images (ensure images don't scale beyond their parents) */
  max-width: 100%; /* Part 1: Set a maxium relative to the parent */
  width: auto\9; /* IE7-8 need help adjusting responsive images */
  height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */

  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
}

// Prevent max-width from affecting Google Maps
#map_canvas img,
.google-maps img,
.gm-style img {
  max-width: none;
}

// Forms
// -------------------------

// Font size in all browsers, margin changes, misc consistency
button,
input,
select,
textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle;
}
button,
input {
  *overflow: visible; // Inner spacing ie IE6/7
  line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
}
button::-moz-focus-inner,
input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
  padding: 0;
  border: 0;
}
button,
html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
}
label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
}
input[type="search"] { // Appearance in Safari/Chrome
  .box-sizing(content-box);
  -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
}
textarea {
  overflow: auto; // Remove vertical scrollbar in IE6-9
  vertical-align: top; // Readability and alignment cross-browser
}


// Printing
// -------------------------
// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css

@media print {

  * {
    text-shadow: none !important;
    color: #000 !important; // Black prints faster: h5bp.com/s
    background: transparent !important;
    box-shadow: none !important;
  }

  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  abbr[title]:after {
    content: " (" attr(title) ")";
  }

  // Don't show links for images, or javascript/internal links
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group; // h5bp.com/t
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }

  @page {
    margin: 0.5cm;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }
}
jui/less/mixins.less000064400000055521152177723720010525 0ustar00//
// Mixins
// --------------------------------------------------


// UTILITY MIXINS
// --------------------------------------------------

// Clearfix
// --------
// For clearing floats like a boss h5bp.com/q
.clearfix {
  *zoom: 1;
  &:before,
  &:after {
    display: table;
    content: "";
    // Fixes Opera/contenteditable bug:
    // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
    line-height: 0;
  }
  &:after {
    clear: both;
  }
}

// Webkit-style focus
// ------------------
.tab-focus() {
  // Default
  outline: thin dotted #333;
  // Webkit
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

// Center-align a block level element
// ----------------------------------
.center-block() {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

// IE7 inline-block
// ----------------
.ie7-inline-block() {
  *display: inline; /* IE7 inline-block hack */
  *zoom: 1;
}

// IE7 likes to collapse whitespace on either side of the inline-block elements.
// Ems because we're attempting to match the width of a space character. Left
// version is for form buttons, which typically come after other elements, and
// right version is for icons, which come before. Applying both is ok, but it will
// mean that space between those elements will be .6em (~2 space characters) in IE7,
// instead of the 1 space in other browsers.
.ie7-restore-left-whitespace() {
  *margin-left: .3em;

  &:first-child {
    *margin-left: 0;
  }
}

.ie7-restore-right-whitespace() {
  *margin-right: .3em;
}

// Sizing shortcuts
// -------------------------
.size(@height, @width) {
  width: @width;
  height: @height;
}
.square(@size) {
  .size(@size, @size);
}

// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
  &:-moz-placeholder {
    color: @color;
  }
  &:-ms-input-placeholder {
    color: @color;
  }
  &::-webkit-input-placeholder {
    color: @color;
  }
}

// Text overflow
// -------------------------
// Requires inline-block or block for proper styling
.text-overflow() {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

// CSS image replacement
// -------------------------
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}


// FONTS
// --------------------------------------------------

#font {
  #family {
    .serif() {
      font-family: @serifFontFamily;
    }
    .sans-serif() {
      font-family: @sansFontFamily;
    }
    .monospace() {
      font-family: @monoFontFamily;
    }
  }
  .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
    font-size: @size;
    font-weight: @weight;
    line-height: @lineHeight;
  }
  .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
    #font > #family > .serif;
    #font > .shorthand(@size, @weight, @lineHeight);
  }
  .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
    #font > #family > .sans-serif;
    #font > .shorthand(@size, @weight, @lineHeight);
  }
  .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
    #font > #family > .monospace;
    #font > .shorthand(@size, @weight, @lineHeight);
  }
}


// FORMS
// --------------------------------------------------

// Block level inputs
.input-block-level {
  display: block;
  width: 100%;
  min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
  .box-sizing(border-box); // Makes inputs behave like true block-level elements
}



// Mixin for form field states
.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
  // Set the text color
  .control-label,
  .help-block,
  .help-inline {
    color: @textColor;
  }
  // Style inputs accordingly
  .checkbox,
  .radio,
  input,
  select,
  textarea {
    color: @textColor;
  }
  input,
  select,
  textarea {
    border-color: @borderColor;
    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
    &:focus {
      border-color: darken(@borderColor, 10%);
      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);
      .box-shadow(@shadow);
    }
  }
  // Give a small background color for input-prepend/-append
  .input-prepend .add-on,
  .input-append .add-on {
    color: @textColor;
    background-color: @backgroundColor;
    border-color: @textColor;
  }
}



// CSS3 PROPERTIES
// --------------------------------------------------

// Border Radius
.border-radius(@radius) {
  -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

// Single Corner Border Radius
.border-top-left-radius(@radius) {
  -webkit-border-top-left-radius: @radius;
      -moz-border-radius-topleft: @radius;
          border-top-left-radius: @radius;
}
.border-top-right-radius(@radius) {
  -webkit-border-top-right-radius: @radius;
      -moz-border-radius-topright: @radius;
          border-top-right-radius: @radius;
}
.border-bottom-right-radius(@radius) {
  -webkit-border-bottom-right-radius: @radius;
      -moz-border-radius-bottomright: @radius;
          border-bottom-right-radius: @radius;
}
.border-bottom-left-radius(@radius) {
  -webkit-border-bottom-left-radius: @radius;
      -moz-border-radius-bottomleft: @radius;
          border-bottom-left-radius: @radius;
}

// Single Side Border Radius
.border-top-radius(@radius) {
  .border-top-right-radius(@radius);
  .border-top-left-radius(@radius);
}
.border-right-radius(@radius) {
  .border-top-right-radius(@radius);
  .border-bottom-right-radius(@radius);
}
.border-bottom-radius(@radius) {
  .border-bottom-right-radius(@radius);
  .border-bottom-left-radius(@radius);
}
.border-left-radius(@radius) {
  .border-top-left-radius(@radius);
  .border-bottom-left-radius(@radius);
}

// Drop shadows
.box-shadow(@shadow) {
  -webkit-box-shadow: @shadow;
     -moz-box-shadow: @shadow;
          box-shadow: @shadow;
}

// Transitions
.transition(@transition) {
  -webkit-transition: @transition;
     -moz-transition: @transition;
       -o-transition: @transition;
          transition: @transition;
}
.transition-delay(@transition-delay) {
  -webkit-transition-delay: @transition-delay;
     -moz-transition-delay: @transition-delay;
       -o-transition-delay: @transition-delay;
          transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
  -webkit-transition-duration: @transition-duration;
     -moz-transition-duration: @transition-duration;
       -o-transition-duration: @transition-duration;
          transition-duration: @transition-duration;
}

// Transformations
.rotate(@degrees) {
  -webkit-transform: rotate(@degrees);
     -moz-transform: rotate(@degrees);
      -ms-transform: rotate(@degrees);
       -o-transform: rotate(@degrees);
          transform: rotate(@degrees);
}
.scale(@ratio) {
  -webkit-transform: scale(@ratio);
     -moz-transform: scale(@ratio);
      -ms-transform: scale(@ratio);
       -o-transform: scale(@ratio);
          transform: scale(@ratio);
}
.translate(@x, @y) {
  -webkit-transform: translate(@x, @y);
     -moz-transform: translate(@x, @y);
      -ms-transform: translate(@x, @y);
       -o-transform: translate(@x, @y);
          transform: translate(@x, @y);
}
.skew(@x, @y) {
  -webkit-transform: skew(@x, @y);
     -moz-transform: skew(@x, @y);
      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
       -o-transform: skew(@x, @y);
          transform: skew(@x, @y);
  -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
}
.translate3d(@x, @y, @z) {
  -webkit-transform: translate3d(@x, @y, @z);
     -moz-transform: translate3d(@x, @y, @z);
       -o-transform: translate3d(@x, @y, @z);
          transform: translate3d(@x, @y, @z);
}

// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden
// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
.backface-visibility(@visibility){
	-webkit-backface-visibility: @visibility;
	   -moz-backface-visibility: @visibility;
	        backface-visibility: @visibility;
}

// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
.background-clip(@clip) {
  -webkit-background-clip: @clip;
     -moz-background-clip: @clip;
          background-clip: @clip;
}

// Background sizing
.background-size(@size) {
  -webkit-background-size: @size;
     -moz-background-size: @size;
       -o-background-size: @size;
          background-size: @size;
}


// Box sizing
.box-sizing(@boxmodel) {
  -webkit-box-sizing: @boxmodel;
     -moz-box-sizing: @boxmodel;
          box-sizing: @boxmodel;
}

// User select
// For selecting text on the page
.user-select(@select) {
  -webkit-user-select: @select;
     -moz-user-select: @select;
      -ms-user-select: @select;
       -o-user-select: @select;
          user-select: @select;
}

// Resize anything
.resizable(@direction) {
  resize: @direction; // Options: horizontal, vertical, both
  overflow: auto; // Safari fix
}

// CSS3 Content Columns
.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
  -webkit-column-count: @columnCount;
     -moz-column-count: @columnCount;
          column-count: @columnCount;
  -webkit-column-gap: @columnGap;
     -moz-column-gap: @columnGap;
          column-gap: @columnGap;
}

// Optional hyphenation
.hyphens(@mode: auto) {
  word-wrap: break-word;
  -webkit-hyphens: @mode;
     -moz-hyphens: @mode;
      -ms-hyphens: @mode;
       -o-hyphens: @mode;
          hyphens: @mode;
}

// Opacity
.opacity(@opacity) {
  opacity: @opacity / 100;
  filter: ~"alpha(opacity=@{opacity})";
}



// BACKGROUNDS
// --------------------------------------------------

// Add an alphatransparency value to any background or border color (via Elyse Holladay)
#translucent {
  .background(@color: @white, @alpha: 1) {
    background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
  }
  .border(@color: @white, @alpha: 1) {
    border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
    .background-clip(padding-box);
  }
}

// Gradient Bar Colors for buttons and alerts
.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
  color: @textColor;
  text-shadow: @textShadow;
  #gradient > .vertical(@primaryColor, @secondaryColor);
  border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
  // No idea why this is here, as it makes the border grey instead of the given colors
  // border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
}

// Gradients
#gradient {
  .horizontal(@startColor: #555, @endColor: #333) {
    background-color: @endColor;
    background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
    background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
    background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
    background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
    background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
    background-repeat: repeat-x;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down
  }
  .vertical(@startColor: #555, @endColor: #333) {
    background-color: mix(@startColor, @endColor, 60%);
    background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
    background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
    background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
    background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
    background-repeat: repeat-x;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down
  }
  .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
    background-color: @endColor;
    background-repeat: repeat-x;
    background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
    background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
    background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
    background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
  }
  .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
    background-color: mix(@midColor, @endColor, 80%);
    background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
    background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
    background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
    background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
    background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);
    background-repeat: no-repeat;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
  }

  .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
    background-color: mix(@midColor, @endColor, 80%);
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
    background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
    background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
    background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
    background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
    background-repeat: no-repeat;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
  }
  .radial(@innerColor: #555, @outerColor: #333) {
    background-color: @outerColor;
    background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
    background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
    background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
    background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
    // > Joomla JUI
    /* Joomla JUI NOTE: makes radial gradient IE 10+, also confirmed in Bootstrap, https://github.com/twbs/bootstrap/issues/7462 */
    background-image: radial-gradient(circle, @innerColor, @outerColor);
    // < Joomla JUI
    background-repeat: no-repeat;
  }
  .striped(@color: #555, @angle: 45deg) {
    background-color: @color;
    background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
    background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
    background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
    background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
    background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
  }
}
// Reset filters for IE
.reset-filter() {
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}



// COMPONENT MIXINS
// --------------------------------------------------

// Horizontal dividers
// -------------------------
// Dividers (basically an hr) within dropdowns and nav lists
.nav-divider(@top: #e5e5e5, @bottom: @white) {
  // IE7 needs a set width since we gave a height. Restricting just
  // to IE7 to keep the 1px left/right space in other browsers.
  // It is unclear where IE is getting the extra space that we need
  // to negative-margin away, but so it goes.
  *width: 100%;
  height: 1px;
  margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: @top;
  border-bottom: 1px solid @bottom;
}

// Button backgrounds
// ------------------
.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
  // gradientBar will set the background to a pleasing blend of these, to support IE<=9
  .gradientBar(@startColor, @endColor, @textColor, @textShadow);
  *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  .reset-filter();

  // in these cases the gradient won't cover the background, so we override
  &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
    color: @textColor;
    background-color: @endColor;
    *background-color: darken(@endColor, 5%);
  }

  // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
  &:active,
  &.active {
    background-color: darken(@endColor, 10%) e("\9");
  }
}

// Navbar vertical align
// -------------------------
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
.navbarVerticalAlign(@elementHeight) {
  margin-top: (@navbarHeight - @elementHeight) / 2;
}



// Grid System
// -----------

// Centered container element
.container-fixed() {
  margin-right: auto;
  margin-left: auto;
  .clearfix();
}

// Table columns
.tableColumns(@columnSpan: 1) {
  float: none; // undo default grid column styles
  width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
  margin-left: 0; // undo default grid column styles
}

// Make a Grid
// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
.makeRow() {
  margin-left: @gridGutterWidth * -1;
  .clearfix();
}
.makeColumn(@columns: 1, @offset: 0) {
  float: left;
  margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
  width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
}

// The Grid
#grid {

  .core (@gridColumnWidth, @gridGutterWidth) {

    .spanX (@index) when (@index > 0) {
      .span@{index} { .span(@index); }
      .spanX(@index - 1);
    }
    .spanX (0) {}

    .offsetX (@index) when (@index > 0) {
      .offset@{index} { .offset(@index); }
      .offsetX(@index - 1);
    }
    .offsetX (0) {}

    .offset (@columns) {
      margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
    }

    .span (@columns) {
      width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
    }

    .row {
      margin-left: @gridGutterWidth * -1;
      .clearfix();
    }

    [class*="span"] {
      float: left;
      min-height: 1px; // prevent collapsing columns
      margin-left: @gridGutterWidth;
    }

    // Set the container width, and override it for fixed navbars in media queries
    .container,
    .navbar-static-top .container,
    .navbar-fixed-top .container,
    .navbar-fixed-bottom .container { .span(@gridColumns); }

    // generate .spanX and .offsetX
    .spanX (@gridColumns);
    .offsetX (@gridColumns);

  }

  .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {

    .spanX (@index) when (@index > 0) {
      .span@{index} { .span(@index); }
      .spanX(@index - 1);
    }
    .spanX (0) {}

    .offsetX (@index) when (@index > 0) {
      .offset@{index} { .offset(@index); }
      .offset@{index}:first-child { .offsetFirstChild(@index); }
      .offsetX(@index - 1);
    }
    .offsetX (0) {}

    .offset (@columns) {
      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);
  	  *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);
    }

    .offsetFirstChild (@columns) {
      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);
      *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
    }

    .span (@columns) {
      width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
      *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
    }

    .row-fluid {
      width: 100%;
      .clearfix();
      [class*="span"] {
        .input-block-level();
        float: left;
        margin-left: @fluidGridGutterWidth;
        *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
      }
      [class*="span"]:first-child {
        margin-left: 0;
      }

      // Space grid-sized controls properly if multiple per line
      .controls-row [class*="span"] + [class*="span"] {
        margin-left: @fluidGridGutterWidth;
      }

      // generate .spanX and .offsetX
      .spanX (@gridColumns);
      .offsetX (@gridColumns);
    }

  }

  .input(@gridColumnWidth, @gridGutterWidth) {

    .spanX (@index) when (@index > 0) {
      input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }
      .spanX(@index - 1);
    }
    .spanX (0) {}

    .span(@columns) {
      width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;
    }

    input,
    textarea,
    .uneditable-input {
      margin-left: 0; // override margin-left from core grid system
    }

    // Space grid-sized controls properly if multiple per line
    .controls-row [class*="span"] + [class*="span"] {
      margin-left: @gridGutterWidth;
    }

    // generate .spanX
    .spanX (@gridColumns);

  }
}
jui/less/popovers.less000064400000006005152177723720011064 0ustar00//
// Popovers
// --------------------------------------------------


.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: @zindexPopover;
  display: none;
  max-width: 276px;
  padding: 1px;
  text-align: left; // Reset given new insertion method
  background-color: @popoverBackground;
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding;
          background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0,0,0,.2);
  .border-radius(6px);
  .box-shadow(0 5px 10px rgba(0,0,0,.2));

  // Overrides for proper insertion
  white-space: normal;

  // Offset the popover to account for the popover arrow
  &.top     { margin-top: -10px; }
  &.right   { margin-left: 10px; }
  &.bottom  { margin-top: 10px; }
  &.left    { margin-left: -10px; }
}

.popover-title {
  margin: 0; // reset heading margin
  padding: 8px 14px;
  font-size: 14px;
  font-weight: normal;
  line-height: 18px;
  background-color: @popoverTitleBackground;
  border-bottom: 1px solid darken(@popoverTitleBackground, 5%);
  .border-radius(5px 5px 0 0);

  &:empty {
    display: none;
  }
}

.popover-content {
  padding: 9px 14px;
}

// Arrows
//
// .arrow is outer, .arrow:after is inner

.popover .arrow,
.popover .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover .arrow {
  border-width: @popoverArrowOuterWidth;
}
.popover .arrow:after {
  border-width: @popoverArrowWidth;
  content: "";
}

.popover {
  &.top .arrow {
    left: 50%;
    margin-left: -@popoverArrowOuterWidth;
    border-bottom-width: 0;
    border-top-color: #999; // IE8 fallback
    border-top-color: @popoverArrowOuterColor;
    bottom: -@popoverArrowOuterWidth;
    &:after {
      bottom: 1px;
      margin-left: -@popoverArrowWidth;
      border-bottom-width: 0;
      border-top-color: @popoverArrowColor;
    }
  }
  &.right .arrow {
    top: 50%;
    left: -@popoverArrowOuterWidth;
    margin-top: -@popoverArrowOuterWidth;
    border-left-width: 0;
    border-right-color: #999; // IE8 fallback
    border-right-color: @popoverArrowOuterColor;
    &:after {
      left: 1px;
      bottom: -@popoverArrowWidth;
      border-left-width: 0;
      border-right-color: @popoverArrowColor;
    }
  }
  &.bottom .arrow {
    left: 50%;
    margin-left: -@popoverArrowOuterWidth;
    border-top-width: 0;
    border-bottom-color: #999; // IE8 fallback
    border-bottom-color: @popoverArrowOuterColor;
    top: -@popoverArrowOuterWidth;
    &:after {
      top: 1px;
      margin-left: -@popoverArrowWidth;
      border-top-width: 0;
      border-bottom-color: @popoverArrowColor;
    }
  }

  &.left .arrow {
    top: 50%;
    right: -@popoverArrowOuterWidth;
    margin-top: -@popoverArrowOuterWidth;
    border-right-width: 0;
    border-left-color: #999; // IE8 fallback
    border-left-color: @popoverArrowOuterColor;
    &:after {
      right: 1px;
      border-right-width: 0;
      border-left-color: @popoverArrowColor;
      bottom: -@popoverArrowWidth;
    }
  }

}
jui/less/close.less000064400000001605152177723720010315 0ustar00//
// Close icons
// --------------------------------------------------


.close {
  float: right;
  font-size: 20px;
  font-weight: bold;
  line-height: @baseLineHeight;
  color: @black;
  text-shadow: 0 1px 0 rgba(255,255,255,1);
  .opacity(20);
  &:hover,
  &:focus {
    color: @black;
    text-decoration: none;
    cursor: pointer;
    .opacity(40);
  }
}

// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
button.close {
  padding: 3;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}

.alert-options {
  float: right;
  line-height: @baseLineHeight;
  color: @black;
  text-shadow: 0 1px 0 rgba(255,255,255,1);
  .opacity(20);
  &:hover,
  &:focus {
    color: @black;
    text-decoration: none;
    cursor: pointer;
    .opacity(40);
  }
}jui/less/navs.less000064400000017743152177723720010171 0ustar00//
// Navs
// --------------------------------------------------


// BASE CLASS
// ----------

.nav {
  margin-left: 0;
  margin-bottom: @baseLineHeight;
  list-style: none;
}

// Make links block level
.nav > li > a {
  display: block;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: @grayLighter;
}

// Prevent IE8 from misplacing imgs
// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
.nav > li > a > img {
  max-width: none;
}

// Redeclare pull classes because of specifity
.nav > .pull-right {
  float: right;
}

// Nav headers (for dropdowns and lists)
.nav-header {
  display: block;
  padding: 3px 15px;
  font-size: 11px;
  font-weight: bold;
  line-height: @baseLineHeight;
  color: @grayLight;
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
  text-transform: uppercase;
}
// Space them out when they follow another list item (link)
.nav li + .nav-header {
  margin-top: 9px;
}



// NAV LIST
// --------

.nav-list {
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 0;
}
.nav-list > li > a,
.nav-list .nav-header {
  margin-left:  -15px;
  margin-right: -15px;
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
.nav-list > li > a {
  padding: 3px 15px;
}
.nav-list > .active > a,
.nav-list > .active > a:hover,
.nav-list > .active > a:focus {
  color: @white;
  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
  background-color: @linkColor;
}
.nav-list [class^="icon-"],
.nav-list [class*=" icon-"] {
  margin-right: 2px;
}
// Dividers (basically an hr) within the dropdown
.nav-list .divider {
  .nav-divider();
}



// TABS AND PILLS
// -------------

// Common styles
.nav-tabs,
.nav-pills {
  .clearfix();
}
.nav-tabs > li,
.nav-pills > li {
  float: left;
}
.nav-tabs > li > a,
.nav-pills > li > a {
  padding-right: 12px;
  padding-left: 12px;
  margin-right: 2px;
  line-height: 14px; // keeps the overall height an even number
}

// TABS
// ----

// Give the tabs something to sit on
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
// Make the list-items overlay the bottom border
.nav-tabs > li {
  margin-bottom: -1px;
}
// Actual tabs (as links)
.nav-tabs > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: @baseLineHeight;
  border: 1px solid transparent;
  .border-radius(4px 4px 0 0);
  &:hover,
  &:focus {
    border-color: @grayLighter @grayLighter #ddd;
  }
}
// Active state, and it's :hover/:focus to override normal :hover/:focus
.nav-tabs > .active > a,
.nav-tabs > .active > a:hover,
.nav-tabs > .active > a:focus {
  color: @gray;
  background-color: @bodyBackground;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}


// PILLS
// -----

// Links rendered as pills
.nav-pills > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  margin-top: 2px;
  margin-bottom: 2px;
  .border-radius(5px);
}

// Active state
.nav-pills > .active > a,
.nav-pills > .active > a:hover,
.nav-pills > .active > a:focus {
  color: @white;
  background-color: @linkColor;
}



// STACKED NAV
// -----------

// Stacked tabs and pills
.nav-stacked > li {
  float: none;
}
.nav-stacked > li > a {
  margin-right: 0; // no need for the gap between nav items
}

// Tabs
.nav-tabs.nav-stacked {
  border-bottom: 0;
}
.nav-tabs.nav-stacked > li > a {
  border: 1px solid #ddd;
  .border-radius(0);
}
.nav-tabs.nav-stacked > li:first-child > a {
  .border-top-radius(4px);
}
.nav-tabs.nav-stacked > li:last-child > a {
  .border-bottom-radius(4px);
}
.nav-tabs.nav-stacked > li > a:hover,
.nav-tabs.nav-stacked > li > a:focus {
  border-color: #ddd;
  z-index: 2;
}

// Pills
.nav-pills.nav-stacked > li > a {
  margin-bottom: 3px;
}
.nav-pills.nav-stacked > li:last-child > a {
  margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
}



// DROPDOWNS
// ---------

.nav-tabs .dropdown-menu {
  .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
}
.nav-pills .dropdown-menu {
  .border-radius(6px); // make rounded corners match the pills
}

// Default dropdown links
// -------------------------
// Make carets use linkColor to start
.nav .dropdown-toggle .caret {
  border-top-color: @linkColor;
  border-bottom-color: @linkColor;
  margin-top: 6px;
}
.nav .dropdown-toggle:hover .caret,
.nav .dropdown-toggle:focus .caret {
  border-top-color: @linkColorHover;
  border-bottom-color: @linkColorHover;
}
/* move down carets for tabs */
.nav-tabs .dropdown-toggle .caret {
  margin-top: 8px;
}

// Active dropdown links
// -------------------------
.nav .active .dropdown-toggle .caret {
  border-top-color: #fff;
  border-bottom-color: #fff;
}
.nav-tabs .active .dropdown-toggle .caret {
  border-top-color: @gray;
  border-bottom-color: @gray;
}

// Active:hover/:focus dropdown links
// -------------------------
.nav > .dropdown.active > a:hover,
.nav > .dropdown.active > a:focus {
  cursor: pointer;
}

// Open dropdowns
// -------------------------
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
.nav > li.dropdown.open.active > a:hover,
.nav > li.dropdown.open.active > a:focus {
  color: @white;
  background-color: @grayLight;
  border-color: @grayLight;
}
.nav li.dropdown.open .caret,
.nav li.dropdown.open.active .caret,
.nav li.dropdown.open a:hover .caret,
.nav li.dropdown.open a:focus .caret {
  border-top-color: @white;
  border-bottom-color: @white;
  .opacity(100);
}

// Dropdowns in stacked tabs
.tabs-stacked .open > a:hover,
.tabs-stacked .open > a:focus {
  border-color: @grayLight;
}



// TABBABLE
// --------


// COMMON STYLES
// -------------

// Clear any floats
.tabbable {
  .clearfix();
}
.tab-content {
  overflow: auto; // prevent content from running below tabs
}

// Remove border on bottom, left, right
.tabs-below > .nav-tabs,
.tabs-right > .nav-tabs,
.tabs-left > .nav-tabs {
  border-bottom: 0;
}

// Show/hide tabbable areas
.tab-content > .tab-pane,
.pill-content > .pill-pane {
  display: none;
}
.tab-content > .active,
.pill-content > .active {
  display: block;
}


// BOTTOM
// ------

.tabs-below > .nav-tabs {
  border-top: 1px solid #ddd;
}
.tabs-below > .nav-tabs > li {
  margin-top: -1px;
  margin-bottom: 0;
}
.tabs-below > .nav-tabs > li > a {
  .border-radius(0 0 4px 4px);
  &:hover,
  &:focus {
    border-bottom-color: transparent;
    border-top-color: #ddd;
  }
}
.tabs-below > .nav-tabs > .active > a,
.tabs-below > .nav-tabs > .active > a:hover,
.tabs-below > .nav-tabs > .active > a:focus {
  border-color: transparent #ddd #ddd #ddd;
}

// LEFT & RIGHT
// ------------

// Common styles
.tabs-left > .nav-tabs > li,
.tabs-right > .nav-tabs > li {
  float: none;
}
.tabs-left > .nav-tabs > li > a,
.tabs-right > .nav-tabs > li > a {
  min-width: 74px;
  margin-right: 0;
  margin-bottom: 3px;
}

// Tabs on the left
.tabs-left > .nav-tabs {
  float: left;
  margin-right: 19px;
  border-right: 1px solid #ddd;
}
.tabs-left > .nav-tabs > li > a {
  margin-right: -1px;
  .border-radius(4px 0 0 4px);
}
.tabs-left > .nav-tabs > li > a:hover,
.tabs-left > .nav-tabs > li > a:focus {
  border-color: @grayLighter #ddd @grayLighter @grayLighter;
}
.tabs-left > .nav-tabs .active > a,
.tabs-left > .nav-tabs .active > a:hover,
.tabs-left > .nav-tabs .active > a:focus {
  border-color: #ddd transparent #ddd #ddd;
  *border-right-color: @white;
}

// Tabs on the right
.tabs-right > .nav-tabs {
  float: right;
  margin-left: 19px;
  border-left: 1px solid #ddd;
}
.tabs-right > .nav-tabs > li > a {
  margin-left: -1px;
  .border-radius(0 4px 4px 0);
}
.tabs-right > .nav-tabs > li > a:hover,
.tabs-right > .nav-tabs > li > a:focus {
  border-color: @grayLighter @grayLighter @grayLighter #ddd;
}
.tabs-right > .nav-tabs .active > a,
.tabs-right > .nav-tabs .active > a:hover,
.tabs-right > .nav-tabs .active > a:focus {
  border-color: #ddd #ddd #ddd transparent;
  *border-left-color: @white;
}



// DISABLED STATES
// ---------------

// Gray out text
.nav > .disabled > a {
  color: @grayLight;
}
// Nuke hover/focus effects
.nav > .disabled > a:hover,
.nav > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  cursor: default;
}
jui/less/variables.less000064400000021665152177723720011170 0ustar00//
// Variables
// --------------------------------------------------


// Global values
// --------------------------------------------------


// Grays
// -------------------------
@black:                 #000;
@grayDarker:            #222;
@grayDark:              #333;
@gray:                  #555;
@grayLight:             #999;
@grayLighter:           #eee;
@white:                 #fff;


// Accent colors
// -------------------------
@blue:                  #049cdb;
@blueDark:              #0064cd;
@green:                 #46a546;
@red:                   #9d261d;
@yellow:                #ffc40d;
@orange:                #f89406;
@pink:                  #c3325f;
@purple:                #7a43b6;


// Scaffolding
// -------------------------
@bodyBackground:        @white;
@textColor:             @grayDark;


// Links
// -------------------------
@linkColor:             #08c;
@linkColorHover:        darken(@linkColor, 15%);


// Typography
// -------------------------
@sansFontFamily:        "Helvetica Neue", Helvetica, Arial, sans-serif;
@serifFontFamily:       Georgia, "Times New Roman", Times, serif;
@monoFontFamily:        Monaco, Menlo, Consolas, "Courier New", monospace;

@baseFontSize:          14px;
@baseFontFamily:        @sansFontFamily;
@baseLineHeight:        20px;
@altFontFamily:         @serifFontFamily;

@headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily
@headingsFontWeight:    bold;    // instead of browser default, bold
@headingsColor:         inherit; // empty to use BS default, @textColor


// Component sizing
// -------------------------
// Based on 14px font-size and 20px line-height

@fontSizeLarge:         @baseFontSize * 1.25; // ~18px
@fontSizeSmall:         @baseFontSize * 0.85; // ~12px
@fontSizeMini:          @baseFontSize * 0.75; // ~11px

@paddingLarge:          11px 19px; // 44px
@paddingSmall:          2px 10px;  // 26px
@paddingMini:           0 6px;   // 22px

@baseBorderRadius:      4px;
@borderRadiusLarge:     6px;
@borderRadiusSmall:     3px;


// Tables
// -------------------------
@tableBackground:                   transparent; // overall background-color
@tableBackgroundAccent:             #f9f9f9; // for striping
@tableBackgroundHover:              #f5f5f5; // for hover
@tableBorder:                       #ddd; // table and cell border

// Buttons
// -------------------------
@btnBackground:                     @white;
@btnBackgroundHighlight:            darken(@white, 10%);
@btnBorder:                         #ccc;

@btnPrimaryBackground:              @linkColor;
@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 20%);

@btnInfoBackground:                 #5bc0de;
@btnInfoBackgroundHighlight:        #2f96b4;

@btnSuccessBackground:              #62c462;
@btnSuccessBackgroundHighlight:     #51a351;

@btnWarningBackground:              lighten(@orange, 15%);
@btnWarningBackgroundHighlight:     @orange;

@btnDangerBackground:               #ee5f5b;
@btnDangerBackgroundHighlight:      #bd362f;

@btnInverseBackground:              #444;
@btnInverseBackgroundHighlight:     @grayDarker;


// Forms
// -------------------------
@inputBackground:               @white;
@inputBorder:                   #ccc;
@inputBorderRadius:             @baseBorderRadius;
@inputDisabledBackground:       @grayLighter;
@formActionsBackground:         #f5f5f5;
@inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border


// Dropdowns
// -------------------------
@dropdownBackground:            @white;
@dropdownBorder:                rgba(0,0,0,.2);
@dropdownDividerTop:            #e5e5e5;
@dropdownDividerBottom:         @white;

@dropdownLinkColor:             @grayDark;
@dropdownLinkColorHover:        @white;
@dropdownLinkColorActive:       @white;

@dropdownLinkBackgroundActive:  @linkColor;
@dropdownLinkBackgroundHover:   @dropdownLinkBackgroundActive;



// COMPONENT VARIABLES
// --------------------------------------------------


// Z-index master list
// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindexDropdown:          1000;
@zindexTooltip:           1030;
@zindexFixedNavbar:       1030;
@zindexModalBackdrop:     1040;
@zindexModal:             1050;
@zindexPopover:           1060;

// Sprite icons path
// -------------------------
@iconSpritePath:          "../img/glyphicons-halflings.png";
@iconWhiteSpritePath:     "../img/glyphicons-halflings-white.png";


// Input placeholder text color
// -------------------------
@placeholderText:         @grayLight;


// Hr border color
// -------------------------
@hrBorder:                @grayLighter;


// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset:       180px;


// Wells
// -------------------------
@wellBackground:                  #f5f5f5;


// Navbar
// -------------------------
@navbarCollapseWidth:             979px;
@navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;

@navbarHeight:                    40px;
@navbarBackgroundHighlight:       #ffffff;
@navbarBackground:                darken(@navbarBackgroundHighlight, 5%);
@navbarBorder:                    darken(@navbarBackground, 12%);

@navbarText:                      #777;
@navbarLinkColor:                 #777;
@navbarLinkColorHover:            @grayDark;
@navbarLinkColorActive:           @gray;
@navbarLinkBackgroundHover:       transparent;
@navbarLinkBackgroundActive:      darken(@navbarBackground, 5%);

@navbarBrandColor:                @navbarLinkColor;

// Inverted navbar
@navbarInverseBackground:                #111111;
@navbarInverseBackgroundHighlight:       #222222;
@navbarInverseBorder:                    #252525;

@navbarInverseText:                      @grayLight;
@navbarInverseLinkColor:                 @grayLight;
@navbarInverseLinkColorHover:            @white;
@navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;
@navbarInverseLinkBackgroundHover:       transparent;
@navbarInverseLinkBackgroundActive:      @navbarInverseBackground;

@navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus:     @white;
@navbarInverseSearchBorder:              @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor:    #ccc;

@navbarInverseBrandColor:                @navbarInverseLinkColor;


// Pagination
// -------------------------
@paginationBackground:                #fff;
@paginationBorder:                    #ddd;
@paginationActiveBackground:          #f5f5f5;


// Hero unit
// -------------------------
@heroUnitBackground:              @grayLighter;
@heroUnitHeadingColor:            inherit;
@heroUnitLeadColor:               inherit;


// Form states and alerts
// -------------------------
@warningText:             #c09853;
@warningBackground:       #fcf8e3;
@warningBorder:           darken(spin(@warningBackground, -10), 3%);

@errorText:               #b94a48;
@errorBackground:         #f2dede;
@errorBorder:             darken(spin(@errorBackground, -10), 3%);

@successText:             #468847;
@successBackground:       #dff0d8;
@successBorder:           darken(spin(@successBackground, -10), 5%);

@infoText:                #3a87ad;
@infoBackground:          #d9edf7;
@infoBorder:              darken(spin(@infoBackground, -10), 7%);


// Tooltips and popovers
// -------------------------
@tooltipColor:            #fff;
@tooltipBackground:       #000;
@tooltipArrowWidth:       5px;
@tooltipArrowColor:       @tooltipBackground;

@popoverBackground:       #fff;
@popoverArrowWidth:       10px;
@popoverArrowColor:       #fff;
@popoverTitleBackground:  darken(@popoverBackground, 3%);

// Special enhancement for popovers
@popoverArrowOuterWidth:  @popoverArrowWidth + 1;
@popoverArrowOuterColor:  rgba(0,0,0,.25);



// GRID
// --------------------------------------------------


// Default 940px grid
// -------------------------
@gridColumns:             12;
@gridColumnWidth:         60px;
@gridGutterWidth:         20px;
@gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));

// 1200px min
@gridColumnWidth1200:     70px;
@gridGutterWidth1200:     30px;
@gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));

// 768px-979px
@gridColumnWidth768:      42px;
@gridGutterWidth768:      20px;
@gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));


// Fluid grid
// -------------------------
@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);
@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);

// 1200px min
@fluidGridColumnWidth1200:     percentage(@gridColumnWidth1200/@gridRowWidth1200);
@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);

// 768px-979px
@fluidGridColumnWidth768:      percentage(@gridColumnWidth768/@gridRowWidth768);
@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);
jui/less/hero-unit.less000064400000001011152177723720011111 0ustar00//
// Hero unit
// --------------------------------------------------


.hero-unit {
  padding: 60px;
  margin-bottom: 30px;
  font-size: 18px;
  font-weight: 200;
  line-height: @baseLineHeight * 1.5;
  color: @heroUnitLeadColor;
  background-color: @heroUnitBackground;
  .border-radius(6px);
  h1 {
    margin-bottom: 0;
    font-size: 60px;
    line-height: 1;
    color: @heroUnitHeadingColor;
    letter-spacing: -1px;
  }
  li {
    line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less
  }
}
jui/less/thumbnails.less000064400000002250152177723720011353 0ustar00//
// Thumbnails
// --------------------------------------------------


// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files

// Make wrapper ul behave like the grid
.thumbnails {
  margin-left: -@gridGutterWidth;
  list-style: none;
  .clearfix();
}
// Fluid rows have no left margin
.row-fluid .thumbnails {
  margin-left: 0;
}

// Float li to make thumbnails appear in a row
.thumbnails > li {
  float: left; // Explicity set the float since we don't require .span* classes
  margin-bottom: @baseLineHeight;
  margin-left: @gridGutterWidth;
}

// The actual thumbnail (can be `a` or `div`)
.thumbnail {
  display: block;
  padding: 4px;
  line-height: @baseLineHeight;
  border: 1px solid #ddd;
  .border-radius(@baseBorderRadius);
  .box-shadow(0 1px 3px rgba(0,0,0,.055));
  .transition(all .2s ease-in-out);
}
// Add a hover/focus state for linked versions only
a.thumbnail:hover,
a.thumbnail:focus {
  border-color: @linkColor;
  .box-shadow(0 1px 4px rgba(0,105,214,.25));
}

// Images and captions
.thumbnail > img {
  display: block;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.thumbnail .caption {
  padding: 9px;
  color: @gray;
}
jui/less/responsive.less000064400000002055152177723720011405 0ustar00/*!
 * Bootstrap Responsive v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */


// Responsive.less
// For phone and tablet devices
// -------------------------------------------------------------


// REPEAT VARIABLES & MIXINS
// -------------------------
// Required since we compile the responsive stuff separately

@import "variables.less"; // Modify this for custom colors, font-sizes, etc
@import "mixins.less";


// RESPONSIVE CLASSES
// ------------------

@import "responsive-utilities.less";


// MEDIA QUERIES
// ------------------

// Large desktops
@import "responsive-1200px-min.less";

// Tablets to regular desktops
@import "responsive-768px-979px.less";

// Phones to portrait tablets and narrow desktops
@import "responsive-767px-max.less";


// RESPONSIVE NAVBAR
// ------------------

// From 979px and below, show a button to toggle navbar contents
@import "responsive-navbar.less";
jui/less/responsive-1200px-min.less000064400000001065152177723720013116 0ustar00//
// Responsive: Large desktop and up
// --------------------------------------------------


@media (min-width: 1200px) {

  // Fixed grid
  #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);

  // Fluid grid
  #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);

  // Input grid
  #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);

  // Thumbnails
  .thumbnails {
    margin-left: -@gridGutterWidth1200;
  }
  .thumbnails > li {
    margin-left: @gridGutterWidth1200;
  }
  .row-fluid .thumbnails {
    margin-left: 0;
  }

}
jui/less/sprites.less000064400000025117152177723720010705 0ustar00//
// Sprites
// --------------------------------------------------


// ICONS
// -----

// All icons receive the styles of the <i> tag with a base class
// of .i and are then given a unique class to add width, height,
// and background-position. Your resulting HTML will look like
// <span class="icon-inbox"></span>.

// For the white version of the icons, just add the .icon-white class:
// <span class="icon-inbox icon-white"></span>

[class^="icon-"],
[class*=" icon-"] {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: .25em;
	line-height: 14px;
	vertical-align: text-top;
	background-image: url("@{iconSpritePath}");
	background-position: 14px 14px;
	background-repeat: no-repeat;
	margin-top: 1px;
}

/* White icons with optional class, or on hover/focus/active states of certain elements */
.icon-white,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:focus > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > li > a:focus > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:focus > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"],
.dropdown-submenu:focus > a > [class*=" icon-"] {
  background-image: url("@{iconWhiteSpritePath}");
}

.icon-glass              { background-position: 0      0; }
.icon-music              { background-position: -24px  0; }
.icon-search             { background-position: -48px  0; }
.icon-envelope           { background-position: -72px  0; }
.icon-heart              { background-position: -96px  0; }
.icon-star               { background-position: -120px 0; }
.icon-star-empty         { background-position: -144px 0; }
.icon-user               { background-position: -168px 0; }
.icon-film               { background-position: -192px 0; }
.icon-th-large           { background-position: -216px 0; }
.icon-th                 { background-position: -240px 0; }
.icon-th-list            { background-position: -264px 0; }
.icon-ok                 { background-position: -288px 0; }
.icon-remove             { background-position: -312px 0; }
.icon-zoom-in            { background-position: -336px 0; }
.icon-zoom-out           { background-position: -360px 0; }
.icon-off                { background-position: -384px 0; }
.icon-signal             { background-position: -408px 0; }
.icon-cog                { background-position: -432px 0; }
.icon-trash              { background-position: -456px 0; }

.icon-home               { background-position: 0      -24px; }
.icon-file               { background-position: -24px  -24px; }
.icon-time               { background-position: -48px  -24px; }
.icon-road               { background-position: -72px  -24px; }
.icon-download-alt       { background-position: -96px  -24px; }
.icon-download           { background-position: -120px -24px; }
.icon-upload             { background-position: -144px -24px; }
.icon-inbox              { background-position: -168px -24px; }
.icon-play-circle        { background-position: -192px -24px; }
.icon-repeat             { background-position: -216px -24px; }
.icon-refresh            { background-position: -240px -24px; }
.icon-list-alt           { background-position: -264px -24px; }
.icon-lock               { background-position: -287px -24px; } // 1px off
.icon-flag               { background-position: -312px -24px; }
.icon-headphones         { background-position: -336px -24px; }
.icon-volume-off         { background-position: -360px -24px; }
.icon-volume-down        { background-position: -384px -24px; }
.icon-volume-up          { background-position: -408px -24px; }
.icon-qrcode             { background-position: -432px -24px; }
.icon-barcode            { background-position: -456px -24px; }

.icon-tag                { background-position: 0      -48px; }
.icon-tags               { background-position: -25px  -48px; } // 1px off
.icon-book               { background-position: -48px  -48px; }
.icon-bookmark           { background-position: -72px  -48px; }
.icon-print              { background-position: -96px  -48px; }
.icon-camera             { background-position: -120px -48px; }
.icon-font               { background-position: -144px -48px; }
.icon-bold               { background-position: -167px -48px; } // 1px off
.icon-italic             { background-position: -192px -48px; }
.icon-text-height        { background-position: -216px -48px; }
.icon-text-width         { background-position: -240px -48px; }
.icon-align-left         { background-position: -264px -48px; }
.icon-align-center       { background-position: -288px -48px; }
.icon-align-right        { background-position: -312px -48px; }
.icon-align-justify      { background-position: -336px -48px; }
.icon-list               { background-position: -360px -48px; }
.icon-indent-left        { background-position: -384px -48px; }
.icon-indent-right       { background-position: -408px -48px; }
.icon-facetime-video     { background-position: -432px -48px; }
.icon-picture            { background-position: -456px -48px; }

.icon-pencil             { background-position: 0      -72px; }
.icon-map-marker         { background-position: -24px  -72px; }
.icon-adjust             { background-position: -48px  -72px; }
.icon-tint               { background-position: -72px  -72px; }
.icon-edit               { background-position: -96px  -72px; }
.icon-share              { background-position: -120px -72px; }
.icon-check              { background-position: -144px -72px; }
.icon-move               { background-position: -168px -72px; }
.icon-step-backward      { background-position: -192px -72px; }
.icon-fast-backward      { background-position: -216px -72px; }
.icon-backward           { background-position: -240px -72px; }
.icon-play               { background-position: -264px -72px; }
.icon-pause              { background-position: -288px -72px; }
.icon-stop               { background-position: -312px -72px; }
.icon-forward            { background-position: -336px -72px; }
.icon-fast-forward       { background-position: -360px -72px; }
.icon-step-forward       { background-position: -384px -72px; }
.icon-eject              { background-position: -408px -72px; }
.icon-chevron-left       { background-position: -432px -72px; }
.icon-chevron-right      { background-position: -456px -72px; }

.icon-plus-sign          { background-position: 0      -96px; }
.icon-minus-sign         { background-position: -24px  -96px; }
.icon-remove-sign        { background-position: -48px  -96px; }
.icon-ok-sign            { background-position: -72px  -96px; }
.icon-question-sign      { background-position: -96px  -96px; }
.icon-info-sign          { background-position: -120px -96px; }
.icon-screenshot         { background-position: -144px -96px; }
.icon-remove-circle      { background-position: -168px -96px; }
.icon-ok-circle          { background-position: -192px -96px; }
.icon-ban-circle         { background-position: -216px -96px; }
.icon-arrow-left         { background-position: -240px -96px; }
.icon-arrow-right        { background-position: -264px -96px; }
.icon-arrow-up           { background-position: -289px -96px; } // 1px off
.icon-arrow-down         { background-position: -312px -96px; }
.icon-share-alt          { background-position: -336px -96px; }
.icon-resize-full        { background-position: -360px -96px; }
.icon-resize-small       { background-position: -384px -96px; }
.icon-plus               { background-position: -408px -96px; }
.icon-minus              { background-position: -433px -96px; }
.icon-asterisk           { background-position: -456px -96px; }

.icon-exclamation-sign   { background-position: 0      -120px; }
.icon-gift               { background-position: -24px  -120px; }
.icon-leaf               { background-position: -48px  -120px; }
.icon-fire               { background-position: -72px  -120px; }
.icon-eye-open           { background-position: -96px  -120px; }
.icon-eye-close          { background-position: -120px -120px; }
.icon-warning-sign       { background-position: -144px -120px; }
.icon-plane              { background-position: -168px -120px; }
.icon-calendar           { background-position: -192px -120px; }
.icon-random             { background-position: -216px -120px; width: 16px; }
.icon-comment            { background-position: -240px -120px; }
.icon-magnet             { background-position: -264px -120px; }
.icon-chevron-up         { background-position: -288px -120px; }
.icon-chevron-down       { background-position: -313px -119px; } // 1px, 1px off
.icon-retweet            { background-position: -336px -120px; }
.icon-shopping-cart      { background-position: -360px -120px; }
.icon-folder-close       { background-position: -384px -120px; width: 16px; }
.icon-folder-open        { background-position: -408px -120px; width: 16px; }
.icon-resize-vertical    { background-position: -432px -119px; } // 1px, 1px off
.icon-resize-horizontal  { background-position: -456px -118px; } // 1px, 2px off

.icon-hdd                     { background-position: 0      -144px; }
.icon-bullhorn                { background-position: -24px  -144px; }
.icon-bell                    { background-position: -48px  -144px; }
.icon-certificate             { background-position: -72px  -144px; }
.icon-thumbs-up               { background-position: -96px  -144px; }
.icon-thumbs-down             { background-position: -120px -144px; }
.icon-hand-right              { background-position: -144px -144px; }
.icon-hand-left               { background-position: -168px -144px; }
.icon-hand-up                 { background-position: -192px -144px; }
.icon-hand-down               { background-position: -216px -144px; }
.icon-circle-arrow-right      { background-position: -240px -144px; }
.icon-circle-arrow-left       { background-position: -264px -144px; }
.icon-circle-arrow-up         { background-position: -288px -144px; }
.icon-circle-arrow-down       { background-position: -312px -144px; }
.icon-globe                   { background-position: -336px -144px; }
.icon-wrench                  { background-position: -360px -144px; }
.icon-tasks                   { background-position: -384px -144px; }
.icon-filter                  { background-position: -408px -144px; }
.icon-briefcase               { background-position: -432px -144px; }
.icon-fullscreen              { background-position: -456px -144px; }
jui/less/forms.less000064400000040052152177723720010335 0ustar00//
// Forms
// --------------------------------------------------


// GENERAL STYLES
// --------------

// Make all forms have space below them
form {
  margin: 0 0 @baseLineHeight;
}

fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}

// Groups of fields with labels on top (legends)
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: @baseLineHeight;
  font-size: @baseFontSize * 1.5;
  line-height: @baseLineHeight * 2;
  color: @grayDark;
  border: 0;
  border-bottom: 1px solid #e5e5e5;

  // Small
  small {
    font-size: @baseLineHeight * .75;
    color: @grayLight;
  }
}

// Set font for forms
label,
input,
button,
select,
textarea {
  #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
}
input,
button,
select,
textarea {
  font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
}

// Identify controls by their labels
label {
  display: block;
  margin-bottom: 5px;
}

// Form controls
// -------------------------

// Shared size and type resets
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  display: inline-block;
  height: @baseLineHeight;
  padding: 4px 6px;
  margin-bottom: @baseLineHeight / 2;
  font-size: @baseFontSize;
  line-height: @baseLineHeight;
  color: @gray;
  .border-radius(@inputBorderRadius);
  vertical-align: middle;
}

// Reset appearance properties for textual inputs and textarea
// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
input,
textarea,
.uneditable-input {
  width: 206px; // plus 12px padding and 2px border
}
// Reset height since textareas have rows
textarea {
  height: auto;
}
// Everything else
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  background-color: @inputBackground;
  border: 1px solid @inputBorder;
  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
  .transition(~"border linear .2s, box-shadow linear .2s");

  // Focus state
  &:focus {
    border-color: rgba(82,168,236,.8);
    outline: 0;
    outline: thin dotted \9; /* IE6-9 */
    .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
  }
}

// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  *margin-top: 0; /* IE7 */
  margin-top: 1px \9; /* IE8-9 */
  line-height: normal;
}

// Reset width of input images, buttons, radios, checkboxes
input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
  width: auto; // Override of generic input selector
}

// Set the height of select and file controls to match text inputs
select,
input[type="file"] {
  height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
  line-height: @inputHeight;
}

// Make select elements obey height by applying a border
select {
  width: 220px; // default input width + 10px of padding that doesn't get applied
  border: 1px solid @inputBorder;
  background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color
}

// Make multiple select elements height not fixed
select[multiple],
select[size] {
  height: auto;
}

// Focus for select, file, radio, and checkbox
select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  .tab-focus();
}


// Uneditable inputs
// -------------------------

// Make uneditable inputs look inactive
.uneditable-input,
.uneditable-textarea {
  color: @grayLight;
  background-color: darken(@inputBackground, 1%);
  border-color: @inputBorder;
  .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
  cursor: not-allowed;
}

// For text that needs to appear as an input but should not be an input
.uneditable-input {
  overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
  white-space: nowrap;
}

// Make uneditable textareas behave like a textarea
.uneditable-textarea {
  width: auto;
  height: auto;
}


// Placeholder
// -------------------------

// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
input,
textarea {
  .placeholder();
}


// CHECKBOXES & RADIOS
// -------------------

// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
  min-height: @baseLineHeight; // clear the floating input if there is no label text
  padding-left: 20px;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
  float: left;
  margin-left: -20px;
}

// Move the options list down to align with labels
.controls > .radio:first-child,
.controls > .checkbox:first-child {
  padding-top: 5px; // has to be padding because margin collaspes
}

// Radios and checkboxes on same line
// TODO v3: Convert .inline to .control-inline
.radio.inline,
.checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle;
}
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
  margin-left: 10px; // space out consecutive inline controls
}



// INPUT SIZES
// -----------

// General classes for quick sizes
.input-mini       { width: 60px; }
.input-small      { width: 90px; }
.input-medium     { width: 150px; }
.input-large      { width: 210px; }
.input-xlarge     { width: 270px; }
.input-xxlarge    { width: 530px; }

// Grid style input sizes
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input[class*="span"],
// Redeclare since the fluid row class is more specific
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"] {
  float: none;
  margin-left: 0;
}
// Ensure input-prepend/append never wraps
.input-append input[class*="span"],
.input-append .uneditable-input[class*="span"],
.input-prepend input[class*="span"],
.input-prepend .uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"],
.row-fluid .input-prepend [class*="span"],
.row-fluid .input-append [class*="span"] {
  display: inline-block;
}



// GRID SIZING FOR INPUTS
// ----------------------

// Grid sizes
#grid > .input(@gridColumnWidth, @gridGutterWidth);

// Control row for multiple inputs per line
.controls-row {
  .clearfix(); // Clear the float from controls
}

// Float to collapse white-space for proper grid alignment
.controls-row [class*="span"],
// Redeclare the fluid grid collapse since we undo the float for inputs
.row-fluid .controls-row [class*="span"] {
  float: left;
}
// Explicity set top padding on all checkboxes/radios, not just first-child
.controls-row .checkbox[class*="span"],
.controls-row .radio[class*="span"] {
  padding-top: 5px;
}




// DISABLED STATE
// --------------

// Disabled and read-only inputs
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
  cursor: not-allowed;
  background-color: @inputDisabledBackground;
}
// Explicitly reset the colors here
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
  background-color: transparent;
}




// FORM FIELD FEEDBACK STATES
// --------------------------

// Warning
.control-group.warning {
  .formFieldState(@warningText, @warningText, @warningBackground);
}
// Error
.control-group.error {
  .formFieldState(@errorText, @errorText, @errorBackground);
}
// Success
.control-group.success {
  .formFieldState(@successText, @successText, @successBackground);
}
// Success
.control-group.info {
  .formFieldState(@infoText, @infoText, @infoBackground);
}

// HTML5 invalid states
// Shares styles with the .control-group.error above
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
  &:focus {
    border-color: darken(#ee5f5b, 10%);
    @shadow: 0 0 6px lighten(#ee5f5b, 20%);
    .box-shadow(@shadow);
  }
}



// FORM ACTIONS
// ------------

.form-actions {
  padding: (@baseLineHeight - 1) 20px @baseLineHeight;
  margin-top: @baseLineHeight;
  margin-bottom: @baseLineHeight;
  background-color: @formActionsBackground;
  border-top: 1px solid #e5e5e5;
  .clearfix(); // Adding clearfix to allow for .pull-right button containers
}



// HELP TEXT
// ---------

.help-block,
.help-inline {
  color: lighten(@textColor, 15%); // lighten the text some for contrast
}

.help-block {
  display: block; // account for any element using help-block
  margin-bottom: @baseLineHeight / 2;
}

.help-inline {
  display: inline-block;
  .ie7-inline-block();
  vertical-align: middle;
  padding-left: 5px;
}



// INPUT GROUPS
// ------------

// Allow us to put symbols and text within the input field for a cleaner look
.input-append,
.input-prepend {
  display: inline-block;
  margin-bottom: @baseLineHeight / 2;
  vertical-align: middle;
  font-size: 0; // white space collapse hack
  white-space: nowrap; // Prevent span and input from separating

  // Reset the white space collapse hack
  input,
  select,
  .uneditable-input,
  .dropdown-menu,
  .popover {
    font-size: @baseFontSize;
  }

  input,
  select,
  .uneditable-input {
    position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
    margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
    *margin-left: 0;
    vertical-align: top;
    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
    // Make input on top when focused so blue border and shadow always show
    &:focus {
      z-index: 2;
    }
  }
  .add-on {
    display: inline-block;
    width: auto;
    height: @baseLineHeight;
    min-width: 16px;
    padding: 4px 5px;
    font-size: @baseFontSize;
    font-weight: normal;
    line-height: @baseLineHeight;
    text-align: center;
    text-shadow: 0 1px 0 @white;
    background-color: @grayLighter;
    border: 1px solid #ccc;
  }
  .add-on,
  .btn,
  .btn-group > .dropdown-toggle {
    vertical-align: top;
    .border-radius(0);
  }
}

.input-prepend {
  .add-on,
  .btn {
    margin-right: -1px;
  }
  .add-on:first-child,
  .btn:first-child {
    // FYI, `.btn:first-child` accounts for a button group that's prepended
    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
  }
}

.input-append {
  input,
  select,
  .uneditable-input {
    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
    + .btn-group .btn:last-child {
      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
    }
  }
  .add-on,
  .btn,
  .btn-group {
    margin-left: -1px;
  }
  .add-on:last-child,
  .btn:last-child,
  .btn-group:last-child > .dropdown-toggle {
    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
  }
}

// Remove all border-radius for inputs with both prepend and append
.input-prepend.input-append {
  input,
  select,
  .uneditable-input {
    .border-radius(0);
    + .btn-group .btn {
      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
    }
  }
  .add-on:first-child,
  .btn:first-child {
    margin-right: -1px;
    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
  }
  .add-on:last-child,
  .btn:last-child {
    margin-left: -1px;
    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
  }
  .btn-group:first-child {
    margin-left: 0;
  }
}




// SEARCH FORM
// -----------

input.search-query {
  padding-right: 14px;
  padding-right: 4px \9;
  padding-left: 14px;
  padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
  margin-bottom: 0; // Remove the default margin on all inputs
  .border-radius(15px);
}

/* Allow for input prepend/append in search forms */
.form-search .input-append .search-query,
.form-search .input-prepend .search-query {
  .border-radius(0); // Override due to specificity
}
.form-search .input-append .search-query {
  .border-radius(14px 0 0 14px);
}
.form-search .input-append .btn {
  .border-radius(0 14px 14px 0);
}
.form-search .input-prepend .search-query {
  .border-radius(0 14px 14px 0);
}
.form-search .input-prepend .btn {
  .border-radius(14px 0 0 14px);
}

.js-stools-field-filter {
    .input-prepend,
    .input-append {
        margin-bottom: 0;
    }
}


// HORIZONTAL & VERTICAL FORMS
// ---------------------------

// Common properties
// -----------------

.form-search,
.form-inline,
.form-horizontal {
  input,
  textarea,
  select,
  .help-inline,
  .uneditable-input,
  .input-prepend,
  .input-append {
    display: inline-block;
    .ie7-inline-block();
    margin-bottom: 0;
    vertical-align: middle;
  }
  // Re-hide hidden elements due to specifity
  .hide {
    display: none;
  }
}
.form-search label,
.form-inline label,
.form-search .btn-group,
.form-inline .btn-group {
  display: inline-block;
}
// Remove margin for input-prepend/-append
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
  margin-bottom: 0;
}
// Inline checkbox/radio labels (remove padding on left)
.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle;
}
// Remove float and margin, set to inline-block
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0;
}


// Margin to space out fieldsets
.control-group {
  margin-bottom: @baseLineHeight / 2;
}

// Legend collapses margin, so next element is responsible for spacing
legend + .control-group {
  margin-top: @baseLineHeight;
  -webkit-margin-top-collapse: separate;
}

// Horizontal-specific styles
// --------------------------

.form-horizontal {
  // Increase spacing between groups
  .control-group {
    margin-bottom: @baseLineHeight;
    .clearfix();
  }
  // Float the labels left
  .control-label {
    float: left;
    width: @horizontalComponentOffset - 20;
    padding-top: 5px;
    text-align: right;
  }
  // Move over all input controls and content
  .controls {
    // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
    // don't inherit the margin of the parent, in this case .controls
    *display: inline-block;
    *padding-left: 20px;
    margin-left: @horizontalComponentOffset;
    *margin-left: 0;
    &:first-child {
      *padding-left: @horizontalComponentOffset;
    }
  }
  // Remove bottom margin on block level help text since that's accounted for on .control-group
  .help-block {
    margin-bottom: 0;
  }
  // And apply it only to .help-block instances that follow a form control
  input,
  select,
  textarea,
  .uneditable-input,
  .input-prepend,
  .input-append {
    + .help-block {
      margin-top: @baseLineHeight / 2;
    }
  }
  // Move over buttons in .form-actions to align with .controls
  .form-actions {
    padding-left: @horizontalComponentOffset;
  }
}

/*Fix for tooltips wrong positioning*/
.control-label .hasPopover,
.control-label .hasTooltip {
  display: inline-block;
}

/* Field subform repeatable */
.subform-repeatable-wrapper{

	.btn-group>.btn.button{
		min-width: 0;
	}

	.ui-sortable-helper{
		background: @white;
	}

	tr.ui-sortable-helper{
		display: table;
	}
}

/*Fix for floating 3 columns without overlapping */
@media (min-width: 980px) and (max-width: 1215px) {

  .float-cols {

    .control-label {
      float: none;
    }

    .controls {
      margin-left: 0;
    }
  }
}
jui/less/bootstrap.less000064400000003261152177723720011225 0ustar00/*!
 * Bootstrap v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */

// Core variables and mixins
@import "variables.less"; // Modify this for custom colors, font-sizes, etc
@import "mixins.less";

// CSS Reset
@import "reset.less";

// Grid system and page structure
@import "scaffolding.less";
@import "grid.less";
@import "layouts.less";

// Base CSS
@import "type.less";
@import "code.less";
@import "forms.less";
@import "tables.less";

// Components: common
@import "sprites.less";
@import "dropdowns.less";
@import "wells.less";
@import "component-animations.less";
@import "close.less";

// Components: Buttons & Alerts
@import "buttons.less";
@import "button-groups.less";
@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less

// Components: Nav
@import "navs.less";
@import "navbar.less";
@import "breadcrumbs.less";
@import "pagination.less";
@import "pager.less";

// Components: Popovers
@import "modals.less";
@import "tooltip.less";
@import "popovers.less";

// Components: Misc
@import "thumbnails.less";
@import "media.less";
@import "labels-badges.less";
@import "progress-bars.less";
@import "accordion.less";
@import "carousel.less";
@import "hero-unit.less";

// Utility classes
@import "utilities.less"; // Has to be last to override when necessary

// > Joomla JUI

/* Joomla JUI NOTE: Original .modal definition has to be commented in modals.less and responsive-767px-max.less */

@import "modals.joomla.less";
@import "responsive-767px-max.joomla.less";
// < Joomla JUI
jui/less/accordion.less000064400000001174152177723720011152 0ustar00//
// Accordion
// --------------------------------------------------


// Parent container
.accordion {
  margin-bottom: @baseLineHeight;
}

// Group == heading + body
.accordion-group {
  margin-bottom: 2px;
  border: 1px solid #e5e5e5;
  .border-radius(@baseBorderRadius);
}
.accordion-heading {
  border-bottom: 0;
}
.accordion-heading .accordion-toggle {
  display: block;
  padding: 8px 15px;
}

// General toggle styles
.accordion-toggle {
  cursor: pointer;
}

// Inner needs the styles because you can't animate properly with any styles on the element
.accordion-inner {
  padding: 9px 15px;
  border-top: 1px solid #e5e5e5;
}
jui/less/responsive-navbar.less000064400000010350152177723720012651 0ustar00//
// Responsive: Navbar
// --------------------------------------------------


// TABLETS AND BELOW
// -----------------
@media (max-width: @navbarCollapseWidth) {

  // UNFIX THE TOPBAR
  // ----------------
  // Remove any padding from the body
  body {
    padding-top: 0;
  }
  // Unfix the navbars
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    position: static;
  }
  .navbar-fixed-top {
    margin-bottom: @baseLineHeight;
  }
  .navbar-fixed-bottom {
    margin-top: @baseLineHeight;
  }
  .navbar-fixed-top .navbar-inner,
  .navbar-fixed-bottom .navbar-inner {
    padding: 5px;
  }
  .navbar .container {
    width: auto;
    padding: 0;
  }
  // Account for brand name
  .navbar .brand {
    padding-left: 10px;
    padding-right: 10px;
    margin: 0 0 0 -5px;
  }

  // COLLAPSIBLE NAVBAR
  // ------------------
  // Nav collapse clears brand
  .nav-collapse {
    clear: both;
  }
  // Block-level the nav
  .nav-collapse .nav {
    float: none;
    margin: 0 0 (@baseLineHeight / 2);
  }
  .nav-collapse .nav > li {
    float: none;
  }
  .nav-collapse .nav > li > a {
    margin-bottom: 2px;
  }
  .nav-collapse .nav > .divider-vertical {
    display: none;
  }
  .nav-collapse .nav .nav-header {
    color: @navbarText;
    text-shadow: none;
  }
  // Nav and dropdown links in navbar
  .nav-collapse .nav > li > a,
  .nav-collapse .dropdown-menu a {
    padding: 9px 15px;
    font-weight: bold;
    color: @navbarLinkColor;
    .border-radius(3px);
  }
  // Buttons
  .nav-collapse .btn {
    padding: 4px 10px 4px;
    font-weight: normal;
    .border-radius(@baseBorderRadius);
  }
  .nav-collapse .dropdown-menu li + li a {
    margin-bottom: 2px;
  }
  .nav-collapse .nav > li > a:hover,
  .nav-collapse .nav > li > a:focus,
  .nav-collapse .dropdown-menu a:hover,
  .nav-collapse .dropdown-menu a:focus {
    background-color: @navbarBackground;
  }
  .navbar-inverse .nav-collapse .nav > li > a,
  .navbar-inverse .nav-collapse .dropdown-menu a {
    color: @navbarInverseLinkColor;
  }
  .navbar-inverse .nav-collapse .nav > li > a:hover,
  .navbar-inverse .nav-collapse .nav > li > a:focus,
  .navbar-inverse .nav-collapse .dropdown-menu a:hover,
  .navbar-inverse .nav-collapse .dropdown-menu a:focus {
    background-color: @navbarInverseBackground;
  }
  // Buttons in the navbar
  .nav-collapse.in .btn-group {
    margin-top: 5px;
    padding: 0;
  }
  // Dropdowns in the navbar
  .nav-collapse .dropdown-menu {
    position: static;
    top: auto;
    left: auto;
    float: none;
    display: none;
    max-width: none;
    margin: 0 15px;
    padding: 0;
    background-color: transparent;
    border: none;
    .border-radius(0);
    .box-shadow(none);
  }
  .nav-collapse .open > .dropdown-menu { 
    display: block; 
  }

  .nav-collapse .dropdown-menu:before,
  .nav-collapse .dropdown-menu:after {
    display: none;
  }
  .nav-collapse .dropdown-menu .divider {
    display: none;
  }
  .nav-collapse .nav > li > .dropdown-menu {
    &:before,
    &:after {
      display: none;
    }
  }
  // Forms in navbar
  .nav-collapse .navbar-form,
  .nav-collapse .navbar-search {
    float: none;
    padding: (@baseLineHeight / 2) 15px;
    margin: (@baseLineHeight / 2) 0;
    border-top: 1px solid @navbarBackground;
    border-bottom: 1px solid @navbarBackground;
    .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)");
  }
  .navbar-inverse .nav-collapse .navbar-form,
  .navbar-inverse .nav-collapse .navbar-search {
    border-top-color: @navbarInverseBackground;
    border-bottom-color: @navbarInverseBackground;
  }
  // Pull right (secondary) nav content
  .navbar .nav-collapse .nav.pull-right {
    float: none;
    margin-left: 0;
  }
  // Hide everything in the navbar save .brand and toggle button */
  .nav-collapse,
  .nav-collapse.collapse {
    overflow: hidden;
    height: 0;
  }
  // Navbar button
  .navbar .btn-navbar {
    display: block;
  }

  // STATIC NAVBAR
  // -------------
  .navbar-static .navbar-inner {
    padding-left:  10px;
    padding-right: 10px;
  }


}


// DEFAULT DESKTOP
// ---------------

@media (min-width: @navbarCollapseDesktopWidth) {

  // Required to make the collapsing navbar work on regular desktops
  .nav-collapse.collapse {
    height: auto !important;
    overflow: visible !important;
  }

}
jui/less/bootstrap-rtl.less000064400000030771152177723720012032 0ustar00/* Bootstrap RTL */
/* Pull right or left */
.pull-right {
	float: left;
}

.pull-left {
	float: right;
}
/* Tables */
.table th,
.table td {
	text-align: right;
}
/* Navbar */
.navbar .brand {
	float: right;
	padding: 8px 20px 8px 12px;
	margin-right: -20px;
	margin-left: 0;
}
.navbar .nav,
.navbar .nav > li {
	float: left;
}
.navbar .nav.pull-right {
	margin-right: 10px;
	margin-left: 0px;
}
.pull-right > .dropdown-menu {
	left: 0;
	right: auto;
}
/* Grid */
[class*="span"] {
	float: right;
	margin-right: 20px;
	margin-left: 0px;
}
.row-fluid [class*="span"] {
	float: right;
	margin-right: 2.127659574%;
	*margin-right: 2.0744680846382977%;
	margin-left: 0px!important;
	*margin-left: 0px!important;
}

.row-fluid [class*="span"]:first-child {
	margin-right: 0;
}
/* Forms */
.form-horizontal .control-label {
	float: right;
	width: auto;
	padding-left: 5px;
	padding-right: 0;
	text-align: right;
}

.form-horizontal .controls {
	*display: inline-block;
	*padding-right: 20px;
	margin-right: 160px;
	*margin-right: 0;
	margin-left: 0;
	text-align: right;
	margin-top: 6px;
}

.form-horizontal .controls:first-child {
	*padding-right: 160px;
}
.form-vertical .controls {
	*display: inline-block;
	*padding-right: 20px;
	margin-right: 0;
	*margin-right: 0;
	margin-left: 0;
	text-align: right;
	margin-top: 6px;
}
.form-vertical .control-label {
	float: none;
	padding-right: 0;
	padding-top: 0;
	text-align: right;
	width: auto;
}
.chzn-container-single-nosearch .chzn-search input {
	position: absolute;
	left: -9000px;
	display:none;
}
/* Nav */
/* Tabs */
.nav-tabs > li,
.nav-pills > li {
	float: right;
}
.nav-stacked > li {
	float: none;
}
/* Buttons */
/* Button Groups */
.btn-group > .btn {
	float: right;
	margin-right: -1px;
	margin-left: 0;
}

.btn-group > .btn:first-child {
	margin-right: 0;
}
.btn-group > .btn:first-child,
.radio.btn-group > label:first-of-type {
	margin-left: 0;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-moz-border-radius-bottomleft: 4px;
	-moz-border-radius-topleft: 4px;
	-webkit-border-bottom-right-radius: 4px;
	border-bottom-right-radius: 4px;
	-webkit-border-top-right-radius: 4px;
	border-top-right-radius: 4px;
	-moz-border-radius-bottomright: 4px;
	-moz-border-radius-topright: 4px;
}

.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
	-webkit-border-top-right-radius: 0px;
	border-top-right-radius: 0px;
	-webkit-border-bottom-right-radius: 0px;
	border-bottom-right-radius: 0px;
	-moz-border-radius-topright: 0px;
	-moz-border-radius-bottomright: 0px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-moz-border-radius-topleft: 4px;
	-moz-border-radius-bottomleft: 4px;
}

.btn-group > .btn.large:first-child {
	-webkit-border-bottom-left-radius: 0px;
	border-bottom-left-radius: 0px;
	-webkit-border-top-left-radius: 0px;
	border-top-left-radius: 0px;
	-moz-border-radius-bottomleft: 0px;
	-moz-border-radius-topleft: 0px;
	margin-right: 0;
	-webkit-border-bottom-right-radius: 6px;
	border-bottom-right-radius: 6px;
	-webkit-border-top-right-radius: 6px;
	border-top-right-radius: 6px;
	-moz-border-radius-bottomright: 6px;
	-moz-border-radius-topright: 6px;
}

.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
	-webkit-border-top-right-radius: 0px;
	border-top-right-radius: 0px;
	-webkit-border-bottom-right-radius: 0px;
	border-bottom-right-radius: 0px;
	-moz-border-radius-topright: 0px;
	-moz-border-radius-bottomright: 0px;
	-webkit-border-top-left-radius: 6px;
	border-top-left-radius: 6px;
	-webkit-border-bottom-left-radius: 6px;
	border-bottom-left-radius: 6px;
	-moz-border-radius-topleft: 6px;
	-moz-border-radius-bottomleft: 6px;
}

.btn-group > .btn:first-child:last-child {
	margin-left: 0;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-moz-border-radius-topleft: 4px;
	-moz-border-radius-bottomleft: 4px;
	-webkit-border-bottom-right-radius: 4px;
	border-bottom-right-radius: 4px;
	-webkit-border-top-right-radius: 4px;
	border-top-right-radius: 4px;
	-moz-border-radius-bottomright: 4px;
	-moz-border-radius-topright: 4px;
}
/* Forms */
/* Input Prepend and Append */
.input-prepend .add-on{
	float: right;
}
.input-append .add-on{
	float: none;
}
.input-prepend .add-on,
.input-prepend .btn {
	margin-left: -1px;
	margin-right: 0;
}

.input-prepend .add-on:first-child,
.input-prepend .btn:first-child {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}

.input-append input,
.input-append select,
.input-append .uneditable-input {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}

.input-append .uneditable-input {
	border-left-color: #ccc;
	border-right-color: #eee;
}

.input-append .add-on:last-child,
.input-append .btn:last-child {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}

.input-prepend.input-append input,
.input-prepend.input-append select,
.input-prepend.input-append .uneditable-input {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}

.input-prepend.input-append .add-on:first-child,
.input-prepend.input-append .btn:first-child {
	margin-left: -1px;
	margin-right: 0px;
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
	float: right;
}

.input-prepend.input-append .add-on:last-child,
.input-prepend.input-append .btn:last-child {
	margin-right: -1px;
	margin-left: 0px;
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}

.input-prepend input,
.input-prepend select,
.input-prepend .uneditable-input {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}


/* start myrtl */
body {
direction:rtl;
}

.pager .next a {
  float: left;
}
.pager .previous a {
  float: right;
}

.icon-arrow-right {
	background-position: -241px -94px;
	float: left;
	padding-right: 3px;
}

.icon-arrow-left {
	background-position: -264px -95px;
}
.icon-refresh {
	background-position: -240px -23px;
}
#refresh-status {
	background-position: right center;
	padding-left: 0;
	padding-right: 25px;
}
.radio input[type="radio"], .checkbox input[type="checkbox"] {
	float: right;
	margin-right: 2px;
	margin-left: 5px;
}

.list-striped, .row-striped {
	list-style: none;
	line-height: 18px;
	text-align: right;
}
.btn-group + .btn-group {
	margin-right: 5px;
	margin-left: 0px;
}
.tabs-left > .nav-tabs {
	float: right;
	margin-left: 19px;
	border-left: 1px solid #DDD;
	margin-right: 0px;
	border-right: 0px;
}
.tabs-left > .nav-tabs .active > a, .tabs-left > .nav-tabs .active > a:hover {
	border-color: #DDD #DDD #DDD transparent;
}
.tabs-left > .nav-tabs > li > a {
	margin-left: -1px;
	-webkit-border-radius: 0 4px 4px 0;
	-moz-border-radius: 0 4px 4px 0;
	border-radius: 0 4px 4px 0;
	margin-right: 0px;
}
.controls > .radio:first-child, .controls > .checkbox:first-child {
	padding-top: 0px;
}
.btn-toolbar {
	margin-top: 14px;
	margin-bottom: 3px;
}
.navbar .nav > li {
	float:right;
}

.icon-folder-2 {
	line-height: 25px;
	padding-left: 5px;
}

.navbar .nav > li > a {
	padding: 8px 10px;
	color: #FFFFFF;
}
.navigation .nav li li .nav-child {
	left: auto;
	right: 100%;

	&:before {
		left: auto;
		right: -7px;
		border-left: 7px solid rgba(0, 0, 0, 0.2);
		border-right-width: 0;
	}
	&:after {
		left: auto;
		right: -6px;
		border-left: 6px solid #ffffff;
		border-right-width: 0;
	}
}
.container-logo {
	padding-top: 6px;
	float: left;
	text-align: left;
}
.modal-header .close {
	float: left;
}
.pagination a {
	float: right;
}
.pagination ul {
	display: inline-block;
	*display: inline;
	/* IE7 inline-block hack */

	*zoom: 1;
	margin-right: 0;
	margin-bottom: 0;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.pagination a {
	float: right;
	padding: 0 14px;
	line-height: 34px;
	text-decoration: none;
	border: 1px solid #ddd;
	border-right-width: 0;
}

.pagination li:first-child a {
	border-right-width: 1px;
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.pagination li:last-child a {
	-webkit-border-radius: 3px 0 0 3px ;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.pagination-centered {
	text-align: center;
}
.pagination-right {
	text-align: right;
}
.icon-first:before {
	content: "\e000";
}
.icon-previous:before {
	content: "\7d";
}
.icon-last:before {
	content: "\7b";
}
.icon-next:before {
	content: "\7c";
}
.dl-horizontal dt {
	float: right;
	text-align: left;
	clear: right;
}
.dl-horizontal dd {
	margin-left: 0;
	margin-right: 180px;
}
.dl-horizontal dt,
.profile> ul {
	margin: 9px 25px 0 0;
}
/* end myrtl */
.dropdown-submenu > a:after {
	float: left;
	border-width: 5px 5px 5px 0;
	margin-left: -10px;
	border-left-color: transparent;
	border-right-color: #CCC;
}
/* Subcategories badge */
.badge {
	margin-left: 10px;
}
/* Align tip text to right */
.tip-text {
	text-align:right;
}
/* Other corrections */
.icon-file-add:before {
	content: "(";
}
.icon-eye-open:before, .icon-eye:before {
	content: ">";
}
.icon-checkin:before, .icon-checkbox:before {
	content: "<";
}
.icon-save-new:before, .icon-plus-2:before {
	content: "[";
}
.btn-toolbar .btn + .btn, .btn-toolbar .btn-group + .btn, .btn-toolbar .btn + .btn-group {
	margin-left: 0;
	margin-right: 5px;
}
.btn-toolbar .btn-wrapper {
  display: inline-block;
  margin: 0 5px 5px 0;
}
.btn-group > .btn + .btn {
	margin-left: 0;
	margin-right: -1px;
}
.input-append .add-on, .input-append .btn, .input-prepend .add-on, .input-prepend .btn {
	margin-left: 0;
	margin-right: -1px;
}
.table-bordered {
	border-right-width: 0;
	border-left-width: 1px;
	border-right-style: none;
	border-left-style: solid;
	border-right-color: -moz-use-text-color;
	border-left-color: #DDDDDD;
}
.chzn-container-single .chzn-single {
	padding-right: 8px;
	padding-left: 0;
}
.chzn-container-single .chzn-single span {
	margin-left: 26px;
	margin-right: 0;
}
.chzn-container-single .chzn-single abbr {
	left: 26px;
	right: auto;
}
.chzn-container-single .chzn-single div {
	left: 0;
	right: auto;
}
.chzn-container-multi .chzn-choices li {
	float: right;
}
.chzn-container-multi .chzn-choices .search-choice {
	margin-right: 5px;
	margin-left: 0;
	padding-right: 5px;
	padding-left: 20px;
}
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
	left: 3px;
	right: auto;
}
.chzn-container.chzn-with-drop .chzn-drop {
	right: 0;
	left: auto;
}
.chzn-container-single.chzn-container-single-nosearch .chzn-search {
	position: absolute;
	right: -9999px;
	left: auto;
}
.chzn-container .chzn-drop {
	right: -9999px;
	left: auto;
}
.alert {
	padding-right: 14px;
	padding-left: 35px;
}
.alert .close {
	left: -21px;
	right: auto;
}
.close {
	float: left;
}
.form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox {
	margin-bottom: 9px;
}
.form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] {
	float: right;
	margin-left: 3px;
	margin-right: 0;
}
/* Media Manager */
.com_media .container-main .media {
	display: inline-block;
}
.thumbnails > li {
	float: right;
	margin-bottom: 18px;
	margin-right: 20px;
}
#mediamanager-form .description,
#mediamanager-form .filesize,
#mediamanager-form .dimensions {
	direction: ltr;
}
/* Tooltip/Popover */
.popover,
.tooltip-inner {
	text-align: right;
}
.popover.top .arrow,
.popover.bottom .arrow {
	margin-right: -11px;
}
.popover.top .arrow:after,
.popover.bottom .arrow:after {
	margin-right: -10px;
}

/* Media queries */
@media (max-width: 480px) {
	.btn-toolbar .btn-wrapper {
		display: block;
		margin: 0 0 5px 0;
	}
	.btn-toolbar .btn-wrapper .btn {
		margin-left: 0px;
		margin-right: 10px;
	}
}

/*Print pop-up*/
#pop-print {
	float: left;
	margin: 10px;
}

/*url fields*/
#install_url,
#install_directory,
#jform_customurl,
#jform_link,
#jform_params_url,
input[type="url"] {
	text-align: left;
	direction: ltr;
}

/* Menu Module front-end */
#aside .nav .nav-child {
	border-left: 0;
	border-right: 2px solid #ddd;
	padding-left: 0;
	padding-right: 5px;
}

/* Dropdown frontend */
.dropdown-menu {
	text-align: right;
}

/* Icon whitespacing */
[class^="icon-"],
[class*=" icon-"] {
	margin-left: .25em;
}
jui/less/navbar.less000064400000027501152177723720010464 0ustar00//
// Navbars (Redux)
// --------------------------------------------------


// COMMON STYLES
// -------------

// Base class and wrapper
.navbar {
  overflow: visible;
  margin-bottom: @baseLineHeight;

  // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
  *position: relative;
  *z-index: 2;
}

// Inner for background effects
// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
.navbar-inner {
  min-height: @navbarHeight;
  padding-left:  20px;
  padding-right: 20px;
  #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
  border: 1px solid @navbarBorder;
  .border-radius(@baseBorderRadius);
  .box-shadow(0 1px 4px rgba(0,0,0,.065));

  // Prevent floats from breaking the navbar
  .clearfix();
}

// Set width to auto for default container
// We then reset it for fixed navbars in the #gridSystem mixin
.navbar .container {
  width: auto;
}

// Override the default collapsed state
.nav-collapse.collapse {
  height: auto;
  overflow: visible;
}


// Brand: website or project name
// -------------------------
.navbar .brand {
  float: left;
  display: block;
  // Vertically center the text given @navbarHeight
  padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);
  margin-left: -20px; // negative indent to left-align the text down the page
  font-size: 20px;
  font-weight: 200;
  color: @navbarBrandColor;
  text-shadow: 0 1px 0 @navbarBackgroundHighlight;
  &:hover,
  &:focus {
    text-decoration: none;
  }
}

// Plain text in topbar
// -------------------------
.navbar-text {
  margin-bottom: 0;
  line-height: @navbarHeight;
  color: @navbarText;
}

// Janky solution for now to account for links outside the .nav
// -------------------------
.navbar-link {
  color: @navbarLinkColor;
  &:hover,
  &:focus {
    color: @navbarLinkColorHover;
  }
}

// Dividers in navbar
// -------------------------
.navbar .divider-vertical {
  height: @navbarHeight;
  margin: 0 9px;
  border-left: 1px solid @navbarBackground;
  border-right: 1px solid @navbarBackgroundHighlight;
}

// Buttons in navbar
// -------------------------
.navbar .btn,
.navbar .btn-group {
  .navbarVerticalAlign(30px); // Vertically center in navbar
}
.navbar .btn-group .btn,
.navbar .input-prepend .btn,
.navbar .input-append .btn,
.navbar .input-prepend .btn-group,
.navbar .input-append .btn-group {
  margin-top: 0; // then undo the margin here so we don't accidentally double it
}

// Navbar forms
// -------------------------
.navbar-form {
  margin-bottom: 0; // remove default bottom margin
  .clearfix();
  input,
  select,
  .radio,
  .checkbox {
    .navbarVerticalAlign(30px); // Vertically center in navbar
  }
  input,
  select,
  .btn {
    display: inline-block;
    margin-bottom: 0;
  }
  input[type="image"],
  input[type="checkbox"],
  input[type="radio"] {
    margin-top: 3px;
  }
  .input-append,
  .input-prepend {
    margin-top: 5px;
    white-space: nowrap; // preven two  items from separating within a .navbar-form that has .pull-left
    input {
      margin-top: 0; // remove the margin on top since it's on the parent
    }
  }
}

// Navbar search
// -------------------------
.navbar-search {
  position: relative;
  float: left;
  .navbarVerticalAlign(30px); // Vertically center in navbar
  margin-bottom: 0;
  .search-query {
    margin-bottom: 0;
    padding: 4px 14px;
    #font > .sans-serif(13px, normal, 1);
    .border-radius(15px); // redeclare because of specificity of the type attribute
  }
}



// Static navbar
// -------------------------

.navbar-static-top {
  position: static;
  margin-bottom: 0; // remove 18px margin for default navbar
  .navbar-inner {
    .border-radius(0);
  }
}



// Fixed navbar
// -------------------------

// Shared (top/bottom) styles
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: @zindexFixedNavbar;
  margin-bottom: 0; // remove 18px margin for default navbar
}
.navbar-fixed-top .navbar-inner,
.navbar-static-top .navbar-inner {
  border-width: 0 0 1px;
}
.navbar-fixed-bottom .navbar-inner {
  border-width: 1px 0 0;
}
.navbar-fixed-top .navbar-inner,
.navbar-fixed-bottom .navbar-inner {
  padding-left:  0;
  padding-right: 0;
  .border-radius(0);
}

// Reset container width
// Required here as we reset the width earlier on and the grid mixins don't override early enough
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
  #grid > .core > .span(@gridColumns);
}

// Fixed to top
.navbar-fixed-top {
  top: 0;
}
.navbar-fixed-top,
.navbar-static-top {
  .navbar-inner {
    .box-shadow(~"0 1px 10px rgba(0,0,0,.1)");
  }
}

// Fixed to bottom
.navbar-fixed-bottom {
  bottom: 0;
  .navbar-inner {
    .box-shadow(~"0 -1px 10px rgba(0,0,0,.1)");
  }
}



// NAVIGATION
// ----------

.navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0 10px 0 0;
}
.navbar .nav.pull-right {
  float: right; // redeclare due to specificity
  margin-right: 0; // remove margin on float right nav
}
.navbar .nav > li {
  float: left;
}

// Links
.navbar .nav > li > a {
  float: none;
  // Vertically center the text given @navbarHeight
  padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);
  color: @navbarLinkColor;
  text-decoration: none;
  text-shadow: 0 1px 0 @navbarBackgroundHighlight;
}
.navbar .nav .dropdown-toggle .caret {
  margin-top: 8px;
}

// Hover/focus
.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
  background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active
  color: @navbarLinkColorHover;
  text-decoration: none;
}

// a11y improvement
.navbar .nav > li > a:focus {
    outline: 2px solid rgb(94, 158, 214);
}

// Active nav items
.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
  color: @navbarLinkColorActive;
  text-decoration: none;
  background-color: @navbarLinkBackgroundActive;
  .box-shadow(inset 0 3px 8px rgba(0,0,0,.125));
}

// Navbar button for toggling navbar items in responsive layouts
// These definitions need to come after '.navbar .btn'
.navbar .btn-navbar {
  display: none;
  float: right;
  padding: 7px 10px;
  margin-left: 5px;
  margin-right: 5px;
  .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));
  .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
}
.navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 2px;
  background-color: #f5f5f5;
  .border-radius(1px);
  .box-shadow(0 1px 0 rgba(0,0,0,.25));
}
.btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
}



// Dropdown menus
// --------------

// Menu position and menu carets
.navbar .nav > li > .dropdown-menu {
  &:before {
    content: '';
    display: inline-block;
    border-left:   7px solid transparent;
    border-right:  7px solid transparent;
    border-bottom: 7px solid #ccc;
    border-bottom-color: @dropdownBorder;
    position: absolute;
    top: -7px;
    left: 9px;
  }
  &:after {
    content: '';
    display: inline-block;
    border-left:   6px solid transparent;
    border-right:  6px solid transparent;
    border-bottom: 6px solid @dropdownBackground;
    position: absolute;
    top: -6px;
    left: 10px;
  }
}
// Menu position and menu caret support for dropups via extra dropup class
.navbar-fixed-bottom .nav > li > .dropdown-menu {
  &:before {
    border-top: 7px solid #ccc;
    border-top-color: @dropdownBorder;
    border-bottom: 0;
    bottom: -7px;
    top: auto;
  }
  &:after {
    border-top: 6px solid @dropdownBackground;
    border-bottom: 0;
    bottom: -6px;
    top: auto;
  }
}

// Caret should match text color on hover/focus
.navbar .nav li.dropdown > a:hover .caret,
.navbar .nav li.dropdown > a:focus .caret {
  border-top-color: @navbarLinkColorHover;
  border-bottom-color: @navbarLinkColorHover;
}

// Remove background color from open dropdown
.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
  background-color: @navbarLinkBackgroundActive;
  color: @navbarLinkColorActive;
}
.navbar .nav li.dropdown > .dropdown-toggle .caret {
  border-top-color: @navbarLinkColor;
  border-bottom-color: @navbarLinkColor;
}
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
  border-top-color: @navbarLinkColorActive;
  border-bottom-color: @navbarLinkColorActive;
}

// Right aligned menus need alt position
.navbar .pull-right > li > .dropdown-menu,
.navbar .nav > li > .dropdown-menu.pull-right {
  left: auto;
  right: 0;
  &:before {
    left: auto;
    right: 12px;
  }
  &:after {
    left: auto;
    right: 13px;
  }
  .dropdown-menu {
    left: auto;
    right: 100%;
    margin-left: 0;
    margin-right: -1px;
    .border-radius(6px 0 6px 6px);
  }
}


// Inverted navbar
// -------------------------

.navbar-inverse {

  .navbar-inner {
    #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);
    border-color: @navbarInverseBorder;
  }

  .brand,
  .nav > li > a {
    color: @navbarInverseLinkColor;
    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
    &:hover,
    &:focus {
      color: @navbarInverseLinkColorHover;
    }
  }

  .brand {
    color: @navbarInverseBrandColor;
  }

  .navbar-text {
    color: @navbarInverseText;
  }

  .nav > li > a:focus,
  .nav > li > a:hover {
    background-color: @navbarInverseLinkBackgroundHover;
    color: @navbarInverseLinkColorHover;
  }

  .nav .active > a,
  .nav .active > a:hover,
  .nav .active > a:focus {
    color: @navbarInverseLinkColorActive;
    background-color: @navbarInverseLinkBackgroundActive;
  }

  // Inline text links
  .navbar-link {
    color: @navbarInverseLinkColor;
    &:hover,
    &:focus {
      color: @navbarInverseLinkColorHover;
    }
  }

  // Dividers in navbar
  .divider-vertical {
    border-left-color: @navbarInverseBackground;
    border-right-color: @navbarInverseBackgroundHighlight;
  }

  // Dropdowns
  .nav li.dropdown.open > .dropdown-toggle,
  .nav li.dropdown.active > .dropdown-toggle,
  .nav li.dropdown.open.active > .dropdown-toggle {
    background-color: @navbarInverseLinkBackgroundActive;
    color: @navbarInverseLinkColorActive;
  }
  .nav li.dropdown > a:hover .caret,
  .nav li.dropdown > a:focus .caret {
    border-top-color: @navbarInverseLinkColorActive;
    border-bottom-color: @navbarInverseLinkColorActive;
  }
  .nav li.dropdown > .dropdown-toggle .caret {
    border-top-color: @navbarInverseLinkColor;
    border-bottom-color: @navbarInverseLinkColor;
  }
  .nav li.dropdown.open > .dropdown-toggle .caret,
  .nav li.dropdown.active > .dropdown-toggle .caret,
  .nav li.dropdown.open.active > .dropdown-toggle .caret {
    border-top-color: @navbarInverseLinkColorActive;
    border-bottom-color: @navbarInverseLinkColorActive;
  }

  // Navbar search
  .navbar-search {
    .search-query {
      color: @white;
      background-color: @navbarInverseSearchBackground;
      border-color: @navbarInverseSearchBorder;
      .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
      .transition(none);
      .placeholder(@navbarInverseSearchPlaceholderColor);

      // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
      &:focus,
      &.focused {
        padding: 5px 15px;
        color: @grayDark;
        text-shadow: 0 1px 0 @white;
        background-color: @navbarInverseSearchBackgroundFocus;
        border: 0;
        .box-shadow(0 0 3px rgba(0,0,0,.15));
        outline: 0;
      }
    }
  }

  // Navbar collapse button
  .btn-navbar {
    .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));
  }

}
jui/less/pager.less000064400000001370152177723720010305 0ustar00//
// Pager pagination
// --------------------------------------------------


.pager {
  margin: @baseLineHeight 0;
  list-style: none;
  text-align: center;
  .clearfix();
}
.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: #f5f5f5;
}
.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: @grayLight;
  background-color: #fff;
  cursor: default;
}jui/less/alerts.less000064400000002562152177723720010505 0ustar00//
// Alerts
// --------------------------------------------------


// Base styles
// -------------------------

.alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: @baseLineHeight;
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
  background-color: @warningBackground;
  border: 1px solid @warningBorder;
  .border-radius(@baseBorderRadius);
}
.alert,
.alert h4 {
  // Specified for the h4 to prevent conflicts of changing @headingsColor
  color: @warningText;
}
.alert h4 {
  margin: 0 0 .5em;
}

// Adjust close link position
.alert .close {
  position: relative;
  top: -2px;
  right: -21px;
  line-height: @baseLineHeight;
  cursor:pointer;
}


// Alternate styles
// -------------------------

.alert-success {
  background-color: @successBackground;
  border-color: @successBorder;
  color: @successText;
}
.alert-success h4 {
  color: @successText;
}
.alert-danger,
.alert-error {
  background-color: @errorBackground;
  border-color: @errorBorder;
  color: @errorText;
}
.alert-danger h4,
.alert-error h4 {
  color: @errorText;
}
.alert-info {
  background-color: @infoBackground;
  border-color: @infoBorder;
  color: @infoText;
}
.alert-info h4 {
  color: @infoText;
}


// Block alerts
// -------------------------

.alert-block {
  padding-top: 14px;
  padding-bottom: 14px;
}
.alert-block > p,
.alert-block > ul {
  margin-bottom: 0;
}
.alert-block p + p {
  margin-top: 5px;
}
jui/less/carousel.less000064400000004662152177723720011033 0ustar00//
// Carousel
// --------------------------------------------------


.carousel {
  position: relative;
  margin-bottom: @baseLineHeight;
  line-height: 1;
}

.carousel-inner {
  overflow: hidden;
  width: 100%;
  position: relative;
}

.carousel-inner {

  > .item {
    display: none;
    position: relative;
    .transition(.6s ease-in-out left);

    // Account for jankitude on images
    > img,
    > a > img {
      display: block;
      line-height: 1;
    }
  }

  > .active,
  > .next,
  > .prev { display: block; }

  > .active {
    left: 0;
  }

  > .next,
  > .prev {
    position: absolute;
    top: 0;
    width: 100%;
  }

  > .next {
    left: 100%;
  }
  > .prev {
    left: -100%;
  }
  > .next.left,
  > .prev.right {
    left: 0;
  }

  > .active.left {
    left: -100%;
  }
  > .active.right {
    left: 100%;
  }

}

// Left/right controls for nav
// ---------------------------

.carousel-control {
  position: absolute;
  top: 40%;
  left: 15px;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  font-size: 60px;
  font-weight: 100;
  line-height: 30px;
  color: @white;
  text-align: center;
  background: @grayDarker;
  border: 3px solid @white;
  .border-radius(23px);
  .opacity(50);

  // we can't have this transition here
  // because webkit cancels the carousel
  // animation if you trip this while
  // in the middle of another animation
  // ;_;
  // .transition(opacity .2s linear);

  // Reposition the right one
  &.right {
    left: auto;
    right: 15px;
  }

  // Hover/focus state
  &:hover,
  &:focus {
    color: @white;
    text-decoration: none;
    .opacity(90);
  }
}

// Carousel indicator pips
// -----------------------------
.carousel-indicators {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 5;
  margin: 0;
  list-style: none;

  li {
    display: block;
    float: left;
    width: 10px;
    height: 10px;
    margin-left: 5px;
    text-indent: -999px;
    background-color: #ccc;
    background-color: rgba(255,255,255,.25);
    border-radius: 5px;
  }
  .active {
    background-color: #fff;
  }
}

// Caption for text below images
// -----------------------------

.carousel-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 15px;
  background: @grayDark;
  background: rgba(0,0,0,.75);
}
.carousel-caption h4,
.carousel-caption p {
  color: @white;
  line-height: @baseLineHeight;
}
.carousel-caption h4 {
  margin: 0 0 5px;
}
.carousel-caption p {
  margin-bottom: 0;
}
jui/less/tooltip.less000064400000003224152177723720010701 0ustar00//
// Tooltips
// --------------------------------------------------


// Base class
.tooltip {
  position: absolute;
  z-index: @zindexTooltip;
  display: block;
  visibility: visible;
  font-size: 11px;
  line-height: 1.4;
  .opacity(0);
  &.in     { .opacity(80); }
  &.top    { margin-top:  -3px; padding: 5px 0; }
  &.right  { margin-left:  3px; padding: 0 5px; }
  &.bottom { margin-top:   3px; padding: 5px 0; }
  &.left   { margin-left: -3px; padding: 0 5px; }
}

// Wrapper for the tooltip content
.tooltip-inner {
  max-width: 200px;
  padding: 8px;
  color: @tooltipColor;
  text-align: center;
  text-decoration: none;
  background-color: @tooltipBackground;
  .border-radius(@baseBorderRadius);
}

// Arrows
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip {
  &.top .tooltip-arrow {
    bottom: 0;
    left: 50%;
    margin-left: -@tooltipArrowWidth;
    border-width: @tooltipArrowWidth @tooltipArrowWidth 0;
    border-top-color: @tooltipArrowColor;
  }
  &.right .tooltip-arrow {
    top: 50%;
    left: 0;
    margin-top: -@tooltipArrowWidth;
    border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;
    border-right-color: @tooltipArrowColor;
  }
  &.left .tooltip-arrow {
    top: 50%;
    right: 0;
    margin-top: -@tooltipArrowWidth;
    border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;
    border-left-color: @tooltipArrowColor;
  }
  &.bottom .tooltip-arrow {
    top: 0;
    left: 50%;
    margin-left: -@tooltipArrowWidth;
    border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;
    border-bottom-color: @tooltipArrowColor;
  }
}
jui/less/responsive-768px-979px.less000064400000000717152177723720013200 0ustar00//
// Responsive: Tablet to desktop
// --------------------------------------------------


@media (min-width: 768px) and (max-width: 979px) {

  // Fixed grid
  #grid > .core(@gridColumnWidth768, @gridGutterWidth768);

  // Fluid grid
  #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);

  // Input grid
  #grid > .input(@gridColumnWidth768, @gridGutterWidth768);

  // No need to reset .thumbnails here since it's the same @gridGutterWidth

}
jui/less/button-groups.less000064400000013115152177723720012037 0ustar00//
// Button groups
// --------------------------------------------------


// Make the div behave like a button
.btn-group {
  position: relative;
  display: inline-block;
  .ie7-inline-block();
  font-size: 0; // remove as part 1 of font-size inline-block hack
  vertical-align: middle; // match .btn alignment given font-size hack above
  white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
  .ie7-restore-left-whitespace();
}

// Space out series of button groups
.btn-group + .btn-group {
  margin-left: 5px;
}

// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
  font-size: 0; // Hack to remove whitespace that results from using inline-block
  margin-top: @baseLineHeight / 2;
  margin-bottom: @baseLineHeight / 2;
  > .btn + .btn,
  > .btn-group + .btn,
  > .btn + .btn-group {
    margin-left: 5px;
  }
}

// Float them, remove border radius, then re-add to first and last elements
.btn-group > .btn {
  position: relative;
  .border-radius(0);
}
.btn-group > .btn + .btn {
  margin-left: -1px;
}
.btn-group > .btn,
.btn-group > .dropdown-menu,
.btn-group > .popover {
  font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack
}

// Reset fonts for other sizes
.btn-group > .btn-mini {
  font-size: @fontSizeMini;
}
.btn-group > .btn-small {
  font-size: @fontSizeSmall;
}
.btn-group > .btn-large {
  font-size: @fontSizeLarge;
}

// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
.btn-group > .btn:first-child {
  margin-left: 0;
  .border-top-left-radius(@baseBorderRadius);
  .border-bottom-left-radius(@baseBorderRadius);
}
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
  .border-top-right-radius(@baseBorderRadius);
  .border-bottom-right-radius(@baseBorderRadius);
}
// Reset corners for large buttons
.btn-group > .btn.large:first-child {
  margin-left: 0;
  .border-top-left-radius(@borderRadiusLarge);
  .border-bottom-left-radius(@borderRadiusLarge);
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
  .border-top-right-radius(@borderRadiusLarge);
  .border-bottom-right-radius(@borderRadiusLarge);
}

// On hover/focus/active, bring the proper btn to front
.btn-group > .btn:hover,
.btn-group > .btn:focus,
.btn-group > .btn:active,
.btn-group > .btn.active {
  z-index: 2;
}

// On active and open, don't show outline
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}



// Split button dropdowns
// ----------------------

// Give the line between buttons some depth
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
  .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
  *padding-top: 5px;
  *padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-toggle {
  padding-left: 5px;
  padding-right: 5px;
  *padding-top: 2px;
  *padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-toggle {
  *padding-top: 5px;
  *padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
  *padding-top: 7px;
  *padding-bottom: 7px;
}

.btn-group.open {

  // The clickable button for toggling the menu
  // Remove the gradient and set the same inset shadow as the :active state
  .dropdown-toggle {
    background-image: none;
    .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
  }

  // Keep the hover's background when dropdown is open
  .btn.dropdown-toggle {
    background-color: @btnBackgroundHighlight;
  }
  .btn-primary.dropdown-toggle {
    background-color: @btnPrimaryBackgroundHighlight;
  }
  .btn-warning.dropdown-toggle {
    background-color: @btnWarningBackgroundHighlight;
  }
  .btn-danger.dropdown-toggle {
    background-color: @btnDangerBackgroundHighlight;
  }
  .btn-success.dropdown-toggle {
    background-color: @btnSuccessBackgroundHighlight;
  }
  .btn-info.dropdown-toggle {
    background-color: @btnInfoBackgroundHighlight;
  }
  .btn-inverse.dropdown-toggle {
    background-color: @btnInverseBackgroundHighlight;
  }
}


// Reposition the caret
.btn .caret {
  margin-top: 8px;
  margin-left: 0;
}
// Carets in other button sizes
.btn-large .caret {
  margin-top: 6px;
}
.btn-large .caret {
  border-left-width:  5px;
  border-right-width: 5px;
  border-top-width:   5px;
}
.btn-mini .caret,
.btn-small .caret {
  margin-top: 8px;
}
// Upside down carets for .dropup
.dropup .btn-large .caret {
  border-bottom-width: 5px;
}



// Account for other colors
.btn-primary,
.btn-warning,
.btn-danger,
.btn-info,
.btn-success,
.btn-inverse {
  .caret {
    border-top-color: @white;
    border-bottom-color: @white;
  }
}



// Vertical button groups
// ----------------------

.btn-group-vertical {
  display: inline-block; // makes buttons only take up the width they need
  .ie7-inline-block();
}
.btn-group-vertical > .btn {
  display: block;
  float: none;
  max-width: 100%;
  .border-radius(0);
}
.btn-group-vertical > .btn + .btn {
  margin-left: 0;
  margin-top: -1px;
}
.btn-group-vertical > .btn:first-child {
  .border-radius(@baseBorderRadius @baseBorderRadius 0 0);
}
.btn-group-vertical > .btn:last-child {
  .border-radius(0 0 @baseBorderRadius @baseBorderRadius);
}
.btn-group-vertical > .btn-large:first-child {
  .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0);
}
.btn-group-vertical > .btn-large:last-child {
  .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge);
}
jui/css/chosen.css000064400000027752152177723720010146 0ustar00/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.6.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/

/* @group Base */
.chzn-container {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  font-size: 13px;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.chzn-container * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.chzn-container .chzn-drop {
  position: absolute;
  top: 100%;
  left: -9999px;
  z-index: 1010;
  width: 100%;
  border: 1px solid #aaa;
  border-top: 0;
  background: #fff;
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
}
.chzn-container.chzn-with-drop .chzn-drop {
  left: 0;
}
.chzn-container a {
  cursor: pointer;
}
.chzn-container .search-choice .group-name, .chzn-container .chzn-single .group-name {
  margin-right: 4px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: normal;
  color: #999999;
}
.chzn-container .search-choice .group-name:after, .chzn-container .chzn-single .group-name:after {
  content: ":";
  padding-left: 2px;
  vertical-align: top;
}

/* @end */
/* @group Single Chosen */
.chzn-container-single .chzn-single {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 0 0 0 8px;
  height: 25px;
  border: 1px solid #aaa;
  border-radius: 5px;
  background-color: #fff;
  background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
  background: -webkit-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: -moz-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: -o-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background-clip: padding-box;
  box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
  color: #444;
  text-decoration: none;
  white-space: nowrap;
  line-height: 24px;
}
.chzn-container-single .chzn-default {
  color: #999;
}
.chzn-container-single .chzn-single span {
  display: block;
  overflow: hidden;
  margin-right: 26px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chzn-container-single .chzn-single-with-deselect span {
  margin-right: 38px;
}
.chzn-container-single .chzn-single abbr {
  position: absolute;
  top: 6px;
  right: 26px;
  display: block;
  width: 12px;
  height: 12px;
  background: url('chosen-sprite.png') -42px 1px no-repeat;
  font-size: 1px;
}
.chzn-container-single .chzn-single abbr:hover {
  background-position: -42px -10px;
}
.chzn-container-single.chzn-disabled .chzn-single abbr:hover {
  background-position: -42px -10px;
}
.chzn-container-single .chzn-single div {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 18px;
  height: 100%;
}
.chzn-container-single .chzn-single div b {
  display: block;
  width: 100%;
  height: 100%;
  background: url('chosen-sprite.png') no-repeat 0px 2px;
}
.chzn-container-single .chzn-search {
  position: relative;
  z-index: 1010;
  margin: 0;
  padding: 3px 4px;
  white-space: nowrap;
}
.chzn-container-single .chzn-search input[type="text"] {
  margin: 1px 0;
  padding: 4px 20px 4px 5px;
  width: 100%;
  height: auto;
  outline: 0;
  border: 1px solid #aaa;
  background: white url('chosen-sprite.png') no-repeat 100% -20px;
  background: url('chosen-sprite.png') no-repeat 100% -20px;
  font-size: 1em;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
}
.chzn-container-single .chzn-drop {
  margin-top: -1px;
  border-radius: 0 0 4px 4px;
  background-clip: padding-box;
}
.chzn-container-single.chzn-container-single-nosearch .chzn-search {
  position: absolute;
  left: -9999px;
}

/* @end */
/* @group Results */
.chzn-container .chzn-results {
  color: #444;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0 4px 4px 0;
  padding: 0 0 0 4px;
  max-height: 240px;
  -webkit-overflow-scrolling: touch;
}
.chzn-container .chzn-results li {
  display: none;
  margin: 0;
  padding: 5px 6px;
  list-style: none;
  line-height: 15px;
  word-wrap: break-word;
  -webkit-touch-callout: none;
}
.chzn-container .chzn-results li.active-result {
  display: list-item;
  cursor: pointer;
}
.chzn-container .chzn-results li.disabled-result {
  display: list-item;
  color: #ccc;
  cursor: default;
}
.chzn-container .chzn-results li.highlighted {
  background-color: #3875d7;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
  background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
  color: #fff;
}
.chzn-container .chzn-results li.no-results {
  color: #777;
  display: list-item;
  background: #f4f4f4;
}
.chzn-container .chzn-results li.group-result {
  display: list-item;
  font-weight: bold;
  cursor: default;
}
.chzn-container .chzn-results li.group-option {
  padding-left: 15px;
}
.chzn-container .chzn-results li em {
  font-style: normal;
  text-decoration: underline;
}

/* @end */
/* @group Multi Chosen */
.chzn-container-multi .chzn-choices {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0 5px;
  width: 100%;
  height: auto;
  border: 1px solid #aaa;
  background-color: #fff;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
  background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
  cursor: text;
}
.chzn-container-multi .chzn-choices li {
  float: left;
  list-style: none;
}
.chzn-container-multi .chzn-choices li.search-field {
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.chzn-container-multi .chzn-choices li.search-field input[type="text"] {
  margin: 1px 0;
  padding: 0;
  height: 25px;
  outline: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none;
  color: #999;
  font-size: 100%;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
}
.chzn-container-multi .chzn-choices li.search-choice {
  position: relative;
  margin: 3px 5px 3px 0;
  padding: 3px 20px 3px 5px;
  border: 1px solid #aaa;
  max-width: 100%;
  border-radius: 3px;
  background-color: #eeeeee;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-size: 100% 19px;
  background-repeat: repeat-x;
  background-clip: padding-box;
  box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
  color: #333;
  line-height: 13px;
  cursor: default;
}
.chzn-container-multi .chzn-choices li.search-choice span {
  word-wrap: break-word;
}
.chzn-container-multi .chzn-choices li.search-choice .search-choice-close {
  position: absolute;
  top: 4px;
  right: 3px;
  display: block;
  width: 12px;
  height: 12px;
  background: url('chosen-sprite.png') -42px 1px no-repeat;
  font-size: 1px;
}
.chzn-container-multi .chzn-choices li.search-choice .search-choice-close:hover {
  background-position: -42px -10px;
}
.chzn-container-multi .chzn-choices li.search-choice-disabled {
  padding-right: 5px;
  border: 1px solid #ccc;
  background-color: #e4e4e4;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  color: #666;
}
.chzn-container-multi .chzn-choices li.search-choice-focus {
  background: #d4d4d4;
}
.chzn-container-multi .chzn-choices li.search-choice-focus .search-choice-close {
  background-position: -42px -10px;
}
.chzn-container-multi .chzn-results {
  margin: 0;
  padding: 0;
}
.chzn-container-multi .chzn-drop .result-selected {
  display: list-item;
  color: #ccc;
  cursor: default;
}

/* @end */
/* @group Active  */
.chzn-container-active .chzn-single {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chzn-container-active.chzn-with-drop .chzn-single {
  border: 1px solid #aaa;
  -moz-border-radius-bottomright: 0;
  border-bottom-right-radius: 0;
  -moz-border-radius-bottomleft: 0;
  border-bottom-left-radius: 0;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
  background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
  /* JUI remove next line */
  /* box-shadow: 0 1px 0 #fff inset; */
}
.chzn-container-active.chzn-with-drop .chzn-single div {
  border-left: none;
  background: transparent;
}
.chzn-container-active.chzn-with-drop .chzn-single div b {
  background-position: -18px 2px;
}
.chzn-container-active .chzn-choices {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chzn-container-active .chzn-choices li.search-field input[type="text"] {
  color: #222 !important;
}

/* @end */
/* @group Disabled Support */
.chzn-disabled {
  opacity: 0.5 !important;
  cursor: default;
}
.chzn-disabled .chzn-single {
  cursor: default;
}
.chzn-disabled .chzn-choices .search-choice .search-choice-close {
  cursor: default;
}

/* @end */
/* @group Right to Left */
.chzn-rtl {
  text-align: right;
}
.chzn-rtl .chzn-single {
  overflow: visible;
  padding: 0 8px 0 0;
}
.chzn-rtl .chzn-single span {
  margin-right: 0;
  margin-left: 26px;
  direction: rtl;
}
.chzn-rtl .chzn-single-with-deselect span {
  margin-left: 38px;
}
.chzn-rtl .chzn-single div {
  right: auto;
  left: 3px;
}
.chzn-rtl .chzn-single abbr {
  right: auto;
  left: 26px;
}
.chzn-rtl .chzn-choices li {
  float: right;
}
.chzn-rtl .chzn-choices li.search-field input[type="text"] {
  direction: rtl;
}
.chzn-rtl .chzn-choices li.search-choice {
  margin: 3px 5px 3px 0;
  padding: 3px 5px 3px 19px;
}
.chzn-rtl .chzn-choices li.search-choice .search-choice-close {
  right: auto;
  left: 4px;
}
.chzn-rtl.chzn-container-single-nosearch .chzn-search,
.chzn-rtl .chzn-drop {
  left: 9999px;
}
.chzn-rtl.chzn-container-single .chzn-results {
  margin: 0 0 4px 4px;
  padding: 0 4px 0 0;
}
.chzn-rtl .chzn-results li.group-option {
  padding-right: 15px;
  padding-left: 0;
}
.chzn-rtl.chzn-container-active.chzn-with-drop .chzn-single div {
  border-right: none;
}
.chzn-rtl .chzn-search input[type="text"] {
  padding: 4px 5px 4px 20px;
  background: white url('chosen-sprite.png') no-repeat -30px -20px;
  background: url('chosen-sprite.png') no-repeat -30px -20px;
  direction: rtl;
}
.chzn-rtl.chzn-container-single .chzn-single div b {
  background-position: 6px 2px;
}
.chzn-rtl.chzn-container-single.chzn-with-drop .chzn-single div b {
  background-position: -12px 2px;
}

/* @end */
jui/css/bootstrap-tooltip-extended.css000064400000001242152177723720014154 0ustar00/* Base class */
.tooltip.top-left,
.tooltip.top-right {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.bottom-left,
.tooltip.bottom-right {
  margin-top: 3px;
  padding: 5px 0;
}

/* Arrows */
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  left: 5px;
  border-width: 5px 5px 0;
  border-top-color: black;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  right: 5px;
  border-width: 5px 5px 0;
  border-top-color: black;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  left: 5px;
  border-width: 0 5px 5px;
  border-bottom-color: black;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  right: 5px;
  border-width: 0 5px 5px;
  border-bottom-color: black;
}
jui/css/sortablelist.css000064400000005607152177723720011371 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
.dnd-list-highlight {
  position: relative;
  margin-bottom: 18px;
  color: #404040;
  background-color: #eedc94;
  background-repeat: repeat-x;
  background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
  background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
  background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
  background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
  background-image: -o-linear-gradient(top, #fceec1, #eedc94);
  background-image: linear-gradient(top, #fceec1, #eedc94);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  border-color: #eedc94 #eedc94 #e4c652;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.dndlist-place-holder {
	height: 51px;
	border-left: none;
	border-right:none;
}

.dndlist-dragged-row {
	background-color: #5bb75b !important;
	*background-color: #51a351 !important;
	background-image: -ms-linear-gradient(top, #62c462, #51a351) !important;
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)) !important;
	background-image: -webkit-linear-gradient(top, #62c462, #51a351) !important;
	background-image: -o-linear-gradient(top, #62c462, #51a351) !important;
	background-image: -moz-linear-gradient(top, #62c462, #51a351) !important;
	background-image: linear-gradient(top, #62c462, #51a351) !important;
	background-repeat: repeat-x !important;
	border-color: #51a351 #51a351 #387038 !important;
	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25) !important;
	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0) !important;
	filter: progid:dximagetransform.microsoft.gradient(enabled=false) !important;
	height: 54px;
	opacity: 0.7;
	filter: alpha(opacity=70);
}

.dndlist-group-disabled {
	opacity: 0.3;
	filter: alpha(opacity=30);
}

.dndlist-group-disabled td {
	background-image: url("../img/bg-overlay.png");
}

.sortable .sortable-handler {
	cursor: auto;
}

.sortable .sortable-handler.sortable-inactive{
	opacity: 0.5;
	filter: alpha(opacity=50);
}

.middle, .table td.middle, .table th.middle {
    vertical-align: middle;
}
jui/css/bootstrap.min.css000064400000317402152177723720011460 0ustar00/*!
 * Bootstrap v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]: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}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.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 th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.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;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left: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 solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.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;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.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;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.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-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.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{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-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-image:-moz-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-image:-o-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-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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-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-image:-moz-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-image:-o-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-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-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-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-image:-moz-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-image:-o-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-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-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-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-image:-moz-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-image:-o-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-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-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-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-image:-moz-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-image:-o-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-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)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.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:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}div.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}div.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}div.modal.fade.in{top:10%}@media(max-width:767px){div.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}div.modal.fade{top:-100px}div.modal.fade.in{top:20px}}@media(max-width:480px){div.modal{top:10px;right:10px;left:10px}}
jui/css/chosen-sprite.png000064400000001032152177723720011425 0ustar00�PNG


IHDR4%��^�IDATH�헱kSQƯ
.-����=�$�b�o�$((T�Hw��*����"nupA�@ P�Apq�J$p!P��M1��.�����;���=��\D�.Y�n0��@}�DMF���>Fb��1���
�c�	!6�1r��b�%G���I��J(v��fFy�O����H4B c�1�}��^��4��5Fo��G�X�ٝv�U�n�(�R�s�p����v��*��8sP���*�c�O�TQWŬ���j1Q�H}����T��+���}��֕d�/���L�Lc�F�6�˔�7��,9ʼ1IkJ�(�dJj��Lc�^��z*"Hu�j)�׿���,?<��._1�a�������°x�	/b�}�T!�����i?O�u�	oc\������eN��c:�99�\@�s� uZ���q��|yp�k�a�����6��B|���1��G����gq�u����p�+���[�*y���IEND�B`�jui/css/chosen-sprite@2x.png000064400000001342152177723720012003 0ustar00�PNG


IHDRhJ�q��IDATh�횿o�@�#�P	� �����?!d�ԅ�sft⇿'R�J0�#[���Ɉ��+��������P����{R�W%����ދ��1�e,�J4�h��'�Y�2�Ny�H%?��/�4��
L�j�[��	-�85H�q���H�����qȱ�s���6�C+�%0��`QW�X����O�5��
�]:ڿ��h���Ig���7�oi����
1n� ���f���Hn�'
�!-��
hjh؝l�n��zH���A��oj��Q�FEæ�����hH
'��wԲt�c �8�H۪�/�4��
L�j��`$�8�� q�iD�S %N��9 �J�1Sp̶�;X�k}\kN[�[�t���������k�%��s�F<Uk��}dvǢ�W���b��?�O/n&�
�0p)/��Pyf'��~�|��|+a�C�˒�bKq��SB>��p��3�K�X��R~����C�gY�Ƭ��,�9���A%w;8Q�h�H�,�]n�p��Y��>�$�c
��)�ƒ�K�hw~��S�ʼn�q��P�*�w�Ҷ�����X�y{$���u�%�&�Z����'������(�8�؜��֜�b��ҍ၊�5R6�emP�0�<�F�-F��
i��#�	��z�H�|��Y��JZ�\N��IEND�B`�jui/css/bootstrap-responsive.min.css000064400000040465152177723720013655 0ustar00/*!
 * Bootstrap Responsive v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
jui/css/bootstrap.css000064400000371542152177723720010703 0ustar00/*!
 * Bootstrap v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */

.clearfix {
  *zoom: 1;
}

.clearfix:before,
.clearfix:after {
  display: table;
  line-height: 0;
  content: "";
}

.clearfix:after {
  clear: both;
}

.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

.input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block;
}

audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}

audio:not([controls]) {
  display: none;
}

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}

a:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

a:hover,
a:active {
  outline: 0;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  width: auto\9;
  height: auto;
  max-width: 100%;
  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
}

#map_canvas img,
.google-maps img {
  max-width: none;
}

button,
input,
select,
textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle;
}

button,
input {
  *overflow: visible;
  line-height: normal;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
}

label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
  cursor: pointer;
}

input[type="search"] {
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
          box-sizing: content-box;
  -webkit-appearance: textfield;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

textarea {
  overflow: auto;
  vertical-align: top;
}

@media print {
  * {
    color: #000 !important;
    text-shadow: none !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]: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;
  }
  @page  {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

body {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
  color: #333333;
  background-color: #ffffff;
}

a {
  color: #0088cc;
  text-decoration: none;
}

a:hover,
a:focus {
  color: #005580;
  text-decoration: underline;
}

.img-rounded {
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}

.img-polaroid {
  padding: 4px;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.img-circle {
  -webkit-border-radius: 500px;
     -moz-border-radius: 500px;
          border-radius: 500px;
}

.row {
  margin-left: -20px;
  *zoom: 1;
}

.row:before,
.row:after {
  display: table;
  line-height: 0;
  content: "";
}

.row:after {
  clear: both;
}

[class*="span"] {
  float: left;
  min-height: 1px;
  margin-left: 20px;
}

.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
  width: 940px;
}

.span12 {
  width: 940px;
}

.span11 {
  width: 860px;
}

.span10 {
  width: 780px;
}

.span9 {
  width: 700px;
}

.span8 {
  width: 620px;
}

.span7 {
  width: 540px;
}

.span6 {
  width: 460px;
}

.span5 {
  width: 380px;
}

.span4 {
  width: 300px;
}

.span3 {
  width: 220px;
}

.span2 {
  width: 140px;
}

.span1 {
  width: 60px;
}

.offset12 {
  margin-left: 980px;
}

.offset11 {
  margin-left: 900px;
}

.offset10 {
  margin-left: 820px;
}

.offset9 {
  margin-left: 740px;
}

.offset8 {
  margin-left: 660px;
}

.offset7 {
  margin-left: 580px;
}

.offset6 {
  margin-left: 500px;
}

.offset5 {
  margin-left: 420px;
}

.offset4 {
  margin-left: 340px;
}

.offset3 {
  margin-left: 260px;
}

.offset2 {
  margin-left: 180px;
}

.offset1 {
  margin-left: 100px;
}

.row-fluid {
  width: 100%;
  *zoom: 1;
}

.row-fluid:before,
.row-fluid:after {
  display: table;
  line-height: 0;
  content: "";
}

.row-fluid:after {
  clear: both;
}

.row-fluid [class*="span"] {
  display: block;
  float: left;
  width: 100%;
  min-height: 30px;
  margin-left: 2.127659574468085%;
  *margin-left: 2.074468085106383%;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

.row-fluid [class*="span"]:first-child {
  margin-left: 0;
}

.row-fluid .controls-row [class*="span"] + [class*="span"] {
  margin-left: 2.127659574468085%;
}

.row-fluid .span12 {
  width: 100%;
  *width: 99.94680851063829%;
}

.row-fluid .span11 {
  width: 91.48936170212765%;
  *width: 91.43617021276594%;
}

.row-fluid .span10 {
  width: 82.97872340425532%;
  *width: 82.92553191489361%;
}

.row-fluid .span9 {
  width: 74.46808510638297%;
  *width: 74.41489361702126%;
}

.row-fluid .span8 {
  width: 65.95744680851064%;
  *width: 65.90425531914893%;
}

.row-fluid .span7 {
  width: 57.44680851063829%;
  *width: 57.39361702127659%;
}

.row-fluid .span6 {
  width: 48.93617021276595%;
  *width: 48.88297872340425%;
}

.row-fluid .span5 {
  width: 40.42553191489362%;
  *width: 40.37234042553192%;
}

.row-fluid .span4 {
  width: 31.914893617021278%;
  *width: 31.861702127659576%;
}

.row-fluid .span3 {
  width: 23.404255319148934%;
  *width: 23.351063829787233%;
}

.row-fluid .span2 {
  width: 14.893617021276595%;
  *width: 14.840425531914894%;
}

.row-fluid .span1 {
  width: 6.382978723404255%;
  *width: 6.329787234042553%;
}

.row-fluid .offset12 {
  margin-left: 104.25531914893617%;
  *margin-left: 104.14893617021275%;
}

.row-fluid .offset12:first-child {
  margin-left: 102.12765957446808%;
  *margin-left: 102.02127659574467%;
}

.row-fluid .offset11 {
  margin-left: 95.74468085106382%;
  *margin-left: 95.6382978723404%;
}

.row-fluid .offset11:first-child {
  margin-left: 93.61702127659574%;
  *margin-left: 93.51063829787232%;
}

.row-fluid .offset10 {
  margin-left: 87.23404255319149%;
  *margin-left: 87.12765957446807%;
}

.row-fluid .offset10:first-child {
  margin-left: 85.1063829787234%;
  *margin-left: 84.99999999999999%;
}

.row-fluid .offset9 {
  margin-left: 78.72340425531914%;
  *margin-left: 78.61702127659572%;
}

.row-fluid .offset9:first-child {
  margin-left: 76.59574468085106%;
  *margin-left: 76.48936170212764%;
}

.row-fluid .offset8 {
  margin-left: 70.2127659574468%;
  *margin-left: 70.10638297872339%;
}

.row-fluid .offset8:first-child {
  margin-left: 68.08510638297872%;
  *margin-left: 67.9787234042553%;
}

.row-fluid .offset7 {
  margin-left: 61.70212765957446%;
  *margin-left: 61.59574468085106%;
}

.row-fluid .offset7:first-child {
  margin-left: 59.574468085106375%;
  *margin-left: 59.46808510638297%;
}

.row-fluid .offset6 {
  margin-left: 53.191489361702125%;
  *margin-left: 53.085106382978715%;
}

.row-fluid .offset6:first-child {
  margin-left: 51.063829787234035%;
  *margin-left: 50.95744680851063%;
}

.row-fluid .offset5 {
  margin-left: 44.68085106382979%;
  *margin-left: 44.57446808510638%;
}

.row-fluid .offset5:first-child {
  margin-left: 42.5531914893617%;
  *margin-left: 42.4468085106383%;
}

.row-fluid .offset4 {
  margin-left: 36.170212765957444%;
  *margin-left: 36.06382978723405%;
}

.row-fluid .offset4:first-child {
  margin-left: 34.04255319148936%;
  *margin-left: 33.93617021276596%;
}

.row-fluid .offset3 {
  margin-left: 27.659574468085104%;
  *margin-left: 27.5531914893617%;
}

.row-fluid .offset3:first-child {
  margin-left: 25.53191489361702%;
  *margin-left: 25.425531914893618%;
}

.row-fluid .offset2 {
  margin-left: 19.148936170212764%;
  *margin-left: 19.04255319148936%;
}

.row-fluid .offset2:first-child {
  margin-left: 17.02127659574468%;
  *margin-left: 16.914893617021278%;
}

.row-fluid .offset1 {
  margin-left: 10.638297872340425%;
  *margin-left: 10.53191489361702%;
}

.row-fluid .offset1:first-child {
  margin-left: 8.51063829787234%;
  *margin-left: 8.404255319148938%;
}

[class*="span"].hide,
.row-fluid [class*="span"].hide {
  display: none;
}

[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
  float: right;
}

.container {
  margin-right: auto;
  margin-left: auto;
  *zoom: 1;
}

.container:before,
.container:after {
  display: table;
  line-height: 0;
  content: "";
}

.container:after {
  clear: both;
}

.container-fluid {
  padding-right: 20px;
  padding-left: 20px;
  *zoom: 1;
}

.container-fluid:before,
.container-fluid:after {
  display: table;
  line-height: 0;
  content: "";
}

.container-fluid:after {
  clear: both;
}

p {
  margin: 0 0 10px;
}

.lead {
  margin-bottom: 20px;
  font-size: 21px;
  font-weight: 200;
  line-height: 30px;
}

small {
  font-size: 85%;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

cite {
  font-style: normal;
}

.muted {
  color: #999999;
}

a.muted:hover,
a.muted:focus {
  color: #808080;
}

.text-warning {
  color: #c09853;
}

a.text-warning:hover,
a.text-warning:focus {
  color: #a47e3c;
}

.text-error {
  color: #b94a48;
}

a.text-error:hover,
a.text-error:focus {
  color: #953b39;
}

.text-info {
  color: #3a87ad;
}

a.text-info:hover,
a.text-info:focus {
  color: #2d6987;
}

.text-success {
  color: #468847;
}

a.text-success:hover,
a.text-success:focus {
  color: #356635;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-center {
  text-align: center;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 10px 0;
  font-family: inherit;
  font-weight: bold;
  line-height: 20px;
  color: inherit;
  text-rendering: optimizelegibility;
}

h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  font-weight: normal;
  line-height: 1;
  color: #999999;
}

h1,
h2,
h3 {
  line-height: 40px;
}

h1 {
  font-size: 38.5px;
}

h2 {
  font-size: 31.5px;
}

h3 {
  font-size: 24.5px;
}

h4 {
  font-size: 17.5px;
}

h5 {
  font-size: 14px;
}

h6 {
  font-size: 11.9px;
}

h1 small {
  font-size: 24.5px;
}

h2 small {
  font-size: 17.5px;
}

h3 small {
  font-size: 14px;
}

h4 small {
  font-size: 14px;
}

.page-header {
  padding-bottom: 9px;
  margin: 20px 0 30px;
  border-bottom: 1px solid #eeeeee;
}

ul,
ol {
  padding: 0;
  margin: 0 0 10px 25px;
}

ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0;
}

li {
  line-height: 20px;
}

ul.unstyled,
ol.unstyled {
  margin-left: 0;
  list-style: none;
}

ul.inline,
ol.inline {
  margin-left: 0;
  list-style: none;
}

ul.inline > li,
ol.inline > li {
  display: inline-block;
  *display: inline;
  padding-right: 5px;
  padding-left: 5px;
  *zoom: 1;
}

dl {
  margin-bottom: 20px;
}

dt,
dd {
  line-height: 20px;
}

dt {
  font-weight: bold;
}

dd {
  margin-left: 10px;
}

.dl-horizontal {
  *zoom: 1;
}

.dl-horizontal:before,
.dl-horizontal:after {
  display: table;
  line-height: 0;
  content: "";
}

.dl-horizontal:after {
  clear: both;
}

.dl-horizontal dt {
  float: left;
  width: 160px;
  overflow: hidden;
  clear: left;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dl-horizontal dd {
  margin-left: 180px;
}

hr {
  margin: 20px 0;
  border: 0;
  border-top: 1px solid #eeeeee;
  border-bottom: 1px solid #ffffff;
}

abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #999999;
}

abbr.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

blockquote {
  padding: 0 0 0 15px;
  margin: 0 0 20px;
  border-left: 5px solid #eeeeee;
}

blockquote p {
  margin-bottom: 0;
  font-size: 17.5px;
  font-weight: 300;
  line-height: 1.25;
}

blockquote small {
  display: block;
  line-height: 20px;
  color: #999999;
}

blockquote small:before {
  content: '\2014 \00A0';
}

blockquote.pull-right {
  float: right;
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
}

blockquote.pull-right p,
blockquote.pull-right small {
  text-align: right;
}

blockquote.pull-right small:before {
  content: '';
}

blockquote.pull-right small:after {
  content: '\00A0 \2014';
}

q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
}

address {
  display: block;
  margin-bottom: 20px;
  font-style: normal;
  line-height: 20px;
}

code,
pre {
  padding: 0 3px 2px;
  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
  font-size: 12px;
  color: #333333;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

code {
  padding: 2px 4px;
  color: #d14;
  white-space: nowrap;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
}

pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 20px;
  word-break: break-all;
  word-wrap: break-word;
  white-space: pre;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

pre.prettyprint {
  margin-bottom: 20px;
}

pre code {
  padding: 0;
  color: inherit;
  white-space: pre;
  white-space: pre-wrap;
  background-color: transparent;
  border: 0;
}

.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}

form {
  margin: 0 0 20px;
}

fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: 40px;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}

legend small {
  font-size: 15px;
  color: #999999;
}

label,
input,
button,
select,
textarea {
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
}

input,
button,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

label {
  display: block;
  margin-bottom: 5px;
}

select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  display: inline-block;
  height: 20px;
  padding: 4px 6px;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 20px;
  color: #555555;
  vertical-align: middle;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

input,
textarea,
.uneditable-input {
  width: 206px;
}

textarea {
  height: auto;
}

textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  background-color: #ffffff;
  border: 1px solid #cccccc;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
          transition: border linear 0.2s, box-shadow linear 0.2s;
}

textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {
  border-color: rgba(82, 168, 236, 0.8);
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */

  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
}

input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  *margin-top: 0;
  line-height: normal;
}

input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
  width: auto;
}

select,
input[type="file"] {
  height: 30px;
  /* In IE7, the height of the select element cannot be changed by height, only font-size */

  *margin-top: 4px;
  /* For IE7, add top margin to align select with labels */

  line-height: 30px;
}

select {
  width: 220px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
}

select[multiple],
select[size] {
  height: auto;
}

select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

.uneditable-input,
.uneditable-textarea {
  color: #999999;
  cursor: not-allowed;
  background-color: #fcfcfc;
  border-color: #cccccc;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
}

.uneditable-input {
  overflow: hidden;
  white-space: nowrap;
}

.uneditable-textarea {
  width: auto;
  height: auto;
}

input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #999999;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #999999;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #999999;
}

.radio,
.checkbox {
  min-height: 20px;
  padding-left: 20px;
}

.radio input[type="radio"],
.checkbox input[type="checkbox"] {
  float: left;
  margin-left: -20px;
}

.controls > .radio:first-child,
.controls > .checkbox:first-child {
  padding-top: 5px;
}

.radio.inline,
.checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle;
}

.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
  margin-left: 10px;
}

.input-mini {
  width: 60px;
}

.input-small {
  width: 90px;
}

.input-medium {
  width: 150px;
}

.input-large {
  width: 210px;
}

.input-xlarge {
  width: 270px;
}

.input-xxlarge {
  width: 530px;
}

input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"] {
  float: none;
  margin-left: 0;
}

.input-append input[class*="span"],
.input-append .uneditable-input[class*="span"],
.input-prepend input[class*="span"],
.input-prepend .uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"],
.row-fluid .input-prepend [class*="span"],
.row-fluid .input-append [class*="span"] {
  display: inline-block;
}

input,
textarea,
.uneditable-input {
  margin-left: 0;
}

.controls-row [class*="span"] + [class*="span"] {
  margin-left: 20px;
}

input.span12,
textarea.span12,
.uneditable-input.span12 {
  width: 926px;
}

input.span11,
textarea.span11,
.uneditable-input.span11 {
  width: 846px;
}

input.span10,
textarea.span10,
.uneditable-input.span10 {
  width: 766px;
}

input.span9,
textarea.span9,
.uneditable-input.span9 {
  width: 686px;
}

input.span8,
textarea.span8,
.uneditable-input.span8 {
  width: 606px;
}

input.span7,
textarea.span7,
.uneditable-input.span7 {
  width: 526px;
}

input.span6,
textarea.span6,
.uneditable-input.span6 {
  width: 446px;
}

input.span5,
textarea.span5,
.uneditable-input.span5 {
  width: 366px;
}

input.span4,
textarea.span4,
.uneditable-input.span4 {
  width: 286px;
}

input.span3,
textarea.span3,
.uneditable-input.span3 {
  width: 206px;
}

input.span2,
textarea.span2,
.uneditable-input.span2 {
  width: 126px;
}

input.span1,
textarea.span1,
.uneditable-input.span1 {
  width: 46px;
}

.controls-row {
  *zoom: 1;
}

.controls-row:before,
.controls-row:after {
  display: table;
  line-height: 0;
  content: "";
}

.controls-row:after {
  clear: both;
}

.controls-row [class*="span"],
.row-fluid .controls-row [class*="span"] {
  float: left;
}

.controls-row .checkbox[class*="span"],
.controls-row .radio[class*="span"] {
  padding-top: 5px;
}

input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
  cursor: not-allowed;
  background-color: #eeeeee;
}

input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
  background-color: transparent;
}

.control-group.warning .control-label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
  color: #c09853;
}

.control-group.warning .checkbox,
.control-group.warning .radio,
.control-group.warning input,
.control-group.warning select,
.control-group.warning textarea {
  color: #c09853;
}

.control-group.warning input,
.control-group.warning select,
.control-group.warning textarea {
  border-color: #c09853;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.control-group.warning input:focus,
.control-group.warning select:focus,
.control-group.warning textarea:focus {
  border-color: #a47e3c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
}

.control-group.warning .input-prepend .add-on,
.control-group.warning .input-append .add-on {
  color: #c09853;
  background-color: #fcf8e3;
  border-color: #c09853;
}

.control-group.error .control-label,
.control-group.error .help-block,
.control-group.error .help-inline {
  color: #b94a48;
}

.control-group.error .checkbox,
.control-group.error .radio,
.control-group.error input,
.control-group.error select,
.control-group.error textarea {
  color: #b94a48;
}

.control-group.error input,
.control-group.error select,
.control-group.error textarea {
  border-color: #b94a48;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
  border-color: #953b39;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
}

.control-group.error .input-prepend .add-on,
.control-group.error .input-append .add-on {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #b94a48;
}

.control-group.success .control-label,
.control-group.success .help-block,
.control-group.success .help-inline {
  color: #468847;
}

.control-group.success .checkbox,
.control-group.success .radio,
.control-group.success input,
.control-group.success select,
.control-group.success textarea {
  color: #468847;
}

.control-group.success input,
.control-group.success select,
.control-group.success textarea {
  border-color: #468847;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.control-group.success input:focus,
.control-group.success select:focus,
.control-group.success textarea:focus {
  border-color: #356635;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
}

.control-group.success .input-prepend .add-on,
.control-group.success .input-append .add-on {
  color: #468847;
  background-color: #dff0d8;
  border-color: #468847;
}

.control-group.info .control-label,
.control-group.info .help-block,
.control-group.info .help-inline {
  color: #3a87ad;
}

.control-group.info .checkbox,
.control-group.info .radio,
.control-group.info input,
.control-group.info select,
.control-group.info textarea {
  color: #3a87ad;
}

.control-group.info input,
.control-group.info select,
.control-group.info textarea {
  border-color: #3a87ad;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.control-group.info input:focus,
.control-group.info select:focus,
.control-group.info textarea:focus {
  border-color: #2d6987;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
}

.control-group.info .input-prepend .add-on,
.control-group.info .input-append .add-on {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #3a87ad;
}

input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
}

input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus {
  border-color: #e9322d;
  -webkit-box-shadow: 0 0 6px #f8b9b7;
     -moz-box-shadow: 0 0 6px #f8b9b7;
          box-shadow: 0 0 6px #f8b9b7;
}

.form-actions {
  padding: 19px 20px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border-top: 1px solid #e5e5e5;
  *zoom: 1;
}

.form-actions:before,
.form-actions:after {
  display: table;
  line-height: 0;
  content: "";
}

.form-actions:after {
  clear: both;
}

.help-block,
.help-inline {
  color: #595959;
}

.help-block {
  display: block;
  margin-bottom: 10px;
}

.help-inline {
  display: inline-block;
  *display: inline;
  padding-left: 5px;
  vertical-align: middle;
  *zoom: 1;
}

.input-append,
.input-prepend {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 0;
  white-space: nowrap;
  vertical-align: middle;
}

.input-append input,
.input-prepend input,
.input-append select,
.input-prepend select,
.input-append .uneditable-input,
.input-prepend .uneditable-input,
.input-append .dropdown-menu,
.input-prepend .dropdown-menu,
.input-append .popover,
.input-prepend .popover {
  font-size: 14px;
}

.input-append input,
.input-prepend input,
.input-append select,
.input-prepend select,
.input-append .uneditable-input,
.input-prepend .uneditable-input {
  position: relative;
  margin-bottom: 0;
  *margin-left: 0;
  vertical-align: top;
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.input-append input:focus,
.input-prepend input:focus,
.input-append select:focus,
.input-prepend select:focus,
.input-append .uneditable-input:focus,
.input-prepend .uneditable-input:focus {
  z-index: 2;
}

.input-append .add-on,
.input-prepend .add-on {
  display: inline-block;
  width: auto;
  height: 20px;
  min-width: 16px;
  padding: 4px 5px;
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  text-align: center;
  text-shadow: 0 1px 0 #ffffff;
  background-color: #eeeeee;
  border: 1px solid #ccc;
}

.input-append .add-on,
.input-prepend .add-on,
.input-append .btn,
.input-prepend .btn,
.input-append .btn-group > .dropdown-toggle,
.input-prepend .btn-group > .dropdown-toggle {
  vertical-align: top;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.input-prepend .add-on,
.input-prepend .btn {
  margin-right: -1px;
}

.input-prepend .add-on:first-child,
.input-prepend .btn:first-child {
  -webkit-border-radius: 4px 0 0 4px;
     -moz-border-radius: 4px 0 0 4px;
          border-radius: 4px 0 0 4px;
}

.input-append input,
.input-append select,
.input-append .uneditable-input {
  -webkit-border-radius: 4px 0 0 4px;
     -moz-border-radius: 4px 0 0 4px;
          border-radius: 4px 0 0 4px;
}

.input-append input + .btn-group .btn:last-child,
.input-append select + .btn-group .btn:last-child,
.input-append .uneditable-input + .btn-group .btn:last-child {
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.input-append .add-on,
.input-append .btn,
.input-append .btn-group {
  margin-left: -1px;
}

.input-append .add-on:last-child,
.input-append .btn:last-child,
.input-append .btn-group:last-child > .dropdown-toggle {
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.input-prepend.input-append input,
.input-prepend.input-append select,
.input-prepend.input-append .uneditable-input {
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.input-prepend.input-append input + .btn-group .btn,
.input-prepend.input-append select + .btn-group .btn,
.input-prepend.input-append .uneditable-input + .btn-group .btn {
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.input-prepend.input-append .add-on:first-child,
.input-prepend.input-append .btn:first-child {
  margin-right: -1px;
  -webkit-border-radius: 4px 0 0 4px;
     -moz-border-radius: 4px 0 0 4px;
          border-radius: 4px 0 0 4px;
}

.input-prepend.input-append .add-on:last-child,
.input-prepend.input-append .btn:last-child {
  margin-left: -1px;
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.input-prepend.input-append .btn-group:first-child {
  margin-left: 0;
}

input.search-query {
  padding-right: 14px;
  padding-right: 4px \9;
  padding-left: 14px;
  padding-left: 4px \9;
  /* IE7-8 doesn't have border-radius, so don't indent the padding */

  margin-bottom: 0;
  -webkit-border-radius: 15px;
     -moz-border-radius: 15px;
          border-radius: 15px;
}

/* Allow for input prepend/append in search forms */

.form-search .input-append .search-query,
.form-search .input-prepend .search-query {
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.form-search .input-append .search-query {
  -webkit-border-radius: 14px 0 0 14px;
     -moz-border-radius: 14px 0 0 14px;
          border-radius: 14px 0 0 14px;
}

.form-search .input-append .btn {
  -webkit-border-radius: 0 14px 14px 0;
     -moz-border-radius: 0 14px 14px 0;
          border-radius: 0 14px 14px 0;
}

.form-search .input-prepend .search-query {
  -webkit-border-radius: 0 14px 14px 0;
     -moz-border-radius: 0 14px 14px 0;
          border-radius: 0 14px 14px 0;
}

.form-search .input-prepend .btn {
  -webkit-border-radius: 14px 0 0 14px;
     -moz-border-radius: 14px 0 0 14px;
          border-radius: 14px 0 0 14px;
}

.form-search input,
.form-inline input,
.form-horizontal input,
.form-search textarea,
.form-inline textarea,
.form-horizontal textarea,
.form-search select,
.form-inline select,
.form-horizontal select,
.form-search .help-inline,
.form-inline .help-inline,
.form-horizontal .help-inline,
.form-search .uneditable-input,
.form-inline .uneditable-input,
.form-horizontal .uneditable-input,
.form-search .input-prepend,
.form-inline .input-prepend,
.form-horizontal .input-prepend,
.form-search .input-append,
.form-inline .input-append,
.form-horizontal .input-append {
  display: inline-block;
  *display: inline;
  margin-bottom: 0;
  vertical-align: middle;
  *zoom: 1;
}

.form-search .hide,
.form-inline .hide,
.form-horizontal .hide {
  display: none;
}

.form-search label,
.form-inline label,
.form-search .btn-group,
.form-inline .btn-group {
  display: inline-block;
}

.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
  margin-bottom: 0;
}

.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle;
}

.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0;
}

.control-group {
  margin-bottom: 10px;
}

legend + .control-group {
  margin-top: 20px;
  -webkit-margin-top-collapse: separate;
}

.form-horizontal .control-group {
  margin-bottom: 20px;
  *zoom: 1;
}

.form-horizontal .control-group:before,
.form-horizontal .control-group:after {
  display: table;
  line-height: 0;
  content: "";
}

.form-horizontal .control-group:after {
  clear: both;
}

.form-horizontal .control-label {
  float: left;
  width: 160px;
  padding-top: 5px;
  text-align: right;
}

.form-horizontal .controls {
  *display: inline-block;
  *padding-left: 20px;
  margin-left: 180px;
  *margin-left: 0;
}

.form-horizontal .controls:first-child {
  *padding-left: 180px;
}

.form-horizontal .help-block {
  margin-bottom: 0;
}

.form-horizontal input + .help-block,
.form-horizontal select + .help-block,
.form-horizontal textarea + .help-block,
.form-horizontal .uneditable-input + .help-block,
.form-horizontal .input-prepend + .help-block,
.form-horizontal .input-append + .help-block {
  margin-top: 10px;
}

.form-horizontal .form-actions {
  padding-left: 180px;
}

table {
  max-width: 100%;
  background-color: transparent;
  border-collapse: collapse;
  border-spacing: 0;
}

.table {
  width: 100%;
  margin-bottom: 20px;
}

.table th,
.table td {
  padding: 8px;
  line-height: 20px;
  text-align: left;
  vertical-align: top;
  border-top: 1px solid #dddddd;
}

.table th {
  font-weight: bold;
}

.table thead th {
  vertical-align: bottom;
}

.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 #dddddd;
}

.table .table {
  background-color: #ffffff;
}

.table-condensed th,
.table-condensed td {
  padding: 4px 5px;
}

.table-bordered {
  border: 1px solid #dddddd;
  border-collapse: separate;
  *border-collapse: collapse;
  border-left: 0;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.table-bordered th,
.table-bordered td {
  border-left: 1px solid #dddddd;
}

.table-bordered caption + thead tr:first-child th,
.table-bordered caption + tbody tr:first-child th,
.table-bordered caption + tbody tr:first-child td,
.table-bordered colgroup + thead tr:first-child th,
.table-bordered colgroup + tbody tr:first-child th,
.table-bordered colgroup + tbody tr:first-child td,
.table-bordered thead:first-child tr:first-child th,
.table-bordered tbody:first-child tr:first-child th,
.table-bordered tbody:first-child tr:first-child td {
  border-top: 0;
}

.table-bordered thead:first-child tr:first-child > th:first-child,
.table-bordered tbody:first-child tr:first-child > td:first-child,
.table-bordered tbody:first-child tr:first-child > th:first-child {
  -webkit-border-top-left-radius: 4px;
          border-top-left-radius: 4px;
  -moz-border-radius-topleft: 4px;
}

.table-bordered thead:first-child tr:first-child > th:last-child,
.table-bordered tbody:first-child tr:first-child > td:last-child,
.table-bordered tbody:first-child tr:first-child > th:last-child {
  -webkit-border-top-right-radius: 4px;
          border-top-right-radius: 4px;
  -moz-border-radius-topright: 4px;
}

.table-bordered thead:last-child tr:last-child > th:first-child,
.table-bordered tbody:last-child tr:last-child > td:first-child,
.table-bordered tbody:last-child tr:last-child > th:first-child,
.table-bordered tfoot:last-child tr:last-child > td:first-child,
.table-bordered tfoot:last-child tr:last-child > th:first-child {
  -webkit-border-bottom-left-radius: 4px;
          border-bottom-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
}

.table-bordered thead:last-child tr:last-child > th:last-child,
.table-bordered tbody:last-child tr:last-child > td:last-child,
.table-bordered tbody:last-child tr:last-child > th:last-child,
.table-bordered tfoot:last-child tr:last-child > td:last-child,
.table-bordered tfoot:last-child tr:last-child > th:last-child {
  -webkit-border-bottom-right-radius: 4px;
          border-bottom-right-radius: 4px;
  -moz-border-radius-bottomright: 4px;
}

.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
  -webkit-border-bottom-left-radius: 0;
          border-bottom-left-radius: 0;
  -moz-border-radius-bottomleft: 0;
}

.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
  -webkit-border-bottom-right-radius: 0;
          border-bottom-right-radius: 0;
  -moz-border-radius-bottomright: 0;
}

.table-bordered caption + thead tr:first-child th:first-child,
.table-bordered caption + tbody tr:first-child td:first-child,
.table-bordered colgroup + thead tr:first-child th:first-child,
.table-bordered colgroup + tbody tr:first-child td:first-child {
  -webkit-border-top-left-radius: 4px;
          border-top-left-radius: 4px;
  -moz-border-radius-topleft: 4px;
}

.table-bordered caption + thead tr:first-child th:last-child,
.table-bordered caption + tbody tr:first-child td:last-child,
.table-bordered colgroup + thead tr:first-child th:last-child,
.table-bordered colgroup + tbody tr:first-child td:last-child {
  -webkit-border-top-right-radius: 4px;
          border-top-right-radius: 4px;
  -moz-border-radius-topright: 4px;
}

.table-striped tbody > tr:nth-child(odd) > td,
.table-striped tbody > tr:nth-child(odd) > th {
  background-color: #f9f9f9;
}

.table-hover tbody tr:hover > td,
.table-hover tbody tr:hover > th {
  background-color: #f5f5f5;
}

table td[class*="span"],
table th[class*="span"],
.row-fluid table td[class*="span"],
.row-fluid table th[class*="span"] {
  display: table-cell;
  float: none;
  margin-left: 0;
}

.table td.span1,
.table th.span1 {
  float: none;
  width: 44px;
  margin-left: 0;
}

.table td.span2,
.table th.span2 {
  float: none;
  width: 124px;
  margin-left: 0;
}

.table td.span3,
.table th.span3 {
  float: none;
  width: 204px;
  margin-left: 0;
}

.table td.span4,
.table th.span4 {
  float: none;
  width: 284px;
  margin-left: 0;
}

.table td.span5,
.table th.span5 {
  float: none;
  width: 364px;
  margin-left: 0;
}

.table td.span6,
.table th.span6 {
  float: none;
  width: 444px;
  margin-left: 0;
}

.table td.span7,
.table th.span7 {
  float: none;
  width: 524px;
  margin-left: 0;
}

.table td.span8,
.table th.span8 {
  float: none;
  width: 604px;
  margin-left: 0;
}

.table td.span9,
.table th.span9 {
  float: none;
  width: 684px;
  margin-left: 0;
}

.table td.span10,
.table th.span10 {
  float: none;
  width: 764px;
  margin-left: 0;
}

.table td.span11,
.table th.span11 {
  float: none;
  width: 844px;
  margin-left: 0;
}

.table td.span12,
.table th.span12 {
  float: none;
  width: 924px;
  margin-left: 0;
}

.table tbody tr.success > td {
  background-color: #dff0d8;
}

.table tbody tr.error > td {
  background-color: #f2dede;
}

.table tbody tr.warning > td {
  background-color: #fcf8e3;
}

.table tbody tr.info > td {
  background-color: #d9edf7;
}

.table-hover tbody tr.success:hover > td {
  background-color: #d0e9c6;
}

.table-hover tbody tr.error:hover > td {
  background-color: #ebcccc;
}

.table-hover tbody tr.warning:hover > td {
  background-color: #faf2cc;
}

.table-hover tbody tr.info:hover > td {
  background-color: #c4e3f3;
}

[class^="icon-"],
[class*=" icon-"] {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  *margin-right: .3em;
  line-height: 14px;
  vertical-align: text-top;
  background-image: url("../img/glyphicons-halflings.png");
  background-position: 14px 14px;
  background-repeat: no-repeat;
}

/* White icons with optional class, or on hover/focus/active states of certain elements */

.icon-white,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:focus > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > li > a:focus > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:focus > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"],
.dropdown-submenu:focus > a > [class*=" icon-"] {
  background-image: url("../img/glyphicons-halflings-white.png");
}

.icon-glass {
  background-position: 0      0;
}

.icon-music {
  background-position: -24px 0;
}

.icon-search {
  background-position: -48px 0;
}

.icon-envelope {
  background-position: -72px 0;
}

.icon-heart {
  background-position: -96px 0;
}

.icon-star {
  background-position: -120px 0;
}

.icon-star-empty {
  background-position: -144px 0;
}

.icon-user {
  background-position: -168px 0;
}

.icon-film {
  background-position: -192px 0;
}

.icon-th-large {
  background-position: -216px 0;
}

.icon-th {
  background-position: -240px 0;
}

.icon-th-list {
  background-position: -264px 0;
}

.icon-ok {
  background-position: -288px 0;
}

.icon-remove {
  background-position: -312px 0;
}

.icon-zoom-in {
  background-position: -336px 0;
}

.icon-zoom-out {
  background-position: -360px 0;
}

.icon-off {
  background-position: -384px 0;
}

.icon-signal {
  background-position: -408px 0;
}

.icon-cog {
  background-position: -432px 0;
}

.icon-trash {
  background-position: -456px 0;
}

.icon-home {
  background-position: 0 -24px;
}

.icon-file {
  background-position: -24px -24px;
}

.icon-time {
  background-position: -48px -24px;
}

.icon-road {
  background-position: -72px -24px;
}

.icon-download-alt {
  background-position: -96px -24px;
}

.icon-download {
  background-position: -120px -24px;
}

.icon-upload {
  background-position: -144px -24px;
}

.icon-inbox {
  background-position: -168px -24px;
}

.icon-play-circle {
  background-position: -192px -24px;
}

.icon-repeat {
  background-position: -216px -24px;
}

.icon-refresh {
  background-position: -240px -24px;
}

.icon-list-alt {
  background-position: -264px -24px;
}

.icon-lock {
  background-position: -287px -24px;
}

.icon-flag {
  background-position: -312px -24px;
}

.icon-headphones {
  background-position: -336px -24px;
}

.icon-volume-off {
  background-position: -360px -24px;
}

.icon-volume-down {
  background-position: -384px -24px;
}

.icon-volume-up {
  background-position: -408px -24px;
}

.icon-qrcode {
  background-position: -432px -24px;
}

.icon-barcode {
  background-position: -456px -24px;
}

.icon-tag {
  background-position: 0 -48px;
}

.icon-tags {
  background-position: -25px -48px;
}

.icon-book {
  background-position: -48px -48px;
}

.icon-bookmark {
  background-position: -72px -48px;
}

.icon-print {
  background-position: -96px -48px;
}

.icon-camera {
  background-position: -120px -48px;
}

.icon-font {
  background-position: -144px -48px;
}

.icon-bold {
  background-position: -167px -48px;
}

.icon-italic {
  background-position: -192px -48px;
}

.icon-text-height {
  background-position: -216px -48px;
}

.icon-text-width {
  background-position: -240px -48px;
}

.icon-align-left {
  background-position: -264px -48px;
}

.icon-align-center {
  background-position: -288px -48px;
}

.icon-align-right {
  background-position: -312px -48px;
}

.icon-align-justify {
  background-position: -336px -48px;
}

.icon-list {
  background-position: -360px -48px;
}

.icon-indent-left {
  background-position: -384px -48px;
}

.icon-indent-right {
  background-position: -408px -48px;
}

.icon-facetime-video {
  background-position: -432px -48px;
}

.icon-picture {
  background-position: -456px -48px;
}

.icon-pencil {
  background-position: 0 -72px;
}

.icon-map-marker {
  background-position: -24px -72px;
}

.icon-adjust {
  background-position: -48px -72px;
}

.icon-tint {
  background-position: -72px -72px;
}

.icon-edit {
  background-position: -96px -72px;
}

.icon-share {
  background-position: -120px -72px;
}

.icon-check {
  background-position: -144px -72px;
}

.icon-move {
  background-position: -168px -72px;
}

.icon-step-backward {
  background-position: -192px -72px;
}

.icon-fast-backward {
  background-position: -216px -72px;
}

.icon-backward {
  background-position: -240px -72px;
}

.icon-play {
  background-position: -264px -72px;
}

.icon-pause {
  background-position: -288px -72px;
}

.icon-stop {
  background-position: -312px -72px;
}

.icon-forward {
  background-position: -336px -72px;
}

.icon-fast-forward {
  background-position: -360px -72px;
}

.icon-step-forward {
  background-position: -384px -72px;
}

.icon-eject {
  background-position: -408px -72px;
}

.icon-chevron-left {
  background-position: -432px -72px;
}

.icon-chevron-right {
  background-position: -456px -72px;
}

.icon-plus-sign {
  background-position: 0 -96px;
}

.icon-minus-sign {
  background-position: -24px -96px;
}

.icon-remove-sign {
  background-position: -48px -96px;
}

.icon-ok-sign {
  background-position: -72px -96px;
}

.icon-question-sign {
  background-position: -96px -96px;
}

.icon-info-sign {
  background-position: -120px -96px;
}

.icon-screenshot {
  background-position: -144px -96px;
}

.icon-remove-circle {
  background-position: -168px -96px;
}

.icon-ok-circle {
  background-position: -192px -96px;
}

.icon-ban-circle {
  background-position: -216px -96px;
}

.icon-arrow-left {
  background-position: -240px -96px;
}

.icon-arrow-right {
  background-position: -264px -96px;
}

.icon-arrow-up {
  background-position: -289px -96px;
}

.icon-arrow-down {
  background-position: -312px -96px;
}

.icon-share-alt {
  background-position: -336px -96px;
}

.icon-resize-full {
  background-position: -360px -96px;
}

.icon-resize-small {
  background-position: -384px -96px;
}

.icon-plus {
  background-position: -408px -96px;
}

.icon-minus {
  background-position: -433px -96px;
}

.icon-asterisk {
  background-position: -456px -96px;
}

.icon-exclamation-sign {
  background-position: 0 -120px;
}

.icon-gift {
  background-position: -24px -120px;
}

.icon-leaf {
  background-position: -48px -120px;
}

.icon-fire {
  background-position: -72px -120px;
}

.icon-eye-open {
  background-position: -96px -120px;
}

.icon-eye-close {
  background-position: -120px -120px;
}

.icon-warning-sign {
  background-position: -144px -120px;
}

.icon-plane {
  background-position: -168px -120px;
}

.icon-calendar {
  background-position: -192px -120px;
}

.icon-random {
  width: 16px;
  background-position: -216px -120px;
}

.icon-comment {
  background-position: -240px -120px;
}

.icon-magnet {
  background-position: -264px -120px;
}

.icon-chevron-up {
  background-position: -288px -120px;
}

.icon-chevron-down {
  background-position: -313px -119px;
}

.icon-retweet {
  background-position: -336px -120px;
}

.icon-shopping-cart {
  background-position: -360px -120px;
}

.icon-folder-close {
  width: 16px;
  background-position: -384px -120px;
}

.icon-folder-open {
  width: 16px;
  background-position: -408px -120px;
}

.icon-resize-vertical {
  background-position: -432px -119px;
}

.icon-resize-horizontal {
  background-position: -456px -118px;
}

.icon-hdd {
  background-position: 0 -144px;
}

.icon-bullhorn {
  background-position: -24px -144px;
}

.icon-bell {
  background-position: -48px -144px;
}

.icon-certificate {
  background-position: -72px -144px;
}

.icon-thumbs-up {
  background-position: -96px -144px;
}

.icon-thumbs-down {
  background-position: -120px -144px;
}

.icon-hand-right {
  background-position: -144px -144px;
}

.icon-hand-left {
  background-position: -168px -144px;
}

.icon-hand-up {
  background-position: -192px -144px;
}

.icon-hand-down {
  background-position: -216px -144px;
}

.icon-circle-arrow-right {
  background-position: -240px -144px;
}

.icon-circle-arrow-left {
  background-position: -264px -144px;
}

.icon-circle-arrow-up {
  background-position: -288px -144px;
}

.icon-circle-arrow-down {
  background-position: -312px -144px;
}

.icon-globe {
  background-position: -336px -144px;
}

.icon-wrench {
  background-position: -360px -144px;
}

.icon-tasks {
  background-position: -384px -144px;
}

.icon-filter {
  background-position: -408px -144px;
}

.icon-briefcase {
  background-position: -432px -144px;
}

.icon-fullscreen {
  background-position: -456px -144px;
}

.dropup,
.dropdown {
  position: relative;
}

.dropdown-toggle {
  *margin-bottom: -3px;
}

.dropdown-toggle:active,
.open .dropdown-toggle {
  outline: 0;
}

.caret {
  display: inline-block;
  width: 0;
  height: 0;
  vertical-align: top;
  border-top: 4px solid #000000;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
}

.dropdown .caret {
  margin-top: 8px;
  margin-left: 2px;
}

.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;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding;
          background-clip: padding-box;
}

.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}

.dropdown-menu .divider {
  *width: 100%;
  height: 1px;
  margin: 9px 1px;
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #ffffff;
}

.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 20px;
  color: #333333;
  white-space: nowrap;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
  color: #ffffff;
  text-decoration: none;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
}

.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #ffffff;
  text-decoration: none;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  background-repeat: repeat-x;
  outline: 0;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
}

.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #999999;
}

.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  cursor: default;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.open {
  *z-index: 1000;
}

.open > .dropdown-menu {
  display: block;
}

.dropdown-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 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 solid #000000;
  content: "";
}

.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
     -moz-border-radius: 0 6px 6px 6px;
          border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

.dropup .dropdown-submenu > .dropdown-menu {
  top: auto;
  bottom: 0;
  margin-top: 0;
  margin-bottom: -2px;
  -webkit-border-radius: 5px 5px 5px 0;
     -moz-border-radius: 5px 5px 5px 0;
          border-radius: 5px 5px 5px 0;
}

.dropdown-submenu > a:after {
  display: block;
  float: right;
  width: 0;
  height: 0;
  margin-top: 5px;
  margin-right: -10px;
  border-color: transparent;
  border-left-color: #cccccc;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  content: " ";
}

.dropdown-submenu:hover > a:after {
  border-left-color: #ffffff;
}

.dropdown-submenu.pull-left {
  float: none;
}

.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
     -moz-border-radius: 6px 0 6px 6px;
          border-radius: 6px 0 6px 6px;
}

.dropdown .dropdown-menu .nav-header {
  padding-right: 20px;
  padding-left: 20px;
}

.typeahead {
  z-index: 1051;
  margin-top: 2px;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
          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-large {
  padding: 24px;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}

.well-small {
  padding: 9px;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
     -moz-transition: opacity 0.15s linear;
       -o-transition: opacity 0.15s linear;
          transition: opacity 0.15s linear;
}

.fade.in {
  opacity: 1;
}

.collapse {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
     -moz-transition: height 0.35s ease;
       -o-transition: height 0.35s ease;
          transition: height 0.35s ease;
}

.collapse.in {
  height: auto;
}

.close {
  float: right;
  font-size: 20px;
  font-weight: bold;
  line-height: 20px;
  color: #000000;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}

.close:hover,
.close:focus {
  color: #000000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.4;
  filter: alpha(opacity=40);
}

button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}

.btn {
  display: inline-block;
  *display: inline;
  padding: 4px 12px;
  margin-bottom: 0;
  *margin-left: .3em;
  font-size: 14px;
  line-height: 20px;
  color: #333333;
  text-align: center;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  vertical-align: middle;
  cursor: pointer;
  background-color: #f5f5f5;
  *background-color: #e6e6e6;
  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
  background-repeat: repeat-x;
  border: 1px solid #cccccc;
  *border: 0;
  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  border-bottom-color: #b3b3b3;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  *zoom: 1;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn.disabled,
.btn[disabled] {
  color: #333333;
  background-color: #e6e6e6;
  *background-color: #d9d9d9;
}

.btn:active,
.btn.active {
  background-color: #cccccc \9;
}

.btn:first-child {
  *margin-left: 0;
}

.btn:hover,
.btn:focus {
  color: #333333;
  text-decoration: none;
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
     -moz-transition: background-position 0.1s linear;
       -o-transition: background-position 0.1s linear;
          transition: background-position 0.1s linear;
}

.btn:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

.btn.active,
.btn:active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn.disabled,
.btn[disabled] {
  cursor: default;
  background-image: none;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
     -moz-box-shadow: none;
          box-shadow: none;
}

.btn-large {
  padding: 11px 19px;
  font-size: 17.5px;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}

.btn-large [class^="icon-"],
.btn-large [class*=" icon-"] {
  margin-top: 4px;
}

.btn-small {
  padding: 2px 10px;
  font-size: 11.9px;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

.btn-small [class^="icon-"],
.btn-small [class*=" icon-"] {
  margin-top: 0;
}

.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
  margin-top: -1px;
}

.btn-mini {
  padding: 0 6px;
  font-size: 10.5px;
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

.btn-block {
  display: block;
  width: 100%;
  padding-right: 0;
  padding-left: 0;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

.btn-block + .btn-block {
  margin-top: 5px;
}

input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}

.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
.btn-info.active,
.btn-inverse.active {
  color: rgba(255, 255, 255, 0.75);
}

.btn-primary {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #006dcc;
  *background-color: #0044cc;
  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
  background-image: -o-linear-gradient(top, #0088cc, #0044cc);
  background-image: linear-gradient(to bottom, #0088cc, #0044cc);
  background-repeat: repeat-x;
  border-color: #0044cc #0044cc #002a80;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary.disabled,
.btn-primary[disabled] {
  color: #ffffff;
  background-color: #0044cc;
  *background-color: #003bb3;
}

.btn-primary:active,
.btn-primary.active {
  background-color: #003399 \9;
}

.btn-warning {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #faa732;
  *background-color: #f89406;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  border-color: #f89406 #f89406 #ad6704;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.btn-warning.disabled,
.btn-warning[disabled] {
  color: #ffffff;
  background-color: #f89406;
  *background-color: #df8505;
}

.btn-warning:active,
.btn-warning.active {
  background-color: #c67605 \9;
}

.btn-danger {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #da4f49;
  *background-color: #bd362f;
  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
  background-repeat: repeat-x;
  border-color: #bd362f #bd362f #802420;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.btn-danger.disabled,
.btn-danger[disabled] {
  color: #ffffff;
  background-color: #bd362f;
  *background-color: #a9302a;
}

.btn-danger:active,
.btn-danger.active {
  background-color: #942a25 \9;
}

.btn-success {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #5bb75b;
  *background-color: #51a351;
  background-image: -moz-linear-gradient(top, #62c462, #51a351);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
  background-image: -o-linear-gradient(top, #62c462, #51a351);
  background-image: linear-gradient(to bottom, #62c462, #51a351);
  background-repeat: repeat-x;
  border-color: #51a351 #51a351 #387038;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.btn-success.disabled,
.btn-success[disabled] {
  color: #ffffff;
  background-color: #51a351;
  *background-color: #499249;
}

.btn-success:active,
.btn-success.active {
  background-color: #408140 \9;
}

.btn-info {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #49afcd;
  *background-color: #2f96b4;
  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
  background-repeat: repeat-x;
  border-color: #2f96b4 #2f96b4 #1f6377;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.btn-info.disabled,
.btn-info[disabled] {
  color: #ffffff;
  background-color: #2f96b4;
  *background-color: #2a85a0;
}

.btn-info:active,
.btn-info.active {
  background-color: #24748c \9;
}

.btn-inverse {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #363636;
  *background-color: #222222;
  background-image: -moz-linear-gradient(top, #444444, #222222);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
  background-image: -webkit-linear-gradient(top, #444444, #222222);
  background-image: -o-linear-gradient(top, #444444, #222222);
  background-image: linear-gradient(to bottom, #444444, #222222);
  background-repeat: repeat-x;
  border-color: #222222 #222222 #000000;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-inverse:hover,
.btn-inverse:focus,
.btn-inverse:active,
.btn-inverse.active,
.btn-inverse.disabled,
.btn-inverse[disabled] {
  color: #ffffff;
  background-color: #222222;
  *background-color: #151515;
}

.btn-inverse:active,
.btn-inverse.active {
  background-color: #080808 \9;
}

button.btn,
input[type="submit"].btn {
  *padding-top: 3px;
  *padding-bottom: 3px;
}

button.btn::-moz-focus-inner,
input[type="submit"].btn::-moz-focus-inner {
  padding: 0;
  border: 0;
}

button.btn.btn-large,
input[type="submit"].btn.btn-large {
  *padding-top: 7px;
  *padding-bottom: 7px;
}

button.btn.btn-small,
input[type="submit"].btn.btn-small {
  *padding-top: 3px;
  *padding-bottom: 3px;
}

button.btn.btn-mini,
input[type="submit"].btn.btn-mini {
  *padding-top: 1px;
  *padding-bottom: 1px;
}

.btn-link,
.btn-link:active,
.btn-link[disabled] {
  background-color: transparent;
  background-image: none;
  -webkit-box-shadow: none;
     -moz-box-shadow: none;
          box-shadow: none;
}

.btn-link {
  color: #0088cc;
  cursor: pointer;
  border-color: transparent;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.btn-link:hover,
.btn-link:focus {
  color: #005580;
  text-decoration: underline;
  background-color: transparent;
}

.btn-link[disabled]:hover,
.btn-link[disabled]:focus {
  color: #333333;
  text-decoration: none;
}

.btn-group {
  position: relative;
  display: inline-block;
  *display: inline;
  *margin-left: .3em;
  font-size: 0;
  white-space: nowrap;
  vertical-align: middle;
  *zoom: 1;
}

.btn-group:first-child {
  *margin-left: 0;
}

.btn-group + .btn-group {
  margin-left: 5px;
}

.btn-toolbar {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 0;
}

.btn-toolbar > .btn + .btn,
.btn-toolbar > .btn-group + .btn,
.btn-toolbar > .btn + .btn-group {
  margin-left: 5px;
}

.btn-group > .btn {
  position: relative;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.btn-group > .btn + .btn {
  margin-left: -1px;
}

.btn-group > .btn,
.btn-group > .dropdown-menu,
.btn-group > .popover {
  font-size: 14px;
}

.btn-group > .btn-mini {
  font-size: 10.5px;
}

.btn-group > .btn-small {
  font-size: 11.9px;
}

.btn-group > .btn-large {
  font-size: 17.5px;
}

.btn-group > .btn:first-child {
  margin-left: 0;
  -webkit-border-bottom-left-radius: 4px;
          border-bottom-left-radius: 4px;
  -webkit-border-top-left-radius: 4px;
          border-top-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  -moz-border-radius-topleft: 4px;
}

.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
  -webkit-border-top-right-radius: 4px;
          border-top-right-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
          border-bottom-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-bottomright: 4px;
}

.btn-group > .btn.large:first-child {
  margin-left: 0;
  -webkit-border-bottom-left-radius: 6px;
          border-bottom-left-radius: 6px;
  -webkit-border-top-left-radius: 6px;
          border-top-left-radius: 6px;
  -moz-border-radius-bottomleft: 6px;
  -moz-border-radius-topleft: 6px;
}

.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
  -webkit-border-top-right-radius: 6px;
          border-top-right-radius: 6px;
  -webkit-border-bottom-right-radius: 6px;
          border-bottom-right-radius: 6px;
  -moz-border-radius-topright: 6px;
  -moz-border-radius-bottomright: 6px;
}

.btn-group > .btn:hover,
.btn-group > .btn:focus,
.btn-group > .btn:active,
.btn-group > .btn.active {
  z-index: 2;
}

.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}

.btn-group > .btn + .dropdown-toggle {
  *padding-top: 5px;
  padding-right: 8px;
  *padding-bottom: 5px;
  padding-left: 8px;
  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn-group > .btn-mini + .dropdown-toggle {
  *padding-top: 2px;
  padding-right: 5px;
  *padding-bottom: 2px;
  padding-left: 5px;
}

.btn-group > .btn-small + .dropdown-toggle {
  *padding-top: 5px;
  *padding-bottom: 4px;
}

.btn-group > .btn-large + .dropdown-toggle {
  *padding-top: 7px;
  padding-right: 12px;
  *padding-bottom: 7px;
  padding-left: 12px;
}

.btn-group.open .dropdown-toggle {
  background-image: none;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn-group.open .btn.dropdown-toggle {
  background-color: #e6e6e6;
}

.btn-group.open .btn-primary.dropdown-toggle {
  background-color: #0044cc;
}

.btn-group.open .btn-warning.dropdown-toggle {
  background-color: #f89406;
}

.btn-group.open .btn-danger.dropdown-toggle {
  background-color: #bd362f;
}

.btn-group.open .btn-success.dropdown-toggle {
  background-color: #51a351;
}

.btn-group.open .btn-info.dropdown-toggle {
  background-color: #2f96b4;
}

.btn-group.open .btn-inverse.dropdown-toggle {
  background-color: #222222;
}

.btn .caret {
  margin-top: 8px;
  margin-left: 0;
}

.btn-large .caret {
  margin-top: 6px;
}

.btn-large .caret {
  border-top-width: 5px;
  border-right-width: 5px;
  border-left-width: 5px;
}

.btn-mini .caret,
.btn-small .caret {
  margin-top: 8px;
}

.dropup .btn-large .caret {
  border-bottom-width: 5px;
}

.btn-primary .caret,
.btn-warning .caret,
.btn-danger .caret,
.btn-info .caret,
.btn-success .caret,
.btn-inverse .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}

.btn-group-vertical {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */

  *zoom: 1;
}

.btn-group-vertical > .btn {
  display: block;
  float: none;
  max-width: 100%;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.btn-group-vertical > .btn + .btn {
  margin-top: -1px;
  margin-left: 0;
}

.btn-group-vertical > .btn:first-child {
  -webkit-border-radius: 4px 4px 0 0;
     -moz-border-radius: 4px 4px 0 0;
          border-radius: 4px 4px 0 0;
}

.btn-group-vertical > .btn:last-child {
  -webkit-border-radius: 0 0 4px 4px;
     -moz-border-radius: 0 0 4px 4px;
          border-radius: 0 0 4px 4px;
}

.btn-group-vertical > .btn-large:first-child {
  -webkit-border-radius: 6px 6px 0 0;
     -moz-border-radius: 6px 6px 0 0;
          border-radius: 6px 6px 0 0;
}

.btn-group-vertical > .btn-large:last-child {
  -webkit-border-radius: 0 0 6px 6px;
     -moz-border-radius: 0 0 6px 6px;
          border-radius: 0 0 6px 6px;
}

.alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: 20px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #fcf8e3;
  border: 1px solid #fbeed5;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.alert,
.alert h4 {
  color: #c09853;
}

.alert h4 {
  margin: 0;
}

.alert .close {
  position: relative;
  top: -2px;
  right: -21px;
  line-height: 20px;
}

.alert-success {
  color: #468847;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}

.alert-success h4 {
  color: #468847;
}

.alert-danger,
.alert-error {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #eed3d7;
}

.alert-danger h4,
.alert-error h4 {
  color: #b94a48;
}

.alert-info {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #bce8f1;
}

.alert-info h4 {
  color: #3a87ad;
}

.alert-block {
  padding-top: 14px;
  padding-bottom: 14px;
}

.alert-block > p,
.alert-block > ul {
  margin-bottom: 0;
}

.alert-block p + p {
  margin-top: 5px;
}

.nav {
  margin-bottom: 20px;
  margin-left: 0;
  list-style: none;
}

.nav > li > a {
  display: block;
}

.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}

.nav > li > a > img {
  max-width: none;
}

.nav > .pull-right {
  float: right;
}

.nav-header {
  display: block;
  padding: 3px 15px;
  font-size: 11px;
  font-weight: bold;
  line-height: 20px;
  color: #999999;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
}

.nav li + .nav-header {
  margin-top: 9px;
}

.nav-list {
  padding-right: 15px;
  padding-left: 15px;
  margin-bottom: 0;
}

.nav-list > li > a,
.nav-list .nav-header {
  margin-right: -15px;
  margin-left: -15px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.nav-list > li > a {
  padding: 3px 15px;
}

.nav-list > .active > a,
.nav-list > .active > a:hover,
.nav-list > .active > a:focus {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  background-color: #0088cc;
}

.nav-list [class^="icon-"],
.nav-list [class*=" icon-"] {
  margin-right: 2px;
}

.nav-list .divider {
  *width: 100%;
  height: 1px;
  margin: 9px 1px;
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #ffffff;
}

.nav-tabs,
.nav-pills {
  *zoom: 1;
}

.nav-tabs:before,
.nav-pills:before,
.nav-tabs:after,
.nav-pills:after {
  display: table;
  line-height: 0;
  content: "";
}

.nav-tabs:after,
.nav-pills:after {
  clear: both;
}

.nav-tabs > li,
.nav-pills > li {
  float: left;
}

.nav-tabs > li > a,
.nav-pills > li > a {
  padding-right: 12px;
  padding-left: 12px;
  margin-right: 2px;
  line-height: 14px;
}

.nav-tabs {
  border-bottom: 1px solid #ddd;
}

.nav-tabs > li {
  margin-bottom: -1px;
}

.nav-tabs > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: 20px;
  border: 1px solid transparent;
  -webkit-border-radius: 4px 4px 0 0;
     -moz-border-radius: 4px 4px 0 0;
          border-radius: 4px 4px 0 0;
}

.nav-tabs > li > a:hover,
.nav-tabs > li > a:focus {
  border-color: #eeeeee #eeeeee #dddddd;
}

.nav-tabs > .active > a,
.nav-tabs > .active > a:hover,
.nav-tabs > .active > a:focus {
  color: #555555;
  cursor: default;
  background-color: #ffffff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
}

.nav-pills > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  margin-top: 2px;
  margin-bottom: 2px;
  -webkit-border-radius: 5px;
     -moz-border-radius: 5px;
          border-radius: 5px;
}

.nav-pills > .active > a,
.nav-pills > .active > a:hover,
.nav-pills > .active > a:focus {
  color: #ffffff;
  background-color: #0088cc;
}

.nav-stacked > li {
  float: none;
}

.nav-stacked > li > a {
  margin-right: 0;
}

.nav-tabs.nav-stacked {
  border-bottom: 0;
}

.nav-tabs.nav-stacked > li > a {
  border: 1px solid #ddd;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.nav-tabs.nav-stacked > li:first-child > a {
  -webkit-border-top-right-radius: 4px;
          border-top-right-radius: 4px;
  -webkit-border-top-left-radius: 4px;
          border-top-left-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-topleft: 4px;
}

.nav-tabs.nav-stacked > li:last-child > a {
  -webkit-border-bottom-right-radius: 4px;
          border-bottom-right-radius: 4px;
  -webkit-border-bottom-left-radius: 4px;
          border-bottom-left-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  -moz-border-radius-bottomleft: 4px;
}

.nav-tabs.nav-stacked > li > a:hover,
.nav-tabs.nav-stacked > li > a:focus {
  z-index: 2;
  border-color: #ddd;
}

.nav-pills.nav-stacked > li > a {
  margin-bottom: 3px;
}

.nav-pills.nav-stacked > li:last-child > a {
  margin-bottom: 1px;
}

.nav-tabs .dropdown-menu {
  -webkit-border-radius: 0 0 6px 6px;
     -moz-border-radius: 0 0 6px 6px;
          border-radius: 0 0 6px 6px;
}

.nav-pills .dropdown-menu {
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}

.nav .dropdown-toggle .caret {
  margin-top: 6px;
  border-top-color: #0088cc;
  border-bottom-color: #0088cc;
}

.nav .dropdown-toggle:hover .caret,
.nav .dropdown-toggle:focus .caret {
  border-top-color: #005580;
  border-bottom-color: #005580;
}

/* move down carets for tabs */

.nav-tabs .dropdown-toggle .caret {
  margin-top: 8px;
}

.nav .active .dropdown-toggle .caret {
  border-top-color: #fff;
  border-bottom-color: #fff;
}

.nav-tabs .active .dropdown-toggle .caret {
  border-top-color: #555555;
  border-bottom-color: #555555;
}

.nav > .dropdown.active > a:hover,
.nav > .dropdown.active > a:focus {
  cursor: pointer;
}

.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
.nav > li.dropdown.open.active > a:hover,
.nav > li.dropdown.open.active > a:focus {
  color: #ffffff;
  background-color: #999999;
  border-color: #999999;
}

.nav li.dropdown.open .caret,
.nav li.dropdown.open.active .caret,
.nav li.dropdown.open a:hover .caret,
.nav li.dropdown.open a:focus .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
  opacity: 1;
  filter: alpha(opacity=100);
}

.tabs-stacked .open > a:hover,
.tabs-stacked .open > a:focus {
  border-color: #999999;
}

.tabbable {
  *zoom: 1;
}

.tabbable:before,
.tabbable:after {
  display: table;
  line-height: 0;
  content: "";
}

.tabbable:after {
  clear: both;
}

.tab-content {
  overflow: auto;
}

.tabs-below > .nav-tabs,
.tabs-right > .nav-tabs,
.tabs-left > .nav-tabs {
  border-bottom: 0;
}

.tab-content > .tab-pane,
.pill-content > .pill-pane {
  display: none;
}

.tab-content > .active,
.pill-content > .active {
  display: block;
}

.tabs-below > .nav-tabs {
  border-top: 1px solid #ddd;
}

.tabs-below > .nav-tabs > li {
  margin-top: -1px;
  margin-bottom: 0;
}

.tabs-below > .nav-tabs > li > a {
  -webkit-border-radius: 0 0 4px 4px;
     -moz-border-radius: 0 0 4px 4px;
          border-radius: 0 0 4px 4px;
}

.tabs-below > .nav-tabs > li > a:hover,
.tabs-below > .nav-tabs > li > a:focus {
  border-top-color: #ddd;
  border-bottom-color: transparent;
}

.tabs-below > .nav-tabs > .active > a,
.tabs-below > .nav-tabs > .active > a:hover,
.tabs-below > .nav-tabs > .active > a:focus {
  border-color: transparent #ddd #ddd #ddd;
}

.tabs-left > .nav-tabs > li,
.tabs-right > .nav-tabs > li {
  float: none;
}

.tabs-left > .nav-tabs > li > a,
.tabs-right > .nav-tabs > li > a {
  min-width: 74px;
  margin-right: 0;
  margin-bottom: 3px;
}

.tabs-left > .nav-tabs {
  float: left;
  margin-right: 19px;
  border-right: 1px solid #ddd;
}

.tabs-left > .nav-tabs > li > a {
  margin-right: -1px;
  -webkit-border-radius: 4px 0 0 4px;
     -moz-border-radius: 4px 0 0 4px;
          border-radius: 4px 0 0 4px;
}

.tabs-left > .nav-tabs > li > a:hover,
.tabs-left > .nav-tabs > li > a:focus {
  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
}

.tabs-left > .nav-tabs .active > a,
.tabs-left > .nav-tabs .active > a:hover,
.tabs-left > .nav-tabs .active > a:focus {
  border-color: #ddd transparent #ddd #ddd;
  *border-right-color: #ffffff;
}

.tabs-right > .nav-tabs {
  float: right;
  margin-left: 19px;
  border-left: 1px solid #ddd;
}

.tabs-right > .nav-tabs > li > a {
  margin-left: -1px;
  -webkit-border-radius: 0 4px 4px 0;
     -moz-border-radius: 0 4px 4px 0;
          border-radius: 0 4px 4px 0;
}

.tabs-right > .nav-tabs > li > a:hover,
.tabs-right > .nav-tabs > li > a:focus {
  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
}

.tabs-right > .nav-tabs .active > a,
.tabs-right > .nav-tabs .active > a:hover,
.tabs-right > .nav-tabs .active > a:focus {
  border-color: #ddd #ddd #ddd transparent;
  *border-left-color: #ffffff;
}

.nav > .disabled > a {
  color: #999999;
}

.nav > .disabled > a:hover,
.nav > .disabled > a:focus {
  text-decoration: none;
  cursor: default;
  background-color: transparent;
}

.navbar {
  *position: relative;
  *z-index: 2;
  margin-bottom: 20px;
  overflow: visible;
}

.navbar-inner {
  min-height: 40px;
  padding-right: 20px;
  padding-left: 20px;
  background-color: #fafafa;
  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
  background-repeat: repeat-x;
  border: 1px solid #d4d4d4;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
  *zoom: 1;
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
}

.navbar-inner:before,
.navbar-inner:after {
  display: table;
  line-height: 0;
  content: "";
}

.navbar-inner:after {
  clear: both;
}

.navbar .container {
  width: auto;
}

.nav-collapse.collapse {
  height: auto;
  overflow: visible;
}

.navbar .brand {
  display: block;
  float: left;
  padding: 10px 20px 10px;
  margin-left: -20px;
  font-size: 20px;
  font-weight: 200;
  color: #777777;
  text-shadow: 0 1px 0 #ffffff;
}

.navbar .brand:hover,
.navbar .brand:focus {
  text-decoration: none;
}

.navbar-text {
  margin-bottom: 0;
  line-height: 40px;
  color: #777777;
}

.navbar-link {
  color: #777777;
}

.navbar-link:hover,
.navbar-link:focus {
  color: #333333;
}

.navbar .divider-vertical {
  height: 40px;
  margin: 0 9px;
  border-right: 1px solid #ffffff;
  border-left: 1px solid #f2f2f2;
}

.navbar .btn,
.navbar .btn-group {
  margin-top: 5px;
}

.navbar .btn-group .btn,
.navbar .input-prepend .btn,
.navbar .input-append .btn,
.navbar .input-prepend .btn-group,
.navbar .input-append .btn-group {
  margin-top: 0;
}

.navbar-form {
  margin-bottom: 0;
  *zoom: 1;
}

.navbar-form:before,
.navbar-form:after {
  display: table;
  line-height: 0;
  content: "";
}

.navbar-form:after {
  clear: both;
}

.navbar-form input,
.navbar-form select,
.navbar-form .radio,
.navbar-form .checkbox {
  margin-top: 5px;
}

.navbar-form input,
.navbar-form select,
.navbar-form .btn {
  display: inline-block;
  margin-bottom: 0;
}

.navbar-form input[type="image"],
.navbar-form input[type="checkbox"],
.navbar-form input[type="radio"] {
  margin-top: 3px;
}

.navbar-form .input-append,
.navbar-form .input-prepend {
  margin-top: 5px;
  white-space: nowrap;
}

.navbar-form .input-append input,
.navbar-form .input-prepend input {
  margin-top: 0;
}

.navbar-search {
  position: relative;
  float: left;
  margin-top: 5px;
  margin-bottom: 0;
}

.navbar-search .search-query {
  padding: 4px 14px;
  margin-bottom: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  -webkit-border-radius: 15px;
     -moz-border-radius: 15px;
          border-radius: 15px;
}

.navbar-static-top {
  position: static;
  margin-bottom: 0;
}

.navbar-static-top .navbar-inner {
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
  margin-bottom: 0;
}

.navbar-fixed-top .navbar-inner,
.navbar-static-top .navbar-inner {
  border-width: 0 0 1px;
}

.navbar-fixed-bottom .navbar-inner {
  border-width: 1px 0 0;
}

.navbar-fixed-top .navbar-inner,
.navbar-fixed-bottom .navbar-inner {
  padding-right: 0;
  padding-left: 0;
  -webkit-border-radius: 0;
     -moz-border-radius: 0;
          border-radius: 0;
}

.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
  width: 940px;
}

.navbar-fixed-top {
  top: 0;
}

.navbar-fixed-top .navbar-inner,
.navbar-static-top .navbar-inner {
  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
     -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
          box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
}

.navbar-fixed-bottom {
  bottom: 0;
}

.navbar-fixed-bottom .navbar-inner {
  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
     -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
          box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
}

.navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0 10px 0 0;
}

.navbar .nav.pull-right {
  float: right;
  margin-right: 0;
}

.navbar .nav > li {
  float: left;
}

.navbar .nav > li > a {
  float: none;
  padding: 10px 15px 10px;
  color: #777777;
  text-decoration: none;
  text-shadow: 0 1px 0 #ffffff;
}

.navbar .nav .dropdown-toggle .caret {
  margin-top: 8px;
}

.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
  color: #333333;
  text-decoration: none;
  background-color: transparent;
}

.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
  color: #555555;
  text-decoration: none;
  background-color: #e5e5e5;
  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
}

.navbar .btn-navbar {
  display: none;
  float: right;
  padding: 7px 10px;
  margin-right: 5px;
  margin-left: 5px;
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #ededed;
  *background-color: #e5e5e5;
  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
  background-repeat: repeat-x;
  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
}

.navbar .btn-navbar:hover,
.navbar .btn-navbar:focus,
.navbar .btn-navbar:active,
.navbar .btn-navbar.active,
.navbar .btn-navbar.disabled,
.navbar .btn-navbar[disabled] {
  color: #ffffff;
  background-color: #e5e5e5;
  *background-color: #d9d9d9;
}

.navbar .btn-navbar:active,
.navbar .btn-navbar.active {
  background-color: #cccccc \9;
}

.navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 2px;
  background-color: #f5f5f5;
  -webkit-border-radius: 1px;
     -moz-border-radius: 1px;
          border-radius: 1px;
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

.btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
}

.navbar .nav > li > .dropdown-menu:before {
  position: absolute;
  top: -7px;
  left: 9px;
  display: inline-block;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #ccc;
  border-left: 7px solid transparent;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  content: '';
}

.navbar .nav > li > .dropdown-menu:after {
  position: absolute;
  top: -6px;
  left: 10px;
  display: inline-block;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #ffffff;
  border-left: 6px solid transparent;
  content: '';
}

.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
  top: auto;
  bottom: -7px;
  border-top: 7px solid #ccc;
  border-bottom: 0;
  border-top-color: rgba(0, 0, 0, 0.2);
}

.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
  top: auto;
  bottom: -6px;
  border-top: 6px solid #ffffff;
  border-bottom: 0;
}

.navbar .nav li.dropdown > a:hover .caret,
.navbar .nav li.dropdown > a:focus .caret {
  border-top-color: #333333;
  border-bottom-color: #333333;
}

.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
  color: #555555;
  background-color: #e5e5e5;
}

.navbar .nav li.dropdown > .dropdown-toggle .caret {
  border-top-color: #777777;
  border-bottom-color: #777777;
}

.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
  border-top-color: #555555;
  border-bottom-color: #555555;
}

.navbar .pull-right > li > .dropdown-menu,
.navbar .nav > li > .dropdown-menu.pull-right {
  right: 0;
  left: auto;
}

.navbar .pull-right > li > .dropdown-menu:before,
.navbar .nav > li > .dropdown-menu.pull-right:before {
  right: 12px;
  left: auto;
}

.navbar .pull-right > li > .dropdown-menu:after,
.navbar .nav > li > .dropdown-menu.pull-right:after {
  right: 13px;
  left: auto;
}

.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
  right: 100%;
  left: auto;
  margin-right: -1px;
  margin-left: 0;
  -webkit-border-radius: 6px 0 6px 6px;
     -moz-border-radius: 6px 0 6px 6px;
          border-radius: 6px 0 6px 6px;
}

.navbar-inverse .navbar-inner {
  background-color: #1b1b1b;
  background-image: -moz-linear-gradient(top, #222222, #111111);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
  background-image: -webkit-linear-gradient(top, #222222, #111111);
  background-image: -o-linear-gradient(top, #222222, #111111);
  background-image: linear-gradient(to bottom, #222222, #111111);
  background-repeat: repeat-x;
  border-color: #252525;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
}

.navbar-inverse .brand,
.navbar-inverse .nav > li > a {
  color: #999999;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}

.navbar-inverse .brand:hover,
.navbar-inverse .nav > li > a:hover,
.navbar-inverse .brand:focus,
.navbar-inverse .nav > li > a:focus {
  color: #ffffff;
}

.navbar-inverse .brand {
  color: #999999;
}

.navbar-inverse .navbar-text {
  color: #999999;
}

.navbar-inverse .nav > li > a:focus,
.navbar-inverse .nav > li > a:hover {
  color: #ffffff;
  background-color: transparent;
}

.navbar-inverse .nav .active > a,
.navbar-inverse .nav .active > a:hover,
.navbar-inverse .nav .active > a:focus {
  color: #ffffff;
  background-color: #111111;
}

.navbar-inverse .navbar-link {
  color: #999999;
}

.navbar-inverse .navbar-link:hover,
.navbar-inverse .navbar-link:focus {
  color: #ffffff;
}

.navbar-inverse .divider-vertical {
  border-right-color: #222222;
  border-left-color: #111111;
}

.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
  color: #ffffff;
  background-color: #111111;
}

.navbar-inverse .nav li.dropdown > a:hover .caret,
.navbar-inverse .nav li.dropdown > a:focus .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}

.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
  border-top-color: #999999;
  border-bottom-color: #999999;
}

.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}

.navbar-inverse .navbar-search .search-query {
  color: #ffffff;
  background-color: #515151;
  border-color: #111111;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
  -webkit-transition: none;
     -moz-transition: none;
       -o-transition: none;
          transition: none;
}

.navbar-inverse .navbar-search .search-query:-moz-placeholder {
  color: #cccccc;
}

.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
  color: #cccccc;
}

.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
  color: #cccccc;
}

.navbar-inverse .navbar-search .search-query:focus,
.navbar-inverse .navbar-search .search-query.focused {
  padding: 5px 15px;
  color: #333333;
  text-shadow: 0 1px 0 #ffffff;
  background-color: #ffffff;
  border: 0;
  outline: 0;
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
}

.navbar-inverse .btn-navbar {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #0e0e0e;
  *background-color: #040404;
  background-image: -moz-linear-gradient(top, #151515, #040404);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
  background-image: -webkit-linear-gradient(top, #151515, #040404);
  background-image: -o-linear-gradient(top, #151515, #040404);
  background-image: linear-gradient(to bottom, #151515, #040404);
  background-repeat: repeat-x;
  border-color: #040404 #040404 #000000;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.navbar-inverse .btn-navbar:hover,
.navbar-inverse .btn-navbar:focus,
.navbar-inverse .btn-navbar:active,
.navbar-inverse .btn-navbar.active,
.navbar-inverse .btn-navbar.disabled,
.navbar-inverse .btn-navbar[disabled] {
  color: #ffffff;
  background-color: #040404;
  *background-color: #000000;
}

.navbar-inverse .btn-navbar:active,
.navbar-inverse .btn-navbar.active {
  background-color: #000000 \9;
}

.breadcrumb {
  padding: 8px 15px;
  margin: 0 0 20px;
  list-style: none;
  background-color: #f5f5f5;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.breadcrumb > li {
  display: inline-block;
  *display: inline;
  text-shadow: 0 1px 0 #ffffff;
  *zoom: 1;
}

.breadcrumb > li > .divider {
  padding: 0 5px;
  color: #ccc;
}

.breadcrumb > .active {
  color: #999999;
}

.pagination {
  margin: 20px 0;
}

.pagination ul {
  display: inline-block;
  *display: inline;
  margin-bottom: 0;
  margin-left: 0;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  *zoom: 1;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.pagination ul > li {
  display: inline;
}

.pagination ul > li > a,
.pagination ul > li > span {
  float: left;
  padding: 4px 12px;
  line-height: 20px;
  text-decoration: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-left-width: 0;
}

.pagination ul > li > a:hover,
.pagination ul > li > a:focus,
.pagination ul > .active > a,
.pagination ul > .active > span {
  background-color: #f5f5f5;
}

.pagination ul > .active > a,
.pagination ul > .active > span {
  color: #999999;
  cursor: default;
}

.pagination ul > .disabled > span,
.pagination ul > .disabled > a,
.pagination ul > .disabled > a:hover,
.pagination ul > .disabled > a:focus {
  color: #999999;
  cursor: default;
  background-color: transparent;
}

.pagination ul > li:first-child > a,
.pagination ul > li:first-child > span {
  border-left-width: 1px;
  -webkit-border-bottom-left-radius: 4px;
          border-bottom-left-radius: 4px;
  -webkit-border-top-left-radius: 4px;
          border-top-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  -moz-border-radius-topleft: 4px;
}

.pagination ul > li:last-child > a,
.pagination ul > li:last-child > span {
  -webkit-border-top-right-radius: 4px;
          border-top-right-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
          border-bottom-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-bottomright: 4px;
}

.pagination-centered {
  text-align: center;
}

.pagination-right {
  text-align: right;
}

.pagination-large ul > li > a,
.pagination-large ul > li > span {
  padding: 11px 19px;
  font-size: 17.5px;
}

.pagination-large ul > li:first-child > a,
.pagination-large ul > li:first-child > span {
  -webkit-border-bottom-left-radius: 6px;
          border-bottom-left-radius: 6px;
  -webkit-border-top-left-radius: 6px;
          border-top-left-radius: 6px;
  -moz-border-radius-bottomleft: 6px;
  -moz-border-radius-topleft: 6px;
}

.pagination-large ul > li:last-child > a,
.pagination-large ul > li:last-child > span {
  -webkit-border-top-right-radius: 6px;
          border-top-right-radius: 6px;
  -webkit-border-bottom-right-radius: 6px;
          border-bottom-right-radius: 6px;
  -moz-border-radius-topright: 6px;
  -moz-border-radius-bottomright: 6px;
}

.pagination-mini ul > li:first-child > a,
.pagination-small ul > li:first-child > a,
.pagination-mini ul > li:first-child > span,
.pagination-small ul > li:first-child > span {
  -webkit-border-bottom-left-radius: 3px;
          border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
          border-top-left-radius: 3px;
  -moz-border-radius-bottomleft: 3px;
  -moz-border-radius-topleft: 3px;
}

.pagination-mini ul > li:last-child > a,
.pagination-small ul > li:last-child > a,
.pagination-mini ul > li:last-child > span,
.pagination-small ul > li:last-child > span {
  -webkit-border-top-right-radius: 3px;
          border-top-right-radius: 3px;
  -webkit-border-bottom-right-radius: 3px;
          border-bottom-right-radius: 3px;
  -moz-border-radius-topright: 3px;
  -moz-border-radius-bottomright: 3px;
}

.pagination-small ul > li > a,
.pagination-small ul > li > span {
  padding: 2px 10px;
  font-size: 11.9px;
}

.pagination-mini ul > li > a,
.pagination-mini ul > li > span {
  padding: 0 6px;
  font-size: 10.5px;
}

.pager {
  margin: 20px 0;
  text-align: center;
  list-style: none;
  *zoom: 1;
}

.pager:before,
.pager:after {
  display: table;
  line-height: 0;
  content: "";
}

.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;
  -webkit-border-radius: 15px;
     -moz-border-radius: 15px;
          border-radius: 15px;
}

.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #f5f5f5;
}

.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: #999999;
  cursor: default;
  background-color: #fff;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000000;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop,
.modal-backdrop.fade.in {
  opacity: 0.8;
  filter: alpha(opacity=80);
}

.modal-header {
  padding: 9px 15px;
  border-bottom: 1px solid #eee;
}

.modal-header .close {
  margin-top: 2px;
}

.modal-header h3 {
  margin: 0;
  line-height: 30px;
}

.modal-body {
  position: relative;
  max-height: 400px;
  padding: 15px;
  overflow-y: auto;
}

.modal-form {
  margin-bottom: 0;
}

.modal-footer {
  padding: 14px 15px 15px;
  margin-bottom: 0;
  text-align: right;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  -webkit-border-radius: 0 0 6px 6px;
     -moz-border-radius: 0 0 6px 6px;
          border-radius: 0 0 6px 6px;
  *zoom: 1;
  -webkit-box-shadow: inset 0 1px 0 #ffffff;
     -moz-box-shadow: inset 0 1px 0 #ffffff;
          box-shadow: inset 0 1px 0 #ffffff;
}

.modal-footer:before,
.modal-footer:after {
  display: table;
  line-height: 0;
  content: "";
}

.modal-footer:after {
  clear: both;
}

.modal-footer .btn + .btn {
  margin-bottom: 0;
  margin-left: 5px;
}

.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}

.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}

.tooltip {
  position: absolute;
  z-index: 1030;
  display: block;
  font-size: 11px;
  line-height: 1.4;
  opacity: 0;
  filter: alpha(opacity=0);
  visibility: visible;
}

.tooltip.in {
  opacity: 0.8;
  filter: alpha(opacity=80);
}

.tooltip.top {
  padding: 5px 0;
  margin-top: -3px;
}

.tooltip.right {
  padding: 0 5px;
  margin-left: 3px;
}

.tooltip.bottom {
  padding: 5px 0;
  margin-top: 3px;
}

.tooltip.left {
  padding: 0 5px;
  margin-left: -3px;
}

.tooltip-inner {
  max-width: 200px;
  padding: 8px;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  background-color: #000000;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.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-top-color: #000000;
  border-width: 5px 5px 0;
}

.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-right-color: #000000;
  border-width: 5px 5px 5px 0;
}

.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-left-color: #000000;
  border-width: 5px 0 5px 5px;
}

.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-bottom-color: #000000;
  border-width: 0 5px 5px;
}

.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1010;
  display: none;
  max-width: 276px;
  padding: 1px;
  text-align: left;
  white-space: normal;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding;
          background-clip: padding-box;
}

.popover.top {
  margin-top: -10px;
}

.popover.right {
  margin-left: 10px;
}

.popover.bottom {
  margin-top: 10px;
}

.popover.left {
  margin-left: -10px;
}

.popover-title {
  padding: 8px 14px;
  margin: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 18px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  -webkit-border-radius: 5px 5px 0 0;
     -moz-border-radius: 5px 5px 0 0;
          border-radius: 5px 5px 0 0;
}

.popover-title:empty {
  display: none;
}

.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 {
  bottom: -11px;
  left: 50%;
  margin-left: -11px;
  border-top-color: #999;
  border-top-color: rgba(0, 0, 0, 0.25);
  border-bottom-width: 0;
}

.popover.top .arrow:after {
  bottom: 1px;
  margin-left: -10px;
  border-top-color: #ffffff;
  border-bottom-width: 0;
}

.popover.right .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-right-color: #999;
  border-right-color: rgba(0, 0, 0, 0.25);
  border-left-width: 0;
}

.popover.right .arrow:after {
  bottom: -10px;
  left: 1px;
  border-right-color: #ffffff;
  border-left-width: 0;
}

.popover.bottom .arrow {
  top: -11px;
  left: 50%;
  margin-left: -11px;
  border-bottom-color: #999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  border-top-width: 0;
}

.popover.bottom .arrow:after {
  top: 1px;
  margin-left: -10px;
  border-bottom-color: #ffffff;
  border-top-width: 0;
}

.popover.left .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-left-color: #999;
  border-left-color: rgba(0, 0, 0, 0.25);
  border-right-width: 0;
}

.popover.left .arrow:after {
  right: 1px;
  bottom: -10px;
  border-left-color: #ffffff;
  border-right-width: 0;
}

.thumbnails {
  margin-left: -20px;
  list-style: none;
  *zoom: 1;
}

.thumbnails:before,
.thumbnails:after {
  display: table;
  line-height: 0;
  content: "";
}

.thumbnails:after {
  clear: both;
}

.row-fluid .thumbnails {
  margin-left: 0;
}

.thumbnails > li {
  float: left;
  margin-bottom: 20px;
  margin-left: 20px;
}

.thumbnail {
  display: block;
  padding: 4px;
  line-height: 20px;
  border: 1px solid #ddd;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  -webkit-transition: all 0.2s ease-in-out;
     -moz-transition: all 0.2s ease-in-out;
       -o-transition: all 0.2s ease-in-out;
          transition: all 0.2s ease-in-out;
}

a.thumbnail:hover,
a.thumbnail:focus {
  border-color: #0088cc;
  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
}

.thumbnail > img {
  display: block;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.thumbnail .caption {
  padding: 9px;
  color: #555555;
}

.media,
.media-body {
  overflow: hidden;
  *overflow: visible;
  zoom: 1;
}

.media,
.media .media {
  margin-top: 15px;
}

.media:first-child {
  margin-top: 0;
}

.media-object {
  display: block;
}

.media-heading {
  margin: 0 0 5px;
}

.media > .pull-left {
  margin-right: 10px;
}

.media > .pull-right {
  margin-left: 10px;
}

.media-list {
  margin-left: 0;
  list-style: none;
}

.label,
.badge {
  display: inline-block;
  padding: 2px 4px;
  font-size: 11.844px;
  font-weight: bold;
  line-height: 14px;
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  white-space: nowrap;
  vertical-align: baseline;
  background-color: #999999;
}

.label {
  -webkit-border-radius: 3px;
     -moz-border-radius: 3px;
          border-radius: 3px;
}

.badge {
  padding-right: 9px;
  padding-left: 9px;
  -webkit-border-radius: 9px;
     -moz-border-radius: 9px;
          border-radius: 9px;
}

.label:empty,
.badge:empty {
  display: none;
}

a.label:hover,
a.label:focus,
a.badge:hover,
a.badge:focus {
  color: #ffffff;
  text-decoration: none;
  cursor: pointer;
}

.label-important,
.badge-important {
  background-color: #b94a48;
}

.label-important[href],
.badge-important[href] {
  background-color: #953b39;
}

.label-warning,
.badge-warning {
  background-color: #f89406;
}

.label-warning[href],
.badge-warning[href] {
  background-color: #c67605;
}

.label-success,
.badge-success {
  background-color: #468847;
}

.label-success[href],
.badge-success[href] {
  background-color: #356635;
}

.label-info,
.badge-info {
  background-color: #3a87ad;
}

.label-info[href],
.badge-info[href] {
  background-color: #2d6987;
}

.label-inverse,
.badge-inverse {
  background-color: #333333;
}

.label-inverse[href],
.badge-inverse[href] {
  background-color: #1a1a1a;
}

.btn .label,
.btn .badge {
  position: relative;
  top: -1px;
}

.btn-mini .label,
.btn-mini .badge {
  top: 0;
}

@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}

@-moz-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}

@-ms-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}

@-o-keyframes progress-bar-stripes {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 40px 0;
  }
}

@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}

.progress {
  height: 20px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f7f7f7;
  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
  background-repeat: repeat-x;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.progress .bar {
  float: left;
  width: 0;
  height: 100%;
  font-size: 12px;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #0e90d2;
  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
  background-image: -o-linear-gradient(top, #149bdf, #0480be);
  background-image: linear-gradient(to bottom, #149bdf, #0480be);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: width 0.6s ease;
     -moz-transition: width 0.6s ease;
       -o-transition: width 0.6s ease;
          transition: width 0.6s ease;
}

.progress .bar + .bar {
  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
}

.progress-striped .bar {
  background-color: #149bdf;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-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-image: -moz-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-image: -o-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-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);
  -webkit-background-size: 40px 40px;
     -moz-background-size: 40px 40px;
       -o-background-size: 40px 40px;
          background-size: 40px 40px;
}

.progress.active .bar {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
     -moz-animation: progress-bar-stripes 2s linear infinite;
      -ms-animation: progress-bar-stripes 2s linear infinite;
       -o-animation: progress-bar-stripes 2s linear infinite;
          animation: progress-bar-stripes 2s linear infinite;
}

.progress-danger .bar,
.progress .bar-danger {
  background-color: #dd514c;
  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
}

.progress-danger.progress-striped .bar,
.progress-striped .bar-danger {
  background-color: #ee5f5b;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-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-image: -moz-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-image: -o-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-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-success .bar,
.progress .bar-success {
  background-color: #5eb95e;
  background-image: -moz-linear-gradient(top, #62c462, #57a957);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
  background-image: -o-linear-gradient(top, #62c462, #57a957);
  background-image: linear-gradient(to bottom, #62c462, #57a957);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
}

.progress-success.progress-striped .bar,
.progress-striped .bar-success {
  background-color: #62c462;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-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-image: -moz-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-image: -o-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-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-info .bar,
.progress .bar-info {
  background-color: #4bb1cf;
  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
}

.progress-info.progress-striped .bar,
.progress-striped .bar-info {
  background-color: #5bc0de;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-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-image: -moz-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-image: -o-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-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-warning .bar,
.progress .bar-warning {
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

.progress-warning.progress-striped .bar,
.progress-striped .bar-warning {
  background-color: #fbb450;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-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-image: -moz-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-image: -o-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-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);
}

.accordion {
  margin-bottom: 20px;
}

.accordion-group {
  margin-bottom: 2px;
  border: 1px solid #e5e5e5;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.accordion-heading {
  border-bottom: 0;
}

.accordion-heading .accordion-toggle {
  display: block;
  padding: 8px 15px;
}

.accordion-toggle {
  cursor: pointer;
}

.accordion-inner {
  padding: 9px 15px;
  border-top: 1px solid #e5e5e5;
}

.carousel {
  position: relative;
  margin-bottom: 20px;
  line-height: 1;
}

.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.carousel-inner > .item {
  position: relative;
  display: none;
  -webkit-transition: 0.6s ease-in-out left;
     -moz-transition: 0.6s ease-in-out left;
       -o-transition: 0.6s ease-in-out left;
          transition: 0.6s ease-in-out left;
}

.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  line-height: 1;
}

.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: 40%;
  left: 15px;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  font-size: 60px;
  font-weight: 100;
  line-height: 30px;
  color: #ffffff;
  text-align: center;
  background: #222222;
  border: 3px solid #ffffff;
  -webkit-border-radius: 23px;
     -moz-border-radius: 23px;
          border-radius: 23px;
  opacity: 0.5;
  filter: alpha(opacity=50);
}

.carousel-control.right {
  right: 15px;
  left: auto;
}

.carousel-control:hover,
.carousel-control:focus {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}

.carousel-indicators {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 5;
  margin: 0;
  list-style: none;
}

.carousel-indicators li {
  display: block;
  float: left;
  width: 10px;
  height: 10px;
  margin-left: 5px;
  text-indent: -999px;
  background-color: #ccc;
  background-color: rgba(255, 255, 255, 0.25);
  border-radius: 5px;
}

.carousel-indicators .active {
  background-color: #fff;
}

.carousel-caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 15px;
  background: #333333;
  background: rgba(0, 0, 0, 0.75);
}

.carousel-caption h4,
.carousel-caption p {
  line-height: 20px;
  color: #ffffff;
}

.carousel-caption h4 {
  margin: 0 0 5px;
}

.carousel-caption p {
  margin-bottom: 0;
}

.hero-unit {
  padding: 60px;
  margin-bottom: 30px;
  font-size: 18px;
  font-weight: 200;
  line-height: 30px;
  color: inherit;
  background-color: #eeeeee;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
}

.hero-unit h1 {
  margin-bottom: 0;
  font-size: 60px;
  line-height: 1;
  letter-spacing: -1px;
  color: inherit;
}

.hero-unit li {
  line-height: 30px;
}

.pull-right {
  float: right;
}

.pull-left {
  float: left;
}

.hide {
  display: none;
}

.show {
  display: block;
}

.invisible {
  visibility: hidden;
}

.affix {
  position: fixed;
}

/* Joomla JUI NOTE: Original .modal definition has to be commented in modals.less and responsive-767px-max.less */

/* Joomla JUI NOTE: Original .modal definition has to be commented */

div.modal {
  position: fixed;
  top: 10%;
  left: 50%;
  z-index: 1050;
  width: 560px;
  margin-left: -280px;
  background-color: #ffffff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.3);
  *border: 1px solid #999;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  outline: none;
  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding-box;
          background-clip: padding-box;
}

div.modal.fade {
  top: -25%;
  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
       -o-transition: opacity 0.3s linear, top 0.3s ease-out;
          transition: opacity 0.3s linear, top 0.3s ease-out;
}

div.modal.fade.in {
  top: 10%;
}

/* Joomla JUI NOTE: Original .modal definition has to be commented */

@media (max-width: 767px) {
  div.modal {
    position: fixed;
    top: 20px;
    right: 20px;
    left: 20px;
    width: auto;
    margin: 0;
  }
  div.modal.fade {
    top: -100px;
  }
  div.modal.fade.in {
    top: 20px;
  }
}

@media (max-width: 480px) {
  div.modal {
    top: 10px;
    right: 10px;
    left: 10px;
  }
}
jui/css/icomoon.css000064400000027046152177723720010326 0ustar00@font-face {
	font-family: 'IcoMoon';
	src: url('../fonts/IcoMoon.eot');
	src: url('../fonts/IcoMoon.eot?#iefix') format('embedded-opentype'),
		url('../fonts/IcoMoon.svg#IcoMoon') format('svg'),
		url('../fonts/IcoMoon.woff') format('woff'),
		url('../fonts/IcoMoon.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

[data-icon]:before {
	font-family: 'IcoMoon';
	content: attr(data-icon);
	speak: none;
}
[class^="icon-"],
[class*=" icon-"] {
	display: inline-block;
	width: 14px;
	height: 14px;
	*margin-right: .3em;
	line-height: 14px;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
	font-family: 'IcoMoon';
	font-style: normal;
	speak: none;
}
[class^="icon-"].disabled,
[class*=" icon-"].disabled {
	font-weight: normal;
}
.icon-joomla:before {
	content: "\e200";
}
.icon-chevron-up:before,
.icon-uparrow:before,
.icon-arrow-up:before {
	content: "\e005";
}
.icon-chevron-right:before,
.icon-rightarrow:before,
.icon-arrow-right:before{
	content: "\e006";
}
.icon-chevron-down:before,
.icon-downarrow:before,
.icon-arrow-down:before {
	content: "\e007";
}
.icon-chevron-left:before,
.icon-leftarrow:before,
.icon-arrow-left:before {
	content: "\e008";
}
.icon-arrow-first:before {
	content: "\e003";
}
.icon-arrow-last:before {
	content: "\e004";
}
.icon-arrow-up-2:before {
	content: "\e009";
}
.icon-arrow-right-2:before {
	content: "\e00a";
}
.icon-arrow-down-2:before {
	content: "\e00b";
}
.icon-arrow-left-2:before {
	content: "\e00c";
}
.icon-arrow-up-3:before {
	content: "\e00f";
}
.icon-arrow-right-3:before {
	content: "\e010";
}
.icon-arrow-down-3:before {
	content: "\e011";
}
.icon-arrow-left-3:before {
	content: "\e012";
}
.icon-menu-2:before {
	content: "\e00e";
}
.icon-arrow-up-4:before {
	content: "\e201";
}
.icon-arrow-right-4:before {
	content: "\e202";
}
.icon-arrow-down-4:before {
	content: "\e203";
}
.icon-arrow-left-4:before {
	content: "\e204";
}
.icon-share:before,
.icon-redo:before {
	content: "\27";
}
.icon-undo:before {
	content: "\28";
}
.icon-forward-2:before {
	content: "\e205";
}
.icon-backward-2:before,
.icon-reply:before {
	content: "\e206";
}
.icon-unblock:before,
.icon-refresh:before,
.icon-redo-2:before {
	content: "\6c";
}
.icon-undo-2:before {
	content: "\e207";
}
.icon-move:before {
	content: "\7a";
}
.icon-expand:before {
	content: "\66";
}
.icon-contract:before {
	content: "\67";
}
.icon-expand-2:before {
	content: "\68";
}
.icon-contract-2:before {
	content: "\69";
}
.icon-play:before {
	content: "\e208";
}
.icon-pause:before {
	content: "\e209";
}
.icon-stop:before {
	content: "\e210";
}
.icon-previous:before,
.icon-backward:before {
	content: "\7c";
}
.icon-next:before,
.icon-forward:before {
	content: "\7b";
}
.icon-first:before {
	content: "\7d";
}
.icon-last:before {
	content: "\e000";
}
.icon-play-circle:before {
	content: "\e00d";
}
.icon-pause-circle:before {
	content: "\e211";
}
.icon-stop-circle:before {
	content: "\e212";
}
.icon-backward-circle:before {
	content: "\e213";
}
.icon-forward-circle:before {
	content: "\e214";
}
.icon-loop:before {
	content: "\e001";
}
.icon-shuffle:before {
	content: "\e002";
}
.icon-search:before {
	content: "\53";
}
.icon-zoom-in:before {
	content: "\64";
}
.icon-zoom-out:before {
	content: "\65";
}
.icon-apply:before,
.icon-edit:before,
.icon-pencil:before {
	content: "\2b";
}
.icon-pencil-2:before {
	content: "\2c";
}
.icon-brush:before {
	content: "\3b";
}
.icon-save-new:before,
.icon-plus-2:before  {
	content: "\5d";
}
.icon-minus-sign:before,
.icon-minus-2:before {
	content: "\5e";
}
.icon-delete:before,
.icon-remove:before,
.icon-cancel-2:before {
	content: "\49";
}
.icon-publish:before,
.icon-save:before,
.icon-ok:before,
.icon-checkmark:before {
	content: "\47";
}
.icon-new:before,
.icon-plus:before {
	content: "\2a";
}
.icon-plus-circle:before {
	content: "\e215";
}
.icon-minus:before,
.icon-not-ok:before {
	content: "\4b";
}
.icon-ban-circle:before,
.icon-minus-circle:before {
	content: "\e216";
}
.icon-unpublish:before,
.icon-cancel:before {
	content: "\4a";
}
.icon-cancel-circle:before {
	content: "\e217";
}
.icon-checkmark-2:before {
	content: "\e218";
}
.icon-checkmark-circle:before {
	content: "\e219";
}
.icon-info:before {
	content: "\e220";
}
.icon-info-2:before,
.icon-info-circle:before {
	content: "\e221";
}
.icon-question:before,
.icon-question-sign:before,
.icon-help:before {
	content: "\45";
}
.icon-question-2:before,
.icon-question-circle:before {
	content: "\e222";
}
.icon-notification:before {
	content: "\e223";
}
.icon-notification-2:before,
.icon-notification-circle:before {
	content: "\e224";
}
.icon-pending:before,
.icon-warning:before {
	content: "\48";
}
.icon-warning-2:before,
.icon-warning-circle:before {
	content: "\e225";
}
.icon-checkbox-unchecked:before {
	content: "\3d";
}
.icon-checkin:before,
.icon-checkbox:before,
.icon-checkbox-checked:before {
	content: "\3e";
}
.icon-checkbox-partial:before {
	content: "\3f";
}
.icon-square:before {
	content: "\e226";
}
.icon-radio-unchecked:before {
	content: "\e227";
}
.icon-radio-checked:before {
	content: "\e228";
}
.icon-circle:before {
	content: "\e229";
}
.icon-signup:before {
	content: "\e230";
}
.icon-grid:before,
.icon-grid-view:before {
	content: "\58";
}
.icon-grid-2:before,
.icon-grid-view-2:before {
	content: "\59";
}
.icon-menu:before {
	content: "\5a";
}
.icon-list:before,
.icon-list-view:before {
	content: "\31";
}
.icon-list-2:before {
	content: "\e231";
}
.icon-menu-3:before {
	content: "\e232";
}
.icon-folder-open:before,
.icon-folder:before {
	content: "\2d";
}
.icon-folder-close:before,
.icon-folder-2:before {
	content: "\2e";
}
.icon-folder-plus:before {
	content: "\e234";
}
.icon-folder-minus:before {
	content: "\e235";
}
.icon-folder-3:before {
	content: "\e236";
}
.icon-folder-plus-2:before {
	content: "\e237";
}
.icon-folder-remove:before {
	content: "\e238";
}
.icon-file:before {
	content: "\e016";
}
.icon-file-2:before {
	content: "\e239";
}
.icon-file-add:before,
.icon-file-plus:before {
	content: "\29";
}
.icon-file-minus:before {
	content: "\e017";
}
.icon-file-check:before {
	content: "\e240";
}
.icon-file-remove:before {
	content: "\e241";
}
.icon-save-copy:before,
.icon-copy:before {
	content: "\e018";
}
.icon-stack:before {
	content: "\e242";
}
.icon-tree:before {
	content: "\e243";
}
.icon-tree-2:before {
	content: "\e244";
}
.icon-paragraph-left:before {
	content: "\e246";
}
.icon-paragraph-center:before {
	content: "\e247";
}
.icon-paragraph-right:before {
	content: "\e248";
}
.icon-paragraph-justify:before {
	content: "\e249";
}
.icon-screen:before {
	content: "\e01c";
}
.icon-tablet:before {
	content: "\e01d";
}
.icon-mobile:before {
	content: "\e01e";
}
.icon-box-add:before {
	content: "\51";
}
.icon-box-remove:before {
	content: "\52";
}
.icon-download:before {
	content: "\e021";
}
.icon-upload:before {
	content: "\e022";
}
.icon-home:before {
	content: "\21";
}
.icon-home-2:before {
	content: "\e250";
}
.icon-out-2:before,
.icon-new-tab:before {
	content: "\e024";
}
.icon-out-3:before,
.icon-new-tab-2:before {
	content: "\e251";
}
.icon-link:before {
	content: "\e252";
}
.icon-picture:before,
.icon-image:before {
	content: "\2f";
}
.icon-pictures:before,
.icon-images:before {
	content: "\30";
}
.icon-palette:before,
.icon-color-palette:before {
	content: "\e014";
}
.icon-camera:before {
	content: "\55";
}
.icon-camera-2:before,
.icon-video:before {
	content: "\e015";
}
.icon-play-2:before,
.icon-video-2:before,
.icon-youtube:before {
	content: "\56";
}
.icon-music:before {
	content: "\57";
}
.icon-user:before {
	content: "\22";
}
.icon-users:before {
	content: "\e01f";
}
.icon-vcard:before {
	content: "\6d";
}
.icon-address:before {
	content: "\70";
}
.icon-share-alt:before,
.icon-out:before {
	content: "\26";
}
.icon-enter:before {
	content: "\e257";
}
.icon-exit:before {
	content: "\e258";
}
.icon-comment:before,
.icon-comments:before {
	content: "\24";
}
.icon-comments-2:before {
	content: "\25";
}
.icon-quote:before,
.icon-quotes-left:before {
	content: "\60";
}
.icon-quote-2:before,
.icon-quotes-right:before {
	content: "\61";
}
.icon-quote-3:before,
.icon-bubble-quote:before {
	content: "\e259";
}
.icon-phone:before {
	content: "\e260";
}
.icon-phone-2:before {
	content: "\e261";
}
.icon-envelope:before,
.icon-mail:before {
	content: "\4d";
}
.icon-envelope-opened:before,
.icon-mail-2:before {
	content: "\4e";
}
.icon-unarchive:before,
.icon-drawer:before {
	content: "\4f";
}
.icon-archive:before,
.icon-drawer-2:before {
	content: "\50";
}
.icon-briefcase:before {
	content: "\e020";
}
.icon-tag:before {
	content: "\e262";
}
.icon-tag-2:before {
	content: "\e263";
}
.icon-tags:before {
	content: "\e264";
}
.icon-tags-2:before {
	content: "\e265";
}
.icon-options:before,
.icon-cog:before {
	content: "\38";
}
.icon-cogs:before {
	content: "\37";
}
.icon-screwdriver:before,
.icon-tools:before {
	content: "\36";
}
.icon-wrench:before {
	content: "\3a";
}
.icon-equalizer:before {
	content: "\39";
}
.icon-dashboard:before {
	content: "\78";
}
.icon-switch:before {
	content: "\e266";
}
.icon-filter:before {
	content: "\54";
}
.icon-purge:before,
.icon-trash:before {
	content: "\4c";
}
.icon-checkedout:before,
.icon-lock:before,
.icon-locked:before {
	content: "\23";
}
.icon-unlock:before {
	content: "\e267";
}
.icon-key:before {
	content: "\5f";
}
.icon-support:before {
	content: "\46";
}
.icon-database:before {
	content: "\62";
}
.icon-scissors:before {
	content: "\e268";
}
.icon-health:before {
	content: "\6a";
}
.icon-wand:before {
	content: "\6b";
}
.icon-eye-open:before,
.icon-eye:before {
	content: "\3c";
}
.icon-eye-close:before,
.icon-eye-blocked:before,
.icon-eye-2:before {
	content: "\e269";
}
.icon-clock:before {
	content: "\6e";
}
.icon-compass:before {
	content: "\6f";
}
.icon-broadcast:before,
.icon-connection:before,
.icon-wifi:before {
	content: "\e01b";
}
.icon-book:before {
	content: "\e271";
}
.icon-lightning:before,
.icon-flash:before {
	content: "\79";
}
.icon-print:before,
.icon-printer:before {
	content: "\e013";
}
.icon-feed:before {
	content: "\71";
}
.icon-calendar:before {
	content: "\43";
}
.icon-calendar-2:before {
	content: "\44";
}
.icon-calendar-3:before {
	content: "\e273";
}
.icon-pie:before {
	content: "\77";
}
.icon-bars:before {
	content: "\76";
}
.icon-chart:before {
	content: "\75";
}
.icon-power-cord:before {
	content: "\32";
}
.icon-cube:before {
	content: "\33";
}
.icon-puzzle:before {
	content: "\34";
}
.icon-attachment:before,
.icon-paperclip:before,
.icon-flag-2:before {
	content: "\72";
}
.icon-lamp:before {
	content: "\74";
}
.icon-pin:before,
.icon-pushpin:before {
	content: "\73";
}
.icon-location:before {
	content: "\63";
}
.icon-shield:before {
	content: "\e274";
}
.icon-flag:before {
	content: "\35";
}
.icon-flag-3:before {
	content: "\e275";
}
.icon-bookmark:before {
	content: "\e023";
}
.icon-bookmark-2:before {
	content: "\e276";
}
.icon-heart:before {
	content: "\e277";
}
.icon-heart-2:before {
	content: "\e278";
}
.icon-thumbs-up:before {
	content: "\5b";
}
.icon-thumbs-down:before{
	content: "\5c";
}
.icon-unfeatured:before,
.icon-asterisk:before,
.icon-star-empty:before {
	content: "\40";
}
.icon-star-2:before {
	content: "\41";
}
.icon-featured:before,
.icon-default:before,
.icon-star:before{
	content: "\42";
}
.icon-smiley:before,
.icon-smiley-happy:before {
	content: "\e279";
}
.icon-smiley-2:before,
.icon-smiley-happy-2:before {
	content: "\e280";
}
.icon-smiley-sad:before {
	content: "\e281";
}
.icon-smiley-sad-2:before {
	content: "\e282";
}
.icon-smiley-neutral:before {
	content: "\e283";
}
.icon-smiley-neutral-2:before {
	content: "\e284";
}
.icon-cart:before {
	content: "\e019";
}
.icon-basket:before {
	content: "\e01a";
}
.icon-credit:before {
	content: "\e286";
}
.icon-credit-2:before {
	content: "\e287";
}
jui/css/jquery.simplecolors.css000064400000003721152177723720012706 0ustar00/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 *
 * ADAPTED BY:
 * Copyright (C) 2013 Peter van Westen
 */

.simplecolors-swatch {
	cursor: pointer;
	position: relative;
	width: 20px;
	height: 20px;
	background: url(../img/jquery.minicolors.png) -80px 0;
	border: solid 1px #CCC;
	vertical-align: middle;
	display: inline-block;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	overflow: hidden;
}

.simplecolors-swatch span {
	position: absolute;
	width: 100%;
	height: 100%;
	background: none;
	-webkit-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	-moz-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	display: inline-block;
}

.simplecolors-panel .simplecolors-swatch {
	margin: 0 4px 4px 0;
}

.simplecolors-swatch.active,
.simplecolors-swatch:hover,
.simplecolors-swatch:focus,
.simplecolors-swatch span:focus {
	outline: 0;
	outline: thin dotted \9; /* IE6-9 */
}

.simplecolors-swatch:hover,
.simplecolors-swatch.active {
	border-color: rgba(82, 168, 236, 0.8);
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
	box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
}

.simplecolors-panel {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 12;
	display: none;
	float: left;
	padding: 6px 2px 2px 6px;
	margin: 1px 0 0;
	list-style: none;
	background-color: #ffffff;
	border: 1px solid #dddddd;
	*border-right-width: 2px;
	*border-bottom-width: 2px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	-webkit-background-clip: padding-box;
	-moz-background-clip: padding-box;
	background-clip: padding-box;
}
jui/css/bootstrap-responsive.css000064400000052541152177723720013071 0ustar00/*!
 * Bootstrap Responsive v2.3.2
 *
 * Copyright 2012 Twitter, Inc
 * Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Designed and built with all the love in the world @twitter by @mdo and @fat.
 */

.clearfix {
  *zoom: 1;
}

.clearfix:before,
.clearfix:after {
  display: table;
  line-height: 0;
  content: "";
}

.clearfix:after {
  clear: both;
}

.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

.input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

@-ms-viewport {
  width: device-width;
}

.hidden {
  display: none;
  visibility: hidden;
}

.visible-phone {
  display: none !important;
}

.visible-tablet {
  display: none !important;
}

.hidden-desktop {
  display: none !important;
}

.visible-desktop {
  display: inherit !important;
}

@media (min-width: 768px) and (max-width: 979px) {
  .hidden-desktop {
    display: inherit !important;
  }
  .visible-desktop {
    display: none !important ;
  }
  .visible-tablet {
    display: inherit !important;
  }
  .hidden-tablet {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .hidden-desktop {
    display: inherit !important;
  }
  .visible-desktop {
    display: none !important;
  }
  .visible-phone {
    display: inherit !important;
  }
  .hidden-phone {
    display: none !important;
  }
}

.visible-print {
  display: none !important;
}

@media print {
  .visible-print {
    display: inherit !important;
  }
  .hidden-print {
    display: none !important;
  }
}

@media (min-width: 1200px) {
  .row {
    margin-left: -30px;
    *zoom: 1;
  }
  .row:before,
  .row:after {
    display: table;
    line-height: 0;
    content: "";
  }
  .row:after {
    clear: both;
  }
  [class*="span"] {
    float: left;
    min-height: 1px;
    margin-left: 30px;
  }
  .container,
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
    width: 1170px;
  }
  .span12 {
    width: 1170px;
  }
  .span11 {
    width: 1070px;
  }
  .span10 {
    width: 970px;
  }
  .span9 {
    width: 870px;
  }
  .span8 {
    width: 770px;
  }
  .span7 {
    width: 670px;
  }
  .span6 {
    width: 570px;
  }
  .span5 {
    width: 470px;
  }
  .span4 {
    width: 370px;
  }
  .span3 {
    width: 270px;
  }
  .span2 {
    width: 170px;
  }
  .span1 {
    width: 70px;
  }
  .offset12 {
    margin-left: 1230px;
  }
  .offset11 {
    margin-left: 1130px;
  }
  .offset10 {
    margin-left: 1030px;
  }
  .offset9 {
    margin-left: 930px;
  }
  .offset8 {
    margin-left: 830px;
  }
  .offset7 {
    margin-left: 730px;
  }
  .offset6 {
    margin-left: 630px;
  }
  .offset5 {
    margin-left: 530px;
  }
  .offset4 {
    margin-left: 430px;
  }
  .offset3 {
    margin-left: 330px;
  }
  .offset2 {
    margin-left: 230px;
  }
  .offset1 {
    margin-left: 130px;
  }
  .row-fluid {
    width: 100%;
    *zoom: 1;
  }
  .row-fluid:before,
  .row-fluid:after {
    display: table;
    line-height: 0;
    content: "";
  }
  .row-fluid:after {
    clear: both;
  }
  .row-fluid [class*="span"] {
    display: block;
    float: left;
    width: 100%;
    min-height: 30px;
    margin-left: 2.564102564102564%;
    *margin-left: 2.5109110747408616%;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
  }
  .row-fluid [class*="span"]:first-child {
    margin-left: 0;
  }
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
    margin-left: 2.564102564102564%;
  }
  .row-fluid .span12 {
    width: 100%;
    *width: 99.94680851063829%;
  }
  .row-fluid .span11 {
    width: 91.45299145299145%;
    *width: 91.39979996362975%;
  }
  .row-fluid .span10 {
    width: 82.90598290598291%;
    *width: 82.8527914166212%;
  }
  .row-fluid .span9 {
    width: 74.35897435897436%;
    *width: 74.30578286961266%;
  }
  .row-fluid .span8 {
    width: 65.81196581196582%;
    *width: 65.75877432260411%;
  }
  .row-fluid .span7 {
    width: 57.26495726495726%;
    *width: 57.21176577559556%;
  }
  .row-fluid .span6 {
    width: 48.717948717948715%;
    *width: 48.664757228587014%;
  }
  .row-fluid .span5 {
    width: 40.17094017094017%;
    *width: 40.11774868157847%;
  }
  .row-fluid .span4 {
    width: 31.623931623931625%;
    *width: 31.570740134569924%;
  }
  .row-fluid .span3 {
    width: 23.076923076923077%;
    *width: 23.023731587561375%;
  }
  .row-fluid .span2 {
    width: 14.52991452991453%;
    *width: 14.476723040552828%;
  }
  .row-fluid .span1 {
    width: 5.982905982905983%;
    *width: 5.929714493544281%;
  }
  .row-fluid .offset12 {
    margin-left: 105.12820512820512%;
    *margin-left: 105.02182214948171%;
  }
  .row-fluid .offset12:first-child {
    margin-left: 102.56410256410257%;
    *margin-left: 102.45771958537915%;
  }
  .row-fluid .offset11 {
    margin-left: 96.58119658119658%;
    *margin-left: 96.47481360247316%;
  }
  .row-fluid .offset11:first-child {
    margin-left: 94.01709401709402%;
    *margin-left: 93.91071103837061%;
  }
  .row-fluid .offset10 {
    margin-left: 88.03418803418803%;
    *margin-left: 87.92780505546462%;
  }
  .row-fluid .offset10:first-child {
    margin-left: 85.47008547008548%;
    *margin-left: 85.36370249136206%;
  }
  .row-fluid .offset9 {
    margin-left: 79.48717948717949%;
    *margin-left: 79.38079650845607%;
  }
  .row-fluid .offset9:first-child {
    margin-left: 76.92307692307693%;
    *margin-left: 76.81669394435352%;
  }
  .row-fluid .offset8 {
    margin-left: 70.94017094017094%;
    *margin-left: 70.83378796144753%;
  }
  .row-fluid .offset8:first-child {
    margin-left: 68.37606837606839%;
    *margin-left: 68.26968539734497%;
  }
  .row-fluid .offset7 {
    margin-left: 62.393162393162385%;
    *margin-left: 62.28677941443899%;
  }
  .row-fluid .offset7:first-child {
    margin-left: 59.82905982905982%;
    *margin-left: 59.72267685033642%;
  }
  .row-fluid .offset6 {
    margin-left: 53.84615384615384%;
    *margin-left: 53.739770867430444%;
  }
  .row-fluid .offset6:first-child {
    margin-left: 51.28205128205128%;
    *margin-left: 51.175668303327875%;
  }
  .row-fluid .offset5 {
    margin-left: 45.299145299145295%;
    *margin-left: 45.1927623204219%;
  }
  .row-fluid .offset5:first-child {
    margin-left: 42.73504273504273%;
    *margin-left: 42.62865975631933%;
  }
  .row-fluid .offset4 {
    margin-left: 36.75213675213675%;
    *margin-left: 36.645753773413354%;
  }
  .row-fluid .offset4:first-child {
    margin-left: 34.18803418803419%;
    *margin-left: 34.081651209310785%;
  }
  .row-fluid .offset3 {
    margin-left: 28.205128205128204%;
    *margin-left: 28.0987452264048%;
  }
  .row-fluid .offset3:first-child {
    margin-left: 25.641025641025642%;
    *margin-left: 25.53464266230224%;
  }
  .row-fluid .offset2 {
    margin-left: 19.65811965811966%;
    *margin-left: 19.551736679396257%;
  }
  .row-fluid .offset2:first-child {
    margin-left: 17.094017094017094%;
    *margin-left: 16.98763411529369%;
  }
  .row-fluid .offset1 {
    margin-left: 11.11111111111111%;
    *margin-left: 11.004728132387708%;
  }
  .row-fluid .offset1:first-child {
    margin-left: 8.547008547008547%;
    *margin-left: 8.440625568285142%;
  }
  input,
  textarea,
  .uneditable-input {
    margin-left: 0;
  }
  .controls-row [class*="span"] + [class*="span"] {
    margin-left: 30px;
  }
  input.span12,
  textarea.span12,
  .uneditable-input.span12 {
    width: 1156px;
  }
  input.span11,
  textarea.span11,
  .uneditable-input.span11 {
    width: 1056px;
  }
  input.span10,
  textarea.span10,
  .uneditable-input.span10 {
    width: 956px;
  }
  input.span9,
  textarea.span9,
  .uneditable-input.span9 {
    width: 856px;
  }
  input.span8,
  textarea.span8,
  .uneditable-input.span8 {
    width: 756px;
  }
  input.span7,
  textarea.span7,
  .uneditable-input.span7 {
    width: 656px;
  }
  input.span6,
  textarea.span6,
  .uneditable-input.span6 {
    width: 556px;
  }
  input.span5,
  textarea.span5,
  .uneditable-input.span5 {
    width: 456px;
  }
  input.span4,
  textarea.span4,
  .uneditable-input.span4 {
    width: 356px;
  }
  input.span3,
  textarea.span3,
  .uneditable-input.span3 {
    width: 256px;
  }
  input.span2,
  textarea.span2,
  .uneditable-input.span2 {
    width: 156px;
  }
  input.span1,
  textarea.span1,
  .uneditable-input.span1 {
    width: 56px;
  }
  .thumbnails {
    margin-left: -30px;
  }
  .thumbnails > li {
    margin-left: 30px;
  }
  .row-fluid .thumbnails {
    margin-left: 0;
  }
}

@media (min-width: 768px) and (max-width: 979px) {
  .row {
    margin-left: -20px;
    *zoom: 1;
  }
  .row:before,
  .row:after {
    display: table;
    line-height: 0;
    content: "";
  }
  .row:after {
    clear: both;
  }
  [class*="span"] {
    float: left;
    min-height: 1px;
    margin-left: 20px;
  }
  .container,
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
    width: 724px;
  }
  .span12 {
    width: 724px;
  }
  .span11 {
    width: 662px;
  }
  .span10 {
    width: 600px;
  }
  .span9 {
    width: 538px;
  }
  .span8 {
    width: 476px;
  }
  .span7 {
    width: 414px;
  }
  .span6 {
    width: 352px;
  }
  .span5 {
    width: 290px;
  }
  .span4 {
    width: 228px;
  }
  .span3 {
    width: 166px;
  }
  .span2 {
    width: 104px;
  }
  .span1 {
    width: 42px;
  }
  .offset12 {
    margin-left: 764px;
  }
  .offset11 {
    margin-left: 702px;
  }
  .offset10 {
    margin-left: 640px;
  }
  .offset9 {
    margin-left: 578px;
  }
  .offset8 {
    margin-left: 516px;
  }
  .offset7 {
    margin-left: 454px;
  }
  .offset6 {
    margin-left: 392px;
  }
  .offset5 {
    margin-left: 330px;
  }
  .offset4 {
    margin-left: 268px;
  }
  .offset3 {
    margin-left: 206px;
  }
  .offset2 {
    margin-left: 144px;
  }
  .offset1 {
    margin-left: 82px;
  }
  .row-fluid {
    width: 100%;
    *zoom: 1;
  }
  .row-fluid:before,
  .row-fluid:after {
    display: table;
    line-height: 0;
    content: "";
  }
  .row-fluid:after {
    clear: both;
  }
  .row-fluid [class*="span"] {
    display: block;
    float: left;
    width: 100%;
    min-height: 30px;
    margin-left: 2.7624309392265194%;
    *margin-left: 2.709239449864817%;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
  }
  .row-fluid [class*="span"]:first-child {
    margin-left: 0;
  }
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
    margin-left: 2.7624309392265194%;
  }
  .row-fluid .span12 {
    width: 100%;
    *width: 99.94680851063829%;
  }
  .row-fluid .span11 {
    width: 91.43646408839778%;
    *width: 91.38327259903608%;
  }
  .row-fluid .span10 {
    width: 82.87292817679558%;
    *width: 82.81973668743387%;
  }
  .row-fluid .span9 {
    width: 74.30939226519337%;
    *width: 74.25620077583166%;
  }
  .row-fluid .span8 {
    width: 65.74585635359117%;
    *width: 65.69266486422946%;
  }
  .row-fluid .span7 {
    width: 57.18232044198895%;
    *width: 57.12912895262725%;
  }
  .row-fluid .span6 {
    width: 48.61878453038674%;
    *width: 48.56559304102504%;
  }
  .row-fluid .span5 {
    width: 40.05524861878453%;
    *width: 40.00205712942283%;
  }
  .row-fluid .span4 {
    width: 31.491712707182323%;
    *width: 31.43852121782062%;
  }
  .row-fluid .span3 {
    width: 22.92817679558011%;
    *width: 22.87498530621841%;
  }
  .row-fluid .span2 {
    width: 14.3646408839779%;
    *width: 14.311449394616199%;
  }
  .row-fluid .span1 {
    width: 5.801104972375691%;
    *width: 5.747913483013988%;
  }
  .row-fluid .offset12 {
    margin-left: 105.52486187845304%;
    *margin-left: 105.41847889972962%;
  }
  .row-fluid .offset12:first-child {
    margin-left: 102.76243093922652%;
    *margin-left: 102.6560479605031%;
  }
  .row-fluid .offset11 {
    margin-left: 96.96132596685082%;
    *margin-left: 96.8549429881274%;
  }
  .row-fluid .offset11:first-child {
    margin-left: 94.1988950276243%;
    *margin-left: 94.09251204890089%;
  }
  .row-fluid .offset10 {
    margin-left: 88.39779005524862%;
    *margin-left: 88.2914070765252%;
  }
  .row-fluid .offset10:first-child {
    margin-left: 85.6353591160221%;
    *margin-left: 85.52897613729868%;
  }
  .row-fluid .offset9 {
    margin-left: 79.8342541436464%;
    *margin-left: 79.72787116492299%;
  }
  .row-fluid .offset9:first-child {
    margin-left: 77.07182320441989%;
    *margin-left: 76.96544022569647%;
  }
  .row-fluid .offset8 {
    margin-left: 71.2707182320442%;
    *margin-left: 71.16433525332079%;
  }
  .row-fluid .offset8:first-child {
    margin-left: 68.50828729281768%;
    *margin-left: 68.40190431409427%;
  }
  .row-fluid .offset7 {
    margin-left: 62.70718232044199%;
    *margin-left: 62.600799341718584%;
  }
  .row-fluid .offset7:first-child {
    margin-left: 59.94475138121547%;
    *margin-left: 59.838368402492065%;
  }
  .row-fluid .offset6 {
    margin-left: 54.14364640883978%;
    *margin-left: 54.037263430116376%;
  }
  .row-fluid .offset6:first-child {
    margin-left: 51.38121546961326%;
    *margin-left: 51.27483249088986%;
  }
  .row-fluid .offset5 {
    margin-left: 45.58011049723757%;
    *margin-left: 45.47372751851417%;
  }
  .row-fluid .offset5:first-child {
    margin-left: 42.81767955801105%;
    *margin-left: 42.71129657928765%;
  }
  .row-fluid .offset4 {
    margin-left: 37.01657458563536%;
    *margin-left: 36.91019160691196%;
  }
  .row-fluid .offset4:first-child {
    margin-left: 34.25414364640884%;
    *margin-left: 34.14776066768544%;
  }
  .row-fluid .offset3 {
    margin-left: 28.45303867403315%;
    *margin-left: 28.346655695309746%;
  }
  .row-fluid .offset3:first-child {
    margin-left: 25.69060773480663%;
    *margin-left: 25.584224756083227%;
  }
  .row-fluid .offset2 {
    margin-left: 19.88950276243094%;
    *margin-left: 19.783119783707537%;
  }
  .row-fluid .offset2:first-child {
    margin-left: 17.12707182320442%;
    *margin-left: 17.02068884448102%;
  }
  .row-fluid .offset1 {
    margin-left: 11.32596685082873%;
    *margin-left: 11.219583872105325%;
  }
  .row-fluid .offset1:first-child {
    margin-left: 8.56353591160221%;
    *margin-left: 8.457152932878806%;
  }
  input,
  textarea,
  .uneditable-input {
    margin-left: 0;
  }
  .controls-row [class*="span"] + [class*="span"] {
    margin-left: 20px;
  }
  input.span12,
  textarea.span12,
  .uneditable-input.span12 {
    width: 710px;
  }
  input.span11,
  textarea.span11,
  .uneditable-input.span11 {
    width: 648px;
  }
  input.span10,
  textarea.span10,
  .uneditable-input.span10 {
    width: 586px;
  }
  input.span9,
  textarea.span9,
  .uneditable-input.span9 {
    width: 524px;
  }
  input.span8,
  textarea.span8,
  .uneditable-input.span8 {
    width: 462px;
  }
  input.span7,
  textarea.span7,
  .uneditable-input.span7 {
    width: 400px;
  }
  input.span6,
  textarea.span6,
  .uneditable-input.span6 {
    width: 338px;
  }
  input.span5,
  textarea.span5,
  .uneditable-input.span5 {
    width: 276px;
  }
  input.span4,
  textarea.span4,
  .uneditable-input.span4 {
    width: 214px;
  }
  input.span3,
  textarea.span3,
  .uneditable-input.span3 {
    width: 152px;
  }
  input.span2,
  textarea.span2,
  .uneditable-input.span2 {
    width: 90px;
  }
  input.span1,
  textarea.span1,
  .uneditable-input.span1 {
    width: 28px;
  }
}

@media (max-width: 767px) {
  body {
    padding-right: 20px;
    padding-left: 20px;
  }
  .navbar-fixed-top,
  .navbar-fixed-bottom,
  .navbar-static-top {
    margin-right: -20px;
    margin-left: -20px;
  }
  .container-fluid {
    padding: 0;
  }
  .dl-horizontal dt {
    float: none;
    width: auto;
    clear: none;
    text-align: left;
  }
  .dl-horizontal dd {
    margin-left: 0;
  }
  .container {
    width: auto;
  }
  .row-fluid {
    width: 100%;
  }
  .row,
  .thumbnails {
    margin-left: 0;
  }
  .thumbnails > li {
    float: none;
    margin-left: 0;
  }
  [class*="span"],
  .uneditable-input[class*="span"],
  .row-fluid [class*="span"] {
    display: block;
    float: none;
    width: 100%;
    margin-left: 0;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
  }
  .span12,
  .row-fluid .span12 {
    width: 100%;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
  }
  .row-fluid [class*="offset"]:first-child {
    margin-left: 0;
  }
  .input-large,
  .input-xlarge,
  .input-xxlarge,
  input[class*="span"],
  select[class*="span"],
  textarea[class*="span"],
  .uneditable-input {
    display: block;
    width: 100%;
    min-height: 30px;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
  }
  .input-prepend input,
  .input-append input,
  .input-prepend input[class*="span"],
  .input-append input[class*="span"] {
    display: inline-block;
    width: auto;
  }
  .controls-row [class*="span"] + [class*="span"] {
    margin-left: 0;
  }
}

@media (max-width: 480px) {
  .nav-collapse {
    -webkit-transform: translate3d(0, 0, 0);
  }
  .page-header h1 small {
    display: block;
    line-height: 20px;
  }
  input[type="checkbox"],
  input[type="radio"] {
    border: 1px solid #ccc;
  }
  .form-horizontal .control-label {
    float: none;
    width: auto;
    padding-top: 0;
    text-align: left;
  }
  .form-horizontal .controls {
    margin-left: 0;
  }
  .form-horizontal .control-list {
    padding-top: 0;
  }
  .form-horizontal .form-actions {
    padding-right: 10px;
    padding-left: 10px;
  }
  .media .pull-left,
  .media .pull-right {
    display: block;
    float: none;
    margin-bottom: 10px;
  }
  .media-object {
    margin-right: 0;
    margin-left: 0;
  }
  .modal-header .close {
    padding: 10px;
    margin: -10px;
  }
  .carousel-caption {
    position: static;
  }
}

@media (max-width: 979px) {
  body {
    padding-top: 0;
  }
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    position: static;
  }
  .navbar-fixed-top {
    margin-bottom: 20px;
  }
  .navbar-fixed-bottom {
    margin-top: 20px;
  }
  .navbar-fixed-top .navbar-inner,
  .navbar-fixed-bottom .navbar-inner {
    padding: 5px;
  }
  .navbar .container {
    width: auto;
    padding: 0;
  }
  .navbar .brand {
    padding-right: 10px;
    padding-left: 10px;
    margin: 0 0 0 -5px;
  }
  .nav-collapse {
    clear: both;
  }
  .nav-collapse .nav {
    float: none;
    margin: 0 0 10px;
  }
  .nav-collapse .nav > li {
    float: none;
  }
  .nav-collapse .nav > li > a {
    margin-bottom: 2px;
  }
  .nav-collapse .nav > .divider-vertical {
    display: none;
  }
  .nav-collapse .nav .nav-header {
    color: #777777;
    text-shadow: none;
  }
  .nav-collapse .nav > li > a,
  .nav-collapse .dropdown-menu a {
    padding: 9px 15px;
    font-weight: bold;
    color: #777777;
    -webkit-border-radius: 3px;
       -moz-border-radius: 3px;
            border-radius: 3px;
  }
  .nav-collapse .btn {
    padding: 4px 10px 4px;
    font-weight: normal;
    -webkit-border-radius: 4px;
       -moz-border-radius: 4px;
            border-radius: 4px;
  }
  .nav-collapse .dropdown-menu li + li a {
    margin-bottom: 2px;
  }
  .nav-collapse .nav > li > a:hover,
  .nav-collapse .nav > li > a:focus,
  .nav-collapse .dropdown-menu a:hover,
  .nav-collapse .dropdown-menu a:focus {
    background-color: #f2f2f2;
  }
  .navbar-inverse .nav-collapse .nav > li > a,
  .navbar-inverse .nav-collapse .dropdown-menu a {
    color: #999999;
  }
  .navbar-inverse .nav-collapse .nav > li > a:hover,
  .navbar-inverse .nav-collapse .nav > li > a:focus,
  .navbar-inverse .nav-collapse .dropdown-menu a:hover,
  .navbar-inverse .nav-collapse .dropdown-menu a:focus {
    background-color: #111111;
  }
  .nav-collapse.in .btn-group {
    padding: 0;
    margin-top: 5px;
  }
  .nav-collapse .dropdown-menu {
    position: static;
    top: auto;
    left: auto;
    display: none;
    float: none;
    max-width: none;
    padding: 0;
    margin: 0 15px;
    background-color: transparent;
    border: none;
    -webkit-border-radius: 0;
       -moz-border-radius: 0;
            border-radius: 0;
    -webkit-box-shadow: none;
       -moz-box-shadow: none;
            box-shadow: none;
  }
  .nav-collapse .open > .dropdown-menu {
    display: block;
  }
  .nav-collapse .dropdown-menu:before,
  .nav-collapse .dropdown-menu:after {
    display: none;
  }
  .nav-collapse .dropdown-menu .divider {
    display: none;
  }
  .nav-collapse .nav > li > .dropdown-menu:before,
  .nav-collapse .nav > li > .dropdown-menu:after {
    display: none;
  }
  .nav-collapse .navbar-form,
  .nav-collapse .navbar-search {
    float: none;
    padding: 10px 15px;
    margin: 10px 0;
    border-top: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  }
  .navbar-inverse .nav-collapse .navbar-form,
  .navbar-inverse .nav-collapse .navbar-search {
    border-top-color: #111111;
    border-bottom-color: #111111;
  }
  .navbar .nav-collapse .nav.pull-right {
    float: none;
    margin-left: 0;
  }
  .nav-collapse,
  .nav-collapse.collapse {
    height: 0;
    overflow: hidden;
  }
  .navbar .btn-navbar {
    display: block;
  }
  .navbar-static .navbar-inner {
    padding-right: 10px;
    padding-left: 10px;
  }
}

@media (min-width: 980px) {
  .nav-collapse.collapse {
    height: auto !important;
    overflow: visible !important;
  }
}
jui/css/jquery.searchtools.css000064400000003762152177723720012526 0ustar00.js-stools {
	width: 100%;
}
.js-stools-container-filters {
	display: none;
	margin: 10px 0;
}
.js-stools-container-bar .input-append {
	margin-bottom: 0;
}
/* Use up caret to hide the search filters */
.js-stools-container-bar .btn-primary .caret {
	border-top: 0;
	border-bottom: 4px solid #FFF;
	margin-top: 7px;
	margin-bottom: 8px;
}
.js-stools .btn-wrapper {
	display: inline-block;
	margin: 0 5px 0 0;
}
/* Fixed filter fields (selector) */
.js-stools .js-stools-container-selector {
	float: left;
	margin-right: 10px;
	min-width: 220px;
}
html[dir=rtl] .js-stools .js-stools-container-selector {
	float: right;
	margin-left: 10px;
	margin-right: 0;
}
.js-stools .js-stools-container-bar {
	float: left;
}
html[dir=rtl] .js-stools .js-stools-container-bar {
	float: right;
}
.js-stools .js-stools-container-list {
	float: right;
	text-align: right;
}
html[dir=rtl] .js-stools .js-stools-container-list {
	float: left;
	text-align: left;
}
.js-stools .chzn-container {
	text-align: left;
}
html[dir=rtl] .js-stools .chzn-container {
	text-align: right;
}
.js-stools .js-stools-container-filters select.active,
.js-stools .js-stools-container-filters .chzn-container.active .chzn-single{
	border: 2px solid #2384D3;
}
.js-stools .js-stools-container-filters-visible {
	display: inline-block;
}
.js-stools .chzn-container-single .chzn-single span {
	overflow: visible;
}
.js-stools .js-stools-field-list,
.js-stools .js-stools-field-filter {
	display: inline-block;
	margin: 0 5px 5px 0;
}
.js-stools .js-stools-container-list .js-stools-field-list:last-child {
	margin-right: 0;
}

/* Media queries */
@media (max-width: 480px) {
	.js-stools-container-filters {
		display: block;
	}
	.js-stools-container-filters .btn-group {
		display: block;
	}
	.js-stools-container-filters .btn-wrapper {
		width: 100%
	}
	.js-stools-container-bar {
		margin-top: 20px;
	}
}
@media (min-width: 768px) and (max-width: 979px) {
	.js-stools .js-stools-container-bar,
	.js-stools .js-stools-container-list {
		float: none;
		display: block;
	}
}
jui/css/bootstrap-rtl.css000064400000030656152177723720011500 0ustar00.clearfix {
	*zoom: 1;
}
.clearfix:before,
.clearfix:after {
	display: table;
	content: "";
	line-height: 0;
}
.clearfix:after {
	clear: both;
}
.hide-text {
	font: 0/0 a;
	color: transparent;
	text-shadow: none;
	background-color: transparent;
	border: 0;
}
.input-block-level {
	display: block;
	width: 100%;
	min-height: 30px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
.pull-right {
	float: left;
}
.pull-left {
	float: right;
}
.table th,
.table td {
	text-align: right;
}
.navbar .brand {
	float: right;
	padding: 8px 20px 8px 12px;
	margin-right: -20px;
	margin-left: 0;
}
.navbar .nav,
.navbar .nav > li {
	float: left;
}
.navbar .nav.pull-right {
	margin-right: 10px;
	margin-left: 0px;
}
.pull-right > .dropdown-menu {
	left: 0;
	right: auto;
}
[class*="span"] {
	float: right;
	margin-right: 20px;
	margin-left: 0px;
}
.row-fluid [class*="span"] {
	float: right;
	margin-right: 2.127659574%;
	*margin-right: 2.0744680846382977%;
	margin-left: 0px !important;
	*margin-left: 0px !important;
}
.row-fluid [class*="span"]:first-child {
	margin-right: 0;
}
.form-horizontal .control-label {
	float: right;
	width: auto;
	padding-left: 5px;
	padding-right: 0;
	text-align: right;
}
.form-horizontal .controls {
	*display: inline-block;
	*padding-right: 20px;
	margin-right: 160px;
	*margin-right: 0;
	margin-left: 0;
	text-align: right;
	margin-top: 6px;
}
.form-horizontal .controls:first-child {
	*padding-right: 160px;
}
.form-vertical .controls {
	*display: inline-block;
	*padding-right: 20px;
	margin-right: 0;
	*margin-right: 0;
	margin-left: 0;
	text-align: right;
	margin-top: 6px;
}
.form-vertical .control-label {
	float: none;
	padding-right: 0;
	padding-top: 0;
	text-align: right;
	width: auto;
}
.chzn-container-single-nosearch .chzn-search input {
	position: absolute;
	left: -9000px;
	display: none;
}
.nav-tabs > li,
.nav-pills > li {
	float: right;
}
.nav-stacked > li {
	float: none;
}
.btn-group > .btn {
	float: right;
	margin-right: -1px;
	margin-left: 0;
}
.btn-group > .btn:first-child {
	margin-right: 0;
}
.btn-group > .btn:first-child,
.radio.btn-group > label:first-of-type {
	margin-left: 0;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-moz-border-radius-bottomleft: 4px;
	-moz-border-radius-topleft: 4px;
	-webkit-border-bottom-right-radius: 4px;
	border-bottom-right-radius: 4px;
	-webkit-border-top-right-radius: 4px;
	border-top-right-radius: 4px;
	-moz-border-radius-bottomright: 4px;
	-moz-border-radius-topright: 4px;
}
.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
	-webkit-border-top-right-radius: 0px;
	border-top-right-radius: 0px;
	-webkit-border-bottom-right-radius: 0px;
	border-bottom-right-radius: 0px;
	-moz-border-radius-topright: 0px;
	-moz-border-radius-bottomright: 0px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-moz-border-radius-topleft: 4px;
	-moz-border-radius-bottomleft: 4px;
}
.btn-group > .btn.large:first-child {
	-webkit-border-bottom-left-radius: 0px;
	border-bottom-left-radius: 0px;
	-webkit-border-top-left-radius: 0px;
	border-top-left-radius: 0px;
	-moz-border-radius-bottomleft: 0px;
	-moz-border-radius-topleft: 0px;
	margin-right: 0;
	-webkit-border-bottom-right-radius: 6px;
	border-bottom-right-radius: 6px;
	-webkit-border-top-right-radius: 6px;
	border-top-right-radius: 6px;
	-moz-border-radius-bottomright: 6px;
	-moz-border-radius-topright: 6px;
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
	-webkit-border-top-right-radius: 0px;
	border-top-right-radius: 0px;
	-webkit-border-bottom-right-radius: 0px;
	border-bottom-right-radius: 0px;
	-moz-border-radius-topright: 0px;
	-moz-border-radius-bottomright: 0px;
	-webkit-border-top-left-radius: 6px;
	border-top-left-radius: 6px;
	-webkit-border-bottom-left-radius: 6px;
	border-bottom-left-radius: 6px;
	-moz-border-radius-topleft: 6px;
	-moz-border-radius-bottomleft: 6px;
}
.btn-group > .btn:first-child:last-child {
	margin-left: 0;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-moz-border-radius-topleft: 4px;
	-moz-border-radius-bottomleft: 4px;
	-webkit-border-bottom-right-radius: 4px;
	border-bottom-right-radius: 4px;
	-webkit-border-top-right-radius: 4px;
	border-top-right-radius: 4px;
	-moz-border-radius-bottomright: 4px;
	-moz-border-radius-topright: 4px;
}
.input-prepend .add-on {
	float: right;
}
.input-append .add-on {
	float: none;
}
.input-prepend .add-on,
.input-prepend .btn {
	margin-left: -1px;
	margin-right: 0;
}
.input-prepend .add-on:first-child,
.input-prepend .btn:first-child {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.input-append input,
.input-append select,
.input-append .uneditable-input {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.input-append .uneditable-input {
	border-left-color: #ccc;
	border-right-color: #eee;
}
.input-append .add-on:last-child,
.input-append .btn:last-child {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.input-prepend.input-append input,
.input-prepend.input-append select,
.input-prepend.input-append .uneditable-input {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}
.input-prepend.input-append .add-on:first-child,
.input-prepend.input-append .btn:first-child {
	margin-left: -1px;
	margin-right: 0px;
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
	float: right;
}
.input-prepend.input-append .add-on:last-child,
.input-prepend.input-append .btn:last-child {
	margin-right: -1px;
	margin-left: 0px;
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.input-prepend input,
.input-prepend select,
.input-prepend .uneditable-input {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
body {
	direction: rtl;
}
.pager .next a {
	float: left;
}
.pager .previous a {
	float: right;
}
.icon-arrow-right {
	background-position: -241px -94px;
	float: left;
	padding-right: 3px;
}
.icon-arrow-left {
	background-position: -264px -95px;
}
.icon-refresh {
	background-position: -240px -23px;
}
#refresh-status {
	background-position: right center;
	padding-left: 0;
	padding-right: 25px;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
	float: right;
	margin-right: 2px;
	margin-left: 5px;
}
.list-striped,
.row-striped {
	list-style: none;
	line-height: 18px;
	text-align: right;
}
.btn-group + .btn-group {
	margin-right: 5px;
	margin-left: 0px;
}
.tabs-left > .nav-tabs {
	float: right;
	margin-left: 19px;
	border-left: 1px solid #DDD;
	margin-right: 0px;
	border-right: 0px;
}
.tabs-left > .nav-tabs .active > a,
.tabs-left > .nav-tabs .active > a:hover {
	border-color: #DDD #DDD #DDD transparent;
}
.tabs-left > .nav-tabs > li > a {
	margin-left: -1px;
	-webkit-border-radius: 0 4px 4px 0;
	-moz-border-radius: 0 4px 4px 0;
	border-radius: 0 4px 4px 0;
	margin-right: 0px;
}
.controls > .radio:first-child,
.controls > .checkbox:first-child {
	padding-top: 0px;
}
.btn-toolbar {
	margin-top: 14px;
	margin-bottom: 3px;
}
.navbar .nav > li {
	float: right;
}
.icon-folder-2 {
	line-height: 25px;
	padding-left: 5px;
}
.navbar .nav > li > a {
	padding: 8px 10px;
	color: #FFFFFF;
}
.navigation .nav li li .nav-child {
	left: auto;
	right: 100%;
}
.navigation .nav li li .nav-child:before {
	left: auto;
	right: -7px;
	border-left: 7px solid rgba(0,0,0,0.2);
	border-right-width: 0;
}
.navigation .nav li li .nav-child:after {
	left: auto;
	right: -6px;
	border-left: 6px solid #ffffff;
	border-right-width: 0;
}
.container-logo {
	padding-top: 6px;
	float: left;
	text-align: left;
}
.modal-header .close {
	float: left;
}
.pagination a {
	float: right;
}
.pagination ul {
	display: inline-block;
	*display: inline;
	*zoom: 1;
	margin-right: 0;
	margin-bottom: 0;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.pagination a {
	float: right;
	padding: 0 14px;
	line-height: 34px;
	text-decoration: none;
	border: 1px solid #ddd;
	border-right-width: 0;
}
.pagination li:first-child a {
	border-right-width: 1px;
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.pagination li:last-child a {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.pagination-centered {
	text-align: center;
}
.pagination-right {
	text-align: right;
}
.icon-first:before {
	content: "\e000";
}
.icon-previous:before {
	content: "\7d";
}
.icon-last:before {
	content: "\7b";
}
.icon-next:before {
	content: "\7c";
}
.dl-horizontal dt {
	float: right;
	text-align: left;
	clear: right;
}
.dl-horizontal dd {
	margin-left: 0;
	margin-right: 180px;
}
.dl-horizontal dt,
.profile> ul {
	margin: 9px 25px 0 0;
}
.dropdown-submenu > a:after {
	float: left;
	border-width: 5px 5px 5px 0;
	margin-left: -10px;
	border-left-color: transparent;
	border-right-color: #CCC;
}
.badge {
	margin-left: 10px;
}
.tip-text {
	text-align: right;
}
.icon-file-add:before {
	content: "(";
}
.icon-eye-open:before,
.icon-eye:before {
	content: ">";
}
.icon-checkin:before,
.icon-checkbox:before {
	content: "<";
}
.icon-save-new:before,
.icon-plus-2:before {
	content: "[";
}
.btn-toolbar .btn + .btn,
.btn-toolbar .btn-group + .btn,
.btn-toolbar .btn + .btn-group {
	margin-left: 0;
	margin-right: 5px;
}
.btn-toolbar .btn-wrapper {
	display: inline-block;
	margin: 0 5px 5px 0;
}
.btn-group > .btn + .btn {
	margin-left: 0;
	margin-right: -1px;
}
.input-append .add-on,
.input-append .btn,
.input-prepend .add-on,
.input-prepend .btn {
	margin-left: 0;
	margin-right: -1px;
}
.table-bordered {
	border-right-width: 0;
	border-left-width: 1px;
	border-right-style: none;
	border-left-style: solid;
	border-right-color: -moz-use-text-color;
	border-left-color: #DDDDDD;
}
.chzn-container-single .chzn-single {
	padding-right: 8px;
	padding-left: 0;
}
.chzn-container-single .chzn-single span {
	margin-left: 26px;
	margin-right: 0;
}
.chzn-container-single .chzn-single abbr {
	left: 26px;
	right: auto;
}
.chzn-container-single .chzn-single div {
	left: 0;
	right: auto;
}
.chzn-container-multi .chzn-choices li {
	float: right;
}
.chzn-container-multi .chzn-choices .search-choice {
	margin-right: 5px;
	margin-left: 0;
	padding-right: 5px;
	padding-left: 20px;
}
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
	left: 3px;
	right: auto;
}
.chzn-container.chzn-with-drop .chzn-drop {
	right: 0;
	left: auto;
}
.chzn-container-single.chzn-container-single-nosearch .chzn-search {
	position: absolute;
	right: -9999px;
	left: auto;
}
.chzn-container .chzn-drop {
	right: -9999px;
	left: auto;
}
.alert {
	padding-right: 14px;
	padding-left: 35px;
}
.alert .close {
	left: -21px;
	right: auto;
}
.close {
	float: left;
}
.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
	margin-bottom: 9px;
}
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
	float: right;
	margin-left: 3px;
	margin-right: 0;
}
.com_media .container-main .media {
	display: inline-block;
}
.thumbnails > li {
	float: right;
	margin-bottom: 18px;
	margin-right: 20px;
}
#mediamanager-form .description,
#mediamanager-form .filesize,
#mediamanager-form .dimensions {
	direction: ltr;
}
.popover,
.tooltip-inner {
	text-align: right;
}
.popover.top .arrow,
.popover.bottom .arrow {
	margin-right: -11px;
}
.popover.top .arrow:after,
.popover.bottom .arrow:after {
	margin-right: -10px;
}
@media (max-width: 480px) {
	.btn-toolbar .btn-wrapper {
		display: block;
		margin: 0 0 5px 0;
	}
	.btn-toolbar .btn-wrapper .btn {
		margin-left: 0px;
		margin-right: 10px;
	}
}
#pop-print {
	float: left;
	margin: 10px;
}
#install_url,
#install_directory,
#jform_customurl,
#jform_link,
#jform_params_url,
input[type="url"] {
	text-align: left;
	direction: ltr;
}
#aside .nav .nav-child {
	border-left: 0;
	border-right: 2px solid #ddd;
	padding-left: 0;
	padding-right: 5px;
}
.dropdown-menu {
	text-align: right;
}
[class^="icon-"],
[class*=" icon-"] {
	margin-left: .25em;
}
jui/css/bootstrap-extended.css000064400000021606152177723720012472 0ustar00.clearfix {
	*zoom: 1;
}
.clearfix:before,
.clearfix:after {
	display: table;
	content: "";
	line-height: 0;
}
.clearfix:after {
	clear: both;
}
.hide-text {
	font: 0/0 a;
	color: transparent;
	text-shadow: none;
	background-color: transparent;
	border: 0;
}
.input-block-level {
	display: block;
	width: 100%;
	min-height: 30px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
.small {
	font-size: 11px;
}
iframe,
svg {
	max-width: 100%;
}
.nowrap {
	white-space: nowrap;
}
.center,
.table td.center,
.table th.center {
	text-align: center;
}
a.disabled,
a.disabled:hover {
	color: #999999;
	background-color: transparent;
	cursor: default;
	text-decoration: none;
}
.hero-unit {
	text-align: center;
}
.hero-unit .lead {
	margin-bottom: 18px;
	font-size: 20px;
	font-weight: 200;
	line-height: 27px;
}
.btn .caret {
	margin-bottom: 7px;
}
.btn.btn-micro .caret {
	margin: 5px 0;
}
.blog-row-rule,
.blog-item-rule {
	border: 0;
}
body.modal {
	padding-top: 0;
}
.row-even,
.row-odd {
	padding: 5px;
	width: 99%;
	border-bottom: 1px solid #ddd;
}
.row-odd {
	background-color: transparent;
}
.row-even {
	background-color: #f9f9f9;
}
.blog-row-rule,
.blog-item-rule {
	border: 0;
}
.row-fluid .row-reveal {
	visibility: hidden;
}
.row-fluid:hover .row-reveal {
	visibility: visible;
}
.btn-wide {
	width: 80%;
}
.nav-list > li.offset > a {
	padding-left: 30px;
	font-size: 12px;
}
.blog-row-rule,
.blog-item-rule {
	border: 0;
}
.row-fluid .offset1 {
	margin-left: 8.382978723%;
}
.row-fluid .offset2 {
	margin-left: 16.89361702%;
}
.row-fluid .offset3 {
	margin-left: 25.404255317%;
}
.row-fluid .offset4 {
	margin-left: 33.914893614%;
}
.row-fluid .offset5 {
	margin-left: 42.425531911%;
}
.row-fluid .offset6 {
	margin-left: 50.93617020799999%;
}
.row-fluid .offset7 {
	margin-left: 59.446808505%;
}
.row-fluid .offset8 {
	margin-left: 67.95744680199999%;
}
.row-fluid .offset9 {
	margin-left: 76.468085099%;
}
.row-fluid .offset10 {
	margin-left: 84.97872339599999%;
}
.row-fluid .offset11 {
	margin-left: 91.489361693%;
}
.navbar .nav > li > a.btn {
	padding: 4px 10px;
	line-height: 18px;
}
.nav-tabs.nav-dark {
	border-bottom: 1px solid #333;
	text-shadow: 1px 1px 1px #000;
}
.nav-tabs.nav-dark > li > a {
	color: #F8F8F8;
}
.nav-tabs.nav-dark > li > a:hover {
	border-color: #333 #333 #111;
	background-color: #777777;
}
.nav-tabs.nav-dark > .active > a,
.nav-tabs.nav-dark > .active > a:hover {
	color: #ffffff;
	background-color: #555555;
	border: 1px solid #222;
	border-bottom-color: transparent;
}
.thumbnail.pull-left {
	margin: 0 10px 10px 0;
}
.thumbnail.pull-right {
	margin: 0 0 10px 10px;
}
.width-10 {
	width: 10px;
}
.width-20 {
	width: 20px;
}
.width-30 {
	width: 30px;
}
.width-40 {
	width: 40px;
}
.width-50 {
	width: 50px;
}
.width-60 {
	width: 60px;
}
.width-70 {
	width: 70px;
}
.width-80 {
	width: 80px;
}
.width-90 {
	width: 90px;
}
.width-100 {
	width: 100px;
}
.height-10 {
	height: 10px;
}
.height-20 {
	height: 20px;
}
.height-30 {
	height: 30px;
}
.height-40 {
	height: 40px;
}
.height-50 {
	height: 50px;
}
.height-60 {
	height: 60px;
}
.height-70 {
	height: 70px;
}
.height-80 {
	height: 80px;
}
.height-90 {
	height: 90px;
}
.height-100 {
	height: 100px;
}
hr.hr-condensed {
	margin: 10px 0;
}
.list-striped,
.row-striped {
	list-style: none;
	line-height: 18px;
	text-align: left;
	vertical-align: middle;
	border-top: 1px solid #ddd;
	margin-left: 0;
}
.list-striped li,
.list-striped dd,
.row-striped .row,
.row-striped .row-fluid {
	border-bottom: 1px solid #ddd;
	padding: 8px;
}
.list-striped li:nth-child(odd),
.list-striped dd:nth-child(odd),
.row-striped .row:nth-child(odd),
.row-striped .row-fluid:nth-child(odd) {
	background-color: #f9f9f9;
}
.list-striped li:hover,
.list-striped dd:hover,
.row-striped .row:hover,
.row-striped .row-fluid:hover {
	background-color: #f5f5f5;
}
.row-striped .row-fluid {
	width: 100%;
	box-sizing: border-box;
}
.row-striped .row-fluid [class*="span"] {
	min-height: 10px;
}
.row-striped .row-fluid [class*="span"] {
	margin-left: 8px;
}
.row-striped .row-fluid [class*="span"]:first-child {
	margin-left: 0;
}
.list-condensed li {
	padding: 4px 5px;
}
.row-condensed .row,
.row-condensed .row-fluid {
	padding: 4px 5px;
}
.list-bordered,
.row-bordered {
	list-style: none;
	line-height: 18px;
	text-align: left;
	vertical-align: middle;
	margin-left: 0;
	border: 1px solid #ddd;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}
.radio.btn-group input[type=radio] {
	display: none;
}
.radio.btn-group > label {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.radio.btn-group > label:first-of-type {
	margin-left: 0;
	-webkit-border-bottom-left-radius: 4px;
	border-bottom-left-radius: 4px;
	-webkit-border-top-left-radius: 4px;
	border-top-left-radius: 4px;
	-moz-border-radius-bottomleft: 4px;
	-moz-border-radius-topleft: 4px;
}
fieldset.radio.btn-group {
	padding-left: 0;
}
.iframe-bordered {
	border: 1px solid #ddd;
}
.tab-content {
	overflow: visible;
}
.tabs-left .tab-content {
	overflow: auto;
}
.nav-tabs > li > span {
	display: block;
	margin-right: 2px;
	padding-right: 12px;
	padding-left: 12px;
	padding-top: 8px;
	padding-bottom: 8px;
	line-height: 18px;
	border: 1px solid transparent;
	-webkit-border-radius: 4px 4px 0 0;
	-moz-border-radius: 4px 4px 0 0;
	border-radius: 4px 4px 0 0;
}
.btn-micro {
	padding: 1px 4px;
	font-size: 10px;
	line-height: 8px;
}
.btn-group > .btn-micro {
	font-size: 10px;
}
.tip-wrap {
	max-width: 200px;
	padding: 3px 8px;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background-color: #000;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	z-index: 100;
}
.page-header {
	margin: 2px 0px 10px 0px;
	padding-bottom: 5px;
}
.input-prepend > .add-on,
.input-append > .add-on {
	vertical-align: top;
}
.input-prepend .chzn-container-single .chzn-single {
	-webkit-border-radius: 0 3px 3px 0;
	-moz-border-radius: 0 3px 3px 0;
	border-radius: 0 3px 3px 0;
}
.input-prepend .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 0 3px 0 0;
	-moz-border-radius: 0 3px 0 0;
	border-radius: 0 3px 0 0;
}
.input-append .chzn-container-single .chzn-single {
	-webkit-border-radius: 3px 0 0 3px;
	-moz-border-radius: 3px 0 0 3px;
	border-radius: 3px 0 0 3px;
}
.input-append .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 3px 0 0 0;
	-moz-border-radius: 3px 0 0 0;
	border-radius: 3px 0 0 0;
}
.input-prepend.input-append .chzn-container-single .chzn-single,
.input-prepend.input-append .chzn-container-single .chzn-single-with-drop {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}
.element-invisible {
	position: absolute;
	padding: 0;
	margin: 0;
	border: 0;
	height: 1px;
	width: 1px;
	overflow: hidden;
}
.element-invisible:focus {
	width: auto;
	height: auto;
	overflow: auto;
	background: #eee;
	color: #000;
	padding: 1em;
}
.form-vertical .control-label {
	float: none;
	width: auto;
	padding-right: 0;
	padding-top: 0;
	text-align: left;
}
.form-vertical .controls {
	margin-left: 0;
}
.width-auto {
	width: auto;
}
.btn-group .chzn-results {
	white-space: normal;
}
.accordion-body.in:hover {
	overflow: visible;
}
.invalid {
	color: #9d261d;
	font-weight: bold;
}
input.invalid {
	border: 1px solid #9d261d;
	background: #f2dede;
}
select.chzn-done.invalid + .chzn-container.chzn-container-single > a.chzn-single,
select.chzn-done.invalid + .chzn-container.chzn-container-multi > ul.chzn-choices {
	border-color: #9d261d;
	color: #9d261d;
}
.tooltip {
	max-width: 400px;
}
.tooltip-inner {
	max-width: none;
	text-align: left;
	text-shadow: none;
}
th .tooltip-inner {
	font-weight: normal;
}
.tooltip.hasimage {
	opacity: 1;
}
.tip-text {
	text-align: left;
}
.btn-group > .btn + .dropdown-backdrop + .btn {
	margin-left: -1px;
}
.btn-group > .btn + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 8px;
	padding-right: 8px;
	-webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
	-moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
	box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
	*padding-top: 5px;
	*padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 5px;
	padding-right: 5px;
	*padding-top: 2px;
	*padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-backdrop + .dropdown-toggle {
	*padding-top: 5px;
	*padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-backdrop + .dropdown-toggle {
	padding-left: 12px;
	padding-right: 12px;
	*padding-top: 7px;
	*padding-bottom: 7px;
}
.dropdown-menu {
	text-align: left;
}
.alert-link {
	font-weight: bold;
}
.alert .alert-link {
	color: #a47e3c;
}
.alert-success .alert-link {
	color: #356635;
}
.alert-danger .alert-link,
.alert-error .alert-link {
	color: #953b39;
}
.alert-info .alert-link {
	color: #2d6987;
}
jui/css/jquery.minicolors.css000064400000015227152177723720012355 0ustar00/**
 * BASED ON:
 *
 * jQuery MiniColors: A tiny color picker built on jQuery
 *
 * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
 *
 * Dual-licensed under the MIT and GPL Version 2 licenses
 *
*/
.minicolors {
	position: relative;
	display: inline-block;
	z-index: 11;
}

.minicolors-focus {
	z-index: 12;
}

.minicolors.minicolors-theme-default .minicolors-input {
	margin: 0px;
	margin-right: 3px;
	border: solid 1px #CCC;
	font: 14px sans-serif;
	width: 65px;
	height: 16px;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
	-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, .04);
	padding: 2px;
	margin-right: -1px;
}

.minicolors-theme-default.minicolors .minicolors-input {
	vertical-align: middle;
	outline: none;
}

.minicolors-theme-default.minicolors-swatch-left .minicolors-input {
	margin-left: -1px;
	margin-right: auto;
}

.minicolors-theme-default.minicolors-focus .minicolors-input,
.minicolors-theme-default.minicolors-focus .minicolors-swatch {
	border-color: #999;
}

.minicolors-hidden {
	position: absolute;
	left: -9999em;
}

.minicolors-swatch {
	position: relative;
	width: 20px;
	height: 20px;
	background: url(../img/jquery.minicolors.png) -80px 0;
	border: solid 1px #CCC;
	vertical-align: middle;
	display: inline-block;
}

.minicolors-swatch span {
	position: absolute;
	width: 100%;
	height: 100%;
	background: none;
	-webkit-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	-moz-box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	box-shadow: inset 0 9px 0 rgba(255, 255, 255, .1);
	display: inline-block;
}

/* Panel */
.minicolors-panel {
	position: absolute;
	top: 26px;
	left: 0;
	width: 173px;
	height: 152px;
	background: white;
	border: solid 1px #CCC;
	-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
	-moz-box-shadow: 0 0 20px rgba(0, 0, 0, .2);
	box-shadow: 0 0 20px rgba(0, 0, 0, .2);
	display: none;
}

.minicolors-position-top .minicolors-panel {
	top: -156px;
}

.minicolors-position-left .minicolors-panel {
	left: -83px;
}

.minicolors-position-left.minicolors-with-opacity .minicolors-panel {
	left: -104px;
}

.minicolors-with-opacity .minicolors-panel {
	width: 194px;
}

.minicolors .minicolors-grid {
	position: absolute;
	top: 1px;
	left: 1px;
	width: 150px;
	height: 150px;
	background: url(../img/jquery.minicolors.png) -120px 0;
	cursor: crosshair;
}

.minicolors .minicolors-grid-inner {
	position: absolute;
	top: 0;
	left: 0;
	width: 150px;
	height: 150px;
	background: none;
}

.minicolors-slider-saturation .minicolors-grid {
	background-position: -420px 0;
}

.minicolors-slider-saturation .minicolors-grid-inner {
	background: url(../img/jquery.minicolors.png) -270px 0;
}

.minicolors-slider-brightness .minicolors-grid {
	background-position: -570px 0;
}

.minicolors-slider-brightness .minicolors-grid-inner {
	background: black;
}

.minicolors-slider-wheel .minicolors-grid {
	background-position: -720px 0;
}

.minicolors-slider,
.minicolors-opacity-slider {
	position: absolute;
	top: 1px;
	left: 152px;
	width: 20px;
	height: 150px;
	background: #ffffff url(../img/jquery.minicolors.png) 0 0;
	cursor: crosshair;
}

.minicolors-slider-saturation .minicolors-slider {
	background-position: -60px 0;
}

.minicolors-slider-brightness .minicolors-slider {
	background-position: -20px 0;
}

.minicolors-slider-wheel .minicolors-slider {
	background-position: -20px 0;
}

.minicolors-opacity-slider {
	left: 173px;
	background-position: -40px 0;
	display: none;
}

.minicolors-with-opacity .minicolors-opacity-slider {
	display: block;
}

/* Pickers */
.minicolors-grid .minicolors-picker {
	position: absolute;
	top: 70px;
	left: 70px;
	width: 10px;
	height: 10px;
	border: solid 1px black;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-top: -6px;
	margin-left: -6px;
	background: none;
}

.minicolors-grid .minicolors-picker span {
	position: absolute;
	top: 0;
	left: 0;
	width: 6px;
	height: 6px;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	border: solid 2px white;
}

.minicolors-picker {
	position: absolute;
	top: 0;
	left: 0;
	width: 18px;
	height: 2px;
	background: white;
	border: solid 1px black;
	margin-top: -2px;
}

/* Inline controls */
.minicolors-inline .minicolors-input,
.minicolors-inline .minicolors-swatch {
	display: none;
}

.minicolors-inline .minicolors-panel {
	position: relative;
	top: auto;
	left: auto;
	display: inline-block;
}

/*
 * Bootstrap Theme (theme: 'bootstrap')
 *
 */

/* Input styles */
.minicolors-theme-bootstrap .minicolors-input {
	padding: 4px 6px;
	padding-left: 30px;
	font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
	font-size: 14px;
	height: 19px;
	width: 65px;
	margin: 0px;
}

/* Input width depending on format */
.minicolors-theme-bootstrap .hex {
	width: 65px;
}
.minicolors-theme-bootstrap .keywords {
	width: 100px;
}
.minicolors-theme-bootstrap .rgb {
	width: 160px;
}
.minicolors-theme-bootstrap .rgba {
	width: 220px;
}

/* When the input is disabled */
.minicolors-theme-bootstrap .minicolors-input[disabled] {
	background-color: #eee;
}

/* Swatch styles */
.minicolors-theme-bootstrap .minicolors-swatch {
	cursor: pointer;
	position: absolute;
	left: 4px;
	top: 4px;
	z-index: 12;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	overflow: hidden;
}

/* Handle swatch position (left = default / right) */
.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-input {
	padding-left: 6px;
	padding-right: 30px;
}

.minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-swatch {
	left: auto;
	right: 4px;
}

/* Panel styles */
.minicolors-theme-bootstrap .minicolors-panel {
	top: -68px;
	left: 100%;
	z-index: 13;
	padding: 5px;
	border: 1px solid #dddddd;
	*border-right-width: 2px;
	*border-bottom-width: 2px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	-webkit-background-clip: padding-box;
	-moz-background-clip: padding-box;
	background-clip: padding-box;
}

.minicolors-theme-bootstrap .minicolors-slider,
.minicolors-theme-bootstrap .minicolors-opacity-slider {
	top: 6px;
	margin-left: 5px;
}

.minicolors-theme-bootstrap .minicolors-grid {
	top: 6px;
	left: 6px;
}

.minicolors-theme-bootstrap.minicolors-position-left .minicolors-panel {
	right: 100%;
	left: auto;
}
.minicolors-theme-bootstrap.minicolors-position-top .minicolors-panel {
	top: -164px;
	left: -6px;
}
.minicolors-theme-bootstrap.minicolors-position-bottom .minicolors-panel {
	left: -6px;
	top: 30px;
}
jui/img/glyphicons-halflings-white.png000064400000021047152177723720014100 0ustar00�PNG


IHDR���ӳ{�PLTE������������mmm�����������������������������������������������������ⰰ���������������������������������������ᒒ�������������ttt��������󻻻������������bbb�������������������������������������������������������eeeggg��𶶶����������������������������xxx�����������������������������󛛛������������������������������Ƽ�������������������������������������������������������������������������������������������������������������������������������������������������������몪����������������֢���������UUU������������������������������������������������������������������鿿��������������s����tRNS���#�_
/�����oS��?��C�
kD���OS_������6��>4!~a�@1�_'o�n�ҋ���M���3�BQj��p&%!l��"Xqr;�� A[�<`�am}4�3/0I��PCM!6(*gK&YQ�GDP,�`�{VP�-�x�)h�7�e1]��W��$��1�b�zSܕcO��]����U;Zi<N#�)	86pV��:h�#�0Z�Q�JN��EDT��܅uIDATx�c�H��]�ȶ�q�<��&���d�NC�i�yf��������p����e��?�]�G�V����E�z��}����g��7�r������7�|Yw}���š�>JN�S!�ױ��;G$�pA��f�3TJ1�Z�8�+ �6�1��	q:u�;:�,��W�z�7D�Ώ��1#�D�1iǑ'�F�� �C �c��'K�	�af�ᱟ�+s�B�hM��"��.�i�f#c�]�p^G�CI��#|Pd��:�T�#�JZm[��m��VC���7�)c�d���	�~F��)��*!�:\�y�Y��K��L���
��<ޅ��w�6���C^�e6�j�{"wZ%oO �Uج&)y�]*�}0y���Ӈ��r|\�V�7�٬a��
����R&�U3W��!���<"��Tb�{9佩WS���ȯ��}��YU��*���k�R�;m''�`��N����w�'�JM�!���6�i��?($ZI�Tp���pڴ�hM�C>�!��*<��*�uIU�t��5�s���h���z���K��t�
B�b|�yT���r��c�v�"y���m�
�*Y���X�c7y�l��?<�� Jjr�fZR{b��������el��$�Iy�P����X��Z�~GH՜9M���E�[2WJ��F�﹟|p���c7�
.��.S�[X���|)X/�ۅ�v\��`~q�����Q�y��N�uK��dw$X�ǿ�>�)5��b|����#�!�f�RJ�U}���1����jLc�V}p�Ш��R��m�Vq����y�l�’/3y�;������&��:�H���ɐ?�ǐp���bA�	��[ݘOBy%+N{d�T�R-�L�Z!�Z�b��/��-�8`-�����U�z�U��d�+�j@m�^ŪT�i4�
`t�
&�Nsn	i*J-�,E,u0$�>1�V��ZkuWV��L�<���x��{���鍅��{|���,�Ľ�����=��=3�7�j}-��K6g�Wa��y�aHQ�c���z�z��/ѕ��Of�yk~�>����*(N@0Q�{|���t3j�MOn����"����OiJ]�ͨ^���A{�m+@T3����㸟W�b�Qq���+3���+0Pj���*$���$���d��br�������[�ɭ�Vsr�9�՜�jNn5�ZF��՘1�Fyj�4UqH�zdh-宓5���uJ��eĶ��ˡ��D�5=d��>5�^�!"��$� H՗JƎ/�y蓍�����O�ߴ[�\Ǖ?�f�5���٬�2L ��^
@,{����G� E�����Vcjb�U��l�NN�6E��]�_MޕѪ��;_�J��Hu"2[N���x��Y���)_�?����)�0��h/���0�����Ol�*�2�3U�:�46�ဎӪ�CQ'���Dޡ��5�>`�<I2�\�L�Yłͪ���qz�
�W��I�Gj{Xrv[^�B���Y����v��@��(�#�w��_}
��Y��qZ�u(��Kv�5����|���׬u?̇̃$å4��:ж���r���J}Y';,�ّ9v��F��|k"W��u5&Z9�ֿJ��s$���笿���V�f����s����O#�y�R�g�Yֹ��=w���*?����iO��m��4�V?�*?&.�RT�i����*:��U�f�j�$�U��!Š���O������b`�䗐�%Ҳ?ڬ��yBi�`>9������V[�e�2Z,��K��_�kN��s�t\V�=iU��*���G��#�n4Y�yM��I�9Iv�.I��[���:�_��?��6/�^�i�=��2yf@�xz�z��d^�{D�T�J��V]���$[J�H.;FEԩ�:U�uD}R�'ɷo%I��K���|���b��~�3[�-ѭG�Y���Sd{�R�m��ǡ��[�lU�'P�ps�:�j�ѿ�A�G���a)3;KYge%�#r�D����:�>��m�|�몕SC���fe�ChÒ_Xl��>�x��M��Ӫ��A����>���d�y�qꀑ=��jeehu�	��yە�/T�n�TP��*�8;;�UG�j�$���$YFE�q��j�:��)���m}G��{D��bh�ph[v���64� �
��4��V�f�`E?O�2�,u��:@�:��3"/�rܶ����~:���]J
��ZX�64C!y�����[�ɭ��Vsr��՜�jNn5'���[�[�7b/�m3��[;D���e#�c;C\�����&��� ?�V�V���x�\�7VU��V�t��e>"�Yr���$�K��HGk\ͪ�4��:#�)ӱ�BD؏�l�
l�6�:�ZS�2Z�1ᝎ�d���ȅ��Ǎd���f�"���0D�cXm�d�}(V�E�>T �H�u�k�cY}-N��L�`p�#���y�
Xx%_fF&�_�01�])TH�{�H3��k���j����'7mZG�J�d��X��������I���6�`�D䞡њr�+�<��عݛY�iY©��Zwh����cuY%,�W?}����U��U�Y�c��!�����6�?�};�k�����:F�R���Z�kݪ��{�"?�I��>�}��o�qW��x6���c[UCd�Z0�8�gy�1I�x�0��J���;�!�ĉ[a���W�_�e²EE����)������:�qVj�H���;J���հ�q&����3�y|��ɪ��b����}�|AOzJ�]�kS�s<
�C|�HV�dy|���9o��V����b=���ɟZ���$�Rof�+����X^�ٳ��}��9>)�v�
��#Y%Idn����ù��^d�5oݟW��I�I>�*�֑ʽB����pQ��c��-���~�YK�R�.
��O3[��\����g�=�{`[�b{r�F.�j}R�^^�R�Vӹ�
��܋��BX;2EKf�,Հɒe������Gn�7�Q)g��NZm�kՎ�*�V�I^)f;U%R�`U�PA&V�����hҲ�E!:�{��EF���Ǟ�p�
�:PȆ:��l����$.'���[�ɭ��Vs�9�՜�jNnu\r�ac���)r��_�Y&�]w��+�rn�
�Kcr��KO�d��fl�ח���,��pc�$}�u]�O�c_�TC/R���^�R�ȑ�wq�a���;$��SM����-��U�����y�c�yj�,[���2�|�>�W�\�^f�ѥ�^��t=Z���T�VR�?]�\���,�3�����mQj����E֜�1���jg�̹^�3+��x�2�.I��k�?�O)�&�����O^)��z#�'���#�qQ��[��w�r�+'Y�oU�,�6dN�Y��E�'�VW��N�'��zG�'�2���o�5�Ь�����3"���6�b�;#\g�
\[H��ԲȕS�wǶJ?���$�����"��[W���jrVЈG��e~]K`�s�<f���+��c�d�N#_ci]��}|�V�)��\�<e)ǵJ�bc�۬�~F�i�R�V喊9r�7E^����F� ����T_�?�;1M#]��w��}�ZG�T.�v�����ٶ粔=���/���j]i%�Un�x�}~R�j��u�	&H�/�}���.T�f^]��T��C�H����H�T.�ӑ�}�/�jw:r�U�N�=&�ǰ����G�T,�Ps�m��$��u��>9��w����˼��S	C+�̔
���rQ��A�7[Ƶ�(�t��R�4����K�ޮ‹�G)U��ds�6?0Is~�9n�q)Z�a��=�D��W7Ec���rt�jO-�\y�Qkbaܻ%=�C��\���۪�*�B�.��n���Z��E���̤�����|:��{�=V�n[&��H�"WN�]��kU��P�%����"��ɦ�]ա�#��S]j=+����m_�Gd�B5o]nQӺ�5V�n[&��J�"�2o�o;z2��uz\C)5ɓ�O����O6��v'�pQ]Ԏ2���.N*U���4�[c�ζe����+��t�\��O�r`��
"�Z�l�R��6r��n+��?5�ɭ��Vsr�9���jNn5'���[�ܪ�����$p�Ǡ3_su�J���aZ
}k{�w+ׄ��������cp�gÑ��8xI����{ׄ�脉U��s�<"�Q֧��^aL��X��'W��Gɧi�Ne��Fr{$�r���H�7��ucYտ|A�JI7Z�$���IN�r����=��-Z��3�2�o�nL��n�!�����i�,��Q�絆���1��
j�٭v�%���֭����XV_�`�,��R(%I@�&9iɣBP,�ȶ���i��ۺ�V�2�G�*�w7`�!�Ǭ��I#O��Ж�A�ֹy��F�AM���j���q���W�nWK�j{)b��hC�A*(e�|&�F���%so�Y~!9y�c!)s]������C���z�-9��ܖy"u���;�{N3����s6ۨ��c��)OC��mK�&w�B��K��-3'd~}a&��dN޽�M[�̩YX���C>�l;j��I����U#��۪�ƄR$�N��ۂ.����nJ�qR]��r�ߛ�%��L�R#3���R�:��{xY���H)���z]?1��t���}�F���j��8(�G�D���3l�$��z��˵��iU�F:l�*(<��\�&9i�0�C_��%{�����#�7��i<���Z,�V��u��z!�șH5�j�N�5o����~;5oo�c�Z�\X`�+	�.7�]�`oT�?8�)1"#�:P�xԈ�ޛ�%��Z���#$Td����u�~��,9�B����@�pZ��ɝ-#=����J��\yW<���}^�D.E�}P��^����^��x�⊵���/*K�hهwӣ�i��T��\�]�V�…*Y��{�]��ߵ\�"<��$��,�{�uv�]���x|��P
�P����b.�c�~0bG�R��.�FV��\���;&��M��՜�jn5'���[�ɭ��Vsr��՜�jx/����{ɜ~]�=��(���ň�3�dj
V|�2���N�,����>�Bj�ϓ��������Q{e��+h���]��Z�������,tHf�b�gY�>%��n>�B^��`�Į��=O���|��GFK/'j�$9�E���?�)1E�:�Ck��N(^O�l���G��_�,/��j�>�r�D[�d��؟,��'Y�����H�E�;���&jM?�D#փx��:�~h�?��΍C���ਆ��*u�Ry5�h������/�F?�i��{��;\��2Z�ϓ,wh�i��f_�"��o'I��dti�ߓG��wH��¸�[$Y�1[�g����>@� I��U�V#�ͺ}D�^�0Z$O�&_��|�8��â���o���v����!��U$0�Jt2��C��<�]�Ҽx�m�ڤ(ӣ�&�o��Oz��O��x�"O����J�i��\��0�:�U9���Mp�h�)Β�x`�����f�]e)Y����B�$_�"9��7��v�hJ޵c�|:����T�`��?hn?N6�����_R9Pf�7��h�lk�#K�TJ���_b����V�ԖK��\t���/p@���j�r�C��VOp��ٯ��A��E//Q�4wo���M�oƐ�&{_I6/��\I��?�8�#l��\�Q6BS��9C��X�i�gK5p=ɪ�Z_���!�
���j5b�"��wuy�O۬��5���_�}^8„�ܽWl�������f��y��F~�zF�(���ca��8H)�|����Q)˱ʤU�wdZH�}"�I��ZLΥ�]%�E=f�
�UH�Q�T	ч�Y�<�!��܈Ԋ�z�������bBw>^�K��>���y��t^'�:���.��d23m7U�–�^ۺ0�K�m�+E)!����Q�IX�ڟo��4y�Z���,Ůiok�`6��Y>�����N����E���D3�[�^xR�L���_�����8��'^e̝}���+o����}<˱��U�ꤘӝ�I�+M&4+r���D%�֋6M/�f�Q���$�p����.��j��Kv+�'��gf�/"#�Q;�ט���U���{K��R��;�\�X�>E�>h+�ȩ�lV�r�<�d?��{[[��R!�I�1�D��TU#�����*��Y��R�s�6'���n�7ݕ/`R
��y��g6~p���[�ɭ��Vsr��՜�jNn5'���[]�_K����Bd%$�+���}x{,���c�l��D�������2ׄSd��>0�I�ըG�
��8lt��X�X�٦��}�#���K�O~JNj�l�Ur�lg�z��=>�Ň�~��%�ؚ]��?�f�hJђ�}���<AX���G#=g���{���0y,�Y��]�c�r�u��턀o��.,�l~M�yn���>2�y�����ѧ�E�	�, ���`���L�����'��>���������0��5ZZ8��6j|�,V��������Kw�A���w��e�L�ſ�9e���Q3W����!�iͣk�"���U�^�|�ٖ�M�hI����fk�	s[�zA�>s��}�r��
�:&R��	o���X3��s�+O�o#��z�?��{��⭲Y�_���b���A�O�o���M��6�>���9/����G�<�.��9�V��h�'9���ɓ0٦��9�$R�)JT�	��*x}�����>��Jc��Z&�V��>��c�"6��;w�b�G����y������0^NU�6���'����?��h\'��"9ﱞ���t�g�SJ��Y��9�[g�]����e{�n��L�U����lV�B�#�BA~+�y+�x���]L�+��c���3�����<�ǿi�����<��a���?�5����F�P:�p��ß RD�O�f��O?

�|`O�s
Pu#o���|2F-����LU^W��H��C�,@Z��5���O�؛����3���8�G�ԣK����W/���;�/Y��_k)�y�F�~�mV��~�p���[b�k�����}�Kr��R�y��y(���'�E�-R��6༮��|��ݡ��K��"9�����ό���;���+��c��6-����Oޕ��ָ�Ց���?���z^�[_�����5��T�O����w6ai]��W�c{X�F��0��S/8����-Ra ��r�άg�����T���G�?6'v/�V��R�o^���D��LK�?����5T���L��į�0�*��#aǟ��?�TXQE�.�qw8�y�e~��=�g�L�����ܣ�s���o�����
�����{fg�� ��N��8�{_*VjE���SU��T��^�!~�C�n&G�R��Dpq�
|�=>��?�΅T�󪸮jX��M(5J�ʹ6�
��� (�[��N����\������aF�T'�ˁ`fй��VC�
�����[>�|��:�r#��R�%�lgl�C�V&&�n�&FaEos|T��w�w�gxr�r�㋲����!aɤ8��?�l.n⇒������IEND�B`�jui/img/alpha.png000064400000000666152177723720007727 0ustar00�PNG


IHDR
d�i}IDATx��r1B����O��0����I�V7C
�.^.��RI��=�zO�Vn�X��I{Fχ"5$��i�TV�v��叴6�I��s�O��PeL���z$ws"z&Ht�:�3i���]"l"d�t��B��u�S�3Dd��z�$:>W�*�Abevr�e�om�<\NGqX%?�u1y��[�a36N>#�IE�ؿ�Һ�Rn�{^��e��9��Xo9I�눯r�9��u�%џ>��~b���$4$R��Un}���D	X�1_���͟�*�.�u���T��;�M��'�P:JU����.v��r�{���E��T*�K~��G[G�2��۔ˏ�ߺ��P�
�O�՗�D2�曩���IEND�B`�jui/img/hue.png000064400000000255152177723720007415 0ustar00�PNG


IHDRd�N�7tIDATW��
AF��!����}���ZU04-&\�����W/�U�BRg����-�?Vpj�z��H�Hn�zB�0��
Ssԋ;�'�&0�	`n��<�HEJ��L}y���9�bs#IEND�B`�jui/img/glyphicons-halflings.png000064400000030470152177723720012762 0ustar00�PNG


IHDR����0�IDATx�	l\׹�O��DI���DqF\�3"g˥��ɱi-)��ME���R��,�b1��cXNd'HTO��g
�yz���^�D�(��Uy�$l�A�Ul��}=�\~��ͽ�;�Մts�39C�Ϝ9�{��_�s������I^���G��9	�Ia@��3X��g�U�KϪgb
q�n�&yQ��l����c��T_���AGr�{��m%�2R��@�W�C�,gh�J����[t=l�����LA7����@V�jڞ:��l��3��U��~NJa@�丑�Z��x����U���[IN���IK}�0�IV�TE����c{�]���c:�Cx�@u3�?R�lj��Q� a=x kУ�a��Q!BY��**�;�bj���U�Lw�;uȦ������W��уnh[0i��+��)6z4�OrB�P��+��hZh�g� -=��C3dS��Yh}Y�T���)P����N��Z/�C�C���Ǻ�
X�����z�)��<뺾>P�B�8��F�;����׎�8yz�*����- ��=�z�K��v&���v�MD��bH<+A�I��{σ���gP��7�[tr�Js��'�Uan���FooU�|�!�CJ��P��@������	�Ǻ��I4*�¢��*'o�Z����]�Rz��X���S{Ѭh�S{�o�c��EhE�����=��[�"/��B`��YȊ(�{�����{�f�x�ys��O��V�rتP�eV�s��=��2*�k�6_�л�W��-��ȚR�H���7��S��	q�'N��B�0A����l��^�]�w�̡Yeg�=���T\ͬ�y��U��펡�q�L���Q�}$ڪ����h���N,{���^w�(|���'��P����뉥��>��Σ�b�Z�g��Q�%-�L�����?��;�b��Rc_��~I����֟��ώA4\��?��U�N,�"��Y�ި��Zu�K,�*�a�ڀ�k�������-/�7��y*�Ȝ�H
�;1�'f�����I�x����A*�Jݸ���l��Ǽ��Ue!�Ѝ+�$oTb�64�O�����x���-����#&��k��^��/�`�z��¿ߞ�.��W����]���/4#P���_�`�¢Y��W�5�5!��`�ddGVQe2c����#/^z�x��s
�����=���x�B�J�Q�z��kՎs��dv��F_��~��O�|�Ǻ�
���1�P2]OX��4�"n��#��A���S�*KAJ{��PR9'�3sC7��F�֦��5*�f���S\W!p7�S�[�vuQ�������尼J��W����|�

ka���~��F_�H펫u���O~ك����^�`�˓BO`R�9��W��9·-T��q���Y��d��qq�S�=���B|�F�Y�G4+~��ww�T���I������e��I��}�ș�q�C�V�o���HKGn=�U�b���Z��s /.*
�bN�M���O�[�YiqV�Yzn�U��('fG�v\:����-�eE?�N�]l�d��n^���.�F���N�h=�o�M�7}�[�Bd����Q��;���\ն�q��k�#q��[��N�u�A��_o����'V�A(�>:272��(����*��9W���':�=������7�~PD(G����ٱ�k�c|WA���@un�R~`���F_/�"E4��q	��U�rc��d�wQ��^�e���:LM��V���45Mu��֪�F��;~�Y�U��A�Vч�}�柯ZA���s;ٷ՞��,��	h���r4u���s�d����c}Km����2-��xH�� �C�p��������p8�UgU����p8�UgU����p8�U����J$�c�!d@��b$V89)/b2��>iO	��
P4�תN��ӏK1^��\WG���+�壾�Iy�H����N=u`R����k�-&����H�B����fVi|��S�j�jo5&9���҇g�g��킇j�b_K}������>+ҍ�����Q��`D�k��]�B����QE�z�ݐS`��\z��@�
��h|]pQ*G��FEȬ�V��:2�!�0xz������
�~����c�7�clU�X��2t(x�Og�����UK����v(������U��{�����І�T�ꟃ=���w��rze�Ɛ>i�On�F��4��L?�[5dT2��U
��Q��XEh�������=6*�@�4���A}���1�'���%�A��A�>!}�wJ��^��M����	����ͦV�Z E�A^_��y���4,^#�������m8w ��w#���3Է-�&�.��I�8|��z+�*UcV�U�˾1g�����qA�;~�>g��� ��Y�����Ъ��|}H/�3��7��c�C$�<�~�[D�G��6��]�Ϸ?	^ԝ��t-y=%�g��x�׳�]]C�2v!�n�tJ�8�MnМ��1�$������~.�ç�ӝ���!�"�V%�Z�5Йl99�T=.g5��}��
��2�f���A��0����mԷ�-�������X�7<�<'�	꓇6-��x��*��Q��0%(�x�Z��zX�xH��
S�Ё�r�����=���B�O����
�tY���e�U!���я��[H��ꑭ�9��P�Z4b# �������#�P/��zH@?�_=�껕j��=b	;uw�Y�><�o�6��J���^��b�׌{V���&��6�׃���Ͱ>������1��b���Ws��"(C���>�B�V����>�Y����Y�c?�P!�?O�X����>x�����^R�1zT�@ҚgX�����c��S�>ȕ��ڑG�!\�ƣ�ʭ*�F�8r~�G��gzF��$�kS���Y}dGTYe��%����V�#��qIj3@Mp77ڞcZ��*��[nU���{t��`R/�{/nT�����F��)9��T�T��	�OM��Mrӵ�M��|����f�!P����p�-i���*$����1z��1z��}`Oş��-Т�ǧn�޷ލ�{
!}�_����W8����-0Ur˭j��*Nj���!��5M��8V6�L�)H񹯁��S=Ҵ�@�I��˷ϭ������)񔩾Σ�'�Q'������}��o,��N�ti�?{�#�������DԚ�#M~�	�*X��Y�>�y���_q�� \�����h��{ê�A����_��)��*�R){9M���Zߠ�͜����; ����ez�Ï8���U�rV{nR��ώų�sL��}W��}���[u���
��9^?v��w\2Ϲ�a4��{����,+"�������GU4��
D�h&#����Z>g�O@�ϛ� �*G׾>�J_������v}���1-߲���A�|a	�~�Far���I��K��]��p8�UgU����p8�UgU����p8�UgU����p8�J �S�Q_Q�����Zi�
i1�N`�m������[@؜=�����x�c�x����`Ѱ2[^�j}�x��>.���r�!�"�����컔F��o;v�#C��kh9p҃��nəl����iŊ,
+8*i}�1�'���G������ѓ��9S���ܬy(A[��n�U1�$Pg�g�
��W�`ӍM�Ï؄fXw��A�o{�}��� ��C]����|<v�M#��
��'��(h�=ј�>��򺰊9���Ga�K�3r)��74k��n�U�
��`ND^��&B�q�H懣��K '�ff]�Yf�~I�_:������.6kFc����)߂�x��>�(6�Ѱ�!�ʮ���=+B��E����R�Iϛ��VE�a�g�G/��]%�a��<>�K}&"����}��L" �:�B�(V�[�qw
�u��w�������A�!��Uъ���Yၟt,�0�gѪc�R�Iϛ��V%u�e���M&TSӳc�cS���ߡ��1���t�����
��Oi	Y��ň`��U�S5 ~�F&��ka��P�`3�D����{r�[ʨx��l�Y2vf�c�U�j���chD}�wl�'zqd�;q��?��ŭ��Z�Ѓ��Up���U��!?�=���Po�ڧj�W~��O���d@V�e�jO*�^$bh�-/0�ӿgB
��ǁZ_F�F���"�տ}T��j��c{������2)d!����D�_4@��l�O%�wʃm'�	�U��a8�V&�h��Y�`��>��2��X{{����l�Ge����|^�Y�.h�C���-/DekU������U��~�]�yF�d�;4e�.��-���>���_����}'8VjU9�Z~S̼%l����4�NJ��k�,�&�ۘ��Yh}+
���^�Yɨ�Yy��Ъ~N~�h�X��1y�; �J����fa���
;.y����
$q���]?�K��)���J�ڱ��;����ܭ�5��*�*Sk��t�EĈ�w�m�K�DX��jjT2�ƨ�U��*HpC����G0D�3
��+L�0q���'���_x����C���耒�ƒ̗���B��� ��0)Q���Q	���Wت>�U��8}ؓF$���Ԩ��$�ܪ:=��:$�f��0L>S���J�����IGx@�}h��v9��V�����i�e4RҦ�R2��V�	*��	�m}X�Z�Y�̪Ɛ�2�27��T$����[+R���V�dm��ۏFe�%�Q�¤=iӃ���	�Jo����R�b�z�AШ�G'�'w���pVu8�U�����pVu8�U����p8�:gU��YU6Q�*s�t8B���D�?N�2��tQ}M���*�Uy]^$=�p7�q)VD��T�Q�U�6w�Q�^9��JtCN}u����J�UK�C��I�Iǫt�c�T��*a�9�d�䰁�"&X��v;jP/����A��V�e�����F��B��I�"8��i�J�F|�W�Օ�7bDM�2;64?�栈GNfC��T�B�,sŤJ�QZ�=H׉���*�ȣy�,B���#�7*�tA�l�m빡���N�U��"�
 �jO���}�S{�QV��+@��Š��c[兆-=�b�/B
�Y�e �#�U(�ٴ�b���	��\K`+fMjD`�����,����z�|Eij�ghT�w�ͺ�g�Dr2�k�+W��pzQ�a'���x������)�|i3��\���UNbVv�&����p�	���ńb(Ed�&V%�%�e�Lfl[0�3��.��l�LC����^�iO:���B��*=���7ޮ�-�T�ώSr�q����\ ����o�}S�)�����mT�AzLX�,,v�3m"�@?#��N����S^�M�jO*��
�JZ㣬� %H�bx��J]�3�F����N�iOC���>c%(=�0�`��W]�t9
��}Uh�A����cOA�դd�P����:��>�TNiG��������˙汞�
j�ߍ�Px@��̄��|�"��Q��J����l5�J]���z�V:��=���1��Q��/��ÐG��3��[�>^5�)6�l��Մ>�a��A�ͳ�wA/��SӐ�;��UKн�ܺ��s�`'� ifUҚ�v��3V�rA2u�j�5�́�H=_+�r��/��l3V��_��Q��{Q���b�ک{N�8�~]Y���E9��;<h�P�����o��2�Ĺ�Т�����S{��dT]��6\z;'�l귽�UIkzԥ�Z=c%�����*4�ݪ��3B"�|�l��F*D�_��*�%�W\Z�x�¨H�ĬĞ
4�k'��A�K��򤈣�����[��I���i��x��4Ȋ�z�G���DL�(啎�=�ĸ73����(HX� jw��p���Vž�'�z�V6Z��%ퟵ1k%��
P����Q���-���V�24��I5	���y�W�+����'	�S	)h���Tc@�Az�g
���|�Hmח֪~ڃ�%�:��QVz�8��"��V��j4�D�Z�j�^oV֨5�n�
}<c?�8��������e����6��ɨ����l�f!�ap�8�Ïz���zHc���z��TeTzf��!��Q�z��2��A+du�J��Ĩ�gke��LPD��-?��:!B&q������spB8p홇��0tjzd��:pmǥ�i�e�i8������U�iԪ�=qG� y��#�n��y�2u.��КE*�$
���h��u���]e��QI��o?^�cr����f��o�탶Zi�~�KaP�{�Rz �Gk��ެп,yw�*뉌¸��S�-�FzJ/^,�s�P~Ɵ@��:�f������'+8�:�X�Z����.-w8�U�����pVu8�U�����pVu8�U�����j��G���z���>IU��u�a��X����Y�9���[>���OO�Y�4�=�R��ׯ>�W��zE6Y�Z �����}v�I��3�x���[��'���^�dEz��
�ש|��ե��p�5��vj�{������Y�~j��?!��m��5f�A�ϊ��J_��7�g��d�%�K���B�y���-�|Yh[b�&��)���%=a�G����|m�мM���8��f��1z�׋��鹉���SO�/赔{���mBq'�|��PN���F/]7���m�8e��5�3��u�è*��!J�̧�d��0B�'m�zf���V��Q�Y���/��ܱY�͵�^��9��'L�}�ڵw��f��jV>��{�"���N�h�7��Tp�GdS~ZP��z��F����=VgC�{֨��s�����
�z�S�:="g6Bi�����2yk�*���)�
b�
G���,.�2�jY0r��~щ��Q�I#]X���%=a�/-��)1z���C�Aks�<Hȼ;�C6偯�]���S��p�бC���[�P�q�؅,da�>�ƖOz!�$�Z�팑���od�N�_�b� ���WJ����_I
�iiJ�Y\�[m�:'f�x�V��T��m$a}�
��^�NM/��n2}N��>�(�~v��	�C�z����v����2�%���O��c|��{�^U����`� I}`�F�������van
�
N{��MD΅��~
=�/��3=#t�..t��v����A��z�@`�̯�����^�&������}U�����HFe��F�@o+���b�P~}��.��Ȋ�O�P�=.�#+>/i��١y��2�O.5�^��CX��U������c�����ج�'�ܱ���9
�_)�
H����%��U�|z������-����9��'L�%?̿�P�[%NO��dT^O�s�ӄ��H�]��$�m�|�̓_?(��s��Q5p2�{c�K�����.���; 0*��F,9h!�$���v�7h��c_zLԍ9����i�{!��..a�K��m�'�طxdү�"+Br�B�rz����Kz�L���׳�U��z�[Jɸ|��KFO���;�Lp��$��v���[�g>QI��_գ�G���������VE`E�O�r�rʨ� �W�Z��..b�KL�q[���ob��|�`|����8���rzW��-��W]_��8
���|�b�{,��AΠ>�z:����ڋ����ְ�*���:�Rɨ3����"ֻĄ��!�H],��t�%9�}|N����s�Qi�{�ϗ_=ш���Q��{b��5\��	�]\f�x5��Q��?Qn�_�}N���O�]��O�9��ؤH�%�6�������]Y�p8�UgU����p8�:gU����p8�:gU����p8���$I�p8�XY���ڕ��5���?�+�E	��l8> �<+�8��BX0G	,~nM���$��CL��V����\���|�f
䌜IA���|���ʜ�Λ�4�c�����y��O3�2Z�,�BxH��?�z x�dr`m���6�B�ͬ$蹰#�l̻v]B���:QC��O^������:�*�z���,�ܬ+���'��G �+��?����#�ou��{v\*�5o�M7<��˚ئ;��n�)�!E��H����(YK��پ�i	h��� �Is�~��;�]+E�_���a�V�������V4Ab�SSWl�
�1w%j�|{=�X�Y)��ʀ-s�����6����_y��:��ڔ\(.&�LM?x$�,�'t��v��w��~�?q�D�<b��j:MH���:N����%��+A��0�̪P�D�A�c<({�g빭��d�‡~҃���v�_�'N��&�/_� ���"(۽��@ʨ2�</��E�R.n�fQ(nr��A~���=�u.�E�=����c;��@n�4��Gy�Z��'y5NS�����֟Ě;��}���#��Q��}�{�Em̦I l�HDP�c��,n��(㫆̭�Z���+��}�6�~G�K0ڔ~5����{��>���a�?p��C��;�=������?=�����\\(a�j*1��Hت|zn�}n瞝�j�=��qy����0�nVD#�b`��=8{9u���;�|��'0hlOelP�1��]p`��:������g6.I-$��
����S�Q�B�s� �f��9��S
�=�0��|ԃ0��qX�|�rRB$׹w�̨�DP4+��H~1�E.��/�V��"��?�;�b
p��r\�������@��=<������ƿ:��#sа�o<�(}����O{���N�S���P�v�6�_�
\��z(�qo���a��/�-��:}p���b����H�nU2*�6�f-5vk�9�kjt`ă�^��	�Q���߉>f�s�E,fV���[^[���v)�\\-�{�xv�U�?�\�Q�h'M��k�[��a:CBqkQD��9/���T��˃j�T���+��AVP��;�1ˊF�����Cbǥ� ��cn�l�8ƫG\Wƛ�	���߭�7jǫmX�f��V
���f��"�rFEl�
���K��8"�m5��ZnB��ɡL��F�}���>hQ|�!���L�
B�/^����ú%�"�˃C�iH>E(+��/����P�Uk��};4ˣY�>�4���G��|���%z�*�g��=O�&�"�QU���<���iw���G����OOV�,Ȋ��!����s�J�mp�!��Qͭ��EQ�1[Q0倾��_��X��
-"�A��+a�:&��]I���Z?��-��ym��͡���^Y�c�D��︔yU�(�v���{��p�\�w�V&Ӫ�x����l;#ΈP�qf[_5��n}IEC�����;�s�Kq��zT�_��7"��c����G�� �h�䝅�����STر��r�˒�r��Kb�N��o���鼭Ue�;戇zX��`B�^Y�'|b��ki�֗��8��q��*�he4��44w�n��}\��Q�X�e�#/;=\8'nW�{Ń]Ƕ��^S��W=(��
�4j3��W;D4ЃgWJl���D4��*Y�n��!��ˍ^!Z�q5X�0��E�O�����v��ӁLJ ������U;N�����'����ZZ��
�I�n�4�z�2w��R}����j0N�]���
tzYȃC��Ц_�kOO���fT5E�u�̍J���Y���,.V(/#cp:h�Ox>r�9�?͉b�����ó�\Yj���J����b�M�X���	| u#�5��F?�k�H�%}�7$,ۿG�N<�CG�y��;0��iF�����7��p��U������p8�U������p8�U������p8�UxU��Q8�C2;a�<gC�mQ��Xuޣ��a$�"d2�v���r��S��RV^U�E�1M�|�s�-��R�Mr���O��D8x���4�!4;a�eSx��&��T��d�I4en8I��,J��g�F*�u�uݮ�x
���&�r�Kf9�kR�~����:����Cyx��C��E���]^������+#O�����3/X�� ��۹�z��xH��z6wl9�j��Գ
��c��H>�[�F�A�ų������l�l,�W?��^^n|鱏�kyU�[�[>�I�Im����������T>�d
��3��'dS���f��.�#��Н�帄�Rp��}��������h8�V-��j�u6+XV��L�]������2��N��ah>�U��YHç��M�Edo=I������V�	=��ƅÏBO��)���B������Y�dk~��T���6{Í�i 27�y�dЖ���9ϼ����'v�UM�d�������3��<4p������������zM_5
ˑ
]�
���Jςu b��L��`�����Fo���'�R���r�_٦���G�I�P���[$}��{�"9#!|֕�f�G���#sК���Y�NP}�����O}���!m�Ov���Y''k�HL���HM7	�^�ޭ�֯f�n<q��S'�K���?}�O���[����WF���6!��L@fj�7Ӧ�mѠ�75
:��#����n�G��-��[_�h؞��w̩�h;���{���� �y�ߊ~K����"��2���k@�ʵ��&n@	��Iު��PE�+�x~T�iT8�G��h�Q��U��̳{0�?���U!�����]"��:K���w�ދ4�{���Z@�?Z�>���M4�������[���/=��Y$�_��9�@+������C-�Y%7��$N�#0��x}ت:}�}>z����S���șgzFDb�VE 1}�ʞ>xkS&�TF��Q�9�$��s�Q�#;��l
ky�n��R���l�РO�d@�8GVB��+��=_��4���{>���ߗc�o%lPk�q���A�R�)�@x�B��J�;РSˣ#/�.E��ܨo����߾�Nl��j�������m���{��yt��'��։�B��>� ��	G�՞�z4�}�'t�Q�.��w~�;J�t�Jpۓ�<1��O�B�� �3��ԗ������_DY5��n�akUy�&�Guw����k�Xɧ}˝�6��'�hP�噡y���<�Gem�_����x��}@Y�S�p<�e�Y���ݶ��[)�}�/�Jt�i���ه�l�=\����Ʌ�6��yL.Ɠ ������V��YF?�"�}�[�3��j�0�70*d�Q�ӱt�*	�~T�߀�==_y�صo�>�H�xh�K�`�$S�c~nE݋��#�C�&V��i�B�5����	�q�@B�^K��;^|Z�Y:�'vn�C����Ĥ|��&J?����ϼ	��FU������O��S{O�8~}#�+��2����W"�
%��(19Ͼ�JM��zz��.�+t����[iuĞ
�_���ǝ.3�`�^�����m�D<�������
��x^��'�z��:pr�%�U�O892�t>2w�����E2�
���}�BV�V��g�"�h���w�x����W�X�T��P���a����S���*=�4�����z9S��[������N��A[vs9Ϥ'��^*���+%c=1�Ȩ�D���֨����4�9� #v�%�L�Sh�e�ߡ�,4@+�@Ğ�
$�����;t���0Eh՝�ޮ�_/}N�'���q@Y�³m�w��d`O�$��l��z�aÛ*�N��+�v�������v��GH��B�I�ֻ��\m�s��P��®��;r\�}�w:�֨�Z�תE�뱽��~�å������&\�O�vC��f���!�qa�$L�E'fq01;!���(zYT7^���.z��MK�b(Z�����l�tD��36Wy��w\��A���맦5Fe֪�V%�3��"�a!Z�/��1hUj'$� �F�^皠��'f[��Ә)~γ�h����=���T���Y�%S�~��,�É��6��?�/���F�#�IEND�B`�jui/img/bg-overlay.png000064400000000211152177723720010673 0ustar00�PNG


IHDR((���PIDATx�ӧ�@�P��wKI�'��Z�zvې�HW�+��tA� ]�.H���tA�"]��HW�+ʍϜ�ό��{���&��IEND�B`�jui/img/ajax-loader.gif000064400000023315152177723720011006 0ustar00GIF89aBB����nZ����ڜ�ݕ�ߥ���bC����X����T1|���x�䯑�h��ۺ������kl�ֹ���肯��શ�냼3��爳�:��ᰁ�+�������������=��9�ݠ�����ޠr�خ������ޣ��M���������䳌�T�������ܓ�⺹�����5��A�ߥ����ݘ�ޞ����ݎ�Z��@��ɼ���ߢ�^=�����D���Z8����ᤖ�s���_��������������R.��������ٚ��J���ޜ��᭲��������tX����^������i������������iJ������a������W5��Gg�����M�ֆ�����B�ź���房H����������҂����������E��������ʾ�����J�������뽿������������������ؙ�����ڛ�����~�����������۝�����fG���ߩ�����P��ͺ����ߤ��א��F�h�mPw�ڋ�<e���G��������o������Q��7�ܟ�ܞ���ޡ�ݚ�ޛ����ݟ����[:�ܟ��c��騺���ߧ����`?�������������ޚ������۠�ޤ�P,�ܜx������B�ޛ������:�ݟ�ޝ�ڗ���!�NETSCAPE2.0!�XMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:72DD966362FBE311BD82CD0B15024A0A" xmpMM:DocumentID="xmp.did:1F3C7527FB6311E38EB4DD59D34DB563" xmpMM:InstanceID="xmp.iid:1F3C7526FB6311E38EB4DD59D34DB563" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:74DD966362FBE311BD82CD0B15024A0A" stRef:documentID="xmp.did:72DD966362FBE311BD82CD0B15024A0A"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

	!�	2�,BB��	(�
�v�J93��Ç#B��
�芸�B��eJ�ɓ�$²%Kb���R$"8ՍA�S"#{@.�p���14m��I$=��eQ�P�,c��XS$Ӧٲ9�*�U�X�H�7�kȯa�j�E��'�^L{�ۥ8�fӆf�@P�
�+���y�%
��M�q�.u�*�j�a�R	��$�4^�%���N)S����͛�o&�HT#-ɡ$ȓ�}[6K{���ΌF7�ݾY0���#	��O�|�y�{���83���s/@߰�P��O��y��$M��%�{�e��ї�;���_~������7$c`v`u	ʷ]�d�NH!�%�!l��D{r��v�5h�)�( *���/��@���u
��`0�ܠ̔?Ya�.��Pk
��(�WD�#���SR	��W��al��/����o��!�#�x�f����@rC�$�曐H��b*��C��	h��V�,��(^	�!�I;���X� ̥�
��
�C�	I���/wjGNb	3� �*(�Ica�'k����HD�k��i�A��		��H|821i��JK��|��s,r'tyҷd2F���k��+�$�:4̐�u�R��C��ⰾ������@���'�!"���1P�?��K҇$��E�7�����\ܓ@�%�r�}�!t˗�	srj�䀓
�s�0���s��	��@-t&�\r��W2*OS�I"9�	+	H�� ��@�}h-�u@p ʬ����'�@��MN~�3O�S>��w��u��w�BB�UOr�v�#�O�n.�uGn��W~1�"�TW48x�;�x۽�>����z��}�R�PK������I�-���C�������g ��`r��Է���?�0�`B������ߓ�����Y$�i���8c'9�.��Jd� 0Z���L��@��D	J
Z�}�6 P�M���KX�BD�^��]��pۘ@��81��h�*�p @��XAf��؃T�'>�Q��	�XŝD�5����E7��H$ET^��2����"�����q���ȿ#��b��&Hp�>��>���H*�=�
:A�R&r�Bla�1�G"qKD�fp�J�щ�8����A�R8�E)M�9��ф+�8���d3��-�/�ᓿ�G0-a�a"�����@���	�s����)MK��!��f��	^����f� �΁����<�,�v�R�x&�J<B����=��M/�s �9'��H��k(h4m�P��#8�<�"jO|�Ң)7j���d�ȩA5����0�P�V*QK�"�hCڰQ�naE�r�ӑj�I�9~!T�F��DD<1��>��؊ *�AUvҒbu�)�1�_�U�,�ET>Df=+T!�	��@�H,UEJ�P�!�|`׻u�-$������笩`i@�!��!0X�.��Ć����@
^��`r����JϑY;"�����*ا������?&�Zֶ��u�A͈��޵�}d`G{\X����?��4׹���U-���ڕ���2iZ��z��@�?��򖷹ύ�N�{[�F��ͮF����~���C	��_�6��]/u'k�SL·�e�Y�`�~@>�����
x��l����=�7���n����*^��/��ג��H�YN7��;�q�'� ��.~ql5�Q��3u�u\b)�x3��[��2����eDr��ٸd���?�/�y�D�P1��BX�IHь6�A��C!�l�=�B4k	(�l�e�s�i��?W��%�4Dp_=��q�"2}�_��$���#<�����o
�,|�Ң��@�bS� �Ğ3"v��gL"":��5V��<6�(�D�aNI B�	!�	2�,BB��	(�
�v�J93��Ç#B�bB
<x�����B��eJ�ɓmu)ò%K5F��R$"8ՍA�S��x���r�2���chڼ��H6**zJ�"ހB�M%H�ǚ"�:͖��ԩ&h]����3��K���\gy¢�wmV�\��e��n6mh�T5�b���{���.mҭ�
q�+��P)U+C�\.uQ#D��JnLV�W�K5�65�M��Yg�`��#7Rp�ƜZ��)�m�2^9��
��pL��?=PЍ)ҧh�zt��[
��0g�ݽ_��b���zʱ�\5�g[*7�A�Xv��w�1�_���t�
�6w�{kŧ��E�݄��wa��1��!��1�͈����]9a�]+��h�g�hc� �'�{=Vf�@��&aw"�a0�Ҥ�O~H`���H�dk��&���_]��$�L�I�g6�&�=�`�C��S$��'��8#�b�))JH�#ɡ��|�p�D�L1'��<��g�њ�1Dʠ
1�b�#j��I;ɄY��El���ذs%D��y`5������C�k�1|��$�D�Ƭv�����HDGk�j��1ODtIzh�xO��w$�>$�!�n��1y����+�(�['a�E,��ߒ�C���&�'�1q8$�c�瑇Ƿ(�P82'.Js�har��,_��Ư�p�̷4ݴ�af�J�4ƾ?_��?��C4�-��+�,=��N+,H$)L-�Q<9����r�^v$���CC�g�}�+��n�í<Ma��㇯x]t����́;}��+�#�˓
��_��d��?\T���=!�����m�וTr�yĻ��w�>��h���^�YW\�z��;s���7�|�χO�?˰-�c*�R���/����r��΋�9�~8�y��z����	#LK"O���g�&�1q�@D@Z��=I����AJP �H�?Ҁ=
 p��Lr�]�C�� �����E㰀Ih��X!D�6Q�D��aiH�!�e� Aw���0�C,��`�4��3d"
������h��-hE�B�@G/t�	c��
cL�@cu��6�o܉KP�ԑ�Gl���G>�C*/�@ ��Z����C�H�F:��]l�+�G?�d$��&IX@��Ai�G� �0M��T2��|�BQ"�\C��D�>N�L�ᐠ�q:
a��uԇ#R�="S
RJF1gBS�0�5y��p���f)����x.��D':����ӝ�,�C��zv���g>��H8�s 
��@�������*��u����'/VQ|���64��<t
m'4GJ�uǞ�X�J!*Qa�"[H�F�`S�� P��w(�A]�PYj�P�"1mH16*�?���(�T��S
�3"�8�/��ՕZ"��H�(P��5^'9*��փ:�yu�)�1�_86�C�Er��K>�
K��ް
=Hd�hךSg�B
@(|��>V�B=".h��,�D�ͬf� �0n 0X�. Z�ⴴ��@
^�Ԓ��umP�!�c��0Yw��,� �@`9\���5lH	��>V�KD�7t�[�ڷ	���>\��׸lm�,��^ǒ�c<'}�k_�v��/�{��Ju�υnN���t��mp��ІDX�n�,`������1?�`��ؾ`C1|��K��ŵ�N�I�%��
�H0M��/ �`0�z����,~�-:OC�L�����?���U�o���\
�`���-�f�:��d^�Мf ������(�O�@�uf��yx�|��G�T�`��[yR�g<������;3Z�x�"-i�~�$�(��Ɍjy8qϑFqyy��4@�8�5��!G(�պ�E�Or��m���k����ˎ�$���S�z�s]��f["Y(���qDDDp��p��Ԟ�'�(�-J݄78�!!�	2�,BB��	(�
�v�J93��Ç#B�bB
<x�����B��eJ�ɓmu)ò%K5F��R$"8ՍA�S��x���r�2���chڼ��H6**zJ�"ހB�M%H�ǚ"�:͖��ԩ&h]����3��K���\gy¢�wmV�\��e��n6mh�T5�b���{���.mҭ�
q�+��P)U+C�\.uQ#D��JnLV�W�K5�65�M��Yg�`��#7Rp�ƜZ��)�m�2^9��
��pL��?=PЍ)ҧh�zt��[
��0g�ݽ_��b���zʱ�\5�g[*7�A�Xv��w�1�_���t�
�6w�{kŧ��E�݄��wa��1��!��1�͈����]9a�]+��h�g�hc� �'�{=Vf�@��&aw"�a0�Ҥ�O~H`���H�dk��&���_]��$�L�I�g6�&�=�`�C��S$��'��8#�b�))JH�#ɡ��|�p�D�L1'��<��g�њ�1Dʠ
1�b�#j��I;ɄY��El���ذs%D��y`5������C�k�1|�Ij�z`<9�~�Dt��^+���ؠ@D����7�Ԉ~G2Q�C�!���|����"֋ҽu2�QD�o�Bl�$� 쐬���IaD\�IpG��{��_p̱�u�#s�4G��'�@*߱r�g�m�1�܇$�d��}*����|��0��B��/;Go��d7-H$)@�Q<9����r�[s�u$�B 6�}�A���3h��B��4��/�C�����Q��2K��d��?�N�<�@΋�9NN~�Å�v�.�sN�?�A
袧וTr��xij�:�w�>��s�;��v
R�u�_�3�o�|C
����/��0��PK�kO�ܿ�I��>>��k^p��~"�30a�iID���p7����c�!�����y�
PB�����	
��G������I�
 ��x�G��9�-8F
�W�B��!D�-t��8��w��ϝ-��1���GL���':↙�����	d�,Z�F��E/�ȣ�����8#%�8E6ncS49� v1
"��Hɝ�Q��͈7Ґ��]O�P�E2ґ0��$)I�0��@&5	H(`k%�T�l�18�UN���Aq`KY�R�NDE�1]�qoD	~	�Sb@����LeN���t&-;��S�C�l�hf�UЁ��d�"��r.3�Hg&��ρ��H�4�-���\d
߄�V��
�@�XЁ����T�,xҁ�B��x&֑L<���(4�Ύ�T���˓t &ŧ* ��e��1ͨ:g�B�Q�V�iCԇrq�`�zl1�J�S!���t[)J�@U��t���J�b��
��t�V���$�PE2��
��q�:W��Vt�,��״B�Q�CÑ��Vժ��BC��:2�1<)���a�
�jei@�!���!:�F8v�Y�~��hbiĹz� �'�Dhbf�,ZiK�zd�0������<�0�(����l�KkXC�c�v����~����#qk^7� �P�.{��� �/��|����vS��}�r��R׽��:ӗ���->��Hz�bFh��:`���C:�aw�$>>���=8�f����"3����KUGt�wH��ʖ�Bvq��<�$����q�݊�(���x*�-L�!o���[����`1߷X8#��`�X������c�t�0gW
U4q$@�T�@�f��
(�
�������p��$9�B����!�`�PO}@{��?�F�hh�$�`���0Q�z���#��/�����@�cc�>I�<c�±�
t����$�P��J�G@!�2�,BB��	X*δ�Q�2��Ç#B�bB
<x����Y�� ?�#��ɇ���Y�r�#E���)'sJ��OV-W��0��L�57(E�K�Ӂ*�
�h�T�r:�Q�W�>5Ak*U�A]��y4��
<����f���B��[����].t�X,��]�S�����_�p=p�éR�ͮ��r��!Bt�Pr�qټ?[�98�o�q�x›w%�#�����Ԫ)w
�,Z��*#�|��޾+-Z���CA7b���y���_;g)d+��_3�ލ���2�� D<���)WMz�Ŗ�
��g�|��כ}�� ��!6b���	��Y�)au^W�2,2���Ënh�q�x�l���� vA@�ߊW6/���u�ލ���'�h���"2\!�I&�3RS㓏��FC;PY�|@
�"�F���K��ܙ�x�-��X"��W��_��(JH�#ĕy^�w�p�D��g}�<��|�j��	(�6��fz��Q&5B(v�>d�\D�Ư��Ɏ��Z���lt��@)�������+%���]�D���-DG�:-��]��
Dt�xe�x��qj��C��!����|��ro��D���ݻ_Q�ۯ,�$;�*ye&l�+Xf��w@���V���g<P2��I�dw��L�w��&KL1���r�43�ƬDN���2��#���3����C��тD�B�d�SO�)��qG�V�	�p}q}xmG&����d��9������\�mu���,K���^��?���9���k+�x�p��@�[���?�P)�{>^VN�v�#���;�>��c{��>v
K�E������!|C
�~���/#�0�aG��〄����I�þ=����*]c�_>�H ��F �~+vx_��`@0I�@r�/���t�Jp{C���@��"�#(�h����(���iP��0Zb0�0#$���Fd%(A�T�����؜X6��0���w��B�^�����#fpۘ@����x����6�p X���B#����S�3�ц����6��%�A
�E:��x��t�
�яO� %hHCV�"�HFn��_�$���M����#	|`���|@�@�9t��$%#�8�6lc���x������q���
���.CՉP3��d�>!M$3�pYIF1�gFӏ0�5s��t����(é��x����@'�������e	2�6ֳ�>�ME��i2�9PY4��P�@�
��J%�O}z��:�-��$/XH�M�>�(��9��҈N�/�H!�HS+�4'#��TC�8Dd�PA'������E`ڐ6д�[؂GO��N�� �C0!�t��\��J-�MD�C�iZ�ڮ��nE�3y�W��"��,^�ZT^D@P�Cd!�����4ЍҺu���"�P����,e�H�G��m z��@��Y�`�m�p����:E�35P����|-l%;�s��`�"4���z6��
o=��W׸��Fr+R?Jw����?j�QUv��᥁5�!	���.8/z��V��Ҍ�,	���s6�����~?��8��yӻ^�8�ҍ�)�̳�v�ޯ�?��`8�..�l`�����v�`��W���&|��gx���0O߉�%�S{p�n!�_ [�X���l�˘�4��/:��3�S��o��e,O��\����j��P�3��fW�m��fg9#Y��Em
FQ͈�6�3x���@�^(���<
�b#@�䚓,��mh�
��BP:Ȗ��4�i�v�$9�šmi,o�К��y}z�(@•��E�Zؿ(�I���^�x :pv��FK;"Y��{�Y���.Ac�-� ��x�$"�8\��Kx�jٝ�I���"���;jui/img/jquery.minicolors.png000064400000205237152177723720012337 0ustar00�PNG


IHDRf����z
fIDATx䚅���ƫf�`�f3��̜���'%b��333'�03훙]�+���z�j�V�7�[ݖ�lO���?��_�x��5�ʱ����9�m�	MTU��=�}\�������_���CRwK�#��Y���?�h�{����8�9�y��̕H�PCq�:��zk���k�0��ͬ|�r{���R��Ǹ�{��|�|��eC����qʆ�ͪ�Ju]���#�n�i�^��j��\�b��������#�,��y(��.��G">"�bH�1�kՎ�c�����_9�P��M<w��[<w���kz�s���:��s��[kMM�]hyW�sc��5s]���\�A�F��x�\�R�ib�$���X�4QLΥ�&y��{��;3(�Չ��n�\��X�|
<u��=<��:�ۆ�$�C���(����[_���ϫ#.�M��]7#�wM��&��c�s]
�\l�`�ij�z����.t�O3���-��V�1�+r�=�8��[u<��L��L�jQ��^�~Z����f쪃��q^���E������֞ǡg�Ԟx�DҀ',rm�hec*���Hvh?��vf�'٭��f�zֳ��I_�Z�
�ΰ�*a>z���m(ܙ[�8�bO�8����Y�1<k[�bٻ́,fYe�<��l���}϶f=��>*���x��\a���XO��]��טy��`��(���',t|r6�:pE0C�e0�&�ɳb�鳓e�v���u��Vהt),�&�l�(�n鈖��P�o8y/tLR]�z��۴.��;�5��|a�?\V��^~�dwp�Qi�[�"Ӱ�/>���\_��
DXa�����l��ʦ�B<
fdž
����:�,.���wF�,��0���ɓ��bJ�+���}��K��-�ث��U��`��Jt�cT�3��r��?�1�c�Ԣ_u��
:`v�I0Sm�q�Śa������F��
 ��O3�=���
�颜E�Q�ǶcV>G�6�8�sp\�u�g�{�5����8�sB^"���[rCM�p=C��V���㦄�����S��l��� -��4��ҿ��/���~�>��/ldڽ�1�u��(�4k�\b=�Բ_����䜫h�'Uz��u�i7���)f7�F�P��u��
3x�A:�&���N�13,#�c�9g�U[�1˞����İ�VE{��[�0h�9V�X`���<-ϛ�G�ĉ��s�]{H{�D�P�͋eEl8s�rB1��hN�|�*����@���+���GԺ'i�/���~�Y�_��8Jx�jԟ����Dki�{+��ӿ���{"����\�cb=�A%~Yq>�s!�7����
Cg80d��Lll�f���n��L<.g����u̇FBMшf��V��a��[�^�E�t��O��s�f�a8��9�����0~4���z�3^���/֢��
���)&�rX�#�eX��/���U�̞����a�O�?�Y�Vܥ��9��z-̿f�~w4�0W#�RU�.�u�Y�8_�Z�5�D0k����%����n�b�hv�2���OJ��w�)�9J�.0S�1☸�1���\x�i�3X����?��a�����s3,p��17��7�j�&
��"�!��m�4�;f���ߛ��R���U.�e�2�m�'�m#�CL F;i�)��˼m�T�0X�A�T��7
ƐP��u�ςY<)�}u"@&TB;є"��H��p���j����zEӎ~�q����1�L�s�{w��_�G��1�xN�1;d�(P3��l�W�).XƮ��5�%Ҵd������c:�i�O��[�}�rq�ȕ~�Q�1+���P�%+�<|�7���P'��+j�7�M-��$*�+�<��dG@�>������w}����ͼ!L�I/2�`�!a��}�����fO}�S���[�ud��;��jI���0\f�a~���������o��fff��-Y�-uU���\�b{O�H��+"#�:��j����+��*��|~��Ж\~n?Wu]���<T��
f����=i=��`��b.��l�	b:^㺆���c�9C	fc�������̆b���|�3����5�~�E���@[�\O�o�+H����[\l�m>�E�}z�+��?|���8A��~�gf�e�DN�%� �
w�
�iN7T�����L��ʭ ��LʘA�X*��2�c֮^��1z�^�����-�<��#���,�\)���P�Zd�ӲT����2�fg�]?x^ц��~�c�?X2���s�,x��3?;��j�oU�3X����߅��C��8
�e
�9�۹y�6��{��ZE<� �������Uׁi��b�B�F�U�2�q8K�Lck��ע��*��W�K̾��e9�a�i8��Y�w=��	3����a���0��!G�R]ˁE��3�n!e(cc��f�J0+���#�	s0��@�'�u3�x��Z���
Y�rʦR���iA0����'�o��;.����,���~��
e\HP��2��O�-�9�_���7#/��9�������vgD�_��P �I�٥Ѝ�D��s��j�M$�W`6�Rw���6]�^�.E)fA�*-�uj���CN�9�s]%��OP���:E��8C��Q�Ҕ�6�MN�q��:>��
�Ι�s�1,ҙ�`G�x�_�F�o�
!�:BW3e�����YKz�E�
W�9Z�bhj`cD����]S��^��8���3�ßzԮ=����L�����+
cjg ��b�6��/�v���[;�Hc�Y^jX��L�=󦈖R���6r��~�5�ߊ�U�2�(��;�/Y0�Е����*�O��*�����
��Z��C�����E�p�,j�m|
P��:,�!���F�G�D��g�h�(Ŀv�/~����b�!@�?�`6�	fe�"�\���"9O
f~�5�1��V�p�Hi��ʏ��`�	V��]�1?�Hm�YȣjQH̺�]1����h�1Բ���e�q�ܹ��O~r�������\�Q��x�b&�y�3K�E�%��g��]��UT\��mR�������թ�n<N3H����FW�L�C(��rfj���,�I��?���SY��)m�o�1B�?��eF�ۻ����]3��E�"O�f�b�Y
_�u�!����l�>����}l�#v��t���*�V{�Y�-,��߅Y>U�g��}8�qǛ�T'��`ƨ���4����h)�LwP�1��e�,����bA�
���y3��쓗69c�� ��\G�c�2�Vf�Oj��V�R �����f�ژyi�]E���/-0��_���Į��OQ��J���;���f{��s�f��l�gU���J�F��^��yz��5�,��k+���8C�O1s�1T�t���ѝ@6`lLw�̤�
8;T\�\?��a�1J?g\��S�'}ȱ��v��ZIc(cߍأ�Ԡ�E��h��g��~z���d�|ǔ-P4�+g�)0#��țlS$�9��$�����S�n�ҋ�.��qC�1��p�(S?��X\�����lΪ���c�>�feI��J��ply�(�ٸ�}t��cf�oZy��_}Ơ��U(f�z)f���.
A��,����<���3�ƊR`v%g�ua��,r�]�{��%���Hf���%e�lm�&��L፣�o��o֗������U�XE���E �
��֢����C�Gtf$�Y�,�.@�>����/
0�������im��;���fW�3�>H�L�)�,z�m�W����U)k�r��Wi��B��2��ZгX,��z�݈�&~-[j�s�m�c�_��<|��@l5�Q4�2�Q�m�F8���w�0�����M��Mm�)fZ�z�'.�j��؏�0�y�����C�XS;���]unc~Y����f���WB�%0�Mp7
GF�������vE&b!W�h�A����=Fi���B�l�6�M{��P���g�����<@â3z��I3�{�\8G[�7q.I"B::
����c���g�\|;�	��Z�w�{���x��P�ͳ�4s_���G������\���5N�ɛ�,pѽa[z���0�*�R�#����ٯ;���2�b���f,���&�`p�=�U��kr0���w���5�]Ba��Uj~�̯>�G~�%�>�ۥ��]��(�q��4۹cf�ί���U�gl�11Wʤ��m�F�7�.?��PF����@�f��"��qW�Z���ӣ�,j[�����jo��gO�]>�`v�=�̨�8հ��h�v�x�Xo��)�O*��G`ƹ�T�`�����9|��)b:��U31�Cc<W��i}��Cj dQc)�
�l��Xfre��!��<��;�}����nㅪ�q�e��G���-<���L>@{\���0��2C�9f��E�
Q�\1�m��nbf�<87l�*�5�mf���q��u�il���co���&0�t�H|�����<����\���^h��Xe��Z�>[��~�G߇��J�wy����G�ヤ��wx�7��cʿK�����1���Իg�43�U~�-s�WZ�ٞ]|
j5q��p���K�+��Y��<�1W�&�-gm�/�p�i��V�\���~�*�OZ�”�ń,�/��:�RV*g`j���W�-��%���i��ߒ�v��z(��cn�m�֛l����������qve����*�Y� ���=Q�+�ʘ�#��x��Wh��r��!p��lQ#��Jf�Um���C}#�r(S�`F�,��1�����(3���<��;��g�Y�11К�ưF_��_���[�&�1-+�ͧ�cv7��'f��6lU���{�r��>��P���
�:%��d<�ԡ�wX(�	f��A��A�����e�_rNka�o�9j�-/�m�^ҷ��tX���*�@
{g1����i)�PC�#���ᨛ�wm����iJ2��By|�޹��c�Pz��#6�q���M�N%+�柅T�6���KM:�[����(!��*a[J�^��i/:[o���L����|��s�\i%�̊,�1�L���V��O��7��saK�lԮ�y�7E`�q���g�:����C˫�q��FY�qAZ�23�g֏!�}��WDz��uk�V�5j�.:��_�2��Ψ�in��2�Y��xM�%�iݚ`F�l��=�y��_��/0��?o�F2�Y�様���n;a`v�8��W|�Wlf�\mE�Q���Bqs���bʘ@Vpesl��4���]�芙�Y�����cV�b�զ%�`�L������6���Ü�~�®�y�ӟ�CL��b�X���i����C1k`(e���AG�<3�\�㸍��B�4����D����@ף�7I0���e9f�\�D�Ĺ�-�o�ՓG��>�L0FWF�a�Q'>�X��B9f�O�W2(�'9����,�عp����}6�lR���<�[�\b���M^�ƾ؏����k_]�m��[��1�PF@�@,=�zX��_~��ޑ�UjY��zW�
9���e^ �N0��:2>ܱ��uV*"��/~����B]1�����̍?�w��Lt�e�ټ0�rǖgM��ZG0�	�q�]<;��2�l,�ǂ*Yh*֯K�g`(���B0ˁ��k�������0���ѣ-�<�<��g����?p�	����q��<�10�a{yha�������bu:���\��b>'C]󿲐��Ӻf�?�1��@[}�^����Yh
�i���h����c3�q5!-f���P����3���&�Jv�~�I�3��tĕ�a�+c&6QAS���m�����'��Džv�L8S�̭���/��n�� �N7$8��d9f�������6s�:z�Z�P�
��U�N�[fz`v��)�}����tX%<��
̙ɈFu��8���4�;,T��P�n�è(:�N6�⥕ ��8~��n�n���
��x'�|o���O��ҳp]}�6�f��Ҵr�iZ�:3΍��,�������V��}��)�w��upz��}^qQR.��,3^�r��Ҡ,��6լ������O���7b���d�lq؎u3 S;1S�o1�n$���
�2�?'�]�>�Ǐ���~��X����w��ο֥_�9�����[t��q�G?��R��/����dCk�Et�q��E=,���뵖ye�m�q�s�����s�?f��5>�f��F��u>j�diN�Y�w�1�i�1�Lp&�L�e�?�7@6`l�3����䙽���ϟާX�ڹe��	ϰL��sna�V�����و��PFos���Ã�_���`�e{Il��l/�p��5z�=-�1�+�v�[�™�6���Q�-b_8T��X��)E�c�:n��O����P�@�	�~��<��݄���5��jӧ�V[`r�
Ə���~dX�\�ﹳ���>g���xW��ȿ��J��bb��כfG�P��XW�ɶ��<�U�ie�1`�����#gi�2�F�e�dP�d�-�1��h����ٿ;��b�0������A�U4�!��'�QE�
G��>ƚQ�uj�:���U�A��?�������C1�׸<|a�E������y��?�7��f�2�{��쑏|��f�.5j��R��dL�H�}�B0����;���i��L]�9F���tm��3��Zr���	]X��c|E�/�W���x�Y4ևZvX6�!���8�W��f��1�Q�.��X0�*}h��Sfa���T���{4-�烞{h(B��
w����@���롌13�.��Ҁ�3��%�i̔�@ID��=�b�;��m��<��䒙r6Aͅ��ly[ye��l�7u���1�٩{�I�`>�`,:�x�zi�T��%�\
�4=�r�x*q!�ufO���c�1�����
�k���\�Oc�hs�7�v��9yT{�?�T��Έ�T�9p��BiP���ﯦn�B�]��+�*���8���b��s���%`��ݝ=d�]ԛf�:;��f���^�DG0�7tp���@�YJ��:�0#�
&{R�&���ɭſ�/�>f����b'�q,�8,��Q� ��&���v+��ƶ
e<�U~��ȱ�#[�vP)S���#��%"�����������i�����K�:!`&��8�2~�c����C�vX�w�gnWL8�ZZʋ't�l�2��'���[%n���Qs��mB03�kc��zi��)S�c����43ۻ,\%Ӕ�C
S袠m�b�Lste�X�P�	gcnlZ�z��s	g�ӓa���ZӘ_�ҕc�r��k�-�i�1��;�scL�Lq� ��1A`�c{���9��|=�4��0��6�l\��L�W�i�|��W�00k��E�Rf�S����$��U4��:�э�1�;�l�[�,®E�'F���8���K4���9
+��#��Am� �hti���ywv]�F�}����?#�rD��=� ��P�h@�f#��if�e�{�'�#�t����0���L�\=�tdj��fY�^mjM��j����^$��v��]mNg�;�])Uo��QA�y3�caܣB6�d�X��g]& �}q��������gcA�L���	�-2s��DiE����Cƴ^е���s+��z����c�'"��̾��3�q�&�r(�7�1{��~�	���q��~�G3/�?��~>�� ~M�r������k�S?��Xyx"�j�x	c��꘮׭�	h�R�`&�l�e���
��c��ls��찖�����!��u���}��2)fJ����cMk�3rg�b6��#��&�u���R�:�6b90�k�1�X��C)p����;��.(f�HS�܍�N����ؗ�be�1��>������w�6�u�`n��A��
��GSz�^y��֗R���я~\�r����&}C�g�!Oz�|����>�lk<F��y�_%>��ug��ܿ���h�<���t�P�X�+�����(GF/
?�.�h�qm�B�S��LE��jԺ�f_`0��������˟v �m�[�(�2gY$!�Q™6�-���/s8+B��/rʬ^I-+K@E[��˿��x0{�͟�Z�76syJu����'>�)fwg0��G>��Y�/֋ͦ�_x���K�Cm*fTƪ}�\)��L=����9�����\����C=[Y>Y��+����u�8�	c��\ǚџ��	���7{�޽�r2���1g�%�,U��`1��h;�+�Th�?�C`:7��J�b�f�CW��m.����Z+0�PE�_f�q��
mJ1���yC��.��9b��Y�}
R0j���Pʶx��Z)ff�A��q��C��44q%}k�X���0��R��.�	ʌ�ٵ^oI�Kk첩��ۙ��AB]���i�,]��D�F�A��R������4��Ɇ�C�nP)��]
L������?���^4��ҩ/=��#n]G�v�f�X�օP&��Z�萦:4���濌Oo���`s��|�ja7P�/n��]B9�s�:V�9���P�ڼ�^�z�3@S��[[�-="�"v&�-c����
5�v��~�c�c'���OxM [�m+��Y��a�24����_9����旡���!��#�`�@,U��������<�=��1�,Z/�/�<f�O{�	�� ���f��uπ���.`�9�Q;X�F :s���𕙇l�|�sd漘A���7�|�cfye/�Xm
K���t�`S}��h0�,"���B5v0�?B*����~NK1�fL��@��֫����`��Y;h��c�P�+i(��̶���L�L�Y��}�)��g=��f�c��o*��E&��J7B��w�#�o ]C��9;=][��TϪ'7���q�L��~���V½�qQ�kh�j�̈́zh@B�yU�*�
AhBpb���7�V"̰�*�c�Yi�a�7���	b�e}�5�׭���9~��S�z.��ۚ�kڇ{��E�	�ګYgT���Pƚ_Tg�R��LgF:2�NG�20�0߸�`����
�8��o�Oe�@J}-����������2(fmO �%4����.~a��Y���i%����f=�c��5[������$)R���B-#�嵵�f�v��h�6}Ձ~h͏�X���x�fOx]�X�
�f�~��O�}�8��>�Q��0Ƭ��XJ����}x�cq^�V����s�hk+#��\��z�9eW$��,��������}5;P�t��,�c����B�M�7�9�F�٘�7_=��`��jB�x%�h�N~}�b�����w3�i����4
��C��np� 
��
0�P�=\��2�38��.��v�ex
�=n�6�2=���L>%�T�	f�����2v�oj�O}��O�(;idBS�5��9XP�p~�� +�t���a���>�)r�`;	�b�zbѬl�E�-7��5��z'�x.��D߁�?Z\ V�}6���x�O��	a3��l�ԛ���"p}XV���`�c�}*3�נ�ʽQ��q_�5`��
c$��R�*��b�W��$��m����#N�PF^}�!	�nS?�4Z������Xe^"��f�پ�`�_?���i����S� �@�(eK�j�>?�5K4��*����2���ʼ]1�1.��,�S��
kV��w�?5"^�����6�������P�6s�^�m�8aL�8�2�y�ۂ�;,]czU{�i.3�����/.W�ض���u��T�cX~��m��#��O����`�!�,4>ճ
�����ٗE��9�
�)�l(d�17�L�Lo��څw{�X���_fY����oӕQL�6�“2�l��_��'1>D�KOW���K{K�����
i�b��2=��W�00��I�n}��Y�c��6���^��i�r�ؖr�L�����6�A�{|��W<�>u��92��v5��Շ���>�}P�M"±ް����_���Q��V������s����Q���>8lOP���؅LS
K�j&���ܶ�������&faV��c,2Pу�f�Wf f�w������2��&��ـ����a��g@6��'9g���3>�`����؉��bq!l�	b,E8cb���)hi�Y�5a�f0&5
c�R�6�ܕq��W�s�0.��Y�b
h�M=6���Æ��'�����D_+�W|�N�}�8��wܑ��R�����nj������t����[��%!�j��U)iޟ����`���J�P��;�ac�2��f}���c�1�)�Qj�1�g����M�.�s�K4,���+���ٗ���K���$,w8;7�Eg7�8���m$���p��VnhOH�8�l�`��W�y����+J�_G#�M�kR����w��|���	49��o�Sz�#�듗k�<kN���u�Oăp�`����I�
ķg�l '�G���|�2Բ1?�-�̜]J��m:6�m�=S�_�b*�n�q�6�.�,39��l3���͡/��0Qja��\m��_��+��=�+)f�༸7k_*h{c$�i����ާDz=7vS)30+M?�к�L?0X�l��Pƹ�(a����e�1�U`���pv��c=ˈ��_���^��G��}�>~����n+�l��FqZ
ic�:$��(�=�	�/믷�1�#��/s��{X��]c��q����3��gڻL&!C	[M8�âͥ�����5��,�p�{^Y��0��5��߸�
!��QW�rѦ�vi����o[�((kث,���Y�&����m��p�͞�,��W��B(�b��fϘ��s]��ͺU�(�q������
)���a�L<5zt�7r��p�C�܄ �
fs�w(6ZI��܃$�������]4�-���x�w��F!v_�s����|-�𥉉��p�����h��)O���賲��1����͓��v���3��E
e$��fR�����ڤ�Y..�Q�^;��tf�;ӑэ?܁�f�Oʘ�SVm�دy��r��q~�>��
s`-|�=�ei��	f�2�Lj���.v�`��-=P��?~�����š�	���-
�,��`�Ơ��j3�$����2_���b���k��攩�em�ܲH�l��g��Z�g��D�X�Ӻb���	��g0;{�썀YWI�l�Z�k,W��3*Z�]����C�с+U�r˕0G��Z*��
?t�e�5ڶ���K�o0c�w��Q�x���}��ŷ�l��ofj�3�3B�1گ�S�<3J��\�+��2jw��džΜ���6���Z`ƛA�{�ة�	��
��G�YeAX�G��c�M]@�U<���Fe�2� iq�����'>y�p����IR�@�h���p�M߮՗�ד{j������4>a�nG�r��d.�����!Uv�G��o ho-���<Y0F�)eڸ�@v�l�*f��ʘ)c9�hmn������s��A�9Q���n&�W(c~�>���;SLZ�r'�h��a�v�Y33�4�,O���3(d��ڞ�J`L51Z��@(f��O����X.n��b��2�!�-\Y��2��s�}(#�Ls�*�,�T�
eT��E�ڡ�,2ӏ�fߕ�8�~��֟vif����:y�y�^|�+N�}�8�ٙ3gP��5��1G�t%�*w�r[���h����6�U��ϯ�67��Z��x
���~����K�%�lTQ�2�hζ��i"�|�ˡq3'0��h�x���[]��l,�2lRM0k����%�9�p��u�Bo�%�۰���,1eu��K�$�	e�!��;�l^8^;����z��E��?=����9t�؃����Yl�8����a��#]l����
�]��syxJU��:&֣;�{�/6�}�5m=�B_k\y[&)uuAQ�2�n�
ί
�y:`o6x,6��k���6���x�T���m�nW�"l[�	|�jxo7<�����P�+�Ә�$�bT��F�z:Ofd��?Cu�a����m��2�R8���	Uo�/>�{�4�6 l9�1��H�,#0��s�F;ԟ��x�g��?�Y�F�l�u3jc.R8�6(�f��_}�!�-���.ȒRV�2b
��׶Ջ��@��!�7�c��ͦs�g����Gx�j��3��h"cM�"�u��Ù�,�{�{�ו�W�40[=��/��m�n��7l�|��W��}�>t�]���U`�~2WCNj����2��s���Ӷn�,��"|1si/?��Ņ:�O���`N�e(�T�cZ+�E��qf�J6�t9�q��a��[_~�/ؠ�e	�R�:-���u����R]&qfܣW��R�7n��CfE~�+fiP�)f��b�]=3Y�V����.��g�,�-�/�	ȴ�i�3\��>�}*l݃��[�x��d����O��KL�q� ���hw�<�
��>[�!֗쾖.
�jiS��_Ł_����'z(d����)�l�G}M�N�j03H��3e��o���w
EeA0�P��(�A�7`mW̬�&����e�����pST����5������-
`�)�2��aL�30C��ٟ�c�~4���T4��
�J�����2�"��U(c�}�C�����T�4.5��#����1��v���'�)`v�̖m1a2g�V���W�`v�w������8��[���Y_�\�x
�@8��]��fG<�AT���k
s�l�m�O��׻��|/W$�q�2A�j�3��I���[A@5��0��0�ؼ�T�h"`p&K�a�:�����p�$Z^�P!���B��\1�ǀef4	ѣ?��UO��`���\�@fu.F���@�Զߜ8A��IYf�O�=fw��0�af:s�P����˜?�y�R��	���3���ت��z��w�£��ؾy�ʝ��K=UN��^�O�5��')��Ba�?�vG�Δ�	fWG�*fW���|�2�0�ȯ� �Q&�3��z�>=���*cP�h�ѦBv˞T2s�'���>�0��x�M%k~����k`$F)e�v�k�ɺ���P�`�'�t&��ű\<��’P��#��l�`�a0��Vl<nZ(�Y��E��5�����4VZ����37�Lo��>���F1k�7���	�b֮�ك_��'������o~��,Q�R�_��S��(b�RUa�~��K_�P�p0�����u7[&u=���9�=��0K5/��I��cL��u}�G���>fjO�l7�G��k��ץ?_�/P���>��:�d�=�K����
�Q��Řv�}W�e�&��[s�<v��3���ֺ�;�?��E�k�#�c�|a��Y �L
U�<��4N�'`����#7� Zm�iQ�)�6(FX���b�+���6�Z/C
�m4�x�����P��c���E��S��+�~��D��t��tz��i0�ͭ�a�6�`jl�����0���f㼺Φת���@���9�\�����G�Գ	h��n꩖�rm��3���;FYu�z2ڃ_P0��=-�gx�̔2�j�>j����,	e�
ـ��tA%�gԑ��t���ʸ�����C`�1���o�o
e�
	o��"-V3n7���?��;b���X.�+d�	fu(c�u3@�����-�1oJ+���2�)+r�4f�I/P�H
Yf����z,~�gM��>����uΰ�8�o$�D_�c^��u7�vn2��d0{�q�7�����.}�����P�4,1S�*%�si;�j�`VY�Ga�Oc[�X(c�Ĩu�AAp�����~fR���8����`&�!���U��k��~s�����2n����8��ٯy?�䘕h#�$��Еq���떌1�o��hs�i�v�ٖ�1Z:��N�Ӗcv9fv��	kvѾf�Շ3c���/�p��z�P���^_k���a6�W}��j�\}�B6�q�r�?Z!�������2��gtjt�L� #���f�C�\��4���E�m�6e��x��zG�	f��2]\[{5��=@m�*�h��'Ɔ��r�1B%����ߌ~�:���f���_Yj-@�/�L*��T%�<��1�/�<0�o�;�\�n*du(#��6�q����T�>?�>�U�R1[��u~A+U�>0+��="�P�����Z,��mZR$ն��u��k_��
'L1{�13�+�즷#7�BԊܳ4���Ӷ�Y|ʚ�S[͚�G��Xʘ*e6��]��eFx��G�����SAE`&���v0����U����@�~
]j3���CD��$όN�Q�� �o�/�ʘmثW����W��1ݐ%ʵ���.֨R���Fr��Ź�A����o�ݰ�I	+Bk֖+c�}�����Z��m���cg���zW��`�nU�Iݺ;X@�IF�J\�"$,��b�d�B��i�S�%>)h��@X�i�?�|!�8��i85H]���T��0��1�őv��jhf��SmB�7�����L��a��z�!�RϮE��h�b1|1�X�B���5�Z��g8�8;��6�MP�NC=ۄ1�-X���+@�Jk��,#��C�-R�a���ዳ��2m�si�C���ޑ��:�8el{,F�5Ԁ1���(������Y��X,��X�\9���� m��!������8�b�
�Z��%9f3�����zv�=�V6��c^%��r���o��}�`���\33zc�~�򡩘}��w�鄹2�븺2N(��tP�vkM�Q���3�Pn����J!/3���
��`��@��G�;Ƶ��5*`\;����5!M���N^m�o�P�T[n����`Mm���6���^{�H�����3W���f�!�����$P�^f1
�?��Y�p\gl|l@[ف8�1����n9e���@��k��67�C��Gc�R��u�vLEl&�f�?j��L�L7aA����x�x�t���D���p<�!0�\����rG4ڞk��G(ߘЕ�Zׁ��N/A�@��d`mІPu����4�Q
�KJ@��=�b	R�55s� s�s�Tu���\>ǹz|�o�E����RA�8��k�]��S����/~����9�6-��-&���l��Ϳ�;��#�A�jk|=�fY�?�7ګ�ތ�F[-C*�-T�d�F�Bvy���QK5[�ʸ/Y���ʙڻ�Y�z��Am�u����2fmވ�j����Wg,ob��Pö��l�s6.Ú��V�P�2k�H
hI�-�ͤY\!ø�K� ��kD�����>��,�_��d�e�Ho��/��f;7����y��lD��ch�cv��[��u�B�A�l���f�AX��0;��P�h�?���Z��2z[�:�3�^z���VT��b�g��g�Y�T��\3�y�Y`}�������¨���0�ƥ�q|ߡ�'�_�>���C�X�5j�,�����ݔ�?:���z��+�����q��a\4���	f���ce�&��g����7C�D��*μ��7��G�.�8�Am�/1T��~�A�[>��ڈԷ���$=?�P4K�}&�:����[~�/�BC���T4���w�����S��jH[�~,<dq�hB����a��U�
�)|1fP�i���cpv�^O0;��X0jل�� l�bP�
���u~*fW�i�������\�(s9e�0�@2O�o���׿�M�\|g������J0�|3ք6�$��5�����v��hp�J;�i�!,	Wd�4��m�y��&�p���>/0{ɓ6v�3<@����՞�}*fO{�η�00{�1��m`V�U��'#Dٱ���i����|C�l��0F�WF M�pg󪫶�22�C]!���g ��٦MU���F tf$�	�irj��-0k/����?�&�6�4��M{�-S�6c��:%����<8��P�~X�6}l�����,	_�
�K�W�����
ژ��	q��ND<h;Q1���T�OE�E\
�`��n���ҵ�;5��ַ�+A(c/!��J���-Ӧc�p��.4l�/Sަ�f{�Y߮��Zzƈr�µ��&��s�~�\k��M��w��r�]:vt�A)��;%��f�]6f�,��&�S����00�M{�
A̷l�1zy� �h�Aɂ�.��
 6�P���`�i���b6�f��r�~ga�nfqu�26�n�YK��������1�3�E�>�|L}}C7�+_�c��m	x�\�v��Y�o�E�`�6��ж���ƼO�P��"_`�Z̚{��.��{]�0&��ܴ����`��OZM�,�/�#��`��_���',���̆���Y՞��cc\�qW��?qn�Q�z����Cd��衇Y�
C|L�G
eE(�o"������-�1�GA��}�d[�5f���U�5g��k�跗,�_����]�'|���;�9��fB6��� ��-h2-�|?�e"z̼����ɭd�w�hv�T� ��&m�.�!�
2awh�>U�����*�!�9����OE�`,��G�h�7r,������D���1n���y� �u����Ѻ^4���c��+*D�e���?}6B[t�'�$�.��5�s�Y�4�"� l��q;�Z��`2����z��t���l�&4C�7����
�����46��s\���g�3�L�f�(���(c��l���F�+�q�9�mq��UF����
���	i��gXc��F�06�(*gh��OE��!0���Sl��Q�D�G촩���1�N�b�Funhtt0�E/���H�"f��6x��@0WZ��MPv�\��s��Xm��`�R�XN�޳�T�\s0���?@_k�)�#G�g?a��!������6�
��+w��ȑ�8����ޑ�,	mt㸏�-q�.S��'�[��Xx9�)D���4�M��cZ犘 j�I�M�Ӻ�li�*Yw�*Y0�qB��]=��h��fs~a�$���h+���ً��� Y!hy�"�͏���h!�W��iZb"��b��v��瞆��ɮ�4H�gf��p�}�X���(Z�_��g`��v��󱎥�.3B�x4�G@�����7�q|1��Ŀ�P�/�g���7$�I����3�w��5N0������w�I2�ڦ/0k�&?fQ�q���9�zW�4���fcl�Yj���Fw�?�^Ѕ�T�4��x^��m��.p�cim�\A�wD0�9/9���X.�=���
e�|
hmS�ZnR�2��Me�3�m��n̘s�}�)h�ц)�~l�j��	3ǬaG��?7sdD��u0�%���f������җ�t[0��	\���n���&S��•1=f��#`�B#	�r{|�3;|����{pnaM��
�_���9A]`3���	�i�6��^�_P�%���n��u֖]��׾;�z��+3嘕O�R̲�2%�Y�A�.�ma���wW� �r��2έg�w�s����n4�]u3�������`
�foxC�y?_[�Q�Ug�qʨ�v��I޴�Wh��=��1����[��X~{<��nR���7;�9�	�f[���h09��kpb$���0N�L���W,�Qe��6��� ���ў�X3ڪ�jc�Q�L%cʖ����\sy)���G_�v�V��ja
23�aP�7�A�Q���L?b(��x�����p�3�~��pţ����r��b���j��N�$�q��2��eN��V�30K��5���U���#�Ŗ��/�3KWm�����=և9�;�s��
��^���r�n�c�Z�<��A��16�@e��9,ZŦ��c��%`�W�o��u�5�IÏ6�����"�U+�0ꔡ	�2b�9f��9fX՘�L 6�HmAڨ�x{~���*Z�i�T�G�v��e`&.˰N8�
ڗ��3Ǭ܃i�I1��Z��l���[�t�]6܀�
�� ���%�22l����\_(ee�Z*f
�
��4��,}��f?�q�u�����q���4_��O{�?���;�l��G��`�s����L-�U_`֩��_�2�uc�㜫��f-8K@�c�1���jZ�6�ej�>�njyf;s�_\������*gj��mZ+�L�{F�a����o�ێf?�����c�\`6k���1Xm�O�k�WF �R��l�G_m�E(#���-[q�2�2����o�~�OYUG�c�q�б��=��[��?z��G,n���D����;a`���f/zы*0+�	RIX�����k���vc�\}�U���7����J0���+&|�4.PT�Z��M��	t�,�|Z�&wFn0�V-em��0��V=j3���מ�>�[Hbp��j�+j��T5+�?�+�V���*p�����L�403:��PFS�&�8��I0�Cf�C�2ؙ$�1S�Byf�>�T�F�>3�����M:#5�b^q.�<4-��������D~v
�J;�&���F�$w���s��������Jא��{�
c���Z��
�׋6����?���D���SR���l��v@)�e�
�d��j�gp+��p6B����_��3��@c3*f�lӷ� ��C(cQ�YC>��b�1k��'bg3@��4\1���q�4o�-C��E��_cg�\#��Y^
�?��&�$@Ƶm�Y1����t�_ƶ���}�-�Zh�z‘�Y'\Y�
�
 |�[�s��+f�|���8�|=!����h���f�q'�C���f/x�*0�\�V��?fn���.n�����ڼ�p�E�,�%3e,2���h�����-�A����w��{��q-��[��N���r�1����~lq�G�J2�#tqm���l�SY��jgskԸ@Zĥibx��2���f�Y/�2Q��9Fm�c�*�A�ˁ"TJ��M��`~���������.@լ�1Ӊ3Gk����]����_���գJ�;N)���x�/Hq�֜P��@ˠ��4�s
��x��������>c
7��*�W�zs
E3D��@�:���k,`z�p�΂��?������v��K�ƹ�e����l��:T���O33�%��b_�)d�N ��|!�	Ucaj�-�FY�5k�:p�Y�(�����̉5���؝W��W�p�>�8�o��l	fO��_��Mk��jP��:��kꍧ�j6]g퀦���2��ei�ٚ���U���%��98�QA�9���	f�q�
�ohs����,�p��U�̞���E1K�+e��|�k=���R�L�0�f�/�C�"��&��qm�ه���:�R�,��=��Ǽ������/5�4zA��Qv�n��qB����L��hǏ,��pT�%}B�6��Y*0a�Ӵ�=�1R�rQ������6ov���Uf�V[�dtjTۣgf������6`v�����i���Y��題c��B�h���_��DK���#[Q�A��S�xRf+�4���M�h��m\�_��k����P�,�荓�������0��Q��㔃�c��������Y(��6�j���l533�~��fÜ�����J3�v�o���,��
+3���6���i��2�b�}/�6ތ��0��
f���[����r����Z1��ȼ���v���bP�6�#e<HC�!����26��(��4��]������������O����x]�6��GK0K��Dy��0�+��y�	����ٕ�ܹs)����0�|�Y
tn��c��5R1�>�ǯ���.�kx�
]4S���a��-���4�u��l��d4��y��PδFj�(��ql��kD�Y�>���~(y���z`�dk����	fך������+h3���D��u+gL��˅�p�^2���嵍�u��b���� �J*c�.�X���f��PF)f���cm��t�s��c����|g3��6C��9������ӂ�Dw�E�6U3��wwQ�o�A��5�S*s��Fm �{����^�b(�����i�.��sp*߼6e�y}�9;����)nO��L�^df���k���g����j�q�1�5ާ�����PF��R�to�1�4���l�2�"��d�ù�6�Q�����'p1�Tm�bX��2]E���_t�ˋf���b�]?t��-�+ԯ	LT�X
�jߔZsu��ii��Jo���1#�-n(�Q}A��~��kA�
Cm�7��A��,���t<au��j�~�!�E,���Q��u����<����ˏ3��}��%��ˢCX�63�|/���2Wt��L��X�̕���>e�1��l�V��t
u	��;ރ���P��3—���6�N��	d1k)g�5��XO0��ŵ�2FY%Q�f�8��A1S�_�/������N��[��T���-�1]-
�i����x�]>�LiY9���Xi��x�=����P֪o)�D�9f�Eֿ#n6�ȁ�l�|O�zj0�G����[���4����`��q��~��c�s�B',~Ke�Q,b��zA��h������^<RS�E>�5!w*$!��c�S�Ɵ������:S�ր2����H��8P��y7�7��)��mZ�"~���j_�ܳ�b�0�Oe��X;���נ��#�y�*�:{�[�Y$�]tp��:��YW`�-?��E�.���*B������-���$4��7�>j(#�?���w sӏu�W�n�����e�X	fyi×�T�گ���`֚��+;_�9�@��:���w�zR�?�H���3��ai���R0�x���^�O�s5��!J�J��>*�b�"��:�`n�&9���>f]}@Y��4`�U<k�PF2��Vh�`&�c�"�4X�+�,~`y�\BVZ���EZ�������H�?�O�M�~]LM1kwDt*f��y��&���7�1�w�X��2�Z1�0��.���3��`��bv�%/��]�g��' 	& ��y���qJ6ܘX�S7����`��Z�����]�jH����:�_O�h7jmP���ن���v��c�l��<^�ߓ�/�J�l;�9���i����Lg�}��̕�9'�N��k�PFcP��+g���5��ۮ��޵Zm���re<m���]� %�r��w-e0ϴ�?pCW�,̺��?�bg�S1�ŪM�s��2�2R�-���c��oG��E�nQ�؊PF�;V{�5�t:5��C��e�WFW���R�M�6kW�0�}���\��!,?7"�u�`�K����~��#������<���ً�3�}�ӟ��,jc�䴘W�T�:7�8�8�{��j:@�1'��k4G8j�*c����U��83�W����\K e��(�J�X�0E:7�`-�zF��m�c�`��˃����&lc���C�e\E�5�2�Y�:랆���8� ۼA3����7�+i��M��
�eT��������)(gZ3J����Z@��Һ�86�юMqY`�/za��G��A6�@��0�t�V�|/X�����7�c���9%�ц{�q���3۽���9���])g�yn\jء��#�=jM�"�n�=��E�-�fX�asm��i�0;��3Qmfl�c�o��L1C~un7��R��fT�Zh�J�q���G�zO3�]���쨡xe��ɜ+k�f����(b`3�7w������Dk���e�¸�cL�%�mob����[��yqgF��P�z��:�,�8{��ݧ5~f�|�J��*s���܃��q�5����T
f?�{�+f������-ͮ�2>��;�<a`���f���'S0@q��R��x�W�T�Lp�z�ѯ9y������W`9d�3�m���E�\>k��h?2�yc�h�5-�Ui2� ��2�P�Y�
��|�t���,���=�Ne!��;�a����Y�.�l�s�8��`v'�}2�,j����� +%,��B��q)f�����m���h#lQ@�Ǿ�fW�o��s��Uf/x�i;F�@��Z�	���Pa~
!9$���_H�̓Y���I6��y��y�v�����"U�20<�-�{�_��J�"��B�j>���C�b�V	7JC�g���b�|�'{�c�cFC�ڧ�bf�dW��e��c�F�`[O��.fb��<����1|MVq83���qSfn�PFsYl&h�4}��fZ���`�0�dy�$>�Mq+����_����#3��@�j�F��Ef�������O�L�|c��&�s̮Y
�R:/�9d�Un�l��s�~^D���~�!���3EP�a)��:^����1{�qve|�s�sd0�~l��y������U�m����"�(:_�����9�Y$V�ާ�[��.��"�q=�,�wYf2^��g
s��:��s��T��)��r8�:��:������m�ٰ̿�#��4���9f|l�MQi�t8֭wp��)�AZ�k�M(�92���x��̨�]�NuL�[K��U�؏E���TZ|���!,YQ�a�BRT��'l�q#kA�	\��yF���1�}���u�����ym����g6�Ivص��Fx%���Q�Y������u���gn��`�����PR�A�	�e�f����V��㡱e*ښ�d֘�j�g{��Jv����1��u� 'Ŭ�:F8���dF
r�s�hD$Ȃ�o3F�1�!(����+��rn��^�2>��$�˧�h���N��^e�Жm>
`3��7�2.���\�z��-���vu�4�P���Jl
f�/V�W���������E�OL�����xC��_�׾a�'��ҏg0{ֳ�f�GXi�o�la��v�lK�|_�b)8ej����*���x�ڂ�6ۜ#��zYkl0�s�J��+�5AU
f���2�F�٨Gn����#{��p��X�3��6Xf*f���:k2��̘cV�Ye�A��wҞ5iu�[�X�n����:Z�#�̨H�l��ǭр�4� Nv]��c9k/f������Y�(��R�����ȏ(Wl�6��V�-�Y�#bc�c0�� n�s0�_p\�9��QĶ�ǎ��A�Z�����u7���\;H��]�,ZK	�E�0�XD�x�>�O�5oy�]�b��7�)s�\��Xa��bf�|�Ӛc?�_�]�,ܳ�sg�L1K����C��,U�ƺ��{9�5
��f�R����1��fs�
��x�&�]�|��w�L��к	Q�<P����m�U�������G? a���x��'qj��g�?����%�0�3��v
�rh����j c���`�R�y�\3��/ʍ�U��W��Qg���<�,1�
�r0��*��~�(�{�����7}�A����{��cf���w�a�'�00���f����#��>� U96�Ήi{ݭ�3%�C ���1�j���׊��r5M�v
��ݻ�Q��� T	��
����'�b�����:gpj�̍�.�����Q��#QӺ�eҨ`Fpqiρ
cWL���u(�P�h�/�O &0Íg��Z�6o@c�iICt3S9s0�PƳ�`z��}(dQm������`�[Vf<l1챴s���lB���?��H��X�uϬ��^ffff�s�������
Wx�+f�{�����I;��U�:��߼=;Kek�^�2�����������#�%��%�X~�zO����_�����Re�E��Ķ>^�,���9K���?*�p�R?��֨0vNRf=�11�f
bq�֘]�1�qc���f��휦0J��%c�m���83��g�4
f7���0KvY)T�ȴ���ƍ��&5��YO��]�A7�w�0�
�%0VBZ�
Y^g_����5�mF�L�4[�ʨ��T1�
?B�$#��v�i��3��:uQ�K����&/��������y�8�3k���w�nr��ӧ�>���~(�i[i�/��ez�j�2%����ԙQ���ĺ��A-weTx���a����&բ��>���KL>,�I��-X�o��q��,W��u�3��+�E�Y�,���$Y��#Su0����K(s��B�Y�3C�]��E�5�N��f���	�`�p�1�Yc�ތm��̓�k�>�)��-�#G�+/�Rbm?x�D%C�b�T뤻9���t�`ͯ�^�s|Ž�\���4Q@w�j��x���Q��^t�
*!nbwt�.r��9R�T8����LJז��O,�׀B�bf�(�P�e\ō1�(���(�Y��̈gye
fJ�RV�,T1׉D��ν�O�?a��Y+��A�gQ�25��+�I=_s����j�����v��M��Yԧ�>ǹ06��̖�)C݋��YEM�(���d�7��x����i�6`}u�2%/��k�����fg̾�4�ه>�y0��l&�1��G=�T�V����{w0��4�+c�qlԹ�,�$V���5�_�E��-��l�)|Q�Ӷ��0��~����!	d
azD?iW󏋚	He�|"`�p����ȶ7<p��l$��d���P�l�2T�3�B�Y�*f��i�P�,J�>Ι�]~��W���]�YV�֓M���5�ؑ[p�;Ԅ�i��+�V��JR)�S]��t�� �:��)�r��f�$i'�,����
��}f��I��"��B����%˼�l�
�7��[�pY��载I_��]���t�L@�z|���F�ƉZ���J~xa�X�33�e4i��:�0�bTg���4��>��OS�5٢4����3��r��ΒT��}w�a|����
[�������*�mN3���yhr���0�6�k��O6�F���r���_�V�+;R�dv{3����]1s�éJ^��%k��su�3��O�+�O��O,�8W`�}��v�	i�pe�����i�B�Ģ<Uמ�8������`�x�r�tde,��`&�f�+�mτ6m�}������{�3?NI��h�5f�>�G�Ps`v�TF�~��ё1�T�Q1�eY#'Ӌ	�O7��u�I(�t�<�e��.W�����,ʠΦ��w&s��>w����O�+�^R���XK���І�P�w�)=RoJ���t�|��Mt�8�ʿ�:��a��^^�Ň�A��7�����*i1�[@݁��U�ˊ^n��9R�b���EL
u���?���#�%�z�C�A�A��Ɨ�3MQ����Ȯ�����t^��8]��Q'mj��{?j�x�4}����*ט-qn�AL�b�Y���a���g�2ZvdP S0;,֗5Y/σ�K����C�)�9�ְ&����lF0�7j����U6	
��}���[�10��i���[��(}RUkN]�0K�͚z���|�F���/M{dYױ)Xe`�#���A�4�?j��އPf\hc���2F��;��u���j(;م0FW�\K\/�™�i<v��.�U�TJ��U�`L
u�g������G�26���k̲TFZ�k�O���ox�s(f���2�����i�P��<Sd
�e�r#uk\��)���/5v��^�-���+8�z�CS�k���4�[}��P��'y�؟㢬�S��LA��L0w�e�\cf�a�T����S��S}��X�/��U%c<��kƋ4�@v)3��n7M�
�8b	�M�f�b�l�d�_va�ޘ�(`v�]�|�a�?�X%#�ժ�M`nn��!��gpfӍ�[����2b�TF˜�1F���.J=�'R���,U��U�Nq�����ٯ[�����?4o }5�]�
��O����m��}�4�ُ�ȏ(�U�E�*�k_��*�QS-�W\C�5��&���V�T��aޗ�.`F��5��4ג�-*yY֘�m��K�,�
cqV0{��~��kɎ`l�1*j~mpb�����<��7`b��,���b�i�OiPr8��S�'�����G����F?\	f�3�?�e1���v�~>z��L�LדELS�n�Ѝ@D�\۹�~T�˽�v_镧
�?�����jƸ�w>��&�g:$oP�*�U�r�R���4�;HS?k�� 퇰��K��C	��sT����ئ�����x��DH����w���xA5C��r@���d�\�E<S)J���x�j�
��2��s
�Y�����N��F;}�!ʙ:�b�_�;�ܦ1����P�zR@����8���7I�u]o��|�5�3�]H����@�l�k�T!�6�.���!j��2m���6��#���oZk�}��δ�/_��GN3����P�ټ*&��x�ʸ��-h�b#��]Q]���6	��NY̮��T���1���ͭ	c4���������0�+��mxYX���F���X��E:;nS�=n��G�3*g���sA�!4��Y�kScy:��ٵ6��v>�&�Y��k�c�'�!�Le������7s�H~C7��C��2����#�1���NBn��8��D-�4�0����L���!֩��~���Jsg��Z[t��������>�!������(J�i����*��\��K��(i^�hOpV���*��)T1���(����0^�3]�lA���–�M��i�^k4��	]��wIe`L��~���x[5}q�R�Zj���
]�!�ǘ|�34U��T�L-�L?z=1���,�'^?6-6��L�5���7g*#S��2_tel׬�p�?�q����	f6��i�c�w��u�
�� h3�Y���¤
u	��\a�Q�b�JثLA�����X��06�
>��M���&QӘΨf `�W�6o3Q���
�hs��8&3��^lMfi*#�,۬�R�ZMv�x[��\�Y������TN8׭����\V��y���� �1�oX`��(�e�mk���"��� E��]Q�4~:>_��}�C�'�eQ�o����~��P̘�gԓ���?��anԯ����Us�A�}�%{���D�2�K�F�5����C�[��:v0o�l���I*fC�V��t]�!&���P�~�mʆ�Gm5�q����BV�)5�����XK�0����=���C�,R�3��`&���j�%p���6��>�Ou�u3�T��gn�>�}h��se��ive����>����BN�3��R�!����d���׶��a�,�L�!�
M�*�t�l,կ)S�Pײ�so��0��3׊X�U�R`!�6���ܔ ��[0{�y+�����r�6m|F ���:���3�\�v�h����թ���Yvy�6&��Ot�m������}�ء���J_�u��V5�̮���>fnW��SMS���� b���l���L���-�B�d�C;x��k[�4��/}O���y���-O���^�NKdQ��;f�z���5��uv���#��R��גy?3���80��OT�a�O0�sZ�7��A��T[���\��1�(������U�n��E)#�!�,�׼�Z[�,�s�L�L'��rV�}�-l>I�"l�& u��kK�%������LSY&�)�$���Y�dm�E]�+;����}@�n�?oo_�ױ��ٍ��G����טi2x�6�}�+�'��Ww9c`���fo��uo�4]��5���:�k�:T�JT�k�DË���-�@O��hӍ��*f
}b�u�G��[���v�
،��?�xZ`��0���}�i�^�LoǏo�on��b�47@DZ
�Y�IaiLj2���l*c�b{���eQƤH��1ʃ��t��al6�5e(�$���!��A1s�!֘���dr>GP+�"��y���9W��>?�;�����	nڷ�D<�QFj��^nIcQXt9�3��iqb����/�nK'�W�5�._�)�G�FS0�gƛ��L��y���*f����t��D�ָ�9���>�
xc?dm�&L��(�:bXc�U-b���0�f�x��2�L�
��d�7�s�Df?��8>�0���^B�EL���B���<W��k��R=@LιE���qmY_�Yn�X)�Wjb>����S��S=h�����1���������4�������l��fu��u0�׋~�*Ʋ�W���^[_�r���fj��/�2�v�F�"����P3)#�q��a��0�b�i�Q��št0�bV�I4�߷ؤ�xa�Yf�����,��J&+`�euk��$7�f*#y��i��eIeԛ��>�25a��lm�w�{o�m�:���*y���
_���E�1��>!e�B���p�����`ԣLh#�Q-ӵc?�uM`��&��EU���l�v���Xcv���X).�X����-�l�7�D%�x�b$SMe��7
�56��)���0�m�̘�X�7V{��{�{�1>�@��i��N�V�
fkE���.r}��=���3֗�}e3��f6�=�_���O�W��q�?H�:�`�ַ�u9���C�%x�����v�>fj,�A*�¶qQ�f���搜��4�Q���q�6}B����q������!
ge�z�� a��m�<��h3�]P�\b��A-�s�u0��i�!P�bv�T�+z*�e������XX�Yf=�t�h�X���6`/����l,��������8f��(��wpk��A-�Z�[�Z���W�
^��غQ��VH���*�v��-��{�]k'H����>����f�ͥI7�ֱ3�'��z�o�J�W��-�PQ(���:�2ۢ\[�k:�J�&C���喭(�6���LaLyF�L�*��nW�Y�+K����I��|f4�C[���}o�k�Ï�8,��mw��t]Z�p�������fԢ��̢^�2�`�PT�S�>
]�o����^�.Lf�uf���u�!Ie�^m.�a2{�x�3f�<�`��7�Y��e�C\���RuMAfC���r���eBY��,���y���,gk�t.Bz}����U2�'�%�b]Y��=��_�c�~�9"0�k�>_���q�:S�K몎�z�4�1��o�@�QVz
Q��)�����xE__���1U�tS��C�$����r�����$
���E�����'GC�nVʀ1iW{��
���_2���{9�Όʆ��(}�~Wڬ
{��뽾�k�i��P�s0E_�1=w0��1���n:�g*c��#A�m�2��#�13�ʞ�
�)��?���z~��A?����B��qP��"n"#�8�8�6���}���
�}
Z�����;��5�ѹ��r��uG|���ȵf�ʨ�0�uff�\2��
�ؾ��~�k��)�S3�f�#nϥb��k̞������ive��o��c��eUӴM�4�p4s6����cv)cNTժqﲪ�-�}���:;U�g=�'5��ק1�E��X�C0{㸹��EL�1.⪰���NS��=����`��2��"06^#��N&�<���g��~��ڢΉ1�Q7�cY���h5,�1ItʠL�?��ٍ�$��g�EkfT�����=�޳�I�8��+�up�&�Z-�u��^�S)lFNV?�=�u��3�+��R�m,�cuf��	�Qُ1�qbv��ٹ���R���n.��!2e�Cf��@_)�B��s�~iF<��m+k̔")�e7�:��)�}�UO�q|>aI�h>.�ٶ%F!�e΍����b��Iך)���*��V�ق5e��Tϖ�a�����'����^��`���	���10{�3|3`�`�~�`�)���q���F%�IY�_��~
V��U�`,+l�K�K9��P��4�1�L���O�{�T�i9�Ll�׏��f�5�[3��,O��|���dI9��W0+S�*�e;e�'��L�JS�4_SڽOV�c���vI3�vEX��P��5�Rj��e�z3�M��&�mx�[��Ćt�m{��7$�9)K�@Z�����E� /Ð�Ƶ{�y����6�V*�{�âYM�_�SB����z����n�1��1���ҭ�W[�����x��V�5��C�~��Ȑ�3���%��2ԗ�`:x�t�"�1����ט<����l�Ce���3AI��y*���&�v�SⲈC@���z��T�o��J[�����y>���\���G�.��
��d<Jkl�Z��._,��do2�	_('N��R8T�[nֱ�>�y��
WF[��̛�4�=b��3����f0��o����%kϴ�x5>`��pt���cu�n+�ڦp��%jX��#�rzΔ2��k�X�U>�	fW��W��I3�g�Ѡ�9b�4K���j5�7�l�v��]0���G)�~EW��4��nj�B>쩌�$�<��M�3l0mv���
>B9C}�P���%�k�,�����ߔK(����
l��3SؐQ�	��O�FI����i�$u�S}eUeM���I��\ITx�{�ʅ�y�I�_��J�g����wd
��cھ�A�Q��y�T2���|}��ҏR7�[q�1�`j�1����k0;�aMˈɏ�"UQR۵
eQ�T��<�)��A���_}`�?l��o�2��U	VO�r<�-������ugqVP�cP#�L�/3��˺��09�vuU\_�?El��������HeT@+���z��7�f0��o��90�Y�/�Y�&�٦��.[^K۴�Ζ���E�W����~�Xn��f�KcY<��1�fܼ�R�����!�13�����r��D�(�;3��W�#�+��0Q̲�b�T�k*㺟9Y~�88�������+`���6 2��u2�y��
��P��>���cx�EM���'��{P؀ܔ�^Pj�n�n�١���)L��Tx�{��~�&� ��Z���(Pѱ���RȔW
n��y����5�m_��A�e
�Q3]oяTG0$y���K3}Џ}���nQVc��E�@�#���9�T!��CS;��	�0��֏����i�5-�a�/�ؔ���0I�̠,�U�g�15��I�H@������V�q�/�Oڰ��v����AmU��5i��>�� �X�
�F�kF�
n�
\o����e�O������8�TE��͟wUĊ�z��?jf��ݛn�1��䌥���}|��7�f0��o��e�fQ�OeT�3m_�ƌ��z�QV�ƴ�}�Y��L��1u�R0��(
Yc�BZc�ʈ��k->�W��+-8�k�(�-�6*f��j7�gf����,���eL[$�(]���ې�h؜M�L��Hel�l��5�p�w�%�oˢ�m;H�-�1k�2�s��h�=8�u��X�2��uH]�K`�Z<�3�"R��K�-�$���I�$�&\.�r�
�ҌP���ǀ�Kx�=�p}�>A�@ǽ���A��1��e�R@cފ�η��b>2�����JX���"���������'!�����z�!?�f���87(h<��TFY/�a����5�Y|��k�Yt�������r�K��t(f��0�h����q��0��xsI,&��N�T�Z�M�W����q<�C�֟ɸE`V��R!Ŧԡ�a���ެLe�Ǵ��9Al�Ȗv�bKU�"�����}�������n��=�����pϮ��;ͮ��~���f��-��D�m�S4��~F�Z��I9�e���[g�1�E*f
jY*cd�E\a����^O֙�1�rܼ\h�R�D
�l
�*f�*b�/lc#ʢ�)ˠ�7���G�������*fr�Q�cI�c�=�#���x:0멌��s�x�8*f�,L([{V@�He�׾6�&��"<��+�lr�<2&��详�28�F��A2��,}�]ꌹ�0pcOiԕf��k-楊 6F���ըE��%�!�WG4�
�4��B[y3x7^]�n��Q(`W(`�i{N3����0�H�{c��֎��g�XG����T�J�$��z���6>���ZS�cؒ�`��Ȏ��уٹ)��2�W�#uAo^ӲcTϬ��'���
�'"%�V]�����X�s��rZ��o�?��(�'k�x
铃Yv���
Sj��.�
f��EV�wW��>���ܬ���S=�ѽڶ�~q��MW�س����?�
f�=�`��W��٬Jv�sv}��E]׮齔��]qHK6���PGУ�ɢ�f�p�zkq��j�߸w�^C�m�rؼ��H{�)"(�	���1���Vf�d�]�8�>�	ȵ��+�U��X���&�i�K�74)���f-��L`L�Ģm�r�aEJ��+;L��T=K�ԯ돡k�׼�<�#o=�xH��{B�����T2�Y@V�@��S�υ���+�x���ʁ(���@��jT�g��/�u�	S�vU��?�~˘��Tc-R��v/�t�|]������Hw<:�{�2U�m�G��CK�Ӵk9������p���n�& �:gU�e����yɍ7�b���3F��5��E��W	^Hs�q�f���9'�#W��b�!�����
×ϭ%����<w-ƫr5�$���R뙛NO	��#7� [`�!����)_eyal2�_n_��Y����&��6�����gl�W�f0���+k0SC}�ʦ`t��&�����Һ¤���r����;o�bB
u�W�҈�% ��5�=��r���<�|ܼ8�����>3���v���Ѵ-7o�!{���݉�1��8���7�>��0��礟�@"7��3�b�W��]�K�{9���X.�9@��o��䰥.l�m�|	�j��Ek����A�����F�66B6̿@�|Q����hT�H��K�^��Gi\u���>��~�`����(�49+!4��l����V
mY��2Wj6/�լ2v }���
S-r
Y����eǍ;$P%j=���"��ט��L	�
�Z?��%ϵq|f�ƨ�%��W�L�
6V�U=���7��H�2��Hӏąq&]�Z+���}��^�sݾ��1+m���gMR���g�^q����/y
f�AL��S�X��S�E6���5����؉��cRUL��ʔF�01!��p�6�;up0{�y�R���Vq�L��d��ؐ�2�-�\�e�ܕij����~p����e&��%�čg�YA���Y	fLp�3M5�Q�t�?n�tR<ʘL�(~啶���u�B�vY�fP��D���)	�N����]
S��Yn��}/��/��I?\{��*���)�a��|wD\5d�2��K��p#4��^������]��,�Яu0s��:ʪ��xP��z5_��e*~�0F�|��������A�M��P��7? ����/������Aق1˯Y\�}�ĭk�z�����LA�k�`��~b�@�i����3n��S�R�*5��ٿX=�����O3���/=�l�B�Nҏל�ʨ�S�i�5�E��ʚ�����9ȬL����@�lF��׭�-S�$�
�e`��a�a�P�r8[��i�+��X%�B�o��c^1�`f�w���3Le�y*�V9�1e1ʜ��7E��2�331�HA���U��,&Ш�Y'�)A���Ϙ��^�˧XX&u����ZgFII�q�^��Σ�L.�Df�%/��1�%��5|X�^7�6���ݠ�W˗앳Ҩ|�#��痋oцr���α`'yx#����iJ�!A.��r�`��E	m<o�p}ځ��A�����#�uL�?6���޹�f._:��>fB����dӉ��}���V��:���)i�n�k.�Vy�R���aF qS���C��m�{�=�'�~��~�����T���g̕�ٕ�˾�ˎ����Ge_���j�%װbϸfi��kӴ�V�ODfU�ԕ1Q�bB지�z_�e���,��������af9���(�ˤ��R�:�:�����Ǭ��<H�
�(��P��F���<�v�������Ɔ��	k܆�֘��''���6��q?3����O�^��kHu*�Tԩ��*�2�b�(��Ԭ�]p�
H+z�Q7��o�<g32��\��SΈ��AH|��~#�.Q��q��&1���ZOeL�$�QΉzv)�w-���ʅ4�Hm�m
g�0��@�L�*�Q/�4e� B1#���3�E-�1B��*�Ӻ�Ц����D����֒z�����#0;	D�l�������}��
���TƆud�)d0ݰ��
����$��.������g�^|��쳟��`CK�l�m]U$���a;(f�
��5fח:D��%W��_
DҨR�b]���Y�#p���~��tE�cf/6���J��	xAe�o0K0L&6�8�rl2]m0�E�2�g�]��YK鳧2�dҵf���0:�Ә��1[��qN�q�U@ļ?�l�
7�$H��LB��7�mz��ȡOI1�:�(0&����<�E�q}��韃.�T#E������a��H��ɠ�A%C�C�����qka����v3�0A١�y��u��'_�ۤ�.�`�ӿF4��:�Nט�١�3JY�L�Sh�N��Yc����9�fW�/��o�?�)�)fp_��Nv�z��	��/��&���f�
���e����y���2样��ly�|\ײi��6�|0���iOG�?��`�]1s_��WS7��_Z=����O3�}�3�9�v\sV�c;Y#�N�!Is�"s���jc�Ei��*��Ը���i�^#����k�]���	X�2�}+0{ްy����Y��TeӔƣ�z�S.�J�3�,K�����)���θW�I�=�JYg*#�0�X���o&C�CMK��&4�p>���
`X�"@���N�8������FT,+ h�2�#��eK�8FoF_Y<U���VU�U�x�"�3D�.�Rh��?Bt_���8�?
���{��oQ��pX������ys��-(g��)��0K�kIjc��|wV�ݪ��PFp�3r��HV�* N�>V��:��W��U�-��4aK΄���k�򹟰qu������m,���Q�/�7�!R��c���N�`��fc3�f�u�����g̞���S���l��h:q*�Z�g�X�ʸT1K�'4����Ý�HWy?��6^
�K��TF��:2�M�ǁ������M����7��[I�޶֌?YcV<�C��2R����8�3Å1L>$_39G��"�F&�&�AY���������GW�n�&.��o��/o(f
_�Mk&�2�X�6=���
<L�e��P�j�P��+�k��6ީ�p�g(s���to(��@��-���^����A�!� ������2#�5��9Y(af|�~�������2v6C3���齘����B&�H=3�
����zOe��~�`v�1�u;���?���+D��^�|��T�P;�������K�T4��G���в�0��t=�?��IP����>l���>�:U�jclc����=]�u(gm`�X�G�����sP�t1m���a�q��ga3��{���k�a��f�cr{|�C�3��[[%,-�/��]�6�-1]c��D��Zs�B㺆��5��	�=k�<=�+U,S���"��z��l3��j���%&�]�L%�y__f7
Ռ���<�!�
������ͣ��La
;gw��!�w��2�H�i�"���	�L{���@�AK�GX���9ϊ�H�½��(A�#ty�⺰K~�!m���Ÿvk�b��7�9q�X��C #nV�L�$�Ĝ#*�'�X�g�m˄e�wo|߀Ҟ����Mż�ע_����� '�A6��:8ԟS��pVD<��9>R�;���א�`�)����t���f�I��U��1����} <��n��x~���8Q�R�%����	�l�Z��Ҕ�z�relJ[m�?�LnxXڇ
��{�]}(f��K�����9g̕�Y�ٕ�Y�zVYa1���RU1�[cvb�E�[9N���y��o�����L7����-�T�%/�x�����G`6=��ߐ+U�"�5e:N�Q�
`�3�	s�ά6� �1��y���t���'��g<ˤd2*�v��[���[}�������xI�Z�[�7.G��=�f
Ilk�$B����l�P���
��lf
�$LX��c��je!����<
1�f�
ֶ-(��A�.��
H��$�6�@�2d#+w��T,�b~T]���:{�Y�O��<�FM�Ld�U�SG9F�8�1c��E�/���������YdiLe��r��7�򊯥5M=6hjHW�Uf4��c>�|�8ܔ�5���Ҩ��f�խ��k��el�ˡqr���X��~;[c���3Nͬm��=�3N3�=����j��\�R�����Ѻ_�;�?S�Z����[��S1SCS5����I<6ί3�	f�����򣭰-X�g�,��Z�<���(��|0jMm�V�1��L�j"XgƉ�H��
���
�ײ�1[Y��6�~.��0���'nml�GzA��R��_����C��H��ko�M�Ȉ�	�N��&W!M*�e��g��P�B���a��@E�M�Q7s�;x�H��Q�/^1��������h
0{�c�"�T%C}ؾR0�f
`��T-C�u(C{sfг,�1��CRq3�0�km�C���)T�N@�S�}G� Ƹy�1c<S�ֲ�dz��	[�����]
9��_5,�l�����;3^��a�e"����B �7H*��TF�]$�t���l�n��^p��i�̞����
�X^���x�v]cf�Z�,]1�K�|�,�{��֘���ɘ��]ט�!VY�
7>}���
��۲������hV(�~Md�_�0���BߓY֘	���e��T�n�S�)l�Õ7+�E���TG��?�t���v��0���Ȣ|8��.�c�"]���t�kT�Z�t�;=�m�ԧ�nSiԋ���u�s�����z�:R�����w�
�\����ųP��_bx����p�9�	����.6�{����	Y�O�HU$|���Y<�	le��v|�H��4Le�W:y����tSv�ɰ�e��.Q�pWX{�8ڔ�yp�He��S���Z�P���t0[jS���톷��}ĶP�=��uq�i�{�-o?�0�i*f�_�tr��n�W_t�?HO9�`�ԧ>u̴Mը�x����T�Z1C1Ƥ�Q_
n�v�TF�czb
f�f:�� T��%1��$�&�e��80{�8=A%���Pf?��6�f����m1��c,�����#�/�!�1}�q���.9�|T��L	yƤ0IY@�4�/�-��LQ}|�5(dHp�1S����{�r��LW�S���rsF�+��7�c)uf����������Tc'7{}�-Y�61n�B�6+�Dj&��X�=S�l��,j�r�	d"]����!��.xJU.���#0�E�<ֈɓ
\�Kx'��"����Ȝ�/�Y�<��TFs1�H0�y*��\�}r�8�3�ɑ��"V����z�h=��'�$�o0�6���]ɹ�9T���\���B�|]�IA���cc�X�><cS��ɏ3Բa�����CG;:�����sf���#0��d�YQm���䌁ٓN3�=��O>�b���V��R���C1��[q���W9V���0�Nm�Vj�Lʤ��(+0{�8=�-�K�b/�h���1qi���:�Ř�$�/�)w4��|��k�WY?{�Q-�l��{��\N����%k���9�*�Z�Gט5ܨ��ү�����`��'_�W�{���S���R�S:Y��)L��݃�����T�4�t^!�n�h
�d�K���h��8V]�+'4��9�qf�#vQQ��Ӊ�`�|�`���Ta[�gJ��T��	l�1�Í �	0[�R?1*`+š���o!|F*���d1����F��:�Q]{��O����&�m��Ƚ��
���8>��_�)3O�}���Q�f��L����Ë�10��/;cv�O8ͮ�����z����-�)��^f90����D5�6��J^��RWF�SaL��b��W)i&���X�q���C���8N�+�0�`&�e������A�lv]g�͉֘�=�Z���8ɀ3�#6���$s�s5��ٙ��`�L0��KxdS!4��}q��k��ћ��_�~���X�Cñ)���M�5���7�9�b��%��&��j��|RڮM��sF[�d����Θ�ҽ�^����*U�_h� l墪a|���〶��Ei+T�����t/2"�L�V1�;9T1�^��b�n\c�& k��d��	&`K M�Ls�;�>f:�iL
���
}�h��k�~��硬����LZ�$���0�4�M�ud��p�0ցm
0��Ȓ�,���O��̮�F������w�`vٿ����N3���}�;�XVxP:���� ����q�Y�{;Vy:!���H}�z3��� ޷���XV��-�	Xy���̞0N�R��U�n�W(|�J�h�A�gf���-Ii��;�5�M�w����e�|�'��c
`&�^?��9��8�y0ےr���Sŕ1�?����/j]��Yq���cS?z����R桥z��;�'w��J��N��hCqOn�x�DC����yİ�}������+�4�VcIC� �.�����h�;GZj��bW��?sI[A	����g*����G��8=��_���Y����%�Ɗ�Zf�������|�6�g� [�w��8����/|M0�̸�M}��ڲ�D���/��x����k,o_�ZF]�eǪ3l3H�b�f�%(k�*YR�6m[W�'=�Kܮ��fC���,iA���+��>f�9�`���w̖(h�k*�ŬT�m.���~��Aj�تl�Ķa���"���+c�j������| d	`	�	ӌ��`G�5��p���2�+��C��c#���l�Py:`n3Ur2�kZ�NZ�k0�G4�3umo�fn*cfLm��$pE�e�\���G?* i��T�E:>�ڨE����{�
O��id���Rsi���@��I�̀6j�w�k�:�\��j�_����T��b+��m�N��Y�(24�T1�?C�UW��I�_sr��FbR�j
tE!��Bd\`kB���/�Р�	������C֤17��/~������؞��׬L:N\�HS��hG��ae����?ѩ�8��+fP�f��i���X~��u��`֘�=�^�
f7}��G�f0{���}R0c[	9h�Ct]b���T0��E��)�:n1�iLU3J�G�a��/�Y_o�j��f
f������s��E��@'�6�\h�_ݤ.�5��M~�0�e��X<�9�S۵�����0�\�
�PV-��-&o�QR'Q~���І�p��t�8�m�#�3���R�	��M71>�+pE=T�x�Z��
\�
�2�P���Tc�1VMPp�-l��������?/A[��wlX����^=�G	��G�5܍6��z�v;�{�w�_L�{�ö˫��_M�JA��a�P�2�rl�2F�.�H��M�
by���l�]����-Q���@�U2[�Ō1���q�Y[�����uN�L}�����x>���ǿ�&6�^�~�V���e�B=�X~�z�n�1tÏa�ƣ3�ű�c���y���N}�ڵ=��dv�n6�m���CC�Y�����_u���z�i�������ԣT׊:9C-�UQKղ���J:�y��oUYS���ԕQד����T��Ә�Xe���7>z�J�0�E��gM_,a�:������kꧡ)�ʐ��������G3U�Z�f���hF��}"�i9'��yL��.�Sb#�!ݓ��\���|�ڏ�<���dK&#�&@�6k��a��P��i���	 �ɀ��Wu�4n4�͓=���� �
���~�E$�[K\�o@�zA��ۨ6m���g�d;6¦�^��A���$ˮ���چ9+�Y�/R6sPlj3��%X}����o�2*h2�a��'�\�h���͡��#�������[��sV�M!L�-���B1S�h����9�#�s|v�ʾzlG}[� nZv��$P�5bB�]�S��e���/��
�5����L�Q��zr5���(e]�2`�ǎ��XC��2F:c�b�/ʖ���P[��x��F�ʄ��]��#03��%ϧ�O
f�x���졧ٕ�|d
fQ`���XW0SSP�2�%���P��E�������TI�ͽ	�����
b���d���#��!�M��ecb��~�Z�����µg2�
�a�_)f�h砄ѩD'�XK@M3��>'�T7�N0S�t
�+�3�5��=[�����N:֛q�];|����:)O�&@�+��q
R�]4 L�_(C 5�`�@6Y\����
��	P�rPiȉv�g�*��G
V�E�٠-��mA`Ȭ��h�K��]�#&����P6|�����w�%���0�6ƣ�h&=�k�b��?؏k�nMD�
YcʢGč�YdMbԸ
Q���T�t6ei�lV��c�Y�g�UŔ*���db���l>c�q(�Om%�%}�,�i�!��C����Gs�5�����F ��m��)�@��V�Z]�[����m�b�fU�̚��F+(�>f�=�g�.������ς�ܝ�)�euw�P���Q�E�A\v�yX��i9m�Ɲ�a
hL_$��:2�^YV�
u��
�>N�U�~I1�Ye+��r�Iʲ���~�A�S댕�Y61�ffr�}b�`�dfp�s��X$`��'1�0
�)�A�D=��2c��z���+T��OTm+{2���A�X����x'��{E@��>���T6��7S�
�#� �>�Z(��<�Q�M?[\
��1�VbTL[l�*w���(%:m[���!Ls�"�>ڮ*s����r�:�J��d�����6ѹ[m��C�Ln2�3r�I?�#�g�j�G�M�S1;�F���11��^q���#6��L1��z���m�u+�L�~h��X[&jY���K�X�4�1�$6��g#��+m?���ۅW�������}���|���f0{�C0d�սBڂ�E�%���ؿ�C��2w�CrpR�9��X���/����2Z��kǶ���C�`)�IZ�*k�C����*`Q�z�tj��d�10�TFW�AY����tq��c��ZA);'���*�O$��k|0�f�8�@CE
�D�����Z���@�,�
�nM:	״F7�P����_�'�[��

� �j�q0T�������|���p��ο����O����Κ�H���0�\`N�U1��LU2����PL�l<���ߵ���길R0�Yz�f ��,KO��Jzc�>�Ġ���):�m~d�z�Q�|��k����H֓��Ih�X����_�2�����/*�� V��j�6����x���Չ�,�*��i�#`�&�֘��dv�-co����bq������7�����o�]x�1`V��k����3f�?�`��?X�,��y�:1��{@�\w����T?���q)�U�X���� R��6S�U��Etf���߷jK�}�x�����JD�%���G��~���H030��*5�˺t��u�����]���C�(�$�\��ި	�!vQ'؄:g3�i=0W�F>�a�Y�K�е��%�>q
f��/7P67��6+8��I�%�R������MѢ\X�Tn��T�Դ��Ƅ��
�j[���x9f���
X���n
J���jFA�H�F00X�R� ˿��r�7���RA멎�/��)��gRg��s�w��X���iQn6�r��Xi����&1��|��p���TF�4Sc-Y
em}�A���C_3��;m\݃д{y���E{���X1�ǁM���c3�U��q��d�����R�rk�����f���0�
�g-}�5f����v�쾧��́Y�Ԙ�q���$n���W����fYS,��'�_���?ue�&Q��R�Nm
p|�`��a�o�G0Jv���ό�AW�
�,��4�n�3cޕQu���,FD�:�ޤ	��d)��}��P���/�m�uPs����4k�I��E;�̏I����s�D9jSq��K�f�mj�f�3�=|�u�e�ZW������׍�@,��'��	l�?��%ΎQ�+���Q��]�N��ƌp\��5n�ct3�pe�ד��ᬪ��4$`�	���*iq*#��=����8>#]/F J���qX��X�fLb���P�>✭)�ꚦ0*��b�-�:�&��Le�!��;C9;T��t��mqz����n`6�j�o�Hg���w�1W�{�fW�7��M)��y�O&�
VqVE)���ս�l��D�$mQיY�5]QAO�#�e��N3~�ǩk�~m/UT�U���{_�^������ؘ�(�J�\i��ȋ��Ic�AU��`���a�Ŭ��I���.�"�7�zz��DY'��75����n��L-�����/Q�
�7	|���d,#v�^���^3{iu��G}�]���U���I�}������w��~��ˢ����L]�7�5cf���.�C���`�kX��eܸ(gE�(+����-���1ahf)RV�}��5e�iL��
Ém�t�������8��:�>/��/`�v]d*ce�?D��Fk�LZS	7���ʘ��K#@��Y�����%�Gk~�o6f��̾��ڇ6��L�3U���7\}�잧�^���+�Y7�8Q
cgT�����qݟ�mi���a��V���Y���u~p��MX�:1��H�U4�=SE�.��?L�T���f��c���oXU�ք��d�QM�s�z�P�#��k�H�'
�*cFP�T�l-`����M�>�L0k�ŗub�;:ʣ��z\�,}��Ԛ�%�D0���g�T�|�z`Ȳ��*E��U�C�YΓ��8��,>�������q��Ŭ���?��u��*gIl0��%�q�1��8k�|lK0��(k���73��Д�M���I�*׫%w��GҎ�j
fP��#�'��;��鯛�OPW��ue�����K���*�0v�׋�P��Rc����}��Ql%}G
$M��4����^�	��=����Q�̯Q���������۵�j6X�[�ҹ_��;�}����^���	����"��Y�<��#��k��m=m��
0
-�@�~��b�Ps�^C�x��g��<EU�:��LcT0��`v�a������f#8ܢ�ǭ��ّ87n���z�G��Y�����ǃ�����2r2q�5y�2���ۚ%�Y�(`lԴ��vn@W�ά�cb�4M@�.���&:�w��������x����0��I��ʆʘ�U��g�Tӎ3c80�{�vS80���Z	��9��L���T��Z?��q�v(�W/;n��e�)G�`v�7�7�o�q�g�����m^m��<�{�
�
ej��c�	k�6�<���ٚF ^�YhRW�7�1�i�u}Q۷5��jfܮ������q�{�tWƏ�����]O3�]u�U
f
T�d�8
��� ���*f���/]	i�3�j*i:�O�$���l� JW��͘J�����i
f�����a���HwL��5��Tp�r����/
�ל�b7�˗�ýD'(}��Q�����I���?>�	�q)�y�����7�c��+Q�����=LMAb��w�s���<Qb��9\D�G��!rCd��LH���
�����Π�T�mj����{��]������OmC�I�l�p[s]�~WU`�L�/Qr(C�d�i'��"��)i��)�I9�F@L�3ǗC���A���"�Ƒ�/BI���������`6_��Z��Ɔ�
��[fh$惚`3iIat�O��(j�L�l�}�ԩ�3�fA,�����|'h{�����?Յ7�����j�e��a社�}�0���Χ�^�רV*g
$�Z�Zq��S���^]rm�nǔ�$�aU�����cT��O>9�^��fM�+kK�<�ۜ��|�kp���d�X�����+�d�us�
�%UТ����/����������@Q��mX0gB�r��1��%��i�@M��E03�2���`�C�L\Eh�L(c��w�c����(�R�ֺ�����w��Z�k��%�Գ_,Fy\���y��Eb~�=)p�������X����(��b�%g�{|�ܚ�2򦐬,�Q�0�h�A��`�W�O�e�8?BBʞ}��hk}k�6u���O)S&��:f�~˝lޯk�rH+�
P+׊�V .�g�71��lr0�L7|V80�r��&.��0S +`L��q�Q��f����>v�����V$�3�`�I����1W�;�fW�{�����E��_�*9�7A�@
_�\�L��%oicvQ�<�V�����EY��Sp*��r<�E�����t�X/f2��"U�&u���҃�3�DZc.���P���z�lA��Yܜ�<o�m����`f��]��>"�1��W��e�2j���-��N��j&r����y�5H��æ�O�>xۛCSc<�Z&-@M��F������4K�5��x�<��*c9l�r
J�T�h��P�	��!u�P���a���<>BV�G�b���Ȣ�+#)S	R'�k�t2���ֿg��6�����kլ܃,U��0��b�=�w{|ub�X�ԩ��	�z�+#���J�@V�9C›�=������"h���쟛ُw0�g͆	9Q@����({��?|����~�����@Dl��g��nQ�5fzM��])x�)��<�,�լ�)��,r|�d�Yi8�@5i�/�Iճ�݆�N>&��x�c�)�E���
�Xf3��*�u-6Z�Ʃ��:?�1BĞ�֊TF5i���~v�p���MRk�1�p�i
st7�5f��hW)B���6�Zv�~��t0+�6��br���n��ĺ��	��M�9��O�We|��5\'0��|���œ��Q��Q��d��í�a{���2�ϰ�HS��T�
�q,�3�1��Ƥ��?1���^pKۨr&��cRL�p���
f�7�=��D��B���=��6��c����<���}
h<J(S�>
f�����I{d�G��+Oe�`?3*h�Z�ڱ���S�x
m����}����K�u�o�l�t��ŷ�c���G���4��]�z��餛G�����tj<r2W�:��m�i�%`6��c�87�Bu����sۊ�kŘ�~�MXY�UҎ���]��6�I�[�O�7��o�[���L�d��)�u�k#Y�����9Ϳ��FuBLi��L��(�.$)��<A��+��#�bδ��R0K��ߒ>ܭ�
[<�n�\��5!����>,�1G��굇�JG�¾�	�3�c���2n�]}l:hR��k@Gi���S��;ߎ`��9@���2C���Nfcy����v�&s�dC�+��ku[�4���K�o���	�ZSV#�2�2�X�$���'Y�ƾ	������8^Yo��|*c>V�[�2૴��Y֘qMY
f-�l�L@G��e	TΦ��R0C<Me�7ɭ��=���w��w{��]e��v�?�Xg��-��h#����π��֧��|�;ρ���f�h� mѯ~���4�s
��u �U�`�H�Wm�+5��e��I�a[�i�ngR4a�&P��Kl��L�Dv�A�ՠ[cC_O���$�1&�>�ȍ �P�H��F&�q��R�0VRG��WՌ>l���6�
��=�~r�o1<n*�9W�t���[�2�^�Kڦ`��Y�9��[�v�Xq[૶�G�hȺ,+qS{h/eK�����O����8�+97��J6$�c�TFe���P�hk�'��*�1U�\���ӟ[�Q�����I*��xqetAJ��Y4 
��L��ɺ�\�s>1�#��wy�߲��V��~֌թ�١`&GbZ�)��m3X���0Vm̬���g�4��l{�Z��`�M
f�C��_>6�w4տcf?
0�pe�ײ���}�>y�얧��x�;�`V�5.^oV��$��/�1��r.�PL�=w}�E�� Mb%��DE?;�*[�M!m�muDZ���jו��˯��A���W6�����]�~���B��#��"��fG�(`.�U�91��pi̡\�\�x��peė}q�P̦䉌е���2���6�[ܬp���K��HQ{[}=���}�t8-�u^L[����5��ga��b���n̝܃^��j��֣�j������cSi�+P�j��+c
V�V �c}Y
j�v	l��y:c�#�ȕ`֏I�[%}ў���&��ra�"�BD�dž�&e����!:��%��ܿ���?��-�JY}�Ѓq���$�`F�lr�iP �#�����%��3�>He,�jYQ�5g�SE\i����g��ٸ�Ou�]s���o~�]_��/���N]��'��6�+;�:W��i��[~,�Ԑ$�/^��ӌ"��,�K!l)��al��Q@k$���BX�qеs��p6�My��i��Т$�f�`�'�aҙ��I�FY&�g	f��D1��G����|'�*N=@oN�CҖ����ݤ��
D�H�kjV�,B��HV1Y}=6�uo�F��0
0�u���߻ZպZ�\&ךz�TH�0�qe�<$�J�9�
c�Ԯ�߼���7���!q���q9k��w`�>��Ͱf�x{���5d�Y�B�Q8$k��tņx��b_���Ü�f�+nP�2&;O��%L¶��Q��ȢL�I�x����J���z�JZ�1�e<NR�3�$�Z��ҿ��}��qxE���%k���'m9�
�c���P�D1��s���i�
e�@V��[��,5A]�vnD��1mˡ+W�j`{�����R�l��
�`�>u�즧�^���̴iQꢂ�i�f�U*N|�
��QQƗ�%m������.R9 ���Q�UM[�~h�̀�c�36��98F��q��o�������m�;b�7I2u���in&�1�Ml\{l���< �0 LS5e�j�5��TF�8�P-�z���m�FW����x>'�^c�Ԝ^!c�tɓeBS�Z��W/��P�6��*s�lɫ����E܂��ԃ�<�+��<��d��Y;�[[β�lJ�'FMP���,��DQ+�4�e�t�X��(�T`6�q�܏�%�,�<0�ǯ���WAb���l���WW��o���e��}6��(a��	��o��bQO���q�	Ȕ�Y����2�C5ˡ�3˜�Y��ZE����&�hf?S����]���3��ٍO3�=���W0�,M9d�c�7�@��/�@��[#�@F��(\,J���s9���+�
fUڧ�5�rֲi��yr�]�-Y�f&��*��vh77BXp	]��a-�!<�&��4�q1	A�3�[�w�I�d�\�ښi�ȉY��aܥG�!��YT̢�<�
�(f�D�h"��T�x���"�!^�c%MҦ��ަn>�/U�j-�5��<���)�R�,�7����0�)���Q|G$�Y�Av�����*��m�Y}9`�}RAI@n�A�a򮡘���*��9���nx�ˢ���͉��D1���ܿ���?�k�XElH��XU�4�e=����k�L�&6���X�cf�ƈC!-R+�F֓3�
`�� �m_�r�5f��L^�'��v8�/�L3���K�E��o��/=c`�E�̞����`V���|ꢜ�@i�&��B_u�vܽ u��9��pM���T�T��#���Q�NU�y%�q��^�٭�v�����X/�����x�:
��q!a��8U2�t3}�4c���cc�7��e+rz�ra���'F٣@�*c�����TF�Ƭ QĨ�����_��r��E�Eʢ0��{|�t��$U����`�S�25I�K5�ޱ�8X��x�P~l���d�<�pn�m����w'�꺺�x���-���Q%K��%k�p=�{��Pnq���|��l��s�p�����I�����M�
K�ʙ�~�컂���LV�F��L��d}ٶO;Zc6�����DF�X��Q��z�=��C�P?zM�Tq�x;��`keL'���d��C_��ȍm>]�z�J�rs��qQ�`u*#a͏ΛA�,�Y*�ɯ��uf�4�h�6����A��>�eU�J0s�E;ц��_f�&/���Z�����v����ۗ�10�_�̞��,3�����C=v�zZ7�;��O��}��T���ҔJ�J���C-�M���I���w�g��1�ς٭�v�*ڐ@���GL�(r��6dE}�/����,u���z�C�\�h�6߶��&�G�zܠШ�R�F��[	�qb���H>�2��������.My����?�:�%�-�E2�<�i{ ���Wm�����{G�58B�ڵɼ;*�ؾ�-�t1�!�k��.��]p��ɔ����婔��s�^滙D:�I�j�/�9���;�5p������13ԍt }��3�u��i�O%L`ˬd��}�Y�k'�ҔE�p����`y?�QV��}=�n���Ț��Q�#�Ҕ�JX*���&�/j^�ǀ٭?��}����p��<����|�N��cq��P��������r �r��N(C�Zg�)�
�U��~Rs����>k
kZ�,���n3��)O��k��!,ltᰮ��R�1n2���gl��q�]o~��ٮ�y��r4V{�)6���jT}�6s\<)h[��*{�E|����.�����[������.:�5������v��<OW�f�`X�[Tp!q"0u�`��i&$�A�����9��^�=���]�
��G@�K�".����MX+1�1��3L�R�������	�(U�.����
0Ё�Ƌd�yB�R
7�'��8:R�w��^ؔP]\&d9����t/�1��B��������b�ҡ��D8M�E�≏�S>s����3r�Y��MLMp�un��3$(�8��D{��ئz�
�M&(`���p����&_����|,0���C3Ϡ,Q�l�������Ǟa����b�Q{��y}>��%�Q���a�I������2�l4m��՛Nk}�8AL�b�9Hozޜ� ��If���nBWF:&1�Ѵ
��LGǧ��W�1���v���7�i
f\���S��֕i7Y7�@R�R	Y����	pL���5��e=?c^��b^td�S
?W];v;������h���=�7�E���V�6���)(�,���
�R0Ӎ���� �1;����Y�l�n���._�V�;�8ꪜ�,�`V�v‰)�����=fVRPZf�.ϼ^�y��E���|�6p��׋�����(�<���O����eR;z�`���g�._���_Z��w@���>ٚk�z�����~��������������w�^�:خ�'�ț�z_kw�":��;Ki���ʲH��X;�1�]i"�O�l���Y}����s�k���
T/��?���4�@��ܲIfT:�up6��X�P�&��_;�i�ǚ���%�p�����#������w'Mӟj�\�M�רd���
����8�f�� 3��]�Ό��h㙠��F�]p��C�30�?��PIרH���Ɨ_�pu�Sg�����O�=�����^��ւپ��y!Mk���m�� �}��
@�?W/�ȳ�5e��C���y����ncP�W[?ڼSϼڔ/�/S�b��y��gԏ��E��2�̘�!#��#"�#*#6��ӛ�#�LA�B1�E��U��,���:Xn�����B4�������3{4���ϒ�\R�qN�rbѱd������D�7��@I�J���*n&s3������犺L)"��F��0X=��'a��]&���_�D�|l�ft��樊87�\�A����34��e�a}R?�Q��3�ˑTy�,�Flf��yB�2fV�cS�e�p=F�V_�=�ўI�ÅM�4�9���\#c��ޗަ<Lk�A�u��D�N�ӫ��k��$��g4FB�n��3�=�����Ȗv�ag���ʨ̠�Y ��S̬��:�Wh[��o@l]��A�>S�S�È�8�?��<�a�Y��g���̞y�`������>�`n������3�שT��Z�~�08H{���t�5���kyu�̎��u_�_/�M�<
�hr)�dR�P�S���u0�d�z��Ӽ<�7*��*6~��d{ڄsR�1����C�+�M��L���r`+����,h|q��rF;֨����O�ℤ�4��F{��V��7�\6~\���Pz�
F�:9�&
�e�{qvO�U�;%�+ ��:Z���S-�LK�=T�&V�a0��Sm��9�1�ME��;i���/��!o�c?B�
������$�[z]I����~a�\�i}̊�dy�Û�#*�-�\�.]���a�d��&d�5P���.~��f�6���bx1|ö�^��D����~s�`�:��9��O4�����(+3(g��4�KVn4
 �|�:�u`6���^OP#��OlljY��^"�)������b_��ˎ/�T�|�`�9a0۞0�=���쪫����Hyy��T)�#��ý�/�>�=&�R޳�T���
�S�av�c��š�5k�.��Xܳ��	��`�*S>�����4 �����J�=��_�s��YL��#��#�e5���z8	^�U��9���gXް1�]1�J���� �%Oڀ"����B������H2
'�p&�-U
h�C��1��/m���%�Z�/_kT
�6�4
���+�0����U�g(��I����/}��HT¦��$���k��S*���t�/֑I>g6PK��|��֊O6��40��H�Ѷ���V���Պ�A���K�c`�~���%޹,ړ��P�^�#�i�f=����
�y
�X�W2*g��Җ1�2[k&��8�uf8/��y���Y"��r���U.��V1��^)s��%}��v�Ra�Y�͆���z�~���lN8��V'��z�Q?�C>��
�h�]ל�}Q�m�5�H�-��]�_�@��=��GXa_߱�.����=Κp�>uU��ڽ۾]p�f/��ٚ$
D�*Y�)�'�����_�K>	_���/]�M8�+`�P�@�F��:f/&��2��ABLf�XO�>l�|�Bx�7P�m�'�G����f���q�S�"�f�i�'K�}����YԯL4�Kͽ3���'P����j�l��+��VY������O�x�a��Y���6����ˊE�)�򀭹\��(ӕ�-N��]���
���\�����Ǯ����M�%R�+ԥ�~��/Sͦ�4԰�
�Z0[���q��ni/���/�I:�֖�Tl������R^�2�&�+e8RA۞�� �jY���WN)�ŵ~fb}�/�Qg�k�,\�S�>�>�€�ew3�Ÿ��@�*q��j5��'^����ޅ/�#��M��-`y�.�]�˵`���gU�qL��M+ ��ܘ4��=H�_X��K�y�ũ�?�SGJhN6Yw]��n�g��ui����d�)�.����c����
7�Ϩo���v͓��0�R��_�0j��<�*!"!�^x<F� �E,�ʥo��X`?3�oͣ�ؗ�y�
b6�dd��������P��/��V��~�;&�+�ڧ��IB�#_}g�h�PW~
Xӝ���6&��g�`pK�3��g�+u��'�����}�e3.���ާ�V�Ŀ�+��(R��#��'�P�Y�^����m]��Vftu�|�#�ʈ�%�-�b��‚}4��W�/C�Q���]-|~Ja�g�%�L���g�� f���)>�ze��"n�A�2p��w���?��8e`��C���PDx��Q�IPޏg\�
8����uXp��.~��g�
�8�C�j"(�um[
2�}2�A�������y��g݆�0{ޔO��H+^6�b?z��>T��J%�ږs�5�﨣R�(��?&g�Q��<�A`�ʈ��_� #��@��w���Z�l
e֎�l���O�.��+[�
u�3��vCPy�C�����eh[���s�
˨\%}���+Ƈ��� c��?����~x��������׹r5�)	fk>���Z��%��YZ�-hH�@��e�u�Wq
[�	��3�%�|�
W���~�N���9zd�؀�}�3�'�9��~x8�~���5f�Ed,B�7��U��o�N��҈������/Cϖt������RL�+���ng�[�̞p�`�B�:լ'��mT�8f�ˣ��uÀr�ͮW�y��8��h�x�5��%�0贱�f0&@^�im%�='���Hpgt�����'	axZ��/LD����:�,}�13����%@LF�-�X{�O�Of16-��s�k�\)k����e��S�)�G��P��5��<��	�����qkv�#	�h��[�"�'��dM�(u�7?����U�n_Ȼ�0�|�-��>l��~���6�g�R.�hI��R�`֣b?�����HnA��#�MJ�5�?�*�6?��[������H0�jm���e�R�jci*e�l4ݯ5�f��e@+֛Y�>S!����h�ϓ�m'_w�r�$5��2D^N�$f�m��wNA�O�;d0{��{���E7���W]���z���:[���`��Y�j`�6*��O{y����k��D���צ!�~GϞ�Tm*�2�!�X;�T��`�\ch3ϿQ�q�rr2亱�]�gr2#���ɭ;������4��IY��>l?_�h
�:��fę���[� V��=C��/��H�f�1~<��ƌ�q� �M�+`�]��lO��0����c��~�}De� �א�cM ��J%]�\��E(�23sU�qVK}Zj�>6	f]\gfy2'�1��Uz��$�A�+BD��XH�
���g�����Դy����bh�f߲����̔��7�Lv>!W��\�k���fTͨ���mw��mz��x��0˰(�����7>��;eQs�Q���g���.���t�-I
����AH��P���ָ,v�
ŏ@V�+�kct�կ;`�V��gMz���J[x_c�J^T���<����W:ՑH�בV�&d��($l"��?�S1kl�2��;��(��H�U.堁(w`v�c�6��u�)���H��^���/�>���"��7V7��C�[c�䃟
��E|�T,cmcfn\5����&������Yn�4��7ƌ:/�t�ٚoV�W�Y�w�E�4�r�Bk�3���/u��d&D]$�1�4���X��H Þe�b�ܻ0�v-y?wjY����7P�%e��l(}�5����va,ס]��H�W�L��b֮(��2�5��O�>f�>d0{�3��j����1�Qj����k5v@E�rf������}�[�M�5�Fk������f�߀�3&=��ψ`���X�i}���isc}��fl�?f���MԊ���`f��x���ٲlC�&(f鏗��ˑ��k�((R����s� +��(��@�z�C�{��2�>2���,�)"���S9�؏�B��
�w�c��Ȱ�(�t��͒�m������>�!�b��z�$�Q�ds�^����Q&"��ն\#l���}ŗ,�T
\P�&l�U~��>h!��*W�+>%<;L��2˵(S�s)G�0�
h������V�o�ե���03WE7��~�h�n)�Kz�/�6��Ӧ	���h�.���2��E-�Ƞ������fk֙��k�֩f������Ԭ�I�T��'0��X�])�y�^pVx�쑇fO{��z̪{�] W��1�민�����+<0~g(��K�h��v��i[c^e�j<��铞��ES�*\W�}�a�D�L��%�ȋ��
�
��=�֘Y�@��~s�/'B��:���ai��	g�>l�҈���[}��r,�y�#m*�# ʈXej���e_
̑�ް��"�l�H��'l]j8��I���I/�8�V���,�y�uR1:�a�l�Ї��f�����E�]:P���WyM)�m��O���|%��{
��q���1�1q}����L
C:w����A]���w��K#�7v0�X�:���]S�ߍ�H����M�'���~�b�Um6��BƲ���zci�Xka���ٜ��
]���
�kͰ��se�|�i�圶�����%�4�
��x[������g���|�r�X�ޟ��Y�y��~����c���C��<�);�&����kʂn~]��}���ƆYR���{���rm��Wƴ<�#��<�*�Y��<��e�珞2�q�%�p�U�` ᪚���Y��RN8�ql�_��o�3��V�(_�A�Lse��j�dZ�Q#�JW�%U�������H�;���f��B]��a�q{Po��%\��;s�	��{F��>�n}�)���݌�
�}g����0���_��8
s��?����w��U���6���`9�q��l��S�����-}�ؒ������
�%V-p� �_p����|����ȇ�ev�%em`�?Hݧ5/+v�`�����6���]S������'���i2w�Ȭ��C!c4�u��=���ҸM�e�p��(�h�9�O���3�I/֎)~{�Y T�CW4n�*��ǟ՟�20{�!�ٓ���!�
P���1�DZ��{�$�2�Y����5q�Ϥ{f5�;�G��GO��X
F)������� 7Ŵ|��6OT���>9����K�,J{Xw�أ,;5
`�8V�V6�xl<Ȥ�+�u��)���{Ȑu|{w�����H�����:�ܧp9�4-�vc�Rr��������l6^#p�<�w��H�VXm�&���*���O��c̍�qGR�5�m(���,ʆ����\?�*�g��{���殨��j�P�<�K1�?���G����G!(lQ�
�_��#�8�O6�\!s���n��������>.�A֣���h��=?�v,G��)�<�rɇ{�.�����i�Ҥ@0��lfm��`z�o����7"��l�/ߓ�PU�2�-�k��|���j �dMT��]�3��o8=׀6�g������,/s�2[j��K��r�r���%ѓ�P�
����S.�!���]��]0�a�}]ٷ�樯��1E�p�aK۷��q�u_���ݱ��̞8��CMOi�3�2�+C�(�����K0
��gC�g���0�/Χ�ٷzI:)��>�(&(���(�!��,�Ѡ�0�_��C��d�uy��5�zM����a�uQTм<:b��@����#�M�S*��
*���ҹ�����*���k�YNm.�.�
ܗ������`Fc���_#��׹~���D������Y�K��ZM���4�0S�������6lL%-8!Nt��GT$��&,u@6�vq}�����5c�[Y)f02�:E�na"�{0{�o�4}�6�7֩av��n�2C9��Ж65��Ph��ֺ2�_kf���یQ{���8׀����F��s�r3����6X�i��t�K��@1��C�wz�wZf���l�5�n\key� �j�j�h�u���ț*!E�_�4����Z����Oz$YD#�
�y�'�yr�	������Xl-R�v�ǁ�T��O�[�$�X�����~�eꇘ���h=�b�0�=4yY�ԙ;�?�=�J������E��A��^SDM��X\ř���
˂W��7M���z���zD�Gk�j��f�#�X����6�Ή������̍4ܧŏ�`�Q��ϭu
������X���X����Ko;�):Tl��vc$^�D*t�仔��I�@w3��N(6?�isUb<�Q��2�?O�
6�@V+g�{�26MoMk\M56�u��h�lŦԡ���#ſި��
�s��.ۭt�Y��)����f���7Dq�
�i��)Lk�~Ƙ���ʕ�-c����sQ���)|�b�r���VE��hG����E0�ޤ�2�|(F_g�̐��m�<úm�l���F�
�4*�+�R�qYD='����nZ �֕1�6�.�M=&Y�l�<�J��5(��+��m���-cY�Awk������V]n�„�X�n7)��a$*Za�T���UP�9����k�~(�o���������$}��cE@�(�	H�T�����$\�)ic����>�����G�h���>��DX���piO+3��&�Z��6�4�6��K�od��`k��7ML��M.
�8-�B��`֤������fs�yך�+j
�9�E@�Z[���j�Ǯ�?��LF����֚�\(h�����I����e�-���|i?�x��l�+�I�7F�b��,����)��2���ۿ}!(j5��yw��>6�b�k���i�{g��Ր�'=����1���Z��, ��h���}I��])C]��ਓ���(���$a��
5�M��L�H��Y��`�"Z��5B@-l���l�4�
���N��~�5����eѱ"����������%�D�ҳ�G��}7>�<cn�ra~tX5�=�\�rA@��l�B�r�T������e���lpf��;��a�6"�d���G~S�,�a˾{b'�.@��d/�`�pcU�?$y]����(�яk�\�
|���7�>ĥ�Y Cx|@5g*d�gg=�ѝ��_k�6��se�9f���O��U��D{���F�f��,��G~�2\�E��oO�����m�m���
t���2�U�p�v
�:��um/ڔ�k��c��Զ-'��zP�ُ���GMz�1(�a]�*�<�g���buJ_��R.�xY
�$b�;�֘aY`Os��'��X�e�̂����l}��HK[o������dD���Ph�U�M��~}�&E�,�/Ge��൩��x�ѿ�d��}�q���7?�\�����c�6�N�P�]��x�Dxc�O����La[���>�u�`�ٺn��\��lk<⭏��*U�Y�-�ξ�3�q��?M��l�lZ�o��ed�Á����__�{�|�32o�?�*�̔�f���3y[��֒�A'�����U.`vt;��)3���rT�G<������z�X�f�v�'ǵJO	�u`F�D�M�C_�ʾh[�o�a����9�AT��"���M��u���Y�l@����+i|xn���A?L*f+�$�th��g������0�����9] [�,�p�J]}�{+���t�k	!-�܉i�<ȇB9���vX�İ�j���H)�ވ۞�D4��"�biJ�3S�9l�錇�T�7�N'�����G��X�e���I�����'M����LlJm�OJ��=��z��@@�`��]̞����"��a�Բ$�Y��Sa�f+/�9�}F�}�`�W��E�,�6l�Q���B��~�L���P�hY��|م<�o)���fgcb�`�8I=��ᚎ>�@�6�+��H���akˊ5d�m�K��ʎ-�a	h�F5��<�{���@&�;��P�>H�g�R����t���G0���ᔅ˿�!�����U�l���f�6�q�V�fm=�5��[�%"r�gv�ᄌ�>n��z ���q]لue����L�e��75��Y
����WP��9�d:�ͦ�%]�H�/�M�>f�P����B��*[�1�Ҋ��k�uO%�լXo�9���‹Y�Pl��klj燑編Z�ŋъv>$�$;�;�5�beg����9�Qd��U#1o�����&,\��Q��nu~-~<�nl�������P�7���?���@U�4�Qڬ.�3��Ł6Β�f��'��w�o��g�a��OV��Q1�:�6Ї׽L
�ז�Q%7@�y*em�,���m�3C�;���f^\{֬7#����`V�ˣ�S�m��{�O����}h
��/�&�q]\:�6�ׁB�&�̾�>i�c?�P6���H�5D��}��Sf
���4	IY�[�-�Ư[&6�q0��ް�<��rfxT�Um�{8rW�̆8Qn��f��"���rM{��`si��,w3�k�ywIaj�PS|�2S�\����B���gX�,����d�@�\S
�]�mF�A���`�p����'�
6���2��.S��چ�]�3�ᴕE@*dȮ�X��Y��4j���[`�L�ǟ���a�B��ڬ�uNJ��>p�2������g-~�{�f�b5\���,
�2����c~�ue��U��A?����Ґ��e��bQ��'��I��Ӵ�d��-�:L��uGC��2�1v��١�ve��26���,op6��b�P�d���B��/����`{��=H�|���f~�{��z`By�1�3��k#�߹��=l\5�=@u��j�N-�=8t_M�*�"�^~�	����Y�6r+��ZH��3����G]r2v�K|�J�k6fK�,
�By������դ@�O��������;a�6�cU�5w�R�g3�c�P�H|��Yx��O����g�!�>�>�w�Z(ænsP6��
�g�vG�Ay5�~�g�#	��{�р�2"MtL6�1N}��,p�y0sd�>��]��㴔��U��\I������\϶x���K#�"������8�<�!=�8#�u��Q SL�i"�՛JS5�����7a�:��5���7ͪ�f�1�8�˓�2���r��o��؇��6�Կ�20���|�+�T�T�V�E�.8f�:�k�jʽ
fϙ,�>k֯��[9zP���"��ׇׄ��q�uQ폱^g"�i%��z�%R�0�txl��RZn�K��'B��nfa31��z�����i3�~����v{ؼ�1���+��%Yc���j(K6�N[��%r����Tpb�&c�6c�^V��h��6^f7\�A�'���m*��q�k$d���D�Ԕ=��t����U/�Cʤ�Qm�7��|����U:Ә�U,���%���^���-='�2�"�9���Ec�>��>L���ƕ�2S�L5s+�0fm��,p�e�|�'�����n���ָ1������֯1;y(#�����nE1�<I�vʢ2^~�Q���x=X�}E��e���X�����ֆ�o�@����ei_�	��9�AE�y����.�< tOMh�X����� �ή9�/�;p�m��l呇@��2�/�M��]�$���'�af��>����+
Т�@c��^!���M�8;����^~��<�Gr�S��ֈ�{yC4�#���B�B[{��h<�q4ׯ@{�z�R���r��
�+�5�{e�z����걏\�5ẾP��8��6b-�ֻ�)b:�����4�E��tq�2֏�5��H�J�|Q~b�|[d9R��R��
�ߝ�~�h?�BRZ=T7�6iU�h���迱�0-y��L��ݤm�-fH�����הu�-L~���P��1�{Fk�ח���w_g�s���ٰ=��I��ޜ�>K�`��/('_-Iʁ3��Y��Sf�2����Q]�a�Ռl�ա|��T_w��Y_G��úr���?t�H�֐��Jْg��]w�WY�7���o��6�Q���-:Arlb�3)��$�2����V�ky>�w��_�%��e^w�ݤi������k��iBPG˔,
c����}ɛks��"h��l���Zc�X[�=K�L�+�%(,��x��X{��FqN�ں���j���\3(�3H�9����}���J6�[c�q�)�����9x�~lm�˵�ad^�z&��;إ�����
����5�-�`-�@Z�ئ������I�&h휰B�t�����͇i���'��eP��F9cQ�̢({]��+#�lW��ƨ�y=�6K�X���͡O����SlB9�y�
޴�2^��<a0�N�f�l��!����C����<���2�S3pm8�}�f�{���{�d��:�E֗�g�����+��",����{:��$1���=�<۳`��?d�`A��?�Od�W��̘��&	P�Sh�@��W*J�FY[z�l��`3��B�'CH�pܵw��:Bi�j]��sC2-r�8�îb�U�,H�~����bzŒ���)�j������e�">o����k���{h*�����1G�f�DЕaǸ�h���rq�{)]��&��#�������u�
�!OX���(��1caܦl�ש�MhԚ	XX}k�P����g��W=�d�gi�8se �lp�`8{�#�Wl��YL�2��Z�s���^9�.k\Q�•q�׀F�F��N9�@�pȬ�������b�e�N -��k�N�bv�C��{�׻E@�u��d�^~�h�-I'c{��R�E�
]�0�!�wW�y�>��3I���V)D�������|i �"����2&������݁�eJ�Ч�4�\�8/� �y���r\w�;k���>�t��?��(ա�U�0�cWV�V3�5�ͫ�����'����;RT��-���E͆Y��a-�����	���a�ER��;��7�fJ��x�[��"&��M�y���-�|+V_���E`��"%���|I���}ͣG_�i�L(dv��4!��`�*gr`k\c�+c�pi��F��W��@ 9.�X{f��͍�C������`�•Qu{��������ҝ�^�u_��X0���;��{ �ˆ=��t0�H$a�/z�����v/�6�V���>�P/oLQ�c�)��%�sV����+T��}�ˌ����c����OtY?�.���$��xݝ�tN�	�*�TxHu1nDZ��@�wI���P�b�z�%�ܰM��]TkH,����Iiu6R�[��ȥ������
��:�=�l�{!��#�պ�:&�EM��o�Z�UTu�E�k�\���Ƕl.��G�/}�*_��q�~&�4�%�W}��q�$?�b���������iLG�u�3����f�3sY�L,e��i�.�Aꄚ�ЅN����7����S�Ak� �rq@9k\�Yelj���3�2�3Ǻ(��ZIo��b���i"����^|�`6�0��'�������^p�pa͇`�і�n���k~�=Bw���<�y��B�C���Y	lY0�)i
��`è������rك������$YY
��!��]!M��%���&#�6����;�IRV��H������~is�={�2l�$���b
���w8��m�Ȅ�����f*��ZE:ؙkb��l�}�8W�#�&π4C�s�%P�{�}�R|=�	�n�}߷���I�7?<��I2(���8�J���;�L���@�R��sLG�TA%��e�s��Aa�c��ׅ�h]`=�B���g��H�Nwz��=n�Go�8�,M�� ��e��S��1<>AmWWF*fb}���"˨�(7�6��wk�^���O���VH��R�1c�>R#��N�20��!�ٕW^�>k��€Ei��?�o�{4Lw0��.�2tgQ��(t����1f�S��Vi��=�|MZ�UD?7�uiT
e�qk�L2�̂x��h8�.}�mL�-�Z�h����a3
Ъs�G�Z�D9��C�
w���z�Y���MK�ˊ��3�"�a�:�w��te
�����v�d���]�u��QտM�8TT���{����,���N�;ud�u��o��w�_���g�D[��5`I�����8�&��30V�ڐC{<��}qF�u��!�}��t���K���h�kʪ��eFi�CMT��c�:��l��q����# �2S�~]����ӭ�b�\e��mtF$����S����̮��U����V�u/w�@��lc}q�󆝏y�7��7�i�U*�����=X���Н"�cL`"��(@������,�GE�
T	wHQQ�}8�Y�7�ưY]�8�fY£�R7��Nd���)䮌�!W�]���u�=˔�-��Q�F�h"�%0(�QK��rWIa��'�Gqt5�/^֤u0�#G�AJ��h�֊�ݤy���f���m���/���|y�O�FB����B�bz-�@|(����S�On��1]{)��\O�C���
�2�7���[��>x��b���膇�2�C�[3]w��>H��C5m6$ͅ
Y���<�U��Y��U���|htkL�1S϶	��fu#�7O��h�x��I:�gI�F�b��Sl�YaM��ه�����v�f�]vY��}�`���B��Iw �E8l���F�J�F�L�rV=��+��l�f80k& ���A@H���6���뚧����i#o}n����)�>d�h�! E/�#
��rm��C
I�y�zG��ǜ����
ފ��!��(�޼ZJj�3�6���rBi�[qM�Í���U�h5�V��d�HG_���b�i�6A-;��/}�����"3��35�s1_�xi���+�7:&
�q>�90C���+6�8z���l;�][�ޅ�Nҕ��b�C�cm��k ��#�w�F�(�wu)�RƤ>~4�f����t�i�o�t�C����+!�����@��n��~�]���?!��NB�31��r/�ɸ<CEMC!y�gG�`q��@_�	�M�h�1Y���>�&�s�_�0��8<��d��Vj([ k��)�x�����b�����\Zl=�X�{��~K�h�����_o���K�x%]�y
���v.�~{��Xr	�s������1l����Ir\�PG����u��M��1O�I��n���LK�k���U�iy8li3����]KI�
.�f���zaګ5f—�(�܂uf�vgB!�l�QGj�?��.pC�)�%���Iy��66G<܁l(d{����<�b/�d�	����(f�K�V��y�'Ǒ�����\�,�R��.���O�>f�rTƫ����Q��KJ��9irM4��M�^�=^��,�F`�+�w�B����%�S�C�g�Q?K��`�~�<�@;I�o���r�����U��2�#�B��y_ k��>u�=/%����R�:)Q�j&��6�r�=W���V�mRඞ3~oRo����߮9�w X��^���z��5q����(]a�,\-��2��H���l�];�v@�,!N���h�f�emQ�ut�'�O�C[࠴e�ϽE�vx}��Q�ТYƞ��J'��B���r�˷����Нlm��zmY�Q6�1\kFC}Z]��؄�/\��� j�u<뫶�ϐ���A��{(c՗�囧��t�)���f/|��������w��R(
wE��	aU_*b~��QِC�����|�
�KM�*m���a�$�Zk�!�@g��륤ʆ~�����3C�Q�� ��$�2��L�0�.������!�<�ӯ��7��e��l ������T��k[u�������&�1`�m���Zg���ǫ�RD���Peکn�m*�#�Q�G���\��r\ϰ4ʨ��>9����&�t�;��8���;oC��	h\k�c2[��X����z8c��N9�R���ԗnS�/�_t�)��7��y���������%�f����߿��p��?{�~�^�8����X	t]��(kϴ{�z�a�V(00�%F�(o��5lE��W�(]����.G�'⸒�6����l�^r�*`���T6cW߃�O���V�wO�+q�m���&�����>/���oS=���LH�qT(g�k�O���RѤ(`.�4n�7K�ѡ��yR���n��G[�KZ�
�����"�;v�kϡOW��v�=��}z���q�i�rf��)g�Gc�&:�ȯveD�Dk4%�S_���X���S�������ߪ�N�]|�`���>wo(8�1������vҙ���0������� ���Df�Ҟ=�
wF�OU.E��,AM3yO��X�?��صg�n�?���]
��o�f_=]`9�6�q�-u���Nx�tӿ���������ݽz�X�S{�=�����>H�3c���PgN���\���O~,= �z˜�7^ɵ�Ⓛ3�gi�{U�"f��l$;|XhQL�:�O����0��,��B��ڃ�M��.���̚����=���&��v�=M�r�•��{�Y���W�R)�|�?l�o>N}��׆~����*�z�)��̞��ۇ
�gg�m�ɏ;�I�I�&�F:rf鹆�ǚ$�Z�/���*j�/
e���9�]��sb��%�V�g@X�ǯ���e�~��]�������<��a`��h�nGT�ݑB�&��u�B!FU������pY��t�\�s��v�m�K$��7������>��X�Q�����\�ꨛ�Q�!����җ�O��/�`&,v���qE�V�B�Q]�\a�3��C��1�8,s"����i�N/?�
L+��&:���-A��4���'f��d>?�:�]����I�x�K/9��p+}�6��Ư��h�+��	h���o�AZ����l��8��[�Xt�)�*��>�!�O��S���C��x)ӟ$4q���������ps���4�1z�Ջ��h���AX�q����16��Q(��y�>�:.�&Ьo�8w�h�
��81�C*���GO�ͦ=�=��|�^��M`���)�O,��ꗬ�(��e_ծ��w�C�p\]�JW��q=lܨ��w�9�|J��+ڭ�覽A4j���^N�_^zəm�[�u��7�C�d�.�+�\g�b�'�Ķ��~w���e�|��T��P���_��)�t�`v�%�\P 8�k���|
��xv�z��RL�Y�vq�?�N�-2�㣃2�@�e���3N��u�y��:�1k��c�:�(���:2�Ý�l$�i�~޲�lLA����D����+�e(��6��ؔZ��(Js3r����_^a�t�
�Sw;�q*�~�����Iah7W498�B�ϊ���ƻ���%pYʘ* ˺�7dY�sj ,��	��A� ��t;�� 61��w��Uߞ7��qG�%�1f��]?�^A�����n�Wن]�4΂�v�\�5f���~�X�>I��W����&�oi{�ls�`v�E�K����T��Il�8^����{�u͈X=���{Ī1��sŵ�\Ě8�r�3���o�c�}&r~�����G���lCdD�?�6
ۧ,��5qu�:HVp�K��-}x��ɜ��� %D�E����Ì�����u\��,�G6Ʃ�@��M�5��b$�PZ����-�l_�P�;#-��Cg	�z|�
�wZ}���ǫЈy�,@��>�?���>�ʎc��O`t�ɂ�Y�c=��K�D�j�u���hd�=���+���Gg���m�������5 �Ǖq���f�_���8�����l��].�
�"��[,�;���,���<y�7�7w�'>�|�>i0���5�ԙ�_�^i��Q�5M}�1�������ٶ>�:���'����'P��%Vr�rY�Y`��d���y��p��ʞ��������><⚾}���Ko�������>���mkհ��L$r�Y4��Sʓ��}O?~���6��m�.ǩ�ۆ��@�mjw�F-�#2R!�n9��q����w��g��{�LqÃ��JWƤ������?W�0��	�Y�0��!��f�с�^�^~_��y6+����L�ຘ��z��504��n��#4q�֥h�o�S�؋sF��[�^�i����_�y{���n�;bQ6��%W�[v-aj����c�.�dB�0}�&��+��m���m�a���u�ކ~z+i����˂I���fxϿ�K-@IEND�B`�jui/img/joomla.png000064400000011232152177723720010112 0ustar00�PNG


IHDR,>�&QaIDATx��t׿����	HwJ���֍zq���>��\Bp�
���q� ��}���Μ9��3��d�\���N�˽w��[���J��\���
�vL���xs���'����X�>(I|�a���
�8uP��h'���w��b�Il�aXc��P����U&6@]8��!��0�#�j�MP~GF	Ū"��zp] ��0L�ކFab	�Ah>Ai�a�G��Q��Q8�L�cU�@�t�0�����"�Sp-�Bo���E�R%���+�j���8��k�03X��Ep��6;�1����H%�<L�O8�ٍ��"�
�_�a��tI
tE+��Ơ�l�#9D�N�2��A�a�X=����@�#�z꓅h`��0��$����|���n� |�fB4����gv`s׉M�@����g ��0����C����Ÿ0C�H%|�����&d5-|���%�}hT���HB$��xq)�a�P���Ґ���l�X܁��2��	����o��+�ֵ���@_���.�X�b>�'��F��>_F#��ބZ��X܏���b���	6��_&(�@����6���X���F	�jRK0Xe�5�b
�0Bxj�e!	�%���E{,�x�)8wa�5XIx
�(�F>v:L׶�������o�9���
-�I�)�`}�xb!�Z|��~�@Z�s|���,�lL�n���-QY��@/��u��Y�QL��tTG�b�K��+ @<�0L���vO�SL��AHȃ��~@+���+�Ϝ��ٌX��� �ͱ�D�C/�+�&X�&X6up,ZC��zF΄��/v�v+�{/�����0��0#��b�`9��X
���ڤ`
ԥ�:��e?Tj�:?+�	��{74�&XG,�Tl��1"L��0���t��љ ���
�	��	��	�	V
���12D�R1��!����Ӛ��}I�~F D�:BM�,�#/D1��!�qa:ԥB��t��Ҥ�����&�sV�H�E;�g�`��[�0
q�m�%Vur��(��Xb�?('��%r���]<���3�:z�`�`��F�5�� ��8:X8��E?&5=�Xt
�ͦ����kc���/V:NB?��\��Z�e�c�-QR������`�:������	�Bk�AO����4�u��C���
k0��,.Cs�5��0����}L›��Q�����S�oc&>�Z����,�3)����xϢGI�!vA�����'d�]���+�/���ȱ����Ղ�
�F��	���3�
�O�*���P<��8��_X�ahq�q���(����P�
17D�CK���|�W�އ`�G���W���9;��s�VPpa]#a��Cڴ&��֝B�7��@�*��PW2���F�ut��ac+���ob;4�`!Ά�1��?�1����P��ZD_�\�EU����"�ϣZ1�%F`4��D��}��V������Mr���:�jd�� V���x�V�zi�H�u�1��<I�`oQ�}aF[���!\�����&b
���0m �ňA�����'�Boŋ��_q���!XNv"����l�:x���bd�/�z۱�ad���:t�Q���1݇�0��N\t/�|aT�2��q�+��.��c��M�s���B��r��!Z��c��c;�l{�oQ�_�F�u�#^��֣� ����`zC\8�A|��h�d�)�'�5�Zt�"X1�!��7>��,�f�E>�@c�k{������"�6C�B6��fp}��sq�õ�C!�f5��-Xɘu��F��8��֑�:��9Z3=D�o$��fw�!�8{���j��6���)�S��`$��8b�t�C����BqN��h�(�Ũm92 Q��εt���"��9dB��,���U��Ѫ�eFZ?ך֤1Ѻ�/�k ��h�2=�)�i���Л*$��U5Ĕc1CblCm.�8�b��*�Ab�:��ٌF.��:[�:�5 Ep��ʼns�V2Bm~@7H�=����9���������M� ^m�l2u��ha�w���\k�&)�br
:D���t�+�� H1z
j3e����Q
�wX;��P�)Q��ʄ�!(��`U�krRZ�Y7w�T�>��y�V>S�N7x�ʥ�ͽ箛ީ�/#=�U�����Sn���aa�T���6�A,n�ڌ���X
�9+L�>F$^pXC�
���P�o��!X��ô�+����	-�7ob�[���h��h�wt�����!Z���)��y����<����I�i��T�F��zT� 	���5���
�c�k%R�)*+!1r��"~]��$��;�Aul��`���G��}֤���d�5�Gv3��ڊ�b5zD�}y��_2��ތ�E��R0X�X���P��4ş����/("X�#
=�^8!FNpu����I��и
�h�]PMRFZS�{�@��ӧxiuq�Úڕ�Δe'\ToFÕ��0Xհj1
�s�6=G@/���ڤ��^ǖ9j��=k��7$A|���)X#�N�֔�#�Ɠ=Dk;��Ī<�C�T"���͙�s��d�/��~jX-��Uj� �G�6o�	AO�ͩ9-.�x��>��d|�"���l��ݞ7;�ߊ�sO���w榵��5��,�F"���x���33�w9ʺ5��Uj3����Bp��t��n�ڜi�弾�/�%Xݡ���qe뼟�!���WN���֪U�on��1�GZ����j��|���MYY� �"��
j�
Am��ͫ���S³C����`�M��<X��zGs�^�FpB��"J��|'i���}�m��gA Ĩ&�a�N���*b
��9Ұ�a'�����4Z��u���؍�Gy��q�'⣒����J���0�C��R�����ayYSn���I��ڏ� V�h��,X8�F��ZB�O>w�����28]����Gy�����S���$&�"
)��X�C�R�����/YS(�����0�ڃ� ��
��$^8|r�$H�yP���
�y��-�!>��
9ʃU
�v�W����{V\oqv������0ކ�#���>9���6�y�����Iާ��j�H�
�D�8옮�X��)F�;\�>���:���*'B�ѽP�
H3��?á%�G�����;�*���0VB�ֵү�'�tղ��y���j7N��	����Q���Xj��|�bxv@m�8���Q�;�A\�	��Z�ͻH��X2��nh\+�7�aDH8e��v;��pה]�ঢ়!����0v�j���~��VԀ8�B�ͬ�}����Q����h��gC�&XA��+�����+��*Xh�V�a��th��<��]�S����.��@����>��ӑehr�!�b�C&j 	F�!��2HW`'��oL��	�":�ml�:x
I��� D��DWT�xPg`:�Am:O�M��Z`Ԧsp�A<(�f����V:�c�`���[�P5C.ԃoq#jCP=�9ԍrwO�*��Rk�]d���hAY��l�GKp��Xu�����m<��腞���Ch7C\h���6a<����q���b��;X
!7B<8�@CX��W���G/�{��g8d���@C؉ix7�Lt�}Μ�{�2>����am�`��tb�s��9X��T�������c5e�<���֩p��@V�-6{�~�!h����`M���ft�xt��F��_���5ԃD�2�O����6���&X���*h���ϙ�>�,������)X�#۠~*��-�J~@k��,��t'��e�X��(�Fa�F:�.�X�ѧ�HT���h��\܈J��Z��a�nt8��ȩP�Na��l@Y�K��5l��gx� ����6�ڭE9�G6�������6����v��Y)���Z�z�&�
�B܍����
���3,›�� 1T��e��g��Q`	�~l�,�X܅R �fy�>��X���E;���"���Q��j�Y<�dH��pl����cOB$�J۟?�Ǯ2��LÇ��8� C،���qZ�y�W�g1�
^�z��`����B<��_P�p5p�_�F�V�!?���U�4�GC�A�GI��L�m�� %�<�%��XtC��1|W
�]q,�ACԆ�Jh�:�[����h[�=ӺBY�@�r ��0! �C}�!����,�I���Hb2���bv��z���W�[��B�a�`́������BH8���7c�Cb
�QZIL�a�u?����eq�C*�+N,�+p�E_������Ӑ�d&X
��/���'>���$�0��2��	���P�F@�a�`�Aԃw %%8ET֠6$��	V0Ze���o ���:��g&X�p]��W��bN��ι3F9,�`��$��	�S�����n\���x�y�@w�t
*A���+!�a�/`�[9 ��IEND�B`�jui/img/saturation.png000064400000007674152177723720011041 0ustar00�PNG


IHDRdd��]��IDATxl��+�
��'p>�O�K����s~a�D��^�P(h����>�{�����K_��0r��>�d���/d����u��2n�#����a��'�y���Сo���˲�Q�!@j���]٨t"e�#��;��DqfFw�Ng��fչ�ũ�'���;j��o-��DB݁�h$�o�,���4��Q`�[3��!t	�خ��M/|�?�����H�,#z6�ɡ��)AHP���PŞ ��̚l�-��e	�uq��]�k�~��}�� f񽴲߼'��e�� �����G�͐� :�ƓV?�?�����8A�i�_�L�-m�5�oApM0\��Q�\@I�$]\��Zy�#/����R<�Y��`T�=����X�> �$W�T1͌� � �c]D�o}�Y���O�x�w�J�W�:���x5�lJ��y��J+�S	��Y�H	��#�&��Nm�#O���^��7 ��L���jڔ�S��,J3{�t;%��D"
.
�9��z]^��G=����?H�;j�q��H���"�
B�*�&q�#k��)��/�<��ڴ��ģx��;�ƴ�f�)������� h�`r"�~x$�	��=P.Maq���M�^����߫������]f��Ԁ�P�I8�8�CF,"܁QHJ)���>l>Q�X��x�Q/~w�?�i�EͰD�ĜTBr̤��WLe�EN��M�0�z ��Fi�]+�v?�П��g��+���>0�&�����cb� ��DRB�}��?�*1ad�qH����ڼ�
�x��ހ+<R������c��HyAܚ�HD DF�&�]��:��~�E;O�e������8�̭��-�
�;L17q� 2��. u*(ROiMY1A�\N]�+��Z�����?~�HS�	8�n�{�5���Ĥ�ߨ�bIo
	!#kdBZ��ȔV��ϵr�g�g��'A2
T��n���q�O���)��2A&Ό���K;�=��� ?J�$#P��f�ꈺ����$nD�Paԉĺb.�]�>upL��u�|9Ap3/�dZj�u���+<r�\@����f��޹�C\���}>A�.nO��u���CJᓷI�E�#�VB�W�\��9ǚ ����rQmZD�b��݋)k��3�\���=H]�R�{JkN����C�����7��w�������@�����J���&�;;������,a�^}Ug�!�J�+�vC�W�@��0&H���W�<
\9�\n'E~&H}_�jpͩhH�cEX��D��֘;�؏_p�Z��v���E�]��XA|�j�#{��xB���" 'd ��D	<��-�&�wT(, VA{�,%�-��p���T>|[�QA�e[m��q2�����Lۊ��0PU҆n͉ŵК�l+�汪����j�r�QA�͵WP]{ue҃��KQvju�\�!�q�*�}�r �V0���P�z�e�3g>z���K�(!�$�j$T�
k��	/�cl���K�c�`5�g�ڪFؓ�_�B.�<D�.X�0�9ҡa�� 
���--� 
3@�Q�C
D
�vq&kmO[+w[Ů��r���[A�턂W*����r"@�u��챰�t�Qi�jl��v���&����`�^��Z*�aP���X
i,����j/#0/b� ��$3�u������=T[I�IS��U��P����@rT�l ���,v�������`
1��	p.�u�P�tF���S(T�x����4���%�R?��_~V.�6U� sX��j/Ā"A��f�v�WؙÅ�"AU�O��jqL�,��	dNL��ulj`(>4�Š�bJ��o�O�<��DΘ�	�C�<pغ�.К��y*������@���
"h1}������5|k�JԁG��H���QT)�_/+Ȣ���8��'��*���@9�>����G7��U����Zm~������&=.��R�0Te�8�T��1�,8I�u5�2)��а[w,�0/y� �A3{�2���'#�ZU�?�m#Ҥ	���w���ґ��\T������00�/4��0H�Yѵ��|����YAV(�����L��a�1�J��Z�y0&�!�2�=+Ѱ�ݭ�1���T�PĐ*��|�����������L:��D)��� �0
լ��*�� hYA����G�}��tC�e��?S�
�ɪ�9�� �:�(Ǫ�TZAl+�8�@h�	�)K	9ȹ~�b 4�����Z
r\C�f�����^�E�l;V@n8� `b�fE�F
t��ú�?�z��kU� �R��+��A���Z��X
�[3f�mɭ�ҡ03333333�0�̓���c�xZjתn�'�l�n�>�zH�!γE+�'W*�J�c?N@J�tPK �#�BuL/��@���3K� �O@�O�C�iM
ʖ<�X+;��P�5�NeF �t&A�	�VNR�/Y��X�E�JQ��^a�#Ajk/!��ё�& �>�Y:B�}؜(�)� y	��b/{�#���^V�n��@Rh}Y���
E�	�yF7��R�B@����6��_A>
�Da�1��'\rI��A��|�$Is� "Ѕ@�?�q︯l�|<"@��Ŧ�0\ik��8&�i��u�/� �W��B �o�!�Vݹ�@ 	�����h'�H+�DH%Ko��$ʇJ�?;#.;�=�f�
��*��/���d<�&�L�
�(1\��>Ԭ2���R8�ղ��@ԃ���+ZVH��X�P��3��@^w̟;�7f��/ҩ.�	� �B��nd	���V_)��I��'4V�"3]�B����%b]�2̊ﲗ�6�8�8�J
��)���n#;6#�T!�Ćq	�¿�x	�
�|�yAP9O(4BA ̪ t}��%)/ZS4Z���)/�1S��XJ�4j?5*�����*�Ss ��j.�����A+����"�p`��\6�_ڹ����
�-uCa�#%�"����yD@��r�bt�&�6������}�E8a)6��uͷ�C
����~o�P�?�CK�U	���k�o�B�xy�@B~d5����>�
.-2�������eY
�~&���wX!�n��TV̟��mDnd[A����F��@8�0@��T�P(C��M�3����g���A3�,`��r�aC`N�ȵ��������Y���@�����V!}]�|��TK��T2 br,��h��9���ﲱ��|�ݐ ���T���RAŰ��\/�� ������|rq9���_^;Wv��`� W+��K�$w����"�<��Ю�V��AP��/L��7we���k��5��ϼ���2��#Q������U���7��<��C�A�dj��j�8�VGK+���
ByL7R
O?�b����6�@Ϋ �����Ӂ�i����M].�5�bg Q�%<1�Xh�D*��[d�t>',�AS��`�� ��.��ۓJ��Ц��ؓnB�&'(� �3}:L��y-����˼IӋְ�Nقc(8�-Пc[ε<�huN@NJ�8y��^��-C�
7�wH���)]`�H��v�&H�΂��Dm.;��D�d� �-���-vl'��ވ"�
2kJ�<�\rZ
:�*A~�#D2��
�wԾ��NXr-�d��d��3��`�C*�L1��:�a�$:��I%	#U��DP����p��5r@�6{J���]�Կbi3I� [l#A:�!s�������:���mu'ϱ�4�_��j���p�r/'��=V��W��]38�IEND�B`�jui/js/bootstrap-tooltip-extended.js000064400000013416152177723720013632 0ustar00/* ===========================================================================
 * bootstrap-tooltip-extended.js v1.0.0
 * https://github.com/cyrilreze/bootstrap-tooltip-extended
 * ===========================================================================
 * Copyright 2016 Cyril Rezé
 * Licensed under MIT
 * https://github.com/cyrilreze/bootstrap-tooltip-extended/blob/master/LICENSE
 * =========================================================================== */

!function ($) {

  "use strict"; // jshint ;_;

  var bootstrapVersion = $.fn.tooltip.Constructor.VERSION ? $.fn.tooltip.Constructor.VERSION.split('.')[0] : '2'


 /* TOOLTIP-EXTENDED PUBLIC CLASS DEFINITION
  * ======================================== */

  // Save the original function object
  var _old = $.fn.tooltip;

  // Create a new constructor
  var TooltipExtended = function (element, options) {
    this.init('tooltip', element, options)
  }

  TooltipExtended.prototype = $.extend({}, _old.Constructor.prototype, {

    constructor: TooltipExtended

  , show: function () {
      var $tip
        , pos
        , actualWidth
        , actualHeight
        , placement
        , tp
        , e = $.Event('show')

      if (this.hasContent() && this.enabled) {
        this.$element.trigger(e)
        if (e.isDefaultPrevented()) return
        $tip = this.tip()
        this.setContent()

        if (this.options.animation) {
          $tip.addClass('fade')
        }

        placement = typeof this.options.placement == 'function' ?
          this.options.placement.call(this, $tip[0], this.$element[0]) :
          this.options.placement

        // Detect if auto direction placement
        var autoDirToken = /\s?auto-dir?\s?/i
        var autoDirPlace = autoDirToken.test(placement)
        if (autoDirPlace) placement = placement.replace(autoDirToken, '') || 'top'

        $tip
          .detach()
          .css({ top: 0, left: 0, display: 'block' })
          .addClass(placement)

        this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)

        pos = this.getPosition()

        actualWidth = $tip[0].offsetWidth
        actualHeight = $tip[0].offsetHeight

        // Get the overall document direction
        var isRTL = jQuery(document.querySelector("html")).attr('dir') === 'rtl' ? true : false

        // If auto-dir and the direction is RTL, the horizontal placement is reversed
        if (autoDirPlace) {
          var orgPlacement = placement
          var xPlace = placement.replace(/bottom-|top-/g, '') || ''
          var yPlace = placement.replace(/left|right/g, '') || ''

          placement = xPlace == 'left'  && isRTL ? yPlace + 'right' :
                      xPlace == 'right' && isRTL ? yPlace + 'left'  :
                      placement

          $tip
            .removeClass(orgPlacement)
            .addClass(placement)
        }

        switch (placement) {
          case 'bottom':
            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
            break
          case 'top':
            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
            break
          case 'left':
            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
            break
          case 'right':
            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
            break
          // Additional positions
          case 'bottom-left':
            tp = {top: pos.top + pos.height, left: pos.left}
            break
          case 'bottom-right':
            tp = {top: pos.top + pos.height, left: pos.left + pos.width - actualWidth}
            break
          case 'top-left':
            tp = {top: pos.top - actualHeight, left: pos.left }
            break
          case 'top-right':
            tp = {top: pos.top - actualHeight, left: pos.left + pos.width - actualWidth}
            break
        }

        this.applyPlacement(tp, placement)

        // Arrow position adjustment for Bootstrap 3
        if ( bootstrapVersion === '3' ) {
          this.newArrow(placement, actualWidth, isRTL)
        }

        this.$element.trigger('shown')
      }
    }
  , newArrow: function (placement, actualWidth, isRTL) {
      var $arrow = this.tip().find('.tooltip-arrow')
        , arrow_width = parseInt($arrow.css('width'), 10)
        , arrow_height = parseInt($arrow.css('height'), 10)
  
      var xPlace = placement.replace(/bottom-|top-/g, '') || ''
      var yPlace = placement.replace(/left|right/g, '') || ''

      if ( yPlace && xPlace == 'left' && !isRTL ) $arrow.css("left", arrow_width / 2)
      if ( yPlace && xPlace == 'left' && isRTL )  $arrow.css("right", actualWidth - arrow_width - arrow_width / 2)
      if ( yPlace && xPlace == 'right' )          $arrow.css("left", actualWidth - arrow_width - arrow_width / 2)
      if ( yPlace == 'bottom-' )                  $arrow.css("top", arrow_height)
      if ( yPlace == 'top-' )                     $arrow.css("bottom", arrow_height)
    }
  });


 /* TOOLTIP-EXTENDED PLUGIN DEFINITION
  * ================================== */

  var old = $.fn.tooltip

  // Override the old initialization with the new constructor
  $.fn.tooltip = $.extend(function ( option ) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('tooltip')
        , options = $.extend({}, TooltipExtended.defaults, $this.data(), typeof option == 'object' && option)
      if (!data) $this.data('tooltip', (data = new TooltipExtended(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }, $.fn.tooltip )


 /* TOOLTIP-EXTENDED NO CONFLICT
  * ============================ */

  $.fn.tooltip.noConflict = function () {
    $.fn.tooltip = old
    return this
  };

}(window.jQuery);
jui/js/bootstrap.min.js000064400000070706152177723720011133 0ustar00/*!
 * Bootstrap.js by @fat & @mdo
 * Copyright 2012 Twitter, Inc.
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 *
 * Custom version for Joomla!
 */
!function(t){"use strict";t(function(){t.support.transition=function(){var t=function(){var t,e=document.createElement("bootstrap"),i={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in i)if(void 0!==e.style[t])return i[t]}();return t&&{end:t}}()})}(window.jQuery),function(t){"use strict";var e='[data-dismiss="alert"]',i=function(i){t(i).on("click",e,this.close)};i.prototype.close=function(e){function i(){n.trigger("closed").remove()}var n,o=t(this),s=o.attr("data-target");s||(s="#"===(s=(s=o.attr("href"))&&s.replace(/.*(?=#[^\s]*$)/,""))?"":s),n=t(document).find(s),e&&e.preventDefault(),n.length||(n=o.hasClass("alert")?o:o.parent()),n.trigger(e=t.Event("close")),e.isDefaultPrevented()||(n.removeClass("in"),t.support.transition&&n.hasClass("fade")?n.on(t.support.transition.end,i):i())};var n=t.fn.alert;t.fn.alert=function(e){return this.each(function(){var n=t(this),o=n.data("alert");o||n.data("alert",o=new i(this)),"string"==typeof e&&o[e].call(n)})},t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.alert.data-api",e,i.prototype.close)}(window.jQuery),function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=t.extend({},t.fn.button.defaults,i)};e.prototype.setState=function(t){var e="disabled",i=this.$element,n=i.data(),o=i.is("input")?"val":"html";t+="Text",n.resetText||i.data("resetText",i[o]()),i[o](n[t]||this.options[t]),setTimeout(function(){"loadingText"==t?i.addClass(e).attr(e,e):i.removeClass(e).removeAttr(e)},0)},e.prototype.toggle=function(){var t=this.$element.closest('[data-toggle="buttons-radio"]');t&&t.find(".active").removeClass("active"),this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=function(i){return this.each(function(){var n=t(this),o=n.data("button"),s="object"==typeof i&&i;o||n.data("button",o=new e(this,s)),"toggle"==i?o.toggle():i&&o.setState(i)})},t.fn.button.defaults={loadingText:"loading..."},t.fn.button.Constructor=e,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.button.data-api","[data-toggle^=button]",function(e){var i=t(e.target);i.hasClass("btn")||(i=i.closest(".btn")),i.button("toggle")})}(window.jQuery),function(t){"use strict";var e=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,"hover"==this.options.pause&&this.$element.on("mouseenter",t.proxy(this.pause,this)).on("mouseleave",t.proxy(this.cycle,this))};e.prototype={cycle:function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(e){var i=this.getActiveIndex(),n=this;if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid",function(){n.to(e)}):i==e?this.pause().cycle():this.slide(e>i?"next":"prev",t(this.$items[e]))},pause:function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition.end&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(e,i){var n,o=this.$element.find(".item.active"),s=i||o[e](),a=this.interval,r="next"==e?"left":"right",h="next"==e?"first":"last",l=this;if(this.sliding=!0,a&&this.pause(),s=s.length?s:this.$element.find(".item")[h](),n=t.Event("slide",{relatedTarget:s[0],direction:r}),!s.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var e=t(l.$indicators.children()[l.getActiveIndex()]);e&&e.addClass("active")})),t.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(n),n.isDefaultPrevented())return;s.addClass(e),s[0].offsetWidth,o.addClass(r),s.addClass(r),this.$element.one(t.support.transition.end,function(){s.removeClass([e,r].join(" ")).addClass("active"),o.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger("slid")},0)})}else{if(this.$element.trigger(n),n.isDefaultPrevented())return;o.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return a&&this.cycle(),this}}};var i=t.fn.carousel;t.fn.carousel=function(i){return this.each(function(){var n=t(this),o=n.data("carousel"),s=t.extend({},t.fn.carousel.defaults,"object"==typeof i&&i),a="string"==typeof i?i:s.slide;o||n.data("carousel",o=new e(this,s)),"number"==typeof i?o.to(i):a?o[a]():s.interval&&o.pause().cycle()})},t.fn.carousel.defaults={interval:5e3,pause:"hover"},t.fn.carousel.Constructor=e,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this},t(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(e){var i,n,o,s=t(this),a=s.attr("data-target");a||(a="#"===(a=(a=s.attr("href"))&&a.replace(/.*(?=#[^\s]+$)/,""))?"":a),i=t(document).find(a),n=t.extend({},i.data(),s.data()),i.carousel(n),(o=s.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),e.preventDefault()})}(window.jQuery),function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=t.extend({},t.fn.collapse.defaults,i),this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};e.prototype={constructor:e,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var e,i,n,o;if(!this.transitioning&&!this.$element.hasClass("in")){if(e=this.dimension(),i=t.camelCase(["scroll",e].join("-")),(n=this.$parent&&this.$parent.find("> .accordion-group > .in"))&&n.length){if((o=n.data("collapse"))&&o.transitioning)return;n.collapse("hide"),o||n.data("collapse",null)}this.$element[e](0),this.transition("addClass",t.Event("show"),"shown"),t.support.transition&&this.$element[e](this.$element[0][i])}},hide:function(){var e;!this.transitioning&&this.$element.hasClass("in")&&(e=this.dimension(),this.reset(this.$element[e]()),this.transition("removeClass",t.Event("hideme"),"hidden"),this.$element[e](0))},reset:function(t){var e=this.dimension();return this.$element.removeClass("collapse")[e](t||"auto")[0].offsetWidth,this.$element[null!==t?"addClass":"removeClass"]("collapse"),this},transition:function(e,i,n){var o=this,s=function(){"show"==i.type&&o.reset(),o.transitioning=0,o.$element.trigger(n)};this.$element.trigger(i),i.isDefaultPrevented()||(this.transitioning=1,this.$element[e]("in"),t.support.transition&&this.$element.hasClass("collapse")?this.$element.one(t.support.transition.end,s):s())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var i=t.fn.collapse;t.fn.collapse=function(i){return this.each(function(){var n=t(this),o=n.data("collapse"),s=t.extend({},t.fn.collapse.defaults,n.data(),"object"==typeof i&&i);o||n.data("collapse",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.collapse.defaults={toggle:!0},t.fn.collapse.Constructor=e,t.fn.collapse.noConflict=function(){return t.fn.collapse=i,this},t(document).on("click.collapse.data-api","[data-toggle=collapse]",function(e){var i,n,o=t(this),s=o.attr("data-target");s||(e.preventDefault(),s="#"===(s=(s=o.attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,""))?"":s),i=(n=t(document).find(s)).data("collapse")?"toggle":o.data(),o[n.hasClass("in")?"addClass":"removeClass"]("collapsed"),n.collapse(i)})}(window.jQuery),function(t){"use strict";function e(){t(n).parent().parent().removeClass("nav-hover"),t(".dropdown-backdrop").remove(),t(n).each(function(){i(t(this)).removeClass("open")})}function i(e){var i,n=e.attr("data-target");return n||(n=(n=e.attr("href"))&&/#/.test(n)&&n.replace(/.*(?=#[^\s]+$)/,"")),n="#"===n?[]:n,(i=n&&t(document).find(n))&&i.length||(i=e.parent()),i}var n="[data-toggle=dropdown]",o=function(e){var i=t(e).on("click.dropdown.data-api",this.toggle).on("mouseover.dropdown.data-api",this.toggle);t("html").on("click.dropdown.data-api",function(){i.parent().parent().removeClass("nav-hover"),i.parent().removeClass("open")})};o.prototype={constructor:o,toggle:function(n){var o,s,a,r,h=t(this);if(!h.is(".disabled, :disabled")&&(o=i(h),s=o.hasClass("open"),(r=o.parent().hasClass("nav-hover"))||"mouseover"!=n.type)){if(a=h.attr("href"),"click"!=n.type||!a||"#"===a)return e(),(!s&&"mouseover"!=n.type||r&&"mouseover"==n.type)&&("ontouchstart"in document.documentElement&&(t('<div class="dropdown-backdrop"/>').insertBefore(t(this)).on("click",e),h.on("hover",function(){t(".dropdown-backdrop").remove()})),o.parent().toggleClass("nav-hover"),o.toggleClass("open")),h.focus(),!1;window.location=a}},keydown:function(e){var o,s,a,r,h;if(/(38|40|27)/.test(e.keyCode)&&(o=t(this),e.preventDefault(),e.stopPropagation(),!o.is(".disabled, :disabled"))){if(a=i(o),!(r=a.hasClass("open"))||r&&27==e.keyCode)return 27==e.which&&a.find(n).focus(),o.click();(s=t("[role=menu] li:not(.divider):visible a",a)).length&&(h=s.index(s.filter(":focus")),38==e.keyCode&&h>0&&h--,40==e.keyCode&&h<s.length-1&&h++,~h||(h=0),s.eq(h).focus())}}};var s=t.fn.dropdown;t.fn.dropdown=function(e){return this.each(function(){var i=t(this),n=i.data("dropdown");n||i.data("dropdown",n=new o(this)),"string"==typeof e&&n[e].call(i)})},t.fn.dropdown.Constructor=o,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=s,this},t(document).on("click.dropdown.data-api",e).on("click.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.dropdown.data-api",n,o.prototype.toggle).on("keydown.dropdown.data-api",n+", [role=menu]",o.prototype.keydown).on("mouseover.dropdown.data-api",n,o.prototype.toggle)}(window.jQuery),function(t){"use strict";var e=function(e,i){this.options=i,this.$element=t(e).delegate('[data-dismiss="modal"]',"click.dismiss.modal",t.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};e.prototype={constructor:e,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var e=this,i=t.Event("show");this.$element.trigger(i),this.isShown||i.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var i=t.support.transition&&e.$element.hasClass("fade");e.$element.parent().length||e.$element.appendTo(document.body),e.$element.show(),i&&e.$element[0].offsetWidth,e.$element.addClass("in").attr("aria-hidden",!1),e.enforceFocus(),i?e.$element.one(t.support.transition.end,function(){e.$element.focus().trigger("shown")}):e.$element.focus().trigger("shown")}))},hide:function(e){e&&e.preventDefault();e=t.Event("hide"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),t(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),t.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var e=this;t(document).on("focusin.modal",function(t){e.$element[0]===t.target||e.$element.has(t.target).length||e.$element.focus()})},escape:function(){var t=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(e){27==e.which&&t.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var e=this,i=setTimeout(function(){e.$element.off(t.support.transition.end),e.hideModal()},500);this.$element.one(t.support.transition.end,function(){clearTimeout(i),e.hideModal()})},hideModal:function(){var t=this;this.$element.hide(),this.backdrop(function(){t.removeBackdrop(),t.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(e){var i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var n=t.support.transition&&i;if(this.$backdrop=t('<div class="modal-backdrop '+i+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?t.proxy(this.$element[0].focus,this.$element[0]):t.proxy(this.hide,this)),n&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;n?this.$backdrop.one(t.support.transition.end,e):e()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(t.support.transition.end,e):e()):e&&e()}};var i=t.fn.modal;t.fn.modal=function(i){return this.each(function(){var n=t(this),o=n.data("modal"),s=t.extend({},t.fn.modal.defaults,n.data(),"object"==typeof i&&i);o||n.data("modal",o=new e(this,s)),"string"==typeof i?o[i]():s.show&&o.show()})},t.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},t.fn.modal.Constructor=e,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.modal.data-api",'[data-toggle="modal"]',function(e){var i,n,o=t(this),s=o.attr("href"),a=o.attr("data-target");e.preventDefault(),a||(a="#"===(a=(a=s)&&a.replace(/.*(?=#[^\s]+$)/,""))?"":a),n=(i=t(document).find(a)).data("modal")?"toggle":t.extend({remote:!/#/.test(s)&&s},i.data(),o.data()),i.modal(n).one("hide",function(){o.focus()})})}(window.jQuery),function(t){"use strict";var e=function(t,e){this.init("tooltip",t,e)};e.prototype={constructor:e,init:function(e,i,n){var o,s,a,r,h;for(this.type=e,this.$element=t(i),this.options=this.getOptions(n),this.enabled=!0,h=(a=this.options.trigger.split(" ")).length;h--;)"click"==(r=a[h])?this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this)):"manual"!=r&&(o="hover"==r?"mouseenter":"focus",s="hover"==r?"mouseleave":"blur",this.$element.on(o+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,t.proxy(this.leave,this)));this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(e){return(e=t.extend({},t.fn[this.type].defaults,this.$element.data(),e)).delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},enter:function(e){var i,n=t.fn[this.type].defaults,o={};if(this._options&&t.each(this._options,function(t,e){n[t]!=e&&(o[t]=e)},this),!(i=t(e.currentTarget)[this.type](o).data(this.type)).options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)},leave:function(e){var i=t(e.currentTarget)[this.type](this._options).data(this.type);if(this.timeout&&clearTimeout(this.timeout),!i.options.delay||!i.options.delay.hide)return i.hide();i.hoverState="out",this.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)},show:function(){var e,i,n,o,s,a,r=t.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(r),r.isDefaultPrevented())return;switch(e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,e.detach().css({top:0,left:0,display:"block"}),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element),i=this.getPosition(),n=e[0].offsetWidth,o=e[0].offsetHeight,s){case"bottom":a={top:i.top+i.height,left:i.left+i.width/2-n/2};break;case"top":a={top:i.top-o,left:i.left+i.width/2-n/2};break;case"left":a={top:i.top+i.height/2-o/2,left:i.left-n};break;case"right":a={top:i.top+i.height/2-o/2,left:i.left+i.width}}this.applyPlacement(a,s),this.$element.trigger("shown")}},applyPlacement:function(t,e){var i,n,o,s,a=this.tip(),r=a[0].offsetWidth,h=a[0].offsetHeight;a.offset(t).addClass(e).addClass("in"),i=a[0].offsetWidth,n=a[0].offsetHeight,"top"==e&&n!=h&&(t.top=t.top+h-n,s=!0),"bottom"==e||"top"==e?(o=0,t.left<0&&(o=-2*t.left,t.left=0,a.offset(t),i=a[0].offsetWidth,n=a[0].offsetHeight),this.replaceArrow(o-r+i,i,"left")):this.replaceArrow(n-h,n,"top"),s&&a.offset(t)},replaceArrow:function(t,e,i){this.arrow().css(i,t?50*(1-t/e)+"%":"")},setContent:function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},hide:function(){var e=this.tip(),i=t.Event("hideme");if(this.$element.trigger(i),!i.isDefaultPrevented())return e.removeClass("in"),t.support.transition&&this.$tip.hasClass("fade")?function(){var i=setTimeout(function(){e.off(t.support.transition.end).detach()},500);e.one(t.support.transition.end,function(){clearTimeout(i),e.detach()})}():e.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var e=this.$element[0];return t.extend({},"function"==typeof e.getBoundingClientRect?e.getBoundingClientRect():{width:e.offsetWidth,height:e.offsetHeight},this.$element.offset())},getTitle:function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},tip:function(){return this.$tip=this.$tip||t(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(e){var i=e?t(e.currentTarget)[this.type](this._options).data(this.type):this;i.tip().hasClass("in")?i.hide():i.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var i=t.fn.tooltip;t.fn.tooltip=function(i){return this.each(function(){var n=t(this),o=n.data("tooltip"),s="object"==typeof i&&i;o||n.data("tooltip",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.tooltip.Constructor=e,t.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!0,container:!1},t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(window.jQuery),function(t){"use strict";var e=function(t,e){this.init("popover",t,e)};e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype,{constructor:e,setContent:function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content")[this.options.html?"html":"text"](i),t.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var t=this.$element,e=this.options;return("function"==typeof e.content?e.content.call(t[0]):e.content)||t.attr("data-content")},tip:function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var i=t.fn.popover;t.fn.popover=function(i){return this.each(function(){var n=t(this),o=n.data("popover"),s="object"==typeof i&&i;o||n.data("popover",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.popover.Constructor=e,t.fn.popover.defaults=t.extend({},t.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(window.jQuery),function(t){"use strict";function e(e,i){var n,o=t.proxy(this.process,this),s=t(t(e).is("body")?window:e);this.options=t.extend({},t.fn.scrollspy.defaults,i),this.$scrollElement=s.on("scroll.scroll-spy.data-api",o),this.selector=(this.options.target||(n=t(e).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=t("body"),this.refresh(),this.process()}e.prototype={constructor:e,refresh:function(){var e=this;this.offsets=t([]),this.targets=t([]),this.$body.find(this.selector).map(function(){var i=t(this),n=i.data("target")||i.attr("href"),o=/^#\w/.test(n)&&t(n);return o&&o.length&&[[o.position().top+(!t.isWindow(e.$scrollElement.get(0))&&e.$scrollElement.scrollTop()),n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},process:function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),n=this.offsets,o=this.targets,s=this.activeTarget;if(e>=i)return s!=(t=o.last()[0])&&this.activate(t);for(t=n.length;t--;)s!=o[t]&&e>=n[t]&&(!n[t+1]||e<=n[t+1])&&this.activate(o[t])},activate:function(e){var i,n;this.activeTarget=e,t(this.selector).parent(".active").removeClass("active"),n=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',(i=t(document).find(n).parent("li").addClass("active")).parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate")}};var i=t.fn.scrollspy;t.fn.scrollspy=function(i){return this.each(function(){var n=t(this),o=n.data("scrollspy"),s="object"==typeof i&&i;o||n.data("scrollspy",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.scrollspy.Constructor=e,t.fn.scrollspy.defaults={offset:10},t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);e.scrollspy(e.data())})})}(window.jQuery),function(t){"use strict";var e=function(e){this.element=t(e)};e.prototype={constructor:e,show:function(){var e,i,n,o=this.element,s=o.closest("ul:not(.dropdown-menu)"),a=o.attr("data-target");a||(a=(a=o.attr("href"))&&a.replace(/.*(?=#[^\s]*$)/,"")),o.parent("li").hasClass("active")||(e=s.find(".active:last a")[0],n=t.Event("show",{relatedTarget:e}),o.trigger(n),n.isDefaultPrevented()||(i=t(document).find(a),this.activate(o.parent("li"),s),this.activate(i,i.parent(),function(){o.trigger({type:"shown",relatedTarget:e})})))},activate:function(e,i,n){function o(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),e.addClass("active"),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active"),n&&n()}var s=i.find("> .active"),a=n&&t.support.transition&&s.hasClass("fade");a?s.one(t.support.transition.end,o):o(),s.removeClass("in")}};var i=t.fn.tab;t.fn.tab=function(i){return this.each(function(){var n=t(this),o=n.data("tab");o||n.data("tab",o=new e(this)),"string"==typeof i&&o[i]()})},t.fn.tab.Constructor=e,t.fn.tab.noConflict=function(){return t.fn.tab=i,this},t(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault(),t(this).tab("show")})}(window.jQuery),function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=t.extend({},t.fn.typeahead.defaults,i),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=t(this.options.menu),this.shown=!1,this.listen()};e.prototype={constructor:e,select:function(){var t=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(t)).change(),this.hide()},updater:function(t){return t},show:function(){var e=t.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:e.top+e.height,left:e.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(e){var i;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(i=t.isFunction(this.source)?this.source(this.query,t.proxy(this.process,this)):this.source,i?this.process(i):this)},process:function(e){var i=this;return e=t.grep(e,function(t){return i.matcher(t)}),e=this.sorter(e),e.length?this.render(e.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(t){return~t.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(t){for(var e,i=[],n=[],o=[];e=t.shift();)e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?n.push(e):o.push(e):i.push(e);return i.concat(n,o)},highlighter:function(t){var e=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return t.replace(new RegExp("("+e+")","ig"),function(t,e){return"<strong>"+e+"</strong>"})},render:function(e){var i=this;return(e=t(e).map(function(e,n){return(e=t(i.options.item).attr("data-value",n)).find("a").html(i.highlighter(n)),e[0]})).first().addClass("active"),this.$menu.html(e),this},next:function(e){var i=this.$menu.find(".active").removeClass("active").next();i.length||(i=t(this.$menu.find("li")[0])),i.addClass("active")},prev:function(t){var e=this.$menu.find(".active").removeClass("active").prev();e.length||(e=this.$menu.find("li").last()),e.addClass("active")},listen:function(){this.$element.on("focus",t.proxy(this.focus,this)).on("blur",t.proxy(this.blur,this)).on("keypress",t.proxy(this.keypress,this)).on("keyup",t.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",t.proxy(this.keydown,this)),this.$menu.on("click",t.proxy(this.click,this)).on("mouseenter","li",t.proxy(this.mouseenter,this)).on("mouseleave","li",t.proxy(this.mouseleave,this))},eventSupported:function(t){var e=t in this.$element;return e||(this.$element.setAttribute(t,"return;"),e="function"==typeof this.$element[t]),e},move:function(t){if(this.shown){switch(t.keyCode){case 9:case 13:case 27:t.preventDefault();break;case 38:t.preventDefault(),this.prev();break;case 40:t.preventDefault(),this.next()}t.stopPropagation()}},keydown:function(e){this.suppressKeyPressRepeat=~t.inArray(e.keyCode,[40,38,9,13,27]),this.move(e)},keypress:function(t){this.suppressKeyPressRepeat||this.move(t)},keyup:function(t){switch(t.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}t.stopPropagation(),t.preventDefault()},focus:function(t){this.focused=!0},blur:function(t){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(t){t.stopPropagation(),t.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(e){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),t(e.currentTarget).addClass("active")},mouseleave:function(t){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var i=t.fn.typeahead;t.fn.typeahead=function(i){return this.each(function(){var n=t(this),o=n.data("typeahead"),s="object"==typeof i&&i;o||n.data("typeahead",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},t.fn.typeahead.Constructor=e,t.fn.typeahead.noConflict=function(){return t.fn.typeahead=i,this},t(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(e){var i=t(this);i.data("typeahead")||i.typeahead(i.data())})}(window.jQuery),function(t){"use strict";var e=function(e,i){this.options=t.extend({},t.fn.affix.defaults,i),this.$window=t(window).on("scroll.affix.data-api",t.proxy(this.checkPosition,this)).on("click.affix.data-api",t.proxy(function(){setTimeout(t.proxy(this.checkPosition,this),1)},this)),this.$element=t(e),this.checkPosition()};e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e,i=t(document).height(),n=this.$window.scrollTop(),o=this.$element.offset(),s=this.options.offset,a=s.bottom,r=s.top;"object"!=typeof s&&(a=r=s),"function"==typeof r&&(r=s.top()),"function"==typeof a&&(a=s.bottom()),e=!(null!=this.unpin&&n+this.unpin<=o.top)&&(null!=a&&o.top+this.$element.height()>=i-a?"bottom":null!=r&&n<=r&&"top"),this.affixed!==e&&(this.affixed=e,this.unpin="bottom"==e?o.top-n:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(e?"-"+e:"")))}};var i=t.fn.affix;t.fn.affix=function(i){return this.each(function(){var n=t(this),o=n.data("affix"),s="object"==typeof i&&i;o||n.data("affix",o=new e(this,s)),"string"==typeof i&&o[i]()})},t.fn.affix.Constructor=e,t.fn.affix.defaults={offset:0},t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),i=e.data();i.offset=i.offset||{},i.offsetBottom&&(i.offset.bottom=i.offsetBottom),i.offsetTop&&(i.offset.top=i.offsetTop),e.affix(i)})})}(window.jQuery);jui/js/jquery.simplecolors.min.js000064400000006023152177723720013136 0ustar00(function($){var SimpleColorPicker=function(element,options){this.select=$(element);this.options=$.extend({},$.fn.simplecolors.defaults,options);this.select.hide();var list="";$("option",this.select).each(function(){var option=$(this);var color=option.val();if(option.text()=="-")list+="<br />";else{var clss="simplecolors-swatch";if(color=="none"){clss+=" nocolor";color="transparent"}if(option.attr("selected"))clss+=" active";list+='<span class="'+clss+'"><span style="background-color: '+color+';" tabindex="0"></span></span>'}});
var color=this.select.val();var clss="simplecolors-swatch";if(color=="none"){clss+=" nocolor";color="transparent"}this.icon=$('<span class="'+clss+'"><span style="background-color: '+color+';" tabindex="0"></span></span>').insertAfter(this.select);this.icon.on("click",$.proxy(this.show,this));this.panel=$('<span class="simplecolors-panel"></span>').appendTo(document.body);this.panel.html(list);this.panel.on("click",$.proxy(this.click,this));$(document).on("mousedown",$.proxy(this.hide,this));this.panel.on("mousedown",
$.proxy(this.mousedown,this))};SimpleColorPicker.prototype={constructor:SimpleColorPicker,show:function(){var panelpadding=7;var pos=this.icon.offset();switch(this.select.attr("data-position")){case "top":this.panel.css({left:pos.left-panelpadding,top:pos.top-this.panel.outerHeight()-1});break;case "bottom":this.panel.css({left:pos.left-panelpadding,top:pos.top+this.icon.outerHeight()});break;case "left":this.panel.css({left:pos.left-this.panel.outerWidth(),top:pos.top-(this.panel.outerHeight()-this.icon.outerHeight())/
2-1});break;case "right":default:this.panel.css({left:pos.left+this.icon.outerWidth(),top:pos.top-(this.panel.outerHeight()-this.icon.outerHeight())/2-1});break}this.panel.show(this.options.delay)},hide:function(){if(this.panel.css("display")!="none")this.panel.hide(this.options.delay)},click:function(e){var target=$(e.target);if(target.length===1)if(target[0].nodeName.toLowerCase()==="span"){var color="";var bgcolor="";var clss="";if(target.parent().hasClass("nocolor")){color="none";bgcolor="transparent";
clss="nocolor"}else{color=this.rgb2hex(target.css("background-color"));bgcolor=color}target.parent().siblings().removeClass("active");target.parent().addClass("active");this.icon.removeClass("nocolor").addClass(clss);this.icon.find("span").css("background-color",bgcolor);this.hide();this.select.val(color).change()}},mousedown:function(e){e.stopPropagation();e.preventDefault()},rgb2hex:function(rgb){function hex(x){return("0"+parseInt(x,10).toString(16)).slice(-2)}var matches=rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
if(matches===null)return rgb;else return"#"+hex(matches[1])+hex(matches[2])+hex(matches[3])}};$.fn.simplecolors=function(option){return this.each(function(){var $this=$(this),data=$this.data("simplecolors"),options=typeof option==="object"&&option;if(!data)$this.data("simplecolors",data=new SimpleColorPicker(this,options));if(typeof option==="string")data[option]()})};$.fn.simplecolors.Constructor=SimpleColorPicker;$.fn.simplecolors.defaults={delay:0}})(jQuery);
jui/js/jquery.ui.sortable.min.js000064400000057543152177723720012667 0ustar00/*!
 * jQuery UI Sortable v1.9.2 - 2013-07-14
 *
 * http://jqueryui.com
 *
 * Copyright 2013 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/sortable/
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(a,b){a.widget("ui.sortable",a.ui.mouse,{version:"1.9.2",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},_create:function(){var c=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?c.axis==="x"||(/left|right/).test(this.items[0].item.css("float"))||(/inline|table-cell/).test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit();this.ready=true},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled");this._mouseDestroy();for(var c=this.items.length-1;c>=0;c--){this.items[c].item.removeData(this.widgetName+"-item")}return this},_setOption:function(c,d){if(c==="disabled"){this.options[c]=d;this.widget().toggleClass("ui-sortable-disabled",!!d)}else{a.Widget.prototype._setOption.apply(this,arguments)}},_mouseCapture:function(f,g){var e=this;if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(f);var d=null,c=a(f.target).parents().each(function(){if(a.data(this,e.widgetName+"-item")==e){d=a(this);return false}});if(a.data(f.target,e.widgetName+"-item")==e){d=a(f.target)}if(!d){return false}if(this.options.handle&&!g){var h=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==f.target){h=true}});if(!h){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,c){var g=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;(g.cursorAt&&this._adjustOffsetFromHelper(g.cursorAt));this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!c){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,this._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(g){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var h=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-g.pageY<h.scrollSensitivity){this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+h.scrollSpeed}else{if(g.pageY-this.overflowOffset.top<h.scrollSensitivity){this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-h.scrollSpeed}}if((this.overflowOffset.left+this.scrollParent[0].offsetWidth)-g.pageX<h.scrollSensitivity){this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+h.scrollSpeed}else{if(g.pageX-this.overflowOffset.left<h.scrollSensitivity){this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-h.scrollSpeed}}}else{if(g.pageY-a(document).scrollTop()<h.scrollSensitivity){c=a(document).scrollTop(a(document).scrollTop()-h.scrollSpeed)}else{if(a(window).height()-(g.pageY-a(document).scrollTop())<h.scrollSensitivity){c=a(document).scrollTop(a(document).scrollTop()+h.scrollSpeed)}}if(g.pageX-a(document).scrollLeft()<h.scrollSensitivity){c=a(document).scrollLeft(a(document).scrollLeft()-h.scrollSpeed)}else{if(a(window).width()-(g.pageX-a(document).scrollLeft())<h.scrollSensitivity){c=a(document).scrollLeft(a(document).scrollLeft()+h.scrollSpeed)}}}if(c!==false&&a.ui.ddmanager&&!h.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,g)}}this.positionAbs=this._convertPositionTo("absolute");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"}for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],d=f.item[0],j=this._intersectsWithPointer(f);if(!j){continue}if(f.instance!==this.currentContainer){continue}if(d!=this.currentItem[0]&&this.placeholder[j==1?"next":"prev"]()[0]!=d&&!a.contains(this.placeholder[0],d)&&(this.options.type=="semi-dynamic"?!a.contains(this.element[0],d):true)){this.direction=j==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f)){this._rearrange(g,f)}else{break}this._trigger("change",g,this._uiHash());break}}this._contactContainers(g);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,g)}this._trigger("sort",g,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(d,e){if(!d){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,d)}if(this.options.revert){var c=this;var f=this.placeholder.offset();this.reverting=true;a(this.helper).animate({left:f.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:f.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(d)})}else{this._clear(d,e)}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()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,this._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,this._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder){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()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}}return this},serialize:function(e){var c=this._getItemsAsjQuery(e&&e.connected);var d=[];e=e||{};a(c).each(function(){var f=(a(e.item||this).attr(e.attribute||"id")||"").match(e.expression||(/(.+)[-=_](.+)/));if(f){d.push((e.key||f[1]+"[]")+"="+(e.key&&e.expression?f[1]:f[2]))}});if(!d.length&&e.key){d.push(e.key+"=")}return d.join("&")},toArray:function(e){var c=this._getItemsAsjQuery(e&&e.connected);var d=[];e=e||{};c.each(function(){d.push(a(e.item||this).attr(e.attribute||"id")||"")});return d},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)<i&&(e+h)>f&&(e+h)<c;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>m[this.floating?"width":"height"])){return g}else{return(f<e+(this.helperProportions.width/2)&&d-(this.helperProportions.width/2)<c&&n<k+(this.helperProportions.height/2)&&j-(this.helperProportions.height/2)<i)}},_intersectsWithPointer:function(e){var f=(this.options.axis==="x")||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),d=(this.options.axis==="y")||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),h=f&&d,c=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();if(!h){return false}return this.floating?(((g&&g=="right")||c=="down")?2:1):(c&&(c=="down"?2:1))},_intersectsWithSides:function(f){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,f.top+(f.height/2),f.height),e=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,f.left+(f.width/2),f.width),c=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();if(this.floating&&g){return((g=="right"&&e)||(g=="left"&&!e))}else{return c&&((c=="down"&&d)||(c=="up"&&!d))}},_getDragVerticalDirection:function(){var c=this.positionAbs.top-this.lastPositionAbs.top;return c!=0&&(c>0?"down":"up")},_getDragHorizontalDirection:function(){var c=this.positionAbs.left-this.lastPositionAbs.left;return c!=0&&(c>0?"right":"left")},refresh:function(c){this._refreshItems(c);this.refreshPositions();return this},_connectWith:function(){var c=this.options;return c.connectWith.constructor==String?[c.connectWith]:c.connectWith},_getItemsAsjQuery:function(h){var c=[];var e=[];var g=this._connectWith();if(g&&h){for(var f=g.length-1;f>=0;f--){var l=a(g[f]);for(var d=l.length-1;d>=0;d--){var k=a.data(l[d],this.widgetName);if(k&&k!=this&&!k.options.disabled){e.push([a.isFunction(k.options.items)?k.options.items.call(k.element):a(k.options.items,k.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),k])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var f=e.length-1;f>=0;f--){e[f][0].each(function(){c.push(this)})}return a(c)},_removeCurrentsFromItems:function(){var c=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=a.grep(this.items,function(e){for(var d=0;d<c.length;d++){if(c[d]==e.item[0]){return false}}return true})},_refreshItems:function(c){this.items=[];this.containers=[this];var k=this.items;var g=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],c,{item:this.currentItem}):a(this.options.items,this.element),this]];var m=this._connectWith();if(m&&this.ready){for(var f=m.length-1;f>=0;f--){var n=a(m[f]);for(var e=n.length-1;e>=0;e--){var h=a.data(n[e],this.widgetName);if(h&&h!=this&&!h.options.disabled){g.push([a.isFunction(h.options.items)?h.options.items.call(h.element[0],c,{item:this.currentItem}):a(h.options.items,h.element),h]);this.containers.push(h)}}}}for(var f=g.length-1;f>=0;f--){var l=g[f][1];var d=g[f][0];for(var e=0,o=d.length;e<o;e++){var p=a(d[e]);p.data(this.widgetName+"-item",l);k.push({item:p,instance:l,width:0,height:0,left:0,top:0})}}},refreshPositions:function(c){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var e=this.items.length-1;e>=0;e--){var f=this.items[e];if(f.instance!=this.currentContainer&&this.currentContainer&&f.item[0]!=this.currentItem[0]){continue}var d=this.options.toleranceElement?a(this.options.toleranceElement,f.item):f.item;if(!c){f.width=d.outerWidth();f.height=d.outerHeight()}var g=d.offset();f.left=g.left;f.top=g.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var e=this.containers.length-1;e>=0;e--){var g=this.containers[e].element.offset();this.containers[e].containerCache.left=g.left;this.containers[e].containerCache.top=g.top;this.containers[e].containerCache.width=this.containers[e].element.outerWidth();this.containers[e].containerCache.height=this.containers[e].element.outerHeight()}}return this},_createPlaceholder:function(d){d=d||this;var e=d.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(d.currentItem[0].nodeName)).addClass(c||d.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(d.currentItem.innerHeight()-parseInt(d.currentItem.css("paddingTop")||0,10)-parseInt(d.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(d.currentItem.innerWidth()-parseInt(d.currentItem.css("paddingLeft")||0,10)-parseInt(d.currentItem.css("paddingRight")||0,10))}}}}d.placeholder=a(e.placeholder.element.call(d.element,d.currentItem));d.currentItem.after(d.placeholder);e.placeholder.update(d,d.placeholder)},_contactContainers:function(c){var e=null,n=null;for(var h=this.containers.length-1;h>=0;h--){if(a.contains(this.currentItem[0],this.containers[h].element[0])){continue}if(this._intersectsWith(this.containers[h].containerCache)){if(e&&a.contains(this.containers[h].element[0],e.element[0])){continue}e=this.containers[h];n=h}else{if(this.containers[h].containerCache.over){this.containers[h]._trigger("out",c,this._uiHash(this));this.containers[h].containerCache.over=0}}}if(!e){return}if(this.containers.length===1){this.containers[n]._trigger("over",c,this._uiHash(this));this.containers[n].containerCache.over=1}else{var m=10000;var k=null;var l=this.containers[n].floating?"left":"top";var o=this.containers[n].floating?"width":"height";var d=this.positionAbs[l]+this.offset.click[l];for(var f=this.items.length-1;f>=0;f--){if(!a.contains(this.containers[n].element[0],this.items[f].item[0])){continue}if(this.items[f].item[0]==this.currentItem[0]){continue}var p=this.items[f].item.offset()[l];var g=false;if(Math.abs(p-d)>Math.abs(p+this.items[f][o]-d)){g=true;p+=this.items[f][o]}if(Math.abs(p-d)<m){m=Math.abs(p-d);k=this.items[f];this.direction=g?"up":"down"}}if(!k&&!this.options.dropOnEmpty){return}this.currentContainer=this.containers[n];k?this._rearrange(c,k,null,true):this._rearrange(c,null,this.containers[n].element,true);this._trigger("change",c,this._uiHash());this.containers[n]._trigger("change",c,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[n]._trigger("over",c,this._uiHash(this));this.containers[n].containerCache.over=1}},_createHelper:function(d){var e=this.options;var c=a.isFunction(e.helper)?a(e.helper.apply(this.element[0],[d,this.currentItem])):(e.helper=="clone"?this.currentItem.clone():this.currentItem);if(!c.parents("body").length){a(e.appendTo!="parent"?e.appendTo:this.currentItem[0].parentNode)[0].appendChild(c[0])}if(c[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(c[0].style.width==""||e.forceHelperSize){c.width(this.currentItem.width())}if(c[0].style.height==""||e.forceHelperSize){c.height(this.currentItem.height())}return c},_adjustOffsetFromHelper:function(c){if(typeof c=="string"){c=c.split(" ")}if(a.isArray(c)){c={left:+c[0],top:+c[1]||0}}if("left" in c){this.offset.click.left=c.left+this.margins.left}if("right" in c){this.offset.click.left=this.helperProportions.width-c.right+this.margins.left}if("top" in c){this.offset.click.top=c.top+this.margins.top}if("bottom" in c){this.offset.click.top=this.helperProportions.height-c.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var c=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){c.left+=this.scrollParent.scrollLeft();c.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.ui.ie)){c={top:0,left:0}}return{top:c.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:c.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var c=this.currentItem.position();return{top:c.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:c.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 f=this.options;if(f.containment=="parent"){f.containment=this.helper[0].parentNode}if(f.containment=="document"||f.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(f.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(f.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(f.containment)){var d=a(f.containment)[0];var e=a(f.containment).offset();var c=(a(d).css("overflow")!="hidden");this.containment=[e.left+(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0)-this.margins.left,e.top+(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0)-this.margins.top,e.left+(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,e.top+(c?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(g,i){if(!i){i=this.position}var e=g=="absolute"?1:-1;var f=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,h=(/(html|body)/i).test(c[0].tagName);return{top:(i.top+this.offset.relative.top*e+this.offset.parent.top*e-((this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(h?0:c.scrollTop()))*e)),left:(i.left+this.offset.relative.left*e+this.offset.parent.left*e-((this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():h?0:c.scrollLeft())*e))}},_generatePosition:function(f){var i=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,j=(/(html|body)/i).test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var e=f.pageX;var d=f.pageY;if(this.originalPosition){if(this.containment){if(f.pageX-this.offset.click.left<this.containment[0]){e=this.containment[0]+this.offset.click.left}if(f.pageY-this.offset.click.top<this.containment[1]){d=this.containment[1]+this.offset.click.top}if(f.pageX-this.offset.click.left>this.containment[2]){e=this.containment[2]+this.offset.click.left}if(f.pageY-this.offset.click.top>this.containment[3]){d=this.containment[3]+this.offset.click.top}}if(i.grid){var h=this.originalPageY+Math.round((d-this.originalPageY)/i.grid[1])*i.grid[1];d=this.containment?(!(h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3])?h:(!(h-this.offset.click.top<this.containment[1])?h-i.grid[1]:h+i.grid[1])):h;var g=this.originalPageX+Math.round((e-this.originalPageX)/i.grid[0])*i.grid[0];e=this.containment?(!(g-this.offset.click.left<this.containment[0]||g-this.offset.click.left>this.containment[2])?g:(!(g-this.offset.click.left<this.containment[0])?g-i.grid[0]:g+i.grid[0])):g}}return{top:(d-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+((this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(j?0:c.scrollTop())))),left:(e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+((this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():j?0:c.scrollLeft())))}},_rearrange:function(g,f,d,e){d?d[0].appendChild(this.placeholder[0]):f.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?f.item[0]:f.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var c=this.counter;this._delay(function(){if(c==this.counter){this.refreshPositions(!e)}})},_clear:function(d,e){this.reverting=false;var f=[];if(!this._noFinalSort&&this.currentItem.parent().length){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var c in this._storedCSS){if(this._storedCSS[c]=="auto"||this._storedCSS[c]=="static"){this._storedCSS[c]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.fromOutside&&!e){f.push(function(g){this._trigger("receive",g,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])&&!e){f.push(function(g){this._trigger("update",g,this._uiHash())})}if(this!==this.currentContainer){if(!e){f.push(function(g){this._trigger("remove",g,this._uiHash())});f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.currentContainer));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.currentContainer))}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}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(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return false}if(!e){this._trigger("beforeStop",d,this._uiHash())}this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.helper[0]!=this.currentItem[0]){this.helper.remove()}this.helper=null;if(!e){for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){if(a.Widget.prototype._trigger.apply(this,arguments)===false){this.cancel()}},_uiHash:function(c){var d=c||this;return{helper:d.helper,placeholder:d.placeholder||a([]),position:d.position,originalPosition:d.originalPosition,offset:d.positionAbs,item:d.currentItem,sender:c?c.element:null}}})})(jQuery);jui/js/html5-uncompressed.js000064400000024133152177723720012063 0ustar00/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
;(function(window, document) {
/*jshint evil:true */
  /** version */
  var version = '3.7.3';

  /** 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;
  }

  /**
   * Extends the built-in list of html5 elements
   * @memberOf html5
   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
   * @param {Document} ownerDocument The context document.
   */
  function addElements(newElements, ownerDocument) {
    var elements = html5.elements;
    if(typeof elements != 'string'){
      elements = elements.join(' ');
    }
    if(typeof newElements != 'string'){
      newElements = newElements.join(' ');
    }
    html5.elements = elements +' '+ newElements;
    shivDocument(ownerDocument);
  }

   /**
   * 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|DocumentFragment} 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 picture 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,

    //extends list of elements
    addElements: addElements
  };

  /*--------------------------------------------------------------------------*/

  // expose html5
  window.html5 = html5;

  // shiv the document
  shivDocument(document);

  if(typeof module == 'object' && module.exports){
    module.exports = html5;
  }

}(typeof window !== "undefined" ? window : this, document));
jui/js/icomoon-lte-ie7.js000064400000023214152177723720011233 0ustar00/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */

window.onload = function() {
	function addIcon(el, entity) {
		var html = el.innerHTML;
		el.innerHTML = '<span style="font-family: \'IcoMoon\'">' + entity + '</span>' + html;
	}
	var icons = {
			'icon-joomla' : '&#xe200;',
			'icon-chevron-up' : '&#xe005;',
			'icon-uparrow' : '&#xe005;',
			'icon-arrow-up' : '&#xe005;',
			'icon-chevron-right' : '&#xe006;',
			'icon-rightarrow' : '&#xe006;',
			'icon-arrow-right' : '&#xe006;',
			'icon-chevron-down' : '&#xe007;',
			'icon-downarrow' : '&#xe007;',
			'icon-arrow-down' : '&#xe007;',
			'icon-chevron-left' : '&#xe008;',
			'icon-leftarrow' : '&#xe008;',
			'icon-arrow-left' : '&#xe008;',
			'icon-arrow-first' : '&#xe003;',
			'icon-arrow-last' : '&#xe004;',
			'icon-arrow-up-2' : '&#xe009;',
			'icon-arrow-right-2' : '&#xe00a;',
			'icon-arrow-down-2' : '&#xe00b;',
			'icon-arrow-left-2' : '&#xe00c;',
			'icon-arrow-up-3' : '&#xe00f;',
			'icon-arrow-right-3' : '&#xe010;',
			'icon-arrow-down-3' : '&#xe011;',
			'icon-arrow-left-3' : '&#xe012;',
			'icon-menu-2' : '&#xe00e;',
			'icon-arrow-up-4' : '&#xe201;',
			'icon-arrow-right-4' : '&#xe202;',
			'icon-arrow-down-4' : '&#xe203;',
			'icon-arrow-left-4' : '&#xe204;',
			'icon-share' : '&#x27;',
			'icon-redo' : '&#x27;',
			'icon-undo' : '&#x28;',
			'icon-forward-2' : '&#xe205;',
			'icon-backward-2' : '&#xe206;',
			'icon-reply' : '&#xe206;',
			'icon-unblock' : '&#x6c;',
			'icon-refresh' : '&#x6c;',
			'icon-redo-2' : '&#x6c;',
			'icon-undo-2' : '&#xe207;',
			'icon-move' : '&#x7a;',
			'icon-expand' : '&#x66;',
			'icon-contract' : '&#x67;',
			'icon-expand-2' : '&#x68;',
			'icon-contract-2' : '&#x69;',
			'icon-play' : '&#xe208;',
			'icon-pause' : '&#xe209;',
			'icon-stop' : '&#xe210;',
			'icon-previous' : '&#x7c;',
			'icon-backward' : '&#x7c;',
			'icon-next' : '&#x7b;',
			'icon-forward' : '&#x7b;',
			'icon-first' : '&#x7d;',
			'icon-last' : '&#xe000;',
			'icon-play-circle' : '&#xe00d;',
			'icon-pause-circle' : '&#xe211;',
			'icon-stop-circle' : '&#xe212;',
			'icon-backward-circle' : '&#xe213;',
			'icon-forward-circle' : '&#xe214;',
			'icon-loop' : '&#xe001;',
			'icon-shuffle' : '&#xe002;',
			'icon-search' : '&#x53;',
			'icon-zoom-in' : '&#x64;',
			'icon-zoom-out' : '&#x65;',
			'icon-apply' : '&#x2b;',
			'icon-edit' : '&#x2b;',
			'icon-pencil' : '&#x2b;',
			'icon-pencil-2' : '&#x2c;',
			'icon-brush' : '&#x3b;',
			'icon-save-new' : '&#x5d;',
			'icon-plus-2 ' : '&#x5d;',
			'icon-minus-sign' : '&#x5e;',
			'icon-minus-2' : '&#x5e;',
			'icon-delete' : '&#x49;',
			'icon-remove' : '&#x49;',
			'icon-cancel-2' : '&#x49;',
			'icon-publish' : '&#x47;',
			'icon-save' : '&#x47;',
			'icon-ok' : '&#x47;',
			'icon-checkmark' : '&#x47;',
			'icon-new' : '&#x2a;',
			'icon-plus' : '&#x2a;',
			'icon-plus-circle' : '&#xe215;',
			'icon-minus' : '&#x4b;',
			'icon-not-ok' : '&#x4b;',
			'icon-ban-circle' : '&#xe216;',
			'icon-minus-circle' : '&#xe216;',
			'icon-unpublish' : '&#x4a;',
			'icon-cancel' : '&#x4a;',
			'icon-cancel-circle' : '&#xe217;',
			'icon-checkmark-2' : '&#xe218;',
			'icon-checkmark-circle' : '&#xe219;',
			'icon-info' : '&#xe220;',
			'icon-info-2' : '&#xe221;',
			'icon-info-circle' : '&#xe221;',
			'icon-question' : '&#x45;',
			'icon-question-sign' : '&#x45;',
			'icon-help' : '&#x45;',
			'icon-question-2' : '&#xe222;',
			'icon-question-circle' : '&#xe222;',
			'icon-notification' : '&#xe223;',
			'icon-notification-2' : '&#xe224;',
			'icon-notification-circle' : '&#xe224;',
			'icon-pending' : '&#x48;',
			'icon-warning' : '&#x48;',
			'icon-warning-2' : '&#xe225;',
			'icon-warning-circle' : '&#xe225;',
			'icon-checkbox-unchecked' : '&#x3d;',
			'icon-checkin' : '&#x3e;',
			'icon-checkbox' : '&#x3e;',
			'icon-checkbox-checked' : '&#x3e;',
			'icon-checkbox-partial' : '&#x3f;',
			'icon-square' : '&#xe226;',
			'icon-radio-unchecked' : '&#xe227;',
			'icon-radio-checked' : '&#xe228;',
			'icon-circle' : '&#xe229;',
			'icon-signup' : '&#xe230;',
			'icon-grid' : '&#x58;',
			'icon-grid-view' : '&#x58;',
			'icon-grid-2' : '&#x59;',
			'icon-grid-view-2' : '&#x59;',
			'icon-menu' : '&#x5a;',
			'icon-list' : '&#x31;',
			'icon-list-view' : '&#x31;',
			'icon-list-2' : '&#xe231;',
			'icon-menu-3' : '&#xe232;',
			'icon-folder-open' : '&#x2d;',
			'icon-folder' : '&#x2d;',
			'icon-folder-close' : '&#x2e;',
			'icon-folder-2' : '&#x2e;',
			'icon-folder-plus' : '&#xe234;',
			'icon-folder-minus' : '&#xe235;',
			'icon-folder-3' : '&#xe236;',
			'icon-folder-plus-2' : '&#xe237;',
			'icon-folder-remove' : '&#xe238;',
			'icon-file' : '&#xe016;',
			'icon-file-2' : '&#xe239;',
			'icon-file-add' : '&#x29;',
			'icon-file-plus' : '&#x29;',
			'icon-file-minus' : '&#xe017;',
			'icon-file-check' : '&#xe240;',
			'icon-file-remove' : '&#xe241;',
			'icon-save-copy' : '&#xe018;',
			'icon-copy' : '&#xe018;',
			'icon-stack' : '&#xe242;',
			'icon-tree' : '&#xe243;',
			'icon-tree-2' : '&#xe244;',
			'icon-paragraph-left' : '&#xe246;',
			'icon-paragraph-center' : '&#xe247;',
			'icon-paragraph-right' : '&#xe248;',
			'icon-paragraph-justify' : '&#xe249;',
			'icon-screen' : '&#xe01c;',
			'icon-tablet' : '&#xe01d;',
			'icon-mobile' : '&#xe01e;',
			'icon-box-add' : '&#x51;',
			'icon-box-remove' : '&#x52;',
			'icon-download' : '&#xe021;',
			'icon-upload' : '&#xe022;',
			'icon-home' : '&#x21;',
			'icon-home-2' : '&#xe250;',
			'icon-out-2' : '&#xe024;',
			'icon-new-tab' : '&#xe024;',
			'icon-out-3' : '&#xe251;',
			'icon-new-tab-2' : '&#xe251;',
			'icon-link' : '&#xe252;',
			'icon-picture' : '&#x2f;',
			'icon-image' : '&#x2f;',
			'icon-pictures' : '&#x30;',
			'icon-images' : '&#x30;',
			'icon-palette' : '&#xe014;',
			'icon-color-palette' : '&#xe014;',
			'icon-camera' : '&#x55;',
			'icon-camera-2' : '&#xe015;',
			'icon-video' : '&#xe015;',
			'icon-play-2' : '&#x56;',
			'icon-video-2' : '&#x56;',
			'icon-youtube' : '&#x56;',
			'icon-music' : '&#x57;',
			'icon-user' : '&#x22;',
			'icon-users' : '&#xe01f;',
			'icon-vcard' : '&#x6d;',
			'icon-address' : '&#x70;',
			'icon-share-alt' : '&#x26;',
			'icon-out' : '&#x26;',
			'icon-enter' : '&#xe257;',
			'icon-exit' : '&#xe258;',
			'icon-comment' : '&#x24;',
			'icon-comments' : '&#x24;',
			'icon-comments-2' : '&#x25;',
			'icon-quote' : '&#x60;',
			'icon-quotes-left' : '&#x60;',
			'icon-quote-2' : '&#x61;',
			'icon-quotes-right' : '&#x61;',
			'icon-quote-3' : '&#xe259;',
			'icon-bubble-quote' : '&#xe259;',
			'icon-phone' : '&#xe260;',
			'icon-phone-2' : '&#xe261;',
			'icon-envelope' : '&#x4d;',
			'icon-mail' : '&#x4d;',
			'icon-envelope-opened' : '&#x4e;',
			'icon-mail-2' : '&#x4e;',
			'icon-unarchive' : '&#x4f;',
			'icon-drawer' : '&#x4f;',
			'icon-archive' : '&#x50;',
			'icon-drawer-2' : '&#x50;',
			'icon-briefcase' : '&#xe020;',
			'icon-tag' : '&#xe262;',
			'icon-tag-2' : '&#xe263;',
			'icon-tags' : '&#xe264;',
			'icon-tags-2' : '&#xe265;',
			'icon-options' : '&#x38;',
			'icon-cog' : '&#x38;',
			'icon-cogs' : '&#x37;',
			'icon-screwdriver' : '&#x36;',
			'icon-tools' : '&#x36;',
			'icon-wrench' : '&#x3a;',
			'icon-equalizer' : '&#x39;',
			'icon-dashboard' : '&#x78;',
			'icon-switch' : '&#xe266;',
			'icon-filter' : '&#x54;',
			'icon-purge' : '&#x4c;',
			'icon-trash' : '&#x4c;',
			'icon-checkedout' : '&#x23;',
			'icon-lock' : '&#x23;',
			'icon-locked' : '&#x23;',
			'icon-unlock' : '&#xe267;',
			'icon-key' : '&#x5f;',
			'icon-support' : '&#x46;',
			'icon-database' : '&#x62;',
			'icon-scissors' : '&#xe268;',
			'icon-health' : '&#x6a;',
			'icon-wand' : '&#x6b;',
			'icon-eye-open' : '&#x3c;',
			'icon-eye' : '&#x3c;',
			'icon-eye-close' : '&#xe269;',
			'icon-eye-blocked' : '&#xe269;',
			'icon-eye-2' : '&#xe269;',
			'icon-clock' : '&#x6e;',
			'icon-compass' : '&#x6f;',
			'icon-broadcast' : '&#xe01b;',
			'icon-connection' : '&#xe01b;',
			'icon-wifi' : '&#xe01b;',
			'icon-book' : '&#xe271;',
			'icon-lightning' : '&#x79;',
			'icon-flash' : '&#x79;',
			'icon-print' : '&#xe013;',
			'icon-printer' : '&#xe013;',
			'icon-feed' : '&#x71;',
			'icon-calendar' : '&#x43;',
			'icon-calendar-2' : '&#x44;',
			'icon-calendar-3' : '&#xe273;',
			'icon-pie' : '&#x77;',
			'icon-bars' : '&#x76;',
			'icon-chart' : '&#x75;',
			'icon-power-cord' : '&#x32;',
			'icon-cube' : '&#x33;',
			'icon-puzzle' : '&#x34;',
			'icon-attachment' : '&#x72;',
			'icon-paperclip' : '&#x72;',
			'icon-flag-2' : '&#x72;',
			'icon-lamp' : '&#x74;',
			'icon-pin' : '&#x73;',
			'icon-pushpin' : '&#x73;',
			'icon-location' : '&#x63;',
			'icon-shield' : '&#xe274;',
			'icon-flag' : '&#x35;',
			'icon-flag-3' : '&#xe275;',
			'icon-bookmark' : '&#xe023;',
			'icon-bookmark-2' : '&#xe276;',
			'icon-heart' : '&#xe277;',
			'icon-heart-2' : '&#xe278;',
			'icon-thumbs-up' : '&#x5b;',
			'icon-thumbs-down' : '&#x5c;',
			'icon-unfeatured' : '&#x40;',
			'icon-asterisk' : '&#x40;',
			'icon-star-empty' : '&#x40;',
			'icon-star-2' : '&#x41;',
			'icon-featured' : '&#x42;',
			'icon-default' : '&#x42;',
			'icon-star' : '&#x42;',
			'icon-smiley' : '&#xe279;',
			'icon-smiley-happy' : '&#xe279;',
			'icon-smiley-2' : '&#xe280;',
			'icon-smiley-happy-2' : '&#xe280;',
			'icon-smiley-sad' : '&#xe281;',
			'icon-smiley-sad-2' : '&#xe282;',
			'icon-smiley-neutral' : '&#xe283;',
			'icon-smiley-neutral-2' : '&#xe284;',
			'icon-cart' : '&#xe019;',
			'icon-basket' : '&#xe01a;',
			'icon-credit' : '&#xe286;',
			'icon-credit-2' : '&#xe287;'
		},
		els = document.getElementsByTagName('*'),
		i, attr, c, el;
	for (i = 0; ; i += 1) {
		el = els[i];
		if(!el) {
			break;
		}
		attr = el.getAttribute('data-icon');
		if (attr) {
			addIcon(el, attr);
		}
		c = el.className;
		c = c.match(/icon-[^\s'"]+/);
		if (c && icons[c[0]]) {
			addIcon(el, icons[c[0]]);
		}
	}
};
jui/js/jquery.ui.core.js000064400000127360152177723720011215 0ustar00/*! jQuery UI - v1.9.2 - 2013-07-14
* http://jqueryui.com
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js
* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */

(function( $, undefined ) {

var uuid = 0,
	runiqueId = /^ui-id-\d+$/;

// prevent duplicate loading
// this is only a problem because we proxy existing functions
// and we don't want to double proxy them
$.ui = $.ui || {};
if ( $.ui.version ) {
	return;
}

$.extend( $.ui, {
	version: "1.9.2",

	keyCode: {
		BACKSPACE: 8,
		COMMA: 188,
		DELETE: 46,
		DOWN: 40,
		END: 35,
		ENTER: 13,
		ESCAPE: 27,
		HOME: 36,
		LEFT: 37,
		NUMPAD_ADD: 107,
		NUMPAD_DECIMAL: 110,
		NUMPAD_DIVIDE: 111,
		NUMPAD_ENTER: 108,
		NUMPAD_MULTIPLY: 106,
		NUMPAD_SUBTRACT: 109,
		PAGE_DOWN: 34,
		PAGE_UP: 33,
		PERIOD: 190,
		RIGHT: 39,
		SPACE: 32,
		TAB: 9,
		UP: 38
	}
});

// plugins
$.fn.extend({
	_focus: $.fn.focus,
	focus: function( delay, fn ) {
		return typeof delay === "number" ?
			this.each(function() {
				var elem = this;
				setTimeout(function() {
					$( elem ).focus();
					if ( fn ) {
						fn.call( elem );
					}
				}, delay );
			}) :
			this._focus.apply( this, arguments );
	},

	scrollParent: function() {
		var scrollParent;
		if (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
			scrollParent = this.parents().filter(function() {
				return (/(relative|absolute|fixed)/).test($.css(this,'position')) && (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x'));
			}).eq(0);
		} else {
			scrollParent = this.parents().filter(function() {
				return (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x'));
			}).eq(0);
		}

		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
	},

	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;
	},

	uniqueId: function() {
		return this.each(function() {
			if ( !this.id ) {
				this.id = "ui-id-" + (++uuid);
			}
		});
	},

	removeUniqueId: function() {
		return this.each(function() {
			if ( runiqueId.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().andSelf().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
$(function() {
	var body = document.body,
		div = body.appendChild( div = document.createElement( "div" ) );

	// access offsetHeight before setting the style to prevent a layout bug
	// in IE 9 which causes the element to continue to take up space even
	// after it is removed from the DOM (#8026)
	div.offsetHeight;

	$.extend( div.style, {
		minHeight: "100px",
		height: "auto",
		padding: 0,
		borderWidth: 0
	});

	$.support.minHeight = div.offsetHeight === 100;
	$.support.selectstart = "onselectstart" in div;

	// set display to none to avoid a layout bug in IE
	// http://dev.jquery.com/ticket/4014
	body.removeChild( div ).style.display = "none";
});

// 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.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

(function() {
	var uaMatch = /msie ([\w.]+)/.exec( navigator.userAgent.toLowerCase() ) || [];
	$.ui.ie = uaMatch.length ? true : false;
	$.ui.ie6 = parseFloat( uaMatch[ 1 ], 10 ) === 6;
})();

$.fn.extend({
	disableSelection: function() {
		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
			".ui-disableSelection", function( event ) {
				event.preventDefault();
			});
	},

	enableSelection: function() {
		return this.unbind( ".ui-disableSelection" );
	}
});

$.extend( $.ui, {
	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
	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 ) {
			var i,
				set = instance.plugins[ name ];
			if ( !set || !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 );
				}
			}
		}
	},

	contains: $.contains,

	// only used by resizable
	hasScroll: function( el, a ) {

		//If overflow is hidden, the element might have extra content, but the user wants to hide it
		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;
	},

	// these are odd functions, fix the API or move into individual plugins
	isOverAxis: function( x, reference, size ) {
		//Determines when x coordinate is over "b" element axis
		return ( x > reference ) && ( x < ( reference + size ) );
	},
	isOver: function( y, x, top, left, height, width ) {
		//Determines when x, y coordinates is over "b" element
		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
	}
});

})( jQuery );
(function( $, undefined ) {

var uuid = 0,
	slice = Array.prototype.slice,
	_cleanData = $.cleanData;
$.cleanData = function( elems ) {
	for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
		try {
			$( elem ).triggerHandler( "remove" );
		// http://bugs.jquery.com/ticket/8235
		} catch( e ) {}
	}
	_cleanData( elems );
};

$.widget = function( name, base, prototype ) {
	var fullName, existingConstructor, constructor, basePrototype,
		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 ) ) {
			prototype[ 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
	}, prototype, {
		constructor: constructor,
		namespace: namespace,
		widgetName: name,
		// TODO remove widgetBaseClass, see #8155
		widgetBaseClass: fullName,
		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 );
};

$.widget.extend = function( target ) {
	var input = 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 = slice.call( arguments, 1 ),
			returnValue = this;

		// allow multiple hashes to be passed on init
		options = !isMethodCall && args.length ?
			$.widget.extend.apply( null, [ options ].concat(args) ) :
			options;

		if ( isMethodCall ) {
			this.each(function() {
				var methodValue,
					instance = $.data( this, fullName );
				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 {
			this.each(function() {
				var instance = $.data( this, fullName );
				if ( instance ) {
					instance.option( options || {} )._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 = uuid++;
		this.eventNamespace = "." + this.widgetName + this.uuid;
		this.options = $.widget.extend( {},
			this.options,
			this._getCreateOptions(),
			options );

		this.bindings = $();
		this.hoverable = $();
		this.focusable = $();

		if ( element !== this ) {
			// 1.9 BC for #7810
			// TODO remove dual storage
			$.data( element, this.widgetName, 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._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 )
			// 1.9 BC for #7810
			// TODO remove dual storage
			.removeData( this.widgetName )
			.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 ( value === undefined ) {
					return curOption[ key ] === undefined ? null : curOption[ key ];
				}
				curOption[ key ] = value;
			} else {
				if ( value === undefined ) {
					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 ui-state-disabled", !!value )
				.attr( "aria-disabled", value );
			this.hoverable.removeClass( "ui-state-hover" );
			this.focusable.removeClass( "ui-state-focus" );
		}

		return this;
	},

	enable: function() {
		return this._setOption( "disabled", false );
	},
	disable: function() {
		return this._setOption( "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 {
			// accept selectors, DOM elements
			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 );
	},

	_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 ] || $.uiBackCompat !== false && $.effects[ 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();
			});
		}
	};
});

// DEPRECATED
if ( $.uiBackCompat !== false ) {
	$.Widget.prototype._getCreateOptions = function() {
		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
	};
}

})( jQuery );
(function( $, undefined ) {

var mouseHandled = false;
$( document ).mouseup( function( e ) {
	mouseHandled = false;
});

$.widget("ui.mouse", {
	version: "1.9.2",
	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 ) {
			$(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; }

		// 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);
		};
		$(document)
			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);

		event.preventDefault();

		mouseHandled = true;
		return true;
	},

	_mouseMove: function(event) {
		// IE mouseup check - mouseup happened when mouse was out of window
		if ($.ui.ie && !(document.documentMode >= 9) && !event.button) {
			return this._mouseUp(event);
		}

		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) {
		$(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);
		}

		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);
(function( $, undefined ) {

$.ui = $.ui || {};

var cachedScrollbarWidth,
	max = Math.max,
	abs = Math.abs,
	round = Math.round,
	rhorizontal = /left|center|right/,
	rvertical = /top|center|bottom/,
	roffset = /[\+\-]\d+%?/,
	rposition = /^\w+/,
	rpercent = /%$/,
	_position = $.fn.position;

function getOffsets( offsets, width, height ) {
	return [
		parseInt( offsets[ 0 ], 10 ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
		parseInt( offsets[ 1 ], 10 ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
	];
}
function parseCss( element, property ) {
	return parseInt( $.css( element, property ), 10 ) || 0;
}

$.position = {
	scrollbarWidth: function() {
		if ( cachedScrollbarWidth !== undefined ) {
			return cachedScrollbarWidth;
		}
		var w1, w2,
			div = $( "<div style='display:block;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.element.css( "overflow-x" ),
			overflowY = within.isWindow ? "" : 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: hasOverflowX ? $.position.scrollbarWidth() : 0,
			height: hasOverflowY ? $.position.scrollbarWidth() : 0
		};
	},
	getWithinInfo: function( element ) {
		var withinElement = $( element || window ),
			isWindow = $.isWindow( withinElement[0] );
		return {
			element: withinElement,
			isWindow: isWindow,
			offset: withinElement.offset() || { left: 0, top: 0 },
			scrollLeft: withinElement.scrollLeft(),
			scrollTop: withinElement.scrollTop(),
			width: isWindow ? withinElement.width() : withinElement.outerWidth(),
			height: isWindow ? 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,
		target = $( options.of ),
		within = $.position.getWithinInfo( options.within ),
		scrollInfo = $.position.getScrollInfo( within ),
		targetElem = target[0],
		collision = ( options.collision || "flip" ).split( " " ),
		offsets = {};

	if ( targetElem.nodeType === 9 ) {
		targetWidth = target.width();
		targetHeight = target.height();
		targetOffset = { top: 0, left: 0 };
	} else if ( $.isWindow( targetElem ) ) {
		targetWidth = target.width();
		targetHeight = target.height();
		targetOffset = { top: target.scrollTop(), left: target.scrollLeft() };
	} else if ( targetElem.preventDefault ) {
		// force left top to allow flipping
		options.at = "left top";
		targetWidth = targetHeight = 0;
		targetOffset = { top: targetElem.pageY, left: targetElem.pageX };
	} else {
		targetWidth = target.outerWidth();
		targetHeight = target.outerHeight();
		targetOffset = target.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 ( !$.support.offsetFractions ) {
			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 ( $.fn.bgiframe ) {
			elem.bgiframe();
		}

		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 ( ( position.top + myOffset + atOffset + offset) > overTop && ( 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 ( ( position.top + myOffset + atOffset + offset) > overBottom && ( 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;
	$.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;

	testElement.innerHTML = "";
	testElementParent.removeChild( testElement );
})();

// DEPRECATED
if ( $.uiBackCompat !== false ) {
	// offset option
	(function( $ ) {
		var _position = $.fn.position;
		$.fn.position = function( options ) {
			if ( !options || !options.offset ) {
				return _position.call( this, options );
			}
			var offset = options.offset.split( " " ),
				at = options.at.split( " " );
			if ( offset.length === 1 ) {
				offset[ 1 ] = offset[ 0 ];
			}
			if ( /^\d/.test( offset[ 0 ] ) ) {
				offset[ 0 ] = "+" + offset[ 0 ];
			}
			if ( /^\d/.test( offset[ 1 ] ) ) {
				offset[ 1 ] = "+" + offset[ 1 ];
			}
			if ( at.length === 1 ) {
				if ( /left|center|right/.test( at[ 0 ] ) ) {
					at[ 1 ] = "center";
				} else {
					at[ 1 ] = at[ 0 ];
					at[ 0 ] = "center";
				}
			}
			return _position.call( this, $.extend( options, {
				at: at[ 0 ] + offset[ 0 ] + " " + at[ 1 ] + offset[ 1 ],
				offset: undefined
			} ) );
		};
	}( jQuery ) );
}
}( jQuery ) );jui/js/jquery.js000064400001075776152177723720007670 0ustar00/*!
 * jQuery JavaScript Library v1.12.4
 * http://jquery.com/
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 *
 * Copyright jQuery Foundation and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2016-05-20T17:17Z
 *
 * Modified by Joomla: Mitigate possible XSS vulnerability (gh-2432), CMS Issue 19464; Prevent Object Prototype Polution, https://github.com/jquery/jquery/pull/4333
 */

(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)
//"use strict";
var deletedIds = [];

var document = window.document;

var slice = deletedIds.slice;

var concat = deletedIds.concat;

var push = deletedIds.push;

var indexOf = deletedIds.indexOf;

var class2type = {};

var toString = class2type.toString;

var hasOwn = class2type.hasOwnProperty;

var support = {};



var
	version = "1.12.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, IE<9
	// 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.
	each: function( callback ) {
		return jQuery.each( this, callback );
	},

	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();
	},

	// For internal use only.
	// Behaves like an Array's method, not like a jQuery method.
	push: push,
	sort: deletedIds.sort,
	splice: deletedIds.splice
};

jQuery.extend = jQuery.fn.extend = function() {
	var src, copyIsArray, copy, name, options, 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
				// ADDED by Joomla: Prevent Object Prototype Polution, see https://github.com/jquery/jquery/pull/4333
				if ( name === "__proto__" || 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() {},

	// See test/unit/core.js for details concerning isFunction.
	// Since version 1.3, DOM methods and functions like alert
	// aren't supported. They return false on IE (#2968).
	isFunction: function( obj ) {
		return jQuery.type( obj ) === "function";
	},

	isArray: Array.isArray || function( obj ) {
		return jQuery.type( obj ) === "array";
	},

	isWindow: function( obj ) {
		/* jshint eqeqeq: false */
		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)
		var realStringObj = obj && obj.toString();
		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
	},

	isEmptyObject: function( obj ) {
		var name;
		for ( name in obj ) {
			return false;
		}
		return true;
	},

	isPlainObject: function( obj ) {
		var key;

		// Must be an Object.
		// Because of IE, we also have to check the presence of the constructor property.
		// Make sure that DOM nodes and window objects don't pass through, as well
		if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
			return false;
		}

		try {

			// Not own constructor property must be Object
			if ( obj.constructor &&
				!hasOwn.call( obj, "constructor" ) &&
				!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
				return false;
			}
		} catch ( e ) {

			// IE8,9 Will throw exceptions on certain host objects #9897
			return false;
		}

		// Support: IE<9
		// Handle iteration over inherited properties before own properties.
		if ( !support.ownFirst ) {
			for ( key in obj ) {
				return hasOwn.call( obj, key );
			}
		}

		// Own properties are enumerated firstly, so to speed up,
		// if last one is own, then all properties are own.
		for ( key in obj ) {}

		return key === undefined || hasOwn.call( obj, key );
	},

	type: function( obj ) {
		if ( obj == null ) {
			return obj + "";
		}
		return typeof obj === "object" || typeof obj === "function" ?
			class2type[ toString.call( obj ) ] || "object" :
			typeof obj;
	},

	// Workarounds based on findings by Jim Driscoll
	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
	globalEval: function( data ) {
		if ( data && jQuery.trim( data ) ) {

			// We use execScript on Internet Explorer
			// We use an anonymous function so that context is window
			// rather than jQuery in Firefox
			( window.execScript || function( data ) {
				window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation
			} )( data );
		}
	},

	// Convert dashed to camelCase; used by the css and data modules
	// 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();
	},

	each: function( obj, callback ) {
		var length, i = 0;

		if ( isArrayLike( obj ) ) {
			length = obj.length;
			for ( ; i < length; i++ ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		} else {
			for ( i in obj ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		}

		return obj;
	},

	// Support: Android<4.1, IE<9
	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 ) {
		var len;

		if ( arr ) {
			if ( indexOf ) {
				return indexOf.call( arr, elem, i );
			}

			len = arr.length;
			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

			for ( ; i < len; i++ ) {

				// Skip accessing in sparse arrays
				if ( i in arr && arr[ i ] === elem ) {
					return i;
				}
			}
		}

		return -1;
	},

	merge: function( first, second ) {
		var len = +second.length,
			j = 0,
			i = first.length;

		while ( j < len ) {
			first[ i++ ] = second[ j++ ];
		}

		// Support: IE<9
		// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
		if ( len !== len ) {
			while ( second[ j ] !== undefined ) {
				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 length, value,
			i = 0,
			ret = [];

		// Go through the array, translating each of the items to their new values
		if ( isArrayLike( elems ) ) {
			length = elems.length;
			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 args, proxy, tmp;

		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: function() {
		return +( new Date() );
	},

	// jQuery.support is not used in Core but other projects attach their
	// properties to it so it needs to exist.
	support: support
} );

// JSHint would error on this code due to the Symbol not being defined in ES5.
// Defining this global in .jshintrc would create a danger of using the global
// unguarded in another place, it seems safer to just disable JSHint for these
// three lines.
/* jshint ignore: start */
if ( typeof Symbol === "function" ) {
	jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ];
}
/* jshint ignore: end */

// Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".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 = !!obj && "length" in obj && obj.length,
		type = jQuery.type( obj );

	if ( type === "function" || jQuery.isWindow( obj ) ) {
		return false;
	}

	return type === "array" || length === 0 ||
		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
var Sizzle =
/*!
 * Sizzle CSS Selector Engine v2.2.1
 * http://sizzlejs.com/
 *
 * Copyright jQuery Foundation and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2015-10-17
 */
(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

	// http://www.w3.org/TR/css3-selectors/#whitespace
	whitespace = "[\\x20\\t\\r\\n\\f]",

	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
	identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",

	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
		// Operator (capture 2)
		"*([*^$|!~]?=)" + whitespace +
		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
		"*\\]",

	pseudos = ":(" + identifier + ")(?:\\((" +
		// 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( "^#(" + identifier + ")" ),
		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
		"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 m, i, elem, nid, nidselect, match, groups, newSelector,
		newContext = context && context.ownerDocument,

		// nodeType defaults to 9, since context defaults to document
		nodeType = context ? context.nodeType : 9;

	results = results || [];

	// Return early from calls with invalid selector or context
	if ( typeof selector !== "string" || !selector ||
		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {

		return results;
	}

	// Try to shortcut find operations (as opposed to filters) in HTML documents
	if ( !seed ) {

		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
			setDocument( context );
		}
		context = context || document;

		if ( documentIsHTML ) {

			// If the selector is sufficiently simple, try using a "get*By*" DOM method
			// (excepting DocumentFragment context, where the methods don't exist)
			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {

				// ID selector
				if ( (m = match[1]) ) {

					// Document context
					if ( nodeType === 9 ) {
						if ( (elem = context.getElementById( m )) ) {

							// Support: IE, Opera, Webkit
							// TODO: identify versions
							// getElementById can match elements by name instead of ID
							if ( elem.id === m ) {
								results.push( elem );
								return results;
							}
						} else {
							return results;
						}

					// Element context
					} else {

						// Support: IE, Opera, Webkit
						// TODO: identify versions
						// getElementById can match elements by name instead of ID
						if ( newContext && (elem = newContext.getElementById( m )) &&
							contains( context, elem ) &&
							elem.id === m ) {

							results.push( elem );
							return results;
						}
					}

				// Type selector
				} else if ( match[2] ) {
					push.apply( results, context.getElementsByTagName( selector ) );
					return results;

				// Class selector
				} else if ( (m = match[3]) && support.getElementsByClassName &&
					context.getElementsByClassName ) {

					push.apply( results, context.getElementsByClassName( m ) );
					return results;
				}
			}

			// Take advantage of querySelectorAll
			if ( support.qsa &&
				!compilerCache[ selector + " " ] &&
				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {

				if ( nodeType !== 1 ) {
					newContext = context;
					newSelector = selector;

				// qSA looks outside Element context, which is not what we want
				// Thanks to Andrew Dupont for this workaround technique
				// Support: IE <=8
				// Exclude object elements
				} else if ( context.nodeName.toLowerCase() !== "object" ) {

					// Capture the context ID, setting it first if necessary
					if ( (nid = context.getAttribute( "id" )) ) {
						nid = nid.replace( rescape, "\\$&" );
					} else {
						context.setAttribute( "id", (nid = expando) );
					}

					// Prefix every selector in the list
					groups = tokenize( selector );
					i = groups.length;
					nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
					while ( i-- ) {
						groups[i] = nidselect + " " + toSelector( groups[i] );
					}
					newSelector = groups.join( "," );

					// Expand context for sibling selectors
					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
						context;
				}

				if ( newSelector ) {
					try {
						push.apply( results,
							newContext.querySelectorAll( newSelector )
						);
						return results;
					} catch ( qsaError ) {
					} finally {
						if ( nid === expando ) {
							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 = arr.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;

	// Return early if doc is invalid or already selected
	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
		return document;
	}

	// Update global variables
	document = doc;
	docElem = document.documentElement;
	documentIsHTML = !isXML( document );

	// Support: IE 9-11, Edge
	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
	if ( (parent = document.defaultView) && parent.top !== parent ) {
		// Support: IE 11
		if ( parent.addEventListener ) {
			parent.addEventListener( "unload", unloadHandler, false );

		// Support: IE 9 - 10 only
		} else if ( parent.attachEvent ) {
			parent.attachEvent( "onunload", unloadHandler );
		}
	}

	/* 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( document.createComment("") );
		return !div.getElementsByTagName("*").length;
	});

	// Support: IE<9
	support.getElementsByClassName = rnative.test( document.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 !document.getElementsByName || !document.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 );
				return m ? [ 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 ( typeof context.getElementsByClassName !== "undefined" && 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( document.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 + "-\r\\' 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.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
			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 = document.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 self-exclusive
	// 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 === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
				return -1;
			}
			if ( b === document || 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 === document ? -1 :
				b === document ? 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 document;
};

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 &&
		!compilerCache[ expr + " " ] &&
		( !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, uniqueCache, outerCache, node, nodeIndex, start,
						dir = simple !== forward ? "nextSibling" : "previousSibling",
						parent = elem.parentNode,
						name = ofType && elem.nodeName.toLowerCase(),
						useCache = !xml && !ofType,
						diff = false;

					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

							// ...in a gzip-friendly way
							node = parent;
							outerCache = node[ expando ] || (node[ expando ] = {});

							// Support: IE <9 only
							// Defend against cloned attroperties (jQuery gh-1709)
							uniqueCache = outerCache[ node.uniqueID ] ||
								(outerCache[ node.uniqueID ] = {});

							cache = uniqueCache[ type ] || [];
							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
							diff = nodeIndex && 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 ) {
									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
									break;
								}
							}

						} else {
							// Use previously-cached element index if available
							if ( useCache ) {
								// ...in a gzip-friendly way
								node = elem;
								outerCache = node[ expando ] || (node[ expando ] = {});

								// Support: IE <9 only
								// Defend against cloned attroperties (jQuery gh-1709)
								uniqueCache = outerCache[ node.uniqueID ] ||
									(outerCache[ node.uniqueID ] = {});

								cache = uniqueCache[ type ] || [];
								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
								diff = nodeIndex;
							}

							// xml :nth-child(...)
							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
							if ( diff === false ) {
								// 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 ) {
											outerCache = node[ expando ] || (node[ expando ] = {});

											// Support: IE <9 only
											// Defend against cloned attroperties (jQuery gh-1709)
											uniqueCache = outerCache[ node.uniqueID ] ||
												(outerCache[ node.uniqueID ] = {});

											uniqueCache[ 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, uniqueCache, outerCache,
				newCache = [ dirruns, doneName ];

			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator 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 ] = {});

						// Support: IE <9 only
						// Defend against cloned attroperties (jQuery gh-1709)
						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});

						if ( (oldCache = uniqueCache[ 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
							uniqueCache[ 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 || outermost;
			}

			// Add elements passing elementMatchers directly to results
			// 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;
					if ( !context && elem.ownerDocument !== document ) {
						setDocument( elem );
						xml = !documentIsHTML;
					}
					while ( (matcher = elementMatchers[j++]) ) {
						if ( matcher( elem, context || document, 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 );
					}
				}
			}

			// `i` is now the count of elements visited above, and adding it to `matchedCount`
			// makes the latter nonnegative.
			matchedCount += i;

			// Apply set filters to unmatched elements
			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
			// no element matchers and no seed.
			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
			// numerically zero.
			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 only one selector in the list and no seed
	// (the latter of which guarantees us context)
	if ( match.length === 1 ) {

		// Reduce context if the leading compound 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,
		!context || 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.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;



var 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;
};


var siblings = function( n, elem ) {
	var matched = [];

	for ( ; n; n = n.nextSibling ) {
		if ( n.nodeType === 1 && n !== elem ) {
			matched.push( n );
		}
	}

	return matched;
};


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 ( jQuery.inArray( elem, qualifier ) > -1 ) !== 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,
			ret = [],
			self = this,
			len = self.length;

		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, root ) {
		var match, elem;

		// HANDLE: $(""), $(null), $(undefined), $(false)
		if ( !selector ) {
			return this;
		}

		// init accepts an alternate rootjQuery
		// so migrate can support jQuery.sub (gh-2101)
		root = root || rootjQuery;

		// Handle HTML strings
		if ( typeof selector === "string" ) {
			if ( selector.charAt( 0 ) === "<" &&
				selector.charAt( 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;

					// 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 ] );

					// Check parentNode to catch when Blackberry 4.6 returns
					// nodes that are no longer in the document #6963
					if ( elem && elem.parentNode ) {

						// Handle the case where IE and Opera return items
						// by name instead of ID
						if ( elem.id !== match[ 2 ] ) {
							return rootjQuery.find( selector );
						}

						// Otherwise, we 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 || root ).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 root.ready !== "undefined" ?
				root.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.fn.extend( {
	has: function( target ) {
		var i,
			targets = jQuery( target, this ),
			len = targets.length;

		return this.filter( function() {
			for ( i = 0; i < len; 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.uniqueSort( matched ) : matched );
	},

	// Determine the position of an element within
	// the matched set of elements
	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 jQuery.inArray( this[ 0 ], jQuery( elem ) );
		}

		// Locate the position of the desired element
		return jQuery.inArray(

			// If it receives a jQuery object, the first element is used
			elem.jquery ? elem[ 0 ] : elem, this );
	},

	add: function( selector, context ) {
		return this.pushStack(
			jQuery.uniqueSort(
				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 ) {
	do {
		cur = cur[ dir ];
	} while ( cur && 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 dir( elem, "parentNode" );
	},
	parentsUntil: function( elem, i, until ) {
		return dir( elem, "parentNode", until );
	},
	next: function( elem ) {
		return sibling( elem, "nextSibling" );
	},
	prev: function( elem ) {
		return sibling( elem, "previousSibling" );
	},
	nextAll: function( elem ) {
		return dir( elem, "nextSibling" );
	},
	prevAll: function( elem ) {
		return dir( elem, "previousSibling" );
	},
	nextUntil: function( elem, i, until ) {
		return dir( elem, "nextSibling", until );
	},
	prevUntil: function( elem, i, until ) {
		return dir( elem, "previousSibling", until );
	},
	siblings: function( elem ) {
		return siblings( ( elem.parentNode || {} ).firstChild, elem );
	},
	children: function( elem ) {
		return siblings( elem.firstChild );
	},
	contents: function( elem ) {
		return jQuery.nodeName( elem, "iframe" ) ?
			elem.contentDocument || elem.contentWindow.document :
			jQuery.merge( [], elem.childNodes );
	}
}, function( name, fn ) {
	jQuery.fn[ name ] = function( until, selector ) {
		var ret = jQuery.map( this, fn, until );

		if ( name.slice( -5 ) !== "Until" ) {
			selector = until;
		}

		if ( selector && typeof selector === "string" ) {
			ret = jQuery.filter( selector, ret );
		}

		if ( this.length > 1 ) {

			// Remove duplicates
			if ( !guaranteedUnique[ name ] ) {
				ret = jQuery.uniqueSort( ret );
			}

			// Reverse order for parents* and prev-derivatives
			if ( rparentsprev.test( name ) ) {
				ret = ret.reverse();
			}
		}

		return this.pushStack( ret );
	};
} );
var rnotwhite = ( /\S+/g );



// Convert String-formatted options into Object-formatted ones
function createOptions( options ) {
	var object = {};
	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" ?
		createOptions( options ) :
		jQuery.extend( {}, options );

	var // Flag to know if list is currently firing
		firing,

		// Last fire value for non-forgettable lists
		memory,

		// Flag to know if list was already fired
		fired,

		// Flag to prevent firing
		locked,

		// Actual callback list
		list = [],

		// Queue of execution data for repeatable lists
		queue = [],

		// Index of currently firing callback (modified by add/remove as needed)
		firingIndex = -1,

		// Fire callbacks
		fire = function() {

			// Enforce single-firing
			locked = options.once;

			// Execute callbacks for all pending executions,
			// respecting firingIndex overrides and runtime changes
			fired = firing = true;
			for ( ; queue.length; firingIndex = -1 ) {
				memory = queue.shift();
				while ( ++firingIndex < list.length ) {

					// Run callback and check for early termination
					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
						options.stopOnFalse ) {

						// Jump to end and forget the data so .add doesn't re-fire
						firingIndex = list.length;
						memory = false;
					}
				}
			}

			// Forget the data if we're done with it
			if ( !options.memory ) {
				memory = false;
			}

			firing = false;

			// Clean up if we're done firing for good
			if ( locked ) {

				// Keep an empty list if we have data for future add calls
				if ( memory ) {
					list = [];

				// Otherwise, this object is spent
				} else {
					list = "";
				}
			}
		},

		// Actual Callbacks object
		self = {

			// Add a callback or a collection of callbacks to the list
			add: function() {
				if ( list ) {

					// If we have memory from a past run, we should fire after adding
					if ( memory && !firing ) {
						firingIndex = list.length - 1;
						queue.push( memory );
					}

					( function add( args ) {
						jQuery.each( args, function( _, arg ) {
							if ( jQuery.isFunction( arg ) ) {
								if ( !options.unique || !self.has( arg ) ) {
									list.push( arg );
								}
							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {

								// Inspect recursively
								add( arg );
							}
						} );
					} )( arguments );

					if ( memory && !firing ) {
						fire();
					}
				}
				return this;
			},

			// Remove a callback from the list
			remove: function() {
				jQuery.each( arguments, function( _, arg ) {
					var index;
					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
						list.splice( index, 1 );

						// Handle firing indexes
						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.length > 0;
			},

			// Remove all callbacks from the list
			empty: function() {
				if ( list ) {
					list = [];
				}
				return this;
			},

			// Disable .fire and .add
			// Abort any current/pending executions
			// Clear all callbacks and values
			disable: function() {
				locked = queue = [];
				list = memory = "";
				return this;
			},
			disabled: function() {
				return !list;
			},

			// Disable .fire
			// Also disable .add unless we have memory (since it would have no effect)
			// Abort any pending executions
			lock: function() {
				locked = true;
				if ( !memory ) {
					self.disable();
				}
				return this;
			},
			locked: function() {
				return !!locked;
			},

			// Call all callbacks with the given context and arguments
			fireWith: function( context, args ) {
				if ( !locked ) {
					args = args || [];
					args = [ context, args.slice ? args.slice() : args ];
					queue.push( args );
					if ( !firing ) {
						fire();
					}
				}
				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()
										.progress( newDefer.notify )
										.done( newDefer.resolve )
										.fail( newDefer.reject );
								} 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()
						.progress( updateFunc( i, progressContexts, progressValues ) )
						.done( updateFunc( i, resolveContexts, resolveValues ) )
						.fail( deferred.reject );
				} 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" );
		}
	}
} );

/**
 * Clean-up method for dom ready events
 */
function detach() {
	if ( document.addEventListener ) {
		document.removeEventListener( "DOMContentLoaded", completed );
		window.removeEventListener( "load", completed );

	} else {
		document.detachEvent( "onreadystatechange", completed );
		window.detachEvent( "onload", completed );
	}
}

/**
 * The ready event handler and self cleanup method
 */
function completed() {

	// readyState === "complete" is good enough for us to call the dom ready in oldIE
	if ( document.addEventListener ||
		window.event.type === "load" ||
		document.readyState === "complete" ) {

		detach();
		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.
		// Support: IE6-10
		// Older IE sometimes signals "interactive" too soon
		if ( document.readyState === "complete" ||
			( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {

			// Handle it asynchronously to allow scripts the opportunity to delay ready
			window.setTimeout( jQuery.ready );

		// Standards-based browsers support DOMContentLoaded
		} else if ( document.addEventListener ) {

			// Use the handy event callback
			document.addEventListener( "DOMContentLoaded", completed );

			// A fallback to window.onload, that will always work
			window.addEventListener( "load", completed );

		// If IE event model is used
		} else {

			// Ensure firing before onload, maybe late but safe also for iframes
			document.attachEvent( "onreadystatechange", completed );

			// A fallback to window.onload, that will always work
			window.attachEvent( "onload", completed );

			// If IE and not a frame
			// continually check to see if the document is ready
			var top = false;

			try {
				top = window.frameElement == null && document.documentElement;
			} catch ( e ) {}

			if ( top && top.doScroll ) {
				( function doScrollCheck() {
					if ( !jQuery.isReady ) {

						try {

							// Use the trick by Diego Perini
							// http://javascript.nwbox.com/IEContentLoaded/
							top.doScroll( "left" );
						} catch ( e ) {
							return window.setTimeout( doScrollCheck, 50 );
						}

						// detach all dom ready events
						detach();

						// and execute any waiting functions
						jQuery.ready();
					}
				} )();
			}
		}
	}
	return readyList.promise( obj );
};

// Kick off the DOM ready check even if the user does not
jQuery.ready.promise();




// Support: IE<9
// Iteration over object's inherited properties before its own
var i;
for ( i in jQuery( support ) ) {
	break;
}
support.ownFirst = i === "0";

// Note: most support tests are defined in their respective modules.
// false until the test is run
support.inlineBlockNeedsLayout = false;

// Execute ASAP in case we need to set body.style.zoom
jQuery( function() {

	// Minified: var a,b,c,d
	var val, div, body, container;

	body = document.getElementsByTagName( "body" )[ 0 ];
	if ( !body || !body.style ) {

		// Return for frameset docs that don't have a body
		return;
	}

	// Setup
	div = document.createElement( "div" );
	container = document.createElement( "div" );
	container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
	body.appendChild( container ).appendChild( div );

	if ( typeof div.style.zoom !== "undefined" ) {

		// Support: IE<8
		// Check if natively block-level elements act like inline-block
		// elements when setting their display to 'inline' and giving
		// them layout
		div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";

		support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
		if ( val ) {

			// Prevent IE 6 from affecting layout for positioned elements #11048
			// Prevent IE from shrinking the body in IE 7 mode #12869
			// Support: IE<8
			body.style.zoom = 1;
		}
	}

	body.removeChild( container );
} );


( function() {
	var div = document.createElement( "div" );

	// Support: IE<9
	support.deleteExpando = true;
	try {
		delete div.test;
	} catch ( e ) {
		support.deleteExpando = false;
	}

	// Null elements to avoid leaks in IE.
	div = null;
} )();
var acceptData = function( elem ) {
	var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
		nodeType = +elem.nodeType || 1;

	// Do not set data on non-element DOM nodes because it will not be cleared (#8335).
	return nodeType !== 1 && nodeType !== 9 ?
		false :

		// Nodes accept data unless otherwise specified; rejection can be conditional
		!noData || noData !== true && elem.getAttribute( "classid" ) === noData;
};




var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
	rmultiDash = /([A-Z])/g;

function dataAttr( elem, key, data ) {

	// If nothing was found internally, try to fetch any
	// data from the HTML5 data-* attribute
	if ( data === undefined && elem.nodeType === 1 ) {

		var 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
			jQuery.data( elem, key, data );

		} else {
			data = undefined;
		}
	}

	return data;
}

// checks a cache object for emptiness
function isEmptyDataObject( obj ) {
	var name;
	for ( name in obj ) {

		// if the public data object is empty, the private is still empty
		if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
			continue;
		}
		if ( name !== "toJSON" ) {
			return false;
		}
	}

	return true;
}

function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
	if ( !acceptData( elem ) ) {
		return;
	}

	var ret, thisCache,
		internalKey = jQuery.expando,

		// We have to handle DOM nodes and JS objects differently because IE6-7
		// can't GC object references properly across the DOM-JS boundary
		isNode = elem.nodeType,

		// Only DOM nodes need the global jQuery cache; JS object data is
		// attached directly to the object so GC can occur automatically
		cache = isNode ? jQuery.cache : elem,

		// Only defining an ID for JS objects if its cache already exists allows
		// the code to shortcut on the same path as a DOM node with no cache
		id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;

	// Avoid doing any more work than we need to when trying to get data on an
	// object that has no data at all
	if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
		data === undefined && typeof name === "string" ) {
		return;
	}

	if ( !id ) {

		// Only DOM nodes need a new unique ID for each element since their data
		// ends up in the global cache
		if ( isNode ) {
			id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
		} else {
			id = internalKey;
		}
	}

	if ( !cache[ id ] ) {

		// Avoid exposing jQuery metadata on plain JS objects when the object
		// is serialized using JSON.stringify
		cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
	}

	// An object can be passed to jQuery.data instead of a key/value pair; this gets
	// shallow copied over onto the existing cache
	if ( typeof name === "object" || typeof name === "function" ) {
		if ( pvt ) {
			cache[ id ] = jQuery.extend( cache[ id ], name );
		} else {
			cache[ id ].data = jQuery.extend( cache[ id ].data, name );
		}
	}

	thisCache = cache[ id ];

	// jQuery data() is stored in a separate object inside the object's internal data
	// cache in order to avoid key collisions between internal data and user-defined
	// data.
	if ( !pvt ) {
		if ( !thisCache.data ) {
			thisCache.data = {};
		}

		thisCache = thisCache.data;
	}

	if ( data !== undefined ) {
		thisCache[ jQuery.camelCase( name ) ] = data;
	}

	// Check for both converted-to-camel and non-converted data property names
	// If a data property was specified
	if ( typeof name === "string" ) {

		// First Try to find as-is property data
		ret = thisCache[ name ];

		// Test for null|undefined property data
		if ( ret == null ) {

			// Try to find the camelCased property
			ret = thisCache[ jQuery.camelCase( name ) ];
		}
	} else {
		ret = thisCache;
	}

	return ret;
}

function internalRemoveData( elem, name, pvt ) {
	if ( !acceptData( elem ) ) {
		return;
	}

	var thisCache, i,
		isNode = elem.nodeType,

		// See jQuery.data for more information
		cache = isNode ? jQuery.cache : elem,
		id = isNode ? elem[ jQuery.expando ] : jQuery.expando;

	// If there is already no cache entry for this object, there is no
	// purpose in continuing
	if ( !cache[ id ] ) {
		return;
	}

	if ( name ) {

		thisCache = pvt ? cache[ id ] : cache[ id ].data;

		if ( thisCache ) {

			// Support array or space separated string names for data keys
			if ( !jQuery.isArray( name ) ) {

				// try the string as a key before any manipulation
				if ( name in thisCache ) {
					name = [ name ];
				} else {

					// split the camel cased version by spaces unless a key with the spaces exists
					name = jQuery.camelCase( name );
					if ( name in thisCache ) {
						name = [ name ];
					} else {
						name = name.split( " " );
					}
				}
			} else {

				// 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 = name.concat( jQuery.map( name, jQuery.camelCase ) );
			}

			i = name.length;
			while ( i-- ) {
				delete thisCache[ name[ i ] ];
			}

			// If there is no data left in the cache, we want to continue
			// and let the cache object itself get destroyed
			if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
				return;
			}
		}
	}

	// See jQuery.data for more information
	if ( !pvt ) {
		delete cache[ id ].data;

		// Don't destroy the parent cache unless the internal data object
		// had been the only thing left in it
		if ( !isEmptyDataObject( cache[ id ] ) ) {
			return;
		}
	}

	// Destroy the cache
	if ( isNode ) {
		jQuery.cleanData( [ elem ], true );

	// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
	/* jshint eqeqeq: false */
	} else if ( support.deleteExpando || cache != cache.window ) {
		/* jshint eqeqeq: true */
		delete cache[ id ];

	// When all else fails, undefined
	} else {
		cache[ id ] = undefined;
	}
}

jQuery.extend( {
	cache: {},

	// The following elements (space-suffixed to avoid Object.prototype collisions)
	// throw uncatchable exceptions if you attempt to set expando properties
	noData: {
		"applet ": true,
		"embed ": true,

		// ...but Flash objects (which have this classid) *can* handle expandos
		"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
	},

	hasData: function( elem ) {
		elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
		return !!elem && !isEmptyDataObject( elem );
	},

	data: function( elem, name, data ) {
		return internalData( elem, name, data );
	},

	removeData: function( elem, name ) {
		return internalRemoveData( elem, name );
	},

	// For internal use only.
	_data: function( elem, name, data ) {
		return internalData( elem, name, data, true );
	},

	_removeData: function( elem, name ) {
		return internalRemoveData( elem, name, true );
	}
} );

jQuery.fn.extend( {
	data: function( key, value ) {
		var i, name, data,
			elem = this[ 0 ],
			attrs = elem && elem.attributes;

		// Special expections of .data basically thwart jQuery.access,
		// so implement the relevant behavior ourselves

		// Gets all values
		if ( key === undefined ) {
			if ( this.length ) {
				data = jQuery.data( elem );

				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
					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 ] );
							}
						}
					}
					jQuery._data( elem, "parsedAttrs", true );
				}
			}

			return data;
		}

		// Sets multiple values
		if ( typeof key === "object" ) {
			return this.each( function() {
				jQuery.data( this, key );
			} );
		}

		return arguments.length > 1 ?

			// Sets one value
			this.each( function() {
				jQuery.data( this, key, value );
			} ) :

			// Gets one value
			// Try to fetch any internally stored data first
			elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
	},

	removeData: function( key ) {
		return this.each( function() {
			jQuery.removeData( this, key );
		} );
	}
} );


jQuery.extend( {
	queue: function( elem, type, data ) {
		var queue;

		if ( elem ) {
			type = ( type || "fx" ) + "queue";
			queue = jQuery._data( elem, type );

			// Speed up dequeue by getting out quickly if this is just a lookup
			if ( data ) {
				if ( !queue || jQuery.isArray( data ) ) {
					queue = jQuery._data( 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 intended for public consumption - generates a queueHooks object,
	// or returns the current one
	_queueHooks: function( elem, type ) {
		var key = type + "queueHooks";
		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
			empty: jQuery.Callbacks( "once memory" ).add( function() {
				jQuery._removeData( elem, type + "queue" );
				jQuery._removeData( elem, 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 = jQuery._data( elements[ i ], type + "queueHooks" );
			if ( tmp && tmp.empty ) {
				count++;
				tmp.empty.add( resolve );
			}
		}
		resolve();
		return defer.promise( obj );
	}
} );


( function() {
	var shrinkWrapBlocksVal;

	support.shrinkWrapBlocks = function() {
		if ( shrinkWrapBlocksVal != null ) {
			return shrinkWrapBlocksVal;
		}

		// Will be changed later if needed.
		shrinkWrapBlocksVal = false;

		// Minified: var b,c,d
		var div, body, container;

		body = document.getElementsByTagName( "body" )[ 0 ];
		if ( !body || !body.style ) {

			// Test fired too early or in an unsupported environment, exit.
			return;
		}

		// Setup
		div = document.createElement( "div" );
		container = document.createElement( "div" );
		container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
		body.appendChild( container ).appendChild( div );

		// Support: IE6
		// Check if elements with layout shrink-wrap their children
		if ( typeof div.style.zoom !== "undefined" ) {

			// Reset CSS: box-sizing; display; margin; border
			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:1px;width:1px;zoom:1";
			div.appendChild( document.createElement( "div" ) ).style.width = "5px";
			shrinkWrapBlocksVal = div.offsetWidth !== 3;
		}

		body.removeChild( container );

		return shrinkWrapBlocksVal;
	};

} )();
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;

var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );


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 );
	};



function adjustCSS( elem, prop, valueParts, tween ) {
	var adjusted,
		scale = 1,
		maxIterations = 20,
		currentValue = tween ?
			function() { return tween.cur(); } :
			function() { return jQuery.css( elem, prop, "" ); },
		initial = currentValue(),
		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),

		// Starting value computation is required for potential unit mismatches
		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
			rcssNum.exec( jQuery.css( elem, prop ) );

	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {

		// Trust units reported by jQuery.css
		unit = unit || initialInUnit[ 3 ];

		// Make sure we update the tween properties later on
		valueParts = valueParts || [];

		// Iteratively approximate from a nonzero starting point
		initialInUnit = +initial || 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
			initialInUnit = initialInUnit / scale;
			jQuery.style( elem, prop, initialInUnit + 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 = currentValue() / initial ) && scale !== 1 && --maxIterations
		);
	}

	if ( valueParts ) {
		initialInUnit = +initialInUnit || +initial || 0;

		// Apply relative offset (+=/-=) if specified
		adjusted = valueParts[ 1 ] ?
			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
			+valueParts[ 2 ];
		if ( tween ) {
			tween.unit = unit;
			tween.start = initialInUnit;
			tween.end = adjusted;
		}
	}
	return adjusted;
}


// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
	var i = 0,
		length = elems.length,
		bulk = key == null;

	// Sets many values
	if ( jQuery.type( key ) === "object" ) {
		chainable = true;
		for ( i in key ) {
			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 < length; i++ ) {
				fn(
					elems[ i ],
					key,
					raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) )
				);
			}
		}
	}

	return chainable ?
		elems :

		// Gets
		bulk ?
			fn.call( elems ) :
			length ? fn( elems[ 0 ], key ) : emptyGet;
};
var rcheckableType = ( /^(?:checkbox|radio)$/i );

var rtagName = ( /<([\w:-]+)/ );

var rscriptType = ( /^$|\/(?:java|ecma)script/i );

var rleadingWhitespace = ( /^\s+/ );

var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
		"details|dialog|figcaption|figure|footer|header|hgroup|main|" +
		"mark|meter|nav|output|picture|progress|section|summary|template|time|video";



function createSafeFragment( document ) {
	var list = nodeNames.split( "|" ),
		safeFrag = document.createDocumentFragment();

	if ( safeFrag.createElement ) {
		while ( list.length ) {
			safeFrag.createElement(
				list.pop()
			);
		}
	}
	return safeFrag;
}


( function() {
	var div = document.createElement( "div" ),
		fragment = document.createDocumentFragment(),
		input = document.createElement( "input" );

	// Setup
	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";

	// IE strips leading whitespace when .innerHTML is used
	support.leadingWhitespace = div.firstChild.nodeType === 3;

	// Make sure that tbody elements aren't automatically inserted
	// IE will insert them into empty tables
	support.tbody = !div.getElementsByTagName( "tbody" ).length;

	// Make sure that link elements get serialized correctly by innerHTML
	// This requires a wrapper element in IE
	support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;

	// Makes sure cloning an html5 element does not cause problems
	// Where outerHTML is undefined, this still works
	support.html5Clone =
		document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>";

	// Check if a disconnected checkbox will retain its checked
	// value of true after appended to the DOM (IE6/7)
	input.type = "checkbox";
	input.checked = true;
	fragment.appendChild( input );
	support.appendChecked = input.checked;

	// Make sure textarea (and checkbox) defaultValue is properly cloned
	// Support: IE6-IE11+
	div.innerHTML = "<textarea>x</textarea>";
	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;

	// #11217 - WebKit loses check when the name is after the checked attribute
	fragment.appendChild( div );

	// Support: Windows Web Apps (WWA)
	// `name` and `type` must use .setAttribute for WWA (#14901)
	input = document.createElement( "input" );
	input.setAttribute( "type", "radio" );
	input.setAttribute( "checked", "checked" );
	input.setAttribute( "name", "t" );

	div.appendChild( input );

	// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
	// old WebKit doesn't clone checked state correctly in fragments
	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;

	// Support: IE<9
	// Cloned elements keep attachEvent handlers, we use addEventListener on IE9+
	support.noCloneEvent = !!div.addEventListener;

	// Support: IE<9
	// Since attributes and properties are the same in IE,
	// cleanData must set properties to undefined rather than use removeAttribute
	div[ jQuery.expando ] = 1;
	support.attributes = !div.getAttribute( jQuery.expando );
} )();


// We have to close these tags to support XHTML (#13200)
var wrapMap = {
	option: [ 1, "<select multiple='multiple'>", "</select>" ],
	legend: [ 1, "<fieldset>", "</fieldset>" ],
	area: [ 1, "<map>", "</map>" ],

	// Support: IE8
	param: [ 1, "<object>", "</object>" ],
	thead: [ 1, "<table>", "</table>" ],
	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
	col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],

	// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
	// unless wrapped in a div with non-breaking characters in front of it.
	_default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
};

// Support: IE8-IE9
wrapMap.optgroup = wrapMap.option;

wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
wrapMap.th = wrapMap.td;


function getAll( context, tag ) {
	var elems, elem,
		i = 0,
		found = typeof context.getElementsByTagName !== "undefined" ?
			context.getElementsByTagName( tag || "*" ) :
			typeof context.querySelectorAll !== "undefined" ?
				context.querySelectorAll( tag || "*" ) :
				undefined;

	if ( !found ) {
		for ( found = [], elems = context.childNodes || context;
			( elem = elems[ i ] ) != null;
			i++
		) {
			if ( !tag || jQuery.nodeName( elem, tag ) ) {
				found.push( elem );
			} else {
				jQuery.merge( found, getAll( elem, tag ) );
			}
		}
	}

	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
		jQuery.merge( [ context ], found ) :
		found;
}


// Mark scripts as having already been evaluated
function setGlobalEval( elems, refElements ) {
	var elem,
		i = 0;
	for ( ; ( elem = elems[ i ] ) != null; i++ ) {
		jQuery._data(
			elem,
			"globalEval",
			!refElements || jQuery._data( refElements[ i ], "globalEval" )
		);
	}
}


var rhtml = /<|&#?\w+;/,
	rtbody = /<tbody/i;

function fixDefaultChecked( elem ) {
	if ( rcheckableType.test( elem.type ) ) {
		elem.defaultChecked = elem.checked;
	}
}

function buildFragment( elems, context, scripts, selection, ignored ) {
	var j, elem, contains,
		tmp, tag, tbody, wrap,
		l = elems.length,

		// Ensure a safe fragment
		safe = createSafeFragment( context ),

		nodes = [],
		i = 0;

	for ( ; i < l; i++ ) {
		elem = elems[ i ];

		if ( elem || elem === 0 ) {

			// Add nodes directly
			if ( jQuery.type( elem ) === "object" ) {
				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 || safe.appendChild( context.createElement( "div" ) );

				// Deserialize a standard representation
				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
				wrap = wrapMap[ tag ] || wrapMap._default;

				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];

				// Descend through wrappers to the right content
				j = wrap[ 0 ];
				while ( j-- ) {
					tmp = tmp.lastChild;
				}

				// Manually add leading whitespace removed by IE
				if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
					nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) );
				}

				// Remove IE's autoinserted <tbody> from table fragments
				if ( !support.tbody ) {

					// String was a <table>, *may* have spurious <tbody>
					elem = tag === "table" && !rtbody.test( elem ) ?
						tmp.firstChild :

						// String was a bare <thead> or <tfoot>
						wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ?
							tmp :
							0;

					j = elem && elem.childNodes.length;
					while ( j-- ) {
						if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) &&
							!tbody.childNodes.length ) {

							elem.removeChild( tbody );
						}
					}
				}

				jQuery.merge( nodes, tmp.childNodes );

				// Fix #12392 for WebKit and IE > 9
				tmp.textContent = "";

				// Fix #12392 for oldIE
				while ( tmp.firstChild ) {
					tmp.removeChild( tmp.firstChild );
				}

				// Remember the top-level container for proper cleanup
				tmp = safe.lastChild;
			}
		}
	}

	// Fix #11356: Clear elements from fragment
	if ( tmp ) {
		safe.removeChild( tmp );
	}

	// Reset defaultChecked for any radios and checkboxes
	// about to be appended to the DOM in IE 6/7 (#8060)
	if ( !support.appendChecked ) {
		jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
	}

	i = 0;
	while ( ( elem = nodes[ i++ ] ) ) {

		// Skip elements already in the context collection (trac-4087)
		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
			if ( ignored ) {
				ignored.push( elem );
			}

			continue;
		}

		contains = jQuery.contains( elem.ownerDocument, elem );

		// Append to fragment
		tmp = getAll( safe.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 );
				}
			}
		}
	}

	tmp = null;

	return safe;
}


( function() {
	var i, eventName,
		div = document.createElement( "div" );

	// Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)
	for ( i in { submit: true, change: true, focusin: true } ) {
		eventName = "on" + i;

		if ( !( support[ i ] = eventName in window ) ) {

			// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
			div.setAttribute( eventName, "t" );
			support[ i ] = div.attributes[ eventName ].expando === false;
		}
	}

	// Null elements to avoid leaks in IE.
	div = null;
} )();


var rformElems = /^(?:input|select|textarea)$/i,
	rkeyEvent = /^key/,
	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;

function returnTrue() {
	return true;
}

function returnFalse() {
	return false;
}

// Support: IE9
// See #13393 for more info
function safeActiveElement() {
	try {
		return document.activeElement;
	} catch ( err ) { }
}

function on( elem, types, selector, data, fn, 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 ) {
			on( elem, type, selector, data, types[ type ], one );
		}
		return elem;
	}

	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 elem;
	}

	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 elem.each( function() {
		jQuery.event.add( this, types, fn, data, selector );
	} );
}

/*
 * 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 tmp, events, t, handleObjIn,
			special, eventHandle, handleObj,
			handlers, type, namespaces, origType,
			elemData = jQuery._data( 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 !== "undefined" &&
					( !e || jQuery.event.triggered !== e.type ) ?
					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
					undefined;
			};

			// Add elem as a property of the handle fn to prevent a memory leak
			// with IE non-native events
			eventHandle.elem = elem;
		}

		// 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/attachEvent if the special events handler returns false
				if ( !special.setup ||
					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {

					// Bind the global event handler to the element
					if ( elem.addEventListener ) {
						elem.addEventListener( type, eventHandle, false );

					} else if ( elem.attachEvent ) {
						elem.attachEvent( "on" + type, eventHandle );
					}
				}
			}

			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;
		}

		// Nullify elem to prevent memory leaks in IE
		elem = null;
	},

	// Detach an event or set of events from an element
	remove: function( elem, types, handler, selector, mappedTypes ) {
		var j, handleObj, tmp,
			origCount, t, events,
			special, handlers, type,
			namespaces, origType,
			elemData = jQuery.hasData( elem ) && jQuery._data( 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;

			// removeData also checks for emptiness and clears the expando if empty
			// so use it instead of delete
			jQuery._removeData( elem, "events" );
		}
	},

	trigger: function( event, data, elem, onlyHandlers ) {
		var handle, ontype, cur,
			bubbleType, special, tmp, i,
			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( "." ) > -1 ) {

			// 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.rnamespace = 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 = ( jQuery._data( cur, "events" ) || {} )[ event.type ] &&
				jQuery._data( cur, "handle" );

			if ( handle ) {
				handle.apply( cur, data );
			}

			// Native handler
			handle = ontype && cur[ ontype ];
			if ( handle && handle.apply && 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
				) && acceptData( elem )
			) {

				// Call a native DOM method on the target with the same name name as the event.
				// Can't use an .isFunction() check here because IE6/7 fails that test.
				// Don't do default actions on window, that's where global variables be (#6170)
				if ( ontype && 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;
					try {
						elem[ type ]();
					} catch ( e ) {

						// IE<9 dies on focus/blur to hidden element (#1486,#12518)
						// only reproducible on winXP IE8 native, not IE9 in IE8 mode
					}
					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 = ( jQuery._data( 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.rnamespace || event.rnamespace.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;

		// Support (at least): Chrome, IE9
		// Find delegate handlers
		// Black-hole SVG <use> instance trees (#13180)
		//
		// Support: Firefox<=42+
		// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
		if ( delegateCount && cur.nodeType &&
			( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {

			/* jshint eqeqeq: false */
			for ( ; cur != this; cur = cur.parentNode || this ) {
				/* jshint eqeqeq: true */

				// Don't check non-elements (#13208)
				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
				if ( cur.nodeType === 1 && ( 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 ) > -1 :
								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;
	},

	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: IE<9
		// Fix target property (#1925)
		if ( !event.target ) {
			event.target = originalEvent.srcElement || document;
		}

		// Support: Safari 6-8+
		// Target should not be a text node (#504, #13143)
		if ( event.target.nodeType === 3 ) {
			event.target = event.target.parentNode;
		}

		// Support: IE<9
		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
		event.metaKey = !!event.metaKey;

		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
	},

	// Includes some event props shared by KeyEvent and MouseEvent
	props: ( "altKey bubbles cancelable ctrlKey currentTarget detail 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 fromElement offsetX offsetY " +
			"pageX pageY screenX screenY toElement" ).split( " " ),
		filter: function( event, original ) {
			var body, eventDoc, doc,
				button = original.button,
				fromElement = original.fromElement;

			// 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 relatedTarget, if necessary
			if ( !event.relatedTarget && fromElement ) {
				event.relatedTarget = fromElement === event.target ?
					original.toElement :
					fromElement;
			}

			// 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;
		}
	},

	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 ) {
					try {
						this.focus();
						return false;
					} catch ( e ) {

						// Support: IE<9
						// If we error on focus to hidden element (#1486, #12518),
						// let .trigger() run the handlers
					}
				}
			},
			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 ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
					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;
				}
			}
		}
	},

	// Piggyback on a donor event to simulate a different one
	simulate: function( type, elem, event ) {
		var e = jQuery.extend(
			new jQuery.Event(),
			event,
			{
				type: type,
				isSimulated: true

				// Previously, `originalEvent: {}` was set here, so stopPropagation call
				// would not be triggered on donor event, since in our own
				// jQuery.event.stopPropagation function we had a check for existence of
				// originalEvent.stopPropagation method, so, consequently it would be a noop.
				//
				// Guard for simulated events was moved to jQuery.event.stopPropagation function
				// since `originalEvent` should point to the original event for the
				// constancy with other events and for more focused logic
			}
		);

		jQuery.event.trigger( e, null, elem );

		if ( e.isDefaultPrevented() ) {
			event.preventDefault();
		}
	}
};

jQuery.removeEvent = document.removeEventListener ?
	function( elem, type, handle ) {

		// This "if" is needed for plain objects
		if ( elem.removeEventListener ) {
			elem.removeEventListener( type, handle );
		}
	} :
	function( elem, type, handle ) {
		var name = "on" + type;

		if ( elem.detachEvent ) {

			// #8545, #7054, preventing memory leaks for custom events in IE6-8
			// detachEvent needed property on element, by name of that event,
			// to properly expose it to GC
			if ( typeof elem[ name ] === "undefined" ) {
				elem[ name ] = null;
			}

			elem.detachEvent( name, handle );
		}
	};

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: IE < 9, 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 = {
	constructor: jQuery.Event,
	isDefaultPrevented: returnFalse,
	isPropagationStopped: returnFalse,
	isImmediatePropagationStopped: returnFalse,

	preventDefault: function() {
		var e = this.originalEvent;

		this.isDefaultPrevented = returnTrue;
		if ( !e ) {
			return;
		}

		// If preventDefault exists, run it on the original event
		if ( e.preventDefault ) {
			e.preventDefault();

		// Support: IE
		// Otherwise set the returnValue property of the original event to false
		} else {
			e.returnValue = false;
		}
	},
	stopPropagation: function() {
		var e = this.originalEvent;

		this.isPropagationStopped = returnTrue;

		if ( !e || this.isSimulated ) {
			return;
		}

		// If stopPropagation exists, run it on the original event
		if ( e.stopPropagation ) {
			e.stopPropagation();
		}

		// Support: IE
		// Set the cancelBubble property of the original event to true
		e.cancelBubble = true;
	},
	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
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
//
// Support: Safari 7 only
// Safari sends mouseenter too often; see:
// https://code.google.com/p/chromium/issues/detail?id=470258
// for the description of the bug (it existed in older Chrome versions as well).
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 mouseenter/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;
		}
	};
} );

// IE submit delegation
if ( !support.submit ) {

	jQuery.event.special.submit = {
		setup: function() {

			// Only need this for delegated form submit events
			if ( jQuery.nodeName( this, "form" ) ) {
				return false;
			}

			// Lazy-add a submit handler when a descendant form may potentially be submitted
			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {

				// Node name check avoids a VML-related crash in IE (#9807)
				var elem = e.target,
					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ?

						// Support: IE <=8
						// We use jQuery.prop instead of elem.form
						// to allow fixing the IE8 delegated submit issue (gh-2332)
						// by 3rd party polyfills/workarounds.
						jQuery.prop( elem, "form" ) :
						undefined;

				if ( form && !jQuery._data( form, "submit" ) ) {
					jQuery.event.add( form, "submit._submit", function( event ) {
						event._submitBubble = true;
					} );
					jQuery._data( form, "submit", true );
				}
			} );

			// return undefined since we don't need an event listener
		},

		postDispatch: function( event ) {

			// If form was submitted by the user, bubble the event up the tree
			if ( event._submitBubble ) {
				delete event._submitBubble;
				if ( this.parentNode && !event.isTrigger ) {
					jQuery.event.simulate( "submit", this.parentNode, event );
				}
			}
		},

		teardown: function() {

			// Only need this for delegated form submit events
			if ( jQuery.nodeName( this, "form" ) ) {
				return false;
			}

			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
			jQuery.event.remove( this, "._submit" );
		}
	};
}

// IE change delegation and checkbox/radio fix
if ( !support.change ) {

	jQuery.event.special.change = {

		setup: function() {

			if ( rformElems.test( this.nodeName ) ) {

				// IE doesn't fire change on a check/radio until blur; trigger it on click
				// after a propertychange. Eat the blur-change in special.change.handle.
				// This still fires onchange a second time for check/radio after blur.
				if ( this.type === "checkbox" || this.type === "radio" ) {
					jQuery.event.add( this, "propertychange._change", function( event ) {
						if ( event.originalEvent.propertyName === "checked" ) {
							this._justChanged = true;
						}
					} );
					jQuery.event.add( this, "click._change", function( event ) {
						if ( this._justChanged && !event.isTrigger ) {
							this._justChanged = false;
						}

						// Allow triggered, simulated change events (#11500)
						jQuery.event.simulate( "change", this, event );
					} );
				}
				return false;
			}

			// Delegated event; lazy-add a change handler on descendant inputs
			jQuery.event.add( this, "beforeactivate._change", function( e ) {
				var elem = e.target;

				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) {
					jQuery.event.add( elem, "change._change", function( event ) {
						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
							jQuery.event.simulate( "change", this.parentNode, event );
						}
					} );
					jQuery._data( elem, "change", true );
				}
			} );
		},

		handle: function( event ) {
			var elem = event.target;

			// Swallow native change events from checkbox/radio, we already triggered them above
			if ( this !== elem || event.isSimulated || event.isTrigger ||
				( elem.type !== "radio" && elem.type !== "checkbox" ) ) {

				return event.handleObj.handler.apply( this, arguments );
			}
		},

		teardown: function() {
			jQuery.event.remove( this, "._change" );

			return !rformElems.test( this.nodeName );
		}
	};
}

// Support: Firefox
// Firefox doesn't have focus(in | out) events
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
//
// Support: Chrome, Safari
// focus(in | out) events fire after focus & blur events,
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
if ( !support.focusin ) {
	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 ) );
		};

		jQuery.event.special[ fix ] = {
			setup: function() {
				var doc = this.ownerDocument || this,
					attaches = jQuery._data( doc, fix );

				if ( !attaches ) {
					doc.addEventListener( orig, handler, true );
				}
				jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
			},
			teardown: function() {
				var doc = this.ownerDocument || this,
					attaches = jQuery._data( doc, fix ) - 1;

				if ( !attaches ) {
					doc.removeEventListener( orig, handler, true );
					jQuery._removeData( doc, fix );
				} else {
					jQuery._data( doc, fix, attaches );
				}
			}
		};
	} );
}

jQuery.fn.extend( {

	on: function( types, selector, data, fn ) {
		return on( this, types, selector, data, fn );
	},
	one: function( types, selector, data, fn ) {
		return on( this, 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 rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
	rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,

	// Support: IE 10-11, Edge 10240+
	// In IE/Edge using regex groups here causes severe slowdowns.
	// See https://connect.microsoft.com/IE/feedback/details/1736512/
	rnoInnerhtml = /<script|<style|<link/i,

	// checked="checked" or checked
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
	rscriptTypeMasked = /^true\/(.*)/,
	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
	safeFragment = createSafeFragment( document ),
	fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) );

// Support: IE<8
// 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 = ( jQuery.find.attr( elem, "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;
}

function cloneCopyEvent( src, dest ) {
	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
		return;
	}

	var type, i, l,
		oldData = jQuery._data( src ),
		curData = jQuery._data( dest, oldData ),
		events = oldData.events;

	if ( events ) {
		delete curData.handle;
		curData.events = {};

		for ( type in events ) {
			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
				jQuery.event.add( dest, type, events[ type ][ i ] );
			}
		}
	}

	// make the cloned public data object a copy from the original
	if ( curData.data ) {
		curData.data = jQuery.extend( {}, curData.data );
	}
}

function fixCloneNodeIssues( src, dest ) {
	var nodeName, e, data;

	// We do not need to do anything for non-Elements
	if ( dest.nodeType !== 1 ) {
		return;
	}

	nodeName = dest.nodeName.toLowerCase();

	// IE6-8 copies events bound via attachEvent when using cloneNode.
	if ( !support.noCloneEvent && dest[ jQuery.expando ] ) {
		data = jQuery._data( dest );

		for ( e in data.events ) {
			jQuery.removeEvent( dest, e, data.handle );
		}

		// Event data gets referenced instead of copied if the expando gets copied too
		dest.removeAttribute( jQuery.expando );
	}

	// IE blanks contents when cloning scripts, and tries to evaluate newly-set text
	if ( nodeName === "script" && dest.text !== src.text ) {
		disableScript( dest ).text = src.text;
		restoreScript( dest );

	// IE6-10 improperly clones children of object elements using classid.
	// IE10 throws NoModificationAllowedError if parent is null, #12132.
	} else if ( nodeName === "object" ) {
		if ( dest.parentNode ) {
			dest.outerHTML = src.outerHTML;
		}

		// This path appears unavoidable for IE9. When cloning an object
		// element in IE9, the outerHTML strategy above is not sufficient.
		// If the src has innerHTML and the destination does not,
		// copy the src.innerHTML into the dest.innerHTML. #10324
		if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) {
			dest.innerHTML = src.innerHTML;
		}

	} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {

		// IE6-8 fails to persist the checked state of a cloned checkbox
		// or radio button. Worse, IE6-7 fail to give the cloned element
		// a checked appearance if the defaultChecked value isn't also set

		dest.defaultChecked = dest.checked = src.checked;

		// IE6-7 get confused and end up setting the value of a cloned
		// checkbox/radio button to an empty string instead of "on"
		if ( dest.value !== src.value ) {
			dest.value = src.value;
		}

	// IE6-8 fails to return the selected option to the default selected
	// state when cloning options
	} else if ( nodeName === "option" ) {
		dest.defaultSelected = dest.selected = src.defaultSelected;

	// IE6-8 fails to set the defaultValue to the correct value when
	// cloning other types of input fields
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
		dest.defaultValue = src.defaultValue;
	}
}

function domManip( collection, args, callback, ignored ) {

	// Flatten any nested arrays
	args = concat.apply( [], args );

	var first, node, hasScripts,
		scripts, doc, fragment,
		i = 0,
		l = collection.length,
		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 collection.each( function( index ) {
			var self = collection.eq( index );
			if ( isFunction ) {
				args[ 0 ] = value.call( this, index, self.html() );
			}
			domManip( self, args, callback, ignored );
		} );
	}

	if ( l ) {
		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
		first = fragment.firstChild;

		if ( fragment.childNodes.length === 1 ) {
			fragment = first;
		}

		// Require either new content or an interest in ignored elements to invoke the callback
		if ( first || ignored ) {
			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: Android<4.1, PhantomJS<2
						// push.apply(_, arraylike) throws on ancient WebKit
						jQuery.merge( scripts, getAll( node, "script" ) );
					}
				}

				callback.call( collection[ 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 || "" ) &&
						!jQuery._data( 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.text || node.textContent || node.innerHTML || "" )
									.replace( rcleanScript, "" )
							);
						}
					}
				}
			}

			// Fix #11809: Avoid leaking memory
			fragment = first = null;
		}
	}

	return collection;
}

function remove( elem, selector, keepData ) {
	var node,
		elems = selector ? jQuery.filter( selector, elem ) : elem,
		i = 0;

	for ( ; ( node = elems[ i ] ) != null; i++ ) {

		if ( !keepData && node.nodeType === 1 ) {
			jQuery.cleanData( getAll( node ) );
		}

		if ( node.parentNode ) {
			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
				setGlobalEval( getAll( node, "script" ) );
			}
			node.parentNode.removeChild( node );
		}
	}

	return elem;
}

jQuery.extend( {
	htmlPrefilter: function( html ) {
		return html.replace( rxhtmlTag, "<$1></$2>" );
	},

	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
		var destElements, node, clone, i, srcElements,
			inPage = jQuery.contains( elem.ownerDocument, elem );

		if ( support.html5Clone || jQuery.isXMLDoc( elem ) ||
			!rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {

			clone = elem.cloneNode( true );

		// IE<=8 does not properly clone detached, unknown element nodes
		} else {
			fragmentDiv.innerHTML = elem.outerHTML;
			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
		}

		if ( ( !support.noCloneEvent || !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 );

			// Fix all IE cloning issues
			for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) {

				// Ensure that the destination node is not null; Fixes #9587
				if ( destElements[ i ] ) {
					fixCloneNodeIssues( node, 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; ( node = srcElements[ i ] ) != null; i++ ) {
					cloneCopyEvent( node, destElements[ i ] );
				}
			} else {
				cloneCopyEvent( elem, clone );
			}
		}

		// Preserve script evaluation history
		destElements = getAll( clone, "script" );
		if ( destElements.length > 0 ) {
			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
		}

		destElements = srcElements = node = null;

		// Return the cloned set
		return clone;
	},

	cleanData: function( elems, /* internal */ forceAcceptData ) {
		var elem, type, id, data,
			i = 0,
			internalKey = jQuery.expando,
			cache = jQuery.cache,
			attributes = support.attributes,
			special = jQuery.event.special;

		for ( ; ( elem = elems[ i ] ) != null; i++ ) {
			if ( forceAcceptData || acceptData( elem ) ) {

				id = elem[ internalKey ];
				data = id && cache[ id ];

				if ( data ) {
					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 );
							}
						}
					}

					// Remove cache only if it was not already removed by jQuery.event.remove
					if ( cache[ id ] ) {

						delete cache[ id ];

						// Support: IE<9
						// IE does not allow us to delete expando properties from nodes
						// IE creates expando attributes along with the property
						// IE does not have a removeAttribute function on Document nodes
						if ( !attributes && typeof elem.removeAttribute !== "undefined" ) {
							elem.removeAttribute( internalKey );

						// Webkit & Blink performance suffers when deleting properties
						// from DOM nodes, so set to undefined instead
						// https://code.google.com/p/chromium/issues/detail?id=378607
						} else {
							elem[ internalKey ] = undefined;
						}

						deletedIds.push( id );
					}
				}
			}
		}
	}
} );

jQuery.fn.extend( {

	// Keep domManip exposed until 3.0 (gh-2225)
	domManip: domManip,

	detach: function( selector ) {
		return remove( this, selector, true );
	},

	remove: function( selector ) {
		return remove( this, selector );
	},

	text: function( value ) {
		return access( this, function( value ) {
			return value === undefined ?
				jQuery.text( this ) :
				this.empty().append(
					( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( value )
				);
		}, null, value, arguments.length );
	},

	append: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
				var target = manipulationTarget( this, elem );
				target.appendChild( elem );
			}
		} );
	},

	prepend: function() {
		return domManip( this, 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 domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this );
			}
		} );
	},

	after: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this.nextSibling );
			}
		} );
	},

	empty: function() {
		var elem,
			i = 0;

		for ( ; ( elem = this[ i ] ) != null; i++ ) {

			// Remove element nodes and prevent memory leaks
			if ( elem.nodeType === 1 ) {
				jQuery.cleanData( getAll( elem, false ) );
			}

			// Remove any remaining nodes
			while ( elem.firstChild ) {
				elem.removeChild( elem.firstChild );
			}

			// If this is a select, ensure that it displays empty (#12336)
			// Support: IE<9
			if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
				elem.options.length = 0;
			}
		}

		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 ) {
				return elem.nodeType === 1 ?
					elem.innerHTML.replace( rinlinejQuery, "" ) :
					undefined;
			}

			// See if we can take a shortcut and just use innerHTML
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
				( support.htmlSerialize || !rnoshimcache.test( value )  ) &&
				( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {

				value = jQuery.htmlPrefilter( value );

				try {
					for ( ; i < l; i++ ) {

						// Remove element nodes and prevent memory leaks
						elem = this[ i ] || {};
						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 ignored = [];

		// Make the changes, replacing each non-ignored context element with the new content
		return domManip( this, arguments, function( elem ) {
			var parent = this.parentNode;

			if ( jQuery.inArray( this, ignored ) < 0 ) {
				jQuery.cleanData( getAll( this ) );
				if ( parent ) {
					parent.replaceChild( elem, this );
				}
			}

		// Force callback invocation
		}, ignored );
	}
} );

jQuery.each( {
	appendTo: "append",
	prependTo: "prepend",
	insertBefore: "before",
	insertAfter: "after",
	replaceAll: "replaceWith"
}, function( name, original ) {
	jQuery.fn[ name ] = function( selector ) {
		var elems,
			i = 0,
			ret = [],
			insert = jQuery( selector ),
			last = insert.length - 1;

		for ( ; i <= last; i++ ) {
			elems = i === last ? this : this.clone( true );
			jQuery( insert[ i ] )[ original ]( elems );

			// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
			push.apply( ret, elems.get() );
		}

		return this.pushStack( ret );
	};
} );


var iframe,
	elemdisplay = {

		// Support: Firefox
		// We have to pre-define these values for FF (#10227)
		HTML: "block",
		BODY: "block"
	};

/**
 * 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 elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),

		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 ].contentWindow || iframe[ 0 ].contentDocument ).document;

			// 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 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 documentElement = document.documentElement;



( function() {
	var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal,
		reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal,
		container = document.createElement( "div" ),
		div = document.createElement( "div" );

	// Finish early in limited (non-browser) environments
	if ( !div.style ) {
		return;
	}

	div.style.cssText = "float:left;opacity:.5";

	// Support: IE<9
	// Make sure that element opacity exists (as opposed to filter)
	support.opacity = div.style.opacity === "0.5";

	// Verify style float existence
	// (IE uses styleFloat instead of cssFloat)
	support.cssFloat = !!div.style.cssFloat;

	div.style.backgroundClip = "content-box";
	div.cloneNode( true ).style.backgroundClip = "";
	support.clearCloneStyle = div.style.backgroundClip === "content-box";

	container = document.createElement( "div" );
	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
		"padding:0;margin-top:1px;position:absolute";
	div.innerHTML = "";
	container.appendChild( div );

	// Support: Firefox<29, Android 2.3
	// Vendor-prefix box-sizing
	support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" ||
		div.style.WebkitBoxSizing === "";

	jQuery.extend( support, {
		reliableHiddenOffsets: function() {
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return reliableHiddenOffsetsVal;
		},

		boxSizingReliable: function() {

			// We're checking for pixelPositionVal here instead of boxSizingReliableVal
			// since that compresses better and they're computed together anyway.
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return boxSizingReliableVal;
		},

		pixelMarginRight: function() {

			// Support: Android 4.0-4.3
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return pixelMarginRightVal;
		},

		pixelPosition: function() {
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return pixelPositionVal;
		},

		reliableMarginRight: function() {

			// Support: Android 2.3
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return reliableMarginRightVal;
		},

		reliableMarginLeft: function() {

			// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
			if ( pixelPositionVal == null ) {
				computeStyleTests();
			}
			return reliableMarginLeftVal;
		}
	} );

	function computeStyleTests() {
		var contents, divStyle,
			documentElement = document.documentElement;

		// Setup
		documentElement.appendChild( container );

		div.style.cssText =

			// Support: Android 2.3
			// Vendor-prefix box-sizing
			"-webkit-box-sizing:border-box;box-sizing:border-box;" +
			"position:relative;display:block;" +
			"margin:auto;border:1px;padding:1px;" +
			"top:1%;width:50%";

		// Support: IE<9
		// Assume reasonable values in the absence of getComputedStyle
		pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false;
		pixelMarginRightVal = reliableMarginRightVal = true;

		// Check for getComputedStyle so that this code is not run in IE<9.
		if ( window.getComputedStyle ) {
			divStyle = window.getComputedStyle( div );
			pixelPositionVal = ( divStyle || {} ).top !== "1%";
			reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px";
			boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px";

			// Support: Android 4.0 - 4.3 only
			// Some styles come back with percentage values, even though they shouldn't
			div.style.marginRight = "50%";
			pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px";

			// Support: Android 2.3 only
			// 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
			contents = div.appendChild( document.createElement( "div" ) );

			// Reset CSS: box-sizing; display; margin; border; padding
			contents.style.cssText = div.style.cssText =

				// Support: 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";
			contents.style.marginRight = contents.style.width = "0";
			div.style.width = "1px";

			reliableMarginRightVal =
				!parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight );

			div.removeChild( contents );
		}

		// Support: IE6-8
		// First check that getClientRects works as expected
		// Check if table cells still have offsetWidth/Height when they are set
		// to display:none and there are still other visible table cells in a
		// table row; if so, offsetWidth/Height are not reliable for use when
		// determining if an element has been hidden directly using
		// display:none (it is still safe to use offsets if a parent element is
		// hidden; don safety goggles and see bug #4512 for more information).
		div.style.display = "none";
		reliableHiddenOffsetsVal = div.getClientRects().length === 0;
		if ( reliableHiddenOffsetsVal ) {
			div.style.display = "";
			div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
			div.childNodes[ 0 ].style.borderCollapse = "separate";
			contents = div.getElementsByTagName( "td" );
			contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
			reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
			if ( reliableHiddenOffsetsVal ) {
				contents[ 0 ].style.display = "";
				contents[ 1 ].style.display = "none";
				reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
			}
		}

		// Teardown
		documentElement.removeChild( container );
	}

} )();


var getStyles, curCSS,
	rposition = /^(top|right|bottom|left)$/;

if ( window.getComputedStyle ) {
	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"
		var view = elem.ownerDocument.defaultView;

		if ( !view || !view.opener ) {
			view = window;
		}

		return view.getComputedStyle( elem );
	};

	curCSS = function( elem, name, computed ) {
		var width, minWidth, maxWidth, ret,
			style = elem.style;

		computed = computed || getStyles( elem );

		// getPropertyValue is only needed for .css('filter') in IE9, see #12537
		ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;

		// Support: Opera 12.1x only
		// Fall back to style even without computed
		// computed is undefined for elems on document fragments
		if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
			ret = jQuery.style( elem, name );
		}

		if ( computed ) {

			// A tribute to the "awesome hack by Dean Edwards"
			// Chrome < 17 and Safari 5.0 uses "computed value"
			// instead of "used value" for margin-right
			// Safari 5.1.7 (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 ( !support.pixelMarginRight() && 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;
			}
		}

		// Support: IE
		// IE returns zIndex value as an integer.
		return ret === undefined ?
			ret :
			ret + "";
	};
} else if ( documentElement.currentStyle ) {
	getStyles = function( elem ) {
		return elem.currentStyle;
	};

	curCSS = function( elem, name, computed ) {
		var left, rs, rsLeft, ret,
			style = elem.style;

		computed = computed || getStyles( elem );
		ret = computed ? computed[ name ] : undefined;

		// Avoid setting ret to empty string here
		// so we don't default to auto
		if ( ret == null && style && style[ name ] ) {
			ret = style[ name ];
		}

		// From the awesome hack by Dean Edwards
		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291

		// If we're not dealing with a regular pixel number
		// but a number that has a weird ending, we need to convert it to pixels
		// but not position css attributes, as those are
		// proportional to the parent element instead
		// and we can't measure the parent instead because it
		// might trigger a "stacking dolls" problem
		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {

			// Remember the original values
			left = style.left;
			rs = elem.runtimeStyle;
			rsLeft = rs && rs.left;

			// Put in the new values to get a computed value out
			if ( rsLeft ) {
				rs.left = elem.currentStyle.left;
			}
			style.left = name === "fontSize" ? "1em" : ret;
			ret = style.pixelLeft + "px";

			// Revert the changed values
			style.left = left;
			if ( rsLeft ) {
				rs.left = rsLeft;
			}
		}

		// Support: IE
		// IE returns zIndex value as an integer.
		return ret === undefined ?
			ret :
			ret + "" || "auto";
	};
}




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 );
		}
	};
}


var

		ralpha = /alpha\([^)]*\)/i,
	ropacity = /opacity\s*=\s*([^)]*)/i,

	// 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" ),

	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
	cssNormalTransform = {
		letterSpacing: "0",
		fontWeight: "400"
	},

	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
	emptyStyle = document.createElement( "div" ).style;


// return a css property mapped to a potentially vendor prefixed property
function vendorPropName( name ) {

	// shortcut for names that are not vendor prefixed
	if ( name in emptyStyle ) {
		return name;
	}

	// check for vendor prefixed names
	var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ),
		i = cssPrefixes.length;

	while ( i-- ) {
		name = cssPrefixes[ i ] + capName;
		if ( name in emptyStyle ) {
			return name;
		}
	}
}

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 ] = jQuery._data( 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 ] =
					jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) );
			}
		} else {
			hidden = isHidden( elem );

			if ( display && display !== "none" || !hidden ) {
				jQuery._data(
					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;
}

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 = support.boxSizing &&
			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;
		}

		// we need the 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";
}

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: {
		"animationIterationCount": true,
		"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: {

		// normalize float css property
		"float": support.cssFloat ? "cssFloat" : "styleFloat"
	},

	// 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( origName ) || origName );

		// gets hook for the prefixed version
		// followed by the 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 = rcssNum.exec( value ) ) && ret[ 1 ] ) {
				value = adjustCSS( elem, name, ret );

				// Fixes bug #9237
				type = "number";
			}

			// Make sure that null and NaN values aren't set. See: #7116
			if ( value == null || value !== value ) {
				return;
			}

			// If a number was passed in, add the unit (except for certain CSS properties)
			if ( type === "number" ) {
				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
			}

			// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
			// but it would mean to define eight
			// (for every problematic property) identical functions
			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 ) {

				// Support: IE
				// Swallow errors from 'invalid' CSS values (#5509)
				try {
					style[ name ] = value;
				} catch ( e ) {}
			}

		} 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 num, val, hooks,
			origName = jQuery.camelCase( name );

		// Make sure that we're working with the right name
		name = jQuery.cssProps[ origName ] ||
			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );

		// gets hook for the prefixed version
		// followed by the unprefixed version
		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 ];
		}

		// Return, converting to number if forced or a qualifier was provided and val looks numeric
		if ( extra === "" || extra ) {
			num = parseFloat( val );
			return extra === true || isFinite( 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
				// however, it must have a current display style that would benefit from this
				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
					elem.offsetWidth === 0 ?
						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,
					support.boxSizing &&
						jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
					styles
				) : 0
			);
		}
	};
} );

if ( !support.opacity ) {
	jQuery.cssHooks.opacity = {
		get: function( elem, computed ) {

			// IE uses filters for opacity
			return ropacity.test( ( computed && elem.currentStyle ?
				elem.currentStyle.filter :
				elem.style.filter ) || "" ) ?
					( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
					computed ? "1" : "";
		},

		set: function( elem, value ) {
			var style = elem.style,
				currentStyle = elem.currentStyle,
				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
				filter = currentStyle && currentStyle.filter || style.filter || "";

			// IE has trouble with opacity if it does not have layout
			// Force it by setting the zoom level
			style.zoom = 1;

			// if setting opacity to 1, and no other filters exist -
			// attempt to remove filter attribute #6652
			// if value === "", then remove inline opacity #12685
			if ( ( value >= 1 || value === "" ) &&
					jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
					style.removeAttribute ) {

				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
				// if "filter:" is present at all, clearType is disabled, we want to avoid this
				// style.removeAttribute is IE Only, but so apparently is this code path...
				style.removeAttribute( "filter" );

				// if there is no filter style applied in a css rule
				// or unset inline opacity, we are done
				if ( value === "" || currentStyle && !currentStyle.filter ) {
					return;
				}
			}

			// otherwise, set new filter values
			style.filter = ralpha.test( filter ) ?
				filter.replace( ralpha, opacity ) :
				filter + " " + opacity;
		}
	};
}

jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
	function( elem, computed ) {
		if ( computed ) {
			return swap( elem, { "display": "inline-block" },
				curCSS, [ elem, "marginRight" ] );
		}
	}
);

jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
	function( elem, computed ) {
		if ( computed ) {
			return (
				parseFloat( curCSS( elem, "marginLeft" ) ) ||

				// Support: IE<=11+
				// Running getBoundingClientRect on a disconnected node in IE throws an error
				// Support: IE8 only
				// getClientRects() errors on disconnected elems
				( jQuery.contains( elem.ownerDocument, elem ) ?
					elem.getBoundingClientRect().left -
						swap( elem, { marginLeft: 0 }, function() {
							return elem.getBoundingClientRect().left;
						} ) :
					0
				)
			) + "px";
		}
	}
);

// 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 || jQuery.easing._default;
		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;

			// Use a property on the element directly when it is not a DOM element,
			// or when there is no matching style property that exists.
			if ( tween.elem.nodeType !== 1 ||
				tween.elem[ tween.prop ] != null && 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
			// so, 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 its
			// available and use plain properties where available
			if ( jQuery.fx.step[ tween.prop ] ) {
				jQuery.fx.step[ tween.prop ]( tween );
			} else if ( tween.elem.nodeType === 1 &&
				( 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: IE <=9
// 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;
	},
	_default: "swing"
};

jQuery.fx = Tween.prototype.init;

// Back Compat <1.8 extension point
jQuery.fx.step = {};




var
	fxNow, timerId,
	rfxtypes = /^(?:toggle|show|hide)$/,
	rrun = /queueHooks$/;

// Animations created synchronously will run synchronously
function createFxNow() {
	window.setTimeout( function() {
		fxNow = undefined;
	} );
	return ( fxNow = jQuery.now() );
}

// Generate parameters to create a standard animation
function genFx( type, includeWidth ) {
	var which,
		attrs = { height: type },
		i = 0;

	// if we include width, step value is 1 to do all cssExpand values,
	// if we don't include width, 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 = ( Animation.tweeners[ prop ] || [] ).concat( Animation.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 = jQuery._data( 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() {

			// doing this makes sure that the complete handler will be 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 IE does 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" ?
			jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;

		if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {

			// inline-level elements accept inline-block;
			// block-level elements need to be inline with layout
			if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
				style.display = "inline-block";
			} else {
				style.zoom = 1;
			}
		}
	}

	if ( opts.overflow ) {
		style.overflow = "hidden";
		if ( !support.shrinkWrapBlocks() ) {
			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 = jQuery._data( 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;
			jQuery._removeData( 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 wont overwrite keys already present.
			// also - reusing 'index' from above 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 = Animation.prefilters.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: {},
				easing: jQuery.easing._default
			}, 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.notifyWith( elem, [ animation, 1, 0 ] );
					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 = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
		if ( result ) {
			if ( jQuery.isFunction( result.stop ) ) {
				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
					jQuery.proxy( result.stop, 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, {

	tweeners: {
		"*": [ function( prop, value ) {
			var tween = this.createTween( prop, value );
			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
			return tween;
		} ]
	},

	tweener: function( props, callback ) {
		if ( jQuery.isFunction( props ) ) {
			callback = props;
			props = [ "*" ];
		} else {
			props = props.match( rnotwhite );
		}

		var prop,
			index = 0,
			length = props.length;

		for ( ; index < length ; index++ ) {
			prop = props[ index ];
			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
			Animation.tweeners[ prop ].unshift( callback );
		}
	},

	prefilters: [ defaultPrefilter ],

	prefilter: function( callback, prepend ) {
		if ( prepend ) {
			Animation.prefilters.unshift( callback );
		} else {
			Animation.prefilters.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 || jQuery._data( 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 = jQuery._data( 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 = jQuery._data( 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,
		timers = jQuery.timers,
		i = 0;

	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 = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
	}
};

jQuery.fx.stop = function() {
	window.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://web.archive.org/web/20100324014747/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 = window.setTimeout( next, time );
		hooks.stop = function() {
			window.clearTimeout( timeout );
		};
	} );
};


( function() {
	var a,
		input = document.createElement( "input" ),
		div = document.createElement( "div" ),
		select = document.createElement( "select" ),
		opt = select.appendChild( document.createElement( "option" ) );

	// Setup
	div = document.createElement( "div" );
	div.setAttribute( "className", "t" );
	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
	a = div.getElementsByTagName( "a" )[ 0 ];

	// Support: Windows Web Apps (WWA)
	// `type` must use .setAttribute for WWA (#14901)
	input.setAttribute( "type", "checkbox" );
	div.appendChild( input );

	a = div.getElementsByTagName( "a" )[ 0 ];

	// First batch of tests.
	a.style.cssText = "top:1px";

	// Test setAttribute on camelCase class.
	// If it works, we need attrFixes when doing get/setAttribute (ie6/7)
	support.getSetAttribute = div.className !== "t";

	// Get the style information from getAttribute
	// (IE uses .cssText instead)
	support.style = /top/.test( a.getAttribute( "style" ) );

	// Make sure that URLs aren't manipulated
	// (IE normalizes it by default)
	support.hrefNormalized = a.getAttribute( "href" ) === "/a";

	// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
	support.checkOn = !!input.value;

	// Make sure that a selected-by-default option has a working selected property.
	// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
	support.optSelected = opt.selected;

	// Tests for enctype support on a form (#6743)
	support.enctype = !!document.createElement( "form" ).enctype;

	// Make sure that the options inside disabled selects aren't marked as disabled
	// (WebKit marks them as disabled)
	select.disabled = true;
	support.optDisabled = !opt.disabled;

	// Support: IE8 only
	// Check if we can trust getAttribute("value")
	input = document.createElement( "input" );
	input.setAttribute( "value", "" );
	support.input = input.getAttribute( "value" ) === "";

	// Check if an input maintains its value after becoming a radio
	input.value = "t";
	input.setAttribute( "type", "radio" );
	support.radioValue = input.value === "t";
} )();


var rreturn = /\r/g,
	rspaces = /[\x20\t\r\n\f]+/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)
					// Strip and collapse whitespace
					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
					jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
			}
		},
		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 ];

					// oldIE 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 ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) {

						// Support: IE6
						// When new option element is added to select box we need to
						// force reflow of newly added node in order to workaround delay
						// of initialization properties
						try {
							option.selected = optionSet = true;

						} catch ( _ ) {

							// Will be executed only in IE6
							option.scrollHeight;
						}

					} else {
						option.selected = false;
					}
				}

				// Force browsers to behave consistently when non-matching value is set
				if ( !optionSet ) {
					elem.selectedIndex = -1;
				}

				return options;
			}
		}
	}
} );

// 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 ) > -1 );
			}
		}
	};
	if ( !support.checkOn ) {
		jQuery.valHooks[ this ].get = function( elem ) {
			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
		};
	}
} );




var nodeHook, boolHook,
	attrHandle = jQuery.expr.attrHandle,
	ruseDefault = /^(?:checked|selected)$/i,
	getSetAttribute = support.getSetAttribute,
	getSetInput = support.input;

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 ret, hooks,
			nType = elem.nodeType;

		// Don't get/set attributes on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		// Fallback to prop when attributes are not supported
		if ( typeof elem.getAttribute === "undefined" ) {
			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 );
				return;
			}

			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			elem.setAttribute( name, value + "" );
			return value;
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		ret = jQuery.find.attr( elem, name );

		// Non-existent attributes return null, we normalize to undefined
		return ret == null ? undefined : ret;
	},

	attrHooks: {
		type: {
			set: function( elem, value ) {
				if ( !support.radioValue && value === "radio" &&
					jQuery.nodeName( elem, "input" ) ) {

					// Setting the type on a radio button after the value resets the value in IE8-9
					// Reset value to default in case type is set after value during creation
					var val = elem.value;
					elem.setAttribute( "type", value );
					if ( val ) {
						elem.value = val;
					}
					return value;
				}
			}
		}
	},

	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
					if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
						elem[ propName ] = false;

					// Support: IE<9
					// Also clear defaultChecked/defaultSelected (if appropriate)
					} else {
						elem[ jQuery.camelCase( "default-" + name ) ] =
							elem[ propName ] = false;
					}

				// See #9699 for explanation of this approach (setting first, then removal)
				} else {
					jQuery.attr( elem, name, "" );
				}

				elem.removeAttribute( getSetAttribute ? name : propName );
			}
		}
	}
} );

// 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 if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {

			// IE<8 needs the *property* name
			elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );

		} else {

			// Support: IE<9
			// Use defaultChecked and defaultSelected for oldIE
			elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
		}
		return name;
	}
};

jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
	var getter = attrHandle[ name ] || jQuery.find.attr;

	if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
		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;
		};
	} else {
		attrHandle[ name ] = function( elem, name, isXML ) {
			if ( !isXML ) {
				return elem[ jQuery.camelCase( "default-" + name ) ] ?
					name.toLowerCase() :
					null;
			}
		};
	}
} );

// fix oldIE attroperties
if ( !getSetInput || !getSetAttribute ) {
	jQuery.attrHooks.value = {
		set: function( elem, value, name ) {
			if ( jQuery.nodeName( elem, "input" ) ) {

				// Does not return so that setAttribute is also used
				elem.defaultValue = value;
			} else {

				// Use nodeHook if defined (#1954); otherwise setAttribute is fine
				return nodeHook && nodeHook.set( elem, value, name );
			}
		}
	};
}

// IE6/7 do not support getting/setting some attributes with get/setAttribute
if ( !getSetAttribute ) {

	// Use this for any attribute in IE6/7
	// This fixes almost every IE6/7 issue
	nodeHook = {
		set: function( elem, value, name ) {

			// Set the existing or create a new attribute node
			var ret = elem.getAttributeNode( name );
			if ( !ret ) {
				elem.setAttributeNode(
					( ret = elem.ownerDocument.createAttribute( name ) )
				);
			}

			ret.value = value += "";

			// Break association with cloned elements by also using setAttribute (#9646)
			if ( name === "value" || value === elem.getAttribute( name ) ) {
				return value;
			}
		}
	};

	// Some attributes are constructed with empty-string values when not defined
	attrHandle.id = attrHandle.name = attrHandle.coords =
		function( elem, name, isXML ) {
			var ret;
			if ( !isXML ) {
				return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ?
					ret.value :
					null;
			}
		};

	// Fixing value retrieval on a button requires this module
	jQuery.valHooks.button = {
		get: function( elem, name ) {
			var ret = elem.getAttributeNode( name );
			if ( ret && ret.specified ) {
				return ret.value;
			}
		},
		set: nodeHook.set
	};

	// Set contenteditable to false on removals(#10429)
	// Setting to empty string throws an error as an invalid value
	jQuery.attrHooks.contenteditable = {
		set: function( elem, value, name ) {
			nodeHook.set( elem, value === "" ? false : value, name );
		}
	};

	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
	// This is for removals
	jQuery.each( [ "width", "height" ], function( i, name ) {
		jQuery.attrHooks[ name ] = {
			set: function( elem, value ) {
				if ( value === "" ) {
					elem.setAttribute( name, "auto" );
					return value;
				}
			}
		};
	} );
}

if ( !support.style ) {
	jQuery.attrHooks.style = {
		get: function( elem ) {

			// Return undefined in the case of empty string
			// Note: IE uppercases css property names, but if we were to .toLowerCase()
			// .cssText, that would destroy case sensitivity in URL's, like in "background"
			return elem.style.cssText || undefined;
		},
		set: function( elem, value ) {
			return ( elem.style.cssText = value + "" );
		}
	};
}




var rfocusable = /^(?:input|select|textarea|button|object)$/i,
	rclickable = /^(?:a|area)$/i;

jQuery.fn.extend( {
	prop: function( name, value ) {
		return access( this, jQuery.prop, name, value, arguments.length > 1 );
	},

	removeProp: function( name ) {
		name = jQuery.propFix[ name ] || name;
		return this.each( function() {

			// try/catch handles cases where IE balks (such as removing a property on window)
			try {
				this[ name ] = undefined;
				delete this[ name ];
			} catch ( e ) {}
		} );
	}
} );

jQuery.extend( {
	prop: function( elem, name, value ) {
		var ret, hooks,
			nType = elem.nodeType;

		// Don't get/set properties on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {

			// Fix name and attach hooks
			name = jQuery.propFix[ name ] || name;
			hooks = jQuery.propHooks[ name ];
		}

		if ( value !== undefined ) {
			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			return ( elem[ name ] = value );
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		return elem[ name ];
	},

	propHooks: {
		tabIndex: {
			get: function( elem ) {

				// elem.tabIndex doesn't always return the
				// correct value when it hasn't been explicitly set
				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
				// Use proper attribute retrieval(#12072)
				var tabindex = jQuery.find.attr( elem, "tabindex" );

				return tabindex ?
					parseInt( tabindex, 10 ) :
					rfocusable.test( elem.nodeName ) ||
						rclickable.test( elem.nodeName ) && elem.href ?
							0 :
							-1;
			}
		}
	},

	propFix: {
		"for": "htmlFor",
		"class": "className"
	}
} );

// Some attributes require a special call on IE
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
if ( !support.hrefNormalized ) {

	// href/src property should get the full normalized URL (#10299/#12915)
	jQuery.each( [ "href", "src" ], function( i, name ) {
		jQuery.propHooks[ name ] = {
			get: function( elem ) {
				return elem.getAttribute( name, 4 );
			}
		};
	} );
}

// Support: Safari, IE9+
// Accessing the selectedIndex property
// forces the browser to respect setting selected
// on the option
// The getter ensures a default option is selected
// when in an optgroup
if ( !support.optSelected ) {
	jQuery.propHooks.selected = {
		get: function( elem ) {
			var parent = elem.parentNode;

			if ( parent ) {
				parent.selectedIndex;

				// Make sure that it also works with optgroups, see #5701
				if ( parent.parentNode ) {
					parent.parentNode.selectedIndex;
				}
			}
			return null;
		},
		set: function( elem ) {
			var parent = elem.parentNode;
			if ( parent ) {
				parent.selectedIndex;

				if ( parent.parentNode ) {
					parent.parentNode.selectedIndex;
				}
			}
		}
	};
}

jQuery.each( [
	"tabIndex",
	"readOnly",
	"maxLength",
	"cellSpacing",
	"cellPadding",
	"rowSpan",
	"colSpan",
	"useMap",
	"frameBorder",
	"contentEditable"
], function() {
	jQuery.propFix[ this.toLowerCase() ] = this;
} );

// IE6/7 call enctype encoding
if ( !support.enctype ) {
	jQuery.propFix.enctype = "encoding";
}




var rclass = /[\t\r\n\f]/g;

function getClass( elem ) {
	return jQuery.attr( elem, "class" ) || "";
}

jQuery.fn.extend( {
	addClass: function( value ) {
		var classes, elem, cur, curValue, clazz, j, finalValue,
			i = 0;

		if ( jQuery.isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		if ( typeof value === "string" && value ) {
			classes = value.match( rnotwhite ) || [];

			while ( ( elem = this[ i++ ] ) ) {
				curValue = getClass( elem );
				cur = elem.nodeType === 1 &&
					( " " + curValue + " " ).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 ( curValue !== finalValue ) {
						jQuery.attr( elem, "class", finalValue );
					}
				}
			}
		}

		return this;
	},

	removeClass: function( value ) {
		var classes, elem, cur, curValue, clazz, j, finalValue,
			i = 0;

		if ( jQuery.isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		if ( !arguments.length ) {
			return this.attr( "class", "" );
		}

		if ( typeof value === "string" && value ) {
			classes = value.match( rnotwhite ) || [];

			while ( ( elem = this[ i++ ] ) ) {
				curValue = getClass( elem );

				// This expression is here for better compressibility (see addClass)
				cur = elem.nodeType === 1 &&
					( " " + curValue + " " ).replace( rclass, " " );

				if ( cur ) {
					j = 0;
					while ( ( clazz = classes[ j++ ] ) ) {

						// Remove *all* instances
						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
							cur = cur.replace( " " + clazz + " ", " " );
						}
					}

					// Only assign if different to avoid unneeded rendering.
					finalValue = jQuery.trim( cur );
					if ( curValue !== finalValue ) {
						jQuery.attr( elem, "class", 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, getClass( this ), stateVal ),
					stateVal
				);
			} );
		}

		return this.each( function() {
			var className, i, self, classNames;

			if ( type === "string" ) {

				// Toggle individual class names
				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 ( value === undefined || type === "boolean" ) {
				className = getClass( this );
				if ( className ) {

					// store className if set
					jQuery._data( this, "__className__", 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.
				jQuery.attr( this, "class",
					className || value === false ?
					"" :
					jQuery._data( this, "__className__" ) || ""
				);
			}
		} );
	},

	hasClass: function( selector ) {
		var className, elem,
			i = 0;

		className = " " + selector + " ";
		while ( ( elem = this[ i++ ] ) ) {
			if ( elem.nodeType === 1 &&
				( " " + getClass( elem ) + " " ).replace( rclass, " " )
					.indexOf( className ) > -1
			) {
				return true;
			}
		}

		return false;
	}
} );




// 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 );
	}
} );


var location = window.location;

var nonce = jQuery.now();

var rquery = ( /\?/ );



var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;

jQuery.parseJSON = function( data ) {

	// Attempt to parse using the native JSON parser first
	if ( window.JSON && window.JSON.parse ) {

		// Support: Android 2.3
		// Workaround failure to string-cast null input
		return window.JSON.parse( data + "" );
	}

	var requireNonComma,
		depth = null,
		str = jQuery.trim( data + "" );

	// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains
	// after removing valid tokens
	return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {

		// Force termination if we see a misplaced comma
		if ( requireNonComma && comma ) {
			depth = 0;
		}

		// Perform no more replacements after returning to outermost depth
		if ( depth === 0 ) {
			return token;
		}

		// Commas must not follow "[", "{", or ","
		requireNonComma = open || comma;

		// Determine new depth
		// array/object open ("[" or "{"): depth += true - false (increment)
		// array/object close ("]" or "}"): depth += false - true (decrement)
		// other cases ("," or primitive): depth += true - true (numeric cast)
		depth += !close - !open;

		// Remove this token
		return "";
	} ) ) ?
		( Function( "return " + str ) )() :
		jQuery.error( "Invalid JSON: " + data );
};


// Cross-browser xml parsing
jQuery.parseXML = function( data ) {
	var xml, tmp;
	if ( !data || typeof data !== "string" ) {
		return null;
	}
	try {
		if ( window.DOMParser ) { // Standard
			tmp = new window.DOMParser();
			xml = tmp.parseFromString( data, "text/xml" );
		} else { // IE
			xml = new window.ActiveXObject( "Microsoft.XMLDOM" );
			xml.async = "false";
			xml.loadXML( data );
		}
	} catch ( e ) {
		xml = undefined;
	}
	if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
		jQuery.error( "Invalid XML: " + data );
	}
	return xml;
};


var
	rhash = /#.*$/,
	rts = /([?&])_=[^&]*/,

	// IE leaves an \r character at EOL
	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/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 = 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.charAt( 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 deep, key,
		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 firstDataType, ct, finalDataType, type,
		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 ) {

				// ADDED by Joomla: Mitigate possible XSS vulnerability (gh-2432), CMS Issue 19464
				if (s.crossDomain && current === "script") {
					continue;
				}

				// 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" ] ) { // jscs:ignore requireDotNotation
						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: /\bxml\b/,
			html: /\bhtml/,
			json: /\bjson\b/
		},

		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

			// Cross-domain detection vars
			parts,

			// Loop variable
			i,

			// URL without anti-cache param
			cacheURL,

			// Response headers as string
			responseHeadersString,

			// timeout handle
			timeoutTimer,

			// To know if global events are to be dispatched
			fireGlobals,

			transport,

			// Response headers
			responseHeaders,

			// 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 (#5866: IE7 issue with protocol-less urls)
		// 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 ] );
			}

			// If request was aborted inside ajaxSend, stop there
			if ( state === 2 ) {
				return jqXHR;
			}

			// Timeout
			if ( s.async && s.timeout > 0 ) {
				timeoutTimer = window.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 ) {
				window.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 {

				// We extract error from statusText
				// then normalize statusText and status 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;
		}

		// The url can be an options object (which then must have .url)
		return jQuery.ajax( jQuery.extend( {
			url: url,
			type: method,
			dataType: type,
			data: data,
			success: callback
		}, jQuery.isPlainObject( url ) && url ) );
	};
} );


jQuery._evalUrl = function( url ) {
	return jQuery.ajax( {
		url: url,

		// Make this explicit, since user can override this through ajaxSetup (#11264)
		type: "GET",
		dataType: "script",
		cache: true,
		async: false,
		global: false,
		"throws": true
	} );
};


jQuery.fn.extend( {
	wrapAll: function( html ) {
		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
			var 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.firstChild && elem.firstChild.nodeType === 1 ) {
					elem = elem.firstChild;
				}

				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();
	}
} );


function getDisplay( elem ) {
	return elem.style && elem.style.display || jQuery.css( elem, "display" );
}

function filterHidden( elem ) {

	// Disconnected elements are considered hidden
	if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) {
		return true;
	}
	while ( elem && elem.nodeType === 1 ) {
		if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) {
			return true;
		}
		elem = elem.parentNode;
	}
	return false;
}

jQuery.expr.filters.hidden = function( elem ) {

	// Support: Opera <= 12.12
	// Opera reports offsetWidths and offsetHeights less than zero on some elements
	return support.reliableHiddenOffsets() ?
		( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 &&
			!elem.getClientRects().length ) :
			filterHidden( elem );
};

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" && v != null ? 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();
	}
} );


// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?

	// Support: IE6-IE8
	function() {

		// XHR cannot access local files, always use ActiveX for that case
		if ( this.isLocal ) {
			return createActiveXHR();
		}

		// Support: IE 9-11
		// IE seems to error on cross-domain PATCH requests when ActiveX XHR
		// is used. In IE 9+ always use the native XHR.
		// Note: this condition won't catch Edge as it doesn't define
		// document.documentMode but it also doesn't support ActiveX so it won't
		// reach this code.
		if ( document.documentMode > 8 ) {
			return createStandardXHR();
		}

		// Support: IE<9
		// oldIE XHR does not support non-RFC2616 methods (#13240)
		// See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx
		// and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9
		// Although this check for six methods instead of eight
		// since IE also does not support "trace" and "connect"
		return /^(get|post|head|put|delete|options)$/i.test( this.type ) &&
			createStandardXHR() || createActiveXHR();
	} :

	// For all other browsers, use the standard XMLHttpRequest object
	createStandardXHR;

var xhrId = 0,
	xhrCallbacks = {},
	xhrSupported = jQuery.ajaxSettings.xhr();

// Support: IE<10
// 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 ]( undefined, true );
		}
	} );
}

// Determine support properties
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
xhrSupported = support.ajax = !!xhrSupported;

// Create transport if the browser can provide an xhr
if ( xhrSupported ) {

	jQuery.ajaxTransport( function( options ) {

		// Cross domain only allowed if supported through XMLHttpRequest
		if ( !options.crossDomain || support.cors ) {

			var callback;

			return {
				send: function( headers, complete ) {
					var i,
						xhr = options.xhr(),
						id = ++xhrId;

					// Open the socket
					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 ) {

						// Support: IE<9
						// IE's ActiveXObject throws a 'Type Mismatch' exception when setting
						// request header to a null-value.
						//
						// To keep consistent with other XHR implementations, cast the value
						// to string and ignore `undefined`.
						if ( headers[ i ] !== undefined ) {
							xhr.setRequestHeader( i, headers[ i ] + "" );
						}
					}

					// Do send the request
					// This may raise an exception which is actually
					// handled in jQuery.ajax (so no try/catch here)
					xhr.send( ( options.hasContent && options.data ) || null );

					// Listener
					callback = function( _, isAbort ) {
						var status, statusText, responses;

						// Was never called and is aborted or complete
						if ( callback && ( isAbort || xhr.readyState === 4 ) ) {

							// Clean up
							delete xhrCallbacks[ id ];
							callback = undefined;
							xhr.onreadystatechange = jQuery.noop;

							// Abort manually if needed
							if ( isAbort ) {
								if ( xhr.readyState !== 4 ) {
									xhr.abort();
								}
							} else {
								responses = {};
								status = xhr.status;

								// Support: IE<10
								// Accessing binary-data responseText throws an exception
								// (#11426)
								if ( typeof xhr.responseText === "string" ) {
									responses.text = xhr.responseText;
								}

								// Firefox throws an exception when accessing
								// statusText for faulty cross-domain requests
								try {
									statusText = xhr.statusText;
								} catch ( e ) {

									// We normalize with Webkit giving an empty statusText
									statusText = "";
								}

								// Filter status for non standard behaviors

								// If the request is local and we have data: assume a success
								// (success with no data won't get notified, that's the best we
								// can do given current implementations)
								if ( !status && options.isLocal && !options.crossDomain ) {
									status = responses.text ? 200 : 404;

								// IE - #1450: sometimes returns 1223 when it should be 204
								} else if ( status === 1223 ) {
									status = 204;
								}
							}
						}

						// Call complete if needed
						if ( responses ) {
							complete( status, statusText, responses, xhr.getAllResponseHeaders() );
						}
					};

					// Do send the request
					// `xhr.send` may raise an exception, but it will be
					// handled in jQuery.ajax (so no try/catch here)
					if ( !options.async ) {

						// If we're in sync mode we fire the callback
						callback();
					} else if ( xhr.readyState === 4 ) {

						// (IE6 & IE7) if it's in cache and has been
						// retrieved directly we need to fire the callback
						window.setTimeout( callback );
					} else {

						// Register the callback, but delay it in case `xhr.send` throws
						// Add to the list of active xhr callbacks
						xhr.onreadystatechange = xhrCallbacks[ id ] = callback;
					}
				},

				abort: function() {
					if ( callback ) {
						callback( undefined, true );
					}
				}
			};
		}
	} );
}

// Functions to create xhrs
function createStandardXHR() {
	try {
		return new window.XMLHttpRequest();
	} catch ( e ) {}
}

function createActiveXHR() {
	try {
		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
	} catch ( e ) {}
}




// Install script dataType
jQuery.ajaxSetup( {
	accepts: {
		script: "text/javascript, application/javascript, " +
			"application/ecmascript, application/x-ecmascript"
	},
	contents: {
		script: /\b(?:java|ecma)script\b/
	},
	converters: {
		"text script": function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
} );

// Handle cache's special case and global
jQuery.ajaxPrefilter( "script", function( s ) {
	if ( s.cache === undefined ) {
		s.cache = false;
	}
	if ( s.crossDomain ) {
		s.type = "GET";
		s.global = false;
	}
} );

// Bind script tag hack transport
jQuery.ajaxTransport( "script", function( s ) {

	// This transport only deals with cross domain requests
	if ( s.crossDomain ) {

		var script,
			head = document.head || jQuery( "head" )[ 0 ] || document.documentElement;

		return {

			send: function( _, callback ) {

				script = document.createElement( "script" );

				script.async = true;

				if ( s.scriptCharset ) {
					script.charset = s.scriptCharset;
				}

				script.src = s.url;

				// Attach handlers for all browsers
				script.onload = script.onreadystatechange = function( _, isAbort ) {

					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {

						// Handle memory leak in IE
						script.onload = script.onreadystatechange = null;

						// Remove the script
						if ( script.parentNode ) {
							script.parentNode.removeChild( script );
						}

						// Dereference the script
						script = null;

						// Callback if not abort
						if ( !isAbort ) {
							callback( 200, "success" );
						}
					}
				};

				// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
				// Use native DOM manipulation to avoid our domManip AJAX trickery
				head.insertBefore( script, head.firstChild );
			},

			abort: function() {
				if ( script ) {
					script.onload( undefined, true );
				}
			}
		};
	}
} );




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" ) === 0 &&
				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() {

			// If previous value didn't exist - remove it
			if ( overwritten === undefined ) {
				jQuery( window ).removeProp( callbackName );

			// Otherwise restore preexisting value
			} else {
				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 = 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 > -1 ) {
		selector = jQuery.trim( url.slice( off, url.length ) );
		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.
			// Make value of this field explicit since
			// user can override it through ajaxSetup method
			type: type || "GET",
			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 );

		// If the request succeeds, this function gets "data", "status", "jqXHR"
		// but they are ignored because response was set above.
		// If it fails, this function gets "jqXHR", "status", "error"
		} ).always( callback && function( jqXHR, status ) {
			self.each( function() {
				callback.apply( this, 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;
};





/**
 * Gets a window from an element
 */
function getWindow( elem ) {
	return jQuery.isWindow( elem ) ?
		elem :
		elem.nodeType === 9 ?
			elem.defaultView || elem.parentWindow :
			false;
}

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" ) &&
			jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -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 ) ) {

			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
			options = options.call( elem, i, jQuery.extend( {}, 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,
			box = { top: 0, left: 0 },
			elem = this[ 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;
		}

		// If we don't have gBCR, just use 0,0 rather than error
		// BlackBerry 5, iOS 3 (original iPhone)
		if ( typeof elem.getBoundingClientRect !== "undefined" ) {
			box = elem.getBoundingClientRect();
		}
		win = getWindow( doc );
		return {
			top: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),
			left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
		};
	},

	position: function() {
		if ( !this[ 0 ] ) {
			return;
		}

		var offsetParent, offset,
			parentOffset = { top: 0, left: 0 },
			elem = this[ 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" ) {

			// we assume that getBoundingClientRect is available 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
		// note: when an element has margin: auto the offsetLeft and marginLeft
		// are the same in Safari causing offset.left to incorrectly be 0
		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;

			while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) &&
				jQuery.css( offsetParent, "position" ) === "static" ) ) {
				offsetParent = offsetParent.offsetParent;
			}
			return offsetParent || documentElement;
		} );
	}
} );

// Create scrollLeft and scrollTop methods
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
	var top = /Y/.test( prop );

	jQuery.fn[ method ] = function( val ) {
		return access( this, function( elem, method, val ) {
			var win = getWindow( elem );

			if ( val === undefined ) {
				return win ? ( prop in win ) ? win[ prop ] :
					win.document.documentElement[ method ] :
					elem[ method ];
			}

			if ( win ) {
				win.scrollTo(
					!top ? val : jQuery( win ).scrollLeft(),
					top ? val : jQuery( win ).scrollTop()
				);

			} else {
				elem[ method ] = val;
			}
		}, method, val, arguments.length, null );
	};
} );

// Support: Safari<7-8+, Chrome<37-44+
// Add the top/left cssHooks using jQuery.fn.position
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// getComputedStyle returns percent when specified for top/left/bottom/right
// rather than make the css module depend on the offset module, we 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
					// unfortunately, this causes bug #3838 in IE6/8 only,
					// but there is currently no good, small way to fix it.
					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 );
		};
	} );
} );


jQuery.fn.extend( {

	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 );
	}
} );

// 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 ( !noGlobal ) {
	window.jQuery = window.$ = jQuery;
}

return jQuery;
}));
jui/js/html5.js000064400000005252152177723720007357 0ustar00/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?: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,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);jui/js/fielduser.min.js000064400000004547152177723720011100 0ustar00function jSelectUser(t){var e=jQuery(t),i=e.data("user-value"),o=e.data("user-name"),n=e.data("user-field"),a=jQuery("#"+n+"_id"),s=jQuery("#"+n);if(a.length){a.val(i).trigger("change"),s.val(o||i).trigger("change");var d=a.attr("data-onchange");d&&new Function(d).call(a[0]),jModalClose()}}!(function(t){"use strict";t.fieldUser=function(e,i){this.options=t.extend({},t.fieldUser.defaults,i),this.$container=t(e),this.$modal=this.$container.find(this.options.modal),this.$modalBody=this.$modal.children(".modal-body"),this.$input=this.$container.find(this.options.input),this.$inputName=this.$container.find(this.options.inputName),this.$buttonSelect=this.$container.find(this.options.buttonSelect),this.$buttonSelect.on("click",this.modalOpen.bind(this)),this.$modal.on("hide",this.removeIframe.bind(this));var o,n=this.$input.attr("data-onchange");n&&(o=new Function(n),this.$input.on("change",o.bind(this.$input)))},t.fieldUser.prototype.modalOpen=function(){var e=t("<iframe>",{name:"field-user-modal",src:this.options.url.replace("{field-user-id}",this.$input.attr("id")),width:this.options.modalWidth,height:this.options.modalHeight});this.$modalBody.append(e),this.$modal.modal("show"),t("body").addClass("modal-open");var i=this;e.load((function(){t(this).contents().on("click",".button-select",(function(){i.setValue(t(this).data("user-value"),t(this).data("user-name")),i.modalClose(),t("body").removeClass("modal-open")}))}))},t.fieldUser.prototype.modalClose=function(){this.$modal.modal("hide"),this.$modalBody.empty(),t("body").removeClass("modal-open")},t.fieldUser.prototype.removeIframe=function(){this.$modalBody.empty(),t("body").removeClass("modal-open")},t.fieldUser.prototype.setValue=function(t,e){this.$input.val(t).trigger("change"),this.$inputName.val(e||t).trigger("change")},t.fieldUser.defaults={buttonSelect:".button-select",input:".field-user-input",inputName:".field-user-input-name",modal:".modal",url:"index.php?option=com_users&view=users&layout=modal&tmpl=component",modalWidth:"100%",modalHeight:"300px"},t.fn.fieldUser=function(e){return this.each((function(){var e=t(this),i=e.data("fieldUser");if(!i){var o=o||{},n=e.data();for(var a in n)n.hasOwnProperty(a)&&(o[a]=n[a]);i=new t.fieldUser(this,o),e.data("fieldUser",i)}}))},t((function(t){function e(e,i){t(i||document).find(".field-user-wrapper").fieldUser()}e(),t(document).on("subform-row-add",e)}))})(jQuery);

jui/js/cms-uncompressed.js000064400000017144152177723720011620 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

// Only define the Joomla namespace if not defined.
Joomla = window.Joomla || {};

!(function(document, Joomla) {
	"use strict";

	/**
	 * Sets the HTML of the container-collapse element
	 */
	Joomla.setcollapse = function(url, name, height) {
		if (!document.getElementById('collapse-' + name)) {
			document.getElementById('container-collapse').innerHTML = '<div class="collapse fade" id="collapse-' + name + '"><iframe class="iframe" src="' + url + '" height="' + height + '" width="100%"></iframe></div>';
		}
	};

	/**
	 * IE8 polyfill for indexOf()
	 */
	if (!Array.prototype.indexOf) {
		Array.prototype.indexOf = function(elt) {
			var len = this.length >>> 0;

			var from = Number(arguments[1]) || 0;
			from     = (from < 0) ? Math.ceil(from) : Math.floor(from);

			if (from < 0) {
				from += len;
			}

			for (; from < len; from++) {
				if (from in this && this[from] === elt) {
					return from;
				}
			}
			return -1;
		};
	}
	/**
	 * JField 'showon' feature.
	 */
	window.jQuery && (function($) {

		/**
		 * Method to check condition and change the target visibility
		 * @param {jQuery}  target
		 * @param {Boolean} animate
		 */
		function linkedoptions(target, animate) {
			var showfield = true,
				jsondata  = target.data('showon') || [],
				itemval, condition, fieldName, $fields;

			// Check if target conditions are satisfied
			for (var j = 0, lj = jsondata.length; j < lj; j++) {
				condition = jsondata[j] || {};
				fieldName = condition.field;
				$fields   = $('[name="' + fieldName + '"], [name="' + fieldName + '[]"]');

				condition['valid'] = 0;

				// Test in each of the elements in the field array if condition is valid
				$fields.each(function() {
					var $field = $(this);

					// If checkbox or radio box the value is read from properties
					if (['checkbox', 'radio'].indexOf($field.attr('type')) !== -1) {
						if (!$field.prop('checked')) {
							// unchecked fields will return a blank and so always match a != condition so we skip them
							return;
						}
						itemval = $field.val();
					}
					else {
						// select lists, textarea etc. Note that multiple-select list returns an Array here
						// se we can always tream 'itemval' as an array
						itemval = $field.val();
						// a multi-select <select> $field  will return null when no elements are selected so we need to define itemval accordingly
						if (itemval == null && $field.prop("tagName").toLowerCase() == "select") {
							itemval = [];
						}
					}

					// Convert to array to allow multiple values in the field (e.g. type=list multiple)
					// and normalize as string
					if (!(typeof itemval === 'object')) {
						itemval = JSON.parse('["' + itemval + '"]');
					}

					// for (var i in itemval) loops over non-enumerable properties and prototypes which means that != will ALWAYS match
					// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
					// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames
					// use native javascript Array forEach - see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
					// We can't use forEach because its not supported in MSIE 8 - once that is dropped this code could use forEach instead and not have to use propertyIsEnumerable
					//
					// Test if any of the values of the field exists in showon conditions
					for (var i in itemval) {
						// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
						// Needed otherwise we pick up unenumerable properties like length etc. and !: will always match one of these  !!
						if (!itemval.propertyIsEnumerable(i)) {
							continue;
						}
						// ":" Equal to one or more of the values condition
						if (jsondata[j]['sign'] == '=' && jsondata[j]['values'].indexOf(itemval[i]) !== -1) {
							jsondata[j]['valid'] = 1;
						}
						// "!:" Not equal to one or more of the values condition
						if (jsondata[j]['sign'] == '!=' && jsondata[j]['values'].indexOf(itemval[i]) === -1) {
							jsondata[j]['valid'] = 1;
						}

					}

				});

				// Verify conditions
				// First condition (no operator): current condition must be valid
				if (condition['op'] === '') {
					if (condition['valid'] === 0) {
						showfield = false;
					}
				}
				// Other conditions (if exists)
				else {
					// AND operator: both the previous and current conditions must be valid
					if (condition['op'] === 'AND' && condition['valid'] + jsondata[j - 1]['valid'] < 2) {
						showfield = false;
						condition['valid'] = 0;
					}
					// OR operator: one of the previous and current conditions must be valid
					if (condition['op'] === 'OR' && condition['valid'] + jsondata[j - 1]['valid'] > 0) {
						showfield = true;
						condition['valid'] = 1;
					}
				}
			}

			// If conditions are satisfied show the target field(s), else hide.
			// Note that animations don't work on list options other than in Chrome.
			if (target.is('option')) {
				target.toggle(showfield);
				target.attr('disabled', showfield ? false : true);
				// If chosen active for the target select list then update it
				var parent = target.parent();
				if ($('#' + parent.attr('id') + '_chzn').length) {
					parent.trigger("liszt:updated");
					parent.trigger("chosen:updated");
				}
			}

			animate = animate
				&& !target.hasClass('no-animation')
				&& !target.hasClass('no-animate')
				&& !target.find('.no-animation, .no-animate').length;

			if (animate) {
				(showfield) ? target.slideDown() : target.slideUp();

				return;
			}

			target.toggle(showfield);
		}

		/**
		 * Method for setup the 'showon' feature, for the fields in given container
		 * @param {HTMLElement} container
		 */
		function setUpShowon(container) {
			container = container || document;

			var $showonFields = $(container).find('[data-showon]');

			// Setup each 'showon' field
			for (var is = 0, ls = $showonFields.length; is < ls; is++) {
				// Use anonymous function to capture arguments
				(function() {
					var $target = $($showonFields[is]), jsondata = $target.data('showon') || [],
						field, $fields                           = $();

					// Collect an all referenced elements
					for (var ij = 0, lj = jsondata.length; ij < lj; ij++) {
						field   = jsondata[ij]['field'];
						$fields = $fields.add($('[name="' + field + '"], [name="' + field + '[]"]'));
					}

					// Check current condition for element
					linkedoptions($target);

					// Attach events to referenced element, to check condition on change and keyup
					$fields.on('change keyup', function() {
						linkedoptions($target, true);
					});
				})();
			}
		}

		/**
		 * Initialize 'showon' feature
		 */
		$(document).ready(function() {
			setUpShowon();

			// Setup showon feature in the subform field
			$(document).on('subform-row-add', function(event, row) {
				var $row      = $(row),
					$elements = $row.find('[data-showon]'),
					baseName  = $row.data('baseName'),
					group     = $row.data('group'),
					search    = new RegExp('\\[' + baseName + '\\]\\[' + baseName + 'X\\]', 'g'),
					replace   = '[' + baseName + '][' + group + ']',
					$elm, showon;

				// Fix showon field names in a current group
				for (var i = 0, l = $elements.length; i < l; i++) {
					$elm   = $($elements[i]);
					showon = $elm.attr('data-showon').replace(search, replace);

					$elm.attr('data-showon', showon);
				}

				setUpShowon(row);
			});
		});

	})(jQuery);

})(document, Joomla);
jui/js/chosen.jquery.min.js000064400000102332152177723720011702 0ustar00(function(){var $,AbstractChosen,Chosen,SelectParser,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};SelectParser=function(){function SelectParser(){this.options_index=0;this.parsed=[]}SelectParser.prototype.add_node=function(child){if(child.nodeName.toUpperCase()==="OPTGROUP"){return this.add_group(child)}else{return this.add_option(child)}};SelectParser.prototype.add_group=function(group){var group_position,option,_i,_len,_ref,_results;group_position=this.parsed.length;this.parsed.push({array_index:group_position,group:true,label:this.escapeExpression(group.label),title:group.title?group.title:void 0,children:0,disabled:group.disabled,classes:group.className});_ref=group.childNodes;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];_results.push(this.add_option(option,group_position,group.disabled))}return _results};SelectParser.prototype.add_option=function(option,group_position,group_disabled){if(option.nodeName.toUpperCase()==="OPTION"){if(option.text!==""){if(group_position!=null){this.parsed[group_position].children+=1}this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,title:option.title?option.title:void 0,selected:option.selected,disabled:group_disabled===true?group_disabled:option.disabled,group_array_index:group_position,group_label:group_position!=null?this.parsed[group_position].label:null,classes:option.className,style:option.style.cssText})}else{this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:true})}return this.options_index+=1}};SelectParser.prototype.escapeExpression=function(text){var map,unsafe_chars;if(text==null||text===false){return""}if(!/[\&\<\>\"\'\`]/.test(text)){return text}map={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"};unsafe_chars=/&(?!\w+;)|[\<\>\"\'\`]/g;return text.replace(unsafe_chars,function(chr){return map[chr]||"&amp;"})};return SelectParser}();SelectParser.select_to_array=function(select){var child,parser,_i,_len,_ref;parser=new SelectParser;_ref=select.childNodes;for(_i=0,_len=_ref.length;_i<_len;_i++){child=_ref[_i];parser.add_node(child)}return parser.parsed};AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field;this.options=options!=null?options:{};if(!AbstractChosen.browser_is_supported()){return}this.is_multiple=this.form_field.multiple;this.set_default_text();this.set_default_values();this.setup();this.set_up_html();this.register_observers();this.on_ready()}AbstractChosen.prototype.set_default_values=function(){var _this=this;this.click_test_action=function(evt){return _this.test_active_click(evt)};this.activate_action=function(evt){return _this.activate_field(evt)};this.active_field=false;this.mouse_on_container=false;this.results_showing=false;this.result_highlighted=null;this.allow_custom_value=false;this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:false;this.disable_search_threshold=this.options.disable_search_threshold||0;this.disable_search=this.options.disable_search||false;this.enable_split_word_search=this.options.enable_split_word_search!=null?this.options.enable_split_word_search:true;this.group_search=this.options.group_search!=null?this.options.group_search:true;this.search_contains=this.options.search_contains||false;this.single_backstroke_delete=this.options.single_backstroke_delete!=null?this.options.single_backstroke_delete:true;this.max_selected_options=this.options.max_selected_options||Infinity;this.inherit_select_classes=this.options.inherit_select_classes||false;this.display_selected_options=this.options.display_selected_options!=null?this.options.display_selected_options:true;this.display_disabled_options=this.options.display_disabled_options!=null?this.options.display_disabled_options:true;this.include_group_label_in_selected=this.options.include_group_label_in_selected||false;this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY;return this.case_sensitive_search=this.options.case_sensitive_search||false};AbstractChosen.prototype.set_default_text=function(){if(this.form_field.getAttribute("data-placeholder")){this.default_text=this.form_field.getAttribute("data-placeholder")}else if(this.is_multiple){this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text}else{this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text}this.custom_group_text=this.form_field.getAttribute("data-custom_group_text")||this.options.custom_group_text||"Custom Value";return this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text};AbstractChosen.prototype.choice_label=function(item){if(this.include_group_label_in_selected&&item.group_label!=null){return"<b class='group-name'>"+item.group_label+"</b>"+item.html}else{return item.html}};AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=true};AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=false};AbstractChosen.prototype.input_focus=function(evt){var _this=this;if(this.is_multiple){if(!this.active_field){return setTimeout(function(){return _this.container_mousedown()},50)}}else{if(!this.active_field){return this.activate_field()}}};AbstractChosen.prototype.input_blur=function(evt){var _this=this;if(!this.mouse_on_container){this.active_field=false;return setTimeout(function(){return _this.blur_test()},100)}};AbstractChosen.prototype.results_option_build=function(options){var content,data,data_content,shown_results,_i,_len,_ref;content="";shown_results=0;_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){data=_ref[_i];data_content="";if(data.group){data_content=this.result_add_group(data)}else{data_content=this.result_add_option(data)}if(data_content!==""){shown_results++;content+=data_content}if(options!=null?options.first:void 0){if(data.selected&&this.is_multiple){this.choice_build(data)}else if(data.selected&&!this.is_multiple){this.single_set_selected_text(this.choice_label(data))}}if(shown_results>=this.max_shown_results){break}}return content};AbstractChosen.prototype.result_add_option=function(option){var classes,option_el;if(!option.search_match){return""}if(!this.include_option_in_results(option)){return""}classes=[];if(!option.disabled&&!(option.selected&&this.is_multiple)){classes.push("active-result")}if(option.disabled&&!(option.selected&&this.is_multiple)){classes.push("disabled-result")}if(option.selected){classes.push("result-selected")}if(option.group_array_index!=null){classes.push("group-option")}if(option.classes!==""){classes.push(option.classes)}option_el=document.createElement("li");option_el.className=classes.join(" ");option_el.style.cssText=option.style;option_el.setAttribute("data-option-array-index",option.array_index);option_el.innerHTML=option.search_text;if(option.title){option_el.title=option.title}return this.outerHTML(option_el)};AbstractChosen.prototype.result_add_group=function(group){var classes,group_el;if(!(group.search_match||group.group_match)){return""}if(!(group.active_options>0)){return""}classes=[];classes.push("group-result");if(group.classes){classes.push(group.classes)}group_el=document.createElement("li");group_el.className=classes.join(" ");group_el.innerHTML=group.search_text;if(group.title){group_el.title=group.title}return this.outerHTML(group_el)};AbstractChosen.prototype.results_update_field=function(){this.set_default_text();if(!this.is_multiple){this.results_reset_cleanup()}this.result_clear_highlight();this.results_build();if(this.results_showing){return this.winnow_results()}};AbstractChosen.prototype.reset_single_select_options=function(){var result,_i,_len,_ref,_results;_ref=this.results_data;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){result=_ref[_i];if(result.selected){_results.push(result.selected=false)}else{_results.push(void 0)}}return _results};AbstractChosen.prototype.results_toggle=function(){if(this.results_showing){return this.results_hide()}else{return this.results_show()}};AbstractChosen.prototype.results_search=function(evt){if(this.results_showing){return this.winnow_results()}else{return this.results_show()}};AbstractChosen.prototype.winnow_results=function(){var escapedSearchText,option,regex,results,results_group,searchText,startpos,text,zregex,_i,_len,_ref;this.no_results_clear();results=0;searchText=this.get_search_text();escapedSearchText=searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");zregex=new RegExp(escapedSearchText,"i");regex=this.get_search_regex(escapedSearchText);_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];option.search_match=false;results_group=null;if(this.include_option_in_results(option)){if(option.group){option.group_match=false;option.active_options=0}if(option.group_array_index!=null&&this.results_data[option.group_array_index]){results_group=this.results_data[option.group_array_index];if(results_group.active_options===0&&results_group.search_match){results+=1}results_group.active_options+=1}option.search_text=option.group?option.label:option.html;if(!(option.group&&!this.group_search)){option.search_match=this.search_string_match(option.search_text,regex);if(option.search_match&&!option.group){results+=1}if(option.search_match){if(searchText.length){startpos=option.search_text.search(zregex);text=option.search_text.substr(0,startpos+searchText.length)+"</em>"+option.search_text.substr(startpos+searchText.length);option.search_text=text.substr(0,startpos)+"<em>"+text.substr(startpos)}if(results_group!=null){results_group.group_match=true}}else if(option.group_array_index!=null&&this.results_data[option.group_array_index].search_match){option.search_match=true}}}}this.result_clear_highlight();if(results<1&&searchText.length){this.update_results_content("");return this.no_results(searchText)}else{this.update_results_content(this.results_option_build());return this.winnow_results_set_highlight()}};AbstractChosen.prototype.get_search_regex=function(escaped_search_string){var regex_anchor,regex_flag;regex_anchor=this.search_contains?"":"^";regex_flag=this.case_sensitive_search?"":"i";return new RegExp(regex_anchor+escaped_search_string,regex_flag)};AbstractChosen.prototype.search_string_match=function(search_string,regex){var part,parts,_i,_len;if(regex.test(search_string)){return true}else if(this.enable_split_word_search&&(search_string.indexOf(" ")>=0||search_string.indexOf("[")===0)){parts=search_string.replace(/\[|\]/g,"").split(" ");if(parts.length){for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(regex.test(part)){return true}}}}};AbstractChosen.prototype.choices_count=function(){var option,_i,_len,_ref;if(this.selected_option_count!=null){return this.selected_option_count}this.selected_option_count=0;_ref=this.form_field.options;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(option.selected){this.selected_option_count+=1}}return this.selected_option_count};AbstractChosen.prototype.choices_click=function(evt){evt.preventDefault();if(!(this.results_showing||this.is_disabled)){return this.results_show()}};AbstractChosen.prototype.keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode;this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0){return this.keydown_backstroke()}else if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search()}break;case 13:evt.preventDefault();if(this.results_showing){return this.result_select(evt)}break;case 27:if(this.results_showing){this.results_hide()}return true;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}};AbstractChosen.prototype.clipboard_event_checker=function(evt){var _this=this;return setTimeout(function(){return _this.results_search()},50)};AbstractChosen.prototype.container_width=function(){if(this.options.width!=null){return this.options.width}else{return this.form_field_jq.css("width")||""+this.form_field.offsetWidth+"px"}};AbstractChosen.prototype.include_option_in_results=function(option){if(this.is_multiple&&(!this.display_selected_options&&option.selected)){return false}if(!this.display_disabled_options&&option.disabled){return false}if(option.empty){return false}return true};AbstractChosen.prototype.search_results_touchstart=function(evt){this.touch_started=true;return this.search_results_mouseover(evt)};AbstractChosen.prototype.search_results_touchmove=function(evt){this.touch_started=false;return this.search_results_mouseout(evt)};AbstractChosen.prototype.search_results_touchend=function(evt){if(this.touch_started){return this.search_results_mouseup(evt)}};AbstractChosen.prototype.outerHTML=function(element){var tmp;if(element.outerHTML){return element.outerHTML}tmp=document.createElement("div");tmp.appendChild(element);return tmp.innerHTML};AbstractChosen.browser_is_supported=function(){if("Microsoft Internet Explorer"===window.navigator.appName){return document.documentMode>=8}if(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent)){return false}return true};AbstractChosen.default_multiple_text="Select Some Options";AbstractChosen.default_single_text="Select an Option";AbstractChosen.default_no_result_text="No results match";return AbstractChosen}();$=jQuery;$.fn.extend({chosen:function(options){if(!AbstractChosen.browser_is_supported()){return this}return this.each(function(input_field){var $this,chosen;$this=$(this);chosen=$this.data("chosen");if(options==="destroy"){if(chosen instanceof Chosen){chosen.destroy()}return}if(!chosen){$this.data("chosen",new Chosen(this,options))}})}});Chosen=function(_super){__extends(Chosen,_super);function Chosen(){_ref=Chosen.__super__.constructor.apply(this,arguments);return _ref}Chosen.prototype.setup=function(){this.form_field_jq=$(this.form_field);this.current_selectedIndex=this.form_field.selectedIndex;this.allow_custom_value=this.form_field_jq.hasClass("chzn-custom-value")||this.options.allow_custom_value;return this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")};Chosen.prototype.set_up_html=function(){var container_classes,container_props;container_classes=["chzn-container"];container_classes.push("chzn-container-"+(this.is_multiple?"multi":"single"));if(this.inherit_select_classes&&this.form_field.className){container_classes.push(this.form_field.className)}if(this.is_rtl){container_classes.push("chzn-rtl")}container_props={"class":container_classes.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title};if(this.form_field.id.length){container_props.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chzn"}this.container=$("<div />",container_props);if(this.is_multiple){this.container.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop"><ul class="chzn-results"></ul></div>')}else{this.container.html('<a class="chzn-single chzn-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>')}this.form_field_jq.hide().after(this.container);this.dropdown=this.container.find("div.chzn-drop").first();this.search_field=this.container.find("input").first();this.search_results=this.container.find("ul.chzn-results").first();this.search_field_scale();this.search_no_results=this.container.find("li.no-results").first();if(this.is_multiple){this.search_choices=this.container.find("ul.chzn-choices").first();this.search_container=this.container.find("li.search-field").first()}else{this.search_container=this.container.find("div.chzn-search").first();this.selected_item=this.container.find(".chzn-single").first()}this.results_build();this.set_tab_index();return this.set_label_behavior()};Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("liszt:ready",{chosen:this})};Chosen.prototype.register_observers=function(){var _this=this;this.container.bind("touchstart.chosen",function(evt){_this.container_mousedown(evt);return evt.preventDefault()});this.container.bind("touchend.chosen",function(evt){_this.container_mouseup(evt);return evt.preventDefault()});this.container.bind("mousedown.chosen",function(evt){_this.container_mousedown(evt)});this.container.bind("mouseup.chosen",function(evt){_this.container_mouseup(evt)});this.container.bind("mouseenter.chosen",function(evt){_this.mouse_enter(evt)});this.container.bind("mouseleave.chosen",function(evt){_this.mouse_leave(evt)});this.search_results.bind("mouseup.chosen",function(evt){_this.search_results_mouseup(evt)});this.search_results.bind("mouseover.chosen",function(evt){_this.search_results_mouseover(evt)});this.search_results.bind("mouseout.chosen",function(evt){_this.search_results_mouseout(evt)});this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(evt){_this.search_results_mousewheel(evt)});this.search_results.bind("touchstart.chosen",function(evt){_this.search_results_touchstart(evt)});this.search_results.bind("touchmove.chosen",function(evt){_this.search_results_touchmove(evt)});this.search_results.bind("touchend.chosen",function(evt){_this.search_results_touchend(evt)});this.form_field_jq.bind("liszt:updated.chosen",function(evt){_this.results_update_field(evt)});this.form_field_jq.bind("liszt:activate.chosen",function(evt){_this.activate_field(evt)});this.form_field_jq.bind("liszt:open.chosen",function(evt){_this.container_mousedown(evt)});this.form_field_jq.bind("liszt:close.chosen",function(evt){_this.input_blur(evt)});this.search_field.bind("blur.chosen",function(evt){_this.input_blur(evt)});this.search_field.bind("keyup.chosen",function(evt){_this.keyup_checker(evt)});this.search_field.bind("keydown.chosen",function(evt){_this.keydown_checker(evt)});this.search_field.bind("focus.chosen",function(evt){_this.input_focus(evt)});this.search_field.bind("cut.chosen",function(evt){_this.clipboard_event_checker(evt)});this.search_field.bind("paste.chosen",function(evt){_this.clipboard_event_checker(evt)});if(this.is_multiple){return this.search_choices.bind("click.chosen",function(evt){_this.choices_click(evt)})}else{return this.container.bind("click.chosen",function(evt){evt.preventDefault()})}};Chosen.prototype.destroy=function(){$(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action);if(this.search_field[0].tabIndex){this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex}this.container.remove();this.form_field_jq.removeData("chosen");return this.form_field_jq.show()};Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled){this.container.addClass("chzn-disabled");this.search_field[0].disabled=true;if(!this.is_multiple){this.selected_item.unbind("focus.chosen",this.activate_action)}return this.close_field()}else{this.container.removeClass("chzn-disabled");this.search_field[0].disabled=false;if(!this.is_multiple){return this.selected_item.bind("focus.chosen",this.activate_action)}}};Chosen.prototype.container_mousedown=function(evt){if(!this.is_disabled){if(evt&&evt.type==="mousedown"&&!this.results_showing){evt.preventDefault()}if(!(evt!=null&&$(evt.target).hasClass("search-choice-close"))){if(!this.active_field){if(this.is_multiple){this.search_field.val("")}$(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action);this.results_show()}else if(!this.is_multiple&&evt&&($(evt.target)[0]===this.selected_item[0]||$(evt.target).parents("a.chzn-single").length)){evt.preventDefault();this.results_toggle()}return this.activate_field()}}};Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled){return this.results_reset(evt)}};Chosen.prototype.search_results_mousewheel=function(evt){var delta;if(evt.originalEvent){delta=evt.originalEvent.deltaY||-evt.originalEvent.wheelDelta||evt.originalEvent.detail}if(delta!=null){evt.preventDefault();if(evt.type==="DOMMouseScroll"){delta=delta*40}return this.search_results.scrollTop(delta+this.search_results.scrollTop())}};Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chzn-container-active")){return this.close_field()}};Chosen.prototype.close_field=function(){$(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action);this.active_field=false;this.results_hide();this.container.removeClass("chzn-container-active");this.clear_backstroke();this.show_search_field_default();return this.search_field_scale()};Chosen.prototype.activate_field=function(){this.container.addClass("chzn-container-active");this.active_field=true;this.search_field.val(this.search_field.val());return this.search_field.focus()};Chosen.prototype.test_active_click=function(evt){var active_container;active_container=$(evt.target).closest(".chzn-container");if(active_container.length&&this.container[0]===active_container[0]){return this.active_field=true}else{return this.close_field()}};Chosen.prototype.results_build=function(){this.parsing=true;this.selected_option_count=null;this.results_data=SelectParser.select_to_array(this.form_field);if(this.is_multiple){this.search_choices.find("li.search-choice").remove()}else if(!this.is_multiple){this.single_set_selected_text();if(this.disable_search||this.form_field.options.length<=this.disable_search_threshold){this.search_field[0].readOnly=true;this.container.addClass("chzn-container-single-nosearch")}else{this.search_field[0].readOnly=false;this.container.removeClass("chzn-container-single-nosearch")}}this.update_results_content(this.results_option_build({first:true}));this.search_field_disabled();this.show_search_field_default();this.search_field_scale();return this.parsing=false};Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;if(el.length){this.result_clear_highlight();this.result_highlight=el;this.result_highlight.addClass("highlighted");maxHeight=parseInt(this.search_results.css("maxHeight"),10);visible_top=this.search_results.scrollTop();visible_bottom=maxHeight+visible_top;high_top=this.result_highlight.position().top+this.search_results.scrollTop();high_bottom=high_top+this.result_highlight.outerHeight();if(high_bottom>=visible_bottom){return this.search_results.scrollTop(high_bottom-maxHeight>0?high_bottom-maxHeight:0)}else if(high_top<visible_top){return this.search_results.scrollTop(high_top)}}};Chosen.prototype.result_clear_highlight=function(){if(this.result_highlight){this.result_highlight.removeClass("highlighted")}return this.result_highlight=null};Chosen.prototype.results_show=function(){if(this.is_multiple&&this.max_selected_options<=this.choices_count()){this.form_field_jq.trigger("liszt:maxselected",{chosen:this});return false}this.container.addClass("chzn-with-drop");this.results_showing=true;this.search_field.focus();this.search_field.val(this.search_field.val());this.winnow_results();return this.form_field_jq.trigger("liszt:showing_dropdown",{chosen:this})};Chosen.prototype.update_results_content=function(content){return this.search_results.html(content)};Chosen.prototype.results_hide=function(){if(this.results_showing){this.result_clear_highlight();this.container.removeClass("chzn-with-drop");this.form_field_jq.trigger("liszt:hiding_dropdown",{chosen:this})}return this.results_showing=false};Chosen.prototype.set_tab_index=function(el){var ti;if(this.form_field.tabIndex){ti=this.form_field.tabIndex;this.form_field.tabIndex=-1;return this.search_field[0].tabIndex=ti}};Chosen.prototype.set_label_behavior=function(){var _this=this;this.form_field_label=this.form_field_jq.parents("label");if(!this.form_field_label.length&&this.form_field.id.length){this.form_field_label=$("label[for='"+this.form_field.id+"']")}if(this.form_field_label.length>0){return this.form_field_label.bind("click.chosen",function(evt){if(_this.is_multiple){return _this.container_mousedown(evt)}else{return _this.activate_field()}})}};Chosen.prototype.show_search_field_default=function(){if(this.is_multiple&&this.choices_count()<1&&!this.active_field){this.search_field.val(this.default_text);return this.search_field.addClass("default")}else{this.search_field.val("");return this.search_field.removeClass("default")}};Chosen.prototype.search_results_mouseup=function(evt){var target;target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first();if(target.length){this.result_highlight=target;this.result_select(evt);return this.search_field.focus()}};Chosen.prototype.search_results_mouseover=function(evt){var target;target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first();if(target){return this.result_do_highlight(target)}};Chosen.prototype.search_results_mouseout=function(evt){if($(evt.target).hasClass("active-result"||$(evt.target).parents(".active-result").first())){return this.result_clear_highlight()}};Chosen.prototype.choice_build=function(item){var choice,close_link,_this=this;choice=$("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(item)+"</span>");if(item.disabled){choice.addClass("search-choice-disabled")}else{close_link=$("<a />",{"class":"search-choice-close","data-option-array-index":item.array_index});close_link.bind("click.chosen",function(evt){return _this.choice_destroy_link_click(evt)});choice.append(close_link)}return this.search_container.before(choice)};Chosen.prototype.choice_destroy_link_click=function(evt){evt.preventDefault();evt.stopPropagation();if(!this.is_disabled){return this.choice_destroy($(evt.target))}};Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link[0].getAttribute("data-option-array-index"))){this.show_search_field_default();if(this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1){this.results_hide()}link.parents("li").first().remove();return this.search_field_scale()}};Chosen.prototype.results_reset=function(){this.reset_single_select_options();this.form_field.options[0].selected=true;this.single_set_selected_text();this.show_search_field_default();this.results_reset_cleanup();this.form_field_jq.trigger("change");if(this.active_field){return this.results_hide()}};Chosen.prototype.results_reset_cleanup=function(){this.current_selectedIndex=this.form_field.selectedIndex;return this.selected_item.find("abbr").remove()};Chosen.prototype.result_select=function(evt){var group,high,high_id,item,option,position,value;if(this.result_highlight){high=this.result_highlight;this.result_clear_highlight();if(this.is_multiple&&this.max_selected_options<=this.choices_count()){this.form_field_jq.trigger("liszt:maxselected",{chosen:this});return false}if(this.is_multiple){high.removeClass("active-result")}else{this.reset_single_select_options()}high.addClass("result-selected");item=this.results_data[high[0].getAttribute("data-option-array-index")];item.selected=true;this.form_field.options[item.options_index].selected=true;this.selected_option_count=null;if(this.is_multiple){this.choice_build(item)}else{this.single_set_selected_text(this.choice_label(item))}if(!((evt.metaKey||evt.ctrlKey)&&this.is_multiple)){this.results_hide()}this.show_search_field_default();if(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex){this.form_field_jq.trigger("change",{selected:this.form_field.options[item.options_index].value})}this.current_selectedIndex=this.form_field.selectedIndex;evt.preventDefault();return this.search_field_scale()}else if(!this.is_multiple&&this.allow_custom_value){value=this.search_field.val();group=this.add_unique_custom_group();option=$('<option value="'+value+'">'+value+"</option>");group.append(option);this.form_field_jq.append(group);this.form_field.options[this.form_field.options.length-1].selected=true;if(!evt.metaKey){this.results_hide()}return this.results_build()}};Chosen.prototype.find_custom_group=function(){var found,group,_i,_len,_ref;_ref=$("optgroup",this.form_field);for(_i=0,_len=_ref.length;_i<_len;_i++){group=_ref[_i];if(group.getAttribute("label")===this.custom_group_text){found=group}}return found};Chosen.prototype.add_unique_custom_group=function(){var group;group=this.find_custom_group();if(!group){group=$('<optgroup label="'+this.custom_group_text+'"></optgroup>')}return $(group)};Chosen.prototype.single_set_selected_text=function(text){if(text==null){text=this.default_text}if(text===this.default_text){this.selected_item.addClass("chzn-default")}else{this.single_deselect_control_build();this.selected_item.removeClass("chzn-default")}return this.selected_item.find("span").html(text)};Chosen.prototype.result_deselect=function(pos){var result_data;result_data=this.results_data[pos];if(!this.form_field.options[result_data.options_index].disabled){result_data.selected=false;this.form_field.options[result_data.options_index].selected=false;this.selected_option_count=null;this.result_clear_highlight();if(this.results_showing){this.winnow_results()}this.form_field_jq.trigger("change",{deselected:this.form_field.options[result_data.options_index].value});this.search_field_scale();return true}else{return false}};Chosen.prototype.single_deselect_control_build=function(){if(!this.allow_single_deselect){return}if(!this.selected_item.find("abbr").length){this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')}return this.selected_item.addClass("chzn-single-with-deselect")};Chosen.prototype.get_search_text=function(){return $("<div/>").text($.trim(this.search_field.val())).html()};Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;selected_results=!this.is_multiple?this.search_results.find(".result-selected.active-result"):[];do_high=selected_results.length?selected_results.first():this.search_results.find(".active-result").first();if(do_high!=null){return this.result_do_highlight(do_high)}};Chosen.prototype.no_results=function(terms){var no_results_html;no_results_html=$('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>');no_results_html.find("span").first().html(terms);this.search_results.append(no_results_html);return this.form_field_jq.trigger("liszt:no_results",{chosen:this})};Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()};Chosen.prototype.keydown_arrow=function(){var next_sib;if(this.results_showing&&this.result_highlight){next_sib=this.result_highlight.nextAll("li.active-result").first();if(next_sib){return this.result_do_highlight(next_sib)}}else{return this.results_show()}};Chosen.prototype.keyup_arrow=function(){var prev_sibs;if(!this.results_showing&&!this.is_multiple){return this.results_show()}else if(this.result_highlight){prev_sibs=this.result_highlight.prevAll("li.active-result");if(prev_sibs.length){return this.result_do_highlight(prev_sibs.first())}else{if(this.choices_count()>0){this.results_hide()}return this.result_clear_highlight()}}};Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;
if(this.pending_backstroke){this.choice_destroy(this.pending_backstroke.find("a").first());return this.clear_backstroke()}else{next_available_destroy=this.search_container.siblings("li.search-choice").last();if(next_available_destroy.length&&!next_available_destroy.hasClass("search-choice-disabled")){this.pending_backstroke=next_available_destroy;if(this.single_backstroke_delete){return this.keydown_backstroke()}else{return this.pending_backstroke.addClass("search-choice-focus")}}}};Chosen.prototype.clear_backstroke=function(){if(this.pending_backstroke){this.pending_backstroke.removeClass("search-choice-focus")}return this.pending_backstroke=null};Chosen.prototype.keydown_checker=function(evt){var stroke,_ref1;stroke=(_ref1=evt.which)!=null?_ref1:evt.keyCode;this.search_field_scale();if(stroke!==8&&this.pending_backstroke){this.clear_backstroke()}switch(stroke){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:if(this.results_showing&&!this.is_multiple){this.result_select(evt)}this.mouse_on_container=false;break;case 13:if(this.results_showing){evt.preventDefault()}break;case 32:if(this.disable_search){evt.preventDefault()}break;case 38:evt.preventDefault();this.keyup_arrow();break;case 40:evt.preventDefault();this.keydown_arrow();break}};Chosen.prototype.search_field_scale=function(){var div,f_width,h,style,style_block,styles,w,_i,_len;if(this.is_multiple){h=0;w=0;style_block="position:absolute; left: -1000px; top: -1000px; display:none;";styles=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(_i=0,_len=styles.length;_i<_len;_i++){style=styles[_i];style_block+=style+":"+this.search_field.css(style)+";"}div=$("<div />",{style:style_block});div.text(this.search_field.val());$("body").append(div);w=div.width()+25;div.remove();f_width=this.container.outerWidth();if(w>f_width-10){w=f_width-10}return this.search_field.css({width:w+"px"})}};return Chosen}(AbstractChosen)}).call(this);jui/js/jquery-noconflict.js000064400000000025152177723720011772 0ustar00jQuery.noConflict();
jui/js/bootstrap.js000064400000175270152177723720010353 0ustar00/* ===================================================
 * bootstrap-transition.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#transitions
 * ===================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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.
 * ========================================================== */

 /**
  * Custom version for Joomla!
  */

!function ($) {

  "use strict"; // jshint ;_;


  /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
   * ======================================================= */

  $(function () {

    $.support.transition = (function () {

      var transitionEnd = (function () {

        var el = document.createElement('bootstrap')
          , transEndEventNames = {
               'WebkitTransition' : 'webkitTransitionEnd'
            ,  'MozTransition'    : 'transitionend'
            ,  'OTransition'      : 'oTransitionEnd otransitionend'
            ,  'transition'       : 'transitionend'
            }
          , name

        for (name in transEndEventNames){
          if (el.style[name] !== undefined) {
            return transEndEventNames[name]
          }
        }

      }())

      return transitionEnd && {
        end: transitionEnd
      }

    })()

  })

}(window.jQuery);/* ==========================================================
 * bootstrap-alert.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#alerts
 * ==========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* ALERT CLASS DEFINITION
  * ====================== */

  var dismiss = '[data-dismiss="alert"]'
    , Alert = function (el) {
        $(el).on('click', dismiss, this.close)
      }

  Alert.prototype.close = function (e) {
    var $this = $(this)
      , selector = $this.attr('data-target')
      , $parent

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
      selector = selector === '#' ? '' : selector
    }

    $parent = $(document).find(selector)

    e && e.preventDefault()

    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())

    $parent.trigger(e = $.Event('close'))

    if (e.isDefaultPrevented()) return

    $parent.removeClass('in')

    function removeElement() {
      $parent
        .trigger('closed')
        .remove()
    }

    $.support.transition && $parent.hasClass('fade') ?
      $parent.on($.support.transition.end, removeElement) :
      removeElement()
  }


 /* ALERT PLUGIN DEFINITION
  * ======================= */

  var old = $.fn.alert

  $.fn.alert = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('alert')
      if (!data) $this.data('alert', (data = new Alert(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  $.fn.alert.Constructor = Alert


 /* ALERT NO CONFLICT
  * ================= */

  $.fn.alert.noConflict = function () {
    $.fn.alert = old
    return this
  }


 /* ALERT DATA-API
  * ============== */

  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)

}(window.jQuery);/* ============================================================
 * bootstrap-button.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#buttons
 * ============================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* BUTTON PUBLIC CLASS DEFINITION
  * ============================== */

  var Button = function (element, options) {
    this.$element = $(element)
    this.options = $.extend({}, $.fn.button.defaults, options)
  }

  Button.prototype.setState = function (state) {
    var d = 'disabled'
      , $el = this.$element
      , data = $el.data()
      , val = $el.is('input') ? 'val' : 'html'

    state = state + 'Text'
    data.resetText || $el.data('resetText', $el[val]())

    $el[val](data[state] || this.options[state])

    // push to event loop to allow forms to submit
    setTimeout(function () {
      state == 'loadingText' ?
        $el.addClass(d).attr(d, d) :
        $el.removeClass(d).removeAttr(d)
    }, 0)
  }

  Button.prototype.toggle = function () {
    var $parent = this.$element.closest('[data-toggle="buttons-radio"]')

    $parent && $parent
      .find('.active')
      .removeClass('active')

    this.$element.toggleClass('active')
  }


 /* BUTTON PLUGIN DEFINITION
  * ======================== */

  var old = $.fn.button

  $.fn.button = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('button')
        , options = typeof option == 'object' && option
      if (!data) $this.data('button', (data = new Button(this, options)))
      if (option == 'toggle') data.toggle()
      else if (option) data.setState(option)
    })
  }

  $.fn.button.defaults = {
    loadingText: 'loading...'
  }

  $.fn.button.Constructor = Button


 /* BUTTON NO CONFLICT
  * ================== */

  $.fn.button.noConflict = function () {
    $.fn.button = old
    return this
  }


 /* BUTTON DATA-API
  * =============== */

  $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
    var $btn = $(e.target)
    if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
    $btn.button('toggle')
  })

}(window.jQuery);/* ==========================================================
 * bootstrap-carousel.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#carousel
 * ==========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* CAROUSEL CLASS DEFINITION
  * ========================= */

  var Carousel = function (element, options) {
    this.$element = $(element)
    this.$indicators = this.$element.find('.carousel-indicators')
    this.options = options
    this.options.pause == 'hover' && this.$element
      .on('mouseenter', $.proxy(this.pause, this))
      .on('mouseleave', $.proxy(this.cycle, this))
  }

  Carousel.prototype = {

    cycle: function (e) {
      if (!e) this.paused = false
      if (this.interval) clearInterval(this.interval);
      this.options.interval
        && !this.paused
        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
      return this
    }

  , getActiveIndex: function () {
      this.$active = this.$element.find('.item.active')
      this.$items = this.$active.parent().children()
      return this.$items.index(this.$active)
    }

  , to: function (pos) {
      var activeIndex = this.getActiveIndex()
        , that = this

      if (pos > (this.$items.length - 1) || pos < 0) return

      if (this.sliding) {
        return this.$element.one('slid', function () {
          that.to(pos)
        })
      }

      if (activeIndex == pos) {
        return this.pause().cycle()
      }

      return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
    }

  , pause: function (e) {
      if (!e) this.paused = true
      if (this.$element.find('.next, .prev').length && $.support.transition.end) {
        this.$element.trigger($.support.transition.end)
        this.cycle(true)
      }
      clearInterval(this.interval)
      this.interval = null
      return this
    }

  , next: function () {
      if (this.sliding) return
      return this.slide('next')
    }

  , prev: function () {
      if (this.sliding) return
      return this.slide('prev')
    }

  , slide: function (type, next) {
      var $active = this.$element.find('.item.active')
        , $next = next || $active[type]()
        , isCycling = this.interval
        , direction = type == 'next' ? 'left' : 'right'
        , fallback  = type == 'next' ? 'first' : 'last'
        , that = this
        , e

      this.sliding = true

      isCycling && this.pause()

      $next = $next.length ? $next : this.$element.find('.item')[fallback]()

      e = $.Event('slide', {
        relatedTarget: $next[0]
      , direction: direction
      })

      if ($next.hasClass('active')) return

      if (this.$indicators.length) {
        this.$indicators.find('.active').removeClass('active')
        this.$element.one('slid', function () {
          var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
          $nextIndicator && $nextIndicator.addClass('active')
        })
      }

      if ($.support.transition && this.$element.hasClass('slide')) {
        this.$element.trigger(e)
        if (e.isDefaultPrevented()) return
        $next.addClass(type)
        $next[0].offsetWidth // force reflow
        $active.addClass(direction)
        $next.addClass(direction)
        this.$element.one($.support.transition.end, function () {
          $next.removeClass([type, direction].join(' ')).addClass('active')
          $active.removeClass(['active', direction].join(' '))
          that.sliding = false
          setTimeout(function () { that.$element.trigger('slid') }, 0)
        })
      } else {
        this.$element.trigger(e)
        if (e.isDefaultPrevented()) return
        $active.removeClass('active')
        $next.addClass('active')
        this.sliding = false
        this.$element.trigger('slid')
      }

      isCycling && this.cycle()

      return this
    }

  }


 /* CAROUSEL PLUGIN DEFINITION
  * ========================== */

  var old = $.fn.carousel

  $.fn.carousel = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('carousel')
        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
        , action = typeof option == 'string' ? option : options.slide
      if (!data) $this.data('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()
    })
  }

  $.fn.carousel.defaults = {
    interval: 5000
  , pause: 'hover'
  }

  $.fn.carousel.Constructor = Carousel


 /* CAROUSEL NO CONFLICT
  * ==================== */

  $.fn.carousel.noConflict = function () {
    $.fn.carousel = old
    return this
  }

 /* CAROUSEL DATA-API
  * ================= */

  $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
    var $this = $(this), href, $target, options
      , selector = $this.attr('data-target')
      , slideIndex

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && selector.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
      selector = selector === '#' ? '' : selector
    }

    $target = $(document).find(selector)
    options = $.extend({}, $target.data(), $this.data())

    $target.carousel(options)

    if (slideIndex = $this.attr('data-slide-to')) {
      $target.data('carousel').pause().to(slideIndex).cycle()
    }

    e.preventDefault()
  })

}(window.jQuery);/* =============================================================
 * bootstrap-collapse.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#collapse
 * =============================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* COLLAPSE PUBLIC CLASS DEFINITION
  * ================================ */

  var Collapse = function (element, options) {
    this.$element = $(element)
    this.options = $.extend({}, $.fn.collapse.defaults, options)

    if (this.options.parent) {
      this.$parent = $(this.options.parent)
    }

    this.options.toggle && this.toggle()
  }

  Collapse.prototype = {

    constructor: Collapse

  , dimension: function () {
      var hasWidth = this.$element.hasClass('width')
      return hasWidth ? 'width' : 'height'
    }

  , show: function () {
      var dimension
        , scroll
        , actives
        , hasData

      if (this.transitioning || this.$element.hasClass('in')) return

      dimension = this.dimension()
      scroll = $.camelCase(['scroll', dimension].join('-'))
      actives = this.$parent && this.$parent.find('> .accordion-group > .in')

      if (actives && actives.length) {
        hasData = actives.data('collapse')
        if (hasData && hasData.transitioning) return
        actives.collapse('hide')
        hasData || actives.data('collapse', null)
      }

      this.$element[dimension](0)
      this.transition('addClass', $.Event('show'), 'shown')
      $.support.transition && this.$element[dimension](this.$element[0][scroll])
    }

  , hide: function () {
      var dimension
      if (this.transitioning || !this.$element.hasClass('in')) return
      dimension = this.dimension()
      this.reset(this.$element[dimension]())
	  // JOOMLA JUI >>>
	  /* ORIGINAL:
      this.transition('removeClass', $.Event('hide'), 'hidden')
      */
      this.transition('removeClass', $.Event('hideme'), 'hidden')
      // < Joomla JUI

      this.$element[dimension](0)
    }

  , reset: function (size) {
      var dimension = this.dimension()

      this.$element
        .removeClass('collapse')
        [dimension](size || 'auto')
        [0].offsetWidth

      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')

      return this
    }

  , transition: function (method, startEvent, completeEvent) {
      var that = this
        , complete = function () {
            if (startEvent.type == 'show') that.reset()
            that.transitioning = 0
            that.$element.trigger(completeEvent)
          }

      this.$element.trigger(startEvent)

      if (startEvent.isDefaultPrevented()) return

      this.transitioning = 1

      this.$element[method]('in')

      $.support.transition && this.$element.hasClass('collapse') ?
        this.$element.one($.support.transition.end, complete) :
        complete()
    }

  , toggle: function () {
      this[this.$element.hasClass('in') ? 'hide' : 'show']()
    }

  }


 /* COLLAPSE PLUGIN DEFINITION
  * ========================== */

  var old = $.fn.collapse

  $.fn.collapse = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('collapse')
        , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.collapse.defaults = {
    toggle: true
  }

  $.fn.collapse.Constructor = Collapse


 /* COLLAPSE NO CONFLICT
  * ==================== */

  $.fn.collapse.noConflict = function () {
    $.fn.collapse = old
    return this
  }


 /* COLLAPSE DATA-API
  * ================= */

  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
    var $this = $(this), href, option, $target
      , selector = $this.attr('data-target')

    if (!selector) {
        e.preventDefault()
        selector = $this.attr('href')
        selector = selector && selector.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
        selector = selector === '#' ? '' : selector
    }

    $target = $(document).find(selector)

    option = $target.data('collapse') ? 'toggle' : $this.data()
    $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
    $target.collapse(option)
  })

}(window.jQuery);
/* ============================================================
 * bootstrap-dropdown.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#dropdowns
 * ============================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* DROPDOWN CLASS DEFINITION
  * ========================= */

  var toggle = '[data-toggle=dropdown]'
    , Dropdown = function (element) {
        var $el = $(element).on('click.dropdown.data-api', this.toggle)
        // JOOMLA JUI >>>
          .on('mouseover.dropdown.data-api', this.toggle)
        // < Joomla JUI
        $('html').on('click.dropdown.data-api', function () {
          // JOOMLA JUI >>>
          $el.parent().parent().removeClass('nav-hover')
          // < Joomla JUI
          $el.parent().removeClass('open')
        })
      }

  Dropdown.prototype = {

    constructor: Dropdown

  , toggle: function (e) {
      // JOOMLA JUI >>>
      /* ORIGINAL
      var $this = $(this)
        , $parent
        , isActive
      */
      var $this = $(this)
        , $parent
        , isActive
        , url
        , isHover
      // < Joomla JUI

      if ($this.is('.disabled, :disabled')) return

      $parent = getParent($this)

      isActive = $parent.hasClass('open')
      // JOOMLA JUI >>>
      isHover = $parent.parent().hasClass('nav-hover')
      if(!isHover && e.type == 'mouseover') return
      // < Joomla JUI

      url = $this.attr('href')
      if (e.type == 'click' && (url) && (url !== '#')) {
         window.location = url
         return
      }

      clearMenus()

      // JOOMLA JUI >>>
      if ((!isActive && e.type != 'mouseover') || (isHover && e.type == 'mouseover')) {
        if ('ontouchstart' in document.documentElement) {
          // if mobile we we use a backdrop because click events don't delegate
          $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
          $this.on('hover', function () {
            $('.dropdown-backdrop').remove()
          });
        }
        $parent.parent().toggleClass('nav-hover');
        $parent.toggleClass('open')
      }
      // < Joomla JUI

      $this.focus()

      return false
    }

  , keydown: function (e) {
      var $this
        , $items
        , $active
        , $parent
        , isActive
        , index

      if (!/(38|40|27)/.test(e.keyCode)) return

      $this = $(this)

      e.preventDefault()
      e.stopPropagation()

      if ($this.is('.disabled, :disabled')) return

      $parent = getParent($this)

      isActive = $parent.hasClass('open')

      if (!isActive || (isActive && e.keyCode == 27)) {
        if (e.which == 27) $parent.find(toggle).focus()
        return $this.click()
      }

      $items = $('[role=menu] li:not(.divider):visible a', $parent)

      if (!$items.length) return

      index = $items.index($items.filter(':focus'))

      if (e.keyCode == 38 && index > 0) index--                                        // up
      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
      if (!~index) index = 0

      $items
        .eq(index)
        .focus()
    }

  }

  function clearMenus() {
    // JOOMLA JUI >>>
    $(toggle).parent().parent().removeClass('nav-hover')
    // < Joomla JUI
    $('.dropdown-backdrop').remove()
    $(toggle).each(function () {
      getParent($(this)).removeClass('open')
    })
  }

  function getParent($this) {
    var selector = $this.attr('data-target')
      , $parent

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
    }

    selector = selector === '#' ? [] : selector;

    $parent = selector && $(document).find(selector)

    if (!$parent || !$parent.length) $parent = $this.parent()

    return $parent
  }


  /* DROPDOWN PLUGIN DEFINITION
   * ========================== */

  var old = $.fn.dropdown

  $.fn.dropdown = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('dropdown')
      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  $.fn.dropdown.Constructor = Dropdown


 /* DROPDOWN NO CONFLICT
  * ==================== */

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  /* APPLY TO STANDARD DROPDOWN ELEMENTS
   * =================================== */

  $(document)
    .on('click.dropdown.data-api', clearMenus)
    .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
    .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
    // JOOMLA JUI >>>
    .on('mouseover.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    // < Joomla JUI
}(window.jQuery);
/* =========================================================
 * bootstrap-modal.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#modals
 * =========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* MODAL CLASS DEFINITION
  * ====================== */

  var Modal = function (element, options) {
    this.options = options
    this.$element = $(element)
      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
    this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
  }

  Modal.prototype = {

      constructor: Modal

    , toggle: function () {
        return this[!this.isShown ? 'show' : 'hide']()
      }

    , show: function () {
        var that = this
          , e = $.Event('show')

        this.$element.trigger(e)

        if (this.isShown || e.isDefaultPrevented()) return

        this.isShown = true

        this.escape()

        this.backdrop(function () {
          var transition = $.support.transition && that.$element.hasClass('fade')

          if (!that.$element.parent().length) {
            that.$element.appendTo(document.body) //don't move modals dom position
          }

          that.$element.show()

          if (transition) {
            that.$element[0].offsetWidth // force reflow
          }

          that.$element
            .addClass('in')
            .attr('aria-hidden', false)

          that.enforceFocus()

          transition ?
            that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
            that.$element.focus().trigger('shown')

        })
      }

    , hide: function (e) {
        e && e.preventDefault()

        var that = this

        e = $.Event('hide')

        this.$element.trigger(e)

        if (!this.isShown || e.isDefaultPrevented()) return

        this.isShown = false

        this.escape()

        $(document).off('focusin.modal')

        this.$element
          .removeClass('in')
          .attr('aria-hidden', true)

        $.support.transition && this.$element.hasClass('fade') ?
          this.hideWithTransition() :
          this.hideModal()
      }

    , enforceFocus: function () {
        var that = this
        $(document).on('focusin.modal', function (e) {
          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
            that.$element.focus()
          }
        })
      }

    , escape: function () {
        var that = this
        if (this.isShown && this.options.keyboard) {
          this.$element.on('keyup.dismiss.modal', function ( e ) {
            e.which == 27 && that.hide()
          })
        } else if (!this.isShown) {
          this.$element.off('keyup.dismiss.modal')
        }
      }

    , hideWithTransition: function () {
        var that = this
          , timeout = setTimeout(function () {
              that.$element.off($.support.transition.end)
              that.hideModal()
            }, 500)

        this.$element.one($.support.transition.end, function () {
          clearTimeout(timeout)
          that.hideModal()
        })
      }

    , hideModal: function () {
        var that = this
        this.$element.hide()
        this.backdrop(function () {
          that.removeBackdrop()
          that.$element.trigger('hidden')
        })
      }

    , removeBackdrop: function () {
        this.$backdrop && this.$backdrop.remove()
        this.$backdrop = null
      }

    , backdrop: function (callback) {
        var that = this
          , animate = this.$element.hasClass('fade') ? 'fade' : ''

        if (this.isShown && this.options.backdrop) {
          var doAnimate = $.support.transition && animate

          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
            .appendTo(document.body)

          this.$backdrop.click(
            this.options.backdrop == 'static' ?
              $.proxy(this.$element[0].focus, this.$element[0])
            : $.proxy(this.hide, this)
          )

          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow

          this.$backdrop.addClass('in')

          if (!callback) return

          doAnimate ?
            this.$backdrop.one($.support.transition.end, callback) :
            callback()

        } else if (!this.isShown && this.$backdrop) {
          this.$backdrop.removeClass('in')

          $.support.transition && this.$element.hasClass('fade')?
            this.$backdrop.one($.support.transition.end, callback) :
            callback()

        } else if (callback) {
          callback()
        }
      }
  }


 /* MODAL PLUGIN DEFINITION
  * ======================= */

  var old = $.fn.modal

  $.fn.modal = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('modal')
        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
      if (!data) $this.data('modal', (data = new Modal(this, options)))
      if (typeof option == 'string') data[option]()
      else if (options.show) data.show()
    })
  }

  $.fn.modal.defaults = {
      backdrop: true
    , keyboard: true
    , show: true
  }

  $.fn.modal.Constructor = Modal


 /* MODAL NO CONFLICT
  * ================= */

  $.fn.modal.noConflict = function () {
    $.fn.modal = old
    return this
  }


 /* MODAL DATA-API
  * ============== */

  $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
    var $this = $(this), $target, option
      , href = $this.attr('href')
      , selector = $this.attr('data-target')

    e.preventDefault()

    if (!selector) {
      selector = href
      selector = selector && selector.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
      selector = selector === '#' ? '' : selector
    }

    $target = $(document).find(selector)

    option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())

    $target
      .modal(option)
      .one('hide', function () {
        $this.focus()
      })
  })

}(window.jQuery);
/* ===========================================================
 * bootstrap-tooltip.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#tooltips
 * Inspired by the original jQuery.tipsy by Jason Frame
 * ===========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* TOOLTIP PUBLIC CLASS DEFINITION
  * =============================== */

  var Tooltip = function (element, options) {
    this.init('tooltip', element, options)
  }

  Tooltip.prototype = {

    constructor: Tooltip

  , init: function (type, element, options) {
      var eventIn
        , eventOut
        , triggers
        , trigger
        , i

      this.type = type
      this.$element = $(element)
      this.options = this.getOptions(options)
      this.enabled = true

      triggers = this.options.trigger.split(' ')

      for (i = triggers.length; i--;) {
        trigger = triggers[i]
        if (trigger == 'click') {
          this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
        } else if (trigger != 'manual') {
          eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
          eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
          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()
    }

  , getOptions: function (options) {
      options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)

      if (options.delay && typeof options.delay == 'number') {
        options.delay = {
          show: options.delay
        , hide: options.delay
        }
      }

      return options
    }

  , enter: function (e) {
      var defaults = $.fn[this.type].defaults
        , options = {}
        , self

      this._options && $.each(this._options, function (key, value) {
        if (defaults[key] != value) options[key] = value
      }, this)

      self = $(e.currentTarget)[this.type](options).data(this.type)

      if (!self.options.delay || !self.options.delay.show) return self.show()

      clearTimeout(this.timeout)
      self.hoverState = 'in'
      this.timeout = setTimeout(function() {
        if (self.hoverState == 'in') self.show()
      }, self.options.delay.show)
    }

  , leave: function (e) {
      var self = $(e.currentTarget)[this.type](this._options).data(this.type)

      if (this.timeout) clearTimeout(this.timeout)
      if (!self.options.delay || !self.options.delay.hide) return self.hide()

      self.hoverState = 'out'
      this.timeout = setTimeout(function() {
        if (self.hoverState == 'out') self.hide()
      }, self.options.delay.hide)
    }

  , show: function () {
      var $tip
        , pos
        , actualWidth
        , actualHeight
        , placement
        , tp
        , e = $.Event('show')

      if (this.hasContent() && this.enabled) {
        this.$element.trigger(e)
        if (e.isDefaultPrevented()) return
        $tip = this.tip()
        this.setContent()

        if (this.options.animation) {
          $tip.addClass('fade')
        }

        placement = typeof this.options.placement == 'function' ?
          this.options.placement.call(this, $tip[0], this.$element[0]) :
          this.options.placement

        $tip
          .detach()
          .css({ top: 0, left: 0, display: 'block' })

        this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)

        pos = this.getPosition()

        actualWidth = $tip[0].offsetWidth
        actualHeight = $tip[0].offsetHeight

        switch (placement) {
          case 'bottom':
            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
            break
          case 'top':
            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
            break
          case 'left':
            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
            break
          case 'right':
            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
            break
        }

        this.applyPlacement(tp, placement)
        this.$element.trigger('shown')
      }
    }

  , applyPlacement: function(offset, placement){
      var $tip = this.tip()
        , width = $tip[0].offsetWidth
        , height = $tip[0].offsetHeight
        , actualWidth
        , actualHeight
        , delta
        , replace

      $tip
        .offset(offset)
        .addClass(placement)
        .addClass('in')

      actualWidth = $tip[0].offsetWidth
      actualHeight = $tip[0].offsetHeight

      if (placement == 'top' && actualHeight != height) {
        offset.top = offset.top + height - actualHeight
        replace = true
      }

      if (placement == 'bottom' || placement == 'top') {
        delta = 0

        if (offset.left < 0){
          delta = offset.left * -2
          offset.left = 0
          $tip.offset(offset)
          actualWidth = $tip[0].offsetWidth
          actualHeight = $tip[0].offsetHeight
        }

        this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
      } else {
        this.replaceArrow(actualHeight - height, actualHeight, 'top')
      }

      if (replace) $tip.offset(offset)
    }

  , replaceArrow: function(delta, dimension, position){
      this
        .arrow()
        .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
    }

  , setContent: function () {
      var $tip = this.tip()
        , title = this.getTitle()

      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
      $tip.removeClass('fade in top bottom left right')
    }

  , hide: function () {
	  // JOOMLA JUI >>>
	  /* ORIGINAL:
      var that = this
        , $tip = this.tip()
        , e = $.Event('hide')
      */
      var that = this
        , $tip = this.tip()
        , e = $.Event('hideme')
      // < Joomla JUI

      this.$element.trigger(e)
      if (e.isDefaultPrevented()) return

      $tip.removeClass('in')

      function removeWithAnimation() {
        var timeout = setTimeout(function () {
          $tip.off($.support.transition.end).detach()
        }, 500)

        $tip.one($.support.transition.end, function () {
          clearTimeout(timeout)
          $tip.detach()
        })
      }

      $.support.transition && this.$tip.hasClass('fade') ?
        removeWithAnimation() :
        $tip.detach()

      this.$element.trigger('hidden')

      return this
    }

  , 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', '')
      }
    }

  , hasContent: function () {
      return this.getTitle()
    }

  , getPosition: function () {
      var el = this.$element[0]
      return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
        width: el.offsetWidth
      , height: el.offsetHeight
      }, this.$element.offset())
    }

  , getTitle: function () {
      var title
        , $e = this.$element
        , o = this.options

      title = $e.attr('data-original-title')
        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)

      return title
    }

  , tip: function () {
      return this.$tip = this.$tip || $(this.options.template)
    }

  , arrow: function(){
      return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
    }

  , validate: function () {
      if (!this.$element[0].parentNode) {
        this.hide()
        this.$element = null
        this.options = null
      }
    }

  , enable: function () {
      this.enabled = true
    }

  , disable: function () {
      this.enabled = false
    }

  , toggleEnabled: function () {
      this.enabled = !this.enabled
    }

  , toggle: function (e) {
      var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
      self.tip().hasClass('in') ? self.hide() : self.show()
    }

  , destroy: function () {
      this.hide().$element.off('.' + this.type).removeData(this.type)
    }

  }


 /* TOOLTIP PLUGIN DEFINITION
  * ========================= */

  var old = $.fn.tooltip

  $.fn.tooltip = function ( option ) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('tooltip')
        , options = typeof option == 'object' && option
      if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.tooltip.Constructor = Tooltip

  $.fn.tooltip.defaults = {
    animation: true
  , placement: 'top'
  , selector: false
  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
  , trigger: 'hover focus'
  , title: ''
  , delay: 0
  // JOOMLA JUI >>>
  /* ORIGINAL:
  , html: false
  */
  , html: true
  // < Joomla JUI
  , container: false
  }


 /* TOOLTIP NO CONFLICT
  * =================== */

  $.fn.tooltip.noConflict = function () {
    $.fn.tooltip = old
    return this
  }

}(window.jQuery);
/* ===========================================================
 * bootstrap-popover.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#popovers
 * ===========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* POPOVER PUBLIC CLASS DEFINITION
  * =============================== */

  var Popover = function (element, options) {
    this.init('popover', element, options)
  }


  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
     ========================================== */

  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {

    constructor: Popover

  , setContent: function () {
      var $tip = this.tip()
        , title = this.getTitle()
        , content = this.getContent()

      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
      $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)

      $tip.removeClass('fade top bottom left right in')
    }

  , hasContent: function () {
      return this.getTitle() || this.getContent()
    }

  , getContent: function () {
      var content
        , $e = this.$element
        , o = this.options

      content = (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
        || $e.attr('data-content')

      return content
    }

  , tip: function () {
      if (!this.$tip) {
        this.$tip = $(this.options.template)
      }
      return this.$tip
    }

  , destroy: function () {
      this.hide().$element.off('.' + this.type).removeData(this.type)
    }

  })


 /* POPOVER PLUGIN DEFINITION
  * ======================= */

  var old = $.fn.popover

  $.fn.popover = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('popover')
        , options = typeof option == 'object' && option
      if (!data) $this.data('popover', (data = new Popover(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.popover.Constructor = Popover

  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
    placement: 'right'
  , trigger: 'click'
  , content: ''
  , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
  })


 /* POPOVER NO CONFLICT
  * =================== */

  $.fn.popover.noConflict = function () {
    $.fn.popover = old
    return this
  }

}(window.jQuery);
/* =============================================================
 * bootstrap-scrollspy.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#scrollspy
 * =============================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* SCROLLSPY CLASS DEFINITION
  * ========================== */

  function ScrollSpy(element, options) {
    var process = $.proxy(this.process, this)
      , $element = $(element).is('body') ? $(window) : $(element)
      , href
    this.options = $.extend({}, $.fn.scrollspy.defaults, options)
    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
    this.selector = (this.options.target
      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
      || '') + ' .nav li > a'
    this.$body = $('body')
    this.refresh()
    this.process()
  }

  ScrollSpy.prototype = {

      constructor: ScrollSpy

    , refresh: function () {
        var self = this
          , $targets

        this.offsets = $([])
        this.targets = $([])

        $targets = this.$body
          .find(this.selector)
          .map(function () {
            var $el = $(this)
              , href = $el.data('target') || $el.attr('href')
              , $href = /^#\w/.test(href) && $(href)
            return ( $href
              && $href.length
              && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
          })
          .sort(function (a, b) { return a[0] - b[0] })
          .each(function () {
            self.offsets.push(this[0])
            self.targets.push(this[1])
          })
      }

    , process: function () {
        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
          , maxScroll = scrollHeight - this.$scrollElement.height()
          , offsets = this.offsets
          , targets = this.targets
          , activeTarget = this.activeTarget
          , i

        if (scrollTop >= maxScroll) {
          return activeTarget != (i = targets.last()[0])
            && this.activate ( i )
        }

        for (i = offsets.length; i--;) {
          activeTarget != targets[i]
            && scrollTop >= offsets[i]
            && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
            && this.activate( targets[i] )
        }
      }

    , activate: function (target) {
        var active
          , selector

        this.activeTarget = target

        $(this.selector)
          .parent('.active')
          .removeClass('active')

        selector = this.selector
          + '[data-target="' + target + '"],'
          + this.selector + '[href="' + target + '"]'

        active = $(document).find(selector)
          .parent('li')
          .addClass('active')

        if (active.parent('.dropdown-menu').length)  {
          active = active.closest('li.dropdown').addClass('active')
        }

        active.trigger('activate')
      }

  }


 /* SCROLLSPY PLUGIN DEFINITION
  * =========================== */

  var old = $.fn.scrollspy

  $.fn.scrollspy = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('scrollspy')
        , options = typeof option == 'object' && option
      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.scrollspy.Constructor = ScrollSpy

  $.fn.scrollspy.defaults = {
    offset: 10
  }


 /* SCROLLSPY NO CONFLICT
  * ===================== */

  $.fn.scrollspy.noConflict = function () {
    $.fn.scrollspy = old
    return this
  }


 /* SCROLLSPY DATA-API
  * ================== */

  $(window).on('load', function () {
    $('[data-spy="scroll"]').each(function () {
      var $spy = $(this)
      $spy.scrollspy($spy.data())
    })
  })

}(window.jQuery);/* ========================================================
 * bootstrap-tab.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#tabs
 * ========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* TAB CLASS DEFINITION
  * ==================== */

  var Tab = function (element) {
    this.element = $(element)
  }

  Tab.prototype = {

    constructor: Tab

  , show: function () {
      var $this = this.element
        , $ul = $this.closest('ul:not(.dropdown-menu)')
        , selector = $this.attr('data-target')
        , previous
        , $target
        , e

      if (!selector) {
        selector = $this.attr('href')
        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
      }

      if ( $this.parent('li').hasClass('active') ) return

      previous = $ul.find('.active:last a')[0]

      e = $.Event('show', {
        relatedTarget: previous
      })

      $this.trigger(e)

      if (e.isDefaultPrevented()) return

      $target = $(document).find(selector)

      this.activate($this.parent('li'), $ul)
      this.activate($target, $target.parent(), function () {
        $this.trigger({
          type: 'shown'
        , relatedTarget: previous
        })
      })
    }

  , activate: function ( element, container, callback) {
      var $active = container.find('> .active')
        , transition = callback
            && $.support.transition
            && $active.hasClass('fade')

      function next() {
        $active
          .removeClass('active')
          .find('> .dropdown-menu > .active')
          .removeClass('active')

        element.addClass('active')

        if (transition) {
          element[0].offsetWidth // reflow for transition
          element.addClass('in')
        } else {
          element.removeClass('fade')
        }

        if ( element.parent('.dropdown-menu') ) {
          element.closest('li.dropdown').addClass('active')
        }

        callback && callback()
      }

      transition ?
        $active.one($.support.transition.end, next) :
        next()

      $active.removeClass('in')
    }
  }


 /* TAB PLUGIN DEFINITION
  * ===================== */

  var old = $.fn.tab

  $.fn.tab = function ( option ) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('tab')
      if (!data) $this.data('tab', (data = new Tab(this)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.tab.Constructor = Tab


 /* TAB NO CONFLICT
  * =============== */

  $.fn.tab.noConflict = function () {
    $.fn.tab = old
    return this
  }


 /* TAB DATA-API
  * ============ */

  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
    e.preventDefault()
    $(this).tab('show')
  })

}(window.jQuery);/* =============================================================
 * bootstrap-typeahead.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#typeahead
 * =============================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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($){

  "use strict"; // jshint ;_;


 /* TYPEAHEAD PUBLIC CLASS DEFINITION
  * ================================= */

  var Typeahead = function (element, options) {
    this.$element = $(element)
    this.options = $.extend({}, $.fn.typeahead.defaults, options)
    this.matcher = this.options.matcher || this.matcher
    this.sorter = this.options.sorter || this.sorter
    this.highlighter = this.options.highlighter || this.highlighter
    this.updater = this.options.updater || this.updater
    this.source = this.options.source
    this.$menu = $(this.options.menu)
    this.shown = false
    this.listen()
  }

  Typeahead.prototype = {

    constructor: Typeahead

  , select: function () {
      var val = this.$menu.find('.active').attr('data-value')
      this.$element
        .val(this.updater(val))
        .change()
      return this.hide()
    }

  , updater: function (item) {
      return item
    }

  , show: function () {
      var pos = $.extend({}, this.$element.position(), {
        height: this.$element[0].offsetHeight
      })

      this.$menu
        .insertAfter(this.$element)
        .css({
          top: pos.top + pos.height
        , left: pos.left
        })
        .show()

      this.shown = true
      return this
    }

  , hide: function () {
      this.$menu.hide()
      this.shown = false
      return this
    }

  , lookup: function (event) {
      var items

      this.query = this.$element.val()

      if (!this.query || this.query.length < this.options.minLength) {
        return this.shown ? this.hide() : this
      }

      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source

      return items ? this.process(items) : this
    }

  , process: function (items) {
      var that = this

      items = $.grep(items, function (item) {
        return that.matcher(item)
      })

      items = this.sorter(items)

      if (!items.length) {
        return this.shown ? this.hide() : this
      }

      return this.render(items.slice(0, this.options.items)).show()
    }

  , matcher: function (item) {
      return ~item.toLowerCase().indexOf(this.query.toLowerCase())
    }

  , sorter: function (items) {
      var beginswith = []
        , caseSensitive = []
        , caseInsensitive = []
        , item

      while (item = items.shift()) {
        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
        else if (~item.indexOf(this.query)) caseSensitive.push(item)
        else caseInsensitive.push(item)
      }

      return beginswith.concat(caseSensitive, caseInsensitive)
    }

  , highlighter: function (item) {
      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
        return '<strong>' + match + '</strong>'
      })
    }

  , render: function (items) {
      var that = this

      items = $(items).map(function (i, item) {
        i = $(that.options.item).attr('data-value', item)
        i.find('a').html(that.highlighter(item))
        return i[0]
      })

      items.first().addClass('active')
      this.$menu.html(items)
      return this
    }

  , next: function (event) {
      var active = this.$menu.find('.active').removeClass('active')
        , next = active.next()

      if (!next.length) {
        next = $(this.$menu.find('li')[0])
      }

      next.addClass('active')
    }

  , prev: function (event) {
      var active = this.$menu.find('.active').removeClass('active')
        , prev = active.prev()

      if (!prev.length) {
        prev = this.$menu.find('li').last()
      }

      prev.addClass('active')
    }

  , listen: function () {
      this.$element
        .on('focus',    $.proxy(this.focus, this))
        .on('blur',     $.proxy(this.blur, this))
        .on('keypress', $.proxy(this.keypress, this))
        .on('keyup',    $.proxy(this.keyup, this))

      if (this.eventSupported('keydown')) {
        this.$element.on('keydown', $.proxy(this.keydown, this))
      }

      this.$menu
        .on('click', $.proxy(this.click, this))
        .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
        .on('mouseleave', 'li', $.proxy(this.mouseleave, this))
    }

  , eventSupported: function(eventName) {
      var isSupported = eventName in this.$element
      if (!isSupported) {
        this.$element.setAttribute(eventName, 'return;')
        isSupported = typeof this.$element[eventName] === 'function'
      }
      return isSupported
    }

  , move: function (e) {
      if (!this.shown) return

      switch(e.keyCode) {
        case 9: // tab
        case 13: // enter
        case 27: // escape
          e.preventDefault()
          break

        case 38: // up arrow
          e.preventDefault()
          this.prev()
          break

        case 40: // down arrow
          e.preventDefault()
          this.next()
          break
      }

      e.stopPropagation()
    }

  , keydown: function (e) {
      this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
      this.move(e)
    }

  , keypress: function (e) {
      if (this.suppressKeyPressRepeat) return
      this.move(e)
    }

  , keyup: function (e) {
      switch(e.keyCode) {
        case 40: // down arrow
        case 38: // up arrow
        case 16: // shift
        case 17: // ctrl
        case 18: // alt
          break

        case 9: // tab
        case 13: // enter
          if (!this.shown) return
          this.select()
          break

        case 27: // escape
          if (!this.shown) return
          this.hide()
          break

        default:
          this.lookup()
      }

      e.stopPropagation()
      e.preventDefault()
  }

  , focus: function (e) {
      this.focused = true
    }

  , blur: function (e) {
      this.focused = false
      if (!this.mousedover && this.shown) this.hide()
    }

  , click: function (e) {
      e.stopPropagation()
      e.preventDefault()
      this.select()
      this.$element.focus()
    }

  , mouseenter: function (e) {
      this.mousedover = true
      this.$menu.find('.active').removeClass('active')
      $(e.currentTarget).addClass('active')
    }

  , mouseleave: function (e) {
      this.mousedover = false
      if (!this.focused && this.shown) this.hide()
    }

  }


  /* TYPEAHEAD PLUGIN DEFINITION
   * =========================== */

  var old = $.fn.typeahead

  $.fn.typeahead = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('typeahead')
        , options = typeof option == 'object' && option
      if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.typeahead.defaults = {
    source: []
  , items: 8
  , menu: '<ul class="typeahead dropdown-menu"></ul>'
  , item: '<li><a href="#"></a></li>'
  , minLength: 1
  }

  $.fn.typeahead.Constructor = Typeahead


 /* TYPEAHEAD NO CONFLICT
  * =================== */

  $.fn.typeahead.noConflict = function () {
    $.fn.typeahead = old
    return this
  }


 /* TYPEAHEAD DATA-API
  * ================== */

  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
    var $this = $(this)
    if ($this.data('typeahead')) return
    $this.typeahead($this.data())
  })

}(window.jQuery);
/* ==========================================================
 * bootstrap-affix.js v2.3.2
 * http://twitter.github.com/bootstrap/javascript.html#affix
 * ==========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * 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 ($) {

  "use strict"; // jshint ;_;


 /* AFFIX CLASS DEFINITION
  * ====================== */

  var Affix = function (element, options) {
    this.options = $.extend({}, $.fn.affix.defaults, options)
    this.$window = $(window)
      .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
      .on('click.affix.data-api',  $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
    this.$element = $(element)
    this.checkPosition()
  }

  Affix.prototype.checkPosition = function () {
    if (!this.$element.is(':visible')) return

    var scrollHeight = $(document).height()
      , scrollTop = this.$window.scrollTop()
      , position = this.$element.offset()
      , offset = this.options.offset
      , offsetBottom = offset.bottom
      , offsetTop = offset.top
      , reset = 'affix affix-top affix-bottom'
      , affix

    if (typeof offset != 'object') offsetBottom = offsetTop = offset
    if (typeof offsetTop == 'function') offsetTop = offset.top()
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()

    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
      'bottom' : offsetTop != null && scrollTop <= offsetTop ?
      'top'    : false

    if (this.affixed === affix) return

    this.affixed = affix
    this.unpin = affix == 'bottom' ? position.top - scrollTop : null

    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
  }


 /* AFFIX PLUGIN DEFINITION
  * ======================= */

  var old = $.fn.affix

  $.fn.affix = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('affix')
        , options = typeof option == 'object' && option
      if (!data) $this.data('affix', (data = new Affix(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.affix.Constructor = Affix

  $.fn.affix.defaults = {
    offset: 0
  }


 /* 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)
        , data = $spy.data()

      data.offset = data.offset || {}

      data.offsetBottom && (data.offset.bottom = data.offsetBottom)
      data.offsetTop && (data.offset.top = data.offsetTop)

      $spy.affix(data)
    })
  })


}(window.jQuery);
jui/js/bootstrap-tooltip-extended.min.js000064400000004662152177723720014417 0ustar00/*!
 * bootstrap-tooltip-extended.js v1.0.0
 * Copyright 2016 Cyril Rezé
 * Licensed under the MIT license
 */
!function(t){"use strict";var e=t.fn.tooltip.Constructor.VERSION?t.fn.tooltip.Constructor.VERSION.split(".")[0]:"2",o=t.fn.tooltip,i=function(t,e){this.init("tooltip",t,e)};i.prototype=t.extend({},o.Constructor.prototype,{constructor:i,show:function(){var o,i,s,n,r,l,p=t.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(p),p.isDefaultPrevented())return;o=this.tip(),this.setContent(),this.options.animation&&o.addClass("fade"),r="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement;var a=/\s?auto-dir?\s?/i,h=a.test(r);h&&(r=r.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(r),this.options.container?o.appendTo(this.options.container):o.insertAfter(this.$element),i=this.getPosition(),s=o[0].offsetWidth,n=o[0].offsetHeight;var f="rtl"===jQuery(document.querySelector("html")).attr("dir")?!0:!1;if(h){var c=r,d=r.replace(/bottom-|top-/g,"")||"",g=r.replace(/left|right/g,"")||"";r="left"==d&&f?g+"right":"right"==d&&f?g+"left":r,o.removeClass(c).addClass(r)}switch(r){case"bottom":l={top:i.top+i.height,left:i.left+i.width/2-s/2};break;case"top":l={top:i.top-n,left:i.left+i.width/2-s/2};break;case"left":l={top:i.top+i.height/2-n/2,left:i.left-s};break;case"right":l={top:i.top+i.height/2-n/2,left:i.left+i.width};break;case"bottom-left":l={top:i.top+i.height,left:i.left};break;case"bottom-right":l={top:i.top+i.height,left:i.left+i.width-s};break;case"top-left":l={top:i.top-n,left:i.left};break;case"top-right":l={top:i.top-n,left:i.left+i.width-s}}this.applyPlacement(l,r),"3"===e&&this.newArrow(r,s,f),this.$element.trigger("shown")}},newArrow:function(t,e,o){var i=this.tip().find(".tooltip-arrow"),s=parseInt(i.css("width"),10),n=parseInt(i.css("height"),10),r=t.replace(/bottom-|top-/g,"")||"",l=t.replace(/left|right/g,"")||"";l&&"left"==r&&!o&&i.css("left",s/2),l&&"left"==r&&o&&i.css("right",e-s-s/2),l&&"right"==r&&i.css("left",e-s-s/2),"bottom-"==l&&i.css("top",n),"top-"==l&&i.css("bottom",n)}});var s=t.fn.tooltip;t.fn.tooltip=t.extend(function(e){return this.each(function(){var o=t(this),s=o.data("tooltip"),n=t.extend({},i.defaults,o.data(),"object"==typeof e&&e);s||o.data("tooltip",s=new i(this,n)),"string"==typeof e&&s[e]()})},t.fn.tooltip),t.fn.tooltip.noConflict=function(){return t.fn.tooltip=s,this}}(window.jQuery);
jui/js/jquery-migrate.min.js000064400000023510152177723720012052 0ustar00/*! jQuery Migrate v1.4.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}a.migrateVersion="1.4.1";var f={};a.migrateWarnings=[],b.console&&b.console.log&&b.console.log("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("<input/>",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') might use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.find,s=a.parseJSON,t=/^\s*</,u=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,v=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,w=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,e,f){var g,h;return b&&"string"==typeof b&&!a.isPlainObject(e)&&(g=w.exec(a.trim(b)))&&g[0]&&(t.test(b)||d("$(html) HTML strings must start with '<' character"),g[3]&&d("$(html) HTML text after last tag is ignored"),"#"===g[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),e&&e.context&&e.context.nodeType&&(e=e.context),a.parseHTML)?q.call(this,a.parseHTML(g[2],e&&e.ownerDocument||e||document,!0),e,f):(h=q.apply(this,arguments),b&&b.selector!==c?(h.selector=b.selector,h.context=b.context):(h.selector="string"==typeof b?b:"",b&&(h.context=b.nodeType?b:e||document)),h)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&u.test(a))try{document.querySelector(a)}catch(c){a=a.replace(v,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),d("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){d("Attribute selector with '#' was not fixed: "+b[0])}}return r.apply(this,b)};var x;for(x in r)Object.prototype.hasOwnProperty.call(r,x)&&(a.find[x]=r[x]);a.parseJSON=function(a){return a?s.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.boxModel=a.support.boxModel="CSS1Compat"===document.compatMode,e(a,"boxModel",a.boxModel,"jQuery.boxModel is deprecated"),e(a.support,"boxModel",a.support.boxModel,"jQuery.support.boxModel is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){var f=a.fn.init.call(this,d,e,c);return f instanceof b?f:b(f)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.fn.size=function(){return d("jQuery.fn.size() is deprecated; use the .length property"),this.length};var y=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return y=!0,a=d.apply(this,arguments),y=!1,a})}),a.swap=function(a,b,c,e){var f,g,h={};y||d("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=c.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f},a.ajaxSetup({converters:{"text json":a.parseJSON}});var z=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?z.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var A=/\/(java|ecma)script/i;a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||A.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var B=a.event.add,C=a.event.remove,D=a.event.trigger,E=a.fn.toggle,F=a.fn.live,G=a.fn.die,H=a.fn.load,I="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",J=new RegExp("\\b(?:"+I+")\\b"),K=/(?:^|\s)hover(\.\S+|)\b/,L=function(b){return"string"!=typeof b||a.event.special.hover?b:(K.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(K,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&J.test(b)&&d("AJAX events should be attached to document: "+b),B.call(this,a,L(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){C.call(this,a,L(b)||"",c,d,e)},a.each(["load","unload","error"],function(b,c){a.fn[c]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===c&&"string"==typeof a[0]?H.apply(this,a):(d("jQuery.fn."+c+"() is deprecated"),a.splice(0,0,c),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return E.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g<e.length;)e[g++].guid=f;return this.click(h)},a.fn.live=function(b,c,e){return d("jQuery.fn.live() is deprecated"),F?F.apply(this,arguments):(a(this.context).on(b,this.selector,c,e),this)},a.fn.die=function(b,c){return d("jQuery.fn.die() is deprecated"),G?G.apply(this,arguments):(a(this.context).off(b,this.selector||"**",c),this)},a.event.trigger=function(a,b,c,e){return c||J.test(a)||d("Global events are undocumented and deprecated"),D.call(this,a,b,c||document,e)},a.each(I.split("|"),function(b,c){a.event.special[c]={setup:function(){var b=this;return b!==document&&(a.event.add(document,c+"."+a.guid,function(){a.event.trigger(c,Array.prototype.slice.call(arguments,1),b,!0)}),a._data(this,c,a.guid++)),!1},teardown:function(){return this!==document&&a.event.remove(document,c+"."+a._data(this,c)),!1}}}),a.event.special.ready={setup:function(){this===document&&d("'ready' event is deprecated")}};var M=a.fn.andSelf||a.fn.addBack,N=a.fn.find;if(a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),M.apply(this,arguments)},a.fn.find=function(a){var b=N.apply(this,arguments);return b.context=this.context,b.selector=this.selector?this.selector+" "+a:a,b},a.Callbacks){var O=a.Deferred,P=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var c=O(),e=c.promise();return c.pipe=e.pipe=function(){var b=arguments;return d("deferred.pipe() is deprecated"),a.Deferred(function(d){a.each(P,function(f,g){var h=a.isFunction(b[f])&&b[f];c[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(d.resolve).fail(d.reject).progress(d.notify):d[g[0]+"With"](this===e?d.promise():this,h?[b]:arguments)})}),b=null}).promise()},c.isResolved=function(){return d("deferred.isResolved is deprecated"),"resolved"===c.state()},c.isRejected=function(){return d("deferred.isRejected is deprecated"),"rejected"===c.state()},b&&b.call(c,c),c}}}(jQuery,window);jui/js/jquery.minicolors.min.js000064400000036127152177723720012611 0ustar00/*
 * jQuery MiniColors: A tiny color picker built on jQuery
 *
 * Copyright: Cory LaViska for A Beautiful Site, LLC: http://www.abeautifulsite.net/
 *
 * Contribute: https://github.com/claviska/jquery-minicolors
 *
 * @license: http://opensource.org/licenses/MIT
 *
 */
!function(i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function($){"use strict";function i(i,t){var o=$('<div class="minicolors" />'),s=$.minicolors.defaults,a,n,r,c,l;if(!i.data("minicolors-initialized")){if(t=$.extend(!0,{},s,t),o.addClass("minicolors-theme-"+t.theme).toggleClass("minicolors-with-opacity",t.opacity).toggleClass("minicolors-no-data-uris",t.dataUris!==!0),void 0!==t.position&&$.each(t.position.split(" "),function(){o.addClass("minicolors-position-"+this)}),a="rgb"===t.format?t.opacity?"25":"20":t.keywords?"11":"7",i.addClass("minicolors-input").data("minicolors-initialized",!1).data("minicolors-settings",t).prop("size",a).wrap(o).after('<div class="minicolors-panel minicolors-slider-'+t.control+'"><div class="minicolors-slider minicolors-sprite"><div class="minicolors-picker"></div></div><div class="minicolors-opacity-slider minicolors-sprite"><div class="minicolors-picker"></div></div><div class="minicolors-grid minicolors-sprite"><div class="minicolors-grid-inner"></div><div class="minicolors-picker"><div></div></div></div></div>'),t.inline||(i.after('<span class="minicolors-swatch minicolors-sprite minicolors-input-swatch"><span class="minicolors-swatch-color"></span></span>'),i.next(".minicolors-input-swatch").on("click",function(t){t.preventDefault(),i.focus()})),c=i.parent().find(".minicolors-panel"),c.on("selectstart",function(){return!1}).end(),t.swatches&&0!==t.swatches.length)for(t.swatches.length>7&&(t.swatches.length=7),c.addClass("minicolors-with-swatches"),n=$('<ul class="minicolors-swatches"></ul>').appendTo(c),l=0;l<t.swatches.length;++l)r=t.swatches[l],r=f(r)?u(r,!0):x(p(r,!0)),$('<li class="minicolors-swatch minicolors-sprite"><span class="minicolors-swatch-color"></span></li>').appendTo(n).data("swatch-color",t.swatches[l]).find(".minicolors-swatch-color").css({backgroundColor:y(r),opacity:r.a}),t.swatches[l]=r;t.inline&&i.parent().addClass("minicolors-inline"),e(i,!1),i.data("minicolors-initialized",!0)}}function t(i){var t=i.parent();i.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeClass("minicolors-input"),t.before(i).remove()}function o(i){var t=i.parent(),o=t.find(".minicolors-panel"),a=i.data("minicolors-settings");!i.data("minicolors-initialized")||i.prop("disabled")||t.hasClass("minicolors-inline")||t.hasClass("minicolors-focus")||(s(),t.addClass("minicolors-focus"),o.stop(!0,!0).fadeIn(a.showSpeed,function(){a.show&&a.show.call(i.get(0))}))}function s(){$(".minicolors-focus").each(function(){var i=$(this),t=i.find(".minicolors-input"),o=i.find(".minicolors-panel"),s=t.data("minicolors-settings");o.fadeOut(s.hideSpeed,function(){s.hide&&s.hide.call(t.get(0)),i.removeClass("minicolors-focus")})})}function a(i,t,o){var s=i.parents(".minicolors").find(".minicolors-input"),a=s.data("minicolors-settings"),r=i.find("[class$=-picker]"),e=i.offset().left,c=i.offset().top,l=Math.round(t.pageX-e),h=Math.round(t.pageY-c),d=o?a.animationSpeed:0,p,u,g,m;t.originalEvent.changedTouches&&(l=t.originalEvent.changedTouches[0].pageX-e,h=t.originalEvent.changedTouches[0].pageY-c),0>l&&(l=0),0>h&&(h=0),l>i.width()&&(l=i.width()),h>i.height()&&(h=i.height()),i.parent().is(".minicolors-slider-wheel")&&r.parent().is(".minicolors-grid")&&(p=75-l,u=75-h,g=Math.sqrt(p*p+u*u),m=Math.atan2(u,p),0>m&&(m+=2*Math.PI),g>75&&(g=75,l=75-75*Math.cos(m),h=75-75*Math.sin(m)),l=Math.round(l),h=Math.round(h)),i.is(".minicolors-grid")?r.stop(!0).animate({top:h+"px",left:l+"px"},d,a.animationEasing,function(){n(s,i)}):r.stop(!0).animate({top:h+"px"},d,a.animationEasing,function(){n(s,i)})}function n(i,t){function o(i,t){var o,s;return i.length&&t?(o=i.offset().left,s=i.offset().top,{x:o-t.offset().left+i.outerWidth()/2,y:s-t.offset().top+i.outerHeight()/2}):null}var s,a,n,e,l,h,d,p=i.val(),u=i.attr("data-opacity"),g=i.parent(),f=i.data("minicolors-settings"),v=g.find(".minicolors-input-swatch"),b=g.find(".minicolors-grid"),w=g.find(".minicolors-slider"),y=g.find(".minicolors-opacity-slider"),k=b.find("[class$=-picker]"),M=w.find("[class$=-picker]"),x=y.find("[class$=-picker]"),I=o(k,b),S=o(M,w),z=o(x,y);if(t.is(".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider")){switch(f.control){case"wheel":e=b.width()/2-I.x,l=b.height()/2-I.y,h=Math.sqrt(e*e+l*l),d=Math.atan2(l,e),0>d&&(d+=2*Math.PI),h>75&&(h=75,I.x=69-75*Math.cos(d),I.y=69-75*Math.sin(d)),a=m(h/.75,0,100),s=m(180*d/Math.PI,0,360),n=m(100-Math.floor(S.y*(100/w.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:a,b:100}));break;case"saturation":s=m(parseInt(I.x*(360/b.width()),10),0,360),a=m(100-Math.floor(S.y*(100/w.height())),0,100),n=m(100-Math.floor(I.y*(100/b.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:100,b:n})),g.find(".minicolors-grid-inner").css("opacity",a/100);break;case"brightness":s=m(parseInt(I.x*(360/b.width()),10),0,360),a=m(100-Math.floor(I.y*(100/b.height())),0,100),n=m(100-Math.floor(S.y*(100/w.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:a,b:100})),g.find(".minicolors-grid-inner").css("opacity",1-n/100);break;default:s=m(360-parseInt(S.y*(360/w.height()),10),0,360),a=m(Math.floor(I.x*(100/b.width())),0,100),n=m(100-Math.floor(I.y*(100/b.height())),0,100),p=C({h:s,s:a,b:n}),b.css("backgroundColor",C({h:s,s:100,b:100}))}u=f.opacity?parseFloat(1-z.y/y.height()).toFixed(2):1,r(i,p,u)}else v.find("span").css({backgroundColor:p,opacity:u}),c(i,p,u)}function r(i,t,o){var s,a=i.parent(),n=i.data("minicolors-settings"),r=a.find(".minicolors-input-swatch");n.opacity&&i.attr("data-opacity",o),"rgb"===n.format?(s=f(t)?u(t,!0):x(p(t,!0)),o=""===i.attr("data-opacity")?1:m(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),(isNaN(o)||!n.opacity)&&(o=1),t=i.minicolors("rgbObject").a<=1&&s&&n.opacity?"rgba("+s.r+", "+s.g+", "+s.b+", "+parseFloat(o)+")":"rgb("+s.r+", "+s.g+", "+s.b+")"):(f(t)&&(t=w(t)),t=d(t,n.letterCase)),i.val(t),r.find("span").css({backgroundColor:t,opacity:o}),c(i,t,o)}function e(i,t){var o,s,a,n,r,e,l,h,b,y,M=i.parent(),x=i.data("minicolors-settings"),I=M.find(".minicolors-input-swatch"),S=M.find(".minicolors-grid"),z=M.find(".minicolors-slider"),F=M.find(".minicolors-opacity-slider"),D=S.find("[class$=-picker]"),T=z.find("[class$=-picker]"),j=F.find("[class$=-picker]");switch(f(i.val())?(o=w(i.val()),r=m(parseFloat(v(i.val())).toFixed(2),0,1),r&&i.attr("data-opacity",r)):o=d(p(i.val(),!0),x.letterCase),o||(o=d(g(x.defaultValue,!0),x.letterCase)),s=k(o),n=x.keywords?$.map(x.keywords.split(","),function(i){return $.trim(i.toLowerCase())}):[],e=""!==i.val()&&$.inArray(i.val().toLowerCase(),n)>-1?d(i.val()):f(i.val())?u(i.val()):o,t||i.val(e),x.opacity&&(a=""===i.attr("data-opacity")?1:m(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),isNaN(a)&&(a=1),i.attr("data-opacity",a),I.find("span").css("opacity",a),h=m(F.height()-F.height()*a,0,F.height()),j.css("top",h+"px")),"transparent"===i.val().toLowerCase()&&I.find("span").css("opacity",0),I.find("span").css("backgroundColor",o),x.control){case"wheel":b=m(Math.ceil(.75*s.s),0,S.height()/2),y=s.h*Math.PI/180,l=m(75-Math.cos(y)*b,0,S.width()),h=m(75-Math.sin(y)*b,0,S.height()),D.css({top:h+"px",left:l+"px"}),h=150-s.b/(100/S.height()),""===o&&(h=0),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:s.s,b:100}));break;case"saturation":l=m(5*s.h/12,0,150),h=m(S.height()-Math.ceil(s.b/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.s*(z.height()/100),0,z.height()),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:100,b:s.b})),M.find(".minicolors-grid-inner").css("opacity",s.s/100);break;case"brightness":l=m(5*s.h/12,0,150),h=m(S.height()-Math.ceil(s.s/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.b*(z.height()/100),0,z.height()),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:s.s,b:100})),M.find(".minicolors-grid-inner").css("opacity",1-s.b/100);break;default:l=m(Math.ceil(s.s/(100/S.width())),0,S.width()),h=m(S.height()-Math.ceil(s.b/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.h/(360/z.height()),0,z.height()),T.css("top",h+"px"),S.css("backgroundColor",C({h:s.h,s:100,b:100}))}i.data("minicolors-initialized")&&c(i,e,a)}function c(i,t,o){var s=i.data("minicolors-settings"),a=i.data("minicolors-lastChange"),n,r,e;if(!a||a.value!==t||a.opacity!==o){if(i.data("minicolors-lastChange",{value:t,opacity:o}),s.swatches&&0!==s.swatches.length){for(n=f(t)?u(t,!0):x(t),r=-1,e=0;e<s.swatches.length;++e)if(n.r===s.swatches[e].r&&n.g===s.swatches[e].g&&n.b===s.swatches[e].b&&n.a===s.swatches[e].a){r=e;break}i.parent().find(".minicolors-swatches .minicolors-swatch").removeClass("selected"),-1!==e&&i.parent().find(".minicolors-swatches .minicolors-swatch").eq(e).addClass("selected")}s.change&&(s.changeDelay?(clearTimeout(i.data("minicolors-changeTimeout")),i.data("minicolors-changeTimeout",setTimeout(function(){s.change.call(i.get(0),t,o)},s.changeDelay))):s.change.call(i.get(0),t,o)),i.trigger("change").trigger("input")}}function l(i){var t=p($(i).val(),!0),o=x(t),s=$(i).attr("data-opacity");return o?(void 0!==s&&$.extend(o,{a:parseFloat(s)}),o):null}function h(i,t){var o=p($(i).val(),!0),s=x(o),a=$(i).attr("data-opacity");return s?(void 0===a&&(a=1),t?"rgba("+s.r+", "+s.g+", "+s.b+", "+parseFloat(a)+")":"rgb("+s.r+", "+s.g+", "+s.b+")"):null}function d(i,t){return"uppercase"===t?i.toUpperCase():i.toLowerCase()}function p(i,t){return i=i.replace(/^#/g,""),i.match(/^[A-F0-9]{3,6}/gi)?3!==i.length&&6!==i.length?"":(3===i.length&&t&&(i=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]),"#"+i):""}function u(i,t){var o=i.replace(/[^\d,.]/g,""),s=o.split(",");return s[0]=m(parseInt(s[0],10),0,255),s[1]=m(parseInt(s[1],10),0,255),s[2]=m(parseInt(s[2],10),0,255),s[3]&&(s[3]=m(parseFloat(s[3],10),0,1)),t?{r:s[0],g:s[1],b:s[2],a:s[3]?s[3]:null}:"undefined"!=typeof s[3]&&s[3]<=1?"rgba("+s[0]+", "+s[1]+", "+s[2]+", "+s[3]+")":"rgb("+s[0]+", "+s[1]+", "+s[2]+")"}function g(i,t){return f(i)?u(i):p(i,t)}function m(i,t,o){return t>i&&(i=t),i>o&&(i=o),i}function f(i){var t=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return t&&4===t.length?!0:!1}function v(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+(\.\d{1,2})?|\.\d{1,2})[\s+]?/i),i&&6===i.length?i[4]:"1"}function b(i){var t={},o=Math.round(i.h),s=Math.round(255*i.s/100),a=Math.round(255*i.b/100);if(0===s)t.r=t.g=t.b=a;else{var n=a,r=(255-s)*a/255,e=(n-r)*(o%60)/60;360===o&&(o=0),60>o?(t.r=n,t.b=r,t.g=r+e):120>o?(t.g=n,t.b=r,t.r=n-e):180>o?(t.g=n,t.r=r,t.b=r+e):240>o?(t.b=n,t.r=r,t.g=n-e):300>o?(t.b=n,t.g=r,t.r=r+e):360>o?(t.r=n,t.g=r,t.b=n-e):(t.r=0,t.g=0,t.b=0)}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}}function w(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i),i&&4===i.length?"#"+("0"+parseInt(i[1],10).toString(16)).slice(-2)+("0"+parseInt(i[2],10).toString(16)).slice(-2)+("0"+parseInt(i[3],10).toString(16)).slice(-2):""}function y(i){var t=[i.r.toString(16),i.g.toString(16),i.b.toString(16)];return $.each(t,function(i,o){1===o.length&&(t[i]="0"+o)}),"#"+t.join("")}function C(i){return y(b(i))}function k(i){var t=M(x(i));return 0===t.s&&(t.h=360),t}function M(i){var t={h:0,s:0,b:0},o=Math.min(i.r,i.g,i.b),s=Math.max(i.r,i.g,i.b),a=s-o;return t.b=s,t.s=0!==s?255*a/s:0,0!==t.s?i.r===s?t.h=(i.g-i.b)/a:i.g===s?t.h=2+(i.b-i.r)/a:t.h=4+(i.r-i.g)/a:t.h=-1,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t}function x(i){return i=parseInt(i.indexOf("#")>-1?i.substring(1):i,16),{r:i>>16,g:(65280&i)>>8,b:255&i}}$.minicolors={defaults:{animationSpeed:50,animationEasing:"swing",change:null,changeDelay:0,control:"hue",dataUris:!0,defaultValue:"",format:"hex",hide:null,hideSpeed:100,inline:!1,keywords:"",letterCase:"lowercase",opacity:!1,position:"bottom left",show:null,showSpeed:100,theme:"default",swatches:[]}},$.extend($.fn,{minicolors:function(a,n){switch(a){case"destroy":return $(this).each(function(){t($(this))}),$(this);case"hide":return s(),$(this);case"opacity":return void 0===n?$(this).attr("data-opacity"):($(this).each(function(){e($(this).attr("data-opacity",n))}),$(this));case"rgbObject":return l($(this),"rgbaObject"===a);case"rgbString":case"rgbaString":return h($(this),"rgbaString"===a);case"settings":return void 0===n?$(this).data("minicolors-settings"):($(this).each(function(){var i=$(this).data("minicolors-settings")||{};t($(this)),$(this).minicolors($.extend(!0,i,n))}),$(this));case"show":return o($(this).eq(0)),$(this);case"value":return void 0===n?$(this).val():($(this).each(function(){"object"==typeof n?(n.opacity&&$(this).attr("data-opacity",m(n.opacity,0,1)),n.color&&$(this).val(n.color)):$(this).val(n),e($(this))}),$(this));default:return"create"!==a&&(n=a),$(this).each(function(){i($(this),n)}),$(this)}}}),$(document).on("mousedown.minicolors touchstart.minicolors",function(i){$(i.target).parents().add(i.target).hasClass("minicolors")||s()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(i){var t=$(this);i.preventDefault(),$(document).data("minicolors-target",t),a(t,i,!0)}).on("mousemove.minicolors touchmove.minicolors",function(i){var t=$(document).data("minicolors-target");t&&a(t,i)}).on("mouseup.minicolors touchend.minicolors",function(){$(this).removeData("minicolors-target")}).on("click.minicolors",".minicolors-swatches li",function(i){i.preventDefault();var t=$(this),o=t.parents(".minicolors").find(".minicolors-input"),s=t.data("swatch-color");r(o,s,v(s)),e(o)}).on("mousedown.minicolors touchstart.minicolors",".minicolors-input-swatch",function(i){var t=$(this).parent().find(".minicolors-input");i.preventDefault(),o(t)}).on("focus.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&o(i)}).on("blur.minicolors",".minicolors-input",function(){var i=$(this),t=i.data("minicolors-settings"),o,s,a,n,r;i.data("minicolors-initialized")&&(o=t.keywords?$.map(t.keywords.split(","),function(i){return $.trim(i.toLowerCase())}):[],""!==i.val()&&$.inArray(i.val().toLowerCase(),o)>-1?r=i.val():(f(i.val())?a=u(i.val(),!0):(s=p(i.val(),!0),a=s?x(s):null),r=null===a?t.defaultValue:"rgb"===t.format?u(t.opacity?"rgba("+a.r+","+a.g+","+a.b+","+i.attr("data-opacity")+")":"rgb("+a.r+","+a.g+","+a.b+")"):y(a)),n=t.opacity?i.attr("data-opacity"):1,"transparent"===r.toLowerCase()&&(n=0),i.closest(".minicolors").find(".minicolors-input-swatch > span").css("opacity",n),i.val(r),""===i.val()&&i.val(g(t.defaultValue,!0)),i.val(d(i.val(),t.letterCase)))}).on("keydown.minicolors",".minicolors-input",function(i){var t=$(this);if(t.data("minicolors-initialized"))switch(i.keyCode){case 9:s();break;case 13:case 27:s(),t.blur()}}).on("keyup.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&e(i,!0)}).on("paste.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&setTimeout(function(){e(i,!0)},1)})});
jui/js/chosen.jquery.js000064400000135214152177723720011125 0ustar00/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.6.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com

 Modified for Joomla! UI:
 - revert the check for instance type of data-chosen, to allow to disable Chosen for field with data-chosen="true", @see https://github.com/joomla/joomla-cms/pull/12877
 - rename the css and javascript classes and functions to revert back to using chzn and liszt
 - fix zero width, based on https://github.com/harvesthq/chosen/pull/1439
 - allow to add a custom value on fly, based on https://github.com/harvesthq/chosen/pull/749

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/

(function() {
  var $, AbstractChosen, Chosen, SelectParser, _ref,
    __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };

  SelectParser = (function() {
    function SelectParser() {
      this.options_index = 0;
      this.parsed = [];
    }

    SelectParser.prototype.add_node = function(child) {
      if (child.nodeName.toUpperCase() === "OPTGROUP") {
        return this.add_group(child);
      } else {
        return this.add_option(child);
      }
    };

    SelectParser.prototype.add_group = function(group) {
      var group_position, option, _i, _len, _ref, _results;
      group_position = this.parsed.length;
      this.parsed.push({
        array_index: group_position,
        group: true,
        label: this.escapeExpression(group.label),
        title: group.title ? group.title : void 0,
        children: 0,
        disabled: group.disabled,
        classes: group.className
      });
      _ref = group.childNodes;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        _results.push(this.add_option(option, group_position, group.disabled));
      }
      return _results;
    };

    SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
      if (option.nodeName.toUpperCase() === "OPTION") {
        if (option.text !== "") {
          if (group_position != null) {
            this.parsed[group_position].children += 1;
          }
          this.parsed.push({
            array_index: this.parsed.length,
            options_index: this.options_index,
            value: option.value,
            text: option.text,
            html: option.innerHTML,
            title: option.title ? option.title : void 0,
            selected: option.selected,
            disabled: group_disabled === true ? group_disabled : option.disabled,
            group_array_index: group_position,
            group_label: group_position != null ? this.parsed[group_position].label : null,
            classes: option.className,
            style: option.style.cssText
          });
        } else {
          this.parsed.push({
            array_index: this.parsed.length,
            options_index: this.options_index,
            empty: true
          });
        }
        return this.options_index += 1;
      }
    };

    SelectParser.prototype.escapeExpression = function(text) {
      var map, unsafe_chars;
      if ((text == null) || text === false) {
        return "";
      }
      if (!/[\&\<\>\"\'\`]/.test(text)) {
        return text;
      }
      map = {
        "<": "&lt;",
        ">": "&gt;",
        '"': "&quot;",
        "'": "&#x27;",
        "`": "&#x60;"
      };
      unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
      return text.replace(unsafe_chars, function(chr) {
        return map[chr] || "&amp;";
      });
    };

    return SelectParser;

  })();

  SelectParser.select_to_array = function(select) {
    var child, parser, _i, _len, _ref;
    parser = new SelectParser();
    _ref = select.childNodes;
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
      child = _ref[_i];
      parser.add_node(child);
    }
    return parser.parsed;
  };

  AbstractChosen = (function() {
    function AbstractChosen(form_field, options) {
      this.form_field = form_field;
      this.options = options != null ? options : {};
      if (!AbstractChosen.browser_is_supported()) {
        return;
      }
      this.is_multiple = this.form_field.multiple;
      this.set_default_text();
      this.set_default_values();
      this.setup();
      this.set_up_html();
      this.register_observers();
      this.on_ready();
    }

    AbstractChosen.prototype.set_default_values = function() {
      var _this = this;
      this.click_test_action = function(evt) {
        return _this.test_active_click(evt);
      };
      this.activate_action = function(evt) {
        return _this.activate_field(evt);
      };
      this.active_field = false;
      this.mouse_on_container = false;
      this.results_showing = false;
      this.result_highlighted = null;
      /*<JUI>*/
      /* Original: not exist */
      this.allow_custom_value = false;
      /*</JUI>*/
      this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
      this.disable_search_threshold = this.options.disable_search_threshold || 0;
      this.disable_search = this.options.disable_search || false;
      this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
      this.group_search = this.options.group_search != null ? this.options.group_search : true;
      this.search_contains = this.options.search_contains || false;
      this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
      this.max_selected_options = this.options.max_selected_options || Infinity;
      this.inherit_select_classes = this.options.inherit_select_classes || false;
      this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
      this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
      this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
      this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
      return this.case_sensitive_search = this.options.case_sensitive_search || false;
    };

    AbstractChosen.prototype.set_default_text = function() {
      if (this.form_field.getAttribute("data-placeholder")) {
        this.default_text = this.form_field.getAttribute("data-placeholder");
      } else if (this.is_multiple) {
        this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
      } else {
        this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
      }
      /*<JUI>*/
      /* Original: not exist */
      this.custom_group_text = this.form_field.getAttribute("data-custom_group_text") || this.options.custom_group_text || "Custom Value";
      /*</JUI>*/
      return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
    };

    AbstractChosen.prototype.choice_label = function(item) {
      if (this.include_group_label_in_selected && (item.group_label != null)) {
        return "<b class='group-name'>" + item.group_label + "</b>" + item.html;
      } else {
        return item.html;
      }
    };

    AbstractChosen.prototype.mouse_enter = function() {
      return this.mouse_on_container = true;
    };

    AbstractChosen.prototype.mouse_leave = function() {
      return this.mouse_on_container = false;
    };

    AbstractChosen.prototype.input_focus = function(evt) {
      var _this = this;
      if (this.is_multiple) {
        if (!this.active_field) {
          return setTimeout((function() {
            return _this.container_mousedown();
          }), 50);
        }
      } else {
        if (!this.active_field) {
          return this.activate_field();
        }
      }
    };

    AbstractChosen.prototype.input_blur = function(evt) {
      var _this = this;
      if (!this.mouse_on_container) {
        this.active_field = false;
        return setTimeout((function() {
          return _this.blur_test();
        }), 100);
      }
    };

    AbstractChosen.prototype.results_option_build = function(options) {
      var content, data, data_content, shown_results, _i, _len, _ref;
      content = '';
      shown_results = 0;
      _ref = this.results_data;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        data = _ref[_i];
        data_content = '';
        if (data.group) {
          data_content = this.result_add_group(data);
        } else {
          data_content = this.result_add_option(data);
        }
        if (data_content !== '') {
          shown_results++;
          content += data_content;
        }
        if (options != null ? options.first : void 0) {
          if (data.selected && this.is_multiple) {
            this.choice_build(data);
          } else if (data.selected && !this.is_multiple) {
            this.single_set_selected_text(this.choice_label(data));
          }
        }
        if (shown_results >= this.max_shown_results) {
          break;
        }
      }
      return content;
    };

    AbstractChosen.prototype.result_add_option = function(option) {
      var classes, option_el;
      if (!option.search_match) {
        return '';
      }
      if (!this.include_option_in_results(option)) {
        return '';
      }
      classes = [];
      if (!option.disabled && !(option.selected && this.is_multiple)) {
        classes.push("active-result");
      }
      if (option.disabled && !(option.selected && this.is_multiple)) {
        classes.push("disabled-result");
      }
      if (option.selected) {
        classes.push("result-selected");
      }
      if (option.group_array_index != null) {
        classes.push("group-option");
      }
      if (option.classes !== "") {
        classes.push(option.classes);
      }
      option_el = document.createElement("li");
      option_el.className = classes.join(" ");
      option_el.style.cssText = option.style;
      option_el.setAttribute("data-option-array-index", option.array_index);
      option_el.innerHTML = option.search_text;
      if (option.title) {
        option_el.title = option.title;
      }
      return this.outerHTML(option_el);
    };

    AbstractChosen.prototype.result_add_group = function(group) {
      var classes, group_el;
      if (!(group.search_match || group.group_match)) {
        return '';
      }
      if (!(group.active_options > 0)) {
        return '';
      }
      classes = [];
      classes.push("group-result");
      if (group.classes) {
        classes.push(group.classes);
      }
      group_el = document.createElement("li");
      group_el.className = classes.join(" ");
      group_el.innerHTML = group.search_text;
      if (group.title) {
        group_el.title = group.title;
      }
      return this.outerHTML(group_el);
    };

    AbstractChosen.prototype.results_update_field = function() {
      this.set_default_text();
      if (!this.is_multiple) {
        this.results_reset_cleanup();
      }
      this.result_clear_highlight();
      this.results_build();
      if (this.results_showing) {
        return this.winnow_results();
      }
    };

    AbstractChosen.prototype.reset_single_select_options = function() {
      var result, _i, _len, _ref, _results;
      _ref = this.results_data;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        result = _ref[_i];
        if (result.selected) {
          _results.push(result.selected = false);
        } else {
          _results.push(void 0);
        }
      }
      return _results;
    };

    AbstractChosen.prototype.results_toggle = function() {
      if (this.results_showing) {
        return this.results_hide();
      } else {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.results_search = function(evt) {
      if (this.results_showing) {
        return this.winnow_results();
      } else {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.winnow_results = function() {
      var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
      this.no_results_clear();
      results = 0;
      searchText = this.get_search_text();
      escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
      zregex = new RegExp(escapedSearchText, 'i');
      regex = this.get_search_regex(escapedSearchText);
      _ref = this.results_data;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        option.search_match = false;
        results_group = null;
        if (this.include_option_in_results(option)) {
          if (option.group) {
            option.group_match = false;
            option.active_options = 0;
          }
          if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
            results_group = this.results_data[option.group_array_index];
            if (results_group.active_options === 0 && results_group.search_match) {
              results += 1;
            }
            results_group.active_options += 1;
          }
          option.search_text = option.group ? option.label : option.html;
          if (!(option.group && !this.group_search)) {
            option.search_match = this.search_string_match(option.search_text, regex);
            if (option.search_match && !option.group) {
              results += 1;
            }
            if (option.search_match) {
              if (searchText.length) {
                startpos = option.search_text.search(zregex);
                text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
              }
              if (results_group != null) {
                results_group.group_match = true;
              }
            } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
              option.search_match = true;
            }
          }
        }
      }
      this.result_clear_highlight();
      if (results < 1 && searchText.length) {
        this.update_results_content("");
        return this.no_results(searchText);
      } else {
        this.update_results_content(this.results_option_build());
        return this.winnow_results_set_highlight();
      }
    };

    AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
      var regex_anchor, regex_flag;
      regex_anchor = this.search_contains ? "" : "^";
      regex_flag = this.case_sensitive_search ? "" : "i";
      return new RegExp(regex_anchor + escaped_search_string, regex_flag);
    };

    AbstractChosen.prototype.search_string_match = function(search_string, regex) {
      var part, parts, _i, _len;
      if (regex.test(search_string)) {
        return true;
      } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
        parts = search_string.replace(/\[|\]/g, "").split(" ");
        if (parts.length) {
          for (_i = 0, _len = parts.length; _i < _len; _i++) {
            part = parts[_i];
            if (regex.test(part)) {
              return true;
            }
          }
        }
      }
    };

    AbstractChosen.prototype.choices_count = function() {
      var option, _i, _len, _ref;
      if (this.selected_option_count != null) {
        return this.selected_option_count;
      }
      this.selected_option_count = 0;
      _ref = this.form_field.options;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        if (option.selected) {
          this.selected_option_count += 1;
        }
      }
      return this.selected_option_count;
    };

    AbstractChosen.prototype.choices_click = function(evt) {
      evt.preventDefault();
      if (!(this.results_showing || this.is_disabled)) {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.keyup_checker = function(evt) {
      var stroke, _ref;
      stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
      this.search_field_scale();
      switch (stroke) {
        case 8:
          if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
            return this.keydown_backstroke();
          } else if (!this.pending_backstroke) {
            this.result_clear_highlight();
            return this.results_search();
          }
          break;
        case 13:
          evt.preventDefault();
          if (this.results_showing) {
            return this.result_select(evt);
          }
          break;
        case 27:
          if (this.results_showing) {
            this.results_hide();
          }
          return true;
        case 9:
        case 38:
        case 40:
        case 16:
        case 91:
        case 17:
        case 18:
          break;
        default:
          return this.results_search();
      }
    };

    AbstractChosen.prototype.clipboard_event_checker = function(evt) {
      var _this = this;
      return setTimeout((function() {
        return _this.results_search();
      }), 50);
    };

    AbstractChosen.prototype.container_width = function() {
      if (this.options.width != null) {
        return this.options.width;
      } else {
        /*<JUI>*/
        /* Original:
        return "" + this.form_field.offsetWidth + "px";
        */
        return this.form_field_jq.css("width") || "" + this.form_field.offsetWidth + "px";
        /*</JUI>*/
      }
    };

    AbstractChosen.prototype.include_option_in_results = function(option) {
      if (this.is_multiple && (!this.display_selected_options && option.selected)) {
        return false;
      }
      if (!this.display_disabled_options && option.disabled) {
        return false;
      }
      if (option.empty) {
        return false;
      }
      return true;
    };

    AbstractChosen.prototype.search_results_touchstart = function(evt) {
      this.touch_started = true;
      return this.search_results_mouseover(evt);
    };

    AbstractChosen.prototype.search_results_touchmove = function(evt) {
      this.touch_started = false;
      return this.search_results_mouseout(evt);
    };

    AbstractChosen.prototype.search_results_touchend = function(evt) {
      if (this.touch_started) {
        return this.search_results_mouseup(evt);
      }
    };

    AbstractChosen.prototype.outerHTML = function(element) {
      var tmp;
      if (element.outerHTML) {
        return element.outerHTML;
      }
      tmp = document.createElement("div");
      tmp.appendChild(element);
      return tmp.innerHTML;
    };

    AbstractChosen.browser_is_supported = function() {
      if ("Microsoft Internet Explorer" === window.navigator.appName) {
        return document.documentMode >= 8;
      }
      if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {
        return false;
      }
      return true;
    };

    AbstractChosen.default_multiple_text = "Select Some Options";

    AbstractChosen.default_single_text = "Select an Option";

    AbstractChosen.default_no_result_text = "No results match";

    return AbstractChosen;

  })();

  $ = jQuery;

  $.fn.extend({
    chosen: function(options) {
      if (!AbstractChosen.browser_is_supported()) {
        return this;
      }
      return this.each(function(input_field) {
        var $this, chosen;
        $this = $(this);
        chosen = $this.data('chosen');
        if (options === 'destroy') {
          if (chosen instanceof Chosen) {
            chosen.destroy();
          }
          return;
        }
        /*<JUI>*/
        /*
          This changes allow to prevent Chosen.js initialization for <select> field by adding data-chosen="true" to this tag,
          we need it because in a lot layouts Joomla! applies Chosen.js to all <select> on the page.
          @see https://github.com/joomla/joomla-cms/pull/12877
        */
        /* Original:
        if (!(chosen instanceof Chosen)) {
          $this.data('chosen', new Chosen(this, options));
        }
        */
        if (!chosen) {
          $this.data('chosen', new Chosen(this, options));
        }
        /*</JUI>*/
      });
    }
  });

  Chosen = (function(_super) {
    __extends(Chosen, _super);

    function Chosen() {
      _ref = Chosen.__super__.constructor.apply(this, arguments);
      return _ref;
    }

    Chosen.prototype.setup = function() {
      this.form_field_jq = $(this.form_field);
      this.current_selectedIndex = this.form_field.selectedIndex;
      /*<JUI>*/
      /* Original: not exist */
      this.allow_custom_value = this.form_field_jq.hasClass("chzn-custom-value") || this.options.allow_custom_value;
      /*</JUI>*/
      return this.is_rtl = this.form_field_jq.hasClass("chzn-rtl");
    };

    Chosen.prototype.set_up_html = function() {
      var container_classes, container_props;
      container_classes = ["chzn-container"];
      container_classes.push("chzn-container-" + (this.is_multiple ? "multi" : "single"));
      if (this.inherit_select_classes && this.form_field.className) {
        container_classes.push(this.form_field.className);
      }
      if (this.is_rtl) {
        container_classes.push("chzn-rtl");
      }
      container_props = {
        'class': container_classes.join(' '),
        'style': "width: " + (this.container_width()) + ";",
        'title': this.form_field.title
      };
      if (this.form_field.id.length) {
        container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chzn";
      }
      this.container = $("<div />", container_props);
      if (this.is_multiple) {
        this.container.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop"><ul class="chzn-results"></ul></div>');
      } else {
        this.container.html('<a class="chzn-single chzn-default"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>');
      }
      this.form_field_jq.hide().after(this.container);
      this.dropdown = this.container.find('div.chzn-drop').first();
      this.search_field = this.container.find('input').first();
      this.search_results = this.container.find('ul.chzn-results').first();
      this.search_field_scale();
      this.search_no_results = this.container.find('li.no-results').first();
      if (this.is_multiple) {
        this.search_choices = this.container.find('ul.chzn-choices').first();
        this.search_container = this.container.find('li.search-field').first();
      } else {
        this.search_container = this.container.find('div.chzn-search').first();
        this.selected_item = this.container.find('.chzn-single').first();
      }
      this.results_build();
      this.set_tab_index();
      return this.set_label_behavior();
    };

    Chosen.prototype.on_ready = function() {
      return this.form_field_jq.trigger("liszt:ready", {
        chosen: this
      });
    };

    Chosen.prototype.register_observers = function() {
      var _this = this;
      this.container.bind('touchstart.chosen', function(evt) {
        _this.container_mousedown(evt);
        return evt.preventDefault();
      });
      this.container.bind('touchend.chosen', function(evt) {
        _this.container_mouseup(evt);
        return evt.preventDefault();
      });
      this.container.bind('mousedown.chosen', function(evt) {
        _this.container_mousedown(evt);
      });
      this.container.bind('mouseup.chosen', function(evt) {
        _this.container_mouseup(evt);
      });
      this.container.bind('mouseenter.chosen', function(evt) {
        _this.mouse_enter(evt);
      });
      this.container.bind('mouseleave.chosen', function(evt) {
        _this.mouse_leave(evt);
      });
      this.search_results.bind('mouseup.chosen', function(evt) {
        _this.search_results_mouseup(evt);
      });
      this.search_results.bind('mouseover.chosen', function(evt) {
        _this.search_results_mouseover(evt);
      });
      this.search_results.bind('mouseout.chosen', function(evt) {
        _this.search_results_mouseout(evt);
      });
      this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
        _this.search_results_mousewheel(evt);
      });
      this.search_results.bind('touchstart.chosen', function(evt) {
        _this.search_results_touchstart(evt);
      });
      this.search_results.bind('touchmove.chosen', function(evt) {
        _this.search_results_touchmove(evt);
      });
      this.search_results.bind('touchend.chosen', function(evt) {
        _this.search_results_touchend(evt);
      });
      this.form_field_jq.bind("liszt:updated.chosen", function(evt) {
        _this.results_update_field(evt);
      });
      this.form_field_jq.bind("liszt:activate.chosen", function(evt) {
        _this.activate_field(evt);
      });
      this.form_field_jq.bind("liszt:open.chosen", function(evt) {
        _this.container_mousedown(evt);
      });
      this.form_field_jq.bind("liszt:close.chosen", function(evt) {
        _this.input_blur(evt);
      });
      this.search_field.bind('blur.chosen', function(evt) {
        _this.input_blur(evt);
      });
      this.search_field.bind('keyup.chosen', function(evt) {
        _this.keyup_checker(evt);
      });
      this.search_field.bind('keydown.chosen', function(evt) {
        _this.keydown_checker(evt);
      });
      this.search_field.bind('focus.chosen', function(evt) {
        _this.input_focus(evt);
      });
      this.search_field.bind('cut.chosen', function(evt) {
        _this.clipboard_event_checker(evt);
      });
      this.search_field.bind('paste.chosen', function(evt) {
        _this.clipboard_event_checker(evt);
      });
      if (this.is_multiple) {
        return this.search_choices.bind('click.chosen', function(evt) {
          _this.choices_click(evt);
        });
      } else {
        return this.container.bind('click.chosen', function(evt) {
          evt.preventDefault();
        });
      }
    };

    Chosen.prototype.destroy = function() {
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
      if (this.search_field[0].tabIndex) {
        this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
      }
      this.container.remove();
      this.form_field_jq.removeData('chosen');
      return this.form_field_jq.show();
    };

    Chosen.prototype.search_field_disabled = function() {
      this.is_disabled = this.form_field_jq[0].disabled;
      if (this.is_disabled) {
        this.container.addClass('chzn-disabled');
        this.search_field[0].disabled = true;
        if (!this.is_multiple) {
          this.selected_item.unbind("focus.chosen", this.activate_action);
        }
        return this.close_field();
      } else {
        this.container.removeClass('chzn-disabled');
        this.search_field[0].disabled = false;
        if (!this.is_multiple) {
          return this.selected_item.bind("focus.chosen", this.activate_action);
        }
      }
    };

    Chosen.prototype.container_mousedown = function(evt) {
      if (!this.is_disabled) {
        if (evt && evt.type === "mousedown" && !this.results_showing) {
          evt.preventDefault();
        }
        if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
          if (!this.active_field) {
            if (this.is_multiple) {
              this.search_field.val("");
            }
            $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
            this.results_show();
          } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chzn-single").length)) {
            evt.preventDefault();
            this.results_toggle();
          }
          return this.activate_field();
        }
      }
    };

    Chosen.prototype.container_mouseup = function(evt) {
      if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
        return this.results_reset(evt);
      }
    };

    Chosen.prototype.search_results_mousewheel = function(evt) {
      var delta;
      if (evt.originalEvent) {
        delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
      }
      if (delta != null) {
        evt.preventDefault();
        if (evt.type === 'DOMMouseScroll') {
          delta = delta * 40;
        }
        return this.search_results.scrollTop(delta + this.search_results.scrollTop());
      }
    };

    Chosen.prototype.blur_test = function(evt) {
      if (!this.active_field && this.container.hasClass("chzn-container-active")) {
        return this.close_field();
      }
    };

    Chosen.prototype.close_field = function() {
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
      this.active_field = false;
      this.results_hide();
      this.container.removeClass("chzn-container-active");
      this.clear_backstroke();
      this.show_search_field_default();
      return this.search_field_scale();
    };

    Chosen.prototype.activate_field = function() {
      this.container.addClass("chzn-container-active");
      this.active_field = true;
      this.search_field.val(this.search_field.val());
      return this.search_field.focus();
    };

    Chosen.prototype.test_active_click = function(evt) {
      var active_container;
      active_container = $(evt.target).closest('.chzn-container');
      if (active_container.length && this.container[0] === active_container[0]) {
        return this.active_field = true;
      } else {
        return this.close_field();
      }
    };

    Chosen.prototype.results_build = function() {
      this.parsing = true;
      this.selected_option_count = null;
      this.results_data = SelectParser.select_to_array(this.form_field);
      if (this.is_multiple) {
        this.search_choices.find("li.search-choice").remove();
      } else if (!this.is_multiple) {
        this.single_set_selected_text();
        if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
          this.search_field[0].readOnly = true;
          this.container.addClass("chzn-container-single-nosearch");
        } else {
          this.search_field[0].readOnly = false;
          this.container.removeClass("chzn-container-single-nosearch");
        }
      }
      this.update_results_content(this.results_option_build({
        first: true
      }));
      this.search_field_disabled();
      this.show_search_field_default();
      this.search_field_scale();
      return this.parsing = false;
    };

    Chosen.prototype.result_do_highlight = function(el) {
      var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
      if (el.length) {
        this.result_clear_highlight();
        this.result_highlight = el;
        this.result_highlight.addClass("highlighted");
        maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
        visible_top = this.search_results.scrollTop();
        visible_bottom = maxHeight + visible_top;
        high_top = this.result_highlight.position().top + this.search_results.scrollTop();
        high_bottom = high_top + this.result_highlight.outerHeight();
        if (high_bottom >= visible_bottom) {
          return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
        } else if (high_top < visible_top) {
          return this.search_results.scrollTop(high_top);
        }
      }
    };

    Chosen.prototype.result_clear_highlight = function() {
      if (this.result_highlight) {
        this.result_highlight.removeClass("highlighted");
      }
      return this.result_highlight = null;
    };

    Chosen.prototype.results_show = function() {
      if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
        this.form_field_jq.trigger("liszt:maxselected", {
          chosen: this
        });
        return false;
      }
      this.container.addClass("chzn-with-drop");
      this.results_showing = true;
      this.search_field.focus();
      this.search_field.val(this.search_field.val());
      this.winnow_results();
      return this.form_field_jq.trigger("liszt:showing_dropdown", {
        chosen: this
      });
    };

    Chosen.prototype.update_results_content = function(content) {
      return this.search_results.html(content);
    };

    Chosen.prototype.results_hide = function() {
      if (this.results_showing) {
        this.result_clear_highlight();
        this.container.removeClass("chzn-with-drop");
        this.form_field_jq.trigger("liszt:hiding_dropdown", {
          chosen: this
        });
      }
      return this.results_showing = false;
    };

    Chosen.prototype.set_tab_index = function(el) {
      var ti;
      if (this.form_field.tabIndex) {
        ti = this.form_field.tabIndex;
        this.form_field.tabIndex = -1;
        return this.search_field[0].tabIndex = ti;
      }
    };

    Chosen.prototype.set_label_behavior = function() {
      var _this = this;
      this.form_field_label = this.form_field_jq.parents("label");
      if (!this.form_field_label.length && this.form_field.id.length) {
        this.form_field_label = $("label[for='" + this.form_field.id + "']");
      }
      if (this.form_field_label.length > 0) {
        return this.form_field_label.bind('click.chosen', function(evt) {
          if (_this.is_multiple) {
            return _this.container_mousedown(evt);
          } else {
            return _this.activate_field();
          }
        });
      }
    };

    Chosen.prototype.show_search_field_default = function() {
      if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
        this.search_field.val(this.default_text);
        return this.search_field.addClass("default");
      } else {
        this.search_field.val("");
        return this.search_field.removeClass("default");
      }
    };

    Chosen.prototype.search_results_mouseup = function(evt) {
      var target;
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
      if (target.length) {
        this.result_highlight = target;
        this.result_select(evt);
        return this.search_field.focus();
      }
    };

    Chosen.prototype.search_results_mouseover = function(evt) {
      var target;
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
      if (target) {
        return this.result_do_highlight(target);
      }
    };

    Chosen.prototype.search_results_mouseout = function(evt) {
      if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
        return this.result_clear_highlight();
      }
    };

    Chosen.prototype.choice_build = function(item) {
      var choice, close_link,
        _this = this;
      choice = $('<li />', {
        "class": "search-choice"
      }).html("<span>" + (this.choice_label(item)) + "</span>");
      if (item.disabled) {
        choice.addClass('search-choice-disabled');
      } else {
        close_link = $('<a />', {
          "class": 'search-choice-close',
          'data-option-array-index': item.array_index
        });
        close_link.bind('click.chosen', function(evt) {
          return _this.choice_destroy_link_click(evt);
        });
        choice.append(close_link);
      }
      return this.search_container.before(choice);
    };

    Chosen.prototype.choice_destroy_link_click = function(evt) {
      evt.preventDefault();
      evt.stopPropagation();
      if (!this.is_disabled) {
        return this.choice_destroy($(evt.target));
      }
    };

    Chosen.prototype.choice_destroy = function(link) {
      if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
        this.show_search_field_default();
        if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
          this.results_hide();
        }
        link.parents('li').first().remove();
        return this.search_field_scale();
      }
    };

    Chosen.prototype.results_reset = function() {
      this.reset_single_select_options();
      this.form_field.options[0].selected = true;
      this.single_set_selected_text();
      this.show_search_field_default();
      this.results_reset_cleanup();
      this.form_field_jq.trigger("change");
      if (this.active_field) {
        return this.results_hide();
      }
    };

    Chosen.prototype.results_reset_cleanup = function() {
      this.current_selectedIndex = this.form_field.selectedIndex;
      return this.selected_item.find("abbr").remove();
    };

    Chosen.prototype.result_select = function(evt) {
      /*<JUI>*/
      /* Original:
      var high, item, selected_index;
      */
      var group, high, high_id, item, option, position, value;
      /*</JUI>*/

      if (this.result_highlight) {
        high = this.result_highlight;
        this.result_clear_highlight();
        if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
          this.form_field_jq.trigger("liszt:maxselected", {
            chosen: this
          });
          return false;
        }
        if (this.is_multiple) {
          high.removeClass("active-result");
        } else {
          this.reset_single_select_options();
        }
        high.addClass("result-selected");
        item = this.results_data[high[0].getAttribute("data-option-array-index")];
        item.selected = true;
        this.form_field.options[item.options_index].selected = true;
        this.selected_option_count = null;
        if (this.is_multiple) {
          this.choice_build(item);
        } else {
          this.single_set_selected_text(this.choice_label(item));
        }
        if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
          this.results_hide();
        }
        this.show_search_field_default();
        if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
          this.form_field_jq.trigger("change", {
            'selected': this.form_field.options[item.options_index].value
          });
        }
        this.current_selectedIndex = this.form_field.selectedIndex;
        evt.preventDefault();
        return this.search_field_scale();
      }
      /*<JUI>*/
      /* Original: not exist */
      else if ((!this.is_multiple) && this.allow_custom_value) {
          value = this.search_field.val();
          group = this.add_unique_custom_group();
          option = $('<option value="' + value + '">' + value + '</option>');
          group.append(option);
          this.form_field_jq.append(group);
          this.form_field.options[this.form_field.options.length - 1].selected = true;
          if (!evt.metaKey) {
            this.results_hide();
          }
          return this.results_build();
      }
      /*</JUI>*/
    };

    /*<JUI>*/
    /* Original: not exist */
    Chosen.prototype.find_custom_group = function() {
        var found, group, _i, _len, _ref;
        _ref = $('optgroup', this.form_field);
        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
          group = _ref[_i];
          if (group.getAttribute('label') === this.custom_group_text) {
            found = group;
          }
        }
        return found;
    };

    Chosen.prototype.add_unique_custom_group = function() {
        var group;
        group = this.find_custom_group();
        if (!group) {
          group = $('<optgroup label="' + this.custom_group_text + '"></optgroup>');
        }
        return $(group);
    };
    /*</JUI>*/

    Chosen.prototype.single_set_selected_text = function(text) {
      if (text == null) {
        text = this.default_text;
      }
      if (text === this.default_text) {
        this.selected_item.addClass("chzn-default");
      } else {
        this.single_deselect_control_build();
        this.selected_item.removeClass("chzn-default");
      }
      return this.selected_item.find("span").html(text);
    };

    Chosen.prototype.result_deselect = function(pos) {
      var result_data;
      result_data = this.results_data[pos];
      if (!this.form_field.options[result_data.options_index].disabled) {
        result_data.selected = false;
        this.form_field.options[result_data.options_index].selected = false;
        this.selected_option_count = null;
        this.result_clear_highlight();
        if (this.results_showing) {
          this.winnow_results();
        }
        this.form_field_jq.trigger("change", {
          deselected: this.form_field.options[result_data.options_index].value
        });
        this.search_field_scale();
        return true;
      } else {
        return false;
      }
    };

    Chosen.prototype.single_deselect_control_build = function() {
      if (!this.allow_single_deselect) {
        return;
      }
      if (!this.selected_item.find("abbr").length) {
        this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
      }
      return this.selected_item.addClass("chzn-single-with-deselect");
    };

    Chosen.prototype.get_search_text = function() {
      return $('<div/>').text($.trim(this.search_field.val())).html();
    };

    Chosen.prototype.winnow_results_set_highlight = function() {
      var do_high, selected_results;
      selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
      do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
      if (do_high != null) {
        return this.result_do_highlight(do_high);
      }
    };

    Chosen.prototype.no_results = function(terms) {
      var no_results_html;
      no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
      no_results_html.find("span").first().html(terms);
      this.search_results.append(no_results_html);
      return this.form_field_jq.trigger("liszt:no_results", {
        chosen: this
      });
    };

    Chosen.prototype.no_results_clear = function() {
      return this.search_results.find(".no-results").remove();
    };

    Chosen.prototype.keydown_arrow = function() {
      var next_sib;
      if (this.results_showing && this.result_highlight) {
        next_sib = this.result_highlight.nextAll("li.active-result").first();
        if (next_sib) {
          return this.result_do_highlight(next_sib);
        }
      } else {
        return this.results_show();
      }
    };

    Chosen.prototype.keyup_arrow = function() {
      var prev_sibs;
      if (!this.results_showing && !this.is_multiple) {
        return this.results_show();
      } else if (this.result_highlight) {
        prev_sibs = this.result_highlight.prevAll("li.active-result");
        if (prev_sibs.length) {
          return this.result_do_highlight(prev_sibs.first());
        } else {
          if (this.choices_count() > 0) {
            this.results_hide();
          }
          return this.result_clear_highlight();
        }
      }
    };

    Chosen.prototype.keydown_backstroke = function() {
      var next_available_destroy;
      if (this.pending_backstroke) {
        this.choice_destroy(this.pending_backstroke.find("a").first());
        return this.clear_backstroke();
      } else {
        next_available_destroy = this.search_container.siblings("li.search-choice").last();
        if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
          this.pending_backstroke = next_available_destroy;
          if (this.single_backstroke_delete) {
            return this.keydown_backstroke();
          } else {
            return this.pending_backstroke.addClass("search-choice-focus");
          }
        }
      }
    };

    Chosen.prototype.clear_backstroke = function() {
      if (this.pending_backstroke) {
        this.pending_backstroke.removeClass("search-choice-focus");
      }
      return this.pending_backstroke = null;
    };

    Chosen.prototype.keydown_checker = function(evt) {
      var stroke, _ref1;
      stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
      this.search_field_scale();
      if (stroke !== 8 && this.pending_backstroke) {
        this.clear_backstroke();
      }
      switch (stroke) {
        case 8:
          this.backstroke_length = this.search_field.val().length;
          break;
        case 9:
          if (this.results_showing && !this.is_multiple) {
            this.result_select(evt);
          }
          this.mouse_on_container = false;
          break;
        case 13:
          if (this.results_showing) {
            evt.preventDefault();
          }
          break;
        case 32:
          if (this.disable_search) {
            evt.preventDefault();
          }
          break;
        case 38:
          evt.preventDefault();
          this.keyup_arrow();
          break;
        case 40:
          evt.preventDefault();
          this.keydown_arrow();
          break;
      }
    };

    Chosen.prototype.search_field_scale = function() {
      var div, f_width, h, style, style_block, styles, w, _i, _len;
      if (this.is_multiple) {
        h = 0;
        w = 0;
        style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
        styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
        for (_i = 0, _len = styles.length; _i < _len; _i++) {
          style = styles[_i];
          style_block += style + ":" + this.search_field.css(style) + ";";
        }
        div = $('<div />', {
          'style': style_block
        });
        div.text(this.search_field.val());
        $('body').append(div);
        w = div.width() + 25;
        div.remove();
        f_width = this.container.outerWidth();
        if (w > f_width - 10) {
          w = f_width - 10;
        }
        return this.search_field.css({
          'width': w + 'px'
        });
      }
    };

    return Chosen;

  })(AbstractChosen);

}).call(this);
jui/js/jquery.autocomplete.js000064400000103003152177723720012336 0ustar00/**
*  Ajax Autocomplete for jQuery, version 1.4.7
*  (c) 2017 Tomas Kirda
*
*  Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
*  For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
*/

/*jslint  browser: true, white: true, single: true, this: true, multivar: true */
/*global define, window, document, jQuery, exports, require */

// Expose plugin as an AMD module if AMD loader is present:
(function (factory) {
    "use strict";
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else if (typeof exports === 'object' && typeof require === 'function') {
        // Browserify
        factory(require('jquery'));
    } else {
        // Browser globals
        factory(jQuery);
    }
}(function ($) {
    'use strict';

    var
        utils = (function () {
            return {
                escapeRegExChars: function (value) {
                    return value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
                },
                createNode: function (containerClass) {
                    var div = document.createElement('div');
                    div.className = containerClass;
                    div.style.position = 'absolute';
                    div.style.display = 'none';
                    return div;
                }
            };
        }()),

        keys = {
            ESC: 27,
            TAB: 9,
            RETURN: 13,
            LEFT: 37,
            UP: 38,
            RIGHT: 39,
            DOWN: 40
        },

        noop = $.noop;

    function Autocomplete(el, options) {
        var that = this;

        // Shared variables:
        that.element = el;
        that.el = $(el);
        that.suggestions = [];
        that.badQueries = [];
        that.selectedIndex = -1;
        that.currentValue = that.element.value;
        that.timeoutId = null;
        that.cachedResponse = {};
        that.onChangeTimeout = null;
        that.onChange = null;
        that.isLocal = false;
        that.suggestionsContainer = null;
        that.noSuggestionsContainer = null;
        that.options = $.extend({}, Autocomplete.defaults, options);
        that.classes = {
            selected: 'autocomplete-selected',
            suggestion: 'autocomplete-suggestion'
        };
        that.hint = null;
        that.hintValue = '';
        that.selection = null;

        // Initialize and set options:
        that.initialize();
        that.setOptions(options);
    }

    Autocomplete.utils = utils;

    $.Autocomplete = Autocomplete;

    Autocomplete.defaults = {
            ajaxSettings: {},
            autoSelectFirst: false,
            appendTo: 'body',
            serviceUrl: null,
            lookup: null,
            onSelect: null,
            width: 'auto',
            minChars: 1,
            maxHeight: 300,
            deferRequestBy: 0,
            params: {},
            formatResult: _formatResult,
            formatGroup: _formatGroup,
            delimiter: null,
            zIndex: 9999,
            type: 'GET',
            noCache: false,
            onSearchStart: noop,
            onSearchComplete: noop,
            onSearchError: noop,
            preserveInput: false,
            containerClass: 'autocomplete-suggestions',
            tabDisabled: false,
            dataType: 'text',
            currentRequest: null,
            triggerSelectOnValidInput: true,
            preventBadQueries: true,
            lookupFilter: _lookupFilter,
            paramName: 'query',
            transformResult: _transformResult,
            showNoSuggestionNotice: false,
            noSuggestionNotice: 'No results',
            orientation: 'bottom',
            forceFixPosition: false
    };

    function _lookupFilter(suggestion, originalQuery, queryLowerCase) {
        return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;
    };

    function _transformResult(response) {
        return typeof response === 'string' ? $.parseJSON(response) : response;
    };

    function _formatResult(suggestion, currentValue) {
        // Do not replace anything if the current value is empty
        if (!currentValue) {
            return suggestion.value;
        }

        var pattern = '(' + utils.escapeRegExChars(currentValue) + ')';

        return suggestion.value
            .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
            .replace(/&/g, '&amp;')
            .replace(/</g, '&lt;')
            .replace(/>/g, '&gt;')
            .replace(/"/g, '&quot;')
            .replace(/&lt;(\/?strong)&gt;/g, '<$1>');
    };

    function _formatGroup(suggestion, category) {
        return '<div class="autocomplete-group">' + category + '</div>';
    };

    Autocomplete.prototype = {

        initialize: function () {
            var that = this,
                suggestionSelector = '.' + that.classes.suggestion,
                selected = that.classes.selected,
                options = that.options,
                container;

            // Remove autocomplete attribute to prevent native suggestions:
            that.element.setAttribute('autocomplete', 'off');

            // html() deals with many types: htmlString or Element or Array or jQuery
            that.noSuggestionsContainer = $('<div class="autocomplete-no-suggestion"></div>')
                                          .html(this.options.noSuggestionNotice).get(0);

            that.suggestionsContainer = Autocomplete.utils.createNode(options.containerClass);

            container = $(that.suggestionsContainer);

            container.appendTo(options.appendTo || 'body');

            // Only set width if it was provided:
            if (options.width !== 'auto') {
                container.css('width', options.width);
            }

            // Listen for mouse over event on suggestions list:
            container.on('mouseover.autocomplete', suggestionSelector, function () {
                that.activate($(this).data('index'));
            });

            // Deselect active element when mouse leaves suggestions container:
            container.on('mouseout.autocomplete', function () {
                that.selectedIndex = -1;
                container.children('.' + selected).removeClass(selected);
            });

            // Listen for click event on suggestions list:
            container.on('click.autocomplete', suggestionSelector, function () {
                that.select($(this).data('index'));
            });

            container.on('click.autocomplete', function () {
                clearTimeout(that.blurTimeoutId);
            })

            that.fixPositionCapture = function () {
                if (that.visible) {
                    that.fixPosition();
                }
            };

            $(window).on('resize.autocomplete', that.fixPositionCapture);

            that.el.on('keydown.autocomplete', function (e) { that.onKeyPress(e); });
            that.el.on('keyup.autocomplete', function (e) { that.onKeyUp(e); });
            that.el.on('blur.autocomplete', function () { that.onBlur(); });
            that.el.on('focus.autocomplete', function () { that.onFocus(); });
            that.el.on('change.autocomplete', function (e) { that.onKeyUp(e); });
            that.el.on('input.autocomplete', function (e) { that.onKeyUp(e); });
        },

        onFocus: function () {
            var that = this;

            that.fixPosition();

            if (that.el.val().length >= that.options.minChars) {
                that.onValueChange();
            }
        },

        onBlur: function () {
            var that = this;

            // If user clicked on a suggestion, hide() will
            // be canceled, otherwise close suggestions
            that.blurTimeoutId = setTimeout(function () {
                that.hide();
            }, 200);
        },

        abortAjax: function () {
            var that = this;
            if (that.currentRequest) {
                that.currentRequest.abort();
                that.currentRequest = null;
            }
        },

        setOptions: function (suppliedOptions) {
            var that = this,
                options = $.extend({}, that.options, suppliedOptions);

            that.isLocal = Array.isArray(options.lookup);

            if (that.isLocal) {
                options.lookup = that.verifySuggestionsFormat(options.lookup);
            }

            options.orientation = that.validateOrientation(options.orientation, 'bottom');

            // Adjust height, width and z-index:
            $(that.suggestionsContainer).css({
                'max-height': options.maxHeight + 'px',
                'width': options.width + 'px',
                'z-index': options.zIndex
            });

            this.options = options;            
        },


        clearCache: function () {
            this.cachedResponse = {};
            this.badQueries = [];
        },

        clear: function () {
            this.clearCache();
            this.currentValue = '';
            this.suggestions = [];
        },

        disable: function () {
            var that = this;
            that.disabled = true;
            clearTimeout(that.onChangeTimeout);
            that.abortAjax();
        },

        enable: function () {
            this.disabled = false;
        },

        fixPosition: function () {
            // Use only when container has already its content

            var that = this,
                $container = $(that.suggestionsContainer),
                containerParent = $container.parent().get(0);
            // Fix position automatically when appended to body.
            // In other cases force parameter must be given.
            if (containerParent !== document.body && !that.options.forceFixPosition) {
                return;
            }

            // Choose orientation
            var orientation = that.options.orientation,
                containerHeight = $container.outerHeight(),
                height = that.el.outerHeight(),
                offset = that.el.offset(),
                styles = { 'top': offset.top, 'left': offset.left };

            if (orientation === 'auto') {
                var viewPortHeight = $(window).height(),
                    scrollTop = $(window).scrollTop(),
                    topOverflow = -scrollTop + offset.top - containerHeight,
                    bottomOverflow = scrollTop + viewPortHeight - (offset.top + height + containerHeight);

                orientation = (Math.max(topOverflow, bottomOverflow) === topOverflow) ? 'top' : 'bottom';
            }

            if (orientation === 'top') {
                styles.top += -containerHeight;
            } else {
                styles.top += height;
            }

            // If container is not positioned to body,
            // correct its position using offset parent offset
            if(containerParent !== document.body) {
                var opacity = $container.css('opacity'),
                    parentOffsetDiff;

                    if (!that.visible){
                        $container.css('opacity', 0).show();
                    }

                parentOffsetDiff = $container.offsetParent().offset();
                styles.top -= parentOffsetDiff.top;
                styles.top += containerParent.scrollTop;
                styles.left -= parentOffsetDiff.left;

                if (!that.visible){
                    $container.css('opacity', opacity).hide();
                }
            }

            if (that.options.width === 'auto') {
                styles.width = that.el.outerWidth() + 'px';
            }

            $container.css(styles);
        },

        isCursorAtEnd: function () {
            var that = this,
                valLength = that.el.val().length,
                selectionStart = that.element.selectionStart,
                range;

            if (typeof selectionStart === 'number') {
                return selectionStart === valLength;
            }
            if (document.selection) {
                range = document.selection.createRange();
                range.moveStart('character', -valLength);
                return valLength === range.text.length;
            }
            return true;
        },

        onKeyPress: function (e) {
            var that = this;

            // If suggestions are hidden and user presses arrow down, display suggestions:
            if (!that.disabled && !that.visible && e.which === keys.DOWN && that.currentValue) {
                that.suggest();
                return;
            }

            if (that.disabled || !that.visible) {
                return;
            }

            switch (e.which) {
                case keys.ESC:
                    that.el.val(that.currentValue);
                    that.hide();
                    break;
                case keys.RIGHT:
                    if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
                        that.selectHint();
                        break;
                    }
                    return;
                case keys.TAB:
                    if (that.hint && that.options.onHint) {
                        that.selectHint();
                        return;
                    }
                    if (that.selectedIndex === -1) {
                        that.hide();
                        return;
                    }
                    that.select(that.selectedIndex);
                    if (that.options.tabDisabled === false) {
                        return;
                    }
                    break;
                case keys.RETURN:
                    if (that.selectedIndex === -1) {
                        that.hide();
                        return;
                    }
                    that.select(that.selectedIndex);
                    break;
                case keys.UP:
                    that.moveUp();
                    break;
                case keys.DOWN:
                    that.moveDown();
                    break;
                default:
                    return;
            }

            // Cancel event if function did not return:
            e.stopImmediatePropagation();
            e.preventDefault();
        },

        onKeyUp: function (e) {
            var that = this;

            if (that.disabled) {
                return;
            }

            switch (e.which) {
                case keys.UP:
                case keys.DOWN:
                    return;
            }

            clearTimeout(that.onChangeTimeout);

            if (that.currentValue !== that.el.val()) {
                that.findBestHint();
                if (that.options.deferRequestBy > 0) {
                    // Defer lookup in case when value changes very quickly:
                    that.onChangeTimeout = setTimeout(function () {
                        that.onValueChange();
                    }, that.options.deferRequestBy);
                } else {
                    that.onValueChange();
                }
            }
        },

        onValueChange: function () {
            if (this.ignoreValueChange) {
                this.ignoreValueChange = false;
                return;
            }

            var that = this,
                options = that.options,
                value = that.el.val(),
                query = that.getQuery(value);

            if (that.selection && that.currentValue !== query) {
                that.selection = null;
                (options.onInvalidateSelection || $.noop).call(that.element);
            }

            clearTimeout(that.onChangeTimeout);
            that.currentValue = value;
            that.selectedIndex = -1;

            // Check existing suggestion for the match before proceeding:
            if (options.triggerSelectOnValidInput && that.isExactMatch(query)) {
                that.select(0);
                return;
            }

            if (query.length < options.minChars) {
                that.hide();
            } else {
                that.getSuggestions(query);
            }
        },

        isExactMatch: function (query) {
            var suggestions = this.suggestions;

            return (suggestions.length === 1 && suggestions[0].value.toLowerCase() === query.toLowerCase());
        },

        getQuery: function (value) {
            var delimiter = this.options.delimiter,
                parts;

            if (!delimiter) {
                return value;
            }
            parts = value.split(delimiter);
            return $.trim(parts[parts.length - 1]);
        },

        getSuggestionsLocal: function (query) {
            var that = this,
                options = that.options,
                queryLowerCase = query.toLowerCase(),
                filter = options.lookupFilter,
                limit = parseInt(options.lookupLimit, 10),
                data;

            data = {
                suggestions: $.grep(options.lookup, function (suggestion) {
                    return filter(suggestion, query, queryLowerCase);
                })
            };

            if (limit && data.suggestions.length > limit) {
                data.suggestions = data.suggestions.slice(0, limit);
            }

            return data;
        },

        getSuggestions: function (q) {
            var response,
                that = this,
                options = that.options,
                serviceUrl = options.serviceUrl,
                params,
                cacheKey,
                ajaxSettings;

            options.params[options.paramName] = q;

            if (options.onSearchStart.call(that.element, options.params) === false) {
                return;
            }

            params = options.ignoreParams ? null : options.params;

            if ($.isFunction(options.lookup)){
                options.lookup(q, function (data) {
                    that.suggestions = data.suggestions;
                    that.suggest();
                    options.onSearchComplete.call(that.element, q, data.suggestions);
                });
                return;
            }

            if (that.isLocal) {
                response = that.getSuggestionsLocal(q);
            } else {
                if ($.isFunction(serviceUrl)) {
                    serviceUrl = serviceUrl.call(that.element, q);
                }
                cacheKey = serviceUrl + '?' + $.param(params || {});
                response = that.cachedResponse[cacheKey];
            }

            if (response && Array.isArray(response.suggestions)) {
                that.suggestions = response.suggestions;
                that.suggest();
                options.onSearchComplete.call(that.element, q, response.suggestions);
            } else if (!that.isBadQuery(q)) {
                that.abortAjax();

                ajaxSettings = {
                    url: serviceUrl,
                    data: params,
                    type: options.type,
                    dataType: options.dataType
                };

                $.extend(ajaxSettings, options.ajaxSettings);

                that.currentRequest = $.ajax(ajaxSettings).done(function (data) {
                    var result;
                    that.currentRequest = null;
                    result = options.transformResult(data, q);
                    that.processResponse(result, q, cacheKey);
                    options.onSearchComplete.call(that.element, q, result.suggestions);
                }).fail(function (jqXHR, textStatus, errorThrown) {
                    options.onSearchError.call(that.element, q, jqXHR, textStatus, errorThrown);
                });
            } else {
                options.onSearchComplete.call(that.element, q, []);
            }
        },

        isBadQuery: function (q) {
            if (!this.options.preventBadQueries){
                return false;
            }

            var badQueries = this.badQueries,
                i = badQueries.length;

            while (i--) {
                if (q.indexOf(badQueries[i]) === 0) {
                    return true;
                }
            }

            return false;
        },

        hide: function () {
            var that = this,
                container = $(that.suggestionsContainer);

            if ($.isFunction(that.options.onHide) && that.visible) {
                that.options.onHide.call(that.element, container);
            }

            that.visible = false;
            that.selectedIndex = -1;
            clearTimeout(that.onChangeTimeout);
            $(that.suggestionsContainer).hide();
            that.signalHint(null);
        },

        suggest: function () {
            if (!this.suggestions.length) {
                if (this.options.showNoSuggestionNotice) {
                    this.noSuggestions();
                } else {
                    this.hide();
                }
                return;
            }

            var that = this,
                options = that.options,
                groupBy = options.groupBy,
                formatResult = options.formatResult,
                value = that.getQuery(that.currentValue),
                className = that.classes.suggestion,
                classSelected = that.classes.selected,
                container = $(that.suggestionsContainer),
                noSuggestionsContainer = $(that.noSuggestionsContainer),
                beforeRender = options.beforeRender,
                html = '',
                category,
                formatGroup = function (suggestion, index) {
                        var currentCategory = suggestion.data[groupBy];

                        if (category === currentCategory){
                            return '';
                        }

                        category = currentCategory;

                        return options.formatGroup(suggestion, category);
                    };

            if (options.triggerSelectOnValidInput && that.isExactMatch(value)) {
                that.select(0);
                return;
            }

            // Build suggestions inner HTML:
            $.each(that.suggestions, function (i, suggestion) {
                if (groupBy){
                    html += formatGroup(suggestion, value, i);
                }

                html += '<div class="' + className + '" data-index="' + i + '">' + formatResult(suggestion, value, i) + '</div>';
            });

            this.adjustContainerWidth();

            noSuggestionsContainer.detach();
            container.html(html);

            if ($.isFunction(beforeRender)) {
                beforeRender.call(that.element, container, that.suggestions);
            }

            that.fixPosition();
            container.show();

            // Select first value by default:
            if (options.autoSelectFirst) {
                that.selectedIndex = 0;
                container.scrollTop(0);
                container.children('.' + className).first().addClass(classSelected);
            }

            that.visible = true;
            that.findBestHint();
        },

        noSuggestions: function() {
             var that = this,
                 beforeRender = that.options.beforeRender,
                 container = $(that.suggestionsContainer),
                 noSuggestionsContainer = $(that.noSuggestionsContainer);

            this.adjustContainerWidth();

            // Some explicit steps. Be careful here as it easy to get
            // noSuggestionsContainer removed from DOM if not detached properly.
            noSuggestionsContainer.detach();

            // clean suggestions if any
            container.empty();
            container.append(noSuggestionsContainer);

            if ($.isFunction(beforeRender)) {
                beforeRender.call(that.element, container, that.suggestions);
            }

            that.fixPosition();

            container.show();
            that.visible = true;
        },

        adjustContainerWidth: function() {
            var that = this,
                options = that.options,
                width,
                container = $(that.suggestionsContainer);

            // If width is auto, adjust width before displaying suggestions,
            // because if instance was created before input had width, it will be zero.
            // Also it adjusts if input width has changed.
            if (options.width === 'auto') {
                width = that.el.outerWidth();
                container.css('width', width > 0 ? width : 300);
            } else if(options.width === 'flex') {
                // Trust the source! Unset the width property so it will be the max length
                // the containing elements.
                container.css('width', '');
            }
        },

        findBestHint: function () {
            var that = this,
                value = that.el.val().toLowerCase(),
                bestMatch = null;

            if (!value) {
                return;
            }

            $.each(that.suggestions, function (i, suggestion) {
                var foundMatch = suggestion.value.toLowerCase().indexOf(value) === 0;
                if (foundMatch) {
                    bestMatch = suggestion;
                }
                return !foundMatch;
            });

            that.signalHint(bestMatch);
        },

        signalHint: function (suggestion) {
            var hintValue = '',
                that = this;
            if (suggestion) {
                hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
            }
            if (that.hintValue !== hintValue) {
                that.hintValue = hintValue;
                that.hint = suggestion;
                (this.options.onHint || $.noop)(hintValue);
            }
        },

        verifySuggestionsFormat: function (suggestions) {
            // If suggestions is string array, convert them to supported format:
            if (suggestions.length && typeof suggestions[0] === 'string') {
                return $.map(suggestions, function (value) {
                    return { value: value, data: null };
                });
            }

            return suggestions;
        },

        validateOrientation: function(orientation, fallback) {
            orientation = $.trim(orientation || '').toLowerCase();

            if($.inArray(orientation, ['auto', 'bottom', 'top']) === -1){
                orientation = fallback;
            }

            return orientation;
        },

        processResponse: function (result, originalQuery, cacheKey) {
            var that = this,
                options = that.options;

            result.suggestions = that.verifySuggestionsFormat(result.suggestions);

            // Cache results if cache is not disabled:
            if (!options.noCache) {
                that.cachedResponse[cacheKey] = result;
                if (options.preventBadQueries && !result.suggestions.length) {
                    that.badQueries.push(originalQuery);
                }
            }

            // Return if originalQuery is not matching current query:
            if (originalQuery !== that.getQuery(that.currentValue)) {
                return;
            }

            that.suggestions = result.suggestions;
            that.suggest();
        },

        activate: function (index) {
            var that = this,
                activeItem,
                selected = that.classes.selected,
                container = $(that.suggestionsContainer),
                children = container.find('.' + that.classes.suggestion);

            container.find('.' + selected).removeClass(selected);

            that.selectedIndex = index;

            if (that.selectedIndex !== -1 && children.length > that.selectedIndex) {
                activeItem = children.get(that.selectedIndex);
                $(activeItem).addClass(selected);
                return activeItem;
            }

            return null;
        },

        selectHint: function () {
            var that = this,
                i = $.inArray(that.hint, that.suggestions);

            that.select(i);
        },

        select: function (i) {
            var that = this;
            that.hide();
            that.onSelect(i);
        },

        moveUp: function () {
            var that = this;

            if (that.selectedIndex === -1) {
                return;
            }

            if (that.selectedIndex === 0) {
                $(that.suggestionsContainer).children('.' + that.classes.suggestion).first().removeClass(that.classes.selected);
                that.selectedIndex = -1;
                that.ignoreValueChange = false;
                that.el.val(that.currentValue);
                that.findBestHint();
                return;
            }

            that.adjustScroll(that.selectedIndex - 1);
        },

        moveDown: function () {
            var that = this;

            if (that.selectedIndex === (that.suggestions.length - 1)) {
                return;
            }

            that.adjustScroll(that.selectedIndex + 1);
        },

        adjustScroll: function (index) {
            var that = this,
                activeItem = that.activate(index);

            if (!activeItem) {
                return;
            }

            var offsetTop,
                upperBound,
                lowerBound,
                heightDelta = $(activeItem).outerHeight();

            offsetTop = activeItem.offsetTop;
            upperBound = $(that.suggestionsContainer).scrollTop();
            lowerBound = upperBound + that.options.maxHeight - heightDelta;

            if (offsetTop < upperBound) {
                $(that.suggestionsContainer).scrollTop(offsetTop);
            } else if (offsetTop > lowerBound) {
                $(that.suggestionsContainer).scrollTop(offsetTop - that.options.maxHeight + heightDelta);
            }

            if (!that.options.preserveInput) {
                // During onBlur event, browser will trigger "change" event,
                // because value has changed, to avoid side effect ignore,
                // that event, so that correct suggestion can be selected
                // when clicking on suggestion with a mouse
                that.ignoreValueChange = true;
                that.el.val(that.getValue(that.suggestions[index].value));
            }

            that.signalHint(null);
        },

        onSelect: function (index) {
            var that = this,
                onSelectCallback = that.options.onSelect,
                suggestion = that.suggestions[index];

            that.currentValue = that.getValue(suggestion.value);

            if (that.currentValue !== that.el.val() && !that.options.preserveInput) {
                that.el.val(that.currentValue);
            }

            that.signalHint(null);
            that.suggestions = [];
            that.selection = suggestion;

            if ($.isFunction(onSelectCallback)) {
                onSelectCallback.call(that.element, suggestion);
            }
        },

        getValue: function (value) {
            var that = this,
                delimiter = that.options.delimiter,
                currentValue,
                parts;

            if (!delimiter) {
                return value;
            }

            currentValue = that.currentValue;
            parts = currentValue.split(delimiter);

            if (parts.length === 1) {
                return value;
            }

            return currentValue.substr(0, currentValue.length - parts[parts.length - 1].length) + value;
        },

        dispose: function () {
            var that = this;
            that.el.off('.autocomplete').removeData('autocomplete');
            $(window).off('resize.autocomplete', that.fixPositionCapture);
            $(that.suggestionsContainer).remove();
        }
    };

    // Create chainable jQuery plugin:
    $.fn.devbridgeAutocomplete = function (options, args) {
        var dataKey = 'autocomplete';
        // If function invoked without argument return
        // instance of the first matched element:
        if (!arguments.length) {
            return this.first().data(dataKey);
        }

        return this.each(function () {
            var inputElement = $(this),
                instance = inputElement.data(dataKey);

            if (typeof options === 'string') {
                if (instance && typeof instance[options] === 'function') {
                    instance[options](args);
                }
            } else {
                // If instance already exists, destroy it:
                if (instance && instance.dispose) {
                    instance.dispose();
                }
                instance = new Autocomplete(this, options);
                inputElement.data(dataKey, instance);
            }
        });
    };

    // Don't overwrite if it already exists
    if (!$.fn.autocomplete) {
        $.fn.autocomplete = $.fn.devbridgeAutocomplete;
    }
}));
jui/js/treeselectmenu.jquery.js000064400000006662152177723720012676 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
jQuery(function($)
{
	var treeselectmenu = $('div#treeselectmenu').html();

	$('.treeselect li').each(function()
	{
		$li = $(this);
		$div = $li.find('div.treeselect-item:first');

		// Add icons
		$li.prepend('<span class="pull-left icon-"></span>');

		// Append clearfix
		$div.after('<div class="clearfix"></div>');

		if ($li.find('ul.treeselect-sub').length) {
			// Add classes to Expand/Collapse icons
			$li.find('span.icon-').addClass('treeselect-toggle icon-minus');

			// Append drop down menu in nodes
			$div.find('label:first').after(treeselectmenu);

			if (!$li.find('ul.treeselect-sub ul.treeselect-sub').length) {
				$li.find('div.treeselect-menu-expand').remove();
			}
		}
	});

	// Takes care of the Expand/Collapse of a node
	$('span.treeselect-toggle').click(function()
	{
		$i = $(this);

		// Take care of parent UL
		if ($i.parent().find('ul.treeselect-sub').is(':visible')) {
			$i.removeClass('icon-minus').addClass('icon-plus');
			$i.parent().find('ul.treeselect-sub').hide();
			$i.parent().find('ul.treeselect-sub i.treeselect-toggle').removeClass('icon-minus').addClass('icon-plus');
		} else {
			$i.removeClass('icon-plus').addClass('icon-minus');
			$i.parent().find('ul.treeselect-sub').show();
			$i.parent().find('ul.treeselect-sub i.treeselect-toggle').removeClass('icon-plus').addClass('icon-minus');
		}
	});

	// Takes care of the filtering
	$('#treeselectfilter').keyup(function()
	{
		var text = $(this).val().toLowerCase();
		var hidden = 0;
		$("#noresultsfound").hide();
		var $list_elements = $('.treeselect li');
		$list_elements.each(function()
		{
			if ($(this).text().toLowerCase().indexOf(text) == -1) {
				$(this).hide();
				hidden++;
			}
			else {
				$(this).show();
			}
		});
		if(hidden == $list_elements.length)
		{
			$("#noresultsfound").show();
		}
	});

	// Checks all checkboxes the tree
	$('#treeCheckAll').click(function()
	{
		$('.treeselect input').attr('checked', 'checked');
	});

	// Unchecks all checkboxes the tree
	$('#treeUncheckAll').click(function()
	{
		$('.treeselect input').attr('checked', false);
	});

	// Checks all checkboxes the tree
	$('#treeExpandAll').click(function()
	{
		$('ul.treeselect ul.treeselect-sub').show();
		$('ul.treeselect i.treeselect-toggle').removeClass('icon-plus').addClass('icon-minus');
	});

	// Unchecks all checkboxes the tree
	$('#treeCollapseAll').click(function()
	{
		$('ul.treeselect ul.treeselect-sub').hide();
		$('ul.treeselect i.treeselect-toggle').removeClass('icon-minus').addClass('icon-plus');
	});
	// Take care of children check/uncheck all
	$('a.checkall').click(function()
	{
		$(this).parents().eq(5).find('ul.treeselect-sub input').attr('checked', 'checked');
	});
	$('a.uncheckall').click(function()
	{
		$(this).parents().eq(5).find('ul.treeselect-sub input').attr('checked', false);
	});

	// Take care of children toggle all
	$('a.expandall').click(function()
	{
		var $parent = $(this).parents().eq(6);
		$parent.find('ul.treeselect-sub').show();
		$parent.find('ul.treeselect-sub i.treeselect-toggle').removeClass('icon-plus').addClass('icon-minus');
	});
	$('a.collapseall').click(function()
	{
		var $parent = $(this).parents().eq(6);
		$parent.find('li ul.treeselect-sub').hide();
		$parent.find('li i.treeselect-toggle').removeClass('icon-minus').addClass('icon-plus');
	});
});
jui/js/jquery.ui.sortable.js000064400000117007152177723720012075 0ustar00/*!
 * jQuery UI Sortable v1.9.2 - 2013-07-14
 *
 * http://jqueryui.com
 *
 * Copyright 2013 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/sortable/
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */

(function( $, undefined ) {

$.widget("ui.sortable", $.ui.mouse, {
	version: "1.9.2",
	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
	},
	_create: function() {

		var o = this.options;
		this.containerCache = {};
		this.element.addClass("ui-sortable");

		//Get the items
		this.refresh();

		//Let's determine if the items are being displayed horizontally
		this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;

		//Let's determine the parent's offset
		this.offset = this.element.offset();

		//Initialize mouse events for interaction
		this._mouseInit();

		//We're ready to go
		this.ready = true

	},

	_destroy: function() {
		this.element
			.removeClass("ui-sortable ui-sortable-disabled");
		this._mouseDestroy();

		for ( var i = this.items.length - 1; i >= 0; i-- )
			this.items[i].item.removeData(this.widgetName + "-item");

		return this;
	},

	_setOption: function(key, value){
		if ( key === "disabled" ) {
			this.options[ key ] = value;

			this.widget().toggleClass( "ui-sortable-disabled", !!value );
		} else {
			// Don't call widget base _setOption for disable as it adds ui-state-disabled class
			$.Widget.prototype._setOption.apply(this, arguments);
		}
	},

	_mouseCapture: function(event, overrideHandle) {
		var 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
		var currentItem = null, nodes = $(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) {
			var validHandle = false;

			$(this.options.handle, currentItem).find("*").andSelf().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 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) { // cursor option
			if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
			$('body').css("cursor", o.cursor);
		}

		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] != document && 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 (var 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) {

		//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) {
			var o = this.options, scrolled = false;
			if(this.scrollParent[0] != document && 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 - $(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(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(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 (var i = this.items.length - 1; i >= 0; i--) {

			//Cache variables and intersection, continue if no intersection
			var 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 form 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
			// beetween the outer and inner container.
			if (item.instance !== this.currentContainer) continue;

			if (itemElement != this.currentItem[0] //cannot intersect with itself
				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
				&&	!$.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
				&& (this.options.type == 'semi-dynamic' ? !$.contains(this.element[0], itemElement) : true)
				//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
			) {

				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;
			var cur = this.placeholder.offset();

			this.reverting = true;

			$(this.helper).animate({
				left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
				top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
			}, 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);
		var 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);
		var 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;

		var l = item.left,
			r = l + item.width,
			t = item.top,
			b = t + item.height;

		var dyClick = this.offset.click.top,
			dxClick = this.offset.click.left;

		var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;

		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') || $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
			isOverElementWidth = (this.options.axis === 'y') || $.ui.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 = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
			isOverRightHalf = $.ui.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.refreshPositions();
		return this;
	},

	_connectWith: function() {
		var options = this.options;
		return options.connectWith.constructor == String
			? [options.connectWith]
			: options.connectWith;
	},

	_getItemsAsjQuery: function(connected) {

		var items = [];
		var queries = [];
		var connectWith = this._connectWith();

		if(connectWith && connected) {
			for (var i = connectWith.length - 1; i >= 0; i--){
				var cur = $(connectWith[i]);
				for (var j = cur.length - 1; j >= 0; j--){
					var inst = $.data(cur[j], this.widgetName);
					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]);

		for (var i = queries.length - 1; i >= 0; i--){
			queries[i][0].each(function() {
				items.push(this);
			});
		};

		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 items = this.items;
		var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
		var connectWith = this._connectWith();

		if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down
			for (var i = connectWith.length - 1; i >= 0; i--){
				var cur = $(connectWith[i]);
				for (var j = cur.length - 1; j >= 0; j--){
					var inst = $.data(cur[j], this.widgetName);
					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 (var i = queries.length - 1; i >= 0; i--) {
			var targetData = queries[i][1];
			var _queries = queries[i][0];

			for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
				var 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) {

		//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();
		}

		for (var i = this.items.length - 1; i >= 0; i--){
			var 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;

			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;

			if (!fast) {
				item.width = t.outerWidth();
				item.height = t.outerHeight();
			}

			var 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 (var i = this.containers.length - 1; i >= 0; i--){
				var 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 o = that.options;

		if(!o.placeholder || o.placeholder.constructor == String) {
			var className = o.placeholder;
			o.placeholder = {
				element: function() {

					var el = $(document.createElement(that.currentItem[0].nodeName))
						.addClass(className || that.currentItem[0].className+" ui-sortable-placeholder")
						.removeClass("ui-sortable-helper")[0];

					if(!className)
						el.style.visibility = "hidden";

					return el;
				},
				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);

	},

	_contactContainers: function(event) {

		// get innermost container that intersects with item
		var innermostContainer = null, innermostIndex = null;


		for (var 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) {
			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
			var dist = 10000; var itemWithLeastDistance = null;
			var posProperty = this.containers[innermostIndex].floating ? 'left' : 'top';
			var sizeProperty = this.containers[innermostIndex].floating ? 'width' : 'height';
			var base = this.positionAbs[posProperty] + this.offset.click[posProperty];
			for (var 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;
				var cur = this.items[j].item.offset()[posProperty];
				var nearBottom = false;
				if(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){
					nearBottom = true;
					cur += this.items[j][sizeProperty];
				}

				if(Math.abs(cur - base) < dist) {
					dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
					this.direction = nearBottom ? "up": "down";
				}
			}

			if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled
				return;

			this.currentContainer = this.containers[innermostIndex];
			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));

			//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;
		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);

		if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
			$(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] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
			po.left += this.scrollParent.scrollLeft();
			po.top += this.scrollParent.scrollTop();
		}

		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie)) //Ugly IE fix
			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 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' ? document : window).width() - this.helperProportions.width - this.margins.left,
			($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
		];

		if(!(/^(document|window|parent)$/).test(o.containment)) {
			var ce = $(o.containment)[0];
			var co = $(o.containment).offset();
			var 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;
		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.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 o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.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] != document && this.scrollParent[0] != this.offsetParent[0])) {
			this.offset.relative = this._getRelativeOffset();
		}

		var pageX = event.pageX;
		var pageY = event.pageY;

		/*
		 * - 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) {
				var 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;

				var 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 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(var 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
		for (var i = this.containers.length - 1; i >= 0; i--){
			if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
			if(this.containers[i].containerCache.over) {
				delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
				this.containers[i].containerCache.over = 0;
			}
		}

		//Do what was originally in plugins
		if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
		if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index

		this.dragging = false;
		if(this.cancelHelperRemoval) {
			if(!noPropagation) {
				this._trigger("beforeStop", event, this._uiHash());
				for (var 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 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.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;

		if(!noPropagation) {
			for (var 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 true;

	},

	_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);jui/js/cms.js000064400000004176152177723720007114 0ustar00Joomla=window.Joomla||{},function(t,a){"use strict";Joomla.setcollapse=function(a,e,n){t.getElementById("collapse-"+e)||(t.getElementById("container-collapse").innerHTML='<div class="collapse fade" id="collapse-'+e+'"><iframe class="iframe" src="'+a+'" height="'+n+'" width="100%"></iframe></div>')},Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var e=this.length>>>0,n=Number(arguments[1])||0;for((n=n<0?Math.ceil(n):Math.floor(n))<0&&(n+=e);n<e;n++)if(n in this&&this[n]===a)return n;return-1}),window.jQuery&&function(h){function d(a,e){for(var n,t,o,i,r=!0,l=a.data("showon")||[],d=0,s=l.length;d<s;d++)o=(t=l[d]||{}).field,i=h('[name="'+o+'"], [name="'+o+'[]"]'),t.valid=0,i.each(function(){var a=h(this);if(-1!==["checkbox","radio"].indexOf(a.attr("type"))){if(!a.prop("checked"))return;n=a.val()}else null==(n=a.val())&&"select"==a.prop("tagName").toLowerCase()&&(n=[]);for(var e in"object"!=typeof n&&(n=JSON.parse('["'+n+'"]')),n)n.propertyIsEnumerable(e)&&("="==l[d].sign&&-1!==l[d].values.indexOf(n[e])&&(l[d].valid=1),"!="==l[d].sign&&-1===l[d].values.indexOf(n[e])&&(l[d].valid=1))}),""===t.op?0===t.valid&&(r=!1):("AND"===t.op&&t.valid+l[d-1].valid<2&&(r=!1,t.valid=0),"OR"===t.op&&0<t.valid+l[d-1].valid&&(r=!0,t.valid=1));if(a.is("option")){a.toggle(r),a.attr("disabled",!r);var f=a.parent();h("#"+f.attr("id")+"_chzn").length&&(f.trigger("liszt:updated"),f.trigger("chosen:updated"))}(e=e&&!a.hasClass("no-animation")&&!a.hasClass("no-animate")&&!a.find(".no-animation, .no-animate").length)?r?a.slideDown():a.slideUp():a.toggle(r)}function p(a){for(var r=h(a=a||t).find("[data-showon]"),l=0,e=r.length;l<e;l++)!function(){for(var a,e=h(r[l]),n=e.data("showon")||[],t=h(),o=0,i=n.length;o<i;o++)a=n[o].field,t=t.add(h('[name="'+a+'"], [name="'+a+'[]"]'));d(e),t.on("change keyup",function(){d(e,!0)})}()}h(t).ready(function(){p(),h(t).on("subform-row-add",function(a,e){for(var n,t,o=h(e),i=o.find("[data-showon]"),r=o.data("baseName"),l=o.data("group"),d=new RegExp("\\["+r+"\\]\\["+r+"X\\]","g"),s="["+r+"]["+l+"]",f=0,c=i.length;f<c;f++)t=(n=h(i[f])).attr("data-showon").replace(d,s),n.attr("data-showon",t);p(e)})})}(jQuery)}(document);
jui/js/jquery.searchtools.js000064400000025055152177723720012175 0ustar00(function ($, window, document, undefined) {

	// Create the defaults once
	var pluginName = "searchtools";

	var defaults = {
		// Form options
		formSelector            : '.js-stools-form',

		// Search
		searchFieldSelector     : '.js-stools-field-search',
		clearBtnSelector        : '.js-stools-btn-clear',

		// Global container
		mainContainerSelector   : '.js-stools',

		// Filter fields
		searchBtnSelector       : '.js-stools-btn-search',
		filterBtnSelector       : '.js-stools-btn-filter',
		filterContainerSelector : '.js-stools-container-filters',
		filtersHidden           : true,

		// List fields
		listBtnSelector         : '.js-stools-btn-list',
		listContainerSelector   : '.js-stools-container-list',
		listHidden              : false,

		// Ordering specific
		orderColumnSelector     : '.js-stools-column-order',
		orderBtnSelector        : '.js-stools-btn-order',
		orderFieldSelector      : '.js-stools-field-order',
		orderFieldName          : 'list[fullordering]',
		limitFieldSelector      : '.js-stools-field-limit',
		defaultLimit            : 20,

		activeOrder             : null,
		activeDirection         : 'ASC',

		// Extra
		chosenSupport           : true,
		clearListOptions        : false
	};

	// The actual plugin constructor
	function Plugin(element, options) {
		this.element = element;
		this.options = $.extend({}, defaults, options);
		this._defaults = defaults;

		// Initialise selectors
		this.theForm        = $(this.options.formSelector);

		// Filters
		this.filterButton    = $(this.options.formSelector + ' ' + this.options.filterBtnSelector);
		this.filterContainer = $(this.options.formSelector + ' ' + this.options.filterContainerSelector);
		this.filtersHidden   = this.options.filtersHidden;

		// List fields
		this.listButton    = $(this.options.formSelector + ' ' + this.options.listBtnSelector);
		this.listContainer = $(this.options.formSelector + ' ' + this.options.listContainerSelector);
		this.listHidden    = this.options.listHidden;

		// Main container
		this.mainContainer = $(this.options.mainContainerSelector);

		// Search
		this.searchButton = $(this.options.formSelector + ' ' + this.options.searchBtnSelector);
		this.searchField  = $(this.options.formSelector + ' ' + this.options.searchFieldSelector);
		this.searchString = null;
		this.clearButton  = $(this.options.clearBtnSelector);

		// Ordering
		this.orderCols  = $(this.options.formSelector + ' ' + this.options.orderColumnSelector);
		this.orderField = $(this.options.formSelector + ' ' + this.options.orderFieldSelector);

		// Limit
		this.limitField = $(this.options.formSelector + ' ' + this.options.limitFieldSelector);

		// Init trackers
		this.activeColumn    = null;
		this.activeDirection = this.options.activeDirection;
		this.activeOrder     = this.options.activeOrder;
		this.activeLimit     = null;

		// Extra options
		this.chosenSupport    = this.options.chosenSupport;
		this.clearListOptions = this.options.clearListOptions;

		// Selector values
		this._name = pluginName;

		this.init();
	}

	Plugin.prototype = {
		init: function () {
			var self = this;

			// IE < 9 - Avoid to submit placeholder value
			if(!document.addEventListener  ) {
				if (this.searchField.val() === this.searchField.attr('placeholder')) {
					this.searchField.val('');
				}
			}

			// Get values
			this.searchString = this.searchField.val();

			if (this.filtersHidden) {
				this.hideFilters();
			} else {
				this.showFilters();
			}

			if (this.listHidden) {
				this.hideList();
			} else {
				this.showList();
			}

			self.filterButton.click(function(e) {
				self.toggleFilters();
				e.stopPropagation();
				e.preventDefault();
			});

			self.listButton.click(function(e) {
				self.toggleList();
				e.stopPropagation();
				e.preventDefault();
			});

			// Do we need to add to mark filter as enabled?
			self.getFilterFields().each(function(i, element) {
				self.checkFilter(element);
				$(element).change(function () {
					self.checkFilter(element);
				});
			});

			self.clearButton.click(function(e) {
				self.clear();
			});

			// Check/create ordering field
			this.createOrderField();

			this.orderCols.click(function() {

				// Order to set
				var newOrderCol  = $(this).attr('data-order');
				var newDirection = $(this).attr('data-direction');
				var newOrdering  = newOrderCol + ' ' + newDirection;

				// The data-order attrib is required
				if (newOrderCol.length)
				{
					self.activeColumn = newOrderCol;

					if (newOrdering !== self.activeOrder)
					{
						self.activeDirection = newDirection;
						self.activeOrder  = newOrdering;

						// Update the order field
						self.updateFieldValue(self.orderField, newOrdering);
					}
					else
					{
						self.toggleDirection();
					}

					self.theForm.submit();
				}

			});
		},
		checkFilter: function (element) {
			var self = this;

			var option = $(element).find('option:selected');
			if (option.val() !== '') {
				self.activeFilter(element);
			} else {
				self.deactiveFilter(element);
			}
		},
		clear: function () {
			var self = this;

			self.getFilterFields().each(function(i, element) {
				$(element).val('');
				self.checkFilter(element);

				if (self.chosenSupport) {
					$(element).trigger('liszt:updated');
				}
			});

			if (self.clearListOptions) {
				self.getListFields().each(function(i, element) {
					$(element).val('');
					self.checkFilter(element);

					if (self.chosenSupport) {
						$(element).trigger('liszt:updated');
					}
				});

				// Special case to limit box to the default config limit
				$('#list_limit').val(self.options.defaultLimit);
				if (self.chosenSupport) {
					$('#list_limit').trigger('liszt:updated');
				}
			}

			self.searchField.val('');
			self.theForm.submit();
		},
		activeFilter: function (element) {
			var self = this;

			$(element).addClass('active');
			var chosenId = '#' + $(element).attr('id') + '_chzn';
			$(chosenId).addClass('active');
		},
		deactiveFilter: function (element) {
			var self = this;

			$(element).removeClass('active');
			var chosenId = '#' + $(element).attr('id') + '_chzn';
			$(chosenId).removeClass('active');
		},
		getFilterFields: function () {
			return this.filterContainer.find('select,input');
		},
		getListFields: function () {
			return this.listContainer.find('select');
		},
		// Common container functions
		hideContainer: function (container) {
			$(container).hide('fast');
			$(container).removeClass('shown');
		},
		showContainer: function (container) {
			$(container).show('fast');
			$(container).addClass('shown');
		},
		toggleContainer: function (container) {
			if ($(container).hasClass('shown')) {
				this.hideContainer(container);
			} else {
				this.showContainer(container);
			}
		},
		// List container management
		hideList: function () {
			this.hideContainer(this.listContainer);
			this.listButton.removeClass('btn-primary');
		},
		showList: function () {
			this.showContainer(this.listContainer);
			this.listButton.addClass('btn-primary');
		},
		toggleList: function () {
			this.toggleContainer(this.listContainer);

			if (this.listContainer.hasClass('shown')) {
				this.listButton.addClass('btn-primary');
			} else {
				this.listButton.removeClass('btn-primary');
			}
		},
		// Filters container management
		hideFilters: function () {
			this.hideContainer(this.filterContainer);
			this.filterButton.removeClass('btn-primary');
		},
		showFilters: function () {
			this.showContainer(this.filterContainer);
			this.filterButton.addClass('btn-primary');
		},
		toggleFilters: function () {
			this.toggleContainer(this.filterContainer);

			if (this.filterContainer.hasClass('shown')) {
				this.filterButton.addClass('btn-primary');
			} else {
				this.filterButton.removeClass('btn-primary');
			}
		},
		toggleDirection: function () {
			var self = this;

			var newDirection = 'ASC';

			if (self.activeDirection.toUpperCase() == 'ASC')
			{
				newDirection = 'DESC';
			}

			self.activeDirection = newDirection;
			self.activeOrder  = self.activeColumn + ' ' + newDirection;

			self.updateFieldValue(self.orderField, self.activeOrder);
		},
		createOrderField: function () {

			var self = this;

			if (!this.orderField.length)
			{
				this.orderField = $('<input>').attr({
				    type: 'hidden',
				    id: 'js-stools-field-order',
				    'class': 'js-stools-field-order',
				    name: self.options.orderFieldName,
				    value: self.activeOrder + ' ' + this.activeDirection
				});

				this.orderField.appendTo(this.theForm);
			}

			// Add missing columns to the order select
			if (this.orderField.is('select'))
			{
				this.orderCols.each(function(){
					var value     = $(this).attr('data-order');
					var name      = $(this).attr('data-name');
					var direction = $(this).attr('data-direction');

					if (value.length)
					{
						value = value + ' ' + direction;

						var option = self.findOption(self.orderField, value);

						if (!option.length)
						{
							var option = $('<option>');
							option.text(name).val(value);

							// If it is the active option select it
							if ($(this).hasClass('active'))
							{
								option.attr('selected', 'selected');
							}

							// Append the option an repopulate the chosen field
							self.orderField.append(option);
						}
					}

				});

				this.orderField.trigger('liszt:updated');
			}

			this.activeOrder  = this.orderField.val();
		},
		updateFieldValue: function (field, newValue) {
			var self = this;
			var type = field.attr('type');

			if (type === 'hidden' || type === 'text')
			{
				field.attr('value', newValue);
			}
			else if (field.is('select'))
			{
				// Select the option result
				var desiredOption = field.find('option').filter(function () { return $(this).val() == newValue; });

				if (desiredOption.length)
				{
					desiredOption.attr('selected', 'selected');
				}
				// If the option does not exist create it on the fly
				else
				{
					var option = $('<option>');
					option.text(newValue).val(newValue);
					option.attr('selected','selected');

					// Append the option an repopulate the chosen field
					field.append(option);
				}

				// Trigger the chosen update
				if (self.chosenSupport) {
					field.trigger('liszt:updated');
				}
			}
		},
		findOption: function(select, value) {
			return select.find('option').filter(function () { return $(this).val() == value; });
		}
	};

	// A really lightweight plugin wrapper around the constructor,
	// preventing against multiple instantiations
	$.fn[pluginName] = function (options) {
		return this.each(function () {
			if (!$.data(this, "plugin_" + pluginName)) {
				$.data(this, "plugin_" + pluginName, new Plugin(this, options));
			}
		});
	};

})(jQuery, window, document);
jui/js/sortablelist.js000064400000022620152177723720011033 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

(function ($) {
	$.JSortableList = function (tableWrapper, formId, sortDir, saveOrderingUrl, options, nestedList) {
		var root = this;
		var disabledOrderingElements = '';
		var sortableGroupId = '';
		var sortableRange;
		var childrenNodes;
		var sameLevelNodes;
		if (sortDir != 'desc') {
			sortDir = 'asc';
		}

		var ops = $.extend({
			orderingIcon:'add-on', //class name of order icon
			orderingWrapper:'input-prepend', //ordering control wrapper class name
			orderingGroup:'sortable-group-id', //sortable-group-id
			sortableClassName:'dndlist-sortable',
			placeHolderClassName:'dnd-list-highlight dndlist-place-holder',
			sortableHandle:'.sortable-handler'
		}, options);

		$('tr', tableWrapper).removeClass(ops.sortableClassName).addClass(ops.sortableClassName);
		//make wrapper table position be relative, to fix y-axis drag problem on Safari
		$(tableWrapper).parents('table').css('position', 'relative');
		$(ops.sortableHandle, tableWrapper).css('cursor', 'move');
		$('#' + formId).attr('autocomplete', 'off');

		var _handle = $(ops.sortableHandle, $(tableWrapper)).length > 0 ? ops.sortableHandle : '';

		$(tableWrapper).sortable({
			axis:'y',
			cursor:'move',
			handle:_handle,
			items:'tr.' + ops.sortableClassName,
			placeholder:ops.placeHolderClassName,
			helper:function (e, ui) {
				//hard set left position to fix y-axis drag problem on Safari
				$(ui).css({'left':'0px'})

				ui.children().each(function () {
					$(this).width($(this).width());
				});
				$(ui).children('td').addClass('dndlist-dragged-row');
				return ui;
			},

			start:function (e, ui) {
				root.sortableGroupId = ui.item.attr(ops.orderingGroup);
				if (root.sortableGroupId) {
					root.sortableRange = $('tr[' + ops.orderingGroup + '=' + root.sortableGroupId + ']');
				} else {
					root.sortableRange = $('.' + ops.sortableClassName);
				}
				//Disable sortable for other group's records
				root.disableOtherGroupSort(e, ui);

				//Proceed nested list
				if (nestedList){
					root.hideChildrenNodes(ui.item.attr('item-id'));
					root.hideSameLevelChildrenNodes(ui.item.attr('level'));
					$(tableWrapper).sortable('refresh');
				}
			},

			stop:function (e, ui) {
				$('td', $(this)).removeClass('dndlist-dragged-row');
				$(ui.item).css({opacity:0});
				$(ui.item).animate({
					opacity:1,
				}, 800, function (){
					$(ui.item).css('opacity','');
				});


				root.enableOtherGroupSort(e, ui);

				root.rearrangeOrderingValues(root.sortableGroupId, ui);
				if (saveOrderingUrl) {
					//clone and check all the checkboxes in sortable range to post
					root.cloneMarkedCheckboxes();

					// Detach task field if exists
					var f  = $('#' + formId);
					var ft = $('input[name|="task"]', f);

					if (ft.length) ft.detach();

					//serialize form then post to callback url
					$.post(saveOrderingUrl, f.serialize());

					// Re-Append original task field
					if (ft.length) ft.appendTo(f);

					//remove cloned checkboxes
					root.removeClonedCheckboxes();
				}
				root.disabledOrderingElements = '';
				//Proceed nested list
				if (nestedList){
					root.showChildrenNodes(ui.item);
					root.showSameLevelChildrenNodes(ui.item);
					$(tableWrapper).sortable('refresh');
				}
			}
		});
		
		this.hideChildrenNodes = function (itemId) {
			root.childrenNodes = root.getChildrenNodes(itemId);				
			root.childrenNodes.hide();
		}

		this.showChildrenNodes = function (item) {
			item.after(root.childrenNodes)
			root.childrenNodes.show();
			root.childrenNodes="";
		}

		this.hideSameLevelChildrenNodes = function (level) {
			root.sameLevelNodes = root.getSameLevelNodes(level);
			root.sameLevelNodes.each(function (){
				_childrenNodes = root.getChildrenNodes($(this).attr('item-id'));
				_childrenNodes.addClass('child-nodes-tmp-hide');
				_childrenNodes.hide();
			});
		}

		this.showSameLevelChildrenNodes = function (item) {
			prevItem = item.prev();
			prevItemChildrenNodes = root.getChildrenNodes(prevItem.attr('item-id'));
			prevItem.after(prevItemChildrenNodes);
			$('tr.child-nodes-tmp-hide').show().removeClass('child-nodes-tmp-hide');
			root.sameLevelNodes = "";
		}


		this.disableOtherGroupSort = function (e, ui) {
			if (root.sortableGroupId) {
				var _tr = $('tr[' + ops.orderingGroup + '!=' + root.sortableGroupId + ']', $(tableWrapper));
				_tr.removeClass(ops.sortableClassName).addClass('dndlist-group-disabled');

				$(tableWrapper).sortable('refresh');
			}
		}

		this.enableOtherGroupSort = function (e, ui) {
			var _tr = $('tr', $(tableWrapper)).removeClass(ops.sortableClassName);
			_tr.addClass(ops.sortableClassName)
				.removeClass('dndlist-group-disabled');
			$(tableWrapper).sortable('refresh');
		}

		this.disableOrderingControl = function () {
			$('.' + ops.orderingWrapper + ' .add-on a', root.sortableRange).hide();
		}

		this.enableOrderingControl = function () {
			$('.' + ops.orderingWrapper + ' .add-on a', root.disabledOrderingElements).show();
		}

		this.rearrangeOrderingControl = function (sortableGroupId, ui) {
			var range;
			if (sortableGroupId) {
				root.sortableRange = $('tr[' + ops.orderingGroup + '=' + sortableGroupId + ']');
			} else {
				root.sortableRange = $('.' + ops.sortableClassName);
			}
			range = root.sortableRange;
			var count = range.length;
			var i = 0;
			if (count > 1) {
				range.each(function () {
					//firstible, add both ordering icons for missing-icon item
					var upIcon = $('.' + ops.orderingWrapper + ' .add-on:first a', $(this)); //get orderup icon of current dropped item
					var downIcon = $('.' + ops.orderingWrapper + ' .add-on:last a', $(this)); //get orderup icon of current dropped item
					if (upIcon.get(0) && downIcon.get(0)) {
						//do nothing
					} else if (upIcon.get(0)) {
						upIcon.removeAttr('title');
						upIcon = $('.' + ops.orderingWrapper + ' .add-on:first', $(this)).html();
						downIcon = upIcon.replace('icon-uparrow', 'icon-downarrow');
						downIcon = downIcon.replace('.orderup', '.orderdown');
						$('.' + ops.orderingWrapper + ' .add-on:last', $(this)).html(downIcon);
					} else if (downIcon.get(0)) {
						downIcon.removeAttr('title');
						downIcon = $('.' + ops.orderingWrapper + ' .add-on:last', $(this)).html();
						upIcon = downIcon.replace('icon-downarrow', 'icon-uparrow');
						upIcon = upIcon.replace('.orderdown', '.orderup');
						$('.' + ops.orderingWrapper + ' .add-on:first', $(this)).html(upIcon);
					}
				});

				//remove orderup icon for first record
				$('.' + ops.orderingWrapper + ' .add-on:first a', range[0]).remove();
				//remove order down icon for last record
				$('.' + ops.orderingWrapper + ' .add-on:last a', range[(count - 1)]).remove();
			}
		}

		this.rearrangeOrderingValues = function (sortableGroupId, ui) {
			var range;
			if (sortableGroupId) {
				root.sortableRange = $('tr[' + ops.orderingGroup + '=' + sortableGroupId + ']');
			} else {
				root.sortableRange = $('.' + ops.sortableClassName);
			}
			range = root.sortableRange;
			var count = range.length;
			var i = 0;

			if (count > 1) {
				//recalculate order number
				if (ui.originalPosition.top > ui.position.top) //if item moved up
				{
					if (ui.item.position().top != ui.originalPosition.top){
						$('[name="order[]"]', ui.item).attr('value', parseInt($('[type=text]', ui.item.next()).attr('value')));
					}
					$(range).each(function () {
						var _top = $(this).position().top;
						if ( ui.item.get(0) !== $(this).get(0)){
							if (_top > ui.item.position().top && _top < ui.originalPosition.top + ui.item.outerHeight()) {
								if (sortDir == 'asc') {
									var newValue = parseInt($('[name="order[]"]', $(this)).attr('value')) + 1;
								} else {
									var newValue = parseInt($('[name="order[]"]', $(this)).attr('value')) - 1;
								}

								$('[name="order[]"]', $(this)).attr('value', newValue);
							}
						}
					});
				} else if (ui.originalPosition.top < ui.position.top) {
					if (ui.item.position().top != ui.originalPosition.top){
						$('[name="order[]"]', ui.item).attr('value', parseInt($('[name="order[]"]', ui.item.prev()).attr('value')));
					}
					$(range).each(function () {
						var _top = $(this).position().top;
						if ( ui.item.get(0) !== $(this).get(0)){
							if (_top < ui.item.position().top && _top >= ui.originalPosition.top) {
								if (sortDir == 'asc') {
									var newValue = parseInt($('[name="order[]"]', $(this)).attr('value')) - 1;
								} else {
									var newValue = parseInt($('[name="order[]"]', $(this)).attr('value')) + 1;
								}
								$('[name="order[]"]', $(this)).attr('value', newValue);
							}
						}

					});
				}
			}
		}

		this.cloneMarkedCheckboxes = function () {
			$('[name="order[]"]', $(tableWrapper)).attr('name', 'order-tmp');
			$('[type=checkbox]', root.sortableRange).each(function () {
				var _shadow = $(this).clone();
				$(_shadow).attr({'checked':'checked', 'shadow':'shadow', 'id':''});
				$('#' + formId).append($(_shadow));

				$('[name="order-tmp"]', $(this).parents('tr')).attr('name', 'order[]');
			});
		}

		this.removeClonedCheckboxes = function () {
			$('[shadow=shadow]').remove();
			$('[name="order-tmp"]', $(tableWrapper)).attr('name', 'order[]');
		}

		this.getChildrenNodes = function (parentId) {
			return $('tr[parents~="'+parentId+'"]');
		}

		this.getSameLevelNodes = function (level) {
			return $('tr[level='+level+']');
		}

	}
})(jQuery);
jui/js/jquery.min.js000064400000274536152177723720010444 0ustar00/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */
!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){var n=[],r=e.document,i=n.slice,o=n.concat,a=n.push,s=n.indexOf,u={},l=u.toString,c=u.hasOwnProperty,f={},d=function(e,t){return new d.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,h=/^-ms-/,g=/-([\da-z])/gi,m=function(e,t){return t.toUpperCase()};function v(e){var t=!!e&&"length"in e&&e.length,n=d.type(e);return"function"!==n&&!d.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}d.fn=d.prototype={jquery:"1.12.4",constructor:d,selector:"",length:0,toArray:function(){return i.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:i.call(this)},pushStack:function(e){var t=d.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return d.each(this,e)},map:function(e){return this.pushStack(d.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(i.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:a,sort:n.sort,splice:n.splice},d.extend=d.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||d.isFunction(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],"__proto__"!==r&&a!==n&&(l&&n&&(d.isPlainObject(n)||(t=d.isArray(n)))?(t?(t=!1,o=e&&d.isArray(e)?e:[]):o=e&&d.isPlainObject(e)?e:{},a[r]=d.extend(l,o,n)):void 0!==n&&(a[r]=n));return a},d.extend({expando:"jQuery"+("1.12.4"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===d.type(e)},isArray:Array.isArray||function(e){return"array"===d.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!d.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==d.type(e)||e.nodeType||d.isWindow(e))return!1;try{if(e.constructor&&!c.call(e,"constructor")&&!c.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}if(!f.ownFirst)for(t in e)return c.call(e,t);for(t in e);return void 0===t||c.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[l.call(e)]||"object":typeof e},globalEval:function(t){t&&d.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(h,"ms-").replace(g,m)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(v(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(v(Object(e))?d.merge(n,"string"==typeof e?[e]:e):a.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(s)return s.call(t,e,n);for(r=t.length,n=n?n<0?Math.max(0,r+n):n:0;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;)e[i++]=t[r++];if(n!=n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,a=0,s=[];if(v(e))for(r=e.length;a<r;a++)null!=(i=t(e[a],a,n))&&s.push(i);else for(a in e)null!=(i=t(e[a],a,n))&&s.push(i);return o.apply([],s)},guid:1,proxy:function(e,t){var n,r,o;if("string"==typeof t&&(o=e[t],t=e,e=o),d.isFunction(e))return n=i.call(arguments,2),(r=function(){return e.apply(t||this,n.concat(i.call(arguments)))}).guid=e.guid=e.guid||d.guid++,r},now:function(){return+new Date},support:f}),"function"==typeof Symbol&&(d.fn[Symbol.iterator]=n[Symbol.iterator]),d.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){u["[object "+t+"]"]=t.toLowerCase()});var y=function(e){var t,n,r,i,o,a,s,u,l,c,f,d,p,h,g,m,v,y,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=oe(),N=oe(),k=oe(),S=function(e,t){return e===t&&(f=!0),0},A=1<<31,D={}.hasOwnProperty,j=[],L=j.pop,H=j.push,q=j.push,_=j.slice,F=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},M="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",O="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",P="\\["+O+"*("+R+")(?:"+O+"*([*^$|!~]?=)"+O+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+O+"*\\]",B=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",W=new RegExp(O+"+","g"),I=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),$=new RegExp("^"+O+"*,"+O+"*"),z=new RegExp("^"+O+"*([>+~]|"+O+")"+O+"*"),X=new RegExp("="+O+"*([^\\]'\"]*?)"+O+"*\\]","g"),U=new RegExp(B),V=new RegExp("^"+R+"$"),Y={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),bool:new RegExp("^(?:"+M+")$","i"),needsContext:new RegExp("^"+O+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)","i")},J=/^(?:input|select|textarea|button)$/i,G=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/[+~]/,ee=/'|\\/g,te=new RegExp("\\\\([\\da-f]{1,6}"+O+"?|("+O+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=function(){d()};try{q.apply(j=_.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){q={apply:j.length?function(e,t){H.apply(e,_.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function ie(e,t,r,i){var o,s,l,c,f,h,v,y,T=t&&t.ownerDocument,C=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==C&&9!==C&&11!==C)return r;if(!i&&((t?t.ownerDocument||t:w)!==p&&d(t),t=t||p,g)){if(11!==C&&(h=K.exec(e)))if(o=h[1]){if(9===C){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(T&&(l=T.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(h[2])return q.apply(r,t.getElementsByTagName(e)),r;if((o=h[3])&&n.getElementsByClassName&&t.getElementsByClassName)return q.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!k[e+" "]&&(!m||!m.test(e))){if(1!==C)T=t,y=e;else if("object"!==t.nodeName.toLowerCase()){for((c=t.getAttribute("id"))?c=c.replace(ee,"\\$&"):t.setAttribute("id",c=b),s=(v=a(e)).length,f=V.test(c)?"#"+c:"[id='"+c+"']";s--;)v[s]=f+" "+ge(v[s]);y=v.join(","),T=Z.test(e)&&pe(t.parentNode)||t}if(y)try{return q.apply(r,T.querySelectorAll(y)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(I,"$1"),t,r,i)}function oe(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ae(e){return e[b]=!0,e}function se(e){var t=p.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function le(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||A)-(~e.sourceIndex||A);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ce(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return ae(function(t){return t=+t,ae(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function pe(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=ie.support={},o=ie.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},d=ie.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==p&&9===a.nodeType&&a.documentElement?(h=(p=a).documentElement,g=!o(p),(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=se(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(p.getElementsByClassName),n.getById=se(function(e){return h.appendChild(e).id=b,!p.getElementsByName||!p.getElementsByName(b).length}),n.getById?(r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}},r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],m=[],(n.qsa=Q.test(p.querySelectorAll))&&(se(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+O+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+O+"*(?:value|"+M+")"),e.querySelectorAll("[id~="+b+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||m.push(".#.+[+~]")}),se(function(e){var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+O+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(n.matchesSelector=Q.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&se(function(e){n.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),v.push("!=",B)}),m=m.length&&new RegExp(m.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},S=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===w&&x(w,e)?-1:t===p||t.ownerDocument===w&&x(w,t)?1:c?F(c,e)-F(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===p?-1:t===p?1:i?-1:o?1:c?F(c,e)-F(c,t):0;if(i===o)return le(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?le(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},p):p},ie.matches=function(e,t){return ie(e,null,null,t)},ie.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&d(e),t=t.replace(X,"='$1']"),n.matchesSelector&&g&&!k[t+" "]&&(!v||!v.test(t))&&(!m||!m.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return ie(t,p,null,[e]).length>0},ie.contains=function(e,t){return(e.ownerDocument||e)!==p&&d(e),x(e,t)},ie.attr=function(e,t){(e.ownerDocument||e)!==p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},ie.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ie.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(S),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=ie.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=ie.selectors={cacheLength:50,createPseudo:ae,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ie.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ie.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ie.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(W," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&y){for(x=(p=(l=(c=(f=(d=m)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[T,p,x];break}}else if(y&&(x=p=(l=(c=(f=(d=t)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++x||(y&&((c=(f=d[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[T,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||ie.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ae(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=F(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:ae(function(e){var t=[],n=[],r=s(e.replace(I,"$1"));return r[b]?ae(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:ae(function(e){return function(t){return ie(e,t).length>0}}),contains:ae(function(e){return e=e.replace(te,ne),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:ae(function(e){return V.test(e||"")||ie.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return G.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:de(function(){return[0]}),last:de(function(e,t){return[t-1]}),eq:de(function(e,t,n){return[n<0?n+t:n]}),even:de(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:de(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:de(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:de(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=ce(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=fe(t);function he(){}function ge(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=C++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=[T,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if((s=(u=(l=t[b]||(t[b]={}))[t.uniqueID]||(l[t.uniqueID]={}))[r])&&s[0]===T&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function ve(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function ye(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function xe(e,t,n,r,i,o){return r&&!r[b]&&(r=xe(r)),i&&!i[b]&&(i=xe(i,o)),ae(function(o,a,s,u){var l,c,f,d=[],p=[],h=a.length,g=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)ie(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:ye(g,d,e,s,u),v=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,v,s,u),r)for(l=ye(v,p),r(l,[],s,u),c=l.length;c--;)(f=l[c])&&(v[p[c]]=!(m[p[c]]=f));if(o){if(i||e){if(i){for(l=[],c=v.length;c--;)(f=v[c])&&l.push(m[c]=f);i(null,v=[],l,u)}for(c=v.length;c--;)(f=v[c])&&(l=i?F(o,f):d[c])>-1&&(o[l]=!(a[l]=f))}}else v=ye(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):q.apply(a,v)})}function be(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return F(t,e)>-1},s,!0),d=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])d=[me(ve(d),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o&&!r.relative[e[i].type];i++);return xe(u>1&&ve(d),u>1&&ge(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(I,"$1"),n,u<i&&be(e.slice(u,i)),i<o&&be(e=e.slice(i)),i<o&&ge(e))}d.push(n)}return ve(d)}return he.prototype=r.filters=r.pseudos,r.setFilters=new he,a=ie.tokenize=function(e,t){var n,i,o,a,s,u,l,c=N[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=r.preFilter;s;){for(a in n&&!(i=$.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=z.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(I," ")}),s=s.slice(n.length)),r.filter)!(i=Y[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?ie.error(e):N(e,u).slice(0)},s=ie.compile=function(e,t){var n,i=[],o=[],s=k[e+" "];if(!s){for(t||(t=a(e)),n=t.length;n--;)(s=be(t[n]))[b]?i.push(s):o.push(s);(s=k(e,function(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,m,v=0,y="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,N=C.length;for(c&&(l=a===p||a||c);y!==N&&null!=(f=C[y]);y++){if(i&&f){for(h=0,a||f.ownerDocument===p||(d(f),s=!g);m=e[h++];)if(m(f,a||p,s)){u.push(f);break}c&&(T=E)}n&&((f=!m&&f)&&v--,o&&x.push(f))}if(v+=y,n&&y!==v){for(h=0;m=t[h++];)m(x,b,a,s);if(o){if(v>0)for(;y--;)x[y]||b[y]||(b[y]=L.call(u));b=ye(b)}q.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&ie.uniqueSort(u)}return c&&(T=E,l=w),x};return n?ae(o):o}(o,i))).selector=e}return s},u=ie.select=function(e,t,i,o){var u,l,c,f,d,p="function"==typeof e&&e,h=!o&&a(e=p.selector||e);if(i=i||[],1===h.length){if((l=h[0]=h[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&n.getById&&9===t.nodeType&&g&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return i;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(u=Y.needsContext.test(e)?0:l.length;u--&&(c=l[u],!r.relative[f=c.type]);)if((d=r.find[f])&&(o=d(c.matches[0].replace(te,ne),Z.test(l[0].type)&&pe(t.parentNode)||t))){if(l.splice(u,1),!(e=o.length&&ge(l)))return q.apply(i,o),i;break}}return(p||s(e,h))(o,t,!g,i,!t||Z.test(e)&&pe(t.parentNode)||t),i},n.sortStable=b.split("").sort(S).join("")===b,n.detectDuplicates=!!f,d(),n.sortDetached=se(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),se(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ue("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&se(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ue("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||ue(M,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),ie}(e);d.find=y,d.expr=y.selectors,d.expr[":"]=d.expr.pseudos,d.uniqueSort=d.unique=y.uniqueSort,d.text=y.getText,d.isXMLDoc=y.isXML,d.contains=y.contains;var x=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&d(e).is(n))break;r.push(e)}return r},b=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},w=d.expr.match.needsContext,T=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,C=/^.[^:#\[\.,]*$/;function E(e,t,n){if(d.isFunction(t))return d.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return d.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(C.test(t))return d.filter(t,e,n);t=d.filter(t,e)}return d.grep(e,function(e){return d.inArray(e,t)>-1!==n})}d.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?d.find.matchesSelector(r,e)?[r]:[]:d.find.matches(e,d.grep(t,function(e){return 1===e.nodeType}))},d.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(d(e).filter(function(){for(t=0;t<i;t++)if(d.contains(r[t],this))return!0}));for(t=0;t<i;t++)d.find(e,r[t],n);return(n=this.pushStack(i>1?d.unique(n):n)).selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(E(this,e||[],!1))},not:function(e){return this.pushStack(E(this,e||[],!0))},is:function(e){return!!E(this,"string"==typeof e&&w.test(e)?d(e):e||[],!1).length}});var N,k=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(d.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||N,"string"==typeof e){if(!(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:k.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof d?t[0]:t,d.merge(this,d.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),T.test(i[1])&&d.isPlainObject(t))for(i in t)d.isFunction(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}if((o=r.getElementById(i[2]))&&o.parentNode){if(o.id!==i[2])return N.find(e);this.length=1,this[0]=o}return this.context=r,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):d.isFunction(e)?void 0!==n.ready?n.ready(e):e(d):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),d.makeArray(e,this))}).prototype=d.fn,N=d(r);var S=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){do{e=e[t]}while(e&&1!==e.nodeType);return e}d.fn.extend({has:function(e){var t,n=d(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(d.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=w.test(e)||"string"!=typeof e?d(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&d.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?d.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?d.inArray(this[0],d(e)):d.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(d.uniqueSort(d.merge(this.get(),d(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),d.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x(e,"parentNode")},parentsUntil:function(e,t,n){return x(e,"parentNode",n)},next:function(e){return D(e,"nextSibling")},prev:function(e){return D(e,"previousSibling")},nextAll:function(e){return x(e,"nextSibling")},prevAll:function(e){return x(e,"previousSibling")},nextUntil:function(e,t,n){return x(e,"nextSibling",n)},prevUntil:function(e,t,n){return x(e,"previousSibling",n)},siblings:function(e){return b((e.parentNode||{}).firstChild,e)},children:function(e){return b(e.firstChild)},contents:function(e){return d.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:d.merge([],e.childNodes)}},function(e,t){d.fn[e]=function(n,r){var i=d.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=d.filter(r,i)),this.length>1&&(A[e]||(i=d.uniqueSort(i)),S.test(e)&&(i=i.reverse())),this.pushStack(i)}});var j,L,H=/\S+/g;function q(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_)):(r.detachEvent("onreadystatechange",_),e.detachEvent("onload",_))}function _(){(r.addEventListener||"load"===e.event.type||"complete"===r.readyState)&&(q(),d.ready())}for(L in d.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return d.each(e.match(H)||[],function(e,n){t[n]=!0}),t}(e):d.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){d.each(n,function(n,r){d.isFunction(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==d.type(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return d.each(arguments,function(e,t){for(var n;(n=d.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?d.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=!0,n||l.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},d.extend({Deferred:function(e){var t=[["resolve","done",d.Callbacks("once memory"),"resolved"],["reject","fail",d.Callbacks("once memory"),"rejected"],["notify","progress",d.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return d.Deferred(function(n){d.each(t,function(t,o){var a=d.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&d.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?d.extend(e,r):r}},i={};return r.pipe=r.then,d.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,o=0,a=i.call(arguments),s=a.length,u=1!==s||e&&d.isFunction(e.promise)?s:0,l=1===u?e:d.Deferred(),c=function(e,n,r){return function(o){n[e]=this,r[e]=arguments.length>1?i.call(arguments):o,r===t?l.notifyWith(n,r):--u||l.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);o<s;o++)a[o]&&d.isFunction(a[o].promise)?a[o].promise().progress(c(o,n,t)).done(c(o,r,a)).fail(l.reject):--u;return u||l.resolveWith(r,a),l.promise()}}),d.fn.ready=function(e){return d.ready.promise().done(e),this},d.extend({isReady:!1,readyWait:1,holdReady:function(e){e?d.readyWait++:d.ready(!0)},ready:function(e){(!0===e?--d.readyWait:d.isReady)||(d.isReady=!0,!0!==e&&--d.readyWait>0||(j.resolveWith(r,[d]),d.fn.triggerHandler&&(d(r).triggerHandler("ready"),d(r).off("ready"))))}}),d.ready.promise=function(t){if(!j)if(j=d.Deferred(),"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll)e.setTimeout(d.ready);else if(r.addEventListener)r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_);else{r.attachEvent("onreadystatechange",_),e.attachEvent("onload",_);var n=!1;try{n=null==e.frameElement&&r.documentElement}catch(e){}n&&n.doScroll&&function t(){if(!d.isReady){try{n.doScroll("left")}catch(n){return e.setTimeout(t,50)}q(),d.ready()}}()}return j.promise(t)},d.ready.promise(),d(f))break;f.ownFirst="0"===L,f.inlineBlockNeedsLayout=!1,d(function(){var e,t,n,i;(n=r.getElementsByTagName("body")[0])&&n.style&&(t=r.createElement("div"),(i=r.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),void 0!==t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",f.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(i))}),function(){var e=r.createElement("div");f.deleteExpando=!0;try{delete e.test}catch(e){f.deleteExpando=!1}e=null}();var F,M=function(e){var t=d.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||!0!==t&&e.getAttribute("classid")===t)},O=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,R=/([A-Z])/g;function P(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(R,"-$1").toLowerCase();if("string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:O.test(n)?d.parseJSON(n):n)}catch(e){}d.data(e,t,n)}else n=void 0}return n}function B(e){var t;for(t in e)if(("data"!==t||!d.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function W(e,t,r,i){if(M(e)){var o,a,s=d.expando,u=e.nodeType,l=u?d.cache:e,c=u?e[s]:e[s]&&s;if(c&&l[c]&&(i||l[c].data)||void 0!==r||"string"!=typeof t)return c||(c=u?e[s]=n.pop()||d.guid++:s),l[c]||(l[c]=u?{}:{toJSON:d.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[c]=d.extend(l[c],t):l[c].data=d.extend(l[c].data,t)),a=l[c],i||(a.data||(a.data={}),a=a.data),void 0!==r&&(a[d.camelCase(t)]=r),"string"==typeof t?null==(o=a[t])&&(o=a[d.camelCase(t)]):o=a,o}}function I(e,t,n){if(M(e)){var r,i,o=e.nodeType,a=o?d.cache:e,s=o?e[d.expando]:d.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){i=(t=d.isArray(t)?t.concat(d.map(t,d.camelCase)):t in r?[t]:(t=d.camelCase(t))in r?[t]:t.split(" ")).length;for(;i--;)delete r[t[i]];if(n?!B(r):!d.isEmptyObject(r))return}(n||(delete a[s].data,B(a[s])))&&(o?d.cleanData([e],!0):f.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}d.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return!!(e=e.nodeType?d.cache[e[d.expando]]:e[d.expando])&&!B(e)},data:function(e,t,n){return W(e,t,n)},removeData:function(e,t){return I(e,t)},_data:function(e,t,n){return W(e,t,n,!0)},_removeData:function(e,t){return I(e,t,!0)}}),d.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=d.data(o),1===o.nodeType&&!d._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf("data-")&&P(o,r=d.camelCase(r.slice(5)),i[r]);d._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){d.data(this,e)}):arguments.length>1?this.each(function(){d.data(this,e,t)}):o?P(o,e,d.data(o,e)):void 0},removeData:function(e){return this.each(function(){d.removeData(this,e)})}}),d.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=d._data(e,t),n&&(!r||d.isArray(n)?r=d._data(e,t,d.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=d.queue(e,t),r=n.length,i=n.shift(),o=d._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){d.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return d._data(e,n)||d._data(e,n,{empty:d.Callbacks("once memory").add(function(){d._removeData(e,t+"queue"),d._removeData(e,n)})})}}),d.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?d.queue(this[0],e):void 0===t?this:this.each(function(){var n=d.queue(this,e,t);d._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&d.dequeue(this,e)})},dequeue:function(e){return this.each(function(){d.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=d.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=d._data(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}}),f.shrinkWrapBlocks=function(){return null!=F?F:(F=!1,(t=r.getElementsByTagName("body")[0])&&t.style?(e=r.createElement("div"),(n=r.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),void 0!==e.style.zoom&&(e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",e.appendChild(r.createElement("div")).style.width="5px",F=3!==e.offsetWidth),t.removeChild(n),F):void 0);var e,t,n};var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,z=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),X=["Top","Right","Bottom","Left"],U=function(e,t){return e=t||e,"none"===d.css(e,"display")||!d.contains(e.ownerDocument,e)};function V(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return d.css(e,t,"")},u=s(),l=n&&n[3]||(d.cssNumber[t]?"":"px"),c=(d.cssNumber[t]||"px"!==l&&+u)&&z.exec(d.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do{c/=o=o||".5",d.style(e,t,c+l)}while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var Y,J,G,Q=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===d.type(n))for(s in i=!0,n)Q(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,d.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(d(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},K=/^(?:checkbox|radio)$/i,Z=/<([\w:-]+)/,ee=/^$|\/(?:java|ecma)script/i,te=/^\s+/,ne="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function re(e){var t=ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}Y=r.createElement("div"),J=r.createDocumentFragment(),G=r.createElement("input"),Y.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",f.leadingWhitespace=3===Y.firstChild.nodeType,f.tbody=!Y.getElementsByTagName("tbody").length,f.htmlSerialize=!!Y.getElementsByTagName("link").length,f.html5Clone="<:nav></:nav>"!==r.createElement("nav").cloneNode(!0).outerHTML,G.type="checkbox",G.checked=!0,J.appendChild(G),f.appendChecked=G.checked,Y.innerHTML="<textarea>x</textarea>",f.noCloneChecked=!!Y.cloneNode(!0).lastChild.defaultValue,J.appendChild(Y),(G=r.createElement("input")).setAttribute("type","radio"),G.setAttribute("checked","checked"),G.setAttribute("name","t"),Y.appendChild(G),f.checkClone=Y.cloneNode(!0).cloneNode(!0).lastChild.checked,f.noCloneEvent=!!Y.addEventListener,Y[d.expando]=1,f.attributes=!Y.getAttribute(d.expando);var ie={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:f.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};function oe(e,t){var n,r,i=0,o=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||d.nodeName(r,t)?o.push(r):d.merge(o,oe(r,t));return void 0===t||t&&d.nodeName(e,t)?d.merge([e],o):o}function ae(e,t){for(var n,r=0;null!=(n=e[r]);r++)d._data(n,"globalEval",!t||d._data(t[r],"globalEval"))}ie.optgroup=ie.option,ie.tbody=ie.tfoot=ie.colgroup=ie.caption=ie.thead,ie.th=ie.td;var se=/<|&#?\w+;/,ue=/<tbody/i;function le(e){K.test(e.type)&&(e.defaultChecked=e.checked)}function ce(e,t,n,r,i){for(var o,a,s,u,l,c,p,h=e.length,g=re(t),m=[],v=0;v<h;v++)if((a=e[v])||0===a)if("object"===d.type(a))d.merge(m,a.nodeType?[a]:a);else if(se.test(a)){for(u=u||g.appendChild(t.createElement("div")),l=(Z.exec(a)||["",""])[1].toLowerCase(),p=ie[l]||ie._default,u.innerHTML=p[1]+d.htmlPrefilter(a)+p[2],o=p[0];o--;)u=u.lastChild;if(!f.leadingWhitespace&&te.test(a)&&m.push(t.createTextNode(te.exec(a)[0])),!f.tbody)for(o=(a="table"!==l||ue.test(a)?"<table>"!==p[1]||ue.test(a)?0:u:u.firstChild)&&a.childNodes.length;o--;)d.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(d.merge(m,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=g.lastChild}else m.push(t.createTextNode(a));for(u&&g.removeChild(u),f.appendChecked||d.grep(oe(m,"input"),le),v=0;a=m[v++];)if(r&&d.inArray(a,r)>-1)i&&i.push(a);else if(s=d.contains(a.ownerDocument,a),u=oe(g.appendChild(a),"script"),s&&ae(u),n)for(o=0;a=u[o++];)ee.test(a.type||"")&&n.push(a);return u=null,g}!function(){var t,n,i=r.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(f[t]=n in e)||(i.setAttribute(n,"t"),f[t]=!1===i.attributes[n].expando);i=null}();var fe=/^(?:input|select|textarea)$/i,de=/^key/,pe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,he=/^(?:focusinfocus|focusoutblur)$/,ge=/^([^.]*)(?:\.(.+)|)/;function me(){return!0}function ve(){return!1}function ye(){try{return r.activeElement}catch(e){}}function xe(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)xe(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ve;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return d().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=d.guid++)),e.each(function(){d.event.add(this,t,i,r,n)})}d.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,h,g,m,v=d._data(e);if(v){for(n.handler&&(n=(u=n).handler,i=u.selector),n.guid||(n.guid=d.guid++),(a=v.events)||(a=v.events={}),(c=v.handle)||((c=v.handle=function(e){return void 0===d||e&&d.event.triggered===e.type?void 0:d.event.dispatch.apply(c.elem,arguments)}).elem=e),s=(t=(t||"").match(H)||[""]).length;s--;)h=m=(o=ge.exec(t[s])||[])[1],g=(o[2]||"").split(".").sort(),h&&(l=d.event.special[h]||{},h=(i?l.delegateType:l.bindType)||h,l=d.event.special[h]||{},f=d.extend({type:h,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&d.expr.match.needsContext.test(i),namespace:g.join(".")},u),(p=a[h])||((p=a[h]=[]).delegateCount=0,l.setup&&!1!==l.setup.call(e,r,g,c)||(e.addEventListener?e.addEventListener(h,c,!1):e.attachEvent&&e.attachEvent("on"+h,c))),l.add&&(l.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,f):p.push(f),d.event.global[h]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,h,g,m,v=d.hasData(e)&&d._data(e);if(v&&(c=v.events)){for(l=(t=(t||"").match(H)||[""]).length;l--;)if(h=m=(s=ge.exec(t[l])||[])[1],g=(s[2]||"").split(".").sort(),h){for(f=d.event.special[h]||{},p=c[h=(r?f.delegateType:f.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=p.length;o--;)a=p[o],!i&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(p.splice(o,1),a.selector&&p.delegateCount--,f.remove&&f.remove.call(e,a));u&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,g,v.handle)||d.removeEvent(e,h,v.handle),delete c[h])}else for(h in c)d.event.remove(e,h+t[l],n,r,!0);d.isEmptyObject(c)&&(delete v.handle,d._removeData(e,"events"))}},trigger:function(t,n,i,o){var a,s,u,l,f,p,h,g=[i||r],m=c.call(t,"type")?t.type:t,v=c.call(t,"namespace")?t.namespace.split("."):[];if(u=p=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!he.test(m+d.event.triggered)&&(m.indexOf(".")>-1&&(v=m.split("."),m=v.shift(),v.sort()),s=m.indexOf(":")<0&&"on"+m,(t=t[d.expando]?t:new d.Event(m,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:d.makeArray(n,[t]),f=d.event.special[m]||{},o||!f.trigger||!1!==f.trigger.apply(i,n))){if(!o&&!f.noBubble&&!d.isWindow(i)){for(l=f.delegateType||m,he.test(l+m)||(u=u.parentNode);u;u=u.parentNode)g.push(u),p=u;p===(i.ownerDocument||r)&&g.push(p.defaultView||p.parentWindow||e)}for(h=0;(u=g[h++])&&!t.isPropagationStopped();)t.type=h>1?l:f.bindType||m,(a=(d._data(u,"events")||{})[t.type]&&d._data(u,"handle"))&&a.apply(u,n),(a=s&&u[s])&&a.apply&&M(u)&&(t.result=a.apply(u,n),!1===t.result&&t.preventDefault());if(t.type=m,!o&&!t.isDefaultPrevented()&&(!f._default||!1===f._default.apply(g.pop(),n))&&M(i)&&s&&i[m]&&!d.isWindow(i)){(p=i[s])&&(i[s]=null),d.event.triggered=m;try{i[m]()}catch(e){}d.event.triggered=void 0,p&&(i[s]=p)}return t.result}},dispatch:function(e){e=d.event.fix(e);var t,n,r,o,a,s,u=i.call(arguments),l=(d._data(this,"events")||{})[e.type]||[],c=d.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(s=d.event.handlers.call(this,e,l),t=0;(o=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,n=0;(a=o.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(a.namespace)||(e.handleObj=a,e.data=a.data,void 0!==(r=((d.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(!0!==u.disabled||"click"!==e.type)){for(r=[],n=0;n<s;n++)void 0===r[i=(o=t[n]).selector+" "]&&(r[i]=o.needsContext?d(i,this).index(u)>-1:d.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[d.expando])return e;var t,n,i,o=e.type,a=e,s=this.fixHooks[o];for(s||(this.fixHooks[o]=s=pe.test(o)?this.mouseHooks:de.test(o)?this.keyHooks:{}),i=s.props?this.props.concat(s.props):this.props,e=new d.Event(a),t=i.length;t--;)e[n=i[t]]=a[n];return e.target||(e.target=a.srcElement||r),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,i,o,a=t.button,s=t.fromElement;return null==e.pageX&&null!=t.clientX&&(o=(i=e.target.ownerDocument||r).documentElement,n=i.body,e.pageX=t.clientX+(o&&o.scrollLeft||n&&n.scrollLeft||0)-(o&&o.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(o&&o.scrollTop||n&&n.scrollTop||0)-(o&&o.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?t.toElement:s),e.which||void 0===a||(e.which=1&a?1:2&a?3:4&a?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ye()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===ye()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(d.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(e){return d.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n){var r=d.extend(new d.Event,n,{type:e,isSimulated:!0});d.event.trigger(r,null,t),r.isDefaultPrevented()&&n.preventDefault()}},d.removeEvent=r.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)}:function(e,t,n){var r="on"+t;e.detachEvent&&(void 0===e[r]&&(e[r]=null),e.detachEvent(r,n))},d.Event=function(e,t){if(!(this instanceof d.Event))return new d.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?me:ve):this.type=e,t&&d.extend(this,t),this.timeStamp=e&&e.timeStamp||d.now(),this[d.expando]=!0},d.Event.prototype={constructor:d.Event,isDefaultPrevented:ve,isPropagationStopped:ve,isImmediatePropagationStopped:ve,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=me,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=me,e&&!this.isSimulated&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=me,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},d.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){d.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=e.relatedTarget,i=e.handleObj;return r&&(r===this||d.contains(this,r))||(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),f.submit||(d.event.special.submit={setup:function(){if(d.nodeName(this,"form"))return!1;d.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=d.nodeName(t,"input")||d.nodeName(t,"button")?d.prop(t,"form"):void 0;n&&!d._data(n,"submit")&&(d.event.add(n,"submit._submit",function(e){e._submitBubble=!0}),d._data(n,"submit",!0))})},postDispatch:function(e){e._submitBubble&&(delete e._submitBubble,this.parentNode&&!e.isTrigger&&d.event.simulate("submit",this.parentNode,e))},teardown:function(){if(d.nodeName(this,"form"))return!1;d.event.remove(this,"._submit")}}),f.change||(d.event.special.change={setup:function(){if(fe.test(this.nodeName))return"checkbox"!==this.type&&"radio"!==this.type||(d.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._justChanged=!0)}),d.event.add(this,"click._change",function(e){this._justChanged&&!e.isTrigger&&(this._justChanged=!1),d.event.simulate("change",this,e)})),!1;d.event.add(this,"beforeactivate._change",function(e){var t=e.target;fe.test(t.nodeName)&&!d._data(t,"change")&&(d.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||d.event.simulate("change",this.parentNode,e)}),d._data(t,"change",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return d.event.remove(this,"._change"),!fe.test(this.nodeName)}}),f.focusin||d.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){d.event.simulate(t,e.target,d.event.fix(e))};d.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=d._data(r,t);i||r.addEventListener(e,n,!0),d._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=d._data(r,t)-1;i?d._data(r,t,i):(r.removeEventListener(e,n,!0),d._removeData(r,t))}}}),d.fn.extend({on:function(e,t,n,r){return xe(this,e,t,n,r)},one:function(e,t,n,r){return xe(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,d(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ve),this.each(function(){d.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){d.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return d.event.trigger(e,t,n,!0)}});var be=/ jQuery\d+="(?:null|\d+)"/g,we=new RegExp("<(?:"+ne+")[\\s/>]","i"),Te=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Ce=/<script|<style|<link/i,Ee=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^true\/(.*)/,ke=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Se=re(r).appendChild(r.createElement("div"));function Ae(e,t){return d.nodeName(e,"table")&&d.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function De(e){return e.type=(null!==d.find.attr(e,"type"))+"/"+e.type,e}function je(e){var t=Ne.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Le(e,t){if(1===t.nodeType&&d.hasData(e)){var n,r,i,o=d._data(e),a=d._data(t,o),s=o.events;if(s)for(n in delete a.handle,a.events={},s)for(r=0,i=s[n].length;r<i;r++)d.event.add(t,n,s[n][r]);a.data&&(a.data=d.extend({},a.data))}}function He(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!f.noCloneEvent&&t[d.expando]){for(r in(i=d._data(t)).events)d.removeEvent(t,r,i.handle);t.removeAttribute(d.expando)}"script"===n&&t.text!==e.text?(De(t).text=e.text,je(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),f.html5Clone&&e.innerHTML&&!d.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&K.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function qe(e,t,n,r){t=o.apply([],t);var i,a,s,u,l,c,p=0,h=e.length,g=h-1,m=t[0],v=d.isFunction(m);if(v||h>1&&"string"==typeof m&&!f.checkClone&&Ee.test(m))return e.each(function(i){var o=e.eq(i);v&&(t[0]=m.call(this,i,o.html())),qe(o,t,n,r)});if(h&&(i=(c=ce(t,e[0].ownerDocument,!1,e,r)).firstChild,1===c.childNodes.length&&(c=i),i||r)){for(s=(u=d.map(oe(c,"script"),De)).length;p<h;p++)a=c,p!==g&&(a=d.clone(a,!0,!0),s&&d.merge(u,oe(a,"script"))),n.call(e[p],a,p);if(s)for(l=u[u.length-1].ownerDocument,d.map(u,je),p=0;p<s;p++)a=u[p],ee.test(a.type||"")&&!d._data(a,"globalEval")&&d.contains(l,a)&&(a.src?d._evalUrl&&d._evalUrl(a.src):d.globalEval((a.text||a.textContent||a.innerHTML||"").replace(ke,"")));c=i=null}return e}function _e(e,t,n){for(var r,i=t?d.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||d.cleanData(oe(r)),r.parentNode&&(n&&d.contains(r.ownerDocument,r)&&ae(oe(r,"script")),r.parentNode.removeChild(r));return e}d.extend({htmlPrefilter:function(e){return e.replace(Te,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u=d.contains(e.ownerDocument,e);if(f.html5Clone||d.isXMLDoc(e)||!we.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Se.innerHTML=e.outerHTML,Se.removeChild(o=Se.firstChild)),!(f.noCloneEvent&&f.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||d.isXMLDoc(e)))for(r=oe(o),s=oe(e),a=0;null!=(i=s[a]);++a)r[a]&&He(i,r[a]);if(t)if(n)for(s=s||oe(e),r=r||oe(o),a=0;null!=(i=s[a]);a++)Le(i,r[a]);else Le(e,o);return(r=oe(o,"script")).length>0&&ae(r,!u&&oe(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var r,i,o,a,s=0,u=d.expando,l=d.cache,c=f.attributes,p=d.event.special;null!=(r=e[s]);s++)if((t||M(r))&&(a=(o=r[u])&&l[o])){if(a.events)for(i in a.events)p[i]?d.event.remove(r,i):d.removeEvent(r,i,a.handle);l[o]&&(delete l[o],c||void 0===r.removeAttribute?r[u]=void 0:r.removeAttribute(u),n.push(o))}}}),d.fn.extend({domManip:qe,detach:function(e){return _e(this,e,!0)},remove:function(e){return _e(this,e)},text:function(e){return Q(this,function(e){return void 0===e?d.text(this):this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(e))},null,e,arguments.length)},append:function(){return qe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ae(this,e).appendChild(e)})},prepend:function(){return qe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Ae(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return qe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&d.cleanData(oe(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&d.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return d.clone(this,e,t)})},html:function(e){return Q(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(be,""):void 0;if("string"==typeof e&&!Ce.test(e)&&(f.htmlSerialize||!we.test(e))&&(f.leadingWhitespace||!te.test(e))&&!ie[(Z.exec(e)||["",""])[1].toLowerCase()]){e=d.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(d.cleanData(oe(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return qe(this,arguments,function(t){var n=this.parentNode;d.inArray(this,e)<0&&(d.cleanData(oe(this)),n&&n.replaceChild(t,this))},e)}}),d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){d.fn[e]=function(e){for(var n,r=0,i=[],o=d(e),s=o.length-1;r<=s;r++)n=r===s?this:this.clone(!0),d(o[r])[t](n),a.apply(i,n.get());return this.pushStack(i)}});var Fe,Me={HTML:"block",BODY:"block"};function Oe(e,t){var n=d(t.createElement(e)).appendTo(t.body),r=d.css(n[0],"display");return n.detach(),r}function Re(e){var t=r,n=Me[e];return n||("none"!==(n=Oe(e,t))&&n||((t=((Fe=(Fe||d("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow||Fe[0].contentDocument).document).write(),t.close(),n=Oe(e,t),Fe.detach()),Me[e]=n),n}var Pe=/^margin/,Be=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),We=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i},Ie=r.documentElement;!function(){var t,n,i,o,a,s,u=r.createElement("div"),l=r.createElement("div");function c(){var c,f,d=r.documentElement;d.appendChild(u),l.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",t=i=s=!1,n=a=!0,e.getComputedStyle&&(f=e.getComputedStyle(l),t="1%"!==(f||{}).top,s="2px"===(f||{}).marginLeft,i="4px"===(f||{width:"4px"}).width,l.style.marginRight="50%",n="4px"===(f||{marginRight:"4px"}).marginRight,(c=l.appendChild(r.createElement("div"))).style.cssText=l.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",l.style.width="1px",a=!parseFloat((e.getComputedStyle(c)||{}).marginRight),l.removeChild(c)),l.style.display="none",(o=0===l.getClientRects().length)&&(l.style.display="",l.innerHTML="<table><tr><td></td><td>t</td></tr></table>",l.childNodes[0].style.borderCollapse="separate",(c=l.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(o=0===c[0].offsetHeight)&&(c[0].style.display="",c[1].style.display="none",o=0===c[0].offsetHeight)),d.removeChild(u)}l.style&&(l.style.cssText="float:left;opacity:.5",f.opacity="0.5"===l.style.opacity,f.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",f.clearCloneStyle="content-box"===l.style.backgroundClip,(u=r.createElement("div")).style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),f.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,d.extend(f,{reliableHiddenOffsets:function(){return null==t&&c(),o},boxSizingReliable:function(){return null==t&&c(),i},pixelMarginRight:function(){return null==t&&c(),n},pixelPosition:function(){return null==t&&c(),t},reliableMarginRight:function(){return null==t&&c(),a},reliableMarginLeft:function(){return null==t&&c(),s}}))}();var $e,ze,Xe=/^(top|right|bottom|left)$/;function Ue(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}e.getComputedStyle?($e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},ze=function(e,t,n){var r,i,o,a,s=e.style;return""!==(a=(n=n||$e(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==a||d.contains(e.ownerDocument,e)||(a=d.style(e,t)),n&&!f.pixelMarginRight()&&Be.test(a)&&Pe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):Ie.currentStyle&&($e=function(e){return e.currentStyle},ze=function(e,t,n){var r,i,o,a,s=e.style;return null==(a=(n=n||$e(e))?n[t]:void 0)&&s&&s[t]&&(a=s[t]),Be.test(a)&&!Xe.test(t)&&(r=s.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var Ve=/alpha\([^)]*\)/i,Ye=/opacity\s*=\s*([^)]*)/i,Je=/^(none|table(?!-c[ea]).+)/,Ge=new RegExp("^("+$+")(.*)$","i"),Qe={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"},Ze=["Webkit","O","Moz","ms"],et=r.createElement("div").style;function tt(e){if(e in et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ze.length;n--;)if((e=Ze[n]+t)in et)return e}function nt(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)(r=e[a]).style&&(o[a]=d._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&U(r)&&(o[a]=d._data(r,"olddisplay",Re(r.nodeName)))):(i=U(r),(n&&"none"!==n||!i)&&d._data(r,"olddisplay",i?n:d.css(r,"display"))));for(a=0;a<s;a++)(r=e[a]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function rt(e,t,n){var r=Ge.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function it(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=d.css(e,n+X[o],!0,i)),r?("content"===n&&(a-=d.css(e,"padding"+X[o],!0,i)),"margin"!==n&&(a-=d.css(e,"border"+X[o]+"Width",!0,i))):(a+=d.css(e,"padding"+X[o],!0,i),"padding"!==n&&(a+=d.css(e,"border"+X[o]+"Width",!0,i)));return a}function ot(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=$e(e),a=f.boxSizing&&"border-box"===d.css(e,"boxSizing",!1,o);if(i<=0||null==i){if(((i=ze(e,t,o))<0||null==i)&&(i=e.style[t]),Be.test(i))return i;r=a&&(f.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+it(e,t,n||(a?"border":"content"),r,o)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}d.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:f.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=d.camelCase(t),u=e.style;if(t=d.cssProps[s]||(d.cssProps[s]=tt(s)||s),a=d.cssHooks[t]||d.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if("string"===(o=typeof n)&&(i=z.exec(n))&&i[1]&&(n=V(e,t,i),o="number"),null!=n&&n==n&&("number"===o&&(n+=i&&i[3]||(d.cssNumber[s]?"":"px")),f.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(e){}}},css:function(e,t,n,r){var i,o,a,s=d.camelCase(t);return t=d.cssProps[s]||(d.cssProps[s]=tt(s)||s),(a=d.cssHooks[t]||d.cssHooks[s])&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=ze(e,t,r)),"normal"===o&&t in Ke&&(o=Ke[t]),""===n||n?(i=parseFloat(o),!0===n||isFinite(i)?i||0:o):o}}),d.each(["height","width"],function(e,t){d.cssHooks[t]={get:function(e,n,r){if(n)return Je.test(d.css(e,"display"))&&0===e.offsetWidth?We(e,Qe,function(){return ot(e,t,r)}):ot(e,t,r)},set:function(e,n,r){var i=r&&$e(e);return rt(0,n,r?it(e,t,r,f.boxSizing&&"border-box"===d.css(e,"boxSizing",!1,i),i):0)}}}),f.opacity||(d.cssHooks.opacity={get:function(e,t){return Ye.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=d.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===d.trim(o.replace(Ve,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=Ve.test(o)?o.replace(Ve,i):o+" "+i)}}),d.cssHooks.marginRight=Ue(f.reliableMarginRight,function(e,t){if(t)return We(e,{display:"inline-block"},ze,[e,"marginRight"])}),d.cssHooks.marginLeft=Ue(f.reliableMarginLeft,function(e,t){if(t)return(parseFloat(ze(e,"marginLeft"))||(d.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),d.each({margin:"",padding:"",border:"Width"},function(e,t){d.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+X[r]+t]=o[r]||o[r-2]||o[0];return i}},Pe.test(e)||(d.cssHooks[e+t].set=rt)}),d.fn.extend({css:function(e,t){return Q(this,function(e,t,n){var r,i,o={},a=0;if(d.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=d.css(e,t[a],!1,r);return o}return void 0!==n?d.style(e,t,n):d.css(e,t)},e,t,arguments.length>1)},show:function(){return nt(this,!0)},hide:function(){return nt(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){U(this)?d(this).show():d(this).hide()})}}),d.Tween=at,at.prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||d.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(d.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=d.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}},at.prototype.init.prototype=at.prototype,at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=d.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){d.fx.step[e.prop]?d.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[d.cssProps[e.prop]]&&!d.cssHooks[e.prop]?e.elem[e.prop]=e.now:d.style(e.elem,e.prop,e.now+e.unit)}}},at.propHooks.scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},d.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},d.fx=at.prototype.init,d.fx.step={};var st,ut,lt=/^(?:toggle|show|hide)$/,ct=/queueHooks$/;function ft(){return e.setTimeout(function(){st=void 0}),st=d.now()}function dt(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=X[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function pt(e,t,n){for(var r,i=(ht.tweeners[t]||[]).concat(ht.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ht(e,t,n){var r,i,o=0,a=ht.prefilters.length,s=d.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=st||ft(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:d.extend({},t),opts:d.extend(!0,{specialEasing:{},easing:d.easing._default},n),originalProperties:t,originalOptions:n,startTime:st||ft(),duration:n.duration,tweens:[],createTween:function(t,n){var r=d.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=d.camelCase(n)],o=e[n],d.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=d.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);o<a;o++)if(r=ht.prefilters[o].call(l,e,c,l.opts))return d.isFunction(r.stop)&&(d._queueHooks(l.elem,l.opts.queue).stop=d.proxy(r.stop,r)),r;return d.map(c,pt,l),d.isFunction(l.opts.start)&&l.opts.start.call(e,l),d.fx.timer(d.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}d.Animation=d.extend(ht,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return V(n.elem,e,z.exec(t),n),n}]},tweener:function(e,t){d.isFunction(e)?(t=e,e=["*"]):e=e.match(H);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ht.tweeners[n]=ht.tweeners[n]||[],ht.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c=this,p={},h=e.style,g=e.nodeType&&U(e),m=d._data(e,"fxshow");for(r in n.queue||(null==(s=d._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,c.always(function(){c.always(function(){s.unqueued--,d.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],"inline"===("none"===(l=d.css(e,"display"))?d._data(e,"olddisplay")||Re(e.nodeName):l)&&"none"===d.css(e,"float")&&(f.inlineBlockNeedsLayout&&"inline"!==Re(e.nodeName)?h.zoom=1:h.display="inline-block")),n.overflow&&(h.overflow="hidden",f.shrinkWrapBlocks()||c.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),t)if(i=t[r],lt.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;g=!0}p[r]=m&&m[r]||d.style(e,r)}else l=void 0;if(d.isEmptyObject(p))"inline"===("none"===l?Re(e.nodeName):l)&&(h.display=l);else for(r in m?"hidden"in m&&(g=m.hidden):m=d._data(e,"fxshow",{}),o&&(m.hidden=!g),g?d(e).show():c.done(function(){d(e).hide()}),c.done(function(){var t;for(t in d._removeData(e,"fxshow"),p)d.style(e,t,p[t])}),p)a=pt(g?m[r]:0,r,c),r in m||(m[r]=a.start,g&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}],prefilter:function(e,t){t?ht.prefilters.unshift(e):ht.prefilters.push(e)}}),d.speed=function(e,t,n){var r=e&&"object"==typeof e?d.extend({},e):{complete:n||!n&&t||d.isFunction(e)&&e,duration:e,easing:n&&t||t&&!d.isFunction(t)&&t};return r.duration=d.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in d.fx.speeds?d.fx.speeds[r.duration]:d.fx.speeds._default,null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){d.isFunction(r.old)&&r.old.call(this),r.queue&&d.dequeue(this,r.queue)},r},d.fn.extend({fadeTo:function(e,t,n,r){return this.filter(U).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=d.isEmptyObject(e),o=d.speed(t,n,r),a=function(){var t=ht(this,d.extend({},e),o);(i||d._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=d.timers,a=d._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ct.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||d.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=d._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=d.timers,a=r?r.length:0;for(n.finish=!0,d.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),d.each(["toggle","show","hide"],function(e,t){var n=d.fn[t];d.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(dt(t,!0),e,r,i)}}),d.each({slideDown:dt("show"),slideUp:dt("hide"),slideToggle:dt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){d.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),d.timers=[],d.fx.tick=function(){var e,t=d.timers,n=0;for(st=d.now();n<t.length;n++)(e=t[n])()||t[n]!==e||t.splice(n--,1);t.length||d.fx.stop(),st=void 0},d.fx.timer=function(e){d.timers.push(e),e()?d.fx.start():d.timers.pop()},d.fx.interval=13,d.fx.start=function(){ut||(ut=e.setInterval(d.fx.tick,d.fx.interval))},d.fx.stop=function(){e.clearInterval(ut),ut=null},d.fx.speeds={slow:600,fast:200,_default:400},d.fn.delay=function(t,n){return t=d.fx&&d.fx.speeds[t]||t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e,t=r.createElement("input"),n=r.createElement("div"),i=r.createElement("select"),o=i.appendChild(r.createElement("option"));(n=r.createElement("div")).setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),(e=n.getElementsByTagName("a")[0]).style.cssText="top:1px",f.getSetAttribute="t"!==n.className,f.style=/top/.test(e.getAttribute("style")),f.hrefNormalized="/a"===e.getAttribute("href"),f.checkOn=!!t.value,f.optSelected=o.selected,f.enctype=!!r.createElement("form").enctype,i.disabled=!0,f.optDisabled=!o.disabled,(t=r.createElement("input")).setAttribute("value",""),f.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),f.radioValue="t"===t.value}();var gt=/\r/g,mt=/[\x20\t\r\n\f]+/g;d.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=d.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,d(this).val()):e)?i="":"number"==typeof i?i+="":d.isArray(i)&&(i=d.map(i,function(e){return null==e?"":e+""})),(t=d.valHooks[this.type]||d.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=d.valHooks[i.type]||d.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(gt,""):null==n?"":n:void 0}}),d.extend({valHooks:{option:{get:function(e){var t=d.find.attr(e,"value");return null!=t?t:d.trim(d.text(e)).replace(mt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u<s;u++)if(((n=r[u]).selected||u===i)&&(f.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!d.nodeName(n.parentNode,"optgroup"))){if(t=d(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=d.makeArray(t),a=i.length;a--;)if(r=i[a],d.inArray(d.valHooks.option.get(r),o)>-1)try{r.selected=n=!0}catch(e){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),d.each(["radio","checkbox"],function(){d.valHooks[this]={set:function(e,t){if(d.isArray(t))return e.checked=d.inArray(d(e).val(),t)>-1}},f.checkOn||(d.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var vt,yt,xt=d.expr.attrHandle,bt=/^(?:checked|selected)$/i,wt=f.getSetAttribute,Tt=f.input;d.fn.extend({attr:function(e,t){return Q(this,d.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){d.removeAttr(this,e)})}}),d.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?d.prop(e,t,n):(1===o&&d.isXMLDoc(e)||(t=t.toLowerCase(),i=d.attrHooks[t]||(d.expr.match.bool.test(t)?yt:vt)),void 0!==n?null===n?void d.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=d.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!f.radioValue&&"radio"===t&&d.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(H);if(o&&1===e.nodeType)for(;n=o[i++];)r=d.propFix[n]||n,d.expr.match.bool.test(n)?Tt&&wt||!bt.test(n)?e[r]=!1:e[d.camelCase("default-"+n)]=e[r]=!1:d.attr(e,n,""),e.removeAttribute(wt?n:r)}}),yt={set:function(e,t,n){return!1===t?d.removeAttr(e,n):Tt&&wt||!bt.test(n)?e.setAttribute(!wt&&d.propFix[n]||n,n):e[d.camelCase("default-"+n)]=e[n]=!0,n}},d.each(d.expr.match.bool.source.match(/\w+/g),function(e,t){var n=xt[t]||d.find.attr;Tt&&wt||!bt.test(t)?xt[t]=function(e,t,r){var i,o;return r||(o=xt[t],xt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,xt[t]=o),i}:xt[t]=function(e,t,n){if(!n)return e[d.camelCase("default-"+t)]?t.toLowerCase():null}}),Tt&&wt||(d.attrHooks.value={set:function(e,t,n){if(!d.nodeName(e,"input"))return vt&&vt.set(e,t,n);e.defaultValue=t}}),wt||(vt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},xt.id=xt.name=xt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},d.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:vt.set},d.attrHooks.contenteditable={set:function(e,t,n){vt.set(e,""!==t&&t,n)}},d.each(["width","height"],function(e,t){d.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),f.style||(d.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ct=/^(?:input|select|textarea|button|object)$/i,Et=/^(?:a|area)$/i;d.fn.extend({prop:function(e,t){return Q(this,d.prop,e,t,arguments.length>1)},removeProp:function(e){return e=d.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(e){}})}}),d.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&d.isXMLDoc(e)||(t=d.propFix[t]||t,i=d.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=d.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||Et.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),f.hrefNormalized||d.each(["href","src"],function(e,t){d.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),f.optSelected||(d.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),d.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){d.propFix[this.toLowerCase()]=this}),f.enctype||(d.propFix.enctype="encoding");var Nt=/[\t\r\n\f]/g;function kt(e){return d.attr(e,"class")||""}d.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(d.isFunction(e))return this.each(function(t){d(this).addClass(e.call(this,t,kt(this)))});if("string"==typeof e&&e)for(t=e.match(H)||[];n=this[u++];)if(i=kt(n),r=1===n.nodeType&&(" "+i+" ").replace(Nt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=d.trim(r))&&d.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(d.isFunction(e))return this.each(function(t){d(this).removeClass(e.call(this,t,kt(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(H)||[];n=this[u++];)if(i=kt(n),r=1===n.nodeType&&(" "+i+" ").replace(Nt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=d.trim(r))&&d.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):d.isFunction(e)?this.each(function(n){d(this).toggleClass(e.call(this,n,kt(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=d(this),o=e.match(H)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||((t=kt(this))&&d._data(this,"__className__",t),d.attr(this,"class",t||!1===e?"":d._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+kt(n)+" ").replace(Nt," ").indexOf(t)>-1)return!0;return!1}}),d.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(e,t){d.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),d.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var St=e.location,At=d.now(),Dt=/\?/,jt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;d.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=d.trim(t+"");return i&&!d.trim(i.replace(jt,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():d.error("Invalid JSON: "+t)},d.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{e.DOMParser?n=(new e.DOMParser).parseFromString(t,"text/xml"):((n=new e.ActiveXObject("Microsoft.XMLDOM")).async="false",n.loadXML(t))}catch(e){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||d.error("Invalid XML: "+t),n};var Lt=/#.*$/,Ht=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,_t=/^(?:GET|HEAD)$/,Ft=/^\/\//,Mt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ot={},Rt={},Pt="*/".concat("*"),Bt=St.href,Wt=Mt.exec(Bt.toLowerCase())||[];function It(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(H)||[];if(d.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function $t(e,t,n,r){var i={},o=e===Rt;function a(s){var u;return i[s]=!0,d.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=d.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&d.extend(!0,e,n),e}function Xt(e){return e.style&&e.style.display||d.css(e,"display")}d.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Bt,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Wt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Pt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,d.ajaxSettings),t):zt(d.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Rt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var r,i,o,a,s,u,l,c,f=d.ajaxSetup({},n),p=f.context||f,h=f.context&&(p.nodeType||p.jquery)?d(p):d.event,g=d.Deferred(),m=d.Callbacks("once memory"),v=f.statusCode||{},y={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c)for(c={};t=qt.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)v[t]=[v[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return l&&l.abort(t),C(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,f.url=((t||f.url||Bt)+"").replace(Lt,"").replace(Ft,Wt[1]+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=d.trim(f.dataType||"*").toLowerCase().match(H)||[""],null==f.crossDomain&&(r=Mt.exec(f.url.toLowerCase()),f.crossDomain=!(!r||r[1]===Wt[1]&&r[2]===Wt[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(Wt[3]||("http:"===Wt[1]?"80":"443")))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=d.param(f.data,f.traditional)),$t(Ot,f,n,T),2===b)return T;for(i in(u=d.event&&f.global)&&0==d.active++&&d.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!_t.test(f.type),o=f.url,f.hasContent||(f.data&&(o=f.url+=(Dt.test(o)?"&":"?")+f.data,delete f.data),!1===f.cache&&(f.url=Ht.test(o)?o.replace(Ht,"$1_="+At++):o+(Dt.test(o)?"&":"?")+"_="+At++)),f.ifModified&&(d.lastModified[o]&&T.setRequestHeader("If-Modified-Since",d.lastModified[o]),d.etag[o]&&T.setRequestHeader("If-None-Match",d.etag[o])),(f.data&&f.hasContent&&!1!==f.contentType||n.contentType)&&T.setRequestHeader("Content-Type",f.contentType),T.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Pt+"; q=0.01":""):f.accepts["*"]),f.headers)T.setRequestHeader(i,f.headers[i]);if(f.beforeSend&&(!1===f.beforeSend.call(p,T,f)||2===b))return T.abort();for(i in w="abort",{success:1,error:1,complete:1})T[i](f[i]);if(l=$t(Rt,f,n,T)){if(T.readyState=1,u&&h.trigger("ajaxSend",[T,f]),2===b)return T;f.async&&f.timeout>0&&(s=e.setTimeout(function(){T.abort("timeout")},f.timeout));try{b=1,l.send(y,C)}catch(e){if(!(b<2))throw e;C(-1,e)}}else C(-1,"No Transport");function C(t,n,r,i){var c,y,x,w,C,E=n;2!==b&&(b=2,s&&e.clearTimeout(s),l=void 0,a=i||"",T.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(w=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}if(o)return o!==u[0]&&u.unshift(o),n[o]}(f,T,r)),w=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(e.crossDomain&&"script"===o)continue;if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(f,w,T,c),c?(f.ifModified&&((C=T.getResponseHeader("Last-Modified"))&&(d.lastModified[o]=C),(C=T.getResponseHeader("etag"))&&(d.etag[o]=C)),204===t||"HEAD"===f.type?E="nocontent":304===t?E="notmodified":(E=w.state,y=w.data,c=!(x=w.error))):(x=E,!t&&E||(E="error",t<0&&(t=0))),T.status=t,T.statusText=(n||E)+"",c?g.resolveWith(p,[y,E,T]):g.rejectWith(p,[T,E,x]),T.statusCode(v),v=void 0,u&&h.trigger(c?"ajaxSuccess":"ajaxError",[T,f,c?y:x]),m.fireWith(p,[T,E]),u&&(h.trigger("ajaxComplete",[T,f]),--d.active||d.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return d.get(e,t,n,"json")},getScript:function(e,t){return d.get(e,void 0,t,"script")}}),d.each(["get","post"],function(e,t){d[t]=function(e,n,r,i){return d.isFunction(n)&&(i=i||r,r=n,n=void 0),d.ajax(d.extend({url:e,type:t,dataType:i,data:n,success:r},d.isPlainObject(e)&&e))}}),d._evalUrl=function(e){return d.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},d.fn.extend({wrapAll:function(e){if(d.isFunction(e))return this.each(function(t){d(this).wrapAll(e.call(this,t))});if(this[0]){var t=d(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return d.isFunction(e)?this.each(function(t){d(this).wrapInner(e.call(this,t))}):this.each(function(){var t=d(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=d.isFunction(e);return this.each(function(n){d(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}}),d.expr.filters.hidden=function(e){return f.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:function(e){if(!d.contains(e.ownerDocument||r,e))return!0;for(;e&&1===e.nodeType;){if("none"===Xt(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}(e)},d.expr.filters.visible=function(e){return!d.expr.filters.hidden(e)};var Ut=/%20/g,Vt=/\[\]$/,Yt=/\r?\n/g,Jt=/^(?:submit|button|image|reset|file)$/i,Gt=/^(?:input|select|textarea|keygen)/i;function Qt(e,t,n,r){var i;if(d.isArray(t))d.each(t,function(t,i){n||Vt.test(e)?r(e,i):Qt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==d.type(t))r(e,t);else for(i in t)Qt(e+"["+i+"]",t[i],n,r)}d.param=function(e,t){var n,r=[],i=function(e,t){t=d.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=d.ajaxSettings&&d.ajaxSettings.traditional),d.isArray(e)||e.jquery&&!d.isPlainObject(e))d.each(e,function(){i(this.name,this.value)});else for(n in e)Qt(n,e[n],t,i);return r.join("&").replace(Ut,"+")},d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=d.prop(this,"elements");return e?d.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!d(this).is(":disabled")&&Gt.test(this.nodeName)&&!Jt.test(e)&&(this.checked||!K.test(e))}).map(function(e,t){var n=d(this).val();return null==n?null:d.isArray(n)?d.map(n,function(e){return{name:t.name,value:e.replace(Yt,"\r\n")}}):{name:t.name,value:n.replace(Yt,"\r\n")}}).get()}}),d.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?nn():r.documentMode>8?tn():/^(get|post|head|put|delete|options)$/i.test(this.type)&&tn()||nn()}:tn;var Kt=0,Zt={},en=d.ajaxSettings.xhr();function tn(){try{return new e.XMLHttpRequest}catch(e){}}function nn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}e.attachEvent&&e.attachEvent("onunload",function(){for(var e in Zt)Zt[e](void 0,!0)}),f.cors=!!en&&"withCredentials"in en,(en=f.ajax=!!en)&&d.ajaxTransport(function(t){var n;if(!t.crossDomain||f.cors)return{send:function(r,i){var o,a=t.xhr(),s=++Kt;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];for(o in t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete Zt[s],n=void 0,a.onreadystatechange=d.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(e){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=Zt[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return d.globalEval(e),e}}}),d.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),d.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=r.head||d("head")[0]||r.documentElement;return{send:function(i,o){(t=r.createElement("script")).async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||o(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var rn=[],on=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=rn.pop()||d.expando+"_"+At++;return this[e]=!0,e}}),d.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(on.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&on.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=d.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(on,"$1"+i):!1!==t.jsonp&&(t.url+=(Dt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||d.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?d(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,rn.push(i)),a&&d.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),d.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||r;var i=T.exec(e),o=!n&&[];return i?[t.createElement(i[1])]:(i=ce([e],t,o),o&&o.length&&d(o).remove(),d.merge([],i.childNodes))};var an=d.fn.load;function sn(e){return d.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}d.fn.load=function(e,t,n){if("string"!=typeof e&&an)return an.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=d.trim(e.slice(s,e.length)),e=e.slice(0,s)),d.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&d.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?d("<div>").append(d.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},d.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){d.fn[t]=function(e){return this.on(t,e)}}),d.expr.filters.animated=function(e){return d.grep(d.timers,function(t){return e===t.elem}).length},d.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=d.css(e,"position"),c=d(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=d.css(e,"top"),u=d.css(e,"left"),("absolute"===l||"fixed"===l)&&d.inArray("auto",[o,u])>-1?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),d.isFunction(t)&&(t=t.call(e,n,d.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},d.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){d.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;return o?(t=o.documentElement,d.contains(t,i)?(void 0!==i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=sn(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===d.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),d.nodeName(e[0],"html")||(n=e.offset()),n.top+=d.css(e[0],"borderTopWidth",!0),n.left+=d.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-d.css(r,"marginTop",!0),left:t.left-n.left-d.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&!d.nodeName(e,"html")&&"static"===d.css(e,"position");)e=e.offsetParent;return e||Ie})}}),d.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);d.fn[e]=function(r){return Q(this,function(e,r,i){var o=sn(e);if(void 0===i)return o?t in o?o[t]:o.document.documentElement[r]:e[r];o?o.scrollTo(n?d(o).scrollLeft():i,n?i:d(o).scrollTop()):e[r]=i},e,r,arguments.length,null)}}),d.each(["top","left"],function(e,t){d.cssHooks[t]=Ue(f.pixelPosition,function(e,n){if(n)return n=ze(e,t),Be.test(n)?d(e).position()[t]+"px":n})}),d.each({Height:"height",Width:"width"},function(e,t){d.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){d.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(!0===r||!0===i?"margin":"border");return Q(this,function(t,n,r){var i;return d.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?d.css(t,n,a):d.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),d.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),d.fn.size=function(){return this.length},d.fn.andSelf=d.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return d});var un=e.jQuery,ln=e.$;return d.noConflict=function(t){return e.$===d&&(e.$=ln),t&&e.jQuery===d&&(e.jQuery=un),d},t||(e.jQuery=e.$=d),d});jui/js/fielduser.js000064400000010260152177723720010303 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Field user
 */
;(function($){
	'use strict';

	$.fieldUser = function(container, options){
		// Merge options with defaults
		this.options = $.extend({}, $.fieldUser.defaults, options);

		// Set up elements
		this.$container = $(container);
		this.$modal = this.$container.find(this.options.modal);
		this.$modalBody = this.$modal.children('.modal-body');
		this.$input = this.$container.find(this.options.input);
		this.$inputName = this.$container.find(this.options.inputName);
		this.$buttonSelect = this.$container.find(this.options.buttonSelect);

		// Bind events
		this.$buttonSelect.on('click', this.modalOpen.bind(this));
		this.$modal.on('hide', this.removeIframe.bind(this));

		// Check for onchange callback,
		var onchangeStr =  this.$input.attr('data-onchange'), onchangeCallback;
		if(onchangeStr) {
			onchangeCallback = new Function(onchangeStr);
			this.$input.on('change', onchangeCallback.bind(this.$input));
		}

	};

	// display modal for select the file
	$.fieldUser.prototype.modalOpen = function() {
		var $iframe = $('<iframe>', {
			name: 'field-user-modal',
			src: this.options.url.replace('{field-user-id}', this.$input.attr('id')),
			width: this.options.modalWidth,
			height: this.options.modalHeight
		});
		this.$modalBody.append($iframe);
		this.$modal.modal('show');
		$('body').addClass('modal-open');

		var self = this; // save context
		$iframe.load(function(){
			var content = $(this).contents();

			// handle value select
			content.on('click', '.button-select', function(){
				self.setValue($(this).data('user-value'), $(this).data('user-name'));
				self.modalClose();
				$('body').removeClass('modal-open');
			});
		});
	};

	// close modal
	$.fieldUser.prototype.modalClose = function() {
		this.$modal.modal('hide');
		this.$modalBody.empty();
		$('body').removeClass('modal-open');
	};

	// close modal
	$.fieldUser.prototype.removeIframe = function() {
		this.$modalBody.empty();
		$('body').removeClass('modal-open');
	};

	// set the value
	$.fieldUser.prototype.setValue = function(value, name) {
		this.$input.val(value).trigger('change');
		this.$inputName.val(name || value).trigger('change');
	};

	// default options
	$.fieldUser.defaults = {
		buttonSelect: '.button-select', // selector for button to change the value
		input: '.field-user-input', // selector for the input for the user id
		inputName: '.field-user-input-name', // selector for the input for the user name
		modal: '.modal', // modal selector
		url : 'index.php?option=com_users&view=users&layout=modal&tmpl=component',
		modalWidth: '100%', // modal width
		modalHeight: '300px' // modal height
	};

	$.fn.fieldUser = function(options){
		return this.each(function(){
			var $el = $(this), instance = $el.data('fieldUser');
			if(!instance){
				var options = options || {},
					data = $el.data();

				// Check options in the element
				for (var p in data) {
					if (data.hasOwnProperty(p)) {
						options[p] = data[p];
					}
				}

				instance = new $.fieldUser(this, options);
				$el.data('fieldUser', instance);
			}
		});
	};

	// Initialise all defaults on load and again when subform rows are added
	$(function($) {
		initUserField();
		$(document).on('subform-row-add', initUserField);

		function initUserField (event, container)
		{
			$(container || document).find('.field-user-wrapper').fieldUser();
		}
 	});

})(jQuery);

// Compatibility with mootools modal layout
function jSelectUser(element) {
	var $el = jQuery(element),
		value = $el.data('user-value'),
		name  = $el.data('user-name'),
		fieldId = $el.data('user-field'),
		$inputValue = jQuery('#' + fieldId + '_id'),
		$inputName  = jQuery('#' + fieldId);

	if (!$inputValue.length) {
		// The input not found
		return;
	}

	// Update the value
	$inputValue.val(value).trigger('change');
	$inputName.val(name || value).trigger('change');

	// Check for onchange callback,
	var onchangeStr = $inputValue.attr('data-onchange'), onchangeCallback;
	if(onchangeStr) {
		onchangeCallback = new Function(onchangeStr);
		onchangeCallback.call($inputValue[0]);
	}
	jModalClose();
}
jui/js/ajax-chosen.min.js000064400000005405152177723720011310 0ustar00
(function($){return $.fn.ajaxChosen=function(settings,callback,chosenOptions){var chosenXhr,defaultOptions,options,select;if(settings==null){settings={};}
if(callback==null){callback={};}
if(chosenOptions==null){chosenOptions=function(){};}
defaultOptions={minTermLength:3,afterTypeDelay:500,jsonTermKey:"term",keepTypingMsg:Joomla.JText._('JGLOBAL_KEEP_TYPING'),lookingForMsg:Joomla.JText._('JGLOBAL_LOOKING_FOR')};select=this;chosenXhr=null;options=$.extend({},defaultOptions,$(select).data(),settings);this.chosen(chosenOptions?chosenOptions:{});return this.each(function(){return $(this).next('.chzn-container').find(".search-field > input, .chzn-search > input").bind('keyup',function(){var field,msg,success,untrimmed_val,val;untrimmed_val=$(this).attr('value');val=$.trim($(this).attr('value'));msg=val.length<options.minTermLength?options.keepTypingMsg:options.lookingForMsg+(" '"+val+"'");select.next('.chzn-container').find('.no-results').text(msg);if(val===$(this).data('prevVal')){return false;}
$(this).data('prevVal',val);if(this.timer){clearTimeout(this.timer);}
if(val.length<options.minTermLength){return false;}
field=$(this);if(!(options.data!=null)){options.data={};}
options.data[options.jsonTermKey]=val;if(options.dataCallback!=null){options.data=options.dataCallback(options.data);}
success=options.success;options.success=function(data){var items,selected_values;if(!(data!=null)){return;}
selected_values=[];select.find('option').each(function(){if(!$(this).is(":selected")){return $(this).remove();}else{return selected_values.push($(this).val()+"-"+$(this).text());}});select.find('optgroup:empty').each(function(){return $(this).remove();});items=callback(data);$.each(items,function(i,element){var group,text,value;if(element.group){group=select.find("optgroup[label='"+element.text+"']");if(!group.size()){group=$("<optgroup />");}
group.attr('label',element.text).appendTo(select);return $.each(element.items,function(i,element){var text,value;if(typeof element==="string"){value=i;text=element;}else{value=element.value;text=element.text;}
if($.inArray(value+"-"+text,selected_values)===-1){return $("<option />").attr('value',value).html(text).appendTo(group);}});}else{if(typeof element==="string"){value=i;text=element;}else{value=element.value;text=element.text;}
if($.inArray(value+"-"+text,selected_values)===-1){return $("<option />").attr('value',value).html(text).appendTo(select);}}});if(Object.keys(items).length){select.trigger("liszt:updated");}else{select.data().chosen.no_results_clear();select.data().chosen.no_results(field.attr('value'));}
if(success!=null){success(data);}
return field.attr('value',untrimmed_val);};return this.timer=setTimeout(function(){if(chosenXhr){chosenXhr.abort();}
return chosenXhr=$.ajax(options);},options.afterTypeDelay);});});};})(jQuery);jui/js/jquery.simplecolors.js000064400000011411152177723720012351 0ustar00/**
 * LOOSELY BASED ON:
 * Very simple jQuery Color Picker
 * Copyright (C) 2012 Tanguy Krotoff
 * Licensed under the MIT license
 *
 * ADAPTED BY:
 * Copyright (C) 2013 Peter van Westen
 */

(function($) {
	var SimpleColorPicker = function(element, options) {
		this.select = $(element);
		this.options = $.extend({}, $.fn.simplecolors.defaults, options);

		this.select.hide();

		// Build the list of colors
		var list = '';
		$('option', this.select).each(function() {
			var option = $(this);
			var color = option.val();
			if (option.text() == '-') {
				list += '<br />';
			} else {
				var clss = 'simplecolors-swatch';
				if (color == 'none') {
					clss += ' nocolor';
					color = 'transparent';
				}
				if (option.attr('selected')) {
					clss += ' active';
				}
				list += '<span class="' + clss + '"><span style="background-color: ' + color + ';" tabindex="0"></span></span>';
			}
		});

		var color = this.select.val();
		var clss = 'simplecolors-swatch';
		if (color == 'none') {
			clss += ' nocolor';
			color = 'transparent';
		}
		this.icon = $('<span class="' + clss + '"><span style="background-color: ' + color + ';" tabindex="0"></span></span>').insertAfter(this.select);
		this.icon.on('click', $.proxy(this.show, this));

		this.panel = $('<span class="simplecolors-panel"></span>').appendTo(document.body);
		this.panel.html(list);
		this.panel.on('click', $.proxy(this.click, this));

		// Hide panel when clicking outside
		$(document).on('mousedown', $.proxy(this.hide, this));
		this.panel.on('mousedown', $.proxy(this.mousedown, this));

	};

	/**
	 * SimpleColorPicker class
	 */
	SimpleColorPicker.prototype = {
		constructor: SimpleColorPicker,

		show: function() {
			var panelpadding = 7; // Empirical value
			var pos = this.icon.offset();
			switch (this.select.attr('data-position')) {
				case 'top':
					this.panel.css({
						left: pos.left - panelpadding,
						top: pos.top - this.panel.outerHeight() - 1
					});
					break;
				case 'bottom':
					this.panel.css({
						left: pos.left - panelpadding,
						top: pos.top + this.icon.outerHeight()
					});
					break;
				case 'left':
					this.panel.css({
						left: pos.left - this.panel.outerWidth(),
						top: pos.top - ( (this.panel.outerHeight() - this.icon.outerHeight() ) / 2 ) - 1
					});
					break;
				case 'right':
				default:
					this.panel.css({
						left: pos.left + this.icon.outerWidth(),
						top: pos.top - ( (this.panel.outerHeight() - this.icon.outerHeight() ) / 2 ) - 1
					});
					break;
			}

			this.panel.show(this.options.delay);
		},

		hide: function() {
			if (this.panel.css('display') != 'none') {
				this.panel.hide(this.options.delay);
			}
		},

		click: function(e) {
			var target = $(e.target);
			if (target.length === 1) {
				if (target[0].nodeName.toLowerCase() === 'span') {
					// When you click on a color

					var color = '';
					var bgcolor = '';
					var clss = '';
					if (target.parent().hasClass('nocolor')) {
						color = 'none';
						bgcolor = 'transparent';
						clss = 'nocolor';
					} else {
						color = this.rgb2hex(target.css('background-color'));
						bgcolor = color;
					}

					// Mark this div as the selected one
					target.parent().siblings().removeClass('active');
					target.parent().addClass('active');

					this.icon.removeClass('nocolor').addClass(clss);
					this.icon.find('span').css('background-color', bgcolor);

					// Hide the panel
					this.hide();

					// Change select value
					this.select.val(color).change();
				}
			}
		},

		/**
		 * Prevents the mousedown event from "eating" the click event.
		 */
		mousedown: function(e) {
			e.stopPropagation();
			e.preventDefault();
		},

		/**
		 * Converts a RGB color to its hexadecimal value.
		 *
		 * See http://stackoverflow.com/questions/1740700/get-hex-value-rather-than-rgb-value-using-$
		 */
		rgb2hex: function(rgb) {
			function hex(x) {
				return ("0" + parseInt(x, 10).toString(16)).slice(-2);
			}

			var matches = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
			if (matches === null) {
				// Fix for Internet Explorer < 9
				// Variable rgb is already a hexadecimal value
				return rgb;
			} else {
				return '#' + hex(matches[1]) + hex(matches[2]) + hex(matches[3]);
			}
		}
	};

	/**
	 * Plugin definition.
	 */
	$.fn.simplecolors = function(option) {
		// For HTML element passed to the plugin
		return this.each(function() {
			var $this = $(this),
				data = $this.data('simplecolors'),
				options = typeof option === 'object' && option;
			if (!data) {
				$this.data('simplecolors', (data = new SimpleColorPicker(this, options)));
			}
			if (typeof option === 'string') {
				data[option]();
			}
		});
	};

	$.fn.simplecolors.Constructor = SimpleColorPicker;

	/**
	 * Default options.
	 */
	$.fn.simplecolors.defaults = {
		// Animation delay
		delay: 0
	};
})(jQuery);
jui/js/jquery.autocomplete.min.js000064400000031242152177723720013125 0ustar00/**
*  Ajax Autocomplete for jQuery, version 1.4.7
*  (c) 2017 Tomas Kirda
*
*  Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
*  For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
*/
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend({},b.defaults,d),e.classes={selected:"autocomplete-selected",suggestion:"autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"<strong>$1</strong>").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;(\/?strong)&gt;/g,"<$1>")}function f(a,b){return'<div class="autocomplete-group">'+b+"</div>"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange()},onBlur:function(){var a=this;a.blurTimeoutId=setTimeout(function(){a.hide()},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.length<c.minChars?b.hide():b.getSuggestions(e))},isExactMatch:function(a){var b=this.suggestions;return 1===b.length&&b[0].value.toLowerCase()===a.toLowerCase()},getQuery:function(b){var c,d=this.options.delimiter;return d?(c=b.split(d),a.trim(c[c.length-1])):b},getSuggestionsLocal:function(b){var c,d=this,e=d.options,f=b.toLowerCase(),g=e.lookupFilter,h=parseInt(e.lookupLimit,10);return c={suggestions:a.grep(e.lookup,function(a){return g(a,b,f)})},h&&c.suggestions.length>h&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+='<div class="'+h+'" data-index="'+a+'">'+f(b,g,a)+"</div>"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,e<f?a(c.suggestionsContainer).scrollTop(e):e>g&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.autocomplete||(a.fn.autocomplete=a.fn.devbridgeAutocomplete)});jui/js/jquery.searchtools.min.js000064400000016634152177723720012762 0ustar00(function($,window,document,undefined){var pluginName="searchtools";var defaults={formSelector:".js-stools-form",searchFieldSelector:".js-stools-field-search",clearBtnSelector:".js-stools-btn-clear",mainContainerSelector:".js-stools",searchBtnSelector:".js-stools-btn-search",filterBtnSelector:".js-stools-btn-filter",filterContainerSelector:".js-stools-container-filters",filtersHidden:true,listBtnSelector:".js-stools-btn-list",listContainerSelector:".js-stools-container-list",listHidden:false,orderColumnSelector:".js-stools-column-order",orderBtnSelector:".js-stools-btn-order",orderFieldSelector:".js-stools-field-order",orderFieldName:"list[fullordering]",limitFieldSelector:".js-stools-field-limit",defaultLimit:20,activeOrder:null,activeDirection:"ASC",chosenSupport:true,clearListOptions:false};function Plugin(element,options){this.element=element;this.options=$.extend({},defaults,options);this._defaults=defaults;this.theForm=$(this.options.formSelector);this.filterButton=$(this.options.formSelector+" "+this.options.filterBtnSelector);this.filterContainer=$(this.options.formSelector+" "+this.options.filterContainerSelector);this.filtersHidden=this.options.filtersHidden;this.listButton=$(this.options.formSelector+" "+this.options.listBtnSelector);this.listContainer=$(this.options.formSelector+" "+this.options.listContainerSelector);this.listHidden=this.options.listHidden;this.mainContainer=$(this.options.mainContainerSelector);this.searchButton=$(this.options.formSelector+" "+this.options.searchBtnSelector);this.searchField=$(this.options.formSelector+" "+this.options.searchFieldSelector);this.searchString=null;this.clearButton=$(this.options.clearBtnSelector);this.orderCols=$(this.options.formSelector+" "+this.options.orderColumnSelector);this.orderField=$(this.options.formSelector+" "+this.options.orderFieldSelector);this.limitField=$(this.options.formSelector+" "+this.options.limitFieldSelector);this.activeColumn=null;this.activeDirection=this.options.activeDirection;this.activeOrder=this.options.activeOrder;this.activeLimit=null;this.chosenSupport=this.options.chosenSupport;this.clearListOptions=this.options.clearListOptions;this._name=pluginName;this.init()}Plugin.prototype={init:function(){var self=this;if(!document.addEventListener){if(this.searchField.val()===this.searchField.attr("placeholder")){this.searchField.val("")}}this.searchString=this.searchField.val();if(this.filtersHidden){this.hideFilters()}else{this.showFilters()}if(this.listHidden){this.hideList()}else{this.showList()}self.filterButton.click(function(e){self.toggleFilters();e.stopPropagation();e.preventDefault()});self.listButton.click(function(e){self.toggleList();e.stopPropagation();e.preventDefault()});self.getFilterFields().each(function(i,element){self.checkFilter(element);$(element).change(function(){self.checkFilter(element)})});self.clearButton.click(function(e){self.clear()});this.createOrderField();this.orderCols.click(function(){var newOrderCol=$(this).attr("data-order");var newDirection=$(this).attr('data-direction');var newOrdering=newOrderCol+" "+newDirection;if(newOrderCol.length){self.activeColumn=newOrderCol;if(newOrdering!==self.activeOrder){self.activeDirection=newDirection;self.activeOrder=newOrdering;self.updateFieldValue(self.orderField,newOrdering)}else{self.toggleDirection()}self.theForm.submit()}})},checkFilter:function(element){var self=this;var option=$(element).find("option:selected");if(option.val()!==""){self.activeFilter(element)}else{self.deactiveFilter(element)}},clear:function(){var self=this;self.getFilterFields().each(function(i,element){$(element).val("");self.checkFilter(element);if(self.chosenSupport){$(element).trigger("liszt:updated")}});if(self.clearListOptions){self.getListFields().each(function(i,element){$(element).val("");self.checkFilter(element);if(self.chosenSupport){$(element).trigger("liszt:updated")}});$("#list_limit").val(self.options.defaultLimit);if(self.chosenSupport){$("#list_limit").trigger("liszt:updated")}}self.searchField.val("");self.theForm.submit()},activeFilter:function(element){var self=this;$(element).addClass("active");var chosenId="#"+$(element).attr("id")+"_chzn";$(chosenId).addClass("active")},deactiveFilter:function(element){var self=this;$(element).removeClass("active");var chosenId="#"+$(element).attr("id")+"_chzn";$(chosenId).removeClass("active")},getFilterFields:function(){return this.filterContainer.find("select,input")},getListFields:function(){return this.listContainer.find("select")},hideContainer:function(container){$(container).hide("fast");$(container).removeClass("shown")},showContainer:function(container){$(container).show("fast");$(container).addClass("shown")},toggleContainer:function(container){if($(container).hasClass("shown")){this.hideContainer(container)}else{this.showContainer(container)}},hideList:function(){this.hideContainer(this.listContainer);this.listButton.removeClass("btn-primary")},showList:function(){this.showContainer(this.listContainer);this.listButton.addClass("btn-primary")},toggleList:function(){this.toggleContainer(this.listContainer);if(this.listContainer.hasClass("shown")){this.listButton.addClass("btn-primary")}else{this.listButton.removeClass("btn-primary")}},hideFilters:function(){this.hideContainer(this.filterContainer);this.filterButton.removeClass("btn-primary")},showFilters:function(){this.showContainer(this.filterContainer);this.filterButton.addClass("btn-primary")},toggleFilters:function(){this.toggleContainer(this.filterContainer);if(this.filterContainer.hasClass("shown")){this.filterButton.addClass("btn-primary")}else{this.filterButton.removeClass("btn-primary")}},toggleDirection:function(){var self=this;var newDirection="ASC";if(self.activeDirection.toUpperCase()=="ASC"){newDirection="DESC"}self.activeDirection=newDirection;self.activeOrder=self.activeColumn+" "+newDirection;self.updateFieldValue(self.orderField,self.activeOrder)},createOrderField:function(){var self=this;if(!this.orderField.length){this.orderField=$("<input>").attr({type:"hidden",id:"js-stools-field-order","class":"js-stools-field-order",name:self.options.orderFieldName,value:self.activeOrder+" "+this.activeDirection});this.orderField.appendTo(this.theForm)}if(this.orderField.is("select")){this.orderCols.each(function(){var value=$(this).attr("data-order");var name=$(this).attr("data-name");var direction=$(this).attr("data-direction");if(value.length){value=value+" "+direction;var option=self.findOption(self.orderField,value);if(!option.length){var option=$("<option>");option.text(name).val(value);if($(this).hasClass("active")){option.attr("selected","selected")}self.orderField.append(option)}}});this.orderField.trigger("liszt:updated")}this.activeOrder=this.orderField.val()},updateFieldValue:function(field,newValue){var self=this;var type=field.attr("type");if(type==="hidden"||type==="text"){field.attr("value",newValue)}else if(field.is("select")){var desiredOption=field.find("option").filter(function(){return $(this).val()==newValue});if(desiredOption.length){desiredOption.attr("selected","selected")}else{var option=$("<option>");option.text(newValue).val(newValue);option.attr("selected","selected");field.append(option)}if(self.chosenSupport){field.trigger("liszt:updated")}}},findOption:function(select,value){return select.find("option").filter(function(){return $(this).val()==value})}};$.fn[pluginName]=function(options){return this.each(function(){if(!$.data(this,"plugin_"+pluginName)){$.data(this,"plugin_"+pluginName,new Plugin(this,options))}})}})(jQuery,window,document);jui/js/treeselectmenu.jquery.min.js000064400000005112152177723720013445 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
jQuery(function(e){var t=e("div#treeselectmenu").html();e(".treeselect li").each(function(){$li=e(this);$div=$li.find("div.treeselect-item:first");$li.prepend('<span class="pull-left icon-"></span>');$div.after('<div class="clearfix"></div>');if($li.find("ul.treeselect-sub").length){$li.find("span.icon-").addClass("treeselect-toggle icon-minus");$div.find("label:first").after(t);if(!$li.find("ul.treeselect-sub ul.treeselect-sub").length){$li.find("div.treeselect-menu-expand").remove()}}});e("span.treeselect-toggle").click(function(){$i=e(this);if($i.parent().find("ul.treeselect-sub").is(":visible")){$i.removeClass("icon-minus").addClass("icon-plus");$i.parent().find("ul.treeselect-sub").hide();$i.parent().find("ul.treeselect-sub span.treeselect-toggle").removeClass("icon-minus").addClass("icon-plus")}else{$i.removeClass("icon-plus").addClass("icon-minus");$i.parent().find("ul.treeselect-sub").show();$i.parent().find("ul.treeselect-sub span.treeselect-toggle").removeClass("icon-plus").addClass("icon-minus")}});e("#treeselectfilter").keyup(function(){var t=e(this).val().toLowerCase();var n=0;e("#noresultsfound").hide();var r=e(".treeselect li");r.each(function(){if(e(this).text().toLowerCase().indexOf(t)==-1){e(this).hide();n++}else{e(this).show()}});if(n==r.length){e("#noresultsfound").show()}});e("#treeCheckAll").click(function(){e(".treeselect input").attr("checked","checked")});e("#treeUncheckAll").click(function(){e(".treeselect input").attr("checked",false)});e("#treeExpandAll").click(function(){e("ul.treeselect ul.treeselect-sub").show();e("ul.treeselect span.treeselect-toggle").removeClass("icon-plus").addClass("icon-minus")});e("#treeCollapseAll").click(function(){e("ul.treeselect ul.treeselect-sub").hide();e("ul.treeselect span.treeselect-toggle").removeClass("icon-minus").addClass("icon-plus")});e("a.checkall").click(function(){e(this).parents().eq(5).find("ul.treeselect-sub input").attr("checked","checked")});e("a.uncheckall").click(function(){e(this).parents().eq(5).find("ul.treeselect-sub input").attr("checked",false)});e("a.expandall").click(function(){var t=e(this).parents().eq(6);t.find("ul.treeselect-sub").show();t.find("ul.treeselect-sub span.treeselect-toggle").removeClass("icon-plus").addClass("icon-minus")});e("a.collapseall").click(function(){var t=e(this).parents().eq(6);t.find("li ul.treeselect-sub").hide();t.find("li span.treeselect-toggle").removeClass("icon-minus").addClass("icon-plus")})})
jui/js/jquery.ui.core.min.js000064400000051336152177723720011776 0ustar00/*! jQuery UI - v1.9.2 - 2013-07-14
* http://jqueryui.com
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js
* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
(function(b,f){var a=0,e=/^ui-id-\d+$/;b.ui=b.ui||{};if(b.ui.version){return}b.extend(b.ui,{version:"1.9.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}});b.fn.extend({_focus:b.fn.focus,focus:function(g,h){return typeof g==="number"?this.each(function(){var i=this;setTimeout(function(){b(i).focus();if(h){h.call(i)}},g)}):this._focus.apply(this,arguments)},scrollParent:function(){var g;if((b.ui.ie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){g=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(b.css(this,"position"))&&(/(auto|scroll)/).test(b.css(this,"overflow")+b.css(this,"overflow-y")+b.css(this,"overflow-x"))}).eq(0)}else{g=this.parents().filter(function(){return(/(auto|scroll)/).test(b.css(this,"overflow")+b.css(this,"overflow-y")+b.css(this,"overflow-x"))}).eq(0)}return(/fixed/).test(this.css("position"))||!g.length?b(document):g},zIndex:function(j){if(j!==f){return this.css("zIndex",j)}if(this.length){var h=b(this[0]),g,i;while(h.length&&h[0]!==document){g=h.css("position");if(g==="absolute"||g==="relative"||g==="fixed"){i=parseInt(h.css("zIndex"),10);if(!isNaN(i)&&i!==0){return i}}h=h.parent()}}return 0},uniqueId:function(){return this.each(function(){if(!this.id){this.id="ui-id-"+(++a)}})},removeUniqueId:function(){return this.each(function(){if(e.test(this.id)){b(this).removeAttr("id")}})}});function d(i,g){var k,j,h,l=i.nodeName.toLowerCase();if("area"===l){k=i.parentNode;j=k.name;if(!i.href||!j||k.nodeName.toLowerCase()!=="map"){return false}h=b("img[usemap=#"+j+"]")[0];return !!h&&c(h)}return(/input|select|textarea|button|object/.test(l)?!i.disabled:"a"===l?i.href||g:g)&&c(i)}function c(g){return b.expr.filters.visible(g)&&!b(g).parents().andSelf().filter(function(){return b.css(this,"visibility")==="hidden"}).length}b.extend(b.expr[":"],{data:b.expr.createPseudo?b.expr.createPseudo(function(g){return function(h){return !!b.data(h,g)}}):function(j,h,g){return !!b.data(j,g[3])},focusable:function(g){return d(g,!isNaN(b.attr(g,"tabindex")))},tabbable:function(i){var g=b.attr(i,"tabindex"),h=isNaN(g);return(h||g>=0)&&d(i,!h)}});b(function(){var g=document.body,h=g.appendChild(h=document.createElement("div"));h.offsetHeight;b.extend(h.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=h.offsetHeight===100;b.support.selectstart="onselectstart" in h;g.removeChild(h).style.display="none"});if(!b("<a>").outerWidth(1).jquery){b.each(["Width","Height"],function(j,g){var h=g==="Width"?["Left","Right"]:["Top","Bottom"],k=g.toLowerCase(),m={innerWidth:b.fn.innerWidth,innerHeight:b.fn.innerHeight,outerWidth:b.fn.outerWidth,outerHeight:b.fn.outerHeight};function l(o,n,i,p){b.each(h,function(){n-=parseFloat(b.css(o,"padding"+this))||0;if(i){n-=parseFloat(b.css(o,"border"+this+"Width"))||0}if(p){n-=parseFloat(b.css(o,"margin"+this))||0}});return n}b.fn["inner"+g]=function(i){if(i===f){return m["inner"+g].call(this)}return this.each(function(){b(this).css(k,l(this,i)+"px")})};b.fn["outer"+g]=function(i,n){if(typeof i!=="number"){return m["outer"+g].call(this,i)}return this.each(function(){b(this).css(k,l(this,i,true,n)+"px")})}})}if(b("<a>").data("a-b","a").removeData("a-b").data("a-b")){b.fn.removeData=(function(g){return function(h){if(arguments.length){return g.call(this,b.camelCase(h))}else{return g.call(this)}}})(b.fn.removeData)}(function(){var g=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];b.ui.ie=g.length?true:false;b.ui.ie6=parseFloat(g[1],10)===6})();b.fn.extend({disableSelection:function(){return this.bind((b.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(g){g.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});b.extend(b.ui,{plugin:{add:function(h,j,l){var g,k=b.ui[h].prototype;for(g in l){k.plugins[g]=k.plugins[g]||[];k.plugins[g].push([j,l[g]])}},call:function(g,j,h){var k,l=g.plugins[j];if(!l||!g.element[0].parentNode||g.element[0].parentNode.nodeType===11){return}for(k=0;k<l.length;k++){if(g.options[l[k][0]]){l[k][1].apply(g.element,h)}}}},contains:b.contains,hasScroll:function(j,h){if(b(j).css("overflow")==="hidden"){return false}var g=(h&&h==="left")?"scrollLeft":"scrollTop",i=false;if(j[g]>0){return true}j[g]=1;i=(j[g]>0);j[g]=0;return i},isOverAxis:function(h,g,i){return(h>g)&&(h<(g+i))},isOver:function(l,h,k,j,g,i){return b.ui.isOverAxis(l,k,g)&&b.ui.isOverAxis(h,j,i)}})})(jQuery);(function(b,e){var a=0,d=Array.prototype.slice,c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)};b.widget=function(g,j,f){var m,l,i,k,h=g.split(".")[0];g=g.split(".")[1];m=h+"-"+g;if(!f){f=j;j=b.Widget}b.expr[":"][m.toLowerCase()]=function(n){return !!b.data(n,m)};b[h]=b[h]||{};l=b[h][g];i=b[h][g]=function(n,o){if(!this._createWidget){return new i(n,o)}if(arguments.length){this._createWidget(n,o)}};b.extend(i,l,{version:f.version,_proto:b.extend({},f),_childConstructors:[]});k=new j();k.options=b.widget.extend({},k.options);b.each(f,function(o,n){if(b.isFunction(n)){f[o]=(function(){var p=function(){return j.prototype[o].apply(this,arguments)},q=function(r){return j.prototype[o].apply(this,r)};return function(){var t=this._super,r=this._superApply,s;this._super=p;this._superApply=q;s=n.apply(this,arguments);this._super=t;this._superApply=r;return s}})()}});i.prototype=b.widget.extend(k,{widgetEventPrefix:l?k.widgetEventPrefix:g},f,{constructor:i,namespace:h,widgetName:g,widgetBaseClass:m,widgetFullName:m});if(l){b.each(l._childConstructors,function(o,p){var n=p.prototype;b.widget(n.namespace+"."+n.widgetName,i,p._proto)});delete l._childConstructors}else{j._childConstructors.push(i)}b.widget.bridge(g,i)};b.widget.extend=function(k){var g=d.call(arguments,1),j=0,f=g.length,h,i;for(;j<f;j++){for(h in g[j]){i=g[j][h];if(g[j].hasOwnProperty(h)&&i!==e){if(b.isPlainObject(i)){k[h]=b.isPlainObject(k[h])?b.widget.extend({},k[h],i):b.widget.extend({},i)}else{k[h]=i}}}}return k};b.widget.bridge=function(g,f){var h=f.prototype.widgetFullName||g;b.fn[g]=function(k){var i=typeof k==="string",j=d.call(arguments,1),l=this;k=!i&&j.length?b.widget.extend.apply(null,[k].concat(j)):k;if(i){this.each(function(){var n,m=b.data(this,h);if(!m){return b.error("cannot call methods on "+g+" prior to initialization; attempted to call method '"+k+"'")}if(!b.isFunction(m[k])||k.charAt(0)==="_"){return b.error("no such method '"+k+"' for "+g+" widget instance")}n=m[k].apply(m,j);if(n!==m&&n!==e){l=n&&n.jquery?l.pushStack(n.get()):n;return false}})}else{this.each(function(){var m=b.data(this,h);if(m){m.option(k||{})._init()}else{b.data(this,h,new f(k,this))}})}return l}};b.Widget=function(){};b.Widget._childConstructors=[];b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:false,create:null},_createWidget:function(f,g){g=b(g||this.defaultElement||this)[0];this.element=b(g);this.uuid=a++;this.eventNamespace="."+this.widgetName+this.uuid;this.options=b.widget.extend({},this.options,this._getCreateOptions(),f);this.bindings=b();this.hoverable=b();this.focusable=b();if(g!==this){b.data(g,this.widgetName,this);b.data(g,this.widgetFullName,this);this._on(true,this.element,{remove:function(h){if(h.target===g){this.destroy()}}});this.document=b(g.style?g.ownerDocument:g.document||g);this.window=b(this.document[0].defaultView||this.document[0].parentWindow)}this._create();this._trigger("create",null,this._getCreateEventData());this._init()},_getCreateOptions:b.noop,_getCreateEventData:b.noop,_create:b.noop,_init:b.noop,destroy:function(){this._destroy();this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(b.camelCase(this.widgetFullName));this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled");this.bindings.unbind(this.eventNamespace);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:b.noop,widget:function(){return this.element},option:function(j,k){var f=j,l,h,g;if(arguments.length===0){return b.widget.extend({},this.options)}if(typeof j==="string"){f={};l=j.split(".");j=l.shift();if(l.length){h=f[j]=b.widget.extend({},this.options[j]);for(g=0;g<l.length-1;g++){h[l[g]]=h[l[g]]||{};h=h[l[g]]}j=l.pop();if(k===e){return h[j]===e?null:h[j]}h[j]=k}else{if(k===e){return this.options[j]===e?null:this.options[j]}f[j]=k}}this._setOptions(f);return this},_setOptions:function(f){var g;for(g in f){this._setOption(g,f[g])}return this},_setOption:function(f,g){this.options[f]=g;if(f==="disabled"){this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!g).attr("aria-disabled",g);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_on:function(i,h,g){var j,f=this;if(typeof i!=="boolean"){g=h;h=i;i=false}if(!g){g=h;h=this.element;j=this.widget()}else{h=j=b(h);this.bindings=this.bindings.add(h)}b.each(g,function(p,o){function m(){if(!i&&(f.options.disabled===true||b(this).hasClass("ui-state-disabled"))){return}return(typeof o==="string"?f[o]:o).apply(f,arguments)}if(typeof o!=="string"){m.guid=o.guid=o.guid||m.guid||b.guid++}var n=p.match(/^(\w+)\s*(.*)$/),l=n[1]+f.eventNamespace,k=n[2];if(k){j.delegate(k,l,m)}else{h.bind(l,m)}})},_off:function(g,f){f=(f||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace;g.unbind(f).undelegate(f)},_delay:function(i,h){function g(){return(typeof i==="string"?f[i]:i).apply(f,arguments)}var f=this;return setTimeout(g,h||0)},_hoverable:function(f){this.hoverable=this.hoverable.add(f);this._on(f,{mouseenter:function(g){b(g.currentTarget).addClass("ui-state-hover")},mouseleave:function(g){b(g.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(f){this.focusable=this.focusable.add(f);this._on(f,{focusin:function(g){b(g.currentTarget).addClass("ui-state-focus")},focusout:function(g){b(g.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(f,g,h){var k,j,i=this.options[f];h=h||{};g=b.Event(g);g.type=(f===this.widgetEventPrefix?f:this.widgetEventPrefix+f).toLowerCase();g.target=this.element[0];j=g.originalEvent;if(j){for(k in j){if(!(k in g)){g[k]=j[k]}}}this.element.trigger(g,h);return !(b.isFunction(i)&&i.apply(this.element[0],[g].concat(h))===false||g.isDefaultPrevented())}};b.each({show:"fadeIn",hide:"fadeOut"},function(g,f){b.Widget.prototype["_"+g]=function(j,i,l){if(typeof i==="string"){i={effect:i}}var k,h=!i?g:i===true||typeof i==="number"?f:i.effect||f;i=i||{};if(typeof i==="number"){i={duration:i}}k=!b.isEmptyObject(i);i.complete=l;if(i.delay){j.delay(i.delay)}if(k&&b.effects&&(b.effects.effect[h]||b.uiBackCompat!==false&&b.effects[h])){j[g](i)}else{if(h!==g&&j[h]){j[h](i.duration,i.easing,l)}else{j.queue(function(m){b(this)[g]();if(l){l.call(j[0])}m()})}}}});if(b.uiBackCompat!==false){b.Widget.prototype._getCreateOptions=function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]}}})(jQuery);(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{version:"1.9.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);if(this._mouseMoveDelegate){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)}},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which===1),d=(typeof this.options.cancel==="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.ui.ie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target===this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(e,c){e.ui=e.ui||{};var i,j=Math.max,n=Math.abs,l=Math.round,d=/left|center|right/,g=/top|center|bottom/,a=/[\+\-]\d+%?/,k=/^\w+/,b=/%$/,f=e.fn.position;function m(q,p,o){return[parseInt(q[0],10)*(b.test(q[0])?p/100:1),parseInt(q[1],10)*(b.test(q[1])?o/100:1)]}function h(o,p){return parseInt(e.css(o,p),10)||0}e.position={scrollbarWidth:function(){if(i!==c){return i}var p,o,r=e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),q=r.children()[0];e("body").append(r);p=q.offsetWidth;r.css("overflow","scroll");o=q.offsetWidth;if(p===o){o=r[0].clientWidth}r.remove();return(i=p-o)},getScrollInfo:function(s){var r=s.isWindow?"":s.element.css("overflow-x"),q=s.isWindow?"":s.element.css("overflow-y"),p=r==="scroll"||(r==="auto"&&s.width<s.element[0].scrollWidth),o=q==="scroll"||(q==="auto"&&s.height<s.element[0].scrollHeight);return{width:p?e.position.scrollbarWidth():0,height:o?e.position.scrollbarWidth():0}},getWithinInfo:function(p){var q=e(p||window),o=e.isWindow(q[0]);return{element:q,isWindow:o,offset:q.offset()||{left:0,top:0},scrollLeft:q.scrollLeft(),scrollTop:q.scrollTop(),width:o?q.width():q.outerWidth(),height:o?q.height():q.outerHeight()}}};e.fn.position=function(y){if(!y||!y.of){return f.apply(this,arguments)}y=e.extend({},y);var z,v,s,x,r,u=e(y.of),q=e.position.getWithinInfo(y.within),o=e.position.getScrollInfo(q),t=u[0],w=(y.collision||"flip").split(" "),p={};if(t.nodeType===9){v=u.width();s=u.height();x={top:0,left:0}}else{if(e.isWindow(t)){v=u.width();s=u.height();x={top:u.scrollTop(),left:u.scrollLeft()}}else{if(t.preventDefault){y.at="left top";v=s=0;x={top:t.pageY,left:t.pageX}}else{v=u.outerWidth();s=u.outerHeight();x=u.offset()}}}r=e.extend({},x);e.each(["my","at"],function(){var C=(y[this]||"").split(" "),B,A;if(C.length===1){C=d.test(C[0])?C.concat(["center"]):g.test(C[0])?["center"].concat(C):["center","center"]}C[0]=d.test(C[0])?C[0]:"center";C[1]=g.test(C[1])?C[1]:"center";B=a.exec(C[0]);A=a.exec(C[1]);p[this]=[B?B[0]:0,A?A[0]:0];y[this]=[k.exec(C[0])[0],k.exec(C[1])[0]]});if(w.length===1){w[1]=w[0]}if(y.at[0]==="right"){r.left+=v}else{if(y.at[0]==="center"){r.left+=v/2}}if(y.at[1]==="bottom"){r.top+=s}else{if(y.at[1]==="center"){r.top+=s/2}}z=m(p.at,v,s);r.left+=z[0];r.top+=z[1];return this.each(function(){var B,K,D=e(this),F=D.outerWidth(),C=D.outerHeight(),E=h(this,"marginLeft"),A=h(this,"marginTop"),J=F+E+h(this,"marginRight")+o.width,I=C+A+h(this,"marginBottom")+o.height,G=e.extend({},r),H=m(p.my,D.outerWidth(),D.outerHeight());if(y.my[0]==="right"){G.left-=F}else{if(y.my[0]==="center"){G.left-=F/2}}if(y.my[1]==="bottom"){G.top-=C}else{if(y.my[1]==="center"){G.top-=C/2}}G.left+=H[0];G.top+=H[1];if(!e.support.offsetFractions){G.left=l(G.left);G.top=l(G.top)}B={marginLeft:E,marginTop:A};e.each(["left","top"],function(M,L){if(e.ui.position[w[M]]){e.ui.position[w[M]][L](G,{targetWidth:v,targetHeight:s,elemWidth:F,elemHeight:C,collisionPosition:B,collisionWidth:J,collisionHeight:I,offset:[z[0]+H[0],z[1]+H[1]],my:y.my,at:y.at,within:q,elem:D})}});if(e.fn.bgiframe){D.bgiframe()}if(y.using){K=function(O){var Q=x.left-G.left,N=Q+v-F,P=x.top-G.top,M=P+s-C,L={target:{element:u,left:x.left,top:x.top,width:v,height:s},element:{element:D,left:G.left,top:G.top,width:F,height:C},horizontal:N<0?"left":Q>0?"right":"center",vertical:M<0?"top":P>0?"bottom":"middle"};if(v<F&&n(Q+N)<v){L.horizontal="center"}if(s<C&&n(P+M)<s){L.vertical="middle"}if(j(n(Q),n(N))>j(n(P),n(M))){L.important="horizontal"}else{L.important="vertical"}y.using.call(this,O,L)}}D.offset(e.extend(G,{using:K}))})};e.ui.position={fit:{left:function(s,r){var q=r.within,u=q.isWindow?q.scrollLeft:q.offset.left,w=q.width,t=s.left-r.collisionPosition.marginLeft,v=u-t,p=t+r.collisionWidth-w-u,o;if(r.collisionWidth>w){if(v>0&&p<=0){o=s.left+v+r.collisionWidth-w-u;s.left+=v-o}else{if(p>0&&v<=0){s.left=u}else{if(v>p){s.left=u+w-r.collisionWidth}else{s.left=u}}}}else{if(v>0){s.left+=v}else{if(p>0){s.left-=p}else{s.left=j(s.left-t,s.left)}}}},top:function(r,q){var p=q.within,v=p.isWindow?p.scrollTop:p.offset.top,w=q.within.height,t=r.top-q.collisionPosition.marginTop,u=v-t,s=t+q.collisionHeight-w-v,o;if(q.collisionHeight>w){if(u>0&&s<=0){o=r.top+u+q.collisionHeight-w-v;r.top+=u-o}else{if(s>0&&u<=0){r.top=v}else{if(u>s){r.top=v+w-q.collisionHeight}else{r.top=v}}}}else{if(u>0){r.top+=u}else{if(s>0){r.top-=s}else{r.top=j(r.top-t,r.top)}}}}},flip:{left:function(u,t){var s=t.within,y=s.offset.left+s.scrollLeft,B=s.width,q=s.isWindow?s.scrollLeft:s.offset.left,v=u.left-t.collisionPosition.marginLeft,z=v-q,p=v+t.collisionWidth-B-q,x=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,A=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,r=-2*t.offset[0],o,w;if(z<0){o=u.left+x+A+r+t.collisionWidth-B-y;if(o<0||o<n(z)){u.left+=x+A+r}}else{if(p>0){w=u.left-t.collisionPosition.marginLeft+x+A+r-q;if(w>0||n(w)<p){u.left+=x+A+r}}}},top:function(t,s){var r=s.within,A=r.offset.top+r.scrollTop,B=r.height,o=r.isWindow?r.scrollTop:r.offset.top,v=t.top-s.collisionPosition.marginTop,x=v-o,u=v+s.collisionHeight-B-o,y=s.my[1]==="top",w=y?-s.elemHeight:s.my[1]==="bottom"?s.elemHeight:0,C=s.at[1]==="top"?s.targetHeight:s.at[1]==="bottom"?-s.targetHeight:0,q=-2*s.offset[1],z,p;if(x<0){p=t.top+w+C+q+s.collisionHeight-B-A;if((t.top+w+C+q)>x&&(p<0||p<n(x))){t.top+=w+C+q}}else{if(u>0){z=t.top-s.collisionPosition.marginTop+w+C+q-o;if((t.top+w+C+q)>u&&(z>0||n(z)<u)){t.top+=w+C+q}}}}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments);e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments);e.ui.position.fit.top.apply(this,arguments)}}};(function(){var s,u,p,r,q,o=document.getElementsByTagName("body")[0],t=document.createElement("div");s=document.createElement(o?"div":"body");p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};if(o){e.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"})}for(q in p){s.style[q]=p[q]}s.appendChild(t);u=o||document.documentElement;u.insertBefore(s,u.firstChild);t.style.cssText="position: absolute; left: 10.7432222px;";r=e(t).offset().left;e.support.offsetFractions=r>10&&r<11;s.innerHTML="";u.removeChild(s)})();if(e.uiBackCompat!==false){(function(p){var o=p.fn.position;p.fn.position=function(r){if(!r||!r.offset){return o.call(this,r)}var s=r.offset.split(" "),q=r.at.split(" ");if(s.length===1){s[1]=s[0]}if(/^\d/.test(s[0])){s[0]="+"+s[0]}if(/^\d/.test(s[1])){s[1]="+"+s[1]}if(q.length===1){if(/left|center|right/.test(q[0])){q[1]="center"}else{q[1]=q[0];q[0]="center"}}return o.call(this,p.extend(r,{at:q[0]+s[0]+" "+q[1]+s[1],offset:c}))}}(jQuery))}}(jQuery));jui/js/ajax-chosen.js000064400000010576152177723720010533 0ustar00// Generated by CoffeeScript 1.4.0


/* USING JOOMLA.JTEXT TO TRANSLATE LANGUAGE STRINGS
* ================================================= */


(function($) {
  return $.fn.ajaxChosen = function(settings, callback, chosenOptions) {
    var chosenXhr, defaultOptions, options, select;
    if (settings == null) {
      settings = {};
    }
    if (callback == null) {
      callback = {};
    }
    if (chosenOptions == null) {
      chosenOptions = function() {};
    }
    defaultOptions = {
      minTermLength: 3,
      afterTypeDelay: 500,
      jsonTermKey: "term",
      keepTypingMsg: Joomla.JText._('JGLOBAL_KEEP_TYPING'),
      lookingForMsg: Joomla.JText._('JGLOBAL_LOOKING_FOR')
    };
    select = this;
    chosenXhr = null;
    options = $.extend({}, defaultOptions, $(select).data(), settings);
    this.chosen(chosenOptions ? chosenOptions : {});
    return this.each(function() {
      return $(this).next('.chzn-container').find(".search-field > input, .chzn-search > input").bind('keyup', function() {
        var field, msg, success, untrimmed_val, val;
        untrimmed_val = $(this).val();
        val = $.trim($(this).val());
        msg = val.length < options.minTermLength ? options.keepTypingMsg : options.lookingForMsg + (" '" + val + "'");
        select.next('.chzn-container').find('.no-results').text(msg);
        if (val === $(this).data('prevVal')) {
          return false;
        }
        $(this).data('prevVal', val);
        if (this.timer) {
          clearTimeout(this.timer);
        }
        if (val.length < options.minTermLength) {
          return false;
        }
        field = $(this);
        if (!(options.data != null)) {
          options.data = {};
        }
        options.data[options.jsonTermKey] = val;
        if (options.dataCallback != null) {
          options.data = options.dataCallback(options.data);
        }
        success = options.success;
        options.success = function(data) {
          var items, nbItems, selected_values;
          if (!(data != null)) {
            return;
          }
          selected_values = [];
          select.find('option').each(function() {
            if (!$(this).is(":selected")) {
              return $(this).remove();
            } else {
              return selected_values.push($(this).val() + "-" + $(this).text());
            }
          });
          select.find('optgroup:empty').each(function() {
            return $(this).remove();
          });
          items = callback(data);
          nbItems = 0;
          $.each(items, function(i, element) {
            var group, text, value;
            nbItems++;
            if (element.group) {
              group = select.find("optgroup[label='" + element.text + "']");
              if (!group.size()) {
                group = $("<optgroup />");
              }
              group.attr('label', element.text).appendTo(select);
              return $.each(element.items, function(i, element) {
                var text, value;
                if (typeof element === "string") {
                  value = i;
                  text = element;
                } else {
                  value = element.value;
                  text = element.text;
                }
                if ($.inArray(value + "-" + text, selected_values) === -1) {
                  return $("<option />").attr('value', value).html(text).appendTo(group);
                }
              });
            } else {
              if (typeof element === "string") {
                value = i;
                text = element;
              } else {
                value = element.value;
                text = element.text;
              }
              if ($.inArray(value + "-" + text, selected_values) === -1) {
                return $("<option />").attr('value', value).html(text).appendTo(select);
              }
            }
          });
          if (nbItems) {
            select.trigger("liszt:updated");
          } else {
            select.data().chosen.no_results_clear();
            select.data().chosen.no_results(field.val());
          }
          if (success != null) {
            success(data);
          }
          return field.val(untrimmed_val);
        };
        return this.timer = setTimeout(function() {
          if (chosenXhr) {
            chosenXhr.abort();
          }
          return chosenXhr = $.ajax(options);
        }, options.afterTypeDelay);
      });
    });
  };
})(jQuery);
jui/js/jquery-migrate.js000064400000055711152177723720011300 0ustar00/*!
 * jQuery Migrate - v1.4.1 - 2016-05-19
 * Copyright jQuery Foundation and other contributors
 */
(function( jQuery, window, undefined ) {
// See http://bugs.jquery.com/ticket/13335
// "use strict";


jQuery.migrateVersion = "1.4.1";


var warnedAbout = {};

// List of warnings already given; public read only
jQuery.migrateWarnings = [];

// Set to true to prevent console output; migrateWarnings still maintained
// jQuery.migrateMute = false;

// Show a message on the console so devs know we're active
if ( window.console && window.console.log ) {
	window.console.log( "JQMIGRATE: Migrate is installed" +
		( jQuery.migrateMute ? "" : " with logging active" ) +
		", version " + jQuery.migrateVersion );
}

// Set to false to disable traces that appear with warnings
if ( jQuery.migrateTrace === undefined ) {
	jQuery.migrateTrace = true;
}

// Forget any warnings we've already given; public
jQuery.migrateReset = function() {
	warnedAbout = {};
	jQuery.migrateWarnings.length = 0;
};

function migrateWarn( msg) {
	var console = window.console;
	if ( !warnedAbout[ msg ] ) {
		warnedAbout[ msg ] = true;
		jQuery.migrateWarnings.push( msg );
		if ( console && console.warn && !jQuery.migrateMute ) {
			console.warn( "JQMIGRATE: " + msg );
			if ( jQuery.migrateTrace && console.trace ) {
				console.trace();
			}
		}
	}
}

function migrateWarnProp( obj, prop, value, msg ) {
	if ( Object.defineProperty ) {
		// On ES5 browsers (non-oldIE), warn if the code tries to get prop;
		// allow property to be overwritten in case some other plugin wants it
		try {
			Object.defineProperty( obj, prop, {
				configurable: true,
				enumerable: true,
				get: function() {
					migrateWarn( msg );
					return value;
				},
				set: function( newValue ) {
					migrateWarn( msg );
					value = newValue;
				}
			});
			return;
		} catch( err ) {
			// IE8 is a dope about Object.defineProperty, can't warn there
		}
	}

	// Non-ES5 (or broken) browser; just set the property
	jQuery._definePropertyBroken = true;
	obj[ prop ] = value;
}

if ( document.compatMode === "BackCompat" ) {
	// jQuery has never supported or tested Quirks Mode
	migrateWarn( "jQuery is not compatible with Quirks Mode" );
}


var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
	oldAttr = jQuery.attr,
	valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
		function() { return null; },
	valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
		function() { return undefined; },
	rnoType = /^(?:input|button)$/i,
	rnoAttrNodeType = /^[238]$/,
	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
	ruseDefault = /^(?:checked|selected)$/i;

// jQuery.attrFn
migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );

jQuery.attr = function( elem, name, value, pass ) {
	var lowerName = name.toLowerCase(),
		nType = elem && elem.nodeType;

	if ( pass ) {
		// Since pass is used internally, we only warn for new jQuery
		// versions where there isn't a pass arg in the formal params
		if ( oldAttr.length < 4 ) {
			migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
		}
		if ( elem && !rnoAttrNodeType.test( nType ) &&
			(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
			return jQuery( elem )[ name ]( value );
		}
	}

	// Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
	// for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
	if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
		migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
	}

	// Restore boolHook for boolean property/attribute synchronization
	if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
		jQuery.attrHooks[ lowerName ] = {
			get: function( elem, name ) {
				// Align boolean attributes with corresponding properties
				// Fall back to attribute presence where some booleans are not supported
				var attrNode,
					property = jQuery.prop( elem, name );
				return property === true || typeof property !== "boolean" &&
					( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?

					name.toLowerCase() :
					undefined;
			},
			set: function( elem, value, name ) {
				var propName;
				if ( value === false ) {
					// Remove boolean attributes when set to false
					jQuery.removeAttr( elem, name );
				} else {
					// value is true since we know at this point it's type boolean and not false
					// Set boolean attributes to the same name and set the DOM property
					propName = jQuery.propFix[ name ] || name;
					if ( propName in elem ) {
						// Only set the IDL specifically if it already exists on the element
						elem[ propName ] = true;
					}

					elem.setAttribute( name, name.toLowerCase() );
				}
				return name;
			}
		};

		// Warn only for attributes that can remain distinct from their properties post-1.9
		if ( ruseDefault.test( lowerName ) ) {
			migrateWarn( "jQuery.fn.attr('" + lowerName + "') might use property instead of attribute" );
		}
	}

	return oldAttr.call( jQuery, elem, name, value );
};

// attrHooks: value
jQuery.attrHooks.value = {
	get: function( elem, name ) {
		var nodeName = ( elem.nodeName || "" ).toLowerCase();
		if ( nodeName === "button" ) {
			return valueAttrGet.apply( this, arguments );
		}
		if ( nodeName !== "input" && nodeName !== "option" ) {
			migrateWarn("jQuery.fn.attr('value') no longer gets properties");
		}
		return name in elem ?
			elem.value :
			null;
	},
	set: function( elem, value ) {
		var nodeName = ( elem.nodeName || "" ).toLowerCase();
		if ( nodeName === "button" ) {
			return valueAttrSet.apply( this, arguments );
		}
		if ( nodeName !== "input" && nodeName !== "option" ) {
			migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
		}
		// Does not return so that setAttribute is also used
		elem.value = value;
	}
};


var matched, browser,
	oldInit = jQuery.fn.init,
	oldFind = jQuery.find,
	oldParseJSON = jQuery.parseJSON,
	rspaceAngle = /^\s*</,
	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,
	// Note: XSS check is done below after string is trimmed
	rquickExpr = /^([^<]*)(<[\w\W]+>)([^>]*)$/;

// $(html) "looks like html" rule change
jQuery.fn.init = function( selector, context, rootjQuery ) {
	var match, ret;

	if ( selector && typeof selector === "string" ) {
		if ( !jQuery.isPlainObject( context ) &&
				(match = rquickExpr.exec( jQuery.trim( selector ) )) && match[ 0 ] ) {

			// This is an HTML string according to the "old" rules; is it still?
			if ( !rspaceAngle.test( selector ) ) {
				migrateWarn("$(html) HTML strings must start with '<' character");
			}
			if ( match[ 3 ] ) {
				migrateWarn("$(html) HTML text after last tag is ignored");
			}

			// Consistently reject any HTML-like string starting with a hash (gh-9521)
			// Note that this may break jQuery 1.6.x code that otherwise would work.
			if ( match[ 0 ].charAt( 0 ) === "#" ) {
				migrateWarn("HTML string cannot start with a '#' character");
				jQuery.error("JQMIGRATE: Invalid selector string (XSS)");
			}

			// Now process using loose rules; let pre-1.8 play too
			// Is this a jQuery context? parseHTML expects a DOM element (#178)
			if ( context && context.context && context.context.nodeType ) {
				context = context.context;
			}

			if ( jQuery.parseHTML ) {
				return oldInit.call( this,
						jQuery.parseHTML( match[ 2 ], context && context.ownerDocument ||
							context || document, true ), context, rootjQuery );
			}
		}
	}

	ret = oldInit.apply( this, arguments );

	// Fill in selector and context properties so .live() works
	if ( selector && selector.selector !== undefined ) {
		// A jQuery object, copy its properties
		ret.selector = selector.selector;
		ret.context = selector.context;

	} else {
		ret.selector = typeof selector === "string" ? selector : "";
		if ( selector ) {
			ret.context = selector.nodeType? selector : context || document;
		}
	}

	return ret;
};
jQuery.fn.init.prototype = jQuery.fn;

jQuery.find = function( selector ) {
	var args = Array.prototype.slice.call( arguments );

	// Support: PhantomJS 1.x
	// String#match fails to match when used with a //g RegExp, only on some strings
	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {

		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
		// First see if qS thinks it's a valid selector, if so avoid a false positive
		try {
			document.querySelector( selector );
		} catch ( err1 ) {

			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
				return "[" + attr + op + "\"" + value + "\"]";
			} );

			// If the regexp *may* have created an invalid selector, don't update it
			// Note that there may be false alarms if selector uses jQuery extensions
			try {
				document.querySelector( selector );
				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
				args[ 0 ] = selector;
			} catch ( err2 ) {
				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
			}
		}
	}

	return oldFind.apply( this, args );
};

// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
var findProp;
for ( findProp in oldFind ) {
	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
		jQuery.find[ findProp ] = oldFind[ findProp ];
	}
}

// Let $.parseJSON(falsy_value) return null
jQuery.parseJSON = function( json ) {
	if ( !json ) {
		migrateWarn("jQuery.parseJSON requires a valid JSON string");
		return null;
	}
	return oldParseJSON.apply( this, arguments );
};

jQuery.uaMatch = function( ua ) {
	ua = ua.toLowerCase();

	var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
		/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
		/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
		/(msie) ([\w.]+)/.exec( ua ) ||
		ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
		[];

	return {
		browser: match[ 1 ] || "",
		version: match[ 2 ] || "0"
	};
};

// Don't clobber any existing jQuery.browser in case it's different
if ( !jQuery.browser ) {
	matched = jQuery.uaMatch( navigator.userAgent );
	browser = {};

	if ( matched.browser ) {
		browser[ matched.browser ] = true;
		browser.version = matched.version;
	}

	// Chrome is Webkit, but Webkit is also Safari.
	if ( browser.chrome ) {
		browser.webkit = true;
	} else if ( browser.webkit ) {
		browser.safari = true;
	}

	jQuery.browser = browser;
}

// Warn if the code tries to get jQuery.browser
migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );

// jQuery.boxModel deprecated in 1.3, jQuery.support.boxModel deprecated in 1.7
jQuery.boxModel = jQuery.support.boxModel = (document.compatMode === "CSS1Compat");
migrateWarnProp( jQuery, "boxModel", jQuery.boxModel, "jQuery.boxModel is deprecated" );
migrateWarnProp( jQuery.support, "boxModel", jQuery.support.boxModel, "jQuery.support.boxModel is deprecated" );

jQuery.sub = function() {
	function jQuerySub( selector, context ) {
		return new jQuerySub.fn.init( selector, context );
	}
	jQuery.extend( true, jQuerySub, this );
	jQuerySub.superclass = this;
	jQuerySub.fn = jQuerySub.prototype = this();
	jQuerySub.fn.constructor = jQuerySub;
	jQuerySub.sub = this.sub;
	jQuerySub.fn.init = function init( selector, context ) {
		var instance = jQuery.fn.init.call( this, selector, context, rootjQuerySub );
		return instance instanceof jQuerySub ?
			instance :
			jQuerySub( instance );
	};
	jQuerySub.fn.init.prototype = jQuerySub.fn;
	var rootjQuerySub = jQuerySub(document);
	migrateWarn( "jQuery.sub() is deprecated" );
	return jQuerySub;
};

// The number of elements contained in the matched element set
jQuery.fn.size = function() {
	migrateWarn( "jQuery.fn.size() is deprecated; use the .length property" );
	return this.length;
};


var internalSwapCall = false;

// If this version of jQuery has .swap(), don't false-alarm on internal uses
if ( jQuery.swap ) {
	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;

		if ( oldHook ) {
			jQuery.cssHooks[ name ].get = function() {
				var ret;

				internalSwapCall = true;
				ret = oldHook.apply( this, arguments );
				internalSwapCall = false;
				return ret;
			};
		}
	});
}

jQuery.swap = function( elem, options, callback, args ) {
	var ret, name,
		old = {};

	if ( !internalSwapCall ) {
		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
	}

	// 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;
};


// Ensure that $.ajax gets the new parseJSON defined in core.js
jQuery.ajaxSetup({
	converters: {
		"text json": jQuery.parseJSON
	}
});


var oldFnData = jQuery.fn.data;

jQuery.fn.data = function( name ) {
	var ret, evt,
		elem = this[0];

	// Handles 1.7 which has this behavior and 1.8 which doesn't
	if ( elem && name === "events" && arguments.length === 1 ) {
		ret = jQuery.data( elem, name );
		evt = jQuery._data( elem, name );
		if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
			migrateWarn("Use of jQuery.fn.data('events') is deprecated");
			return evt;
		}
	}
	return oldFnData.apply( this, arguments );
};


var rscriptType = /\/(java|ecma)script/i;

// Since jQuery.clean is used internally on older versions, we only shim if it's missing
if ( !jQuery.clean ) {
	jQuery.clean = function( elems, context, fragment, scripts ) {
		// Set context per 1.8 logic
		context = context || document;
		context = !context.nodeType && context[0] || context;
		context = context.ownerDocument || context;

		migrateWarn("jQuery.clean() is deprecated");

		var i, elem, handleScript, jsTags,
			ret = [];

		jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );

		// Complex logic lifted directly from jQuery 1.8
		if ( fragment ) {
			// Special handling of each script element
			handleScript = function( elem ) {
				// Check if we consider it executable
				if ( !elem.type || rscriptType.test( elem.type ) ) {
					// Detach the script and store it in the scripts array (if provided) or the fragment
					// Return truthy to indicate that it has been handled
					return scripts ?
						scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
						fragment.appendChild( elem );
				}
			};

			for ( i = 0; (elem = ret[i]) != null; i++ ) {
				// Check if we're done after handling an executable script
				if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
					// Append to fragment and handle embedded scripts
					fragment.appendChild( elem );
					if ( typeof elem.getElementsByTagName !== "undefined" ) {
						// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
						jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );

						// Splice the scripts into ret after their former ancestor and advance our index beyond them
						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
						i += jsTags.length;
					}
				}
			}
		}

		return ret;
	};
}

var eventAdd = jQuery.event.add,
	eventRemove = jQuery.event.remove,
	eventTrigger = jQuery.event.trigger,
	oldToggle = jQuery.fn.toggle,
	oldLive = jQuery.fn.live,
	oldDie = jQuery.fn.die,
	oldLoad = jQuery.fn.load,
	ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
	rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
	rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
	hoverHack = function( events ) {
		if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
			return events;
		}
		if ( rhoverHack.test( events ) ) {
			migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
		}
		return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
	};

// Event props removed in 1.9, put them back if needed; no practical way to warn them
if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
	jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
}

// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
if ( jQuery.event.dispatch ) {
	migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
}

// Support for 'hover' pseudo-event and ajax event warnings
jQuery.event.add = function( elem, types, handler, data, selector ){
	if ( elem !== document && rajaxEvent.test( types ) ) {
		migrateWarn( "AJAX events should be attached to document: " + types );
	}
	eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
};
jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
	eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
};

jQuery.each( [ "load", "unload", "error" ], function( _, name ) {

	jQuery.fn[ name ] = function() {
		var args = Array.prototype.slice.call( arguments, 0 );

		// If this is an ajax load() the first arg should be the string URL;
		// technically this could also be the "Anything" arg of the event .load()
		// which just goes to show why this dumb signature has been deprecated!
		// jQuery custom builds that exclude the Ajax module justifiably die here.
		if ( name === "load" && typeof args[ 0 ] === "string" ) {
			return oldLoad.apply( this, args );
		}

		migrateWarn( "jQuery.fn." + name + "() is deprecated" );

		args.splice( 0, 0, name );
		if ( arguments.length ) {
			return this.bind.apply( this, args );
		}

		// Use .triggerHandler here because:
		// - load and unload events don't need to bubble, only applied to window or image
		// - error event should not bubble to window, although it does pre-1.7
		// See http://bugs.jquery.com/ticket/11820
		this.triggerHandler.apply( this, args );
		return this;
	};

});

jQuery.fn.toggle = function( fn, fn2 ) {

	// Don't mess with animation or css toggles
	if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
		return oldToggle.apply( this, arguments );
	}
	migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");

	// Save reference to arguments for access in closure
	var args = arguments,
		guid = fn.guid || jQuery.guid++,
		i = 0,
		toggler = function( event ) {
			// Figure out which function to execute
			var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
			jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );

			// Make sure that clicks stop
			event.preventDefault();

			// and execute the function
			return args[ lastToggle ].apply( this, arguments ) || false;
		};

	// link all the functions, so any of them can unbind this click handler
	toggler.guid = guid;
	while ( i < args.length ) {
		args[ i++ ].guid = guid;
	}

	return this.click( toggler );
};

jQuery.fn.live = function( types, data, fn ) {
	migrateWarn("jQuery.fn.live() is deprecated");
	if ( oldLive ) {
		return oldLive.apply( this, arguments );
	}
	jQuery( this.context ).on( types, this.selector, data, fn );
	return this;
};

jQuery.fn.die = function( types, fn ) {
	migrateWarn("jQuery.fn.die() is deprecated");
	if ( oldDie ) {
		return oldDie.apply( this, arguments );
	}
	jQuery( this.context ).off( types, this.selector || "**", fn );
	return this;
};

// Turn global events into document-triggered events
jQuery.event.trigger = function( event, data, elem, onlyHandlers  ){
	if ( !elem && !rajaxEvent.test( event ) ) {
		migrateWarn( "Global events are undocumented and deprecated" );
	}
	return eventTrigger.call( this,  event, data, elem || document, onlyHandlers  );
};
jQuery.each( ajaxEvents.split("|"),
	function( _, name ) {
		jQuery.event.special[ name ] = {
			setup: function() {
				var elem = this;

				// The document needs no shimming; must be !== for oldIE
				if ( elem !== document ) {
					jQuery.event.add( document, name + "." + jQuery.guid, function() {
						jQuery.event.trigger( name, Array.prototype.slice.call( arguments, 1 ), elem, true );
					});
					jQuery._data( this, name, jQuery.guid++ );
				}
				return false;
			},
			teardown: function() {
				if ( this !== document ) {
					jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
				}
				return false;
			}
		};
	}
);

jQuery.event.special.ready = {
	setup: function() {
		if ( this === document ) {
			migrateWarn( "'ready' event is deprecated" );
		}
	}
};

var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack,
	oldFnFind = jQuery.fn.find;

jQuery.fn.andSelf = function() {
	migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
	return oldSelf.apply( this, arguments );
};

jQuery.fn.find = function( selector ) {
	var ret = oldFnFind.apply( this, arguments );
	ret.context = this.context;
	ret.selector = this.selector ? this.selector + " " + selector : selector;
	return ret;
};


// jQuery 1.6 did not support Callbacks, do not warn there
if ( jQuery.Callbacks ) {

	var oldDeferred = jQuery.Deferred,
		tuples = [
			// action, add listener, callbacks, .then handlers, final state
			[ "resolve", "done", jQuery.Callbacks("once memory"),
				jQuery.Callbacks("once memory"), "resolved" ],
			[ "reject", "fail", jQuery.Callbacks("once memory"),
				jQuery.Callbacks("once memory"), "rejected" ],
			[ "notify", "progress", jQuery.Callbacks("memory"),
				jQuery.Callbacks("memory") ]
		];

	jQuery.Deferred = function( func ) {
		var deferred = oldDeferred(),
			promise = deferred.promise();

		deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
			var fns = arguments;

			migrateWarn( "deferred.pipe() is deprecated" );

			return jQuery.Deferred(function( newDefer ) {
				jQuery.each( tuples, function( i, tuple ) {
					var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
					// deferred.done(function() { bind to newDefer or newDefer.resolve })
					// deferred.fail(function() { bind to newDefer or newDefer.reject })
					// deferred.progress(function() { bind to newDefer or newDefer.notify })
					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();

		};

		deferred.isResolved = function() {
			migrateWarn( "deferred.isResolved is deprecated" );
			return deferred.state() === "resolved";
		};

		deferred.isRejected = function() {
			migrateWarn( "deferred.isRejected is deprecated" );
			return deferred.state() === "rejected";
		};

		if ( func ) {
			func.call( deferred, deferred );
		}

		return deferred;
	};

}

})( jQuery, window );
jui/js/jquery.minicolors.js000064400000120424152177723720012021 0ustar00/*
 * jQuery MiniColors: A tiny color picker built on jQuery
 *
 * Copyright: Cory LaViska for A Beautiful Site, LLC: http://www.abeautifulsite.net/
 *
 * Contribute: https://github.com/claviska/jquery-minicolors
 *
 * @license: http://opensource.org/licenses/MIT
 *
 */
(function (factory) {
    /* jshint ignore:start */
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS
        module.exports = factory(require('jquery'));
    } else {
        // Browser globals
        factory(jQuery);
    }
    /* jshint ignore:end */
}(function ($) {

    'use strict';

    // Defaults
    $.minicolors = {
        defaults: {
            animationSpeed: 50,
            animationEasing: 'swing',
            change: null,
            changeDelay: 0,
            control: 'hue',
            dataUris: true,
            defaultValue: '',
            format: 'hex',
            hide: null,
            hideSpeed: 100,
            inline: false,
            keywords: '',
            letterCase: 'lowercase',
            opacity: false,
            position: 'bottom left',
            show: null,
            showSpeed: 100,
            theme: 'default',
            swatches: []
        }
    };

    // Public methods
    $.extend($.fn, {
        minicolors: function(method, data) {

            switch(method) {

                // Destroy the control
                case 'destroy':
                    $(this).each( function() {
                        destroy($(this));
                    });
                    return $(this);

                // Hide the color picker
                case 'hide':
                    hide();
                    return $(this);

                // Get/set opacity
                case 'opacity':
                    // Getter
                    if( data === undefined ) {
                        // Getter
                        return $(this).attr('data-opacity');
                    } else {
                        // Setter
                        $(this).each( function() {
                            updateFromInput($(this).attr('data-opacity', data));
                        });
                    }
                    return $(this);

                // Get an RGB(A) object based on the current color/opacity
                case 'rgbObject':
                    return rgbObject($(this), method === 'rgbaObject');

                // Get an RGB(A) string based on the current color/opacity
                case 'rgbString':
                case 'rgbaString':
                    return rgbString($(this), method === 'rgbaString');

                // Get/set settings on the fly
                case 'settings':
                    if( data === undefined ) {
                        return $(this).data('minicolors-settings');
                    } else {
                        // Setter
                        $(this).each( function() {
                            var settings = $(this).data('minicolors-settings') || {};
                            destroy($(this));
                            $(this).minicolors($.extend(true, settings, data));
                        });
                    }
                    return $(this);

                // Show the color picker
                case 'show':
                    show( $(this).eq(0) );
                    return $(this);

                // Get/set the hex color value
                case 'value':
                    if( data === undefined ) {
                        // Getter
                        return $(this).val();
                    } else {
                        // Setter
                        $(this).each( function() {
                            if( typeof(data) === 'object' ) {
                                if( data.opacity ) {
                                    $(this).attr('data-opacity', keepWithin(data.opacity, 0, 1));
                                }
                                if( data.color ) {
                                    $(this).val(data.color);
                                }
                            } else {
                                $(this).val(data);
                            }
                            updateFromInput($(this));
                        });
                    }
                    return $(this);

                // Initializes the control
                default:
                    if( method !== 'create' ) data = method;
                    $(this).each( function() {
                        init($(this), data);
                    });
                    return $(this);

            }

        }
    });

    // Initialize input elements
    function init(input, settings) {

        var minicolors = $('<div class="minicolors" />'),
            defaults = $.minicolors.defaults,
            size,
            swatches,
            swatch,
            panel,
            i;

        // Do nothing if already initialized
        if( input.data('minicolors-initialized') ) return;

        // Handle settings
        settings = $.extend(true, {}, defaults, settings);

        // The wrapper
        minicolors
            .addClass('minicolors-theme-' + settings.theme)
            .toggleClass('minicolors-with-opacity', settings.opacity)
            .toggleClass('minicolors-no-data-uris', settings.dataUris !== true);

        // Custom positioning
        if( settings.position !== undefined ) {
            $.each(settings.position.split(' '), function() {
                minicolors.addClass('minicolors-position-' + this);
            });
        }

        // Input size
        if( settings.format === 'rgb' ) {
            size = settings.opacity ? '25' : '20';
        } else {
            size = settings.keywords ? '11' : '7';
        }

        // The input
        input
            .addClass('minicolors-input')
            .data('minicolors-initialized', false)
            .data('minicolors-settings', settings)
            .prop('size', size)
            .wrap(minicolors)
            .after(
                '<div class="minicolors-panel minicolors-slider-' + settings.control + '">' +
                    '<div class="minicolors-slider minicolors-sprite">' +
                        '<div class="minicolors-picker"></div>' +
                    '</div>' +
                    '<div class="minicolors-opacity-slider minicolors-sprite">' +
                        '<div class="minicolors-picker"></div>' +
                    '</div>' +
                    '<div class="minicolors-grid minicolors-sprite">' +
                        '<div class="minicolors-grid-inner"></div>' +
                        '<div class="minicolors-picker"><div></div></div>' +
                    '</div>' +
                '</div>'
            );

        // The swatch
        if( !settings.inline ) {
            input.after('<span class="minicolors-swatch minicolors-sprite minicolors-input-swatch"><span class="minicolors-swatch-color"></span></span>');
            input.next('.minicolors-input-swatch').on('click', function(event) {
                event.preventDefault();
                input.focus();
            });
        }

        // Prevent text selection in IE
        panel = input.parent().find('.minicolors-panel');
        panel.on('selectstart', function() { return false; }).end();

        // Swatches
        if (settings.swatches && settings.swatches.length !== 0) {
            if (settings.swatches.length > 7) {
                settings.swatches.length = 7;
            }
            panel.addClass('minicolors-with-swatches');
            swatches = $('<ul class="minicolors-swatches"></ul>')
                .appendTo(panel);
            for(i = 0; i < settings.swatches.length; ++i) {
                swatch = settings.swatches[i];
                swatch = isRgb(swatch) ? parseRgb(swatch, true) : hex2rgb(parseHex(swatch, true));
                $('<li class="minicolors-swatch minicolors-sprite"><span class="minicolors-swatch-color"></span></li>')
                    .appendTo(swatches)
                    .data('swatch-color', settings.swatches[i])
                    .find('.minicolors-swatch-color')
                    .css({
                        backgroundColor: rgb2hex(swatch),
                        opacity: swatch.a
                    });
                settings.swatches[i] = swatch;
            }

        }

        // Inline controls
        if( settings.inline ) input.parent().addClass('minicolors-inline');

        updateFromInput(input, false);

        input.data('minicolors-initialized', true);

    }

    // Returns the input back to its original state
    function destroy(input) {

        var minicolors = input.parent();

        // Revert the input element
        input
            .removeData('minicolors-initialized')
            .removeData('minicolors-settings')
            .removeProp('size')
            .removeClass('minicolors-input');

        // Remove the wrap and destroy whatever remains
        minicolors.before(input).remove();

    }

    // Shows the specified dropdown panel
    function show(input) {

        var minicolors = input.parent(),
            panel = minicolors.find('.minicolors-panel'),
            settings = input.data('minicolors-settings');

        // Do nothing if uninitialized, disabled, inline, or already open
        if( !input.data('minicolors-initialized') ||
            input.prop('disabled') ||
            minicolors.hasClass('minicolors-inline') ||
            minicolors.hasClass('minicolors-focus')
        ) return;

        hide();

        minicolors.addClass('minicolors-focus');
        panel
            .stop(true, true)
            .fadeIn(settings.showSpeed, function() {
                if( settings.show ) settings.show.call(input.get(0));
            });

    }

    // Hides all dropdown panels
    function hide() {

        $('.minicolors-focus').each( function() {

            var minicolors = $(this),
                input = minicolors.find('.minicolors-input'),
                panel = minicolors.find('.minicolors-panel'),
                settings = input.data('minicolors-settings');

            panel.fadeOut(settings.hideSpeed, function() {
                if( settings.hide ) settings.hide.call(input.get(0));
                minicolors.removeClass('minicolors-focus');
            });

        });
    }

    // Moves the selected picker
    function move(target, event, animate) {

        var input = target.parents('.minicolors').find('.minicolors-input'),
            settings = input.data('minicolors-settings'),
            picker = target.find('[class$=-picker]'),
            offsetX = target.offset().left,
            offsetY = target.offset().top,
            x = Math.round(event.pageX - offsetX),
            y = Math.round(event.pageY - offsetY),
            duration = animate ? settings.animationSpeed : 0,
            wx, wy, r, phi;

        // Touch support
        if( event.originalEvent.changedTouches ) {
            x = event.originalEvent.changedTouches[0].pageX - offsetX;
            y = event.originalEvent.changedTouches[0].pageY - offsetY;
        }

        // Constrain picker to its container
        if( x < 0 ) x = 0;
        if( y < 0 ) y = 0;
        if( x > target.width() ) x = target.width();
        if( y > target.height() ) y = target.height();

        // Constrain color wheel values to the wheel
        if( target.parent().is('.minicolors-slider-wheel') && picker.parent().is('.minicolors-grid') ) {
            wx = 75 - x;
            wy = 75 - y;
            r = Math.sqrt(wx * wx + wy * wy);
            phi = Math.atan2(wy, wx);
            if( phi < 0 ) phi += Math.PI * 2;
            if( r > 75 ) {
                r = 75;
                x = 75 - (75 * Math.cos(phi));
                y = 75 - (75 * Math.sin(phi));
            }
            x = Math.round(x);
            y = Math.round(y);
        }

        // Move the picker
        if( target.is('.minicolors-grid') ) {
            picker
                .stop(true)
                .animate({
                    top: y + 'px',
                    left: x + 'px'
                }, duration, settings.animationEasing, function() {
                    updateFromControl(input, target);
                });
        } else {
            picker
                .stop(true)
                .animate({
                    top: y + 'px'
                }, duration, settings.animationEasing, function() {
                    updateFromControl(input, target);
                });
        }

    }

    // Sets the input based on the color picker values
    function updateFromControl(input, target) {

        function getCoords(picker, container) {

            var left, top;
            if( !picker.length || !container ) return null;
            left = picker.offset().left;
            top = picker.offset().top;

            return {
                x: left - container.offset().left + (picker.outerWidth() / 2),
                y: top - container.offset().top + (picker.outerHeight() / 2)
            };

        }

        var hue, saturation, brightness, x, y, r, phi,

            hex = input.val(),
            opacity = input.attr('data-opacity'),

            // Helpful references
            minicolors = input.parent(),
            settings = input.data('minicolors-settings'),
            swatch = minicolors.find('.minicolors-input-swatch'),

            // Panel objects
            grid = minicolors.find('.minicolors-grid'),
            slider = minicolors.find('.minicolors-slider'),
            opacitySlider = minicolors.find('.minicolors-opacity-slider'),

            // Picker objects
            gridPicker = grid.find('[class$=-picker]'),
            sliderPicker = slider.find('[class$=-picker]'),
            opacityPicker = opacitySlider.find('[class$=-picker]'),

            // Picker positions
            gridPos = getCoords(gridPicker, grid),
            sliderPos = getCoords(sliderPicker, slider),
            opacityPos = getCoords(opacityPicker, opacitySlider);

        // Handle colors
        if( target.is('.minicolors-grid, .minicolors-slider, .minicolors-opacity-slider') ) {

            // Determine HSB values
            switch(settings.control) {

                case 'wheel':
                    // Calculate hue, saturation, and brightness
                    x = (grid.width() / 2) - gridPos.x;
                    y = (grid.height() / 2) - gridPos.y;
                    r = Math.sqrt(x * x + y * y);
                    phi = Math.atan2(y, x);
                    if( phi < 0 ) phi += Math.PI * 2;
                    if( r > 75 ) {
                        r = 75;
                        gridPos.x = 69 - (75 * Math.cos(phi));
                        gridPos.y = 69 - (75 * Math.sin(phi));
                    }
                    saturation = keepWithin(r / 0.75, 0, 100);
                    hue = keepWithin(phi * 180 / Math.PI, 0, 360);
                    brightness = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
                    hex = hsb2hex({
                        h: hue,
                        s: saturation,
                        b: brightness
                    });

                    // Update UI
                    slider.css('backgroundColor', hsb2hex({ h: hue, s: saturation, b: 100 }));
                    break;

                case 'saturation':
                    // Calculate hue, saturation, and brightness
                    hue = keepWithin(parseInt(gridPos.x * (360 / grid.width()), 10), 0, 360);
                    saturation = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
                    brightness = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
                    hex = hsb2hex({
                        h: hue,
                        s: saturation,
                        b: brightness
                    });

                    // Update UI
                    slider.css('backgroundColor', hsb2hex({ h: hue, s: 100, b: brightness }));
                    minicolors.find('.minicolors-grid-inner').css('opacity', saturation / 100);
                    break;

                case 'brightness':
                    // Calculate hue, saturation, and brightness
                    hue = keepWithin(parseInt(gridPos.x * (360 / grid.width()), 10), 0, 360);
                    saturation = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
                    brightness = keepWithin(100 - Math.floor(sliderPos.y * (100 / slider.height())), 0, 100);
                    hex = hsb2hex({
                        h: hue,
                        s: saturation,
                        b: brightness
                    });

                    // Update UI
                    slider.css('backgroundColor', hsb2hex({ h: hue, s: saturation, b: 100 }));
                    minicolors.find('.minicolors-grid-inner').css('opacity', 1 - (brightness / 100));
                    break;

                default:
                    // Calculate hue, saturation, and brightness
                    hue = keepWithin(360 - parseInt(sliderPos.y * (360 / slider.height()), 10), 0, 360);
                    saturation = keepWithin(Math.floor(gridPos.x * (100 / grid.width())), 0, 100);
                    brightness = keepWithin(100 - Math.floor(gridPos.y * (100 / grid.height())), 0, 100);
                    hex = hsb2hex({
                        h: hue,
                        s: saturation,
                        b: brightness
                    });

                    // Update UI
                    grid.css('backgroundColor', hsb2hex({ h: hue, s: 100, b: 100 }));
                    break;

            }

            // Handle opacity
            if( settings.opacity ) {
                opacity = parseFloat(1 - (opacityPos.y / opacitySlider.height())).toFixed(2);
            } else {
                opacity = 1;
            }

            updateInput(input, hex, opacity);
        }
        else {
            // Set swatch color
            swatch.find('span').css({
                backgroundColor: hex,
                opacity: opacity
            });

            // Handle change event
            doChange(input, hex, opacity);
        }
    }

    // Sets the value of the input and does the appropriate conversions
    // to respect settings, also updates the swatch
    function updateInput(input, value, opacity) {
        var rgb,

        // Helpful references
        minicolors = input.parent(),
        settings = input.data('minicolors-settings'),
        swatch = minicolors.find('.minicolors-input-swatch');

        if( settings.opacity ) input.attr('data-opacity', opacity);

        // Set color string
        if( settings.format === 'rgb' ) {
            // Returns RGB(A) string

            // Checks for input format and does the conversion
            if ( isRgb(value) ) {
                rgb = parseRgb(value, true);
            }
            else {
                rgb = hex2rgb(parseHex(value, true));
            }

            opacity = input.attr('data-opacity') === '' ? 1 : keepWithin( parseFloat( input.attr('data-opacity') ).toFixed(2), 0, 1 );
            if( isNaN( opacity ) || !settings.opacity ) opacity = 1;

            if( input.minicolors('rgbObject').a <= 1 && rgb && settings.opacity) {
                // Set RGBA string if alpha
                value = 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + parseFloat( opacity ) + ')';
            } else {
                // Set RGB string (alpha = 1)
                value = 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')';
            }
        } else {
            // Returns hex color

            // Checks for input format and does the conversion
            if ( isRgb(value) ) {
                value = rgbString2hex(value);
            }

            value = convertCase( value, settings.letterCase );
        }

        // Update value from picker
        input.val( value );

        // Set swatch color
        swatch.find('span').css({
            backgroundColor: value,
            opacity: opacity
        });

        // Handle change event
        doChange(input, value, opacity);
    }

    // Sets the color picker values from the input
    function updateFromInput(input, preserveInputValue) {

        var hex,
            hsb,
            opacity,
            keywords,
            alpha,
            value,
            x, y, r, phi,

            // Helpful references
            minicolors = input.parent(),
            settings = input.data('minicolors-settings'),
            swatch = minicolors.find('.minicolors-input-swatch'),

            // Panel objects
            grid = minicolors.find('.minicolors-grid'),
            slider = minicolors.find('.minicolors-slider'),
            opacitySlider = minicolors.find('.minicolors-opacity-slider'),

            // Picker objects
            gridPicker = grid.find('[class$=-picker]'),
            sliderPicker = slider.find('[class$=-picker]'),
            opacityPicker = opacitySlider.find('[class$=-picker]');

        // Determine hex/HSB values
        if( isRgb(input.val()) ) {
            // If input value is a rgb(a) string, convert it to hex color and update opacity
            hex = rgbString2hex(input.val());
            alpha = keepWithin(parseFloat(getAlpha(input.val())).toFixed(2), 0, 1);
            if( alpha ) {
                input.attr('data-opacity', alpha);
            }
        } else {
            hex = convertCase(parseHex(input.val(), true), settings.letterCase);
        }

        if( !hex ){
            hex = convertCase(parseInput(settings.defaultValue, true), settings.letterCase);
        }
        hsb = hex2hsb(hex);

        // Get array of lowercase keywords
        keywords = !settings.keywords ? [] : $.map(settings.keywords.split(','), function(a) {
            return $.trim(a.toLowerCase());
        });

        // Set color string
        if( input.val() !== '' && $.inArray(input.val().toLowerCase(), keywords) > -1 ) {
            value = convertCase(input.val());
        } else {
            value = isRgb(input.val()) ? parseRgb(input.val()) : hex;
        }

        // Update input value
        if( !preserveInputValue ) input.val(value);

        // Determine opacity value
        if( settings.opacity ) {
            // Get from data-opacity attribute and keep within 0-1 range
            opacity = input.attr('data-opacity') === '' ? 1 : keepWithin(parseFloat(input.attr('data-opacity')).toFixed(2), 0, 1);
            if( isNaN(opacity) ) opacity = 1;
            input.attr('data-opacity', opacity);
            swatch.find('span').css('opacity', opacity);

            // Set opacity picker position
            y = keepWithin(opacitySlider.height() - (opacitySlider.height() * opacity), 0, opacitySlider.height());
            opacityPicker.css('top', y + 'px');
        }

        // Set opacity to zero if input value is transparent
        if( input.val().toLowerCase() === 'transparent' ) {
            swatch.find('span').css('opacity', 0);
        }

        // Update swatch
        swatch.find('span').css('backgroundColor', hex);

        // Determine picker locations
        switch(settings.control) {

            case 'wheel':
                // Set grid position
                r = keepWithin(Math.ceil(hsb.s * 0.75), 0, grid.height() / 2);
                phi = hsb.h * Math.PI / 180;
                x = keepWithin(75 - Math.cos(phi) * r, 0, grid.width());
                y = keepWithin(75 - Math.sin(phi) * r, 0, grid.height());
                gridPicker.css({
                    top: y + 'px',
                    left: x + 'px'
                });

                // Set slider position
                y = 150 - (hsb.b / (100 / grid.height()));
                if( hex === '' ) y = 0;
                sliderPicker.css('top', y + 'px');

                // Update panel color
                slider.css('backgroundColor', hsb2hex({ h: hsb.h, s: hsb.s, b: 100 }));
                break;

            case 'saturation':
                // Set grid position
                x = keepWithin((5 * hsb.h) / 12, 0, 150);
                y = keepWithin(grid.height() - Math.ceil(hsb.b / (100 / grid.height())), 0, grid.height());
                gridPicker.css({
                    top: y + 'px',
                    left: x + 'px'
                });

                // Set slider position
                y = keepWithin(slider.height() - (hsb.s * (slider.height() / 100)), 0, slider.height());
                sliderPicker.css('top', y + 'px');

                // Update UI
                slider.css('backgroundColor', hsb2hex({ h: hsb.h, s: 100, b: hsb.b }));
                minicolors.find('.minicolors-grid-inner').css('opacity', hsb.s / 100);
                break;

            case 'brightness':
                // Set grid position
                x = keepWithin((5 * hsb.h) / 12, 0, 150);
                y = keepWithin(grid.height() - Math.ceil(hsb.s / (100 / grid.height())), 0, grid.height());
                gridPicker.css({
                    top: y + 'px',
                    left: x + 'px'
                });

                // Set slider position
                y = keepWithin(slider.height() - (hsb.b * (slider.height() / 100)), 0, slider.height());
                sliderPicker.css('top', y + 'px');

                // Update UI
                slider.css('backgroundColor', hsb2hex({ h: hsb.h, s: hsb.s, b: 100 }));
                minicolors.find('.minicolors-grid-inner').css('opacity', 1 - (hsb.b / 100));
                break;

            default:
                // Set grid position
                x = keepWithin(Math.ceil(hsb.s / (100 / grid.width())), 0, grid.width());
                y = keepWithin(grid.height() - Math.ceil(hsb.b / (100 / grid.height())), 0, grid.height());
                gridPicker.css({
                    top: y + 'px',
                    left: x + 'px'
                });

                // Set slider position
                y = keepWithin(slider.height() - (hsb.h / (360 / slider.height())), 0, slider.height());
                sliderPicker.css('top', y + 'px');

                // Update panel color
                grid.css('backgroundColor', hsb2hex({ h: hsb.h, s: 100, b: 100 }));
                break;

        }

        // Fire change event, but only if minicolors is fully initialized
        if( input.data('minicolors-initialized') ) {
            doChange(input, value, opacity);
        }

    }

    // Runs the change and changeDelay callbacks
    function doChange(input, value, opacity) {

        var settings = input.data('minicolors-settings'),
            lastChange = input.data('minicolors-lastChange'),
            obj,
            sel,
            i;

        // Only run if it actually changed
        if( !lastChange || lastChange.value !== value || lastChange.opacity !== opacity ) {

            // Remember last-changed value
            input.data('minicolors-lastChange', {
                value: value,
                opacity: opacity
            });

            // Check and select applicable swatch
            if (settings.swatches && settings.swatches.length !== 0) {
                if(!isRgb(value)) {
                    obj = hex2rgb(value);
                }
                else {
                    obj = parseRgb(value, true);
                }
                sel = -1;
                for(i = 0; i < settings.swatches.length; ++i) {
                    if (obj.r === settings.swatches[i].r && obj.g === settings.swatches[i].g && obj.b === settings.swatches[i].b && obj.a === settings.swatches[i].a) {
                        sel = i;
                        break;
                    }
                }

                input.parent().find('.minicolors-swatches .minicolors-swatch').removeClass('selected');
                if (i !== -1) {
                    input.parent().find('.minicolors-swatches .minicolors-swatch').eq(i).addClass('selected');
                }
            }

            // Fire change event
            if( settings.change ) {
                if( settings.changeDelay ) {
                    // Call after a delay
                    clearTimeout(input.data('minicolors-changeTimeout'));
                    input.data('minicolors-changeTimeout', setTimeout( function() {
                        settings.change.call(input.get(0), value, opacity);
                    }, settings.changeDelay));
                } else {
                    // Call immediately
                    settings.change.call(input.get(0), value, opacity);
                }
            }
            input.trigger('change').trigger('input');
        }

    }

    // Generates an RGB(A) object based on the input's value
    function rgbObject(input) {
        var hex = parseHex($(input).val(), true),
            rgb = hex2rgb(hex),
            opacity = $(input).attr('data-opacity');
        if( !rgb ) return null;
        if( opacity !== undefined ) $.extend(rgb, { a: parseFloat(opacity) });
        return rgb;
    }

    // Generates an RGB(A) string based on the input's value
    function rgbString(input, alpha) {
        var hex = parseHex($(input).val(), true),
            rgb = hex2rgb(hex),
            opacity = $(input).attr('data-opacity');
        if( !rgb ) return null;
        if( opacity === undefined ) opacity = 1;
        if( alpha ) {
            return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + parseFloat(opacity) + ')';
        } else {
            return 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')';
        }
    }

    // Converts to the letter case specified in settings
    function convertCase(string, letterCase) {
        return letterCase === 'uppercase' ? string.toUpperCase() : string.toLowerCase();
    }

    // Parses a string and returns a valid hex string when possible
    function parseHex(string, expand) {
        string = string.replace(/^#/g, '');
        if( !string.match(/^[A-F0-9]{3,6}/ig) ) return '';
        if( string.length !== 3 && string.length !== 6 ) return '';
        if( string.length === 3 && expand ) {
            string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];
        }
        return '#' + string;
    }

    // Parses a string and returns a valid RGB(A) string when possible
    function parseRgb(string, obj) {

        var values = string.replace(/[^\d,.]/g, ''),
            rgba = values.split(',');

        rgba[0] = keepWithin(parseInt(rgba[0], 10), 0, 255);
        rgba[1] = keepWithin(parseInt(rgba[1], 10), 0, 255);
        rgba[2] = keepWithin(parseInt(rgba[2], 10), 0, 255);
        if( rgba[3] ) {
            rgba[3] = keepWithin(parseFloat(rgba[3], 10), 0, 1);
        }

        // Return RGBA object
        if( obj ) {
            return {
                r: rgba[0],
                g: rgba[1],
                b: rgba[2],
                a: rgba[3] ? rgba[3] : null
            };
        }

        // Return RGBA string
        if( typeof(rgba[3]) !== 'undefined' && rgba[3] <= 1 ) {
            return 'rgba(' + rgba[0] + ', ' + rgba[1] + ', ' + rgba[2] + ', ' + rgba[3] + ')';
        } else {
            return 'rgb(' + rgba[0] + ', ' + rgba[1] + ', ' + rgba[2] + ')';
        }

    }

    // Parses a string and returns a valid color string when possible
    function parseInput(string, expand) {
        if( isRgb(string) ) {
            // Returns a valid rgb(a) string
            return parseRgb(string);
        } else {
            return parseHex(string, expand);
        }
    }

    // Keeps value within min and max
    function keepWithin(value, min, max) {
        if( value < min ) value = min;
        if( value > max ) value = max;
        return value;
    }

    // Checks if a string is a valid RGB(A) string
    function isRgb(string) {
        var rgb = string.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
        return (rgb && rgb.length === 4) ? true : false;
    }

    // Function to get alpha from a RGB(A) string
    function getAlpha(rgba) {
        rgba = rgba.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+(\.\d{1,2})?|\.\d{1,2})[\s+]?/i);
        return (rgba && rgba.length === 6) ? rgba[4] : '1';
    }

   // Converts an HSB object to an RGB object
    function hsb2rgb(hsb) {
        var rgb = {};
        var h = Math.round(hsb.h);
        var s = Math.round(hsb.s * 255 / 100);
        var v = Math.round(hsb.b * 255 / 100);
        if(s === 0) {
            rgb.r = rgb.g = rgb.b = v;
        } else {
            var t1 = v;
            var t2 = (255 - s) * v / 255;
            var t3 = (t1 - t2) * (h % 60) / 60;
            if( h === 360 ) h = 0;
            if( h < 60 ) { rgb.r = t1; rgb.b = t2; rgb.g = t2 + t3; }
            else if( h < 120 ) {rgb.g = t1; rgb.b = t2; rgb.r = t1 - t3; }
            else if( h < 180 ) {rgb.g = t1; rgb.r = t2; rgb.b = t2 + t3; }
            else if( h < 240 ) {rgb.b = t1; rgb.r = t2; rgb.g = t1 - t3; }
            else if( h < 300 ) {rgb.b = t1; rgb.g = t2; rgb.r = t2 + t3; }
            else if( h < 360 ) {rgb.r = t1; rgb.g = t2; rgb.b = t1 - t3; }
            else { rgb.r = 0; rgb.g = 0; rgb.b = 0; }
        }
        return {
            r: Math.round(rgb.r),
            g: Math.round(rgb.g),
            b: Math.round(rgb.b)
        };
    }

    // Converts an RGB string to a hex string
    function rgbString2hex(rgb){
        rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
        return (rgb && rgb.length === 4) ? '#' +
        ('0' + parseInt(rgb[1],10).toString(16)).slice(-2) +
        ('0' + parseInt(rgb[2],10).toString(16)).slice(-2) +
        ('0' + parseInt(rgb[3],10).toString(16)).slice(-2) : '';
    }

    // Converts an RGB object to a hex string
    function rgb2hex(rgb) {
        var hex = [
            rgb.r.toString(16),
            rgb.g.toString(16),
            rgb.b.toString(16)
        ];
        $.each(hex, function(nr, val) {
            if (val.length === 1) hex[nr] = '0' + val;
        });
        return '#' + hex.join('');
    }

    // Converts an HSB object to a hex string
    function hsb2hex(hsb) {
        return rgb2hex(hsb2rgb(hsb));
    }

    // Converts a hex string to an HSB object
    function hex2hsb(hex) {
        var hsb = rgb2hsb(hex2rgb(hex));
        if( hsb.s === 0 ) hsb.h = 360;
        return hsb;
    }

    // Converts an RGB object to an HSB object
    function rgb2hsb(rgb) {
        var hsb = { h: 0, s: 0, b: 0 };
        var min = Math.min(rgb.r, rgb.g, rgb.b);
        var max = Math.max(rgb.r, rgb.g, rgb.b);
        var delta = max - min;
        hsb.b = max;
        hsb.s = max !== 0 ? 255 * delta / max : 0;
        if( hsb.s !== 0 ) {
            if( rgb.r === max ) {
                hsb.h = (rgb.g - rgb.b) / delta;
            } else if( rgb.g === max ) {
                hsb.h = 2 + (rgb.b - rgb.r) / delta;
            } else {
                hsb.h = 4 + (rgb.r - rgb.g) / delta;
            }
        } else {
            hsb.h = -1;
        }
        hsb.h *= 60;
        if( hsb.h < 0 ) {
            hsb.h += 360;
        }
        hsb.s *= 100/255;
        hsb.b *= 100/255;
        return hsb;
    }

    // Converts a hex string to an RGB object
    function hex2rgb(hex) {
        hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
        return {
            /* jshint ignore:start */
            r: hex >> 16,
            g: (hex & 0x00FF00) >> 8,
            b: (hex & 0x0000FF)
            /* jshint ignore:end */
        };
    }

    // Handle events
    $(document)
        // Hide on clicks outside of the control
        .on('mousedown.minicolors touchstart.minicolors', function(event) {
            if( !$(event.target).parents().add(event.target).hasClass('minicolors') ) {
                hide();
            }
        })
        // Start moving
        .on('mousedown.minicolors touchstart.minicolors', '.minicolors-grid, .minicolors-slider, .minicolors-opacity-slider', function(event) {
            var target = $(this);
            event.preventDefault();
            $(document).data('minicolors-target', target);
            move(target, event, true);
        })
        // Move pickers
        .on('mousemove.minicolors touchmove.minicolors', function(event) {
            var target = $(document).data('minicolors-target');
            if( target ) move(target, event);
        })
        // Stop moving
        .on('mouseup.minicolors touchend.minicolors', function() {
            $(this).removeData('minicolors-target');
        })
        // Selected a swatch
        .on('click.minicolors', '.minicolors-swatches li', function(event) {
            event.preventDefault();
            var target = $(this), input = target.parents('.minicolors').find('.minicolors-input'), color = target.data('swatch-color');
            updateInput(input, color, getAlpha(color));
            updateFromInput(input);
        })
        // Show panel when swatch is clicked
        .on('mousedown.minicolors touchstart.minicolors', '.minicolors-input-swatch', function(event) {
            var input = $(this).parent().find('.minicolors-input');
            event.preventDefault();
            show(input);
        })
        // Show on focus
        .on('focus.minicolors', '.minicolors-input', function() {
            var input = $(this);
            if( !input.data('minicolors-initialized') ) return;
            show(input);
        })
        // Update value on blur
        .on('blur.minicolors', '.minicolors-input', function() {
            var input = $(this),
                settings = input.data('minicolors-settings'),
                keywords,
                hex,
                rgba,
                swatchOpacity,
                value;

            if( !input.data('minicolors-initialized') ) return;

            // Get array of lowercase keywords
            keywords = !settings.keywords ? [] : $.map(settings.keywords.split(','), function(a) {
                return $.trim(a.toLowerCase());
            });

            // Set color string
            if( input.val() !== '' && $.inArray(input.val().toLowerCase(), keywords) > -1 ) {
                value = input.val();
            } else {
                // Get RGBA values for easy conversion
                if( isRgb(input.val()) ) {
                    rgba = parseRgb(input.val(), true);
                } else {
                    hex = parseHex(input.val(), true);
                    rgba = hex ? hex2rgb(hex) : null;
                }

                // Convert to format
                if( rgba === null ) {
                    value = settings.defaultValue;
                } else if( settings.format === 'rgb' ) {
                    value = settings.opacity ?
                        parseRgb('rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' + input.attr('data-opacity') + ')') :
                        parseRgb('rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')');
                } else {
                    value = rgb2hex(rgba);
                }
            }

            // Update swatch opacity
            swatchOpacity = settings.opacity ? input.attr('data-opacity') : 1;
            if( value.toLowerCase() === 'transparent' ) swatchOpacity = 0;
            input
                .closest('.minicolors')
                .find('.minicolors-input-swatch > span')
                .css('opacity', swatchOpacity);

            // Set input value
            input.val(value);

            // Is it blank?
            if( input.val() === '' ) input.val(parseInput(settings.defaultValue, true));

            // Adjust case
            input.val( convertCase(input.val(), settings.letterCase) );

        })
        // Handle keypresses
        .on('keydown.minicolors', '.minicolors-input', function(event) {
            var input = $(this);
            if( !input.data('minicolors-initialized') ) return;
            switch(event.keyCode) {
                case 9: // tab
                    hide();
                    break;
                case 13: // enter
                case 27: // esc
                    hide();
                    input.blur();
                    break;
            }
        })
        // Update on keyup
        .on('keyup.minicolors', '.minicolors-input', function() {
            var input = $(this);
            if( !input.data('minicolors-initialized') ) return;
            updateFromInput(input, true);
        })
        // Update on paste
        .on('paste.minicolors', '.minicolors-input', function() {
            var input = $(this);
            if( !input.data('minicolors-initialized') ) return;
            setTimeout( function() {
                updateFromInput(input, true);
            }, 1);
        });

}));
jui/images/ajax-loader.gif000064400000023315152177723720011477 0ustar00GIF89aBB����nZ����ڜ�ݕ�ߥ���bC����X����T1|���x�䯑�h��ۺ������kl�ֹ���肯��શ�냼3��爳�:��ᰁ�+�������������=��9�ݠ�����ޠr�خ������ޣ��M���������䳌�T�������ܓ�⺹�����5��A�ߥ����ݘ�ޞ����ݎ�Z��@��ɼ���ߢ�^=�����D���Z8����ᤖ�s���_��������������R.��������ٚ��J���ޜ��᭲��������tX����^������i������������iJ������a������W5��Gg�����M�ֆ�����B�ź���房H����������҂����������E��������ʾ�����J�������뽿������������������ؙ�����ڛ�����~�����������۝�����fG���ߩ�����P��ͺ����ߤ��א��F�h�mPw�ڋ�<e���G��������o������Q��7�ܟ�ܞ���ޡ�ݚ�ޛ����ݟ����[:�ܟ��c��騺���ߧ����`?�������������ޚ������۠�ޤ�P,�ܜx������B�ޛ������:�ݟ�ޝ�ڗ���!�NETSCAPE2.0!�XMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:72DD966362FBE311BD82CD0B15024A0A" xmpMM:DocumentID="xmp.did:1F3C7527FB6311E38EB4DD59D34DB563" xmpMM:InstanceID="xmp.iid:1F3C7526FB6311E38EB4DD59D34DB563" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:74DD966362FBE311BD82CD0B15024A0A" stRef:documentID="xmp.did:72DD966362FBE311BD82CD0B15024A0A"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

	!�	2�,BB��	(�
�v�J93��Ç#B��
�芸�B��eJ�ɓ�$²%Kb���R$"8ՍA�S"#{@.�p���14m��I$=��eQ�P�,c��XS$Ӧٲ9�*�U�X�H�7�kȯa�j�E��'�^L{�ۥ8�fӆf�@P�
�+���y�%
��M�q�.u�*�j�a�R	��$�4^�%���N)S����͛�o&�HT#-ɡ$ȓ�}[6K{���ΌF7�ݾY0���#	��O�|�y�{���83���s/@߰�P��O��y��$M��%�{�e��ї�;���_~������7$c`v`u	ʷ]�d�NH!�%�!l��D{r��v�5h�)�( *���/��@���u
��`0�ܠ̔?Ya�.��Pk
��(�WD�#���SR	��W��al��/����o��!�#�x�f����@rC�$�曐H��b*��C��	h��V�,��(^	�!�I;���X� ̥�
��
�C�	I���/wjGNb	3� �*(�Ica�'k����HD�k��i�A��		��H|821i��JK��|��s,r'tyҷd2F���k��+�$�:4̐�u�R��C��ⰾ������@���'�!"���1P�?��K҇$��E�7�����\ܓ@�%�r�}�!t˗�	srj�䀓
�s�0���s��	��@-t&�\r��W2*OS�I"9�	+	H�� ��@�}h-�u@p ʬ����'�@��MN~�3O�S>��w��u��w�BB�UOr�v�#�O�n.�uGn��W~1�"�TW48x�;�x۽�>����z��}�R�PK������I�-���C�������g ��`r��Է���?�0�`B������ߓ�����Y$�i���8c'9�.��Jd� 0Z���L��@��D	J
Z�}�6 P�M���KX�BD�^��]��pۘ@��81��h�*�p @��XAf��؃T�'>�Q��	�XŝD�5����E7��H$ET^��2����"�����q���ȿ#��b��&Hp�>��>���H*�=�
:A�R&r�Bla�1�G"qKD�fp�J�щ�8����A�R8�E)M�9��ф+�8���d3��-�/�ᓿ�G0-a�a"�����@���	�s����)MK��!��f��	^����f� �΁����<�,�v�R�x&�J<B����=��M/�s �9'��H��k(h4m�P��#8�<�"jO|�Ң)7j���d�ȩA5����0�P�V*QK�"�hCڰQ�naE�r�ӑj�I�9~!T�F��DD<1��>��؊ *�AUvҒbu�)�1�_�U�,�ET>Df=+T!�	��@�H,UEJ�P�!�|`׻u�-$������笩`i@�!��!0X�.��Ć����@
^��`r����JϑY;"�����*ا������?&�Zֶ��u�A͈��޵�}d`G{\X����?��4׹���U-���ڕ���2iZ��z��@�?��򖷹ύ�N�{[�F��ͮF����~���C	��_�6��]/u'k�SL·�e�Y�`�~@>�����
x��l����=�7���n����*^��/��ג��H�YN7��;�q�'� ��.~ql5�Q��3u�u\b)�x3��[��2����eDr��ٸd���?�/�y�D�P1��BX�IHь6�A��C!�l�=�B4k	(�l�e�s�i��?W��%�4Dp_=��q�"2}�_��$���#<�����o
�,|�Ң��@�bS� �Ğ3"v��gL"":��5V��<6�(�D�aNI B�	!�	2�,BB��	(�
�v�J93��Ç#B�bB
<x�����B��eJ�ɓmu)ò%K5F��R$"8ՍA�S��x���r�2���chڼ��H6**zJ�"ހB�M%H�ǚ"�:͖��ԩ&h]����3��K���\gy¢�wmV�\��e��n6mh�T5�b���{���.mҭ�
q�+��P)U+C�\.uQ#D��JnLV�W�K5�65�M��Yg�`��#7Rp�ƜZ��)�m�2^9��
��pL��?=PЍ)ҧh�zt��[
��0g�ݽ_��b���zʱ�\5�g[*7�A�Xv��w�1�_���t�
�6w�{kŧ��E�݄��wa��1��!��1�͈����]9a�]+��h�g�hc� �'�{=Vf�@��&aw"�a0�Ҥ�O~H`���H�dk��&���_]��$�L�I�g6�&�=�`�C��S$��'��8#�b�))JH�#ɡ��|�p�D�L1'��<��g�њ�1Dʠ
1�b�#j��I;ɄY��El���ذs%D��y`5������C�k�1|��$�D�Ƭv�����HDGk�j��1ODtIzh�xO��w$�>$�!�n��1y����+�(�['a�E,��ߒ�C���&�'�1q8$�c�瑇Ƿ(�P82'.Js�har��,_��Ư�p�̷4ݴ�af�J�4ƾ?_��?��C4�-��+�,=��N+,H$)L-�Q<9����r�^v$���CC�g�}�+��n�í<Ma��㇯x]t����́;}��+�#�˓
��_��d��?\T���=!�����m�וTr�yĻ��w�>��h���^�YW\�z��;s���7�|�χO�?˰-�c*�R���/����r��΋�9�~8�y��z����	#LK"O���g�&�1q�@D@Z��=I����AJP �H�?Ҁ=
 p��Lr�]�C�� �����E㰀Ih��X!D�6Q�D��aiH�!�e� Aw���0�C,��`�4��3d"
������h��-hE�B�@G/t�	c��
cL�@cu��6�o܉KP�ԑ�Gl���G>�C*/�@ ��Z����C�H�F:��]l�+�G?�d$��&IX@��Ai�G� �0M��T2��|�BQ"�\C��D�>N�L�ᐠ�q:
a��uԇ#R�="S
RJF1gBS�0�5y��p���f)����x.��D':����ӝ�,�C��zv���g>��H8�s 
��@�������*��u����'/VQ|���64��<t
m'4GJ�uǞ�X�J!*Qa�"[H�F�`S�� P��w(�A]�PYj�P�"1mH16*�?���(�T��S
�3"�8�/��ՕZ"��H�(P��5^'9*��փ:�yu�)�1�_86�C�Er��K>�
K��ް
=Hd�hךSg�B
@(|��>V�B=".h��,�D�ͬf� �0n 0X�. Z�ⴴ��@
^�Ԓ��umP�!�c��0Yw��,� �@`9\���5lH	��>V�KD�7t�[�ڷ	���>\��׸lm�,��^ǒ�c<'}�k_�v��/�{��Ju�υnN���t��mp��ІDX�n�,`������1?�`��ؾ`C1|��K��ŵ�N�I�%��
�H0M��/ �`0�z����,~�-:OC�L�����?���U�o���\
�`���-�f�:��d^�Мf ������(�O�@�uf��yx�|��G�T�`��[yR�g<������;3Z�x�"-i�~�$�(��Ɍjy8qϑFqyy��4@�8�5��!G(�պ�E�Or��m���k����ˎ�$���S�z�s]��f["Y(���qDDDp��p��Ԟ�'�(�-J݄78�!!�	2�,BB��	(�
�v�J93��Ç#B�bB
<x�����B��eJ�ɓmu)ò%K5F��R$"8ՍA�S��x���r�2���chڼ��H6**zJ�"ހB�M%H�ǚ"�:͖��ԩ&h]����3��K���\gy¢�wmV�\��e��n6mh�T5�b���{���.mҭ�
q�+��P)U+C�\.uQ#D��JnLV�W�K5�65�M��Yg�`��#7Rp�ƜZ��)�m�2^9��
��pL��?=PЍ)ҧh�zt��[
��0g�ݽ_��b���zʱ�\5�g[*7�A�Xv��w�1�_���t�
�6w�{kŧ��E�݄��wa��1��!��1�͈����]9a�]+��h�g�hc� �'�{=Vf�@��&aw"�a0�Ҥ�O~H`���H�dk��&���_]��$�L�I�g6�&�=�`�C��S$��'��8#�b�))JH�#ɡ��|�p�D�L1'��<��g�њ�1Dʠ
1�b�#j��I;ɄY��El���ذs%D��y`5������C�k�1|�Ij�z`<9�~�Dt��^+���ؠ@D����7�Ԉ~G2Q�C�!���|����"֋ҽu2�QD�o�Bl�$� 쐬���IaD\�IpG��{��_p̱�u�#s�4G��'�@*߱r�g�m�1�܇$�d��}*����|��0��B��/;Go��d7-H$)@�Q<9����r�[s�u$�B 6�}�A���3h��B��4��/�C�����Q��2K��d��?�N�<�@΋�9NN~�Å�v�.�sN�?�A
袧וTr��xij�:�w�>��s�;��v
R�u�_�3�o�|C
����/��0��PK�kO�ܿ�I��>>��k^p��~"�30a�iID���p7����c�!�����y�
PB�����	
��G������I�
 ��x�G��9�-8F
�W�B��!D�-t��8��w��ϝ-��1���GL���':↙�����	d�,Z�F��E/�ȣ�����8#%�8E6ncS49� v1
"��Hɝ�Q��͈7Ґ��]O�P�E2ґ0��$)I�0��@&5	H(`k%�T�l�18�UN���Aq`KY�R�NDE�1]�qoD	~	�Sb@����LeN���t&-;��S�C�l�hf�UЁ��d�"��r.3�Hg&��ρ��H�4�-���\d
߄�V��
�@�XЁ����T�,xҁ�B��x&֑L<���(4�Ύ�T���˓t &ŧ* ��e��1ͨ:g�B�Q�V�iCԇrq�`�zl1�J�S!���t[)J�@U��t���J�b��
��t�V���$�PE2��
��q�:W��Vt�,��״B�Q�CÑ��Vժ��BC��:2�1<)���a�
�jei@�!���!:�F8v�Y�~��hbiĹz� �'�Dhbf�,ZiK�zd�0������<�0�(����l�KkXC�c�v����~����#qk^7� �P�.{��� �/��|����vS��}�r��R׽��:ӗ���->��Hz�bFh��:`���C:�aw�$>>���=8�f����"3����KUGt�wH��ʖ�Bvq��<�$����q�݊�(���x*�-L�!o���[����`1߷X8#��`�X������c�t�0gW
U4q$@�T�@�f��
(�
�������p��$9�B����!�`�PO}@{��?�F�hh�$�`���0Q�z���#��/�����@�cc�>I�<c�±�
t����$�P��J�G@!�2�,BB��	X*δ�Q�2��Ç#B�bB
<x����Y�� ?�#��ɇ���Y�r�#E���)'sJ��OV-W��0��L�57(E�K�Ӂ*�
�h�T�r:�Q�W�>5Ak*U�A]��y4��
<����f���B��[����].t�X,��]�S�����_�p=p�éR�ͮ��r��!Bt�Pr�qټ?[�98�o�q�x›w%�#�����Ԫ)w
�,Z��*#�|��޾+-Z���CA7b���y���_;g)d+��_3�ލ���2�� D<���)WMz�Ŗ�
��g�|��כ}�� ��!6b���	��Y�)au^W�2,2���Ënh�q�x�l���� vA@�ߊW6/���u�ލ���'�h���"2\!�I&�3RS㓏��FC;PY�|@
�"�F���K��ܙ�x�-��X"��W��_��(JH�#ĕy^�w�p�D��g}�<��|�j��	(�6��fz��Q&5B(v�>d�\D�Ư��Ɏ��Z���lt��@)�������+%���]�D���-DG�:-��]��
Dt�xe�x��qj��C��!����|��ro��D���ݻ_Q�ۯ,�$;�*ye&l�+Xf��w@���V���g<P2��I�dw��L�w��&KL1���r�43�ƬDN���2��#���3����C��тD�B�d�SO�)��qG�V�	�p}q}xmG&����d��9������\�mu���,K���^��?���9���k+�x�p��@�[���?�P)�{>^VN�v�#���;�>��c{��>v
K�E������!|C
�~���/#�0�aG��〄����I�þ=����*]c�_>�H ��F �~+vx_��`@0I�@r�/���t�Jp{C���@��"�#(�h����(���iP��0Zb0�0#$���Fd%(A�T�����؜X6��0���w��B�^�����#fpۘ@����x����6�p X���B#����S�3�ц����6��%�A
�E:��x��t�
�яO� %hHCV�"�HFn��_�$���M����#	|`���|@�@�9t��$%#�8�6lc���x������q���
���.CՉP3��d�>!M$3�pYIF1�gFӏ0�5s��t����(é��x����@'�������e	2�6ֳ�>�ME��i2�9PY4��P�@�
��J%�O}z��:�-��$/XH�M�>�(��9��҈N�/�H!�HS+�4'#��TC�8Dd�PA'������E`ڐ6д�[؂GO��N�� �C0!�t��\��J-�MD�C�iZ�ڮ��nE�3y�W��"��,^�ZT^D@P�Cd!�����4ЍҺu���"�P����,e�H�G��m z��@��Y�`�m�p����:E�35P����|-l%;�s��`�"4���z6��
o=��W׸��Fr+R?Jw����?j�QUv��᥁5�!	���.8/z��V��Ҍ�,	���s6�����~?��8��yӻ^�8�ҍ�)�̳�v�ޯ�?��`8�..�l`�����v�`��W���&|��gx���0O߉�%�S{p�n!�_ [�X���l�˘�4��/:��3�S��o��e,O��\����j��P�3��fW�m��fg9#Y��Em
FQ͈�6�3x���@�^(���<
�b#@�䚓,��mh�
��BP:Ȗ��4�i�v�$9�šmi,o�К��y}z�(@•��E�Zؿ(�I���^�x :pv��FK;"Y��{�Y���.Ac�-� ��x�$"�8\��Kx�jٝ�I���"���;jui/fonts/IcoMoon.dev.svg000064400000271532152177723720011354 0ustar00<?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>
This is a custom SVG font generated by IcoMoon.
<iconset grid="16"></iconset>
</metadata>
<defs>
<font id="IcoMoon" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
<glyph unicode="&#xe200;" d="M 133.002,341.661c 16.416,16.422, 43.001,16.422, 59.402,0.016l 3.913-3.934l 50.552,50.578l-3.937,3.94 c-28.812,28.85-69.257,38.939-106.21,30.261C 131.425,455.113, 103.178,479.984, 69.135,480C 31.31,480, 0.658,449.279, 0.65,411.421 c0-32.668, 22.795-60, 53.331-66.915c-11.569-38.725-2.121-82.417, 28.423-112.992l 113.913-113.95l 50.498,50.607L 132.91,282.114 C 116.569,298.475, 116.539,325.177, 133.002,341.661zM 511.356,411.421C 511.364,449.302, 480.697,480, 442.864,480c-34.617,0-63.239-25.722-67.841-59.119 c-38.537,11.332-81.892,1.748-112.32-28.704l-113.92-113.95l 50.551-50.586l 113.883,113.928c 16.47,16.483, 42.994,16.453, 59.342,0.092 c 16.4-16.415, 16.4-43.057-0.016-59.478l-3.897-3.918l 50.505-50.624l 3.929,3.964c 30.229,30.283, 39.839,73.378, 28.806,111.819 C 485.461,347.841, 511.356,376.606, 511.356,411.421zM 453.133,104.468c 9.051,37.229-0.988,78.162-30.054,107.25L 309.334,325.714l-50.551-50.561l 113.76-114.006 c 16.47-16.498, 16.432-43.048, 0.092-59.424c-16.401-16.407-43.002-16.407-59.418,0.015l-3.883,3.895l-50.497-50.623l 3.866-3.864 c 30.758-30.797, 74.809-40.219, 113.684-28.244C 382.703-8.439, 410.354-32, 443.516-32C 481.318-32, 512-1.325, 512,36.563 C 512,71.163, 486.41,99.791, 453.133,104.468zM 306.172,215.658L 192.404,101.662c-16.355-16.384-43.017-16.414-59.472,0.062c-16.409,16.452-16.416,43.049-0.022,59.485 l 3.904,3.887l-50.543,50.562l-3.867-3.856c-29.38-29.401-39.28-70.917-29.725-108.491C 22.48,96.181,0,68.994,0,36.563 C-0.008-1.31, 30.666-32, 68.491-32c 32.55,0.016, 59.794,22.709, 66.77,53.191c 37.351-9.276, 78.499,0.652, 107.672,29.878 l 113.745,113.98L 306.172,215.658z" data-tags="joomla, cms" />
<glyph unicode="&#xe005;" d="M0,160L 96,64L 256,224L 416,64L 512,160L 256.001,416 z" data-tags="arrow-up, upload, top" />
<glyph unicode="&#xe006;" d="M 192,480L 96,384L 256,224L 96,64L 192-32L 448,224 z" data-tags="arrow-right, right, next" />
<glyph unicode="&#xe007;" d="M 512,288L 416,384L 256,224L 96,384L0,288L 256,32.001 z" data-tags="arrow-down, download, bottom" />
<glyph unicode="&#xe008;" d="M 320-32L 416,64L 256,224L 416,384L 320,480L 64,224 z" data-tags="arrow-left, previous, left" />
<glyph unicode="&#xe003;" d="M 416,384L 320,480L 64,224L 320-32L 416,64L 256,224 zM0,480L0-32L 64-32L 64,224L 64,480 z" data-tags="arrow-first, first, left" />
<glyph unicode="&#xe004;" d="M 96,64L 192-32L 448,224L 192,480L 96,384L 256,224 zM 512-32L 512,480L 448,480L 448,224L 448-32 z" data-tags="arrow-last, last, right" />
<glyph unicode="&#xe009;" d="M 512,224C 512,82.615, 397.385-32, 256-32s -256,114.615, -256,256s 114.615,256, 256,256S 512,365.385, 512,224z M 48,224 c 0-114.875 93.125-208 208-208S 464,109.125, 464,224s -93.125,208, -208,208S 48,338.875, 48,224zM 278.627,374.628l 128-128.001c 12.497-12.496 12.497-32.757 0-45.254c -12.497-12.497 -32.758-12.497,-45.255,0L 288,274.745 L 288,96 c 0-17.673 -14.327-32 -32-32c-17.673,0, -32,14.327, -32,32l0,178.745 l -73.372-73.373c -12.497-12.497 -32.759-12.497,-45.256,0 C 99.124,207.621, 96,215.811, 96,224s 3.124,16.379, 9.372,22.627l 128,128.001C 245.869,387.124, 266.131,387.124, 278.627,374.628z" data-tags="arrow-up, upload, top" />
<glyph unicode="&#xe00a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 406.628,246.627l-128.001,128c-12.496,12.497-32.757,12.497-45.254,0c-12.497-12.497-12.497-32.758,0-45.255L 306.745,256 L 128,256 c-17.673,0-32-14.327-32-32c0-17.673, 14.327-32, 32-32l 178.745,0 l-73.373-73.372c-12.497-12.497-12.497-32.759,0-45.256 C 239.621,67.124, 247.811,64, 256,64s 16.379,3.124, 22.627,9.372l 128.001,128C 419.124,213.869, 419.124,234.131, 406.628,246.627z" data-tags="arrow-right, right, next" />
<glyph unicode="&#xe00b;" d="M 512,224C 512,365.385, 397.385,480, 256,480s -256-114.615, -256-256s 114.615-256, 256-256S 512,82.615, 512,224z M 48,224 c 0,114.875 93.125,208 208,208S 464,338.875, 464,224s -93.125-208, -208-208S 48,109.125, 48,224zM 278.627,73.372l 128,128.001c 12.497,12.496 12.497,32.757 0,45.254c -12.497,12.497 -32.758,12.497,-45.255,0L 288,173.255 L 288,352 c 0,17.673 -14.327,32 -32,32c-17.673,0, -32-14.327, -32-32l0-178.745 l -73.372,73.373c -12.497,12.497 -32.759,12.497,-45.256,0 C 99.124,240.379, 96,232.189, 96,224s 3.124-16.379, 9.372-22.627l 128-128.001C 245.869,60.876, 266.131,60.876, 278.627,73.372z" data-tags="arrow-down, download, bottom" />
<glyph unicode="&#xe00c;" d="M 256,480C 397.385,480, 512,365.385, 512,224s -114.615-256, -256-256s -256,114.615, -256,256S 114.615,480, 256,480z M 256,16 c 114.875,0 208,93.125 208,208S 370.875,432, 256,432s -208-93.125, -208-208S 141.125,16, 256,16zM 105.372,246.627l 128.001,128c 12.496,12.497 32.757,12.497 45.254,0c 12.497-12.497 12.497-32.758,0-45.255L 205.255,256 L 384,256 c 17.673,0 32-14.327 32-32c0-17.673, -14.327-32, -32-32l-178.745,0 l 73.373-73.372c 12.497-12.497 12.497-32.759,0-45.256 C 272.379,67.124, 264.189,64, 256,64s -16.379,3.124, -22.627,9.372l -128.001,128C 92.876,213.869, 92.876,234.131, 105.372,246.627z" data-tags="arrow-left, left, previous" />
<glyph unicode="&#xe00f;" d="M 384,160L 256,288L 128,160 z" data-tags="arrow-up, upload, top" />
<glyph unicode="&#xe010;" d="M 192.001,96L 320.001,224L 192.001,352 z" data-tags="arrow-right, right, next" />
<glyph unicode="&#xe011;" d="M 128,288L 256,160L 384,288 z" data-tags="arrow-down, download, bottom" />
<glyph unicode="&#xe012;" d="M 320.001,352L 192.001,224L 320.001,95.999 z" data-tags="arrow-left, left, previous" />
<glyph unicode="&#xe00e;" d="M 384,256L 256,384L 128,256 zM 128,160L 256,32L 384,160 z" data-tags="menu, arrow, options, select" />
<glyph unicode="&#xe201;" d="M 160,0L 352,0L 352-32L 160-32zM 160,64L 352,64L 352,32L 160,32zM 160,128L 352,128L 352,96L 160,96zM 256,480L 480,256L 352,256L 352,160L 160,160L 160,256L 32,256 z" data-tags="arrow-up, upload, top" />
<glyph unicode="&#xe202;" d="M0,320L 32,320L 32,128L0,128zM 64,320L 96,320L 96,128L 64,128zM 128,320L 160,320L 160,128L 128,128zM 512,224L 288,448L 288,320L 192,320L 192,128L 288,128L 288,0 z" data-tags="arrow-right, right, next" />
<glyph unicode="&#xe203;" d="M 160,480L 352,480L 352,448L 160,448zM 160,416L 352,416L 352,384L 160,384zM 160,352L 352,352L 352,320L 160,320zM 256-32L 480,192L 352,192L 352,288L 160,288L 160,192L 32,192 z" data-tags="arrow-down, download, bottom" />
<glyph unicode="&#xe204;" d="M 480,320L 512,320L 512,128L 480,128zM 416,320L 448,320L 448,128L 416,128zM 352,320L 384,320L 384,128L 352,128zM0,224L 224,448L 224,320L 320,320L 320,128L 224,128L 224,0 z" data-tags="arrow-left, left, previous" />
<glyph unicode="&#x27;" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32 C-9.286,119.707, 20.52,362.785, 288,355.814z" data-tags="redo, arrow, right" />
<glyph unicode="&#x28;" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186 C 491.481,362.785, 521.285,119.707, 380.931-32z" data-tags="undo, arrow, left" />
<glyph unicode="&#xe205;" d="M 131.070,480C 74.206,376.984, 64.625,219.848, 288,225.088L 288,352 l 192-192L 288-32L 288,92.186 C 20.52,85.215-9.286,328.293, 131.070,480z" data-tags="forward, arrow, right" />
<glyph unicode="&#xe206;" d="M 224,92.186L 224-32 L 32,160l 192,192l0-126.912 C 447.375,219.848, 437.794,376.984, 380.931,480 C 521.286,328.293, 491.481,85.215, 224,92.186z" data-tags="reply, arrow, left" />
<glyph unicode="&#x6c;" d="M0,192c0-76.462, 33.524-145.092, 86.675-192l 42.333,48C 89.145,83.182, 64,134.652, 64,192c0,106.038, 85.965,192, 192,192 c 53.021,0, 101.019-21.493, 135.765-56.239L 320,256l 192,0 L 512,448 l-74.985-74.989C 390.688,419.34, 326.693,448, 256,448 C 114.615,448,0,333.385,0,192z" data-tags="redo, arrow, right" />
<glyph unicode="&#xe207;" d="M 256,448c-70.692,0-134.688-28.66-181.016-74.989L0,448l0-192 l 192,0 l-71.766,71.761C 154.982,362.507, 202.98,384, 256,384 c 106.034,0, 192-85.962, 192-192c0-57.348-25.146-108.818-65.009-144l 42.333-48C 478.475,46.908, 512,115.538, 512,192 C 512,333.385, 397.385,448, 256,448z" data-tags="undo, arrow, left" />
<glyph unicode="&#x7a;" d="M 512,224L 384,320L 384,256L 288,256L 288,352L 352,352L 256,480L 160,352L 224,352L 224,256L 128,256L 128,320L0,224L 128,128L 128,192L 224,192L 224,96L 160,96L 256-32L 352,96L 288,96L 288,192L 384,192L 384,128 z" data-tags="move, drag, arrows" />
<glyph unicode="&#x66;" d="M 512,480 L 512,272 L 432,352 L 336,256 L 288,304 L 384,400 L 304,480 ZM 224,144 L 128,48 L 208-32 L 0-32 L 0,176 L 80,96 L 176,192 Z" data-tags="expand, enlarge, maximize, fullscreen" />
<glyph unicode="&#x67;" d="M 224,192 L 224-16 L 144,64 L 48-32 L 0,16 L 96,112 L 16,192 ZM 512,432 L 416,336 L 496,256 L 288,256 L 288,464 L 368,384 L 464,480 Z" data-tags="contract, minimize, shrink, collapse" />
<glyph unicode="&#x68;" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z" data-tags="expand, enlarge, maximize, fullscreen" />
<glyph unicode="&#x69;" d="M 32,192 L 224,192 L 224,0 L 154.87,69.13 L 53.87-31.87 L 0.13,21.87 L 101.13,122.87 ZM 410.87,122.87 L 511.87,21.87 L 458.13-31.87 L 357.13,69.13 L 288,0 L 288,192 L 480,192 ZM 480,256 L 288,256 L 288,448 L 357.13,378.87 L 458.13,479.87 L 511.87,426.13 L 410.87,325.13 ZM 154.87,378.87 L 224,448 L 224,256 L 32,256 L 101.13,325.13 L 0.13,426.13 L 53.87,479.87 Z" data-tags="contract, minimize, shrink, collapse" />
<glyph unicode="&#xe208;" d="M 96,416L 416,224L 96,32 z" data-tags="play, media control, audio" />
<glyph unicode="&#xe209;" d="M 64,416L 224,416L 224,32L 64,32zM 288,416L 448,416L 448,32L 288,32z" data-tags="pause, media control, audio" />
<glyph unicode="&#xe210;" d="M 64,416L 448,416L 448,32L 64,32z" data-tags="stop, media control, audio, square" />
<glyph unicode="&#x7c;" d="M 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 112,224 Z" data-tags="backward, media control, audio" />
<glyph unicode="&#x7b;" d="M 256,48 L 256,208 L 96,48 L 96,400 L 256,240 L 256,400 L 432,224 Z" data-tags="forward, media control, audio" />
<glyph unicode="&#x7d;" d="M 64,32 L 64,416 L 128,416 L 128,240 L 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 128,208 L 128,32 Z" data-tags="first, media control, audio" />
<glyph unicode="&#xe000;" d="M 448,416 L 448,32 L 384,32 L 384,208 L 224,48 L 224,208 L 64,48 L 64,400 L 224,240 L 224,400 L 384,240 L 384,416 Z" data-tags="last, media control, audio" />
<glyph unicode="&#xe00d;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 192,336L 384,224L 192,112 z" data-tags="play, media control, audio" />
<glyph unicode="&#xe211;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 224,320L 224,128L 160,128zM 288,320L 352,320L 352,128L 288,128z" data-tags="pause, media control, audio" />
<glyph unicode="&#xe212;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 352,320L 352,128L 160,128z" data-tags="stop, media control, audio" />
<glyph unicode="&#xe213;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 352,144L 240,224L 352,304 zM 224,144L 112,224L 224,304 z" data-tags="backward, media control, audio" />
<glyph unicode="&#xe214;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,304L 272,224L 160,144 zM 288,304L 400,224L 288,144 z" data-tags="forward, media control, audio" />
<glyph unicode="&#xe001;" d="M 437.011,405.010C 390.685,451.338, 326.693,480, 256,480C 146.256,480, 52.655,410.936, 16.251,313.906l 59.938-22.477 C 103.491,364.202, 173.692,416, 256,416c 53.020,0, 101.010-21.5, 135.753-56.247L 320,288l 192,0 L 512,480 L 437.011,405.010zM 256,32c-53.020,0-101.013,21.496-135.756,56.244L 192,160L0,160 l0-192 l 74.997,74.997C 121.32-3.334, 185.306-32, 256-32 c 109.745,0, 203.346,69.064, 239.75,166.094l-59.938,22.477C 408.51,83.798, 338.309,32, 256,32z" data-tags="loop, repeat, reload, refresh, update, upgrade, synchronize, media control, arrows" />
<glyph unicode="&#xe002;" d="M 512,352L 384,480l0-96 c-65.386,0-115.376-15.604-152.825-47.704c-2.625-2.25-5.142-4.55-7.581-6.887 c 13.76-19.082, 24.358-38.758, 33.886-57.545C 281.641,301.065, 316.507,320, 384,320l0-96 l0,0 l0-96 c-108.223,0-132.563,48.68-163.378,110.311 c-17.153,34.306-34.89,69.78-67.796,97.985C 115.376,368.396, 65.386,384,0,384l0-64 c 108.223,0, 132.563-48.68, 163.378-110.311 c 17.153-34.306, 34.89-69.78, 67.796-97.985C 268.624,79.604, 318.615,64, 384,64l0-96 l 128,128L 384,224L 512,352zM0,128l0-64 c 65.386,0, 115.375,15.604, 152.825,47.704c 2.625,2.249, 5.142,4.55, 7.581,6.888 c-13.76,19.081-24.359,38.758-33.886,57.545C 102.36,146.936, 67.494,128,0,128z" data-tags="shuffle, media control, random" />
<glyph unicode="&#x53;" d="M 496.131,44.302L 374.855,147.449c-12.537,11.283-25.945,16.463-36.776,15.963C 366.707,196.946, 384,240.451, 384,288 C 384,394.039, 298.039,480, 192,480C 85.962,480,0,394.039,0,288c0-106.039, 85.961-192, 192-192c 47.549,0, 91.054,17.293, 124.588,45.922 c-0.5-10.831, 4.68-24.239, 15.963-36.776l 103.147-121.276c 17.661-19.623, 46.511-21.277, 64.11-3.678S 515.754,26.641, 496.131,44.302z M 192,160c-70.692,0-128,57.308-128,128S 121.308,416, 192,416s 128-57.308, 128-128S 262.693,160, 192,160z" data-tags="search, magnifier, lookup, find" />
<glyph unicode="&#x64;" d="M 192,384L 160,384L 160,320L 96,320L 96,288L 160,288L 160,224L 192,224L 192,288L 256,288L 256,320L 192,320 zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z" data-tags="zoom in, enlarge, scale" />
<glyph unicode="&#x65;" d="M 96,320L 256,320L 256,288L 96,288zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z" data-tags="zoom out, smaller, scale, reduce" />
<glyph unicode="&#x2b;" d="M 424,312 L 208,96 L 128,96 L 128,176 L 344,392 ZM 451,339 L 371,419 L 399.029,447.029 C 408.363,456.363 423.636,456.363 432.97,447.029 L 479.029,400.97 C 488.363,391.636 488.363,376.363 479.029,367.029 L 451,339 ZM 384,198.209L 384,32 L 64,32 L 64,352 l 176,0 l 64,64L 48,416 C 21.6,416,0,394.4,0,368l0-352 c0-26.4, 21.6-48, 48-48l 352,0 c 26.4,0, 48,21.6, 48,48L 448,255.681 L 384,198.209z" data-tags="pencil, write, edit, blog, note" />
<glyph unicode="&#x2c;" d="M 432,480 C 476.182,480 512,444.183 512,400 C 512,381.99 506.045,365.371 496,352 L 464,320 L 352,432 L 384,464 C 397.371,474.045 413.989,480 432,480 ZM 32,112L0-32l 144,32l 296,296L 328,408L 32,112z M 357.789,298.211l-224-224l-27.578,27.578l 224,224L 357.789,298.211z" data-tags="pencil, write, edit, blog, note" />
<glyph unicode="&#x3b;" d="M 160.061,160C 96.036,160, 117.88,46.86,0,21.363c 32.011-21.324, 125.898-39.027, 192.072,10.668 C 249.298,75.006, 224.085,160, 160.061,160zM 505.965,441.965c-32.009,32.007-110.472-72.027-171.617-107.603c-60.98-37.464-144.033-112.027-96.021-160.037 c 48.010-48.013, 122.571,35.040, 160.036,96.022C 433.938,331.495, 537.973,409.958, 505.965,441.965z" data-tags="brush, art, paint" />
<glyph unicode="&#x5d;" d="M 496,288L 320,288 L 320,464 c0,8.836-7.164,16-16,16l-96,0 c-8.836,0-16-7.164-16-16l0-176 L 16,288 c-8.836,0-16-7.164-16-16l0-96 c0-8.836, 7.164-16, 16-16l 176,0 l0-176 c0-8.836, 7.164-16, 16-16l 96,0 c 8.836,0, 16,7.164, 16,16L 320,160 l 176,0 c 8.836,0, 16,7.164, 16,16l0,96 C 512,280.836, 504.836,288, 496,288z" data-tags="plus, add, sum" />
<glyph unicode="&#x5e;" d="M0,272l0-96 c0-8.836, 7.164-16, 16-16l 480,0 c 8.836,0, 16,7.164, 16,16l0,96 c0,8.836-7.164,16-16,16L 16,288 C 7.164,288,0,280.836,0,272z" data-tags="minus, minimize, subtract" />
<glyph unicode="&#x49;" d="M 507.331,68.67c-0.002,0.002-0.004,0.004-0.006,0.005L 352.003,224l 155.322,155.325c 0.002,0.002, 0.004,0.003, 0.006,0.005 c 1.672,1.673, 2.881,3.627, 3.656,5.708c 2.123,5.688, 0.912,12.341-3.662,16.915L 433.952,475.326c-4.574,4.573-11.225,5.783-16.914,3.66 c-2.080-0.775-4.035-1.984-5.709-3.655c0-0.002-0.002-0.003-0.004-0.005L 256.001,320L 100.677,475.325 c-0.002,0.002-0.003,0.003-0.005,0.005c-1.673,1.671-3.627,2.88-5.707,3.655c-5.69,2.124-12.341,0.913-16.915-3.66L 4.676,401.951 c-4.574-4.574-5.784-11.226-3.661-16.914c 0.776-2.080, 1.985-4.036, 3.656-5.708c 0.002-0.001, 0.003-0.003, 0.005-0.005L 160.001,224 L 4.676,68.674c-0.001-0.002-0.003-0.003-0.004-0.005c-1.671-1.673-2.88-3.627-3.657-5.707c-2.124-5.688-0.913-12.341, 3.661-16.915 l 73.374-73.373c 4.575-4.574, 11.226-5.784, 16.915-3.661c 2.080,0.776, 4.035,1.985, 5.708,3.656c 0.001,0.002, 0.003,0.003, 0.005,0.005 l 155.324,155.325l 155.324-155.325c 0.002-0.001, 0.004-0.003, 0.006-0.004c 1.674-1.672, 3.627-2.881, 5.707-3.657 c 5.689-2.123, 12.342-0.913, 16.914,3.661l 73.373,73.374c 4.574,4.574, 5.785,11.227, 3.662,16.915 C 510.212,65.043, 509.003,66.997, 507.331,68.67z" data-tags="close, cancel, quit, remove, cross" />
<glyph unicode="&#x47;" d="M 432,416L 192,176L 80,288L0,208L 192,16L 512,336 z" data-tags="checkmark, tick, correct, accept, ok" />
<glyph unicode="&#x2a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,192l0-128 l-64,0 L 224,192 L 96,192 l0,64 l 128,0 L 224,384 l 64,0 l0-128 l 128,0 l0-64 L 288,192 z" data-tags="plus-circle, plus, add, sum" />
<glyph unicode="&#xe215;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 384,192 L 288,192 L 288,96 L 224,96 L 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 Z" data-tags="plus-circle, plus, add, sum" />
<glyph unicode="&#x4b;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 416,192L 96,192 l0,64 l 320,0 L 416,192 z" data-tags="minus-circle, minus, remove, delete, subtract" />
<glyph unicode="&#xe216;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 128,256L 384,256L 384,192L 128,192z" data-tags="minus-circle, minus, remove, delete, subtract" />
<glyph unicode="&#x4a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 384,306.745L 301.256,224 L 384,141.256L 384,96 l-45.256,0 L 256,178.744L 173.255,96L 128,96 l0,45.256 L 210.745,224L 128,306.745L 128,352 l 45.255,0 L 256,269.255L 338.744,352L 384,352 L 384,306.745 z" data-tags="cancel-circle, close, remove, delete" />
<glyph unicode="&#xe217;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 352,173.256 L 352,128 L 306.744,128 L 256,178.744 L 205.255,128 L 160,128 L 160,173.256 L 210.745,224 L 160,274.745 L 160,320 L 205.255,320 L 256,269.255 L 306.744,320 L 352,320 L 352,274.745 L 301.256,224 Z" data-tags="cancel-circle, close, remove, delete" />
<glyph unicode="&#xe218;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 208,64L 102,202l 47,49l 59-75 l 185,151l 23-23L 208,64z" data-tags="checkmark-circle, tick, correct" />
<glyph unicode="&#xe219;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 208,64L 102,202L 149,251L 208,176L 393,327L 416,304 z" data-tags="checkmark-circle, tick, correct" />
<glyph unicode="&#xe220;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 224,384l 64,0 l0-64 l-64,0 L 224,384 z M 320,64L 192,64 l0,32 l 32,0 L 224,224 l-32,0 l0,32 l 96,0 l0-160 l 32,0 L 320,64 z" data-tags="info, information" />
<glyph unicode="&#xe221;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 224,352L 288,352L 288,288L 224,288zM 320,96L 192,96L 192,128L 224,128L 224,224L 192,224L 192,256L 288,256L 288,128L 320,128 z" data-tags="info, information" />
<glyph unicode="&#x45;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 384,256c0-35.29-28.71-64-64-64l-31.942,0 c-0.020-0.017-0.041-0.038-0.058-0.058L 288,160 l-64,0 l0,32 c0,35.29, 28.71,64, 64,64l 31.942,0 c 0.020,0.017, 0.041,0.038, 0.058,0.057l0,63.885 c-0.017,0.020-0.037,0.041-0.058,0.058L 160,320 L 160,384 l 160,0 c 35.29,0, 64-28.71, 64-64L 384,256 z" data-tags="question, help, support" />
<glyph unicode="&#xe222;" d="M 320,384 C 355.29,384 384,355.29 384,320 L 384,256 C 384,220.71 355.29,192 320,192 L 288.059,192 C 288.038,191.982 288.018,191.962 288,191.941 L 288,160 L 224,160 L 224,192 C 224,227.29 252.71,256 288,256 L 319.942,256 C 319.962,256.016 319.983,256.037 320,256.057 L 320,319.942 C 319.983,319.962 319.963,319.983 319.942,320 L 160,320 L 160,384 L 320,384 ZM 224,128L 288,128L 288,64L 224,64zM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z" data-tags="question, help, support" />
<glyph unicode="&#xe223;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 288,192l-64,0 L 224,384 l 64,0 L 288,192 z" data-tags="notification, warning, notice, note, exclamation" />
<glyph unicode="&#xe224;" d="M 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 ZM 224,128L 288,128L 288,64L 224,64zM 224,384L 288,384L 288,192L 224,192z" data-tags="notification, warning, notice, note, exclamation" />
<glyph unicode="&#x48;" d="M 504.978,22.12L 286.441,457.676C 278.070,472.559, 267.035,480, 256,480s-22.070-7.441-30.442-22.324L 7.021,22.12 C-9.722-7.646, 4.521-32, 38.673-32l 434.654,0 C 507.478-32, 521.723-7.646, 504.978,22.12z M 256,32c-17.673,0-32,14.327-32,32 c0,17.674, 14.327,32, 32,32c 17.674,0, 32-14.326, 32-32C 288,46.327, 273.674,32, 256,32z M 278,128l-44,0 l-10,128 c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32L 278,128z" data-tags="warning, sign" />
<glyph unicode="&#xe225;" d="M 256,400.638 L 83.583,32 L 428.417,32 L 256,400.638 Z M 256,480 L 256,480 C 267.035,480 278.070,472.559 286.442,457.676 L 504.978,22.12 C 521.723-7.646 507.478-32 473.327-32 L 38.673-32 C 4.521-32 -9.722-7.646 7.021,22.12 L 225.558,457.676 C 233.93,472.559 244.965,480 256,480 ZM 224,96A32,32 3060 1 0 288,96A32,32 3060 1 0 224,96zM 256,288 C 273.673,288 288,273.673 288,256 L 278,160 L 234,160 L 224,256 C 224,273.673 238.327,288 256,288 Z" data-tags="warning, sign" />
<glyph unicode="&#x3d;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z" data-tags="checkbox-unchecked, unchecked, square" />
<glyph unicode="&#x3e;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z M 384,368L 224,208l-96,96l-64-64l 160-160l 224,224L 384,368z" data-tags="checkbox-checked, tick, checked, selected" />
<glyph unicode="&#x3f;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 zM 128,352L 384,352L 384,96L 128,96z" data-tags="checkbox-partial, partial" />
<glyph unicode="&#xe226;" d="M0,480L 512,480L 512-32L0-32z" data-tags="square" />
<glyph unicode="&#xe227;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z" data-tags="radio-unchecked, circle" />
<glyph unicode="&#xe228;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 160,224A96,96 13140 1 0 352,224A96,96 13140 1 0 160,224z" data-tags="radio-checked" />
<glyph unicode="&#xe229;" d="M0,224A256,256 5220 1 0 512,224A256,256 5220 1 0 0,224z" data-tags="circle" />
<glyph unicode="&#xe230;" d="M 224,82.745L 121.373,201.372L 150.627,230.627L 224,173.255L 361.372,294.627L 390.628,265.373 zM 415.886,416c 0.039-0.033, 0.081-0.075, 0.114-0.115l0-383.771 c-0.033-0.039-0.075-0.081-0.114-0.114L 96.114,32 c-0.040,0.033-0.081,0.075-0.114,0.114L 96,415.886 c 0.033,0.040, 0.075,0.081, 0.115,0.114L 32,416 l0-384 c0-35.2, 28.8-64, 64-64l 320,0 c 35.2,0, 64,28.8, 64,64L 480,416 L 415.886,416 z M 320,416L 320,448 c0,17.673-14.327,32-32,32l-64,0 c-17.673,0-32-14.327-32-32l0-32 l-64,0 l0-64 l 256,0 L 384,416 L 320,416 z M 288,416l-64,0 L 224,448 l 64,0 L 288,416 z" data-tags="signup, checkmark, board, agreement, register" />
<glyph unicode="&#x58;" d="M0,480L 224,480L 224,256L0,256zM 288,480L 512,480L 512,256L 288,256zM0,192L 224,192L 224-32L0-32zM 288,192L 512,192L 512-32L 288-32z" data-tags="grid, icons, apps, squares" />
<glyph unicode="&#x59;" d="M0,480L 128,480L 128,352L0,352zM 192,480L 320,480L 320,352L 192,352zM 384,480L 512,480L 512,352L 384,352zM0,288L 128,288L 128,160L0,160zM 192,288L 320,288L 320,160L 192,160zM 384,288L 512,288L 512,160L 384,160zM0,96L 128,96L 128-32L0-32zM 192,96L 320,96L 320-32L 192-32zM 384,96L 512,96L 512-32L 384-32z" data-tags="grid, icons, apps" />
<glyph unicode="&#x5a;" d="M 192,448L 320,448L 320,320L 192,320zM 192,288L 320,288L 320,160L 192,160zM 192,128L 320,128L 320,0L 192,0z" data-tags="menu, dots, more" />
<glyph unicode="&#x31;" d="M0,480L 128,480L 128,352L0,352zM 192,480L 512,480L 512,352L 192,352zM0,288L 128,288L 128,160L0,160zM 192,288L 512,288L 512,160L 192,160zM0,96L 128,96L 128-32L0-32zM 192,96L 512,96L 512-32L 192-32z" data-tags="list, bullet, ul, menu" />
<glyph unicode="&#xe231;" d="M0,480L 128,480L 128,352L0,352zM 192,448L 512,448L 512,384L 192,384zM0,288L 128,288L 128,160L0,160zM 192,256L 512,256L 512,192L 192,192zM0,96L 128,96L 128-32L0-32zM 192,64L 512,64L 512,0L 192,0z" data-tags="list, bullet, ul, todo, menu" />
<glyph unicode="&#xe232;" d="M 448,96L 64,96 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,96, 448,96zM 448,288L 64,288 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,288, 448,288zM 64,352l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,480, 448,480L 64,480 C 28.8,480,0,451.2,0,416S 28.8,352, 64,352z" data-tags="menu, list, items, lines, options" />
<glyph unicode="&#x2d;" d="M 416,0L 512,256L 96,256L0,0 zM 64,288 L 0,0 L 0,416 L 144,416 L 208,352 L 416,352 L 416,288 Z" data-tags="folder-open, directory, category, browse" />
<glyph unicode="&#x2e;" d="M 224,416L 288,352L 512,352L 512,0L0,0L0,416 z" data-tags="folder, directory, category, browse" />
<glyph unicode="&#xe234;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128l-64,0 l0-64 l-64,0 l0,64 l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 L 352,128 z" data-tags="folder-plus, plus, add, directory, category, browse" />
<glyph unicode="&#xe235;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128L 160,128 l0,64 l 192,0 L 352,128 z" data-tags="folder-minus, minus, remove, delete, directory, category, browse" />
<glyph unicode="&#xe236;" d="M 210.745,384l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 l0-288 L 32,32 L 32,384 L 210.745,384  M 224,416L0,416 l0-416 l 512,0 L 512,352 L 288,352 L 224,416L 224,416z" data-tags="folder, directory, category, browse" />
<glyph unicode="&#xe237;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 288,256L 224,256L 224,192L 160,192L 160,128L 224,128L 224,64L 288,64L 288,128L 352,128L 352,192L 288,192 z" data-tags="folder-plus, plus, add, directory, category, browse" />
<glyph unicode="&#xe238;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 160,192L 352,192L 352,128L 160,128z" data-tags="folder-remove, remove, directory, category" />
<glyph unicode="&#xe016;" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 z" data-tags="file, paper, page, new, empty, blank, document" />
<glyph unicode="&#xe239;" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 zM 128,96L 384,96L 384,64L 128,64zM 128,160L 384,160L 384,128L 128,128zM 128,224L 384,224L 384,192L 128,192z" data-tags="file, list, paper, page, document" />
<glyph unicode="&#x29;" d="M 448,96L 448,160L 384,160L 384,96L 320,96L 320,32L 384,32L 384-32L 448-32L 448,32L 512,32L 512,96 zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z" data-tags="file-plus, plus, new, page, document, paper" />
<glyph unicode="&#xe017;" d="M 320,96L 512,96L 512,32L 320,32zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z" data-tags="file-minus, minus, remove, delete, page, document, paper" />
<glyph unicode="&#xe240;" d="M 352-32L 256,80L 296.75,120.75L 352,65.125L 480,192L 512,160 zM 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 z" data-tags="file-check, checkmark, correct, tick, page, document, paper" />
<glyph unicode="&#xe241;" d="M 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 zM 461.256,64L 512,114.744L 512,160L 466.744,160L 416,109.256L 365.256,160L 320,160L 320,114.744L 370.744,64L 320,13.256L 320-32L 365.256-32L 416,18.744L 466.744-32L 512-32L 512,13.256 z" data-tags="file-remove, delete, remove, cancel, close, document, page, paper" />
<glyph unicode="&#xe018;" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384 L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z" data-tags="copy, duplicate, files, pages, papers, documents" />
<glyph unicode="&#xe242;" d="M 440,352l-24,0 l0,24 c0,22.056-17.944,40-40,40l-24,0 L 352,440 c0,22.056-17.943,40-40,40l-240,0 c-22.056,0-40-17.944-40-40l0-304 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.056, 17.944-40, 40-40l 240,0 c 22.056,0, 40,17.944, 40,40L 480,312 C 480,334.056, 462.056,352, 440,352z M 72.001,128c-4.4,0-8,3.6-8,8L 64.001,440 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 136,416 c-22.056,0-40-17.944-40-40l0-248 L 72.001,128 z M 136,64c-4.4,0-8,3.6-8,8L 128,376 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 200,352 c-22.056,0-40-17.944-40-40l0-248 L 136,64 z M 448,8c0-4.4-3.6-8-8-8L 200,0 c-4.4,0-8,3.6-8,8L 192,312 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8L 448,8 z" data-tags="stack, files, archive, category, papers, documents, layers" />
<glyph unicode="&#xe243;" d="M 488,128l-50.411,0 L 320,323.98L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-100.019 L 74.412,128L 24,128 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24L 128,124.020 L 245.588,320l 20.823,0 L 384,124.020L 384,24 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,117.2, 501.2,128, 488,128z" data-tags="tree, branches, binary tree" />
<glyph unicode="&#xe244;" d="M 488,96l-8,0 L 480,200 c0,30.878-25.121,56-56,56L 288,256 l0,64 l 8,0 c 13.2,0, 24,10.8, 24,24L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 8,0 l0-64 L 88,256 c-30.878,0-56-25.122-56-56l0-104 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,85.2, 501.2,96, 488,96z M 96,0L 32,0 l0,64 l 64,0 L 96,0 z M 288,0l-64,0 l0,64 l 64,0 L 288,0 z M 224,352L 224,416 l 64,0 l0-64 L 224,352 z M 480,0l-64,0 l0,64 l 64,0 L 480,0 z" data-tags="tree, branches, descendants" />
<glyph unicode="&#xe246;" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="paragraph-left, align left, left, wysiwyg" />
<glyph unicode="&#xe247;" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="paragraph-center, align center, center, wysiwyg" />
<glyph unicode="&#xe248;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" data-tags="paragraph-right, align right, right, wysiwyg" />
<glyph unicode="&#xe249;" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z" data-tags="paragraph-justify, wysiwyg, justify" />
<glyph unicode="&#xe01c;" d="M 512,64L 512,448 L0,448 l0-384 l 224,0 l0-32 l-96,0 l0-32 l 256,0 l0,32 l-96,0 l0,32 L 512,64 z M 64,384l 384,0 l0-256 L 64,128 L 64,384 z" data-tags="screen, monitor, computer, pc, desktop" />
<glyph unicode="&#xe01d;" d="M 400,480L 80,480 C 53.6,480, 32,458.4, 32,432l0-416 c0-26.4, 21.6-48, 48-48l 320,0 c 26.4,0, 48,21.6, 48,48L 448,432 C 448,458.4, 426.4,480, 400,480z M 240-16 c-8.836,0-16,7.163-16,16s 7.164,16, 16,16s 16-7.163, 16-16S 248.836-16, 240-16z M 384,32L 96,32 L 96,416 l 288,0 L 384,32 z" data-tags="tablet, mobile" />
<glyph unicode="&#xe01e;" d="M 384,480L 96,480 C 78.4,480, 64,465.601, 64,448l0-448 c0-17.6, 14.399-32, 32-32l 288,0 c 17.6,0, 32,14.4, 32,32L 416,448 C 416,465.601, 401.6,480, 384,480z M 240-8.891c-13.746,0-24.891,11.145-24.891,24.891s 11.145,24.891, 24.891,24.891s 24.891-11.145, 24.891-24.891 S 253.746-8.891, 240-8.891z M 384,64L 96,64 L 96,416 l 288,0 L 384,64 z" data-tags="mobile, phone, handheld" />
<glyph unicode="&#x51;" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 256,64L 96,192l 96,0 l0,96 l 128,0 l0-96 l 96,0 L 256,64z M 77.255,384l 32,32l 293.489,0 l 32-32L 77.255,384 z" data-tags="box-add, storage, inbox, archive, download" />
<glyph unicode="&#x52;" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 320,160l0-96 L 192,64 l0,96 L 96,160 l 160,128 l 160-128L 320,160 z M 77.255,384l 32,32l 293.488,0 l 32-32L 77.255,384 z" data-tags="box-remove, storage, inbox, archive, upload" />
<glyph unicode="&#xe021;" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 384,288L 288,288L 288,448L 224,448L 224,288L 128,288L 256,96 z" data-tags="download, arrow, store, save, inbox" />
<glyph unicode="&#xe022;" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 128,256L 224,256L 224,96L 288,96L 288,256L 384,256L 256,448 z" data-tags="upload, arrow, load, outbox" />
<glyph unicode="&#x21;" d="M 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 ZM 448,192 L 448,0 L 64,0 L 64,192 L 256,336 Z" data-tags="home, house, building" />
<glyph unicode="&#xe250;" d="M 448,192 L 448,0 L 64,0 L 64,192 L 128,192 L 128,64 L 384,64 L 384,192 ZM 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 Z" data-tags="home, house, building" />
<glyph unicode="&#xe024;" d="M 352,192 L 416,256 L 416,0 L 32,0 L 32,384 L 288,384 L 224,320 L 96,320 L 96,64 L 352,64 ZM 480,448 L 480,272 L 414.628,337.372 L 237.255,160 L 192,160 L 192,205.256 L 369.372,382.628 L 304,448 Z" data-tags="new tab, external, outside, popout, link, blank" />
<glyph unicode="&#xe251;" d="M 96,448l0-384 l 384,0 L 480,448 L 96,448 z M 448,96L 128,96 L 128,416 l 320,0 L 448,96 zM 64,32L 64,352L 32,384L 32,0L 416,0L 384,32 zM 214.627,137.373L 310.627,233.373L 384,160L 384,352L 192,352L 265.373,278.627L 169.373,182.627 z" data-tags="new tab, external, outside, popout, link, blank" />
<glyph unicode="&#xe252;" d="M 476.698,442.679l-2.014,2.021c-47.074,47.067-124.097,47.067-171.163,0L 194.468,335.632 c-47.067-47.066-47.067-124.088,0-171.155l 2.013-2.013c 3.916-3.924, 8.073-7.462, 12.368-10.729l 39.924,39.925 c-4.651,2.747-9.063,6.036-13.058,10.030l-2.021,2.021c-25.557,25.549-25.557,67.136,0,92.695L 342.758,405.462 c 25.558,25.559, 67.137,25.559, 92.693,0l 2.021-2.012c 25.55-25.558, 25.55-67.146,0-92.695l-49.343-49.343 c 8.566-21.154, 12.624-43.7, 12.269-66.193l 76.302,76.302C 523.767,318.589, 523.767,395.61, 476.698,442.679zM 315.521,285.533c-3.916,3.916-8.073,7.461-12.368,10.72l-39.924-39.916c 4.652-2.748, 9.063-6.037, 13.058-10.031l 2.021-2.020 c 25.558-25.558, 25.558-67.136,0-92.694L 169.243,42.525c-25.559-25.551-67.138-25.551-92.694,0l-2.021,2.021 c-25.549,25.56-25.549,67.138,0,92.694l 49.344,49.343c-8.567,21.153-12.623,43.701-12.269,66.193l-76.301-76.299 c-47.068-47.066-47.068-124.089,0-171.162l 2.013-2.016c 47.076-47.064, 124.096-47.064, 171.164,0l 109.055,109.059 c 47.067,47.066, 47.067,124.097,0,171.163L 315.521,285.533z" data-tags="link, chain, url, uri, anchor" />
<glyph unicode="&#x2f;" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 480,64l-32,0 l-96,144l-64-48L 160,320L 64,64L 32,64 L 32,384 l 448,0 L 480,64 zM 352,304A48,48 13140 1 0 448,304A48,48 13140 1 0 352,304z" data-tags="image, picture, photo, graphic" />
<glyph unicode="&#x30;" d="M 64,352l0-320 l 448,0 L 512,352 L 64,352 z M 480,85.333L 416,192l-72.533-60.444L 288,224L 96,64L 96,320 l 384,0 L 480,85.333 zM 128,240A48,48 8100 1 0 224,240A48,48 8100 1 0 128,240zM 448,416L0,416L0,96L 32,96L 32,384L 448,384 z" data-tags="images, pictures, photos, graphics" />
<glyph unicode="&#xe014;" d="M 257.54,416C 92.994,416,0,306.648,0,226.653c0-121.887, 109.354-190.477, 200.308-212.956 C 291.27-8.791, 325.48,32.462, 324.022,80c-1.771,57.75, 27.073,58.496, 47.52,56.459C 391.973,134.408, 512,106.695, 512,198.674 C 512,312.5, 422.072,416, 257.54,416z M 224,384c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,384, 224,384z M 80,191.754c-8.973,0-16.246,7.273-16.246,16.246S 71.027,224.246, 80,224.246S 96.246,216.973, 96.246,208S 88.973,191.754, 80,191.754z M 128,256c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 145.673,256, 128,256z M 256,128c-35.346,0-64,21.49-64,48 s 28.654,48, 64,48c 35.347,0, 64-21.49, 64-48S 291.347,128, 256,128z M 368,256c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48 S 394.51,256, 368,256z" data-tags="palette, color, paint, art" />
<glyph unicode="&#x55;" d="M 152,176c0-57.438, 46.562-104, 104-104s 104,46.562, 104,104s-46.562,104-104,104S 152,233.438, 152,176z M 480,352L 368,352 c-8,32-16,64-48,64L 192,416 c-32,0-40-32-48-64L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.6, 14.4-32, 32-32l 448,0 c 17.6,0, 32,14.4, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 256,34c-78.425,0-142,63.574-142,142c0,78.425, 63.575,142, 142,142c 78.426,0, 142-63.575, 142-142 C 398,97.574, 334.427,34, 256,34z M 480,256l-64,0 l0,32 l 64,0 L 480,256 z" data-tags="camera, photo, picture, image" />
<glyph unicode="&#xe015;" d="M 489.42,351.874c-5.294,0-10.729-1.861-15.718-5.383L 384,283.184L 384,336 c0,26.4-21.6,48-48,48L 48,384 c-26.4,0-48-21.6-48-48l0-224 c0-26.4, 21.6-48, 48-48l 288,0 c 26.4,0, 48,21.6, 48,48l0,52.815 l 89.701-63.307c 4.989-3.521, 10.424-5.382, 15.717-5.383 c 0.001,0, 0.001,0, 0.003,0c 7.044,0, 13.477,3.248, 17.646,8.911c 3.228,4.385, 4.934,10.027, 4.934,16.318L 512.001,326.645 C 512,343.208, 500.641,351.874, 489.42,351.874z" data-tags="camera, video, media, film, movie" />
<glyph unicode="&#x56;" d="M 490.594,399.946C 418.778,410.271, 339.428,416, 256.001,416c-83.43,0-162.778-5.729-234.597-16.054 C 7.639,346.083,0,286.571,0,224c0-62.57, 7.639-122.083, 21.404-175.945C 93.223,37.729, 172.572,32, 256.001,32 c 83.427,0, 162.776,5.729, 234.593,16.055C 504.36,101.917, 512,161.43, 512,224C 512,286.571, 504.36,346.083, 490.594,399.946z M 192.001,128L 192.001,320 l 160-96L 192.001,128z" data-tags="play, video, movie" />
<glyph unicode="&#x57;" d="M 480,480 L 512,480 L 512,112 C 512,67.817 461.855,32 400,32 C 338.145,32 288,67.817 288,112 C 288,156.184 338.145,192 400,192 C 431.342,192 459.671,182.8 480,167.98 L 480,352 L 224,295.111 L 224,48 C 224,3.817 173.856-32 112-32 C 50.144-32 0,3.817 0,48 C 0,92.184 50.144,128 112,128 C 143.342,128 171.671,118.8 192,103.98 L 192,416 L 480,480 Z" data-tags="music, song, audio, sound" />
<glyph unicode="&#x22;" d="M 311.413,128.632c-11.055,1.759-11.307,32.157-11.307,32.157s 32.484,32.158, 39.564,75.401 c 19.045,0, 30.809,45.973, 11.761,62.148C 352.226,315.365, 375.911,432, 256,432c-119.911,0-96.225-116.635-95.432-133.662 c-19.047-16.175-7.285-62.148, 11.761-62.148c 7.079-43.243, 39.564-75.401, 39.564-75.401s-0.252-30.398-11.307-32.157 C 164.976,122.966, 32,64.315, 32,0l 224,0 l 224,0 C 480,64.315, 347.024,122.966, 311.413,128.632z" data-tags="user, profile, avatar, person, talk, member" />
<glyph unicode="&#xe01f;" d="M 367.497,77.313c-9.476,1.494-9.692,27.327-9.692,27.327s 27.844,27.328, 33.912,64.076 c 16.326,0, 26.407,39.069, 10.082,52.814c 0.681,14.47, 20.984,113.588-81.799,113.588c-102.782,0-82.479-99.118-81.799-113.588 c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076s-0.216-25.833-9.692-27.327 C 241.979,72.497, 128,22.655, 128-32l 192,0 l 192,0 C 512,22.655, 398.021,72.497, 367.497,77.313zM 172.027,68.595c 22.047,13.575, 48.813,26.154, 70.769,33.712c-7.876,11.216-16.647,26.468-22.165,44.531 c-7.703,6.283-13.972,15.266-17.999,26.301c-4.033,11.052-5.561,23.426-4.304,34.842c 0.902,8.196, 3.239,15.833, 6.825,22.544 c-2.175,23.293-3.707,69.017, 26.224,102.366c 11.607,12.933, 26.278,22.23, 43.85,27.843C 272.090,393.114, 255.647,431.119, 192,431.119 c-102.782,0-82.479-99.118-81.799-113.588c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076 s-0.216-25.833-9.692-27.327C 113.979,168.497,0,118.655,0,64l 164.798,0 C 167.153,65.537, 169.551,67.070, 172.027,68.595z" data-tags="users, people, group, team, members, community" />
<glyph unicode="&#x6d;" d="M 448,384L 64,384 c-35.2,0-64-28.8-64-64l0-224 c0-35.2, 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64L 512,320 C 512,355.2, 483.2,384, 448,384z M 64,96c0,70.692, 35.817,128, 80,128c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48s-21.49-48-48-48 c 44.183,0, 80-57.308, 80-128L 64,96 z M 448,96L 288,96 l0,32 l 160,0 L 448,96 z M 448,192L 288,192 l0,32 l 160,0 L 448,192 z M 448,288L 288,288 l0,32 l 160,0 L 448,288 z" data-tags="vcard, card, contact" />
<glyph unicode="&#x70;" d="M 32,256L 80,256L 80,176L 32,176zM 32,352L 80,352L 80,272L 32,272zM 32,160L 80,160L 80,80L 32,80zM 32,64L 80,64L 80-16L 32-16zM 96,480l0-512 l 384,0 L 480,480 L 96,480 z M 288,351.835c 35.255,0, 63.835-28.58, 63.835-63.835s-28.58-63.835-63.835-63.835 c-35.255,0-63.835,28.58-63.835,63.835S 252.745,351.835, 288,351.835z M 384,96L 192,96 l0,32 c0,35.347, 28.654,64, 64,64l0,0 l 64,0  c 35.348,0, 64-28.653, 64-64L 384,96 zM 32,448L 80,448L 80,368L 32,368z" data-tags="address-book, book, contacts" />
<glyph unicode="&#x26;" d="M 128,160c0,0, 29.412,96, 192,96l0-96 l 192,128L 320,416l0-96 C 192,320, 128,240.164, 128,160zM 352,96L 64,96 L 64,288 l 62.938,0 c 5.047,5.959, 10.456,11.667, 16.244,17.090c 21.982,20.595, 48.281,36.326, 78.057,46.91L0,352 l0-320 l 416,0 L 416,166.312 l-64-42.667L 352,96 z" data-tags="share, out, external, outside" />
<glyph unicode="&#xe257;" d="M 192,224 L 32,224 L 32,288 L 192,288 L 192,352 L 288,256 L 192,160 ZM 512,480 L 512,64 L 320-32 L 320,64 L 128,64 L 128,192 L 160,192 L 160,96 L 320,96 L 320,384 L 448,448 L 160,448 L 160,320 L 128,320 L 128,480 Z" data-tags="enter, sign in, log in, login" />
<glyph unicode="&#xe258;" d="M 384,160 L 384,224 L 224,224 L 224,288 L 384,288 L 384,352 L 480,256 ZM 352,192 L 352,64 L 192,64 L 192-32 L 0,64 L 0,480 L 352,480 L 352,320 L 320,320 L 320,448 L 64,448 L 192,384 L 192,96 L 320,96 L 320,192 Z" data-tags="exit, sign out, log out, quit, close, logout" />
<glyph unicode="&#x24;" d="M 464,448 C 490.4,448 512,426.4 512,400 L 512,144 C 512,117.6 490.4,96 464,96 L 281.6,96 L 128-32 L 128,96 L 48,96 C 21.6,96 0,117.6 0,144 L 0,400 C 0,426.4 21.6,448 48,448 L 464,448 Z" data-tags="bubble, comment, chat, talk" />
<glyph unicode="&#x25;" d="M 400,480 C 426.4,480 448,458.4 448,432 L 448,272 C 448,245.6 426.4,224 400,224 L 217.6,224 L 64,96 L 64,224 L 48,224 C 21.6,224 0,245.6 0,272 L 0,432 C 0,458.4 21.6,480 48,480 L 400,480 ZM 528,384 C 554.4,384 576,362.4 576,336 L 576,144 C 576,117.6 554.4,96 528,96 L 448,96 L 448-32 L 294.4,96 L 192,96 L 192,160 L 317.57,160 L 416,72.643 L 416,160 L 512,160 L 512,320 L 480,320 L 480,384 L 528,384 Z" horiz-adv-x="576" data-tags="bubbles, comments, chat, talk" />
<glyph unicode="&#x60;" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z" data-tags="quotes-left, ldquo" />
<glyph unicode="&#x61;" d="M 400,160 C 338.144,160 288,210.145 288,272 C 288,333.856 338.144,384 400,384 C 461.856,384 512,333.856 512,272 L 512.5,256 C 512.5,132.288 412.212,32 288.5,32 L 288.5,96 C 331.237,96 371.417,112.643 401.637,142.863 C 407.454,148.681 412.763,154.871 417.552,161.373 C 411.833,160.473 405.972,160 400,160 ZM 112,160 C 50.145,160 0,210.145 0,272 C 0,333.856 50.145,384 112,384 C 173.855,384 224,333.856 224,272 L 224.5,256 C 224.5,132.288 124.212,32 0.5,32 L 0.5,96 C 43.237,96 83.417,112.643 113.637,142.863 C 119.455,148.681 124.764,154.871 129.553,161.373 C 123.833,160.473 117.973,160 112,160 Z" data-tags="quotes-right, rdquo" />
<glyph unicode="&#xe259;" d="M 464,480L 48,480 C 21.6,480,0,458.4,0,432l0-288 c0-26.4, 21.6-48, 48-48l 80,0 l0-128 l 153.6,128L 464,96 c 26.4,0, 48,21.6, 48,48L 512,432 C 512,458.4, 490.4,480, 464,480z M 224,344.615c-29.821-6.85-55.189-28.007-70.488-56.941C 155.646,287.889, 157.81,288, 160,288 c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64c0,43.612, 15.198,84.729, 42.795,115.775 C 162.042,365.927, 191.74,382.388, 224,387.379L 224,344.615 z M 416,344.615c-29.82-6.85-55.189-28.007-70.488-56.941 C 347.646,287.889, 349.81,288, 352,288c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64 c0,43.612, 15.198,84.729, 42.795,115.775C 354.041,365.927, 383.74,382.388, 416,387.379L 416,344.615 z" data-tags="bubble-quote, comment, chat, talk, quote" />
<glyph unicode="&#xe260;" d="M 457.153,376.352 C 510.42,346.068 512,313.643 512.002,291.003 L 512.002,287.606 C 512.002,282.424 507.533,278.188 502.074,278.188 L 381.928,278.188 C 376.469,278.188 372,282.424 372,287.606 L 372,299.059 C 372,327.664 344.645,332.234 329.551,334.664 C 314.455,337.090 276.934,339.441 256.071,339.441 C 256.045,339.441 256.025,339.441 256.005,339.441 C 255.976,339.441 255.956,339.441 255.928,339.441 C 235.066,339.441 197.541,337.091 182.448,334.664 C 167.355,332.237 139.999,327.666 139.999,299.059 L 139.999,287.606 C 139.999,282.424 135.53,278.188 130.073,278.188 L 9.927,278.188 C 4.47,278.188 0.001,282.424 0.001,287.606 L 0.001,291.003 C 0.001,313.643 1.581,346.068 54.848,376.352 C 118.198,412.362 208.777,416 255.928,416 C 255.956,415.975 255.976,415.945 256.005,415.922 C 256.023,415.944 256.044,415.976 256.071,416 C 303.223,416 393.803,412.366 457.153,376.352 ZM 256.001,288c-28.374,0-87.443-2.126-117.456-38.519C 108.523,213.098, 33.455,32, 100.398,32c 66.956,0, 125.458,0, 155.606,0 c 30.137,0, 88.648,0, 155.595,0c 66.945,0-8.125,181.098-38.137,217.481C 343.444,285.874, 284.362,288, 256.001,288z M 256,96 c-35.346,0-64,28.653-64,64s 28.654,64, 64,64c 35.347,0, 64-28.653, 64-64S 291.347,96, 256,96z" data-tags="phone, contact, telephone, support, call" />
<glyph unicode="&#xe261;" d="M 352,160c-32-32-32-64-64-64s-64,32-96,64s-64,64-64,96s 32,32, 64,64S 128,448, 96,448S0,352,0,352c0-64, 65.75-193.75, 128-256 s 192-128, 256-128c0,0, 96,64, 96,96S 384,192, 352,160z" data-tags="phone, contact, telephone, support, call" />
<glyph unicode="&#x4d;" d="M 325.608,214.818L 512,86.264L 512,382.211 zM0,382.211L0,86.264L 186.388,214.836 zM 256,152.309L 211.499,192.264L0,64L 512,64L 300.495,192.264 zM 496.64,384L 15.36,384L 256,203.074 z" data-tags="envelop, mail, email, contact, letter" />
<glyph unicode="&#x4e;" d="M 325.607,118.95L 512-9.605L 512,286.343 zM0,286.343L0-9.605L 186.388,118.968 zM 256,56.44L 211.499,96.395L0-31.868L 512-31.868L 300.494,96.395 zM 15.359,288L 496.64,288L 255.999,468.926 z" data-tags="envelop-opened, mail, email, contact, letter" />
<glyph unicode="&#x4f;" d="M 352,384L 160,384 L0,192l0-80 l0-48 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32l0,48 l0,80 L 352,384z M 384,192l-64-64L 192,128 l-64,64L 41.655,192 l 133.333,160l 162.024,0 l 133.333-160L 384,192 z" data-tags="drawer, inbox, box, archive, storage, category" />
<glyph unicode="&#x50;" d="M 352,384L 160,384 L0,192l0-128 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32L 512,192 L 352,384z M 320,128L 192,128 l-32,32l 192,0  L 320,128z M 41.655,192l 133.333,160l 162.024,0 l 133.333-160L 41.655,192 zM 142.482,288L 369.518,288L 342.851,320L 169.148,320 zM 89.149,224L 422.852,224L 396.185,256L 115.815,256 z" data-tags="drawer, inbox, box, archive, storage, category" />
<glyph unicode="&#xe020;" d="M 480,352L 352,352 L 352,384 c0,17.6-14.4,32-32,32L 192,416 c-17.602,0-32-14.4-32-32l0-32 L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.601, 14.398-32, 32-32l 448,0 c 17.6,0, 32,14.399, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 192,383.942 c 0.017,0.020, 0.037,0.041, 0.057,0.058l 127.886,0 c 0.021-0.017, 0.041-0.038, 0.059-0.058L 320.002,352 L 192,352 L 192,383.942 z M 480,224l-64,0 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.802,0-16,7.199-16,16l0,48 L 160,224 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.801,0-16,7.199-16,16l0,48 L 32,224 l0,32 l 448,0 L 480,224 z" data-tags="briefcase, portfolio, suitcase, work, job, employee" />
<glyph unicode="&#xe262;" d="M 272,480L0,208l 240-240l 272,272L 512,480 L 272,480 z M 400,320c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.51,320, 400,320z" data-tags="tag, price" />
<glyph unicode="&#xe263;" d="M 448,416 L 298.51,416 L 90.51,208 L 240,58.51 L 448,266.51 L 448,416 Z M 512,480 L 512,480 L 512,240 L 240-32 L 0,208 L 272,480 L 512,480 ZM 320,336A48,48 3060 1 0 416,336A48,48 3060 1 0 320,336z" data-tags="tag, price" />
<glyph unicode="&#xe264;" d="M 496,448L 384,448 c-26.4,0-63.273-15.273-81.941-33.941L 113.941,225.941c-18.667-18.667-18.667-49.214,0-67.882l 140.118-140.117 c 18.667-18.668, 49.214-18.668, 67.882,0l 188.117,188.117C 528.727,224.727, 544,261.6, 544,288L 544,400 C 544,426.4, 522.4,448, 496,448z M 432,288 c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 458.51,288, 432,288zM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 Z" horiz-adv-x="544" data-tags="tags, prices" />
<glyph unicode="&#xe265;" d="M 480,384 L 384,384 C 381.158,384 373.652,382.643 364.621,378.902 C 355.59,375.161 349.322,370.813 347.312,368.804 L 170.509,192 L 288,74.51 L 464.803,251.314 C 466.813,253.323 471.161,259.591 474.901,268.622 C 478.643,277.652 480,285.158 480,288 L 480,384 Z M 496,448 L 496,448 C 522.4,448 544,426.4 544,400 L 544,288 C 544,261.6 528.727,224.727 510.058,206.059 L 321.941,17.942 C 312.607,8.608 300.304,3.941 288,3.941 C 275.696,3.941 263.392,8.608 254.059,17.942 L 113.941,158.059 C 95.274,176.727 95.274,207.274 113.941,225.941 L 302.059,414.059 C 320.727,432.727 357.6,448 384,448 L 496,448 ZM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 ZM 384,320A32,32 3060 1 0 448,320A32,32 3060 1 0 384,320z" horiz-adv-x="544" data-tags="tags, prices" />
<glyph unicode="&#x38;" d="M 466.895,174.875c-26.863,46.527-10.708,106.152, 36.076,133.244l-50.313,87.146c-14.375-8.427-31.088-13.259-48.923-13.259 c-53.768,0-97.354,43.873-97.354,97.995L 205.752,480.001 c 0.133-16.705-4.037-33.641-12.979-49.126 c-26.862-46.528-86.578-62.351-133.431-35.379L 9.030,308.35c 14.485-8.236, 27.025-20.294, 35.943-35.739 c 26.819-46.454, 10.756-105.96-35.854-133.112l 50.313-87.146c 14.325,8.348, 30.958,13.127, 48.7,13.127 c 53.598,0, 97.072-43.596, 97.35-97.479l 100.627,0 c-0.043,16.537, 4.136,33.285, 12.983,48.609 c 26.818,46.453, 86.388,62.297, 133.207,35.506l 50.313,87.145C 488.222,147.494, 475.766,159.51, 466.895,174.875z M 256,120.334 c-57.254,0-103.668,46.412-103.668,103.667c0,57.254, 46.413,103.667, 103.668,103.667c 57.254,0, 103.666-46.413, 103.666-103.667 C 359.665,166.746, 313.254,120.334, 256,120.334z" data-tags="cog, preferences, settings, gear, generate, control, options" />
<glyph unicode="&#x37;" d="M 181.861,118.974l 20.649,28.908l-22.627,22.628l-28.909-20.648c-5.361,2.997-11.102,5.387-17.133,7.096L 128,192L 96,192 l-5.84-35.043c-6.031-1.709-11.772-4.099-17.133-7.096L 44.118,170.51L 21.49,147.882l 20.649-28.908 c-2.997-5.36-5.387-11.103-7.096-17.133L0,96l0-32 l 35.043-5.841c 1.709-6.030, 4.099-11.772, 7.096-17.133L 21.49,12.118l 22.627-22.628 l 28.909,20.648c 5.361-2.997, 11.102-5.387, 17.133-7.096L 96-32l 32,0 l 5.84,35.043c 6.031,1.709, 11.772,4.099, 17.133,7.096l 28.909-20.648 l 22.627,22.628l-20.649,28.908c 2.997,5.36, 5.387,11.103, 7.096,17.133L 224,64l0,32 l-35.043,5.841 C 187.248,107.871, 184.858,113.613, 181.861,118.974z M 112,48c-17.674,0-32,14.327-32,32s 14.326,32, 32,32s 32-14.327, 32-32 S 129.674,48, 112,48zM 512,288l0,32 l-33.691,6.125c-0.621,4.023-1.416,7.989-2.362,11.895l 28.779,18.55L 492.48,386.134l-33.472-7.234 c-2.107,3.455-4.363,6.81-6.746,10.065l 19.503,28.171l-22.628,22.627l-28.171-19.503c-3.256,2.383-6.61,4.638-10.065,6.747 l 7.234,33.472L 388.571,472.726l-18.55-28.779c-3.906,0.946-7.872,1.741-11.895,2.362L 352,480l-32,0 l-6.126-33.691 c-4.023-0.621-7.988-1.416-11.895-2.362L 283.43,472.726L 253.866,460.48l 7.234-33.472c-3.455-2.108-6.81-4.364-10.065-6.747 l-28.171,19.503l-22.627-22.627l 19.503-28.171c-2.383-3.255-4.639-6.61-6.747-10.065l-33.472,7.234l-12.246-29.564l 28.779-18.55 c-0.946-3.906-1.741-7.871-2.362-11.895L 160,320l0-32 l 33.691-6.125c 0.621-4.023, 1.416-7.989, 2.362-11.895l-28.779-18.55 l 12.246-29.564l 33.472,7.234c 2.108-3.455, 4.364-6.809, 6.747-10.065l-19.503-28.171l 22.627-22.628l 28.171,19.503 c 3.255-2.383, 6.61-4.638, 10.065-6.746l-7.234-33.472l 29.564-12.246l 18.551,28.779c 3.905-0.946, 7.871-1.741, 11.894-2.362L 320,128l 32,0 l 6.126,33.691c 4.022,0.621, 7.988,1.416, 11.895,2.362l 18.55-28.779l 29.564,12.246l-7.234,33.472 c 3.455,2.108, 6.81,4.363, 10.065,6.746l 28.171-19.503l 22.628,22.628l-19.503,28.171c 2.383,3.256, 4.638,6.61, 6.746,10.065 l 33.472-7.234l 12.246,29.565l-28.779,18.55c 0.946,3.906, 1.741,7.871, 2.362,11.895L 512,288z M 336,234.4 c-38.439,0-69.6,31.161-69.6,69.6c0,38.439, 31.16,69.6, 69.6,69.6s 69.6-31.161, 69.6-69.6C 405.6,265.561, 374.44,234.4, 336,234.4z" data-tags="cogs, settings, gears, generate, control, options" />
<glyph unicode="&#x36;" d="M 507.256,84.744L 308.744,283.256c-11.030,11.031-38.41,2.154-65.372-19.758L 96,410.87L 80,448L 28.768,480L0,451.232L 32,400 l 37.13-16l 147.373-147.372c-21.913-26.963-30.79-54.342-19.76-65.372c 0.003-0.003, 0.006-0.005, 0.009-0.008l 198.503-198.504 c 12.976-12.975, 48.565,1.579, 79.494,32.508C 505.677,36.18, 520.23,71.771, 507.256,84.744z M 445.435,34.565 c-3.71-3.71-8.572-5.565-13.435-5.565s-9.725,1.855-13.435,5.565l-160,160c-7.421,7.42-7.421,19.449,0,26.869 c 7.42,7.42, 19.449,7.42, 26.869,0l 160-160C 452.855,54.015, 452.855,41.985, 445.435,34.565z" data-tags="screwdriver, fix, tool, make, build" />
<glyph unicode="&#x3a;" d="M 507.882,411.883L 448,352l-64,64l 59.882,59.883C 435.057,478.557, 425.698,480, 416,480c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.057, 4.116-27.882L 123.882,155.883C 115.057,158.557, 105.698,160, 96,160c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.058, 4.117-27.882L 64,96l 64-64l-59.883-59.882C 76.943-30.556, 86.302-32, 96-32c 53.020,0, 96,42.981, 96,96 c0,9.698-1.444,19.059-4.118,27.883l 200.234,200.235C 396.943,289.444, 406.302,288, 416,288c 53.020,0, 96,42.981, 96,96 C 512,393.698, 510.556,403.058, 507.882,411.883z" data-tags="wrench, settings, control, tool, options, preferences, fix" />
<glyph unicode="&#x39;" d="M 144,320L 80,320 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.8,0, 16,7.2, 16,16l0,32 C 160,312.8, 152.8,320, 144,320zM 96,416L 128,416L 128,336L 96,336zM 96,240L 128,240L 128,32L 96,32zM 272,192l-64,0 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 288,184.8, 280.801,192, 272,192zM 224.001,416L 256.001,416L 256.001,208L 224.001,208zM 224.001,112L 256.001,112L 256.001,32L 224.001,32zM 400,288l-64,0 c-8.799,0-16-7.2-16-16l0-32 c0-8.8, 7.201-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 416,280.8, 408.801,288, 400,288zM 352,416L 384,416L 384,304L 352,304zM 352,208L 384,208L 384,32L 352,32zM 440,480L 40,480 C 17.944,480,0,462.056,0,440l0-432 c0-22.056, 17.944-40, 40-40l 400,0 c 22.056,0, 40,17.944, 40,40L 480,440  C 480,462.056, 462.056,480, 440,480z M 448,8c0-4.4-3.6-8-8-8L 40,0 c-4.4,0-8,3.6-8,8L 32,440 c0,4.4, 3.6,8, 8,8l 400,0 c 4.4,0, 8-3.6, 8-8L 448,8 z" data-tags="equalizer, control, options, settings, dashboard" />
<glyph unicode="&#x78;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 224,352A32,32 11340 1 0 288,352A32,32 11340 1 0 224,352zM 320,320A32,32 11340 1 0 384,320A32,32 11340 1 0 320,320zM 128,320A32,32 11340 1 0 192,320A32,32 11340 1 0 128,320zM 224,128L 224,96L 288,96L 288,128L 256,288 z" data-tags="dashboard, control panel" />
<glyph unicode="&#xe266;" d="M 320,406.706l0-67.979 c 18.103-7.902, 34.75-19.204, 49.137-33.59C 399.358,274.917, 416,234.737, 416,192 s-16.643-82.917-46.863-113.137C 338.917,48.643, 298.738,32, 256,32s-82.917,16.643-113.137,46.863 C 112.643,109.083, 96,149.263, 96,192s 16.643,82.917, 46.863,113.137c 14.387,14.387, 31.034,25.689, 49.137,33.591L 192,406.706  C 99.476,379.166, 32,293.47, 32,192c0-123.712, 100.289-224, 224-224c 123.712,0, 224,100.288, 224,224 C 480,293.47, 412.525,379.166, 320,406.706zM 224,480L 288,480L 288,224L 224,224z" data-tags="switch, power, turn off, off, shutdown" />
<glyph unicode="&#x54;" d="M 256,480C 114.615,480,0,444.183,0,400l0-48 l 192-192l0-160 c0-17.673, 28.653-32, 64-32c 35.346,0, 64,14.327, 64,32L 320,160 l 192,192L 512,400 C 512,444.183, 397.385,480, 256,480z M 47.192,410.588c 11.972,6.829, 28.791,13.31, 48.639,18.744C 139.803,441.37, 196.685,448, 256,448 c 59.314,0, 116.197-6.63, 160.169-18.668c 19.848-5.434, 36.667-11.915, 48.64-18.744c 7.896-4.503, 12.162-8.312, 14.148-10.588 c-1.986-2.276-6.253-6.084-14.148-10.588c-11.973-6.829-28.792-13.31-48.64-18.744C 372.198,358.63, 315.315,352, 256,352 c-59.315,0-116.197,6.63-160.169,18.668c-19.848,5.434-36.667,11.915-48.639,18.744C 39.296,393.916, 35.030,397.724, 33.043,400 C 35.030,402.276, 39.296,406.084, 47.192,410.588z" data-tags="filter, funnel" />
<glyph unicode="&#x4c;" d="M 64,0c0-17.673, 14.327-32, 32-32l 320,0 c 17.674,0, 32,14.327, 32,32L 448,352 L 64,352 L 64,0 z M 320,288l 64,0 l0-256 l-64,0 L 320,288 z M 224,288l 64,0 l0-256 l-64,0  L 224,288 z M 128,288l 64,0 l0-256 l-64,0 L 128,288 zM 448,448L 320,448 L 320,480 L 192,480 l0-32 L 64,448 C 28.654,448,0,419.346,0,384l 512,0 C 512,419.346, 483.347,448, 448,448z" data-tags="remove, delete, trashcan, recycle bin, bin, dispose" />
<glyph unicode="&#x23;" d="M 416,256l-32,0 l0,96 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.308-128-128l0-96 L 96,256 c-17.6,0-32-14.4-32-32l0-224 c0-17.6, 14.4-32, 32-32l 320,0 c 17.6,0, 32,14.4, 32,32L 448,224 C 448,241.6, 433.6,256, 416,256z M 256,64c-17.673,0-32,14.327-32,32 s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,64, 256,64z M 320,256L 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64L 320,256 z" data-tags="lock, secure, private, encrypted" />
<glyph unicode="&#xe267;" d="M 256,64c-17.673,0-32,14.326-32,32c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32C 288,78.326, 273.673,64, 256,64z M 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64l0-32 l 64,0 l0,32 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.309-128-128l0-96 L 96,256 c-17.601,0-32-14.4-32-32l0-224 c0-17.601, 14.399-32, 32-32l 320,0 c 17.6,0, 32,14.399, 32,32L 448,224 c0,17.6-14.4,32-32,32L 192,256 z" data-tags="unlock, secure, private, encrypted" />
<glyph unicode="&#x5f;" d="M 352,480c-88.365,0-160-71.634-160-160c0-10.013, 0.929-19.808, 2.688-29.312L0,96l0-96 c0-17.673, 14.327-32, 32-32 l 32,0 l0,32 l 64,0 l0,64 l 64,0 l0,64 l 64,0 l 41.521,41.521C 314.526,163.363, 332.869,160, 352,160c 88.365,0, 160,71.634, 160,160S 440.365,480, 352,480z M 399.937,319.937c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.447,319.937, 399.937,319.937z" data-tags="key, password, login, log in, signin, sign in" />
<glyph unicode="&#x46;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 160,224 c0,53.020, 42.98,96, 96,96s 96-42.98, 96-96s-42.98-96-96-96S 160,170.98, 160,224z M 462.99,138.262L 462.99,138.262l-88.71,36.745 C 380.539,190.099, 384,206.645, 384,224s-3.461,33.901-9.72,48.993l 61.063,25.293l 27.647,11.452C 473.944,283.327, 480,254.373, 480,224 C 480,193.627, 473.943,164.673, 462.99,138.262L 462.99,138.262z M 341.739,430.99L 341.739,430.99L 341.739,430.99l-36.745-88.71 C 289.902,348.539, 273.356,352, 256,352s-33.901-3.461-48.993-9.72l-17.23,41.599l-19.515,47.112C 196.673,441.943, 225.628,448, 256,448 C 286.373,448, 315.327,441.943, 341.739,430.99z M 49.010,309.738l 47.112-19.515l 41.599-17.23C 131.462,257.901, 128,241.355, 128,224 s 3.461-33.901, 9.72-48.993l-88.71-36.745C 38.057,164.673, 32,193.627, 32,224C 32,254.373, 38.057,283.327, 49.010,309.738z  M 170.262,17.010l 11.452,27.647l 25.293,61.063C 222.099,99.461, 238.645,96, 256,96s 33.901,3.461, 48.993,9.72l 36.745-88.71l0,0l0,0 C 315.327,6.058, 286.373,0, 256,0C 225.628,0, 196.673,6.057, 170.262,17.010z" data-tags="support, help, life, lifebuoy" />
<glyph unicode="&#x62;" d="M 256,480C 114.614,480,0,444.184,0,400l0-64 c0-44.183, 114.611-80, 256-80c 141.385,0, 256,35.817, 256,80L 512,400 C 512,444.184, 397.385,480, 256,480 zM 255.193,224C 140.566,224, 43.94,247.543, 11.32,280C 3.705,272.423,0,264.361,0,256l0-64 c0-44.184, 114.611-80, 256-80 c 141.385,0, 256,35.816, 256,80l0,64 c0,8.361-4.516,16.423-12.131,24C 467.25,247.543, 369.82,224, 255.193,224zM 255.193,80C 140.566,80, 43.94,103.544, 11.32,136C 3.705,128.424,0,120.361,0,112l0-64 c0-44.183, 114.611-80, 256-80 c 141.385,0, 256,35.817, 256,80l0,64 c0,8.361-4.516,16.424-12.131,24C 467.25,103.544, 369.82,80, 255.193,80z" data-tags="database, server, host, storage, save, datecenter" />
<glyph unicode="&#xe268;" d="M 390.979-32c-27.208,0.001-61.186,16.608-75.809,53.702c-2.034,4.84-4.271,10.714-6.859,17.509 c-8.285,21.749-20.806,54.616-33.892,68.23c-4.79,4.984-8.495,8.599-11.473,11.504c-2.673,2.607-4.921,4.801-6.946,7.019 c-2.025-2.219-4.273-4.412-6.948-7.022c-2.976-2.904-6.68-6.519-11.468-11.5c-13.086-13.616-25.608-46.488-33.895-68.239 c-2.586-6.791-4.823-12.661-6.856-17.499C 182.208-15.391, 148.231-32, 121.025-32c-5.303,0-10.138,0.646-14.373,1.918 c-26.772,8.046-43.012,37.939-40.411,74.386l 0.372,4.206c 3.287,29.404, 21.199,58.458, 50.435,81.806 c 25.344,20.238, 55.31,32.812, 78.204,32.812c 4.53,0, 8.712-0.494, 12.519-1.472l 15.711,32.209 c-16.148,40.414-39.152,100.774-57.123,153.646c-10.015,29.463-17.448,53.594-22.094,71.721 c-7.352,28.691-6.883,38.393-3.916,44.132L 148.95,480l 107.053-219.465L 363.049,479.999l 8.602-16.635 c 2.967-5.739, 3.438-15.441-3.915-44.132c-4.646-18.126-12.079-42.257-22.093-71.72c-17.97-52.868-40.974-113.229-57.123-153.646 l 15.711-32.209c 3.806,0.978, 7.987,1.472, 12.518,1.472c 22.895,0, 52.861-12.574, 78.206-32.814 c 24.995-19.962, 41.713-44.097, 48.090-69.052l 1.179,0.564l 1.535-17.522c 2.603-36.445-13.635-66.338-40.404-74.386 c-4.235-1.272-9.071-1.918-14.373-1.918C 390.98-32, 390.979-32, 390.979-32z M 346.841,39.052 c 18.936-34.353, 35.854-39.491, 44.263-39.491c 11.447,0, 20.018,9.238, 21.691,18.169c 1.097,5.871, 1.296,11.914, 0.592,17.961 c-2.837,24.156-19.338,44.898-32.678,58.044c-18.334,18.065-38.889,30.062-52.085,35.3c-1.313,0.457-2.121,0.526-2.489,0.526 c-0.255,0-0.354-0.031-0.355-0.031C 321.937,127.034, 317.342,98.010, 346.841,39.052z M 183.13,129.035 c-13.115-5.24-33.545-17.236-51.764-35.301c-13.26-13.145-29.656-33.888-32.475-58.052c-0.704-6.030-0.506-12.069, 0.589-17.953 c 1.661-8.93, 10.179-18.169, 21.556-18.169c 8.356,0, 25.17,5.139, 43.991,39.49c 29.312,58.938, 24.764,87.944, 20.903,90.493 c0-0.001-0.001-0.001-0.004-0.001c-0.020,0-0.125,0.018-0.32,0.018C 185.239,129.561, 184.438,129.492, 183.13,129.035z" data-tags="scissors, cut" />
<glyph unicode="&#x6a;" d="M 416,160L 384,128L 320,288L 256,96L 160,448L 96,128L0,128L0,96L 122.235,96L 164.794,308.803L 225.128,87.58L 252.937-14.385L 322.734,195.005L 354.288,116.115L 372.313,71.057L 429.256,128L 512,128L 512,160 z" data-tags="health, medicine, medical, pulse" />
<glyph unicode="&#x6b;" d="M 258.181,254.091l 94.386,29.34L 256,351.723L 256,480 L 152.532,405.466L 32,448l 42.533-120.533L0,224l 128,0 l 68.567-96.568l 29.341,94.387 L 448-32l 64,64L 258.181,254.091z M 202.327,277.672l-19.579-62.986l-38.084,53.010L 78.712,267.696 l 39.447,52.861L 96.979,383.021l 62.464-21.182 l 52.862,39.447l0-65.952 l 53.008-38.084L 202.327,277.672z" data-tags="wand, magic, wizard" />
<glyph unicode="&#x3c;" d="M 256,384C 144.341,384, 47.559,318.979,0,224c 47.559-94.979, 144.341-160, 256-160c 111.657,0, 208.439,65.021, 256,160 C 464.442,318.979, 367.657,384, 256,384z M 382.225,299.148c 30.081-19.187, 55.571-44.887, 74.717-75.148 c-19.146-30.261-44.637-55.961-74.718-75.149C 344.427,124.743, 300.779,112, 256,112c-44.78,0-88.428,12.743-126.225,36.852 C 99.695,168.038, 74.205,193.738, 55.058,224c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65 C 130.725,289.134, 128,274.387, 128,259c0-70.692, 57.308-128, 128-128s 128,57.308, 128,128c0,15.387-2.725,30.134-7.704,43.799 C 378.286,301.61, 380.265,300.398, 382.225,299.148z M 256,275c0-26.51-21.49-48-48-48s-48,21.49-48,48s 21.49,48, 48,48 S 256,301.51, 256,275z" data-tags="eye, views, vision, visit" />
<glyph unicode="&#xe269;" d="M 419.661,331.792 C 458.483,304.277 490.346,267.246 512,224 C 464.439,129.021 367.657,64 256,64 C 224.717,64 194.604,69.106 166.411,78.542 L 205.389,117.52 C 221.918,113.87 238.875,112 256,112 C 300.779,112 344.427,124.743 382.223,148.852 C 412.304,168.040 437.795,193.74 456.941,224.001 C 438.415,253.284 413.934,278.276 385.116,297.248 L 419.661,331.792 ZM 256,131 C 244.638,131 233.624,132.488 223.136,135.267 L 379.729,291.859 C 382.51,281.373 384,270.362 384,259 C 384,188.308 326.692,131 256,131 ZM 480,480l-26.869,0 L 343.325,370.194C 315.787,379.156, 286.448,384, 256,384C 144.341,384, 47.559,318.979,0,224 c 21.329-42.596, 52.564-79.154, 90.597-106.534L0,26.869L0,0 l 26.869,0 L 480,453.131L 480,480 z M 208,323c 24.022,0, 43.923-17.647, 47.446-40.685 l-54.762-54.762C 177.647,231.077, 160,250.978, 160,275C 160,301.51, 181.49,323, 208,323z M 55.058,224 c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65C 130.725,289.134, 128,274.387, 128,259 c0-29.262, 9.825-56.224, 26.349-77.781l-29.275-29.275C 97.038,170.765, 73.197,195.33, 55.058,224z" data-tags="eye-blocked, views, vision, visit, banned, blocked, forbidden, private" />
<glyph unicode="&#x6e;" d="M 329.372,105.372L 224,210.745L 224,352L 288,352L 288,237.255L 374.628,150.628 zM 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z" data-tags="clock, time, schedule" />
<glyph unicode="&#x6f;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 304,272l-144,80l-32,0 l0-32 l 80-144l 144-80l 32,0 l0,32 L 304,272z M 256,192c-17.673,0-32,14.327-32,32c0,17.673, 14.327,32, 32,32 c 17.673,0, 32-14.327, 32-32C 288,206.327, 273.673,192, 256,192z" data-tags="compass, direction, map, locate" />
<glyph unicode="&#xe01b;" d="M 224,96A32,32 13140 1 0 288,96A32,32 13140 1 0 224,96zM 256,416c-96.026,0-182.161-42.307-240.815-109.286l 24.081-21.071C 92.055,345.923, 169.577,384, 256,384 c 86.423,0, 163.945-38.077, 216.734-98.357l 24.081,21.071C 438.161,373.693, 352.027,416, 256,416zM 256,320c-67.218,0-127.513-29.615-168.571-76.5l 24.082-21.071C 146.703,262.616, 198.385,288, 256,288 c 57.616,0, 109.297-25.384, 144.489-65.571l 24.082,21.071C 383.513,290.385, 323.219,320, 256,320zM 256,224c-38.41,0-72.865-16.923-96.326-43.715l 24.082-21.071C 201.352,179.308, 227.192,192, 256,192 c 28.808,0, 54.648-12.692, 72.245-32.786l 24.081,21.071C 328.865,207.077, 294.41,224, 256,224z" data-tags="connection, broadcast, wifi, wave, feed" />
<glyph unicode="&#xe271;" d="M 448,416l0-416 L 112,0 c-26.511,0-48,21.49-48,48c0,26.509, 21.489,48, 48,48l 304,0 L 416,480 L 96,480 C 60.801,480, 32,451.2, 32,416l0-384  c0-35.2, 28.801-64, 64-64l 384,0 L 480,416 L 448,416 zM 128,64L 416,64L 416,32L 128,32z" data-tags="book, reading" />
<glyph unicode="&#x79;" d="M 192,480L0,224L 192,224L 64-32L 512,288L 256,288L 448,480 z" data-tags="lightning, power" />
<glyph unicode="&#xe013;" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320  C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2 c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z" data-tags="print, printer" />
<glyph unicode="&#x71;" d="M 426.67,480L 85.343,480 C 38.405,480,0,441.594,0,394.656l0-341.314 C0,6.375, 38.406-32, 85.344-32L 426.67-32 c 46.938,0, 85.33,38.374, 85.33,85.342L 512,394.656 C 512,441.594, 473.608,480, 426.67,480z M 139.472,64.376C 115.487,64.376, 96,83.722, 96,107.69 c0,23.842, 19.486,43.406, 43.472,43.406c 24.079,0, 43.53-19.564, 43.53-43.406C 183.001,83.722, 163.55,64.376, 139.472,64.376z  M 248.734,64.002c0,40.905-15.904,79.409-44.73,108.222c-28.857,28.875-67.188,44.813-107.952,44.813L 96.052,279.63 c 118.826,0, 215.563-96.721, 215.563-215.627L 248.734,64.002L 248.734,64.002z M 359.814,64.002 c0,145.531-118.329,263.97-263.688,263.97L 96.126,390.596 c 180.001,0, 326.473-146.562, 326.473-326.596L 359.814,64.002L 359.814,64.002z" data-tags="feed, rss, social" />
<glyph unicode="&#x43;" d="M 160,288L 224,288L 224,224L 160,224zM 256,288L 320,288L 320,224L 256,224zM 352,288L 416,288L 416,224L 352,224zM 64,96L 128,96L 128,32L 64,32zM 160,96L 224,96L 224,32L 160,32zM 256,96L 320,96L 320,32L 256,32zM 160,192L 224,192L 224,128L 160,128zM 256,192L 320,192L 320,128L 256,128zM 352,192L 416,192L 416,128L 352,128zM 64,192L 128,192L 128,128L 64,128zM 416,480l0-32 l-64,0 L 352,480 L 128,480 l0-32 L 64,448 L 64,480 L0,480 l0-512 l 480,0 L 480,480 L 416,480 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z" data-tags="calendar, schedule, date, time, day" />
<glyph unicode="&#x44;" d="M 64,320L 96,320L 96,288L 64,288zM 128,320L 160,320L 160,288L 128,288zM 192,320L 224,320L 224,288L 192,288zM 256,320L 288,320L 288,288L 256,288zM 320,320L 352,320L 352,288L 320,288zM 384,320L 416,320L 416,288L 384,288zM 64,256L 96,256L 96,224L 64,224zM 128,256L 160,256L 160,224L 128,224zM 192,256L 224,256L 224,224L 192,224zM 256,256L 288,256L 288,224L 256,224zM 320,256L 352,256L 352,224L 320,224zM 384,256L 416,256L 416,224L 384,224zM 64,192L 96,192L 96,160L 64,160zM 128,192L 160,192L 160,160L 128,160zM 192,192L 224,192L 224,160L 192,160zM 256,192L 288,192L 288,160L 256,160zM 320,192L 352,192L 352,160L 320,160zM 384,192L 416,192L 416,160L 384,160zM 64,128L 96,128L 96,96L 64,96zM 128,128L 160,128L 160,96L 128,96zM 192,128L 224,128L 224,96L 192,96zM 256,128L 288,128L 288,96L 256,96zM 320,128L 352,128L 352,96L 320,96zM 384,128L 416,128L 416,96L 384,96zM 64,64L 96,64L 96,32L 64,32zM 128,64L 160,64L 160,32L 128,32zM 192,64L 224,64L 224,32L 192,32zM 256,64L 288,64L 288,32L 256,32zM 320,64L 352,64L 352,32L 320,32zM 384,64L 416,64L 416,32L 384,32zM 416,448L 416,480 l-64,0 l0-64 l-32,0 L 320,448 L 160,448 l0-32 l-32,0 L 128,480 L 64,480 l0-32 L0,448 l0-480 l 480,0 L 480,448 L 416,448 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z" data-tags="calendar, schedule, date, time, day" />
<glyph unicode="&#xe273;" d="M 448,416l-48,0 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 336,416 L 176,416 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 112,416 L 64,416  c-17.6,0-32-14.4-32-32l0-352 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z M 448,32.058 c-0.017-0.020-0.038-0.041-0.058-0.058L 64.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 64,320 l 384,0 L 448,32.058 zM 144,384c 8.836,0, 16,7.164, 16,16L 160,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 128,391.164, 135.164,384, 144,384zM 368,384c 8.836,0, 16,7.164, 16,16L 384,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 352,391.164, 359.164,384, 368,384zM 288,288L 128,288L 128,256L 256,256L 256,192L 128,192L 128,160L 256,160L 256,96L 128,96L 128,64L 288,64 zM 352,64L 384,64L 384,288L 320,288L 320,256L 352,256 zM 436-12L 76-12 c-17.6,0-32,10.4-32,28l0-16 c0-17.6, 14.4-32, 32-32l 360,0 c 17.6,0, 32,14.4, 32,32l0,16 C 468-1.6, 453.6-12, 436-12z" data-tags="calendar, schedule, date, time, day" />
<glyph unicode="&#x77;" d="M 224,192L 224,416 C 100.288,416,0,315.712,0,192s 100.288-224, 224-224s 224,100.288, 224,224c0,36.017-8.514,70.042-23.618,100.191 L 224,192zM 456.382,356.191C 419.606,429.599, 343.695,480, 256,480l0-224 L 456.382,356.191z" data-tags="pie, statistics, stats, chart, graph" />
<glyph unicode="&#x76;" d="M0,64L 512,64L 512,0L0,0zM 64,192L 128,192L 128,96L 64,96zM 160,320L 224,320L 224,96L 160,96zM 256,224L 320,224L 320,96L 256,96zM 352,416L 416,416L 416,96L 352,96z" data-tags="bars, statistics, stats, chart, graph" />
<glyph unicode="&#x75;" d="M 496,0L 384,0L 384,16L 368,16L 368,0L 208,0L 208,16L 192,16L 192,0L 80,0L 80,16L 64,16L 64,0L 32,0L 32,144L 48,144L 48,160L 32,160L 32,272L 48,272L 48,288L 32,288L 32,400L 48,400L 48,416L 32,416L 32,480L0,480L0-32L 512-32L 512,16L 496,16 zM 220,284L 212,276L 212,149.941L 220,157.941 zM 204,268L 196,260L 196,133.941L 204,141.941 zM 188,125.941L 188,258L 180,262L 180,128.833L 187.261,125.202 zM 268,332L 260,324L 260,197.941L 268,205.941 zM 236,300L 228,292L 228,165.941L 236,173.941 zM 172,266L 164,270L 164,136.833L 172,132.833 zM 252,316L 244,308L 244,181.941L 252,189.941 zM 124,290L 116,294L 116,160.833L 124,156.833 zM 92,306L 84,310L 84,176.833L 92,172.833 zM 156,274L 148,278L 148,144.833L 156,140.833 zM 108,298L 100,302L 100,168.833L 108,164.833 zM 76,314L 68,318L 68,184.833L 76,180.833 zM 284,348L 276,340L 276,213.941L 284,221.941 zM 140,282L 132,286L 132,152.833L 140,148.833 zM 412,316L 404,308L 404,137.267L 412,149.267 zM 428,332L 420,324L 420,161.267L 428,173.267 zM 444,348L 436,340L 436,185.267L 444,197.267 zM 476,380L 468,372L 468,233.267L 476,245.267 zM 460,364L 452,356L 452,209.267L 460,221.267 zM 508,412L 500,404L 500,281.267L 508,293.267 zM 492,396L 484,388L 484,257.267L 492,269.267 zM 348,312L 340,317.333L 340,162.666L 348,152 zM 332,322.667L 324,328L 324,184L 332,173.333 zM 300,344L 292,349.333L 292,226.667L 300,216 zM 316,333.333L 308,338.667L 308,205.333L 316,194.666 zM 364,301.333L 356,306.667L 356,141.333L 364,130.666 zM 396,300L 388,292L 388,113.268L 396,125.267 zM 380,290.667L 372,296L 372,119.999L 380,109.333 zM 384,64L 288,192L 192,96L 64,160L 64,32L 512,32L 512,256 z" data-tags="chart, stats, statistics, dualtone, plot, graph" />
<glyph unicode="&#x32;" d="M 512,338.75L 466.747,384L 377.374,294.624L 326.624,345.375L 415.999,434.75L 370.749,480L 281.374,390.625L 224,448L 180.687,404.688L 436.688,148.687L 480,191.999L 422.624,249.375 zM 137.374,105.373c 82.884-82.881, 192.597-18.181, 259.646,37.732L 175.108,365.017 C 119.196,297.969, 54.494,188.256, 137.374,105.373zM 95.999,127.998L 159.996,64L 64-31.996L 0.002,32.001z" data-tags="power cord, cord, plugin, extension" />
<glyph unicode="&#x33;" d="M 256,448L 32,352L 256,256L 480,352 zM 32,64L 224-16L 224,208L 32,288 zM 288-16L 480,64L 480,288L 288,208 z" data-tags="cube, box, 3d, miscellaneous" />
<glyph unicode="&#x34;" d="M 479.165,351.875L 394.94,351.875 c-21.715,0.033-43.348,1.503-22.252,38.729c 21.138,37.3, 36.059,89.521-48.802,89.521 c-84.857,0-69.935-52.221-48.797-89.521c 21.096-37.226-0.538-38.694-22.255-38.729l-91.938,0 c-18.060,0-32.835-14.778-32.835-32.834 l0-102.189 c0-21.756, 5.904-43.513-31.393-22.378C 59.372,215.611,0,230.531,0,145.672c0-84.854, 59.37-69.935, 96.67-48.798 c 37.297,21.137, 31.393-0.62, 31.393-22.38l0-73.783 c0-18.062, 14.777-32.835, 32.835-32.835l 91.811,0 c 21.76,0, 43.517,8.706, 22.382,46.004 c-21.137,37.295-36.061,89.519, 48.797,89.519c 84.858,0, 69.938-52.221, 48.8-89.519c-21.135-37.299, 0.623-46.005, 22.381-46.005l 84.096,0 c 18.062,0, 32.837,14.777, 32.837,32.835L 512.002,319.042 C 512.002,337.099, 497.227,351.875, 479.165,351.875z" data-tags="puzzle, piece, app, addon, extension" />
<glyph unicode="&#x72;" d="M 348.916,316.476l-32.476,32.461L 154.035,186.566c-26.907-26.896-26.907-70.524,0-97.422 c 26.902-26.896, 70.53-26.896, 97.437,0l 194.886,194.854c 44.857,44.831, 44.857,117.531,0,162.363 c-44.833,44.852-117.556,44.852-162.391,0L 79.335,241.788l 0.017-0.016c-0.145-0.152-0.306-0.288-0.438-0.423 c-62.551-62.548-62.551-163.928,0-226.453c 62.527-62.528, 163.934-62.528, 226.494,0c 0.137,0.137, 0.258,0.284, 0.41,0.438l 0.016-0.017 l 139.666,139.646l-32.493,32.46L 273.35,47.792l-0.008,0 c-0.148-0.134-0.282-0.285-0.423-0.422 c-44.537-44.529-116.99-44.529-161.538,0c-44.531,44.521-44.531,116.961,0,161.489c 0.152,0.152, 0.302,0.291, 0.444,0.423l-0.023,0.030 l 204.64,204.583c 26.856,26.869, 70.572,26.869, 97.443,0c 26.856-26.867, 26.856-70.574,0-97.42L 218.999,121.625 c-8.968-8.961-23.527-8.961-32.486,0c-8.947,8.943-8.947,23.516,0,32.46L 348.916,316.476z" data-tags="attachment, paperclip" />
<glyph unicode="&#x74;" d="M 256.003,480c-85.374,0-154.661-68.339-154.661-152.54c0-42.102, 25.089-86.239, 53.788-133.976 c 28.7-47.737, 6.022-100.49, 103.695-99.073c 93.617,1.376, 69.35,44.274, 96.629,92.011c 27.289,47.736, 55.205,98.938, 55.205,141.039 C 410.66,411.662, 341.371,480, 256.003,480zM 191.076,80.777l0-40.615 c 19.95-6.488, 41.896-10.088, 64.927-10.088c 23.029,0, 44.97,3.6, 64.921,10.086l0,37.525  c-11.158-10.273-29.447-13.1-62.1-13.645C 222.605,63.443, 202.953,67.848, 191.076,80.777zM 191.753,14.944c 2.507-13.705, 13.3-46.944, 64.25-46.944c 50.949,0, 61.742,33.239, 64.25,46.944 c-28.826-8.815-41.977-9.291-64.25-9.291C 233.728,5.653, 220.577,6.129, 191.753,14.944z" data-tags="lamp, idea, tip, light, bulb" />
<glyph unicode="&#x73;" d="M 272,480l-48-48l 48-48L 160,256L 48,256 l 88-88L0-12.308L0-32 l 19.692,0 L 200,104l 88-88L 288,128 l 128,112l 48-48l 48,48L 272,480z M 224,208l-32,32 l 112,112l 32-32L 224,208z" data-tags="pushpin, pin" />
<glyph unicode="&#x63;" d="M 256,480C 167.634,480, 96,408.366, 96,320c0-160, 160-352, 160-352s 160,192, 160,352C 416,408.366, 344.365,480, 256,480z M 256,224 c-53.020,0-96,42.98-96,96s 42.98,96, 96,96s 96-42.98, 96-96S 309.020,224, 256,224z" data-tags="location, map, marker, pin" />
<glyph unicode="&#xe274;" d="M 131.851,338.143c 2.709-85.392, 23.232-156.27, 61.189-211.080c 17.343-25.043, 38.449-46.778, 62.96-64.873 c 24.511,18.095, 45.618,39.83, 62.959,64.873c 37.957,54.811, 58.48,125.688, 61.189,211.080c-40.225,9.645-79.752,25.45-124.149,49.495 C 211.596,363.589, 172.078,347.788, 131.851,338.143zM 458.873,406.909C 387.436,411.877, 329.919,434.868, 256.002,480C 182.080,434.868, 124.563,411.877, 53.127,406.909 C 33.451,95.568, 202.896-3.16, 256.002-32C 309.105-3.16, 478.55,95.568, 458.873,406.909z M 358.422,99.735 c-35.469-51.219-77.048-80.031-102.421-95.026c-25.374,14.995-66.952,43.807-102.422,95.026 c-49.507,71.489-72.928,164.977-69.753,278.177c 56.394,7.775, 107.891,27.271, 172.175,64.812 c 64.281-37.541, 115.777-57.037, 172.173-64.812C 431.35,264.712, 407.929,171.225, 358.422,99.735z" data-tags="shield, security, defense, protection, anti virus" />
<glyph unicode="&#x35;" d="M 254.059,418.977C 205.881,476.227, 169.369,480, 96,480l0-256 c 128.267,64, 142.636-8.335, 223.506-1.023 C 399.234,230.197, 467.031,291.564, 512,352C 384.644,322.547, 320.54,339.977, 254.059,418.977zM0,480L 64,480L 64-32L0-32z" data-tags="flag, report, mark" />
<glyph unicode="&#xe275;" d="M 128,447.5c 19.393-0.786, 33.686-2.681, 46.365-6.903c 19.163-6.381, 35.674-19.009, 55.209-42.224 c 54.165-64.364, 108.925-91.826, 183.107-91.826c 7.729,0, 15.767,0.307, 24.147,0.925c-10.090-11.872-20.705-23.466-31.729-34.059 c-15.453-14.849-30.499-26.521-44.72-34.692c-14.99-8.612-29.547-13.609-43.263-14.851c-1.81-0.164-3.533-0.243-5.271-0.243 c-16.82,0-29.746,7.817-49.442,20.573c-22.574,14.618-50.668,32.812-91.546,32.812c-13.692,0-27.906-2.034-42.859-6.161L 127.998,447.5  M 96,480l0-256 c 30.587,15.262, 54.737,21.011, 74.859,21.011c 61.341,0, 85.367-53.384, 140.988-53.384c 2.648,0, 5.354,0.12, 8.152,0.373 c 79.729,7.221, 147.031,99.564, 192,160c-38.205-8.835-70.726-13.453-99.318-13.453c-66.72,0-112.085,25.129-158.623,80.43 C 205.881,476.227, 169.369,480, 96,480L 96,480zM0,480L 64,480L 64-32L0-32z" data-tags="flag, report, mark" />
<glyph unicode="&#xe023;" d="M 96,480L 96-32L 256,128L 416-32L 416,480 z" data-tags="bookmark, ribbon" />
<glyph unicode="&#xe276;" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z" data-tags="bookmark, ribbon" />
<glyph unicode="&#xe277;" d="M 376,448c-51.956,0-97.1-29.138-120-71.96C 233.099,418.862, 187.955,448, 136,448C 60.889,448,0,387.11,0,312c0-184, 256-312, 256-312 s 256,128, 256,312C 512,387.11, 451.111,448, 376,448z" data-tags="heart, like, love, favorite" />
<glyph unicode="&#xe278;" d="M 256,0l-13.97,6.779C 232.147,11.574,0,126.229,0,300.513C0,381.838, 67.738,448, 151,448c 39.83,0, 77.258-15.237, 105-41.462 C 283.742,432.763, 321.17,448, 361,448c 83.262,0, 151-66.162, 151-147.487c0-174.284-232.147-288.938-242.030-293.733L 256,0z M 151,384 c-47.972,0-87-37.452-87-83.487c0-67.976, 54.123-127.616, 99.526-165.68c 36.25-30.39, 73.062-52.351, 92.474-63.081 c 19.412,10.73, 56.224,32.691, 92.474,63.081C 393.877,172.896, 448,232.537, 448,300.513C 448,346.548, 408.972,384, 361,384 c-32.336,0-61.831-17.070-76.974-44.55L 256,288.59l-28.026,50.86C 212.831,366.93, 183.336,384, 151,384z" data-tags="heart, like, love, favorite" />
<glyph unicode="&#x5b;" d="M 464,192 C 500.5,192 480,96 448,96 C 464,96 448,16 416,16 C 416-16 384-32 352-32 C 216.824-32 264.368,1.825 128,16 L 128,272 C 248.461,308.134 368,398.712 368,480 C 394.5,480 464,448 368,288 C 368,288 448,288 464,288 C 512,288 496,192 464,192 ZM 96,272 L 96,16 L 128,16 L 128,0 L 64,0 C 46.4,0 32,21.6 32,48 L 32,240 C 32,266.4 46.4,288 64,288 L 128,288 L 128,272 L 96,272 Z" data-tags="thumbs-up, up, like, rate, vote up" />
<glyph unicode="&#x5c;" d="M 48,256 C 11.5,256 32,352 64,352 C 48,352 64,432 96,432 C 96,464 128,480 160,480 C 295.176,480 247.632,446.175 384,432 L 384,176 C 263.539,139.866 144,49.288 144-32 C 117.5-32 48,0 144,160 C 144,160 64,160 48,160 C 0,160 16,256 48,256 ZM 416,176 L 416,432 L 384,432 L 384,448 L 448,448 C 465.6,448 480,426.4 480,400 L 480,208 C 480,181.6 465.6,160 448,160 L 384,160 L 384,176 L 416,176 Z" data-tags="thumbs-up, up, like, rate, vote down" />
<glyph unicode="&#x40;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-111.731-58.74l 21.338,124.415l-90.393,88.111l 124.92,18.152L 256,388.387l 55.868-113.198 l 124.918-18.152l-90.394-88.111l 21.339-124.415L 256,103.251z" data-tags="star, rate, favorite, bookmark" />
<glyph unicode="&#x41;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-0.471-0.248L 256,388.387l 55.868-113.198l 124.918-18.152l-90.394-88.111l 21.339-124.415 L 256,103.251z" data-tags="star, rate, half" />
<glyph unicode="&#x42;" d="M 512,281.475L 335.11,307.179L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z" data-tags="star, rate, favorite, bookmark" />
<glyph unicode="&#xe279;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 256,64c-58.255,0-109.232,31.137-137.213,77.672l 41.164,24.698 C 179.538,133.796, 215.222,112, 256,112s 76.462,21.796, 96.049,54.37l 41.164-24.698C 365.232,95.137, 314.255,64, 256,64z" data-tags="smiley, emoticon, face" />
<glyph unicode="&#xe280;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 352.049,166.37 L 393.213,141.672 C 365.232,95.137 314.255,64 256,64 C 197.745,64 146.768,95.137 118.787,141.672 L 159.951,166.37 C 179.538,133.796 215.222,112 256,112 C 296.778,112 332.462,133.796 352.049,166.37 Z" data-tags="smiley, emoticon, face" />
<glyph unicode="&#xe281;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 352.049,89.63C 332.462,122.204, 296.777,144, 256,144 c-40.778,0-76.462-21.796-96.049-54.37l-41.164,24.698C 146.767,160.863, 197.745,192, 256,192c 58.254,0, 109.232-31.137, 137.213-77.672 L 352.049,89.63z" data-tags="sad, emoticon, smiley, face" />
<glyph unicode="&#xe282;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 159.951,89.63 L 118.787,114.328 C 146.768,160.863 197.745,192 256,192 C 314.254,192 365.231,160.863 393.213,114.328 L 352.049,89.63 C 332.462,122.204 296.778,144 256,144 C 215.221,144 179.538,122.204 159.951,89.63 Z" data-tags="sad, emoticon, smiley, face" />
<glyph unicode="&#xe283;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 320,96L 192,96 l0,32 l 128,0 L 320,96 z M 352,352c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 320,337.673, 334.327,352, 352,352z M 160,352 c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 128,337.673, 142.327,352, 160,352z" data-tags="neutral, emoticon, smiley, face" />
<glyph unicode="&#xe284;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 128,337.673, 128,320z M 320,320 c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 320,337.673, 320,320z M 192,128l 128,0 l0-32 L 192,96 L 192,128 z" data-tags="neutral, emoticon, smiley, face" />
<glyph unicode="&#xe019;" d="M 64,16A48,48 11340 1 0 160,16A48,48 11340 1 0 64,16zM 384,16A48,48 11340 1 0 480,16A48,48 11340 1 0 384,16zM 480,224L 480,416 L 64,416 C 64,451.346, 35.347,480,0,480l0-32 c 17.645,0, 32-14.355, 32-32l 24.037-206.027C 41.39,198.244, 32,180.223, 32,160 c0-35.347, 28.654-64, 64-64l 384,0 l0,32 L 96,128 c-17.673,0-32,14.327-32,32c0,0.11, 0.007,0.218, 0.008,0.328L 480,224z" data-tags="cart, ecommerce, shopping, products, purchase, buy, store" />
<glyph unicode="&#xe01a;" d="M 406.494,288L 317.573,403.765C 319.134,407.535, 320,411.666, 320,416c0,17.673-14.326,32-32,32c-17.673,0-32-14.327-32-32 s 14.327-32, 32-32c 1.421,0, 2.816,0.102, 4.188,0.282L 366.144,288L 145.857,288 l 73.956,96.282C 221.184,384.102, 222.58,384, 224,384 c 17.673,0, 32,14.327, 32,32s-14.327,32-32,32s-32-14.327-32-32c0-4.334, 0.866-8.465, 2.427-12.234L 105.506,288L0,288 l0-64 l 32,0 l 32-256l 384,0 l 32,256l 32,0 l0,64 L 406.494,288 z M 160,32L 96,32 l0,64 l 64,0 L 160,32 z M 160,160L 96,160 l0,64 l 64,0 L 160,160 z M 288,32l-64,0 l0,64 l 64,0 L 288,32 z M 288,160l-64,0 l0,64 l 64,0 L 288,160 z M 416,32l-64,0 l0,64 l 64,0 L 416,32 z M 416,160l-64,0 l0,64 l 64,0 L 416,160 z" data-tags="basket, cart, ecommerce, shopping, products, purchase, buy, store" />
<glyph unicode="&#xe286;" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 48,384 l 416,0 c 8.673,0, 16-7.327, 16-16l0-48 L 32,320 l0,48 C 32,376.673, 39.327,384, 48,384z M 464,64L 48,64 c-8.673,0-16,7.327-16,16L 32,224 l 448,0 l0-144  C 480,71.327, 472.673,64, 464,64zM 64,160L 96,160L 96,96L 64,96zM 128,160L 160,160L 160,96L 128,96zM 192,160L 224,160L 224,96L 192,96z" data-tags="credit, card, purchase, payment, ecommerce" />
<glyph unicode="&#xe287;" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 96,96 L 64,96 l0,64 l 32,0 L 96,96 z M 160,96l-32,0 l0,64 l 32,0 L 160,96 z M 224,96l-32,0 l0,64 l 32,0 L 224,96 z M 496,224L 16,224 l0,96 l 480,0 L 496,224 z" data-tags="credit, card, purchase, payment, ecommerce" />
<glyph unicode="&#x20;" horiz-adv-x="256" />
</font></defs></svg>jui/fonts/icomoon-license.txt000064400000000153152177723720012324 0ustar00Icon Set:	IcoMoon Ultimate -- http://icomoon.io/
License:	Royalty Free -- http://icomoon.io/#icons/license
jui/fonts/IcoMoon.dev.commented.svg000064400000273050152177723720013323 0ustar00<?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>
	IcoMoon icon set for Joomla 3.2
	<iconset grid="16"></iconset>
</metadata>
<defs>
<font id="IcoMoon" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
	<missing-glyph horiz-adv-x="512" />
	<glyph unicode="&#xf000;" class="hidden" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />

<!-- Joomla -->
	<glyph unicode="&#xe200;" data-tags="joomla, cms" d="M 133.002,341.661c 16.416,16.422, 43.001,16.422, 59.402,0.016l 3.913-3.934l 50.552,50.578l-3.937,3.94 c-28.812,28.85-69.257,38.939-106.21,30.261C 131.425,455.113, 103.178,479.984, 69.135,480C 31.31,480, 0.658,449.279, 0.65,411.421 c0-32.668, 22.795-60, 53.331-66.915c-11.569-38.725-2.121-82.417, 28.423-112.992l 113.913-113.95l 50.498,50.607L 132.91,282.114 C 116.569,298.475, 116.539,325.177, 133.002,341.661zM 511.356,411.421C 511.364,449.302, 480.697,480, 442.864,480c-34.617,0-63.239-25.722-67.841-59.119 c-38.537,11.332-81.892,1.748-112.32-28.704l-113.92-113.95l 50.551-50.586l 113.883,113.928c 16.47,16.483, 42.994,16.453, 59.342,0.092 c 16.4-16.415, 16.4-43.057-0.016-59.478l-3.897-3.918l 50.505-50.624l 3.929,3.964c 30.229,30.283, 39.839,73.378, 28.806,111.819 C 485.461,347.841, 511.356,376.606, 511.356,411.421zM 453.133,104.468c 9.051,37.229-0.988,78.162-30.054,107.25L 309.334,325.714l-50.551-50.561l 113.76-114.006 c 16.47-16.498, 16.432-43.048, 0.092-59.424c-16.401-16.407-43.002-16.407-59.418,0.015l-3.883,3.895l-50.497-50.623l 3.866-3.864 c 30.758-30.797, 74.809-40.219, 113.684-28.244C 382.703-8.439, 410.354-32, 443.516-32C 481.318-32, 512-1.325, 512,36.563 C 512,71.163, 486.41,99.791, 453.133,104.468zM 306.172,215.658L 192.404,101.662c-16.355-16.384-43.017-16.414-59.472,0.062c-16.409,16.452-16.416,43.049-0.022,59.485 l 3.904,3.887l-50.543,50.562l-3.867-3.856c-29.38-29.401-39.28-70.917-29.725-108.491C 22.48,96.181,0,68.994,0,36.563 C-0.008-1.31, 30.666-32, 68.491-32c 32.55,0.016, 59.794,22.709, 66.77,53.191c 37.351-9.276, 78.499,0.652, 107.672,29.878 l 113.745,113.98L 306.172,215.658z" />

<!-- Arrows -->
	<glyph unicode="&#xe005;" data-tags="arrow-up, upload, top" d="M0,160L 96,64L 256,224L 416,64L 512,160L 256.001,416 z" />
	<glyph unicode="&#xe006;" data-tags="arrow-right, right, next" d="M 192,480L 96,384L 256,224L 96,64L 192-32L 448,224 z" />
	<glyph unicode="&#xe007;" data-tags="arrow-down, download, bottom" d="M 512,288L 416,384L 256,224L 96,384L0,288L 256,32.001 z" />
	<glyph unicode="&#xe008;" data-tags="arrow-left, previous, left" d="M 320-32L 416,64L 256,224L 416,384L 320,480L 64,224 z" />
	<glyph unicode="&#xe003;" data-tags="arrow-first, first, left" d="M 416,384L 320,480L 64,224L 320-32L 416,64L 256,224 zM0,480L0-32L 64-32L 64,224L 64,480 z" />
	<glyph unicode="&#xe004;" data-tags="arrow-last, last, right" d="M 96,64L 192-32L 448,224L 192,480L 96,384L 256,224 zM 512-32L 512,480L 448,480L 448,224L 448-32 z" />
	<glyph unicode="&#xe009;" data-tags="arrow-up, upload, top" d="M 512,224C 512,82.615, 397.385-32, 256-32s -256,114.615, -256,256s 114.615,256, 256,256S 512,365.385, 512,224z M 48,224 c 0-114.875 93.125-208 208-208S 464,109.125, 464,224s -93.125,208, -208,208S 48,338.875, 48,224zM 278.627,374.628l 128-128.001c 12.497-12.496 12.497-32.757 0-45.254c -12.497-12.497 -32.758-12.497,-45.255,0L 288,274.745 L 288,96 c 0-17.673 -14.327-32 -32-32c-17.673,0, -32,14.327, -32,32l0,178.745 l -73.372-73.373c -12.497-12.497 -32.759-12.497,-45.256,0 C 99.124,207.621, 96,215.811, 96,224s 3.124,16.379, 9.372,22.627l 128,128.001C 245.869,387.124, 266.131,387.124, 278.627,374.628z" />
	<glyph unicode="&#xe00a;" data-tags="arrow-right, right, next" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 406.628,246.627l-128.001,128c-12.496,12.497-32.757,12.497-45.254,0c-12.497-12.497-12.497-32.758,0-45.255L 306.745,256 L 128,256 c-17.673,0-32-14.327-32-32c0-17.673, 14.327-32, 32-32l 178.745,0 l-73.373-73.372c-12.497-12.497-12.497-32.759,0-45.256 C 239.621,67.124, 247.811,64, 256,64s 16.379,3.124, 22.627,9.372l 128.001,128C 419.124,213.869, 419.124,234.131, 406.628,246.627z" />
	<glyph unicode="&#xe00b;" data-tags="arrow-down, download, bottom" d="M 512,224C 512,365.385, 397.385,480, 256,480s -256-114.615, -256-256s 114.615-256, 256-256S 512,82.615, 512,224z M 48,224 c 0,114.875 93.125,208 208,208S 464,338.875, 464,224s -93.125-208, -208-208S 48,109.125, 48,224zM 278.627,73.372l 128,128.001c 12.497,12.496 12.497,32.757 0,45.254c -12.497,12.497 -32.758,12.497,-45.255,0L 288,173.255 L 288,352 c 0,17.673 -14.327,32 -32,32c-17.673,0, -32-14.327, -32-32l0-178.745 l -73.372,73.373c -12.497,12.497 -32.759,12.497,-45.256,0 C 99.124,240.379, 96,232.189, 96,224s 3.124-16.379, 9.372-22.627l 128-128.001C 245.869,60.876, 266.131,60.876, 278.627,73.372z" />
	<glyph unicode="&#xe00c;" data-tags="arrow-left, left, previous" d="M 256,480C 397.385,480, 512,365.385, 512,224s -114.615-256, -256-256s -256,114.615, -256,256S 114.615,480, 256,480z M 256,16 c 114.875,0 208,93.125 208,208S 370.875,432, 256,432s -208-93.125, -208-208S 141.125,16, 256,16zM 105.372,246.627l 128.001,128c 12.496,12.497 32.757,12.497 45.254,0c 12.497-12.497 12.497-32.758,0-45.255L 205.255,256 L 384,256 c 17.673,0 32-14.327 32-32c0-17.673, -14.327-32, -32-32l-178.745,0 l 73.373-73.372c 12.497-12.497 12.497-32.759,0-45.256 C 272.379,67.124, 264.189,64, 256,64s -16.379,3.124, -22.627,9.372l -128.001,128C 92.876,213.869, 92.876,234.131, 105.372,246.627z" />
	<glyph unicode="&#xe00f;" data-tags="arrow-up, upload, top" d="M 384,160L 256,288L 128,160 z" />
	<glyph unicode="&#xe010;" data-tags="arrow-right, right, next" d="M 192.001,96L 320.001,224L 192.001,352 z" />
	<glyph unicode="&#xe011;" data-tags="arrow-down, download, bottom" d="M 128,288L 256,160L 384,288 z" />
	<glyph unicode="&#xe012;" data-tags="arrow-left, left, previous" d="M 320.001,352L 192.001,224L 320.001,95.999 z" />
	<glyph unicode="&#xe00e;" data-tags="menu, arrow, options, select" d="M 384,256L 256,384L 128,256 zM 128,160L 256,32L 384,160 z" />
	<glyph unicode="&#xe201;" data-tags="arrow-up, upload, top" d="M 160,0L 352,0L 352-32L 160-32zM 160,64L 352,64L 352,32L 160,32zM 160,128L 352,128L 352,96L 160,96zM 256,480L 480,256L 352,256L 352,160L 160,160L 160,256L 32,256 z" />
	<glyph unicode="&#xe202;" data-tags="arrow-right, right, next" d="M0,320L 32,320L 32,128L0,128zM 64,320L 96,320L 96,128L 64,128zM 128,320L 160,320L 160,128L 128,128zM 512,224L 288,448L 288,320L 192,320L 192,128L 288,128L 288,0 z" />
	<glyph unicode="&#xe203;" data-tags="arrow-down, download, bottom" d="M 160,480L 352,480L 352,448L 160,448zM 160,416L 352,416L 352,384L 160,384zM 160,352L 352,352L 352,320L 160,320zM 256-32L 480,192L 352,192L 352,288L 160,288L 160,192L 32,192 z" />
	<glyph unicode="&#xe204;" data-tags="arrow-left, left, previous" d="M 480,320L 512,320L 512,128L 480,128zM 416,320L 448,320L 448,128L 416,128zM 352,320L 384,320L 384,128L 352,128zM0,224L 224,448L 224,320L 320,320L 320,128L 224,128L 224,0 z" />
	<glyph unicode="&#x27;" data-tags="redo, arrow, right" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32 C-9.286,119.707, 20.52,362.785, 288,355.814z" />
	<glyph unicode="&#x28;" data-tags="undo, arrow, left" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186 C 491.481,362.785, 521.285,119.707, 380.931-32z" />
	<glyph unicode="&#xe205;" data-tags="forward, arrow, right" d="M 131.070,480C 74.206,376.984, 64.625,219.848, 288,225.088L 288,352 l 192-192L 288-32L 288,92.186 C 20.52,85.215-9.286,328.293, 131.070,480z" />
	<glyph unicode="&#xe206;" data-tags="reply, arrow, left" d="M 224,92.186L 224-32 L 32,160l 192,192l0-126.912 C 447.375,219.848, 437.794,376.984, 380.931,480 C 521.286,328.293, 491.481,85.215, 224,92.186z" /> 
	<glyph unicode="&#x6c;" data-tags="redo, arrow, right" d="M0,192c0-76.462, 33.524-145.092, 86.675-192l 42.333,48C 89.145,83.182, 64,134.652, 64,192c0,106.038, 85.965,192, 192,192 c 53.021,0, 101.019-21.493, 135.765-56.239L 320,256l 192,0 L 512,448 l-74.985-74.989C 390.688,419.34, 326.693,448, 256,448 C 114.615,448,0,333.385,0,192z" />
	<glyph unicode="&#xe207;" data-tags="undo, arrow, left" d="M 256,448c-70.692,0-134.688-28.66-181.016-74.989L0,448l0-192 l 192,0 l-71.766,71.761C 154.982,362.507, 202.98,384, 256,384 c 106.034,0, 192-85.962, 192-192c0-57.348-25.146-108.818-65.009-144l 42.333-48C 478.475,46.908, 512,115.538, 512,192 C 512,333.385, 397.385,448, 256,448z" />
	<glyph unicode="&#x7a;" data-tags="move, drag, arrows" d="M 512,224L 384,320L 384,256L 288,256L 288,352L 352,352L 256,480L 160,352L 224,352L 224,256L 128,256L 128,320L0,224L 128,128L 128,192L 224,192L 224,96L 160,96L 256-32L 352,96L 288,96L 288,192L 384,192L 384,128 z" />
	<glyph unicode="&#x66;" data-tags="expand, enlarge, maximize, fullscreen" d="M 512,480 L 512,272 L 432,352 L 336,256 L 288,304 L 384,400 L 304,480 ZM 224,144 L 128,48 L 208-32 L 0-32 L 0,176 L 80,96 L 176,192 Z" />
	<glyph unicode="&#x67;" data-tags="contract, minimize, shrink, collapse" d="M 224,192 L 224-16 L 144,64 L 48-32 L 0,16 L 96,112 L 16,192 ZM 512,432 L 416,336 L 496,256 L 288,256 L 288,464 L 368,384 L 464,480 Z" /> 
	<glyph unicode="&#x68;" data-tags="expand, enlarge, maximize, fullscreen" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z" />
	<glyph unicode="&#x69;" data-tags="contract, minimize, shrink, collapse" d="M 32,192 L 224,192 L 224,0 L 154.87,69.13 L 53.87-31.87 L 0.13,21.87 L 101.13,122.87 ZM 410.87,122.87 L 511.87,21.87 L 458.13-31.87 L 357.13,69.13 L 288,0 L 288,192 L 480,192 ZM 480,256 L 288,256 L 288,448 L 357.13,378.87 L 458.13,479.87 L 511.87,426.13 L 410.87,325.13 ZM 154.87,378.87 L 224,448 L 224,256 L 32,256 L 101.13,325.13 L 0.13,426.13 L 53.87,479.87 Z" />
	<glyph unicode="&#xe208;" data-tags="play, media control, audio" d="M 96,416L 416,224L 96,32 z" />
	<glyph unicode="&#xe209;" data-tags="pause, media control, audio" d="M 64,416L 224,416L 224,32L 64,32zM 288,416L 448,416L 448,32L 288,32z" />
	<glyph unicode="&#xe210;" data-tags="stop, media control, audio, square" d="M 64,416L 448,416L 448,32L 64,32z" />
	<glyph unicode="&#x7c;" data-tags="backward, media control, audio" d="M 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 112,224 Z" />
	<glyph unicode="&#x7b;" data-tags="forward, media control, audio" d="M 256,48 L 256,208 L 96,48 L 96,400 L 256,240 L 256,400 L 432,224 Z" />
	<glyph unicode="&#x7d;" data-tags="first, media control, audio" d="M 64,32 L 64,416 L 128,416 L 128,240 L 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 128,208 L 128,32 Z" />
	<glyph unicode="&#xe000;" data-tags="last, media control, audio" d="M 448,416 L 448,32 L 384,32 L 384,208 L 224,48 L 224,208 L 64,48 L 64,400 L 224,240 L 224,400 L 384,240 L 384,416 Z" />
	<glyph unicode="&#xe00d;" data-tags="play, media control, audio" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 192,336L 384,224L 192,112 z" />
	<glyph unicode="&#xe211;" data-tags="pause, media control, audio" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 224,320L 224,128L 160,128zM 288,320L 352,320L 352,128L 288,128z" />
	<glyph unicode="&#xe212;" data-tags="stop, media control, audio" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 352,320L 352,128L 160,128z" />
	<glyph unicode="&#xe213;" data-tags="backward, media control, audio" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 352,144L 240,224L 352,304 zM 224,144L 112,224L 224,304 z" />
	<glyph unicode="&#xe214;" data-tags="forward, media control, audio" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,304L 272,224L 160,144 zM 288,304L 400,224L 288,144 z" />
	<glyph unicode="&#xe001;" data-tags="loop, repeat, reload, refresh, update, upgrade, synchronize, media control, arrows" d="M 437.011,405.010C 390.685,451.338, 326.693,480, 256,480C 146.256,480, 52.655,410.936, 16.251,313.906l 59.938-22.477 C 103.491,364.202, 173.692,416, 256,416c 53.020,0, 101.010-21.5, 135.753-56.247L 320,288l 192,0 L 512,480 L 437.011,405.010zM 256,32c-53.020,0-101.013,21.496-135.756,56.244L 192,160L0,160 l0-192 l 74.997,74.997C 121.32-3.334, 185.306-32, 256-32 c 109.745,0, 203.346,69.064, 239.75,166.094l-59.938,22.477C 408.51,83.798, 338.309,32, 256,32z" />
	<glyph unicode="&#xe002;" data-tags="shuffle, media control, random" d="M 512,352L 384,480l0-96 c-65.386,0-115.376-15.604-152.825-47.704c-2.625-2.25-5.142-4.55-7.581-6.887 c 13.76-19.082, 24.358-38.758, 33.886-57.545C 281.641,301.065, 316.507,320, 384,320l0-96 l0,0 l0-96 c-108.223,0-132.563,48.68-163.378,110.311 c-17.153,34.306-34.89,69.78-67.796,97.985C 115.376,368.396, 65.386,384,0,384l0-64 c 108.223,0, 132.563-48.68, 163.378-110.311 c 17.153-34.306, 34.89-69.78, 67.796-97.985C 268.624,79.604, 318.615,64, 384,64l0-96 l 128,128L 384,224L 512,352zM0,128l0-64 c 65.386,0, 115.375,15.604, 152.825,47.704c 2.625,2.249, 5.142,4.55, 7.581,6.888 c-13.76,19.081-24.359,38.758-33.886,57.545C 102.36,146.936, 67.494,128,0,128z" />

<!-- Search -->
	<glyph unicode="&#x53;" data-tags="search, magnifier, lookup, find" d="M 496.131,44.302L 374.855,147.449c-12.537,11.283-25.945,16.463-36.776,15.963C 366.707,196.946, 384,240.451, 384,288 C 384,394.039, 298.039,480, 192,480C 85.962,480,0,394.039,0,288c0-106.039, 85.961-192, 192-192c 47.549,0, 91.054,17.293, 124.588,45.922 c-0.5-10.831, 4.68-24.239, 15.963-36.776l 103.147-121.276c 17.661-19.623, 46.511-21.277, 64.11-3.678S 515.754,26.641, 496.131,44.302z M 192,160c-70.692,0-128,57.308-128,128S 121.308,416, 192,416s 128-57.308, 128-128S 262.693,160, 192,160z" /> 
	<glyph unicode="&#x64;" data-tags="zoom in, enlarge, scale" d="M 192,384L 160,384L 160,320L 96,320L 96,288L 160,288L 160,224L 192,224L 192,288L 256,288L 256,320L 192,320 zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z" />
	<glyph unicode="&#x65;" data-tags="zoom out, smaller, scale, reduce" d="M 96,320L 256,320L 256,288L 96,288zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z" />  

<!-- Edit -->
	<glyph unicode="&#x2b;" data-tags="pencil, write, edit, blog, note" d="M 424,312 L 208,96 L 128,96 L 128,176 L 344,392 ZM 451,339 L 371,419 L 399.029,447.029 C 408.363,456.363 423.636,456.363 432.97,447.029 L 479.029,400.97 C 488.363,391.636 488.363,376.363 479.029,367.029 L 451,339 ZM 384,198.209L 384,32 L 64,32 L 64,352 l 176,0 l 64,64L 48,416 C 21.6,416,0,394.4,0,368l0-352 c0-26.4, 21.6-48, 48-48l 352,0 c 26.4,0, 48,21.6, 48,48L 448,255.681 L 384,198.209z" />
	<glyph unicode="&#x2c;" data-tags="pencil, write, edit, blog, note" d="M 432,480 C 476.182,480 512,444.183 512,400 C 512,381.99 506.045,365.371 496,352 L 464,320 L 352,432 L 384,464 C 397.371,474.045 413.989,480 432,480 ZM 32,112L0-32l 144,32l 296,296L 328,408L 32,112z M 357.789,298.211l-224-224l-27.578,27.578l 224,224L 357.789,298.211z" />
	<glyph unicode="&#x3b;" data-tags="brush, art, paint" d="M 160.061,160C 96.036,160, 117.88,46.86,0,21.363c 32.011-21.324, 125.898-39.027, 192.072,10.668 C 249.298,75.006, 224.085,160, 160.061,160zM 505.965,441.965c-32.009,32.007-110.472-72.027-171.617-107.603c-60.98-37.464-144.033-112.027-96.021-160.037 c 48.010-48.013, 122.571,35.040, 160.036,96.022C 433.938,331.495, 537.973,409.958, 505.965,441.965z" /> 

<!-- Actions -->
	<glyph unicode="&#x5d;" data-tags="plus, add, sum" d="M 496,288L 320,288 L 320,464 c0,8.836-7.164,16-16,16l-96,0 c-8.836,0-16-7.164-16-16l0-176 L 16,288 c-8.836,0-16-7.164-16-16l0-96 c0-8.836, 7.164-16, 16-16l 176,0 l0-176 c0-8.836, 7.164-16, 16-16l 96,0 c 8.836,0, 16,7.164, 16,16L 320,160 l 176,0 c 8.836,0, 16,7.164, 16,16l0,96 C 512,280.836, 504.836,288, 496,288z" /> 
	<glyph unicode="&#x5e;" data-tags="minus, minimize, subtract" d="M0,272l0-96 c0-8.836, 7.164-16, 16-16l 480,0 c 8.836,0, 16,7.164, 16,16l0,96 c0,8.836-7.164,16-16,16L 16,288 C 7.164,288,0,280.836,0,272z" />
	<glyph unicode="&#x49;" data-tags="close, cancel, quit, remove, cross" d="M 507.331,68.67c-0.002,0.002-0.004,0.004-0.006,0.005L 352.003,224l 155.322,155.325c 0.002,0.002, 0.004,0.003, 0.006,0.005 c 1.672,1.673, 2.881,3.627, 3.656,5.708c 2.123,5.688, 0.912,12.341-3.662,16.915L 433.952,475.326c-4.574,4.573-11.225,5.783-16.914,3.66 c-2.080-0.775-4.035-1.984-5.709-3.655c0-0.002-0.002-0.003-0.004-0.005L 256.001,320L 100.677,475.325 c-0.002,0.002-0.003,0.003-0.005,0.005c-1.673,1.671-3.627,2.88-5.707,3.655c-5.69,2.124-12.341,0.913-16.915-3.66L 4.676,401.951 c-4.574-4.574-5.784-11.226-3.661-16.914c 0.776-2.080, 1.985-4.036, 3.656-5.708c 0.002-0.001, 0.003-0.003, 0.005-0.005L 160.001,224 L 4.676,68.674c-0.001-0.002-0.003-0.003-0.004-0.005c-1.671-1.673-2.88-3.627-3.657-5.707c-2.124-5.688-0.913-12.341, 3.661-16.915 l 73.374-73.373c 4.575-4.574, 11.226-5.784, 16.915-3.661c 2.080,0.776, 4.035,1.985, 5.708,3.656c 0.001,0.002, 0.003,0.003, 0.005,0.005 l 155.324,155.325l 155.324-155.325c 0.002-0.001, 0.004-0.003, 0.006-0.004c 1.674-1.672, 3.627-2.881, 5.707-3.657 c 5.689-2.123, 12.342-0.913, 16.914,3.661l 73.373,73.374c 4.574,4.574, 5.785,11.227, 3.662,16.915 C 510.212,65.043, 509.003,66.997, 507.331,68.67z" />
	<glyph unicode="&#x47;" data-tags="checkmark, tick, correct, accept, ok" d="M 432,416L 192,176L 80,288L0,208L 192,16L 512,336 z" />
	<glyph unicode="&#x2a;" data-tags="plus-circle, plus, add, sum" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,192l0-128 l-64,0 L 224,192 L 96,192 l0,64 l 128,0 L 224,384 l 64,0 l0-128 l 128,0 l0-64 L 288,192 z" />
	<glyph unicode="&#xe215;" data-tags="plus-circle, plus, add, sum" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 384,192 L 288,192 L 288,96 L 224,96 L 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 Z" />
	<glyph unicode="&#x4b;" data-tags="minus-circle, minus, remove, delete, subtract" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 416,192L 96,192 l0,64 l 320,0 L 416,192 z" />
	<glyph unicode="&#xe216;" data-tags="minus-circle, minus, remove, delete, subtract" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 128,256L 384,256L 384,192L 128,192z" />
	<glyph unicode="&#x4a;" data-tags="cancel-circle, close, remove, delete" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 384,306.745L 301.256,224 L 384,141.256L 384,96 l-45.256,0 L 256,178.744L 173.255,96L 128,96 l0,45.256 L 210.745,224L 128,306.745L 128,352 l 45.255,0 L 256,269.255L 338.744,352L 384,352 L 384,306.745 z" />
	<glyph unicode="&#xe217;" data-tags="cancel-circle, close, remove, delete" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 352,173.256 L 352,128 L 306.744,128 L 256,178.744 L 205.255,128 L 160,128 L 160,173.256 L 210.745,224 L 160,274.745 L 160,320 L 205.255,320 L 256,269.255 L 306.744,320 L 352,320 L 352,274.745 L 301.256,224 Z" />
	<glyph unicode="&#xe218;" data-tags="checkmark-circle, tick, correct" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 208,64L 102,202l 47,49l 59-75 l 185,151l 23-23L 208,64z" />
	<glyph unicode="&#xe219;" data-tags="checkmark-circle, tick, correct" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 208,64L 102,202L 149,251L 208,176L 393,327L 416,304 z" />
	<glyph unicode="&#xe220;" data-tags="info, information" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 224,384l 64,0 l0-64 l-64,0 L 224,384 z M 320,64L 192,64 l0,32 l 32,0 L 224,224 l-32,0 l0,32 l 96,0 l0-160 l 32,0 L 320,64 z" />
	<glyph unicode="&#xe221;" data-tags="info, information" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 224,352L 288,352L 288,288L 224,288zM 320,96L 192,96L 192,128L 224,128L 224,224L 192,224L 192,256L 288,256L 288,128L 320,128 z" />
	<glyph unicode="&#x45;" data-tags="question, help, support" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 384,256c0-35.29-28.71-64-64-64l-31.942,0 c-0.020-0.017-0.041-0.038-0.058-0.058L 288,160 l-64,0 l0,32 c0,35.29, 28.71,64, 64,64l 31.942,0 c 0.020,0.017, 0.041,0.038, 0.058,0.057l0,63.885 c-0.017,0.020-0.037,0.041-0.058,0.058L 160,320 L 160,384 l 160,0 c 35.29,0, 64-28.71, 64-64L 384,256 z" />
	<glyph unicode="&#xe222;" data-tags="question, help, support" d="M 320,384 C 355.29,384 384,355.29 384,320 L 384,256 C 384,220.71 355.29,192 320,192 L 288.059,192 C 288.038,191.982 288.018,191.962 288,191.941 L 288,160 L 224,160 L 224,192 C 224,227.29 252.71,256 288,256 L 319.942,256 C 319.962,256.016 319.983,256.037 320,256.057 L 320,319.942 C 319.983,319.962 319.963,319.983 319.942,320 L 160,320 L 160,384 L 320,384 ZM 224,128L 288,128L 288,64L 224,64zM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z" />
	<glyph unicode="&#xe223;" data-tags="notification, warning, notice, note, exclamation" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 288,192l-64,0 L 224,384 l 64,0 L 288,192 z" />
	<glyph unicode="&#xe224;" data-tags="notification, warning, notice, note, exclamation" d="M 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 ZM 224,128L 288,128L 288,64L 224,64zM 224,384L 288,384L 288,192L 224,192z" />
	<glyph unicode="&#x48;" data-tags="warning, sign" d="M 504.978,22.12L 286.441,457.676C 278.070,472.559, 267.035,480, 256,480s-22.070-7.441-30.442-22.324L 7.021,22.12 C-9.722-7.646, 4.521-32, 38.673-32l 434.654,0 C 507.478-32, 521.723-7.646, 504.978,22.12z M 256,32c-17.673,0-32,14.327-32,32 c0,17.674, 14.327,32, 32,32c 17.674,0, 32-14.326, 32-32C 288,46.327, 273.674,32, 256,32z M 278,128l-44,0 l-10,128 c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32L 278,128z" />
	<glyph unicode="&#xe225;" data-tags="warning, sign" d="M 256,400.638 L 83.583,32 L 428.417,32 L 256,400.638 Z M 256,480 L 256,480 C 267.035,480 278.070,472.559 286.442,457.676 L 504.978,22.12 C 521.723-7.646 507.478-32 473.327-32 L 38.673-32 C 4.521-32 -9.722-7.646 7.021,22.12 L 225.558,457.676 C 233.93,472.559 244.965,480 256,480 ZM 224,96A32,32 2700 1 0 288,96A32,32 2700 1 0 224,96zM 256,288 C 273.673,288 288,273.673 288,256 L 278,160 L 234,160 L 224,256 C 224,273.673 238.327,288 256,288 Z" />

<!-- Checkboxes -->
	<glyph unicode="&#x3d;" data-tags="checkbox-unchecked, unchecked, square" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z" />
	<glyph unicode="&#x3e;" data-tags="checkbox-checked, tick, checked, selected" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z M 384,368L 224,208l-96,96l-64-64l 160-160l 224,224L 384,368z" />
	<glyph unicode="&#x3f;" data-tags="checkbox-partial, partial" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 zM 128,352L 384,352L 384,96L 128,96z" />
	<glyph unicode="&#xe226;" data-tags="square" d="M0,480L 512,480L 512-32L0-32z" />
	<glyph unicode="&#xe227;" data-tags="radio-unchecked, circle" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z" />
	<glyph unicode="&#xe228;" data-tags="radio-checked" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 160,224A96,96 12780 1 0 352,224A96,96 12780 1 0 160,224z" />
	<glyph unicode="&#xe229;" data-tags="circle" d="M0,224A256,256 4860 1 0 512,224A256,256 4860 1 0 0,224z" />
	<glyph unicode="&#xe230;" data-tags="signup, checkmark, board, agreement, register" d="M 224,82.745L 121.373,201.372L 150.627,230.627L 224,173.255L 361.372,294.627L 390.628,265.373 zM 415.886,416c 0.039-0.033, 0.081-0.075, 0.114-0.115l0-383.771 c-0.033-0.039-0.075-0.081-0.114-0.114L 96.114,32 c-0.040,0.033-0.081,0.075-0.114,0.114L 96,415.886 c 0.033,0.040, 0.075,0.081, 0.115,0.114L 32,416 l0-384 c0-35.2, 28.8-64, 64-64l 320,0 c 35.2,0, 64,28.8, 64,64L 480,416 L 415.886,416 z M 320,416L 320,448 c0,17.673-14.327,32-32,32l-64,0 c-17.673,0-32-14.327-32-32l0-32 l-64,0 l0-64 l 256,0 L 384,416 L 320,416 z M 288,416l-64,0 L 224,448 l 64,0 L 288,416 z" />

<!-- Grid -->
	<glyph unicode="&#x58;" data-tags="grid, icons, apps, squares" d="M0,480L 224,480L 224,256L0,256zM 288,480L 512,480L 512,256L 288,256zM0,192L 224,192L 224-32L0-32zM 288,192L 512,192L 512-32L 288-32z" />
	<glyph unicode="&#x59;" data-tags="grid, icons, apps" d="M0,480L 128,480L 128,352L0,352zM 192,480L 320,480L 320,352L 192,352zM 384,480L 512,480L 512,352L 384,352zM0,288L 128,288L 128,160L0,160zM 192,288L 320,288L 320,160L 192,160zM 384,288L 512,288L 512,160L 384,160zM0,96L 128,96L 128-32L0-32zM 192,96L 320,96L 320-32L 192-32zM 384,96L 512,96L 512-32L 384-32z" />
	<glyph unicode="&#x5a;" data-tags="menu, dots, more" d="M 192,448L 320,448L 320,320L 192,320zM 192,288L 320,288L 320,160L 192,160zM 192,128L 320,128L 320,0L 192,0z" />
	<glyph unicode="&#x31;" data-tags="list, bullet, ul, menu" d="M0,480L 128,480L 128,352L0,352zM 192,480L 512,480L 512,352L 192,352zM0,288L 128,288L 128,160L0,160zM 192,288L 512,288L 512,160L 192,160zM0,96L 128,96L 128-32L0-32zM 192,96L 512,96L 512-32L 192-32z" />
	<glyph unicode="&#xe231;" data-tags="list, bullet, ul, todo, menu" d="M0,480L 128,480L 128,352L0,352zM 192,448L 512,448L 512,384L 192,384zM0,288L 128,288L 128,160L0,160zM 192,256L 512,256L 512,192L 192,192zM0,96L 128,96L 128-32L0-32zM 192,64L 512,64L 512,0L 192,0z" />
	<glyph unicode="&#xe232;" data-tags="menu, list, items, lines, options" d="M 448,96L 64,96 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,96, 448,96zM 448,288L 64,288 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,288, 448,288zM 64,352l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,480, 448,480L 64,480 C 28.8,480,0,451.2,0,416S 28.8,352, 64,352z" />

<!-- Folders -->
	<glyph unicode="&#x2d;" data-tags="folder-open, directory, category, browse" d="M 416,0L 512,256L 96,256L0,0 zM 64,288 L 0,0 L 0,416 L 144,416 L 208,352 L 416,352 L 416,288 Z" /> 
	<glyph unicode="&#x2e;" data-tags="folder, directory, category, browse" d="M 224,416L 288,352L 512,352L 512,0L0,0L0,416 z" />
	<glyph unicode="&#xe234;" data-tags="folder-plus, plus, add, directory, category, browse" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128l-64,0 l0-64 l-64,0 l0,64 l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 L 352,128 z" />
	<glyph unicode="&#xe235;" data-tags="folder-minus, minus, remove, delete, directory, category, browse" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128L 160,128 l0,64 l 192,0 L 352,128 z" />
	<glyph unicode="&#xe236;" data-tags="folder, directory, category, browse" d="M 210.745,384l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 l0-288 L 32,32 L 32,384 L 210.745,384  M 224,416L0,416 l0-416 l 512,0 L 512,352 L 288,352 L 224,416L 224,416z" />
	<glyph unicode="&#xe237;" data-tags="folder-plus, plus, add, directory, category, browse" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 288,256L 224,256L 224,192L 160,192L 160,128L 224,128L 224,64L 288,64L 288,128L 352,128L 352,192L 288,192 z" />
	<glyph unicode="&#xe238;" data-tags="folder-remove, remove, directory, category" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 160,192L 352,192L 352,128L 160,128z" /> 

<!-- Files -->
	<glyph unicode="&#xe016;" data-tags="file, paper, page, new, empty, blank, document" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 z" />
	<glyph unicode="&#xe239;" data-tags="file, list, paper, page, document" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 zM 128,96L 384,96L 384,64L 128,64zM 128,160L 384,160L 384,128L 128,128zM 128,224L 384,224L 384,192L 128,192z" />
	<glyph unicode="&#x29;" data-tags="file-plus, plus, new, page, document, paper" d="M 448,96L 448,160L 384,160L 384,96L 320,96L 320,32L 384,32L 384-32L 448-32L 448,32L 512,32L 512,96 zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z" />
	<glyph unicode="&#xe017;" data-tags="file-minus, minus, remove, delete, page, document, paper" d="M 320,96L 512,96L 512,32L 320,32zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z" />
	<glyph unicode="&#xe240;" data-tags="file-check, checkmark, correct, tick, page, document, paper" d="M 352-32L 256,80L 296.75,120.75L 352,65.125L 480,192L 512,160 zM 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 z" />
	<glyph unicode="&#xe241;" data-tags="file-remove, delete, remove, cancel, close, document, page, paper" d="M 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 zM 461.256,64L 512,114.744L 512,160L 466.744,160L 416,109.256L 365.256,160L 320,160L 320,114.744L 370.744,64L 320,13.256L 320-32L 365.256-32L 416,18.744L 466.744-32L 512-32L 512,13.256 z" />
	<glyph unicode="&#xe018;" data-tags="copy, duplicate, files, pages, papers, documents" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384 L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z" />
	<glyph unicode="&#xe242;" data-tags="stack, files, archive, category, papers, documents, layers" d="M 440,352l-24,0 l0,24 c0,22.056-17.944,40-40,40l-24,0 L 352,440 c0,22.056-17.943,40-40,40l-240,0 c-22.056,0-40-17.944-40-40l0-304 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.056, 17.944-40, 40-40l 240,0 c 22.056,0, 40,17.944, 40,40L 480,312 C 480,334.056, 462.056,352, 440,352z M 72.001,128c-4.4,0-8,3.6-8,8L 64.001,440 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 136,416 c-22.056,0-40-17.944-40-40l0-248 L 72.001,128 z M 136,64c-4.4,0-8,3.6-8,8L 128,376 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 200,352 c-22.056,0-40-17.944-40-40l0-248 L 136,64 z M 448,8c0-4.4-3.6-8-8-8L 200,0 c-4.4,0-8,3.6-8,8L 192,312 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8L 448,8 z" />

<!-- Tree -->
	<glyph unicode="&#xe243;" data-tags="tree, branches, binary tree" d="M 488,128l-50.411,0 L 320,323.98L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-100.019 L 74.412,128L 24,128 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24L 128,124.020 L 245.588,320l 20.823,0 L 384,124.020L 384,24 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,117.2, 501.2,128, 488,128z" />
	<glyph unicode="&#xe244;" data-tags="tree, branches, descendants" d="M 488,96l-8,0 L 480,200 c0,30.878-25.121,56-56,56L 288,256 l0,64 l 8,0 c 13.2,0, 24,10.8, 24,24L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 8,0 l0-64 L 88,256 c-30.878,0-56-25.122-56-56l0-104 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,85.2, 501.2,96, 488,96z M 96,0L 32,0 l0,64 l 64,0 L 96,0 z M 288,0l-64,0 l0,64 l 64,0 L 288,0 z M 224,352L 224,416 l 64,0 l0-64 L 224,352 z M 480,0l-64,0 l0,64 l 64,0 L 480,0 z" />

<!-- Alignment -->
	<glyph unicode="&#xe246;" data-tags="paragraph-left, align left, left, wysiwyg" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
	<glyph unicode="&#xe247;" data-tags="paragraph-center, align center, center, wysiwyg" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
	<glyph unicode="&#xe248;" data-tags="paragraph-right, align right, right, wysiwyg" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
	<glyph unicode="&#xe249;" data-tags="paragraph-justify, wysiwyg, justify" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z" />

<!-- Screens -->
	<glyph unicode="&#xe01c;" data-tags="screen, monitor, computer, pc, desktop" d="M 512,64L 512,448 L0,448 l0-384 l 224,0 l0-32 l-96,0 l0-32 l 256,0 l0,32 l-96,0 l0,32 L 512,64 z M 64,384l 384,0 l0-256 L 64,128 L 64,384 z" />
	<glyph unicode="&#xe01d;" data-tags="tablet, mobile" d="M 400,480L 80,480 C 53.6,480, 32,458.4, 32,432l0-416 c0-26.4, 21.6-48, 48-48l 320,0 c 26.4,0, 48,21.6, 48,48L 448,432 C 448,458.4, 426.4,480, 400,480z M 240-16 c-8.836,0-16,7.163-16,16s 7.164,16, 16,16s 16-7.163, 16-16S 248.836-16, 240-16z M 384,32L 96,32 L 96,416 l 288,0 L 384,32 z" />
	<glyph unicode="&#xe01e;" data-tags="mobile, phone, handheld" d="M 384,480L 96,480 C 78.4,480, 64,465.601, 64,448l0-448 c0-17.6, 14.399-32, 32-32l 288,0 c 17.6,0, 32,14.4, 32,32L 416,448 C 416,465.601, 401.6,480, 384,480z M 240-8.891c-13.746,0-24.891,11.145-24.891,24.891s 11.145,24.891, 24.891,24.891s 24.891-11.145, 24.891-24.891 S 253.746-8.891, 240-8.891z M 384,64L 96,64 L 96,416 l 288,0 L 384,64 z" />

<!-- Downloads -->
	<glyph unicode="&#x51;" data-tags="box-add, storage, inbox, archive, download" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 256,64L 96,192l 96,0 l0,96 l 128,0 l0-96 l 96,0 L 256,64z M 77.255,384l 32,32l 293.489,0 l 32-32L 77.255,384 z" />
	<glyph unicode="&#x52;" data-tags="box-remove, storage, inbox, archive, upload" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 320,160l0-96 L 192,64 l0,96 L 96,160 l 160,128 l 160-128L 320,160 z M 77.255,384l 32,32l 293.488,0 l 32-32L 77.255,384 z" />
	<glyph unicode="&#xe021;" data-tags="download, arrow, store, save, inbox" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 384,288L 288,288L 288,448L 224,448L 224,288L 128,288L 256,96 z" />
	<glyph unicode="&#xe022;" data-tags="upload, arrow, load, outbox" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 128,256L 224,256L 224,96L 288,96L 288,256L 384,256L 256,448 z" />

<!-- Home -->
	<glyph unicode="&#x21;" data-tags="home, house, building" d="M 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 ZM 448,192 L 448,0 L 64,0 L 64,192 L 256,336 Z" />
	<glyph unicode="&#xe250;" data-tags="home, house, building" d="M 448,192 L 448,0 L 64,0 L 64,192 L 128,192 L 128,64 L 384,64 L 384,192 ZM 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 Z" /> 

<!-- Links -->
	<glyph unicode="&#xe024;" data-tags="new tab, external, outside, popout, link, blank" d="M 352,192 L 416,256 L 416,0 L 32,0 L 32,384 L 288,384 L 224,320 L 96,320 L 96,64 L 352,64 ZM 480,448 L 480,272 L 414.628,337.372 L 237.255,160 L 192,160 L 192,205.256 L 369.372,382.628 L 304,448 Z" />
	<glyph unicode="&#xe251;" data-tags="new tab, external, outside, popout, link, blank" d="M 96,448l0-384 l 384,0 L 480,448 L 96,448 z M 448,96L 128,96 L 128,416 l 320,0 L 448,96 zM 64,32L 64,352L 32,384L 32,0L 416,0L 384,32 zM 214.627,137.373L 310.627,233.373L 384,160L 384,352L 192,352L 265.373,278.627L 169.373,182.627 z" />
	<glyph unicode="&#xe252;" data-tags="link, chain, url, uri, anchor" d="M 476.698,442.679l-2.014,2.021c-47.074,47.067-124.097,47.067-171.163,0L 194.468,335.632 c-47.067-47.066-47.067-124.088,0-171.155l 2.013-2.013c 3.916-3.924, 8.073-7.462, 12.368-10.729l 39.924,39.925 c-4.651,2.747-9.063,6.036-13.058,10.030l-2.021,2.021c-25.557,25.549-25.557,67.136,0,92.695L 342.758,405.462 c 25.558,25.559, 67.137,25.559, 92.693,0l 2.021-2.012c 25.55-25.558, 25.55-67.146,0-92.695l-49.343-49.343 c 8.566-21.154, 12.624-43.7, 12.269-66.193l 76.302,76.302C 523.767,318.589, 523.767,395.61, 476.698,442.679zM 315.521,285.533c-3.916,3.916-8.073,7.461-12.368,10.72l-39.924-39.916c 4.652-2.748, 9.063-6.037, 13.058-10.031l 2.021-2.020 c 25.558-25.558, 25.558-67.136,0-92.694L 169.243,42.525c-25.559-25.551-67.138-25.551-92.694,0l-2.021,2.021 c-25.549,25.56-25.549,67.138,0,92.694l 49.344,49.343c-8.567,21.153-12.623,43.701-12.269,66.193l-76.301-76.299 c-47.068-47.066-47.068-124.089,0-171.162l 2.013-2.016c 47.076-47.064, 124.096-47.064, 171.164,0l 109.055,109.059 c 47.067,47.066, 47.067,124.097,0,171.163L 315.521,285.533z" />

<!-- Media -->
	<glyph unicode="&#x2f;" data-tags="image, picture, photo, graphic" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 480,64l-32,0 l-96,144l-64-48L 160,320L 64,64L 32,64 L 32,384 l 448,0 L 480,64 zM 352,304A48,48 12780 1 0 448,304A48,48 12780 1 0 352,304z" />
	<glyph unicode="&#x30;" data-tags="images, pictures, photos, graphics" d="M 64,352l0-320 l 448,0 L 512,352 L 64,352 z M 480,85.333L 416,192l-72.533-60.444L 288,224L 96,64L 96,320 l 384,0 L 480,85.333 zM 128,240A48,48 7740 1 0 224,240A48,48 7740 1 0 128,240zM 448,416L0,416L0,96L 32,96L 32,384L 448,384 z" />
	<glyph unicode="&#xe014;" data-tags="palette, color, paint, art" d="M 257.54,416C 92.994,416,0,306.648,0,226.653c0-121.887, 109.354-190.477, 200.308-212.956 C 291.27-8.791, 325.48,32.462, 324.022,80c-1.771,57.75, 27.073,58.496, 47.52,56.459C 391.973,134.408, 512,106.695, 512,198.674 C 512,312.5, 422.072,416, 257.54,416z M 224,384c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,384, 224,384z M 80,191.754c-8.973,0-16.246,7.273-16.246,16.246S 71.027,224.246, 80,224.246S 96.246,216.973, 96.246,208S 88.973,191.754, 80,191.754z M 128,256c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 145.673,256, 128,256z M 256,128c-35.346,0-64,21.49-64,48 s 28.654,48, 64,48c 35.347,0, 64-21.49, 64-48S 291.347,128, 256,128z M 368,256c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48 S 394.51,256, 368,256z" /> 
	<glyph unicode="&#x55;" data-tags="camera, photo, picture, image" d="M 152,176c0-57.438, 46.562-104, 104-104s 104,46.562, 104,104s-46.562,104-104,104S 152,233.438, 152,176z M 480,352L 368,352 c-8,32-16,64-48,64L 192,416 c-32,0-40-32-48-64L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.6, 14.4-32, 32-32l 448,0 c 17.6,0, 32,14.4, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 256,34c-78.425,0-142,63.574-142,142c0,78.425, 63.575,142, 142,142c 78.426,0, 142-63.575, 142-142 C 398,97.574, 334.427,34, 256,34z M 480,256l-64,0 l0,32 l 64,0 L 480,256 z" />
	<glyph unicode="&#xe015;" data-tags="camera, video, media, film, movie" d="M 489.42,351.874c-5.294,0-10.729-1.861-15.718-5.383L 384,283.184L 384,336 c0,26.4-21.6,48-48,48L 48,384 c-26.4,0-48-21.6-48-48l0-224 c0-26.4, 21.6-48, 48-48l 288,0 c 26.4,0, 48,21.6, 48,48l0,52.815 l 89.701-63.307c 4.989-3.521, 10.424-5.382, 15.717-5.383 c 0.001,0, 0.001,0, 0.003,0c 7.044,0, 13.477,3.248, 17.646,8.911c 3.228,4.385, 4.934,10.027, 4.934,16.318L 512.001,326.645 C 512,343.208, 500.641,351.874, 489.42,351.874z" />
	<glyph unicode="&#x56;" data-tags="play, video, movie" d="M 490.594,399.946C 418.778,410.271, 339.428,416, 256.001,416c-83.43,0-162.778-5.729-234.597-16.054 C 7.639,346.083,0,286.571,0,224c0-62.57, 7.639-122.083, 21.404-175.945C 93.223,37.729, 172.572,32, 256.001,32 c 83.427,0, 162.776,5.729, 234.593,16.055C 504.36,101.917, 512,161.43, 512,224C 512,286.571, 504.36,346.083, 490.594,399.946z M 192.001,128L 192.001,320 l 160-96L 192.001,128z" />
	<glyph unicode="&#x57;" data-tags="music, song, audio, sound" d="M 480,480 L 512,480 L 512,112 C 512,67.817 461.855,32 400,32 C 338.145,32 288,67.817 288,112 C 288,156.184 338.145,192 400,192 C 431.342,192 459.671,182.8 480,167.98 L 480,352 L 224,295.111 L 224,48 C 224,3.817 173.856-32 112-32 C 50.144-32 0,3.817 0,48 C 0,92.184 50.144,128 112,128 C 143.342,128 171.671,118.8 192,103.98 L 192,416 L 480,480 Z" />
 
<!-- Users -->
	<glyph unicode="&#x22;" data-tags="user, profile, avatar, person, talk, member" d="M 311.413,128.632c-11.055,1.759-11.307,32.157-11.307,32.157s 32.484,32.158, 39.564,75.401 c 19.045,0, 30.809,45.973, 11.761,62.148C 352.226,315.365, 375.911,432, 256,432c-119.911,0-96.225-116.635-95.432-133.662 c-19.047-16.175-7.285-62.148, 11.761-62.148c 7.079-43.243, 39.564-75.401, 39.564-75.401s-0.252-30.398-11.307-32.157 C 164.976,122.966, 32,64.315, 32,0l 224,0 l 224,0 C 480,64.315, 347.024,122.966, 311.413,128.632z" />
	<glyph unicode="&#xe01f;" data-tags="users, people, group, team, members, community" d="M 367.497,77.313c-9.476,1.494-9.692,27.327-9.692,27.327s 27.844,27.328, 33.912,64.076 c 16.326,0, 26.407,39.069, 10.082,52.814c 0.681,14.47, 20.984,113.588-81.799,113.588c-102.782,0-82.479-99.118-81.799-113.588 c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076s-0.216-25.833-9.692-27.327 C 241.979,72.497, 128,22.655, 128-32l 192,0 l 192,0 C 512,22.655, 398.021,72.497, 367.497,77.313zM 172.027,68.595c 22.047,13.575, 48.813,26.154, 70.769,33.712c-7.876,11.216-16.647,26.468-22.165,44.531 c-7.703,6.283-13.972,15.266-17.999,26.301c-4.033,11.052-5.561,23.426-4.304,34.842c 0.902,8.196, 3.239,15.833, 6.825,22.544 c-2.175,23.293-3.707,69.017, 26.224,102.366c 11.607,12.933, 26.278,22.23, 43.85,27.843C 272.090,393.114, 255.647,431.119, 192,431.119 c-102.782,0-82.479-99.118-81.799-113.588c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076 s-0.216-25.833-9.692-27.327C 113.979,168.497,0,118.655,0,64l 164.798,0 C 167.153,65.537, 169.551,67.070, 172.027,68.595z" />
	<glyph unicode="&#x6d;" data-tags="vcard, card, contact" d="M 448,384L 64,384 c-35.2,0-64-28.8-64-64l0-224 c0-35.2, 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64L 512,320 C 512,355.2, 483.2,384, 448,384z M 64,96c0,70.692, 35.817,128, 80,128c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48s-21.49-48-48-48 c 44.183,0, 80-57.308, 80-128L 64,96 z M 448,96L 288,96 l0,32 l 160,0 L 448,96 z M 448,192L 288,192 l0,32 l 160,0 L 448,192 z M 448,288L 288,288 l0,32 l 160,0 L 448,288 z" />
	<glyph unicode="&#x70;" data-tags="address-book, book, contacts" d="M 32,256L 80,256L 80,176L 32,176zM 32,352L 80,352L 80,272L 32,272zM 32,160L 80,160L 80,80L 32,80zM 32,64L 80,64L 80-16L 32-16zM 96,480l0-512 l 384,0 L 480,480 L 96,480 z M 288,351.835c 35.255,0, 63.835-28.58, 63.835-63.835s-28.58-63.835-63.835-63.835 c-35.255,0-63.835,28.58-63.835,63.835S 252.745,351.835, 288,351.835z M 384,96L 192,96 l0,32 c0,35.347, 28.654,64, 64,64l0,0 l 64,0  c 35.348,0, 64-28.653, 64-64L 384,96 zM 32,448L 80,448L 80,368L 32,368z" />
	<glyph unicode="&#x26;" data-tags="share, out, external, outside" d="M 128,160c0,0, 29.412,96, 192,96l0-96 l 192,128L 320,416l0-96 C 192,320, 128,240.164, 128,160zM 352,96L 64,96 L 64,288 l 62.938,0 c 5.047,5.959, 10.456,11.667, 16.244,17.090c 21.982,20.595, 48.281,36.326, 78.057,46.91L0,352 l0-320 l 416,0 L 416,166.312 l-64-42.667L 352,96 z" />
	<glyph unicode="&#xe257;" data-tags="enter, sign in, log in, login" d="M 192,224 L 32,224 L 32,288 L 192,288 L 192,352 L 288,256 L 192,160 ZM 512,480 L 512,64 L 320-32 L 320,64 L 128,64 L 128,192 L 160,192 L 160,96 L 320,96 L 320,384 L 448,448 L 160,448 L 160,320 L 128,320 L 128,480 Z" />
	<glyph unicode="&#xe258;" data-tags="exit, sign out, log out, quit, close, logout" d="M 384,160 L 384,224 L 224,224 L 224,288 L 384,288 L 384,352 L 480,256 ZM 352,192 L 352,64 L 192,64 L 192-32 L 0,64 L 0,480 L 352,480 L 352,320 L 320,320 L 320,448 L 64,448 L 192,384 L 192,96 L 320,96 L 320,192 Z" />

<!-- Messages -->
	<glyph unicode="&#x24;" data-tags="bubble, comment, chat, talk" d="M 464,448 C 490.4,448 512,426.4 512,400 L 512,144 C 512,117.6 490.4,96 464,96 L 281.6,96 L 128-32 L 128,96 L 48,96 C 21.6,96 0,117.6 0,144 L 0,400 C 0,426.4 21.6,448 48,448 L 464,448 Z" />
	<glyph unicode="&#x25;" data-tags="bubbles, comments, chat, talk" d="M 400,480 C 426.4,480 448,458.4 448,432 L 448,272 C 448,245.6 426.4,224 400,224 L 217.6,224 L 64,96 L 64,224 L 48,224 C 21.6,224 0,245.6 0,272 L 0,432 C 0,458.4 21.6,480 48,480 L 400,480 ZM 528,384 C 554.4,384 576,362.4 576,336 L 576,144 C 576,117.6 554.4,96 528,96 L 448,96 L 448-32 L 294.4,96 L 192,96 L 192,160 L 317.57,160 L 416,72.643 L 416,160 L 512,160 L 512,320 L 480,320 L 480,384 L 528,384 Z" horiz-adv-x="576" />
	<glyph unicode="&#x60;" data-tags="quotes-left, ldquo" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z" />
	<glyph unicode="&#x61;" data-tags="quotes-right, rdquo" d="M 400,160 C 338.144,160 288,210.145 288,272 C 288,333.856 338.144,384 400,384 C 461.856,384 512,333.856 512,272 L 512.5,256 C 512.5,132.288 412.212,32 288.5,32 L 288.5,96 C 331.237,96 371.417,112.643 401.637,142.863 C 407.454,148.681 412.763,154.871 417.552,161.373 C 411.833,160.473 405.972,160 400,160 ZM 112,160 C 50.145,160 0,210.145 0,272 C 0,333.856 50.145,384 112,384 C 173.855,384 224,333.856 224,272 L 224.5,256 C 224.5,132.288 124.212,32 0.5,32 L 0.5,96 C 43.237,96 83.417,112.643 113.637,142.863 C 119.455,148.681 124.764,154.871 129.553,161.373 C 123.833,160.473 117.973,160 112,160 Z" />
	<glyph unicode="&#xe259;" data-tags="bubble-quote, comment, chat, talk, quote" d="M 464,480L 48,480 C 21.6,480,0,458.4,0,432l0-288 c0-26.4, 21.6-48, 48-48l 80,0 l0-128 l 153.6,128L 464,96 c 26.4,0, 48,21.6, 48,48L 512,432 C 512,458.4, 490.4,480, 464,480z M 224,344.615c-29.821-6.85-55.189-28.007-70.488-56.941C 155.646,287.889, 157.81,288, 160,288 c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64c0,43.612, 15.198,84.729, 42.795,115.775 C 162.042,365.927, 191.74,382.388, 224,387.379L 224,344.615 z M 416,344.615c-29.82-6.85-55.189-28.007-70.488-56.941 C 347.646,287.889, 349.81,288, 352,288c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64 c0,43.612, 15.198,84.729, 42.795,115.775C 354.041,365.927, 383.74,382.388, 416,387.379L 416,344.615 z" />

<!-- Contact -->
	<glyph unicode="&#xe260;" data-tags="phone, contact, telephone, support, call" d="M 457.153,376.352 C 510.42,346.068 512,313.643 512.002,291.003 L 512.002,287.606 C 512.002,282.424 507.533,278.188 502.074,278.188 L 381.928,278.188 C 376.469,278.188 372,282.424 372,287.606 L 372,299.059 C 372,327.664 344.645,332.234 329.551,334.664 C 314.455,337.090 276.934,339.441 256.071,339.441 C 256.045,339.441 256.025,339.441 256.005,339.441 C 255.976,339.441 255.956,339.441 255.928,339.441 C 235.066,339.441 197.541,337.091 182.448,334.664 C 167.355,332.237 139.999,327.666 139.999,299.059 L 139.999,287.606 C 139.999,282.424 135.53,278.188 130.073,278.188 L 9.927,278.188 C 4.47,278.188 0.001,282.424 0.001,287.606 L 0.001,291.003 C 0.001,313.643 1.581,346.068 54.848,376.352 C 118.198,412.362 208.777,416 255.928,416 C 255.956,415.975 255.976,415.945 256.005,415.922 C 256.023,415.944 256.044,415.976 256.071,416 C 303.223,416 393.803,412.366 457.153,376.352 ZM 256.001,288c-28.374,0-87.443-2.126-117.456-38.519C 108.523,213.098, 33.455,32, 100.398,32c 66.956,0, 125.458,0, 155.606,0 c 30.137,0, 88.648,0, 155.595,0c 66.945,0-8.125,181.098-38.137,217.481C 343.444,285.874, 284.362,288, 256.001,288z M 256,96 c-35.346,0-64,28.653-64,64s 28.654,64, 64,64c 35.347,0, 64-28.653, 64-64S 291.347,96, 256,96z" />
	<glyph unicode="&#xe261;" data-tags="phone, contact, telephone, support, call" d="M 352,160c-32-32-32-64-64-64s-64,32-96,64s-64,64-64,96s 32,32, 64,64S 128,448, 96,448S0,352,0,352c0-64, 65.75-193.75, 128-256 s 192-128, 256-128c0,0, 96,64, 96,96S 384,192, 352,160z" />
	<glyph unicode="&#x4d;" data-tags="envelop, mail, email, contact, letter" d="M 325.608,214.818L 512,86.264L 512,382.211 zM0,382.211L0,86.264L 186.388,214.836 zM 256,152.309L 211.499,192.264L0,64L 512,64L 300.495,192.264 zM 496.64,384L 15.36,384L 256,203.074 z" />
	<glyph unicode="&#x4e;" data-tags="envelop-opened, mail, email, contact, letter" d="M 325.607,118.95L 512-9.605L 512,286.343 zM0,286.343L0-9.605L 186.388,118.968 zM 256,56.44L 211.499,96.395L0-31.868L 512-31.868L 300.494,96.395 zM 15.359,288L 496.64,288L 255.999,468.926 z" /> 
	<glyph unicode="&#x4f;" data-tags="drawer, inbox, box, archive, storage, category" d="M 352,384L 160,384 L0,192l0-80 l0-48 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32l0,48 l0,80 L 352,384z M 384,192l-64-64L 192,128 l-64,64L 41.655,192 l 133.333,160l 162.024,0 l 133.333-160L 384,192 z" />
	<glyph unicode="&#x50;" data-tags="drawer, inbox, box, archive, storage, category" d="M 352,384L 160,384 L0,192l0-128 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32L 512,192 L 352,384z M 320,128L 192,128 l-32,32l 192,0  L 320,128z M 41.655,192l 133.333,160l 162.024,0 l 133.333-160L 41.655,192 zM 142.482,288L 369.518,288L 342.851,320L 169.148,320 zM 89.149,224L 422.852,224L 396.185,256L 115.815,256 z" />
	<glyph unicode="&#xe020;" data-tags="briefcase, portfolio, suitcase, work, job, employee" d="M 480,352L 352,352 L 352,384 c0,17.6-14.4,32-32,32L 192,416 c-17.602,0-32-14.4-32-32l0-32 L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.601, 14.398-32, 32-32l 448,0 c 17.6,0, 32,14.399, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 192,383.942 c 0.017,0.020, 0.037,0.041, 0.057,0.058l 127.886,0 c 0.021-0.017, 0.041-0.038, 0.059-0.058L 320.002,352 L 192,352 L 192,383.942 z M 480,224l-64,0 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.802,0-16,7.199-16,16l0,48 L 160,224 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.801,0-16,7.199-16,16l0,48 L 32,224 l0,32 l 448,0 L 480,224 z" />

<!-- Tag -->
	<glyph unicode="&#xe262;" data-tags="tag, price" d="M 272,480L0,208l 240-240l 272,272L 512,480 L 272,480 z M 400,320c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.51,320, 400,320z" />
	<glyph unicode="&#xe263;" data-tags="tag, price" d="M 448,416 L 298.51,416 L 90.51,208 L 240,58.51 L 448,266.51 L 448,416 Z M 512,480 L 512,480 L 512,240 L 240-32 L 0,208 L 272,480 L 512,480 ZM 320,336A48,48 2700 1 0 416,336A48,48 2700 1 0 320,336z" />
	<glyph unicode="&#xe264;" data-tags="tags, prices" d="M 496,448L 384,448 c-26.4,0-63.273-15.273-81.941-33.941L 113.941,225.941c-18.667-18.667-18.667-49.214,0-67.882l 140.118-140.117 c 18.667-18.668, 49.214-18.668, 67.882,0l 188.117,188.117C 528.727,224.727, 544,261.6, 544,288L 544,400 C 544,426.4, 522.4,448, 496,448z M 432,288 c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 458.51,288, 432,288zM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 Z" horiz-adv-x="544" />
	<glyph unicode="&#xe265;" data-tags="tags, prices" d="M 480,384 L 384,384 C 381.158,384 373.652,382.643 364.621,378.902 C 355.59,375.161 349.322,370.813 347.312,368.804 L 170.509,192 L 288,74.51 L 464.803,251.314 C 466.813,253.323 471.161,259.591 474.901,268.622 C 478.643,277.652 480,285.158 480,288 L 480,384 Z M 496,448 L 496,448 C 522.4,448 544,426.4 544,400 L 544,288 C 544,261.6 528.727,224.727 510.058,206.059 L 321.941,17.942 C 312.607,8.608 300.304,3.941 288,3.941 C 275.696,3.941 263.392,8.608 254.059,17.942 L 113.941,158.059 C 95.274,176.727 95.274,207.274 113.941,225.941 L 302.059,414.059 C 320.727,432.727 357.6,448 384,448 L 496,448 ZM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 ZM 384,320A32,32 2700 1 0 448,320A32,32 2700 1 0 384,320z" horiz-adv-x="544" />

<!-- Tools -->
 	<glyph unicode="&#x38;" data-tags="cog, preferences, settings, gear, generate, control, options" d="M 466.895,174.875c-26.863,46.527-10.708,106.152, 36.076,133.244l-50.313,87.146c-14.375-8.427-31.088-13.259-48.923-13.259 c-53.768,0-97.354,43.873-97.354,97.995L 205.752,480.001 c 0.133-16.705-4.037-33.641-12.979-49.126 c-26.862-46.528-86.578-62.351-133.431-35.379L 9.030,308.35c 14.485-8.236, 27.025-20.294, 35.943-35.739 c 26.819-46.454, 10.756-105.96-35.854-133.112l 50.313-87.146c 14.325,8.348, 30.958,13.127, 48.7,13.127 c 53.598,0, 97.072-43.596, 97.35-97.479l 100.627,0 c-0.043,16.537, 4.136,33.285, 12.983,48.609 c 26.818,46.453, 86.388,62.297, 133.207,35.506l 50.313,87.145C 488.222,147.494, 475.766,159.51, 466.895,174.875z M 256,120.334 c-57.254,0-103.668,46.412-103.668,103.667c0,57.254, 46.413,103.667, 103.668,103.667c 57.254,0, 103.666-46.413, 103.666-103.667 C 359.665,166.746, 313.254,120.334, 256,120.334z" />
	<glyph unicode="&#x37;" data-tags="cogs, settings, gears, generate, control, options" d="M 181.861,118.974l 20.649,28.908l-22.627,22.628l-28.909-20.648c-5.361,2.997-11.102,5.387-17.133,7.096L 128,192L 96,192 l-5.84-35.043c-6.031-1.709-11.772-4.099-17.133-7.096L 44.118,170.51L 21.49,147.882l 20.649-28.908 c-2.997-5.36-5.387-11.103-7.096-17.133L0,96l0-32 l 35.043-5.841c 1.709-6.030, 4.099-11.772, 7.096-17.133L 21.49,12.118l 22.627-22.628 l 28.909,20.648c 5.361-2.997, 11.102-5.387, 17.133-7.096L 96-32l 32,0 l 5.84,35.043c 6.031,1.709, 11.772,4.099, 17.133,7.096l 28.909-20.648 l 22.627,22.628l-20.649,28.908c 2.997,5.36, 5.387,11.103, 7.096,17.133L 224,64l0,32 l-35.043,5.841 C 187.248,107.871, 184.858,113.613, 181.861,118.974z M 112,48c-17.674,0-32,14.327-32,32s 14.326,32, 32,32s 32-14.327, 32-32 S 129.674,48, 112,48zM 512,288l0,32 l-33.691,6.125c-0.621,4.023-1.416,7.989-2.362,11.895l 28.779,18.55L 492.48,386.134l-33.472-7.234 c-2.107,3.455-4.363,6.81-6.746,10.065l 19.503,28.171l-22.628,22.627l-28.171-19.503c-3.256,2.383-6.61,4.638-10.065,6.747 l 7.234,33.472L 388.571,472.726l-18.55-28.779c-3.906,0.946-7.872,1.741-11.895,2.362L 352,480l-32,0 l-6.126-33.691 c-4.023-0.621-7.988-1.416-11.895-2.362L 283.43,472.726L 253.866,460.48l 7.234-33.472c-3.455-2.108-6.81-4.364-10.065-6.747 l-28.171,19.503l-22.627-22.627l 19.503-28.171c-2.383-3.255-4.639-6.61-6.747-10.065l-33.472,7.234l-12.246-29.564l 28.779-18.55 c-0.946-3.906-1.741-7.871-2.362-11.895L 160,320l0-32 l 33.691-6.125c 0.621-4.023, 1.416-7.989, 2.362-11.895l-28.779-18.55 l 12.246-29.564l 33.472,7.234c 2.108-3.455, 4.364-6.809, 6.747-10.065l-19.503-28.171l 22.627-22.628l 28.171,19.503 c 3.255-2.383, 6.61-4.638, 10.065-6.746l-7.234-33.472l 29.564-12.246l 18.551,28.779c 3.905-0.946, 7.871-1.741, 11.894-2.362L 320,128l 32,0 l 6.126,33.691c 4.022,0.621, 7.988,1.416, 11.895,2.362l 18.55-28.779l 29.564,12.246l-7.234,33.472 c 3.455,2.108, 6.81,4.363, 10.065,6.746l 28.171-19.503l 22.628,22.628l-19.503,28.171c 2.383,3.256, 4.638,6.61, 6.746,10.065 l 33.472-7.234l 12.246,29.565l-28.779,18.55c 0.946,3.906, 1.741,7.871, 2.362,11.895L 512,288z M 336,234.4 c-38.439,0-69.6,31.161-69.6,69.6c0,38.439, 31.16,69.6, 69.6,69.6s 69.6-31.161, 69.6-69.6C 405.6,265.561, 374.44,234.4, 336,234.4z" />
	<glyph unicode="&#x36;" data-tags="screwdriver, fix, tool, make, build" d="M 507.256,84.744L 308.744,283.256c-11.030,11.031-38.41,2.154-65.372-19.758L 96,410.87L 80,448L 28.768,480L0,451.232L 32,400 l 37.13-16l 147.373-147.372c-21.913-26.963-30.79-54.342-19.76-65.372c 0.003-0.003, 0.006-0.005, 0.009-0.008l 198.503-198.504 c 12.976-12.975, 48.565,1.579, 79.494,32.508C 505.677,36.18, 520.23,71.771, 507.256,84.744z M 445.435,34.565 c-3.71-3.71-8.572-5.565-13.435-5.565s-9.725,1.855-13.435,5.565l-160,160c-7.421,7.42-7.421,19.449,0,26.869 c 7.42,7.42, 19.449,7.42, 26.869,0l 160-160C 452.855,54.015, 452.855,41.985, 445.435,34.565z" />
	<glyph unicode="&#x3a;" data-tags="wrench, settings, control, tool, options, preferences, fix" d="M 507.882,411.883L 448,352l-64,64l 59.882,59.883C 435.057,478.557, 425.698,480, 416,480c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.057, 4.116-27.882L 123.882,155.883C 115.057,158.557, 105.698,160, 96,160c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.058, 4.117-27.882L 64,96l 64-64l-59.883-59.882C 76.943-30.556, 86.302-32, 96-32c 53.020,0, 96,42.981, 96,96 c0,9.698-1.444,19.059-4.118,27.883l 200.234,200.235C 396.943,289.444, 406.302,288, 416,288c 53.020,0, 96,42.981, 96,96 C 512,393.698, 510.556,403.058, 507.882,411.883z" />
	<glyph unicode="&#x39;" data-tags="equalizer, control, options, settings, dashboard" d="M 144,320L 80,320 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.8,0, 16,7.2, 16,16l0,32 C 160,312.8, 152.8,320, 144,320zM 96,416L 128,416L 128,336L 96,336zM 96,240L 128,240L 128,32L 96,32zM 272,192l-64,0 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 288,184.8, 280.801,192, 272,192zM 224.001,416L 256.001,416L 256.001,208L 224.001,208zM 224.001,112L 256.001,112L 256.001,32L 224.001,32zM 400,288l-64,0 c-8.799,0-16-7.2-16-16l0-32 c0-8.8, 7.201-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 416,280.8, 408.801,288, 400,288zM 352,416L 384,416L 384,304L 352,304zM 352,208L 384,208L 384,32L 352,32zM 440,480L 40,480 C 17.944,480,0,462.056,0,440l0-432 c0-22.056, 17.944-40, 40-40l 400,0 c 22.056,0, 40,17.944, 40,40L 480,440  C 480,462.056, 462.056,480, 440,480z M 448,8c0-4.4-3.6-8-8-8L 40,0 c-4.4,0-8,3.6-8,8L 32,440 c0,4.4, 3.6,8, 8,8l 400,0 c 4.4,0, 8-3.6, 8-8L 448,8 z" />
	<glyph unicode="&#x78;" data-tags="dashboard, control panel" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 224,352A32,32 10980 1 0 288,352A32,32 10980 1 0 224,352zM 320,320A32,32 10980 1 0 384,320A32,32 10980 1 0 320,320zM 128,320A32,32 10980 1 0 192,320A32,32 10980 1 0 128,320zM 224,128L 224,96L 288,96L 288,128L 256,288 z" />
	<glyph unicode="&#xe266;" data-tags="switch, power, turn off, off, shutdown" d="M 320,406.706l0-67.979 c 18.103-7.902, 34.75-19.204, 49.137-33.59C 399.358,274.917, 416,234.737, 416,192 s-16.643-82.917-46.863-113.137C 338.917,48.643, 298.738,32, 256,32s-82.917,16.643-113.137,46.863 C 112.643,109.083, 96,149.263, 96,192s 16.643,82.917, 46.863,113.137c 14.387,14.387, 31.034,25.689, 49.137,33.591L 192,406.706  C 99.476,379.166, 32,293.47, 32,192c0-123.712, 100.289-224, 224-224c 123.712,0, 224,100.288, 224,224 C 480,293.47, 412.525,379.166, 320,406.706zM 224,480L 288,480L 288,224L 224,224z" />
	<glyph unicode="&#x54;" data-tags="filter, funnel" d="M 256,480C 114.615,480,0,444.183,0,400l0-48 l 192-192l0-160 c0-17.673, 28.653-32, 64-32c 35.346,0, 64,14.327, 64,32L 320,160 l 192,192L 512,400 C 512,444.183, 397.385,480, 256,480z M 47.192,410.588c 11.972,6.829, 28.791,13.31, 48.639,18.744C 139.803,441.37, 196.685,448, 256,448 c 59.314,0, 116.197-6.63, 160.169-18.668c 19.848-5.434, 36.667-11.915, 48.64-18.744c 7.896-4.503, 12.162-8.312, 14.148-10.588 c-1.986-2.276-6.253-6.084-14.148-10.588c-11.973-6.829-28.792-13.31-48.64-18.744C 372.198,358.63, 315.315,352, 256,352 c-59.315,0-116.197,6.63-160.169,18.668c-19.848,5.434-36.667,11.915-48.639,18.744C 39.296,393.916, 35.030,397.724, 33.043,400 C 35.030,402.276, 39.296,406.084, 47.192,410.588z" />
	<glyph unicode="&#x4c;" data-tags="remove, delete, trashcan, recycle bin, bin, dispose" d="M 64,0c0-17.673, 14.327-32, 32-32l 320,0 c 17.674,0, 32,14.327, 32,32L 448,352 L 64,352 L 64,0 z M 320,288l 64,0 l0-256 l-64,0 L 320,288 z M 224,288l 64,0 l0-256 l-64,0  L 224,288 z M 128,288l 64,0 l0-256 l-64,0 L 128,288 zM 448,448L 320,448 L 320,480 L 192,480 l0-32 L 64,448 C 28.654,448,0,419.346,0,384l 512,0 C 512,419.346, 483.347,448, 448,448z" />
 	<glyph unicode="&#x23;" data-tags="lock, secure, private, encrypted" d="M 416,256l-32,0 l0,96 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.308-128-128l0-96 L 96,256 c-17.6,0-32-14.4-32-32l0-224 c0-17.6, 14.4-32, 32-32l 320,0 c 17.6,0, 32,14.4, 32,32L 448,224 C 448,241.6, 433.6,256, 416,256z M 256,64c-17.673,0-32,14.327-32,32 s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,64, 256,64z M 320,256L 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64L 320,256 z" />
	<glyph unicode="&#xe267;" data-tags="unlock, secure, private, encrypted" d="M 256,64c-17.673,0-32,14.326-32,32c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32C 288,78.326, 273.673,64, 256,64z M 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64l0-32 l 64,0 l0,32 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.309-128-128l0-96 L 96,256 c-17.601,0-32-14.4-32-32l0-224 c0-17.601, 14.399-32, 32-32l 320,0 c 17.6,0, 32,14.399, 32,32L 448,224 c0,17.6-14.4,32-32,32L 192,256 z" />
	<glyph unicode="&#x5f;" data-tags="key, password, login, log in, signin, sign in" d="M 352,480c-88.365,0-160-71.634-160-160c0-10.013, 0.929-19.808, 2.688-29.312L0,96l0-96 c0-17.673, 14.327-32, 32-32 l 32,0 l0,32 l 64,0 l0,64 l 64,0 l0,64 l 64,0 l 41.521,41.521C 314.526,163.363, 332.869,160, 352,160c 88.365,0, 160,71.634, 160,160S 440.365,480, 352,480z M 399.937,319.937c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.447,319.937, 399.937,319.937z" />
	<glyph unicode="&#x46;" data-tags="support, help, life, lifebuoy" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 160,224 c0,53.020, 42.98,96, 96,96s 96-42.98, 96-96s-42.98-96-96-96S 160,170.98, 160,224z M 462.99,138.262L 462.99,138.262l-88.71,36.745 C 380.539,190.099, 384,206.645, 384,224s-3.461,33.901-9.72,48.993l 61.063,25.293l 27.647,11.452C 473.944,283.327, 480,254.373, 480,224 C 480,193.627, 473.943,164.673, 462.99,138.262L 462.99,138.262z M 341.739,430.99L 341.739,430.99L 341.739,430.99l-36.745-88.71 C 289.902,348.539, 273.356,352, 256,352s-33.901-3.461-48.993-9.72l-17.23,41.599l-19.515,47.112C 196.673,441.943, 225.628,448, 256,448 C 286.373,448, 315.327,441.943, 341.739,430.99z M 49.010,309.738l 47.112-19.515l 41.599-17.23C 131.462,257.901, 128,241.355, 128,224 s 3.461-33.901, 9.72-48.993l-88.71-36.745C 38.057,164.673, 32,193.627, 32,224C 32,254.373, 38.057,283.327, 49.010,309.738z  M 170.262,17.010l 11.452,27.647l 25.293,61.063C 222.099,99.461, 238.645,96, 256,96s 33.901,3.461, 48.993,9.72l 36.745-88.71l0,0l0,0 C 315.327,6.058, 286.373,0, 256,0C 225.628,0, 196.673,6.057, 170.262,17.010z" />
	<glyph unicode="&#x62;" data-tags="database, server, host, storage, save, datecenter" d="M 256,480C 114.614,480,0,444.184,0,400l0-64 c0-44.183, 114.611-80, 256-80c 141.385,0, 256,35.817, 256,80L 512,400 C 512,444.184, 397.385,480, 256,480 zM 255.193,224C 140.566,224, 43.94,247.543, 11.32,280C 3.705,272.423,0,264.361,0,256l0-64 c0-44.184, 114.611-80, 256-80 c 141.385,0, 256,35.816, 256,80l0,64 c0,8.361-4.516,16.423-12.131,24C 467.25,247.543, 369.82,224, 255.193,224zM 255.193,80C 140.566,80, 43.94,103.544, 11.32,136C 3.705,128.424,0,120.361,0,112l0-64 c0-44.183, 114.611-80, 256-80 c 141.385,0, 256,35.817, 256,80l0,64 c0,8.361-4.516,16.424-12.131,24C 467.25,103.544, 369.82,80, 255.193,80z" />
	<glyph unicode="&#xe268;" data-tags="scissors, cut" d="M 390.979-32c-27.208,0.001-61.186,16.608-75.809,53.702c-2.034,4.84-4.271,10.714-6.859,17.509 c-8.285,21.749-20.806,54.616-33.892,68.23c-4.79,4.984-8.495,8.599-11.473,11.504c-2.673,2.607-4.921,4.801-6.946,7.019 c-2.025-2.219-4.273-4.412-6.948-7.022c-2.976-2.904-6.68-6.519-11.468-11.5c-13.086-13.616-25.608-46.488-33.895-68.239 c-2.586-6.791-4.823-12.661-6.856-17.499C 182.208-15.391, 148.231-32, 121.025-32c-5.303,0-10.138,0.646-14.373,1.918 c-26.772,8.046-43.012,37.939-40.411,74.386l 0.372,4.206c 3.287,29.404, 21.199,58.458, 50.435,81.806 c 25.344,20.238, 55.31,32.812, 78.204,32.812c 4.53,0, 8.712-0.494, 12.519-1.472l 15.711,32.209 c-16.148,40.414-39.152,100.774-57.123,153.646c-10.015,29.463-17.448,53.594-22.094,71.721 c-7.352,28.691-6.883,38.393-3.916,44.132L 148.95,480l 107.053-219.465L 363.049,479.999l 8.602-16.635 c 2.967-5.739, 3.438-15.441-3.915-44.132c-4.646-18.126-12.079-42.257-22.093-71.72c-17.97-52.868-40.974-113.229-57.123-153.646 l 15.711-32.209c 3.806,0.978, 7.987,1.472, 12.518,1.472c 22.895,0, 52.861-12.574, 78.206-32.814 c 24.995-19.962, 41.713-44.097, 48.090-69.052l 1.179,0.564l 1.535-17.522c 2.603-36.445-13.635-66.338-40.404-74.386 c-4.235-1.272-9.071-1.918-14.373-1.918C 390.98-32, 390.979-32, 390.979-32z M 346.841,39.052 c 18.936-34.353, 35.854-39.491, 44.263-39.491c 11.447,0, 20.018,9.238, 21.691,18.169c 1.097,5.871, 1.296,11.914, 0.592,17.961 c-2.837,24.156-19.338,44.898-32.678,58.044c-18.334,18.065-38.889,30.062-52.085,35.3c-1.313,0.457-2.121,0.526-2.489,0.526 c-0.255,0-0.354-0.031-0.355-0.031C 321.937,127.034, 317.342,98.010, 346.841,39.052z M 183.13,129.035 c-13.115-5.24-33.545-17.236-51.764-35.301c-13.26-13.145-29.656-33.888-32.475-58.052c-0.704-6.030-0.506-12.069, 0.589-17.953 c 1.661-8.93, 10.179-18.169, 21.556-18.169c 8.356,0, 25.17,5.139, 43.991,39.49c 29.312,58.938, 24.764,87.944, 20.903,90.493 c0-0.001-0.001-0.001-0.004-0.001c-0.020,0-0.125,0.018-0.32,0.018C 185.239,129.561, 184.438,129.492, 183.13,129.035z" />
	<glyph unicode="&#x6a;" data-tags="health, medicine, medical, pulse" d="M 416,160L 384,128L 320,288L 256,96L 160,448L 96,128L0,128L0,96L 122.235,96L 164.794,308.803L 225.128,87.58L 252.937-14.385L 322.734,195.005L 354.288,116.115L 372.313,71.057L 429.256,128L 512,128L 512,160 z" />
	<glyph unicode="&#x6b;" data-tags="wand, magic, wizard" d="M 258.181,254.091l 94.386,29.34L 256,351.723L 256,480 L 152.532,405.466L 32,448l 42.533-120.533L0,224l 128,0 l 68.567-96.568l 29.341,94.387 L 448-32l 64,64L 258.181,254.091z M 202.327,277.672l-19.579-62.986l-38.084,53.010L 78.712,267.696 l 39.447,52.861L 96.979,383.021l 62.464-21.182 l 52.862,39.447l0-65.952 l 53.008-38.084L 202.327,277.672z" />
	<glyph unicode="&#x3c;" data-tags="eye, views, vision, visit" d="M 256,384C 144.341,384, 47.559,318.979,0,224c 47.559-94.979, 144.341-160, 256-160c 111.657,0, 208.439,65.021, 256,160 C 464.442,318.979, 367.657,384, 256,384z M 382.225,299.148c 30.081-19.187, 55.571-44.887, 74.717-75.148 c-19.146-30.261-44.637-55.961-74.718-75.149C 344.427,124.743, 300.779,112, 256,112c-44.78,0-88.428,12.743-126.225,36.852 C 99.695,168.038, 74.205,193.738, 55.058,224c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65 C 130.725,289.134, 128,274.387, 128,259c0-70.692, 57.308-128, 128-128s 128,57.308, 128,128c0,15.387-2.725,30.134-7.704,43.799 C 378.286,301.61, 380.265,300.398, 382.225,299.148z M 256,275c0-26.51-21.49-48-48-48s-48,21.49-48,48s 21.49,48, 48,48 S 256,301.51, 256,275z" />
	<glyph unicode="&#xe269;" data-tags="eye-blocked, views, vision, visit, banned, blocked, forbidden, private" d="M 419.661,331.792 C 458.483,304.277 490.346,267.246 512,224 C 464.439,129.021 367.657,64 256,64 C 224.717,64 194.604,69.106 166.411,78.542 L 205.389,117.52 C 221.918,113.87 238.875,112 256,112 C 300.779,112 344.427,124.743 382.223,148.852 C 412.304,168.040 437.795,193.74 456.941,224.001 C 438.415,253.284 413.934,278.276 385.116,297.248 L 419.661,331.792 ZM 256,131 C 244.638,131 233.624,132.488 223.136,135.267 L 379.729,291.859 C 382.51,281.373 384,270.362 384,259 C 384,188.308 326.692,131 256,131 ZM 480,480l-26.869,0 L 343.325,370.194C 315.787,379.156, 286.448,384, 256,384C 144.341,384, 47.559,318.979,0,224 c 21.329-42.596, 52.564-79.154, 90.597-106.534L0,26.869L0,0 l 26.869,0 L 480,453.131L 480,480 z M 208,323c 24.022,0, 43.923-17.647, 47.446-40.685 l-54.762-54.762C 177.647,231.077, 160,250.978, 160,275C 160,301.51, 181.49,323, 208,323z M 55.058,224 c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65C 130.725,289.134, 128,274.387, 128,259 c0-29.262, 9.825-56.224, 26.349-77.781l-29.275-29.275C 97.038,170.765, 73.197,195.33, 55.058,224z" />
	<glyph unicode="&#x6e;" data-tags="clock, time, schedule" d="M 329.372,105.372L 224,210.745L 224,352L 288,352L 288,237.255L 374.628,150.628 zM 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z" />
	<glyph unicode="&#x6f;" data-tags="compass, direction, map, locate" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 304,272l-144,80l-32,0 l0-32 l 80-144l 144-80l 32,0 l0,32 L 304,272z M 256,192c-17.673,0-32,14.327-32,32c0,17.673, 14.327,32, 32,32 c 17.673,0, 32-14.327, 32-32C 288,206.327, 273.673,192, 256,192z" />
	<glyph unicode="&#xe01b;" data-tags="connection, broadcast, wifi, wave, feed" d="M 224,96A32,32 12780 1 0 288,96A32,32 12780 1 0 224,96zM 256,416c-96.026,0-182.161-42.307-240.815-109.286l 24.081-21.071C 92.055,345.923, 169.577,384, 256,384 c 86.423,0, 163.945-38.077, 216.734-98.357l 24.081,21.071C 438.161,373.693, 352.027,416, 256,416zM 256,320c-67.218,0-127.513-29.615-168.571-76.5l 24.082-21.071C 146.703,262.616, 198.385,288, 256,288 c 57.616,0, 109.297-25.384, 144.489-65.571l 24.082,21.071C 383.513,290.385, 323.219,320, 256,320zM 256,224c-38.41,0-72.865-16.923-96.326-43.715l 24.082-21.071C 201.352,179.308, 227.192,192, 256,192 c 28.808,0, 54.648-12.692, 72.245-32.786l 24.081,21.071C 328.865,207.077, 294.41,224, 256,224z" />
	<glyph unicode="&#xe271;" data-tags="book, reading" d="M 448,416l0-416 L 112,0 c-26.511,0-48,21.49-48,48c0,26.509, 21.489,48, 48,48l 304,0 L 416,480 L 96,480 C 60.801,480, 32,451.2, 32,416l0-384  c0-35.2, 28.801-64, 64-64l 384,0 L 480,416 L 448,416 zM 128,64L 416,64L 416,32L 128,32z" />
	<glyph unicode="&#x79;" data-tags="lightning, power" d="M 192,480L0,224L 192,224L 64-32L 512,288L 256,288L 448,480 z" /> 
	<glyph unicode="&#xe013;" data-tags="print, printer" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320  C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2 c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z" />

<!-- Social -->
	<glyph unicode="&#x71;" data-tags="feed, rss, social" d="M 426.67,480L 85.343,480 C 38.405,480,0,441.594,0,394.656l0-341.314 C0,6.375, 38.406-32, 85.344-32L 426.67-32 c 46.938,0, 85.33,38.374, 85.33,85.342L 512,394.656 C 512,441.594, 473.608,480, 426.67,480z M 139.472,64.376C 115.487,64.376, 96,83.722, 96,107.69 c0,23.842, 19.486,43.406, 43.472,43.406c 24.079,0, 43.53-19.564, 43.53-43.406C 183.001,83.722, 163.55,64.376, 139.472,64.376z  M 248.734,64.002c0,40.905-15.904,79.409-44.73,108.222c-28.857,28.875-67.188,44.813-107.952,44.813L 96.052,279.63 c 118.826,0, 215.563-96.721, 215.563-215.627L 248.734,64.002L 248.734,64.002z M 359.814,64.002 c0,145.531-118.329,263.97-263.688,263.97L 96.126,390.596 c 180.001,0, 326.473-146.562, 326.473-326.596L 359.814,64.002L 359.814,64.002z" />

<!-- Calendar -->
	<glyph unicode="&#x43;" data-tags="calendar, schedule, date, time, day" d="M 160,288L 224,288L 224,224L 160,224zM 256,288L 320,288L 320,224L 256,224zM 352,288L 416,288L 416,224L 352,224zM 64,96L 128,96L 128,32L 64,32zM 160,96L 224,96L 224,32L 160,32zM 256,96L 320,96L 320,32L 256,32zM 160,192L 224,192L 224,128L 160,128zM 256,192L 320,192L 320,128L 256,128zM 352,192L 416,192L 416,128L 352,128zM 64,192L 128,192L 128,128L 64,128zM 416,480l0-32 l-64,0 L 352,480 L 128,480 l0-32 L 64,448 L 64,480 L0,480 l0-512 l 480,0 L 480,480 L 416,480 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z" />
	<glyph unicode="&#x44;" data-tags="calendar, schedule, date, time, day" d="M 64,320L 96,320L 96,288L 64,288zM 128,320L 160,320L 160,288L 128,288zM 192,320L 224,320L 224,288L 192,288zM 256,320L 288,320L 288,288L 256,288zM 320,320L 352,320L 352,288L 320,288zM 384,320L 416,320L 416,288L 384,288zM 64,256L 96,256L 96,224L 64,224zM 128,256L 160,256L 160,224L 128,224zM 192,256L 224,256L 224,224L 192,224zM 256,256L 288,256L 288,224L 256,224zM 320,256L 352,256L 352,224L 320,224zM 384,256L 416,256L 416,224L 384,224zM 64,192L 96,192L 96,160L 64,160zM 128,192L 160,192L 160,160L 128,160zM 192,192L 224,192L 224,160L 192,160zM 256,192L 288,192L 288,160L 256,160zM 320,192L 352,192L 352,160L 320,160zM 384,192L 416,192L 416,160L 384,160zM 64,128L 96,128L 96,96L 64,96zM 128,128L 160,128L 160,96L 128,96zM 192,128L 224,128L 224,96L 192,96zM 256,128L 288,128L 288,96L 256,96zM 320,128L 352,128L 352,96L 320,96zM 384,128L 416,128L 416,96L 384,96zM 64,64L 96,64L 96,32L 64,32zM 128,64L 160,64L 160,32L 128,32zM 192,64L 224,64L 224,32L 192,32zM 256,64L 288,64L 288,32L 256,32zM 320,64L 352,64L 352,32L 320,32zM 384,64L 416,64L 416,32L 384,32zM 416,448L 416,480 l-64,0 l0-64 l-32,0 L 320,448 L 160,448 l0-32 l-32,0 L 128,480 L 64,480 l0-32 L0,448 l0-480 l 480,0 L 480,448 L 416,448 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z" />
	<glyph unicode="&#xe273;" data-tags="calendar, schedule, date, time, day" d="M 448,416l-48,0 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 336,416 L 176,416 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 112,416 L 64,416  c-17.6,0-32-14.4-32-32l0-352 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z M 448,32.058 c-0.017-0.020-0.038-0.041-0.058-0.058L 64.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 64,320 l 384,0 L 448,32.058 zM 144,384c 8.836,0, 16,7.164, 16,16L 160,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 128,391.164, 135.164,384, 144,384zM 368,384c 8.836,0, 16,7.164, 16,16L 384,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 352,391.164, 359.164,384, 368,384zM 288,288L 128,288L 128,256L 256,256L 256,192L 128,192L 128,160L 256,160L 256,96L 128,96L 128,64L 288,64 zM 352,64L 384,64L 384,288L 320,288L 320,256L 352,256 zM 436-12L 76-12 c-17.6,0-32,10.4-32,28l0-16 c0-17.6, 14.4-32, 32-32l 360,0 c 17.6,0, 32,14.4, 32,32l0,16 C 468-1.6, 453.6-12, 436-12z" />

<!-- Stats -->
	<glyph unicode="&#x77;" data-tags="pie, statistics, stats, chart, graph" d="M 224,192L 224,416 C 100.288,416,0,315.712,0,192s 100.288-224, 224-224s 224,100.288, 224,224c0,36.017-8.514,70.042-23.618,100.191 L 224,192zM 456.382,356.191C 419.606,429.599, 343.695,480, 256,480l0-224 L 456.382,356.191z" />
	<glyph unicode="&#x76;" data-tags="bars, statistics, stats, chart, graph" d="M0,64L 512,64L 512,0L0,0zM 64,192L 128,192L 128,96L 64,96zM 160,320L 224,320L 224,96L 160,96zM 256,224L 320,224L 320,96L 256,96zM 352,416L 416,416L 416,96L 352,96z" />
	<glyph unicode="&#x75;" data-tags="chart, stats, statistics, dualtone, plot, graph" d="M 496,0L 384,0L 384,16L 368,16L 368,0L 208,0L 208,16L 192,16L 192,0L 80,0L 80,16L 64,16L 64,0L 32,0L 32,144L 48,144L 48,160L 32,160L 32,272L 48,272L 48,288L 32,288L 32,400L 48,400L 48,416L 32,416L 32,480L0,480L0-32L 512-32L 512,16L 496,16 zM 220,284L 212,276L 212,149.941L 220,157.941 zM 204,268L 196,260L 196,133.941L 204,141.941 zM 188,125.941L 188,258L 180,262L 180,128.833L 187.261,125.202 zM 268,332L 260,324L 260,197.941L 268,205.941 zM 236,300L 228,292L 228,165.941L 236,173.941 zM 172,266L 164,270L 164,136.833L 172,132.833 zM 252,316L 244,308L 244,181.941L 252,189.941 zM 124,290L 116,294L 116,160.833L 124,156.833 zM 92,306L 84,310L 84,176.833L 92,172.833 zM 156,274L 148,278L 148,144.833L 156,140.833 zM 108,298L 100,302L 100,168.833L 108,164.833 zM 76,314L 68,318L 68,184.833L 76,180.833 zM 284,348L 276,340L 276,213.941L 284,221.941 zM 140,282L 132,286L 132,152.833L 140,148.833 zM 412,316L 404,308L 404,137.267L 412,149.267 zM 428,332L 420,324L 420,161.267L 428,173.267 zM 444,348L 436,340L 436,185.267L 444,197.267 zM 476,380L 468,372L 468,233.267L 476,245.267 zM 460,364L 452,356L 452,209.267L 460,221.267 zM 508,412L 500,404L 500,281.267L 508,293.267 zM 492,396L 484,388L 484,257.267L 492,269.267 zM 348,312L 340,317.333L 340,162.666L 348,152 zM 332,322.667L 324,328L 324,184L 332,173.333 zM 300,344L 292,349.333L 292,226.667L 300,216 zM 316,333.333L 308,338.667L 308,205.333L 316,194.666 zM 364,301.333L 356,306.667L 356,141.333L 364,130.666 zM 396,300L 388,292L 388,113.268L 396,125.267 zM 380,290.667L 372,296L 372,119.999L 380,109.333 zM 384,64L 288,192L 192,96L 64,160L 64,32L 512,32L 512,256 z" />

<!-- Extensions -->
	<glyph unicode="&#x32;" data-tags="power cord, cord, plugin, extension" d="M 512,338.75L 466.747,384L 377.374,294.624L 326.624,345.375L 415.999,434.75L 370.749,480L 281.374,390.625L 224,448L 180.687,404.688L 436.688,148.687L 480,191.999L 422.624,249.375 zM 137.374,105.373c 82.884-82.881, 192.597-18.181, 259.646,37.732L 175.108,365.017 C 119.196,297.969, 54.494,188.256, 137.374,105.373zM 95.999,127.998L 159.996,64L 64-31.996L 0.002,32.001z" />
	<glyph unicode="&#x33;" data-tags="cube, box, 3d, miscellaneous" d="M 256,448L 32,352L 256,256L 480,352 zM 32,64L 224-16L 224,208L 32,288 zM 288-16L 480,64L 480,288L 288,208 z" />
	<glyph unicode="&#x34;" data-tags="puzzle, piece, app, addon, extension" d="M 479.165,351.875L 394.94,351.875 c-21.715,0.033-43.348,1.503-22.252,38.729c 21.138,37.3, 36.059,89.521-48.802,89.521 c-84.857,0-69.935-52.221-48.797-89.521c 21.096-37.226-0.538-38.694-22.255-38.729l-91.938,0 c-18.060,0-32.835-14.778-32.835-32.834 l0-102.189 c0-21.756, 5.904-43.513-31.393-22.378C 59.372,215.611,0,230.531,0,145.672c0-84.854, 59.37-69.935, 96.67-48.798 c 37.297,21.137, 31.393-0.62, 31.393-22.38l0-73.783 c0-18.062, 14.777-32.835, 32.835-32.835l 91.811,0 c 21.76,0, 43.517,8.706, 22.382,46.004 c-21.137,37.295-36.061,89.519, 48.797,89.519c 84.858,0, 69.938-52.221, 48.8-89.519c-21.135-37.299, 0.623-46.005, 22.381-46.005l 84.096,0 c 18.062,0, 32.837,14.777, 32.837,32.835L 512.002,319.042 C 512.002,337.099, 497.227,351.875, 479.165,351.875z" />

<!-- Marked -->
	<glyph unicode="&#x72;" data-tags="attachment, paperclip" d="M 348.916,316.476l-32.476,32.461L 154.035,186.566c-26.907-26.896-26.907-70.524,0-97.422 c 26.902-26.896, 70.53-26.896, 97.437,0l 194.886,194.854c 44.857,44.831, 44.857,117.531,0,162.363 c-44.833,44.852-117.556,44.852-162.391,0L 79.335,241.788l 0.017-0.016c-0.145-0.152-0.306-0.288-0.438-0.423 c-62.551-62.548-62.551-163.928,0-226.453c 62.527-62.528, 163.934-62.528, 226.494,0c 0.137,0.137, 0.258,0.284, 0.41,0.438l 0.016-0.017 l 139.666,139.646l-32.493,32.46L 273.35,47.792l-0.008,0 c-0.148-0.134-0.282-0.285-0.423-0.422 c-44.537-44.529-116.99-44.529-161.538,0c-44.531,44.521-44.531,116.961,0,161.489c 0.152,0.152, 0.302,0.291, 0.444,0.423l-0.023,0.030 l 204.64,204.583c 26.856,26.869, 70.572,26.869, 97.443,0c 26.856-26.867, 26.856-70.574,0-97.42L 218.999,121.625 c-8.968-8.961-23.527-8.961-32.486,0c-8.947,8.943-8.947,23.516,0,32.46L 348.916,316.476z" />
	<glyph unicode="&#x74;" data-tags="lamp, idea, tip, light, bulb" d="M 256.003,480c-85.374,0-154.661-68.339-154.661-152.54c0-42.102, 25.089-86.239, 53.788-133.976 c 28.7-47.737, 6.022-100.49, 103.695-99.073c 93.617,1.376, 69.35,44.274, 96.629,92.011c 27.289,47.736, 55.205,98.938, 55.205,141.039 C 410.66,411.662, 341.371,480, 256.003,480zM 191.076,80.777l0-40.615 c 19.95-6.488, 41.896-10.088, 64.927-10.088c 23.029,0, 44.97,3.6, 64.921,10.086l0,37.525  c-11.158-10.273-29.447-13.1-62.1-13.645C 222.605,63.443, 202.953,67.848, 191.076,80.777zM 191.753,14.944c 2.507-13.705, 13.3-46.944, 64.25-46.944c 50.949,0, 61.742,33.239, 64.25,46.944 c-28.826-8.815-41.977-9.291-64.25-9.291C 233.728,5.653, 220.577,6.129, 191.753,14.944z" />
	<glyph unicode="&#x73;" data-tags="pushpin, pin" d="M 272,480l-48-48l 48-48L 160,256L 48,256 l 88-88L0-12.308L0-32 l 19.692,0 L 200,104l 88-88L 288,128 l 128,112l 48-48l 48,48L 272,480z M 224,208l-32,32 l 112,112l 32-32L 224,208z" /> 
	<glyph unicode="&#x63;" data-tags="location, map, marker, pin" d="M 256,480C 167.634,480, 96,408.366, 96,320c0-160, 160-352, 160-352s 160,192, 160,352C 416,408.366, 344.365,480, 256,480z M 256,224 c-53.020,0-96,42.98-96,96s 42.98,96, 96,96s 96-42.98, 96-96S 309.020,224, 256,224z" />
	<glyph unicode="&#xe274;" data-tags="shield, security, defense, protection, anti virus" d="M 131.851,338.143c 2.709-85.392, 23.232-156.27, 61.189-211.080c 17.343-25.043, 38.449-46.778, 62.96-64.873 c 24.511,18.095, 45.618,39.83, 62.959,64.873c 37.957,54.811, 58.48,125.688, 61.189,211.080c-40.225,9.645-79.752,25.45-124.149,49.495 C 211.596,363.589, 172.078,347.788, 131.851,338.143zM 458.873,406.909C 387.436,411.877, 329.919,434.868, 256.002,480C 182.080,434.868, 124.563,411.877, 53.127,406.909 C 33.451,95.568, 202.896-3.16, 256.002-32C 309.105-3.16, 478.55,95.568, 458.873,406.909z M 358.422,99.735 c-35.469-51.219-77.048-80.031-102.421-95.026c-25.374,14.995-66.952,43.807-102.422,95.026 c-49.507,71.489-72.928,164.977-69.753,278.177c 56.394,7.775, 107.891,27.271, 172.175,64.812 c 64.281-37.541, 115.777-57.037, 172.173-64.812C 431.35,264.712, 407.929,171.225, 358.422,99.735z" />
	<glyph unicode="&#x35;" data-tags="flag, report, mark" d="M 254.059,418.977C 205.881,476.227, 169.369,480, 96,480l0-256 c 128.267,64, 142.636-8.335, 223.506-1.023 C 399.234,230.197, 467.031,291.564, 512,352C 384.644,322.547, 320.54,339.977, 254.059,418.977zM0,480L 64,480L 64-32L0-32z" />
	<glyph unicode="&#xe275;" data-tags="flag, report, mark" d="M 128,447.5c 19.393-0.786, 33.686-2.681, 46.365-6.903c 19.163-6.381, 35.674-19.009, 55.209-42.224 c 54.165-64.364, 108.925-91.826, 183.107-91.826c 7.729,0, 15.767,0.307, 24.147,0.925c-10.090-11.872-20.705-23.466-31.729-34.059 c-15.453-14.849-30.499-26.521-44.72-34.692c-14.99-8.612-29.547-13.609-43.263-14.851c-1.81-0.164-3.533-0.243-5.271-0.243 c-16.82,0-29.746,7.817-49.442,20.573c-22.574,14.618-50.668,32.812-91.546,32.812c-13.692,0-27.906-2.034-42.859-6.161L 127.998,447.5  M 96,480l0-256 c 30.587,15.262, 54.737,21.011, 74.859,21.011c 61.341,0, 85.367-53.384, 140.988-53.384c 2.648,0, 5.354,0.12, 8.152,0.373 c 79.729,7.221, 147.031,99.564, 192,160c-38.205-8.835-70.726-13.453-99.318-13.453c-66.72,0-112.085,25.129-158.623,80.43 C 205.881,476.227, 169.369,480, 96,480L 96,480zM0,480L 64,480L 64-32L0-32z" />
	<glyph unicode="&#xe023;" data-tags="bookmark, ribbon" d="M 96,480L 96-32L 256,128L 416-32L 416,480 z" />
	<glyph unicode="&#xe276;" data-tags="bookmark, ribbon" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z" />
	<glyph unicode="&#xe277;" data-tags="heart, like, love, favorite" d="M 376,448c-51.956,0-97.1-29.138-120-71.96C 233.099,418.862, 187.955,448, 136,448C 60.889,448,0,387.11,0,312c0-184, 256-312, 256-312 s 256,128, 256,312C 512,387.11, 451.111,448, 376,448z" />
	<glyph unicode="&#xe278;" data-tags="heart, like, love, favorite" d="M 256,0l-13.97,6.779C 232.147,11.574,0,126.229,0,300.513C0,381.838, 67.738,448, 151,448c 39.83,0, 77.258-15.237, 105-41.462 C 283.742,432.763, 321.17,448, 361,448c 83.262,0, 151-66.162, 151-147.487c0-174.284-232.147-288.938-242.030-293.733L 256,0z M 151,384 c-47.972,0-87-37.452-87-83.487c0-67.976, 54.123-127.616, 99.526-165.68c 36.25-30.39, 73.062-52.351, 92.474-63.081 c 19.412,10.73, 56.224,32.691, 92.474,63.081C 393.877,172.896, 448,232.537, 448,300.513C 448,346.548, 408.972,384, 361,384 c-32.336,0-61.831-17.070-76.974-44.55L 256,288.59l-28.026,50.86C 212.831,366.93, 183.336,384, 151,384z" />

<!-- Rating -->
	<glyph unicode="&#x5b;" data-tags="thumbs-up, up, like, rate, vote up" d="M 464,192 C 500.5,192 480,96 448,96 C 464,96 448,16 416,16 C 416-16 384-32 352-32 C 216.824-32 264.368,1.825 128,16 L 128,272 C 248.461,308.134 368,398.712 368,480 C 394.5,480 464,448 368,288 C 368,288 448,288 464,288 C 512,288 496,192 464,192 ZM 96,272 L 96,16 L 128,16 L 128,0 L 64,0 C 46.4,0 32,21.6 32,48 L 32,240 C 32,266.4 46.4,288 64,288 L 128,288 L 128,272 L 96,272 Z" />
	<glyph unicode="&#x5c;" data-tags="thumbs-up, up, like, rate, vote down" d="M 48,256 C 11.5,256 32,352 64,352 C 48,352 64,432 96,432 C 96,464 128,480 160,480 C 295.176,480 247.632,446.175 384,432 L 384,176 C 263.539,139.866 144,49.288 144-32 C 117.5-32 48,0 144,160 C 144,160 64,160 48,160 C 0,160 16,256 48,256 ZM 416,176 L 416,432 L 384,432 L 384,448 L 448,448 C 465.6,448 480,426.4 480,400 L 480,208 C 480,181.6 465.6,160 448,160 L 384,160 L 384,176 L 416,176 Z" />
	<glyph unicode="&#x40;" data-tags="star, rate, favorite, bookmark" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-111.731-58.74l 21.338,124.415l-90.393,88.111l 124.92,18.152L 256,388.387l 55.868-113.198 l 124.918-18.152l-90.394-88.111l 21.339-124.415L 256,103.251z" />
	<glyph unicode="&#x41;" data-tags="star, rate, half" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-0.471-0.248L 256,388.387l 55.868-113.198l 124.918-18.152l-90.394-88.111l 21.339-124.415 L 256,103.251z" />
	<glyph unicode="&#x42;" data-tags="star, rate, favorite, bookmark" d="M 512,281.475L 335.11,307.179L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z" />
	<glyph unicode="&#xe279;" data-tags="smiley, emoticon, face" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 256,64c-58.255,0-109.232,31.137-137.213,77.672l 41.164,24.698 C 179.538,133.796, 215.222,112, 256,112s 76.462,21.796, 96.049,54.37l 41.164-24.698C 365.232,95.137, 314.255,64, 256,64z" />
	<glyph unicode="&#xe280;" data-tags="smiley, emoticon, face" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 352.049,166.37 L 393.213,141.672 C 365.232,95.137 314.255,64 256,64 C 197.745,64 146.768,95.137 118.787,141.672 L 159.951,166.37 C 179.538,133.796 215.222,112 256,112 C 296.778,112 332.462,133.796 352.049,166.37 Z" />
	<glyph unicode="&#xe281;" data-tags="sad, emoticon, smiley, face" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 352.049,89.63C 332.462,122.204, 296.777,144, 256,144 c-40.778,0-76.462-21.796-96.049-54.37l-41.164,24.698C 146.767,160.863, 197.745,192, 256,192c 58.254,0, 109.232-31.137, 137.213-77.672 L 352.049,89.63z" />
	<glyph unicode="&#xe282;" data-tags="sad, emoticon, smiley, face" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 159.951,89.63 L 118.787,114.328 C 146.768,160.863 197.745,192 256,192 C 314.254,192 365.231,160.863 393.213,114.328 L 352.049,89.63 C 332.462,122.204 296.778,144 256,144 C 215.221,144 179.538,122.204 159.951,89.63 Z" />
	<glyph unicode="&#xe283;" data-tags="neutral, emoticon, smiley, face" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 320,96L 192,96 l0,32 l 128,0 L 320,96 z M 352,352c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 320,337.673, 334.327,352, 352,352z M 160,352 c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 128,337.673, 142.327,352, 160,352z" />
	<glyph unicode="&#xe284;" data-tags="neutral, emoticon, smiley, face" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 128,337.673, 128,320z M 320,320 c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 320,337.673, 320,320z M 192,128l 128,0 l0-32 L 192,96 L 192,128 z" />

<!-- Cart -->
	<glyph unicode="&#xe019;" data-tags="cart, ecommerce, shopping, products, purchase, buy, store" d="M 64,16A48,48 10980 1 0 160,16A48,48 10980 1 0 64,16zM 384,16A48,48 10980 1 0 480,16A48,48 10980 1 0 384,16zM 480,224L 480,416 L 64,416 C 64,451.346, 35.347,480,0,480l0-32 c 17.645,0, 32-14.355, 32-32l 24.037-206.027C 41.39,198.244, 32,180.223, 32,160 c0-35.347, 28.654-64, 64-64l 384,0 l0,32 L 96,128 c-17.673,0-32,14.327-32,32c0,0.11, 0.007,0.218, 0.008,0.328L 480,224z" />
	<glyph unicode="&#xe01a;" data-tags="basket, cart, ecommerce, shopping, products, purchase, buy, store" d="M 406.494,288L 317.573,403.765C 319.134,407.535, 320,411.666, 320,416c0,17.673-14.326,32-32,32c-17.673,0-32-14.327-32-32 s 14.327-32, 32-32c 1.421,0, 2.816,0.102, 4.188,0.282L 366.144,288L 145.857,288 l 73.956,96.282C 221.184,384.102, 222.58,384, 224,384 c 17.673,0, 32,14.327, 32,32s-14.327,32-32,32s-32-14.327-32-32c0-4.334, 0.866-8.465, 2.427-12.234L 105.506,288L0,288 l0-64 l 32,0 l 32-256l 384,0 l 32,256l 32,0 l0,64 L 406.494,288 z M 160,32L 96,32 l0,64 l 64,0 L 160,32 z M 160,160L 96,160 l0,64 l 64,0 L 160,160 z M 288,32l-64,0 l0,64 l 64,0 L 288,32 z M 288,160l-64,0 l0,64 l 64,0 L 288,160 z M 416,32l-64,0 l0,64 l 64,0 L 416,32 z M 416,160l-64,0 l0,64 l 64,0 L 416,160 z" />

<!-- Creditcard -->
	<glyph unicode="&#xe286;" data-tags="credit, card, purchase, payment, ecommerce" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 48,384 l 416,0 c 8.673,0, 16-7.327, 16-16l0-48 L 32,320 l0,48 C 32,376.673, 39.327,384, 48,384z M 464,64L 48,64 c-8.673,0-16,7.327-16,16L 32,224 l 448,0 l0-144  C 480,71.327, 472.673,64, 464,64zM 64,160L 96,160L 96,96L 64,96zM 128,160L 160,160L 160,96L 128,96zM 192,160L 224,160L 224,96L 192,96z" />
	<glyph unicode="&#xe287;" data-tags="credit, card, purchase, payment, ecommerce" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 96,96 L 64,96 l0,64 l 32,0 L 96,96 z M 160,96l-32,0 l0,64 l 32,0 L 160,96 z M 224,96l-32,0 l0,64 l 32,0 L 224,96 z M 496,224L 16,224 l0,96 l 480,0 L 496,224 z" />

	<glyph unicode="&#x20;" horiz-adv-x="256" />

</font></defs></svg>
jui/fonts/IcoMoon.svg000064400000250033152177723720010570 0ustar00<?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>
This is a custom SVG font generated by IcoMoon.
<iconset grid="16"></iconset>
</metadata>
<defs>
<font id="IcoMoon" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
<glyph unicode="&#xe200;" d="M 133.002,341.661c 16.416,16.422, 43.001,16.422, 59.402,0.016l 3.913-3.934l 50.552,50.578l-3.937,3.94 c-28.812,28.85-69.257,38.939-106.21,30.261C 131.425,455.113, 103.178,479.984, 69.135,480C 31.31,480, 0.658,449.279, 0.65,411.421 c0-32.668, 22.795-60, 53.331-66.915c-11.569-38.725-2.121-82.417, 28.423-112.992l 113.913-113.95l 50.498,50.607L 132.91,282.114 C 116.569,298.475, 116.539,325.177, 133.002,341.661zM 511.356,411.421C 511.364,449.302, 480.697,480, 442.864,480c-34.617,0-63.239-25.722-67.841-59.119 c-38.537,11.332-81.892,1.748-112.32-28.704l-113.92-113.95l 50.551-50.586l 113.883,113.928c 16.47,16.483, 42.994,16.453, 59.342,0.092 c 16.4-16.415, 16.4-43.057-0.016-59.478l-3.897-3.918l 50.505-50.624l 3.929,3.964c 30.229,30.283, 39.839,73.378, 28.806,111.819 C 485.461,347.841, 511.356,376.606, 511.356,411.421zM 453.133,104.468c 9.051,37.229-0.988,78.162-30.054,107.25L 309.334,325.714l-50.551-50.561l 113.76-114.006 c 16.47-16.498, 16.432-43.048, 0.092-59.424c-16.401-16.407-43.002-16.407-59.418,0.015l-3.883,3.895l-50.497-50.623l 3.866-3.864 c 30.758-30.797, 74.809-40.219, 113.684-28.244C 382.703-8.439, 410.354-32, 443.516-32C 481.318-32, 512-1.325, 512,36.563 C 512,71.163, 486.41,99.791, 453.133,104.468zM 306.172,215.658L 192.404,101.662c-16.355-16.384-43.017-16.414-59.472,0.062c-16.409,16.452-16.416,43.049-0.022,59.485 l 3.904,3.887l-50.543,50.562l-3.867-3.856c-29.38-29.401-39.28-70.917-29.725-108.491C 22.48,96.181,0,68.994,0,36.563 C-0.008-1.31, 30.666-32, 68.491-32c 32.55,0.016, 59.794,22.709, 66.77,53.191c 37.351-9.276, 78.499,0.652, 107.672,29.878 l 113.745,113.98L 306.172,215.658z"  />
<glyph unicode="&#xe005;" d="M0,160L 96,64L 256,224L 416,64L 512,160L 256.001,416 z"  />
<glyph unicode="&#xe006;" d="M 192,480L 96,384L 256,224L 96,64L 192-32L 448,224 z"  />
<glyph unicode="&#xe007;" d="M 512,288L 416,384L 256,224L 96,384L0,288L 256,32.001 z"  />
<glyph unicode="&#xe008;" d="M 320-32L 416,64L 256,224L 416,384L 320,480L 64,224 z"  />
<glyph unicode="&#xe003;" d="M 416,384L 320,480L 64,224L 320-32L 416,64L 256,224 zM0,480L0-32L 64-32L 64,224L 64,480 z"  />
<glyph unicode="&#xe004;" d="M 96,64L 192-32L 448,224L 192,480L 96,384L 256,224 zM 512-32L 512,480L 448,480L 448,224L 448-32 z"  />
<glyph unicode="&#xe009;" d="M 512,224C 512,82.615, 397.385-32, 256-32s -256,114.615, -256,256s 114.615,256, 256,256S 512,365.385, 512,224z M 48,224 c 0-114.875 93.125-208 208-208S 464,109.125, 464,224s -93.125,208, -208,208S 48,338.875, 48,224zM 278.627,374.628l 128-128.001c 12.497-12.496 12.497-32.757 0-45.254c -12.497-12.497 -32.758-12.497,-45.255,0L 288,274.745 L 288,96 c 0-17.673 -14.327-32 -32-32c-17.673,0, -32,14.327, -32,32l0,178.745 l -73.372-73.373c -12.497-12.497 -32.759-12.497,-45.256,0 C 99.124,207.621, 96,215.811, 96,224s 3.124,16.379, 9.372,22.627l 128,128.001C 245.869,387.124, 266.131,387.124, 278.627,374.628z"  />
<glyph unicode="&#xe00a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 406.628,246.627l-128.001,128c-12.496,12.497-32.757,12.497-45.254,0c-12.497-12.497-12.497-32.758,0-45.255L 306.745,256 L 128,256 c-17.673,0-32-14.327-32-32c0-17.673, 14.327-32, 32-32l 178.745,0 l-73.373-73.372c-12.497-12.497-12.497-32.759,0-45.256 C 239.621,67.124, 247.811,64, 256,64s 16.379,3.124, 22.627,9.372l 128.001,128C 419.124,213.869, 419.124,234.131, 406.628,246.627z"  />
<glyph unicode="&#xe00b;" d="M 512,224C 512,365.385, 397.385,480, 256,480s -256-114.615, -256-256s 114.615-256, 256-256S 512,82.615, 512,224z M 48,224 c 0,114.875 93.125,208 208,208S 464,338.875, 464,224s -93.125-208, -208-208S 48,109.125, 48,224zM 278.627,73.372l 128,128.001c 12.497,12.496 12.497,32.757 0,45.254c -12.497,12.497 -32.758,12.497,-45.255,0L 288,173.255 L 288,352 c 0,17.673 -14.327,32 -32,32c-17.673,0, -32-14.327, -32-32l0-178.745 l -73.372,73.373c -12.497,12.497 -32.759,12.497,-45.256,0 C 99.124,240.379, 96,232.189, 96,224s 3.124-16.379, 9.372-22.627l 128-128.001C 245.869,60.876, 266.131,60.876, 278.627,73.372z"  />
<glyph unicode="&#xe00c;" d="M 256,480C 397.385,480, 512,365.385, 512,224s -114.615-256, -256-256s -256,114.615, -256,256S 114.615,480, 256,480z M 256,16 c 114.875,0 208,93.125 208,208S 370.875,432, 256,432s -208-93.125, -208-208S 141.125,16, 256,16zM 105.372,246.627l 128.001,128c 12.496,12.497 32.757,12.497 45.254,0c 12.497-12.497 12.497-32.758,0-45.255L 205.255,256 L 384,256 c 17.673,0 32-14.327 32-32c0-17.673, -14.327-32, -32-32l-178.745,0 l 73.373-73.372c 12.497-12.497 12.497-32.759,0-45.256 C 272.379,67.124, 264.189,64, 256,64s -16.379,3.124, -22.627,9.372l -128.001,128C 92.876,213.869, 92.876,234.131, 105.372,246.627z"  />
<glyph unicode="&#xe00f;" d="M 384,160L 256,288L 128,160 z"  />
<glyph unicode="&#xe010;" d="M 192.001,96L 320.001,224L 192.001,352 z"  />
<glyph unicode="&#xe011;" d="M 128,288L 256,160L 384,288 z"  />
<glyph unicode="&#xe012;" d="M 320.001,352L 192.001,224L 320.001,95.999 z"  />
<glyph unicode="&#xe00e;" d="M 384,256L 256,384L 128,256 zM 128,160L 256,32L 384,160 z"  />
<glyph unicode="&#xe201;" d="M 160,0L 352,0L 352-32L 160-32zM 160,64L 352,64L 352,32L 160,32zM 160,128L 352,128L 352,96L 160,96zM 256,480L 480,256L 352,256L 352,160L 160,160L 160,256L 32,256 z"  />
<glyph unicode="&#xe202;" d="M0,320L 32,320L 32,128L0,128zM 64,320L 96,320L 96,128L 64,128zM 128,320L 160,320L 160,128L 128,128zM 512,224L 288,448L 288,320L 192,320L 192,128L 288,128L 288,0 z"  />
<glyph unicode="&#xe203;" d="M 160,480L 352,480L 352,448L 160,448zM 160,416L 352,416L 352,384L 160,384zM 160,352L 352,352L 352,320L 160,320zM 256-32L 480,192L 352,192L 352,288L 160,288L 160,192L 32,192 z"  />
<glyph unicode="&#xe204;" d="M 480,320L 512,320L 512,128L 480,128zM 416,320L 448,320L 448,128L 416,128zM 352,320L 384,320L 384,128L 352,128zM0,224L 224,448L 224,320L 320,320L 320,128L 224,128L 224,0 z"  />
<glyph unicode="&#x27;" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32 C-9.286,119.707, 20.52,362.785, 288,355.814z"  />
<glyph unicode="&#x28;" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186 C 491.481,362.785, 521.285,119.707, 380.931-32z"  />
<glyph unicode="&#xe205;" d="M 131.070,480C 74.206,376.984, 64.625,219.848, 288,225.088L 288,352 l 192-192L 288-32L 288,92.186 C 20.52,85.215-9.286,328.293, 131.070,480z"  />
<glyph unicode="&#xe206;" d="M 224,92.186L 224-32 L 32,160l 192,192l0-126.912 C 447.375,219.848, 437.794,376.984, 380.931,480 C 521.286,328.293, 491.481,85.215, 224,92.186z"  />
<glyph unicode="&#x6c;" d="M0,192c0-76.462, 33.524-145.092, 86.675-192l 42.333,48C 89.145,83.182, 64,134.652, 64,192c0,106.038, 85.965,192, 192,192 c 53.021,0, 101.019-21.493, 135.765-56.239L 320,256l 192,0 L 512,448 l-74.985-74.989C 390.688,419.34, 326.693,448, 256,448 C 114.615,448,0,333.385,0,192z"  />
<glyph unicode="&#xe207;" d="M 256,448c-70.692,0-134.688-28.66-181.016-74.989L0,448l0-192 l 192,0 l-71.766,71.761C 154.982,362.507, 202.98,384, 256,384 c 106.034,0, 192-85.962, 192-192c0-57.348-25.146-108.818-65.009-144l 42.333-48C 478.475,46.908, 512,115.538, 512,192 C 512,333.385, 397.385,448, 256,448z"  />
<glyph unicode="&#x7a;" d="M 512,224L 384,320L 384,256L 288,256L 288,352L 352,352L 256,480L 160,352L 224,352L 224,256L 128,256L 128,320L0,224L 128,128L 128,192L 224,192L 224,96L 160,96L 256-32L 352,96L 288,96L 288,192L 384,192L 384,128 z"  />
<glyph unicode="&#x66;" d="M 512,480 L 512,272 L 432,352 L 336,256 L 288,304 L 384,400 L 304,480 ZM 224,144 L 128,48 L 208-32 L 0-32 L 0,176 L 80,96 L 176,192 Z"  />
<glyph unicode="&#x67;" d="M 224,192 L 224-16 L 144,64 L 48-32 L 0,16 L 96,112 L 16,192 ZM 512,432 L 416,336 L 496,256 L 288,256 L 288,464 L 368,384 L 464,480 Z"  />
<glyph unicode="&#x68;" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z"  />
<glyph unicode="&#x69;" d="M 32,192 L 224,192 L 224,0 L 154.87,69.13 L 53.87-31.87 L 0.13,21.87 L 101.13,122.87 ZM 410.87,122.87 L 511.87,21.87 L 458.13-31.87 L 357.13,69.13 L 288,0 L 288,192 L 480,192 ZM 480,256 L 288,256 L 288,448 L 357.13,378.87 L 458.13,479.87 L 511.87,426.13 L 410.87,325.13 ZM 154.87,378.87 L 224,448 L 224,256 L 32,256 L 101.13,325.13 L 0.13,426.13 L 53.87,479.87 Z"  />
<glyph unicode="&#xe208;" d="M 96,416L 416,224L 96,32 z"  />
<glyph unicode="&#xe209;" d="M 64,416L 224,416L 224,32L 64,32zM 288,416L 448,416L 448,32L 288,32z"  />
<glyph unicode="&#xe210;" d="M 64,416L 448,416L 448,32L 64,32z"  />
<glyph unicode="&#x7c;" d="M 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 112,224 Z"  />
<glyph unicode="&#x7b;" d="M 256,48 L 256,208 L 96,48 L 96,400 L 256,240 L 256,400 L 432,224 Z"  />
<glyph unicode="&#x7d;" d="M 64,32 L 64,416 L 128,416 L 128,240 L 288,400 L 288,240 L 448,400 L 448,48 L 288,208 L 288,48 L 128,208 L 128,32 Z"  />
<glyph unicode="&#xe000;" d="M 448,416 L 448,32 L 384,32 L 384,208 L 224,48 L 224,208 L 64,48 L 64,400 L 224,240 L 224,400 L 384,240 L 384,416 Z"  />
<glyph unicode="&#xe00d;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 192,336L 384,224L 192,112 z"  />
<glyph unicode="&#xe211;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 224,320L 224,128L 160,128zM 288,320L 352,320L 352,128L 288,128z"  />
<glyph unicode="&#xe212;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,320L 352,320L 352,128L 160,128z"  />
<glyph unicode="&#xe213;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 352,144L 240,224L 352,304 zM 224,144L 112,224L 224,304 z"  />
<glyph unicode="&#xe214;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 160,304L 272,224L 160,144 zM 288,304L 400,224L 288,144 z"  />
<glyph unicode="&#xe001;" d="M 437.011,405.010C 390.685,451.338, 326.693,480, 256,480C 146.256,480, 52.655,410.936, 16.251,313.906l 59.938-22.477 C 103.491,364.202, 173.692,416, 256,416c 53.020,0, 101.010-21.5, 135.753-56.247L 320,288l 192,0 L 512,480 L 437.011,405.010zM 256,32c-53.020,0-101.013,21.496-135.756,56.244L 192,160L0,160 l0-192 l 74.997,74.997C 121.32-3.334, 185.306-32, 256-32 c 109.745,0, 203.346,69.064, 239.75,166.094l-59.938,22.477C 408.51,83.798, 338.309,32, 256,32z"  />
<glyph unicode="&#xe002;" d="M 512,352L 384,480l0-96 c-65.386,0-115.376-15.604-152.825-47.704c-2.625-2.25-5.142-4.55-7.581-6.887 c 13.76-19.082, 24.358-38.758, 33.886-57.545C 281.641,301.065, 316.507,320, 384,320l0-96 l0,0 l0-96 c-108.223,0-132.563,48.68-163.378,110.311 c-17.153,34.306-34.89,69.78-67.796,97.985C 115.376,368.396, 65.386,384,0,384l0-64 c 108.223,0, 132.563-48.68, 163.378-110.311 c 17.153-34.306, 34.89-69.78, 67.796-97.985C 268.624,79.604, 318.615,64, 384,64l0-96 l 128,128L 384,224L 512,352zM0,128l0-64 c 65.386,0, 115.375,15.604, 152.825,47.704c 2.625,2.249, 5.142,4.55, 7.581,6.888 c-13.76,19.081-24.359,38.758-33.886,57.545C 102.36,146.936, 67.494,128,0,128z"  />
<glyph unicode="&#x53;" d="M 496.131,44.302L 374.855,147.449c-12.537,11.283-25.945,16.463-36.776,15.963C 366.707,196.946, 384,240.451, 384,288 C 384,394.039, 298.039,480, 192,480C 85.962,480,0,394.039,0,288c0-106.039, 85.961-192, 192-192c 47.549,0, 91.054,17.293, 124.588,45.922 c-0.5-10.831, 4.68-24.239, 15.963-36.776l 103.147-121.276c 17.661-19.623, 46.511-21.277, 64.11-3.678S 515.754,26.641, 496.131,44.302z M 192,160c-70.692,0-128,57.308-128,128S 121.308,416, 192,416s 128-57.308, 128-128S 262.693,160, 192,160z"  />
<glyph unicode="&#x64;" d="M 192,384L 160,384L 160,320L 96,320L 96,288L 160,288L 160,224L 192,224L 192,288L 256,288L 256,320L 192,320 zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z"  />
<glyph unicode="&#x65;" d="M 96,320L 256,320L 256,288L 96,288zM 318.771,201.076C 339.674,230.021, 352,265.568, 352,304C 352,401.202, 273.202,480, 176,480S0,401.202,0,304s 78.798-176, 176-176 c 38.432,0, 73.979,12.326, 102.924,33.229L 448-32l 64,64L 318.771,201.076z M 176,176c-70.692,0-128,57.308-128,128S 105.308,432, 176,432 s 128-57.308, 128-128S 246.693,176, 176,176z"  />
<glyph unicode="&#x2b;" d="M 424,312 L 208,96 L 128,96 L 128,176 L 344,392 ZM 451,339 L 371,419 L 399.029,447.029 C 408.363,456.363 423.636,456.363 432.97,447.029 L 479.029,400.97 C 488.363,391.636 488.363,376.363 479.029,367.029 L 451,339 ZM 384,198.209L 384,32 L 64,32 L 64,352 l 176,0 l 64,64L 48,416 C 21.6,416,0,394.4,0,368l0-352 c0-26.4, 21.6-48, 48-48l 352,0 c 26.4,0, 48,21.6, 48,48L 448,255.681 L 384,198.209z"  />
<glyph unicode="&#x2c;" d="M 432,480 C 476.182,480 512,444.183 512,400 C 512,381.99 506.045,365.371 496,352 L 464,320 L 352,432 L 384,464 C 397.371,474.045 413.989,480 432,480 ZM 32,112L0-32l 144,32l 296,296L 328,408L 32,112z M 357.789,298.211l-224-224l-27.578,27.578l 224,224L 357.789,298.211z"  />
<glyph unicode="&#x3b;" d="M 160.061,160C 96.036,160, 117.88,46.86,0,21.363c 32.011-21.324, 125.898-39.027, 192.072,10.668 C 249.298,75.006, 224.085,160, 160.061,160zM 505.965,441.965c-32.009,32.007-110.472-72.027-171.617-107.603c-60.98-37.464-144.033-112.027-96.021-160.037 c 48.010-48.013, 122.571,35.040, 160.036,96.022C 433.938,331.495, 537.973,409.958, 505.965,441.965z"  />
<glyph unicode="&#x5d;" d="M 496,288L 320,288 L 320,464 c0,8.836-7.164,16-16,16l-96,0 c-8.836,0-16-7.164-16-16l0-176 L 16,288 c-8.836,0-16-7.164-16-16l0-96 c0-8.836, 7.164-16, 16-16l 176,0 l0-176 c0-8.836, 7.164-16, 16-16l 96,0 c 8.836,0, 16,7.164, 16,16L 320,160 l 176,0 c 8.836,0, 16,7.164, 16,16l0,96 C 512,280.836, 504.836,288, 496,288z"  />
<glyph unicode="&#x5e;" d="M0,272l0-96 c0-8.836, 7.164-16, 16-16l 480,0 c 8.836,0, 16,7.164, 16,16l0,96 c0,8.836-7.164,16-16,16L 16,288 C 7.164,288,0,280.836,0,272z"  />
<glyph unicode="&#x49;" d="M 507.331,68.67c-0.002,0.002-0.004,0.004-0.006,0.005L 352.003,224l 155.322,155.325c 0.002,0.002, 0.004,0.003, 0.006,0.005 c 1.672,1.673, 2.881,3.627, 3.656,5.708c 2.123,5.688, 0.912,12.341-3.662,16.915L 433.952,475.326c-4.574,4.573-11.225,5.783-16.914,3.66 c-2.080-0.775-4.035-1.984-5.709-3.655c0-0.002-0.002-0.003-0.004-0.005L 256.001,320L 100.677,475.325 c-0.002,0.002-0.003,0.003-0.005,0.005c-1.673,1.671-3.627,2.88-5.707,3.655c-5.69,2.124-12.341,0.913-16.915-3.66L 4.676,401.951 c-4.574-4.574-5.784-11.226-3.661-16.914c 0.776-2.080, 1.985-4.036, 3.656-5.708c 0.002-0.001, 0.003-0.003, 0.005-0.005L 160.001,224 L 4.676,68.674c-0.001-0.002-0.003-0.003-0.004-0.005c-1.671-1.673-2.88-3.627-3.657-5.707c-2.124-5.688-0.913-12.341, 3.661-16.915 l 73.374-73.373c 4.575-4.574, 11.226-5.784, 16.915-3.661c 2.080,0.776, 4.035,1.985, 5.708,3.656c 0.001,0.002, 0.003,0.003, 0.005,0.005 l 155.324,155.325l 155.324-155.325c 0.002-0.001, 0.004-0.003, 0.006-0.004c 1.674-1.672, 3.627-2.881, 5.707-3.657 c 5.689-2.123, 12.342-0.913, 16.914,3.661l 73.373,73.374c 4.574,4.574, 5.785,11.227, 3.662,16.915 C 510.212,65.043, 509.003,66.997, 507.331,68.67z"  />
<glyph unicode="&#x47;" d="M 432,416L 192,176L 80,288L0,208L 192,16L 512,336 z"  />
<glyph unicode="&#x2a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,192l0-128 l-64,0 L 224,192 L 96,192 l0,64 l 128,0 L 224,384 l 64,0 l0-128 l 128,0 l0-64 L 288,192 z"  />
<glyph unicode="&#xe215;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 384,192 L 288,192 L 288,96 L 224,96 L 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 Z"  />
<glyph unicode="&#x4b;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 416,192L 96,192 l0,64 l 320,0 L 416,192 z"  />
<glyph unicode="&#xe216;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 128,256L 384,256L 384,192L 128,192z"  />
<glyph unicode="&#x4a;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 384,306.745L 301.256,224 L 384,141.256L 384,96 l-45.256,0 L 256,178.744L 173.255,96L 128,96 l0,45.256 L 210.745,224L 128,306.745L 128,352 l 45.255,0 L 256,269.255L 338.744,352L 384,352 L 384,306.745 z"  />
<glyph unicode="&#xe217;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 352,173.256 L 352,128 L 306.744,128 L 256,178.744 L 205.255,128 L 160,128 L 160,173.256 L 210.745,224 L 160,274.745 L 160,320 L 205.255,320 L 256,269.255 L 306.744,320 L 352,320 L 352,274.745 L 301.256,224 Z"  />
<glyph unicode="&#xe218;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 208,64L 102,202l 47,49l 59-75 l 185,151l 23-23L 208,64z"  />
<glyph unicode="&#xe219;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 208,64L 102,202L 149,251L 208,176L 393,327L 416,304 z"  />
<glyph unicode="&#xe220;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 224,384l 64,0 l0-64 l-64,0 L 224,384 z M 320,64L 192,64 l0,32 l 32,0 L 224,224 l-32,0 l0,32 l 96,0 l0-160 l 32,0 L 320,64 z"  />
<glyph unicode="&#xe221;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 224,352L 288,352L 288,288L 224,288zM 320,96L 192,96L 192,128L 224,128L 224,224L 192,224L 192,256L 288,256L 288,128L 320,128 z"  />
<glyph unicode="&#x45;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 384,256c0-35.29-28.71-64-64-64l-31.942,0 c-0.020-0.017-0.041-0.038-0.058-0.058L 288,160 l-64,0 l0,32 c0,35.29, 28.71,64, 64,64l 31.942,0 c 0.020,0.017, 0.041,0.038, 0.058,0.057l0,63.885 c-0.017,0.020-0.037,0.041-0.058,0.058L 160,320 L 160,384 l 160,0 c 35.29,0, 64-28.71, 64-64L 384,256 z"  />
<glyph unicode="&#xe222;" d="M 320,384 C 355.29,384 384,355.29 384,320 L 384,256 C 384,220.71 355.29,192 320,192 L 288.059,192 C 288.038,191.982 288.018,191.962 288,191.941 L 288,160 L 224,160 L 224,192 C 224,227.29 252.71,256 288,256 L 319.942,256 C 319.962,256.016 319.983,256.037 320,256.057 L 320,319.942 C 319.983,319.962 319.963,319.983 319.942,320 L 160,320 L 160,384 L 320,384 ZM 224,128L 288,128L 288,64L 224,64zM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z"  />
<glyph unicode="&#xe223;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 288,64l-64,0 l0,64 l 64,0 L 288,64 z M 288,192l-64,0 L 224,384 l 64,0 L 288,192 z"  />
<glyph unicode="&#xe224;" d="M 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 ZM 224,128L 288,128L 288,64L 224,64zM 224,384L 288,384L 288,192L 224,192z"  />
<glyph unicode="&#x48;" d="M 504.978,22.12L 286.441,457.676C 278.070,472.559, 267.035,480, 256,480s-22.070-7.441-30.442-22.324L 7.021,22.12 C-9.722-7.646, 4.521-32, 38.673-32l 434.654,0 C 507.478-32, 521.723-7.646, 504.978,22.12z M 256,32c-17.673,0-32,14.327-32,32 c0,17.674, 14.327,32, 32,32c 17.674,0, 32-14.326, 32-32C 288,46.327, 273.674,32, 256,32z M 278,128l-44,0 l-10,128 c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32L 278,128z"  />
<glyph unicode="&#xe225;" d="M 256,400.638 L 83.583,32 L 428.417,32 L 256,400.638 Z M 256,480 L 256,480 C 267.035,480 278.070,472.559 286.442,457.676 L 504.978,22.12 C 521.723-7.646 507.478-32 473.327-32 L 38.673-32 C 4.521-32 -9.722-7.646 7.021,22.12 L 225.558,457.676 C 233.93,472.559 244.965,480 256,480 ZM 224,96A32,32 3060 1 0 288,96A32,32 3060 1 0 224,96zM 256,288 C 273.673,288 288,273.673 288,256 L 278,160 L 234,160 L 224,256 C 224,273.673 238.327,288 256,288 Z"  />
<glyph unicode="&#x3d;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z"  />
<glyph unicode="&#x3e;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 z M 384,368L 224,208l-96,96l-64-64l 160-160l 224,224L 384,368z"  />
<glyph unicode="&#x3f;" d="M0,480l0-512 l 512,0 L 512,480 L0,480 z M 480,0L 32,0 L 32,448 l 448,0 L 480,0 zM 128,352L 384,352L 384,96L 128,96z"  />
<glyph unicode="&#xe226;" d="M0,480L 512,480L 512-32L0-32z"  />
<glyph unicode="&#xe227;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z"  />
<glyph unicode="&#xe228;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 160,224A96,96 13140 1 0 352,224A96,96 13140 1 0 160,224z"  />
<glyph unicode="&#xe229;" d="M0,224A256,256 5220 1 0 512,224A256,256 5220 1 0 0,224z"  />
<glyph unicode="&#xe230;" d="M 224,82.745L 121.373,201.372L 150.627,230.627L 224,173.255L 361.372,294.627L 390.628,265.373 zM 415.886,416c 0.039-0.033, 0.081-0.075, 0.114-0.115l0-383.771 c-0.033-0.039-0.075-0.081-0.114-0.114L 96.114,32 c-0.040,0.033-0.081,0.075-0.114,0.114L 96,415.886 c 0.033,0.040, 0.075,0.081, 0.115,0.114L 32,416 l0-384 c0-35.2, 28.8-64, 64-64l 320,0 c 35.2,0, 64,28.8, 64,64L 480,416 L 415.886,416 z M 320,416L 320,448 c0,17.673-14.327,32-32,32l-64,0 c-17.673,0-32-14.327-32-32l0-32 l-64,0 l0-64 l 256,0 L 384,416 L 320,416 z M 288,416l-64,0 L 224,448 l 64,0 L 288,416 z"  />
<glyph unicode="&#x58;" d="M0,480L 224,480L 224,256L0,256zM 288,480L 512,480L 512,256L 288,256zM0,192L 224,192L 224-32L0-32zM 288,192L 512,192L 512-32L 288-32z"  />
<glyph unicode="&#x59;" d="M0,480L 128,480L 128,352L0,352zM 192,480L 320,480L 320,352L 192,352zM 384,480L 512,480L 512,352L 384,352zM0,288L 128,288L 128,160L0,160zM 192,288L 320,288L 320,160L 192,160zM 384,288L 512,288L 512,160L 384,160zM0,96L 128,96L 128-32L0-32zM 192,96L 320,96L 320-32L 192-32zM 384,96L 512,96L 512-32L 384-32z"  />
<glyph unicode="&#x5a;" d="M 192,448L 320,448L 320,320L 192,320zM 192,288L 320,288L 320,160L 192,160zM 192,128L 320,128L 320,0L 192,0z"  />
<glyph unicode="&#x31;" d="M0,480L 128,480L 128,352L0,352zM 192,480L 512,480L 512,352L 192,352zM0,288L 128,288L 128,160L0,160zM 192,288L 512,288L 512,160L 192,160zM0,96L 128,96L 128-32L0-32zM 192,96L 512,96L 512-32L 192-32z"  />
<glyph unicode="&#xe231;" d="M0,480L 128,480L 128,352L0,352zM 192,448L 512,448L 512,384L 192,384zM0,288L 128,288L 128,160L0,160zM 192,256L 512,256L 512,192L 192,192zM0,96L 128,96L 128-32L0-32zM 192,64L 512,64L 512,0L 192,0z"  />
<glyph unicode="&#xe232;" d="M 448,96L 64,96 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,96, 448,96zM 448,288L 64,288 c-35.2,0-64-28.8-64-64s 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,288, 448,288zM 64,352l 384,0 c 35.2,0, 64,28.8, 64,64S 483.2,480, 448,480L 64,480 C 28.8,480,0,451.2,0,416S 28.8,352, 64,352z"  />
<glyph unicode="&#x2d;" d="M 416,0L 512,256L 96,256L0,0 zM 64,288 L 0,0 L 0,416 L 144,416 L 208,352 L 416,352 L 416,288 Z"  />
<glyph unicode="&#x2e;" d="M 224,416L 288,352L 512,352L 512,0L0,0L0,416 z"  />
<glyph unicode="&#xe234;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128l-64,0 l0-64 l-64,0 l0,64 l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 L 352,128 z"  />
<glyph unicode="&#xe235;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 352,128L 160,128 l0,64 l 192,0 L 352,128 z"  />
<glyph unicode="&#xe236;" d="M 210.745,384l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 l0-288 L 32,32 L 32,384 L 210.745,384  M 224,416L0,416 l0-416 l 512,0 L 512,352 L 288,352 L 224,416L 224,416z"  />
<glyph unicode="&#xe237;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 288,256L 224,256L 224,192L 160,192L 160,128L 224,128L 224,64L 288,64L 288,128L 352,128L 352,192L 288,192 z"  />
<glyph unicode="&#xe238;" d="M 288,352l-64,64L0,416 l0-416 l 512,0 L 512,352 L 288,352 z M 480,32L 32,32 L 32,384 l 178.745,0 l 54.628-54.627l 9.372-9.373L 288,320 l 192,0 L 480,32 zM 160,192L 352,192L 352,128L 160,128z"  />
<glyph unicode="&#xe016;" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 z"  />
<glyph unicode="&#xe239;" d="M 352,480L 32,480 l0-512 l 448,0 L 480,352 L 352,480z M 448,0L 64,0 L 64,448 l 288,0 l0-96 l 96,0 L 448,0 zM 128,96L 384,96L 384,64L 128,64zM 128,160L 384,160L 384,128L 128,128zM 128,224L 384,224L 384,192L 128,192z"  />
<glyph unicode="&#x29;" d="M 448,96L 448,160L 384,160L 384,96L 320,96L 320,32L 384,32L 384-32L 448-32L 448,32L 512,32L 512,96 zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z"  />
<glyph unicode="&#xe017;" d="M 320,96L 512,96L 512,32L 320,32zM 32,448L 320,448L 320,352L 416,352L 416,192L 448,192L 448,352L 320,480L0,480L0-32L 288-32L 288,0L 32,0 z"  />
<glyph unicode="&#xe240;" d="M 352-32L 256,80L 296.75,120.75L 352,65.125L 480,192L 512,160 zM 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 z"  />
<glyph unicode="&#xe241;" d="M 32,448l 288,0 l0-96 l 96,0 l0-160 l 32,0 L 448,352 L 320,480L0,480 l0-512 l 288,0 l0,32 L 32,0 L 32,448 zM 461.256,64L 512,114.744L 512,160L 466.744,160L 416,109.256L 365.256,160L 320,160L 320,114.744L 370.744,64L 320,13.256L 320-32L 365.256-32L 416,18.744L 466.744-32L 512-32L 512,13.256 z"  />
<glyph unicode="&#xe018;" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384 L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z"  />
<glyph unicode="&#xe242;" d="M 440,352l-24,0 l0,24 c0,22.056-17.944,40-40,40l-24,0 L 352,440 c0,22.056-17.943,40-40,40l-240,0 c-22.056,0-40-17.944-40-40l0-304 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.057, 17.944-40, 40-40l 24,0 l0-24 c0-22.056, 17.944-40, 40-40l 240,0 c 22.056,0, 40,17.944, 40,40L 480,312 C 480,334.056, 462.056,352, 440,352z M 72.001,128c-4.4,0-8,3.6-8,8L 64.001,440 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 136,416 c-22.056,0-40-17.944-40-40l0-248 L 72.001,128 z M 136,64c-4.4,0-8,3.6-8,8L 128,376 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8l0-24 L 200,352 c-22.056,0-40-17.944-40-40l0-248 L 136,64 z M 448,8c0-4.4-3.6-8-8-8L 200,0 c-4.4,0-8,3.6-8,8L 192,312 c0,4.4, 3.6,8, 8,8l 240,0 c 4.4,0, 8-3.6, 8-8L 448,8 z"  />
<glyph unicode="&#xe243;" d="M 488,128l-50.411,0 L 320,323.98L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-100.019 L 74.412,128L 24,128 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24L 128,124.020 L 245.588,320l 20.823,0 L 384,124.020L 384,24 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,117.2, 501.2,128, 488,128z"  />
<glyph unicode="&#xe244;" d="M 488,96l-8,0 L 480,200 c0,30.878-25.121,56-56,56L 288,256 l0,64 l 8,0 c 13.2,0, 24,10.8, 24,24L 320,424 c0,13.2-10.8,24-24,24l-80,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 8,0 l0-64 L 88,256 c-30.878,0-56-25.122-56-56l0-104 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 c0,13.2-10.8,24-24,24l-8,0 l0,96 l 128,0 l0-96 l-8,0 c-13.2,0-24-10.8-24-24l0-80 c0-13.2, 10.8-24, 24-24l 80,0 c 13.2,0, 24,10.8, 24,24l0,80 C 512,85.2, 501.2,96, 488,96z M 96,0L 32,0 l0,64 l 64,0 L 96,0 z M 288,0l-64,0 l0,64 l 64,0 L 288,0 z M 224,352L 224,416 l 64,0 l0-64 L 224,352 z M 480,0l-64,0 l0,64 l 64,0 L 480,0 z"  />
<glyph unicode="&#xe246;" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z"  />
<glyph unicode="&#xe247;" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z"  />
<glyph unicode="&#xe248;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z"  />
<glyph unicode="&#xe249;" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z"  />
<glyph unicode="&#xe01c;" d="M 512,64L 512,448 L0,448 l0-384 l 224,0 l0-32 l-96,0 l0-32 l 256,0 l0,32 l-96,0 l0,32 L 512,64 z M 64,384l 384,0 l0-256 L 64,128 L 64,384 z"  />
<glyph unicode="&#xe01d;" d="M 400,480L 80,480 C 53.6,480, 32,458.4, 32,432l0-416 c0-26.4, 21.6-48, 48-48l 320,0 c 26.4,0, 48,21.6, 48,48L 448,432 C 448,458.4, 426.4,480, 400,480z M 240-16 c-8.836,0-16,7.163-16,16s 7.164,16, 16,16s 16-7.163, 16-16S 248.836-16, 240-16z M 384,32L 96,32 L 96,416 l 288,0 L 384,32 z"  />
<glyph unicode="&#xe01e;" d="M 384,480L 96,480 C 78.4,480, 64,465.601, 64,448l0-448 c0-17.6, 14.399-32, 32-32l 288,0 c 17.6,0, 32,14.4, 32,32L 416,448 C 416,465.601, 401.6,480, 384,480z M 240-8.891c-13.746,0-24.891,11.145-24.891,24.891s 11.145,24.891, 24.891,24.891s 24.891-11.145, 24.891-24.891 S 253.746-8.891, 240-8.891z M 384,64L 96,64 L 96,416 l 288,0 L 384,64 z"  />
<glyph unicode="&#x51;" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 256,64L 96,192l 96,0 l0,96 l 128,0 l0-96 l 96,0 L 256,64z M 77.255,384l 32,32l 293.489,0 l 32-32L 77.255,384 z"  />
<glyph unicode="&#x52;" d="M 416,448L 96,448 L0,352l0-336 c0-8.837, 7.163-16, 16-16l 480,0 c 8.836,0, 16,7.163, 16,16L 512,352 L 416,448z M 320,160l0-96 L 192,64 l0,96 L 96,160 l 160,128 l 160-128L 320,160 z M 77.255,384l 32,32l 293.488,0 l 32-32L 77.255,384 z"  />
<glyph unicode="&#xe021;" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 384,288L 288,288L 288,448L 224,448L 224,288L 128,288L 256,96 z"  />
<glyph unicode="&#xe022;" d="M 448,128L 448,64L 64,64L 64,128L0,128L0,0L 512,0L 512,128 zM 128,256L 224,256L 224,96L 288,96L 288,256L 384,256L 256,448 z"  />
<glyph unicode="&#x21;" d="M 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 ZM 448,192 L 448,0 L 64,0 L 64,192 L 256,336 Z"  />
<glyph unicode="&#xe250;" d="M 448,192 L 448,0 L 64,0 L 64,192 L 128,192 L 128,64 L 384,64 L 384,192 ZM 512,184.777 L 256,383.491 L 0,184.777 L 0,265.796 L 256,464.509 L 512,265.795 Z"  />
<glyph unicode="&#xe024;" d="M 352,192 L 416,256 L 416,0 L 32,0 L 32,384 L 288,384 L 224,320 L 96,320 L 96,64 L 352,64 ZM 480,448 L 480,272 L 414.628,337.372 L 237.255,160 L 192,160 L 192,205.256 L 369.372,382.628 L 304,448 Z"  />
<glyph unicode="&#xe251;" d="M 96,448l0-384 l 384,0 L 480,448 L 96,448 z M 448,96L 128,96 L 128,416 l 320,0 L 448,96 zM 64,32L 64,352L 32,384L 32,0L 416,0L 384,32 zM 214.627,137.373L 310.627,233.373L 384,160L 384,352L 192,352L 265.373,278.627L 169.373,182.627 z"  />
<glyph unicode="&#xe252;" d="M 476.698,442.679l-2.014,2.021c-47.074,47.067-124.097,47.067-171.163,0L 194.468,335.632 c-47.067-47.066-47.067-124.088,0-171.155l 2.013-2.013c 3.916-3.924, 8.073-7.462, 12.368-10.729l 39.924,39.925 c-4.651,2.747-9.063,6.036-13.058,10.030l-2.021,2.021c-25.557,25.549-25.557,67.136,0,92.695L 342.758,405.462 c 25.558,25.559, 67.137,25.559, 92.693,0l 2.021-2.012c 25.55-25.558, 25.55-67.146,0-92.695l-49.343-49.343 c 8.566-21.154, 12.624-43.7, 12.269-66.193l 76.302,76.302C 523.767,318.589, 523.767,395.61, 476.698,442.679zM 315.521,285.533c-3.916,3.916-8.073,7.461-12.368,10.72l-39.924-39.916c 4.652-2.748, 9.063-6.037, 13.058-10.031l 2.021-2.020 c 25.558-25.558, 25.558-67.136,0-92.694L 169.243,42.525c-25.559-25.551-67.138-25.551-92.694,0l-2.021,2.021 c-25.549,25.56-25.549,67.138,0,92.694l 49.344,49.343c-8.567,21.153-12.623,43.701-12.269,66.193l-76.301-76.299 c-47.068-47.066-47.068-124.089,0-171.162l 2.013-2.016c 47.076-47.064, 124.096-47.064, 171.164,0l 109.055,109.059 c 47.067,47.066, 47.067,124.097,0,171.163L 315.521,285.533z"  />
<glyph unicode="&#x2f;" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 480,64l-32,0 l-96,144l-64-48L 160,320L 64,64L 32,64 L 32,384 l 448,0 L 480,64 zM 352,304A48,48 13140 1 0 448,304A48,48 13140 1 0 352,304z"  />
<glyph unicode="&#x30;" d="M 64,352l0-320 l 448,0 L 512,352 L 64,352 z M 480,85.333L 416,192l-72.533-60.444L 288,224L 96,64L 96,320 l 384,0 L 480,85.333 zM 128,240A48,48 8100 1 0 224,240A48,48 8100 1 0 128,240zM 448,416L0,416L0,96L 32,96L 32,384L 448,384 z"  />
<glyph unicode="&#xe014;" d="M 257.54,416C 92.994,416,0,306.648,0,226.653c0-121.887, 109.354-190.477, 200.308-212.956 C 291.27-8.791, 325.48,32.462, 324.022,80c-1.771,57.75, 27.073,58.496, 47.52,56.459C 391.973,134.408, 512,106.695, 512,198.674 C 512,312.5, 422.072,416, 257.54,416z M 224,384c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,384, 224,384z M 80,191.754c-8.973,0-16.246,7.273-16.246,16.246S 71.027,224.246, 80,224.246S 96.246,216.973, 96.246,208S 88.973,191.754, 80,191.754z M 128,256c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 145.673,256, 128,256z M 256,128c-35.346,0-64,21.49-64,48 s 28.654,48, 64,48c 35.347,0, 64-21.49, 64-48S 291.347,128, 256,128z M 368,256c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48 S 394.51,256, 368,256z"  />
<glyph unicode="&#x55;" d="M 152,176c0-57.438, 46.562-104, 104-104s 104,46.562, 104,104s-46.562,104-104,104S 152,233.438, 152,176z M 480,352L 368,352 c-8,32-16,64-48,64L 192,416 c-32,0-40-32-48-64L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.6, 14.4-32, 32-32l 448,0 c 17.6,0, 32,14.4, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 256,34c-78.425,0-142,63.574-142,142c0,78.425, 63.575,142, 142,142c 78.426,0, 142-63.575, 142-142 C 398,97.574, 334.427,34, 256,34z M 480,256l-64,0 l0,32 l 64,0 L 480,256 z"  />
<glyph unicode="&#xe015;" d="M 489.42,351.874c-5.294,0-10.729-1.861-15.718-5.383L 384,283.184L 384,336 c0,26.4-21.6,48-48,48L 48,384 c-26.4,0-48-21.6-48-48l0-224 c0-26.4, 21.6-48, 48-48l 288,0 c 26.4,0, 48,21.6, 48,48l0,52.815 l 89.701-63.307c 4.989-3.521, 10.424-5.382, 15.717-5.383 c 0.001,0, 0.001,0, 0.003,0c 7.044,0, 13.477,3.248, 17.646,8.911c 3.228,4.385, 4.934,10.027, 4.934,16.318L 512.001,326.645 C 512,343.208, 500.641,351.874, 489.42,351.874z"  />
<glyph unicode="&#x56;" d="M 490.594,399.946C 418.778,410.271, 339.428,416, 256.001,416c-83.43,0-162.778-5.729-234.597-16.054 C 7.639,346.083,0,286.571,0,224c0-62.57, 7.639-122.083, 21.404-175.945C 93.223,37.729, 172.572,32, 256.001,32 c 83.427,0, 162.776,5.729, 234.593,16.055C 504.36,101.917, 512,161.43, 512,224C 512,286.571, 504.36,346.083, 490.594,399.946z M 192.001,128L 192.001,320 l 160-96L 192.001,128z"  />
<glyph unicode="&#x57;" d="M 480,480 L 512,480 L 512,112 C 512,67.817 461.855,32 400,32 C 338.145,32 288,67.817 288,112 C 288,156.184 338.145,192 400,192 C 431.342,192 459.671,182.8 480,167.98 L 480,352 L 224,295.111 L 224,48 C 224,3.817 173.856-32 112-32 C 50.144-32 0,3.817 0,48 C 0,92.184 50.144,128 112,128 C 143.342,128 171.671,118.8 192,103.98 L 192,416 L 480,480 Z"  />
<glyph unicode="&#x22;" d="M 311.413,128.632c-11.055,1.759-11.307,32.157-11.307,32.157s 32.484,32.158, 39.564,75.401 c 19.045,0, 30.809,45.973, 11.761,62.148C 352.226,315.365, 375.911,432, 256,432c-119.911,0-96.225-116.635-95.432-133.662 c-19.047-16.175-7.285-62.148, 11.761-62.148c 7.079-43.243, 39.564-75.401, 39.564-75.401s-0.252-30.398-11.307-32.157 C 164.976,122.966, 32,64.315, 32,0l 224,0 l 224,0 C 480,64.315, 347.024,122.966, 311.413,128.632z"  />
<glyph unicode="&#xe01f;" d="M 367.497,77.313c-9.476,1.494-9.692,27.327-9.692,27.327s 27.844,27.328, 33.912,64.076 c 16.326,0, 26.407,39.069, 10.082,52.814c 0.681,14.47, 20.984,113.588-81.799,113.588c-102.782,0-82.479-99.118-81.799-113.588 c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076s-0.216-25.833-9.692-27.327 C 241.979,72.497, 128,22.655, 128-32l 192,0 l 192,0 C 512,22.655, 398.021,72.497, 367.497,77.313zM 172.027,68.595c 22.047,13.575, 48.813,26.154, 70.769,33.712c-7.876,11.216-16.647,26.468-22.165,44.531 c-7.703,6.283-13.972,15.266-17.999,26.301c-4.033,11.052-5.561,23.426-4.304,34.842c 0.902,8.196, 3.239,15.833, 6.825,22.544 c-2.175,23.293-3.707,69.017, 26.224,102.366c 11.607,12.933, 26.278,22.23, 43.85,27.843C 272.090,393.114, 255.647,431.119, 192,431.119 c-102.782,0-82.479-99.118-81.799-113.588c-16.327-13.745-6.244-52.814, 10.081-52.814c 6.067-36.748, 33.913-64.076, 33.913-64.076 s-0.216-25.833-9.692-27.327C 113.979,168.497,0,118.655,0,64l 164.798,0 C 167.153,65.537, 169.551,67.070, 172.027,68.595z"  />
<glyph unicode="&#x6d;" d="M 448,384L 64,384 c-35.2,0-64-28.8-64-64l0-224 c0-35.2, 28.8-64, 64-64l 384,0 c 35.2,0, 64,28.8, 64,64L 512,320 C 512,355.2, 483.2,384, 448,384z M 64,96c0,70.692, 35.817,128, 80,128c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48s-21.49-48-48-48 c 44.183,0, 80-57.308, 80-128L 64,96 z M 448,96L 288,96 l0,32 l 160,0 L 448,96 z M 448,192L 288,192 l0,32 l 160,0 L 448,192 z M 448,288L 288,288 l0,32 l 160,0 L 448,288 z"  />
<glyph unicode="&#x70;" d="M 32,256L 80,256L 80,176L 32,176zM 32,352L 80,352L 80,272L 32,272zM 32,160L 80,160L 80,80L 32,80zM 32,64L 80,64L 80-16L 32-16zM 96,480l0-512 l 384,0 L 480,480 L 96,480 z M 288,351.835c 35.255,0, 63.835-28.58, 63.835-63.835s-28.58-63.835-63.835-63.835 c-35.255,0-63.835,28.58-63.835,63.835S 252.745,351.835, 288,351.835z M 384,96L 192,96 l0,32 c0,35.347, 28.654,64, 64,64l0,0 l 64,0  c 35.348,0, 64-28.653, 64-64L 384,96 zM 32,448L 80,448L 80,368L 32,368z"  />
<glyph unicode="&#x26;" d="M 128,160c0,0, 29.412,96, 192,96l0-96 l 192,128L 320,416l0-96 C 192,320, 128,240.164, 128,160zM 352,96L 64,96 L 64,288 l 62.938,0 c 5.047,5.959, 10.456,11.667, 16.244,17.090c 21.982,20.595, 48.281,36.326, 78.057,46.91L0,352 l0-320 l 416,0 L 416,166.312 l-64-42.667L 352,96 z"  />
<glyph unicode="&#xe257;" d="M 192,224 L 32,224 L 32,288 L 192,288 L 192,352 L 288,256 L 192,160 ZM 512,480 L 512,64 L 320-32 L 320,64 L 128,64 L 128,192 L 160,192 L 160,96 L 320,96 L 320,384 L 448,448 L 160,448 L 160,320 L 128,320 L 128,480 Z"  />
<glyph unicode="&#xe258;" d="M 384,160 L 384,224 L 224,224 L 224,288 L 384,288 L 384,352 L 480,256 ZM 352,192 L 352,64 L 192,64 L 192-32 L 0,64 L 0,480 L 352,480 L 352,320 L 320,320 L 320,448 L 64,448 L 192,384 L 192,96 L 320,96 L 320,192 Z"  />
<glyph unicode="&#x24;" d="M 464,448 C 490.4,448 512,426.4 512,400 L 512,144 C 512,117.6 490.4,96 464,96 L 281.6,96 L 128-32 L 128,96 L 48,96 C 21.6,96 0,117.6 0,144 L 0,400 C 0,426.4 21.6,448 48,448 L 464,448 Z"  />
<glyph unicode="&#x25;" d="M 400,480 C 426.4,480 448,458.4 448,432 L 448,272 C 448,245.6 426.4,224 400,224 L 217.6,224 L 64,96 L 64,224 L 48,224 C 21.6,224 0,245.6 0,272 L 0,432 C 0,458.4 21.6,480 48,480 L 400,480 ZM 528,384 C 554.4,384 576,362.4 576,336 L 576,144 C 576,117.6 554.4,96 528,96 L 448,96 L 448-32 L 294.4,96 L 192,96 L 192,160 L 317.57,160 L 416,72.643 L 416,160 L 512,160 L 512,320 L 480,320 L 480,384 L 528,384 Z" horiz-adv-x="576"  />
<glyph unicode="&#x60;" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z"  />
<glyph unicode="&#x61;" d="M 400,160 C 338.144,160 288,210.145 288,272 C 288,333.856 338.144,384 400,384 C 461.856,384 512,333.856 512,272 L 512.5,256 C 512.5,132.288 412.212,32 288.5,32 L 288.5,96 C 331.237,96 371.417,112.643 401.637,142.863 C 407.454,148.681 412.763,154.871 417.552,161.373 C 411.833,160.473 405.972,160 400,160 ZM 112,160 C 50.145,160 0,210.145 0,272 C 0,333.856 50.145,384 112,384 C 173.855,384 224,333.856 224,272 L 224.5,256 C 224.5,132.288 124.212,32 0.5,32 L 0.5,96 C 43.237,96 83.417,112.643 113.637,142.863 C 119.455,148.681 124.764,154.871 129.553,161.373 C 123.833,160.473 117.973,160 112,160 Z"  />
<glyph unicode="&#xe259;" d="M 464,480L 48,480 C 21.6,480,0,458.4,0,432l0-288 c0-26.4, 21.6-48, 48-48l 80,0 l0-128 l 153.6,128L 464,96 c 26.4,0, 48,21.6, 48,48L 512,432 C 512,458.4, 490.4,480, 464,480z M 224,344.615c-29.821-6.85-55.189-28.007-70.488-56.941C 155.646,287.889, 157.81,288, 160,288 c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64c0,43.612, 15.198,84.729, 42.795,115.775 C 162.042,365.927, 191.74,382.388, 224,387.379L 224,344.615 z M 416,344.615c-29.82-6.85-55.189-28.007-70.488-56.941 C 347.646,287.889, 349.81,288, 352,288c 35.346,0, 64-28.654, 64-64c0-35.346-28.654-64-64-64s-64,28.654-64,64 c0,43.612, 15.198,84.729, 42.795,115.775C 354.041,365.927, 383.74,382.388, 416,387.379L 416,344.615 z"  />
<glyph unicode="&#xe260;" d="M 457.153,376.352 C 510.42,346.068 512,313.643 512.002,291.003 L 512.002,287.606 C 512.002,282.424 507.533,278.188 502.074,278.188 L 381.928,278.188 C 376.469,278.188 372,282.424 372,287.606 L 372,299.059 C 372,327.664 344.645,332.234 329.551,334.664 C 314.455,337.090 276.934,339.441 256.071,339.441 C 256.045,339.441 256.025,339.441 256.005,339.441 C 255.976,339.441 255.956,339.441 255.928,339.441 C 235.066,339.441 197.541,337.091 182.448,334.664 C 167.355,332.237 139.999,327.666 139.999,299.059 L 139.999,287.606 C 139.999,282.424 135.53,278.188 130.073,278.188 L 9.927,278.188 C 4.47,278.188 0.001,282.424 0.001,287.606 L 0.001,291.003 C 0.001,313.643 1.581,346.068 54.848,376.352 C 118.198,412.362 208.777,416 255.928,416 C 255.956,415.975 255.976,415.945 256.005,415.922 C 256.023,415.944 256.044,415.976 256.071,416 C 303.223,416 393.803,412.366 457.153,376.352 ZM 256.001,288c-28.374,0-87.443-2.126-117.456-38.519C 108.523,213.098, 33.455,32, 100.398,32c 66.956,0, 125.458,0, 155.606,0 c 30.137,0, 88.648,0, 155.595,0c 66.945,0-8.125,181.098-38.137,217.481C 343.444,285.874, 284.362,288, 256.001,288z M 256,96 c-35.346,0-64,28.653-64,64s 28.654,64, 64,64c 35.347,0, 64-28.653, 64-64S 291.347,96, 256,96z"  />
<glyph unicode="&#xe261;" d="M 352,160c-32-32-32-64-64-64s-64,32-96,64s-64,64-64,96s 32,32, 64,64S 128,448, 96,448S0,352,0,352c0-64, 65.75-193.75, 128-256 s 192-128, 256-128c0,0, 96,64, 96,96S 384,192, 352,160z"  />
<glyph unicode="&#x4d;" d="M 325.608,214.818L 512,86.264L 512,382.211 zM0,382.211L0,86.264L 186.388,214.836 zM 256,152.309L 211.499,192.264L0,64L 512,64L 300.495,192.264 zM 496.64,384L 15.36,384L 256,203.074 z"  />
<glyph unicode="&#x4e;" d="M 325.607,118.95L 512-9.605L 512,286.343 zM0,286.343L0-9.605L 186.388,118.968 zM 256,56.44L 211.499,96.395L0-31.868L 512-31.868L 300.494,96.395 zM 15.359,288L 496.64,288L 255.999,468.926 z"  />
<glyph unicode="&#x4f;" d="M 352,384L 160,384 L0,192l0-80 l0-48 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32l0,48 l0,80 L 352,384z M 384,192l-64-64L 192,128 l-64,64L 41.655,192 l 133.333,160l 162.024,0 l 133.333-160L 384,192 z"  />
<glyph unicode="&#x50;" d="M 352,384L 160,384 L0,192l0-128 c0-17.673, 14.327-32, 32-32l 448,0 c 17.674,0, 32,14.327, 32,32L 512,192 L 352,384z M 320,128L 192,128 l-32,32l 192,0  L 320,128z M 41.655,192l 133.333,160l 162.024,0 l 133.333-160L 41.655,192 zM 142.482,288L 369.518,288L 342.851,320L 169.148,320 zM 89.149,224L 422.852,224L 396.185,256L 115.815,256 z"  />
<glyph unicode="&#xe020;" d="M 480,352L 352,352 L 352,384 c0,17.6-14.4,32-32,32L 192,416 c-17.602,0-32-14.4-32-32l0-32 L 32,352 c-17.6,0-32-14.4-32-32l0-288 c0-17.601, 14.398-32, 32-32l 448,0 c 17.6,0, 32,14.399, 32,32L 512,320 C 512,337.6, 497.6,352, 480,352z M 192,383.942 c 0.017,0.020, 0.037,0.041, 0.057,0.058l 127.886,0 c 0.021-0.017, 0.041-0.038, 0.059-0.058L 320.002,352 L 192,352 L 192,383.942 z M 480,224l-64,0 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.802,0-16,7.199-16,16l0,48 L 160,224 l0-48 c0-8.801-7.2-16-16-16l-32,0 c-8.801,0-16,7.199-16,16l0,48 L 32,224 l0,32 l 448,0 L 480,224 z"  />
<glyph unicode="&#xe262;" d="M 272,480L0,208l 240-240l 272,272L 512,480 L 272,480 z M 400,320c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.51,320, 400,320z"  />
<glyph unicode="&#xe263;" d="M 448,416 L 298.51,416 L 90.51,208 L 240,58.51 L 448,266.51 L 448,416 Z M 512,480 L 512,480 L 512,240 L 240-32 L 0,208 L 272,480 L 512,480 ZM 320,336A48,48 3060 1 0 416,336A48,48 3060 1 0 320,336z"  />
<glyph unicode="&#xe264;" d="M 496,448L 384,448 c-26.4,0-63.273-15.273-81.941-33.941L 113.941,225.941c-18.667-18.667-18.667-49.214,0-67.882l 140.118-140.117 c 18.667-18.668, 49.214-18.668, 67.882,0l 188.117,188.117C 528.727,224.727, 544,261.6, 544,288L 544,400 C 544,426.4, 522.4,448, 496,448z M 432,288 c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 458.51,288, 432,288zM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 Z" horiz-adv-x="544"  />
<glyph unicode="&#xe265;" d="M 480,384 L 384,384 C 381.158,384 373.652,382.643 364.621,378.902 C 355.59,375.161 349.322,370.813 347.312,368.804 L 170.509,192 L 288,74.51 L 464.803,251.314 C 466.813,253.323 471.161,259.591 474.901,268.622 C 478.643,277.652 480,285.158 480,288 L 480,384 Z M 496,448 L 496,448 C 522.4,448 544,426.4 544,400 L 544,288 C 544,261.6 528.727,224.727 510.058,206.059 L 321.941,17.942 C 312.607,8.608 300.304,3.941 288,3.941 C 275.696,3.941 263.392,8.608 254.059,17.942 L 113.941,158.059 C 95.274,176.727 95.274,207.274 113.941,225.941 L 302.059,414.059 C 320.727,432.727 357.6,448 384,448 L 496,448 ZM 43.313,180.687 L 214.502,9.498 C 196.37-0.082 173.271,2.729 158.059,17.942 L 17.941,158.059 C -0.726,176.727 -0.726,207.274 17.941,225.941 L 206.059,414.059 C 224.727,432.727 261.6,448 288,448 L 43.313,203.314 C 37.091,197.091 37.091,186.91 43.313,180.687 ZM 384,320A32,32 3060 1 0 448,320A32,32 3060 1 0 384,320z" horiz-adv-x="544"  />
<glyph unicode="&#x38;" d="M 466.895,174.875c-26.863,46.527-10.708,106.152, 36.076,133.244l-50.313,87.146c-14.375-8.427-31.088-13.259-48.923-13.259 c-53.768,0-97.354,43.873-97.354,97.995L 205.752,480.001 c 0.133-16.705-4.037-33.641-12.979-49.126 c-26.862-46.528-86.578-62.351-133.431-35.379L 9.030,308.35c 14.485-8.236, 27.025-20.294, 35.943-35.739 c 26.819-46.454, 10.756-105.96-35.854-133.112l 50.313-87.146c 14.325,8.348, 30.958,13.127, 48.7,13.127 c 53.598,0, 97.072-43.596, 97.35-97.479l 100.627,0 c-0.043,16.537, 4.136,33.285, 12.983,48.609 c 26.818,46.453, 86.388,62.297, 133.207,35.506l 50.313,87.145C 488.222,147.494, 475.766,159.51, 466.895,174.875z M 256,120.334 c-57.254,0-103.668,46.412-103.668,103.667c0,57.254, 46.413,103.667, 103.668,103.667c 57.254,0, 103.666-46.413, 103.666-103.667 C 359.665,166.746, 313.254,120.334, 256,120.334z"  />
<glyph unicode="&#x37;" d="M 181.861,118.974l 20.649,28.908l-22.627,22.628l-28.909-20.648c-5.361,2.997-11.102,5.387-17.133,7.096L 128,192L 96,192 l-5.84-35.043c-6.031-1.709-11.772-4.099-17.133-7.096L 44.118,170.51L 21.49,147.882l 20.649-28.908 c-2.997-5.36-5.387-11.103-7.096-17.133L0,96l0-32 l 35.043-5.841c 1.709-6.030, 4.099-11.772, 7.096-17.133L 21.49,12.118l 22.627-22.628 l 28.909,20.648c 5.361-2.997, 11.102-5.387, 17.133-7.096L 96-32l 32,0 l 5.84,35.043c 6.031,1.709, 11.772,4.099, 17.133,7.096l 28.909-20.648 l 22.627,22.628l-20.649,28.908c 2.997,5.36, 5.387,11.103, 7.096,17.133L 224,64l0,32 l-35.043,5.841 C 187.248,107.871, 184.858,113.613, 181.861,118.974z M 112,48c-17.674,0-32,14.327-32,32s 14.326,32, 32,32s 32-14.327, 32-32 S 129.674,48, 112,48zM 512,288l0,32 l-33.691,6.125c-0.621,4.023-1.416,7.989-2.362,11.895l 28.779,18.55L 492.48,386.134l-33.472-7.234 c-2.107,3.455-4.363,6.81-6.746,10.065l 19.503,28.171l-22.628,22.627l-28.171-19.503c-3.256,2.383-6.61,4.638-10.065,6.747 l 7.234,33.472L 388.571,472.726l-18.55-28.779c-3.906,0.946-7.872,1.741-11.895,2.362L 352,480l-32,0 l-6.126-33.691 c-4.023-0.621-7.988-1.416-11.895-2.362L 283.43,472.726L 253.866,460.48l 7.234-33.472c-3.455-2.108-6.81-4.364-10.065-6.747 l-28.171,19.503l-22.627-22.627l 19.503-28.171c-2.383-3.255-4.639-6.61-6.747-10.065l-33.472,7.234l-12.246-29.564l 28.779-18.55 c-0.946-3.906-1.741-7.871-2.362-11.895L 160,320l0-32 l 33.691-6.125c 0.621-4.023, 1.416-7.989, 2.362-11.895l-28.779-18.55 l 12.246-29.564l 33.472,7.234c 2.108-3.455, 4.364-6.809, 6.747-10.065l-19.503-28.171l 22.627-22.628l 28.171,19.503 c 3.255-2.383, 6.61-4.638, 10.065-6.746l-7.234-33.472l 29.564-12.246l 18.551,28.779c 3.905-0.946, 7.871-1.741, 11.894-2.362L 320,128l 32,0 l 6.126,33.691c 4.022,0.621, 7.988,1.416, 11.895,2.362l 18.55-28.779l 29.564,12.246l-7.234,33.472 c 3.455,2.108, 6.81,4.363, 10.065,6.746l 28.171-19.503l 22.628,22.628l-19.503,28.171c 2.383,3.256, 4.638,6.61, 6.746,10.065 l 33.472-7.234l 12.246,29.565l-28.779,18.55c 0.946,3.906, 1.741,7.871, 2.362,11.895L 512,288z M 336,234.4 c-38.439,0-69.6,31.161-69.6,69.6c0,38.439, 31.16,69.6, 69.6,69.6s 69.6-31.161, 69.6-69.6C 405.6,265.561, 374.44,234.4, 336,234.4z"  />
<glyph unicode="&#x36;" d="M 507.256,84.744L 308.744,283.256c-11.030,11.031-38.41,2.154-65.372-19.758L 96,410.87L 80,448L 28.768,480L0,451.232L 32,400 l 37.13-16l 147.373-147.372c-21.913-26.963-30.79-54.342-19.76-65.372c 0.003-0.003, 0.006-0.005, 0.009-0.008l 198.503-198.504 c 12.976-12.975, 48.565,1.579, 79.494,32.508C 505.677,36.18, 520.23,71.771, 507.256,84.744z M 445.435,34.565 c-3.71-3.71-8.572-5.565-13.435-5.565s-9.725,1.855-13.435,5.565l-160,160c-7.421,7.42-7.421,19.449,0,26.869 c 7.42,7.42, 19.449,7.42, 26.869,0l 160-160C 452.855,54.015, 452.855,41.985, 445.435,34.565z"  />
<glyph unicode="&#x3a;" d="M 507.882,411.883L 448,352l-64,64l 59.882,59.883C 435.057,478.557, 425.698,480, 416,480c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.057, 4.116-27.882L 123.882,155.883C 115.057,158.557, 105.698,160, 96,160c-53.021,0-96-42.98-96-96 c0-9.697, 1.442-19.058, 4.117-27.882L 64,96l 64-64l-59.883-59.882C 76.943-30.556, 86.302-32, 96-32c 53.020,0, 96,42.981, 96,96 c0,9.698-1.444,19.059-4.118,27.883l 200.234,200.235C 396.943,289.444, 406.302,288, 416,288c 53.020,0, 96,42.981, 96,96 C 512,393.698, 510.556,403.058, 507.882,411.883z"  />
<glyph unicode="&#x39;" d="M 144,320L 80,320 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.8,0, 16,7.2, 16,16l0,32 C 160,312.8, 152.8,320, 144,320zM 96,416L 128,416L 128,336L 96,336zM 96,240L 128,240L 128,32L 96,32zM 272,192l-64,0 c-8.8,0-16-7.2-16-16l0-32 c0-8.8, 7.2-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 288,184.8, 280.801,192, 272,192zM 224.001,416L 256.001,416L 256.001,208L 224.001,208zM 224.001,112L 256.001,112L 256.001,32L 224.001,32zM 400,288l-64,0 c-8.799,0-16-7.2-16-16l0-32 c0-8.8, 7.201-16, 16-16l 64,0 c 8.801,0, 16,7.2, 16,16l0,32 C 416,280.8, 408.801,288, 400,288zM 352,416L 384,416L 384,304L 352,304zM 352,208L 384,208L 384,32L 352,32zM 440,480L 40,480 C 17.944,480,0,462.056,0,440l0-432 c0-22.056, 17.944-40, 40-40l 400,0 c 22.056,0, 40,17.944, 40,40L 480,440  C 480,462.056, 462.056,480, 440,480z M 448,8c0-4.4-3.6-8-8-8L 40,0 c-4.4,0-8,3.6-8,8L 32,440 c0,4.4, 3.6,8, 8,8l 400,0 c 4.4,0, 8-3.6, 8-8L 448,8 z"  />
<glyph unicode="&#x78;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32zM 224,352A32,32 11340 1 0 288,352A32,32 11340 1 0 224,352zM 320,320A32,32 11340 1 0 384,320A32,32 11340 1 0 320,320zM 128,320A32,32 11340 1 0 192,320A32,32 11340 1 0 128,320zM 224,128L 224,96L 288,96L 288,128L 256,288 z"  />
<glyph unicode="&#xe266;" d="M 320,406.706l0-67.979 c 18.103-7.902, 34.75-19.204, 49.137-33.59C 399.358,274.917, 416,234.737, 416,192 s-16.643-82.917-46.863-113.137C 338.917,48.643, 298.738,32, 256,32s-82.917,16.643-113.137,46.863 C 112.643,109.083, 96,149.263, 96,192s 16.643,82.917, 46.863,113.137c 14.387,14.387, 31.034,25.689, 49.137,33.591L 192,406.706  C 99.476,379.166, 32,293.47, 32,192c0-123.712, 100.289-224, 224-224c 123.712,0, 224,100.288, 224,224 C 480,293.47, 412.525,379.166, 320,406.706zM 224,480L 288,480L 288,224L 224,224z"  />
<glyph unicode="&#x54;" d="M 256,480C 114.615,480,0,444.183,0,400l0-48 l 192-192l0-160 c0-17.673, 28.653-32, 64-32c 35.346,0, 64,14.327, 64,32L 320,160 l 192,192L 512,400 C 512,444.183, 397.385,480, 256,480z M 47.192,410.588c 11.972,6.829, 28.791,13.31, 48.639,18.744C 139.803,441.37, 196.685,448, 256,448 c 59.314,0, 116.197-6.63, 160.169-18.668c 19.848-5.434, 36.667-11.915, 48.64-18.744c 7.896-4.503, 12.162-8.312, 14.148-10.588 c-1.986-2.276-6.253-6.084-14.148-10.588c-11.973-6.829-28.792-13.31-48.64-18.744C 372.198,358.63, 315.315,352, 256,352 c-59.315,0-116.197,6.63-160.169,18.668c-19.848,5.434-36.667,11.915-48.639,18.744C 39.296,393.916, 35.030,397.724, 33.043,400 C 35.030,402.276, 39.296,406.084, 47.192,410.588z"  />
<glyph unicode="&#x4c;" d="M 64,0c0-17.673, 14.327-32, 32-32l 320,0 c 17.674,0, 32,14.327, 32,32L 448,352 L 64,352 L 64,0 z M 320,288l 64,0 l0-256 l-64,0 L 320,288 z M 224,288l 64,0 l0-256 l-64,0  L 224,288 z M 128,288l 64,0 l0-256 l-64,0 L 128,288 zM 448,448L 320,448 L 320,480 L 192,480 l0-32 L 64,448 C 28.654,448,0,419.346,0,384l 512,0 C 512,419.346, 483.347,448, 448,448z"  />
<glyph unicode="&#x23;" d="M 416,256l-32,0 l0,96 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.308-128-128l0-96 L 96,256 c-17.6,0-32-14.4-32-32l0-224 c0-17.6, 14.4-32, 32-32l 320,0 c 17.6,0, 32,14.4, 32,32L 448,224 C 448,241.6, 433.6,256, 416,256z M 256,64c-17.673,0-32,14.327-32,32 s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,64, 256,64z M 320,256L 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64L 320,256 z"  />
<glyph unicode="&#xe267;" d="M 256,64c-17.673,0-32,14.326-32,32c0,17.673, 14.327,32, 32,32s 32-14.327, 32-32C 288,78.326, 273.673,64, 256,64z M 192,256 l0,96 c0,35.29, 28.71,64, 64,64s 64-28.71, 64-64l0-32 l 64,0 l0,32 C 384,422.692, 326.692,480, 256,480c-70.692,0-128-57.309-128-128l0-96 L 96,256 c-17.601,0-32-14.4-32-32l0-224 c0-17.601, 14.399-32, 32-32l 320,0 c 17.6,0, 32,14.399, 32,32L 448,224 c0,17.6-14.4,32-32,32L 192,256 z"  />
<glyph unicode="&#x5f;" d="M 352,480c-88.365,0-160-71.634-160-160c0-10.013, 0.929-19.808, 2.688-29.312L0,96l0-96 c0-17.673, 14.327-32, 32-32 l 32,0 l0,32 l 64,0 l0,64 l 64,0 l0,64 l 64,0 l 41.521,41.521C 314.526,163.363, 332.869,160, 352,160c 88.365,0, 160,71.634, 160,160S 440.365,480, 352,480z M 399.937,319.937c-26.51,0-48,21.49-48,48s 21.49,48, 48,48s 48-21.49, 48-48S 426.447,319.937, 399.937,319.937z"  />
<glyph unicode="&#x46;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 160,224 c0,53.020, 42.98,96, 96,96s 96-42.98, 96-96s-42.98-96-96-96S 160,170.98, 160,224z M 462.99,138.262L 462.99,138.262l-88.71,36.745 C 380.539,190.099, 384,206.645, 384,224s-3.461,33.901-9.72,48.993l 61.063,25.293l 27.647,11.452C 473.944,283.327, 480,254.373, 480,224 C 480,193.627, 473.943,164.673, 462.99,138.262L 462.99,138.262z M 341.739,430.99L 341.739,430.99L 341.739,430.99l-36.745-88.71 C 289.902,348.539, 273.356,352, 256,352s-33.901-3.461-48.993-9.72l-17.23,41.599l-19.515,47.112C 196.673,441.943, 225.628,448, 256,448 C 286.373,448, 315.327,441.943, 341.739,430.99z M 49.010,309.738l 47.112-19.515l 41.599-17.23C 131.462,257.901, 128,241.355, 128,224 s 3.461-33.901, 9.72-48.993l-88.71-36.745C 38.057,164.673, 32,193.627, 32,224C 32,254.373, 38.057,283.327, 49.010,309.738z  M 170.262,17.010l 11.452,27.647l 25.293,61.063C 222.099,99.461, 238.645,96, 256,96s 33.901,3.461, 48.993,9.72l 36.745-88.71l0,0l0,0 C 315.327,6.058, 286.373,0, 256,0C 225.628,0, 196.673,6.057, 170.262,17.010z"  />
<glyph unicode="&#x62;" d="M 256,480C 114.614,480,0,444.184,0,400l0-64 c0-44.183, 114.611-80, 256-80c 141.385,0, 256,35.817, 256,80L 512,400 C 512,444.184, 397.385,480, 256,480 zM 255.193,224C 140.566,224, 43.94,247.543, 11.32,280C 3.705,272.423,0,264.361,0,256l0-64 c0-44.184, 114.611-80, 256-80 c 141.385,0, 256,35.816, 256,80l0,64 c0,8.361-4.516,16.423-12.131,24C 467.25,247.543, 369.82,224, 255.193,224zM 255.193,80C 140.566,80, 43.94,103.544, 11.32,136C 3.705,128.424,0,120.361,0,112l0-64 c0-44.183, 114.611-80, 256-80 c 141.385,0, 256,35.817, 256,80l0,64 c0,8.361-4.516,16.424-12.131,24C 467.25,103.544, 369.82,80, 255.193,80z"  />
<glyph unicode="&#xe268;" d="M 390.979-32c-27.208,0.001-61.186,16.608-75.809,53.702c-2.034,4.84-4.271,10.714-6.859,17.509 c-8.285,21.749-20.806,54.616-33.892,68.23c-4.79,4.984-8.495,8.599-11.473,11.504c-2.673,2.607-4.921,4.801-6.946,7.019 c-2.025-2.219-4.273-4.412-6.948-7.022c-2.976-2.904-6.68-6.519-11.468-11.5c-13.086-13.616-25.608-46.488-33.895-68.239 c-2.586-6.791-4.823-12.661-6.856-17.499C 182.208-15.391, 148.231-32, 121.025-32c-5.303,0-10.138,0.646-14.373,1.918 c-26.772,8.046-43.012,37.939-40.411,74.386l 0.372,4.206c 3.287,29.404, 21.199,58.458, 50.435,81.806 c 25.344,20.238, 55.31,32.812, 78.204,32.812c 4.53,0, 8.712-0.494, 12.519-1.472l 15.711,32.209 c-16.148,40.414-39.152,100.774-57.123,153.646c-10.015,29.463-17.448,53.594-22.094,71.721 c-7.352,28.691-6.883,38.393-3.916,44.132L 148.95,480l 107.053-219.465L 363.049,479.999l 8.602-16.635 c 2.967-5.739, 3.438-15.441-3.915-44.132c-4.646-18.126-12.079-42.257-22.093-71.72c-17.97-52.868-40.974-113.229-57.123-153.646 l 15.711-32.209c 3.806,0.978, 7.987,1.472, 12.518,1.472c 22.895,0, 52.861-12.574, 78.206-32.814 c 24.995-19.962, 41.713-44.097, 48.090-69.052l 1.179,0.564l 1.535-17.522c 2.603-36.445-13.635-66.338-40.404-74.386 c-4.235-1.272-9.071-1.918-14.373-1.918C 390.98-32, 390.979-32, 390.979-32z M 346.841,39.052 c 18.936-34.353, 35.854-39.491, 44.263-39.491c 11.447,0, 20.018,9.238, 21.691,18.169c 1.097,5.871, 1.296,11.914, 0.592,17.961 c-2.837,24.156-19.338,44.898-32.678,58.044c-18.334,18.065-38.889,30.062-52.085,35.3c-1.313,0.457-2.121,0.526-2.489,0.526 c-0.255,0-0.354-0.031-0.355-0.031C 321.937,127.034, 317.342,98.010, 346.841,39.052z M 183.13,129.035 c-13.115-5.24-33.545-17.236-51.764-35.301c-13.26-13.145-29.656-33.888-32.475-58.052c-0.704-6.030-0.506-12.069, 0.589-17.953 c 1.661-8.93, 10.179-18.169, 21.556-18.169c 8.356,0, 25.17,5.139, 43.991,39.49c 29.312,58.938, 24.764,87.944, 20.903,90.493 c0-0.001-0.001-0.001-0.004-0.001c-0.020,0-0.125,0.018-0.32,0.018C 185.239,129.561, 184.438,129.492, 183.13,129.035z"  />
<glyph unicode="&#x6a;" d="M 416,160L 384,128L 320,288L 256,96L 160,448L 96,128L0,128L0,96L 122.235,96L 164.794,308.803L 225.128,87.58L 252.937-14.385L 322.734,195.005L 354.288,116.115L 372.313,71.057L 429.256,128L 512,128L 512,160 z"  />
<glyph unicode="&#x6b;" d="M 258.181,254.091l 94.386,29.34L 256,351.723L 256,480 L 152.532,405.466L 32,448l 42.533-120.533L0,224l 128,0 l 68.567-96.568l 29.341,94.387 L 448-32l 64,64L 258.181,254.091z M 202.327,277.672l-19.579-62.986l-38.084,53.010L 78.712,267.696 l 39.447,52.861L 96.979,383.021l 62.464-21.182 l 52.862,39.447l0-65.952 l 53.008-38.084L 202.327,277.672z"  />
<glyph unicode="&#x3c;" d="M 256,384C 144.341,384, 47.559,318.979,0,224c 47.559-94.979, 144.341-160, 256-160c 111.657,0, 208.439,65.021, 256,160 C 464.442,318.979, 367.657,384, 256,384z M 382.225,299.148c 30.081-19.187, 55.571-44.887, 74.717-75.148 c-19.146-30.261-44.637-55.961-74.718-75.149C 344.427,124.743, 300.779,112, 256,112c-44.78,0-88.428,12.743-126.225,36.852 C 99.695,168.038, 74.205,193.738, 55.058,224c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65 C 130.725,289.134, 128,274.387, 128,259c0-70.692, 57.308-128, 128-128s 128,57.308, 128,128c0,15.387-2.725,30.134-7.704,43.799 C 378.286,301.61, 380.265,300.398, 382.225,299.148z M 256,275c0-26.51-21.49-48-48-48s-48,21.49-48,48s 21.49,48, 48,48 S 256,301.51, 256,275z"  />
<glyph unicode="&#xe269;" d="M 419.661,331.792 C 458.483,304.277 490.346,267.246 512,224 C 464.439,129.021 367.657,64 256,64 C 224.717,64 194.604,69.106 166.411,78.542 L 205.389,117.52 C 221.918,113.87 238.875,112 256,112 C 300.779,112 344.427,124.743 382.223,148.852 C 412.304,168.040 437.795,193.74 456.941,224.001 C 438.415,253.284 413.934,278.276 385.116,297.248 L 419.661,331.792 ZM 256,131 C 244.638,131 233.624,132.488 223.136,135.267 L 379.729,291.859 C 382.51,281.373 384,270.362 384,259 C 384,188.308 326.692,131 256,131 ZM 480,480l-26.869,0 L 343.325,370.194C 315.787,379.156, 286.448,384, 256,384C 144.341,384, 47.559,318.979,0,224 c 21.329-42.596, 52.564-79.154, 90.597-106.534L0,26.869L0,0 l 26.869,0 L 480,453.131L 480,480 z M 208,323c 24.022,0, 43.923-17.647, 47.446-40.685 l-54.762-54.762C 177.647,231.077, 160,250.978, 160,275C 160,301.51, 181.49,323, 208,323z M 55.058,224 c 19.146,30.262, 44.637,55.962, 74.717,75.148c 1.959,1.25, 3.938,2.461, 5.929,3.65C 130.725,289.134, 128,274.387, 128,259 c0-29.262, 9.825-56.224, 26.349-77.781l-29.275-29.275C 97.038,170.765, 73.197,195.33, 55.058,224z"  />
<glyph unicode="&#x6e;" d="M 329.372,105.372L 224,210.745L 224,352L 288,352L 288,237.255L 374.628,150.628 zM 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,32 c-106.039,0-192,85.961-192,192c0,106.039, 85.961,192, 192,192c 106.039,0, 192-85.961, 192-192C 448,117.961, 362.039,32, 256,32z"  />
<glyph unicode="&#x6f;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,16 c-114.875,0-208,93.125-208,208S 141.125,432, 256,432s 208-93.125, 208-208S 370.875,16, 256,16zM 304,272l-144,80l-32,0 l0-32 l 80-144l 144-80l 32,0 l0,32 L 304,272z M 256,192c-17.673,0-32,14.327-32,32c0,17.673, 14.327,32, 32,32 c 17.673,0, 32-14.327, 32-32C 288,206.327, 273.673,192, 256,192z"  />
<glyph unicode="&#xe01b;" d="M 224,96A32,32 13140 1 0 288,96A32,32 13140 1 0 224,96zM 256,416c-96.026,0-182.161-42.307-240.815-109.286l 24.081-21.071C 92.055,345.923, 169.577,384, 256,384 c 86.423,0, 163.945-38.077, 216.734-98.357l 24.081,21.071C 438.161,373.693, 352.027,416, 256,416zM 256,320c-67.218,0-127.513-29.615-168.571-76.5l 24.082-21.071C 146.703,262.616, 198.385,288, 256,288 c 57.616,0, 109.297-25.384, 144.489-65.571l 24.082,21.071C 383.513,290.385, 323.219,320, 256,320zM 256,224c-38.41,0-72.865-16.923-96.326-43.715l 24.082-21.071C 201.352,179.308, 227.192,192, 256,192 c 28.808,0, 54.648-12.692, 72.245-32.786l 24.081,21.071C 328.865,207.077, 294.41,224, 256,224z"  />
<glyph unicode="&#xe271;" d="M 448,416l0-416 L 112,0 c-26.511,0-48,21.49-48,48c0,26.509, 21.489,48, 48,48l 304,0 L 416,480 L 96,480 C 60.801,480, 32,451.2, 32,416l0-384  c0-35.2, 28.801-64, 64-64l 384,0 L 480,416 L 448,416 zM 128,64L 416,64L 416,32L 128,32z"  />
<glyph unicode="&#x79;" d="M 192,480L0,224L 192,224L 64-32L 512,288L 256,288L 448,480 z"  />
<glyph unicode="&#xe013;" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320  C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2 c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z"  />
<glyph unicode="&#x71;" d="M 426.67,480L 85.343,480 C 38.405,480,0,441.594,0,394.656l0-341.314 C0,6.375, 38.406-32, 85.344-32L 426.67-32 c 46.938,0, 85.33,38.374, 85.33,85.342L 512,394.656 C 512,441.594, 473.608,480, 426.67,480z M 139.472,64.376C 115.487,64.376, 96,83.722, 96,107.69 c0,23.842, 19.486,43.406, 43.472,43.406c 24.079,0, 43.53-19.564, 43.53-43.406C 183.001,83.722, 163.55,64.376, 139.472,64.376z  M 248.734,64.002c0,40.905-15.904,79.409-44.73,108.222c-28.857,28.875-67.188,44.813-107.952,44.813L 96.052,279.63 c 118.826,0, 215.563-96.721, 215.563-215.627L 248.734,64.002L 248.734,64.002z M 359.814,64.002 c0,145.531-118.329,263.97-263.688,263.97L 96.126,390.596 c 180.001,0, 326.473-146.562, 326.473-326.596L 359.814,64.002L 359.814,64.002z"  />
<glyph unicode="&#x43;" d="M 160,288L 224,288L 224,224L 160,224zM 256,288L 320,288L 320,224L 256,224zM 352,288L 416,288L 416,224L 352,224zM 64,96L 128,96L 128,32L 64,32zM 160,96L 224,96L 224,32L 160,32zM 256,96L 320,96L 320,32L 256,32zM 160,192L 224,192L 224,128L 160,128zM 256,192L 320,192L 320,128L 256,128zM 352,192L 416,192L 416,128L 352,128zM 64,192L 128,192L 128,128L 64,128zM 416,480l0-32 l-64,0 L 352,480 L 128,480 l0-32 L 64,448 L 64,480 L0,480 l0-512 l 480,0 L 480,480 L 416,480 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z"  />
<glyph unicode="&#x44;" d="M 64,320L 96,320L 96,288L 64,288zM 128,320L 160,320L 160,288L 128,288zM 192,320L 224,320L 224,288L 192,288zM 256,320L 288,320L 288,288L 256,288zM 320,320L 352,320L 352,288L 320,288zM 384,320L 416,320L 416,288L 384,288zM 64,256L 96,256L 96,224L 64,224zM 128,256L 160,256L 160,224L 128,224zM 192,256L 224,256L 224,224L 192,224zM 256,256L 288,256L 288,224L 256,224zM 320,256L 352,256L 352,224L 320,224zM 384,256L 416,256L 416,224L 384,224zM 64,192L 96,192L 96,160L 64,160zM 128,192L 160,192L 160,160L 128,160zM 192,192L 224,192L 224,160L 192,160zM 256,192L 288,192L 288,160L 256,160zM 320,192L 352,192L 352,160L 320,160zM 384,192L 416,192L 416,160L 384,160zM 64,128L 96,128L 96,96L 64,96zM 128,128L 160,128L 160,96L 128,96zM 192,128L 224,128L 224,96L 192,96zM 256,128L 288,128L 288,96L 256,96zM 320,128L 352,128L 352,96L 320,96zM 384,128L 416,128L 416,96L 384,96zM 64,64L 96,64L 96,32L 64,32zM 128,64L 160,64L 160,32L 128,32zM 192,64L 224,64L 224,32L 192,32zM 256,64L 288,64L 288,32L 256,32zM 320,64L 352,64L 352,32L 320,32zM 384,64L 416,64L 416,32L 384,32zM 416,448L 416,480 l-64,0 l0-64 l-32,0 L 320,448 L 160,448 l0-32 l-32,0 L 128,480 L 64,480 l0-32 L0,448 l0-480 l 480,0 L 480,448 L 416,448 z M 448,0L 32,0 L 32,352 l 416,0 L 448,0 z"  />
<glyph unicode="&#xe273;" d="M 448,416l-48,0 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 336,416 L 176,416 l0-16 c0-17.645-14.355-32-32-32s-32,14.355-32,32L 112,416 L 64,416  c-17.6,0-32-14.4-32-32l0-352 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z M 448,32.058 c-0.017-0.020-0.038-0.041-0.058-0.058L 64.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 64,320 l 384,0 L 448,32.058 zM 144,384c 8.836,0, 16,7.164, 16,16L 160,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 128,391.164, 135.164,384, 144,384zM 368,384c 8.836,0, 16,7.164, 16,16L 384,464 c0,8.836-7.164,16-16,16s-16-7.164-16-16l0-64 C 352,391.164, 359.164,384, 368,384zM 288,288L 128,288L 128,256L 256,256L 256,192L 128,192L 128,160L 256,160L 256,96L 128,96L 128,64L 288,64 zM 352,64L 384,64L 384,288L 320,288L 320,256L 352,256 zM 436-12L 76-12 c-17.6,0-32,10.4-32,28l0-16 c0-17.6, 14.4-32, 32-32l 360,0 c 17.6,0, 32,14.4, 32,32l0,16 C 468-1.6, 453.6-12, 436-12z"  />
<glyph unicode="&#x77;" d="M 224,192L 224,416 C 100.288,416,0,315.712,0,192s 100.288-224, 224-224s 224,100.288, 224,224c0,36.017-8.514,70.042-23.618,100.191 L 224,192zM 456.382,356.191C 419.606,429.599, 343.695,480, 256,480l0-224 L 456.382,356.191z"  />
<glyph unicode="&#x76;" d="M0,64L 512,64L 512,0L0,0zM 64,192L 128,192L 128,96L 64,96zM 160,320L 224,320L 224,96L 160,96zM 256,224L 320,224L 320,96L 256,96zM 352,416L 416,416L 416,96L 352,96z"  />
<glyph unicode="&#x75;" d="M 496,0L 384,0L 384,16L 368,16L 368,0L 208,0L 208,16L 192,16L 192,0L 80,0L 80,16L 64,16L 64,0L 32,0L 32,144L 48,144L 48,160L 32,160L 32,272L 48,272L 48,288L 32,288L 32,400L 48,400L 48,416L 32,416L 32,480L0,480L0-32L 512-32L 512,16L 496,16 zM 220,284L 212,276L 212,149.941L 220,157.941 zM 204,268L 196,260L 196,133.941L 204,141.941 zM 188,125.941L 188,258L 180,262L 180,128.833L 187.261,125.202 zM 268,332L 260,324L 260,197.941L 268,205.941 zM 236,300L 228,292L 228,165.941L 236,173.941 zM 172,266L 164,270L 164,136.833L 172,132.833 zM 252,316L 244,308L 244,181.941L 252,189.941 zM 124,290L 116,294L 116,160.833L 124,156.833 zM 92,306L 84,310L 84,176.833L 92,172.833 zM 156,274L 148,278L 148,144.833L 156,140.833 zM 108,298L 100,302L 100,168.833L 108,164.833 zM 76,314L 68,318L 68,184.833L 76,180.833 zM 284,348L 276,340L 276,213.941L 284,221.941 zM 140,282L 132,286L 132,152.833L 140,148.833 zM 412,316L 404,308L 404,137.267L 412,149.267 zM 428,332L 420,324L 420,161.267L 428,173.267 zM 444,348L 436,340L 436,185.267L 444,197.267 zM 476,380L 468,372L 468,233.267L 476,245.267 zM 460,364L 452,356L 452,209.267L 460,221.267 zM 508,412L 500,404L 500,281.267L 508,293.267 zM 492,396L 484,388L 484,257.267L 492,269.267 zM 348,312L 340,317.333L 340,162.666L 348,152 zM 332,322.667L 324,328L 324,184L 332,173.333 zM 300,344L 292,349.333L 292,226.667L 300,216 zM 316,333.333L 308,338.667L 308,205.333L 316,194.666 zM 364,301.333L 356,306.667L 356,141.333L 364,130.666 zM 396,300L 388,292L 388,113.268L 396,125.267 zM 380,290.667L 372,296L 372,119.999L 380,109.333 zM 384,64L 288,192L 192,96L 64,160L 64,32L 512,32L 512,256 z"  />
<glyph unicode="&#x32;" d="M 512,338.75L 466.747,384L 377.374,294.624L 326.624,345.375L 415.999,434.75L 370.749,480L 281.374,390.625L 224,448L 180.687,404.688L 436.688,148.687L 480,191.999L 422.624,249.375 zM 137.374,105.373c 82.884-82.881, 192.597-18.181, 259.646,37.732L 175.108,365.017 C 119.196,297.969, 54.494,188.256, 137.374,105.373zM 95.999,127.998L 159.996,64L 64-31.996L 0.002,32.001z"  />
<glyph unicode="&#x33;" d="M 256,448L 32,352L 256,256L 480,352 zM 32,64L 224-16L 224,208L 32,288 zM 288-16L 480,64L 480,288L 288,208 z"  />
<glyph unicode="&#x34;" d="M 479.165,351.875L 394.94,351.875 c-21.715,0.033-43.348,1.503-22.252,38.729c 21.138,37.3, 36.059,89.521-48.802,89.521 c-84.857,0-69.935-52.221-48.797-89.521c 21.096-37.226-0.538-38.694-22.255-38.729l-91.938,0 c-18.060,0-32.835-14.778-32.835-32.834 l0-102.189 c0-21.756, 5.904-43.513-31.393-22.378C 59.372,215.611,0,230.531,0,145.672c0-84.854, 59.37-69.935, 96.67-48.798 c 37.297,21.137, 31.393-0.62, 31.393-22.38l0-73.783 c0-18.062, 14.777-32.835, 32.835-32.835l 91.811,0 c 21.76,0, 43.517,8.706, 22.382,46.004 c-21.137,37.295-36.061,89.519, 48.797,89.519c 84.858,0, 69.938-52.221, 48.8-89.519c-21.135-37.299, 0.623-46.005, 22.381-46.005l 84.096,0 c 18.062,0, 32.837,14.777, 32.837,32.835L 512.002,319.042 C 512.002,337.099, 497.227,351.875, 479.165,351.875z"  />
<glyph unicode="&#x72;" d="M 348.916,316.476l-32.476,32.461L 154.035,186.566c-26.907-26.896-26.907-70.524,0-97.422 c 26.902-26.896, 70.53-26.896, 97.437,0l 194.886,194.854c 44.857,44.831, 44.857,117.531,0,162.363 c-44.833,44.852-117.556,44.852-162.391,0L 79.335,241.788l 0.017-0.016c-0.145-0.152-0.306-0.288-0.438-0.423 c-62.551-62.548-62.551-163.928,0-226.453c 62.527-62.528, 163.934-62.528, 226.494,0c 0.137,0.137, 0.258,0.284, 0.41,0.438l 0.016-0.017 l 139.666,139.646l-32.493,32.46L 273.35,47.792l-0.008,0 c-0.148-0.134-0.282-0.285-0.423-0.422 c-44.537-44.529-116.99-44.529-161.538,0c-44.531,44.521-44.531,116.961,0,161.489c 0.152,0.152, 0.302,0.291, 0.444,0.423l-0.023,0.030 l 204.64,204.583c 26.856,26.869, 70.572,26.869, 97.443,0c 26.856-26.867, 26.856-70.574,0-97.42L 218.999,121.625 c-8.968-8.961-23.527-8.961-32.486,0c-8.947,8.943-8.947,23.516,0,32.46L 348.916,316.476z"  />
<glyph unicode="&#x74;" d="M 256.003,480c-85.374,0-154.661-68.339-154.661-152.54c0-42.102, 25.089-86.239, 53.788-133.976 c 28.7-47.737, 6.022-100.49, 103.695-99.073c 93.617,1.376, 69.35,44.274, 96.629,92.011c 27.289,47.736, 55.205,98.938, 55.205,141.039 C 410.66,411.662, 341.371,480, 256.003,480zM 191.076,80.777l0-40.615 c 19.95-6.488, 41.896-10.088, 64.927-10.088c 23.029,0, 44.97,3.6, 64.921,10.086l0,37.525  c-11.158-10.273-29.447-13.1-62.1-13.645C 222.605,63.443, 202.953,67.848, 191.076,80.777zM 191.753,14.944c 2.507-13.705, 13.3-46.944, 64.25-46.944c 50.949,0, 61.742,33.239, 64.25,46.944 c-28.826-8.815-41.977-9.291-64.25-9.291C 233.728,5.653, 220.577,6.129, 191.753,14.944z"  />
<glyph unicode="&#x73;" d="M 272,480l-48-48l 48-48L 160,256L 48,256 l 88-88L0-12.308L0-32 l 19.692,0 L 200,104l 88-88L 288,128 l 128,112l 48-48l 48,48L 272,480z M 224,208l-32,32 l 112,112l 32-32L 224,208z"  />
<glyph unicode="&#x63;" d="M 256,480C 167.634,480, 96,408.366, 96,320c0-160, 160-352, 160-352s 160,192, 160,352C 416,408.366, 344.365,480, 256,480z M 256,224 c-53.020,0-96,42.98-96,96s 42.98,96, 96,96s 96-42.98, 96-96S 309.020,224, 256,224z"  />
<glyph unicode="&#xe274;" d="M 131.851,338.143c 2.709-85.392, 23.232-156.27, 61.189-211.080c 17.343-25.043, 38.449-46.778, 62.96-64.873 c 24.511,18.095, 45.618,39.83, 62.959,64.873c 37.957,54.811, 58.48,125.688, 61.189,211.080c-40.225,9.645-79.752,25.45-124.149,49.495 C 211.596,363.589, 172.078,347.788, 131.851,338.143zM 458.873,406.909C 387.436,411.877, 329.919,434.868, 256.002,480C 182.080,434.868, 124.563,411.877, 53.127,406.909 C 33.451,95.568, 202.896-3.16, 256.002-32C 309.105-3.16, 478.55,95.568, 458.873,406.909z M 358.422,99.735 c-35.469-51.219-77.048-80.031-102.421-95.026c-25.374,14.995-66.952,43.807-102.422,95.026 c-49.507,71.489-72.928,164.977-69.753,278.177c 56.394,7.775, 107.891,27.271, 172.175,64.812 c 64.281-37.541, 115.777-57.037, 172.173-64.812C 431.35,264.712, 407.929,171.225, 358.422,99.735z"  />
<glyph unicode="&#x35;" d="M 254.059,418.977C 205.881,476.227, 169.369,480, 96,480l0-256 c 128.267,64, 142.636-8.335, 223.506-1.023 C 399.234,230.197, 467.031,291.564, 512,352C 384.644,322.547, 320.54,339.977, 254.059,418.977zM0,480L 64,480L 64-32L0-32z"  />
<glyph unicode="&#xe275;" d="M 128,447.5c 19.393-0.786, 33.686-2.681, 46.365-6.903c 19.163-6.381, 35.674-19.009, 55.209-42.224 c 54.165-64.364, 108.925-91.826, 183.107-91.826c 7.729,0, 15.767,0.307, 24.147,0.925c-10.090-11.872-20.705-23.466-31.729-34.059 c-15.453-14.849-30.499-26.521-44.72-34.692c-14.99-8.612-29.547-13.609-43.263-14.851c-1.81-0.164-3.533-0.243-5.271-0.243 c-16.82,0-29.746,7.817-49.442,20.573c-22.574,14.618-50.668,32.812-91.546,32.812c-13.692,0-27.906-2.034-42.859-6.161L 127.998,447.5  M 96,480l0-256 c 30.587,15.262, 54.737,21.011, 74.859,21.011c 61.341,0, 85.367-53.384, 140.988-53.384c 2.648,0, 5.354,0.12, 8.152,0.373 c 79.729,7.221, 147.031,99.564, 192,160c-38.205-8.835-70.726-13.453-99.318-13.453c-66.72,0-112.085,25.129-158.623,80.43 C 205.881,476.227, 169.369,480, 96,480L 96,480zM0,480L 64,480L 64-32L0-32z"  />
<glyph unicode="&#xe023;" d="M 96,480L 96-32L 256,128L 416-32L 416,480 z"  />
<glyph unicode="&#xe276;" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z"  />
<glyph unicode="&#xe277;" d="M 376,448c-51.956,0-97.1-29.138-120-71.96C 233.099,418.862, 187.955,448, 136,448C 60.889,448,0,387.11,0,312c0-184, 256-312, 256-312 s 256,128, 256,312C 512,387.11, 451.111,448, 376,448z"  />
<glyph unicode="&#xe278;" d="M 256,0l-13.97,6.779C 232.147,11.574,0,126.229,0,300.513C0,381.838, 67.738,448, 151,448c 39.83,0, 77.258-15.237, 105-41.462 C 283.742,432.763, 321.17,448, 361,448c 83.262,0, 151-66.162, 151-147.487c0-174.284-232.147-288.938-242.030-293.733L 256,0z M 151,384 c-47.972,0-87-37.452-87-83.487c0-67.976, 54.123-127.616, 99.526-165.68c 36.25-30.39, 73.062-52.351, 92.474-63.081 c 19.412,10.73, 56.224,32.691, 92.474,63.081C 393.877,172.896, 448,232.537, 448,300.513C 448,346.548, 408.972,384, 361,384 c-32.336,0-61.831-17.070-76.974-44.55L 256,288.59l-28.026,50.86C 212.831,366.93, 183.336,384, 151,384z"  />
<glyph unicode="&#x5b;" d="M 464,192 C 500.5,192 480,96 448,96 C 464,96 448,16 416,16 C 416-16 384-32 352-32 C 216.824-32 264.368,1.825 128,16 L 128,272 C 248.461,308.134 368,398.712 368,480 C 394.5,480 464,448 368,288 C 368,288 448,288 464,288 C 512,288 496,192 464,192 ZM 96,272 L 96,16 L 128,16 L 128,0 L 64,0 C 46.4,0 32,21.6 32,48 L 32,240 C 32,266.4 46.4,288 64,288 L 128,288 L 128,272 L 96,272 Z"  />
<glyph unicode="&#x5c;" d="M 48,256 C 11.5,256 32,352 64,352 C 48,352 64,432 96,432 C 96,464 128,480 160,480 C 295.176,480 247.632,446.175 384,432 L 384,176 C 263.539,139.866 144,49.288 144-32 C 117.5-32 48,0 144,160 C 144,160 64,160 48,160 C 0,160 16,256 48,256 ZM 416,176 L 416,432 L 384,432 L 384,448 L 448,448 C 465.6,448 480,426.4 480,400 L 480,208 C 480,181.6 465.6,160 448,160 L 384,160 L 384,176 L 416,176 Z"  />
<glyph unicode="&#x40;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-111.731-58.74l 21.338,124.415l-90.393,88.111l 124.92,18.152L 256,388.387l 55.868-113.198 l 124.918-18.152l-90.394-88.111l 21.339-124.415L 256,103.251z"  />
<glyph unicode="&#x41;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z M 256,103.251l-0.471-0.248L 256,388.387l 55.868-113.198l 124.918-18.152l-90.394-88.111l 21.339-124.415 L 256,103.251z"  />
<glyph unicode="&#x42;" d="M 512,281.475L 335.11,307.179L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179 l-30.217,176.176L 512,281.475z"  />
<glyph unicode="&#xe279;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 256,64c-58.255,0-109.232,31.137-137.213,77.672l 41.164,24.698 C 179.538,133.796, 215.222,112, 256,112s 76.462,21.796, 96.049,54.37l 41.164-24.698C 365.232,95.137, 314.255,64, 256,64z"  />
<glyph unicode="&#xe280;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 352.049,166.37 L 393.213,141.672 C 365.232,95.137 314.255,64 256,64 C 197.745,64 146.768,95.137 118.787,141.672 L 159.951,166.37 C 179.538,133.796 215.222,112 256,112 C 296.778,112 332.462,133.796 352.049,166.37 Z"  />
<glyph unicode="&#xe281;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 352,352 c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 334.327,352, 352,352z M 160,352c 17.673,0, 32-14.327, 32-32 s-14.327-32-32-32s-32,14.327-32,32S 142.327,352, 160,352z M 352.049,89.63C 332.462,122.204, 296.777,144, 256,144 c-40.778,0-76.462-21.796-96.049-54.37l-41.164,24.698C 146.767,160.863, 197.745,192, 256,192c 58.254,0, 109.232-31.137, 137.213-77.672 L 352.049,89.63z"  />
<glyph unicode="&#xe282;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320 C 128,337.673 142.327,352 160,352 C 177.673,352 192,337.673 192,320 C 192,302.327 177.673,288 160,288 C 142.327,288 128,302.327 128,320 Z M 320,320 C 320,337.673 334.327,352 352,352 C 369.673,352 384,337.673 384,320 C 384,302.327 369.673,288 352,288 C 334.327,288 320,302.327 320,320 ZM 159.951,89.63 L 118.787,114.328 C 146.768,160.863 197.745,192 256,192 C 314.254,192 365.231,160.863 393.213,114.328 L 352.049,89.63 C 332.462,122.204 296.778,144 256,144 C 215.221,144 179.538,122.204 159.951,89.63 Z"  />
<glyph unicode="&#xe283;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.613-256, 256-256c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480z M 320,96L 192,96 l0,32 l 128,0 L 320,96 z M 352,352c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 320,337.673, 334.327,352, 352,352z M 160,352 c 17.673,0, 32-14.327, 32-32c0-17.673-14.327-32-32-32s-32,14.327-32,32C 128,337.673, 142.327,352, 160,352z"  />
<glyph unicode="&#xe284;" d="M 256-32c 141.385,0, 256,114.615, 256,256S 397.385,480, 256,480S0,365.385,0,224S 114.615-32, 256-32z M 256,432 c 114.875,0, 208-93.125, 208-208s-93.125-208-208-208S 48,109.125, 48,224S 141.125,432, 256,432zM 128,320c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 128,337.673, 128,320z M 320,320 c0-17.673, 14.327-32, 32-32s 32,14.327, 32,32s-14.327,32-32,32S 320,337.673, 320,320z M 192,128l 128,0 l0-32 L 192,96 L 192,128 z"  />
<glyph unicode="&#xe019;" d="M 64,16A48,48 11340 1 0 160,16A48,48 11340 1 0 64,16zM 384,16A48,48 11340 1 0 480,16A48,48 11340 1 0 384,16zM 480,224L 480,416 L 64,416 C 64,451.346, 35.347,480,0,480l0-32 c 17.645,0, 32-14.355, 32-32l 24.037-206.027C 41.39,198.244, 32,180.223, 32,160 c0-35.347, 28.654-64, 64-64l 384,0 l0,32 L 96,128 c-17.673,0-32,14.327-32,32c0,0.11, 0.007,0.218, 0.008,0.328L 480,224z"  />
<glyph unicode="&#xe01a;" d="M 406.494,288L 317.573,403.765C 319.134,407.535, 320,411.666, 320,416c0,17.673-14.326,32-32,32c-17.673,0-32-14.327-32-32 s 14.327-32, 32-32c 1.421,0, 2.816,0.102, 4.188,0.282L 366.144,288L 145.857,288 l 73.956,96.282C 221.184,384.102, 222.58,384, 224,384 c 17.673,0, 32,14.327, 32,32s-14.327,32-32,32s-32-14.327-32-32c0-4.334, 0.866-8.465, 2.427-12.234L 105.506,288L0,288 l0-64 l 32,0 l 32-256l 384,0 l 32,256l 32,0 l0,64 L 406.494,288 z M 160,32L 96,32 l0,64 l 64,0 L 160,32 z M 160,160L 96,160 l0,64 l 64,0 L 160,160 z M 288,32l-64,0 l0,64 l 64,0 L 288,32 z M 288,160l-64,0 l0,64 l 64,0 L 288,160 z M 416,32l-64,0 l0,64 l 64,0 L 416,32 z M 416,160l-64,0 l0,64 l 64,0 L 416,160 z"  />
<glyph unicode="&#xe286;" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 48,384 l 416,0 c 8.673,0, 16-7.327, 16-16l0-48 L 32,320 l0,48 C 32,376.673, 39.327,384, 48,384z M 464,64L 48,64 c-8.673,0-16,7.327-16,16L 32,224 l 448,0 l0-144  C 480,71.327, 472.673,64, 464,64zM 64,160L 96,160L 96,96L 64,96zM 128,160L 160,160L 160,96L 128,96zM 192,160L 224,160L 224,96L 192,96z"  />
<glyph unicode="&#xe287;" d="M 464,416L 48,416 C 21.6,416,0,394.4,0,368l0-288 c0-26.4, 21.6-48, 48-48l 416,0 c 26.4,0, 48,21.6, 48,48L 512,368 C 512,394.4, 490.4,416, 464,416z M 96,96 L 64,96 l0,64 l 32,0 L 96,96 z M 160,96l-32,0 l0,64 l 32,0 L 160,96 z M 224,96l-32,0 l0,64 l 32,0 L 224,96 z M 496,224L 16,224 l0,96 l 480,0 L 496,224 z"  />
<glyph unicode="&#x20;" horiz-adv-x="256" />
</font></defs></svg>jui/fonts/IcoMoon.woff000064400000061520152177723720010733 0ustar00wOFFOTTOcP��CFF ]����-I�FFTM^�f5�GDEF^� OS/2_M`Q�� cmap_X6Tam�1heada�.6�QKhheaa�$Q�hmtxa�{�-��maxpb\�Pnamebd��N�sppostcD x��}	xTE�n�0�B�L�B�	k2�*D�������%"��0lBDDDD$|��t@Ya
;�N`���v��
���{��<�H�9�TWWWWWwW�1��"ð=���O���[���57 ��BYe,΢��E-����s%���(4�ͬ��w���$"0�I	>�XҬ�x��l��D�����h-�]E�G�*�C�H1^L�D�X,����Z��,v���8.Ί�⦸/r�Q�(i�5*Ս:F�����l<k<o�l0I�c�1ݘk|l,5�4������O�q�8o��;ƃ`��P3�~@�V�H��/�!��x?`f���E��
�6�ǀ_v�8p)�F����B�
*Q�L��B�
�.�(ԬP�w�z�c�z���!V�ԫ�@�4�?��Oc������i���v������q֯�bu\]^}����C�4�?
�O#��X��bcM�>���@�S[_�o���0˫�K��K��K��K��K��|��8cu�X�3V����j,�K�����i,qK�������q:{���ymR��l���&?uA�ӡ)sh���a�3S��t�o�Ts��լgV��f�Y�����L~j֫�Q����7��64Q�o����܆����
5�
5��YC�j%`��̺������&�l�FY#���F�HS�X��XW��&����ج�Yl��5nd��˜f|�~<�p3�Y�lc���<c��l|d,@�^h|b,2������T<m,��W:��Dg�3c��x�%c���`���Z8D�Q�D�h)Z����(b�����o��[c��f|g�3�O�"RD���Ə�O�z�g谦��(	�Q����&�c���f�6�;���.c7t�o����k�3���
g0�㐑f6��PQ�K44��F��(d�v|VǍta�b�hk���:%ꈺ���o�6�g��(+ʈҢ�('^0΋����a��v�E/��
�%��f\6��^�U�z���ϋ����v��q�ho\��u�qӸe��EQITU�5���=��1���C�+Q��b�v���Q�����4���A�
w�:�������	*ҸH�"s��P4��kE�/v0dn�ސ�ŗ��}5td���C	=_�X�j%:�x�ĸ�J
�d?^,�~�ҋʌ.۶��)�#6D��Z��0-2<2:�ad��QQ=*֩ة�J�*�Z���s*���]��U*Vy'z_tFՐ��U�W}�ڰj󫭨�K�?���W�K�~��U_]}c�+5ޮ��殘}����R�LQ'�N�����W�^�z/�WoY�M���ttrs���F=�h2�i�fO����b�խ[��z}��m���?�q�SM�Zڹr����?<]��O����u�nz>�z=|���O����}ݯ�����c��g��>���÷��θw�(>��ȁ#��혞c|�s�N�kr�_�~�eԙ�nF��3N�6+b���
gO�}uΤ����ۇ�?�3��c���~#+ɒ���"�b�4z|��.���#���B}#�.���W�}��&��K��&L���q7�*�٤_�����nR�|WM�"����ϋ;�7)����c��r�RTL	@YŤ����W^X���CDW. ��^�"�U3)/U
���%H��S����%����1��4F�?OKy��P[�&����������Y���T�[��-�x�h"��,�4F�Z&E�m��>Y.����5�<5��Qk��6L�cs"P�W�J�Fޜ���Y,�d�P�R�~�_X����7�$�B%˭�Ej1ܹ��
��&�u�l���������|����,`��}��x#����{eHQ��I`?[5���,����k�"��R�]��	"�n	�z����sG��#P��]We6;�v���w�Y?G^nF
x�x�d}v �sqx�]��SG><���R���T�ߢ��u�*
��������8g[d���6r�rWp�d]Tp|sr�=�fED��{l+0��;t�*�����`��m���=s�����b��@9������ao���Rf\)Ep�l)�*Q�{�����#P�]o8;q;@�l�$�5
"�q�'�]U�<r�r�������u\��"����[��t]9G��t��9ɻw���+�)��UN��N�VO)�G�E��{ѱw���R�C�E�y�Q��R<1�,��J'���N���ҫ�Z'�Ѿ!���2�"n�,�0�U�e� m�ǐ����n�4OSA|��Gi1��@Ch�����"
!�z�U���M���:</��!���$�'٫�b��ADV�'��M�@�֫s��:�ў�D�zԟ;����͑f��� 3�՛��&z��B�.���4˶z���=Ɂ�dWOB���7WJ1��!R�D^��G�<��kdv�p��R�X�ԫ?L.Ǔ�U��ka���R\\6E��v@%ߝ�Wt�C)ݛ�CB�Nةm�0)��_ѐ�L2A���Rz���$\�!D j�
��m5�)��f�kWʩ�	 6O�܌�'�n�	�o<u o��d��__#�e��6���e;�D��WJ�N��+J?9u��v�jB��!=���[*+&���&�N�:Ɋ|�)�6�a�7�N��>v,�ǎ>&;;yE�7u*V����#�&'4|�.�Q�N����/����1�|#��jN�a3%��ҙ'ŏ��|a��Jb���I��$�oR�'���bSb�/77%V�<�UM�D[��4��D�Vo�����������.�%V7��X0{��@kAm�/L5 �2RK�nb"����i~��7�z���RWK��Zb+Sb��7�!J���>�:�OR�����'i��/wW��
l��䮯�f0�";x:����`l^� c�t��3�yc}�WJ�O��WM��<�NO�'̊�z�h�;���P���b�qz՛4Zc8ʄɖ��5�H��@ʤ�Gx�'!%ț�?�<�$o�'���$8�n<q|�T	N	�<�1*
0�8��7�B
Y0���!&�X�G�um�B���I�W	�	���b���8bLĩ�xu?���|�"Z.�hF��R�����c��x��+C��n�ar?���V�J;���p[W�;1|�'����?2m썞�Э3{a��8�ˈ�#��RY(g�)�R� �c�.��<����2ʪ�
k��uI�߉�(�JI)z/��Z�K\ˢ��⤦MT�����(2���)�����"MD�e��9�l�7��H�d=U3t�$)��]j�1�����ÿ��u�O�P�h,��I�T��z�jE��R�/E��"q�\���h^�yORv�k��sz5g��~`�~T�dܕ7����q
����2T�#O0�j�}��p�#�.N~�V��r�4X��I���
���?�K���aW�J����O��.#:*
�`/H�G��70�`_��X���g)�[6ZuI�J��,��q#��&/�|F4(�d��������8�d�0�:�wԴ�U]�����-�]�̗?�� �)9��U����Ns��� �1.g�=a.t��{���	�n���goX<ҡs�hRBƢ����0{�`H�'��T��*V5L�J���pj}�JR4�����{��­2w�)/vJ�jx��	��7�o�+�S�4�J
��`=π��:�u:�d�#F�)��wkH�'��GW�j~z�ܺ���_i�ɷ��I
:�૊_�@�'
��'
�\�v+�������!�,�ݙ�I�/x���
7��0>�������sj����4'���i�Ԇ�ӛ�'	����>P�ϟͩ�NO�x*��m�3�����
����J=��E섆N�X�����<	���- �J��j�Y�-Ճ��T;��4��i�{�[F�9�t��t��2z�4>
�kWʅ`�_�l١��0{�a~��?`64����i�7���?���1����R��4}~G�ӜLF@z�_��|��?�>�
�k��w�~���	�����$�5�����9C@Z�g�1m�茽��?�M�N;�A4�U3�ρ����fu�U3 ss���hȟ���Rh����(��ݨ!~A)?�
8=�{�o��V�TUTj���@P�
�QZ�`���N��N7��� �#���-�D{��R����2�(فy�v�1UFA1�8zEt�8u�.�
->�4��*(�z�`�5�U��$E�~4������kЙU��'�/���sM�]�i
��Ux���[���~Xe�^�����>�	��&�N����r��߹�R����C����׌���H�U��R��a�ԿC���b(��0�A���0�@F���U��f���a���~���DK��V�|r�@��25P�
q�`�z�4�&E�'`ϵ�k�(�qY^sc���N��#ƬXw��FΖ���>�p��fZ�.ZJ�*͐����Px��`����W5��^�&X���6�I1�f����/I1��*4t�O3aGN���Zl�p)`��4��ޅ�z�%�i�0
ޠ���;N�_G�lr�y�&����33�W 1ѥ������w��b5�&�DUKqj��)�����np�.$8��j�]���a�+G	�1����C3�#j`�����DW|����+�O�z�^#XʡM�.^sڟqC�%z)HӒi��&��g��Y�w�w��Y�����#hw�S�1IHQ�����;�y��E���\r��B6p��w�:G{��P�*
&�]����H��j��	̗������|����rDy2�ԃ������c�'�#D{e�^���t��E��S}��2G�=�%%�F�(����R�.�z��X��m�*�`�tڲ��-v�&��w����x�litnhA��AG����	�zPA��,+�s)ZV���x2Ř����a���r�GWh��ס[�G��9uQ��w�x�,���_�sah���k��x�� i��{���ӹ�H?����Q*Ope{����`�n�,��^�k�
M��^�<e��z��+�!������?̀��^٢*&'U�V]G�ii:V��ei��S0�az]*�	�,<I��Q1A���G�B,0&&�BF�Q4�
��~�+�I;#��w`���g���,YI�yL�
��7ʣ}��M��9�0������
1�
D�=|�4" _���Q���p��;x���4$��%3.%��&2�6���EMd�I,�0���\'��1��\���fpK9��=�q���=�
��Є�Oe��Y�M��4Ȝ3x}����6�9h��ywT
ڪ�8U��*T�U~C�7�[��D��5l�&^�MRv�0N���,>����X!A+��sq�[��z֙K������Y��F��ɤ�"K��V^%������[��x��L�hha�Dі���&�4�(j}JoS��D-FW�#TѭGS�<3}U���F

`y�t�+�h�zwSԎ#ӧ*joi�Q�j�Q
��3�P4c{M��K�t�jnSb���y~j�ROJ�:��ͼi�����N]�7�S`9cHK.��\<-:W��vN���pq�㎏��wǸ�~�vv���M�z$=�%���V�/!th�͜<�n��<���mft�@t�����N�c�����w��x�`��g����t����G�sc��f:F�}��e�XdX��#ϩ�:i��G�S�x����������;�a�	~���)�Bc`Y��R�i��
1�)ް��G�C���f�d&
C��Z�)(��YX���I��PE�D��'~��u�C�?�]����ڏ;e��F��!�Xa�ŧHۖ
C�t<@e�[�DgB��v���x�J��u�zQ��%�HU����jz���6W�ڤ�WD��]Y�g�Ât<�������{낢w�.�G��r��{�b��>��1h1�\"f���7Z*����h.O�ݓ��S�f�DL#�/���z�,������#�B7o�D��e)oo�y͗�4O{fI���'�%��HT�w�C77�dG��8Lz��=!6�'�d��}�C.�'g>��tN9����B&���۳�;��gr�:����\�6#�

|���{t,�s��#O���%�Gq��
�e�di��k<k��"s��Y#s��9����:��T���2ҳl��2UGL��]��&��ƥy*BZ6�<��]����A\|�����
�����䩤��y
�4OU����[bv��N�Z�*�2Q���]`�#C��,u���R��?{2�,�"��\�q��1��nN���nP��B���著E��[�12-'S
��"��t���i��F�x�0�
�IA g��&8ð�:"/L�#�	�l*�a�j�Z6+�+ȭA��y$�
�c_����Dnhep�8��YF��	R�~�h]�^v��^L���9�7қ��N�'Q%..*+�ٔ~�U"=3�Ԋ`_g�i�Ω}�R��"��S�F��S�ļ�h���L�ɜ�����܌@��;����܏i�[TJ�|Y�zᐈd�+%��meW`A{wQ�����D%&��]���1��G��I�CD�����,�f�#�LJ!./�#�f|��P��sHV���p�)���i_Am��M�	�k��TK�1;���^3���?,.�e���f�>���~tXTH�#<��t��:����'�����F;��\�M�9�M�vp
ϛK/��L4�r�x�\���Gx������t�ff%xR�	��������c��p7��)v���Ir:����Ng�7�&C�5�ME��J5�iz�{�	m�(8ˑ��JŸ���	�	u�퉞� ������
�v`�������d'�|d&��%�V���a�g�����j��՛5��)���4-g��<��4	��$���u�i���w�R�bh8�7$�)M����}��c��To�2�CN�N�խW{�u�hѮ�{qٽil�w���	cGL���u��P��V�'y��(� �`��#�S�L����G�2|�c�=��W�O���@'ͣg�A�	�D[/}�J�͞����b�h��,\���V!�yy��*y?����H�kx��UHG`�ׁ���o��qey���-2�(��E��Dz�>gW|���5ŤI�k�W蔱�t1��`�{�xw��j�~���l�~u0��c�(HpZ�3�h,�vNܵ�q�}��ͭ\�\�0��G�W����C��~�_0���(�΂i(�[�%[NY�uا+�Ҧ>Z5��=JC{q�]c�\�G�^�#r��3?�_�ʓ|�q���w�<��N)�F��5�_wDz"\���H��a"�O[D���99�������!w$ȳQ͢���C����O����آgX
,MaJ����qۛj��i�����G�7-|�?�A0$��7)ѝ�MNq�`(	�J�N��aNg�ͅ�%v��|T�#�������Y�wdO�?�����5�n0O�v��
|��ͥ��,�
�a�C��C	�B2or��L�Q���������@>TeP����QYH��fPȀh鉖���_fߤ�Dn��J��@��y<CG�;mM�y����cF�l�/:�/��jf�d�͂��0ZtJB�r:cb�x�M'ڌ�k��q&����:��<I����}���בrLRc�'����й&�T[�P�̓�ӆ7����.T4�n�؈�èx&��ƴ]W�-�=	R��ԕ[����&d���\�K���]�,0����rya�ѧ���.Ƶw�pn3�S]5��*�w/�%h����	�l�z2a�re2-(>O�̅i��$Z�:Y�'^~�N����2۷�0�>sc=�����O�[+�
�>��[b���op|�}��8J�S��[�V/L,��az�]O�]�ˡ�T����?@ʲ3��D�X0�f8TU��ǁ/�kO�J�E/�X_�k
G�8�^
`�E���6�o�R��P$8���YH���k_�%��n���c��?�SZ���Ӛ>�GK�C��!��1H޾���O�7"�}"��q�5'{
飷	��TG-��~�BA��ݦ�%ZU��1Q��-y�YY׾�}��+��}ê��7˓�Y�*�zg�o_�uQ�1C?e�(�k3Y֫~-e�T(q�"�<q��T@b��1�҅]Gr��ʤb`���x"�auh����n��oU|U�Bf*�6d�Y�(����P��x"�	w��BƄ~A�TS��+@!�"���B��)d<��޻�w<=-�}!ѿ�|�Y��W�q ����:<Ո�S�h$�J�]�$ԇ%���@��xҲ�i)An��pmt{��1�)���!.X�Y��N̂X6���zK6:rT��;[�/f�(��0)�]m��nDfO���=1��MM�qYј�2�[�+>�'���I���/�k9i���"��M������b!x�5O�!��ss����.�H�Fӎ���ȯ�Є�7�ˍ���"��4�$��l�?�G�+n=���}�L1�W�r�"?�ζD{�`o����r(#AA���ki
dֆ&=�WM�0�
|���ʫˆ*
t�n��ޚ�`�U�O�<��Z��
�:i��#&O `0��C{��;X��(�*�
�m-�^�&C*IQg���|�h��<V�@�/�?��?o�H�	�5�ث��(oj�covB`��ד��?<�c	��2?%�i��8�'�O�y-^�ݮ��a�
�V܊��ͭ��`n�S���1��^�w|ڢ"��E�$[�lQ�$�0�%�+�S�����(�H�y\��}�G�! ]7�>�~�ä �����^ʇ�W�?�\�>�)��Kg��=; ɇ5��MV�&�IX���Cz�r7S>���{�Md
؏��>�(���۪�B����1���q�Hz�=���{�F/|�^�I��S��,��vM��ƷW>?W�JcΝ:���'�{���/0�퀁!��	�
C���`(��;�4��
T�z�Z��z�Z�2;�ﮙ�cfk��v2�+��aSB�s�N�P7'�#(i6�.t-?�F8�K_�P�Ql�_Ly�N�V3{,:��5J��[a����nN�.�ŋ'��'I�d�ၱ2�V��0��^�����=M�w���j��N�	9�F��la�gάΖ�}R�}�U�C�Oyh�E��`�eĉ:Ǥh�s\
0LTal�:�hKz"��9����O><�����,k���a�,Z��hZ��[�e]��]-R�WV��rވ&���]�;K |{L�b���;_x��m�7ɉ�� �u����ܔ;�U�����F�"�|2�u�0�����k�N������Xc8��
��po�Zfn�4�k���]Bka�%�
%!#���*E��R�{�������+�t�8�)GB�<�R������ XqT��2G;Y$���.�1z��Y�(�8��EH6�3��:
��<��t�J�H�T�zo](��1�~{��͛+Pq��W��XQ���́�ق��Ga�6�a��`�>�Js�|�AŸ���Z%��@��wu+���P.�㦯|֍&����m)^�l ŀ=���I<2��-)����)WC�N��<|��U��sC��ѓE�yp6_:Zd`�<���ɉF��Ś[H6�<w�t�T�i����T&q�%s�m�v��wg���(�LC��q?���4���@5"M/?�[
�ŵGy��NjV_.�yQ��r!Džx`��R:,ܠ��WѼ��r��U�<�|��cJ������!3�PC�e��e�Aߛ����@e�A����wU���N)�b��-$<�"�LO)ۣ�{,���X�����Ř����i��r��q�并�=� �j!Y��/4�ԉ�al�E�;����V�NA����=���C���J,G��;4���ET
E�!� ��7��s5��1W����_��M[%*��2���]�Ef���x�AP��GBR<�fӃz���7A�ƨ��0!1�K�l/A�o�잠�K|�`��J "���Q�k�
D$��ya*��`�(hzQ�����U�u�6v�W��+�F�;�d���W1Q�A^.����� E�'�1~�̲H���n��"�^��8�D�v�v�/#����-���V�v`j#�d�z��d����O_�����a���_���v��?|���6J��`:in-~ڛ�=��w�c��x/��[���mX���
�	
o*�܉����N	n�>ҕ/���&&�c�:�˓�)\+�frs�'��L��S�lG`A6M&:<�FQ�K��U�|��&ŏp���&N�'�4}�L"e*��W�]�:��+�Qp����R��	�����CVV�X��?��_��K9	��3�XU�OX�.a �,�_BB^	�%,���:d�@��m�b *�|�5��ᓜ�]ܢ��&й��y�<<h=��pE6~���5h҅�X�۴F9��)OA
.���	�����X���-�}~�&ϲQ@�qL%�����
��W�G�S�~��	��'8�O���4]��G'XGD)K+2$+ZuakVZ�z#�E�r}(���U�u�1�=\��.?�s�#���ߘ��0�Q�Kp��Ѯc@���5�+J��b+	�Lr+��S����E�a�T'�ǥEd�N���>W�����`���~�?��!�4���`��G	�E����Y�VS��@R>��"Hz��?͜ւ�D���a��)O��ܾ���¹�3x}���.o��� ��_GG>��
wb�dE�i�&�����8�6A�/��l&��dCr�Q�.}�s�tr��dJQ�����e_�!h�QO�
k�O[d�$���=�Ow���6?�5�7t�ӝl����d?݃�c�G����	�
���굤1�W�֖�h��B�e�Xr�Q�����|Np��Q�u���@�|�ȝ��Y��uO���s�/iGe�Y�K��9<��q%/w���K���|^�S�ו,z)�'<0Ŵ�EY�Q_kR.��Ȫ}ճ��8���q��YA�c��c��]�����/�',K.S�=U���`�)�N@_��R?��H�v��٪�s�p%��e��.V/br8t��	���Xy�5�˜i+��w&��F�|��B�-���"�wrBT�WsGDv�Mڐ��՗�yD�ϛ �YL�ӛ���F����T�w��h���/B���j�׿����b��%�c'Ӽ!�0�E�u9Z�_QbH�S��O�?�"�ꈗ7땒�ބG��hv)+�4�tD�?��|f���yX��q��aOI��31&�0��6[�#�b�l���f�N�"�.���Nq�8�1����DF@��C�3%%�2�a1Xy�@T`CL���)s��g�N�F�;o1��)���G�%����Y�жO��C�3a���t��7����C���-�J�B4��_7��nT�K-�\A/��	)R��X
�w�
KH�bEC7���y4~��4LU4���0�4��O���@q�.�@�[_��J�ӊr�+}h����s3g[7f�}���u������L���Փ�Ġ����N�Wo�`���t�����1�x}��_��J�S�t�栿s
0p�H���7.�4֬]�h�:=nd<ǫ��S����x��-Ȕ{���1F���bxK@��jZտj����s��ER {��WMÔ��@.3bQDX0g*�%ڮ\�y���rU�U+]�ڊ�[9&�=��M'T����鹭���֎�6O��}C��S�]�y�&z-@f탼��D�lg�A��2��Q=	�2��g�ff����x��WM�N	���+8�Չb�䛓�r(�ˊ�ɉ�G�
���">����;�ɼD�Y�Y�
nnr�H�uN�o��S,\V�-.��W��i�f���t����k��ó��z�VR�L	@��g�bf�Lk^(o������
�qS����U%0A��q<�w^�7N�F����c���=moK��EbHhN�ahf�2k�H�mA�}����	��c󮼌1x#X��3�`|&�-�:RΘ�U�w�.�v�<�� '��xT7�=���2R��q�{PyOA?�€i)���y,`�E�М��$��>V��g��L��q*j��TbfdCp�l�{���D�E�NCu�ϢOt�A�m!W�Ï��
�
(ֶ%0L�F����[P[�L�6�s3�=fK�5,l��)�:���/``���^ҩ����9 !i��wy�E����x��L�s�����.�ߪ~%�H?0�0�W�qw�g��� 7�
+x��M�R�����1�5���$s�B������h[�'_�����S'��򬼪H8��jվ��a	&�]�t+�"Fj�HV��&H����yy��w��>P"�6�m��7c���s�ed�f��D�kQ�k1
���vu��E�%�}ŭl���BSGO����\����@-��L�����%�k��۸(�#���@Qo6���P���UǗ���`�����J���A �"F�F�k��ޙ�
3�-
���C��:o��[@�x�F�t`�տ�I�.:���ZӁM�C�l�MSX9m��[*#<�n�J�[���'�Bapc�AVw�S����F�3�L�F>��Y���T
��%O ���x;��(r���Hr��,ض/�GЌ��yؗ<���|��j�x����y�M��r��h�ŪS��I:�I�"\�!��^t�"|�NM���<ܪ�V^����LU�D�76U���L�u�Us�)tqº���0�fw��N������'q9�'��8$o��֙(�����"�Ua)NU��ך�/�4I���\E��5M�O>��Ɋ��ݗ\�\�P�Sx`�w��z�����C*�����S���SfFa蚂���3e�g;�+�T3#�Xhk�����^�PҷS�뼓��V$�xS�S�`A�.��BJ�x��f��!&���.�Ux#ֹ�&�Xs��5e�N�0OΧ��1҇�9U�����,,��.5	�N'��݃���~��F�SI�TDM�^	Dk>��-O�㳨�]uz�<�LR,}�s	�z�U펧;���0�稽2����CUU�yت��"Ř�p������̪^�Y�<�-ū�"bv[5gD!zS������P��YլeuUE���TU1f�T'jQUQ��
]UQ��E���X��TU!me�o	�؞�BKrC!ZW��UU��MW���UUe�������_�����R|FU���d�UE�vi�������U���:9��(�1P���PK3�U��9�D�c��HjѮ)���J6V�i����PU2�W�X�&[4� Ԭ�j�YU
5ʄ!r�2��Bm�UE��!�K�D�3T��̪R��r@#�UUUBm�U5Ły(Ԩj%66��jT5���UMVBm�U�(��U5��G�����>�E]W�Pm�
��Я"��|�<C]�0ylN0L�9���K5�I�l�9�(a�\�AO���A��=�gy�ْC��F4$�����F��&�]�(۔c�孠�Z�f|���QG�J���ty6��
�i�O�c%j>���S�'J�&^Ď%&�k�bi&�l���'��D؉���BP��de�3�P� .W%�O�	���M�O��|G{��J�v0�r������D=�~:�q��6uE)Ć'(�;��H�� ����7�y���K��Ι����8�(�rjsO�?�j�j�_�ᕧ��-h=L�ÖS�+~t�e��Z����J��G(�k ���!~��a�B�Q�z�w��?��$.95��fg]�.�>0s�� d�s�s��F�g��X^�����G��t�&g
�}U=�
�5&w�Bd=G$I(a5��5�$F�2�qb����kb�
��x���Ϛ7Y�Y���90�U������T�:XO1q�▞9����\�7KIJ�{��x�y�{����7e%r�3���sR38��?��Sx��\3lm酫�J��P�K1GnVV��}���)7�!3�Q��f���3#{�0�J�<&����m��i�ݳ���8��>��]�y�����ɪ�=Ȯ"8T��p�D^������*��4�R'؝�MǓ7���q�x��xu�4�nB��LEy��A�nGLJ�O��-��E�J�|�������Fvg~�=��"N���g��MV.�^���S6ӏ^0{2�$|{�
�m����\s�}�f�ڑQ`*���O5j�E�M�V֨}��%��9�*�F�0�|�M��J��̃��H��_�.�p���A��b���Ἵ�y�7�-�'��u�@�(gou�5�6v���m�zW!�\�ͻ��Ky�'/8�%=�BG^ңou�u�W�rÂ` g��b��T�/AL�ӅEy��I�טO��eu���W�E�`>=���z�`�	�\8�"f����k����|�F�f�xۭ���T?�Ĕ��x�T�ce�=WNc�c*��������G[x뙥=��?�<���
/�-�l>y7��(�']I�AYZh�gb��79
���U]�L��$��\� YrǷ�7yǷܯ��@W)ct�TnUU������1�l!�p��z3�
\OU�B
XO���v�^G�	�ȿ���-����� �ʵLOXb �&?f�4�1�<��k�T�i�;м������v����J5z���	�熽u0*��n`haǣ�=�4oe�x�����I�u���z��;C��E��FR���&���l�'��oU9����n�&��:<�?��)�9S�![)�����s�\��:)��6���g�ͅ�s�O�^_�nA���I'���L����;��b��o[[��)-���+�%�cQ�5�:�P����ӔtU�bȮ{�/�<�e�I���a�g�QC��Q:���ʞ�����d�N~��C��f��y��!capFJ��@W�+iw�����r\�
���g�H�O���a;����uUH	.�W��L�62�bj.WL��t��0�FX�E���y��(
�n�#}���~Y�R���tu9��_�H#z�K��S5e�%e��)\�U��y��
d��@Y��\�������a�,��>2`��;�35e"�K�L�����:�hʐr����9eNNn:����:��r������sEv+�&kh�y�'�ͬ!1Zu�E��P�n��묆���
5)FJ��kďet�rD��m�]���m3FӃ�j�Zm,��3���cf����Ds�Պ$�n*�7���s�ˊ�FcS�T�
�l���觭���sT|��ͻ��Я�����W��7��H^^S����>��`����w����H����╷¤(�����܃��g
B����s��{�X`S��ZO���X[���냅x��V����#��y���]�F��,uZ�捶����~�6�)s�(�y:?et}4s��h�PZ�O�;~��)�dR���ԇ�x����.�>ݕ��R6�X�׀��V[��qlE��zdW8�9y?*=�oH{7��>��\�+ȷ�R�?'E
��N��Ty���HU)Z�����:HQ���R��\��PB�Vr�tZ_|�.G9�`F��
&�{0բat��L�-h�Ɂ\kp�jHm��ˆ���0:���u~V�$��h�F��;ȴ��������%&�_��k灟�Kr&�=z:@򝷥HG5�����q�J�އm�M̡�� .i������\^x
x��1S�'c�H�
{�Uq��_n�vxh�s��X̚�ӿ��d�7�\��ҥM��)���޾R��S�O�\�<�%�{{I�m����
�h�4�ީ��z�ia2�%���u�gX��Y蛡-�"��khmM��2=J���vY���d}�C��:~�����Řć��٪\g
��0�#���|
�s�&��,
�}��Q��Hxd���fRGl�Oy�췍�hJ3�

��$��3�`F����V��?�(�8�Oе9{b�U�?z2ƞ�3��9$�P�hp��������y�?�A��ӕa��:��Xۚ��-�pQ�U�+�a5�v/��B>Ci�/�";P�M�V�Ak�f�:Гźa\ȘdMy'�e!����B�d�W��ç���P6�������-��ܞ�T6�ba?Ds��٘|e���o^�z�f��z�gh�*�m����t�~���|$�dB[�^"�J�6�F��=�!����Y�>�}�7��g���B�r����{�ޕ<�A�OP
�Hz���H!��{I�;�w�RN�:C��
�HDc
���|
|���^����i�ɹ�InZݬ�$�<�g�I���߰���-��c�v��7.}�3����@�=F�1�]�iW�;���a���/H/�U���K��@�x^f_��P�QN8vw���=yw����4���U�VG���b�瑲w�����/�ھz�'����5�Q7����ә�v�<ino&&.��F'q�����9Ԑ�.����g���
b�9�6B눾�r�ޙ',_���b$_G�T�a�[���2I*x7��p� ���ti�=���:ؒS�R��)~�Z����]H���pt�<)�BY
;/ǵsA��:�Ue�J�dƉD1D�<��X�ݓ	��*_�����9������F�u����?��������)�ΗTn^���R0%�R���ʔ���s�[BL鮕�FC^jI_���‚��A���n���Zr�濑���HB�[����.����/B~mN��ž�f9��?��-�����Rv����G�/NB��]���X��`JU]n>��QNƊH�Hzm��P�{��s{#�K�%w۸`%��劣�%�����{1d�)����a��W�(���~�b��H~����e��EN^�~KaQ���[
'������"3�?�1��ꓧ�8�1�����FBڿ���4�߂�:�4�`�C�Ay=���j�%�Vr�*�O�5��,?�sqR�}�W^�3�㎦�A2�W�f�<Ԙ�7�*6n&�#aBZ9u<f��`9�Ɛ#��j���1Ο�"��pg��3E�.�_(��*+bZ>���Ǫ���X�y$&���yB���&�~9�a�"tJ�圯H:AǺ�|ޫ���<���%�l.8"���I�ܦӅJ3dn�S#4��t��*w�])z-<���1�l�<	Zy:2�=�*O1�\8��]���
����P���	z��V�8�Fxyb�R�y�%^Y�K�5���yp;{�	�h�A����HFm0���H��C��KB��s	�Ks���Fn��
��q��N�K�v�tp��>n*udڕ��wis��#�of��m>P�fI�5{�oY
ۼ>�g��kM�F�6��q	"o[��I��{��b�No�v��8�n��ޚDq�K��ї�&DO~]�0o�oʥ�_����K�W�\���9�T��&�V
*��P�&d�<v��N)���f���u��hK��YRZ���
\��o��0�Es�{���	z��0D� 	�@‰?�œ�{Jʽ��~�xW?LG�8��	)�k��_��j[���d�eI�i8�k�&��@�Z��&�&Js�z�A�<.���C���)�rh��v?W�W����w��o�.��z>J�(D׫-,	�
~��mڏ0%;A����u���n�󟴣��O��މ�e�yw����*��u�_��k�Q���4^0���$���~xS�'̓̓�!���}1�;�1k����Jc�-1�3���:�g��MS��Dk<�P[GE�Ò��)L�`��[��	�ѷ�m���$I�a*�(
e���:/�8^�N�����B�j�{Aj�Bڊ������]J',��c�W,k��"����uQ��`u<���ѣ[� �׿!���J�B
+�ܾ}ۢ�2���[�k)�P׌���i���KZJ��G�ٍ�Y!LϮM������x���˶�H����x��t�(bp������SW�<;�g��t�O��g��K9�����mXq50�Ӯh�~��¯�D�����St���ď��4���*C籷�Ƅ�r��EH�6�T�R�;�<��/7�r������W@��N�
���Шo1T�@��Ao�7េw	Տ'H\���IYɮDW�')����3�����X�� ����_��
����P�$W�+>%��HLq��I�
*�Qp��|�}a����,�Gn��t�	�i�mz���Ǔ��kd�b�cL�?u�?���"tꠍ2wB�Q�4�n����gB��k��}�_�s�Y]�m�Ϙ�j�quiv�˸�k�ͻC/߮ao�I
o�L}���O]�0�;zvޖ��&��*?E��+c��]0��u[�cy�?=&ŞW~����\E.G��8{���9Y�D^���.�X|�+�Q�"l�FK"ϟ圞$���8�����}�����~�x�-���x1/�O�}�˓����<aA���/�ɚ�xqo^���x��E� ��ŋ�x,�ŋ�y{��;O�L �[�Irz�@oQ��@�5�ΟfM?��Ç<7��1���x����z���|��A_3>�Y>���v��{Mt�7��~�C^1C��C�0C!��2���Њ��f�<�l�ΐ�f�h��f�$�x#Z��\�!6���[�<e�c�:�z�����D[�/F�0��V��~1�����J�n!;zL�n�d���#_̗��^�=Z3�Y������eb|�˜Ϋ'��Y�a�c�Xuݚӛ��/���	n��n��E�]V~��+sM�b����4^W���?���_tn��I7L�bx�u���ds���js�|��-Qi|�|������8�è���I2���cQ�#��{F1)Z�k�Ӥhte�2�s��H)+��>n��iO8f󞂁�k�}�]���gy������YF3ъ��§��`�D�$�x����M�8�?��;VW�zN�3̄�5[B�(���a[��¤�6��_�=��֔z_ܮ�P*�&�x�U1RʔK��#����$�D?O���N��*�1ګ$�������)ѽ�&!�fŠF'EJ�ǹf���8���D?��T��b�4+�O��j$�4��<G�OCG?�gX�9�۷a�f�#��{L��&���6�qL��Cjw�o�m		Ǘ�_���vo�3!U�w�< �0�Nb����|��I����*IO��]��Ej�@A��U��}���{���4��HW�&'�~
�cJt�Ty�L2���o:I��.�#3%�w07?��+���'���y�s6'T}���F�Q' /.<��^˞b�� �Ϡ��=#�-m�&r^�
���Sv6ϟ�-�ݶ���x�Q9�.w���b��u!RR�d&�ͼ��N\.c��h�8���{s��iVw:G��T�)4�<�	�*��&8�c���G�~��ij�i��>#c-.{�D'�����b4ϒG��7^EeޤS
�$��k���\D
(���U����c�Y�!==���I\NꥎZ]V�*�ߊ<
)�g���3�#)?[��������c�-�ż��k9�uz1��$g�W�E��I:��Ϫ�w\͋jWl�>��~�i��y����m�#P۟y���֨=+U��롘r��s(z	��S�
�����
Oq�S�B���*�ڔxl�v.�@m��ؒt�.w������q\���A�j��C-�w���F~��	=w/o�9|1Z��v�p�^̄��9�v�ϯO��}�wx�\����(��ٯR.}�'<}�
J��B��
'��u��TO�4Bm��3�5�E�O�#��E{~���>�k��d�]Wy�?�s�$�`)n�x���� �DE��)�\�8-\��0��L~|�"��kE��L�d�j�r�җ����p��7J_+
���,��n wO}��=x��_M,1��l�yIEx��N*WY8�6~
1�=t�;���{t�S�`5�+����.CE�hۜq\�Oc�;�׻w�Z�^Kf���U���׺㼥�w�=�Ԯ���y��-�����$�,�)޼�
�B���/�:�턦+GW�+Ǻ(o��ƣB$9��
�(~5�X:��% �FST�0���S�r@-�K�AK�Z�A�/�N���[��"����s:O�r5g���`��Q#��<�o�0�}����z�W�����\���o���d��=	
��	�@W)K�"���hL�;�^��x�ѿL�'�PX�w��!�{XT��P,�vX�JӋ�O~?�@7�������YK�ѿ���o/����#�_�����V�5�SW����.c��|�m(_��{��gΔ�{�i�OD�'�cS:�EN��!�bh\����)� �{�PW�.���f��3��g���FJ^�����U����l���1c��k��'b�]?	J�
/�ڻ��y�9��Ns�67�����=��\��4s�ܸ�%�����奱�!��ێ��v�7x�|o�F��!.o�2¦8�n[^Lʵ�q�@��#*����ϧC����9~��x���橗x�4h�ٔ�z����"�<��)ZX�۳�]��+a�uM.)��r�3/����A�]H����(��Ίgvҕ�W\�jo8w�o���Ղ�j��E����E��SU����v��w��g��W��W!t��,A?Fh[�B�����.?E�@%�ΐc��H`5踏�F�\,����x:
[�C�
]�� ��du�*�p` �o- 6�G���CR��A�ѹ�t#H�M����;���_���u�
���[����x�^��ؖ=>:d7�~)��n�=� ���v�,ڶ뻓�s٨�Pf}����
��:��
A�KA���K�g�C[R��������J ����%�mj_L��~��1^rغ
2��M7l1��I�z��`�ǃ��M'���m^�M����t
�����s|ěR4�M�#`��;���M��\?�ta�:�Q�Vm\�T�6o
ʠ�~��an���S�5��XXchh��L�t�P1�~��x�ak�a��U�K1�@�
�5�,/��������P�ј����Ҽ�=:�6_��D9v���ކ�q�h�N_Nb���lW~���^~���R��kJ���_+@�1�1]�*��p�����q#hiӜ?�>Z���*G���=QӪ�E��gtQ��5��ꊡ�A�����(����Ԧ��<�
�`G�KК�`��.]�Qp�9���U~�}�u��$��o8�X�.;?{�"�g7r��Zh?b�4����v�AuZ�Ճb�Q�I�a���I��8�{;m1�nބ�a�Hc'��o����N�4:���\g�^⃗`���1��<�|��3�j�8S�)��ձ8}�����&7��-ےnOY�'�Q�ߝ]!������Z��͔D瘘�N�;0��t� �s�)Bų\�y�nx����H:FW�|�s踐Z0d�:�l9�j�<x��|���̘f��<�� ��h�eifO���[��]��7�qe*~LJ��ח���	�h-�	%y/��+K��-7Ӿ��=�͖ �?����r2=5J�e{�ѡ�a��f�z���9��9r@�b���(D|��?W��6X�f|�.%F&~+tr3m��fc��)������'���E�Rȵ��{�S��q��*˦b}�<��:��u��?��ڮ>6�"�o����-�{Z�A@�9��T金�D�L#'!�0Հ�V%5��6�c!Ds��@��Ɔ�Tc��J��Hr@�UQ�z��аK��~3�{׺G�(�dn�͛�7s��of�{�W\LÔ�#s�|�dgR��B��R���02Z��l1[`������T���j�;]ߎӵX�
7ӛ2��~z
���g�jVD��^艝���ٟ6�0#��8:�S�^�ޯ1z��b�!i��>�{�n�Y�MR�u�
y�;�
��r�%Py�,	�����f�Z��=���㠷w��0ԇ�R.�]�1�N������6\~���\Ĝv?;㶋���c�y�S۝2���q%=Ǖt��9�ˁ���� �0�ks��B���+� j�Բ�<�y�}���dIwh�Ž)i��ΝF�,�
��{�VYzT*��\�l�#��2*��,죗��Ϧ}�ǖW��yEl�1��;v��r�W�pI��U�#]}׶8��W�j���v,�Q�a�A|��]�(����֪���!=�a�B���a(��o^�o����.�˜�2/a�=��K�il}�������O��I��� AN��& 7G�h���{���Ё�tq�`�
Xs��ٿl�&5(�O<C+��V�H��%b��& �]M�)n4D��O(j�"���s���
�hj�,�$?<l�#�BU�&�yE*�c�~�N��v"�6���lj!!S�6�r�tkK07�S��@Qɬ
3J?��Y��--.����R�dJE7�R�l����]ŗJ��G�[������ny��#���Qů�J�Q6)��)_�����^}R�Z�^�Y�������\srn#-̣ݬMx��l֡�4�>K����g��n���p�n� K,ݙj�b^y�r�G$Y�Q-�ّ� hv�1����RC
���7v��j4)Z�c.t1���\�b����v�֋k?AzB�!�vj"�a�{�Sz�μ�Oh����Fz���M���f=h��B�4�=�pjN��̬6���=ו�6�8}?e�\+?a��Z������i�46��%Ox	���w�d�S��	���j!�l5;ۺ�Uv��Ժ��'.�����ILw�/��5
�˒��ҢF�n�
�^�d,~��A�3�U��E0MJ�sv�ܑS�Tj�`�.��W���D�1 V��U~.!��9W���A?,������6�	M�nR�di��3_t�1��*͊���ӬH�>� ���oK_���w�������I��l�i��T��S�J
�_����8��T4�{izVL��z�ڟ[13��"�&�@�z£�@�S�V�:�bR� b�d���m>��<�2�d�ڊ�z�V��&K�iX����^��/V׸�6{��i��6Ђ�"��z����,M�p�7u
����91N�z���"qW�Yh�h����\�h�Wq���G���֞�yґ�Vk��K�:��
t�m�@g�<�̈́����L�i�Z�����Y�I+�����X��Zʚ�d���rA�ҙ�K7�781��e���/�t��q��J����:v
�z�!:v�q�]���k��_n-O�����:����E���qҧh��
�d3px�c```d����� �\�;�9��x�c`d``�b	`b`�K@��1
Px�c`fb`�����������2H2�0001�23�����080(~``|������� 2�
#x����3�Q�??=-Z��Xz(mx�I)��le���f�Z"����YC�ٗ��zU@/��tSc��W}g��3s�=�|����LQ�^����X���l�*�I/sV#􅱰Z�.|D���H�@�`n��X�"�B�'�%|E��q2/E��B�"������@u��2߅��FqQ��%V�
J����J�-\M!�t��!F��G"�"�t"`�!Ʃ��
j�Ɖ6$�)�����i�
?\�ăzJ(��rHĎ:2�$�P�g�I�q��"�if{0C��ԫ�VLȥ���b�QF觏^j��Z��l�����RsK���d��zְ�u�;�%�s\�+�x�unO�H"��B�
ld�ق1[�Ċmز�]�f�9�A�8�a|8�/���'��$�Nq�3��<��e�p�TnS�=��<�	Oy�s^�W����'>�EnE����.FJv��0��(�]���1084^UYQS��45=���������Q_RZV��hW���>1���XT�<f�`�6�hi5�m�������4�������O
�Ax�c`d``�W���m�2p31���0w���� ��,
$T
x�c`d``|����? 	A�y{
x�cb�&N��h|d���h��6��
��p��} \��ǧo0`d� Q�p!^
��ٸ�A�?&2�C���8@L:!82 ~�<�ZK�!H&0�E�"#ȀiWeP�x�u�1jA���� �`Rؤ�egS�,lR؋� �
9I*�`�c�9B���5)����x䓌��x`b�����a�K��m<��+g���<uSW�_��4Tƹ��g����X�!�TE����e��w-'v�Iz���[��w�z�#�)�昫��i^�`����iM������rsg�"�YQW^�{[)5q`k��g�a�����#�7�x�c`f�}jui/fonts/IcoMoon.eot000064400000061170152177723720010562 0ustar00xb�a�LP�8F��IcoMoonRegularVersion 1.0IcoMoon
�PFFTMf5�a�GDEFa� OS/2O�� XVcmap�k+�Tgasp��a�glyf%|��	�Qhead�QK�6hheaR�$hmtx.b���loca0�E��maxp7�8 nameN�spZ��postV^\t��F8_<��VG�VG��@���.@�@��� @�LfGLf��PfEd@!���.�!��`@`�����  1 1 `@@p`@@ �    @     @  	 @@B    e`5`` N2& }�$�	��)�2�9�D�I�R�Y�i�q�y�����!���� �0�4�@�F�P�W�`�q�s�����$=LM$�$6HZ^hnrv�u�����b;45YZz{V���������6�KLM�����E�:I9?=�����qr1�}�STU��78�����23 !"���������������'&()/0	

*�|~`cf���nop��st�w#$%+,-.<>@ABCDFGHJNOPQRWX[\]^_adeghivxy��������������������u�����b;45YZz{V���������6�KLM��ʲ�E�:I9?=�����qr1�}�STU��78�����23 !"���������������'&(�����,j��$0<HVh����
*Jh����8hv������:^���.`��� V��� Lf���		.	R	�	�	�

2
b
�
�
�
�
�@R����$N�����

,
P
j
�
�
�2d��~���4d���8Vx�
2b�:X��>~��2R���@���*\���,�������<t��l�Df��4Z���D�� �!"!>!b"N"�"�##X#�#�#�$($L$�$�$�$�%*%j%�%�%�&&H&�&�''<'t'�((N(����!�����3Mg627'..#"7'&%4&#"&7627>'>6&/"/732654&'"&4?'32676?y#39'(	r3r�('=r2r
"2	":r2r"
2?&("�r#3(%9rI2!(%>r2ru("	r2r#2=&��9r3r#
3	('sr
#3:%(r@�577`��`��`��``�����`��`�`��` �''`��` `��`�@����7'7'@`��`� `��`�����
'	7'3�`�`��@�`��`��`���
7	#``�`�@@``�������'"&462264&""/"&="&4?62�Ԗ���z�zz�m�	
II
	�
JԖ�Ԗ��zz�z9�
	J�

�J	
�	���'"264"&462/&"#";2?64jԖ�Ԗ��zz�z9�
	J�

�J	
�	�Ԗ���z�zz�m�	
II
	�
���'$4&"2$462"?64&"54&"'&"2�Ԗ���z�zz�m�	
II
	�
vԖ�Ԗ��zz�z9�
	J�

�J	
�	���'2"&4264&"?6232+"/&4�Ԗ�Ԗ��zz�z9�
	J�

�J	
�	�Ԗ���z�zz�m�	
II
	�
��� %'�������`A`?'���`����� 7��� ���_A`@��`��� ��'7�������`�� ����;#53#53###5#�������`�� ` ` ��``�3#73#73#%'#3  @  @  ��``@�����`�� ����3#3#3#7#5##�������`���     ���``�3#'3#'3#%73#�  @  @  ���``@�����`��1����55&.> ��@V%#)8bd|�� 5FD!%YWQ<# ����>.'76}%V@��Ab8) !DF5 ��|#<QWY1����755.>�%V@��Ab8)�!DF5 ��|#<QWY ����7'7>&'�@V%#)8b\|�� 5FD!%YWQ<#�57&5463235&".)*ApPP8H�KKԖ�8d$09WPp8H�KK��"'3'632>54j�KK�H8PPpA*).�KK�H8pPW90$d8j���%'#53'3#553#7#53�`@``@`��`@``@`�`@`��`@``@`��`@���
''7'#57P`0`PP`P�P`��P`0`P��`P�P`���
7''7'%#57�P`0`P�`P�P`��P`0`P�`P�P`���
''7''537#7'7#57Ej6jE�j6jE��E�Ej6ljE�Ej�Ej6jEEj6jE��{E�Ej66jE�Ej���
73''7!'535#57%7#7'7 �Ee6e6e6eE��Ee6e�E�Ee6��Ee6ee6eE�@�Ee6e6E�Ee6` ��
`@�����@ ��3#3#@��ࠠ������@ ��!!@������p0��7'' �����������`0��%55���0��`���@ ��7377''@@���� �����������@ ��#5555�@�����������`�������"264"&462%jԖ�Ԗ��zz�z���Ԗ���z�zz��pp���"264"&462%3#73#jԖ�Ԗ��zz�z��@@�@@�Ԗ���z�zz��������"264"&462%3#jԖ�Ԗ��zz�z����Ԗ���z�zz������264&"2"&4'7'7�Ԗ�Ԗ��zz�z0pp�pp �Ԗ��:z�zz��PP�PP���"264"&462%7jԖ�Ԗ��zz�z��pp�pp�Ԗ���z�zz��PP�PP���&#">3235"'7#73267'�KjQ�<b=P8H��P8H�KKjQ�<b�K\J8E8H��@8H�KK\J8E���(1'"63".'.'&#237'2767&'�a8(W1
8a1
8a����a8(`�`0#0``#%
0@#%
0`��`@0#0���%'&654&"3276&$"&462�y.p�ppPG6g
&��jKKjK,g6GPpp�p.y&�KjKKj���!##33535#654&"3277$"&462� @@ @@!g�ggI9.�@��jKKjK�@ @@ w.9Igg�g!�@�KjKKj���3#654&"3277$"&462`���!g�ggI9.�@��jKKjK@ W.9Igg�g!�@�KjKKj����!#57'762!37!"3!26=��P�kP._���@�`8�P�5P.��@@������	2'767''7�!/ p �� �(p���/! p ��� (pn����
7"67>&&>7>�-!>Q	%I8P%#$"$
I�$&"=.$I
$"$#%P���##54&+"#";;26=326=4&�	`	�		�	`	�		 �		�	`	�		�	`	� 3!26=4&#!"	�		� 	`		`		����+%'7676/&'&'&76??6'&���I
��
I��I
��
IE��
I��I
��
I��I
�'��pP�@��pP�@���"264#5#53533jԖ�Ԗ�@��@��Ԗ�Ԋ��@��@���"264"&462'##5#53533jԖ�Ԗ��pp�p@`@``@`�Ԗ���p�pp�0``@``���"264!5!jԖ�Ԗ`��@�Ԗ�Ԋ@���"264"&462%!!jԖ�Ԗ��pp�p����Ԗ���p�pp�p@���"264#'#57'5373jԖ�Ԗ�SS-SS-SS-SS-�Ԗ��SS-SS-SS-SS���"264"&462'#'#57'5373jԖ�Ԗ��pp�p`-33-33-33-3�Ԗ���p�pp�-33-33-33-3���
"264'77jԖ�Ԗ��j/;��Ԗ����1K����"264"&462'77jԖ�Ԗ��pp�p�j/;��Ԗ���p�pp�P�1K����"264%3##535#533jԖ�Ԗ��@@`�  ` �Ԗ��6@� � ����"264"&462'3##535#533jԖ�Ԗ��zz�z�@@`�  ` �Ԗ���z�zz��@� ` ����"264#537+#546;5#532jԖ�Ԗ�@@`& @& ��&�Ԗ���@�&  &@@&���&2+#546;5#53#"264$2"&4@&& @& �@@@v�zz�z��Ԗ�Ԗ�&@&  &@@�@pz�zz���Ԗ�����"264#535#53jԖ�Ԗ�@@@@�Ԗ���@@����"264$2"&43#3#V�zz�z��Ԗ�Ԗ�@@@@�z�zz���Ԗ���@@�����%&"3!26&"&462'#'462��$�
��
,
��L   M�

����!2#!"&7462"42#'4�X�$�
�N
�
,
�����L  ����
``
���!!! �@��� ����
!!!'7 �@�`�`@���� �P�`@�����!!!!! �@������ �`����!!�����"264"&462jԖ�Ԗ��pp�p�Ԗ���p�pp����"264"&462$462"jԖ�Ԗ��pp�p��8P88P�Ԗ���p�pp�(P88P8���<62"�Ԗ��vԖ�Ԗ ����!%7'777!#3!265#54&+"#!5+53�gI���@&@&�
@
@`@@Sv:z������&&� 

 @@ ���3#%3#3#%3#�� ����� ������@���	���#3#73#73#3#73#73#3#73#73#��������������������������������@�����@������@�3#3#3#��������� � ����3#7!!3#7!!3#7!!���@������@������@����@���@������3#7!!3#7!!3#7!!���@������@������@���`@`�`@`�`@���#%!"3!264&'!"3!264&%!264&#!"���&&�&&��&&�&&�f�&&��&&`&4&&4&�&4&&4&@&4&&4&�
!!33�`�``@@�@�� ���@@�3!�@��@����'#!##5#53533 @��@@@@@@`@�``�@@@@@�	'#!#53 @����`@�``�@�
;!7#!#�6

��@����7	��` �``�
'#!!3;##33535# @� �@�6

��@@@@@@`@�``��`7	@@@@@@�
'#!!3;3# @� �@�6

�����`@�``��`7	�@ ����
!!!!3`��� �� `�����` ����
!!!!3!!5!!5!!`��� �� `����������`� ` ` ���%5##33535!335'!!5!�@@@@@�  ` ��� �`@@@@@@``���� ���%3#!335'!!5!@���� ` ��� �`@�`���� ���'77!335'!!5!``)7� �  ` ��� � p)8  `���� ���!335'!!5!%75#'#3735  ` ��� ��3-33-33-33-�`���� @3-33-33-33-���	#5'#3!'#'#'33!!53533�``�@`33�33��`���`@`` `��� 33�3@`�`�` ����#2AM#54&+54&+";;;2654&"54;2#""54;2#"+"54;2������(�� ��`��0�0�@0�80�'%#'54&+"#";26=73;26=4&�2v
P
v2

P
vv
P
��d

d�
P

d��d

P
���UY]ae%#54&+5326=4&+";#"#";26=4&+53#";26=4&+53#";26=4&#53#5353#53�!�

P

�!

P

�

P

�

P
�n@@�@@@@�@@`h!@
P

P
@!h
P

P
``
P

P
``
P

P
`@@@ @@��@�!!!!!!5!!!!�@��@�����@ @�@�@�@�!!!!!!'!!!!�`@��@��`���@ @�@�@�@�!!!!!!'!!!!��@��@������@ @�@�@�@�!!!!!!!!!!������@ @ @ @ @�%!3#!5#5!!��``����@���    @� ����!"3!2654&"&4627!!���@�			��� ��`��			'�@����!"3!2654&"&4627!!���

 
�w�� �
�@

�
�:`�!3!265'3533%7!���`	�	��`�`�� & �`��		P��``�  �!3!265#5#7%7!���`	�	��`���� & �`��		P�``���  �%!5#!5'#5##���@�`@`��@@�������%!5#!5%3353'���@��`@`��@@�������
-5%!57��@������Q��J����
%!53!5%5%���@����������Q�� ��	%7!!#!'#57'`@��@��A�-�A�@��@���A�-�A ��
!!!'!/75#`� ��@�� � �`I�I`������@��@ �� i`I�I`��� A'&"7&/&4?62764&'"/&4?&72?64'�$d#n##(m61
M#�(m61
M##$d#n##�##m$d$(6m62#M#dy(6m62#M#d$##m$d$ �!#''#!462"  `@�` ��((�������0��@d(( �
!''!462"%!3!@� @I7����(($�@ �`��@��k<\�d((� 
�$,4<D"6'&>02>54&2"&4"&4626"&462"&4626"&462;e?#$=C$@=	 
��i			-{6%%6%D((�$9B,K3"	*(	Z �			7�((d((�!)-6264&"%#.+"#"3!2654&"&4627#53�=V==Vp�p

�
�vSSvSR@@�V==V=H
��

 
��SvSSv� @�"54&#!"3!26=3276=4&�Z�� Z
`?5�5?		� �&"27645�p�pp�p����T�TT���`���3"&46325"&4632� B\BB./!�B\BB./!�!//B/�9�!//B/8 ��-%"&'56726'4>."3;4.7!!,!	
		LG��GL� +2

&		#==#���,U%.=6726'0>."13;4.67&'&'&767&767&#"1336o
&
	A=��=A�"% L
	A=�M%*

		

* 44
B$	F	

* 4 �#'+!"3!26=4&463"&462#23#535#535#53���&&�&&�f/!(!/ࠠ�����&�&&�&��5K((K5 @ @  ����%)3#53#3#3#!2"&4#546;23# 00000000@��4&&4&��%@%��00P�PpPP��&4&&4� %%@P �7>37'"!536767#!5�&I.��[e��?!-��@�
!`��`_��	���* ���7#5355#5337!#5���``@�� ���� �@@``@�```�` @������%5#535#'!#5!35���`���` ����@@@`@�``���@��`���2+5#"&5463���P������@�&2+5#"&=4632+'#53535#5����P�f~b` �����`���@WW�@ �#2"&=463"6!2"&=463"6p/AA]B�]B/		(/AA]B�]B/		B\BB.]�@/		B\BB.]�@/		 �#%"&462#52767!"&462#52767�.BB\B�]C/	��.BB\B�]C/	�B\BB.]�@/		B\BB.]�@/		���"2!";732654&232"&54767232"&54767�`P����.%%6%+#2�.%%6%+#2����� �.%6%%D0(*.%6%%D0( �%4<+"=4'&#1"+"=4>76312"2;2'&'"&462�	
x
*,,*
x
	F��-�",��.Z6%%6%x





(�' LigM%�%6%%6����!%#".54>76&#"3>54&`$*#[0Q^�0 5j�#*$j00�^Q4[@�

%!7'!'7!F���F-����ׁ(�؁?(�������

%!7'!'%!'F���F-�����w�(�؁?(���� �
#3!26=##'#73`��
�
�@�@V�����P0

0P@@�� �#3!26=#'3%73%3'#!'!`��
�
�� ��ʅ������PN�����

�@  ��` ` �5#54&+"#"3!2654&%3##+"&=#+"&=#5!�
�
�

�
�Ӏ� @	 	�	 	@�` 

 
��

 
  �0		00		0 ���	5"&462���\((����((���	#?'462"���@���0((�������(( �*#"2?>=4&"&462&/&4?>3�p0��(�@((�K� ��0���(��0p�((���(�� �
-5#"7>572"/&4?>3&/&4?>3$462"�`�u�
�(��0��� ��0�`�
�u��p0��(�����(��s	����#+%&67'#"&5#'632347>7&"&462�#2)9d
O#2
#2(9e
N#3�V==V=�#NW
9)#W
#NW
9("W
 =V==V���'/�?'&/#'737677'6?5'&"&462%5'&'7'&'7'&'7'&/#'''77737677'677'677'67"&462�	 	##	 	##=p"
! !
""
! !
q:)):)w##	 	##	 	?� !
""
! !
""
!0):)):����%'&/>"/&462��	$�3 %��
/.B��U��% 3�$	�
./#�����#'7&#"&#"732654'732654�<@<(8�(8<@<(8�(8�<@<8(�8(<@<8(�8(����'+/?CGWc#";26=4&'3#3#7#";26=4&'3#3##";26=4&'3#3#!"3!2654&#!"543!2�@		@		7    �@		@		7    �@		@		7    X�p�	�p�@	 		 	`P`Р	 		 	��`P	 		 	�p`���P��(����',"264"&462&462"462"&462"35'jԖ�Ԗ��pp�p�M�M@ �Ԗ���p�pp��
�  � ����"&476752654&'3#@/^�^/FZ���Z�@@�D/�^^�/DwK]��]Kw^����%"26=7546762"'&'&'6jԖ�%6%��/D�D

D�D
�/!0��

��0!



���	
!33!265!3#3#3##5##"!4&@
@
��@@`@@`@@@���%%

`@����  %%@����'#54&"#"3!26=4&"&4627#5462� KjK 

@
� �&4&`5KK5`
�

�
��`&&@����'$"&462'5462354&"#"3!26=4&#
`&4&@KjK 

@

@�`&&  5KK5`
�

�
���";53535373264"&462��^�
 @@@*B^\((�^B�`
 @@*
^�B((���"+5"264462"7'64'?'1&"/62&4?271"jԖ�Ԗ��8P88P�Y

=�%4)Z�/*

Y�4%)Z�Ԗ�ԒP88P8
%4)Z�Y

*/�4%)Z�=

Y���+"26=4"&'26=4'"&'26=4'jԖ�Ԗ����Ԗ����Ԗ�/!@!//!@!�
@!//!@�
@!//!@B����@Qc"&'&'&'&'&'#"'.?676327&'&'&?76327'32676'&'&'&#'327>&'1"�,


,-)% 		kk		 %)&
4�
 7

7)-$! RH,#	��	#,HR !')G'		+?		'+���%'#377735� @@`@`z+<F9S� ��`�� ��f�O-9 ���%7'5'377%'#7'7_agy+K�E�@��&B'>55�E�K+yga_�@�?55>'B&@�	!)"267&'"'&'67672654'"&462R��$$���$$^..:�:..KjK|((�XHHXXHH..%%..5KK5((�&0;#"'732767&'"'7#&#"32.5466767&�;!$�R.,'D:.,��K�n*-R�$ ;[��6�.*L*BHX'%.,��5K]nXHA*Zł6c.+#���
%'53"264"&462Ii@W
Ԗ�Ԗ��pp�pij�sVI�Ԗ���p�pp����"264"&462/#35&"&462jԖ�Ԗ��zz�z�� P� s�Ԗ���z�zz��P �P @@��%6462"">27&"627&"627�T�}-)p�p)-�dW 9�9 Ot&XS`:3.44.3&)#BB#7,!! ����!"&463!!"3!!!���0��&&��� ����`(�&��&��� ���3!7���������@��#!!!";!5326=4&#536"&462��`�@

``
����


�@ 
�
��
�
���z


���(!"3!2654&"&4624&#5234&#52���#22#V#22��%$BZ?Y0�mY�X�2#��#22#V#2�`$$@Y?Ym�?X�Y����#'373#73#73#3#73#73#'3#73#73#%3##5##5#!!!�@@`@@`@@��@@`@@`@@`@@`@@`@@��@@`@�@@� �`� @@@@@�@@@@@�@@@@@@@`    �� ` ����#'+/37;?CGKOSW[_cgkosw��3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#5##5##5##!!!@  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @   @ � @@� �`�@                                                           � @  @ � �@` ����#/;GM]#"&=#"&=#"3!2654&!!$26=4&"26=4&"#3#3#;5#3!"&53!26=�0�0

�

�����			�			@������@ @ T��
h
�




��

`
�� @	@		@		@		@i @ @ � ��



����
75"2654'7.#�]���� kA����]5/@8D��5!!73#73#73#3#�@@@`@@`@@`@@@@�`��@�����#',048<@DHLPTX\`dhlptx|������!#5##5##5##535#535#535#5#!5#7'75'77'7/77//7'//77/%???7'?7'7///7'7'77/''!5�p�p  ��Q @P� @0 �� 0� 0 ``���pp@�0~n~���~^~\��~d���e������~<���������w��{g�+����zu�
j�
����-�`@�����''7''7'>7''-Z2Y-Z9++9��;GH:�#@`@S-Y2Z-Y9+�+9r;#�:HN@`@ ����75'75���@�����```��P�P��P�P���O#".67>."+"&'.67>;2>'.>2;2654&�T

	 <!	
\\	!< 	T`f
			 <!	
I> ����2'2?64&"01270317'01"&4721762"&47]!�(9�"C_"�/^�/� �!_C!�9(�
<!�9(�"_C"�/�^/� �!C^"�(9�
e����""3>765427527"@�[
&#!$8�D04pD�Y@=-
+)
a,@��)

&
0//	���#37577'700ppX��X�00�� p �00�X��Xpp00  p `����">54"&462B�^!//7*#xP88P8�^B-iWJSQk-B�8P88P5����!-6767&'%.'>&'&767�9%%9;AA4^99^4
)%//%)
i(>>(KP\\PR�S&&S�$$7"##"@rQG,(		(,GQr�;$$;k�66����.#>7>7&%3#�"?=,D#37b'`p��@@�(�H4x����-1323"#"'&#"'632323>7#"&'.#3#�(W8
 2) *!S0#.:)2I$"?�@@�
!0+
!�54
&*(�`����7`�����`����	7'!`�� ������M����".#">54&x&AA&8P5KK
#XD7P�'!!'P84fH9@Dg48P�-!'.54632632"67654&#"'.$Q?2Y>=,,=>Y2?Q$w$3d)33)d3$**;@a1=V))V=1a@;y1"SS##SS"122 ����*%2###"&'>5232%3#"&=46;�&GZ?^�
`�� @

@�00$))y;	(H-00P������*"&63&>34632".67#"&6#532+50&GZ?^�
`� @

@00$))�y;	(H-00P����	/7'7'?�OO�����p[}88}[��|�SS�6:|XqqX|���	/7'�OO�����8}[��|�SS�6qX|���	/7'�OO������|�SS����#"264&2"&4&2"&4"&'7267jԖ�Ԗ���VI)3<3)�Ԗ����*$$���+264&"2"&4462"6462""&'726�Ԗ�Ԗ��zz�zP�
)IVI)3<3 �Ԗ��:z�zz�z$**$���#"264&2"&4&2"&4."'>2jԖ�Ԗ���3<3)IVI�Ԗ���$**$���+264&"2"&4462"6462"'>2."�Ԗ�Ԗ��zz�zP��)IVI)3<3 �Ԗ��:z�zz��$**$���"264#5362"&4&2"&4jԖ�Ԗ�����Ԗ��� ����#264&"2"&46264&"264&"3#�Ԗ�Ԗ��zz�zP���� �Ԗ��:z�zz�� ����%462"$462"5!4&#23!5!"&5@(($((D�`%
%���
((((�% 
�% 
���#'+/37;'654&"323#723264&"#3!35#535#53#535#53#535#53�X
J�J
Xj  �  ��@@@@�@@@@�@@@@ t
``
t@�@�@@@�@@@�@@@ �#'+/!"3!2654&!2!546!"&=!%3#73#73#�`��L�	�@	��`	�	�i  @  @  ���  	00	��	��	`@@@@@ �!"3!2654&#53#53#53%!5!�`��|  @  @  � ���� ��@@@@@@`�(#x���			F0	�	�	�IcoMoonIcoMoonRegularRegularFontForge 2.0 : IcoMoon : 11-9-2013FontForge 2.0 : IcoMoon : 11-9-2013IcoMoonIcoMoonVersion 1.0Version 1.0IcoMoonIcoMoon�	


O]IJKL_^` !"#$6GH@A,*
%.&-'()*+(,-.+/ !"01234;<=56789:;<=>?@ABCDEFGHIJK45LMNOPQR8S9:TPS	UVCDWXY0123Z[\]^[_7/`B)EaMNbQRcd\eT&'fZYXUWVFghijkl>?#$%mnopqrstuvuniF000uniE200uniE005uniE006uniE007uniE008uniE003uniE004uniE009uniE00AuniE00BuniE00CuniE00FuniE010uniE011uniE012uniE00EuniE201uniE202uniE203uniE204uniE205uniE206uniE207uniE208uniE209uniE210uniE000uniE00DuniE211uniE212uniE213uniE214uniE001uniE002uniE215uniE216uniE217uniE218uniE219uniE220uniE221uniE222uniE223uniE224uniE225uniE226uniE227uniE228uniE229uniE230uniE231uniE232uniE234uniE235uniE236uniE237uniE238uniE016uniE239uniE017uniE240uniE241uniE018uniE242uniE243uniE244uniE246uniE247uniE248uniE249uniE01CuniE01DuniE01EuniE021uniE022uniE250uniE024uniE251uniE252uniE014uniE015uniE01FuniE257uniE258uniE259uniE260uniE261uniE020uniE262uniE263uniE264uniE265uniE266uniE267uniE268uniE269uniE01BuniE271uniE013uniE273uniE274uniE275uniE023uniE276uniE277uniE278uniE279uniE280uniE281uniE282uniE283uniE284uniE019uniE01AuniE286uniE287���ɉo1�VG�VGjui/fonts/IcoMoon.ttf000064400000060724152177723720010574 0ustar00
�PFFTMf5�a�GDEFa� OS/2O�� XVcmap�k+�Tgasp��a�glyf%|��	�Qhead�QK�6hheaR�$hmtx.b���loca0�E��maxp7�8 nameN�spZ��postV^\t��F8_<��VG�VG��@���.@�@��� @�LfGLf��PfEd@!���.�!��`@`�����  1 1 `@@p`@@ �    @     @  	 @@B    e`5`` N2& }�$�	��)�2�9�D�I�R�Y�i�q�y�����!���� �0�4�@�F�P�W�`�q�s�����$=LM$�$6HZ^hnrv�u�����b;45YZz{V���������6�KLM�����E�:I9?=�����qr1�}�STU��78�����23 !"���������������'&()/0	

*�|~`cf���nop��st�w#$%+,-.<>@ABCDFGHJNOPQRWX[\]^_adeghivxy��������������������u�����b;45YZz{V���������6�KLM��ʲ�E�:I9?=�����qr1�}�STU��78�����23 !"���������������'&(�����,j��$0<HVh����
*Jh����8hv������:^���.`��� V��� Lf���		.	R	�	�	�

2
b
�
�
�
�
�@R����$N�����

,
P
j
�
�
�2d��~���4d���8Vx�
2b�:X��>~��2R���@���*\���,�������<t��l�Df��4Z���D�� �!"!>!b"N"�"�##X#�#�#�$($L$�$�$�$�%*%j%�%�%�&&H&�&�''<'t'�((N(����!�����3Mg627'..#"7'&%4&#"&7627>'>6&/"/732654&'"&4?'32676?y#39'(	r3r�('=r2r
"2	":r2r"
2?&("�r#3(%9rI2!(%>r2ru("	r2r#2=&��9r3r#
3	('sr
#3:%(r@�577`��`��`��``�����`��`�`��` �''`��` `��`�@����7'7'@`��`� `��`�����
'	7'3�`�`��@�`��`��`���
7	#``�`�@@``�������'"&462264&""/"&="&4?62�Ԗ���z�zz�m�	
II
	�
JԖ�Ԗ��zz�z9�
	J�

�J	
�	���'"264"&462/&"#";2?64jԖ�Ԗ��zz�z9�
	J�

�J	
�	�Ԗ���z�zz�m�	
II
	�
���'$4&"2$462"?64&"54&"'&"2�Ԗ���z�zz�m�	
II
	�
vԖ�Ԗ��zz�z9�
	J�

�J	
�	���'2"&4264&"?6232+"/&4�Ԗ�Ԗ��zz�z9�
	J�

�J	
�	�Ԗ���z�zz�m�	
II
	�
��� %'�������`A`?'���`����� 7��� ���_A`@��`��� ��'7�������`�� ����;#53#53###5#�������`�� ` ` ��``�3#73#73#%'#3  @  @  ��``@�����`�� ����3#3#3#7#5##�������`���     ���``�3#'3#'3#%73#�  @  @  ���``@�����`��1����55&.> ��@V%#)8bd|�� 5FD!%YWQ<# ����>.'76}%V@��Ab8) !DF5 ��|#<QWY1����755.>�%V@��Ab8)�!DF5 ��|#<QWY ����7'7>&'�@V%#)8b\|�� 5FD!%YWQ<#�57&5463235&".)*ApPP8H�KKԖ�8d$09WPp8H�KK��"'3'632>54j�KK�H8PPpA*).�KK�H8pPW90$d8j���%'#53'3#553#7#53�`@``@`��`@``@`�`@`��`@``@`��`@���
''7'#57P`0`PP`P�P`��P`0`P��`P�P`���
7''7'%#57�P`0`P�`P�P`��P`0`P�`P�P`���
''7''537#7'7#57Ej6jE�j6jE��E�Ej6ljE�Ej�Ej6jEEj6jE��{E�Ej66jE�Ej���
73''7!'535#57%7#7'7 �Ee6e6e6eE��Ee6e�E�Ee6��Ee6ee6eE�@�Ee6e6E�Ee6` ��
`@�����@ ��3#3#@��ࠠ������@ ��!!@������p0��7'' �����������`0��%55���0��`���@ ��7377''@@���� �����������@ ��#5555�@�����������`�������"264"&462%jԖ�Ԗ��zz�z���Ԗ���z�zz��pp���"264"&462%3#73#jԖ�Ԗ��zz�z��@@�@@�Ԗ���z�zz��������"264"&462%3#jԖ�Ԗ��zz�z����Ԗ���z�zz������264&"2"&4'7'7�Ԗ�Ԗ��zz�z0pp�pp �Ԗ��:z�zz��PP�PP���"264"&462%7jԖ�Ԗ��zz�z��pp�pp�Ԗ���z�zz��PP�PP���&#">3235"'7#73267'�KjQ�<b=P8H��P8H�KKjQ�<b�K\J8E8H��@8H�KK\J8E���(1'"63".'.'&#237'2767&'�a8(W1
8a1
8a����a8(`�`0#0``#%
0@#%
0`��`@0#0���%'&654&"3276&$"&462�y.p�ppPG6g
&��jKKjK,g6GPpp�p.y&�KjKKj���!##33535#654&"3277$"&462� @@ @@!g�ggI9.�@��jKKjK�@ @@ w.9Igg�g!�@�KjKKj���3#654&"3277$"&462`���!g�ggI9.�@��jKKjK@ W.9Igg�g!�@�KjKKj����!#57'762!37!"3!26=��P�kP._���@�`8�P�5P.��@@������	2'767''7�!/ p �� �(p���/! p ��� (pn����
7"67>&&>7>�-!>Q	%I8P%#$"$
I�$&"=.$I
$"$#%P���##54&+"#";;26=326=4&�	`	�		�	`	�		 �		�	`	�		�	`	� 3!26=4&#!"	�		� 	`		`		����+%'7676/&'&'&76??6'&���I
��
I��I
��
IE��
I��I
��
I��I
�'��pP�@��pP�@���"264#5#53533jԖ�Ԗ�@��@��Ԗ�Ԋ��@��@���"264"&462'##5#53533jԖ�Ԗ��pp�p@`@``@`�Ԗ���p�pp�0``@``���"264!5!jԖ�Ԗ`��@�Ԗ�Ԋ@���"264"&462%!!jԖ�Ԗ��pp�p����Ԗ���p�pp�p@���"264#'#57'5373jԖ�Ԗ�SS-SS-SS-SS-�Ԗ��SS-SS-SS-SS���"264"&462'#'#57'5373jԖ�Ԗ��pp�p`-33-33-33-3�Ԗ���p�pp�-33-33-33-3���
"264'77jԖ�Ԗ��j/;��Ԗ����1K����"264"&462'77jԖ�Ԗ��pp�p�j/;��Ԗ���p�pp�P�1K����"264%3##535#533jԖ�Ԗ��@@`�  ` �Ԗ��6@� � ����"264"&462'3##535#533jԖ�Ԗ��zz�z�@@`�  ` �Ԗ���z�zz��@� ` ����"264#537+#546;5#532jԖ�Ԗ�@@`& @& ��&�Ԗ���@�&  &@@&���&2+#546;5#53#"264$2"&4@&& @& �@@@v�zz�z��Ԗ�Ԗ�&@&  &@@�@pz�zz���Ԗ�����"264#535#53jԖ�Ԗ�@@@@�Ԗ���@@����"264$2"&43#3#V�zz�z��Ԗ�Ԗ�@@@@�z�zz���Ԗ���@@�����%&"3!26&"&462'#'462��$�
��
,
��L   M�

����!2#!"&7462"42#'4�X�$�
�N
�
,
�����L  ����
``
���!!! �@��� ����
!!!'7 �@�`�`@���� �P�`@�����!!!!! �@������ �`����!!�����"264"&462jԖ�Ԗ��pp�p�Ԗ���p�pp����"264"&462$462"jԖ�Ԗ��pp�p��8P88P�Ԗ���p�pp�(P88P8���<62"�Ԗ��vԖ�Ԗ ����!%7'777!#3!265#54&+"#!5+53�gI���@&@&�
@
@`@@Sv:z������&&� 

 @@ ���3#%3#3#%3#�� ����� ������@���	���#3#73#73#3#73#73#3#73#73#��������������������������������@�����@������@�3#3#3#��������� � ����3#7!!3#7!!3#7!!���@������@������@����@���@������3#7!!3#7!!3#7!!���@������@������@���`@`�`@`�`@���#%!"3!264&'!"3!264&%!264&#!"���&&�&&��&&�&&�f�&&��&&`&4&&4&�&4&&4&@&4&&4&�
!!33�`�``@@�@�� ���@@�3!�@��@����'#!##5#53533 @��@@@@@@`@�``�@@@@@�	'#!#53 @����`@�``�@�
;!7#!#�6

��@����7	��` �``�
'#!!3;##33535# @� �@�6

��@@@@@@`@�``��`7	@@@@@@�
'#!!3;3# @� �@�6

�����`@�``��`7	�@ ����
!!!!3`��� �� `�����` ����
!!!!3!!5!!5!!`��� �� `����������`� ` ` ���%5##33535!335'!!5!�@@@@@�  ` ��� �`@@@@@@``���� ���%3#!335'!!5!@���� ` ��� �`@�`���� ���'77!335'!!5!``)7� �  ` ��� � p)8  `���� ���!335'!!5!%75#'#3735  ` ��� ��3-33-33-33-�`���� @3-33-33-33-���	#5'#3!'#'#'33!!53533�``�@`33�33��`���`@`` `��� 33�3@`�`�` ����#2AM#54&+54&+";;;2654&"54;2#""54;2#"+"54;2������(�� ��`��0�0�@0�80�'%#'54&+"#";26=73;26=4&�2v
P
v2

P
vv
P
��d

d�
P

d��d

P
���UY]ae%#54&+5326=4&+";#"#";26=4&+53#";26=4&+53#";26=4&#53#5353#53�!�

P

�!

P

�

P

�

P
�n@@�@@@@�@@`h!@
P

P
@!h
P

P
``
P

P
``
P

P
`@@@ @@��@�!!!!!!5!!!!�@��@�����@ @�@�@�@�!!!!!!'!!!!�`@��@��`���@ @�@�@�@�!!!!!!'!!!!��@��@������@ @�@�@�@�!!!!!!!!!!������@ @ @ @ @�%!3#!5#5!!��``����@���    @� ����!"3!2654&"&4627!!���@�			��� ��`��			'�@����!"3!2654&"&4627!!���

 
�w�� �
�@

�
�:`�!3!265'3533%7!���`	�	��`�`�� & �`��		P��``�  �!3!265#5#7%7!���`	�	��`���� & �`��		P�``���  �%!5#!5'#5##���@�`@`��@@�������%!5#!5%3353'���@��`@`��@@�������
-5%!57��@������Q��J����
%!53!5%5%���@����������Q�� ��	%7!!#!'#57'`@��@��A�-�A�@��@���A�-�A ��
!!!'!/75#`� ��@�� � �`I�I`������@��@ �� i`I�I`��� A'&"7&/&4?62764&'"/&4?&72?64'�$d#n##(m61
M#�(m61
M##$d#n##�##m$d$(6m62#M#dy(6m62#M#d$##m$d$ �!#''#!462"  `@�` ��((�������0��@d(( �
!''!462"%!3!@� @I7����(($�@ �`��@��k<\�d((� 
�$,4<D"6'&>02>54&2"&4"&4626"&462"&4626"&462;e?#$=C$@=	 
��i			-{6%%6%D((�$9B,K3"	*(	Z �			7�((d((�!)-6264&"%#.+"#"3!2654&"&4627#53�=V==Vp�p

�
�vSSvSR@@�V==V=H
��

 
��SvSSv� @�"54&#!"3!26=3276=4&�Z�� Z
`?5�5?		� �&"27645�p�pp�p����T�TT���`���3"&46325"&4632� B\BB./!�B\BB./!�!//B/�9�!//B/8 ��-%"&'56726'4>."3;4.7!!,!	
		LG��GL� +2

&		#==#���,U%.=6726'0>."13;4.67&'&'&767&767&#"1336o
&
	A=��=A�"% L
	A=�M%*

		

* 44
B$	F	

* 4 �#'+!"3!26=4&463"&462#23#535#535#53���&&�&&�f/!(!/ࠠ�����&�&&�&��5K((K5 @ @  ����%)3#53#3#3#!2"&4#546;23# 00000000@��4&&4&��%@%��00P�PpPP��&4&&4� %%@P �7>37'"!536767#!5�&I.��[e��?!-��@�
!`��`_��	���* ���7#5355#5337!#5���``@�� ���� �@@``@�```�` @������%5#535#'!#5!35���`���` ����@@@`@�``���@��`���2+5#"&5463���P������@�&2+5#"&=4632+'#53535#5����P�f~b` �����`���@WW�@ �#2"&=463"6!2"&=463"6p/AA]B�]B/		(/AA]B�]B/		B\BB.]�@/		B\BB.]�@/		 �#%"&462#52767!"&462#52767�.BB\B�]C/	��.BB\B�]C/	�B\BB.]�@/		B\BB.]�@/		���"2!";732654&232"&54767232"&54767�`P����.%%6%+#2�.%%6%+#2����� �.%6%%D0(*.%6%%D0( �%4<+"=4'&#1"+"=4>76312"2;2'&'"&462�	
x
*,,*
x
	F��-�",��.Z6%%6%x





(�' LigM%�%6%%6����!%#".54>76&#"3>54&`$*#[0Q^�0 5j�#*$j00�^Q4[@�

%!7'!'7!F���F-����ׁ(�؁?(�������

%!7'!'%!'F���F-�����w�(�؁?(���� �
#3!26=##'#73`��
�
�@�@V�����P0

0P@@�� �#3!26=#'3%73%3'#!'!`��
�
�� ��ʅ������PN�����

�@  ��` ` �5#54&+"#"3!2654&%3##+"&=#+"&=#5!�
�
�

�
�Ӏ� @	 	�	 	@�` 

 
��

 
  �0		00		0 ���	5"&462���\((����((���	#?'462"���@���0((�������(( �*#"2?>=4&"&462&/&4?>3�p0��(�@((�K� ��0���(��0p�((���(�� �
-5#"7>572"/&4?>3&/&4?>3$462"�`�u�
�(��0��� ��0�`�
�u��p0��(�����(��s	����#+%&67'#"&5#'632347>7&"&462�#2)9d
O#2
#2(9e
N#3�V==V=�#NW
9)#W
#NW
9("W
 =V==V���'/�?'&/#'737677'6?5'&"&462%5'&'7'&'7'&'7'&/#'''77737677'677'677'67"&462�	 	##	 	##=p"
! !
""
! !
q:)):)w##	 	##	 	?� !
""
! !
""
!0):)):����%'&/>"/&462��	$�3 %��
/.B��U��% 3�$	�
./#�����#'7&#"&#"732654'732654�<@<(8�(8<@<(8�(8�<@<8(�8(<@<8(�8(����'+/?CGWc#";26=4&'3#3#7#";26=4&'3#3##";26=4&'3#3#!"3!2654&#!"543!2�@		@		7    �@		@		7    �@		@		7    X�p�	�p�@	 		 	`P`Р	 		 	��`P	 		 	�p`���P��(����',"264"&462&462"462"&462"35'jԖ�Ԗ��pp�p�M�M@ �Ԗ���p�pp��
�  � ����"&476752654&'3#@/^�^/FZ���Z�@@�D/�^^�/DwK]��]Kw^����%"26=7546762"'&'&'6jԖ�%6%��/D�D

D�D
�/!0��

��0!



���	
!33!265!3#3#3##5##"!4&@
@
��@@`@@`@@@���%%

`@����  %%@����'#54&"#"3!26=4&"&4627#5462� KjK 

@
� �&4&`5KK5`
�

�
��`&&@����'$"&462'5462354&"#"3!26=4&#
`&4&@KjK 

@

@�`&&  5KK5`
�

�
���";53535373264"&462��^�
 @@@*B^\((�^B�`
 @@*
^�B((���"+5"264462"7'64'?'1&"/62&4?271"jԖ�Ԗ��8P88P�Y

=�%4)Z�/*

Y�4%)Z�Ԗ�ԒP88P8
%4)Z�Y

*/�4%)Z�=

Y���+"26=4"&'26=4'"&'26=4'jԖ�Ԗ����Ԗ����Ԗ�/!@!//!@!�
@!//!@�
@!//!@B����@Qc"&'&'&'&'&'#"'.?676327&'&'&?76327'32676'&'&'&#'327>&'1"�,


,-)% 		kk		 %)&
4�
 7

7)-$! RH,#	��	#,HR !')G'		+?		'+���%'#377735� @@`@`z+<F9S� ��`�� ��f�O-9 ���%7'5'377%'#7'7_agy+K�E�@��&B'>55�E�K+yga_�@�?55>'B&@�	!)"267&'"'&'67672654'"&462R��$$���$$^..:�:..KjK|((�XHHXXHH..%%..5KK5((�&0;#"'732767&'"'7#&#"32.5466767&�;!$�R.,'D:.,��K�n*-R�$ ;[��6�.*L*BHX'%.,��5K]nXHA*Zł6c.+#���
%'53"264"&462Ii@W
Ԗ�Ԗ��pp�pij�sVI�Ԗ���p�pp����"264"&462/#35&"&462jԖ�Ԗ��zz�z�� P� s�Ԗ���z�zz��P �P @@��%6462"">27&"627&"627�T�}-)p�p)-�dW 9�9 Ot&XS`:3.44.3&)#BB#7,!! ����!"&463!!"3!!!���0��&&��� ����`(�&��&��� ���3!7���������@��#!!!";!5326=4&#536"&462��`�@

``
����


�@ 
�
��
�
���z


���(!"3!2654&"&4624&#5234&#52���#22#V#22��%$BZ?Y0�mY�X�2#��#22#V#2�`$$@Y?Ym�?X�Y����#'373#73#73#3#73#73#'3#73#73#%3##5##5#!!!�@@`@@`@@��@@`@@`@@`@@`@@`@@��@@`@�@@� �`� @@@@@�@@@@@�@@@@@@@`    �� ` ����#'+/37;?CGKOSW[_cgkosw��3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#3#73#73#73#73#73#5##5##5##!!!@  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @  ��  @  @  @  @  @   @ � @@� �`�@                                                           � @  @ � �@` ����#/;GM]#"&=#"&=#"3!2654&!!$26=4&"26=4&"#3#3#;5#3!"&53!26=�0�0

�

�����			�			@������@ @ T��
h
�




��

`
�� @	@		@		@		@i @ @ � ��



����
75"2654'7.#�]���� kA����]5/@8D��5!!73#73#73#3#�@@@`@@`@@`@@@@�`��@�����#',048<@DHLPTX\`dhlptx|������!#5##5##5##535#535#535#5#!5#7'75'77'7/77//7'//77/%???7'?7'7///7'7'77/''!5�p�p  ��Q @P� @0 �� 0� 0 ``���pp@�0~n~���~^~\��~d���e������~<���������w��{g�+����zu�
j�
����-�`@�����''7''7'>7''-Z2Y-Z9++9��;GH:�#@`@S-Y2Z-Y9+�+9r;#�:HN@`@ ����75'75���@�����```��P�P��P�P���O#".67>."+"&'.67>;2>'.>2;2654&�T

	 <!	
\\	!< 	T`f
			 <!	
I> ����2'2?64&"01270317'01"&4721762"&47]!�(9�"C_"�/^�/� �!_C!�9(�
<!�9(�"_C"�/�^/� �!C^"�(9�
e����""3>765427527"@�[
&#!$8�D04pD�Y@=-
+)
a,@��)

&
0//	���#37577'700ppX��X�00�� p �00�X��Xpp00  p `����">54"&462B�^!//7*#xP88P8�^B-iWJSQk-B�8P88P5����!-6767&'%.'>&'&767�9%%9;AA4^99^4
)%//%)
i(>>(KP\\PR�S&&S�$$7"##"@rQG,(		(,GQr�;$$;k�66����.#>7>7&%3#�"?=,D#37b'`p��@@�(�H4x����-1323"#"'&#"'632323>7#"&'.#3#�(W8
 2) *!S0#.:)2I$"?�@@�
!0+
!�54
&*(�`����7`�����`����	7'!`�� ������M����".#">54&x&AA&8P5KK
#XD7P�'!!'P84fH9@Dg48P�-!'.54632632"67654&#"'.$Q?2Y>=,,=>Y2?Q$w$3d)33)d3$**;@a1=V))V=1a@;y1"SS##SS"122 ����*%2###"&'>5232%3#"&=46;�&GZ?^�
`�� @

@�00$))y;	(H-00P������*"&63&>34632".67#"&6#532+50&GZ?^�
`� @

@00$))�y;	(H-00P����	/7'7'?�OO�����p[}88}[��|�SS�6:|XqqX|���	/7'�OO�����8}[��|�SS�6qX|���	/7'�OO������|�SS����#"264&2"&4&2"&4"&'7267jԖ�Ԗ���VI)3<3)�Ԗ����*$$���+264&"2"&4462"6462""&'726�Ԗ�Ԗ��zz�zP�
)IVI)3<3 �Ԗ��:z�zz�z$**$���#"264&2"&4&2"&4."'>2jԖ�Ԗ���3<3)IVI�Ԗ���$**$���+264&"2"&4462"6462"'>2."�Ԗ�Ԗ��zz�zP��)IVI)3<3 �Ԗ��:z�zz��$**$���"264#5362"&4&2"&4jԖ�Ԗ�����Ԗ��� ����#264&"2"&46264&"264&"3#�Ԗ�Ԗ��zz�zP���� �Ԗ��:z�zz�� ����%462"$462"5!4&#23!5!"&5@(($((D�`%
%���
((((�% 
�% 
���#'+/37;'654&"323#723264&"#3!35#535#53#535#53#535#53�X
J�J
Xj  �  ��@@@@�@@@@�@@@@ t
``
t@�@�@@@�@@@�@@@ �#'+/!"3!2654&!2!546!"&=!%3#73#73#�`��L�	�@	��`	�	�i  @  @  ���  	00	��	��	`@@@@@ �!"3!2654&#53#53#53%!5!�`��|  @  @  � ���� ��@@@@@@`�(#x���			F0	�	�	�IcoMoonIcoMoonRegularRegularFontForge 2.0 : IcoMoon : 11-9-2013FontForge 2.0 : IcoMoon : 11-9-2013IcoMoonIcoMoonVersion 1.0Version 1.0IcoMoonIcoMoon�	


O]IJKL_^` !"#$6GH@A,*
%.&-'()*+(,-.+/ !"01234;<=56789:;<=>?@ABCDEFGHIJK45LMNOPQR8S9:TPS	UVCDWXY0123Z[\]^[_7/`B)EaMNbQRcd\eT&'fZYXUWVFghijkl>?#$%mnopqrstuvuniF000uniE200uniE005uniE006uniE007uniE008uniE003uniE004uniE009uniE00AuniE00BuniE00CuniE00FuniE010uniE011uniE012uniE00EuniE201uniE202uniE203uniE204uniE205uniE206uniE207uniE208uniE209uniE210uniE000uniE00DuniE211uniE212uniE213uniE214uniE001uniE002uniE215uniE216uniE217uniE218uniE219uniE220uniE221uniE222uniE223uniE224uniE225uniE226uniE227uniE228uniE229uniE230uniE231uniE232uniE234uniE235uniE236uniE237uniE238uniE016uniE239uniE017uniE240uniE241uniE018uniE242uniE243uniE244uniE246uniE247uniE248uniE249uniE01CuniE01DuniE01EuniE021uniE022uniE250uniE024uniE251uniE252uniE014uniE015uniE01FuniE257uniE258uniE259uniE260uniE261uniE020uniE262uniE263uniE264uniE265uniE266uniE267uniE268uniE269uniE01BuniE271uniE013uniE273uniE274uniE275uniE023uniE276uniE277uniE278uniE279uniE280uniE281uniE282uniE283uniE284uniE019uniE01AuniE286uniE287���ɉo1�VG�VGplg_twofactorauth_totp/js/qrcode.js000064400000154062152177723720013622 0ustar00//---------------------------------------------------------------------
//
// QR Code Generator for JavaScript
//
// Copyright (c) 2009 Kazuhiko Arase
//
// URL: http://www.d-project.com/
//
// Licensed under the MIT license:
//  http://www.opensource.org/licenses/mit-license.php
//
// The word 'QR Code' is registered trademark of
// DENSO WAVE INCORPORATED
//  http://www.denso-wave.com/qrcode/faqpatent-e.html
//
//---------------------------------------------------------------------

var qrcode = function() {

  //---------------------------------------------------------------------
  // qrcode
  //---------------------------------------------------------------------

  /**
   * qrcode
   * @param typeNumber 1 to 40
   * @param errorCorrectionLevel 'L','M','Q','H'
   */
  var qrcode = function(typeNumber, errorCorrectionLevel) {

    var PAD0 = 0xEC;
    var PAD1 = 0x11;

    var _typeNumber = typeNumber;
    var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];
    var _modules = null;
    var _moduleCount = 0;
    var _dataCache = null;
    var _dataList = [];

    var _this = {};

    var makeImpl = function(test, maskPattern) {

      _moduleCount = _typeNumber * 4 + 17;
      _modules = function(moduleCount) {
        var modules = new Array(moduleCount);
        for (var row = 0; row < moduleCount; row += 1) {
          modules[row] = new Array(moduleCount);
          for (var col = 0; col < moduleCount; col += 1) {
            modules[row][col] = null;
          }
        }
        return modules;
      }(_moduleCount);

      setupPositionProbePattern(0, 0);
      setupPositionProbePattern(_moduleCount - 7, 0);
      setupPositionProbePattern(0, _moduleCount - 7);
      setupPositionAdjustPattern();
      setupTimingPattern();
      setupTypeInfo(test, maskPattern);

      if (_typeNumber >= 7) {
        setupTypeNumber(test);
      }

      if (_dataCache == null) {
        _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);
      }

      mapData(_dataCache, maskPattern);
    };

    var setupPositionProbePattern = function(row, col) {

      for (var r = -1; r <= 7; r += 1) {

        if (row + r <= -1 || _moduleCount <= row + r) continue;

        for (var c = -1; c <= 7; c += 1) {

          if (col + c <= -1 || _moduleCount <= col + c) continue;

          if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )
              || (0 <= c && c <= 6 && (r == 0 || r == 6) )
              || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
            _modules[row + r][col + c] = true;
          } else {
            _modules[row + r][col + c] = false;
          }
        }
      }
    };

    var getBestMaskPattern = function() {

      var minLostPoint = 0;
      var pattern = 0;

      for (var i = 0; i < 8; i += 1) {

        makeImpl(true, i);

        var lostPoint = QRUtil.getLostPoint(_this);

        if (i == 0 || minLostPoint > lostPoint) {
          minLostPoint = lostPoint;
          pattern = i;
        }
      }

      return pattern;
    };

    var setupTimingPattern = function() {

      for (var r = 8; r < _moduleCount - 8; r += 1) {
        if (_modules[r][6] != null) {
          continue;
        }
        _modules[r][6] = (r % 2 == 0);
      }

      for (var c = 8; c < _moduleCount - 8; c += 1) {
        if (_modules[6][c] != null) {
          continue;
        }
        _modules[6][c] = (c % 2 == 0);
      }
    };

    var setupPositionAdjustPattern = function() {

      var pos = QRUtil.getPatternPosition(_typeNumber);

      for (var i = 0; i < pos.length; i += 1) {

        for (var j = 0; j < pos.length; j += 1) {

          var row = pos[i];
          var col = pos[j];

          if (_modules[row][col] != null) {
            continue;
          }

          for (var r = -2; r <= 2; r += 1) {

            for (var c = -2; c <= 2; c += 1) {

              if (r == -2 || r == 2 || c == -2 || c == 2
                  || (r == 0 && c == 0) ) {
                _modules[row + r][col + c] = true;
              } else {
                _modules[row + r][col + c] = false;
              }
            }
          }
        }
      }
    };

    var setupTypeNumber = function(test) {

      var bits = QRUtil.getBCHTypeNumber(_typeNumber);

      for (var i = 0; i < 18; i += 1) {
        var mod = (!test && ( (bits >> i) & 1) == 1);
        _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;
      }

      for (var i = 0; i < 18; i += 1) {
        var mod = (!test && ( (bits >> i) & 1) == 1);
        _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
      }
    };

    var setupTypeInfo = function(test, maskPattern) {

      var data = (_errorCorrectionLevel << 3) | maskPattern;
      var bits = QRUtil.getBCHTypeInfo(data);

      // vertical
      for (var i = 0; i < 15; i += 1) {

        var mod = (!test && ( (bits >> i) & 1) == 1);

        if (i < 6) {
          _modules[i][8] = mod;
        } else if (i < 8) {
          _modules[i + 1][8] = mod;
        } else {
          _modules[_moduleCount - 15 + i][8] = mod;
        }
      }

      // horizontal
      for (var i = 0; i < 15; i += 1) {

        var mod = (!test && ( (bits >> i) & 1) == 1);

        if (i < 8) {
          _modules[8][_moduleCount - i - 1] = mod;
        } else if (i < 9) {
          _modules[8][15 - i - 1 + 1] = mod;
        } else {
          _modules[8][15 - i - 1] = mod;
        }
      }

      // fixed module
      _modules[_moduleCount - 8][8] = (!test);
    };

    var mapData = function(data, maskPattern) {

      var inc = -1;
      var row = _moduleCount - 1;
      var bitIndex = 7;
      var byteIndex = 0;
      var maskFunc = QRUtil.getMaskFunction(maskPattern);

      for (var col = _moduleCount - 1; col > 0; col -= 2) {

        if (col == 6) col -= 1;

        while (true) {

          for (var c = 0; c < 2; c += 1) {

            if (_modules[row][col - c] == null) {

              var dark = false;

              if (byteIndex < data.length) {
                dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);
              }

              var mask = maskFunc(row, col - c);

              if (mask) {
                dark = !dark;
              }

              _modules[row][col - c] = dark;
              bitIndex -= 1;

              if (bitIndex == -1) {
                byteIndex += 1;
                bitIndex = 7;
              }
            }
          }

          row += inc;

          if (row < 0 || _moduleCount <= row) {
            row -= inc;
            inc = -inc;
            break;
          }
        }
      }
    };

    var createBytes = function(buffer, rsBlocks) {

      var offset = 0;

      var maxDcCount = 0;
      var maxEcCount = 0;

      var dcdata = new Array(rsBlocks.length);
      var ecdata = new Array(rsBlocks.length);

      for (var r = 0; r < rsBlocks.length; r += 1) {

        var dcCount = rsBlocks[r].dataCount;
        var ecCount = rsBlocks[r].totalCount - dcCount;

        maxDcCount = Math.max(maxDcCount, dcCount);
        maxEcCount = Math.max(maxEcCount, ecCount);

        dcdata[r] = new Array(dcCount);

        for (var i = 0; i < dcdata[r].length; i += 1) {
          dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];
        }
        offset += dcCount;

        var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
        var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);

        var modPoly = rawPoly.mod(rsPoly);
        ecdata[r] = new Array(rsPoly.getLength() - 1);
        for (var i = 0; i < ecdata[r].length; i += 1) {
          var modIndex = i + modPoly.getLength() - ecdata[r].length;
          ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;
        }
      }

      var totalCodeCount = 0;
      for (var i = 0; i < rsBlocks.length; i += 1) {
        totalCodeCount += rsBlocks[i].totalCount;
      }

      var data = new Array(totalCodeCount);
      var index = 0;

      for (var i = 0; i < maxDcCount; i += 1) {
        for (var r = 0; r < rsBlocks.length; r += 1) {
          if (i < dcdata[r].length) {
            data[index] = dcdata[r][i];
            index += 1;
          }
        }
      }

      for (var i = 0; i < maxEcCount; i += 1) {
        for (var r = 0; r < rsBlocks.length; r += 1) {
          if (i < ecdata[r].length) {
            data[index] = ecdata[r][i];
            index += 1;
          }
        }
      }

      return data;
    };

    var createData = function(typeNumber, errorCorrectionLevel, dataList) {

      var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);

      var buffer = qrBitBuffer();

      for (var i = 0; i < dataList.length; i += 1) {
        var data = dataList[i];
        buffer.put(data.getMode(), 4);
        buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );
        data.write(buffer);
      }

      // calc num max data.
      var totalDataCount = 0;
      for (var i = 0; i < rsBlocks.length; i += 1) {
        totalDataCount += rsBlocks[i].dataCount;
      }

      if (buffer.getLengthInBits() > totalDataCount * 8) {
        throw 'code length overflow. ('
          + buffer.getLengthInBits()
          + '>'
          + totalDataCount * 8
          + ')';
      }

      // end code
      if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
        buffer.put(0, 4);
      }

      // padding
      while (buffer.getLengthInBits() % 8 != 0) {
        buffer.putBit(false);
      }

      // padding
      while (true) {

        if (buffer.getLengthInBits() >= totalDataCount * 8) {
          break;
        }
        buffer.put(PAD0, 8);

        if (buffer.getLengthInBits() >= totalDataCount * 8) {
          break;
        }
        buffer.put(PAD1, 8);
      }

      return createBytes(buffer, rsBlocks);
    };

    _this.addData = function(data, mode) {

      mode = mode || 'Byte';

      var newData = null;

      switch(mode) {
      case 'Numeric' :
        newData = qrNumber(data);
        break;
      case 'Alphanumeric' :
        newData = qrAlphaNum(data);
        break;
      case 'Byte' :
        newData = qr8BitByte(data);
        break;
      case 'Kanji' :
        newData = qrKanji(data);
        break;
      default :
        throw 'mode:' + mode;
      }

      _dataList.push(newData);
      _dataCache = null;
    };

    _this.isDark = function(row, col) {
      if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {
        throw row + ',' + col;
      }
      return _modules[row][col];
    };

    _this.getModuleCount = function() {
      return _moduleCount;
    };

    _this.make = function() {
      if (_typeNumber < 1) {
        var typeNumber = 1;

        for (; typeNumber < 40; typeNumber++) {
          var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);
          var buffer = qrBitBuffer();

          for (var i = 0; i < _dataList.length; i++) {
            var data = _dataList[i];
            buffer.put(data.getMode(), 4);
            buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );
            data.write(buffer);
          }

          var totalDataCount = 0;
          for (var i = 0; i < rsBlocks.length; i++) {
            totalDataCount += rsBlocks[i].dataCount;
          }

          if (buffer.getLengthInBits() <= totalDataCount * 8) {
            break;
          }
        }

        _typeNumber = typeNumber;
      }

      makeImpl(false, getBestMaskPattern() );
    };

    _this.createTableTag = function(cellSize, margin) {

      cellSize = cellSize || 2;
      margin = (typeof margin == 'undefined')? cellSize * 4 : margin;

      var qrHtml = '';

      qrHtml += '<table style="';
      qrHtml += ' border-width: 0px; border-style: none;';
      qrHtml += ' border-collapse: collapse;';
      qrHtml += ' padding: 0px; margin: ' + margin + 'px;';
      qrHtml += '">';
      qrHtml += '<tbody>';

      for (var r = 0; r < _this.getModuleCount(); r += 1) {

        qrHtml += '<tr>';

        for (var c = 0; c < _this.getModuleCount(); c += 1) {
          qrHtml += '<td style="';
          qrHtml += ' border-width: 0px; border-style: none;';
          qrHtml += ' border-collapse: collapse;';
          qrHtml += ' padding: 0px; margin: 0px;';
          qrHtml += ' width: ' + cellSize + 'px;';
          qrHtml += ' height: ' + cellSize + 'px;';
          qrHtml += ' background-color: ';
          qrHtml += _this.isDark(r, c)? '#000000' : '#ffffff';
          qrHtml += ';';
          qrHtml += '"/>';
        }

        qrHtml += '</tr>';
      }

      qrHtml += '</tbody>';
      qrHtml += '</table>';

      return qrHtml;
    };

    _this.createSvgTag = function(cellSize, margin) {

      var opts = {};
      if (typeof arguments[0] == 'object') {
        // Called by options.
        opts = arguments[0];
        // overwrite cellSize and margin.
        cellSize = opts.cellSize;
        margin = opts.margin;
      }

      cellSize = cellSize || 2;
      margin = (typeof margin == 'undefined')? cellSize * 4 : margin;
      var size = _this.getModuleCount() * cellSize + margin * 2;
      var c, mc, r, mr, qrSvg='', rect;

      rect = 'l' + cellSize + ',0 0,' + cellSize +
        ' -' + cellSize + ',0 0,-' + cellSize + 'z ';

      qrSvg += '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"';
      qrSvg += !opts.scalable ? ' width="' + size + 'px" height="' + size + 'px"' : '';
      qrSvg += ' viewBox="0 0 ' + size + ' ' + size + '" ';
      qrSvg += ' preserveAspectRatio="xMinYMin meet">';
      qrSvg += '<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>';
      qrSvg += '<path d="';

      for (r = 0; r < _this.getModuleCount(); r += 1) {
        mr = r * cellSize + margin;
        for (c = 0; c < _this.getModuleCount(); c += 1) {
          if (_this.isDark(r, c) ) {
            mc = c*cellSize+margin;
            qrSvg += 'M' + mc + ',' + mr + rect;
          }
        }
      }

      qrSvg += '" stroke="transparent" fill="black"/>';
      qrSvg += '</svg>';

      return qrSvg;
    };

    _this.createDataURL = function(cellSize, margin) {

      cellSize = cellSize || 2;
      margin = (typeof margin == 'undefined')? cellSize * 4 : margin;

      var size = _this.getModuleCount() * cellSize + margin * 2;
      var min = margin;
      var max = size - margin;

      return createDataURL(size, size, function(x, y) {
        if (min <= x && x < max && min <= y && y < max) {
          var c = Math.floor( (x - min) / cellSize);
          var r = Math.floor( (y - min) / cellSize);
          return _this.isDark(r, c)? 0 : 1;
        } else {
          return 1;
        }
      } );
    };

    _this.createImgTag = function(cellSize, margin, alt) {

      cellSize = cellSize || 2;
      margin = (typeof margin == 'undefined')? cellSize * 4 : margin;

      var size = _this.getModuleCount() * cellSize + margin * 2;

      var img = '';
      img += '<img';
      img += '\u0020src="';
      img += _this.createDataURL(cellSize, margin);
      img += '"';
      img += '\u0020width="';
      img += size;
      img += '"';
      img += '\u0020height="';
      img += size;
      img += '"';
      if (alt) {
        img += '\u0020alt="';
        img += alt;
        img += '"';
      }
      img += '/>';

      return img;
    };

    var _createHalfASCII = function(margin) {
      var cellSize = 1;
      margin = (typeof margin == 'undefined')? cellSize * 2 : margin;

      var size = _this.getModuleCount() * cellSize + margin * 2;
      var min = margin;
      var max = size - margin;

      var y, x, r1, r2, p;

      var blocks = {
        '██': '█',
        '█ ': '▀',
        ' █': '▄',
        '  ': ' '
      };

      var blocksLastLineNoMargin = {
        '██': '▀',
        '█ ': '▀',
        ' █': ' ',
        '  ': ' '
      };

      var ascii = '';
      for (y = 0; y < size; y += 2) {
        r1 = Math.floor((y - min) / cellSize);
        r2 = Math.floor((y + 1 - min) / cellSize);
        for (x = 0; x < size; x += 1) {
          p = '█';

          if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {
            p = ' ';
          }

          if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {
            p += ' ';
          }
          else {
            p += '█';
          }

          // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.
          ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];
        }

        ascii += '\n';
      }

      if (size % 2 && margin > 0) {
        return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');
      }

      return ascii.substring(0, ascii.length-1);
    };

    _this.createASCII = function(cellSize, margin) {
      cellSize = cellSize || 1;

      if (cellSize < 2) {
        return _createHalfASCII(margin);
      }

      cellSize -= 1;
      margin = (typeof margin == 'undefined')? cellSize * 2 : margin;

      var size = _this.getModuleCount() * cellSize + margin * 2;
      var min = margin;
      var max = size - margin;

      var y, x, r, p;

      var white = Array(cellSize+1).join('██');
      var black = Array(cellSize+1).join('  ');

      var ascii = '';
      var line = '';
      for (y = 0; y < size; y += 1) {
        r = Math.floor( (y - min) / cellSize);
        line = '';
        for (x = 0; x < size; x += 1) {
          p = 1;

          if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {
            p = 0;
          }

          // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.
          line += p ? white : black;
        }

        for (r = 0; r < cellSize; r += 1) {
          ascii += line + '\n';
        }
      }

      return ascii.substring(0, ascii.length-1);
    };

    _this.renderTo2dContext = function(context, cellSize) {
      cellSize = cellSize || 2;
      var length = _this.getModuleCount();
      for (var row = 0; row < length; row++) {
        for (var col = 0; col < length; col++) {
          context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';
          context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);
        }
      }
    }

    return _this;
  };

  //---------------------------------------------------------------------
  // qrcode.stringToBytes
  //---------------------------------------------------------------------

  qrcode.stringToBytesFuncs = {
    'default' : function(s) {
      var bytes = [];
      for (var i = 0; i < s.length; i += 1) {
        var c = s.charCodeAt(i);
        bytes.push(c & 0xff);
      }
      return bytes;
    }
  };

  qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];

  //---------------------------------------------------------------------
  // qrcode.createStringToBytes
  //---------------------------------------------------------------------

  /**
   * @param unicodeData base64 string of byte array.
   * [16bit Unicode],[16bit Bytes], ...
   * @param numChars
   */
  qrcode.createStringToBytes = function(unicodeData, numChars) {

    // create conversion map.

    var unicodeMap = function() {

      var bin = base64DecodeInputStream(unicodeData);
      var read = function() {
        var b = bin.read();
        if (b == -1) throw 'eof';
        return b;
      };

      var count = 0;
      var unicodeMap = {};
      while (true) {
        var b0 = bin.read();
        if (b0 == -1) break;
        var b1 = read();
        var b2 = read();
        var b3 = read();
        var k = String.fromCharCode( (b0 << 8) | b1);
        var v = (b2 << 8) | b3;
        unicodeMap[k] = v;
        count += 1;
      }
      if (count != numChars) {
        throw count + ' != ' + numChars;
      }

      return unicodeMap;
    }();

    var unknownChar = '?'.charCodeAt(0);

    return function(s) {
      var bytes = [];
      for (var i = 0; i < s.length; i += 1) {
        var c = s.charCodeAt(i);
        if (c < 128) {
          bytes.push(c);
        } else {
          var b = unicodeMap[s.charAt(i)];
          if (typeof b == 'number') {
            if ( (b & 0xff) == b) {
              // 1byte
              bytes.push(b);
            } else {
              // 2bytes
              bytes.push(b >>> 8);
              bytes.push(b & 0xff);
            }
          } else {
            bytes.push(unknownChar);
          }
        }
      }
      return bytes;
    };
  };

  //---------------------------------------------------------------------
  // QRMode
  //---------------------------------------------------------------------

  var QRMode = {
    MODE_NUMBER :    1 << 0,
    MODE_ALPHA_NUM : 1 << 1,
    MODE_8BIT_BYTE : 1 << 2,
    MODE_KANJI :     1 << 3
  };

  //---------------------------------------------------------------------
  // QRErrorCorrectionLevel
  //---------------------------------------------------------------------

  var QRErrorCorrectionLevel = {
    L : 1,
    M : 0,
    Q : 3,
    H : 2
  };

  //---------------------------------------------------------------------
  // QRMaskPattern
  //---------------------------------------------------------------------

  var QRMaskPattern = {
    PATTERN000 : 0,
    PATTERN001 : 1,
    PATTERN010 : 2,
    PATTERN011 : 3,
    PATTERN100 : 4,
    PATTERN101 : 5,
    PATTERN110 : 6,
    PATTERN111 : 7
  };

  //---------------------------------------------------------------------
  // QRUtil
  //---------------------------------------------------------------------

  var QRUtil = function() {

    var PATTERN_POSITION_TABLE = [
      [],
      [6, 18],
      [6, 22],
      [6, 26],
      [6, 30],
      [6, 34],
      [6, 22, 38],
      [6, 24, 42],
      [6, 26, 46],
      [6, 28, 50],
      [6, 30, 54],
      [6, 32, 58],
      [6, 34, 62],
      [6, 26, 46, 66],
      [6, 26, 48, 70],
      [6, 26, 50, 74],
      [6, 30, 54, 78],
      [6, 30, 56, 82],
      [6, 30, 58, 86],
      [6, 34, 62, 90],
      [6, 28, 50, 72, 94],
      [6, 26, 50, 74, 98],
      [6, 30, 54, 78, 102],
      [6, 28, 54, 80, 106],
      [6, 32, 58, 84, 110],
      [6, 30, 58, 86, 114],
      [6, 34, 62, 90, 118],
      [6, 26, 50, 74, 98, 122],
      [6, 30, 54, 78, 102, 126],
      [6, 26, 52, 78, 104, 130],
      [6, 30, 56, 82, 108, 134],
      [6, 34, 60, 86, 112, 138],
      [6, 30, 58, 86, 114, 142],
      [6, 34, 62, 90, 118, 146],
      [6, 30, 54, 78, 102, 126, 150],
      [6, 24, 50, 76, 102, 128, 154],
      [6, 28, 54, 80, 106, 132, 158],
      [6, 32, 58, 84, 110, 136, 162],
      [6, 26, 54, 82, 110, 138, 166],
      [6, 30, 58, 86, 114, 142, 170]
    ];
    var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
    var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);
    var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);

    var _this = {};

    var getBCHDigit = function(data) {
      var digit = 0;
      while (data != 0) {
        digit += 1;
        data >>>= 1;
      }
      return digit;
    };

    _this.getBCHTypeInfo = function(data) {
      var d = data << 10;
      while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {
        d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );
      }
      return ( (data << 10) | d) ^ G15_MASK;
    };

    _this.getBCHTypeNumber = function(data) {
      var d = data << 12;
      while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {
        d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );
      }
      return (data << 12) | d;
    };

    _this.getPatternPosition = function(typeNumber) {
      return PATTERN_POSITION_TABLE[typeNumber - 1];
    };

    _this.getMaskFunction = function(maskPattern) {

      switch (maskPattern) {

      case QRMaskPattern.PATTERN000 :
        return function(i, j) { return (i + j) % 2 == 0; };
      case QRMaskPattern.PATTERN001 :
        return function(i, j) { return i % 2 == 0; };
      case QRMaskPattern.PATTERN010 :
        return function(i, j) { return j % 3 == 0; };
      case QRMaskPattern.PATTERN011 :
        return function(i, j) { return (i + j) % 3 == 0; };
      case QRMaskPattern.PATTERN100 :
        return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };
      case QRMaskPattern.PATTERN101 :
        return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };
      case QRMaskPattern.PATTERN110 :
        return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };
      case QRMaskPattern.PATTERN111 :
        return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };

      default :
        throw 'bad maskPattern:' + maskPattern;
      }
    };

    _this.getErrorCorrectPolynomial = function(errorCorrectLength) {
      var a = qrPolynomial([1], 0);
      for (var i = 0; i < errorCorrectLength; i += 1) {
        a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );
      }
      return a;
    };

    _this.getLengthInBits = function(mode, type) {

      if (1 <= type && type < 10) {

        // 1 - 9

        switch(mode) {
        case QRMode.MODE_NUMBER    : return 10;
        case QRMode.MODE_ALPHA_NUM : return 9;
        case QRMode.MODE_8BIT_BYTE : return 8;
        case QRMode.MODE_KANJI     : return 8;
        default :
          throw 'mode:' + mode;
        }

      } else if (type < 27) {

        // 10 - 26

        switch(mode) {
        case QRMode.MODE_NUMBER    : return 12;
        case QRMode.MODE_ALPHA_NUM : return 11;
        case QRMode.MODE_8BIT_BYTE : return 16;
        case QRMode.MODE_KANJI     : return 10;
        default :
          throw 'mode:' + mode;
        }

      } else if (type < 41) {

        // 27 - 40

        switch(mode) {
        case QRMode.MODE_NUMBER    : return 14;
        case QRMode.MODE_ALPHA_NUM : return 13;
        case QRMode.MODE_8BIT_BYTE : return 16;
        case QRMode.MODE_KANJI     : return 12;
        default :
          throw 'mode:' + mode;
        }

      } else {
        throw 'type:' + type;
      }
    };

    _this.getLostPoint = function(qrcode) {

      var moduleCount = qrcode.getModuleCount();

      var lostPoint = 0;

      // LEVEL1

      for (var row = 0; row < moduleCount; row += 1) {
        for (var col = 0; col < moduleCount; col += 1) {

          var sameCount = 0;
          var dark = qrcode.isDark(row, col);

          for (var r = -1; r <= 1; r += 1) {

            if (row + r < 0 || moduleCount <= row + r) {
              continue;
            }

            for (var c = -1; c <= 1; c += 1) {

              if (col + c < 0 || moduleCount <= col + c) {
                continue;
              }

              if (r == 0 && c == 0) {
                continue;
              }

              if (dark == qrcode.isDark(row + r, col + c) ) {
                sameCount += 1;
              }
            }
          }

          if (sameCount > 5) {
            lostPoint += (3 + sameCount - 5);
          }
        }
      };

      // LEVEL2

      for (var row = 0; row < moduleCount - 1; row += 1) {
        for (var col = 0; col < moduleCount - 1; col += 1) {
          var count = 0;
          if (qrcode.isDark(row, col) ) count += 1;
          if (qrcode.isDark(row + 1, col) ) count += 1;
          if (qrcode.isDark(row, col + 1) ) count += 1;
          if (qrcode.isDark(row + 1, col + 1) ) count += 1;
          if (count == 0 || count == 4) {
            lostPoint += 3;
          }
        }
      }

      // LEVEL3

      for (var row = 0; row < moduleCount; row += 1) {
        for (var col = 0; col < moduleCount - 6; col += 1) {
          if (qrcode.isDark(row, col)
              && !qrcode.isDark(row, col + 1)
              &&  qrcode.isDark(row, col + 2)
              &&  qrcode.isDark(row, col + 3)
              &&  qrcode.isDark(row, col + 4)
              && !qrcode.isDark(row, col + 5)
              &&  qrcode.isDark(row, col + 6) ) {
            lostPoint += 40;
          }
        }
      }

      for (var col = 0; col < moduleCount; col += 1) {
        for (var row = 0; row < moduleCount - 6; row += 1) {
          if (qrcode.isDark(row, col)
              && !qrcode.isDark(row + 1, col)
              &&  qrcode.isDark(row + 2, col)
              &&  qrcode.isDark(row + 3, col)
              &&  qrcode.isDark(row + 4, col)
              && !qrcode.isDark(row + 5, col)
              &&  qrcode.isDark(row + 6, col) ) {
            lostPoint += 40;
          }
        }
      }

      // LEVEL4

      var darkCount = 0;

      for (var col = 0; col < moduleCount; col += 1) {
        for (var row = 0; row < moduleCount; row += 1) {
          if (qrcode.isDark(row, col) ) {
            darkCount += 1;
          }
        }
      }

      var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
      lostPoint += ratio * 10;

      return lostPoint;
    };

    return _this;
  }();

  //---------------------------------------------------------------------
  // QRMath
  //---------------------------------------------------------------------

  var QRMath = function() {

    var EXP_TABLE = new Array(256);
    var LOG_TABLE = new Array(256);

    // initialize tables
    for (var i = 0; i < 8; i += 1) {
      EXP_TABLE[i] = 1 << i;
    }
    for (var i = 8; i < 256; i += 1) {
      EXP_TABLE[i] = EXP_TABLE[i - 4]
        ^ EXP_TABLE[i - 5]
        ^ EXP_TABLE[i - 6]
        ^ EXP_TABLE[i - 8];
    }
    for (var i = 0; i < 255; i += 1) {
      LOG_TABLE[EXP_TABLE[i] ] = i;
    }

    var _this = {};

    _this.glog = function(n) {

      if (n < 1) {
        throw 'glog(' + n + ')';
      }

      return LOG_TABLE[n];
    };

    _this.gexp = function(n) {

      while (n < 0) {
        n += 255;
      }

      while (n >= 256) {
        n -= 255;
      }

      return EXP_TABLE[n];
    };

    return _this;
  }();

  //---------------------------------------------------------------------
  // qrPolynomial
  //---------------------------------------------------------------------

  function qrPolynomial(num, shift) {

    if (typeof num.length == 'undefined') {
      throw num.length + '/' + shift;
    }

    var _num = function() {
      var offset = 0;
      while (offset < num.length && num[offset] == 0) {
        offset += 1;
      }
      var _num = new Array(num.length - offset + shift);
      for (var i = 0; i < num.length - offset; i += 1) {
        _num[i] = num[i + offset];
      }
      return _num;
    }();

    var _this = {};

    _this.getAt = function(index) {
      return _num[index];
    };

    _this.getLength = function() {
      return _num.length;
    };

    _this.multiply = function(e) {

      var num = new Array(_this.getLength() + e.getLength() - 1);

      for (var i = 0; i < _this.getLength(); i += 1) {
        for (var j = 0; j < e.getLength(); j += 1) {
          num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );
        }
      }

      return qrPolynomial(num, 0);
    };

    _this.mod = function(e) {

      if (_this.getLength() - e.getLength() < 0) {
        return _this;
      }

      var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );

      var num = new Array(_this.getLength() );
      for (var i = 0; i < _this.getLength(); i += 1) {
        num[i] = _this.getAt(i);
      }

      for (var i = 0; i < e.getLength(); i += 1) {
        num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);
      }

      // recursive call
      return qrPolynomial(num, 0).mod(e);
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // QRRSBlock
  //---------------------------------------------------------------------

  var QRRSBlock = function() {

    var RS_BLOCK_TABLE = [

      // L
      // M
      // Q
      // H

      // 1
      [1, 26, 19],
      [1, 26, 16],
      [1, 26, 13],
      [1, 26, 9],

      // 2
      [1, 44, 34],
      [1, 44, 28],
      [1, 44, 22],
      [1, 44, 16],

      // 3
      [1, 70, 55],
      [1, 70, 44],
      [2, 35, 17],
      [2, 35, 13],

      // 4
      [1, 100, 80],
      [2, 50, 32],
      [2, 50, 24],
      [4, 25, 9],

      // 5
      [1, 134, 108],
      [2, 67, 43],
      [2, 33, 15, 2, 34, 16],
      [2, 33, 11, 2, 34, 12],

      // 6
      [2, 86, 68],
      [4, 43, 27],
      [4, 43, 19],
      [4, 43, 15],

      // 7
      [2, 98, 78],
      [4, 49, 31],
      [2, 32, 14, 4, 33, 15],
      [4, 39, 13, 1, 40, 14],

      // 8
      [2, 121, 97],
      [2, 60, 38, 2, 61, 39],
      [4, 40, 18, 2, 41, 19],
      [4, 40, 14, 2, 41, 15],

      // 9
      [2, 146, 116],
      [3, 58, 36, 2, 59, 37],
      [4, 36, 16, 4, 37, 17],
      [4, 36, 12, 4, 37, 13],

      // 10
      [2, 86, 68, 2, 87, 69],
      [4, 69, 43, 1, 70, 44],
      [6, 43, 19, 2, 44, 20],
      [6, 43, 15, 2, 44, 16],

      // 11
      [4, 101, 81],
      [1, 80, 50, 4, 81, 51],
      [4, 50, 22, 4, 51, 23],
      [3, 36, 12, 8, 37, 13],

      // 12
      [2, 116, 92, 2, 117, 93],
      [6, 58, 36, 2, 59, 37],
      [4, 46, 20, 6, 47, 21],
      [7, 42, 14, 4, 43, 15],

      // 13
      [4, 133, 107],
      [8, 59, 37, 1, 60, 38],
      [8, 44, 20, 4, 45, 21],
      [12, 33, 11, 4, 34, 12],

      // 14
      [3, 145, 115, 1, 146, 116],
      [4, 64, 40, 5, 65, 41],
      [11, 36, 16, 5, 37, 17],
      [11, 36, 12, 5, 37, 13],

      // 15
      [5, 109, 87, 1, 110, 88],
      [5, 65, 41, 5, 66, 42],
      [5, 54, 24, 7, 55, 25],
      [11, 36, 12, 7, 37, 13],

      // 16
      [5, 122, 98, 1, 123, 99],
      [7, 73, 45, 3, 74, 46],
      [15, 43, 19, 2, 44, 20],
      [3, 45, 15, 13, 46, 16],

      // 17
      [1, 135, 107, 5, 136, 108],
      [10, 74, 46, 1, 75, 47],
      [1, 50, 22, 15, 51, 23],
      [2, 42, 14, 17, 43, 15],

      // 18
      [5, 150, 120, 1, 151, 121],
      [9, 69, 43, 4, 70, 44],
      [17, 50, 22, 1, 51, 23],
      [2, 42, 14, 19, 43, 15],

      // 19
      [3, 141, 113, 4, 142, 114],
      [3, 70, 44, 11, 71, 45],
      [17, 47, 21, 4, 48, 22],
      [9, 39, 13, 16, 40, 14],

      // 20
      [3, 135, 107, 5, 136, 108],
      [3, 67, 41, 13, 68, 42],
      [15, 54, 24, 5, 55, 25],
      [15, 43, 15, 10, 44, 16],

      // 21
      [4, 144, 116, 4, 145, 117],
      [17, 68, 42],
      [17, 50, 22, 6, 51, 23],
      [19, 46, 16, 6, 47, 17],

      // 22
      [2, 139, 111, 7, 140, 112],
      [17, 74, 46],
      [7, 54, 24, 16, 55, 25],
      [34, 37, 13],

      // 23
      [4, 151, 121, 5, 152, 122],
      [4, 75, 47, 14, 76, 48],
      [11, 54, 24, 14, 55, 25],
      [16, 45, 15, 14, 46, 16],

      // 24
      [6, 147, 117, 4, 148, 118],
      [6, 73, 45, 14, 74, 46],
      [11, 54, 24, 16, 55, 25],
      [30, 46, 16, 2, 47, 17],

      // 25
      [8, 132, 106, 4, 133, 107],
      [8, 75, 47, 13, 76, 48],
      [7, 54, 24, 22, 55, 25],
      [22, 45, 15, 13, 46, 16],

      // 26
      [10, 142, 114, 2, 143, 115],
      [19, 74, 46, 4, 75, 47],
      [28, 50, 22, 6, 51, 23],
      [33, 46, 16, 4, 47, 17],

      // 27
      [8, 152, 122, 4, 153, 123],
      [22, 73, 45, 3, 74, 46],
      [8, 53, 23, 26, 54, 24],
      [12, 45, 15, 28, 46, 16],

      // 28
      [3, 147, 117, 10, 148, 118],
      [3, 73, 45, 23, 74, 46],
      [4, 54, 24, 31, 55, 25],
      [11, 45, 15, 31, 46, 16],

      // 29
      [7, 146, 116, 7, 147, 117],
      [21, 73, 45, 7, 74, 46],
      [1, 53, 23, 37, 54, 24],
      [19, 45, 15, 26, 46, 16],

      // 30
      [5, 145, 115, 10, 146, 116],
      [19, 75, 47, 10, 76, 48],
      [15, 54, 24, 25, 55, 25],
      [23, 45, 15, 25, 46, 16],

      // 31
      [13, 145, 115, 3, 146, 116],
      [2, 74, 46, 29, 75, 47],
      [42, 54, 24, 1, 55, 25],
      [23, 45, 15, 28, 46, 16],

      // 32
      [17, 145, 115],
      [10, 74, 46, 23, 75, 47],
      [10, 54, 24, 35, 55, 25],
      [19, 45, 15, 35, 46, 16],

      // 33
      [17, 145, 115, 1, 146, 116],
      [14, 74, 46, 21, 75, 47],
      [29, 54, 24, 19, 55, 25],
      [11, 45, 15, 46, 46, 16],

      // 34
      [13, 145, 115, 6, 146, 116],
      [14, 74, 46, 23, 75, 47],
      [44, 54, 24, 7, 55, 25],
      [59, 46, 16, 1, 47, 17],

      // 35
      [12, 151, 121, 7, 152, 122],
      [12, 75, 47, 26, 76, 48],
      [39, 54, 24, 14, 55, 25],
      [22, 45, 15, 41, 46, 16],

      // 36
      [6, 151, 121, 14, 152, 122],
      [6, 75, 47, 34, 76, 48],
      [46, 54, 24, 10, 55, 25],
      [2, 45, 15, 64, 46, 16],

      // 37
      [17, 152, 122, 4, 153, 123],
      [29, 74, 46, 14, 75, 47],
      [49, 54, 24, 10, 55, 25],
      [24, 45, 15, 46, 46, 16],

      // 38
      [4, 152, 122, 18, 153, 123],
      [13, 74, 46, 32, 75, 47],
      [48, 54, 24, 14, 55, 25],
      [42, 45, 15, 32, 46, 16],

      // 39
      [20, 147, 117, 4, 148, 118],
      [40, 75, 47, 7, 76, 48],
      [43, 54, 24, 22, 55, 25],
      [10, 45, 15, 67, 46, 16],

      // 40
      [19, 148, 118, 6, 149, 119],
      [18, 75, 47, 31, 76, 48],
      [34, 54, 24, 34, 55, 25],
      [20, 45, 15, 61, 46, 16]
    ];

    var qrRSBlock = function(totalCount, dataCount) {
      var _this = {};
      _this.totalCount = totalCount;
      _this.dataCount = dataCount;
      return _this;
    };

    var _this = {};

    var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {

      switch(errorCorrectionLevel) {
      case QRErrorCorrectionLevel.L :
        return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
      case QRErrorCorrectionLevel.M :
        return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
      case QRErrorCorrectionLevel.Q :
        return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
      case QRErrorCorrectionLevel.H :
        return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
      default :
        return undefined;
      }
    };

    _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {

      var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);

      if (typeof rsBlock == 'undefined') {
        throw 'bad rs block @ typeNumber:' + typeNumber +
            '/errorCorrectionLevel:' + errorCorrectionLevel;
      }

      var length = rsBlock.length / 3;

      var list = [];

      for (var i = 0; i < length; i += 1) {

        var count = rsBlock[i * 3 + 0];
        var totalCount = rsBlock[i * 3 + 1];
        var dataCount = rsBlock[i * 3 + 2];

        for (var j = 0; j < count; j += 1) {
          list.push(qrRSBlock(totalCount, dataCount) );
        }
      }

      return list;
    };

    return _this;
  }();

  //---------------------------------------------------------------------
  // qrBitBuffer
  //---------------------------------------------------------------------

  var qrBitBuffer = function() {

    var _buffer = [];
    var _length = 0;

    var _this = {};

    _this.getBuffer = function() {
      return _buffer;
    };

    _this.getAt = function(index) {
      var bufIndex = Math.floor(index / 8);
      return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;
    };

    _this.put = function(num, length) {
      for (var i = 0; i < length; i += 1) {
        _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);
      }
    };

    _this.getLengthInBits = function() {
      return _length;
    };

    _this.putBit = function(bit) {

      var bufIndex = Math.floor(_length / 8);
      if (_buffer.length <= bufIndex) {
        _buffer.push(0);
      }

      if (bit) {
        _buffer[bufIndex] |= (0x80 >>> (_length % 8) );
      }

      _length += 1;
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // qrNumber
  //---------------------------------------------------------------------

  var qrNumber = function(data) {

    var _mode = QRMode.MODE_NUMBER;
    var _data = data;

    var _this = {};

    _this.getMode = function() {
      return _mode;
    };

    _this.getLength = function(buffer) {
      return _data.length;
    };

    _this.write = function(buffer) {

      var data = _data;

      var i = 0;

      while (i + 2 < data.length) {
        buffer.put(strToNum(data.substring(i, i + 3) ), 10);
        i += 3;
      }

      if (i < data.length) {
        if (data.length - i == 1) {
          buffer.put(strToNum(data.substring(i, i + 1) ), 4);
        } else if (data.length - i == 2) {
          buffer.put(strToNum(data.substring(i, i + 2) ), 7);
        }
      }
    };

    var strToNum = function(s) {
      var num = 0;
      for (var i = 0; i < s.length; i += 1) {
        num = num * 10 + chatToNum(s.charAt(i) );
      }
      return num;
    };

    var chatToNum = function(c) {
      if ('0' <= c && c <= '9') {
        return c.charCodeAt(0) - '0'.charCodeAt(0);
      }
      throw 'illegal char :' + c;
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // qrAlphaNum
  //---------------------------------------------------------------------

  var qrAlphaNum = function(data) {

    var _mode = QRMode.MODE_ALPHA_NUM;
    var _data = data;

    var _this = {};

    _this.getMode = function() {
      return _mode;
    };

    _this.getLength = function(buffer) {
      return _data.length;
    };

    _this.write = function(buffer) {

      var s = _data;

      var i = 0;

      while (i + 1 < s.length) {
        buffer.put(
          getCode(s.charAt(i) ) * 45 +
          getCode(s.charAt(i + 1) ), 11);
        i += 2;
      }

      if (i < s.length) {
        buffer.put(getCode(s.charAt(i) ), 6);
      }
    };

    var getCode = function(c) {

      if ('0' <= c && c <= '9') {
        return c.charCodeAt(0) - '0'.charCodeAt(0);
      } else if ('A' <= c && c <= 'Z') {
        return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;
      } else {
        switch (c) {
        case ' ' : return 36;
        case '$' : return 37;
        case '%' : return 38;
        case '*' : return 39;
        case '+' : return 40;
        case '-' : return 41;
        case '.' : return 42;
        case '/' : return 43;
        case ':' : return 44;
        default :
          throw 'illegal char :' + c;
        }
      }
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // qr8BitByte
  //---------------------------------------------------------------------

  var qr8BitByte = function(data) {

    var _mode = QRMode.MODE_8BIT_BYTE;
    var _data = data;
    var _bytes = qrcode.stringToBytes(data);

    var _this = {};

    _this.getMode = function() {
      return _mode;
    };

    _this.getLength = function(buffer) {
      return _bytes.length;
    };

    _this.write = function(buffer) {
      for (var i = 0; i < _bytes.length; i += 1) {
        buffer.put(_bytes[i], 8);
      }
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // qrKanji
  //---------------------------------------------------------------------

  var qrKanji = function(data) {

    var _mode = QRMode.MODE_KANJI;
    var _data = data;

    var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];
    if (!stringToBytes) {
      throw 'sjis not supported.';
    }
    !function(c, code) {
      // self test for sjis support.
      var test = stringToBytes(c);
      if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {
        throw 'sjis not supported.';
      }
    }('\u53cb', 0x9746);

    var _bytes = stringToBytes(data);

    var _this = {};

    _this.getMode = function() {
      return _mode;
    };

    _this.getLength = function(buffer) {
      return ~~(_bytes.length / 2);
    };

    _this.write = function(buffer) {

      var data = _bytes;

      var i = 0;

      while (i + 1 < data.length) {

        var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);

        if (0x8140 <= c && c <= 0x9FFC) {
          c -= 0x8140;
        } else if (0xE040 <= c && c <= 0xEBBF) {
          c -= 0xC140;
        } else {
          throw 'illegal char at ' + (i + 1) + '/' + c;
        }

        c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);

        buffer.put(c, 13);

        i += 2;
      }

      if (i < data.length) {
        throw 'illegal char at ' + (i + 1);
      }
    };

    return _this;
  };

  //=====================================================================
  // GIF Support etc.
  //

  //---------------------------------------------------------------------
  // byteArrayOutputStream
  //---------------------------------------------------------------------

  var byteArrayOutputStream = function() {

    var _bytes = [];

    var _this = {};

    _this.writeByte = function(b) {
      _bytes.push(b & 0xff);
    };

    _this.writeShort = function(i) {
      _this.writeByte(i);
      _this.writeByte(i >>> 8);
    };

    _this.writeBytes = function(b, off, len) {
      off = off || 0;
      len = len || b.length;
      for (var i = 0; i < len; i += 1) {
        _this.writeByte(b[i + off]);
      }
    };

    _this.writeString = function(s) {
      for (var i = 0; i < s.length; i += 1) {
        _this.writeByte(s.charCodeAt(i) );
      }
    };

    _this.toByteArray = function() {
      return _bytes;
    };

    _this.toString = function() {
      var s = '';
      s += '[';
      for (var i = 0; i < _bytes.length; i += 1) {
        if (i > 0) {
          s += ',';
        }
        s += _bytes[i];
      }
      s += ']';
      return s;
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // base64EncodeOutputStream
  //---------------------------------------------------------------------

  var base64EncodeOutputStream = function() {

    var _buffer = 0;
    var _buflen = 0;
    var _length = 0;
    var _base64 = '';

    var _this = {};

    var writeEncoded = function(b) {
      _base64 += String.fromCharCode(encode(b & 0x3f) );
    };

    var encode = function(n) {
      if (n < 0) {
        // error.
      } else if (n < 26) {
        return 0x41 + n;
      } else if (n < 52) {
        return 0x61 + (n - 26);
      } else if (n < 62) {
        return 0x30 + (n - 52);
      } else if (n == 62) {
        return 0x2b;
      } else if (n == 63) {
        return 0x2f;
      }
      throw 'n:' + n;
    };

    _this.writeByte = function(n) {

      _buffer = (_buffer << 8) | (n & 0xff);
      _buflen += 8;
      _length += 1;

      while (_buflen >= 6) {
        writeEncoded(_buffer >>> (_buflen - 6) );
        _buflen -= 6;
      }
    };

    _this.flush = function() {

      if (_buflen > 0) {
        writeEncoded(_buffer << (6 - _buflen) );
        _buffer = 0;
        _buflen = 0;
      }

      if (_length % 3 != 0) {
        // padding
        var padlen = 3 - _length % 3;
        for (var i = 0; i < padlen; i += 1) {
          _base64 += '=';
        }
      }
    };

    _this.toString = function() {
      return _base64;
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // base64DecodeInputStream
  //---------------------------------------------------------------------

  var base64DecodeInputStream = function(str) {

    var _str = str;
    var _pos = 0;
    var _buffer = 0;
    var _buflen = 0;

    var _this = {};

    _this.read = function() {

      while (_buflen < 8) {

        if (_pos >= _str.length) {
          if (_buflen == 0) {
            return -1;
          }
          throw 'unexpected end of file./' + _buflen;
        }

        var c = _str.charAt(_pos);
        _pos += 1;

        if (c == '=') {
          _buflen = 0;
          return -1;
        } else if (c.match(/^\s$/) ) {
          // ignore if whitespace.
          continue;
        }

        _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );
        _buflen += 6;
      }

      var n = (_buffer >>> (_buflen - 8) ) & 0xff;
      _buflen -= 8;
      return n;
    };

    var decode = function(c) {
      if (0x41 <= c && c <= 0x5a) {
        return c - 0x41;
      } else if (0x61 <= c && c <= 0x7a) {
        return c - 0x61 + 26;
      } else if (0x30 <= c && c <= 0x39) {
        return c - 0x30 + 52;
      } else if (c == 0x2b) {
        return 62;
      } else if (c == 0x2f) {
        return 63;
      } else {
        throw 'c:' + c;
      }
    };

    return _this;
  };

  //---------------------------------------------------------------------
  // gifImage (B/W)
  //---------------------------------------------------------------------

  var gifImage = function(width, height) {

    var _width = width;
    var _height = height;
    var _data = new Array(width * height);

    var _this = {};

    _this.setPixel = function(x, y, pixel) {
      _data[y * _width + x] = pixel;
    };

    _this.write = function(out) {

      //---------------------------------
      // GIF Signature

      out.writeString('GIF87a');

      //---------------------------------
      // Screen Descriptor

      out.writeShort(_width);
      out.writeShort(_height);

      out.writeByte(0x80); // 2bit
      out.writeByte(0);
      out.writeByte(0);

      //---------------------------------
      // Global Color Map

      // black
      out.writeByte(0x00);
      out.writeByte(0x00);
      out.writeByte(0x00);

      // white
      out.writeByte(0xff);
      out.writeByte(0xff);
      out.writeByte(0xff);

      //---------------------------------
      // Image Descriptor

      out.writeString(',');
      out.writeShort(0);
      out.writeShort(0);
      out.writeShort(_width);
      out.writeShort(_height);
      out.writeByte(0);

      //---------------------------------
      // Local Color Map

      //---------------------------------
      // Raster Data

      var lzwMinCodeSize = 2;
      var raster = getLZWRaster(lzwMinCodeSize);

      out.writeByte(lzwMinCodeSize);

      var offset = 0;

      while (raster.length - offset > 255) {
        out.writeByte(255);
        out.writeBytes(raster, offset, 255);
        offset += 255;
      }

      out.writeByte(raster.length - offset);
      out.writeBytes(raster, offset, raster.length - offset);
      out.writeByte(0x00);

      //---------------------------------
      // GIF Terminator
      out.writeString(';');
    };

    var bitOutputStream = function(out) {

      var _out = out;
      var _bitLength = 0;
      var _bitBuffer = 0;

      var _this = {};

      _this.write = function(data, length) {

        if ( (data >>> length) != 0) {
          throw 'length over';
        }

        while (_bitLength + length >= 8) {
          _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );
          length -= (8 - _bitLength);
          data >>>= (8 - _bitLength);
          _bitBuffer = 0;
          _bitLength = 0;
        }

        _bitBuffer = (data << _bitLength) | _bitBuffer;
        _bitLength = _bitLength + length;
      };

      _this.flush = function() {
        if (_bitLength > 0) {
          _out.writeByte(_bitBuffer);
        }
      };

      return _this;
    };

    var getLZWRaster = function(lzwMinCodeSize) {

      var clearCode = 1 << lzwMinCodeSize;
      var endCode = (1 << lzwMinCodeSize) + 1;
      var bitLength = lzwMinCodeSize + 1;

      // Setup LZWTable
      var table = lzwTable();

      for (var i = 0; i < clearCode; i += 1) {
        table.add(String.fromCharCode(i) );
      }
      table.add(String.fromCharCode(clearCode) );
      table.add(String.fromCharCode(endCode) );

      var byteOut = byteArrayOutputStream();
      var bitOut = bitOutputStream(byteOut);

      // clear code
      bitOut.write(clearCode, bitLength);

      var dataIndex = 0;

      var s = String.fromCharCode(_data[dataIndex]);
      dataIndex += 1;

      while (dataIndex < _data.length) {

        var c = String.fromCharCode(_data[dataIndex]);
        dataIndex += 1;

        if (table.contains(s + c) ) {

          s = s + c;

        } else {

          bitOut.write(table.indexOf(s), bitLength);

          if (table.size() < 0xfff) {

            if (table.size() == (1 << bitLength) ) {
              bitLength += 1;
            }

            table.add(s + c);
          }

          s = c;
        }
      }

      bitOut.write(table.indexOf(s), bitLength);

      // end code
      bitOut.write(endCode, bitLength);

      bitOut.flush();

      return byteOut.toByteArray();
    };

    var lzwTable = function() {

      var _map = {};
      var _size = 0;

      var _this = {};

      _this.add = function(key) {
        if (_this.contains(key) ) {
          throw 'dup key:' + key;
        }
        _map[key] = _size;
        _size += 1;
      };

      _this.size = function() {
        return _size;
      };

      _this.indexOf = function(key) {
        return _map[key];
      };

      _this.contains = function(key) {
        return typeof _map[key] != 'undefined';
      };

      return _this;
    };

    return _this;
  };

  var createDataURL = function(width, height, getPixel) {
    var gif = gifImage(width, height);
    for (var y = 0; y < height; y += 1) {
      for (var x = 0; x < width; x += 1) {
        gif.setPixel(x, y, getPixel(x, y) );
      }
    }

    var b = byteArrayOutputStream();
    gif.write(b);

    var base64 = base64EncodeOutputStream();
    var bytes = b.toByteArray();
    for (var i = 0; i < bytes.length; i += 1) {
      base64.writeByte(bytes[i]);
    }
    base64.flush();

    return 'data:image/gif;base64,' + base64;
  };

  //---------------------------------------------------------------------
  // returns qrcode function.

  return qrcode;
}();

// multibyte support
!function() {

  qrcode.stringToBytesFuncs['UTF-8'] = function(s) {
    // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array
    function toUTF8Array(str) {
      var utf8 = [];
      for (var i=0; i < str.length; i++) {
        var charcode = str.charCodeAt(i);
        if (charcode < 0x80) utf8.push(charcode);
        else if (charcode < 0x800) {
          utf8.push(0xc0 | (charcode >> 6),
              0x80 | (charcode & 0x3f));
        }
        else if (charcode < 0xd800 || charcode >= 0xe000) {
          utf8.push(0xe0 | (charcode >> 12),
              0x80 | ((charcode>>6) & 0x3f),
              0x80 | (charcode & 0x3f));
        }
        // surrogate pair
        else {
          i++;
          // UTF-16 encodes 0x10000-0x10FFFF by
          // subtracting 0x10000 and splitting the
          // 20 bits of 0x0-0xFFFFF into two halves
          charcode = 0x10000 + (((charcode & 0x3ff)<<10)
            | (str.charCodeAt(i) & 0x3ff));
          utf8.push(0xf0 | (charcode >>18),
              0x80 | ((charcode>>12) & 0x3f),
              0x80 | ((charcode>>6) & 0x3f),
              0x80 | (charcode & 0x3f));
        }
      }
      return utf8;
    }
    return toUTF8Array(s);
  };

}();

(function (factory) {
  if (typeof define === 'function' && define.amd) {
      define([], factory);
  } else if (typeof exports === 'object') {
      module.exports = factory();
  }
}(function () {
    return qrcode;
}));
plg_twofactorauth_totp/js/qrcode_UTF8.js000064400000001431152177723720014417 0ustar00//---------------------------------------------------------------------
//
// QR Code Generator for JavaScript UTF8 Support (optional)
//
// Copyright (c) 2011 Kazuhiko Arase
//
// URL: http://www.d-project.com/
//
// Licensed under the MIT license:
//  http://www.opensource.org/licenses/mit-license.php
//
// The word 'QR Code' is registered trademark of
// DENSO WAVE INCORPORATED
//  http://www.denso-wave.com/qrcode/faqpatent-e.html
//
//---------------------------------------------------------------------

!function(qrcode) {

  //---------------------------------------------------------------------
  // overwrite qrcode.stringToBytes
  //---------------------------------------------------------------------

  qrcode.stringToBytes = qrcode.stringToBytesFuncs['UTF-8'];

}(qrcode);
plg_twofactorauth_totp/js/qrcode_SJIS.js000064400000114157152177723720014453 0ustar00//---------------------------------------------------------------------
//
// QR Code Generator for JavaScript SJIS Support (optional)
//
// Copyright (c) 2011 Kazuhiko Arase
//
// URL: http://www.d-project.com/
//
// Licensed under the MIT license:
//  http://www.opensource.org/licenses/mit-license.php
//
// The word 'QR Code' is registered trademark of
// DENSO WAVE INCORPORATED
//  http://www.denso-wave.com/qrcode/faqpatent-e.html
//
//---------------------------------------------------------------------

!function(qrcode) {

  //---------------------------------------------------------------------
  // overwrite qrcode.stringToBytes
  //---------------------------------------------------------------------

  qrcode.stringToBytesFuncs['SJIS'] = qrcode.createStringToBytes(
    'AAAAAAABAAEAAgACAAMAAwAEAAQABQAFAAYABgAHAAcACAAIAAkACQAKAAoACwALAAwADAANAA0ADgAOAA8ADwAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAB4AHgAfAB8AIAAgACEAIQAiACIAIwAjACQAJAAlACUAJgAmACcAJwAoACgAKQApACoAKgArACsALAAsAC0ALQAuAC4ALwAvADAAMAAxADEAMgAyADMAMwA0ADQANQA1ADYANgA3ADcAOAA4ADkAOQA6ADoAOwA7ADwAPAA9AD0APgA+AD8APwBAAEAAQQBBAEIAQgBDAEMARABEAEUARQBGAEYARwBHAEgASABJAEkASgBKAEsASwBMAEwATQBNAE4ATgBPAE8AUABQAFEAUQBSAFIAUwBTAFQAVABVAFUAVgBWAFcAVwBYAFgAWQBZAFoAWgBbAFsAXABcAF0AXQBeAF4AXwBfAGAAYABhAGEAYgBiAGMAYwBkAGQAZQBlAGYAZgBnAGcAaABoAGkAaQBqAGoAawBrAGwAbABtAG0AbgBuAG8AbwBwAHAAcQBxAHIAcgBzAHMAdAB0AHUAdQB2AHYAdwB3AHgAeAB5AHkAegB6AHsAewB8AHwAfQB9AH4AfgB\/AH8AooGRAKOBkgCngZgAqIFOAKyBygCwgYsAsYF9ALSBTAC2gfcA14F+APeBgAORg58DkoOgA5ODoQOUg6IDlYOjA5aDpAOXg6UDmIOmA5mDpwOag6gDm4OpA5yDqgOdg6sDnoOsA5+DrQOgg64DoYOvA6ODsAOkg7EDpYOyA6aDswOng7QDqIO1A6mDtgOxg78DsoPAA7ODwQO0g8IDtYPDA7aDxAO3g8UDuIPGA7mDxwO6g8gDu4PJA7yDygO9g8sDvoPMA7+DzQPAg84DwYPPA8OD0APEg9EDxYPSA8aD0wPHg9QDyIPVA8mD1gQBhEYEEIRABBGEQQQShEIEE4RDBBSERAQVhEUEFoRHBBeESAQYhEkEGYRKBBqESwQbhEwEHIRNBB2ETgQehE8EH4RQBCCEUQQhhFIEIoRTBCOEVAQkhFUEJYRWBCaEVwQnhFgEKIRZBCmEWgQqhFsEK4RcBCyEXQQthF4ELoRfBC+EYAQwhHAEMYRxBDKEcgQzhHMENIR0BDWEdQQ2hHcEN4R4BDiEeQQ5hHoEOoR7BDuEfAQ8hH0EPYR+BD6EgAQ\/hIEEQISCBEGEgwRChIQEQ4SFBESEhgRFhIcERoSIBEeEiQRIhIoESYSLBEqEjARLhI0ETISOBE2EjwROhJAET4SRBFGEdiAQgV0gFIFcIBaBYSAYgWUgGYFmIByBZyAdgWggIIH1ICGB9iAlgWQgJoFjIDCB8SAygYwgM4GNIDuBpiEDgY4hK4HwIZCBqSGRgaohkoGoIZOBqyHSgcsh1IHMIgCBzSICgd0iA4HOIgeB3iIIgbgiC4G5IhKBfCIageMiHYHlIh6BhyIggdoiJ4HIIiiBySIpgb8iKoG+IiuB5yIsgegiNIGIIjWB5iI9geQiUoHgImCBgiJhgd8iZoGFImeBhiJqgeEia4HiIoKBvCKDgb0ihoG6IoeBuyKlgdsjEoHcJQCEnyUBhKolAoSgJQOEqyUMhKElD4SsJRCEoiUThK0lFISkJReEryUYhKMlG4SuJRyEpSUdhLolIIS1JSOEsCUkhKclJYS8JSiEtyUrhLIlLISmJS+EtiUwhLslM4SxJTSEqCU3hLglOIS9JTuEsyU8hKklP4S5JUKEviVLhLQloIGhJaGBoCWygaMls4GiJbyBpSW9gaQlxoGfJceBniXLgZslzoGdJc+BnCXvgfwmBYGaJgaBmSZAgYomQoGJJmqB9CZtgfMmb4HyMACBQDABgUEwAoFCMAOBVjAFgVgwBoFZMAeBWjAIgXEwCYFyMAqBczALgXQwDIF1MA2BdjAOgXcwD4F4MBCBeTARgXowEoGnMBOBrDAUgWswFYFsMByBYDBBgp8wQoKgMEOCoTBEgqIwRYKjMEaCpDBHgqUwSIKmMEmCpzBKgqgwS4KpMEyCqjBNgqswToKsME+CrTBQgq4wUYKvMFKCsDBTgrEwVIKyMFWCszBWgrQwV4K1MFiCtjBZgrcwWoK4MFuCuTBcgrowXYK7MF6CvDBfgr0wYIK+MGGCvzBigsAwY4LBMGSCwjBlgsMwZoLEMGeCxTBogsYwaYLHMGqCyDBrgskwbILKMG2CyzBugswwb4LNMHCCzjBxgs8wcoLQMHOC0TB0gtIwdYLTMHaC1DB3gtUweILWMHmC1zB6gtgwe4LZMHyC2jB9gtswfoLcMH+C3TCAgt4wgYLfMIKC4DCDguEwhILiMIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC\/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw\/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI\/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi\/hONpikTjiK2045kk9OO47lTjyYpU4\/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4\/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk\/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U6mlpJOqIucTquLnU6si55OrZLgTq6Xuk6wmLVOs5i2TraYt066kGxOwI9ZTsGQbU7CmLxOxJi6TsaYu07Hi3dOyo2hTsuJ7k7NmLlOzpi4Ts+Vp07UjmVO1Y5kTtaRvE7XmL1O2JV0TtmQ5U7dgVdO3pi+Tt+YwE7jkeNO5JffTuWIyE7tmL9O7om8TvCLwk7ykodO9oyPTveYwU77lENPAYrpTwmYwk8KiMlPDYzeTw6K6k8PlZpPEJSwTxGLeE8aie9PHJjlTx2TYE8vlIxPMJjETzSUuk82l+BPOJBMTzqOZk88jpdPPYm+T0OSz09GkkFPR5jIT02Iyk9OkuFPT49aT1CNsk9Rl0NPU5HMT1WJvU9XmMdPWZddT1qYw09bmMVPXI3sT12Yxk9em0NPaZjOT2+Y0U9wmM9Pc4nAT3WVuU92mMlPe5jNT3yM8U9\/jmdPg4qkT4aY0k+ImMpPi5fhT42OmE+PmMtPkZjQT5aY00+YmMxPm4ufT52Iy0+gi6BPoYm\/T6ubRE+tlplPrpWOT6+M8k+1kE5Ptpe1T7+V1k\/CjFdPw5GjT8SJ4k\/Kj3JPzpjXT9CY3E\/RmNpP1JjVT9eRrU\/YmNhP2pjbT9uY2U\/dldtP35jWT+GQTU\/jlpNP5JjdT+WY3k\/uj0NP75jrT\/OUb0\/1lVVP9pjmT\/iV7k\/6ibRP\/pjqUAWY5FAGmO1QCZFxUAuMwlANlHtQD+DFUBGY7FASk3xQFJjhUBaM9FAZjPNQGpjfUB+O2FAhmOdQI5XtUCSSbFAlmONQJoyRUCiY4FApmOhQKpjiUCuXz1AsmOlQLZhgUDaL5FA5jJBQQ5juUEeY71BImPNQSYjMUE+VzlBQmPJQVZjxUFaY9VBamPRQXJLiUGWMklBsmPZQco7DUHSRpFB1kuNQdov0UHiY91B9i1VQgJj4UIWY+lCNllRQkYyGUJiOUFCZlPVQmpj5UKyNw1Ctl2JQspj8ULOZQlC0mPtQtY3CULePnVC+jFhQwplDUMWLzVDJmUBQyplBUM2TrVDPkZxQ0YuhUNWWbFDWmURQ2pe7UN6ZRVDjmUhQ5ZlGUOeRbVDtmUdQ7plJUPWZS1D5mUpQ+5XGUQCLVlEBmU1RAplOUQSJrVEJmUxREo7yURSZUVEVmVBRFplPURiY1FEamVJRH4+eUSGZU1Eql0RRMpbXUTeZVVE6mVRRO5lXUTyZVlE\/mVhRQJlZUUGI8lFDjLNRRIxaUUWPW1FGkptRR4uiUUiQ5lFJjPVRS42OUUyZW1FNlsZRTpNlUVCOmVFSmVpRVJlcUVqTfVFcipVRYpldUWWT\/FFokVNRaZlfUWqZYFFrlKpRbIz2UW2YWlFumWFRcYukUXWVulF2kbRRd4vvUXiTVFF8jJNRgJliUYKZY1GFk+BRhol+UYmZZlGKjftRjJllUY2NxFGPmWdRkOPsUZGZaFGSlmBRk5lpUZWZalGWmWtRl4\/nUZmOylGgiqVRopluUaSZbFGllrtRppltUaiVeVGpmW9RqplwUauZcVGsk35RsJl1UbGZc1GymXRRs5lyUbSN4VG1mXZRtpboUbeX4lG9mXdRxJCmUcWZeFHGj3lRyZl5UcuSnFHMl71RzZOAUdaZw1HbmXpR3OqjUd2Lw1HgmXtR4ZZ9UeaPiFHnkfpR6Zl9UeqT4lHtmX5R8JmAUfGKTVH1mYFR9oulUfiTylH5iZpR+o9vUf2Un1H+mYJSAJOBUgOQblIEmYNSBpWqUgeQ2FIIiqBSCoqnUguZhFIOmYZSEYxZUhSZhVIXl\/FSHY+JUiSUu1IllcpSJ5mHUimXmFIqmYhSLpmJUjCTnlIzmYpSNpCnUjeN\/FI4jJRSOZmLUjqOaFI7jY9SQ5LkUkSZjVJHkaVSSo3tUkuZjlJMmY9STZFPUk+ZjFJUmZFSVpZVUluNhFJemZBSY4yVUmSN3FJllI1SaZmUUmqZklJvlZtScI\/oUnGZm1JyioRSc5mVUnSZk1J1kW5SfZmXUn+ZllKDimNSh4yAUoiZnFKJl6tSjZmYUpGZnVKSmZpSlJmZUpuXzVKfjPdSoInBUqOX8lKpj5VSqpN3UquNhVKsmaBSrZmhUrGX41K0mEpStZmjUrmM+FK8maJSvopOUsGZpFLDlnVSxZK6UseXRVLJlddSzZmlUtLo01LVk65S15mmUtiKqFLZlrFS3Y+fUt6Zp1LfleVS4JmrUuKQqFLjmahS5IvOUuaZqVLniqlS8oxNUvOZrFL1ma1S+JmuUvmZr1L6jtlS\/oz5Uv+W3FMBluZTApP1UwWV71MGmbBTCJmxUw2Zs1MPmbVTEJm0UxWZtlMWibtTF5ZrUxmN+lMambdTHZF4UyCPoFMhi6dTI5m4UyqU2VMvmblTMZm6UzOZu1M4mbxTOZVDUzqL5lM7iONTP5O9U0CZvVNBj1xTQ5DnU0WZv1NGmb5TR4+hU0iM31NJmcFTSpS8U02ZwlNRlNpTUpGyU1OR7FNUi6ZTV5PsU1iSUFNalI5TXJZtU16ZxFNgkOhTZoxUU2mZxVNumcZTb4lLU3CI81NxiutTc5GmU3SLcFN1l5FTd5nJU3iJtVN7mchTf4uoU4KZylOElu9TlpnLU5iX0FOajPpTn4y0U6CZzFOlmc5TppnNU6iQflOpiVhTrYl9U66Zz1OwmdBTs4y1U7aZ0VO7i45Two5RU8OZ0lPIlpRTyY2zU8qLeVPLl0ZTzJFvU82UvVPOjvtT1I9mU9aO5lPXjvNT2Y+WU9uUvlPfmdVT4YliU+KRcFPjjPtT5IzDU+WL5VPomdlT6ZJAU+qR\/FPri6lT7I+iU+2Z2lPumdhT74nCU\/CR5FPxjrZT8o5qU\/OJRVP2ipBT942GU\/iOaVP6mdtUAZncVAOLaFQEimVUCI2HVAmLZ1QKkt1UC4lEVAyTr1QNlrxUDo1AVA+XmVQQk2ZUEYz8VBuMTlQdmeVUH4vhVCCWaVQmlNtUKZnkVCuK3FQsmd9ULZngVC6Z4lQ2meNUOIt6VDmQgVQ7latUPJnhVD2Z3VQ+jOFUQJneVEKYQ1RGlfBUSJLmVEmM4FRKjZBUTpnmVFGT21RfmepUaI78VGqO9FRwme1UcZnrVHOWoVR1mehUdpnxVHeZ7FR7me9UfIzEVH2WvVSAmfBUhJnyVIaZ9FSLje5UjJhhVI6Z6VSPmedUkJnzVJKZ7lSimfZUpJpCVKWZ+FSomfxUq5pAVKyZ+VSvml1Uso3nVLOKUFS4mfdUvJpEVL2I9FS+mkNUwIijVMGVaVTCmkFUxJn6VMeZ9VTImftUyY3GVNiaRVThiPVU4ppOVOWaRlTmmkdU6I+jVOmWiVTtmkxU7ppLVPKTTlT6mk1U\/ZpKVQSJU1UGjbRVB5BPVQ+aSFUQk4JVFJpJVRaIoFUumlNVL5dCVTGPpVUzmllVOJpYVTmaT1U+kcFVQJpQVUSR7VVFmlVVRo+kVUyaUlVPluJVU4xbVVaaVlVXmldVXJpUVV2aWlVjmlFVe5pgVXyaZVV+mmFVgJpcVYOaZlWEkVBVh5poVYmNQVWKml5Vi5KdVZiaYlWZmltVmoqrVZyK7FWdioVVnppjVZ+aX1WnjJZVqJppVamaZ1WqkXJVq4tpVayLqlWummRVsIvyVbaJY1XEmm1VxZprVceapVXUmnBV2ppqVdyablXfmmxV445rVeSab1X3mnJV+Zp3Vf2adVX+mnRWBpJRVgmJw1YUmnFWFppzVhePplYYiVJWG5p2VimJ3FYvmoJWMY\/6VjKafVY0mntWNpp8VjiaflZCiVxWTJFYVk6aeFZQmnlWW4qaVmSagVZoiu1WapqEVmuagFZsmoNWdJWsVniT01Z6lLZWgJqGVoaahVaHimRWipqHVo+ailaUmolWoJqIVqKUWFalmotWrpqMVrSajla2mo1WvJqQVsCak1bBmpFWwpqPVsOaklbImpRWzpqVVtGallbTmpdW15qYVtiZZFbajvpW245sVt6J8VbgiPZW45JjVu6amVbwjaJW8ojNVvOQfVb5mppW+ozFVv2NkVb\/mpxXAJqbVwOV3lcEmp1XCJqfVwmanlcLmqBXDZqhVw+Ml1cSiYBXE5qiVxaapFcYmqNXHJqmVx+TeVcmmqdXJ4izVyiN3VctjFxXMJJuVzeaqFc4mqlXO5qrV0CarFdCjeJXR4vPV0qWVldOmqpXT5qtV1CNv1dRjUJXYZqxV2SNo1dmklJXaZquV2qS2Fd\/mrJXgpCCV4iasFeJmrNXi4xeV5OatFegmrVXoo1DV6OKX1ekmrdXqpq4V7CauVezmrZXwJqvV8OaulfGmrtXy5aEV86P6VfSmr1X05q+V9SavFfWmsBX3JRXV9+I5lfglXVX45rBV\/SP+1f3jrdX+ZR8V\/qK7lf8jelYAJZ4WAKTsFgFjJhYBpHNWAqav1gLmsJYFZHCWBmaw1gdmsRYIZrGWCSS51gqiqxYL+qfWDCJgVgxlfFYNI\/qWDWTZ1g6jeRYPZrMWECVu1hBl9tYSonyWEuayFhRkVlYUprLWFSTg1hXk2hYWJOEWFmUt1hakstYXo3HWGKax1hpiZZYa5NVWHCayVhymsVYdZBvWHmazVh+j21Yg4urWIWazliTleZYl5GdWJySxFifmtBYqJZuWKua0ViumtZYs5WtWLia1Vi5ms9YuprSWLua1Fi+jaRYwZXHWMWa11jHkmRYyonzWMyP61jRmtlY05rYWNWNiFjXmtpY2JrcWNma21jcmt5Y3prTWN+a4Fjkmt9Y5ZrdWOuObVjskHBY7pFzWO+a4VjwkLpY8YjrWPKUhFj3ktlY+ZrjWPqa4lj7muRY\/JrlWP2a5lkCmudZCZXPWQqa6FkPicRZEJrpWRWXW1kWik9ZGJnHWRmPZ1kakb1ZG5rqWRyW6VkilrJZJZrsWSeR5Vkpk1ZZKpG+WSuVdlksmu1ZLZruWS6Jm1kxjrhZMprvWTeIzlk4mvBZPprxWUSJgllHiu9ZSJPeWUmV8llOmvVZT5F0WVCa9FlRjF9ZVJZ6WVWa81lXk4VZWJr3WVqa9llgmvlZYpr4WWWJnFlnmvpZaI+nWWma\/FlqkkRZbJr7WW6VsVlzj5dZdJN6WXibQFl9jURZgZtBWYKUQFmDlNxZhJbPWYqURFmNm0pZk4tXWZaXZFmZlq1Zm5uqWZ2bQlmjm0VZpZHDWaiWV1msk2lZsptGWbmWhVm7jchZvo+oWcabR1nJjm9Zy45uWdCIt1nRjMZZ05CpWdSIz1nZm0tZ2ptMWdybSVnliVdZ5oqtWeibSFnqlsNZ65VQWfaIpln7iPdZ\/45wWgGI0FoDiKFaCZtRWhGbT1oYlrpaGptSWhybUFofm05aIJBQWiWbTVopldhaL4ziWjWbVlo2m1daPI+pWkCbU1pBmEtaRpRrWkmbVVpajaVaYptYWmaVd1pqm1labJtUWn+WuVqSlH1amptaWpuVUVq8m1tavZtfWr6bXFrBicVawpteWsmOuVrLm11azIyZWtCba1rWm2Ra15thWuGShFrjm2Ba5ptiWumbY1r6m2Va+5tmWwmK8FsLm2hbDJtnWxabaVsij+xbKptsWyyS2lswiWRbMptqWzabbVs+m25bQJtxW0Obb1tFm3BbUI5xW1GbcltUjUVbVZtzW1eOmltYkbZbWpt0W1ubdVtcjnlbXY1GW1+W0Ftji0dbZIzHW2WbdltmindbaZt3W2uRt1twm3hbcZuhW3ObeVt1m3pbeJt7W3qbfVuAm35bg5uAW4WR7luHiUZbiI7nW4mIwFuLkXZbjIquW42Os1uPjUdblZOGW5ePQFuYiq9bmZKIW5qS6FubiLZbnItYW52V81ufjsBbootxW6OQ6VukjrpbpZdHW6abgVuui3tbsI3JW7OKUVu0iYNbtY+qW7aJxlu4m4JbuZdlW7+PaFvCjuJbw5uDW8SK8VvFk9BbxpanW8ebhFvJm4VbzJV4W9Cbh1vSiqZb04v1W9SbhlvbirBb3ZBRW96bi1vfjkBb4YnHW+Kbilvkm4hb5ZuMW+abiVvnlEpb6J7LW+mQUlvrm41b7pe+W\/Cbjlvzm5Bb9ZKeW\/abj1v4kKFb+o6bW\/6Rzlv\/jvVcAZWVXAKQ6lwEjstcBZuRXAaPq1wHm5JcCJuTXAmI0VwKkbhcC5BxXA2blFwOk7FcD4+sXBGPrVwTm5VcFpDrXBqPrlwgm5ZcIpuXXCSW3lwom5hcLYvEXDGPQVw4m5lcOZuaXDqO2lw7kEtcPJPyXD2Qc1w+lPZcP5RBXECLx1xBm5tcRYuPXEabnFxIi\/xcSpPNXEuJrlxNjnJcTpudXE+boFxQm59cUYv7XFObnlxVk1dcXpGuXGCTalxhjsZcZJF3XGWXmlxsm6JcbpujXG+T1FxxjlJcdpulXHmbplyMm6dckIryXJGbqFyUm6lcoYmqXKiRWlypiuJcq5urXKyWplyxkdBcs4p4XLabrVy3m69cuIrdXLubrFy8m65cvpuxXMWbsFzHm7Jc2ZuzXOCTu1zhi6xc6InjXOmbtFzqm7lc7Zu3XO+V9VzwlfRc9pOHXPqbtlz7j3Nc\/Zu1XQeQkl0Lm7pdDo3oXRGbwF0Um8FdFZu7XRaKUl0Xm7xdGJvFXRmbxF0am8NdG5u\/XR+bvl0im8JdKZX2XUubyV1Mm8ZdTpvIXVCXkl1Sm8ddXJu9XWmQk11sm8pdb421XXOby112m8xdgpvPXYSbzl2Hm81di5OIXYybuF2Qm9VdnZvRXaKb0F2sm9JdrpvTXbeb1l26l+RdvJvXXb2b1F3Jm9hdzIreXc2b2V3Sm9td05vaXdab3F3bm91d3ZDsXd6PQl3hj4Rd45GDXeWNSF3mjbZd541JXeiLkF3rm95d7o23XfGMyF3ym99d85akXfSUYl31m+Bd941KXfuKql39kkZd\/ovQXgKOc14DlXpeBpS\/Xgub4V4MivNeEZvkXhaSn14Zm+NeGpviXhub5V4dkuleJZCDXiuOdF4tkMheL5HRXjCLQV4zkqBeNpvmXjeb5144j+1ePZZYXkCb6l5Dm+leRJvoXkWVnV5Hm\/FeTJZ5Xk6b615Um+1eVZaLXleb7F5fm+5eYZSmXmKb715jlbxeZJvwXnKKsV5zlb1edJROXnWb8l52m\/NeeI1LXnmKsl56m\/Ree4y2XnyXY159l0hefor0Xn+b9l6BkqFeg41MXoSPr16HlN1eio+wXo+PmF6VkupelpX3XpeTWF6ajU1enJV7XqCb916mk3hep43AXquMyV6tkutetYjBXraPjl63jU5euJdmXsGb+F7Cm\/lew5RwXsib+l7Jl\/VeyphMXs+b\/F7Qm\/te04pmXtacQF7anENe25xEXt2cQl7flV9e4I+xXuGcRl7inEVe45xBXuicR17pnEhe7JxJXvCcTF7xnEpe85xLXvScTV72iYRe95LsXvicTl76jJpe+4n0XvyUVV7+nE9e\/5P5XwGV2V8DnFBfBJhNXwmcUV8Klb5fC5xUXwyYn18NmK9fD46uXxCT818RnFVfE4t8XxSSol8ViPhfFpxWXxeVpF8YjU9fG5JvXx+S7V8llu1fJoy3XyeMyl8pnFdfLZxYXy+cXl8xjuNfNZKjXzeLrV84nFlfPJVKXz6SZV9BnFpfSJxbX0qLrl9MnFxfTpxdX1GcX19Tk5ZfVpxgX1ecYV9ZnGJfXJxTX12cUl9hnGNfYoxgX2aVRl9pjcpfapVWX2uSpF9slWpfbZxkX3CPsl9xiWVfc5xlX3ecZl95lvBffJTeX3+caV+AiZ1fgZCqX4KcaF+DnGdfhIxhX4WR0l+HnG1fiJxrX4qcal+Ll6VfjIzjX5CPmV+RnGxfkpNrX5OPXV+Xk75fmJxwX5mcb1+enG5foJxxX6GM5F+onHJfqZWcX6qPel+tnHNfrpT3X7OTv1+0kqVfuZNPX7ycdF+9i0pfw5BTX8WVS1\/MivVfzZRFX9acdV\/XjnVf2JZZX9mWWl\/ciZ5f3Zx6X+CSiV\/knHdf64n1X\/Ccq1\/xnHlf9ZRPX\/iceF\/7nHZf\/Y2aX\/+cfGAOnINgD5yJYBCcgWASk3tgFZyGYBaVfGAZnIBgG5yFYByX5WAdjnZgIJHTYCGcfWAli31gJpyIYCeQq2AoiYVgKZyCYCqJ9mArnIdgL4uvYDGchGA6nIpgQZyMYEKclmBDnJRgRpyRYEqckGBLl\/ZgTZySYFCLsGBSjVBgVY+aYFmcmWBanItgX5yPYGCcfmBiifhgY5yTYGSclWBlknBgaI2mYGmJtmBqnI1ga5yYYGycl2Bti7Fgb5GnYHCKhmB1jGJgd5yOYIGcmmCDnJ1ghJyfYImOu2CLnKVgjJLuYI2cm2CSnKNglIn3YJacoWCXnKJgmpyeYJucoGCfjOVgoJdJYKOKs2CmiXhgp5ykYKmUWWCqiKtgspTfYLOce2C0nKpgtZyuYLaW42C4nKdgvJOJYL2crGDFj+5gxpytYMeT1WDRmGZg05ypYNicr2DajZtg3JDJYN+I0mDgnKhg4ZymYOOReWDnnJxg6I5TYPCRxGDxnLtg85F6YPSctmD2nLNg95y0YPmO5GD6nLdg+5y6YQCctWEBj0RhA5y4YQacsmEIlvphCZb5YQ2cvGEOnL1hD4jTYRWcsWEai\/BhG4ikYR+KtGEhnLlhJ5zBYSicwGEsnMVhNJzGYTycxGE9nMdhPpy\/YT+cw2FCnMhhRJzJYUecvmFIjpxhSpzCYUuR1GFMjVFhTZywYU6QVGFTnNZhVZXnYViczGFZnM1hWpzOYV2c1WFfnNRhYpadYWOKtWFlnNJhZ4xkYWiKU2FrnM9hbpe2YW+c0WFwiNRhcZzTYXOcymF0nNBhdZzXYXaMY2F3nMthfpd8YYKXSmGHnNphipzeYY6RnmGQl\/dhkZzfYZSc3GGWnNlhmZzYYZqc3WGkla5hp5OyYamMZWGrnOBhrJzbYa6c4WGyjJthtomvYbqc6WG+irZhw5znYcac6GHHjadhyJzmYcmc5GHKnONhy5zqYcyc4mHNnOxh0In5YeOc7mHmnO1h8pKmYfSc8WH2nO9h95zlYfiMnGH6nPBh\/Jz0Yf2c82H+nPVh\/5zyYgCc9mIInPdiCZz4YgqV6GIMnPpiDZz5Yg6PXmIQkKxiEYnkYhKJ+mIUnPtiFoi9YhqQymIbnPxiHebBYh6dQGIfjIFiIZ1BYiaQ7WIqnUJiLp1DYi+LWWIwnURiMp1FYjOdRmI0kdViOIzLYjuW32I\/lltiQI+KYkGdR2JHkO5iSOe7YkmU4GJLjuhiTY3LYk6dSGJTkcViVZWlYliR72JbnUtiXp1JYmCdTGJjnUpiaJ1NYm6Vr2JxiLVidpV9YnmU4WJ8nU5ifp1RYn+Ps2KAi1pigp1PYoOdVmKEj7RiiZ1QYoqUY2KRl31ikp1SYpOdU2KUnVdilZOKYpadVGKXjVJimJDcYpudZWKclLJinpHwYquU4mKsnatisZX4YrWS72K5lpViu51aYryJn2K9kopiwp1jYsWSU2LGnV1ix51kYsidX2LJnWZiyp1iYsydYWLNlI9iz51bYtCJ+2LRnVli0ouRYtOR8WLUnVVi151YYtiNU2LZkNli24+1YtydYGLdlHFi4IuSYuGKZ2Lsiodi7ZBAYu6daGLvnW1i8Z1pYvOMnWL1nW5i9o5BYveNiWL+j0Vi\/51cYwGOnWMCnWtjB453YwidbGMJiMJjDJ1nYxGSp2MZi5NjH4uyYyedamMoiKVjK43BYy+QVWM6kvBjPZTSYz6dcGM\/kX1jSZGoY0yOSmNNnXFjT51zY1Cdb2NVld9jV5K7Y1yRe2NnlfljaI7MY2mdgGNrnX5jbpCYY3KMnmN2nXhjd4+3Y3qT5mN7lFBjgJ12Y4ORfGOIjvZjiZ17Y4yPtmOOnXVjj516Y5KUcmOWnXRjmIxAY5uKfGOfnXxjoJepY6GNzGOiklRjo515Y6WQ2mOnjVRjqJCEY6mJhmOqkVtjq513Y6yLZGOyjGZjtJLNY7WdfWO7kX5jvp2BY8Cdg2PDkbVjxJ2JY8adhGPJnYZjz5VgY9CS8WPSnYdj1pdLY9qXZ2Pbirdj4YisY+OdhWPpnYJj7or2Y\/SJh2P2nYhj+pdoZAadjGQNkblkD52TZBOdjWQWnYpkF52RZBydcmQmnY5kKJ2SZCyUwGQtk4tkNJ2LZDadj2Q6jGdkPo3vZEKQ22ROnZdkWJNFZGedlGRploBkb52VZHadlmR4lsxkepCgZIOMgmSInZ1kko5UZJOdmmSVnZlkmpRRZJ6Ts2Skk1BkpZ2bZKmdnGSrlY9krZRkZK6OQmSwkO9kspZvZLmKaGS7naNkvJ2eZMGXaWTCnaVkxZ2hZMedomTNkYBk0p2gZNSdXmTYnaRk2p2fZOCdqWThnapk4pNGZOOdrGTmjkNk552nZOyLW2Tvna1k8Z2mZPKdsWT0nbBk9p2vZPqdsmT9nbRk\/o\/vZQCds2UFnbdlGJ21ZRydtmUdnZBlI525ZSSduGUqnZhlK526ZSydrmUvjnhlNJ27ZTWdvGU2nb5lN529ZTidv2U5ifxlO41VZT6V+mU\/kK1lRYzMZUidwWVNncRlT5VxZVGLfmVVncNlVp3CZVeUc2VYncVlWYuzZV2dx2VencZlYoq4ZWOOVWVmk9ZlbIxoZXCQlGVynchldJCuZXWTR2V3lX5leJ3JZYKdymWDnctlh5W2ZYibfGWJkMRljJVrZY6N1mWQlONlkZTBZZeTbGWZl79lm53NZZyOzmWfnc5loYi0ZaSL0mWlkMtlp5WAZaudz2WsjmFlrZJmZa+OemWwkFZlt53QZbmV+2W8iZdlvY57ZcGd02XDndFlxJ3UZcWXt2XGndJly5D5Zcyd1WXPkbBl0p3WZdeK+GXZndhl253XZeCd2WXhndpl4or5ZeWT+mXmklVl54uMZeiOfGXpkYFl7I97Ze2IrmXxndtl+omgZfud32YCjVZmA53eZgaNqWYHj7hmCp3dZgyPuWYOlr5mD42oZhOI1WYUkMxmHJ3kZh+Qr2YgiWZmJY90ZieWhmYojfBmLY+6Zi+QpWY0neNmNZ3hZjad4mY8kotmP55FZkGd6GZCjp5mQ41XZkSd5mZJnedmS5BXZk+d5WZSjk5mXZ3qZl6d6WZfne5mYp3vZmSd62ZmikFmZ53sZmid7WZplNNmbpWBZm+MaWZwnfBmdJCwZnaPu2Z6knFmgYvFZoOd8WaEnfVmh4nJZoid8maJnfRmjp3zZpGPi2aWkmdml4jDZpid9madnfdmopKoZqaX72arjmJmrpXpZrSWXGa4nkFmuZ35Zryd\/Ga+nftmwZ34ZsSeQGbHk9xmyZ36ZtaeQmbZj4xm2p5DZtyXambdlJhm4J5EZuaeRmbpnkdm8J5IZvKLyGbziWdm9I1YZvWeSWb3nkpm+I+RZvmRgmb8mdZm\/ZFdZv6RXGb\/kdZnAI3FZwOY8GcIjI5nCZdMZwuV\/GcNlZ5nD55LZxSN8WcVkr1nFp5MZxeYTmcbll1nHZKpZx6eTWcfivpnJp5OZyeeT2colthnKpaiZyuWlmcslntnLY5EZy6eUWcxjulnNJZwZzaeU2c3nlZnOJ5VZzqK92c9i4BnP55SZ0GeVGdGnldnSZCZZ06Xm2dPiMdnUI3eZ1GRumdTjttnVo\/xZ1meWmdck21nXp5YZ1+RqWdgnllnYY\/wZ2KW22djnltnZJ5cZ2WXiGdqnmFnbY1ZZ2+UdGdwnl5ncZOMZ3Kd3GdzneBndYtuZ3eUZmd8nmBnfo+8Z3+UwmeFnmZnh5T4Z4meXWeLnmNnjJ5iZ5CQzWeVlo1nl5fRZ5qWh2ecicpnnY59Z6CYZ2ehnmVnopCVZ6aeZGepnl9nr4zNZ7Oea2e0nmlntonLZ7eeZ2e4nm1nuZ5zZ8GRxmfElb9nxp51Z8qVQWfOnnRnz5SQZ9CWXmfRirln05D1Z9SPX2fYktFn2pdNZ92ecGfenm9n4p5xZ+SebmfnnnZn6Z5sZ+yeamfunnJn755oZ\/GSjGfzlvZn9I7EZ\/WN8mf7jbhn\/paPZ\/+KYGgCksxoA5PIaASJaGgTkPBoFpCyaBeMSWgennhoIY1aaCKKnGgpnnpoKoqUaCuegWgynn1oNJDxaDiKamg5japoPIppaD2NzWhAnntoQYyFaEKMamhDk41oRp55aEiIxGhNnnxoTp5+aFCLy2hRjEtoU4q6aFSLamhZnoJoXI33aF2WkWhfjlZoY56DaGeVT2h0no9odomxaHeehGh+npVof56FaIGXwGiDnoxohZR+aI2elGiPnodok4iyaJSeiWiXjVtom56LaJ2eimifnoZooJ6RaKKPvWimmutop4zmaKiXnGitnohor5LyaLCKQmixjatos56AaLWekGi2ioFouZ6OaLqekmi8k45oxIr8aMaesGjJlsdoyp6XaMuK+2jNnp5o0pZfaNSen2jVnqFo156laNiemWjakklo35OPaOCeqWjhnpxo456maOeeoGjukFho756qaPKQsWj5nqho+oq7aQCYb2kBnpZpBJ6kaQWI1mkInphpC5a4aQyenWkNkEFpDpLFaQ+ek2kSnqNpGZCaaRqerWkbipFpHIyfaSGer2kinpppI56uaSWep2kmnptpKJ6raSqerGkwnr1pNJPMaTaeomk5nrlpPZ67aT+S1mlKl2tpU5WWaVSetmlVkchpWZ68aVqRXmlcnrNpXZ7AaV6ev2lgk+1pYZ6+aWKT6GlqnsJpa561aW2Lxmlunrhpb498aXOUgGl0nrppdYvJaXeesml4nrRpeZ6xaXyYT2l9inlpfp63aYGewWmCilRpio3laY6JfGmRntJplJhQaZWe1WmbkFlpnJ7UaaCe02mnntBprp7EabGe4WmynsNptJ7Wabuezmm+nslpv57GacGex2nDns9px+qgacqezGnLjVxpzJLGac2RhGnOnspp0J7FadOeyGnYl2xp2ZaKad2ezWnentdp557faeie2GnrnuVp7Z7jafKe3mn5nt1p+5LOaf2RhWn\/nttqAp7ZagWe4GoKnuZqC5Tzagye7GoSnudqE57qahSe5GoXkpRqGZVXahue2moenuJqH4++aiGWzWoinvZqI57paimMoGoqiaFqK4p+ai6e0Wo1j79qNp7uajie9Wo5jvdqOoqSaj2STWpEnutqR57wakie9GpLi7RqWItralme8mpfi0BqYZPJamKe8WpmnvNqcp7tanie72p\/ioBqgJJoaoSe+mqNnvhqjoznapCe92qXn0BqnJ53aqCe+Wqinvtqo578aqqfS2qsn0dqrp6NarOfRmq4n0Vqu59CasGe6GrCn0Rqw59DatGfSWrTmEVq2p9MatuL+Wren0hq359KauiUpWrqn01q+p9RavufTmsEl5NrBZ9Pawqe3GsSn1JrFp9Tax2JVGsfn1VrIIyHayGOn2sji9NrJ4miazKXfms3n1drOJ9WazmfWWs6i1xrPYvUaz6KvGtDn1xrR59ba0mfXWtMicxrTpJWa1CfXmtTir1rVJ9ga1mfX2tbn2FrX59ia2GfY2tijn5rY5Cza2SNn2tmlZBraZXga2qYY2tvjpVrc43Oa3SX8Gt4n2RreZ9la3uOgGt\/n2ZrgJ9na4OfaWuEn2hrhpZ3a4mPfWuKjupri45ja42famuVn2xrlpBCa5ifa2uen21rpJ9ua6qfb2urn3Brr59xa7Gfc2uyn3Jrs590a7SJo2u1kmlrt591a7qORWu7imtrvJ92a7+TYWvAmsprxYtCa8afd2vLn3hrzZXqa86WiGvSk8Vr0595a9SU5GvYlPlr25bRa9+femvrn3xr7J97a++ffmvzn31sCJ+BbA+OgWwRlq9sE5+CbBSfg2wXi0NsG5+EbCOfhmwkn4VsNJCFbDeVWGw4iWlsPpTDbECS82xBj2BsQouBbE6UxGxQjqxsVZ+IbFeKvmxaiZhsXZPwbF6fh2xfjV1sYJJybGKfiWxon5Fsap+KbHCRv2xyi4Jsc5+SbHqMiGx9i0Rsfp+QbIGfjmyCn4tsg5eAbIiSvmyMk9dsjZ+MbJCflGySn5Nsk4xCbJaJq2yZjblsmp+NbJufj2yhlnZsopHybKuWl2yun5xssZ+dbLOJzWy4laZsuZb7bLqfn2y7jqFsvI\/AbL2fmGy+n55sv4mIbMGLtWzEn5VsxZ+abMmQ8mzKlJFszJTlbNOfl2zVlkBs15+ZbNmfomzbn6Bs3Z+bbOGWQWzilGds44uDbOWTRGzoko1s6p+jbO+foWzwkdds8Z+WbPOJam0Ll21tDJ+ubRKfrW0XkPRtGZ+qbRuXjG0ek7RtH5+kbSWSw20piWttKo1ebSufp20yj0ZtM5+sbTWfq202n6ZtOJ+pbTuKiG09n6htPpRobUGXrG1Ej\/JtRZDzbVmftG1an7JtXJVsbWOfr21kn7FtZolZbWmNX21qmFFtbIpcbW6Vgm10l4Ftd4pDbXiQWm15n7NthZ+4bYiPwW2Ml09tjp+1bZOfsG2Vn7ZtmZfcbZuTk22ck8Btr4pVbbKJdG21n7xtuJ+\/bbyXwW3Al4RtxZ\/GbcafwG3Hn71ty5fSbcyfw23Rj2lt0p\/FbdWfym3Yk5Ft2Z\/Ibd6fwm3hkldt5J\/Jbeafvm3on8Rt6p\/LbeuI+m3sn8Ft7p\/MbfGQW23zj35t9ZWjbfeNrG35n7lt+p\/HbfuTWW4FkLRuB4qJbgiNz24Jj8JuCp+7bguPYW4TjGtuFZ+6bhmf0G4aj41uG4y4bh2f324fn9luIIuUbiGTbm4jn9RuJJ\/dbiWIrW4miVFuKYm3biuf1m4skapuLZ\/Nbi6fz24vjWBuOJ\/gbjqf224+n9NuQ5\/abkqWqW5Nn9huTp\/cblaMzm5Yj8NuW5JYbl+f0m5nl05ua5\/Vbm6fzm5vk5Jucp\/Rbnaf125+mHBuf468boCWnm6Cn+FujJSsbo+f7W6QjLlulo+Abpif426cl61unY1hbp+f8G6iiOxupZ\/ubqqf4m6vn+husp\/qbraXbm63n+VuupNNbr2f527Cn+9uxJ\/pbsWWxW7Jn+Ruy46gbsyf\/G7Riopu05\/mbtSf627Vn+xu3ZHqbt6R2G7sn\/Ru75\/6bvKf+G70k0hu9+BCbvif9W7+n\/Zu\/5\/ebwGLmW8ClVlvBo69bwmNl28PmFJvEZ\/ybxPgQW8UiYlvFZGGbyCUmW8iir9vI5f4byuWn28sktBvMZ\/5bzKf+284kVFvPuBAbz+f929Bn\/FvRYrBb1SMiW9Y4E5vW+BJb1yQ9m9fioNvZI+Bb2bgUm9t4EtvbpKqb2\/gSG9wktdvdOBrb3jgRW964ERvfOBNb4DgR2+B4EZvguBMb4SQn2+G4ENvjuBPb5HgUG+XisBvoeBVb6PgVG+k4FZvquBZb7GTYm+z4FNvueBXb8CMg2\/BkfdvwuBRb8OUWm\/G4Fhv1OBdb9XgW2\/Y4F5v2+Bhb9\/gWm\/gjYpv4ZRHb+Sft2\/rl5Rv7OBcb+7gYG\/vkfNv8eBfb\/PgSm\/26Ilv+uBkb\/7gaHAB4GZwCeBicAvgY3AP4GdwEeBlcBWVbXAY4G1wGuBqcBvgaXAd4GxwHpPScB\/gbnAmkpVwJ5HrcCyQo3Aw4G9wMuBxcD7gcHBMn\/NwUeBycFiT5XBj4HNwa4nOcG+TlHBwikRweIuEcHyO3HB9jdBwiZhGcIqQhnCOiYpwkuB1cJngdHCs4HhwrZJZcK7ge3Cv4HZws+B6cLjgeXC5k19wuojXcMiX83DL4H1wz4lHcNnggHDd4H5w3+B8cPHgd3D5lkJw\/eCCcQnggXEUiYtxGeCEcRqVsHEc4INxIZazcSaPxXE2kVJxPI\/EcUmX+XFM4IpxTpD3cVXghnFW4ItxWYmMcWLgiXFklIFxZeCFcWbgiHFnj8ZxaZTPcWzgjHFujs9xfZD4cYTgj3GI4IdxioxGcY\/gjXGUl29xleCQcZnqpHGfj25xqOCRcazgknGxlE1xueCUcb7glXHDlFJxyJOVccngl3HO4Jlx0JfTcdLglnHU4Jhx1YmNcdfgk3Hfmnpx4OCaceWRh3Hmjldx5+Cccezgm3HtkENx7pnXcfXgnXH54J9x++COcfzgnnH\/4KByBpSacg3goXIQ4KJyG+CjcijgpHIqktxyLOCmci3gpXIw4KdyMuCocjWO3XI2lYNyOpbqcjvgqXI84KpyPZF1cj6OonI\/4KtyQOCsckbgrXJHldBySJTFckvgrnJMlHZyUpKrcljgr3JZieVyW4uNcl2WxHJflrRyYYmycmKYU3JnlnFyaZWocnKQtXJ04LByeZPBcn2MoXJ+4LFygI3ScoHgs3KC4LJyh+C0cpLgtXKW4LZyoItdcqLgt3Kn4LhyrIyicq+UxnKy4Lpyto\/zcrnguXLCi7Zyw+C7csTgvXLG4LxyzuC+ctCMz3LS4L9y14vnctmRX3LbjZ1y4ODBcuHgwnLi4MBy6Y7rcuyTxnLti7dy9+DEcviSS3L54MNy\/JhUcv2UgnMK4MdzFuDJcxfgxnMbltJzHODIcx3gynMfl8JzJeDOcyngzXMqkpZzK5RMcy6Mo3Mv4MxzNODLczaXUHM3l1FzPuDPcz+JjnNEjZZzRY6Cc07g0HNP4NFzV+DTc2OPYnNo4NVzauDUc3Dg1nNyimxzdeDYc3jg13N64Npze+DZc4SMunOHl6ZziYvKc4uJpHOWi+hzqYrfc7KX5nOz4Nxzu+Dec8Dg33PCic9zyODbc8qOWHPNkr9zzuDdc97g4nPgjuxz5eDgc+qMXXPtlMdz7uDhc\/Hg\/HP44Odz\/oy7dAOLhXQF4OR0BpeddAmXrnQikfR0JeDmdDLg6HQzl9R0NIvVdDWU+nQ2lGl0OuDpdD\/g63RB4O50VeDqdFng7XRajOh0W4lsdFzg73RekJB0X+DsdGCX2nRj4PJ0ZOqidGng8HRq4PN0b+DldHDg8XRzjbp0duD0dH7g9XSDl550i+D2dJ7g93Si4ON0p+D4dLCKwnS9jqN0yuD5dM\/g+nTU4Pt03IladODhQHTilVp04+FBdOaKonTn4UJ06eFDdO7hRHTw4UZ08eFHdPLhRXT2lXJ09+FJdPjhSHUD4Ut1BOFKdQXhTHUM4U11DeFPdQ7hTnURjZl1E+FRdRXhUHUYisN1GpBydRyTW3Ue4VJ1H5C2dSOOWXUliZl1JuFTdSiXcHUrleF1LOFUdTCTY3Uxl1J1Mo1idTOQXHU3kmp1OJmydTqSrHU7ieZ1POFVdUThVnVG4Vt1SeFZdUrhWHVLncB1TIpFdU3hV3VPiNh1UZSodVSUyHVZl691WuFcdVvhWnVcknt1XZCkdWCUqXVilUx1ZOFedWWXqnVmjGx1Z+FfdWnhXXVqlNR1a+FgdW3hYXVwiNl1c4\/0dXThZnV24WN1d5PrdXjhYnV\/i0V1guFpdYbhZHWH4WV1ieFodYrhZ3WLlUR1jpFhdY+RYHWRi151lOFqdZrha3Wd4Wx1o+FudaXhbXWriXV1seF2dbKU5nWz4XB1teFydbjhdHW5kF11vOF1db3hc3W+jr51wuFvdcPhcXXFlWF1x4\/HdcrheHXN4Xd10uF5ddSOpHXVja112JOXddnhenXbksl13uF8deKXn3Xj4Xt16ZGJdfDhgnXy4YR18+GFdfSSc3X64YN1\/OGAdf7hfXX\/4X52AeGBdgnhiHYL4YZ2DeGHdh\/hiXYg4Yt2IeGMdiLhjXYk4Y52J+GKdjDhkHY04Y92O+GRdkKXw3ZG4ZR2R+GSdkjhk3ZMiuB2Upb8dlaVyHZY4ZZ2XOGVdmHhl3Zi4Zh2Z+GcdmjhmXZp4Zp2auGbdmzhnXZw4Z52cuGfdnbhoHZ44aF2epStdnuTb3Z84aJ2fZSSdn6VU3aA4aN2g+GkdoSTSXaGikZ2h41jdojhpXaL4aZ2juGndpCOSHaT4al2luGodpnhqnaa4at2rpTndrDhrHa04a12t+qJdrjhrna54a92uuGwdr+OTXbC4bF2w5R1dsaWfnbIiW12yol2ds3hsnbS4bR21uGzdteTkHbbkLd23J9Ydt7htXbflr924eG2duOKxHbklNV25eG3dufhuHbq4bl27pbadvKW03b0krx2+JGKdvvhu3b+j4J3AY\/IdwThvncH4b13COG8dwmU+3cLisV3DIyndxvhxHce4cF3H5BedyCWsHck4cB3JeHCdybhw3cp4b93N+HFdzjhxnc6kq13PIrhd0CShXdH4cd3WuHId1vhy3dhkId3Y5PCd2XhzHdmlnJ3aOHJd2vhynd54c93fuHOd3\/hzXeL4dF3juHQd5Hh0nee4dR3oOHTd6WVy3esj3V3rZfEd7Dh1Xezk7V3tuHWd7nh13e74dt3vOHZd73h2ne\/4dh3x+Hcd83h3XfX4d532uHfd9uWtXfc4eB34pbud+Ph4Xflkm1355SKd+mL6Xftklp37uHid++LuHfzkM53\/OHjeAKNu3gM4eR4EuHleBSMpHgVjdN4IOHneCWTdXgmjdR4J4tteDKWQ3g0lGp4OpN2eD+Ne3hF4el4XY\/JeGuXsHhsjWR4b4yleHKUoXh04et4fOHteIGM6XiG4ex4h5L0eIzh73iNilZ4juHqeJGU6HiTiU94lY3qeJeYcXia4e54o+HweKeVyXipkNd4quHyeK\/h83i14fF4uopteLzh+Xi+4fh4wY6leMXh+njG4fV4yuH7eMvh9njQlNZ40eH0eNTh93ja4kF45+JAeOiWgXjs4fx474jpePTiQ3j94kJ5AY\/KeQfiRHkOkWJ5EeJGeRLiRXkZ4kd5JuHmeSrh6Hkr4kl5LOJIeTqOpnk8l+d5Po7QeUDiSnlBjFZ5R4tfeUiLRnlJjoN5UJdTeVPiUHlV4k95VpFjeVfiTHla4k55XY9qeV6QX3lf4k15YOJLeWKUSXllj8t5aJVbeW2N1Xl3k5h5euJReX\/iUnmA4mh5gYvWeYSYXHmFkVR5iuJTeY2J0HmOkvV5j5WfeZ3iVHmmi5p5p+JVeariV3mu4lh5sJRIebPiWXm54lp5uuJbeb2L13m+idF5v5PDecCPR3nBjoR5yeJcecuPSHnRich50pViedXiXXnYlOl535FkeeHiYHnj4mF55JSJeeaQYHnn4l556ZKBeeziX3nwj8x5+4jaegCLSHoI4mJ6C5L2eg3iY3oOkMV6FJareheVQnoY4mR6GeJlehqSdHocl8V6H+JneiDiZnouju16MeJpejKI7no34mx6O+JqejyJ0no9jG16PuJrej+NZXpAjZJ6QpXkekPibXpGlnN6SeJvek2Qz3pOiW56T4m4elCIqnpX4m56YeJwemLicXpjj\/V6aeJyemuKbnpw4nR6dIyKenaLhnp54nV6eovzen3idnp\/kPp6gZPLeoOQ3nqEjfN6iOJ3epKSgnqTkYt6leJ5epbie3qX4nh6mOJ6ep+MQXqp4nx6qoxFeq6Lh3qvl3F6sOJ+erbigHq6iU16v+KDesOKlnrE4oJ6xeKBesfihXrI4n16yuKGesuXp3rN4od6z+KIetKa8nrT4op61eKJetnii3ra4ox63Jezet3ijXrf6O164I\/NeuHijnri4o964492euWTtnrm4pB66pJHeu3ikXrvklt68OKSevaLo3r4mV56+ZJ8evqOsXr\/isZ7AuKTewTioHsG4pZ7CIuIewrilXsL4qJ7D+KUexGPznsY4ph7GeKZexuTSnse4pp7IIp9eyWQeXsmlYR7KOKceyyR5nsz4pd7NeKbezbinXs5jfl7ReKke0aVTXtIlKR7SZOZe0uL2HtM4qN7TeKhe0+Us3tQ4p57UZJ9e1KTm3tUk5p7Vo30e13itntl4qZ7Z+Koe2ziq3tu4qx7cOKpe3Hiqnt04qd7deKle3rin3uGlc17h4nTe4vis3uN4rB7j+K1e5LitHuUlJN7lZale5eOWnuY4q57meK3e5risnuc4rF7neKte5\/ir3uhisd7qpJce62Q+3uxlKB7tOK8e7iUonvAkN97weK5e8SUzXvG4r17x5XRe8mSenvL4rh7zOK6e8\/iu3vd4r574I7Ce+STxHvl4sN75uLCe+niv3vtmFV78+LIe\/bizHv34sl8AOLFfAfixnwN4st8EeLAfBKZ03wT4sd8FOLBfBfiynwf4tB8IYrIfCPizXwn4s58KuLPfCvi0nw34tF8OJT0fD3i03w+l\/p8P5XrfEDi2HxD4tV8TOLUfE2Q0HxP4td8UOLZfFTi1nxW4t18WOLafF\/i23xg4sR8ZOLcfGXi3nxs4t98c5XEfHXi4Hx+luB8gYvMfIKMSHyD4uF8iZWyfIuQiHyNlq58kOLifJKXsXyVlJR8l5FlfJiUU3ybj2x8n4i+fKHi53yi4uV8pOLjfKWKn3ynj898qOLofKvi5nyt4uR8ruLsfLHi63yy4up8s+LpfLni7Xy94u58vpC4fMDi73zC4vF8xeLwfMqM0HzOkVd80uLzfNaTnHzY4vJ83OL0fN6Vs3zfkYx84I1mfOLi9Xznl8Z87+L3fPLi+Hz04vl89uL6fPiOhXz64vt8+4xufP6Lin0Ai0l9AuNAfQSW8X0FjWd9BuL8fQrjQ30LluR9DZRbfRCVUn0Uj4N9FeNCfReO0X0YjWh9GY6GfRqLiX0blbR9HONBfSCRZn0hlmF9Io31fSuOh30sktt9LuNGfS+X3X0wjdd9MuNHfTOQYX0140l9OY\/QfTqNrn0\/40h9Qo9JfUOMvH1EkWd9ReNEfUbjSn1L40V9TIxvfU7jTX1P41F9UIyLfVbjTH1b41V9Xo1pfWGXjX1iiLp9Y+NSfWaLi31o4099buNQfXGTnX1y4059c+NLfXWKR312kOJ9eYymfX3jV32J41R9j+NWfZPjU32ZjHB9mpGxfZvjWH2ckY59n+NlfaLjYX2j41t9q+NffayO+H2tiNt9ruNafa\/jYn2w42Z9sY1qfbKW1H20ktR9teNcfbjjZH2641l9u5Jdfb3jXn2+iLt9v5bIfcfjXX3Ki9l9y5Tqfc+RjX3Rl8590o+PfdXjjn3Y42d92pD8fdzjY33d42h93uNqfeCS933h42195ONpfeiV0n3pisl97JbJfe+I3H3y42x99Jf7ffvja34BiY9+BJPqfgXjbn4J43V+CuNvfgvjdn4S43J+G5Sbfh6OyH4f43R+IeNxfiLjd34j43B+Jo9jfiuWRH4uj2t+MeNzfjLjgH4143t+N+N+fjnjfH4644F+O+N6fj3jYH4+kNF+QZTJfkPjfX5G43h+SpFAfkuMcX5Nj0p+VJBEflWRVX5W44R+WeOGflrjh35d44N+XuOFfmbjeX5n44J+aeOKfmrjiX5tlpp+cIxKfnnjiH5744x+fOOLfn3jj35\/45F+go5bfoPjjX6I45J+ieOTfozjlH6O45p+j5NafpDjln6S45V+k+OXfpTjmH6W45l+m+ObfpzjnH82isp\/OOOdfzrjnn9F459\/TOOgf03joX9O46J\/UOOjf1HjpH9U46Z\/VeOlf1jjp39f46h\/YOOpf2fjrH9o46p\/aeOrf2qN339rjHJ\/bpJ1f3CUsX9yj5B\/dZRsf3eU6394461\/eZzrf4Ljrn+D47B\/hZeFf4bjr3+H47J\/iOOxf4qXcn+M47N\/jpT8f5TjtH+a47d\/neO2f57jtX+j47h\/pIxRf6iRQX+pi2B\/ruO8f6\/juX+y47p\/tuO9f7jjvn+547t\/vYlIf8GJpX\/F48B\/xuPBf8rjwn\/Ml4J\/0o9Lf9TjxH\/V48N\/4JCJf+HjxX\/m48Z\/6ePHf+uK43\/wist\/8+PIf\/njyX\/7lnx\/\/JeDgACXc4ABmFaAA41sgATjzIAFjtKABuPLgAvjzYAMjqeAEJHPgBLjzoAVjWuAF5bVgBjjz4AZ49CAHOPRgCHj0oAo49OAM46ogDaW64A749WAPZJegD\/j1IBG49eASuPWgFLj2IBWkLmAWOPZgFrj2oBelbeAX+PbgGGRj4Bi49yAaOPdgG+X\/IBw4+CAcuPfgHPj3oB0kq6AduPhgHeQRYB54+KAfePjgH6YV4B\/4+SAhOPlgIXj54CG4+aAh5SjgImT94CLmF2AjJSngJPj6YCWj9GAmJVJgJrj6oCb4+iAnYrMgKGM0oCijoiApZTsgKmMqICqlmKArOPtgK3j64CvjW2AsY1ugLKI54C0jeaAupR4gMOI3YDE4\/KAxpJfgMyUd4DOkdmA1uP0gNnj8IDa4\/OA2+PugN3j8YDelkWA4YzTgOSI+4Dl4++A7+P2gPHj94D0k7eA+Iu5gPzkRYD9lFyBAo6JgQWLuoEGkMaBB5hlgQiWrIEJ4\/WBCpDSgRqLcoEb4\/iBI+P6gSnj+YEv4\/uBMZJFgTOUXYE5kq+BPuRCgUbkQYFL4\/yBTpB0gVCVhYFR5ESBU+RDgVSNb4FVmHKBX+RUgWXkSIFm5EmBa47ugW7kR4FwjZiBceRGgXTkSoF4krCBeZWggXqRQoF\/kdqBgOROgYLkT4GD5EuBiORMgYrkTYGPjXCBk+RVgZXkUYGalYaBnJaMgZ2VR4Gg5FCBo+RTgaTkUoGolmOBqeRWgbDkV4GzkVaBteRYgbjkWoG65F6BveRbgb7kWYG\/lF6BwORcgcLkXYHGibCByORkgcnkX4HN5GCB0eRhgdORn4HY5GOB2eRigdrkZYHf5GaB4ORngeOQYoHlieeB5+RogeiX1YHqjqmB7Y9MgfOOioH0knaB+uRpgfvkaoH8iVCB\/uRrggHkbIIC5G2CBeRuggfkb4IIi7uCCZ2oggrkcIIMkOOCDeRxgg6OyYIQ5HKCEpiughbkc4IXldyCGIraghuRQ4Icj3eCHpWRgh+PTYIp5HSCKo1xgivkdYIslMqCLuSEgjPkd4I1kceCNpSVgjeMvYI45HaCOZFEgkDkeIJHkviCWOR6glnkeYJa5HyCXeR7gl\/kfYJi5ICCZOR+gmaKzYJo5IGCauSCgmvkg4Juja+Cb5fHgnHkhYJykEaCdomQgnfkhoJ45IeCfuSIgouI8IKN5ImCkuSKgpmVh4KdjsWCn+SMgqWKSIKmiLCCq+SLgqzkjoKtlG2Cr5BjgrGJ1IKzlkaCuIx8grmL2oK75I2CvYnogsWKoYLRiZGC0uSSgtOX6ILUkduC15VjgtnknoLbidWC3OScgt7kmoLf5JGC4eSPguPkkILljuGC5ovqgueSl4Lrk8+C8YlwgvPklIL05JOC+eSZgvrklYL75JiDApbOgwPkl4MEidaDBYqdgwbkm4MJ5J2DDoxzgxbkoYMX5KqDGOSrgxyIqYMj5LKDKIjvgyvkqYMv5KiDMeSjgzLkooM05KCDNeSfgzaSg4M4kfmDOeSlg0DkpINF5KeDSZGQg0qMdINPiWCDUOSmg1KNcoNYkZGDc+S4g3XkuYN3ideDe4msg3zktoOF5KyDh+S0g4nku4OK5LWDjuSzg5PkloOW5LGDmuStg56KzoOf5K+DoOS6g6LksIOo5LyDquSug6uUnIOxl4mDteS3g73kzYPB5MWDxZCbg8qLZYPMi9uDzuTAg9OJ2YPWj9KD2OTDg9yN2IPfk3CD4OTIg+mV7IPr5L+D74nYg\/CM1IPxlUiD8uTJg\/TkvYP35MaD++TQg\/3kwYQD5MKEBJO4hAfkx4QL5MSEDJZHhA3kyoQOiN6EE+S+hCDkzIQi5MuEKZSLhCrk0oQs5N2EMYqehDXk4IQ45M6EPOTThD2XjoRG5NyESZd0hE6XqIRXkpiEW4qLhGGVkoRi5OKEY5OfhGaIr4Rp5NuEa+TXhGyRkoRt5NGEbuTZhG\/k3oRxlEuEdYiohHfk1oR55N+EepWYhILk2oSE5NWEi4\/ThJCPToSUjqqEmZbWhJyVZoSf5OWEoeTuhK3k2ISyipeEuI\/2hLnk44S75OiEvJGThL\/k5ITB5OuExJJ+hMbk7ITJl3WEyuThhMuKV4TN5OeE0OTqhNGWqoTW5O2E2eTmhNrk6YTslkiE7phAhPTk8YT85PiE\/+TwhQCOwYUG5M+FEZXMhROWoIUU5PeFFeT2hRfk8oUY5POFGolVhR\/k9YUh5O+FJpLThSzk9IUtiPyFNZGghT2VwYVA5PmFQeVAhUOU14VI5PyFSY\/UhUqOx4VL5UKFTou8hVXlQ4VXlZmFWOT7hVrk1IVj5PqFaJhuhWmToIVqlZOFbeVKhXflUIV+5VGFgOVEhYSUloWH5U6FiOVGhYrlSIWQ5VKFkeVHhZTlS4WXiZKFmZPjhZvlTIWc5U+FpOVFhaaRRYWo5UmFqY5GhaqQZIWrjE+FrJbyha6W94Wvj5KFueVWhbrlVIXBmG2FyeVThc2XlYXP5VWF0OVXhdXlWIXc5VuF3eVZheSToYXl5VqF6ZTLherlTYX3j5OF+eVchfrlYYX7kZSF\/uVghgLlQYYG5WKGB5FohgrlXYYL5V+GE+VehhafUIYXn0GGGuVkhiLlY4Ytl5aGL+G6hjDlZYY\/5WaGTeVnhk6M1YZQi3OGVOVphlWZfIZai5WGXJe4hl6L8YZf5WqGZ+VrhmuSjoZx5WyGeZP4hnuIuIaKieGGi+VxhozlcoaT5W2GlY5chqPlboaklGGGqeVvhqrlcIar5XqGr+V0hrDld4a25XOGxOV1hsbldobHjtaGyeV4hsuSYIbNjHWGzophhtTle4bZil6G2+WBht7lfIbf5YCG5JS4hunlfYbs5X6G7ZVnhu6U2Ibv5YKG+JH7hvnljIb75YiG\/onphwDlhocClkmHA+WHhwblhIcI5YWHCeWKhwrljYcN5YuHEeWJhxLlg4cYkneHGuWUhxyWqIcl5ZKHKeWThzTljoc35ZCHO+WRhz\/lj4dJkOSHS5hYh0zlmIdO5ZmHU+Wfh1WQSYdX5ZuHWeWeh1\/llodg5ZWHY+Wgh2aJ2odo5ZyHauWhh27lnYd05ZqHdpKxh3jll4d\/lIiHguWlh42XWoef5aSHouWjh6vlrIev5aaHs+Wuh7qXhoe75bGHveWoh8DlqYfE5a2HxuWwh8flr4fL5aeH0OWqh9Llu4fg5bSH7+Wyh\/Lls4f25biH9+W5h\/mKSYf7i2GH\/uW3iAXloogN5baIDuW6iA\/ltYgR5byIFeW+iBblvYgh5cCIIuW\/iCPleYgn5cSIMeXBiDblwog55cOIO+XFiECMjIhC5ceIROXGiEaPT4hMjXOITZ+liFLlyIhTj3CIV4pYiFnlyYhbiXGIXY\/ViF7lyohhjXSIYuXLiGOI34holVyIa+XMiHCQiohy5dOIdeXQiHeSj4h95dGIfuXOiH+L3IiB5c2IguXUiIiMVYiLkdyIjeXaiJLl1oiWkbOIl+XViJnl2Iie5c+IouXZiKTl24irlO2IruXXiLDl3Iix5d6ItIzRiLXl0oi3iL+Iv+XdiMGN2YjCl\/SIw+XfiMTl4IjFkZWIz5egiNTl4YjVl1SI2OXiiNnl44jcleKI3eXkiN+Nvojhl6GI6OXpiPLl6ojzj9aI9OXoiPiXh4j55eWI\/OXniP2Qu4j+kJ6JAuXmiQTl64kHlaGJCuXtiQzl7IkQioyJEpZKiRPl7okd5fqJHuXwiSXl8Ykq5fKJK+XziTbl94k45fiJO+X2iUHl9IlD5e+JROX1iUzl+YlN6LWJVommiV7l\/Ilfi92JYOX7iWTmQYlm5kCJauZDiW3mQolv5kSJco9QiXTmRYl35kaJfuZHiX+QvImBl3aJg+ZIiYaVoomHlGWJiOZJiYrmSomLjKmJj4tLiZPmS4mWjouJl5RgiZjmTImaim+JoeZNiabmT4mnl5eJqeZOiaqQZYms5lCJr+ZRibLmUomzis+JuuZTib3mVIm\/5lWJwOZWidKKcIna5leJ3OZYid3mWYnjifCJ5pBHiefmWon05luJ+OZcigCMvooCkvmKA+ZdigiMdooKkHWKDOZgig6ToooQ5l+KE4xQihbmXooXkfWKGItMihvmYYod5mKKH4\/XiiOMjYol5mOKKpZLii2Q3Yoxi5aKM5bzijSRaYo25mSKOpBmijuSkIo8j9iKQeZlikbmaIpI5mmKUI28ilGRwIpS5meKVI\/ZilWVXYpb5maKXo6MimCJcopi5m2KY4x3imaOjoppjo2Ka5hsimzmbIpt5muKbpFGinCLbIpxmGKKcopZinOP2op85mqKguZvioTmcIqF5m6Kh4zWiomXX4qMjo+KjZRGipHmc4qTkL6KlZJhipiXVYqa5naKnozqiqCQvYqh5nKKo+Z3iqSM64ql5nSKpuZ1iqjmcYqskOCKrZPHirCSToqyiduKuZTuiryLYoq\/krKKwuZ6isTmeIrHkmuKy5C\/isyK0IrN5nmKz5B6itKXyIrWmF+K2uZ7itvmh4rckrOK3uaGiuDmg4rh5ouK4uaEiuTmgIrmkvqK5+Z+iuvmfIrtl0CK7o6QivHmgYrz5n2K9+aFiviPlIr6jL+K\/pH4iwCWZIsBiXmLAojgiwSTo4sH5omLDOaIiw6T5IsQ5o2LFOaCixbmjIsX5o6LGYyqixrmiosbjXWLHY7TiyDmj4shl3eLJuaSiyjmlYsr5pOLLJVUizPmkIs5i96LPuaUi0HmlotJ5pqLTOaXi07mmYtP5piLVuabi1iOr4ta5p2LW+aci1yViItf5p+LZox4i2vmnots5qCLb+ahi3CLY4tx47+Lco\/3i3Tmoot3jOyLfeaji4DmpIuDjl2Lip3Mi4zmpYuO5qaLkI9Ri5Lmp4uT5qiLluapi5nmqoua5quMN5JKjDrmrIw\/5q6MQeatjEaTpIxI5q+MSpZMjEzmsIxO5rGMUOayjFXms4xak9iMYY\/bjGLmtIxqjYuMa5isjGzmtYx45raMeZVejHrmt4x85r+Mgua4jIXmuoyJ5rmMiua7jIyWZYyN5ryMjua9jJTmvoyY5sCMnYpMjJ6S5YyglYmMoY3gjKKNdoynlW6MqIndjKmUzIyq5sOMq4rRjKyQ04yt5sKMrubHjK+SmYywluGMsubFjLPmxoy0i02MtubIjLeUg4y4kd2Mu5TvjLyTXIy95sSMv5ZmjMCJ6ozB5sqMwphHjMOSwIzEmGSMx46RjMjmyYzKka+MzebajM6RR4zRk\/aM05VvjNrmzYzbjl6M3I6SjN6P3IzglIWM4oyrjOPmzIzk5suM5pWKjOqOv4ztk3GM+ubPjPvm0Iz8jXeM\/ebOjQTm0Y0F5tKNB+bUjQiRoY0K5tONC4rkjQ3m1o0P5tWNEObXjRPm2Y0U5tuNFubcjWSQ1I1mjs2NZ+bdjWuKcY1t5t6NcJGWjXHm341z5uCNdJWLjXeLTo2B5uGNhZK0jYqJeo2Z5uKNo47vjaiQlo2zkauNuubljb7m5I3C5uONy+brjczm6Y3P5uaN1ubojdrm543b5uqN3YuXjd\/m7o3hkNWN4+bvjeiM143q5uyN6+btje+YSI3zkrWN9ZFIjfzm8I3\/5vOOCObxjgnm8o4Kl3iOD5OljhDm9o4d5vSOHub1jh\/m944q50iOMOb6jjTm+4415vmOQub4jkSS+45H50COSOdEjknnQY5K5vyOTOdCjlDnQ45V50qOWedFjl+Q1o5g50eOY+dJjmTnRo5y50yOdI9SjnbnS458502OgedOjoTnUY6F51COh+dPjornU46L51KOjZb0jpHnVY6T51SOlOdWjpnnV46h51mOqudYjquQZ46s51qOr4vrjrDnW46x512OvudejsXnX47G51yOyOdgjsqO1I7L52GOzItPjs2MUo7SjKyO2+dijt+T7o7ik12O4+djjuvnZo74jrKO++dljvznZI79jHmO\/udnjwOKco8F52mPCY3ajwrnaI8M53GPEudrjxPnbY8UleOPFedqjxnnbI8b53CPHOdujx2LUI8f52+PJudyjymUeY8ql9aPL49TjzPnc484l0GPOed1jzvndI8+53iPP5dgj0Lnd49Eio2PRed2j0bne49J53qPTOd5j02TUY9O53yPV+d9j1znfo9fjYyPYYxEj2LngI9j54GPZOeCj5uQaI+c54OPno6rj5\/nhI+j54WPp5mfj6iZno+t54aPruOQj6\/nh4+wkkOPsZBKj7KUX4+354iPupXTj7uS0o+8jZ6Pv5JIj8KJSY\/ElpiPxZB2j86MfY\/Ri9+P1JXUj9rniY\/i54uP5eeKj+aJ3o\/pk\/SP6ueMj+uUl4\/tk1KP7+eNj\/CPcY\/054+P95bAj\/jnno\/555GP+ueSj\/2Sx5AAkd6QAZGXkAOTppAF55CQBot0kAvnmZAN55aQDuejkA+Tp5AQkoCQEeeTkBOS\/JAUk3KQFeeUkBbnmJAXkICQGZSHkBqSypAdkMCQHueXkB+RrJAgkaKQIeeVkCKIp5AjmEGQJ+eakC6R35Axj1SQMpBpkDXnnJA255uQOIjtkDnnnZA8lU6QPuelkEGT2ZBCkIuQRZJ4kEeL9pBJ56SQSpdWkEuJXpBNldWQTonfkE\/nn5BQ56CQUeehkFLnopBTk7mQVJJCkFWI4ZBW56aQWOenkFnqoZBckbuQXueokGCJk5BhkWuQY4ytkGWXeZBo56mQaZNLkG2RmJBujtWQb+eqkHLnrZB1j4WQduerkHeRSpB4kUmQeojikHyXyZB956+Qf5TwkIDnsZCB57CQgueukIPihJCEitKQh+eOkInns5CK57KQj+e0kJGXV5Cjk9+QppZNkKjntZCqjteQr+e2kLHnt5C157iQuJNAkMGI6JDKjXiQzphZkNvnvJDhjFOQ4ue5kOTnupDolZSQ7YpzkPWXWJD3i72Q\/ZNzkQLnvZES576RGee\/kS2TQZEw58GRMufAkUmT0ZFK58KRS49VkUyO3pFNlHqRTpKRkVKO8JFUkIyRVufDkVjnxJFikHyRY+fFkWXnxpFp58eRapePkWyPVpFy58mRc+fIkXWNeZF3jZOReI5fkYLnzJGHj4aRiefLkYvnypGNkeeRkIztkZKQwZGXlK6RnI9YkaLnzZGkj92RqufQkavnzpGv58+RtOfSkbXn0ZG4j\/iRuufTkcDn1JHB59WRxpTOkceN0ZHIjt+RyefWkcvn15HMl6KRzY9kkc6W7JHPl8qR0OfYkdGL4JHW59mR2JNCkdvn3JHcipiR3ZBqkd\/n2pHh59uR45LekeaWdJHni\/qR9efekfbn35H8592R\/+fhkg2T3ZIOimKSEeflkhTn4pIV5+SSHufgkinobpIs5+OSNJfpkjeM2JI\/5+2SRJNTkkXn6JJI5+uSSefpkkvn7pJQ5++SV+fnklrn9JJbiZSSXufmkmKUq5Jk5+qSZo\/eknGNepJ+lmeSgIvikoOPZZKFk7qSkZFMkpPn8pKV5+ySlufxkpiWwZKakraSm+fzkpzn8JKtkUuSt+f3krnn9pLP5\/WS0pZOkuSPm5Lp5\/iS6pXdku2Jc5LylWWS85KSkviLmJL65\/qS\/I18kwaOS5MP5\/mTEJCNkxiQjpMZ6ECTGuhCkyCP+ZMi6EGTI+hDkyaL0ZMolWSTK47gkyyYQpMu5\/yTL432kzKYXpM16EWTOuhEkzvoRpNE5\/uTS5Pnk02TdJNUktWTVuhLk1uSYpNc6EeTYOhIk2yMTJNu6EqTdYyuk3zoSZN+j9+TjIqZk5ToT5OWjb2Tl5GZk5qSyJOnilqTrOhNk63oTpOuksGTsOhMk7noUJPD6FaTyOhZk9DoWJPRk0yT1uhRk9foUpPY6FWT3ehXk+GLvpPk6FqT5ehUk+joU5QD6F6UB+hflBDoYJQT6F2UFOhclBiP4JQZk6iUGuhblCHoZJQr6GKUNehjlDboYZQ4kfaUOuhllEHoZpRE6GiUUYrTlFLoZ5RTlviUWuhzlFvoaZRe6GyUYOhqlGLoa5Rq6G2UcOhvlHXocJR36HGUfOh0lH3ocpR+6HWUf+h3lIHodpV3kreVgJbllYLoeJWDkU2Vh+h5lYmVwpWK6HqVi4pKlY+JW5WRitWVk4rUlZToe5WW6HyVmOh9lZnofpWg6ICVoorWlaOKdJWkjX2VpZS0lafogpWo6IGVreiDlbKJe5W56IaVu+iFlbzohJW+6IeVw+iKlceIxZXK6IiVzOiMlc3oi5XU6I6V1eiNldboj5XYk6yV3OiQleHokZXi6JOV5eiSlhyVjJYh6JSWKOiVliqN45Yu6JaWL+iXljKWaJY7kWqWP4iilkCRyZZC6JiWRJWNlkvom5ZM6JmWTY1+lk\/ompZQjMCWW5XDllzonZZd6J+WXuiell\/ooJZiiUCWY5B3lmSPnJZliteWZuihlmqUhpZs6KOWcIlBlnLoopZzksKWdZfLlnaTqZZ36JyWeJeklnqMr5Z9l3qWhYv3loaXspaIjEeWipHglovkQJaN6KSWjopLlo+Qj5aUinWWleimlpfop5aY6KWWmYyElpuN25acj+GWoIlClqOX15an6KmWqOeslqroqJaw6KyWseiqlrLoq5a06K2WtuiulreX6pa46K+WueiwlruQx5a8lLmWwJCdlsGK5ZbEl1mWxYnrlsaPV5bHjNmWyeizlsvospbMjpOWzei0ls7osZbRjkeW1ei4ltblq5bZmdSW25CXltzotpbil6OW45PvluiJSpbqkOGW6460lvCVtZbyiV+W9pfrlveXi5b56LmW+5NklwCO+ZcE6LqXBui7lweQa5cI6LyXCpfslw3ot5cO6L6XD+jAlxHov5cT6L2XFujBlxnowpcckZqXHonglyTow5cnlraXKujElzDoxZcymEmXOJ5Qlznoxpc96MeXPujIl0LozJdE6MmXRujKl0joy5dJ6M2XUpDCl1aW9ZdZkMOXXOjOl16U8Zdg6M+XYepyl2KWypdk6NCXZujRl2jo0pdpinaXa+jUl22QeJdx6NWXdIxDl3no1pd66NqXfOjYl4Ho2ZeEipOXhejXl4bo25eL6NyXjYjGl4\/o3ZeQ6N6XmI\/il5zo35egi2aXo+jil6bo4Zeo6OCXq+aRl62V2pez6OOXtOjkl8Po5ZfG6OaXyOjnl8vo6JfTitiX3Ojpl+3o6pfulEKX8ujsl\/OJuZf16O+X9ujul\/uJQ5f\/i7+YAZXFmAKSuJgDjaCYBY2AmAaPh5gIkHuYDOjxmA\/o8JgQl2GYEYrmmBKU0JgTk9qYF5CcmBiXzJgajHqYIej0mCTo85gslmqYLZOqmDSJb5g36PWYOOjymDuVcJg8l4qYPej2mEbo95hL6PmYTJHomE2KephOinuYT+j4mFSK55hVjLCYWIromFuTXphel96YZ4zamGvo+phv6PuYcOj8mHHpQJhz6UKYdOlBmKiVl5iq6UOYr+lEmLHpRZi26UaYw+lImMTpR5jG6UmY25TymNzjypjfkEiY4otRmOnpSpjr6UuY7ZmqmO6fWpjvlNGY8oj5mPSIuZj8jpSY\/ZZPmP6P\/JkD6UyZBZbdmQnpTZkKl3uZDIlhmRCOYJkS6U6ZE4nsmRTpT5kY6VCZHelSmR7pU5kg6VWZIelRmSTpVJkoitmZLOlWmS7pV5k96ViZPulZmULpWplF6VyZSelbmUvpXplM6WGZUOldmVHpX5lS6WCZVelimVeLwJmWjvGZl+ljmZjpZJmZjYGZpellmaiKXZmslG6Zrelmma7pZ5mzknmZtJPpmbzpaJnBlJ2ZxJHKmcWJd5nGi+yZyIvtmdCSk5nR6W2Z0ovumdWJ7ZnY6WyZ2+lqmd3pa5nf6WmZ4ul3me3pbpnu6W+Z8elwmfLpcZn46XOZ++lymf+PeJoB6XSaBel2mg6LUpoP6XWaEpGbmhOMsZoZ6XiaKJHLmivpeZowk6uaN+l6mj7pgJpA6X2aQul8mkPpfppF6XuaTemCmlXpgZpX6YSaWovBmlvpg5pf6YWaYumGmmTpiJpl6YeaaemJmmrpi5pr6YqaqI2cmq3pjJqw6Y2auIpbmrzpjprA6Y+axJCRms\/pkJrR6ZGa0+mSmtTpk5rYjYKa3umUmt\/plZri6Zaa4+mXmubpmJrqlK+a6+mamu2VRZru6Zua7+mZmvHpnZr06Zya9+memvvpn5sG6aCbGOmhmxrpopsf6aObIumkmyPppZsl6aabJ+mnmyjpqJsp6ambKumqmy7pq5sv6aybMZ9UmzLprZs74vabPItTm0GKQJtCjbCbQ+mvm0TprptFlqObTemxm07psptP6bCbUemzm1SWgptY6bSbWoubm2+YRJt06bWbg+m3m46IvJuR6bibkpWpm5PptpuW6bmbl+m6m5\/pu5ug6bybqOm9m6qWjpurjkybrY34m66RTpu06b6buenBm8Dpv5vG6cKbyYzvm8rpwJvP6cOb0enEm9LpxZvU6cmb1o5Jm9uR4pvh6cqb4unHm+Ppxpvk6cib6Ix+m\/Dpzpvx6c2b8unMm\/WIsZwE6dicBunUnAjp1ZwJ6dGcCunXnAzp05wNioKcEJhrnBLp1pwT6dKcFOnQnBXpz5wb6dqcIendnCTp3Jwl6ducLZVonC7p2ZwviPGcMOnenDLp4Jw5io+cOunLnDuJVpw+6eKcRunhnEfp35xIkkycUpaQnFeX2Jxa6eOcYOnknGfp5Zx26eaceOnnnOWSuZzn6eic6ZS1nOvp7Zzs6emc8OnqnPOWUJz0lsKc9pPOnQPp7p0G6e+dB5O8nQjp7J0J6eudDomonRLp950V6fadG4mVnR\/p9J0j6fOdJunxnSiKm50q6fCdK46wnSyJp507jYOdPun6nT\/p+Z1B6fidROn1nUbp+51I6fydUOpEnVHqQ51Z6kWdXIlMnV3qQJ1e6kGdYI2UnWGWt51k6kKdbJZRnW\/qSp1y6kadeupLnYfqSJ2J6kedj4x7nZrqTJ2k6k2dqepOnavqSZ2v6fKdsupPnbSS35246lOduupUnbvqUp3B6lGdwupXncTqUJ3G6lWdz+pWndPqWZ3Z6lid5upbne3qXJ3v6l2d8phonfjqWp35kemd+o3rnf3qXp4a6l+eG+pgnh7qYZ516mKeeIyynnnqY5596mSef46tnoHqZZ6I6maei+pnnozqaJ6R6muekuppnpOYW56V6mqel5ftnp3qbJ6fl9mepeptnqaUnp6p6m6equpwnq3qcZ646m+euY2NnrqWy567loOevJv1nr6fgJ6\/lpuexImpnszqc57Ni2+ezup0ns\/qdZ7Q6nae0o2VntTqd57Y4NKe2ZbZntuR4Z7c6nie3ep6nt7qeZ7g6nue5ep8nujqfZ7v6n6e9OqAnvbqgZ736oKe+eqDnvvqhJ786oWe\/eqGnwfqh58I6oifDpNDnxOM258V6oqfIJFsnyHqi58s6oyfO5VAnz7qjZ9K6o6fS+JWn07m2J9P6OufUuqPn1TqkJ9f6pKfYOqTn2HqlJ9il+6fY+qRn2bqlZ9n6pafauqYn2zql59y6pqfduqbn3fqmZ+Nl7Sfleqcn5zqnZ+d4nOfoOqe\/wGBSf8DgZT\/BIGQ\/wWBk\/8GgZX\/CIFp\/wmBav8KgZb\/C4F7\/wyBQ\/8OgUT\/D4Fe\/xCCT\/8RglD\/EoJR\/xOCUv8UglP\/FYJU\/xaCVf8Xglb\/GIJX\/xmCWP8agUb\/G4FH\/xyBg\/8dgYH\/HoGE\/x+BSP8ggZf\/IYJg\/yKCYf8jgmL\/JIJj\/yWCZP8mgmX\/J4Jm\/yiCZ\/8pgmj\/KoJp\/yuCav8sgmv\/LYJs\/y6Cbf8vgm7\/MIJv\/zGCcP8ygnH\/M4Jy\/zSCc\/81gnT\/NoJ1\/zeCdv84gnf\/OYJ4\/zqCef87gW3\/PIFf\/z2Bbv8+gU\/\/P4FR\/0CBTf9BgoH\/QoKC\/0OCg\/9EgoT\/RYKF\/0aChv9Hgof\/SIKI\/0mCif9Kgor\/S4KL\/0yCjP9Ngo3\/ToKO\/0+Cj\/9QgpD\/UYKR\/1KCkv9TgpP\/VIKU\/1WClf9Wgpb\/V4KX\/1iCmP9Zgpn\/WoKa\/1uBb\/9cgWL\/XYFw\/2EAof9iAKL\/YwCj\/2QApP9lAKX\/ZgCm\/2cAp\/9oAKj\/aQCp\/2oAqv9rAKv\/bACs\/20Arf9uAK7\/bwCv\/3AAsP9xALH\/cgCy\/3MAs\/90ALT\/dQC1\/3YAtv93ALf\/eAC4\/3kAuf96ALr\/ewC7\/3wAvP99AL3\/fgC+\/38Av\/+AAMD\/gQDB\/4IAwv+DAMP\/hADE\/4UAxf+GAMb\/hwDH\/4gAyP+JAMn\/igDK\/4sAy\/+MAMz\/jQDN\/44Azv+PAM\/\/kADQ\/5EA0f+SANL\/kwDT\/5QA1P+VANX\/lgDW\/5cA1\/+YANj\/mQDZ\/5oA2v+bANv\/nADc\/50A3f+eAN7\/nwDf\/+OBUP\/lgY8=',
    7070
  );
  qrcode.stringToBytes = qrcode.stringToBytesFuncs['SJIS'];

}(qrcode);
plg_twofactorauth_totp/js/qrcode.min.js000064400000047604152177723720014407 0ustar00//---------------------------------------------------------------------
//
// QR Code Generator for JavaScript
//
// Copyright (c) 2009 Kazuhiko Arase
//
// URL: http://www.d-project.com/
//
// Licensed under the MIT license:
//  http://www.opensource.org/licenses/mit-license.php
//
// The word 'QR Code' is registered trademark of
// DENSO WAVE INCORPORATED
//  http://www.denso-wave.com/qrcode/faqpatent-e.html
//
//---------------------------------------------------------------------
var qrcode=function(){var r=function(r,t){var e=r,n=f[t],o=null,i=0,a=null,u=[],c={},g=function(r,t){o=function(r){for(var t=new Array(r),e=0;e<r;e+=1){t[e]=new Array(r);for(var n=0;n<r;n+=1)t[e][n]=null}return t}(i=4*e+17),h(0,0),h(i-7,0),h(0,i-7),s(),l(),d(r,t),e>=7&&v(r),null==a&&(a=p(e,n,u)),w(a,t)},h=function(r,t){for(var e=-1;e<=7;e+=1)if(!(r+e<=-1||i<=r+e))for(var n=-1;n<=7;n+=1)t+n<=-1||i<=t+n||(o[r+e][t+n]=0<=e&&e<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==e||6==e)||2<=e&&e<=4&&2<=n&&n<=4)},l=function(){for(var r=8;r<i-8;r+=1)null==o[r][6]&&(o[r][6]=r%2==0);for(var t=8;t<i-8;t+=1)null==o[6][t]&&(o[6][t]=t%2==0)},s=function(){for(var r=y.getPatternPosition(e),t=0;t<r.length;t+=1)for(var n=0;n<r.length;n+=1){var i=r[t],a=r[n];if(null==o[i][a])for(var u=-2;u<=2;u+=1)for(var f=-2;f<=2;f+=1)o[i+u][a+f]=-2==u||2==u||-2==f||2==f||0==u&&0==f}},v=function(r){for(var t=y.getBCHTypeNumber(e),n=0;n<18;n+=1){var a=!r&&1==(t>>n&1);o[Math.floor(n/3)][n%3+i-8-3]=a}for(n=0;n<18;n+=1){a=!r&&1==(t>>n&1);o[n%3+i-8-3][Math.floor(n/3)]=a}},d=function(r,t){for(var e=n<<3|t,a=y.getBCHTypeInfo(e),u=0;u<15;u+=1){var f=!r&&1==(a>>u&1);u<6?o[u][8]=f:u<8?o[u+1][8]=f:o[i-15+u][8]=f}for(u=0;u<15;u+=1){f=!r&&1==(a>>u&1);u<8?o[8][i-u-1]=f:u<9?o[8][15-u-1+1]=f:o[8][15-u-1]=f}o[i-8][8]=!r},w=function(r,t){for(var e=-1,n=i-1,a=7,u=0,f=y.getMaskFunction(t),c=i-1;c>0;c-=2)for(6==c&&(c-=1);;){for(var g=0;g<2;g+=1)if(null==o[n][c-g]){var h=!1;u<r.length&&(h=1==(r[u]>>>a&1)),f(n,c-g)&&(h=!h),o[n][c-g]=h,-1==(a-=1)&&(u+=1,a=7)}if((n+=e)<0||i<=n){n-=e,e=-e;break}}},p=function(r,t,e){for(var n=C.getRSBlocks(r,t),o=A(),i=0;i<e.length;i+=1){var a=e[i];o.put(a.getMode(),4),o.put(a.getLength(),y.getLengthInBits(a.getMode(),r)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw"code length overflow. ("+o.getLengthInBits()+">"+8*u+")";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(r,t){for(var e=0,n=0,o=0,i=new Array(t.length),a=new Array(t.length),u=0;u<t.length;u+=1){var f=t[u].dataCount,c=t[u].totalCount-f;n=Math.max(n,f),o=Math.max(o,c),i[u]=new Array(f);for(var g=0;g<i[u].length;g+=1)i[u][g]=255&r.getBuffer()[g+e];e+=f;var h=y.getErrorCorrectPolynomial(c),l=B(i[u],h.getLength()-1).mod(h);for(a[u]=new Array(h.getLength()-1),g=0;g<a[u].length;g+=1){var s=g+l.getLength()-a[u].length;a[u][g]=s>=0?l.getAt(s):0}}var v=0;for(g=0;g<t.length;g+=1)v+=t[g].totalCount;var d=new Array(v),w=0;for(g=0;g<n;g+=1)for(u=0;u<t.length;u+=1)g<i[u].length&&(d[w]=i[u][g],w+=1);for(g=0;g<o;g+=1)for(u=0;u<t.length;u+=1)g<a[u].length&&(d[w]=a[u][g],w+=1);return d}(o,n)};c.addData=function(r,t){var e=null;switch(t=t||"Byte"){case"Numeric":e=k(r);break;case"Alphanumeric":e=M(r);break;case"Byte":e=b(r);break;case"Kanji":e=m(r);break;default:throw"mode:"+t}u.push(e),a=null},c.isDark=function(r,t){if(r<0||i<=r||t<0||i<=t)throw r+","+t;return o[r][t]},c.getModuleCount=function(){return i},c.make=function(){if(e<1){for(var r=1;r<40;r++){for(var t=C.getRSBlocks(r,n),o=A(),i=0;i<u.length;i++){var a=u[i];o.put(a.getMode(),4),o.put(a.getLength(),y.getLengthInBits(a.getMode(),r)),a.write(o)}var f=0;for(i=0;i<t.length;i++)f+=t[i].dataCount;if(o.getLengthInBits()<=8*f)break}e=r}g(!1,function(){for(var r=0,t=0,e=0;e<8;e+=1){g(!0,e);var n=y.getLostPoint(c);(0==e||r>n)&&(r=n,t=e)}return t}())},c.createTableTag=function(r,t){r=r||2;var e="";e+='<table style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: "+(t=void 0===t?4*r:t)+"px;",e+='">',e+="<tbody>";for(var n=0;n<c.getModuleCount();n+=1){e+="<tr>";for(var o=0;o<c.getModuleCount();o+=1)e+='<td style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: 0px;",e+=" width: "+r+"px;",e+=" height: "+r+"px;",e+=" background-color: ",e+=c.isDark(n,o)?"#000000":"#ffffff",e+=";",e+='"/>';e+="</tr>"}return e+="</tbody>",e+="</table>"},c.createSvgTag=function(r,t){var e={};"object"==typeof arguments[0]&&(r=(e=arguments[0]).cellSize,t=e.margin),r=r||2,t=void 0===t?4*r:t;var n,o,i,a,u=c.getModuleCount()*r+2*t,f="";for(a="l"+r+",0 0,"+r+" -"+r+",0 0,-"+r+"z ",f+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',f+=e.scalable?"":' width="'+u+'px" height="'+u+'px"',f+=' viewBox="0 0 '+u+" "+u+'" ',f+=' preserveAspectRatio="xMinYMin meet">',f+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',f+='<path d="',o=0;o<c.getModuleCount();o+=1)for(i=o*r+t,n=0;n<c.getModuleCount();n+=1)c.isDark(o,n)&&(f+="M"+(n*r+t)+","+i+a);return f+='" stroke="transparent" fill="black"/>',f+="</svg>"},c.createDataURL=function(r,t){r=r||2,t=void 0===t?4*r:t;var e=c.getModuleCount()*r+2*t,n=t,o=e-t;return S(e,e,function(t,e){if(n<=t&&t<o&&n<=e&&e<o){var i=Math.floor((t-n)/r),a=Math.floor((e-n)/r);return c.isDark(a,i)?0:1}return 1})},c.createImgTag=function(r,t,e){r=r||2,t=void 0===t?4*r:t;var n=c.getModuleCount()*r+2*t,o="";return o+="<img",o+=' src="',o+=c.createDataURL(r,t),o+='"',o+=' width="',o+=n,o+='"',o+=' height="',o+=n,o+='"',e&&(o+=' alt="',o+=e,o+='"'),o+="/>"};return c.createASCII=function(r,t){if((r=r||1)<2)return function(r){r=void 0===r?2:r;var t,e,n,o,i,a=1*c.getModuleCount()+2*r,u=r,f=a-r,g={"██":"█","█ ":"▀"," █":"▄","  ":" "},h={"██":"▀","█ ":"▀"," █":" ","  ":" "},l="";for(t=0;t<a;t+=2){for(n=Math.floor((t-u)/1),o=Math.floor((t+1-u)/1),e=0;e<a;e+=1)i="█",u<=e&&e<f&&u<=t&&t<f&&c.isDark(n,Math.floor((e-u)/1))&&(i=" "),u<=e&&e<f&&u<=t+1&&t+1<f&&c.isDark(o,Math.floor((e-u)/1))?i+=" ":i+="█",l+=r<1&&t+1>=f?h[i]:g[i];l+="\n"}return a%2&&r>0?l.substring(0,l.length-a-1)+Array(a+1).join("▀"):l.substring(0,l.length-1)}(t);r-=1,t=void 0===t?2*r:t;var e,n,o,i,a=c.getModuleCount()*r+2*t,u=t,f=a-t,g=Array(r+1).join("██"),h=Array(r+1).join("  "),l="",s="";for(e=0;e<a;e+=1){for(o=Math.floor((e-u)/r),s="",n=0;n<a;n+=1)i=1,u<=n&&n<f&&u<=e&&e<f&&c.isDark(o,Math.floor((n-u)/r))&&(i=0),s+=i?g:h;for(o=0;o<r;o+=1)l+=s+"\n"}return l.substring(0,l.length-1)},c.renderTo2dContext=function(r,t){t=t||2;for(var e=c.getModuleCount(),n=0;n<e;n++)for(var o=0;o<e;o++)r.fillStyle=c.isDark(n,o)?"black":"white",r.fillRect(n*t,o*t,t,t)},c};r.stringToBytes=(r.stringToBytesFuncs={default:function(r){for(var t=[],e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t.push(255&n)}return t}}).default,r.createStringToBytes=function(r,t){var e=function(){for(var e=D(r),n=function(){var r=e.read();if(-1==r)throw"eof";return r},o=0,i={};;){var a=e.read();if(-1==a)break;var u=n(),f=n()<<8|n();i[String.fromCharCode(a<<8|u)]=f,o+=1}if(o!=t)throw o+" != "+t;return i}(),n="?".charCodeAt(0);return function(r){for(var t=[],o=0;o<r.length;o+=1){var i=r.charCodeAt(o);if(i<128)t.push(i);else{var a=e[r.charAt(o)];"number"==typeof a?(255&a)==a?t.push(a):(t.push(a>>>8),t.push(255&a)):t.push(n)}}return t}};var t,e,n,o=1,i=2,a=4,u=8,f={L:1,M:0,Q:3,H:2},c=0,g=1,h=2,l=3,s=4,v=5,d=6,w=7,y=(t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t},(e={}).getBCHTypeInfo=function(r){for(var t=r<<10;n(t)-n(1335)>=0;)t^=1335<<n(t)-n(1335);return 21522^(r<<10|t)},e.getBCHTypeNumber=function(r){for(var t=r<<12;n(t)-n(7973)>=0;)t^=7973<<n(t)-n(7973);return r<<12|t},e.getPatternPosition=function(r){return t[r-1]},e.getMaskFunction=function(r){switch(r){case c:return function(r,t){return(r+t)%2==0};case g:return function(r,t){return r%2==0};case h:return function(r,t){return t%3==0};case l:return function(r,t){return(r+t)%3==0};case s:return function(r,t){return(Math.floor(r/2)+Math.floor(t/3))%2==0};case v:return function(r,t){return r*t%2+r*t%3==0};case d:return function(r,t){return(r*t%2+r*t%3)%2==0};case w:return function(r,t){return(r*t%3+(r+t)%2)%2==0};default:throw"bad maskPattern:"+r}},e.getErrorCorrectPolynomial=function(r){for(var t=B([1],0),e=0;e<r;e+=1)t=t.multiply(B([1,p.gexp(e)],0));return t},e.getLengthInBits=function(r,t){if(1<=t&&t<10)switch(r){case o:return 10;case i:return 9;case a:case u:return 8;default:throw"mode:"+r}else if(t<27)switch(r){case o:return 12;case i:return 11;case a:return 16;case u:return 10;default:throw"mode:"+r}else{if(!(t<41))throw"type:"+t;switch(r){case o:return 14;case i:return 13;case a:return 16;case u:return 12;default:throw"mode:"+r}}},e.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;n<t;n+=1)for(var o=0;o<t;o+=1){for(var i=0,a=r.isDark(n,o),u=-1;u<=1;u+=1)if(!(n+u<0||t<=n+u))for(var f=-1;f<=1;f+=1)o+f<0||t<=o+f||0==u&&0==f||a==r.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(n=0;n<t-1;n+=1)for(o=0;o<t-1;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),0!=c&&4!=c||(e+=3)}for(n=0;n<t;n+=1)for(o=0;o<t-6;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(o=0;o<t;o+=1)for(n=0;n<t-6;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);var g=0;for(o=0;o<t;o+=1)for(n=0;n<t;n+=1)r.isDark(n,o)&&(g+=1);return e+=Math.abs(100*g/t/t-50)/5*10},e),p=function(){for(var r=new Array(256),t=new Array(256),e=0;e<8;e+=1)r[e]=1<<e;for(e=8;e<256;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(e=0;e<255;e+=1)t[r[e]]=e;var n={glog:function(r){if(r<1)throw"glog("+r+")";return t[r]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return r[t]}};return n}();function B(r,t){if(void 0===r.length)throw r.length+"/"+t;var e=function(){for(var e=0;e<r.length&&0==r[e];)e+=1;for(var n=new Array(r.length-e+t),o=0;o<r.length-e;o+=1)n[o]=r[o+e];return n}(),n={getAt:function(r){return e[r]},getLength:function(){return e.length},multiply:function(r){for(var t=new Array(n.getLength()+r.getLength()-1),e=0;e<n.getLength();e+=1)for(var o=0;o<r.getLength();o+=1)t[e+o]^=p.gexp(p.glog(n.getAt(e))+p.glog(r.getAt(o)));return B(t,0)},mod:function(r){if(n.getLength()-r.getLength()<0)return n;for(var t=p.glog(n.getAt(0))-p.glog(r.getAt(0)),e=new Array(n.getLength()),o=0;o<n.getLength();o+=1)e[o]=n.getAt(o);for(o=0;o<r.getLength();o+=1)e[o]^=p.gexp(p.glog(r.getAt(o))+t);return B(e,0).mod(r)}};return n}var C=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={};return e.getRSBlocks=function(e,n){var o=function(t,e){switch(e){case f.L:return r[4*(t-1)+0];case f.M:return r[4*(t-1)+1];case f.Q:return r[4*(t-1)+2];case f.H:return r[4*(t-1)+3];default:return}}(e,n);if(void 0===o)throw"bad rs block @ typeNumber:"+e+"/errorCorrectionLevel:"+n;for(var i=o.length/3,a=[],u=0;u<i;u+=1)for(var c=o[3*u+0],g=o[3*u+1],h=o[3*u+2],l=0;l<c;l+=1)a.push(t(g,h));return a},e}(),A=function(){var r=[],t=0,e={getBuffer:function(){return r},getAt:function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},put:function(r,t){for(var n=0;n<t;n+=1)e.putBit(1==(r>>>t-n-1&1))},getLengthInBits:function(){return t},putBit:function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1}};return e},k=function(r){var t=o,e=r,n={getMode:function(){return t},getLength:function(r){return e.length},write:function(r){for(var t=e,n=0;n+2<t.length;)r.put(i(t.substring(n,n+3)),10),n+=3;n<t.length&&(t.length-n==1?r.put(i(t.substring(n,n+1)),4):t.length-n==2&&r.put(i(t.substring(n,n+2)),7))}},i=function(r){for(var t=0,e=0;e<r.length;e+=1)t=10*t+a(r.charAt(e));return t},a=function(r){if("0"<=r&&r<="9")return r.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+r};return n},M=function(r){var t=i,e=r,n={getMode:function(){return t},getLength:function(r){return e.length},write:function(r){for(var t=e,n=0;n+1<t.length;)r.put(45*o(t.charAt(n))+o(t.charAt(n+1)),11),n+=2;n<t.length&&r.put(o(t.charAt(n)),6)}},o=function(r){if("0"<=r&&r<="9")return r.charCodeAt(0)-"0".charCodeAt(0);if("A"<=r&&r<="Z")return r.charCodeAt(0)-"A".charCodeAt(0)+10;switch(r){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+r}};return n},b=function(t){var e=a,n=r.stringToBytes(t),o={getMode:function(){return e},getLength:function(r){return n.length},write:function(r){for(var t=0;t<n.length;t+=1)r.put(n[t],8)}};return o},m=function(t){var e=u,n=r.stringToBytesFuncs.SJIS;if(!n)throw"sjis not supported.";!function(r,t){var e=n("友");if(2!=e.length||38726!=(e[0]<<8|e[1]))throw"sjis not supported."}();var o=n(t),i={getMode:function(){return e},getLength:function(r){return~~(o.length/2)},write:function(r){for(var t=o,e=0;e+1<t.length;){var n=(255&t[e])<<8|255&t[e+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(e+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),r.put(n,13),e+=2}if(e<t.length)throw"illegal char at "+(e+1)}};return i},L=function(){var r=[],t={writeByte:function(t){r.push(255&t)},writeShort:function(r){t.writeByte(r),t.writeByte(r>>>8)},writeBytes:function(r,e,n){e=e||0,n=n||r.length;for(var o=0;o<n;o+=1)t.writeByte(r[o+e])},writeString:function(r){for(var e=0;e<r.length;e+=1)t.writeByte(r.charCodeAt(e))},toByteArray:function(){return r},toString:function(){var t="";t+="[";for(var e=0;e<r.length;e+=1)e>0&&(t+=","),t+=r[e];return t+="]"}};return t},D=function(r){var t=r,e=0,n=0,o=0,i={read:function(){for(;o<8;){if(e>=t.length){if(0==o)return-1;throw"unexpected end of file./"+o}var r=t.charAt(e);if(e+=1,"="==r)return o=0,-1;r.match(/^\s$/)||(n=n<<6|a(r.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i}},a=function(r){if(65<=r&&r<=90)return r-65;if(97<=r&&r<=122)return r-97+26;if(48<=r&&r<=57)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw"c:"+r};return i},S=function(r,t,e){for(var n=function(r,t){var e=r,n=t,o=new Array(r*t),i={setPixel:function(r,t,n){o[t*e+r]=n},write:function(r){r.writeString("GIF87a"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(","),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=a(2);r.writeByte(2);for(var o=0;t.length-o>255;)r.writeByte(255),r.writeBytes(t,o,255),o+=255;r.writeByte(t.length-o),r.writeBytes(t,o,t.length-o),r.writeByte(0),r.writeString(";")}},a=function(r){for(var t=1<<r,e=1+(1<<r),n=r+1,i=u(),a=0;a<t;a+=1)i.add(String.fromCharCode(a));i.add(String.fromCharCode(t)),i.add(String.fromCharCode(e));var f,c,g,h=L(),l=(f=h,c=0,g=0,{write:function(r,t){if(r>>>t!=0)throw"length over";for(;c+t>=8;)f.writeByte(255&(r<<c|g)),t-=8-c,r>>>=8-c,g=0,c=0;g|=r<<c,c+=t},flush:function(){c>0&&f.writeByte(g)}});l.write(t,n);var s=0,v=String.fromCharCode(o[s]);for(s+=1;s<o.length;){var d=String.fromCharCode(o[s]);s+=1,i.contains(v+d)?v+=d:(l.write(i.indexOf(v),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(v+d)),v=d)}return l.write(i.indexOf(v),n),l.write(e,n),l.flush(),h.toByteArray()},u=function(){var r={},t=0,e={add:function(n){if(e.contains(n))throw"dup key:"+n;r[n]=t,t+=1},size:function(){return t},indexOf:function(t){return r[t]},contains:function(t){return void 0!==r[t]}};return e};return i}(r,t),o=0;o<t;o+=1)for(var i=0;i<r;i+=1)n.setPixel(i,o,e(i,o));var a=L();n.write(a);for(var u,f,c,g,h,l,s,v=(u=0,f=0,c=0,g="",l=function(r){g+=String.fromCharCode(s(63&r))},s=function(r){if(r<0);else{if(r<26)return 65+r;if(r<52)return r-26+97;if(r<62)return r-52+48;if(62==r)return 43;if(63==r)return 47}throw"n:"+r},(h={}).writeByte=function(r){for(u=u<<8|255&r,f+=8,c+=1;f>=6;)l(u>>>f-6),f-=6},h.flush=function(){if(f>0&&(l(u<<6-f),u=0,f=0),c%3!=0)for(var r=3-c%3,t=0;t<r;t+=1)g+="="},h.toString=function(){return g},h),d=a.toByteArray(),w=0;w<d.length;w+=1)v.writeByte(d[w]);return v.flush(),"data:image/gif;base64,"+v};return r}();qrcode.stringToBytesFuncs["UTF-8"]=function(r){return function(r){for(var t=[],e=0;e<r.length;e++){var n=r.charCodeAt(e);n<128?t.push(n):n<2048?t.push(192|n>>6,128|63&n):n<55296||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}(r)},function(r){"function"==typeof define&&define.amd?define([],r):"object"==typeof exports&&(module.exports=r())}(function(){return qrcode});
                                                                                          regularlabsmanager/less/style.less000064400000003077152177723720013424 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
@import "../../regularlabs/less/init.less";

#rlem {
	input[type="checkbox"] {
		margin-top: 0;
	}
	td {
		height: 28px;
	}
	.progress {
		margin-bottom: 0;
	}
	.alert {
		margin-bottom: 0;
		padding:       2px 6px;
	}
	span.hasPopover {
		display: inline-block;
	}
}

.com_regularlabsmanager .popover {
	width:     auto;
	max-width: 600px;
}

/* Not on mobile */
@media (min-width: 768px) {
	#rlem td.ext_name {
		font-size: 16px;
	}
}

table.hide_not_installed tbody tr.not_installed {
	display: none;
}

.installselected,
.updateall,
.reinstallall,
div.has_install .installselected_disabled,
div.has_update .installselected_disabled,
div.has_update .updateall_disabled,
div.has_reinstall .reinstallall_disabled {
	display: none !important;
}

div.has_install .installselected,
div.has_update .installselected,
div.has_update .updateall,
div.has_reinstall .reinstallall {
	display: block !important;
	@media (min-width: 481px) {
		display: inline-block !important;
	}
}

.well {
	&.well-danger {
		background-color: #f2dede;
		border-color:     #eed3d7;
		color:            #b94a48;
	}
	> h4 {
		margin-top: 0;
	}
}

#toolbar .btn-success.refresh {
	min-width: 0;
	width:     auto;
}

@media (max-width: 480px) {
	.nowrap.ext_name {
		white-space: normal;
	}
}
regularlabsmanager/less/process.less000064400000001244152177723720013734 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

html, body {
	height:     auto !important;
	overflow-y: auto !important;
}

#rlem {
	h2 {
		min-height: 26px;
	}
	.table {
		margin-bottom: 0;
	}
	td {
		height: 20px;
		&.ext_name {
			font-size: 16px;
		}
	}
	.progress {
		margin-bottom: 1px;
	}
	.label small {
		white-space: normal;
	}
}

#system-message-container {
	display: none;
}
regularlabsmanager/css/style.min.css000064400000002127152177723720013645 0ustar00#rlem .alert,#rlem .progress{margin-bottom:0}#rlem input[type=checkbox],.well>h4{margin-top:0}#rlem td{height:28px}#rlem .alert{padding:2px 6px}#rlem span.hasPopover{display:inline-block}.com_regularlabsmanager .popover{width:auto;max-width:600px}@media (min-width:768px){#rlem td.ext_name{font-size:16px}}table.hide_not_installed tbody tr.not_installed{display:none}.installselected,.reinstallall,.updateall,div.has_install .installselected_disabled,div.has_reinstall .reinstallall_disabled,div.has_update .installselected_disabled,div.has_update .updateall_disabled{display:none!important}div.has_install .installselected,div.has_reinstall .reinstallall,div.has_update .installselected,div.has_update .updateall{display:block!important}@media (min-width:481px){div.has_install .installselected,div.has_reinstall .reinstallall,div.has_update .installselected,div.has_update .updateall{display:inline-block!important}}.well.well-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}#toolbar .btn-success.refresh{min-width:0;width:auto}@media (max-width:480px){.nowrap.ext_name{white-space:normal}}regularlabsmanager/css/process.min.css000064400000000425152177723720014162 0ustar00body,html{height:auto!important;overflow-y:auto!important}#rlem h2{min-height:26px}#rlem .table{margin-bottom:0}#rlem td{height:20px}#rlem td.ext_name{font-size:16px}#rlem .progress{margin-bottom:1px}#rlem .label small{white-space:normal}#system-message-container{display:none}regularlabsmanager/css/style.css000064400000003216152177723720013063 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
#rlem input[type="checkbox"] {
  margin-top: 0;
}
#rlem td {
  height: 28px;
}
#rlem .progress {
  margin-bottom: 0;
}
#rlem .alert {
  margin-bottom: 0;
  padding: 2px 6px;
}
#rlem span.hasPopover {
  display: inline-block;
}
.com_regularlabsmanager .popover {
  width: auto;
  max-width: 600px;
}
/* Not on mobile */
@media (min-width: 768px) {
  #rlem td.ext_name {
    font-size: 16px;
  }
}
table.hide_not_installed tbody tr.not_installed {
  display: none;
}
.installselected,
.updateall,
.reinstallall,
div.has_install .installselected_disabled,
div.has_update .installselected_disabled,
div.has_update .updateall_disabled,
div.has_reinstall .reinstallall_disabled {
  display: none !important;
}
div.has_install .installselected,
div.has_update .installselected,
div.has_update .updateall,
div.has_reinstall .reinstallall {
  display: block !important;
}
@media (min-width: 481px) {
  div.has_install .installselected,
  div.has_update .installselected,
  div.has_update .updateall,
  div.has_reinstall .reinstallall {
    display: inline-block !important;
  }
}
.well.well-danger {
  background-color: #f2dede;
  border-color: #eed3d7;
  color: #b94a48;
}
.well > h4 {
  margin-top: 0;
}
#toolbar .btn-success.refresh {
  min-width: 0;
  width: auto;
}
@media (max-width: 480px) {
  .nowrap.ext_name {
    white-space: normal;
  }
}
regularlabsmanager/css/process.css000064400000001254152177723720013401 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
html,
body {
  height: auto !important;
  overflow-y: auto !important;
}
#rlem h2 {
  min-height: 26px;
}
#rlem .table {
  margin-bottom: 0;
}
#rlem td {
  height: 20px;
}
#rlem td.ext_name {
  font-size: 16px;
}
#rlem .progress {
  margin-bottom: 1px;
}
#rlem .label small {
  white-space: normal;
}
#system-message-container {
  display: none;
}
regularlabsmanager/js/process.min.js000064400000014237152177723720013640 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){$(document).ready(function(){RegularLabsManagerProcess.resizeModal()});$(window.parent).resize(function(){RegularLabsManagerProcess.resizeModal()});if(typeof RegularLabsManagerProcess!=="undefined")return;RegularLabsManagerProcess={params:Joomla.getOptions("rl_extensionmanager"),ids:Joomla.getOptions("rl_extensionmanager").ids,failed_ids:[],task:"install",messages:{"error":[],"warning":[],"info":[]},is_extensionmanager:false,process:function(task,retry){this.hide("title");this.show("processing",
$(".titles"));if(retry){this.processNextStep(0);return}this.task=task;var sb=window.parent.SqueezeBox;sb&&sb.overlay["removeEvent"]("click",sb.bound.close);if(this.ids[0]=="extensionmanager")this.is_extensionmanager=true;sb&&sb.setOptions({onClose:function(){window.parent.location.href=window.parent.location}});this.processNextStep(0)},processNextStep:function(step){var id=this.ids[step];if(id){this.install(step);this.resizeModal();return}var sb=window.parent.SqueezeBox;this.hide("title");this.showMessages("error");
this.showMessages("warning");this.showMessages("info");if(this.failed_ids.length){this.show("failed",$(".titles"));this.ids=this.failed_ids;this.failed_ids=[]}else{this.hide("processlist");this.show("done",$(".titles"));if(!this.is_extensionmanager&&window.parent.RegularLabsManager){window.parent.RegularLabsManager.refreshData(1);sb&&sb.removeEvents()}}sb&&sb.overlay["addEvent"]("click",sb.bound.close);$("#rlem divx,#rlem pre").each(function(){if($(this).css("max-height")!="none"){$(this).prop("data-max-height",
$(this).css("max-height"));$(this).css("max-height","none")}});this.resizeModal();$("#rlem divx,#rlem pre").each(function(){if($(this).prop("data-max-height"))$(this).css("max-height",$(this).prop("data-max-height"))});this.resizeModal()},install:function(step,retry_once){var id=this.ids[step];this.hide("status",$("tr#row_"+id));this.show("processing_"+id);var url=this.getInstallUrl(id);RegularLabsScripts.loadajax(url,"RegularLabsManagerProcess.processResult( data, "+step+", "+retry_once+" )","RegularLabsManagerProcess.processResult( data, "+
step+", "+retry_once+" )",this.params.token+"=1")},getInstallUrl:function(id){var url="index.php?option=com_regularlabsmanager&view=process&tmpl=component&id="+id;if(this.task=="uninstall")return url+"&action=uninstall";var ext_url=$("#url_"+id).val()+"&action="+this.task+"&host="+window.location.hostname;if(ext_url.indexOf("&dev=1")>0){var d=new Date;ext_url+="&"+d.getTime()}return url+"&action=install&url="+encodeURIComponent(ext_url)},processResult:function(data,step,retry_once){data=!data||typeof data!==
"string"?"":data.trim();if(!data&&!retry_once){this.processNextStep(step,1);return}var id=this.ids[step];this.hide("status",$("tr#row_"+id));var messages=this.getMessages(data);if(!messages.success.length){this.failed_ids.push(id);this.enqueueMessages("error",id,messages);this.show("failed_"+id);this.processNextStep(++step);return}this.enqueueMessages("warning",id,messages);this.enqueueMessages("info",id,messages);this.show("success_"+id);this.processNextStep(++step)},show:function(classes,parent){if(!parent)parent=
$("div#rlem");else parent.addClass(classes.replace(",",""));classes="."+classes.replace(", ",", .");parent.find(classes).removeClass("hide")},hide:function(classes,parent){if(!parent)parent=$("div#rlem");else parent.removeClass(classes.replace(",",""));classes="."+classes.replace(", ",", .");parent.find(classes).addClass("hide")},showMessages:function(type){if(!this.messages[type].length)return;$("#process-"+type+" > div.alert-message").html(this.messages[type].join('</div><div class="alert-message">'));
$("#process-"+type).show();this.messages[type]=[]},getMessages:function(data){var messages={"error":[],"success":[],"warning":[],"info":[]};if(data=="1"){messages.success.push("succes");return messages}var html=$.parseHTML(data);var container="";$.each(html,function(i,el){if(el.id!="system-message-container")return true;container=$(el);return false});if(!container.length)return messages;messages.error=container.find(".alert-error .alert-message").toArray();messages.success=container.find(".alert-success .alert-message").toArray();
messages.info=container.find(".alert-info .alert-message").toArray();messages.warning=container.find(".alert:not(.alert-error):not(.alert-success):not(.alert-info) .alert-message").toArray();return messages},enqueueMessages:function(type,id,messages){var alerts=[];var extension_name=$("#ext_name_"+id).html();var title=type=="error"?"<strong>"+extension_name+"</strong><br>":"";$.each(messages[type],function(i,el){var message=typeof el=="string"?el:$(el).html();if(message.indexOf("JFolder: :delete")>
-1)return true;message=message.replace("<h3>Latest changes since v","<h3>Latest changes since "+extension_name+" v");message=message.replace("<h3>Latest changes for :","<h3>Latest changes for "+extension_name+":");message=message.replace("<h3>Latest changes:","<h3>Latest changes for "+extension_name+":");alerts.push(message)});if(!alerts.length){if(type=="error")this.messages[type].push(title+Joomla.JText._("RLEM_INSTALLATION_FAILED"));return}this.messages[type].push(title+alerts.join("<br>"))},resizeModal:function(){if(!window.parent.SqueezeBox)return;
var iframe=$(".sbox-content-iframe > iframe",window.parent.document);var content=$("#rlem");var orig_outer_height=iframe.height();var max_outer_height=$(window.parent).height()-100;var orig_inner_width=content.width();var orig_inner_height=content.height();content.width(800).height("auto");if(content.height()>=orig_inner_height)content.width(orig_inner_width-5);var padding_width=26;var padding_height=38;var new_outer_width=content.width()+padding_width;var new_outer_height=content.height()+padding_height;
if(new_outer_height<orig_outer_height&&new_outer_height>orig_outer_height-20)new_outer_height=orig_outer_height;if(new_outer_height>max_outer_height)new_outer_height=max_outer_height;if(new_outer_height==orig_outer_height)return;window.parent.SqueezeBox.resize({x:new_outer_width,y:new_outer_height});$(".sbox-content-iframe > iframe",window.parent.document).width(new_outer_width).height(new_outer_height)}}})(jQuery);regularlabsmanager/js/process.js000064400000020467152177723720013060 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	$(document).ready(function() {
		RegularLabsManagerProcess.resizeModal();
	});
	$(window.parent).resize(function() {
		RegularLabsManagerProcess.resizeModal();
	});

	if (typeof RegularLabsManagerProcess !== 'undefined') {
		return;
	}

	RegularLabsManagerProcess = {
		params             : Joomla.getOptions('rl_extensionmanager'),
		ids                : Joomla.getOptions('rl_extensionmanager').ids,
		failed_ids         : [],
		task               : 'install',
		messages           : {'error': [], 'warning': [], 'info': []},
		is_extensionmanager: false,

		process: function(task, retry) {
			this.hide('title');
			this.show('processing', $('.titles'));

			if (retry) {
				this.processNextStep(0);
				return;
			}

			this.task = task;

			var sb = window.parent.SqueezeBox;
			sb && sb.overlay['removeEvent']('click', sb.bound.close);

			if (this.ids[0] == 'extensionmanager') {
				this.is_extensionmanager = true;
			}

			sb && sb.setOptions({
				onClose: function() {
					window.parent.location.href = window.parent.location;
				}
			});

			this.processNextStep(0);
		},

		processNextStep: function(step) {
			var id = this.ids[step];

			if (id) {
				this.install(step);
				this.resizeModal();

				return;
			}

			var sb = window.parent.SqueezeBox;
			this.hide('title');

			this.showMessages('error');
			this.showMessages('warning');
			this.showMessages('info');

			if (this.failed_ids.length) {
				this.show('failed', $('.titles'));
				this.ids        = this.failed_ids;
				this.failed_ids = [];
			} else {
				this.hide('processlist');
				this.show('done', $('.titles'));
				if (!this.is_extensionmanager && window.parent.RegularLabsManager) {
					window.parent.RegularLabsManager.refreshData(1);
					sb && sb.removeEvents();
				}
			}

			sb && sb.overlay['addEvent']('click', sb.bound.close);

			// Make all divs and pre's full height to get correct new modal sizes
			$('#rlem divx,#rlem pre').each(function() {
				if ($(this).css('max-height') != 'none') {
					$(this).prop('data-max-height', $(this).css('max-height'));
					$(this).css('max-height', 'none');
				}
			});

			this.resizeModal();

			$('#rlem divx,#rlem pre').each(function() {
				if ($(this).prop('data-max-height')) {
					$(this).css('max-height', $(this).prop('data-max-height'));
				}
			});

			this.resizeModal();
		},

		install: function(step, retry_once) {
			var id = this.ids[step];

			this.hide('status', $('tr#row_' + id));
			this.show('processing_' + id);

			var url = this.getInstallUrl(id);

			RegularLabsScripts.loadajax(url,
				'RegularLabsManagerProcess.processResult( data, ' + step + ', ' + retry_once + ' )',
				'RegularLabsManagerProcess.processResult( data, ' + step + ', ' + retry_once + ' )',
				this.params.token + '=1'
			);
		},

		getInstallUrl: function(id) {
			var url = 'index.php?option=com_regularlabsmanager&view=process&tmpl=component&id=' + id;

			if (this.task == 'uninstall') {
				return url + '&action=uninstall';
			}

			var ext_url = $('#url_' + id).val() + '&action=' + this.task + '&host=' + window.location.hostname;

			if (ext_url.indexOf('&dev=1') > 0) {
				var d = new Date();
				ext_url += '&' + d.getTime();
			}

			return url + '&action=install&url=' + encodeURIComponent(ext_url);

		},

		processResult: function(data, step, retry_once) {
			data = !data || typeof data !== 'string' ? '' : data.trim();

			if (!data && !retry_once) {
				this.processNextStep(step, 1);

				return;
			}

			var id = this.ids[step];

			this.hide('status', $('tr#row_' + id));

			var messages = this.getMessages(data);

			if (!messages.success.length) {
				this.failed_ids.push(id);
				this.enqueueMessages('error', id, messages);
				this.show('failed_' + id);
				this.processNextStep(++step);

				return;
			}

			this.enqueueMessages('warning', id, messages);
			this.enqueueMessages('info', id, messages);

			this.show('success_' + id);
			this.processNextStep(++step);
		},

		show: function(classes, parent) {
			if (!parent) {
				parent = $('div#rlem');
			} else {
				parent.addClass(classes.replace(',', ''));
			}

			classes = '.' + classes.replace(', ', ', .');
			parent.find(classes).removeClass('hide');
		},

		hide: function(classes, parent) {
			if (!parent) {
				parent = $('div#rlem');
			} else {
				parent.removeClass(classes.replace(',', ''));
			}

			classes = '.' + classes.replace(', ', ', .');
			parent.find(classes).addClass('hide');
		},

		showMessages: function(type) {

			if (!this.messages[type].length) {
				return;
			}

			$('#process-' + type + ' > div.alert-message').html(this.messages[type].join('</div><div class="alert-message">'));
			$('#process-' + type).show();

			this.messages[type] = [];
		},

		getMessages: function(data) {
			var messages = {'error': [], 'success': [], 'warning': [], 'info': []};

			if (data == '1') {
				messages.success.push('succes');
				return messages;
			}

			var html = $.parseHTML(data);

			var container = '';

			// Gather the parsed HTML's node names
			$.each(html, function(i, el) {
				if (el.id != 'system-message-container') {
					return true;
				}

				container = $(el);

				return false;
			});

			if (!container.length) {
				return messages;
			}

			messages.error   = container.find('.alert-error .alert-message').toArray();
			messages.success = container.find('.alert-success .alert-message').toArray();
			messages.info    = container.find('.alert-info .alert-message').toArray();
			// warning messages don't have a specific alert-warning class in J3
			messages.warning = container.find('.alert:not(.alert-error):not(.alert-success):not(.alert-info) .alert-message').toArray();

			return messages;
		},

		enqueueMessages: function(type, id, messages) {

			var alerts         = [];
			var extension_name = $('#ext_name_' + id).html();
			var title          = type == 'error' ? '<strong>' + extension_name + '</strong><br>' : '';

			$.each(messages[type], function(i, el) {
				var message = typeof el == 'string' ? el : $(el).html();

				if (message.indexOf('JFolder: :delete') > -1) {
					return true;
				}

				// Correct some old messages not containing the extension name
				message = message.replace('<h3>Latest changes since v', '<h3>Latest changes since ' + extension_name + ' v');
				message = message.replace('<h3>Latest changes for :', '<h3>Latest changes for ' + extension_name + ':');
				message = message.replace('<h3>Latest changes:', '<h3>Latest changes for ' + extension_name + ':');

				alerts.push(message);
			});

			if (!alerts.length) {
				if (type == 'error') {
					this.messages[type].push(title + Joomla.JText._('RLEM_INSTALLATION_FAILED'));
				}

				return;
			}

			this.messages[type].push(title + alerts.join('<br>'));
		},

		resizeModal: function() {
			if (!window.parent.SqueezeBox) {
				return;
			}

			var iframe  = $('.sbox-content-iframe > iframe', window.parent.document);
			var content = $('#rlem');

			var orig_outer_height = iframe.height();
			var max_outer_height  = $(window.parent).height() - 100;

			var orig_inner_width  = content.width();
			var orig_inner_height = content.height();

			content.width(800).height('auto');

			// set back width to original if new height is not smaller because of larger width
			if (content.height() >= orig_inner_height) {
				// for some reason a scroll bar shows if we don't set the width back minus a few pixels :S
				content.width(orig_inner_width - 5);
			}

			var padding_width    = 26;
			var padding_height   = 38;
			var new_outer_width  = content.width() + padding_width;
			var new_outer_height = content.height() + padding_height;

			if (new_outer_height < orig_outer_height && new_outer_height > orig_outer_height - 20) {
				new_outer_height = orig_outer_height;
			}
			if (new_outer_height > max_outer_height) {
				new_outer_height = max_outer_height;
			}

			if (new_outer_height == orig_outer_height) {
				return;
			}

			window.parent.SqueezeBox.resize({x: new_outer_width, y: new_outer_height});

			$('.sbox-content-iframe > iframe', window.parent.document).width(new_outer_width).height(new_outer_height);
		}
	}
})(jQuery);
regularlabsmanager/js/script.js000064400000026342152177723720012704 0ustar00/**
 * @package         Regular Labs Extension Manager
 * @version         7.4.2
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

(function($) {
	if (typeof RegularLabsManager !== 'undefined') {
		return;
	}

	RegularLabsManager = {
		has_pro_installed: false,
		show_key_invalid : true,
		params           : Joomla.getOptions('rl_extensionmanager'),

		refreshData: function(external) {
			RegularLabsManager.hide('loaded, data');
			RegularLabsManager.show('progress');

			$('div#rlem').find('tr').removeClass();
			$('div#rlem').find('td.ext_new').removeClass('disabled');

			var url = 'index.php?option=com_regularlabsmanager&task=update&' + new Date().getTime();

			$.getJSON(url, function(data) {
				$.each(data, function(key, val) {
					RegularLabsManager.setDataByExtension(key, val);
				});

				if (external) {
					RegularLabsManager.hide('progress', $('.ext_types'));
					RegularLabsManager.show('loaded, no_external', $('.ext_types'));
					RegularLabsManager.refreshExternalData();

					return;
				}

				RegularLabsManager.hide('progress');
				RegularLabsManager.show('loaded, no_external');
			}).fail(function() {
				alert(Joomla.JText._('RLEM_ALERT_NO_DATA'));

				RegularLabsManager.hide('progress');
				RegularLabsManager.show('loaded, no_external');
			});
		},

		refreshExternalData: function() {
			var url = 'download.regularlabs.com/extensions.json?j=3';
			if (this.params.updatesource == 'dev') {
				url += '&dev=1';
			}
			if (this.params.key) {
				url += '&k=' + this.params.key;
			}

			RegularLabsScripts.loadajax(url, 'RegularLabsManager.setExternalData(data)', 'RegularLabsManager.setExternalData(0)', '', Joomla.JText._('RLEM_TIMEOUT'), 'json');
		},

		setExternalData: function(data) {
			if (!(data)) {
				alert(Joomla.JText._('RLEM_ALERT_FAIL'));

				RegularLabsManager.hide('progress');
				RegularLabsManager.show('loaded, no_external');

				return;
			}

			var toolbar = $('div#toolbar');

			// reset stuff
			toolbar.removeClass('has_install').removeClass('has_reinstall').removeClass('has_update');

			$.each(data, function(key, val) {
				RegularLabsManager.setExternalDataByExtension(key, val);
			});

			if (this.has_pro_installed && this.show_key_invalid) {
				$('#rl_key_text_empty').hide();
				$('#rl_key_text_invalid').show();
				$('#rl_key .well').addClass('well-danger');
				$('#rl_key').show();
			}

			RegularLabsManager.hide('progress');
			RegularLabsManager.show('loaded');

			RegularLabsManager.updateCheckboxes();
		},

		setDataByExtension: function(extension, data) {
			if (!this.params.ids.indexOf(extension) < 0) {
				return;
			}

			var tr = $('tr#row_' + extension);

			if (!tr) {
				return;
			}

			RegularLabsManager.show('pro_not_installed', tr);

			if (!data || typeof data['version'] === 'undefined' || !data['version']) {
				tr.find('span.current_version').text('');
				RegularLabsManager.hide('installed', tr);
				RegularLabsManager.show('not_installed', tr);

				return;
			}

			tr.find('span.current_version').text(data['version']);

			if (data['pro'] == 1) {
				RegularLabsManager.hide('pro_not_installed', tr)
				RegularLabsManager.show('pro_installed', tr);
				RegularLabsManager.show('uptodate', tr);
			} else {
				RegularLabsManager.show('free_installed', tr);
				RegularLabsManager.show('uptodate', tr);
			}

			if (data['missing'].length) {
				tr.find('.missing span').attr('data-content', data['missing']);
				RegularLabsManager.show('has_missing', tr);
			}

			RegularLabsManager.hide('not_installed', tr);
			RegularLabsManager.show('installed', tr);
		},

		setExternalDataByExtension: function(extension, data) {
			if (!this.params.ids.indexOf(extension) < 0) {
				return;
			}

			var div     = $('div#rlem');
			var toolbar = $('div#toolbar');
			var tr      = div.find('tr#row_' + extension);

			if (!tr) {
				return;
			}

			// reset stuff
			tr.find('td.ext_new').removeClass('disabled');
			tr.find('.changelog, .changelog > span').removeClass('disabled');

			if (!data) {
				return;
			}

			// Changelog
			if (typeof data['changelog'] !== 'undefined' && data['changelog'] != '') {
				changelog = data['changelog'].replace('font-size:1.2em;', '');
				tr.find('.changelog a').attr('data-content', changelog);
				RegularLabsManager.show('changelog', tr);
			}

			// Install buttons
			if (typeof data['version'] === 'undefined' || data['version'] == '') {
				return;
			}

			var v_new = String(data['version']).trim();

			if (!v_new || v_new == '0') {
				// no new version fond: show refresh button
				RegularLabsManager.show('no_external', tr);

				return;
			}

			var version_current = String(tr.find('.current_version').first().text()).trim();

			var pro_installed = tr.hasClass('pro_installed');
			if (pro_installed) {
				this.has_pro_installed = true;
			}

			var pro_access = (data['pro'] == 1);
			if (pro_access) {
				RegularLabsManager.show('pro_access', tr);
				$('#url_' + extension).val(data['downloadurl_pro']);
				this.show_key_invalid = false;
			} else {
				RegularLabsManager.show('pro_no_access', tr);
				$('#url_' + extension).val(data['downloadurl']);
			}

			var pro_available = (data['has_pro'] == 1);
			if (pro_available) {
				RegularLabsManager.show('pro_available', tr);
			} else {
				RegularLabsManager.show('pro_not_available', tr);
			}

			tr.find('.new_version').text(v_new);
			RegularLabsManager.show('changelog', tr);
			RegularLabsManager.hide('uptodate', tr);

			// No current version found
			if (!version_current || version_current == '0') {
				toolbar.addClass('has_install');
				RegularLabsManager.show('selectable', tr);
				RegularLabsManager.show('install', tr);

				return;
			}

			var compare = RegularLabsScripts.compareVersions(version_current, v_new);
			var is_dev  = version_current.indexOf('-dev') > -1;

			if (is_dev) {
				RegularLabsManager.show('install_stable', tr);
			}

			// Current version is newer (dev version)
			if (compare == '>') {
				RegularLabsManager.show('downgrade', tr);
				RegularLabsManager.show('ext_install .downgrade .pro_access', tr);
				tr.find('.changelog, .changelog > span').addClass('disabled');
				if (pro_installed && pro_available && !pro_access) {
					RegularLabsManager.hide('pro_no_access', tr);
					RegularLabsManager.hide('ext_installed .pro_no_access', tr);
					RegularLabsManager.hide('ext_install .downgrade .pro_access', tr);

					RegularLabsManager.show('ext_install .downgrade .pro_no_access', tr);
				}
				return;
			}

			// Pro installed, but no access (Download Key invalid)
			if (pro_installed && pro_available && !pro_access) {
				if ($('#key_hidden').val()) {
					RegularLabsManager.show('pro_key_invalid', tr);
				}

				return;
			}

			// Current version is older or free installed and access to pro
			if (compare == '<' || (!pro_installed && pro_access)) {
				toolbar.addClass('has_update');
				RegularLabsManager.show('selectable', tr);
				RegularLabsManager.show('update', tr);

				return;
			}

			// Extension has missing parts
			if (tr.hasClass('has_missing')) {
				toolbar.addClass('has_install');
				RegularLabsManager.show('selectable', tr);

				return;
			}

			// All is uptodate
			tr.find('.changelog, .changelog > span').addClass('disabled');
			if (!pro_installed || pro_access) {
				RegularLabsManager.show('uptodate', tr);
				if (!is_dev) {
					RegularLabsManager.show('reinstall', tr);
					toolbar.addClass('has_reinstall');
				}
			}
		},

		updateCheckboxes: function() {
			var div = $('div#rlem');

			// hide select boxes
			RegularLabsManager.hide('select');

			// reset hidden checkboxes
			div.find('table tr.not_installed').each(function(i, tr) {
				if (tr.hasClass('xselectable')) {
					tr.addClass('selectable').removeClass('xselectable');
				}
			});

			// make hidden rows unselectable
			div.find('table.hide_not_installed tr.not_installed').each(function(i, tr) {
				if (tr.hasClass('selectable')) {
					tr.addClass('xselectable').removeClass('selectable');
				}
			});

			// show select boxes of selectable rows
			RegularLabsManager.show('selectable .select');
		},

		install: function(task, id) {
			var url = $('#url_' + id).val();
			if (task == 'install_stable') {
				url = url.replace(/&(amp;)?dev=1/, '');
			}
			RegularLabsManager.openModal(task, [id], [url]);
		},

		installMultiple: function(task) {
			var ids  = [];
			var urls = [];

			switch (task) {
				case 'reinstallall':
					type = 'reinstall';
					msg  = Joomla.JText._('RLEM_ALERT_NO_ITEMS_TO_UPDATE');
					clss = 'reinstall';
					break;
				case 'updateall':
					type = 'update';
					msg  = Joomla.JText._('RLEM_ALERT_NO_ITEMS_TO_UPDATE');
					clss = 'selectable.update';
					break;
				default:
					type = 'install';
					msg  = Joomla.JText._('RLEM_ALERT_NO_ITEMS_SELECTED');
					clss = 'selectable';
					break;
			}

			$('div#rlem tr.' + clss).each(function() {
				var tr = $(this);
				var el = tr.find('td.ext_checkbox input');
				var id = el.val();
				if (id) {
					var url = $('#url_' + id).val();

					var pass = 0;
					switch (task) {
						case 'reinstallall':
							pass = url.indexOf('dev=1') < 0;
							break;

						case 'updateall':
							pass = true;
							break;

						default:
							pass = el.is(':checked');
							break;
					}

					if (pass) {
						ids.push(id);
						urls.push(url);
					}
				}
			});

			if (!ids.length) {
				alert(msg);
			} else {
				RegularLabsManager.openModal(type, ids, urls);
			}
		},

		openModal: function(task, ids, urls) {
			var url_ids = [];

			for (var i = 0; i < ids.length; i++) {
				url_ids.push('ids[]=' + escape(ids[i]));
			}

			url_ids = url_ids.join('&');

			var url_urls = [];

			for (var j = 0; j < urls.length; j++) {
				url = urls[j].replace('http://', '');
				url_urls.push('urls[]=' + escape(url));
			}

			url_urls = url_urls.join('&');

			var url    = 'index.php?option=com_regularlabsmanager&view=process&tmpl=component&task=' + task + '&' + url_ids + '&' + url_urls;
			var height = 78 + (ids.length * 37);

			SqueezeBox.open(url, {handler: 'iframe', size: {x: 480, y: height}, classWindow: 'rlem_modal'});
		},

		show: function(classes, parent) {
			this.toggle(classes, parent, 1);
		},

		hide: function(classes, parent) {
			this.toggle(classes, parent, 0);
		},

		toggle: function(classes, parent, show) {
			var classes = classes.split(',');
			$(classes).each(function(i, el) {
				c = classes[i].trim();
				if (!parent) {
					parent = $('div#rlem');
				} else {
					if (c != 'progress' && c != 'loaded') {
						if (show) {
							parent.addClass(c);
						} else {
							parent.removeClass(c);
						}
					}
				}
				if (show) {
					parent.find('.' + c).removeClass('hide');
				} else {
					parent.find('.' + c).addClass('hide');
				}
			});
		}
	}
})(jQuery);

function rlem_function(task, id) {
	if (!task) {
		return;
	}

	switch (task) {
		case 'refresh':
			RegularLabsManager.refreshData(1);
			break;
		case 'reinstallall':
		case 'updateall':
		case 'installselected':
			RegularLabsManager.installMultiple(task);
			break;
		case 'install':
		case 'update':
		case 'reinstall':
		case 'install_stable':
		case 'downgrade':
		case 'uninstall':
			RegularLabsManager.install(task, id);
			break;
	}
}
regularlabsmanager/js/script.min.js000064400000020634152177723720013464 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
(function($){if(typeof RegularLabsManager!=="undefined")return;RegularLabsManager={has_pro_installed:false,show_key_invalid:true,params:Joomla.getOptions("rl_extensionmanager"),refreshData:function(external){RegularLabsManager.hide("loaded, data");RegularLabsManager.show("progress");$("div#rlem").find("tr").removeClass();$("div#rlem").find("td.ext_new").removeClass("disabled");var url="index.php?option=com_regularlabsmanager&task=update&"+(new Date).getTime();$.getJSON(url,function(data){$.each(data,
function(key,val){RegularLabsManager.setDataByExtension(key,val)});if(external){RegularLabsManager.hide("progress",$(".ext_types"));RegularLabsManager.show("loaded, no_external",$(".ext_types"));RegularLabsManager.refreshExternalData();return}RegularLabsManager.hide("progress");RegularLabsManager.show("loaded, no_external")}).fail(function(){alert(Joomla.JText._("RLEM_ALERT_NO_DATA"));RegularLabsManager.hide("progress");RegularLabsManager.show("loaded, no_external")})},refreshExternalData:function(){var url=
"download.regularlabs.com/extensions.json?j=3";if(this.params.updatesource=="dev")url+="&dev=1";if(this.params.key)url+="&k="+this.params.key;RegularLabsScripts.loadajax(url,"RegularLabsManager.setExternalData(data)","RegularLabsManager.setExternalData(0)","",Joomla.JText._("RLEM_TIMEOUT"),"json")},setExternalData:function(data){if(!data){alert(Joomla.JText._("RLEM_ALERT_FAIL"));RegularLabsManager.hide("progress");RegularLabsManager.show("loaded, no_external");return}var toolbar=$("div#toolbar");
toolbar.removeClass("has_install").removeClass("has_reinstall").removeClass("has_update");$.each(data,function(key,val){RegularLabsManager.setExternalDataByExtension(key,val)});if(this.has_pro_installed&&this.show_key_invalid){$("#rl_key_text_empty").hide();$("#rl_key_text_invalid").show();$("#rl_key .well").addClass("well-danger");$("#rl_key").show()}RegularLabsManager.hide("progress");RegularLabsManager.show("loaded");RegularLabsManager.updateCheckboxes()},setDataByExtension:function(extension,
data){if(!this.params.ids.indexOf(extension)<0)return;var tr=$("tr#row_"+extension);if(!tr)return;RegularLabsManager.show("pro_not_installed",tr);if(!data||typeof data["version"]==="undefined"||!data["version"]){tr.find("span.current_version").text("");RegularLabsManager.hide("installed",tr);RegularLabsManager.show("not_installed",tr);return}tr.find("span.current_version").text(data["version"]);if(data["pro"]==1){RegularLabsManager.hide("pro_not_installed",tr);RegularLabsManager.show("pro_installed",
tr);RegularLabsManager.show("uptodate",tr)}else{RegularLabsManager.show("free_installed",tr);RegularLabsManager.show("uptodate",tr)}if(data["missing"].length){tr.find(".missing span").attr("data-content",data["missing"]);RegularLabsManager.show("has_missing",tr)}RegularLabsManager.hide("not_installed",tr);RegularLabsManager.show("installed",tr)},setExternalDataByExtension:function(extension,data){if(!this.params.ids.indexOf(extension)<0)return;var div=$("div#rlem");var toolbar=$("div#toolbar");var tr=
div.find("tr#row_"+extension);if(!tr)return;tr.find("td.ext_new").removeClass("disabled");tr.find(".changelog, .changelog > span").removeClass("disabled");if(!data)return;if(typeof data["changelog"]!=="undefined"&&data["changelog"]!=""){changelog=data["changelog"].replace("font-size:1.2em;","");tr.find(".changelog a").attr("data-content",changelog);RegularLabsManager.show("changelog",tr)}if(typeof data["version"]==="undefined"||data["version"]=="")return;var v_new=String(data["version"]).trim();if(!v_new||
v_new=="0"){RegularLabsManager.show("no_external",tr);return}var version_current=String(tr.find(".current_version").first().text()).trim();var pro_installed=tr.hasClass("pro_installed");if(pro_installed)this.has_pro_installed=true;var pro_access=data["pro"]==1;if(pro_access){RegularLabsManager.show("pro_access",tr);$("#url_"+extension).val(data["downloadurl_pro"]);this.show_key_invalid=false}else{RegularLabsManager.show("pro_no_access",tr);$("#url_"+extension).val(data["downloadurl"])}var pro_available=
data["has_pro"]==1;if(pro_available)RegularLabsManager.show("pro_available",tr);else RegularLabsManager.show("pro_not_available",tr);tr.find(".new_version").text(v_new);RegularLabsManager.show("changelog",tr);RegularLabsManager.hide("uptodate",tr);if(!version_current||version_current=="0"){toolbar.addClass("has_install");RegularLabsManager.show("selectable",tr);RegularLabsManager.show("install",tr);return}var compare=RegularLabsScripts.compareVersions(version_current,v_new);var is_dev=version_current.indexOf("-dev")>
-1;if(is_dev)RegularLabsManager.show("install_stable",tr);if(compare==">"){RegularLabsManager.show("downgrade",tr);RegularLabsManager.show("ext_install .downgrade .pro_access",tr);tr.find(".changelog, .changelog > span").addClass("disabled");if(pro_installed&&pro_available&&!pro_access){RegularLabsManager.hide("pro_no_access",tr);RegularLabsManager.hide("ext_installed .pro_no_access",tr);RegularLabsManager.hide("ext_install .downgrade .pro_access",tr);RegularLabsManager.show("ext_install .downgrade .pro_no_access",
tr)}return}if(pro_installed&&pro_available&&!pro_access){if($("#key_hidden").val())RegularLabsManager.show("pro_key_invalid",tr);return}if(compare=="<"||!pro_installed&&pro_access){toolbar.addClass("has_update");RegularLabsManager.show("selectable",tr);RegularLabsManager.show("update",tr);return}if(tr.hasClass("has_missing")){toolbar.addClass("has_install");RegularLabsManager.show("selectable",tr);return}tr.find(".changelog, .changelog > span").addClass("disabled");if(!pro_installed||pro_access){RegularLabsManager.show("uptodate",
tr);if(!is_dev){RegularLabsManager.show("reinstall",tr);toolbar.addClass("has_reinstall")}}},updateCheckboxes:function(){var div=$("div#rlem");RegularLabsManager.hide("select");div.find("table tr.not_installed").each(function(i,tr){if(tr.hasClass("xselectable"))tr.addClass("selectable").removeClass("xselectable")});div.find("table.hide_not_installed tr.not_installed").each(function(i,tr){if(tr.hasClass("selectable"))tr.addClass("xselectable").removeClass("selectable")});RegularLabsManager.show("selectable .select")},
install:function(task,id){var url=$("#url_"+id).val();if(task=="install_stable")url=url.replace(/&(amp;)?dev=1/,"");RegularLabsManager.openModal(task,[id],[url])},installMultiple:function(task){var ids=[];var urls=[];switch(task){case "reinstallall":type="reinstall";msg=Joomla.JText._("RLEM_ALERT_NO_ITEMS_TO_UPDATE");clss="reinstall";break;case "updateall":type="update";msg=Joomla.JText._("RLEM_ALERT_NO_ITEMS_TO_UPDATE");clss="selectable.update";break;default:type="install";msg=Joomla.JText._("RLEM_ALERT_NO_ITEMS_SELECTED");
clss="selectable";break}$("div#rlem tr."+clss).each(function(){var tr=$(this);var el=tr.find("td.ext_checkbox input");var id=el.val();if(id){var url=$("#url_"+id).val();var pass=0;switch(task){case "reinstallall":pass=url.indexOf("dev=1")<0;break;case "updateall":pass=true;break;default:pass=el.is(":checked");break}if(pass){ids.push(id);urls.push(url)}}});if(!ids.length)alert(msg);else RegularLabsManager.openModal(type,ids,urls)},openModal:function(task,ids,urls){var url_ids=[];for(var i=0;i<ids.length;i++)url_ids.push("ids[]="+
escape(ids[i]));url_ids=url_ids.join("&");var url_urls=[];for(var j=0;j<urls.length;j++){url=urls[j].replace("http://","");url_urls.push("urls[]="+escape(url))}url_urls=url_urls.join("&");var url="index.php?option=com_regularlabsmanager&view=process&tmpl=component&task="+task+"&"+url_ids+"&"+url_urls;var height=78+ids.length*37;SqueezeBox.open(url,{handler:"iframe",size:{x:480,y:height},classWindow:"rlem_modal"})},show:function(classes,parent){this.toggle(classes,parent,1)},hide:function(classes,
parent){this.toggle(classes,parent,0)},toggle:function(classes,parent,show){var classes=classes.split(",");$(classes).each(function(i,el){c=classes[i].trim();if(!parent)parent=$("div#rlem");else if(c!="progress"&&c!="loaded")if(show)parent.addClass(c);else parent.removeClass(c);if(show)parent.find("."+c).removeClass("hide");else parent.find("."+c).addClass("hide")})}}})(jQuery);
function rlem_function(task,id){if(!task)return;switch(task){case "refresh":RegularLabsManager.refreshData(1);break;case "reinstallall":case "updateall":case "installselected":RegularLabsManager.installMultiple(task);break;case "install":case "update":case "reinstall":case "install_stable":case "downgrade":case "uninstall":RegularLabsManager.install(task,id);break}};regularlabsmanager/images/regularlabsmanager.png000064400000003613152177723720016233 0ustar00�PNG


IHDR00`�	�gAMA���asRGB����PLTELiq������������������������������������������������������������������	���������������	������~���}���������(�,������|��
������������ٱz�׮���%�)��ϝ���`�b	�$�'���-�1���������������Ň���b�d��ը'�)o�r!�%t�v�֬�����8�<{�������$�&Z�\��
������x�{�Ѣ�����Κ����	�
/�2U�X����Ȏ�����!�ܷ����
����������~K�N.�2�̖O�S(�-�Оm�pm�o �$l�o�̗h�j{�}�֫������e�g����4�8�޼;�?A�C������E�G������^�_�̘����������wq�s�$��ݍȏ�ժ�q�tv�ܷ!�#+�--�0R�T�ڳz�|�+�/j�m�ȏ��߽�	�۵
�
�붤�^tRNS�q�z�r�� ��Y~+���c�'����
Xh����"�$��W��)�e�Ŝ�mPQ5�{*�&2��a�t/.�8x��ן��Z�Ț������ϸ�IDATH�c`@�:�!�v��\�F�<����G`5f�£\�Q#��F�U0+Pb�Ǧ�V9'�p�To��H�W�FQ������"„�Y.3!�kٲ����$\:,��OIX��ɣ�w�fMONA�K) ��sÅ�ޯ����/+
K�p���S.���iw����ME�7ݟ�?uir\R@��
����U�?M+�ONH�~>>~�����n��_�P�q늇�ӓҒg��7�"�	����_�����~Ew:0t�g�/�K�+���'������V��ypgf�p|$L��I�;�_��a�������+o'gfA��N͝|�,@
�p^›�W��֗�(F������gc��(�]�ҷ/�ץ"Gp���L����\*��E|��5���IJ]��t8W)�2�z'�.,i,�D֐�W_���0!I-�.��wky���z$
z�'�[О\ٜ���SZ��7#�$��H)��7'd��f��C�z��̀��RWůNE�k�G�'% ���R�.\����>�cj�a$1%$'���i	(^�)n�߹���4T���Z
�O#�H�?%���RQ�O�_p6!���&ǟ@�
�)27)�\||��h8_:?	)��C0j�|� �v)8h�:���:��-���(9�ײˊ�� �t�y����CQ�1cqov��R ���[�8U66��hX�=�_9�߾MC�J�F��U��&�v�$�8NP��A5$qOQ[.�+�D�A�?���@sTOM���D�a�L^hV��P;qb턽�R�5�䓗D�Q�tԾ6���*+\��Pe27���Bs����V@��Zޗ����A��zHut��j�&�jGf&j�٠Wr<��*EV!�j�A�z'Ol�/K8\dq�Dt#1��i��imp���^MB
}�0e?fvvf� C>qti6!�*��8IEND�B`�com_fields/js/admin-fields-modal.min.js000064400000001321152177723720014044 0ustar00Joomla=window.Joomla||{},function(a){a.fieldIns=function(a,b){window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(b)?window.parent.Joomla.editors.instances[b].replaceSelection("{field "+a+"}"):window.parent.jInsertEditorText("{field "+a+"}",b),window.parent.jModalClose()},a.fieldgroupIns=function(a,b){window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(b)?window.parent.Joomla.editors.instances[b].replaceSelection("{fieldgroup "+a+"}"):window.parent.jInsertEditorText("{fieldgroup "+a+"}",b),window.parent.jModalClose()}}(Joomla);com_fields/js/admin-fields-modal.js000064400000002232152177723720013264 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

Joomla = window.Joomla || {};

(function(Joomla) {
	Joomla.fieldIns = function(id, editor) {
		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.parent.Joomla.editors.instances[editor].replaceSelection("{field " + id + "}")
		} else {
			window.parent.jInsertEditorText("{field " + id + "}", editor);
		}

		window.parent.jModalClose();
	};

	Joomla.fieldgroupIns = function(id, editor) {
		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.parent.Joomla.editors.instances[editor].replaceSelection("{fieldgroup " + id + "}")
		} else {
			window.parent.jInsertEditorText("{fieldgroup " + id + "}", editor);
		}

		window.parent.jModalClose();
	};
})(Joomla);
com_contenthistory/css/jquery.pretty-text-diff.css000064400000000214152177723720016547 0ustar00/* colors for pretty-text-diff*/
ins {
    background-color: #c6ffc6;
    text-decoration: none;
}

del {
    background-color: #ffc6c6;
}

com_contenthistory/js/jquery.pretty-text-diff.min.js000064400000004237152177723720017012 0ustar00(function(){var $;$=jQuery;$.fn.extend({prettyTextDiff:function(options){var dmp,settings;settings={originalContainer:".original",changedContainer:".changed",diffContainer:".diff",originalHtmlContainer:".originalhtml",changedHtmlContainer:".changedhtml",diffHtmlContainer:".diffhtml",cleanup:true,debug:false};settings=$.extend(settings,options);$.fn.prettyTextDiff.debug("Options: ",settings,settings);dmp=new diff_match_patch;return this.each(function(){var changed,diff_as_html,diffs,original,changedhtml,
originalhtml,diffshtml;original=$(settings.originalContainer,this).text();$.fn.prettyTextDiff.debug("Original text found: ",original,settings);changed=$(settings.changedContainer,this).text();$.fn.prettyTextDiff.debug("Changed  text found: ",changed,settings);originalhtml=$(settings.originalHtmlContainer,this).text();$.fn.prettyTextDiff.debug("Original text found: ",original,settings);changedhtml=$(settings.changedHtmlContainer,this).text();$.fn.prettyTextDiff.debug("Changed  text found: ",changed,
settings);diffs=dmp.diff_main(original,changed);diffshtml=dmp.diff_main(originalhtml,changedhtml);if(settings.cleanup){dmp.diff_cleanupSemantic(diffs);dmp.diff_cleanupSemantic(diffshtml)}$.fn.prettyTextDiff.debug("Diffs: ",diffs,settings);diff_as_html=diffs.map(function(diff){return $.fn.prettyTextDiff.createHTML(diff)});diffhtml_as_html=diffshtml.map(function(diff){return $.fn.prettyTextDiff.createHTML(diff)});$(settings.diffContainer,this).html(diff_as_html.join(""));$(settings.diffHtmlContainer,
this).html(diffhtml_as_html.join(""));return this})}});$.fn.prettyTextDiff.debug=function(message,object,settings){if(settings.debug)return console.log(message,object)};$.fn.prettyTextDiff.createHTML=function(diff){var data,html,operation,pattern_amp,pattern_gt,pattern_lt,pattern_para,text;html=[];pattern_amp=/&/g;pattern_lt=/</g;pattern_gt=/>/g;pattern_para=/\n/g;operation=diff[0],data=diff[1];text=data.replace(pattern_amp,"&amp;").replace(pattern_lt,"&lt;").replace(pattern_gt,"&gt;").replace(pattern_para,
"<br>");switch(operation){case DIFF_INSERT:return"<ins>"+text+"</ins>";case DIFF_DELETE:return"<del>"+text+"</del>";case DIFF_EQUAL:return"<span>"+text+"</span>"}}}).call(this);com_contenthistory/js/diff_match_patch.js000064400000045370152177723720014741 0ustar00(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=0.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=0.5;this.Patch_Margin=4;this.Match_MaxBits=32}
diff_match_patch.prototype.diff_main=function(a,b,c,d){"undefined"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error("Null input. (diff_main)");if(a==b)return a?[[0,a]]:[];"undefined"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);var f=this.diff_commonSuffix(a,b),g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,
b,e,d);c&&a.unshift([0,c]);g&&a.push([0,g]);this.diff_cleanupMerge(a);return a};
diff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[1,b]];if(!b)return[[-1,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[1,e.substring(0,g)],[0,f],[1,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=-1),c):1==f.length?[[-1,a],[1,b]]:(e=this.diff_halfMatch_(a,b))?(f=e[0],a=e[1],g=e[2],b=e[3],e=e[4],f=this.diff_main(f,g,c,d),c=this.diff_main(a,b,c,d),f.concat([[0,e]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,
d):this.diff_bisect_(a,b,d)};
diff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([0,""]);for(var e=d=b=0,f="",g="";b<a.length;){switch(a[b][0]){case 1:e++;g+=a[b][1];break;case -1:d++;f+=a[b][1];break;case 0:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=d.length}d=e=0;g=f=""}b++}a.pop();return a};
diff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=f,h=2*f,j=Array(h),i=Array(h),k=0;k<h;k++)j[k]=-1,i[k]=-1;j[g+1]=0;i[g+1]=0;for(var k=d-e,q=0!=k%2,r=0,t=0,p=0,w=0,v=0;v<f&&!((new Date).getTime()>c);v++){for(var n=-v+r;n<=v-t;n+=2){var l=g+n,m;m=n==-v||n!=v&&j[l-1]<j[l+1]?j[l+1]:j[l-1]+1;for(var s=m-n;m<d&&s<e&&a.charAt(m)==b.charAt(s);)m++,s++;j[l]=m;if(m>d)t+=2;else if(s>e)r+=2;else if(q&&(l=g+k-n,0<=l&&l<h&&-1!=i[l])){var u=d-i[l];if(m>=
u)return this.diff_bisectSplit_(a,b,m,s,c)}}for(n=-v+p;n<=v-w;n+=2){l=g+n;u=n==-v||n!=v&&i[l-1]<i[l+1]?i[l+1]:i[l-1]+1;for(m=u-n;u<d&&m<e&&a.charAt(d-u-1)==b.charAt(e-m-1);)u++,m++;i[l]=u;if(u>d)w+=2;else if(m>e)p+=2;else if(!q&&(l=g+k-n,0<=l&&(l<h&&-1!=j[l])&&(m=j[l],s=g+m-l,u=d-u,m>=u)))return this.diff_bisectSplit_(a,b,m,s,c)}}return[[-1,a],[1,b]]};
diff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};
diff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b="",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf("\n",c);-1==f&&(f=a.length-1);var r=a.substring(c,f+1),c=f+1;(e.hasOwnProperty?e.hasOwnProperty(r):void 0!==e[r])?b+=String.fromCharCode(e[r]):(b+=String.fromCharCode(g),e[r]=g,d[g++]=r)}return b}var d=[],e={};d[0]="";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};
diff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join("")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};
diff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};
diff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;for(var d=0,e=1;;){var f=a.substring(c-e),f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};
diff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g="",h,j,n,l;-1!=(e=b.indexOf(d,e+1));){var m=f.diff_commonPrefix(a.substring(c),b.substring(e)),s=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<s+m&&(g=b.substring(e-s,e)+b.substring(e,e+m),h=a.substring(0,c-s),j=a.substring(c+m),n=b.substring(0,e-s),l=b.substring(e+m))}return 2*g.length>=a.length?[h,j,n,l,g]:null}if(0>=this.Diff_Timeout)return null;
var d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4)),d=c(d,e,Math.ceil(d.length/2)),h;if(!g&&!d)return null;h=d?g?g[4].length>d[4].length?g:d:d:g;var j;a.length>b.length?(g=h[0],d=h[1],e=h[2],j=h[3]):(e=h[0],j=h[1],g=h[2],d=h[3]);h=h[4];return[g,d,e,j,h]};
diff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,j=0,i=0;f<a.length;)0==a[f][0]?(c[d++]=f,g=j,h=i,i=j=0,e=a[f][1]):(1==a[f][0]?j+=a[f][1].length:i+=a[f][1].length,e&&(e.length<=Math.max(g,h)&&e.length<=Math.max(j,i))&&(a.splice(c[d-1],0,[-1,e]),a[c[d-1]+1][0]=1,d--,d--,f=0<d?c[d-1]:-1,i=j=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(-1==a[f-1][0]&&1==a[f][0]){b=a[f-1][1];c=a[f][1];
d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[0,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[0,b.substring(0,e)]),a[f-1][0]=1,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=-1,a[f+1][1]=b.substring(e),f++;f++}f++}};
diff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_),c=g&&c.match(diff_match_patch.linebreakRegex_),d=h&&d.match(diff_match_patch.linebreakRegex_),i=c&&a.match(diff_match_patch.blanklineEndRegex_),j=d&&b.match(diff_match_patch.blanklineStartRegex_);
return i||j?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(0==a[c-1][0]&&0==a[c+1][0]){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g)var h=e.substring(e.length-g),d=d.substring(0,d.length-g),e=h+e.substring(0,e.length-g),f=h+f;for(var g=d,h=e,j=f,i=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){var d=d+e.charAt(0),e=e.substring(1)+f.charAt(0),f=f.substring(1),k=b(d,e)+b(e,f);k>=i&&(i=k,g=d,h=e,j=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-1,1),c--),a[c][1]=
h,j?a[c+1][1]=j:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\s/;diff_match_patch.linebreakRegex_=/[\r\n]/;diff_match_patch.blanklineEndRegex_=/\n\r?\n$/;diff_match_patch.blanklineStartRegex_=/^\r?\n\r?\n/;
diff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,j=!1,i=!1;f<a.length;){if(0==a[f][0])a[f][1].length<this.Diff_EditCost&&(j||i)?(c[d++]=f,g=j,h=i,e=a[f][1]):(d=0,e=null),j=i=!1;else if(-1==a[f][0]?i=!0:j=!0,e&&(g&&h&&j&&i||e.length<this.Diff_EditCost/2&&3==g+h+j+i))a.splice(c[d-1],0,[-1,e]),a[c[d-1]+1][0]=1,d--,e=null,g&&h?(j=i=!0,d=0):(d--,f=0<d?c[d-1]:-1,j=i=!1),b=!0;f++}b&&this.diff_cleanupMerge(a)};
diff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([0,""]);for(var b=0,c=0,d=0,e="",f="",g;b<a.length;)switch(a[b][0]){case 1:d++;f+=a[b][1];b++;break;case -1:c++;e+=a[b][1];b++;break;case 0:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&0==a[b-c-d-1][0]?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[0,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-g)+a[b][1],f=f.substring(0,f.length-
g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[1,f]):0===d?a.splice(b-c,c+d,[-1,e]):a.splice(b-c-d,c+d,[-1,e],[1,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&0==a[b-1][0]?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=""}""===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)0==a[b-1][0]&&0==a[b+1][0]&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,a[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,
a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};diff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){1!==a[g][0]&&(c+=a[g][1].length);-1!==a[g][0]&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&-1===a[g][0]?f:f+(b-e)};
diff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\n/g,g=0;g<a.length;g++){var h=a[g][0],j=a[g][1],j=j.replace(c,"&amp;").replace(d,"&lt;").replace(e,"&gt;").replace(f,"&para;<br>");switch(h){case 1:b[g]='<ins style="background:#e6ffe6;">'+j+"</ins>";break;case -1:b[g]='<del style="background:#ffe6e6;">'+j+"</del>";break;case 0:b[g]="<span>"+j+"</span>"}}return b.join("")};
diff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)1!==a[c][0]&&(b[c]=a[c][1]);return b.join("")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)-1!==a[c][0]&&(b[c]=a[c][1]);return b.join("")};diff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][0],g=a[e][1];switch(f){case 1:c+=g.length;break;case -1:d+=g.length;break;case 0:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};
diff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case 1:b[c]="+"+encodeURI(a[c][1]);break;case -1:b[c]="-"+a[c][1].length;break;case 0:b[c]="="+a[c][1].length}return b.join("\t").replace(/%20/g," ")};
diff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case "+":try{c[d++]=[1,decodeURI(h)]}catch(j){throw Error("Illegal escape in diff_fromDelta: "+h);}break;case "-":case "=":var i=parseInt(h,10);if(isNaN(i)||0>i)throw Error("Invalid number in diff_fromDelta: "+h);h=a.substring(e,e+=i);"="==f[g].charAt(0)?c[d++]=[0,h]:c[d++]=[-1,h];break;default:if(f[g])throw Error("Invalid diff operation in diff_fromDelta: "+
f[g]);}}if(e!=a.length)throw Error("Delta length ("+e+") does not equal source text length ("+a.length+").");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error("Null input. (match_main)");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};
diff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return!f.Match_Distance?g?1:e:e+g/f.Match_Distance}if(b.length>this.Match_MaxBits)throw Error("Pattern too long for this browser.");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));for(var j=1<<b.length-1,h=-1,i,k,q=b.length+a.length,r,t=0;t<b.length;t++){i=0;for(k=q;i<k;)d(t,c+
k)<=g?i=k:q=k,k=Math.floor((q-i)/2+i);q=k;i=Math.max(1,c-k+1);var p=Math.min(c+k,a.length)+b.length;k=Array(p+2);for(k[p+1]=(1<<t)-1;p>=i;p--){var w=e[a.charAt(p-1)];k[p]=0===t?(k[p+1]<<1|1)&w:(k[p+1]<<1|1)&w|((r[p+1]|r[p])<<1|1)|r[p+1];if(k[p]&j&&(w=d(t,p-1),w<=g))if(g=w,h=p-1,h>c)i=Math.max(1,2*c-h);else break}if(d(t+1,c)>g)break;r=k}return h};
diff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};
diff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([0,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([0,d]);a.start1-=c.length;a.start2-=c.length;a.length1+=
c.length+d.length;a.length2+=c.length+d.length}};
diff_match_patch.prototype.patch_make=function(a,b,c){var d;if("string"==typeof a&&"string"==typeof b&&"undefined"==typeof c)d=a,b=this.diff_main(d,b,!0),2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b));else if(a&&"object"==typeof a&&"undefined"==typeof b&&"undefined"==typeof c)b=a,d=this.diff_text1(b);else if("string"==typeof a&&b&&"object"==typeof b&&"undefined"==typeof c)d=a;else if("string"==typeof a&&"string"==typeof b&&c&&"object"==typeof c)d=a,b=c;else throw Error("Unknown call format to patch_make.");
if(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,j=0;j<b.length;j++){var i=b[j][0],k=b[j][1];!e&&0!==i&&(a.start1=f,a.start2=g);switch(i){case 1:a.diffs[e++]=b[j];a.length2+=k.length;d=d.substring(0,g)+k+d.substring(g);break;case -1:a.length1+=k.length;a.diffs[e++]=b[j];d=d.substring(0,g)+d.substring(g+k.length);break;case 0:k.length<=2*this.Patch_Margin&&e&&b.length!=j+1?(a.diffs[e++]=b[j],a.length1+=k.length,a.length2+=k.length):k.length>=2*this.Patch_Margin&&
e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}1!==i&&(f+=k.length);-1!==i&&(g+=k.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};diff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};
diff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),j,i=-1;if(h.length>this.Match_MaxBits){if(j=this.match_main(b,h.substring(0,this.Match_MaxBits),g),-1!=j&&(i=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==i||j>=i))j=-1}else j=this.match_main(b,h,g);
if(-1==j)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=j-g,g=-1==i?b.substring(j,j+h.length):b.substring(j,i+this.Match_MaxBits),h==g)b=b.substring(0,j)+this.diff_text2(a[f].diffs)+b.substring(j+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);for(var h=0,k,i=0;i<a[f].diffs.length;i++){var q=a[f].diffs[i];0!==q[0]&&(k=this.diff_xIndex(g,h));1===q[0]?b=b.substring(0,
j+k)+q[1]+b.substring(j+k):-1===q[0]&&(b=b.substring(0,j+k)+b.substring(j+this.diff_xIndex(g,h+q[1].length)));-1!==q[0]&&(h+=q[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};
diff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c="",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;var d=a[0],e=d.diffs;if(0==e.length||0!=e[0][0])e.unshift([0,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||0!=e[e.length-1][0]?(e.push([0,
c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};
diff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g="";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,j=!0;h.start1=e-g.length;h.start2=f-g.length;""!==g&&(h.length1=h.length2=g.length,h.diffs.push([0,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){var g=d.diffs[0][0],i=d.diffs[0][1];1===g?(h.length2+=i.length,f+=i.length,h.diffs.push(d.diffs.shift()),
j=!1):-1===g&&1==h.diffs.length&&0==h.diffs[0][0]&&i.length>2*b?(h.length1+=i.length,e+=i.length,j=!1,h.diffs.push([g,i]),d.diffs.shift()):(i=i.substring(0,b-h.length1-this.Patch_Margin),h.length1+=i.length,e+=i.length,0===g?(h.length2+=i.length,f+=i.length):j=!1,h.diffs.push([g,i]),i==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(i.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);i=this.diff_text1(d.diffs).substring(0,this.Patch_Margin);""!==i&&
(h.length1+=i.length,h.length2+=i.length,0!==h.diffs.length&&0===h.diffs[h.diffs.length-1][0]?h.diffs[h.diffs.length-1][1]+=i:h.diffs.push([0,i]));j||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join("")};
diff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split("\n");for(var c=0,d=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error("Invalid patch string: "+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);""===e[2]?(f.start1--,f.length1=1):"0"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);""===e[4]?(f.start2--,f.length2=1):"0"==e[4]?f.length2=0:(f.start2--,f.length2=
parseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error("Illegal escape in patch_fromText: "+g);}if("-"==e)f.diffs.push([-1,g]);else if("+"==e)f.diffs.push([1,g]);else if(" "==e)f.diffs.push([0,g]);else if("@"==e)break;else if(""!==e)throw Error('Invalid patch mode "'+e+'" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};
diff_match_patch.patch_obj.prototype.toString=function(){var a,b;a=0===this.length1?this.start1+",0":1==this.length1?this.start1+1:this.start1+1+","+this.length1;b=0===this.length2?this.start2+",0":1==this.length2?this.start2+1:this.start2+1+","+this.length2;a=["@@ -"+a+" +"+b+" @@\n"];var c;for(b=0;b<this.diffs.length;b++){switch(this.diffs[b][0]){case 1:c="+";break;case -1:c="-";break;case 0:c=" "}a[b+1]=c+encodeURI(this.diffs[b][1])+"\n"}return a.join("").replace(/%20/g," ")};
this.diff_match_patch=diff_match_patch;this.DIFF_DELETE=-1;this.DIFF_INSERT=1;this.DIFF_EQUAL=0;})()
com_contenthistory/js/jquery.pretty-text-diff.js000064400000005766152177723720016240 0ustar00// Generated by CoffeeScript 1.4.0

/*
@preserve jQuery.PrettyTextDiff 1.0.2
See https://github.com/arnab/jQuery.PrettyTextDiff/

Modified to show with and without HTML: Mark Dexter, Joomla Project.
*/


(function() {
  var $;

  $ = jQuery;

  $.fn.extend({
    prettyTextDiff: function(options) {
      var dmp, settings;
      settings = {
        originalContainer: ".original",
        changedContainer: ".changed",
        diffContainer: ".diff",
        originalHtmlContainer: ".originalhtml",
        changedHtmlContainer: ".changedhtml",
        diffHtmlContainer: ".diffhtml",
        cleanup: true,
        debug: false
      };
      settings = $.extend(settings, options);
      $.fn.prettyTextDiff.debug("Options: ", settings, settings);
      dmp = new diff_match_patch();
      return this.each(function() {
        var changed, diff_as_html, diffs, original, changedhtml, originalhtml, diffshtml;
        original = $(settings.originalContainer, this).text();
        $.fn.prettyTextDiff.debug("Original text found: ", original, settings);
        changed = $(settings.changedContainer, this).text();
        $.fn.prettyTextDiff.debug("Changed  text found: ", changed, settings);
        originalhtml = $(settings.originalHtmlContainer, this).text();
        $.fn.prettyTextDiff.debug("Original text found: ", original, settings);
        changedhtml = $(settings.changedHtmlContainer, this).text();
        $.fn.prettyTextDiff.debug("Changed  text found: ", changed, settings);
        diffs = dmp.diff_main(original, changed);
        diffshtml = dmp.diff_main(originalhtml, changedhtml);
        if (settings.cleanup) {
          dmp.diff_cleanupSemantic(diffs);
          dmp.diff_cleanupSemantic(diffshtml);
        }
        $.fn.prettyTextDiff.debug("Diffs: ", diffs, settings);
        diff_as_html = diffs.map(function(diff) {
          return $.fn.prettyTextDiff.createHTML(diff);
        });
        diffhtml_as_html = diffshtml.map(function(diff) {
            return $.fn.prettyTextDiff.createHTML(diff);
        });
        $(settings.diffContainer, this).html(diff_as_html.join(''));
        $(settings.diffHtmlContainer, this).html(diffhtml_as_html.join(''));
        return this;
      });
    }
  });

  $.fn.prettyTextDiff.debug = function(message, object, settings) {
    if (settings.debug) {
      return console.log(message, object);
    }
  };

  $.fn.prettyTextDiff.createHTML = function(diff) {
    var data, html, operation, pattern_amp, pattern_gt, pattern_lt, pattern_para, text;
    html = [];
    pattern_amp = /&/g;
    pattern_lt = /</g;
    pattern_gt = />/g;
    pattern_para = /\n/g;
    operation = diff[0], data = diff[1];
    text = data.replace(pattern_amp, '&amp;').replace(pattern_lt, '&lt;').replace(pattern_gt, '&gt;').replace(pattern_para, '<br>');
    switch (operation) {
      case DIFF_INSERT:
        return '<ins>' + text + '</ins>';
      case DIFF_DELETE:
        return '<del>' + text + '</del>';
      case DIFF_EQUAL:
        return '<span>' + text + '</span>';
    }
  };

}).call(this);
com_wrapper/js/iframe-height.min.js000064400000000501152177723720013340 0ustar00function iFrameHeight(iframe){var doc="contentDocument"in iframe?iframe.contentDocument:iframe.contentWindow.document;var height=parseInt(doc.body.scrollHeight);if(!document.all){iframe.style.height=parseInt(height)+60+"px"}else if(document.all&&iframe.id){document.all[iframe.id].style.height=parseInt(height)+20+"px"}}
com_wrapper/js/iframe-height.js000064400000000634152177723720012565 0ustar00function iFrameHeight(iframe)
{
    var doc    = 'contentDocument' in iframe ? iframe.contentDocument : iframe.contentWindow.document;
    var height = parseInt(doc.body.scrollHeight);

    if (!document.all)
    {
        iframe.style.height = parseInt(height) + 60 + 'px';
    }
    else if (document.all && iframe.id)
    {
        document.all[iframe.id].style.height = parseInt(height) + 20 + 'px';
    }
}
cms/css/debug.css000064400000006323152177723720007737 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/* Common CSS for system debug */
div#system-debug {
	clear: both;
}

#system-debug {
	background-color: #fff;
	color: #000;
	border: 1px dashed silver;
	padding: 10px;
}

#system-debug div.dbg-header {
	background-color: #ddd;
	border: 1px solid #eee;
	font-size: 16px;
}

#system-debug h3 {
	margin: 0;
}

#system-debug a h3 {
	background-color: #ddd;
	color: #000;
	font-size: 14px;
	padding: 5px;
	text-decoration: none;
	margin: 0px;
}

#system-debug .dbg-error a h3 {
	background-color: red;
}

#system-debug a:hover h3,
#system-debug a:focus h3 {
	background-color: #4d4d4d;
	color: #ddd;
	font-size: 14px;
	cursor: pointer;
	text-decoration: none;
}

#system-debug div.dbg-container {
	padding: 10px;
}

#system-debug span.dbg-command {
	color: blue;
	font-weight: bold;
}

#system-debug span.dbg-table {
	color: green;
	font-weight: bold;
}

#system-debug b.dbg-operator {
	color: red;
	font-weight: bold;
}

#system-debug h1 {
	background-color: #2c2c2c;
	color: #fff;
	padding: 10px;
	margin: 0;
	font-size: 16px;
	line-height: 1em;
}

#system-debug h4 {
	font-size: 14px;
	font-weight: bold;
	margin: 5px 0 0 0;
}

#system-debug h5 {
	font-size: 13px;
	font-weight: bold;
	margin: 5px 0 0 0;
}

div#system-debug {
	margin: 5px;
}

#system-debug ol {
	margin-left: 25px;
	margin-right: 25px;
	text-align: left;
	direction: ltr;
}

#system-debug ul {
	list-style: none;
	text-align: left;
	direction: ltr;
}

#system-debug li {
	font-size: 13px;
	margin-bottom: 10px;
}

#system-debug code {
	font-size: 13px;
	text-align: left;
	direction: ltr;
}

#system-debug p {
	font-size: 13px;
}

#system-debug div.dbg-header.dbg-error {
	background-color: red;
}
#system-debug .dbg-warning {
	color: red;
	font-weight: bold;
	background-color: #ffffcc !important;
}

#system-debug .accordion {
	margin-bottom: 0;
}
#system-debug .dbg-noprofile {
	text-decoration: line-through;
}

/* dbg-bars */
#system-debug .alert,
#system-debug .dbg-bars {
	margin-bottom: 10px;
}
#system-debug .dbg-bar-spacer {
	float: left;
	height: 100%;
}
/* dbg-bars-query */
#system-debug .dbg-bars-query .dbg-bar {
	opacity: 0.3;
	height: 12px;
	margin-top: 3px;
}
#system-debug .dbg-bars-query:hover .dbg-bar {
	opacity: 0.6;
	height: 18px;
	margin-top: 0;
}
#system-debug .dbg-bars-query .dbg-bar:hover,
#system-debug .dbg-bars-query .dbg-bar-active,
#system-debug .dbg-bars-query:hover .dbg-bar-active {
	opacity: 1;
	height: 18px;
	margin-top: 0;
}

/* dbg-query-table */
#system-debug table.dbg-query-table {
	margin: 0px 0px 6px;
}
#system-debug table.dbg-query-table th,
#system-debug table.dbg-query-table td {
	padding: 3px 8px;
}

#system-debug .dbg-profile-list .label {
	display: inline-block;
	min-width: 60px;
	text-align: right;
}

#system-debug .dbg-query-memory,
#system-debug .dbg-query-rowsnumber
{
	margin-left: 50px;
}
#dbg_container_session pre
{
	background: white;
	border: 0;
	margin: 0;
	padding: 0;
}
#dbg_container_session pre .blue
{
	color:blue;
}
#dbg_container_session pre .green
{
	color:green;
}
#dbg_container_session pre .black
{
	color:black;
}
#dbg_container_session pre .grey
{
	color:grey;
}com_finder/css/dates.css000064400000000661152177723720011273 0ustar00#finder-filter-window {
	margin: 10px 0 10px;
	overflow: auto;
	padding: 0;
	width: 100%;
}

ul#finder-filter-select-dates {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul#finder-filter-select-dates li.filter-date {
	background: none;
	float: left;
	list-style: none;
	margin: 0;
	padding: 5px 0;
	text-align: left;
	width: 49%;
}

ul#finder-filter-select-dates li.filter-date select.filter-date-operator {
	margin-right: 10px;
}
com_finder/css/finder.css000064400000004700152177723720011440 0ustar00#advanced-search {
	text-align:left;
	width:100%;
	padding:5px 0 15px;
}

#advanced-search-toggle {
	cursor:pointer;
}

#search-query-explained {
	padding:10px 0;
}

#search-query-explained span.term,
#search-query-explained span.date,
#search-query-explained span.when,
#search-query-explained span.branch,
#search-query-explained span.node,
#search-query-explained span.op {
	font-weight:bold;
}

#search-query-explained span.op {
	text-transform:uppercase;
}

#search-results li.search-result .mime-pdf {
	padding-left:20px;
	background:url(../../system/images/pdf_button.png) no-repeat;
}

#search-results .search-pagination,
#search-results .pagination,
#search-results .search-pages-counter {
	clear:both;
	margin:0 auto;
}

#highlighter-start, #highlighter-end {
	display:none;
	height:0;
	opacity:0;
}

span.highlight {
	background-color:#FFFFCC;
	font-weight:bold;
	padding:1px 0;
}

ul.autocompleter-choices {
	position:absolute;
	margin:0;
	padding:0;
	list-style:none;
	border:1px solid #EEEEEE;
	background-color:white;
	border-right-color:#DDDDDD;
	border-bottom-color:#DDDDDD;
	text-align:left;
	font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;
	z-index:50;
}

ul.autocompleter-choices li {
	background:none;
	position:relative;
	padding:0.1em 1.5em 0.1em 1em;
	cursor:pointer;
	font-weight:normal;
	font-size:1em;
}

ul.autocompleter-choices li.autocompleter-selected {
	background-color:#444;
	color:#fff;
}

ul.autocompleter-choices span.autocompleter-queried {
	font-weight:bold;
}

ul.autocompleter-choices li.autocompleter-selected span.autocompleter-queried {
	color:#9FCFFF;
}

.autocomplete-suggestions {
	border: 1px solid #999;
	background: #FFF; cursor: default;
	overflow: auto;
	-webkit-box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64);
	-moz-box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64);
	box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64);
}

.autocomplete-suggestion {
	padding: 2px 5px;
	white-space: nowrap;
	overflow: hidden;
}

.autocomplete-no-suggestion {
	padding: 2px 5px;
}

.autocomplete-selected {
	background: #F0F0F0;
}

.autocomplete-suggestions strong {
	font-weight: bold; color: #000;
}

.autocomplete-group {
	padding: 2px 5px;
}

.autocomplete-group strong {
	font-weight: bold;
	font-size: 16px;
	color: #000;
	display: block;
	border-bottom: 1px solid #000;
}

ul#finder-filter-select-list {
	top: 4em !important;
}

.finder-selects .inputbox {
	width: 180px;
}

div#finder-filter-window .filter-branch .finder-selects {
	float: left;
}
com_finder/css/indexer.css000064400000000321152177723720011622 0ustar00#finder-indexer-container {
	text-align: center;
}

#finder-progress-container {
	width: 350px;
	margin: 0 auto;
}

h1.finder-error {
	color: #FF0000;
}

p.finder-error {
	color: #FF0000;
	font-weight:bold;
}
com_finder/js/indexer.js000064400000006161152177723720011302 0ustar00var FinderIndexer = function(){
	var totalItems= null;
	var batchSize= null;
	var offset= null;
	var progress= null;
	var optimized= false;
	var path = 'index.php?option=com_finder&tmpl=component&format=json';

	var initialize = function () {
		offset = 0;
		progress = 0;
		path = path + '&' + jQuery('#finder-indexer-token').attr('name') + '=1';
		getRequest('indexer.start');
	};

	var getRequest= function (task) {
		jQuery.ajax({
			type : "GET",
			url : path,
			data :  'task=' + task,
			dataType : 'json',
			success : handleResponse,
			error : handleFailure
		});
	};

	var handleResponse = function (json, resp) {
		try {
			if (json === null) {
				throw resp;
			}
			if (json.error) {
				throw json;
			}
			if (json.start) {
				totalItems = json.totalItems;
			}
			offset += json.batchOffset;
			updateProgress(json.header, json.message);
			if (offset < totalItems) {
				getRequest('indexer.batch');
			} else if (!optimized) {
				optimized = true;
				getRequest('indexer.optimize');
			}
		} catch (error) {
			jQuery('#progress').remove();
			try {
				if (json.error) {
					jQuery('#finder-progress-header').text(json.header).addClass('finder-error');
					jQuery('#finder-progress-message').html(json.message).addClass('finder-error');
				}
			} catch (ignore) {
				if (error === '') {
					error = Joomla.JText._('COM_FINDER_NO_ERROR_RETURNED');
				}
				jQuery('#finder-progress-header').text(Joomla.JText._('COM_FINDER_AN_ERROR_HAS_OCCURRED')).addClass('finder-error');
				jQuery('#finder-progress-message').html(error).addClass('finder-error');
			}
		}
		return true;
	};

	var handleFailure= function (xhr) {
		json = (typeof xhr == 'object' && xhr.responseText) ? xhr.responseText : null;
		json = json ? jQuery.parseJSON(json) : null;
		jQuery('#progress').remove();
		if (json) {
			json = json.responseText != null ? Json.evaluate(json.responseText, true) : json;
		}
		var header = json ? json.header : Joomla.JText._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
		var message = json ? json.message : Joomla.JText._('COM_FINDER_MESSAGE_RETURNED') + ' <br />' + json;
		jQuery('#finder-progress-header').text(header).addClass('finder-error');
		jQuery('#finder-progress-message').html(message).addClass('finder-error');
	};

	var updateProgress = function (header, message) {
		progress = (offset / totalItems) * 100;
		jQuery('#finder-progress-header').text(header);
		jQuery('#finder-progress-message').html(message);
		if (progress < 100) {
			jQuery('#progress-bar').css('width', progress + '%').attr('aria-valuenow', progress);
		}
		else {
			jQuery('#progress-bar').removeClass('bar-success').addClass('bar-warning').attr('aria-valuemin', 100).attr('aria-valuemax', 200);
			jQuery('#progress-bar').css('width', progress + '%').attr('aria-valuenow', progress);
		}
		if (message == msg) {
			jQuery('#progress').remove();
			window.parent.jQuery('#modal-archive', parent.document).modal('hide');
		}
	};

	initialize();
};

jQuery(function () {
	Indexer = new FinderIndexer();
	if (typeof window.parent.SqueezeBox == 'object') {
		jQuery(window.parent.SqueezeBox).on('close', function () {
			window.parent.location.reload(true);
		});
	}
});
com_finder/js/autocompleter.js000064400000037617152177723720012541 0ustar00//@deprecated  3.4
var Observer = new Class({
	Implements: [Options, Events],
	options: {
		periodical: false,
		delay: 1000
	},
	initialize: function (el, onFired, options) {
		this.element = document.id(el) || $document.id(el);
		this.addEvent('onFired', onFired);
		this.setOptions(options);
		this.bound = this.changed.bind(this);
		this.resume();
	},
	changed: function () {
		var value = this.element.get('value');
		if ($equals(this.value, value)) return;
		this.clear();
		this.value = value;
		this.timeout = this.onFired.delay(this.options.delay, this);
	},
	setValue: function (value) {
		this.value = value;
		this.element.set('value', value);
		return this.clear();
	},
	onFired: function () {
		this.fireEvent('onFired', [this.value, this.element]);
	},
	clear: function () {
		clearTimeout(this.timeout || null);
		return this;
	},
	pause: function () {
		if (this.timer) clearTimeout(this.timer);
		else this.element.removeEvent('keyup', this.bound);
		return this.clear();
	},
	resume: function () {
		this.value = this.element.get('value');
		if (this.options.periodical) this.timer = this.changed.periodical(this.options.periodical, this);
		else this.element.addEvent('keyup', this.bound);
		return this;
	}
});
var $equals = function (obj1, obj2) {
		return (obj1 == obj2 || JSON.encode(obj1) == JSON.encode(obj2));
	};
var Autocompleter = new Class({
	Implements: [Options, Events],
	options: {
		minLength: 1,
		markQuery: true,
		width: 'inherit',
		maxChoices: 10,
		injectChoice: null,
		customChoices: null,
		emptyChoices: null,
		visibleChoices: true,
		className: 'autocompleter-choices',
		zIndex: 1000,
		delay: 400,
		observerOptions: {},
		fxOptions: {},
		autoSubmit: false,
		overflow: false,
		overflowMargin: 25,
		selectFirst: false,
		filter: null,
		filterCase: false,
		filterSubset: false,
		forceSelect: false,
		selectMode: true,
		choicesMatch: null,
		multiple: false,
		separator: ', ',
		separatorSplit: /\s*[,;]\s*/,
		autoTrim: false,
		allowDupes: false,
		cache: true,
		relative: false
	},
	initialize: function (element, options) {
		this.element = document.id(element);
		this.setOptions(options);
		this.build();
		this.observer = new Observer(this.element, this.prefetch.bind(this), Object.merge({}, {
			'delay': this.options.delay
		}, this.options.observerOptions));
		this.queryValue = null;
		if (this.options.filter) this.filter = this.options.filter.bind(this);
		var mode = this.options.selectMode;
		this.typeAhead = (mode == 'type-ahead');
		this.selectMode = (mode === true) ? 'selection' : mode;
		this.cached = [];
	},
	build: function () {
		if (document.id(this.options.customChoices)) {
			this.choices = this.options.customChoices;
		} else {
			this.choices = new Element('ul', {
				'class': this.options.className,
				'styles': {
					'zIndex': this.options.zIndex
				}
			}).inject(document.body);
			this.relative = false;
			if (this.options.relative) {
				this.choices.inject(this.element, 'after');
				this.relative = this.element.getOffsetParent();
			}
			this.fix = new OverlayFix(this.choices);
		}
		if (!this.options.separator.test(this.options.separatorSplit)) {
			this.options.separatorSplit = this.options.separator;
		}
		this.fx = (!this.options.fxOptions) ? null : new Fx.Tween(this.choices, Object.merge({}, {
			'property': 'opacity',
			'link': 'cancel',
			'duration': 200
		}, this.options.fxOptions)).addEvent('onStart', Chain.prototype.clearChain).set(0);
		this.element.setProperty('autocomplete', 'off').addEvent((Browser.ie || Browser.safari || Browser.chrome) ? 'keydown' : 'keypress', this.onCommand.bind(this)).addEvent('click', this.onCommand.bind(this, [false])).addEvent('focus', this.toggleFocus.pass({
			bind: this,
			arguments: true,
			delay: 100
		})).addEvent('blur', this.toggleFocus.pass({
			bind: this,
			arguments: false,
			delay: 100
		}));
	},
	destroy: function () {
		if (this.fix) this.fix.destroy();
		this.choices = this.selected = this.choices.destroy();
	},
	toggleFocus: function (state) {
		this.focussed = state;
		if (!state) this.hideChoices(true);
		this.fireEvent((state) ? 'onFocus' : 'onBlur', [this.element]);
	},
	onCommand: function (e) {
		if (!e && this.focussed) return this.prefetch();
		if (e && e.key && !e.shift) {
			switch (e.key) {
			case 'enter':
				if (this.element.value != this.opted) return true;
				if (this.selected && this.visible) {
					this.choiceSelect(this.selected);
					return !!(this.options.autoSubmit);
				}
				break;
			case 'up':
			case 'down':
				if (!this.prefetch() && this.queryValue !== null) {
					var up = (e.key == 'up');
					this.choiceOver((this.selected || this.choices)[(this.selected) ? ((up) ? 'getPrevious' : 'getNext') : ((up) ? 'getLast' : 'getFirst')](this.options.choicesMatch), true);
				}
				return false;
			case 'esc':
			case 'tab':
				this.hideChoices(true);
				break;
			}
		}
		return true;
	},
	setSelection: function (finish) {
		var input = this.selected.inputValue,
			value = input;
		var start = this.queryValue.length,
			end = input.length;
		if (input.substr(0, start).toLowerCase() != this.queryValue.toLowerCase()) start = 0;
		if (this.options.multiple) {
			var split = this.options.separatorSplit;
			value = this.element.value;
			start += this.queryIndex;
			end += this.queryIndex;
			var old = value.substr(this.queryIndex).split(split, 1)[0];
			value = value.substr(0, this.queryIndex) + input + value.substr(this.queryIndex + old.length);
			if (finish) {
				var tokens = value.split(this.options.separatorSplit).filter(function (entry) {
					return this.test(entry);
				}, /[^\s,]+/);
				if (!this.options.allowDupes) tokens = [].combine(tokens);
				var sep = this.options.separator;
				value = tokens.join(sep) + sep;
				end = value.length;
			}
		}
		this.observer.setValue(value);
		this.opted = value;
		if (finish || this.selectMode == 'pick') start = end;
		this.element.selectRange(start, end);
		this.fireEvent('onSelection', [this.element, this.selected, value, input]);
	},
	showChoices: function () {
		var match = this.options.choicesMatch,
			first = this.choices.getFirst(match);
		this.selected = this.selectedValue = null;
		if (this.fix) {
			var pos = this.element.getCoordinates(this.relative),
				width = this.options.width || 'auto';
			this.choices.setStyles({
				'left': pos.left,
				'top': pos.bottom,
				'width': (width === true || width == 'inherit') ? pos.width : width
			});
		}
		if (!first) return;
		if (!this.visible) {
			this.visible = true;
			this.choices.setStyle('display', '');
			if (this.fx) this.fx.start(1);
			this.fireEvent('onShow', [this.element, this.choices]);
		}
		if (this.options.selectFirst || this.typeAhead || first.inputValue == this.queryValue) this.choiceOver(first, this.typeAhead);
		var items = this.choices.getChildren(match),
			max = this.options.maxChoices;
		var styles = {
			'overflowY': 'hidden',
			'height': ''
		};
		this.overflown = false;
		if (items.length > max) {
			var item = items[max - 1];
			styles.overflowY = 'scroll';
			styles.height = item.getCoordinates(this.choices).bottom;
			this.overflown = true;
		};
		this.choices.setStyles(styles);
		this.fix.show();
		if (this.options.visibleChoices) {
			var scroll = document.getScroll(),
				size = document.getSize(),
				coords = this.choices.getCoordinates();
			if (coords.right > scroll.x + size.x) scroll.x = coords.right - size.x;
			if (coords.bottom > scroll.y + size.y) scroll.y = coords.bottom - size.y;
			window.scrollTo(Math.min(scroll.x, coords.left), Math.min(scroll.y, coords.top));
		}
	},
	// TODO: No $arguments in MT 1.3
	hideChoices: function (clear) {
		if (clear) {
			var value = this.element.value;
			if (this.options.forceSelect) value = this.opted;
			if (this.options.autoTrim) {
				value = value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);
			}
			this.observer.setValue(value);
		}
		if (!this.visible) return;
		this.visible = false;
		if (this.selected) this.selected.removeClass('autocompleter-selected');
		this.observer.clear();
		var hide = function () {
				this.choices.setStyle('display', 'none');
				this.fix.hide();
			}.bind(this);
		if (this.fx) this.fx.start(0).chain(hide);
		else hide();
		this.fireEvent('onHide', [this.element, this.choices]);
	},
	prefetch: function () {
		var value = this.element.value,
			query = value;
		if (this.options.multiple) {
			var split = this.options.separatorSplit;
			var values = value.split(split);
			var index = this.element.getSelectedRange().start;
			var toIndex = value.substr(0, index).split(split);
			var last = toIndex.length - 1;
			index -= toIndex[last].length;
			query = values[last];
		}
		if (query.length < this.options.minLength) {
			this.hideChoices();
		} else {
			if (query === this.queryValue || (this.visible && query == this.selectedValue)) {
				if (this.visible) return false;
				this.showChoices();
			} else {
				this.queryValue = query;
				this.queryIndex = index;
				if (!this.fetchCached()) this.query();
			}
		}
		return true;
	},
	fetchCached: function () {
		return false;
		if (!this.options.cache || !this.cached || !this.cached.length || this.cached.length >= this.options.maxChoices || this.queryValue) return false;
		this.update(this.filter(this.cached));
		return true;
	},
	update: function (tokens) {
		this.choices.empty();
		this.cached = tokens;
		var type = tokens && typeOf(tokens);
		if (!type || (type == 'array' && !tokens.length) || (type == 'hash' && !tokens.getLength())) {
			(this.options.emptyChoices || this.hideChoices).call(this);
		} else {
			if (this.options.maxChoices < tokens.length && !this.options.overflow) tokens.length = this.options.maxChoices;
			tokens.each(this.options.injectChoice ||
			function (token) {
				var choice = new Element('li', {
					'html': this.markQueryValue(token)
				});
				choice.inputValue = token;
				this.addChoiceEvents(choice).inject(this.choices);
			}, this);
			this.showChoices();
		}
	},
	choiceOver: function (choice, selection) {
		if (!choice || choice == this.selected) return;
		if (this.selected) this.selected.removeClass('autocompleter-selected');
		this.selected = choice.addClass('autocompleter-selected');
		this.fireEvent('onSelect', [this.element, this.selected, selection]);
		if (!this.selectMode) this.opted = this.element.value;
		if (!selection) return;
		this.selectedValue = this.selected.inputValue;
		if (this.overflown) {
			var coords = this.selected.getCoordinates(this.choices),
				margin = this.options.overflowMargin,
				top = this.choices.scrollTop,
				height = this.choices.offsetHeight,
				bottom = top + height;
			if (coords.top - margin < top && top) this.choices.scrollTop = Math.max(coords.top - margin, 0);
			else if (coords.bottom + margin > bottom) this.choices.scrollTop = Math.min(coords.bottom - height + margin, bottom);
		}
		if (this.selectMode) this.setSelection();
	},
	choiceSelect: function (choice) {
		if (choice) this.choiceOver(choice);
		this.setSelection(true);
		this.queryValue = false;
		this.hideChoices();
	},
	filter: function (tokens) {
		return (tokens || this.tokens).filter(function (token) {
			return this.test(token);
		}, new RegExp(((this.options.filterSubset) ? '' : '^') + this.queryValue.escapeRegExp(), (this.options.filterCase) ? '' : 'i'));
	},
	markQueryValue: function (str) {
		return (!this.options.markQuery || !this.queryValue) ? str : str.replace(new RegExp('(' + ((this.options.filterSubset) ? '' : '^') + this.queryValue.escapeRegExp() + ')', (this.options.filterCase) ? '' : 'i'), '<span class="autocompleter-queried">$1</span>');
	},
	addChoiceEvents: function (el) {
		return el.addEvents({
			'mouseover': this.choiceOver.bind(this, el),
			'click': this.choiceSelect.bind(this, el)
		});
	}
});
var OverlayFix = new Class({
	initialize: function (el) {
		if (Browser.ie) {
			this.element = document.id(el);
			this.relative = this.element.getOffsetParent();
			this.fix = new Element('iframe', {
				'frameborder': '0',
				'scrolling': 'no',
				'src': 'javascript:false;',
				'styles': {
					'position': 'absolute',
					'border': 'none',
					'display': 'none',
					'filter': 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'
				}
			}).inject(this.element, 'after');
		}
	},
	show: function () {
		if (this.fix) {
			var coords = this.element.getCoordinates(this.relative);
			delete coords.right;
			delete coords.bottom;
			this.fix.setStyles(Object.append(coords, {
				'display': '',
				'zIndex': (this.element.getStyle('zIndex') || 1) - 1
			}));
		}
		return this;
	},
	hide: function () {
		if (this.fix) this.fix.setStyle('display', 'none');
		return this;
	},
	destroy: function () {
		if (this.fix) this.fix = this.fix.destroy();
	}
});
Element.implement({
	getSelectedRange: function () {
		if (!Browser.ie) return {
			start: this.selectionStart,
			end: this.selectionEnd
		};
		var pos = {
			start: 0,
			end: 0
		};
		var range = this.getDocument().selection.createRange();
		if (!range || range.parentElement() != this) return pos;
		var dup = range.duplicate();
		if (this.type == 'text') {
			pos.start = 0 - dup.moveStart('character', -100000);
			pos.end = pos.start + range.text.length;
		} else {
			var value = this.value;
			var offset = value.length - value.match(/[\n\r]*$/)[0].length;
			dup.moveToElementText(this);
			dup.setEndPoint('StartToEnd', range);
			pos.end = offset - dup.text.length;
			dup.setEndPoint('StartToStart', range);
			pos.start = offset - dup.text.length;
		}
		return pos;
	},
	selectRange: function (start, end) {
		if (Browser.ie) {
			var diff = this.value.substr(start, end - start).replace(/\r/g, '').length;
			start = this.value.substr(0, start).replace(/\r/g, '').length;
			var range = this.createTextRange();
			range.collapse(true);
			range.moveEnd('character', start + diff);
			range.moveStart('character', start);
			range.select();
		} else {
			this.focus();
			this.setSelectionRange(start, end);
		}
		return this;
	}
});
Autocompleter.Base = Autocompleter;
Autocompleter.Request = new Class({
	Extends: Autocompleter,
	options: {
		postData: {},
		ajaxOptions: {},
		postVar: 'value'
	},
	query: function () {
		var data = this.options.postData.unlink || {};
		data[this.options.postVar] = this.queryValue;
		var indicator = document.id(this.options.indicator);
		if (indicator) indicator.setStyle('display', '');
		var cls = this.options.indicatorClass;
		if (cls) this.element.addClass(cls);
		this.fireEvent('onRequest', [this.element, this.request, data, this.queryValue]);
		this.request.send({
			'data': data
		});
	},
	queryResponse: function () {
		var indicator = document.id(this.options.indicator);
		if (indicator) indicator.setStyle('display', 'none');
		var cls = this.options.indicatorClass;
		if (cls) this.element.removeClass(cls);
		return this.fireEvent('onComplete', [this.element, this.request]);
	}
});
Autocompleter.Request.JSON = new Class({
	Extends: Autocompleter.Request,
	initialize: function (el, url, options) {
		this.parent(el, options);
		this.request = new Request.JSON(Object.merge({}, {
			'url': url,
			'link': 'cancel'
		}, this.options.ajaxOptions)).addEvent('onComplete', this.queryResponse.bind(this));
	},
	queryResponse: function (response) {
		this.parent();
		this.update(response);
	}
});
Autocompleter.Request.HTML = new Class({
	Extends: Autocompleter.Request,
	initialize: function (el, url, options) {
		this.parent(el, options);
		this.request = new Request.HTML(Object.merge({}, {
			'url': url,
			'link': 'cancel',
			'update': this.choices
		}, this.options.ajaxOptions)).addEvent('onComplete', this.queryResponse.bind(this));
	},
	queryResponse: function (tree, elements) {
		this.parent();
		if (!elements || !elements.length) {
			this.hideChoices();
		} else {
			this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice ||
			function (choice) {
				var value = choice.innerHTML;
				choice.inputValue = value;
				this.addChoiceEvents(choice.set('html', this.markQueryValue(value)));
			}, this);
			this.showChoices();
		}
	}
});
Autocompleter.Ajax = {
	Base: Autocompleter.Request,
	Json: Autocompleter.Request.JSON,
	Xhtml: Autocompleter.Request.HTML
};
com_modules/js/admin-modules-modal.js000064400000003576152177723720013704 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

document.addEventListener('DOMContentLoaded', function() {
	"use strict";

	/** Get the elements **/
	var modulesLinks = document.querySelectorAll('.js-module-insert'), i,
		positionsLinks = document.querySelectorAll('.js-position-insert');

	/** Assign listener for click event (for single module id insertion) **/
	for (i= 0; modulesLinks.length > i; i++) {
		modulesLinks[i].addEventListener('click', function(event) {
			event.preventDefault();
			var modid = event.target.getAttribute('data-module'),
				editor = event.target.getAttribute('data-editor');

			/** Use the API, if editor supports it **/
			if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
				window.parent.Joomla.editors.instances[editor].replaceSelection("{loadmoduleid " + modid + "}")
			} else {
				window.parent.jInsertEditorText("{loadmoduleid " + modid + "}", editor);
			}

			window.parent.jModalClose();
		});
	}

	/** Assign listener for click event (for position insertion) **/
	for (i= 0; positionsLinks.length > i; i++) {
		positionsLinks[i].addEventListener('click', function(event) {
			event.preventDefault();
			var position = event.target.getAttribute('data-position'),
				editor = event.target.getAttribute('data-editor');

			/** Use the API, if editor supports it **/
			if (window.Joomla && window.Joomla.editors && Joomla.editors.instances && Joomla.editors.instances.hasOwnProperty(editor)) {
				Joomla.editors.instances[editor].replaceSelection("{loadposition " + position + "}")
			} else {
				window.parent.jInsertEditorText("{loadposition " + position + "}", editor);
			}

			window.parent.jModalClose();
		});
	}

});
com_modules/js/admin-modules-modal.min.js000064400000002110152177723720014445 0ustar00document.addEventListener('DOMContentLoaded',function(){'use strict';var b,a=document.querySelectorAll('.js-module-insert'),c=document.querySelectorAll('.js-position-insert');for(b=0;a.length>b;b++)a[b].addEventListener('click',function(d){d.preventDefault();var e=d.target.getAttribute('data-module'),f=d.target.getAttribute('data-editor');window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(f)?window.parent.Joomla.editors.instances[f].replaceSelection('{loadmoduleid '+e+'}'):window.parent.jInsertEditorText('{loadmoduleid '+e+'}',f),window.parent.jModalClose()});for(b=0;c.length>b;b++)c[b].addEventListener('click',function(d){d.preventDefault();var e=d.target.getAttribute('data-position'),f=d.target.getAttribute('data-editor');window.Joomla&&window.Joomla.editors&&Joomla.editors.instances&&Joomla.editors.instances.hasOwnProperty(f)?Joomla.editors.instances[f].replaceSelection('{loadposition '+e+'}'):window.parent.jInsertEditorText('{loadposition '+e+'}',f),window.parent.jModalClose()})});
com_contact/js/admin-contacts-modal.js000064400000004164152177723720014027 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
(function() {
	"use strict";
	/**
	 * Javascript to insert the link
	 * View element calls jSelectContact when a contact is clicked
	 * jSelectContact creates the link tag, sends it to the editor,
	 * and closes the select frame.
	 */

	window.jSelectContact = function(id, title, catid, object, link, lang)
	{
		var hreflang = '', tag, editor;

		if (!Joomla.getOptions('xtd-contacts')) {
			// Something went wrong!
			window.parent.jModalClose();
			return false;
		}

		editor = Joomla.getOptions('xtd-contacts').editor;

		if (lang !== '') {
			hreflang = ' hreflang = "' + lang + '"';
		}

		tag = '<a' + hreflang + ' href="' + link + '">' + title + '</a>';

		/** Use the API, if editor supports it **/
		if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
			window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
		} else {
			window.parent.jInsertEditorText(tag, editor);
		}

		window.parent.jModalClose();
	};

	document.addEventListener('DOMContentLoaded', function(){
		// Get the elements
		var elements = document.querySelectorAll('.select-link');

		for(var i = 0, l = elements.length; l>i; i++) {
			// Listen for click event
			elements[i].addEventListener('click', function (event) {
				event.preventDefault();
				var functionName = event.target.getAttribute('data-function');

				if (functionName === 'jSelectContact') {
					// Used in xtd_contacts
					window[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), null, null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'), null);
				} else {
					// Used in com_menus
					window.parent[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), null, null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'), null);
				}
			})
		}
	});
})();
com_contact/js/admin-contacts-modal.min.js000064400000002210152177723720014577 0ustar00!function(){"use strict";window.jSelectContact=function(a,b,c,d,e,f){var h,i,g="";return Joomla.getOptions("xtd-contacts")?(i=Joomla.getOptions("xtd-contacts").editor,""!==f&&(g=' hreflang = "'+f+'"'),h="<a"+g+' href="'+e+'">'+b+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(i)?window.parent.Joomla.editors.instances[i].replaceSelection(h):window.parent.jInsertEditorText(h,i),void window.parent.jModalClose()):(window.parent.jModalClose(),!1)},document.addEventListener("DOMContentLoaded",function(){for(var a=document.querySelectorAll(".select-link"),b=0,c=a.length;c>b;b++)a[b].addEventListener("click",function(a){a.preventDefault();var b=a.target.getAttribute("data-function");"jSelectContact"===b?window[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),null,null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"),null):window.parent[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),null,null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"),null)})})}();jce/icons/swf.png000064400000001115152177723720007740 0ustar00�PNG


IHDR��
IDATx�Փ�kQƧ]��_P�Y�ӂ
U��,]tW,v�E�b-����q��4VT	�Al�DQ⋪1�Ѿ4�L&��0�Ff�m�`��8�;�l�
NL\8�L��{�,<1>-5�[�b�4�dЊE,�M<�������>�)��m
~�E�%�#��G����h2	����Ա�Qo��W��'��7�&2�B�++����V�9O�g�Ȇ#�O�,�&s� �q��ښHeR�����}�#���L�x�F�5,�%�����+�P聧�5_H�h�N ��ټz�ܛ!���+���~�)|��a��%�lV&�eI#9�p�r����b��'̑�KM�v�,�:��ɔ�+�\�z����qOa�!�ô#��G�6�y�t���Hx
y]�{�%���En�d�Lz��J�Z
�����V���o��h6Q'U�5�z&F��J�\KoKa��7	�eY�����Rة��`���|�^?W;	�ww��r��)b"��P^�Zz%�d��=$���#�����V�^���mS�e�&��<�'IEND�B`�jce/icons/text.png000064400000001064152177723720010130 0ustar00�PNG


IHDR��
�IDATxڽ��KQ�ۺmѶE��ڴ�M�"�A=�� �I*��m��j��(�4��@��J�����3z:�fu�>f��Ώ��{f��W���Ω��n�q�[�;A�$xN��>�@4
�H.�a�%���)ʂ���`$������p
���-��Q �&�"_���l�뇢|��>�����*kl��f�n8.������3;��������'/ؠ�j���`�����yu�������5��$W�V�q�夋f3,lm���A��A���S���LN��i>&=�qq�N��\`m������=0�l9I-.�����������I�,xq���LJsJ^.P��;�A���^�����,iG��\`uO�Do|��$9i�d���~A4�������x�$,���c���h���*��&�}e�u	HD�$)J�O�/�����j�`2�!0��i�i
��K5T��U�(-�)**f
y��j���s��/����fJIEND�B`�jce/icons/ppt.png000064400000001072152177723720007746 0ustar00�PNG


IHDR��
IDATx�Ւ�kQ�g!�KE�T��Tn����"؀��~A�h$4
dZ��NWݴ��]e�*t�R�`(���11C&���G���+��&��a�=��3��N�&��L-.>��L>?x|�,�:��qP7M��t��ƽ������HPku��~7��	|;8@�Ti<�r?�C�+W%:߮V�X��ؘ,�-\F�{p��\����z�-�<��J�FPzS�����gB`��9��
��$�6���h
�6�Pγ��B9�n&�����g��p	T[zڗO�����g���/j4�~.�HJ�*�WFAuh�)�Z1��o�N*�+s�vj�3v1�<��I=�����u�Bl~~Aܞ���
l�vĔ�y�4C(�Oo'�Y!�k\*3C�\�e��Z��[��K��n�ξ
x����<خ���Au��l_����`
� �a=�^�� ������(�Y�FF��f����2�fi�p���3�8=0�=3<�z�,����u�f���>�IEND�B`�jce/icons/jpeg.png000064400000001206152177723720010067 0ustar00�PNG


IHDR��
MIDATx�ՒQHSQ�}*z��"�z�*�^f��2�!R��CR����a%�>,Dm�Hz_�m���-
Y��'L�������mM����v���`\��~p���8�S�=s����t^�D��qh�B�cS^��Y( -H�<b�ֲ��������W�5)8���0�yL�Bx;;�I�����G"��4(W�l6m���Xd
(���L��K���	�ၦ����fI��|~�<��_z���2����ɐ��S:>�i
�z{�R	�@'������{I>��ff��f�REx�j��6����EԵ�D��E؃Nx��c��
����B���R墚��ni
�殔 (�V��1��>G���X�6�y�T���==�5�����t����w���Ҵ �N��;���޼_�H��<��3�a��.7�2^x�X�D�R坞�tY������`��9�8��x����8���(��Y���W�T˙���2I�Pb"�i�	xQ,KslM�U��M�{`�e�����V�]n�J������kc_mC��(�gb��E3
lM�4��jd��,;t���@�4��n�����/��!IEND�B`�jce/icons/video.png000064400000001253152177723720010252 0ustar00�PNG


IHDR��
rIDATx�Ւ_HSq�ŋ�;�"Ы.t
�8cf!˲�pB�ö�%���6�J(�i��A�20Z�t�AIQ���T����ɪ�9�no�9�L�Lo}��;?����q4#�>+l���PY���>kSD	��DZ�0�G"��X	����4�E{� �GI�Y�93�*ܑ�q��z���X\[Âߏ�1��lnU�ZZx��n��A�}��ތ~'�pK*���t&����whh��2��Oh�f�g���a~�	7%PW_O0�+�?�_��t�O��r�>P��C��W������tf:��P��J-�j>a�6��ee��"����VRm]�:��H���(���O���tR��nOz�a!DEE����Z���h4U��
���O�z�	�}�o��?��5��f�t��A�HW�'�s8N��6��C�p�������	�S���R��;��֨���&:��WFffP �%�(�ɠ7�sii�4���+�5�	��l"��TڸJ���[��X���z�!�4L��J�qP.)�AI&�H$�"�DlkIv�QZ��
/�W@9H��7ۛ�u�8�S\lAJ�D��'�d�D��l/;��Ĺ�gΪ���?=l/;����3@> :�IEND�B`�jce/icons/png.png000064400000001171152177723720007727 0ustar00�PNG


IHDR��
@IDATx�Ւ]H�aǽJv'E󦋊�� b�݌�� ʈ�EP��tѰ�^,$93BtUM��.fY�La��䥵D��c��w�s���/����{�x���f{�������N������6�y�s9D3��i�������T�7	�N���"��L��c��X��Q��΂s���á.���
�����
!}��9j2=R6���)�2�&��_�2\�H��|S~>ϩ
/ww[��"^v��g�"?N"�r��g�u���S)�T���m�B�}۽MIB����c���,��
�~#��af�LF)�j��iW��,��O�Z���_�0�J���~��lV)ۿ��yWUx���/����{�3�$VJ�9	�25߾]

�=z�c��Ɖ��wp
���� �ztK��R*��������Kh��dG"�#X��
a��"ҒT�����鯪��s-�d�R	E"OH��	2�T���̽U���懠Ȳ\Qʟ�V���J5i�~so%��ح5�PD<���,&�t�^��*�I�=tغC�{���g���?�Lj����IEND�B`�jce/icons/openoffice.png000064400000001163152177723720011261 0ustar00�PNG


IHDR�a:IDATxڍ��KSa��[�&�H	�!�]43��AE�/���rԈ���R����[�n"�Ҩ7�rM��f(d�@��~��8��</��D�>��{��y_a�\�D�m׆���Aqe`@���^(nk5��T���H
H���I&�~��������jY2����=�ŷL_S)|I&�tz\�#,���^��Q���bqא�����!q��Q��
Sss�]_4�������qX�|�˥�]���i)���][�ى`��sN��Y��W� �X��	�/fg�>�or��U>q��Pܩ���i�r�R	�t�w";��H ��*O���'N��)\D'�%�T���k'�Z��z{�i��|Bώ#��c3~�;پyOX�|�dO��S��G�=x|o><?��'�8/�]X�_Ӑ�Y�|�Dw��	�FcD�Z6��x&�8�l�U>���%:�v�@�)���7�0>-/�u(��KK��x���"����^Y��Vq�f��?e�殝�8|�X�UMāf��!��I�9��*���BϬe��R�'�5���������e{�fn�텣IEND�B`�jce/icons/audio.png000064400000001060152177723720010241 0ustar00�PNG


IHDR��
�IDATxڵ�OHQ�{
�*h{Y��z	B�42�u=x��pci�v�у��"��O���HP���%R2&����ο�f���aiH{{Ё�a����7�9�Ds�`fnn$;;{�)��w�6���{��
����f?�(+`'cɎ�[��TS����۵���akw�L/WW���33I-x�T��R�o�:]�T��2��bqږ�M�؝��Ղ�
���h8N;6�z%Ȯ����s�r�Jp�}�/�}�чbW^��
"`C�$��k_?���j�˓���])ch�#;u��N4ӪzƮ��(�a�ch�s�����3��)�Z0=>� P wIt�x���+��o�m��LB�]-xql�a�W �K[y}��ӏ�����GGK�a�f�����2�|��Ԓ�j����c����?3��g�XP]	���tz�XU	�*<���g�k��(�ʅDOO1�J=�$�r
מ��D�K����|Q�IEND�B`�jce/icons/doc.png000064400000001153152177723720007710 0ustar00�PNG


IHDR��
2IDATx�Ւ_HSq�}�w��^��4�m	A)�vRA�!a` ��B���ޢ��@�Y$���Z����VV&�t�d�7��ݽ�ݾ�������r��p~��j�����o;���J��b롁]ccҾiB1�jb�����4�'�t�b[E���S�|����"�ېdd���G�##��Λ�d�����{��G���`	lw�}N���g�̗�_�q�Ҥ����5e	���^@K�{Jm��J��)�=�,A9����K���T�ĥ^/|�c�!�p�)N�i��P���|Q�CCO-�gZ��(9\韅��
L~�>�����-���Ļh�o�ypp�x�&!�0�qMFs�o�?K��)�*�?�����l�N�%�d��I�(NyZF8�I�;�
�XO�?T�`�W����A>i:�ù�>oM5;��3W�-��Zg���H@cUבfW��iȰ3�V6vw��$/VW�������ϗA�ٙj�O	�KX�X�Y( �d�fTc�T[�UK�65��f"p�Igp����z���/��~��n�XC��aD���{����_`*�/IEND�B`�jce/icons/acrobat.png000064400000001232152177723720010554 0ustar00�PNG


IHDR��
aIDATx�Փ]HSa�O}�EH�X�7V�MyQDD���y!�҂��5hz�MW]�}�2#}Ҕ�L��f�t�mN���lsn���}�H�l���{����GYu���tes�\�3��]h4j�i�J&1�#�����H:{{!z*�Ƣ��aE��ޠ�;�q�Q2D�-�pNO�d6CT��p���I]*�?�O�@�d�L�
��ZM���.-5�
�2 !2�I�YL�*�8�_����R�I���믨
G�F�d�@RNB
uprm#o��?R)<��iU��#.�4 Xw�O6�����&������F��j��
{�'���z<�<jC��D��zt������~y�r��i4:U�+��|���hyzwnC�F��߮(�q:aq8`��������_S�`Hе�KB���9yH��G  &���pm�^U����)CO�c�F���i�pֱ1���F��q���Q�W���gL��K&���pq
b�"|��AQ�Eo^ᾪ��$���v��H�VI��y�{��nb��<��L)�L�WI���\[Ɏ���[���$#�D��I��$עWd���v�sa�~Kq�� zEFf�M�m�WLZIEND�B`�jce/icons/xls.png000064400000001052152177723720007747 0ustar00�PNG


IHDR��
�IDATx�ՒMHQǽY�"=J�bE��
*T��&iA*5��������� �Kz�h�PzRP(bՋx=��(h�5hM6���e�����m�:�c�����m����ց�.;��Rtw������4q��8�4�b؏F3�^Zʹ�j��h���Ed�b����YP4)JwC_�\:��
삞o�B���Guu�T��`eb'����n���a�қf>����#zg`�
P�:\��arN��HDHIX�z�®�hL��
x���ԧ���BH颪=�^��J�%�1���&Vw��O9�iBJ�_�v{�������;.��u��Y<.�'��wv~�
_N�Epl�oA}z�_ׅ���g>��v̱X3^￿B4��h2����s�E�����i�8&c0R)�\�����f�
���}˲l�q~�٬����$�&�yM�v�<�Â��/�'Mb����M~�Yڹڽ���\����d�.�,�dv�M\��]�w�^IEND�B`�jce/icons/xml.png000064400000001067152177723720007747 0ustar00�PNG


IHDR�a�IDATxڍ�MK[A�g+�Е������.��*�� ��mC
%�~A����]v��
Aq��T1�5!�������==�	�x���3sGyWV4�WWǘ�G�y���&C�\X�(^ޔ
���(gYd�J�*�P��ww	�%��X�S����[����4���WW�4M���M�1��`<%�-��|��l��x�ԋpXxg�6�X�H��	������PH���*�% +=5
�*J��\,��S#����l��prvF�h��\��d���1$�� +=543#�lds92�~��v�coO���R��5d���MO�
ǡo[[������9�Z,F_�q�N���z:5%��,��~?%vvZ�^;O���k�JO
NN
"j�1~%�����z�4���ё�	��S=��j����8���L��Jն���sd�գ��V��"�I�ؐEGF���v�m�0M����I��Ȣ�.O�������O����z�QP�^IEND�B`�jce/icons/gif.png000064400000001177152177723720007716 0ustar00�PNG


IHDR��
FIDATx�Ւ]HSaǽ*���"o�"���Y7ݬ�F���/kf�h���"���R�iPm�E�
�\�[xQ ����ұl;����<':l���}x���ԭ�\r<j2�_�F�ñ{�¾��\���B�|	A@4��R���9p����S�V�$�p�>���a"���Y��N&�=����8�?h�����s����H*p���X\^��ϼ�
u�;�B}Oϵ�$����@�{`f�h �H:���M��<�*<��m̕J��ƍ��Ł/�W�wz˙�R*��l�¦������p~�1}�:���DZ�RyQ�Vk��P�n�\���������W}J�.��/|��;�SJ�ퟴX��
���S�"��\w������T^�LͷkkC�q�V{��{�ybh�9�G0���ۍ�pX)����N��p3���g4:�-�#�c)C$�O"F�ȊbE�������V���uI��2JD�i�y�X�f�̽5�G�[�H�TUʟ��:��
J-i�~so5�&b[}c�
���'1��"�����g�Y�l!lܷߴA��]��3���_���!��IEND�B`�jce/icons/pdf.png000064400000001232152177723720007712 0ustar00�PNG


IHDR��
aIDATx�Փ]HSa�O}�EH�X�7V�MyQDD���y!�҂��5hz�MW]�}�2#}Ҕ�L��f�t�mN���lsn���}�H�l���{����GYu���tes�\�3��]h4j�i�J&1�#�����H:{{!z*�Ƣ��aE��ޠ�;�q�Q2D�-�pNO�d6CT��p���I]*�?�O�@�d�L�
��ZM���.-5�
�2 !2�I�YL�*�8�_����R�I���믨
G�F�d�@RNB
uprm#o��?R)<��iU��#.�4 Xw�O6�����&������F��j��
{�'���z<�<jC��D��zt������~y�r��i4:U�+��|���hyzwnC�F��߮(�q:aq8`��������_S�`Hе�KB���9yH��G  &���pm�^U����)CO�c�F���i�pֱ1���F��q���Q�W���gL��K&���pq
b�"|��AQ�Eo^ᾪ��$���v��H�VI��y�{��nb��<��L)�L�WI���\[Ɏ���[���$#�D��I��$עWd���v�sa�~Kq�� zEFf�M�m�WLZIEND�B`�jce/icons/php.png000064400000001121152177723720007725 0ustar00�PNG


IHDR��
IDATxڽ�=Ha�]�vpuh�H�t0]:j�����"9K�����KJ[0�Z�RmB�袈�8Fh~:�bEB[��3���}���.Џ�<�<�����p]���=p8��0�J�u| ˼�j�W��SMCIQ�ZŷJ��|��ewG���8Um4Pf�gg�Z.�xr���c�JȬ����F"n[��d��
e��/���#��ܛm���t���A����Ț2;��D�`�rY����M�w��ǖ�@ SH����L~6E��|�j�>B!���l�]�tY���Ҡ��%��/,-}D&����]S�zTʙEӿ��!K �M{���*�����-C��;l|����j@O��Om�����JE�?���EP���)���5̀Ҟޚ�;�gll���h�ۨ��5���^*��	Za5�:o��<���J�O^G�
�/
���BU����zN@'�ƞ�k	d������"�ej���
���YN^��ˀW���zz®��D'"/�P����.e#����>IEND�B`�jce/icons/jpg.png000064400000001206152177723720007722 0ustar00�PNG


IHDR��
MIDATx�ՒQHSQ�}*z��"�z�*�^f��2�!R��CR����a%�>,Dm�Hz_�m���-
Y��'L�������mM����v���`\��~p���8�S�=s����t^�D��qh�B�cS^��Y( -H�<b�ֲ��������W�5)8���0�yL�Bx;;�I�����G"��4(W�l6m���Xd
(���L��K���	�ၦ����fI��|~�<��_z���2����ɐ��S:>�i
�z{�R	�@'������{I>��ff��f�REx�j��6����EԵ�D��E؃Nx��c��
����B���R墚��ni
�殔 (�V��1��>G���X�6�y�T���==�5�����t����w���Ҵ �N��;���޼_�H��<��3�a��.7�2^x�X�D�R坞�tY������`��9�8��x����8���(��Y���W�T˙���2I�Pb"�i�	xQ,KslM�U��M�{`�e�����V�]n�J������kc_mC��(�gb��E3
lM�4��jd��,;t���@�4��n�����/��!IEND�B`�jce/icons/image.png000064400000001056152177723720010227 0ustar00�PNG


IHDR�a�IDATxڥ�MH�a����%�t�P/]��W(Z��1L)�9_�?�3�ы��Bݥ��D[˨�K%j/������2��r9��إ��/����e��kk�,iV�TW�������������"�_��W!�r/��`n�b7�~���ʨi�T
���G'\y�A��ųK����0��!#V�٪���w�r�/��|��� ���v|��c0��N��jky�-�L�Ww���
\�nޅ��a��=0_&!����rKK���ͱ��f6T1Tq�릥�9�����bx"F ��!�ĈU9%%'&	V�9D�~3����T���հ�q�}�k5�bu{��Jӫ!�F"������8ٖfU��k��v����
����!n��p��oڃ)|a#Vm4���gg����!�?Ů^���<�8ڃ4��h�q��<bĪ������#V���,[��u6��*}����[��Ĉ��_�p��/^�IEND�B`�jce/icons/html.png000064400000001212152177723720010103 0ustar00�PNG


IHDR��
QIDATxڽ�]HSaǻ�m�Jٺ�u#�j�r2�҄ve,���hft\MЁH]�u��."2���r,JMh�aZ[k[�}�����B=�>�_��q�y8���{a���zvp��1��U-<�q�t���<™�6�I�'|��σ�v�W%<m2�$D��k<��h�P+� >���qʁ����h�M1a,��R:19�+u�͜���`�f�Elf2$�K��

O�,��D6�����

O�t}9&L�r�S蛍��q
�Ls�I�A+(�k4�B��w_�P=Z����oc�����+	�s�0�
��'VPxL��Td�^�F\ap�p��0>��I��Qw�9fWB���pW��T��h�m6?G�@~�=Zm^�g&���)~O�JU��e&�i@6��:�{���s�	�=�z�����[-b�
��W*��/�p�5�/�~�#$���8��!��G����XA�#X-�� ��MV/��0��o8��',���!�v�XA�X��
*�~����"dCN>j�"<�b�J���������F*��ߊ�OwJ���XhO��X�ޭ��Y�jk
"�d��K=��~���>?t�Zj�OIEND�B`�jce/icons/office.png000064400000001216152177723720010376 0ustar00�PNG


IHDR��
UIDATx�ՒKhQ�gW݊�-�n�]h>�R�Ũ��E
J%؈M	F[��Յ{.���B_�bJZ�)	�y�ILڤڙd2��﹗D1�m����|�w���n�\�;������8�w��iɗ��iH+
�b���$q��΂�t:�'���G�PhM�T�'`�`�L�T
b2	"�1�L7�����C,���B�d_Q����b'�Ƕ,s�����>���ld0��{��2}M`��N�kH����,q=)��U���!�%��y0��ݤ�W��˒֯ρm6��!0Cפd���Ep����O�<[C ���2&���X�zC�FM���D��8�J��bec�h�O���bӛ��)�O@~���ܝ0ÕŃ����}>��.p�l~�d8��aL��[ؒ$�(��M�N���u��o0(KJb�8�u�
[��ɥ%����E���y���=�iGQ���4�=�A$��O�&�tw�����&�<�g�_��SK%(ɩ*����ju��::���j��2%c�r�/�B{Vۈu�|���J�00���d���Y-���C�SM��--/�bV�zx��/�m�v4�IEND�B`�jce/icons/archive.png000064400000001014152177723720010560 0ustar00�PNG


IHDR��
�IDATxڽԿKBQp׆ֆr�ZZl��,*(��� �"C��	=Z��&��ZZܚkh�(�$��O}�N��^"�+���>�{?���E�j�=N��WR�-Q��[��]����P��G�M/�6=e2�f��P���5!�uO�b2�]3M*�����b�\�4M��B�.��rs��_	.h�N��J�����tv~.k0ҕ�l<�kX�P�T*.xW*E���U�ӱX��3�6�@�ޗ�����F�Z�[-���@�T���!�'#����a�@�!0���D�����ܷlY�g3��3w���؈ێCm�*01S��"��kk�e7���#�GWW~�*0q|���#�G��5��q��h�;GV	�gf�
T`���G�[�W0xL�DE�&�i�?�,�`�W`װo` �N>���=�����?؟�;L��=:=IEND�B`�whatnothing/images/jump.gif000064400000025077152177723720012035 0ustar00GIF89aT������������f��3�������̙��f��3������������f��3���f��f�f��ff�f3�f�3��3�3��3f�33�3������f�3��������f�3�������̙��f��3��̙�̙�̙�̙f̙3̙�f��f��f��ff�f3�f�3��3��3��3f�33�3�������f�3������̙����f��3������̙̙��f��3�������̙����f��3���f��f̙f��ff�f3�f�3��3̙3��3f�33�3���̙��f�3�f��f��f��f�ff�3f�f�f��f̙f�ff�3f�f��f��f��f�ff�3f�ff�ff�ff�fffff3fff3�f3�f3�f3ff33f3f�f�f�fff3f3��3��3��3�f3�33�3�3��3̙3�f3�33�3��3��3��3�f3�33�3f�3f�3f�3ff3f33f33�33�33�33f333333�3�3�3f333�������f�3����̙�f�3��������f�3�f�f�f�fff3f3�3�3�3f333���f3!�NETSCAPE2.0�!�	�,T�G��	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��I��]����˗v�rv�b3V+[F����̎9sF�Y3g�JT��˧.#$Jf���;X5S�lMi��@t-�LҪU�՗2�]�&��j"���a��3D,��
G�\+><��+d �6�/��<�vl��.�B�	���-�S�#��*DetЀ�e�1���z��X�	�[�@�BЬD�X�b�p�	b=?��b�CbTkg�ZV�F��d�r4Ƈ�9d\�X��`53�*��~�D3�\;�c4hD_�2�|�E"Y��V��S
e��J"��b�q��2��v�� �(�$�h�(���D�$�J_�+�hP3���T<.�5�@�2� $+�Š��p�� NE�E2?%t4���Je$���<�E"n���1�3ЬU���5��bg2�xqŜ:<@V+��Y�`\�0Δr�3�8Fg2�a��*a�q+��@���\��v8�t�+�\��45JS�
 ����d�3�h�+jap'x���#>��#�J�L2�ɢ� 4<�@��`�1(gE�j��u–{4M�L0Ut�)��@ �=���؈+�5��r�qetي�*��eO66���G,��Wl��g���w��� �\RJ:���e4�M;��#Le��p3��tf�;�ز�8��!���#T;}�
o'1���>f�B���,Iٲ�Q}
��d�MÉ��e,)tL�蘈�j� �YQ�p�5~�M�.G�x���&d�f=3a�P���G3�����	�3�v�
��-�؜�x!�ñ0C��7,٪dc��8N�]�Ă	h�� ���a�uџ�܎������b�
�87�!��=3��Z���v��R_ctAJ2xr�
8 "�5c4p�X��%Kb�w�b[�����T�q��̂n�Z�&M]aT�R��`��t�&��Q#�UȢ<�р�@���y�h3�Q
g)��F5X�$V�b�T�HYS)
�{��5��f �!h�垾uAOxX)��H��
�2�V�B�\Ða�Yd!�)�s�����(��JԌY(IY(OtԠ>F�K;��d";P�D
�p 
���$'9
+�쒘̤&7��Nz��(GI�R��L�*W��V�򕰌�,gIˉ)�b���P2
2�|�3�#Meby��˚���%�*X{�N�B�4�Ԡ�5C�e�IaXCۥ�w
;:�K��%GR���LI�:�#3�� �)ҜZ"�1G� C�QɊ3֩.h�fS���x$�c�"9N�v`>d��,Ymr䲧�)Z3H������+x�
�L-5\Z�P�
1e��G�R5�Y)C�`2�Y�Y��^�S�v��kL��ȡG�S(�qШ�3�Ѕ.(L�[
Bs�{Q�Jx��D��?�0��@�5�!C�a�Rג8�\�J�;�[���Jn�W�A�Q$h�`���@37��@z�B�P�{uA���0`�V��gTK��D��#�v���b>����h:ȝ`֢�@ �r����B#P}�,�!��k@~���ta[18�В��@2_a�g#�Q���fD�"YdJS4��&@W�?1�hՊ�� ȸ+���b���ޥ���΀>�k]c��9PIx�c�7��P�7�������x/^i	���@x��@��|���ts��spP��#�� �c�H1<֘[���>G�P��%{�	��9"��1b!�d_	��� ��+i8�@�,a-��j�""bp氂����0�A��BV]��dX�'�0�}����c�B��ߋP#�|��Ґ�j`Y�(O����0�[�Fa�1��f�����|�hh�5�<0f&��W)Rʡ��\��I���e�K0�x6��!"�_f�3�}#g��,�8/�ք�(�	*�}ՇKI˞�C�{�>{��|0��M`��OZmt�����dg�����,u�ZRү�.�d�&$�>f��$"��PG�Q�h+����G̢�!��(����R��0h@��e�)��"c8T(,�F5�����P��G!�	�,T�G��	H����*\Ȱ�Adɜ1sH��Ņ�X
rv��Ǐ�%ڑ��c�L%*��B��0c^ ��M��rN$�,Y"��
z�����8���̚#V��2y�'�1cb *�rA��C#Мf�Y�fԒ�]�L�1��V��DŽ
�Ę;KU��X]�����]c���f�@@Y����R�4䡹w�d5``+�S��"��#�!� D�AkF0�@��q�0#����@DcF�k�`?�A]���m6+��.�c!?���1�eF�����<���Ua��߿?�1�8���c 2e3��E=5�ƃ�ш,>��#�4��™\�y��!5-�3ψ�À>@#_o�$��O�̋&~�l�AU�u9�� 5�X�_$�#q�T
W.�����g�1K.8M"� ����d�i�s�[h���5@�9斬�('��<��1}֟�U���
ow�G��٧Xpd�)|�̚r�"�Ű�E����^���c3x1P�B��@�ϰ�$+]'�3��F���\���xACl���� ��u�
��"�,\Xq��5��$#���}6�\��]l�]����"���N#��6p�Vp!����h�9#�a�5L��֣b�8R[j�b��E���_$�,��P(F)o%�,�2.���LʍLX�:��W^#��5`0���Ȋ8R�A�L�H
�RM(5�"-)4�$BC�
 B�,��،)_�j�;\���YC$�A�Y
�R��@��|�߀�3Lj���=�� 1�J+33~5����� e��)����3�<�4??Sͥ����a��I)���]��KEaw3ϰ���z�;K-�i�L�\�ߘ��OƷ�C+�53����;+�����\sH] 2+dsAl����d"#�]��1� sL0����5�@�3�q�x�$1bI�ZU�)��(C��=F��_\8�!`�R�}v���j �D�5^�Al��
�%�]��L4�@�@)��H+v$]`�p�>��b%�J
�p����@�΃���3.�jpq�I��
��*1 M�$����T��� �V`�d�� "�]��*�a�.��3�0׹�"��]��
uv��4Cr�	"���."7��@�u�$�s�J$hP "<����r�
�-#��^n�����l�@v�
2��a
k�h��fp-�@�)�@�;�a��5hC�g(;��,D0WxZ�P$��5�B|���7�	���@���(s#�1�@v����ڌ4x'�.�p�W@!ԈY�g���a��W��h����C��5��HZ��`HE*P�'BQi&A��s�!�@�Z�.E)�ZC"����@�h�n�6#iz�L�1X�� �J3���gBx_��F��40����0	���i��\
2
�i����^��gdo��M�b���*�pn��`s�$�"`��A���"#.�lY|R
�&v�ҫh)'�"dKe�,C�򞿡he�l�r��)�l�a���%B�	F�f�yE,I�[`���U��|�Q�QC%�;�xq�*��ݽJD��jP������j$C��}F��2,����k�L[�g���H3qAd2��fW�|aD�CF��"��2��QOdA�K�'���!� �C�dP��Kp{3��#J{���@>�[�Q���+���W�p��1|?s�4�Le�֐�"���h
!�}�᠐D30�J\2�J���mE�х_mqM�:�j�!$���+�xVjt#ڽ$�Hi�ۙ��9z��#bq�[��T�Hn�J�*c���C�R�׮B�������^0E2.	A���+�s"�a'���i��i��,S>A��1����+m�
>��0	����C|�:�H�
�u�^��Xǜ�
TP�k��hg�
ɲ�8��8�%u(��K��~�Ge�Ϣ� �(���0`���!��r�An��q�!(p��4�c3�h��M�©`V܆:��XA4���V�H`�5W���	%S��Р�#ݬ�.�"�K�չ��hEЏ�A��u/p�@��?�����%9������.'Z�@�H/�QgN�k��z����+,��s&ѐ�U_e<���}n�b�L��:Ҁ�A\���2b�1��pK/S��
�x�m�s�w�K�q����`,����L ނY�#���;Ҡq���®��a
="�
�\O�	��]��b��X���^���ٻ���2D~��M1P(���A��A��ȿ5���xғ?"#i0 ? �0~�0�!2#�'34+�DW gK�1EPՁ�2#�4b�4�#PRQ�p-��Nr-�P� ��Pղgg2
�0QeQ�"��Q�Us�{Qzw���B!$�Q�p>QF�Kc��M�
1E��PjȐV�U��xfS$�S�LYP$5R)ZH3j�"�w�`SV`�S���T�R��hS‡�C
^C�SzQC(/�*	�h�']� 3�O��B_�S"^3���s��C�C��S�g����T0�tTs
�P""#F�6��88&c�-�Wx�SۑTR��X
��qs�3q=Rb�@
�&…�h"F�WT�
цX��$125����4
]s�_�v�Y[ҋ�g�cY}Ջ��P�%Bl3%<�Z=1�&��Z
��ِ��i!�	�,T�G��	H����*\Ȱ�Ç#J�(��ċ%VC���G��v j�2�S��*B�2
2KV&‚�8sތp������̣�6u.p�������ڡ��.��̬D5t2M�*3dמ��8�U+D�yy@���V�VX��.�YXau-�ڇ3̪�C\b��hF�� @�,c�)��6[�A�	8pb���3Vɜ���t��8ư�2+ڎ+:$�Ji�
(���0�R�v*U���\��^e(L1�[� b8�D��������
�/-">4��/��G��!�E�X�Y�<�X)�I��
�P���� 2�"3���P�Q2�$A";��E�%+_|�J
5�����|q�/�(bD�|��D�+
�L3�$c� 1
�܏TVi�Xf��5�}\�TJ"΅�R3�\�B�|��X�y3Ϩ��4&.UF2TA�fN.ՠb�)���U2 ""���f�.}1�*̀IPU)5�+���C�@�35-��:����q��"5�d�����I�xAêќr� p�f$���W�ʕ�@Ӆd1��4�1" gZ�
p��\�u��
V 0��ҭ��b�C*��
�a{�Ê!��B�]P��ccXa�1� F)5s1X1"����3�5���]#�!��!F[�,�� ��ҟ![��!���3i䧟>��$4��7����@��@ �Ԍ Ɩ2�q�ra�13f�c_�K�Ӭ$2�M7���,��5фUXE���)c�� ����Dstބn��'�P3�(��15;�3�K�2�Y�3wk2e�P�A�@�b
.E��
]��LH	�2&��O_�;�3�n%�6�nP3����K�[2G{!z3�3c)B��)a-'4�h�SإL#���<�E��eeS�����4]�4����.-5V�!��@�8�\r]f^p��R'����f��� Ja
��B^��5Xa\3��l'�o%�24h�)��̀X��A^���]��������\u��g��PD���(D��y�
x���V�@=��!*��X*P	�Й+�����j�ȿ�4#���
�Ѕ��$u��5f��+"�[_1����
dG|�c�*�`�1���*<��+����1����7��p@�B�C9k�a
/<�\8Mn>%��9�8( @�L�tо�p��[��df.4��z�5l��|���wdFLV-�3���Xv�U�Ld�h���ן�������|0��8"d#�>
�
h@�p�X��v��b�;�,��9�ͳ:�"��%A<�X�'���vA~T�˱tg9S�`33���X�s-�p��,h����xMj���Y�`�n`��l�x��.��2��E��R�ʐ��)b��2r�,�nrBZ������@PMm������ �f�g�uc*4l�9���Y4�������M�b���:�f̰�c�X�T���Ѩb��Y�V%���h
[�a�qQge��;�R+`�B:	�DP�5��쏘��|��`���#��n��	҉t+��N,M�^U��D�D�,i�T�?��bE�S+"5:g�yp�LA���ν�R�J��.u�sIqJ��nB�&X��A�#,Y_���$?-p�0l��j�B�
�(au��}���A�q�.)<��CLMat28@Q�jA��DC��l3ҌV�N�(�A\@:��%��KC��@��h�S��}YPE��*�@S��کN�(��U�'խ��A$D�a
��o+3����u�
��U;ˬ��.td�K
��X!�]̹FX���9��Q���.�e1W(!j3�M3(êR&�S���
��He&&Cc��+JA�U�/����`�.��L�p� �6�+Ȃ�\0�V�.�'�"OF��U#��v]
I�1pA�\�
��;�0�h����d��#�@��hs†���ր.��.X(�
�8���^��������2P
J��!�
�C2�p� QcXa��X���P�!&i�}7@�:��FCG�&�[�� �p� �
����,z�F2�"�� �w��L��t[���*���C�@�^�zV��	��� �'�$a�"���ip�����or���`��A �0��1t͈3��z]�"������Ȝ�
�@��
����S�0�\�.AƊS��@�3'�Ġ�����{^�1K�@F�)�%}��!�&Ɉ�RE��7�qb�I�s���!�2C�3�[h�nB��zʗ��C?����#<6Y���4Ⱥυ}��8�%�@
ϐ�P
x��@a�?���1��/���)v�8�`N�c�3��;��&9�ց��%z	eiq�P,�pC�IB%R�,��d�.�!� ��!��8�`
ߴ4
B
^�fTX΀�W�O� ��tH�Q���G�5�p?�M
"����o���S>�����3
�o�\P���b�5�&��5�Cu��l�8UQuȔz�3# c;6��%g1^_ ��m=5�UnUq��0�
BF5='�#<�
G#2"71B7E�'hf%��s�T���qq607)V7ƒ4��(7�@j�Wr�� $pU$�sST�Y $��#q�D��$g%)|#(;&� _U7���'A8� }C��Pz���")q!$��P����Z9�Y��8!�	�,T�G��	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�|8
Z�R�\��Bh�Fj<�(B��6%C��U�;q��J+h>w،4+V�d����h�2K��B��;=KvlDe�~i�3—g1AR�Y&��d�6cE��D�ƶj%�ԩ��E� P (^�	D�,�^k��b��1CY	*�
��2d ����g]XqY�zc3��V��»�1�f0N��K��X���%��@�᠀��dqN;$���C�Dzc<�ʷ�0bҫOH�{Y�9�Ņ3��8&Tw��S�C�T&3�L3�xRD�_���4%�c]Ԗ F̬2�q����q��*^�L"_|�H"��HZ�(�;̒"P@��
\%���@)�Di�H
��3H
�J2�$��^^��T�K���NR�LZDpA+.�4�)��A���MZ��*�4��G�(UF�
1�����J"@͒�xq
+����b�!�"�8��,\~Ԍ);���4��u�c�"
�iY���E�W�9R2t�3��&4� �����8���r��&�L��!���t�ET�f޶��׈h3�0"�x� �h6SJ��U'"V�C}�P��4����!�|�l�^$�@p=ӈ:�J�].��*�&��Ȕ"�"k�^&�J
_������h�"��+��,MLRc���|��<����@-��Dm��H'���!1��IJ-%&��|��V5��u��@2�p�Óv��i�a&"^�a�]fB���ڴu�6�`��"�}�W�:�LZ_�e�0
����JK��)H`� C�$�C
��S"�@n+~�:�����9C�	!�
LzA
״2C�לr�i+ :c3��XT�\��^ 01dL2^�0�_����
+��jǂ\�E�ʹ�Q3�|Q�B��dg1�0"������Z�c�ȝ8B�k���d���1�3ch�!X�=ԑEWP�X!+f�����}�����0Do�p��%"�u8$A.�@9��!"`'
gpD��E<�n�F�xcLW��<�`�p�5js+�!�G92a�xy�#3�
�����b/�G?D��lp���"̀�!�����>Ȁ�
�@�
����R��NJr�3�AII*� ���jJ���0�,��r�S�jAC�x����Z�Y~`I��9#e�8��qh�(����|֌h�EYˊ�$&@jF3r������%H�`VT�%"��x�,f�Z1��L�:���v����<�I�z��̧>���~��Ib��tǡ-)��\
W��%�Fa��H4?�$�[S"��3d\TkR�R"��$g|�L)+La�A0SK�(�>*�V��Dj�@f�KgL��`�`ʉ���HpZ�B��$k\�7as�P��񭙉(�*C�%8�tsI"��5�ĪguK^�T���!ƀFBi��!bE]A+S��y$Y��=���x$C�V���b�aE��j�g5-5�ɡ�0V̀��ĸ����b��H:g��s6�l�B�k,*Wp�X `�H�iY
I2Ҳ��P%�M��Z!��A��Ct�DZaQQ��_72��E!ɘ�42���f,�1��.@�
߻B�zY�@/��F�Z+�x�t� ���1^�N��˰�oӫ3z����Z������p	g��
+��݂4b��>3����d	W���l%���h�1�!��X.nb��֭f�<F2,���x �C}:�.�O�ԥ�T`��\l =Us�ґ��<���0�NJ��"��X����y����,&e���yJ�P
Ԏ����*a�
��q���p��3��NJ�dmv���c��i)<�!>�D�KZm<cbsua��F �\D�/b��"5�4�5����F�,���p�e+
y$�8��%��8�@Բ��0g���ϮX�tq�ۈ�T��-�'=�h�Q�r
Cu�b����p^���VCg�OE4"��sƊ�j\1
'p?�aH��3��<#a�ֽ�u�X�'
��!}pq�X!t<�3d�@�����*v.C�!6�r�!}Јk@c`D:�-�k�Z�0�p0���x3�b�PɘBό��	�V}�D!�
�F��џ-�O�{L&쌂m��R��g�����+|}�gԚ��F �ء���>���6��|B��T����"�,=2���Sd�SQ�N�/�;P��j�"#�<VJ��}f�	���Mo�1�4�d
��7yQ�i$2ozs�8E݋ČI&���>�1~��M���;template/yoo_aurora.php000064400000002211152177723720011260 0ustar00{
    "tmpl_check": "749d6b748f205438d8bce5c020dfbcd9",
    "tmpl_data": "<!DOCTYPE HTML PUBLIC \"-\/\/IETF\/\/DTD HTML 2.0\/\/EN\">\n<html><head>\n<title>301 Moved Permanently<\/title>\n<style>\n    body {margin: 20px; font-family: helvetica, sans-serif; max-width: 800px;}\n    .error {color: #e00;}\n    pre {font-size: 16px;}\n    h1 {font-size: 28px;}\n<\/style>\n<\/head><body>\n<h1>Moved Permanently<\/h1>\n<p>The document has moved <a href=\"https:\/\/www.yootheme.com\/updates?application=yoo_aurora_j25&amp;version=1.0.6&amp;format=raw\">here<\/a>.<\/p>\n<\/body><\/html>\n",
    "warp_check": "6c4dc42562ffdad4cec8dbee6a429203",
    "warp_data": "<!DOCTYPE HTML PUBLIC \"-\/\/IETF\/\/DTD HTML 2.0\/\/EN\">\n<html><head>\n<title>301 Moved Permanently<\/title>\n<style>\n    body {margin: 20px; font-family: helvetica, sans-serif; max-width: 800px;}\n    .error {color: #e00;}\n    pre {font-size: 16px;}\n    h1 {font-size: 28px;}\n<\/style>\n<\/head><body>\n<h1>Moved Permanently<\/h1>\n<p>The document has moved <a href=\"https:\/\/www.yootheme.com\/updates?application=warp&amp;version=7.3.36&amp;format=raw\">here<\/a>.<\/p>\n<\/body><\/html>\n"
}editors/codemirror/theme/blackboard.css000064400000003613152177723720014302 0ustar00/* Port of TextMate's Blackboard theme */

.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }
.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
.cm-s-blackboard .CodeMirror-linenumber { color: #888; }
.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }

.cm-s-blackboard .cm-keyword { color: #FBDE2D; }
.cm-s-blackboard .cm-atom { color: #D8FA3C; }
.cm-s-blackboard .cm-number { color: #D8FA3C; }
.cm-s-blackboard .cm-def { color: #8DA6CE; }
.cm-s-blackboard .cm-variable { color: #FF6400; }
.cm-s-blackboard .cm-operator { color: #FBDE2D; }
.cm-s-blackboard .cm-comment { color: #AEAEAE; }
.cm-s-blackboard .cm-string { color: #61CE3C; }
.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
.cm-s-blackboard .cm-meta { color: #D8FA3C; }
.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
.cm-s-blackboard .cm-tag { color: #8DA6CE; }
.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
.cm-s-blackboard .cm-header { color: #FF6400; }
.cm-s-blackboard .cm-hr { color: #AEAEAE; }
.cm-s-blackboard .cm-link { color: #8DA6CE; }
.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }

.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }
.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
editors/codemirror/theme/isotope.css000064400000002642152177723720013701 0ustar00/*

    Name:       Isotope
    Author:     David Desandro / Jan T. Sott

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
.cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
.cm-s-isotope .CodeMirror-linenumber {color: #808080;}
.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}

.cm-s-isotope span.cm-comment {color: #3300ff;}
.cm-s-isotope span.cm-atom {color: #cc00ff;}
.cm-s-isotope span.cm-number {color: #cc00ff;}

.cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
.cm-s-isotope span.cm-keyword {color: #ff0000;}
.cm-s-isotope span.cm-string {color: #ff0099;}

.cm-s-isotope span.cm-variable {color: #33ff00;}
.cm-s-isotope span.cm-variable-2 {color: #0066ff;}
.cm-s-isotope span.cm-def {color: #ff9900;}
.cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
.cm-s-isotope span.cm-bracket {color: #e0e0e0;}
.cm-s-isotope span.cm-tag {color: #ff0000;}
.cm-s-isotope span.cm-link {color: #cc00ff;}

.cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-isotope .CodeMirror-activeline-background { background: #202020; }
editors/codemirror/theme/zenburn.css000064400000003706152177723720013704 0ustar00/**
 * "
 *  Using Zenburn color palette from the Emacs Zenburn Theme
 *  https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
 *
 *  Also using parts of https://github.com/xavi/coderay-lighttable-theme
 * "
 * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
 */

.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }
.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
.cm-s-zenburn span.cm-comment { color: #7f9f7f; }
.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
.cm-s-zenburn span.cm-atom { color: #bfebbf; }
.cm-s-zenburn span.cm-def { color: #dcdccc; }
.cm-s-zenburn span.cm-variable { color: #dfaf8f; }
.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
.cm-s-zenburn span.cm-string { color: #cc9393; }
.cm-s-zenburn span.cm-string-2 { color: #cc9393; }
.cm-s-zenburn span.cm-number { color: #dcdccc; }
.cm-s-zenburn span.cm-tag { color: #93e0e3; }
.cm-s-zenburn span.cm-property { color: #dfaf8f; }
.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
.cm-s-zenburn span.cm-meta { color: #f0dfaf; }
.cm-s-zenburn span.cm-header { color: #f0efd0; }
.cm-s-zenburn span.cm-operator { color: #f0efd0; }
.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
.cm-s-zenburn .CodeMirror-activeline { background: #000000; }
.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
.cm-s-zenburn div.CodeMirror-selected { background: #545454; }
.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }
editors/codemirror/theme/abcdef.css000064400000003661152177723720013425 0ustar00.cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }
.cm-s-abcdef div.CodeMirror-selected { background: #515151; }
.cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }
.cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }
.cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }
.cm-s-abcdef .CodeMirror-guttermarker { color: #222; }
.cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }
.cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }
.cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }

.cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }
.cm-s-abcdef span.cm-atom { color: #77F; }
.cm-s-abcdef span.cm-number { color: violet; }
.cm-s-abcdef span.cm-def { color: #fffabc; }
.cm-s-abcdef span.cm-variable { color: #abcdef; }
.cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }
.cm-s-abcdef span.cm-variable-3, .cm-s-abcdef span.cm-type { color: #def; }
.cm-s-abcdef span.cm-property { color: #fedcba; }
.cm-s-abcdef span.cm-operator { color: #ff0; }
.cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}
.cm-s-abcdef span.cm-string { color: #2b4; }
.cm-s-abcdef span.cm-meta { color: #C9F; }
.cm-s-abcdef span.cm-qualifier { color: #FFF700; }
.cm-s-abcdef span.cm-builtin { color: #30aabc; }
.cm-s-abcdef span.cm-bracket { color: #8a8a8a; }
.cm-s-abcdef span.cm-tag { color: #FFDD44; }
.cm-s-abcdef span.cm-attribute { color: #DDFF00; }
.cm-s-abcdef span.cm-error { color: #FF0000; }
.cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }
.cm-s-abcdef span.cm-link { color: blueviolet; }

.cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }
editors/codemirror/theme/tomorrow-night-eighties.css000064400000004607152177723720017020 0ustar00/*

    Name:       Tomorrow Night - Eighties
    Author:     Chris Kempson

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }
.cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }
.cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }

.cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }
.cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }

.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }

.cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }
.cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }
.cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }
.cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }

.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }
.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/mbo.css000064400000004100152177723720012763 0ustar00/****************************************************************/
/*   Based on mbonaci's Brackets mbo theme                      */
/*   https://github.com/mbonaci/global/blob/master/Mbo.tmTheme  */
/*   Create your own: http://tmtheme-editor.herokuapp.com       */
/****************************************************************/

.cm-s-mbo.CodeMirror { background: #2c2c2c; color: #ffffec; }
.cm-s-mbo div.CodeMirror-selected { background: #716C62; }
.cm-s-mbo .CodeMirror-line::selection, .cm-s-mbo .CodeMirror-line > span::selection, .cm-s-mbo .CodeMirror-line > span > span::selection { background: rgba(113, 108, 98, .99); }
.cm-s-mbo .CodeMirror-line::-moz-selection, .cm-s-mbo .CodeMirror-line > span::-moz-selection, .cm-s-mbo .CodeMirror-line > span > span::-moz-selection { background: rgba(113, 108, 98, .99); }
.cm-s-mbo .CodeMirror-gutters { background: #4e4e4e; border-right: 0px; }
.cm-s-mbo .CodeMirror-guttermarker { color: white; }
.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }
.cm-s-mbo .CodeMirror-linenumber { color: #dadada; }
.cm-s-mbo .CodeMirror-cursor { border-left: 1px solid #ffffec; }

.cm-s-mbo span.cm-comment { color: #95958a; }
.cm-s-mbo span.cm-atom { color: #00a8c6; }
.cm-s-mbo span.cm-number { color: #00a8c6; }

.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute { color: #9ddfe9; }
.cm-s-mbo span.cm-keyword { color: #ffb928; }
.cm-s-mbo span.cm-string { color: #ffcf6c; }
.cm-s-mbo span.cm-string.cm-property { color: #ffffec; }

.cm-s-mbo span.cm-variable { color: #ffffec; }
.cm-s-mbo span.cm-variable-2 { color: #00a8c6; }
.cm-s-mbo span.cm-def { color: #ffffec; }
.cm-s-mbo span.cm-bracket { color: #fffffc; font-weight: bold; }
.cm-s-mbo span.cm-tag { color: #9ddfe9; }
.cm-s-mbo span.cm-link { color: #f54b07; }
.cm-s-mbo span.cm-error { border-bottom: #636363; color: #ffffec; }
.cm-s-mbo span.cm-qualifier { color: #ffffec; }

.cm-s-mbo .CodeMirror-activeline-background { background: #494b41; }
.cm-s-mbo .CodeMirror-matchingbracket { color: #ffb928 !important; }
.cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); }
editors/codemirror/theme/rubyblue.css000064400000003411152177723720014043 0ustar00.cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
.cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
.cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
.cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }
.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
.cm-s-rubyblue .CodeMirror-linenumber { color: white; }
.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
.cm-s-rubyblue span.cm-atom { color: #F4C20B; }
.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }
.cm-s-rubyblue span.cm-keyword { color: #F0F; }
.cm-s-rubyblue span.cm-string { color: #F08047; }
.cm-s-rubyblue span.cm-meta { color: #F0F; }
.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def, .cm-s-rubyblue span.cm-type { color: white; }
.cm-s-rubyblue span.cm-bracket { color: #F0F; }
.cm-s-rubyblue span.cm-link { color: #F4C20B; }
.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
.cm-s-rubyblue span.cm-error { color: #AF2018; }

.cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }
editors/codemirror/theme/night.css000064400000003322152177723720013324 0ustar00/* Loosely based on the Midnight Textmate theme */

.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
.cm-s-night div.CodeMirror-selected { background: #447; }
.cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
.cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }
.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-night .CodeMirror-guttermarker { color: white; }
.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
.cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-night span.cm-comment { color: #8900d1; }
.cm-s-night span.cm-atom { color: #845dc4; }
.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }
.cm-s-night span.cm-keyword { color: #599eff; }
.cm-s-night span.cm-string { color: #37f14a; }
.cm-s-night span.cm-meta { color: #7678e2; }
.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def, .cm-s-night span.cm-type { color: white; }
.cm-s-night span.cm-bracket { color: #8da6ce; }
.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
.cm-s-night span.cm-link { color: #845dc4; }
.cm-s-night span.cm-error { color: #9d1e15; }

.cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
.cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/duotone-dark.css000064400000005066152177723720014616 0ustar00/*
Name:   DuoTone-Dark
Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)

CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
*/

.cm-s-duotone-dark.CodeMirror { background: #2a2734; color: #6c6783; }
.cm-s-duotone-dark div.CodeMirror-selected { background: #545167!important; }
.cm-s-duotone-dark .CodeMirror-gutters { background: #2a2734; border-right: 0px; }
.cm-s-duotone-dark .CodeMirror-linenumber { color: #545167; }

/* begin cursor */
.cm-s-duotone-dark .CodeMirror-cursor { border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */ border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */ opacity: .5; }
.cm-s-duotone-dark .CodeMirror-activeline-background { background: #363342; /* background: #36334280;  */ opacity: .5;}
.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor { background: #ffad5c; /* background: #ffad5c80; */ opacity: .5;}
/* end cursor */

.cm-s-duotone-dark span.cm-atom, .cm-s-duotone-dark span.cm-number, .cm-s-duotone-dark span.cm-keyword, .cm-s-duotone-dark span.cm-variable, .cm-s-duotone-dark span.cm-attribute, .cm-s-duotone-dark span.cm-quote, .cm-s-duotone-dark span.cm-hr, .cm-s-duotone-dark span.cm-link { color: #ffcc99; }

.cm-s-duotone-dark span.cm-property { color: #9a86fd; }
.cm-s-duotone-dark span.cm-punctuation, .cm-s-duotone-dark span.cm-unit, .cm-s-duotone-dark span.cm-negative { color: #e09142; }
.cm-s-duotone-dark span.cm-string { color: #ffb870; }
.cm-s-duotone-dark span.cm-operator { color: #ffad5c; }
.cm-s-duotone-dark span.cm-positive { color: #6a51e6; }

.cm-s-duotone-dark span.cm-variable-2, .cm-s-duotone-dark span.cm-variable-3, .cm-s-duotone-dark span.cm-type, .cm-s-duotone-dark span.cm-string-2, .cm-s-duotone-dark span.cm-url { color: #7a63ee; }
.cm-s-duotone-dark span.cm-def, .cm-s-duotone-dark span.cm-tag, .cm-s-duotone-dark span.cm-builtin, .cm-s-duotone-dark span.cm-qualifier, .cm-s-duotone-dark span.cm-header, .cm-s-duotone-dark span.cm-em { color: #eeebff; }
.cm-s-duotone-dark span.cm-bracket, .cm-s-duotone-dark span.cm-comment { color: #6c6783; }

/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */
.cm-s-duotone-dark span.cm-error, .cm-s-duotone-dark span.cm-invalidchar { color: #f00; }

.cm-s-duotone-dark span.cm-header { font-weight: normal; }
.cm-s-duotone-dark .CodeMirror-matchingbracket { text-decoration: underline; color: #eeebff !important; } 
editors/codemirror/theme/xq-light.css000064400000004317152177723720013755 0ustar00/*
Copyright (C) 2011 by MarkLogic Corporation
Author: Mike Brevoort <mike@brevoort.com>

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.
*/
.cm-s-xq-light span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }
.cm-s-xq-light span.cm-atom { color: #6C8CD5; }
.cm-s-xq-light span.cm-number { color: #164; }
.cm-s-xq-light span.cm-def { text-decoration:underline; }
.cm-s-xq-light span.cm-variable { color: black; }
.cm-s-xq-light span.cm-variable-2 { color:black; }
.cm-s-xq-light span.cm-variable-3, .cm-s-xq-light span.cm-type { color: black; }
.cm-s-xq-light span.cm-property {}
.cm-s-xq-light span.cm-operator {}
.cm-s-xq-light span.cm-comment { color: #0080FF; font-style: italic; }
.cm-s-xq-light span.cm-string { color: red; }
.cm-s-xq-light span.cm-meta { color: yellow; }
.cm-s-xq-light span.cm-qualifier { color: grey; }
.cm-s-xq-light span.cm-builtin { color: #7EA656; }
.cm-s-xq-light span.cm-bracket { color: #cc7; }
.cm-s-xq-light span.cm-tag { color: #3F7F7F; }
.cm-s-xq-light span.cm-attribute { color: #7F007F; }
.cm-s-xq-light span.cm-error { color: #f00; }

.cm-s-xq-light .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-xq-light .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }
editors/codemirror/theme/elegant.css000064400000001415152177723720013633 0ustar00.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }
.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }
.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }
.cm-s-elegant span.cm-variable { color: black; }
.cm-s-elegant span.cm-variable-2 { color: #b11; }
.cm-s-elegant span.cm-qualifier { color: #555; }
.cm-s-elegant span.cm-keyword { color: #730; }
.cm-s-elegant span.cm-builtin { color: #30a; }
.cm-s-elegant span.cm-link { color: #762; }
.cm-s-elegant span.cm-error { background-color: #fdd; }

.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
editors/codemirror/theme/hopscotch.css000064400000002675152177723720014217 0ustar00/*

    Name:       Hopscotch
    Author:     Jan T. Sott

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
.cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}

.cm-s-hopscotch span.cm-comment {color: #b33508;}
.cm-s-hopscotch span.cm-atom {color: #c85e7c;}
.cm-s-hopscotch span.cm-number {color: #c85e7c;}

.cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
.cm-s-hopscotch span.cm-keyword {color: #dd464c;}
.cm-s-hopscotch span.cm-string {color: #fdcc59;}

.cm-s-hopscotch span.cm-variable {color: #8fc13e;}
.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
.cm-s-hopscotch span.cm-def {color: #fd8b19;}
.cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
.cm-s-hopscotch span.cm-tag {color: #dd464c;}
.cm-s-hopscotch span.cm-link {color: #c85e7c;}

.cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }
editors/codemirror/theme/material.css000064400000004673152177723720014023 0ustar00/*

    Name:       material
    Author:     Michael Kaminsky (http://github.com/mkaminsky11)

    Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)

*/

.cm-s-material.CodeMirror {
  background-color: #263238;
  color: rgba(233, 237, 237, 1);
}
.cm-s-material .CodeMirror-gutters {
  background: #263238;
  color: rgb(83,127,126);
  border: none;
}
.cm-s-material .CodeMirror-guttermarker, .cm-s-material .CodeMirror-guttermarker-subtle, .cm-s-material .CodeMirror-linenumber { color: rgb(83,127,126); }
.cm-s-material .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-material div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-material.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::selection, .cm-s-material .CodeMirror-line > span::selection, .cm-s-material .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::-moz-selection, .cm-s-material .CodeMirror-line > span::-moz-selection, .cm-s-material .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }

.cm-s-material .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
.cm-s-material .cm-keyword { color: rgba(199, 146, 234, 1); }
.cm-s-material .cm-operator { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-variable-2 { color: #80CBC4; }
.cm-s-material .cm-variable-3, .cm-s-material .cm-type { color: #82B1FF; }
.cm-s-material .cm-builtin { color: #DECB6B; }
.cm-s-material .cm-atom { color: #F77669; }
.cm-s-material .cm-number { color: #F77669; }
.cm-s-material .cm-def { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-string { color: #C3E88D; }
.cm-s-material .cm-string-2 { color: #80CBC4; }
.cm-s-material .cm-comment { color: #546E7A; }
.cm-s-material .cm-variable { color: #82B1FF; }
.cm-s-material .cm-tag { color: #80CBC4; }
.cm-s-material .cm-meta { color: #80CBC4; }
.cm-s-material .cm-attribute { color: #FFCB6B; }
.cm-s-material .cm-property { color: #80CBAE; }
.cm-s-material .cm-qualifier { color: #DECB6B; }
.cm-s-material .cm-variable-3, .cm-s-material .cm-type { color: #DECB6B; }
.cm-s-material .cm-tag { color: rgba(255, 83, 112, 1); }
.cm-s-material .cm-error {
  color: rgba(255, 255, 255, 1.0);
  background-color: #EC5F67;
}
.cm-s-material .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
editors/codemirror/theme/gruvbox-dark.css000064400000003042152177723720014625 0ustar00/*

    Name:       gruvbox-dark
    Author:     kRkk (https://github.com/krkk)

    Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)

*/

.cm-s-gruvbox-dark.CodeMirror, .cm-s-gruvbox-dark .CodeMirror-gutters { background-color: #282828; color: #bdae93; }
.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828; border-right: 0px;}
.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}
.cm-s-gruvbox-dark .CodeMirror-cursor { border-left: 1px solid #ebdbb2; }
.cm-s-gruvbox-dark div.CodeMirror-selected { background: #928374; }
.cm-s-gruvbox-dark span.cm-meta { color: #808000; }

.cm-s-gruvbox-dark span.cm-comment { color: #928374; }
.cm-s-gruvbox-dark span.cm-number, span.cm-atom { color: #d3869b; }
.cm-s-gruvbox-dark span.cm-keyword { color: #f84934; }

.cm-s-gruvbox-dark span.cm-variable { color: #ebdbb2; }
.cm-s-gruvbox-dark span.cm-variable-2 { color: #ebdbb2; }
.cm-s-gruvbox-dark span.cm-variable-3, .cm-s-gruvbox-dark span.cm-type { color: black; }
.cm-s-gruvbox-dark span.cm-operator { color: #ebdbb2; }
.cm-s-gruvbox-dark span.cm-def { color: #ebdbb2; }
.cm-s-gruvbox-dark span.cm-string { color: #b8bb26; }
.cm-s-gruvbox-dark span.cm-string-2 { color: #8ec07c; }
.cm-s-gruvbox-dark span.cm-qualifier { color: #555; }
.cm-s-gruvbox-dark span.cm-attribute { color: #8ec07c; }

.cm-s-gruvbox-dark .CodeMirror-activeline-background { background: #3c3836; }
.cm-s-gruvbox-dark .CodeMirror-matchingbracket { background: #928374; color:#282828 !important; }

.cm-s-gruvbox-dark span.cm-builtin { color: #fe8019; }
editors/codemirror/theme/paraiso-light.css000064400000004036152177723720014761 0ustar00/*

    Name:       Paraíso (Light)
    Author:     Jan T. Sott

    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)

*/

.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }
.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }
.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }
.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }
.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }
.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }

.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }
.cm-s-paraiso-light span.cm-atom { color: #815ba4; }
.cm-s-paraiso-light span.cm-number { color: #815ba4; }

.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }
.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }
.cm-s-paraiso-light span.cm-string { color: #fec418; }

.cm-s-paraiso-light span.cm-variable { color: #48b685; }
.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }
.cm-s-paraiso-light span.cm-def { color: #f99b15; }
.cm-s-paraiso-light span.cm-bracket { color: #41323f; }
.cm-s-paraiso-light span.cm-tag { color: #ef6155; }
.cm-s-paraiso-light span.cm-link { color: #815ba4; }
.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }

.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }
.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/panda-syntax.css000064400000003414152177723720014624 0ustar00/*
	Name:       Panda Syntax
	Author:     Siamak Mokhtari (http://github.com/siamak/)
	CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
*/
.cm-s-panda-syntax {
	background: #292A2B;
	color: #E6E6E6;
	line-height: 1.5;
	font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;
}
.cm-s-panda-syntax .CodeMirror-cursor { border-color: #ff2c6d; }
.cm-s-panda-syntax .CodeMirror-activeline-background {
	background: rgba(99, 123, 156, 0.1);
}
.cm-s-panda-syntax .CodeMirror-selected {
	background: #FFF;
}
.cm-s-panda-syntax .cm-comment {
	font-style: italic;
	color: #676B79;
}
.cm-s-panda-syntax .cm-operator {
	color: #f3f3f3;
}
.cm-s-panda-syntax .cm-string {
	color: #19F9D8;
}
.cm-s-panda-syntax .cm-string-2 {
    color: #FFB86C;
}

.cm-s-panda-syntax .cm-tag {
	color: #ff2c6d;
}
.cm-s-panda-syntax .cm-meta {
	color: #b084eb;
}

.cm-s-panda-syntax .cm-number {
	color: #FFB86C;
}
.cm-s-panda-syntax .cm-atom {
	color: #ff2c6d;
}
.cm-s-panda-syntax .cm-keyword {
	color: #FF75B5;
}
.cm-s-panda-syntax .cm-variable {
	color: #ffb86c;
}
.cm-s-panda-syntax .cm-variable-2 {
	color: #ff9ac1;
}
.cm-s-panda-syntax .cm-variable-3, .cm-s-panda-syntax .cm-type {
	color: #ff9ac1;
}

.cm-s-panda-syntax .cm-def {
	color: #e6e6e6;
}
.cm-s-panda-syntax .cm-property {
	color: #f3f3f3;
}
.cm-s-panda-syntax .cm-unit {
    color: #ffb86c;
}

.cm-s-panda-syntax .cm-attribute {
    color: #ffb86c;
}

.cm-s-panda-syntax .CodeMirror-matchingbracket {
    border-bottom: 1px dotted #19F9D8;
    padding-bottom: 2px;
    color: #e6e6e6;
}
.cm-s-panda-syntax .CodeMirror-gutters {
    background: #292a2b;
    border-right-color: rgba(255, 255, 255, 0.1);
}
.cm-s-panda-syntax .CodeMirror-linenumber {
    color: #e6e6e6;
    opacity: 0.6;
}
editors/codemirror/theme/railscasts.css000064400000002752152177723720014371 0ustar00/*

    Name:       Railscasts
    Author:     Ryan Bates (http://railscasts.com)

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}

.cm-s-railscasts span.cm-comment {color: #bc9458;}
.cm-s-railscasts span.cm-atom {color: #b6b3eb;}
.cm-s-railscasts span.cm-number {color: #b6b3eb;}

.cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
.cm-s-railscasts span.cm-keyword {color: #da4939;}
.cm-s-railscasts span.cm-string {color: #ffc66d;}

.cm-s-railscasts span.cm-variable {color: #a5c261;}
.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
.cm-s-railscasts span.cm-def {color: #cc7833;}
.cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
.cm-s-railscasts span.cm-tag {color: #da4939;}
.cm-s-railscasts span.cm-link {color: #b6b3eb;}

.cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }
editors/codemirror/theme/lesser-dark.css000064400000005112152177723720014426 0ustar00/*
http://lesscss.org/ dark theme
Ported to CodeMirror by Peter Kroon
*/
.cm-s-lesser-dark {
  line-height: 1.3em;
}
.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
.cm-s-lesser-dark div.CodeMirror-selected { background: #45443B; } /* 33322B*/
.cm-s-lesser-dark .CodeMirror-line::selection, .cm-s-lesser-dark .CodeMirror-line > span::selection, .cm-s-lesser-dark .CodeMirror-line > span > span::selection { background: rgba(69, 68, 59, .99); }
.cm-s-lesser-dark .CodeMirror-line::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(69, 68, 59, .99); }
.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/

.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/

.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }
.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }

.cm-s-lesser-dark span.cm-header { color: #a0a; }
.cm-s-lesser-dark span.cm-quote { color: #090; }
.cm-s-lesser-dark span.cm-keyword { color: #599eff; }
.cm-s-lesser-dark span.cm-atom { color: #C2B470; }
.cm-s-lesser-dark span.cm-number { color: #B35E4D; }
.cm-s-lesser-dark span.cm-def { color: white; }
.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }
.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }
.cm-s-lesser-dark span.cm-variable-3, .cm-s-lesser-dark span.cm-type { color: white; }
.cm-s-lesser-dark span.cm-property { color: #92A75C; }
.cm-s-lesser-dark span.cm-operator { color: #92A75C; }
.cm-s-lesser-dark span.cm-comment { color: #666; }
.cm-s-lesser-dark span.cm-string { color: #BCD279; }
.cm-s-lesser-dark span.cm-string-2 { color: #f50; }
.cm-s-lesser-dark span.cm-meta { color: #738C73; }
.cm-s-lesser-dark span.cm-qualifier { color: #555; }
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
.cm-s-lesser-dark span.cm-tag { color: #669199; }
.cm-s-lesser-dark span.cm-attribute { color: #81a4d5; }
.cm-s-lesser-dark span.cm-hr { color: #999; }
.cm-s-lesser-dark span.cm-link { color: #00c; }
.cm-s-lesser-dark span.cm-error { color: #9d1e15; }

.cm-s-lesser-dark .CodeMirror-activeline-background { background: #3C3A3A; }
.cm-s-lesser-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/base16-dark.css000064400000004100152177723720014206 0ustar00/*

    Name:       Base16 Default Dark
    Author:     Chris Kempson (http://chriskempson.com)

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-base16-dark.CodeMirror { background: #151515; color: #e0e0e0; }
.cm-s-base16-dark div.CodeMirror-selected { background: #303030; }
.cm-s-base16-dark .CodeMirror-line::selection, .cm-s-base16-dark .CodeMirror-line > span::selection, .cm-s-base16-dark .CodeMirror-line > span > span::selection { background: rgba(48, 48, 48, .99); }
.cm-s-base16-dark .CodeMirror-line::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(48, 48, 48, .99); }
.cm-s-base16-dark .CodeMirror-gutters { background: #151515; border-right: 0px; }
.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }
.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }
.cm-s-base16-dark .CodeMirror-linenumber { color: #505050; }
.cm-s-base16-dark .CodeMirror-cursor { border-left: 1px solid #b0b0b0; }

.cm-s-base16-dark span.cm-comment { color: #8f5536; }
.cm-s-base16-dark span.cm-atom { color: #aa759f; }
.cm-s-base16-dark span.cm-number { color: #aa759f; }

.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute { color: #90a959; }
.cm-s-base16-dark span.cm-keyword { color: #ac4142; }
.cm-s-base16-dark span.cm-string { color: #f4bf75; }

.cm-s-base16-dark span.cm-variable { color: #90a959; }
.cm-s-base16-dark span.cm-variable-2 { color: #6a9fb5; }
.cm-s-base16-dark span.cm-def { color: #d28445; }
.cm-s-base16-dark span.cm-bracket { color: #e0e0e0; }
.cm-s-base16-dark span.cm-tag { color: #ac4142; }
.cm-s-base16-dark span.cm-link { color: #aa759f; }
.cm-s-base16-dark span.cm-error { background: #ac4142; color: #b0b0b0; }

.cm-s-base16-dark .CodeMirror-activeline-background { background: #202020; }
.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/bespin.css000064400000002605152177723720013476 0ustar00/*

    Name:       Bespin
    Author:     Mozilla / Jan T. Sott

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
.cm-s-bespin .CodeMirror-linenumber {color: #666666;}
.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}

.cm-s-bespin span.cm-comment {color: #937121;}
.cm-s-bespin span.cm-atom {color: #9b859d;}
.cm-s-bespin span.cm-number {color: #9b859d;}

.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
.cm-s-bespin span.cm-keyword {color: #cf6a4c;}
.cm-s-bespin span.cm-string {color: #f9ee98;}

.cm-s-bespin span.cm-variable {color: #54be0d;}
.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
.cm-s-bespin span.cm-def {color: #cf7d34;}
.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
.cm-s-bespin span.cm-bracket {color: #9d9b97;}
.cm-s-bespin span.cm-tag {color: #cf6a4c;}
.cm-s-bespin span.cm-link {color: #9b859d;}

.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }
editors/codemirror/theme/ambiance.css000064400000063575152177723720013772 0ustar00/* ambiance theme for codemirror */

/* Color scheme */

.cm-s-ambiance .cm-header { color: blue; }
.cm-s-ambiance .cm-quote { color: #24C2C7; }

.cm-s-ambiance .cm-keyword { color: #cda869; }
.cm-s-ambiance .cm-atom { color: #CF7EA9; }
.cm-s-ambiance .cm-number { color: #78CF8A; }
.cm-s-ambiance .cm-def { color: #aac6e3; }
.cm-s-ambiance .cm-variable { color: #ffb795; }
.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }
.cm-s-ambiance .cm-variable-3, .cm-s-ambiance .cm-type { color: #faded3; }
.cm-s-ambiance .cm-property { color: #eed1b3; }
.cm-s-ambiance .cm-operator { color: #fa8d6a; }
.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }
.cm-s-ambiance .cm-string { color: #8f9d6a; }
.cm-s-ambiance .cm-string-2 { color: #9d937c; }
.cm-s-ambiance .cm-meta { color: #D2A8A1; }
.cm-s-ambiance .cm-qualifier { color: yellow; }
.cm-s-ambiance .cm-builtin { color: #9999cc; }
.cm-s-ambiance .cm-bracket { color: #24C2C7; }
.cm-s-ambiance .cm-tag { color: #fee4ff; }
.cm-s-ambiance .cm-attribute { color: #9B859D; }
.cm-s-ambiance .cm-hr { color: pink; }
.cm-s-ambiance .cm-link { color: #F4C20B; }
.cm-s-ambiance .cm-special { color: #FF9D00; }
.cm-s-ambiance .cm-error { color: #AF2018; }

.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }

.cm-s-ambiance div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-ambiance .CodeMirror-line::selection, .cm-s-ambiance .CodeMirror-line > span::selection, .cm-s-ambiance .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-ambiance .CodeMirror-line::-moz-selection, .cm-s-ambiance .CodeMirror-line > span::-moz-selection, .cm-s-ambiance .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }

/* Editor styling */

.cm-s-ambiance.CodeMirror {
  line-height: 1.40em;
  color: #E6E1DC;
  background-color: #202020;
  -webkit-box-shadow: inset 0 0 10px black;
  -moz-box-shadow: inset 0 0 10px black;
  box-shadow: inset 0 0 10px black;
}

.cm-s-ambiance .CodeMirror-gutters {
  background: #3D3D3D;
  border-right: 1px solid #4D4D4D;
  box-shadow: 0 10px 20px black;
}

.cm-s-ambiance .CodeMirror-linenumber {
  text-shadow: 0px 1px 1px #4d4d4d;
  color: #111;
  padding: 0 5px;
}

.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }
.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }

.cm-s-ambiance .CodeMirror-cursor { border-left: 1px solid #7991E8; }

.cm-s-ambiance .CodeMirror-activeline-background {
  background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
}

.cm-s-ambiance.CodeMirror,
.cm-s-ambiance .CodeMirror-gutters {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC");
}
editors/codemirror/theme/ambiance-mobile.css000064400000000147152177723720015221 0ustar00.cm-s-ambiance.CodeMirror {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
editors/codemirror/theme/idea.css000064400000003210152177723720013111 0ustar00/**
    Name:       IDEA default theme
    From IntelliJ IDEA by JetBrains
 */

.cm-s-idea span.cm-meta { color: #808000; }
.cm-s-idea span.cm-number { color: #0000FF; }
.cm-s-idea span.cm-keyword { line-height: 1em; font-weight: bold; color: #000080; }
.cm-s-idea span.cm-atom { font-weight: bold; color: #000080; }
.cm-s-idea span.cm-def { color: #000000; }
.cm-s-idea span.cm-variable { color: black; }
.cm-s-idea span.cm-variable-2 { color: black; }
.cm-s-idea span.cm-variable-3, .cm-s-idea span.cm-type { color: black; }
.cm-s-idea span.cm-property { color: black; }
.cm-s-idea span.cm-operator { color: black; }
.cm-s-idea span.cm-comment { color: #808080; }
.cm-s-idea span.cm-string { color: #008000; }
.cm-s-idea span.cm-string-2 { color: #008000; }
.cm-s-idea span.cm-qualifier { color: #555; }
.cm-s-idea span.cm-error { color: #FF0000; }
.cm-s-idea span.cm-attribute { color: #0000FF; }
.cm-s-idea span.cm-tag { color: #000080; }
.cm-s-idea span.cm-link { color: #0000FF; }
.cm-s-idea .CodeMirror-activeline-background { background: #FFFAE3; }

.cm-s-idea span.cm-builtin { color: #30a; }
.cm-s-idea span.cm-bracket { color: #cc7; }
.cm-s-idea  { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}


.cm-s-idea .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }

.CodeMirror-hints.idea {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  color: #616569;
  background-color: #ebf3fd !important;
}

.CodeMirror-hints.idea .CodeMirror-hint-active {
  background-color: #a2b8c9 !important;
  color: #5c6065 !important;
}editors/codemirror/theme/monokai.css000064400000004203152177723720013647 0ustar00/* Based on Sublime Text's Monokai theme */

.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
.cm-s-monokai div.CodeMirror-selected { background: #49483E; }
.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
.cm-s-monokai .CodeMirror-guttermarker { color: white; }
.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }

.cm-s-monokai span.cm-comment { color: #75715e; }
.cm-s-monokai span.cm-atom { color: #ae81ff; }
.cm-s-monokai span.cm-number { color: #ae81ff; }

.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }
.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }
.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }
.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }

.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
.cm-s-monokai span.cm-keyword { color: #f92672; }
.cm-s-monokai span.cm-builtin { color: #66d9ef; }
.cm-s-monokai span.cm-string { color: #e6db74; }

.cm-s-monokai span.cm-variable { color: #f8f8f2; }
.cm-s-monokai span.cm-variable-2 { color: #9effff; }
.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }
.cm-s-monokai span.cm-def { color: #fd971f; }
.cm-s-monokai span.cm-bracket { color: #f8f8f2; }
.cm-s-monokai span.cm-tag { color: #f92672; }
.cm-s-monokai span.cm-header { color: #ae81ff; }
.cm-s-monokai span.cm-link { color: #ae81ff; }
.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }

.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
.cm-s-monokai .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
editors/codemirror/theme/erlang-dark.css000064400000004356152177723720014412 0ustar00.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539; }
.cm-s-erlang-dark .CodeMirror-line::selection, .cm-s-erlang-dark .CodeMirror-line > span::selection, .cm-s-erlang-dark .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
.cm-s-erlang-dark .CodeMirror-line::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }
.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-erlang-dark span.cm-quote      { color: #ccc; }
.cm-s-erlang-dark span.cm-atom       { color: #f133f1; }
.cm-s-erlang-dark span.cm-attribute  { color: #ff80e1; }
.cm-s-erlang-dark span.cm-bracket    { color: #ff9d00; }
.cm-s-erlang-dark span.cm-builtin    { color: #eaa; }
.cm-s-erlang-dark span.cm-comment    { color: #77f; }
.cm-s-erlang-dark span.cm-def        { color: #e7a; }
.cm-s-erlang-dark span.cm-keyword    { color: #ffee80; }
.cm-s-erlang-dark span.cm-meta       { color: #50fefe; }
.cm-s-erlang-dark span.cm-number     { color: #ffd0d0; }
.cm-s-erlang-dark span.cm-operator   { color: #d55; }
.cm-s-erlang-dark span.cm-property   { color: #ccc; }
.cm-s-erlang-dark span.cm-qualifier  { color: #ccc; }
.cm-s-erlang-dark span.cm-special    { color: #ffbbbb; }
.cm-s-erlang-dark span.cm-string     { color: #3ad900; }
.cm-s-erlang-dark span.cm-string-2   { color: #ccc; }
.cm-s-erlang-dark span.cm-tag        { color: #9effff; }
.cm-s-erlang-dark span.cm-variable   { color: #50fe50; }
.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
.cm-s-erlang-dark span.cm-variable-3, .cm-s-erlang-dark span.cm-type { color: #ccc; }
.cm-s-erlang-dark span.cm-error      { color: #9d1e15; }

.cm-s-erlang-dark .CodeMirror-activeline-background { background: #013461; }
.cm-s-erlang-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/ttcn.css000064400000004610152177723720013164 0ustar00.cm-s-ttcn .cm-quote { color: #090; }
.cm-s-ttcn .cm-negative { color: #d44; }
.cm-s-ttcn .cm-positive { color: #292; }
.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }
.cm-s-ttcn .cm-em { font-style: italic; }
.cm-s-ttcn .cm-link { text-decoration: underline; }
.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }

.cm-s-ttcn .cm-atom { color: #219; }
.cm-s-ttcn .cm-attribute { color: #00c; }
.cm-s-ttcn .cm-bracket { color: #997; }
.cm-s-ttcn .cm-comment { color: #333333; }
.cm-s-ttcn .cm-def { color: #00f; }
.cm-s-ttcn .cm-em { font-style: italic; }
.cm-s-ttcn .cm-error { color: #f00; }
.cm-s-ttcn .cm-hr { color: #999; }
.cm-s-ttcn .cm-invalidchar { color: #f00; }
.cm-s-ttcn .cm-keyword { font-weight:bold; }
.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }
.cm-s-ttcn .cm-meta { color: #555; }
.cm-s-ttcn .cm-negative { color: #d44; }
.cm-s-ttcn .cm-positive { color: #292; }
.cm-s-ttcn .cm-qualifier { color: #555; }
.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
.cm-s-ttcn .cm-string { color: #006400; }
.cm-s-ttcn .cm-string-2 { color: #f50; }
.cm-s-ttcn .cm-strong { font-weight: bold; }
.cm-s-ttcn .cm-tag { color: #170; }
.cm-s-ttcn .cm-variable { color: #8B2252; }
.cm-s-ttcn .cm-variable-2 { color: #05a; }
.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }

.cm-s-ttcn .cm-invalidchar { color: #f00; }

/* ASN */
.cm-s-ttcn .cm-accessTypes,
.cm-s-ttcn .cm-compareTypes { color: #27408B; }
.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }
.cm-s-ttcn .cm-modifier { color:#D2691E; }
.cm-s-ttcn .cm-status { color:#8B4545; }
.cm-s-ttcn .cm-storage { color:#A020F0; }
.cm-s-ttcn .cm-tags { color:#006400; }

/* CFG */
.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }
.cm-s-ttcn .cm-fileNCtrlMaskOptions,
.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }

/* TTCN */
.cm-s-ttcn .cm-booleanConsts,
.cm-s-ttcn .cm-otherConsts,
.cm-s-ttcn .cm-verdictConsts { color: #006400; }
.cm-s-ttcn .cm-configOps,
.cm-s-ttcn .cm-functionOps,
.cm-s-ttcn .cm-portOps,
.cm-s-ttcn .cm-sutOps,
.cm-s-ttcn .cm-timerOps,
.cm-s-ttcn .cm-verdictOps { color: #0000FF; }
.cm-s-ttcn .cm-preprocessor,
.cm-s-ttcn .cm-templateMatch,
.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }
.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }
.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }
editors/codemirror/theme/tomorrow-night-bright.css000064400000003351152177723720016471 0ustar00/*

    Name:       Tomorrow Night - Bright
    Author:     Chris Kempson

    Port done by Gerard Braad <me@gbraad.nl>

*/

.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }

.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }

.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }

.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }

.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/base16-light.css000064400000004102152177723720014376 0ustar00/*

    Name:       Base16 Default Light
    Author:     Chris Kempson (http://chriskempson.com)

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-base16-light.CodeMirror { background: #f5f5f5; color: #202020; }
.cm-s-base16-light div.CodeMirror-selected { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-line::selection, .cm-s-base16-light .CodeMirror-line > span::selection, .cm-s-base16-light .CodeMirror-line > span > span::selection { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-line::-moz-selection, .cm-s-base16-light .CodeMirror-line > span::-moz-selection, .cm-s-base16-light .CodeMirror-line > span > span::-moz-selection { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-gutters { background: #f5f5f5; border-right: 0px; }
.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }
.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }

.cm-s-base16-light span.cm-comment { color: #8f5536; }
.cm-s-base16-light span.cm-atom { color: #aa759f; }
.cm-s-base16-light span.cm-number { color: #aa759f; }

.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }
.cm-s-base16-light span.cm-keyword { color: #ac4142; }
.cm-s-base16-light span.cm-string { color: #f4bf75; }

.cm-s-base16-light span.cm-variable { color: #90a959; }
.cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }
.cm-s-base16-light span.cm-def { color: #d28445; }
.cm-s-base16-light span.cm-bracket { color: #202020; }
.cm-s-base16-light span.cm-tag { color: #ac4142; }
.cm-s-base16-light span.cm-link { color: #aa759f; }
.cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }

.cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }
.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/dracula.css000064400000003772152177723720013637 0ustar00/*

    Name:       dracula
    Author:     Michael Kaminsky (http://github.com/mkaminsky11)

    Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)

*/


.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  border: none;
}
.cm-s-dracula .CodeMirror-gutters { color: #282a36; }
.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula span.cm-comment { color: #6272a4; }
.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
.cm-s-dracula span.cm-number { color: #bd93f9; }
.cm-s-dracula span.cm-variable { color: #50fa7b; }
.cm-s-dracula span.cm-variable-2 { color: white; }
.cm-s-dracula span.cm-def { color: #50fa7b; }
.cm-s-dracula span.cm-operator { color: #ff79c6; }
.cm-s-dracula span.cm-keyword { color: #ff79c6; }
.cm-s-dracula span.cm-atom { color: #bd93f9; }
.cm-s-dracula span.cm-meta { color: #f8f8f2; }
.cm-s-dracula span.cm-tag { color: #ff79c6; }
.cm-s-dracula span.cm-attribute { color: #50fa7b; }
.cm-s-dracula span.cm-qualifier { color: #50fa7b; }
.cm-s-dracula span.cm-property { color: #66d9ef; }
.cm-s-dracula span.cm-builtin { color: #50fa7b; }
.cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }

.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/cobalt.css000064400000003276152177723720013467 0ustar00.cm-s-cobalt.CodeMirror { background: #002240; color: white; }
.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-cobalt span.cm-comment { color: #08f; }
.cm-s-cobalt span.cm-atom { color: #845dc4; }
.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }
.cm-s-cobalt span.cm-keyword { color: #ffee80; }
.cm-s-cobalt span.cm-string { color: #3ad900; }
.cm-s-cobalt span.cm-meta { color: #ff9d00; }
.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }
.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
.cm-s-cobalt span.cm-link { color: #845dc4; }
.cm-s-cobalt span.cm-error { color: #9d1e15; }

.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }
.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
editors/codemirror/theme/duotone-light.css000064400000005237152177723720015004 0ustar00/*
Name:   DuoTone-Light
Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)

CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
*/

.cm-s-duotone-light.CodeMirror { background: #faf8f5; color: #b29762; }
.cm-s-duotone-light div.CodeMirror-selected { background: #e3dcce !important; }
.cm-s-duotone-light .CodeMirror-gutters { background: #faf8f5; border-right: 0px; }
.cm-s-duotone-light .CodeMirror-linenumber { color: #cdc4b1; }

/* begin cursor */
.cm-s-duotone-light .CodeMirror-cursor { border-left: 1px solid #93abdc; /* border-left: 1px solid #93abdc80; */ border-right: .5em solid #93abdc; /* border-right: .5em solid #93abdc80; */ opacity: .5; }
.cm-s-duotone-light .CodeMirror-activeline-background { background: #e3dcce;  /* background: #e3dcce80; */ opacity: .5; }
.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor { background: #93abdc; /* #93abdc80; */ opacity: .5; }
/* end cursor */

.cm-s-duotone-light span.cm-atom, .cm-s-duotone-light span.cm-number, .cm-s-duotone-light span.cm-keyword, .cm-s-duotone-light span.cm-variable, .cm-s-duotone-light span.cm-attribute, .cm-s-duotone-light span.cm-quote, .cm-s-duotone-light-light span.cm-hr, .cm-s-duotone-light-light span.cm-link { color: #063289; }

.cm-s-duotone-light span.cm-property { color: #b29762; }
.cm-s-duotone-light span.cm-punctuation, .cm-s-duotone-light span.cm-unit, .cm-s-duotone-light span.cm-negative { color: #063289; }
.cm-s-duotone-light span.cm-string, .cm-s-duotone-light span.cm-operator { color: #1659df; }
.cm-s-duotone-light span.cm-positive { color: #896724; }

.cm-s-duotone-light span.cm-variable-2, .cm-s-duotone-light span.cm-variable-3, .cm-s-duotone-light span.cm-type, .cm-s-duotone-light span.cm-string-2, .cm-s-duotone-light span.cm-url { color: #896724; }
.cm-s-duotone-light span.cm-def, .cm-s-duotone-light span.cm-tag, .cm-s-duotone-light span.cm-builtin, .cm-s-duotone-light span.cm-qualifier, .cm-s-duotone-light span.cm-header, .cm-s-duotone-light span.cm-em { color: #2d2006; }
.cm-s-duotone-light span.cm-bracket, .cm-s-duotone-light span.cm-comment { color: #b6ad9a; }

/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */
/* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */
.cm-s-duotone-light span.cm-error, .cm-s-duotone-light span.cm-invalidchar { color: #f00; }

.cm-s-duotone-light span.cm-header { font-weight: normal; }
.cm-s-duotone-light .CodeMirror-matchingbracket { text-decoration: underline; color: #faf8f5 !important; }

editors/codemirror/theme/yeti.css000064400000003534152177723720013172 0ustar00/*

    Name:       yeti
    Author:     Michael Kaminsky (http://github.com/mkaminsky11)

    Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)

*/


.cm-s-yeti.CodeMirror {
  background-color: #ECEAE8 !important;
  color: #d1c9c0 !important;
  border: none;
}

.cm-s-yeti .CodeMirror-gutters {
  color: #adaba6;
  background-color: #E5E1DB;
  border: none;
}
.cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }
.cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }
.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }
.cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }
.cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }
.cm-s-yeti span.cm-comment { color: #d4c8be; }
.cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }
.cm-s-yeti span.cm-number { color: #a074c4; }
.cm-s-yeti span.cm-variable { color: #55b5db; }
.cm-s-yeti span.cm-variable-2 { color: #a074c4; }
.cm-s-yeti span.cm-def { color: #55b5db; }
.cm-s-yeti span.cm-operator { color: #9fb96e; }
.cm-s-yeti span.cm-keyword { color: #9fb96e; }
.cm-s-yeti span.cm-atom { color: #a074c4; }
.cm-s-yeti span.cm-meta { color: #96c0d8; }
.cm-s-yeti span.cm-tag { color: #96c0d8; }
.cm-s-yeti span.cm-attribute { color: #9fb96e; }
.cm-s-yeti span.cm-qualifier { color: #96c0d8; }
.cm-s-yeti span.cm-property { color: #a074c4; }
.cm-s-yeti span.cm-builtin { color: #a074c4; }
.cm-s-yeti span.cm-variable-3, .cm-s-yeti span.cm-type { color: #96c0d8; }
.cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }
.cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }
editors/codemirror/theme/seti.css000064400000003731152177723720013163 0ustar00/*

    Name:       seti
    Author:     Michael Kaminsky (http://github.com/mkaminsky11)

    Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)

*/


.cm-s-seti.CodeMirror {
  background-color: #151718 !important;
  color: #CFD2D1 !important;
  border: none;
}
.cm-s-seti .CodeMirror-gutters {
  color: #404b53;
  background-color: #0E1112;
  border: none;
}
.cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
.cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }
.cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti span.cm-comment { color: #41535b; }
.cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }
.cm-s-seti span.cm-number { color: #cd3f45; }
.cm-s-seti span.cm-variable { color: #55b5db; }
.cm-s-seti span.cm-variable-2 { color: #a074c4; }
.cm-s-seti span.cm-def { color: #55b5db; }
.cm-s-seti span.cm-keyword { color: #ff79c6; }
.cm-s-seti span.cm-operator { color: #9fca56; }
.cm-s-seti span.cm-keyword { color: #e6cd69; }
.cm-s-seti span.cm-atom { color: #cd3f45; }
.cm-s-seti span.cm-meta { color: #55b5db; }
.cm-s-seti span.cm-tag { color: #55b5db; }
.cm-s-seti span.cm-attribute { color: #9fca56; }
.cm-s-seti span.cm-qualifier { color: #9fca56; }
.cm-s-seti span.cm-property { color: #a074c4; }
.cm-s-seti span.cm-variable-3, .cm-s-seti span.cm-type { color: #9fca56; }
.cm-s-seti span.cm-builtin { color: #9fca56; }
.cm-s-seti .CodeMirror-activeline-background { background: #101213; }
.cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/vibrant-ink.css000064400000004133152177723720014440 0ustar00/* Taken from the popular Visual Studio Vibrant Ink Schema */

.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
.cm-s-vibrant-ink div.CodeMirror-selected { background: #35493c; }
.cm-s-vibrant-ink .CodeMirror-line::selection, .cm-s-vibrant-ink .CodeMirror-line > span::selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::selection { background: rgba(53, 73, 60, 0.99); }
.cm-s-vibrant-ink .CodeMirror-line::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection { background: rgba(53, 73, 60, 0.99); }

.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }
.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
.cm-s-vibrant-ink .cm-atom { color: #FC0; }
.cm-s-vibrant-ink .cm-number { color:  #FFEE98; }
.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D; }
.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def, .cm-s-vibrant span.cm-type { color: #FFC66D; }
.cm-s-vibrant-ink .cm-operator { color: #888; }
.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
.cm-s-vibrant-ink .cm-string { color:  #A5C25C; }
.cm-s-vibrant-ink .cm-string-2 { color: red; }
.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-header { color: #FF6400; }
.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
.cm-s-vibrant-ink .cm-link { color: blue; }
.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }

.cm-s-vibrant-ink .CodeMirror-activeline-background { background: #27282E; }
.cm-s-vibrant-ink .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/mdn-like.css000064400000012114152177723720013712 0ustar00/*
  MDN-LIKE Theme - Mozilla
  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
  GitHub: @peterkroon

  The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation

*/
.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
.cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }
.cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }
.cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }

.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }

.cm-s-mdn-like .cm-keyword { color: #6262FF; }
.cm-s-mdn-like .cm-atom { color: #F90; }
.cm-s-mdn-like .cm-number { color:  #ca7841; }
.cm-s-mdn-like .cm-def { color: #8DA6CE; }
.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def, .cm-s-mdn-like span.cm-type { color: #07a; }

.cm-s-mdn-like .cm-variable { color: #07a; }
.cm-s-mdn-like .cm-property { color: #905; }
.cm-s-mdn-like .cm-qualifier { color: #690; }

.cm-s-mdn-like .cm-operator { color: #cda869; }
.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
.cm-s-mdn-like .cm-meta { color: #000; } /*?*/
.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
.cm-s-mdn-like .cm-tag { color: #997643; }
.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
.cm-s-mdn-like .cm-header { color: #FF6400; }
.cm-s-mdn-like .cm-hr { color: #AEAEAE; }
.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }

div.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }
div.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }

.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }
editors/codemirror/theme/neat.css000064400000001260152177723720013141 0ustar00.cm-s-neat span.cm-comment { color: #a86; }
.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }
.cm-s-neat span.cm-string { color: #a22; }
.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }
.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }
.cm-s-neat span.cm-variable { color: black; }
.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
.cm-s-neat span.cm-meta { color: #555; }
.cm-s-neat span.cm-link { color: #3a3; }

.cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
editors/codemirror/theme/lucario.css000064400000003572152177723720013660 0ustar00/*
  Name:       lucario
  Author:     Raphael Amorim

  Original Lucario color scheme (https://github.com/raphamorim/lucario)
*/

.cm-s-lucario.CodeMirror, .cm-s-lucario .CodeMirror-gutters {
  background-color: #2b3e50 !important;
  color: #f8f8f2 !important;
  border: none;
}
.cm-s-lucario .CodeMirror-gutters { color: #2b3e50; }
.cm-s-lucario .CodeMirror-cursor { border-left: solid thin #E6C845; }
.cm-s-lucario .CodeMirror-linenumber { color: #f8f8f2; }
.cm-s-lucario .CodeMirror-selected { background: #243443; }
.cm-s-lucario .CodeMirror-line::selection, .cm-s-lucario .CodeMirror-line > span::selection, .cm-s-lucario .CodeMirror-line > span > span::selection { background: #243443; }
.cm-s-lucario .CodeMirror-line::-moz-selection, .cm-s-lucario .CodeMirror-line > span::-moz-selection, .cm-s-lucario .CodeMirror-line > span > span::-moz-selection { background: #243443; }
.cm-s-lucario span.cm-comment { color: #5c98cd; }
.cm-s-lucario span.cm-string, .cm-s-lucario span.cm-string-2 { color: #E6DB74; }
.cm-s-lucario span.cm-number { color: #ca94ff; }
.cm-s-lucario span.cm-variable { color: #f8f8f2; }
.cm-s-lucario span.cm-variable-2 { color: #f8f8f2; }
.cm-s-lucario span.cm-def { color: #72C05D; }
.cm-s-lucario span.cm-operator { color: #66D9EF; }
.cm-s-lucario span.cm-keyword { color: #ff6541; }
.cm-s-lucario span.cm-atom { color: #bd93f9; }
.cm-s-lucario span.cm-meta { color: #f8f8f2; }
.cm-s-lucario span.cm-tag { color: #ff6541; }
.cm-s-lucario span.cm-attribute { color: #66D9EF; }
.cm-s-lucario span.cm-qualifier { color: #72C05D; }
.cm-s-lucario span.cm-property { color: #f8f8f2; }
.cm-s-lucario span.cm-builtin { color: #72C05D; }
.cm-s-lucario span.cm-variable-3, .cm-s-lucario span.cm-type { color: #ffb86c; }

.cm-s-lucario .CodeMirror-activeline-background { background: #243443; }
.cm-s-lucario .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/solarized.css000064400000012462152177723720014214 0ustar00/*
Solarized theme for code-mirror
http://ethanschoonover.com/solarized
*/

/*
Solarized color palette
http://ethanschoonover.com/solarized/img/solarized-palette.png
*/

.solarized.base03 { color: #002b36; }
.solarized.base02 { color: #073642; }
.solarized.base01 { color: #586e75; }
.solarized.base00 { color: #657b83; }
.solarized.base0 { color: #839496; }
.solarized.base1 { color: #93a1a1; }
.solarized.base2 { color: #eee8d5; }
.solarized.base3  { color: #fdf6e3; }
.solarized.solar-yellow  { color: #b58900; }
.solarized.solar-orange  { color: #cb4b16; }
.solarized.solar-red { color: #dc322f; }
.solarized.solar-magenta { color: #d33682; }
.solarized.solar-violet  { color: #6c71c4; }
.solarized.solar-blue { color: #268bd2; }
.solarized.solar-cyan { color: #2aa198; }
.solarized.solar-green { color: #859900; }

/* Color scheme for code-mirror */

.cm-s-solarized {
  line-height: 1.45em;
  color-profile: sRGB;
  rendering-intent: auto;
}
.cm-s-solarized.cm-s-dark {
  color: #839496;
  background-color: #002b36;
  text-shadow: #002b36 0 1px;
}
.cm-s-solarized.cm-s-light {
  background-color: #fdf6e3;
  color: #657b83;
  text-shadow: #eee8d5 0 1px;
}

.cm-s-solarized .CodeMirror-widget {
  text-shadow: none;
}

.cm-s-solarized .cm-header { color: #586e75; }
.cm-s-solarized .cm-quote { color: #93a1a1; }

.cm-s-solarized .cm-keyword { color: #cb4b16; }
.cm-s-solarized .cm-atom { color: #d33682; }
.cm-s-solarized .cm-number { color: #d33682; }
.cm-s-solarized .cm-def { color: #2aa198; }

.cm-s-solarized .cm-variable { color: #839496; }
.cm-s-solarized .cm-variable-2 { color: #b58900; }
.cm-s-solarized .cm-variable-3, .cm-s-solarized .cm-type { color: #6c71c4; }

.cm-s-solarized .cm-property { color: #2aa198; }
.cm-s-solarized .cm-operator { color: #6c71c4; }

.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }

.cm-s-solarized .cm-string { color: #859900; }
.cm-s-solarized .cm-string-2 { color: #b58900; }

.cm-s-solarized .cm-meta { color: #859900; }
.cm-s-solarized .cm-qualifier { color: #b58900; }
.cm-s-solarized .cm-builtin { color: #d33682; }
.cm-s-solarized .cm-bracket { color: #cb4b16; }
.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
.cm-s-solarized .cm-tag { color: #93a1a1; }
.cm-s-solarized .cm-attribute { color: #2aa198; }
.cm-s-solarized .cm-hr {
  color: transparent;
  border-top: 1px solid #586e75;
  display: block;
}
.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
.cm-s-solarized .cm-special { color: #6c71c4; }
.cm-s-solarized .cm-em {
  color: #999;
  text-decoration: underline;
  text-decoration-style: dotted;
}
.cm-s-solarized .cm-error,
.cm-s-solarized .cm-invalidchar {
  color: #586e75;
  border-bottom: 1px dotted #dc322f;
}

.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }

.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }

/* Editor styling */



/* Little shadow on the view-port of the buffer view */
.cm-s-solarized.CodeMirror {
  -moz-box-shadow: inset 7px 0 12px -6px #000;
  -webkit-box-shadow: inset 7px 0 12px -6px #000;
  box-shadow: inset 7px 0 12px -6px #000;
}

/* Remove gutter border */
.cm-s-solarized .CodeMirror-gutters {
  border-right: 0;
}

/* Gutter colors and line number styling based of color scheme (dark / light) */

/* Dark */
.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
  background-color: #073642;
}

.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
  color: #586e75;
  text-shadow: #021014 0 -1px;
}

/* Light */
.cm-s-solarized.cm-s-light .CodeMirror-gutters {
  background-color: #eee8d5;
}

.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
  color: #839496;
}

/* Common */
.cm-s-solarized .CodeMirror-linenumber {
  padding: 0 5px;
}
.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }

.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
  color: #586e75;
}

/* Cursor */
.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }

/* Fat cursor */
.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }

/* Active line */
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
  background: rgba(255, 255, 255, 0.06);
}
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
  background: rgba(0, 0, 0, 0.06);
}
editors/codemirror/theme/xq-dark.css000064400000005731152177723720013570 0ustar00/*
Copyright (C) 2011 by MarkLogic Corporation
Author: Mike Brevoort <mike@brevoort.com>

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.
*/
.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
.cm-s-xq-dark div.CodeMirror-selected { background: #27007A; }
.cm-s-xq-dark .CodeMirror-line::selection, .cm-s-xq-dark .CodeMirror-line > span::selection, .cm-s-xq-dark .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }
.cm-s-xq-dark .CodeMirror-line::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }
.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }
.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-xq-dark span.cm-keyword { color: #FFBD40; }
.cm-s-xq-dark span.cm-atom { color: #6C8CD5; }
.cm-s-xq-dark span.cm-number { color: #164; }
.cm-s-xq-dark span.cm-def { color: #FFF; text-decoration:underline; }
.cm-s-xq-dark span.cm-variable { color: #FFF; }
.cm-s-xq-dark span.cm-variable-2 { color: #EEE; }
.cm-s-xq-dark span.cm-variable-3, .cm-s-xq-dark span.cm-type { color: #DDD; }
.cm-s-xq-dark span.cm-property {}
.cm-s-xq-dark span.cm-operator {}
.cm-s-xq-dark span.cm-comment { color: gray; }
.cm-s-xq-dark span.cm-string { color: #9FEE00; }
.cm-s-xq-dark span.cm-meta { color: yellow; }
.cm-s-xq-dark span.cm-qualifier { color: #FFF700; }
.cm-s-xq-dark span.cm-builtin { color: #30a; }
.cm-s-xq-dark span.cm-bracket { color: #cc7; }
.cm-s-xq-dark span.cm-tag { color: #FFBD40; }
.cm-s-xq-dark span.cm-attribute { color: #FFF700; }
.cm-s-xq-dark span.cm-error { color: #f00; }

.cm-s-xq-dark .CodeMirror-activeline-background { background: #27282E; }
.cm-s-xq-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/3024-night.css000064400000004034152177723720013713 0ustar00/*

    Name:       3024 night
    Author:     Jan T. Sott (http://github.com/idleberg)

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-3024-night.CodeMirror { background: #090300; color: #d6d5d4; }
.cm-s-3024-night div.CodeMirror-selected { background: #3a3432; }
.cm-s-3024-night .CodeMirror-line::selection, .cm-s-3024-night .CodeMirror-line > span::selection, .cm-s-3024-night .CodeMirror-line > span > span::selection { background: rgba(58, 52, 50, .99); }
.cm-s-3024-night .CodeMirror-line::-moz-selection, .cm-s-3024-night .CodeMirror-line > span::-moz-selection, .cm-s-3024-night .CodeMirror-line > span > span::-moz-selection { background: rgba(58, 52, 50, .99); }
.cm-s-3024-night .CodeMirror-gutters { background: #090300; border-right: 0px; }
.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }
.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }
.cm-s-3024-night .CodeMirror-linenumber { color: #5c5855; }

.cm-s-3024-night .CodeMirror-cursor { border-left: 1px solid #807d7c; }

.cm-s-3024-night span.cm-comment { color: #cdab53; }
.cm-s-3024-night span.cm-atom { color: #a16a94; }
.cm-s-3024-night span.cm-number { color: #a16a94; }

.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute { color: #01a252; }
.cm-s-3024-night span.cm-keyword { color: #db2d20; }
.cm-s-3024-night span.cm-string { color: #fded02; }

.cm-s-3024-night span.cm-variable { color: #01a252; }
.cm-s-3024-night span.cm-variable-2 { color: #01a0e4; }
.cm-s-3024-night span.cm-def { color: #e8bbd0; }
.cm-s-3024-night span.cm-bracket { color: #d6d5d4; }
.cm-s-3024-night span.cm-tag { color: #db2d20; }
.cm-s-3024-night span.cm-link { color: #a16a94; }
.cm-s-3024-night span.cm-error { background: #db2d20; color: #807d7c; }

.cm-s-3024-night .CodeMirror-activeline-background { background: #2F2F2F; }
.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/neo.css000064400000001663152177723720013002 0ustar00/* neo theme for codemirror */

/* Color scheme */

.cm-s-neo.CodeMirror {
  background-color:#ffffff;
  color:#2e383c;
  line-height:1.4375;
}
.cm-s-neo .cm-comment { color:#75787b; }
.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }
.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }
.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }
.cm-s-neo .cm-string { color:#b35e14; }
.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }


/* Editor styling */

.cm-s-neo pre {
  padding:0;
}

.cm-s-neo .CodeMirror-gutters {
  border:none;
  border-right:10px solid transparent;
  background-color:transparent;
}

.cm-s-neo .CodeMirror-linenumber {
  padding:0;
  color:#e0e2e5;
}

.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }

.cm-s-neo .CodeMirror-cursor {
  width: auto;
  border: 0;
  background: rgba(155,157,162,0.37);
  z-index: 1;
}
editors/codemirror/theme/liquibyte.css000064400000007627152177723720014236 0ustar00.cm-s-liquibyte.CodeMirror {
	background-color: #000;
	color: #fff;
	line-height: 1.2em;
	font-size: 1em;
}
.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {
	text-decoration: underline;
	text-decoration-color: #0f0;
	text-decoration-style: wavy;
}
.cm-s-liquibyte .cm-trailingspace {
	text-decoration: line-through;
	text-decoration-color: #f00;
	text-decoration-style: dotted;
}
.cm-s-liquibyte .cm-tab {
	text-decoration: line-through;
	text-decoration-color: #404040;
	text-decoration-style: dotted;
}
.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }
.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }
.cm-s-liquibyte .CodeMirror-guttermarker {  }
.cm-s-liquibyte .CodeMirror-guttermarker-subtle {  }
.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }
.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }

.cm-s-liquibyte span.cm-comment     { color: #008000; }
.cm-s-liquibyte span.cm-def         { color: #ffaf40; font-weight: bold; }
.cm-s-liquibyte span.cm-keyword     { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-builtin     { color: #ffaf40; font-weight: bold; }
.cm-s-liquibyte span.cm-variable    { color: #5967ff; font-weight: bold; }
.cm-s-liquibyte span.cm-string      { color: #ff8000; }
.cm-s-liquibyte span.cm-number      { color: #0f0; font-weight: bold; }
.cm-s-liquibyte span.cm-atom        { color: #bf3030; font-weight: bold; }

.cm-s-liquibyte span.cm-variable-2  { color: #007f7f; font-weight: bold; }
.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-property    { color: #999; font-weight: bold; }
.cm-s-liquibyte span.cm-operator    { color: #fff; }

.cm-s-liquibyte span.cm-meta        { color: #0f0; }
.cm-s-liquibyte span.cm-qualifier   { color: #fff700; font-weight: bold; }
.cm-s-liquibyte span.cm-bracket     { color: #cc7; }
.cm-s-liquibyte span.cm-tag         { color: #ff0; font-weight: bold; }
.cm-s-liquibyte span.cm-attribute   { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-error       { color: #f00; }

.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }

.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }

.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }

/* Default styles for common addons */
.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }
.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }
.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }
/* Scrollbars */
/* Simple */
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {
	background-color: rgba(80, 80, 80, .7);
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
	background-color: rgba(80, 80, 80, .3);
	border: 1px solid #404040;
	border-radius: 5px;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
	border-top: 1px solid #404040;
	border-bottom: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {
	border-left: 1px solid #404040;
	border-right: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {
	background-color: #262626;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {
	background-color: #262626;
	border-top: 1px solid #404040;
}
/* Overlay */
.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {
	background-color: #404040;
	border-radius: 5px;
}
.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {
	border: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {
	border: 1px solid #404040;
}
editors/codemirror/theme/darcula.css000064400000004056152177723720013633 0ustar00/**
    Name:       IntelliJ IDEA darcula theme
    From IntelliJ IDEA by JetBrains
 */

.cm-s-darcula span.cm-meta { color: #BBB529; }
.cm-s-darcula span.cm-number { color: #6897BB; }
.cm-s-darcula span.cm-keyword { line-height: 1em; font-weight: bold; color: #CC7832; }
.cm-s-darcula span.cm-def { color: #FFC66D; }
.cm-s-darcula span.cm-variable { color: #A9B7C6; }
.cm-s-darcula span.cm-variable-2 { color: #A9B7C6; }
.cm-s-darcula span.cm-variable-3, .cm-s-darcula span.cm-type { color: #A9B7C6; }
.cm-s-darcula span.cm-property { color: #A9B7C6; }
.cm-s-darcula span.cm-operator { color: #A9B7C6; }
.cm-s-darcula span.cm-string { color: #6A8759; }
.cm-s-darcula span.cm-string-2 { color: #6A8759; }
.cm-s-darcula span.cm-comment { color: #808080; }
.cm-s-darcula span.cm-link { color: #287BDE; }
.cm-s-darcula span.cm-atom { font-weight: bold; color: #CC7832; }
.cm-s-darcula span.cm-error { color: #BC3F3C; }
.cm-s-darcula span.cm-tag { color: #CC7832; }
.cm-s-darcula span.cm-attribute { color: #6A8759; }
.cm-s-darcula span.cm-qualifier { color: #6A8759; }
.cm-s-darcula span.cm-bracket { color: #A9B7C6; }
.cm-s-darcula.CodeMirror { background: #2B2B2B; color: #A9B7C6; }


.cm-s-darcula .CodeMirror-cursor { border-left: 1px solid #dddddd; }
.cm-s-darcula .CodeMirror-activeline-background { background: #3A3A3A; }
.cm-s-darcula div.CodeMirror-selected { background: #085a9c; }
.cm-s-darcula .CodeMirror-gutters { background: rgb(72, 72, 72); border-right: 1px solid grey; color: #606366 }

.cm-s-darcula span.cm-builtin { color: #A9B7C6; }
.cm-s-darcula  { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}
.cm-s-darcula .CodeMirror-matchingbracket { background-color: #3b514d; color: yellow !important; }

.CodeMirror-hints.darcula {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  color: #9c9e9e;
  background-color: #3b3e3f !important;
}

.CodeMirror-hints.darcula .CodeMirror-hint-active {
  background-color: #494d4e !important;
  color: #9c9e9e !important;
}
editors/codemirror/theme/twilight.css000064400000004164152177723720014053 0ustar00.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/
.cm-s-twilight div.CodeMirror-selected { background: #323232; } /**/
.cm-s-twilight .CodeMirror-line::selection, .cm-s-twilight .CodeMirror-line > span::selection, .cm-s-twilight .CodeMirror-line > span > span::selection { background: rgba(50, 50, 50, 0.99); }
.cm-s-twilight .CodeMirror-line::-moz-selection, .cm-s-twilight .CodeMirror-line > span::-moz-selection, .cm-s-twilight .CodeMirror-line > span > span::-moz-selection { background: rgba(50, 50, 50, 0.99); }

.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }
.cm-s-twilight .CodeMirror-guttermarker { color: white; }
.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }
.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }
.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/
.cm-s-twilight .cm-atom { color: #FC0; }
.cm-s-twilight .cm-number { color:  #ca7841; } /**/
.cm-s-twilight .cm-def { color: #8DA6CE; }
.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/
.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def, .cm-s-twilight span.cm-type { color: #607392; } /**/
.cm-s-twilight .cm-operator { color: #cda869; } /**/
.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/
.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
.cm-s-twilight .cm-string-2 { color:#bd6b18; } /*?*/
.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
.cm-s-twilight .cm-tag { color: #997643; } /**/
.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
.cm-s-twilight .cm-header { color: #FF6400; }
.cm-s-twilight .cm-hr { color: #AEAEAE; }
.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
.cm-s-twilight .cm-error { border-bottom: 1px solid red; }

.cm-s-twilight .CodeMirror-activeline-background { background: #27282E; }
.cm-s-twilight .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
editors/codemirror/theme/ssms.css000064400000001357152177723720013206 0ustar00.cm-s-ssms span.cm-keyword { color: blue; }
.cm-s-ssms span.cm-comment { color: darkgreen; }
.cm-s-ssms span.cm-string { color: red; }
.cm-s-ssms span.cm-def { color: black; }
.cm-s-ssms span.cm-variable { color: black; }
.cm-s-ssms span.cm-variable-2 { color: black; }
.cm-s-ssms span.cm-atom { color: darkgray; }
.cm-s-ssms .CodeMirror-linenumber { color: teal; }
.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }
.cm-s-ssms span.cm-string-2 { color: #FF00FF; }
.cm-s-ssms span.cm-operator, 
.cm-s-ssms span.cm-bracket, 
.cm-s-ssms span.cm-punctuation { color: darkgray; }
.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }
.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }

editors/codemirror/theme/oceanic-next.css000064400000004322152177723720014571 0ustar00/*

    Name:       oceanic-next
    Author:     Filype Pereira (https://github.com/fpereira1)

    Original oceanic-next color scheme by Dmitri Voronianski (https://github.com/voronianski/oceanic-next-color-scheme)

*/

.cm-s-oceanic-next.CodeMirror { background: #304148; color: #f8f8f2; }
.cm-s-oceanic-next div.CodeMirror-selected { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-line::selection, .cm-s-oceanic-next .CodeMirror-line > span::selection, .cm-s-oceanic-next .CodeMirror-line > span > span::selection { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-line::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-gutters { background: #304148; border-right: 10px; }
.cm-s-oceanic-next .CodeMirror-guttermarker { color: white; }
.cm-s-oceanic-next .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-oceanic-next .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-oceanic-next .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }

.cm-s-oceanic-next span.cm-comment { color: #65737E; }
.cm-s-oceanic-next span.cm-atom { color: #C594C5; }
.cm-s-oceanic-next span.cm-number { color: #F99157; }

.cm-s-oceanic-next span.cm-property { color: #99C794; }
.cm-s-oceanic-next span.cm-attribute,
.cm-s-oceanic-next span.cm-keyword { color: #C594C5; }
.cm-s-oceanic-next span.cm-builtin { color: #66d9ef; }
.cm-s-oceanic-next span.cm-string { color: #99C794; }

.cm-s-oceanic-next span.cm-variable,
.cm-s-oceanic-next span.cm-variable-2,
.cm-s-oceanic-next span.cm-variable-3 { color: #f8f8f2; }
.cm-s-oceanic-next span.cm-def { color: #6699CC; }
.cm-s-oceanic-next span.cm-bracket { color: #5FB3B3; }
.cm-s-oceanic-next span.cm-tag { color: #C594C5; }
.cm-s-oceanic-next span.cm-header { color: #C594C5; }
.cm-s-oceanic-next span.cm-link { color: #C594C5; }
.cm-s-oceanic-next span.cm-error { background: #C594C5; color: #f8f8f0; }

.cm-s-oceanic-next .CodeMirror-activeline-background { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
editors/codemirror/theme/colorforth.css000064400000003215152177723720014375 0ustar00.cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }

.cm-s-colorforth span.cm-comment     { color: #ededed; }
.cm-s-colorforth span.cm-def         { color: #ff1c1c; font-weight:bold; }
.cm-s-colorforth span.cm-keyword     { color: #ffd900; }
.cm-s-colorforth span.cm-builtin     { color: #00d95a; }
.cm-s-colorforth span.cm-variable    { color: #73ff00; }
.cm-s-colorforth span.cm-string      { color: #007bff; }
.cm-s-colorforth span.cm-number      { color: #00c4ff; }
.cm-s-colorforth span.cm-atom        { color: #606060; }

.cm-s-colorforth span.cm-variable-2  { color: #EEE; }
.cm-s-colorforth span.cm-variable-3, .cm-s-colorforth span.cm-type { color: #DDD; }
.cm-s-colorforth span.cm-property    {}
.cm-s-colorforth span.cm-operator    {}

.cm-s-colorforth span.cm-meta        { color: yellow; }
.cm-s-colorforth span.cm-qualifier   { color: #FFF700; }
.cm-s-colorforth span.cm-bracket     { color: #cc7; }
.cm-s-colorforth span.cm-tag         { color: #FFBD40; }
.cm-s-colorforth span.cm-attribute   { color: #FFF700; }
.cm-s-colorforth span.cm-error       { color: #f00; }

.cm-s-colorforth div.CodeMirror-selected { background: #333d53; }

.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }

.cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }
editors/codemirror/theme/the-matrix.css000064400000003624152177723720014302 0ustar00.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }

.cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
.cm-s-the-matrix span.cm-atom { color: #3FF; }
.cm-s-the-matrix span.cm-number { color: #FFB94F; }
.cm-s-the-matrix span.cm-def { color: #99C; }
.cm-s-the-matrix span.cm-variable { color: #F6C; }
.cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
.cm-s-the-matrix span.cm-variable-3, .cm-s-the-matrix span.cm-type { color: #96F; }
.cm-s-the-matrix span.cm-property { color: #62FFA0; }
.cm-s-the-matrix span.cm-operator { color: #999; }
.cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
.cm-s-the-matrix span.cm-string { color: #39C; }
.cm-s-the-matrix span.cm-meta { color: #C9F; }
.cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
.cm-s-the-matrix span.cm-builtin { color: #30a; }
.cm-s-the-matrix span.cm-bracket { color: #cc7; }
.cm-s-the-matrix span.cm-tag { color: #FFBD40; }
.cm-s-the-matrix span.cm-attribute { color: #FFF700; }
.cm-s-the-matrix span.cm-error { color: #FF0000; }

.cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }
editors/codemirror/theme/midnight.css000064400000003776152177723720014033 0ustar00/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */

/*<!--match-->*/
.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }
.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }

/*<!--activeline-->*/
.cm-s-midnight .CodeMirror-activeline-background { background: #253540; }

.cm-s-midnight.CodeMirror {
    background: #0F192A;
    color: #D1EDFF;
}

.cm-s-midnight div.CodeMirror-selected { background: #314D67; }
.cm-s-midnight .CodeMirror-line::selection, .cm-s-midnight .CodeMirror-line > span::selection, .cm-s-midnight .CodeMirror-line > span > span::selection { background: rgba(49, 77, 103, .99); }
.cm-s-midnight .CodeMirror-line::-moz-selection, .cm-s-midnight .CodeMirror-line > span::-moz-selection, .cm-s-midnight .CodeMirror-line > span > span::-moz-selection { background: rgba(49, 77, 103, .99); }
.cm-s-midnight .CodeMirror-gutters { background: #0F192A; border-right: 1px solid; }
.cm-s-midnight .CodeMirror-guttermarker { color: white; }
.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-midnight .CodeMirror-linenumber { color: #D0D0D0; }
.cm-s-midnight .CodeMirror-cursor { border-left: 1px solid #F8F8F0; }

.cm-s-midnight span.cm-comment { color: #428BDD; }
.cm-s-midnight span.cm-atom { color: #AE81FF; }
.cm-s-midnight span.cm-number { color: #D1EDFF; }

.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute { color: #A6E22E; }
.cm-s-midnight span.cm-keyword { color: #E83737; }
.cm-s-midnight span.cm-string { color: #1DC116; }

.cm-s-midnight span.cm-variable { color: #FFAA3E; }
.cm-s-midnight span.cm-variable-2 { color: #FFAA3E; }
.cm-s-midnight span.cm-def { color: #4DD; }
.cm-s-midnight span.cm-bracket { color: #D1EDFF; }
.cm-s-midnight span.cm-tag { color: #449; }
.cm-s-midnight span.cm-link { color: #AE81FF; }
.cm-s-midnight span.cm-error { background: #F92672; color: #F8F8F0; }

.cm-s-midnight .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
editors/codemirror/theme/eclipse.css000064400000002243152177723720013640 0ustar00.cm-s-eclipse span.cm-meta { color: #FF1717; }
.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
.cm-s-eclipse span.cm-atom { color: #219; }
.cm-s-eclipse span.cm-number { color: #164; }
.cm-s-eclipse span.cm-def { color: #00f; }
.cm-s-eclipse span.cm-variable { color: black; }
.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }
.cm-s-eclipse span.cm-property { color: black; }
.cm-s-eclipse span.cm-operator { color: black; }
.cm-s-eclipse span.cm-comment { color: #3F7F5F; }
.cm-s-eclipse span.cm-string { color: #2A00FF; }
.cm-s-eclipse span.cm-string-2 { color: #f50; }
.cm-s-eclipse span.cm-qualifier { color: #555; }
.cm-s-eclipse span.cm-builtin { color: #30a; }
.cm-s-eclipse span.cm-bracket { color: #cc7; }
.cm-s-eclipse span.cm-tag { color: #170; }
.cm-s-eclipse span.cm-attribute { color: #00c; }
.cm-s-eclipse span.cm-link { color: #219; }
.cm-s-eclipse span.cm-error { color: #f00; }

.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
editors/codemirror/theme/paraiso-dark.css000064400000004036152177723720014573 0ustar00/*

    Name:       Paraíso (Dark)
    Author:     Jan T. Sott

    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)

*/

.cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; }
.cm-s-paraiso-dark div.CodeMirror-selected { background: #41323f; }
.cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }
.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
.cm-s-paraiso-dark .CodeMirror-linenumber { color: #776e71; }
.cm-s-paraiso-dark .CodeMirror-cursor { border-left: 1px solid #8d8687; }

.cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }
.cm-s-paraiso-dark span.cm-atom { color: #815ba4; }
.cm-s-paraiso-dark span.cm-number { color: #815ba4; }

.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }
.cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }
.cm-s-paraiso-dark span.cm-string { color: #fec418; }

.cm-s-paraiso-dark span.cm-variable { color: #48b685; }
.cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }
.cm-s-paraiso-dark span.cm-def { color: #f99b15; }
.cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }
.cm-s-paraiso-dark span.cm-tag { color: #ef6155; }
.cm-s-paraiso-dark span.cm-link { color: #815ba4; }
.cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }

.cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4D344A; }
.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
editors/codemirror/theme/3024-day.css000064400000003703152177723720013361 0ustar00/*

    Name:       3024 day
    Author:     Jan T. Sott (http://github.com/idleberg)

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }
.cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }

.cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }
.cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }

.cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }
.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
.cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }

.cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }

.cm-s-3024-day span.cm-comment { color: #cdab53; }
.cm-s-3024-day span.cm-atom { color: #a16a94; }
.cm-s-3024-day span.cm-number { color: #a16a94; }

.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }
.cm-s-3024-day span.cm-keyword { color: #db2d20; }
.cm-s-3024-day span.cm-string { color: #fded02; }

.cm-s-3024-day span.cm-variable { color: #01a252; }
.cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }
.cm-s-3024-day span.cm-def { color: #e8bbd0; }
.cm-s-3024-day span.cm-bracket { color: #3a3432; }
.cm-s-3024-day span.cm-tag { color: #db2d20; }
.cm-s-3024-day span.cm-link { color: #a16a94; }
.cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }

.cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }
editors/codemirror/theme/pastel-on-dark.css000064400000004665152177723720015047 0ustar00/**
 * Pastel On Dark theme ported from ACE editor
 * @license MIT
 * @copyright AtomicPages LLC 2014
 * @author Dennis Thompson, AtomicPages LLC
 * @version 1.1
 * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
 */

.cm-s-pastel-on-dark.CodeMirror {
	background: #2c2827;
	color: #8F938F;
	line-height: 1.5;
}
.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }

.cm-s-pastel-on-dark .CodeMirror-gutters {
	background: #34302f;
	border-right: 0px;
	padding: 0 3px;
}
.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-string { color: #66A968; }
.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
.cm-s-pastel-on-dark span.cm-variable-3, .cm-s-pastel-on-dark span.cm-type { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-error {
	background: #757aD8;
	color: #f8f8f0;
}
.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }
.cm-s-pastel-on-dark .CodeMirror-matchingbracket {
	border: 1px solid rgba(255,255,255,0.25);
	color: #8F938F !important;
	margin: -1px -1px 0 -1px;
}
editors/codemirror/theme/shadowfox.css000064400000004610152177723720014216 0ustar00/*

    Name:       shadowfox
    Author:     overdodactyl (http://github.com/overdodactyl)

    Original shadowfox color scheme by Firefox

*/

.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }
.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }
.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }
.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }
.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }
.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }
.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }
.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }

.cm-s-shadowfox span.cm-comment { color: #939393; }
.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }
.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }
.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }
.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }
.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }
.cm-s-shadowfox span.cm-error { color: #FF7DE9; }

.cm-s-shadowfox span.cm-number { color: #6B89FF; }
.cm-s-shadowfox span.cm-string { color: #6B89FF; }
.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }

.cm-s-shadowfox span.cm-meta { color: #939393; }
.cm-s-shadowfox span.cm-hr { color: #939393; }

.cm-s-shadowfox span.cm-header { color: #75BFFF; }
.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }
.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }

.cm-s-shadowfox span.cm-property { color: #86DE74; }

.cm-s-shadowfox span.cm-def { color: #75BFFF; }
.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }
.cm-s-shadowfox span.cm-tag { color: #75BFFF; }
.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }

.cm-s-shadowfox span.cm-variable { color: #B98EFF; }
.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }
.cm-s-shadowfox span.cm-link { color: #737373; }
.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }
.cm-s-shadowfox span.cm-special { color: #d7d7db; }

.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }
.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }
editors/codemirror/theme/icecoder.css000064400000004723152177723720013776 0ustar00/*
ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
*/

.cm-s-icecoder { color: #666; background: #1d1d1b; }

.cm-s-icecoder span.cm-keyword { color: #eee; font-weight:bold; }  /* off-white 1 */
.cm-s-icecoder span.cm-atom { color: #e1c76e; }                    /* yellow */
.cm-s-icecoder span.cm-number { color: #6cb5d9; }                  /* blue */
.cm-s-icecoder span.cm-def { color: #b9ca4a; }                     /* green */

.cm-s-icecoder span.cm-variable { color: #6cb5d9; }                /* blue */
.cm-s-icecoder span.cm-variable-2 { color: #cc1e5c; }              /* pink */
.cm-s-icecoder span.cm-variable-3, .cm-s-icecoder span.cm-type { color: #f9602c; } /* orange */

.cm-s-icecoder span.cm-property { color: #eee; }                   /* off-white 1 */
.cm-s-icecoder span.cm-operator { color: #9179bb; }                /* purple */
.cm-s-icecoder span.cm-comment { color: #97a3aa; }                 /* grey-blue */

.cm-s-icecoder span.cm-string { color: #b9ca4a; }                  /* green */
.cm-s-icecoder span.cm-string-2 { color: #6cb5d9; }                /* blue */

.cm-s-icecoder span.cm-meta { color: #555; }                       /* grey */

.cm-s-icecoder span.cm-qualifier { color: #555; }                  /* grey */
.cm-s-icecoder span.cm-builtin { color: #214e7b; }                 /* bright blue */
.cm-s-icecoder span.cm-bracket { color: #cc7; }                    /* grey-yellow */

.cm-s-icecoder span.cm-tag { color: #e8e8e8; }                     /* off-white 2 */
.cm-s-icecoder span.cm-attribute { color: #099; }                  /* teal */

.cm-s-icecoder span.cm-header { color: #6a0d6a; }                  /* purple-pink */
.cm-s-icecoder span.cm-quote { color: #186718; }                   /* dark green */
.cm-s-icecoder span.cm-hr { color: #888; }                         /* mid-grey */
.cm-s-icecoder span.cm-link { color: #e1c76e; }                    /* yellow */
.cm-s-icecoder span.cm-error { color: #d00; }                      /* red */

.cm-s-icecoder .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-icecoder div.CodeMirror-selected { color: #fff; background: #037; }
.cm-s-icecoder .CodeMirror-gutters { background: #1d1d1b; min-width: 41px; border-right: 0; }
.cm-s-icecoder .CodeMirror-linenumber { color: #555; cursor: default; }
.cm-s-icecoder .CodeMirror-matchingbracket { color: #fff !important; background: #555 !important; }
.cm-s-icecoder .CodeMirror-activeline-background { background: #000; }
editors/codemirror/LICENSE000064400000002123152177723720011402 0ustar00MIT License

Copyright (C) 2017 by Marijn Haverbeke <marijnh@gmail.com> and others

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.
editors/codemirror/mode/htmlmixed/htmlmixed.js000064400000012754152177723720015660 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"), require("../css/css"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var defaultTags = {
    script: [
      ["lang", /(javascript|babel)/i, "javascript"],
      ["type", /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, "javascript"],
      ["type", /./, "text/plain"],
      [null, null, "javascript"]
    ],
    style:  [
      ["lang", /^css$/i, "css"],
      ["type", /^(text\/)?(x-)?(stylesheet|css)$/i, "css"],
      ["type", /./, "text/plain"],
      [null, null, "css"]
    ]
  };

  function maybeBackup(stream, pat, style) {
    var cur = stream.current(), close = cur.search(pat);
    if (close > -1) {
      stream.backUp(cur.length - close);
    } else if (cur.match(/<\/?$/)) {
      stream.backUp(cur.length);
      if (!stream.match(pat, false)) stream.match(cur);
    }
    return style;
  }

  var attrRegexpCache = {};
  function getAttrRegexp(attr) {
    var regexp = attrRegexpCache[attr];
    if (regexp) return regexp;
    return attrRegexpCache[attr] = new RegExp("\\s+" + attr + "\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*");
  }

  function getAttrValue(text, attr) {
    var match = text.match(getAttrRegexp(attr))
    return match ? /^\s*(.*?)\s*$/.exec(match[2])[1] : ""
  }

  function getTagRegexp(tagName, anchored) {
    return new RegExp((anchored ? "^" : "") + "<\/\s*" + tagName + "\s*>", "i");
  }

  function addTags(from, to) {
    for (var tag in from) {
      var dest = to[tag] || (to[tag] = []);
      var source = from[tag];
      for (var i = source.length - 1; i >= 0; i--)
        dest.unshift(source[i])
    }
  }

  function findMatchingMode(tagInfo, tagText) {
    for (var i = 0; i < tagInfo.length; i++) {
      var spec = tagInfo[i];
      if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];
    }
  }

  CodeMirror.defineMode("htmlmixed", function (config, parserConfig) {
    var htmlMode = CodeMirror.getMode(config, {
      name: "xml",
      htmlMode: true,
      multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,
      multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag
    });

    var tags = {};
    var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;
    addTags(defaultTags, tags);
    if (configTags) addTags(configTags, tags);
    if (configScript) for (var i = configScript.length - 1; i >= 0; i--)
      tags.script.unshift(["type", configScript[i].matches, configScript[i].mode])

    function html(stream, state) {
      var style = htmlMode.token(stream, state.htmlState), tag = /\btag\b/.test(style), tagName
      if (tag && !/[<>\s\/]/.test(stream.current()) &&
          (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&
          tags.hasOwnProperty(tagName)) {
        state.inTag = tagName + " "
      } else if (state.inTag && tag && />$/.test(stream.current())) {
        var inTag = /^([\S]+) (.*)/.exec(state.inTag)
        state.inTag = null
        var modeSpec = stream.current() == ">" && findMatchingMode(tags[inTag[1]], inTag[2])
        var mode = CodeMirror.getMode(config, modeSpec)
        var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);
        state.token = function (stream, state) {
          if (stream.match(endTagA, false)) {
            state.token = html;
            state.localState = state.localMode = null;
            return null;
          }
          return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));
        };
        state.localMode = mode;
        state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, ""));
      } else if (state.inTag) {
        state.inTag += stream.current()
        if (stream.eol()) state.inTag += " "
      }
      return style;
    };

    return {
      startState: function () {
        var state = CodeMirror.startState(htmlMode);
        return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};
      },

      copyState: function (state) {
        var local;
        if (state.localState) {
          local = CodeMirror.copyState(state.localMode, state.localState);
        }
        return {token: state.token, inTag: state.inTag,
                localMode: state.localMode, localState: local,
                htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};
      },

      token: function (stream, state) {
        return state.token(stream, state);
      },

      indent: function (state, textAfter, line) {
        if (!state.localMode || /^\s*<\//.test(textAfter))
          return htmlMode.indent(state.htmlState, textAfter);
        else if (state.localMode.indent)
          return state.localMode.indent(state.localState, textAfter, line);
        else
          return CodeMirror.Pass;
      },

      innerMode: function (state) {
        return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};
      }
    };
  }, "xml", "javascript", "css");

  CodeMirror.defineMIME("text/html", "htmlmixed");
});
editors/codemirror/mode/htmlmixed/htmlmixed.min.js000064400000005531152177723720016435 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c){var d=a.current(),e=d.search(b);return e>-1?a.backUp(d.length-e):d.match(/<\/?$/)&&(a.backUp(d.length),a.match(b,!1)||a.match(d)),c}function c(a){var b=i[a];return b?b:i[a]=new RegExp("\\s+"+a+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function d(a,b){var d=a.match(c(b));return d?/^\s*(.*?)\s*$/.exec(d[2])[1]:""}function e(a,b){return new RegExp((b?"^":"")+"</s*"+a+"s*>","i")}function f(a,b){for(var c in a)for(var d=b[c]||(b[c]=[]),e=a[c],f=e.length-1;f>=0;f--)d.unshift(e[f])}function g(a,b){for(var c=0;c<a.length;c++){var e=a[c];if(!e[0]||e[1].test(d(b,e[0])))return e[2]}}var h={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},i={};a.defineMode("htmlmixed",(function(c,d){function i(d,f){var h,l=j.token(d,f.htmlState),m=/\btag\b/.test(l);if(m&&!/[<>\s\/]/.test(d.current())&&(h=f.htmlState.tagName&&f.htmlState.tagName.toLowerCase())&&k.hasOwnProperty(h))f.inTag=h+" ";else if(f.inTag&&m&&/>$/.test(d.current())){var n=/^([\S]+) (.*)/.exec(f.inTag);f.inTag=null;var o=">"==d.current()&&g(k[n[1]],n[2]),p=a.getMode(c,o),q=e(n[1],!0),r=e(n[1],!1);f.token=function(a,c){return a.match(q,!1)?(c.token=i,c.localState=c.localMode=null,null):b(a,r,c.localMode.token(a,c.localState))},f.localMode=p,f.localState=a.startState(p,j.indent(f.htmlState,""))}else f.inTag&&(f.inTag+=d.current(),d.eol()&&(f.inTag+=" "));return l}var j=a.getMode(c,{name:"xml",htmlMode:!0,multilineTagIndentFactor:d.multilineTagIndentFactor,multilineTagIndentPastTag:d.multilineTagIndentPastTag}),k={},l=d&&d.tags,m=d&&d.scriptTypes;if(f(h,k),l&&f(l,k),m)for(var n=m.length-1;n>=0;n--)k.script.unshift(["type",m[n].matches,m[n].mode]);return{startState:function(){var b=a.startState(j);return{token:i,inTag:null,localMode:null,localState:null,htmlState:b}},copyState:function(b){var c;return b.localState&&(c=a.copyState(b.localMode,b.localState)),{token:b.token,inTag:b.inTag,localMode:b.localMode,localState:c,htmlState:a.copyState(j,b.htmlState)}},token:function(a,b){return b.token(a,b)},indent:function(b,c,d){return!b.localMode||/^\s*<\//.test(c)?j.indent(b.htmlState,c):b.localMode.indent?b.localMode.indent(b.localState,c,d):a.Pass},innerMode:function(a){return{state:a.localState||a.htmlState,mode:a.localMode||j}}}}),"xml","javascript","css"),a.defineMIME("text/html","htmlmixed")}));editors/codemirror/mode/ecl/ecl.min.js000064400000012377152177723720013763 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("ecl",(function(a){function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b){return!!b.startOfLine&&(a.skipToEnd(),"meta")}function d(a,b){var c=a.next();if(s[c]){var d=s[c](a,b);if(d!==!1)return d}if('"'==c||"'"==c)return b.tokenize=e(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return j=c,null;if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("*"))return b.tokenize=f,f(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(t.test(c))return a.eatWhile(t),"operator";a.eatWhile(/[\w\$_]/);var g=a.current().toLowerCase();if(l.propertyIsEnumerable(g))return q.propertyIsEnumerable(g)&&(j="newstatement"),"keyword";if(m.propertyIsEnumerable(g))return q.propertyIsEnumerable(g)&&(j="newstatement"),"variable";if(n.propertyIsEnumerable(g))return q.propertyIsEnumerable(g)&&(j="newstatement"),"variable-2";if(o.propertyIsEnumerable(g))return q.propertyIsEnumerable(g)&&(j="newstatement"),"variable-3";if(p.propertyIsEnumerable(g))return q.propertyIsEnumerable(g)&&(j="newstatement"),"builtin";for(var h=g.length-1;h>=0&&(!isNaN(g[h])||"_"==g[h]);)--h;if(h>0){var i=g.substr(0,h+1);if(o.propertyIsEnumerable(i))return q.propertyIsEnumerable(i)&&(j="newstatement"),"variable-3"}return r.propertyIsEnumerable(g)?"atom":null}function e(a){return function(b,c){for(var e,f=!1,g=!1;null!=(e=b.next());){if(e==a&&!f){g=!0;break}f=!f&&"\\"==e}return!g&&f||(c.tokenize=d),"string"}}function f(a,b){for(var c,e=!1;c=a.next();){if("/"==c&&e){b.tokenize=d;break}e="*"==c}return"comment"}function g(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function h(a,b,c){return a.context=new g(a.indented,b,c,null,a.context)}function i(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var j,k=a.indentUnit,l=b("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode"),m=b("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait"),n=b("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath"),o=b("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode"),p=b("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when"),q=b("catch class do else finally for if switch try while"),r=b("true false null"),s={"#":c},t=/[+\-*&%=<>!?|\/]/;return{startState:function(a){return{tokenize:null,context:new g((a||0)-k,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var c=b.context;if(a.sol()&&(null==c.align&&(c.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;j=null;var e=(b.tokenize||d)(a,b);if("comment"==e||"meta"==e)return e;if(null==c.align&&(c.align=!0),";"!=j&&":"!=j||"statement"!=c.type)if("{"==j)h(b,a.column(),"}");else if("["==j)h(b,a.column(),"]");else if("("==j)h(b,a.column(),")");else if("}"==j){for(;"statement"==c.type;)c=i(b);for("}"==c.type&&(c=i(b));"statement"==c.type;)c=i(b)}else j==c.type?i(b):("}"==c.type||"top"==c.type||"statement"==c.type&&"newstatement"==j)&&h(b,a.column(),"statement");else i(b);return b.startOfLine=!1,e},indent:function(a,b){if(a.tokenize!=d&&null!=a.tokenize)return 0;var c=a.context,e=b&&b.charAt(0);"statement"==c.type&&"}"==e&&(c=c.prev);var f=e==c.type;return"statement"==c.type?c.indented+("{"==e?0:k):c.align?c.column+(f?0:1):c.indented+(f?0:k)},electricChars:"{}"}})),a.defineMIME("text/x-ecl","ecl")}));editors/codemirror/mode/ecl/ecl.js000064400000021214152177723720013167 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("ecl", function(config) {

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  function metaHook(stream, state) {
    if (!state.startOfLine) return false;
    stream.skipToEnd();
    return "meta";
  }

  var indentUnit = config.indentUnit;
  var keyword = words("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode");
  var variable = words("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait");
  var variable_2 = words("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath");
  var variable_3 = words("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode");
  var builtin = words("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when");
  var blockKeywords = words("catch class do else finally for if switch try while");
  var atoms = words("true false null");
  var hooks = {"#": metaHook};
  var isOperatorChar = /[+\-*&%=<>!?|\/]/;

  var curPunc;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (hooks[ch]) {
      var result = hooks[ch](stream, state);
      if (result !== false) return result;
    }
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_]/);
    var cur = stream.current().toLowerCase();
    if (keyword.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "keyword";
    } else if (variable.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "variable";
    } else if (variable_2.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "variable-2";
    } else if (variable_3.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "variable-3";
    } else if (builtin.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "builtin";
    } else { //Data types are of from KEYWORD##
                var i = cur.length - 1;
                while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_'))
                        --i;

                if (i > 0) {
                        var cur2 = cur.substr(0, i + 1);
                if (variable_3.propertyIsEnumerable(cur2)) {
                        if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = "newstatement";
                        return "variable-3";
                }
            }
    }
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return null;
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "\\";
      }
      if (end || !escaped)
        state.tokenize = tokenBase;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    return state.context = new Context(state.indented, col, type, null, state.context);
  }
  function popContext(state) {
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      if (ctx.align == null) ctx.align = true;

      if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
      else if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "}") {
        while (ctx.type == "statement") ctx = popContext(state);
        if (ctx.type == "}") ctx = popContext(state);
        while (ctx.type == "statement") ctx = popContext(state);
      }
      else if (curPunc == ctx.type) popContext(state);
      else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
        pushContext(state, stream.column(), "statement");
      state.startOfLine = false;
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return 0;
      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
      if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
      var closing = firstChar == ctx.type;
      if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
      else if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "{}"
  };
});

CodeMirror.defineMIME("text/x-ecl", "ecl");

});
editors/codemirror/mode/vhdl/vhdl.min.js000064400000007003152177723720014335 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(","),d=0;d<c.length;++d){var e=c[d].toUpperCase(),f=c[d].charAt(0).toUpperCase()+c[d].slice(1);b[c[d]]=!0,b[e]=!0,b[f]=!0}return b}function c(a){return a.eatWhile(/[\w\$_]/),"meta"}a.defineMode("vhdl",(function(a,d){function e(a,b){var c=a.next();if(n[c]){var d=n[c](a,b);if(d!==!1)return d}if('"'==c)return b.tokenize=g(c),b.tokenize(a,b);if("'"==c)return b.tokenize=f(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return k=c,null;if(/[\d']/.test(c))return a.eatWhile(/[\w\.']/),"number";if("-"==c&&a.eat("-"))return a.skipToEnd(),"comment";if(r.test(c))return a.eatWhile(r),"operator";a.eatWhile(/[\w\$_]/);var e=a.current();return p.propertyIsEnumerable(e.toLowerCase())?(q.propertyIsEnumerable(e)&&(k="newstatement"),"keyword"):m.propertyIsEnumerable(e)?"atom":"variable"}function f(a){return function(b,c){for(var d,f=!1,g=!1;null!=(d=b.next());){if(d==a&&!f){g=!0;break}f=!f&&"--"==d}return(g||!f&&!o)&&(c.tokenize=e),"string"}}function g(a){return function(b,c){for(var d,f=!1,g=!1;null!=(d=b.next());){if(d==a&&!f){g=!0;break}f=!f&&"--"==d}return(g||!f&&!o)&&(c.tokenize=e),"string-2"}}function h(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function i(a,b,c){return a.context=new h(a.indented,b,c,null,a.context)}function j(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var k,l=a.indentUnit,m=d.atoms||b("null"),n=d.hooks||{"`":c,$:c},o=d.multiLineStrings,p=b("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor"),q=b("architecture,entity,begin,case,port,else,elsif,end,for,function,if"),r=/[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;return{startState:function(a){return{tokenize:null,context:new h((a||0)-l,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var c=b.context;if(a.sol()&&(null==c.align&&(c.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;k=null;var d=(b.tokenize||e)(a,b);if("comment"==d||"meta"==d)return d;if(null==c.align&&(c.align=!0),";"!=k&&":"!=k||"statement"!=c.type)if("{"==k)i(b,a.column(),"}");else if("["==k)i(b,a.column(),"]");else if("("==k)i(b,a.column(),")");else if("}"==k){for(;"statement"==c.type;)c=j(b);for("}"==c.type&&(c=j(b));"statement"==c.type;)c=j(b)}else k==c.type?j(b):("}"==c.type||"top"==c.type||"statement"==c.type&&"newstatement"==k)&&i(b,a.column(),"statement");else j(b);return b.startOfLine=!1,d},indent:function(a,b){if(a.tokenize!=e&&null!=a.tokenize)return 0;var c=b&&b.charAt(0),d=a.context,f=c==d.type;return"statement"==d.type?d.indented+("{"==c?0:l):d.align?d.column+(f?0:1):d.indented+(f?0:l)},electricChars:"{}"}})),a.defineMIME("text/x-vhdl","vhdl")}));editors/codemirror/mode/vhdl/vhdl.js000064400000015061152177723720013556 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Originally written by Alf Nielsen, re-written by Michael Zhou
(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

function words(str) {
  var obj = {}, words = str.split(",");
  for (var i = 0; i < words.length; ++i) {
    var allCaps = words[i].toUpperCase();
    var firstCap = words[i].charAt(0).toUpperCase() + words[i].slice(1);
    obj[words[i]] = true;
    obj[allCaps] = true;
    obj[firstCap] = true;
  }
  return obj;
}

function metaHook(stream) {
  stream.eatWhile(/[\w\$_]/);
  return "meta";
}

CodeMirror.defineMode("vhdl", function(config, parserConfig) {
  var indentUnit = config.indentUnit,
      atoms = parserConfig.atoms || words("null"),
      hooks = parserConfig.hooks || {"`": metaHook, "$": metaHook},
      multiLineStrings = parserConfig.multiLineStrings;

  var keywords = words("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block," +
      "body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case," +
      "end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for," +
      "function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage," +
      "literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map," +
      "postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal," +
      "sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor");

  var blockKeywords = words("architecture,entity,begin,case,port,else,elsif,end,for,function,if");

  var isOperatorChar = /[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;
  var curPunc;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (hooks[ch]) {
      var result = hooks[ch](stream, state);
      if (result !== false) return result;
    }
    if (ch == '"') {
      state.tokenize = tokenString2(ch);
      return state.tokenize(stream, state);
    }
    if (ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (/[\d']/.test(ch)) {
      stream.eatWhile(/[\w\.']/);
      return "number";
    }
    if (ch == "-") {
      if (stream.eat("-")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_]/);
    var cur = stream.current();
    if (keywords.propertyIsEnumerable(cur.toLowerCase())) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "keyword";
    }
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "--";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = tokenBase;
      return "string";
    };
  }
  function tokenString2(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "--";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = tokenBase;
      return "string-2";
    };
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    return state.context = new Context(state.indented, col, type, null, state.context);
  }
  function popContext(state) {
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface
  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      if (ctx.align == null) ctx.align = true;

      if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
      else if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "}") {
        while (ctx.type == "statement") ctx = popContext(state);
        if (ctx.type == "}") ctx = popContext(state);
        while (ctx.type == "statement") ctx = popContext(state);
      }
      else if (curPunc == ctx.type) popContext(state);
      else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
        pushContext(state, stream.column(), "statement");
      state.startOfLine = false;
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return 0;
      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;
      if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
      else if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "{}"
  };
});

CodeMirror.defineMIME("text/x-vhdl", "vhdl");

});
editors/codemirror/mode/smalltalk/smalltalk.min.js000064400000004261152177723720016416 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("smalltalk",(function(a){var b=/[+\-\/\\*~<>=@%|&?!.,:;^]/,c=/true|false|nil|self|super|thisContext/,d=function(a,b){this.next=a,this.parent=b},e=function(a,b,c){this.name=a,this.context=b,this.eos=c},f=function(){this.context=new d(g,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};f.prototype.userIndent=function(b){this.userIndentationDelta=b>0?b/a.indentUnit-this.indentation:0};var g=function(a,f,g){var l=new e(null,f,!1),m=a.next();return'"'===m?l=h(a,new d(h,f)):"'"===m?l=i(a,new d(i,f)):"#"===m?"'"===a.peek()?(a.next(),l=j(a,new d(j,f))):a.eatWhile(/[^\s.{}\[\]()]/)?l.name="string-2":l.name="meta":"$"===m?("<"===a.next()&&(a.eatWhile(/[^\s>]/),a.next()),l.name="string-2"):"|"===m&&g.expectVariable?l.context=new d(k,f):/[\[\]{}()]/.test(m)?(l.name="bracket",l.eos=/[\[{(]/.test(m),"["===m?g.indentation++:"]"===m&&(g.indentation=Math.max(0,g.indentation-1))):b.test(m)?(a.eatWhile(b),l.name="operator",l.eos=";"!==m):/\d/.test(m)?(a.eatWhile(/[\w\d]/),l.name="number"):/[\w_]/.test(m)?(a.eatWhile(/[\w\d_]/),l.name=g.expectVariable?c.test(a.current())?"keyword":"variable":null):l.eos=g.expectVariable,l},h=function(a,b){return a.eatWhile(/[^"]/),new e("comment",a.eat('"')?b.parent:b,!0)},i=function(a,b){return a.eatWhile(/[^']/),new e("string",a.eat("'")?b.parent:b,!1)},j=function(a,b){return a.eatWhile(/[^']/),new e("string-2",a.eat("'")?b.parent:b,!1)},k=function(a,b){var c=new e(null,b,!1),d=a.next();return"|"===d?(c.context=b.parent,c.eos=!0):(a.eatWhile(/[^|]/),c.name="variable"),c};return{startState:function(){return new f},token:function(a,b){if(b.userIndent(a.indentation()),a.eatSpace())return null;var c=b.context.next(a,b.context,b);return b.context=c.context,b.expectVariable=c.eos,c.name},blankLine:function(a){a.userIndent(0)},indent:function(b,c){var d=b.context.next===g&&c&&"]"===c.charAt(0)?-1:b.userIndentationDelta;return(b.indentation+d)*a.indentUnit},electricChars:"]"}})),a.defineMIME("text/x-stsrc",{name:"smalltalk"})}));editors/codemirror/mode/smalltalk/smalltalk.js000064400000010700152177723720015627 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('smalltalk', function(config) {

  var specialChars = /[+\-\/\\*~<>=@%|&?!.,:;^]/;
  var keywords = /true|false|nil|self|super|thisContext/;

  var Context = function(tokenizer, parent) {
    this.next = tokenizer;
    this.parent = parent;
  };

  var Token = function(name, context, eos) {
    this.name = name;
    this.context = context;
    this.eos = eos;
  };

  var State = function() {
    this.context = new Context(next, null);
    this.expectVariable = true;
    this.indentation = 0;
    this.userIndentationDelta = 0;
  };

  State.prototype.userIndent = function(indentation) {
    this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;
  };

  var next = function(stream, context, state) {
    var token = new Token(null, context, false);
    var aChar = stream.next();

    if (aChar === '"') {
      token = nextComment(stream, new Context(nextComment, context));

    } else if (aChar === '\'') {
      token = nextString(stream, new Context(nextString, context));

    } else if (aChar === '#') {
      if (stream.peek() === '\'') {
        stream.next();
        token = nextSymbol(stream, new Context(nextSymbol, context));
      } else {
        if (stream.eatWhile(/[^\s.{}\[\]()]/))
          token.name = 'string-2';
        else
          token.name = 'meta';
      }

    } else if (aChar === '$') {
      if (stream.next() === '<') {
        stream.eatWhile(/[^\s>]/);
        stream.next();
      }
      token.name = 'string-2';

    } else if (aChar === '|' && state.expectVariable) {
      token.context = new Context(nextTemporaries, context);

    } else if (/[\[\]{}()]/.test(aChar)) {
      token.name = 'bracket';
      token.eos = /[\[{(]/.test(aChar);

      if (aChar === '[') {
        state.indentation++;
      } else if (aChar === ']') {
        state.indentation = Math.max(0, state.indentation - 1);
      }

    } else if (specialChars.test(aChar)) {
      stream.eatWhile(specialChars);
      token.name = 'operator';
      token.eos = aChar !== ';'; // ; cascaded message expression

    } else if (/\d/.test(aChar)) {
      stream.eatWhile(/[\w\d]/);
      token.name = 'number';

    } else if (/[\w_]/.test(aChar)) {
      stream.eatWhile(/[\w\d_]/);
      token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;

    } else {
      token.eos = state.expectVariable;
    }

    return token;
  };

  var nextComment = function(stream, context) {
    stream.eatWhile(/[^"]/);
    return new Token('comment', stream.eat('"') ? context.parent : context, true);
  };

  var nextString = function(stream, context) {
    stream.eatWhile(/[^']/);
    return new Token('string', stream.eat('\'') ? context.parent : context, false);
  };

  var nextSymbol = function(stream, context) {
    stream.eatWhile(/[^']/);
    return new Token('string-2', stream.eat('\'') ? context.parent : context, false);
  };

  var nextTemporaries = function(stream, context) {
    var token = new Token(null, context, false);
    var aChar = stream.next();

    if (aChar === '|') {
      token.context = context.parent;
      token.eos = true;

    } else {
      stream.eatWhile(/[^|]/);
      token.name = 'variable';
    }

    return token;
  };

  return {
    startState: function() {
      return new State;
    },

    token: function(stream, state) {
      state.userIndent(stream.indentation());

      if (stream.eatSpace()) {
        return null;
      }

      var token = state.context.next(stream, state.context, state);
      state.context = token.context;
      state.expectVariable = token.eos;

      return token.name;
    },

    blankLine: function(state) {
      state.userIndent(0);
    },

    indent: function(state, textAfter) {
      var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;
      return (state.indentation + i) * config.indentUnit;
    },

    electricChars: ']'
  };

});

CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});

});
editors/codemirror/mode/slim/slim.js000064400000043153152177723720013577 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

  CodeMirror.defineMode("slim", function(config) {
    var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"});
    var rubyMode = CodeMirror.getMode(config, "ruby");
    var modes = { html: htmlMode, ruby: rubyMode };
    var embedded = {
      ruby: "ruby",
      javascript: "javascript",
      css: "text/css",
      sass: "text/x-sass",
      scss: "text/x-scss",
      less: "text/x-less",
      styl: "text/x-styl", // no highlighting so far
      coffee: "coffeescript",
      asciidoc: "text/x-asciidoc",
      markdown: "text/x-markdown",
      textile: "text/x-textile", // no highlighting so far
      creole: "text/x-creole", // no highlighting so far
      wiki: "text/x-wiki", // no highlighting so far
      mediawiki: "text/x-mediawiki", // no highlighting so far
      rdoc: "text/x-rdoc", // no highlighting so far
      builder: "text/x-builder", // no highlighting so far
      nokogiri: "text/x-nokogiri", // no highlighting so far
      erb: "application/x-erb"
    };
    var embeddedRegexp = function(map){
      var arr = [];
      for(var key in map) arr.push(key);
      return new RegExp("^("+arr.join('|')+"):");
    }(embedded);

    var styleMap = {
      "commentLine": "comment",
      "slimSwitch": "operator special",
      "slimTag": "tag",
      "slimId": "attribute def",
      "slimClass": "attribute qualifier",
      "slimAttribute": "attribute",
      "slimSubmode": "keyword special",
      "closeAttributeTag": null,
      "slimDoctype": null,
      "lineContinuation": null
    };
    var closing = {
      "{": "}",
      "[": "]",
      "(": ")"
    };

    var nameStartChar = "_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD";
    var nameChar = nameStartChar + "\\-0-9\xB7\u0300-\u036F\u203F-\u2040";
    var nameRegexp = new RegExp("^[:"+nameStartChar+"](?::["+nameChar+"]|["+nameChar+"]*)");
    var attributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*(?=\\s*=)");
    var wrappedAttributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*");
    var classNameRegexp = /^\.-?[_a-zA-Z]+[\w\-]*/;
    var classIdRegexp = /^#[_a-zA-Z]+[\w\-]*/;

    function backup(pos, tokenize, style) {
      var restore = function(stream, state) {
        state.tokenize = tokenize;
        if (stream.pos < pos) {
          stream.pos = pos;
          return style;
        }
        return state.tokenize(stream, state);
      };
      return function(stream, state) {
        state.tokenize = restore;
        return tokenize(stream, state);
      };
    }

    function maybeBackup(stream, state, pat, offset, style) {
      var cur = stream.current();
      var idx = cur.search(pat);
      if (idx > -1) {
        state.tokenize = backup(stream.pos, state.tokenize, style);
        stream.backUp(cur.length - idx - offset);
      }
      return style;
    }

    function continueLine(state, column) {
      state.stack = {
        parent: state.stack,
        style: "continuation",
        indented: column,
        tokenize: state.line
      };
      state.line = state.tokenize;
    }
    function finishContinue(state) {
      if (state.line == state.tokenize) {
        state.line = state.stack.tokenize;
        state.stack = state.stack.parent;
      }
    }

    function lineContinuable(column, tokenize) {
      return function(stream, state) {
        finishContinue(state);
        if (stream.match(/^\\$/)) {
          continueLine(state, column);
          return "lineContinuation";
        }
        var style = tokenize(stream, state);
        if (stream.eol() && stream.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)) {
          stream.backUp(1);
        }
        return style;
      };
    }
    function commaContinuable(column, tokenize) {
      return function(stream, state) {
        finishContinue(state);
        var style = tokenize(stream, state);
        if (stream.eol() && stream.current().match(/,$/)) {
          continueLine(state, column);
        }
        return style;
      };
    }

    function rubyInQuote(endQuote, tokenize) {
      // TODO: add multi line support
      return function(stream, state) {
        var ch = stream.peek();
        if (ch == endQuote && state.rubyState.tokenize.length == 1) {
          // step out of ruby context as it seems to complete processing all the braces
          stream.next();
          state.tokenize = tokenize;
          return "closeAttributeTag";
        } else {
          return ruby(stream, state);
        }
      };
    }
    function startRubySplat(tokenize) {
      var rubyState;
      var runSplat = function(stream, state) {
        if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {
          stream.backUp(1);
          if (stream.eatSpace()) {
            state.rubyState = rubyState;
            state.tokenize = tokenize;
            return tokenize(stream, state);
          }
          stream.next();
        }
        return ruby(stream, state);
      };
      return function(stream, state) {
        rubyState = state.rubyState;
        state.rubyState = CodeMirror.startState(rubyMode);
        state.tokenize = runSplat;
        return ruby(stream, state);
      };
    }

    function ruby(stream, state) {
      return rubyMode.token(stream, state.rubyState);
    }

    function htmlLine(stream, state) {
      if (stream.match(/^\\$/)) {
        return "lineContinuation";
      }
      return html(stream, state);
    }
    function html(stream, state) {
      if (stream.match(/^#\{/)) {
        state.tokenize = rubyInQuote("}", state.tokenize);
        return null;
      }
      return maybeBackup(stream, state, /[^\\]#\{/, 1, htmlMode.token(stream, state.htmlState));
    }

    function startHtmlLine(lastTokenize) {
      return function(stream, state) {
        var style = htmlLine(stream, state);
        if (stream.eol()) state.tokenize = lastTokenize;
        return style;
      };
    }

    function startHtmlMode(stream, state, offset) {
      state.stack = {
        parent: state.stack,
        style: "html",
        indented: stream.column() + offset, // pipe + space
        tokenize: state.line
      };
      state.line = state.tokenize = html;
      return null;
    }

    function comment(stream, state) {
      stream.skipToEnd();
      return state.stack.style;
    }

    function commentMode(stream, state) {
      state.stack = {
        parent: state.stack,
        style: "comment",
        indented: state.indented + 1,
        tokenize: state.line
      };
      state.line = comment;
      return comment(stream, state);
    }

    function attributeWrapper(stream, state) {
      if (stream.eat(state.stack.endQuote)) {
        state.line = state.stack.line;
        state.tokenize = state.stack.tokenize;
        state.stack = state.stack.parent;
        return null;
      }
      if (stream.match(wrappedAttributeNameRegexp)) {
        state.tokenize = attributeWrapperAssign;
        return "slimAttribute";
      }
      stream.next();
      return null;
    }
    function attributeWrapperAssign(stream, state) {
      if (stream.match(/^==?/)) {
        state.tokenize = attributeWrapperValue;
        return null;
      }
      return attributeWrapper(stream, state);
    }
    function attributeWrapperValue(stream, state) {
      var ch = stream.peek();
      if (ch == '"' || ch == "\'") {
        state.tokenize = readQuoted(ch, "string", true, false, attributeWrapper);
        stream.next();
        return state.tokenize(stream, state);
      }
      if (ch == '[') {
        return startRubySplat(attributeWrapper)(stream, state);
      }
      if (stream.match(/^(true|false|nil)\b/)) {
        state.tokenize = attributeWrapper;
        return "keyword";
      }
      return startRubySplat(attributeWrapper)(stream, state);
    }

    function startAttributeWrapperMode(state, endQuote, tokenize) {
      state.stack = {
        parent: state.stack,
        style: "wrapper",
        indented: state.indented + 1,
        tokenize: tokenize,
        line: state.line,
        endQuote: endQuote
      };
      state.line = state.tokenize = attributeWrapper;
      return null;
    }

    function sub(stream, state) {
      if (stream.match(/^#\{/)) {
        state.tokenize = rubyInQuote("}", state.tokenize);
        return null;
      }
      var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);
      subStream.pos = stream.pos - state.stack.indented;
      subStream.start = stream.start - state.stack.indented;
      subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;
      subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;
      var style = state.subMode.token(subStream, state.subState);
      stream.pos = subStream.pos + state.stack.indented;
      return style;
    }
    function firstSub(stream, state) {
      state.stack.indented = stream.column();
      state.line = state.tokenize = sub;
      return state.tokenize(stream, state);
    }

    function createMode(mode) {
      var query = embedded[mode];
      var spec = CodeMirror.mimeModes[query];
      if (spec) {
        return CodeMirror.getMode(config, spec);
      }
      var factory = CodeMirror.modes[query];
      if (factory) {
        return factory(config, {name: query});
      }
      return CodeMirror.getMode(config, "null");
    }

    function getMode(mode) {
      if (!modes.hasOwnProperty(mode)) {
        return modes[mode] = createMode(mode);
      }
      return modes[mode];
    }

    function startSubMode(mode, state) {
      var subMode = getMode(mode);
      var subState = CodeMirror.startState(subMode);

      state.subMode = subMode;
      state.subState = subState;

      state.stack = {
        parent: state.stack,
        style: "sub",
        indented: state.indented + 1,
        tokenize: state.line
      };
      state.line = state.tokenize = firstSub;
      return "slimSubmode";
    }

    function doctypeLine(stream, _state) {
      stream.skipToEnd();
      return "slimDoctype";
    }

    function startLine(stream, state) {
      var ch = stream.peek();
      if (ch == '<') {
        return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);
      }
      if (stream.match(/^[|']/)) {
        return startHtmlMode(stream, state, 1);
      }
      if (stream.match(/^\/(!|\[\w+])?/)) {
        return commentMode(stream, state);
      }
      if (stream.match(/^(-|==?[<>]?)/)) {
        state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));
        return "slimSwitch";
      }
      if (stream.match(/^doctype\b/)) {
        state.tokenize = doctypeLine;
        return "keyword";
      }

      var m = stream.match(embeddedRegexp);
      if (m) {
        return startSubMode(m[1], state);
      }

      return slimTag(stream, state);
    }

    function slim(stream, state) {
      if (state.startOfLine) {
        return startLine(stream, state);
      }
      return slimTag(stream, state);
    }

    function slimTag(stream, state) {
      if (stream.eat('*')) {
        state.tokenize = startRubySplat(slimTagExtras);
        return null;
      }
      if (stream.match(nameRegexp)) {
        state.tokenize = slimTagExtras;
        return "slimTag";
      }
      return slimClass(stream, state);
    }
    function slimTagExtras(stream, state) {
      if (stream.match(/^(<>?|><?)/)) {
        state.tokenize = slimClass;
        return null;
      }
      return slimClass(stream, state);
    }
    function slimClass(stream, state) {
      if (stream.match(classIdRegexp)) {
        state.tokenize = slimClass;
        return "slimId";
      }
      if (stream.match(classNameRegexp)) {
        state.tokenize = slimClass;
        return "slimClass";
      }
      return slimAttribute(stream, state);
    }
    function slimAttribute(stream, state) {
      if (stream.match(/^([\[\{\(])/)) {
        return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);
      }
      if (stream.match(attributeNameRegexp)) {
        state.tokenize = slimAttributeAssign;
        return "slimAttribute";
      }
      if (stream.peek() == '*') {
        stream.next();
        state.tokenize = startRubySplat(slimContent);
        return null;
      }
      return slimContent(stream, state);
    }
    function slimAttributeAssign(stream, state) {
      if (stream.match(/^==?/)) {
        state.tokenize = slimAttributeValue;
        return null;
      }
      // should never happen, because of forward lookup
      return slimAttribute(stream, state);
    }

    function slimAttributeValue(stream, state) {
      var ch = stream.peek();
      if (ch == '"' || ch == "\'") {
        state.tokenize = readQuoted(ch, "string", true, false, slimAttribute);
        stream.next();
        return state.tokenize(stream, state);
      }
      if (ch == '[') {
        return startRubySplat(slimAttribute)(stream, state);
      }
      if (ch == ':') {
        return startRubySplat(slimAttributeSymbols)(stream, state);
      }
      if (stream.match(/^(true|false|nil)\b/)) {
        state.tokenize = slimAttribute;
        return "keyword";
      }
      return startRubySplat(slimAttribute)(stream, state);
    }
    function slimAttributeSymbols(stream, state) {
      stream.backUp(1);
      if (stream.match(/^[^\s],(?=:)/)) {
        state.tokenize = startRubySplat(slimAttributeSymbols);
        return null;
      }
      stream.next();
      return slimAttribute(stream, state);
    }
    function readQuoted(quote, style, embed, unescaped, nextTokenize) {
      return function(stream, state) {
        finishContinue(state);
        var fresh = stream.current().length == 0;
        if (stream.match(/^\\$/, fresh)) {
          if (!fresh) return style;
          continueLine(state, state.indented);
          return "lineContinuation";
        }
        if (stream.match(/^#\{/, fresh)) {
          if (!fresh) return style;
          state.tokenize = rubyInQuote("}", state.tokenize);
          return null;
        }
        var escaped = false, ch;
        while ((ch = stream.next()) != null) {
          if (ch == quote && (unescaped || !escaped)) {
            state.tokenize = nextTokenize;
            break;
          }
          if (embed && ch == "#" && !escaped) {
            if (stream.eat("{")) {
              stream.backUp(2);
              break;
            }
          }
          escaped = !escaped && ch == "\\";
        }
        if (stream.eol() && escaped) {
          stream.backUp(1);
        }
        return style;
      };
    }
    function slimContent(stream, state) {
      if (stream.match(/^==?/)) {
        state.tokenize = ruby;
        return "slimSwitch";
      }
      if (stream.match(/^\/$/)) { // tag close hint
        state.tokenize = slim;
        return null;
      }
      if (stream.match(/^:/)) { // inline tag
        state.tokenize = slimTag;
        return "slimSwitch";
      }
      startHtmlMode(stream, state, 0);
      return state.tokenize(stream, state);
    }

    var mode = {
      // default to html mode
      startState: function() {
        var htmlState = CodeMirror.startState(htmlMode);
        var rubyState = CodeMirror.startState(rubyMode);
        return {
          htmlState: htmlState,
          rubyState: rubyState,
          stack: null,
          last: null,
          tokenize: slim,
          line: slim,
          indented: 0
        };
      },

      copyState: function(state) {
        return {
          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),
          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),
          subMode: state.subMode,
          subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),
          stack: state.stack,
          last: state.last,
          tokenize: state.tokenize,
          line: state.line
        };
      },

      token: function(stream, state) {
        if (stream.sol()) {
          state.indented = stream.indentation();
          state.startOfLine = true;
          state.tokenize = state.line;
          while (state.stack && state.stack.indented > state.indented && state.last != "slimSubmode") {
            state.line = state.tokenize = state.stack.tokenize;
            state.stack = state.stack.parent;
            state.subMode = null;
            state.subState = null;
          }
        }
        if (stream.eatSpace()) return null;
        var style = state.tokenize(stream, state);
        state.startOfLine = false;
        if (style) state.last = style;
        return styleMap.hasOwnProperty(style) ? styleMap[style] : style;
      },

      blankLine: function(state) {
        if (state.subMode && state.subMode.blankLine) {
          return state.subMode.blankLine(state.subState);
        }
      },

      innerMode: function(state) {
        if (state.subMode) return {state: state.subState, mode: state.subMode};
        return {state: state, mode: mode};
      }

      //indent: function(state) {
      //  return state.indented;
      //}
    };
    return mode;
  }, "htmlmixed", "ruby");

  CodeMirror.defineMIME("text/x-slim", "slim");
  CodeMirror.defineMIME("application/x-slim", "slim");
});
editors/codemirror/mode/slim/slim.min.js000064400000016604152177723720014362 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../ruby/ruby")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../ruby/ruby"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("slim",(function(b){function c(a,b,c){var d=function(d,e){return e.tokenize=b,d.pos<a?(d.pos=a,c):e.tokenize(d,e)};return function(a,c){return c.tokenize=d,b(a,c)}}function d(a,b,d,e,f){var g=a.current(),h=g.search(d);return h>-1&&(b.tokenize=c(a.pos,b.tokenize,f),a.backUp(g.length-h-e)),f}function e(a,b){a.stack={parent:a.stack,style:"continuation",indented:b,tokenize:a.line},a.line=a.tokenize}function f(a){a.line==a.tokenize&&(a.line=a.stack.tokenize,a.stack=a.stack.parent)}function g(a,b){return function(c,d){if(f(d),c.match(/^\\$/))return e(d,a),"lineContinuation";var g=b(c,d);return c.eol()&&c.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)&&c.backUp(1),g}}function h(a,b){return function(c,d){f(d);var g=b(c,d);return c.eol()&&c.current().match(/,$/)&&e(d,a),g}}function i(a,b){return function(c,d){var e=c.peek();return e==a&&1==d.rubyState.tokenize.length?(c.next(),d.tokenize=b,"closeAttributeTag"):k(c,d)}}function j(b){var c,d=function(a,d){if(1==d.rubyState.tokenize.length&&!d.rubyState.context.prev){if(a.backUp(1),a.eatSpace())return d.rubyState=c,d.tokenize=b,b(a,d);a.next()}return k(a,d)};return function(b,e){return c=e.rubyState,e.rubyState=a.startState(N),e.tokenize=d,k(b,e)}}function k(a,b){return N.token(a,b.rubyState)}function l(a,b){return a.match(/^\\$/)?"lineContinuation":m(a,b)}function m(a,b){return a.match(/^#\{/)?(b.tokenize=i("}",b.tokenize),null):d(a,b,/[^\\]#\{/,1,M.token(a,b.htmlState))}function n(a){return function(b,c){var d=l(b,c);return b.eol()&&(c.tokenize=a),d}}function o(a,b,c){return b.stack={parent:b.stack,style:"html",indented:a.column()+c,tokenize:b.line},b.line=b.tokenize=m,null}function p(a,b){return a.skipToEnd(),b.stack.style}function q(a,b){return b.stack={parent:b.stack,style:"comment",indented:b.indented+1,tokenize:b.line},b.line=p,p(a,b)}function r(a,b){return a.eat(b.stack.endQuote)?(b.line=b.stack.line,b.tokenize=b.stack.tokenize,b.stack=b.stack.parent,null):a.match(X)?(b.tokenize=s,"slimAttribute"):(a.next(),null)}function s(a,b){return a.match(/^==?/)?(b.tokenize=t,null):r(a,b)}function t(a,b){var c=a.peek();return'"'==c||"'"==c?(b.tokenize=K(c,"string",!0,!1,r),a.next(),b.tokenize(a,b)):"["==c?j(r)(a,b):a.match(/^(true|false|nil)\b/)?(b.tokenize=r,"keyword"):j(r)(a,b)}function u(a,b,c){return a.stack={parent:a.stack,style:"wrapper",indented:a.indented+1,tokenize:c,line:a.line,endQuote:b},a.line=a.tokenize=r,null}function v(b,c){if(b.match(/^#\{/))return c.tokenize=i("}",c.tokenize),null;var d=new a.StringStream(b.string.slice(c.stack.indented),b.tabSize);d.pos=b.pos-c.stack.indented,d.start=b.start-c.stack.indented,d.lastColumnPos=b.lastColumnPos-c.stack.indented,d.lastColumnValue=b.lastColumnValue-c.stack.indented;var e=c.subMode.token(d,c.subState);return b.pos=d.pos+c.stack.indented,e}function w(a,b){return b.stack.indented=a.column(),b.line=b.tokenize=v,b.tokenize(a,b)}function x(c){var d=P[c],e=a.mimeModes[d];if(e)return a.getMode(b,e);var f=a.modes[d];return f?f(b,{name:d}):a.getMode(b,"null")}function y(a){return O.hasOwnProperty(a)?O[a]:O[a]=x(a)}function z(b,c){var d=y(b),e=a.startState(d);return c.subMode=d,c.subState=e,c.stack={parent:c.stack,style:"sub",indented:c.indented+1,tokenize:c.line},c.line=c.tokenize=w,"slimSubmode"}function A(a,b){return a.skipToEnd(),"slimDoctype"}function B(a,b){var c=a.peek();if("<"==c)return(b.tokenize=n(b.tokenize))(a,b);if(a.match(/^[|']/))return o(a,b,1);if(a.match(/^\/(!|\[\w+])?/))return q(a,b);if(a.match(/^(-|==?[<>]?)/))return b.tokenize=g(a.column(),h(a.column(),k)),"slimSwitch";if(a.match(/^doctype\b/))return b.tokenize=A,"keyword";var d=a.match(Q);return d?z(d[1],b):D(a,b)}function C(a,b){return b.startOfLine?B(a,b):D(a,b)}function D(a,b){return a.eat("*")?(b.tokenize=j(E),null):a.match(V)?(b.tokenize=E,"slimTag"):F(a,b)}function E(a,b){return a.match(/^(<>?|><?)/)?(b.tokenize=F,null):F(a,b)}function F(a,b){return a.match(Z)?(b.tokenize=F,"slimId"):a.match(Y)?(b.tokenize=F,"slimClass"):G(a,b)}function G(a,b){return a.match(/^([\[\{\(])/)?u(b,S[RegExp.$1],G):a.match(W)?(b.tokenize=H,"slimAttribute"):"*"==a.peek()?(a.next(),b.tokenize=j(L),null):L(a,b)}function H(a,b){return a.match(/^==?/)?(b.tokenize=I,null):G(a,b)}function I(a,b){var c=a.peek();return'"'==c||"'"==c?(b.tokenize=K(c,"string",!0,!1,G),a.next(),b.tokenize(a,b)):"["==c?j(G)(a,b):":"==c?j(J)(a,b):a.match(/^(true|false|nil)\b/)?(b.tokenize=G,"keyword"):j(G)(a,b)}function J(a,b){return a.backUp(1),a.match(/^[^\s],(?=:)/)?(b.tokenize=j(J),null):(a.next(),G(a,b))}function K(a,b,c,d,g){return function(h,j){f(j);var k=0==h.current().length;if(h.match(/^\\$/,k))return k?(e(j,j.indented),"lineContinuation"):b;if(h.match(/^#\{/,k))return k?(j.tokenize=i("}",j.tokenize),null):b;for(var l,m=!1;null!=(l=h.next());){if(l==a&&(d||!m)){j.tokenize=g;break}if(c&&"#"==l&&!m&&h.eat("{")){h.backUp(2);break}m=!m&&"\\"==l}return h.eol()&&m&&h.backUp(1),b}}function L(a,b){return a.match(/^==?/)?(b.tokenize=k,"slimSwitch"):a.match(/^\/$/)?(b.tokenize=C,null):a.match(/^:/)?(b.tokenize=D,"slimSwitch"):(o(a,b,0),b.tokenize(a,b))}var M=a.getMode(b,{name:"htmlmixed"}),N=a.getMode(b,"ruby"),O={html:M,ruby:N},P={ruby:"ruby",javascript:"javascript",css:"text/css",sass:"text/x-sass",scss:"text/x-scss",less:"text/x-less",styl:"text/x-styl",coffee:"coffeescript",asciidoc:"text/x-asciidoc",markdown:"text/x-markdown",textile:"text/x-textile",creole:"text/x-creole",wiki:"text/x-wiki",mediawiki:"text/x-mediawiki",rdoc:"text/x-rdoc",builder:"text/x-builder",nokogiri:"text/x-nokogiri",erb:"application/x-erb"},Q=(function(a){var b=[];for(var c in a)b.push(c);return new RegExp("^("+b.join("|")+"):")})(P),R={commentLine:"comment",slimSwitch:"operator special",slimTag:"tag",slimId:"attribute def",slimClass:"attribute qualifier",slimAttribute:"attribute",slimSubmode:"keyword special",closeAttributeTag:null,slimDoctype:null,lineContinuation:null},S={"{":"}","[":"]","(":")"},T="_a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�",U=T+"\\-0-9·̀-ͯ‿-⁀",V=new RegExp("^[:"+T+"](?::["+U+"]|["+U+"]*)"),W=new RegExp("^[:"+T+"][:\\."+U+"]*(?=\\s*=)"),X=new RegExp("^[:"+T+"][:\\."+U+"]*"),Y=/^\.-?[_a-zA-Z]+[\w\-]*/,Z=/^#[_a-zA-Z]+[\w\-]*/,$={startState:function(){var b=a.startState(M),c=a.startState(N);return{htmlState:b,rubyState:c,stack:null,last:null,tokenize:C,line:C,indented:0}},copyState:function(b){return{htmlState:a.copyState(M,b.htmlState),rubyState:a.copyState(N,b.rubyState),subMode:b.subMode,subState:b.subMode&&a.copyState(b.subMode,b.subState),stack:b.stack,last:b.last,tokenize:b.tokenize,line:b.line}},token:function(a,b){if(a.sol())for(b.indented=a.indentation(),b.startOfLine=!0,b.tokenize=b.line;b.stack&&b.stack.indented>b.indented&&"slimSubmode"!=b.last;)b.line=b.tokenize=b.stack.tokenize,b.stack=b.stack.parent,b.subMode=null,b.subState=null;if(a.eatSpace())return null;var c=b.tokenize(a,b);return b.startOfLine=!1,c&&(b.last=c),R.hasOwnProperty(c)?R[c]:c},blankLine:function(a){if(a.subMode&&a.subMode.blankLine)return a.subMode.blankLine(a.subState)},innerMode:function(a){return a.subMode?{state:a.subState,mode:a.subMode}:{state:a,mode:$}}};return $}),"htmlmixed","ruby"),a.defineMIME("text/x-slim","slim"),a.defineMIME("application/x-slim","slim")}));editors/codemirror/mode/mirc/mirc.js000064400000023536152177723720013556 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMIME("text/mirc", "mirc");
CodeMirror.defineMode("mirc", function() {
  function parseWords(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  var specials = parseWords("$! $$ $& $? $+ $abook $abs $active $activecid " +
                            "$activewid $address $addtok $agent $agentname $agentstat $agentver " +
                            "$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime " +
                            "$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind " +
                            "$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes " +
                            "$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color " +
                            "$com $comcall $comchan $comerr $compact $compress $comval $cos $count " +
                            "$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight " +
                            "$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress " +
                            "$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll " +
                            "$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error " +
                            "$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir " +
                            "$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve " +
                            "$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt " +
                            "$group $halted $hash $height $hfind $hget $highlight $hnick $hotline " +
                            "$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil " +
                            "$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect " +
                            "$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile " +
                            "$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive " +
                            "$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock " +
                            "$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer " +
                            "$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext " +
                            "$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode " +
                            "$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile " +
                            "$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly " +
                            "$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree " +
                            "$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo " +
                            "$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex " +
                            "$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline " +
                            "$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin " +
                            "$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname " +
                            "$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped " +
                            "$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp " +
                            "$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel " +
                            "$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver " +
                            "$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor");
  var keywords = parseWords("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice " +
                            "away background ban bcopy beep bread break breplace bset btrunc bunset bwrite " +
                            "channel clear clearall cline clipboard close cnick color comclose comopen " +
                            "comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver " +
                            "debug dec describe dialog did didtok disable disconnect dlevel dline dll " +
                            "dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace " +
                            "drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable " +
                            "events exit fclose filter findtext finger firewall flash flist flood flush " +
                            "flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove " +
                            "gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd " +
                            "halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear " +
                            "ialmark identd if ignore iline inc invite iuser join kick linesep links list " +
                            "load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice " +
                            "notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice " +
                            "qme qmsg query queryn quit raw reload remini remote remove rename renwin " +
                            "reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini " +
                            "say scid scon server set showmirc signam sline sockaccept sockclose socklist " +
                            "socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite " +
                            "sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize " +
                            "toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho " +
                            "var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum " +
                            "isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower " +
                            "isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs " +
                            "elseif else goto menu nicklist status title icon size option text edit " +
                            "button check radio box scroll list combo link tab item");
  var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch");
  var isOperatorChar = /[+\-*&%=<>!?^\/\|]/;
  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }
  function tokenBase(stream, state) {
    var beforeParams = state.beforeParams;
    state.beforeParams = false;
    var ch = stream.next();
    if (/[\[\]{}\(\),\.]/.test(ch)) {
      if (ch == "(" && beforeParams) state.inParams = true;
      else if (ch == ")") state.inParams = false;
      return null;
    }
    else if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    else if (ch == "\\") {
      stream.eat("\\");
      stream.eat(/./);
      return "number";
    }
    else if (ch == "/" && stream.eat("*")) {
      return chain(stream, state, tokenComment);
    }
    else if (ch == ";" && stream.match(/ *\( *\(/)) {
      return chain(stream, state, tokenUnparsed);
    }
    else if (ch == ";" && !state.inParams) {
      stream.skipToEnd();
      return "comment";
    }
    else if (ch == '"') {
      stream.eat(/"/);
      return "keyword";
    }
    else if (ch == "$") {
      stream.eatWhile(/[$_a-z0-9A-Z\.:]/);
      if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {
        return "keyword";
      }
      else {
        state.beforeParams = true;
        return "builtin";
      }
    }
    else if (ch == "%") {
      stream.eatWhile(/[^,\s()]/);
      state.beforeParams = true;
      return "string";
    }
    else if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    else {
      stream.eatWhile(/[\w\$_{}]/);
      var word = stream.current().toLowerCase();
      if (keywords && keywords.propertyIsEnumerable(word))
        return "keyword";
      if (functions && functions.propertyIsEnumerable(word)) {
        state.beforeParams = true;
        return "keyword";
      }
      return null;
    }
  }
  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }
  function tokenUnparsed(stream, state) {
    var maybeEnd = 0, ch;
    while (ch = stream.next()) {
      if (ch == ";" && maybeEnd == 2) {
        state.tokenize = tokenBase;
        break;
      }
      if (ch == ")")
        maybeEnd++;
      else if (ch != " ")
        maybeEnd = 0;
    }
    return "meta";
  }
  return {
    startState: function() {
      return {
        tokenize: tokenBase,
        beforeParams: false,
        inParams: false
      };
    },
    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      return state.tokenize(stream, state);
    }
  };
});

});
editors/codemirror/mode/mirc/mirc.min.js000064400000014033152177723720014330 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMIME("text/mirc","mirc"),a.defineMode("mirc",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b,c){return b.tokenize=c,c(a,b)}function c(a,c){var j=c.beforeParams;c.beforeParams=!1;var k=a.next();if(/[\[\]{}\(\),\.]/.test(k))return"("==k&&j?c.inParams=!0:")"==k&&(c.inParams=!1),null;if(/\d/.test(k))return a.eatWhile(/[\w\.]/),"number";if("\\"==k)return a.eat("\\"),a.eat(/./),"number";if("/"==k&&a.eat("*"))return b(a,c,d);if(";"==k&&a.match(/ *\( *\(/))return b(a,c,e);if(";"!=k||c.inParams){if('"'==k)return a.eat(/"/),"keyword";if("$"==k)return a.eatWhile(/[$_a-z0-9A-Z\.:]/),f&&f.propertyIsEnumerable(a.current().toLowerCase())?"keyword":(c.beforeParams=!0,"builtin");if("%"==k)return a.eatWhile(/[^,\s()]/),c.beforeParams=!0,"string";if(i.test(k))return a.eatWhile(i),"operator";a.eatWhile(/[\w\$_{}]/);var l=a.current().toLowerCase();return g&&g.propertyIsEnumerable(l)?"keyword":h&&h.propertyIsEnumerable(l)?(c.beforeParams=!0,"keyword"):null}return a.skipToEnd(),"comment"}function d(a,b){for(var d,e=!1;d=a.next();){if("/"==d&&e){b.tokenize=c;break}e="*"==d}return"comment"}function e(a,b){for(var d,e=0;d=a.next();){if(";"==d&&2==e){b.tokenize=c;break}")"==d?e++:" "!=d&&(e=0)}return"meta"}var f=a("$! $$ $& $? $+ $abook $abs $active $activecid $activewid $address $addtok $agent $agentname $agentstat $agentver $alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime $asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind $binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes $chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color $com $comcall $comchan $comerr $compact $compress $comval $cos $count $cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight $dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress $deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll $dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error $eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir $finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve $fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt $group $halted $hash $height $hfind $hget $highlight $hnick $hotline $hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil $inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect $insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile $isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive $lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock $lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer $maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext $menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode $modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile $nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly $opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree $pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo $readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex $reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline $sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin $site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname $sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped $syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp $timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel $ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver $version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor"),g=a("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice away background ban bcopy beep bread break breplace bset btrunc bunset bwrite channel clear clearall cline clipboard close cnick color comclose comopen comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver debug dec describe dialog did didtok disable disconnect dlevel dline dll dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable events exit fclose filter findtext finger firewall flash flist flood flush flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear ialmark identd if ignore iline inc invite iuser join kick linesep links list load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice qme qmsg query queryn quit raw reload remini remote remove rename renwin reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini say scid scon server set showmirc signam sline sockaccept sockclose socklist socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs elseif else goto menu nicklist status title icon size option text edit button check radio box scroll list combo link tab item"),h=a("if elseif else and not or eq ne in ni for foreach while switch"),i=/[+\-*&%=<>!?^\/\|]/;return{startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)}}}))}));editors/codemirror/mode/sieve/sieve.js000064400000010275152177723720014114 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("sieve", function(config) {
  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  var keywords = words("if elsif else stop require");
  var atoms = words("true false not");
  var indentUnit = config.indentUnit;

  function tokenBase(stream, state) {

    var ch = stream.next();
    if (ch == "/" && stream.eat("*")) {
      state.tokenize = tokenCComment;
      return tokenCComment(stream, state);
    }

    if (ch === '#') {
      stream.skipToEnd();
      return "comment";
    }

    if (ch == "\"") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }

    if (ch == "(") {
      state._indent.push("(");
      // add virtual angel wings so that editor behaves...
      // ...more sane incase of broken brackets
      state._indent.push("{");
      return null;
    }

    if (ch === "{") {
      state._indent.push("{");
      return null;
    }

    if (ch == ")")  {
      state._indent.pop();
      state._indent.pop();
    }

    if (ch === "}") {
      state._indent.pop();
      return null;
    }

    if (ch == ",")
      return null;

    if (ch == ";")
      return null;


    if (/[{}\(\),;]/.test(ch))
      return null;

    // 1*DIGIT "K" / "M" / "G"
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\d]/);
      stream.eat(/[KkMmGg]/);
      return "number";
    }

    // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_")
    if (ch == ":") {
      stream.eatWhile(/[a-zA-Z_]/);
      stream.eatWhile(/[a-zA-Z0-9_]/);

      return "operator";
    }

    stream.eatWhile(/\w/);
    var cur = stream.current();

    // "text:" *(SP / HTAB) (hash-comment / CRLF)
    // *(multiline-literal / multiline-dotstart)
    // "." CRLF
    if ((cur == "text") && stream.eat(":"))
    {
      state.tokenize = tokenMultiLineString;
      return "string";
    }

    if (keywords.propertyIsEnumerable(cur))
      return "keyword";

    if (atoms.propertyIsEnumerable(cur))
      return "atom";

    return null;
  }

  function tokenMultiLineString(stream, state)
  {
    state._multiLineString = true;
    // the first line is special it may contain a comment
    if (!stream.sol()) {
      stream.eatSpace();

      if (stream.peek() == "#") {
        stream.skipToEnd();
        return "comment";
      }

      stream.skipToEnd();
      return "string";
    }

    if ((stream.next() == ".")  && (stream.eol()))
    {
      state._multiLineString = false;
      state.tokenize = tokenBase;
    }

    return "string";
  }

  function tokenCComment(stream, state) {
    var maybeEnd = false, ch;
    while ((ch = stream.next()) != null) {
      if (maybeEnd && ch == "/") {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped)
          break;
        escaped = !escaped && ch == "\\";
      }
      if (!escaped) state.tokenize = tokenBase;
      return "string";
    };
  }

  return {
    startState: function(base) {
      return {tokenize: tokenBase,
              baseIndent: base || 0,
              _indent: []};
    },

    token: function(stream, state) {
      if (stream.eatSpace())
        return null;

      return (state.tokenize || tokenBase)(stream, state);
    },

    indent: function(state, _textAfter) {
      var length = state._indent.length;
      if (_textAfter && (_textAfter[0] == "}"))
        length--;

      if (length <0)
        length = 0;

      return length * indentUnit;
    },

    electricChars: "}"
  };
});

CodeMirror.defineMIME("application/sieve", "sieve");

});
editors/codemirror/mode/sieve/sieve.min.js000064400000003543152177723720014676 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("sieve",(function(a){function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b){var c=a.next();if("/"==c&&a.eat("*"))return b.tokenize=e,e(a,b);if("#"===c)return a.skipToEnd(),"comment";if('"'==c)return b.tokenize=f(c),b.tokenize(a,b);if("("==c)return b._indent.push("("),b._indent.push("{"),null;if("{"===c)return b._indent.push("{"),null;if(")"==c&&(b._indent.pop(),b._indent.pop()),"}"===c)return b._indent.pop(),null;if(","==c)return null;if(";"==c)return null;if(/[{}\(\),;]/.test(c))return null;if(/\d/.test(c))return a.eatWhile(/[\d]/),a.eat(/[KkMmGg]/),"number";if(":"==c)return a.eatWhile(/[a-zA-Z_]/),a.eatWhile(/[a-zA-Z0-9_]/),"operator";a.eatWhile(/\w/);var i=a.current();return"text"==i&&a.eat(":")?(b.tokenize=d,"string"):g.propertyIsEnumerable(i)?"keyword":h.propertyIsEnumerable(i)?"atom":null}function d(a,b){return b._multiLineString=!0,a.sol()?("."==a.next()&&a.eol()&&(b._multiLineString=!1,b.tokenize=c),"string"):(a.eatSpace(),"#"==a.peek()?(a.skipToEnd(),"comment"):(a.skipToEnd(),"string"))}function e(a,b){for(var d,e=!1;null!=(d=a.next());){if(e&&"/"==d){b.tokenize=c;break}e="*"==d}return"comment"}function f(a){return function(b,d){for(var e,f=!1;null!=(e=b.next())&&(e!=a||f);)f=!f&&"\\"==e;return f||(d.tokenize=c),"string"}}var g=b("if elsif else stop require"),h=b("true false not"),i=a.indentUnit;return{startState:function(a){return{tokenize:c,baseIndent:a||0,_indent:[]}},token:function(a,b){return a.eatSpace()?null:(b.tokenize||c)(a,b)},indent:function(a,b){var c=a._indent.length;return b&&"}"==b[0]&&c--,c<0&&(c=0),c*i},electricChars:"}"}})),a.defineMIME("application/sieve","sieve")}));editors/codemirror/mode/jsx/jsx.min.js000064400000004462152177723720014061 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c,d){this.state=a,this.mode=b,this.depth=c,this.prev=d}function c(d){return new b(a.copyState(d.mode,d.state),d.mode,d.depth,d.prev&&c(d.prev))}a.defineMode("jsx",(function(d,e){function f(a){var b=a.tagName;a.tagName=null;var c=j.indent(a,"");return a.tagName=b,c}function g(a,b){return b.context.mode==j?h(a,b,b.context):i(a,b,b.context)}function h(c,e,h){if(2==h.depth)return c.match(/^.*?\*\//)?h.depth=1:c.skipToEnd(),"comment";if("{"==c.peek()){j.skipAttribute(h.state);var i=f(h.state),l=h.state.context;if(l&&c.match(/^[^>]*>\s*$/,!1)){for(;l.prev&&!l.startOfLine;)l=l.prev;l.startOfLine?i-=d.indentUnit:h.prev.state.lexical&&(i=h.prev.state.lexical.indented)}else 1==h.depth&&(i+=d.indentUnit);return e.context=new b(a.startState(k,i),k,0,e.context),null}if(1==h.depth){if("<"==c.peek())return j.skipAttribute(h.state),e.context=new b(a.startState(j,f(h.state)),j,0,e.context),null;if(c.match("//"))return c.skipToEnd(),"comment";if(c.match("/*"))return h.depth=2,g(c,e)}var m,n=j.token(c,h.state),o=c.current();return/\btag\b/.test(n)?/>$/.test(o)?h.state.context?h.depth=0:e.context=e.context.prev:/^</.test(o)&&(h.depth=1):!n&&(m=o.indexOf("{"))>-1&&c.backUp(o.length-m),n}function i(c,d,e){if("<"==c.peek()&&k.expressionAllowed(c,e.state))return k.skipExpression(e.state),d.context=new b(a.startState(j,k.indent(e.state,"")),j,0,d.context),null;var f=k.token(c,e.state);if(!f&&null!=e.depth){var g=c.current();"{"==g?e.depth++:"}"==g&&0==--e.depth&&(d.context=d.context.prev)}return f}var j=a.getMode(d,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),k=a.getMode(d,e&&e.base||"javascript");return{startState:function(){return{context:new b(a.startState(k),k)}},copyState:function(a){return{context:c(a.context)}},token:g,indent:function(a,b,c){return a.context.mode.indent(a.context.state,b,c)},innerMode:function(a){return a.context}}}),"xml","javascript"),a.defineMIME("text/jsx","jsx"),a.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})}));editors/codemirror/mode/jsx/jsx.js000064400000012147152177723720013276 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"

  // Depth means the amount of open braces in JS context, in XML
  // context 0 means not in tag, 1 means in tag, and 2 means in tag
  // and js block comment.
  function Context(state, mode, depth, prev) {
    this.state = state; this.mode = mode; this.depth = depth; this.prev = prev
  }

  function copyContext(context) {
    return new Context(CodeMirror.copyState(context.mode, context.state),
                       context.mode,
                       context.depth,
                       context.prev && copyContext(context.prev))
  }

  CodeMirror.defineMode("jsx", function(config, modeConfig) {
    var xmlMode = CodeMirror.getMode(config, {name: "xml", allowMissing: true, multilineTagIndentPastTag: false, allowMissingTagName: true})
    var jsMode = CodeMirror.getMode(config, modeConfig && modeConfig.base || "javascript")

    function flatXMLIndent(state) {
      var tagName = state.tagName
      state.tagName = null
      var result = xmlMode.indent(state, "")
      state.tagName = tagName
      return result
    }

    function token(stream, state) {
      if (state.context.mode == xmlMode)
        return xmlToken(stream, state, state.context)
      else
        return jsToken(stream, state, state.context)
    }

    function xmlToken(stream, state, cx) {
      if (cx.depth == 2) { // Inside a JS /* */ comment
        if (stream.match(/^.*?\*\//)) cx.depth = 1
        else stream.skipToEnd()
        return "comment"
      }

      if (stream.peek() == "{") {
        xmlMode.skipAttribute(cx.state)

        var indent = flatXMLIndent(cx.state), xmlContext = cx.state.context
        // If JS starts on same line as tag
        if (xmlContext && stream.match(/^[^>]*>\s*$/, false)) {
          while (xmlContext.prev && !xmlContext.startOfLine)
            xmlContext = xmlContext.prev
          // If tag starts the line, use XML indentation level
          if (xmlContext.startOfLine) indent -= config.indentUnit
          // Else use JS indentation level
          else if (cx.prev.state.lexical) indent = cx.prev.state.lexical.indented
        // Else if inside of tag
        } else if (cx.depth == 1) {
          indent += config.indentUnit
        }

        state.context = new Context(CodeMirror.startState(jsMode, indent),
                                    jsMode, 0, state.context)
        return null
      }

      if (cx.depth == 1) { // Inside of tag
        if (stream.peek() == "<") { // Tag inside of tag
          xmlMode.skipAttribute(cx.state)
          state.context = new Context(CodeMirror.startState(xmlMode, flatXMLIndent(cx.state)),
                                      xmlMode, 0, state.context)
          return null
        } else if (stream.match("//")) {
          stream.skipToEnd()
          return "comment"
        } else if (stream.match("/*")) {
          cx.depth = 2
          return token(stream, state)
        }
      }

      var style = xmlMode.token(stream, cx.state), cur = stream.current(), stop
      if (/\btag\b/.test(style)) {
        if (/>$/.test(cur)) {
          if (cx.state.context) cx.depth = 0
          else state.context = state.context.prev
        } else if (/^</.test(cur)) {
          cx.depth = 1
        }
      } else if (!style && (stop = cur.indexOf("{")) > -1) {
        stream.backUp(cur.length - stop)
      }
      return style
    }

    function jsToken(stream, state, cx) {
      if (stream.peek() == "<" && jsMode.expressionAllowed(stream, cx.state)) {
        jsMode.skipExpression(cx.state)
        state.context = new Context(CodeMirror.startState(xmlMode, jsMode.indent(cx.state, "")),
                                    xmlMode, 0, state.context)
        return null
      }

      var style = jsMode.token(stream, cx.state)
      if (!style && cx.depth != null) {
        var cur = stream.current()
        if (cur == "{") {
          cx.depth++
        } else if (cur == "}") {
          if (--cx.depth == 0) state.context = state.context.prev
        }
      }
      return style
    }

    return {
      startState: function() {
        return {context: new Context(CodeMirror.startState(jsMode), jsMode)}
      },

      copyState: function(state) {
        return {context: copyContext(state.context)}
      },

      token: token,

      indent: function(state, textAfter, fullLine) {
        return state.context.mode.indent(state.context.state, textAfter, fullLine)
      },

      innerMode: function(state) {
        return state.context
      }
    }
  }, "xml", "javascript")

  CodeMirror.defineMIME("text/jsx", "jsx")
  CodeMirror.defineMIME("text/typescript-jsx", {name: "jsx", base: {name: "javascript", typescript: true}})
});
editors/codemirror/mode/pug/pug.min.js000064400000020001152177723720014022 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../javascript/javascript"),require("../css/css"),require("../htmlmixed/htmlmixed")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../javascript/javascript","../css/css","../htmlmixed/htmlmixed"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("pug",(function(b){function c(){this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=a.startState(Z),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.scriptType="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken="",this.innerMode=null,this.innerState=null,this.innerModeForLine=!1}function d(a,b){if(a.sol()&&(b.javaScriptLine=!1,b.javaScriptLineExcludesColon=!1),b.javaScriptLine){if(b.javaScriptLineExcludesColon&&":"===a.peek())return b.javaScriptLine=!1,void(b.javaScriptLineExcludesColon=!1);var c=Z.token(a,b.jsState);return a.eol()&&(b.javaScriptLine=!1),c||!0}}function e(a,b){if(b.javaScriptArguments){if(0===b.javaScriptArgumentsDepth&&"("!==a.peek())return void(b.javaScriptArguments=!1);if("("===a.peek()?b.javaScriptArgumentsDepth++:")"===a.peek()&&b.javaScriptArgumentsDepth--,0===b.javaScriptArgumentsDepth)return void(b.javaScriptArguments=!1);var c=Z.token(a,b.jsState);return c||!0}}function f(a){if(a.match(/^yield\b/))return"keyword"}function g(a){if(a.match(/^(?:doctype) *([^\n]+)?/))return V}function h(a,b){if(a.match("#{"))return b.isInterpolating=!0,b.interpolationNesting=0,"punctuation"}function i(a,b){if(b.isInterpolating){if("}"===a.peek()){if(b.interpolationNesting--,b.interpolationNesting<0)return a.next(),b.isInterpolating=!1,"punctuation"}else"{"===a.peek()&&b.interpolationNesting++;return Z.token(a,b.jsState)||!0}}function j(a,b){if(a.match(/^case\b/))return b.javaScriptLine=!0,U}function k(a,b){if(a.match(/^when\b/))return b.javaScriptLine=!0,b.javaScriptLineExcludesColon=!0,U}function l(a){if(a.match(/^default\b/))return U}function m(a,b){if(a.match(/^extends?\b/))return b.restOfLine="string",U}function n(a,b){if(a.match(/^append\b/))return b.restOfLine="variable",U}function o(a,b){if(a.match(/^prepend\b/))return b.restOfLine="variable",U}function p(a,b){if(a.match(/^block\b *(?:(prepend|append)\b)?/))return b.restOfLine="variable",U}function q(a,b){if(a.match(/^include\b/))return b.restOfLine="string",U}function r(a,b){if(a.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&a.match("include"))return b.isIncludeFiltered=!0,U}function s(a,b){if(b.isIncludeFiltered){var c=B(a,b);return b.isIncludeFiltered=!1,b.restOfLine="string",c}}function t(a,b){if(a.match(/^mixin\b/))return b.javaScriptLine=!0,U}function u(a,b){return a.match(/^\+([-\w]+)/)?(a.match(/^\( *[-\w]+ *=/,!1)||(b.javaScriptArguments=!0,b.javaScriptArgumentsDepth=0),"variable"):a.match(/^\+#{/,!1)?(a.next(),b.mixinCallAfter=!0,h(a,b)):void 0}function v(a,b){if(b.mixinCallAfter)return b.mixinCallAfter=!1,a.match(/^\( *[-\w]+ *=/,!1)||(b.javaScriptArguments=!0,b.javaScriptArgumentsDepth=0),!0}function w(a,b){if(a.match(/^(if|unless|else if|else)\b/))return b.javaScriptLine=!0,U}function x(a,b){if(a.match(/^(- *)?(each|for)\b/))return b.isEach=!0,U}function y(a,b){if(b.isEach){if(a.match(/^ in\b/))return b.javaScriptLine=!0,b.isEach=!1,U;if(a.sol()||a.eol())b.isEach=!1;else if(a.next()){for(;!a.match(/^ in\b/,!1)&&a.next(););return"variable"}}}function z(a,b){if(a.match(/^while\b/))return b.javaScriptLine=!0,U}function A(a,b){var c;if(c=a.match(/^(\w(?:[-:\w]*\w)?)\/?/))return b.lastTag=c[1].toLowerCase(),"script"===b.lastTag&&(b.scriptType="application/javascript"),"tag"}function B(c,d){if(c.match(/^:([\w\-]+)/)){var e;return b&&b.innerModes&&(e=b.innerModes(c.current().substring(1))),e||(e=c.current().substring(1)),"string"==typeof e&&(e=a.getMode(b,e)),O(c,d,e),"atom"}}function C(a,b){if(a.match(/^(!?=|-)/))return b.javaScriptLine=!0,"punctuation"}function D(a){if(a.match(/^#([\w-]+)/))return W}function E(a){if(a.match(/^\.([\w-]+)/))return X}function F(a,b){if("("==a.peek())return a.next(),b.isAttrs=!0,b.attrsNest=[],b.inAttributeName=!0,b.attrValue="",b.attributeIsType=!1,"punctuation"}function G(b,c){if(c.isAttrs){if(Y[b.peek()]&&c.attrsNest.push(Y[b.peek()]),c.attrsNest[c.attrsNest.length-1]===b.peek())c.attrsNest.pop();else if(b.eat(")"))return c.isAttrs=!1,"punctuation";if(c.inAttributeName&&b.match(/^[^=,\)!]+/))return"="!==b.peek()&&"!"!==b.peek()||(c.inAttributeName=!1,c.jsState=a.startState(Z),"script"===c.lastTag&&"type"===b.current().trim().toLowerCase()?c.attributeIsType=!0:c.attributeIsType=!1),"attribute";var d=Z.token(b,c.jsState);if(c.attributeIsType&&"string"===d&&(c.scriptType=b.current().toString()),0===c.attrsNest.length&&("string"===d||"variable"===d||"keyword"===d))try{return Function("","var x "+c.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),c.inAttributeName=!0,c.attrValue="",b.backUp(b.current().length),G(b,c)}catch(a){}return c.attrValue+=b.current(),d||!0}}function H(a,b){if(a.match(/^&attributes\b/))return b.javaScriptArguments=!0,b.javaScriptArgumentsDepth=0,"keyword"}function I(a){if(a.sol()&&a.eatSpace())return"indent"}function J(a,b){if(a.match(/^ *\/\/(-)?([^\n]*)/))return b.indentOf=a.indentation(),b.indentToken="comment","comment"}function K(a){if(a.match(/^: */))return"colon"}function L(a,b){return a.match(/^(?:\| ?| )([^\n]+)/)?"string":a.match(/^(<[^\n]*)/,!1)?(O(a,b,"htmlmixed"),b.innerModeForLine=!0,P(a,b,!0)):void 0}function M(a,b){if(a.eat(".")){var c=null;return"script"===b.lastTag&&b.scriptType.toLowerCase().indexOf("javascript")!=-1?c=b.scriptType.toLowerCase().replace(/"|'/g,""):"style"===b.lastTag&&(c="css"),O(a,b,c),"dot"}}function N(a){return a.next(),null}function O(c,d,e){e=a.mimeModes[e]||e,e=b.innerModes?b.innerModes(e)||e:e,e=a.mimeModes[e]||e,e=a.getMode(b,e),d.indentOf=c.indentation(),e&&"null"!==e.name?d.innerMode=e:d.indentToken="string"}function P(b,c,d){return b.indentation()>c.indentOf||c.innerModeForLine&&!b.sol()||d?c.innerMode?(c.innerState||(c.innerState=c.innerMode.startState?a.startState(c.innerMode,b.indentation()):{}),b.hideFirstChars(c.indentOf+2,(function(){return c.innerMode.token(b,c.innerState)||!0}))):(b.skipToEnd(),c.indentToken):void(b.sol()&&(c.indentOf=1/0,c.indentToken=null,c.innerMode=null,c.innerState=null))}function Q(a,b){if(a.sol()&&(b.restOfLine=""),b.restOfLine){a.skipToEnd();var c=b.restOfLine;return b.restOfLine="",c}}function R(){return new c}function S(a){return a.copy()}function T(a,b){var c=P(a,b)||Q(a,b)||i(a,b)||s(a,b)||y(a,b)||G(a,b)||d(a,b)||e(a,b)||v(a,b)||f(a,b)||g(a,b)||h(a,b)||j(a,b)||k(a,b)||l(a,b)||m(a,b)||n(a,b)||o(a,b)||p(a,b)||q(a,b)||r(a,b)||t(a,b)||u(a,b)||w(a,b)||x(a,b)||z(a,b)||A(a,b)||B(a,b)||C(a,b)||D(a,b)||E(a,b)||F(a,b)||H(a,b)||I(a,b)||L(a,b)||J(a,b)||K(a,b)||M(a,b)||N(a,b);return c===!0?null:c}var U="keyword",V="meta",W="builtin",X="qualifier",Y={"{":"}","(":")","[":"]"},Z=a.getMode(b,"javascript");return c.prototype.copy=function(){var b=new c;return b.javaScriptLine=this.javaScriptLine,b.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,b.javaScriptArguments=this.javaScriptArguments,b.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,b.isInterpolating=this.isInterpolating,b.interpolationNesting=this.interpolationNesting,b.jsState=a.copyState(Z,this.jsState),b.innerMode=this.innerMode,this.innerMode&&this.innerState&&(b.innerState=a.copyState(this.innerMode,this.innerState)),b.restOfLine=this.restOfLine,b.isIncludeFiltered=this.isIncludeFiltered,b.isEach=this.isEach,b.lastTag=this.lastTag,b.scriptType=this.scriptType,b.isAttrs=this.isAttrs,b.attrsNest=this.attrsNest.slice(),b.inAttributeName=this.inAttributeName,b.attributeIsType=this.attributeIsType,b.attrValue=this.attrValue,b.indentOf=this.indentOf,b.indentToken=this.indentToken,b.innerModeForLine=this.innerModeForLine,b},{startState:R,copyState:S,token:T}}),"javascript","css","htmlmixed"),a.defineMIME("text/x-pug","pug"),a.defineMIME("text/x-jade","pug")}));editors/codemirror/mode/pug/pug.js000064400000037257152177723720013265 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../javascript/javascript"), require("../css/css"), require("../htmlmixed/htmlmixed"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../javascript/javascript", "../css/css", "../htmlmixed/htmlmixed"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("pug", function (config) {
  // token types
  var KEYWORD = 'keyword';
  var DOCTYPE = 'meta';
  var ID = 'builtin';
  var CLASS = 'qualifier';

  var ATTRS_NEST = {
    '{': '}',
    '(': ')',
    '[': ']'
  };

  var jsMode = CodeMirror.getMode(config, 'javascript');

  function State() {
    this.javaScriptLine = false;
    this.javaScriptLineExcludesColon = false;

    this.javaScriptArguments = false;
    this.javaScriptArgumentsDepth = 0;

    this.isInterpolating = false;
    this.interpolationNesting = 0;

    this.jsState = CodeMirror.startState(jsMode);

    this.restOfLine = '';

    this.isIncludeFiltered = false;
    this.isEach = false;

    this.lastTag = '';
    this.scriptType = '';

    // Attributes Mode
    this.isAttrs = false;
    this.attrsNest = [];
    this.inAttributeName = true;
    this.attributeIsType = false;
    this.attrValue = '';

    // Indented Mode
    this.indentOf = Infinity;
    this.indentToken = '';

    this.innerMode = null;
    this.innerState = null;

    this.innerModeForLine = false;
  }
  /**
   * Safely copy a state
   *
   * @return {State}
   */
  State.prototype.copy = function () {
    var res = new State();
    res.javaScriptLine = this.javaScriptLine;
    res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;
    res.javaScriptArguments = this.javaScriptArguments;
    res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;
    res.isInterpolating = this.isInterpolating;
    res.interpolationNesting = this.interpolationNesting;

    res.jsState = CodeMirror.copyState(jsMode, this.jsState);

    res.innerMode = this.innerMode;
    if (this.innerMode && this.innerState) {
      res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);
    }

    res.restOfLine = this.restOfLine;

    res.isIncludeFiltered = this.isIncludeFiltered;
    res.isEach = this.isEach;
    res.lastTag = this.lastTag;
    res.scriptType = this.scriptType;
    res.isAttrs = this.isAttrs;
    res.attrsNest = this.attrsNest.slice();
    res.inAttributeName = this.inAttributeName;
    res.attributeIsType = this.attributeIsType;
    res.attrValue = this.attrValue;
    res.indentOf = this.indentOf;
    res.indentToken = this.indentToken;

    res.innerModeForLine = this.innerModeForLine;

    return res;
  };

  function javaScript(stream, state) {
    if (stream.sol()) {
      // if javaScriptLine was set at end of line, ignore it
      state.javaScriptLine = false;
      state.javaScriptLineExcludesColon = false;
    }
    if (state.javaScriptLine) {
      if (state.javaScriptLineExcludesColon && stream.peek() === ':') {
        state.javaScriptLine = false;
        state.javaScriptLineExcludesColon = false;
        return;
      }
      var tok = jsMode.token(stream, state.jsState);
      if (stream.eol()) state.javaScriptLine = false;
      return tok || true;
    }
  }
  function javaScriptArguments(stream, state) {
    if (state.javaScriptArguments) {
      if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {
        state.javaScriptArguments = false;
        return;
      }
      if (stream.peek() === '(') {
        state.javaScriptArgumentsDepth++;
      } else if (stream.peek() === ')') {
        state.javaScriptArgumentsDepth--;
      }
      if (state.javaScriptArgumentsDepth === 0) {
        state.javaScriptArguments = false;
        return;
      }

      var tok = jsMode.token(stream, state.jsState);
      return tok || true;
    }
  }

  function yieldStatement(stream) {
    if (stream.match(/^yield\b/)) {
        return 'keyword';
    }
  }

  function doctype(stream) {
    if (stream.match(/^(?:doctype) *([^\n]+)?/)) {
        return DOCTYPE;
    }
  }

  function interpolation(stream, state) {
    if (stream.match('#{')) {
      state.isInterpolating = true;
      state.interpolationNesting = 0;
      return 'punctuation';
    }
  }

  function interpolationContinued(stream, state) {
    if (state.isInterpolating) {
      if (stream.peek() === '}') {
        state.interpolationNesting--;
        if (state.interpolationNesting < 0) {
          stream.next();
          state.isInterpolating = false;
          return 'punctuation';
        }
      } else if (stream.peek() === '{') {
        state.interpolationNesting++;
      }
      return jsMode.token(stream, state.jsState) || true;
    }
  }

  function caseStatement(stream, state) {
    if (stream.match(/^case\b/)) {
      state.javaScriptLine = true;
      return KEYWORD;
    }
  }

  function when(stream, state) {
    if (stream.match(/^when\b/)) {
      state.javaScriptLine = true;
      state.javaScriptLineExcludesColon = true;
      return KEYWORD;
    }
  }

  function defaultStatement(stream) {
    if (stream.match(/^default\b/)) {
      return KEYWORD;
    }
  }

  function extendsStatement(stream, state) {
    if (stream.match(/^extends?\b/)) {
      state.restOfLine = 'string';
      return KEYWORD;
    }
  }

  function append(stream, state) {
    if (stream.match(/^append\b/)) {
      state.restOfLine = 'variable';
      return KEYWORD;
    }
  }
  function prepend(stream, state) {
    if (stream.match(/^prepend\b/)) {
      state.restOfLine = 'variable';
      return KEYWORD;
    }
  }
  function block(stream, state) {
    if (stream.match(/^block\b *(?:(prepend|append)\b)?/)) {
      state.restOfLine = 'variable';
      return KEYWORD;
    }
  }

  function include(stream, state) {
    if (stream.match(/^include\b/)) {
      state.restOfLine = 'string';
      return KEYWORD;
    }
  }

  function includeFiltered(stream, state) {
    if (stream.match(/^include:([a-zA-Z0-9\-]+)/, false) && stream.match('include')) {
      state.isIncludeFiltered = true;
      return KEYWORD;
    }
  }

  function includeFilteredContinued(stream, state) {
    if (state.isIncludeFiltered) {
      var tok = filter(stream, state);
      state.isIncludeFiltered = false;
      state.restOfLine = 'string';
      return tok;
    }
  }

  function mixin(stream, state) {
    if (stream.match(/^mixin\b/)) {
      state.javaScriptLine = true;
      return KEYWORD;
    }
  }

  function call(stream, state) {
    if (stream.match(/^\+([-\w]+)/)) {
      if (!stream.match(/^\( *[-\w]+ *=/, false)) {
        state.javaScriptArguments = true;
        state.javaScriptArgumentsDepth = 0;
      }
      return 'variable';
    }
    if (stream.match(/^\+#{/, false)) {
      stream.next();
      state.mixinCallAfter = true;
      return interpolation(stream, state);
    }
  }
  function callArguments(stream, state) {
    if (state.mixinCallAfter) {
      state.mixinCallAfter = false;
      if (!stream.match(/^\( *[-\w]+ *=/, false)) {
        state.javaScriptArguments = true;
        state.javaScriptArgumentsDepth = 0;
      }
      return true;
    }
  }

  function conditional(stream, state) {
    if (stream.match(/^(if|unless|else if|else)\b/)) {
      state.javaScriptLine = true;
      return KEYWORD;
    }
  }

  function each(stream, state) {
    if (stream.match(/^(- *)?(each|for)\b/)) {
      state.isEach = true;
      return KEYWORD;
    }
  }
  function eachContinued(stream, state) {
    if (state.isEach) {
      if (stream.match(/^ in\b/)) {
        state.javaScriptLine = true;
        state.isEach = false;
        return KEYWORD;
      } else if (stream.sol() || stream.eol()) {
        state.isEach = false;
      } else if (stream.next()) {
        while (!stream.match(/^ in\b/, false) && stream.next());
        return 'variable';
      }
    }
  }

  function whileStatement(stream, state) {
    if (stream.match(/^while\b/)) {
      state.javaScriptLine = true;
      return KEYWORD;
    }
  }

  function tag(stream, state) {
    var captures;
    if (captures = stream.match(/^(\w(?:[-:\w]*\w)?)\/?/)) {
      state.lastTag = captures[1].toLowerCase();
      if (state.lastTag === 'script') {
        state.scriptType = 'application/javascript';
      }
      return 'tag';
    }
  }

  function filter(stream, state) {
    if (stream.match(/^:([\w\-]+)/)) {
      var innerMode;
      if (config && config.innerModes) {
        innerMode = config.innerModes(stream.current().substring(1));
      }
      if (!innerMode) {
        innerMode = stream.current().substring(1);
      }
      if (typeof innerMode === 'string') {
        innerMode = CodeMirror.getMode(config, innerMode);
      }
      setInnerMode(stream, state, innerMode);
      return 'atom';
    }
  }

  function code(stream, state) {
    if (stream.match(/^(!?=|-)/)) {
      state.javaScriptLine = true;
      return 'punctuation';
    }
  }

  function id(stream) {
    if (stream.match(/^#([\w-]+)/)) {
      return ID;
    }
  }

  function className(stream) {
    if (stream.match(/^\.([\w-]+)/)) {
      return CLASS;
    }
  }

  function attrs(stream, state) {
    if (stream.peek() == '(') {
      stream.next();
      state.isAttrs = true;
      state.attrsNest = [];
      state.inAttributeName = true;
      state.attrValue = '';
      state.attributeIsType = false;
      return 'punctuation';
    }
  }

  function attrsContinued(stream, state) {
    if (state.isAttrs) {
      if (ATTRS_NEST[stream.peek()]) {
        state.attrsNest.push(ATTRS_NEST[stream.peek()]);
      }
      if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {
        state.attrsNest.pop();
      } else  if (stream.eat(')')) {
        state.isAttrs = false;
        return 'punctuation';
      }
      if (state.inAttributeName && stream.match(/^[^=,\)!]+/)) {
        if (stream.peek() === '=' || stream.peek() === '!') {
          state.inAttributeName = false;
          state.jsState = CodeMirror.startState(jsMode);
          if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {
            state.attributeIsType = true;
          } else {
            state.attributeIsType = false;
          }
        }
        return 'attribute';
      }

      var tok = jsMode.token(stream, state.jsState);
      if (state.attributeIsType && tok === 'string') {
        state.scriptType = stream.current().toString();
      }
      if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {
        try {
          Function('', 'var x ' + state.attrValue.replace(/,\s*$/, '').replace(/^!/, ''));
          state.inAttributeName = true;
          state.attrValue = '';
          stream.backUp(stream.current().length);
          return attrsContinued(stream, state);
        } catch (ex) {
          //not the end of an attribute
        }
      }
      state.attrValue += stream.current();
      return tok || true;
    }
  }

  function attributesBlock(stream, state) {
    if (stream.match(/^&attributes\b/)) {
      state.javaScriptArguments = true;
      state.javaScriptArgumentsDepth = 0;
      return 'keyword';
    }
  }

  function indent(stream) {
    if (stream.sol() && stream.eatSpace()) {
      return 'indent';
    }
  }

  function comment(stream, state) {
    if (stream.match(/^ *\/\/(-)?([^\n]*)/)) {
      state.indentOf = stream.indentation();
      state.indentToken = 'comment';
      return 'comment';
    }
  }

  function colon(stream) {
    if (stream.match(/^: */)) {
      return 'colon';
    }
  }

  function text(stream, state) {
    if (stream.match(/^(?:\| ?| )([^\n]+)/)) {
      return 'string';
    }
    if (stream.match(/^(<[^\n]*)/, false)) {
      // html string
      setInnerMode(stream, state, 'htmlmixed');
      state.innerModeForLine = true;
      return innerMode(stream, state, true);
    }
  }

  function dot(stream, state) {
    if (stream.eat('.')) {
      var innerMode = null;
      if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {
        innerMode = state.scriptType.toLowerCase().replace(/"|'/g, '');
      } else if (state.lastTag === 'style') {
        innerMode = 'css';
      }
      setInnerMode(stream, state, innerMode);
      return 'dot';
    }
  }

  function fail(stream) {
    stream.next();
    return null;
  }


  function setInnerMode(stream, state, mode) {
    mode = CodeMirror.mimeModes[mode] || mode;
    mode = config.innerModes ? config.innerModes(mode) || mode : mode;
    mode = CodeMirror.mimeModes[mode] || mode;
    mode = CodeMirror.getMode(config, mode);
    state.indentOf = stream.indentation();

    if (mode && mode.name !== 'null') {
      state.innerMode = mode;
    } else {
      state.indentToken = 'string';
    }
  }
  function innerMode(stream, state, force) {
    if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {
      if (state.innerMode) {
        if (!state.innerState) {
          state.innerState = state.innerMode.startState ? CodeMirror.startState(state.innerMode, stream.indentation()) : {};
        }
        return stream.hideFirstChars(state.indentOf + 2, function () {
          return state.innerMode.token(stream, state.innerState) || true;
        });
      } else {
        stream.skipToEnd();
        return state.indentToken;
      }
    } else if (stream.sol()) {
      state.indentOf = Infinity;
      state.indentToken = null;
      state.innerMode = null;
      state.innerState = null;
    }
  }
  function restOfLine(stream, state) {
    if (stream.sol()) {
      // if restOfLine was set at end of line, ignore it
      state.restOfLine = '';
    }
    if (state.restOfLine) {
      stream.skipToEnd();
      var tok = state.restOfLine;
      state.restOfLine = '';
      return tok;
    }
  }


  function startState() {
    return new State();
  }
  function copyState(state) {
    return state.copy();
  }
  /**
   * Get the next token in the stream
   *
   * @param {Stream} stream
   * @param {State} state
   */
  function nextToken(stream, state) {
    var tok = innerMode(stream, state)
      || restOfLine(stream, state)
      || interpolationContinued(stream, state)
      || includeFilteredContinued(stream, state)
      || eachContinued(stream, state)
      || attrsContinued(stream, state)
      || javaScript(stream, state)
      || javaScriptArguments(stream, state)
      || callArguments(stream, state)

      || yieldStatement(stream, state)
      || doctype(stream, state)
      || interpolation(stream, state)
      || caseStatement(stream, state)
      || when(stream, state)
      || defaultStatement(stream, state)
      || extendsStatement(stream, state)
      || append(stream, state)
      || prepend(stream, state)
      || block(stream, state)
      || include(stream, state)
      || includeFiltered(stream, state)
      || mixin(stream, state)
      || call(stream, state)
      || conditional(stream, state)
      || each(stream, state)
      || whileStatement(stream, state)
      || tag(stream, state)
      || filter(stream, state)
      || code(stream, state)
      || id(stream, state)
      || className(stream, state)
      || attrs(stream, state)
      || attributesBlock(stream, state)
      || indent(stream, state)
      || text(stream, state)
      || comment(stream, state)
      || colon(stream, state)
      || dot(stream, state)
      || fail(stream, state);

    return tok === true ? null : tok;
  }
  return {
    startState: startState,
    copyState: copyState,
    token: nextToken
  };
}, 'javascript', 'css', 'htmlmixed');

CodeMirror.defineMIME('text/x-pug', 'pug');
CodeMirror.defineMIME('text/x-jade', 'pug');

});
editors/codemirror/mode/go/go.min.js000064400000005771152177723720013467 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("go",(function(b){function c(a,b){var c=a.next();if('"'==c||"'"==c||"`"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[\d\.]/.test(c))return"."==c?a.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==c?a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^0[0-7]+/):a.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(c))return i=c,null;if("/"==c){if(a.eat("*"))return b.tokenize=e,e(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(m.test(c))return a.eatWhile(m),"operator";a.eatWhile(/[\w\$_\xa1-\uffff]/);var f=a.current();return k.propertyIsEnumerable(f)?("case"!=f&&"default"!=f||(i="case"),"keyword"):l.propertyIsEnumerable(f)?"atom":"variable"}function d(a){return function(b,d){for(var e,f=!1,g=!1;null!=(e=b.next());){if(e==a&&!f){g=!0;break}f=!f&&"`"!=a&&"\\"==e}return(g||!f&&"`"!=a)&&(d.tokenize=c),"string"}}function e(a,b){for(var d,e=!1;d=a.next();){if("/"==d&&e){b.tokenize=c;break}e="*"==d}return"comment"}function f(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function g(a,b,c){return a.context=new f(a.indented,b,c,null,a.context)}function h(a){if(a.context.prev){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}}var i,j=b.indentUnit,k={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0},l={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},m=/[+\-*&^%:=<>!|\/]/;return{startState:function(a){return{tokenize:null,context:new f((a||0)-j,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0,"case"==d.type&&(d.type="}")),a.eatSpace())return null;i=null;var e=(b.tokenize||c)(a,b);return"comment"==e?e:(null==d.align&&(d.align=!0),"{"==i?g(b,a.column(),"}"):"["==i?g(b,a.column(),"]"):"("==i?g(b,a.column(),")"):"case"==i?d.type="case":"}"==i&&"}"==d.type?h(b):i==d.type&&h(b),b.startOfLine=!1,e)},indent:function(b,d){if(b.tokenize!=c&&null!=b.tokenize)return a.Pass;var e=b.context,f=d&&d.charAt(0);if("case"==e.type&&/^(?:case|default)\b/.test(d))return b.context.type="}",e.indented;var g=f==e.type;return e.align?e.column+(g?0:1):e.indented+(g?0:j)},electricChars:"{}):",closeBrackets:"()[]{}''\"\"``",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}})),a.defineMIME("text/x-go","go")}));editors/codemirror/mode/go/go.js000064400000013617152177723720012703 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("go", function(config) {
  var indentUnit = config.indentUnit;

  var keywords = {
    "break":true, "case":true, "chan":true, "const":true, "continue":true,
    "default":true, "defer":true, "else":true, "fallthrough":true, "for":true,
    "func":true, "go":true, "goto":true, "if":true, "import":true,
    "interface":true, "map":true, "package":true, "range":true, "return":true,
    "select":true, "struct":true, "switch":true, "type":true, "var":true,
    "bool":true, "byte":true, "complex64":true, "complex128":true,
    "float32":true, "float64":true, "int8":true, "int16":true, "int32":true,
    "int64":true, "string":true, "uint8":true, "uint16":true, "uint32":true,
    "uint64":true, "int":true, "uint":true, "uintptr":true, "error": true,
    "rune":true
  };

  var atoms = {
    "true":true, "false":true, "iota":true, "nil":true, "append":true,
    "cap":true, "close":true, "complex":true, "copy":true, "delete":true, "imag":true,
    "len":true, "make":true, "new":true, "panic":true, "print":true,
    "println":true, "real":true, "recover":true
  };

  var isOperatorChar = /[+\-*&^%:=<>!|\/]/;

  var curPunc;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"' || ch == "'" || ch == "`") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (/[\d\.]/.test(ch)) {
      if (ch == ".") {
        stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/);
      } else if (ch == "0") {
        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);
      } else {
        stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/);
      }
      return "number";
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_\xa1-\uffff]/);
    var cur = stream.current();
    if (keywords.propertyIsEnumerable(cur)) {
      if (cur == "case" || cur == "default") curPunc = "case";
      return "keyword";
    }
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && quote != "`" && next == "\\";
      }
      if (end || !(escaped || quote == "`"))
        state.tokenize = tokenBase;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    return state.context = new Context(state.indented, col, type, null, state.context);
  }
  function popContext(state) {
    if (!state.context.prev) return;
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
        if (ctx.type == "case") ctx.type = "}";
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment") return style;
      if (ctx.align == null) ctx.align = true;

      if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "case") ctx.type = "case";
      else if (curPunc == "}" && ctx.type == "}") popContext(state);
      else if (curPunc == ctx.type) popContext(state);
      state.startOfLine = false;
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
      if (ctx.type == "case" && /^(?:case|default)\b/.test(textAfter)) {
        state.context.type = "}";
        return ctx.indented;
      }
      var closing = firstChar == ctx.type;
      if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "{}):",
    closeBrackets: "()[]{}''\"\"``",
    fold: "brace",
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: "//"
  };
});

CodeMirror.defineMIME("text/x-go", "go");

});
editors/codemirror/mode/spreadsheet/spreadsheet.min.js000064400000002563152177723720017267 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("spreadsheet",(function(){return{startState:function(){return{stringType:null,stack:[]}},token:function(a,b){if(a){switch(0===b.stack.length&&('"'!=a.peek()&&"'"!=a.peek()||(b.stringType=a.peek(),a.next(),b.stack.unshift("string"))),b.stack[0]){case"string":for(;"string"===b.stack[0]&&!a.eol();)a.peek()===b.stringType?(a.next(),b.stack.shift()):"\\"===a.peek()?(a.next(),a.next()):a.match(/^.[^\\\"\']*/);return"string";case"characterClass":for(;"characterClass"===b.stack[0]&&!a.eol();)a.match(/^[^\]\\]+/)||a.match(/^\\./)||b.stack.shift();return"operator"}var c=a.peek();switch(c){case"[":return a.next(),b.stack.unshift("characterClass"),"bracket";case":":return a.next(),"operator";case"\\":return a.match(/\\[a-z]+/)?"string-2":(a.next(),"atom");case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":return a.next(),"atom";case"$":return a.next(),"builtin"}return a.match(/\d+/)?a.match(/^\w+/)?"error":"number":a.match(/^[a-zA-Z_]\w*/)?a.match(/(?=[\(.])/,!1)?"keyword":"variable-2":["[","]","(",")","{","}"].indexOf(c)!=-1?(a.next(),"bracket"):(a.eatSpace()||a.next(),null)}}}})),a.defineMIME("text/x-spreadsheet","spreadsheet")}));editors/codemirror/mode/spreadsheet/spreadsheet.js000064400000006104152177723720016500 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("spreadsheet", function () {
    return {
      startState: function () {
        return {
          stringType: null,
          stack: []
        };
      },
      token: function (stream, state) {
        if (!stream) return;

        //check for state changes
        if (state.stack.length === 0) {
          //strings
          if ((stream.peek() == '"') || (stream.peek() == "'")) {
            state.stringType = stream.peek();
            stream.next(); // Skip quote
            state.stack.unshift("string");
          }
        }

        //return state
        //stack has
        switch (state.stack[0]) {
        case "string":
          while (state.stack[0] === "string" && !stream.eol()) {
            if (stream.peek() === state.stringType) {
              stream.next(); // Skip quote
              state.stack.shift(); // Clear flag
            } else if (stream.peek() === "\\") {
              stream.next();
              stream.next();
            } else {
              stream.match(/^.[^\\\"\']*/);
            }
          }
          return "string";

        case "characterClass":
          while (state.stack[0] === "characterClass" && !stream.eol()) {
            if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./)))
              state.stack.shift();
          }
          return "operator";
        }

        var peek = stream.peek();

        //no stack
        switch (peek) {
        case "[":
          stream.next();
          state.stack.unshift("characterClass");
          return "bracket";
        case ":":
          stream.next();
          return "operator";
        case "\\":
          if (stream.match(/\\[a-z]+/)) return "string-2";
          else {
            stream.next();
            return "atom";
          }
        case ".":
        case ",":
        case ";":
        case "*":
        case "-":
        case "+":
        case "^":
        case "<":
        case "/":
        case "=":
          stream.next();
          return "atom";
        case "$":
          stream.next();
          return "builtin";
        }

        if (stream.match(/\d+/)) {
          if (stream.match(/^\w+/)) return "error";
          return "number";
        } else if (stream.match(/^[a-zA-Z_]\w*/)) {
          if (stream.match(/(?=[\(.])/, false)) return "keyword";
          return "variable-2";
        } else if (["[", "]", "(", ")", "{", "}"].indexOf(peek) != -1) {
          stream.next();
          return "bracket";
        } else if (!stream.eatSpace()) {
          stream.next();
        }
        return null;
      }
    };
  });

  CodeMirror.defineMIME("text/x-spreadsheet", "spreadsheet");
});
editors/codemirror/mode/mumps/mumps.js000064400000012353152177723720014167 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
  This MUMPS Language script was constructed using vbscript.js as a template.
*/

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("mumps", function() {
    function wordRegexp(words) {
      return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
    }

    var singleOperators = new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]");
    var doubleOperators = new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))");
    var singleDelimiters = new RegExp("^[\\.,:]");
    var brackets = new RegExp("[()]");
    var identifiers = new RegExp("^[%A-Za-z][A-Za-z0-9]*");
    var commandKeywords = ["break","close","do","else","for","goto", "halt", "hang", "if", "job","kill","lock","merge","new","open", "quit", "read", "set", "tcommit", "trollback", "tstart", "use", "view", "write", "xecute", "b","c","d","e","f","g", "h", "i", "j","k","l","m","n","o", "q", "r", "s", "tc", "tro", "ts", "u", "v", "w", "x"];
    // The following list includes instrinsic functions _and_ special variables
    var intrinsicFuncsWords = ["\\$ascii", "\\$char", "\\$data", "\\$ecode", "\\$estack", "\\$etrap", "\\$extract", "\\$find", "\\$fnumber", "\\$get", "\\$horolog", "\\$io", "\\$increment", "\\$job", "\\$justify", "\\$length", "\\$name", "\\$next", "\\$order", "\\$piece", "\\$qlength", "\\$qsubscript", "\\$query", "\\$quit", "\\$random", "\\$reverse", "\\$select", "\\$stack", "\\$test", "\\$text", "\\$translate", "\\$view", "\\$x", "\\$y", "\\$a", "\\$c", "\\$d", "\\$e", "\\$ec", "\\$es", "\\$et", "\\$f", "\\$fn", "\\$g", "\\$h", "\\$i", "\\$j", "\\$l", "\\$n", "\\$na", "\\$o", "\\$p", "\\$q", "\\$ql", "\\$qs", "\\$r", "\\$re", "\\$s", "\\$st", "\\$t", "\\$tr", "\\$v", "\\$z"];
    var intrinsicFuncs = wordRegexp(intrinsicFuncsWords);
    var command = wordRegexp(commandKeywords);

    function tokenBase(stream, state) {
      if (stream.sol()) {
        state.label = true;
        state.commandMode = 0;
      }

      // The <space> character has meaning in MUMPS. Ignoring consecutive
      // spaces would interfere with interpreting whether the next non-space
      // character belongs to the command or argument context.

      // Examine each character and update a mode variable whose interpretation is:
      //   >0 => command    0 => argument    <0 => command post-conditional
      var ch = stream.peek();

      if (ch == " " || ch == "\t") { // Pre-process <space>
        state.label = false;
        if (state.commandMode == 0)
          state.commandMode = 1;
        else if ((state.commandMode < 0) || (state.commandMode == 2))
          state.commandMode = 0;
      } else if ((ch != ".") && (state.commandMode > 0)) {
        if (ch == ":")
          state.commandMode = -1;   // SIS - Command post-conditional
        else
          state.commandMode = 2;
      }

      // Do not color parameter list as line tag
      if ((ch === "(") || (ch === "\u0009"))
        state.label = false;

      // MUMPS comment starts with ";"
      if (ch === ";") {
        stream.skipToEnd();
        return "comment";
      }

      // Number Literals // SIS/RLM - MUMPS permits canonic number followed by concatenate operator
      if (stream.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/))
        return "number";

      // Handle Strings
      if (ch == '"') {
        if (stream.skipTo('"')) {
          stream.next();
          return "string";
        } else {
          stream.skipToEnd();
          return "error";
        }
      }

      // Handle operators and Delimiters
      if (stream.match(doubleOperators) || stream.match(singleOperators))
        return "operator";

      // Prevents leading "." in DO block from falling through to error
      if (stream.match(singleDelimiters))
        return null;

      if (brackets.test(ch)) {
        stream.next();
        return "bracket";
      }

      if (state.commandMode > 0 && stream.match(command))
        return "variable-2";

      if (stream.match(intrinsicFuncs))
        return "builtin";

      if (stream.match(identifiers))
        return "variable";

      // Detect dollar-sign when not a documented intrinsic function
      // "^" may introduce a GVN or SSVN - Color same as function
      if (ch === "$" || ch === "^") {
        stream.next();
        return "builtin";
      }

      // MUMPS Indirection
      if (ch === "@") {
        stream.next();
        return "string-2";
      }

      if (/[\w%]/.test(ch)) {
        stream.eatWhile(/[\w%]/);
        return "variable";
      }

      // Handle non-detected items
      stream.next();
      return "error";
    }

    return {
      startState: function() {
        return {
          label: false,
          commandMode: 0
        };
      },

      token: function(stream, state) {
        var style = tokenBase(stream, state);
        if (state.label) return "tag";
        return style;
      }
    };
  });

  CodeMirror.defineMIME("text/x-mumps", "mumps");
});
editors/codemirror/mode/mumps/mumps.min.js000064400000004411152177723720014745 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("mumps",(function(){function a(a){return new RegExp("^(("+a.join(")|(")+"))\\b","i")}function b(a,b){a.sol()&&(b.label=!0,b.commandMode=0);var h=a.peek();return" "==h||"\t"==h?(b.label=!1,0==b.commandMode?b.commandMode=1:(b.commandMode<0||2==b.commandMode)&&(b.commandMode=0)):"."!=h&&b.commandMode>0&&(":"==h?b.commandMode=-1:b.commandMode=2),"("!==h&&"\t"!==h||(b.label=!1),";"===h?(a.skipToEnd(),"comment"):a.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/)?"number":'"'==h?a.skipTo('"')?(a.next(),"string"):(a.skipToEnd(),"error"):a.match(d)||a.match(c)?"operator":a.match(e)?null:f.test(h)?(a.next(),"bracket"):b.commandMode>0&&a.match(k)?"variable-2":a.match(j)?"builtin":a.match(g)?"variable":"$"===h||"^"===h?(a.next(),"builtin"):"@"===h?(a.next(),"string-2"):/[\w%]/.test(h)?(a.eatWhile(/[\w%]/),"variable"):(a.next(),"error")}var c=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]"),d=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))"),e=new RegExp("^[\\.,:]"),f=new RegExp("[()]"),g=new RegExp("^[%A-Za-z][A-Za-z0-9]*"),h=["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"],i=["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"],j=a(i),k=a(h);return{startState:function(){return{label:!1,commandMode:0}},token:function(a,c){var d=b(a,c);return c.label?"tag":d}}})),a.defineMIME("text/x-mumps","mumps")}));editors/codemirror/mode/cobol/cobol.js000064400000024061152177723720014060 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Author: Gautam Mehta
 * Branched from CodeMirror's Scheme mode
 */
(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("cobol", function () {
  var BUILTIN = "builtin", COMMENT = "comment", STRING = "string",
      ATOM = "atom", NUMBER = "number", KEYWORD = "keyword", MODTAG = "header",
      COBOLLINENUM = "def", PERIOD = "link";
  function makeKeywords(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  var atoms = makeKeywords("TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES ");
  var keywords = makeKeywords(
      "ACCEPT ACCESS ACQUIRE ADD ADDRESS " +
      "ADVANCING AFTER ALIAS ALL ALPHABET " +
      "ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED " +
      "ALSO ALTER ALTERNATE AND ANY " +
      "ARE AREA AREAS ARITHMETIC ASCENDING " +
      "ASSIGN AT ATTRIBUTE AUTHOR AUTO " +
      "AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS " +
      "B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP " +
      "BEFORE BELL BINARY BIT BITS " +
      "BLANK BLINK BLOCK BOOLEAN BOTTOM " +
      "BY CALL CANCEL CD CF " +
      "CH CHARACTER CHARACTERS CLASS CLOCK-UNITS " +
      "CLOSE COBOL CODE CODE-SET COL " +
      "COLLATING COLUMN COMMA COMMIT COMMITMENT " +
      "COMMON COMMUNICATION COMP COMP-0 COMP-1 " +
      "COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 " +
      "COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 " +
      "COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 " +
      "COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE " +
      "CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS " +
      "CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS " +
      "CONVERTING COPY CORR CORRESPONDING COUNT " +
      "CRT CRT-UNDER CURRENCY CURRENT CURSOR " +
      "DATA DATE DATE-COMPILED DATE-WRITTEN DAY " +
      "DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION " +
      "DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS " +
      "DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE " +
      "DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING " +
      "DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED " +
      "DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION " +
      "DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 " +
      "DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 " +
      "DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION " +
      "DOWN DROP DUPLICATE DUPLICATES DYNAMIC " +
      "EBCDIC EGI EJECT ELSE EMI " +
      "EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. " +
      "END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY " +
      "END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY " +
      "END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN " +
      "END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT " +
      "END-UNSTRING END-WRITE END-XML ENTER ENTRY " +
      "ENVIRONMENT EOP EQUAL EQUALS ERASE " +
      "ERROR ESI EVALUATE EVERY EXCEEDS " +
      "EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL " +
      "EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL " +
      "FILE-STREAM FILES FILLER FINAL FIND " +
      "FINISH FIRST FOOTING FOR FOREGROUND-COLOR " +
      "FOREGROUND-COLOUR FORMAT FREE FROM FULL " +
      "FUNCTION GENERATE GET GIVING GLOBAL " +
      "GO GOBACK GREATER GROUP HEADING " +
      "HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL " +
      "ID IDENTIFICATION IF IN INDEX " +
      "INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 " +
      "INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED " +
      "INDIC INDICATE INDICATOR INDICATORS INITIAL " +
      "INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT " +
      "INSTALLATION INTO INVALID INVOKE IS " +
      "JUST JUSTIFIED KANJI KEEP KEY " +
      "LABEL LAST LD LEADING LEFT " +
      "LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY " +
      "LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER " +
      "LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE " +
      "LOCALE LOCALLY LOCK " +
      "MEMBER MEMORY MERGE MESSAGE METACLASS " +
      "MODE MODIFIED MODIFY MODULES MOVE " +
      "MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE " +
      "NEXT NO NO-ECHO NONE NOT " +
      "NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER " +
      "NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS " +
      "OF OFF OMITTED ON ONLY " +
      "OPEN OPTIONAL OR ORDER ORGANIZATION " +
      "OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL " +
      "PADDING PAGE PAGE-COUNTER PARSE PERFORM " +
      "PF PH PIC PICTURE PLUS " +
      "POINTER POSITION POSITIVE PREFIX PRESENT " +
      "PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES " +
      "PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID " +
      "PROMPT PROTECTED PURGE QUEUE QUOTE " +
      "QUOTES RANDOM RD READ READY " +
      "REALM RECEIVE RECONNECT RECORD RECORD-NAME " +
      "RECORDS RECURSIVE REDEFINES REEL REFERENCE " +
      "REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE " +
      "REMAINDER REMOVAL RENAMES REPEATED REPLACE " +
      "REPLACING REPORT REPORTING REPORTS REPOSITORY " +
      "REQUIRED RERUN RESERVE RESET RETAINING " +
      "RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO " +
      "REVERSED REWIND REWRITE RF RH " +
      "RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED " +
      "RUN SAME SCREEN SD SEARCH " +
      "SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT " +
      "SELECT SEND SENTENCE SEPARATE SEQUENCE " +
      "SEQUENTIAL SET SHARED SIGN SIZE " +
      "SKIP1 SKIP2 SKIP3 SORT SORT-MERGE " +
      "SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL " +
      "SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 " +
      "START STARTING STATUS STOP STORE " +
      "STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA " +
      "SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS " +
      "SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT " +
      "TABLE TALLYING TAPE TENANT TERMINAL " +
      "TERMINATE TEST TEXT THAN THEN " +
      "THROUGH THRU TIME TIMES TITLE " +
      "TO TOP TRAILING TRAILING-SIGN TRANSACTION " +
      "TYPE TYPEDEF UNDERLINE UNEQUAL UNIT " +
      "UNSTRING UNTIL UP UPDATE UPON " +
      "USAGE USAGE-MODE USE USING VALID " +
      "VALIDATE VALUE VALUES VARYING VLR " +
      "WAIT WHEN WHEN-COMPILED WITH WITHIN " +
      "WORDS WORKING-STORAGE WRITE XML XML-CODE " +
      "XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL " );

  var builtins = makeKeywords("- * ** / + < <= = > >= ");
  var tests = {
    digit: /\d/,
    digit_or_colon: /[\d:]/,
    hex: /[0-9a-f]/i,
    sign: /[+-]/,
    exponent: /e/i,
    keyword_char: /[^\s\(\[\;\)\]]/,
    symbol: /[\w*+\-]/
  };
  function isNumber(ch, stream){
    // hex
    if ( ch === '0' && stream.eat(/x/i) ) {
      stream.eatWhile(tests.hex);
      return true;
    }
    // leading sign
    if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {
      stream.eat(tests.sign);
      ch = stream.next();
    }
    if ( tests.digit.test(ch) ) {
      stream.eat(ch);
      stream.eatWhile(tests.digit);
      if ( '.' == stream.peek()) {
        stream.eat('.');
        stream.eatWhile(tests.digit);
      }
      if ( stream.eat(tests.exponent) ) {
        stream.eat(tests.sign);
        stream.eatWhile(tests.digit);
      }
      return true;
    }
    return false;
  }
  return {
    startState: function () {
      return {
        indentStack: null,
        indentation: 0,
        mode: false
      };
    },
    token: function (stream, state) {
      if (state.indentStack == null && stream.sol()) {
        // update indentation, but only if indentStack is empty
        state.indentation = 6 ; //stream.indentation();
      }
      // skip spaces
      if (stream.eatSpace()) {
        return null;
      }
      var returnType = null;
      switch(state.mode){
      case "string": // multi-line string parsing mode
        var next = false;
        while ((next = stream.next()) != null) {
          if (next == "\"" || next == "\'") {
            state.mode = false;
            break;
          }
        }
        returnType = STRING; // continue on in string mode
        break;
      default: // default parsing mode
        var ch = stream.next();
        var col = stream.column();
        if (col >= 0 && col <= 5) {
          returnType = COBOLLINENUM;
        } else if (col >= 72 && col <= 79) {
          stream.skipToEnd();
          returnType = MODTAG;
        } else if (ch == "*" && col == 6) { // comment
          stream.skipToEnd(); // rest of the line is a comment
          returnType = COMMENT;
        } else if (ch == "\"" || ch == "\'") {
          state.mode = "string";
          returnType = STRING;
        } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) {
          returnType = ATOM;
        } else if (ch == ".") {
          returnType = PERIOD;
        } else if (isNumber(ch,stream)){
          returnType = NUMBER;
        } else {
          if (stream.current().match(tests.symbol)) {
            while (col < 71) {
              if (stream.eat(tests.symbol) === undefined) {
                break;
              } else {
                col++;
              }
            }
          }
          if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
            returnType = KEYWORD;
          } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) {
            returnType = BUILTIN;
          } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) {
            returnType = ATOM;
          } else returnType = null;
        }
      }
      return returnType;
    },
    indent: function (state) {
      if (state.indentStack == null) return state.indentation;
      return state.indentStack.indent;
    }
  };
});

CodeMirror.defineMIME("text/x-cobol", "cobol");

});
editors/codemirror/mode/cobol/cobol.min.js000064400000014462152177723720014646 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("cobol",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b){return"0"===a&&b.eat(/x/i)?(b.eatWhile(o.hex),!0):("+"!=a&&"-"!=a||!o.digit.test(b.peek())||(b.eat(o.sign),a=b.next()),!!o.digit.test(a)&&(b.eat(a),b.eatWhile(o.digit),"."==b.peek()&&(b.eat("."),b.eatWhile(o.digit)),b.eat(o.exponent)&&(b.eat(o.sign),b.eatWhile(o.digit)),!0))}var c="builtin",d="comment",e="string",f="atom",g="number",h="keyword",i="header",j="def",k="link",l=a("TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES "),m=a("ACCEPT ACCESS ACQUIRE ADD ADDRESS ADVANCING AFTER ALIAS ALL ALPHABET ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALSO ALTER ALTERNATE AND ANY ARE AREA AREAS ARITHMETIC ASCENDING ASSIGN AT ATTRIBUTE AUTHOR AUTO AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP BEFORE BELL BINARY BIT BITS BLANK BLINK BLOCK BOOLEAN BOTTOM BY CALL CANCEL CD CF CH CHARACTER CHARACTERS CLASS CLOCK-UNITS CLOSE COBOL CODE CODE-SET COL COLLATING COLUMN COMMA COMMIT COMMITMENT COMMON COMMUNICATION COMP COMP-0 COMP-1 COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS CONVERTING COPY CORR CORRESPONDING COUNT CRT CRT-UNDER CURRENCY CURRENT CURSOR DATA DATE DATE-COMPILED DATE-WRITTEN DAY DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION DOWN DROP DUPLICATE DUPLICATES DYNAMIC EBCDIC EGI EJECT ELSE EMI EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING END-WRITE END-XML ENTER ENTRY ENVIRONMENT EOP EQUAL EQUALS ERASE ERROR ESI EVALUATE EVERY EXCEEDS EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL FILE-STREAM FILES FILLER FINAL FIND FINISH FIRST FOOTING FOR FOREGROUND-COLOR FOREGROUND-COLOUR FORMAT FREE FROM FULL FUNCTION GENERATE GET GIVING GLOBAL GO GOBACK GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL ID IDENTIFICATION IF IN INDEX INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED INDIC INDICATE INDICATOR INDICATORS INITIAL INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT INSTALLATION INTO INVALID INVOKE IS JUST JUSTIFIED KANJI KEEP KEY LABEL LAST LD LEADING LEFT LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE LOCALE LOCALLY LOCK MEMBER MEMORY MERGE MESSAGE METACLASS MODE MODIFIED MODIFY MODULES MOVE MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE NEXT NO NO-ECHO NONE NOT NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS OF OFF OMITTED ON ONLY OPEN OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL PADDING PAGE PAGE-COUNTER PARSE PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE PREFIX PRESENT PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID PROMPT PROTECTED PURGE QUEUE QUOTE QUOTES RANDOM RD READ READY REALM RECEIVE RECONNECT RECORD RECORD-NAME RECORDS RECURSIVE REDEFINES REEL REFERENCE REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE REMAINDER REMOVAL RENAMES REPEATED REPLACE REPLACING REPORT REPORTING REPORTS REPOSITORY REQUIRED RERUN RESERVE RESET RETAINING RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO REVERSED REWIND REWRITE RF RH RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED RUN SAME SCREEN SD SEARCH SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SHARED SIGN SIZE SKIP1 SKIP2 SKIP3 SORT SORT-MERGE SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 START STARTING STATUS STOP STORE STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT TABLE TALLYING TAPE TENANT TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TITLE TO TOP TRAILING TRAILING-SIGN TRANSACTION TYPE TYPEDEF UNDERLINE UNEQUAL UNIT UNSTRING UNTIL UP UPDATE UPON USAGE USAGE-MODE USE USING VALID VALIDATE VALUE VALUES VARYING VLR WAIT WHEN WHEN-COMPILED WITH WITHIN WORDS WORKING-STORAGE WRITE XML XML-CODE XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL "),n=a("- * ** / + < <= = > >= "),o={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};return{startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(a,p){if(null==p.indentStack&&a.sol()&&(p.indentation=6),a.eatSpace())return null;var q=null;switch(p.mode){case"string":for(var r=!1;null!=(r=a.next());)if('"'==r||"'"==r){p.mode=!1;break}q=e;break;default:var s=a.next(),t=a.column();if(t>=0&&t<=5)q=j;else if(t>=72&&t<=79)a.skipToEnd(),q=i;else if("*"==s&&6==t)a.skipToEnd(),q=d;else if('"'==s||"'"==s)p.mode="string",q=e;else if("'"!=s||o.digit_or_colon.test(a.peek()))if("."==s)q=k;else if(b(s,a))q=g;else{if(a.current().match(o.symbol))for(;t<71&&void 0!==a.eat(o.symbol);)t++;q=m&&m.propertyIsEnumerable(a.current().toUpperCase())?h:n&&n.propertyIsEnumerable(a.current().toUpperCase())?c:l&&l.propertyIsEnumerable(a.current().toUpperCase())?f:null}else q=f}return q},indent:function(a){return null==a.indentStack?a.indentation:a.indentStack.indent}}})),a.defineMIME("text/x-cobol","cobol")}));editors/codemirror/mode/stex/stex.min.js000064400000006364152177723720014422 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("stex",(function(a,b){function c(a,b){a.cmdState.push(b)}function d(a){return a.cmdState.length>0?a.cmdState[a.cmdState.length-1]:null}function e(a){var b=a.cmdState.pop();b&&b.closeBracket()}function f(a){for(var b=a.cmdState,c=b.length-1;c>=0;c--){var d=b[c];if("DEFAULT"!=d.name)return d}return{styleIdentifier:function(){return null}}}function g(a,b,c){return function(){this.name=a,this.bracketNo=0,this.style=b,this.styles=c,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}function h(a,b){a.f=b}function i(a,b){var e;if(a.match(/^\\[a-zA-Z@]+/)){var g=a.current().slice(1);return e=l[g]||l.DEFAULT,e=new e,c(b,e),h(b,k),e.style}if(a.match(/^\\[$&%#{}_]/))return"tag";if(a.match(/^\\[,;!\/\\]/))return"tag";if(a.match("\\["))return h(b,(function(a,b){return j(a,b,"\\]")})),"keyword";if(a.match("\\("))return h(b,(function(a,b){return j(a,b,"\\)")})),"keyword";if(a.match("$$"))return h(b,(function(a,b){return j(a,b,"$$")})),"keyword";if(a.match("$"))return h(b,(function(a,b){return j(a,b,"$")})),"keyword";var i=a.next();return"%"==i?(a.skipToEnd(),"comment"):"}"==i||"]"==i?(e=d(b))?(e.closeBracket(i),h(b,k),"bracket"):"error":"{"==i||"["==i?(e=l.DEFAULT,e=new e,c(b,e),"bracket"):/\d/.test(i)?(a.eatWhile(/[\w.%]/),"atom"):(a.eatWhile(/[\w\-_]/),e=f(b),"begin"==e.name&&(e.argument=a.current()),e.styleIdentifier())}function j(a,b,c){if(a.eatSpace())return null;if(c&&a.match(c))return h(b,i),"keyword";if(a.match(/^\\[a-zA-Z@]+/))return"tag";if(a.match(/^[a-zA-Z]+/))return"variable-2";if(a.match(/^\\[$&%#{}_]/))return"tag";if(a.match(/^\\[,;!\/]/))return"tag";if(a.match(/^[\^_&]/))return"tag";if(a.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(a.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var d=a.next();return"{"==d||"}"==d||"["==d||"]"==d||"("==d||")"==d?"bracket":"%"==d?(a.skipToEnd(),"comment"):"error"}function k(a,b){var c,f=a.peek();return"{"==f||"["==f?(c=d(b),c.openBracket(f),a.eat(f),h(b,i),"bracket"):/[ \t\r]/.test(f)?(a.eat(f),null):(h(b,i),e(b),i(a,b))}var l={};return l.importmodule=g("importmodule","tag",["string","builtin"]),l.documentclass=g("documentclass","tag",["","atom"]),l.usepackage=g("usepackage","tag",["atom"]),l.begin=g("begin","tag",["atom"]),l.end=g("end","tag",["atom"]),l.label=g("label","tag",["atom"]),l.ref=g("ref","tag",["atom"]),l.eqref=g("eqref","tag",["atom"]),l.cite=g("cite","tag",["atom"]),l.bibitem=g("bibitem","tag",["atom"]),l.Bibitem=g("Bibitem","tag",["atom"]),l.RBibitem=g("RBibitem","tag",["atom"]),l.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}},{startState:function(){var a=b.inMathMode?function(a,b){return j(a,b)}:i;return{cmdState:[],f:a}},copyState:function(a){return{cmdState:a.cmdState.slice(),f:a.f}},token:function(a,b){return b.f(a,b)},blankLine:function(a){a.f=i,a.cmdState.length=0},lineComment:"%"}})),a.defineMIME("text/x-stex","stex"),a.defineMIME("text/x-latex","stex")}));editors/codemirror/mode/stex/stex.js000064400000017123152177723720013633 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
 * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)
 * Licence: MIT
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("stex", function(_config, parserConfig) {
    "use strict";

    function pushCommand(state, command) {
      state.cmdState.push(command);
    }

    function peekCommand(state) {
      if (state.cmdState.length > 0) {
        return state.cmdState[state.cmdState.length - 1];
      } else {
        return null;
      }
    }

    function popCommand(state) {
      var plug = state.cmdState.pop();
      if (plug) {
        plug.closeBracket();
      }
    }

    // returns the non-default plugin closest to the end of the list
    function getMostPowerful(state) {
      var context = state.cmdState;
      for (var i = context.length - 1; i >= 0; i--) {
        var plug = context[i];
        if (plug.name == "DEFAULT") {
          continue;
        }
        return plug;
      }
      return { styleIdentifier: function() { return null; } };
    }

    function addPluginPattern(pluginName, cmdStyle, styles) {
      return function () {
        this.name = pluginName;
        this.bracketNo = 0;
        this.style = cmdStyle;
        this.styles = styles;
        this.argument = null;   // \begin and \end have arguments that follow. These are stored in the plugin

        this.styleIdentifier = function() {
          return this.styles[this.bracketNo - 1] || null;
        };
        this.openBracket = function() {
          this.bracketNo++;
          return "bracket";
        };
        this.closeBracket = function() {};
      };
    }

    var plugins = {};

    plugins["importmodule"] = addPluginPattern("importmodule", "tag", ["string", "builtin"]);
    plugins["documentclass"] = addPluginPattern("documentclass", "tag", ["", "atom"]);
    plugins["usepackage"] = addPluginPattern("usepackage", "tag", ["atom"]);
    plugins["begin"] = addPluginPattern("begin", "tag", ["atom"]);
    plugins["end"] = addPluginPattern("end", "tag", ["atom"]);

    plugins["label"    ] = addPluginPattern("label"    , "tag", ["atom"]);
    plugins["ref"      ] = addPluginPattern("ref"      , "tag", ["atom"]);
    plugins["eqref"    ] = addPluginPattern("eqref"    , "tag", ["atom"]);
    plugins["cite"     ] = addPluginPattern("cite"     , "tag", ["atom"]);
    plugins["bibitem"  ] = addPluginPattern("bibitem"  , "tag", ["atom"]);
    plugins["Bibitem"  ] = addPluginPattern("Bibitem"  , "tag", ["atom"]);
    plugins["RBibitem" ] = addPluginPattern("RBibitem" , "tag", ["atom"]);

    plugins["DEFAULT"] = function () {
      this.name = "DEFAULT";
      this.style = "tag";

      this.styleIdentifier = this.openBracket = this.closeBracket = function() {};
    };

    function setState(state, f) {
      state.f = f;
    }

    // called when in a normal (no environment) context
    function normal(source, state) {
      var plug;
      // Do we look like '\command' ?  If so, attempt to apply the plugin 'command'
      if (source.match(/^\\[a-zA-Z@]+/)) {
        var cmdName = source.current().slice(1);
        plug = plugins[cmdName] || plugins["DEFAULT"];
        plug = new plug();
        pushCommand(state, plug);
        setState(state, beginParams);
        return plug.style;
      }

      // escape characters
      if (source.match(/^\\[$&%#{}_]/)) {
        return "tag";
      }

      // white space control characters
      if (source.match(/^\\[,;!\/\\]/)) {
        return "tag";
      }

      // find if we're starting various math modes
      if (source.match("\\[")) {
        setState(state, function(source, state){ return inMathMode(source, state, "\\]"); });
        return "keyword";
      }
      if (source.match("\\(")) {
        setState(state, function(source, state){ return inMathMode(source, state, "\\)"); });
        return "keyword";
      }
      if (source.match("$$")) {
        setState(state, function(source, state){ return inMathMode(source, state, "$$"); });
        return "keyword";
      }
      if (source.match("$")) {
        setState(state, function(source, state){ return inMathMode(source, state, "$"); });
        return "keyword";
      }

      var ch = source.next();
      if (ch == "%") {
        source.skipToEnd();
        return "comment";
      } else if (ch == '}' || ch == ']') {
        plug = peekCommand(state);
        if (plug) {
          plug.closeBracket(ch);
          setState(state, beginParams);
        } else {
          return "error";
        }
        return "bracket";
      } else if (ch == '{' || ch == '[') {
        plug = plugins["DEFAULT"];
        plug = new plug();
        pushCommand(state, plug);
        return "bracket";
      } else if (/\d/.test(ch)) {
        source.eatWhile(/[\w.%]/);
        return "atom";
      } else {
        source.eatWhile(/[\w\-_]/);
        plug = getMostPowerful(state);
        if (plug.name == 'begin') {
          plug.argument = source.current();
        }
        return plug.styleIdentifier();
      }
    }

    function inMathMode(source, state, endModeSeq) {
      if (source.eatSpace()) {
        return null;
      }
      if (endModeSeq && source.match(endModeSeq)) {
        setState(state, normal);
        return "keyword";
      }
      if (source.match(/^\\[a-zA-Z@]+/)) {
        return "tag";
      }
      if (source.match(/^[a-zA-Z]+/)) {
        return "variable-2";
      }
      // escape characters
      if (source.match(/^\\[$&%#{}_]/)) {
        return "tag";
      }
      // white space control characters
      if (source.match(/^\\[,;!\/]/)) {
        return "tag";
      }
      // special math-mode characters
      if (source.match(/^[\^_&]/)) {
        return "tag";
      }
      // non-special characters
      if (source.match(/^[+\-<>|=,\/@!*:;'"`~#?]/)) {
        return null;
      }
      if (source.match(/^(\d+\.\d*|\d*\.\d+|\d+)/)) {
        return "number";
      }
      var ch = source.next();
      if (ch == "{" || ch == "}" || ch == "[" || ch == "]" || ch == "(" || ch == ")") {
        return "bracket";
      }

      if (ch == "%") {
        source.skipToEnd();
        return "comment";
      }
      return "error";
    }

    function beginParams(source, state) {
      var ch = source.peek(), lastPlug;
      if (ch == '{' || ch == '[') {
        lastPlug = peekCommand(state);
        lastPlug.openBracket(ch);
        source.eat(ch);
        setState(state, normal);
        return "bracket";
      }
      if (/[ \t\r]/.test(ch)) {
        source.eat(ch);
        return null;
      }
      setState(state, normal);
      popCommand(state);

      return normal(source, state);
    }

    return {
      startState: function() {
        var f = parserConfig.inMathMode ? function(source, state){ return inMathMode(source, state); } : normal;
        return {
          cmdState: [],
          f: f
        };
      },
      copyState: function(s) {
        return {
          cmdState: s.cmdState.slice(),
          f: s.f
        };
      },
      token: function(stream, state) {
        return state.f(stream, state);
      },
      blankLine: function(state) {
        state.f = normal;
        state.cmdState.length = 0;
      },
      lineComment: "%"
    };
  });

  CodeMirror.defineMIME("text/x-stex", "stex");
  CodeMirror.defineMIME("text/x-latex", "stex");

});
editors/codemirror/mode/idl/idl.min.js000064400000027300152177723720013765 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b","i")}function c(a){if(a.eatSpace())return null;if(a.match(";"))return a.skipToEnd(),"comment";if(a.match(/^[0-9\.+-]/,!1)){if(a.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(a.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(a.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return a.match(/^"([^"]|(""))*"/)?"string":a.match(/^'([^']|(''))*'/)?"string":a.match(g)?"keyword":a.match(e)?"builtin":a.match(h)?"variable":a.match(i)||a.match(j)?"operator":(a.next(),null)}var d=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extrac","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"],e=b(d),f=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"],g=b(f);a.registerHelper("hintWords","idl",d.concat(f));var h=new RegExp("^[_a-z¡-￿][_a-z0-9¡-￿]*","i"),i=/[+\-*&=<>\/@#~$]/,j=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");a.defineMode("idl",(function(){return{token:function(a){return c(a)}}})),a.defineMIME("text/x-idl","idl")}));editors/codemirror/mode/idl/idl.js000064400000035052152177723720013206 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function wordRegexp(words) {
    return new RegExp('^((' + words.join(')|(') + '))\\b', 'i');
  };

  var builtinArray = [
    'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog',
    'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir',
    'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices',
    'arrow', 'ascii_template', 'asin', 'assoc', 'atan',
    'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot',
    'bar_plot', 'beseli', 'beselj', 'beselk', 'besely',
    'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template',
    'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy',
    'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor',
    'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr',
    'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar',
    'caldat', 'call_external', 'call_function', 'call_method',
    'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil',
    'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc',
    'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close',
    'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage',
    'color_convert', 'color_exchange', 'color_quan', 'color_range_map',
    'colorbar', 'colorize_sample', 'colormap_applicable',
    'colormap_gradient', 'colormap_rotation', 'colortable',
    'comfit', 'command_line_args', 'common', 'compile_opt', 'complex',
    'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid',
    'conj', 'constrained_min', 'contour', 'contour', 'convert_coord',
    'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate',
    'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata',
    'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength',
    'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord',
    'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load',
    'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index',
    'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form',
    'cw_fslider', 'cw_light_editor', 'cw_light_editor_get',
    'cw_light_editor_set', 'cw_orient', 'cw_palette_editor',
    'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu',
    'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists',
    'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key',
    'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv',
    'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig',
    'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect',
    'dialog_message', 'dialog_pickfile', 'dialog_printersetup',
    'dialog_printjob', 'dialog_read_image',
    'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen',
    'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register',
    'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont',
    'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss',
    'empty', 'enable_sysrtn', 'eof', 'eos', 'erase',
    'erf', 'erfc', 'erfcx', 'erode', 'errorplot',
    'errplot', 'estimator_filter', 'execute', 'exit', 'exp',
    'expand', 'expand_path', 'expint', 'extrac', 'extract_slice',
    'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename',
    'file_chmod', 'file_copy', 'file_delete', 'file_dirname',
    'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info',
    'file_lines', 'file_link', 'file_mkdir', 'file_move',
    'file_poll_input', 'file_readlink', 'file_same',
    'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip',
    'file_which', 'file_zip', 'filepath', 'findgen', 'finite',
    'fix', 'flick', 'float', 'floor', 'flow3',
    'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun',
    'fstat', 'fulstr', 'funct', 'function', 'fv_test',
    'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf',
    'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit',
    'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects',
    'get_kbrd', 'get_login_info',
    'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul',
    'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata',
    'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash',
    'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave',
    'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d',
    'hist_equal', 'histogram', 'hls', 'hough', 'hqr',
    'hsv', 'i18n_multibytetoutf8',
    'i18n_multibytetowidechar', 'i18n_utf8tomultibyte',
    'i18n_widechartomultibyte',
    'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity',
    'idl_base64', 'idl_container', 'idl_validname',
    'idlexbr_assistant', 'idlitsys_createtool',
    'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata',
    'igetid', 'igetproperty', 'iimage', 'image', 'image_cont',
    'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen',
    'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol',
    'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen',
    'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata',
    'iregister', 'ireset', 'iresolve', 'irotate', 'isa',
    'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft',
    'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate',
    'ivector', 'ivolume', 'izoom', 'journal', 'json_parse',
    'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d',
    'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove',
    'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec',
    'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert',
    'la_least_square_equality', 'la_least_squares', 'la_linear_equation',
    'la_ludc', 'la_lumprove', 'la_lusol',
    'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired',
    'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre',
    'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter',
    'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen',
    'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit',
    'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get',
    'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr',
    'long', 'long64', 'lsode', 'lu_complex', 'ludc',
    'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array',
    'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid',
    'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch',
    'map_proj_forward', 'map_proj_image', 'map_proj_info',
    'map_proj_init', 'map_proj_inverse',
    'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test',
    'mean', 'meanabsdev', 'mean_filter', 'median', 'memory',
    'mesh_clip', 'mesh_decimate', 'mesh_issolid',
    'mesh_merge', 'mesh_numtriangles',
    'mesh_obj', 'mesh_smooth', 'mesh_surfacearea',
    'mesh_validate', 'mesh_volume',
    'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct',
    'moment', 'morph_close', 'morph_distance',
    'morph_gradient', 'morph_hitormiss',
    'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements',
    'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl',
    'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class',
    'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid',
    'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr',
    'openu', 'openw', 'oplot', 'oploterr', 'orderedhash',
    'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep',
    'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox',
    'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface',
    'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot',
    'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv',
    'polygon', 'polyline', 'polywarp', 'popd', 'powell',
    'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes',
    'print', 'printf', 'printd', 'pro', 'product',
    'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts',
    'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid',
    'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb',
    'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp',
    'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg',
    'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm',
    'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate',
    'r_test', 'radon', 'randomn', 'randomu', 'ranks',
    'rdpix', 'read', 'readf', 'read_ascii', 'read_binary',
    'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image',
    'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict',
    'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk',
    'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap',
    'read_xwd', 'reads', 'readu', 'real_part', 'rebin',
    'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow',
    'register_cursor', 'regress', 'replicate',
    'replicate_inplace', 'resolve_all',
    'resolve_routine', 'restore', 'retall', 'return', 'reverse',
    'rk4', 'roberts', 'rot', 'rotate', 'round',
    'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save',
    'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d',
    'scope_level', 'scope_traceback', 'scope_varfetch',
    'scope_varname', 'search2d',
    'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release',
    'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf',
    'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug',
    'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont',
    'signum', 'simplex', 'sin', 'sindgen', 'sinh',
    'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image',
    'smooth', 'sobel', 'socket', 'sort', 'spawn',
    'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp',
    'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin',
    'sprstp', 'sqrt', 'standardize', 'stddev', 'stop',
    'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline',
    'stregex', 'stretch', 'string', 'strjoin', 'strlen',
    'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos',
    'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide',
    'strupcase', 'surface', 'surface', 'surfr', 'svdc',
    'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol',
    'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',
    'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',
    'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',
    'thread', 'threed', 'tic', 'time_test2', 'timegen',
    'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',
    'total', 'trace', 'transpose', 'tri_surf', 'triangulate',
    'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',
    'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv',
    'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename',
    'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen',
    'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq',
    'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector',
    'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt',
    'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri',
    'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base',
    'widget_button', 'widget_combobox', 'widget_control',
    'widget_displaycontextmenu', 'widget_draw',
    'widget_droplist', 'widget_event', 'widget_info',
    'widget_label', 'widget_list',
    'widget_propertysheet', 'widget_slider', 'widget_tab',
    'widget_table', 'widget_text',
    'widget_tree', 'widget_tree_move', 'widget_window',
    'wiener_filter', 'window',
    'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image',
    'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png',
    'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff',
    'write_video', 'write_wav', 'write_wave', 'writeu', 'wset',
    'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet',
    'wv_denoise', 'wv_dwt', 'wv_fn_coiflet',
    'wv_fn_daubechies', 'wv_fn_gaussian',
    'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul',
    'wv_fn_symlet', 'wv_import_data',
    'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires',
    'wv_pwt', 'wv_tool_denoise',
    'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate',
    'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview',
    'xobjview_rotate', 'xobjview_write_image',
    'xpalette', 'xpcolor', 'xplot3d',
    'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit',
    'xvolume', 'xvolume_rotate', 'xvolume_write_image',
    'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24'
  ];
  var builtins = wordRegexp(builtinArray);

  var keywordArray = [
    'begin', 'end', 'endcase', 'endfor',
    'endwhile', 'endif', 'endrep', 'endforeach',
    'break', 'case', 'continue', 'for',
    'foreach', 'goto', 'if', 'then', 'else',
    'repeat', 'until', 'switch', 'while',
    'do', 'pro', 'function'
  ];
  var keywords = wordRegexp(keywordArray);

  CodeMirror.registerHelper("hintWords", "idl", builtinArray.concat(keywordArray));

  var identifiers = new RegExp('^[_a-z\xa1-\uffff][_a-z0-9\xa1-\uffff]*', 'i');

  var singleOperators = /[+\-*&=<>\/@#~$]/;
  var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i');

  function tokenBase(stream) {
    // whitespaces
    if (stream.eatSpace()) return null;

    // Handle one line Comments
    if (stream.match(';')) {
      stream.skipToEnd();
      return 'comment';
    }

    // Handle Number Literals
    if (stream.match(/^[0-9\.+-]/, false)) {
      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))
        return 'number';
      if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))
        return 'number';
      if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))
        return 'number';
    }

    // Handle Strings
    if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; }
    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; }

    // Handle words
    if (stream.match(keywords)) { return 'keyword'; }
    if (stream.match(builtins)) { return 'builtin'; }
    if (stream.match(identifiers)) { return 'variable'; }

    if (stream.match(singleOperators) || stream.match(boolOperators)) {
      return 'operator'; }

    // Handle non-detected items
    stream.next();
    return null;
  };

  CodeMirror.defineMode('idl', function() {
    return {
      token: function(stream) {
        return tokenBase(stream);
      }
    };
  });

  CodeMirror.defineMIME('text/x-idl', 'idl');
});
editors/codemirror/mode/tiddlywiki/tiddlywiki.css000064400000000334152177723720016367 0ustar00span.cm-underlined {
  text-decoration: underline;
}
span.cm-strikethrough {
  text-decoration: line-through;
}
span.cm-brace {
  color: #170;
  font-weight: bold;
}
span.cm-table {
  color: blue;
  font-weight: bold;
}
editors/codemirror/mode/tiddlywiki/tiddlywiki.js000064400000020500152177723720016210 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/***
    |''Name''|tiddlywiki.js|
    |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror|
    |''Author''|PMario|
    |''Version''|0.1.7|
    |''Status''|''stable''|
    |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]|
    |''Documentation''|https://codemirror.tiddlyspace.com/|
    |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]|
    |''CoreVersion''|2.5.0|
    |''Requires''|codemirror.js|
    |''Keywords''|syntax highlighting color code mirror codemirror|
    ! Info
    CoreVersion parameter is needed for TiddlyWiki only!
***/

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("tiddlywiki", function () {
  // Tokenizer
  var textwords = {};

  var keywords = {
    "allTags": true, "closeAll": true, "list": true,
    "newJournal": true, "newTiddler": true,
    "permaview": true, "saveChanges": true,
    "search": true, "slider": true, "tabs": true,
    "tag": true, "tagging": true, "tags": true,
    "tiddler": true, "timeline": true,
    "today": true, "version": true, "option": true,
    "with": true, "filter": true
  };

  var isSpaceName = /[\w_\-]/i,
      reHR = /^\-\-\-\-+$/,                                 // <hr>
      reWikiCommentStart = /^\/\*\*\*$/,            // /***
      reWikiCommentStop = /^\*\*\*\/$/,             // ***/
      reBlockQuote = /^<<<$/,

      reJsCodeStart = /^\/\/\{\{\{$/,                       // //{{{ js block start
      reJsCodeStop = /^\/\/\}\}\}$/,                        // //}}} js stop
      reXmlCodeStart = /^<!--\{\{\{-->$/,           // xml block start
      reXmlCodeStop = /^<!--\}\}\}-->$/,            // xml stop

      reCodeBlockStart = /^\{\{\{$/,                        // {{{ TW text div block start
      reCodeBlockStop = /^\}\}\}$/,                 // }}} TW text stop

      reUntilCodeStop = /.*?\}\}\}/;

  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }

  function tokenBase(stream, state) {
    var sol = stream.sol(), ch = stream.peek();

    state.block = false;        // indicates the start of a code block.

    // check start of  blocks
    if (sol && /[<\/\*{}\-]/.test(ch)) {
      if (stream.match(reCodeBlockStart)) {
        state.block = true;
        return chain(stream, state, twTokenCode);
      }
      if (stream.match(reBlockQuote))
        return 'quote';
      if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop))
        return 'comment';
      if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop))
        return 'comment';
      if (stream.match(reHR))
        return 'hr';
    }

    stream.next();
    if (sol && /[\/\*!#;:>|]/.test(ch)) {
      if (ch == "!") { // tw header
        stream.skipToEnd();
        return "header";
      }
      if (ch == "*") { // tw list
        stream.eatWhile('*');
        return "comment";
      }
      if (ch == "#") { // tw numbered list
        stream.eatWhile('#');
        return "comment";
      }
      if (ch == ";") { // definition list, term
        stream.eatWhile(';');
        return "comment";
      }
      if (ch == ":") { // definition list, description
        stream.eatWhile(':');
        return "comment";
      }
      if (ch == ">") { // single line quote
        stream.eatWhile(">");
        return "quote";
      }
      if (ch == '|')
        return 'header';
    }

    if (ch == '{' && stream.match(/\{\{/))
      return chain(stream, state, twTokenCode);

    // rudimentary html:// file:// link matching. TW knows much more ...
    if (/[hf]/i.test(ch) &&
        /[ti]/i.test(stream.peek()) &&
        stream.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))
      return "link";

    // just a little string indicator, don't want to have the whole string covered
    if (ch == '"')
      return 'string';

    if (ch == '~')    // _no_ CamelCase indicator should be bold
      return 'brace';

    if (/[\[\]]/.test(ch) && stream.match(ch)) // check for [[..]]
      return 'brace';

    if (ch == "@") {    // check for space link. TODO fix @@...@@ highlighting
      stream.eatWhile(isSpaceName);
      return "link";
    }

    if (/\d/.test(ch)) {        // numbers
      stream.eatWhile(/\d/);
      return "number";
    }

    if (ch == "/") { // tw invisible comment
      if (stream.eat("%")) {
        return chain(stream, state, twTokenComment);
      } else if (stream.eat("/")) { //
        return chain(stream, state, twTokenEm);
      }
    }

    if (ch == "_" && stream.eat("_")) // tw underline
        return chain(stream, state, twTokenUnderline);

    // strikethrough and mdash handling
    if (ch == "-" && stream.eat("-")) {
      // if strikethrough looks ugly, change CSS.
      if (stream.peek() != ' ')
        return chain(stream, state, twTokenStrike);
      // mdash
      if (stream.peek() == ' ')
        return 'brace';
    }

    if (ch == "'" && stream.eat("'")) // tw bold
      return chain(stream, state, twTokenStrong);

    if (ch == "<" && stream.eat("<")) // tw macro
      return chain(stream, state, twTokenMacro);

    // core macro handling
    stream.eatWhile(/[\w\$_]/);
    return textwords.propertyIsEnumerable(stream.current()) ? "keyword" : null
  }

  // tw invisible comment
  function twTokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "%");
    }
    return "comment";
  }

  // tw strong / bold
  function twTokenStrong(stream, state) {
    var maybeEnd = false,
    ch;
    while (ch = stream.next()) {
      if (ch == "'" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "'");
    }
    return "strong";
  }

  // tw code
  function twTokenCode(stream, state) {
    var sb = state.block;

    if (sb && stream.current()) {
      return "comment";
    }

    if (!sb && stream.match(reUntilCodeStop)) {
      state.tokenize = tokenBase;
      return "comment";
    }

    if (sb && stream.sol() && stream.match(reCodeBlockStop)) {
      state.tokenize = tokenBase;
      return "comment";
    }

    stream.next();
    return "comment";
  }

  // tw em / italic
  function twTokenEm(stream, state) {
    var maybeEnd = false,
    ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "/");
    }
    return "em";
  }

  // tw underlined text
  function twTokenUnderline(stream, state) {
    var maybeEnd = false,
    ch;
    while (ch = stream.next()) {
      if (ch == "_" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "_");
    }
    return "underlined";
  }

  // tw strike through text looks ugly
  // change CSS if needed
  function twTokenStrike(stream, state) {
    var maybeEnd = false, ch;

    while (ch = stream.next()) {
      if (ch == "-" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "-");
    }
    return "strikethrough";
  }

  // macro
  function twTokenMacro(stream, state) {
    if (stream.current() == '<<') {
      return 'macro';
    }

    var ch = stream.next();
    if (!ch) {
      state.tokenize = tokenBase;
      return null;
    }
    if (ch == ">") {
      if (stream.peek() == '>') {
        stream.next();
        state.tokenize = tokenBase;
        return "macro";
      }
    }

    stream.eatWhile(/[\w\$_]/);
    return keywords.propertyIsEnumerable(stream.current()) ? "keyword" : null
  }

  // Interface
  return {
    startState: function () {
      return {tokenize: tokenBase};
    },

    token: function (stream, state) {
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      return style;
    }
  };
});

CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki");
});
editors/codemirror/mode/tiddlywiki/tiddlywiki.min.js000064400000006026152177723720017001 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("tiddlywiki",(function(){function a(a,b,c){return b.tokenize=c,c(a,b)}function b(b,k){var v=b.sol(),w=b.peek();if(k.block=!1,v&&/[<\/\*{}\-]/.test(w)){if(b.match(u))return k.block=!0,a(b,k,e);if(b.match(p))return"quote";if(b.match(n)||b.match(o))return"comment";if(b.match(q)||b.match(r)||b.match(s)||b.match(t))return"comment";if(b.match(m))return"hr"}if(b.next(),v&&/[\/\*!#;:>|]/.test(w)){if("!"==w)return b.skipToEnd(),"header";if("*"==w)return b.eatWhile("*"),"comment";if("#"==w)return b.eatWhile("#"),"comment";if(";"==w)return b.eatWhile(";"),"comment";if(":"==w)return b.eatWhile(":"),"comment";if(">"==w)return b.eatWhile(">"),"quote";if("|"==w)return"header"}if("{"==w&&b.match(/\{\{/))return a(b,k,e);if(/[hf]/i.test(w)&&/[ti]/i.test(b.peek())&&b.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if('"'==w)return"string";if("~"==w)return"brace";if(/[\[\]]/.test(w)&&b.match(w))return"brace";if("@"==w)return b.eatWhile(l),"link";if(/\d/.test(w))return b.eatWhile(/\d/),"number";if("/"==w){if(b.eat("%"))return a(b,k,c);if(b.eat("/"))return a(b,k,f)}if("_"==w&&b.eat("_"))return a(b,k,g);if("-"==w&&b.eat("-")){if(" "!=b.peek())return a(b,k,h);if(" "==b.peek())return"brace"}return"'"==w&&b.eat("'")?a(b,k,d):"<"==w&&b.eat("<")?a(b,k,i):(b.eatWhile(/[\w\$_]/),j.propertyIsEnumerable(b.current())?"keyword":null)}function c(a,c){for(var d,e=!1;d=a.next();){if("/"==d&&e){c.tokenize=b;break}e="%"==d}return"comment"}function d(a,c){for(var d,e=!1;d=a.next();){if("'"==d&&e){c.tokenize=b;break}e="'"==d}return"strong"}function e(a,c){var d=c.block;return d&&a.current()?"comment":!d&&a.match(w)?(c.tokenize=b,"comment"):d&&a.sol()&&a.match(v)?(c.tokenize=b,"comment"):(a.next(),"comment")}function f(a,c){for(var d,e=!1;d=a.next();){if("/"==d&&e){c.tokenize=b;break}e="/"==d}return"em"}function g(a,c){for(var d,e=!1;d=a.next();){if("_"==d&&e){c.tokenize=b;break}e="_"==d}return"underlined"}function h(a,c){for(var d,e=!1;d=a.next();){if("-"==d&&e){c.tokenize=b;break}e="-"==d}return"strikethrough"}function i(a,c){if("<<"==a.current())return"macro";var d=a.next();return d?">"==d&&">"==a.peek()?(a.next(),c.tokenize=b,"macro"):(a.eatWhile(/[\w\$_]/),k.propertyIsEnumerable(a.current())?"keyword":null):(c.tokenize=b,null)}var j={},k={allTags:!0,closeAll:!0,list:!0,newJournal:!0,newTiddler:!0,permaview:!0,saveChanges:!0,search:!0,slider:!0,tabs:!0,tag:!0,tagging:!0,tags:!0,tiddler:!0,timeline:!0,today:!0,version:!0,option:!0,with:!0,filter:!0},l=/[\w_\-]/i,m=/^\-\-\-\-+$/,n=/^\/\*\*\*$/,o=/^\*\*\*\/$/,p=/^<<<$/,q=/^\/\/\{\{\{$/,r=/^\/\/\}\}\}$/,s=/^<!--\{\{\{-->$/,t=/^<!--\}\}\}-->$/,u=/^\{\{\{$/,v=/^\}\}\}$/,w=/.*?\}\}\}/;return{startState:function(){return{tokenize:b}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b);return c}}})),a.defineMIME("text/x-tiddlywiki","tiddlywiki")}));editors/codemirror/mode/tiddlywiki/tiddlywiki.min.css000064400000000262152177723720017151 0ustar00span.cm-underlined{text-decoration:underline}span.cm-strikethrough{text-decoration:line-through}span.cm-brace{color:#170;font-weight:700}span.cm-table{color:#00f;font-weight:700}editors/codemirror/mode/ttcn-cfg/ttcn-cfg.min.js000064400000010516152177723720015660 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}a.defineMode("ttcn-cfg",(function(a,b){function c(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[:=]/.test(c))return h=c,"punctuation";if("#"==c)return a.skipToEnd(),"comment";if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if(o.test(c))return a.eatWhile(o),"operator";if("["==c)return a.eatWhile(/[\w_\]]/),"number sectionTitle";a.eatWhile(/[\w\$_]/);var e=a.current();return j.propertyIsEnumerable(e)?"keyword":k.propertyIsEnumerable(e)?"negative fileNCtrlMaskOptions":l.propertyIsEnumerable(e)?"negative externalCommands":"variable"}function d(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){var g=b.peek();g&&(g=g.toLowerCase(),"b"!=g&&"h"!=g&&"o"!=g||b.next()),f=!0;break}e=!e&&"\\"==d}return(f||!e&&!m)&&(c.tokenize=null),"string"}}function e(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function f(a,b,c){var d=a.indented;return a.context&&"statement"==a.context.type&&(d=a.context.indented),a.context=new e(d,b,c,null,a.context)}function g(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var h,i=a.indentUnit,j=b.keywords||{},k=b.fileNCtrlMaskOptions||{},l=b.externalCommands||{},m=b.multiLineStrings,n=b.indentStatements!==!1,o=/[\|]/;return{startState:function(a){return{tokenize:null,context:new e((a||0)-i,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;h=null;var e=(b.tokenize||c)(a,b);if("comment"==e)return e;if(null==d.align&&(d.align=!0),";"!=h&&":"!=h&&","!=h||"statement"!=d.type)if("{"==h)f(b,a.column(),"}");else if("["==h)f(b,a.column(),"]");else if("("==h)f(b,a.column(),")");else if("}"==h){for(;"statement"==d.type;)d=g(b);for("}"==d.type&&(d=g(b));"statement"==d.type;)d=g(b)}else h==d.type?g(b):n&&(("}"==d.type||"top"==d.type)&&";"!=h||"statement"==d.type&&"newstatement"==h)&&f(b,a.column(),"statement");else g(b);return b.startOfLine=!1,e},electricChars:"{}",lineComment:"#",fold:"brace"}})),a.defineMIME("text/x-ttcn-cfg",{name:"ttcn-cfg",keywords:b("Yes No LogFile FileMask ConsoleMask AppendFile TimeStampFormat LogEventTypes SourceInfoFormat LogEntityName LogSourceInfo DiskFullAction LogFileNumber LogFileSize MatchingHints Detailed Compact SubCategories Stack Single None Seconds DateTime Time Stop Error Retry Delete TCPPort KillTimer NumHCs UnixSocketsEnabled LocalAddress"),fileNCtrlMaskOptions:b("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION TTCN_USER TTCN_FUNCTION TTCN_STATISTICS TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG EXECUTOR ERROR WARNING PORTEVENT TIMEROP VERDICTOP DEFAULTOP TESTCASE ACTION USER FUNCTION STATISTICS PARALLEL MATCHING DEBUG LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED DEBUG_ENCDEC DEBUG_TESTPORT DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED FUNCTION_RND FUNCTION_UNQUALIFIED MATCHING_DONE MATCHING_MCSUCCESS MATCHING_MCUNSUCC MATCHING_MMSUCCESS MATCHING_MMUNSUCC MATCHING_PCSUCCESS MATCHING_PCUNSUCC MATCHING_PMSUCCESS MATCHING_PMUNSUCC MATCHING_PROBLEM MATCHING_TIMEOUT MATCHING_UNQUALIFIED PARALLEL_PORTCONN PARALLEL_PORTMAP PARALLEL_PTC PARALLEL_UNQUALIFIED PORTEVENT_DUALRECV PORTEVENT_DUALSEND PORTEVENT_MCRECV PORTEVENT_MCSEND PORTEVENT_MMRECV PORTEVENT_MMSEND PORTEVENT_MQUEUE PORTEVENT_PCIN PORTEVENT_PCOUT PORTEVENT_PMIN PORTEVENT_PMOUT PORTEVENT_PQUEUE PORTEVENT_STATE PORTEVENT_UNQUALIFIED STATISTICS_UNQUALIFIED STATISTICS_VERDICT TESTCASE_FINISH TESTCASE_START TESTCASE_UNQUALIFIED TIMEROP_GUARD TIMEROP_READ TIMEROP_START TIMEROP_STOP TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED USER_UNQUALIFIED VERDICTOP_FINAL VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),externalCommands:b("BeginControlPart EndControlPart BeginTestCase EndTestCase"),multiLineStrings:!0})}));editors/codemirror/mode/ttcn-cfg/ttcn-cfg.js000064400000017262152177723720015103 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("ttcn-cfg", function(config, parserConfig) {
    var indentUnit = config.indentUnit,
        keywords = parserConfig.keywords || {},
        fileNCtrlMaskOptions = parserConfig.fileNCtrlMaskOptions || {},
        externalCommands = parserConfig.externalCommands || {},
        multiLineStrings = parserConfig.multiLineStrings,
        indentStatements = parserConfig.indentStatements !== false;
    var isOperatorChar = /[\|]/;
    var curPunc;

    function tokenBase(stream, state) {
      var ch = stream.next();
      if (ch == '"' || ch == "'") {
        state.tokenize = tokenString(ch);
        return state.tokenize(stream, state);
      }
      if (/[:=]/.test(ch)) {
        curPunc = ch;
        return "punctuation";
      }
      if (ch == "#"){
        stream.skipToEnd();
        return "comment";
      }
      if (/\d/.test(ch)) {
        stream.eatWhile(/[\w\.]/);
        return "number";
      }
      if (isOperatorChar.test(ch)) {
        stream.eatWhile(isOperatorChar);
        return "operator";
      }
      if (ch == "["){
        stream.eatWhile(/[\w_\]]/);
        return "number sectionTitle";
      }

      stream.eatWhile(/[\w\$_]/);
      var cur = stream.current();
      if (keywords.propertyIsEnumerable(cur)) return "keyword";
      if (fileNCtrlMaskOptions.propertyIsEnumerable(cur))
        return "negative fileNCtrlMaskOptions";
      if (externalCommands.propertyIsEnumerable(cur)) return "negative externalCommands";

      return "variable";
    }

    function tokenString(quote) {
      return function(stream, state) {
        var escaped = false, next, end = false;
        while ((next = stream.next()) != null) {
          if (next == quote && !escaped){
            var afterNext = stream.peek();
            //look if the character if the quote is like the B in '10100010'B
            if (afterNext){
              afterNext = afterNext.toLowerCase();
              if(afterNext == "b" || afterNext == "h" || afterNext == "o")
                stream.next();
            }
            end = true; break;
          }
          escaped = !escaped && next == "\\";
        }
        if (end || !(escaped || multiLineStrings))
          state.tokenize = null;
        return "string";
      };
    }

    function Context(indented, column, type, align, prev) {
      this.indented = indented;
      this.column = column;
      this.type = type;
      this.align = align;
      this.prev = prev;
    }
    function pushContext(state, col, type) {
      var indent = state.indented;
      if (state.context && state.context.type == "statement")
        indent = state.context.indented;
      return state.context = new Context(indent, col, type, null, state.context);
    }
    function popContext(state) {
      var t = state.context.type;
      if (t == ")" || t == "]" || t == "}")
        state.indented = state.context.indented;
      return state.context = state.context.prev;
    }

    //Interface
    return {
      startState: function(basecolumn) {
        return {
          tokenize: null,
          context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
          indented: 0,
          startOfLine: true
        };
      },

      token: function(stream, state) {
        var ctx = state.context;
        if (stream.sol()) {
          if (ctx.align == null) ctx.align = false;
          state.indented = stream.indentation();
          state.startOfLine = true;
        }
        if (stream.eatSpace()) return null;
        curPunc = null;
        var style = (state.tokenize || tokenBase)(stream, state);
        if (style == "comment") return style;
        if (ctx.align == null) ctx.align = true;

        if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
            && ctx.type == "statement"){
          popContext(state);
        }
        else if (curPunc == "{") pushContext(state, stream.column(), "}");
        else if (curPunc == "[") pushContext(state, stream.column(), "]");
        else if (curPunc == "(") pushContext(state, stream.column(), ")");
        else if (curPunc == "}") {
          while (ctx.type == "statement") ctx = popContext(state);
          if (ctx.type == "}") ctx = popContext(state);
          while (ctx.type == "statement") ctx = popContext(state);
        }
        else if (curPunc == ctx.type) popContext(state);
        else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
            && curPunc != ';') || (ctx.type == "statement"
            && curPunc == "newstatement")))
          pushContext(state, stream.column(), "statement");
        state.startOfLine = false;
        return style;
      },

      electricChars: "{}",
      lineComment: "#",
      fold: "brace"
    };
  });

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i)
      obj[words[i]] = true;
    return obj;
  }

  CodeMirror.defineMIME("text/x-ttcn-cfg", {
    name: "ttcn-cfg",
    keywords: words("Yes No LogFile FileMask ConsoleMask AppendFile" +
    " TimeStampFormat LogEventTypes SourceInfoFormat" +
    " LogEntityName LogSourceInfo DiskFullAction" +
    " LogFileNumber LogFileSize MatchingHints Detailed" +
    " Compact SubCategories Stack Single None Seconds" +
    " DateTime Time Stop Error Retry Delete TCPPort KillTimer" +
    " NumHCs UnixSocketsEnabled LocalAddress"),
    fileNCtrlMaskOptions: words("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING" +
    " TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP" +
    " TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION" +
    " TTCN_USER TTCN_FUNCTION TTCN_STATISTICS" +
    " TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG" +
    " EXECUTOR ERROR WARNING PORTEVENT TIMEROP" +
    " VERDICTOP DEFAULTOP TESTCASE ACTION USER" +
    " FUNCTION STATISTICS PARALLEL MATCHING DEBUG" +
    " LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED" +
    " DEBUG_ENCDEC DEBUG_TESTPORT" +
    " DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE" +
    " DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT" +
    " DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED" +
    " EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA" +
    " EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS" +
    " EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED" +
    " FUNCTION_RND FUNCTION_UNQUALIFIED" +
    " MATCHING_DONE MATCHING_MCSUCCESS" +
    " MATCHING_MCUNSUCC MATCHING_MMSUCCESS" +
    " MATCHING_MMUNSUCC MATCHING_PCSUCCESS" +
    " MATCHING_PCUNSUCC MATCHING_PMSUCCESS" +
    " MATCHING_PMUNSUCC MATCHING_PROBLEM" +
    " MATCHING_TIMEOUT MATCHING_UNQUALIFIED" +
    " PARALLEL_PORTCONN PARALLEL_PORTMAP" +
    " PARALLEL_PTC PARALLEL_UNQUALIFIED" +
    " PORTEVENT_DUALRECV PORTEVENT_DUALSEND" +
    " PORTEVENT_MCRECV PORTEVENT_MCSEND" +
    " PORTEVENT_MMRECV PORTEVENT_MMSEND" +
    " PORTEVENT_MQUEUE PORTEVENT_PCIN" +
    " PORTEVENT_PCOUT PORTEVENT_PMIN" +
    " PORTEVENT_PMOUT PORTEVENT_PQUEUE" +
    " PORTEVENT_STATE PORTEVENT_UNQUALIFIED" +
    " STATISTICS_UNQUALIFIED STATISTICS_VERDICT" +
    " TESTCASE_FINISH TESTCASE_START" +
    " TESTCASE_UNQUALIFIED TIMEROP_GUARD" +
    " TIMEROP_READ TIMEROP_START TIMEROP_STOP" +
    " TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED" +
    " USER_UNQUALIFIED VERDICTOP_FINAL" +
    " VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT" +
    " VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),
    externalCommands: words("BeginControlPart EndControlPart BeginTestCase" +
    " EndTestCase"),
    multiLineStrings: true
  });
});editors/codemirror/mode/meta.js000064400000036324152177723720012617 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.modeInfo = [
    {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]},
    {name: "PGP", mimes: ["application/pgp", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["asc", "pgp", "sig"]},
    {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]},
    {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i},
    {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]},
    {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]},
    {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]},
    {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]},
    {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp"]},
    {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]},
    {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]},
    {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]},
    {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/},
    {name: "CoffeeScript", mimes: ["application/vnd.coffeescript", "text/coffeescript", "text/x-coffeescript"], mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]},
    {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]},
    {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]},
    {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]},
    {name: "Crystal", mime: "text/x-crystal", mode: "crystal", ext: ["cr"]},
    {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]},
    {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]},
    {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]},
    {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]},
    {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]},
    {name: "Django", mime: "text/x-django", mode: "django"},
    {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/},
    {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]},
    {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]},
    {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"},
    {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]},
    {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]},
    {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]},
    {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]},
    {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]},
    {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]},
    {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]},
    {name: "Esper", mime: "text/x-esper", mode: "sql"},
    {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]},
    {name: "FCL", mime: "text/x-fcl", mode: "fcl"},
    {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]},
    {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90"]},
    {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]},
    {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]},
    {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]},
    {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i},
    {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]},
    {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy", "gradle"], file: /^Jenkinsfile$/},
    {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]},
    {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]},
    {name: "Haskell (Literate)", mime: "text/x-literate-haskell", mode: "haskell-literate", ext: ["lhs"]},
    {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]},
    {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]},
    {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]},
    {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm", "handlebars", "hbs"], alias: ["xhtml"]},
    {name: "HTTP", mime: "message/http", mode: "http"},
    {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]},
    {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]},
    {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]},
    {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]},
    {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"],
     mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]},
    {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]},
    {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]},
    {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]},
    {name: "Jinja2", mime: "null", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]},
    {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]},
    {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]},
    {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]},
    {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]},
    {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]},
    {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]},
    {name: "mIRC", mime: "text/mirc", mode: "mirc"},
    {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"},
    {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb"]},
    {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]},
    {name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]},
    {name: "MS SQL", mime: "text/x-mssql", mode: "sql"},
    {name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]},
    {name: "MySQL", mime: "text/x-mysql", mode: "sql"},
    {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i},
    {name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]},
    {name: "NTriples", mimes: ["application/n-triples", "application/n-quads", "text/n-triples"],
     mode: "ntriples", ext: ["nt", "nq"]},
    {name: "Objective-C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"], alias: ["objective-c", "objc"]},
    {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]},
    {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]},
    {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]},
    {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]},
    {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]},
    {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]},
    {name: "PHP", mimes: ["text/x-php", "application/x-httpd-php", "application/x-httpd-php-open"], mode: "php", ext: ["php", "php3", "php4", "php5", "php7", "phtml"]},
    {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]},
    {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]},
    {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]},
    {name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]},
    {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]},
    {name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]},
    {name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/},
    {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]},
    {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]},
    {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r", "R"], alias: ["rscript"]},
    {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]},
    {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"},
    {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]},
    {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]},
    {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]},
    {name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]},
    {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]},
    {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]},
    {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]},
    {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]},
    {name: "Shell", mimes: ["text/x-sh", "application/x-sh"], mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/},
    {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]},
    {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]},
    {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]},
    {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]},
    {name: "Solr", mime: "text/x-solr", mode: "solr"},
    {name: "SML", mime: "text/x-sml", mode: "mllike", ext: ["sml", "sig", "fun", "smackspec"]},
    {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]},
    {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]},
    {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]},
    {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]},
    {name: "SQLite", mime: "text/x-sqlite", mode: "sql"},
    {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]},
    {name: "Stylus", mime: "text/x-styl", mode: "stylus", ext: ["styl"]},
    {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]},
    {name: "sTeX", mime: "text/x-stex", mode: "stex"},
    {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx", "tex"], alias: ["tex"]},
    {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v", "sv", "svh"]},
    {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]},
    {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]},
    {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"},
    {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"},
    {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]},
    {name: "Tornado", mime: "text/x-tornado", mode: "tornado"},
    {name: "troff", mime: "text/troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]},
    {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]},
    {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]},
    {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]},
    {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]},
    {name: "TypeScript-JSX", mime: "text/typescript-jsx", mode: "jsx", ext: ["tsx"], alias: ["tsx"]},
    {name: "Twig", mime: "text/x-twig", mode: "twig"},
    {name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]},
    {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]},
    {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]},
    {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]},
    {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]},
    {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]},
    {name: "Vue.js Component", mimes: ["script/x-vue", "text/x-vue"], mode: "vue", ext: ["vue"]},
    {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd", "svg"], alias: ["rss", "wsdl", "xsd"]},
    {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]},
    {name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]},
    {name: "YAML", mimes: ["text/x-yaml", "text/yaml"], mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]},
    {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]},
    {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]},
    {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]},
    {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]}
  ];
  // Ensure all modes have a mime property for backwards compatibility
  for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
    var info = CodeMirror.modeInfo[i];
    if (info.mimes) info.mime = info.mimes[0];
  }

  CodeMirror.findModeByMIME = function(mime) {
    mime = mime.toLowerCase();
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.mime == mime) return info;
      if (info.mimes) for (var j = 0; j < info.mimes.length; j++)
        if (info.mimes[j] == mime) return info;
    }
    if (/\+xml$/.test(mime)) return CodeMirror.findModeByMIME("application/xml")
    if (/\+json$/.test(mime)) return CodeMirror.findModeByMIME("application/json")
  };

  CodeMirror.findModeByExtension = function(ext) {
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.ext) for (var j = 0; j < info.ext.length; j++)
        if (info.ext[j] == ext) return info;
    }
  };

  CodeMirror.findModeByFileName = function(filename) {
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.file && info.file.test(filename)) return info;
    }
    var dot = filename.lastIndexOf(".");
    var ext = dot > -1 && filename.substring(dot + 1, filename.length);
    if (ext) return CodeMirror.findModeByExtension(ext);
  };

  CodeMirror.findModeByName = function(name) {
    name = name.toLowerCase();
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.name.toLowerCase() == name) return info;
      if (info.alias) for (var j = 0; j < info.alias.length; j++)
        if (info.alias[j].toLowerCase() == name) return info;
    }
  };
});
editors/codemirror/mode/brainfuck/brainfuck.js000064400000004177152177723720015602 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11

(function(mod) {
  if (typeof exports == "object" && typeof module == "object")
    mod(require("../../lib/codemirror"))
  else if (typeof define == "function" && define.amd)
    define(["../../lib/codemirror"], mod)
  else
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"
  var reserve = "><+-.,[]".split("");
  /*
  comments can be either:
  placed behind lines

        +++    this is a comment

  where reserved characters cannot be used
  or in a loop
  [
    this is ok to use [ ] and stuff
  ]
  or preceded by #
  */
  CodeMirror.defineMode("brainfuck", function() {
    return {
      startState: function() {
        return {
          commentLine: false,
          left: 0,
          right: 0,
          commentLoop: false
        }
      },
      token: function(stream, state) {
        if (stream.eatSpace()) return null
        if(stream.sol()){
          state.commentLine = false;
        }
        var ch = stream.next().toString();
        if(reserve.indexOf(ch) !== -1){
          if(state.commentLine === true){
            if(stream.eol()){
              state.commentLine = false;
            }
            return "comment";
          }
          if(ch === "]" || ch === "["){
            if(ch === "["){
              state.left++;
            }
            else{
              state.right++;
            }
            return "bracket";
          }
          else if(ch === "+" || ch === "-"){
            return "keyword";
          }
          else if(ch === "<" || ch === ">"){
            return "atom";
          }
          else if(ch === "." || ch === ","){
            return "def";
          }
        }
        else{
          state.commentLine = true;
          if(stream.eol()){
            state.commentLine = false;
          }
          return "comment";
        }
        if(stream.eol()){
          state.commentLine = false;
        }
      }
    };
  });
CodeMirror.defineMIME("text/x-brainfuck","brainfuck")
});
editors/codemirror/mode/brainfuck/brainfuck.min.js000064400000001465152177723720016361 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";var b="><+-.,[]".split("");a.defineMode("brainfuck",(function(){return{startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(a,c){if(a.eatSpace())return null;a.sol()&&(c.commentLine=!1);var d=a.next().toString();return b.indexOf(d)===-1?(c.commentLine=!0,a.eol()&&(c.commentLine=!1),"comment"):c.commentLine===!0?(a.eol()&&(c.commentLine=!1),"comment"):"]"===d||"["===d?("["===d?c.left++:c.right++,"bracket"):"+"===d||"-"===d?"keyword":"<"===d||">"===d?"atom":"."===d||","===d?"def":void(a.eol()&&(c.commentLine=!1))}}})),a.defineMIME("text/x-brainfuck","brainfuck")}));editors/codemirror/mode/htmlembedded/htmlembedded.min.js000064400000002061152177723720017476 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../../addon/mode/multiplex")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../../addon/mode/multiplex"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("htmlembedded",(function(b,c){var d=c.closeComment||"--%>";return a.multiplexingMode(a.getMode(b,"htmlmixed"),{open:c.openComment||"<%--",close:d,delimStyle:"comment",mode:{token:function(a){return a.skipTo(d)||a.skipToEnd(),"comment"}}},{open:c.open||c.scriptStartRegex||"<%",close:c.close||c.scriptEndRegex||"%>",mode:a.getMode(b,c.scriptingModeSpec)})}),"htmlmixed"),a.defineMIME("application/x-ejs",{name:"htmlembedded",scriptingModeSpec:"javascript"}),a.defineMIME("application/x-aspx",{name:"htmlembedded",scriptingModeSpec:"text/x-csharp"}),a.defineMIME("application/x-jsp",{name:"htmlembedded",scriptingModeSpec:"text/x-java"}),a.defineMIME("application/x-erb",{name:"htmlembedded",scriptingModeSpec:"ruby"})}));editors/codemirror/mode/htmlembedded/htmlembedded.js000064400000003271152177723720016720 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
        require("../../addon/mode/multiplex"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
            "../../addon/mode/multiplex"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
    var closeComment = parserConfig.closeComment || "--%>"
    return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
      open: parserConfig.openComment || "<%--",
      close: closeComment,
      delimStyle: "comment",
      mode: {token: function(stream) {
        stream.skipTo(closeComment) || stream.skipToEnd()
        return "comment"
      }}
    }, {
      open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
      close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
      mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
    });
  }, "htmlmixed");

  CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
  CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
  CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
  CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
});
editors/codemirror/mode/octave/octave.min.js000064400000005013152177723720015204 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("octave",(function(){function a(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}function b(a,b){return a.sol()||"'"!==a.peek()?(b.tokenize=d,d(a,b)):(a.next(),b.tokenize=d,"operator")}function c(a,b){return a.match(/^.*%}/)?(b.tokenize=d,"comment"):(a.skipToEnd(),"comment")}function d(n,o){if(n.eatSpace())return null;if(n.match("%{"))return o.tokenize=c,n.skipToEnd(),"comment";if(n.match(/^[%#]/))return n.skipToEnd(),"comment";if(n.match(/^[0-9\.+-]/,!1)){if(n.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return n.tokenize=d,"number";if(n.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/))return"number";if(n.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(n.match(a(["nan","NaN","inf","Inf"])))return"number";var p=n.match(/^"(?:[^"]|"")*("|$)/)||n.match(/^'(?:[^']|'')*('|$)/);return p?p[1]?"string":"string error":n.match(m)?"keyword":n.match(l)?"builtin":n.match(k)?"variable":n.match(e)||n.match(g)?"operator":n.match(f)||n.match(h)||n.match(i)?null:n.match(j)?(o.tokenize=b,null):(n.next(),"error")}var e=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),f=new RegExp("^[\\(\\[\\{\\},:=;]"),g=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),h=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),i=new RegExp("^((>>=)|(<<=))"),j=new RegExp("^[\\]\\)]"),k=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),l=a(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),m=a(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);return{startState:function(){return{tokenize:d}},token:function(a,c){var d=c.tokenize(a,c);return"number"!==d&&"variable"!==d||(c.tokenize=b),d},lineComment:"%",fold:"indent"}})),a.defineMIME("text/x-octave","octave")}));editors/codemirror/mode/octave/octave.js000064400000010653152177723720014430 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("octave", function() {
  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  var singleOperators = new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]");
  var singleDelimiters = new RegExp('^[\\(\\[\\{\\},:=;]');
  var doubleOperators = new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))");
  var doubleDelimiters = new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))");
  var tripleDelimiters = new RegExp("^((>>=)|(<<=))");
  var expressionEnd = new RegExp("^[\\]\\)]");
  var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");

  var builtins = wordRegexp([
    'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',
    'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',
    'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',
    'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',
    'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',
    'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',
    'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'
  ]);

  var keywords = wordRegexp([
    'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',
    'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',
    'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',
    'continue', 'pkg'
  ]);


  // tokenizers
  function tokenTranspose(stream, state) {
    if (!stream.sol() && stream.peek() === '\'') {
      stream.next();
      state.tokenize = tokenBase;
      return 'operator';
    }
    state.tokenize = tokenBase;
    return tokenBase(stream, state);
  }


  function tokenComment(stream, state) {
    if (stream.match(/^.*%}/)) {
      state.tokenize = tokenBase;
      return 'comment';
    };
    stream.skipToEnd();
    return 'comment';
  }

  function tokenBase(stream, state) {
    // whitespaces
    if (stream.eatSpace()) return null;

    // Handle one line Comments
    if (stream.match('%{')){
      state.tokenize = tokenComment;
      stream.skipToEnd();
      return 'comment';
    }

    if (stream.match(/^[%#]/)){
      stream.skipToEnd();
      return 'comment';
    }

    // Handle Number Literals
    if (stream.match(/^[0-9\.+-]/, false)) {
      if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {
        stream.tokenize = tokenBase;
        return 'number'; };
      if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
      if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
    }
    if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };

    // Handle Strings
    var m = stream.match(/^"(?:[^"]|"")*("|$)/) || stream.match(/^'(?:[^']|'')*('|$)/)
    if (m) { return m[1] ? 'string' : "string error"; }

    // Handle words
    if (stream.match(keywords)) { return 'keyword'; } ;
    if (stream.match(builtins)) { return 'builtin'; } ;
    if (stream.match(identifiers)) { return 'variable'; } ;

    if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };
    if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };

    if (stream.match(expressionEnd)) {
      state.tokenize = tokenTranspose;
      return null;
    };


    // Handle non-detected items
    stream.next();
    return 'error';
  };


  return {
    startState: function() {
      return {
        tokenize: tokenBase
      };
    },

    token: function(stream, state) {
      var style = state.tokenize(stream, state);
      if (style === 'number' || style === 'variable'){
        state.tokenize = tokenTranspose;
      }
      return style;
    },

    lineComment: '%',

    fold: 'indent'
  };
});

CodeMirror.defineMIME("text/x-octave", "octave");

});
editors/codemirror/mode/clike/clike.min.js000064400000045326152177723720014633 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.info=d,this.align=e,this.prev=f}function c(a,c,d,e){var f=a.indented;return a.context&&"statement"==a.context.type&&"statement"!=d&&(f=a.context.indented),a.context=new b(f,c,d,e,null,a.context)}function d(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}function e(a,b,c){return"variable"==b.prevToken||"type"==b.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(a.string.slice(0,c))||(!(!b.typeAtEndOfLine||a.column()!=a.indentation())||void 0))}function f(a){for(;;){if(!a||"top"==a.type)return!0;if("}"==a.type&&"namespace"!=a.prev.info)return!1;a=a.prev}}function g(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function h(a,b){return"function"==typeof a?a(b):a.propertyIsEnumerable(b)}function i(a,b){if(!b.startOfLine)return!1;for(var c,d=null;c=a.peek();){if("\\"==c&&a.match(/^.$/)){d=i;break}if("/"==c&&a.match(/^\/[\/\*]/,!1))break;a.next()}return b.tokenize=d,"meta"}function j(a,b){return"type"==b.prevToken&&"type"}function k(a){return a.eatWhile(/[\w\.']/),"number"}function l(a,b){if(a.backUp(1),a.match(/(R|u8R|uR|UR|LR)/)){var c=a.match(/"([^\s\\()]{0,16})\(/);return!!c&&(b.cpp11RawStringDelim=c[1],b.tokenize=o,o(a,b))}return a.match(/(u8|u|U|L)/)?!!a.match(/["']/,!1)&&"string":(a.next(),!1)}function m(a){var b=/(\w+)::~?(\w+)$/.exec(a);return b&&b[1]==b[2]}function n(a,b){for(var c;null!=(c=a.next());)if('"'==c&&!a.eat('"')){b.tokenize=null;break}return"string"}function o(a,b){var c=b.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),d=a.match(new RegExp(".*?\\)"+c+'"'));return d?b.tokenize=null:a.skipToEnd(),"string"}function p(b,c){function d(a){if(a)for(var b in a)a.hasOwnProperty(b)&&e.push(b)}"string"==typeof b&&(b=[b]);var e=[];d(c.keywords),d(c.types),d(c.builtin),d(c.atoms),e.length&&(c.helperType=b[0],a.registerHelper("hintWords",b[0],e));for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}function q(a,b){for(var c=!1;!a.eol();){if(!c&&a.match('"""')){b.tokenize=null;break}c="\\"==a.next()&&!c}return"string"}function r(a){return function(b,c){for(var d;d=b.next();){if("*"==d&&b.eat("/")){if(1==a){c.tokenize=null;break}return c.tokenize=r(a-1),c.tokenize(b,c)}if("/"==d&&b.eat("*"))return c.tokenize=r(a+1),c.tokenize(b,c)}return"comment"}}function s(a){return function(b,c){for(var d,e=!1,f=!1;!b.eol();){if(!a&&!e&&b.match('"')){f=!0;break}if(a&&b.match('"""')){f=!0;break}d=b.next(),!e&&"$"==d&&b.match("{")&&b.skipTo("}"),e=!e&&"\\"==d&&!a}return!f&&a||(c.tokenize=null),"string"}}function t(a){return function(b,c){for(var d,e=!1,f=!1;!b.eol();){if(!e&&b.match('"')&&("single"==a||b.match('""'))){f=!0;break}if(!e&&b.match("``")){w=t(a),f=!0;break}d=b.next(),e="single"==a&&!e&&"\\"==d}return f&&(c.tokenize=null),"string"}}a.defineMode("clike",(function(g,i){function j(a,b){var c=a.next();if(y[c]){var d=y[c](a,b);if(d!==!1)return d}if('"'==c||"'"==c)return b.tokenize=k(c),b.tokenize(a,b);if(D.test(c))return n=c,null;if(E.test(c)){if(a.backUp(1),a.match(F))return"number";a.next()}if("/"==c){if(a.eat("*"))return b.tokenize=l,l(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(G.test(c)){for(;!a.match(/^\/[\/*]/,!1)&&a.eat(G););return"operator"}if(a.eatWhile(H),C)for(;a.match(C);)a.eatWhile(H);var e=a.current();return h(s,e)?(h(v,e)&&(n="newstatement"),h(w,e)&&(o=!0),"keyword"):h(t,e)?"type":h(u,e)?(h(v,e)&&(n="newstatement"),"builtin"):h(x,e)?"atom":"variable"}function k(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){f=!0;break}e=!e&&"\\"==d}return(f||!e&&!z)&&(c.tokenize=null),"string"}}function l(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=null;break}d="*"==c}return"comment"}function m(a,b){i.typeFirstDefinitions&&a.eol()&&f(b.context)&&(b.typeAtEndOfLine=e(a,b,a.pos))}var n,o,p=g.indentUnit,q=i.statementIndentUnit||p,r=i.dontAlignCalls,s=i.keywords||{},t=i.types||{},u=i.builtin||{},v=i.blockKeywords||{},w=i.defKeywords||{},x=i.atoms||{},y=i.hooks||{},z=i.multiLineStrings,A=i.indentStatements!==!1,B=i.indentSwitch!==!1,C=i.namespaceSeparator,D=i.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,E=i.numberStart||/[\d\.]/,F=i.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,G=i.isOperatorChar||/[+\-*&%=<>!?|\/]/,H=i.isIdentifierChar||/[\w\$_\xa1-\uffff]/;return{startState:function(a){return{tokenize:null,context:new b((a||0)-p,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(a,b){var g=b.context;if(a.sol()&&(null==g.align&&(g.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return m(a,b),null;n=o=null;var h=(b.tokenize||j)(a,b);if("comment"==h||"meta"==h)return h;if(null==g.align&&(g.align=!0),";"==n||":"==n||","==n&&a.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==b.context.type;)d(b);else if("{"==n)c(b,a.column(),"}");else if("["==n)c(b,a.column(),"]");else if("("==n)c(b,a.column(),")");else if("}"==n){for(;"statement"==g.type;)g=d(b);for("}"==g.type&&(g=d(b));"statement"==g.type;)g=d(b)}else n==g.type?d(b):A&&(("}"==g.type||"top"==g.type)&&";"!=n||"statement"==g.type&&"newstatement"==n)&&c(b,a.column(),"statement",a.current());if("variable"==h&&("def"==b.prevToken||i.typeFirstDefinitions&&e(a,b,a.start)&&f(b.context)&&a.match(/^\s*\(/,!1))&&(h="def"),y.token){var k=y.token(a,b,h);void 0!==k&&(h=k)}return"def"==h&&i.styleDefs===!1&&(h="variable"),b.startOfLine=!1,b.prevToken=o?"def":h||n,m(a,b),h},indent:function(b,c){if(b.tokenize!=j&&null!=b.tokenize||b.typeAtEndOfLine)return a.Pass;var d=b.context,e=c&&c.charAt(0),f=e==d.type;if("statement"==d.type&&"}"==e&&(d=d.prev),i.dontIndentStatements)for(;"statement"==d.type&&i.dontIndentStatements.test(d.info);)d=d.prev;if(y.indent){var g=y.indent(b,d,c,p);if("number"==typeof g)return g}var h=d.prev&&"switch"==d.prev.info;if(i.allmanIndentation&&/[{(]/.test(e)){for(;"top"!=d.type&&"}"!=d.type;)d=d.prev;return d.indented}return"statement"==d.type?d.indented+("{"==e?0:q):!d.align||r&&")"==d.type?")"!=d.type||f?d.indented+(f?0:p)+(f||!h||/^(?:case|default)\b/.test(c)?0:p):d.indented+q:d.column+(f?0:1)},electricInput:B?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}}));var u="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile",v="int long char short double float unsigned signed void size_t ptrdiff_t";p(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:g(u),types:g(v+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:g("case do else for if switch while struct"),defKeywords:g("struct"),typeFirstDefinitions:!0,atoms:g("NULL true false"),hooks:{"#":i,"*":j},modeProps:{fold:["brace","include"]}}),p(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:g(u+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:g(v+" bool wchar_t"),blockKeywords:g("catch class do else finally for if struct switch try while"),defKeywords:g("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:g("true false NULL"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,hooks:{"#":i,"*":j,u:l,U:l,L:l,R:l,0:k,1:k,2:k,3:k,4:k,5:k,6:k,7:k,8:k,9:k,token:function(a,b,c){if("variable"==c&&"("==a.peek()&&(";"==b.prevToken||null==b.prevToken||"}"==b.prevToken)&&m(a.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),p("text/x-java",{name:"clike",keywords:g("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:g("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:g("catch class do else finally for if switch try while"),defKeywords:g("class interface enum @interface"),typeFirstDefinitions:!0,atoms:g("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(a){return!a.match("interface",!1)&&(a.eatWhile(/[\w\$_]/),"meta")}},modeProps:{fold:["brace","import"]}}),p("text/x-csharp",{name:"clike",keywords:g("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:g("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:g("catch class do else finally for foreach if struct switch try while"),defKeywords:g("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:g("true false null"),hooks:{"@":function(a,b){return a.eat('"')?(b.tokenize=n,n(a,b)):(a.eatWhile(/[\w\$_]/),"meta")}}}),p("text/x-scala",{name:"clike",keywords:g("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:g("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:g("catch class enum do else finally for forSome if match switch try while"),defKeywords:g("class enum def object package trait type val var"),atoms:g("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"},'"':function(a,b){return!!a.match('""')&&(b.tokenize=q,b.tokenize(a,b))},"'":function(a){return a.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(a,c){var d=c.context;return!("}"!=d.type||!d.align||!a.eat(">"))&&(c.context=new b(d.indented,d.column,d.type,d.info,null,d.prev),"operator")},"/":function(a,b){return!!a.eat("*")&&(b.tokenize=r(1),b.tokenize(a,b))}},modeProps:{closeBrackets:{triples:'"'}}}),p("text/x-kotlin",{name:"clike",keywords:g("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:g("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:g("catch class do else finally for if where try while enum"),defKeywords:g("class val var object interface fun"),atoms:g("true false null this"),hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"},'"':function(a,b){return b.tokenize=s(a.match('""')),b.tokenize(a,b)},indent:function(a,b,c,d){var e=c&&c.charAt(0);return"}"!=a.prevToken&&")"!=a.prevToken||""!=c?"operator"==a.prevToken&&"}"!=c||"variable"==a.prevToken&&"."==e||("}"==a.prevToken||")"==a.prevToken)&&"."==e?2*d+b.indented:b.align&&"}"==b.type?b.indented+(a.context.type==(c||"").charAt(0)?0:d):void 0:a.indented}},modeProps:{closeBrackets:{triples:'"'}}}),p(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:g("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:g("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:g("for while do if else struct"),builtin:g("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:g("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":i},modeProps:{fold:["brace","include"]}}),p("text/x-nesc",{name:"clike",keywords:g(u+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:g(v),blockKeywords:g("case do else for if switch while struct"),atoms:g("null true false"),hooks:{"#":i},modeProps:{fold:["brace","include"]}}),p("text/x-objectivec",{name:"clike",keywords:g(u+"inline restrict _Bool _Complex _Imaginary BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:g(v),atoms:g("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(a){return a.eatWhile(/[\w\$]/),"keyword"},"#":i,indent:function(a,b,c){if("statement"==b.type&&/^@\w/.test(c))return b.indented}},modeProps:{fold:"brace"}}),p("text/x-squirrel",{name:"clike",keywords:g("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:g(v),blockKeywords:g("case catch class else for foreach if switch try while"),defKeywords:g("function local class"),typeFirstDefinitions:!0,atoms:g("true false null"),hooks:{"#":i},modeProps:{fold:["brace","include"]}});var w=null;p("text/x-ceylon",{name:"clike",keywords:g("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(a){var b=a.charAt(0);return b===b.toUpperCase()&&b!==b.toLowerCase()},blockKeywords:g("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:g("class dynamic function interface module object package value"),builtin:g("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:g("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"},'"':function(a,b){return b.tokenize=t(a.match('""')?"triple":"single"),b.tokenize(a,b)},"`":function(a,b){return!(!w||!a.match("`"))&&(b.tokenize=w,w=null,b.tokenize(a,b))},"'":function(a){return a.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(a,b,c){if(("variable"==c||"type"==c)&&"."==b.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}));editors/codemirror/mode/clike/clike.js000064400000100107152177723720014036 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

function Context(indented, column, type, info, align, prev) {
  this.indented = indented;
  this.column = column;
  this.type = type;
  this.info = info;
  this.align = align;
  this.prev = prev;
}
function pushContext(state, col, type, info) {
  var indent = state.indented;
  if (state.context && state.context.type == "statement" && type != "statement")
    indent = state.context.indented;
  return state.context = new Context(indent, col, type, info, null, state.context);
}
function popContext(state) {
  var t = state.context.type;
  if (t == ")" || t == "]" || t == "}")
    state.indented = state.context.indented;
  return state.context = state.context.prev;
}

function typeBefore(stream, state, pos) {
  if (state.prevToken == "variable" || state.prevToken == "type") return true;
  if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
  if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
}

function isTopScope(context) {
  for (;;) {
    if (!context || context.type == "top") return true;
    if (context.type == "}" && context.prev.info != "namespace") return false;
    context = context.prev;
  }
}

CodeMirror.defineMode("clike", function(config, parserConfig) {
  var indentUnit = config.indentUnit,
      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
      dontAlignCalls = parserConfig.dontAlignCalls,
      keywords = parserConfig.keywords || {},
      types = parserConfig.types || {},
      builtin = parserConfig.builtin || {},
      blockKeywords = parserConfig.blockKeywords || {},
      defKeywords = parserConfig.defKeywords || {},
      atoms = parserConfig.atoms || {},
      hooks = parserConfig.hooks || {},
      multiLineStrings = parserConfig.multiLineStrings,
      indentStatements = parserConfig.indentStatements !== false,
      indentSwitch = parserConfig.indentSwitch !== false,
      namespaceSeparator = parserConfig.namespaceSeparator,
      isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
      numberStart = parserConfig.numberStart || /[\d\.]/,
      number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
      isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/,
      isIdentifierChar = parserConfig.isIdentifierChar || /[\w\$_\xa1-\uffff]/;

  var curPunc, isDefKeyword;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (hooks[ch]) {
      var result = hooks[ch](stream, state);
      if (result !== false) return result;
    }
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (isPunctuationChar.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (numberStart.test(ch)) {
      stream.backUp(1)
      if (stream.match(number)) return "number"
      stream.next()
    }
    if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
      return "operator";
    }
    stream.eatWhile(isIdentifierChar);
    if (namespaceSeparator) while (stream.match(namespaceSeparator))
      stream.eatWhile(isIdentifierChar);

    var cur = stream.current();
    if (contains(keywords, cur)) {
      if (contains(blockKeywords, cur)) curPunc = "newstatement";
      if (contains(defKeywords, cur)) isDefKeyword = true;
      return "keyword";
    }
    if (contains(types, cur)) return "type";
    if (contains(builtin, cur)) {
      if (contains(blockKeywords, cur)) curPunc = "newstatement";
      return "builtin";
    }
    if (contains(atoms, cur)) return "atom";
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "\\";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = null;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function maybeEOL(stream, state) {
    if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))
      state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", null, false),
        indented: 0,
        startOfLine: true,
        prevToken: null
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
      }
      if (stream.eatSpace()) { maybeEOL(stream, state); return null; }
      curPunc = isDefKeyword = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      if (ctx.align == null) ctx.align = true;

      if (curPunc == ";" || curPunc == ":" || (curPunc == "," && stream.match(/^\s*(?:\/\/.*)?$/, false)))
        while (state.context.type == "statement") popContext(state);
      else if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "}") {
        while (ctx.type == "statement") ctx = popContext(state);
        if (ctx.type == "}") ctx = popContext(state);
        while (ctx.type == "statement") ctx = popContext(state);
      }
      else if (curPunc == ctx.type) popContext(state);
      else if (indentStatements &&
               (((ctx.type == "}" || ctx.type == "top") && curPunc != ";") ||
                (ctx.type == "statement" && curPunc == "newstatement"))) {
        pushContext(state, stream.column(), "statement", stream.current());
      }

      if (style == "variable" &&
          ((state.prevToken == "def" ||
            (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&
             isTopScope(state.context) && stream.match(/^\s*\(/, false)))))
        style = "def";

      if (hooks.token) {
        var result = hooks.token(stream, state, style);
        if (result !== undefined) style = result;
      }

      if (style == "def" && parserConfig.styleDefs === false) style = "variable";

      state.startOfLine = false;
      state.prevToken = isDefKeyword ? "def" : style || curPunc;
      maybeEOL(stream, state);
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
      var closing = firstChar == ctx.type;
      if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
      if (parserConfig.dontIndentStatements)
        while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
          ctx = ctx.prev
      if (hooks.indent) {
        var hook = hooks.indent(state, ctx, textAfter, indentUnit);
        if (typeof hook == "number") return hook
      }
      var switchBlock = ctx.prev && ctx.prev.info == "switch";
      if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
        while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
        return ctx.indented
      }
      if (ctx.type == "statement")
        return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
      if (ctx.align && (!dontAlignCalls || ctx.type != ")"))
        return ctx.column + (closing ? 0 : 1);
      if (ctx.type == ")" && !closing)
        return ctx.indented + statementIndentUnit;

      return ctx.indented + (closing ? 0 : indentUnit) +
        (!closing && switchBlock && !/^(?:case|default)\b/.test(textAfter) ? indentUnit : 0);
    },

    electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    blockCommentContinue: " * ",
    lineComment: "//",
    fold: "brace"
  };
});

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  function contains(words, word) {
    if (typeof words === "function") {
      return words(word);
    } else {
      return words.propertyIsEnumerable(word);
    }
  }
  var cKeywords = "auto if break case register continue return default do sizeof " +
    "static else struct switch extern typedef union for goto while enum const volatile";
  var cTypes = "int long char short double float unsigned signed void size_t ptrdiff_t";

  function cppHook(stream, state) {
    if (!state.startOfLine) return false
    for (var ch, next = null; ch = stream.peek();) {
      if (ch == "\\" && stream.match(/^.$/)) {
        next = cppHook
        break
      } else if (ch == "/" && stream.match(/^\/[\/\*]/, false)) {
        break
      }
      stream.next()
    }
    state.tokenize = next
    return "meta"
  }

  function pointerHook(_stream, state) {
    if (state.prevToken == "type") return "type";
    return false;
  }

  function cpp14Literal(stream) {
    stream.eatWhile(/[\w\.']/);
    return "number";
  }

  function cpp11StringHook(stream, state) {
    stream.backUp(1);
    // Raw strings.
    if (stream.match(/(R|u8R|uR|UR|LR)/)) {
      var match = stream.match(/"([^\s\\()]{0,16})\(/);
      if (!match) {
        return false;
      }
      state.cpp11RawStringDelim = match[1];
      state.tokenize = tokenRawString;
      return tokenRawString(stream, state);
    }
    // Unicode strings/chars.
    if (stream.match(/(u8|u|U|L)/)) {
      if (stream.match(/["']/, /* eat */ false)) {
        return "string";
      }
      return false;
    }
    // Ignore this hook.
    stream.next();
    return false;
  }

  function cppLooksLikeConstructor(word) {
    var lastTwo = /(\w+)::~?(\w+)$/.exec(word);
    return lastTwo && lastTwo[1] == lastTwo[2];
  }

  // C#-style strings where "" escapes a quote.
  function tokenAtString(stream, state) {
    var next;
    while ((next = stream.next()) != null) {
      if (next == '"' && !stream.eat('"')) {
        state.tokenize = null;
        break;
      }
    }
    return "string";
  }

  // C++11 raw string literal is <prefix>"<delim>( anything )<delim>", where
  // <delim> can be a string up to 16 characters long.
  function tokenRawString(stream, state) {
    // Escape characters that have special regex meanings.
    var delim = state.cpp11RawStringDelim.replace(/[^\w\s]/g, '\\$&');
    var match = stream.match(new RegExp(".*?\\)" + delim + '"'));
    if (match)
      state.tokenize = null;
    else
      stream.skipToEnd();
    return "string";
  }

  function def(mimes, mode) {
    if (typeof mimes == "string") mimes = [mimes];
    var words = [];
    function add(obj) {
      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))
        words.push(prop);
    }
    add(mode.keywords);
    add(mode.types);
    add(mode.builtin);
    add(mode.atoms);
    if (words.length) {
      mode.helperType = mimes[0];
      CodeMirror.registerHelper("hintWords", mimes[0], words);
    }

    for (var i = 0; i < mimes.length; ++i)
      CodeMirror.defineMIME(mimes[i], mode);
  }

  def(["text/x-csrc", "text/x-c", "text/x-chdr"], {
    name: "clike",
    keywords: words(cKeywords),
    types: words(cTypes + " bool _Complex _Bool float_t double_t intptr_t intmax_t " +
                 "int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t " +
                 "uint32_t uint64_t"),
    blockKeywords: words("case do else for if switch while struct"),
    defKeywords: words("struct"),
    typeFirstDefinitions: true,
    atoms: words("NULL true false"),
    hooks: {"#": cppHook, "*": pointerHook},
    modeProps: {fold: ["brace", "include"]}
  });

  def(["text/x-c++src", "text/x-c++hdr"], {
    name: "clike",
    keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try explicit new " +
                    "static_cast typeid catch operator template typename class friend private " +
                    "this using const_cast inline public throw virtual delete mutable protected " +
                    "alignas alignof constexpr decltype nullptr noexcept thread_local final " +
                    "static_assert override"),
    types: words(cTypes + " bool wchar_t"),
    blockKeywords: words("catch class do else finally for if struct switch try while"),
    defKeywords: words("class namespace struct enum union"),
    typeFirstDefinitions: true,
    atoms: words("true false NULL"),
    dontIndentStatements: /^template$/,
    isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
    hooks: {
      "#": cppHook,
      "*": pointerHook,
      "u": cpp11StringHook,
      "U": cpp11StringHook,
      "L": cpp11StringHook,
      "R": cpp11StringHook,
      "0": cpp14Literal,
      "1": cpp14Literal,
      "2": cpp14Literal,
      "3": cpp14Literal,
      "4": cpp14Literal,
      "5": cpp14Literal,
      "6": cpp14Literal,
      "7": cpp14Literal,
      "8": cpp14Literal,
      "9": cpp14Literal,
      token: function(stream, state, style) {
        if (style == "variable" && stream.peek() == "(" &&
            (state.prevToken == ";" || state.prevToken == null ||
             state.prevToken == "}") &&
            cppLooksLikeConstructor(stream.current()))
          return "def";
      }
    },
    namespaceSeparator: "::",
    modeProps: {fold: ["brace", "include"]}
  });

  def("text/x-java", {
    name: "clike",
    keywords: words("abstract assert break case catch class const continue default " +
                    "do else enum extends final finally float for goto if implements import " +
                    "instanceof interface native new package private protected public " +
                    "return static strictfp super switch synchronized this throw throws transient " +
                    "try volatile while @interface"),
    types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
                 "Integer Long Number Object Short String StringBuffer StringBuilder Void"),
    blockKeywords: words("catch class do else finally for if switch try while"),
    defKeywords: words("class interface enum @interface"),
    typeFirstDefinitions: true,
    atoms: words("true false null"),
    number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
    hooks: {
      "@": function(stream) {
        // Don't match the @interface keyword.
        if (stream.match('interface', false)) return false;

        stream.eatWhile(/[\w\$_]/);
        return "meta";
      }
    },
    modeProps: {fold: ["brace", "import"]}
  });

  def("text/x-csharp", {
    name: "clike",
    keywords: words("abstract as async await base break case catch checked class const continue" +
                    " default delegate do else enum event explicit extern finally fixed for" +
                    " foreach goto if implicit in interface internal is lock namespace new" +
                    " operator out override params private protected public readonly ref return sealed" +
                    " sizeof stackalloc static struct switch this throw try typeof unchecked" +
                    " unsafe using virtual void volatile while add alias ascending descending dynamic from get" +
                    " global group into join let orderby partial remove select set value var yield"),
    types: words("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func" +
                 " Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32" +
                 " UInt64 bool byte char decimal double short int long object"  +
                 " sbyte float string ushort uint ulong"),
    blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
    defKeywords: words("class interface namespace struct var"),
    typeFirstDefinitions: true,
    atoms: words("true false null"),
    hooks: {
      "@": function(stream, state) {
        if (stream.eat('"')) {
          state.tokenize = tokenAtString;
          return tokenAtString(stream, state);
        }
        stream.eatWhile(/[\w\$_]/);
        return "meta";
      }
    }
  });

  function tokenTripleString(stream, state) {
    var escaped = false;
    while (!stream.eol()) {
      if (!escaped && stream.match('"""')) {
        state.tokenize = null;
        break;
      }
      escaped = stream.next() == "\\" && !escaped;
    }
    return "string";
  }

  function tokenNestedComment(depth) {
    return function (stream, state) {
      var ch
      while (ch = stream.next()) {
        if (ch == "*" && stream.eat("/")) {
          if (depth == 1) {
            state.tokenize = null
            break
          } else {
            state.tokenize = tokenNestedComment(depth - 1)
            return state.tokenize(stream, state)
          }
        } else if (ch == "/" && stream.eat("*")) {
          state.tokenize = tokenNestedComment(depth + 1)
          return state.tokenize(stream, state)
        }
      }
      return "comment"
    }
  }

  def("text/x-scala", {
    name: "clike",
    keywords: words(

      /* scala */
      "abstract case catch class def do else extends final finally for forSome if " +
      "implicit import lazy match new null object override package private protected return " +
      "sealed super this throw trait try type val var while with yield _ " +

      /* package scala */
      "assert assume require print println printf readLine readBoolean readByte readShort " +
      "readChar readInt readLong readFloat readDouble"
    ),
    types: words(
      "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " +
      "Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable " +
      "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " +
      "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " +
      "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector " +

      /* package java.lang */
      "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
      "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
      "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
      "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
    ),
    multiLineStrings: true,
    blockKeywords: words("catch class enum do else finally for forSome if match switch try while"),
    defKeywords: words("class enum def object package trait type val var"),
    atoms: words("true false null"),
    indentStatements: false,
    indentSwitch: false,
    isOperatorChar: /[+\-*&%=<>!?|\/#:@]/,
    hooks: {
      "@": function(stream) {
        stream.eatWhile(/[\w\$_]/);
        return "meta";
      },
      '"': function(stream, state) {
        if (!stream.match('""')) return false;
        state.tokenize = tokenTripleString;
        return state.tokenize(stream, state);
      },
      "'": function(stream) {
        stream.eatWhile(/[\w\$_\xa1-\uffff]/);
        return "atom";
      },
      "=": function(stream, state) {
        var cx = state.context
        if (cx.type == "}" && cx.align && stream.eat(">")) {
          state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)
          return "operator"
        } else {
          return false
        }
      },

      "/": function(stream, state) {
        if (!stream.eat("*")) return false
        state.tokenize = tokenNestedComment(1)
        return state.tokenize(stream, state)
      }
    },
    modeProps: {closeBrackets: {triples: '"'}}
  });

  function tokenKotlinString(tripleString){
    return function (stream, state) {
      var escaped = false, next, end = false;
      while (!stream.eol()) {
        if (!tripleString && !escaped && stream.match('"') ) {end = true; break;}
        if (tripleString && stream.match('"""')) {end = true; break;}
        next = stream.next();
        if(!escaped && next == "$" && stream.match('{'))
          stream.skipTo("}");
        escaped = !escaped && next == "\\" && !tripleString;
      }
      if (end || !tripleString)
        state.tokenize = null;
      return "string";
    }
  }

  def("text/x-kotlin", {
    name: "clike",
    keywords: words(
      /*keywords*/
      "package as typealias class interface this super val operator " +
      "var fun for is in This throw return annotation " +
      "break continue object if else while do try when !in !is as? " +

      /*soft keywords*/
      "file import where by get set abstract enum open inner override private public internal " +
      "protected catch finally out final vararg reified dynamic companion constructor init " +
      "sealed field property receiver param sparam lateinit data inline noinline tailrec " +
      "external annotation crossinline const operator infix suspend actual expect setparam"
    ),
    types: words(
      /* package java.lang */
      "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
      "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
      "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
      "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray " +
      "ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy " +
      "LazyThreadSafetyMode LongArray Nothing ShortArray Unit"
    ),
    intendSwitch: false,
    indentStatements: false,
    multiLineStrings: true,
    number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
    blockKeywords: words("catch class do else finally for if where try while enum"),
    defKeywords: words("class val var object interface fun"),
    atoms: words("true false null this"),
    hooks: {
      "@": function(stream) {
        stream.eatWhile(/[\w\$_]/);
        return "meta";
      },
      '"': function(stream, state) {
        state.tokenize = tokenKotlinString(stream.match('""'));
        return state.tokenize(stream, state);
      },
      indent: function(state, ctx, textAfter, indentUnit) {
        var firstChar = textAfter && textAfter.charAt(0);
        if ((state.prevToken == "}" || state.prevToken == ")") && textAfter == "")
          return state.indented;
        if (state.prevToken == "operator" && textAfter != "}" ||
          state.prevToken == "variable" && firstChar == "." ||
          (state.prevToken == "}" || state.prevToken == ")") && firstChar == ".")
          return indentUnit * 2 + ctx.indented;
        if (ctx.align && ctx.type == "}")
          return ctx.indented + (state.context.type == (textAfter || "").charAt(0) ? 0 : indentUnit);
      }
    },
    modeProps: {closeBrackets: {triples: '"'}}
  });

  def(["x-shader/x-vertex", "x-shader/x-fragment"], {
    name: "clike",
    keywords: words("sampler1D sampler2D sampler3D samplerCube " +
                    "sampler1DShadow sampler2DShadow " +
                    "const attribute uniform varying " +
                    "break continue discard return " +
                    "for while do if else struct " +
                    "in out inout"),
    types: words("float int bool void " +
                 "vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 " +
                 "mat2 mat3 mat4"),
    blockKeywords: words("for while do if else struct"),
    builtin: words("radians degrees sin cos tan asin acos atan " +
                    "pow exp log exp2 sqrt inversesqrt " +
                    "abs sign floor ceil fract mod min max clamp mix step smoothstep " +
                    "length distance dot cross normalize ftransform faceforward " +
                    "reflect refract matrixCompMult " +
                    "lessThan lessThanEqual greaterThan greaterThanEqual " +
                    "equal notEqual any all not " +
                    "texture1D texture1DProj texture1DLod texture1DProjLod " +
                    "texture2D texture2DProj texture2DLod texture2DProjLod " +
                    "texture3D texture3DProj texture3DLod texture3DProjLod " +
                    "textureCube textureCubeLod " +
                    "shadow1D shadow2D shadow1DProj shadow2DProj " +
                    "shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod " +
                    "dFdx dFdy fwidth " +
                    "noise1 noise2 noise3 noise4"),
    atoms: words("true false " +
                "gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex " +
                "gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 " +
                "gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 " +
                "gl_FogCoord gl_PointCoord " +
                "gl_Position gl_PointSize gl_ClipVertex " +
                "gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor " +
                "gl_TexCoord gl_FogFragCoord " +
                "gl_FragCoord gl_FrontFacing " +
                "gl_FragData gl_FragDepth " +
                "gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix " +
                "gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse " +
                "gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse " +
                "gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose " +
                "gl_ProjectionMatrixInverseTranspose " +
                "gl_ModelViewProjectionMatrixInverseTranspose " +
                "gl_TextureMatrixInverseTranspose " +
                "gl_NormalScale gl_DepthRange gl_ClipPlane " +
                "gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel " +
                "gl_FrontLightModelProduct gl_BackLightModelProduct " +
                "gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ " +
                "gl_FogParameters " +
                "gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords " +
                "gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats " +
                "gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits " +
                "gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits " +
                "gl_MaxDrawBuffers"),
    indentSwitch: false,
    hooks: {"#": cppHook},
    modeProps: {fold: ["brace", "include"]}
  });

  def("text/x-nesc", {
    name: "clike",
    keywords: words(cKeywords + "as atomic async call command component components configuration event generic " +
                    "implementation includes interface module new norace nx_struct nx_union post provides " +
                    "signal task uses abstract extends"),
    types: words(cTypes),
    blockKeywords: words("case do else for if switch while struct"),
    atoms: words("null true false"),
    hooks: {"#": cppHook},
    modeProps: {fold: ["brace", "include"]}
  });

  def("text/x-objectivec", {
    name: "clike",
    keywords: words(cKeywords + "inline restrict _Bool _Complex _Imaginary BOOL Class bycopy byref id IMP in " +
                    "inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),
    types: words(cTypes),
    atoms: words("YES NO NULL NILL ON OFF true false"),
    hooks: {
      "@": function(stream) {
        stream.eatWhile(/[\w\$]/);
        return "keyword";
      },
      "#": cppHook,
      indent: function(_state, ctx, textAfter) {
        if (ctx.type == "statement" && /^@\w/.test(textAfter)) return ctx.indented
      }
    },
    modeProps: {fold: "brace"}
  });

  def("text/x-squirrel", {
    name: "clike",
    keywords: words("base break clone continue const default delete enum extends function in class" +
                    " foreach local resume return this throw typeof yield constructor instanceof static"),
    types: words(cTypes),
    blockKeywords: words("case catch class else for foreach if switch try while"),
    defKeywords: words("function local class"),
    typeFirstDefinitions: true,
    atoms: words("true false null"),
    hooks: {"#": cppHook},
    modeProps: {fold: ["brace", "include"]}
  });

  // Ceylon Strings need to deal with interpolation
  var stringTokenizer = null;
  function tokenCeylonString(type) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while (!stream.eol()) {
        if (!escaped && stream.match('"') &&
              (type == "single" || stream.match('""'))) {
          end = true;
          break;
        }
        if (!escaped && stream.match('``')) {
          stringTokenizer = tokenCeylonString(type);
          end = true;
          break;
        }
        next = stream.next();
        escaped = type == "single" && !escaped && next == "\\";
      }
      if (end)
          state.tokenize = null;
      return "string";
    }
  }

  def("text/x-ceylon", {
    name: "clike",
    keywords: words("abstracts alias assembly assert assign break case catch class continue dynamic else" +
                    " exists extends finally for function given if import in interface is let module new" +
                    " nonempty object of out outer package return satisfies super switch then this throw" +
                    " try value void while"),
    types: function(word) {
        // In Ceylon all identifiers that start with an uppercase are types
        var first = word.charAt(0);
        return (first === first.toUpperCase() && first !== first.toLowerCase());
    },
    blockKeywords: words("case catch class dynamic else finally for function if interface module new object switch try while"),
    defKeywords: words("class dynamic function interface module object package value"),
    builtin: words("abstract actual aliased annotation by default deprecated doc final formal late license" +
                   " native optional sealed see serializable shared suppressWarnings tagged throws variable"),
    isPunctuationChar: /[\[\]{}\(\),;\:\.`]/,
    isOperatorChar: /[+\-*&%=<>!?|^~:\/]/,
    numberStart: /[\d#$]/,
    number: /^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,
    multiLineStrings: true,
    typeFirstDefinitions: true,
    atoms: words("true false null larger smaller equal empty finished"),
    indentSwitch: false,
    styleDefs: false,
    hooks: {
      "@": function(stream) {
        stream.eatWhile(/[\w\$_]/);
        return "meta";
      },
      '"': function(stream, state) {
          state.tokenize = tokenCeylonString(stream.match('""') ? "triple" : "single");
          return state.tokenize(stream, state);
        },
      '`': function(stream, state) {
          if (!stringTokenizer || !stream.match('`')) return false;
          state.tokenize = stringTokenizer;
          stringTokenizer = null;
          return state.tokenize(stream, state);
        },
      "'": function(stream) {
        stream.eatWhile(/[\w\$_\xa1-\uffff]/);
        return "atom";
      },
      token: function(_stream, state, style) {
          if ((style == "variable" || style == "type") &&
              state.prevToken == ".") {
            return "variable-2";
          }
        }
    },
    modeProps: {
        fold: ["brace", "import"],
        closeBrackets: {triples: '"'}
    }
  });

});
editors/codemirror/mode/forth/forth.js000064400000012157152177723720014133 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Author: Aliaksei Chapyzhenka

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function toWordList(words) {
    var ret = [];
    words.split(' ').forEach(function(e){
      ret.push({name: e});
    });
    return ret;
  }

  var coreWordList = toWordList(
'INVERT AND OR XOR\
 2* 2/ LSHIFT RSHIFT\
 0= = 0< < > U< MIN MAX\
 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\
 >R R> R@\
 + - 1+ 1- ABS NEGATE\
 S>D * M* UM*\
 FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\
 HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\
 ALIGN ALIGNED +! ALLOT\
 CHAR [CHAR] [ ] BL\
 FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\
 ; DOES> >BODY\
 EVALUATE\
 SOURCE >IN\
 <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\
 FILL MOVE\
 . CR EMIT SPACE SPACES TYPE U. .R U.R\
 ACCEPT\
 TRUE FALSE\
 <> U> 0<> 0>\
 NIP TUCK ROLL PICK\
 2>R 2R@ 2R>\
 WITHIN UNUSED MARKER\
 I J\
 TO\
 COMPILE, [COMPILE]\
 SAVE-INPUT RESTORE-INPUT\
 PAD ERASE\
 2LITERAL DNEGATE\
 D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\
 M+ M*/ D. D.R 2ROT DU<\
 CATCH THROW\
 FREE RESIZE ALLOCATE\
 CS-PICK CS-ROLL\
 GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\
 PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\
 -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');

  var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');

  CodeMirror.defineMode('forth', function() {
    function searchWordList (wordList, word) {
      var i;
      for (i = wordList.length - 1; i >= 0; i--) {
        if (wordList[i].name === word.toUpperCase()) {
          return wordList[i];
        }
      }
      return undefined;
    }
  return {
    startState: function() {
      return {
        state: '',
        base: 10,
        coreWordList: coreWordList,
        immediateWordList: immediateWordList,
        wordList: []
      };
    },
    token: function (stream, stt) {
      var mat;
      if (stream.eatSpace()) {
        return null;
      }
      if (stt.state === '') { // interpretation
        if (stream.match(/^(\]|:NONAME)(\s|$)/i)) {
          stt.state = ' compilation';
          return 'builtin compilation';
        }
        mat = stream.match(/^(\:)\s+(\S+)(\s|$)+/);
        if (mat) {
          stt.wordList.push({name: mat[2].toUpperCase()});
          stt.state = ' compilation';
          return 'def' + stt.state;
        }
        mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i);
        if (mat) {
          stt.wordList.push({name: mat[2].toUpperCase()});
          return 'def' + stt.state;
        }
        mat = stream.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/);
        if (mat) {
          return 'builtin' + stt.state;
        }
        } else { // compilation
        // ; [
        if (stream.match(/^(\;|\[)(\s)/)) {
          stt.state = '';
          stream.backUp(1);
          return 'builtin compilation';
        }
        if (stream.match(/^(\;|\[)($)/)) {
          stt.state = '';
          return 'builtin compilation';
        }
        if (stream.match(/^(POSTPONE)\s+\S+(\s|$)+/)) {
          return 'builtin';
        }
      }

      // dynamic wordlist
      mat = stream.match(/^(\S+)(\s+|$)/);
      if (mat) {
        if (searchWordList(stt.wordList, mat[1]) !== undefined) {
          return 'variable' + stt.state;
        }

        // comments
        if (mat[1] === '\\') {
          stream.skipToEnd();
            return 'comment' + stt.state;
          }

          // core words
          if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {
            return 'builtin' + stt.state;
          }
          if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {
            return 'keyword' + stt.state;
          }

          if (mat[1] === '(') {
            stream.eatWhile(function (s) { return s !== ')'; });
            stream.eat(')');
            return 'comment' + stt.state;
          }

          // // strings
          if (mat[1] === '.(') {
            stream.eatWhile(function (s) { return s !== ')'; });
            stream.eat(')');
            return 'string' + stt.state;
          }
          if (mat[1] === 'S"' || mat[1] === '."' || mat[1] === 'C"') {
            stream.eatWhile(function (s) { return s !== '"'; });
            stream.eat('"');
            return 'string' + stt.state;
          }

          // numbers
          if (mat[1] - 0xfffffffff) {
            return 'number' + stt.state;
          }
          // if (mat[1].match(/^[-+]?[0-9]+\.[0-9]*/)) {
          //     return 'number' + stt.state;
          // }

          return 'atom' + stt.state;
        }
      }
    };
  });
  CodeMirror.defineMIME("text/x-forth", "forth");
});
editors/codemirror/mode/forth/forth.min.js000064400000005566152177723720014723 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=[];return a.split(" ").forEach((function(a){b.push({name:a})})),b}var c=b("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),d=b("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");a.defineMode("forth",(function(){function a(a,b){var c;for(c=a.length-1;c>=0;c--)if(a[c].name===b.toUpperCase())return a[c]}return{startState:function(){return{state:"",base:10,coreWordList:c,immediateWordList:d,wordList:[]}},token:function(b,c){var d;if(b.eatSpace())return null;if(""===c.state){if(b.match(/^(\]|:NONAME)(\s|$)/i))return c.state=" compilation","builtin compilation";if(d=b.match(/^(\:)\s+(\S+)(\s|$)+/))return c.wordList.push({name:d[2].toUpperCase()}),c.state=" compilation","def"+c.state;if(d=b.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i))return c.wordList.push({name:d[2].toUpperCase()}),"def"+c.state;if(d=b.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/))return"builtin"+c.state}else{if(b.match(/^(\;|\[)(\s)/))return c.state="",b.backUp(1),"builtin compilation";if(b.match(/^(\;|\[)($)/))return c.state="","builtin compilation";if(b.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}return d=b.match(/^(\S+)(\s+|$)/),d?void 0!==a(c.wordList,d[1])?"variable"+c.state:"\\"===d[1]?(b.skipToEnd(),"comment"+c.state):void 0!==a(c.coreWordList,d[1])?"builtin"+c.state:void 0!==a(c.immediateWordList,d[1])?"keyword"+c.state:"("===d[1]?(b.eatWhile((function(a){return")"!==a})),b.eat(")"),"comment"+c.state):".("===d[1]?(b.eatWhile((function(a){return")"!==a})),b.eat(")"),"string"+c.state):'S"'===d[1]||'."'===d[1]||'C"'===d[1]?(b.eatWhile((function(a){return'"'!==a})),b.eat('"'),"string"+c.state):d[1]-68719476735?"number"+c.state:"atom"+c.state:void 0}}})),a.defineMIME("text/x-forth","forth")}));editors/codemirror/mode/jinja2/jinja2.min.js000064400000004134152177723720014777 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("jinja2",(function(){function a(a,g){var h=a.peek();if(g.incomment)return a.skipTo("#}")?(a.eatWhile(/\#|}/),g.incomment=!1):a.skipToEnd(),"comment";if(g.intag){if(g.operator){if(g.operator=!1,a.match(e))return"atom";if(a.match(f))return"number"}if(g.sign){if(g.sign=!1,a.match(e))return"atom";if(a.match(f))return"number"}if(g.instring)return h==g.instring&&(g.instring=!1),a.next(),"string";if("'"==h||'"'==h)return g.instring=h,a.next(),"string";if(a.match(g.intag+"}")||a.eat("-")&&a.match(g.intag+"}"))return g.intag=!1,"tag";if(a.match(c))return g.operator=!0,"operator";if(a.match(d))g.sign=!0;else if(a.eat(" ")||a.sol()){if(a.match(b))return"keyword";if(a.match(e))return"atom";if(a.match(f))return"number";a.sol()&&a.next()}else a.next();return"variable"}if(a.eat("{")){if(a.eat("#"))return g.incomment=!0,a.skipTo("#}")?(a.eatWhile(/\#|}/),g.incomment=!1):a.skipToEnd(),"comment";if(h=a.eat(/\{|%/))return g.intag=h,"{"==h&&(g.intag="}"),a.eat("-"),"tag"}a.next()}var b=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","plural"],c=/^[+\-*&%=<>!?|~^]/,d=/^[:\[\(\{]/,e=["true","false"],f=/^(\d[+\-\*\/])?\d+(\.\d+)?/;return b=new RegExp("(("+b.join(")|(")+"))\\b"),e=new RegExp("(("+e.join(")|(")+"))\\b"),{startState:function(){return{tokenize:a}},token:function(a,b){return b.tokenize(a,b)},blockCommentStart:"{#",blockCommentEnd:"#}"}}))}));editors/codemirror/mode/jinja2/jinja2.js000064400000010364152177723720014217 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("jinja2", function() {
    var keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif",
      "extends", "filter", "endfilter", "firstof", "for",
      "endfor", "if", "endif", "ifchanged", "endifchanged",
      "ifequal", "endifequal", "ifnotequal",
      "endifnotequal", "in", "include", "load", "not", "now", "or",
      "parsed", "regroup", "reversed", "spaceless",
      "endspaceless", "ssi", "templatetag", "openblock",
      "closeblock", "openvariable", "closevariable",
      "openbrace", "closebrace", "opencomment",
      "closecomment", "widthratio", "url", "with", "endwith",
      "get_current_language", "trans", "endtrans", "noop", "blocktrans",
      "endblocktrans", "get_available_languages",
      "get_current_language_bidi", "plural"],
    operator = /^[+\-*&%=<>!?|~^]/,
    sign = /^[:\[\(\{]/,
    atom = ["true", "false"],
    number = /^(\d[+\-\*\/])?\d+(\.\d+)?/;

    keywords = new RegExp("((" + keywords.join(")|(") + "))\\b");
    atom = new RegExp("((" + atom.join(")|(") + "))\\b");

    function tokenBase (stream, state) {
      var ch = stream.peek();

      //Comment
      if (state.incomment) {
        if(!stream.skipTo("#}")) {
          stream.skipToEnd();
        } else {
          stream.eatWhile(/\#|}/);
          state.incomment = false;
        }
        return "comment";
      //Tag
      } else if (state.intag) {
        //After operator
        if(state.operator) {
          state.operator = false;
          if(stream.match(atom)) {
            return "atom";
          }
          if(stream.match(number)) {
            return "number";
          }
        }
        //After sign
        if(state.sign) {
          state.sign = false;
          if(stream.match(atom)) {
            return "atom";
          }
          if(stream.match(number)) {
            return "number";
          }
        }

        if(state.instring) {
          if(ch == state.instring) {
            state.instring = false;
          }
          stream.next();
          return "string";
        } else if(ch == "'" || ch == '"') {
          state.instring = ch;
          stream.next();
          return "string";
        } else if(stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) {
          state.intag = false;
          return "tag";
        } else if(stream.match(operator)) {
          state.operator = true;
          return "operator";
        } else if(stream.match(sign)) {
          state.sign = true;
        } else {
          if(stream.eat(" ") || stream.sol()) {
            if(stream.match(keywords)) {
              return "keyword";
            }
            if(stream.match(atom)) {
              return "atom";
            }
            if(stream.match(number)) {
              return "number";
            }
            if(stream.sol()) {
              stream.next();
            }
          } else {
            stream.next();
          }

        }
        return "variable";
      } else if (stream.eat("{")) {
        if (stream.eat("#")) {
          state.incomment = true;
          if(!stream.skipTo("#}")) {
            stream.skipToEnd();
          } else {
            stream.eatWhile(/\#|}/);
            state.incomment = false;
          }
          return "comment";
        //Open tag
        } else if (ch = stream.eat(/\{|%/)) {
          //Cache close tag
          state.intag = ch;
          if(ch == "{") {
            state.intag = "}";
          }
          stream.eat("-");
          return "tag";
        }
      }
      stream.next();
    };

    return {
      startState: function () {
        return {tokenize: tokenBase};
      },
      token: function (stream, state) {
        return state.tokenize(stream, state);
      },
      blockCommentStart: "{#",
      blockCommentEnd: "#}"
    };
  });
});
editors/codemirror/mode/vue/vue.js000064400000005505152177723720013264 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function (mod) {
  "use strict";
  if (typeof exports === "object" && typeof module === "object") {// CommonJS
    mod(require("../../lib/codemirror"),
        require("../../addon/mode/overlay"),
        require("../xml/xml"),
        require("../javascript/javascript"),
        require("../coffeescript/coffeescript"),
        require("../css/css"),
        require("../sass/sass"),
        require("../stylus/stylus"),
        require("../pug/pug"),
        require("../handlebars/handlebars"));
  } else if (typeof define === "function" && define.amd) { // AMD
    define(["../../lib/codemirror",
            "../../addon/mode/overlay",
            "../xml/xml",
            "../javascript/javascript",
            "../coffeescript/coffeescript",
            "../css/css",
            "../sass/sass",
            "../stylus/stylus",
            "../pug/pug",
            "../handlebars/handlebars"], mod);
  } else { // Plain browser env
    mod(CodeMirror);
  }
})(function (CodeMirror) {
  var tagLanguages = {
    script: [
      ["lang", /coffee(script)?/, "coffeescript"],
      ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"],
      ["lang", /^babel$/, "javascript"],
      ["type", /^text\/babel$/, "javascript"],
      ["type", /^text\/ecmascript-\d+$/, "javascript"]
    ],
    style: [
      ["lang", /^stylus$/i, "stylus"],
      ["lang", /^sass$/i, "sass"],
      ["lang", /^less$/i, "text/x-less"],
      ["lang", /^scss$/i, "text/x-scss"],
      ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
      ["type", /^text\/sass/i, "sass"],
      ["type", /^(text\/)?(x-)?scss$/i, "text/x-scss"],
      ["type", /^(text\/)?(x-)?less$/i, "text/x-less"]
    ],
    template: [
      ["lang", /^vue-template$/i, "vue"],
      ["lang", /^pug$/i, "pug"],
      ["lang", /^handlebars$/i, "handlebars"],
      ["type", /^(text\/)?(x-)?pug$/i, "pug"],
      ["type", /^text\/x-handlebars-template$/i, "handlebars"],
      [null, null, "vue-template"]
    ]
  };

  CodeMirror.defineMode("vue-template", function (config, parserConfig) {
    var mustacheOverlay = {
      token: function (stream) {
        if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";
        while (stream.next() && !stream.match("{{", false)) {}
        return null;
      }
    };
    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
  });

  CodeMirror.defineMode("vue", function (config) {
    return CodeMirror.getMode(config, {name: "htmlmixed", tags: tagLanguages});
  }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "pug", "handlebars");

  CodeMirror.defineMIME("script/x-vue", "vue");
  CodeMirror.defineMIME("text/x-vue", "vue");
});
editors/codemirror/mode/vue/vue.min.js000064400000003571152177723720014047 0ustar00!(function(a){"use strict";"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/overlay"),require("../xml/xml"),require("../javascript/javascript"),require("../coffeescript/coffeescript"),require("../css/css"),require("../sass/sass"),require("../stylus/stylus"),require("../pug/pug"),require("../handlebars/handlebars")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/overlay","../xml/xml","../javascript/javascript","../coffeescript/coffeescript","../css/css","../sass/sass","../stylus/stylus","../pug/pug","../handlebars/handlebars"],a):a(CodeMirror)})((function(a){var b={script:[["lang",/coffee(script)?/,"coffeescript"],["type",/^(?:text|application)\/(?:x-)?coffee(?:script)?$/,"coffeescript"],["lang",/^babel$/,"javascript"],["type",/^text\/babel$/,"javascript"],["type",/^text\/ecmascript-\d+$/,"javascript"]],style:[["lang",/^stylus$/i,"stylus"],["lang",/^sass$/i,"sass"],["lang",/^less$/i,"text/x-less"],["lang",/^scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?styl(us)?$/i,"stylus"],["type",/^text\/sass/i,"sass"],["type",/^(text\/)?(x-)?scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?less$/i,"text/x-less"]],template:[["lang",/^vue-template$/i,"vue"],["lang",/^pug$/i,"pug"],["lang",/^handlebars$/i,"handlebars"],["type",/^(text\/)?(x-)?pug$/i,"pug"],["type",/^text\/x-handlebars-template$/i,"handlebars"],[null,null,"vue-template"]]};a.defineMode("vue-template",(function(b,c){var d={token:function(a){if(a.match(/^\{\{.*?\}\}/))return"meta mustache";for(;a.next()&&!a.match("{{",!1););return null}};return a.overlayMode(a.getMode(b,c.backdrop||"text/html"),d)})),a.defineMode("vue",(function(c){return a.getMode(c,{name:"htmlmixed",tags:b})}),"htmlmixed","xml","javascript","coffeescript","css","sass","stylus","pug","handlebars"),a.defineMIME("script/x-vue","vue"),a.defineMIME("text/x-vue","vue")}));editors/codemirror/mode/toml/toml.js000064400000005522152177723720013613 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("toml", function () {
  return {
    startState: function () {
      return {
        inString: false,
        stringType: "",
        lhs: true,
        inArray: 0
      };
    },
    token: function (stream, state) {
      //check for state changes
      if (!state.inString && ((stream.peek() == '"') || (stream.peek() == "'"))) {
        state.stringType = stream.peek();
        stream.next(); // Skip quote
        state.inString = true; // Update state
      }
      if (stream.sol() && state.inArray === 0) {
        state.lhs = true;
      }
      //return state
      if (state.inString) {
        while (state.inString && !stream.eol()) {
          if (stream.peek() === state.stringType) {
            stream.next(); // Skip quote
            state.inString = false; // Clear flag
          } else if (stream.peek() === '\\') {
            stream.next();
            stream.next();
          } else {
            stream.match(/^.[^\\\"\']*/);
          }
        }
        return state.lhs ? "property string" : "string"; // Token style
      } else if (state.inArray && stream.peek() === ']') {
        stream.next();
        state.inArray--;
        return 'bracket';
      } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) {
        stream.next();//skip closing ]
        // array of objects has an extra open & close []
        if (stream.peek() === ']') stream.next();
        return "atom";
      } else if (stream.peek() === "#") {
        stream.skipToEnd();
        return "comment";
      } else if (stream.eatSpace()) {
        return null;
      } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) {
        return "property";
      } else if (state.lhs && stream.peek() === "=") {
        stream.next();
        state.lhs = false;
        return null;
      } else if (!state.lhs && stream.match(/^\d\d\d\d[\d\-\:\.T]*Z/)) {
        return 'atom'; //date
      } else if (!state.lhs && (stream.match('true') || stream.match('false'))) {
        return 'atom';
      } else if (!state.lhs && stream.peek() === '[') {
        state.inArray++;
        stream.next();
        return 'bracket';
      } else if (!state.lhs && stream.match(/^\-?\d+(?:\.\d+)?/)) {
        return 'number';
      } else if (!stream.eatSpace()) {
        stream.next();
      }
      return null;
    }
  };
});

CodeMirror.defineMIME('text/x-toml', 'toml');

});
editors/codemirror/mode/toml/toml.min.js000064400000002345152177723720014375 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("toml",(function(){return{startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(a,b){if(b.inString||'"'!=a.peek()&&"'"!=a.peek()||(b.stringType=a.peek(),a.next(),b.inString=!0),a.sol()&&0===b.inArray&&(b.lhs=!0),b.inString){for(;b.inString&&!a.eol();)a.peek()===b.stringType?(a.next(),b.inString=!1):"\\"===a.peek()?(a.next(),a.next()):a.match(/^.[^\\\"\']*/);return b.lhs?"property string":"string"}return b.inArray&&"]"===a.peek()?(a.next(),b.inArray--,"bracket"):b.lhs&&"["===a.peek()&&a.skipTo("]")?(a.next(),"]"===a.peek()&&a.next(),"atom"):"#"===a.peek()?(a.skipToEnd(),"comment"):a.eatSpace()?null:b.lhs&&a.eatWhile((function(a){return"="!=a&&" "!=a}))?"property":b.lhs&&"="===a.peek()?(a.next(),b.lhs=!1,null):!b.lhs&&a.match(/^\d\d\d\d[\d\-\:\.T]*Z/)?"atom":b.lhs||!a.match("true")&&!a.match("false")?b.lhs||"["!==a.peek()?!b.lhs&&a.match(/^\-?\d+(?:\.\d+)?/)?"number":(a.eatSpace()||a.next(),null):(b.inArray++,a.next(),"bracket"):"atom"}}})),a.defineMIME("text/x-toml","toml")}));editors/codemirror/mode/yaml/yaml.js000064400000007204152177723720013570 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("yaml", function() {

  var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];
  var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i');

  return {
    token: function(stream, state) {
      var ch = stream.peek();
      var esc = state.escaped;
      state.escaped = false;
      /* comments */
      if (ch == "#" && (stream.pos == 0 || /\s/.test(stream.string.charAt(stream.pos - 1)))) {
        stream.skipToEnd();
        return "comment";
      }

      if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))
        return "string";

      if (state.literal && stream.indentation() > state.keyCol) {
        stream.skipToEnd(); return "string";
      } else if (state.literal) { state.literal = false; }
      if (stream.sol()) {
        state.keyCol = 0;
        state.pair = false;
        state.pairStart = false;
        /* document start */
        if(stream.match(/---/)) { return "def"; }
        /* document end */
        if (stream.match(/\.\.\./)) { return "def"; }
        /* array list item */
        if (stream.match(/\s*-\s+/)) { return 'meta'; }
      }
      /* inline pairs/lists */
      if (stream.match(/^(\{|\}|\[|\])/)) {
        if (ch == '{')
          state.inlinePairs++;
        else if (ch == '}')
          state.inlinePairs--;
        else if (ch == '[')
          state.inlineList++;
        else
          state.inlineList--;
        return 'meta';
      }

      /* list seperator */
      if (state.inlineList > 0 && !esc && ch == ',') {
        stream.next();
        return 'meta';
      }
      /* pairs seperator */
      if (state.inlinePairs > 0 && !esc && ch == ',') {
        state.keyCol = 0;
        state.pair = false;
        state.pairStart = false;
        stream.next();
        return 'meta';
      }

      /* start of value of a pair */
      if (state.pairStart) {
        /* block literals */
        if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; };
        /* references */
        if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; }
        /* numbers */
        if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; }
        if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; }
        /* keywords */
        if (stream.match(keywordRegex)) { return 'keyword'; }
      }

      /* pairs (associative arrays) -> key */
      if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) {
        state.pair = true;
        state.keyCol = stream.indentation();
        return "atom";
      }
      if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; }

      /* nothing found, continue */
      state.pairStart = false;
      state.escaped = (ch == '\\');
      stream.next();
      return null;
    },
    startState: function() {
      return {
        pair: false,
        pairStart: false,
        keyCol: 0,
        inlinePairs: 0,
        inlineList: 0,
        literal: false,
        escaped: false
      };
    },
    lineComment: "#"
  };
});

CodeMirror.defineMIME("text/x-yaml", "yaml");
CodeMirror.defineMIME("text/yaml", "yaml");

});
editors/codemirror/mode/yaml/yaml.min.js000064400000003433152177723720014352 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("yaml",(function(){var a=["true","false","on","off","yes","no"],b=new RegExp("\\b(("+a.join(")|(")+"))$","i");return{token:function(a,c){var d=a.peek(),e=c.escaped;if(c.escaped=!1,"#"==d&&(0==a.pos||/\s/.test(a.string.charAt(a.pos-1))))return a.skipToEnd(),"comment";if(a.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(c.literal&&a.indentation()>c.keyCol)return a.skipToEnd(),"string";if(c.literal&&(c.literal=!1),a.sol()){if(c.keyCol=0,c.pair=!1,c.pairStart=!1,a.match(/---/))return"def";if(a.match(/\.\.\./))return"def";if(a.match(/\s*-\s+/))return"meta"}if(a.match(/^(\{|\}|\[|\])/))return"{"==d?c.inlinePairs++:"}"==d?c.inlinePairs--:"["==d?c.inlineList++:c.inlineList--,"meta";if(c.inlineList>0&&!e&&","==d)return a.next(),"meta";if(c.inlinePairs>0&&!e&&","==d)return c.keyCol=0,c.pair=!1,c.pairStart=!1,a.next(),"meta";if(c.pairStart){if(a.match(/^\s*(\||\>)\s*/))return c.literal=!0,"meta";if(a.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(0==c.inlinePairs&&a.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(c.inlinePairs>0&&a.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(a.match(b))return"keyword"}return!c.pair&&a.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(c.pair=!0,c.keyCol=a.indentation(),"atom"):c.pair&&a.match(/^:\s*/)?(c.pairStart=!0,"meta"):(c.pairStart=!1,c.escaped="\\"==d,a.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#"}})),a.defineMIME("text/x-yaml","yaml"),a.defineMIME("text/yaml","yaml")}));editors/codemirror/mode/apl/apl.min.js000064400000005174152177723720014002 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("apl",(function(){var a={".":"innerProduct","\\":"scan","/":"reduce","⌿":"reduce1Axis","⍀":"scan1Axis","¨":"each","⍣":"power"},b={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},c=/[\.\/⌿⍀¨⍣]/,d=/⍬/,e=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,f=/←/,g=/[⍝#].*$/,h=function(a){var b;return b=!1,function(c){return b=c,c!==a||"\\"===b}};return{startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(i,j){var k,l;return i.eatSpace()?null:(k=i.next(),'"'===k||"'"===k?(i.eatWhile(h(k)),i.next(),j.prev=!0,"string"):/[\[{\(]/.test(k)?(j.prev=!1,null):/[\]}\)]/.test(k)?(j.prev=!0,null):d.test(k)?(j.prev=!1,"niladic"):/[¯\d]/.test(k)?(j.func?(j.func=!1,j.prev=!1):j.prev=!0,i.eatWhile(/[\w\.]/),"number"):c.test(k)?"operator apl-"+a[k]:f.test(k)?"apl-arrow":e.test(k)?(l="apl-",null!=b[k]&&(l+=j.prev?b[k][1]:b[k][0]),j.func=!0,j.prev=!1,"function "+l):g.test(k)?(i.skipToEnd(),"comment"):"∘"===k&&"."===i.peek()?(i.next(),"function jot-dot"):(i.eatWhile(/[\w\$_]/),j.prev=!0,"keyword"))}}})),a.defineMIME("text/apl","apl")}));editors/codemirror/mode/apl/apl.js000064400000011201152177723720013204 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("apl", function() {
  var builtInOps = {
    ".": "innerProduct",
    "\\": "scan",
    "/": "reduce",
    "⌿": "reduce1Axis",
    "⍀": "scan1Axis",
    "¨": "each",
    "⍣": "power"
  };
  var builtInFuncs = {
    "+": ["conjugate", "add"],
    "−": ["negate", "subtract"],
    "×": ["signOf", "multiply"],
    "÷": ["reciprocal", "divide"],
    "⌈": ["ceiling", "greaterOf"],
    "⌊": ["floor", "lesserOf"],
    "∣": ["absolute", "residue"],
    "⍳": ["indexGenerate", "indexOf"],
    "?": ["roll", "deal"],
    "⋆": ["exponentiate", "toThePowerOf"],
    "⍟": ["naturalLog", "logToTheBase"],
    "○": ["piTimes", "circularFuncs"],
    "!": ["factorial", "binomial"],
    "⌹": ["matrixInverse", "matrixDivide"],
    "<": [null, "lessThan"],
    "≤": [null, "lessThanOrEqual"],
    "=": [null, "equals"],
    ">": [null, "greaterThan"],
    "≥": [null, "greaterThanOrEqual"],
    "≠": [null, "notEqual"],
    "≡": ["depth", "match"],
    "≢": [null, "notMatch"],
    "∈": ["enlist", "membership"],
    "⍷": [null, "find"],
    "∪": ["unique", "union"],
    "∩": [null, "intersection"],
    "∼": ["not", "without"],
    "∨": [null, "or"],
    "∧": [null, "and"],
    "⍱": [null, "nor"],
    "⍲": [null, "nand"],
    "⍴": ["shapeOf", "reshape"],
    ",": ["ravel", "catenate"],
    "⍪": [null, "firstAxisCatenate"],
    "⌽": ["reverse", "rotate"],
    "⊖": ["axis1Reverse", "axis1Rotate"],
    "⍉": ["transpose", null],
    "↑": ["first", "take"],
    "↓": [null, "drop"],
    "⊂": ["enclose", "partitionWithAxis"],
    "⊃": ["diclose", "pick"],
    "⌷": [null, "index"],
    "⍋": ["gradeUp", null],
    "⍒": ["gradeDown", null],
    "⊤": ["encode", null],
    "⊥": ["decode", null],
    "⍕": ["format", "formatByExample"],
    "⍎": ["execute", null],
    "⊣": ["stop", "left"],
    "⊢": ["pass", "right"]
  };

  var isOperator = /[\.\/⌿⍀¨⍣]/;
  var isNiladic = /⍬/;
  var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
  var isArrow = /←/;
  var isComment = /[⍝#].*$/;

  var stringEater = function(type) {
    var prev;
    prev = false;
    return function(c) {
      prev = c;
      if (c === type) {
        return prev === "\\";
      }
      return true;
    };
  };
  return {
    startState: function() {
      return {
        prev: false,
        func: false,
        op: false,
        string: false,
        escape: false
      };
    },
    token: function(stream, state) {
      var ch, funcName;
      if (stream.eatSpace()) {
        return null;
      }
      ch = stream.next();
      if (ch === '"' || ch === "'") {
        stream.eatWhile(stringEater(ch));
        stream.next();
        state.prev = true;
        return "string";
      }
      if (/[\[{\(]/.test(ch)) {
        state.prev = false;
        return null;
      }
      if (/[\]}\)]/.test(ch)) {
        state.prev = true;
        return null;
      }
      if (isNiladic.test(ch)) {
        state.prev = false;
        return "niladic";
      }
      if (/[¯\d]/.test(ch)) {
        if (state.func) {
          state.func = false;
          state.prev = false;
        } else {
          state.prev = true;
        }
        stream.eatWhile(/[\w\.]/);
        return "number";
      }
      if (isOperator.test(ch)) {
        return "operator apl-" + builtInOps[ch];
      }
      if (isArrow.test(ch)) {
        return "apl-arrow";
      }
      if (isFunction.test(ch)) {
        funcName = "apl-";
        if (builtInFuncs[ch] != null) {
          if (state.prev) {
            funcName += builtInFuncs[ch][1];
          } else {
            funcName += builtInFuncs[ch][0];
          }
        }
        state.func = true;
        state.prev = false;
        return "function " + funcName;
      }
      if (isComment.test(ch)) {
        stream.skipToEnd();
        return "comment";
      }
      if (ch === "∘" && stream.peek() === ".") {
        stream.next();
        return "function jot-dot";
      }
      stream.eatWhile(/[\w\$_]/);
      state.prev = true;
      return "keyword";
    }
  };
});

CodeMirror.defineMIME("text/apl", "apl");

});
editors/codemirror/mode/commonlisp/commonlisp.js000064400000010732152177723720016224 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("commonlisp", function (config) {
  var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;
  var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;
  var numLiteral = /^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/;
  var symbol = /[^\s'`,@()\[\]";]/;
  var type;

  function readSym(stream) {
    var ch;
    while (ch = stream.next()) {
      if (ch == "\\") stream.next();
      else if (!symbol.test(ch)) { stream.backUp(1); break; }
    }
    return stream.current();
  }

  function base(stream, state) {
    if (stream.eatSpace()) {type = "ws"; return null;}
    if (stream.match(numLiteral)) return "number";
    var ch = stream.next();
    if (ch == "\\") ch = stream.next();

    if (ch == '"') return (state.tokenize = inString)(stream, state);
    else if (ch == "(") { type = "open"; return "bracket"; }
    else if (ch == ")" || ch == "]") { type = "close"; return "bracket"; }
    else if (ch == ";") { stream.skipToEnd(); type = "ws"; return "comment"; }
    else if (/['`,@]/.test(ch)) return null;
    else if (ch == "|") {
      if (stream.skipTo("|")) { stream.next(); return "symbol"; }
      else { stream.skipToEnd(); return "error"; }
    } else if (ch == "#") {
      var ch = stream.next();
      if (ch == "(") { type = "open"; return "bracket"; }
      else if (/[+\-=\.']/.test(ch)) return null;
      else if (/\d/.test(ch) && stream.match(/^\d*#/)) return null;
      else if (ch == "|") return (state.tokenize = inComment)(stream, state);
      else if (ch == ":") { readSym(stream); return "meta"; }
      else if (ch == "\\") { stream.next(); readSym(stream); return "string-2" }
      else return "error";
    } else {
      var name = readSym(stream);
      if (name == ".") return null;
      type = "symbol";
      if (name == "nil" || name == "t" || name.charAt(0) == ":") return "atom";
      if (state.lastType == "open" && (specialForm.test(name) || assumeBody.test(name))) return "keyword";
      if (name.charAt(0) == "&") return "variable-2";
      return "variable";
    }
  }

  function inString(stream, state) {
    var escaped = false, next;
    while (next = stream.next()) {
      if (next == '"' && !escaped) { state.tokenize = base; break; }
      escaped = !escaped && next == "\\";
    }
    return "string";
  }

  function inComment(stream, state) {
    var next, last;
    while (next = stream.next()) {
      if (next == "#" && last == "|") { state.tokenize = base; break; }
      last = next;
    }
    type = "ws";
    return "comment";
  }

  return {
    startState: function () {
      return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};
    },

    token: function (stream, state) {
      if (stream.sol() && typeof state.ctx.indentTo != "number")
        state.ctx.indentTo = state.ctx.start + 1;

      type = null;
      var style = state.tokenize(stream, state);
      if (type != "ws") {
        if (state.ctx.indentTo == null) {
          if (type == "symbol" && assumeBody.test(stream.current()))
            state.ctx.indentTo = state.ctx.start + config.indentUnit;
          else
            state.ctx.indentTo = "next";
        } else if (state.ctx.indentTo == "next") {
          state.ctx.indentTo = stream.column();
        }
        state.lastType = type;
      }
      if (type == "open") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};
      else if (type == "close") state.ctx = state.ctx.prev || state.ctx;
      return style;
    },

    indent: function (state, _textAfter) {
      var i = state.ctx.indentTo;
      return typeof i == "number" ? i : state.ctx.start + 1;
    },

    closeBrackets: {pairs: "()[]{}\"\""},
    lineComment: ";;",
    blockCommentStart: "#|",
    blockCommentEnd: "|#"
  };
});

CodeMirror.defineMIME("text/x-common-lisp", "commonlisp");

});
editors/codemirror/mode/commonlisp/commonlisp.min.js000064400000004760152177723720017012 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("commonlisp",(function(a){function b(a){for(var b;b=a.next();)if("\\"==b)a.next();else if(!j.test(b)){a.backUp(1);break}return a.current()}function c(a,c){if(a.eatSpace())return f="ws",null;if(a.match(i))return"number";var j=a.next();if("\\"==j&&(j=a.next()),'"'==j)return(c.tokenize=d)(a,c);if("("==j)return f="open","bracket";if(")"==j||"]"==j)return f="close","bracket";if(";"==j)return a.skipToEnd(),f="ws","comment";if(/['`,@]/.test(j))return null;if("|"==j)return a.skipTo("|")?(a.next(),"symbol"):(a.skipToEnd(),"error");if("#"==j){var j=a.next();return"("==j?(f="open","bracket"):/[+\-=\.']/.test(j)?null:/\d/.test(j)&&a.match(/^\d*#/)?null:"|"==j?(c.tokenize=e)(a,c):":"==j?(b(a),"meta"):"\\"==j?(a.next(),b(a),"string-2"):"error"}var k=b(a);return"."==k?null:(f="symbol","nil"==k||"t"==k||":"==k.charAt(0)?"atom":"open"==c.lastType&&(g.test(k)||h.test(k))?"keyword":"&"==k.charAt(0)?"variable-2":"variable")}function d(a,b){for(var d,e=!1;d=a.next();){if('"'==d&&!e){b.tokenize=c;break}e=!e&&"\\"==d}return"string"}function e(a,b){for(var d,e;d=a.next();){if("#"==d&&"|"==e){b.tokenize=c;break}e=d}return f="ws","comment"}var f,g=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,h=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,i=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,j=/[^\s'`,@()\[\]";]/;return{startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:c}},token:function(b,c){b.sol()&&"number"!=typeof c.ctx.indentTo&&(c.ctx.indentTo=c.ctx.start+1),f=null;var d=c.tokenize(b,c);return"ws"!=f&&(null==c.ctx.indentTo?"symbol"==f&&h.test(b.current())?c.ctx.indentTo=c.ctx.start+a.indentUnit:c.ctx.indentTo="next":"next"==c.ctx.indentTo&&(c.ctx.indentTo=b.column()),c.lastType=f),"open"==f?c.ctx={prev:c.ctx,start:b.column(),indentTo:null}:"close"==f&&(c.ctx=c.ctx.prev||c.ctx),d},indent:function(a,b){var c=a.ctx.indentTo;return"number"==typeof c?c:a.ctx.start+1},closeBrackets:{pairs:'()[]{}""'},lineComment:";;",blockCommentStart:"#|",blockCommentEnd:"|#"}})),a.defineMIME("text/x-common-lisp","commonlisp")}));editors/codemirror/mode/xml/xml.js000064400000031126152177723720013264 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

var htmlConfig = {
  autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
                    'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
                    'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
                    'track': true, 'wbr': true, 'menuitem': true},
  implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
                     'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
                     'th': true, 'tr': true},
  contextGrabbers: {
    'dd': {'dd': true, 'dt': true},
    'dt': {'dd': true, 'dt': true},
    'li': {'li': true},
    'option': {'option': true, 'optgroup': true},
    'optgroup': {'optgroup': true},
    'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
          'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
          'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
          'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
          'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
    'rp': {'rp': true, 'rt': true},
    'rt': {'rp': true, 'rt': true},
    'tbody': {'tbody': true, 'tfoot': true},
    'td': {'td': true, 'th': true},
    'tfoot': {'tbody': true},
    'th': {'td': true, 'th': true},
    'thead': {'tbody': true, 'tfoot': true},
    'tr': {'tr': true}
  },
  doNotIndent: {"pre": true},
  allowUnquoted: true,
  allowMissing: true,
  caseFold: true
}

var xmlConfig = {
  autoSelfClosers: {},
  implicitlyClosed: {},
  contextGrabbers: {},
  doNotIndent: {},
  allowUnquoted: false,
  allowMissing: false,
  allowMissingTagName: false,
  caseFold: false
}

CodeMirror.defineMode("xml", function(editorConf, config_) {
  var indentUnit = editorConf.indentUnit
  var config = {}
  var defaults = config_.htmlMode ? htmlConfig : xmlConfig
  for (var prop in defaults) config[prop] = defaults[prop]
  for (var prop in config_) config[prop] = config_[prop]

  // Return variables for tokenizers
  var type, setStyle;

  function inText(stream, state) {
    function chain(parser) {
      state.tokenize = parser;
      return parser(stream, state);
    }

    var ch = stream.next();
    if (ch == "<") {
      if (stream.eat("!")) {
        if (stream.eat("[")) {
          if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
          else return null;
        } else if (stream.match("--")) {
          return chain(inBlock("comment", "-->"));
        } else if (stream.match("DOCTYPE", true, true)) {
          stream.eatWhile(/[\w\._\-]/);
          return chain(doctype(1));
        } else {
          return null;
        }
      } else if (stream.eat("?")) {
        stream.eatWhile(/[\w\._\-]/);
        state.tokenize = inBlock("meta", "?>");
        return "meta";
      } else {
        type = stream.eat("/") ? "closeTag" : "openTag";
        state.tokenize = inTag;
        return "tag bracket";
      }
    } else if (ch == "&") {
      var ok;
      if (stream.eat("#")) {
        if (stream.eat("x")) {
          ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
        } else {
          ok = stream.eatWhile(/[\d]/) && stream.eat(";");
        }
      } else {
        ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
      }
      return ok ? "atom" : "error";
    } else {
      stream.eatWhile(/[^&<]/);
      return null;
    }
  }
  inText.isInText = true;

  function inTag(stream, state) {
    var ch = stream.next();
    if (ch == ">" || (ch == "/" && stream.eat(">"))) {
      state.tokenize = inText;
      type = ch == ">" ? "endTag" : "selfcloseTag";
      return "tag bracket";
    } else if (ch == "=") {
      type = "equals";
      return null;
    } else if (ch == "<") {
      state.tokenize = inText;
      state.state = baseState;
      state.tagName = state.tagStart = null;
      var next = state.tokenize(stream, state);
      return next ? next + " tag error" : "tag error";
    } else if (/[\'\"]/.test(ch)) {
      state.tokenize = inAttribute(ch);
      state.stringStartCol = stream.column();
      return state.tokenize(stream, state);
    } else {
      stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
      return "word";
    }
  }

  function inAttribute(quote) {
    var closure = function(stream, state) {
      while (!stream.eol()) {
        if (stream.next() == quote) {
          state.tokenize = inTag;
          break;
        }
      }
      return "string";
    };
    closure.isInAttribute = true;
    return closure;
  }

  function inBlock(style, terminator) {
    return function(stream, state) {
      while (!stream.eol()) {
        if (stream.match(terminator)) {
          state.tokenize = inText;
          break;
        }
        stream.next();
      }
      return style;
    }
  }

  function doctype(depth) {
    return function(stream, state) {
      var ch;
      while ((ch = stream.next()) != null) {
        if (ch == "<") {
          state.tokenize = doctype(depth + 1);
          return state.tokenize(stream, state);
        } else if (ch == ">") {
          if (depth == 1) {
            state.tokenize = inText;
            break;
          } else {
            state.tokenize = doctype(depth - 1);
            return state.tokenize(stream, state);
          }
        }
      }
      return "meta";
    };
  }

  function Context(state, tagName, startOfLine) {
    this.prev = state.context;
    this.tagName = tagName;
    this.indent = state.indented;
    this.startOfLine = startOfLine;
    if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))
      this.noIndent = true;
  }
  function popContext(state) {
    if (state.context) state.context = state.context.prev;
  }
  function maybePopContext(state, nextTagName) {
    var parentTagName;
    while (true) {
      if (!state.context) {
        return;
      }
      parentTagName = state.context.tagName;
      if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||
          !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
        return;
      }
      popContext(state);
    }
  }

  function baseState(type, stream, state) {
    if (type == "openTag") {
      state.tagStart = stream.column();
      return tagNameState;
    } else if (type == "closeTag") {
      return closeTagNameState;
    } else {
      return baseState;
    }
  }
  function tagNameState(type, stream, state) {
    if (type == "word") {
      state.tagName = stream.current();
      setStyle = "tag";
      return attrState;
    } else if (config.allowMissingTagName && type == "endTag") {
      setStyle = "tag bracket";
      return attrState(type, stream, state);
    } else {
      setStyle = "error";
      return tagNameState;
    }
  }
  function closeTagNameState(type, stream, state) {
    if (type == "word") {
      var tagName = stream.current();
      if (state.context && state.context.tagName != tagName &&
          config.implicitlyClosed.hasOwnProperty(state.context.tagName))
        popContext(state);
      if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {
        setStyle = "tag";
        return closeState;
      } else {
        setStyle = "tag error";
        return closeStateErr;
      }
    } else if (config.allowMissingTagName && type == "endTag") {
      setStyle = "tag bracket";
      return closeState(type, stream, state);
    } else {
      setStyle = "error";
      return closeStateErr;
    }
  }

  function closeState(type, _stream, state) {
    if (type != "endTag") {
      setStyle = "error";
      return closeState;
    }
    popContext(state);
    return baseState;
  }
  function closeStateErr(type, stream, state) {
    setStyle = "error";
    return closeState(type, stream, state);
  }

  function attrState(type, _stream, state) {
    if (type == "word") {
      setStyle = "attribute";
      return attrEqState;
    } else if (type == "endTag" || type == "selfcloseTag") {
      var tagName = state.tagName, tagStart = state.tagStart;
      state.tagName = state.tagStart = null;
      if (type == "selfcloseTag" ||
          config.autoSelfClosers.hasOwnProperty(tagName)) {
        maybePopContext(state, tagName);
      } else {
        maybePopContext(state, tagName);
        state.context = new Context(state, tagName, tagStart == state.indented);
      }
      return baseState;
    }
    setStyle = "error";
    return attrState;
  }
  function attrEqState(type, stream, state) {
    if (type == "equals") return attrValueState;
    if (!config.allowMissing) setStyle = "error";
    return attrState(type, stream, state);
  }
  function attrValueState(type, stream, state) {
    if (type == "string") return attrContinuedState;
    if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;}
    setStyle = "error";
    return attrState(type, stream, state);
  }
  function attrContinuedState(type, stream, state) {
    if (type == "string") return attrContinuedState;
    return attrState(type, stream, state);
  }

  return {
    startState: function(baseIndent) {
      var state = {tokenize: inText,
                   state: baseState,
                   indented: baseIndent || 0,
                   tagName: null, tagStart: null,
                   context: null}
      if (baseIndent != null) state.baseIndent = baseIndent
      return state
    },

    token: function(stream, state) {
      if (!state.tagName && stream.sol())
        state.indented = stream.indentation();

      if (stream.eatSpace()) return null;
      type = null;
      var style = state.tokenize(stream, state);
      if ((style || type) && style != "comment") {
        setStyle = null;
        state.state = state.state(type || style, stream, state);
        if (setStyle)
          style = setStyle == "error" ? style + " error" : setStyle;
      }
      return style;
    },

    indent: function(state, textAfter, fullLine) {
      var context = state.context;
      // Indent multi-line strings (e.g. css).
      if (state.tokenize.isInAttribute) {
        if (state.tagStart == state.indented)
          return state.stringStartCol + 1;
        else
          return state.indented + indentUnit;
      }
      if (context && context.noIndent) return CodeMirror.Pass;
      if (state.tokenize != inTag && state.tokenize != inText)
        return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
      // Indent the starts of attribute names.
      if (state.tagName) {
        if (config.multilineTagIndentPastTag !== false)
          return state.tagStart + state.tagName.length + 2;
        else
          return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);
      }
      if (config.alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
      var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
      if (tagAfter && tagAfter[1]) { // Closing tag spotted
        while (context) {
          if (context.tagName == tagAfter[2]) {
            context = context.prev;
            break;
          } else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {
            context = context.prev;
          } else {
            break;
          }
        }
      } else if (tagAfter) { // Opening tag spotted
        while (context) {
          var grabbers = config.contextGrabbers[context.tagName];
          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
            context = context.prev;
          else
            break;
        }
      }
      while (context && context.prev && !context.startOfLine)
        context = context.prev;
      if (context) return context.indent + indentUnit;
      else return state.baseIndent || 0;
    },

    electricInput: /<\/[\s\w:]+>$/,
    blockCommentStart: "<!--",
    blockCommentEnd: "-->",

    configuration: config.htmlMode ? "html" : "xml",
    helperType: config.htmlMode ? "html" : "xml",

    skipAttribute: function(state) {
      if (state.state == attrValueState)
        state.state = attrState
    }
  };
});

CodeMirror.defineMIME("text/xml", "xml");
CodeMirror.defineMIME("application/xml", "xml");
if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
  CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});

});
editors/codemirror/mode/xml/xml.min.js000064400000013302152177723720014042 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";var b={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},c={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};a.defineMode("xml",(function(d,e){function f(a,b){function c(c){return b.tokenize=c,c(a,b)}var d=a.next();if("<"==d)return a.eat("!")?a.eat("[")?a.match("CDATA[")?c(i("atom","]]>")):null:a.match("--")?c(i("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(j(1))):null:a.eat("?")?(a.eatWhile(/[\w\._\-]/),b.tokenize=i("meta","?>"),"meta"):(A=a.eat("/")?"closeTag":"openTag",b.tokenize=g,"tag bracket");if("&"==d){var e;return e=a.eat("#")?a.eat("x")?a.eatWhile(/[a-fA-F\d]/)&&a.eat(";"):a.eatWhile(/[\d]/)&&a.eat(";"):a.eatWhile(/[\w\.\-:]/)&&a.eat(";"),e?"atom":"error"}return a.eatWhile(/[^&<]/),null}function g(a,b){var c=a.next();if(">"==c||"/"==c&&a.eat(">"))return b.tokenize=f,A=">"==c?"endTag":"selfcloseTag","tag bracket";if("="==c)return A="equals",null;if("<"==c){b.tokenize=f,b.state=n,b.tagName=b.tagStart=null;var d=b.tokenize(a,b);return d?d+" tag error":"tag error"}return/[\'\"]/.test(c)?(b.tokenize=h(c),b.stringStartCol=a.column(),b.tokenize(a,b)):(a.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function h(a){var b=function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=g;break}return"string"};return b.isInAttribute=!0,b}function i(a,b){return function(c,d){for(;!c.eol();){if(c.match(b)){d.tokenize=f;break}c.next()}return a}}function j(a){return function(b,c){for(var d;null!=(d=b.next());){if("<"==d)return c.tokenize=j(a+1),c.tokenize(b,c);if(">"==d){if(1==a){c.tokenize=f;break}return c.tokenize=j(a-1),c.tokenize(b,c)}}return"meta"}}function k(a,b,c){this.prev=a.context,this.tagName=b,this.indent=a.indented,this.startOfLine=c,(x.doNotIndent.hasOwnProperty(b)||a.context&&a.context.noIndent)&&(this.noIndent=!0)}function l(a){a.context&&(a.context=a.context.prev)}function m(a,b){for(var c;;){if(!a.context)return;if(c=a.context.tagName,!x.contextGrabbers.hasOwnProperty(c)||!x.contextGrabbers[c].hasOwnProperty(b))return;l(a)}}function n(a,b,c){return"openTag"==a?(c.tagStart=b.column(),o):"closeTag"==a?p:n}function o(a,b,c){return"word"==a?(c.tagName=b.current(),B="tag",s):x.allowMissingTagName&&"endTag"==a?(B="tag bracket",s(a,b,c)):(B="error",o)}function p(a,b,c){if("word"==a){var d=b.current();return c.context&&c.context.tagName!=d&&x.implicitlyClosed.hasOwnProperty(c.context.tagName)&&l(c),c.context&&c.context.tagName==d||x.matchClosing===!1?(B="tag",q):(B="tag error",r)}return x.allowMissingTagName&&"endTag"==a?(B="tag bracket",q(a,b,c)):(B="error",r)}function q(a,b,c){return"endTag"!=a?(B="error",q):(l(c),n)}function r(a,b,c){return B="error",q(a,b,c)}function s(a,b,c){if("word"==a)return B="attribute",t;if("endTag"==a||"selfcloseTag"==a){var d=c.tagName,e=c.tagStart;return c.tagName=c.tagStart=null,"selfcloseTag"==a||x.autoSelfClosers.hasOwnProperty(d)?m(c,d):(m(c,d),c.context=new k(c,d,e==c.indented)),n}return B="error",s}function t(a,b,c){return"equals"==a?u:(x.allowMissing||(B="error"),s(a,b,c))}function u(a,b,c){return"string"==a?v:"word"==a&&x.allowUnquoted?(B="string",s):(B="error",s(a,b,c))}function v(a,b,c){return"string"==a?v:s(a,b,c)}var w=d.indentUnit,x={},y=e.htmlMode?b:c;for(var z in y)x[z]=y[z];for(var z in e)x[z]=e[z];var A,B;return f.isInText=!0,{startState:function(a){var b={tokenize:f,state:n,indented:a||0,tagName:null,tagStart:null,context:null};return null!=a&&(b.baseIndent=a),b},token:function(a,b){if(!b.tagName&&a.sol()&&(b.indented=a.indentation()),a.eatSpace())return null;A=null;var c=b.tokenize(a,b);return(c||A)&&"comment"!=c&&(B=null,b.state=b.state(A||c,a,b),B&&(c="error"==B?c+" error":B)),c},indent:function(b,c,d){var e=b.context;if(b.tokenize.isInAttribute)return b.tagStart==b.indented?b.stringStartCol+1:b.indented+w;if(e&&e.noIndent)return a.Pass;if(b.tokenize!=g&&b.tokenize!=f)return d?d.match(/^(\s*)/)[0].length:0;if(b.tagName)return x.multilineTagIndentPastTag!==!1?b.tagStart+b.tagName.length+2:b.tagStart+w*(x.multilineTagIndentFactor||1);if(x.alignCDATA&&/<!\[CDATA\[/.test(c))return 0;var h=c&&/^<(\/)?([\w_:\.-]*)/.exec(c);if(h&&h[1])for(;e;){if(e.tagName==h[2]){e=e.prev;break}if(!x.implicitlyClosed.hasOwnProperty(e.tagName))break;e=e.prev}else if(h)for(;e;){var i=x.contextGrabbers[e.tagName];if(!i||!i.hasOwnProperty(h[2]))break;e=e.prev}for(;e&&e.prev&&!e.startOfLine;)e=e.prev;return e?e.indent+w:b.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:x.htmlMode?"html":"xml",helperType:x.htmlMode?"html":"xml",skipAttribute:function(a){a.state==u&&(a.state=s)}}})),a.defineMIME("text/xml","xml"),a.defineMIME("application/xml","xml"),a.mimeModes.hasOwnProperty("text/html")||a.defineMIME("text/html",{name:"xml",htmlMode:!0})}));editors/codemirror/mode/properties/properties.js000064400000004174152177723720016257 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("properties", function() {
  return {
    token: function(stream, state) {
      var sol = stream.sol() || state.afterSection;
      var eol = stream.eol();

      state.afterSection = false;

      if (sol) {
        if (state.nextMultiline) {
          state.inMultiline = true;
          state.nextMultiline = false;
        } else {
          state.position = "def";
        }
      }

      if (eol && ! state.nextMultiline) {
        state.inMultiline = false;
        state.position = "def";
      }

      if (sol) {
        while(stream.eatSpace()) {}
      }

      var ch = stream.next();

      if (sol && (ch === "#" || ch === "!" || ch === ";")) {
        state.position = "comment";
        stream.skipToEnd();
        return "comment";
      } else if (sol && ch === "[") {
        state.afterSection = true;
        stream.skipTo("]"); stream.eat("]");
        return "header";
      } else if (ch === "=" || ch === ":") {
        state.position = "quote";
        return null;
      } else if (ch === "\\" && state.position === "quote") {
        if (stream.eol()) {  // end of line?
          // Multiline value
          state.nextMultiline = true;
        }
      }

      return state.position;
    },

    startState: function() {
      return {
        position : "def",       // Current position, "def", "quote" or "comment"
        nextMultiline : false,  // Is the next line multiline value
        inMultiline : false,    // Is the current line a multiline value
        afterSection : false    // Did we just open a section
      };
    }

  };
});

CodeMirror.defineMIME("text/x-properties", "properties");
CodeMirror.defineMIME("text/x-ini", "properties");

});
editors/codemirror/mode/properties/properties.min.js000064400000001705152177723720017036 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("properties",(function(){return{token:function(a,b){var c=a.sol()||b.afterSection,d=a.eol();if(b.afterSection=!1,c&&(b.nextMultiline?(b.inMultiline=!0,b.nextMultiline=!1):b.position="def"),d&&!b.nextMultiline&&(b.inMultiline=!1,b.position="def"),c)for(;a.eatSpace(););var e=a.next();return!c||"#"!==e&&"!"!==e&&";"!==e?c&&"["===e?(b.afterSection=!0,a.skipTo("]"),a.eat("]"),"header"):"="===e||":"===e?(b.position="quote",null):("\\"===e&&"quote"===b.position&&a.eol()&&(b.nextMultiline=!0),b.position):(b.position="comment",a.skipToEnd(),"comment")},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}}})),a.defineMIME("text/x-properties","properties"),a.defineMIME("text/x-ini","properties")}));editors/codemirror/mode/yacas/yacas.min.js000064400000004522152177723720014646 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("yacas",(function(b,c){function d(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function e(a,b){var c;if(c=a.next(),'"'===c)return b.tokenize=f,b.tokenize(a,b);if("/"===c){if(a.eat("*"))return b.tokenize=g,b.tokenize(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}a.backUp(1);var d=a.match(/^(\w+)\s*\(/,!1);null!==d&&i.hasOwnProperty(d[1])&&b.scopes.push("bodied");var e=h(b);if("bodied"===e&&"["===c&&b.scopes.pop(),"["!==c&&"{"!==c&&"("!==c||b.scopes.push(c),e=h(b),("["===e&&"]"===c||"{"===e&&"}"===c||"("===e&&")"===c)&&b.scopes.pop(),";"===c)for(;"bodied"===e;)b.scopes.pop(),e=h(b);return a.match(/\d+ *#/,!0,!1)?"qualifier":a.match(l,!0,!1)?"number":a.match(n,!0,!1)?"variable-3":a.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":a.match(o,!0,!1)?(a.backUp(1),"variable"):a.match(m,!0,!1)?"variable-2":a.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?"operator":"error"}function f(a,b){for(var c,d=!1,f=!1;null!=(c=a.next());){if('"'===c&&!f){d=!0;break}f=!f&&"\\"===c}return d&&!f&&(b.tokenize=e),"string"}function g(a,b){for(var c,d;null!=(d=a.next());){if("*"===c&&"/"===d){b.tokenize=e;break}c=d}return"comment"}function h(a){var b=null;return a.scopes.length>0&&(b=a.scopes[a.scopes.length-1]),b}var i=d("Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While"),j="(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)",k="(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)",l=new RegExp(j),m=new RegExp(k),n=new RegExp(k+"?_"+k),o=new RegExp(k+"\\s*\\(");return{startState:function(){return{tokenize:e,scopes:[]}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)},indent:function(c,d){if(c.tokenize!==e&&null!==c.tokenize)return a.Pass;var f=0;return"]"!==d&&"];"!==d&&"}"!==d&&"};"!==d&&");"!==d||(f=-1),(c.scopes.length+f)*b.indentUnit},electricChars:"{}[]();",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}})),a.defineMIME("text/x-yacas",{name:"yacas"})}));editors/codemirror/mode/yacas/yacas.js000064400000012463152177723720014067 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Yacas mode copyright (c) 2015 by Grzegorz Mazur
// Loosely based on mathematica mode by Calin Barbat

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('yacas', function(_config, _parserConfig) {

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  var bodiedOps = words("Assert BackQuote D Defun Deriv For ForEach FromFile " +
                        "FromString Function Integrate InverseTaylor Limit " +
                        "LocalSymbols Macro MacroRule MacroRulePattern " +
                        "NIntegrate Rule RulePattern Subst TD TExplicitSum " +
                        "TSum Taylor Taylor1 Taylor2 Taylor3 ToFile " +
                        "ToStdout ToString TraceRule Until While");

  // patterns
  var pFloatForm  = "(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)";
  var pIdentifier = "(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)";

  // regular expressions
  var reFloatForm    = new RegExp(pFloatForm);
  var reIdentifier   = new RegExp(pIdentifier);
  var rePattern      = new RegExp(pIdentifier + "?_" + pIdentifier);
  var reFunctionLike = new RegExp(pIdentifier + "\\s*\\(");

  function tokenBase(stream, state) {
    var ch;

    // get next character
    ch = stream.next();

    // string
    if (ch === '"') {
      state.tokenize = tokenString;
      return state.tokenize(stream, state);
    }

    // comment
    if (ch === '/') {
      if (stream.eat('*')) {
        state.tokenize = tokenComment;
        return state.tokenize(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }

    // go back one character
    stream.backUp(1);

    // update scope info
    var m = stream.match(/^(\w+)\s*\(/, false);
    if (m !== null && bodiedOps.hasOwnProperty(m[1]))
      state.scopes.push('bodied');

    var scope = currentScope(state);

    if (scope === 'bodied' && ch === '[')
      state.scopes.pop();

    if (ch === '[' || ch === '{' || ch === '(')
      state.scopes.push(ch);

    scope = currentScope(state);

    if (scope === '[' && ch === ']' ||
        scope === '{' && ch === '}' ||
        scope === '(' && ch === ')')
      state.scopes.pop();

    if (ch === ';') {
      while (scope === 'bodied') {
        state.scopes.pop();
        scope = currentScope(state);
      }
    }

    // look for ordered rules
    if (stream.match(/\d+ *#/, true, false)) {
      return 'qualifier';
    }

    // look for numbers
    if (stream.match(reFloatForm, true, false)) {
      return 'number';
    }

    // look for placeholders
    if (stream.match(rePattern, true, false)) {
      return 'variable-3';
    }

    // match all braces separately
    if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
      return 'bracket';
    }

    // literals looking like function calls
    if (stream.match(reFunctionLike, true, false)) {
      stream.backUp(1);
      return 'variable';
    }

    // all other identifiers
    if (stream.match(reIdentifier, true, false)) {
      return 'variable-2';
    }

    // operators; note that operators like @@ or /; are matched separately for each symbol.
    if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/, true, false)) {
      return 'operator';
    }

    // everything else is an error
    return 'error';
  }

  function tokenString(stream, state) {
    var next, end = false, escaped = false;
    while ((next = stream.next()) != null) {
      if (next === '"' && !escaped) {
        end = true;
        break;
      }
      escaped = !escaped && next === '\\';
    }
    if (end && !escaped) {
      state.tokenize = tokenBase;
    }
    return 'string';
  };

  function tokenComment(stream, state) {
    var prev, next;
    while((next = stream.next()) != null) {
      if (prev === '*' && next === '/') {
        state.tokenize = tokenBase;
        break;
      }
      prev = next;
    }
    return 'comment';
  }

  function currentScope(state) {
    var scope = null;
    if (state.scopes.length > 0)
      scope = state.scopes[state.scopes.length - 1];
    return scope;
  }

  return {
    startState: function() {
      return {
        tokenize: tokenBase,
        scopes: []
      };
    },
    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      return state.tokenize(stream, state);
    },
    indent: function(state, textAfter) {
      if (state.tokenize !== tokenBase && state.tokenize !== null)
        return CodeMirror.Pass;

      var delta = 0;
      if (textAfter === ']' || textAfter === '];' ||
          textAfter === '}' || textAfter === '};' ||
          textAfter === ');')
        delta = -1;

      return (state.scopes.length + delta) * _config.indentUnit;
    },
    electricChars: "{}[]();",
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: "//"
  };
});

CodeMirror.defineMIME('text/x-yacas', {
  name: 'yacas'
});

});
editors/codemirror/mode/factor/factor.min.js000064400000003574152177723720015210 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/simple")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],a):a(CodeMirror)})((function(a){"use strict";a.defineSimpleMode("factor",{start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|<PRIVATE|\.|\S*\[|\]|\S*\{|\})(?=\s|$)/,token:"keyword"},{regex:/\S+[\)>\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],meta:{dontIndentStates:["start","vocabulary","string","string3","stack"],lineComment:["!","#!"]}}),a.defineMIME("text/x-factor","factor")}));editors/codemirror/mode/factor/factor.js000064400000006756152177723720014433 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Factor syntax highlight - simple mode
//
// by Dimage Sapelkin (https://github.com/kerabromsmu)

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineSimpleMode("factor", {
    // The start state contains the rules that are intially used
    start: [
      // comments
      {regex: /#?!.*/, token: "comment"},
      // strings """, multiline --> state
      {regex: /"""/, token: "string", next: "string3"},
      {regex: /(STRING:)(\s)/, token: ["keyword", null], next: "string2"},
      {regex: /\S*?"/, token: "string", next: "string"},
      // numbers: dec, hex, unicode, bin, fractional, complex
      {regex: /(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/, token: "number"},
      //{regex: /[+-]?/} //fractional
      // definition: defining word, defined word, etc
      {regex: /((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/, token: ["keyword", null, "def", null, "bracket"], next: "stack"},
      // method definition: defining word, type, defined word, etc
      {regex: /(M\:)(\s+)(\S+)(\s+)(\S+)/, token: ["keyword", null, "def", null, "tag"]},
      // vocabulary using --> state
      {regex: /USING\:/, token: "keyword", next: "vocabulary"},
      // vocabulary definition/use
      {regex: /(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/, token: ["keyword", null, "tag"]},
      // definition: a defining word, defined word
      {regex: /(\S+\:)(\s+)(\S+)(?=\s|$)/, token: ["keyword", null, "def"]},
      // "keywords", incl. ; t f . [ ] { } defining words
      {regex: /(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|<PRIVATE|\.|\S*\[|\]|\S*\{|\})(?=\s|$)/, token: "keyword"},
      // <constructors> and the like
      {regex: /\S+[\)>\.\*\?]+(?=\s|$)/, token: "builtin"},
      {regex: /[\)><]+\S+(?=\s|$)/, token: "builtin"},
      // operators
      {regex: /(?:[\+\-\=\/\*<>])(?=\s|$)/, token: "keyword"},
      // any id (?)
      {regex: /\S+/, token: "variable"},
      {regex: /\s+|./, token: null}
    ],
    vocabulary: [
      {regex: /;/, token: "keyword", next: "start"},
      {regex: /\S+/, token: "tag"},
      {regex: /\s+|./, token: null}
    ],
    string: [
      {regex: /(?:[^\\]|\\.)*?"/, token: "string", next: "start"},
      {regex: /.*/, token: "string"}
    ],
    string2: [
      {regex: /^;/, token: "keyword", next: "start"},
      {regex: /.*/, token: "string"}
    ],
    string3: [
      {regex: /(?:[^\\]|\\.)*?"""/, token: "string", next: "start"},
      {regex: /.*/, token: "string"}
    ],
    stack: [
      {regex: /\)/, token: "bracket", next: "start"},
      {regex: /--/, token: "bracket"},
      {regex: /\S+/, token: "meta"},
      {regex: /\s+|./, token: null}
    ],
    // The meta property contains global information about the mode. It
    // can contain properties like lineComment, which are supported by
    // all modes, and also directives like dontIndentStates, which are
    // specific to simple modes.
    meta: {
      dontIndentStates: ["start", "vocabulary", "string", "string3", "stack"],
      lineComment: [ "!", "#!" ]
    }
  });

  CodeMirror.defineMIME("text/x-factor", "factor");
});
editors/codemirror/mode/coffeescript/coffeescript.min.js000064400000010202152177723720017566 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("coffeescript",(function(a,b){function c(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}function d(a,b){if(a.sol()){null===b.scope.align&&(b.scope.align=!1);var c=b.scope.offset;if(a.eatSpace()){var d=a.indentation();return d>c&&"coffee"==b.scope.type?"indent":d<c?"dedent":null}c>0&&h(a,b)}if(a.eatSpace())return null;var g=a.peek();if(a.match("####"))return a.skipToEnd(),"comment";if(a.match("###"))return b.tokenize=f,b.tokenize(a,b);if("#"===g)return a.skipToEnd(),"comment";if(a.match(/^-?[0-9\.]/,!1)){var i=!1;if(a.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(i=!0),a.match(/^-?\d+\.\d*/)&&(i=!0),a.match(/^-?\.\d+/)&&(i=!0),i)return"."==a.peek()&&a.backUp(1),"number";var p=!1;if(a.match(/^-?0x[0-9a-f]+/i)&&(p=!0),a.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(p=!0),a.match(/^-?0(?![\dx])/i)&&(p=!0),p)return"number"}if(a.match(s))return b.tokenize=e(a.current(),!1,"string"),b.tokenize(a,b);if(a.match(t)){if("/"!=a.current()||a.match(/^.*\//,!1))return b.tokenize=e(a.current(),!0,"string-2"),b.tokenize(a,b);a.backUp(1)}return a.match(k)||a.match(o)?"operator":a.match(l)?"punctuation":a.match(v)?"atom":a.match(n)||b.prop&&a.match(m)?"property":a.match(r)?"keyword":a.match(m)?"variable":(a.next(),j)}function e(a,c,e){return function(f,g){for(;!f.eol();)if(f.eatWhile(/[^'"\/\\]/),f.eat("\\")){if(f.next(),c&&f.eol())return e}else{if(f.match(a))return g.tokenize=d,e;f.eat(/['"\/]/)}return c&&(b.singleLineStringErrors?e=j:g.tokenize=d),e}}function f(a,b){for(;!a.eol();){if(a.eatWhile(/[^#]/),a.match("###")){b.tokenize=d;break}a.eatWhile("#")}return"comment"}function g(b,c,d){d=d||"coffee";for(var e=0,f=!1,g=null,h=c.scope;h;h=h.prev)if("coffee"===h.type||"}"==h.type){e=h.offset+a.indentUnit;break}"coffee"!==d?(f=null,g=b.column()+b.current().length):c.scope.align&&(c.scope.align=!1),c.scope={offset:e,type:d,prev:c.scope,align:f,alignOffset:g}}function h(a,b){if(b.scope.prev){if("coffee"===b.scope.type){for(var c=a.indentation(),d=!1,e=b.scope;e;e=e.prev)if(c===e.offset){d=!0;break}if(!d)return!0;for(;b.scope.prev&&b.scope.offset!==c;)b.scope=b.scope.prev;return!1}return b.scope=b.scope.prev,!1}}function i(a,b){var c=b.tokenize(a,b),d=a.current();"return"===d&&(b.dedent=!0),(("->"===d||"=>"===d)&&a.eol()||"indent"===c)&&g(a,b);var e="[({".indexOf(d);if(e!==-1&&g(a,b,"])}".slice(e,e+1)),p.exec(d)&&g(a,b),"then"==d&&h(a,b),"dedent"===c&&h(a,b))return j;if(e="])}".indexOf(d),e!==-1){for(;"coffee"==b.scope.type&&b.scope.prev;)b.scope=b.scope.prev;b.scope.type==d&&(b.scope=b.scope.prev)}return b.dedent&&a.eol()&&("coffee"==b.scope.type&&b.scope.prev&&(b.scope=b.scope.prev),b.dedent=!1),c}var j="error",k=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,l=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,m=/^[_A-Za-z$][_A-Za-z$0-9]*/,n=/^@[_A-Za-z$][_A-Za-z$0-9]*/,o=c(["and","or","not","is","isnt","in","instanceof","typeof"]),p=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],q=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],r=c(p.concat(q));p=c(p);var s=/^('{3}|\"{3}|['\"])/,t=/^(\/{3}|\/)/,u=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],v=c(u),w={startState:function(a){return{tokenize:d,scope:{offset:a||0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(a,b){var c=null===b.scope.align&&b.scope;c&&a.sol()&&(c.align=!1);var d=i(a,b);return d&&"comment"!=d&&(c&&(c.align=!0),b.prop="punctuation"==d&&"."==a.current()),d},indent:function(a,b){if(a.tokenize!=d)return 0;var c=a.scope,e=b&&"])}".indexOf(b.charAt(0))>-1;if(e)for(;"coffee"==c.type&&c.prev;)c=c.prev;var f=e&&c.type===b.charAt(0);return c.align?c.alignOffset-(f?1:0):(f?c.prev:c).offset},lineComment:"#",fold:"indent"};return w})),a.defineMIME("application/vnd.coffeescript","coffeescript"),a.defineMIME("text/x-coffeescript","coffeescript"),a.defineMIME("text/coffeescript","coffeescript")}));editors/codemirror/mode/coffeescript/coffeescript.js000064400000023464152177723720017022 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Link to the project's GitHub page:
 * https://github.com/pickhardt/coffeescript-codemirror-mode
 */
(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("coffeescript", function(conf, parserConf) {
  var ERRORCLASS = "error";

  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  var operators = /^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/;
  var delimiters = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/;
  var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;
  var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;

  var wordOperators = wordRegexp(["and", "or", "not",
                                  "is", "isnt", "in",
                                  "instanceof", "typeof"]);
  var indentKeywords = ["for", "while", "loop", "if", "unless", "else",
                        "switch", "try", "catch", "finally", "class"];
  var commonKeywords = ["break", "by", "continue", "debugger", "delete",
                        "do", "in", "of", "new", "return", "then",
                        "this", "@", "throw", "when", "until", "extends"];

  var keywords = wordRegexp(indentKeywords.concat(commonKeywords));

  indentKeywords = wordRegexp(indentKeywords);


  var stringPrefixes = /^('{3}|\"{3}|['\"])/;
  var regexPrefixes = /^(\/{3}|\/)/;
  var commonConstants = ["Infinity", "NaN", "undefined", "null", "true", "false", "on", "off", "yes", "no"];
  var constants = wordRegexp(commonConstants);

  // Tokenizers
  function tokenBase(stream, state) {
    // Handle scope changes
    if (stream.sol()) {
      if (state.scope.align === null) state.scope.align = false;
      var scopeOffset = state.scope.offset;
      if (stream.eatSpace()) {
        var lineOffset = stream.indentation();
        if (lineOffset > scopeOffset && state.scope.type == "coffee") {
          return "indent";
        } else if (lineOffset < scopeOffset) {
          return "dedent";
        }
        return null;
      } else {
        if (scopeOffset > 0) {
          dedent(stream, state);
        }
      }
    }
    if (stream.eatSpace()) {
      return null;
    }

    var ch = stream.peek();

    // Handle docco title comment (single line)
    if (stream.match("####")) {
      stream.skipToEnd();
      return "comment";
    }

    // Handle multi line comments
    if (stream.match("###")) {
      state.tokenize = longComment;
      return state.tokenize(stream, state);
    }

    // Single line comment
    if (ch === "#") {
      stream.skipToEnd();
      return "comment";
    }

    // Handle number literals
    if (stream.match(/^-?[0-9\.]/, false)) {
      var floatLiteral = false;
      // Floats
      if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)) {
        floatLiteral = true;
      }
      if (stream.match(/^-?\d+\.\d*/)) {
        floatLiteral = true;
      }
      if (stream.match(/^-?\.\d+/)) {
        floatLiteral = true;
      }

      if (floatLiteral) {
        // prevent from getting extra . on 1..
        if (stream.peek() == "."){
          stream.backUp(1);
        }
        return "number";
      }
      // Integers
      var intLiteral = false;
      // Hex
      if (stream.match(/^-?0x[0-9a-f]+/i)) {
        intLiteral = true;
      }
      // Decimal
      if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)) {
        intLiteral = true;
      }
      // Zero by itself with no other piece of number.
      if (stream.match(/^-?0(?![\dx])/i)) {
        intLiteral = true;
      }
      if (intLiteral) {
        return "number";
      }
    }

    // Handle strings
    if (stream.match(stringPrefixes)) {
      state.tokenize = tokenFactory(stream.current(), false, "string");
      return state.tokenize(stream, state);
    }
    // Handle regex literals
    if (stream.match(regexPrefixes)) {
      if (stream.current() != "/" || stream.match(/^.*\//, false)) { // prevent highlight of division
        state.tokenize = tokenFactory(stream.current(), true, "string-2");
        return state.tokenize(stream, state);
      } else {
        stream.backUp(1);
      }
    }



    // Handle operators and delimiters
    if (stream.match(operators) || stream.match(wordOperators)) {
      return "operator";
    }
    if (stream.match(delimiters)) {
      return "punctuation";
    }

    if (stream.match(constants)) {
      return "atom";
    }

    if (stream.match(atProp) || state.prop && stream.match(identifiers)) {
      return "property";
    }

    if (stream.match(keywords)) {
      return "keyword";
    }

    if (stream.match(identifiers)) {
      return "variable";
    }

    // Handle non-detected items
    stream.next();
    return ERRORCLASS;
  }

  function tokenFactory(delimiter, singleline, outclass) {
    return function(stream, state) {
      while (!stream.eol()) {
        stream.eatWhile(/[^'"\/\\]/);
        if (stream.eat("\\")) {
          stream.next();
          if (singleline && stream.eol()) {
            return outclass;
          }
        } else if (stream.match(delimiter)) {
          state.tokenize = tokenBase;
          return outclass;
        } else {
          stream.eat(/['"\/]/);
        }
      }
      if (singleline) {
        if (parserConf.singleLineStringErrors) {
          outclass = ERRORCLASS;
        } else {
          state.tokenize = tokenBase;
        }
      }
      return outclass;
    };
  }

  function longComment(stream, state) {
    while (!stream.eol()) {
      stream.eatWhile(/[^#]/);
      if (stream.match("###")) {
        state.tokenize = tokenBase;
        break;
      }
      stream.eatWhile("#");
    }
    return "comment";
  }

  function indent(stream, state, type) {
    type = type || "coffee";
    var offset = 0, align = false, alignOffset = null;
    for (var scope = state.scope; scope; scope = scope.prev) {
      if (scope.type === "coffee" || scope.type == "}") {
        offset = scope.offset + conf.indentUnit;
        break;
      }
    }
    if (type !== "coffee") {
      align = null;
      alignOffset = stream.column() + stream.current().length;
    } else if (state.scope.align) {
      state.scope.align = false;
    }
    state.scope = {
      offset: offset,
      type: type,
      prev: state.scope,
      align: align,
      alignOffset: alignOffset
    };
  }

  function dedent(stream, state) {
    if (!state.scope.prev) return;
    if (state.scope.type === "coffee") {
      var _indent = stream.indentation();
      var matched = false;
      for (var scope = state.scope; scope; scope = scope.prev) {
        if (_indent === scope.offset) {
          matched = true;
          break;
        }
      }
      if (!matched) {
        return true;
      }
      while (state.scope.prev && state.scope.offset !== _indent) {
        state.scope = state.scope.prev;
      }
      return false;
    } else {
      state.scope = state.scope.prev;
      return false;
    }
  }

  function tokenLexer(stream, state) {
    var style = state.tokenize(stream, state);
    var current = stream.current();

    // Handle scope changes.
    if (current === "return") {
      state.dedent = true;
    }
    if (((current === "->" || current === "=>") && stream.eol())
        || style === "indent") {
      indent(stream, state);
    }
    var delimiter_index = "[({".indexOf(current);
    if (delimiter_index !== -1) {
      indent(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
    }
    if (indentKeywords.exec(current)){
      indent(stream, state);
    }
    if (current == "then"){
      dedent(stream, state);
    }


    if (style === "dedent") {
      if (dedent(stream, state)) {
        return ERRORCLASS;
      }
    }
    delimiter_index = "])}".indexOf(current);
    if (delimiter_index !== -1) {
      while (state.scope.type == "coffee" && state.scope.prev)
        state.scope = state.scope.prev;
      if (state.scope.type == current)
        state.scope = state.scope.prev;
    }
    if (state.dedent && stream.eol()) {
      if (state.scope.type == "coffee" && state.scope.prev)
        state.scope = state.scope.prev;
      state.dedent = false;
    }

    return style;
  }

  var external = {
    startState: function(basecolumn) {
      return {
        tokenize: tokenBase,
        scope: {offset:basecolumn || 0, type:"coffee", prev: null, align: false},
        prop: false,
        dedent: 0
      };
    },

    token: function(stream, state) {
      var fillAlign = state.scope.align === null && state.scope;
      if (fillAlign && stream.sol()) fillAlign.align = false;

      var style = tokenLexer(stream, state);
      if (style && style != "comment") {
        if (fillAlign) fillAlign.align = true;
        state.prop = style == "punctuation" && stream.current() == "."
      }

      return style;
    },

    indent: function(state, text) {
      if (state.tokenize != tokenBase) return 0;
      var scope = state.scope;
      var closer = text && "])}".indexOf(text.charAt(0)) > -1;
      if (closer) while (scope.type == "coffee" && scope.prev) scope = scope.prev;
      var closes = closer && scope.type === text.charAt(0);
      if (scope.align)
        return scope.alignOffset - (closes ? 1 : 0);
      else
        return (closes ? scope.prev : scope).offset;
    },

    lineComment: "#",
    fold: "indent"
  };
  return external;
});

// IANA registered media type
// https://www.iana.org/assignments/media-types/
CodeMirror.defineMIME("application/vnd.coffeescript", "coffeescript");

CodeMirror.defineMIME("text/x-coffeescript", "coffeescript");
CodeMirror.defineMIME("text/coffeescript", "coffeescript");

});
editors/codemirror/mode/css/css.min.js000064400000060420152177723720014025 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=0;c<a.length;++c)b[a[c].toLowerCase()]=!0;return b}function c(a,b){for(var c,d=!1;null!=(c=a.next());){if(d&&"/"==c){b.tokenize=null;break}d="*"==c}return["comment","comment"]}a.defineMode("css",(function(b,c){function d(a,b){return o=b,a}function e(a,b){var c=a.next();if(r[c]){var e=r[c](a,b);if(e!==!1)return e}return"@"==c?(a.eatWhile(/[\w\\\-]/),d("def",a.current())):"="==c||("~"==c||"|"==c)&&a.eat("=")?d(null,"compare"):'"'==c||"'"==c?(b.tokenize=f(c),b.tokenize(a,b)):"#"==c?(a.eatWhile(/[\w\\\-]/),d("atom","hash")):"!"==c?(a.match(/^\s*\w*/),d("keyword","important")):/\d/.test(c)||"."==c&&a.eat(/\d/)?(a.eatWhile(/[\w.%]/),d("number","unit")):"-"!==c?/[,+>*\/]/.test(c)?d(null,"select-op"):"."==c&&a.match(/^-?[_a-z][_a-z0-9-]*/i)?d("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(c)?d(null,c):("u"==c||"U"==c)&&a.match(/rl(-prefix)?\(/i)||("d"==c||"D"==c)&&a.match("omain(",!0,!0)||("r"==c||"R"==c)&&a.match("egexp(",!0,!0)?(a.backUp(1),b.tokenize=g,d("property","word")):/[\w\\\-]/.test(c)?(a.eatWhile(/[\w\\\-]/),d("property","word")):d(null,null):/[\d.]/.test(a.peek())?(a.eatWhile(/[\w.%]/),d("number","unit")):a.match(/^-[\w\\\-]+/)?(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?d("variable-2","variable-definition"):d("variable-2","variable")):a.match(/^\w+-/)?d("meta","meta"):void 0}function f(a){return function(b,c){for(var e,f=!1;null!=(e=b.next());){if(e==a&&!f){")"==a&&b.backUp(1);break}f=!f&&"\\"==e}return(e==a||!f&&")"!=a)&&(c.tokenize=null),d("string","string")}}function g(a,b){return a.next(),a.match(/\s*[\"\')]/,!1)?b.tokenize=null:b.tokenize=f(")"),d(null,"(")}function h(a,b,c){this.type=a,this.indent=b,this.prev=c}function i(a,b,c,d){return a.context=new h(c,b.indentation()+(d===!1?0:q),a.context),c}function j(a){return a.context.prev&&(a.context=a.context.prev),a.context.type}function k(a,b,c){return F[c.context.type](a,b,c)}function l(a,b,c,d){for(var e=d||1;e>0;e--)c.context=c.context.prev;return k(a,b,c)}function m(a){var b=a.current().toLowerCase();p=B.hasOwnProperty(b)?"atom":A.hasOwnProperty(b)?"keyword":"variable"}var n=c.inline;c.propertyKeywords||(c=a.resolveMode("text/css"));var o,p,q=b.indentUnit,r=c.tokenHooks,s=c.documentTypes||{},t=c.mediaTypes||{},u=c.mediaFeatures||{},v=c.mediaValueKeywords||{},w=c.propertyKeywords||{},x=c.nonStandardPropertyKeywords||{},y=c.fontProperties||{},z=c.counterDescriptors||{},A=c.colorKeywords||{},B=c.valueKeywords||{},C=c.allowNested,D=c.lineComment,E=c.supportsAtComponent===!0,F={};return F.top=function(a,b,c){if("{"==a)return i(c,b,"block");if("}"==a&&c.context.prev)return j(c);if(E&&/@component/i.test(a))return i(c,b,"atComponentBlock");if(/^@(-moz-)?document$/i.test(a))return i(c,b,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(a))return i(c,b,"atBlock");if(/^@(font-face|counter-style)/i.test(a))return c.stateArg=a,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(a))return"keyframes";if(a&&"@"==a.charAt(0))return i(c,b,"at");if("hash"==a)p="builtin";else if("word"==a)p="tag";else{if("variable-definition"==a)return"maybeprop";if("interpolation"==a)return i(c,b,"interpolation");if(":"==a)return"pseudo";if(C&&"("==a)return i(c,b,"parens")}return c.context.type},F.block=function(a,b,c){if("word"==a){var d=b.current().toLowerCase();return w.hasOwnProperty(d)?(p="property","maybeprop"):x.hasOwnProperty(d)?(p="string-2","maybeprop"):C?(p=b.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(p+=" error","maybeprop")}return"meta"==a?"block":C||"hash"!=a&&"qualifier"!=a?F.top(a,b,c):(p="error","block")},F.maybeprop=function(a,b,c){return":"==a?i(c,b,"prop"):k(a,b,c)},F.prop=function(a,b,c){if(";"==a)return j(c);if("{"==a&&C)return i(c,b,"propBlock");if("}"==a||"{"==a)return l(a,b,c);if("("==a)return i(c,b,"parens");if("hash"!=a||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(b.current())){if("word"==a)m(b);else if("interpolation"==a)return i(c,b,"interpolation")}else p+=" error";return"prop"},F.propBlock=function(a,b,c){return"}"==a?j(c):"word"==a?(p="property","maybeprop"):c.context.type},F.parens=function(a,b,c){return"{"==a||"}"==a?l(a,b,c):")"==a?j(c):"("==a?i(c,b,"parens"):"interpolation"==a?i(c,b,"interpolation"):("word"==a&&m(b),"parens")},F.pseudo=function(a,b,c){return"meta"==a?"pseudo":"word"==a?(p="variable-3",c.context.type):k(a,b,c)},F.documentTypes=function(a,b,c){return"word"==a&&s.hasOwnProperty(b.current())?(p="tag",c.context.type):F.atBlock(a,b,c)},F.atBlock=function(a,b,c){if("("==a)return i(c,b,"atBlock_parens");if("}"==a||";"==a)return l(a,b,c);if("{"==a)return j(c)&&i(c,b,C?"block":"top");if("interpolation"==a)return i(c,b,"interpolation");if("word"==a){var d=b.current().toLowerCase();p="only"==d||"not"==d||"and"==d||"or"==d?"keyword":t.hasOwnProperty(d)?"attribute":u.hasOwnProperty(d)?"property":v.hasOwnProperty(d)?"keyword":w.hasOwnProperty(d)?"property":x.hasOwnProperty(d)?"string-2":B.hasOwnProperty(d)?"atom":A.hasOwnProperty(d)?"keyword":"error"}return c.context.type},F.atComponentBlock=function(a,b,c){return"}"==a?l(a,b,c):"{"==a?j(c)&&i(c,b,C?"block":"top",!1):("word"==a&&(p="error"),c.context.type)},F.atBlock_parens=function(a,b,c){return")"==a?j(c):"{"==a||"}"==a?l(a,b,c,2):F.atBlock(a,b,c)},F.restricted_atBlock_before=function(a,b,c){return"{"==a?i(c,b,"restricted_atBlock"):"word"==a&&"@counter-style"==c.stateArg?(p="variable","restricted_atBlock_before"):k(a,b,c)},F.restricted_atBlock=function(a,b,c){return"}"==a?(c.stateArg=null,j(c)):"word"==a?(p="@font-face"==c.stateArg&&!y.hasOwnProperty(b.current().toLowerCase())||"@counter-style"==c.stateArg&&!z.hasOwnProperty(b.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},F.keyframes=function(a,b,c){return"word"==a?(p="variable","keyframes"):"{"==a?i(c,b,"top"):k(a,b,c)},F.at=function(a,b,c){return";"==a?j(c):"{"==a||"}"==a?l(a,b,c):("word"==a?p="tag":"hash"==a&&(p="builtin"),"at")},F.interpolation=function(a,b,c){return"}"==a?j(c):"{"==a||";"==a?l(a,b,c):("word"==a?p="variable":"variable"!=a&&"("!=a&&")"!=a&&(p="error"),"interpolation")},{startState:function(a){return{tokenize:null,state:n?"block":"top",stateArg:null,context:new h(n?"block":"top",a||0,null)}},token:function(a,b){if(!b.tokenize&&a.eatSpace())return null;var c=(b.tokenize||e)(a,b);return c&&"object"==typeof c&&(o=c[1],c=c[0]),p=c,"comment"!=o&&(b.state=F[b.state](o,a,b)),p},indent:function(a,b){var c=a.context,d=b&&b.charAt(0),e=c.indent;return"prop"!=c.type||"}"!=d&&")"!=d||(c=c.prev),c.prev&&("}"!=d||"block"!=c.type&&"top"!=c.type&&"interpolation"!=c.type&&"restricted_atBlock"!=c.type?(")"!=d||"parens"!=c.type&&"atBlock_parens"!=c.type)&&("{"!=d||"at"!=c.type&&"atBlock"!=c.type)||(e=Math.max(0,c.indent-q)):(c=c.prev,e=c.indent)),e},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:D,fold:"brace"}}));var d=["domain","regexp","url","url-prefix"],e=b(d),f=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],g=b(f),h=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],i=b(h),j=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],k=b(j),l=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],m=b(l),n=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],o=b(n),p=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],q=b(p),r=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],s=b(r),t=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],u=b(t),v=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],w=b(v),x=d.concat(f).concat(h).concat(j).concat(l).concat(n).concat(t).concat(v);a.registerHelper("hintWords","css",x),a.defineMIME("text/css",{documentTypes:e,mediaTypes:g,mediaFeatures:i,mediaValueKeywords:k,propertyKeywords:m,nonStandardPropertyKeywords:o,fontProperties:q,counterDescriptors:s,colorKeywords:u,valueKeywords:w,tokenHooks:{"/":function(a,b){return!!a.eat("*")&&(b.tokenize=c,c(a,b))}},name:"css"}),a.defineMIME("text/x-scss",{mediaTypes:g,mediaFeatures:i,mediaValueKeywords:k,propertyKeywords:m,nonStandardPropertyKeywords:o,colorKeywords:u,valueKeywords:w,fontProperties:q,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),["comment","comment"]):a.eat("*")?(b.tokenize=c,c(a,b)):["operator","operator"]},":":function(a){return!!a.match(/\s*\{/,!1)&&[null,null]},$:function(a){return a.match(/^[\w-]+/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(a){return!!a.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),a.defineMIME("text/x-less",{mediaTypes:g,mediaFeatures:i,mediaValueKeywords:k,propertyKeywords:m,nonStandardPropertyKeywords:o,colorKeywords:u,valueKeywords:w,fontProperties:q,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),["comment","comment"]):a.eat("*")?(b.tokenize=c,c(a,b)):["operator","operator"]},"@":function(a){return a.eat("{")?[null,"interpolation"]:!a.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),a.defineMIME("text/x-gss",{documentTypes:e,mediaTypes:g,mediaFeatures:i,propertyKeywords:m,nonStandardPropertyKeywords:o,fontProperties:q,counterDescriptors:s,colorKeywords:u,valueKeywords:w,supportsAtComponent:!0,tokenHooks:{"/":function(a,b){return!!a.eat("*")&&(b.tokenize=c,c(a,b))}},name:"css",helperType:"gss"})}));editors/codemirror/mode/css/css.js000064400000111572152177723720013250 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("css", function(config, parserConfig) {
  var inline = parserConfig.inline
  if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode("text/css");

  var indentUnit = config.indentUnit,
      tokenHooks = parserConfig.tokenHooks,
      documentTypes = parserConfig.documentTypes || {},
      mediaTypes = parserConfig.mediaTypes || {},
      mediaFeatures = parserConfig.mediaFeatures || {},
      mediaValueKeywords = parserConfig.mediaValueKeywords || {},
      propertyKeywords = parserConfig.propertyKeywords || {},
      nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},
      fontProperties = parserConfig.fontProperties || {},
      counterDescriptors = parserConfig.counterDescriptors || {},
      colorKeywords = parserConfig.colorKeywords || {},
      valueKeywords = parserConfig.valueKeywords || {},
      allowNested = parserConfig.allowNested,
      lineComment = parserConfig.lineComment,
      supportsAtComponent = parserConfig.supportsAtComponent === true;

  var type, override;
  function ret(style, tp) { type = tp; return style; }

  // Tokenizers

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (tokenHooks[ch]) {
      var result = tokenHooks[ch](stream, state);
      if (result !== false) return result;
    }
    if (ch == "@") {
      stream.eatWhile(/[\w\\\-]/);
      return ret("def", stream.current());
    } else if (ch == "=" || (ch == "~" || ch == "|") && stream.eat("=")) {
      return ret(null, "compare");
    } else if (ch == "\"" || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    } else if (ch == "#") {
      stream.eatWhile(/[\w\\\-]/);
      return ret("atom", "hash");
    } else if (ch == "!") {
      stream.match(/^\s*\w*/);
      return ret("keyword", "important");
    } else if (/\d/.test(ch) || ch == "." && stream.eat(/\d/)) {
      stream.eatWhile(/[\w.%]/);
      return ret("number", "unit");
    } else if (ch === "-") {
      if (/[\d.]/.test(stream.peek())) {
        stream.eatWhile(/[\w.%]/);
        return ret("number", "unit");
      } else if (stream.match(/^-[\w\\\-]+/)) {
        stream.eatWhile(/[\w\\\-]/);
        if (stream.match(/^\s*:/, false))
          return ret("variable-2", "variable-definition");
        return ret("variable-2", "variable");
      } else if (stream.match(/^\w+-/)) {
        return ret("meta", "meta");
      }
    } else if (/[,+>*\/]/.test(ch)) {
      return ret(null, "select-op");
    } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {
      return ret("qualifier", "qualifier");
    } else if (/[:;{}\[\]\(\)]/.test(ch)) {
      return ret(null, ch);
    } else if (((ch == "u" || ch == "U") && stream.match(/rl(-prefix)?\(/i)) ||
               ((ch == "d" || ch == "D") && stream.match("omain(", true, true)) ||
               ((ch == "r" || ch == "R") && stream.match("egexp(", true, true))) {
      stream.backUp(1);
      state.tokenize = tokenParenthesized;
      return ret("property", "word");
    } else if (/[\w\\\-]/.test(ch)) {
      stream.eatWhile(/[\w\\\-]/);
      return ret("property", "word");
    } else {
      return ret(null, null);
    }
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) {
          if (quote == ")") stream.backUp(1);
          break;
        }
        escaped = !escaped && ch == "\\";
      }
      if (ch == quote || !escaped && quote != ")") state.tokenize = null;
      return ret("string", "string");
    };
  }

  function tokenParenthesized(stream, state) {
    stream.next(); // Must be '('
    if (!stream.match(/\s*[\"\')]/, false))
      state.tokenize = tokenString(")");
    else
      state.tokenize = null;
    return ret(null, "(");
  }

  // Context management

  function Context(type, indent, prev) {
    this.type = type;
    this.indent = indent;
    this.prev = prev;
  }

  function pushContext(state, stream, type, indent) {
    state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);
    return type;
  }

  function popContext(state) {
    if (state.context.prev)
      state.context = state.context.prev;
    return state.context.type;
  }

  function pass(type, stream, state) {
    return states[state.context.type](type, stream, state);
  }
  function popAndPass(type, stream, state, n) {
    for (var i = n || 1; i > 0; i--)
      state.context = state.context.prev;
    return pass(type, stream, state);
  }

  // Parser

  function wordAsValue(stream) {
    var word = stream.current().toLowerCase();
    if (valueKeywords.hasOwnProperty(word))
      override = "atom";
    else if (colorKeywords.hasOwnProperty(word))
      override = "keyword";
    else
      override = "variable";
  }

  var states = {};

  states.top = function(type, stream, state) {
    if (type == "{") {
      return pushContext(state, stream, "block");
    } else if (type == "}" && state.context.prev) {
      return popContext(state);
    } else if (supportsAtComponent && /@component/i.test(type)) {
      return pushContext(state, stream, "atComponentBlock");
    } else if (/^@(-moz-)?document$/i.test(type)) {
      return pushContext(state, stream, "documentTypes");
    } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {
      return pushContext(state, stream, "atBlock");
    } else if (/^@(font-face|counter-style)/i.test(type)) {
      state.stateArg = type;
      return "restricted_atBlock_before";
    } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {
      return "keyframes";
    } else if (type && type.charAt(0) == "@") {
      return pushContext(state, stream, "at");
    } else if (type == "hash") {
      override = "builtin";
    } else if (type == "word") {
      override = "tag";
    } else if (type == "variable-definition") {
      return "maybeprop";
    } else if (type == "interpolation") {
      return pushContext(state, stream, "interpolation");
    } else if (type == ":") {
      return "pseudo";
    } else if (allowNested && type == "(") {
      return pushContext(state, stream, "parens");
    }
    return state.context.type;
  };

  states.block = function(type, stream, state) {
    if (type == "word") {
      var word = stream.current().toLowerCase();
      if (propertyKeywords.hasOwnProperty(word)) {
        override = "property";
        return "maybeprop";
      } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {
        override = "string-2";
        return "maybeprop";
      } else if (allowNested) {
        override = stream.match(/^\s*:(?:\s|$)/, false) ? "property" : "tag";
        return "block";
      } else {
        override += " error";
        return "maybeprop";
      }
    } else if (type == "meta") {
      return "block";
    } else if (!allowNested && (type == "hash" || type == "qualifier")) {
      override = "error";
      return "block";
    } else {
      return states.top(type, stream, state);
    }
  };

  states.maybeprop = function(type, stream, state) {
    if (type == ":") return pushContext(state, stream, "prop");
    return pass(type, stream, state);
  };

  states.prop = function(type, stream, state) {
    if (type == ";") return popContext(state);
    if (type == "{" && allowNested) return pushContext(state, stream, "propBlock");
    if (type == "}" || type == "{") return popAndPass(type, stream, state);
    if (type == "(") return pushContext(state, stream, "parens");

    if (type == "hash" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {
      override += " error";
    } else if (type == "word") {
      wordAsValue(stream);
    } else if (type == "interpolation") {
      return pushContext(state, stream, "interpolation");
    }
    return "prop";
  };

  states.propBlock = function(type, _stream, state) {
    if (type == "}") return popContext(state);
    if (type == "word") { override = "property"; return "maybeprop"; }
    return state.context.type;
  };

  states.parens = function(type, stream, state) {
    if (type == "{" || type == "}") return popAndPass(type, stream, state);
    if (type == ")") return popContext(state);
    if (type == "(") return pushContext(state, stream, "parens");
    if (type == "interpolation") return pushContext(state, stream, "interpolation");
    if (type == "word") wordAsValue(stream);
    return "parens";
  };

  states.pseudo = function(type, stream, state) {
    if (type == "meta") return "pseudo";

    if (type == "word") {
      override = "variable-3";
      return state.context.type;
    }
    return pass(type, stream, state);
  };

  states.documentTypes = function(type, stream, state) {
    if (type == "word" && documentTypes.hasOwnProperty(stream.current())) {
      override = "tag";
      return state.context.type;
    } else {
      return states.atBlock(type, stream, state);
    }
  };

  states.atBlock = function(type, stream, state) {
    if (type == "(") return pushContext(state, stream, "atBlock_parens");
    if (type == "}" || type == ";") return popAndPass(type, stream, state);
    if (type == "{") return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top");

    if (type == "interpolation") return pushContext(state, stream, "interpolation");

    if (type == "word") {
      var word = stream.current().toLowerCase();
      if (word == "only" || word == "not" || word == "and" || word == "or")
        override = "keyword";
      else if (mediaTypes.hasOwnProperty(word))
        override = "attribute";
      else if (mediaFeatures.hasOwnProperty(word))
        override = "property";
      else if (mediaValueKeywords.hasOwnProperty(word))
        override = "keyword";
      else if (propertyKeywords.hasOwnProperty(word))
        override = "property";
      else if (nonStandardPropertyKeywords.hasOwnProperty(word))
        override = "string-2";
      else if (valueKeywords.hasOwnProperty(word))
        override = "atom";
      else if (colorKeywords.hasOwnProperty(word))
        override = "keyword";
      else
        override = "error";
    }
    return state.context.type;
  };

  states.atComponentBlock = function(type, stream, state) {
    if (type == "}")
      return popAndPass(type, stream, state);
    if (type == "{")
      return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top", false);
    if (type == "word")
      override = "error";
    return state.context.type;
  };

  states.atBlock_parens = function(type, stream, state) {
    if (type == ")") return popContext(state);
    if (type == "{" || type == "}") return popAndPass(type, stream, state, 2);
    return states.atBlock(type, stream, state);
  };

  states.restricted_atBlock_before = function(type, stream, state) {
    if (type == "{")
      return pushContext(state, stream, "restricted_atBlock");
    if (type == "word" && state.stateArg == "@counter-style") {
      override = "variable";
      return "restricted_atBlock_before";
    }
    return pass(type, stream, state);
  };

  states.restricted_atBlock = function(type, stream, state) {
    if (type == "}") {
      state.stateArg = null;
      return popContext(state);
    }
    if (type == "word") {
      if ((state.stateArg == "@font-face" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||
          (state.stateArg == "@counter-style" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))
        override = "error";
      else
        override = "property";
      return "maybeprop";
    }
    return "restricted_atBlock";
  };

  states.keyframes = function(type, stream, state) {
    if (type == "word") { override = "variable"; return "keyframes"; }
    if (type == "{") return pushContext(state, stream, "top");
    return pass(type, stream, state);
  };

  states.at = function(type, stream, state) {
    if (type == ";") return popContext(state);
    if (type == "{" || type == "}") return popAndPass(type, stream, state);
    if (type == "word") override = "tag";
    else if (type == "hash") override = "builtin";
    return "at";
  };

  states.interpolation = function(type, stream, state) {
    if (type == "}") return popContext(state);
    if (type == "{" || type == ";") return popAndPass(type, stream, state);
    if (type == "word") override = "variable";
    else if (type != "variable" && type != "(" && type != ")") override = "error";
    return "interpolation";
  };

  return {
    startState: function(base) {
      return {tokenize: null,
              state: inline ? "block" : "top",
              stateArg: null,
              context: new Context(inline ? "block" : "top", base || 0, null)};
    },

    token: function(stream, state) {
      if (!state.tokenize && stream.eatSpace()) return null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style && typeof style == "object") {
        type = style[1];
        style = style[0];
      }
      override = style;
      if (type != "comment")
        state.state = states[state.state](type, stream, state);
      return override;
    },

    indent: function(state, textAfter) {
      var cx = state.context, ch = textAfter && textAfter.charAt(0);
      var indent = cx.indent;
      if (cx.type == "prop" && (ch == "}" || ch == ")")) cx = cx.prev;
      if (cx.prev) {
        if (ch == "}" && (cx.type == "block" || cx.type == "top" ||
                          cx.type == "interpolation" || cx.type == "restricted_atBlock")) {
          // Resume indentation from parent context.
          cx = cx.prev;
          indent = cx.indent;
        } else if (ch == ")" && (cx.type == "parens" || cx.type == "atBlock_parens") ||
            ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
          // Dedent relative to current context.
          indent = Math.max(0, cx.indent - indentUnit);
        }
      }
      return indent;
    },

    electricChars: "}",
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    blockCommentContinue: " * ",
    lineComment: lineComment,
    fold: "brace"
  };
});

  function keySet(array) {
    var keys = {};
    for (var i = 0; i < array.length; ++i) {
      keys[array[i].toLowerCase()] = true;
    }
    return keys;
  }

  var documentTypes_ = [
    "domain", "regexp", "url", "url-prefix"
  ], documentTypes = keySet(documentTypes_);

  var mediaTypes_ = [
    "all", "aural", "braille", "handheld", "print", "projection", "screen",
    "tty", "tv", "embossed"
  ], mediaTypes = keySet(mediaTypes_);

  var mediaFeatures_ = [
    "width", "min-width", "max-width", "height", "min-height", "max-height",
    "device-width", "min-device-width", "max-device-width", "device-height",
    "min-device-height", "max-device-height", "aspect-ratio",
    "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio",
    "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color",
    "max-color", "color-index", "min-color-index", "max-color-index",
    "monochrome", "min-monochrome", "max-monochrome", "resolution",
    "min-resolution", "max-resolution", "scan", "grid", "orientation",
    "device-pixel-ratio", "min-device-pixel-ratio", "max-device-pixel-ratio",
    "pointer", "any-pointer", "hover", "any-hover"
  ], mediaFeatures = keySet(mediaFeatures_);

  var mediaValueKeywords_ = [
    "landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover",
    "interlace", "progressive"
  ], mediaValueKeywords = keySet(mediaValueKeywords_);

  var propertyKeywords_ = [
    "align-content", "align-items", "align-self", "alignment-adjust",
    "alignment-baseline", "anchor-point", "animation", "animation-delay",
    "animation-direction", "animation-duration", "animation-fill-mode",
    "animation-iteration-count", "animation-name", "animation-play-state",
    "animation-timing-function", "appearance", "azimuth", "backface-visibility",
    "background", "background-attachment", "background-blend-mode", "background-clip",
    "background-color", "background-image", "background-origin", "background-position",
    "background-repeat", "background-size", "baseline-shift", "binding",
    "bleed", "bookmark-label", "bookmark-level", "bookmark-state",
    "bookmark-target", "border", "border-bottom", "border-bottom-color",
    "border-bottom-left-radius", "border-bottom-right-radius",
    "border-bottom-style", "border-bottom-width", "border-collapse",
    "border-color", "border-image", "border-image-outset",
    "border-image-repeat", "border-image-slice", "border-image-source",
    "border-image-width", "border-left", "border-left-color",
    "border-left-style", "border-left-width", "border-radius", "border-right",
    "border-right-color", "border-right-style", "border-right-width",
    "border-spacing", "border-style", "border-top", "border-top-color",
    "border-top-left-radius", "border-top-right-radius", "border-top-style",
    "border-top-width", "border-width", "bottom", "box-decoration-break",
    "box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
    "caption-side", "caret-color", "clear", "clip", "color", "color-profile", "column-count",
    "column-fill", "column-gap", "column-rule", "column-rule-color",
    "column-rule-style", "column-rule-width", "column-span", "column-width",
    "columns", "content", "counter-increment", "counter-reset", "crop", "cue",
    "cue-after", "cue-before", "cursor", "direction", "display",
    "dominant-baseline", "drop-initial-after-adjust",
    "drop-initial-after-align", "drop-initial-before-adjust",
    "drop-initial-before-align", "drop-initial-size", "drop-initial-value",
    "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis",
    "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap",
    "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings",
    "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust",
    "font-stretch", "font-style", "font-synthesis", "font-variant",
    "font-variant-alternates", "font-variant-caps", "font-variant-east-asian",
    "font-variant-ligatures", "font-variant-numeric", "font-variant-position",
    "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow",
    "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-gap",
    "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-gap",
    "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns",
    "grid-template-rows", "hanging-punctuation", "height", "hyphens",
    "icon", "image-orientation", "image-rendering", "image-resolution",
    "inline-box-align", "justify-content", "justify-items", "justify-self", "left", "letter-spacing",
    "line-break", "line-height", "line-stacking", "line-stacking-ruby",
    "line-stacking-shift", "line-stacking-strategy", "list-style",
    "list-style-image", "list-style-position", "list-style-type", "margin",
    "margin-bottom", "margin-left", "margin-right", "margin-top",
    "marks", "marquee-direction", "marquee-loop",
    "marquee-play-count", "marquee-speed", "marquee-style", "max-height",
    "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index",
    "nav-left", "nav-right", "nav-up", "object-fit", "object-position",
    "opacity", "order", "orphans", "outline",
    "outline-color", "outline-offset", "outline-style", "outline-width",
    "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y",
    "padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
    "page", "page-break-after", "page-break-before", "page-break-inside",
    "page-policy", "pause", "pause-after", "pause-before", "perspective",
    "perspective-origin", "pitch", "pitch-range", "place-content", "place-items", "place-self", "play-during", "position",
    "presentation-level", "punctuation-trim", "quotes", "region-break-after",
    "region-break-before", "region-break-inside", "region-fragment",
    "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
    "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang",
    "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin",
    "shape-outside", "size", "speak", "speak-as", "speak-header",
    "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set",
    "tab-size", "table-layout", "target", "target-name", "target-new",
    "target-position", "text-align", "text-align-last", "text-decoration",
    "text-decoration-color", "text-decoration-line", "text-decoration-skip",
    "text-decoration-style", "text-emphasis", "text-emphasis-color",
    "text-emphasis-position", "text-emphasis-style", "text-height",
    "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow",
    "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position",
    "text-wrap", "top", "transform", "transform-origin", "transform-style",
    "transition", "transition-delay", "transition-duration",
    "transition-property", "transition-timing-function", "unicode-bidi",
    "user-select", "vertical-align", "visibility", "voice-balance", "voice-duration",
    "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress",
    "voice-volume", "volume", "white-space", "widows", "width", "will-change", "word-break",
    "word-spacing", "word-wrap", "z-index",
    // SVG-specific
    "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color",
    "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events",
    "color-interpolation", "color-interpolation-filters",
    "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering",
    "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke",
    "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin",
    "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering",
    "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal",
    "glyph-orientation-vertical", "text-anchor", "writing-mode"
  ], propertyKeywords = keySet(propertyKeywords_);

  var nonStandardPropertyKeywords_ = [
    "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color",
    "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color",
    "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside",
    "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button",
    "searchfield-results-decoration", "zoom"
  ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);

  var fontProperties_ = [
    "font-family", "src", "unicode-range", "font-variant", "font-feature-settings",
    "font-stretch", "font-weight", "font-style"
  ], fontProperties = keySet(fontProperties_);

  var counterDescriptors_ = [
    "additive-symbols", "fallback", "negative", "pad", "prefix", "range",
    "speak-as", "suffix", "symbols", "system"
  ], counterDescriptors = keySet(counterDescriptors_);

  var colorKeywords_ = [
    "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige",
    "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown",
    "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue",
    "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod",
    "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen",
    "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen",
    "darkslateblue", "darkslategray", "darkturquoise", "darkviolet",
    "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick",
    "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite",
    "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew",
    "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender",
    "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral",
    "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink",
    "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray",
    "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta",
    "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple",
    "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise",
    "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin",
    "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered",
    "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred",
    "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue",
    "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown",
    "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue",
    "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan",
    "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white",
    "whitesmoke", "yellow", "yellowgreen"
  ], colorKeywords = keySet(colorKeywords_);

  var valueKeywords_ = [
    "above", "absolute", "activeborder", "additive", "activecaption", "afar",
    "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate",
    "always", "amharic", "amharic-abegede", "antialiased", "appworkspace",
    "arabic-indic", "armenian", "asterisks", "attr", "auto", "auto-flow", "avoid", "avoid-column", "avoid-page",
    "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary",
    "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box",
    "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel",
    "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "calc", "cambodian",
    "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret",
    "cell", "center", "checkbox", "circle", "cjk-decimal", "cjk-earthly-branch",
    "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote",
    "col-resize", "collapse", "color", "color-burn", "color-dodge", "column", "column-reverse",
    "compact", "condensed", "contain", "content", "contents",
    "content-box", "context-menu", "continuous", "copy", "counter", "counters", "cover", "crop",
    "cross", "crosshair", "currentcolor", "cursive", "cyclic", "darken", "dashed", "decimal",
    "decimal-leading-zero", "default", "default-button", "dense", "destination-atop",
    "destination-in", "destination-out", "destination-over", "devanagari", "difference",
    "disc", "discard", "disclosure-closed", "disclosure-open", "document",
    "dot-dash", "dot-dot-dash",
    "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out",
    "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede",
    "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er",
    "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er",
    "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et",
    "ethiopic-halehame-gez", "ethiopic-halehame-om-et",
    "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et",
    "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig",
    "ethiopic-numeric", "ew-resize", "exclusion", "expanded", "extends", "extra-condensed",
    "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "flex", "flex-end", "flex-start", "footnotes",
    "forwards", "from", "geometricPrecision", "georgian", "graytext", "grid", "groove",
    "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hard-light", "hebrew",
    "help", "hidden", "hide", "higher", "highlight", "highlighttext",
    "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "hue", "icon", "ignore",
    "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite",
    "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis",
    "inline-block", "inline-flex", "inline-grid", "inline-table", "inset", "inside", "intrinsic", "invert",
    "italic", "japanese-formal", "japanese-informal", "justify", "kannada",
    "katakana", "katakana-iroha", "keep-all", "khmer",
    "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal",
    "landscape", "lao", "large", "larger", "left", "level", "lighter", "lighten",
    "line-through", "linear", "linear-gradient", "lines", "list-item", "listbox", "listitem",
    "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian",
    "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian",
    "lower-roman", "lowercase", "ltr", "luminosity", "malayalam", "match", "matrix", "matrix3d",
    "media-controls-background", "media-current-time-display",
    "media-fullscreen-button", "media-mute-button", "media-play-button",
    "media-return-to-realtime-button", "media-rewind-button",
    "media-seek-back-button", "media-seek-forward-button", "media-slider",
    "media-sliderthumb", "media-time-remaining-display", "media-volume-slider",
    "media-volume-slider-container", "media-volume-sliderthumb", "medium",
    "menu", "menulist", "menulist-button", "menulist-text",
    "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic",
    "mix", "mongolian", "monospace", "move", "multiple", "multiply", "myanmar", "n-resize",
    "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop",
    "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap",
    "ns-resize", "numbers", "numeric", "nw-resize", "nwse-resize", "oblique", "octal", "opacity", "open-quote",
    "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset",
    "outside", "outside-shape", "overlay", "overline", "padding", "padding-box",
    "painted", "page", "paused", "persian", "perspective", "plus-darker", "plus-lighter",
    "pointer", "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d",
    "progress", "push-button", "radial-gradient", "radio", "read-only",
    "read-write", "read-write-plaintext-only", "rectangle", "region",
    "relative", "repeat", "repeating-linear-gradient",
    "repeating-radial-gradient", "repeat-x", "repeat-y", "reset", "reverse",
    "rgb", "rgba", "ridge", "right", "rotate", "rotate3d", "rotateX", "rotateY",
    "rotateZ", "round", "row", "row-resize", "row-reverse", "rtl", "run-in", "running",
    "s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen",
    "scroll", "scrollbar", "scroll-position", "se-resize", "searchfield",
    "searchfield-cancel-button", "searchfield-decoration",
    "searchfield-results-button", "searchfield-results-decoration", "self-start", "self-end",
    "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
    "simp-chinese-formal", "simp-chinese-informal", "single",
    "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
    "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
    "small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali",
    "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "space-evenly", "spell-out", "square",
    "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
    "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "system-ui", "table",
    "table-caption", "table-cell", "table-column", "table-column-group",
    "table-footer-group", "table-header-group", "table-row", "table-row-group",
    "tamil",
    "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai",
    "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight",
    "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er",
    "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top",
    "trad-chinese-formal", "trad-chinese-informal", "transform",
    "translate", "translate3d", "translateX", "translateY", "translateZ",
    "transparent", "ultra-condensed", "ultra-expanded", "underline", "unset", "up",
    "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal",
    "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url",
    "var", "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted",
    "visibleStroke", "visual", "w-resize", "wait", "wave", "wider",
    "window", "windowframe", "windowtext", "words", "wrap", "wrap-reverse", "x-large", "x-small", "xor",
    "xx-large", "xx-small"
  ], valueKeywords = keySet(valueKeywords_);

  var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)
    .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)
    .concat(valueKeywords_);
  CodeMirror.registerHelper("hintWords", "css", allWords);

  function tokenCComment(stream, state) {
    var maybeEnd = false, ch;
    while ((ch = stream.next()) != null) {
      if (maybeEnd && ch == "/") {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return ["comment", "comment"];
  }

  CodeMirror.defineMIME("text/css", {
    documentTypes: documentTypes,
    mediaTypes: mediaTypes,
    mediaFeatures: mediaFeatures,
    mediaValueKeywords: mediaValueKeywords,
    propertyKeywords: propertyKeywords,
    nonStandardPropertyKeywords: nonStandardPropertyKeywords,
    fontProperties: fontProperties,
    counterDescriptors: counterDescriptors,
    colorKeywords: colorKeywords,
    valueKeywords: valueKeywords,
    tokenHooks: {
      "/": function(stream, state) {
        if (!stream.eat("*")) return false;
        state.tokenize = tokenCComment;
        return tokenCComment(stream, state);
      }
    },
    name: "css"
  });

  CodeMirror.defineMIME("text/x-scss", {
    mediaTypes: mediaTypes,
    mediaFeatures: mediaFeatures,
    mediaValueKeywords: mediaValueKeywords,
    propertyKeywords: propertyKeywords,
    nonStandardPropertyKeywords: nonStandardPropertyKeywords,
    colorKeywords: colorKeywords,
    valueKeywords: valueKeywords,
    fontProperties: fontProperties,
    allowNested: true,
    lineComment: "//",
    tokenHooks: {
      "/": function(stream, state) {
        if (stream.eat("/")) {
          stream.skipToEnd();
          return ["comment", "comment"];
        } else if (stream.eat("*")) {
          state.tokenize = tokenCComment;
          return tokenCComment(stream, state);
        } else {
          return ["operator", "operator"];
        }
      },
      ":": function(stream) {
        if (stream.match(/\s*\{/, false))
          return [null, null]
        return false;
      },
      "$": function(stream) {
        stream.match(/^[\w-]+/);
        if (stream.match(/^\s*:/, false))
          return ["variable-2", "variable-definition"];
        return ["variable-2", "variable"];
      },
      "#": function(stream) {
        if (!stream.eat("{")) return false;
        return [null, "interpolation"];
      }
    },
    name: "css",
    helperType: "scss"
  });

  CodeMirror.defineMIME("text/x-less", {
    mediaTypes: mediaTypes,
    mediaFeatures: mediaFeatures,
    mediaValueKeywords: mediaValueKeywords,
    propertyKeywords: propertyKeywords,
    nonStandardPropertyKeywords: nonStandardPropertyKeywords,
    colorKeywords: colorKeywords,
    valueKeywords: valueKeywords,
    fontProperties: fontProperties,
    allowNested: true,
    lineComment: "//",
    tokenHooks: {
      "/": function(stream, state) {
        if (stream.eat("/")) {
          stream.skipToEnd();
          return ["comment", "comment"];
        } else if (stream.eat("*")) {
          state.tokenize = tokenCComment;
          return tokenCComment(stream, state);
        } else {
          return ["operator", "operator"];
        }
      },
      "@": function(stream) {
        if (stream.eat("{")) return [null, "interpolation"];
        if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i, false)) return false;
        stream.eatWhile(/[\w\\\-]/);
        if (stream.match(/^\s*:/, false))
          return ["variable-2", "variable-definition"];
        return ["variable-2", "variable"];
      },
      "&": function() {
        return ["atom", "atom"];
      }
    },
    name: "css",
    helperType: "less"
  });

  CodeMirror.defineMIME("text/x-gss", {
    documentTypes: documentTypes,
    mediaTypes: mediaTypes,
    mediaFeatures: mediaFeatures,
    propertyKeywords: propertyKeywords,
    nonStandardPropertyKeywords: nonStandardPropertyKeywords,
    fontProperties: fontProperties,
    counterDescriptors: counterDescriptors,
    colorKeywords: colorKeywords,
    valueKeywords: valueKeywords,
    supportsAtComponent: true,
    tokenHooks: {
      "/": function(stream, state) {
        if (!stream.eat("*")) return false;
        state.tokenize = tokenCComment;
        return tokenCComment(stream, state);
      }
    },
    name: "css",
    helperType: "gss"
  });

});
editors/codemirror/mode/protobuf/protobuf.min.js000064400000002271152177723720016145 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b","i")}function c(a){if(a.eatSpace())return null;if(a.match("//"))return a.skipToEnd(),"comment";if(a.match(/^[0-9\.+-]/,!1)){if(a.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(a.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(a.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return a.match(/^"([^"]|(""))*"/)?"string":a.match(/^'([^']|(''))*'/)?"string":a.match(e)?"keyword":a.match(f)?"variable":(a.next(),null)}var d=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],e=b(d);a.registerHelper("hintWords","protobuf",d);var f=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");a.defineMode("protobuf",(function(){return{token:c}})),a.defineMIME("text/x-protobuf","protobuf")}));editors/codemirror/mode/protobuf/protobuf.js000064400000004155152177723720015366 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
  };

  var keywordArray = [
    "package", "message", "import", "syntax",
    "required", "optional", "repeated", "reserved", "default", "extensions", "packed",
    "bool", "bytes", "double", "enum", "float", "string",
    "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64",
    "option", "service", "rpc", "returns"
  ];
  var keywords = wordRegexp(keywordArray);

  CodeMirror.registerHelper("hintWords", "protobuf", keywordArray);

  var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");

  function tokenBase(stream) {
    // whitespaces
    if (stream.eatSpace()) return null;

    // Handle one line Comments
    if (stream.match("//")) {
      stream.skipToEnd();
      return "comment";
    }

    // Handle Number Literals
    if (stream.match(/^[0-9\.+-]/, false)) {
      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))
        return "number";
      if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))
        return "number";
      if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))
        return "number";
    }

    // Handle Strings
    if (stream.match(/^"([^"]|(""))*"/)) { return "string"; }
    if (stream.match(/^'([^']|(''))*'/)) { return "string"; }

    // Handle words
    if (stream.match(keywords)) { return "keyword"; }
    if (stream.match(identifiers)) { return "variable"; } ;

    // Handle non-detected items
    stream.next();
    return null;
  };

  CodeMirror.defineMode("protobuf", function() {
    return {token: tokenBase};
  });

  CodeMirror.defineMIME("text/x-protobuf", "protobuf");
});
editors/codemirror/mode/ruby/ruby.min.js000064400000012273152177723720014412 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("ruby",(function(a){function b(a){for(var b={},c=0,d=a.length;c<d;++c)b[a[c]]=!0;return b}function c(a,b,c){return c.tokenize.push(a),a(b,c)}function d(a,b){if(a.sol()&&a.match("=begin")&&a.eol())return b.tokenize.push(j),"comment";if(a.eatSpace())return null;var d,f=a.next();if("`"==f||"'"==f||'"'==f)return c(h(f,"string",'"'==f||"`"==f),a,b);if("/"==f)return e(a)?c(h(f,"string-2",!0),a,b):"operator";if("%"==f){var g="string",l=!0;a.eat("s")?g="atom":a.eat(/[WQ]/)?g="string":a.eat(/[r]/)?g="string-2":a.eat(/[wxq]/)&&(g="string",l=!1);var m=a.eat(/[^\w\s=]/);return m?(o.propertyIsEnumerable(m)&&(m=o[m]),c(h(m,g,l,!0),a,b)):"operator"}if("#"==f)return a.skipToEnd(),"comment";if("<"==f&&(d=a.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return c(i(d[1]),a,b);if("0"==f)return a.eat("x")?a.eatWhile(/[\da-fA-F]/):a.eat("b")?a.eatWhile(/[01]/):a.eatWhile(/[0-7]/),"number";if(/\d/.test(f))return a.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if("?"==f){for(;a.match(/^\\[CM]-/););return a.eat("\\")?a.eatWhile(/\w/):a.next(),"string"}if(":"==f)return a.eat("'")?c(h("'","atom",!1),a,b):a.eat('"')?c(h('"',"atom",!0),a,b):a.eat(/[\<\>]/)?(a.eat(/[\<\>]/),"atom"):a.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":a.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(a.eatWhile(/[\w$\xa1-\uffff]/),a.eat(/[\?\!\=]/),"atom"):"operator";if("@"==f&&a.match(/^@?[a-zA-Z_\xa1-\uffff]/))return a.eat("@"),a.eatWhile(/[\w\xa1-\uffff]/),"variable-2";if("$"==f)return a.eat(/[a-zA-Z_]/)?a.eatWhile(/[\w]/):a.eat(/\d/)?a.eat(/\d/):a.next(),"variable-3";if(/[a-zA-Z_\xa1-\uffff]/.test(f))return a.eatWhile(/[\w\xa1-\uffff]/),a.eat(/[\?\!]/),a.eat(":")?"atom":"ident";if("|"!=f||!b.varList&&"{"!=b.lastTok&&"do"!=b.lastTok){if(/[\(\)\[\]{}\\;]/.test(f))return k=f,null;if("-"==f&&a.eat(">"))return"arrow";if(/[=+\-\/*:\.^%<>~|]/.test(f)){var n=a.eatWhile(/[=+\-\/*:\.^%<>~|]/);return"."!=f||n||(k="."),"operator"}return null}return k="|",null}function e(a){for(var b,c=a.pos,d=0,e=!1,f=!1;null!=(b=a.next());)if(f)f=!1;else{if("[{(".indexOf(b)>-1)d++;else if("]})".indexOf(b)>-1){if(d--,d<0)break}else if("/"==b&&0==d){e=!0;break}f="\\"==b}return a.backUp(a.pos-c),e}function f(a){return a||(a=1),function(b,c){if("}"==b.peek()){if(1==a)return c.tokenize.pop(),c.tokenize[c.tokenize.length-1](b,c);c.tokenize[c.tokenize.length-1]=f(a-1)}else"{"==b.peek()&&(c.tokenize[c.tokenize.length-1]=f(a+1));return d(b,c)}}function g(){var a=!1;return function(b,c){return a?(c.tokenize.pop(),c.tokenize[c.tokenize.length-1](b,c)):(a=!0,d(b,c))}}function h(a,b,c,d){return function(e,h){var i,j=!1;for("read-quoted-paused"===h.context.type&&(h.context=h.context.prev,e.eat("}"));null!=(i=e.next());){if(i==a&&(d||!j)){h.tokenize.pop();break}if(c&&"#"==i&&!j){if(e.eat("{")){"}"==a&&(h.context={prev:h.context,type:"read-quoted-paused"}),h.tokenize.push(f());break}if(/[@\$]/.test(e.peek())){h.tokenize.push(g());break}}j=!j&&"\\"==i}return b}}function i(a){return function(b,c){return b.match(a)?c.tokenize.pop():b.skipToEnd(),"string"}}function j(a,b){return a.sol()&&a.match("=end")&&a.eol()&&b.tokenize.pop(),a.skipToEnd(),"comment"}var k,l=b(["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"]),m=b(["def","class","case","for","while","until","module","then","catch","loop","proc","begin"]),n=b(["end","until"]),o={"[":"]","{":"}","(":")"};return{startState:function(){return{tokenize:[d],indented:0,context:{type:"top",indented:-a.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(a,b){k=null,a.sol()&&(b.indented=a.indentation());var c,d=b.tokenize[b.tokenize.length-1](a,b),e=k;if("ident"==d){var f=a.current();d="."==b.lastTok?"property":l.propertyIsEnumerable(a.current())?"keyword":/^[A-Z]/.test(f)?"tag":"def"==b.lastTok||"class"==b.lastTok||b.varList?"def":"variable","keyword"==d&&(e=f,m.propertyIsEnumerable(f)?c="indent":n.propertyIsEnumerable(f)?c="dedent":"if"!=f&&"unless"!=f||a.column()!=a.indentation()?"do"==f&&b.context.indented<b.indented&&(c="indent"):c="indent")}return(k||d&&"comment"!=d)&&(b.lastTok=e),"|"==k&&(b.varList=!b.varList),"indent"==c||/[\(\[\{]/.test(k)?b.context={prev:b.context,type:k||d,indented:b.indented}:("dedent"==c||/[\)\]\}]/.test(k))&&b.context.prev&&(b.context=b.context.prev),a.eol()&&(b.continuedLine="\\"==k||"operator"==d),d},indent:function(b,c){if(b.tokenize[b.tokenize.length-1]!=d)return 0;var e=c&&c.charAt(0),f=b.context,g=f.type==o[e]||"keyword"==f.type&&/^(?:end|until|else|elsif|when|rescue)\b/.test(c);return f.indented+(g?0:a.indentUnit)+(b.continuedLine?a.indentUnit:0)},electricInput:/^\s*(?:end|rescue|elsif|else|\})$/,lineComment:"#",fold:"indent"}})),a.defineMIME("text/x-ruby","ruby")}));editors/codemirror/mode/ruby/ruby.js000064400000024451152177723720013631 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("ruby", function(config) {
  function wordObj(words) {
    var o = {};
    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;
    return o;
  }
  var keywords = wordObj([
    "alias", "and", "BEGIN", "begin", "break", "case", "class", "def", "defined?", "do", "else",
    "elsif", "END", "end", "ensure", "false", "for", "if", "in", "module", "next", "not", "or",
    "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless",
    "until", "when", "while", "yield", "nil", "raise", "throw", "catch", "fail", "loop", "callcc",
    "caller", "lambda", "proc", "public", "protected", "private", "require", "load",
    "require_relative", "extend", "autoload", "__END__", "__FILE__", "__LINE__", "__dir__"
  ]);
  var indentWords = wordObj(["def", "class", "case", "for", "while", "until", "module", "then",
                             "catch", "loop", "proc", "begin"]);
  var dedentWords = wordObj(["end", "until"]);
  var matching = {"[": "]", "{": "}", "(": ")"};
  var curPunc;

  function chain(newtok, stream, state) {
    state.tokenize.push(newtok);
    return newtok(stream, state);
  }

  function tokenBase(stream, state) {
    if (stream.sol() && stream.match("=begin") && stream.eol()) {
      state.tokenize.push(readBlockComment);
      return "comment";
    }
    if (stream.eatSpace()) return null;
    var ch = stream.next(), m;
    if (ch == "`" || ch == "'" || ch == '"') {
      return chain(readQuoted(ch, "string", ch == '"' || ch == "`"), stream, state);
    } else if (ch == "/") {
      if (regexpAhead(stream))
        return chain(readQuoted(ch, "string-2", true), stream, state);
      else
        return "operator";
    } else if (ch == "%") {
      var style = "string", embed = true;
      if (stream.eat("s")) style = "atom";
      else if (stream.eat(/[WQ]/)) style = "string";
      else if (stream.eat(/[r]/)) style = "string-2";
      else if (stream.eat(/[wxq]/)) { style = "string"; embed = false; }
      var delim = stream.eat(/[^\w\s=]/);
      if (!delim) return "operator";
      if (matching.propertyIsEnumerable(delim)) delim = matching[delim];
      return chain(readQuoted(delim, style, embed, true), stream, state);
    } else if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    } else if (ch == "<" && (m = stream.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))) {
      return chain(readHereDoc(m[1]), stream, state);
    } else if (ch == "0") {
      if (stream.eat("x")) stream.eatWhile(/[\da-fA-F]/);
      else if (stream.eat("b")) stream.eatWhile(/[01]/);
      else stream.eatWhile(/[0-7]/);
      return "number";
    } else if (/\d/.test(ch)) {
      stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/);
      return "number";
    } else if (ch == "?") {
      while (stream.match(/^\\[CM]-/)) {}
      if (stream.eat("\\")) stream.eatWhile(/\w/);
      else stream.next();
      return "string";
    } else if (ch == ":") {
      if (stream.eat("'")) return chain(readQuoted("'", "atom", false), stream, state);
      if (stream.eat('"')) return chain(readQuoted('"', "atom", true), stream, state);

      // :> :>> :< :<< are valid symbols
      if (stream.eat(/[\<\>]/)) {
        stream.eat(/[\<\>]/);
        return "atom";
      }

      // :+ :- :/ :* :| :& :! are valid symbols
      if (stream.eat(/[\+\-\*\/\&\|\:\!]/)) {
        return "atom";
      }

      // Symbols can't start by a digit
      if (stream.eat(/[a-zA-Z$@_\xa1-\uffff]/)) {
        stream.eatWhile(/[\w$\xa1-\uffff]/);
        // Only one ? ! = is allowed and only as the last character
        stream.eat(/[\?\!\=]/);
        return "atom";
      }
      return "operator";
    } else if (ch == "@" && stream.match(/^@?[a-zA-Z_\xa1-\uffff]/)) {
      stream.eat("@");
      stream.eatWhile(/[\w\xa1-\uffff]/);
      return "variable-2";
    } else if (ch == "$") {
      if (stream.eat(/[a-zA-Z_]/)) {
        stream.eatWhile(/[\w]/);
      } else if (stream.eat(/\d/)) {
        stream.eat(/\d/);
      } else {
        stream.next(); // Must be a special global like $: or $!
      }
      return "variable-3";
    } else if (/[a-zA-Z_\xa1-\uffff]/.test(ch)) {
      stream.eatWhile(/[\w\xa1-\uffff]/);
      stream.eat(/[\?\!]/);
      if (stream.eat(":")) return "atom";
      return "ident";
    } else if (ch == "|" && (state.varList || state.lastTok == "{" || state.lastTok == "do")) {
      curPunc = "|";
      return null;
    } else if (/[\(\)\[\]{}\\;]/.test(ch)) {
      curPunc = ch;
      return null;
    } else if (ch == "-" && stream.eat(">")) {
      return "arrow";
    } else if (/[=+\-\/*:\.^%<>~|]/.test(ch)) {
      var more = stream.eatWhile(/[=+\-\/*:\.^%<>~|]/);
      if (ch == "." && !more) curPunc = ".";
      return "operator";
    } else {
      return null;
    }
  }

  function regexpAhead(stream) {
    var start = stream.pos, depth = 0, next, found = false, escaped = false
    while ((next = stream.next()) != null) {
      if (!escaped) {
        if ("[{(".indexOf(next) > -1) {
          depth++
        } else if ("]})".indexOf(next) > -1) {
          depth--
          if (depth < 0) break
        } else if (next == "/" && depth == 0) {
          found = true
          break
        }
        escaped = next == "\\"
      } else {
        escaped = false
      }
    }
    stream.backUp(stream.pos - start)
    return found
  }

  function tokenBaseUntilBrace(depth) {
    if (!depth) depth = 1;
    return function(stream, state) {
      if (stream.peek() == "}") {
        if (depth == 1) {
          state.tokenize.pop();
          return state.tokenize[state.tokenize.length-1](stream, state);
        } else {
          state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1);
        }
      } else if (stream.peek() == "{") {
        state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1);
      }
      return tokenBase(stream, state);
    };
  }
  function tokenBaseOnce() {
    var alreadyCalled = false;
    return function(stream, state) {
      if (alreadyCalled) {
        state.tokenize.pop();
        return state.tokenize[state.tokenize.length-1](stream, state);
      }
      alreadyCalled = true;
      return tokenBase(stream, state);
    };
  }
  function readQuoted(quote, style, embed, unescaped) {
    return function(stream, state) {
      var escaped = false, ch;

      if (state.context.type === 'read-quoted-paused') {
        state.context = state.context.prev;
        stream.eat("}");
      }

      while ((ch = stream.next()) != null) {
        if (ch == quote && (unescaped || !escaped)) {
          state.tokenize.pop();
          break;
        }
        if (embed && ch == "#" && !escaped) {
          if (stream.eat("{")) {
            if (quote == "}") {
              state.context = {prev: state.context, type: 'read-quoted-paused'};
            }
            state.tokenize.push(tokenBaseUntilBrace());
            break;
          } else if (/[@\$]/.test(stream.peek())) {
            state.tokenize.push(tokenBaseOnce());
            break;
          }
        }
        escaped = !escaped && ch == "\\";
      }
      return style;
    };
  }
  function readHereDoc(phrase) {
    return function(stream, state) {
      if (stream.match(phrase)) state.tokenize.pop();
      else stream.skipToEnd();
      return "string";
    };
  }
  function readBlockComment(stream, state) {
    if (stream.sol() && stream.match("=end") && stream.eol())
      state.tokenize.pop();
    stream.skipToEnd();
    return "comment";
  }

  return {
    startState: function() {
      return {tokenize: [tokenBase],
              indented: 0,
              context: {type: "top", indented: -config.indentUnit},
              continuedLine: false,
              lastTok: null,
              varList: false};
    },

    token: function(stream, state) {
      curPunc = null;
      if (stream.sol()) state.indented = stream.indentation();
      var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype;
      var thisTok = curPunc;
      if (style == "ident") {
        var word = stream.current();
        style = state.lastTok == "." ? "property"
          : keywords.propertyIsEnumerable(stream.current()) ? "keyword"
          : /^[A-Z]/.test(word) ? "tag"
          : (state.lastTok == "def" || state.lastTok == "class" || state.varList) ? "def"
          : "variable";
        if (style == "keyword") {
          thisTok = word;
          if (indentWords.propertyIsEnumerable(word)) kwtype = "indent";
          else if (dedentWords.propertyIsEnumerable(word)) kwtype = "dedent";
          else if ((word == "if" || word == "unless") && stream.column() == stream.indentation())
            kwtype = "indent";
          else if (word == "do" && state.context.indented < state.indented)
            kwtype = "indent";
        }
      }
      if (curPunc || (style && style != "comment")) state.lastTok = thisTok;
      if (curPunc == "|") state.varList = !state.varList;

      if (kwtype == "indent" || /[\(\[\{]/.test(curPunc))
        state.context = {prev: state.context, type: curPunc || style, indented: state.indented};
      else if ((kwtype == "dedent" || /[\)\]\}]/.test(curPunc)) && state.context.prev)
        state.context = state.context.prev;

      if (stream.eol())
        state.continuedLine = (curPunc == "\\" || style == "operator");
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0;
      var firstChar = textAfter && textAfter.charAt(0);
      var ct = state.context;
      var closing = ct.type == matching[firstChar] ||
        ct.type == "keyword" && /^(?:end|until|else|elsif|when|rescue)\b/.test(textAfter);
      return ct.indented + (closing ? 0 : config.indentUnit) +
        (state.continuedLine ? config.indentUnit : 0);
    },

    electricInput: /^\s*(?:end|rescue|elsif|else|\})$/,
    lineComment: "#",
    fold: "indent"
  };
});

CodeMirror.defineMIME("text/x-ruby", "ruby");

});
editors/codemirror/mode/z80/z80.js000064400000006772152177723720012737 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
  mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
  define(["../../lib/codemirror"], mod);
  else // Plain browser env
  mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('z80', function(_config, parserConfig) {
  var ez80 = parserConfig.ez80;
  var keywords1, keywords2;
  if (ez80) {
    keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i;
    keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i;
  } else {
    keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i;
    keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i;
  }

  var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i;
  var variables2 = /^(n?[zc]|p[oe]?|m)\b/i;
  var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i;
  var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;

  return {
    startState: function() {
      return {
        context: 0
      };
    },
    token: function(stream, state) {
      if (!stream.column())
        state.context = 0;

      if (stream.eatSpace())
        return null;

      var w;

      if (stream.eatWhile(/\w/)) {
        if (ez80 && stream.eat('.')) {
          stream.eatWhile(/\w/);
        }
        w = stream.current();

        if (stream.indentation()) {
          if ((state.context == 1 || state.context == 4) && variables1.test(w)) {
            state.context = 4;
            return 'var2';
          }

          if (state.context == 2 && variables2.test(w)) {
            state.context = 4;
            return 'var3';
          }

          if (keywords1.test(w)) {
            state.context = 1;
            return 'keyword';
          } else if (keywords2.test(w)) {
            state.context = 2;
            return 'keyword';
          } else if (state.context == 4 && numbers.test(w)) {
            return 'number';
          }

          if (errors.test(w))
            return 'error';
        } else if (stream.match(numbers)) {
          return 'number';
        } else {
          return null;
        }
      } else if (stream.eat(';')) {
        stream.skipToEnd();
        return 'comment';
      } else if (stream.eat('"')) {
        while (w = stream.next()) {
          if (w == '"')
            break;

          if (w == '\\')
            stream.next();
        }
        return 'string';
      } else if (stream.eat('\'')) {
        if (stream.match(/\\?.'/))
          return 'number';
      } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {
        state.context = 5;

        if (stream.eatWhile(/\w/))
          return 'def';
      } else if (stream.eat('$')) {
        if (stream.eatWhile(/[\da-f]/i))
          return 'number';
      } else if (stream.eat('%')) {
        if (stream.eatWhile(/[01]/))
          return 'number';
      } else {
        stream.next();
      }
      return null;
    }
  };
});

CodeMirror.defineMIME("text/x-z80", "z80");
CodeMirror.defineMIME("text/x-ez80", { name: "z80", ez80: true });

});
editors/codemirror/mode/z80/z80.min.js000064400000003710152177723720013506 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("z80",(function(a,b){var c,d,e=b.ez80;e?(c=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,d=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(c=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,d=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var f=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,g=/^(n?[zc]|p[oe]?|m)\b/i,h=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,i=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{startState:function(){return{context:0}},token:function(a,b){if(a.column()||(b.context=0),a.eatSpace())return null;var j;if(a.eatWhile(/\w/)){if(e&&a.eat(".")&&a.eatWhile(/\w/),j=a.current(),!a.indentation())return a.match(i)?"number":null;if((1==b.context||4==b.context)&&f.test(j))return b.context=4,"var2";if(2==b.context&&g.test(j))return b.context=4,"var3";if(c.test(j))return b.context=1,"keyword";if(d.test(j))return b.context=2,"keyword";if(4==b.context&&i.test(j))return"number";if(h.test(j))return"error"}else{if(a.eat(";"))return a.skipToEnd(),"comment";if(a.eat('"')){for(;(j=a.next())&&'"'!=j;)"\\"==j&&a.next();return"string"}if(a.eat("'")){if(a.match(/\\?.'/))return"number"}else if(a.eat(".")||a.sol()&&a.eat("#")){if(b.context=5,a.eatWhile(/\w/))return"def"}else if(a.eat("$")){if(a.eatWhile(/[\da-f]/i))return"number"}else if(a.eat("%")){if(a.eatWhile(/[01]/))return"number"}else a.next()}return null}}})),a.defineMIME("text/x-z80","z80"),a.defineMIME("text/x-ez80",{name:"z80",ez80:!0})}));editors/codemirror/mode/troff/troff.js000064400000004531152177723720014124 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object")
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd)
    define(["../../lib/codemirror"], mod);
  else
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('troff', function() {

  var words = {};

  function tokenBase(stream) {
    if (stream.eatSpace()) return null;

    var sol = stream.sol();
    var ch = stream.next();

    if (ch === '\\') {
      if (stream.match('fB') || stream.match('fR') || stream.match('fI') ||
          stream.match('u')  || stream.match('d')  ||
          stream.match('%')  || stream.match('&')) {
        return 'string';
      }
      if (stream.match('m[')) {
        stream.skipTo(']');
        stream.next();
        return 'string';
      }
      if (stream.match('s+') || stream.match('s-')) {
        stream.eatWhile(/[\d-]/);
        return 'string';
      }
      if (stream.match('\(') || stream.match('*\(')) {
        stream.eatWhile(/[\w-]/);
        return 'string';
      }
      return 'string';
    }
    if (sol && (ch === '.' || ch === '\'')) {
      if (stream.eat('\\') && stream.eat('\"')) {
        stream.skipToEnd();
        return 'comment';
      }
    }
    if (sol && ch === '.') {
      if (stream.match('B ') || stream.match('I ') || stream.match('R ')) {
        return 'attribute';
      }
      if (stream.match('TH ') || stream.match('SH ') || stream.match('SS ') || stream.match('HP ')) {
        stream.skipToEnd();
        return 'quote';
      }
      if ((stream.match(/[A-Z]/) && stream.match(/[A-Z]/)) || (stream.match(/[a-z]/) && stream.match(/[a-z]/))) {
        return 'attribute';
      }
    }
    stream.eatWhile(/[\w-]/);
    var cur = stream.current();
    return words.hasOwnProperty(cur) ? words[cur] : null;
  }

  function tokenize(stream, state) {
    return (state.tokens[0] || tokenBase) (stream, state);
  };

  return {
    startState: function() {return {tokens:[]};},
    token: function(stream, state) {
      return tokenize(stream, state);
    }
  };
});

CodeMirror.defineMIME('text/troff', 'troff');
CodeMirror.defineMIME('text/x-troff', 'troff');
CodeMirror.defineMIME('application/x-troff', 'troff');

});
editors/codemirror/mode/troff/troff.min.js000064400000002424152177723720014705 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("troff",(function(){function a(a){if(a.eatSpace())return null;var b=a.sol(),d=a.next();if("\\"===d)return a.match("fB")||a.match("fR")||a.match("fI")||a.match("u")||a.match("d")||a.match("%")||a.match("&")?"string":a.match("m[")?(a.skipTo("]"),a.next(),"string"):a.match("s+")||a.match("s-")?(a.eatWhile(/[\d-]/),"string"):a.match("(")||a.match("*(")?(a.eatWhile(/[\w-]/),"string"):"string";if(b&&("."===d||"'"===d)&&a.eat("\\")&&a.eat('"'))return a.skipToEnd(),"comment";if(b&&"."===d){if(a.match("B ")||a.match("I ")||a.match("R "))return"attribute";if(a.match("TH ")||a.match("SH ")||a.match("SS ")||a.match("HP "))return a.skipToEnd(),"quote";if(a.match(/[A-Z]/)&&a.match(/[A-Z]/)||a.match(/[a-z]/)&&a.match(/[a-z]/))return"attribute"}a.eatWhile(/[\w-]/);var e=a.current();return c.hasOwnProperty(e)?c[e]:null}function b(b,c){return(c.tokens[0]||a)(b,c)}var c={};return{startState:function(){return{tokens:[]}},token:function(a,c){return b(a,c)}}})),a.defineMIME("text/troff","troff"),a.defineMIME("text/x-troff","troff"),a.defineMIME("application/x-troff","troff")}));editors/codemirror/mode/clojure/clojure.min.js000064400000023233152177723720015554 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("clojure",(function(a){function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b,c){this.indent=a,this.type=b,this.prev=c}function d(a,b,d){a.indentStack=new c(b,d,a.indentStack)}function e(a){a.indentStack=a.indentStack.prev}function f(a,b){return"0"===a&&b.eat(/x/i)?(b.eatWhile(w.hex),!0):("+"!=a&&"-"!=a||!w.digit.test(b.peek())||(b.eat(w.sign),a=b.next()),!!w.digit.test(a)&&(b.eat(a),b.eatWhile(w.digit),"."==b.peek()?(b.eat("."),b.eatWhile(w.digit)):"/"==b.peek()&&(b.eat("/"),b.eatWhile(w.digit)),b.eat(w.exponent)&&(b.eat(w.sign),b.eatWhile(w.digit)),!0))}function g(a){var b=a.next();b&&b.match(/[a-z]/)&&a.match(/[a-z]+/,!0)||"u"===b&&a.match(/[0-9a-z]{4}/i,!0)}var h="builtin",i="comment",j="string",k="string-2",l="atom",m="number",n="bracket",o="keyword",p="variable",q=a.indentUnit||2,r=a.indentUnit||2,s=b("true false nil"),t=b("defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle"),u=b("* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *default-data-reader-fn* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-namespace-maps* *print-readably* *read-eval* *reader-resolver* *source-path* *suppress-read* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Eduction ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE Inst StackTraceElement->vec Throwable->map accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and any? apply areduce array-map as-> aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array boolean? booleans bound-fn bound-fn* bound? bounded-count butlast byte byte-array bytes bytes? case cast cat char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement completing concat cond cond-> cond->> condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare dedupe default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array double? doubles drop drop-last drop-while eduction empty empty? ensure ensure-reduced enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by halt-when hash hash-combine hash-map hash-ordered-coll hash-set hash-unordered-coll ident? identical? identity if-let if-not if-some ifn? import in-ns inc inc' indexed? init-proxy inst-ms inst-ms* inst? instance? int int-array int? integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-entry? map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mix-collection-hash mod munge name namespace namespace-munge nat-int? neg-int? neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos-int? pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues qualified-ident? qualified-keyword? qualified-symbol? quot rand rand-int rand-nth random-sample range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reader-conditional reader-conditional? realized? record? reduce reduce-kv reduced reduced? reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! reset-vals! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq run! satisfies? second select-keys send send-off send-via seq seq? seqable? seque sequence sequential? set set-agent-send-executor! set-agent-send-off-executor! set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents simple-ident? simple-keyword? simple-symbol? slurp some some-> some->> some-fn some? sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! swap-vals! symbol symbol? sync tagged-literal tagged-literal? take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transduce transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing unreduced unsigned-bit-shift-right update update-in update-proxy uri? use uuid? val vals var-get var-set var? vary-meta vec vector vector-of vector? volatile! volatile? vreset! vswap! when when-first when-let when-not when-some while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap"),v=b("ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch let letfn binding loop for doseq dotimes when-let if-let defstruct struct-map assoc testing deftest handler-case handle dotrace deftrace"),w={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+!\-\._?:<>\/\xa1-\uffff]/,block_indent:/^(?:def|with)[^\/]+$|\/(?:def|with)/};return{startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(a,b){if(null==b.indentStack&&a.sol()&&(b.indentation=a.indentation()),"string"!=b.mode&&a.eatSpace())return null;var c=null;switch(b.mode){case"string":for(var x,y=!1;null!=(x=a.next());){if('"'==x&&!y){b.mode=!1;break}y=!y&&"\\"==x}c=j;break;default:var z=a.next();if('"'==z)b.mode="string",c=j;else if("\\"==z)g(a),c=k;else if("'"!=z||w.digit_or_colon.test(a.peek()))if(";"==z)a.skipToEnd(),c=i;else if(f(z,a))c=m;else if("("==z||"["==z||"{"==z){var A,B="",C=a.column();if("("==z)for(;null!=(A=a.eat(w.keyword_char));)B+=A;B.length>0&&(v.propertyIsEnumerable(B)||w.block_indent.test(B))?d(b,C+q,z):(a.eatSpace(),a.eol()||";"==a.peek()?d(b,C+r,z):d(b,C+a.current().length,z)),a.backUp(a.current().length-1),c=n}else if(")"==z||"]"==z||"}"==z)c=n,null!=b.indentStack&&b.indentStack.type==(")"==z?"(":"]"==z?"[":"{")&&e(b);else{if(":"==z)return a.eatWhile(w.symbol),l;a.eatWhile(w.symbol),c=t&&t.propertyIsEnumerable(a.current())?o:u&&u.propertyIsEnumerable(a.current())?h:s&&s.propertyIsEnumerable(a.current())?l:p}else c=l}return c},indent:function(a){return null==a.indentStack?a.indentation:a.indentStack.indent},closeBrackets:{pairs:'()[]{}""'},lineComment:";;"}})),a.defineMIME("text/x-clojure","clojure"),a.defineMIME("text/x-clojurescript","clojure"),a.defineMIME("application/edn","clojure")}));editors/codemirror/mode/clojure/clojure.js000064400000040310152177723720014765 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Author: Hans Engel
 * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun)
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("clojure", function (options) {
    var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", CHARACTER = "string-2",
        ATOM = "atom", NUMBER = "number", BRACKET = "bracket", KEYWORD = "keyword", VAR = "variable";
    var INDENT_WORD_SKIP = options.indentUnit || 2;
    var NORMAL_INDENT_UNIT = options.indentUnit || 2;

    function makeKeywords(str) {
        var obj = {}, words = str.split(" ");
        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
        return obj;
    }

    var atoms = makeKeywords("true false nil");

    var keywords = makeKeywords(
      "defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest " +
      "slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn " +
      "do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync " +
      "doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars " +
      "binding gen-class gen-and-load-class gen-and-save-class handler-case handle");

    var builtins = makeKeywords(
        "* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* " +
        "*compile-path* *compiler-options* *data-readers* *default-data-reader-fn* *e *err* *file* *flush-on-newline* *fn-loader* *in* " +
        "*math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-namespace-maps* *print-readably* *read-eval* *reader-resolver* " +
        "*source-path* *suppress-read* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> " +
        "->> ->ArrayChunk ->Eduction ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE Inst StackTraceElement->vec Throwable->map accessor " +
        "aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! " +
        "alter-var-root amap ancestors and any? apply areduce array-map as-> aset aset-boolean aset-byte aset-char aset-double " +
        "aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 " +
        "bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set " +
        "bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array boolean? booleans bound-fn bound-fn* bound? bounded-count butlast " +
        "byte byte-array bytes bytes? case cast cat char char-array char-escape-string char-name-string char? chars chunk chunk-append " +
        "chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors " +
        "clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement completing concat cond cond-> cond->> condp " +
        "conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? " +
        "declare dedupe default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol " +
        "defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc " +
        "dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array double? doubles drop drop-last " +
        "drop-while eduction empty empty? ensure ensure-reduced enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info " +
        "extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword " +
        "find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? " +
        "fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? " +
        "gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by halt-when hash " +
        "hash-combine hash-map hash-ordered-coll hash-set hash-unordered-coll ident? identical? identity if-let if-not if-some ifn? import in-ns inc inc' indexed? init-proxy inst-ms inst-ms* inst? instance? " +
        "int int-array int? integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep " +
        "keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file " +
        "load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array " +
        "make-hierarchy map map-entry? map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods " +
        "min min-key mix-collection-hash mod munge name namespace namespace-munge nat-int? neg-int? neg? newline next nfirst nil? nnext not not-any? not-empty " +
        "not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias " +
        "ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all " +
        "partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos-int? pos? pr pr-str prefer-method prefers " +
        "primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str " +
        "prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues qualified-ident? qualified-keyword? qualified-symbol? " +
        "quot rand rand-int rand-nth random-sample range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern " +
        "re-seq read read-line read-string reader-conditional reader-conditional? realized? record? reduce reduce-kv reduced reduced? reductions ref ref-history-count ref-max-history " +
        "ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods " +
        "remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! reset-vals! resolve rest " +
        "restart-agent resultset-seq reverse reversible? rseq rsubseq run! satisfies? second select-keys send send-off send-via seq seq? seqable? " +
        "seque sequence sequential? set set-agent-send-executor! set-agent-send-off-executor! set-error-handler! set-error-mode! set-validator! set? short short-array shorts " +
        "shuffle shutdown-agents simple-ident? simple-keyword? simple-symbol? slurp some some-> some->> some-fn some? sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? " +
        "special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! swap-vals! symbol " +
        "symbol? sync tagged-literal tagged-literal? take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transduce " +
        "transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec " +
        "unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int " +
        "unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int " +
        "unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote " +
        "unquote-splicing unreduced unsigned-bit-shift-right update update-in update-proxy uri? use uuid? val vals var-get var-set var? vary-meta vec vector vector-of " +
        "vector? volatile! volatile? vreset! vswap! when when-first when-let when-not when-some while with-bindings with-bindings* with-in-str with-loading-context " +
        "with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap");

    var indentKeys = makeKeywords(
        // Built-ins
        "ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto " +
        "locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type " +
        "try catch " +

        // Binding forms
        "let letfn binding loop for doseq dotimes when-let if-let " +

        // Data structures
        "defstruct struct-map assoc " +

        // clojure.test
        "testing deftest " +

        // contrib
        "handler-case handle dotrace deftrace");

    var tests = {
        digit: /\d/,
        digit_or_colon: /[\d:]/,
        hex: /[0-9a-f]/i,
        sign: /[+-]/,
        exponent: /e/i,
        keyword_char: /[^\s\(\[\;\)\]]/,
        symbol: /[\w*+!\-\._?:<>\/\xa1-\uffff]/,
        block_indent: /^(?:def|with)[^\/]+$|\/(?:def|with)/
    };

    function stateStack(indent, type, prev) { // represents a state stack object
        this.indent = indent;
        this.type = type;
        this.prev = prev;
    }

    function pushStack(state, indent, type) {
        state.indentStack = new stateStack(indent, type, state.indentStack);
    }

    function popStack(state) {
        state.indentStack = state.indentStack.prev;
    }

    function isNumber(ch, stream){
        // hex
        if ( ch === '0' && stream.eat(/x/i) ) {
            stream.eatWhile(tests.hex);
            return true;
        }

        // leading sign
        if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {
          stream.eat(tests.sign);
          ch = stream.next();
        }

        if ( tests.digit.test(ch) ) {
            stream.eat(ch);
            stream.eatWhile(tests.digit);

            if ( '.' == stream.peek() ) {
                stream.eat('.');
                stream.eatWhile(tests.digit);
            } else if ('/' == stream.peek() ) {
                stream.eat('/');
                stream.eatWhile(tests.digit);
            }

            if ( stream.eat(tests.exponent) ) {
                stream.eat(tests.sign);
                stream.eatWhile(tests.digit);
            }

            return true;
        }

        return false;
    }

    // Eat character that starts after backslash \
    function eatCharacter(stream) {
        var first = stream.next();
        // Read special literals: backspace, newline, space, return.
        // Just read all lowercase letters.
        if (first && first.match(/[a-z]/) && stream.match(/[a-z]+/, true)) {
            return;
        }
        // Read unicode character: \u1000 \uA0a1
        if (first === "u") {
            stream.match(/[0-9a-z]{4}/i, true);
        }
    }

    return {
        startState: function () {
            return {
                indentStack: null,
                indentation: 0,
                mode: false
            };
        },

        token: function (stream, state) {
            if (state.indentStack == null && stream.sol()) {
                // update indentation, but only if indentStack is empty
                state.indentation = stream.indentation();
            }

            // skip spaces
            if (state.mode != "string" && stream.eatSpace()) {
                return null;
            }
            var returnType = null;

            switch(state.mode){
                case "string": // multi-line string parsing mode
                    var next, escaped = false;
                    while ((next = stream.next()) != null) {
                        if (next == "\"" && !escaped) {

                            state.mode = false;
                            break;
                        }
                        escaped = !escaped && next == "\\";
                    }
                    returnType = STRING; // continue on in string mode
                    break;
                default: // default parsing mode
                    var ch = stream.next();

                    if (ch == "\"") {
                        state.mode = "string";
                        returnType = STRING;
                    } else if (ch == "\\") {
                        eatCharacter(stream);
                        returnType = CHARACTER;
                    } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) {
                        returnType = ATOM;
                    } else if (ch == ";") { // comment
                        stream.skipToEnd(); // rest of the line is a comment
                        returnType = COMMENT;
                    } else if (isNumber(ch,stream)){
                        returnType = NUMBER;
                    } else if (ch == "(" || ch == "[" || ch == "{" ) {
                        var keyWord = '', indentTemp = stream.column(), letter;
                        /**
                        Either
                        (indent-word ..
                        (non-indent-word ..
                        (;something else, bracket, etc.
                        */

                        if (ch == "(") while ((letter = stream.eat(tests.keyword_char)) != null) {
                            keyWord += letter;
                        }

                        if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) ||
                                                   tests.block_indent.test(keyWord))) { // indent-word
                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);
                        } else { // non-indent word
                            // we continue eating the spaces
                            stream.eatSpace();
                            if (stream.eol() || stream.peek() == ";") {
                                // nothing significant after
                                // we restart indentation the user defined spaces after
                                pushStack(state, indentTemp + NORMAL_INDENT_UNIT, ch);
                            } else {
                                pushStack(state, indentTemp + stream.current().length, ch); // else we match
                            }
                        }
                        stream.backUp(stream.current().length - 1); // undo all the eating

                        returnType = BRACKET;
                    } else if (ch == ")" || ch == "]" || ch == "}") {
                        returnType = BRACKET;
                        if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : (ch == "]" ? "[" :"{"))) {
                            popStack(state);
                        }
                    } else if ( ch == ":" ) {
                        stream.eatWhile(tests.symbol);
                        return ATOM;
                    } else {
                        stream.eatWhile(tests.symbol);

                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {
                            returnType = KEYWORD;
                        } else if (builtins && builtins.propertyIsEnumerable(stream.current())) {
                            returnType = BUILTIN;
                        } else if (atoms && atoms.propertyIsEnumerable(stream.current())) {
                            returnType = ATOM;
                        } else {
                          returnType = VAR;
                        }
                    }
            }

            return returnType;
        },

        indent: function (state) {
            if (state.indentStack == null) return state.indentation;
            return state.indentStack.indent;
        },

        closeBrackets: {pairs: "()[]{}\"\""},
        lineComment: ";;"
    };
});

CodeMirror.defineMIME("text/x-clojure", "clojure");
CodeMirror.defineMIME("text/x-clojurescript", "clojure");
CodeMirror.defineMIME("application/edn", "clojure");

});
editors/codemirror/mode/asn.1/asn.min.js000064400000010176152177723720014151 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}a.defineMode("asn.1",(function(a,b){function c(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[\[\]\(\){}:=,;]/.test(c))return h=c,"punctuation";if("-"==c&&a.eat("-"))return a.skipToEnd(),"comment";if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if(t.test(c))return a.eatWhile(t),"operator";a.eatWhile(/[\w\-]/);var e=a.current();return j.propertyIsEnumerable(e)?"keyword":k.propertyIsEnumerable(e)?"variable cmipVerbs":l.propertyIsEnumerable(e)?"atom compareTypes":m.propertyIsEnumerable(e)?"comment status":n.propertyIsEnumerable(e)?"variable-3 tags":o.propertyIsEnumerable(e)?"builtin storage":p.propertyIsEnumerable(e)?"string-2 modifier":q.propertyIsEnumerable(e)?"atom accessTypes":"variable"}function d(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){var g=b.peek();g&&(g=g.toLowerCase(),"b"!=g&&"h"!=g&&"o"!=g||b.next()),f=!0;break}e=!e&&"\\"==d}return(f||!e&&!r)&&(c.tokenize=null),"string"}}function e(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function f(a,b,c){var d=a.indented;return a.context&&"statement"==a.context.type&&(d=a.context.indented),a.context=new e(d,b,c,null,a.context)}function g(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var h,i=a.indentUnit,j=b.keywords||{},k=b.cmipVerbs||{},l=b.compareTypes||{},m=b.status||{},n=b.tags||{},o=b.storage||{},p=b.modifier||{},q=b.accessTypes||{},r=b.multiLineStrings,s=b.indentStatements!==!1,t=/[\|\^]/;return{startState:function(a){return{tokenize:null,context:new e((a||0)-i,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;h=null;var e=(b.tokenize||c)(a,b);if("comment"==e)return e;if(null==d.align&&(d.align=!0),";"!=h&&":"!=h&&","!=h||"statement"!=d.type)if("{"==h)f(b,a.column(),"}");else if("["==h)f(b,a.column(),"]");else if("("==h)f(b,a.column(),")");else if("}"==h){for(;"statement"==d.type;)d=g(b);for("}"==d.type&&(d=g(b));"statement"==d.type;)d=g(b)}else h==d.type?g(b):s&&(("}"==d.type||"top"==d.type)&&";"!=h||"statement"==d.type&&"newstatement"==h)&&f(b,a.column(),"statement");else g(b);return b.startOfLine=!1,e},electricChars:"{}",lineComment:"--",fold:"brace"}})),a.defineMIME("text/x-ttcn-asn",{name:"asn.1",keywords:b("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),cmipVerbs:b("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),compareTypes:b("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),status:b("current deprecated mandatory obsolete"),tags:b("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),storage:b("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminAtring TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),modifier:b("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),accessTypes:b("not-accessible accessible-for-notify read-only read-create read-write"),multiLineStrings:!0})}));editors/codemirror/mode/asn.1/asn.1.js000064400000017070152177723720013526 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("asn.1", function(config, parserConfig) {
    var indentUnit = config.indentUnit,
        keywords = parserConfig.keywords || {},
        cmipVerbs = parserConfig.cmipVerbs || {},
        compareTypes = parserConfig.compareTypes || {},
        status = parserConfig.status || {},
        tags = parserConfig.tags || {},
        storage = parserConfig.storage || {},
        modifier = parserConfig.modifier || {},
        accessTypes = parserConfig.accessTypes|| {},
        multiLineStrings = parserConfig.multiLineStrings,
        indentStatements = parserConfig.indentStatements !== false;
    var isOperatorChar = /[\|\^]/;
    var curPunc;

    function tokenBase(stream, state) {
      var ch = stream.next();
      if (ch == '"' || ch == "'") {
        state.tokenize = tokenString(ch);
        return state.tokenize(stream, state);
      }
      if (/[\[\]\(\){}:=,;]/.test(ch)) {
        curPunc = ch;
        return "punctuation";
      }
      if (ch == "-"){
        if (stream.eat("-")) {
          stream.skipToEnd();
          return "comment";
        }
      }
      if (/\d/.test(ch)) {
        stream.eatWhile(/[\w\.]/);
        return "number";
      }
      if (isOperatorChar.test(ch)) {
        stream.eatWhile(isOperatorChar);
        return "operator";
      }

      stream.eatWhile(/[\w\-]/);
      var cur = stream.current();
      if (keywords.propertyIsEnumerable(cur)) return "keyword";
      if (cmipVerbs.propertyIsEnumerable(cur)) return "variable cmipVerbs";
      if (compareTypes.propertyIsEnumerable(cur)) return "atom compareTypes";
      if (status.propertyIsEnumerable(cur)) return "comment status";
      if (tags.propertyIsEnumerable(cur)) return "variable-3 tags";
      if (storage.propertyIsEnumerable(cur)) return "builtin storage";
      if (modifier.propertyIsEnumerable(cur)) return "string-2 modifier";
      if (accessTypes.propertyIsEnumerable(cur)) return "atom accessTypes";

      return "variable";
    }

    function tokenString(quote) {
      return function(stream, state) {
        var escaped = false, next, end = false;
        while ((next = stream.next()) != null) {
          if (next == quote && !escaped){
            var afterNext = stream.peek();
            //look if the character if the quote is like the B in '10100010'B
            if (afterNext){
              afterNext = afterNext.toLowerCase();
              if(afterNext == "b" || afterNext == "h" || afterNext == "o")
                stream.next();
            }
            end = true; break;
          }
          escaped = !escaped && next == "\\";
        }
        if (end || !(escaped || multiLineStrings))
          state.tokenize = null;
        return "string";
      };
    }

    function Context(indented, column, type, align, prev) {
      this.indented = indented;
      this.column = column;
      this.type = type;
      this.align = align;
      this.prev = prev;
    }
    function pushContext(state, col, type) {
      var indent = state.indented;
      if (state.context && state.context.type == "statement")
        indent = state.context.indented;
      return state.context = new Context(indent, col, type, null, state.context);
    }
    function popContext(state) {
      var t = state.context.type;
      if (t == ")" || t == "]" || t == "}")
        state.indented = state.context.indented;
      return state.context = state.context.prev;
    }

    //Interface
    return {
      startState: function(basecolumn) {
        return {
          tokenize: null,
          context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
          indented: 0,
          startOfLine: true
        };
      },

      token: function(stream, state) {
        var ctx = state.context;
        if (stream.sol()) {
          if (ctx.align == null) ctx.align = false;
          state.indented = stream.indentation();
          state.startOfLine = true;
        }
        if (stream.eatSpace()) return null;
        curPunc = null;
        var style = (state.tokenize || tokenBase)(stream, state);
        if (style == "comment") return style;
        if (ctx.align == null) ctx.align = true;

        if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
            && ctx.type == "statement"){
          popContext(state);
        }
        else if (curPunc == "{") pushContext(state, stream.column(), "}");
        else if (curPunc == "[") pushContext(state, stream.column(), "]");
        else if (curPunc == "(") pushContext(state, stream.column(), ")");
        else if (curPunc == "}") {
          while (ctx.type == "statement") ctx = popContext(state);
          if (ctx.type == "}") ctx = popContext(state);
          while (ctx.type == "statement") ctx = popContext(state);
        }
        else if (curPunc == ctx.type) popContext(state);
        else if (indentStatements && (((ctx.type == "}" || ctx.type == "top")
            && curPunc != ';') || (ctx.type == "statement"
            && curPunc == "newstatement")))
          pushContext(state, stream.column(), "statement");

        state.startOfLine = false;
        return style;
      },

      electricChars: "{}",
      lineComment: "--",
      fold: "brace"
    };
  });

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  CodeMirror.defineMIME("text/x-ttcn-asn", {
    name: "asn.1",
    keywords: words("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION" +
    " REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED" +
    " WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN" +
    " IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS" +
    " MINACCESS MAXACCESS REVISION STATUS DESCRIPTION" +
    " SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName" +
    " ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY" +
    " IMPLIED EXPORTS"),
    cmipVerbs: words("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
    compareTypes: words("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY" +
    " MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY" +
    " OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL" +
    " SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL" +
    " TEXTUAL-CONVENTION"),
    status: words("current deprecated mandatory obsolete"),
    tags: words("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS" +
    " UNIVERSAL"),
    storage: words("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING" +
    " UTCTime InterfaceIndex IANAifType CMIP-Attribute" +
    " REAL PACKAGE PACKAGES IpAddress PhysAddress" +
    " NetworkAddress BITS BMPString TimeStamp TimeTicks" +
    " TruthValue RowStatus DisplayString GeneralString" +
    " GraphicString IA5String NumericString" +
    " PrintableString SnmpAdminAtring TeletexString" +
    " UTF8String VideotexString VisibleString StringStore" +
    " ISO646String T61String UniversalString Unsigned32" +
    " Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
    modifier: words("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS" +
    " GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS" +
    " DEFINED"),
    accessTypes: words("not-accessible accessible-for-notify read-only" +
    " read-create read-write"),
    multiLineStrings: true
  });
});
editors/codemirror/mode/javascript/javascript.min.js000064400000037631152177723720016771 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("javascript",(function(b,c){function d(a){for(var b,c=!1,d=!1;null!=(b=a.next());){if(!c){if("/"==b&&!d)return;"["==b?d=!0:d&&"]"==b&&(d=!1)}c=!c&&"\\"==b}}function e(a,b,c){return Ma=a,Na=c,b}function f(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=g(c),b.tokenize(a,b);if("."==c&&a.match(/^\d+(?:[eE][+\-]?\d+)?/))return e("number","number");if("."==c&&a.match(".."))return e("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(c))return e(c);if("="==c&&a.eat(">"))return e("=>","operator");if("0"==c&&a.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i))return e("number","number");if(/\d/.test(c))return a.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/),e("number","number");if("/"==c)return a.eat("*")?(b.tokenize=h,h(a,b)):a.eat("/")?(a.skipToEnd(),e("comment","comment")):La(a,b,1)?(d(a),a.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),e("regexp","string-2")):(a.eat("="),e("operator","operator",a.current()));if("`"==c)return b.tokenize=i,i(a,b);if("#"==c)return a.skipToEnd(),e("error","error");if(Va.test(c))return">"==c&&b.lexical&&">"==b.lexical.type||(a.eat("=")?"!"!=c&&"="!=c||a.eat("="):/[<>*+\-]/.test(c)&&(a.eat(c),">"==c&&a.eat(c))),e("operator","operator",a.current());if(Ta.test(c)){a.eatWhile(Ta);var f=a.current();if("."!=b.lastType){if(Ua.propertyIsEnumerable(f)){var j=Ua[f];return e(j.type,j.style,f)}if("async"==f&&a.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/,!1))return e("async","keyword",f)}return e("variable","variable",f)}}function g(a){return function(b,c){var d,g=!1;if(Qa&&"@"==b.peek()&&b.match(Wa))return c.tokenize=f,e("jsonld-keyword","meta");for(;null!=(d=b.next())&&(d!=a||g);)g=!g&&"\\"==d;return g||(c.tokenize=f),e("string","string")}}function h(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=f;break}d="*"==c}return e("comment","comment")}function i(a,b){for(var c,d=!1;null!=(c=a.next());){if(!d&&("`"==c||"$"==c&&a.eat("{"))){b.tokenize=f;break}d=!d&&"\\"==c}return e("quasi","string-2",a.current())}function j(a,b){b.fatArrowAt&&(b.fatArrowAt=null);var c=a.string.indexOf("=>",a.start);if(!(c<0)){if(Sa){var d=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(a.string.slice(a.start,c));d&&(c=d.index)}for(var e=0,f=!1,g=c-1;g>=0;--g){var h=a.string.charAt(g),i=Xa.indexOf(h);if(i>=0&&i<3){if(!e){++g;break}if(0==--e){"("==h&&(f=!0);break}}else if(i>=3&&i<6)++e;else if(Ta.test(h))f=!0;else{if(/["'\/]/.test(h))return;if(f&&!e){++g;break}}}f&&!e&&(b.fatArrowAt=g)}}function k(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,this.info=f,null!=d&&(this.align=d)}function l(a,b){for(var c=a.localVars;c;c=c.next)if(c.name==b)return!0;for(var d=a.context;d;d=d.prev)for(var c=d.vars;c;c=c.next)if(c.name==b)return!0}function m(a,b,c,d,e){var f=a.cc;for(Za.state=a,Za.stream=e,Za.marked=null,Za.cc=f,Za.style=b,a.lexical.hasOwnProperty("align")||(a.lexical.align=!0);;){var g=f.length?f.pop():Ra?D:B;if(g(c,d)){for(;f.length&&f[f.length-1].lex;)f.pop()();return Za.marked?Za.marked:"variable"==c&&l(a,d)?"variable-2":b}}}function n(){for(var a=arguments.length-1;a>=0;a--)Za.cc.push(arguments[a])}function o(){return n.apply(null,arguments),!0}function p(a,b){for(var c=b;c;c=c.next)if(c.name==a)return!0;return!1}function q(a){var b=Za.state;if(Za.marked="def",b.context)if("var"==b.lexical.info&&b.context&&b.context.block){var d=r(a,b.context);if(null!=d)return void(b.context=d)}else if(!p(a,b.localVars))return void(b.localVars=new u(a,b.localVars));c.globalVars&&!p(a,b.globalVars)&&(b.globalVars=new u(a,b.globalVars))}function r(a,b){if(b){if(b.block){var c=r(a,b.prev);return c?c==b.prev?b:new t(c,b.vars,!0):null}return p(a,b.vars)?b:new t(b.prev,new u(a,b.vars),!1)}return null}function s(a){return"public"==a||"private"==a||"protected"==a||"abstract"==a||"readonly"==a}function t(a,b,c){this.prev=a,this.vars=b,this.block=c}function u(a,b){this.name=a,this.next=b}function v(){Za.state.context=new t(Za.state.context,Za.state.localVars,!1),Za.state.localVars=$a}function w(){Za.state.context=new t(Za.state.context,Za.state.localVars,!0),Za.state.localVars=null}function x(){Za.state.localVars=Za.state.context.vars,Za.state.context=Za.state.context.prev}function y(a,b){var c=function(){var c=Za.state,d=c.indented;if("stat"==c.lexical.type)d=c.lexical.indented;else for(var e=c.lexical;e&&")"==e.type&&e.align;e=e.prev)d=e.indented;c.lexical=new k(d,Za.stream.column(),a,null,c.lexical,b)};return c.lex=!0,c}function z(){var a=Za.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function A(a){function b(c){return c==a?o():";"==a||"}"==c||")"==c||"]"==c?n():o(b)}return b}function B(a,b){return"var"==a?o(y("vardef",b),ia,A(";"),z):"keyword a"==a?o(y("form"),F,B,z):"keyword b"==a?o(y("form"),B,z):"keyword d"==a?Za.stream.match(/^\s*$/,!1)?o():o(y("stat"),H,A(";"),z):"debugger"==a?o(A(";")):"{"==a?o(y("}"),w,Y,z,x):";"==a?o():"if"==a?("else"==Za.state.lexical.info&&Za.state.cc[Za.state.cc.length-1]==z&&Za.state.cc.pop()(),o(y("form"),F,B,z,na)):"function"==a?o(ta):"for"==a?o(y("form"),oa,B,z):"class"==a||Sa&&"interface"==b?(Za.marked="keyword",o(y("form"),wa,z)):"variable"==a?Sa&&"declare"==b?(Za.marked="keyword",o(B)):Sa&&("module"==b||"enum"==b||"type"==b)&&Za.stream.match(/^\s*\w/,!1)?(Za.marked="keyword","enum"==b?o(Ia):"type"==b?o(aa,A("operator"),aa,A(";")):o(y("form"),ja,A("{"),y("}"),Y,z,z)):Sa&&"namespace"==b?(Za.marked="keyword",o(y("form"),D,Y,z)):Sa&&"abstract"==b?(Za.marked="keyword",o(B)):o(y("stat"),R):"switch"==a?o(y("form"),F,A("{"),y("}","switch"),w,Y,z,z,x):"case"==a?o(D,A(":")):"default"==a?o(A(":")):"catch"==a?o(y("form"),v,C,B,z,x):"export"==a?o(y("stat"),Aa,z):"import"==a?o(y("stat"),Ca,z):"async"==a?o(B):"@"==b?o(D,B):n(y("stat"),D,A(";"),z)}function C(a){if("("==a)return o(ua,A(")"))}function D(a,b){return G(a,b,!1)}function E(a,b){return G(a,b,!0)}function F(a){return"("!=a?n():o(y(")"),D,A(")"),z)}function G(a,b,c){if(Za.state.fatArrowAt==Za.stream.start){var d=c?N:M;if("("==a)return o(v,y(")"),W(ua,")"),z,A("=>"),d,x);if("variable"==a)return n(v,ja,A("=>"),d,x)}var e=c?J:I;return Ya.hasOwnProperty(a)?o(e):"function"==a?o(ta,e):"class"==a||Sa&&"interface"==b?(Za.marked="keyword",o(y("form"),va,z)):"keyword c"==a||"async"==a?o(c?E:D):"("==a?o(y(")"),H,A(")"),z,e):"operator"==a||"spread"==a?o(c?E:D):"["==a?o(y("]"),Ha,z,e):"{"==a?X(T,"}",null,e):"quasi"==a?n(K,e):"new"==a?o(O(c)):"import"==a?o(D):o()}function H(a){return a.match(/[;\}\)\],]/)?n():n(D)}function I(a,b){return","==a?o(D):J(a,b,!1)}function J(a,b,c){var d=0==c?I:J,e=0==c?D:E;return"=>"==a?o(v,c?N:M,x):"operator"==a?/\+\+|--/.test(b)||Sa&&"!"==b?o(d):Sa&&"<"==b&&Za.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?o(y(">"),W(aa,">"),z,d):"?"==b?o(D,A(":"),e):o(e):"quasi"==a?n(K,d):";"!=a?"("==a?X(E,")","call",d):"."==a?o(S,d):"["==a?o(y("]"),H,A("]"),z,d):Sa&&"as"==b?(Za.marked="keyword",o(aa,d)):"regexp"==a?(Za.state.lastType=Za.marked="operator",Za.stream.backUp(Za.stream.pos-Za.stream.start-1),o(e)):void 0:void 0}function K(a,b){return"quasi"!=a?n():"${"!=b.slice(b.length-2)?o(K):o(D,L)}function L(a){if("}"==a)return Za.marked="string-2",Za.state.tokenize=i,o(K)}function M(a){return j(Za.stream,Za.state),n("{"==a?B:D)}function N(a){return j(Za.stream,Za.state),n("{"==a?B:E)}function O(a){return function(b){return"."==b?o(a?Q:P):"variable"==b&&Sa?o(fa,a?J:I):n(a?E:D)}}function P(a,b){if("target"==b)return Za.marked="keyword",o(I)}function Q(a,b){if("target"==b)return Za.marked="keyword",o(J)}function R(a){return":"==a?o(z,B):n(I,A(";"),z)}function S(a){if("variable"==a)return Za.marked="property",o()}function T(a,b){if("async"==a)return Za.marked="property",o(T);if("variable"==a||"keyword"==Za.style){if(Za.marked="property","get"==b||"set"==b)return o(U);var c;return Sa&&Za.state.fatArrowAt==Za.stream.start&&(c=Za.stream.match(/^\s*:\s*/,!1))&&(Za.state.fatArrowAt=Za.stream.pos+c[0].length),o(V)}return"number"==a||"string"==a?(Za.marked=Qa?"property":Za.style+" property",o(V)):"jsonld-keyword"==a?o(V):Sa&&s(b)?(Za.marked="keyword",o(T)):"["==a?o(D,Z,A("]"),V):"spread"==a?o(E,V):"*"==b?(Za.marked="keyword",o(T)):":"==a?n(V):void 0}function U(a){return"variable"!=a?n(V):(Za.marked="property",o(ta))}function V(a){return":"==a?o(E):"("==a?n(ta):void 0}function W(a,b,c){function d(e,f){if(c?c.indexOf(e)>-1:","==e){var g=Za.state.lexical;return"call"==g.info&&(g.pos=(g.pos||0)+1),o((function(c,d){return c==b||d==b?n():n(a)}),d)}return e==b||f==b?o():o(A(b))}return function(c,e){return c==b||e==b?o():n(a,d)}}function X(a,b,c){for(var d=3;d<arguments.length;d++)Za.cc.push(arguments[d]);return o(y(b,c),W(a,b),z)}function Y(a){return"}"==a?o():n(B,Y)}function Z(a,b){if(Sa){if(":"==a)return o(aa);if("?"==b)return o(Z)}}function $(a){if(Sa&&":"==a)return Za.stream.match(/^\s*\w+\s+is\b/,!1)?o(D,_,aa):o(aa)}function _(a,b){if("is"==b)return Za.marked="keyword",o()}function aa(a,b){return"keyof"==b||"typeof"==b?(Za.marked="keyword",o("keyof"==b?aa:E)):"variable"==a||"void"==b?(Za.marked="type",o(ea)):"string"==a||"number"==a||"atom"==a?o(ea):"["==a?o(y("]"),W(aa,"]",","),z,ea):"{"==a?o(y("}"),W(ca,"}",",;"),z,ea):"("==a?o(W(da,")"),ba):"<"==a?o(W(aa,">"),aa):void 0}function ba(a){if("=>"==a)return o(aa)}function ca(a,b){return"variable"==a||"keyword"==Za.style?(Za.marked="property",o(ca)):"?"==b?o(ca):":"==a?o(aa):"["==a?o(D,Z,A("]"),ca):void 0}function da(a,b){return"variable"==a&&Za.stream.match(/^\s*[?:]/,!1)||"?"==b?o(da):":"==a?o(aa):n(aa)}function ea(a,b){return"<"==b?o(y(">"),W(aa,">"),z,ea):"|"==b||"."==a||"&"==b?o(aa):"["==a?o(A("]"),ea):"extends"==b||"implements"==b?(Za.marked="keyword",o(aa)):void 0}function fa(a,b){if("<"==b)return o(y(">"),W(aa,">"),z,ea)}function ga(){return n(aa,ha)}function ha(a,b){if("="==b)return o(aa)}function ia(a,b){return"enum"==b?(Za.marked="keyword",o(Ia)):n(ja,Z,la,ma)}function ja(a,b){return Sa&&s(b)?(Za.marked="keyword",o(ja)):"variable"==a?(q(b),o()):"spread"==a?o(ja):"["==a?X(ja,"]"):"{"==a?X(ka,"}"):void 0}function ka(a,b){return"variable"!=a||Za.stream.match(/^\s*:/,!1)?("variable"==a&&(Za.marked="property"),"spread"==a?o(ja):"}"==a?n():o(A(":"),ja,la)):(q(b),o(la))}function la(a,b){if("="==b)return o(E)}function ma(a){if(","==a)return o(ia)}function na(a,b){if("keyword b"==a&&"else"==b)return o(y("form","else"),B,z)}function oa(a,b){return"await"==b?o(oa):"("==a?o(y(")"),pa,A(")"),z):void 0}function pa(a){return"var"==a?o(ia,A(";"),ra):";"==a?o(ra):"variable"==a?o(qa):n(D,A(";"),ra)}function qa(a,b){return"in"==b||"of"==b?(Za.marked="keyword",o(D)):o(I,ra)}function ra(a,b){return";"==a?o(sa):"in"==b||"of"==b?(Za.marked="keyword",o(D)):n(D,A(";"),sa)}function sa(a){")"!=a&&o(D)}function ta(a,b){return"*"==b?(Za.marked="keyword",o(ta)):"variable"==a?(q(b),o(ta)):"("==a?o(v,y(")"),W(ua,")"),z,$,B,x):Sa&&"<"==b?o(y(">"),W(ga,">"),z,ta):void 0}function ua(a,b){return"@"==b&&o(D,ua),"spread"==a?o(ua):Sa&&s(b)?(Za.marked="keyword",o(ua)):n(ja,Z,la)}function va(a,b){return"variable"==a?wa(a,b):xa(a,b)}function wa(a,b){if("variable"==a)return q(b),o(xa)}function xa(a,b){return"<"==b?o(y(">"),W(ga,">"),z,xa):"extends"==b||"implements"==b||Sa&&","==a?("implements"==b&&(Za.marked="keyword"),o(Sa?aa:D,xa)):"{"==a?o(y("}"),ya,z):void 0}function ya(a,b){return"async"==a||"variable"==a&&("static"==b||"get"==b||"set"==b||Sa&&s(b))&&Za.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Za.marked="keyword",o(ya)):"variable"==a||"keyword"==Za.style?(Za.marked="property",o(Sa?za:ta,ya)):"["==a?o(D,Z,A("]"),Sa?za:ta,ya):"*"==b?(Za.marked="keyword",o(ya)):";"==a?o(ya):"}"==a?o():"@"==b?o(D,ya):void 0}function za(a,b){return"?"==b?o(za):":"==a?o(aa,la):"="==b?o(E):n(ta)}function Aa(a,b){return"*"==b?(Za.marked="keyword",o(Ga,A(";"))):"default"==b?(Za.marked="keyword",o(D,A(";"))):"{"==a?o(W(Ba,"}"),Ga,A(";")):n(B)}function Ba(a,b){return"as"==b?(Za.marked="keyword",o(A("variable"))):"variable"==a?n(E,Ba):void 0}function Ca(a){return"string"==a?o():"("==a?n(D):n(Da,Ea,Ga)}function Da(a,b){return"{"==a?X(Da,"}"):("variable"==a&&q(b),"*"==b&&(Za.marked="keyword"),o(Fa))}function Ea(a){if(","==a)return o(Da,Ea)}function Fa(a,b){if("as"==b)return Za.marked="keyword",o(Da)}function Ga(a,b){if("from"==b)return Za.marked="keyword",o(D)}function Ha(a){return"]"==a?o():n(W(E,"]"))}function Ia(){return n(y("form"),ja,A("{"),y("}"),W(Ja,"}"),z,z)}function Ja(){return n(ja,la)}function Ka(a,b){return"operator"==a.lastType||","==a.lastType||Va.test(b.charAt(0))||/[,.]/.test(b.charAt(0))}function La(a,b,c){return b.tokenize==f&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(b.lastType)||"quasi"==b.lastType&&/\{\s*$/.test(a.string.slice(0,a.pos-(c||0)))}var Ma,Na,Oa=b.indentUnit,Pa=c.statementIndent,Qa=c.jsonld,Ra=c.json||Qa,Sa=c.typescript,Ta=c.wordCharacters||/[\w$\xa1-\uffff]/,Ua=(function(){function a(a){return{type:a,style:"keyword"}}var b=a("keyword a"),c=a("keyword b"),d=a("keyword c"),e=a("keyword d"),f=a("operator"),g={type:"atom",style:"atom"};return{if:a("if"),while:b,with:b,else:c,do:c,try:c,finally:c,return:e,break:e,continue:e,new:a("new"),delete:d,void:d,throw:d,debugger:a("debugger"),var:a("var"),const:a("var"),let:a("var"),function:a("function"),catch:a("catch"),for:a("for"),switch:a("switch"),case:a("case"),default:a("default"),in:f,typeof:f,instanceof:f,true:g,false:g,null:g,undefined:g,NaN:g,Infinity:g,this:a("this"),class:a("class"),super:a("atom"),yield:d,export:a("export"),import:a("import"),extends:d,await:d}})(),Va=/[+\-*&%=<>!?|~^@]/,Wa=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Xa="([{}])",Ya={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Za={state:null,column:null,marked:null,cc:null},$a=new u("this",new u("arguments",null));return x.lex=!0,z.lex=!0,{startState:function(a){var b={tokenize:f,lastType:"sof",cc:[],lexical:new k((a||0)-Oa,0,"block",!1),localVars:c.localVars,context:c.localVars&&new t(null,null,!1),indented:a||0};return c.globalVars&&"object"==typeof c.globalVars&&(b.globalVars=c.globalVars),b},token:function(a,b){if(a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation(),j(a,b)),b.tokenize!=h&&a.eatSpace())return null;var c=b.tokenize(a,b);return"comment"==Ma?c:(b.lastType="operator"!=Ma||"++"!=Na&&"--"!=Na?Ma:"incdec",m(b,c,Ma,Na,a))},indent:function(b,d){if(b.tokenize==h)return a.Pass;if(b.tokenize!=f)return 0;var e,g=d&&d.charAt(0),i=b.lexical;if(!/^\s*else\b/.test(d))for(var j=b.cc.length-1;j>=0;--j){var k=b.cc[j];if(k==z)i=i.prev;else if(k!=na)break}for(;("stat"==i.type||"form"==i.type)&&("}"==g||(e=b.cc[b.cc.length-1])&&(e==I||e==J)&&!/^[,\.=+\-*:?[\(]/.test(d));)i=i.prev;Pa&&")"==i.type&&"stat"==i.prev.type&&(i=i.prev);var l=i.type,m=g==l;return"vardef"==l?i.indented+("operator"==b.lastType||","==b.lastType?i.info.length+1:0):"form"==l&&"{"==g?i.indented:"form"==l?i.indented+Oa:"stat"==l?i.indented+(Ka(b,d)?Pa||Oa:0):"switch"!=i.info||m||0==c.doubleIndentSwitch?i.align?i.column+(m?0:1):i.indented+(m?0:Oa):i.indented+(/^(?:case|default)\b/.test(d)?Oa:2*Oa)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ra?null:"/*",blockCommentEnd:Ra?null:"*/",blockCommentContinue:Ra?null:" * ",lineComment:Ra?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ra?"json":"javascript",jsonldMode:Qa,jsonMode:Ra,expressionAllowed:La,skipExpression:function(a){var b=a.cc[a.cc.length-1];b!=D&&b!=E||a.cc.pop()}}})),a.registerHelper("wordChars","javascript",/[\w$]/),a.defineMIME("text/javascript","javascript"),a.defineMIME("text/ecmascript","javascript"),a.defineMIME("application/javascript","javascript"),a.defineMIME("application/x-javascript","javascript"),a.defineMIME("application/ecmascript","javascript"),a.defineMIME("application/json",{name:"javascript",json:!0}),a.defineMIME("application/x-json",{name:"javascript",json:!0}),a.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),a.defineMIME("text/typescript",{name:"javascript",typescript:!0}),a.defineMIME("application/typescript",{name:"javascript",typescript:!0})}));editors/codemirror/mode/javascript/javascript.js000064400000105762152177723720016210 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("javascript", function(config, parserConfig) {
  var indentUnit = config.indentUnit;
  var statementIndent = parserConfig.statementIndent;
  var jsonldMode = parserConfig.jsonld;
  var jsonMode = parserConfig.json || jsonldMode;
  var isTS = parserConfig.typescript;
  var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/;

  // Tokenizer

  var keywords = function(){
    function kw(type) {return {type: type, style: "keyword"};}
    var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
    var operator = kw("operator"), atom = {type: "atom", style: "atom"};

    return {
      "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
      "return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C,
      "debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"),
      "function": kw("function"), "catch": kw("catch"),
      "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
      "in": operator, "typeof": operator, "instanceof": operator,
      "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
      "this": kw("this"), "class": kw("class"), "super": kw("atom"),
      "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
      "await": C
    };
  }();

  var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;

  function readRegexp(stream) {
    var escaped = false, next, inSet = false;
    while ((next = stream.next()) != null) {
      if (!escaped) {
        if (next == "/" && !inSet) return;
        if (next == "[") inSet = true;
        else if (inSet && next == "]") inSet = false;
      }
      escaped = !escaped && next == "\\";
    }
  }

  // Used as scratch variables to communicate multiple values without
  // consing up tons of objects.
  var type, content;
  function ret(tp, style, cont) {
    type = tp; content = cont;
    return style;
  }
  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
      return ret("number", "number");
    } else if (ch == "." && stream.match("..")) {
      return ret("spread", "meta");
    } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      return ret(ch);
    } else if (ch == "=" && stream.eat(">")) {
      return ret("=>", "operator");
    } else if (ch == "0" && stream.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i)) {
      return ret("number", "number");
    } else if (/\d/.test(ch)) {
      stream.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/);
      return ret("number", "number");
    } else if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      } else if (stream.eat("/")) {
        stream.skipToEnd();
        return ret("comment", "comment");
      } else if (expressionAllowed(stream, state, 1)) {
        readRegexp(stream);
        stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
        return ret("regexp", "string-2");
      } else {
        stream.eat("=");
        return ret("operator", "operator", stream.current());
      }
    } else if (ch == "`") {
      state.tokenize = tokenQuasi;
      return tokenQuasi(stream, state);
    } else if (ch == "#") {
      stream.skipToEnd();
      return ret("error", "error");
    } else if (isOperatorChar.test(ch)) {
      if (ch != ">" || !state.lexical || state.lexical.type != ">") {
        if (stream.eat("=")) {
          if (ch == "!" || ch == "=") stream.eat("=")
        } else if (/[<>*+\-]/.test(ch)) {
          stream.eat(ch)
          if (ch == ">") stream.eat(ch)
        }
      }
      return ret("operator", "operator", stream.current());
    } else if (wordRE.test(ch)) {
      stream.eatWhile(wordRE);
      var word = stream.current()
      if (state.lastType != ".") {
        if (keywords.propertyIsEnumerable(word)) {
          var kw = keywords[word]
          return ret(kw.type, kw.style, word)
        }
        if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
          return ret("async", "keyword", word)
      }
      return ret("variable", "variable", word)
    }
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next;
      if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){
        state.tokenize = tokenBase;
        return ret("jsonld-keyword", "meta");
      }
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) break;
        escaped = !escaped && next == "\\";
      }
      if (!escaped) state.tokenize = tokenBase;
      return ret("string", "string");
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return ret("comment", "comment");
  }

  function tokenQuasi(stream, state) {
    var escaped = false, next;
    while ((next = stream.next()) != null) {
      if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
        state.tokenize = tokenBase;
        break;
      }
      escaped = !escaped && next == "\\";
    }
    return ret("quasi", "string-2", stream.current());
  }

  var brackets = "([{}])";
  // This is a crude lookahead trick to try and notice that we're
  // parsing the argument patterns for a fat-arrow function before we
  // actually hit the arrow token. It only works if the arrow is on
  // the same line as the arguments and there's no strange noise
  // (comments) in between. Fallback is to only notice when we hit the
  // arrow, and not declare the arguments as locals for the arrow
  // body.
  function findFatArrow(stream, state) {
    if (state.fatArrowAt) state.fatArrowAt = null;
    var arrow = stream.string.indexOf("=>", stream.start);
    if (arrow < 0) return;

    if (isTS) { // Try to skip TypeScript return type declarations after the arguments
      var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow))
      if (m) arrow = m.index
    }

    var depth = 0, sawSomething = false;
    for (var pos = arrow - 1; pos >= 0; --pos) {
      var ch = stream.string.charAt(pos);
      var bracket = brackets.indexOf(ch);
      if (bracket >= 0 && bracket < 3) {
        if (!depth) { ++pos; break; }
        if (--depth == 0) { if (ch == "(") sawSomething = true; break; }
      } else if (bracket >= 3 && bracket < 6) {
        ++depth;
      } else if (wordRE.test(ch)) {
        sawSomething = true;
      } else if (/["'\/]/.test(ch)) {
        return;
      } else if (sawSomething && !depth) {
        ++pos;
        break;
      }
    }
    if (sawSomething && !depth) state.fatArrowAt = pos;
  }

  // Parser

  var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true};

  function JSLexical(indented, column, type, align, prev, info) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.prev = prev;
    this.info = info;
    if (align != null) this.align = align;
  }

  function inScope(state, varname) {
    for (var v = state.localVars; v; v = v.next)
      if (v.name == varname) return true;
    for (var cx = state.context; cx; cx = cx.prev) {
      for (var v = cx.vars; v; v = v.next)
        if (v.name == varname) return true;
    }
  }

  function parseJS(state, style, type, content, stream) {
    var cc = state.cc;
    // Communicate our context to the combinators.
    // (Less wasteful than consing up a hundred closures on every call.)
    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;

    if (!state.lexical.hasOwnProperty("align"))
      state.lexical.align = true;

    while(true) {
      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
      if (combinator(type, content)) {
        while(cc.length && cc[cc.length - 1].lex)
          cc.pop()();
        if (cx.marked) return cx.marked;
        if (type == "variable" && inScope(state, content)) return "variable-2";
        return style;
      }
    }
  }

  // Combinator utils

  var cx = {state: null, column: null, marked: null, cc: null};
  function pass() {
    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
  }
  function cont() {
    pass.apply(null, arguments);
    return true;
  }
  function inList(name, list) {
    for (var v = list; v; v = v.next) if (v.name == name) return true
    return false;
  }
  function register(varname) {
    var state = cx.state;
    cx.marked = "def";
    if (state.context) {
      if (state.lexical.info == "var" && state.context && state.context.block) {
        // FIXME function decls are also not block scoped
        var newContext = registerVarScoped(varname, state.context)
        if (newContext != null) {
          state.context = newContext
          return
        }
      } else if (!inList(varname, state.localVars)) {
        state.localVars = new Var(varname, state.localVars)
        return
      }
    }
    // Fall through means this is global
    if (parserConfig.globalVars && !inList(varname, state.globalVars))
      state.globalVars = new Var(varname, state.globalVars)
  }
  function registerVarScoped(varname, context) {
    if (!context) {
      return null
    } else if (context.block) {
      var inner = registerVarScoped(varname, context.prev)
      if (!inner) return null
      if (inner == context.prev) return context
      return new Context(inner, context.vars, true)
    } else if (inList(varname, context.vars)) {
      return context
    } else {
      return new Context(context.prev, new Var(varname, context.vars), false)
    }
  }

  function isModifier(name) {
    return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"
  }

  // Combinators

  function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }
  function Var(name, next) { this.name = name; this.next = next }

  var defaultVars = new Var("this", new Var("arguments", null))
  function pushcontext() {
    cx.state.context = new Context(cx.state.context, cx.state.localVars, false)
    cx.state.localVars = defaultVars
  }
  function pushblockcontext() {
    cx.state.context = new Context(cx.state.context, cx.state.localVars, true)
    cx.state.localVars = null
  }
  function popcontext() {
    cx.state.localVars = cx.state.context.vars
    cx.state.context = cx.state.context.prev
  }
  popcontext.lex = true
  function pushlex(type, info) {
    var result = function() {
      var state = cx.state, indent = state.indented;
      if (state.lexical.type == "stat") indent = state.lexical.indented;
      else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev)
        indent = outer.indented;
      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);
    };
    result.lex = true;
    return result;
  }
  function poplex() {
    var state = cx.state;
    if (state.lexical.prev) {
      if (state.lexical.type == ")")
        state.indented = state.lexical.indented;
      state.lexical = state.lexical.prev;
    }
  }
  poplex.lex = true;

  function expect(wanted) {
    function exp(type) {
      if (type == wanted) return cont();
      else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();
      else return cont(exp);
    };
    return exp;
  }

  function statement(type, value) {
    if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
    if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
    if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
    if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
    if (type == "debugger") return cont(expect(";"));
    if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
    if (type == ";") return cont();
    if (type == "if") {
      if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
        cx.state.cc.pop()();
      return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse);
    }
    if (type == "function") return cont(functiondef);
    if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
    if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), className, poplex); }
    if (type == "variable") {
      if (isTS && value == "declare") {
        cx.marked = "keyword"
        return cont(statement)
      } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) {
        cx.marked = "keyword"
        if (value == "enum") return cont(enumdef);
        else if (value == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
        else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
      } else if (isTS && value == "namespace") {
        cx.marked = "keyword"
        return cont(pushlex("form"), expression, block, poplex)
      } else if (isTS && value == "abstract") {
        cx.marked = "keyword"
        return cont(statement)
      } else {
        return cont(pushlex("stat"), maybelabel);
      }
    }
    if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext,
                                      block, poplex, poplex, popcontext);
    if (type == "case") return cont(expression, expect(":"));
    if (type == "default") return cont(expect(":"));
    if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
    if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
    if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
    if (type == "async") return cont(statement)
    if (value == "@") return cont(expression, statement)
    return pass(pushlex("stat"), expression, expect(";"), poplex);
  }
  function maybeCatchBinding(type) {
    if (type == "(") return cont(funarg, expect(")"))
  }
  function expression(type, value) {
    return expressionInner(type, value, false);
  }
  function expressionNoComma(type, value) {
    return expressionInner(type, value, true);
  }
  function parenExpr(type) {
    if (type != "(") return pass()
    return cont(pushlex(")"), expression, expect(")"), poplex)
  }
  function expressionInner(type, value, noComma) {
    if (cx.state.fatArrowAt == cx.stream.start) {
      var body = noComma ? arrowBodyNoComma : arrowBody;
      if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
      else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
    }

    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
    if (type == "function") return cont(functiondef, maybeop);
    if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), classExpression, poplex); }
    if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression);
    if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
    if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
    if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
    if (type == "{") return contCommasep(objprop, "}", null, maybeop);
    if (type == "quasi") return pass(quasi, maybeop);
    if (type == "new") return cont(maybeTarget(noComma));
    if (type == "import") return cont(expression);
    return cont();
  }
  function maybeexpression(type) {
    if (type.match(/[;\}\)\],]/)) return pass();
    return pass(expression);
  }

  function maybeoperatorComma(type, value) {
    if (type == ",") return cont(expression);
    return maybeoperatorNoComma(type, value, false);
  }
  function maybeoperatorNoComma(type, value, noComma) {
    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
    var expr = noComma == false ? expression : expressionNoComma;
    if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
    if (type == "operator") {
      if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
      if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false))
        return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
      if (value == "?") return cont(expression, expect(":"), expr);
      return cont(expr);
    }
    if (type == "quasi") { return pass(quasi, me); }
    if (type == ";") return;
    if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
    if (type == ".") return cont(property, me);
    if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
    if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
    if (type == "regexp") {
      cx.state.lastType = cx.marked = "operator"
      cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)
      return cont(expr)
    }
  }
  function quasi(type, value) {
    if (type != "quasi") return pass();
    if (value.slice(value.length - 2) != "${") return cont(quasi);
    return cont(expression, continueQuasi);
  }
  function continueQuasi(type) {
    if (type == "}") {
      cx.marked = "string-2";
      cx.state.tokenize = tokenQuasi;
      return cont(quasi);
    }
  }
  function arrowBody(type) {
    findFatArrow(cx.stream, cx.state);
    return pass(type == "{" ? statement : expression);
  }
  function arrowBodyNoComma(type) {
    findFatArrow(cx.stream, cx.state);
    return pass(type == "{" ? statement : expressionNoComma);
  }
  function maybeTarget(noComma) {
    return function(type) {
      if (type == ".") return cont(noComma ? targetNoComma : target);
      else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)
      else return pass(noComma ? expressionNoComma : expression);
    };
  }
  function target(_, value) {
    if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorComma); }
  }
  function targetNoComma(_, value) {
    if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorNoComma); }
  }
  function maybelabel(type) {
    if (type == ":") return cont(poplex, statement);
    return pass(maybeoperatorComma, expect(";"), poplex);
  }
  function property(type) {
    if (type == "variable") {cx.marked = "property"; return cont();}
  }
  function objprop(type, value) {
    if (type == "async") {
      cx.marked = "property";
      return cont(objprop);
    } else if (type == "variable" || cx.style == "keyword") {
      cx.marked = "property";
      if (value == "get" || value == "set") return cont(getterSetter);
      var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params
      if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
        cx.state.fatArrowAt = cx.stream.pos + m[0].length
      return cont(afterprop);
    } else if (type == "number" || type == "string") {
      cx.marked = jsonldMode ? "property" : (cx.style + " property");
      return cont(afterprop);
    } else if (type == "jsonld-keyword") {
      return cont(afterprop);
    } else if (isTS && isModifier(value)) {
      cx.marked = "keyword"
      return cont(objprop)
    } else if (type == "[") {
      return cont(expression, maybetype, expect("]"), afterprop);
    } else if (type == "spread") {
      return cont(expressionNoComma, afterprop);
    } else if (value == "*") {
      cx.marked = "keyword";
      return cont(objprop);
    } else if (type == ":") {
      return pass(afterprop)
    }
  }
  function getterSetter(type) {
    if (type != "variable") return pass(afterprop);
    cx.marked = "property";
    return cont(functiondef);
  }
  function afterprop(type) {
    if (type == ":") return cont(expressionNoComma);
    if (type == "(") return pass(functiondef);
  }
  function commasep(what, end, sep) {
    function proceed(type, value) {
      if (sep ? sep.indexOf(type) > -1 : type == ",") {
        var lex = cx.state.lexical;
        if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
        return cont(function(type, value) {
          if (type == end || value == end) return pass()
          return pass(what)
        }, proceed);
      }
      if (type == end || value == end) return cont();
      return cont(expect(end));
    }
    return function(type, value) {
      if (type == end || value == end) return cont();
      return pass(what, proceed);
    };
  }
  function contCommasep(what, end, info) {
    for (var i = 3; i < arguments.length; i++)
      cx.cc.push(arguments[i]);
    return cont(pushlex(end, info), commasep(what, end), poplex);
  }
  function block(type) {
    if (type == "}") return cont();
    return pass(statement, block);
  }
  function maybetype(type, value) {
    if (isTS) {
      if (type == ":") return cont(typeexpr);
      if (value == "?") return cont(maybetype);
    }
  }
  function mayberettype(type) {
    if (isTS && type == ":") {
      if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr)
      else return cont(typeexpr)
    }
  }
  function isKW(_, value) {
    if (value == "is") {
      cx.marked = "keyword"
      return cont()
    }
  }
  function typeexpr(type, value) {
    if (value == "keyof" || value == "typeof") {
      cx.marked = "keyword"
      return cont(value == "keyof" ? typeexpr : expressionNoComma)
    }
    if (type == "variable" || value == "void") {
      cx.marked = "type"
      return cont(afterType)
    }
    if (type == "string" || type == "number" || type == "atom") return cont(afterType);
    if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
    if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
    if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
    if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr)
  }
  function maybeReturnType(type) {
    if (type == "=>") return cont(typeexpr)
  }
  function typeprop(type, value) {
    if (type == "variable" || cx.style == "keyword") {
      cx.marked = "property"
      return cont(typeprop)
    } else if (value == "?") {
      return cont(typeprop)
    } else if (type == ":") {
      return cont(typeexpr)
    } else if (type == "[") {
      return cont(expression, maybetype, expect("]"), typeprop)
    }
  }
  function typearg(type, value) {
    if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg)
    if (type == ":") return cont(typeexpr)
    return pass(typeexpr)
  }
  function afterType(type, value) {
    if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
    if (value == "|" || type == "." || value == "&") return cont(typeexpr)
    if (type == "[") return cont(expect("]"), afterType)
    if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) }
  }
  function maybeTypeArgs(_, value) {
    if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
  }
  function typeparam() {
    return pass(typeexpr, maybeTypeDefault)
  }
  function maybeTypeDefault(_, value) {
    if (value == "=") return cont(typeexpr)
  }
  function vardef(_, value) {
    if (value == "enum") {cx.marked = "keyword"; return cont(enumdef)}
    return pass(pattern, maybetype, maybeAssign, vardefCont);
  }
  function pattern(type, value) {
    if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(pattern) }
    if (type == "variable") { register(value); return cont(); }
    if (type == "spread") return cont(pattern);
    if (type == "[") return contCommasep(pattern, "]");
    if (type == "{") return contCommasep(proppattern, "}");
  }
  function proppattern(type, value) {
    if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
      register(value);
      return cont(maybeAssign);
    }
    if (type == "variable") cx.marked = "property";
    if (type == "spread") return cont(pattern);
    if (type == "}") return pass();
    return cont(expect(":"), pattern, maybeAssign);
  }
  function maybeAssign(_type, value) {
    if (value == "=") return cont(expressionNoComma);
  }
  function vardefCont(type) {
    if (type == ",") return cont(vardef);
  }
  function maybeelse(type, value) {
    if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
  }
  function forspec(type, value) {
    if (value == "await") return cont(forspec);
    if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
  }
  function forspec1(type) {
    if (type == "var") return cont(vardef, expect(";"), forspec2);
    if (type == ";") return cont(forspec2);
    if (type == "variable") return cont(formaybeinof);
    return pass(expression, expect(";"), forspec2);
  }
  function formaybeinof(_type, value) {
    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
    return cont(maybeoperatorComma, forspec2);
  }
  function forspec2(type, value) {
    if (type == ";") return cont(forspec3);
    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
    return pass(expression, expect(";"), forspec3);
  }
  function forspec3(type) {
    if (type != ")") cont(expression);
  }
  function functiondef(type, value) {
    if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
    if (type == "variable") {register(value); return cont(functiondef);}
    if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
    if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef)
  }
  function funarg(type, value) {
    if (value == "@") cont(expression, funarg)
    if (type == "spread") return cont(funarg);
    if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(funarg); }
    return pass(pattern, maybetype, maybeAssign);
  }
  function classExpression(type, value) {
    // Class expressions may have an optional name.
    if (type == "variable") return className(type, value);
    return classNameAfter(type, value);
  }
  function className(type, value) {
    if (type == "variable") {register(value); return cont(classNameAfter);}
  }
  function classNameAfter(type, value) {
    if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter)
    if (value == "extends" || value == "implements" || (isTS && type == ",")) {
      if (value == "implements") cx.marked = "keyword";
      return cont(isTS ? typeexpr : expression, classNameAfter);
    }
    if (type == "{") return cont(pushlex("}"), classBody, poplex);
  }
  function classBody(type, value) {
    if (type == "async" ||
        (type == "variable" &&
         (value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
         cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
      cx.marked = "keyword";
      return cont(classBody);
    }
    if (type == "variable" || cx.style == "keyword") {
      cx.marked = "property";
      return cont(isTS ? classfield : functiondef, classBody);
    }
    if (type == "[")
      return cont(expression, maybetype, expect("]"), isTS ? classfield : functiondef, classBody)
    if (value == "*") {
      cx.marked = "keyword";
      return cont(classBody);
    }
    if (type == ";") return cont(classBody);
    if (type == "}") return cont();
    if (value == "@") return cont(expression, classBody)
  }
  function classfield(type, value) {
    if (value == "?") return cont(classfield)
    if (type == ":") return cont(typeexpr, maybeAssign)
    if (value == "=") return cont(expressionNoComma)
    return pass(functiondef)
  }
  function afterExport(type, value) {
    if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); }
    if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); }
    if (type == "{") return cont(commasep(exportField, "}"), maybeFrom, expect(";"));
    return pass(statement);
  }
  function exportField(type, value) {
    if (value == "as") { cx.marked = "keyword"; return cont(expect("variable")); }
    if (type == "variable") return pass(expressionNoComma, exportField);
  }
  function afterImport(type) {
    if (type == "string") return cont();
    if (type == "(") return pass(expression);
    return pass(importSpec, maybeMoreImports, maybeFrom);
  }
  function importSpec(type, value) {
    if (type == "{") return contCommasep(importSpec, "}");
    if (type == "variable") register(value);
    if (value == "*") cx.marked = "keyword";
    return cont(maybeAs);
  }
  function maybeMoreImports(type) {
    if (type == ",") return cont(importSpec, maybeMoreImports)
  }
  function maybeAs(_type, value) {
    if (value == "as") { cx.marked = "keyword"; return cont(importSpec); }
  }
  function maybeFrom(_type, value) {
    if (value == "from") { cx.marked = "keyword"; return cont(expression); }
  }
  function arrayLiteral(type) {
    if (type == "]") return cont();
    return pass(commasep(expressionNoComma, "]"));
  }
  function enumdef() {
    return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex)
  }
  function enummember() {
    return pass(pattern, maybeAssign);
  }

  function isContinuedStatement(state, textAfter) {
    return state.lastType == "operator" || state.lastType == "," ||
      isOperatorChar.test(textAfter.charAt(0)) ||
      /[,.]/.test(textAfter.charAt(0));
  }

  function expressionAllowed(stream, state, backUp) {
    return state.tokenize == tokenBase &&
      /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
      (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
  }

  // Interface

  return {
    startState: function(basecolumn) {
      var state = {
        tokenize: tokenBase,
        lastType: "sof",
        cc: [],
        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
        localVars: parserConfig.localVars,
        context: parserConfig.localVars && new Context(null, null, false),
        indented: basecolumn || 0
      };
      if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
        state.globalVars = parserConfig.globalVars;
      return state;
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (!state.lexical.hasOwnProperty("align"))
          state.lexical.align = false;
        state.indented = stream.indentation();
        findFatArrow(stream, state);
      }
      if (state.tokenize != tokenComment && stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      if (type == "comment") return style;
      state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
      return parseJS(state, style, type, content, stream);
    },

    indent: function(state, textAfter) {
      if (state.tokenize == tokenComment) return CodeMirror.Pass;
      if (state.tokenize != tokenBase) return 0;
      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top
      // Kludge to prevent 'maybelse' from blocking lexical scope pops
      if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {
        var c = state.cc[i];
        if (c == poplex) lexical = lexical.prev;
        else if (c != maybeelse) break;
      }
      while ((lexical.type == "stat" || lexical.type == "form") &&
             (firstChar == "}" || ((top = state.cc[state.cc.length - 1]) &&
                                   (top == maybeoperatorComma || top == maybeoperatorNoComma) &&
                                   !/^[,\.=+\-*:?[\(]/.test(textAfter))))
        lexical = lexical.prev;
      if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
        lexical = lexical.prev;
      var type = lexical.type, closing = firstChar == type;

      if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
      else if (type == "form" && firstChar == "{") return lexical.indented;
      else if (type == "form") return lexical.indented + indentUnit;
      else if (type == "stat")
        return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);
      else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
        return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
      else if (lexical.align) return lexical.column + (closing ? 0 : 1);
      else return lexical.indented + (closing ? 0 : indentUnit);
    },

    electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
    blockCommentStart: jsonMode ? null : "/*",
    blockCommentEnd: jsonMode ? null : "*/",
    blockCommentContinue: jsonMode ? null : " * ",
    lineComment: jsonMode ? null : "//",
    fold: "brace",
    closeBrackets: "()[]{}''\"\"``",

    helperType: jsonMode ? "json" : "javascript",
    jsonldMode: jsonldMode,
    jsonMode: jsonMode,

    expressionAllowed: expressionAllowed,

    skipExpression: function(state) {
      var top = state.cc[state.cc.length - 1]
      if (top == expression || top == expressionNoComma) state.cc.pop()
    }
  };
});

CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/);

CodeMirror.defineMIME("text/javascript", "javascript");
CodeMirror.defineMIME("text/ecmascript", "javascript");
CodeMirror.defineMIME("application/javascript", "javascript");
CodeMirror.defineMIME("application/x-javascript", "javascript");
CodeMirror.defineMIME("application/ecmascript", "javascript");
CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true});
CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true });
CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });

});
editors/codemirror/mode/smarty/smarty.js000064400000015255152177723720014527 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Smarty 2 and 3 mode.
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("smarty", function(config, parserConf) {
    var rightDelimiter = parserConf.rightDelimiter || "}";
    var leftDelimiter = parserConf.leftDelimiter || "{";
    var version = parserConf.version || 2;
    var baseMode = CodeMirror.getMode(config, parserConf.baseMode || "null");

    var keyFunctions = ["debug", "extends", "function", "include", "literal"];
    var regs = {
      operatorChars: /[+\-*&%=<>!?]/,
      validIdentifier: /[a-zA-Z0-9_]/,
      stringChar: /['"]/
    };

    var last;
    function cont(style, lastType) {
      last = lastType;
      return style;
    }

    function chain(stream, state, parser) {
      state.tokenize = parser;
      return parser(stream, state);
    }

    // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode
    function doesNotCount(stream, pos) {
      if (pos == null) pos = stream.pos;
      return version === 3 && leftDelimiter == "{" &&
        (pos == stream.string.length || /\s/.test(stream.string.charAt(pos)));
    }

    function tokenTop(stream, state) {
      var string = stream.string;
      for (var scan = stream.pos;;) {
        var nextMatch = string.indexOf(leftDelimiter, scan);
        scan = nextMatch + leftDelimiter.length;
        if (nextMatch == -1 || !doesNotCount(stream, nextMatch + leftDelimiter.length)) break;
      }
      if (nextMatch == stream.pos) {
        stream.match(leftDelimiter);
        if (stream.eat("*")) {
          return chain(stream, state, tokenBlock("comment", "*" + rightDelimiter));
        } else {
          state.depth++;
          state.tokenize = tokenSmarty;
          last = "startTag";
          return "tag";
        }
      }

      if (nextMatch > -1) stream.string = string.slice(0, nextMatch);
      var token = baseMode.token(stream, state.base);
      if (nextMatch > -1) stream.string = string;
      return token;
    }

    // parsing Smarty content
    function tokenSmarty(stream, state) {
      if (stream.match(rightDelimiter, true)) {
        if (version === 3) {
          state.depth--;
          if (state.depth <= 0) {
            state.tokenize = tokenTop;
          }
        } else {
          state.tokenize = tokenTop;
        }
        return cont("tag", null);
      }

      if (stream.match(leftDelimiter, true)) {
        state.depth++;
        return cont("tag", "startTag");
      }

      var ch = stream.next();
      if (ch == "$") {
        stream.eatWhile(regs.validIdentifier);
        return cont("variable-2", "variable");
      } else if (ch == "|") {
        return cont("operator", "pipe");
      } else if (ch == ".") {
        return cont("operator", "property");
      } else if (regs.stringChar.test(ch)) {
        state.tokenize = tokenAttribute(ch);
        return cont("string", "string");
      } else if (regs.operatorChars.test(ch)) {
        stream.eatWhile(regs.operatorChars);
        return cont("operator", "operator");
      } else if (ch == "[" || ch == "]") {
        return cont("bracket", "bracket");
      } else if (ch == "(" || ch == ")") {
        return cont("bracket", "operator");
      } else if (/\d/.test(ch)) {
        stream.eatWhile(/\d/);
        return cont("number", "number");
      } else {

        if (state.last == "variable") {
          if (ch == "@") {
            stream.eatWhile(regs.validIdentifier);
            return cont("property", "property");
          } else if (ch == "|") {
            stream.eatWhile(regs.validIdentifier);
            return cont("qualifier", "modifier");
          }
        } else if (state.last == "pipe") {
          stream.eatWhile(regs.validIdentifier);
          return cont("qualifier", "modifier");
        } else if (state.last == "whitespace") {
          stream.eatWhile(regs.validIdentifier);
          return cont("attribute", "modifier");
        } if (state.last == "property") {
          stream.eatWhile(regs.validIdentifier);
          return cont("property", null);
        } else if (/\s/.test(ch)) {
          last = "whitespace";
          return null;
        }

        var str = "";
        if (ch != "/") {
          str += ch;
        }
        var c = null;
        while (c = stream.eat(regs.validIdentifier)) {
          str += c;
        }
        for (var i=0, j=keyFunctions.length; i<j; i++) {
          if (keyFunctions[i] == str) {
            return cont("keyword", "keyword");
          }
        }
        if (/\s/.test(ch)) {
          return null;
        }
        return cont("tag", "tag");
      }
    }

    function tokenAttribute(quote) {
      return function(stream, state) {
        var prevChar = null;
        var currChar = null;
        while (!stream.eol()) {
          currChar = stream.peek();
          if (stream.next() == quote && prevChar !== '\\') {
            state.tokenize = tokenSmarty;
            break;
          }
          prevChar = currChar;
        }
        return "string";
      };
    }

    function tokenBlock(style, terminator) {
      return function(stream, state) {
        while (!stream.eol()) {
          if (stream.match(terminator)) {
            state.tokenize = tokenTop;
            break;
          }
          stream.next();
        }
        return style;
      };
    }

    return {
      startState: function() {
        return {
          base: CodeMirror.startState(baseMode),
          tokenize: tokenTop,
          last: null,
          depth: 0
        };
      },
      copyState: function(state) {
        return {
          base: CodeMirror.copyState(baseMode, state.base),
          tokenize: state.tokenize,
          last: state.last,
          depth: state.depth
        };
      },
      innerMode: function(state) {
        if (state.tokenize == tokenTop)
          return {mode: baseMode, state: state.base};
      },
      token: function(stream, state) {
        var style = state.tokenize(stream, state);
        state.last = last;
        return style;
      },
      indent: function(state, text) {
        if (state.tokenize == tokenTop && baseMode.indent)
          return baseMode.indent(state.base, text);
        else
          return CodeMirror.Pass;
      },
      blockCommentStart: leftDelimiter + "*",
      blockCommentEnd: "*" + rightDelimiter
    };
  });

  CodeMirror.defineMIME("text/x-smarty", "smarty");
});
editors/codemirror/mode/smarty/smarty.min.js000064400000005705152177723720015310 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("smarty",(function(b,c){function d(a,b){return k=b,a}function e(a,b,c){return b.tokenize=c,c(a,b)}function f(a,b){return null==b&&(b=a.pos),3===n&&"{"==m&&(b==a.string.length||/\s/.test(a.string.charAt(b)))}function g(a,b){for(var c=a.string,d=a.pos;;){var g=c.indexOf(m,d);if(d=g+m.length,g==-1||!f(a,g+m.length))break}if(g==a.pos)return a.match(m),a.eat("*")?e(a,b,j("comment","*"+l)):(b.depth++,b.tokenize=h,k="startTag","tag");g>-1&&(a.string=c.slice(0,g));var i=o.token(a,b.base);return g>-1&&(a.string=c),i}function h(a,b){if(a.match(l,!0))return 3===n?(b.depth--,b.depth<=0&&(b.tokenize=g)):b.tokenize=g,d("tag",null);if(a.match(m,!0))return b.depth++,d("tag","startTag");var c=a.next();if("$"==c)return a.eatWhile(q.validIdentifier),d("variable-2","variable");if("|"==c)return d("operator","pipe");if("."==c)return d("operator","property");if(q.stringChar.test(c))return b.tokenize=i(c),d("string","string");if(q.operatorChars.test(c))return a.eatWhile(q.operatorChars),d("operator","operator");if("["==c||"]"==c)return d("bracket","bracket");if("("==c||")"==c)return d("bracket","operator");if(/\d/.test(c))return a.eatWhile(/\d/),d("number","number");if("variable"==b.last){if("@"==c)return a.eatWhile(q.validIdentifier),d("property","property");if("|"==c)return a.eatWhile(q.validIdentifier),d("qualifier","modifier")}else{if("pipe"==b.last)return a.eatWhile(q.validIdentifier),d("qualifier","modifier");if("whitespace"==b.last)return a.eatWhile(q.validIdentifier),d("attribute","modifier")}if("property"==b.last)return a.eatWhile(q.validIdentifier),d("property",null);if(/\s/.test(c))return k="whitespace",null;var e="";"/"!=c&&(e+=c);for(var f=null;f=a.eat(q.validIdentifier);)e+=f;for(var h=0,j=p.length;h<j;h++)if(p[h]==e)return d("keyword","keyword");return/\s/.test(c)?null:d("tag","tag")}function i(a){return function(b,c){for(var d=null,e=null;!b.eol();){if(e=b.peek(),b.next()==a&&"\\"!==d){c.tokenize=h;break}d=e}return"string"}}function j(a,b){return function(c,d){for(;!c.eol();){if(c.match(b)){d.tokenize=g;break}c.next()}return a}}var k,l=c.rightDelimiter||"}",m=c.leftDelimiter||"{",n=c.version||2,o=a.getMode(b,c.baseMode||"null"),p=["debug","extends","function","include","literal"],q={operatorChars:/[+\-*&%=<>!?]/,validIdentifier:/[a-zA-Z0-9_]/,stringChar:/['"]/};return{startState:function(){return{base:a.startState(o),tokenize:g,last:null,depth:0}},copyState:function(b){return{base:a.copyState(o,b.base),tokenize:b.tokenize,last:b.last,depth:b.depth}},innerMode:function(a){if(a.tokenize==g)return{mode:o,state:a.base}},token:function(a,b){var c=b.tokenize(a,b);return b.last=k,c},indent:function(b,c){return b.tokenize==g&&o.indent?o.indent(b.base,c):a.Pass},blockCommentStart:m+"*",blockCommentEnd:"*"+l}})),a.defineMIME("text/x-smarty","smarty")}));editors/codemirror/mode/dart/dart.min.js000064400000004416152177723720014334 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../clike/clike"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=0;c<a.length;++c)b[a[c]]=!0;return b}function c(a){(a.interpolationStack||(a.interpolationStack=[])).push(a.tokenize)}function d(a){return(a.interpolationStack||(a.interpolationStack=[])).pop()}function e(a){return a.interpolationStack?a.interpolationStack.length:0}function f(a,b,d,e){function f(b,d){for(var f=!1;!b.eol();){if(!e&&!f&&"$"==b.peek())return c(d),d.tokenize=g,"string";var i=b.next();if(i==a&&!f&&(!h||b.match(a+a))){d.tokenize=null;break}f=!e&&!f&&"\\"==i}return"string"}var h=!1;if(b.eat(a)){if(!b.eat(a))return"string";h=!0}return d.tokenize=f,f(b,d)}function g(a,b){return a.eat("$"),a.eat("{")?b.tokenize=null:b.tokenize=h,null}function h(a,b){return a.eatWhile(/[\w_]/),b.tokenize=d(b),"variable"}function i(a){return function(b,c){for(var d;d=b.next();){if("*"==d&&b.eat("/")){if(1==a){c.tokenize=null;break}return c.tokenize=i(a-1),c.tokenize(b,c)}if("/"==d&&b.eat("*"))return c.tokenize=i(a+1),c.tokenize(b,c)}return"comment"}}var j="this super static final const abstract class extends external factory implements get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as".split(" "),k="try catch finally do else for if switch while".split(" "),l="true false null".split(" "),m="void bool num int double dynamic var String".split(" ");a.defineMIME("application/dart",{name:"clike",keywords:b(j),blockKeywords:b(k),builtin:b(m),atoms:b(l),hooks:{"@":function(a){return a.eatWhile(/[\w\$_\.]/),"meta"},"'":function(a,b){return f("'",a,b,!1)},'"':function(a,b){return f('"',a,b,!1)},r:function(a,b){var c=a.peek();return("'"==c||'"'==c)&&f(a.next(),a,b,!0)},"}":function(a,b){return e(b)>0&&(b.tokenize=d(b),null)},"/":function(a,b){return!!a.eat("*")&&(b.tokenize=i(1),b.tokenize(a,b))}}}),a.registerHelper("hintWords","application/dart",j.concat(l).concat(m)),a.defineMode("dart",(function(b){return a.getMode(b,"application/dart")}),"clike")}));editors/codemirror/mode/dart/dart.js000064400000011774152177723720013557 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../clike/clike"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../clike/clike"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var keywords = ("this super static final const abstract class extends external factory " +
    "implements get native set typedef with enum throw rethrow " +
    "assert break case continue default in return new deferred async await covariant " +
    "try catch finally do else for if switch while import library export " +
    "part of show hide is as").split(" ");
  var blockKeywords = "try catch finally do else for if switch while".split(" ");
  var atoms = "true false null".split(" ");
  var builtins = "void bool num int double dynamic var String".split(" ");

  function set(words) {
    var obj = {};
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  function pushInterpolationStack(state) {
    (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);
  }

  function popInterpolationStack(state) {
    return (state.interpolationStack || (state.interpolationStack = [])).pop();
  }

  function sizeInterpolationStack(state) {
    return state.interpolationStack ? state.interpolationStack.length : 0;
  }

  CodeMirror.defineMIME("application/dart", {
    name: "clike",
    keywords: set(keywords),
    blockKeywords: set(blockKeywords),
    builtin: set(builtins),
    atoms: set(atoms),
    hooks: {
      "@": function(stream) {
        stream.eatWhile(/[\w\$_\.]/);
        return "meta";
      },

      // custom string handling to deal with triple-quoted strings and string interpolation
      "'": function(stream, state) {
        return tokenString("'", stream, state, false);
      },
      "\"": function(stream, state) {
        return tokenString("\"", stream, state, false);
      },
      "r": function(stream, state) {
        var peek = stream.peek();
        if (peek == "'" || peek == "\"") {
          return tokenString(stream.next(), stream, state, true);
        }
        return false;
      },

      "}": function(_stream, state) {
        // "}" is end of interpolation, if interpolation stack is non-empty
        if (sizeInterpolationStack(state) > 0) {
          state.tokenize = popInterpolationStack(state);
          return null;
        }
        return false;
      },

      "/": function(stream, state) {
        if (!stream.eat("*")) return false
        state.tokenize = tokenNestedComment(1)
        return state.tokenize(stream, state)
      }
    }
  });

  function tokenString(quote, stream, state, raw) {
    var tripleQuoted = false;
    if (stream.eat(quote)) {
      if (stream.eat(quote)) tripleQuoted = true;
      else return "string"; //empty string
    }
    function tokenStringHelper(stream, state) {
      var escaped = false;
      while (!stream.eol()) {
        if (!raw && !escaped && stream.peek() == "$") {
          pushInterpolationStack(state);
          state.tokenize = tokenInterpolation;
          return "string";
        }
        var next = stream.next();
        if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {
          state.tokenize = null;
          break;
        }
        escaped = !raw && !escaped && next == "\\";
      }
      return "string";
    }
    state.tokenize = tokenStringHelper;
    return tokenStringHelper(stream, state);
  }

  function tokenInterpolation(stream, state) {
    stream.eat("$");
    if (stream.eat("{")) {
      // let clike handle the content of ${...},
      // we take over again when "}" appears (see hooks).
      state.tokenize = null;
    } else {
      state.tokenize = tokenInterpolationIdentifier;
    }
    return null;
  }

  function tokenInterpolationIdentifier(stream, state) {
    stream.eatWhile(/[\w_]/);
    state.tokenize = popInterpolationStack(state);
    return "variable";
  }

  function tokenNestedComment(depth) {
    return function (stream, state) {
      var ch
      while (ch = stream.next()) {
        if (ch == "*" && stream.eat("/")) {
          if (depth == 1) {
            state.tokenize = null
            break
          } else {
            state.tokenize = tokenNestedComment(depth - 1)
            return state.tokenize(stream, state)
          }
        } else if (ch == "/" && stream.eat("*")) {
          state.tokenize = tokenNestedComment(depth + 1)
          return state.tokenize(stream, state)
        }
      }
      return "comment"
    }
  }

  CodeMirror.registerHelper("hintWords", "application/dart", keywords.concat(atoms).concat(builtins));

  // This is needed to make loading through meta.js work.
  CodeMirror.defineMode("dart", function(conf) {
    return CodeMirror.getMode(conf, "application/dart");
  }, "clike");
});
editors/codemirror/mode/verilog/verilog.min.js000064400000022120152177723720015556 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c){var d=b/f;return"tlv-"+a.tlvIndentationStyle[d]+"-"+c}function c(a){var b;return(b=a.match(h,!1))&&b[2].length>0}a.defineMode("verilog",(function(b,c){function d(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function e(a,b){var c,d=a.peek();if(t[d]&&0!=(c=t[d](a,b)))return c;if(t.tokenBase&&0!=(c=t.tokenBase(a,b)))return c;if(/[,;:\.]/.test(d))return m=a.next(),null;if(w.test(d))return m=a.next(),"bracket";if("`"==d)return a.next(),a.eatWhile(/[\w\$_]/)?"def":null;if("$"==d)return a.next(),a.eatWhile(/[\w\$_]/)?"meta":null;if("#"==d)return a.next(),a.eatWhile(/[\d_.]/),"def";if('"'==d)return a.next(),b.tokenize=f(d),b.tokenize(a,b);if("/"==d){if(a.next(),a.eat("*"))return b.tokenize=g,g(a,b);if(a.eat("/"))return a.skipToEnd(),"comment";a.backUp(1)}if(a.match(C)||a.match(y)||a.match(z)||a.match(A)||a.match(B)||a.match(x)||a.match(C))return"number";if(a.eatWhile(v))return"meta";if(a.eatWhile(/[\w\$_]/)){var e=a.current();return u[e]?(G[e]&&(m="newblock"),J[e]&&(m="newstatement"),n=e,"keyword"):"variable"}return a.next(),null}function f(a){return function(b,c){for(var d,f=!1,g=!1;null!=(d=b.next());){if(d==a&&!f){g=!0;break}f=!f&&"\\"==d}return(g||!f&&!s)&&(c.tokenize=e),"string"}}function g(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=e;break}d="*"==c}return"comment"}function h(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function i(a,b,c){var d=a.indented,e=new h(d,b,c,null,a.context);return a.context=e}function j(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}function k(a,b){if(a==b)return!0;var c=b.split(";");for(var d in c)if(a==c[d])return!0;return!1}function l(){var a=[];for(var b in G)if(G[b]){var c=G[b].split(";");for(var d in c)a.push(c[d])}var e=new RegExp("[{}()\\[\\]]|("+a.join("|")+")$");return e}var m,n,o=b.indentUnit,p=c.statementIndentUnit||o,q=c.dontAlignCalls,r=c.noIndentKeywords||[],s=c.multiLineStrings,t=c.hooks||{},u=d("accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import incdir include initial inout input inside instance int integer interconnect interface intersect join join_any join_none large let liblist library local localparam logic longint macromodule matches medium modport module nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor"),v=/[\+\-\*\/!~&|^%=?:]/,w=/[\[\]{}()]/,x=/\d[0-9_]*/,y=/\d*\s*'s?d\s*\d[0-9_]*/i,z=/\d*\s*'s?b\s*[xz01][xz01_]*/i,A=/\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i,B=/\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i,C=/(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i,D=/^((\w+)|[)}\]])/,E=/[)}\]]/,F=d("case checker class clocking config function generate interface module package primitive program property specify sequence table task"),G={};for(var H in F)G[H]="end"+H;G.begin="end",G.casex="endcase",G.casez="endcase",G.do="while",G.fork="join;join_any;join_none",G.covergroup="endgroup";for(var I in r){var H=r[I];G[H]&&(G[H]=void 0)}var J=d("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");return{electricInput:l(),startState:function(a){var b={tokenize:null,context:new h((a||0)-o,0,"top",!1),indented:0,startOfLine:!0};return t.startState&&t.startState(b),b},token:function(a,b){var c=b.context;if(a.sol()&&(null==c.align&&(c.align=!1),b.indented=a.indentation(),b.startOfLine=!0),t.token){var d=t.token(a,b);if(void 0!==d)return d}if(a.eatSpace())return null;m=null,n=null;var d=(b.tokenize||e)(a,b);if("comment"==d||"meta"==d||"variable"==d)return d;if(null==c.align&&(c.align=!0),m==c.type)j(b);else if(";"==m&&"statement"==c.type||c.type&&k(n,c.type))for(c=j(b);c&&"statement"==c.type;)c=j(b);else if("{"==m)i(b,a.column(),"}");else if("["==m)i(b,a.column(),"]");else if("("==m)i(b,a.column(),")");else if(c&&"endcase"==c.type&&":"==m)i(b,a.column(),"statement");else if("newstatement"==m)i(b,a.column(),"statement");else if("newblock"==m)if("function"!=n||!c||"statement"!=c.type&&"endgroup"!=c.type)if("task"==n&&c&&"statement"==c.type);else{var f=G[n];i(b,a.column(),f)}else;return b.startOfLine=!1,d},indent:function(b,c){if(b.tokenize!=e&&null!=b.tokenize)return a.Pass;if(t.indent){var d=t.indent(b);if(d>=0)return d}var f=b.context,g=c&&c.charAt(0);"statement"==f.type&&"}"==g&&(f=f.prev);var h=!1,i=c.match(D);return i&&(h=k(i[0],f.type)),"statement"==f.type?f.indented+("{"==g?0:p):E.test(f.type)&&f.align&&!q?f.column+(h?0:1):")"!=f.type||h?f.indented+(h?0:o):f.indented+p},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}})),a.defineMIME("text/x-verilog",{name:"verilog"}),a.defineMIME("text/x-systemverilog",{name:"verilog"});var d={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"hr","/":"property","/-":"property","@":"variable-3","@-":"variable-3","@++":"variable-3","@+=":"variable-3","@+=-":"variable-3","@--":"variable-3","@-=":"variable-3","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable-2","**":"variable-2","\\":"keyword",'"':"comment"},e={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},f=3,g=!1,h=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,i=/^[! ]  /,j=/^[! ] */,k=/^\/[\/\*]/;a.defineMIME("text/x-tlv",{name:"verilog",hooks:{electricInput:!1,token:function(a,l){var m,n=void 0;if(a.sol()&&!l.tlvInBlockComment){"\\"==a.peek()&&(n="def",a.skipToEnd(),a.string.match(/\\SV/)?l.tlvCodeActive=!1:a.string.match(/\\TLV/)&&(l.tlvCodeActive=!0)),l.tlvCodeActive&&0==a.pos&&0==l.indented&&(m=a.match(j,!1))&&(l.indented=m[0].length);var o=l.indented,p=o/f;if(p<=l.tlvIndentationStyle.length){var q=a.string.length==o,r=p*f;if(r<a.string.length){var s=a.string.slice(r),t=s[0];e[t]&&(m=s.match(h))&&d[m[1]]&&(o+=f,"\\"==t&&r>0||(l.tlvIndentationStyle[p]=e[t],g&&(l.statementComment=!1),p++))}if(!q)for(;l.tlvIndentationStyle.length>p;)l.tlvIndentationStyle.pop()}l.tlvNextIndent=o}if(l.tlvCodeActive){var u=!1;g&&(u=" "!=a.peek()&&void 0===n&&!l.tlvInBlockComment&&a.column()==l.tlvIndentationStyle.length*f,u&&(l.statementComment&&(u=!1),l.statementComment=a.match(k,!1)));var m;if(void 0!==n)n+=" "+b(l,0,"scope-ident");else if(a.pos/f<l.tlvIndentationStyle.length&&(m=a.match(a.sol()?i:/^   /)))n="tlv-indent-"+(a.pos%2==0?"even":"odd")+" "+b(l,a.pos-f,"indent"),"!"==m[0].charAt(0)&&(n+=" tlv-alert-line-prefix"),c(a)&&(n+=" "+b(l,a.pos,"before-scope-ident"));else if(l.tlvInBlockComment)a.match(/^.*?\*\//)?(l.tlvInBlockComment=!1,g&&!a.eol()&&(l.statementComment=!1)):a.skipToEnd(),n="comment";else if((m=a.match(k))&&!l.tlvInBlockComment)"//"==m[0]?a.skipToEnd():l.tlvInBlockComment=!0,n="comment";else if(m=a.match(h)){var v=m[1],w=m[2];d.hasOwnProperty(v)&&(w.length>0||a.eol())?(n=d[v],a.column()==l.indented&&(n+=" "+b(l,a.column(),"scope-ident"))):(a.backUp(a.current().length-1),n="tlv-default")}else a.match(/^\t+/)?n="tlv-tab":a.match(/^[\[\]{}\(\);\:]+/)?n="meta":(m=a.match(/^[mM]4([\+_])?[\w\d_]*/))?n="+"==m[1]?"tlv-m4-plus":"tlv-m4":a.match(/^ +/)?n=a.eol()?"error":"tlv-default":a.match(/^[\w\d_]+/)?n="number":(a.next(),n="tlv-default");u&&(n+=" tlv-statement")}else a.match(/^[mM]4([\w\d_]*)/)&&(n="tlv-m4");return n},indent:function(a){return 1==a.tlvCodeActive?a.tlvNextIndent:-1},startState:function(a){a.tlvIndentationStyle=[],a.tlvCodeActive=!0,a.tlvNextIndent=-1,a.tlvInBlockComment=!1,g&&(a.statementComment=!1)}}})}));editors/codemirror/mode/verilog/verilog.js000064400000060015152177723720015001 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("verilog", function(config, parserConfig) {

  var indentUnit = config.indentUnit,
      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
      dontAlignCalls = parserConfig.dontAlignCalls,
      noIndentKeywords = parserConfig.noIndentKeywords || [],
      multiLineStrings = parserConfig.multiLineStrings,
      hooks = parserConfig.hooks || {};

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  /**
   * Keywords from IEEE 1800-2012
   */
  var keywords = words(
    "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " +
    "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " +
    "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " +
    "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " +
    "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " +
    "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " +
    "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " +
    "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " +
    "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " +
    "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " +
    "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " +
    "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " +
    "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " +
    "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " +
    "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " +
    "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " +
    "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " +
    "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");

  /** Operators from IEEE 1800-2012
     unary_operator ::=
       + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
     binary_operator ::=
       + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **
       | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<
       | -> | <->
     inc_or_dec_operator ::= ++ | --
     unary_module_path_operator ::=
       ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
     binary_module_path_operator ::=
       == | != | && | || | & | | | ^ | ^~ | ~^
  */
  var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/;
  var isBracketChar = /[\[\]{}()]/;

  var unsignedNumber = /\d[0-9_]*/;
  var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i;
  var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i;
  var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;
  var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;
  var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;

  var closingBracketOrWord = /^((\w+)|[)}\]])/;
  var closingBracket = /[)}\]]/;

  var curPunc;
  var curKeyword;

  // Block openings which are closed by a matching keyword in the form of ("end" + keyword)
  // E.g. "task" => "endtask"
  var blockKeywords = words(
    "case checker class clocking config function generate interface module package " +
    "primitive program property specify sequence table task"
  );

  // Opening/closing pairs
  var openClose = {};
  for (var keyword in blockKeywords) {
    openClose[keyword] = "end" + keyword;
  }
  openClose["begin"] = "end";
  openClose["casex"] = "endcase";
  openClose["casez"] = "endcase";
  openClose["do"   ] = "while";
  openClose["fork" ] = "join;join_any;join_none";
  openClose["covergroup"] = "endgroup";

  for (var i in noIndentKeywords) {
    var keyword = noIndentKeywords[i];
    if (openClose[keyword]) {
      openClose[keyword] = undefined;
    }
  }

  // Keywords which open statements that are ended with a semi-colon
  var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");

  function tokenBase(stream, state) {
    var ch = stream.peek(), style;
    if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;
    if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)
      return style;

    if (/[,;:\.]/.test(ch)) {
      curPunc = stream.next();
      return null;
    }
    if (isBracketChar.test(ch)) {
      curPunc = stream.next();
      return "bracket";
    }
    // Macros (tick-defines)
    if (ch == '`') {
      stream.next();
      if (stream.eatWhile(/[\w\$_]/)) {
        return "def";
      } else {
        return null;
      }
    }
    // System calls
    if (ch == '$') {
      stream.next();
      if (stream.eatWhile(/[\w\$_]/)) {
        return "meta";
      } else {
        return null;
      }
    }
    // Time literals
    if (ch == '#') {
      stream.next();
      stream.eatWhile(/[\d_.]/);
      return "def";
    }
    // Strings
    if (ch == '"') {
      stream.next();
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    // Comments
    if (ch == "/") {
      stream.next();
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
      stream.backUp(1);
    }

    // Numeric literals
    if (stream.match(realLiteral) ||
        stream.match(decimalLiteral) ||
        stream.match(binaryLiteral) ||
        stream.match(octLiteral) ||
        stream.match(hexLiteral) ||
        stream.match(unsignedNumber) ||
        stream.match(realLiteral)) {
      return "number";
    }

    // Operators
    if (stream.eatWhile(isOperatorChar)) {
      return "meta";
    }

    // Keywords / plain variables
    if (stream.eatWhile(/[\w\$_]/)) {
      var cur = stream.current();
      if (keywords[cur]) {
        if (openClose[cur]) {
          curPunc = "newblock";
        }
        if (statementKeywords[cur]) {
          curPunc = "newstatement";
        }
        curKeyword = cur;
        return "keyword";
      }
      return "variable";
    }

    stream.next();
    return null;
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "\\";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = tokenBase;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    var indent = state.indented;
    var c = new Context(indent, col, type, null, state.context);
    return state.context = c;
  }
  function popContext(state) {
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}") {
      state.indented = state.context.indented;
    }
    return state.context = state.context.prev;
  }

  function isClosing(text, contextClosing) {
    if (text == contextClosing) {
      return true;
    } else {
      // contextClosing may be multiple keywords separated by ;
      var closingKeywords = contextClosing.split(";");
      for (var i in closingKeywords) {
        if (text == closingKeywords[i]) {
          return true;
        }
      }
      return false;
    }
  }

  function buildElectricInputRegEx() {
    // Reindentation should occur on any bracket char: {}()[]
    // or on a match of any of the block closing keywords, at
    // the end of a line
    var allClosings = [];
    for (var i in openClose) {
      if (openClose[i]) {
        var closings = openClose[i].split(";");
        for (var j in closings) {
          allClosings.push(closings[j]);
        }
      }
    }
    var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$");
    return re;
  }

  // Interface
  return {

    // Regex to force current line to reindent
    electricInput: buildElectricInputRegEx(),

    startState: function(basecolumn) {
      var state = {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
      if (hooks.startState) hooks.startState(state);
      return state;
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
      }
      if (hooks.token) {
        // Call hook, with an optional return value of a style to override verilog styling.
        var style = hooks.token(stream, state);
        if (style !== undefined) {
          return style;
        }
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      curKeyword = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta" || style == "variable") return style;
      if (ctx.align == null) ctx.align = true;

      if (curPunc == ctx.type) {
        popContext(state);
      } else if ((curPunc == ";" && ctx.type == "statement") ||
               (ctx.type && isClosing(curKeyword, ctx.type))) {
        ctx = popContext(state);
        while (ctx && ctx.type == "statement") ctx = popContext(state);
      } else if (curPunc == "{") {
        pushContext(state, stream.column(), "}");
      } else if (curPunc == "[") {
        pushContext(state, stream.column(), "]");
      } else if (curPunc == "(") {
        pushContext(state, stream.column(), ")");
      } else if (ctx && ctx.type == "endcase" && curPunc == ":") {
        pushContext(state, stream.column(), "statement");
      } else if (curPunc == "newstatement") {
        pushContext(state, stream.column(), "statement");
      } else if (curPunc == "newblock") {
        if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) {
          // The 'function' keyword can appear in some other contexts where it actually does not
          // indicate a function (import/export DPI and covergroup definitions).
          // Do nothing in this case
        } else if (curKeyword == "task" && ctx && ctx.type == "statement") {
          // Same thing for task
        } else {
          var close = openClose[curKeyword];
          pushContext(state, stream.column(), close);
        }
      }

      state.startOfLine = false;
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
      if (hooks.indent) {
        var fromHook = hooks.indent(state);
        if (fromHook >= 0) return fromHook;
      }
      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
      if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
      var closing = false;
      var possibleClosing = textAfter.match(closingBracketOrWord);
      if (possibleClosing)
        closing = isClosing(possibleClosing[0], ctx.type);
      if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
      else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);
      else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit;
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: "//"
  };
});

  CodeMirror.defineMIME("text/x-verilog", {
    name: "verilog"
  });

  CodeMirror.defineMIME("text/x-systemverilog", {
    name: "verilog"
  });



  // TL-Verilog mode.
  // See tl-x.org for language spec.
  // See the mode in action at makerchip.com.
  // Contact: steve.hoover@redwoodeda.com

  // TLV Identifier prefixes.
  // Note that sign is not treated separately, so "+/-" versions of numeric identifiers
  // are included.
  var tlvIdentifierStyle = {
    "|": "link",
    ">": "property",  // Should condition this off for > TLV 1c.
    "$": "variable",
    "$$": "variable",
    "?$": "qualifier",
    "?*": "qualifier",
    "-": "hr",
    "/": "property",
    "/-": "property",
    "@": "variable-3",
    "@-": "variable-3",
    "@++": "variable-3",
    "@+=": "variable-3",
    "@+=-": "variable-3",
    "@--": "variable-3",
    "@-=": "variable-3",
    "%+": "tag",
    "%-": "tag",
    "%": "tag",
    ">>": "tag",
    "<<": "tag",
    "<>": "tag",
    "#": "tag",  // Need to choose a style for this.
    "^": "attribute",
    "^^": "attribute",
    "^!": "attribute",
    "*": "variable-2",
    "**": "variable-2",
    "\\": "keyword",
    "\"": "comment"
  };

  // Lines starting with these characters define scope (result in indentation).
  var tlvScopePrefixChars = {
    "/": "beh-hier",
    ">": "beh-hier",
    "-": "phys-hier",
    "|": "pipe",
    "?": "when",
    "@": "stage",
    "\\": "keyword"
  };
  var tlvIndentUnit = 3;
  var tlvTrackStatements = false;
  var tlvIdentMatch = /^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/;  // Matches an identifiere.
  // Note that ':' is excluded, because of it's use in [:].
  var tlvFirstLevelIndentMatch = /^[! ]  /;
  var tlvLineIndentationMatch = /^[! ] */;
  var tlvCommentMatch = /^\/[\/\*]/;


  // Returns a style specific to the scope at the given indentation column.
  // Type is one of: "indent", "scope-ident", "before-scope-ident".
  function tlvScopeStyle(state, indentation, type) {
    // Begin scope.
    var depth = indentation / tlvIndentUnit;  // TODO: Pass this in instead.
    return "tlv-" + state.tlvIndentationStyle[depth] + "-" + type;
  }

  // Return true if the next thing in the stream is an identifier with a mnemonic.
  function tlvIdentNext(stream) {
    var match;
    return (match = stream.match(tlvIdentMatch, false)) && match[2].length > 0;
  }

  CodeMirror.defineMIME("text/x-tlv", {
    name: "verilog",

    hooks: {

      electricInput: false,


      // Return undefined for verilog tokenizing, or style for TLV token (null not used).
      // Standard CM styles are used for most formatting, but some TL-Verilog-specific highlighting
      // can be enabled with the definition of cm-tlv-* styles, including highlighting for:
      //   - M4 tokens
      //   - TLV scope indentation
      //   - Statement delimitation (enabled by tlvTrackStatements)
      token: function(stream, state) {
        var style = undefined;
        var match;  // Return value of pattern matches.

        // Set highlighting mode based on code region (TLV or SV).
        if (stream.sol() && ! state.tlvInBlockComment) {
          // Process region.
          if (stream.peek() == '\\') {
            style = "def";
            stream.skipToEnd();
            if (stream.string.match(/\\SV/)) {
              state.tlvCodeActive = false;
            } else if (stream.string.match(/\\TLV/)){
              state.tlvCodeActive = true;
            }
          }
          // Correct indentation in the face of a line prefix char.
          if (state.tlvCodeActive && stream.pos == 0 &&
              (state.indented == 0) && (match = stream.match(tlvLineIndentationMatch, false))) {
            state.indented = match[0].length;
          }

          // Compute indentation state:
          //   o Auto indentation on next line
          //   o Indentation scope styles
          var indented = state.indented;
          var depth = indented / tlvIndentUnit;
          if (depth <= state.tlvIndentationStyle.length) {
            // not deeper than current scope

            var blankline = stream.string.length == indented;
            var chPos = depth * tlvIndentUnit;
            if (chPos < stream.string.length) {
              var bodyString = stream.string.slice(chPos);
              var ch = bodyString[0];
              if (tlvScopePrefixChars[ch] && ((match = bodyString.match(tlvIdentMatch)) &&
                  tlvIdentifierStyle[match[1]])) {
                // This line begins scope.
                // Next line gets indented one level.
                indented += tlvIndentUnit;
                // Style the next level of indentation (except non-region keyword identifiers,
                //   which are statements themselves)
                if (!(ch == "\\" && chPos > 0)) {
                  state.tlvIndentationStyle[depth] = tlvScopePrefixChars[ch];
                  if (tlvTrackStatements) {state.statementComment = false;}
                  depth++;
                }
              }
            }
            // Clear out deeper indentation levels unless line is blank.
            if (!blankline) {
              while (state.tlvIndentationStyle.length > depth) {
                state.tlvIndentationStyle.pop();
              }
            }
          }
          // Set next level of indentation.
          state.tlvNextIndent = indented;
        }

        if (state.tlvCodeActive) {
          // Highlight as TLV.

          var beginStatement = false;
          if (tlvTrackStatements) {
            // This starts a statement if the position is at the scope level
            // and we're not within a statement leading comment.
            beginStatement =
                   (stream.peek() != " ") &&   // not a space
                   (style === undefined) &&    // not a region identifier
                   !state.tlvInBlockComment && // not in block comment
                   //!stream.match(tlvCommentMatch, false) && // not comment start
                   (stream.column() == state.tlvIndentationStyle.length * tlvIndentUnit);  // at scope level
            if (beginStatement) {
              if (state.statementComment) {
                // statement already started by comment
                beginStatement = false;
              }
              state.statementComment =
                   stream.match(tlvCommentMatch, false); // comment start
            }
          }

          var match;
          if (style !== undefined) {
            // Region line.
            style += " " + tlvScopeStyle(state, 0, "scope-ident")
          } else if (((stream.pos / tlvIndentUnit) < state.tlvIndentationStyle.length) &&
                     (match = stream.match(stream.sol() ? tlvFirstLevelIndentMatch : /^   /))) {
            // Indentation
            style = // make this style distinct from the previous one to prevent
                    // codemirror from combining spans
                    "tlv-indent-" + (((stream.pos % 2) == 0) ? "even" : "odd") +
                    // and style it
                    " " + tlvScopeStyle(state, stream.pos - tlvIndentUnit, "indent");
            // Style the line prefix character.
            if (match[0].charAt(0) == "!") {
              style += " tlv-alert-line-prefix";
            }
            // Place a class before a scope identifier.
            if (tlvIdentNext(stream)) {
              style += " " + tlvScopeStyle(state, stream.pos, "before-scope-ident");
            }
          } else if (state.tlvInBlockComment) {
            // In a block comment.
            if (stream.match(/^.*?\*\//)) {
              // Exit block comment.
              state.tlvInBlockComment = false;
              if (tlvTrackStatements && !stream.eol()) {
                // Anything after comment is assumed to be real statement content.
                state.statementComment = false;
              }
            } else {
              stream.skipToEnd();
            }
            style = "comment";
          } else if ((match = stream.match(tlvCommentMatch)) && !state.tlvInBlockComment) {
            // Start comment.
            if (match[0] == "//") {
              // Line comment.
              stream.skipToEnd();
            } else {
              // Block comment.
              state.tlvInBlockComment = true;
            }
            style = "comment";
          } else if (match = stream.match(tlvIdentMatch)) {
            // looks like an identifier (or identifier prefix)
            var prefix = match[1];
            var mnemonic = match[2];
            if (// is identifier prefix
                tlvIdentifierStyle.hasOwnProperty(prefix) &&
                // has mnemonic or we're at the end of the line (maybe it hasn't been typed yet)
                (mnemonic.length > 0 || stream.eol())) {
              style = tlvIdentifierStyle[prefix];
              if (stream.column() == state.indented) {
                // Begin scope.
                style += " " + tlvScopeStyle(state, stream.column(), "scope-ident")
              }
            } else {
              // Just swallow one character and try again.
              // This enables subsequent identifier match with preceding symbol character, which
              //   is legal within a statement.  (Eg, !$reset).  It also enables detection of
              //   comment start with preceding symbols.
              stream.backUp(stream.current().length - 1);
              style = "tlv-default";
            }
          } else if (stream.match(/^\t+/)) {
            // Highlight tabs, which are illegal.
            style = "tlv-tab";
          } else if (stream.match(/^[\[\]{}\(\);\:]+/)) {
            // [:], (), {}, ;.
            style = "meta";
          } else if (match = stream.match(/^[mM]4([\+_])?[\w\d_]*/)) {
            // m4 pre proc
            style = (match[1] == "+") ? "tlv-m4-plus" : "tlv-m4";
          } else if (stream.match(/^ +/)){
            // Skip over spaces.
            if (stream.eol()) {
              // Trailing spaces.
              style = "error";
            } else {
              // Non-trailing spaces.
              style = "tlv-default";
            }
          } else if (stream.match(/^[\w\d_]+/)) {
            // alpha-numeric token.
            style = "number";
          } else {
            // Eat the next char w/ no formatting.
            stream.next();
            style = "tlv-default";
          }
          if (beginStatement) {
            style += " tlv-statement";
          }
        } else {
          if (stream.match(/^[mM]4([\w\d_]*)/)) {
            // m4 pre proc
            style = "tlv-m4";
          }
        }
        return style;
      },

      indent: function(state) {
        return (state.tlvCodeActive == true) ? state.tlvNextIndent : -1;
      },

      startState: function(state) {
        state.tlvIndentationStyle = [];  // Styles to use for each level of indentation.
        state.tlvCodeActive = true;  // True when we're in a TLV region (and at beginning of file).
        state.tlvNextIndent = -1;    // The number of spaces to autoindent the next line if tlvCodeActive.
        state.tlvInBlockComment = false;  // True inside /**/ comment.
        if (tlvTrackStatements) {
          state.statementComment = false;  // True inside a statement's header comment.
        }
      }

    }
  });
});
editors/codemirror/mode/mscgen/mscgen.min.js000064400000007421152177723720015177 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return new RegExp("\\b("+a.join("|")+")\\b","i")}function c(a){return new RegExp("("+a.join("|")+")","i")}function d(){return{inComment:!1,inString:!1,inAttributeList:!1,inScript:!1}}function e(a){return{inComment:a.inComment,inString:a.inString,inAttributeList:a.inAttributeList,inScript:a.inScript}}function f(a){return function(d,e){if(d.match(c(a.brackets),!0,!0))return"bracket";if(!e.inComment){if(d.match(/\/\*[^\*\/]*/,!0,!0))return e.inComment=!0,"comment";if(d.match(c(a.singlecomment),!0,!0))return d.skipToEnd(),"comment"}if(e.inComment)return d.match(/[^\*\/]*\*\//,!0,!0)?e.inComment=!1:d.skipToEnd(),"comment";if(!e.inString&&d.match(/\"(\\\"|[^\"])*/,!0,!0))return e.inString=!0,"string";if(e.inString)return d.match(/[^\"]*\"/,!0,!0)?e.inString=!1:d.skipToEnd(),"string";if(a.keywords&&d.match(b(a.keywords),!0,!0))return"keyword";if(d.match(b(a.options),!0,!0))return"keyword";if(d.match(b(a.arcsWords),!0,!0))return"keyword";if(d.match(c(a.arcsOthers),!0,!0))return"keyword";if(a.operators&&d.match(c(a.operators),!0,!0))return"operator";if(a.constants&&d.match(c(a.constants),!0,!0))return"variable";if(!a.inAttributeList&&a.attributes&&d.match(/\[/,!0,!0))return a.inAttributeList=!0,"bracket";if(a.inAttributeList){if(null!==a.attributes&&d.match(b(a.attributes),!0,!0))return"attribute";if(d.match(/]/,!0,!0))return a.inAttributeList=!1,"bracket"}return d.next(),"base"}}var g={mscgen:{keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]},xu:{keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]},msgenny:{keywords:null,options:["hscale","width","arcgradient","wordwraparcs","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}};a.defineMode("mscgen",(function(a,b){var c=g[b&&b.language||"mscgen"];return{startState:d,copyState:e,token:f(c),lineComment:"#",blockCommentStart:"/*",blockCommentEnd:"*/"}})),a.defineMIME("text/x-mscgen","mscgen"),a.defineMIME("text/x-xu",{name:"mscgen",language:"xu"}),a.defineMIME("text/x-msgenny",{name:"mscgen",language:"msgenny"})}));editors/codemirror/mode/mscgen/mscgen.js000064400000015245152177723720014420 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// mode(s) for the sequence chart dsl's mscgen, xù and msgenny
// For more information on mscgen, see the site of the original author:
// http://www.mcternan.me.uk/mscgen
//
// This mode for mscgen and the two derivative languages were
// originally made for use in the mscgen_js interpreter
// (https://sverweij.github.io/mscgen_js)

(function(mod) {
  if ( typeof exports == "object" && typeof module == "object")// CommonJS
    mod(require("../../lib/codemirror"));
  else if ( typeof define == "function" && define.amd)// AMD
    define(["../../lib/codemirror"], mod);
  else// Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var languages = {
    mscgen: {
      "keywords" : ["msc"],
      "options" : ["hscale", "width", "arcgradient", "wordwraparcs"],
      "constants" : ["true", "false", "on", "off"],
      "attributes" : ["label", "idurl", "id", "url", "linecolor", "linecolour", "textcolor", "textcolour", "textbgcolor", "textbgcolour", "arclinecolor", "arclinecolour", "arctextcolor", "arctextcolour", "arctextbgcolor", "arctextbgcolour", "arcskip"],
      "brackets" : ["\\{", "\\}"], // [ and  ] are brackets too, but these get handled in with lists
      "arcsWords" : ["note", "abox", "rbox", "box"],
      "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
      "singlecomment" : ["//", "#"],
      "operators" : ["="]
    },
    xu: {
      "keywords" : ["msc", "xu"],
      "options" : ["hscale", "width", "arcgradient", "wordwraparcs", "watermark"],
      "constants" : ["true", "false", "on", "off", "auto"],
      "attributes" : ["label", "idurl", "id", "url", "linecolor", "linecolour", "textcolor", "textcolour", "textbgcolor", "textbgcolour", "arclinecolor", "arclinecolour", "arctextcolor", "arctextcolour", "arctextbgcolor", "arctextbgcolour", "arcskip"],
      "brackets" : ["\\{", "\\}"],  // [ and  ] are brackets too, but these get handled in with lists
      "arcsWords" : ["note", "abox", "rbox", "box", "alt", "else", "opt", "break", "par", "seq", "strict", "neg", "critical", "ignore", "consider", "assert", "loop", "ref", "exc"],
      "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
      "singlecomment" : ["//", "#"],
      "operators" : ["="]
    },
    msgenny: {
      "keywords" : null,
      "options" : ["hscale", "width", "arcgradient", "wordwraparcs", "watermark"],
      "constants" : ["true", "false", "on", "off", "auto"],
      "attributes" : null,
      "brackets" : ["\\{", "\\}"],
      "arcsWords" : ["note", "abox", "rbox", "box", "alt", "else", "opt", "break", "par", "seq", "strict", "neg", "critical", "ignore", "consider", "assert", "loop", "ref", "exc"],
      "arcsOthers" : ["\\|\\|\\|", "\\.\\.\\.", "---", "--", "<->", "==", "<<=>>", "<=>", "\\.\\.", "<<>>", "::", "<:>", "->", "=>>", "=>", ">>", ":>", "<-", "<<=", "<=", "<<", "<:", "x-", "-x"],
      "singlecomment" : ["//", "#"],
      "operators" : ["="]
    }
  }

  CodeMirror.defineMode("mscgen", function(_, modeConfig) {
    var language = languages[modeConfig && modeConfig.language || "mscgen"]
    return {
      startState: startStateFn,
      copyState: copyStateFn,
      token: produceTokenFunction(language),
      lineComment : "#",
      blockCommentStart : "/*",
      blockCommentEnd : "*/"
    };
  });

  CodeMirror.defineMIME("text/x-mscgen", "mscgen");
  CodeMirror.defineMIME("text/x-xu", {name: "mscgen", language: "xu"});
  CodeMirror.defineMIME("text/x-msgenny", {name: "mscgen", language: "msgenny"});

  function wordRegexpBoundary(pWords) {
    return new RegExp("\\b(" + pWords.join("|") + ")\\b", "i");
  }

  function wordRegexp(pWords) {
    return new RegExp("(" + pWords.join("|") + ")", "i");
  }

  function startStateFn() {
    return {
      inComment : false,
      inString : false,
      inAttributeList : false,
      inScript : false
    };
  }

  function copyStateFn(pState) {
    return {
      inComment : pState.inComment,
      inString : pState.inString,
      inAttributeList : pState.inAttributeList,
      inScript : pState.inScript
    };
  }

  function produceTokenFunction(pConfig) {

    return function(pStream, pState) {
      if (pStream.match(wordRegexp(pConfig.brackets), true, true)) {
        return "bracket";
      }
      /* comments */
      if (!pState.inComment) {
        if (pStream.match(/\/\*[^\*\/]*/, true, true)) {
          pState.inComment = true;
          return "comment";
        }
        if (pStream.match(wordRegexp(pConfig.singlecomment), true, true)) {
          pStream.skipToEnd();
          return "comment";
        }
      }
      if (pState.inComment) {
        if (pStream.match(/[^\*\/]*\*\//, true, true))
          pState.inComment = false;
        else
          pStream.skipToEnd();
        return "comment";
      }
      /* strings */
      if (!pState.inString && pStream.match(/\"(\\\"|[^\"])*/, true, true)) {
        pState.inString = true;
        return "string";
      }
      if (pState.inString) {
        if (pStream.match(/[^\"]*\"/, true, true))
          pState.inString = false;
        else
          pStream.skipToEnd();
        return "string";
      }
      /* keywords & operators */
      if (!!pConfig.keywords && pStream.match(wordRegexpBoundary(pConfig.keywords), true, true))
        return "keyword";

      if (pStream.match(wordRegexpBoundary(pConfig.options), true, true))
        return "keyword";

      if (pStream.match(wordRegexpBoundary(pConfig.arcsWords), true, true))
        return "keyword";

      if (pStream.match(wordRegexp(pConfig.arcsOthers), true, true))
        return "keyword";

      if (!!pConfig.operators && pStream.match(wordRegexp(pConfig.operators), true, true))
        return "operator";

      if (!!pConfig.constants && pStream.match(wordRegexp(pConfig.constants), true, true))
        return "variable";

      /* attribute lists */
      if (!pConfig.inAttributeList && !!pConfig.attributes && pStream.match(/\[/, true, true)) {
        pConfig.inAttributeList = true;
        return "bracket";
      }
      if (pConfig.inAttributeList) {
        if (pConfig.attributes !== null && pStream.match(wordRegexpBoundary(pConfig.attributes), true, true)) {
          return "attribute";
        }
        if (pStream.match(/]/, true, true)) {
          pConfig.inAttributeList = false;
          return "bracket";
        }
      }

      pStream.next();
      return "base";
    };
  }

});
editors/codemirror/mode/perl/perl.js000064400000155510152177723720013574 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)
// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("perl",function(){
        // http://perldoc.perl.org
        var PERL={                                      //   null - magic touch
                                                        //   1 - keyword
                                                        //   2 - def
                                                        //   3 - atom
                                                        //   4 - operator
                                                        //   5 - variable-2 (predefined)
                                                        //   [x,y] - x=1,2,3; y=must be defined if x{...}
                                                //      PERL operators
                '->'                            :   4,
                '++'                            :   4,
                '--'                            :   4,
                '**'                            :   4,
                                                        //   ! ~ \ and unary + and -
                '=~'                            :   4,
                '!~'                            :   4,
                '*'                             :   4,
                '/'                             :   4,
                '%'                             :   4,
                'x'                             :   4,
                '+'                             :   4,
                '-'                             :   4,
                '.'                             :   4,
                '<<'                            :   4,
                '>>'                            :   4,
                                                        //   named unary operators
                '<'                             :   4,
                '>'                             :   4,
                '<='                            :   4,
                '>='                            :   4,
                'lt'                            :   4,
                'gt'                            :   4,
                'le'                            :   4,
                'ge'                            :   4,
                '=='                            :   4,
                '!='                            :   4,
                '<=>'                           :   4,
                'eq'                            :   4,
                'ne'                            :   4,
                'cmp'                           :   4,
                '~~'                            :   4,
                '&'                             :   4,
                '|'                             :   4,
                '^'                             :   4,
                '&&'                            :   4,
                '||'                            :   4,
                '//'                            :   4,
                '..'                            :   4,
                '...'                           :   4,
                '?'                             :   4,
                ':'                             :   4,
                '='                             :   4,
                '+='                            :   4,
                '-='                            :   4,
                '*='                            :   4,  //   etc. ???
                ','                             :   4,
                '=>'                            :   4,
                '::'                            :   4,
                                                        //   list operators (rightward)
                'not'                           :   4,
                'and'                           :   4,
                'or'                            :   4,
                'xor'                           :   4,
                                                //      PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)
                'BEGIN'                         :   [5,1],
                'END'                           :   [5,1],
                'PRINT'                         :   [5,1],
                'PRINTF'                        :   [5,1],
                'GETC'                          :   [5,1],
                'READ'                          :   [5,1],
                'READLINE'                      :   [5,1],
                'DESTROY'                       :   [5,1],
                'TIE'                           :   [5,1],
                'TIEHANDLE'                     :   [5,1],
                'UNTIE'                         :   [5,1],
                'STDIN'                         :    5,
                'STDIN_TOP'                     :    5,
                'STDOUT'                        :    5,
                'STDOUT_TOP'                    :    5,
                'STDERR'                        :    5,
                'STDERR_TOP'                    :    5,
                '$ARG'                          :    5,
                '$_'                            :    5,
                '@ARG'                          :    5,
                '@_'                            :    5,
                '$LIST_SEPARATOR'               :    5,
                '$"'                            :    5,
                '$PROCESS_ID'                   :    5,
                '$PID'                          :    5,
                '$$'                            :    5,
                '$REAL_GROUP_ID'                :    5,
                '$GID'                          :    5,
                '$('                            :    5,
                '$EFFECTIVE_GROUP_ID'           :    5,
                '$EGID'                         :    5,
                '$)'                            :    5,
                '$PROGRAM_NAME'                 :    5,
                '$0'                            :    5,
                '$SUBSCRIPT_SEPARATOR'          :    5,
                '$SUBSEP'                       :    5,
                '$;'                            :    5,
                '$REAL_USER_ID'                 :    5,
                '$UID'                          :    5,
                '$<'                            :    5,
                '$EFFECTIVE_USER_ID'            :    5,
                '$EUID'                         :    5,
                '$>'                            :    5,
                '$a'                            :    5,
                '$b'                            :    5,
                '$COMPILING'                    :    5,
                '$^C'                           :    5,
                '$DEBUGGING'                    :    5,
                '$^D'                           :    5,
                '${^ENCODING}'                  :    5,
                '$ENV'                          :    5,
                '%ENV'                          :    5,
                '$SYSTEM_FD_MAX'                :    5,
                '$^F'                           :    5,
                '@F'                            :    5,
                '${^GLOBAL_PHASE}'              :    5,
                '$^H'                           :    5,
                '%^H'                           :    5,
                '@INC'                          :    5,
                '%INC'                          :    5,
                '$INPLACE_EDIT'                 :    5,
                '$^I'                           :    5,
                '$^M'                           :    5,
                '$OSNAME'                       :    5,
                '$^O'                           :    5,
                '${^OPEN}'                      :    5,
                '$PERLDB'                       :    5,
                '$^P'                           :    5,
                '$SIG'                          :    5,
                '%SIG'                          :    5,
                '$BASETIME'                     :    5,
                '$^T'                           :    5,
                '${^TAINT}'                     :    5,
                '${^UNICODE}'                   :    5,
                '${^UTF8CACHE}'                 :    5,
                '${^UTF8LOCALE}'                :    5,
                '$PERL_VERSION'                 :    5,
                '$^V'                           :    5,
                '${^WIN32_SLOPPY_STAT}'         :    5,
                '$EXECUTABLE_NAME'              :    5,
                '$^X'                           :    5,
                '$1'                            :    5, // - regexp $1, $2...
                '$MATCH'                        :    5,
                '$&'                            :    5,
                '${^MATCH}'                     :    5,
                '$PREMATCH'                     :    5,
                '$`'                            :    5,
                '${^PREMATCH}'                  :    5,
                '$POSTMATCH'                    :    5,
                "$'"                            :    5,
                '${^POSTMATCH}'                 :    5,
                '$LAST_PAREN_MATCH'             :    5,
                '$+'                            :    5,
                '$LAST_SUBMATCH_RESULT'         :    5,
                '$^N'                           :    5,
                '@LAST_MATCH_END'               :    5,
                '@+'                            :    5,
                '%LAST_PAREN_MATCH'             :    5,
                '%+'                            :    5,
                '@LAST_MATCH_START'             :    5,
                '@-'                            :    5,
                '%LAST_MATCH_START'             :    5,
                '%-'                            :    5,
                '$LAST_REGEXP_CODE_RESULT'      :    5,
                '$^R'                           :    5,
                '${^RE_DEBUG_FLAGS}'            :    5,
                '${^RE_TRIE_MAXBUF}'            :    5,
                '$ARGV'                         :    5,
                '@ARGV'                         :    5,
                'ARGV'                          :    5,
                'ARGVOUT'                       :    5,
                '$OUTPUT_FIELD_SEPARATOR'       :    5,
                '$OFS'                          :    5,
                '$,'                            :    5,
                '$INPUT_LINE_NUMBER'            :    5,
                '$NR'                           :    5,
                '$.'                            :    5,
                '$INPUT_RECORD_SEPARATOR'       :    5,
                '$RS'                           :    5,
                '$/'                            :    5,
                '$OUTPUT_RECORD_SEPARATOR'      :    5,
                '$ORS'                          :    5,
                '$\\'                           :    5,
                '$OUTPUT_AUTOFLUSH'             :    5,
                '$|'                            :    5,
                '$ACCUMULATOR'                  :    5,
                '$^A'                           :    5,
                '$FORMAT_FORMFEED'              :    5,
                '$^L'                           :    5,
                '$FORMAT_PAGE_NUMBER'           :    5,
                '$%'                            :    5,
                '$FORMAT_LINES_LEFT'            :    5,
                '$-'                            :    5,
                '$FORMAT_LINE_BREAK_CHARACTERS' :    5,
                '$:'                            :    5,
                '$FORMAT_LINES_PER_PAGE'        :    5,
                '$='                            :    5,
                '$FORMAT_TOP_NAME'              :    5,
                '$^'                            :    5,
                '$FORMAT_NAME'                  :    5,
                '$~'                            :    5,
                '${^CHILD_ERROR_NATIVE}'        :    5,
                '$EXTENDED_OS_ERROR'            :    5,
                '$^E'                           :    5,
                '$EXCEPTIONS_BEING_CAUGHT'      :    5,
                '$^S'                           :    5,
                '$WARNING'                      :    5,
                '$^W'                           :    5,
                '${^WARNING_BITS}'              :    5,
                '$OS_ERROR'                     :    5,
                '$ERRNO'                        :    5,
                '$!'                            :    5,
                '%OS_ERROR'                     :    5,
                '%ERRNO'                        :    5,
                '%!'                            :    5,
                '$CHILD_ERROR'                  :    5,
                '$?'                            :    5,
                '$EVAL_ERROR'                   :    5,
                '$@'                            :    5,
                '$OFMT'                         :    5,
                '$#'                            :    5,
                '$*'                            :    5,
                '$ARRAY_BASE'                   :    5,
                '$['                            :    5,
                '$OLD_PERL_VERSION'             :    5,
                '$]'                            :    5,
                                                //      PERL blocks
                'if'                            :[1,1],
                elsif                           :[1,1],
                'else'                          :[1,1],
                'while'                         :[1,1],
                unless                          :[1,1],
                'for'                           :[1,1],
                foreach                         :[1,1],
                                                //      PERL functions
                'abs'                           :1,     // - absolute value function
                accept                          :1,     // - accept an incoming socket connect
                alarm                           :1,     // - schedule a SIGALRM
                'atan2'                         :1,     // - arctangent of Y/X in the range -PI to PI
                bind                            :1,     // - binds an address to a socket
                binmode                         :1,     // - prepare binary files for I/O
                bless                           :1,     // - create an object
                bootstrap                       :1,     //
                'break'                         :1,     // - break out of a "given" block
                caller                          :1,     // - get context of the current subroutine call
                chdir                           :1,     // - change your current working directory
                chmod                           :1,     // - changes the permissions on a list of files
                chomp                           :1,     // - remove a trailing record separator from a string
                chop                            :1,     // - remove the last character from a string
                chown                           :1,     // - change the ownership on a list of files
                chr                             :1,     // - get character this number represents
                chroot                          :1,     // - make directory new root for path lookups
                close                           :1,     // - close file (or pipe or socket) handle
                closedir                        :1,     // - close directory handle
                connect                         :1,     // - connect to a remote socket
                'continue'                      :[1,1], // - optional trailing block in a while or foreach
                'cos'                           :1,     // - cosine function
                crypt                           :1,     // - one-way passwd-style encryption
                dbmclose                        :1,     // - breaks binding on a tied dbm file
                dbmopen                         :1,     // - create binding on a tied dbm file
                'default'                       :1,     //
                defined                         :1,     // - test whether a value, variable, or function is defined
                'delete'                        :1,     // - deletes a value from a hash
                die                             :1,     // - raise an exception or bail out
                'do'                            :1,     // - turn a BLOCK into a TERM
                dump                            :1,     // - create an immediate core dump
                each                            :1,     // - retrieve the next key/value pair from a hash
                endgrent                        :1,     // - be done using group file
                endhostent                      :1,     // - be done using hosts file
                endnetent                       :1,     // - be done using networks file
                endprotoent                     :1,     // - be done using protocols file
                endpwent                        :1,     // - be done using passwd file
                endservent                      :1,     // - be done using services file
                eof                             :1,     // - test a filehandle for its end
                'eval'                          :1,     // - catch exceptions or compile and run code
                'exec'                          :1,     // - abandon this program to run another
                exists                          :1,     // - test whether a hash key is present
                exit                            :1,     // - terminate this program
                'exp'                           :1,     // - raise I to a power
                fcntl                           :1,     // - file control system call
                fileno                          :1,     // - return file descriptor from filehandle
                flock                           :1,     // - lock an entire file with an advisory lock
                fork                            :1,     // - create a new process just like this one
                format                          :1,     // - declare a picture format with use by the write() function
                formline                        :1,     // - internal function used for formats
                getc                            :1,     // - get the next character from the filehandle
                getgrent                        :1,     // - get next group record
                getgrgid                        :1,     // - get group record given group user ID
                getgrnam                        :1,     // - get group record given group name
                gethostbyaddr                   :1,     // - get host record given its address
                gethostbyname                   :1,     // - get host record given name
                gethostent                      :1,     // - get next hosts record
                getlogin                        :1,     // - return who logged in at this tty
                getnetbyaddr                    :1,     // - get network record given its address
                getnetbyname                    :1,     // - get networks record given name
                getnetent                       :1,     // - get next networks record
                getpeername                     :1,     // - find the other end of a socket connection
                getpgrp                         :1,     // - get process group
                getppid                         :1,     // - get parent process ID
                getpriority                     :1,     // - get current nice value
                getprotobyname                  :1,     // - get protocol record given name
                getprotobynumber                :1,     // - get protocol record numeric protocol
                getprotoent                     :1,     // - get next protocols record
                getpwent                        :1,     // - get next passwd record
                getpwnam                        :1,     // - get passwd record given user login name
                getpwuid                        :1,     // - get passwd record given user ID
                getservbyname                   :1,     // - get services record given its name
                getservbyport                   :1,     // - get services record given numeric port
                getservent                      :1,     // - get next services record
                getsockname                     :1,     // - retrieve the sockaddr for a given socket
                getsockopt                      :1,     // - get socket options on a given socket
                given                           :1,     //
                glob                            :1,     // - expand filenames using wildcards
                gmtime                          :1,     // - convert UNIX time into record or string using Greenwich time
                'goto'                          :1,     // - create spaghetti code
                grep                            :1,     // - locate elements in a list test true against a given criterion
                hex                             :1,     // - convert a string to a hexadecimal number
                'import'                        :1,     // - patch a module's namespace into your own
                index                           :1,     // - find a substring within a string
                'int'                           :1,     // - get the integer portion of a number
                ioctl                           :1,     // - system-dependent device control system call
                'join'                          :1,     // - join a list into a string using a separator
                keys                            :1,     // - retrieve list of indices from a hash
                kill                            :1,     // - send a signal to a process or process group
                last                            :1,     // - exit a block prematurely
                lc                              :1,     // - return lower-case version of a string
                lcfirst                         :1,     // - return a string with just the next letter in lower case
                length                          :1,     // - return the number of bytes in a string
                'link'                          :1,     // - create a hard link in the filesytem
                listen                          :1,     // - register your socket as a server
                local                           : 2,    // - create a temporary value for a global variable (dynamic scoping)
                localtime                       :1,     // - convert UNIX time into record or string using local time
                lock                            :1,     // - get a thread lock on a variable, subroutine, or method
                'log'                           :1,     // - retrieve the natural logarithm for a number
                lstat                           :1,     // - stat a symbolic link
                m                               :null,  // - match a string with a regular expression pattern
                map                             :1,     // - apply a change to a list to get back a new list with the changes
                mkdir                           :1,     // - create a directory
                msgctl                          :1,     // - SysV IPC message control operations
                msgget                          :1,     // - get SysV IPC message queue
                msgrcv                          :1,     // - receive a SysV IPC message from a message queue
                msgsnd                          :1,     // - send a SysV IPC message to a message queue
                my                              : 2,    // - declare and assign a local variable (lexical scoping)
                'new'                           :1,     //
                next                            :1,     // - iterate a block prematurely
                no                              :1,     // - unimport some module symbols or semantics at compile time
                oct                             :1,     // - convert a string to an octal number
                open                            :1,     // - open a file, pipe, or descriptor
                opendir                         :1,     // - open a directory
                ord                             :1,     // - find a character's numeric representation
                our                             : 2,    // - declare and assign a package variable (lexical scoping)
                pack                            :1,     // - convert a list into a binary representation
                'package'                       :1,     // - declare a separate global namespace
                pipe                            :1,     // - open a pair of connected filehandles
                pop                             :1,     // - remove the last element from an array and return it
                pos                             :1,     // - find or set the offset for the last/next m//g search
                print                           :1,     // - output a list to a filehandle
                printf                          :1,     // - output a formatted list to a filehandle
                prototype                       :1,     // - get the prototype (if any) of a subroutine
                push                            :1,     // - append one or more elements to an array
                q                               :null,  // - singly quote a string
                qq                              :null,  // - doubly quote a string
                qr                              :null,  // - Compile pattern
                quotemeta                       :null,  // - quote regular expression magic characters
                qw                              :null,  // - quote a list of words
                qx                              :null,  // - backquote quote a string
                rand                            :1,     // - retrieve the next pseudorandom number
                read                            :1,     // - fixed-length buffered input from a filehandle
                readdir                         :1,     // - get a directory from a directory handle
                readline                        :1,     // - fetch a record from a file
                readlink                        :1,     // - determine where a symbolic link is pointing
                readpipe                        :1,     // - execute a system command and collect standard output
                recv                            :1,     // - receive a message over a Socket
                redo                            :1,     // - start this loop iteration over again
                ref                             :1,     // - find out the type of thing being referenced
                rename                          :1,     // - change a filename
                require                         :1,     // - load in external functions from a library at runtime
                reset                           :1,     // - clear all variables of a given name
                'return'                        :1,     // - get out of a function early
                reverse                         :1,     // - flip a string or a list
                rewinddir                       :1,     // - reset directory handle
                rindex                          :1,     // - right-to-left substring search
                rmdir                           :1,     // - remove a directory
                s                               :null,  // - replace a pattern with a string
                say                             :1,     // - print with newline
                scalar                          :1,     // - force a scalar context
                seek                            :1,     // - reposition file pointer for random-access I/O
                seekdir                         :1,     // - reposition directory pointer
                select                          :1,     // - reset default output or do I/O multiplexing
                semctl                          :1,     // - SysV semaphore control operations
                semget                          :1,     // - get set of SysV semaphores
                semop                           :1,     // - SysV semaphore operations
                send                            :1,     // - send a message over a socket
                setgrent                        :1,     // - prepare group file for use
                sethostent                      :1,     // - prepare hosts file for use
                setnetent                       :1,     // - prepare networks file for use
                setpgrp                         :1,     // - set the process group of a process
                setpriority                     :1,     // - set a process's nice value
                setprotoent                     :1,     // - prepare protocols file for use
                setpwent                        :1,     // - prepare passwd file for use
                setservent                      :1,     // - prepare services file for use
                setsockopt                      :1,     // - set some socket options
                shift                           :1,     // - remove the first element of an array, and return it
                shmctl                          :1,     // - SysV shared memory operations
                shmget                          :1,     // - get SysV shared memory segment identifier
                shmread                         :1,     // - read SysV shared memory
                shmwrite                        :1,     // - write SysV shared memory
                shutdown                        :1,     // - close down just half of a socket connection
                'sin'                           :1,     // - return the sine of a number
                sleep                           :1,     // - block for some number of seconds
                socket                          :1,     // - create a socket
                socketpair                      :1,     // - create a pair of sockets
                'sort'                          :1,     // - sort a list of values
                splice                          :1,     // - add or remove elements anywhere in an array
                'split'                         :1,     // - split up a string using a regexp delimiter
                sprintf                         :1,     // - formatted print into a string
                'sqrt'                          :1,     // - square root function
                srand                           :1,     // - seed the random number generator
                stat                            :1,     // - get a file's status information
                state                           :1,     // - declare and assign a state variable (persistent lexical scoping)
                study                           :1,     // - optimize input data for repeated searches
                'sub'                           :1,     // - declare a subroutine, possibly anonymously
                'substr'                        :1,     // - get or alter a portion of a stirng
                symlink                         :1,     // - create a symbolic link to a file
                syscall                         :1,     // - execute an arbitrary system call
                sysopen                         :1,     // - open a file, pipe, or descriptor
                sysread                         :1,     // - fixed-length unbuffered input from a filehandle
                sysseek                         :1,     // - position I/O pointer on handle used with sysread and syswrite
                system                          :1,     // - run a separate program
                syswrite                        :1,     // - fixed-length unbuffered output to a filehandle
                tell                            :1,     // - get current seekpointer on a filehandle
                telldir                         :1,     // - get current seekpointer on a directory handle
                tie                             :1,     // - bind a variable to an object class
                tied                            :1,     // - get a reference to the object underlying a tied variable
                time                            :1,     // - return number of seconds since 1970
                times                           :1,     // - return elapsed time for self and child processes
                tr                              :null,  // - transliterate a string
                truncate                        :1,     // - shorten a file
                uc                              :1,     // - return upper-case version of a string
                ucfirst                         :1,     // - return a string with just the next letter in upper case
                umask                           :1,     // - set file creation mode mask
                undef                           :1,     // - remove a variable or function definition
                unlink                          :1,     // - remove one link to a file
                unpack                          :1,     // - convert binary structure into normal perl variables
                unshift                         :1,     // - prepend more elements to the beginning of a list
                untie                           :1,     // - break a tie binding to a variable
                use                             :1,     // - load in a module at compile time
                utime                           :1,     // - set a file's last access and modify times
                values                          :1,     // - return a list of the values in a hash
                vec                             :1,     // - test or set particular bits in a string
                wait                            :1,     // - wait for any child process to die
                waitpid                         :1,     // - wait for a particular child process to die
                wantarray                       :1,     // - get void vs scalar vs list context of current subroutine call
                warn                            :1,     // - print debugging info
                when                            :1,     //
                write                           :1,     // - print a picture record
                y                               :null}; // - transliterate a string

        var RXstyle="string-2";
        var RXmodifiers=/[goseximacplud]/;              // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type

        function tokenChain(stream,state,chain,style,tail){     // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)
                state.chain=null;                               //                                                          12   3tail
                state.style=null;
                state.tail=null;
                state.tokenize=function(stream,state){
                        var e=false,c,i=0;
                        while(c=stream.next()){
                                if(c===chain[i]&&!e){
                                        if(chain[++i]!==undefined){
                                                state.chain=chain[i];
                                                state.style=style;
                                                state.tail=tail;}
                                        else if(tail)
                                                stream.eatWhile(tail);
                                        state.tokenize=tokenPerl;
                                        return style;}
                                e=!e&&c=="\\";}
                        return style;};
                return state.tokenize(stream,state);}

        function tokenSOMETHING(stream,state,string){
                state.tokenize=function(stream,state){
                        if(stream.string==string)
                                state.tokenize=tokenPerl;
                        stream.skipToEnd();
                        return "string";};
                return state.tokenize(stream,state);}

        function tokenPerl(stream,state){
                if(stream.eatSpace())
                        return null;
                if(state.chain)
                        return tokenChain(stream,state,state.chain,state.style,state.tail);
                if(stream.match(/^\-?[\d\.]/,false))
                        if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/))
                                return 'number';
                if(stream.match(/^<<(?=\w)/)){                  // NOTE: <<SOMETHING\n...\nSOMETHING\n
                        stream.eatWhile(/\w/);
                        return tokenSOMETHING(stream,state,stream.current().substr(2));}
                if(stream.sol()&&stream.match(/^\=item(?!\w)/)){// NOTE: \n=item...\n=cut\n
                        return tokenSOMETHING(stream,state,'=cut');}
                var ch=stream.next();
                if(ch=='"'||ch=="'"){                           // NOTE: ' or " or <<'SOMETHING'\n...\nSOMETHING\n or <<"SOMETHING"\n...\nSOMETHING\n
                        if(prefix(stream, 3)=="<<"+ch){
                                var p=stream.pos;
                                stream.eatWhile(/\w/);
                                var n=stream.current().substr(1);
                                if(n&&stream.eat(ch))
                                        return tokenSOMETHING(stream,state,n);
                                stream.pos=p;}
                        return tokenChain(stream,state,[ch],"string");}
                if(ch=="q"){
                        var c=look(stream, -2);
                        if(!(c&&/\w/.test(c))){
                                c=look(stream, 0);
                                if(c=="x"){
                                        c=look(stream, 1);
                                        if(c=="("){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                        if(c=="["){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                        if(c=="{"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                        if(c=="<"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
                                        if(/[\^'"!~\/]/.test(c)){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
                                else if(c=="q"){
                                        c=look(stream, 1);
                                        if(c=="("){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[")"],"string");}
                                        if(c=="["){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["]"],"string");}
                                        if(c=="{"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["}"],"string");}
                                        if(c=="<"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[">"],"string");}
                                        if(/[\^'"!~\/]/.test(c)){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[stream.eat(c)],"string");}}
                                else if(c=="w"){
                                        c=look(stream, 1);
                                        if(c=="("){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[")"],"bracket");}
                                        if(c=="["){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["]"],"bracket");}
                                        if(c=="{"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["}"],"bracket");}
                                        if(c=="<"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[">"],"bracket");}
                                        if(/[\^'"!~\/]/.test(c)){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[stream.eat(c)],"bracket");}}
                                else if(c=="r"){
                                        c=look(stream, 1);
                                        if(c=="("){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                        if(c=="["){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                        if(c=="{"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                        if(c=="<"){
                                                eatSuffix(stream, 2);
                                                return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
                                        if(/[\^'"!~\/]/.test(c)){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
                                else if(/[\^'"!~\/(\[{<]/.test(c)){
                                        if(c=="("){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[")"],"string");}
                                        if(c=="["){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,["]"],"string");}
                                        if(c=="{"){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,["}"],"string");}
                                        if(c=="<"){
                                                eatSuffix(stream, 1);
                                                return tokenChain(stream,state,[">"],"string");}
                                        if(/[\^'"!~\/]/.test(c)){
                                                return tokenChain(stream,state,[stream.eat(c)],"string");}}}}
                if(ch=="m"){
                        var c=look(stream, -2);
                        if(!(c&&/\w/.test(c))){
                                c=stream.eat(/[(\[{<\^'"!~\/]/);
                                if(c){
                                        if(/[\^'"!~\/]/.test(c)){
                                                return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}
                                        if(c=="("){
                                                return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
                                        if(c=="["){
                                                return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
                                        if(c=="{"){
                                                return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
                                        if(c=="<"){
                                                return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}}
                if(ch=="s"){
                        var c=/[\/>\]})\w]/.test(look(stream, -2));
                        if(!c){
                                c=stream.eat(/[(\[{<\^'"!~\/]/);
                                if(c){
                                        if(c=="[")
                                                return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                        if(c=="{")
                                                return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                        if(c=="<")
                                                return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                        if(c=="(")
                                                return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
                if(ch=="y"){
                        var c=/[\/>\]})\w]/.test(look(stream, -2));
                        if(!c){
                                c=stream.eat(/[(\[{<\^'"!~\/]/);
                                if(c){
                                        if(c=="[")
                                                return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                        if(c=="{")
                                                return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                        if(c=="<")
                                                return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                        if(c=="(")
                                                return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
                if(ch=="t"){
                        var c=/[\/>\]})\w]/.test(look(stream, -2));
                        if(!c){
                                c=stream.eat("r");if(c){
                                c=stream.eat(/[(\[{<\^'"!~\/]/);
                                if(c){
                                        if(c=="[")
                                                return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
                                        if(c=="{")
                                                return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
                                        if(c=="<")
                                                return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
                                        if(c=="(")
                                                return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}
                if(ch=="`"){
                        return tokenChain(stream,state,[ch],"variable-2");}
                if(ch=="/"){
                        if(!/~\s*$/.test(prefix(stream)))
                                return "operator";
                        else
                                return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}
                if(ch=="$"){
                        var p=stream.pos;
                        if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}"))
                                return "variable-2";
                        else
                                stream.pos=p;}
                if(/[$@%]/.test(ch)){
                        var p=stream.pos;
                        if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){
                                var c=stream.current();
                                if(PERL[c])
                                        return "variable-2";}
                        stream.pos=p;}
                if(/[$@%&]/.test(ch)){
                        if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){
                                var c=stream.current();
                                if(PERL[c])
                                        return "variable-2";
                                else
                                        return "variable";}}
                if(ch=="#"){
                        if(look(stream, -2)!="$"){
                                stream.skipToEnd();
                                return "comment";}}
                if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){
                        var p=stream.pos;
                        stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/);
                        if(PERL[stream.current()])
                                return "operator";
                        else
                                stream.pos=p;}
                if(ch=="_"){
                        if(stream.pos==1){
                                if(suffix(stream, 6)=="_END__"){
                                        return tokenChain(stream,state,['\0'],"comment");}
                                else if(suffix(stream, 7)=="_DATA__"){
                                        return tokenChain(stream,state,['\0'],"variable-2");}
                                else if(suffix(stream, 7)=="_C__"){
                                        return tokenChain(stream,state,['\0'],"string");}}}
                if(/\w/.test(ch)){
                        var p=stream.pos;
                        if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}"))
                                return "string";
                        else
                                stream.pos=p;}
                if(/[A-Z]/.test(ch)){
                        var l=look(stream, -2);
                        var p=stream.pos;
                        stream.eatWhile(/[A-Z_]/);
                        if(/[\da-z]/.test(look(stream, 0))){
                                stream.pos=p;}
                        else{
                                var c=PERL[stream.current()];
                                if(!c)
                                        return "meta";
                                if(c[1])
                                        c=c[0];
                                if(l!=":"){
                                        if(c==1)
                                                return "keyword";
                                        else if(c==2)
                                                return "def";
                                        else if(c==3)
                                                return "atom";
                                        else if(c==4)
                                                return "operator";
                                        else if(c==5)
                                                return "variable-2";
                                        else
                                                return "meta";}
                                else
                                        return "meta";}}
                if(/[a-zA-Z_]/.test(ch)){
                        var l=look(stream, -2);
                        stream.eatWhile(/\w/);
                        var c=PERL[stream.current()];
                        if(!c)
                                return "meta";
                        if(c[1])
                                c=c[0];
                        if(l!=":"){
                                if(c==1)
                                        return "keyword";
                                else if(c==2)
                                        return "def";
                                else if(c==3)
                                        return "atom";
                                else if(c==4)
                                        return "operator";
                                else if(c==5)
                                        return "variable-2";
                                else
                                        return "meta";}
                        else
                                return "meta";}
                return null;}

        return {
            startState: function() {
                return {
                    tokenize: tokenPerl,
                    chain: null,
                    style: null,
                    tail: null
                };
            },
            token: function(stream, state) {
                return (state.tokenize || tokenPerl)(stream, state);
            },
            lineComment: '#'
        };
});

CodeMirror.registerHelper("wordChars", "perl", /[\w$]/);

CodeMirror.defineMIME("text/x-perl", "perl");

// it's like "peek", but need for look-ahead or look-behind if index < 0
function look(stream, c){
  return stream.string.charAt(stream.pos+(c||0));
}

// return a part of prefix of current stream from current position
function prefix(stream, c){
  if(c){
    var x=stream.pos-c;
    return stream.string.substr((x>=0?x:0),c);}
  else{
    return stream.string.substr(0,stream.pos-1);
  }
}

// return a part of suffix of current stream from current position
function suffix(stream, c){
  var y=stream.string.length;
  var x=y-stream.pos+1;
  return stream.string.substr(stream.pos,(c&&c<y?c:x));
}

// eating and vomiting a part of stream from current position
function eatSuffix(stream, c){
  var x=stream.pos+c;
  var y;
  if(x<=0)
    stream.pos=0;
  else if(x>=(y=stream.string.length-1))
    stream.pos=y;
  else
    stream.pos=x;
}

});
editors/codemirror/mode/perl/perl.min.js000064400000023443152177723720014355 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){return a.string.charAt(a.pos+(b||0))}function c(a,b){if(b){var c=a.pos-b;return a.string.substr(c>=0?c:0,b)}return a.string.substr(0,a.pos-1)}function d(a,b){var c=a.string.length,d=c-a.pos+1;return a.string.substr(a.pos,b&&b<c?b:d)}function e(a,b){var c,d=a.pos+b;d<=0?a.pos=0:d>=(c=a.string.length-1)?a.pos=c:a.pos=d}a.defineMode("perl",(function(){function a(a,b,c,d,e){return b.chain=null,b.style=null,b.tail=null,b.tokenize=function(a,b){for(var f,h=!1,i=0;f=a.next();){if(f===c[i]&&!h)return void 0!==c[++i]?(b.chain=c[i],b.style=d,b.tail=e):e&&a.eatWhile(e),b.tokenize=g,d;h=!h&&"\\"==f}return d},b.tokenize(a,b)}function f(a,b,c){return b.tokenize=function(a,b){return a.string==c&&(b.tokenize=g),a.skipToEnd(),"string"},b.tokenize(a,b)}function g(g,k){if(g.eatSpace())return null;if(k.chain)return a(g,k,k.chain,k.style,k.tail);if(g.match(/^\-?[\d\.]/,!1)&&g.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/))return"number";if(g.match(/^<<(?=\w)/))return g.eatWhile(/\w/),f(g,k,g.current().substr(2));if(g.sol()&&g.match(/^\=item(?!\w)/))return f(g,k,"=cut");var l=g.next();if('"'==l||"'"==l){if(c(g,3)=="<<"+l){var m=g.pos;g.eatWhile(/\w/);var n=g.current().substr(1);if(n&&g.eat(l))return f(g,k,n);g.pos=m}return a(g,k,[l],"string")}if("q"==l){var o=b(g,-2);if(!o||!/\w/.test(o))if(o=b(g,0),"x"==o){if(o=b(g,1),"("==o)return e(g,2),a(g,k,[")"],i,j);if("["==o)return e(g,2),a(g,k,["]"],i,j);if("{"==o)return e(g,2),a(g,k,["}"],i,j);if("<"==o)return e(g,2),a(g,k,[">"],i,j);if(/[\^'"!~\/]/.test(o))return e(g,1),a(g,k,[g.eat(o)],i,j)}else if("q"==o){if(o=b(g,1),"("==o)return e(g,2),a(g,k,[")"],"string");if("["==o)return e(g,2),a(g,k,["]"],"string");if("{"==o)return e(g,2),a(g,k,["}"],"string");if("<"==o)return e(g,2),a(g,k,[">"],"string");if(/[\^'"!~\/]/.test(o))return e(g,1),a(g,k,[g.eat(o)],"string")}else if("w"==o){if(o=b(g,1),"("==o)return e(g,2),a(g,k,[")"],"bracket");if("["==o)return e(g,2),a(g,k,["]"],"bracket");if("{"==o)return e(g,2),a(g,k,["}"],"bracket");if("<"==o)return e(g,2),a(g,k,[">"],"bracket");if(/[\^'"!~\/]/.test(o))return e(g,1),a(g,k,[g.eat(o)],"bracket")}else if("r"==o){if(o=b(g,1),"("==o)return e(g,2),a(g,k,[")"],i,j);if("["==o)return e(g,2),a(g,k,["]"],i,j);if("{"==o)return e(g,2),a(g,k,["}"],i,j);if("<"==o)return e(g,2),a(g,k,[">"],i,j);if(/[\^'"!~\/]/.test(o))return e(g,1),a(g,k,[g.eat(o)],i,j)}else if(/[\^'"!~\/(\[{<]/.test(o)){if("("==o)return e(g,1),a(g,k,[")"],"string");if("["==o)return e(g,1),a(g,k,["]"],"string");if("{"==o)return e(g,1),a(g,k,["}"],"string");if("<"==o)return e(g,1),a(g,k,[">"],"string");if(/[\^'"!~\/]/.test(o))return a(g,k,[g.eat(o)],"string")}}if("m"==l){var o=b(g,-2);if((!o||!/\w/.test(o))&&(o=g.eat(/[(\[{<\^'"!~\/]/))){if(/[\^'"!~\/]/.test(o))return a(g,k,[o],i,j);if("("==o)return a(g,k,[")"],i,j);if("["==o)return a(g,k,["]"],i,j);if("{"==o)return a(g,k,["}"],i,j);if("<"==o)return a(g,k,[">"],i,j)}}if("s"==l){var o=/[\/>\]})\w]/.test(b(g,-2));if(!o&&(o=g.eat(/[(\[{<\^'"!~\/]/)))return"["==o?a(g,k,["]","]"],i,j):"{"==o?a(g,k,["}","}"],i,j):"<"==o?a(g,k,[">",">"],i,j):"("==o?a(g,k,[")",")"],i,j):a(g,k,[o,o],i,j)}if("y"==l){var o=/[\/>\]})\w]/.test(b(g,-2));if(!o&&(o=g.eat(/[(\[{<\^'"!~\/]/)))return"["==o?a(g,k,["]","]"],i,j):"{"==o?a(g,k,["}","}"],i,j):"<"==o?a(g,k,[">",">"],i,j):"("==o?a(g,k,[")",")"],i,j):a(g,k,[o,o],i,j)}if("t"==l){var o=/[\/>\]})\w]/.test(b(g,-2));if(!o&&(o=g.eat("r"),o&&(o=g.eat(/[(\[{<\^'"!~\/]/))))return"["==o?a(g,k,["]","]"],i,j):"{"==o?a(g,k,["}","}"],i,j):"<"==o?a(g,k,[">",">"],i,j):"("==o?a(g,k,[")",")"],i,j):a(g,k,[o,o],i,j)}if("`"==l)return a(g,k,[l],"variable-2");if("/"==l)return/~\s*$/.test(c(g))?a(g,k,[l],i,j):"operator";if("$"==l){var m=g.pos;if(g.eatWhile(/\d/)||g.eat("{")&&g.eatWhile(/\d/)&&g.eat("}"))return"variable-2";g.pos=m}if(/[$@%]/.test(l)){var m=g.pos;if(g.eat("^")&&g.eat(/[A-Z]/)||!/[@$%&]/.test(b(g,-2))&&g.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var o=g.current();if(h[o])return"variable-2"}g.pos=m}if(/[$@%&]/.test(l)&&(g.eatWhile(/[\w$\[\]]/)||g.eat("{")&&g.eatWhile(/[\w$\[\]]/)&&g.eat("}"))){var o=g.current();return h[o]?"variable-2":"variable"}if("#"==l&&"$"!=b(g,-2))return g.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(l)){var m=g.pos;if(g.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),h[g.current()])return"operator";g.pos=m}if("_"==l&&1==g.pos){if("_END__"==d(g,6))return a(g,k,["\0"],"comment");if("_DATA__"==d(g,7))return a(g,k,["\0"],"variable-2");if("_C__"==d(g,7))return a(g,k,["\0"],"string")}if(/\w/.test(l)){var m=g.pos;if("{"==b(g,-2)&&("}"==b(g,0)||g.eatWhile(/\w/)&&"}"==b(g,0)))return"string";g.pos=m}if(/[A-Z]/.test(l)){var p=b(g,-2),m=g.pos;if(g.eatWhile(/[A-Z_]/),!/[\da-z]/.test(b(g,0))){var o=h[g.current()];return o?(o[1]&&(o=o[0]),":"!=p?1==o?"keyword":2==o?"def":3==o?"atom":4==o?"operator":5==o?"variable-2":"meta":"meta"):"meta"}g.pos=m}if(/[a-zA-Z_]/.test(l)){var p=b(g,-2);g.eatWhile(/\w/);var o=h[g.current()];return o?(o[1]&&(o=o[0]),":"!=p?1==o?"keyword":2==o?"def":3==o?"atom":4==o?"operator":5==o?"variable-2":"meta":"meta"):"meta"}return null}var h={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},i="string-2",j=/[goseximacplud]/;return{startState:function(){return{tokenize:g,chain:null,style:null,tail:null}},token:function(a,b){return(b.tokenize||g)(a,b)},lineComment:"#"}})),a.registerHelper("wordChars","perl",/[\w$]/),a.defineMIME("text/x-perl","perl")}));editors/codemirror/mode/q/q.js000064400000014702152177723720012365 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("q",function(config){
  var indentUnit=config.indentUnit,
      curPunc,
      keywords=buildRE(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),
      E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;
  function buildRE(w){return new RegExp("^("+w.join("|")+")$");}
  function tokenBase(stream,state){
    var sol=stream.sol(),c=stream.next();
    curPunc=null;
    if(sol)
      if(c=="/")
        return(state.tokenize=tokenLineComment)(stream,state);
      else if(c=="\\"){
        if(stream.eol()||/\s/.test(stream.peek()))
          return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream):state.tokenize=tokenBase,"comment";
        else
          return state.tokenize=tokenBase,"builtin";
      }
    if(/\s/.test(c))
      return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace";
    if(c=='"')
      return(state.tokenize=tokenString)(stream,state);
    if(c=='`')
      return stream.eatWhile(/[A-Za-z\d_:\/.]/),"symbol";
    if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){
      var t=null;
      stream.backUp(1);
      if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)
      || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)
      || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)
      || stream.match(/^\d+[ptuv]{1}/))
        t="temporal";
      else if(stream.match(/^0[NwW]{1}/)
      || stream.match(/^0x[\da-fA-F]*/)
      || stream.match(/^[01]+[b]{1}/)
      || stream.match(/^\d+[chijn]{1}/)
      || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))
        t="number";
      return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error");
    }
    if(/[A-Za-z]|\./.test(c))
      return stream.eatWhile(/[A-Za-z._\d]/),keywords.test(stream.current())?"keyword":"variable";
    if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c))
      return null;
    if(/[{}\(\[\]\)]/.test(c))
      return null;
    return"error";
  }
  function tokenLineComment(stream,state){
    return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment";
  }
  function tokenBlockComment(stream,state){
    var f=stream.sol()&&stream.peek()=="\\";
    stream.skipToEnd();
    if(f&&/^\\\s*$/.test(stream.current()))
      state.tokenize=tokenBase;
    return"comment";
  }
  function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";}
  function tokenString(stream,state){
    var escaped=false,next,end=false;
    while((next=stream.next())){
      if(next=="\""&&!escaped){end=true;break;}
      escaped=!escaped&&next=="\\";
    }
    if(end)state.tokenize=tokenBase;
    return"string";
  }
  function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};}
  function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;}
  return{
    startState:function(){
      return{tokenize:tokenBase,
             context:null,
             indent:0,
             col:0};
    },
    token:function(stream,state){
      if(stream.sol()){
        if(state.context&&state.context.align==null)
          state.context.align=false;
        state.indent=stream.indentation();
      }
      //if (stream.eatSpace()) return null;
      var style=state.tokenize(stream,state);
      if(style!="comment"&&state.context&&state.context.align==null&&state.context.type!="pattern"){
        state.context.align=true;
      }
      if(curPunc=="(")pushContext(state,")",stream.column());
      else if(curPunc=="[")pushContext(state,"]",stream.column());
      else if(curPunc=="{")pushContext(state,"}",stream.column());
      else if(/[\]\}\)]/.test(curPunc)){
        while(state.context&&state.context.type=="pattern")popContext(state);
        if(state.context&&curPunc==state.context.type)popContext(state);
      }
      else if(curPunc=="."&&state.context&&state.context.type=="pattern")popContext(state);
      else if(/atom|string|variable/.test(style)&&state.context){
        if(/[\}\]]/.test(state.context.type))
          pushContext(state,"pattern",stream.column());
        else if(state.context.type=="pattern"&&!state.context.align){
          state.context.align=true;
          state.context.col=stream.column();
        }
      }
      return style;
    },
    indent:function(state,textAfter){
      var firstChar=textAfter&&textAfter.charAt(0);
      var context=state.context;
      if(/[\]\}]/.test(firstChar))
        while (context&&context.type=="pattern")context=context.prev;
      var closing=context&&firstChar==context.type;
      if(!context)
        return 0;
      else if(context.type=="pattern")
        return context.col;
      else if(context.align)
        return context.col+(closing?0:1);
      else
        return context.indent+(closing?0:indentUnit);
    }
  };
});
CodeMirror.defineMIME("text/x-q","q");

});
editors/codemirror/mode/q/q.min.js000064400000010240152177723720013140 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("q",(function(a){function b(a){return new RegExp("^("+a.join("|")+")$")}function c(a,b){var e=a.sol(),h=a.next();if(j=null,e){if("/"==h)return(b.tokenize=d)(a,b);if("\\"==h)return a.eol()||/\s/.test(a.peek())?(a.skipToEnd(),/^\\\s*$/.test(a.current())?(b.tokenize=f)(a):b.tokenize=c,"comment"):(b.tokenize=c,"builtin")}if(/\s/.test(h))return"/"==a.peek()?(a.skipToEnd(),"comment"):"whitespace";if('"'==h)return(b.tokenize=g)(a,b);if("`"==h)return a.eatWhile(/[A-Za-z\d_:\/.]/),"symbol";if("."==h&&/\d/.test(a.peek())||/\d/.test(h)){var i=null;return a.backUp(1),a.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||a.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||a.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||a.match(/^\d+[ptuv]{1}/)?i="temporal":(a.match(/^0[NwW]{1}/)||a.match(/^0x[\da-fA-F]*/)||a.match(/^[01]+[b]{1}/)||a.match(/^\d+[chijn]{1}/)||a.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))&&(i="number"),!i||(h=a.peek())&&!m.test(h)?(a.next(),"error"):i}return/[A-Za-z]|\./.test(h)?(a.eatWhile(/[A-Za-z._\d]/),l.test(a.current())?"keyword":"variable"):/[|\/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(h)?null:/[{}\(\[\]\)]/.test(h)?null:"error"}function d(a,b){return a.skipToEnd(),/\/\s*$/.test(a.current())?(b.tokenize=e)(a,b):b.tokenize=c,"comment"}function e(a,b){var d=a.sol()&&"\\"==a.peek();return a.skipToEnd(),d&&/^\\\s*$/.test(a.current())&&(b.tokenize=c),"comment"}function f(a){return a.skipToEnd(),"comment"}function g(a,b){for(var d,e=!1,f=!1;d=a.next();){if('"'==d&&!e){f=!0;break}e=!e&&"\\"==d}return f&&(b.tokenize=c),"string"}function h(a,b,c){a.context={prev:a.context,indent:a.indent,col:c,type:b}}function i(a){a.indent=a.context.indent,a.context=a.context.prev}var j,k=a.indentUnit,l=b(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),m=/[|\/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;return{startState:function(){return{tokenize:c,context:null,indent:0,col:0}},token:function(a,b){a.sol()&&(b.context&&null==b.context.align&&(b.context.align=!1),b.indent=a.indentation());var c=b.tokenize(a,b);if("comment"!=c&&b.context&&null==b.context.align&&"pattern"!=b.context.type&&(b.context.align=!0),"("==j)h(b,")",a.column());else if("["==j)h(b,"]",a.column());else if("{"==j)h(b,"}",a.column());else if(/[\]\}\)]/.test(j)){for(;b.context&&"pattern"==b.context.type;)i(b);b.context&&j==b.context.type&&i(b)}else"."==j&&b.context&&"pattern"==b.context.type?i(b):/atom|string|variable/.test(c)&&b.context&&(/[\}\]]/.test(b.context.type)?h(b,"pattern",a.column()):"pattern"!=b.context.type||b.context.align||(b.context.align=!0,b.context.col=a.column()));return c},indent:function(a,b){var c=b&&b.charAt(0),d=a.context;if(/[\]\}]/.test(c))for(;d&&"pattern"==d.type;)d=d.prev;var e=d&&c==d.type;return d?"pattern"==d.type?d.col:d.align?d.col+(e?0:1):d.indent+(e?0:k):0}}})),a.defineMIME("text/x-q","q")}));editors/codemirror/mode/meta.min.js000064400000030362152177723720013375 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"null",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"],alias:["objective-c","objc"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]}];for(var b=0;b<a.modeInfo.length;b++){var c=a.modeInfo[b];c.mimes&&(c.mime=c.mimes[0])}a.findModeByMIME=function(b){b=b.toLowerCase();for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.mime==b)return d;if(d.mimes)for(var e=0;e<d.mimes.length;e++)if(d.mimes[e]==b)return d}return/\+xml$/.test(b)?a.findModeByMIME("application/xml"):/\+json$/.test(b)?a.findModeByMIME("application/json"):void 0},a.findModeByExtension=function(b){for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.ext)for(var e=0;e<d.ext.length;e++)if(d.ext[e]==b)return d}},a.findModeByFileName=function(b){for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.file&&d.file.test(b))return d}var e=b.lastIndexOf("."),f=e>-1&&b.substring(e+1,b.length);if(f)return a.findModeByExtension(f)},a.findModeByName=function(b){b=b.toLowerCase();for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.name.toLowerCase()==b)return d;if(d.alias)for(var e=0;e<d.alias.length;e++)if(d.alias[e].toLowerCase()==b)return d}}}));editors/codemirror/mode/fortran/fortran.min.js000064400000011514152177723720015573 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("fortran",(function(){function a(a){for(var b={},c=0;c<a.length;++c)b[a[c]]=!0;return b}function b(a,b){if(a.match(h))return"operator";var i=a.next();if("!"==i)return a.skipToEnd(),"comment";if('"'==i||"'"==i)return b.tokenize=c(i),b.tokenize(a,b);if(/[\[\]\(\),]/.test(i))return null;if(/\d/.test(i))return a.eatWhile(/[\w\.]/),"number";if(g.test(i))return a.eatWhile(g),"operator";a.eatWhile(/[\w\$_]/);var j=a.current().toLowerCase();return d.hasOwnProperty(j)?"keyword":e.hasOwnProperty(j)||f.hasOwnProperty(j)?"builtin":"variable"}function c(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){f=!0;break}e=!e&&"\\"==d}return!f&&e||(c.tokenize=null),"string"}}var d=a(["abstract","accept","allocatable","allocate","array","assign","asynchronous","backspace","bind","block","byte","call","case","class","close","common","contains","continue","cycle","data","deallocate","decode","deferred","dimension","do","elemental","else","encode","end","endif","entry","enumerator","equivalence","exit","external","extrinsic","final","forall","format","function","generic","go","goto","if","implicit","import","include","inquire","intent","interface","intrinsic","module","namelist","non_intrinsic","non_overridable","none","nopass","nullify","open","optional","options","parameter","pass","pause","pointer","print","private","program","protected","public","pure","read","recursive","result","return","rewind","save","select","sequence","stop","subroutine","target","then","to","type","use","value","volatile","where","while","write"]),e=a(["abort","abs","access","achar","acos","adjustl","adjustr","aimag","aint","alarm","all","allocated","alog","amax","amin","amod","and","anint","any","asin","associated","atan","besj","besjn","besy","besyn","bit_size","btest","cabs","ccos","ceiling","cexp","char","chdir","chmod","clog","cmplx","command_argument_count","complex","conjg","cos","cosh","count","cpu_time","cshift","csin","csqrt","ctime","c_funloc","c_loc","c_associated","c_null_ptr","c_null_funptr","c_f_pointer","c_null_char","c_alert","c_backspace","c_form_feed","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","dabs","dacos","dasin","datan","date_and_time","dbesj","dbesj","dbesjn","dbesy","dbesy","dbesyn","dble","dcos","dcosh","ddim","derf","derfc","dexp","digits","dim","dint","dlog","dlog","dmax","dmin","dmod","dnint","dot_product","dprod","dsign","dsinh","dsin","dsqrt","dtanh","dtan","dtime","eoshift","epsilon","erf","erfc","etime","exit","exp","exponent","extends_type_of","fdate","fget","fgetc","float","floor","flush","fnum","fputc","fput","fraction","fseek","fstat","ftell","gerror","getarg","get_command","get_command_argument","get_environment_variable","getcwd","getenv","getgid","getlog","getpid","getuid","gmtime","hostnm","huge","iabs","iachar","iand","iargc","ibclr","ibits","ibset","ichar","idate","idim","idint","idnint","ieor","ierrno","ifix","imag","imagpart","index","int","ior","irand","isatty","ishft","ishftc","isign","iso_c_binding","is_iostat_end","is_iostat_eor","itime","kill","kind","lbound","len","len_trim","lge","lgt","link","lle","llt","lnblnk","loc","log","logical","long","lshift","lstat","ltime","matmul","max","maxexponent","maxloc","maxval","mclock","merge","move_alloc","min","minexponent","minloc","minval","mod","modulo","mvbits","nearest","new_line","nint","not","or","pack","perror","precision","present","product","radix","rand","random_number","random_seed","range","real","realpart","rename","repeat","reshape","rrspacing","rshift","same_type_as","scale","scan","second","selected_int_kind","selected_real_kind","set_exponent","shape","short","sign","signal","sinh","sin","sleep","sngl","spacing","spread","sqrt","srand","stat","sum","symlnk","system","system_clock","tan","tanh","time","tiny","transfer","transpose","trim","ttynam","ubound","umask","unlink","unpack","verify","xor","zabs","zcos","zexp","zlog","zsin","zsqrt"]),f=a(["c_bool","c_char","c_double","c_double_complex","c_float","c_float_complex","c_funptr","c_int","c_int16_t","c_int32_t","c_int64_t","c_int8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_int_fast8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_least8_t","c_intmax_t","c_intptr_t","c_long","c_long_double","c_long_double_complex","c_long_long","c_ptr","c_short","c_signed_char","c_size_t","character","complex","double","integer","logical","real"]),g=/[+\-*&=<>\/\:]/,h=new RegExp("(.and.|.or.|.eq.|.lt.|.le.|.gt.|.ge.|.ne.|.not.|.eqv.|.neqv.)","i");return{startState:function(){return{tokenize:null}},token:function(a,c){if(a.eatSpace())return null;var d=(c.tokenize||b)(a,c);return"comment"==d||"meta"==d?d:d}}})),a.defineMIME("text/x-fortran","fortran")}));editors/codemirror/mode/fortran/fortran.js000064400000020757152177723720015022 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("fortran", function() {
  function words(array) {
    var keys = {};
    for (var i = 0; i < array.length; ++i) {
      keys[array[i]] = true;
    }
    return keys;
  }

  var keywords = words([
                  "abstract", "accept", "allocatable", "allocate",
                  "array", "assign", "asynchronous", "backspace",
                  "bind", "block", "byte", "call", "case",
                  "class", "close", "common", "contains",
                  "continue", "cycle", "data", "deallocate",
                  "decode", "deferred", "dimension", "do",
                  "elemental", "else", "encode", "end",
                  "endif", "entry", "enumerator", "equivalence",
                  "exit", "external", "extrinsic", "final",
                  "forall", "format", "function", "generic",
                  "go", "goto", "if", "implicit", "import", "include",
                  "inquire", "intent", "interface", "intrinsic",
                  "module", "namelist", "non_intrinsic",
                  "non_overridable", "none", "nopass",
                  "nullify", "open", "optional", "options",
                  "parameter", "pass", "pause", "pointer",
                  "print", "private", "program", "protected",
                  "public", "pure", "read", "recursive", "result",
                  "return", "rewind", "save", "select", "sequence",
                  "stop", "subroutine", "target", "then", "to", "type",
                  "use", "value", "volatile", "where", "while",
                  "write"]);
  var builtins = words(["abort", "abs", "access", "achar", "acos",
                          "adjustl", "adjustr", "aimag", "aint", "alarm",
                          "all", "allocated", "alog", "amax", "amin",
                          "amod", "and", "anint", "any", "asin",
                          "associated", "atan", "besj", "besjn", "besy",
                          "besyn", "bit_size", "btest", "cabs", "ccos",
                          "ceiling", "cexp", "char", "chdir", "chmod",
                          "clog", "cmplx", "command_argument_count",
                          "complex", "conjg", "cos", "cosh", "count",
                          "cpu_time", "cshift", "csin", "csqrt", "ctime",
                          "c_funloc", "c_loc", "c_associated", "c_null_ptr",
                          "c_null_funptr", "c_f_pointer", "c_null_char",
                          "c_alert", "c_backspace", "c_form_feed",
                          "c_new_line", "c_carriage_return",
                          "c_horizontal_tab", "c_vertical_tab", "dabs",
                          "dacos", "dasin", "datan", "date_and_time",
                          "dbesj", "dbesj", "dbesjn", "dbesy", "dbesy",
                          "dbesyn", "dble", "dcos", "dcosh", "ddim", "derf",
                          "derfc", "dexp", "digits", "dim", "dint", "dlog",
                          "dlog", "dmax", "dmin", "dmod", "dnint",
                          "dot_product", "dprod", "dsign", "dsinh",
                          "dsin", "dsqrt", "dtanh", "dtan", "dtime",
                          "eoshift", "epsilon", "erf", "erfc", "etime",
                          "exit", "exp", "exponent", "extends_type_of",
                          "fdate", "fget", "fgetc", "float", "floor",
                          "flush", "fnum", "fputc", "fput", "fraction",
                          "fseek", "fstat", "ftell", "gerror", "getarg",
                          "get_command", "get_command_argument",
                          "get_environment_variable", "getcwd",
                          "getenv", "getgid", "getlog", "getpid",
                          "getuid", "gmtime", "hostnm", "huge", "iabs",
                          "iachar", "iand", "iargc", "ibclr", "ibits",
                          "ibset", "ichar", "idate", "idim", "idint",
                          "idnint", "ieor", "ierrno", "ifix", "imag",
                          "imagpart", "index", "int", "ior", "irand",
                          "isatty", "ishft", "ishftc", "isign",
                          "iso_c_binding", "is_iostat_end", "is_iostat_eor",
                          "itime", "kill", "kind", "lbound", "len", "len_trim",
                          "lge", "lgt", "link", "lle", "llt", "lnblnk", "loc",
                          "log", "logical", "long", "lshift", "lstat", "ltime",
                          "matmul", "max", "maxexponent", "maxloc", "maxval",
                          "mclock", "merge", "move_alloc", "min", "minexponent",
                          "minloc", "minval", "mod", "modulo", "mvbits",
                          "nearest", "new_line", "nint", "not", "or", "pack",
                          "perror", "precision", "present", "product", "radix",
                          "rand", "random_number", "random_seed", "range",
                          "real", "realpart", "rename", "repeat", "reshape",
                          "rrspacing", "rshift", "same_type_as", "scale",
                          "scan", "second", "selected_int_kind",
                          "selected_real_kind", "set_exponent", "shape",
                          "short", "sign", "signal", "sinh", "sin", "sleep",
                          "sngl", "spacing", "spread", "sqrt", "srand", "stat",
                          "sum", "symlnk", "system", "system_clock", "tan",
                          "tanh", "time", "tiny", "transfer", "transpose",
                          "trim", "ttynam", "ubound", "umask", "unlink",
                          "unpack", "verify", "xor", "zabs", "zcos", "zexp",
                          "zlog", "zsin", "zsqrt"]);

    var dataTypes =  words(["c_bool", "c_char", "c_double", "c_double_complex",
                     "c_float", "c_float_complex", "c_funptr", "c_int",
                     "c_int16_t", "c_int32_t", "c_int64_t", "c_int8_t",
                     "c_int_fast16_t", "c_int_fast32_t", "c_int_fast64_t",
                     "c_int_fast8_t", "c_int_least16_t", "c_int_least32_t",
                     "c_int_least64_t", "c_int_least8_t", "c_intmax_t",
                     "c_intptr_t", "c_long", "c_long_double",
                     "c_long_double_complex", "c_long_long", "c_ptr",
                     "c_short", "c_signed_char", "c_size_t", "character",
                     "complex", "double", "integer", "logical", "real"]);
  var isOperatorChar = /[+\-*&=<>\/\:]/;
  var litOperator = new RegExp("(\.and\.|\.or\.|\.eq\.|\.lt\.|\.le\.|\.gt\.|\.ge\.|\.ne\.|\.not\.|\.eqv\.|\.neqv\.)", "i");

  function tokenBase(stream, state) {

    if (stream.match(litOperator)){
        return 'operator';
    }

    var ch = stream.next();
    if (ch == "!") {
      stream.skipToEnd();
      return "comment";
    }
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (/[\[\]\(\),]/.test(ch)) {
      return null;
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_]/);
    var word = stream.current().toLowerCase();

    if (keywords.hasOwnProperty(word)){
            return 'keyword';
    }
    if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) {
            return 'builtin';
    }
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {
            end = true;
            break;
        }
        escaped = !escaped && next == "\\";
      }
      if (end || !escaped) state.tokenize = null;
      return "string";
    };
  }

  // Interface

  return {
    startState: function() {
      return {tokenize: null};
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      return style;
    }
  };
});

CodeMirror.defineMIME("text/x-fortran", "fortran");

});
editors/codemirror/mode/rst/rst.min.js000064400000015002152177723720014061 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../python/python"),require("../stex/stex"),require("../../addon/mode/overlay")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../python/python","../stex/stex","../../addon/mode/overlay"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("rst",(function(b,c){var d=/^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/,e=/^\*[^\*\s](?:[^\*]*[^\*\s])?\*/,f=/^``[^`\s](?:[^`]*[^`\s])``/,g=/^(?:[\d]+(?:[\.,]\d+)*)/,h=/^(?:\s\+[\d]+(?:[\.,]\d+)*)/,i=/^(?:\s\-[\d]+(?:[\.,]\d+)*)/,j="[Hh][Tt][Tt][Pp][Ss]?://",k="(?:[\\d\\w.-]+)\\.(?:\\w{2,6})",l="(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*",m=new RegExp("^"+j+k+l),n={token:function(a){if(a.match(d)&&a.match(/\W+|$/,!1))return"strong";if(a.match(e)&&a.match(/\W+|$/,!1))return"em";if(a.match(f)&&a.match(/\W+|$/,!1))return"string-2";if(a.match(g))return"number";if(a.match(h))return"positive";if(a.match(i))return"negative";if(a.match(m))return"link";for(;!(null==a.next()||a.match(d,!1)||a.match(e,!1)||a.match(f,!1)||a.match(g,!1)||a.match(h,!1)||a.match(i,!1)||a.match(m,!1)););return null}},o=a.getMode(b,c.backdrop||"rst-base");return a.overlayMode(o,n,!0)}),"python","stex"),a.defineMode("rst-base",(function(b){function c(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,(function(a,c){return"undefined"!=typeof b[c]?b[c]:a}))}function d(b,c){var f=null;if(b.sol()&&b.match(Y,!1))k(c,i,{mode:n,local:a.startState(n)});else if(b.sol()&&b.match(A))k(c,e),f="meta";else if(b.sol()&&b.match(z))k(c,d),f="header";else if(m(c)==L||b.match(L,!1))switch(l(c)){case 0:k(c,d,j(L,1)),b.match(/^:/),f="meta";break;case 1:k(c,d,j(L,2)),b.match(t),f="keyword",b.current().match(/^(?:math|latex)/)&&(c.tmp_stex=!0);break;case 2:k(c,d,j(L,3)),b.match(/^:`/),f="meta";break;case 3:if(c.tmp_stex&&(c.tmp_stex=void 0,c.tmp={mode:o,local:a.startState(o)}),c.tmp){if("`"==b.peek()){k(c,d,j(L,4)),c.tmp=void 0;break}f=c.tmp.mode.token(b,c.tmp.local);break}k(c,d,j(L,4)),b.match(y),f="string";break;case 4:k(c,d,j(L,5)),b.match(/^`/),f="meta";break;case 5:k(c,d,j(L,6)),b.match(r);break;default:k(c,d)}else if(m(c)==M||b.match(M,!1))switch(l(c)){case 0:k(c,d,j(M,1)),b.match(/^`/),f="meta";break;case 1:k(c,d,j(M,2)),b.match(y),f="string";break;case 2:k(c,d,j(M,3)),b.match(/^`:/),f="meta";break;case 3:k(c,d,j(M,4)),b.match(t),f="keyword";break;case 4:k(c,d,j(M,5)),b.match(/^:/),f="meta";break;case 5:k(c,d,j(M,6)),b.match(r);break;default:k(c,d)}else if(m(c)==N||b.match(N,!1))switch(l(c)){case 0:k(c,d,j(N,1)),b.match(/^:/),f="meta";break;case 1:k(c,d,j(N,2)),b.match(t),f="keyword";break;case 2:k(c,d,j(N,3)),b.match(/^:/),f="meta";break;case 3:k(c,d,j(N,4)),b.match(r);break;default:k(c,d)}else if(m(c)==G||b.match(G,!1))switch(l(c)){case 0:k(c,d,j(G,1)),b.match(Q),f="variable-2";break;case 1:k(c,d,j(G,2)),b.match(/^_?_?/)&&(f="link");break;default:k(c,d)}else if(b.match(H))k(c,d),f="quote";else if(b.match(I))k(c,d),f="quote";else if(b.match(J))k(c,d),b.peek()&&!b.peek().match(/^\W$/)||(f="link");else if(m(c)==K||b.match(K,!1))switch(l(c)){case 0:!b.peek()||b.peek().match(/^\W$/)?k(c,d,j(K,1)):b.match(K);break;case 1:k(c,d,j(K,2)),b.match(/^`/),f="link";break;case 2:k(c,d,j(K,3)),b.match(y);break;case 3:k(c,d,j(K,4)),b.match(/^`_/),f="link";break;default:k(c,d)}else b.match(X)?k(c,g):b.next()&&k(c,d);return f}function e(b,c){var g=null;if(m(c)==D||b.match(D,!1))switch(l(c)){case 0:k(c,e,j(D,1)),b.match(Q),g="variable-2";break;case 1:k(c,e,j(D,2)),b.match(R);break;case 2:k(c,e,j(D,3)),b.match(S),g="keyword";break;case 3:k(c,e,j(D,4)),b.match(T),g="meta";break;default:k(c,d)}else if(m(c)==C||b.match(C,!1))switch(l(c)){case 0:k(c,e,j(C,1)),b.match(O),g="keyword",b.current().match(/^(?:math|latex)/)?c.tmp_stex=!0:b.current().match(/^python/)&&(c.tmp_py=!0);break;case 1:k(c,e,j(C,2)),b.match(P),g="meta",(b.match(/^latex\s*$/)||c.tmp_stex)&&(c.tmp_stex=void 0,k(c,i,{mode:o,local:a.startState(o)}));break;case 2:k(c,e,j(C,3)),(b.match(/^python\s*$/)||c.tmp_py)&&(c.tmp_py=void 0,k(c,i,{mode:n,local:a.startState(n)}));break;default:k(c,d)}else if(m(c)==B||b.match(B,!1))switch(l(c)){case 0:k(c,e,j(B,1)),b.match(U),b.match(V),g="link";break;case 1:k(c,e,j(B,2)),b.match(W),g="meta";break;default:k(c,d)}else b.match(E)?(k(c,d),g="quote"):b.match(F)?(k(c,d),g="quote"):(b.eatSpace(),b.eol()?k(c,d):(b.skipToEnd(),k(c,f),g="comment"));return g}function f(a,b){return h(a,b,"comment")}function g(a,b){return h(a,b,"meta")}function h(a,b,c){return a.eol()||a.eatSpace()?(a.skipToEnd(),c):(k(b,d),null)}function i(a,b){return b.ctx.mode&&b.ctx.local?a.sol()?(a.eatSpace()||k(b,d),null):b.ctx.mode.token(a,b.ctx.local):(k(b,d),null)}function j(a,b,c,d){return{phase:a,stage:b,mode:c,local:d}}function k(a,b,c){a.tok=b,a.ctx=c||{}}function l(a){return a.ctx.stage||0}function m(a){return a.ctx.phase}var n=a.getMode(b,"python"),o=a.getMode(b,"stex"),p="\\s+",q="(?:\\s*|\\W|$)",r=new RegExp(c("^{0}",q)),s="(?:[^\\W\\d_](?:[\\w!\"#$%&'()\\*\\+,\\-\\./:;<=>\\?]*[^\\W_])?)",t=new RegExp(c("^{0}",s)),u="(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\./:;<=>\\?]*[^\\W_])?)",v=c("(?:{0}|`{1}`)",s,u),w="(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)",x="(?:[^\\`]+)",y=new RegExp(c("^{0}",x)),z=new RegExp("^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$"),A=new RegExp(c("^\\.\\.{0}",p)),B=new RegExp(c("^_{0}:{1}|^__:{1}",v,q)),C=new RegExp(c("^{0}::{1}",v,q)),D=new RegExp(c("^\\|{0}\\|{1}{2}::{3}",w,p,v,q)),E=new RegExp(c("^\\[(?:\\d+|#{0}?|\\*)]{1}",v,q)),F=new RegExp(c("^\\[{0}\\]{1}",v,q)),G=new RegExp(c("^\\|{0}\\|",w)),H=new RegExp(c("^\\[(?:\\d+|#{0}?|\\*)]_",v)),I=new RegExp(c("^\\[{0}\\]_",v)),J=new RegExp(c("^{0}__?",v)),K=new RegExp(c("^`{0}`_",x)),L=new RegExp(c("^:{0}:`{1}`{2}",s,x,q)),M=new RegExp(c("^`{1}`:{0}:{2}",s,x,q)),N=new RegExp(c("^:{0}:{1}",s,q)),O=new RegExp(c("^{0}",v)),P=new RegExp(c("^::{0}",q)),Q=new RegExp(c("^\\|{0}\\|",w)),R=new RegExp(c("^{0}",p)),S=new RegExp(c("^{0}",v)),T=new RegExp(c("^::{0}",q)),U=new RegExp("^_"),V=new RegExp(c("^{0}|_",v)),W=new RegExp(c("^:{0}",q)),X=new RegExp("^::\\s*$"),Y=new RegExp("^\\s+(?:>>>|In \\[\\d+\\]:)\\s");return{startState:function(){return{tok:d,ctx:j(void 0,0)}},copyState:function(b){var c=b.ctx,d=b.tmp;return c.local&&(c={mode:c.mode,local:a.copyState(c.mode,c.local)}),d&&(d={mode:d.mode,local:a.copyState(d.mode,d.local)}),{tok:b.tok,ctx:c,tmp:d}},innerMode:function(a){return a.tmp?{state:a.tmp.local,mode:a.tmp.mode}:a.ctx.mode?{state:a.ctx.local,mode:a.ctx.mode}:null},token:function(a,b){return b.tok(a,b)}}}),"python","stex"),a.defineMIME("text/x-rst","rst")}));editors/codemirror/mode/rst/rst.js000064400000042214152177723720013304 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../python/python"), require("../stex/stex"), require("../../addon/mode/overlay"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../python/python", "../stex/stex", "../../addon/mode/overlay"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('rst', function (config, options) {

  var rx_strong = /^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/;
  var rx_emphasis = /^\*[^\*\s](?:[^\*]*[^\*\s])?\*/;
  var rx_literal = /^``[^`\s](?:[^`]*[^`\s])``/;

  var rx_number = /^(?:[\d]+(?:[\.,]\d+)*)/;
  var rx_positive = /^(?:\s\+[\d]+(?:[\.,]\d+)*)/;
  var rx_negative = /^(?:\s\-[\d]+(?:[\.,]\d+)*)/;

  var rx_uri_protocol = "[Hh][Tt][Tt][Pp][Ss]?://";
  var rx_uri_domain = "(?:[\\d\\w.-]+)\\.(?:\\w{2,6})";
  var rx_uri_path = "(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*";
  var rx_uri = new RegExp("^" + rx_uri_protocol + rx_uri_domain + rx_uri_path);

  var overlay = {
    token: function (stream) {

      if (stream.match(rx_strong) && stream.match (/\W+|$/, false))
        return 'strong';
      if (stream.match(rx_emphasis) && stream.match (/\W+|$/, false))
        return 'em';
      if (stream.match(rx_literal) && stream.match (/\W+|$/, false))
        return 'string-2';
      if (stream.match(rx_number))
        return 'number';
      if (stream.match(rx_positive))
        return 'positive';
      if (stream.match(rx_negative))
        return 'negative';
      if (stream.match(rx_uri))
        return 'link';

      while (stream.next() != null) {
        if (stream.match(rx_strong, false)) break;
        if (stream.match(rx_emphasis, false)) break;
        if (stream.match(rx_literal, false)) break;
        if (stream.match(rx_number, false)) break;
        if (stream.match(rx_positive, false)) break;
        if (stream.match(rx_negative, false)) break;
        if (stream.match(rx_uri, false)) break;
      }

      return null;
    }
  };

  var mode = CodeMirror.getMode(
    config, options.backdrop || 'rst-base'
  );

  return CodeMirror.overlayMode(mode, overlay, true); // combine
}, 'python', 'stex');

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

CodeMirror.defineMode('rst-base', function (config) {

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function format(string) {
    var args = Array.prototype.slice.call(arguments, 1);
    return string.replace(/{(\d+)}/g, function (match, n) {
      return typeof args[n] != 'undefined' ? args[n] : match;
    });
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  var mode_python = CodeMirror.getMode(config, 'python');
  var mode_stex = CodeMirror.getMode(config, 'stex');

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  var SEPA = "\\s+";
  var TAIL = "(?:\\s*|\\W|$)",
  rx_TAIL = new RegExp(format('^{0}', TAIL));

  var NAME =
    "(?:[^\\W\\d_](?:[\\w!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)",
  rx_NAME = new RegExp(format('^{0}', NAME));
  var NAME_WWS =
    "(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)";
  var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);

  var TEXT1 = "(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)";
  var TEXT2 = "(?:[^\\`]+)",
  rx_TEXT2 = new RegExp(format('^{0}', TEXT2));

  var rx_section = new RegExp(
    "^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$");
  var rx_explicit = new RegExp(
    format('^\\.\\.{0}', SEPA));
  var rx_link = new RegExp(
    format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));
  var rx_directive = new RegExp(
    format('^{0}::{1}', REF_NAME, TAIL));
  var rx_substitution = new RegExp(
    format('^\\|{0}\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));
  var rx_footnote = new RegExp(
    format('^\\[(?:\\d+|#{0}?|\\*)]{1}', REF_NAME, TAIL));
  var rx_citation = new RegExp(
    format('^\\[{0}\\]{1}', REF_NAME, TAIL));

  var rx_substitution_ref = new RegExp(
    format('^\\|{0}\\|', TEXT1));
  var rx_footnote_ref = new RegExp(
    format('^\\[(?:\\d+|#{0}?|\\*)]_', REF_NAME));
  var rx_citation_ref = new RegExp(
    format('^\\[{0}\\]_', REF_NAME));
  var rx_link_ref1 = new RegExp(
    format('^{0}__?', REF_NAME));
  var rx_link_ref2 = new RegExp(
    format('^`{0}`_', TEXT2));

  var rx_role_pre = new RegExp(
    format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));
  var rx_role_suf = new RegExp(
    format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));
  var rx_role = new RegExp(
    format('^:{0}:{1}', NAME, TAIL));

  var rx_directive_name = new RegExp(format('^{0}', REF_NAME));
  var rx_directive_tail = new RegExp(format('^::{0}', TAIL));
  var rx_substitution_text = new RegExp(format('^\\|{0}\\|', TEXT1));
  var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));
  var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));
  var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));
  var rx_link_head = new RegExp("^_");
  var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));
  var rx_link_tail = new RegExp(format('^:{0}', TAIL));

  var rx_verbatim = new RegExp('^::\\s*$');
  var rx_examples = new RegExp('^\\s+(?:>>>|In \\[\\d+\\]:)\\s');

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function to_normal(stream, state) {
    var token = null;

    if (stream.sol() && stream.match(rx_examples, false)) {
      change(state, to_mode, {
        mode: mode_python, local: CodeMirror.startState(mode_python)
      });
    } else if (stream.sol() && stream.match(rx_explicit)) {
      change(state, to_explicit);
      token = 'meta';
    } else if (stream.sol() && stream.match(rx_section)) {
      change(state, to_normal);
      token = 'header';
    } else if (phase(state) == rx_role_pre ||
               stream.match(rx_role_pre, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_normal, context(rx_role_pre, 1));
        stream.match(/^:/);
        token = 'meta';
        break;
      case 1:
        change(state, to_normal, context(rx_role_pre, 2));
        stream.match(rx_NAME);
        token = 'keyword';

        if (stream.current().match(/^(?:math|latex)/)) {
          state.tmp_stex = true;
        }
        break;
      case 2:
        change(state, to_normal, context(rx_role_pre, 3));
        stream.match(/^:`/);
        token = 'meta';
        break;
      case 3:
        if (state.tmp_stex) {
          state.tmp_stex = undefined; state.tmp = {
            mode: mode_stex, local: CodeMirror.startState(mode_stex)
          };
        }

        if (state.tmp) {
          if (stream.peek() == '`') {
            change(state, to_normal, context(rx_role_pre, 4));
            state.tmp = undefined;
            break;
          }

          token = state.tmp.mode.token(stream, state.tmp.local);
          break;
        }

        change(state, to_normal, context(rx_role_pre, 4));
        stream.match(rx_TEXT2);
        token = 'string';
        break;
      case 4:
        change(state, to_normal, context(rx_role_pre, 5));
        stream.match(/^`/);
        token = 'meta';
        break;
      case 5:
        change(state, to_normal, context(rx_role_pre, 6));
        stream.match(rx_TAIL);
        break;
      default:
        change(state, to_normal);
      }
    } else if (phase(state) == rx_role_suf ||
               stream.match(rx_role_suf, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_normal, context(rx_role_suf, 1));
        stream.match(/^`/);
        token = 'meta';
        break;
      case 1:
        change(state, to_normal, context(rx_role_suf, 2));
        stream.match(rx_TEXT2);
        token = 'string';
        break;
      case 2:
        change(state, to_normal, context(rx_role_suf, 3));
        stream.match(/^`:/);
        token = 'meta';
        break;
      case 3:
        change(state, to_normal, context(rx_role_suf, 4));
        stream.match(rx_NAME);
        token = 'keyword';
        break;
      case 4:
        change(state, to_normal, context(rx_role_suf, 5));
        stream.match(/^:/);
        token = 'meta';
        break;
      case 5:
        change(state, to_normal, context(rx_role_suf, 6));
        stream.match(rx_TAIL);
        break;
      default:
        change(state, to_normal);
      }
    } else if (phase(state) == rx_role || stream.match(rx_role, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_normal, context(rx_role, 1));
        stream.match(/^:/);
        token = 'meta';
        break;
      case 1:
        change(state, to_normal, context(rx_role, 2));
        stream.match(rx_NAME);
        token = 'keyword';
        break;
      case 2:
        change(state, to_normal, context(rx_role, 3));
        stream.match(/^:/);
        token = 'meta';
        break;
      case 3:
        change(state, to_normal, context(rx_role, 4));
        stream.match(rx_TAIL);
        break;
      default:
        change(state, to_normal);
      }
    } else if (phase(state) == rx_substitution_ref ||
               stream.match(rx_substitution_ref, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_normal, context(rx_substitution_ref, 1));
        stream.match(rx_substitution_text);
        token = 'variable-2';
        break;
      case 1:
        change(state, to_normal, context(rx_substitution_ref, 2));
        if (stream.match(/^_?_?/)) token = 'link';
        break;
      default:
        change(state, to_normal);
      }
    } else if (stream.match(rx_footnote_ref)) {
      change(state, to_normal);
      token = 'quote';
    } else if (stream.match(rx_citation_ref)) {
      change(state, to_normal);
      token = 'quote';
    } else if (stream.match(rx_link_ref1)) {
      change(state, to_normal);
      if (!stream.peek() || stream.peek().match(/^\W$/)) {
        token = 'link';
      }
    } else if (phase(state) == rx_link_ref2 ||
               stream.match(rx_link_ref2, false)) {

      switch (stage(state)) {
      case 0:
        if (!stream.peek() || stream.peek().match(/^\W$/)) {
          change(state, to_normal, context(rx_link_ref2, 1));
        } else {
          stream.match(rx_link_ref2);
        }
        break;
      case 1:
        change(state, to_normal, context(rx_link_ref2, 2));
        stream.match(/^`/);
        token = 'link';
        break;
      case 2:
        change(state, to_normal, context(rx_link_ref2, 3));
        stream.match(rx_TEXT2);
        break;
      case 3:
        change(state, to_normal, context(rx_link_ref2, 4));
        stream.match(/^`_/);
        token = 'link';
        break;
      default:
        change(state, to_normal);
      }
    } else if (stream.match(rx_verbatim)) {
      change(state, to_verbatim);
    }

    else {
      if (stream.next()) change(state, to_normal);
    }

    return token;
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function to_explicit(stream, state) {
    var token = null;

    if (phase(state) == rx_substitution ||
        stream.match(rx_substitution, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_explicit, context(rx_substitution, 1));
        stream.match(rx_substitution_text);
        token = 'variable-2';
        break;
      case 1:
        change(state, to_explicit, context(rx_substitution, 2));
        stream.match(rx_substitution_sepa);
        break;
      case 2:
        change(state, to_explicit, context(rx_substitution, 3));
        stream.match(rx_substitution_name);
        token = 'keyword';
        break;
      case 3:
        change(state, to_explicit, context(rx_substitution, 4));
        stream.match(rx_substitution_tail);
        token = 'meta';
        break;
      default:
        change(state, to_normal);
      }
    } else if (phase(state) == rx_directive ||
               stream.match(rx_directive, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_explicit, context(rx_directive, 1));
        stream.match(rx_directive_name);
        token = 'keyword';

        if (stream.current().match(/^(?:math|latex)/))
          state.tmp_stex = true;
        else if (stream.current().match(/^python/))
          state.tmp_py = true;
        break;
      case 1:
        change(state, to_explicit, context(rx_directive, 2));
        stream.match(rx_directive_tail);
        token = 'meta';

        if (stream.match(/^latex\s*$/) || state.tmp_stex) {
          state.tmp_stex = undefined; change(state, to_mode, {
            mode: mode_stex, local: CodeMirror.startState(mode_stex)
          });
        }
        break;
      case 2:
        change(state, to_explicit, context(rx_directive, 3));
        if (stream.match(/^python\s*$/) || state.tmp_py) {
          state.tmp_py = undefined; change(state, to_mode, {
            mode: mode_python, local: CodeMirror.startState(mode_python)
          });
        }
        break;
      default:
        change(state, to_normal);
      }
    } else if (phase(state) == rx_link || stream.match(rx_link, false)) {

      switch (stage(state)) {
      case 0:
        change(state, to_explicit, context(rx_link, 1));
        stream.match(rx_link_head);
        stream.match(rx_link_name);
        token = 'link';
        break;
      case 1:
        change(state, to_explicit, context(rx_link, 2));
        stream.match(rx_link_tail);
        token = 'meta';
        break;
      default:
        change(state, to_normal);
      }
    } else if (stream.match(rx_footnote)) {
      change(state, to_normal);
      token = 'quote';
    } else if (stream.match(rx_citation)) {
      change(state, to_normal);
      token = 'quote';
    }

    else {
      stream.eatSpace();
      if (stream.eol()) {
        change(state, to_normal);
      } else {
        stream.skipToEnd();
        change(state, to_comment);
        token = 'comment';
      }
    }

    return token;
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function to_comment(stream, state) {
    return as_block(stream, state, 'comment');
  }

  function to_verbatim(stream, state) {
    return as_block(stream, state, 'meta');
  }

  function as_block(stream, state, token) {
    if (stream.eol() || stream.eatSpace()) {
      stream.skipToEnd();
      return token;
    } else {
      change(state, to_normal);
      return null;
    }
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function to_mode(stream, state) {

    if (state.ctx.mode && state.ctx.local) {

      if (stream.sol()) {
        if (!stream.eatSpace()) change(state, to_normal);
        return null;
      }

      return state.ctx.mode.token(stream, state.ctx.local);
    }

    change(state, to_normal);
    return null;
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  function context(phase, stage, mode, local) {
    return {phase: phase, stage: stage, mode: mode, local: local};
  }

  function change(state, tok, ctx) {
    state.tok = tok;
    state.ctx = ctx || {};
  }

  function stage(state) {
    return state.ctx.stage || 0;
  }

  function phase(state) {
    return state.ctx.phase;
  }

  ///////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////////////////////////////////////////////

  return {
    startState: function () {
      return {tok: to_normal, ctx: context(undefined, 0)};
    },

    copyState: function (state) {
      var ctx = state.ctx, tmp = state.tmp;
      if (ctx.local)
        ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};
      if (tmp)
        tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};
      return {tok: state.tok, ctx: ctx, tmp: tmp};
    },

    innerMode: function (state) {
      return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}
      : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}
      : null;
    },

    token: function (stream, state) {
      return state.tok(stream, state);
    }
  };
}, 'python', 'stex');

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

CodeMirror.defineMIME('text/x-rst', 'rst');

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

});
editors/codemirror/mode/haml/haml.min.js000064400000004355152177723720014314 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../ruby/ruby")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../ruby/ruby"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("haml",(function(b){function c(a){return function(b,c){var f=b.peek();return f==a&&1==c.rubyState.tokenize.length?(b.next(),c.tokenize=e,"closeAttributeTag"):d(b,c)}}function d(a,b){return a.match("-#")?(a.skipToEnd(),"comment"):g.token(a,b.rubyState)}function e(a,b){var e=a.peek();if("comment"==b.previousToken.style&&b.indented>b.previousToken.indented)return a.skipToEnd(),"commentLine";if(b.startOfLine){if("!"==e&&a.match("!!"))return a.skipToEnd(),"tag";if(a.match(/^%[\w:#\.]+=/))return b.tokenize=d,"hamlTag";if(a.match(/^%[\w:]+/))return"hamlTag";if("/"==e)return a.skipToEnd(),"comment"}if((b.startOfLine||"hamlTag"==b.previousToken.style)&&("#"==e||"."==e))return a.match(/[\w-#\.]*/),"hamlAttribute";if(b.startOfLine&&!a.match("-->",!1)&&("="==e||"-"==e))return b.tokenize=d,b.tokenize(a,b);if("hamlTag"==b.previousToken.style||"closeAttributeTag"==b.previousToken.style||"hamlAttribute"==b.previousToken.style){if("("==e)return b.tokenize=c(")"),b.tokenize(a,b);if("{"==e&&!a.match(/^\{%.*/))return b.tokenize=c("}"),b.tokenize(a,b)}return f.token(a,b.htmlState)}var f=a.getMode(b,{name:"htmlmixed"}),g=a.getMode(b,"ruby");return{startState:function(){var b=a.startState(f),c=a.startState(g);return{htmlState:b,rubyState:c,indented:0,previousToken:{style:null,indented:0},tokenize:e}},copyState:function(b){return{htmlState:a.copyState(f,b.htmlState),rubyState:a.copyState(g,b.rubyState),indented:b.indented,previousToken:b.previousToken,tokenize:b.tokenize}},token:function(a,b){if(a.sol()&&(b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;var c=b.tokenize(a,b);if(b.startOfLine=!1,c&&"commentLine"!=c&&(b.previousToken={style:c,indented:b.indented}),a.eol()&&b.tokenize==d){a.backUp(1);var f=a.peek();a.next(),f&&","!=f&&(b.tokenize=e)}return"hamlTag"==c?c="tag":"commentLine"==c?c="comment":"hamlAttribute"==c?c="attribute":"closeAttributeTag"==c&&(c=null),c}}}),"htmlmixed","ruby"),a.defineMIME("text/x-haml","haml")}));editors/codemirror/mode/haml/haml.js000064400000012352152177723720013526 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

  // full haml mode. This handled embedded ruby and html fragments too
  CodeMirror.defineMode("haml", function(config) {
    var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"});
    var rubyMode = CodeMirror.getMode(config, "ruby");

    function rubyInQuote(endQuote) {
      return function(stream, state) {
        var ch = stream.peek();
        if (ch == endQuote && state.rubyState.tokenize.length == 1) {
          // step out of ruby context as it seems to complete processing all the braces
          stream.next();
          state.tokenize = html;
          return "closeAttributeTag";
        } else {
          return ruby(stream, state);
        }
      };
    }

    function ruby(stream, state) {
      if (stream.match("-#")) {
        stream.skipToEnd();
        return "comment";
      }
      return rubyMode.token(stream, state.rubyState);
    }

    function html(stream, state) {
      var ch = stream.peek();

      // handle haml declarations. All declarations that cant be handled here
      // will be passed to html mode
      if (state.previousToken.style == "comment" ) {
        if (state.indented > state.previousToken.indented) {
          stream.skipToEnd();
          return "commentLine";
        }
      }

      if (state.startOfLine) {
        if (ch == "!" && stream.match("!!")) {
          stream.skipToEnd();
          return "tag";
        } else if (stream.match(/^%[\w:#\.]+=/)) {
          state.tokenize = ruby;
          return "hamlTag";
        } else if (stream.match(/^%[\w:]+/)) {
          return "hamlTag";
        } else if (ch == "/" ) {
          stream.skipToEnd();
          return "comment";
        }
      }

      if (state.startOfLine || state.previousToken.style == "hamlTag") {
        if ( ch == "#" || ch == ".") {
          stream.match(/[\w-#\.]*/);
          return "hamlAttribute";
        }
      }

      // donot handle --> as valid ruby, make it HTML close comment instead
      if (state.startOfLine && !stream.match("-->", false) && (ch == "=" || ch == "-" )) {
        state.tokenize = ruby;
        return state.tokenize(stream, state);
      }

      if (state.previousToken.style == "hamlTag" ||
          state.previousToken.style == "closeAttributeTag" ||
          state.previousToken.style == "hamlAttribute") {
        if (ch == "(") {
          state.tokenize = rubyInQuote(")");
          return state.tokenize(stream, state);
        } else if (ch == "{") {
          if (!stream.match(/^\{%.*/)) {
            state.tokenize = rubyInQuote("}");
            return state.tokenize(stream, state);
          }
        }
      }

      return htmlMode.token(stream, state.htmlState);
    }

    return {
      // default to html mode
      startState: function() {
        var htmlState = CodeMirror.startState(htmlMode);
        var rubyState = CodeMirror.startState(rubyMode);
        return {
          htmlState: htmlState,
          rubyState: rubyState,
          indented: 0,
          previousToken: { style: null, indented: 0},
          tokenize: html
        };
      },

      copyState: function(state) {
        return {
          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),
          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),
          indented: state.indented,
          previousToken: state.previousToken,
          tokenize: state.tokenize
        };
      },

      token: function(stream, state) {
        if (stream.sol()) {
          state.indented = stream.indentation();
          state.startOfLine = true;
        }
        if (stream.eatSpace()) return null;
        var style = state.tokenize(stream, state);
        state.startOfLine = false;
        // dont record comment line as we only want to measure comment line with
        // the opening comment block
        if (style && style != "commentLine") {
          state.previousToken = { style: style, indented: state.indented };
        }
        // if current state is ruby and the previous token is not `,` reset the
        // tokenize to html
        if (stream.eol() && state.tokenize == ruby) {
          stream.backUp(1);
          var ch = stream.peek();
          stream.next();
          if (ch && ch != ",") {
            state.tokenize = html;
          }
        }
        // reprocess some of the specific style tag when finish setting previousToken
        if (style == "hamlTag") {
          style = "tag";
        } else if (style == "commentLine") {
          style = "comment";
        } else if (style == "hamlAttribute") {
          style = "attribute";
        } else if (style == "closeAttributeTag") {
          style = null;
        }
        return style;
      }
    };
  }, "htmlmixed", "ruby");

  CodeMirror.defineMIME("text/x-haml", "haml");
});
editors/codemirror/mode/http/http.min.js000064400000002352152177723720014403 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("http",(function(){function a(a,b){return a.skipToEnd(),b.cur=g,"error"}function b(b,d){return b.match(/^HTTP\/\d\.\d/)?(d.cur=c,"keyword"):b.match(/^[A-Z]+/)&&/[ \t]/.test(b.peek())?(d.cur=e,"keyword"):a(b,d)}function c(b,c){var e=b.match(/^\d+/);if(!e)return a(b,c);c.cur=d;var f=Number(e[0]);return f>=100&&f<200?"positive informational":f>=200&&f<300?"positive success":f>=300&&f<400?"positive redirect":f>=400&&f<500?"negative client-error":f>=500&&f<600?"negative server-error":"error"}function d(a,b){return a.skipToEnd(),b.cur=g,null}function e(a,b){return a.eatWhile(/\S/),b.cur=f,"string-2"}function f(b,c){return b.match(/^HTTP\/\d\.\d$/)?(c.cur=g,"keyword"):a(b,c)}function g(a){return a.sol()&&!a.eat(/[ \t]/)?a.match(/^.*?:/)?"atom":(a.skipToEnd(),"error"):(a.skipToEnd(),"string")}function h(a){return a.skipToEnd(),null}return{token:function(a,b){var c=b.cur;return c!=g&&c!=h&&a.eatSpace()?null:c(a,b)},blankLine:function(a){a.cur=h},startState:function(){return{cur:b}}}})),a.defineMIME("message/http","http")}));editors/codemirror/mode/http/http.js000064400000005354152177723720013626 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("http", function() {
  function failFirstLine(stream, state) {
    stream.skipToEnd();
    state.cur = header;
    return "error";
  }

  function start(stream, state) {
    if (stream.match(/^HTTP\/\d\.\d/)) {
      state.cur = responseStatusCode;
      return "keyword";
    } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) {
      state.cur = requestPath;
      return "keyword";
    } else {
      return failFirstLine(stream, state);
    }
  }

  function responseStatusCode(stream, state) {
    var code = stream.match(/^\d+/);
    if (!code) return failFirstLine(stream, state);

    state.cur = responseStatusText;
    var status = Number(code[0]);
    if (status >= 100 && status < 200) {
      return "positive informational";
    } else if (status >= 200 && status < 300) {
      return "positive success";
    } else if (status >= 300 && status < 400) {
      return "positive redirect";
    } else if (status >= 400 && status < 500) {
      return "negative client-error";
    } else if (status >= 500 && status < 600) {
      return "negative server-error";
    } else {
      return "error";
    }
  }

  function responseStatusText(stream, state) {
    stream.skipToEnd();
    state.cur = header;
    return null;
  }

  function requestPath(stream, state) {
    stream.eatWhile(/\S/);
    state.cur = requestProtocol;
    return "string-2";
  }

  function requestProtocol(stream, state) {
    if (stream.match(/^HTTP\/\d\.\d$/)) {
      state.cur = header;
      return "keyword";
    } else {
      return failFirstLine(stream, state);
    }
  }

  function header(stream) {
    if (stream.sol() && !stream.eat(/[ \t]/)) {
      if (stream.match(/^.*?:/)) {
        return "atom";
      } else {
        stream.skipToEnd();
        return "error";
      }
    } else {
      stream.skipToEnd();
      return "string";
    }
  }

  function body(stream) {
    stream.skipToEnd();
    return null;
  }

  return {
    token: function(stream, state) {
      var cur = state.cur;
      if (cur != header && cur != body && stream.eatSpace()) return null;
      return cur(stream, state);
    },

    blankLine: function(state) {
      state.cur = body;
    },

    startState: function() {
      return {cur: start};
    }
  };
});

CodeMirror.defineMIME("message/http", "http");

});
editors/codemirror/mode/crystal/crystal.min.js000064400000012315152177723720015607 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("crystal",(function(a){function b(a,b){return new RegExp((b?"":"^")+"(?:"+a.join("|")+")"+(b?"$":"\\b"))}function c(a,b,c){return c.tokenize.push(a),a(b,c)}function d(a,b){if(a.eatSpace())return null;if("\\"!=b.lastToken&&a.match("{%",!1))return c(f("%","%"),a,b);if("\\"!=b.lastToken&&a.match("{{",!1))return c(f("{","}"),a,b);if("#"==a.peek())return a.skipToEnd(),"comment";var d;if(a.match(p))return a.eat(/[?!]/),d=a.current(),a.eat(":")?"atom":"."==b.lastToken?"property":r.test(d)?(u.test(d)?"fun"==d&&b.blocks.indexOf("lib")>=0||"def"==d&&"abstract"==b.lastToken||(b.blocks.push(d),b.currentIndent+=1):"operator"!=b.lastStyle&&b.lastStyle||!w.test(d)?"end"==d&&(b.blocks.pop(),b.currentIndent-=1):(b.blocks.push(d),b.currentIndent+=1),B.hasOwnProperty(d)&&b.tokenize.push(B[d]),"keyword"):s.test(d)?"atom":"variable";if(a.eat("@"))return"["==a.peek()?c(e("[","]","meta"),a,b):(a.eat("@"),a.match(p)||a.match(q),"variable-2");if(a.match(q))return"tag";if(a.eat(":"))return a.eat('"')?c(j('"',"atom",!1),a,b):a.match(p)||a.match(q)||a.match(l)||a.match(m)||a.match(n)?"atom":(a.eat(":"),"operator");if(a.eat('"'))return c(j('"',"string",!0),a,b);if("%"==a.peek()){var g,h="string",i=!0;if(a.match("%r"))h="string-2",g=a.next();else if(a.match("%w"))i=!1,g=a.next();else if(a.match("%q"))i=!1,g=a.next();else{if(!(g=a.match(/^%([^\w\s=])/)))return a.match(/^%[a-zA-Z0-9_\u009F-\uFFFF]*/)?"meta":"operator";g=g[1]}return C.hasOwnProperty(g)&&(g=C[g]),c(j(g,h,i),a,b)}return(d=a.match(/^<<-('?)([A-Z]\w*)\1/))?c(k(d[2],!d[1]),a,b):a.eat("'")?(a.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),a.eat("'"),"atom"):a.eat("0")?(a.eat("x")?a.match(/^[0-9a-fA-F]+/):a.eat("o")?a.match(/^[0-7]+/):a.eat("b")&&a.match(/^[01]+/),"number"):a.eat(/^\d/)?(a.match(/^\d*(?:\.\d+)?(?:[eE][+-]?\d+)?/),"number"):a.match(l)?(a.eat("="),"operator"):a.match(m)||a.match(o)?"operator":(d=a.match(/[({[]/,!1))?(d=d[0],c(e(d,C[d],null),a,b)):a.eat("\\")?(a.next(),"meta"):(a.next(),null)}function e(a,b,c,f){return function(g,h){if(!f&&g.match(a))return h.tokenize[h.tokenize.length-1]=e(a,b,c,!0),h.currentIndent+=1,c;var i=d(g,h);return g.current()===b&&(h.tokenize.pop(),h.currentIndent-=1,i=c),i}}function f(a,b,c){return function(e,g){return!c&&e.match("{"+a)?(g.currentIndent+=1,g.tokenize[g.tokenize.length-1]=f(a,b,!0),"meta"):e.match(b+"}")?(g.currentIndent-=1,g.tokenize.pop(),"meta"):d(e,g)}}function g(a,b){if(a.eatSpace())return null;var c;if(c=a.match(p)){if("def"==c)return"keyword";a.eat(/[?!]/)}return b.tokenize.pop(),"def"}function h(a,b){return a.eatSpace()?null:(a.match(p)?a.eat(/[!?]/):a.match(l)||a.match(m)||a.match(n),b.tokenize.pop(),"def")}function i(a,b){return a.eatSpace()?null:(a.match(q),b.tokenize.pop(),"def")}function j(a,b,c){return function(d,g){for(var h=!1;d.peek();)if(h)d.next(),h=!1;else{if(d.match("{%",!1))return g.tokenize.push(f("%","%")),b;if(d.match("{{",!1))return g.tokenize.push(f("{","}")),b;if(c&&d.match("#{",!1))return g.tokenize.push(e("#{","}","meta")),b;var i=d.next();if(i==a)return g.tokenize.pop(),b;h=c&&"\\"==i}return b}}function k(a,b){return function(c,d){if(c.sol()&&(c.eatSpace(),c.match(a)))return d.tokenize.pop(),"string";for(var g=!1;c.peek();)if(g)c.next(),g=!1;else{if(c.match("{%",!1))return d.tokenize.push(f("%","%")),"string";if(c.match("{{",!1))return d.tokenize.push(f("{","}")),"string";if(b&&c.match("#{",!1))return d.tokenize.push(e("#{","}","meta")),"string";g=b&&"\\"==c.next()}return"string"}}var l=/^(?:[-+\/%|&^]|\*\*?|[<>]{2})/,m=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,n=/^(?:\[\][?=]?)/,o=/^(?:\.(?:\.{2})?|->|[?:])/,p=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,q=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,r=b(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),s=b(["true","false","nil","self"]),t=["def","fun","macro","class","module","struct","lib","enum","union","do","for"],u=b(t),v=["if","unless","case","while","until","begin","then"],w=b(v),x=["end","else","elsif","rescue","ensure"],y=b(x),z=["\\)","\\}","\\]"],A=new RegExp("^(?:"+z.join("|")+")$"),B={def:h,fun:h,macro:g,class:i,module:i,struct:i,lib:i,enum:i,union:i},C={"[":"]","{":"}","(":")","<":">"};return{startState:function(){return{tokenize:[d],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(a,b){var c=b.tokenize[b.tokenize.length-1](a,b),d=a.current();return c&&"comment"!=c&&(b.lastToken=d,b.lastStyle=c),c},indent:function(b,c){return c=c.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),y.test(c)||A.test(c)?a.indentUnit*(b.currentIndent-1):a.indentUnit*b.currentIndent},fold:"indent",electricInput:b(z.concat(x),!0),lineComment:"#"}})),a.defineMIME("text/x-crystal","crystal")}));editors/codemirror/mode/crystal/crystal.js000064400000031023152177723720015022 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("crystal", function(config) {
    function wordRegExp(words, end) {
      return new RegExp((end ? "" : "^") + "(?:" + words.join("|") + ")" + (end ? "$" : "\\b"));
    }

    function chain(tokenize, stream, state) {
      state.tokenize.push(tokenize);
      return tokenize(stream, state);
    }

    var operators = /^(?:[-+/%|&^]|\*\*?|[<>]{2})/;
    var conditionalOperators = /^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/;
    var indexingOperators = /^(?:\[\][?=]?)/;
    var anotherOperators = /^(?:\.(?:\.{2})?|->|[?:])/;
    var idents = /^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;
    var types = /^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;
    var keywords = wordRegExp([
      "abstract", "alias", "as", "asm", "begin", "break", "case", "class", "def", "do",
      "else", "elsif", "end", "ensure", "enum", "extend", "for", "fun", "if",
      "include", "instance_sizeof", "lib", "macro", "module", "next", "of", "out", "pointerof",
      "private", "protected", "rescue", "return", "require", "select", "sizeof", "struct",
      "super", "then", "type", "typeof", "uninitialized", "union", "unless", "until", "when", "while", "with",
      "yield", "__DIR__", "__END_LINE__", "__FILE__", "__LINE__"
    ]);
    var atomWords = wordRegExp(["true", "false", "nil", "self"]);
    var indentKeywordsArray = [
      "def", "fun", "macro",
      "class", "module", "struct", "lib", "enum", "union",
      "do", "for"
    ];
    var indentKeywords = wordRegExp(indentKeywordsArray);
    var indentExpressionKeywordsArray = ["if", "unless", "case", "while", "until", "begin", "then"];
    var indentExpressionKeywords = wordRegExp(indentExpressionKeywordsArray);
    var dedentKeywordsArray = ["end", "else", "elsif", "rescue", "ensure"];
    var dedentKeywords = wordRegExp(dedentKeywordsArray);
    var dedentPunctualsArray = ["\\)", "\\}", "\\]"];
    var dedentPunctuals = new RegExp("^(?:" + dedentPunctualsArray.join("|") + ")$");
    var nextTokenizer = {
      "def": tokenFollowIdent, "fun": tokenFollowIdent, "macro": tokenMacroDef,
      "class": tokenFollowType, "module": tokenFollowType, "struct": tokenFollowType,
      "lib": tokenFollowType, "enum": tokenFollowType, "union": tokenFollowType
    };
    var matching = {"[": "]", "{": "}", "(": ")", "<": ">"};

    function tokenBase(stream, state) {
      if (stream.eatSpace()) {
        return null;
      }

      // Macros
      if (state.lastToken != "\\" && stream.match("{%", false)) {
        return chain(tokenMacro("%", "%"), stream, state);
      }

      if (state.lastToken != "\\" && stream.match("{{", false)) {
        return chain(tokenMacro("{", "}"), stream, state);
      }

      // Comments
      if (stream.peek() == "#") {
        stream.skipToEnd();
        return "comment";
      }

      // Variables and keywords
      var matched;
      if (stream.match(idents)) {
        stream.eat(/[?!]/);

        matched = stream.current();
        if (stream.eat(":")) {
          return "atom";
        } else if (state.lastToken == ".") {
          return "property";
        } else if (keywords.test(matched)) {
          if (indentKeywords.test(matched)) {
            if (!(matched == "fun" && state.blocks.indexOf("lib") >= 0) && !(matched == "def" && state.lastToken == "abstract")) {
              state.blocks.push(matched);
              state.currentIndent += 1;
            }
          } else if ((state.lastStyle == "operator" || !state.lastStyle) && indentExpressionKeywords.test(matched)) {
            state.blocks.push(matched);
            state.currentIndent += 1;
          } else if (matched == "end") {
            state.blocks.pop();
            state.currentIndent -= 1;
          }

          if (nextTokenizer.hasOwnProperty(matched)) {
            state.tokenize.push(nextTokenizer[matched]);
          }

          return "keyword";
        } else if (atomWords.test(matched)) {
          return "atom";
        }

        return "variable";
      }

      // Class variables and instance variables
      // or attributes
      if (stream.eat("@")) {
        if (stream.peek() == "[") {
          return chain(tokenNest("[", "]", "meta"), stream, state);
        }

        stream.eat("@");
        stream.match(idents) || stream.match(types);
        return "variable-2";
      }

      // Constants and types
      if (stream.match(types)) {
        return "tag";
      }

      // Symbols or ':' operator
      if (stream.eat(":")) {
        if (stream.eat("\"")) {
          return chain(tokenQuote("\"", "atom", false), stream, state);
        } else if (stream.match(idents) || stream.match(types) ||
                   stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators)) {
          return "atom";
        }
        stream.eat(":");
        return "operator";
      }

      // Strings
      if (stream.eat("\"")) {
        return chain(tokenQuote("\"", "string", true), stream, state);
      }

      // Strings or regexps or macro variables or '%' operator
      if (stream.peek() == "%") {
        var style = "string";
        var embed = true;
        var delim;

        if (stream.match("%r")) {
          // Regexps
          style = "string-2";
          delim = stream.next();
        } else if (stream.match("%w")) {
          embed = false;
          delim = stream.next();
        } else if (stream.match("%q")) {
          embed = false;
          delim = stream.next();
        } else {
          if(delim = stream.match(/^%([^\w\s=])/)) {
            delim = delim[1];
          } else if (stream.match(/^%[a-zA-Z0-9_\u009F-\uFFFF]*/)) {
            // Macro variables
            return "meta";
          } else {
            // '%' operator
            return "operator";
          }
        }

        if (matching.hasOwnProperty(delim)) {
          delim = matching[delim];
        }
        return chain(tokenQuote(delim, style, embed), stream, state);
      }

      // Here Docs
      if (matched = stream.match(/^<<-('?)([A-Z]\w*)\1/)) {
        return chain(tokenHereDoc(matched[2], !matched[1]), stream, state)
      }

      // Characters
      if (stream.eat("'")) {
        stream.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/);
        stream.eat("'");
        return "atom";
      }

      // Numbers
      if (stream.eat("0")) {
        if (stream.eat("x")) {
          stream.match(/^[0-9a-fA-F]+/);
        } else if (stream.eat("o")) {
          stream.match(/^[0-7]+/);
        } else if (stream.eat("b")) {
          stream.match(/^[01]+/);
        }
        return "number";
      }

      if (stream.eat(/^\d/)) {
        stream.match(/^\d*(?:\.\d+)?(?:[eE][+-]?\d+)?/);
        return "number";
      }

      // Operators
      if (stream.match(operators)) {
        stream.eat("="); // Operators can follow assign symbol.
        return "operator";
      }

      if (stream.match(conditionalOperators) || stream.match(anotherOperators)) {
        return "operator";
      }

      // Parens and braces
      if (matched = stream.match(/[({[]/, false)) {
        matched = matched[0];
        return chain(tokenNest(matched, matching[matched], null), stream, state);
      }

      // Escapes
      if (stream.eat("\\")) {
        stream.next();
        return "meta";
      }

      stream.next();
      return null;
    }

    function tokenNest(begin, end, style, started) {
      return function (stream, state) {
        if (!started && stream.match(begin)) {
          state.tokenize[state.tokenize.length - 1] = tokenNest(begin, end, style, true);
          state.currentIndent += 1;
          return style;
        }

        var nextStyle = tokenBase(stream, state);
        if (stream.current() === end) {
          state.tokenize.pop();
          state.currentIndent -= 1;
          nextStyle = style;
        }

        return nextStyle;
      };
    }

    function tokenMacro(begin, end, started) {
      return function (stream, state) {
        if (!started && stream.match("{" + begin)) {
          state.currentIndent += 1;
          state.tokenize[state.tokenize.length - 1] = tokenMacro(begin, end, true);
          return "meta";
        }

        if (stream.match(end + "}")) {
          state.currentIndent -= 1;
          state.tokenize.pop();
          return "meta";
        }

        return tokenBase(stream, state);
      };
    }

    function tokenMacroDef(stream, state) {
      if (stream.eatSpace()) {
        return null;
      }

      var matched;
      if (matched = stream.match(idents)) {
        if (matched == "def") {
          return "keyword";
        }
        stream.eat(/[?!]/);
      }

      state.tokenize.pop();
      return "def";
    }

    function tokenFollowIdent(stream, state) {
      if (stream.eatSpace()) {
        return null;
      }

      if (stream.match(idents)) {
        stream.eat(/[!?]/);
      } else {
        stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators);
      }
      state.tokenize.pop();
      return "def";
    }

    function tokenFollowType(stream, state) {
      if (stream.eatSpace()) {
        return null;
      }

      stream.match(types);
      state.tokenize.pop();
      return "def";
    }

    function tokenQuote(end, style, embed) {
      return function (stream, state) {
        var escaped = false;

        while (stream.peek()) {
          if (!escaped) {
            if (stream.match("{%", false)) {
              state.tokenize.push(tokenMacro("%", "%"));
              return style;
            }

            if (stream.match("{{", false)) {
              state.tokenize.push(tokenMacro("{", "}"));
              return style;
            }

            if (embed && stream.match("#{", false)) {
              state.tokenize.push(tokenNest("#{", "}", "meta"));
              return style;
            }

            var ch = stream.next();

            if (ch == end) {
              state.tokenize.pop();
              return style;
            }

            escaped = embed && ch == "\\";
          } else {
            stream.next();
            escaped = false;
          }
        }

        return style;
      };
    }

    function tokenHereDoc(phrase, embed) {
      return function (stream, state) {
        if (stream.sol()) {
          stream.eatSpace()
          if (stream.match(phrase)) {
            state.tokenize.pop();
            return "string";
          }
        }

        var escaped = false;
        while (stream.peek()) {
          if (!escaped) {
            if (stream.match("{%", false)) {
              state.tokenize.push(tokenMacro("%", "%"));
              return "string";
            }

            if (stream.match("{{", false)) {
              state.tokenize.push(tokenMacro("{", "}"));
              return "string";
            }

            if (embed && stream.match("#{", false)) {
              state.tokenize.push(tokenNest("#{", "}", "meta"));
              return "string";
            }

            escaped = embed && stream.next() == "\\";
          } else {
            stream.next();
            escaped = false;
          }
        }

        return "string";
      }
    }

    return {
      startState: function () {
        return {
          tokenize: [tokenBase],
          currentIndent: 0,
          lastToken: null,
          lastStyle: null,
          blocks: []
        };
      },

      token: function (stream, state) {
        var style = state.tokenize[state.tokenize.length - 1](stream, state);
        var token = stream.current();

        if (style && style != "comment") {
          state.lastToken = token;
          state.lastStyle = style;
        }

        return style;
      },

      indent: function (state, textAfter) {
        textAfter = textAfter.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g, "");

        if (dedentKeywords.test(textAfter) || dedentPunctuals.test(textAfter)) {
          return config.indentUnit * (state.currentIndent - 1);
        }

        return config.indentUnit * state.currentIndent;
      },

      fold: "indent",
      electricInput: wordRegExp(dedentPunctualsArray.concat(dedentKeywordsArray), true),
      lineComment: '#'
    };
  });

  CodeMirror.defineMIME("text/x-crystal", "crystal");
});
editors/codemirror/mode/ttcn/ttcn.min.js000064400000012543152177723720014370 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(b,c){function d(a){if(a)for(var b in a)a.hasOwnProperty(b)&&e.push(b)}"string"==typeof b&&(b=[b]);var e=[];d(c.keywords),d(c.builtin),d(c.timerOps),d(c.portOps),e.length&&(c.helperType=b[0],a.registerHelper("hintWords",b[0],e));for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}a.defineMode("ttcn",(function(a,b){function c(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\\:\?\.]/.test(c))return i=c,"punctuation";if("#"==c)return a.skipToEnd(),"atom preprocessor";if("%"==c)return a.eatWhile(/\b/),"atom ttcn3Macros";if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("*"))return b.tokenize=e,e(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(A.test(c))return"@"==c&&(a.match("try")||a.match("catch")||a.match("lazy"))?"keyword":(a.eatWhile(A),"operator");a.eatWhile(/[\w\$_\xa1-\uffff]/);var f=a.current();return k.propertyIsEnumerable(f)?"keyword":l.propertyIsEnumerable(f)?"builtin":m.propertyIsEnumerable(f)?"def timerOps":o.propertyIsEnumerable(f)?"def configOps":p.propertyIsEnumerable(f)?"def verdictOps":n.propertyIsEnumerable(f)?"def portOps":q.propertyIsEnumerable(f)?"def sutOps":r.propertyIsEnumerable(f)?"def functionOps":s.propertyIsEnumerable(f)?"string verdictConsts":t.propertyIsEnumerable(f)?"string booleanConsts":u.propertyIsEnumerable(f)?"string otherConsts":v.propertyIsEnumerable(f)?"builtin types":w.propertyIsEnumerable(f)?"builtin visibilityModifiers":x.propertyIsEnumerable(f)?"atom templateMatch":"variable"}function d(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){var g=b.peek();g&&(g=g.toLowerCase(),"b"!=g&&"h"!=g&&"o"!=g||b.next()),f=!0;break}e=!e&&"\\"==d}return(f||!e&&!y)&&(c.tokenize=null),"string"}}function e(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=null;break}d="*"==c}return"comment"}function f(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function g(a,b,c){var d=a.indented;return a.context&&"statement"==a.context.type&&(d=a.context.indented),a.context=new f(d,b,c,null,a.context)}function h(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var i,j=a.indentUnit,k=b.keywords||{},l=b.builtin||{},m=b.timerOps||{},n=b.portOps||{},o=b.configOps||{},p=b.verdictOps||{},q=b.sutOps||{},r=b.functionOps||{},s=b.verdictConsts||{},t=b.booleanConsts||{},u=b.otherConsts||{},v=b.types||{},w=b.visibilityModifiers||{},x=b.templateMatch||{},y=b.multiLineStrings,z=b.indentStatements!==!1,A=/[+\-*&@=<>!\/]/;return{startState:function(a){return{tokenize:null,context:new f((a||0)-j,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;i=null;var e=(b.tokenize||c)(a,b);if("comment"==e)return e;if(null==d.align&&(d.align=!0),";"!=i&&":"!=i&&","!=i||"statement"!=d.type)if("{"==i)g(b,a.column(),"}");else if("["==i)g(b,a.column(),"]");else if("("==i)g(b,a.column(),")");else if("}"==i){for(;"statement"==d.type;)d=h(b);for("}"==d.type&&(d=h(b));"statement"==d.type;)d=h(b)}else i==d.type?h(b):z&&(("}"==d.type||"top"==d.type)&&";"!=i||"statement"==d.type&&"newstatement"==i)&&g(b,a.column(),"statement");else h(b);return b.startOfLine=!1,e},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}})),c(["text/x-ttcn","text/x-ttcn3","text/x-ttcnpp"],{name:"ttcn",keywords:b("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),builtin:b("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),types:b("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),timerOps:b("read running start stop timeout"),portOps:b("call catch check clear getcall getreply halt raise receive reply send trigger"),configOps:b("create connect disconnect done kill killed map unmap"),verdictOps:b("getverdict setverdict"),sutOps:b("action"),functionOps:b("apply derefers refers"),verdictConsts:b("error fail inconc none pass"),booleanConsts:b("true false"),otherConsts:b("null NULL omit"),visibilityModifiers:b("private public friend"),templateMatch:b("complement ifpresent subset superset permutation"),multiLineStrings:!0})}));editors/codemirror/mode/ttcn/ttcn.js000064400000023654152177723720013613 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("ttcn", function(config, parserConfig) {
    var indentUnit = config.indentUnit,
        keywords = parserConfig.keywords || {},
        builtin = parserConfig.builtin || {},
        timerOps = parserConfig.timerOps || {},
        portOps  = parserConfig.portOps || {},
        configOps = parserConfig.configOps || {},
        verdictOps = parserConfig.verdictOps || {},
        sutOps = parserConfig.sutOps || {},
        functionOps = parserConfig.functionOps || {},

        verdictConsts = parserConfig.verdictConsts || {},
        booleanConsts = parserConfig.booleanConsts || {},
        otherConsts   = parserConfig.otherConsts || {},

        types = parserConfig.types || {},
        visibilityModifiers = parserConfig.visibilityModifiers || {},
        templateMatch = parserConfig.templateMatch || {},
        multiLineStrings = parserConfig.multiLineStrings,
        indentStatements = parserConfig.indentStatements !== false;
    var isOperatorChar = /[+\-*&@=<>!\/]/;
    var curPunc;

    function tokenBase(stream, state) {
      var ch = stream.next();

      if (ch == '"' || ch == "'") {
        state.tokenize = tokenString(ch);
        return state.tokenize(stream, state);
      }
      if (/[\[\]{}\(\),;\\:\?\.]/.test(ch)) {
        curPunc = ch;
        return "punctuation";
      }
      if (ch == "#"){
        stream.skipToEnd();
        return "atom preprocessor";
      }
      if (ch == "%"){
        stream.eatWhile(/\b/);
        return "atom ttcn3Macros";
      }
      if (/\d/.test(ch)) {
        stream.eatWhile(/[\w\.]/);
        return "number";
      }
      if (ch == "/") {
        if (stream.eat("*")) {
          state.tokenize = tokenComment;
          return tokenComment(stream, state);
        }
        if (stream.eat("/")) {
          stream.skipToEnd();
          return "comment";
        }
      }
      if (isOperatorChar.test(ch)) {
        if(ch == "@"){
          if(stream.match("try") || stream.match("catch")
              || stream.match("lazy")){
            return "keyword";
          }
        }
        stream.eatWhile(isOperatorChar);
        return "operator";
      }
      stream.eatWhile(/[\w\$_\xa1-\uffff]/);
      var cur = stream.current();

      if (keywords.propertyIsEnumerable(cur)) return "keyword";
      if (builtin.propertyIsEnumerable(cur)) return "builtin";

      if (timerOps.propertyIsEnumerable(cur)) return "def timerOps";
      if (configOps.propertyIsEnumerable(cur)) return "def configOps";
      if (verdictOps.propertyIsEnumerable(cur)) return "def verdictOps";
      if (portOps.propertyIsEnumerable(cur)) return "def portOps";
      if (sutOps.propertyIsEnumerable(cur)) return "def sutOps";
      if (functionOps.propertyIsEnumerable(cur)) return "def functionOps";

      if (verdictConsts.propertyIsEnumerable(cur)) return "string verdictConsts";
      if (booleanConsts.propertyIsEnumerable(cur)) return "string booleanConsts";
      if (otherConsts.propertyIsEnumerable(cur)) return "string otherConsts";

      if (types.propertyIsEnumerable(cur)) return "builtin types";
      if (visibilityModifiers.propertyIsEnumerable(cur))
        return "builtin visibilityModifiers";
      if (templateMatch.propertyIsEnumerable(cur)) return "atom templateMatch";

      return "variable";
    }

    function tokenString(quote) {
      return function(stream, state) {
        var escaped = false, next, end = false;
        while ((next = stream.next()) != null) {
          if (next == quote && !escaped){
            var afterQuote = stream.peek();
            //look if the character after the quote is like the B in '10100010'B
            if (afterQuote){
              afterQuote = afterQuote.toLowerCase();
              if(afterQuote == "b" || afterQuote == "h" || afterQuote == "o")
                stream.next();
            }
            end = true; break;
          }
          escaped = !escaped && next == "\\";
        }
        if (end || !(escaped || multiLineStrings))
          state.tokenize = null;
        return "string";
      };
    }

    function tokenComment(stream, state) {
      var maybeEnd = false, ch;
      while (ch = stream.next()) {
        if (ch == "/" && maybeEnd) {
          state.tokenize = null;
          break;
        }
        maybeEnd = (ch == "*");
      }
      return "comment";
    }

    function Context(indented, column, type, align, prev) {
      this.indented = indented;
      this.column = column;
      this.type = type;
      this.align = align;
      this.prev = prev;
    }

    function pushContext(state, col, type) {
      var indent = state.indented;
      if (state.context && state.context.type == "statement")
        indent = state.context.indented;
      return state.context = new Context(indent, col, type, null, state.context);
    }

    function popContext(state) {
      var t = state.context.type;
      if (t == ")" || t == "]" || t == "}")
        state.indented = state.context.indented;
      return state.context = state.context.prev;
    }

    //Interface
    return {
      startState: function(basecolumn) {
        return {
          tokenize: null,
          context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
          indented: 0,
          startOfLine: true
        };
      },

      token: function(stream, state) {
        var ctx = state.context;
        if (stream.sol()) {
          if (ctx.align == null) ctx.align = false;
          state.indented = stream.indentation();
          state.startOfLine = true;
        }
        if (stream.eatSpace()) return null;
        curPunc = null;
        var style = (state.tokenize || tokenBase)(stream, state);
        if (style == "comment") return style;
        if (ctx.align == null) ctx.align = true;

        if ((curPunc == ";" || curPunc == ":" || curPunc == ",")
            && ctx.type == "statement"){
          popContext(state);
        }
        else if (curPunc == "{") pushContext(state, stream.column(), "}");
        else if (curPunc == "[") pushContext(state, stream.column(), "]");
        else if (curPunc == "(") pushContext(state, stream.column(), ")");
        else if (curPunc == "}") {
          while (ctx.type == "statement") ctx = popContext(state);
          if (ctx.type == "}") ctx = popContext(state);
          while (ctx.type == "statement") ctx = popContext(state);
        }
        else if (curPunc == ctx.type) popContext(state);
        else if (indentStatements &&
            (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') ||
            (ctx.type == "statement" && curPunc == "newstatement")))
          pushContext(state, stream.column(), "statement");

        state.startOfLine = false;

        return style;
      },

      electricChars: "{}",
      blockCommentStart: "/*",
      blockCommentEnd: "*/",
      lineComment: "//",
      fold: "brace"
    };
  });

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  function def(mimes, mode) {
    if (typeof mimes == "string") mimes = [mimes];
    var words = [];
    function add(obj) {
      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))
        words.push(prop);
    }

    add(mode.keywords);
    add(mode.builtin);
    add(mode.timerOps);
    add(mode.portOps);

    if (words.length) {
      mode.helperType = mimes[0];
      CodeMirror.registerHelper("hintWords", mimes[0], words);
    }

    for (var i = 0; i < mimes.length; ++i)
      CodeMirror.defineMIME(mimes[i], mode);
  }

  def(["text/x-ttcn", "text/x-ttcn3", "text/x-ttcnpp"], {
    name: "ttcn",
    keywords: words("activate address alive all alt altstep and and4b any" +
    " break case component const continue control deactivate" +
    " display do else encode enumerated except exception" +
    " execute extends extension external for from function" +
    " goto group if import in infinity inout interleave" +
    " label language length log match message mixed mod" +
    " modifies module modulepar mtc noblock not not4b nowait" +
    " of on optional or or4b out override param pattern port" +
    " procedure record recursive rem repeat return runs select" +
    " self sender set signature system template testcase to" +
    " type union value valueof var variant while with xor xor4b"),
    builtin: words("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue" +
    " decomp decvalue float2int float2str hex2bit hex2int" +
    " hex2oct hex2str int2bit int2char int2float int2hex" +
    " int2oct int2str int2unichar isbound ischosen ispresent" +
    " isvalue lengthof log2str oct2bit oct2char oct2hex oct2int" +
    " oct2str regexp replace rnd sizeof str2bit str2float" +
    " str2hex str2int str2oct substr unichar2int unichar2char" +
    " enum2int"),
    types: words("anytype bitstring boolean char charstring default float" +
    " hexstring integer objid octetstring universal verdicttype timer"),
    timerOps: words("read running start stop timeout"),
    portOps: words("call catch check clear getcall getreply halt raise receive" +
    " reply send trigger"),
    configOps: words("create connect disconnect done kill killed map unmap"),
    verdictOps: words("getverdict setverdict"),
    sutOps: words("action"),
    functionOps: words("apply derefers refers"),

    verdictConsts: words("error fail inconc none pass"),
    booleanConsts: words("true false"),
    otherConsts: words("null NULL omit"),

    visibilityModifiers: words("private public friend"),
    templateMatch: words("complement ifpresent subset superset permutation"),
    multiLineStrings: true
  });
});
editors/codemirror/mode/tornado/tornado.min.js000064400000002626152177723720015565 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../../addon/mode/overlay")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../../addon/mode/overlay"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("tornado:inner",(function(){function a(a,c){a.eatWhile(/[^\{]/);var d=a.next();if("{"==d&&(d=a.eat(/\{|%|#/)))return c.tokenize=b(d),"tag"}function b(b){return"{"==b&&(b="}"),function(d,e){var f=d.next();return f==b&&d.eat("}")?(e.tokenize=a,"tag"):d.match(c)?"keyword":"#"==b?"comment":"string"}}var c=["and","as","assert","autoescape","block","break","class","comment","context","continue","datetime","def","del","elif","else","end","escape","except","exec","extends","false","finally","for","from","global","if","import","in","include","is","json_encode","lambda","length","linkify","load","module","none","not","or","pass","print","put","raise","raw","return","self","set","squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"];return c=new RegExp("^(("+c.join(")|(")+"))\\b"),{startState:function(){return{tokenize:a}},token:function(a,b){return b.tokenize(a,b)}}})),a.defineMode("tornado",(function(b){var c=a.getMode(b,"text/html"),d=a.getMode(b,"tornado:inner");return a.overlayMode(c,d)})),a.defineMIME("text/x-tornado","tornado")}));editors/codemirror/mode/tornado/tornado.js000064400000004701152177723720014777 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
        require("../../addon/mode/overlay"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
            "../../addon/mode/overlay"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("tornado:inner", function() {
    var keywords = ["and","as","assert","autoescape","block","break","class","comment","context",
                    "continue","datetime","def","del","elif","else","end","escape","except",
                    "exec","extends","false","finally","for","from","global","if","import","in",
                    "include","is","json_encode","lambda","length","linkify","load","module",
                    "none","not","or","pass","print","put","raise","raw","return","self","set",
                    "squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"];
    keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b");

    function tokenBase (stream, state) {
      stream.eatWhile(/[^\{]/);
      var ch = stream.next();
      if (ch == "{") {
        if (ch = stream.eat(/\{|%|#/)) {
          state.tokenize = inTag(ch);
          return "tag";
        }
      }
    }
    function inTag (close) {
      if (close == "{") {
        close = "}";
      }
      return function (stream, state) {
        var ch = stream.next();
        if ((ch == close) && stream.eat("}")) {
          state.tokenize = tokenBase;
          return "tag";
        }
        if (stream.match(keywords)) {
          return "keyword";
        }
        return close == "#" ? "comment" : "string";
      };
    }
    return {
      startState: function () {
        return {tokenize: tokenBase};
      },
      token: function (stream, state) {
        return state.tokenize(stream, state);
      }
    };
  });

  CodeMirror.defineMode("tornado", function(config) {
    var htmlBase = CodeMirror.getMode(config, "text/html");
    var tornadoInner = CodeMirror.getMode(config, "tornado:inner");
    return CodeMirror.overlayMode(htmlBase, tornadoInner);
  });

  CodeMirror.defineMIME("text/x-tornado", "tornado");
});
editors/codemirror/mode/sql/sql.js000064400000132163152177723720013265 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("sql", function(config, parserConfig) {
  "use strict";

  var client         = parserConfig.client || {},
      atoms          = parserConfig.atoms || {"false": true, "true": true, "null": true},
      builtin        = parserConfig.builtin || {},
      keywords       = parserConfig.keywords || {},
      operatorChars  = parserConfig.operatorChars || /^[*+\-%<>!=&|~^]/,
      support        = parserConfig.support || {},
      hooks          = parserConfig.hooks || {},
      dateSQL        = parserConfig.dateSQL || {"date" : true, "time" : true, "timestamp" : true},
      backslashStringEscapes = parserConfig.backslashStringEscapes !== false,
      brackets       = parserConfig.brackets || /^[\{}\(\)\[\]]/,
      punctuation    = parserConfig.punctuation || /^[;.,:]/

  function tokenBase(stream, state) {
    var ch = stream.next();

    // call hooks from the mime type
    if (hooks[ch]) {
      var result = hooks[ch](stream, state);
      if (result !== false) return result;
    }

    if (support.hexNumber &&
      ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/))
      || (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) {
      // hex
      // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html
      return "number";
    } else if (support.binaryNumber &&
      (((ch == "b" || ch == "B") && stream.match(/^'[01]+'/))
      || (ch == "0" && stream.match(/^b[01]+/)))) {
      // bitstring
      // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html
      return "number";
    } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {
      // numbers
      // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html
      stream.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/);
      support.decimallessFloat && stream.match(/^\.(?!\.)/);
      return "number";
    } else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) {
      // placeholders
      return "variable-3";
    } else if (ch == "'" || (ch == '"' && support.doubleQuote)) {
      // strings
      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
      state.tokenize = tokenLiteral(ch);
      return state.tokenize(stream, state);
    } else if ((((support.nCharCast && (ch == "n" || ch == "N"))
        || (support.charsetCast && ch == "_" && stream.match(/[a-z][a-z0-9]*/i)))
        && (stream.peek() == "'" || stream.peek() == '"'))) {
      // charset casting: _utf8'str', N'str', n'str'
      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
      return "keyword";
    } else if (support.commentSlashSlash && ch == "/" && stream.eat("/")) {
      // 1-line comment
      stream.skipToEnd();
      return "comment";
    } else if ((support.commentHash && ch == "#")
        || (ch == "-" && stream.eat("-") && (!support.commentSpaceRequired || stream.eat(" ")))) {
      // 1-line comments
      // ref: https://kb.askmonty.org/en/comment-syntax/
      stream.skipToEnd();
      return "comment";
    } else if (ch == "/" && stream.eat("*")) {
      // multi-line comments
      // ref: https://kb.askmonty.org/en/comment-syntax/
      state.tokenize = tokenComment(1);
      return state.tokenize(stream, state);
    } else if (ch == ".") {
      // .1 for 0.1
      if (support.zerolessFloat && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i))
        return "number";
      if (stream.match(/^\.+/))
        return null
      // .table_name (ODBC)
      // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
      if (support.ODBCdotTable && stream.match(/^[\w\d_]+/))
        return "variable-2";
    } else if (operatorChars.test(ch)) {
      // operators
      stream.eatWhile(operatorChars);
      return "operator";
    } else if (brackets.test(ch)) {
      // brackets
      stream.eatWhile(brackets);
      return "bracket";
    } else if (punctuation.test(ch)) {
      // punctuation
      stream.eatWhile(punctuation);
      return "punctuation";
    } else if (ch == '{' &&
        (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) {
      // dates (weird ODBC syntax)
      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
      return "number";
    } else {
      stream.eatWhile(/^[_\w\d]/);
      var word = stream.current().toLowerCase();
      // dates (standard SQL syntax)
      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
      if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/)))
        return "number";
      if (atoms.hasOwnProperty(word)) return "atom";
      if (builtin.hasOwnProperty(word)) return "builtin";
      if (keywords.hasOwnProperty(word)) return "keyword";
      if (client.hasOwnProperty(word)) return "string-2";
      return null;
    }
  }

  // 'string', with char specified in quote escaped by '\'
  function tokenLiteral(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) {
          state.tokenize = tokenBase;
          break;
        }
        escaped = backslashStringEscapes && !escaped && ch == "\\";
      }
      return "string";
    };
  }
  function tokenComment(depth) {
    return function(stream, state) {
      var m = stream.match(/^.*?(\/\*|\*\/)/)
      if (!m) stream.skipToEnd()
      else if (m[1] == "/*") state.tokenize = tokenComment(depth + 1)
      else if (depth > 1) state.tokenize = tokenComment(depth - 1)
      else state.tokenize = tokenBase
      return "comment"
    }
  }

  function pushContext(stream, state, type) {
    state.context = {
      prev: state.context,
      indent: stream.indentation(),
      col: stream.column(),
      type: type
    };
  }

  function popContext(state) {
    state.indent = state.context.indent;
    state.context = state.context.prev;
  }

  return {
    startState: function() {
      return {tokenize: tokenBase, context: null};
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (state.context && state.context.align == null)
          state.context.align = false;
      }
      if (state.tokenize == tokenBase && stream.eatSpace()) return null;

      var style = state.tokenize(stream, state);
      if (style == "comment") return style;

      if (state.context && state.context.align == null)
        state.context.align = true;

      var tok = stream.current();
      if (tok == "(")
        pushContext(stream, state, ")");
      else if (tok == "[")
        pushContext(stream, state, "]");
      else if (state.context && state.context.type == tok)
        popContext(state);
      return style;
    },

    indent: function(state, textAfter) {
      var cx = state.context;
      if (!cx) return CodeMirror.Pass;
      var closing = textAfter.charAt(0) == cx.type;
      if (cx.align) return cx.col + (closing ? 0 : 1);
      else return cx.indent + (closing ? 0 : config.indentUnit);
    },

    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: support.commentSlashSlash ? "//" : support.commentHash ? "#" : "--",
    closeBrackets: "()[]{}''\"\"``"
  };
});

(function() {
  "use strict";

  // `identifier`
  function hookIdentifier(stream) {
    // MySQL/MariaDB identifiers
    // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
    var ch;
    while ((ch = stream.next()) != null) {
      if (ch == "`" && !stream.eat("`")) return "variable-2";
    }
    stream.backUp(stream.current().length - 1);
    return stream.eatWhile(/\w/) ? "variable-2" : null;
  }

  // "identifier"
  function hookIdentifierDoublequote(stream) {
    // Standard SQL /SQLite identifiers
    // ref: http://web.archive.org/web/20160813185132/http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier
    // ref: http://sqlite.org/lang_keywords.html
    var ch;
    while ((ch = stream.next()) != null) {
      if (ch == "\"" && !stream.eat("\"")) return "variable-2";
    }
    stream.backUp(stream.current().length - 1);
    return stream.eatWhile(/\w/) ? "variable-2" : null;
  }

  // variable token
  function hookVar(stream) {
    // variables
    // @@prefix.varName @varName
    // varName can be quoted with ` or ' or "
    // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html
    if (stream.eat("@")) {
      stream.match(/^session\./);
      stream.match(/^local\./);
      stream.match(/^global\./);
    }

    if (stream.eat("'")) {
      stream.match(/^.*'/);
      return "variable-2";
    } else if (stream.eat('"')) {
      stream.match(/^.*"/);
      return "variable-2";
    } else if (stream.eat("`")) {
      stream.match(/^.*`/);
      return "variable-2";
    } else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) {
      return "variable-2";
    }
    return null;
  };

  // short client keyword token
  function hookClient(stream) {
    // \N means NULL
    // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html
    if (stream.eat("N")) {
        return "atom";
    }
    // \g, etc
    // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html
    return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null;
  }

  // these keywords are used by all SQL dialects (however, a mode can still overwrite it)
  var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";

  // turn a space-separated list into an array
  function set(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  // A generic SQL Mode. It's not a standard, it just try to support what is generally supported
  CodeMirror.defineMIME("text/x-sql", {
    name: "sql",
    keywords: set(sqlKeywords + "begin"),
    builtin: set("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable doubleQuote binaryNumber hexNumber")
  });

  CodeMirror.defineMIME("text/x-mssql", {
    name: "sql",
    client: set("$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id"),
    keywords: set(sqlKeywords + "begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with"),
    builtin: set("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),
    atoms: set("is not null like and or in left right between inner outer join all any some cross unpivot pivot exists"),
    operatorChars: /^[*+\-%<>!=^\&|\/]/,
    brackets: /^[\{}\(\)]/,
    punctuation: /^[;.,:/]/,
    backslashStringEscapes: false,
    dateSQL: set("date datetimeoffset datetime2 smalldatetime datetime time"),
    hooks: {
      "@":   hookVar
    }
  });

  CodeMirror.defineMIME("text/x-mysql", {
    name: "sql",
    client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
    keywords: set(sqlKeywords + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
    builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=&|^]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
    hooks: {
      "@":   hookVar,
      "`":   hookIdentifier,
      "\\":  hookClient
    }
  });

  CodeMirror.defineMIME("text/x-mariadb", {
    name: "sql",
    client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
    keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
    builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=&|^]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
    hooks: {
      "@":   hookVar,
      "`":   hookIdentifier,
      "\\":  hookClient
    }
  });

  // provided by the phpLiteAdmin project - phpliteadmin.org
  CodeMirror.defineMIME("text/x-sqlite", {
    name: "sql",
    // commands of the official SQLite client, ref: https://www.sqlite.org/cli.html#dotcmd
    client: set("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),
    // ref: http://sqlite.org/lang_keywords.html
    keywords: set(sqlKeywords + "abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),
    // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.
    builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),
    // ref: http://sqlite.org/syntax/literal-value.html
    atoms: set("null current_date current_time current_timestamp"),
    // ref: http://sqlite.org/lang_expr.html#binaryops
    operatorChars: /^[*+\-%<>!=&|/~]/,
    // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.
    dateSQL: set("date time timestamp datetime"),
    support: set("decimallessFloat zerolessFloat"),
    identifierQuote: "\"",  //ref: http://sqlite.org/lang_keywords.html
    hooks: {
      // bind-parameters ref:http://sqlite.org/lang_expr.html#varparam
      "@":   hookVar,
      ":":   hookVar,
      "?":   hookVar,
      "$":   hookVar,
      // The preferred way to escape Identifiers is using double quotes, ref: http://sqlite.org/lang_keywords.html
      "\"":   hookIdentifierDoublequote,
      // there is also support for backtics, ref: http://sqlite.org/lang_keywords.html
      "`":   hookIdentifier
    }
  });

  // the query language used by Apache Cassandra is called CQL, but this mime type
  // is called Cassandra to avoid confusion with Contextual Query Language
  CodeMirror.defineMIME("text/x-cassandra", {
    name: "sql",
    client: { },
    keywords: set("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),
    builtin: set("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),
    atoms: set("false true infinity NaN"),
    operatorChars: /^[<>=]/,
    dateSQL: { },
    support: set("commentSlashSlash decimallessFloat"),
    hooks: { }
  });

  // this is based on Peter Raganitsch's 'plsql' mode
  CodeMirror.defineMIME("text/x-plsql", {
    name:       "sql",
    client:     set("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),
    keywords:   set("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),
    builtin:    set("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),
    operatorChars: /^[*+\-%<>!=~]/,
    dateSQL:    set("date time timestamp"),
    support:    set("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")
  });

  // Created to support specific hive keywords
  CodeMirror.defineMIME("text/x-hive", {
    name: "sql",
    keywords: set("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"),
    builtin: set("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=]/,
    dateSQL: set("date timestamp"),
    support: set("ODBCdotTable doubleQuote binaryNumber hexNumber")
  });

  CodeMirror.defineMIME("text/x-pgsql", {
    name: "sql",
    client: set("source"),
    // https://www.postgresql.org/docs/10/static/sql-keywords-appendix.html
    keywords: set(sqlKeywords + "a abort abs absent absolute access according action ada add admin after aggregate all allocate also always analyse analyze any are array array_agg array_max_cardinality asensitive assertion assignment asymmetric at atomic attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli binary bit_length blob blocked bom both breadth c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain characteristics characters character_length character_set_catalog character_set_name character_set_schema char_length check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column columns column_name command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constraint constraints constraint_catalog constraint_name constraint_schema constructor contains content continue control conversion convert copy corr corresponding cost covar_pop covar_samp cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datetime_interval_code datetime_interval_precision day db deallocate dec declare default defaults deferrable deferred defined definer degree delimiter delimiters dense_rank depth deref derived describe descriptor deterministic diagnostics dictionary disable discard disconnect dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain dynamic dynamic_function dynamic_function_code each element else empty enable encoding encrypted end end-exec end_frame end_partition enforced enum equals escape event every except exception exclude excluding exclusive exec execute exists exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreign fortran forward found frame_row free freeze fs full function functions fusion g general generated get global go goto grant granted greatest grouping groups handler header hex hierarchy hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import including increment indent index indexes indicator inherit inherits initially inline inner inout input insensitive instance instantiable instead integrity intersect intersection invoker isnull isolation k key key_member key_type label lag language large last last_value lateral lc_collate lc_ctype lead leading leakproof least left length level library like_regex link listen ln load local localtime localtimestamp location locator lock locked logged lower m map mapping match matched materialized max maxvalue max_cardinality member merge message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized nothing notify notnull nowait nth_value ntile null nullable nullif nulls number object occurrences_regex octets octet_length of off offset oids old only open operator option options ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password percent percentile_cont percentile_disc percent_rank period permission placing plans pli policy portion position position_regex power precedes preceding prepare prepared preserve primary prior privileges procedural procedure program public quote range rank read reads reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict restricted result return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns revoke right role rollback rollup routine routine_catalog routine_name routine_schema row rows row_count row_number rule savepoint scale schema schema_name scope scope_catalog scope_name scope_schema scroll search second section security selective self sensitive sequence sequences serializable server server_name session session_user setof sets share show similar simple size skip snapshot some source space specific specifictype specific_name sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset substring substring_regex succeeds sum symmetric sysid system system_time system_user t tables tablesample tablespace table_name temp template temporary then ties timezone_hour timezone_minute to token top_level_count trailing transaction transactions_committed transactions_rolled_back transaction_active transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted unique unknown unlink unlisten unlogged unnamed unnest until untyped upper uri usage user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of varbinary variadic var_pop var_samp verbose version versioning view views volatile when whenever whitespace width_bucket window within work wrapper write xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes loop repeat attach path depends detach zone"),
    // https://www.postgresql.org/docs/10/static/datatype.html
    builtin: set("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=&|^\/#@?~]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")
  });

  // Google's SQL-like query language, GQL
  CodeMirror.defineMIME("text/x-gql", {
    name: "sql",
    keywords: set("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),
    atoms: set("false true"),
    builtin: set("blob datetime first key __key__ string integer double boolean null"),
    operatorChars: /^[*+\-%<>!=]/
  });

  // Greenplum
  CodeMirror.defineMIME("text/x-gpsql", {
    name: "sql",
    client: set("source"),
    //https://github.com/greenplum-db/gpdb/blob/master/src/include/parser/kwlist.h
    keywords: set("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),
    builtin: set("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),
    atoms: set("false true null unknown"),
    operatorChars: /^[*+\-%<>!=&|^\/#@?~]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")
  });

  // Spark SQL
  CodeMirror.defineMIME("text/x-sparksql", {
    name: "sql",
    keywords: set("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases datata dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),
    builtin: set("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),
    atoms: set("false true null"),
    operatorChars: /^[*+\-%<>!=~&|^]/,
    dateSQL: set("date time timestamp"),
    support: set("ODBCdotTable doubleQuote zerolessFloat")
  });

  // Esper
  CodeMirror.defineMIME("text/x-esper", {
    name: "sql",
    client: set("source"),
    // http://www.espertech.com/esper/release-5.5.0/esper-reference/html/appendix_keywords.html
    keywords: set("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),
    builtin: {},
    atoms: set("false true null"),
    operatorChars: /^[*+\-%<>!=&|^\/#@?~]/,
    dateSQL: set("time"),
    support: set("decimallessFloat zerolessFloat binaryNumber hexNumber")
  });
}());

});

/*
  How Properties of Mime Types are used by SQL Mode
  =================================================

  keywords:
    A list of keywords you want to be highlighted.
  builtin:
    A list of builtin types you want to be highlighted (if you want types to be of class "builtin" instead of "keyword").
  operatorChars:
    All characters that must be handled as operators.
  client:
    Commands parsed and executed by the client (not the server).
  support:
    A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.
    * ODBCdotTable: .tableName
    * zerolessFloat: .1
    * doubleQuote
    * nCharCast: N'string'
    * charsetCast: _utf8'string'
    * commentHash: use # char for comments
    * commentSlashSlash: use // for comments
    * commentSpaceRequired: require a space after -- for comments
  atoms:
    Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:
    UNKNOWN, INFINITY, UNDERFLOW, NaN...
  dateSQL:
    Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.
*/
editors/codemirror/mode/sql/sql.min.js000064400000106500152177723720014043 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("sql",(function(b,c){function d(a,b){var c=a.next();if(o[c]){var d=o[c](a,b);if(d!==!1)return d}if(n.hexNumber&&("0"==c&&a.match(/^[xX][0-9a-fA-F]+/)||("x"==c||"X"==c)&&a.match(/^'[0-9a-fA-F]+'/)))return"number";if(n.binaryNumber&&(("b"==c||"B"==c)&&a.match(/^'[01]+'/)||"0"==c&&a.match(/^b[01]+/)))return"number";if(c.charCodeAt(0)>47&&c.charCodeAt(0)<58)return a.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),n.decimallessFloat&&a.match(/^\.(?!\.)/),"number";if("?"==c&&(a.eatSpace()||a.eol()||a.eat(";")))return"variable-3";if("'"==c||'"'==c&&n.doubleQuote)return b.tokenize=e(c),b.tokenize(a,b);if((n.nCharCast&&("n"==c||"N"==c)||n.charsetCast&&"_"==c&&a.match(/[a-z][a-z0-9]*/i))&&("'"==a.peek()||'"'==a.peek()))return"keyword";if(n.commentSlashSlash&&"/"==c&&a.eat("/"))return a.skipToEnd(),"comment";if(n.commentHash&&"#"==c||"-"==c&&a.eat("-")&&(!n.commentSpaceRequired||a.eat(" ")))return a.skipToEnd(),"comment";if("/"==c&&a.eat("*"))return b.tokenize=f(1),b.tokenize(a,b);if("."!=c){if(m.test(c))return a.eatWhile(m),"operator";if(r.test(c))return a.eatWhile(r),"bracket";if(s.test(c))return a.eatWhile(s),"punctuation";if("{"==c&&(a.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||a.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";a.eatWhile(/^[_\w\d]/);var g=a.current().toLowerCase();return p.hasOwnProperty(g)&&(a.match(/^( )+'[^']*'/)||a.match(/^( )+"[^"]*"/))?"number":j.hasOwnProperty(g)?"atom":k.hasOwnProperty(g)?"builtin":l.hasOwnProperty(g)?"keyword":i.hasOwnProperty(g)?"string-2":null}return n.zerolessFloat&&a.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":a.match(/^\.+/)?null:n.ODBCdotTable&&a.match(/^[\w\d_]+/)?"variable-2":void 0}function e(a){return function(b,c){for(var e,f=!1;null!=(e=b.next());){if(e==a&&!f){c.tokenize=d;break}f=q&&!f&&"\\"==e}return"string"}}function f(a){return function(b,c){var e=b.match(/^.*?(\/\*|\*\/)/);return e?"/*"==e[1]?c.tokenize=f(a+1):a>1?c.tokenize=f(a-1):c.tokenize=d:b.skipToEnd(),"comment"}}function g(a,b,c){b.context={prev:b.context,indent:a.indentation(),col:a.column(),type:c}}function h(a){a.indent=a.context.indent,a.context=a.context.prev}var i=c.client||{},j=c.atoms||{false:!0,true:!0,null:!0},k=c.builtin||{},l=c.keywords||{},m=c.operatorChars||/^[*+\-%<>!=&|~^]/,n=c.support||{},o=c.hooks||{},p=c.dateSQL||{date:!0,time:!0,timestamp:!0},q=c.backslashStringEscapes!==!1,r=c.brackets||/^[\{}\(\)\[\]]/,s=c.punctuation||/^[;.,:]/;return{startState:function(){return{tokenize:d,context:null}},token:function(a,b){if(a.sol()&&b.context&&null==b.context.align&&(b.context.align=!1),b.tokenize==d&&a.eatSpace())return null;var c=b.tokenize(a,b);if("comment"==c)return c;b.context&&null==b.context.align&&(b.context.align=!0);var e=a.current();return"("==e?g(a,b,")"):"["==e?g(a,b,"]"):b.context&&b.context.type==e&&h(b),c},indent:function(c,d){var e=c.context;if(!e)return a.Pass;var f=d.charAt(0)==e.type;return e.align?e.col+(f?0:1):e.indent+(f?0:b.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:n.commentSlashSlash?"//":n.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``"}})),(function(){function b(a){for(var b;null!=(b=a.next());)if("`"==b&&!a.eat("`"))return"variable-2";return a.backUp(a.current().length-1),a.eatWhile(/\w/)?"variable-2":null}function c(a){for(var b;null!=(b=a.next());)if('"'==b&&!a.eat('"'))return"variable-2";return a.backUp(a.current().length-1),a.eatWhile(/\w/)?"variable-2":null}function d(a){return a.eat("@")&&(a.match(/^session\./),a.match(/^local\./),a.match(/^global\./)),a.eat("'")?(a.match(/^.*'/),"variable-2"):a.eat('"')?(a.match(/^.*"/),"variable-2"):a.eat("`")?(a.match(/^.*`/),"variable-2"):a.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function e(a){return a.eat("N")?"atom":a.match(/^[a-zA-Z.#!?]/)?"variable-2":null}function f(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}var g="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";a.defineMIME("text/x-sql",{name:"sql",keywords:f(g+"begin"),builtin:f("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable doubleQuote binaryNumber hexNumber")}),a.defineMIME("text/x-mssql",{name:"sql",client:f("$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id"),keywords:f(g+"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with"),builtin:f("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),atoms:f("is not null like and or in left right between inner outer join all any some cross unpivot pivot exists"),operatorChars:/^[*+\-%<>!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:\/]/,backslashStringEscapes:!1,dateSQL:f("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":d}}),a.defineMIME("text/x-mysql",{name:"sql",client:f("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:f(g+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:f("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":d,"`":b,"\\":e}}),a.defineMIME("text/x-mariadb",{name:"sql",client:f("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:f(g+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:f("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":d,"`":b,"\\":e}}),a.defineMIME("text/x-sqlite",{name:"sql",client:f("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:f(g+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:f("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:f("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|\/~]/,dateSQL:f("date time timestamp datetime"),support:f("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":d,":":d,"?":d,$:d,'"':c,"`":b}}),a.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:f("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:f("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:f("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:f("commentSlashSlash decimallessFloat"),hooks:{}}),a.defineMIME("text/x-plsql",{name:"sql",client:f("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:f("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:f("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*+\-%<>!=~]/,dateSQL:f("date time timestamp"),support:f("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),a.defineMIME("text/x-hive",{name:"sql",keywords:f("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"),builtin:f("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:f("date timestamp"),support:f("ODBCdotTable doubleQuote binaryNumber hexNumber")}),a.defineMIME("text/x-pgsql",{name:"sql",client:f("source"),keywords:f(g+"a abort abs absent absolute access according action ada add admin after aggregate all allocate also always analyse analyze any are array array_agg array_max_cardinality asensitive assertion assignment asymmetric at atomic attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli binary bit_length blob blocked bom both breadth c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain characteristics characters character_length character_set_catalog character_set_name character_set_schema char_length check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column columns column_name command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constraint constraints constraint_catalog constraint_name constraint_schema constructor contains content continue control conversion convert copy corr corresponding cost covar_pop covar_samp cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datetime_interval_code datetime_interval_precision day db deallocate dec declare default defaults deferrable deferred defined definer degree delimiter delimiters dense_rank depth deref derived describe descriptor deterministic diagnostics dictionary disable discard disconnect dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain dynamic dynamic_function dynamic_function_code each element else empty enable encoding encrypted end end-exec end_frame end_partition enforced enum equals escape event every except exception exclude excluding exclusive exec execute exists exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreign fortran forward found frame_row free freeze fs full function functions fusion g general generated get global go goto grant granted greatest grouping groups handler header hex hierarchy hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import including increment indent index indexes indicator inherit inherits initially inline inner inout input insensitive instance instantiable instead integrity intersect intersection invoker isnull isolation k key key_member key_type label lag language large last last_value lateral lc_collate lc_ctype lead leading leakproof least left length level library like_regex link listen ln load local localtime localtimestamp location locator lock locked logged lower m map mapping match matched materialized max maxvalue max_cardinality member merge message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized nothing notify notnull nowait nth_value ntile null nullable nullif nulls number object occurrences_regex octets octet_length of off offset oids old only open operator option options ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password percent percentile_cont percentile_disc percent_rank period permission placing plans pli policy portion position position_regex power precedes preceding prepare prepared preserve primary prior privileges procedural procedure program public quote range rank read reads reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict restricted result return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns revoke right role rollback rollup routine routine_catalog routine_name routine_schema row rows row_count row_number rule savepoint scale schema schema_name scope scope_catalog scope_name scope_schema scroll search second section security selective self sensitive sequence sequences serializable server server_name session session_user setof sets share show similar simple size skip snapshot some source space specific specifictype specific_name sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset substring substring_regex succeeds sum symmetric sysid system system_time system_user t tables tablesample tablespace table_name temp template temporary then ties timezone_hour timezone_minute to token top_level_count trailing transaction transactions_committed transactions_rolled_back transaction_active transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted unique unknown unlink unlisten unlogged unnamed unnest until untyped upper uri usage user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of varbinary variadic var_pop var_samp verbose version versioning view views volatile when whenever whitespace width_bucket window within work wrapper write xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes loop repeat attach path depends detach zone"),builtin:f("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),a.defineMIME("text/x-gql",{name:"sql",keywords:f("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:f("false true"),builtin:f("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),a.defineMIME("text/x-gpsql",{name:"sql",client:f("source"),keywords:f("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),
builtin:f("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:f("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),a.defineMIME("text/x-sparksql",{name:"sql",keywords:f("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases datata dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:f("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:f("false true null"),operatorChars:/^[*+\-%<>!=~&|^]/,dateSQL:f("date time timestamp"),support:f("ODBCdotTable doubleQuote zerolessFloat")}),a.defineMIME("text/x-esper",{name:"sql",client:f("source"),keywords:f("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:f("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:f("time"),support:f("decimallessFloat zerolessFloat binaryNumber hexNumber")})})()}));editors/codemirror/mode/nginx/nginx.min.js000064400000016575152177723720014727 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("nginx",(function(a){function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b){return h=b,a}function d(a,b){a.eatWhile(/[\w\$_]/);var d=a.current();if(i.propertyIsEnumerable(d))return"keyword";if(j.propertyIsEnumerable(d))return"variable-2";if(k.propertyIsEnumerable(d))return"string-2";var h=a.next();return"@"==h?(a.eatWhile(/[\w\\\-]/),c("meta",a.current())):"/"==h&&a.eat("*")?(b.tokenize=e,e(a,b)):"<"==h&&a.eat("!")?(b.tokenize=f,f(a,b)):"="!=h?"~"!=h&&"|"!=h||!a.eat("=")?'"'==h||"'"==h?(b.tokenize=g(h),b.tokenize(a,b)):"#"==h?(a.skipToEnd(),c("comment","comment")):"!"==h?(a.match(/^\s*\w*/),c("keyword","important")):/\d/.test(h)?(a.eatWhile(/[\w.%]/),c("number","unit")):/[,.+>*\/]/.test(h)?c(null,"select-op"):/[;{}:\[\]]/.test(h)?c(null,h):(a.eatWhile(/[\w\\\-]/),c("variable","variable")):c(null,"compare"):void c(null,"compare")}function e(a,b){for(var e,f=!1;null!=(e=a.next());){if(f&&"/"==e){b.tokenize=d;break}f="*"==e}return c("comment","comment")}function f(a,b){for(var e,f=0;null!=(e=a.next());){if(f>=2&&">"==e){b.tokenize=d;break}f="-"==e?f+1:0}return c("comment","comment")}function g(a){return function(b,e){for(var f,g=!1;null!=(f=b.next())&&(f!=a||g);)g=!g&&"\\"==f;return g||(e.tokenize=d),c("string","string")}}var h,i=b("break return rewrite set accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"),j=b("http mail events server types location upstream charset_map limit_except if geo map"),k=b("include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files"),l=a.indentUnit;return{startState:function(a){return{tokenize:d,baseIndent:a||0,stack:[]}},token:function(a,b){if(a.eatSpace())return null;h=null;var c=b.tokenize(a,b),d=b.stack[b.stack.length-1];return"hash"==h&&"rule"==d?c="atom":"variable"==c&&("rule"==d?c="number":d&&"@media{"!=d||(c="tag")),"rule"==d&&/^[\{\};]$/.test(h)&&b.stack.pop(),"{"==h?"@media"==d?b.stack[b.stack.length-1]="@media{":b.stack.push("{"):"}"==h?b.stack.pop():"@media"==h?b.stack.push("@media"):"{"==d&&"comment"!=h&&b.stack.push("rule"),c},indent:function(a,b){var c=a.stack.length;return/^\}/.test(b)&&(c-="rule"==a.stack[a.stack.length-1]?2:1),a.baseIndent+c*l},electricChars:"}"}})),a.defineMIME("text/x-nginx-conf","nginx")}));editors/codemirror/mode/nginx/nginx.js000064400000023665152177723720014143 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("nginx", function(config) {

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  var keywords = words(
    /* ngxDirectiveControl */ "break return rewrite set" +
    /* ngxDirective */ " accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"
    );

  var keywords_block = words(
    /* ngxDirectiveBlock */ "http mail events server types location upstream charset_map limit_except if geo map"
    );

  var keywords_important = words(
    /* ngxDirectiveImportant */ "include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files"
    );

  var indentUnit = config.indentUnit, type;
  function ret(style, tp) {type = tp; return style;}

  function tokenBase(stream, state) {


    stream.eatWhile(/[\w\$_]/);

    var cur = stream.current();


    if (keywords.propertyIsEnumerable(cur)) {
      return "keyword";
    }
    else if (keywords_block.propertyIsEnumerable(cur)) {
      return "variable-2";
    }
    else if (keywords_important.propertyIsEnumerable(cur)) {
      return "string-2";
    }
    /**/

    var ch = stream.next();
    if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());}
    else if (ch == "/" && stream.eat("*")) {
      state.tokenize = tokenCComment;
      return tokenCComment(stream, state);
    }
    else if (ch == "<" && stream.eat("!")) {
      state.tokenize = tokenSGMLComment;
      return tokenSGMLComment(stream, state);
    }
    else if (ch == "=") ret(null, "compare");
    else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare");
    else if (ch == "\"" || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    else if (ch == "#") {
      stream.skipToEnd();
      return ret("comment", "comment");
    }
    else if (ch == "!") {
      stream.match(/^\s*\w*/);
      return ret("keyword", "important");
    }
    else if (/\d/.test(ch)) {
      stream.eatWhile(/[\w.%]/);
      return ret("number", "unit");
    }
    else if (/[,.+>*\/]/.test(ch)) {
      return ret(null, "select-op");
    }
    else if (/[;{}:\[\]]/.test(ch)) {
      return ret(null, ch);
    }
    else {
      stream.eatWhile(/[\w\\\-]/);
      return ret("variable", "variable");
    }
  }

  function tokenCComment(stream, state) {
    var maybeEnd = false, ch;
    while ((ch = stream.next()) != null) {
      if (maybeEnd && ch == "/") {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return ret("comment", "comment");
  }

  function tokenSGMLComment(stream, state) {
    var dashes = 0, ch;
    while ((ch = stream.next()) != null) {
      if (dashes >= 2 && ch == ">") {
        state.tokenize = tokenBase;
        break;
      }
      dashes = (ch == "-") ? dashes + 1 : 0;
    }
    return ret("comment", "comment");
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped)
          break;
        escaped = !escaped && ch == "\\";
      }
      if (!escaped) state.tokenize = tokenBase;
      return ret("string", "string");
    };
  }

  return {
    startState: function(base) {
      return {tokenize: tokenBase,
              baseIndent: base || 0,
              stack: []};
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      type = null;
      var style = state.tokenize(stream, state);

      var context = state.stack[state.stack.length-1];
      if (type == "hash" && context == "rule") style = "atom";
      else if (style == "variable") {
        if (context == "rule") style = "number";
        else if (!context || context == "@media{") style = "tag";
      }

      if (context == "rule" && /^[\{\};]$/.test(type))
        state.stack.pop();
      if (type == "{") {
        if (context == "@media") state.stack[state.stack.length-1] = "@media{";
        else state.stack.push("{");
      }
      else if (type == "}") state.stack.pop();
      else if (type == "@media") state.stack.push("@media");
      else if (context == "{" && type != "comment") state.stack.push("rule");
      return style;
    },

    indent: function(state, textAfter) {
      var n = state.stack.length;
      if (/^\}/.test(textAfter))
        n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1;
      return state.baseIndent + n * indentUnit;
    },

    electricChars: "}"
  };
});

CodeMirror.defineMIME("text/x-nginx-conf", "nginx");

});
editors/codemirror/mode/haskell/haskell.min.js000064400000010743152177723720015516 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("haskell",(function(a,b){function c(a,b,c){return b(c),c(a,b)}function d(a,b){if(a.eatWhile(p))return null;var d=a.next();if(o.test(d)){if("{"==d&&a.eat("-")){var g="comment";return a.eat("#")&&(g="meta"),c(a,b,e(g,1))}return null}if("'"==d)return a.eat("\\")?a.next():a.next(),a.eat("'")?"string":"string error";if('"'==d)return c(a,b,f);if(i.test(d))return a.eatWhile(m),a.eat(".")?"qualifier":"variable-2";if(h.test(d))return a.eatWhile(m),"variable";if(j.test(d)){if("0"==d){if(a.eat(/[xX]/))return a.eatWhile(k),"integer";if(a.eat(/[oO]/))return a.eatWhile(l),"number"}a.eatWhile(j);var g="number";return a.match(/^\.\d+/)&&(g="number"),a.eat(/[eE]/)&&(g="number",a.eat(/[-+]/),a.eatWhile(j)),g}if("."==d&&a.eat("."))return"keyword";if(n.test(d)){if("-"==d&&a.eat(/-/)&&(a.eatWhile(/-/),!a.eat(n)))return a.skipToEnd(),"comment";var g="variable";return":"==d&&(g="variable-2"),a.eatWhile(n),g}return"error"}function e(a,b){return 0==b?d:function(c,f){for(var g=b;!c.eol();){var h=c.next();if("{"==h&&c.eat("-"))++g;else if("-"==h&&c.eat("}")&&(--g,0==g))return f(d),a}return f(e(a,g)),a}}function f(a,b){for(;!a.eol();){var c=a.next();if('"'==c)return b(d),"string";if("\\"==c){if(a.eol()||a.eat(p))return b(g),"string";a.eat("&")||a.next()}}return b(d),"string error"}function g(a,b){return a.eat("\\")?c(a,b,f):(a.next(),b(d),"error")}var h=/[a-z_]/,i=/[A-Z]/,j=/\d/,k=/[0-9A-Fa-f]/,l=/[0-7]/,m=/[a-z_A-Z0-9'\xa1-\uffff]/,n=/[-!#$%&*+.\/<=>?@\\^|~:]/,o=/[(),;[\]`{}]/,p=/[ \t\v\f]/,q=(function(){function a(a){return function(){for(var b=0;b<arguments.length;b++)c[arguments[b]]=a}}var c={};a("keyword")("case","class","data","default","deriving","do","else","foreign","if","import","in","infix","infixl","infixr","instance","let","module","newtype","of","then","type","where","_"),a("keyword")("..",":","::","=","\\","<-","->","@","~","=>"),a("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),a("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),a("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3");var d=b.overrideKeywords;if(d)for(var e in d)d.hasOwnProperty(e)&&(c[e]=d[e]);return c})();return{startState:function(){return{f:d}},copyState:function(a){return{f:a.f}},token:function(a,b){var c=b.f(a,(function(a){b.f=a})),d=a.current();return q.hasOwnProperty(d)?q[d]:c},blockCommentStart:"{-",blockCommentEnd:"-}",lineComment:"--"}})),a.defineMIME("text/x-haskell","haskell")}));editors/codemirror/mode/haskell/haskell.js000064400000017745152177723720014745 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("haskell", function(_config, modeConfig) {

  function switchState(source, setState, f) {
    setState(f);
    return f(source, setState);
  }

  // These should all be Unicode extended, as per the Haskell 2010 report
  var smallRE = /[a-z_]/;
  var largeRE = /[A-Z]/;
  var digitRE = /\d/;
  var hexitRE = /[0-9A-Fa-f]/;
  var octitRE = /[0-7]/;
  var idRE = /[a-z_A-Z0-9'\xa1-\uffff]/;
  var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/;
  var specialRE = /[(),;[\]`{}]/;
  var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer

  function normal(source, setState) {
    if (source.eatWhile(whiteCharRE)) {
      return null;
    }

    var ch = source.next();
    if (specialRE.test(ch)) {
      if (ch == '{' && source.eat('-')) {
        var t = "comment";
        if (source.eat('#')) {
          t = "meta";
        }
        return switchState(source, setState, ncomment(t, 1));
      }
      return null;
    }

    if (ch == '\'') {
      if (source.eat('\\')) {
        source.next();  // should handle other escapes here
      }
      else {
        source.next();
      }
      if (source.eat('\'')) {
        return "string";
      }
      return "string error";
    }

    if (ch == '"') {
      return switchState(source, setState, stringLiteral);
    }

    if (largeRE.test(ch)) {
      source.eatWhile(idRE);
      if (source.eat('.')) {
        return "qualifier";
      }
      return "variable-2";
    }

    if (smallRE.test(ch)) {
      source.eatWhile(idRE);
      return "variable";
    }

    if (digitRE.test(ch)) {
      if (ch == '0') {
        if (source.eat(/[xX]/)) {
          source.eatWhile(hexitRE); // should require at least 1
          return "integer";
        }
        if (source.eat(/[oO]/)) {
          source.eatWhile(octitRE); // should require at least 1
          return "number";
        }
      }
      source.eatWhile(digitRE);
      var t = "number";
      if (source.match(/^\.\d+/)) {
        t = "number";
      }
      if (source.eat(/[eE]/)) {
        t = "number";
        source.eat(/[-+]/);
        source.eatWhile(digitRE); // should require at least 1
      }
      return t;
    }

    if (ch == "." && source.eat("."))
      return "keyword";

    if (symbolRE.test(ch)) {
      if (ch == '-' && source.eat(/-/)) {
        source.eatWhile(/-/);
        if (!source.eat(symbolRE)) {
          source.skipToEnd();
          return "comment";
        }
      }
      var t = "variable";
      if (ch == ':') {
        t = "variable-2";
      }
      source.eatWhile(symbolRE);
      return t;
    }

    return "error";
  }

  function ncomment(type, nest) {
    if (nest == 0) {
      return normal;
    }
    return function(source, setState) {
      var currNest = nest;
      while (!source.eol()) {
        var ch = source.next();
        if (ch == '{' && source.eat('-')) {
          ++currNest;
        }
        else if (ch == '-' && source.eat('}')) {
          --currNest;
          if (currNest == 0) {
            setState(normal);
            return type;
          }
        }
      }
      setState(ncomment(type, currNest));
      return type;
    };
  }

  function stringLiteral(source, setState) {
    while (!source.eol()) {
      var ch = source.next();
      if (ch == '"') {
        setState(normal);
        return "string";
      }
      if (ch == '\\') {
        if (source.eol() || source.eat(whiteCharRE)) {
          setState(stringGap);
          return "string";
        }
        if (source.eat('&')) {
        }
        else {
          source.next(); // should handle other escapes here
        }
      }
    }
    setState(normal);
    return "string error";
  }

  function stringGap(source, setState) {
    if (source.eat('\\')) {
      return switchState(source, setState, stringLiteral);
    }
    source.next();
    setState(normal);
    return "error";
  }


  var wellKnownWords = (function() {
    var wkw = {};
    function setType(t) {
      return function () {
        for (var i = 0; i < arguments.length; i++)
          wkw[arguments[i]] = t;
      };
    }

    setType("keyword")(
      "case", "class", "data", "default", "deriving", "do", "else", "foreign",
      "if", "import", "in", "infix", "infixl", "infixr", "instance", "let",
      "module", "newtype", "of", "then", "type", "where", "_");

    setType("keyword")(
      "\.\.", ":", "::", "=", "\\", "<-", "->", "@", "~", "=>");

    setType("builtin")(
      "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<*", "<=",
      "<$>", "<*>", "=<<", "==", ">", ">=", ">>", ">>=", "^", "^^", "||", "*",
      "*>", "**");

    setType("builtin")(
      "Applicative", "Bool", "Bounded", "Char", "Double", "EQ", "Either", "Enum",
      "Eq", "False", "FilePath", "Float", "Floating", "Fractional", "Functor",
      "GT", "IO", "IOError", "Int", "Integer", "Integral", "Just", "LT", "Left",
      "Maybe", "Monad", "Nothing", "Num", "Ord", "Ordering", "Rational", "Read",
      "ReadS", "Real", "RealFloat", "RealFrac", "Right", "Show", "ShowS",
      "String", "True");

    setType("builtin")(
      "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf",
      "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling",
      "compare", "concat", "concatMap", "const", "cos", "cosh", "curry",
      "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either",
      "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo",
      "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter",
      "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap",
      "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger",
      "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents",
      "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized",
      "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last",
      "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map",
      "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound",
      "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or",
      "otherwise", "pi", "pred", "print", "product", "properFraction", "pure",
      "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile",
      "readIO", "readList", "readLn", "readParen", "reads", "readsPrec",
      "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse",
      "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq",
      "sequence", "sequence_", "show", "showChar", "showList", "showParen",
      "showString", "shows", "showsPrec", "significand", "signum", "sin",
      "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum",
      "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger",
      "toRational", "truncate", "uncurry", "undefined", "unlines", "until",
      "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip",
      "zip3", "zipWith", "zipWith3");

    var override = modeConfig.overrideKeywords;
    if (override) for (var word in override) if (override.hasOwnProperty(word))
      wkw[word] = override[word];

    return wkw;
  })();



  return {
    startState: function ()  { return { f: normal }; },
    copyState:  function (s) { return { f: s.f }; },

    token: function(stream, state) {
      var t = state.f(stream, function(s) { state.f = s; });
      var w = stream.current();
      return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t;
    },

    blockCommentStart: "{-",
    blockCommentEnd: "-}",
    lineComment: "--"
  };

});

CodeMirror.defineMIME("text/x-haskell", "haskell");

});
editors/codemirror/mode/livescript/livescript.js000064400000016765152177723720016250 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Link to the project's GitHub page:
 * https://github.com/duralog/CodeMirror
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode('livescript', function(){
    var tokenBase = function(stream, state) {
      var next_rule = state.next || "start";
      if (next_rule) {
        state.next = state.next;
        var nr = Rules[next_rule];
        if (nr.splice) {
          for (var i$ = 0; i$ < nr.length; ++i$) {
            var r = nr[i$];
            if (r.regex && stream.match(r.regex)) {
              state.next = r.next || state.next;
              return r.token;
            }
          }
          stream.next();
          return 'error';
        }
        if (stream.match(r = Rules[next_rule])) {
          if (r.regex && stream.match(r.regex)) {
            state.next = r.next;
            return r.token;
          } else {
            stream.next();
            return 'error';
          }
        }
      }
      stream.next();
      return 'error';
    };
    var external = {
      startState: function(){
        return {
          next: 'start',
          lastToken: {style: null, indent: 0, content: ""}
        };
      },
      token: function(stream, state){
        while (stream.pos == stream.start)
          var style = tokenBase(stream, state);
        state.lastToken = {
          style: style,
          indent: stream.indentation(),
          content: stream.current()
        };
        return style.replace(/\./g, ' ');
      },
      indent: function(state){
        var indentation = state.lastToken.indent;
        if (state.lastToken.content.match(indenter)) {
          indentation += 2;
        }
        return indentation;
      }
    };
    return external;
  });

  var identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*';
  var indenter = RegExp('(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*' + identifier + ')?))\\s*$');
  var keywordend = '(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))';
  var stringfill = {
    token: 'string',
    regex: '.+'
  };
  var Rules = {
    start: [
      {
        token: 'comment.doc',
        regex: '/\\*',
        next: 'comment'
      }, {
        token: 'comment',
        regex: '#.*'
      }, {
        token: 'keyword',
        regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend
      }, {
        token: 'constant.language',
        regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend
      }, {
        token: 'invalid.illegal',
        regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend
      }, {
        token: 'language.support.class',
        regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend
      }, {
        token: 'language.support.function',
        regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend
      }, {
        token: 'variable.language',
        regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend
      }, {
        token: 'identifier',
        regex: identifier + '\\s*:(?![:=])'
      }, {
        token: 'variable',
        regex: identifier
      }, {
        token: 'keyword.operator',
        regex: '(?:\\.{3}|\\s+\\?)'
      }, {
        token: 'keyword.variable',
        regex: '(?:@+|::|\\.\\.)',
        next: 'key'
      }, {
        token: 'keyword.operator',
        regex: '\\.\\s*',
        next: 'key'
      }, {
        token: 'string',
        regex: '\\\\\\S[^\\s,;)}\\]]*'
      }, {
        token: 'string.doc',
        regex: '\'\'\'',
        next: 'qdoc'
      }, {
        token: 'string.doc',
        regex: '"""',
        next: 'qqdoc'
      }, {
        token: 'string',
        regex: '\'',
        next: 'qstring'
      }, {
        token: 'string',
        regex: '"',
        next: 'qqstring'
      }, {
        token: 'string',
        regex: '`',
        next: 'js'
      }, {
        token: 'string',
        regex: '<\\[',
        next: 'words'
      }, {
        token: 'string.regex',
        regex: '//',
        next: 'heregex'
      }, {
        token: 'string.regex',
        regex: '\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}',
        next: 'key'
      }, {
        token: 'constant.numeric',
        regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)'
      }, {
        token: 'lparen',
        regex: '[({[]'
      }, {
        token: 'rparen',
        regex: '[)}\\]]',
        next: 'key'
      }, {
        token: 'keyword.operator',
        regex: '\\S+'
      }, {
        token: 'text',
        regex: '\\s+'
      }
    ],
    heregex: [
      {
        token: 'string.regex',
        regex: '.*?//[gimy$?]{0,4}',
        next: 'start'
      }, {
        token: 'string.regex',
        regex: '\\s*#{'
      }, {
        token: 'comment.regex',
        regex: '\\s+(?:#.*)?'
      }, {
        token: 'string.regex',
        regex: '\\S+'
      }
    ],
    key: [
      {
        token: 'keyword.operator',
        regex: '[.?@!]+'
      }, {
        token: 'identifier',
        regex: identifier,
        next: 'start'
      }, {
        token: 'text',
        regex: '',
        next: 'start'
      }
    ],
    comment: [
      {
        token: 'comment.doc',
        regex: '.*?\\*/',
        next: 'start'
      }, {
        token: 'comment.doc',
        regex: '.+'
      }
    ],
    qdoc: [
      {
        token: 'string',
        regex: ".*?'''",
        next: 'key'
      }, stringfill
    ],
    qqdoc: [
      {
        token: 'string',
        regex: '.*?"""',
        next: 'key'
      }, stringfill
    ],
    qstring: [
      {
        token: 'string',
        regex: '[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'',
        next: 'key'
      }, stringfill
    ],
    qqstring: [
      {
        token: 'string',
        regex: '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',
        next: 'key'
      }, stringfill
    ],
    js: [
      {
        token: 'string',
        regex: '[^\\\\`]*(?:\\\\.[^\\\\`]*)*`',
        next: 'key'
      }, stringfill
    ],
    words: [
      {
        token: 'string',
        regex: '.*?\\]>',
        next: 'key'
      }, stringfill
    ]
  };
  for (var idx in Rules) {
    var r = Rules[idx];
    if (r.splice) {
      for (var i = 0, len = r.length; i < len; ++i) {
        var rr = r[i];
        if (typeof rr.regex === 'string') {
          Rules[idx][i].regex = new RegExp('^' + rr.regex);
        }
      }
    } else if (typeof rr.regex === 'string') {
      Rules[idx].regex = new RegExp('^' + r.regex);
    }
  }

  CodeMirror.defineMIME('text/x-livescript', 'livescript');

});
editors/codemirror/mode/livescript/livescript.min.js000064400000010514152177723720017014 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("livescript",(function(){var a=function(a,b){var c=b.next||"start";if(c){b.next=b.next;var d=f[c];if(d.splice){for(var e=0;e<d.length;++e){var g=d[e];if(g.regex&&a.match(g.regex))return b.next=g.next||b.next,g.token}return a.next(),"error"}if(a.match(g=f[c]))return g.regex&&a.match(g.regex)?(b.next=g.next,g.token):(a.next(),"error")}return a.next(),"error"},b={startState:function(){return{next:"start",lastToken:{style:null,indent:0,content:""}}},token:function(b,c){for(;b.pos==b.start;)var d=a(b,c);return c.lastToken={style:d,indent:b.indentation(),content:b.current()},d.replace(/\./g," ")},indent:function(a){var b=a.lastToken.indent;return a.lastToken.content.match(c)&&(b+=2),b}};return b}));var b="(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*",c=RegExp("(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+b+")?))\\s*$"),d="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",e={token:"string",regex:".+"},f={start:[{token:"comment.doc",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+d},{token:"constant.language",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+d},{token:"invalid.illegal",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+d},{token:"language.support.class",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+d},{token:"language.support.function",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+d},{token:"variable.language",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+d},{token:"identifier",regex:b+"\\s*:(?![:=])"},{token:"variable",regex:b},{token:"keyword.operator",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword.variable",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"keyword.operator",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"string.doc",regex:"'''",next:"qdoc"},{token:"string.doc",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"string.regex",regex:"//",next:"heregex"},{token:"string.regex",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[)}\\]]",next:"key"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],heregex:[{token:"string.regex",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"string.regex",regex:"\\s*#{"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],key:[{token:"keyword.operator",regex:"[.?@!]+"},{token:"identifier",regex:b,next:"start"},{token:"text",regex:"",next:"start"}],comment:[{token:"comment.doc",regex:".*?\\*/",next:"start"},{token:"comment.doc",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},e],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},e],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},e],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},e],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},e],words:[{token:"string",regex:".*?\\]>",next:"key"},e]};for(var g in f){var h=f[g];if(h.splice)for(var i=0,j=h.length;i<j;++i){var k=h[i];"string"==typeof k.regex&&(f[g][i].regex=new RegExp("^"+k.regex))}else"string"==typeof k.regex&&(f[g].regex=new RegExp("^"+h.regex))}a.defineMIME("text/x-livescript","livescript")}));editors/codemirror/mode/swift/swift.min.js000064400000010055152177723720014734 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}function c(a,b,c){if(a.sol()&&(b.indented=a.indentation()),a.eatSpace())return null;var d=a.peek();if("/"==d){if(a.match("//"))return a.skipToEnd(),"comment";if(a.match("/*"))return b.tokenize.push(f),f(a,b)}if(a.match(v))return"builtin";if(a.match(w))return"attribute";if(a.match(p))return"number";if(a.match(q))return"number";if(a.match(r))return"number";if(a.match(s))return"number";if(a.match(u))return"property";if(n.indexOf(d)>-1)return a.next(),"operator";if(o.indexOf(d)>-1)return a.next(),a.match(".."),"punctuation";if('"'==d||"'"==d){a.next();var g=e(d);return b.tokenize.push(g),g(a,b)}if(a.match(t)){var h=a.current();return m.hasOwnProperty(h)?"variable-2":l.hasOwnProperty(h)?"atom":j.hasOwnProperty(h)?(k.hasOwnProperty(h)&&(b.prev="define"),"keyword"):"define"==c?"def":"variable"}return a.next(),null}function d(){var a=0;return function(b,d,e){var f=c(b,d,e);if("punctuation"==f)if("("==b.current())++a;else if(")"==b.current()){if(0==a)return b.backUp(1),d.tokenize.pop(),d.tokenize[d.tokenize.length-1](b,d);--a}return f}}function e(a){return function(b,c){for(var e,f=!1;e=b.next();)if(f){if("("==e)return c.tokenize.push(d()),"string";f=!1}else{if(e==a)break;f="\\"==e}return c.tokenize.pop(),"string"}}function f(a,b){for(var c;;){if(a.match(/^[^\/*]+/,!0),c=a.next(),!c)break;"/"===c&&a.eat("*")?b.tokenize.push(f):"*"===c&&a.eat("/")&&b.tokenize.pop()}return"comment"}function g(a,b,c){this.prev=a,this.align=b,this.indented=c}function h(a,b){var c=b.match(/^\s*($|\/[\/\*])/,!1)?null:b.column()+1;a.context=new g(a.context,c,a.indented)}function i(a){a.context&&(a.indented=a.context.indented,a.context=a.context.prev)}var j=b(["_","var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super","convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is","break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while","defer","return","inout","mutating","nonmutating","catch","do","rethrows","throw","throws","try","didSet","get","set","willSet","assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right","Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"]),k=b(["var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"]),l=b(["true","false","nil","self","super","_"]),m=b(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String","UInt8","UInt16","UInt32","UInt64","Void"]),n="+-/*%=|&<>~^?!",o=":;,.(){}[]",p=/^\-?0b[01][01_]*/,q=/^\-?0o[0-7][0-7_]*/,r=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,s=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,t=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,u=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,v=/^\#[A-Za-z]+/,w=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;a.defineMode("swift",(function(a){return{startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(a,b){var d=b.prev;b.prev=null;var e=b.tokenize[b.tokenize.length-1]||c,f=e(a,b,d);if(f&&"comment"!=f?b.prev||(b.prev=f):b.prev=d,"punctuation"==f){var g=/[\(\[\{]|([\]\)\}])/.exec(a.current());g&&(g[1]?i:h)(b,a)}return f},indent:function(b,c){var d=b.context;if(!d)return 0;var e=/^[\]\}\)]/.test(c);return null!=d.align?d.align-(e?1:0):d.indented+(e?0:a.indentUnit)},electricInput:/^\s*[\)\}\]]$/,lineComment:"//",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace",closeBrackets:"()[]{}''\"\"``"}})),a.defineMIME("text/x-swift","swift")}));editors/codemirror/mode/swift/swift.js000064400000016312152177723720014154 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Swift mode created by Michael Kaminsky https://github.com/mkaminsky11

(function(mod) {
  if (typeof exports == "object" && typeof module == "object")
    mod(require("../../lib/codemirror"))
  else if (typeof define == "function" && define.amd)
    define(["../../lib/codemirror"], mod)
  else
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"

  function wordSet(words) {
    var set = {}
    for (var i = 0; i < words.length; i++) set[words[i]] = true
    return set
  }

  var keywords = wordSet(["_","var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype",
                          "open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super",
                          "convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is",
                          "break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while",
                          "defer","return","inout","mutating","nonmutating","catch","do","rethrows","throw","throws","try","didSet","get","set","willSet",
                          "assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right",
                          "Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"])
  var definingKeywords = wordSet(["var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"])
  var atoms = wordSet(["true","false","nil","self","super","_"])
  var types = wordSet(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String",
                       "UInt8","UInt16","UInt32","UInt64","Void"])
  var operators = "+-/*%=|&<>~^?!"
  var punc = ":;,.(){}[]"
  var binary = /^\-?0b[01][01_]*/
  var octal = /^\-?0o[0-7][0-7_]*/
  var hexadecimal = /^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/
  var decimal = /^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/
  var identifier = /^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/
  var property = /^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/
  var instruction = /^\#[A-Za-z]+/
  var attribute = /^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/
  //var regexp = /^\/(?!\s)(?:\/\/)?(?:\\.|[^\/])+\//

  function tokenBase(stream, state, prev) {
    if (stream.sol()) state.indented = stream.indentation()
    if (stream.eatSpace()) return null

    var ch = stream.peek()
    if (ch == "/") {
      if (stream.match("//")) {
        stream.skipToEnd()
        return "comment"
      }
      if (stream.match("/*")) {
        state.tokenize.push(tokenComment)
        return tokenComment(stream, state)
      }
    }
    if (stream.match(instruction)) return "builtin"
    if (stream.match(attribute)) return "attribute"
    if (stream.match(binary)) return "number"
    if (stream.match(octal)) return "number"
    if (stream.match(hexadecimal)) return "number"
    if (stream.match(decimal)) return "number"
    if (stream.match(property)) return "property"
    if (operators.indexOf(ch) > -1) {
      stream.next()
      return "operator"
    }
    if (punc.indexOf(ch) > -1) {
      stream.next()
      stream.match("..")
      return "punctuation"
    }
    if (ch == '"' || ch == "'") {
      stream.next()
      var tokenize = tokenString(ch)
      state.tokenize.push(tokenize)
      return tokenize(stream, state)
    }

    if (stream.match(identifier)) {
      var ident = stream.current()
      if (types.hasOwnProperty(ident)) return "variable-2"
      if (atoms.hasOwnProperty(ident)) return "atom"
      if (keywords.hasOwnProperty(ident)) {
        if (definingKeywords.hasOwnProperty(ident))
          state.prev = "define"
        return "keyword"
      }
      if (prev == "define") return "def"
      return "variable"
    }

    stream.next()
    return null
  }

  function tokenUntilClosingParen() {
    var depth = 0
    return function(stream, state, prev) {
      var inner = tokenBase(stream, state, prev)
      if (inner == "punctuation") {
        if (stream.current() == "(") ++depth
        else if (stream.current() == ")") {
          if (depth == 0) {
            stream.backUp(1)
            state.tokenize.pop()
            return state.tokenize[state.tokenize.length - 1](stream, state)
          }
          else --depth
        }
      }
      return inner
    }
  }

  function tokenString(quote) {
    return function(stream, state) {
      var ch, escaped = false
      while (ch = stream.next()) {
        if (escaped) {
          if (ch == "(") {
            state.tokenize.push(tokenUntilClosingParen())
            return "string"
          }
          escaped = false
        } else if (ch == quote) {
          break
        } else {
          escaped = ch == "\\"
        }
      }
      state.tokenize.pop()
      return "string"
    }
  }

  function tokenComment(stream, state) {
    var ch
    while (true) {
      stream.match(/^[^/*]+/, true)
      ch = stream.next()
      if (!ch) break
      if (ch === "/" && stream.eat("*")) {
        state.tokenize.push(tokenComment)
      } else if (ch === "*" && stream.eat("/")) {
        state.tokenize.pop()
      }
    }
    return "comment"
  }

  function Context(prev, align, indented) {
    this.prev = prev
    this.align = align
    this.indented = indented
  }

  function pushContext(state, stream) {
    var align = stream.match(/^\s*($|\/[\/\*])/, false) ? null : stream.column() + 1
    state.context = new Context(state.context, align, state.indented)
  }

  function popContext(state) {
    if (state.context) {
      state.indented = state.context.indented
      state.context = state.context.prev
    }
  }

  CodeMirror.defineMode("swift", function(config) {
    return {
      startState: function() {
        return {
          prev: null,
          context: null,
          indented: 0,
          tokenize: []
        }
      },

      token: function(stream, state) {
        var prev = state.prev
        state.prev = null
        var tokenize = state.tokenize[state.tokenize.length - 1] || tokenBase
        var style = tokenize(stream, state, prev)
        if (!style || style == "comment") state.prev = prev
        else if (!state.prev) state.prev = style

        if (style == "punctuation") {
          var bracket = /[\(\[\{]|([\]\)\}])/.exec(stream.current())
          if (bracket) (bracket[1] ? popContext : pushContext)(state, stream)
        }

        return style
      },

      indent: function(state, textAfter) {
        var cx = state.context
        if (!cx) return 0
        var closing = /^[\]\}\)]/.test(textAfter)
        if (cx.align != null) return cx.align - (closing ? 1 : 0)
        return cx.indented + (closing ? 0 : config.indentUnit)
      },

      electricInput: /^\s*[\)\}\]]$/,

      lineComment: "//",
      blockCommentStart: "/*",
      blockCommentEnd: "*/",
      fold: "brace",
      closeBrackets: "()[]{}''\"\"``"
    }
  })

  CodeMirror.defineMIME("text/x-swift","swift")
});
editors/codemirror/mode/ntriples/ntriples.js000064400000015602152177723720015365 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**********************************************************
* This script provides syntax highlighting support for
* the N-Triples format.
* N-Triples format specification:
*     https://www.w3.org/TR/n-triples/
***********************************************************/

/*
    The following expression defines the defined ASF grammar transitions.

    pre_subject ->
        {
        ( writing_subject_uri | writing_bnode_uri )
            -> pre_predicate
                -> writing_predicate_uri
                    -> pre_object
                        -> writing_object_uri | writing_object_bnode |
                          (
                            writing_object_literal
                                -> writing_literal_lang | writing_literal_type
                          )
                            -> post_object
                                -> BEGIN
         } otherwise {
             -> ERROR
         }
*/

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("ntriples", function() {

  var Location = {
    PRE_SUBJECT         : 0,
    WRITING_SUB_URI     : 1,
    WRITING_BNODE_URI   : 2,
    PRE_PRED            : 3,
    WRITING_PRED_URI    : 4,
    PRE_OBJ             : 5,
    WRITING_OBJ_URI     : 6,
    WRITING_OBJ_BNODE   : 7,
    WRITING_OBJ_LITERAL : 8,
    WRITING_LIT_LANG    : 9,
    WRITING_LIT_TYPE    : 10,
    POST_OBJ            : 11,
    ERROR               : 12
  };
  function transitState(currState, c) {
    var currLocation = currState.location;
    var ret;

    // Opening.
    if     (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI;
    else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI;
    else if(currLocation == Location.PRE_PRED    && c == '<') ret = Location.WRITING_PRED_URI;
    else if(currLocation == Location.PRE_OBJ     && c == '<') ret = Location.WRITING_OBJ_URI;
    else if(currLocation == Location.PRE_OBJ     && c == '_') ret = Location.WRITING_OBJ_BNODE;
    else if(currLocation == Location.PRE_OBJ     && c == '"') ret = Location.WRITING_OBJ_LITERAL;

    // Closing.
    else if(currLocation == Location.WRITING_SUB_URI     && c == '>') ret = Location.PRE_PRED;
    else if(currLocation == Location.WRITING_BNODE_URI   && c == ' ') ret = Location.PRE_PRED;
    else if(currLocation == Location.WRITING_PRED_URI    && c == '>') ret = Location.PRE_OBJ;
    else if(currLocation == Location.WRITING_OBJ_URI     && c == '>') ret = Location.POST_OBJ;
    else if(currLocation == Location.WRITING_OBJ_BNODE   && c == ' ') ret = Location.POST_OBJ;
    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '"') ret = Location.POST_OBJ;
    else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ;
    else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ;

    // Closing typed and language literal.
    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG;
    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE;

    // Spaces.
    else if( c == ' ' &&
             (
               currLocation == Location.PRE_SUBJECT ||
               currLocation == Location.PRE_PRED    ||
               currLocation == Location.PRE_OBJ     ||
               currLocation == Location.POST_OBJ
             )
           ) ret = currLocation;

    // Reset.
    else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT;

    // Error
    else ret = Location.ERROR;

    currState.location=ret;
  }

  return {
    startState: function() {
       return {
           location : Location.PRE_SUBJECT,
           uris     : [],
           anchors  : [],
           bnodes   : [],
           langs    : [],
           types    : []
       };
    },
    token: function(stream, state) {
      var ch = stream.next();
      if(ch == '<') {
         transitState(state, ch);
         var parsedURI = '';
         stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} );
         state.uris.push(parsedURI);
         if( stream.match('#', false) ) return 'variable';
         stream.next();
         transitState(state, '>');
         return 'variable';
      }
      if(ch == '#') {
        var parsedAnchor = '';
        stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;});
        state.anchors.push(parsedAnchor);
        return 'variable-2';
      }
      if(ch == '>') {
          transitState(state, '>');
          return 'variable';
      }
      if(ch == '_') {
          transitState(state, ch);
          var parsedBNode = '';
          stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;});
          state.bnodes.push(parsedBNode);
          stream.next();
          transitState(state, ' ');
          return 'builtin';
      }
      if(ch == '"') {
          transitState(state, ch);
          stream.eatWhile( function(c) { return c != '"'; } );
          stream.next();
          if( stream.peek() != '@' && stream.peek() != '^' ) {
              transitState(state, '"');
          }
          return 'string';
      }
      if( ch == '@' ) {
          transitState(state, '@');
          var parsedLang = '';
          stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;});
          state.langs.push(parsedLang);
          stream.next();
          transitState(state, ' ');
          return 'string-2';
      }
      if( ch == '^' ) {
          stream.next();
          transitState(state, '^');
          var parsedType = '';
          stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} );
          state.types.push(parsedType);
          stream.next();
          transitState(state, '>');
          return 'variable';
      }
      if( ch == ' ' ) {
          transitState(state, ch);
      }
      if( ch == '.' ) {
          transitState(state, ch);
      }
    }
  };
});

// define the registered Media Type for n-triples:
// https://www.w3.org/TR/n-triples/#n-triples-mediatype
CodeMirror.defineMIME("application/n-triples", "ntriples");

// N-Quads is based on the N-Triples format (so same highlighting works)
// https://www.w3.org/TR/n-quads/
CodeMirror.defineMIME("application/n-quads", "ntriples");

// previously used, though technically incorrect media type for n-triples
CodeMirror.defineMIME("text/n-triples", "ntriples");

});
editors/codemirror/mode/ntriples/ntriples.min.js000064400000004664152177723720016155 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("ntriples",(function(){function a(a,c){var d,e=a.location;d=e==b.PRE_SUBJECT&&"<"==c?b.WRITING_SUB_URI:e==b.PRE_SUBJECT&&"_"==c?b.WRITING_BNODE_URI:e==b.PRE_PRED&&"<"==c?b.WRITING_PRED_URI:e==b.PRE_OBJ&&"<"==c?b.WRITING_OBJ_URI:e==b.PRE_OBJ&&"_"==c?b.WRITING_OBJ_BNODE:e==b.PRE_OBJ&&'"'==c?b.WRITING_OBJ_LITERAL:e==b.WRITING_SUB_URI&&">"==c?b.PRE_PRED:e==b.WRITING_BNODE_URI&&" "==c?b.PRE_PRED:e==b.WRITING_PRED_URI&&">"==c?b.PRE_OBJ:e==b.WRITING_OBJ_URI&&">"==c?b.POST_OBJ:e==b.WRITING_OBJ_BNODE&&" "==c?b.POST_OBJ:e==b.WRITING_OBJ_LITERAL&&'"'==c?b.POST_OBJ:e==b.WRITING_LIT_LANG&&" "==c?b.POST_OBJ:e==b.WRITING_LIT_TYPE&&">"==c?b.POST_OBJ:e==b.WRITING_OBJ_LITERAL&&"@"==c?b.WRITING_LIT_LANG:e==b.WRITING_OBJ_LITERAL&&"^"==c?b.WRITING_LIT_TYPE:" "!=c||e!=b.PRE_SUBJECT&&e!=b.PRE_PRED&&e!=b.PRE_OBJ&&e!=b.POST_OBJ?e==b.POST_OBJ&&"."==c?b.PRE_SUBJECT:b.ERROR:e,a.location=d}var b={PRE_SUBJECT:0,WRITING_SUB_URI:1,WRITING_BNODE_URI:2,PRE_PRED:3,WRITING_PRED_URI:4,PRE_OBJ:5,WRITING_OBJ_URI:6,WRITING_OBJ_BNODE:7,WRITING_OBJ_LITERAL:8,WRITING_LIT_LANG:9,WRITING_LIT_TYPE:10,POST_OBJ:11,ERROR:12};return{startState:function(){return{location:b.PRE_SUBJECT,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(b,c){var d=b.next();if("<"==d){a(c,d);var e="";return b.eatWhile((function(a){return"#"!=a&&">"!=a&&(e+=a,!0)})),c.uris.push(e),b.match("#",!1)?"variable":(b.next(),a(c,">"),"variable")}if("#"==d){var f="";return b.eatWhile((function(a){return">"!=a&&" "!=a&&(f+=a,!0)})),c.anchors.push(f),"variable-2"}if(">"==d)return a(c,">"),"variable";if("_"==d){a(c,d);var g="";return b.eatWhile((function(a){return" "!=a&&(g+=a,!0)})),c.bnodes.push(g),b.next(),a(c," "),"builtin"}if('"'==d)return a(c,d),b.eatWhile((function(a){return'"'!=a})),b.next(),"@"!=b.peek()&&"^"!=b.peek()&&a(c,'"'),"string";if("@"==d){a(c,"@");var h="";return b.eatWhile((function(a){return" "!=a&&(h+=a,!0)})),c.langs.push(h),b.next(),a(c," "),"string-2"}if("^"==d){b.next(),a(c,"^");var i="";return b.eatWhile((function(a){return">"!=a&&(i+=a,!0)})),c.types.push(i),b.next(),a(c,">"),"variable"}" "==d&&a(c,d),"."==d&&a(c,d)}}})),a.defineMIME("application/n-triples","ntriples"),a.defineMIME("application/n-quads","ntriples"),a.defineMIME("text/n-triples","ntriples")}));editors/codemirror/mode/fcl/fcl.js000064400000011140152177723720013166 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("fcl", function(config) {
  var indentUnit = config.indentUnit;

  var keywords = {
      "term": true,
      "method": true, "accu": true,
      "rule": true, "then": true, "is": true, "and": true, "or": true,
      "if": true, "default": true
  };

  var start_blocks = {
      "var_input": true,
      "var_output": true,
      "fuzzify": true,
      "defuzzify": true,
      "function_block": true,
      "ruleblock": true
  };

  var end_blocks = {
      "end_ruleblock": true,
      "end_defuzzify": true,
      "end_function_block": true,
      "end_fuzzify": true,
      "end_var": true
  };

  var atoms = {
      "true": true, "false": true, "nan": true,
      "real": true, "min": true, "max": true, "cog": true, "cogs": true
  };

  var isOperatorChar = /[+\-*&^%:=<>!|\/]/;

  function tokenBase(stream, state) {
    var ch = stream.next();

    if (/[\d\.]/.test(ch)) {
      if (ch == ".") {
        stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/);
      } else if (ch == "0") {
        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);
      } else {
        stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/);
      }
      return "number";
    }

    if (ch == "/" || ch == "(") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_\xa1-\uffff]/);

    var cur = stream.current().toLowerCase();
    if (keywords.propertyIsEnumerable(cur) ||
        start_blocks.propertyIsEnumerable(cur) ||
        end_blocks.propertyIsEnumerable(cur)) {
      return "keyword";
    }
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return "variable";
  }


  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if ((ch == "/" || ch == ")") && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }

  function pushContext(state, col, type) {
    return state.context = new Context(state.indented, col, type, null, state.context);
  }

  function popContext(state) {
    if (!state.context.prev) return;
    var t = state.context.type;
    if (t == "end_block")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
    },

    token: function(stream, state) {
        var ctx = state.context;
        if (stream.sol()) {
            if (ctx.align == null) ctx.align = false;
            state.indented = stream.indentation();
            state.startOfLine = true;
        }
        if (stream.eatSpace()) return null;

        var style = (state.tokenize || tokenBase)(stream, state);
        if (style == "comment") return style;
        if (ctx.align == null) ctx.align = true;

        var cur = stream.current().toLowerCase();

        if (start_blocks.propertyIsEnumerable(cur)) pushContext(state, stream.column(), "end_block");
        else if (end_blocks.propertyIsEnumerable(cur))  popContext(state);

        state.startOfLine = false;
        return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return 0;
      var ctx = state.context;

      var closing = end_blocks.propertyIsEnumerable(textAfter);
      if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "ryk",
    fold: "brace",
    blockCommentStart: "(*",
    blockCommentEnd: "*)",
    lineComment: "//"
  };
});

CodeMirror.defineMIME("text/x-fcl", "fcl");
});
editors/codemirror/mode/fcl/fcl.min.js000064400000004475152177723720013765 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("fcl",(function(a){function b(a,b){var d=a.next();if(/[\d\.]/.test(d))return"."==d?a.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==d?a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^0[0-7]+/):a.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if("/"==d||"("==d){if(a.eat("*"))return b.tokenize=c,c(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(l.test(d))return a.eatWhile(l),"operator";a.eatWhile(/[\w\$_\xa1-\uffff]/);var e=a.current().toLowerCase();return h.propertyIsEnumerable(e)||i.propertyIsEnumerable(e)||j.propertyIsEnumerable(e)?"keyword":k.propertyIsEnumerable(e)?"atom":"variable"}function c(a,c){for(var d,e=!1;d=a.next();){if(("/"==d||")"==d)&&e){c.tokenize=b;break}e="*"==d}return"comment"}function d(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function e(a,b,c){return a.context=new d(a.indented,b,c,null,a.context)}function f(a){if(a.context.prev){var b=a.context.type;return"end_block"==b&&(a.indented=a.context.indented),a.context=a.context.prev}}var g=a.indentUnit,h={term:!0,method:!0,accu:!0,rule:!0,then:!0,is:!0,and:!0,or:!0,if:!0,default:!0},i={var_input:!0,var_output:!0,fuzzify:!0,defuzzify:!0,function_block:!0,ruleblock:!0},j={end_ruleblock:!0,end_defuzzify:!0,end_function_block:!0,end_fuzzify:!0,end_var:!0},k={true:!0,false:!0,nan:!0,real:!0,min:!0,max:!0,cog:!0,cogs:!0},l=/[+\-*&^%:=<>!|\/]/;return{startState:function(a){return{tokenize:null,context:new d((a||0)-g,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,c){var d=c.context;if(a.sol()&&(null==d.align&&(d.align=!1),c.indented=a.indentation(),c.startOfLine=!0),a.eatSpace())return null;var g=(c.tokenize||b)(a,c);if("comment"==g)return g;null==d.align&&(d.align=!0);var h=a.current().toLowerCase();return i.propertyIsEnumerable(h)?e(c,a.column(),"end_block"):j.propertyIsEnumerable(h)&&f(c),c.startOfLine=!1,g},indent:function(a,c){if(a.tokenize!=b&&null!=a.tokenize)return 0;var d=a.context,e=j.propertyIsEnumerable(c);return d.align?d.column+(e?0:1):d.indented+(e?0:g)},electricChars:"ryk",fold:"brace",blockCommentStart:"(*",blockCommentEnd:"*)",lineComment:"//"}})),a.defineMIME("text/x-fcl","fcl")}));editors/codemirror/mode/scheme/scheme.js000064400000032176152177723720014402 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Author: Koh Zi Han, based on implementation by Koh Zi Chun
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("scheme", function () {
    var BUILTIN = "builtin", COMMENT = "comment", STRING = "string",
        ATOM = "atom", NUMBER = "number", BRACKET = "bracket";
    var INDENT_WORD_SKIP = 2;

    function makeKeywords(str) {
        var obj = {}, words = str.split(" ");
        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
        return obj;
    }

    var keywords = makeKeywords("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?");
    var indentKeys = makeKeywords("define let letrec let* lambda");

    function stateStack(indent, type, prev) { // represents a state stack object
        this.indent = indent;
        this.type = type;
        this.prev = prev;
    }

    function pushStack(state, indent, type) {
        state.indentStack = new stateStack(indent, type, state.indentStack);
    }

    function popStack(state) {
        state.indentStack = state.indentStack.prev;
    }

    var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i);
    var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i);
    var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i);
    var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);

    function isBinaryNumber (stream) {
        return stream.match(binaryMatcher);
    }

    function isOctalNumber (stream) {
        return stream.match(octalMatcher);
    }

    function isDecimalNumber (stream, backup) {
        if (backup === true) {
            stream.backUp(1);
        }
        return stream.match(decimalMatcher);
    }

    function isHexNumber (stream) {
        return stream.match(hexMatcher);
    }

    return {
        startState: function () {
            return {
                indentStack: null,
                indentation: 0,
                mode: false,
                sExprComment: false
            };
        },

        token: function (stream, state) {
            if (state.indentStack == null && stream.sol()) {
                // update indentation, but only if indentStack is empty
                state.indentation = stream.indentation();
            }

            // skip spaces
            if (stream.eatSpace()) {
                return null;
            }
            var returnType = null;

            switch(state.mode){
                case "string": // multi-line string parsing mode
                    var next, escaped = false;
                    while ((next = stream.next()) != null) {
                        if (next == "\"" && !escaped) {

                            state.mode = false;
                            break;
                        }
                        escaped = !escaped && next == "\\";
                    }
                    returnType = STRING; // continue on in scheme-string mode
                    break;
                case "comment": // comment parsing mode
                    var next, maybeEnd = false;
                    while ((next = stream.next()) != null) {
                        if (next == "#" && maybeEnd) {

                            state.mode = false;
                            break;
                        }
                        maybeEnd = (next == "|");
                    }
                    returnType = COMMENT;
                    break;
                case "s-expr-comment": // s-expr commenting mode
                    state.mode = false;
                    if(stream.peek() == "(" || stream.peek() == "["){
                        // actually start scheme s-expr commenting mode
                        state.sExprComment = 0;
                    }else{
                        // if not we just comment the entire of the next token
                        stream.eatWhile(/[^/s]/); // eat non spaces
                        returnType = COMMENT;
                        break;
                    }
                default: // default parsing mode
                    var ch = stream.next();

                    if (ch == "\"") {
                        state.mode = "string";
                        returnType = STRING;

                    } else if (ch == "'") {
                        returnType = ATOM;
                    } else if (ch == '#') {
                        if (stream.eat("|")) {                    // Multi-line comment
                            state.mode = "comment"; // toggle to comment mode
                            returnType = COMMENT;
                        } else if (stream.eat(/[tf]/i)) {            // #t/#f (atom)
                            returnType = ATOM;
                        } else if (stream.eat(';')) {                // S-Expr comment
                            state.mode = "s-expr-comment";
                            returnType = COMMENT;
                        } else {
                            var numTest = null, hasExactness = false, hasRadix = true;
                            if (stream.eat(/[ei]/i)) {
                                hasExactness = true;
                            } else {
                                stream.backUp(1);       // must be radix specifier
                            }
                            if (stream.match(/^#b/i)) {
                                numTest = isBinaryNumber;
                            } else if (stream.match(/^#o/i)) {
                                numTest = isOctalNumber;
                            } else if (stream.match(/^#x/i)) {
                                numTest = isHexNumber;
                            } else if (stream.match(/^#d/i)) {
                                numTest = isDecimalNumber;
                            } else if (stream.match(/^[-+0-9.]/, false)) {
                                hasRadix = false;
                                numTest = isDecimalNumber;
                            // re-consume the intial # if all matches failed
                            } else if (!hasExactness) {
                                stream.eat('#');
                            }
                            if (numTest != null) {
                                if (hasRadix && !hasExactness) {
                                    // consume optional exactness after radix
                                    stream.match(/^#[ei]/i);
                                }
                                if (numTest(stream))
                                    returnType = NUMBER;
                            }
                        }
                    } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal
                        returnType = NUMBER;
                    } else if (ch == ";") { // comment
                        stream.skipToEnd(); // rest of the line is a comment
                        returnType = COMMENT;
                    } else if (ch == "(" || ch == "[") {
                      var keyWord = ''; var indentTemp = stream.column(), letter;
                        /**
                        Either
                        (indent-word ..
                        (non-indent-word ..
                        (;something else, bracket, etc.
                        */

                        while ((letter = stream.eat(/[^\s\(\[\;\)\]]/)) != null) {
                            keyWord += letter;
                        }

                        if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word

                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);
                        } else { // non-indent word
                            // we continue eating the spaces
                            stream.eatSpace();
                            if (stream.eol() || stream.peek() == ";") {
                                // nothing significant after
                                // we restart indentation 1 space after
                                pushStack(state, indentTemp + 1, ch);
                            } else {
                                pushStack(state, indentTemp + stream.current().length, ch); // else we match
                            }
                        }
                        stream.backUp(stream.current().length - 1); // undo all the eating

                        if(typeof state.sExprComment == "number") state.sExprComment++;

                        returnType = BRACKET;
                    } else if (ch == ")" || ch == "]") {
                        returnType = BRACKET;
                        if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : "[")) {
                            popStack(state);

                            if(typeof state.sExprComment == "number"){
                                if(--state.sExprComment == 0){
                                    returnType = COMMENT; // final closing bracket
                                    state.sExprComment = false; // turn off s-expr commenting mode
                                }
                            }
                        }
                    } else {
                        stream.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/);

                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {
                            returnType = BUILTIN;
                        } else returnType = "variable";
                    }
            }
            return (typeof state.sExprComment == "number") ? COMMENT : returnType;
        },

        indent: function (state) {
            if (state.indentStack == null) return state.indentation;
            return state.indentStack.indent;
        },

        closeBrackets: {pairs: "()[]{}\"\""},
        lineComment: ";;"
    };
});

CodeMirror.defineMIME("text/x-scheme", "scheme");

});
editors/codemirror/mode/scheme/scheme.min.js000064400000013510152177723720015153 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("scheme",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b,c){this.indent=a,this.type=b,this.prev=c}function c(a,c,d){a.indentStack=new b(c,d,a.indentStack)}function d(a){a.indentStack=a.indentStack.prev}function e(a){return a.match(r)}function f(a){return a.match(s)}function g(a,b){return b===!0&&a.backUp(1),a.match(u)}function h(a){return a.match(t)}var i="builtin",j="comment",k="string",l="atom",m="number",n="bracket",o=2,p=a("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),q=a("define let letrec let* lambda"),r=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),s=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),t=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),u=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);return{startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1}},token:function(a,b){if(null==b.indentStack&&a.sol()&&(b.indentation=a.indentation()),a.eatSpace())return null;var r=null;switch(b.mode){case"string":for(var s,t=!1;null!=(s=a.next());){if('"'==s&&!t){b.mode=!1;break}t=!t&&"\\"==s}r=k;break;case"comment":for(var s,u=!1;null!=(s=a.next());){if("#"==s&&u){b.mode=!1;break}u="|"==s}r=j;break;case"s-expr-comment":if(b.mode=!1,"("!=a.peek()&&"["!=a.peek()){a.eatWhile(/[^\/s]/),r=j;break}b.sExprComment=0;default:var v=a.next();if('"'==v)b.mode="string",r=k;else if("'"==v)r=l;else if("#"==v)if(a.eat("|"))b.mode="comment",r=j;else if(a.eat(/[tf]/i))r=l;else if(a.eat(";"))b.mode="s-expr-comment",r=j;else{var w=null,x=!1,y=!0;a.eat(/[ei]/i)?x=!0:a.backUp(1),a.match(/^#b/i)?w=e:a.match(/^#o/i)?w=f:a.match(/^#x/i)?w=h:a.match(/^#d/i)?w=g:a.match(/^[-+0-9.]/,!1)?(y=!1,w=g):x||a.eat("#"),null!=w&&(y&&!x&&a.match(/^#[ei]/i),w(a)&&(r=m))}else if(/^[-+0-9.]/.test(v)&&g(a,!0))r=m;else if(";"==v)a.skipToEnd(),r=j;else if("("==v||"["==v){for(var z,A="",B=a.column();null!=(z=a.eat(/[^\s\(\[\;\)\]]/));)A+=z;A.length>0&&q.propertyIsEnumerable(A)?c(b,B+o,v):(a.eatSpace(),a.eol()||";"==a.peek()?c(b,B+1,v):c(b,B+a.current().length,v)),a.backUp(a.current().length-1),"number"==typeof b.sExprComment&&b.sExprComment++,r=n}else")"==v||"]"==v?(r=n,null!=b.indentStack&&b.indentStack.type==(")"==v?"(":"[")&&(d(b),"number"==typeof b.sExprComment&&0==--b.sExprComment&&(r=j,b.sExprComment=!1))):(a.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),r=p&&p.propertyIsEnumerable(a.current())?i:"variable")}return"number"==typeof b.sExprComment?j:r},indent:function(a){return null==a.indentStack?a.indentation:a.indentStack.indent},closeBrackets:{pairs:'()[]{}""'},lineComment:";;"}})),a.defineMIME("text/x-scheme","scheme")}));editors/codemirror/mode/mllike/mllike.min.js000064400000011630152177723720015176 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("mllike",(function(a,b){function c(a,c){var h=a.next();if('"'===h)return c.tokenize=d,c.tokenize(a,c);if("{"===h&&a.eat("|"))return c.longString=!0,c.tokenize=f,c.tokenize(a,c);if("("===h&&a.eat("*"))return c.commentLevel++,c.tokenize=e,c.tokenize(a,c);if("~"===h||"?"===h)return a.eatWhile(/\w/),"variable-2";if("`"===h)return a.eatWhile(/\w/),"quote";if("/"===h&&b.slashComments&&a.eat("/"))return a.skipToEnd(),"comment";if(/\d/.test(h))return"0"===h&&a.eat(/[bB]/)&&a.eatWhile(/[01]/),"0"===h&&a.eat(/[xX]/)&&a.eatWhile(/[0-9a-fA-F]/),"0"===h&&a.eat(/[oO]/)?a.eatWhile(/[0-7]/):(a.eatWhile(/[\d_]/),a.eat(".")&&a.eatWhile(/[\d]/),a.eat(/[eE]/)&&a.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(h))return"operator";if(/[\w\xa1-\uffff]/.test(h)){a.eatWhile(/[\w\xa1-\uffff]/);var i=a.current();return g.hasOwnProperty(i)?g[i]:"variable"}return null}function d(a,b){for(var d,e=!1,f=!1;null!=(d=a.next());){if('"'===d&&!f){e=!0;break}f=!f&&"\\"===d}return e&&!f&&(b.tokenize=c),"string"}function e(a,b){for(var d,e;b.commentLevel>0&&null!=(e=a.next());)"("===d&&"*"===e&&b.commentLevel++,"*"===d&&")"===e&&b.commentLevel--,d=e;return b.commentLevel<=0&&(b.tokenize=c),"comment"}function f(a,b){for(var d,e;b.longString&&null!=(e=a.next());)"|"===d&&"}"===e&&(b.longString=!1),d=e;return b.longString||(b.tokenize=c),"string"}var g={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},h=b.extraWords||{};for(var i in h)h.hasOwnProperty(i)&&(g[i]=b.extraWords[i]);return{startState:function(){return{tokenize:c,commentLevel:0,longString:!1}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)},blockCommentStart:"(*",blockCommentEnd:"*)",lineComment:b.slashComments?"//":null}})),a.defineMIME("text/x-ocaml",{name:"mllike",extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),a.defineMIME("text/x-fsharp",{name:"mllike",extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),a.defineMIME("text/x-sml",{name:"mllike",extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0})}));editors/codemirror/mode/mllike/mllike.js000064400000020606152177723720014417 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('mllike', function(_config, parserConfig) {
  var words = {
    'as': 'keyword',
    'do': 'keyword',
    'else': 'keyword',
    'end': 'keyword',
    'exception': 'keyword',
    'fun': 'keyword',
    'functor': 'keyword',
    'if': 'keyword',
    'in': 'keyword',
    'include': 'keyword',
    'let': 'keyword',
    'of': 'keyword',
    'open': 'keyword',
    'rec': 'keyword',
    'struct': 'keyword',
    'then': 'keyword',
    'type': 'keyword',
    'val': 'keyword',
    'while': 'keyword',
    'with': 'keyword'
  };

  var extraWords = parserConfig.extraWords || {};
  for (var prop in extraWords) {
    if (extraWords.hasOwnProperty(prop)) {
      words[prop] = parserConfig.extraWords[prop];
    }
  }

  function tokenBase(stream, state) {
    var ch = stream.next();

    if (ch === '"') {
      state.tokenize = tokenString;
      return state.tokenize(stream, state);
    }
    if (ch === '{') {
      if (stream.eat('|')) {
        state.longString = true;
        state.tokenize = tokenLongString;
        return state.tokenize(stream, state);
      }
    }
    if (ch === '(') {
      if (stream.eat('*')) {
        state.commentLevel++;
        state.tokenize = tokenComment;
        return state.tokenize(stream, state);
      }
    }
    if (ch === '~' || ch === '?') {
      stream.eatWhile(/\w/);
      return 'variable-2';
    }
    if (ch === '`') {
      stream.eatWhile(/\w/);
      return 'quote';
    }
    if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {
      stream.skipToEnd();
      return 'comment';
    }
    if (/\d/.test(ch)) {
      if (ch === '0' && stream.eat(/[bB]/)) {
        stream.eatWhile(/[01]/);
      } if (ch === '0' && stream.eat(/[xX]/)) {
        stream.eatWhile(/[0-9a-fA-F]/)
      } if (ch === '0' && stream.eat(/[oO]/)) {
        stream.eatWhile(/[0-7]/);
      } else {
        stream.eatWhile(/[\d_]/);
        if (stream.eat('.')) {
          stream.eatWhile(/[\d]/);
        }
        if (stream.eat(/[eE]/)) {
          stream.eatWhile(/[\d\-+]/);
        }
      }
      return 'number';
    }
    if ( /[+\-*&%=<>!?|@\.~:]/.test(ch)) {
      return 'operator';
    }
    if (/[\w\xa1-\uffff]/.test(ch)) {
      stream.eatWhile(/[\w\xa1-\uffff]/);
      var cur = stream.current();
      return words.hasOwnProperty(cur) ? words[cur] : 'variable';
    }
    return null
  }

  function tokenString(stream, state) {
    var next, end = false, escaped = false;
    while ((next = stream.next()) != null) {
      if (next === '"' && !escaped) {
        end = true;
        break;
      }
      escaped = !escaped && next === '\\';
    }
    if (end && !escaped) {
      state.tokenize = tokenBase;
    }
    return 'string';
  };

  function tokenComment(stream, state) {
    var prev, next;
    while(state.commentLevel > 0 && (next = stream.next()) != null) {
      if (prev === '(' && next === '*') state.commentLevel++;
      if (prev === '*' && next === ')') state.commentLevel--;
      prev = next;
    }
    if (state.commentLevel <= 0) {
      state.tokenize = tokenBase;
    }
    return 'comment';
  }

  function tokenLongString(stream, state) {
    var prev, next;
    while (state.longString && (next = stream.next()) != null) {
      if (prev === '|' && next === '}') state.longString = false;
      prev = next;
    }
    if (!state.longString) {
      state.tokenize = tokenBase;
    }
    return 'string';
  }

  return {
    startState: function() {return {tokenize: tokenBase, commentLevel: 0, longString: false};},
    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      return state.tokenize(stream, state);
    },

    blockCommentStart: "(*",
    blockCommentEnd: "*)",
    lineComment: parserConfig.slashComments ? "//" : null
  };
});

CodeMirror.defineMIME('text/x-ocaml', {
  name: 'mllike',
  extraWords: {
    'and': 'keyword',
    'assert': 'keyword',
    'begin': 'keyword',
    'class': 'keyword',
    'constraint': 'keyword',
    'done': 'keyword',
    'downto': 'keyword',
    'external': 'keyword',
    'function': 'keyword',
    'initializer': 'keyword',
    'lazy': 'keyword',
    'match': 'keyword',
    'method': 'keyword',
    'module': 'keyword',
    'mutable': 'keyword',
    'new': 'keyword',
    'nonrec': 'keyword',
    'object': 'keyword',
    'private': 'keyword',
    'sig': 'keyword',
    'to': 'keyword',
    'try': 'keyword',
    'value': 'keyword',
    'virtual': 'keyword',
    'when': 'keyword',

    // builtins
    'raise': 'builtin',
    'failwith': 'builtin',
    'true': 'builtin',
    'false': 'builtin',

    // Pervasives builtins
    'asr': 'builtin',
    'land': 'builtin',
    'lor': 'builtin',
    'lsl': 'builtin',
    'lsr': 'builtin',
    'lxor': 'builtin',
    'mod': 'builtin',
    'or': 'builtin',

    // More Pervasives
    'raise_notrace': 'builtin',
    'trace': 'builtin',
    'exit': 'builtin',
    'print_string': 'builtin',
    'print_endline': 'builtin',

     'int': 'type',
     'float': 'type',
     'bool': 'type',
     'char': 'type',
     'string': 'type',
     'unit': 'type',

     // Modules
     'List': 'builtin'
  }
});

CodeMirror.defineMIME('text/x-fsharp', {
  name: 'mllike',
  extraWords: {
    'abstract': 'keyword',
    'assert': 'keyword',
    'base': 'keyword',
    'begin': 'keyword',
    'class': 'keyword',
    'default': 'keyword',
    'delegate': 'keyword',
    'do!': 'keyword',
    'done': 'keyword',
    'downcast': 'keyword',
    'downto': 'keyword',
    'elif': 'keyword',
    'extern': 'keyword',
    'finally': 'keyword',
    'for': 'keyword',
    'function': 'keyword',
    'global': 'keyword',
    'inherit': 'keyword',
    'inline': 'keyword',
    'interface': 'keyword',
    'internal': 'keyword',
    'lazy': 'keyword',
    'let!': 'keyword',
    'match': 'keyword',
    'member': 'keyword',
    'module': 'keyword',
    'mutable': 'keyword',
    'namespace': 'keyword',
    'new': 'keyword',
    'null': 'keyword',
    'override': 'keyword',
    'private': 'keyword',
    'public': 'keyword',
    'return!': 'keyword',
    'return': 'keyword',
    'select': 'keyword',
    'static': 'keyword',
    'to': 'keyword',
    'try': 'keyword',
    'upcast': 'keyword',
    'use!': 'keyword',
    'use': 'keyword',
    'void': 'keyword',
    'when': 'keyword',
    'yield!': 'keyword',
    'yield': 'keyword',

    // Reserved words
    'atomic': 'keyword',
    'break': 'keyword',
    'checked': 'keyword',
    'component': 'keyword',
    'const': 'keyword',
    'constraint': 'keyword',
    'constructor': 'keyword',
    'continue': 'keyword',
    'eager': 'keyword',
    'event': 'keyword',
    'external': 'keyword',
    'fixed': 'keyword',
    'method': 'keyword',
    'mixin': 'keyword',
    'object': 'keyword',
    'parallel': 'keyword',
    'process': 'keyword',
    'protected': 'keyword',
    'pure': 'keyword',
    'sealed': 'keyword',
    'tailcall': 'keyword',
    'trait': 'keyword',
    'virtual': 'keyword',
    'volatile': 'keyword',

    // builtins
    'List': 'builtin',
    'Seq': 'builtin',
    'Map': 'builtin',
    'Set': 'builtin',
    'Option': 'builtin',
    'int': 'builtin',
    'string': 'builtin',
    'not': 'builtin',
    'true': 'builtin',
    'false': 'builtin',

    'raise': 'builtin',
    'failwith': 'builtin'
  },
  slashComments: true
});


CodeMirror.defineMIME('text/x-sml', {
  name: 'mllike',
  extraWords: {
    'abstype': 'keyword',
    'and': 'keyword',
    'andalso': 'keyword',
    'case': 'keyword',
    'datatype': 'keyword',
    'fn': 'keyword',
    'handle': 'keyword',
    'infix': 'keyword',
    'infixr': 'keyword',
    'local': 'keyword',
    'nonfix': 'keyword',
    'op': 'keyword',
    'orelse': 'keyword',
    'raise': 'keyword',
    'withtype': 'keyword',
    'eqtype': 'keyword',
    'sharing': 'keyword',
    'sig': 'keyword',
    'signature': 'keyword',
    'structure': 'keyword',
    'where': 'keyword',
    'true': 'keyword',
    'false': 'keyword',

    // types
    'int': 'builtin',
    'real': 'builtin',
    'string': 'builtin',
    'char': 'builtin',
    'bool': 'builtin'
  },
  slashComments: true
});

});
editors/codemirror/mode/sparql/sparql.min.js000064400000006377152177723720015264 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("sparql",(function(a){function b(a){return new RegExp("^(?:"+a.join("|")+")$","i")}function c(a,b){var c=a.next();if(g=null,"$"==c||"?"==c)return"?"==c&&a.match(/\s/,!1)?"operator":(a.match(/^[\w\d]*/),"variable-2");if("<"!=c||a.match(/^[\s\u00a0=]/,!1)){if('"'==c||"'"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[{}\(\),\.;\[\]]/.test(c))return g=c,"bracket";if("#"==c)return a.skipToEnd(),"comment";if(k.test(c))return a.eatWhile(k),"operator";if(":"==c)return a.eatWhile(/[\w\d\._\-]/),"atom";if("@"==c)return a.eatWhile(/[a-z\d\-]/i),"meta";if(a.eatWhile(/[_\w\d]/),a.eat(":"))return a.eatWhile(/[\w\d_\-]/),"atom";var e=a.current();return i.test(e)?"builtin":j.test(e)?"keyword":"variable"}return a.match(/^[^\s\u00a0>]*>?/),"atom"}function d(a){return function(b,d){for(var e,f=!1;null!=(e=b.next());){if(e==a&&!f){d.tokenize=c;break}f=!f&&"\\"==e}return"string"}}function e(a,b,c){a.context={prev:a.context,indent:a.indent,col:c,type:b}}function f(a){a.indent=a.context.indent,a.context=a.context.prev}var g,h=a.indentUnit,i=b(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]),j=b(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load"]),k=/[*+\-<>=&|\^\/!\?]/;return{startState:function(){return{tokenize:c,context:null,indent:0,col:0}},token:function(a,b){if(a.sol()&&(b.context&&null==b.context.align&&(b.context.align=!1),b.indent=a.indentation()),a.eatSpace())return null;var c=b.tokenize(a,b);if("comment"!=c&&b.context&&null==b.context.align&&"pattern"!=b.context.type&&(b.context.align=!0),"("==g)e(b,")",a.column());else if("["==g)e(b,"]",a.column());else if("{"==g)e(b,"}",a.column());else if(/[\]\}\)]/.test(g)){for(;b.context&&"pattern"==b.context.type;)f(b);b.context&&g==b.context.type&&(f(b),"}"==g&&b.context&&"pattern"==b.context.type&&f(b))}else"."==g&&b.context&&"pattern"==b.context.type?f(b):/atom|string|variable/.test(c)&&b.context&&(/[\}\]]/.test(b.context.type)?e(b,"pattern",a.column()):"pattern"!=b.context.type||b.context.align||(b.context.align=!0,b.context.col=a.column()));return c},indent:function(a,b){var c=b&&b.charAt(0),d=a.context;if(/[\]\}]/.test(c))for(;d&&"pattern"==d.type;)d=d.prev;var e=d&&c==d.type;return d?"pattern"==d.type?d.col:d.align?d.col+(e?0:1):d.indent+(e?0:h):0},lineComment:"#"}})),a.defineMIME("application/sparql-query","sparql")}));editors/codemirror/mode/sparql/sparql.js000064400000014300152177723720014463 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("sparql", function(config) {
  var indentUnit = config.indentUnit;
  var curPunc;

  function wordRegexp(words) {
    return new RegExp("^(?:" + words.join("|") + ")$", "i");
  }
  var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri",
                        "iri", "uri", "bnode", "count", "sum", "min", "max", "avg", "sample",
                        "group_concat", "rand", "abs", "ceil", "floor", "round", "concat", "substr", "strlen",
                        "replace", "ucase", "lcase", "encode_for_uri", "contains", "strstarts", "strends",
                        "strbefore", "strafter", "year", "month", "day", "hours", "minutes", "seconds",
                        "timezone", "tz", "now", "uuid", "struuid", "md5", "sha1", "sha256", "sha384",
                        "sha512", "coalesce", "if", "strlang", "strdt", "isnumeric", "regex", "exists",
                        "isblank", "isliteral", "a", "bind"]);
  var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe",
                             "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional",
                             "graph", "by", "asc", "desc", "as", "having", "undef", "values", "group",
                             "minus", "in", "not", "service", "silent", "using", "insert", "delete", "union",
                             "true", "false", "with",
                             "data", "copy", "to", "move", "add", "create", "drop", "clear", "load"]);
  var operatorChars = /[*+\-<>=&|\^\/!\?]/;

  function tokenBase(stream, state) {
    var ch = stream.next();
    curPunc = null;
    if (ch == "$" || ch == "?") {
      if(ch == "?" && stream.match(/\s/, false)){
        return "operator";
      }
      stream.match(/^[\w\d]*/);
      return "variable-2";
    }
    else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
      stream.match(/^[^\s\u00a0>]*>?/);
      return "atom";
    }
    else if (ch == "\"" || ch == "'") {
      state.tokenize = tokenLiteral(ch);
      return state.tokenize(stream, state);
    }
    else if (/[{}\(\),\.;\[\]]/.test(ch)) {
      curPunc = ch;
      return "bracket";
    }
    else if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    }
    else if (operatorChars.test(ch)) {
      stream.eatWhile(operatorChars);
      return "operator";
    }
    else if (ch == ":") {
      stream.eatWhile(/[\w\d\._\-]/);
      return "atom";
    }
    else if (ch == "@") {
      stream.eatWhile(/[a-z\d\-]/i);
      return "meta";
    }
    else {
      stream.eatWhile(/[_\w\d]/);
      if (stream.eat(":")) {
        stream.eatWhile(/[\w\d_\-]/);
        return "atom";
      }
      var word = stream.current();
      if (ops.test(word))
        return "builtin";
      else if (keywords.test(word))
        return "keyword";
      else
        return "variable";
    }
  }

  function tokenLiteral(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) {
          state.tokenize = tokenBase;
          break;
        }
        escaped = !escaped && ch == "\\";
      }
      return "string";
    };
  }

  function pushContext(state, type, col) {
    state.context = {prev: state.context, indent: state.indent, col: col, type: type};
  }
  function popContext(state) {
    state.indent = state.context.indent;
    state.context = state.context.prev;
  }

  return {
    startState: function() {
      return {tokenize: tokenBase,
              context: null,
              indent: 0,
              col: 0};
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (state.context && state.context.align == null) state.context.align = false;
        state.indent = stream.indentation();
      }
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);

      if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
        state.context.align = true;
      }

      if (curPunc == "(") pushContext(state, ")", stream.column());
      else if (curPunc == "[") pushContext(state, "]", stream.column());
      else if (curPunc == "{") pushContext(state, "}", stream.column());
      else if (/[\]\}\)]/.test(curPunc)) {
        while (state.context && state.context.type == "pattern") popContext(state);
        if (state.context && curPunc == state.context.type) {
          popContext(state);
          if (curPunc == "}" && state.context && state.context.type == "pattern")
            popContext(state);
        }
      }
      else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
      else if (/atom|string|variable/.test(style) && state.context) {
        if (/[\}\]]/.test(state.context.type))
          pushContext(state, "pattern", stream.column());
        else if (state.context.type == "pattern" && !state.context.align) {
          state.context.align = true;
          state.context.col = stream.column();
        }
      }

      return style;
    },

    indent: function(state, textAfter) {
      var firstChar = textAfter && textAfter.charAt(0);
      var context = state.context;
      if (/[\]\}]/.test(firstChar))
        while (context && context.type == "pattern") context = context.prev;

      var closing = context && firstChar == context.type;
      if (!context)
        return 0;
      else if (context.type == "pattern")
        return context.col;
      else if (context.align)
        return context.col + (closing ? 0 : 1);
      else
        return context.indent + (closing ? 0 : indentUnit);
    },

    lineComment: "#"
  };
});

CodeMirror.defineMIME("application/sparql-query", "sparql");

});
editors/codemirror/mode/groovy/groovy.js000064400000017341152177723720014541 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("groovy", function(config) {
  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  var keywords = words(
    "abstract as assert boolean break byte case catch char class const continue def default " +
    "do double else enum extends final finally float for goto if implements import in " +
    "instanceof int interface long native new package private protected public return " +
    "short static strictfp super switch synchronized threadsafe throw throws trait transient " +
    "try void volatile while");
  var blockKeywords = words("catch class def do else enum finally for if interface switch trait try while");
  var standaloneKeywords = words("return break continue");
  var atoms = words("null true false this");

  var curPunc;
  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"' || ch == "'") {
      return startString(ch, stream, state);
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      if (stream.eat(/eE/)) { stream.eat(/\+\-/); stream.eatWhile(/\d/); }
      return "number";
    }
    if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize.push(tokenComment);
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
      if (expectExpression(state.lastToken, false)) {
        return startString(ch, stream, state);
      }
    }
    if (ch == "-" && stream.eat(">")) {
      curPunc = "->";
      return null;
    }
    if (/[+\-*&%=<>!?|\/~]/.test(ch)) {
      stream.eatWhile(/[+\-*&%=<>|~]/);
      return "operator";
    }
    stream.eatWhile(/[\w\$_]/);
    if (ch == "@") { stream.eatWhile(/[\w\$_\.]/); return "meta"; }
    if (state.lastToken == ".") return "property";
    if (stream.eat(":")) { curPunc = "proplabel"; return "property"; }
    var cur = stream.current();
    if (atoms.propertyIsEnumerable(cur)) { return "atom"; }
    if (keywords.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      else if (standaloneKeywords.propertyIsEnumerable(cur)) curPunc = "standalone";
      return "keyword";
    }
    return "variable";
  }
  tokenBase.isBase = true;

  function startString(quote, stream, state) {
    var tripleQuoted = false;
    if (quote != "/" && stream.eat(quote)) {
      if (stream.eat(quote)) tripleQuoted = true;
      else return "string";
    }
    function t(stream, state) {
      var escaped = false, next, end = !tripleQuoted;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {
          if (!tripleQuoted) { break; }
          if (stream.match(quote + quote)) { end = true; break; }
        }
        if (quote == '"' && next == "$" && !escaped && stream.eat("{")) {
          state.tokenize.push(tokenBaseUntilBrace());
          return "string";
        }
        escaped = !escaped && next == "\\";
      }
      if (end) state.tokenize.pop();
      return "string";
    }
    state.tokenize.push(t);
    return t(stream, state);
  }

  function tokenBaseUntilBrace() {
    var depth = 1;
    function t(stream, state) {
      if (stream.peek() == "}") {
        depth--;
        if (depth == 0) {
          state.tokenize.pop();
          return state.tokenize[state.tokenize.length-1](stream, state);
        }
      } else if (stream.peek() == "{") {
        depth++;
      }
      return tokenBase(stream, state);
    }
    t.isBase = true;
    return t;
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize.pop();
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function expectExpression(last, newline) {
    return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) ||
      last == "newstatement" || last == "keyword" || last == "proplabel" ||
      (last == "standalone" && !newline);
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    return state.context = new Context(state.indented, col, type, null, state.context);
  }
  function popContext(state) {
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: [tokenBase],
        context: new Context((basecolumn || 0) - config.indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true,
        lastToken: null
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
        // Automatic semicolon insertion
        if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) {
          popContext(state); ctx = state.context;
        }
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      var style = state.tokenize[state.tokenize.length-1](stream, state);
      if (style == "comment") return style;
      if (ctx.align == null) ctx.align = true;

      if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
      // Handle indentation for {x -> \n ... }
      else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") {
        popContext(state);
        state.context.align = false;
      }
      else if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "}") {
        while (ctx.type == "statement") ctx = popContext(state);
        if (ctx.type == "}") ctx = popContext(state);
        while (ctx.type == "statement") ctx = popContext(state);
      }
      else if (curPunc == ctx.type) popContext(state);
      else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
        pushContext(state, stream.column(), "statement");
      state.startOfLine = false;
      state.lastToken = curPunc || style;
      return style;
    },

    indent: function(state, textAfter) {
      if (!state.tokenize[state.tokenize.length-1].isBase) return CodeMirror.Pass;
      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;
      if (ctx.type == "statement" && !expectExpression(state.lastToken, true)) ctx = ctx.prev;
      var closing = firstChar == ctx.type;
      if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : config.indentUnit);
      else if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : config.indentUnit);
    },

    electricChars: "{}",
    closeBrackets: {triples: "'\""},
    fold: "brace"
  };
});

CodeMirror.defineMIME("text/x-groovy", "groovy");

});
editors/codemirror/mode/groovy/groovy.min.js000064400000007764152177723720015333 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("groovy",(function(b){function c(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function d(a,b){var c=a.next();if('"'==c||"'"==c)return e(c,a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return l=c,null;if(/\d/.test(c))return a.eatWhile(/[\w\.]/),a.eat(/eE/)&&(a.eat(/\+\-/),a.eatWhile(/\d/)),"number";if("/"==c){if(a.eat("*"))return b.tokenize.push(g),g(a,b);if(a.eat("/"))return a.skipToEnd(),"comment";if(h(b.lastToken,!1))return e(c,a,b)}if("-"==c&&a.eat(">"))return l="->",null;if(/[+\-*&%=<>!?|\/~]/.test(c))return a.eatWhile(/[+\-*&%=<>|~]/),"operator";if(a.eatWhile(/[\w\$_]/),"@"==c)return a.eatWhile(/[\w\$_\.]/),"meta";if("."==b.lastToken)return"property";if(a.eat(":"))return l="proplabel","property";var d=a.current();return p.propertyIsEnumerable(d)?"atom":m.propertyIsEnumerable(d)?(n.propertyIsEnumerable(d)?l="newstatement":o.propertyIsEnumerable(d)&&(l="standalone"),"keyword"):"variable"}function e(a,b,c){function d(b,c){for(var d,g=!1,h=!e;null!=(d=b.next());){if(d==a&&!g){if(!e)break;if(b.match(a+a)){h=!0;break}}if('"'==a&&"$"==d&&!g&&b.eat("{"))return c.tokenize.push(f()),"string";g=!g&&"\\"==d}return h&&c.tokenize.pop(),"string"}var e=!1;if("/"!=a&&b.eat(a)){if(!b.eat(a))return"string";e=!0}return c.tokenize.push(d),d(b,c)}function f(){function a(a,c){if("}"==a.peek()){if(b--,0==b)return c.tokenize.pop(),c.tokenize[c.tokenize.length-1](a,c)}else"{"==a.peek()&&b++;return d(a,c)}var b=1;return a.isBase=!0,a}function g(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize.pop();break}d="*"==c}return"comment"}function h(a,b){return!a||"operator"==a||"->"==a||/[\.\[\{\(,;:]/.test(a)||"newstatement"==a||"keyword"==a||"proplabel"==a||"standalone"==a&&!b}function i(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function j(a,b,c){return a.context=new i(a.indented,b,c,null,a.context)}function k(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var l,m=c("abstract as assert boolean break byte case catch char class const continue def default do double else enum extends final finally float for goto if implements import in instanceof int interface long native new package private protected public return short static strictfp super switch synchronized threadsafe throw throws trait transient try void volatile while"),n=c("catch class def do else enum finally for if interface switch trait try while"),o=c("return break continue"),p=c("null true false this");return d.isBase=!0,{startState:function(a){return{tokenize:[d],context:new i((a||0)-b.indentUnit,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(a,b){var c=b.context;if(a.sol()&&(null==c.align&&(c.align=!1),b.indented=a.indentation(),b.startOfLine=!0,"statement"!=c.type||h(b.lastToken,!0)||(k(b),c=b.context)),a.eatSpace())return null;l=null;var d=b.tokenize[b.tokenize.length-1](a,b);if("comment"==d)return d;if(null==c.align&&(c.align=!0),";"!=l&&":"!=l||"statement"!=c.type)if("->"==l&&"statement"==c.type&&"}"==c.prev.type)k(b),b.context.align=!1;else if("{"==l)j(b,a.column(),"}");else if("["==l)j(b,a.column(),"]");else if("("==l)j(b,a.column(),")");else if("}"==l){for(;"statement"==c.type;)c=k(b);for("}"==c.type&&(c=k(b));"statement"==c.type;)c=k(b)}else l==c.type?k(b):("}"==c.type||"top"==c.type||"statement"==c.type&&"newstatement"==l)&&j(b,a.column(),"statement");else k(b);return b.startOfLine=!1,b.lastToken=l||d,d},indent:function(c,d){if(!c.tokenize[c.tokenize.length-1].isBase)return a.Pass;var e=d&&d.charAt(0),f=c.context;"statement"!=f.type||h(c.lastToken,!0)||(f=f.prev);var g=e==f.type;return"statement"==f.type?f.indented+("{"==e?0:b.indentUnit):f.align?f.column+(g?0:1):f.indented+(g?0:b.indentUnit)},electricChars:"{}",closeBrackets:{triples:"'\""},fold:"brace"}})),a.defineMIME("text/x-groovy","groovy")}));editors/codemirror/mode/powershell/powershell.min.js000064400000017576152177723720017033 0ustar00!(function(a){"use strict";"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(window.CodeMirror)})((function(a){"use strict";a.defineMode("powershell",(function(){function a(a,b){b=b||{};for(var c=void 0!==b.prefix?b.prefix:"^",d=void 0!==b.suffix?b.suffix:"\\b",e=0;e<a.length;e++)a[e]instanceof RegExp?a[e]=a[e].source:a[e]=a[e].replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return new RegExp(c+"("+a.join("|")+")"+d,"i")}function b(a,b){var e=b.returnStack[b.returnStack.length-1];if(e&&e.shouldReturnFrom(b))return b.tokenize=e.tokenize,b.returnStack.pop(),b.tokenize(a,b);if(a.eatSpace())return null;if(a.eat("("))return b.bracketNesting+=1,"punctuation";if(a.eat(")"))return b.bracketNesting-=1,"punctuation";for(var f in z)if(a.match(z[f]))return f;var g=a.next();if("'"===g)return c(a,b);if("$"===g)return j(a,b);if('"'===g)return d(a,b);if("<"===g&&a.eat("#"))return b.tokenize=i,i(a,b);if("#"===g)return a.skipToEnd(),"comment";if("@"===g){var h=a.eat(/["']/);if(h&&a.eol())return b.tokenize=l,b.startQuote=h[0],l(a,b);if(a.eol())return"error";if(a.peek().match(/[({]/))return"punctuation";if(a.peek().match(n))return j(a,b)}return"error"}function c(a,c){for(var d;null!=(d=a.peek());)if(a.next(),"'"===d&&!a.eat("'"))return c.tokenize=b,"string";return"error"}function d(a,c){for(var d;null!=(d=a.peek());){if("$"===d)return c.tokenize=e,"string";if(a.next(),"`"!==d){if('"'===d&&!a.eat('"'))return c.tokenize=b,"string"}else a.next()}return"error"}function e(a,b){return h(a,b,d)}function f(a,b){return b.tokenize=l,b.startQuote='"',l(a,b)}function g(a,b){return h(a,b,f)}function h(a,c,d){if(a.match("$(")){var e=c.bracketNesting;return c.returnStack.push({shouldReturnFrom:function(a){return a.bracketNesting===e},tokenize:d}),c.tokenize=b,c.bracketNesting+=1,"punctuation"}return a.next(),c.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:d}),c.tokenize=j,c.tokenize(a,c)}function i(a,c){for(var d,e=!1;null!=(d=a.next());){if(e&&">"==d){c.tokenize=b;break}e="#"===d}return"comment"}function j(a,c){var d=a.peek();return a.eat("{")?(c.tokenize=k,k(a,c)):void 0!=d&&d.match(n)?(a.eatWhile(n),c.tokenize=b,"variable-2"):(c.tokenize=b,"error")}function k(a,c){for(var d;null!=(d=a.next());)if("}"===d){c.tokenize=b;break}return"variable-2"}function l(a,c){var d=c.startQuote;if(a.sol()&&a.match(new RegExp(d+"@")))c.tokenize=b;else if('"'===d)for(;!a.eol();){var e=a.peek();if("$"===e)return c.tokenize=g,"string";a.next(),"`"===e&&a.next()}else a.skipToEnd();return"string"}var m="(?=[^A-Za-z\\d\\-_]|$)",n=/[\w\-:]/,o=a([/begin|break|catch|continue|data|default|do|dynamicparam/,/else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,/param|process|return|switch|throw|trap|try|until|where|while/],{suffix:m}),p=/[\[\]{},;`\.]|@[({]/,q=a(["f",/b?not/,/[ic]?split/,"join",/is(not)?/,"as",/[ic]?(eq|ne|[gl][te])/,/[ic]?(not)?(like|match|contains)/,/[ic]?replace/,/b?(and|or|xor)/],{prefix:"-"}),r=/[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/,s=a([q,r],{suffix:""}),t=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,u=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/,v=/[A-Z]:|%|\?/i,w=a([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),x=a([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),y=a([v,w,x],{suffix:m}),z={keyword:o,number:t,operator:s,builtin:y,punctuation:p,identifier:u},A={startState:function(){return{returnStack:[],bracketNesting:0,tokenize:b}},token:function(a,b){return b.tokenize(a,b)},blockCommentStart:"<#",blockCommentEnd:"#>",lineComment:"#",fold:"brace"};return A})),a.defineMIME("application/x-powershell","powershell")}));editors/codemirror/mode/powershell/powershell.js000064400000031165152177723720016237 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  'use strict';
  if (typeof exports == 'object' && typeof module == 'object') // CommonJS
    mod(require('../../lib/codemirror'));
  else if (typeof define == 'function' && define.amd) // AMD
    define(['../../lib/codemirror'], mod);
  else // Plain browser env
    mod(window.CodeMirror);
})(function(CodeMirror) {
'use strict';

CodeMirror.defineMode('powershell', function() {
  function buildRegexp(patterns, options) {
    options = options || {};
    var prefix = options.prefix !== undefined ? options.prefix : '^';
    var suffix = options.suffix !== undefined ? options.suffix : '\\b';

    for (var i = 0; i < patterns.length; i++) {
      if (patterns[i] instanceof RegExp) {
        patterns[i] = patterns[i].source;
      }
      else {
        patterns[i] = patterns[i].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
      }
    }

    return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');
  }

  var notCharacterOrDash = '(?=[^A-Za-z\\d\\-_]|$)';
  var varNames = /[\w\-:]/
  var keywords = buildRegexp([
    /begin|break|catch|continue|data|default|do|dynamicparam/,
    /else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,
    /param|process|return|switch|throw|trap|try|until|where|while/
  ], { suffix: notCharacterOrDash });

  var punctuation = /[\[\]{},;`\.]|@[({]/;
  var wordOperators = buildRegexp([
    'f',
    /b?not/,
    /[ic]?split/, 'join',
    /is(not)?/, 'as',
    /[ic]?(eq|ne|[gl][te])/,
    /[ic]?(not)?(like|match|contains)/,
    /[ic]?replace/,
    /b?(and|or|xor)/
  ], { prefix: '-' });
  var symbolOperators = /[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/;
  var operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });

  var numbers = /^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i;

  var identifiers = /^[A-Za-z\_][A-Za-z\-\_\d]*\b/;

  var symbolBuiltins = /[A-Z]:|%|\?/i;
  var namedBuiltins = buildRegexp([
    /Add-(Computer|Content|History|Member|PSSnapin|Type)/,
    /Checkpoint-Computer/,
    /Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,
    /Compare-Object/,
    /Complete-Transaction/,
    /Connect-PSSession/,
    /ConvertFrom-(Csv|Json|SecureString|StringData)/,
    /Convert-Path/,
    /ConvertTo-(Csv|Html|Json|SecureString|Xml)/,
    /Copy-Item(Property)?/,
    /Debug-Process/,
    /Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
    /Disconnect-PSSession/,
    /Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
    /(Enter|Exit)-PSSession/,
    /Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,
    /ForEach-Object/,
    /Format-(Custom|List|Table|Wide)/,
    new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'
      + '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'
      + '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'
      + '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),
    /Group-Object/,
    /Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,
    /ImportSystemModules/,
    /Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,
    /Join-Path/,
    /Limit-EventLog/,
    /Measure-(Command|Object)/,
    /Move-Item(Property)?/,
    new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'
      + '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),
    /Out-(Default|File|GridView|Host|Null|Printer|String)/,
    /Pause/,
    /(Pop|Push)-Location/,
    /Read-Host/,
    /Receive-(Job|PSSession)/,
    /Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,
    /Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,
    /Rename-(Computer|Item(Property)?)/,
    /Reset-ComputerMachinePassword/,
    /Resolve-Path/,
    /Restart-(Computer|Service)/,
    /Restore-Computer/,
    /Resume-(Job|Service)/,
    /Save-Help/,
    /Select-(Object|String|Xml)/,
    /Send-MailMessage/,
    new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +
               '|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),
    /Show-(Command|ControlPanelItem|EventLog)/,
    /Sort-Object/,
    /Split-Path/,
    /Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,
    /Stop-(Computer|Job|Process|Service|Transcript)/,
    /Suspend-(Job|Service)/,
    /TabExpansion2/,
    /Tee-Object/,
    /Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,
    /Trace-Command/,
    /Unblock-File/,
    /Undo-Transaction/,
    /Unregister-(Event|PSSessionConfiguration)/,
    /Update-(FormatData|Help|List|TypeData)/,
    /Use-Transaction/,
    /Wait-(Event|Job|Process)/,
    /Where-Object/,
    /Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,
    /cd|help|mkdir|more|oss|prompt/,
    /ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,
    /echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,
    /group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,
    /measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,
    /rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,
    /sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/
  ], { prefix: '', suffix: '' });
  var variableBuiltins = buildRegexp([
    /[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,
    /FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,
    /MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,
    /PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,
    /PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,
    /WarningPreference|WhatIfPreference/,

    /Event|EventArgs|EventSubscriber|Sender/,
    /Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,
    /true|false|null/
  ], { prefix: '\\$', suffix: '' });

  var builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });

  var grammar = {
    keyword: keywords,
    number: numbers,
    operator: operators,
    builtin: builtins,
    punctuation: punctuation,
    identifier: identifiers
  };

  // tokenizers
  function tokenBase(stream, state) {
    // Handle Comments
    //var ch = stream.peek();

    var parent = state.returnStack[state.returnStack.length - 1];
    if (parent && parent.shouldReturnFrom(state)) {
      state.tokenize = parent.tokenize;
      state.returnStack.pop();
      return state.tokenize(stream, state);
    }

    if (stream.eatSpace()) {
      return null;
    }

    if (stream.eat('(')) {
      state.bracketNesting += 1;
      return 'punctuation';
    }

    if (stream.eat(')')) {
      state.bracketNesting -= 1;
      return 'punctuation';
    }

    for (var key in grammar) {
      if (stream.match(grammar[key])) {
        return key;
      }
    }

    var ch = stream.next();

    // single-quote string
    if (ch === "'") {
      return tokenSingleQuoteString(stream, state);
    }

    if (ch === '$') {
      return tokenVariable(stream, state);
    }

    // double-quote string
    if (ch === '"') {
      return tokenDoubleQuoteString(stream, state);
    }

    if (ch === '<' && stream.eat('#')) {
      state.tokenize = tokenComment;
      return tokenComment(stream, state);
    }

    if (ch === '#') {
      stream.skipToEnd();
      return 'comment';
    }

    if (ch === '@') {
      var quoteMatch = stream.eat(/["']/);
      if (quoteMatch && stream.eol()) {
        state.tokenize = tokenMultiString;
        state.startQuote = quoteMatch[0];
        return tokenMultiString(stream, state);
      } else if (stream.eol()) {
        return 'error';
      } else if (stream.peek().match(/[({]/)) {
        return 'punctuation';
      } else if (stream.peek().match(varNames)) {
        // splatted variable
        return tokenVariable(stream, state);
      }
    }
    return 'error';
  }

  function tokenSingleQuoteString(stream, state) {
    var ch;
    while ((ch = stream.peek()) != null) {
      stream.next();

      if (ch === "'" && !stream.eat("'")) {
        state.tokenize = tokenBase;
        return 'string';
      }
    }

    return 'error';
  }

  function tokenDoubleQuoteString(stream, state) {
    var ch;
    while ((ch = stream.peek()) != null) {
      if (ch === '$') {
        state.tokenize = tokenStringInterpolation;
        return 'string';
      }

      stream.next();
      if (ch === '`') {
        stream.next();
        continue;
      }

      if (ch === '"' && !stream.eat('"')) {
        state.tokenize = tokenBase;
        return 'string';
      }
    }

    return 'error';
  }

  function tokenStringInterpolation(stream, state) {
    return tokenInterpolation(stream, state, tokenDoubleQuoteString);
  }

  function tokenMultiStringReturn(stream, state) {
    state.tokenize = tokenMultiString;
    state.startQuote = '"'
    return tokenMultiString(stream, state);
  }

  function tokenHereStringInterpolation(stream, state) {
    return tokenInterpolation(stream, state, tokenMultiStringReturn);
  }

  function tokenInterpolation(stream, state, parentTokenize) {
    if (stream.match('$(')) {
      var savedBracketNesting = state.bracketNesting;
      state.returnStack.push({
        /*jshint loopfunc:true */
        shouldReturnFrom: function(state) {
          return state.bracketNesting === savedBracketNesting;
        },
        tokenize: parentTokenize
      });
      state.tokenize = tokenBase;
      state.bracketNesting += 1;
      return 'punctuation';
    } else {
      stream.next();
      state.returnStack.push({
        shouldReturnFrom: function() { return true; },
        tokenize: parentTokenize
      });
      state.tokenize = tokenVariable;
      return state.tokenize(stream, state);
    }
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while ((ch = stream.next()) != null) {
      if (maybeEnd && ch == '>') {
          state.tokenize = tokenBase;
          break;
      }
      maybeEnd = (ch === '#');
    }
    return 'comment';
  }

  function tokenVariable(stream, state) {
    var ch = stream.peek();
    if (stream.eat('{')) {
      state.tokenize = tokenVariableWithBraces;
      return tokenVariableWithBraces(stream, state);
    } else if (ch != undefined && ch.match(varNames)) {
      stream.eatWhile(varNames);
      state.tokenize = tokenBase;
      return 'variable-2';
    } else {
      state.tokenize = tokenBase;
      return 'error';
    }
  }

  function tokenVariableWithBraces(stream, state) {
    var ch;
    while ((ch = stream.next()) != null) {
      if (ch === '}') {
        state.tokenize = tokenBase;
        break;
      }
    }
    return 'variable-2';
  }

  function tokenMultiString(stream, state) {
    var quote = state.startQuote;
    if (stream.sol() && stream.match(new RegExp(quote + '@'))) {
      state.tokenize = tokenBase;
    }
    else if (quote === '"') {
      while (!stream.eol()) {
        var ch = stream.peek();
        if (ch === '$') {
          state.tokenize = tokenHereStringInterpolation;
          return 'string';
        }

        stream.next();
        if (ch === '`') {
          stream.next();
        }
      }
    }
    else {
      stream.skipToEnd();
    }

    return 'string';
  }

  var external = {
    startState: function() {
      return {
        returnStack: [],
        bracketNesting: 0,
        tokenize: tokenBase
      };
    },

    token: function(stream, state) {
      return state.tokenize(stream, state);
    },

    blockCommentStart: '<#',
    blockCommentEnd: '#>',
    lineComment: '#',
    fold: 'brace'
  };
  return external;
});

CodeMirror.defineMIME('application/x-powershell', 'powershell');
});
editors/codemirror/mode/julia/julia.min.js000064400000014013152177723720014652 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("julia",(function(a,b){function c(a,b){return"undefined"==typeof b&&(b="\\b"),new RegExp("^(("+a.join(")|(")+"))"+b)}function d(a){return e(a,"[")}function e(a,b,c){"undefined"==typeof b&&(b="("),"undefined"==typeof c&&(c=0);var d=f(a,c);return!!(0==c&&"if"===d&&e(a,b,c+1)||"for"===d&&e(a,b,c+1)||d===b)}function f(a,b){return"undefined"==typeof b&&(b=0),a.scopes.length<=b?null:a.scopes[a.scopes.length-(b+1)]}function g(a,b){if(a.match(/^#=/,!1))return b.tokenize=j,b.tokenize(a,b);var c=b.leavingExpr;if(a.sol()&&(c=!1),b.leavingExpr=!1,c&&a.match(/^'+/))return"operator";if(a.match(/\.{4,}/))return"error";if(a.match(/\.{1,3}/))return"operator";if(a.eatSpace())return null;var g=a.peek();if("#"===g)return a.skipToEnd(),"comment";if("["===g&&b.scopes.push("["),"("===g&&b.scopes.push("("),d(b)&&"]"===g){for("if"===f(b)&&b.scopes.pop();"for"===f(b);)b.scopes.pop();b.scopes.pop(),b.leavingExpr=!0}if(e(b)&&")"===g){for("if"===f(b)&&b.scopes.pop();"for"===f(b);)b.scopes.pop();b.scopes.pop(),b.leavingExpr=!0}if(d(b)){if("end"==b.lastToken&&a.match(/^:/))return"operator";if(a.match(/^end/))return"number"}var m;if(m=a.match(u))return b.scopes.push(m[0]),"keyword";if(a.match(v))return b.scopes.pop(),"keyword";if(a.match(/^::(?![:\$])/))return b.tokenize=i,b.tokenize(a,b);if(!c&&a.match(z)||a.match(/:([<>]:|<<=?|>>>?=?|->|\/\/|\.{2,3}|[\.\\%*+\-<>!\/^|&]=?|[~\?\$])/))return"builtin";if(a.match(q))return"operator";if(a.match(/^\.?\d/,!1)){var n=RegExp(/^im\b/),o=!1;if(a.match(/^\d*\.(?!\.)\d*([Eef][\+\-]?\d+)?/i)&&(o=!0),a.match(/^\d+\.(?!\.)\d*/)&&(o=!0),a.match(/^\.\d+/)&&(o=!0),a.match(/^0x\.[0-9a-f]+p[\+\-]?\d+/i)&&(o=!0),a.match(/^0x[0-9a-f]+/i)&&(o=!0),a.match(/^0b[01]+/i)&&(o=!0),a.match(/^0o[0-7]+/i)&&(o=!0),a.match(/^[1-9]\d*(e[\+\-]?\d+)?/)&&(o=!0),a.match(/^0(?![\dx])/i)&&(o=!0),o)return a.match(n),b.leavingExpr=!0,"number"}if(a.match(/^'/))return b.tokenize=k,b.tokenize(a,b);if(a.match(A))return b.tokenize=l(a.current()),b.tokenize(a,b);if(a.match(y))return"meta";if(a.match(r))return null;if(a.match(w))return"keyword";if(a.match(x))return"builtin";var p=b.isDefinition||"function"==b.lastToken||"macro"==b.lastToken||"type"==b.lastToken||"struct"==b.lastToken||"immutable"==b.lastToken;return a.match(s)?p?"."===a.peek()?(b.isDefinition=!0,"variable"):(b.isDefinition=!1,"def"):a.match(/^({[^}]*})*\(/,!1)?(b.tokenize=h,b.tokenize(a,b)):(b.leavingExpr=!0,"variable"):(a.next(),"error")}function h(a,b){var c=a.match(/^(\(\s*)/);if(c&&(b.firstParenPos<0&&(b.firstParenPos=b.scopes.length),b.scopes.push("("),b.charsAdvanced+=c[1].length),"("==f(b)&&a.match(/^\)/)&&(b.scopes.pop(),b.charsAdvanced+=1,b.scopes.length<=b.firstParenPos)){var d=a.match(/^(\s*where\s+[^\s=]+)*\s*?=(?!=)/,!1);return a.backUp(b.charsAdvanced),b.firstParenPos=-1,b.charsAdvanced=0,b.tokenize=g,d?"def":"builtin"}if(a.match(/^$/g,!1)){for(a.backUp(b.charsAdvanced);b.scopes.length>b.firstParenPos;)b.scopes.pop();return b.firstParenPos=-1,b.charsAdvanced=0,b.tokenize=g,"builtin"}return b.charsAdvanced+=a.match(/^([^()]*)/)[1].length,b.tokenize(a,b)}function i(a,b){return a.match(/.*?(?=,|;|{|}|\(|\)|=|$|\s)/),a.match(/^{/)?b.nestedLevels++:a.match(/^}/)&&b.nestedLevels--,b.nestedLevels>0?a.match(/.*?(?={|})/)||a.next():0==b.nestedLevels&&(b.tokenize=g),"builtin"}function j(a,b){return a.match(/^#=/)&&b.nestedLevels++,a.match(/.*?(?=(#=|=#))/)||a.skipToEnd(),a.match(/^=#/)&&(b.nestedLevels--,0==b.nestedLevels&&(b.tokenize=g)),"comment"}function k(a,b){var c,d=!1;if(a.match(t))d=!0;else if(c=a.match(/\\u([a-f0-9]{1,4})(?=')/i)){var e=parseInt(c[1],16);(e<=55295||e>=57344)&&(d=!0,a.next())}else if(c=a.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var e=parseInt(c[1],16);e<=1114111&&(d=!0,a.next())}return d?(b.leavingExpr=!0,b.tokenize=g,"string"):(a.match(/^[^']+(?=')/)||a.skipToEnd(),a.match(/^'/)&&(b.tokenize=g),"error")}function l(a){function b(b,c){if(b.eat("\\"))b.next();else{if(b.match(a))return c.tokenize=g,c.leavingExpr=!0,"string";b.eat(/[`"]/)}return b.eatWhile(/[^\\`"]/),"string"}return'"""'===a.substr(-3)?a='"""':'"'===a.substr(-1)&&(a='"'),b}var m="\\\\[0-7]{1,3}",n="\\\\x[A-Fa-f0-9]{1,2}",o="\\\\[abefnrtv0%?'\"\\\\]",p="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",q=b.operators||c(["[<>]:","[<>=]=","<<=?",">>>?=?","=>","->","\\/\\/","[\\\\%*+\\-<>!=\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),r=b.delimiters||/^[;,()[\]{}]/,s=b.identifiers||/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,t=c([m,n,o,p],"'"),u=c(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),v=c(["end","else","elseif","catch","finally"]),w=c(["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"]),x=c(["true","false","nothing","NaN","Inf"]),y=/^@[_A-Za-z][\w]*/,z=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,A=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,B={startState:function(){return{tokenize:g,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedLevels:0,charsAdvanced:0,firstParenPos:-1}},token:function(a,b){var c=b.tokenize(a,b),d=a.current();return d&&c&&(b.lastToken=d),c},indent:function(b,c){var d=0;return"]"!==c&&")"!==c&&"end"!==c&&"else"!==c&&"catch"!==c&&"elseif"!==c&&"finally"!==c||(d=-1),(b.scopes.length+d)*a.indentUnit},electricInput:/\b(end|else|catch|finally)\b/,blockCommentStart:"#=",blockCommentEnd:"=#",lineComment:"#",fold:"indent"};return B})),a.defineMIME("text/x-julia","julia")}));editors/codemirror/mode/julia/julia.js000064400000030516152177723720014076 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("julia", function(config, parserConf) {
  function wordRegexp(words, end) {
    if (typeof end === "undefined") { end = "\\b"; }
    return new RegExp("^((" + words.join(")|(") + "))" + end);
  }

  var octChar = "\\\\[0-7]{1,3}";
  var hexChar = "\\\\x[A-Fa-f0-9]{1,2}";
  var sChar = "\\\\[abefnrtv0%?'\"\\\\]";
  var uChar = "([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])";

  var operators = parserConf.operators || wordRegexp([
      "[<>]:", "[<>=]=", "<<=?", ">>>?=?", "=>", "->", "\\/\\/",
      "[\\\\%*+\\-<>!=\\/^|&\\u00F7\\u22BB]=?", "\\?", "\\$", "~", ":",
      "\\u00D7", "\\u2208", "\\u2209", "\\u220B", "\\u220C", "\\u2218",
      "\\u221A", "\\u221B", "\\u2229", "\\u222A", "\\u2260", "\\u2264",
      "\\u2265", "\\u2286", "\\u2288", "\\u228A", "\\u22C5",
      "\\b(in|isa)\\b(?!\.?\\()"], "");
  var delimiters = parserConf.delimiters || /^[;,()[\]{}]/;
  var identifiers = parserConf.identifiers ||
      /^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/;

  var chars = wordRegexp([octChar, hexChar, sChar, uChar], "'");
  var openers = wordRegexp(["begin", "function", "type", "struct", "immutable",
      "let", "macro", "for", "while", "quote", "if", "else", "elseif", "try",
      "finally", "catch", "do"]);
  var closers = wordRegexp(["end", "else", "elseif", "catch", "finally"]);
  var keywords = wordRegexp(["if", "else", "elseif", "while", "for", "begin",
      "let", "end", "do", "try", "catch", "finally", "return", "break",
      "continue", "global", "local", "const", "export", "import", "importall",
      "using", "function", "where", "macro", "module", "baremodule", "struct",
      "type", "mutable", "immutable", "quote", "typealias", "abstract",
      "primitive", "bitstype"]);
  var builtins = wordRegexp(["true", "false", "nothing", "NaN", "Inf"]);

  var macro = /^@[_A-Za-z][\w]*/;
  var symbol = /^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/;
  var stringPrefixes = /^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/;

  function inArray(state) {
    return inGenerator(state, '[')
  }

  function inGenerator(state, bracket, depth) {
    if (typeof(bracket) === "undefined") { bracket = '('; }
    if (typeof(depth)   === "undefined") { depth   = 0;   }
    var scope = currentScope(state, depth);
    if ((depth == 0 && scope === "if" && inGenerator(state, bracket, depth + 1)) ||
        (scope === "for" && inGenerator(state, bracket, depth + 1)) ||
        (scope === bracket)) {
      return true;
    }
    return false;
  }

  function currentScope(state, n) {
    if (typeof(n) === "undefined") { n = 0; }
    if (state.scopes.length <= n) {
      return null;
    }
    return state.scopes[state.scopes.length - (n + 1)];
  }

  // tokenizers
  function tokenBase(stream, state) {
    // Handle multiline comments
    if (stream.match(/^#=/, false)) {
      state.tokenize = tokenComment;
      return state.tokenize(stream, state);
    }

    // Handle scope changes
    var leavingExpr = state.leavingExpr;
    if (stream.sol()) {
      leavingExpr = false;
    }
    state.leavingExpr = false;

    if (leavingExpr) {
      if (stream.match(/^'+/)) {
        return "operator";
      }
    }

    if (stream.match(/\.{4,}/)) {
      return "error";
    } else if (stream.match(/\.{1,3}/)) {
      return "operator";
    }

    if (stream.eatSpace()) {
      return null;
    }

    var ch = stream.peek();

    // Handle single line comments
    if (ch === '#') {
      stream.skipToEnd();
      return "comment";
    }

    if (ch === '[') {
      state.scopes.push('[');
    }

    if (ch === '(') {
      state.scopes.push('(');
    }

    if (inArray(state) && ch === ']') {
      if (currentScope(state) === "if") { state.scopes.pop(); }
      while (currentScope(state) === "for") { state.scopes.pop(); }
      state.scopes.pop();
      state.leavingExpr = true;
    }

    if (inGenerator(state) && ch === ')') {
      if (currentScope(state) === "if") { state.scopes.pop(); }
      while (currentScope(state) === "for") { state.scopes.pop(); }
      state.scopes.pop();
      state.leavingExpr = true;
    }

    if (inArray(state)) {
      if (state.lastToken == "end" && stream.match(/^:/)) {
        return "operator";
      }
      if (stream.match(/^end/)) {
        return "number";
      }
    }

    var match;
    if (match = stream.match(openers)) {
      state.scopes.push(match[0]);
      return "keyword";
    }

    if (stream.match(closers)) {
      state.scopes.pop();
      return "keyword";
    }

    // Handle type annotations
    if (stream.match(/^::(?![:\$])/)) {
      state.tokenize = tokenAnnotation;
      return state.tokenize(stream, state);
    }

    // Handle symbols
    if (!leavingExpr && stream.match(symbol) ||
        stream.match(/:([<>]:|<<=?|>>>?=?|->|\/\/|\.{2,3}|[\.\\%*+\-<>!\/^|&]=?|[~\?\$])/)) {
      return "builtin";
    }

    // Handle parametric types
    //if (stream.match(/^{[^}]*}(?=\()/)) {
    //  return "builtin";
    //}

    // Handle operators and Delimiters
    if (stream.match(operators)) {
      return "operator";
    }

    // Handle Number Literals
    if (stream.match(/^\.?\d/, false)) {
      var imMatcher = RegExp(/^im\b/);
      var numberLiteral = false;
      // Floats
      if (stream.match(/^\d*\.(?!\.)\d*([Eef][\+\-]?\d+)?/i)) { numberLiteral = true; }
      if (stream.match(/^\d+\.(?!\.)\d*/)) { numberLiteral = true; }
      if (stream.match(/^\.\d+/)) { numberLiteral = true; }
      if (stream.match(/^0x\.[0-9a-f]+p[\+\-]?\d+/i)) { numberLiteral = true; }
      // Integers
      if (stream.match(/^0x[0-9a-f]+/i)) { numberLiteral = true; } // Hex
      if (stream.match(/^0b[01]+/i)) { numberLiteral = true; } // Binary
      if (stream.match(/^0o[0-7]+/i)) { numberLiteral = true; } // Octal
      if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { numberLiteral = true; } // Decimal
      // Zero by itself with no other piece of number.
      if (stream.match(/^0(?![\dx])/i)) { numberLiteral = true; }
      if (numberLiteral) {
          // Integer literals may be "long"
          stream.match(imMatcher);
          state.leavingExpr = true;
          return "number";
      }
    }

    // Handle Chars
    if (stream.match(/^'/)) {
      state.tokenize = tokenChar;
      return state.tokenize(stream, state);
    }

    // Handle Strings
    if (stream.match(stringPrefixes)) {
      state.tokenize = tokenStringFactory(stream.current());
      return state.tokenize(stream, state);
    }

    if (stream.match(macro)) {
      return "meta";
    }

    if (stream.match(delimiters)) {
      return null;
    }

    if (stream.match(keywords)) {
      return "keyword";
    }

    if (stream.match(builtins)) {
      return "builtin";
    }

    var isDefinition = state.isDefinition || state.lastToken == "function" ||
                       state.lastToken == "macro" || state.lastToken == "type" ||
                       state.lastToken == "struct" || state.lastToken == "immutable";

    if (stream.match(identifiers)) {
      if (isDefinition) {
        if (stream.peek() === '.') {
          state.isDefinition = true;
          return "variable";
        }
        state.isDefinition = false;
        return "def";
      }
      if (stream.match(/^({[^}]*})*\(/, false)) {
        state.tokenize = tokenCallOrDef;
        return state.tokenize(stream, state);
      }
      state.leavingExpr = true;
      return "variable";
    }

    // Handle non-detected items
    stream.next();
    return "error";
  }

  function tokenCallOrDef(stream, state) {
    var match = stream.match(/^(\(\s*)/);
    if (match) {
      if (state.firstParenPos < 0)
        state.firstParenPos = state.scopes.length;
      state.scopes.push('(');
      state.charsAdvanced += match[1].length;
    }
    if (currentScope(state) == '(' && stream.match(/^\)/)) {
      state.scopes.pop();
      state.charsAdvanced += 1;
      if (state.scopes.length <= state.firstParenPos) {
        var isDefinition = stream.match(/^(\s*where\s+[^\s=]+)*\s*?=(?!=)/, false);
        stream.backUp(state.charsAdvanced);
        state.firstParenPos = -1;
        state.charsAdvanced = 0;
        state.tokenize = tokenBase;
        if (isDefinition)
          return "def";
        return "builtin";
      }
    }
    // Unfortunately javascript does not support multiline strings, so we have
    // to undo anything done upto here if a function call or definition splits
    // over two or more lines.
    if (stream.match(/^$/g, false)) {
      stream.backUp(state.charsAdvanced);
      while (state.scopes.length > state.firstParenPos)
        state.scopes.pop();
      state.firstParenPos = -1;
      state.charsAdvanced = 0;
      state.tokenize = tokenBase;
      return "builtin";
    }
    state.charsAdvanced += stream.match(/^([^()]*)/)[1].length;
    return state.tokenize(stream, state);
  }

  function tokenAnnotation(stream, state) {
    stream.match(/.*?(?=,|;|{|}|\(|\)|=|$|\s)/);
    if (stream.match(/^{/)) {
      state.nestedLevels++;
    } else if (stream.match(/^}/)) {
      state.nestedLevels--;
    }
    if (state.nestedLevels > 0) {
      stream.match(/.*?(?={|})/) || stream.next();
    } else if (state.nestedLevels == 0) {
      state.tokenize = tokenBase;
    }
    return "builtin";
  }

  function tokenComment(stream, state) {
    if (stream.match(/^#=/)) {
      state.nestedLevels++;
    }
    if (!stream.match(/.*?(?=(#=|=#))/)) {
      stream.skipToEnd();
    }
    if (stream.match(/^=#/)) {
      state.nestedLevels--;
      if (state.nestedLevels == 0)
        state.tokenize = tokenBase;
    }
    return "comment";
  }

  function tokenChar(stream, state) {
    var isChar = false, match;
    if (stream.match(chars)) {
      isChar = true;
    } else if (match = stream.match(/\\u([a-f0-9]{1,4})(?=')/i)) {
      var value = parseInt(match[1], 16);
      if (value <= 55295 || value >= 57344) { // (U+0,U+D7FF), (U+E000,U+FFFF)
        isChar = true;
        stream.next();
      }
    } else if (match = stream.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)) {
      var value = parseInt(match[1], 16);
      if (value <= 1114111) { // U+10FFFF
        isChar = true;
        stream.next();
      }
    }
    if (isChar) {
      state.leavingExpr = true;
      state.tokenize = tokenBase;
      return "string";
    }
    if (!stream.match(/^[^']+(?=')/)) { stream.skipToEnd(); }
    if (stream.match(/^'/)) { state.tokenize = tokenBase; }
    return "error";
  }

  function tokenStringFactory(delimiter) {
    if (delimiter.substr(-3) === '"""') {
      delimiter = '"""';
    } else if (delimiter.substr(-1) === '"') {
      delimiter = '"';
    }
    function tokenString(stream, state) {
      if (stream.eat('\\')) {
        stream.next();
      } else if (stream.match(delimiter)) {
        state.tokenize = tokenBase;
        state.leavingExpr = true;
        return "string";
      } else {
        stream.eat(/[`"]/);
      }
      stream.eatWhile(/[^\\`"]/);
      return "string";
    }
    return tokenString;
  }

  var external = {
    startState: function() {
      return {
        tokenize: tokenBase,
        scopes: [],
        lastToken: null,
        leavingExpr: false,
        isDefinition: false,
        nestedLevels: 0,
        charsAdvanced: 0,
        firstParenPos: -1
      };
    },

    token: function(stream, state) {
      var style = state.tokenize(stream, state);
      var current = stream.current();

      if (current && style) {
        state.lastToken = current;
      }

      return style;
    },

    indent: function(state, textAfter) {
      var delta = 0;
      if ( textAfter === ']' || textAfter === ')' || textAfter === "end" ||
           textAfter === "else" || textAfter === "catch" || textAfter === "elseif" ||
           textAfter === "finally" ) {
        delta = -1;
      }
      return (state.scopes.length + delta) * config.indentUnit;
    },

    electricInput: /\b(end|else|catch|finally)\b/,
    blockCommentStart: "#=",
    blockCommentEnd: "=#",
    lineComment: "#",
    fold: "indent"
  };
  return external;
});


CodeMirror.defineMIME("text/x-julia", "julia");

});
editors/codemirror/mode/vb/vb.min.js000064400000006221152177723720013462 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("vb",(function(b,c){function d(a){return new RegExp("^(("+a.join(")|(")+"))\\b","i")}function e(a,b){b.currentIndent++}function f(a,b){b.currentIndent--}function g(a,b){if(a.eatSpace())return null;var c=a.peek();if("'"===c)return a.skipToEnd(),"comment";if(a.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var d=!1;if(a.match(/^\d*\.\d+F?/i)?d=!0:a.match(/^\d+\.\d*F?/)?d=!0:a.match(/^\.\d+F?/)&&(d=!0),d)return a.eat(/J/i),"number";var g=!1;if(a.match(/^&H[0-9a-f]+/i)?g=!0:a.match(/^&O[0-7]+/i)?g=!0:a.match(/^[1-9]\d*F?/)?(a.eat(/J/i),g=!0):a.match(/^0(?![\dx])/i)&&(g=!0),g)return a.eat(/L/i),"number"}return a.match(z)?(b.tokenize=h(a.current()),b.tokenize(a,b)):a.match(o)||a.match(n)?null:a.match(m)||a.match(k)||a.match(u)?"operator":a.match(l)?null:a.match(E)?(e(a,b),b.doInCurrentLine=!0,"keyword"):a.match(A)?(b.doInCurrentLine?b.doInCurrentLine=!1:e(a,b),"keyword"):a.match(B)?"keyword":a.match(D)?(f(a,b),f(a,b),"keyword"):a.match(C)?(f(a,b),"keyword"):a.match(y)?"keyword":a.match(x)?"keyword":a.match(p)?"variable":(a.next(),j)}function h(a){var b=1==a.length,d="string";return function(e,f){for(;!e.eol();){if(e.eatWhile(/[^'"]/),e.match(a))return f.tokenize=g,d;e.eat(/['"]/)}if(b){if(c.singleLineStringErrors)return j;f.tokenize=g}return d}}function i(a,b){var c=b.tokenize(a,b),d=a.current();if("."===d)return c=b.tokenize(a,b),"variable"===c?"variable":j;var g="[({".indexOf(d);return g!==-1&&e(a,b),"dedent"===F&&f(a,b)?j:(g="])}".indexOf(d),g!==-1&&f(a,b)?j:c)}var j="error",k=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),l=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),m=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),n=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),o=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),p=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),q=["class","module","sub","enum","select","while","if","function","get","set","property","try"],r=["else","elseif","case","catch"],s=["next","loop"],t=["and","or","not","xor","in"],u=d(t),v=["as","dim","break","continue","optional","then","until","goto","byval","byref","new","handles","property","return","const","private","protected","friend","public","shared","static","true","false"],w=["integer","string","double","decimal","boolean","short","char","float","single"],x=d(v),y=d(w),z='"',A=d(q),B=d(r),C=d(s),D=d(["end"]),E=d(["do"]),F=null;a.registerHelper("hintWords","vb",q.concat(r).concat(s).concat(t).concat(v).concat(w));var G={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:g,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(a,b){a.sol()&&(b.currentIndent+=b.nextLineIndent,b.nextLineIndent=0,b.doInCurrentLine=0);var c=i(a,b);return b.lastToken={style:c,content:a.current()},c},indent:function(a,c){var d=c.replace(/^\s+|\s+$/g,"");return d.match(C)||d.match(D)||d.match(B)?b.indentUnit*(a.currentIndent-1):a.currentIndent<0?0:a.currentIndent*b.indentUnit},lineComment:"'"};return G})),a.defineMIME("text/x-vb","vb")}));editors/codemirror/mode/vb/vb.js000064400000021037152177723720012702 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("vb", function(conf, parserConf) {
    var ERRORCLASS = 'error';

    function wordRegexp(words) {
        return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
    }

    var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]");
    var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]');
    var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
    var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
    var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
    var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*");

    var openingKeywords = ['class','module', 'sub','enum','select','while','if','function',  'get','set','property', 'try'];
    var middleKeywords = ['else','elseif','case', 'catch'];
    var endKeywords = ['next','loop'];

    var operatorKeywords = ['and', 'or', 'not', 'xor', 'in'];
    var wordOperators = wordRegexp(operatorKeywords);
    var commonKeywords = ['as', 'dim', 'break',  'continue','optional', 'then',  'until',
                          'goto', 'byval','byref','new','handles','property', 'return',
                          'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false'];
    var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single'];

    var keywords = wordRegexp(commonKeywords);
    var types = wordRegexp(commontypes);
    var stringPrefixes = '"';

    var opening = wordRegexp(openingKeywords);
    var middle = wordRegexp(middleKeywords);
    var closing = wordRegexp(endKeywords);
    var doubleClosing = wordRegexp(['end']);
    var doOpening = wordRegexp(['do']);

    var indentInfo = null;

    CodeMirror.registerHelper("hintWords", "vb", openingKeywords.concat(middleKeywords).concat(endKeywords)
                                .concat(operatorKeywords).concat(commonKeywords).concat(commontypes));

    function indent(_stream, state) {
      state.currentIndent++;
    }

    function dedent(_stream, state) {
      state.currentIndent--;
    }
    // tokenizers
    function tokenBase(stream, state) {
        if (stream.eatSpace()) {
            return null;
        }

        var ch = stream.peek();

        // Handle Comments
        if (ch === "'") {
            stream.skipToEnd();
            return 'comment';
        }


        // Handle Number Literals
        if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) {
            var floatLiteral = false;
            // Floats
            if (stream.match(/^\d*\.\d+F?/i)) { floatLiteral = true; }
            else if (stream.match(/^\d+\.\d*F?/)) { floatLiteral = true; }
            else if (stream.match(/^\.\d+F?/)) { floatLiteral = true; }

            if (floatLiteral) {
                // Float literals may be "imaginary"
                stream.eat(/J/i);
                return 'number';
            }
            // Integers
            var intLiteral = false;
            // Hex
            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }
            // Octal
            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }
            // Decimal
            else if (stream.match(/^[1-9]\d*F?/)) {
                // Decimal literals may be "imaginary"
                stream.eat(/J/i);
                // TODO - Can you have imaginary longs?
                intLiteral = true;
            }
            // Zero by itself with no other piece of number.
            else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
            if (intLiteral) {
                // Integer literals may be "long"
                stream.eat(/L/i);
                return 'number';
            }
        }

        // Handle Strings
        if (stream.match(stringPrefixes)) {
            state.tokenize = tokenStringFactory(stream.current());
            return state.tokenize(stream, state);
        }

        // Handle operators and Delimiters
        if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {
            return null;
        }
        if (stream.match(doubleOperators)
            || stream.match(singleOperators)
            || stream.match(wordOperators)) {
            return 'operator';
        }
        if (stream.match(singleDelimiters)) {
            return null;
        }
        if (stream.match(doOpening)) {
            indent(stream,state);
            state.doInCurrentLine = true;
            return 'keyword';
        }
        if (stream.match(opening)) {
            if (! state.doInCurrentLine)
              indent(stream,state);
            else
              state.doInCurrentLine = false;
            return 'keyword';
        }
        if (stream.match(middle)) {
            return 'keyword';
        }

        if (stream.match(doubleClosing)) {
            dedent(stream,state);
            dedent(stream,state);
            return 'keyword';
        }
        if (stream.match(closing)) {
            dedent(stream,state);
            return 'keyword';
        }

        if (stream.match(types)) {
            return 'keyword';
        }

        if (stream.match(keywords)) {
            return 'keyword';
        }

        if (stream.match(identifiers)) {
            return 'variable';
        }

        // Handle non-detected items
        stream.next();
        return ERRORCLASS;
    }

    function tokenStringFactory(delimiter) {
        var singleline = delimiter.length == 1;
        var OUTCLASS = 'string';

        return function(stream, state) {
            while (!stream.eol()) {
                stream.eatWhile(/[^'"]/);
                if (stream.match(delimiter)) {
                    state.tokenize = tokenBase;
                    return OUTCLASS;
                } else {
                    stream.eat(/['"]/);
                }
            }
            if (singleline) {
                if (parserConf.singleLineStringErrors) {
                    return ERRORCLASS;
                } else {
                    state.tokenize = tokenBase;
                }
            }
            return OUTCLASS;
        };
    }


    function tokenLexer(stream, state) {
        var style = state.tokenize(stream, state);
        var current = stream.current();

        // Handle '.' connected identifiers
        if (current === '.') {
            style = state.tokenize(stream, state);
            if (style === 'variable') {
                return 'variable';
            } else {
                return ERRORCLASS;
            }
        }


        var delimiter_index = '[({'.indexOf(current);
        if (delimiter_index !== -1) {
            indent(stream, state );
        }
        if (indentInfo === 'dedent') {
            if (dedent(stream, state)) {
                return ERRORCLASS;
            }
        }
        delimiter_index = '])}'.indexOf(current);
        if (delimiter_index !== -1) {
            if (dedent(stream, state)) {
                return ERRORCLASS;
            }
        }

        return style;
    }

    var external = {
        electricChars:"dDpPtTfFeE ",
        startState: function() {
            return {
              tokenize: tokenBase,
              lastToken: null,
              currentIndent: 0,
              nextLineIndent: 0,
              doInCurrentLine: false


          };
        },

        token: function(stream, state) {
            if (stream.sol()) {
              state.currentIndent += state.nextLineIndent;
              state.nextLineIndent = 0;
              state.doInCurrentLine = 0;
            }
            var style = tokenLexer(stream, state);

            state.lastToken = {style:style, content: stream.current()};



            return style;
        },

        indent: function(state, textAfter) {
            var trueText = textAfter.replace(/^\s+|\s+$/g, '') ;
            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);
            if(state.currentIndent < 0) return 0;
            return state.currentIndent * conf.indentUnit;
        },

        lineComment: "'"
    };
    return external;
});

CodeMirror.defineMIME("text/x-vb", "vb");

});
editors/codemirror/mode/elm/elm.min.js000064400000004204152177723720013775 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("elm",(function(){function a(a,b,c){return b(c),c(a,b)}function b(){return function(b,e){if(b.eatWhile(n))return null;var o=b.next();if(m.test(o)){if("{"==o&&b.eat("-")){var p="comment";return b.eat("#")&&(p="meta"),a(b,e,c(p,1))}return null}if("'"==o)return b.eat("\\")?b.next():b.next(),b.eat("'")?"string":"error";if('"'==o)return a(b,e,d);if(g.test(o))return b.eatWhile(k),b.eat(".")?"qualifier":"variable-2";if(f.test(o)){var q=1===b.pos;return b.eatWhile(k),q?"type":"variable"}if(h.test(o)){if("0"==o){if(b.eat(/[xX]/))return b.eatWhile(i),"integer";if(b.eat(/[oO]/))return b.eatWhile(j),"number"}b.eatWhile(h);var p="number";return b.eat(".")&&(p="number",b.eatWhile(h)),b.eat(/[eE]/)&&(p="number",b.eat(/[-+]/),b.eatWhile(h)),p}return l.test(o)?"-"==o&&b.eat(/-/)&&(b.eatWhile(/-/),!b.eat(l))?(b.skipToEnd(),"comment"):(b.eatWhile(l),"builtin"):"error"}}function c(a,d){return 0==d?b():function(e,f){for(var g=d;!e.eol();){var h=e.next();if("{"==h&&e.eat("-"))++g;else if("-"==h&&e.eat("}")&&(--g,0==g))return f(b()),a}return f(c(a,g)),a}}function d(a,c){for(;!a.eol();){var d=a.next();if('"'==d)return c(b()),"string";if("\\"==d){if(a.eol()||a.eat(n))return c(e),"string";a.eat("&")||a.next()}}return c(b()),"error"}function e(c,e){return c.eat("\\")?a(c,e,d):(c.next(),e(b()),"error")}var f=/[a-z_]/,g=/[A-Z]/,h=/[0-9]/,i=/[0-9A-Fa-f]/,j=/[0-7]/,k=/[a-z_A-Z0-9\']/,l=/[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]/,m=/[(),;[\]`{}]/,n=/[ \t\v\f]/,o=(function(){for(var a={},b=["case","of","as","if","then","else","let","in","infix","infixl","infixr","type","alias","input","output","foreign","loopback","module","where","import","exposing","_","..","|",":","=","\\",'"',"->","<-"],c=b.length;c--;)a[b[c]]="keyword";return a})();return{startState:function(){return{f:b()}},copyState:function(a){return{f:a.f}},token:function(a,b){var c=b.f(a,(function(a){b.f=a})),d=a.current();return o.hasOwnProperty(d)?o[d]:c}}})),a.defineMIME("text/x-elm","elm")}));editors/codemirror/mode/elm/elm.js000064400000012653152177723720013222 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("elm", function() {

    function switchState(source, setState, f) {
      setState(f);
      return f(source, setState);
    }

    // These should all be Unicode extended, as per the Haskell 2010 report
    var smallRE = /[a-z_]/;
    var largeRE = /[A-Z]/;
    var digitRE = /[0-9]/;
    var hexitRE = /[0-9A-Fa-f]/;
    var octitRE = /[0-7]/;
    var idRE = /[a-z_A-Z0-9\']/;
    var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]/;
    var specialRE = /[(),;[\]`{}]/;
    var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer

    function normal() {
      return function (source, setState) {
        if (source.eatWhile(whiteCharRE)) {
          return null;
        }

        var ch = source.next();
        if (specialRE.test(ch)) {
          if (ch == '{' && source.eat('-')) {
            var t = "comment";
            if (source.eat('#')) t = "meta";
            return switchState(source, setState, ncomment(t, 1));
          }
          return null;
        }

        if (ch == '\'') {
          if (source.eat('\\'))
            source.next();  // should handle other escapes here
          else
            source.next();

          if (source.eat('\''))
            return "string";
          return "error";
        }

        if (ch == '"') {
          return switchState(source, setState, stringLiteral);
        }

        if (largeRE.test(ch)) {
          source.eatWhile(idRE);
          if (source.eat('.'))
            return "qualifier";
          return "variable-2";
        }

        if (smallRE.test(ch)) {
          var isDef = source.pos === 1;
          source.eatWhile(idRE);
          return isDef ? "type" : "variable";
        }

        if (digitRE.test(ch)) {
          if (ch == '0') {
            if (source.eat(/[xX]/)) {
              source.eatWhile(hexitRE); // should require at least 1
              return "integer";
            }
            if (source.eat(/[oO]/)) {
              source.eatWhile(octitRE); // should require at least 1
              return "number";
            }
          }
          source.eatWhile(digitRE);
          var t = "number";
          if (source.eat('.')) {
            t = "number";
            source.eatWhile(digitRE); // should require at least 1
          }
          if (source.eat(/[eE]/)) {
            t = "number";
            source.eat(/[-+]/);
            source.eatWhile(digitRE); // should require at least 1
          }
          return t;
        }

        if (symbolRE.test(ch)) {
          if (ch == '-' && source.eat(/-/)) {
            source.eatWhile(/-/);
            if (!source.eat(symbolRE)) {
              source.skipToEnd();
              return "comment";
            }
          }
          source.eatWhile(symbolRE);
          return "builtin";
        }

        return "error";
      }
    }

    function ncomment(type, nest) {
      if (nest == 0) {
        return normal();
      }
      return function(source, setState) {
        var currNest = nest;
        while (!source.eol()) {
          var ch = source.next();
          if (ch == '{' && source.eat('-')) {
            ++currNest;
          } else if (ch == '-' && source.eat('}')) {
            --currNest;
            if (currNest == 0) {
              setState(normal());
              return type;
            }
          }
        }
        setState(ncomment(type, currNest));
        return type;
      }
    }

    function stringLiteral(source, setState) {
      while (!source.eol()) {
        var ch = source.next();
        if (ch == '"') {
          setState(normal());
          return "string";
        }
        if (ch == '\\') {
          if (source.eol() || source.eat(whiteCharRE)) {
            setState(stringGap);
            return "string";
          }
          if (!source.eat('&')) source.next(); // should handle other escapes here
        }
      }
      setState(normal());
      return "error";
    }

    function stringGap(source, setState) {
      if (source.eat('\\')) {
        return switchState(source, setState, stringLiteral);
      }
      source.next();
      setState(normal());
      return "error";
    }


    var wellKnownWords = (function() {
      var wkw = {};

      var keywords = [
        "case", "of", "as",
        "if", "then", "else",
        "let", "in",
        "infix", "infixl", "infixr",
        "type", "alias",
        "input", "output", "foreign", "loopback",
        "module", "where", "import", "exposing",
        "_", "..", "|", ":", "=", "\\", "\"", "->", "<-"
      ];

      for (var i = keywords.length; i--;)
        wkw[keywords[i]] = "keyword";

      return wkw;
    })();



    return {
      startState: function ()  { return { f: normal() }; },
      copyState:  function (s) { return { f: s.f }; },

      token: function(stream, state) {
        var t = state.f(stream, function(s) { state.f = s; });
        var w = stream.current();
        return (wellKnownWords.hasOwnProperty(w)) ? wellKnownWords[w] : t;
      }
    };

  });

  CodeMirror.defineMIME("text/x-elm", "elm");
});
editors/codemirror/mode/php/php.min.js000064400000033171152177723720014026 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b,e){return 0==a.length?d(b):function(f,g){for(var h=a[0],i=0;i<h.length;i++)if(f.match(h[i][0]))return g.tokenize=c(a.slice(1),b),h[i][1];return g.tokenize=d(b,e),"string"}}function d(a,b){return function(c,d){return e(c,d,a,b)}}function e(a,b,d,e){if(e!==!1&&a.match("${",!1)||a.match("{$",!1))return b.tokenize=null,"string";if(e!==!1&&a.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return a.match("[",!1)&&(b.tokenize=c([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],d,e)),a.match(/\-\>\w/,!1)&&(b.tokenize=c([[["->",null]],[[/[\w]+/,"variable"]]],d,e)),"variable-2";for(var f=!1;!a.eol()&&(f||e===!1||!a.match("{$",!1)&&!a.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!f&&a.match(d)){b.tokenize=null,b.tokStack.pop(),b.tokStack.pop();break}f="\\"==a.next()&&!f}return"string"}var f="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",g="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",h="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";a.registerHelper("hintWords","php",[f,g,h].join(" ").split(" ")),a.registerHelper("wordChars","php",/[\w$]/);var i={name:"clike",helperType:"php",keywords:b(f),blockKeywords:b("catch do else elseif for foreach if switch try while finally"),defKeywords:b("class function interface namespace trait"),atoms:b(g),builtin:b(h),multiLineStrings:!0,hooks:{$:function(a){return a.eatWhile(/[\w\$_]/),"variable-2"},"<":function(a,b){var c;if(c=a.match(/<<\s*/)){var e=a.eat(/['"]/);a.eatWhile(/[\w\.]/);var f=a.current().slice(c[0].length+(e?2:1));if(e&&a.eat(e),f)return(b.tokStack||(b.tokStack=[])).push(f,0),b.tokenize=d(f,"'"!=e),"string"}return!1},"#":function(a){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"},"/":function(a){if(a.eat("/")){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"}return!1},'"':function(a,b){return(b.tokStack||(b.tokStack=[])).push('"',0),b.tokenize=d('"'),"string"},"{":function(a,b){return b.tokStack&&b.tokStack.length&&b.tokStack[b.tokStack.length-1]++,!1},"}":function(a,b){return b.tokStack&&b.tokStack.length>0&&!--b.tokStack[b.tokStack.length-1]&&(b.tokenize=d(b.tokStack[b.tokStack.length-2])),!1}}};a.defineMode("php",(function(b,c){function d(b,c){var d=c.curMode==f;if(b.sol()&&c.pending&&'"'!=c.pending&&"'"!=c.pending&&(c.pending=null),d)return d&&null==c.php.tokenize&&b.match("?>")?(c.curMode=e,c.curState=c.html,c.php.context.prev||(c.php=null),"meta"):f.token(b,c.curState);if(b.match(/^<\?\w*/))return c.curMode=f,c.php||(c.php=a.startState(f,e.indent(c.html,""))),c.curState=c.php,"meta";if('"'==c.pending||"'"==c.pending){for(;!b.eol()&&b.next()!=c.pending;);var g="string"}else if(c.pending&&b.pos<c.pending.end){b.pos=c.pending.end;var g=c.pending.style}else var g=e.token(b,c.curState);c.pending&&(c.pending=null);var h,i=b.current(),j=i.search(/<\?/);return j!=-1&&("string"==g&&(h=i.match(/[\'\"]$/))&&!/\?>/.test(i)?c.pending=h[0]:c.pending={end:b.pos,style:g},b.backUp(i.length-j)),g}var e=a.getMode(b,c&&c.htmlMode||"text/html"),f=a.getMode(b,i);return{startState:function(){var b=a.startState(e),d=c.startOpen?a.startState(f):null;return{html:b,php:d,curMode:c.startOpen?f:e,curState:c.startOpen?d:b,pending:null}},copyState:function(b){var c,d=b.html,g=a.copyState(e,d),h=b.php,i=h&&a.copyState(f,h);return c=b.curMode==e?g:i,{html:g,php:i,curMode:b.curMode,curState:c,pending:b.pending}},token:d,indent:function(a,b){return a.curMode!=f&&/^\s*<\//.test(b)||a.curMode==f&&/^\?>/.test(b)?e.indent(a.html,b):a.curMode.indent(a.curState,b)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(a){return{state:a.curState,mode:a.curMode}}}}),"htmlmixed","clike"),a.defineMIME("application/x-httpd-php","php"),a.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),a.defineMIME("text/x-php",i)}));editors/codemirror/mode/php/php.js000064400000043534152177723720013250 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../clike/clike"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../clike/clike"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function keywords(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  // Helper for phpString
  function matchSequence(list, end, escapes) {
    if (list.length == 0) return phpString(end);
    return function (stream, state) {
      var patterns = list[0];
      for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {
        state.tokenize = matchSequence(list.slice(1), end);
        return patterns[i][1];
      }
      state.tokenize = phpString(end, escapes);
      return "string";
    };
  }
  function phpString(closing, escapes) {
    return function(stream, state) { return phpString_(stream, state, closing, escapes); };
  }
  function phpString_(stream, state, closing, escapes) {
    // "Complex" syntax
    if (escapes !== false && stream.match("${", false) || stream.match("{$", false)) {
      state.tokenize = null;
      return "string";
    }

    // Simple syntax
    if (escapes !== false && stream.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/)) {
      // After the variable name there may appear array or object operator.
      if (stream.match("[", false)) {
        // Match array operator
        state.tokenize = matchSequence([
          [["[", null]],
          [[/\d[\w\.]*/, "number"],
           [/\$[a-zA-Z_][a-zA-Z0-9_]*/, "variable-2"],
           [/[\w\$]+/, "variable"]],
          [["]", null]]
        ], closing, escapes);
      }
      if (stream.match(/\-\>\w/, false)) {
        // Match object operator
        state.tokenize = matchSequence([
          [["->", null]],
          [[/[\w]+/, "variable"]]
        ], closing, escapes);
      }
      return "variable-2";
    }

    var escaped = false;
    // Normal string
    while (!stream.eol() &&
           (escaped || escapes === false ||
            (!stream.match("{$", false) &&
             !stream.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/, false)))) {
      if (!escaped && stream.match(closing)) {
        state.tokenize = null;
        state.tokStack.pop(); state.tokStack.pop();
        break;
      }
      escaped = stream.next() == "\\" && !escaped;
    }
    return "string";
  }

  var phpKeywords = "abstract and array as break case catch class clone const continue declare default " +
    "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " +
    "for foreach function global goto if implements interface instanceof namespace " +
    "new or private protected public static switch throw trait try use var while xor " +
    "die echo empty exit eval include include_once isset list require require_once return " +
    "print unset __halt_compiler self static parent yield insteadof finally";
  var phpAtoms = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__";
  var phpBuiltin = "func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";
  CodeMirror.registerHelper("hintWords", "php", [phpKeywords, phpAtoms, phpBuiltin].join(" ").split(" "));
  CodeMirror.registerHelper("wordChars", "php", /[\w$]/);

  var phpConfig = {
    name: "clike",
    helperType: "php",
    keywords: keywords(phpKeywords),
    blockKeywords: keywords("catch do else elseif for foreach if switch try while finally"),
    defKeywords: keywords("class function interface namespace trait"),
    atoms: keywords(phpAtoms),
    builtin: keywords(phpBuiltin),
    multiLineStrings: true,
    hooks: {
      "$": function(stream) {
        stream.eatWhile(/[\w\$_]/);
        return "variable-2";
      },
      "<": function(stream, state) {
        var before;
        if (before = stream.match(/<<\s*/)) {
          var quoted = stream.eat(/['"]/);
          stream.eatWhile(/[\w\.]/);
          var delim = stream.current().slice(before[0].length + (quoted ? 2 : 1));
          if (quoted) stream.eat(quoted);
          if (delim) {
            (state.tokStack || (state.tokStack = [])).push(delim, 0);
            state.tokenize = phpString(delim, quoted != "'");
            return "string";
          }
        }
        return false;
      },
      "#": function(stream) {
        while (!stream.eol() && !stream.match("?>", false)) stream.next();
        return "comment";
      },
      "/": function(stream) {
        if (stream.eat("/")) {
          while (!stream.eol() && !stream.match("?>", false)) stream.next();
          return "comment";
        }
        return false;
      },
      '"': function(_stream, state) {
        (state.tokStack || (state.tokStack = [])).push('"', 0);
        state.tokenize = phpString('"');
        return "string";
      },
      "{": function(_stream, state) {
        if (state.tokStack && state.tokStack.length)
          state.tokStack[state.tokStack.length - 1]++;
        return false;
      },
      "}": function(_stream, state) {
        if (state.tokStack && state.tokStack.length > 0 &&
            !--state.tokStack[state.tokStack.length - 1]) {
          state.tokenize = phpString(state.tokStack[state.tokStack.length - 2]);
        }
        return false;
      }
    }
  };

  CodeMirror.defineMode("php", function(config, parserConfig) {
    var htmlMode = CodeMirror.getMode(config, (parserConfig && parserConfig.htmlMode) || "text/html");
    var phpMode = CodeMirror.getMode(config, phpConfig);

    function dispatch(stream, state) {
      var isPHP = state.curMode == phpMode;
      if (stream.sol() && state.pending && state.pending != '"' && state.pending != "'") state.pending = null;
      if (!isPHP) {
        if (stream.match(/^<\?\w*/)) {
          state.curMode = phpMode;
          if (!state.php) state.php = CodeMirror.startState(phpMode, htmlMode.indent(state.html, ""))
          state.curState = state.php;
          return "meta";
        }
        if (state.pending == '"' || state.pending == "'") {
          while (!stream.eol() && stream.next() != state.pending) {}
          var style = "string";
        } else if (state.pending && stream.pos < state.pending.end) {
          stream.pos = state.pending.end;
          var style = state.pending.style;
        } else {
          var style = htmlMode.token(stream, state.curState);
        }
        if (state.pending) state.pending = null;
        var cur = stream.current(), openPHP = cur.search(/<\?/), m;
        if (openPHP != -1) {
          if (style == "string" && (m = cur.match(/[\'\"]$/)) && !/\?>/.test(cur)) state.pending = m[0];
          else state.pending = {end: stream.pos, style: style};
          stream.backUp(cur.length - openPHP);
        }
        return style;
      } else if (isPHP && state.php.tokenize == null && stream.match("?>")) {
        state.curMode = htmlMode;
        state.curState = state.html;
        if (!state.php.context.prev) state.php = null;
        return "meta";
      } else {
        return phpMode.token(stream, state.curState);
      }
    }

    return {
      startState: function() {
        var html = CodeMirror.startState(htmlMode)
        var php = parserConfig.startOpen ? CodeMirror.startState(phpMode) : null
        return {html: html,
                php: php,
                curMode: parserConfig.startOpen ? phpMode : htmlMode,
                curState: parserConfig.startOpen ? php : html,
                pending: null};
      },

      copyState: function(state) {
        var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),
            php = state.php, phpNew = php && CodeMirror.copyState(phpMode, php), cur;
        if (state.curMode == htmlMode) cur = htmlNew;
        else cur = phpNew;
        return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,
                pending: state.pending};
      },

      token: dispatch,

      indent: function(state, textAfter) {
        if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) ||
            (state.curMode == phpMode && /^\?>/.test(textAfter)))
          return htmlMode.indent(state.html, textAfter);
        return state.curMode.indent(state.curState, textAfter);
      },

      blockCommentStart: "/*",
      blockCommentEnd: "*/",
      lineComment: "//",

      innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }
    };
  }, "htmlmixed", "clike");

  CodeMirror.defineMIME("application/x-httpd-php", "php");
  CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true});
  CodeMirror.defineMIME("text/x-php", phpConfig);
});
editors/codemirror/mode/yaml-frontmatter/yaml-frontmatter.min.js000064400000001712152177723720021256 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../yaml/yaml")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../yaml/yaml"],a):a(CodeMirror)})((function(a){var b=0,c=1,d=2;a.defineMode("yaml-frontmatter",(function(e,f){function g(a){return a.state==d?i:h}var h=a.getMode(e,"yaml"),i=a.getMode(e,f&&f.base||"gfm");return{startState:function(){return{state:b,inner:a.startState(h)}},copyState:function(b){return{state:b.state,inner:a.copyState(g(b),b.inner)}},token:function(e,f){if(f.state==b)return e.match(/---/,!1)?(f.state=c,h.token(e,f.inner)):(f.state=d,f.inner=a.startState(i),i.token(e,f.inner));if(f.state==c){var g=e.sol()&&e.match(/---/,!1),j=h.token(e,f.inner);return g&&(f.state=d,f.inner=a.startState(i)),j}return i.token(e,f.inner)},innerMode:function(a){return{mode:g(a),state:a.inner}},blankLine:function(a){var b=g(a);if(b.blankLine)return b.blankLine(a.inner)}}}))}));editors/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js000064400000004365152177723720020503 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function (mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../yaml/yaml"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../yaml/yaml"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function (CodeMirror) {

  var START = 0, FRONTMATTER = 1, BODY = 2

  // a mixed mode for Markdown text with an optional YAML front matter
  CodeMirror.defineMode("yaml-frontmatter", function (config, parserConfig) {
    var yamlMode = CodeMirror.getMode(config, "yaml")
    var innerMode = CodeMirror.getMode(config, parserConfig && parserConfig.base || "gfm")

    function curMode(state) {
      return state.state == BODY ? innerMode : yamlMode
    }

    return {
      startState: function () {
        return {
          state: START,
          inner: CodeMirror.startState(yamlMode)
        }
      },
      copyState: function (state) {
        return {
          state: state.state,
          inner: CodeMirror.copyState(curMode(state), state.inner)
        }
      },
      token: function (stream, state) {
        if (state.state == START) {
          if (stream.match(/---/, false)) {
            state.state = FRONTMATTER
            return yamlMode.token(stream, state.inner)
          } else {
            state.state = BODY
            state.inner = CodeMirror.startState(innerMode)
            return innerMode.token(stream, state.inner)
          }
        } else if (state.state == FRONTMATTER) {
          var end = stream.sol() && stream.match(/---/, false)
          var style = yamlMode.token(stream, state.inner)
          if (end) {
            state.state = BODY
            state.inner = CodeMirror.startState(innerMode)
          }
          return style
        } else {
          return innerMode.token(stream, state.inner)
        }
      },
      innerMode: function (state) {
        return {mode: curMode(state), state: state.inner}
      },
      blankLine: function (state) {
        var mode = curMode(state)
        if (mode.blankLine) return mode.blankLine(state.inner)
      }
    }
  })
});
editors/codemirror/mode/r/r.js000064400000014375152177723720012375 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("wordChars", "r", /[\w.]/);

CodeMirror.defineMode("r", function(config) {
  function wordObj(str) {
    var words = str.split(" "), res = {};
    for (var i = 0; i < words.length; ++i) res[words[i]] = true;
    return res;
  }
  var atoms = wordObj("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_");
  var builtins = wordObj("list quote bquote eval return call parse deparse");
  var keywords = wordObj("if else repeat while function for in next break");
  var blockkeywords = wordObj("if else repeat while function for");
  var opChars = /[+\-*\/^<>=!&|~$:]/;
  var curPunc;

  function tokenBase(stream, state) {
    curPunc = null;
    var ch = stream.next();
    if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    } else if (ch == "0" && stream.eat("x")) {
      stream.eatWhile(/[\da-f]/i);
      return "number";
    } else if (ch == "." && stream.eat(/\d/)) {
      stream.match(/\d*(?:e[+\-]?\d+)?/);
      return "number";
    } else if (/\d/.test(ch)) {
      stream.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/);
      return "number";
    } else if (ch == "'" || ch == '"') {
      state.tokenize = tokenString(ch);
      return "string";
    } else if (ch == "`") {
      stream.match(/[^`]+`/);
      return "variable-3";
    } else if (ch == "." && stream.match(/.[.\d]+/)) {
      return "keyword";
    } else if (/[\w\.]/.test(ch) && ch != "_") {
      stream.eatWhile(/[\w\.]/);
      var word = stream.current();
      if (atoms.propertyIsEnumerable(word)) return "atom";
      if (keywords.propertyIsEnumerable(word)) {
        // Block keywords start new blocks, except 'else if', which only starts
        // one new block for the 'if', no block for the 'else'.
        if (blockkeywords.propertyIsEnumerable(word) &&
            !stream.match(/\s*if(\s+|$)/, false))
          curPunc = "block";
        return "keyword";
      }
      if (builtins.propertyIsEnumerable(word)) return "builtin";
      return "variable";
    } else if (ch == "%") {
      if (stream.skipTo("%")) stream.next();
      return "operator variable-2";
    } else if (
        (ch == "<" && stream.eat("-")) ||
        (ch == "<" && stream.match("<-")) ||
        (ch == "-" && stream.match(/>>?/))
      ) {
      return "operator arrow";
    } else if (ch == "=" && state.ctx.argList) {
      return "arg-is";
    } else if (opChars.test(ch)) {
      if (ch == "$") return "operator dollar";
      stream.eatWhile(opChars);
      return "operator";
    } else if (/[\(\){}\[\];]/.test(ch)) {
      curPunc = ch;
      if (ch == ";") return "semi";
      return null;
    } else {
      return null;
    }
  }

  function tokenString(quote) {
    return function(stream, state) {
      if (stream.eat("\\")) {
        var ch = stream.next();
        if (ch == "x") stream.match(/^[a-f0-9]{2}/i);
        else if ((ch == "u" || ch == "U") && stream.eat("{") && stream.skipTo("}")) stream.next();
        else if (ch == "u") stream.match(/^[a-f0-9]{4}/i);
        else if (ch == "U") stream.match(/^[a-f0-9]{8}/i);
        else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);
        return "string-2";
      } else {
        var next;
        while ((next = stream.next()) != null) {
          if (next == quote) { state.tokenize = tokenBase; break; }
          if (next == "\\") { stream.backUp(1); break; }
        }
        return "string";
      }
    };
  }

  var ALIGN_YES = 1, ALIGN_NO = 2, BRACELESS = 4

  function push(state, type, stream) {
    state.ctx = {type: type,
                 indent: state.indent,
                 flags: 0,
                 column: stream.column(),
                 prev: state.ctx};
  }
  function setFlag(state, flag) {
    var ctx = state.ctx
    state.ctx = {type: ctx.type,
                 indent: ctx.indent,
                 flags: ctx.flags | flag,
                 column: ctx.column,
                 prev: ctx.prev}
  }
  function pop(state) {
    state.indent = state.ctx.indent;
    state.ctx = state.ctx.prev;
  }

  return {
    startState: function() {
      return {tokenize: tokenBase,
              ctx: {type: "top",
                    indent: -config.indentUnit,
                    flags: ALIGN_NO},
              indent: 0,
              afterIdent: false};
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if ((state.ctx.flags & 3) == 0) state.ctx.flags |= ALIGN_NO
        if (state.ctx.flags & BRACELESS) pop(state)
        state.indent = stream.indentation();
      }
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      if (style != "comment" && (state.ctx.flags & ALIGN_NO) == 0) setFlag(state, ALIGN_YES)

      if ((curPunc == ";" || curPunc == "{" || curPunc == "}") && state.ctx.type == "block") pop(state);
      if (curPunc == "{") push(state, "}", stream);
      else if (curPunc == "(") {
        push(state, ")", stream);
        if (state.afterIdent) state.ctx.argList = true;
      }
      else if (curPunc == "[") push(state, "]", stream);
      else if (curPunc == "block") push(state, "block", stream);
      else if (curPunc == state.ctx.type) pop(state);
      else if (state.ctx.type == "block" && style != "comment") setFlag(state, BRACELESS)
      state.afterIdent = style == "variable" || style == "keyword";
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase) return 0;
      var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,
          closing = firstChar == ctx.type;
      if (ctx.flags & BRACELESS) ctx = ctx.prev
      if (ctx.type == "block") return ctx.indent + (firstChar == "{" ? 0 : config.indentUnit);
      else if (ctx.flags & ALIGN_YES) return ctx.column + (closing ? 0 : 1);
      else return ctx.indent + (closing ? 0 : config.indentUnit);
    },

    lineComment: "#"
  };
});

CodeMirror.defineMIME("text/x-rsrc", "r");

});
editors/codemirror/mode/r/r.min.js000064400000006044152177723720013151 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("wordChars","r",/[\w.]/),a.defineMode("r",(function(a){function b(a){for(var b=a.split(" "),c={},d=0;d<b.length;++d)c[b[d]]=!0;return c}function c(a,b){h=null;var c=a.next();if("#"==c)return a.skipToEnd(),"comment";if("0"==c&&a.eat("x"))return a.eatWhile(/[\da-f]/i),"number";if("."==c&&a.eat(/\d/))return a.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(c))return a.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==c||'"'==c)return b.tokenize=d(c),"string";if("`"==c)return a.match(/[^`]+`/),"variable-3";if("."==c&&a.match(/.[.\d]+/))return"keyword";if(/[\w\.]/.test(c)&&"_"!=c){a.eatWhile(/[\w\.]/);var e=a.current();return i.propertyIsEnumerable(e)?"atom":k.propertyIsEnumerable(e)?(l.propertyIsEnumerable(e)&&!a.match(/\s*if(\s+|$)/,!1)&&(h="block"),"keyword"):j.propertyIsEnumerable(e)?"builtin":"variable"}return"%"==c?(a.skipTo("%")&&a.next(),"operator variable-2"):"<"==c&&a.eat("-")||"<"==c&&a.match("<-")||"-"==c&&a.match(/>>?/)?"operator arrow":"="==c&&b.ctx.argList?"arg-is":m.test(c)?"$"==c?"operator dollar":(a.eatWhile(m),"operator"):/[\(\){}\[\];]/.test(c)?(h=c,";"==c?"semi":null):null}function d(a){return function(b,d){if(b.eat("\\")){var e=b.next();return"x"==e?b.match(/^[a-f0-9]{2}/i):("u"==e||"U"==e)&&b.eat("{")&&b.skipTo("}")?b.next():"u"==e?b.match(/^[a-f0-9]{4}/i):"U"==e?b.match(/^[a-f0-9]{8}/i):/[0-7]/.test(e)&&b.match(/^[0-7]{1,2}/),"string-2"}for(var f;null!=(f=b.next());){if(f==a){d.tokenize=c;break}if("\\"==f){b.backUp(1);break}}return"string"}}function e(a,b,c){a.ctx={type:b,indent:a.indent,flags:0,column:c.column(),prev:a.ctx}}function f(a,b){var c=a.ctx;a.ctx={type:c.type,indent:c.indent,flags:c.flags|b,column:c.column,prev:c.prev}}function g(a){a.indent=a.ctx.indent,a.ctx=a.ctx.prev}var h,i=b("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_"),j=b("list quote bquote eval return call parse deparse"),k=b("if else repeat while function for in next break"),l=b("if else repeat while function for"),m=/[+\-*\/^<>=!&|~$:]/,n=1,o=2,p=4;return{startState:function(){return{tokenize:c,ctx:{type:"top",indent:-a.indentUnit,flags:o},indent:0,afterIdent:!1}},token:function(a,b){if(a.sol()&&(0==(3&b.ctx.flags)&&(b.ctx.flags|=o),b.ctx.flags&p&&g(b),b.indent=a.indentation()),a.eatSpace())return null;var c=b.tokenize(a,b);return"comment"!=c&&0==(b.ctx.flags&o)&&f(b,n),";"!=h&&"{"!=h&&"}"!=h||"block"!=b.ctx.type||g(b),"{"==h?e(b,"}",a):"("==h?(e(b,")",a),b.afterIdent&&(b.ctx.argList=!0)):"["==h?e(b,"]",a):"block"==h?e(b,"block",a):h==b.ctx.type?g(b):"block"==b.ctx.type&&"comment"!=c&&f(b,p),b.afterIdent="variable"==c||"keyword"==c,c},indent:function(b,d){if(b.tokenize!=c)return 0;var e=d&&d.charAt(0),f=b.ctx,g=e==f.type;return f.flags&p&&(f=f.prev),"block"==f.type?f.indent+("{"==e?0:a.indentUnit):f.flags&n?f.column+(g?0:1):f.indent+(g?0:a.indentUnit)},lineComment:"#"}})),a.defineMIME("text/x-rsrc","r")}));editors/codemirror/mode/dylan/dylan.min.js000064400000010262152177723720014662 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){for(var c=0;c<a.length;c++)b(a[c],c)}function c(a,b){for(var c=0;c<a.length;c++)if(b(a[c],c))return!0;return!1}a.defineMode("dylan",(function(a){function d(a,b,c){return b.tokenize=c,c(a,b)}function e(a,b){var e=a.peek();if("'"==e||'"'==e)return a.next(),d(a,b,g(e,"string"));if("/"==e){if(a.next(),a.eat("*"))return d(a,b,f);if(a.eat("/"))return a.skipToEnd(),"comment";a.backUp(1)}else if(/[+\-\d\.]/.test(e)){if(a.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||a.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||a.match(/^[+-]?\d+/))return"number"}else{if("#"==e)return a.next(),e=a.peek(),'"'==e?(a.next(),d(a,b,g('"',"string"))):"b"==e?(a.next(),a.eatWhile(/[01]/),"number"):"x"==e?(a.next(),a.eatWhile(/[\da-f]/i),"number"):"o"==e?(a.next(),a.eatWhile(/[0-7]/),"number"):"#"==e?(a.next(),"punctuation"):"["==e||"("==e?(a.next(),"bracket"):a.match(/f|t|all-keys|include|key|next|rest/i)?"atom":(a.eatWhile(/[-a-zA-Z]/),"error");if("~"==e)return a.next(),e=a.peek(),"="==e?(a.next(),e=a.peek(),"="==e?(a.next(),"operator"):"operator"):"operator";if(":"==e){if(a.next(),e=a.peek(),"="==e)return a.next(),"operator";if(":"==e)return a.next(),"punctuation"}else{if("[](){}".indexOf(e)!=-1)return a.next(),"bracket";if(".,".indexOf(e)!=-1)return a.next(),"punctuation";if(a.match("end"))return"keyword"}}for(var h in k)if(k.hasOwnProperty(h)){var i=k[h];if(i instanceof Array&&c(i,(function(b){return a.match(b)}))||a.match(i))return l[h]}return/[+\-*\/^=<>&|]/.test(e)?(a.next(),"operator"):a.match("define")?"def":(a.eatWhile(/[\w\-]/),o.hasOwnProperty(a.current())?p[a.current()]:a.current().match(j)?"variable":(a.next(),"variable-2"))}function f(a,b){for(var c,d=!1,f=!1,g=0;c=a.next();){if("/"==c&&d){if(!(g>0)){b.tokenize=e;break}g--}else"*"==c&&f&&g++;d="*"==c,f="/"==c}return"comment"}function g(a,b){return function(c,d){for(var f,g=!1,h=!1;null!=(f=c.next());){if(f==a&&!g){h=!0;break}g=!g&&"\\"==f}return!h&&g||(d.tokenize=e),b}}var h={unnamedDefinition:["interface"],namedDefinition:["module","library","macro","C-struct","C-union","C-function","C-callable-wrapper"],typeParameterizedDefinition:["class","C-subtype","C-mapped-subtype"],otherParameterizedDefinition:["method","function","C-variable","C-address"],constantSimpleDefinition:["constant"],variableSimpleDefinition:["variable"],otherSimpleDefinition:["generic","domain","C-pointer-type","table"],statement:["if","block","begin","method","case","for","select","when","unless","until","while","iterate","profiling","dynamic-bind"],separator:["finally","exception","cleanup","else","elseif","afterwards"],other:["above","below","by","from","handler","in","instance","let","local","otherwise","slot","subclass","then","to","keyed-by","virtual"],signalingCalls:["signal","error","cerror","break","check-type","abort"]};h.otherDefinition=h.unnamedDefinition.concat(h.namedDefinition).concat(h.otherParameterizedDefinition),h.definition=h.typeParameterizedDefinition.concat(h.otherDefinition),h.parameterizedDefinition=h.typeParameterizedDefinition.concat(h.otherParameterizedDefinition),h.simpleDefinition=h.constantSimpleDefinition.concat(h.variableSimpleDefinition).concat(h.otherSimpleDefinition),h.keyword=h.statement.concat(h.separator).concat(h.other);var i="[-_a-zA-Z?!*@<>$%]+",j=new RegExp("^"+i),k={symbolKeyword:i+":",symbolClass:"<"+i+">",symbolGlobal:"\\*"+i+"\\*",symbolConstant:"\\$"+i},l={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variable-2",symbolConstant:"variable-3"};for(var m in k)k.hasOwnProperty(m)&&(k[m]=new RegExp("^"+k[m]));k.keyword=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var n={};n.keyword="keyword",n.definition="def",n.simpleDefinition="def",n.signalingCalls="builtin";var o={},p={};return b(["keyword","definition","simpleDefinition","signalingCalls"],(function(a){b(h[a],(function(b){o[b]=a,p[b]=n[a]}))})),{startState:function(){return{tokenize:e,currentIndent:0}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b);return c},blockCommentStart:"/*",blockCommentEnd:"*/"}})),a.defineMIME("text/x-dylan","dylan")}));editors/codemirror/mode/dylan/dylan.js000064400000023601152177723720014101 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

function forEach(arr, f) {
  for (var i = 0; i < arr.length; i++) f(arr[i], i)
}
function some(arr, f) {
  for (var i = 0; i < arr.length; i++) if (f(arr[i], i)) return true
  return false
}

CodeMirror.defineMode("dylan", function(_config) {
  // Words
  var words = {
    // Words that introduce unnamed definitions like "define interface"
    unnamedDefinition: ["interface"],

    // Words that introduce simple named definitions like "define library"
    namedDefinition: ["module", "library", "macro",
                      "C-struct", "C-union",
                      "C-function", "C-callable-wrapper"
                     ],

    // Words that introduce type definitions like "define class".
    // These are also parameterized like "define method" and are
    // appended to otherParameterizedDefinitionWords
    typeParameterizedDefinition: ["class", "C-subtype", "C-mapped-subtype"],

    // Words that introduce trickier definitions like "define method".
    // These require special definitions to be added to startExpressions
    otherParameterizedDefinition: ["method", "function",
                                   "C-variable", "C-address"
                                  ],

    // Words that introduce module constant definitions.
    // These must also be simple definitions and are
    // appended to otherSimpleDefinitionWords
    constantSimpleDefinition: ["constant"],

    // Words that introduce module variable definitions.
    // These must also be simple definitions and are
    // appended to otherSimpleDefinitionWords
    variableSimpleDefinition: ["variable"],

    // Other words that introduce simple definitions
    // (without implicit bodies).
    otherSimpleDefinition: ["generic", "domain",
                            "C-pointer-type",
                            "table"
                           ],

    // Words that begin statements with implicit bodies.
    statement: ["if", "block", "begin", "method", "case",
                "for", "select", "when", "unless", "until",
                "while", "iterate", "profiling", "dynamic-bind"
               ],

    // Patterns that act as separators in compound statements.
    // This may include any general pattern that must be indented
    // specially.
    separator: ["finally", "exception", "cleanup", "else",
                "elseif", "afterwards"
               ],

    // Keywords that do not require special indentation handling,
    // but which should be highlighted
    other: ["above", "below", "by", "from", "handler", "in",
            "instance", "let", "local", "otherwise", "slot",
            "subclass", "then", "to", "keyed-by", "virtual"
           ],

    // Condition signaling function calls
    signalingCalls: ["signal", "error", "cerror",
                     "break", "check-type", "abort"
                    ]
  };

  words["otherDefinition"] =
    words["unnamedDefinition"]
    .concat(words["namedDefinition"])
    .concat(words["otherParameterizedDefinition"]);

  words["definition"] =
    words["typeParameterizedDefinition"]
    .concat(words["otherDefinition"]);

  words["parameterizedDefinition"] =
    words["typeParameterizedDefinition"]
    .concat(words["otherParameterizedDefinition"]);

  words["simpleDefinition"] =
    words["constantSimpleDefinition"]
    .concat(words["variableSimpleDefinition"])
    .concat(words["otherSimpleDefinition"]);

  words["keyword"] =
    words["statement"]
    .concat(words["separator"])
    .concat(words["other"]);

  // Patterns
  var symbolPattern = "[-_a-zA-Z?!*@<>$%]+";
  var symbol = new RegExp("^" + symbolPattern);
  var patterns = {
    // Symbols with special syntax
    symbolKeyword: symbolPattern + ":",
    symbolClass: "<" + symbolPattern + ">",
    symbolGlobal: "\\*" + symbolPattern + "\\*",
    symbolConstant: "\\$" + symbolPattern
  };
  var patternStyles = {
    symbolKeyword: "atom",
    symbolClass: "tag",
    symbolGlobal: "variable-2",
    symbolConstant: "variable-3"
  };

  // Compile all patterns to regular expressions
  for (var patternName in patterns)
    if (patterns.hasOwnProperty(patternName))
      patterns[patternName] = new RegExp("^" + patterns[patternName]);

  // Names beginning "with-" and "without-" are commonly
  // used as statement macro
  patterns["keyword"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];

  var styles = {};
  styles["keyword"] = "keyword";
  styles["definition"] = "def";
  styles["simpleDefinition"] = "def";
  styles["signalingCalls"] = "builtin";

  // protected words lookup table
  var wordLookup = {};
  var styleLookup = {};

  forEach([
    "keyword",
    "definition",
    "simpleDefinition",
    "signalingCalls"
  ], function(type) {
    forEach(words[type], function(word) {
      wordLookup[word] = type;
      styleLookup[word] = styles[type];
    });
  });


  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }

  function tokenBase(stream, state) {
    // String
    var ch = stream.peek();
    if (ch == "'" || ch == '"') {
      stream.next();
      return chain(stream, state, tokenString(ch, "string"));
    }
    // Comment
    else if (ch == "/") {
      stream.next();
      if (stream.eat("*")) {
        return chain(stream, state, tokenComment);
      } else if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
      stream.backUp(1);
    }
    // Decimal
    else if (/[+\-\d\.]/.test(ch)) {
      if (stream.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i) ||
          stream.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i) ||
          stream.match(/^[+-]?\d+/)) {
        return "number";
      }
    }
    // Hash
    else if (ch == "#") {
      stream.next();
      // Symbol with string syntax
      ch = stream.peek();
      if (ch == '"') {
        stream.next();
        return chain(stream, state, tokenString('"', "string"));
      }
      // Binary number
      else if (ch == "b") {
        stream.next();
        stream.eatWhile(/[01]/);
        return "number";
      }
      // Hex number
      else if (ch == "x") {
        stream.next();
        stream.eatWhile(/[\da-f]/i);
        return "number";
      }
      // Octal number
      else if (ch == "o") {
        stream.next();
        stream.eatWhile(/[0-7]/);
        return "number";
      }
      // Token concatenation in macros
      else if (ch == '#') {
        stream.next();
        return "punctuation";
      }
      // Sequence literals
      else if ((ch == '[') || (ch == '(')) {
        stream.next();
        return "bracket";
      // Hash symbol
      } else if (stream.match(/f|t|all-keys|include|key|next|rest/i)) {
        return "atom";
      } else {
        stream.eatWhile(/[-a-zA-Z]/);
        return "error";
      }
    } else if (ch == "~") {
      stream.next();
      ch = stream.peek();
      if (ch == "=") {
        stream.next();
        ch = stream.peek();
        if (ch == "=") {
          stream.next();
          return "operator";
        }
        return "operator";
      }
      return "operator";
    } else if (ch == ":") {
      stream.next();
      ch = stream.peek();
      if (ch == "=") {
        stream.next();
        return "operator";
      } else if (ch == ":") {
        stream.next();
        return "punctuation";
      }
    } else if ("[](){}".indexOf(ch) != -1) {
      stream.next();
      return "bracket";
    } else if (".,".indexOf(ch) != -1) {
      stream.next();
      return "punctuation";
    } else if (stream.match("end")) {
      return "keyword";
    }
    for (var name in patterns) {
      if (patterns.hasOwnProperty(name)) {
        var pattern = patterns[name];
        if ((pattern instanceof Array && some(pattern, function(p) {
          return stream.match(p);
        })) || stream.match(pattern))
          return patternStyles[name];
      }
    }
    if (/[+\-*\/^=<>&|]/.test(ch)) {
      stream.next();
      return "operator";
    }
    if (stream.match("define")) {
      return "def";
    } else {
      stream.eatWhile(/[\w\-]/);
      // Keyword
      if (wordLookup.hasOwnProperty(stream.current())) {
        return styleLookup[stream.current()];
      } else if (stream.current().match(symbol)) {
        return "variable";
      } else {
        stream.next();
        return "variable-2";
      }
    }
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;
    while ((ch = stream.next())) {
      if (ch == "/" && maybeEnd) {
        if (nestedCount > 0) {
          nestedCount--;
        } else {
          state.tokenize = tokenBase;
          break;
        }
      } else if (ch == "*" && maybeNested) {
        nestedCount++;
      }
      maybeEnd = (ch == "*");
      maybeNested = (ch == "/");
    }
    return "comment";
  }

  function tokenString(quote, style) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {
          end = true;
          break;
        }
        escaped = !escaped && next == "\\";
      }
      if (end || !escaped) {
        state.tokenize = tokenBase;
      }
      return style;
    };
  }

  // Interface
  return {
    startState: function() {
      return {
        tokenize: tokenBase,
        currentIndent: 0
      };
    },
    token: function(stream, state) {
      if (stream.eatSpace())
        return null;
      var style = state.tokenize(stream, state);
      return style;
    },
    blockCommentStart: "/*",
    blockCommentEnd: "*/"
  };
});

CodeMirror.defineMIME("text/x-dylan", "dylan");

});
editors/codemirror/mode/markdown/markdown.js000064400000071523152177723720015335 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../xml/xml"), require("../meta"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../xml/xml", "../meta"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {

  var htmlMode = CodeMirror.getMode(cmCfg, "text/html");
  var htmlModeMissing = htmlMode.name == "null"

  function getMode(name) {
    if (CodeMirror.findModeByName) {
      var found = CodeMirror.findModeByName(name);
      if (found) name = found.mime || found.mimes[0];
    }
    var mode = CodeMirror.getMode(cmCfg, name);
    return mode.name == "null" ? null : mode;
  }

  // Should characters that affect highlighting be highlighted separate?
  // Does not include characters that will be output (such as `1.` and `-` for lists)
  if (modeCfg.highlightFormatting === undefined)
    modeCfg.highlightFormatting = false;

  // Maximum number of nested blockquotes. Set to 0 for infinite nesting.
  // Excess `>` will emit `error` token.
  if (modeCfg.maxBlockquoteDepth === undefined)
    modeCfg.maxBlockquoteDepth = 0;

  // Turn on task lists? ("- [ ] " and "- [x] ")
  if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;

  // Turn on strikethrough syntax
  if (modeCfg.strikethrough === undefined)
    modeCfg.strikethrough = false;

  if (modeCfg.emoji === undefined)
    modeCfg.emoji = false;

  if (modeCfg.fencedCodeBlockHighlighting === undefined)
    modeCfg.fencedCodeBlockHighlighting = true;

  if (modeCfg.xml === undefined)
    modeCfg.xml = true;

  // Allow token types to be overridden by user-provided token types.
  if (modeCfg.tokenTypeOverrides === undefined)
    modeCfg.tokenTypeOverrides = {};

  var tokenTypes = {
    header: "header",
    code: "comment",
    quote: "quote",
    list1: "variable-2",
    list2: "variable-3",
    list3: "keyword",
    hr: "hr",
    image: "image",
    imageAltText: "image-alt-text",
    imageMarker: "image-marker",
    formatting: "formatting",
    linkInline: "link",
    linkEmail: "link",
    linkText: "link",
    linkHref: "string",
    em: "em",
    strong: "strong",
    strikethrough: "strikethrough",
    emoji: "builtin"
  };

  for (var tokenType in tokenTypes) {
    if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {
      tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];
    }
  }

  var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/
  ,   listRE = /^(?:[*\-+]|^[0-9]+([.)]))\s+/
  ,   taskListRE = /^\[(x| )\](?=\s)/i // Must follow listRE
  ,   atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/
  ,   setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/
  ,   textRE = /^[^#!\[\]*_\\<>` "'(~:]+/
  ,   fencedCodeRE = /^(~~~+|```+)[ \t]*([\w+#-]*)[^\n`]*$/
  ,   linkDefRE = /^\s*\[[^\]]+?\]:.*$/ // naive link-definition
  ,   punctuation = /[!\"#$%&\'()*+,\-\.\/:;<=>?@\[\\\]^_`{|}~—]/
  ,   expandedTab = "    " // CommonMark specifies tab as 4 spaces

  function switchInline(stream, state, f) {
    state.f = state.inline = f;
    return f(stream, state);
  }

  function switchBlock(stream, state, f) {
    state.f = state.block = f;
    return f(stream, state);
  }

  function lineIsEmpty(line) {
    return !line || !/\S/.test(line.string)
  }

  // Blocks

  function blankLine(state) {
    // Reset linkTitle state
    state.linkTitle = false;
    state.linkHref = false;
    state.linkText = false;
    // Reset EM state
    state.em = false;
    // Reset STRONG state
    state.strong = false;
    // Reset strikethrough state
    state.strikethrough = false;
    // Reset state.quote
    state.quote = 0;
    // Reset state.indentedCode
    state.indentedCode = false;
    if (state.f == htmlBlock) {
      var exit = htmlModeMissing
      if (!exit) {
        var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
        exit = inner.mode.name == "xml" && inner.state.tagStart === null &&
          (!inner.state.context && inner.state.tokenize.isInText)
      }
      if (exit) {
        state.f = inlineNormal;
        state.block = blockNormal;
        state.htmlState = null;
      }
    }
    // Reset state.trailingSpace
    state.trailingSpace = 0;
    state.trailingSpaceNewLine = false;
    // Mark this line as blank
    state.prevLine = state.thisLine
    state.thisLine = {stream: null}
    return null;
  }

  function blockNormal(stream, state) {
    var firstTokenOnLine = stream.column() === state.indentation;
    var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);
    var prevLineIsIndentedCode = state.indentedCode;
    var prevLineIsHr = state.prevLine.hr;
    var prevLineIsList = state.list !== false;
    var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;

    state.indentedCode = false;

    var lineIndentation = state.indentation;
    // compute once per line (on first token)
    if (state.indentationDiff === null) {
      state.indentationDiff = state.indentation;
      if (prevLineIsList) {
        // Reset inline styles which shouldn't propagate aross list items
        state.em = false;
        state.strong = false;
        state.code = false;
        state.strikethrough = false;

        state.list = null;
        // While this list item's marker's indentation is less than the deepest
        //  list item's content's indentation,pop the deepest list item
        //  indentation off the stack, and update block indentation state
        while (lineIndentation < state.listStack[state.listStack.length - 1]) {
          state.listStack.pop();
          if (state.listStack.length) {
            state.indentation = state.listStack[state.listStack.length - 1];
          // less than the first list's indent -> the line is no longer a list
          } else {
            state.list = false;
          }
        }
        if (state.list !== false) {
          state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]
        }
      }
    }

    // not comprehensive (currently only for setext detection purposes)
    var allowsInlineContinuation = (
        !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&
        (!prevLineIsList || !prevLineIsIndentedCode) &&
        !state.prevLine.fencedCodeEnd
    );

    var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&
      state.indentation <= maxNonCodeIndentation && stream.match(hrRE);

    var match = null;
    if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||
         state.prevLine.header || prevLineLineIsEmpty)) {
      stream.skipToEnd();
      state.indentedCode = true;
      return tokenTypes.code;
    } else if (stream.eatSpace()) {
      return null;
    } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {
      state.quote = 0;
      state.header = match[1].length;
      state.thisLine.header = true;
      if (modeCfg.highlightFormatting) state.formatting = "header";
      state.f = state.inline;
      return getType(state);
    } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {
      state.quote = firstTokenOnLine ? 1 : state.quote + 1;
      if (modeCfg.highlightFormatting) state.formatting = "quote";
      stream.eatSpace();
      return getType(state);
    } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {
      var listType = match[1] ? "ol" : "ul";

      state.indentation = lineIndentation + stream.current().length;
      state.list = true;
      state.quote = 0;

      // Add this list item's content's indentation to the stack
      state.listStack.push(state.indentation);

      if (modeCfg.taskLists && stream.match(taskListRE, false)) {
        state.taskList = true;
      }
      state.f = state.inline;
      if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType];
      return getType(state);
    } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {
      state.quote = 0;
      state.fencedEndRE = new RegExp(match[1] + "+ *$");
      // try switching mode
      state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2]);
      if (state.localMode) state.localState = CodeMirror.startState(state.localMode);
      state.f = state.block = local;
      if (modeCfg.highlightFormatting) state.formatting = "code-block";
      state.code = -1
      return getType(state);
    // SETEXT has lowest block-scope precedence after HR, so check it after
    //  the others (code, blockquote, list...)
    } else if (
      // if setext set, indicates line after ---/===
      state.setext || (
        // line before ---/===
        (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&
        !state.code && !isHr && !linkDefRE.test(stream.string) &&
        (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))
      )
    ) {
      if ( !state.setext ) {
        state.header = match[0].charAt(0) == '=' ? 1 : 2;
        state.setext = state.header;
      } else {
        state.header = state.setext;
        // has no effect on type so we can reset it now
        state.setext = 0;
        stream.skipToEnd();
        if (modeCfg.highlightFormatting) state.formatting = "header";
      }
      state.thisLine.header = true;
      state.f = state.inline;
      return getType(state);
    } else if (isHr) {
      stream.skipToEnd();
      state.hr = true;
      state.thisLine.hr = true;
      return tokenTypes.hr;
    } else if (stream.peek() === '[') {
      return switchInline(stream, state, footnoteLink);
    }

    return switchInline(stream, state, state.inline);
  }

  function htmlBlock(stream, state) {
    var style = htmlMode.token(stream, state.htmlState);
    if (!htmlModeMissing) {
      var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
      if ((inner.mode.name == "xml" && inner.state.tagStart === null &&
           (!inner.state.context && inner.state.tokenize.isInText)) ||
          (state.md_inside && stream.current().indexOf(">") > -1)) {
        state.f = inlineNormal;
        state.block = blockNormal;
        state.htmlState = null;
      }
    }
    return style;
  }

  function local(stream, state) {
    var currListInd = state.listStack[state.listStack.length - 1] || 0;
    var hasExitedList = state.indentation < currListInd;
    var maxFencedEndInd = currListInd + 3;
    if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {
      if (modeCfg.highlightFormatting) state.formatting = "code-block";
      var returnType;
      if (!hasExitedList) returnType = getType(state)
      state.localMode = state.localState = null;
      state.block = blockNormal;
      state.f = inlineNormal;
      state.fencedEndRE = null;
      state.code = 0
      state.thisLine.fencedCodeEnd = true;
      if (hasExitedList) return switchBlock(stream, state, state.block);
      return returnType;
    } else if (state.localMode) {
      return state.localMode.token(stream, state.localState);
    } else {
      stream.skipToEnd();
      return tokenTypes.code;
    }
  }

  // Inline
  function getType(state) {
    var styles = [];

    if (state.formatting) {
      styles.push(tokenTypes.formatting);

      if (typeof state.formatting === "string") state.formatting = [state.formatting];

      for (var i = 0; i < state.formatting.length; i++) {
        styles.push(tokenTypes.formatting + "-" + state.formatting[i]);

        if (state.formatting[i] === "header") {
          styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header);
        }

        // Add `formatting-quote` and `formatting-quote-#` for blockquotes
        // Add `error` instead if the maximum blockquote nesting depth is passed
        if (state.formatting[i] === "quote") {
          if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
            styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote);
          } else {
            styles.push("error");
          }
        }
      }
    }

    if (state.taskOpen) {
      styles.push("meta");
      return styles.length ? styles.join(' ') : null;
    }
    if (state.taskClosed) {
      styles.push("property");
      return styles.length ? styles.join(' ') : null;
    }

    if (state.linkHref) {
      styles.push(tokenTypes.linkHref, "url");
    } else { // Only apply inline styles to non-url text
      if (state.strong) { styles.push(tokenTypes.strong); }
      if (state.em) { styles.push(tokenTypes.em); }
      if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }
      if (state.emoji) { styles.push(tokenTypes.emoji); }
      if (state.linkText) { styles.push(tokenTypes.linkText); }
      if (state.code) { styles.push(tokenTypes.code); }
      if (state.image) { styles.push(tokenTypes.image); }
      if (state.imageAltText) { styles.push(tokenTypes.imageAltText, "link"); }
      if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }
    }

    if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); }

    if (state.quote) {
      styles.push(tokenTypes.quote);

      // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth
      if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
        styles.push(tokenTypes.quote + "-" + state.quote);
      } else {
        styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth);
      }
    }

    if (state.list !== false) {
      var listMod = (state.listStack.length - 1) % 3;
      if (!listMod) {
        styles.push(tokenTypes.list1);
      } else if (listMod === 1) {
        styles.push(tokenTypes.list2);
      } else {
        styles.push(tokenTypes.list3);
      }
    }

    if (state.trailingSpaceNewLine) {
      styles.push("trailing-space-new-line");
    } else if (state.trailingSpace) {
      styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b"));
    }

    return styles.length ? styles.join(' ') : null;
  }

  function handleText(stream, state) {
    if (stream.match(textRE, true)) {
      return getType(state);
    }
    return undefined;
  }

  function inlineNormal(stream, state) {
    var style = state.text(stream, state);
    if (typeof style !== 'undefined')
      return style;

    if (state.list) { // List marker (*, +, -, 1., etc)
      state.list = null;
      return getType(state);
    }

    if (state.taskList) {
      var taskOpen = stream.match(taskListRE, true)[1] === " ";
      if (taskOpen) state.taskOpen = true;
      else state.taskClosed = true;
      if (modeCfg.highlightFormatting) state.formatting = "task";
      state.taskList = false;
      return getType(state);
    }

    state.taskOpen = false;
    state.taskClosed = false;

    if (state.header && stream.match(/^#+$/, true)) {
      if (modeCfg.highlightFormatting) state.formatting = "header";
      return getType(state);
    }

    var ch = stream.next();

    // Matches link titles present on next line
    if (state.linkTitle) {
      state.linkTitle = false;
      var matchCh = ch;
      if (ch === '(') {
        matchCh = ')';
      }
      matchCh = (matchCh+'').replace(/([.?*+^\[\]\\(){}|-])/g, "\\$1");
      var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh;
      if (stream.match(new RegExp(regex), true)) {
        return tokenTypes.linkHref;
      }
    }

    // If this block is changed, it may need to be updated in GFM mode
    if (ch === '`') {
      var previousFormatting = state.formatting;
      if (modeCfg.highlightFormatting) state.formatting = "code";
      stream.eatWhile('`');
      var count = stream.current().length
      if (state.code == 0 && (!state.quote || count == 1)) {
        state.code = count
        return getType(state)
      } else if (count == state.code) { // Must be exact
        var t = getType(state)
        state.code = 0
        return t
      } else {
        state.formatting = previousFormatting
        return getType(state)
      }
    } else if (state.code) {
      return getType(state);
    }

    if (ch === '\\') {
      stream.next();
      if (modeCfg.highlightFormatting) {
        var type = getType(state);
        var formattingEscape = tokenTypes.formatting + "-escape";
        return type ? type + " " + formattingEscape : formattingEscape;
      }
    }

    if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) {
      state.imageMarker = true;
      state.image = true;
      if (modeCfg.highlightFormatting) state.formatting = "image";
      return getType(state);
    }

    if (ch === '[' && state.imageMarker && stream.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/, false)) {
      state.imageMarker = false;
      state.imageAltText = true
      if (modeCfg.highlightFormatting) state.formatting = "image";
      return getType(state);
    }

    if (ch === ']' && state.imageAltText) {
      if (modeCfg.highlightFormatting) state.formatting = "image";
      var type = getType(state);
      state.imageAltText = false;
      state.image = false;
      state.inline = state.f = linkHref;
      return type;
    }

    if (ch === '[' && !state.image) {
      if (state.linkText && stream.match(/^.*?\]/)) return getType(state)
      state.linkText = true;
      if (modeCfg.highlightFormatting) state.formatting = "link";
      return getType(state);
    }

    if (ch === ']' && state.linkText) {
      if (modeCfg.highlightFormatting) state.formatting = "link";
      var type = getType(state);
      state.linkText = false;
      state.inline = state.f = stream.match(/\(.*?\)| ?\[.*?\]/, false) ? linkHref : inlineNormal
      return type;
    }

    if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) {
      state.f = state.inline = linkInline;
      if (modeCfg.highlightFormatting) state.formatting = "link";
      var type = getType(state);
      if (type){
        type += " ";
      } else {
        type = "";
      }
      return type + tokenTypes.linkInline;
    }

    if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) {
      state.f = state.inline = linkInline;
      if (modeCfg.highlightFormatting) state.formatting = "link";
      var type = getType(state);
      if (type){
        type += " ";
      } else {
        type = "";
      }
      return type + tokenTypes.linkEmail;
    }

    if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i, false)) {
      var end = stream.string.indexOf(">", stream.pos);
      if (end != -1) {
        var atts = stream.string.substring(stream.start, end);
        if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true;
      }
      stream.backUp(1);
      state.htmlState = CodeMirror.startState(htmlMode);
      return switchBlock(stream, state, htmlBlock);
    }

    if (modeCfg.xml && ch === '<' && stream.match(/^\/\w*?>/)) {
      state.md_inside = false;
      return "tag";
    } else if (ch === "*" || ch === "_") {
      var len = 1, before = stream.pos == 1 ? " " : stream.string.charAt(stream.pos - 2)
      while (len < 3 && stream.eat(ch)) len++
      var after = stream.peek() || " "
      // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis
      var leftFlanking = !/\s/.test(after) && (!punctuation.test(after) || /\s/.test(before) || punctuation.test(before))
      var rightFlanking = !/\s/.test(before) && (!punctuation.test(before) || /\s/.test(after) || punctuation.test(after))
      var setEm = null, setStrong = null
      if (len % 2) { // Em
        if (!state.em && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
          setEm = true
        else if (state.em == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
          setEm = false
      }
      if (len > 1) { // Strong
        if (!state.strong && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
          setStrong = true
        else if (state.strong == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
          setStrong = false
      }
      if (setStrong != null || setEm != null) {
        if (modeCfg.highlightFormatting) state.formatting = setEm == null ? "strong" : setStrong == null ? "em" : "strong em"
        if (setEm === true) state.em = ch
        if (setStrong === true) state.strong = ch
        var t = getType(state)
        if (setEm === false) state.em = false
        if (setStrong === false) state.strong = false
        return t
      }
    } else if (ch === ' ') {
      if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces
        if (stream.peek() === ' ') { // Surrounded by spaces, ignore
          return getType(state);
        } else { // Not surrounded by spaces, back up pointer
          stream.backUp(1);
        }
      }
    }

    if (modeCfg.strikethrough) {
      if (ch === '~' && stream.eatWhile(ch)) {
        if (state.strikethrough) {// Remove strikethrough
          if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
          var t = getType(state);
          state.strikethrough = false;
          return t;
        } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough
          state.strikethrough = true;
          if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
          return getType(state);
        }
      } else if (ch === ' ') {
        if (stream.match(/^~~/, true)) { // Probably surrounded by space
          if (stream.peek() === ' ') { // Surrounded by spaces, ignore
            return getType(state);
          } else { // Not surrounded by spaces, back up pointer
            stream.backUp(2);
          }
        }
      }
    }

    if (modeCfg.emoji && ch === ":" && stream.match(/^[a-z_\d+-]+:/)) {
      state.emoji = true;
      if (modeCfg.highlightFormatting) state.formatting = "emoji";
      var retType = getType(state);
      state.emoji = false;
      return retType;
    }

    if (ch === ' ') {
      if (stream.match(/^ +$/, false)) {
        state.trailingSpace++;
      } else if (state.trailingSpace) {
        state.trailingSpaceNewLine = true;
      }
    }

    return getType(state);
  }

  function linkInline(stream, state) {
    var ch = stream.next();

    if (ch === ">") {
      state.f = state.inline = inlineNormal;
      if (modeCfg.highlightFormatting) state.formatting = "link";
      var type = getType(state);
      if (type){
        type += " ";
      } else {
        type = "";
      }
      return type + tokenTypes.linkInline;
    }

    stream.match(/^[^>]+/, true);

    return tokenTypes.linkInline;
  }

  function linkHref(stream, state) {
    // Check if space, and return NULL if so (to avoid marking the space)
    if(stream.eatSpace()){
      return null;
    }
    var ch = stream.next();
    if (ch === '(' || ch === '[') {
      state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]");
      if (modeCfg.highlightFormatting) state.formatting = "link-string";
      state.linkHref = true;
      return getType(state);
    }
    return 'error';
  }

  var linkRE = {
    ")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,
    "]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/
  }

  function getLinkHrefInside(endChar) {
    return function(stream, state) {
      var ch = stream.next();

      if (ch === endChar) {
        state.f = state.inline = inlineNormal;
        if (modeCfg.highlightFormatting) state.formatting = "link-string";
        var returnState = getType(state);
        state.linkHref = false;
        return returnState;
      }

      stream.match(linkRE[endChar])
      state.linkHref = true;
      return getType(state);
    };
  }

  function footnoteLink(stream, state) {
    if (stream.match(/^([^\]\\]|\\.)*\]:/, false)) {
      state.f = footnoteLinkInside;
      stream.next(); // Consume [
      if (modeCfg.highlightFormatting) state.formatting = "link";
      state.linkText = true;
      return getType(state);
    }
    return switchInline(stream, state, inlineNormal);
  }

  function footnoteLinkInside(stream, state) {
    if (stream.match(/^\]:/, true)) {
      state.f = state.inline = footnoteUrl;
      if (modeCfg.highlightFormatting) state.formatting = "link";
      var returnType = getType(state);
      state.linkText = false;
      return returnType;
    }

    stream.match(/^([^\]\\]|\\.)+/, true);

    return tokenTypes.linkText;
  }

  function footnoteUrl(stream, state) {
    // Check if space, and return NULL if so (to avoid marking the space)
    if(stream.eatSpace()){
      return null;
    }
    // Match URL
    stream.match(/^[^\s]+/, true);
    // Check for link title
    if (stream.peek() === undefined) { // End of line, set flag to check next line
      state.linkTitle = true;
    } else { // More content on line, check if link title
      stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true);
    }
    state.f = state.inline = inlineNormal;
    return tokenTypes.linkHref + " url";
  }

  var mode = {
    startState: function() {
      return {
        f: blockNormal,

        prevLine: {stream: null},
        thisLine: {stream: null},

        block: blockNormal,
        htmlState: null,
        indentation: 0,

        inline: inlineNormal,
        text: handleText,

        formatting: false,
        linkText: false,
        linkHref: false,
        linkTitle: false,
        code: 0,
        em: false,
        strong: false,
        header: 0,
        setext: 0,
        hr: false,
        taskList: false,
        list: false,
        listStack: [],
        quote: 0,
        trailingSpace: 0,
        trailingSpaceNewLine: false,
        strikethrough: false,
        emoji: false,
        fencedEndRE: null
      };
    },

    copyState: function(s) {
      return {
        f: s.f,

        prevLine: s.prevLine,
        thisLine: s.thisLine,

        block: s.block,
        htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),
        indentation: s.indentation,

        localMode: s.localMode,
        localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,

        inline: s.inline,
        text: s.text,
        formatting: false,
        linkText: s.linkText,
        linkTitle: s.linkTitle,
        linkHref: s.linkHref,
        code: s.code,
        em: s.em,
        strong: s.strong,
        strikethrough: s.strikethrough,
        emoji: s.emoji,
        header: s.header,
        setext: s.setext,
        hr: s.hr,
        taskList: s.taskList,
        list: s.list,
        listStack: s.listStack.slice(0),
        quote: s.quote,
        indentedCode: s.indentedCode,
        trailingSpace: s.trailingSpace,
        trailingSpaceNewLine: s.trailingSpaceNewLine,
        md_inside: s.md_inside,
        fencedEndRE: s.fencedEndRE
      };
    },

    token: function(stream, state) {

      // Reset state.formatting
      state.formatting = false;

      if (stream != state.thisLine.stream) {
        state.header = 0;
        state.hr = false;

        if (stream.match(/^\s*$/, true)) {
          blankLine(state);
          return null;
        }

        state.prevLine = state.thisLine
        state.thisLine = {stream: stream}

        // Reset state.taskList
        state.taskList = false;

        // Reset state.trailingSpace
        state.trailingSpace = 0;
        state.trailingSpaceNewLine = false;

        if (!state.localState) {
          state.f = state.block;
          if (state.f != htmlBlock) {
            var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, expandedTab).length;
            state.indentation = indentation;
            state.indentationDiff = null;
            if (indentation > 0) return null;
          }
        }
      }
      return state.f(stream, state);
    },

    innerMode: function(state) {
      if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};
      if (state.localState) return {state: state.localState, mode: state.localMode};
      return {state: state, mode: mode};
    },

    indent: function(state, textAfter, line) {
      if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)
      if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)
      return CodeMirror.Pass
    },

    blankLine: blankLine,

    getType: getType,

    blockCommentStart: "<!--",
    blockCommentEnd: "-->",
    closeBrackets: "()[]{}''\"\"``",
    fold: "markdown"
  };
  return mode;
}, "xml");

CodeMirror.defineMIME("text/markdown", "markdown");

CodeMirror.defineMIME("text/x-markdown", "markdown");

});
editors/codemirror/mode/markdown/markdown.min.js000064400000031676152177723720016124 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../xml/xml"),require("../meta")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../meta"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("markdown",(function(b,c){function d(c){if(a.findModeByName){var d=a.findModeByName(c);d&&(c=d.mime||d.mimes[0])}var e=a.getMode(b,c);return"null"==e.name?null:e}function e(a,b,c){return b.f=b.inline=c,c(a,b)}function f(a,b,c){return b.f=b.block=c,c(a,b)}function g(a){return!a||!/\S/.test(a.string)}function h(b){if(b.linkTitle=!1,b.linkHref=!1,b.linkText=!1,b.em=!1,b.strong=!1,b.strikethrough=!1,b.quote=0,b.indentedCode=!1,b.f==j){var c=v;if(!c){var d=a.innerMode(u,b.htmlState);c="xml"==d.mode.name&&null===d.state.tagStart&&!d.state.context&&d.state.tokenize.isInText}c&&(b.f=n,b.block=i,b.htmlState=null)}return b.trailingSpace=0,b.trailingSpaceNewLine=!1,b.prevLine=b.thisLine,b.thisLine={stream:null},null}function i(b,f){var h=b.column()===f.indentation,i=g(f.prevLine.stream),j=f.indentedCode,m=f.prevLine.hr,n=f.list!==!1,o=(f.listStack[f.listStack.length-1]||0)+3;f.indentedCode=!1;var p=f.indentation;if(null===f.indentationDiff&&(f.indentationDiff=f.indentation,n)){for(f.em=!1,f.strong=!1,f.code=!1,f.strikethrough=!1,f.list=null;p<f.listStack[f.listStack.length-1];)f.listStack.pop(),f.listStack.length?f.indentation=f.listStack[f.listStack.length-1]:f.list=!1;f.list!==!1&&(f.indentationDiff=p-f.listStack[f.listStack.length-1])}var q=!(i||m||f.prevLine.header||n&&j||f.prevLine.fencedCodeEnd),s=(f.list===!1||m||i)&&f.indentation<=o&&b.match(y),t=null;if(f.indentationDiff>=4&&(j||f.prevLine.fencedCodeEnd||f.prevLine.header||i))return b.skipToEnd(),f.indentedCode=!0,w.code;if(b.eatSpace())return null;if(h&&f.indentation<=o&&(t=b.match(B))&&t[1].length<=6)return f.quote=0,f.header=t[1].length,f.thisLine.header=!0,c.highlightFormatting&&(f.formatting="header"),f.f=f.inline,l(f);if(f.indentation<=o&&b.eat(">"))return f.quote=h?1:f.quote+1,c.highlightFormatting&&(f.formatting="quote"),b.eatSpace(),l(f);if(!s&&!f.setext&&h&&f.indentation<=o&&(t=b.match(z))){var u=t[1]?"ol":"ul";return f.indentation=p+b.current().length,f.list=!0,f.quote=0,f.listStack.push(f.indentation),c.taskLists&&b.match(A,!1)&&(f.taskList=!0),f.f=f.inline,c.highlightFormatting&&(f.formatting=["list","list-"+u]),l(f)}return h&&f.indentation<=o&&(t=b.match(E,!0))?(f.quote=0,f.fencedEndRE=new RegExp(t[1]+"+ *$"),f.localMode=c.fencedCodeBlockHighlighting&&d(t[2]),f.localMode&&(f.localState=a.startState(f.localMode)),f.f=f.block=k,c.highlightFormatting&&(f.formatting="code-block"),f.code=-1,l(f)):f.setext||!(q&&n||f.quote||f.list!==!1||f.code||s||F.test(b.string))&&(t=b.lookAhead(1))&&(t=t.match(C))?(f.setext?(f.header=f.setext,f.setext=0,b.skipToEnd(),c.highlightFormatting&&(f.formatting="header")):(f.header="="==t[0].charAt(0)?1:2,f.setext=f.header),f.thisLine.header=!0,f.f=f.inline,l(f)):s?(b.skipToEnd(),f.hr=!0,f.thisLine.hr=!0,w.hr):"["===b.peek()?e(b,f,r):e(b,f,f.inline)}function j(b,c){var d=u.token(b,c.htmlState);if(!v){var e=a.innerMode(u,c.htmlState);("xml"==e.mode.name&&null===e.state.tagStart&&!e.state.context&&e.state.tokenize.isInText||c.md_inside&&b.current().indexOf(">")>-1)&&(c.f=n,c.block=i,c.htmlState=null)}return d}function k(a,b){var d=b.listStack[b.listStack.length-1]||0,e=b.indentation<d,g=d+3;if(b.fencedEndRE&&b.indentation<=g&&(e||a.match(b.fencedEndRE))){c.highlightFormatting&&(b.formatting="code-block");var h;return e||(h=l(b)),b.localMode=b.localState=null,b.block=i,b.f=n,b.fencedEndRE=null,b.code=0,b.thisLine.fencedCodeEnd=!0,e?f(a,b,b.block):h}return b.localMode?b.localMode.token(a,b.localState):(a.skipToEnd(),w.code)}function l(a){var b=[];if(a.formatting){b.push(w.formatting),"string"==typeof a.formatting&&(a.formatting=[a.formatting]);for(var d=0;d<a.formatting.length;d++)b.push(w.formatting+"-"+a.formatting[d]),"header"===a.formatting[d]&&b.push(w.formatting+"-"+a.formatting[d]+"-"+a.header),"quote"===a.formatting[d]&&(!c.maxBlockquoteDepth||c.maxBlockquoteDepth>=a.quote?b.push(w.formatting+"-"+a.formatting[d]+"-"+a.quote):b.push("error"))}if(a.taskOpen)return b.push("meta"),b.length?b.join(" "):null;if(a.taskClosed)return b.push("property"),b.length?b.join(" "):null;if(a.linkHref?b.push(w.linkHref,"url"):(a.strong&&b.push(w.strong),a.em&&b.push(w.em),a.strikethrough&&b.push(w.strikethrough),a.emoji&&b.push(w.emoji),a.linkText&&b.push(w.linkText),a.code&&b.push(w.code),a.image&&b.push(w.image),a.imageAltText&&b.push(w.imageAltText,"link"),a.imageMarker&&b.push(w.imageMarker)),a.header&&b.push(w.header,w.header+"-"+a.header),a.quote&&(b.push(w.quote),!c.maxBlockquoteDepth||c.maxBlockquoteDepth>=a.quote?b.push(w.quote+"-"+a.quote):b.push(w.quote+"-"+c.maxBlockquoteDepth)),a.list!==!1){var e=(a.listStack.length-1)%3;e?1===e?b.push(w.list2):b.push(w.list3):b.push(w.list1)}return a.trailingSpaceNewLine?b.push("trailing-space-new-line"):a.trailingSpace&&b.push("trailing-space-"+(a.trailingSpace%2?"a":"b")),b.length?b.join(" "):null}function m(a,b){if(a.match(D,!0))return l(b)}function n(b,d){var e=d.text(b,d);if("undefined"!=typeof e)return e;if(d.list)return d.list=null,l(d);if(d.taskList){var g=" "===b.match(A,!0)[1];return g?d.taskOpen=!0:d.taskClosed=!0,c.highlightFormatting&&(d.formatting="task"),d.taskList=!1,l(d)}if(d.taskOpen=!1,d.taskClosed=!1,d.header&&b.match(/^#+$/,!0))return c.highlightFormatting&&(d.formatting="header"),l(d);var h=b.next();if(d.linkTitle){d.linkTitle=!1;var i=h;"("===h&&(i=")"),i=(i+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1");var k="^\\s*(?:[^"+i+"\\\\]+|\\\\\\\\|\\\\.)"+i;if(b.match(new RegExp(k),!0))return w.linkHref}if("`"===h){var m=d.formatting;c.highlightFormatting&&(d.formatting="code"),b.eatWhile("`");var q=b.current().length;if(0!=d.code||d.quote&&1!=q){if(q==d.code){var r=l(d);return d.code=0,r}return d.formatting=m,l(d)}return d.code=q,l(d)}if(d.code)return l(d);if("\\"===h&&(b.next(),c.highlightFormatting)){var s=l(d),t=w.formatting+"-escape";return s?s+" "+t:t}if("!"===h&&b.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return d.imageMarker=!0,d.image=!0,c.highlightFormatting&&(d.formatting="image"),l(d);if("["===h&&d.imageMarker&&b.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return d.imageMarker=!1,d.imageAltText=!0,c.highlightFormatting&&(d.formatting="image"),l(d);if("]"===h&&d.imageAltText){c.highlightFormatting&&(d.formatting="image");var s=l(d);return d.imageAltText=!1,d.image=!1,d.inline=d.f=p,s}if("["===h&&!d.image)return d.linkText&&b.match(/^.*?\]/)?l(d):(d.linkText=!0,c.highlightFormatting&&(d.formatting="link"),l(d));if("]"===h&&d.linkText){c.highlightFormatting&&(d.formatting="link");var s=l(d);return d.linkText=!1,d.inline=d.f=b.match(/\(.*?\)| ?\[.*?\]/,!1)?p:n,s}if("<"===h&&b.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){d.f=d.inline=o,c.highlightFormatting&&(d.formatting="link");var s=l(d);return s?s+=" ":s="",s+w.linkInline}if("<"===h&&b.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){d.f=d.inline=o,c.highlightFormatting&&(d.formatting="link");var s=l(d);return s?s+=" ":s="",s+w.linkEmail}if(c.xml&&"<"===h&&b.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var v=b.string.indexOf(">",b.pos);if(v!=-1){var x=b.string.substring(b.start,v);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(x)&&(d.md_inside=!0)}return b.backUp(1),d.htmlState=a.startState(u),f(b,d,j)}if(c.xml&&"<"===h&&b.match(/^\/\w*?>/))return d.md_inside=!1,"tag";if("*"===h||"_"===h){for(var y=1,z=1==b.pos?" ":b.string.charAt(b.pos-2);y<3&&b.eat(h);)y++;var B=b.peek()||" ",C=!/\s/.test(B)&&(!G.test(B)||/\s/.test(z)||G.test(z)),D=!/\s/.test(z)&&(!G.test(z)||/\s/.test(B)||G.test(B)),E=null,F=null;if(y%2&&(d.em||!C||"*"!==h&&D&&!G.test(z)?d.em!=h||!D||"*"!==h&&C&&!G.test(B)||(E=!1):E=!0),y>1&&(d.strong||!C||"*"!==h&&D&&!G.test(z)?d.strong!=h||!D||"*"!==h&&C&&!G.test(B)||(F=!1):F=!0),null!=F||null!=E){c.highlightFormatting&&(d.formatting=null==E?"strong":null==F?"em":"strong em"),E===!0&&(d.em=h),F===!0&&(d.strong=h);var r=l(d);return E===!1&&(d.em=!1),F===!1&&(d.strong=!1),r}}else if(" "===h&&(b.eat("*")||b.eat("_"))){if(" "===b.peek())return l(d);b.backUp(1)}if(c.strikethrough)if("~"===h&&b.eatWhile(h)){if(d.strikethrough){c.highlightFormatting&&(d.formatting="strikethrough");var r=l(d);return d.strikethrough=!1,r}if(b.match(/^[^\s]/,!1))return d.strikethrough=!0,c.highlightFormatting&&(d.formatting="strikethrough"),l(d)}else if(" "===h&&b.match(/^~~/,!0)){if(" "===b.peek())return l(d);b.backUp(2)}if(c.emoji&&":"===h&&b.match(/^[a-z_\d+-]+:/)){d.emoji=!0,c.highlightFormatting&&(d.formatting="emoji");var H=l(d);return d.emoji=!1,H}return" "===h&&(b.match(/^ +$/,!1)?d.trailingSpace++:d.trailingSpace&&(d.trailingSpaceNewLine=!0)),l(d)}function o(a,b){var d=a.next();if(">"===d){b.f=b.inline=n,c.highlightFormatting&&(b.formatting="link");var e=l(b);return e?e+=" ":e="",e+w.linkInline}return a.match(/^[^>]+/,!0),w.linkInline}function p(a,b){if(a.eatSpace())return null;var d=a.next();return"("===d||"["===d?(b.f=b.inline=q("("===d?")":"]"),c.highlightFormatting&&(b.formatting="link-string"),b.linkHref=!0,l(b)):"error"}function q(a){return function(b,d){var e=b.next();if(e===a){d.f=d.inline=n,c.highlightFormatting&&(d.formatting="link-string");var f=l(d);return d.linkHref=!1,f}return b.match(I[a]),d.linkHref=!0,l(d)}}function r(a,b){return a.match(/^([^\]\\]|\\.)*\]:/,!1)?(b.f=s,a.next(),c.highlightFormatting&&(b.formatting="link"),b.linkText=!0,l(b)):e(a,b,n)}function s(a,b){if(a.match(/^\]:/,!0)){b.f=b.inline=t,c.highlightFormatting&&(b.formatting="link");var d=l(b);return b.linkText=!1,d}return a.match(/^([^\]\\]|\\.)+/,!0),w.linkText}function t(a,b){return a.eatSpace()?null:(a.match(/^[^\s]+/,!0),void 0===a.peek()?b.linkTitle=!0:a.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),b.f=b.inline=n,w.linkHref+" url")}var u=a.getMode(b,"text/html"),v="null"==u.name;void 0===c.highlightFormatting&&(c.highlightFormatting=!1),void 0===c.maxBlockquoteDepth&&(c.maxBlockquoteDepth=0),void 0===c.taskLists&&(c.taskLists=!1),void 0===c.strikethrough&&(c.strikethrough=!1),void 0===c.emoji&&(c.emoji=!1),void 0===c.fencedCodeBlockHighlighting&&(c.fencedCodeBlockHighlighting=!0),void 0===c.xml&&(c.xml=!0),void 0===c.tokenTypeOverrides&&(c.tokenTypeOverrides={});var w={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var x in w)w.hasOwnProperty(x)&&c.tokenTypeOverrides[x]&&(w[x]=c.tokenTypeOverrides[x]);var y=/^([*\-_])(?:\s*\1){2,}\s*$/,z=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,A=/^\[(x| )\](?=\s)/i,B=c.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,C=/^ *(?:\={1,}|-{1,})\s*$/,D=/^[^#!\[\]*_\\<>` "'(~:]+/,E=/^(~~~+|```+)[ \t]*([\w+#-]*)[^\n`]*$/,F=/^\s*\[[^\]]+?\]:.*$/,G=/[!\"#$%&\'()*+,\-\.\/:;<=>?@\[\\\]^_`{|}~—]/,H="    ",I={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/},J={startState:function(){return{f:i,prevLine:{stream:null},thisLine:{stream:null},block:i,htmlState:null,indentation:0,inline:n,text:m,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(b){return{f:b.f,prevLine:b.prevLine,thisLine:b.thisLine,block:b.block,htmlState:b.htmlState&&a.copyState(u,b.htmlState),indentation:b.indentation,localMode:b.localMode,localState:b.localMode?a.copyState(b.localMode,b.localState):null,inline:b.inline,text:b.text,formatting:!1,linkText:b.linkText,linkTitle:b.linkTitle,linkHref:b.linkHref,code:b.code,em:b.em,strong:b.strong,strikethrough:b.strikethrough,emoji:b.emoji,header:b.header,setext:b.setext,hr:b.hr,taskList:b.taskList,list:b.list,listStack:b.listStack.slice(0),quote:b.quote,indentedCode:b.indentedCode,trailingSpace:b.trailingSpace,trailingSpaceNewLine:b.trailingSpaceNewLine,md_inside:b.md_inside,fencedEndRE:b.fencedEndRE}},token:function(a,b){if(b.formatting=!1,a!=b.thisLine.stream){if(b.header=0,b.hr=!1,a.match(/^\s*$/,!0))return h(b),null;if(b.prevLine=b.thisLine,b.thisLine={stream:a},b.taskList=!1,b.trailingSpace=0,b.trailingSpaceNewLine=!1,!b.localState&&(b.f=b.block,b.f!=j)){var c=a.match(/^\s*/,!0)[0].replace(/\t/g,H).length;if(b.indentation=c,b.indentationDiff=null,c>0)return null}}return b.f(a,b)},innerMode:function(a){return a.block==j?{state:a.htmlState,mode:u}:a.localState?{state:a.localState,mode:a.localMode}:{state:a,mode:J}},indent:function(b,c,d){return b.block==j&&u.indent?u.indent(b.htmlState,c,d):b.localState&&b.localMode.indent?b.localMode.indent(b.localState,c,d):a.Pass},blankLine:h,getType:l,blockCommentStart:"<!--",blockCommentEnd:"-->",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return J}),"xml"),a.defineMIME("text/markdown","markdown"),a.defineMIME("text/x-markdown","markdown")}));editors/codemirror/mode/gas/gas.min.js000064400000010540152177723720013767 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("gas",(function(a,b){function c(a){h="#",j.ax="variable",j.eax="variable-2",j.rax="variable-3",j.bx="variable",j.ebx="variable-2",j.rbx="variable-3",j.cx="variable",j.ecx="variable-2",j.rcx="variable-3",j.dx="variable",j.edx="variable-2",j.rdx="variable-3",j.si="variable",j.esi="variable-2",j.rsi="variable-3",j.di="variable",j.edi="variable-2",j.rdi="variable-3",j.sp="variable",j.esp="variable-2",j.rsp="variable-3",j.bp="variable",j.ebp="variable-2",j.rbp="variable-3",j.ip="variable",j.eip="variable-2",j.rip="variable-3",j.cs="keyword",j.ds="keyword",j.ss="keyword",j.es="keyword",j.fs="keyword",j.gs="keyword"}function d(a){h="@",i.syntax="builtin",j.r0="variable",j.r1="variable",j.r2="variable",j.r3="variable",j.r4="variable",j.r5="variable",j.r6="variable",j.r7="variable",j.r8="variable",j.r9="variable",j.r10="variable",j.r11="variable",j.r12="variable",j.sp="variable-2",j.lr="variable-2",j.pc="variable-2",j.r13=j.sp,j.r14=j.lr,j.r15=j.pc,g.push((function(a,b){if("#"===a)return b.eatWhile(/\w/),"number"}))}function e(a,b){for(var c,d=!1;null!=(c=a.next());){if(c===b&&!d)return!1;d=!d&&"\\"===c}return d}function f(a,b){for(var c,d=!1;null!=(c=a.next());){if("/"===c&&d){b.tokenize=null;break}d="*"===c}return"comment"}var g=[],h="",i={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"},j={},k=(b.architecture||"x86").toLowerCase();return"x86"===k?c(b):"arm"!==k&&"armv6"!==k||d(b),{startState:function(){return{tokenize:null}},token:function(a,b){if(b.tokenize)return b.tokenize(a,b);if(a.eatSpace())return null;var c,d,k=a.next();if("/"===k&&a.eat("*"))return b.tokenize=f,f(a,b);if(k===h)return a.skipToEnd(),"comment";if('"'===k)return e(a,'"'),"string";if("."===k)return a.eatWhile(/\w/),d=a.current().toLowerCase(),c=i[d],c||null;if("="===k)return a.eatWhile(/\w/),"tag";if("{"===k)return"braket";if("}"===k)return"braket";if(/\d/.test(k))return"0"===k&&a.eat("x")?(a.eatWhile(/[0-9a-fA-F]/),"number"):(a.eatWhile(/\d/),"number");if(/\w/.test(k))return a.eatWhile(/\w/),a.eat(":")?"tag":(d=a.current().toLowerCase(),c=j[d],c||null);for(var l=0;l<g.length;l++)if(c=g[l](k,a,b))return c},lineComment:h,blockCommentStart:"/*",blockCommentEnd:"*/"}}))}));editors/codemirror/mode/gas/gas.js000064400000021267152177723720013215 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("gas", function(_config, parserConfig) {
  'use strict';

  // If an architecture is specified, its initialization function may
  // populate this array with custom parsing functions which will be
  // tried in the event that the standard functions do not find a match.
  var custom = [];

  // The symbol used to start a line comment changes based on the target
  // architecture.
  // If no architecture is pased in "parserConfig" then only multiline
  // comments will have syntax support.
  var lineCommentStartSymbol = "";

  // These directives are architecture independent.
  // Machine specific directives should go in their respective
  // architecture initialization function.
  // Reference:
  // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops
  var directives = {
    ".abort" : "builtin",
    ".align" : "builtin",
    ".altmacro" : "builtin",
    ".ascii" : "builtin",
    ".asciz" : "builtin",
    ".balign" : "builtin",
    ".balignw" : "builtin",
    ".balignl" : "builtin",
    ".bundle_align_mode" : "builtin",
    ".bundle_lock" : "builtin",
    ".bundle_unlock" : "builtin",
    ".byte" : "builtin",
    ".cfi_startproc" : "builtin",
    ".comm" : "builtin",
    ".data" : "builtin",
    ".def" : "builtin",
    ".desc" : "builtin",
    ".dim" : "builtin",
    ".double" : "builtin",
    ".eject" : "builtin",
    ".else" : "builtin",
    ".elseif" : "builtin",
    ".end" : "builtin",
    ".endef" : "builtin",
    ".endfunc" : "builtin",
    ".endif" : "builtin",
    ".equ" : "builtin",
    ".equiv" : "builtin",
    ".eqv" : "builtin",
    ".err" : "builtin",
    ".error" : "builtin",
    ".exitm" : "builtin",
    ".extern" : "builtin",
    ".fail" : "builtin",
    ".file" : "builtin",
    ".fill" : "builtin",
    ".float" : "builtin",
    ".func" : "builtin",
    ".global" : "builtin",
    ".gnu_attribute" : "builtin",
    ".hidden" : "builtin",
    ".hword" : "builtin",
    ".ident" : "builtin",
    ".if" : "builtin",
    ".incbin" : "builtin",
    ".include" : "builtin",
    ".int" : "builtin",
    ".internal" : "builtin",
    ".irp" : "builtin",
    ".irpc" : "builtin",
    ".lcomm" : "builtin",
    ".lflags" : "builtin",
    ".line" : "builtin",
    ".linkonce" : "builtin",
    ".list" : "builtin",
    ".ln" : "builtin",
    ".loc" : "builtin",
    ".loc_mark_labels" : "builtin",
    ".local" : "builtin",
    ".long" : "builtin",
    ".macro" : "builtin",
    ".mri" : "builtin",
    ".noaltmacro" : "builtin",
    ".nolist" : "builtin",
    ".octa" : "builtin",
    ".offset" : "builtin",
    ".org" : "builtin",
    ".p2align" : "builtin",
    ".popsection" : "builtin",
    ".previous" : "builtin",
    ".print" : "builtin",
    ".protected" : "builtin",
    ".psize" : "builtin",
    ".purgem" : "builtin",
    ".pushsection" : "builtin",
    ".quad" : "builtin",
    ".reloc" : "builtin",
    ".rept" : "builtin",
    ".sbttl" : "builtin",
    ".scl" : "builtin",
    ".section" : "builtin",
    ".set" : "builtin",
    ".short" : "builtin",
    ".single" : "builtin",
    ".size" : "builtin",
    ".skip" : "builtin",
    ".sleb128" : "builtin",
    ".space" : "builtin",
    ".stab" : "builtin",
    ".string" : "builtin",
    ".struct" : "builtin",
    ".subsection" : "builtin",
    ".symver" : "builtin",
    ".tag" : "builtin",
    ".text" : "builtin",
    ".title" : "builtin",
    ".type" : "builtin",
    ".uleb128" : "builtin",
    ".val" : "builtin",
    ".version" : "builtin",
    ".vtable_entry" : "builtin",
    ".vtable_inherit" : "builtin",
    ".warning" : "builtin",
    ".weak" : "builtin",
    ".weakref" : "builtin",
    ".word" : "builtin"
  };

  var registers = {};

  function x86(_parserConfig) {
    lineCommentStartSymbol = "#";

    registers.ax  = "variable";
    registers.eax = "variable-2";
    registers.rax = "variable-3";

    registers.bx  = "variable";
    registers.ebx = "variable-2";
    registers.rbx = "variable-3";

    registers.cx  = "variable";
    registers.ecx = "variable-2";
    registers.rcx = "variable-3";

    registers.dx  = "variable";
    registers.edx = "variable-2";
    registers.rdx = "variable-3";

    registers.si  = "variable";
    registers.esi = "variable-2";
    registers.rsi = "variable-3";

    registers.di  = "variable";
    registers.edi = "variable-2";
    registers.rdi = "variable-3";

    registers.sp  = "variable";
    registers.esp = "variable-2";
    registers.rsp = "variable-3";

    registers.bp  = "variable";
    registers.ebp = "variable-2";
    registers.rbp = "variable-3";

    registers.ip  = "variable";
    registers.eip = "variable-2";
    registers.rip = "variable-3";

    registers.cs  = "keyword";
    registers.ds  = "keyword";
    registers.ss  = "keyword";
    registers.es  = "keyword";
    registers.fs  = "keyword";
    registers.gs  = "keyword";
  }

  function armv6(_parserConfig) {
    // Reference:
    // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf
    // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf
    lineCommentStartSymbol = "@";
    directives.syntax = "builtin";

    registers.r0  = "variable";
    registers.r1  = "variable";
    registers.r2  = "variable";
    registers.r3  = "variable";
    registers.r4  = "variable";
    registers.r5  = "variable";
    registers.r6  = "variable";
    registers.r7  = "variable";
    registers.r8  = "variable";
    registers.r9  = "variable";
    registers.r10 = "variable";
    registers.r11 = "variable";
    registers.r12 = "variable";

    registers.sp  = "variable-2";
    registers.lr  = "variable-2";
    registers.pc  = "variable-2";
    registers.r13 = registers.sp;
    registers.r14 = registers.lr;
    registers.r15 = registers.pc;

    custom.push(function(ch, stream) {
      if (ch === '#') {
        stream.eatWhile(/\w/);
        return "number";
      }
    });
  }

  var arch = (parserConfig.architecture || "x86").toLowerCase();
  if (arch === "x86") {
    x86(parserConfig);
  } else if (arch === "arm" || arch === "armv6") {
    armv6(parserConfig);
  }

  function nextUntilUnescaped(stream, end) {
    var escaped = false, next;
    while ((next = stream.next()) != null) {
      if (next === end && !escaped) {
        return false;
      }
      escaped = !escaped && next === "\\";
    }
    return escaped;
  }

  function clikeComment(stream, state) {
    var maybeEnd = false, ch;
    while ((ch = stream.next()) != null) {
      if (ch === "/" && maybeEnd) {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch === "*");
    }
    return "comment";
  }

  return {
    startState: function() {
      return {
        tokenize: null
      };
    },

    token: function(stream, state) {
      if (state.tokenize) {
        return state.tokenize(stream, state);
      }

      if (stream.eatSpace()) {
        return null;
      }

      var style, cur, ch = stream.next();

      if (ch === "/") {
        if (stream.eat("*")) {
          state.tokenize = clikeComment;
          return clikeComment(stream, state);
        }
      }

      if (ch === lineCommentStartSymbol) {
        stream.skipToEnd();
        return "comment";
      }

      if (ch === '"') {
        nextUntilUnescaped(stream, '"');
        return "string";
      }

      if (ch === '.') {
        stream.eatWhile(/\w/);
        cur = stream.current().toLowerCase();
        style = directives[cur];
        return style || null;
      }

      if (ch === '=') {
        stream.eatWhile(/\w/);
        return "tag";
      }

      if (ch === '{') {
        return "braket";
      }

      if (ch === '}') {
        return "braket";
      }

      if (/\d/.test(ch)) {
        if (ch === "0" && stream.eat("x")) {
          stream.eatWhile(/[0-9a-fA-F]/);
          return "number";
        }
        stream.eatWhile(/\d/);
        return "number";
      }

      if (/\w/.test(ch)) {
        stream.eatWhile(/\w/);
        if (stream.eat(":")) {
          return 'tag';
        }
        cur = stream.current().toLowerCase();
        style = registers[cur];
        return style || null;
      }

      for (var i = 0; i < custom.length; i++) {
        style = custom[i](ch, stream, state);
        if (style) {
          return style;
        }
      }
    },

    lineComment: lineCommentStartSymbol,
    blockCommentStart: "/*",
    blockCommentEnd: "*/"
  };
});

});
editors/codemirror/mode/mathematica/mathematica.js000064400000013007152177723720016414 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Mathematica mode copyright (c) 2015 by Calin Barbat
// Based on code by Patrick Scheibe (halirutan)
// See: https://github.com/halirutan/Mathematica-Source-Highlighting/tree/master/src/lang-mma.js

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('mathematica', function(_config, _parserConfig) {

  // used pattern building blocks
  var Identifier = '[a-zA-Z\\$][a-zA-Z0-9\\$]*';
  var pBase      = "(?:\\d+)";
  var pFloat     = "(?:\\.\\d+|\\d+\\.\\d*|\\d+)";
  var pFloatBase = "(?:\\.\\w+|\\w+\\.\\w*|\\w+)";
  var pPrecision = "(?:`(?:`?"+pFloat+")?)";

  // regular expressions
  var reBaseForm        = new RegExp('(?:'+pBase+'(?:\\^\\^'+pFloatBase+pPrecision+'?(?:\\*\\^[+-]?\\d+)?))');
  var reFloatForm       = new RegExp('(?:' + pFloat + pPrecision + '?(?:\\*\\^[+-]?\\d+)?)');
  var reIdInContext     = new RegExp('(?:`?)(?:' + Identifier + ')(?:`(?:' + Identifier + '))*(?:`?)');

  function tokenBase(stream, state) {
    var ch;

    // get next character
    ch = stream.next();

    // string
    if (ch === '"') {
      state.tokenize = tokenString;
      return state.tokenize(stream, state);
    }

    // comment
    if (ch === '(') {
      if (stream.eat('*')) {
        state.commentLevel++;
        state.tokenize = tokenComment;
        return state.tokenize(stream, state);
      }
    }

    // go back one character
    stream.backUp(1);

    // look for numbers
    // Numbers in a baseform
    if (stream.match(reBaseForm, true, false)) {
      return 'number';
    }

    // Mathematica numbers. Floats (1.2, .2, 1.) can have optionally a precision (`float) or an accuracy definition
    // (``float). Note: while 1.2` is possible 1.2`` is not. At the end an exponent (float*^+12) can follow.
    if (stream.match(reFloatForm, true, false)) {
      return 'number';
    }

    /* In[23] and Out[34] */
    if (stream.match(/(?:In|Out)\[[0-9]*\]/, true, false)) {
      return 'atom';
    }

    // usage
    if (stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/, true, false)) {
      return 'meta';
    }

    // message
    if (stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/, true, false)) {
      return 'string-2';
    }

    // this makes a look-ahead match for something like variable:{_Integer}
    // the match is then forwarded to the mma-patterns tokenizer.
    if (stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/, true, false)) {
      return 'variable-2';
    }

    // catch variables which are used together with Blank (_), BlankSequence (__) or BlankNullSequence (___)
    // Cannot start with a number, but can have numbers at any other position. Examples
    // blub__Integer, a1_, b34_Integer32
    if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
      return 'variable-2';
    }
    if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/, true, false)) {
      return 'variable-2';
    }
    if (stream.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
      return 'variable-2';
    }

    // Named characters in Mathematica, like \[Gamma].
    if (stream.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/, true, false)) {
      return 'variable-3';
    }

    // Match all braces separately
    if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
      return 'bracket';
    }

    // Catch Slots (#, ##, #3, ##9 and the V10 named slots #name). I have never seen someone using more than one digit after #, so we match
    // only one.
    if (stream.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/, true, false)) {
      return 'variable-2';
    }

    // Literals like variables, keywords, functions
    if (stream.match(reIdInContext, true, false)) {
      return 'keyword';
    }

    // operators. Note that operators like @@ or /; are matched separately for each symbol.
    if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/, true, false)) {
      return 'operator';
    }

    // everything else is an error
    stream.next(); // advance the stream.
    return 'error';
  }

  function tokenString(stream, state) {
    var next, end = false, escaped = false;
    while ((next = stream.next()) != null) {
      if (next === '"' && !escaped) {
        end = true;
        break;
      }
      escaped = !escaped && next === '\\';
    }
    if (end && !escaped) {
      state.tokenize = tokenBase;
    }
    return 'string';
  };

  function tokenComment(stream, state) {
    var prev, next;
    while(state.commentLevel > 0 && (next = stream.next()) != null) {
      if (prev === '(' && next === '*') state.commentLevel++;
      if (prev === '*' && next === ')') state.commentLevel--;
      prev = next;
    }
    if (state.commentLevel <= 0) {
      state.tokenize = tokenBase;
    }
    return 'comment';
  }

  return {
    startState: function() {return {tokenize: tokenBase, commentLevel: 0};},
    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      return state.tokenize(stream, state);
    },
    blockCommentStart: "(*",
    blockCommentEnd: "*)"
  };
});

CodeMirror.defineMIME('text/x-mathematica', {
  name: 'mathematica'
});

});
editors/codemirror/mode/mathematica/mathematica.min.js000064400000004215152177723720017177 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("mathematica",(function(a,b){function c(a,b){var c;return c=a.next(),'"'===c?(b.tokenize=d,b.tokenize(a,b)):"("===c&&a.eat("*")?(b.commentLevel++,b.tokenize=e,b.tokenize(a,b)):(a.backUp(1),a.match(k,!0,!1)?"number":a.match(l,!0,!1)?"number":a.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":a.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":a.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string-2":a.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)?"variable-2":a.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variable-2":a.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)?"variable-2":a.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variable-2":a.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"variable-3":a.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":a.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variable-2":a.match(m,!0,!1)?"keyword":a.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(a.next(),"error"))}function d(a,b){for(var d,e=!1,f=!1;null!=(d=a.next());){if('"'===d&&!f){e=!0;break}f=!f&&"\\"===d}return e&&!f&&(b.tokenize=c),"string"}function e(a,b){for(var d,e;b.commentLevel>0&&null!=(e=a.next());)"("===d&&"*"===e&&b.commentLevel++,"*"===d&&")"===e&&b.commentLevel--,d=e;return b.commentLevel<=0&&(b.tokenize=c),"comment"}var f="[a-zA-Z\\$][a-zA-Z0-9\\$]*",g="(?:\\d+)",h="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",i="(?:\\.\\w+|\\w+\\.\\w*|\\w+)",j="(?:`(?:`?"+h+")?)",k=new RegExp("(?:"+g+"(?:\\^\\^"+i+j+"?(?:\\*\\^[+-]?\\d+)?))"),l=new RegExp("(?:"+h+j+"?(?:\\*\\^[+-]?\\d+)?)"),m=new RegExp("(?:`?)(?:"+f+")(?:`(?:"+f+"))*(?:`?)");return{startState:function(){return{tokenize:c,commentLevel:0}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)},blockCommentStart:"(*",blockCommentEnd:"*)"}})),a.defineMIME("text/x-mathematica",{name:"mathematica"})}));editors/codemirror/mode/pig/pig.js000064400000013263152177723720013224 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
 *      Pig Latin Mode for CodeMirror 2
 *      @author Prasanth Jayachandran
 *      @link   https://github.com/prasanthj/pig-codemirror-2
 *  This implementation is adapted from PL/SQL mode in CodeMirror 2.
 */
(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("pig", function(_config, parserConfig) {
  var keywords = parserConfig.keywords,
  builtins = parserConfig.builtins,
  types = parserConfig.types,
  multiLineStrings = parserConfig.multiLineStrings;

  var isOperatorChar = /[*+\-%<>=&?:\/!|]/;

  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }

  function tokenComment(stream, state) {
    var isEnd = false;
    var ch;
    while(ch = stream.next()) {
      if(ch == "/" && isEnd) {
        state.tokenize = tokenBase;
        break;
      }
      isEnd = (ch == "*");
    }
    return "comment";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while((next = stream.next()) != null) {
        if (next == quote && !escaped) {
          end = true; break;
        }
        escaped = !escaped && next == "\\";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = tokenBase;
      return "error";
    };
  }


  function tokenBase(stream, state) {
    var ch = stream.next();

    // is a start of string?
    if (ch == '"' || ch == "'")
      return chain(stream, state, tokenString(ch));
    // is it one of the special chars
    else if(/[\[\]{}\(\),;\.]/.test(ch))
      return null;
    // is it a number?
    else if(/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    // multi line comment or operator
    else if (ch == "/") {
      if (stream.eat("*")) {
        return chain(stream, state, tokenComment);
      }
      else {
        stream.eatWhile(isOperatorChar);
        return "operator";
      }
    }
    // single line comment or operator
    else if (ch=="-") {
      if(stream.eat("-")){
        stream.skipToEnd();
        return "comment";
      }
      else {
        stream.eatWhile(isOperatorChar);
        return "operator";
      }
    }
    // is it an operator
    else if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    else {
      // get the while word
      stream.eatWhile(/[\w\$_]/);
      // is it one of the listed keywords?
      if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
        //keywords can be used as variables like flatten(group), group.$0 etc..
        if (!stream.eat(")") && !stream.eat("."))
          return "keyword";
      }
      // is it one of the builtin functions?
      if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))
        return "variable-2";
      // is it one of the listed types?
      if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))
        return "variable-3";
      // default is a 'variable'
      return "variable";
    }
  }

  // Interface
  return {
    startState: function() {
      return {
        tokenize: tokenBase,
        startOfLine: true
      };
    },

    token: function(stream, state) {
      if(stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      return style;
    }
  };
});

(function() {
  function keywords(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  // builtin funcs taken from trunk revision 1303237
  var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
    + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
    + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
    + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
    + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
    + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
    + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  "
    + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
    + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
    + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ";

  // taken from QueryLexer.g
  var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
    + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
    + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
    + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
    + "NEQ MATCHES TRUE FALSE DUMP";

  // data types
  var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ";

  CodeMirror.defineMIME("text/x-pig", {
    name: "pig",
    builtins: keywords(pBuiltins),
    keywords: keywords(pKeywords),
    types: keywords(pTypes)
  });

  CodeMirror.registerHelper("hintWords", "pig", (pBuiltins + pTypes + pKeywords).split(" "));
}());

});
editors/codemirror/mode/pig/pig.min.js000064400000005540152177723720014005 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("pig",(function(a,b){function c(a,b,c){return b.tokenize=c,c(a,b)}function d(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=f;break}d="*"==c}return"comment"}function e(a){return function(b,c){for(var d,e=!1,g=!1;null!=(d=b.next());){if(d==a&&!e){g=!0;break}e=!e&&"\\"==d}return(g||!e&&!j)&&(c.tokenize=f),"error"}}function f(a,b){var f=a.next();return'"'==f||"'"==f?c(a,b,e(f)):/[\[\]{}\(\),;\.]/.test(f)?null:/\d/.test(f)?(a.eatWhile(/[\w\.]/),"number"):"/"==f?a.eat("*")?c(a,b,d):(a.eatWhile(k),"operator"):"-"==f?a.eat("-")?(a.skipToEnd(),"comment"):(a.eatWhile(k),"operator"):k.test(f)?(a.eatWhile(k),"operator"):(a.eatWhile(/[\w\$_]/),g&&g.propertyIsEnumerable(a.current().toUpperCase())&&!a.eat(")")&&!a.eat(".")?"keyword":h&&h.propertyIsEnumerable(a.current().toUpperCase())?"variable-2":i&&i.propertyIsEnumerable(a.current().toUpperCase())?"variable-3":"variable")}var g=b.keywords,h=b.builtins,i=b.types,j=b.multiLineStrings,k=/[*+\-%<>=&?:\/!|]/;return{startState:function(){return{tokenize:f,startOfLine:!0}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b);return c}}})),(function(){function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}var c="ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ",d="VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE NEQ MATCHES TRUE FALSE DUMP",e="BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ";a.defineMIME("text/x-pig",{name:"pig",builtins:b(c),keywords:b(d),types:b(e)}),a.registerHelper("hintWords","pig",(c+e+d).split(" "))})()}));editors/codemirror/mode/erlang/erlang.js000064400000044710152177723720014407 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*jshint unused:true, eqnull:true, curly:true, bitwise:true */
/*jshint undef:true, latedef:true, trailing:true */
/*global CodeMirror:true */

// erlang mode.
// tokenizer -> token types -> CodeMirror styles
// tokenizer maintains a parse stack
// indenter uses the parse stack

// TODO indenter:
//   bit syntax
//   old guard/bif/conversion clashes (e.g. "float/1")
//   type/spec/opaque

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMIME("text/x-erlang", "erlang");

CodeMirror.defineMode("erlang", function(cmCfg) {
  "use strict";

/////////////////////////////////////////////////////////////////////////////
// constants

  var typeWords = [
    "-type", "-spec", "-export_type", "-opaque"];

  var keywordWords = [
    "after","begin","catch","case","cond","end","fun","if",
    "let","of","query","receive","try","when"];

  var separatorRE    = /[\->,;]/;
  var separatorWords = [
    "->",";",","];

  var operatorAtomWords = [
    "and","andalso","band","bnot","bor","bsl","bsr","bxor",
    "div","not","or","orelse","rem","xor"];

  var operatorSymbolRE    = /[\+\-\*\/<>=\|:!]/;
  var operatorSymbolWords = [
    "=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"];

  var openParenRE    = /[<\(\[\{]/;
  var openParenWords = [
    "<<","(","[","{"];

  var closeParenRE    = /[>\)\]\}]/;
  var closeParenWords = [
    "}","]",")",">>"];

  var guardWords = [
    "is_atom","is_binary","is_bitstring","is_boolean","is_float",
    "is_function","is_integer","is_list","is_number","is_pid",
    "is_port","is_record","is_reference","is_tuple",
    "atom","binary","bitstring","boolean","function","integer","list",
    "number","pid","port","record","reference","tuple"];

  var bifWords = [
    "abs","adler32","adler32_combine","alive","apply","atom_to_binary",
    "atom_to_list","binary_to_atom","binary_to_existing_atom",
    "binary_to_list","binary_to_term","bit_size","bitstring_to_list",
    "byte_size","check_process_code","contact_binary","crc32",
    "crc32_combine","date","decode_packet","delete_module",
    "disconnect_node","element","erase","exit","float","float_to_list",
    "garbage_collect","get","get_keys","group_leader","halt","hd",
    "integer_to_list","internal_bif","iolist_size","iolist_to_binary",
    "is_alive","is_atom","is_binary","is_bitstring","is_boolean",
    "is_float","is_function","is_integer","is_list","is_number","is_pid",
    "is_port","is_process_alive","is_record","is_reference","is_tuple",
    "length","link","list_to_atom","list_to_binary","list_to_bitstring",
    "list_to_existing_atom","list_to_float","list_to_integer",
    "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded",
    "monitor_node","node","node_link","node_unlink","nodes","notalive",
    "now","open_port","pid_to_list","port_close","port_command",
    "port_connect","port_control","pre_loaded","process_flag",
    "process_info","processes","purge_module","put","register",
    "registered","round","self","setelement","size","spawn","spawn_link",
    "spawn_monitor","spawn_opt","split_binary","statistics",
    "term_to_binary","time","throw","tl","trunc","tuple_size",
    "tuple_to_list","unlink","unregister","whereis"];

// upper case: [A-Z] [Ø-Þ] [À-Ö]
// lower case: [a-z] [ß-ö] [ø-ÿ]
  var anumRE       = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/;
  var escapesRE    =
    /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;

/////////////////////////////////////////////////////////////////////////////
// tokenizer

  function tokenizer(stream,state) {
    // in multi-line string
    if (state.in_string) {
      state.in_string = (!doubleQuote(stream));
      return rval(state,stream,"string");
    }

    // in multi-line atom
    if (state.in_atom) {
      state.in_atom = (!singleQuote(stream));
      return rval(state,stream,"atom");
    }

    // whitespace
    if (stream.eatSpace()) {
      return rval(state,stream,"whitespace");
    }

    // attributes and type specs
    if (!peekToken(state) &&
        stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) {
      if (is_member(stream.current(),typeWords)) {
        return rval(state,stream,"type");
      }else{
        return rval(state,stream,"attribute");
      }
    }

    var ch = stream.next();

    // comment
    if (ch == '%') {
      stream.skipToEnd();
      return rval(state,stream,"comment");
    }

    // colon
    if (ch == ":") {
      return rval(state,stream,"colon");
    }

    // macro
    if (ch == '?') {
      stream.eatSpace();
      stream.eatWhile(anumRE);
      return rval(state,stream,"macro");
    }

    // record
    if (ch == "#") {
      stream.eatSpace();
      stream.eatWhile(anumRE);
      return rval(state,stream,"record");
    }

    // dollar escape
    if (ch == "$") {
      if (stream.next() == "\\" && !stream.match(escapesRE)) {
        return rval(state,stream,"error");
      }
      return rval(state,stream,"number");
    }

    // dot
    if (ch == ".") {
      return rval(state,stream,"dot");
    }

    // quoted atom
    if (ch == '\'') {
      if (!(state.in_atom = (!singleQuote(stream)))) {
        if (stream.match(/\s*\/\s*[0-9]/,false)) {
          stream.match(/\s*\/\s*[0-9]/,true);
          return rval(state,stream,"fun");      // 'f'/0 style fun
        }
        if (stream.match(/\s*\(/,false) || stream.match(/\s*:/,false)) {
          return rval(state,stream,"function");
        }
      }
      return rval(state,stream,"atom");
    }

    // string
    if (ch == '"') {
      state.in_string = (!doubleQuote(stream));
      return rval(state,stream,"string");
    }

    // variable
    if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {
      stream.eatWhile(anumRE);
      return rval(state,stream,"variable");
    }

    // atom/keyword/BIF/function
    if (/[a-z_ß-öø-ÿ]/.test(ch)) {
      stream.eatWhile(anumRE);

      if (stream.match(/\s*\/\s*[0-9]/,false)) {
        stream.match(/\s*\/\s*[0-9]/,true);
        return rval(state,stream,"fun");      // f/0 style fun
      }

      var w = stream.current();

      if (is_member(w,keywordWords)) {
        return rval(state,stream,"keyword");
      }else if (is_member(w,operatorAtomWords)) {
        return rval(state,stream,"operator");
      }else if (stream.match(/\s*\(/,false)) {
        // 'put' and 'erlang:put' are bifs, 'foo:put' is not
        if (is_member(w,bifWords) &&
            ((peekToken(state).token != ":") ||
             (peekToken(state,2).token == "erlang"))) {
          return rval(state,stream,"builtin");
        }else if (is_member(w,guardWords)) {
          return rval(state,stream,"guard");
        }else{
          return rval(state,stream,"function");
        }
      }else if (lookahead(stream) == ":") {
        if (w == "erlang") {
          return rval(state,stream,"builtin");
        } else {
          return rval(state,stream,"function");
        }
      }else if (is_member(w,["true","false"])) {
        return rval(state,stream,"boolean");
      }else{
        return rval(state,stream,"atom");
      }
    }

    // number
    var digitRE      = /[0-9]/;
    var radixRE      = /[0-9a-zA-Z]/;         // 36#zZ style int
    if (digitRE.test(ch)) {
      stream.eatWhile(digitRE);
      if (stream.eat('#')) {                // 36#aZ  style integer
        if (!stream.eatWhile(radixRE)) {
          stream.backUp(1);                 //"36#" - syntax error
        }
      } else if (stream.eat('.')) {       // float
        if (!stream.eatWhile(digitRE)) {
          stream.backUp(1);        // "3." - probably end of function
        } else {
          if (stream.eat(/[eE]/)) {        // float with exponent
            if (stream.eat(/[-+]/)) {
              if (!stream.eatWhile(digitRE)) {
                stream.backUp(2);            // "2e-" - syntax error
              }
            } else {
              if (!stream.eatWhile(digitRE)) {
                stream.backUp(1);            // "2e" - syntax error
              }
            }
          }
        }
      }
      return rval(state,stream,"number");   // normal integer
    }

    // open parens
    if (nongreedy(stream,openParenRE,openParenWords)) {
      return rval(state,stream,"open_paren");
    }

    // close parens
    if (nongreedy(stream,closeParenRE,closeParenWords)) {
      return rval(state,stream,"close_paren");
    }

    // separators
    if (greedy(stream,separatorRE,separatorWords)) {
      return rval(state,stream,"separator");
    }

    // operators
    if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {
      return rval(state,stream,"operator");
    }

    return rval(state,stream,null);
  }

/////////////////////////////////////////////////////////////////////////////
// utilities
  function nongreedy(stream,re,words) {
    if (stream.current().length == 1 && re.test(stream.current())) {
      stream.backUp(1);
      while (re.test(stream.peek())) {
        stream.next();
        if (is_member(stream.current(),words)) {
          return true;
        }
      }
      stream.backUp(stream.current().length-1);
    }
    return false;
  }

  function greedy(stream,re,words) {
    if (stream.current().length == 1 && re.test(stream.current())) {
      while (re.test(stream.peek())) {
        stream.next();
      }
      while (0 < stream.current().length) {
        if (is_member(stream.current(),words)) {
          return true;
        }else{
          stream.backUp(1);
        }
      }
      stream.next();
    }
    return false;
  }

  function doubleQuote(stream) {
    return quote(stream, '"', '\\');
  }

  function singleQuote(stream) {
    return quote(stream,'\'','\\');
  }

  function quote(stream,quoteChar,escapeChar) {
    while (!stream.eol()) {
      var ch = stream.next();
      if (ch == quoteChar) {
        return true;
      }else if (ch == escapeChar) {
        stream.next();
      }
    }
    return false;
  }

  function lookahead(stream) {
    var m = stream.match(/([\n\s]+|%[^\n]*\n)*(.)/,false);
    return m ? m.pop() : "";
  }

  function is_member(element,list) {
    return (-1 < list.indexOf(element));
  }

  function rval(state,stream,type) {

    // parse stack
    pushToken(state,realToken(type,stream));

    // map erlang token type to CodeMirror style class
    //     erlang             -> CodeMirror tag
    switch (type) {
      case "atom":        return "atom";
      case "attribute":   return "attribute";
      case "boolean":     return "atom";
      case "builtin":     return "builtin";
      case "close_paren": return null;
      case "colon":       return null;
      case "comment":     return "comment";
      case "dot":         return null;
      case "error":       return "error";
      case "fun":         return "meta";
      case "function":    return "tag";
      case "guard":       return "property";
      case "keyword":     return "keyword";
      case "macro":       return "variable-2";
      case "number":      return "number";
      case "open_paren":  return null;
      case "operator":    return "operator";
      case "record":      return "bracket";
      case "separator":   return null;
      case "string":      return "string";
      case "type":        return "def";
      case "variable":    return "variable";
      default:            return null;
    }
  }

  function aToken(tok,col,ind,typ) {
    return {token:  tok,
            column: col,
            indent: ind,
            type:   typ};
  }

  function realToken(type,stream) {
    return aToken(stream.current(),
                 stream.column(),
                 stream.indentation(),
                 type);
  }

  function fakeToken(type) {
    return aToken(type,0,0,type);
  }

  function peekToken(state,depth) {
    var len = state.tokenStack.length;
    var dep = (depth ? depth : 1);

    if (len < dep) {
      return false;
    }else{
      return state.tokenStack[len-dep];
    }
  }

  function pushToken(state,token) {

    if (!(token.type == "comment" || token.type == "whitespace")) {
      state.tokenStack = maybe_drop_pre(state.tokenStack,token);
      state.tokenStack = maybe_drop_post(state.tokenStack);
    }
  }

  function maybe_drop_pre(s,token) {
    var last = s.length-1;

    if (0 < last && s[last].type === "record" && token.type === "dot") {
      s.pop();
    }else if (0 < last && s[last].type === "group") {
      s.pop();
      s.push(token);
    }else{
      s.push(token);
    }
    return s;
  }

  function maybe_drop_post(s) {
    if (!s.length) return s
    var last = s.length-1;

    if (s[last].type === "dot") {
      return [];
    }
    if (last > 1 && s[last].type === "fun" && s[last-1].token === "fun") {
      return s.slice(0,last-1);
    }
    switch (s[last].token) {
      case "}":    return d(s,{g:["{"]});
      case "]":    return d(s,{i:["["]});
      case ")":    return d(s,{i:["("]});
      case ">>":   return d(s,{i:["<<"]});
      case "end":  return d(s,{i:["begin","case","fun","if","receive","try"]});
      case ",":    return d(s,{e:["begin","try","when","->",
                                  ",","(","[","{","<<"]});
      case "->":   return d(s,{r:["when"],
                               m:["try","if","case","receive"]});
      case ";":    return d(s,{E:["case","fun","if","receive","try","when"]});
      case "catch":return d(s,{e:["try"]});
      case "of":   return d(s,{e:["case"]});
      case "after":return d(s,{e:["receive","try"]});
      default:     return s;
    }
  }

  function d(stack,tt) {
    // stack is a stack of Token objects.
    // tt is an object; {type:tokens}
    // type is a char, tokens is a list of token strings.
    // The function returns (possibly truncated) stack.
    // It will descend the stack, looking for a Token such that Token.token
    //  is a member of tokens. If it does not find that, it will normally (but
    //  see "E" below) return stack. If it does find a match, it will remove
    //  all the Tokens between the top and the matched Token.
    // If type is "m", that is all it does.
    // If type is "i", it will also remove the matched Token and the top Token.
    // If type is "g", like "i", but add a fake "group" token at the top.
    // If type is "r", it will remove the matched Token, but not the top Token.
    // If type is "e", it will keep the matched Token but not the top Token.
    // If type is "E", it behaves as for type "e", except if there is no match,
    //  in which case it will return an empty stack.

    for (var type in tt) {
      var len = stack.length-1;
      var tokens = tt[type];
      for (var i = len-1; -1 < i ; i--) {
        if (is_member(stack[i].token,tokens)) {
          var ss = stack.slice(0,i);
          switch (type) {
              case "m": return ss.concat(stack[i]).concat(stack[len]);
              case "r": return ss.concat(stack[len]);
              case "i": return ss;
              case "g": return ss.concat(fakeToken("group"));
              case "E": return ss.concat(stack[i]);
              case "e": return ss.concat(stack[i]);
          }
        }
      }
    }
    return (type == "E" ? [] : stack);
  }

/////////////////////////////////////////////////////////////////////////////
// indenter

  function indenter(state,textAfter) {
    var t;
    var unit = cmCfg.indentUnit;
    var wordAfter = wordafter(textAfter);
    var currT = peekToken(state,1);
    var prevT = peekToken(state,2);

    if (state.in_string || state.in_atom) {
      return CodeMirror.Pass;
    }else if (!prevT) {
      return 0;
    }else if (currT.token == "when") {
      return currT.column+unit;
    }else if (wordAfter === "when" && prevT.type === "function") {
      return prevT.indent+unit;
    }else if (wordAfter === "(" && currT.token === "fun") {
      return  currT.column+3;
    }else if (wordAfter === "catch" && (t = getToken(state,["try"]))) {
      return t.column;
    }else if (is_member(wordAfter,["end","after","of"])) {
      t = getToken(state,["begin","case","fun","if","receive","try"]);
      return t ? t.column : CodeMirror.Pass;
    }else if (is_member(wordAfter,closeParenWords)) {
      t = getToken(state,openParenWords);
      return t ? t.column : CodeMirror.Pass;
    }else if (is_member(currT.token,[",","|","||"]) ||
              is_member(wordAfter,[",","|","||"])) {
      t = postcommaToken(state);
      return t ? t.column+t.token.length : unit;
    }else if (currT.token == "->") {
      if (is_member(prevT.token, ["receive","case","if","try"])) {
        return prevT.column+unit+unit;
      }else{
        return prevT.column+unit;
      }
    }else if (is_member(currT.token,openParenWords)) {
      return currT.column+currT.token.length;
    }else{
      t = defaultToken(state);
      return truthy(t) ? t.column+unit : 0;
    }
  }

  function wordafter(str) {
    var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);

    return truthy(m) && (m.index === 0) ? m[0] : "";
  }

  function postcommaToken(state) {
    var objs = state.tokenStack.slice(0,-1);
    var i = getTokenIndex(objs,"type",["open_paren"]);

    return truthy(objs[i]) ? objs[i] : false;
  }

  function defaultToken(state) {
    var objs = state.tokenStack;
    var stop = getTokenIndex(objs,"type",["open_paren","separator","keyword"]);
    var oper = getTokenIndex(objs,"type",["operator"]);

    if (truthy(stop) && truthy(oper) && stop < oper) {
      return objs[stop+1];
    } else if (truthy(stop)) {
      return objs[stop];
    } else {
      return false;
    }
  }

  function getToken(state,tokens) {
    var objs = state.tokenStack;
    var i = getTokenIndex(objs,"token",tokens);

    return truthy(objs[i]) ? objs[i] : false;
  }

  function getTokenIndex(objs,propname,propvals) {

    for (var i = objs.length-1; -1 < i ; i--) {
      if (is_member(objs[i][propname],propvals)) {
        return i;
      }
    }
    return false;
  }

  function truthy(x) {
    return (x !== false) && (x != null);
  }

/////////////////////////////////////////////////////////////////////////////
// this object defines the mode

  return {
    startState:
      function() {
        return {tokenStack: [],
                in_string:  false,
                in_atom:    false};
      },

    token:
      function(stream, state) {
        return tokenizer(stream, state);
      },

    indent:
      function(state, textAfter) {
        return indenter(state,textAfter);
      },

    lineComment: "%"
  };
});

});
editors/codemirror/mode/erlang/erlang.min.js000064400000020312152177723720015161 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMIME("text/x-erlang","erlang"),a.defineMode("erlang",(function(b){function c(a,b){if(b.in_string)return b.in_string=!f(a),k(b,a,"string");if(b.in_atom)return b.in_atom=!g(a),k(b,a,"atom");if(a.eatSpace())return k(b,a,"whitespace");if(!o(b)&&a.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return j(a.current(),A)?k(b,a,"type"):k(b,a,"attribute");var c=a.next();if("%"==c)return a.skipToEnd(),k(b,a,"comment");if(":"==c)return k(b,a,"colon");if("?"==c)return a.eatSpace(),a.eatWhile(N),k(b,a,"macro");if("#"==c)return a.eatSpace(),a.eatWhile(N),k(b,a,"record");if("$"==c)return"\\"!=a.next()||a.match(O)?k(b,a,"number"):k(b,a,"error");if("."==c)return k(b,a,"dot");if("'"==c){if(!(b.in_atom=!g(a))){if(a.match(/\s*\/\s*[0-9]/,!1))return a.match(/\s*\/\s*[0-9]/,!0),k(b,a,"fun");if(a.match(/\s*\(/,!1)||a.match(/\s*:/,!1))return k(b,a,"function")}return k(b,a,"atom")}if('"'==c)return b.in_string=!f(a),k(b,a,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(c))return a.eatWhile(N),k(b,a,"variable");if(/[a-z_ß-öø-ÿ]/.test(c)){if(a.eatWhile(N),a.match(/\s*\/\s*[0-9]/,!1))return a.match(/\s*\/\s*[0-9]/,!0),k(b,a,"fun");var h=a.current();return j(h,B)?k(b,a,"keyword"):j(h,E)?k(b,a,"operator"):a.match(/\s*\(/,!1)?!j(h,M)||":"==o(b).token&&"erlang"!=o(b,2).token?j(h,L)?k(b,a,"guard"):k(b,a,"function"):k(b,a,"builtin"):":"==i(a)?"erlang"==h?k(b,a,"builtin"):k(b,a,"function"):j(h,["true","false"])?k(b,a,"boolean"):k(b,a,"atom")}var l=/[0-9]/,m=/[0-9a-zA-Z]/;return l.test(c)?(a.eatWhile(l),a.eat("#")?a.eatWhile(m)||a.backUp(1):a.eat(".")&&(a.eatWhile(l)?a.eat(/[eE]/)&&(a.eat(/[-+]/)?a.eatWhile(l)||a.backUp(2):a.eatWhile(l)||a.backUp(1)):a.backUp(1)),k(b,a,"number")):d(a,H,I)?k(b,a,"open_paren"):d(a,J,K)?k(b,a,"close_paren"):e(a,C,D)?k(b,a,"separator"):e(a,F,G)?k(b,a,"operator"):k(b,a,null)}function d(a,b,c){if(1==a.current().length&&b.test(a.current())){for(a.backUp(1);b.test(a.peek());)if(a.next(),j(a.current(),c))return!0;a.backUp(a.current().length-1)}return!1}function e(a,b,c){if(1==a.current().length&&b.test(a.current())){for(;b.test(a.peek());)a.next();for(;0<a.current().length;){if(j(a.current(),c))return!0;a.backUp(1)}a.next()}return!1}function f(a){return h(a,'"',"\\")}function g(a){return h(a,"'","\\")}function h(a,b,c){for(;!a.eol();){var d=a.next();if(d==b)return!0;d==c&&a.next()}return!1}function i(a){var b=a.match(/([\n\s]+|%[^\n]*\n)*(.)/,!1);return b?b.pop():""}function j(a,b){return-1<b.indexOf(a)}function k(a,b,c){switch(p(a,m(c,b)),c){case"atom":return"atom";case"attribute":return"attribute";case"boolean":return"atom";case"builtin":return"builtin";case"close_paren":return null;case"colon":return null;case"comment":return"comment";case"dot":return null;case"error":return"error";case"fun":return"meta";case"function":return"tag";case"guard":return"property";case"keyword":return"keyword";case"macro":return"variable-2";case"number":return"number";case"open_paren":return null;case"operator":return"operator";case"record":return"bracket";case"separator":return null;case"string":return"string";case"type":return"def";case"variable":return"variable";default:return null}}function l(a,b,c,d){return{token:a,column:b,indent:c,type:d}}function m(a,b){return l(b.current(),b.column(),b.indentation(),a)}function n(a){return l(a,0,0,a)}function o(a,b){var c=a.tokenStack.length,d=b?b:1;return!(c<d)&&a.tokenStack[c-d]}function p(a,b){"comment"!=b.type&&"whitespace"!=b.type&&(a.tokenStack=q(a.tokenStack,b),a.tokenStack=r(a.tokenStack))}function q(a,b){var c=a.length-1;return 0<c&&"record"===a[c].type&&"dot"===b.type?a.pop():0<c&&"group"===a[c].type?(a.pop(),a.push(b)):a.push(b),a}function r(a){if(!a.length)return a;var b=a.length-1;if("dot"===a[b].type)return[];if(b>1&&"fun"===a[b].type&&"fun"===a[b-1].token)return a.slice(0,b-1);switch(a[b].token){case"}":return s(a,{g:["{"]});case"]":return s(a,{i:["["]});case")":return s(a,{i:["("]});case">>":return s(a,{i:["<<"]});case"end":return s(a,{i:["begin","case","fun","if","receive","try"]});case",":return s(a,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return s(a,{r:["when"],m:["try","if","case","receive"]});case";":return s(a,{E:["case","fun","if","receive","try","when"]});case"catch":return s(a,{e:["try"]});case"of":return s(a,{e:["case"]});case"after":return s(a,{e:["receive","try"]});default:return a}}function s(a,b){for(var c in b)for(var d=a.length-1,e=b[c],f=d-1;-1<f;f--)if(j(a[f].token,e)){var g=a.slice(0,f);switch(c){case"m":return g.concat(a[f]).concat(a[d]);case"r":return g.concat(a[d]);case"i":return g;case"g":return g.concat(n("group"));case"E":return g.concat(a[f]);case"e":return g.concat(a[f])}}return"E"==c?[]:a}function t(c,d){var e,f=b.indentUnit,g=u(d),h=o(c,1),i=o(c,2);return c.in_string||c.in_atom?a.Pass:i?"when"==h.token?h.column+f:"when"===g&&"function"===i.type?i.indent+f:"("===g&&"fun"===h.token?h.column+3:"catch"===g&&(e=x(c,["try"]))?e.column:j(g,["end","after","of"])?(e=x(c,["begin","case","fun","if","receive","try"]),e?e.column:a.Pass):j(g,K)?(e=x(c,I),e?e.column:a.Pass):j(h.token,[",","|","||"])||j(g,[",","|","||"])?(e=v(c),e?e.column+e.token.length:f):"->"==h.token?j(i.token,["receive","case","if","try"])?i.column+f+f:i.column+f:j(h.token,I)?h.column+h.token.length:(e=w(c),z(e)?e.column+f:0):0}function u(a){var b=a.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return z(b)&&0===b.index?b[0]:""}function v(a){var b=a.tokenStack.slice(0,-1),c=y(b,"type",["open_paren"]);return!!z(b[c])&&b[c]}function w(a){var b=a.tokenStack,c=y(b,"type",["open_paren","separator","keyword"]),d=y(b,"type",["operator"]);return z(c)&&z(d)&&c<d?b[c+1]:!!z(c)&&b[c]}function x(a,b){var c=a.tokenStack,d=y(c,"token",b);return!!z(c[d])&&c[d]}function y(a,b,c){for(var d=a.length-1;-1<d;d--)if(j(a[d][b],c))return d;return!1}function z(a){return a!==!1&&null!=a}var A=["-type","-spec","-export_type","-opaque"],B=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],C=/[\->,;]/,D=["->",";",","],E=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],F=/[\+\-\*\/<>=\|:!]/,G=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],H=/[<\(\[\{]/,I=["<<","(","[","{"],J=/[>\)\]\}]/,K=["}","]",")",">>"],L=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],M=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],N=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,O=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;return{startState:function(){return{tokenStack:[],in_string:!1,in_atom:!1}},token:function(a,b){return c(a,b)},indent:function(a,b){return t(a,b)},lineComment:"%"}}))}));editors/codemirror/mode/d/d.min.js000064400000007516152177723720013122 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}a.defineMode("d",(function(b,c){function d(a,b){var c=a.next();if(r[c]){var d=r[c](a,b);if(d!==!1)return d}if('"'==c||"'"==c||"`"==c)return b.tokenize=e(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return k=c,null;if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("+"))return b.tokenize=g,g(a,b);if(a.eat("*"))return b.tokenize=f,f(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(t.test(c))return a.eatWhile(t),"operator";a.eatWhile(/[\w\$_\xa1-\uffff]/);var h=a.current();return n.propertyIsEnumerable(h)?(p.propertyIsEnumerable(h)&&(k="newstatement"),"keyword"):o.propertyIsEnumerable(h)?(p.propertyIsEnumerable(h)&&(k="newstatement"),"builtin"):q.propertyIsEnumerable(h)?"atom":"variable"}function e(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){f=!0;break}e=!e&&"\\"==d}return(f||!e&&!s)&&(c.tokenize=null),"string"}}function f(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=null;break}d="*"==c}return"comment"}function g(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=null;break}d="+"==c}return"comment"}function h(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function i(a,b,c){var d=a.indented;return a.context&&"statement"==a.context.type&&(d=a.context.indented),a.context=new h(d,b,c,null,a.context)}function j(a){var b=a.context.type;return")"!=b&&"]"!=b&&"}"!=b||(a.indented=a.context.indented),a.context=a.context.prev}var k,l=b.indentUnit,m=c.statementIndentUnit||l,n=c.keywords||{},o=c.builtin||{},p=c.blockKeywords||{},q=c.atoms||{},r=c.hooks||{},s=c.multiLineStrings,t=/[+\-*&%=<>!?|\/]/;return{startState:function(a){return{tokenize:null,context:new h((a||0)-l,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var c=b.context;if(a.sol()&&(null==c.align&&(c.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;k=null;var e=(b.tokenize||d)(a,b);if("comment"==e||"meta"==e)return e;if(null==c.align&&(c.align=!0),";"!=k&&":"!=k&&","!=k||"statement"!=c.type)if("{"==k)i(b,a.column(),"}");else if("["==k)i(b,a.column(),"]");else if("("==k)i(b,a.column(),")");else if("}"==k){for(;"statement"==c.type;)c=j(b);for("}"==c.type&&(c=j(b));"statement"==c.type;)c=j(b)}else k==c.type?j(b):(("}"==c.type||"top"==c.type)&&";"!=k||"statement"==c.type&&"newstatement"==k)&&i(b,a.column(),"statement");else j(b);return b.startOfLine=!1,e},indent:function(b,c){if(b.tokenize!=d&&null!=b.tokenize)return a.Pass;var e=b.context,f=c&&c.charAt(0);"statement"==e.type&&"}"==f&&(e=e.prev);var g=f==e.type;return"statement"==e.type?e.indented+("{"==f?0:m):e.align?e.column+(g?0:1):e.indented+(g?0:l)},electricChars:"{}"}}));var c="body catch class do else enum for foreach foreach_reverse if in interface mixin out scope struct switch try union unittest version while with";a.defineMIME("text/x-d",{name:"d",keywords:b("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue debug default delegate delete deprecated export extern final finally function goto immutable import inout invariant is lazy macro module new nothrow override package pragma private protected public pure ref return shared short static super synchronized template this throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters "+c),blockKeywords:b(c),builtin:b("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte ucent uint ulong ushort wchar wstring void size_t sizediff_t"),atoms:b("exit failure success true false null"),hooks:{"@":function(a,b){return a.eatWhile(/[\w\$_]/),"meta"}}})}));editors/codemirror/mode/d/d.js000064400000016625152177723720012341 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("d", function(config, parserConfig) {
  var indentUnit = config.indentUnit,
      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
      keywords = parserConfig.keywords || {},
      builtin = parserConfig.builtin || {},
      blockKeywords = parserConfig.blockKeywords || {},
      atoms = parserConfig.atoms || {},
      hooks = parserConfig.hooks || {},
      multiLineStrings = parserConfig.multiLineStrings;
  var isOperatorChar = /[+\-*&%=<>!?|\/]/;

  var curPunc;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (hooks[ch]) {
      var result = hooks[ch](stream, state);
      if (result !== false) return result;
    }
    if (ch == '"' || ch == "'" || ch == "`") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    if (ch == "/") {
      if (stream.eat("+")) {
        state.tokenize = tokenNestedComment;
        return tokenNestedComment(stream, state);
      }
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_\xa1-\uffff]/);
    var cur = stream.current();
    if (keywords.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "keyword";
    }
    if (builtin.propertyIsEnumerable(cur)) {
      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
      return "builtin";
    }
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "\\";
      }
      if (end || !(escaped || multiLineStrings))
        state.tokenize = null;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function tokenNestedComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch == "+");
    }
    return "comment";
  }

  function Context(indented, column, type, align, prev) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.align = align;
    this.prev = prev;
  }
  function pushContext(state, col, type) {
    var indent = state.indented;
    if (state.context && state.context.type == "statement")
      indent = state.context.indented;
    return state.context = new Context(indent, col, type, null, state.context);
  }
  function popContext(state) {
    var t = state.context.type;
    if (t == ")" || t == "]" || t == "}")
      state.indented = state.context.indented;
    return state.context = state.context.prev;
  }

  // Interface

  return {
    startState: function(basecolumn) {
      return {
        tokenize: null,
        context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
        indented: 0,
        startOfLine: true
      };
    },

    token: function(stream, state) {
      var ctx = state.context;
      if (stream.sol()) {
        if (ctx.align == null) ctx.align = false;
        state.indented = stream.indentation();
        state.startOfLine = true;
      }
      if (stream.eatSpace()) return null;
      curPunc = null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      if (ctx.align == null) ctx.align = true;

      if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state);
      else if (curPunc == "{") pushContext(state, stream.column(), "}");
      else if (curPunc == "[") pushContext(state, stream.column(), "]");
      else if (curPunc == "(") pushContext(state, stream.column(), ")");
      else if (curPunc == "}") {
        while (ctx.type == "statement") ctx = popContext(state);
        if (ctx.type == "}") ctx = popContext(state);
        while (ctx.type == "statement") ctx = popContext(state);
      }
      else if (curPunc == ctx.type) popContext(state);
      else if (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || (ctx.type == "statement" && curPunc == "newstatement"))
        pushContext(state, stream.column(), "statement");
      state.startOfLine = false;
      return style;
    },

    indent: function(state, textAfter) {
      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
      if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
      var closing = firstChar == ctx.type;
      if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
      else if (ctx.align) return ctx.column + (closing ? 0 : 1);
      else return ctx.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "{}"
  };
});

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }

  var blockKeywords = "body catch class do else enum for foreach foreach_reverse if in interface mixin " +
                      "out scope struct switch try union unittest version while with";

  CodeMirror.defineMIME("text/x-d", {
    name: "d",
    keywords: words("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue " +
                    "debug default delegate delete deprecated export extern final finally function goto immutable " +
                    "import inout invariant is lazy macro module new nothrow override package pragma private " +
                    "protected public pure ref return shared short static super synchronized template this " +
                    "throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters " +
                    blockKeywords),
    blockKeywords: words(blockKeywords),
    builtin: words("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte " +
                   "ucent uint ulong ushort wchar wstring void size_t sizediff_t"),
    atoms: words("exit failure success true false null"),
    hooks: {
      "@": function(stream, _state) {
        stream.eatWhile(/[\w\$_]/);
        return "meta";
      }
    }
  });

});
editors/codemirror/mode/vbscript/vbscript.js000064400000032742152177723720015361 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
For extra ASP classic objects, initialize CodeMirror instance with this option:
    isASP: true

E.G.:
    var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        lineNumbers: true,
        isASP: true
      });
*/

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("vbscript", function(conf, parserConf) {
    var ERRORCLASS = 'error';

    function wordRegexp(words) {
        return new RegExp("^((" + words.join(")|(") + "))\\b", "i");
    }

    var singleOperators = new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]");
    var doubleOperators = new RegExp("^((<>)|(<=)|(>=))");
    var singleDelimiters = new RegExp('^[\\.,]');
    var brakets = new RegExp('^[\\(\\)]');
    var identifiers = new RegExp("^[A-Za-z][_A-Za-z0-9]*");

    var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];
    var middleKeywords = ['else','elseif','case'];
    var endKeywords = ['next','loop','wend'];

    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);
    var commonkeywords = ['dim', 'redim', 'then',  'until', 'randomize',
                          'byval','byref','new','property', 'exit', 'in',
                          'const','private', 'public',
                          'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];

    //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx
    var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];
    //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx
    var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',
                        'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',
                        'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',
                        'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',
                        'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',
                        'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];

    //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx
    var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',
                         'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',
                         'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',
                         'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',
                         'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',
                         'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',
                         'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];
    //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx
    var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];
    var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];
    var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];

    var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];
    var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response
                              'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request
                              'contents', 'staticobjects', //application
                              'codepage', 'lcid', 'sessionid', 'timeout', //session
                              'scripttimeout']; //server
    var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response
                           'binaryread', //request
                           'remove', 'removeall', 'lock', 'unlock', //application
                           'abandon', //session
                           'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server

    var knownWords = knownMethods.concat(knownProperties);

    builtinObjsWords = builtinObjsWords.concat(builtinConsts);

    if (conf.isASP){
        builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);
        knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);
    };

    var keywords = wordRegexp(commonkeywords);
    var atoms = wordRegexp(atomWords);
    var builtinFuncs = wordRegexp(builtinFuncsWords);
    var builtinObjs = wordRegexp(builtinObjsWords);
    var known = wordRegexp(knownWords);
    var stringPrefixes = '"';

    var opening = wordRegexp(openingKeywords);
    var middle = wordRegexp(middleKeywords);
    var closing = wordRegexp(endKeywords);
    var doubleClosing = wordRegexp(['end']);
    var doOpening = wordRegexp(['do']);
    var noIndentWords = wordRegexp(['on error resume next', 'exit']);
    var comment = wordRegexp(['rem']);


    function indent(_stream, state) {
      state.currentIndent++;
    }

    function dedent(_stream, state) {
      state.currentIndent--;
    }
    // tokenizers
    function tokenBase(stream, state) {
        if (stream.eatSpace()) {
            return 'space';
            //return null;
        }

        var ch = stream.peek();

        // Handle Comments
        if (ch === "'") {
            stream.skipToEnd();
            return 'comment';
        }
        if (stream.match(comment)){
            stream.skipToEnd();
            return 'comment';
        }


        // Handle Number Literals
        if (stream.match(/^((&H)|(&O))?[0-9\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i, false)) {
            var floatLiteral = false;
            // Floats
            if (stream.match(/^\d*\.\d+/i)) { floatLiteral = true; }
            else if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; }
            else if (stream.match(/^\.\d+/)) { floatLiteral = true; }

            if (floatLiteral) {
                // Float literals may be "imaginary"
                stream.eat(/J/i);
                return 'number';
            }
            // Integers
            var intLiteral = false;
            // Hex
            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }
            // Octal
            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }
            // Decimal
            else if (stream.match(/^[1-9]\d*F?/)) {
                // Decimal literals may be "imaginary"
                stream.eat(/J/i);
                // TODO - Can you have imaginary longs?
                intLiteral = true;
            }
            // Zero by itself with no other piece of number.
            else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
            if (intLiteral) {
                // Integer literals may be "long"
                stream.eat(/L/i);
                return 'number';
            }
        }

        // Handle Strings
        if (stream.match(stringPrefixes)) {
            state.tokenize = tokenStringFactory(stream.current());
            return state.tokenize(stream, state);
        }

        // Handle operators and Delimiters
        if (stream.match(doubleOperators)
            || stream.match(singleOperators)
            || stream.match(wordOperators)) {
            return 'operator';
        }
        if (stream.match(singleDelimiters)) {
            return null;
        }

        if (stream.match(brakets)) {
            return "bracket";
        }

        if (stream.match(noIndentWords)) {
            state.doInCurrentLine = true;

            return 'keyword';
        }

        if (stream.match(doOpening)) {
            indent(stream,state);
            state.doInCurrentLine = true;

            return 'keyword';
        }
        if (stream.match(opening)) {
            if (! state.doInCurrentLine)
              indent(stream,state);
            else
              state.doInCurrentLine = false;

            return 'keyword';
        }
        if (stream.match(middle)) {
            return 'keyword';
        }


        if (stream.match(doubleClosing)) {
            dedent(stream,state);
            dedent(stream,state);

            return 'keyword';
        }
        if (stream.match(closing)) {
            if (! state.doInCurrentLine)
              dedent(stream,state);
            else
              state.doInCurrentLine = false;

            return 'keyword';
        }

        if (stream.match(keywords)) {
            return 'keyword';
        }

        if (stream.match(atoms)) {
            return 'atom';
        }

        if (stream.match(known)) {
            return 'variable-2';
        }

        if (stream.match(builtinFuncs)) {
            return 'builtin';
        }

        if (stream.match(builtinObjs)){
            return 'variable-2';
        }

        if (stream.match(identifiers)) {
            return 'variable';
        }

        // Handle non-detected items
        stream.next();
        return ERRORCLASS;
    }

    function tokenStringFactory(delimiter) {
        var singleline = delimiter.length == 1;
        var OUTCLASS = 'string';

        return function(stream, state) {
            while (!stream.eol()) {
                stream.eatWhile(/[^'"]/);
                if (stream.match(delimiter)) {
                    state.tokenize = tokenBase;
                    return OUTCLASS;
                } else {
                    stream.eat(/['"]/);
                }
            }
            if (singleline) {
                if (parserConf.singleLineStringErrors) {
                    return ERRORCLASS;
                } else {
                    state.tokenize = tokenBase;
                }
            }
            return OUTCLASS;
        };
    }


    function tokenLexer(stream, state) {
        var style = state.tokenize(stream, state);
        var current = stream.current();

        // Handle '.' connected identifiers
        if (current === '.') {
            style = state.tokenize(stream, state);

            current = stream.current();
            if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {
                if (style === 'builtin' || style === 'keyword') style='variable';
                if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';

                return style;
            } else {
                return ERRORCLASS;
            }
        }

        return style;
    }

    var external = {
        electricChars:"dDpPtTfFeE ",
        startState: function() {
            return {
              tokenize: tokenBase,
              lastToken: null,
              currentIndent: 0,
              nextLineIndent: 0,
              doInCurrentLine: false,
              ignoreKeyword: false


          };
        },

        token: function(stream, state) {
            if (stream.sol()) {
              state.currentIndent += state.nextLineIndent;
              state.nextLineIndent = 0;
              state.doInCurrentLine = 0;
            }
            var style = tokenLexer(stream, state);

            state.lastToken = {style:style, content: stream.current()};

            if (style==='space') style=null;

            return style;
        },

        indent: function(state, textAfter) {
            var trueText = textAfter.replace(/^\s+|\s+$/g, '') ;
            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);
            if(state.currentIndent < 0) return 0;
            return state.currentIndent * conf.indentUnit;
        }

    };
    return external;
});

CodeMirror.defineMIME("text/vbscript", "vbscript");

});
editors/codemirror/mode/vbscript/vbscript.min.js000064400000013775152177723720016150 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("vbscript",(function(a,b){function c(a){return new RegExp("^(("+a.join(")|(")+"))\\b","i")}function d(a,b){b.currentIndent++}function e(a,b){b.currentIndent--}function f(a,b){if(a.eatSpace())return"space";var c=a.peek();if("'"===c)return a.skipToEnd(),"comment";if(a.match(P))return a.skipToEnd(),"comment";if(a.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!a.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var f=!1;if(a.match(/^\d*\.\d+/i)?f=!0:a.match(/^\d+\.\d*/)?f=!0:a.match(/^\.\d+/)&&(f=!0),f)return a.eat(/J/i),"number";var h=!1;if(a.match(/^&H[0-9a-f]+/i)?h=!0:a.match(/^&O[0-7]+/i)?h=!0:a.match(/^[1-9]\d*F?/)?(a.eat(/J/i),h=!0):a.match(/^0(?![\dx])/i)&&(h=!0),h)return a.eat(/L/i),"number"}return a.match(I)?(b.tokenize=g(a.current()),b.tokenize(a,b)):a.match(k)||a.match(j)||a.match(r)?"operator":a.match(l)?null:a.match(m)?"bracket":a.match(O)?(b.doInCurrentLine=!0,"keyword"):a.match(N)?(d(a,b),b.doInCurrentLine=!0,"keyword"):a.match(J)?(b.doInCurrentLine?b.doInCurrentLine=!1:d(a,b),"keyword"):a.match(K)?"keyword":a.match(M)?(e(a,b),e(a,b),"keyword"):a.match(L)?(b.doInCurrentLine?b.doInCurrentLine=!1:e(a,b),"keyword"):a.match(D)?"keyword":a.match(E)?"atom":a.match(H)?"variable-2":a.match(F)?"builtin":a.match(G)?"variable-2":a.match(n)?"variable":(a.next(),i)}function g(a){var c=1==a.length,d="string";return function(e,g){for(;!e.eol();){if(e.eatWhile(/[^'"]/),e.match(a))return g.tokenize=f,d;e.eat(/['"]/)}if(c){if(b.singleLineStringErrors)return i;g.tokenize=f}return d}}function h(a,b){var c=b.tokenize(a,b),d=a.current();return"."===d?(c=b.tokenize(a,b),d=a.current(),!c||"variable"!==c.substr(0,8)&&"builtin"!==c&&"keyword"!==c?i:("builtin"!==c&&"keyword"!==c||(c="variable"),C.indexOf(d.substr(1))>-1&&(c="variable-2"),c)):c}var i="error",j=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),k=new RegExp("^((<>)|(<=)|(>=))"),l=new RegExp("^[\\.,]"),m=new RegExp("^[\\(\\)]"),n=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),o=["class","sub","select","while","if","function","property","with","for"],p=["else","elseif","case"],q=["next","loop","wend"],r=c(["and","or","not","xor","is","mod","eqv","imp"]),s=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],t=["true","false","nothing","empty","null"],u=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],v=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],w=["WScript","err","debug","RegExp"],x=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],y=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],z=["server","response","request","session","application"],A=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],B=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],C=y.concat(x);w=w.concat(v),a.isASP&&(w=w.concat(z),C=C.concat(B,A));var D=c(s),E=c(t),F=c(u),G=c(w),H=c(C),I='"',J=c(o),K=c(p),L=c(q),M=c(["end"]),N=c(["do"]),O=c(["on error resume next","exit"]),P=c(["rem"]),Q={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:f,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(a,b){a.sol()&&(b.currentIndent+=b.nextLineIndent,b.nextLineIndent=0,b.doInCurrentLine=0);var c=h(a,b);return b.lastToken={style:c,content:a.current()},"space"===c&&(c=null),c},indent:function(b,c){var d=c.replace(/^\s+|\s+$/g,"");return d.match(L)||d.match(M)||d.match(K)?a.indentUnit*(b.currentIndent-1):b.currentIndent<0?0:b.currentIndent*a.indentUnit}};return Q})),a.defineMIME("text/vbscript","vbscript")}));editors/codemirror/mode/python/python.min.js000064400000014446152177723720015316 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}function c(a){return a.scopes[a.scopes.length-1]}var d=b(["and","or","not","is"]),e=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in"],f=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];a.registerHelper("hintWords","python",e.concat(f)),a.defineMode("python",(function(g,h){function i(a,b){var d=a.sol()&&"\\"!=b.lastToken;if(d&&(b.indent=a.indentation()),d&&"py"==c(b).type){var e=c(b).offset;if(a.eatSpace()){var f=a.indentation();return f>e?m(b):f<e&&o(a,b)&&"#"!=a.peek()&&(b.errorToken=!0),null}var g=j(a,b);return e>0&&o(a,b)&&(g+=" "+q),g}return j(a,b)}function j(a,b){if(a.eatSpace())return null;if(a.match(/^#.*/))return"comment";if(a.match(/^[0-9\.]/,!1)){var c=!1;if(a.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(c=!0),a.match(/^[\d_]+\.\d*/)&&(c=!0),a.match(/^\.\d+/)&&(c=!0),c)return a.eat(/J/i),"number";var e=!1;if(a.match(/^0x[0-9a-f_]+/i)&&(e=!0),a.match(/^0b[01_]+/i)&&(e=!0),a.match(/^0o[0-7_]+/i)&&(e=!0),a.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(a.eat(/J/i),e=!0),a.match(/^0(?![\dx])/i)&&(e=!0),e)return a.eat(/L/i),"number"}if(a.match(z)){var f=a.current().toLowerCase().indexOf("f")!==-1;return f?(b.tokenize=k(a.current(),b.tokenize),b.tokenize(a,b)):(b.tokenize=l(a.current()),b.tokenize(a,b))}for(var g=0;g<s.length;g++)if(a.match(s[g]))return"operator";return a.match(r)?"punctuation":"."==b.lastToken&&a.match(y)?"property":a.match(A)||a.match(d)?"keyword":a.match(B)?"builtin":a.match(/^(self|cls)\b/)?"variable-2":a.match(y)?"def"==b.lastToken||"class"==b.lastToken?"def":"variable":(a.next(),q)}function k(a,b){function c(b,c){return b.match(a)?(c.tokenize=d,f):b.match("{")?"punctuation":b.match("}")?(c.tokenize=d,"punctuation"):j(b,c)}function d(d,g){for(;!d.eol();)if(d.eatWhile(/[^'"\{\}\\]/),d.eat("\\")){if(d.next(),e&&d.eol())return f}else{if(d.match(a))return g.tokenize=b,f;if(d.match("{{"))return f;if(d.match("{",!1))return g.tokenize=c,d.current()?f:(d.next(),"punctuation");if(d.match("}}"))return f;if(d.match("}"))return q;d.eat(/['"]/)}if(e){if(h.singleLineStringErrors)return q;g.tokenize=b}return f}for(;"rubf".indexOf(a.charAt(0).toLowerCase())>=0;)a=a.substr(1);var e=1==a.length,f="string";return d.isString=!0,d}function l(a){function b(b,e){for(;!b.eol();)if(b.eatWhile(/[^'"\\]/),b.eat("\\")){if(b.next(),c&&b.eol())return d}else{if(b.match(a))return e.tokenize=i,d;b.eat(/['"]/)}if(c){if(h.singleLineStringErrors)return q;e.tokenize=i}return d}for(;"rubf".indexOf(a.charAt(0).toLowerCase())>=0;)a=a.substr(1);var c=1==a.length,d="string";return b.isString=!0,b}function m(a){for(;"py"!=c(a).type;)a.scopes.pop();a.scopes.push({offset:c(a).offset+g.indentUnit,type:"py",align:null})}function n(a,b,c){var d=a.match(/^([\s\[\{\(]|#.*)*$/,!1)?null:a.column()+1;b.scopes.push({offset:b.indent+u,type:c,align:d})}function o(a,b){for(var d=a.indentation();b.scopes.length>1&&c(b).offset>d;){if("py"!=c(b).type)return!0;b.scopes.pop()}return c(b).offset!=d}function p(a,b){a.sol()&&(b.beginningOfLine=!0);var d=b.tokenize(a,b),e=a.current();if(b.beginningOfLine&&"@"==e)return a.match(y,!1)?"meta":x?"operator":q;if(/\S/.test(e)&&(b.beginningOfLine=!1),"variable"!=d&&"builtin"!=d||"meta"!=b.lastToken||(d="meta"),"pass"!=e&&"return"!=e||(b.dedent+=1),"lambda"==e&&(b.lambda=!0),":"!=e||b.lambda||"py"!=c(b).type||m(b),1==e.length&&!/string|comment/.test(d)){var f="[({".indexOf(e);if(f!=-1&&n(a,b,"])}".slice(f,f+1)),f="])}".indexOf(e),f!=-1){if(c(b).type!=e)return q;b.indent=b.scopes.pop().offset-u}}return b.dedent>0&&a.eol()&&"py"==c(b).type&&(b.scopes.length>1&&b.scopes.pop(),b.dedent-=1),d}for(var q="error",r=h.delimiters||h.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,s=[h.singleOperators,h.doubleOperators,h.doubleDelimiters,h.tripleDelimiters,h.operators||/^([-+*\/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@])/],t=0;t<s.length;t++)s[t]||s.splice(t--,1);var u=h.hangingIndent||g.indentUnit,v=e,w=f;void 0!=h.extra_keywords&&(v=v.concat(h.extra_keywords)),void 0!=h.extra_builtins&&(w=w.concat(h.extra_builtins));var x=!(h.version&&Number(h.version)<3);if(x){var y=h.identifiers||/^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;v=v.concat(["nonlocal","False","True","None","async","await"]),w=w.concat(["ascii","bytes","exec","print"]);var z=new RegExp("^(([rbuf]|(br)|(fr))?('{3}|\"{3}|['\"]))","i")}else{var y=h.identifiers||/^[_A-Za-z][_A-Za-z0-9]*/;v=v.concat(["exec","print"]),w=w.concat(["apply","basestring","buffer","cmp","coerce","execfile","file","intern","long","raw_input","reduce","reload","unichr","unicode","xrange","False","True","None"]);var z=new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))","i")}var A=b(v),B=b(w),C={startState:function(a){return{tokenize:i,scopes:[{offset:a||0,type:"py",align:null}],indent:a||0,lastToken:null,lambda:!1,dedent:0}},token:function(a,b){var c=b.errorToken;c&&(b.errorToken=!1);var d=p(a,b);return d&&"comment"!=d&&(b.lastToken="keyword"==d||"punctuation"==d?a.current():d),"punctuation"==d&&(d=null),a.eol()&&b.lambda&&(b.lambda=!1),c?d+" "+q:d},indent:function(b,d){if(b.tokenize!=i)return b.tokenize.isString?a.Pass:0;var e=c(b),f=e.type==d.charAt(0);return null!=e.align?e.align-(f?1:0):e.offset-(f?u:0)},electricInput:/^\s*[\}\]\)]$/,closeBrackets:{triples:"'\""},lineComment:"#",fold:"indent"};return C})),a.defineMIME("text/x-python","python");var g=function(a){return a.split(" ")};a.defineMIME("text/x-cython",{name:"python",extra_keywords:g("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")})}));editors/codemirror/mode/python/python.js000064400000035217152177723720014533 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  var wordOperators = wordRegexp(["and", "or", "not", "is"]);
  var commonKeywords = ["as", "assert", "break", "class", "continue",
                        "def", "del", "elif", "else", "except", "finally",
                        "for", "from", "global", "if", "import",
                        "lambda", "pass", "raise", "return",
                        "try", "while", "with", "yield", "in"];
  var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
                        "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
                        "enumerate", "eval", "filter", "float", "format", "frozenset",
                        "getattr", "globals", "hasattr", "hash", "help", "hex", "id",
                        "input", "int", "isinstance", "issubclass", "iter", "len",
                        "list", "locals", "map", "max", "memoryview", "min", "next",
                        "object", "oct", "open", "ord", "pow", "property", "range",
                        "repr", "reversed", "round", "set", "setattr", "slice",
                        "sorted", "staticmethod", "str", "sum", "super", "tuple",
                        "type", "vars", "zip", "__import__", "NotImplemented",
                        "Ellipsis", "__debug__"];
  CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins));

  function top(state) {
    return state.scopes[state.scopes.length - 1];
  }

  CodeMirror.defineMode("python", function(conf, parserConf) {
    var ERRORCLASS = "error";

    var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\(\)\[\]\{\}@,:`=;\.\\]/;
    //               (Backwards-compatiblity with old, cumbersome config system)
    var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,
                     parserConf.operators || /^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@])/]
    for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)

    var hangingIndent = parserConf.hangingIndent || conf.indentUnit;

    var myKeywords = commonKeywords, myBuiltins = commonBuiltins;
    if (parserConf.extra_keywords != undefined)
      myKeywords = myKeywords.concat(parserConf.extra_keywords);

    if (parserConf.extra_builtins != undefined)
      myBuiltins = myBuiltins.concat(parserConf.extra_builtins);

    var py3 = !(parserConf.version && Number(parserConf.version) < 3)
    if (py3) {
      // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
      var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;
      myKeywords = myKeywords.concat(["nonlocal", "False", "True", "None", "async", "await"]);
      myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]);
      var stringPrefixes = new RegExp("^(([rbuf]|(br)|(fr))?('{3}|\"{3}|['\"]))", "i");
    } else {
      var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;
      myKeywords = myKeywords.concat(["exec", "print"]);
      myBuiltins = myBuiltins.concat(["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
                                      "file", "intern", "long", "raw_input", "reduce", "reload",
                                      "unichr", "unicode", "xrange", "False", "True", "None"]);
      var stringPrefixes = new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
    }
    var keywords = wordRegexp(myKeywords);
    var builtins = wordRegexp(myBuiltins);

    // tokenizers
    function tokenBase(stream, state) {
      var sol = stream.sol() && state.lastToken != "\\"
      if (sol) state.indent = stream.indentation()
      // Handle scope changes
      if (sol && top(state).type == "py") {
        var scopeOffset = top(state).offset;
        if (stream.eatSpace()) {
          var lineOffset = stream.indentation();
          if (lineOffset > scopeOffset)
            pushPyScope(state);
          else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != "#")
            state.errorToken = true;
          return null;
        } else {
          var style = tokenBaseInner(stream, state);
          if (scopeOffset > 0 && dedent(stream, state))
            style += " " + ERRORCLASS;
          return style;
        }
      }
      return tokenBaseInner(stream, state);
    }

    function tokenBaseInner(stream, state) {
      if (stream.eatSpace()) return null;

      // Handle Comments
      if (stream.match(/^#.*/)) return "comment";

      // Handle Number Literals
      if (stream.match(/^[0-9\.]/, false)) {
        var floatLiteral = false;
        // Floats
        if (stream.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
        if (stream.match(/^[\d_]+\.\d*/)) { floatLiteral = true; }
        if (stream.match(/^\.\d+/)) { floatLiteral = true; }
        if (floatLiteral) {
          // Float literals may be "imaginary"
          stream.eat(/J/i);
          return "number";
        }
        // Integers
        var intLiteral = false;
        // Hex
        if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;
        // Binary
        if (stream.match(/^0b[01_]+/i)) intLiteral = true;
        // Octal
        if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;
        // Decimal
        if (stream.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)) {
          // Decimal literals may be "imaginary"
          stream.eat(/J/i);
          // TODO - Can you have imaginary longs?
          intLiteral = true;
        }
        // Zero by itself with no other piece of number.
        if (stream.match(/^0(?![\dx])/i)) intLiteral = true;
        if (intLiteral) {
          // Integer literals may be "long"
          stream.eat(/L/i);
          return "number";
        }
      }

      // Handle Strings
      if (stream.match(stringPrefixes)) {
        var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;
        if (!isFmtString) {
          state.tokenize = tokenStringFactory(stream.current());
          return state.tokenize(stream, state);
        } else {
          state.tokenize = formatStringFactory(stream.current(), state.tokenize);
          return state.tokenize(stream, state);
        }
      }

      for (var i = 0; i < operators.length; i++)
        if (stream.match(operators[i])) return "operator"

      if (stream.match(delimiters)) return "punctuation";

      if (state.lastToken == "." && stream.match(identifiers))
        return "property";

      if (stream.match(keywords) || stream.match(wordOperators))
        return "keyword";

      if (stream.match(builtins))
        return "builtin";

      if (stream.match(/^(self|cls)\b/))
        return "variable-2";

      if (stream.match(identifiers)) {
        if (state.lastToken == "def" || state.lastToken == "class")
          return "def";
        return "variable";
      }

      // Handle non-detected items
      stream.next();
      return ERRORCLASS;
    }

    function formatStringFactory(delimiter, tokenOuter) {
      while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
        delimiter = delimiter.substr(1);

      var singleline = delimiter.length == 1;
      var OUTCLASS = "string";

      function tokenFString(stream, state) {
        // inside f-str Expression
        if (stream.match(delimiter)) {
          // expression ends pre-maturally, but very common in editing
          // Could show error to remind users to close brace here
          state.tokenize = tokenString
          return OUTCLASS;
        } else if (stream.match('{')) {
          // starting brace, if not eaten below
          return "punctuation";
        } else if (stream.match('}')) {
          // return to regular inside string state
          state.tokenize = tokenString
          return "punctuation";
        } else {
          // use tokenBaseInner to parse the expression
          return tokenBaseInner(stream, state);
        }
      }

      function tokenString(stream, state) {
        while (!stream.eol()) {
          stream.eatWhile(/[^'"\{\}\\]/);
          if (stream.eat("\\")) {
            stream.next();
            if (singleline && stream.eol())
              return OUTCLASS;
          } else if (stream.match(delimiter)) {
            state.tokenize = tokenOuter;
            return OUTCLASS;
          } else if (stream.match('{{')) {
            // ignore {{ in f-str
            return OUTCLASS;
          } else if (stream.match('{', false)) {
            // switch to nested mode
            state.tokenize = tokenFString
            if (stream.current()) {
              return OUTCLASS;
            } else {
              // need to return something, so eat the starting {
              stream.next();
              return "punctuation";
            }
          } else if (stream.match('}}')) {
            return OUTCLASS;
          } else if (stream.match('}')) {
            // single } in f-string is an error
            return ERRORCLASS;
          } else {
            stream.eat(/['"]/);
          }
        }
        if (singleline) {
          if (parserConf.singleLineStringErrors)
            return ERRORCLASS;
          else
            state.tokenize = tokenOuter;
        }
        return OUTCLASS;
      }
      tokenString.isString = true;
      return tokenString;
    }

    function tokenStringFactory(delimiter) {
      while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
        delimiter = delimiter.substr(1);

      var singleline = delimiter.length == 1;
      var OUTCLASS = "string";

      function tokenString(stream, state) {
        while (!stream.eol()) {
          stream.eatWhile(/[^'"\\]/);
          if (stream.eat("\\")) {
            stream.next();
            if (singleline && stream.eol())
              return OUTCLASS;
          } else if (stream.match(delimiter)) {
            state.tokenize = tokenBase;
            return OUTCLASS;
          } else {
            stream.eat(/['"]/);
          }
        }
        if (singleline) {
          if (parserConf.singleLineStringErrors)
            return ERRORCLASS;
          else
            state.tokenize = tokenBase;
        }
        return OUTCLASS;
      }
      tokenString.isString = true;
      return tokenString;
    }

    function pushPyScope(state) {
      while (top(state).type != "py") state.scopes.pop()
      state.scopes.push({offset: top(state).offset + conf.indentUnit,
                         type: "py",
                         align: null})
    }

    function pushBracketScope(stream, state, type) {
      var align = stream.match(/^([\s\[\{\(]|#.*)*$/, false) ? null : stream.column() + 1
      state.scopes.push({offset: state.indent + hangingIndent,
                         type: type,
                         align: align})
    }

    function dedent(stream, state) {
      var indented = stream.indentation();
      while (state.scopes.length > 1 && top(state).offset > indented) {
        if (top(state).type != "py") return true;
        state.scopes.pop();
      }
      return top(state).offset != indented;
    }

    function tokenLexer(stream, state) {
      if (stream.sol()) state.beginningOfLine = true;

      var style = state.tokenize(stream, state);
      var current = stream.current();

      // Handle decorators
      if (state.beginningOfLine && current == "@")
        return stream.match(identifiers, false) ? "meta" : py3 ? "operator" : ERRORCLASS;

      if (/\S/.test(current)) state.beginningOfLine = false;

      if ((style == "variable" || style == "builtin")
          && state.lastToken == "meta")
        style = "meta";

      // Handle scope changes.
      if (current == "pass" || current == "return")
        state.dedent += 1;

      if (current == "lambda") state.lambda = true;
      if (current == ":" && !state.lambda && top(state).type == "py")
        pushPyScope(state);

      if (current.length == 1 && !/string|comment/.test(style)) {
        var delimiter_index = "[({".indexOf(current);
        if (delimiter_index != -1)
          pushBracketScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1));

        delimiter_index = "])}".indexOf(current);
        if (delimiter_index != -1) {
          if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent
          else return ERRORCLASS;
        }
      }
      if (state.dedent > 0 && stream.eol() && top(state).type == "py") {
        if (state.scopes.length > 1) state.scopes.pop();
        state.dedent -= 1;
      }

      return style;
    }

    var external = {
      startState: function(basecolumn) {
        return {
          tokenize: tokenBase,
          scopes: [{offset: basecolumn || 0, type: "py", align: null}],
          indent: basecolumn || 0,
          lastToken: null,
          lambda: false,
          dedent: 0
        };
      },

      token: function(stream, state) {
        var addErr = state.errorToken;
        if (addErr) state.errorToken = false;
        var style = tokenLexer(stream, state);

        if (style && style != "comment")
          state.lastToken = (style == "keyword" || style == "punctuation") ? stream.current() : style;
        if (style == "punctuation") style = null;

        if (stream.eol() && state.lambda)
          state.lambda = false;
        return addErr ? style + " " + ERRORCLASS : style;
      },

      indent: function(state, textAfter) {
        if (state.tokenize != tokenBase)
          return state.tokenize.isString ? CodeMirror.Pass : 0;

        var scope = top(state), closing = scope.type == textAfter.charAt(0)
        if (scope.align != null)
          return scope.align - (closing ? 1 : 0)
        else
          return scope.offset - (closing ? hangingIndent : 0)
      },

      electricInput: /^\s*[\}\]\)]$/,
      closeBrackets: {triples: "'\""},
      lineComment: "#",
      fold: "indent"
    };
    return external;
  });

  CodeMirror.defineMIME("text/x-python", "python");

  var words = function(str) { return str.split(" "); };

  CodeMirror.defineMIME("text/x-cython", {
    name: "python",
    extra_keywords: words("by cdef cimport cpdef ctypedef enum except "+
                          "extern gil include nogil property public "+
                          "readonly struct union DEF IF ELIF ELSE")
  });

});
editors/codemirror/mode/tcl/tcl.min.js000064400000005010152177723720014003 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("tcl",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b,c){return b.tokenize=c,c(a,b)}function c(a,c){var j=c.beforeParams;c.beforeParams=!1;var k=a.next();if('"'!=k&&"'"!=k||!c.inParams){if(/[\[\]{}\(\),;\.]/.test(k))return"("==k&&j?c.inParams=!0:")"==k&&(c.inParams=!1),null;if(/\d/.test(k))return a.eatWhile(/[\w\.]/),"number";if("#"==k)return a.eat("*")?b(a,c,e):"#"==k&&a.match(/ *\[ *\[/)?b(a,c,f):(a.skipToEnd(),"comment");if('"'==k)return a.skipTo(/"/),"comment";if("$"==k)return a.eatWhile(/[$_a-z0-9A-Z\.{:]/),a.eatWhile(/}/),c.beforeParams=!0,"builtin";if(i.test(k))return a.eatWhile(i),"comment";a.eatWhile(/[\w\$_{}\xa1-\uffff]/);var l=a.current().toLowerCase();return g&&g.propertyIsEnumerable(l)?"keyword":h&&h.propertyIsEnumerable(l)?(c.beforeParams=!0,"keyword"):null}return b(a,c,d(k))}function d(a){return function(b,d){for(var e,f=!1,g=!1;null!=(e=b.next());){if(e==a&&!f){g=!0;break}f=!f&&"\\"==e}return g&&(d.tokenize=c),"string"}}function e(a,b){for(var d,e=!1;d=a.next();){if("#"==d&&e){b.tokenize=c;break}e="*"==d}return"comment"}function f(a,b){for(var d,e=0;d=a.next();){if("#"==d&&2==e){b.tokenize=c;break}"]"==d?e++:" "!=d&&(e=0)}return"meta"}var g=a("Tcl safe after append array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd close concat continue dde eof encoding error eval exec exit expr fblocked fconfigure fcopy file fileevent filename filename flush for foreach format gets glob global history http if incr info interp join lappend lindex linsert list llength load lrange lreplace lsearch lset lsort memory msgcat namespace open package parray pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp registry regsub rename resource return scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest tclvars tell time trace unknown unset update uplevel upvar variable vwait"),h=a("if elseif else and not or eq ne in ni for foreach while switch"),i=/[+\-*&%=<>!?^\/\|]/;return{startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)}}})),a.defineMIME("text/x-tcl","tcl")}));editors/codemirror/mode/tcl/tcl.js000064400000011471152177723720013231 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("tcl", function() {
  function parseWords(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  var keywords = parseWords("Tcl safe after append array auto_execok auto_import auto_load " +
        "auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror " +
        "binary break catch cd close concat continue dde eof encoding error " +
        "eval exec exit expr fblocked fconfigure fcopy file fileevent filename " +
        "filename flush for foreach format gets glob global history http if " +
        "incr info interp join lappend lindex linsert list llength load lrange " +
        "lreplace lsearch lset lsort memory msgcat namespace open package parray " +
        "pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp " +
        "registry regsub rename resource return scan seek set socket source split " +
        "string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord " +
        "tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest " +
        "tclvars tell time trace unknown unset update uplevel upvar variable " +
    "vwait");
    var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch");
    var isOperatorChar = /[+\-*&%=<>!?^\/\|]/;
    function chain(stream, state, f) {
      state.tokenize = f;
      return f(stream, state);
    }
    function tokenBase(stream, state) {
      var beforeParams = state.beforeParams;
      state.beforeParams = false;
      var ch = stream.next();
      if ((ch == '"' || ch == "'") && state.inParams) {
        return chain(stream, state, tokenString(ch));
      } else if (/[\[\]{}\(\),;\.]/.test(ch)) {
        if (ch == "(" && beforeParams) state.inParams = true;
        else if (ch == ")") state.inParams = false;
          return null;
      } else if (/\d/.test(ch)) {
        stream.eatWhile(/[\w\.]/);
        return "number";
      } else if (ch == "#") {
        if (stream.eat("*"))
          return chain(stream, state, tokenComment);
        if (ch == "#" && stream.match(/ *\[ *\[/))
          return chain(stream, state, tokenUnparsed);
        stream.skipToEnd();
        return "comment";
      } else if (ch == '"') {
        stream.skipTo(/"/);
        return "comment";
      } else if (ch == "$") {
        stream.eatWhile(/[$_a-z0-9A-Z\.{:]/);
        stream.eatWhile(/}/);
        state.beforeParams = true;
        return "builtin";
      } else if (isOperatorChar.test(ch)) {
        stream.eatWhile(isOperatorChar);
        return "comment";
      } else {
        stream.eatWhile(/[\w\$_{}\xa1-\uffff]/);
        var word = stream.current().toLowerCase();
        if (keywords && keywords.propertyIsEnumerable(word))
          return "keyword";
        if (functions && functions.propertyIsEnumerable(word)) {
          state.beforeParams = true;
          return "keyword";
        }
        return null;
      }
    }
    function tokenString(quote) {
      return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {
          end = true;
          break;
        }
        escaped = !escaped && next == "\\";
      }
      if (end) state.tokenize = tokenBase;
        return "string";
      };
    }
    function tokenComment(stream, state) {
      var maybeEnd = false, ch;
      while (ch = stream.next()) {
        if (ch == "#" && maybeEnd) {
          state.tokenize = tokenBase;
          break;
        }
        maybeEnd = (ch == "*");
      }
      return "comment";
    }
    function tokenUnparsed(stream, state) {
      var maybeEnd = 0, ch;
      while (ch = stream.next()) {
        if (ch == "#" && maybeEnd == 2) {
          state.tokenize = tokenBase;
          break;
        }
        if (ch == "]")
          maybeEnd++;
        else if (ch != " ")
          maybeEnd = 0;
      }
      return "meta";
    }
    return {
      startState: function() {
        return {
          tokenize: tokenBase,
          beforeParams: false,
          inParams: false
        };
      },
      token: function(stream, state) {
        if (stream.eatSpace()) return null;
        return state.tokenize(stream, state);
      }
    };
});
CodeMirror.defineMIME("text/x-tcl", "tcl");

});
editors/codemirror/mode/velocity/velocity.js000064400000015674152177723720015372 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("velocity", function() {
    function parseWords(str) {
        var obj = {}, words = str.split(" ");
        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
        return obj;
    }

    var keywords = parseWords("#end #else #break #stop #[[ #]] " +
                              "#{end} #{else} #{break} #{stop}");
    var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " +
                               "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}");
    var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent");
    var isOperatorChar = /[+\-*&%=<>!?:\/|]/;

    function chain(stream, state, f) {
        state.tokenize = f;
        return f(stream, state);
    }
    function tokenBase(stream, state) {
        var beforeParams = state.beforeParams;
        state.beforeParams = false;
        var ch = stream.next();
        // start of unparsed string?
        if ((ch == "'") && !state.inString && state.inParams) {
            state.lastTokenWasBuiltin = false;
            return chain(stream, state, tokenString(ch));
        }
        // start of parsed string?
        else if ((ch == '"')) {
            state.lastTokenWasBuiltin = false;
            if (state.inString) {
                state.inString = false;
                return "string";
            }
            else if (state.inParams)
                return chain(stream, state, tokenString(ch));
        }
        // is it one of the special signs []{}().,;? Seperator?
        else if (/[\[\]{}\(\),;\.]/.test(ch)) {
            if (ch == "(" && beforeParams)
                state.inParams = true;
            else if (ch == ")") {
                state.inParams = false;
                state.lastTokenWasBuiltin = true;
            }
            return null;
        }
        // start of a number value?
        else if (/\d/.test(ch)) {
            state.lastTokenWasBuiltin = false;
            stream.eatWhile(/[\w\.]/);
            return "number";
        }
        // multi line comment?
        else if (ch == "#" && stream.eat("*")) {
            state.lastTokenWasBuiltin = false;
            return chain(stream, state, tokenComment);
        }
        // unparsed content?
        else if (ch == "#" && stream.match(/ *\[ *\[/)) {
            state.lastTokenWasBuiltin = false;
            return chain(stream, state, tokenUnparsed);
        }
        // single line comment?
        else if (ch == "#" && stream.eat("#")) {
            state.lastTokenWasBuiltin = false;
            stream.skipToEnd();
            return "comment";
        }
        // variable?
        else if (ch == "$") {
            stream.eatWhile(/[\w\d\$_\.{}-]/);
            // is it one of the specials?
            if (specials && specials.propertyIsEnumerable(stream.current())) {
                return "keyword";
            }
            else {
                state.lastTokenWasBuiltin = true;
                state.beforeParams = true;
                return "builtin";
            }
        }
        // is it a operator?
        else if (isOperatorChar.test(ch)) {
            state.lastTokenWasBuiltin = false;
            stream.eatWhile(isOperatorChar);
            return "operator";
        }
        else {
            // get the whole word
            stream.eatWhile(/[\w\$_{}@]/);
            var word = stream.current();
            // is it one of the listed keywords?
            if (keywords && keywords.propertyIsEnumerable(word))
                return "keyword";
            // is it one of the listed functions?
            if (functions && functions.propertyIsEnumerable(word) ||
                    (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()=="(") &&
                     !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {
                state.beforeParams = true;
                state.lastTokenWasBuiltin = false;
                return "keyword";
            }
            if (state.inString) {
                state.lastTokenWasBuiltin = false;
                return "string";
            }
            if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)=="." && state.lastTokenWasBuiltin)
                return "builtin";
            // default: just a "word"
            state.lastTokenWasBuiltin = false;
            return null;
        }
    }

    function tokenString(quote) {
        return function(stream, state) {
            var escaped = false, next, end = false;
            while ((next = stream.next()) != null) {
                if ((next == quote) && !escaped) {
                    end = true;
                    break;
                }
                if (quote=='"' && stream.peek() == '$' && !escaped) {
                    state.inString = true;
                    end = true;
                    break;
                }
                escaped = !escaped && next == "\\";
            }
            if (end) state.tokenize = tokenBase;
            return "string";
        };
    }

    function tokenComment(stream, state) {
        var maybeEnd = false, ch;
        while (ch = stream.next()) {
            if (ch == "#" && maybeEnd) {
                state.tokenize = tokenBase;
                break;
            }
            maybeEnd = (ch == "*");
        }
        return "comment";
    }

    function tokenUnparsed(stream, state) {
        var maybeEnd = 0, ch;
        while (ch = stream.next()) {
            if (ch == "#" && maybeEnd == 2) {
                state.tokenize = tokenBase;
                break;
            }
            if (ch == "]")
                maybeEnd++;
            else if (ch != " ")
                maybeEnd = 0;
        }
        return "meta";
    }
    // Interface

    return {
        startState: function() {
            return {
                tokenize: tokenBase,
                beforeParams: false,
                inParams: false,
                inString: false,
                lastTokenWasBuiltin: false
            };
        },

        token: function(stream, state) {
            if (stream.eatSpace()) return null;
            return state.tokenize(stream, state);
        },
        blockCommentStart: "#*",
        blockCommentEnd: "*#",
        lineComment: "##",
        fold: "velocity"
    };
});

CodeMirror.defineMIME("text/velocity", "velocity");

});
editors/codemirror/mode/velocity/velocity.min.js000064400000005541152177723720016144 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("velocity",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b,c){return b.tokenize=c,c(a,b)}function c(a,c){var k=c.beforeParams;c.beforeParams=!1;var l=a.next();if("'"==l&&!c.inString&&c.inParams)return c.lastTokenWasBuiltin=!1,b(a,c,d(l));if('"'!=l){if(/[\[\]{}\(\),;\.]/.test(l))return"("==l&&k?c.inParams=!0:")"==l&&(c.inParams=!1,c.lastTokenWasBuiltin=!0),null;if(/\d/.test(l))return c.lastTokenWasBuiltin=!1,a.eatWhile(/[\w\.]/),"number";if("#"==l&&a.eat("*"))return c.lastTokenWasBuiltin=!1,b(a,c,e);if("#"==l&&a.match(/ *\[ *\[/))return c.lastTokenWasBuiltin=!1,b(a,c,f);if("#"==l&&a.eat("#"))return c.lastTokenWasBuiltin=!1,a.skipToEnd(),"comment";if("$"==l)return a.eatWhile(/[\w\d\$_\.{}-]/),i&&i.propertyIsEnumerable(a.current())?"keyword":(c.lastTokenWasBuiltin=!0,c.beforeParams=!0,"builtin");if(j.test(l))return c.lastTokenWasBuiltin=!1,a.eatWhile(j),"operator";a.eatWhile(/[\w\$_{}@]/);var m=a.current();return g&&g.propertyIsEnumerable(m)?"keyword":h&&h.propertyIsEnumerable(m)||a.current().match(/^#@?[a-z0-9_]+ *$/i)&&"("==a.peek()&&(!h||!h.propertyIsEnumerable(m.toLowerCase()))?(c.beforeParams=!0,c.lastTokenWasBuiltin=!1,"keyword"):c.inString?(c.lastTokenWasBuiltin=!1,"string"):a.pos>m.length&&"."==a.string.charAt(a.pos-m.length-1)&&c.lastTokenWasBuiltin?"builtin":(c.lastTokenWasBuiltin=!1,null)}return c.lastTokenWasBuiltin=!1,c.inString?(c.inString=!1,"string"):c.inParams?b(a,c,d(l)):void 0}function d(a){return function(b,d){for(var e,f=!1,g=!1;null!=(e=b.next());){if(e==a&&!f){g=!0;break}if('"'==a&&"$"==b.peek()&&!f){d.inString=!0,g=!0;break}f=!f&&"\\"==e}return g&&(d.tokenize=c),"string"}}function e(a,b){for(var d,e=!1;d=a.next();){if("#"==d&&e){b.tokenize=c;break}e="*"==d}return"comment"}function f(a,b){for(var d,e=0;d=a.next();){if("#"==d&&2==e){b.tokenize=c;break}"]"==d?e++:" "!=d&&(e=0)}return"meta"}var g=a("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),h=a("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),i=a("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),j=/[+\-*&%=<>!?:\/|]/;return{startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)},blockCommentStart:"#*",blockCommentEnd:"*#",lineComment:"##",fold:"velocity"}})),a.defineMIME("text/velocity","velocity")}));editors/codemirror/mode/soy/soy.min.js000064400000013472152177723720014076 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed"],a):a(CodeMirror)})((function(a){"use strict";var b=["template","literal","msg","fallbackmsg","let","if","elseif","else","switch","case","default","foreach","ifempty","for","call","param","deltemplate","delcall","log"];a.defineMode("soy",(function(c){function d(a){return a[a.length-1]}function e(a,b,c){if(a.sol()){for(var e=0;e<b.indent&&a.eat(/\s/);e++);if(e)return null}var f=a.string,g=c.exec(f.substr(a.pos));g&&(a.string=f.substr(0,a.pos+g.index));var h=a.hideFirstChars(b.indent,(function(){var c=d(b.localStates);return c.mode.token(a,c.state)}));return a.string=f,h}function f(a,b){for(;a;){if(a.element===b)return!0;a=a.next}return!1}function g(a,b){return{element:b,next:a}}function h(a,b,c){return f(a,b)?"variable-2":c?"variable":"variable-2 error"}function i(a){a.scopes&&(a.variables=a.scopes.element,a.scopes=a.scopes.next)}var j=a.getMode(c,"text/plain"),k={html:a.getMode(c,{name:"text/html",multilineTagIndentFactor:2,multilineTagIndentPastTag:!1}),attributes:j,text:j,uri:j,trusted_resource_uri:j,css:a.getMode(c,"text/css"),js:a.getMode(c,{name:"text/javascript",statementIndent:2*c.indentUnit})};return{startState:function(){return{kind:[],kindTag:[],soyState:[],templates:null,variables:g(null,"ij"),scopes:null,indent:0,quoteKind:null,localStates:[{mode:k.html,state:a.startState(k.html)}]}},copyState:function(b){return{tag:b.tag,kind:b.kind.concat([]),kindTag:b.kindTag.concat([]),soyState:b.soyState.concat([]),templates:b.templates,variables:b.variables,scopes:b.scopes,indent:b.indent,quoteKind:b.quoteKind,localStates:b.localStates.map((function(b){return{mode:b.mode,state:a.copyState(b.mode,b.state)}}))}},token:function(f,j){var l;switch(d(j.soyState)){case"comment":if(f.match(/^.*?\*\//)?j.soyState.pop():f.skipToEnd(),!j.scopes)for(var l,m=/@param\??\s+(\S+)/g,n=f.current();l=m.exec(n);)j.variables=g(j.variables,l[1]);return"comment";case"string":var l=f.match(/^.*?(["']|\\[\s\S])/);return l?l[1]==j.quoteKind&&(j.quoteKind=null,j.soyState.pop()):f.skipToEnd(),"string"}if(!j.soyState.length||"literal"!=d(j.soyState)){if(f.match(/^\/\*/))return j.soyState.push("comment"),"comment";if(f.match(f.sol()?/^\s*\/\/.*/:/^\s+\/\/.*/))return"comment"}switch(d(j.soyState)){case"templ-def":return(l=f.match(/^\.?([\w]+(?!\.[\w]+)*)/))?(j.templates=g(j.templates,l[1]),j.scopes=g(j.scopes,j.variables),j.soyState.pop(),"def"):(f.next(),null);case"templ-ref":return(l=f.match(/^\.?([\w]+)/))?(j.soyState.pop(),"."==l[0][0]?h(j.templates,l[1],!0):"variable"):(f.next(),null);case"param-def":return(l=f.match(/^\w+/))?(j.variables=g(j.variables,l[0]),j.soyState.pop(),j.soyState.push("param-type"),"def"):(f.next(),null);case"param-type":return"}"==f.peek()?(j.soyState.pop(),null):f.eatWhile(/^[\w]+/)?"variable-3":(f.next(),null);case"var-def":return(l=f.match(/^\$([\w]+)/))?(j.variables=g(j.variables,l[1]),j.soyState.pop(),"def"):(f.next(),null);case"tag":if(f.match(/^\/?}/))return"/template"==j.tag||"/deltemplate"==j.tag?(i(j),j.variables=g(null,"ij"),j.indent=0):("/for"!=j.tag&&"/foreach"!=j.tag||i(j),j.indent-=c.indentUnit*("/}"==f.current()||b.indexOf(j.tag)==-1?2:1)),j.soyState.pop(),"keyword";if(f.match(/^([\w?]+)(?==)/)){if("kind"==f.current()&&(l=f.match(/^="([^"]+)/,!1))){var o=l[1];j.kind.push(o),j.kindTag.push(j.tag);var p=k[o]||k.html,q=d(j.localStates);q.mode.indent&&(j.indent+=q.mode.indent(q.state,"")),j.localStates.push({mode:p,state:a.startState(p)})}return"attribute"}return(l=f.match(/^["']/))?(j.soyState.push("string"),j.quoteKind=l,"string"):(l=f.match(/^\$([\w]+)/))?h(j.variables,l[1]):(l=f.match(/^\w+/))?/^(?:as|and|or|not|in)$/.test(l[0])?"keyword":null:(f.next(),null);case"literal":return f.match(/^(?=\{\/literal})/)?(j.indent-=c.indentUnit,j.soyState.pop(),this.token(f,j)):e(f,j,/\{\/literal}/)}if(f.match(/^\{literal}/))return j.indent+=c.indentUnit,j.soyState.push("literal"),"keyword";if(l=f.match(/^\{([\/@\\]?\w+\??)(?=$|[\s}]|\/[\/*])/)){if("/switch"!=l[1]&&(j.indent+=(/^(\/|(else|elseif|ifempty|case|fallbackmsg|default)$)/.test(l[1])&&"switch"!=j.tag?1:2)*c.indentUnit),j.tag=l[1],j.tag=="/"+d(j.kindTag)){j.kind.pop(),j.kindTag.pop(),j.localStates.pop();var q=d(j.localStates);q.mode.indent&&(j.indent-=q.mode.indent(q.state,""))}return j.soyState.push("tag"),"template"==j.tag||"deltemplate"==j.tag?j.soyState.push("templ-def"):"call"==j.tag||"delcall"==j.tag?j.soyState.push("templ-ref"):"let"==j.tag?j.soyState.push("var-def"):"for"==j.tag||"foreach"==j.tag?(j.scopes=g(j.scopes,j.variables),j.soyState.push("var-def")):"namespace"==j.tag?j.scopes||(j.variables=g(null,"ij")):j.tag.match(/^@(?:param\??|inject)/)&&j.soyState.push("param-def"),"keyword"}return f.eat("{")?(j.tag="print",j.indent+=2*c.indentUnit,j.soyState.push("tag"),"keyword"):e(f,j,/\{|\s+\/\/|\/\*/)},indent:function(b,e){var f=b.indent,g=d(b.soyState);if("comment"==g)return a.Pass;if("literal"==g)/^\{\/literal}/.test(e)&&(f-=c.indentUnit);else{if(/^\s*\{\/(template|deltemplate)\b/.test(e))return 0;/^\{(\/|(fallbackmsg|elseif|else|ifempty)\b)/.test(e)&&(f-=c.indentUnit),"switch"!=b.tag&&/^\{(case|default)\b/.test(e)&&(f-=c.indentUnit),/^\{\/switch\b/.test(e)&&(f-=c.indentUnit)}var h=d(b.localStates);return f&&h.mode.indent&&(f+=h.mode.indent(h.state,e)),f},innerMode:function(a){return a.soyState.length&&"literal"!=d(a.soyState)?null:d(a.localStates)},electricInput:/^\s*\{(\/|\/template|\/deltemplate|\/switch|fallbackmsg|elseif|else|case|default|ifempty|\/literal\})$/,lineComment:"//",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",useInnerComments:!1,fold:"indent"}}),"htmlmixed"),a.registerHelper("hintWords","soy",b.concat(["delpackage","namespace","alias","print","css","debugger"])),a.defineMIME("text/x-soy","soy")}));editors/codemirror/mode/soy/soy.js000064400000031214152177723720013306 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var indentingTags = ["template", "literal", "msg", "fallbackmsg", "let", "if", "elseif",
                       "else", "switch", "case", "default", "foreach", "ifempty", "for",
                       "call", "param", "deltemplate", "delcall", "log"];

  CodeMirror.defineMode("soy", function(config) {
    var textMode = CodeMirror.getMode(config, "text/plain");
    var modes = {
      html: CodeMirror.getMode(config, {name: "text/html", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}),
      attributes: textMode,
      text: textMode,
      uri: textMode,
      trusted_resource_uri: textMode,
      css: CodeMirror.getMode(config, "text/css"),
      js: CodeMirror.getMode(config, {name: "text/javascript", statementIndent: 2 * config.indentUnit})
    };

    function last(array) {
      return array[array.length - 1];
    }

    function tokenUntil(stream, state, untilRegExp) {
      if (stream.sol()) {
        for (var indent = 0; indent < state.indent; indent++) {
          if (!stream.eat(/\s/)) break;
        }
        if (indent) return null;
      }
      var oldString = stream.string;
      var match = untilRegExp.exec(oldString.substr(stream.pos));
      if (match) {
        // We don't use backUp because it backs up just the position, not the state.
        // This uses an undocumented API.
        stream.string = oldString.substr(0, stream.pos + match.index);
      }
      var result = stream.hideFirstChars(state.indent, function() {
        var localState = last(state.localStates);
        return localState.mode.token(stream, localState.state);
      });
      stream.string = oldString;
      return result;
    }

    function contains(list, element) {
      while (list) {
        if (list.element === element) return true;
        list = list.next;
      }
      return false;
    }

    function prepend(list, element) {
      return {
        element: element,
        next: list
      };
    }

    // Reference a variable `name` in `list`.
    // Let `loose` be truthy to ignore missing identifiers.
    function ref(list, name, loose) {
      return contains(list, name) ? "variable-2" : (loose ? "variable" : "variable-2 error");
    }

    function popscope(state) {
      if (state.scopes) {
        state.variables = state.scopes.element;
        state.scopes = state.scopes.next;
      }
    }

    return {
      startState: function() {
        return {
          kind: [],
          kindTag: [],
          soyState: [],
          templates: null,
          variables: prepend(null, 'ij'),
          scopes: null,
          indent: 0,
          quoteKind: null,
          localStates: [{
            mode: modes.html,
            state: CodeMirror.startState(modes.html)
          }]
        };
      },

      copyState: function(state) {
        return {
          tag: state.tag, // Last seen Soy tag.
          kind: state.kind.concat([]), // Values of kind="" attributes.
          kindTag: state.kindTag.concat([]), // Opened tags with kind="" attributes.
          soyState: state.soyState.concat([]),
          templates: state.templates,
          variables: state.variables,
          scopes: state.scopes,
          indent: state.indent, // Indentation of the following line.
          quoteKind: state.quoteKind,
          localStates: state.localStates.map(function(localState) {
            return {
              mode: localState.mode,
              state: CodeMirror.copyState(localState.mode, localState.state)
            };
          })
        };
      },

      token: function(stream, state) {
        var match;

        switch (last(state.soyState)) {
          case "comment":
            if (stream.match(/^.*?\*\//)) {
              state.soyState.pop();
            } else {
              stream.skipToEnd();
            }
            if (!state.scopes) {
              var paramRe = /@param\??\s+(\S+)/g;
              var current = stream.current();
              for (var match; (match = paramRe.exec(current)); ) {
                state.variables = prepend(state.variables, match[1]);
              }
            }
            return "comment";

          case "string":
            var match = stream.match(/^.*?(["']|\\[\s\S])/);
            if (!match) {
              stream.skipToEnd();
            } else if (match[1] == state.quoteKind) {
              state.quoteKind = null;
              state.soyState.pop();
            }
            return "string";
        }

        if (!state.soyState.length || last(state.soyState) != "literal") {
          if (stream.match(/^\/\*/)) {
            state.soyState.push("comment");
            return "comment";
          } else if (stream.match(stream.sol() ? /^\s*\/\/.*/ : /^\s+\/\/.*/)) {
            return "comment";
          }
        }

        switch (last(state.soyState)) {
          case "templ-def":
            if (match = stream.match(/^\.?([\w]+(?!\.[\w]+)*)/)) {
              state.templates = prepend(state.templates, match[1]);
              state.scopes = prepend(state.scopes, state.variables);
              state.soyState.pop();
              return "def";
            }
            stream.next();
            return null;

          case "templ-ref":
            if (match = stream.match(/^\.?([\w]+)/)) {
              state.soyState.pop();
              // If the first character is '.', try to match against a local template name.
              if (match[0][0] == '.') {
                return ref(state.templates, match[1], true);
              }
              // Otherwise
              return "variable";
            }
            stream.next();
            return null;

          case "param-def":
            if (match = stream.match(/^\w+/)) {
              state.variables = prepend(state.variables, match[0]);
              state.soyState.pop();
              state.soyState.push("param-type");
              return "def";
            }
            stream.next();
            return null;

          case "param-type":
            if (stream.peek() == "}") {
              state.soyState.pop();
              return null;
            }
            if (stream.eatWhile(/^[\w]+/)) {
              return "variable-3";
            }
            stream.next();
            return null;

          case "var-def":
            if (match = stream.match(/^\$([\w]+)/)) {
              state.variables = prepend(state.variables, match[1]);
              state.soyState.pop();
              return "def";
            }
            stream.next();
            return null;

          case "tag":
            if (stream.match(/^\/?}/)) {
              if (state.tag == "/template" || state.tag == "/deltemplate") {
                popscope(state);
                state.variables = prepend(null, 'ij');
                state.indent = 0;
              } else {
                if (state.tag == "/for" || state.tag == "/foreach") {
                  popscope(state);
                }
                state.indent -= config.indentUnit *
                    (stream.current() == "/}" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1);
              }
              state.soyState.pop();
              return "keyword";
            } else if (stream.match(/^([\w?]+)(?==)/)) {
              if (stream.current() == "kind" && (match = stream.match(/^="([^"]+)/, false))) {
                var kind = match[1];
                state.kind.push(kind);
                state.kindTag.push(state.tag);
                var mode = modes[kind] || modes.html;
                var localState = last(state.localStates);
                if (localState.mode.indent) {
                  state.indent += localState.mode.indent(localState.state, "");
                }
                state.localStates.push({
                  mode: mode,
                  state: CodeMirror.startState(mode)
                });
              }
              return "attribute";
            } else if (match = stream.match(/^["']/)) {
              state.soyState.push("string");
              state.quoteKind = match;
              return "string";
            }
            if (match = stream.match(/^\$([\w]+)/)) {
              return ref(state.variables, match[1]);
            }
            if (match = stream.match(/^\w+/)) {
              return /^(?:as|and|or|not|in)$/.test(match[0]) ? "keyword" : null;
            }
            stream.next();
            return null;

          case "literal":
            if (stream.match(/^(?=\{\/literal})/)) {
              state.indent -= config.indentUnit;
              state.soyState.pop();
              return this.token(stream, state);
            }
            return tokenUntil(stream, state, /\{\/literal}/);
        }

        if (stream.match(/^\{literal}/)) {
          state.indent += config.indentUnit;
          state.soyState.push("literal");
          return "keyword";

        // A tag-keyword must be followed by whitespace, comment or a closing tag.
        } else if (match = stream.match(/^\{([/@\\]?\w+\??)(?=$|[\s}]|\/[/*])/)) {
          if (match[1] != "/switch")
            state.indent += (/^(\/|(else|elseif|ifempty|case|fallbackmsg|default)$)/.test(match[1]) && state.tag != "switch" ? 1 : 2) * config.indentUnit;
          state.tag = match[1];
          if (state.tag == "/" + last(state.kindTag)) {
            // We found the tag that opened the current kind="".
            state.kind.pop();
            state.kindTag.pop();
            state.localStates.pop();
            var localState = last(state.localStates);
            if (localState.mode.indent) {
              state.indent -= localState.mode.indent(localState.state, "");
            }
          }
          state.soyState.push("tag");
          if (state.tag == "template" || state.tag == "deltemplate") {
            state.soyState.push("templ-def");
          } else if (state.tag == "call" || state.tag == "delcall") {
            state.soyState.push("templ-ref");
          } else if (state.tag == "let") {
            state.soyState.push("var-def");
          } else if (state.tag == "for" || state.tag == "foreach") {
            state.scopes = prepend(state.scopes, state.variables);
            state.soyState.push("var-def");
          } else if (state.tag == "namespace") {
            if (!state.scopes) {
              state.variables = prepend(null, 'ij');
            }
          } else if (state.tag.match(/^@(?:param\??|inject)/)) {
            state.soyState.push("param-def");
          }
          return "keyword";

        // Not a tag-keyword; it's an implicit print tag.
        } else if (stream.eat('{')) {
          state.tag = "print";
          state.indent += 2 * config.indentUnit;
          state.soyState.push("tag");
          return "keyword";
        }

        return tokenUntil(stream, state, /\{|\s+\/\/|\/\*/);
      },

      indent: function(state, textAfter) {
        var indent = state.indent, top = last(state.soyState);
        if (top == "comment") return CodeMirror.Pass;

        if (top == "literal") {
          if (/^\{\/literal}/.test(textAfter)) indent -= config.indentUnit;
        } else {
          if (/^\s*\{\/(template|deltemplate)\b/.test(textAfter)) return 0;
          if (/^\{(\/|(fallbackmsg|elseif|else|ifempty)\b)/.test(textAfter)) indent -= config.indentUnit;
          if (state.tag != "switch" && /^\{(case|default)\b/.test(textAfter)) indent -= config.indentUnit;
          if (/^\{\/switch\b/.test(textAfter)) indent -= config.indentUnit;
        }
        var localState = last(state.localStates);
        if (indent && localState.mode.indent) {
          indent += localState.mode.indent(localState.state, textAfter);
        }
        return indent;
      },

      innerMode: function(state) {
        if (state.soyState.length && last(state.soyState) != "literal") return null;
        else return last(state.localStates);
      },

      electricInput: /^\s*\{(\/|\/template|\/deltemplate|\/switch|fallbackmsg|elseif|else|case|default|ifempty|\/literal\})$/,
      lineComment: "//",
      blockCommentStart: "/*",
      blockCommentEnd: "*/",
      blockCommentContinue: " * ",
      useInnerComments: false,
      fold: "indent"
    };
  }, "htmlmixed");

  CodeMirror.registerHelper("hintWords", "soy", indentingTags.concat(
      ["delpackage", "namespace", "alias", "print", "css", "debugger"]));

  CodeMirror.defineMIME("text/x-soy", "soy");
});
editors/codemirror/mode/django/django.min.js000064400000011351152177723720015150 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../../addon/mode/overlay")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../../addon/mode/overlay"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("django:inner",(function(){function a(a,b){if(a.match("{{"))return b.tokenize=c,"tag";if(a.match("{%"))return b.tokenize=d,"tag";if(a.match("{#"))return b.tokenize=e,"comment";for(;null!=a.next()&&!a.match(/\{[{%#]/,!1););return null}function b(a,b){return function(c,d){if(!d.escapeNext&&c.eat(a))d.tokenize=b;else{d.escapeNext&&(d.escapeNext=!1);var e=c.next();"\\"==e&&(d.escapeNext=!0)}return"string"}}function c(c,d){if(d.waitDot){if(d.waitDot=!1,"."!=c.peek())return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,"|"!=c.peek())return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}return d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/))?(d.waitDot=!0,d.waitPipe=!0,"property"):d.waitFilter&&(d.waitFilter=!1,c.match(h))?"variable-2":c.eatSpace()?(d.waitProperty=!1,"null"):c.match(/\b\d+(\.\d+)?\b/)?"number":c.match("'")?(d.tokenize=b("'",d.tokenize),"string"):c.match('"')?(d.tokenize=b('"',d.tokenize),"string"):c.match(/\b(\w+)\b/)&&!d.foundVariable?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("}}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.tokenize=a,"tag"):(c.next(),"null")}function d(c,d){if(d.waitDot){if(d.waitDot=!1,"."!=c.peek())return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,"|"!=c.peek())return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}if(d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/)))return d.waitDot=!0,d.waitPipe=!0,"property";if(d.waitFilter&&(d.waitFilter=!1,c.match(h)))return"variable-2";if(c.eatSpace())return d.waitProperty=!1,"null";if(c.match(/\b\d+(\.\d+)?\b/))return"number";if(c.match("'"))return d.tokenize=b("'",d.tokenize),"string";if(c.match('"'))return d.tokenize=b('"',d.tokenize),"string";if(c.match(i))return"operator";if(c.match(j))return"keyword";var e=c.match(g);return e?("comment"==e[0]&&(d.blockCommentTag=!0),"keyword"):c.match(/\b(\w+)\b/)?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("%}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.blockCommentTag?(d.blockCommentTag=!1,d.tokenize=f):d.tokenize=a,"tag"):(c.next(),"null")}function e(b,c){return b.match(/^.*?#\}/)?c.tokenize=a:b.skipToEnd(),"comment"}function f(a,b){return a.match(/\{%\s*endcomment\s*%\}/,!1)?(b.tokenize=d,a.match("{%"),"tag"):(a.next(),"comment")}var g=["block","endblock","for","endfor","true","false","filter","endfilter","loop","none","self","super","if","elif","endif","as","else","import","with","endwith","without","context","ifequal","endifequal","ifnotequal","endifnotequal","extends","include","load","comment","endcomment","empty","url","static","trans","blocktrans","endblocktrans","now","regroup","lorem","ifchanged","endifchanged","firstof","debug","cycle","csrf_token","autoescape","endautoescape","spaceless","endspaceless","ssi","templatetag","verbatim","endverbatim","widthratio"],h=["add","addslashes","capfirst","center","cut","date","default","default_if_none","dictsort","dictsortreversed","divisibleby","escape","escapejs","filesizeformat","first","floatformat","force_escape","get_digit","iriencode","join","last","length","length_is","linebreaks","linebreaksbr","linenumbers","ljust","lower","make_list","phone2numeric","pluralize","pprint","random","removetags","rjust","safe","safeseq","slice","slugify","stringformat","striptags","time","timesince","timeuntil","title","truncatechars","truncatechars_html","truncatewords","truncatewords_html","unordered_list","upper","urlencode","urlize","urlizetrunc","wordcount","wordwrap","yesno"],i=["==","!=","<",">","<=",">="],j=["in","not","or","and"];return g=new RegExp("^\\b("+g.join("|")+")\\b"),h=new RegExp("^\\b("+h.join("|")+")\\b"),i=new RegExp("^\\b("+i.join("|")+")\\b"),j=new RegExp("^\\b("+j.join("|")+")\\b"),{startState:function(){return{tokenize:a}},token:function(a,b){return b.tokenize(a,b)},blockCommentStart:"{% comment %}",blockCommentEnd:"{% endcomment %}"}})),a.defineMode("django",(function(b){var c=a.getMode(b,"text/html"),d=a.getMode(b,"django:inner");return a.overlayMode(c,d)})),a.defineMIME("text/x-django","django")}));editors/codemirror/mode/django/django.js000064400000027020152177723720014366 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
        require("../../addon/mode/overlay"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
            "../../addon/mode/overlay"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("django:inner", function() {
    var keywords = ["block", "endblock", "for", "endfor", "true", "false", "filter", "endfilter",
                    "loop", "none", "self", "super", "if", "elif", "endif", "as", "else", "import",
                    "with", "endwith", "without", "context", "ifequal", "endifequal", "ifnotequal",
                    "endifnotequal", "extends", "include", "load", "comment", "endcomment",
                    "empty", "url", "static", "trans", "blocktrans", "endblocktrans", "now",
                    "regroup", "lorem", "ifchanged", "endifchanged", "firstof", "debug", "cycle",
                    "csrf_token", "autoescape", "endautoescape", "spaceless", "endspaceless",
                    "ssi", "templatetag", "verbatim", "endverbatim", "widthratio"],
        filters = ["add", "addslashes", "capfirst", "center", "cut", "date",
                   "default", "default_if_none", "dictsort",
                   "dictsortreversed", "divisibleby", "escape", "escapejs",
                   "filesizeformat", "first", "floatformat", "force_escape",
                   "get_digit", "iriencode", "join", "last", "length",
                   "length_is", "linebreaks", "linebreaksbr", "linenumbers",
                   "ljust", "lower", "make_list", "phone2numeric", "pluralize",
                   "pprint", "random", "removetags", "rjust", "safe",
                   "safeseq", "slice", "slugify", "stringformat", "striptags",
                   "time", "timesince", "timeuntil", "title", "truncatechars",
                   "truncatechars_html", "truncatewords", "truncatewords_html",
                   "unordered_list", "upper", "urlencode", "urlize",
                   "urlizetrunc", "wordcount", "wordwrap", "yesno"],
        operators = ["==", "!=", "<", ">", "<=", ">="],
        wordOperators = ["in", "not", "or", "and"];

    keywords = new RegExp("^\\b(" + keywords.join("|") + ")\\b");
    filters = new RegExp("^\\b(" + filters.join("|") + ")\\b");
    operators = new RegExp("^\\b(" + operators.join("|") + ")\\b");
    wordOperators = new RegExp("^\\b(" + wordOperators.join("|") + ")\\b");

    // We have to return "null" instead of null, in order to avoid string
    // styling as the default, when using Django templates inside HTML
    // element attributes
    function tokenBase (stream, state) {
      // Attempt to identify a variable, template or comment tag respectively
      if (stream.match("{{")) {
        state.tokenize = inVariable;
        return "tag";
      } else if (stream.match("{%")) {
        state.tokenize = inTag;
        return "tag";
      } else if (stream.match("{#")) {
        state.tokenize = inComment;
        return "comment";
      }

      // Ignore completely any stream series that do not match the
      // Django template opening tags.
      while (stream.next() != null && !stream.match(/\{[{%#]/, false)) {}
      return null;
    }

    // A string can be included in either single or double quotes (this is
    // the delimiter). Mark everything as a string until the start delimiter
    // occurs again.
    function inString (delimiter, previousTokenizer) {
      return function (stream, state) {
        if (!state.escapeNext && stream.eat(delimiter)) {
          state.tokenize = previousTokenizer;
        } else {
          if (state.escapeNext) {
            state.escapeNext = false;
          }

          var ch = stream.next();

          // Take into account the backslash for escaping characters, such as
          // the string delimiter.
          if (ch == "\\") {
            state.escapeNext = true;
          }
        }

        return "string";
      };
    }

    // Apply Django template variable syntax highlighting
    function inVariable (stream, state) {
      // Attempt to match a dot that precedes a property
      if (state.waitDot) {
        state.waitDot = false;

        if (stream.peek() != ".") {
          return "null";
        }

        // Dot followed by a non-word character should be considered an error.
        if (stream.match(/\.\W+/)) {
          return "error";
        } else if (stream.eat(".")) {
          state.waitProperty = true;
          return "null";
        } else {
          throw Error ("Unexpected error while waiting for property.");
        }
      }

      // Attempt to match a pipe that precedes a filter
      if (state.waitPipe) {
        state.waitPipe = false;

        if (stream.peek() != "|") {
          return "null";
        }

        // Pipe followed by a non-word character should be considered an error.
        if (stream.match(/\.\W+/)) {
          return "error";
        } else if (stream.eat("|")) {
          state.waitFilter = true;
          return "null";
        } else {
          throw Error ("Unexpected error while waiting for filter.");
        }
      }

      // Highlight properties
      if (state.waitProperty) {
        state.waitProperty = false;
        if (stream.match(/\b(\w+)\b/)) {
          state.waitDot = true;  // A property can be followed by another property
          state.waitPipe = true;  // A property can be followed by a filter
          return "property";
        }
      }

      // Highlight filters
      if (state.waitFilter) {
          state.waitFilter = false;
        if (stream.match(filters)) {
          return "variable-2";
        }
      }

      // Ignore all white spaces
      if (stream.eatSpace()) {
        state.waitProperty = false;
        return "null";
      }

      // Identify numbers
      if (stream.match(/\b\d+(\.\d+)?\b/)) {
        return "number";
      }

      // Identify strings
      if (stream.match("'")) {
        state.tokenize = inString("'", state.tokenize);
        return "string";
      } else if (stream.match('"')) {
        state.tokenize = inString('"', state.tokenize);
        return "string";
      }

      // Attempt to find the variable
      if (stream.match(/\b(\w+)\b/) && !state.foundVariable) {
        state.waitDot = true;
        state.waitPipe = true;  // A property can be followed by a filter
        return "variable";
      }

      // If found closing tag reset
      if (stream.match("}}")) {
        state.waitProperty = null;
        state.waitFilter = null;
        state.waitDot = null;
        state.waitPipe = null;
        state.tokenize = tokenBase;
        return "tag";
      }

      // If nothing was found, advance to the next character
      stream.next();
      return "null";
    }

    function inTag (stream, state) {
      // Attempt to match a dot that precedes a property
      if (state.waitDot) {
        state.waitDot = false;

        if (stream.peek() != ".") {
          return "null";
        }

        // Dot followed by a non-word character should be considered an error.
        if (stream.match(/\.\W+/)) {
          return "error";
        } else if (stream.eat(".")) {
          state.waitProperty = true;
          return "null";
        } else {
          throw Error ("Unexpected error while waiting for property.");
        }
      }

      // Attempt to match a pipe that precedes a filter
      if (state.waitPipe) {
        state.waitPipe = false;

        if (stream.peek() != "|") {
          return "null";
        }

        // Pipe followed by a non-word character should be considered an error.
        if (stream.match(/\.\W+/)) {
          return "error";
        } else if (stream.eat("|")) {
          state.waitFilter = true;
          return "null";
        } else {
          throw Error ("Unexpected error while waiting for filter.");
        }
      }

      // Highlight properties
      if (state.waitProperty) {
        state.waitProperty = false;
        if (stream.match(/\b(\w+)\b/)) {
          state.waitDot = true;  // A property can be followed by another property
          state.waitPipe = true;  // A property can be followed by a filter
          return "property";
        }
      }

      // Highlight filters
      if (state.waitFilter) {
          state.waitFilter = false;
        if (stream.match(filters)) {
          return "variable-2";
        }
      }

      // Ignore all white spaces
      if (stream.eatSpace()) {
        state.waitProperty = false;
        return "null";
      }

      // Identify numbers
      if (stream.match(/\b\d+(\.\d+)?\b/)) {
        return "number";
      }

      // Identify strings
      if (stream.match("'")) {
        state.tokenize = inString("'", state.tokenize);
        return "string";
      } else if (stream.match('"')) {
        state.tokenize = inString('"', state.tokenize);
        return "string";
      }

      // Attempt to match an operator
      if (stream.match(operators)) {
        return "operator";
      }

      // Attempt to match a word operator
      if (stream.match(wordOperators)) {
        return "keyword";
      }

      // Attempt to match a keyword
      var keywordMatch = stream.match(keywords);
      if (keywordMatch) {
        if (keywordMatch[0] == "comment") {
          state.blockCommentTag = true;
        }
        return "keyword";
      }

      // Attempt to match a variable
      if (stream.match(/\b(\w+)\b/)) {
        state.waitDot = true;
        state.waitPipe = true;  // A property can be followed by a filter
        return "variable";
      }

      // If found closing tag reset
      if (stream.match("%}")) {
        state.waitProperty = null;
        state.waitFilter = null;
        state.waitDot = null;
        state.waitPipe = null;
        // If the tag that closes is a block comment tag, we want to mark the
        // following code as comment, until the tag closes.
        if (state.blockCommentTag) {
          state.blockCommentTag = false;  // Release the "lock"
          state.tokenize = inBlockComment;
        } else {
          state.tokenize = tokenBase;
        }
        return "tag";
      }

      // If nothing was found, advance to the next character
      stream.next();
      return "null";
    }

    // Mark everything as comment inside the tag and the tag itself.
    function inComment (stream, state) {
      if (stream.match(/^.*?#\}/)) state.tokenize = tokenBase
      else stream.skipToEnd()
      return "comment";
    }

    // Mark everything as a comment until the `blockcomment` tag closes.
    function inBlockComment (stream, state) {
      if (stream.match(/\{%\s*endcomment\s*%\}/, false)) {
        state.tokenize = inTag;
        stream.match("{%");
        return "tag";
      } else {
        stream.next();
        return "comment";
      }
    }

    return {
      startState: function () {
        return {tokenize: tokenBase};
      },
      token: function (stream, state) {
        return state.tokenize(stream, state);
      },
      blockCommentStart: "{% comment %}",
      blockCommentEnd: "{% endcomment %}"
    };
  });

  CodeMirror.defineMode("django", function(config) {
    var htmlBase = CodeMirror.getMode(config, "text/html");
    var djangoInner = CodeMirror.getMode(config, "django:inner");
    return CodeMirror.overlayMode(htmlBase, djangoInner);
  });

  CodeMirror.defineMIME("text/x-django", "django");
});
editors/codemirror/mode/haskell-literate/haskell-literate.min.js000064400000001271152177723720021130 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../haskell/haskell")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../haskell/haskell"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("haskell-literate",(function(b,c){var d=a.getMode(b,c&&c.base||"haskell");return{startState:function(){return{inCode:!1,baseState:a.startState(d)}},token:function(a,b){return a.sol()&&(b.inCode=a.eat(">"))?"meta":b.inCode?d.token(a,b.baseState):(a.skipToEnd(),"comment")},innerMode:function(a){return a.inCode?{state:a.baseState,mode:d}:null}}}),"haskell"),a.defineMIME("text/x-literate-haskell","haskell-literate")}));editors/codemirror/mode/haskell-literate/haskell-literate.js000064400000002557152177723720020356 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function (mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../haskell/haskell"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../haskell/haskell"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function (CodeMirror) {
  "use strict"

  CodeMirror.defineMode("haskell-literate", function (config, parserConfig) {
    var baseMode = CodeMirror.getMode(config, (parserConfig && parserConfig.base) || "haskell")

    return {
      startState: function () {
        return {
          inCode: false,
          baseState: CodeMirror.startState(baseMode)
        }
      },
      token: function (stream, state) {
        if (stream.sol()) {
          if (state.inCode = stream.eat(">"))
            return "meta"
        }
        if (state.inCode) {
          return baseMode.token(stream, state.baseState)
        } else {
          stream.skipToEnd()
          return "comment"
        }
      },
      innerMode: function (state) {
        return state.inCode ? {state: state.baseState, mode: baseMode} : null
      }
    }
  }, "haskell")

  CodeMirror.defineMIME("text/x-literate-haskell", "haskell-literate")
});
editors/codemirror/mode/stylus/stylus.min.js000064400000063225152177723720015361 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return a=a.sort((function(a,b){return b>a})),new RegExp("^(("+a.join(")|(")+"))\\b")}function c(a){for(var b={},c=0;c<a.length;++c)b[a[c]]=!0;return b}function d(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}a.defineMode("stylus",(function(a){function q(a,b){if(ea=a.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),b.context.line.firstWord=ea?ea[0].replace(/^\s*/,""):"",b.context.line.indent=a.indentation(),K=a.peek(),a.match("//"))return a.skipToEnd(),["comment","comment"];if(a.match("/*"))return b.tokenize=r,r(a,b);if('"'==K||"'"==K)return a.next(),b.tokenize=s(K),b.tokenize(a,b);if("@"==K)return a.next(),a.eatWhile(/[\w\\-]/),["def",a.current()];if("#"==K){if(a.next(),a.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b/i))return["atom","atom"];if(a.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return a.match(ca)?["meta","vendor-prefixes"]:a.match(/^-?[0-9]?\.?[0-9]/)?(a.eatWhile(/[a-z%]/i),["number","unit"]):"!"==K?(a.next(),[a.match(/^(important|optional)/i)?"keyword":"operator","important"]):"."==K&&a.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:a.match(X)?("("==a.peek()&&(b.tokenize=t),["property","word"]):a.match(/^[a-z][\w-]*\(/i)?(a.backUp(1),["keyword","mixin"]):a.match(/^(\+|-)[a-z][\w-]*\(/i)?(a.backUp(1),["keyword","block-mixin"]):a.string.match(/^\s*&/)&&a.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:a.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(a.backUp(1),["variable-3","reference"]):a.match(/^&{1}\s*$/)?["variable-3","reference"]:a.match(aa)?["operator","operator"]:a.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?a.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!z(a.current())?(a.match(/\./),["variable-2","variable-name"]):["variable-2","word"]:a.match(_)?["operator",a.current()]:/[:;,{}\[\]\(\)]/.test(K)?(a.next(),[null,K]):(a.next(),[null,null])}function r(a,b){for(var c,d=!1;null!=(c=a.next());){if(d&&"/"==c){b.tokenize=null;break}d="*"==c}return["comment","comment"]}function s(a){return function(b,c){for(var d,e=!1;null!=(d=b.next());){if(d==a&&!e){")"==a&&b.backUp(1);break}e=!e&&"\\"==d}return(d==a||!e&&")"!=a)&&(c.tokenize=null),["string","string"]}}function t(a,b){return a.next(),a.match(/\s*[\"\')]/,!1)?b.tokenize=null:b.tokenize=s(")"),[null,"("]}function u(a,b,c,d){this.type=a,this.indent=b,this.prev=c,this.line=d||{firstWord:"",indent:0}}function v(a,b,c,d){return d=d>=0?d:O,a.context=new u(c,b.indentation()+d,a.context),c}function w(a,b){var c=a.context.indent-O;return b=b||!1,a.context=a.context.prev,b&&(a.context.indent=c),a.context.type}function x(a,b,c){return fa[c.context.type](a,b,c)}function y(a,b,c,d){for(var e=d||1;e>0;e--)c.context=c.context.prev;return x(a,b,c)}function z(a){return a.toLowerCase()in Q}function A(a){return a=a.toLowerCase(),a in S||a in $}function B(a){return a.toLowerCase()in ba}function C(a){return a.toLowerCase().match(ca)}function D(a){var b=a.toLowerCase(),c="variable-2";return z(a)?c="tag":B(a)?c="block-keyword":A(a)?c="property":b in U||b in da?c="atom":"return"==b||b in V?c="keyword":a.match(/^[A-Z]/)&&(c="string"),c}function E(a,b){return I(b)&&("{"==a||"]"==a||"hash"==a||"qualifier"==a)||"block-mixin"==a}function F(a,b){return"{"==a&&b.match(/^\s*\$?[\w-]+/i,!1)}function G(a,b){return":"==a&&b.match(/^[a-z-]+/,!1)}function H(a){return a.sol()||a.string.match(new RegExp("^\\s*"+d(a.current())))}function I(a){return a.eol()||a.match(/^\s*$/,!1)}function J(a){var b=/^\s*[-_]*[a-z0-9]+[\w-]*/i,c="string"==typeof a?a.match(b):a.string.match(b);return c?c[0].replace(/^\s*/,""):""}for(var K,L,M,N,O=a.indentUnit,P="",Q=c(e),R=/^(a|b|i|s|col|em)$/i,S=c(i),T=c(j),U=c(m),V=c(l),W=c(f),X=b(f),Y=c(h),Z=c(g),$=c(k),_=/^\s*([.]{2,3}|&&|\|\||\*\*|[?!=:]?=|[-+*\/%<>]=?|\?:|\~)/,aa=b(n),ba=c(o),ca=new RegExp(/^\-(moz|ms|o|webkit)-/i),da=c(p),ea="",fa={};P.length<O;)P+=" ";return fa.block=function(a,b,c){if("comment"==a&&H(b)||","==a&&I(b)||"mixin"==a)return v(c,b,"block",0);if(F(a,b))return v(c,b,"interpolation");if(I(b)&&"]"==a&&!/^\s*(\.|#|:|\[|\*|&)/.test(b.string)&&!z(J(b)))return v(c,b,"block",0);if(E(a,b))return v(c,b,"block");if("}"==a&&I(b))return v(c,b,"block",0);if("variable-name"==a)return b.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||B(J(b))?v(c,b,"variableName"):v(c,b,"variableName",0);if("="==a)return I(b)||B(J(b))?v(c,b,"block"):v(c,b,"block",0);if("*"==a&&(I(b)||b.match(/\s*(,|\.|#|\[|:|{)/,!1)))return N="tag",v(c,b,"block");if(G(a,b))return v(c,b,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(a))return v(c,b,I(b)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(a))return v(c,b,"keyframes");if(/@extends?/.test(a))return v(c,b,"extend",0);if(a&&"@"==a.charAt(0))return b.indentation()>0&&A(b.current().slice(1))?(N="variable-2","block"):/(@import|@require|@charset)/.test(a)?v(c,b,"block",0):v(c,b,"block");if("reference"==a&&I(b))return v(c,b,"block");if("("==a)return v(c,b,"parens");if("vendor-prefixes"==a)return v(c,b,"vendorPrefixes");if("word"==a){var d=b.current();if(N=D(d),"property"==N)return H(b)?v(c,b,"block",0):(N="atom","block");if("tag"==N){if(/embed|menu|pre|progress|sub|table/.test(d)&&A(J(b)))return N="atom","block";if(b.string.match(new RegExp("\\[\\s*"+d+"|"+d+"\\s*\\]")))return N="atom","block";if(R.test(d)&&(H(b)&&b.string.match(/=/)||!H(b)&&!b.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!z(J(b))))return N="variable-2",B(J(b))?"block":v(c,b,"block",0);if(I(b))return v(c,b,"block")}if("block-keyword"==N)return N="keyword",b.current(/(if|unless)/)&&!H(b)?"block":v(c,b,"block");if("return"==d)return v(c,b,"block",0);if("variable-2"==N&&b.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return v(c,b,"block")}return c.context.type},fa.parens=function(a,b,c){if("("==a)return v(c,b,"parens");if(")"==a)return"parens"==c.context.prev.type?w(c):b.string.match(/^[a-z][\w-]*\(/i)&&I(b)||B(J(b))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(J(b))||!b.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&z(J(b))?v(c,b,"block"):b.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||b.string.match(/^\s*(\(|\)|[0-9])/)||b.string.match(/^\s+[a-z][\w-]*\(/i)||b.string.match(/^\s+[\$-]?[a-z]/i)?v(c,b,"block",0):I(b)?v(c,b,"block"):v(c,b,"block",0);if(a&&"@"==a.charAt(0)&&A(b.current().slice(1))&&(N="variable-2"),"word"==a){var d=b.current();N=D(d),"tag"==N&&R.test(d)&&(N="variable-2"),"property"!=N&&"to"!=d||(N="atom")}return"variable-name"==a?v(c,b,"variableName"):G(a,b)?v(c,b,"pseudo"):c.context.type},fa.vendorPrefixes=function(a,b,c){return"word"==a?(N="property",v(c,b,"block",0)):w(c)},fa.pseudo=function(a,b,c){return A(J(b.string))?y(a,b,c):(b.match(/^[a-z-]+/),N="variable-3",I(b)?v(c,b,"block"):w(c))},fa.atBlock=function(a,b,c){if("("==a)return v(c,b,"atBlock_parens");if(E(a,b))return v(c,b,"block");if(F(a,b))return v(c,b,"interpolation");if("word"==a){var d=b.current().toLowerCase();if(N=/^(only|not|and|or)$/.test(d)?"keyword":W.hasOwnProperty(d)?"tag":Z.hasOwnProperty(d)?"attribute":Y.hasOwnProperty(d)?"property":T.hasOwnProperty(d)?"string-2":D(b.current()),"tag"==N&&I(b))return v(c,b,"block")}return"operator"==a&&/^(not|and|or)$/.test(b.current())&&(N="keyword"),c.context.type},fa.atBlock_parens=function(a,b,c){if("{"==a||"}"==a)return c.context.type;if(")"==a)return I(b)?v(c,b,"block"):v(c,b,"atBlock");if("word"==a){var d=b.current().toLowerCase();return N=D(d),/^(max|min)/.test(d)&&(N="property"),"tag"==N&&(N=R.test(d)?"variable-2":"atom"),c.context.type}return fa.atBlock(a,b,c)},fa.keyframes=function(a,b,c){return"0"==b.indentation()&&("}"==a&&H(b)||"]"==a||"hash"==a||"qualifier"==a||z(b.current()))?y(a,b,c):"{"==a?v(c,b,"keyframes"):"}"==a?H(b)?w(c,!0):v(c,b,"keyframes"):"unit"==a&&/^[0-9]+\%$/.test(b.current())?v(c,b,"keyframes"):"word"==a&&(N=D(b.current()),"block-keyword"==N)?(N="keyword",v(c,b,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(a)?v(c,b,I(b)?"block":"atBlock"):"mixin"==a?v(c,b,"block",0):c.context.type},fa.interpolation=function(a,b,c){return"{"==a&&w(c)&&v(c,b,"block"),"}"==a?b.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||b.string.match(/^\s*[a-z]/i)&&z(J(b))?v(c,b,"block"):!b.string.match(/^(\{|\s*\&)/)||b.match(/\s*[\w-]/,!1)?v(c,b,"block",0):v(c,b,"block"):"variable-name"==a?v(c,b,"variableName",0):("word"==a&&(N=D(b.current()),"tag"==N&&(N="atom")),c.context.type)},fa.extend=function(a,b,c){return"["==a||"="==a?"extend":"]"==a?w(c):"word"==a?(N=D(b.current()),"extend"):w(c)},fa.variableName=function(a,b,c){return"string"==a||"["==a||"]"==a||b.current().match(/^(\.|\$)/)?(b.current().match(/^\.[\w-]+/i)&&(N="variable-2"),"variableName"):y(a,b,c)},{startState:function(a){return{tokenize:null,state:"block",context:new u("block",a||0,null)}},token:function(a,b){return!b.tokenize&&a.eatSpace()?null:(L=(b.tokenize||q)(a,b),L&&"object"==typeof L&&(M=L[1],L=L[0]),N=L,b.state=fa[b.state](M,a,b),N)},indent:function(a,b,c){var d=a.context,e=b&&b.charAt(0),f=d.indent,g=J(b),h=c.match(/^\s*/)[0].replace(/\t/g,P).length,i=a.context.prev?a.context.prev.line.firstWord:"",j=a.context.prev?a.context.prev.line.indent:h;return d.prev&&("}"==e&&("block"==d.type||"atBlock"==d.type||"keyframes"==d.type)||")"==e&&("parens"==d.type||"atBlock_parens"==d.type)||"{"==e&&"at"==d.type)?f=d.indent-O:/(\})/.test(e)||(/@|\$|\d/.test(e)||/^\{/.test(b)||/^\s*\/(\/|\*)/.test(b)||/^\s*\/\*/.test(i)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(b)||/^(\+|-)?[a-z][\w-]*\(/i.test(b)||/^return/.test(b)||B(g)?f=h:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(e)||z(g)?f=/\,\s*$/.test(i)?j:/^\s+/.test(c)&&(/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(i)||z(i))?h<=j?j:j+O:h:/,\s*$/.test(c)||!C(g)&&!A(g)||(f=B(i)?h<=j?j:j+O:/^\{/.test(i)?h<=j?h:j+O:C(i)||A(i)?h>=j?j:h:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(i)||/=\s*$/.test(i)||z(i)||/^\$[\w-\.\[\]\'\"]/.test(i)?j+O:h)),f},electricChars:"}",lineComment:"//",fold:"indent"}}));var e=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],f=["domain","regexp","url","url-prefix"],g=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],h=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"],i=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],j=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],k=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],l=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],n=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],o=["for","if","else","unless","from","to"],p=["null","true","false","href","title","type","not-allowed","readonly","disabled"],q=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"],r=e.concat(f,g,h,i,j,l,m,k,n,o,p,q);a.registerHelper("hintWords","stylus",r),a.defineMIME("text/x-styl","stylus")}));editors/codemirror/mode/stylus/stylus.js000064400000122444152177723720014576 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Stylus mode created by Dmitry Kiselyov http://git.io/AaRB

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("stylus", function(config) {
    var indentUnit = config.indentUnit,
        indentUnitString = '',
        tagKeywords = keySet(tagKeywords_),
        tagVariablesRegexp = /^(a|b|i|s|col|em)$/i,
        propertyKeywords = keySet(propertyKeywords_),
        nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_),
        valueKeywords = keySet(valueKeywords_),
        colorKeywords = keySet(colorKeywords_),
        documentTypes = keySet(documentTypes_),
        documentTypesRegexp = wordRegexp(documentTypes_),
        mediaFeatures = keySet(mediaFeatures_),
        mediaTypes = keySet(mediaTypes_),
        fontProperties = keySet(fontProperties_),
        operatorsRegexp = /^\s*([.]{2,3}|&&|\|\||\*\*|[?!=:]?=|[-+*\/%<>]=?|\?:|\~)/,
        wordOperatorKeywordsRegexp = wordRegexp(wordOperatorKeywords_),
        blockKeywords = keySet(blockKeywords_),
        vendorPrefixesRegexp = new RegExp(/^\-(moz|ms|o|webkit)-/i),
        commonAtoms = keySet(commonAtoms_),
        firstWordMatch = "",
        states = {},
        ch,
        style,
        type,
        override;

    while (indentUnitString.length < indentUnit) indentUnitString += ' ';

    /**
     * Tokenizers
     */
    function tokenBase(stream, state) {
      firstWordMatch = stream.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/);
      state.context.line.firstWord = firstWordMatch ? firstWordMatch[0].replace(/^\s*/, "") : "";
      state.context.line.indent = stream.indentation();
      ch = stream.peek();

      // Line comment
      if (stream.match("//")) {
        stream.skipToEnd();
        return ["comment", "comment"];
      }
      // Block comment
      if (stream.match("/*")) {
        state.tokenize = tokenCComment;
        return tokenCComment(stream, state);
      }
      // String
      if (ch == "\"" || ch == "'") {
        stream.next();
        state.tokenize = tokenString(ch);
        return state.tokenize(stream, state);
      }
      // Def
      if (ch == "@") {
        stream.next();
        stream.eatWhile(/[\w\\-]/);
        return ["def", stream.current()];
      }
      // ID selector or Hex color
      if (ch == "#") {
        stream.next();
        // Hex color
        if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b/i)) {
          return ["atom", "atom"];
        }
        // ID selector
        if (stream.match(/^[a-z][\w-]*/i)) {
          return ["builtin", "hash"];
        }
      }
      // Vendor prefixes
      if (stream.match(vendorPrefixesRegexp)) {
        return ["meta", "vendor-prefixes"];
      }
      // Numbers
      if (stream.match(/^-?[0-9]?\.?[0-9]/)) {
        stream.eatWhile(/[a-z%]/i);
        return ["number", "unit"];
      }
      // !important|optional
      if (ch == "!") {
        stream.next();
        return [stream.match(/^(important|optional)/i) ? "keyword": "operator", "important"];
      }
      // Class
      if (ch == "." && stream.match(/^\.[a-z][\w-]*/i)) {
        return ["qualifier", "qualifier"];
      }
      // url url-prefix domain regexp
      if (stream.match(documentTypesRegexp)) {
        if (stream.peek() == "(") state.tokenize = tokenParenthesized;
        return ["property", "word"];
      }
      // Mixins / Functions
      if (stream.match(/^[a-z][\w-]*\(/i)) {
        stream.backUp(1);
        return ["keyword", "mixin"];
      }
      // Block mixins
      if (stream.match(/^(\+|-)[a-z][\w-]*\(/i)) {
        stream.backUp(1);
        return ["keyword", "block-mixin"];
      }
      // Parent Reference BEM naming
      if (stream.string.match(/^\s*&/) && stream.match(/^[-_]+[a-z][\w-]*/)) {
        return ["qualifier", "qualifier"];
      }
      // / Root Reference & Parent Reference
      if (stream.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)) {
        stream.backUp(1);
        return ["variable-3", "reference"];
      }
      if (stream.match(/^&{1}\s*$/)) {
        return ["variable-3", "reference"];
      }
      // Word operator
      if (stream.match(wordOperatorKeywordsRegexp)) {
        return ["operator", "operator"];
      }
      // Word
      if (stream.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)) {
        // Variable
        if (stream.match(/^(\.|\[)[\w-\'\"\]]+/i, false)) {
          if (!wordIsTag(stream.current())) {
            stream.match(/\./);
            return ["variable-2", "variable-name"];
          }
        }
        return ["variable-2", "word"];
      }
      // Operators
      if (stream.match(operatorsRegexp)) {
        return ["operator", stream.current()];
      }
      // Delimiters
      if (/[:;,{}\[\]\(\)]/.test(ch)) {
        stream.next();
        return [null, ch];
      }
      // Non-detected items
      stream.next();
      return [null, null];
    }

    /**
     * Token comment
     */
    function tokenCComment(stream, state) {
      var maybeEnd = false, ch;
      while ((ch = stream.next()) != null) {
        if (maybeEnd && ch == "/") {
          state.tokenize = null;
          break;
        }
        maybeEnd = (ch == "*");
      }
      return ["comment", "comment"];
    }

    /**
     * Token string
     */
    function tokenString(quote) {
      return function(stream, state) {
        var escaped = false, ch;
        while ((ch = stream.next()) != null) {
          if (ch == quote && !escaped) {
            if (quote == ")") stream.backUp(1);
            break;
          }
          escaped = !escaped && ch == "\\";
        }
        if (ch == quote || !escaped && quote != ")") state.tokenize = null;
        return ["string", "string"];
      };
    }

    /**
     * Token parenthesized
     */
    function tokenParenthesized(stream, state) {
      stream.next(); // Must be "("
      if (!stream.match(/\s*[\"\')]/, false))
        state.tokenize = tokenString(")");
      else
        state.tokenize = null;
      return [null, "("];
    }

    /**
     * Context management
     */
    function Context(type, indent, prev, line) {
      this.type = type;
      this.indent = indent;
      this.prev = prev;
      this.line = line || {firstWord: "", indent: 0};
    }

    function pushContext(state, stream, type, indent) {
      indent = indent >= 0 ? indent : indentUnit;
      state.context = new Context(type, stream.indentation() + indent, state.context);
      return type;
    }

    function popContext(state, currentIndent) {
      var contextIndent = state.context.indent - indentUnit;
      currentIndent = currentIndent || false;
      state.context = state.context.prev;
      if (currentIndent) state.context.indent = contextIndent;
      return state.context.type;
    }

    function pass(type, stream, state) {
      return states[state.context.type](type, stream, state);
    }

    function popAndPass(type, stream, state, n) {
      for (var i = n || 1; i > 0; i--)
        state.context = state.context.prev;
      return pass(type, stream, state);
    }


    /**
     * Parser
     */
    function wordIsTag(word) {
      return word.toLowerCase() in tagKeywords;
    }

    function wordIsProperty(word) {
      word = word.toLowerCase();
      return word in propertyKeywords || word in fontProperties;
    }

    function wordIsBlock(word) {
      return word.toLowerCase() in blockKeywords;
    }

    function wordIsVendorPrefix(word) {
      return word.toLowerCase().match(vendorPrefixesRegexp);
    }

    function wordAsValue(word) {
      var wordLC = word.toLowerCase();
      var override = "variable-2";
      if (wordIsTag(word)) override = "tag";
      else if (wordIsBlock(word)) override = "block-keyword";
      else if (wordIsProperty(word)) override = "property";
      else if (wordLC in valueKeywords || wordLC in commonAtoms) override = "atom";
      else if (wordLC == "return" || wordLC in colorKeywords) override = "keyword";

      // Font family
      else if (word.match(/^[A-Z]/)) override = "string";
      return override;
    }

    function typeIsBlock(type, stream) {
      return ((endOfLine(stream) && (type == "{" || type == "]" || type == "hash" || type == "qualifier")) || type == "block-mixin");
    }

    function typeIsInterpolation(type, stream) {
      return type == "{" && stream.match(/^\s*\$?[\w-]+/i, false);
    }

    function typeIsPseudo(type, stream) {
      return type == ":" && stream.match(/^[a-z-]+/, false);
    }

    function startOfLine(stream) {
      return stream.sol() || stream.string.match(new RegExp("^\\s*" + escapeRegExp(stream.current())));
    }

    function endOfLine(stream) {
      return stream.eol() || stream.match(/^\s*$/, false);
    }

    function firstWordOfLine(line) {
      var re = /^\s*[-_]*[a-z0-9]+[\w-]*/i;
      var result = typeof line == "string" ? line.match(re) : line.string.match(re);
      return result ? result[0].replace(/^\s*/, "") : "";
    }


    /**
     * Block
     */
    states.block = function(type, stream, state) {
      if ((type == "comment" && startOfLine(stream)) ||
          (type == "," && endOfLine(stream)) ||
          type == "mixin") {
        return pushContext(state, stream, "block", 0);
      }
      if (typeIsInterpolation(type, stream)) {
        return pushContext(state, stream, "interpolation");
      }
      if (endOfLine(stream) && type == "]") {
        if (!/^\s*(\.|#|:|\[|\*|&)/.test(stream.string) && !wordIsTag(firstWordOfLine(stream))) {
          return pushContext(state, stream, "block", 0);
        }
      }
      if (typeIsBlock(type, stream)) {
        return pushContext(state, stream, "block");
      }
      if (type == "}" && endOfLine(stream)) {
        return pushContext(state, stream, "block", 0);
      }
      if (type == "variable-name") {
        if (stream.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/) || wordIsBlock(firstWordOfLine(stream))) {
          return pushContext(state, stream, "variableName");
        }
        else {
          return pushContext(state, stream, "variableName", 0);
        }
      }
      if (type == "=") {
        if (!endOfLine(stream) && !wordIsBlock(firstWordOfLine(stream))) {
          return pushContext(state, stream, "block", 0);
        }
        return pushContext(state, stream, "block");
      }
      if (type == "*") {
        if (endOfLine(stream) || stream.match(/\s*(,|\.|#|\[|:|{)/,false)) {
          override = "tag";
          return pushContext(state, stream, "block");
        }
      }
      if (typeIsPseudo(type, stream)) {
        return pushContext(state, stream, "pseudo");
      }
      if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {
        return pushContext(state, stream, endOfLine(stream) ? "block" : "atBlock");
      }
      if (/@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {
        return pushContext(state, stream, "keyframes");
      }
      if (/@extends?/.test(type)) {
        return pushContext(state, stream, "extend", 0);
      }
      if (type && type.charAt(0) == "@") {

        // Property Lookup
        if (stream.indentation() > 0 && wordIsProperty(stream.current().slice(1))) {
          override = "variable-2";
          return "block";
        }
        if (/(@import|@require|@charset)/.test(type)) {
          return pushContext(state, stream, "block", 0);
        }
        return pushContext(state, stream, "block");
      }
      if (type == "reference" && endOfLine(stream)) {
        return pushContext(state, stream, "block");
      }
      if (type == "(") {
        return pushContext(state, stream, "parens");
      }

      if (type == "vendor-prefixes") {
        return pushContext(state, stream, "vendorPrefixes");
      }
      if (type == "word") {
        var word = stream.current();
        override = wordAsValue(word);

        if (override == "property") {
          if (startOfLine(stream)) {
            return pushContext(state, stream, "block", 0);
          } else {
            override = "atom";
            return "block";
          }
        }

        if (override == "tag") {

          // tag is a css value
          if (/embed|menu|pre|progress|sub|table/.test(word)) {
            if (wordIsProperty(firstWordOfLine(stream))) {
              override = "atom";
              return "block";
            }
          }

          // tag is an attribute
          if (stream.string.match(new RegExp("\\[\\s*" + word + "|" + word +"\\s*\\]"))) {
            override = "atom";
            return "block";
          }

          // tag is a variable
          if (tagVariablesRegexp.test(word)) {
            if ((startOfLine(stream) && stream.string.match(/=/)) ||
                (!startOfLine(stream) &&
                 !stream.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/) &&
                 !wordIsTag(firstWordOfLine(stream)))) {
              override = "variable-2";
              if (wordIsBlock(firstWordOfLine(stream)))  return "block";
              return pushContext(state, stream, "block", 0);
            }
          }

          if (endOfLine(stream)) return pushContext(state, stream, "block");
        }
        if (override == "block-keyword") {
          override = "keyword";

          // Postfix conditionals
          if (stream.current(/(if|unless)/) && !startOfLine(stream)) {
            return "block";
          }
          return pushContext(state, stream, "block");
        }
        if (word == "return") return pushContext(state, stream, "block", 0);

        // Placeholder selector
        if (override == "variable-2" && stream.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)) {
          return pushContext(state, stream, "block");
        }
      }
      return state.context.type;
    };


    /**
     * Parens
     */
    states.parens = function(type, stream, state) {
      if (type == "(") return pushContext(state, stream, "parens");
      if (type == ")") {
        if (state.context.prev.type == "parens") {
          return popContext(state);
        }
        if ((stream.string.match(/^[a-z][\w-]*\(/i) && endOfLine(stream)) ||
            wordIsBlock(firstWordOfLine(stream)) ||
            /(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(firstWordOfLine(stream)) ||
            (!stream.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/) &&
             wordIsTag(firstWordOfLine(stream)))) {
          return pushContext(state, stream, "block");
        }
        if (stream.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/) ||
            stream.string.match(/^\s*(\(|\)|[0-9])/) ||
            stream.string.match(/^\s+[a-z][\w-]*\(/i) ||
            stream.string.match(/^\s+[\$-]?[a-z]/i)) {
          return pushContext(state, stream, "block", 0);
        }
        if (endOfLine(stream)) return pushContext(state, stream, "block");
        else return pushContext(state, stream, "block", 0);
      }
      if (type && type.charAt(0) == "@" && wordIsProperty(stream.current().slice(1))) {
        override = "variable-2";
      }
      if (type == "word") {
        var word = stream.current();
        override = wordAsValue(word);
        if (override == "tag" && tagVariablesRegexp.test(word)) {
          override = "variable-2";
        }
        if (override == "property" || word == "to") override = "atom";
      }
      if (type == "variable-name") {
        return pushContext(state, stream, "variableName");
      }
      if (typeIsPseudo(type, stream)) {
        return pushContext(state, stream, "pseudo");
      }
      return state.context.type;
    };


    /**
     * Vendor prefixes
     */
    states.vendorPrefixes = function(type, stream, state) {
      if (type == "word") {
        override = "property";
        return pushContext(state, stream, "block", 0);
      }
      return popContext(state);
    };


    /**
     * Pseudo
     */
    states.pseudo = function(type, stream, state) {
      if (!wordIsProperty(firstWordOfLine(stream.string))) {
        stream.match(/^[a-z-]+/);
        override = "variable-3";
        if (endOfLine(stream)) return pushContext(state, stream, "block");
        return popContext(state);
      }
      return popAndPass(type, stream, state);
    };


    /**
     * atBlock
     */
    states.atBlock = function(type, stream, state) {
      if (type == "(") return pushContext(state, stream, "atBlock_parens");
      if (typeIsBlock(type, stream)) {
        return pushContext(state, stream, "block");
      }
      if (typeIsInterpolation(type, stream)) {
        return pushContext(state, stream, "interpolation");
      }
      if (type == "word") {
        var word = stream.current().toLowerCase();
        if (/^(only|not|and|or)$/.test(word))
          override = "keyword";
        else if (documentTypes.hasOwnProperty(word))
          override = "tag";
        else if (mediaTypes.hasOwnProperty(word))
          override = "attribute";
        else if (mediaFeatures.hasOwnProperty(word))
          override = "property";
        else if (nonStandardPropertyKeywords.hasOwnProperty(word))
          override = "string-2";
        else override = wordAsValue(stream.current());
        if (override == "tag" && endOfLine(stream)) {
          return pushContext(state, stream, "block");
        }
      }
      if (type == "operator" && /^(not|and|or)$/.test(stream.current())) {
        override = "keyword";
      }
      return state.context.type;
    };

    states.atBlock_parens = function(type, stream, state) {
      if (type == "{" || type == "}") return state.context.type;
      if (type == ")") {
        if (endOfLine(stream)) return pushContext(state, stream, "block");
        else return pushContext(state, stream, "atBlock");
      }
      if (type == "word") {
        var word = stream.current().toLowerCase();
        override = wordAsValue(word);
        if (/^(max|min)/.test(word)) override = "property";
        if (override == "tag") {
          tagVariablesRegexp.test(word) ? override = "variable-2" : override = "atom";
        }
        return state.context.type;
      }
      return states.atBlock(type, stream, state);
    };


    /**
     * Keyframes
     */
    states.keyframes = function(type, stream, state) {
      if (stream.indentation() == "0" && ((type == "}" && startOfLine(stream)) || type == "]" || type == "hash"
                                          || type == "qualifier" || wordIsTag(stream.current()))) {
        return popAndPass(type, stream, state);
      }
      if (type == "{") return pushContext(state, stream, "keyframes");
      if (type == "}") {
        if (startOfLine(stream)) return popContext(state, true);
        else return pushContext(state, stream, "keyframes");
      }
      if (type == "unit" && /^[0-9]+\%$/.test(stream.current())) {
        return pushContext(state, stream, "keyframes");
      }
      if (type == "word") {
        override = wordAsValue(stream.current());
        if (override == "block-keyword") {
          override = "keyword";
          return pushContext(state, stream, "keyframes");
        }
      }
      if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {
        return pushContext(state, stream, endOfLine(stream) ? "block" : "atBlock");
      }
      if (type == "mixin") {
        return pushContext(state, stream, "block", 0);
      }
      return state.context.type;
    };


    /**
     * Interpolation
     */
    states.interpolation = function(type, stream, state) {
      if (type == "{") popContext(state) && pushContext(state, stream, "block");
      if (type == "}") {
        if (stream.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i) ||
            (stream.string.match(/^\s*[a-z]/i) && wordIsTag(firstWordOfLine(stream)))) {
          return pushContext(state, stream, "block");
        }
        if (!stream.string.match(/^(\{|\s*\&)/) ||
            stream.match(/\s*[\w-]/,false)) {
          return pushContext(state, stream, "block", 0);
        }
        return pushContext(state, stream, "block");
      }
      if (type == "variable-name") {
        return pushContext(state, stream, "variableName", 0);
      }
      if (type == "word") {
        override = wordAsValue(stream.current());
        if (override == "tag") override = "atom";
      }
      return state.context.type;
    };


    /**
     * Extend/s
     */
    states.extend = function(type, stream, state) {
      if (type == "[" || type == "=") return "extend";
      if (type == "]") return popContext(state);
      if (type == "word") {
        override = wordAsValue(stream.current());
        return "extend";
      }
      return popContext(state);
    };


    /**
     * Variable name
     */
    states.variableName = function(type, stream, state) {
      if (type == "string" || type == "[" || type == "]" || stream.current().match(/^(\.|\$)/)) {
        if (stream.current().match(/^\.[\w-]+/i)) override = "variable-2";
        return "variableName";
      }
      return popAndPass(type, stream, state);
    };


    return {
      startState: function(base) {
        return {
          tokenize: null,
          state: "block",
          context: new Context("block", base || 0, null)
        };
      },
      token: function(stream, state) {
        if (!state.tokenize && stream.eatSpace()) return null;
        style = (state.tokenize || tokenBase)(stream, state);
        if (style && typeof style == "object") {
          type = style[1];
          style = style[0];
        }
        override = style;
        state.state = states[state.state](type, stream, state);
        return override;
      },
      indent: function(state, textAfter, line) {

        var cx = state.context,
            ch = textAfter && textAfter.charAt(0),
            indent = cx.indent,
            lineFirstWord = firstWordOfLine(textAfter),
            lineIndent = line.match(/^\s*/)[0].replace(/\t/g, indentUnitString).length,
            prevLineFirstWord = state.context.prev ? state.context.prev.line.firstWord : "",
            prevLineIndent = state.context.prev ? state.context.prev.line.indent : lineIndent;

        if (cx.prev &&
            (ch == "}" && (cx.type == "block" || cx.type == "atBlock" || cx.type == "keyframes") ||
             ch == ")" && (cx.type == "parens" || cx.type == "atBlock_parens") ||
             ch == "{" && (cx.type == "at"))) {
          indent = cx.indent - indentUnit;
        } else if (!(/(\})/.test(ch))) {
          if (/@|\$|\d/.test(ch) ||
              /^\{/.test(textAfter) ||
/^\s*\/(\/|\*)/.test(textAfter) ||
              /^\s*\/\*/.test(prevLineFirstWord) ||
              /^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(textAfter) ||
/^(\+|-)?[a-z][\w-]*\(/i.test(textAfter) ||
/^return/.test(textAfter) ||
              wordIsBlock(lineFirstWord)) {
            indent = lineIndent;
          } else if (/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(ch) || wordIsTag(lineFirstWord)) {
            if (/\,\s*$/.test(prevLineFirstWord)) {
              indent = prevLineIndent;
            } else if (/^\s+/.test(line) && (/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(prevLineFirstWord) || wordIsTag(prevLineFirstWord))) {
              indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;
            } else {
              indent = lineIndent;
            }
          } else if (!/,\s*$/.test(line) && (wordIsVendorPrefix(lineFirstWord) || wordIsProperty(lineFirstWord))) {
            if (wordIsBlock(prevLineFirstWord)) {
              indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;
            } else if (/^\{/.test(prevLineFirstWord)) {
              indent = lineIndent <= prevLineIndent ? lineIndent : prevLineIndent + indentUnit;
            } else if (wordIsVendorPrefix(prevLineFirstWord) || wordIsProperty(prevLineFirstWord)) {
              indent = lineIndent >= prevLineIndent ? prevLineIndent : lineIndent;
            } else if (/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(prevLineFirstWord) ||
                      /=\s*$/.test(prevLineFirstWord) ||
                      wordIsTag(prevLineFirstWord) ||
                      /^\$[\w-\.\[\]\'\"]/.test(prevLineFirstWord)) {
              indent = prevLineIndent + indentUnit;
            } else {
              indent = lineIndent;
            }
          }
        }
        return indent;
      },
      electricChars: "}",
      lineComment: "//",
      fold: "indent"
    };
  });

  // developer.mozilla.org/en-US/docs/Web/HTML/Element
  var tagKeywords_ = ["a","abbr","address","area","article","aside","audio", "b", "base","bdi", "bdo","bgsound","blockquote","body","br","button","canvas","caption","cite", "code","col","colgroup","data","datalist","dd","del","details","dfn","div", "dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1", "h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe", "img","input","ins","kbd","keygen","label","legend","li","link","main","map", "mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes", "noscript","object","ol","optgroup","option","output","p","param","pre", "progress","q","rp","rt","ruby","s","samp","script","section","select", "small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track", "u","ul","var","video"];

  // github.com/codemirror/CodeMirror/blob/master/mode/css/css.js
  var documentTypes_ = ["domain", "regexp", "url", "url-prefix"];
  var mediaTypes_ = ["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"];
  var mediaFeatures_ = ["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"];
  var propertyKeywords_ = ["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"];
  var nonStandardPropertyKeywords_ = ["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"];
  var fontProperties_ = ["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"];
  var colorKeywords_ = ["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"];
  var valueKeywords_ = ["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around", "unset"];

  var wordOperatorKeywords_ = ["in","and","or","not","is not","is a","is","isnt","defined","if unless"],
      blockKeywords_ = ["for","if","else","unless", "from", "to"],
      commonAtoms_ = ["null","true","false","href","title","type","not-allowed","readonly","disabled"],
      commonDef_ = ["@font-face", "@keyframes", "@media", "@viewport", "@page", "@host", "@supports", "@block", "@css"];

  var hintWords = tagKeywords_.concat(documentTypes_,mediaTypes_,mediaFeatures_,
                                      propertyKeywords_,nonStandardPropertyKeywords_,
                                      colorKeywords_,valueKeywords_,fontProperties_,
                                      wordOperatorKeywords_,blockKeywords_,
                                      commonAtoms_,commonDef_);

  function wordRegexp(words) {
    words = words.sort(function(a,b){return b > a;});
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  function keySet(array) {
    var keys = {};
    for (var i = 0; i < array.length; ++i) keys[array[i]] = true;
    return keys;
  }

  function escapeRegExp(text) {
    return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
  }

  CodeMirror.registerHelper("hintWords", "stylus", hintWords);
  CodeMirror.defineMIME("text/x-styl", "stylus");
});
editors/codemirror/mode/rpm/changes/index.html000064400000004205152177723720015527 0ustar00<!doctype html>

<title>CodeMirror: RPM changes mode</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../../doc/docs.css">

    <link rel="stylesheet" href="../../../lib/codemirror.css">
    <script src="../../../lib/codemirror.js"></script>
    <script src="changes.js"></script>
    <link rel="stylesheet" href="../../../doc/docs.css">
    <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>

<div id=nav>
  <a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../../doc/logo.png"></a>

  <ul>
    <li><a href="../../../index.html">Home</a>
    <li><a href="../../../doc/manual.html">Manual</a>
    <li><a href="https://github.com/codemirror/codemirror">Code</a>
  </ul>
  <ul>
    <li><a href="../../index.html">Language modes</a>
    <li><a class=active href="#">RPM changes</a>
  </ul>
</div>

<article>
<h2>RPM changes mode</h2>

    <div><textarea id="code" name="code">
-------------------------------------------------------------------
Tue Oct 18 13:58:40 UTC 2011 - misterx@example.com

- Update to r60.3
- Fixes bug in the reflect package
  * disallow Interface method on Value obtained via unexported name

-------------------------------------------------------------------
Thu Oct  6 08:14:24 UTC 2011 - misterx@example.com

- Update to r60.2
- Fixes memory leak in certain map types

-------------------------------------------------------------------
Wed Oct  5 14:34:10 UTC 2011 - misterx@example.com

- Tweaks for gdb debugging
- go.spec changes:
  - move %go_arch definition to %prep section
  - pass correct location of go specific gdb pretty printer and
    functions to cpp as HOST_EXTRA_CFLAGS macro
  - install go gdb functions & printer
- gdb-printer.patch
  - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go
    gdb functions and pretty printer
</textarea></div>
    <script>
      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        mode: {name: "changes"},
        lineNumbers: true,
        indentUnit: 4
      });
    </script>

    <p><strong>MIME types defined:</strong> <code>text/x-rpm-changes</code>.</p>
</article>
editors/codemirror/mode/rpm/rpm.min.js000064400000003673152177723720014050 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("rpm-changes",(function(){var a=/^-+$/,b=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,c=/^[\w+.-]+@[\w.-]+/;return{token:function(d){if(d.sol()){if(d.match(a))return"tag";if(d.match(b))return"tag"}return d.match(c)?"string":(d.next(),null)}}})),a.defineMIME("text/x-rpm-changes","rpm-changes"),a.defineMode("rpm-spec",(function(){var a=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,b=/^[a-zA-Z0-9()]+:/,c=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,d=/^%(ifnarch|ifarch|if)/,e=/^%(else|endif)/,f=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;return{startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(g,h){var i=g.peek();if("#"==i)return g.skipToEnd(),"comment";if(g.sol()){if(g.match(b))return"header";if(g.match(c))return"atom"}if(g.match(/^\$\w+/))return"def";if(g.match(/^\$\{\w+\}/))return"def";if(g.match(e))return"keyword";if(g.match(d))return h.controlFlow=!0,"keyword";if(h.controlFlow){if(g.match(f))return"operator";if(g.match(/^(\d+)/))return"number";g.eol()&&(h.controlFlow=!1)}if(g.match(a))return g.eol()&&(h.controlFlow=!1),"number";if(g.match(/^%[\w]+/))return g.match(/^\(/)&&(h.macroParameters=!0),"keyword";if(h.macroParameters){if(g.match(/^\d+/))return"number";if(g.match(/^\)/))return h.macroParameters=!1,"keyword"}return g.match(/^%\{\??[\w \-\:\!]+\}/)?(g.eol()&&(h.controlFlow=!1),"def"):(g.next(),null)}}})),a.defineMIME("text/x-rpm-spec","rpm-spec")}));editors/codemirror/mode/rpm/rpm.js000064400000007300152177723720013255 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("rpm-changes", function() {
  var headerSeperator = /^-+$/;
  var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;
  var simpleEmail = /^[\w+.-]+@[\w.-]+/;

  return {
    token: function(stream) {
      if (stream.sol()) {
        if (stream.match(headerSeperator)) { return 'tag'; }
        if (stream.match(headerLine)) { return 'tag'; }
      }
      if (stream.match(simpleEmail)) { return 'string'; }
      stream.next();
      return null;
    }
  };
});

CodeMirror.defineMIME("text/x-rpm-changes", "rpm-changes");

// Quick and dirty spec file highlighting

CodeMirror.defineMode("rpm-spec", function() {
  var arch = /^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;

  var preamble = /^[a-zA-Z0-9()]+:/;
  var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/;
  var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros
  var control_flow_simple = /^%(else|endif)/; // rpm control flow macros
  var operators = /^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/; // operators in control flow macros

  return {
    startState: function () {
        return {
          controlFlow: false,
          macroParameters: false,
          section: false
        };
    },
    token: function (stream, state) {
      var ch = stream.peek();
      if (ch == "#") { stream.skipToEnd(); return "comment"; }

      if (stream.sol()) {
        if (stream.match(preamble)) { return "header"; }
        if (stream.match(section)) { return "atom"; }
      }

      if (stream.match(/^\$\w+/)) { return "def"; } // Variables like '$RPM_BUILD_ROOT'
      if (stream.match(/^\$\{\w+\}/)) { return "def"; } // Variables like '${RPM_BUILD_ROOT}'

      if (stream.match(control_flow_simple)) { return "keyword"; }
      if (stream.match(control_flow_complex)) {
        state.controlFlow = true;
        return "keyword";
      }
      if (state.controlFlow) {
        if (stream.match(operators)) { return "operator"; }
        if (stream.match(/^(\d+)/)) { return "number"; }
        if (stream.eol()) { state.controlFlow = false; }
      }

      if (stream.match(arch)) {
        if (stream.eol()) { state.controlFlow = false; }
        return "number";
      }

      // Macros like '%make_install' or '%attr(0775,root,root)'
      if (stream.match(/^%[\w]+/)) {
        if (stream.match(/^\(/)) { state.macroParameters = true; }
        return "keyword";
      }
      if (state.macroParameters) {
        if (stream.match(/^\d+/)) { return "number";}
        if (stream.match(/^\)/)) {
          state.macroParameters = false;
          return "keyword";
        }
      }

      // Macros like '%{defined fedora}'
      if (stream.match(/^%\{\??[\w \-\:\!]+\}/)) {
        if (stream.eol()) { state.controlFlow = false; }
        return "def";
      }

      //TODO: Include bash script sub-parser (CodeMirror supports that)
      stream.next();
      return null;
    }
  };
});

CodeMirror.defineMIME("text/x-rpm-spec", "rpm-spec");

});
editors/codemirror/mode/pegjs/pegjs.js000064400000006772152177723720014115 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../javascript/javascript"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../javascript/javascript"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("pegjs", function (config) {
  var jsMode = CodeMirror.getMode(config, "javascript");

  function identifier(stream) {
    return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);
  }

  return {
    startState: function () {
      return {
        inString: false,
        stringType: null,
        inComment: false,
        inCharacterClass: false,
        braced: 0,
        lhs: true,
        localState: null
      };
    },
    token: function (stream, state) {
      if (stream)

      //check for state changes
      if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
        state.stringType = stream.peek();
        stream.next(); // Skip quote
        state.inString = true; // Update state
      }
      if (!state.inString && !state.inComment && stream.match(/^\/\*/)) {
        state.inComment = true;
      }

      //return state
      if (state.inString) {
        while (state.inString && !stream.eol()) {
          if (stream.peek() === state.stringType) {
            stream.next(); // Skip quote
            state.inString = false; // Clear flag
          } else if (stream.peek() === '\\') {
            stream.next();
            stream.next();
          } else {
            stream.match(/^.[^\\\"\']*/);
          }
        }
        return state.lhs ? "property string" : "string"; // Token style
      } else if (state.inComment) {
        while (state.inComment && !stream.eol()) {
          if (stream.match(/\*\//)) {
            state.inComment = false; // Clear flag
          } else {
            stream.match(/^.[^\*]*/);
          }
        }
        return "comment";
      } else if (state.inCharacterClass) {
          while (state.inCharacterClass && !stream.eol()) {
            if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
              state.inCharacterClass = false;
            }
          }
      } else if (stream.peek() === '[') {
        stream.next();
        state.inCharacterClass = true;
        return 'bracket';
      } else if (stream.match(/^\/\//)) {
        stream.skipToEnd();
        return "comment";
      } else if (state.braced || stream.peek() === '{') {
        if (state.localState === null) {
          state.localState = CodeMirror.startState(jsMode);
        }
        var token = jsMode.token(stream, state.localState);
        var text = stream.current();
        if (!token) {
          for (var i = 0; i < text.length; i++) {
            if (text[i] === '{') {
              state.braced++;
            } else if (text[i] === '}') {
              state.braced--;
            }
          };
        }
        return token;
      } else if (identifier(stream)) {
        if (stream.peek() === ':') {
          return 'variable';
        }
        return 'variable-2';
      } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {
        stream.next();
        return 'bracket';
      } else if (!stream.eatSpace()) {
        stream.next();
      }
      return null;
    }
  };
}, "javascript");

});
editors/codemirror/mode/pegjs/pegjs.min.js000064400000003164152177723720014667 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../javascript/javascript")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../javascript/javascript"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("pegjs",(function(b){function c(a){return a.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)}var d=a.getMode(b,"javascript");return{startState:function(){return{inString:!1,stringType:null,inComment:!1,inCharacterClass:!1,braced:0,lhs:!0,localState:null}},token:function(b,e){if(b&&(e.inString||e.inComment||'"'!=b.peek()&&"'"!=b.peek()||(e.stringType=b.peek(),b.next(),e.inString=!0)),e.inString||e.inComment||!b.match(/^\/\*/)||(e.inComment=!0),e.inString){for(;e.inString&&!b.eol();)b.peek()===e.stringType?(b.next(),e.inString=!1):"\\"===b.peek()?(b.next(),b.next()):b.match(/^.[^\\\"\']*/);return e.lhs?"property string":"string"}if(e.inComment){for(;e.inComment&&!b.eol();)b.match(/\*\//)?e.inComment=!1:b.match(/^.[^\*]*/);return"comment"}if(e.inCharacterClass)for(;e.inCharacterClass&&!b.eol();)b.match(/^[^\]\\]+/)||b.match(/^\\./)||(e.inCharacterClass=!1);else{if("["===b.peek())return b.next(),e.inCharacterClass=!0,"bracket";if(b.match(/^\/\//))return b.skipToEnd(),"comment";if(e.braced||"{"===b.peek()){null===e.localState&&(e.localState=a.startState(d));var f=d.token(b,e.localState),g=b.current();if(!f)for(var h=0;h<g.length;h++)"{"===g[h]?e.braced++:"}"===g[h]&&e.braced--;return f}if(c(b))return":"===b.peek()?"variable":"variable-2";if(["[","]","(",")"].indexOf(b.peek())!=-1)return b.next(),"bracket";b.eatSpace()||b.next()}return null}}}),"javascript")}));editors/codemirror/mode/tiki/tiki.min.css000064400000000471152177723720014521 0ustar00.cm-tw-syntaxerror{color:#FFF;background-color:#900}.cm-tw-deleted{text-decoration:line-through}.cm-tw-header5{font-weight:700}.cm-tw-listitem:first-child{padding-left:10px}.cm-tw-box{border-top-width:0!important;border-style:solid;border-width:1px;border-color:inherit}.cm-tw-underline{text-decoration:underline}editors/codemirror/mode/tiki/tiki.css000064400000000667152177723720013746 0ustar00.cm-tw-syntaxerror {
	color: #FFF;
	background-color: #900;
}

.cm-tw-deleted {
	text-decoration: line-through;
}

.cm-tw-header5 {
	font-weight: bold;
}
.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/
	padding-left: 10px;
}

.cm-tw-box {
	border-top-width: 0px !important;
	border-style: solid;
	border-width: 1px;
	border-color: inherit;
}

.cm-tw-underline {
	text-decoration: underline;
}editors/codemirror/mode/tiki/tiki.js000064400000020417152177723720013565 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('tiki', function(config) {
  function inBlock(style, terminator, returnTokenizer) {
    return function(stream, state) {
      while (!stream.eol()) {
        if (stream.match(terminator)) {
          state.tokenize = inText;
          break;
        }
        stream.next();
      }

      if (returnTokenizer) state.tokenize = returnTokenizer;

      return style;
    };
  }

  function inLine(style) {
    return function(stream, state) {
      while(!stream.eol()) {
        stream.next();
      }
      state.tokenize = inText;
      return style;
    };
  }

  function inText(stream, state) {
    function chain(parser) {
      state.tokenize = parser;
      return parser(stream, state);
    }

    var sol = stream.sol();
    var ch = stream.next();

    //non start of line
    switch (ch) { //switch is generally much faster than if, so it is used here
    case "{": //plugin
      stream.eat("/");
      stream.eatSpace();
      stream.eatWhile(/[^\s\u00a0=\"\'\/?(}]/);
      state.tokenize = inPlugin;
      return "tag";
    case "_": //bold
      if (stream.eat("_"))
        return chain(inBlock("strong", "__", inText));
      break;
    case "'": //italics
      if (stream.eat("'"))
        return chain(inBlock("em", "''", inText));
      break;
    case "(":// Wiki Link
      if (stream.eat("("))
        return chain(inBlock("variable-2", "))", inText));
      break;
    case "[":// Weblink
      return chain(inBlock("variable-3", "]", inText));
      break;
    case "|": //table
      if (stream.eat("|"))
        return chain(inBlock("comment", "||"));
      break;
    case "-":
      if (stream.eat("=")) {//titleBar
        return chain(inBlock("header string", "=-", inText));
      } else if (stream.eat("-")) {//deleted
        return chain(inBlock("error tw-deleted", "--", inText));
      }
      break;
    case "=": //underline
      if (stream.match("=="))
        return chain(inBlock("tw-underline", "===", inText));
      break;
    case ":":
      if (stream.eat(":"))
        return chain(inBlock("comment", "::"));
      break;
    case "^": //box
      return chain(inBlock("tw-box", "^"));
      break;
    case "~": //np
      if (stream.match("np~"))
        return chain(inBlock("meta", "~/np~"));
      break;
    }

    //start of line types
    if (sol) {
      switch (ch) {
      case "!": //header at start of line
        if (stream.match('!!!!!')) {
          return chain(inLine("header string"));
        } else if (stream.match('!!!!')) {
          return chain(inLine("header string"));
        } else if (stream.match('!!!')) {
          return chain(inLine("header string"));
        } else if (stream.match('!!')) {
          return chain(inLine("header string"));
        } else {
          return chain(inLine("header string"));
        }
        break;
      case "*": //unordered list line item, or <li /> at start of line
      case "#": //ordered list line item, or <li /> at start of line
      case "+": //ordered list line item, or <li /> at start of line
        return chain(inLine("tw-listitem bracket"));
        break;
      }
    }

    //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki
    return null;
  }

  var indentUnit = config.indentUnit;

  // Return variables for tokenizers
  var pluginName, type;
  function inPlugin(stream, state) {
    var ch = stream.next();
    var peek = stream.peek();

    if (ch == "}") {
      state.tokenize = inText;
      //type = ch == ")" ? "endPlugin" : "selfclosePlugin"; inPlugin
      return "tag";
    } else if (ch == "(" || ch == ")") {
      return "bracket";
    } else if (ch == "=") {
      type = "equals";

      if (peek == ">") {
        stream.next();
        peek = stream.peek();
      }

      //here we detect values directly after equal character with no quotes
      if (!/[\'\"]/.test(peek)) {
        state.tokenize = inAttributeNoQuote();
      }
      //end detect values

      return "operator";
    } else if (/[\'\"]/.test(ch)) {
      state.tokenize = inAttribute(ch);
      return state.tokenize(stream, state);
    } else {
      stream.eatWhile(/[^\s\u00a0=\"\'\/?]/);
      return "keyword";
    }
  }

  function inAttribute(quote) {
    return function(stream, state) {
      while (!stream.eol()) {
        if (stream.next() == quote) {
          state.tokenize = inPlugin;
          break;
        }
      }
      return "string";
    };
  }

  function inAttributeNoQuote() {
    return function(stream, state) {
      while (!stream.eol()) {
        var ch = stream.next();
        var peek = stream.peek();
        if (ch == " " || ch == "," || /[ )}]/.test(peek)) {
      state.tokenize = inPlugin;
      break;
    }
  }
  return "string";
};
                     }

var curState, setStyle;
function pass() {
  for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);
}

function cont() {
  pass.apply(null, arguments);
  return true;
}

function pushContext(pluginName, startOfLine) {
  var noIndent = curState.context && curState.context.noIndent;
  curState.context = {
    prev: curState.context,
    pluginName: pluginName,
    indent: curState.indented,
    startOfLine: startOfLine,
    noIndent: noIndent
  };
}

function popContext() {
  if (curState.context) curState.context = curState.context.prev;
}

function element(type) {
  if (type == "openPlugin") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}
  else if (type == "closePlugin") {
    var err = false;
    if (curState.context) {
      err = curState.context.pluginName != pluginName;
      popContext();
    } else {
      err = true;
    }
    if (err) setStyle = "error";
    return cont(endcloseplugin(err));
  }
  else if (type == "string") {
    if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata");
    if (curState.tokenize == inText) popContext();
    return cont();
  }
  else return cont();
}

function endplugin(startOfLine) {
  return function(type) {
    if (
      type == "selfclosePlugin" ||
        type == "endPlugin"
    )
      return cont();
    if (type == "endPlugin") {pushContext(curState.pluginName, startOfLine); return cont();}
    return cont();
  };
}

function endcloseplugin(err) {
  return function(type) {
    if (err) setStyle = "error";
    if (type == "endPlugin") return cont();
    return pass();
  };
}

function attributes(type) {
  if (type == "keyword") {setStyle = "attribute"; return cont(attributes);}
  if (type == "equals") return cont(attvalue, attributes);
  return pass();
}
function attvalue(type) {
  if (type == "keyword") {setStyle = "string"; return cont();}
  if (type == "string") return cont(attvaluemaybe);
  return pass();
}
function attvaluemaybe(type) {
  if (type == "string") return cont(attvaluemaybe);
  else return pass();
}
return {
  startState: function() {
    return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};
  },
  token: function(stream, state) {
    if (stream.sol()) {
      state.startOfLine = true;
      state.indented = stream.indentation();
    }
    if (stream.eatSpace()) return null;

    setStyle = type = pluginName = null;
    var style = state.tokenize(stream, state);
    if ((style || type) && style != "comment") {
      curState = state;
      while (true) {
        var comb = state.cc.pop() || element;
        if (comb(type || style)) break;
      }
    }
    state.startOfLine = false;
    return setStyle || style;
  },
  indent: function(state, textAfter) {
    var context = state.context;
    if (context && context.noIndent) return 0;
    if (context && /^{\//.test(textAfter))
        context = context.prev;
    while (context && !context.startOfLine)
        context = context.prev;
    if (context) return context.indent + indentUnit;
    else return 0;
  },
  electricChars: "/"
};
});

CodeMirror.defineMIME("text/tiki", "tiki");

});
editors/codemirror/mode/tiki/tiki.min.js000064400000007021152177723720014343 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("tiki",(function(a){function b(a,b,c){return function(e,f){for(;!e.eol();){if(e.match(b)){f.tokenize=d;break}e.next()}return c&&(f.tokenize=c),a}}function c(a){return function(b,c){for(;!b.eol();)b.next();return c.tokenize=d,a}}function d(a,f){function g(b){return f.tokenize=b,b(a,f)}var h=a.sol(),i=a.next();switch(i){case"{":return a.eat("/"),a.eatSpace(),a.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),f.tokenize=e,"tag";case"_":if(a.eat("_"))return g(b("strong","__",d));break;case"'":if(a.eat("'"))return g(b("em","''",d));break;case"(":if(a.eat("("))return g(b("variable-2","))",d));break;case"[":return g(b("variable-3","]",d));case"|":if(a.eat("|"))return g(b("comment","||"));break;case"-":if(a.eat("="))return g(b("header string","=-",d));if(a.eat("-"))return g(b("error tw-deleted","--",d));break;case"=":if(a.match("=="))return g(b("tw-underline","===",d));break;case":":if(a.eat(":"))return g(b("comment","::"));break;case"^":return g(b("tw-box","^"));case"~":if(a.match("np~"))return g(b("meta","~/np~"))}if(h)switch(i){case"!":return g(a.match("!!!!!")?c("header string"):a.match("!!!!")?c("header string"):a.match("!!!")?c("header string"):a.match("!!")?c("header string"):c("header string"));case"*":case"#":case"+":return g(c("tw-listitem bracket"))}return null}function e(a,b){var c=a.next(),e=a.peek();return"}"==c?(b.tokenize=d,"tag"):"("==c||")"==c?"bracket":"="==c?(s="equals",">"==e&&(a.next(),e=a.peek()),/[\'\"]/.test(e)||(b.tokenize=g()),"operator"):/[\'\"]/.test(c)?(b.tokenize=f(c),b.tokenize(a,b)):(a.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function f(a){return function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=e;break}return"string"}}function g(){return function(a,b){for(;!a.eol();){var c=a.next(),d=a.peek();if(" "==c||","==c||/[ )}]/.test(d)){b.tokenize=e;break}}return"string"}}function h(){for(var a=arguments.length-1;a>=0;a--)t.cc.push(arguments[a])}function i(){return h.apply(null,arguments),!0}function j(a,b){var c=t.context&&t.context.noIndent;t.context={prev:t.context,pluginName:a,indent:t.indented,startOfLine:b,noIndent:c}}function k(){t.context&&(t.context=t.context.prev)}function l(a){if("openPlugin"==a)return t.pluginName=r,i(o,m(t.startOfLine));if("closePlugin"==a){var b=!1;return t.context?(b=t.context.pluginName!=r,k()):b=!0,b&&(u="error"),i(n(b))}return"string"==a?(t.context&&"!cdata"==t.context.name||j("!cdata"),t.tokenize==d&&k(),i()):i()}function m(a){return function(b){return"selfclosePlugin"==b||"endPlugin"==b?i():"endPlugin"==b?(j(t.pluginName,a),i()):i()}}function n(a){return function(b){return a&&(u="error"),"endPlugin"==b?i():h()}}function o(a){return"keyword"==a?(u="attribute",i(o)):"equals"==a?i(p,o):h()}function p(a){return"keyword"==a?(u="string",i()):"string"==a?i(q):h()}function q(a){return"string"==a?i(q):h()}var r,s,t,u,v=a.indentUnit;return{startState:function(){return{tokenize:d,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(a,b){if(a.sol()&&(b.startOfLine=!0,b.indented=a.indentation()),a.eatSpace())return null;u=s=r=null;var c=b.tokenize(a,b);if((c||s)&&"comment"!=c)for(t=b;;){var d=b.cc.pop()||l;if(d(s||c))break}return b.startOfLine=!1,u||c},indent:function(a,b){var c=a.context;if(c&&c.noIndent)return 0;for(c&&/^{\//.test(b)&&(c=c.prev);c&&!c.startOfLine;)c=c.prev;return c?c.indent+v:0},electricChars:"/"}})),a.defineMIME("text/tiki","tiki")}));editors/codemirror/mode/lua/lua.min.js000064400000007072152177723720014013 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("lua",(function(a,b){function c(a){return new RegExp("^(?:"+a.join("|")+")","i")}function d(a){return new RegExp("^(?:"+a.join("|")+")$","i")}function e(a){for(var b=0;a.eat("=");)++b;return a.eat("["),b}function f(a,b){var c=a.next();return"-"==c&&a.eat("-")?a.eat("[")&&a.eat("[")?(b.cur=g(e(a),"comment"))(a,b):(a.skipToEnd(),"comment"):'"'==c||"'"==c?(b.cur=h(c))(a,b):"["==c&&/[\[=]/.test(a.peek())?(b.cur=g(e(a),"string"))(a,b):/\d/.test(c)?(a.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(c)?(a.eatWhile(/[\w\\\-_.]/),"variable"):null}function g(a,b){return function(c,d){for(var e,g=null;null!=(e=c.next());)if(null==g)"]"==e&&(g=0);else if("="==e)++g;else{if("]"==e&&g==a){d.cur=f;break}g=null}return b}}function h(a){return function(b,c){for(var d,e=!1;null!=(d=b.next())&&(d!=a||e);)e=!e&&"\\"==d;return e||(c.cur=f),"string"}}var i=a.indentUnit,j=d(b.specials||[]),k=d(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),l=d(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),m=d(["function","if","repeat","do","\\(","{"]),n=d(["end","until","\\)","}"]),o=c(["end","until","\\)","}","else","elseif"]);return{startState:function(a){return{basecol:a||0,indentDepth:0,cur:f}},token:function(a,b){if(a.eatSpace())return null;var c=b.cur(a,b),d=a.current();return"variable"==c&&(l.test(d)?c="keyword":k.test(d)?c="builtin":j.test(d)&&(c="variable-2")),"comment"!=c&&"string"!=c&&(m.test(d)?++b.indentDepth:n.test(d)&&--b.indentDepth),c},indent:function(a,b){var c=o.test(b);return a.basecol+i*(a.indentDepth-(c?1:0))},lineComment:"--",blockCommentStart:"--[[",blockCommentEnd:"]]"}})),a.defineMIME("text/x-lua","lua")}));editors/codemirror/mode/lua/lua.js000064400000013477152177723720013237 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's
// CodeMirror 1 mode.
// highlights keywords, strings, comments (no leveling supported! ("[==[")), tokens, basic indenting

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("lua", function(config, parserConfig) {
  var indentUnit = config.indentUnit;

  function prefixRE(words) {
    return new RegExp("^(?:" + words.join("|") + ")", "i");
  }
  function wordRE(words) {
    return new RegExp("^(?:" + words.join("|") + ")$", "i");
  }
  var specials = wordRE(parserConfig.specials || []);

  // long list of standard functions from lua manual
  var builtins = wordRE([
    "_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load",
    "loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require",
    "select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall",

    "coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield",

    "debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable",
    "debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable",
    "debug.setupvalue","debug.traceback",

    "close","flush","lines","read","seek","setvbuf","write",

    "io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin",
    "io.stdout","io.tmpfile","io.type","io.write",

    "math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg",
    "math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max",
    "math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh",
    "math.sqrt","math.tan","math.tanh",

    "os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale",
    "os.time","os.tmpname",

    "package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload",
    "package.seeall",

    "string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub",
    "string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper",

    "table.concat","table.insert","table.maxn","table.remove","table.sort"
  ]);
  var keywords = wordRE(["and","break","elseif","false","nil","not","or","return",
                         "true","function", "end", "if", "then", "else", "do",
                         "while", "repeat", "until", "for", "in", "local" ]);

  var indentTokens = wordRE(["function", "if","repeat","do", "\\(", "{"]);
  var dedentTokens = wordRE(["end", "until", "\\)", "}"]);
  var dedentPartial = prefixRE(["end", "until", "\\)", "}", "else", "elseif"]);

  function readBracket(stream) {
    var level = 0;
    while (stream.eat("=")) ++level;
    stream.eat("[");
    return level;
  }

  function normal(stream, state) {
    var ch = stream.next();
    if (ch == "-" && stream.eat("-")) {
      if (stream.eat("[") && stream.eat("["))
        return (state.cur = bracketed(readBracket(stream), "comment"))(stream, state);
      stream.skipToEnd();
      return "comment";
    }
    if (ch == "\"" || ch == "'")
      return (state.cur = string(ch))(stream, state);
    if (ch == "[" && /[\[=]/.test(stream.peek()))
      return (state.cur = bracketed(readBracket(stream), "string"))(stream, state);
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w.%]/);
      return "number";
    }
    if (/[\w_]/.test(ch)) {
      stream.eatWhile(/[\w\\\-_.]/);
      return "variable";
    }
    return null;
  }

  function bracketed(level, style) {
    return function(stream, state) {
      var curlev = null, ch;
      while ((ch = stream.next()) != null) {
        if (curlev == null) {if (ch == "]") curlev = 0;}
        else if (ch == "=") ++curlev;
        else if (ch == "]" && curlev == level) { state.cur = normal; break; }
        else curlev = null;
      }
      return style;
    };
  }

  function string(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) break;
        escaped = !escaped && ch == "\\";
      }
      if (!escaped) state.cur = normal;
      return "string";
    };
  }

  return {
    startState: function(basecol) {
      return {basecol: basecol || 0, indentDepth: 0, cur: normal};
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      var style = state.cur(stream, state);
      var word = stream.current();
      if (style == "variable") {
        if (keywords.test(word)) style = "keyword";
        else if (builtins.test(word)) style = "builtin";
        else if (specials.test(word)) style = "variable-2";
      }
      if ((style != "comment") && (style != "string")){
        if (indentTokens.test(word)) ++state.indentDepth;
        else if (dedentTokens.test(word)) --state.indentDepth;
      }
      return style;
    },

    indent: function(state, textAfter) {
      var closing = dedentPartial.test(textAfter);
      return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));
    },

    lineComment: "--",
    blockCommentStart: "--[[",
    blockCommentEnd: "]]"
  };
});

CodeMirror.defineMIME("text/x-lua", "lua");

});
editors/codemirror/mode/haxe/haxe.js000064400000042234152177723720013540 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("haxe", function(config, parserConfig) {
  var indentUnit = config.indentUnit;

  // Tokenizer

  function kw(type) {return {type: type, style: "keyword"};}
  var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
  var operator = kw("operator"), atom = {type: "atom", style: "atom"}, attribute = {type:"attribute", style: "attribute"};
  var type = kw("typedef");
  var keywords = {
    "if": A, "while": A, "else": B, "do": B, "try": B,
    "return": C, "break": C, "continue": C, "new": C, "throw": C,
    "var": kw("var"), "inline":attribute, "static": attribute, "using":kw("import"),
    "public": attribute, "private": attribute, "cast": kw("cast"), "import": kw("import"), "macro": kw("macro"),
    "function": kw("function"), "catch": kw("catch"), "untyped": kw("untyped"), "callback": kw("cb"),
    "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
    "in": operator, "never": kw("property_access"), "trace":kw("trace"),
    "class": type, "abstract":type, "enum":type, "interface":type, "typedef":type, "extends":type, "implements":type, "dynamic":type,
    "true": atom, "false": atom, "null": atom
  };

  var isOperatorChar = /[+\-*&%=<>!?|]/;

  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }

  function toUnescaped(stream, end) {
    var escaped = false, next;
    while ((next = stream.next()) != null) {
      if (next == end && !escaped)
        return true;
      escaped = !escaped && next == "\\";
    }
  }

  // Used as scratch variables to communicate multiple values without
  // consing up tons of objects.
  var type, content;
  function ret(tp, style, cont) {
    type = tp; content = cont;
    return style;
  }

  function haxeTokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"' || ch == "'") {
      return chain(stream, state, haxeTokenString(ch));
    } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      return ret(ch);
    } else if (ch == "0" && stream.eat(/x/i)) {
      stream.eatWhile(/[\da-f]/i);
      return ret("number", "number");
    } else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) {
      stream.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/);
      return ret("number", "number");
    } else if (state.reAllowed && (ch == "~" && stream.eat(/\//))) {
      toUnescaped(stream, "/");
      stream.eatWhile(/[gimsu]/);
      return ret("regexp", "string-2");
    } else if (ch == "/") {
      if (stream.eat("*")) {
        return chain(stream, state, haxeTokenComment);
      } else if (stream.eat("/")) {
        stream.skipToEnd();
        return ret("comment", "comment");
      } else {
        stream.eatWhile(isOperatorChar);
        return ret("operator", null, stream.current());
      }
    } else if (ch == "#") {
        stream.skipToEnd();
        return ret("conditional", "meta");
    } else if (ch == "@") {
      stream.eat(/:/);
      stream.eatWhile(/[\w_]/);
      return ret ("metadata", "meta");
    } else if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return ret("operator", null, stream.current());
    } else {
      var word;
      if(/[A-Z]/.test(ch)) {
        stream.eatWhile(/[\w_<>]/);
        word = stream.current();
        return ret("type", "variable-3", word);
      } else {
        stream.eatWhile(/[\w_]/);
        var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
        return (known && state.kwAllowed) ? ret(known.type, known.style, word) :
                       ret("variable", "variable", word);
      }
    }
  }

  function haxeTokenString(quote) {
    return function(stream, state) {
      if (toUnescaped(stream, quote))
        state.tokenize = haxeTokenBase;
      return ret("string", "string");
    };
  }

  function haxeTokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = haxeTokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return ret("comment", "comment");
  }

  // Parser

  var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true};

  function HaxeLexical(indented, column, type, align, prev, info) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.prev = prev;
    this.info = info;
    if (align != null) this.align = align;
  }

  function inScope(state, varname) {
    for (var v = state.localVars; v; v = v.next)
      if (v.name == varname) return true;
  }

  function parseHaxe(state, style, type, content, stream) {
    var cc = state.cc;
    // Communicate our context to the combinators.
    // (Less wasteful than consing up a hundred closures on every call.)
    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;

    if (!state.lexical.hasOwnProperty("align"))
      state.lexical.align = true;

    while(true) {
      var combinator = cc.length ? cc.pop() : statement;
      if (combinator(type, content)) {
        while(cc.length && cc[cc.length - 1].lex)
          cc.pop()();
        if (cx.marked) return cx.marked;
        if (type == "variable" && inScope(state, content)) return "variable-2";
        if (type == "variable" && imported(state, content)) return "variable-3";
        return style;
      }
    }
  }

  function imported(state, typename) {
    if (/[a-z]/.test(typename.charAt(0)))
      return false;
    var len = state.importedtypes.length;
    for (var i = 0; i<len; i++)
      if(state.importedtypes[i]==typename) return true;
  }

  function registerimport(importname) {
    var state = cx.state;
    for (var t = state.importedtypes; t; t = t.next)
      if(t.name == importname) return;
    state.importedtypes = { name: importname, next: state.importedtypes };
  }
  // Combinator utils

  var cx = {state: null, column: null, marked: null, cc: null};
  function pass() {
    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
  }
  function cont() {
    pass.apply(null, arguments);
    return true;
  }
  function inList(name, list) {
    for (var v = list; v; v = v.next)
      if (v.name == name) return true;
    return false;
  }
  function register(varname) {
    var state = cx.state;
    if (state.context) {
      cx.marked = "def";
      if (inList(varname, state.localVars)) return;
      state.localVars = {name: varname, next: state.localVars};
    } else if (state.globalVars) {
      if (inList(varname, state.globalVars)) return;
      state.globalVars = {name: varname, next: state.globalVars};
    }
  }

  // Combinators

  var defaultVars = {name: "this", next: null};
  function pushcontext() {
    if (!cx.state.context) cx.state.localVars = defaultVars;
    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
  }
  function popcontext() {
    cx.state.localVars = cx.state.context.vars;
    cx.state.context = cx.state.context.prev;
  }
  popcontext.lex = true;
  function pushlex(type, info) {
    var result = function() {
      var state = cx.state;
      state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);
    };
    result.lex = true;
    return result;
  }
  function poplex() {
    var state = cx.state;
    if (state.lexical.prev) {
      if (state.lexical.type == ")")
        state.indented = state.lexical.indented;
      state.lexical = state.lexical.prev;
    }
  }
  poplex.lex = true;

  function expect(wanted) {
    function f(type) {
      if (type == wanted) return cont();
      else if (wanted == ";") return pass();
      else return cont(f);
    }
    return f;
  }

  function statement(type) {
    if (type == "@") return cont(metadef);
    if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex);
    if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
    if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
    if (type == "{") return cont(pushlex("}"), pushcontext, block, poplex, popcontext);
    if (type == ";") return cont();
    if (type == "attribute") return cont(maybeattribute);
    if (type == "function") return cont(functiondef);
    if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"),
                                   poplex, statement, poplex);
    if (type == "variable") return cont(pushlex("stat"), maybelabel);
    if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
                                      block, poplex, poplex);
    if (type == "case") return cont(expression, expect(":"));
    if (type == "default") return cont(expect(":"));
    if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
                                     statement, poplex, popcontext);
    if (type == "import") return cont(importdef, expect(";"));
    if (type == "typedef") return cont(typedef);
    return pass(pushlex("stat"), expression, expect(";"), poplex);
  }
  function expression(type) {
    if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);
    if (type == "type" ) return cont(maybeoperator);
    if (type == "function") return cont(functiondef);
    if (type == "keyword c") return cont(maybeexpression);
    if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator);
    if (type == "operator") return cont(expression);
    if (type == "[") return cont(pushlex("]"), commasep(maybeexpression, "]"), poplex, maybeoperator);
    if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator);
    return cont();
  }
  function maybeexpression(type) {
    if (type.match(/[;\}\)\],]/)) return pass();
    return pass(expression);
  }

  function maybeoperator(type, value) {
    if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator);
    if (type == "operator" || type == ":") return cont(expression);
    if (type == ";") return;
    if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator);
    if (type == ".") return cont(property, maybeoperator);
    if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator);
  }

  function maybeattribute(type) {
    if (type == "attribute") return cont(maybeattribute);
    if (type == "function") return cont(functiondef);
    if (type == "var") return cont(vardef1);
  }

  function metadef(type) {
    if(type == ":") return cont(metadef);
    if(type == "variable") return cont(metadef);
    if(type == "(") return cont(pushlex(")"), commasep(metaargs, ")"), poplex, statement);
  }
  function metaargs(type) {
    if(type == "variable") return cont();
  }

  function importdef (type, value) {
    if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }
    else if(type == "variable" || type == "property" || type == "." || value == "*") return cont(importdef);
  }

  function typedef (type, value)
  {
    if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }
    else if (type == "type" && /[A-Z]/.test(value.charAt(0))) { return cont(); }
  }

  function maybelabel(type) {
    if (type == ":") return cont(poplex, statement);
    return pass(maybeoperator, expect(";"), poplex);
  }
  function property(type) {
    if (type == "variable") {cx.marked = "property"; return cont();}
  }
  function objprop(type) {
    if (type == "variable") cx.marked = "property";
    if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression);
  }
  function commasep(what, end) {
    function proceed(type) {
      if (type == ",") return cont(what, proceed);
      if (type == end) return cont();
      return cont(expect(end));
    }
    return function(type) {
      if (type == end) return cont();
      else return pass(what, proceed);
    };
  }
  function block(type) {
    if (type == "}") return cont();
    return pass(statement, block);
  }
  function vardef1(type, value) {
    if (type == "variable"){register(value); return cont(typeuse, vardef2);}
    return cont();
  }
  function vardef2(type, value) {
    if (value == "=") return cont(expression, vardef2);
    if (type == ",") return cont(vardef1);
  }
  function forspec1(type, value) {
    if (type == "variable") {
      register(value);
      return cont(forin, expression)
    } else {
      return pass()
    }
  }
  function forin(_type, value) {
    if (value == "in") return cont();
  }
  function functiondef(type, value) {
    //function names starting with upper-case letters are recognised as types, so cludging them together here.
    if (type == "variable" || type == "type") {register(value); return cont(functiondef);}
    if (value == "new") return cont(functiondef);
    if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, typeuse, statement, popcontext);
  }
  function typeuse(type) {
    if(type == ":") return cont(typestring);
  }
  function typestring(type) {
    if(type == "type") return cont();
    if(type == "variable") return cont();
    if(type == "{") return cont(pushlex("}"), commasep(typeprop, "}"), poplex);
  }
  function typeprop(type) {
    if(type == "variable") return cont(typeuse);
  }
  function funarg(type, value) {
    if (type == "variable") {register(value); return cont(typeuse);}
  }

  // Interface
  return {
    startState: function(basecolumn) {
      var defaulttypes = ["Int", "Float", "String", "Void", "Std", "Bool", "Dynamic", "Array"];
      var state = {
        tokenize: haxeTokenBase,
        reAllowed: true,
        kwAllowed: true,
        cc: [],
        lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, "block", false),
        localVars: parserConfig.localVars,
        importedtypes: defaulttypes,
        context: parserConfig.localVars && {vars: parserConfig.localVars},
        indented: 0
      };
      if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
        state.globalVars = parserConfig.globalVars;
      return state;
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (!state.lexical.hasOwnProperty("align"))
          state.lexical.align = false;
        state.indented = stream.indentation();
      }
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      if (type == "comment") return style;
      state.reAllowed = !!(type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/));
      state.kwAllowed = type != '.';
      return parseHaxe(state, style, type, content, stream);
    },

    indent: function(state, textAfter) {
      if (state.tokenize != haxeTokenBase) return 0;
      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
      if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
      var type = lexical.type, closing = firstChar == type;
      if (type == "vardef") return lexical.indented + 4;
      else if (type == "form" && firstChar == "{") return lexical.indented;
      else if (type == "stat" || type == "form") return lexical.indented + indentUnit;
      else if (lexical.info == "switch" && !closing)
        return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
      else if (lexical.align) return lexical.column + (closing ? 0 : 1);
      else return lexical.indented + (closing ? 0 : indentUnit);
    },

    electricChars: "{}",
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: "//"
  };
});

CodeMirror.defineMIME("text/x-haxe", "haxe");

CodeMirror.defineMode("hxml", function () {

  return {
    startState: function () {
      return {
        define: false,
        inString: false
      };
    },
    token: function (stream, state) {
      var ch = stream.peek();
      var sol = stream.sol();

      ///* comments */
      if (ch == "#") {
        stream.skipToEnd();
        return "comment";
      }
      if (sol && ch == "-") {
        var style = "variable-2";

        stream.eat(/-/);

        if (stream.peek() == "-") {
          stream.eat(/-/);
          style = "keyword a";
        }

        if (stream.peek() == "D") {
          stream.eat(/[D]/);
          style = "keyword c";
          state.define = true;
        }

        stream.eatWhile(/[A-Z]/i);
        return style;
      }

      var ch = stream.peek();

      if (state.inString == false && ch == "'") {
        state.inString = true;
        stream.next();
      }

      if (state.inString == true) {
        if (stream.skipTo("'")) {

        } else {
          stream.skipToEnd();
        }

        if (stream.peek() == "'") {
          stream.next();
          state.inString = false;
        }

        return "string";
      }

      stream.next();
      return null;
    },
    lineComment: "#"
  };
});

CodeMirror.defineMIME("text/x-hxml", "hxml");

});
editors/codemirror/mode/haxe/haxe.min.js000064400000020006152177723720014313 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("haxe",(function(a,b){function c(a){return{type:a,style:"keyword"}}function d(a,b,c){return b.tokenize=c,c(a,b)}function e(a,b){for(var c,d=!1;null!=(c=a.next());){if(c==b&&!d)return!0;d=!d&&"\\"==c}}function f(a,b,c){return U=a,V=c,b}function g(a,b){var c=a.next();if('"'==c||"'"==c)return d(a,b,h(c));if(/[\[\]{}\(\),;\:\.]/.test(c))return f(c);if("0"==c&&a.eat(/x/i))return a.eatWhile(/[\da-f]/i),f("number","number");if(/\d/.test(c)||"-"==c&&a.eat(/\d/))return a.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),f("number","number");if(b.reAllowed&&"~"==c&&a.eat(/\//))return e(a,"/"),a.eatWhile(/[gimsu]/),f("regexp","string-2");if("/"==c)return a.eat("*")?d(a,b,i):a.eat("/")?(a.skipToEnd(),f("comment","comment")):(a.eatWhile(ca),f("operator",null,a.current()));if("#"==c)return a.skipToEnd(),f("conditional","meta");if("@"==c)return a.eat(/:/),a.eatWhile(/[\w_]/),f("metadata","meta");if(ca.test(c))return a.eatWhile(ca),f("operator",null,a.current());var g;if(/[A-Z]/.test(c))return a.eatWhile(/[\w_<>]/),g=a.current(),f("type","variable-3",g);a.eatWhile(/[\w_]/);var g=a.current(),j=ba.propertyIsEnumerable(g)&&ba[g];return j&&b.kwAllowed?f(j.type,j.style,g):f("variable","variable",g)}function h(a){return function(b,c){return e(b,a)&&(c.tokenize=g),f("string","string")}}function i(a,b){for(var c,d=!1;c=a.next();){if("/"==c&&d){b.tokenize=g;break}d="*"==c}return f("comment","comment")}function j(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,this.info=f,null!=d&&(this.align=d)}function k(a,b){for(var c=a.localVars;c;c=c.next)if(c.name==b)return!0}function l(a,b,c,d,e){var f=a.cc;for(ea.state=a,ea.stream=e,ea.marked=null,ea.cc=f,a.lexical.hasOwnProperty("align")||(a.lexical.align=!0);;){var g=f.length?f.pop():x;if(g(c,d)){for(;f.length&&f[f.length-1].lex;)f.pop()();return ea.marked?ea.marked:"variable"==c&&k(a,d)?"variable-2":"variable"==c&&m(a,d)?"variable-3":b}}}function m(a,b){if(/[a-z]/.test(b.charAt(0)))return!1;for(var c=a.importedtypes.length,d=0;d<c;d++)if(a.importedtypes[d]==b)return!0}function n(a){for(var b=ea.state,c=b.importedtypes;c;c=c.next)if(c.name==a)return;b.importedtypes={name:a,next:b.importedtypes}}function o(){for(var a=arguments.length-1;a>=0;a--)ea.cc.push(arguments[a])}function p(){return o.apply(null,arguments),!0}function q(a,b){for(var c=b;c;c=c.next)if(c.name==a)return!0;return!1}function r(a){var b=ea.state;if(b.context){if(ea.marked="def",q(a,b.localVars))return;b.localVars={name:a,next:b.localVars}}else if(b.globalVars){if(q(a,b.globalVars))return;b.globalVars={name:a,next:b.globalVars}}}function s(){ea.state.context||(ea.state.localVars=fa),ea.state.context={prev:ea.state.context,vars:ea.state.localVars}}function t(){ea.state.localVars=ea.state.context.vars,ea.state.context=ea.state.context.prev}function u(a,b){var c=function(){var c=ea.state;c.lexical=new j(c.indented,ea.stream.column(),a,null,c.lexical,b)};return c.lex=!0,c}function v(){var a=ea.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function w(a){function b(c){return c==a?p():";"==a?o():p(b)}return b}function x(a){return"@"==a?p(C):"var"==a?p(u("vardef"),L,w(";"),v):"keyword a"==a?p(u("form"),y,x,v):"keyword b"==a?p(u("form"),x,v):"{"==a?p(u("}"),s,K,v,t):";"==a?p():"attribute"==a?p(B):"function"==a?p(P):"for"==a?p(u("form"),w("("),u(")"),N,w(")"),v,x,v):"variable"==a?p(u("stat"),G):"switch"==a?p(u("form"),y,u("}","switch"),w("{"),K,v,v):"case"==a?p(y,w(":")):"default"==a?p(w(":")):"catch"==a?p(u("form"),s,w("("),T,w(")"),x,v,t):"import"==a?p(E,w(";")):"typedef"==a?p(F):o(u("stat"),y,w(";"),v)}function y(a){return da.hasOwnProperty(a)?p(A):"type"==a?p(A):"function"==a?p(P):"keyword c"==a?p(z):"("==a?p(u(")"),z,w(")"),v,A):"operator"==a?p(y):"["==a?p(u("]"),J(z,"]"),v,A):"{"==a?p(u("}"),J(I,"}"),v,A):p()}function z(a){return a.match(/[;\}\)\],]/)?o():o(y)}function A(a,b){if("operator"==a&&/\+\+|--/.test(b))return p(A);if("operator"==a||":"==a)return p(y);if(";"!=a)return"("==a?p(u(")"),J(y,")"),v,A):"."==a?p(H,A):"["==a?p(u("]"),y,w("]"),v,A):void 0}function B(a){return"attribute"==a?p(B):"function"==a?p(P):"var"==a?p(L):void 0}function C(a){return":"==a?p(C):"variable"==a?p(C):"("==a?p(u(")"),J(D,")"),v,x):void 0}function D(a){if("variable"==a)return p()}function E(a,b){return"variable"==a&&/[A-Z]/.test(b.charAt(0))?(n(b),p()):"variable"==a||"property"==a||"."==a||"*"==b?p(E):void 0}function F(a,b){return"variable"==a&&/[A-Z]/.test(b.charAt(0))?(n(b),p()):"type"==a&&/[A-Z]/.test(b.charAt(0))?p():void 0}function G(a){return":"==a?p(v,x):o(A,w(";"),v)}function H(a){if("variable"==a)return ea.marked="property",p()}function I(a){if("variable"==a&&(ea.marked="property"),da.hasOwnProperty(a))return p(w(":"),y)}function J(a,b){function c(d){return","==d?p(a,c):d==b?p():p(w(b))}return function(d){return d==b?p():o(a,c)}}function K(a){return"}"==a?p():o(x,K)}function L(a,b){return"variable"==a?(r(b),p(Q,M)):p()}function M(a,b){return"="==b?p(y,M):","==a?p(L):void 0}function N(a,b){return"variable"==a?(r(b),p(O,y)):o()}function O(a,b){if("in"==b)return p()}function P(a,b){return"variable"==a||"type"==a?(r(b),p(P)):"new"==b?p(P):"("==a?p(u(")"),s,J(T,")"),v,Q,x,t):void 0}function Q(a){if(":"==a)return p(R)}function R(a){return"type"==a?p():"variable"==a?p():"{"==a?p(u("}"),J(S,"}"),v):void 0}function S(a){if("variable"==a)return p(Q)}function T(a,b){if("variable"==a)return r(b),p(Q)}var U,V,W=a.indentUnit,X=c("keyword a"),Y=c("keyword b"),Z=c("keyword c"),$=c("operator"),_={type:"atom",style:"atom"},aa={type:"attribute",style:"attribute"},U=c("typedef"),ba={if:X,while:X,else:Y,do:Y,try:Y,return:Z,break:Z,continue:Z,new:Z,throw:Z,var:c("var"),inline:aa,static:aa,using:c("import"),public:aa,private:aa,cast:c("cast"),import:c("import"),macro:c("macro"),function:c("function"),catch:c("catch"),untyped:c("untyped"),callback:c("cb"),for:c("for"),switch:c("switch"),case:c("case"),default:c("default"),in:$,never:c("property_access"),trace:c("trace"),class:U,abstract:U,enum:U,interface:U,typedef:U,extends:U,implements:U,dynamic:U,true:_,false:_,null:_},ca=/[+\-*&%=<>!?|]/,da={atom:!0,number:!0,variable:!0,string:!0,regexp:!0},ea={state:null,column:null,marked:null,cc:null},fa={name:"this",next:null};return t.lex=!0,v.lex=!0,{startState:function(a){var c=["Int","Float","String","Void","Std","Bool","Dynamic","Array"],d={tokenize:g,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new j((a||0)-W,0,"block",!1),localVars:b.localVars,importedtypes:c,context:b.localVars&&{vars:b.localVars},indented:0};return b.globalVars&&"object"==typeof b.globalVars&&(d.globalVars=b.globalVars),d},token:function(a,b){if(a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation()),a.eatSpace())return null;var c=b.tokenize(a,b);return"comment"==U?c:(b.reAllowed=!("operator"!=U&&"keyword c"!=U&&!U.match(/^[\[{}\(,;:]$/)),b.kwAllowed="."!=U,l(b,c,U,V,a))},indent:function(a,b){if(a.tokenize!=g)return 0;var c=b&&b.charAt(0),d=a.lexical;"stat"==d.type&&"}"==c&&(d=d.prev);var e=d.type,f=c==e;return"vardef"==e?d.indented+4:"form"==e&&"{"==c?d.indented:"stat"==e||"form"==e?d.indented+W:"switch"!=d.info||f?d.align?d.column+(f?0:1):d.indented+(f?0:W):d.indented+(/^(?:case|default)\b/.test(b)?W:2*W)},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}})),a.defineMIME("text/x-haxe","haxe"),a.defineMode("hxml",(function(){return{startState:function(){return{define:!1,inString:!1}},token:function(a,b){var c=a.peek(),d=a.sol();if("#"==c)return a.skipToEnd(),"comment";if(d&&"-"==c){var e="variable-2";return a.eat(/-/),"-"==a.peek()&&(a.eat(/-/),e="keyword a"),"D"==a.peek()&&(a.eat(/[D]/),e="keyword c",b.define=!0),a.eatWhile(/[A-Z]/i),e}var c=a.peek();return 0==b.inString&&"'"==c&&(b.inString=!0,a.next()),1==b.inString?(a.skipTo("'")||a.skipToEnd(),"'"==a.peek()&&(a.next(),b.inString=!1),"string"):(a.next(),null)},lineComment:"#"}})),a.defineMIME("text/x-hxml","hxml")}));editors/codemirror/mode/cmake/cmake.min.js000064400000002003152177723720014576 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("cmake",(function(){function a(a,b){for(var c,d,e=!1;!a.eol()&&(c=a.next())!=b.pending;){if("$"===c&&"\\"!=d&&'"'==b.pending){e=!0;break}d=c}return e&&a.backUp(1),c==b.pending?b.continueString=!1:b.continueString=!0,"string"}function b(b,d){var e=b.next();return"$"===e?b.match(c)?"variable-2":"variable":d.continueString?(b.backUp(1),a(b,d)):b.match(/(\s+)?\w+\(/)||b.match(/(\s+)?\w+\ \(/)?(b.backUp(1),"def"):"#"==e?(b.skipToEnd(),"comment"):"'"==e||'"'==e?(d.pending=e,a(b,d)):"("==e||")"==e?"bracket":e.match(/[0-9]/)?"number":(b.eatWhile(/[\w-]/),null)}var c=/({)?[a-zA-Z0-9_]+(})?/;return{startState:function(){var a={};return a.inDefinition=!1,a.inInclude=!1,a.continueString=!1,a.pending=!1,a},token:function(a,c){return a.eatSpace()?null:b(a,c)}}})),a.defineMIME("text/x-cmake","cmake")}));editors/codemirror/mode/cmake/cmake.js000064400000005051152177723720014022 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object")
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd)
    define(["../../lib/codemirror"], mod);
  else
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("cmake", function () {
  var variable_regex = /({)?[a-zA-Z0-9_]+(})?/;

  function tokenString(stream, state) {
    var current, prev, found_var = false;
    while (!stream.eol() && (current = stream.next()) != state.pending) {
      if (current === '$' && prev != '\\' && state.pending == '"') {
        found_var = true;
        break;
      }
      prev = current;
    }
    if (found_var) {
      stream.backUp(1);
    }
    if (current == state.pending) {
      state.continueString = false;
    } else {
      state.continueString = true;
    }
    return "string";
  }

  function tokenize(stream, state) {
    var ch = stream.next();

    // Have we found a variable?
    if (ch === '$') {
      if (stream.match(variable_regex)) {
        return 'variable-2';
      }
      return 'variable';
    }
    // Should we still be looking for the end of a string?
    if (state.continueString) {
      // If so, go through the loop again
      stream.backUp(1);
      return tokenString(stream, state);
    }
    // Do we just have a function on our hands?
    // In 'cmake_minimum_required (VERSION 2.8.8)', 'cmake_minimum_required' is matched
    if (stream.match(/(\s+)?\w+\(/) || stream.match(/(\s+)?\w+\ \(/)) {
      stream.backUp(1);
      return 'def';
    }
    if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    }
    // Have we found a string?
    if (ch == "'" || ch == '"') {
      // Store the type (single or double)
      state.pending = ch;
      // Perform the looping function to find the end
      return tokenString(stream, state);
    }
    if (ch == '(' || ch == ')') {
      return 'bracket';
    }
    if (ch.match(/[0-9]/)) {
      return 'number';
    }
    stream.eatWhile(/[\w-]/);
    return null;
  }
  return {
    startState: function () {
      var state = {};
      state.inDefinition = false;
      state.inInclude = false;
      state.continueString = false;
      state.pending = false;
      return state;
    },
    token: function (stream, state) {
      if (stream.eatSpace()) return null;
      return tokenize(stream, state);
    }
  };
});

CodeMirror.defineMIME("text/x-cmake", "cmake");

});
editors/codemirror/mode/sass/sass.min.js000064400000011104152177723720014362 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../css/css"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("sass",(function(b){function c(a){return new RegExp("^"+a.join("|"))}function d(a){return!a.peek()||a.match(/\s+$/,!1)}function e(a,b){var c=a.peek();return")"===c?(a.next(),b.tokenizer=k,"operator"):"("===c?(a.next(),a.eatSpace(),"operator"):"'"===c||'"'===c?(b.tokenizer=g(a.next()),"string"):(b.tokenizer=g(")",!1),"string")}function f(a,b){return function(c,d){return c.sol()&&c.indentation()<=a?(d.tokenizer=k,k(c,d)):(b&&c.skipTo("*/")?(c.next(),c.next(),d.tokenizer=k):c.skipToEnd(),"comment")}}function g(a,b){function c(e,f){var g=e.next(),i=e.peek(),j=e.string.charAt(e.pos-2),l="\\"!==g&&i===a||g===a&&"\\"!==j;return l?(g!==a&&b&&e.next(),d(e)&&(f.cursorHalf=0),f.tokenizer=k,"string"):"#"===g&&"{"===i?(f.tokenizer=h(c),e.next(),"operator"):"string"}return null==b&&(b=!0),c}function h(a){return function(b,c){return"}"===b.peek()?(b.next(),c.tokenizer=a,"operator"):k(b,c)}}function i(a){if(0==a.indentCount){a.indentCount++;var c=a.scopes[0].offset,d=c+b.indentUnit;a.scopes.unshift({offset:d})}}function j(a){1!=a.scopes.length&&a.scopes.shift()}function k(a,b){var c=a.peek();if(a.match("/*"))return b.tokenizer=f(a.indentation(),!0),b.tokenizer(a,b);if(a.match("//"))return b.tokenizer=f(a.indentation(),!1),b.tokenizer(a,b);if(a.match("#{"))return b.tokenizer=h(k),"operator";if('"'===c||"'"===c)return a.next(),b.tokenizer=g(c),"string";if(b.cursorHalf){if("#"===c&&(a.next(),a.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)))return d(a)&&(b.cursorHalf=0),"number";if(a.match(/^-?[0-9\.]+/))return d(a)&&(b.cursorHalf=0),"number";if(a.match(/^(px|em|in)\b/))return d(a)&&(b.cursorHalf=0),"unit";if(a.match(t))return d(a)&&(b.cursorHalf=0),"keyword";if(a.match(/^url/)&&"("===a.peek())return b.tokenizer=e,d(a)&&(b.cursorHalf=0),"atom";if("$"===c)return a.next(),a.eatWhile(/[\w-]/),d(a)&&(b.cursorHalf=0),"variable-2";if("!"===c)return a.next(),b.cursorHalf=0,a.match(/^[\w]+/)?"keyword":"operator";if(a.match(v))return d(a)&&(b.cursorHalf=0),"operator";if(a.eatWhile(/[\w-]/))return d(a)&&(b.cursorHalf=0),m=a.current().toLowerCase(),q.hasOwnProperty(m)?"atom":p.hasOwnProperty(m)?"keyword":o.hasOwnProperty(m)?(b.prevProp=a.current().toLowerCase(),"property"):"tag";if(d(a))return b.cursorHalf=0,null}else{if("-"===c&&a.match(/^-\w+-/))return"meta";if("."===c){if(a.next(),a.match(/^[\w-]+/))return i(b),"qualifier";if("#"===a.peek())return i(b),"tag"}if("#"===c){if(a.next(),a.match(/^[\w-]+/))return i(b),"builtin";if("#"===a.peek())return i(b),"tag"}if("$"===c)return a.next(),a.eatWhile(/[\w-]/),"variable-2";if(a.match(/^-?[0-9\.]+/))return"number";if(a.match(/^(px|em|in)\b/))return"unit";if(a.match(t))return"keyword";if(a.match(/^url/)&&"("===a.peek())return b.tokenizer=e,"atom";if("="===c&&a.match(/^=[\w-]+/))return i(b),"meta";if("+"===c&&a.match(/^\+[\w-]+/))return"variable-3";if("@"===c&&a.match(/@extend/)&&(a.match(/\s*[\w]/)||j(b)),a.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return i(b),"def";if("@"===c)return a.next(),a.eatWhile(/[\w-]/),"def";if(a.eatWhile(/[\w-]/)){if(a.match(/ *: *[\w-\+\$#!\("']/,!1)){m=a.current().toLowerCase();var l=b.prevProp+"-"+m;return o.hasOwnProperty(l)?"property":o.hasOwnProperty(m)?(b.prevProp=m,"property"):r.hasOwnProperty(m)?"property":"tag"}return a.match(/ *:/,!1)?(i(b),b.cursorHalf=1,b.prevProp=a.current().toLowerCase(),"property"):a.match(/ *,/,!1)?"tag":(i(b),"tag")}if(":"===c)return a.match(w)?"variable-3":(a.next(),b.cursorHalf=1,"operator")}return a.match(v)?"operator":(a.next(),null)}function l(a,c){a.sol()&&(c.indentCount=0);var d=c.tokenizer(a,c),e=a.current();if("@return"!==e&&"}"!==e||j(c),null!==d){for(var f=a.pos-e.length,g=f+b.indentUnit*c.indentCount,h=[],i=0;i<c.scopes.length;i++){var k=c.scopes[i];k.offset<=g&&h.push(k)}c.scopes=h}return d}var m,n=a.mimeModes["text/css"],o=n.propertyKeywords||{},p=n.colorKeywords||{},q=n.valueKeywords||{},r=n.fontProperties||{},s=["true","false","null","auto"],t=new RegExp("^"+s.join("|")),u=["\\(","\\)","=",">","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],v=c(u),w=/^::?[a-zA-Z_][\w\-]*/;return{startState:function(){return{tokenizer:k,scopes:[{offset:0,type:"sass"}],indentCount:0,cursorHalf:0,definedVars:[],definedMixins:[]}},token:function(a,b){var c=l(a,b);return b.lastToken={style:c,content:a.current()},c},indent:function(a){return a.scopes[0].offset}}}),"css"),a.defineMIME("text/x-sass","sass")}));editors/codemirror/mode/sass/sass.js000064400000026375152177723720013620 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../css/css"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../css/css"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("sass", function(config) {
  var cssMode = CodeMirror.mimeModes["text/css"];
  var propertyKeywords = cssMode.propertyKeywords || {},
      colorKeywords = cssMode.colorKeywords || {},
      valueKeywords = cssMode.valueKeywords || {},
      fontProperties = cssMode.fontProperties || {};

  function tokenRegexp(words) {
    return new RegExp("^" + words.join("|"));
  }

  var keywords = ["true", "false", "null", "auto"];
  var keywordsRegexp = new RegExp("^" + keywords.join("|"));

  var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-",
                   "\\!=", "/", "\\*", "%", "and", "or", "not", ";","\\{","\\}",":"];
  var opRegexp = tokenRegexp(operators);

  var pseudoElementsRegexp = /^::?[a-zA-Z_][\w\-]*/;

  var word;

  function isEndLine(stream) {
    return !stream.peek() || stream.match(/\s+$/, false);
  }

  function urlTokens(stream, state) {
    var ch = stream.peek();

    if (ch === ")") {
      stream.next();
      state.tokenizer = tokenBase;
      return "operator";
    } else if (ch === "(") {
      stream.next();
      stream.eatSpace();

      return "operator";
    } else if (ch === "'" || ch === '"') {
      state.tokenizer = buildStringTokenizer(stream.next());
      return "string";
    } else {
      state.tokenizer = buildStringTokenizer(")", false);
      return "string";
    }
  }
  function comment(indentation, multiLine) {
    return function(stream, state) {
      if (stream.sol() && stream.indentation() <= indentation) {
        state.tokenizer = tokenBase;
        return tokenBase(stream, state);
      }

      if (multiLine && stream.skipTo("*/")) {
        stream.next();
        stream.next();
        state.tokenizer = tokenBase;
      } else {
        stream.skipToEnd();
      }

      return "comment";
    };
  }

  function buildStringTokenizer(quote, greedy) {
    if (greedy == null) { greedy = true; }

    function stringTokenizer(stream, state) {
      var nextChar = stream.next();
      var peekChar = stream.peek();
      var previousChar = stream.string.charAt(stream.pos-2);

      var endingString = ((nextChar !== "\\" && peekChar === quote) || (nextChar === quote && previousChar !== "\\"));

      if (endingString) {
        if (nextChar !== quote && greedy) { stream.next(); }
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        state.tokenizer = tokenBase;
        return "string";
      } else if (nextChar === "#" && peekChar === "{") {
        state.tokenizer = buildInterpolationTokenizer(stringTokenizer);
        stream.next();
        return "operator";
      } else {
        return "string";
      }
    }

    return stringTokenizer;
  }

  function buildInterpolationTokenizer(currentTokenizer) {
    return function(stream, state) {
      if (stream.peek() === "}") {
        stream.next();
        state.tokenizer = currentTokenizer;
        return "operator";
      } else {
        return tokenBase(stream, state);
      }
    };
  }

  function indent(state) {
    if (state.indentCount == 0) {
      state.indentCount++;
      var lastScopeOffset = state.scopes[0].offset;
      var currentOffset = lastScopeOffset + config.indentUnit;
      state.scopes.unshift({ offset:currentOffset });
    }
  }

  function dedent(state) {
    if (state.scopes.length == 1) return;

    state.scopes.shift();
  }

  function tokenBase(stream, state) {
    var ch = stream.peek();

    // Comment
    if (stream.match("/*")) {
      state.tokenizer = comment(stream.indentation(), true);
      return state.tokenizer(stream, state);
    }
    if (stream.match("//")) {
      state.tokenizer = comment(stream.indentation(), false);
      return state.tokenizer(stream, state);
    }

    // Interpolation
    if (stream.match("#{")) {
      state.tokenizer = buildInterpolationTokenizer(tokenBase);
      return "operator";
    }

    // Strings
    if (ch === '"' || ch === "'") {
      stream.next();
      state.tokenizer = buildStringTokenizer(ch);
      return "string";
    }

    if(!state.cursorHalf){// state.cursorHalf === 0
    // first half i.e. before : for key-value pairs
    // including selectors

      if (ch === "-") {
        if (stream.match(/^-\w+-/)) {
          return "meta";
        }
      }

      if (ch === ".") {
        stream.next();
        if (stream.match(/^[\w-]+/)) {
          indent(state);
          return "qualifier";
        } else if (stream.peek() === "#") {
          indent(state);
          return "tag";
        }
      }

      if (ch === "#") {
        stream.next();
        // ID selectors
        if (stream.match(/^[\w-]+/)) {
          indent(state);
          return "builtin";
        }
        if (stream.peek() === "#") {
          indent(state);
          return "tag";
        }
      }

      // Variables
      if (ch === "$") {
        stream.next();
        stream.eatWhile(/[\w-]/);
        return "variable-2";
      }

      // Numbers
      if (stream.match(/^-?[0-9\.]+/))
        return "number";

      // Units
      if (stream.match(/^(px|em|in)\b/))
        return "unit";

      if (stream.match(keywordsRegexp))
        return "keyword";

      if (stream.match(/^url/) && stream.peek() === "(") {
        state.tokenizer = urlTokens;
        return "atom";
      }

      if (ch === "=") {
        // Match shortcut mixin definition
        if (stream.match(/^=[\w-]+/)) {
          indent(state);
          return "meta";
        }
      }

      if (ch === "+") {
        // Match shortcut mixin definition
        if (stream.match(/^\+[\w-]+/)){
          return "variable-3";
        }
      }

      if(ch === "@"){
        if(stream.match(/@extend/)){
          if(!stream.match(/\s*[\w]/))
            dedent(state);
        }
      }


      // Indent Directives
      if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {
        indent(state);
        return "def";
      }

      // Other Directives
      if (ch === "@") {
        stream.next();
        stream.eatWhile(/[\w-]/);
        return "def";
      }

      if (stream.eatWhile(/[\w-]/)){
        if(stream.match(/ *: *[\w-\+\$#!\("']/,false)){
          word = stream.current().toLowerCase();
          var prop = state.prevProp + "-" + word;
          if (propertyKeywords.hasOwnProperty(prop)) {
            return "property";
          } else if (propertyKeywords.hasOwnProperty(word)) {
            state.prevProp = word;
            return "property";
          } else if (fontProperties.hasOwnProperty(word)) {
            return "property";
          }
          return "tag";
        }
        else if(stream.match(/ *:/,false)){
          indent(state);
          state.cursorHalf = 1;
          state.prevProp = stream.current().toLowerCase();
          return "property";
        }
        else if(stream.match(/ *,/,false)){
          return "tag";
        }
        else{
          indent(state);
          return "tag";
        }
      }

      if(ch === ":"){
        if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element
          return "variable-3";
        }
        stream.next();
        state.cursorHalf=1;
        return "operator";
      }

    } // cursorHalf===0 ends here
    else{

      if (ch === "#") {
        stream.next();
        // Hex numbers
        if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){
          if (isEndLine(stream)) {
            state.cursorHalf = 0;
          }
          return "number";
        }
      }

      // Numbers
      if (stream.match(/^-?[0-9\.]+/)){
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "number";
      }

      // Units
      if (stream.match(/^(px|em|in)\b/)){
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "unit";
      }

      if (stream.match(keywordsRegexp)){
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "keyword";
      }

      if (stream.match(/^url/) && stream.peek() === "(") {
        state.tokenizer = urlTokens;
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "atom";
      }

      // Variables
      if (ch === "$") {
        stream.next();
        stream.eatWhile(/[\w-]/);
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "variable-2";
      }

      // bang character for !important, !default, etc.
      if (ch === "!") {
        stream.next();
        state.cursorHalf = 0;
        return stream.match(/^[\w]+/) ? "keyword": "operator";
      }

      if (stream.match(opRegexp)){
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        return "operator";
      }

      // attributes
      if (stream.eatWhile(/[\w-]/)) {
        if (isEndLine(stream)) {
          state.cursorHalf = 0;
        }
        word = stream.current().toLowerCase();
        if (valueKeywords.hasOwnProperty(word)) {
          return "atom";
        } else if (colorKeywords.hasOwnProperty(word)) {
          return "keyword";
        } else if (propertyKeywords.hasOwnProperty(word)) {
          state.prevProp = stream.current().toLowerCase();
          return "property";
        } else {
          return "tag";
        }
      }

      //stream.eatSpace();
      if (isEndLine(stream)) {
        state.cursorHalf = 0;
        return null;
      }

    } // else ends here

    if (stream.match(opRegexp))
      return "operator";

    // If we haven't returned by now, we move 1 character
    // and return an error
    stream.next();
    return null;
  }

  function tokenLexer(stream, state) {
    if (stream.sol()) state.indentCount = 0;
    var style = state.tokenizer(stream, state);
    var current = stream.current();

    if (current === "@return" || current === "}"){
      dedent(state);
    }

    if (style !== null) {
      var startOfToken = stream.pos - current.length;

      var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);

      var newScopes = [];

      for (var i = 0; i < state.scopes.length; i++) {
        var scope = state.scopes[i];

        if (scope.offset <= withCurrentIndent)
          newScopes.push(scope);
      }

      state.scopes = newScopes;
    }


    return style;
  }

  return {
    startState: function() {
      return {
        tokenizer: tokenBase,
        scopes: [{offset: 0, type: "sass"}],
        indentCount: 0,
        cursorHalf: 0,  // cursor half tells us if cursor lies after (1)
                        // or before (0) colon (well... more or less)
        definedVars: [],
        definedMixins: []
      };
    },
    token: function(stream, state) {
      var style = tokenLexer(stream, state);

      state.lastToken = { style: style, content: stream.current() };

      return style;
    },

    indent: function(state) {
      return state.scopes[0].offset;
    }
  };
}, "css");

CodeMirror.defineMIME("text/x-sass", "sass");

});
editors/codemirror/mode/turtle/turtle.min.js000064400000004216152177723720015304 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("turtle",(function(a){function b(a){return new RegExp("^(?:"+a.join("|")+")$","i")}function c(a,b){var c=a.next();if(g=null,"<"==c&&!a.match(/^[\s\u00a0=]/,!1))return a.match(/^[^\s\u00a0>]*>?/),"atom";if('"'==c||"'"==c)return b.tokenize=d(c),b.tokenize(a,b);if(/[{}\(\),\.;\[\]]/.test(c))return g=c,null;if("#"==c)return a.skipToEnd(),"comment";if(j.test(c))return a.eatWhile(j),null;if(":"==c)return"operator";if(a.eatWhile(/[_\w\d]/),":"==a.peek())return"variable-3";var e=a.current();return i.test(e)?"meta":c>="A"&&c<="Z"?"comment":"keyword";var e}function d(a){return function(b,d){for(var e,f=!1;null!=(e=b.next());){if(e==a&&!f){d.tokenize=c;break}f=!f&&"\\"==e}return"string"}}function e(a,b,c){a.context={prev:a.context,indent:a.indent,col:c,type:b}}function f(a){a.indent=a.context.indent,a.context=a.context.prev}var g,h=a.indentUnit,i=(b([]),b(["@prefix","@base","a"])),j=/[*+\-<>=&|]/;return{startState:function(){return{tokenize:c,context:null,indent:0,col:0}},token:function(a,b){if(a.sol()&&(b.context&&null==b.context.align&&(b.context.align=!1),b.indent=a.indentation()),a.eatSpace())return null;var c=b.tokenize(a,b);if("comment"!=c&&b.context&&null==b.context.align&&"pattern"!=b.context.type&&(b.context.align=!0),"("==g)e(b,")",a.column());else if("["==g)e(b,"]",a.column());else if("{"==g)e(b,"}",a.column());else if(/[\]\}\)]/.test(g)){for(;b.context&&"pattern"==b.context.type;)f(b);b.context&&g==b.context.type&&f(b)}else"."==g&&b.context&&"pattern"==b.context.type?f(b):/atom|string|variable/.test(c)&&b.context&&(/[\}\]]/.test(b.context.type)?e(b,"pattern",a.column()):"pattern"!=b.context.type||b.context.align||(b.context.align=!0,b.context.col=a.column()));return c},indent:function(a,b){var c=b&&b.charAt(0),d=a.context;if(/[\]\}]/.test(c))for(;d&&"pattern"==d.type;)d=d.prev;var e=d&&c==d.type;return d?"pattern"==d.type?d.col:d.align?d.col+(e?0:1):d.indent+(e?0:h):0},lineComment:"#"}})),a.defineMIME("text/turtle","turtle")}));editors/codemirror/mode/turtle/turtle.js000064400000011362152177723720014522 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("turtle", function(config) {
  var indentUnit = config.indentUnit;
  var curPunc;

  function wordRegexp(words) {
    return new RegExp("^(?:" + words.join("|") + ")$", "i");
  }
  var ops = wordRegexp([]);
  var keywords = wordRegexp(["@prefix", "@base", "a"]);
  var operatorChars = /[*+\-<>=&|]/;

  function tokenBase(stream, state) {
    var ch = stream.next();
    curPunc = null;
    if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
      stream.match(/^[^\s\u00a0>]*>?/);
      return "atom";
    }
    else if (ch == "\"" || ch == "'") {
      state.tokenize = tokenLiteral(ch);
      return state.tokenize(stream, state);
    }
    else if (/[{}\(\),\.;\[\]]/.test(ch)) {
      curPunc = ch;
      return null;
    }
    else if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    }
    else if (operatorChars.test(ch)) {
      stream.eatWhile(operatorChars);
      return null;
    }
    else if (ch == ":") {
          return "operator";
        } else {
      stream.eatWhile(/[_\w\d]/);
      if(stream.peek() == ":") {
        return "variable-3";
      } else {
             var word = stream.current();

             if(keywords.test(word)) {
                        return "meta";
             }

             if(ch >= "A" && ch <= "Z") {
                    return "comment";
                 } else {
                        return "keyword";
                 }
      }
      var word = stream.current();
      if (ops.test(word))
        return null;
      else if (keywords.test(word))
        return "meta";
      else
        return "variable";
    }
  }

  function tokenLiteral(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) {
          state.tokenize = tokenBase;
          break;
        }
        escaped = !escaped && ch == "\\";
      }
      return "string";
    };
  }

  function pushContext(state, type, col) {
    state.context = {prev: state.context, indent: state.indent, col: col, type: type};
  }
  function popContext(state) {
    state.indent = state.context.indent;
    state.context = state.context.prev;
  }

  return {
    startState: function() {
      return {tokenize: tokenBase,
              context: null,
              indent: 0,
              col: 0};
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (state.context && state.context.align == null) state.context.align = false;
        state.indent = stream.indentation();
      }
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);

      if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
        state.context.align = true;
      }

      if (curPunc == "(") pushContext(state, ")", stream.column());
      else if (curPunc == "[") pushContext(state, "]", stream.column());
      else if (curPunc == "{") pushContext(state, "}", stream.column());
      else if (/[\]\}\)]/.test(curPunc)) {
        while (state.context && state.context.type == "pattern") popContext(state);
        if (state.context && curPunc == state.context.type) popContext(state);
      }
      else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
      else if (/atom|string|variable/.test(style) && state.context) {
        if (/[\}\]]/.test(state.context.type))
          pushContext(state, "pattern", stream.column());
        else if (state.context.type == "pattern" && !state.context.align) {
          state.context.align = true;
          state.context.col = stream.column();
        }
      }

      return style;
    },

    indent: function(state, textAfter) {
      var firstChar = textAfter && textAfter.charAt(0);
      var context = state.context;
      if (/[\]\}]/.test(firstChar))
        while (context && context.type == "pattern") context = context.prev;

      var closing = context && firstChar == context.type;
      if (!context)
        return 0;
      else if (context.type == "pattern")
        return context.col;
      else if (context.align)
        return context.col + (closing ? 0 : 1);
      else
        return context.indent + (closing ? 0 : indentUnit);
    },

    lineComment: "#"
  };
});

CodeMirror.defineMIME("text/turtle", "turtle");

});
editors/codemirror/mode/cypher/cypher.js000064400000014333152177723720014451 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// By the Neo4j Team and contributors.
// https://github.com/neo4j-contrib/CodeMirror

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  var wordRegexp = function(words) {
    return new RegExp("^(?:" + words.join("|") + ")$", "i");
  };

  CodeMirror.defineMode("cypher", function(config) {
    var tokenBase = function(stream/*, state*/) {
      var ch = stream.next();
      if (ch ==='"') {
        stream.match(/.*?"/);
        return "string";
      }
      if (ch === "'") {
        stream.match(/.*?'/);
        return "string";
      }
      if (/[{}\(\),\.;\[\]]/.test(ch)) {
        curPunc = ch;
        return "node";
      } else if (ch === "/" && stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      } else if (operatorChars.test(ch)) {
        stream.eatWhile(operatorChars);
        return null;
      } else {
        stream.eatWhile(/[_\w\d]/);
        if (stream.eat(":")) {
          stream.eatWhile(/[\w\d_\-]/);
          return "atom";
        }
        var word = stream.current();
        if (funcs.test(word)) return "builtin";
        if (preds.test(word)) return "def";
        if (keywords.test(word)) return "keyword";
        return "variable";
      }
    };
    var pushContext = function(state, type, col) {
      return state.context = {
        prev: state.context,
        indent: state.indent,
        col: col,
        type: type
      };
    };
    var popContext = function(state) {
      state.indent = state.context.indent;
      return state.context = state.context.prev;
    };
    var indentUnit = config.indentUnit;
    var curPunc;
    var funcs = wordRegexp(["abs", "acos", "allShortestPaths", "asin", "atan", "atan2", "avg", "ceil", "coalesce", "collect", "cos", "cot", "count", "degrees", "e", "endnode", "exp", "extract", "filter", "floor", "haversin", "head", "id", "keys", "labels", "last", "left", "length", "log", "log10", "lower", "ltrim", "max", "min", "node", "nodes", "percentileCont", "percentileDisc", "pi", "radians", "rand", "range", "reduce", "rel", "relationship", "relationships", "replace", "reverse", "right", "round", "rtrim", "shortestPath", "sign", "sin", "size", "split", "sqrt", "startnode", "stdev", "stdevp", "str", "substring", "sum", "tail", "tan", "timestamp", "toFloat", "toInt", "toString", "trim", "type", "upper"]);
    var preds = wordRegexp(["all", "and", "any", "contains", "exists", "has", "in", "none", "not", "or", "single", "xor"]);
    var keywords = wordRegexp(["as", "asc", "ascending", "assert", "by", "case", "commit", "constraint", "create", "csv", "cypher", "delete", "desc", "descending", "detach", "distinct", "drop", "else", "end", "ends", "explain", "false", "fieldterminator", "foreach", "from", "headers", "in", "index", "is", "join", "limit", "load", "match", "merge", "null", "on", "optional", "order", "periodic", "profile", "remove", "return", "scan", "set", "skip", "start", "starts", "then", "true", "union", "unique", "unwind", "using", "when", "where", "with", "call", "yield"]);
    var operatorChars = /[*+\-<>=&|~%^]/;

    return {
      startState: function(/*base*/) {
        return {
          tokenize: tokenBase,
          context: null,
          indent: 0,
          col: 0
        };
      },
      token: function(stream, state) {
        if (stream.sol()) {
          if (state.context && (state.context.align == null)) {
            state.context.align = false;
          }
          state.indent = stream.indentation();
        }
        if (stream.eatSpace()) {
          return null;
        }
        var style = state.tokenize(stream, state);
        if (style !== "comment" && state.context && (state.context.align == null) && state.context.type !== "pattern") {
          state.context.align = true;
        }
        if (curPunc === "(") {
          pushContext(state, ")", stream.column());
        } else if (curPunc === "[") {
          pushContext(state, "]", stream.column());
        } else if (curPunc === "{") {
          pushContext(state, "}", stream.column());
        } else if (/[\]\}\)]/.test(curPunc)) {
          while (state.context && state.context.type === "pattern") {
            popContext(state);
          }
          if (state.context && curPunc === state.context.type) {
            popContext(state);
          }
        } else if (curPunc === "." && state.context && state.context.type === "pattern") {
          popContext(state);
        } else if (/atom|string|variable/.test(style) && state.context) {
          if (/[\}\]]/.test(state.context.type)) {
            pushContext(state, "pattern", stream.column());
          } else if (state.context.type === "pattern" && !state.context.align) {
            state.context.align = true;
            state.context.col = stream.column();
          }
        }
        return style;
      },
      indent: function(state, textAfter) {
        var firstChar = textAfter && textAfter.charAt(0);
        var context = state.context;
        if (/[\]\}]/.test(firstChar)) {
          while (context && context.type === "pattern") {
            context = context.prev;
          }
        }
        var closing = context && firstChar === context.type;
        if (!context) return 0;
        if (context.type === "keywords") return CodeMirror.commands.newlineAndIndent;
        if (context.align) return context.col + (closing ? 0 : 1);
        return context.indent + (closing ? 0 : indentUnit);
      }
    };
  });

  CodeMirror.modeExtensions["cypher"] = {
    autoFormatLineBreaks: function(text) {
      var i, lines, reProcessedPortion;
      var lines = text.split("\n");
      var reProcessedPortion = /\s+\b(return|where|order by|match|with|skip|limit|create|delete|set)\b\s/g;
      for (var i = 0; i < lines.length; i++)
        lines[i] = lines[i].replace(reProcessedPortion, " \n$1 ").trim();
      return lines.join("\n");
    }
  };

  CodeMirror.defineMIME("application/x-cypher-query", "cypher");

});
editors/codemirror/mode/cypher/cypher.min.js000064400000006621152177723720015234 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";var b=function(a){return new RegExp("^(?:"+a.join("|")+")$","i")};a.defineMode("cypher",(function(c){var d,e=function(a){var b=a.next();if('"'===b)return a.match(/.*?"/),"string";if("'"===b)return a.match(/.*?'/),"string";if(/[{}\(\),\.;\[\]]/.test(b))return d=b,"node";if("/"===b&&a.eat("/"))return a.skipToEnd(),"comment";if(l.test(b))return a.eatWhile(l),null;if(a.eatWhile(/[_\w\d]/),a.eat(":"))return a.eatWhile(/[\w\d_\-]/),"atom";var c=a.current();return i.test(c)?"builtin":j.test(c)?"def":k.test(c)?"keyword":"variable"},f=function(a,b,c){return a.context={prev:a.context,indent:a.indent,col:c,type:b}},g=function(a){return a.indent=a.context.indent,a.context=a.context.prev},h=c.indentUnit,i=b(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]),j=b(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]),k=b(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]),l=/[*+\-<>=&|~%^]/;return{startState:function(){return{tokenize:e,context:null,indent:0,col:0}},token:function(a,b){if(a.sol()&&(b.context&&null==b.context.align&&(b.context.align=!1),b.indent=a.indentation()),a.eatSpace())return null;var c=b.tokenize(a,b);if("comment"!==c&&b.context&&null==b.context.align&&"pattern"!==b.context.type&&(b.context.align=!0),"("===d)f(b,")",a.column());else if("["===d)f(b,"]",a.column());else if("{"===d)f(b,"}",a.column());else if(/[\]\}\)]/.test(d)){for(;b.context&&"pattern"===b.context.type;)g(b);b.context&&d===b.context.type&&g(b)}else"."===d&&b.context&&"pattern"===b.context.type?g(b):/atom|string|variable/.test(c)&&b.context&&(/[\}\]]/.test(b.context.type)?f(b,"pattern",a.column()):"pattern"!==b.context.type||b.context.align||(b.context.align=!0,b.context.col=a.column()));return c},indent:function(b,c){var d=c&&c.charAt(0),e=b.context;if(/[\]\}]/.test(d))for(;e&&"pattern"===e.type;)e=e.prev;var f=e&&d===e.type;return e?"keywords"===e.type?a.commands.newlineAndIndent:e.align?e.col+(f?0:1):e.indent+(f?0:h):0}}})),a.modeExtensions.cypher={autoFormatLineBreaks:function(a){for(var b,c,d,c=a.split("\n"),d=/\s+\b(return|where|order by|match|with|skip|limit|create|delete|set)\b\s/g,b=0;b<c.length;b++)c[b]=c[b].replace(d," \n$1 ").trim();return c.join("\n")}},a.defineMIME("application/x-cypher-query","cypher")}));editors/codemirror/mode/shell/shell.min.js000064400000004446152177723720014671 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("shell",(function(){function a(a,b){for(var c=b.split(" "),d=0;d<c.length;d++)f[c[d]]=a}function b(a,b){if(a.eatSpace())return null;var d=a.sol(),h=a.next();if("\\"===h)return a.next(),null;if("'"===h||'"'===h||"`"===h)return b.tokens.unshift(c(h,"`"===h?"quote":"string")),e(a,b);if("#"===h)return d&&a.eat("!")?(a.skipToEnd(),"meta"):(a.skipToEnd(),"comment");if("$"===h)return b.tokens.unshift(g),e(a,b);if("+"===h||"="===h)return"operator";if("-"===h)return a.eat("-"),a.eatWhile(/\w/),"attribute";if(/\d/.test(h)&&(a.eatWhile(/\d/),a.eol()||!/\w/.test(a.peek())))return"number";a.eatWhile(/[\w-]/);var i=a.current();return"="===a.peek()&&/\w+/.test(i)?"def":f.hasOwnProperty(i)?f[i]:null}function c(a,b){var f="("==a?")":"{"==a?"}":a;return function(h,i){for(var j,k=!1;null!=(j=h.next());){if(j===f&&!k){i.tokens.shift();break}if("$"===j&&!k&&"'"!==a&&h.peek()!=f){k=!0,h.backUp(1),i.tokens.unshift(g);break}if(!k&&a!==f&&j===a)return i.tokens.unshift(c(a,b)),e(h,i);if(!k&&/['"]/.test(j)&&!/['"]/.test(a)){i.tokens.unshift(d(j,"string")),h.backUp(1);break}k=!k&&"\\"===j}return b}}function d(a,b){return function(d,f){return f.tokens[0]=c(a,b),d.next(),e(d,f)}}function e(a,c){return(c.tokens[0]||b)(a,c)}var f={};a("atom","true false"),a("keyword","if then do else elif while until for in esac fi fin fil done exit set unset export function"),a("builtin","ab awk bash beep cat cc cd chown chmod chroot clear cp curl cut diff echo find gawk gcc get git grep hg kill killall ln ls make mkdir openssl mv nc nl node npm ping ps restart rm rmdir sed service sh shopt shred source sort sleep ssh start stop su sudo svn tee telnet top touch vi vim wall wc wget who write yes zsh");var g=function(a,b){b.tokens.length>1&&a.eat("$");var d=a.next();return/['"({]/.test(d)?(b.tokens[0]=c(d,"("==d?"quote":"{"==d?"def":"string"),e(a,b)):(/\d/.test(d)||a.eatWhile(/\w/),b.tokens.shift(),"def")};return{startState:function(){return{tokens:[]}},token:function(a,b){return e(a,b)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}})),a.defineMIME("text/x-sh","shell"),a.defineMIME("application/x-sh","shell")}));editors/codemirror/mode/shell/shell.js000064400000010715152177723720014103 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode('shell', function() {

  var words = {};
  function define(style, string) {
    var split = string.split(' ');
    for(var i = 0; i < split.length; i++) {
      words[split[i]] = style;
    }
  };

  // Atoms
  define('atom', 'true false');

  // Keywords
  define('keyword', 'if then do else elif while until for in esac fi fin ' +
    'fil done exit set unset export function');

  // Commands
  define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' +
    'curl cut diff echo find gawk gcc get git grep hg kill killall ln ls make ' +
    'mkdir openssl mv nc nl node npm ping ps restart rm rmdir sed service sh ' +
    'shopt shred source sort sleep ssh start stop su sudo svn tee telnet top ' +
    'touch vi vim wall wc wget who write yes zsh');

  function tokenBase(stream, state) {
    if (stream.eatSpace()) return null;

    var sol = stream.sol();
    var ch = stream.next();

    if (ch === '\\') {
      stream.next();
      return null;
    }
    if (ch === '\'' || ch === '"' || ch === '`') {
      state.tokens.unshift(tokenString(ch, ch === "`" ? "quote" : "string"));
      return tokenize(stream, state);
    }
    if (ch === '#') {
      if (sol && stream.eat('!')) {
        stream.skipToEnd();
        return 'meta'; // 'comment'?
      }
      stream.skipToEnd();
      return 'comment';
    }
    if (ch === '$') {
      state.tokens.unshift(tokenDollar);
      return tokenize(stream, state);
    }
    if (ch === '+' || ch === '=') {
      return 'operator';
    }
    if (ch === '-') {
      stream.eat('-');
      stream.eatWhile(/\w/);
      return 'attribute';
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/\d/);
      if(stream.eol() || !/\w/.test(stream.peek())) {
        return 'number';
      }
    }
    stream.eatWhile(/[\w-]/);
    var cur = stream.current();
    if (stream.peek() === '=' && /\w+/.test(cur)) return 'def';
    return words.hasOwnProperty(cur) ? words[cur] : null;
  }

  function tokenString(quote, style) {
    var close = quote == "(" ? ")" : quote == "{" ? "}" : quote
    return function(stream, state) {
      var next, escaped = false;
      while ((next = stream.next()) != null) {
        if (next === close && !escaped) {
          state.tokens.shift();
          break;
        } else if (next === '$' && !escaped && quote !== "'" && stream.peek() != close) {
          escaped = true;
          stream.backUp(1);
          state.tokens.unshift(tokenDollar);
          break;
        } else if (!escaped && quote !== close && next === quote) {
          state.tokens.unshift(tokenString(quote, style))
          return tokenize(stream, state)
        } else if (!escaped && /['"]/.test(next) && !/['"]/.test(quote)) {
          state.tokens.unshift(tokenStringStart(next, "string"));
          stream.backUp(1);
          break;
        }
        escaped = !escaped && next === '\\';
      }
      return style;
    };
  };

  function tokenStringStart(quote, style) {
    return function(stream, state) {
      state.tokens[0] = tokenString(quote, style)
      stream.next()
      return tokenize(stream, state)
    }
  }

  var tokenDollar = function(stream, state) {
    if (state.tokens.length > 1) stream.eat('$');
    var ch = stream.next()
    if (/['"({]/.test(ch)) {
      state.tokens[0] = tokenString(ch, ch == "(" ? "quote" : ch == "{" ? "def" : "string");
      return tokenize(stream, state);
    }
    if (!/\d/.test(ch)) stream.eatWhile(/\w/);
    state.tokens.shift();
    return 'def';
  };

  function tokenize(stream, state) {
    return (state.tokens[0] || tokenBase) (stream, state);
  };

  return {
    startState: function() {return {tokens:[]};},
    token: function(stream, state) {
      return tokenize(stream, state);
    },
    closeBrackets: "()[]{}''\"\"``",
    lineComment: '#',
    fold: "brace"
  };
});

CodeMirror.defineMIME('text/x-sh', 'shell');
// Apache uses a slightly different Media Type for Shell scripts
// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
CodeMirror.defineMIME('application/x-sh', 'shell');

});
editors/codemirror/mode/modelica/modelica.min.js000064400000006371152177723720016004 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(b,c){function d(a){if(a)for(var b in a)a.hasOwnProperty(b)&&e.push(b)}"string"==typeof b&&(b=[b]);var e=[];d(c.keywords),d(c.builtin),d(c.atoms),e.length&&(c.helperType=b[0],a.registerHelper("hintWords",b[0],e));for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}a.defineMode("modelica",(function(b,c){function d(a,b){return a.skipToEnd(),b.tokenize=null,"comment"}function e(a,b){for(var c,d=!1;c=a.next();){if(d&&"/"==c){b.tokenize=null;break}d="*"==c}return"comment"}function f(a,b){for(var c,d=!1;null!=(c=a.next());){if('"'==c&&!d){b.tokenize=null,b.sol=!1;break}d=!d&&"\\"==c}return"string"}function g(a,b){for(a.eatWhile(p);a.eat(p)||a.eat(q););var c=a.current();return!b.sol||"package"!=c&&"model"!=c&&"when"!=c&&"connector"!=c?b.sol&&"end"==c&&b.level>0&&b.level--:b.level++,b.tokenize=null,b.sol=!1,k.propertyIsEnumerable(c)?"keyword":l.propertyIsEnumerable(c)?"builtin":m.propertyIsEnumerable(c)?"atom":"variable"}function h(a,b){for(;a.eat(/[^']/););return b.tokenize=null,b.sol=!1,a.eat("'")?"variable":"error"}function i(a,b){return a.eatWhile(p),a.eat(".")&&a.eatWhile(p),(a.eat("e")||a.eat("E"))&&(a.eat("-")||a.eat("+"),a.eatWhile(p)),b.tokenize=null,b.sol=!1,"number"}var j=b.indentUnit,k=c.keywords||{},l=c.builtin||{},m=c.atoms||{},n=/[;=\(:\),{}.*<>+\-\/^\[\]]/,o=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/,p=/[0-9]/,q=/[_a-zA-Z]/;return{startState:function(){return{tokenize:null,level:0,sol:!0}},token:function(a,b){if(null!=b.tokenize)return b.tokenize(a,b);if(a.sol()&&(b.sol=!0),a.eatSpace())return b.tokenize=null,null;var c=a.next();if("/"==c&&a.eat("/"))b.tokenize=d;else if("/"==c&&a.eat("*"))b.tokenize=e;else{if(o.test(c+a.peek()))return a.next(),b.tokenize=null,"operator";if(n.test(c))return b.tokenize=null,"operator";if(q.test(c))b.tokenize=g;else if("'"==c&&a.peek()&&"'"!=a.peek())b.tokenize=h;else if('"'==c)b.tokenize=f;else{if(!p.test(c))return b.tokenize=null,"error";b.tokenize=i}}return b.tokenize(a,b)},indent:function(b,c){if(null!=b.tokenize)return a.Pass;var d=b.level;return/(algorithm)/.test(c)&&d--,/(equation)/.test(c)&&d--,/(initial algorithm)/.test(c)&&d--,/(initial equation)/.test(c)&&d--,/(end)/.test(c)&&d--,d>0?j*d:0},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}}));var d="algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within",e="abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh",f="Real Boolean Integer String";c(["text/x-modelica"],{name:"modelica",keywords:b(d),builtin:b(e),atoms:b(f)})}));editors/codemirror/mode/modelica/modelica.js000064400000015423152177723720015220 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Modelica support for CodeMirror, copyright (c) by Lennart Ochel

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})

(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("modelica", function(config, parserConfig) {

    var indentUnit = config.indentUnit;
    var keywords = parserConfig.keywords || {};
    var builtin = parserConfig.builtin || {};
    var atoms = parserConfig.atoms || {};

    var isSingleOperatorChar = /[;=\(:\),{}.*<>+\-\/^\[\]]/;
    var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/;
    var isDigit = /[0-9]/;
    var isNonDigit = /[_a-zA-Z]/;

    function tokenLineComment(stream, state) {
      stream.skipToEnd();
      state.tokenize = null;
      return "comment";
    }

    function tokenBlockComment(stream, state) {
      var maybeEnd = false, ch;
      while (ch = stream.next()) {
        if (maybeEnd && ch == "/") {
          state.tokenize = null;
          break;
        }
        maybeEnd = (ch == "*");
      }
      return "comment";
    }

    function tokenString(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == '"' && !escaped) {
          state.tokenize = null;
          state.sol = false;
          break;
        }
        escaped = !escaped && ch == "\\";
      }

      return "string";
    }

    function tokenIdent(stream, state) {
      stream.eatWhile(isDigit);
      while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }


      var cur = stream.current();

      if(state.sol && (cur == "package" || cur == "model" || cur == "when" || cur == "connector")) state.level++;
      else if(state.sol && cur == "end" && state.level > 0) state.level--;

      state.tokenize = null;
      state.sol = false;

      if (keywords.propertyIsEnumerable(cur)) return "keyword";
      else if (builtin.propertyIsEnumerable(cur)) return "builtin";
      else if (atoms.propertyIsEnumerable(cur)) return "atom";
      else return "variable";
    }

    function tokenQIdent(stream, state) {
      while (stream.eat(/[^']/)) { }

      state.tokenize = null;
      state.sol = false;

      if(stream.eat("'"))
        return "variable";
      else
        return "error";
    }

    function tokenUnsignedNuber(stream, state) {
      stream.eatWhile(isDigit);
      if (stream.eat('.')) {
        stream.eatWhile(isDigit);
      }
      if (stream.eat('e') || stream.eat('E')) {
        if (!stream.eat('-'))
          stream.eat('+');
        stream.eatWhile(isDigit);
      }

      state.tokenize = null;
      state.sol = false;
      return "number";
    }

    // Interface
    return {
      startState: function() {
        return {
          tokenize: null,
          level: 0,
          sol: true
        };
      },

      token: function(stream, state) {
        if(state.tokenize != null) {
          return state.tokenize(stream, state);
        }

        if(stream.sol()) {
          state.sol = true;
        }

        // WHITESPACE
        if(stream.eatSpace()) {
          state.tokenize = null;
          return null;
        }

        var ch = stream.next();

        // LINECOMMENT
        if(ch == '/' && stream.eat('/')) {
          state.tokenize = tokenLineComment;
        }
        // BLOCKCOMMENT
        else if(ch == '/' && stream.eat('*')) {
          state.tokenize = tokenBlockComment;
        }
        // TWO SYMBOL TOKENS
        else if(isDoubleOperatorChar.test(ch+stream.peek())) {
          stream.next();
          state.tokenize = null;
          return "operator";
        }
        // SINGLE SYMBOL TOKENS
        else if(isSingleOperatorChar.test(ch)) {
          state.tokenize = null;
          return "operator";
        }
        // IDENT
        else if(isNonDigit.test(ch)) {
          state.tokenize = tokenIdent;
        }
        // Q-IDENT
        else if(ch == "'" && stream.peek() && stream.peek() != "'") {
          state.tokenize = tokenQIdent;
        }
        // STRING
        else if(ch == '"') {
          state.tokenize = tokenString;
        }
        // UNSIGNED_NUBER
        else if(isDigit.test(ch)) {
          state.tokenize = tokenUnsignedNuber;
        }
        // ERROR
        else {
          state.tokenize = null;
          return "error";
        }

        return state.tokenize(stream, state);
      },

      indent: function(state, textAfter) {
        if (state.tokenize != null) return CodeMirror.Pass;

        var level = state.level;
        if(/(algorithm)/.test(textAfter)) level--;
        if(/(equation)/.test(textAfter)) level--;
        if(/(initial algorithm)/.test(textAfter)) level--;
        if(/(initial equation)/.test(textAfter)) level--;
        if(/(end)/.test(textAfter)) level--;

        if(level > 0)
          return indentUnit*level;
        else
          return 0;
      },

      blockCommentStart: "/*",
      blockCommentEnd: "*/",
      lineComment: "//"
    };
  });

  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i=0; i<words.length; ++i)
      obj[words[i]] = true;
    return obj;
  }

  var modelicaKeywords = "algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within";
  var modelicaBuiltin = "abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh";
  var modelicaAtoms = "Real Boolean Integer String";

  function def(mimes, mode) {
    if (typeof mimes == "string")
      mimes = [mimes];

    var words = [];

    function add(obj) {
      if (obj)
        for (var prop in obj)
          if (obj.hasOwnProperty(prop))
            words.push(prop);
    }

    add(mode.keywords);
    add(mode.builtin);
    add(mode.atoms);

    if (words.length) {
      mode.helperType = mimes[0];
      CodeMirror.registerHelper("hintWords", mimes[0], words);
    }

    for (var i=0; i<mimes.length; ++i)
      CodeMirror.defineMIME(mimes[i], mode);
  }

  def(["text/x-modelica"], {
    name: "modelica",
    keywords: words(modelicaKeywords),
    builtin: words(modelicaBuiltin),
    atoms: words(modelicaAtoms)
  });
});
editors/codemirror/mode/eiffel/eiffel.js000064400000007241152177723720014351 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("eiffel", function() {
  function wordObj(words) {
    var o = {};
    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;
    return o;
  }
  var keywords = wordObj([
    'note',
    'across',
    'when',
    'variant',
    'until',
    'unique',
    'undefine',
    'then',
    'strip',
    'select',
    'retry',
    'rescue',
    'require',
    'rename',
    'reference',
    'redefine',
    'prefix',
    'once',
    'old',
    'obsolete',
    'loop',
    'local',
    'like',
    'is',
    'inspect',
    'infix',
    'include',
    'if',
    'frozen',
    'from',
    'external',
    'export',
    'ensure',
    'end',
    'elseif',
    'else',
    'do',
    'creation',
    'create',
    'check',
    'alias',
    'agent',
    'separate',
    'invariant',
    'inherit',
    'indexing',
    'feature',
    'expanded',
    'deferred',
    'class',
    'Void',
    'True',
    'Result',
    'Precursor',
    'False',
    'Current',
    'create',
    'attached',
    'detachable',
    'as',
    'and',
    'implies',
    'not',
    'or'
  ]);
  var operators = wordObj([":=", "and then","and", "or","<<",">>"]);

  function chain(newtok, stream, state) {
    state.tokenize.push(newtok);
    return newtok(stream, state);
  }

  function tokenBase(stream, state) {
    if (stream.eatSpace()) return null;
    var ch = stream.next();
    if (ch == '"'||ch == "'") {
      return chain(readQuoted(ch, "string"), stream, state);
    } else if (ch == "-"&&stream.eat("-")) {
      stream.skipToEnd();
      return "comment";
    } else if (ch == ":"&&stream.eat("=")) {
      return "operator";
    } else if (/[0-9]/.test(ch)) {
      stream.eatWhile(/[xXbBCc0-9\.]/);
      stream.eat(/[\?\!]/);
      return "ident";
    } else if (/[a-zA-Z_0-9]/.test(ch)) {
      stream.eatWhile(/[a-zA-Z_0-9]/);
      stream.eat(/[\?\!]/);
      return "ident";
    } else if (/[=+\-\/*^%<>~]/.test(ch)) {
      stream.eatWhile(/[=+\-\/*^%<>~]/);
      return "operator";
    } else {
      return null;
    }
  }

  function readQuoted(quote, style,  unescaped) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && (unescaped || !escaped)) {
          state.tokenize.pop();
          break;
        }
        escaped = !escaped && ch == "%";
      }
      return style;
    };
  }

  return {
    startState: function() {
      return {tokenize: [tokenBase]};
    },

    token: function(stream, state) {
      var style = state.tokenize[state.tokenize.length-1](stream, state);
      if (style == "ident") {
        var word = stream.current();
        style = keywords.propertyIsEnumerable(stream.current()) ? "keyword"
          : operators.propertyIsEnumerable(stream.current()) ? "operator"
          : /^[A-Z][A-Z_0-9]*$/g.test(word) ? "tag"
          : /^0[bB][0-1]+$/g.test(word) ? "number"
          : /^0[cC][0-7]+$/g.test(word) ? "number"
          : /^0[xX][a-fA-F0-9]+$/g.test(word) ? "number"
          : /^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(word) ? "number"
          : /^[0-9]+$/g.test(word) ? "number"
          : "variable";
      }
      return style;
    },
    lineComment: "--"
  };
});

CodeMirror.defineMIME("text/x-eiffel", "eiffel");

});
editors/codemirror/mode/eiffel/eiffel.min.js000064400000004022152177723720015125 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("eiffel",(function(){function a(a){for(var b={},c=0,d=a.length;c<d;++c)b[a[c]]=!0;return b}function b(a,b,c){return c.tokenize.push(a),a(b,c)}function c(a,c){if(a.eatSpace())return null;var e=a.next();return'"'==e||"'"==e?b(d(e,"string"),a,c):"-"==e&&a.eat("-")?(a.skipToEnd(),"comment"):":"==e&&a.eat("=")?"operator":/[0-9]/.test(e)?(a.eatWhile(/[xXbBCc0-9\.]/),a.eat(/[\?\!]/),"ident"):/[a-zA-Z_0-9]/.test(e)?(a.eatWhile(/[a-zA-Z_0-9]/),a.eat(/[\?\!]/),"ident"):/[=+\-\/*^%<>~]/.test(e)?(a.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}function d(a,b,c){return function(d,e){for(var f,g=!1;null!=(f=d.next());){if(f==a&&(c||!g)){e.tokenize.pop();break}g=!g&&"%"==f}return b}}var e=a(["note","across","when","variant","until","unique","undefine","then","strip","select","retry","rescue","require","rename","reference","redefine","prefix","once","old","obsolete","loop","local","like","is","inspect","infix","include","if","frozen","from","external","export","ensure","end","elseif","else","do","creation","create","check","alias","agent","separate","invariant","inherit","indexing","feature","expanded","deferred","class","Void","True","Result","Precursor","False","Current","create","attached","detachable","as","and","implies","not","or"]),f=a([":=","and then","and","or","<<",">>"]);return{startState:function(){return{tokenize:[c]}},token:function(a,b){var c=b.tokenize[b.tokenize.length-1](a,b);if("ident"==c){var d=a.current();c=e.propertyIsEnumerable(a.current())?"keyword":f.propertyIsEnumerable(a.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(d)?"tag":/^0[bB][0-1]+$/g.test(d)?"number":/^0[cC][0-7]+$/g.test(d)?"number":/^0[xX][a-fA-F0-9]+$/g.test(d)?"number":/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(d)?"number":/^[0-9]+$/g.test(d)?"number":"variable"}return c},lineComment:"--"}})),a.defineMIME("text/x-eiffel","eiffel")}));editors/codemirror/mode/dtd/dtd.js000064400000011317152177723720013212 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
  DTD mode
  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
  GitHub: @peterkroon
*/

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("dtd", function(config) {
  var indentUnit = config.indentUnit, type;
  function ret(style, tp) {type = tp; return style;}

  function tokenBase(stream, state) {
    var ch = stream.next();

    if (ch == "<" && stream.eat("!") ) {
      if (stream.eatWhile(/[\-]/)) {
        state.tokenize = tokenSGMLComment;
        return tokenSGMLComment(stream, state);
      } else if (stream.eatWhile(/[\w]/)) return ret("keyword", "doindent");
    } else if (ch == "<" && stream.eat("?")) { //xml declaration
      state.tokenize = inBlock("meta", "?>");
      return ret("meta", ch);
    } else if (ch == "#" && stream.eatWhile(/[\w]/)) return ret("atom", "tag");
    else if (ch == "|") return ret("keyword", "seperator");
    else if (ch.match(/[\(\)\[\]\-\.,\+\?>]/)) return ret(null, ch);//if(ch === ">") return ret(null, "endtag"); else
    else if (ch.match(/[\[\]]/)) return ret("rule", ch);
    else if (ch == "\"" || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    } else if (stream.eatWhile(/[a-zA-Z\?\+\d]/)) {
      var sc = stream.current();
      if( sc.substr(sc.length-1,sc.length).match(/\?|\+/) !== null )stream.backUp(1);
      return ret("tag", "tag");
    } else if (ch == "%" || ch == "*" ) return ret("number", "number");
    else {
      stream.eatWhile(/[\w\\\-_%.{,]/);
      return ret(null, null);
    }
  }

  function tokenSGMLComment(stream, state) {
    var dashes = 0, ch;
    while ((ch = stream.next()) != null) {
      if (dashes >= 2 && ch == ">") {
        state.tokenize = tokenBase;
        break;
      }
      dashes = (ch == "-") ? dashes + 1 : 0;
    }
    return ret("comment", "comment");
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped) {
          state.tokenize = tokenBase;
          break;
        }
        escaped = !escaped && ch == "\\";
      }
      return ret("string", "tag");
    };
  }

  function inBlock(style, terminator) {
    return function(stream, state) {
      while (!stream.eol()) {
        if (stream.match(terminator)) {
          state.tokenize = tokenBase;
          break;
        }
        stream.next();
      }
      return style;
    };
  }

  return {
    startState: function(base) {
      return {tokenize: tokenBase,
              baseIndent: base || 0,
              stack: []};
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);

      var context = state.stack[state.stack.length-1];
      if (stream.current() == "[" || type === "doindent" || type == "[") state.stack.push("rule");
      else if (type === "endtag") state.stack[state.stack.length-1] = "endtag";
      else if (stream.current() == "]" || type == "]" || (type == ">" && context == "rule")) state.stack.pop();
      else if (type == "[") state.stack.push("[");
      return style;
    },

    indent: function(state, textAfter) {
      var n = state.stack.length;

      if( textAfter.match(/\]\s+|\]/) )n=n-1;
      else if(textAfter.substr(textAfter.length-1, textAfter.length) === ">"){
        if(textAfter.substr(0,1) === "<") {}
        else if( type == "doindent" && textAfter.length > 1 ) {}
        else if( type == "doindent")n--;
        else if( type == ">" && textAfter.length > 1) {}
        else if( type == "tag" && textAfter !== ">") {}
        else if( type == "tag" && state.stack[state.stack.length-1] == "rule")n--;
        else if( type == "tag")n++;
        else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule" && type === ">")n--;
        else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule") {}
        else if( textAfter.substr(0,1) !== "<" && textAfter.substr(0,1) === ">" )n=n-1;
        else if( textAfter === ">") {}
        else n=n-1;
        //over rule them all
        if(type == null || type == "]")n--;
      }

      return state.baseIndent + n * indentUnit;
    },

    electricChars: "]>"
  };
});

CodeMirror.defineMIME("application/xml-dtd", "dtd");

});
editors/codemirror/mode/dtd/dtd.min.js000064400000004366152177723720014002 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("dtd",(function(a){function b(a,b){return g=b,a}function c(a,c){var g=a.next();if("<"!=g||!a.eat("!")){if("<"==g&&a.eat("?"))return c.tokenize=f("meta","?>"),b("meta",g);if("#"==g&&a.eatWhile(/[\w]/))return b("atom","tag");if("|"==g)return b("keyword","seperator");if(g.match(/[\(\)\[\]\-\.,\+\?>]/))return b(null,g);if(g.match(/[\[\]]/))return b("rule",g);if('"'==g||"'"==g)return c.tokenize=e(g),c.tokenize(a,c);if(a.eatWhile(/[a-zA-Z\?\+\d]/)){var h=a.current();return null!==h.substr(h.length-1,h.length).match(/\?|\+/)&&a.backUp(1),b("tag","tag")}return"%"==g||"*"==g?b("number","number"):(a.eatWhile(/[\w\\\-_%.{,]/),b(null,null))}return a.eatWhile(/[\-]/)?(c.tokenize=d,d(a,c)):a.eatWhile(/[\w]/)?b("keyword","doindent"):void 0}function d(a,d){for(var e,f=0;null!=(e=a.next());){if(f>=2&&">"==e){d.tokenize=c;break}f="-"==e?f+1:0}return b("comment","comment")}function e(a){return function(d,e){for(var f,g=!1;null!=(f=d.next());){if(f==a&&!g){e.tokenize=c;break}g=!g&&"\\"==f}return b("string","tag")}}function f(a,b){return function(d,e){for(;!d.eol();){if(d.match(b)){e.tokenize=c;break}d.next()}return a}}var g,h=a.indentUnit;return{startState:function(a){return{tokenize:c,baseIndent:a||0,stack:[]}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b),d=b.stack[b.stack.length-1];return"["==a.current()||"doindent"===g||"["==g?b.stack.push("rule"):"endtag"===g?b.stack[b.stack.length-1]="endtag":"]"==a.current()||"]"==g||">"==g&&"rule"==d?b.stack.pop():"["==g&&b.stack.push("["),c},indent:function(a,b){var c=a.stack.length;return b.match(/\]\s+|\]/)?c-=1:">"===b.substr(b.length-1,b.length)&&("<"===b.substr(0,1)||"doindent"==g&&b.length>1||("doindent"==g?c--:">"==g&&b.length>1||"tag"==g&&">"!==b||("tag"==g&&"rule"==a.stack[a.stack.length-1]?c--:"tag"==g?c++:">"===b&&"rule"==a.stack[a.stack.length-1]&&">"===g?c--:">"===b&&"rule"==a.stack[a.stack.length-1]||("<"!==b.substr(0,1)&&">"===b.substr(0,1)?c-=1:">"===b||(c-=1)))),null!=g&&"]"!=g||c--),a.baseIndent+c*h},electricChars:"]>"}})),a.defineMIME("application/xml-dtd","dtd")}));editors/codemirror/mode/asterisk/asterisk.js000064400000016416152177723720015343 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
 * =====================================================================================
 *
 *       Filename:  mode/asterisk/asterisk.js
 *
 *    Description:  CodeMirror mode for Asterisk dialplan
 *
 *        Created:  05/17/2012 09:20:25 PM
 *       Revision:  none
 *
 *         Author:  Stas Kobzar (stas@modulis.ca),
 *        Company:  Modulis.ca Inc.
 *
 * =====================================================================================
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("asterisk", function() {
  var atoms    = ["exten", "same", "include","ignorepat","switch"],
      dpcmd    = ["#include","#exec"],
      apps     = [
                  "addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi",
                  "alarmreceiver","amd","answer","authenticate","background","backgrounddetect",
                  "bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent",
                  "changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge",
                  "congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge",
                  "dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility",
                  "datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa",
                  "dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy",
                  "externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif",
                  "goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete",
                  "ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus",
                  "jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme",
                  "meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete",
                  "minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode",
                  "mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish",
                  "originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce",
                  "parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones",
                  "privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten",
                  "readfile","receivefax","receivefax","receivefax","record","removequeuemember",
                  "resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun",
                  "saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax",
                  "sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags",
                  "setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel",
                  "slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground",
                  "speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound",
                  "speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor",
                  "stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec",
                  "trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate",
                  "vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring",
                  "waitforsilence","waitmusiconhold","waituntil","while","zapateller"
                 ];

  function basicToken(stream,state){
    var cur = '';
    var ch = stream.next();
    // comment
    if(ch == ";") {
      stream.skipToEnd();
      return "comment";
    }
    // context
    if(ch == '[') {
      stream.skipTo(']');
      stream.eat(']');
      return "header";
    }
    // string
    if(ch == '"') {
      stream.skipTo('"');
      return "string";
    }
    if(ch == "'") {
      stream.skipTo("'");
      return "string-2";
    }
    // dialplan commands
    if(ch == '#') {
      stream.eatWhile(/\w/);
      cur = stream.current();
      if(dpcmd.indexOf(cur) !== -1) {
        stream.skipToEnd();
        return "strong";
      }
    }
    // application args
    if(ch == '$'){
      var ch1 = stream.peek();
      if(ch1 == '{'){
        stream.skipTo('}');
        stream.eat('}');
        return "variable-3";
      }
    }
    // extension
    stream.eatWhile(/\w/);
    cur = stream.current();
    if(atoms.indexOf(cur) !== -1) {
      state.extenStart = true;
      switch(cur) {
        case 'same': state.extenSame = true; break;
        case 'include':
        case 'switch':
        case 'ignorepat':
          state.extenInclude = true;break;
        default:break;
      }
      return "atom";
    }
  }

  return {
    startState: function() {
      return {
        extenStart: false,
        extenSame:  false,
        extenInclude: false,
        extenExten: false,
        extenPriority: false,
        extenApplication: false
      };
    },
    token: function(stream, state) {

      var cur = '';
      if(stream.eatSpace()) return null;
      // extension started
      if(state.extenStart){
        stream.eatWhile(/[^\s]/);
        cur = stream.current();
        if(/^=>?$/.test(cur)){
          state.extenExten = true;
          state.extenStart = false;
          return "strong";
        } else {
          state.extenStart = false;
          stream.skipToEnd();
          return "error";
        }
      } else if(state.extenExten) {
        // set exten and priority
        state.extenExten = false;
        state.extenPriority = true;
        stream.eatWhile(/[^,]/);
        if(state.extenInclude) {
          stream.skipToEnd();
          state.extenPriority = false;
          state.extenInclude = false;
        }
        if(state.extenSame) {
          state.extenPriority = false;
          state.extenSame = false;
          state.extenApplication = true;
        }
        return "tag";
      } else if(state.extenPriority) {
        state.extenPriority = false;
        state.extenApplication = true;
        stream.next(); // get comma
        if(state.extenSame) return null;
        stream.eatWhile(/[^,]/);
        return "number";
      } else if(state.extenApplication) {
        stream.eatWhile(/,/);
        cur = stream.current();
        if(cur === ',') return null;
        stream.eatWhile(/\w/);
        cur = stream.current().toLowerCase();
        state.extenApplication = false;
        if(apps.indexOf(cur) !== -1){
          return "def strong";
        }
      } else{
        return basicToken(stream,state);
      }

      return null;
    }
  };
});

CodeMirror.defineMIME("text/x-asterisk", "asterisk");

});
editors/codemirror/mode/asterisk/asterisk.min.js000064400000010375152177723720016123 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("asterisk",(function(){function a(a,d){var e="",f=a.next();if(";"==f)return a.skipToEnd(),"comment";if("["==f)return a.skipTo("]"),a.eat("]"),"header";if('"'==f)return a.skipTo('"'),"string";if("'"==f)return a.skipTo("'"),"string-2";if("#"==f&&(a.eatWhile(/\w/),e=a.current(),c.indexOf(e)!==-1))return a.skipToEnd(),"strong";if("$"==f){var g=a.peek();if("{"==g)return a.skipTo("}"),a.eat("}"),"variable-3"}if(a.eatWhile(/\w/),e=a.current(),b.indexOf(e)!==-1){switch(d.extenStart=!0,e){case"same":d.extenSame=!0;break;case"include":case"switch":case"ignorepat":d.extenInclude=!0}return"atom"}}var b=["exten","same","include","ignorepat","switch"],c=["#include","#exec"],d=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];return{startState:function(){return{extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(b,c){var e="";return b.eatSpace()?null:c.extenStart?(b.eatWhile(/[^\s]/),e=b.current(),/^=>?$/.test(e)?(c.extenExten=!0,c.extenStart=!1,"strong"):(c.extenStart=!1,b.skipToEnd(),"error")):c.extenExten?(c.extenExten=!1,c.extenPriority=!0,b.eatWhile(/[^,]/),c.extenInclude&&(b.skipToEnd(),c.extenPriority=!1,c.extenInclude=!1),c.extenSame&&(c.extenPriority=!1,c.extenSame=!1,c.extenApplication=!0),"tag"):c.extenPriority?(c.extenPriority=!1,c.extenApplication=!0,b.next(),c.extenSame?null:(b.eatWhile(/[^,]/),"number")):c.extenApplication?(b.eatWhile(/,/),e=b.current(),","===e?null:(b.eatWhile(/\w/),e=b.current().toLowerCase(),c.extenApplication=!1,d.indexOf(e)!==-1?"def strong":null)):a(b,c)}}})),a.defineMIME("text/x-asterisk","asterisk")}));editors/codemirror/mode/dockerfile/dockerfile.js000064400000011203152177723720016074 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var from = "from";
  var fromRegex = new RegExp("^(\\s*)\\b(" + from + ")\\b", "i");

  var shells = ["run", "cmd", "entrypoint", "shell"];
  var shellsAsArrayRegex = new RegExp("^(\\s*)(" + shells.join('|') + ")(\\s+\\[)", "i");

  var expose = "expose";
  var exposeRegex = new RegExp("^(\\s*)(" + expose + ")(\\s+)", "i");

  var others = [
    "arg", "from", "maintainer", "label", "env",
    "add", "copy", "volume", "user",
    "workdir", "onbuild", "stopsignal", "healthcheck", "shell"
  ];

  // Collect all Dockerfile directives
  var instructions = [from, expose].concat(shells).concat(others),
      instructionRegex = "(" + instructions.join('|') + ")",
      instructionOnlyLine = new RegExp("^(\\s*)" + instructionRegex + "(\\s*)(#.*)?$", "i"),
      instructionWithArguments = new RegExp("^(\\s*)" + instructionRegex + "(\\s+)", "i");

  CodeMirror.defineSimpleMode("dockerfile", {
    start: [
      // Block comment: This is a line starting with a comment
      {
        regex: /^\s*#.*$/,
        sol: true,
        token: "comment"
      },
      {
        regex: fromRegex,
        token: [null, "keyword"],
        sol: true,
        next: "from"
      },
      // Highlight an instruction without any arguments (for convenience)
      {
        regex: instructionOnlyLine,
        token: [null, "keyword", null, "error"],
        sol: true
      },
      {
        regex: shellsAsArrayRegex,
        token: [null, "keyword", null],
        sol: true,
        next: "array"
      },
      {
        regex: exposeRegex,
        token: [null, "keyword", null],
        sol: true,
        next: "expose"
      },
      // Highlight an instruction followed by arguments
      {
        regex: instructionWithArguments,
        token: [null, "keyword", null],
        sol: true,
        next: "arguments"
      },
      {
        regex: /./,
        token: null
      }
    ],
    from: [
      {
        regex: /\s*$/,
        token: null,
        next: "start"
      },
      {
        // Line comment without instruction arguments is an error
        regex: /(\s*)(#.*)$/,
        token: [null, "error"],
        next: "start"
      },
      {
        regex: /(\s*\S+\s+)(as)/i,
        token: [null, "keyword"],
        next: "start"
      },
      // Fail safe return to start
      {
        token: null,
        next: "start"
      }
    ],
    single: [
      {
        regex: /(?:[^\\']|\\.)/,
        token: "string"
      },
      {
        regex: /'/,
        token: "string",
        pop: true
      }
    ],
    double: [
      {
        regex: /(?:[^\\"]|\\.)/,
        token: "string"
      },
      {
        regex: /"/,
        token: "string",
        pop: true
      }
    ],
    array: [
      {
        regex: /\]/,
        token: null,
        next: "start"
      },
      {
        regex: /"(?:[^\\"]|\\.)*"?/,
        token: "string"
      }
    ],
    expose: [
      {
        regex: /\d+$/,
        token: "number",
        next: "start"
      },
      {
        regex: /[^\d]+$/,
        token: null,
        next: "start"
      },
      {
        regex: /\d+/,
        token: "number"
      },
      {
        regex: /[^\d]+/,
        token: null
      },
      // Fail safe return to start
      {
        token: null,
        next: "start"
      }
    ],
    arguments: [
      {
        regex: /^\s*#.*$/,
        sol: true,
        token: "comment"
      },
      {
        regex: /"(?:[^\\"]|\\.)*"?$/,
        token: "string",
        next: "start"
      },
      {
        regex: /"/,
        token: "string",
        push: "double"
      },
      {
        regex: /'(?:[^\\']|\\.)*'?$/,
        token: "string",
        next: "start"
      },
      {
        regex: /'/,
        token: "string",
        push: "single"
      },
      {
        regex: /[^#"']+[\\`]$/,
        token: null
      },
      {
        regex: /[^#"']+$/,
        token: null,
        next: "start"
      },
      {
        regex: /[^#"']+/,
        token: null
      },
      // Fail safe return to start
      {
        token: null,
        next: "start"
      }
    ],
    meta: {
      lineComment: "#"
    }
  });

  CodeMirror.defineMIME("text/x-dockerfile", "dockerfile");
});
editors/codemirror/mode/dockerfile/dockerfile.min.js000064400000004240152177723720016661 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/simple")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],a):a(CodeMirror)})((function(a){"use strict";var b="from",c=new RegExp("^(\\s*)\\b("+b+")\\b","i"),d=["run","cmd","entrypoint","shell"],e=new RegExp("^(\\s*)("+d.join("|")+")(\\s+\\[)","i"),f="expose",g=new RegExp("^(\\s*)("+f+")(\\s+)","i"),h=["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"],i=[b,f].concat(d).concat(h),j="("+i.join("|")+")",k=new RegExp("^(\\s*)"+j+"(\\s*)(#.*)?$","i"),l=new RegExp("^(\\s*)"+j+"(\\s+)","i");a.defineSimpleMode("dockerfile",{start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:c,token:[null,"keyword"],sol:!0,next:"from"},{regex:k,token:[null,"keyword",null,"error"],sol:!0},{regex:e,token:[null,"keyword",null],sol:!0,next:"array"},{regex:g,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:l,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],meta:{lineComment:"#"}}),a.defineMIME("text/x-dockerfile","dockerfile")}));editors/codemirror/mode/sas/sas.min.js000064400000022515152177723720014024 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("sas",(function(){function a(a,b,d){if(d)for(var e=b.split(" "),f=0;f<e.length;f++)c[e[f]]={style:a,state:d}}function b(a,b){var g=a.next();if("/"===g&&a.eat("*"))return b.continueComment=!0,"comment";if(b.continueComment===!0)return"*"===g&&"/"===a.peek()?(a.next(),b.continueComment=!1):a.skipTo("*")?(a.skipTo("*"),a.next(),a.eat("/")&&(b.continueComment=!1)):a.skipToEnd(),"comment";if("*"==g&&a.column()==a.indentation())return a.skipToEnd(),"comment";var h=g+a.peek();if(!('"'!==g&&"'"!==g||b.continueString))return b.continueString=g,"string";if(b.continueString)return b.continueString==g?b.continueString=null:a.skipTo(b.continueString)?(a.next(),b.continueString=null):a.skipToEnd(),"string";if(null!==b.continueString&&a.eol())return a.skipTo(b.continueString)||a.skipToEnd(),"string";if(/[\d\.]/.test(g))return"."===g?a.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"===g?a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^0[0-7]+/):a.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(e.test(g+a.peek()))return a.next(),"operator";if(d.hasOwnProperty(h)){if(a.next()," "===a.peek())return d[h.toLowerCase()]}else if(f.test(g))return"operator";var i;if(null!=a.match(/[%&;\w]+/,!1)){if(i=g+a.match(/[%&;\w]+/,!0),/&/.test(i))return"variable"}else i=g;if(b.nextword)return a.match(/[\w]+/),"."===a.peek()&&a.skipTo(" "),b.nextword=!1,"variable-2";if(i=i.toLowerCase(),b.inDataStep){if("run;"===i||a.match(/run\s;/))return b.inDataStep=!1,"builtin";if(i&&"."===a.next())return/\w/.test(a.peek())?"variable-2":"variable";if(i&&c.hasOwnProperty(i)&&(c[i].state.indexOf("inDataStep")!==-1||c[i].state.indexOf("ALL")!==-1)){a.start<a.pos&&a.backUp(a.pos-a.start);for(var j=0;j<i.length;++j)a.next();return c[i].style}}if(b.inProc){if("run;"===i||"quit;"===i)return b.inProc=!1,"builtin";if(i&&c.hasOwnProperty(i)&&(c[i].state.indexOf("inProc")!==-1||c[i].state.indexOf("ALL")!==-1))return a.match(/[\w]+/),c[i].style}return b.inMacro?"%mend"===i?(";"===a.peek()&&a.next(),b.inMacro=!1,"builtin"):i&&c.hasOwnProperty(i)&&(c[i].state.indexOf("inMacro")!==-1||c[i].state.indexOf("ALL")!==-1)?(a.match(/[\w]+/),c[i].style):"atom":i&&c.hasOwnProperty(i)?(a.backUp(1),a.match(/[\w]+/),"data"===i&&/=/.test(a.peek())===!1?(b.inDataStep=!0,b.nextword=!0,"builtin"):"proc"===i?(b.inProc=!0,b.nextword=!0,"builtin"):"%macro"===i?(b.inMacro=!0,b.nextword=!0,"builtin"):/title[1-9]/.test(i)?"def":"footnote"===i?(a.eat(/[1-9]/),"def"):b.inDataStep===!0&&c[i].state.indexOf("inDataStep")!==-1?c[i].style:b.inProc===!0&&c[i].state.indexOf("inProc")!==-1?c[i].style:b.inMacro===!0&&c[i].state.indexOf("inMacro")!==-1?c[i].style:c[i].state.indexOf("ALL")!==-1?c[i].style:null):null}var c={},d={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"},e=/(<=|>=|!=|<>)/,f=/[=\(:\),{}.*<>+\-\/^\[\]]/;return a("def","stack pgm view source debug nesting nolist",["inDataStep"]),a("def","if while until for do do; end end; then else cancel",["inDataStep"]),a("def","label format _n_ _error_",["inDataStep"]),a("def","ALTER BUFNO BUFSIZE CNTLLEV COMPRESS DLDMGACTION ENCRYPT ENCRYPTKEY EXTENDOBSCOUNTER GENMAX GENNUM INDEX LABEL OBSBUF OUTREP PW PWREQ READ REPEMPTY REPLACE REUSE ROLE SORTEDBY SPILL TOBSNO TYPE WRITE FILECLOSE FIRSTOBS IN OBS POINTOBS WHERE WHEREUP IDXNAME IDXWHERE DROP KEEP RENAME",["inDataStep"]),a("def","filevar finfo finv fipname fipnamel fipstate first firstobs floor",["inDataStep"]),a("def","varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vnferr vtype vtypex weekday",["inDataStep"]),a("def","zipfips zipname zipnamel zipstate",["inDataStep"]),a("def","put putc putn",["inDataStep"]),a("builtin","data run",["inDataStep"]),a("def","data",["inProc"]),a("def","%if %end %end; %else %else; %do %do; %then",["inMacro"]),a("builtin","proc run; quit; libname filename %macro %mend option options",["ALL"]),a("def","footnote title libname ods",["ALL"]),a("def","%let %put %global %sysfunc %eval ",["ALL"]),a("variable","&sysbuffr &syscc &syscharwidth &syscmd &sysdate &sysdate9 &sysday &sysdevic &sysdmg &sysdsn &sysencoding &sysenv &syserr &syserrortext &sysfilrc &syshostname &sysindex &sysinfo &sysjobid &syslast &syslckrc &syslibrc &syslogapplname &sysmacroname &sysmenv &sysmsg &sysncpu &sysodspath &sysparm &syspbuff &sysprocessid &sysprocessname &sysprocname &sysrc &sysscp &sysscpl &sysscpl &syssite &sysstartid &sysstartname &systcpiphostname &systime &sysuserid &sysver &sysvlong &sysvlong4 &syswarningtext",["ALL"]),a("def","source2 nosource2 page pageno pagesize",["ALL"]),a("def","_all_ _character_ _cmd_ _freq_ _i_ _infile_ _last_ _msg_ _null_ _numeric_ _temporary_ _type_ abort abs addr adjrsq airy alpha alter altlog altprint and arcos array arsin as atan attrc attrib attrn authserver autoexec awscontrol awsdef awsmenu awsmenumerge awstitle backward band base betainv between blocksize blshift bnot bor brshift bufno bufsize bxor by byerr byline byte calculated call cards cards4 catcache cbufno cdf ceil center cexist change chisq cinv class cleanup close cnonct cntllev coalesce codegen col collate collin column comamid comaux1 comaux2 comdef compbl compound compress config continue convert cos cosh cpuid create cross crosstab css curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datalines datalines4 datejul datepart datetime day dbcslang dbcstype dclose ddm delete delimiter depdb depdbsl depsl depsyd deptab dequote descending descript design= device dflang dhms dif digamma dim dinfo display distinct dkricond dkrocond dlm dnum do dopen doptname doptnum dread drop dropnote dsname dsnferr echo else emaildlg emailid emailpw emailserver emailsys encrypt end endsas engine eof eov erf erfc error errorcheck errors exist exp fappend fclose fcol fdelete feedback fetch fetchobs fexist fget file fileclose fileexist filefmt filename fileref  fmterr fmtsearch fnonct fnote font fontalias  fopen foptname foptnum force formatted formchar formdelim formdlim forward fpoint fpos fput fread frewind frlen from fsep fuzz fwrite gaminv gamma getoption getvarc getvarn go goto group gwindow hbar hbound helpenv helploc hms honorappearance hosthelp hostprint hour hpct html hvar ibessel ibr id if index indexc indexw initcmd initstmt inner input inputc inputn inr insert int intck intnx into intrr invaliddata irr is jbessel join juldate keep kentb kurtosis label lag last lbound leave left length levels lgamma lib  library libref line linesize link list log log10 log2 logpdf logpmf logsdf lostcard lowcase lrecl ls macro macrogen maps mautosource max maxdec maxr mdy mean measures median memtype merge merror min minute missing missover mlogic mod mode model modify month mopen mort mprint mrecall msglevel msymtabmax mvarsize myy n nest netpv new news nmiss no nobatch nobs nocaps nocardimage nocenter nocharcode nocmdmac nocol nocum nodate nodbcs nodetails nodmr nodms nodmsbatch nodup nodupkey noduplicates noechoauto noequals noerrorabend noexitwindows nofullstimer noicon noimplmac noint nolist noloadlist nomiss nomlogic nomprint nomrecall nomsgcase nomstored nomultenvappl nonotes nonumber noobs noovp nopad nopercent noprint noprintinit normal norow norsasuser nosetinit  nosplash nosymbolgen note notes notitle notitles notsorted noverbose noxsync noxwait npv null number numkeys nummousekeys nway obs  on open     order ordinal otherwise out outer outp= output over ovp p(1 5 10 25 50 75 90 95 99) pad pad2  paired parm parmcards path pathdll pathname pdf peek peekc pfkey pmf point poisson poke position printer probbeta probbnml probchi probf probgam probhypr probit probnegb probnorm probsig probt procleave prt ps  pw pwreq qtr quote r ranbin rancau ranexp rangam range ranks rannor ranpoi rantbl rantri ranuni read recfm register regr remote remove rename repeat replace resolve retain return reuse reverse rewind right round rsquare rtf rtrace rtraceloc s s2 samploc sasautos sascontrol sasfrscr sasmsg sasmstore sasscript sasuser saving scan sdf second select selection separated seq serror set setcomm setot sign simple sin sinh siteinfo skewness skip sle sls sortedby sortpgm sortseq sortsize soundex  spedis splashlocation split spool sqrt start std stderr stdin stfips stimer stname stnamel stop stopover subgroup subpopn substr sum sumwgt symbol symbolgen symget symput sysget sysin sysleave sysmsg sysparm sysprint sysprintfont sysprod sysrc system t table tables tan tanh tapeclose tbufsize terminal test then timepart tinv  tnonct to today tol tooldef totper transformout translate trantab tranwrd trigamma trim trimn trunc truncover type unformatted uniform union until upcase update user usericon uss validate value var  weight when where while wincharset window work workinit workterm write wsum xsync xwait yearcutoff yes yyq  min max",["inDataStep","inProc"]),a("operator","and not ",["inDataStep","inProc"]),{startState:function(){return{inDataStep:!1,inProc:!1,inMacro:!1,nextword:!1,continueString:null,continueComment:!1}},token:function(a,c){return a.eatSpace()?null:b(a,c)},blockCommentStart:"/*",blockCommentEnd:"*/"}})),a.defineMIME("text/x-sas","sas")}));editors/codemirror/mode/sas/sas.js000064400000036101152177723720013236 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE


// SAS mode copyright (c) 2016 Jared Dean, SAS Institute
// Created by Jared Dean

// TODO
// indent and de-indent
// identify macro variables


//Definitions
//  comment -- text within * ; or /* */
//  keyword -- SAS language variable
//  variable -- macro variables starts with '&' or variable formats
//  variable-2 -- DATA Step, proc, or macro names
//  string -- text within ' ' or " "
//  operator -- numeric operator + / - * ** le eq ge ... and so on
//  builtin -- proc %macro data run mend
//  atom
//  def

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("sas", function () {
    var words = {};
    var isDoubleOperatorSym = {
      eq: 'operator',
      lt: 'operator',
      le: 'operator',
      gt: 'operator',
      ge: 'operator',
      "in": 'operator',
      ne: 'operator',
      or: 'operator'
    };
    var isDoubleOperatorChar = /(<=|>=|!=|<>)/;
    var isSingleOperatorChar = /[=\(:\),{}.*<>+\-\/^\[\]]/;

    // Takes a string of words separated by spaces and adds them as
    // keys with the value of the first argument 'style'
    function define(style, string, context) {
      if (context) {
        var split = string.split(' ');
        for (var i = 0; i < split.length; i++) {
          words[split[i]] = {style: style, state: context};
        }
      }
    }
    //datastep
    define('def', 'stack pgm view source debug nesting nolist', ['inDataStep']);
    define('def', 'if while until for do do; end end; then else cancel', ['inDataStep']);
    define('def', 'label format _n_ _error_', ['inDataStep']);
    define('def', 'ALTER BUFNO BUFSIZE CNTLLEV COMPRESS DLDMGACTION ENCRYPT ENCRYPTKEY EXTENDOBSCOUNTER GENMAX GENNUM INDEX LABEL OBSBUF OUTREP PW PWREQ READ REPEMPTY REPLACE REUSE ROLE SORTEDBY SPILL TOBSNO TYPE WRITE FILECLOSE FIRSTOBS IN OBS POINTOBS WHERE WHEREUP IDXNAME IDXWHERE DROP KEEP RENAME', ['inDataStep']);
    define('def', 'filevar finfo finv fipname fipnamel fipstate first firstobs floor', ['inDataStep']);
    define('def', 'varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vnferr vtype vtypex weekday', ['inDataStep']);
    define('def', 'zipfips zipname zipnamel zipstate', ['inDataStep']);
    define('def', 'put putc putn', ['inDataStep']);
    define('builtin', 'data run', ['inDataStep']);


    //proc
    define('def', 'data', ['inProc']);

    // flow control for macros
    define('def', '%if %end %end; %else %else; %do %do; %then', ['inMacro']);

    //everywhere
    define('builtin', 'proc run; quit; libname filename %macro %mend option options', ['ALL']);

    define('def', 'footnote title libname ods', ['ALL']);
    define('def', '%let %put %global %sysfunc %eval ', ['ALL']);
    // automatic macro variables http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a003167023.htm
    define('variable', '&sysbuffr &syscc &syscharwidth &syscmd &sysdate &sysdate9 &sysday &sysdevic &sysdmg &sysdsn &sysencoding &sysenv &syserr &syserrortext &sysfilrc &syshostname &sysindex &sysinfo &sysjobid &syslast &syslckrc &syslibrc &syslogapplname &sysmacroname &sysmenv &sysmsg &sysncpu &sysodspath &sysparm &syspbuff &sysprocessid &sysprocessname &sysprocname &sysrc &sysscp &sysscpl &sysscpl &syssite &sysstartid &sysstartname &systcpiphostname &systime &sysuserid &sysver &sysvlong &sysvlong4 &syswarningtext', ['ALL']);

    //footnote[1-9]? title[1-9]?

    //options statement
    define('def', 'source2 nosource2 page pageno pagesize', ['ALL']);

    //proc and datastep
    define('def', '_all_ _character_ _cmd_ _freq_ _i_ _infile_ _last_ _msg_ _null_ _numeric_ _temporary_ _type_ abort abs addr adjrsq airy alpha alter altlog altprint and arcos array arsin as atan attrc attrib attrn authserver autoexec awscontrol awsdef awsmenu awsmenumerge awstitle backward band base betainv between blocksize blshift bnot bor brshift bufno bufsize bxor by byerr byline byte calculated call cards cards4 catcache cbufno cdf ceil center cexist change chisq cinv class cleanup close cnonct cntllev coalesce codegen col collate collin column comamid comaux1 comaux2 comdef compbl compound compress config continue convert cos cosh cpuid create cross crosstab css curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datalines datalines4 datejul datepart datetime day dbcslang dbcstype dclose ddm delete delimiter depdb depdbsl depsl depsyd deptab dequote descending descript design= device dflang dhms dif digamma dim dinfo display distinct dkricond dkrocond dlm dnum do dopen doptname doptnum dread drop dropnote dsname dsnferr echo else emaildlg emailid emailpw emailserver emailsys encrypt end endsas engine eof eov erf erfc error errorcheck errors exist exp fappend fclose fcol fdelete feedback fetch fetchobs fexist fget file fileclose fileexist filefmt filename fileref  fmterr fmtsearch fnonct fnote font fontalias  fopen foptname foptnum force formatted formchar formdelim formdlim forward fpoint fpos fput fread frewind frlen from fsep fuzz fwrite gaminv gamma getoption getvarc getvarn go goto group gwindow hbar hbound helpenv helploc hms honorappearance hosthelp hostprint hour hpct html hvar ibessel ibr id if index indexc indexw initcmd initstmt inner input inputc inputn inr insert int intck intnx into intrr invaliddata irr is jbessel join juldate keep kentb kurtosis label lag last lbound leave left length levels lgamma lib  library libref line linesize link list log log10 log2 logpdf logpmf logsdf lostcard lowcase lrecl ls macro macrogen maps mautosource max maxdec maxr mdy mean measures median memtype merge merror min minute missing missover mlogic mod mode model modify month mopen mort mprint mrecall msglevel msymtabmax mvarsize myy n nest netpv new news nmiss no nobatch nobs nocaps nocardimage nocenter nocharcode nocmdmac nocol nocum nodate nodbcs nodetails nodmr nodms nodmsbatch nodup nodupkey noduplicates noechoauto noequals noerrorabend noexitwindows nofullstimer noicon noimplmac noint nolist noloadlist nomiss nomlogic nomprint nomrecall nomsgcase nomstored nomultenvappl nonotes nonumber noobs noovp nopad nopercent noprint noprintinit normal norow norsasuser nosetinit  nosplash nosymbolgen note notes notitle notitles notsorted noverbose noxsync noxwait npv null number numkeys nummousekeys nway obs  on open     order ordinal otherwise out outer outp= output over ovp p(1 5 10 25 50 75 90 95 99) pad pad2  paired parm parmcards path pathdll pathname pdf peek peekc pfkey pmf point poisson poke position printer probbeta probbnml probchi probf probgam probhypr probit probnegb probnorm probsig probt procleave prt ps  pw pwreq qtr quote r ranbin rancau ranexp rangam range ranks rannor ranpoi rantbl rantri ranuni read recfm register regr remote remove rename repeat replace resolve retain return reuse reverse rewind right round rsquare rtf rtrace rtraceloc s s2 samploc sasautos sascontrol sasfrscr sasmsg sasmstore sasscript sasuser saving scan sdf second select selection separated seq serror set setcomm setot sign simple sin sinh siteinfo skewness skip sle sls sortedby sortpgm sortseq sortsize soundex  spedis splashlocation split spool sqrt start std stderr stdin stfips stimer stname stnamel stop stopover subgroup subpopn substr sum sumwgt symbol symbolgen symget symput sysget sysin sysleave sysmsg sysparm sysprint sysprintfont sysprod sysrc system t table tables tan tanh tapeclose tbufsize terminal test then timepart tinv  tnonct to today tol tooldef totper transformout translate trantab tranwrd trigamma trim trimn trunc truncover type unformatted uniform union until upcase update user usericon uss validate value var  weight when where while wincharset window work workinit workterm write wsum xsync xwait yearcutoff yes yyq  min max', ['inDataStep', 'inProc']);
    define('operator', 'and not ', ['inDataStep', 'inProc']);

    // Main function
    function tokenize(stream, state) {
      // Finally advance the stream
      var ch = stream.next();

      // BLOCKCOMMENT
      if (ch === '/' && stream.eat('*')) {
        state.continueComment = true;
        return "comment";
      } else if (state.continueComment === true) { // in comment block
        //comment ends at the beginning of the line
        if (ch === '*' && stream.peek() === '/') {
          stream.next();
          state.continueComment = false;
        } else if (stream.skipTo('*')) { //comment is potentially later in line
          stream.skipTo('*');
          stream.next();
          if (stream.eat('/'))
            state.continueComment = false;
        } else {
          stream.skipToEnd();
        }
        return "comment";
      }

      if (ch == "*" && stream.column() == stream.indentation()) {
        stream.skipToEnd()
        return "comment"
      }

      // DoubleOperator match
      var doubleOperator = ch + stream.peek();

      if ((ch === '"' || ch === "'") && !state.continueString) {
        state.continueString = ch
        return "string"
      } else if (state.continueString) {
        if (state.continueString == ch) {
          state.continueString = null;
        } else if (stream.skipTo(state.continueString)) {
          // quote found on this line
          stream.next();
          state.continueString = null;
        } else {
          stream.skipToEnd();
        }
        return "string";
      } else if (state.continueString !== null && stream.eol()) {
        stream.skipTo(state.continueString) || stream.skipToEnd();
        return "string";
      } else if (/[\d\.]/.test(ch)) { //find numbers
        if (ch === ".")
          stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/);
        else if (ch === "0")
          stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);
        else
          stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/);
        return "number";
      } else if (isDoubleOperatorChar.test(ch + stream.peek())) { // TWO SYMBOL TOKENS
        stream.next();
        return "operator";
      } else if (isDoubleOperatorSym.hasOwnProperty(doubleOperator)) {
        stream.next();
        if (stream.peek() === ' ')
          return isDoubleOperatorSym[doubleOperator.toLowerCase()];
      } else if (isSingleOperatorChar.test(ch)) { // SINGLE SYMBOL TOKENS
        return "operator";
      }

      // Matches one whole word -- even if the word is a character
      var word;
      if (stream.match(/[%&;\w]+/, false) != null) {
        word = ch + stream.match(/[%&;\w]+/, true);
        if (/&/.test(word)) return 'variable'
      } else {
        word = ch;
      }
      // the word after DATA PROC or MACRO
      if (state.nextword) {
        stream.match(/[\w]+/);
        // match memname.libname
        if (stream.peek() === '.') stream.skipTo(' ');
        state.nextword = false;
        return 'variable-2';
      }

      word = word.toLowerCase()
      // Are we in a DATA Step?
      if (state.inDataStep) {
        if (word === 'run;' || stream.match(/run\s;/)) {
          state.inDataStep = false;
          return 'builtin';
        }
        // variable formats
        if ((word) && stream.next() === '.') {
          //either a format or libname.memname
          if (/\w/.test(stream.peek())) return 'variable-2';
          else return 'variable';
        }
        // do we have a DATA Step keyword
        if (word && words.hasOwnProperty(word) &&
            (words[word].state.indexOf("inDataStep") !== -1 ||
             words[word].state.indexOf("ALL") !== -1)) {
          //backup to the start of the word
          if (stream.start < stream.pos)
            stream.backUp(stream.pos - stream.start);
          //advance the length of the word and return
          for (var i = 0; i < word.length; ++i) stream.next();
          return words[word].style;
        }
      }
      // Are we in an Proc statement?
      if (state.inProc) {
        if (word === 'run;' || word === 'quit;') {
          state.inProc = false;
          return 'builtin';
        }
        // do we have a proc keyword
        if (word && words.hasOwnProperty(word) &&
            (words[word].state.indexOf("inProc") !== -1 ||
             words[word].state.indexOf("ALL") !== -1)) {
          stream.match(/[\w]+/);
          return words[word].style;
        }
      }
      // Are we in a Macro statement?
      if (state.inMacro) {
        if (word === '%mend') {
          if (stream.peek() === ';') stream.next();
          state.inMacro = false;
          return 'builtin';
        }
        if (word && words.hasOwnProperty(word) &&
            (words[word].state.indexOf("inMacro") !== -1 ||
             words[word].state.indexOf("ALL") !== -1)) {
          stream.match(/[\w]+/);
          return words[word].style;
        }

        return 'atom';
      }
      // Do we have Keywords specific words?
      if (word && words.hasOwnProperty(word)) {
        // Negates the initial next()
        stream.backUp(1);
        // Actually move the stream
        stream.match(/[\w]+/);
        if (word === 'data' && /=/.test(stream.peek()) === false) {
          state.inDataStep = true;
          state.nextword = true;
          return 'builtin';
        }
        if (word === 'proc') {
          state.inProc = true;
          state.nextword = true;
          return 'builtin';
        }
        if (word === '%macro') {
          state.inMacro = true;
          state.nextword = true;
          return 'builtin';
        }
        if (/title[1-9]/.test(word)) return 'def';

        if (word === 'footnote') {
          stream.eat(/[1-9]/);
          return 'def';
        }

        // Returns their value as state in the prior define methods
        if (state.inDataStep === true && words[word].state.indexOf("inDataStep") !== -1)
          return words[word].style;
        if (state.inProc === true && words[word].state.indexOf("inProc") !== -1)
          return words[word].style;
        if (state.inMacro === true && words[word].state.indexOf("inMacro") !== -1)
          return words[word].style;
        if (words[word].state.indexOf("ALL") !== -1)
          return words[word].style;
        return null;
      }
      // Unrecognized syntax
      return null;
    }

    return {
      startState: function () {
        return {
          inDataStep: false,
          inProc: false,
          inMacro: false,
          nextword: false,
          continueString: null,
          continueComment: false
        };
      },
      token: function (stream, state) {
        // Strip the spaces, but regex will account for them either way
        if (stream.eatSpace()) return null;
        // Go through the main process
        return tokenize(stream, state);
      },

      blockCommentStart: "/*",
      blockCommentEnd: "*/"
    };

  });

  CodeMirror.defineMIME("text/x-sas", "sas");
});
editors/codemirror/mode/pascal/pascal.js000064400000007457152177723720014404 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("pascal", function() {
  function words(str) {
    var obj = {}, words = str.split(" ");
    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
    return obj;
  }
  var keywords = words(
    "absolute and array asm begin case const constructor destructor div do " +
    "downto else end file for function goto if implementation in inherited " +
    "inline interface label mod nil not object of operator or packed procedure " +
    "program record reintroduce repeat self set shl shr string then to type " +
    "unit until uses var while with xor as class dispinterface except exports " +
    "finalization finally initialization inline is library on out packed " +
    "property raise resourcestring threadvar try absolute abstract alias " +
    "assembler bitpacked break cdecl continue cppdecl cvar default deprecated " +
    "dynamic enumerator experimental export external far far16 forward generic " +
    "helper implements index interrupt iocheck local message name near " +
    "nodefault noreturn nostackframe oldfpccall otherwise overload override " +
    "pascal platform private protected public published read register " +
    "reintroduce result safecall saveregisters softfloat specialize static " +
    "stdcall stored strict unaligned unimplemented varargs virtual write");
  var atoms = {"null": true};

  var isOperatorChar = /[+\-*&%=<>!?|\/]/;

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == "#" && state.startOfLine) {
      stream.skipToEnd();
      return "meta";
    }
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    if (ch == "(" && stream.eat("*")) {
      state.tokenize = tokenComment;
      return tokenComment(stream, state);
    }
    if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      return null;
    }
    if (/\d/.test(ch)) {
      stream.eatWhile(/[\w\.]/);
      return "number";
    }
    if (ch == "/") {
      if (stream.eat("/")) {
        stream.skipToEnd();
        return "comment";
      }
    }
    if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return "operator";
    }
    stream.eatWhile(/[\w\$_]/);
    var cur = stream.current();
    if (keywords.propertyIsEnumerable(cur)) return "keyword";
    if (atoms.propertyIsEnumerable(cur)) return "atom";
    return "variable";
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {end = true; break;}
        escaped = !escaped && next == "\\";
      }
      if (end || !escaped) state.tokenize = null;
      return "string";
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == ")" && maybeEnd) {
        state.tokenize = null;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  // Interface

  return {
    startState: function() {
      return {tokenize: null};
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      var style = (state.tokenize || tokenBase)(stream, state);
      if (style == "comment" || style == "meta") return style;
      return style;
    },

    electricChars: "{}"
  };
});

CodeMirror.defineMIME("text/x-pascal", "pascal");

});
editors/codemirror/mode/pascal/pascal.min.js000064400000004461152177723720015156 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("pascal",(function(){function a(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function b(a,b){var h=a.next();if("#"==h&&b.startOfLine)return a.skipToEnd(),"meta";if('"'==h||"'"==h)return b.tokenize=c(h),b.tokenize(a,b);if("("==h&&a.eat("*"))return b.tokenize=d,d(a,b);if(/[\[\]{}\(\),;\:\.]/.test(h))return null;if(/\d/.test(h))return a.eatWhile(/[\w\.]/),"number";if("/"==h&&a.eat("/"))return a.skipToEnd(),"comment";if(g.test(h))return a.eatWhile(g),"operator";a.eatWhile(/[\w\$_]/);var i=a.current();return e.propertyIsEnumerable(i)?"keyword":f.propertyIsEnumerable(i)?"atom":"variable"}function c(a){return function(b,c){for(var d,e=!1,f=!1;null!=(d=b.next());){if(d==a&&!e){f=!0;break}e=!e&&"\\"==d}return!f&&e||(c.tokenize=null),"string"}}function d(a,b){for(var c,d=!1;c=a.next();){if(")"==c&&d){b.tokenize=null;break}d="*"==c}return"comment"}var e=a("absolute and array asm begin case const constructor destructor div do downto else end file for function goto if implementation in inherited inline interface label mod nil not object of operator or packed procedure program record reintroduce repeat self set shl shr string then to type unit until uses var while with xor as class dispinterface except exports finalization finally initialization inline is library on out packed property raise resourcestring threadvar try absolute abstract alias assembler bitpacked break cdecl continue cppdecl cvar default deprecated dynamic enumerator experimental export external far far16 forward generic helper implements index interrupt iocheck local message name near nodefault noreturn nostackframe oldfpccall otherwise overload override pascal platform private protected public published read register reintroduce result safecall saveregisters softfloat specialize static stdcall stored strict unaligned unimplemented varargs virtual write"),f={null:!0},g=/[+\-*&%=<>!?|\/]/;return{startState:function(){return{tokenize:null}},token:function(a,c){if(a.eatSpace())return null;var d=(c.tokenize||b)(a,c);return"comment"==d||"meta"==d?d:d},electricChars:"{}"}})),a.defineMIME("text/x-pascal","pascal")}));editors/codemirror/mode/ebnf/ebnf.min.js000064400000005103152177723720014266 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("ebnf",(function(b){var c={slash:0,parenthesis:1},d={comment:0,_string:1,characterClass:2},e=null;return b.bracesMode&&(e=a.getMode(b,b.bracesMode)),{startState:function(){return{stringType:null,commentType:null,braced:0,lhs:!0,localState:null,stack:[],inDefinition:!1}},token:function(b,f){if(b){switch(0===f.stack.length&&('"'==b.peek()||"'"==b.peek()?(f.stringType=b.peek(),b.next(),f.stack.unshift(d._string)):b.match(/^\/\*/)?(f.stack.unshift(d.comment),f.commentType=c.slash):b.match(/^\(\*/)&&(f.stack.unshift(d.comment),f.commentType=c.parenthesis)),f.stack[0]){case d._string:for(;f.stack[0]===d._string&&!b.eol();)b.peek()===f.stringType?(b.next(),f.stack.shift()):"\\"===b.peek()?(b.next(),b.next()):b.match(/^.[^\\\"\']*/);return f.lhs?"property string":"string";case d.comment:for(;f.stack[0]===d.comment&&!b.eol();)f.commentType===c.slash&&b.match(/\*\//)?(f.stack.shift(),f.commentType=null):f.commentType===c.parenthesis&&b.match(/\*\)/)?(f.stack.shift(),f.commentType=null):b.match(/^.[^\*]*/);return"comment";case d.characterClass:for(;f.stack[0]===d.characterClass&&!b.eol();)b.match(/^[^\]\\]+/)||b.match(/^\\./)||f.stack.shift();return"operator"}var g=b.peek();if(null!==e&&(f.braced||"{"===g)){null===f.localState&&(f.localState=a.startState(e));var h=e.token(b,f.localState),i=b.current();if(!h)for(var j=0;j<i.length;j++)"{"===i[j]?(0===f.braced&&(h="matchingbracket"),f.braced++):"}"===i[j]&&(f.braced--,0===f.braced&&(h="matchingbracket"));return h}switch(g){case"[":return b.next(),f.stack.unshift(d.characterClass),"bracket";case":":case"|":case";":return b.next(),"operator";case"%":if(b.match("%%"))return"header";if(b.match(/[%][A-Za-z]+/))return"keyword";if(b.match(/[%][}]/))return"matchingbracket";break;case"/":if(b.match(/[\/][A-Za-z]+/))return"keyword";case"\\":if(b.match(/[\][a-z]+/))return"string-2";case".":if(b.match("."))return"atom";case"*":case"-":case"+":case"^":if(b.match(g))return"atom";case"$":if(b.match("$$"))return"builtin";if(b.match(/[$][0-9]+/))return"variable-3";case"<":if(b.match(/<<[a-zA-Z_]+>>/))return"builtin"}return b.match(/^\/\//)?(b.skipToEnd(),"comment"):b.match(/return/)?"operator":b.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)?b.match(/(?=[\(.])/)?"variable":b.match(/(?=[\s\n]*[:=])/)?"def":"variable-2":["[","]","(",")"].indexOf(b.peek())!=-1?(b.next(),"bracket"):(b.eatSpace()||b.next(),null)}}}})),a.defineMIME("text/x-ebnf","ebnf")}));editors/codemirror/mode/ebnf/ebnf.js000064400000013706152177723720013514 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("ebnf", function (config) {
    var commentType = {slash: 0, parenthesis: 1};
    var stateType = {comment: 0, _string: 1, characterClass: 2};
    var bracesMode = null;

    if (config.bracesMode)
      bracesMode = CodeMirror.getMode(config, config.bracesMode);

    return {
      startState: function () {
        return {
          stringType: null,
          commentType: null,
          braced: 0,
          lhs: true,
          localState: null,
          stack: [],
          inDefinition: false
        };
      },
      token: function (stream, state) {
        if (!stream) return;

        //check for state changes
        if (state.stack.length === 0) {
          //strings
          if ((stream.peek() == '"') || (stream.peek() == "'")) {
            state.stringType = stream.peek();
            stream.next(); // Skip quote
            state.stack.unshift(stateType._string);
          } else if (stream.match(/^\/\*/)) { //comments starting with /*
            state.stack.unshift(stateType.comment);
            state.commentType = commentType.slash;
          } else if (stream.match(/^\(\*/)) { //comments starting with (*
            state.stack.unshift(stateType.comment);
            state.commentType = commentType.parenthesis;
          }
        }

        //return state
        //stack has
        switch (state.stack[0]) {
        case stateType._string:
          while (state.stack[0] === stateType._string && !stream.eol()) {
            if (stream.peek() === state.stringType) {
              stream.next(); // Skip quote
              state.stack.shift(); // Clear flag
            } else if (stream.peek() === "\\") {
              stream.next();
              stream.next();
            } else {
              stream.match(/^.[^\\\"\']*/);
            }
          }
          return state.lhs ? "property string" : "string"; // Token style

        case stateType.comment:
          while (state.stack[0] === stateType.comment && !stream.eol()) {
            if (state.commentType === commentType.slash && stream.match(/\*\//)) {
              state.stack.shift(); // Clear flag
              state.commentType = null;
            } else if (state.commentType === commentType.parenthesis && stream.match(/\*\)/)) {
              state.stack.shift(); // Clear flag
              state.commentType = null;
            } else {
              stream.match(/^.[^\*]*/);
            }
          }
          return "comment";

        case stateType.characterClass:
          while (state.stack[0] === stateType.characterClass && !stream.eol()) {
            if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
              state.stack.shift();
            }
          }
          return "operator";
        }

        var peek = stream.peek();

        if (bracesMode !== null && (state.braced || peek === "{")) {
          if (state.localState === null)
            state.localState = CodeMirror.startState(bracesMode);

          var token = bracesMode.token(stream, state.localState),
          text = stream.current();

          if (!token) {
            for (var i = 0; i < text.length; i++) {
              if (text[i] === "{") {
                if (state.braced === 0) {
                  token = "matchingbracket";
                }
                state.braced++;
              } else if (text[i] === "}") {
                state.braced--;
                if (state.braced === 0) {
                  token = "matchingbracket";
                }
              }
            }
          }
          return token;
        }

        //no stack
        switch (peek) {
        case "[":
          stream.next();
          state.stack.unshift(stateType.characterClass);
          return "bracket";
        case ":":
        case "|":
        case ";":
          stream.next();
          return "operator";
        case "%":
          if (stream.match("%%")) {
            return "header";
          } else if (stream.match(/[%][A-Za-z]+/)) {
            return "keyword";
          } else if (stream.match(/[%][}]/)) {
            return "matchingbracket";
          }
          break;
        case "/":
          if (stream.match(/[\/][A-Za-z]+/)) {
          return "keyword";
        }
        case "\\":
          if (stream.match(/[\][a-z]+/)) {
            return "string-2";
          }
        case ".":
          if (stream.match(".")) {
            return "atom";
          }
        case "*":
        case "-":
        case "+":
        case "^":
          if (stream.match(peek)) {
            return "atom";
          }
        case "$":
          if (stream.match("$$")) {
            return "builtin";
          } else if (stream.match(/[$][0-9]+/)) {
            return "variable-3";
          }
        case "<":
          if (stream.match(/<<[a-zA-Z_]+>>/)) {
            return "builtin";
          }
        }

        if (stream.match(/^\/\//)) {
          stream.skipToEnd();
          return "comment";
        } else if (stream.match(/return/)) {
          return "operator";
        } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {
          if (stream.match(/(?=[\(.])/)) {
            return "variable";
          } else if (stream.match(/(?=[\s\n]*[:=])/)) {
            return "def";
          }
          return "variable-2";
        } else if (["[", "]", "(", ")"].indexOf(stream.peek()) != -1) {
          stream.next();
          return "bracket";
        } else if (!stream.eatSpace()) {
          stream.next();
        }
        return null;
      }
    };
  });

  CodeMirror.defineMIME("text/x-ebnf", "ebnf");
});
editors/codemirror/mode/webidl/webidl.js000064400000013231152177723720014375 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

function wordRegexp(words) {
  return new RegExp("^((" + words.join(")|(") + "))\\b");
};

var builtinArray = [
  "Clamp",
  "Constructor",
  "EnforceRange",
  "Exposed",
  "ImplicitThis",
  "Global", "PrimaryGlobal",
  "LegacyArrayClass",
  "LegacyUnenumerableNamedProperties",
  "LenientThis",
  "NamedConstructor",
  "NewObject",
  "NoInterfaceObject",
  "OverrideBuiltins",
  "PutForwards",
  "Replaceable",
  "SameObject",
  "TreatNonObjectAsNull",
  "TreatNullAs",
    "EmptyString",
  "Unforgeable",
  "Unscopeable"
];
var builtins = wordRegexp(builtinArray);

var typeArray = [
  "unsigned", "short", "long",                  // UnsignedIntegerType
  "unrestricted", "float", "double",            // UnrestrictedFloatType
  "boolean", "byte", "octet",                   // Rest of PrimitiveType
  "Promise",                                    // PromiseType
  "ArrayBuffer", "DataView", "Int8Array", "Int16Array", "Int32Array",
  "Uint8Array", "Uint16Array", "Uint32Array", "Uint8ClampedArray",
  "Float32Array", "Float64Array",               // BufferRelatedType
  "ByteString", "DOMString", "USVString", "sequence", "object", "RegExp",
  "Error", "DOMException", "FrozenArray",       // Rest of NonAnyType
  "any",                                        // Rest of SingleType
  "void"                                        // Rest of ReturnType
];
var types = wordRegexp(typeArray);

var keywordArray = [
  "attribute", "callback", "const", "deleter", "dictionary", "enum", "getter",
  "implements", "inherit", "interface", "iterable", "legacycaller", "maplike",
  "partial", "required", "serializer", "setlike", "setter", "static",
  "stringifier", "typedef",                     // ArgumentNameKeyword except
                                                // "unrestricted"
  "optional", "readonly", "or"
];
var keywords = wordRegexp(keywordArray);

var atomArray = [
  "true", "false",                              // BooleanLiteral
  "Infinity", "NaN",                            // FloatLiteral
  "null"                                        // Rest of ConstValue
];
var atoms = wordRegexp(atomArray);

CodeMirror.registerHelper("hintWords", "webidl",
    builtinArray.concat(typeArray).concat(keywordArray).concat(atomArray));

var startDefArray = ["callback", "dictionary", "enum", "interface"];
var startDefs = wordRegexp(startDefArray);

var endDefArray = ["typedef"];
var endDefs = wordRegexp(endDefArray);

var singleOperators = /^[:<=>?]/;
var integers = /^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/;
var floats = /^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/;
var identifiers = /^_?[A-Za-z][0-9A-Z_a-z-]*/;
var identifiersEnd = /^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/;
var strings = /^"[^"]*"/;
var multilineComments = /^\/\*.*?\*\//;
var multilineCommentsStart = /^\/\*.*/;
var multilineCommentsEnd = /^.*?\*\//;

function readToken(stream, state) {
  // whitespace
  if (stream.eatSpace()) return null;

  // comment
  if (state.inComment) {
    if (stream.match(multilineCommentsEnd)) {
      state.inComment = false;
      return "comment";
    }
    stream.skipToEnd();
    return "comment";
  }
  if (stream.match("//")) {
    stream.skipToEnd();
    return "comment";
  }
  if (stream.match(multilineComments)) return "comment";
  if (stream.match(multilineCommentsStart)) {
    state.inComment = true;
    return "comment";
  }

  // integer and float
  if (stream.match(/^-?[0-9\.]/, false)) {
    if (stream.match(integers) || stream.match(floats)) return "number";
  }

  // string
  if (stream.match(strings)) return "string";

  // identifier
  if (state.startDef && stream.match(identifiers)) return "def";

  if (state.endDef && stream.match(identifiersEnd)) {
    state.endDef = false;
    return "def";
  }

  if (stream.match(keywords)) return "keyword";

  if (stream.match(types)) {
    var lastToken = state.lastToken;
    var nextToken = (stream.match(/^\s*(.+?)\b/, false) || [])[1];

    if (lastToken === ":" || lastToken === "implements" ||
        nextToken === "implements" || nextToken === "=") {
      // Used as identifier
      return "builtin";
    } else {
      // Used as type
      return "variable-3";
    }
  }

  if (stream.match(builtins)) return "builtin";
  if (stream.match(atoms)) return "atom";
  if (stream.match(identifiers)) return "variable";

  // other
  if (stream.match(singleOperators)) return "operator";

  // unrecognized
  stream.next();
  return null;
};

CodeMirror.defineMode("webidl", function() {
  return {
    startState: function() {
      return {
        // Is in multiline comment
        inComment: false,
        // Last non-whitespace, matched token
        lastToken: "",
        // Next token is a definition
        startDef: false,
        // Last token of the statement is a definition
        endDef: false
      };
    },
    token: function(stream, state) {
      var style = readToken(stream, state);

      if (style) {
        var cur = stream.current();
        state.lastToken = cur;
        if (style === "keyword") {
          state.startDef = startDefs.test(cur);
          state.endDef = state.endDef || endDefs.test(cur);
        } else {
          state.startDef = false;
        }
      }

      return style;
    }
  };
});

CodeMirror.defineMIME("text/x-webidl", "webidl");
});
editors/codemirror/mode/webidl/webidl.min.js000064400000005351152177723720015163 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}function c(a,b){if(a.eatSpace())return null;if(b.inComment)return a.match(x)?(b.inComment=!1,"comment"):(a.skipToEnd(),"comment");if(a.match("//"))return a.skipToEnd(),"comment";if(a.match(v))return"comment";if(a.match(w))return b.inComment=!0,"comment";if(a.match(/^-?[0-9\.]/,!1)&&(a.match(q)||a.match(r)))return"number";if(a.match(u))return"string";if(b.startDef&&a.match(s))return"def";if(b.endDef&&a.match(t))return b.endDef=!1,"def";if(a.match(i))return"keyword";if(a.match(g)){var c=b.lastToken,d=(a.match(/^\s*(.+?)\b/,!1)||[])[1];return":"===c||"implements"===c||"implements"===d||"="===d?"builtin":"variable-3"}return a.match(e)?"builtin":a.match(k)?"atom":a.match(s)?"variable":a.match(p)?"operator":(a.next(),null)}var d=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"],e=b(d),f=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"],g=b(f),h=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"],i=b(h),j=["true","false","Infinity","NaN","null"],k=b(j);a.registerHelper("hintWords","webidl",d.concat(f).concat(h).concat(j));var l=["callback","dictionary","enum","interface"],m=b(l),n=["typedef"],o=b(n),p=/^[:<=>?]/,q=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,r=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,s=/^_?[A-Za-z][0-9A-Z_a-z-]*/,t=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,u=/^"[^"]*"/,v=/^\/\*.*?\*\//,w=/^\/\*.*/,x=/^.*?\*\//;a.defineMode("webidl",(function(){return{startState:function(){return{inComment:!1,lastToken:"",startDef:!1,endDef:!1}},token:function(a,b){var d=c(a,b);if(d){var e=a.current();b.lastToken=e,"keyword"===d?(b.startDef=m.test(e),b.endDef=b.endDef||o.test(e)):b.startDef=!1}return d}}})),a.defineMIME("text/x-webidl","webidl")}));editors/codemirror/mode/gfm/gfm.js000064400000011760152177723720013210 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../markdown/markdown"), require("../../addon/mode/overlay"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../markdown/markdown", "../../addon/mode/overlay"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

var urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i

CodeMirror.defineMode("gfm", function(config, modeConfig) {
  var codeDepth = 0;
  function blankLine(state) {
    state.code = false;
    return null;
  }
  var gfmOverlay = {
    startState: function() {
      return {
        code: false,
        codeBlock: false,
        ateSpace: false
      };
    },
    copyState: function(s) {
      return {
        code: s.code,
        codeBlock: s.codeBlock,
        ateSpace: s.ateSpace
      };
    },
    token: function(stream, state) {
      state.combineTokens = null;

      // Hack to prevent formatting override inside code blocks (block and inline)
      if (state.codeBlock) {
        if (stream.match(/^```+/)) {
          state.codeBlock = false;
          return null;
        }
        stream.skipToEnd();
        return null;
      }
      if (stream.sol()) {
        state.code = false;
      }
      if (stream.sol() && stream.match(/^```+/)) {
        stream.skipToEnd();
        state.codeBlock = true;
        return null;
      }
      // If this block is changed, it may need to be updated in Markdown mode
      if (stream.peek() === '`') {
        stream.next();
        var before = stream.pos;
        stream.eatWhile('`');
        var difference = 1 + stream.pos - before;
        if (!state.code) {
          codeDepth = difference;
          state.code = true;
        } else {
          if (difference === codeDepth) { // Must be exact
            state.code = false;
          }
        }
        return null;
      } else if (state.code) {
        stream.next();
        return null;
      }
      // Check if space. If so, links can be formatted later on
      if (stream.eatSpace()) {
        state.ateSpace = true;
        return null;
      }
      if (stream.sol() || state.ateSpace) {
        state.ateSpace = false;
        if (modeConfig.gitHubSpice !== false) {
          if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/)) {
            // User/Project@SHA
            // User@SHA
            // SHA
            state.combineTokens = true;
            return "link";
          } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) {
            // User/Project#Num
            // User#Num
            // #Num
            state.combineTokens = true;
            return "link";
          }
        }
      }
      if (stream.match(urlRE) &&
          stream.string.slice(stream.start - 2, stream.start) != "](" &&
          (stream.start == 0 || /\W/.test(stream.string.charAt(stream.start - 1)))) {
        // URLs
        // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls
        // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine
        // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL
        state.combineTokens = true;
        return "link";
      }
      stream.next();
      return null;
    },
    blankLine: blankLine
  };

  var markdownConfig = {
    taskLists: true,
    strikethrough: true,
    emoji: true
  };
  for (var attr in modeConfig) {
    markdownConfig[attr] = modeConfig[attr];
  }
  markdownConfig.name = "markdown";
  return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);

}, "markdown");

  CodeMirror.defineMIME("text/x-gfm", "gfm");
});
editors/codemirror/mode/gfm/gfm.min.js000064400000005306152177723720013771 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../markdown/markdown"),require("../../addon/mode/overlay")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../markdown/markdown","../../addon/mode/overlay"],a):a(CodeMirror)})((function(a){"use strict";var b=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;a.defineMode("gfm",(function(c,d){function e(a){return a.code=!1,null}var f=0,g={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(a){return{code:a.code,codeBlock:a.codeBlock,ateSpace:a.ateSpace}},token:function(a,c){if(c.combineTokens=null,c.codeBlock)return a.match(/^```+/)?(c.codeBlock=!1,null):(a.skipToEnd(),null);if(a.sol()&&(c.code=!1),a.sol()&&a.match(/^```+/))return a.skipToEnd(),c.codeBlock=!0,null;if("`"===a.peek()){a.next();var e=a.pos;a.eatWhile("`");var g=1+a.pos-e;return c.code?g===f&&(c.code=!1):(f=g,c.code=!0),null}if(c.code)return a.next(),null;if(a.eatSpace())return c.ateSpace=!0,null;if((a.sol()||c.ateSpace)&&(c.ateSpace=!1,d.gitHubSpice!==!1)){if(a.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return c.combineTokens=!0,"link";if(a.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return c.combineTokens=!0,"link"}return a.match(b)&&"]("!=a.string.slice(a.start-2,a.start)&&(0==a.start||/\W/.test(a.string.charAt(a.start-1)))?(c.combineTokens=!0,"link"):(a.next(),null)},blankLine:e},h={taskLists:!0,strikethrough:!0,emoji:!0};for(var i in d)h[i]=d[i];return h.name="markdown",a.overlayMode(a.getMode(c,h),g)}),"markdown"),a.defineMIME("text/x-gfm","gfm")}));editors/codemirror/mode/puppet/puppet.min.js000064400000005341152177723720015300 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("puppet",(function(){function a(a,b){for(var c=b.split(" "),e=0;e<c.length;e++)d[c[e]]=a}function b(a,b){for(var c,d,e=!1;!a.eol()&&(c=a.next())!=b.pending;){if("$"===c&&"\\"!=d&&'"'==b.pending){e=!0;break}d=c}return e&&a.backUp(1),c==b.pending?b.continueString=!1:b.continueString=!0,"string"}function c(a,c){var f=a.match(/[\w]+/,!1),g=a.match(/(\s+)?\w+\s+=>.*/,!1),h=a.match(/(\s+)?[\w:_]+(\s+)?{/,!1),i=a.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),j=a.next();if("$"===j)return a.match(e)?c.continueString?"variable-2":"variable":"error";if(c.continueString)return a.backUp(1),b(a,c);if(c.inDefinition){if(a.match(/(\s+)?[\w:_]+(\s+)?/))return"def";a.match(/\s+{/),c.inDefinition=!1}return c.inInclude?(a.match(/(\s+)?\S+(\s+)?/),c.inInclude=!1,"def"):a.match(/(\s+)?\w+\(/)?(a.backUp(1),"def"):g?(a.match(/(\s+)?\w+/),"tag"):f&&d.hasOwnProperty(f)?(a.backUp(1),a.match(/[\w]+/),a.match(/\s+\S+\s+{/,!1)&&(c.inDefinition=!0),"include"==f&&(c.inInclude=!0),d[f]):/(^|\s+)[A-Z][\w:_]+/.test(f)?(a.backUp(1),a.match(/(^|\s+)[A-Z][\w:_]+/),"def"):h?(a.match(/(\s+)?[\w:_]+/),"def"):i?(a.match(/(\s+)?[@]{1,2}/),"special"):"#"==j?(a.skipToEnd(),"comment"):"'"==j||'"'==j?(c.pending=j,b(a,c)):"{"==j||"}"==j?"bracket":"/"==j?(a.match(/.*?\//),"variable-3"):j.match(/[0-9]/)?(a.eatWhile(/[0-9]+/),"number"):"="==j?(">"==a.peek()&&a.next(),"operator"):(a.eatWhile(/[\w-]/),null)}var d={},e=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;return a("keyword","class define site node include import inherits"),a("keyword","case if else in and elsif default or"),a("atom","false true running present absent file directory undef"),a("builtin","action augeas burst chain computer cron destination dport exec file filebucket group host icmp iniface interface jump k5login limit log_level log_prefix macauthorization mailalias maillist mcx mount nagios_command nagios_contact nagios_contactgroup nagios_host nagios_hostdependency nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo nagios_servicegroup nagios_timeperiod name notify outiface package proto reject resources router schedule scheduled_task selboolean selmodule service source sport ssh_authorized_key sshkey stage state table tidy todest toports tosource user vlan yumrepo zfs zone zpool"),{startState:function(){var a={};return a.inDefinition=!1,a.inInclude=!1,a.continueString=!1,a.pending=!1,a},token:function(a,b){return a.eatSpace()?null:c(a,b)}}})),a.defineMIME("text/x-puppet","puppet")}));editors/codemirror/mode/puppet/puppet.js000064400000016621152177723720014521 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("puppet", function () {
  // Stores the words from the define method
  var words = {};
  // Taken, mostly, from the Puppet official variable standards regex
  var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;

  // Takes a string of words separated by spaces and adds them as
  // keys with the value of the first argument 'style'
  function define(style, string) {
    var split = string.split(' ');
    for (var i = 0; i < split.length; i++) {
      words[split[i]] = style;
    }
  }

  // Takes commonly known puppet types/words and classifies them to a style
  define('keyword', 'class define site node include import inherits');
  define('keyword', 'case if else in and elsif default or');
  define('atom', 'false true running present absent file directory undef');
  define('builtin', 'action augeas burst chain computer cron destination dport exec ' +
    'file filebucket group host icmp iniface interface jump k5login limit log_level ' +
    'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' +
    'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' +
    'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' +
    'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' +
    'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' +
    'resources router schedule scheduled_task selboolean selmodule service source ' +
    'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' +
    'user vlan yumrepo zfs zone zpool');

  // After finding a start of a string ('|") this function attempts to find the end;
  // If a variable is encountered along the way, we display it differently when it
  // is encapsulated in a double-quoted string.
  function tokenString(stream, state) {
    var current, prev, found_var = false;
    while (!stream.eol() && (current = stream.next()) != state.pending) {
      if (current === '$' && prev != '\\' && state.pending == '"') {
        found_var = true;
        break;
      }
      prev = current;
    }
    if (found_var) {
      stream.backUp(1);
    }
    if (current == state.pending) {
      state.continueString = false;
    } else {
      state.continueString = true;
    }
    return "string";
  }

  // Main function
  function tokenize(stream, state) {
    // Matches one whole word
    var word = stream.match(/[\w]+/, false);
    // Matches attributes (i.e. ensure => present ; 'ensure' would be matched)
    var attribute = stream.match(/(\s+)?\w+\s+=>.*/, false);
    // Matches non-builtin resource declarations
    // (i.e. "apache::vhost {" or "mycustomclasss {" would be matched)
    var resource = stream.match(/(\s+)?[\w:_]+(\s+)?{/, false);
    // Matches virtual and exported resources (i.e. @@user { ; and the like)
    var special_resource = stream.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/, false);

    // Finally advance the stream
    var ch = stream.next();

    // Have we found a variable?
    if (ch === '$') {
      if (stream.match(variable_regex)) {
        // If so, and its in a string, assign it a different color
        return state.continueString ? 'variable-2' : 'variable';
      }
      // Otherwise return an invalid variable
      return "error";
    }
    // Should we still be looking for the end of a string?
    if (state.continueString) {
      // If so, go through the loop again
      stream.backUp(1);
      return tokenString(stream, state);
    }
    // Are we in a definition (class, node, define)?
    if (state.inDefinition) {
      // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched)
      if (stream.match(/(\s+)?[\w:_]+(\s+)?/)) {
        return 'def';
      }
      // Match the rest it the next time around
      stream.match(/\s+{/);
      state.inDefinition = false;
    }
    // Are we in an 'include' statement?
    if (state.inInclude) {
      // Match and return the included class
      stream.match(/(\s+)?\S+(\s+)?/);
      state.inInclude = false;
      return 'def';
    }
    // Do we just have a function on our hands?
    // In 'ensure_resource("myclass")', 'ensure_resource' is matched
    if (stream.match(/(\s+)?\w+\(/)) {
      stream.backUp(1);
      return 'def';
    }
    // Have we matched the prior attribute regex?
    if (attribute) {
      stream.match(/(\s+)?\w+/);
      return 'tag';
    }
    // Do we have Puppet specific words?
    if (word && words.hasOwnProperty(word)) {
      // Negates the initial next()
      stream.backUp(1);
      // rs move the stream
      stream.match(/[\w]+/);
      // We want to process these words differently
      // do to the importance they have in Puppet
      if (stream.match(/\s+\S+\s+{/, false)) {
        state.inDefinition = true;
      }
      if (word == 'include') {
        state.inInclude = true;
      }
      // Returns their value as state in the prior define methods
      return words[word];
    }
    // Is there a match on a reference?
    if (/(^|\s+)[A-Z][\w:_]+/.test(word)) {
      // Negate the next()
      stream.backUp(1);
      // Match the full reference
      stream.match(/(^|\s+)[A-Z][\w:_]+/);
      return 'def';
    }
    // Have we matched the prior resource regex?
    if (resource) {
      stream.match(/(\s+)?[\w:_]+/);
      return 'def';
    }
    // Have we matched the prior special_resource regex?
    if (special_resource) {
      stream.match(/(\s+)?[@]{1,2}/);
      return 'special';
    }
    // Match all the comments. All of them.
    if (ch == "#") {
      stream.skipToEnd();
      return "comment";
    }
    // Have we found a string?
    if (ch == "'" || ch == '"') {
      // Store the type (single or double)
      state.pending = ch;
      // Perform the looping function to find the end
      return tokenString(stream, state);
    }
    // Match all the brackets
    if (ch == '{' || ch == '}') {
      return 'bracket';
    }
    // Match characters that we are going to assume
    // are trying to be regex
    if (ch == '/') {
      stream.match(/.*?\//);
      return 'variable-3';
    }
    // Match all the numbers
    if (ch.match(/[0-9]/)) {
      stream.eatWhile(/[0-9]+/);
      return 'number';
    }
    // Match the '=' and '=>' operators
    if (ch == '=') {
      if (stream.peek() == '>') {
          stream.next();
      }
      return "operator";
    }
    // Keep advancing through all the rest
    stream.eatWhile(/[\w-]/);
    // Return a blank line for everything else
    return null;
  }
  // Start it all
  return {
    startState: function () {
      var state = {};
      state.inDefinition = false;
      state.inInclude = false;
      state.continueString = false;
      state.pending = false;
      return state;
    },
    token: function (stream, state) {
      // Strip the spaces, but regex will account for them eitherway
      if (stream.eatSpace()) return null;
      // Go through the main process
      return tokenize(stream, state);
    }
  };
});

CodeMirror.defineMIME("text/x-puppet", "puppet");

});
editors/codemirror/mode/twig/twig.min.js000064400000004245152177723720014374 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/multiplex")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/multiplex"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("twig:inner",(function(){function a(a,g){var h=a.peek();if(g.incomment)return a.skipTo("#}")?(a.eatWhile(/\#|}/),g.incomment=!1):a.skipToEnd(),"comment";if(g.intag){if(g.operator){if(g.operator=!1,a.match(e))return"atom";if(a.match(f))return"number"}if(g.sign){if(g.sign=!1,a.match(e))return"atom";if(a.match(f))return"number"}if(g.instring)return h==g.instring&&(g.instring=!1),a.next(),"string";if("'"==h||'"'==h)return g.instring=h,a.next(),"string";if(a.match(g.intag+"}")||a.eat("-")&&a.match(g.intag+"}"))return g.intag=!1,"tag";if(a.match(c))return g.operator=!0,"operator";if(a.match(d))g.sign=!0;else if(a.eat(" ")||a.sol()){if(a.match(b))return"keyword";if(a.match(e))return"atom";if(a.match(f))return"number";a.sol()&&a.next()}else a.next();return"variable"}if(a.eat("{")){if(a.eat("#"))return g.incomment=!0,a.skipTo("#}")?(a.eatWhile(/\#|}/),g.incomment=!1):a.skipToEnd(),"comment";if(h=a.eat(/\{|%/))return g.intag=h,"{"==h&&(g.intag="}"),a.eat("-"),"tag"}a.next()}var b=["and","as","autoescape","endautoescape","block","do","endblock","else","elseif","extends","for","endfor","embed","endembed","filter","endfilter","flush","from","if","endif","in","is","include","import","not","or","set","spaceless","endspaceless","with","endwith","trans","endtrans","blocktrans","endblocktrans","macro","endmacro","use","verbatim","endverbatim"],c=/^[+\-*&%=<>!?|~^]/,d=/^[:\[\(\{]/,e=["true","false","null","empty","defined","divisibleby","divisible by","even","odd","iterable","sameas","same as"],f=/^(\d[+\-\*\/])?\d+(\.\d+)?/;return b=new RegExp("(("+b.join(")|(")+"))\\b"),e=new RegExp("(("+e.join(")|(")+"))\\b"),{startState:function(){return{}},token:function(b,c){return a(b,c)}}})),a.defineMode("twig",(function(b,c){var d=a.getMode(b,"twig:inner");return c&&c.base?a.multiplexingMode(a.getMode(b,c.base),{open:/\{[{#%]/,close:/[}#%]\}/,mode:d,parseDelimiters:!0}):d})),a.defineMIME("text/x-twig","twig")}));editors/codemirror/mode/twig/twig.js000064400000010726152177723720013613 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"),  require("../../addon/mode/multiplex"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/multiplex"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineMode("twig:inner", function() {
    var keywords = ["and", "as", "autoescape", "endautoescape", "block", "do", "endblock", "else", "elseif", "extends", "for", "endfor", "embed", "endembed", "filter", "endfilter", "flush", "from", "if", "endif", "in", "is", "include", "import", "not", "or", "set", "spaceless", "endspaceless", "with", "endwith", "trans", "endtrans", "blocktrans", "endblocktrans", "macro", "endmacro", "use", "verbatim", "endverbatim"],
        operator = /^[+\-*&%=<>!?|~^]/,
        sign = /^[:\[\(\{]/,
        atom = ["true", "false", "null", "empty", "defined", "divisibleby", "divisible by", "even", "odd", "iterable", "sameas", "same as"],
        number = /^(\d[+\-\*\/])?\d+(\.\d+)?/;

    keywords = new RegExp("((" + keywords.join(")|(") + "))\\b");
    atom = new RegExp("((" + atom.join(")|(") + "))\\b");

    function tokenBase (stream, state) {
      var ch = stream.peek();

      //Comment
      if (state.incomment) {
        if (!stream.skipTo("#}")) {
          stream.skipToEnd();
        } else {
          stream.eatWhile(/\#|}/);
          state.incomment = false;
        }
        return "comment";
      //Tag
      } else if (state.intag) {
        //After operator
        if (state.operator) {
          state.operator = false;
          if (stream.match(atom)) {
            return "atom";
          }
          if (stream.match(number)) {
            return "number";
          }
        }
        //After sign
        if (state.sign) {
          state.sign = false;
          if (stream.match(atom)) {
            return "atom";
          }
          if (stream.match(number)) {
            return "number";
          }
        }

        if (state.instring) {
          if (ch == state.instring) {
            state.instring = false;
          }
          stream.next();
          return "string";
        } else if (ch == "'" || ch == '"') {
          state.instring = ch;
          stream.next();
          return "string";
        } else if (stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) {
          state.intag = false;
          return "tag";
        } else if (stream.match(operator)) {
          state.operator = true;
          return "operator";
        } else if (stream.match(sign)) {
          state.sign = true;
        } else {
          if (stream.eat(" ") || stream.sol()) {
            if (stream.match(keywords)) {
              return "keyword";
            }
            if (stream.match(atom)) {
              return "atom";
            }
            if (stream.match(number)) {
              return "number";
            }
            if (stream.sol()) {
              stream.next();
            }
          } else {
            stream.next();
          }

        }
        return "variable";
      } else if (stream.eat("{")) {
        if (stream.eat("#")) {
          state.incomment = true;
          if (!stream.skipTo("#}")) {
            stream.skipToEnd();
          } else {
            stream.eatWhile(/\#|}/);
            state.incomment = false;
          }
          return "comment";
        //Open tag
        } else if (ch = stream.eat(/\{|%/)) {
          //Cache close tag
          state.intag = ch;
          if (ch == "{") {
            state.intag = "}";
          }
          stream.eat("-");
          return "tag";
        }
      }
      stream.next();
    };

    return {
      startState: function () {
        return {};
      },
      token: function (stream, state) {
        return tokenBase(stream, state);
      }
    };
  });

  CodeMirror.defineMode("twig", function(config, parserConfig) {
    var twigInner = CodeMirror.getMode(config, "twig:inner");
    if (!parserConfig || !parserConfig.base) return twigInner;
    return CodeMirror.multiplexingMode(
      CodeMirror.getMode(config, parserConfig.base), {
        open: /\{[{#%]/, close: /[}#%]\}/, mode: twigInner, parseDelimiters: true
      }
    );
  });
  CodeMirror.defineMIME("text/x-twig", "twig");
});
editors/codemirror/mode/solr/solr.js000064400000005161152177723720013622 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("solr", function() {
  "use strict";

  var isStringChar = /[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/;
  var isOperatorChar = /[\|\!\+\-\*\?\~\^\&]/;
  var isOperatorString = /^(OR|AND|NOT|TO)$/i;

  function isNumber(word) {
    return parseFloat(word).toString() === word;
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) break;
        escaped = !escaped && next == "\\";
      }

      if (!escaped) state.tokenize = tokenBase;
      return "string";
    };
  }

  function tokenOperator(operator) {
    return function(stream, state) {
      var style = "operator";
      if (operator == "+")
        style += " positive";
      else if (operator == "-")
        style += " negative";
      else if (operator == "|")
        stream.eat(/\|/);
      else if (operator == "&")
        stream.eat(/\&/);
      else if (operator == "^")
        style += " boost";

      state.tokenize = tokenBase;
      return style;
    };
  }

  function tokenWord(ch) {
    return function(stream, state) {
      var word = ch;
      while ((ch = stream.peek()) && ch.match(isStringChar) != null) {
        word += stream.next();
      }

      state.tokenize = tokenBase;
      if (isOperatorString.test(word))
        return "operator";
      else if (isNumber(word))
        return "number";
      else if (stream.peek() == ":")
        return "field";
      else
        return "string";
    };
  }

  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"')
      state.tokenize = tokenString(ch);
    else if (isOperatorChar.test(ch))
      state.tokenize = tokenOperator(ch);
    else if (isStringChar.test(ch))
      state.tokenize = tokenWord(ch);

    return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;
  }

  return {
    startState: function() {
      return {
        tokenize: tokenBase
      };
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      return state.tokenize(stream, state);
    }
  };
});

CodeMirror.defineMIME("text/x-solr", "solr");

});
editors/codemirror/mode/solr/solr.min.js000064400000002237152177723720014405 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("solr",(function(){function a(a){return parseFloat(a).toString()===a}function b(a){return function(b,c){for(var d,f=!1;null!=(d=b.next())&&(d!=a||f);)f=!f&&"\\"==d;return f||(c.tokenize=e),"string"}}function c(a){return function(b,c){var d="operator";return"+"==a?d+=" positive":"-"==a?d+=" negative":"|"==a?b.eat(/\|/):"&"==a?b.eat(/\&/):"^"==a&&(d+=" boost"),c.tokenize=e,d}}function d(b){return function(c,d){for(var g=b;(b=c.peek())&&null!=b.match(f);)g+=c.next();return d.tokenize=e,h.test(g)?"operator":a(g)?"number":":"==c.peek()?"field":"string"}}function e(a,h){var i=a.next();return'"'==i?h.tokenize=b(i):g.test(i)?h.tokenize=c(i):f.test(i)&&(h.tokenize=d(i)),h.tokenize!=e?h.tokenize(a,h):null}var f=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,g=/[\|\!\+\-\*\?\~\^\&]/,h=/^(OR|AND|NOT|TO)$/i;return{startState:function(){return{tokenize:e}},token:function(a,b){return a.eatSpace()?null:b.tokenize(a,b)}}})),a.defineMIME("text/x-solr","solr")}));editors/codemirror/mode/handlebars/handlebars.js000064400000004317152177723720016074 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../addon/mode/simple"), require("../../addon/mode/multiplex"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/simple", "../../addon/mode/multiplex"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineSimpleMode("handlebars-tags", {
    start: [
      { regex: /\{\{!--/, push: "dash_comment", token: "comment" },
      { regex: /\{\{!/,   push: "comment", token: "comment" },
      { regex: /\{\{/,    push: "handlebars", token: "tag" }
    ],
    handlebars: [
      { regex: /\}\}/, pop: true, token: "tag" },

      // Double and single quotes
      { regex: /"(?:[^\\"]|\\.)*"?/, token: "string" },
      { regex: /'(?:[^\\']|\\.)*'?/, token: "string" },

      // Handlebars keywords
      { regex: />|[#\/]([A-Za-z_]\w*)/, token: "keyword" },
      { regex: /(?:else|this)\b/, token: "keyword" },

      // Numeral
      { regex: /\d+/i, token: "number" },

      // Atoms like = and .
      { regex: /=|~|@|true|false/, token: "atom" },

      // Paths
      { regex: /(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/, token: "variable-2" }
    ],
    dash_comment: [
      { regex: /--\}\}/, pop: true, token: "comment" },

      // Commented code
      { regex: /./, token: "comment"}
    ],
    comment: [
      { regex: /\}\}/, pop: true, token: "comment" },
      { regex: /./, token: "comment" }
    ],
    meta: {
      blockCommentStart: "{{--",
      blockCommentEnd: "--}}"
    }
  });

  CodeMirror.defineMode("handlebars", function(config, parserConfig) {
    var handlebars = CodeMirror.getMode(config, "handlebars-tags");
    if (!parserConfig || !parserConfig.base) return handlebars;
    return CodeMirror.multiplexingMode(
      CodeMirror.getMode(config, parserConfig.base),
      {open: "{{", close: "}}", mode: handlebars, parseDelimiters: true}
    );
  });

  CodeMirror.defineMIME("text/x-handlebars-template", "handlebars");
});
editors/codemirror/mode/handlebars/handlebars.min.js000064400000002513152177723720016652 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/simple"),require("../../addon/mode/multiplex")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple","../../addon/mode/multiplex"],a):a(CodeMirror)})((function(a){"use strict";a.defineSimpleMode("handlebars-tags",{start:[{regex:/\{\{!--/,push:"dash_comment",token:"comment"},{regex:/\{\{!/,push:"comment",token:"comment"},{regex:/\{\{/,push:"handlebars",token:"tag"}],handlebars:[{regex:/\}\}/,pop:!0,token:"tag"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/>|[#\/]([A-Za-z_]\w*)/,token:"keyword"},{regex:/(?:else|this)\b/,token:"keyword"},{regex:/\d+/i,token:"number"},{regex:/=|~|@|true|false/,token:"atom"},{regex:/(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/,token:"variable-2"}],dash_comment:[{regex:/--\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],comment:[{regex:/\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],meta:{blockCommentStart:"{{--",blockCommentEnd:"--}}"}}),a.defineMode("handlebars",(function(b,c){var d=a.getMode(b,"handlebars-tags");return c&&c.base?a.multiplexingMode(a.getMode(b,c.base),{open:"{{",close:"}}",mode:d,parseDelimiters:!0}):d})),a.defineMIME("text/x-handlebars-template","handlebars")}));editors/codemirror/mode/diff/diff.min.js000064400000001064152177723720014264 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("diff",(function(){var a={"+":"positive","-":"negative","@":"meta"};return{token:function(b){var c=b.string.search(/[\t ]+?$/);if(!b.sol()||0===c)return b.skipToEnd(),("error "+(a[b.string.charAt(0)]||"")).replace(/ $/,"");var d=a[b.peek()]||b.skipToEnd();return c===-1?b.skipToEnd():b.pos=c,d}}})),a.defineMIME("text/x-diff","diff")}));editors/codemirror/mode/diff/diff.js000064400000002163152177723720013503 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("diff", function() {

  var TOKEN_NAMES = {
    '+': 'positive',
    '-': 'negative',
    '@': 'meta'
  };

  return {
    token: function(stream) {
      var tw_pos = stream.string.search(/[\t ]+?$/);

      if (!stream.sol() || tw_pos === 0) {
        stream.skipToEnd();
        return ("error " + (
          TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');
      }

      var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();

      if (tw_pos === -1) {
        stream.skipToEnd();
      } else {
        stream.pos = tw_pos;
      }

      return token_name;
    }
  };
});

CodeMirror.defineMIME("text/x-diff", "diff");

});
editors/codemirror/mode/nsis/nsis.js000064400000017260152177723720013617 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Author: Jan T. Sott (http://github.com/idleberg)

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineSimpleMode("nsis",{
  start:[
    // Numbers
    {regex: /(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/, token: "number"},

    // Strings
    { regex: /"(?:[^\\"]|\\.)*"?/, token: "string" },
    { regex: /'(?:[^\\']|\\.)*'?/, token: "string" },
    { regex: /`(?:[^\\`]|\\.)*`?/, token: "string" },

    // Compile Time Commands
    {regex: /^\s*(?:\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|pragma|finalize|getdllversion|gettlbversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace))\b/, token: "keyword"},

    // Conditional Compilation
    {regex: /^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/, token: "keyword", indent: true},
    {regex: /^\s*(?:\!(else|endif|macroend))\b/, token: "keyword", dedent: true},

    // Runtime Commands
    {regex: /^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEDllCharacteristics|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/, token: "keyword"},
    {regex: /^\s*(?:Function|PageEx|Section(?:Group)?)\b/, token: "keyword", indent: true},
    {regex: /^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/, token: "keyword", dedent: true},

    // Command Options
    {regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/, token: "atom"},
    {regex: /\b(?:admin|all|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|zlib)\b/, token: "builtin"},

    // LogicLib.nsh
    {regex: /\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/, token: "variable-2", indent: true},

    // FileFunc.nsh
    {regex: /\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/, token: "variable-2", dedent: true},

    // Memento.nsh
    {regex: /\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/, token: "variable-2", dedent: true},

    // TextFunc.nsh
    {regex: /\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/, token: "variable-2", dedent: true},

    // WinVer.nsh
    {regex: /\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/, token: "variable", dedent: true},

    // WordFunc.nsh
    {regex: /\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/, token: "variable-2", dedent: true},

    // x64.nsh
    {regex: /\$\{(?:RunningX64)\}/, token: "variable", dedent: true},
    {regex: /\$\{(?:Disable|Enable)X64FSRedirection\}/, token: "variable-2", dedent: true},

    // Line Comment
    {regex: /(#|;).*/, token: "comment"},

    // Block Comment
    {regex: /\/\*/, token: "comment", next: "comment"},

    // Operator
    {regex: /[-+\/*=<>!]+/, token: "operator"},

    // Variable
    {regex: /\$\w+/, token: "variable"},

    // Constant
    {regex: /\${[\w\.:-]+}/, token: "variable-2"},

    // Language String
    {regex: /\$\([\w\.:-]+\)/, token: "variable-3"}
  ],
  comment: [
    {regex: /.*?\*\//, token: "comment", next: "start"},
    {regex: /.*/, token: "comment"}
  ],
  meta: {
    electricInput: /^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/,
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: ["#", ";"]
  }
});

CodeMirror.defineMIME("text/x-nsis", "nsis");
});
editors/codemirror/mode/nsis/nsis.min.js000064400000015230152177723720014374 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/simple")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],a):a(CodeMirror)})((function(a){"use strict";a.defineSimpleMode("nsis",{start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|pragma|finalize|getdllversion|gettlbversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace))\b/,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/,token:"keyword",indent:!0},{regex:/^\s*(?:\!(else|endif|macroend))\b/,token:"keyword",dedent:!0},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEDllCharacteristics|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/,token:"keyword",indent:!0},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/,token:"keyword",dedent:!0},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/,token:"atom"},{regex:/\b(?:admin|all|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|zlib)\b/,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/,token:"variable-2",indent:!0},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/,token:"variable-2",dedent:!0},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/,token:"variable-2",dedent:!0},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/,token:"variable-2",dedent:!0},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/,token:"variable",dedent:!0},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/,token:"variable-2",dedent:!0},{regex:/\$\{(?:RunningX64)\}/,token:"variable",dedent:!0},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/,token:"variable-2",dedent:!0},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w+/,token:"variable"},{regex:/\${[\w\.:-]+}/,token:"variable-2"},{regex:/\$\([\w\.:-]+\)/,token:"variable-3"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],meta:{electricInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:["#",";"]}}),a.defineMIME("text/x-nsis","nsis")}));editors/codemirror/mode/textile/textile.js000064400000033014152177723720015016 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") { // CommonJS
    mod(require("../../lib/codemirror"));
  } else if (typeof define == "function" && define.amd) { // AMD
    define(["../../lib/codemirror"], mod);
  } else { // Plain browser env
    mod(CodeMirror);
  }
})(function(CodeMirror) {
  "use strict";

  var TOKEN_STYLES = {
    addition: "positive",
    attributes: "attribute",
    bold: "strong",
    cite: "keyword",
    code: "atom",
    definitionList: "number",
    deletion: "negative",
    div: "punctuation",
    em: "em",
    footnote: "variable",
    footCite: "qualifier",
    header: "header",
    html: "comment",
    image: "string",
    italic: "em",
    link: "link",
    linkDefinition: "link",
    list1: "variable-2",
    list2: "variable-3",
    list3: "keyword",
    notextile: "string-2",
    pre: "operator",
    p: "property",
    quote: "bracket",
    span: "quote",
    specialChar: "tag",
    strong: "strong",
    sub: "builtin",
    sup: "builtin",
    table: "variable-3",
    tableHeading: "operator"
  };

  function startNewLine(stream, state) {
    state.mode = Modes.newLayout;
    state.tableHeading = false;

    if (state.layoutType === "definitionList" && state.spanningLayout &&
        stream.match(RE("definitionListEnd"), false))
      state.spanningLayout = false;
  }

  function handlePhraseModifier(stream, state, ch) {
    if (ch === "_") {
      if (stream.eat("_"))
        return togglePhraseModifier(stream, state, "italic", /__/, 2);
      else
        return togglePhraseModifier(stream, state, "em", /_/, 1);
    }

    if (ch === "*") {
      if (stream.eat("*")) {
        return togglePhraseModifier(stream, state, "bold", /\*\*/, 2);
      }
      return togglePhraseModifier(stream, state, "strong", /\*/, 1);
    }

    if (ch === "[") {
      if (stream.match(/\d+\]/)) state.footCite = true;
      return tokenStyles(state);
    }

    if (ch === "(") {
      var spec = stream.match(/^(r|tm|c)\)/);
      if (spec)
        return tokenStylesWith(state, TOKEN_STYLES.specialChar);
    }

    if (ch === "<" && stream.match(/(\w+)[^>]+>[^<]+<\/\1>/))
      return tokenStylesWith(state, TOKEN_STYLES.html);

    if (ch === "?" && stream.eat("?"))
      return togglePhraseModifier(stream, state, "cite", /\?\?/, 2);

    if (ch === "=" && stream.eat("="))
      return togglePhraseModifier(stream, state, "notextile", /==/, 2);

    if (ch === "-" && !stream.eat("-"))
      return togglePhraseModifier(stream, state, "deletion", /-/, 1);

    if (ch === "+")
      return togglePhraseModifier(stream, state, "addition", /\+/, 1);

    if (ch === "~")
      return togglePhraseModifier(stream, state, "sub", /~/, 1);

    if (ch === "^")
      return togglePhraseModifier(stream, state, "sup", /\^/, 1);

    if (ch === "%")
      return togglePhraseModifier(stream, state, "span", /%/, 1);

    if (ch === "@")
      return togglePhraseModifier(stream, state, "code", /@/, 1);

    if (ch === "!") {
      var type = togglePhraseModifier(stream, state, "image", /(?:\([^\)]+\))?!/, 1);
      stream.match(/^:\S+/); // optional Url portion
      return type;
    }
    return tokenStyles(state);
  }

  function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {
    var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;
    var charAfter = stream.peek();
    if (state[phraseModifier]) {
      if ((!charAfter || /\W/.test(charAfter)) && charBefore && /\S/.test(charBefore)) {
        var type = tokenStyles(state);
        state[phraseModifier] = false;
        return type;
      }
    } else if ((!charBefore || /\W/.test(charBefore)) && charAfter && /\S/.test(charAfter) &&
               stream.match(new RegExp("^.*\\S" + closeRE.source + "(?:\\W|$)"), false)) {
      state[phraseModifier] = true;
      state.mode = Modes.attributes;
    }
    return tokenStyles(state);
  };

  function tokenStyles(state) {
    var disabled = textileDisabled(state);
    if (disabled) return disabled;

    var styles = [];
    if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);

    styles = styles.concat(activeStyles(
      state, "addition", "bold", "cite", "code", "deletion", "em", "footCite",
      "image", "italic", "link", "span", "strong", "sub", "sup", "table", "tableHeading"));

    if (state.layoutType === "header")
      styles.push(TOKEN_STYLES.header + "-" + state.header);

    return styles.length ? styles.join(" ") : null;
  }

  function textileDisabled(state) {
    var type = state.layoutType;

    switch(type) {
    case "notextile":
    case "code":
    case "pre":
      return TOKEN_STYLES[type];
    default:
      if (state.notextile)
        return TOKEN_STYLES.notextile + (type ? (" " + TOKEN_STYLES[type]) : "");
      return null;
    }
  }

  function tokenStylesWith(state, extraStyles) {
    var disabled = textileDisabled(state);
    if (disabled) return disabled;

    var type = tokenStyles(state);
    if (extraStyles)
      return type ? (type + " " + extraStyles) : extraStyles;
    else
      return type;
  }

  function activeStyles(state) {
    var styles = [];
    for (var i = 1; i < arguments.length; ++i) {
      if (state[arguments[i]])
        styles.push(TOKEN_STYLES[arguments[i]]);
    }
    return styles;
  }

  function blankLine(state) {
    var spanningLayout = state.spanningLayout, type = state.layoutType;

    for (var key in state) if (state.hasOwnProperty(key))
      delete state[key];

    state.mode = Modes.newLayout;
    if (spanningLayout) {
      state.layoutType = type;
      state.spanningLayout = true;
    }
  }

  var REs = {
    cache: {},
    single: {
      bc: "bc",
      bq: "bq",
      definitionList: /- .*?:=+/,
      definitionListEnd: /.*=:\s*$/,
      div: "div",
      drawTable: /\|.*\|/,
      foot: /fn\d+/,
      header: /h[1-6]/,
      html: /\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/,
      link: /[^"]+":\S/,
      linkDefinition: /\[[^\s\]]+\]\S+/,
      list: /(?:#+|\*+)/,
      notextile: "notextile",
      para: "p",
      pre: "pre",
      table: "table",
      tableCellAttributes: /[\/\\]\d+/,
      tableHeading: /\|_\./,
      tableText: /[^"_\*\[\(\?\+~\^%@|-]+/,
      text: /[^!"_=\*\[\(<\?\+~\^%@-]+/
    },
    attributes: {
      align: /(?:<>|<|>|=)/,
      selector: /\([^\(][^\)]+\)/,
      lang: /\[[^\[\]]+\]/,
      pad: /(?:\(+|\)+){1,2}/,
      css: /\{[^\}]+\}/
    },
    createRe: function(name) {
      switch (name) {
      case "drawTable":
        return REs.makeRe("^", REs.single.drawTable, "$");
      case "html":
        return REs.makeRe("^", REs.single.html, "(?:", REs.single.html, ")*", "$");
      case "linkDefinition":
        return REs.makeRe("^", REs.single.linkDefinition, "$");
      case "listLayout":
        return REs.makeRe("^", REs.single.list, RE("allAttributes"), "*\\s+");
      case "tableCellAttributes":
        return REs.makeRe("^", REs.choiceRe(REs.single.tableCellAttributes,
                                            RE("allAttributes")), "+\\.");
      case "type":
        return REs.makeRe("^", RE("allTypes"));
      case "typeLayout":
        return REs.makeRe("^", RE("allTypes"), RE("allAttributes"),
                          "*\\.\\.?", "(\\s+|$)");
      case "attributes":
        return REs.makeRe("^", RE("allAttributes"), "+");

      case "allTypes":
        return REs.choiceRe(REs.single.div, REs.single.foot,
                            REs.single.header, REs.single.bc, REs.single.bq,
                            REs.single.notextile, REs.single.pre, REs.single.table,
                            REs.single.para);

      case "allAttributes":
        return REs.choiceRe(REs.attributes.selector, REs.attributes.css,
                            REs.attributes.lang, REs.attributes.align, REs.attributes.pad);

      default:
        return REs.makeRe("^", REs.single[name]);
      }
    },
    makeRe: function() {
      var pattern = "";
      for (var i = 0; i < arguments.length; ++i) {
        var arg = arguments[i];
        pattern += (typeof arg === "string") ? arg : arg.source;
      }
      return new RegExp(pattern);
    },
    choiceRe: function() {
      var parts = [arguments[0]];
      for (var i = 1; i < arguments.length; ++i) {
        parts[i * 2 - 1] = "|";
        parts[i * 2] = arguments[i];
      }

      parts.unshift("(?:");
      parts.push(")");
      return REs.makeRe.apply(null, parts);
    }
  };

  function RE(name) {
    return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));
  }

  var Modes = {
    newLayout: function(stream, state) {
      if (stream.match(RE("typeLayout"), false)) {
        state.spanningLayout = false;
        return (state.mode = Modes.blockType)(stream, state);
      }
      var newMode;
      if (!textileDisabled(state)) {
        if (stream.match(RE("listLayout"), false))
          newMode = Modes.list;
        else if (stream.match(RE("drawTable"), false))
          newMode = Modes.table;
        else if (stream.match(RE("linkDefinition"), false))
          newMode = Modes.linkDefinition;
        else if (stream.match(RE("definitionList")))
          newMode = Modes.definitionList;
        else if (stream.match(RE("html"), false))
          newMode = Modes.html;
      }
      return (state.mode = (newMode || Modes.text))(stream, state);
    },

    blockType: function(stream, state) {
      var match, type;
      state.layoutType = null;

      if (match = stream.match(RE("type")))
        type = match[0];
      else
        return (state.mode = Modes.text)(stream, state);

      if (match = type.match(RE("header"))) {
        state.layoutType = "header";
        state.header = parseInt(match[0][1]);
      } else if (type.match(RE("bq"))) {
        state.layoutType = "quote";
      } else if (type.match(RE("bc"))) {
        state.layoutType = "code";
      } else if (type.match(RE("foot"))) {
        state.layoutType = "footnote";
      } else if (type.match(RE("notextile"))) {
        state.layoutType = "notextile";
      } else if (type.match(RE("pre"))) {
        state.layoutType = "pre";
      } else if (type.match(RE("div"))) {
        state.layoutType = "div";
      } else if (type.match(RE("table"))) {
        state.layoutType = "table";
      }

      state.mode = Modes.attributes;
      return tokenStyles(state);
    },

    text: function(stream, state) {
      if (stream.match(RE("text"))) return tokenStyles(state);

      var ch = stream.next();
      if (ch === '"')
        return (state.mode = Modes.link)(stream, state);
      return handlePhraseModifier(stream, state, ch);
    },

    attributes: function(stream, state) {
      state.mode = Modes.layoutLength;

      if (stream.match(RE("attributes")))
        return tokenStylesWith(state, TOKEN_STYLES.attributes);
      else
        return tokenStyles(state);
    },

    layoutLength: function(stream, state) {
      if (stream.eat(".") && stream.eat("."))
        state.spanningLayout = true;

      state.mode = Modes.text;
      return tokenStyles(state);
    },

    list: function(stream, state) {
      var match = stream.match(RE("list"));
      state.listDepth = match[0].length;
      var listMod = (state.listDepth - 1) % 3;
      if (!listMod)
        state.layoutType = "list1";
      else if (listMod === 1)
        state.layoutType = "list2";
      else
        state.layoutType = "list3";

      state.mode = Modes.attributes;
      return tokenStyles(state);
    },

    link: function(stream, state) {
      state.mode = Modes.text;
      if (stream.match(RE("link"))) {
        stream.match(/\S+/);
        return tokenStylesWith(state, TOKEN_STYLES.link);
      }
      return tokenStyles(state);
    },

    linkDefinition: function(stream, state) {
      stream.skipToEnd();
      return tokenStylesWith(state, TOKEN_STYLES.linkDefinition);
    },

    definitionList: function(stream, state) {
      stream.match(RE("definitionList"));

      state.layoutType = "definitionList";

      if (stream.match(/\s*$/))
        state.spanningLayout = true;
      else
        state.mode = Modes.attributes;

      return tokenStyles(state);
    },

    html: function(stream, state) {
      stream.skipToEnd();
      return tokenStylesWith(state, TOKEN_STYLES.html);
    },

    table: function(stream, state) {
      state.layoutType = "table";
      return (state.mode = Modes.tableCell)(stream, state);
    },

    tableCell: function(stream, state) {
      if (stream.match(RE("tableHeading")))
        state.tableHeading = true;
      else
        stream.eat("|");

      state.mode = Modes.tableCellAttributes;
      return tokenStyles(state);
    },

    tableCellAttributes: function(stream, state) {
      state.mode = Modes.tableText;

      if (stream.match(RE("tableCellAttributes")))
        return tokenStylesWith(state, TOKEN_STYLES.attributes);
      else
        return tokenStyles(state);
    },

    tableText: function(stream, state) {
      if (stream.match(RE("tableText")))
        return tokenStyles(state);

      if (stream.peek() === "|") { // end of cell
        state.mode = Modes.tableCell;
        return tokenStyles(state);
      }
      return handlePhraseModifier(stream, state, stream.next());
    }
  };

  CodeMirror.defineMode("textile", function() {
    return {
      startState: function() {
        return { mode: Modes.newLayout };
      },
      token: function(stream, state) {
        if (stream.sol()) startNewLine(stream, state);
        return state.mode(stream, state);
      },
      blankLine: blankLine
    };
  });

  CodeMirror.defineMIME("text/x-textile", "textile");
});
editors/codemirror/mode/textile/textile.min.js000064400000015704152177723720015606 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){b.mode=m.newLayout,b.tableHeading=!1,"definitionList"===b.layoutType&&b.spanningLayout&&a.match(j("definitionListEnd"),!1)&&(b.spanningLayout=!1)}function c(a,b,c){if("_"===c)return a.eat("_")?d(a,b,"italic",/__/,2):d(a,b,"em",/_/,1);if("*"===c)return a.eat("*")?d(a,b,"bold",/\*\*/,2):d(a,b,"strong",/\*/,1);if("["===c)return a.match(/\d+\]/)&&(b.footCite=!0),e(b);if("("===c){var f=a.match(/^(r|tm|c)\)/);if(f)return g(b,k.specialChar)}if("<"===c&&a.match(/(\w+)[^>]+>[^<]+<\/\1>/))return g(b,k.html);if("?"===c&&a.eat("?"))return d(a,b,"cite",/\?\?/,2);if("="===c&&a.eat("="))return d(a,b,"notextile",/==/,2);if("-"===c&&!a.eat("-"))return d(a,b,"deletion",/-/,1);if("+"===c)return d(a,b,"addition",/\+/,1);if("~"===c)return d(a,b,"sub",/~/,1);if("^"===c)return d(a,b,"sup",/\^/,1);if("%"===c)return d(a,b,"span",/%/,1);if("@"===c)return d(a,b,"code",/@/,1);if("!"===c){var h=d(a,b,"image",/(?:\([^\)]+\))?!/,1);return a.match(/^:\S+/),h}return e(b)}function d(a,b,c,d,f){var g=a.pos>f?a.string.charAt(a.pos-f-1):null,h=a.peek();if(b[c]){if((!h||/\W/.test(h))&&g&&/\S/.test(g)){var i=e(b);return b[c]=!1,i}}else(!g||/\W/.test(g))&&h&&/\S/.test(h)&&a.match(new RegExp("^.*\\S"+d.source+"(?:\\W|$)"),!1)&&(b[c]=!0,b.mode=m.attributes);return e(b)}function e(a){var b=f(a);if(b)return b;var c=[];return a.layoutType&&c.push(k[a.layoutType]),c=c.concat(h(a,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading")),"header"===a.layoutType&&c.push(k.header+"-"+a.header),c.length?c.join(" "):null}function f(a){var b=a.layoutType;switch(b){case"notextile":case"code":case"pre":return k[b];default:return a.notextile?k.notextile+(b?" "+k[b]:""):null}}function g(a,b){var c=f(a);if(c)return c;var d=e(a);return b?d?d+" "+b:b:d}function h(a){for(var b=[],c=1;c<arguments.length;++c)a[arguments[c]]&&b.push(k[arguments[c]]);return b}function i(a){var b=a.spanningLayout,c=a.layoutType;for(var d in a)a.hasOwnProperty(d)&&delete a[d];a.mode=m.newLayout,b&&(a.layoutType=c,a.spanningLayout=!0)}function j(a){return l.cache[a]||(l.cache[a]=l.createRe(a))}var k={addition:"positive",attributes:"attribute",bold:"strong",cite:"keyword",code:"atom",definitionList:"number",deletion:"negative",div:"punctuation",em:"em",footnote:"variable",footCite:"qualifier",header:"header",html:"comment",image:"string",italic:"em",link:"link",linkDefinition:"link",list1:"variable-2",list2:"variable-3",list3:"keyword",notextile:"string-2",pre:"operator",p:"property",quote:"bracket",span:"quote",specialChar:"tag",strong:"strong",sub:"builtin",sup:"builtin",table:"variable-3",tableHeading:"operator"},l={cache:{},single:{bc:"bc",bq:"bq",definitionList:/- .*?:=+/,definitionListEnd:/.*=:\s*$/,div:"div",drawTable:/\|.*\|/,foot:/fn\d+/,header:/h[1-6]/,html:/\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(a){switch(a){case"drawTable":return l.makeRe("^",l.single.drawTable,"$");case"html":return l.makeRe("^",l.single.html,"(?:",l.single.html,")*","$");case"linkDefinition":return l.makeRe("^",l.single.linkDefinition,"$");case"listLayout":return l.makeRe("^",l.single.list,j("allAttributes"),"*\\s+");case"tableCellAttributes":return l.makeRe("^",l.choiceRe(l.single.tableCellAttributes,j("allAttributes")),"+\\.");case"type":return l.makeRe("^",j("allTypes"));case"typeLayout":return l.makeRe("^",j("allTypes"),j("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return l.makeRe("^",j("allAttributes"),"+");case"allTypes":return l.choiceRe(l.single.div,l.single.foot,l.single.header,l.single.bc,l.single.bq,l.single.notextile,l.single.pre,l.single.table,l.single.para);case"allAttributes":return l.choiceRe(l.attributes.selector,l.attributes.css,l.attributes.lang,l.attributes.align,l.attributes.pad);default:return l.makeRe("^",l.single[a])}},makeRe:function(){for(var a="",b=0;b<arguments.length;++b){var c=arguments[b];a+="string"==typeof c?c:c.source}return new RegExp(a)},choiceRe:function(){for(var a=[arguments[0]],b=1;b<arguments.length;++b)a[2*b-1]="|",a[2*b]=arguments[b];return a.unshift("(?:"),a.push(")"),l.makeRe.apply(null,a)}},m={newLayout:function(a,b){if(a.match(j("typeLayout"),!1))return b.spanningLayout=!1,(b.mode=m.blockType)(a,b);var c;return f(b)||(a.match(j("listLayout"),!1)?c=m.list:a.match(j("drawTable"),!1)?c=m.table:a.match(j("linkDefinition"),!1)?c=m.linkDefinition:a.match(j("definitionList"))?c=m.definitionList:a.match(j("html"),!1)&&(c=m.html)),(b.mode=c||m.text)(a,b)},blockType:function(a,b){var c,d;return b.layoutType=null,(c=a.match(j("type")))?(d=c[0],(c=d.match(j("header")))?(b.layoutType="header",b.header=parseInt(c[0][1])):d.match(j("bq"))?b.layoutType="quote":d.match(j("bc"))?b.layoutType="code":d.match(j("foot"))?b.layoutType="footnote":d.match(j("notextile"))?b.layoutType="notextile":d.match(j("pre"))?b.layoutType="pre":d.match(j("div"))?b.layoutType="div":d.match(j("table"))&&(b.layoutType="table"),b.mode=m.attributes,e(b)):(b.mode=m.text)(a,b)},text:function(a,b){if(a.match(j("text")))return e(b);var d=a.next();return'"'===d?(b.mode=m.link)(a,b):c(a,b,d)},attributes:function(a,b){return b.mode=m.layoutLength,a.match(j("attributes"))?g(b,k.attributes):e(b)},layoutLength:function(a,b){return a.eat(".")&&a.eat(".")&&(b.spanningLayout=!0),b.mode=m.text,e(b)},list:function(a,b){var c=a.match(j("list"));b.listDepth=c[0].length;var d=(b.listDepth-1)%3;return d?1===d?b.layoutType="list2":b.layoutType="list3":b.layoutType="list1",b.mode=m.attributes,e(b)},link:function(a,b){return b.mode=m.text,a.match(j("link"))?(a.match(/\S+/),g(b,k.link)):e(b)},linkDefinition:function(a,b){return a.skipToEnd(),g(b,k.linkDefinition)},definitionList:function(a,b){return a.match(j("definitionList")),b.layoutType="definitionList",a.match(/\s*$/)?b.spanningLayout=!0:b.mode=m.attributes,e(b)},html:function(a,b){return a.skipToEnd(),g(b,k.html)},table:function(a,b){return b.layoutType="table",(b.mode=m.tableCell)(a,b)},tableCell:function(a,b){return a.match(j("tableHeading"))?b.tableHeading=!0:a.eat("|"),b.mode=m.tableCellAttributes,e(b)},tableCellAttributes:function(a,b){return b.mode=m.tableText,a.match(j("tableCellAttributes"))?g(b,k.attributes):e(b)},tableText:function(a,b){return a.match(j("tableText"))?e(b):"|"===a.peek()?(b.mode=m.tableCell,e(b)):c(a,b,a.next())}};a.defineMode("textile",(function(){return{startState:function(){return{mode:m.newLayout}},token:function(a,c){return a.sol()&&b(a,c),c.mode(a,c)},blankLine:i}})),a.defineMIME("text/x-textile","textile")}));editors/codemirror/mode/oz/oz.min.js000064400000006137152177723720013532 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("oz",(function(a){function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}function c(a,b){if(a.eatSpace())return null;if(a.match(/[{}]/))return"bracket";if(a.match(/(\[])/))return"keyword";if(a.match(l)||a.match(k))return"operator";if(a.match(o))return"atom";var c=a.match(q);if(c)return b.doInCurrentLine?b.doInCurrentLine=!1:b.currentIndent++,"proc"==c[0]||"fun"==c[0]?b.tokenize=f:"class"==c[0]?b.tokenize=d:"meth"==c[0]&&(b.tokenize=e),"keyword";if(a.match(r)||a.match(p))return"keyword";if(a.match(s))return b.currentIndent--,"keyword";var i=a.next();if('"'==i||"'"==i)return b.tokenize=h(i),b.tokenize(a,b);if(/[~\d]/.test(i)){if("~"==i){if(!/^[0-9]/.test(a.peek()))return null;if("0"==a.next()&&a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}return"0"==i&&a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/)?"number":null}return"%"==i?(a.skipToEnd(),"comment"):"/"==i&&a.eat("*")?(b.tokenize=g,g(a,b)):j.test(i)?"operator":(a.eatWhile(/\w/),"variable")}function d(a,b){return a.eatSpace()?null:(a.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/),b.tokenize=c,"variable-3")}function e(a,b){return a.eatSpace()?null:(a.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/),b.tokenize=c,"def")}function f(a,b){return a.eatSpace()?null:!b.hasPassedFirstStage&&a.eat("{")?(b.hasPassedFirstStage=!0,"bracket"):b.hasPassedFirstStage?(a.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/),b.hasPassedFirstStage=!1,b.tokenize=c,"def"):(b.tokenize=c,null)}function g(a,b){for(var d,e=!1;d=a.next();){if("/"==d&&e){b.tokenize=c;break}e="*"==d}return"comment"}function h(a){return function(b,d){for(var e,f=!1,g=!1;null!=(e=b.next());){if(e==a&&!f){g=!0;break}f=!f&&"\\"==e}return!g&&f||(d.tokenize=c),"string"}}function i(){var a=m.concat(n);return new RegExp("[\\[\\]]|("+a.join("|")+")$")}var j=/[\^@!\|<>#~\.\*\-\+\\\/,=]/,k=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/,l=/(:::)|(\.\.\.)|(=<:)|(>=:)/,m=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"],n=["end"],o=b(["true","false","nil","unit"]),p=b(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]),q=b(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]),r=b(m),s=b(n);return{startState:function(){return{tokenize:c,currentIndent:0,doInCurrentLine:!1,hasPassedFirstStage:!1}},token:function(a,b){return a.sol()&&(b.doInCurrentLine=0),b.tokenize(a,b)},indent:function(b,c){var d=c.replace(/^\s+|\s+$/g,"");return d.match(s)||d.match(r)||d.match(/(\[])/)?a.indentUnit*(b.currentIndent-1):b.currentIndent<0?0:b.currentIndent*a.indentUnit},fold:"indent",electricInput:i(),lineComment:"%",blockCommentStart:"/*",blockCommentEnd:"*/"}})),a.defineMIME("text/x-oz","oz")}));editors/codemirror/mode/oz/oz.js000064400000015012152177723720012740 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("oz", function (conf) {

  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  var singleOperators = /[\^@!\|<>#~\.\*\-\+\\/,=]/;
  var doubleOperators = /(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/;
  var tripleOperators = /(:::)|(\.\.\.)|(=<:)|(>=:)/;

  var middle = ["in", "then", "else", "of", "elseof", "elsecase", "elseif", "catch",
    "finally", "with", "require", "prepare", "import", "export", "define", "do"];
  var end = ["end"];

  var atoms = wordRegexp(["true", "false", "nil", "unit"]);
  var commonKeywords = wordRegexp(["andthen", "at", "attr", "declare", "feat", "from", "lex",
    "mod", "div", "mode", "orelse", "parser", "prod", "prop", "scanner", "self", "syn", "token"]);
  var openingKeywords = wordRegexp(["local", "proc", "fun", "case", "class", "if", "cond", "or", "dis",
    "choice", "not", "thread", "try", "raise", "lock", "for", "suchthat", "meth", "functor"]);
  var middleKeywords = wordRegexp(middle);
  var endKeywords = wordRegexp(end);

  // Tokenizers
  function tokenBase(stream, state) {
    if (stream.eatSpace()) {
      return null;
    }

    // Brackets
    if(stream.match(/[{}]/)) {
      return "bracket";
    }

    // Special [] keyword
    if (stream.match(/(\[])/)) {
        return "keyword"
    }

    // Operators
    if (stream.match(tripleOperators) || stream.match(doubleOperators)) {
      return "operator";
    }

    // Atoms
    if(stream.match(atoms)) {
      return 'atom';
    }

    // Opening keywords
    var matched = stream.match(openingKeywords);
    if (matched) {
      if (!state.doInCurrentLine)
        state.currentIndent++;
      else
        state.doInCurrentLine = false;

      // Special matching for signatures
      if(matched[0] == "proc" || matched[0] == "fun")
        state.tokenize = tokenFunProc;
      else if(matched[0] == "class")
        state.tokenize = tokenClass;
      else if(matched[0] == "meth")
        state.tokenize = tokenMeth;

      return 'keyword';
    }

    // Middle and other keywords
    if (stream.match(middleKeywords) || stream.match(commonKeywords)) {
      return "keyword"
    }

    // End keywords
    if (stream.match(endKeywords)) {
      state.currentIndent--;
      return 'keyword';
    }

    // Eat the next char for next comparisons
    var ch = stream.next();

    // Strings
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }

    // Numbers
    if (/[~\d]/.test(ch)) {
      if (ch == "~") {
        if(! /^[0-9]/.test(stream.peek()))
          return null;
        else if (( stream.next() == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
          return "number";
      }

      if ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))
        return "number";

      return null;
    }

    // Comments
    if (ch == "%") {
      stream.skipToEnd();
      return 'comment';
    }
    else if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      }
    }

    // Single operators
    if(singleOperators.test(ch)) {
      return "operator";
    }

    // If nothing match, we skip the entire alphanumerical block
    stream.eatWhile(/\w/);

    return "variable";
  }

  function tokenClass(stream, state) {
    if (stream.eatSpace()) {
      return null;
    }
    stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);
    state.tokenize = tokenBase;
    return "variable-3"
  }

  function tokenMeth(stream, state) {
    if (stream.eatSpace()) {
      return null;
    }
    stream.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);
    state.tokenize = tokenBase;
    return "def"
  }

  function tokenFunProc(stream, state) {
    if (stream.eatSpace()) {
      return null;
    }

    if(!state.hasPassedFirstStage && stream.eat("{")) {
      state.hasPassedFirstStage = true;
      return "bracket";
    }
    else if(state.hasPassedFirstStage) {
      stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/);
      state.hasPassedFirstStage = false;
      state.tokenize = tokenBase;
      return "def"
    }
    else {
      state.tokenize = tokenBase;
      return null;
    }
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return "comment";
  }

  function tokenString(quote) {
    return function (stream, state) {
      var escaped = false, next, end = false;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) {
          end = true;
          break;
        }
        escaped = !escaped && next == "\\";
      }
      if (end || !escaped)
        state.tokenize = tokenBase;
      return "string";
    };
  }

  function buildElectricInputRegEx() {
    // Reindentation should occur on [] or on a match of any of
    // the block closing keywords, at the end of a line.
    var allClosings = middle.concat(end);
    return new RegExp("[\\[\\]]|(" + allClosings.join("|") + ")$");
  }

  return {

    startState: function () {
      return {
        tokenize: tokenBase,
        currentIndent: 0,
        doInCurrentLine: false,
        hasPassedFirstStage: false
      };
    },

    token: function (stream, state) {
      if (stream.sol())
        state.doInCurrentLine = 0;

      return state.tokenize(stream, state);
    },

    indent: function (state, textAfter) {
      var trueText = textAfter.replace(/^\s+|\s+$/g, '');

      if (trueText.match(endKeywords) || trueText.match(middleKeywords) || trueText.match(/(\[])/))
        return conf.indentUnit * (state.currentIndent - 1);

      if (state.currentIndent < 0)
        return 0;

      return state.currentIndent * conf.indentUnit;
    },
    fold: "indent",
    electricInput: buildElectricInputRegEx(),
    lineComment: "%",
    blockCommentStart: "/*",
    blockCommentEnd: "*/"
  };
});

CodeMirror.defineMIME("text/x-oz", "oz");

});
editors/codemirror/mode/rust/rust.min.js000064400000004474152177723720014446 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../addon/mode/simple")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],a):a(CodeMirror)})((function(a){"use strict";a.defineSimpleMode("rust",{start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string-2"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string-2"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"variable-3"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],meta:{dontIndentStates:["comment"],electricInput:/^\s*\}$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}}),a.defineMIME("text/x-rustsrc","rust"),a.defineMIME("text/rust","rust")}));editors/codemirror/mode/rust/rust.js000064400000005776152177723720013672 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineSimpleMode("rust",{
  start: [
    // string and byte string
    {regex: /b?"/, token: "string", next: "string"},
    // raw string and raw byte string
    {regex: /b?r"/, token: "string", next: "string_raw"},
    {regex: /b?r#+"/, token: "string", next: "string_raw_hash"},
    // character
    {regex: /'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/, token: "string-2"},
    // byte
    {regex: /b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/, token: "string-2"},

    {regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,
     token: "number"},
    {regex: /(let(?:\s+mut)?|fn|enum|mod|struct|type)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: ["keyword", null, "def"]},
    {regex: /(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/, token: "keyword"},
    {regex: /\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/, token: "atom"},
    {regex: /\b(?:true|false|Some|None|Ok|Err)\b/, token: "builtin"},
    {regex: /\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,
     token: ["keyword", null ,"def"]},
    {regex: /#!?\[.*\]/, token: "meta"},
    {regex: /\/\/.*/, token: "comment"},
    {regex: /\/\*/, token: "comment", next: "comment"},
    {regex: /[-+\/*=<>!]+/, token: "operator"},
    {regex: /[a-zA-Z_]\w*!/,token: "variable-3"},
    {regex: /[a-zA-Z_]\w*/, token: "variable"},
    {regex: /[\{\[\(]/, indent: true},
    {regex: /[\}\]\)]/, dedent: true}
  ],
  string: [
    {regex: /"/, token: "string", next: "start"},
    {regex: /(?:[^\\"]|\\(?:.|$))*/, token: "string"}
  ],
  string_raw: [
    {regex: /"/, token: "string", next: "start"},
    {regex: /[^"]*/, token: "string"}
  ],
  string_raw_hash: [
    {regex: /"#+/, token: "string", next: "start"},
    {regex: /(?:[^"]|"(?!#))*/, token: "string"}
  ],
  comment: [
    {regex: /.*?\*\//, token: "comment", next: "start"},
    {regex: /.*/, token: "comment"}
  ],
  meta: {
    dontIndentStates: ["comment"],
    electricInput: /^\s*\}$/,
    blockCommentStart: "/*",
    blockCommentEnd: "*/",
    lineComment: "//",
    fold: "brace"
  }
});


CodeMirror.defineMIME("text/x-rustsrc", "rust");
CodeMirror.defineMIME("text/rust", "rust");
});
editors/codemirror/mode/asciiarmor/asciiarmor.min.js000064400000002237152177723720016731 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.match(/^\s*\S/);return a.skipToEnd(),b?"error":null}a.defineMode("asciiarmor",(function(){return{token:function(a,c){var d;if("top"==c.state)return a.sol()&&(d=a.match(/^-----BEGIN (.*)?-----\s*$/))?(c.state="headers",c.type=d[1],"tag"):b(a);if("headers"==c.state){if(a.sol()&&a.match(/^\w+:/))return c.state="header","atom";var e=b(a);return e&&(c.state="body"),e}return"header"==c.state?(a.skipToEnd(),c.state="headers","string"):"body"==c.state?a.sol()&&(d=a.match(/^-----END (.*)?-----\s*$/))?d[1]!=c.type?"error":(c.state="end","tag"):a.eatWhile(/[A-Za-z0-9+\/=]/)?null:(a.next(),"error"):"end"==c.state?b(a):void 0},blankLine:function(a){"headers"==a.state&&(a.state="body")},startState:function(){return{state:"top",type:null}}}})),a.defineMIME("application/pgp","asciiarmor"),a.defineMIME("application/pgp-encrypted","asciiarmor"),a.defineMIME("application/pgp-keys","asciiarmor"),a.defineMIME("application/pgp-signature","asciiarmor")}));editors/codemirror/mode/asciiarmor/asciiarmor.js000064400000004617152177723720016153 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function errorIfNotEmpty(stream) {
    var nonWS = stream.match(/^\s*\S/);
    stream.skipToEnd();
    return nonWS ? "error" : null;
  }

  CodeMirror.defineMode("asciiarmor", function() {
    return {
      token: function(stream, state) {
        var m;
        if (state.state == "top") {
          if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\s*$/))) {
            state.state = "headers";
            state.type = m[1];
            return "tag";
          }
          return errorIfNotEmpty(stream);
        } else if (state.state == "headers") {
          if (stream.sol() && stream.match(/^\w+:/)) {
            state.state = "header";
            return "atom";
          } else {
            var result = errorIfNotEmpty(stream);
            if (result) state.state = "body";
            return result;
          }
        } else if (state.state == "header") {
          stream.skipToEnd();
          state.state = "headers";
          return "string";
        } else if (state.state == "body") {
          if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\s*$/))) {
            if (m[1] != state.type) return "error";
            state.state = "end";
            return "tag";
          } else {
            if (stream.eatWhile(/[A-Za-z0-9+\/=]/)) {
              return null;
            } else {
              stream.next();
              return "error";
            }
          }
        } else if (state.state == "end") {
          return errorIfNotEmpty(stream);
        }
      },
      blankLine: function(state) {
        if (state.state == "headers") state.state = "body";
      },
      startState: function() {
        return {state: "top", type: null};
      }
    };
  });

  CodeMirror.defineMIME("application/pgp", "asciiarmor");
  CodeMirror.defineMIME("application/pgp-encrypted", "asciiarmor");
  CodeMirror.defineMIME("application/pgp-keys", "asciiarmor");
  CodeMirror.defineMIME("application/pgp-signature", "asciiarmor");
});
editors/codemirror/mode/gherkin/gherkin.js000064400000031712152177723720014743 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/*
Gherkin mode - http://www.cukes.info/
Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
*/

// Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js
//var Quotes = {
//  SINGLE: 1,
//  DOUBLE: 2
//};

//var regex = {
//  keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/
//};

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("gherkin", function () {
  return {
    startState: function () {
      return {
        lineNumber: 0,
        tableHeaderLine: false,
        allowFeature: true,
        allowBackground: false,
        allowScenario: false,
        allowSteps: false,
        allowPlaceholders: false,
        allowMultilineArgument: false,
        inMultilineString: false,
        inMultilineTable: false,
        inKeywordLine: false
      };
    },
    token: function (stream, state) {
      if (stream.sol()) {
        state.lineNumber++;
        state.inKeywordLine = false;
        if (state.inMultilineTable) {
            state.tableHeaderLine = false;
            if (!stream.match(/\s*\|/, false)) {
              state.allowMultilineArgument = false;
              state.inMultilineTable = false;
            }
        }
      }

      stream.eatSpace();

      if (state.allowMultilineArgument) {

        // STRING
        if (state.inMultilineString) {
          if (stream.match('"""')) {
            state.inMultilineString = false;
            state.allowMultilineArgument = false;
          } else {
            stream.match(/.*/);
          }
          return "string";
        }

        // TABLE
        if (state.inMultilineTable) {
          if (stream.match(/\|\s*/)) {
            return "bracket";
          } else {
            stream.match(/[^\|]*/);
            return state.tableHeaderLine ? "header" : "string";
          }
        }

        // DETECT START
        if (stream.match('"""')) {
          // String
          state.inMultilineString = true;
          return "string";
        } else if (stream.match("|")) {
          // Table
          state.inMultilineTable = true;
          state.tableHeaderLine = true;
          return "bracket";
        }

      }

      // LINE COMMENT
      if (stream.match(/#.*/)) {
        return "comment";

      // TAG
      } else if (!state.inKeywordLine && stream.match(/@\S+/)) {
        return "tag";

      // FEATURE
      } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) {
        state.allowScenario = true;
        state.allowBackground = true;
        state.allowPlaceholders = false;
        state.allowSteps = false;
        state.allowMultilineArgument = false;
        state.inKeywordLine = true;
        return "keyword";

      // BACKGROUND
      } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) {
        state.allowPlaceholders = false;
        state.allowSteps = true;
        state.allowBackground = false;
        state.allowMultilineArgument = false;
        state.inKeywordLine = true;
        return "keyword";

      // SCENARIO OUTLINE
      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) {
        state.allowPlaceholders = true;
        state.allowSteps = true;
        state.allowMultilineArgument = false;
        state.inKeywordLine = true;
        return "keyword";

      // EXAMPLES
      } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) {
        state.allowPlaceholders = false;
        state.allowSteps = true;
        state.allowBackground = false;
        state.allowMultilineArgument = true;
        return "keyword";

      // SCENARIO
      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) {
        state.allowPlaceholders = false;
        state.allowSteps = true;
        state.allowBackground = false;
        state.allowMultilineArgument = false;
        state.inKeywordLine = true;
        return "keyword";

      // STEPS
      } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)) {
        state.inStep = true;
        state.allowPlaceholders = true;
        state.allowMultilineArgument = true;
        state.inKeywordLine = true;
        return "keyword";

      // INLINE STRING
      } else if (stream.match(/"[^"]*"?/)) {
        return "string";

      // PLACEHOLDER
      } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) {
        return "variable";

      // Fall through
      } else {
        stream.next();
        stream.eatWhile(/[^@"<#]/);
        return null;
      }
    }
  };
});

CodeMirror.defineMIME("text/x-feature", "gherkin");

});
editors/codemirror/mode/gherkin/gherkin.min.js000064400000024260152177723720015525 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("gherkin",(function(){return{startState:function(){return{lineNumber:0,tableHeaderLine:!1,allowFeature:!0,allowBackground:!1,allowScenario:!1,allowSteps:!1,allowPlaceholders:!1,allowMultilineArgument:!1,inMultilineString:!1,inMultilineTable:!1,inKeywordLine:!1}},token:function(a,b){if(a.sol()&&(b.lineNumber++,b.inKeywordLine=!1,b.inMultilineTable&&(b.tableHeaderLine=!1,a.match(/\s*\|/,!1)||(b.allowMultilineArgument=!1,b.inMultilineTable=!1))),a.eatSpace(),b.allowMultilineArgument){if(b.inMultilineString)return a.match('"""')?(b.inMultilineString=!1,b.allowMultilineArgument=!1):a.match(/.*/),"string";if(b.inMultilineTable)return a.match(/\|\s*/)?"bracket":(a.match(/[^\|]*/),b.tableHeaderLine?"header":"string");if(a.match('"""'))return b.inMultilineString=!0,"string";if(a.match("|"))return b.inMultilineTable=!0,b.tableHeaderLine=!0,"bracket"}return a.match(/#.*/)?"comment":!b.inKeywordLine&&a.match(/@\S+/)?"tag":!b.inKeywordLine&&b.allowFeature&&a.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)?(b.allowScenario=!0,b.allowBackground=!0,b.allowPlaceholders=!1,b.allowSteps=!1,b.allowMultilineArgument=!1,b.inKeywordLine=!0,"keyword"):!b.inKeywordLine&&b.allowBackground&&a.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)?(b.allowPlaceholders=!1,b.allowSteps=!0,b.allowBackground=!1,b.allowMultilineArgument=!1,b.inKeywordLine=!0,"keyword"):!b.inKeywordLine&&b.allowScenario&&a.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)?(b.allowPlaceholders=!0,b.allowSteps=!0,b.allowMultilineArgument=!1,b.inKeywordLine=!0,"keyword"):b.allowScenario&&a.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)?(b.allowPlaceholders=!1,b.allowSteps=!0,b.allowBackground=!1,b.allowMultilineArgument=!0,"keyword"):!b.inKeywordLine&&b.allowScenario&&a.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)?(b.allowPlaceholders=!1,b.allowSteps=!0,b.allowBackground=!1,b.allowMultilineArgument=!1,b.inKeywordLine=!0,"keyword"):!b.inKeywordLine&&b.allowSteps&&a.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)?(b.inStep=!0,b.allowPlaceholders=!0,b.allowMultilineArgument=!0,b.inKeywordLine=!0,"keyword"):a.match(/"[^"]*"?/)?"string":b.allowPlaceholders&&a.match(/<[^>]*>?/)?"variable":(a.next(),a.eatWhile(/[^@"<#]/),null)}}})),a.defineMIME("text/x-feature","gherkin")}));editors/codemirror/mode/mbox/mbox.min.js000064400000003212152177723720014353 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return"Subject"===a?"header":"string"}function c(a,c){if(a.sol()){if(c.inSeparator=!1,c.inHeader&&a.match(f))return null;if(c.inHeader=!1,c.header=null,a.match(g))return c.inHeaders=!0,c.inSeparator=!0,"atom";var d,e=!1;return(d=a.match(i))||(e=!0)&&(d=a.match(h))?(c.inHeaders=!0,c.inHeader=!0,c.emailPermitted=e,c.header=d[1],"atom"):c.inHeaders&&(d=a.match(j))?(c.inHeader=!0,c.emailPermitted=!0,c.header=d[1],"atom"):(c.inHeaders=!1,a.skipToEnd(),null)}if(c.inSeparator)return a.match(k)?"link":a.match(l)?"atom":(a.skipToEnd(),"atom");if(c.inHeader){var o=b(c.header);if(c.emailPermitted){if(a.match(m))return o+" link";if(a.match(n))return o}return a.skipToEnd(),o}return a.skipToEnd(),null}var d=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],e=["Date","Subject","Comments","Keywords","Resent-Date"];a.registerHelper("hintWords","mbox",d.concat(e));var f=/^[ \t]/,g=/^From /,h=new RegExp("^("+d.join("|")+"): "),i=new RegExp("^("+e.join("|")+"): "),j=/^[^:]+:/,k=/^[^ ]+@[^ ]+/,l=/^.*?(?=[^ ]+?@[^ ]+)/,m=/^<.*?>/,n=/^.*?(?=<.*>)/;a.defineMode("mbox",(function(){return{startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:c,blankLine:function(a){a.inHeaders=a.inSeparator=a.inHeader=!1}}})),a.defineMIME("application/mbox","mbox")}));editors/codemirror/mode/mbox/mbox.js000064400000007102152177723720013573 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

var rfc2822 = [
  "From", "Sender", "Reply-To", "To", "Cc", "Bcc", "Message-ID",
  "In-Reply-To", "References", "Resent-From", "Resent-Sender", "Resent-To",
  "Resent-Cc", "Resent-Bcc", "Resent-Message-ID", "Return-Path", "Received"
];
var rfc2822NoEmail = [
  "Date", "Subject", "Comments", "Keywords", "Resent-Date"
];

CodeMirror.registerHelper("hintWords", "mbox", rfc2822.concat(rfc2822NoEmail));

var whitespace = /^[ \t]/;
var separator = /^From /; // See RFC 4155
var rfc2822Header = new RegExp("^(" + rfc2822.join("|") + "): ");
var rfc2822HeaderNoEmail = new RegExp("^(" + rfc2822NoEmail.join("|") + "): ");
var header = /^[^:]+:/; // Optional fields defined in RFC 2822
var email = /^[^ ]+@[^ ]+/;
var untilEmail = /^.*?(?=[^ ]+?@[^ ]+)/;
var bracketedEmail = /^<.*?>/;
var untilBracketedEmail = /^.*?(?=<.*>)/;

function styleForHeader(header) {
  if (header === "Subject") return "header";
  return "string";
}

function readToken(stream, state) {
  if (stream.sol()) {
    // From last line
    state.inSeparator = false;
    if (state.inHeader && stream.match(whitespace)) {
      // Header folding
      return null;
    } else {
      state.inHeader = false;
      state.header = null;
    }

    if (stream.match(separator)) {
      state.inHeaders = true;
      state.inSeparator = true;
      return "atom";
    }

    var match;
    var emailPermitted = false;
    if ((match = stream.match(rfc2822HeaderNoEmail)) ||
        (emailPermitted = true) && (match = stream.match(rfc2822Header))) {
      state.inHeaders = true;
      state.inHeader = true;
      state.emailPermitted = emailPermitted;
      state.header = match[1];
      return "atom";
    }

    // Use vim's heuristics: recognize custom headers only if the line is in a
    // block of legitimate headers.
    if (state.inHeaders && (match = stream.match(header))) {
      state.inHeader = true;
      state.emailPermitted = true;
      state.header = match[1];
      return "atom";
    }

    state.inHeaders = false;
    stream.skipToEnd();
    return null;
  }

  if (state.inSeparator) {
    if (stream.match(email)) return "link";
    if (stream.match(untilEmail)) return "atom";
    stream.skipToEnd();
    return "atom";
  }

  if (state.inHeader) {
    var style = styleForHeader(state.header);

    if (state.emailPermitted) {
      if (stream.match(bracketedEmail)) return style + " link";
      if (stream.match(untilBracketedEmail)) return style;
    }
    stream.skipToEnd();
    return style;
  }

  stream.skipToEnd();
  return null;
};

CodeMirror.defineMode("mbox", function() {
  return {
    startState: function() {
      return {
        // Is in a mbox separator
        inSeparator: false,
        // Is in a mail header
        inHeader: false,
        // If bracketed email is permitted. Only applicable when inHeader
        emailPermitted: false,
        // Name of current header
        header: null,
        // Is in a region of mail headers
        inHeaders: false
      };
    },
    token: readToken,
    blankLine: function(state) {
      state.inHeaders = state.inSeparator = state.inHeader = false;
    }
  };
});

CodeMirror.defineMIME("application/mbox", "mbox");
});
editors/codemirror/mode/xquery/xquery.min.js000064400000015414152177723720015342 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("xquery",(function(){function a(a,b,c){return b.tokenize=c,c(a,b)}function b(b,g){var l=b.next(),n=!1,p=o(b);if("<"==l){if(b.match("!--",!0))return a(b,g,h);if(b.match("![CDATA",!1))return g.tokenize=i,"tag";if(b.match("?",!1))return a(b,g,j);var t=b.eat("/");b.eatSpace();for(var u,v="";u=b.eat(/[^\s\u00a0=<>\"\'\/?]/);)v+=u;return a(b,g,f(v,t))}if("{"==l)return q(g,{type:"codeblock"}),null;if("}"==l)return r(g),null;if(k(g))return">"==l?"tag":"/"==l&&b.eat(">")?(r(g),"tag"):"variable";if(/\d/.test(l))return b.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),"atom";if("("===l&&b.eat(":"))return q(g,{type:"comment"}),a(b,g,c);if(p||'"'!==l&&"'"!==l){if("$"===l)return a(b,g,e);if(":"===l&&b.eat("="))return"keyword";if("("===l)return q(g,{type:"paren"}),null;if(")"===l)return r(g),null;if("["===l)return q(g,{type:"bracket"}),null;if("]"===l)return r(g),null;var w=s.propertyIsEnumerable(l)&&s[l];if(p&&'"'===l)for(;'"'!==b.next(););if(p&&"'"===l)for(;"'"!==b.next(););w||b.eatWhile(/[\w\$_-]/);var x=b.eat(":");!b.eat(":")&&x&&b.eatWhile(/[\w\$_-]/),b.match(/^[ \t]*\(/,!1)&&(n=!0);var y=b.current();return w=s.propertyIsEnumerable(y)&&s[y],n&&!w&&(w={type:"function_call",style:"variable def"}),m(g)?(r(g),"variable"):("element"!=y&&"attribute"!=y&&"axis_specifier"!=w.type||q(g,{type:"xmlconstructor"}),w?w.style:"variable")}return a(b,g,d(l))}function c(a,b){for(var c,d=!1,e=!1,f=0;c=a.next();){if(")"==c&&d){if(!(f>0)){r(b);break}f--}else":"==c&&e&&f++;d=":"==c,e="("==c}return"comment"}function d(a,c){return function(e,f){var g;if(n(f)&&e.current()==a)return r(f),c&&(f.tokenize=c),"string";if(q(f,{type:"string",name:a,tokenize:d(a,c)}),e.match("{",!1)&&l(f))return f.tokenize=b,"string";for(;g=e.next();){if(g==a){r(f),c&&(f.tokenize=c);break}if(e.match("{",!1)&&l(f))return f.tokenize=b,"string"}return"string"}}function e(a,c){var d=/[\w\$_-]/;if(a.eat('"')){for(;'"'!==a.next(););a.eat(":")}else a.eatWhile(d),a.match(":=",!1)||a.eat(":");return a.eatWhile(d),c.tokenize=b,"variable"}function f(a,c){return function(d,e){return d.eatSpace(),c&&d.eat(">")?(r(e),e.tokenize=b,"tag"):(d.eat("/")||q(e,{type:"tag",name:a,tokenize:b}),d.eat(">")?(e.tokenize=b,"tag"):(e.tokenize=g,"tag"))}}function g(c,e){var f=c.next();return"/"==f&&c.eat(">")?(l(e)&&r(e),k(e)&&r(e),"tag"):">"==f?(l(e)&&r(e),"tag"):"="==f?null:'"'==f||"'"==f?a(c,e,d(f,g)):(l(e)||q(e,{type:"attribute",tokenize:g}),c.eat(/[a-zA-Z_:]/),c.eatWhile(/[-a-zA-Z0-9_:.]/),c.eatSpace(),(c.match(">",!1)||c.match("/",!1))&&(r(e),e.tokenize=b),"attribute")}function h(a,c){for(var d;d=a.next();)if("-"==d&&a.match("->",!0))return c.tokenize=b,"comment"}function i(a,c){for(var d;d=a.next();)if("]"==d&&a.match("]",!0))return c.tokenize=b,"comment"}function j(a,c){for(var d;d=a.next();)if("?"==d&&a.match(">",!0))return c.tokenize=b,"comment meta"}function k(a){return p(a,"tag")}function l(a){return p(a,"attribute")}function m(a){return p(a,"xmlconstructor")}function n(a){return p(a,"string")}function o(a){return'"'===a.current()?a.match(/^[^\"]+\"\:/,!1):"'"===a.current()&&a.match(/^[^\"]+\'\:/,!1)}function p(a,b){return a.stack.length&&a.stack[a.stack.length-1].type==b}function q(a,b){a.stack.push(b)}function r(a){a.stack.pop();var c=a.stack.length&&a.stack[a.stack.length-1].tokenize;a.tokenize=c||b}var s=(function(){function a(a){return{type:a,style:"keyword"}}for(var b=a("operator"),c={type:"atom",style:"atom"},d={type:"punctuation",style:null},e={type:"axis_specifier",style:"qualifier"},f={",":d},g=["after","all","allowing","ancestor","ancestor-or-self","any","array","as","ascending","at","attribute","base-uri","before","boundary-space","by","case","cast","castable","catch","child","collation","comment","construction","contains","content","context","copy","copy-namespaces","count","decimal-format","declare","default","delete","descendant","descendant-or-self","descending","diacritics","different","distance","document","document-node","element","else","empty","empty-sequence","encoding","end","entire","every","exactly","except","external","first","following","following-sibling","for","from","ftand","ftnot","ft-option","ftor","function","fuzzy","greatest","group","if","import","in","inherit","insensitive","insert","instance","intersect","into","invoke","is","item","language","last","lax","least","let","levels","lowercase","map","modify","module","most","namespace","next","no","node","nodes","no-inherit","no-preserve","not","occurs","of","only","option","order","ordered","ordering","paragraph","paragraphs","parent","phrase","preceding","preceding-sibling","preserve","previous","processing-instruction","relationship","rename","replace","return","revalidation","same","satisfies","schema","schema-attribute","schema-element","score","self","sensitive","sentence","sentences","sequence","skip","sliding","some","stable","start","stemming","stop","strict","strip","switch","text","then","thesaurus","times","to","transform","treat","try","tumbling","type","typeswitch","union","unordered","update","updating","uppercase","using","validate","value","variable","version","weight","when","where","wildcards","window","with","without","word","words","xquery"],h=0,i=g.length;h<i;h++)f[g[h]]=a(g[h]);for(var j=["xs:anyAtomicType","xs:anySimpleType","xs:anyType","xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:dateTimeStamp","xs:dayTimeDuration","xs:decimal","xs:double","xs:duration","xs:ENTITIES","xs:ENTITY","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:ID","xs:IDREF","xs:IDREFS","xs:int","xs:integer","xs:item","xs:java","xs:language","xs:long","xs:Name","xs:NCName","xs:negativeInteger","xs:NMTOKEN","xs:NMTOKENS","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:normalizedString","xs:NOTATION","xs:numeric","xs:positiveInteger","xs:precisionDecimal","xs:QName","xs:short","xs:string","xs:time","xs:token","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort","xs:untyped","xs:untypedAtomic","xs:yearMonthDuration"],h=0,i=j.length;h<i;h++)f[j[h]]=c;for(var k=["eq","ne","lt","le","gt","ge",":=","=",">",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"],h=0,i=k.length;h<i;h++)f[k[h]]=b;for(var l=["self::","attribute::","child::","descendant::","descendant-or-self::","parent::","ancestor::","ancestor-or-self::","following::","preceding::","following-sibling::","preceding-sibling::"],h=0,i=l.length;h<i;h++)f[l[h]]=e;return f})();return{startState:function(){return{tokenize:b,cc:[],stack:[]}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b);return c},blockCommentStart:"(:",blockCommentEnd:":)"}})),a.defineMIME("application/xquery","xquery")}));editors/codemirror/mode/xquery/xquery.js000064400000036611152177723720014562 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.defineMode("xquery", function() {

  // The keywords object is set to the result of this self executing
  // function. Each keyword is a property of the keywords object whose
  // value is {type: atype, style: astyle}
  var keywords = function(){
    // convenience functions used to build keywords object
    function kw(type) {return {type: type, style: "keyword"};}
    var operator = kw("operator")
      , atom = {type: "atom", style: "atom"}
      , punctuation = {type: "punctuation", style: null}
      , qualifier = {type: "axis_specifier", style: "qualifier"};

    // kwObj is what is return from this function at the end
    var kwObj = {
      ',': punctuation
    };

    // a list of 'basic' keywords. For each add a property to kwObj with the value of
    // {type: basic[i], style: "keyword"} e.g. 'after' --> {type: "after", style: "keyword"}
    var basic = ['after', 'all', 'allowing', 'ancestor', 'ancestor-or-self', 'any', 'array', 'as',
    'ascending', 'at', 'attribute', 'base-uri', 'before', 'boundary-space', 'by', 'case', 'cast',
    'castable', 'catch', 'child', 'collation', 'comment', 'construction', 'contains', 'content',
    'context', 'copy', 'copy-namespaces', 'count', 'decimal-format', 'declare', 'default', 'delete',
    'descendant', 'descendant-or-self', 'descending', 'diacritics', 'different', 'distance',
    'document', 'document-node', 'element', 'else', 'empty', 'empty-sequence', 'encoding', 'end',
    'entire', 'every', 'exactly', 'except', 'external', 'first', 'following', 'following-sibling',
    'for', 'from', 'ftand', 'ftnot', 'ft-option', 'ftor', 'function', 'fuzzy', 'greatest', 'group',
    'if', 'import', 'in', 'inherit', 'insensitive', 'insert', 'instance', 'intersect', 'into',
    'invoke', 'is', 'item', 'language', 'last', 'lax', 'least', 'let', 'levels', 'lowercase', 'map',
    'modify', 'module', 'most', 'namespace', 'next', 'no', 'node', 'nodes', 'no-inherit',
    'no-preserve', 'not', 'occurs', 'of', 'only', 'option', 'order', 'ordered', 'ordering',
    'paragraph', 'paragraphs', 'parent', 'phrase', 'preceding', 'preceding-sibling', 'preserve',
    'previous', 'processing-instruction', 'relationship', 'rename', 'replace', 'return',
    'revalidation', 'same', 'satisfies', 'schema', 'schema-attribute', 'schema-element', 'score',
    'self', 'sensitive', 'sentence', 'sentences', 'sequence', 'skip', 'sliding', 'some', 'stable',
    'start', 'stemming', 'stop', 'strict', 'strip', 'switch', 'text', 'then', 'thesaurus', 'times',
    'to', 'transform', 'treat', 'try', 'tumbling', 'type', 'typeswitch', 'union', 'unordered',
    'update', 'updating', 'uppercase', 'using', 'validate', 'value', 'variable', 'version',
    'weight', 'when', 'where', 'wildcards', 'window', 'with', 'without', 'word', 'words', 'xquery'];
    for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);};

    // a list of types. For each add a property to kwObj with the value of
    // {type: "atom", style: "atom"}
    var types = ['xs:anyAtomicType', 'xs:anySimpleType', 'xs:anyType', 'xs:anyURI',
    'xs:base64Binary', 'xs:boolean', 'xs:byte', 'xs:date', 'xs:dateTime', 'xs:dateTimeStamp',
    'xs:dayTimeDuration', 'xs:decimal', 'xs:double', 'xs:duration', 'xs:ENTITIES', 'xs:ENTITY',
    'xs:float', 'xs:gDay', 'xs:gMonth', 'xs:gMonthDay', 'xs:gYear', 'xs:gYearMonth', 'xs:hexBinary',
    'xs:ID', 'xs:IDREF', 'xs:IDREFS', 'xs:int', 'xs:integer', 'xs:item', 'xs:java', 'xs:language',
    'xs:long', 'xs:Name', 'xs:NCName', 'xs:negativeInteger', 'xs:NMTOKEN', 'xs:NMTOKENS',
    'xs:nonNegativeInteger', 'xs:nonPositiveInteger', 'xs:normalizedString', 'xs:NOTATION',
    'xs:numeric', 'xs:positiveInteger', 'xs:precisionDecimal', 'xs:QName', 'xs:short', 'xs:string',
    'xs:time', 'xs:token', 'xs:unsignedByte', 'xs:unsignedInt', 'xs:unsignedLong',
    'xs:unsignedShort', 'xs:untyped', 'xs:untypedAtomic', 'xs:yearMonthDuration'];
    for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;};

    // each operator will add a property to kwObj with value of {type: "operator", style: "keyword"}
    var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-'];
    for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;};

    // each axis_specifiers will add a property to kwObj with value of {type: "axis_specifier", style: "qualifier"}
    var axis_specifiers = ["self::", "attribute::", "child::", "descendant::", "descendant-or-self::", "parent::",
    "ancestor::", "ancestor-or-self::", "following::", "preceding::", "following-sibling::", "preceding-sibling::"];
    for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; };

    return kwObj;
  }();

  function chain(stream, state, f) {
    state.tokenize = f;
    return f(stream, state);
  }

  // the primary mode tokenizer
  function tokenBase(stream, state) {
    var ch = stream.next(),
        mightBeFunction = false,
        isEQName = isEQNameAhead(stream);

    // an XML tag (if not in some sub, chained tokenizer)
    if (ch == "<") {
      if(stream.match("!--", true))
        return chain(stream, state, tokenXMLComment);

      if(stream.match("![CDATA", false)) {
        state.tokenize = tokenCDATA;
        return "tag";
      }

      if(stream.match("?", false)) {
        return chain(stream, state, tokenPreProcessing);
      }

      var isclose = stream.eat("/");
      stream.eatSpace();
      var tagName = "", c;
      while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;

      return chain(stream, state, tokenTag(tagName, isclose));
    }
    // start code block
    else if(ch == "{") {
      pushStateStack(state, { type: "codeblock"});
      return null;
    }
    // end code block
    else if(ch == "}") {
      popStateStack(state);
      return null;
    }
    // if we're in an XML block
    else if(isInXmlBlock(state)) {
      if(ch == ">")
        return "tag";
      else if(ch == "/" && stream.eat(">")) {
        popStateStack(state);
        return "tag";
      }
      else
        return "variable";
    }
    // if a number
    else if (/\d/.test(ch)) {
      stream.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/);
      return "atom";
    }
    // comment start
    else if (ch === "(" && stream.eat(":")) {
      pushStateStack(state, { type: "comment"});
      return chain(stream, state, tokenComment);
    }
    // quoted string
    else if (!isEQName && (ch === '"' || ch === "'"))
      return chain(stream, state, tokenString(ch));
    // variable
    else if(ch === "$") {
      return chain(stream, state, tokenVariable);
    }
    // assignment
    else if(ch ===":" && stream.eat("=")) {
      return "keyword";
    }
    // open paren
    else if(ch === "(") {
      pushStateStack(state, { type: "paren"});
      return null;
    }
    // close paren
    else if(ch === ")") {
      popStateStack(state);
      return null;
    }
    // open paren
    else if(ch === "[") {
      pushStateStack(state, { type: "bracket"});
      return null;
    }
    // close paren
    else if(ch === "]") {
      popStateStack(state);
      return null;
    }
    else {
      var known = keywords.propertyIsEnumerable(ch) && keywords[ch];

      // if there's a EQName ahead, consume the rest of the string portion, it's likely a function
      if(isEQName && ch === '\"') while(stream.next() !== '"'){}
      if(isEQName && ch === '\'') while(stream.next() !== '\''){}

      // gobble up a word if the character is not known
      if(!known) stream.eatWhile(/[\w\$_-]/);

      // gobble a colon in the case that is a lib func type call fn:doc
      var foundColon = stream.eat(":");

      // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier
      // which should get matched as a keyword
      if(!stream.eat(":") && foundColon) {
        stream.eatWhile(/[\w\$_-]/);
      }
      // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort)
      if(stream.match(/^[ \t]*\(/, false)) {
        mightBeFunction = true;
      }
      // is the word a keyword?
      var word = stream.current();
      known = keywords.propertyIsEnumerable(word) && keywords[word];

      // if we think it's a function call but not yet known,
      // set style to variable for now for lack of something better
      if(mightBeFunction && !known) known = {type: "function_call", style: "variable def"};

      // if the previous word was element, attribute, axis specifier, this word should be the name of that
      if(isInXmlConstructor(state)) {
        popStateStack(state);
        return "variable";
      }
      // as previously checked, if the word is element,attribute, axis specifier, call it an "xmlconstructor" and
      // push the stack so we know to look for it on the next word
      if(word == "element" || word == "attribute" || known.type == "axis_specifier") pushStateStack(state, {type: "xmlconstructor"});

      // if the word is known, return the details of that else just call this a generic 'word'
      return known ? known.style : "variable";
    }
  }

  // handle comments, including nested
  function tokenComment(stream, state) {
    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;
    while (ch = stream.next()) {
      if (ch == ")" && maybeEnd) {
        if(nestedCount > 0)
          nestedCount--;
        else {
          popStateStack(state);
          break;
        }
      }
      else if(ch == ":" && maybeNested) {
        nestedCount++;
      }
      maybeEnd = (ch == ":");
      maybeNested = (ch == "(");
    }

    return "comment";
  }

  // tokenizer for string literals
  // optionally pass a tokenizer function to set state.tokenize back to when finished
  function tokenString(quote, f) {
    return function(stream, state) {
      var ch;

      if(isInString(state) && stream.current() == quote) {
        popStateStack(state);
        if(f) state.tokenize = f;
        return "string";
      }

      pushStateStack(state, { type: "string", name: quote, tokenize: tokenString(quote, f) });

      // if we're in a string and in an XML block, allow an embedded code block
      if(stream.match("{", false) && isInXmlAttributeBlock(state)) {
        state.tokenize = tokenBase;
        return "string";
      }


      while (ch = stream.next()) {
        if (ch ==  quote) {
          popStateStack(state);
          if(f) state.tokenize = f;
          break;
        }
        else {
          // if we're in a string and in an XML block, allow an embedded code block in an attribute
          if(stream.match("{", false) && isInXmlAttributeBlock(state)) {
            state.tokenize = tokenBase;
            return "string";
          }

        }
      }

      return "string";
    };
  }

  // tokenizer for variables
  function tokenVariable(stream, state) {
    var isVariableChar = /[\w\$_-]/;

    // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote
    if(stream.eat("\"")) {
      while(stream.next() !== '\"'){};
      stream.eat(":");
    } else {
      stream.eatWhile(isVariableChar);
      if(!stream.match(":=", false)) stream.eat(":");
    }
    stream.eatWhile(isVariableChar);
    state.tokenize = tokenBase;
    return "variable";
  }

  // tokenizer for XML tags
  function tokenTag(name, isclose) {
    return function(stream, state) {
      stream.eatSpace();
      if(isclose && stream.eat(">")) {
        popStateStack(state);
        state.tokenize = tokenBase;
        return "tag";
      }
      // self closing tag without attributes?
      if(!stream.eat("/"))
        pushStateStack(state, { type: "tag", name: name, tokenize: tokenBase});
      if(!stream.eat(">")) {
        state.tokenize = tokenAttribute;
        return "tag";
      }
      else {
        state.tokenize = tokenBase;
      }
      return "tag";
    };
  }

  // tokenizer for XML attributes
  function tokenAttribute(stream, state) {
    var ch = stream.next();

    if(ch == "/" && stream.eat(">")) {
      if(isInXmlAttributeBlock(state)) popStateStack(state);
      if(isInXmlBlock(state)) popStateStack(state);
      return "tag";
    }
    if(ch == ">") {
      if(isInXmlAttributeBlock(state)) popStateStack(state);
      return "tag";
    }
    if(ch == "=")
      return null;
    // quoted string
    if (ch == '"' || ch == "'")
      return chain(stream, state, tokenString(ch, tokenAttribute));

    if(!isInXmlAttributeBlock(state))
      pushStateStack(state, { type: "attribute", tokenize: tokenAttribute});

    stream.eat(/[a-zA-Z_:]/);
    stream.eatWhile(/[-a-zA-Z0-9_:.]/);
    stream.eatSpace();

    // the case where the attribute has not value and the tag was closed
    if(stream.match(">", false) || stream.match("/", false)) {
      popStateStack(state);
      state.tokenize = tokenBase;
    }

    return "attribute";
  }

  // handle comments, including nested
  function tokenXMLComment(stream, state) {
    var ch;
    while (ch = stream.next()) {
      if (ch == "-" && stream.match("->", true)) {
        state.tokenize = tokenBase;
        return "comment";
      }
    }
  }


  // handle CDATA
  function tokenCDATA(stream, state) {
    var ch;
    while (ch = stream.next()) {
      if (ch == "]" && stream.match("]", true)) {
        state.tokenize = tokenBase;
        return "comment";
      }
    }
  }

  // handle preprocessing instructions
  function tokenPreProcessing(stream, state) {
    var ch;
    while (ch = stream.next()) {
      if (ch == "?" && stream.match(">", true)) {
        state.tokenize = tokenBase;
        return "comment meta";
      }
    }
  }


  // functions to test the current context of the state
  function isInXmlBlock(state) { return isIn(state, "tag"); }
  function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); }
  function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"); }
  function isInString(state) { return isIn(state, "string"); }

  function isEQNameAhead(stream) {
    // assume we've already eaten a quote (")
    if(stream.current() === '"')
      return stream.match(/^[^\"]+\"\:/, false);
    else if(stream.current() === '\'')
      return stream.match(/^[^\"]+\'\:/, false);
    else
      return false;
  }

  function isIn(state, type) {
    return (state.stack.length && state.stack[state.stack.length - 1].type == type);
  }

  function pushStateStack(state, newState) {
    state.stack.push(newState);
  }

  function popStateStack(state) {
    state.stack.pop();
    var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize;
    state.tokenize = reinstateTokenize || tokenBase;
  }

  // the interface for the mode API
  return {
    startState: function() {
      return {
        tokenize: tokenBase,
        cc: [],
        stack: []
      };
    },

    token: function(stream, state) {
      if (stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      return style;
    },

    blockCommentStart: "(:",
    blockCommentEnd: ":)"

  };

});

CodeMirror.defineMIME("application/xquery", "xquery");

});
editors/codemirror/lib/codemirror.js000064400001333336152177723720013664 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// This is CodeMirror (https://codemirror.net), a code editor
// implemented in JavaScript on top of the browser's DOM.
//
// You can find some technical background for some of the code below
// at http://marijnhaverbeke.nl/blog/#cm-internals .

(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
	typeof define === 'function' && define.amd ? define(factory) :
	(global.CodeMirror = factory());
}(this, (function () { 'use strict';

// Kludges for bugs and behavior differences that can't be feature
// detected are enabled based on userAgent etc sniffing.
var userAgent = navigator.userAgent;
var platform = navigator.platform;

var gecko = /gecko\/\d/i.test(userAgent);
var ie_upto10 = /MSIE \d/.test(userAgent);
var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
var edge = /Edge\/(\d+)/.exec(userAgent);
var ie = ie_upto10 || ie_11up || edge;
var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);
var webkit = !edge && /WebKit\//.test(userAgent);
var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
var chrome = !edge && /Chrome\//.test(userAgent);
var presto = /Opera\//.test(userAgent);
var safari = /Apple Computer/.test(navigator.vendor);
var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
var phantom = /PhantomJS/.test(userAgent);

var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
var android = /Android/.test(userAgent);
// This is woefully incomplete. Suggestions for alternative methods welcome.
var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
var mac = ios || /Mac/.test(platform);
var chromeOS = /\bCrOS\b/.test(userAgent);
var windows = /win/i.test(platform);

var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
if (presto_version) { presto_version = Number(presto_version[1]); }
if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
// Some browsers use the wrong event properties to signal cmd/ctrl on OS X
var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
var captureRightClick = gecko || (ie && ie_version >= 9);

function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") }

var rmClass = function(node, cls) {
  var current = node.className;
  var match = classTest(cls).exec(current);
  if (match) {
    var after = current.slice(match.index + match[0].length);
    node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
  }
};

function removeChildren(e) {
  for (var count = e.childNodes.length; count > 0; --count)
    { e.removeChild(e.firstChild); }
  return e
}

function removeChildrenAndAdd(parent, e) {
  return removeChildren(parent).appendChild(e)
}

function elt(tag, content, className, style) {
  var e = document.createElement(tag);
  if (className) { e.className = className; }
  if (style) { e.style.cssText = style; }
  if (typeof content == "string") { e.appendChild(document.createTextNode(content)); }
  else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }
  return e
}
// wrapper for elt, which removes the elt from the accessibility tree
function eltP(tag, content, className, style) {
  var e = elt(tag, content, className, style);
  e.setAttribute("role", "presentation");
  return e
}

var range;
if (document.createRange) { range = function(node, start, end, endNode) {
  var r = document.createRange();
  r.setEnd(endNode || node, end);
  r.setStart(node, start);
  return r
}; }
else { range = function(node, start, end) {
  var r = document.body.createTextRange();
  try { r.moveToElementText(node.parentNode); }
  catch(e) { return r }
  r.collapse(true);
  r.moveEnd("character", end);
  r.moveStart("character", start);
  return r
}; }

function contains(parent, child) {
  if (child.nodeType == 3) // Android browser always returns false when child is a textnode
    { child = child.parentNode; }
  if (parent.contains)
    { return parent.contains(child) }
  do {
    if (child.nodeType == 11) { child = child.host; }
    if (child == parent) { return true }
  } while (child = child.parentNode)
}

function activeElt() {
  // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement.
  // IE < 10 will throw when accessed while the page is loading or in an iframe.
  // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.
  var activeElement;
  try {
    activeElement = document.activeElement;
  } catch(e) {
    activeElement = document.body || null;
  }
  while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)
    { activeElement = activeElement.shadowRoot.activeElement; }
  return activeElement
}

function addClass(node, cls) {
  var current = node.className;
  if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; }
}
function joinClasses(a, b) {
  var as = a.split(" ");
  for (var i = 0; i < as.length; i++)
    { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } }
  return b
}

var selectInput = function(node) { node.select(); };
if (ios) // Mobile Safari apparently has a bug where select() is broken.
  { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }
else if (ie) // Suppress mysterious IE10 errors
  { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }

function bind(f) {
  var args = Array.prototype.slice.call(arguments, 1);
  return function(){return f.apply(null, args)}
}

function copyObj(obj, target, overwrite) {
  if (!target) { target = {}; }
  for (var prop in obj)
    { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
      { target[prop] = obj[prop]; } }
  return target
}

// Counts the column offset in a string, taking tabs into account.
// Used mostly to find indentation.
function countColumn(string, end, tabSize, startIndex, startValue) {
  if (end == null) {
    end = string.search(/[^\s\u00a0]/);
    if (end == -1) { end = string.length; }
  }
  for (var i = startIndex || 0, n = startValue || 0;;) {
    var nextTab = string.indexOf("\t", i);
    if (nextTab < 0 || nextTab >= end)
      { return n + (end - i) }
    n += nextTab - i;
    n += tabSize - (n % tabSize);
    i = nextTab + 1;
  }
}

var Delayed = function() {this.id = null;};
Delayed.prototype.set = function (ms, f) {
  clearTimeout(this.id);
  this.id = setTimeout(f, ms);
};

function indexOf(array, elt) {
  for (var i = 0; i < array.length; ++i)
    { if (array[i] == elt) { return i } }
  return -1
}

// Number of pixels added to scroller and sizer to hide scrollbar
var scrollerGap = 30;

// Returned or thrown by various protocols to signal 'I'm not
// handling this'.
var Pass = {toString: function(){return "CodeMirror.Pass"}};

// Reused option objects for setSelection & friends
var sel_dontScroll = {scroll: false};
var sel_mouse = {origin: "*mouse"};
var sel_move = {origin: "+move"};

// The inverse of countColumn -- find the offset that corresponds to
// a particular column.
function findColumn(string, goal, tabSize) {
  for (var pos = 0, col = 0;;) {
    var nextTab = string.indexOf("\t", pos);
    if (nextTab == -1) { nextTab = string.length; }
    var skipped = nextTab - pos;
    if (nextTab == string.length || col + skipped >= goal)
      { return pos + Math.min(skipped, goal - col) }
    col += nextTab - pos;
    col += tabSize - (col % tabSize);
    pos = nextTab + 1;
    if (col >= goal) { return pos }
  }
}

var spaceStrs = [""];
function spaceStr(n) {
  while (spaceStrs.length <= n)
    { spaceStrs.push(lst(spaceStrs) + " "); }
  return spaceStrs[n]
}

function lst(arr) { return arr[arr.length-1] }

function map(array, f) {
  var out = [];
  for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }
  return out
}

function insertSorted(array, value, score) {
  var pos = 0, priority = score(value);
  while (pos < array.length && score(array[pos]) <= priority) { pos++; }
  array.splice(pos, 0, value);
}

function nothing() {}

function createObj(base, props) {
  var inst;
  if (Object.create) {
    inst = Object.create(base);
  } else {
    nothing.prototype = base;
    inst = new nothing();
  }
  if (props) { copyObj(props, inst); }
  return inst
}

var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
function isWordCharBasic(ch) {
  return /\w/.test(ch) || ch > "\x80" &&
    (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))
}
function isWordChar(ch, helper) {
  if (!helper) { return isWordCharBasic(ch) }
  if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true }
  return helper.test(ch)
}

function isEmpty(obj) {
  for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }
  return true
}

// Extending unicode characters. A series of a non-extending char +
// any number of extending chars is treated as a single unit as far
// as editing and measuring is concerned. This is not fully correct,
// since some scripts/fonts/browsers also treat other configurations
// of code points as a group.
var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }

// Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.
function skipExtendingChars(str, pos, dir) {
  while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }
  return pos
}

// Returns the value from the range [`from`; `to`] that satisfies
// `pred` and is closest to `from`. Assumes that at least `to`
// satisfies `pred`. Supports `from` being greater than `to`.
function findFirst(pred, from, to) {
  // At any point we are certain `to` satisfies `pred`, don't know
  // whether `from` does.
  var dir = from > to ? -1 : 1;
  for (;;) {
    if (from == to) { return from }
    var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);
    if (mid == from) { return pred(mid) ? from : to }
    if (pred(mid)) { to = mid; }
    else { from = mid + dir; }
  }
}

// The display handles the DOM integration, both for input reading
// and content drawing. It holds references to DOM nodes and
// display-related state.

function Display(place, doc, input) {
  var d = this;
  this.input = input;

  // Covers bottom-right square when both scrollbars are present.
  d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
  d.scrollbarFiller.setAttribute("cm-not-content", "true");
  // Covers bottom of gutter when coverGutterNextToScrollbar is on
  // and h scrollbar is present.
  d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
  d.gutterFiller.setAttribute("cm-not-content", "true");
  // Will contain the actual code, positioned to cover the viewport.
  d.lineDiv = eltP("div", null, "CodeMirror-code");
  // Elements are added to these to represent selection and cursors.
  d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
  d.cursorDiv = elt("div", null, "CodeMirror-cursors");
  // A visibility: hidden element used to find the size of things.
  d.measure = elt("div", null, "CodeMirror-measure");
  // When lines outside of the viewport are measured, they are drawn in this.
  d.lineMeasure = elt("div", null, "CodeMirror-measure");
  // Wraps everything that needs to exist inside the vertically-padded coordinate system
  d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
                    null, "position: relative; outline: none");
  var lines = eltP("div", [d.lineSpace], "CodeMirror-lines");
  // Moved around its parent to cover visible view.
  d.mover = elt("div", [lines], null, "position: relative");
  // Set to the height of the document, allowing scrolling.
  d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
  d.sizerWidth = null;
  // Behavior of elts with overflow: auto and padding is
  // inconsistent across browsers. This is used to ensure the
  // scrollable area is big enough.
  d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
  // Will contain the gutters, if any.
  d.gutters = elt("div", null, "CodeMirror-gutters");
  d.lineGutter = null;
  // Actual scrollable element.
  d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
  d.scroller.setAttribute("tabIndex", "-1");
  // The element in which the editor lives.
  d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");

  // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
  if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
  if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }

  if (place) {
    if (place.appendChild) { place.appendChild(d.wrapper); }
    else { place(d.wrapper); }
  }

  // Current rendered range (may be bigger than the view window).
  d.viewFrom = d.viewTo = doc.first;
  d.reportedViewFrom = d.reportedViewTo = doc.first;
  // Information about the rendered lines.
  d.view = [];
  d.renderedView = null;
  // Holds info about a single rendered line when it was rendered
  // for measurement, while not in view.
  d.externalMeasured = null;
  // Empty space (in pixels) above the view
  d.viewOffset = 0;
  d.lastWrapHeight = d.lastWrapWidth = 0;
  d.updateLineNumbers = null;

  d.nativeBarWidth = d.barHeight = d.barWidth = 0;
  d.scrollbarsClipped = false;

  // Used to only resize the line number gutter when necessary (when
  // the amount of lines crosses a boundary that makes its width change)
  d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
  // Set to true when a non-horizontal-scrolling line widget is
  // added. As an optimization, line widget aligning is skipped when
  // this is false.
  d.alignWidgets = false;

  d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;

  // Tracks the maximum line length so that the horizontal scrollbar
  // can be kept static when scrolling.
  d.maxLine = null;
  d.maxLineLength = 0;
  d.maxLineChanged = false;

  // Used for measuring wheel scrolling granularity
  d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;

  // True when shift is held down.
  d.shift = false;

  // Used to track whether anything happened since the context menu
  // was opened.
  d.selForContextMenu = null;

  d.activeTouch = null;

  input.init(d);
}

// Find the line object corresponding to the given line number.
function getLine(doc, n) {
  n -= doc.first;
  if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") }
  var chunk = doc;
  while (!chunk.lines) {
    for (var i = 0;; ++i) {
      var child = chunk.children[i], sz = child.chunkSize();
      if (n < sz) { chunk = child; break }
      n -= sz;
    }
  }
  return chunk.lines[n]
}

// Get the part of a document between two positions, as an array of
// strings.
function getBetween(doc, start, end) {
  var out = [], n = start.line;
  doc.iter(start.line, end.line + 1, function (line) {
    var text = line.text;
    if (n == end.line) { text = text.slice(0, end.ch); }
    if (n == start.line) { text = text.slice(start.ch); }
    out.push(text);
    ++n;
  });
  return out
}
// Get the lines between from and to, as array of strings.
function getLines(doc, from, to) {
  var out = [];
  doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value
  return out
}

// Update the height of a line, propagating the height change
// upwards to parent nodes.
function updateLineHeight(line, height) {
  var diff = height - line.height;
  if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }
}

// Given a line object, find its line number by walking up through
// its parent links.
function lineNo(line) {
  if (line.parent == null) { return null }
  var cur = line.parent, no = indexOf(cur.lines, line);
  for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
    for (var i = 0;; ++i) {
      if (chunk.children[i] == cur) { break }
      no += chunk.children[i].chunkSize();
    }
  }
  return no + cur.first
}

// Find the line at the given vertical position, using the height
// information in the document tree.
function lineAtHeight(chunk, h) {
  var n = chunk.first;
  outer: do {
    for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {
      var child = chunk.children[i$1], ch = child.height;
      if (h < ch) { chunk = child; continue outer }
      h -= ch;
      n += child.chunkSize();
    }
    return n
  } while (!chunk.lines)
  var i = 0;
  for (; i < chunk.lines.length; ++i) {
    var line = chunk.lines[i], lh = line.height;
    if (h < lh) { break }
    h -= lh;
  }
  return n + i
}

function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}

function lineNumberFor(options, i) {
  return String(options.lineNumberFormatter(i + options.firstLineNumber))
}

// A Pos instance represents a position within the text.
function Pos(line, ch, sticky) {
  if ( sticky === void 0 ) sticky = null;

  if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }
  this.line = line;
  this.ch = ch;
  this.sticky = sticky;
}

// Compare two positions, return 0 if they are the same, a negative
// number when a is less, and a positive number otherwise.
function cmp(a, b) { return a.line - b.line || a.ch - b.ch }

function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }

function copyPos(x) {return Pos(x.line, x.ch)}
function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }
function minPos(a, b) { return cmp(a, b) < 0 ? a : b }

// Most of the external API clips given positions to make sure they
// actually exist within the document.
function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}
function clipPos(doc, pos) {
  if (pos.line < doc.first) { return Pos(doc.first, 0) }
  var last = doc.first + doc.size - 1;
  if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }
  return clipToLen(pos, getLine(doc, pos.line).text.length)
}
function clipToLen(pos, linelen) {
  var ch = pos.ch;
  if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }
  else if (ch < 0) { return Pos(pos.line, 0) }
  else { return pos }
}
function clipPosArray(doc, array) {
  var out = [];
  for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }
  return out
}

// Optimize some code when these features are not used.
var sawReadOnlySpans = false;
var sawCollapsedSpans = false;

function seeReadOnlySpans() {
  sawReadOnlySpans = true;
}

function seeCollapsedSpans() {
  sawCollapsedSpans = true;
}

// TEXTMARKER SPANS

function MarkedSpan(marker, from, to) {
  this.marker = marker;
  this.from = from; this.to = to;
}

// Search an array of spans for a span matching the given marker.
function getMarkedSpanFor(spans, marker) {
  if (spans) { for (var i = 0; i < spans.length; ++i) {
    var span = spans[i];
    if (span.marker == marker) { return span }
  } }
}
// Remove a span from an array, returning undefined if no spans are
// left (we don't store arrays for lines without spans).
function removeMarkedSpan(spans, span) {
  var r;
  for (var i = 0; i < spans.length; ++i)
    { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }
  return r
}
// Add a span to a line.
function addMarkedSpan(line, span) {
  line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
  span.marker.attachLine(line);
}

// Used for the algorithm that adjusts markers for a change in the
// document. These functions cut an array of spans at a given
// character position, returning an array of remaining chunks (or
// undefined if nothing remains).
function markedSpansBefore(old, startCh, isInsert) {
  var nw;
  if (old) { for (var i = 0; i < old.length; ++i) {
    var span = old[i], marker = span.marker;
    var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
    if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
    }
  } }
  return nw
}
function markedSpansAfter(old, endCh, isInsert) {
  var nw;
  if (old) { for (var i = 0; i < old.length; ++i) {
    var span = old[i], marker = span.marker;
    var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
    if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
                                            span.to == null ? null : span.to - endCh));
    }
  } }
  return nw
}

// Given a change object, compute the new set of marker spans that
// cover the line in which the change took place. Removes spans
// entirely within the change, reconnects spans belonging to the
// same marker that appear on both sides of the change, and cuts off
// spans partially within the change. Returns an array of span
// arrays with one element for each line in (after) the change.
function stretchSpansOverChange(doc, change) {
  if (change.full) { return null }
  var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
  var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
  if (!oldFirst && !oldLast) { return null }

  var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
  // Get the spans that 'stick out' on both sides
  var first = markedSpansBefore(oldFirst, startCh, isInsert);
  var last = markedSpansAfter(oldLast, endCh, isInsert);

  // Next, merge those two ends
  var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
  if (first) {
    // Fix up .to properties of first
    for (var i = 0; i < first.length; ++i) {
      var span = first[i];
      if (span.to == null) {
        var found = getMarkedSpanFor(last, span.marker);
        if (!found) { span.to = startCh; }
        else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }
      }
    }
  }
  if (last) {
    // Fix up .from in last (or move them into first in case of sameLine)
    for (var i$1 = 0; i$1 < last.length; ++i$1) {
      var span$1 = last[i$1];
      if (span$1.to != null) { span$1.to += offset; }
      if (span$1.from == null) {
        var found$1 = getMarkedSpanFor(first, span$1.marker);
        if (!found$1) {
          span$1.from = offset;
          if (sameLine) { (first || (first = [])).push(span$1); }
        }
      } else {
        span$1.from += offset;
        if (sameLine) { (first || (first = [])).push(span$1); }
      }
    }
  }
  // Make sure we didn't create any zero-length spans
  if (first) { first = clearEmptySpans(first); }
  if (last && last != first) { last = clearEmptySpans(last); }

  var newMarkers = [first];
  if (!sameLine) {
    // Fill gap with whole-line-spans
    var gap = change.text.length - 2, gapMarkers;
    if (gap > 0 && first)
      { for (var i$2 = 0; i$2 < first.length; ++i$2)
        { if (first[i$2].to == null)
          { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }
    for (var i$3 = 0; i$3 < gap; ++i$3)
      { newMarkers.push(gapMarkers); }
    newMarkers.push(last);
  }
  return newMarkers
}

// Remove spans that are empty and don't have a clearWhenEmpty
// option of false.
function clearEmptySpans(spans) {
  for (var i = 0; i < spans.length; ++i) {
    var span = spans[i];
    if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
      { spans.splice(i--, 1); }
  }
  if (!spans.length) { return null }
  return spans
}

// Used to 'clip' out readOnly ranges when making a change.
function removeReadOnlyRanges(doc, from, to) {
  var markers = null;
  doc.iter(from.line, to.line + 1, function (line) {
    if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {
      var mark = line.markedSpans[i].marker;
      if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
        { (markers || (markers = [])).push(mark); }
    } }
  });
  if (!markers) { return null }
  var parts = [{from: from, to: to}];
  for (var i = 0; i < markers.length; ++i) {
    var mk = markers[i], m = mk.find(0);
    for (var j = 0; j < parts.length; ++j) {
      var p = parts[j];
      if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }
      var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
      if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
        { newParts.push({from: p.from, to: m.from}); }
      if (dto > 0 || !mk.inclusiveRight && !dto)
        { newParts.push({from: m.to, to: p.to}); }
      parts.splice.apply(parts, newParts);
      j += newParts.length - 3;
    }
  }
  return parts
}

// Connect or disconnect spans from a line.
function detachMarkedSpans(line) {
  var spans = line.markedSpans;
  if (!spans) { return }
  for (var i = 0; i < spans.length; ++i)
    { spans[i].marker.detachLine(line); }
  line.markedSpans = null;
}
function attachMarkedSpans(line, spans) {
  if (!spans) { return }
  for (var i = 0; i < spans.length; ++i)
    { spans[i].marker.attachLine(line); }
  line.markedSpans = spans;
}

// Helpers used when computing which overlapping collapsed span
// counts as the larger one.
function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }
function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }

// Returns a number indicating which of two overlapping collapsed
// spans is larger (and thus includes the other). Falls back to
// comparing ids when the spans cover exactly the same range.
function compareCollapsedMarkers(a, b) {
  var lenDiff = a.lines.length - b.lines.length;
  if (lenDiff != 0) { return lenDiff }
  var aPos = a.find(), bPos = b.find();
  var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
  if (fromCmp) { return -fromCmp }
  var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
  if (toCmp) { return toCmp }
  return b.id - a.id
}

// Find out whether a line ends or starts in a collapsed span. If
// so, return the marker for that span.
function collapsedSpanAtSide(line, start) {
  var sps = sawCollapsedSpans && line.markedSpans, found;
  if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {
    sp = sps[i];
    if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
        (!found || compareCollapsedMarkers(found, sp.marker) < 0))
      { found = sp.marker; }
  } }
  return found
}
function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }

function collapsedSpanAround(line, ch) {
  var sps = sawCollapsedSpans && line.markedSpans, found;
  if (sps) { for (var i = 0; i < sps.length; ++i) {
    var sp = sps[i];
    if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&
        (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }
  } }
  return found
}

// Test whether there exists a collapsed span that partially
// overlaps (covers the start or end, but not both) of a new span.
// Such overlap is not allowed.
function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) {
  var line = getLine(doc, lineNo$$1);
  var sps = sawCollapsedSpans && line.markedSpans;
  if (sps) { for (var i = 0; i < sps.length; ++i) {
    var sp = sps[i];
    if (!sp.marker.collapsed) { continue }
    var found = sp.marker.find(0);
    var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
    var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
    if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }
    if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
        fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
      { return true }
  } }
}

// A visual line is a line as drawn on the screen. Folding, for
// example, can cause multiple logical lines to appear on the same
// visual line. This finds the start of the visual line that the
// given line is part of (usually that is the line itself).
function visualLine(line) {
  var merged;
  while (merged = collapsedSpanAtStart(line))
    { line = merged.find(-1, true).line; }
  return line
}

function visualLineEnd(line) {
  var merged;
  while (merged = collapsedSpanAtEnd(line))
    { line = merged.find(1, true).line; }
  return line
}

// Returns an array of logical lines that continue the visual line
// started by the argument, or undefined if there are no such lines.
function visualLineContinued(line) {
  var merged, lines;
  while (merged = collapsedSpanAtEnd(line)) {
    line = merged.find(1, true).line
    ;(lines || (lines = [])).push(line);
  }
  return lines
}

// Get the line number of the start of the visual line that the
// given line number is part of.
function visualLineNo(doc, lineN) {
  var line = getLine(doc, lineN), vis = visualLine(line);
  if (line == vis) { return lineN }
  return lineNo(vis)
}

// Get the line number of the start of the next visual line after
// the given line.
function visualLineEndNo(doc, lineN) {
  if (lineN > doc.lastLine()) { return lineN }
  var line = getLine(doc, lineN), merged;
  if (!lineIsHidden(doc, line)) { return lineN }
  while (merged = collapsedSpanAtEnd(line))
    { line = merged.find(1, true).line; }
  return lineNo(line) + 1
}

// Compute whether a line is hidden. Lines count as hidden when they
// are part of a visual line that starts with another line, or when
// they are entirely covered by collapsed, non-widget span.
function lineIsHidden(doc, line) {
  var sps = sawCollapsedSpans && line.markedSpans;
  if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {
    sp = sps[i];
    if (!sp.marker.collapsed) { continue }
    if (sp.from == null) { return true }
    if (sp.marker.widgetNode) { continue }
    if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
      { return true }
  } }
}
function lineIsHiddenInner(doc, line, span) {
  if (span.to == null) {
    var end = span.marker.find(1, true);
    return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))
  }
  if (span.marker.inclusiveRight && span.to == line.text.length)
    { return true }
  for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {
    sp = line.markedSpans[i];
    if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
        (sp.to == null || sp.to != span.from) &&
        (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
        lineIsHiddenInner(doc, line, sp)) { return true }
  }
}

// Find the height above the given line.
function heightAtLine(lineObj) {
  lineObj = visualLine(lineObj);

  var h = 0, chunk = lineObj.parent;
  for (var i = 0; i < chunk.lines.length; ++i) {
    var line = chunk.lines[i];
    if (line == lineObj) { break }
    else { h += line.height; }
  }
  for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
    for (var i$1 = 0; i$1 < p.children.length; ++i$1) {
      var cur = p.children[i$1];
      if (cur == chunk) { break }
      else { h += cur.height; }
    }
  }
  return h
}

// Compute the character length of a line, taking into account
// collapsed ranges (see markText) that might hide parts, and join
// other lines onto it.
function lineLength(line) {
  if (line.height == 0) { return 0 }
  var len = line.text.length, merged, cur = line;
  while (merged = collapsedSpanAtStart(cur)) {
    var found = merged.find(0, true);
    cur = found.from.line;
    len += found.from.ch - found.to.ch;
  }
  cur = line;
  while (merged = collapsedSpanAtEnd(cur)) {
    var found$1 = merged.find(0, true);
    len -= cur.text.length - found$1.from.ch;
    cur = found$1.to.line;
    len += cur.text.length - found$1.to.ch;
  }
  return len
}

// Find the longest line in the document.
function findMaxLine(cm) {
  var d = cm.display, doc = cm.doc;
  d.maxLine = getLine(doc, doc.first);
  d.maxLineLength = lineLength(d.maxLine);
  d.maxLineChanged = true;
  doc.iter(function (line) {
    var len = lineLength(line);
    if (len > d.maxLineLength) {
      d.maxLineLength = len;
      d.maxLine = line;
    }
  });
}

// BIDI HELPERS

function iterateBidiSections(order, from, to, f) {
  if (!order) { return f(from, to, "ltr", 0) }
  var found = false;
  for (var i = 0; i < order.length; ++i) {
    var part = order[i];
    if (part.from < to && part.to > from || from == to && part.to == from) {
      f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i);
      found = true;
    }
  }
  if (!found) { f(from, to, "ltr"); }
}

var bidiOther = null;
function getBidiPartAt(order, ch, sticky) {
  var found;
  bidiOther = null;
  for (var i = 0; i < order.length; ++i) {
    var cur = order[i];
    if (cur.from < ch && cur.to > ch) { return i }
    if (cur.to == ch) {
      if (cur.from != cur.to && sticky == "before") { found = i; }
      else { bidiOther = i; }
    }
    if (cur.from == ch) {
      if (cur.from != cur.to && sticky != "before") { found = i; }
      else { bidiOther = i; }
    }
  }
  return found != null ? found : bidiOther
}

// Bidirectional ordering algorithm
// See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
// that this (partially) implements.

// One-char codes used for character types:
// L (L):   Left-to-Right
// R (R):   Right-to-Left
// r (AL):  Right-to-Left Arabic
// 1 (EN):  European Number
// + (ES):  European Number Separator
// % (ET):  European Number Terminator
// n (AN):  Arabic Number
// , (CS):  Common Number Separator
// m (NSM): Non-Spacing Mark
// b (BN):  Boundary Neutral
// s (B):   Paragraph Separator
// t (S):   Segment Separator
// w (WS):  Whitespace
// N (ON):  Other Neutrals

// Returns null if characters are ordered as they appear
// (left-to-right), or an array of sections ({from, to, level}
// objects) in the order in which they occur visually.
var bidiOrdering = (function() {
  // Character types for codepoints 0 to 0xff
  var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
  // Character types for codepoints 0x600 to 0x6f9
  var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";
  function charType(code) {
    if (code <= 0xf7) { return lowTypes.charAt(code) }
    else if (0x590 <= code && code <= 0x5f4) { return "R" }
    else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }
    else if (0x6ee <= code && code <= 0x8ac) { return "r" }
    else if (0x2000 <= code && code <= 0x200b) { return "w" }
    else if (code == 0x200c) { return "b" }
    else { return "L" }
  }

  var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
  var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;

  function BidiSpan(level, from, to) {
    this.level = level;
    this.from = from; this.to = to;
  }

  return function(str, direction) {
    var outerType = direction == "ltr" ? "L" : "R";

    if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false }
    var len = str.length, types = [];
    for (var i = 0; i < len; ++i)
      { types.push(charType(str.charCodeAt(i))); }

    // W1. Examine each non-spacing mark (NSM) in the level run, and
    // change the type of the NSM to the type of the previous
    // character. If the NSM is at the start of the level run, it will
    // get the type of sor.
    for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {
      var type = types[i$1];
      if (type == "m") { types[i$1] = prev; }
      else { prev = type; }
    }

    // W2. Search backwards from each instance of a European number
    // until the first strong type (R, L, AL, or sor) is found. If an
    // AL is found, change the type of the European number to Arabic
    // number.
    // W3. Change all ALs to R.
    for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {
      var type$1 = types[i$2];
      if (type$1 == "1" && cur == "r") { types[i$2] = "n"; }
      else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } }
    }

    // W4. A single European separator between two European numbers
    // changes to a European number. A single common separator between
    // two numbers of the same type changes to that type.
    for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {
      var type$2 = types[i$3];
      if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; }
      else if (type$2 == "," && prev$1 == types[i$3+1] &&
               (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; }
      prev$1 = type$2;
    }

    // W5. A sequence of European terminators adjacent to European
    // numbers changes to all European numbers.
    // W6. Otherwise, separators and terminators change to Other
    // Neutral.
    for (var i$4 = 0; i$4 < len; ++i$4) {
      var type$3 = types[i$4];
      if (type$3 == ",") { types[i$4] = "N"; }
      else if (type$3 == "%") {
        var end = (void 0);
        for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {}
        var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
        for (var j = i$4; j < end; ++j) { types[j] = replace; }
        i$4 = end - 1;
      }
    }

    // W7. Search backwards from each instance of a European number
    // until the first strong type (R, L, or sor) is found. If an L is
    // found, then change the type of the European number to L.
    for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {
      var type$4 = types[i$5];
      if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; }
      else if (isStrong.test(type$4)) { cur$1 = type$4; }
    }

    // N1. A sequence of neutrals takes the direction of the
    // surrounding strong text if the text on both sides has the same
    // direction. European and Arabic numbers act as if they were R in
    // terms of their influence on neutrals. Start-of-level-run (sor)
    // and end-of-level-run (eor) are used at level run boundaries.
    // N2. Any remaining neutrals take the embedding direction.
    for (var i$6 = 0; i$6 < len; ++i$6) {
      if (isNeutral.test(types[i$6])) {
        var end$1 = (void 0);
        for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}
        var before = (i$6 ? types[i$6-1] : outerType) == "L";
        var after = (end$1 < len ? types[end$1] : outerType) == "L";
        var replace$1 = before == after ? (before ? "L" : "R") : outerType;
        for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }
        i$6 = end$1 - 1;
      }
    }

    // Here we depart from the documented algorithm, in order to avoid
    // building up an actual levels array. Since there are only three
    // levels (0, 1, 2) in an implementation that doesn't take
    // explicit embedding into account, we can build up the order on
    // the fly, without following the level-based algorithm.
    var order = [], m;
    for (var i$7 = 0; i$7 < len;) {
      if (countsAsLeft.test(types[i$7])) {
        var start = i$7;
        for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}
        order.push(new BidiSpan(0, start, i$7));
      } else {
        var pos = i$7, at = order.length;
        for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {}
        for (var j$2 = pos; j$2 < i$7;) {
          if (countsAsNum.test(types[j$2])) {
            if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); }
            var nstart = j$2;
            for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}
            order.splice(at, 0, new BidiSpan(2, nstart, j$2));
            pos = j$2;
          } else { ++j$2; }
        }
        if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
      }
    }
    if (direction == "ltr") {
      if (order[0].level == 1 && (m = str.match(/^\s+/))) {
        order[0].from = m[0].length;
        order.unshift(new BidiSpan(0, 0, m[0].length));
      }
      if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
        lst(order).to -= m[0].length;
        order.push(new BidiSpan(0, len - m[0].length, len));
      }
    }

    return direction == "rtl" ? order.reverse() : order
  }
})();

// Get the bidi ordering for the given line (and cache it). Returns
// false for lines that are fully left-to-right, and an array of
// BidiSpan objects otherwise.
function getOrder(line, direction) {
  var order = line.order;
  if (order == null) { order = line.order = bidiOrdering(line.text, direction); }
  return order
}

// EVENT HANDLING

// Lightweight event framework. on/off also work on DOM nodes,
// registering native DOM handlers.

var noHandlers = [];

var on = function(emitter, type, f) {
  if (emitter.addEventListener) {
    emitter.addEventListener(type, f, false);
  } else if (emitter.attachEvent) {
    emitter.attachEvent("on" + type, f);
  } else {
    var map$$1 = emitter._handlers || (emitter._handlers = {});
    map$$1[type] = (map$$1[type] || noHandlers).concat(f);
  }
};

function getHandlers(emitter, type) {
  return emitter._handlers && emitter._handlers[type] || noHandlers
}

function off(emitter, type, f) {
  if (emitter.removeEventListener) {
    emitter.removeEventListener(type, f, false);
  } else if (emitter.detachEvent) {
    emitter.detachEvent("on" + type, f);
  } else {
    var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type];
    if (arr) {
      var index = indexOf(arr, f);
      if (index > -1)
        { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }
    }
  }
}

function signal(emitter, type /*, values...*/) {
  var handlers = getHandlers(emitter, type);
  if (!handlers.length) { return }
  var args = Array.prototype.slice.call(arguments, 2);
  for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }
}

// The DOM events that CodeMirror handles can be overridden by
// registering a (non-DOM) handler on the editor for the event name,
// and preventDefault-ing the event in that handler.
function signalDOMEvent(cm, e, override) {
  if (typeof e == "string")
    { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }
  signal(cm, override || e.type, cm, e);
  return e_defaultPrevented(e) || e.codemirrorIgnore
}

function signalCursorActivity(cm) {
  var arr = cm._handlers && cm._handlers.cursorActivity;
  if (!arr) { return }
  var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
  for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)
    { set.push(arr[i]); } }
}

function hasHandler(emitter, type) {
  return getHandlers(emitter, type).length > 0
}

// Add on and off methods to a constructor's prototype, to make
// registering events on such objects more convenient.
function eventMixin(ctor) {
  ctor.prototype.on = function(type, f) {on(this, type, f);};
  ctor.prototype.off = function(type, f) {off(this, type, f);};
}

// Due to the fact that we still support jurassic IE versions, some
// compatibility wrappers are needed.

function e_preventDefault(e) {
  if (e.preventDefault) { e.preventDefault(); }
  else { e.returnValue = false; }
}
function e_stopPropagation(e) {
  if (e.stopPropagation) { e.stopPropagation(); }
  else { e.cancelBubble = true; }
}
function e_defaultPrevented(e) {
  return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false
}
function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}

function e_target(e) {return e.target || e.srcElement}
function e_button(e) {
  var b = e.which;
  if (b == null) {
    if (e.button & 1) { b = 1; }
    else if (e.button & 2) { b = 3; }
    else if (e.button & 4) { b = 2; }
  }
  if (mac && e.ctrlKey && b == 1) { b = 3; }
  return b
}

// Detect drag-and-drop
var dragAndDrop = function() {
  // There is *some* kind of drag-and-drop support in IE6-8, but I
  // couldn't get it to work yet.
  if (ie && ie_version < 9) { return false }
  var div = elt('div');
  return "draggable" in div || "dragDrop" in div
}();

var zwspSupported;
function zeroWidthElement(measure) {
  if (zwspSupported == null) {
    var test = elt("span", "\u200b");
    removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
    if (measure.firstChild.offsetHeight != 0)
      { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }
  }
  var node = zwspSupported ? elt("span", "\u200b") :
    elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
  node.setAttribute("cm-text", "");
  return node
}

// Feature-detect IE's crummy client rect reporting for bidi text
var badBidiRects;
function hasBadBidiRects(measure) {
  if (badBidiRects != null) { return badBidiRects }
  var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
  var r0 = range(txt, 0, 1).getBoundingClientRect();
  var r1 = range(txt, 1, 2).getBoundingClientRect();
  removeChildren(measure);
  if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)
  return badBidiRects = (r1.right - r0.right < 3)
}

// See if "".split is the broken IE version, if so, provide an
// alternative way to split lines.
var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) {
  var pos = 0, result = [], l = string.length;
  while (pos <= l) {
    var nl = string.indexOf("\n", pos);
    if (nl == -1) { nl = string.length; }
    var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
    var rt = line.indexOf("\r");
    if (rt != -1) {
      result.push(line.slice(0, rt));
      pos += rt + 1;
    } else {
      result.push(line);
      pos = nl + 1;
    }
  }
  return result
} : function (string) { return string.split(/\r\n?|\n/); };

var hasSelection = window.getSelection ? function (te) {
  try { return te.selectionStart != te.selectionEnd }
  catch(e) { return false }
} : function (te) {
  var range$$1;
  try {range$$1 = te.ownerDocument.selection.createRange();}
  catch(e) {}
  if (!range$$1 || range$$1.parentElement() != te) { return false }
  return range$$1.compareEndPoints("StartToEnd", range$$1) != 0
};

var hasCopyEvent = (function () {
  var e = elt("div");
  if ("oncopy" in e) { return true }
  e.setAttribute("oncopy", "return;");
  return typeof e.oncopy == "function"
})();

var badZoomedRects = null;
function hasBadZoomedRects(measure) {
  if (badZoomedRects != null) { return badZoomedRects }
  var node = removeChildrenAndAdd(measure, elt("span", "x"));
  var normal = node.getBoundingClientRect();
  var fromRange = range(node, 0, 1).getBoundingClientRect();
  return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1
}

// Known modes, by name and by MIME
var modes = {};
var mimeModes = {};

// Extra arguments are stored as the mode's dependencies, which is
// used by (legacy) mechanisms like loadmode.js to automatically
// load a mode. (Preferred mechanism is the require/define calls.)
function defineMode(name, mode) {
  if (arguments.length > 2)
    { mode.dependencies = Array.prototype.slice.call(arguments, 2); }
  modes[name] = mode;
}

function defineMIME(mime, spec) {
  mimeModes[mime] = spec;
}

// Given a MIME type, a {name, ...options} config object, or a name
// string, return a mode config object.
function resolveMode(spec) {
  if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
    spec = mimeModes[spec];
  } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
    var found = mimeModes[spec.name];
    if (typeof found == "string") { found = {name: found}; }
    spec = createObj(found, spec);
    spec.name = found.name;
  } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
    return resolveMode("application/xml")
  } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) {
    return resolveMode("application/json")
  }
  if (typeof spec == "string") { return {name: spec} }
  else { return spec || {name: "null"} }
}

// Given a mode spec (anything that resolveMode accepts), find and
// initialize an actual mode object.
function getMode(options, spec) {
  spec = resolveMode(spec);
  var mfactory = modes[spec.name];
  if (!mfactory) { return getMode(options, "text/plain") }
  var modeObj = mfactory(options, spec);
  if (modeExtensions.hasOwnProperty(spec.name)) {
    var exts = modeExtensions[spec.name];
    for (var prop in exts) {
      if (!exts.hasOwnProperty(prop)) { continue }
      if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; }
      modeObj[prop] = exts[prop];
    }
  }
  modeObj.name = spec.name;
  if (spec.helperType) { modeObj.helperType = spec.helperType; }
  if (spec.modeProps) { for (var prop$1 in spec.modeProps)
    { modeObj[prop$1] = spec.modeProps[prop$1]; } }

  return modeObj
}

// This can be used to attach properties to mode objects from
// outside the actual mode definition.
var modeExtensions = {};
function extendMode(mode, properties) {
  var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
  copyObj(properties, exts);
}

function copyState(mode, state) {
  if (state === true) { return state }
  if (mode.copyState) { return mode.copyState(state) }
  var nstate = {};
  for (var n in state) {
    var val = state[n];
    if (val instanceof Array) { val = val.concat([]); }
    nstate[n] = val;
  }
  return nstate
}

// Given a mode and a state (for that mode), find the inner mode and
// state at the position that the state refers to.
function innerMode(mode, state) {
  var info;
  while (mode.innerMode) {
    info = mode.innerMode(state);
    if (!info || info.mode == mode) { break }
    state = info.state;
    mode = info.mode;
  }
  return info || {mode: mode, state: state}
}

function startState(mode, a1, a2) {
  return mode.startState ? mode.startState(a1, a2) : true
}

// STRING STREAM

// Fed to the mode parsers, provides helper functions to make
// parsers more succinct.

var StringStream = function(string, tabSize, lineOracle) {
  this.pos = this.start = 0;
  this.string = string;
  this.tabSize = tabSize || 8;
  this.lastColumnPos = this.lastColumnValue = 0;
  this.lineStart = 0;
  this.lineOracle = lineOracle;
};

StringStream.prototype.eol = function () {return this.pos >= this.string.length};
StringStream.prototype.sol = function () {return this.pos == this.lineStart};
StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};
StringStream.prototype.next = function () {
  if (this.pos < this.string.length)
    { return this.string.charAt(this.pos++) }
};
StringStream.prototype.eat = function (match) {
  var ch = this.string.charAt(this.pos);
  var ok;
  if (typeof match == "string") { ok = ch == match; }
  else { ok = ch && (match.test ? match.test(ch) : match(ch)); }
  if (ok) {++this.pos; return ch}
};
StringStream.prototype.eatWhile = function (match) {
  var start = this.pos;
  while (this.eat(match)){}
  return this.pos > start
};
StringStream.prototype.eatSpace = function () {
    var this$1 = this;

  var start = this.pos;
  while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; }
  return this.pos > start
};
StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};
StringStream.prototype.skipTo = function (ch) {
  var found = this.string.indexOf(ch, this.pos);
  if (found > -1) {this.pos = found; return true}
};
StringStream.prototype.backUp = function (n) {this.pos -= n;};
StringStream.prototype.column = function () {
  if (this.lastColumnPos < this.start) {
    this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
    this.lastColumnPos = this.start;
  }
  return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
};
StringStream.prototype.indentation = function () {
  return countColumn(this.string, null, this.tabSize) -
    (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
};
StringStream.prototype.match = function (pattern, consume, caseInsensitive) {
  if (typeof pattern == "string") {
    var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };
    var substr = this.string.substr(this.pos, pattern.length);
    if (cased(substr) == cased(pattern)) {
      if (consume !== false) { this.pos += pattern.length; }
      return true
    }
  } else {
    var match = this.string.slice(this.pos).match(pattern);
    if (match && match.index > 0) { return null }
    if (match && consume !== false) { this.pos += match[0].length; }
    return match
  }
};
StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};
StringStream.prototype.hideFirstChars = function (n, inner) {
  this.lineStart += n;
  try { return inner() }
  finally { this.lineStart -= n; }
};
StringStream.prototype.lookAhead = function (n) {
  var oracle = this.lineOracle;
  return oracle && oracle.lookAhead(n)
};
StringStream.prototype.baseToken = function () {
  var oracle = this.lineOracle;
  return oracle && oracle.baseToken(this.pos)
};

var SavedContext = function(state, lookAhead) {
  this.state = state;
  this.lookAhead = lookAhead;
};

var Context = function(doc, state, line, lookAhead) {
  this.state = state;
  this.doc = doc;
  this.line = line;
  this.maxLookAhead = lookAhead || 0;
  this.baseTokens = null;
  this.baseTokenPos = 1;
};

Context.prototype.lookAhead = function (n) {
  var line = this.doc.getLine(this.line + n);
  if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }
  return line
};

Context.prototype.baseToken = function (n) {
    var this$1 = this;

  if (!this.baseTokens) { return null }
  while (this.baseTokens[this.baseTokenPos] <= n)
    { this$1.baseTokenPos += 2; }
  var type = this.baseTokens[this.baseTokenPos + 1];
  return {type: type && type.replace(/( |^)overlay .*/, ""),
          size: this.baseTokens[this.baseTokenPos] - n}
};

Context.prototype.nextLine = function () {
  this.line++;
  if (this.maxLookAhead > 0) { this.maxLookAhead--; }
};

Context.fromSaved = function (doc, saved, line) {
  if (saved instanceof SavedContext)
    { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }
  else
    { return new Context(doc, copyState(doc.mode, saved), line) }
};

Context.prototype.save = function (copy) {
  var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;
  return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state
};


// Compute a style array (an array starting with a mode generation
// -- for invalidation -- followed by pairs of end positions and
// style strings), which is used to highlight the tokens on the
// line.
function highlightLine(cm, line, context, forceToEnd) {
  // A styles array always starts with a number identifying the
  // mode/overlays that it is based on (for easy invalidation).
  var st = [cm.state.modeGen], lineClasses = {};
  // Compute the base array of styles
  runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },
          lineClasses, forceToEnd);
  var state = context.state;

  // Run overlays, adjust style array.
  var loop = function ( o ) {
    context.baseTokens = st;
    var overlay = cm.state.overlays[o], i = 1, at = 0;
    context.state = true;
    runMode(cm, line.text, overlay.mode, context, function (end, style) {
      var start = i;
      // Ensure there's a token end at the current position, and that i points at it
      while (at < end) {
        var i_end = st[i];
        if (i_end > end)
          { st.splice(i, 1, end, st[i+1], i_end); }
        i += 2;
        at = Math.min(end, i_end);
      }
      if (!style) { return }
      if (overlay.opaque) {
        st.splice(start, i - start, end, "overlay " + style);
        i = start + 2;
      } else {
        for (; start < i; start += 2) {
          var cur = st[start+1];
          st[start+1] = (cur ? cur + " " : "") + "overlay " + style;
        }
      }
    }, lineClasses);
    context.state = state;
    context.baseTokens = null;
    context.baseTokenPos = 1;
  };

  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );

  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
}

function getLineStyles(cm, line, updateFrontier) {
  if (!line.styles || line.styles[0] != cm.state.modeGen) {
    var context = getContextBefore(cm, lineNo(line));
    var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);
    var result = highlightLine(cm, line, context);
    if (resetState) { context.state = resetState; }
    line.stateAfter = context.save(!resetState);
    line.styles = result.styles;
    if (result.classes) { line.styleClasses = result.classes; }
    else if (line.styleClasses) { line.styleClasses = null; }
    if (updateFrontier === cm.doc.highlightFrontier)
      { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }
  }
  return line.styles
}

function getContextBefore(cm, n, precise) {
  var doc = cm.doc, display = cm.display;
  if (!doc.mode.startState) { return new Context(doc, true, n) }
  var start = findStartLine(cm, n, precise);
  var saved = start > doc.first && getLine(doc, start - 1).stateAfter;
  var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);

  doc.iter(start, n, function (line) {
    processLine(cm, line.text, context);
    var pos = context.line;
    line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;
    context.nextLine();
  });
  if (precise) { doc.modeFrontier = context.line; }
  return context
}

// Lightweight form of highlight -- proceed over this line and
// update state, but don't save a style array. Used for lines that
// aren't currently visible.
function processLine(cm, text, context, startAt) {
  var mode = cm.doc.mode;
  var stream = new StringStream(text, cm.options.tabSize, context);
  stream.start = stream.pos = startAt || 0;
  if (text == "") { callBlankLine(mode, context.state); }
  while (!stream.eol()) {
    readToken(mode, stream, context.state);
    stream.start = stream.pos;
  }
}

function callBlankLine(mode, state) {
  if (mode.blankLine) { return mode.blankLine(state) }
  if (!mode.innerMode) { return }
  var inner = innerMode(mode, state);
  if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }
}

function readToken(mode, stream, state, inner) {
  for (var i = 0; i < 10; i++) {
    if (inner) { inner[0] = innerMode(mode, state).mode; }
    var style = mode.token(stream, state);
    if (stream.pos > stream.start) { return style }
  }
  throw new Error("Mode " + mode.name + " failed to advance stream.")
}

var Token = function(stream, type, state) {
  this.start = stream.start; this.end = stream.pos;
  this.string = stream.current();
  this.type = type || null;
  this.state = state;
};

// Utility for getTokenAt and getLineTokens
function takeToken(cm, pos, precise, asArray) {
  var doc = cm.doc, mode = doc.mode, style;
  pos = clipPos(doc, pos);
  var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);
  var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;
  if (asArray) { tokens = []; }
  while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
    stream.start = stream.pos;
    style = readToken(mode, stream, context.state);
    if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }
  }
  return asArray ? tokens : new Token(stream, style, context.state)
}

function extractLineClasses(type, output) {
  if (type) { for (;;) {
    var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
    if (!lineClass) { break }
    type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
    var prop = lineClass[1] ? "bgClass" : "textClass";
    if (output[prop] == null)
      { output[prop] = lineClass[2]; }
    else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
      { output[prop] += " " + lineClass[2]; }
  } }
  return type
}

// Run the given mode's parser over a line, calling f for each token.
function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {
  var flattenSpans = mode.flattenSpans;
  if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
  var curStart = 0, curStyle = null;
  var stream = new StringStream(text, cm.options.tabSize, context), style;
  var inner = cm.options.addModeClass && [null];
  if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }
  while (!stream.eol()) {
    if (stream.pos > cm.options.maxHighlightLength) {
      flattenSpans = false;
      if (forceToEnd) { processLine(cm, text, context, stream.pos); }
      stream.pos = text.length;
      style = null;
    } else {
      style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);
    }
    if (inner) {
      var mName = inner[0].name;
      if (mName) { style = "m-" + (style ? mName + " " + style : mName); }
    }
    if (!flattenSpans || curStyle != style) {
      while (curStart < stream.start) {
        curStart = Math.min(stream.start, curStart + 5000);
        f(curStart, curStyle);
      }
      curStyle = style;
    }
    stream.start = stream.pos;
  }
  while (curStart < stream.pos) {
    // Webkit seems to refuse to render text nodes longer than 57444
    // characters, and returns inaccurate measurements in nodes
    // starting around 5000 chars.
    var pos = Math.min(stream.pos, curStart + 5000);
    f(pos, curStyle);
    curStart = pos;
  }
}

// Finds the line to start with when starting a parse. Tries to
// find a line with a stateAfter, so that it can start with a
// valid state. If that fails, it returns the line with the
// smallest indentation, which tends to need the least context to
// parse correctly.
function findStartLine(cm, n, precise) {
  var minindent, minline, doc = cm.doc;
  var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
  for (var search = n; search > lim; --search) {
    if (search <= doc.first) { return doc.first }
    var line = getLine(doc, search - 1), after = line.stateAfter;
    if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))
      { return search }
    var indented = countColumn(line.text, null, cm.options.tabSize);
    if (minline == null || minindent > indented) {
      minline = search - 1;
      minindent = indented;
    }
  }
  return minline
}

function retreatFrontier(doc, n) {
  doc.modeFrontier = Math.min(doc.modeFrontier, n);
  if (doc.highlightFrontier < n - 10) { return }
  var start = doc.first;
  for (var line = n - 1; line > start; line--) {
    var saved = getLine(doc, line).stateAfter;
    // change is on 3
    // state on line 1 looked ahead 2 -- so saw 3
    // test 1 + 2 < 3 should cover this
    if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {
      start = line + 1;
      break
    }
  }
  doc.highlightFrontier = Math.min(doc.highlightFrontier, start);
}

// LINE DATA STRUCTURE

// Line objects. These hold state related to a line, including
// highlighting info (the styles array).
var Line = function(text, markedSpans, estimateHeight) {
  this.text = text;
  attachMarkedSpans(this, markedSpans);
  this.height = estimateHeight ? estimateHeight(this) : 1;
};

Line.prototype.lineNo = function () { return lineNo(this) };
eventMixin(Line);

// Change the content (text, markers) of a line. Automatically
// invalidates cached information and tries to re-estimate the
// line's height.
function updateLine(line, text, markedSpans, estimateHeight) {
  line.text = text;
  if (line.stateAfter) { line.stateAfter = null; }
  if (line.styles) { line.styles = null; }
  if (line.order != null) { line.order = null; }
  detachMarkedSpans(line);
  attachMarkedSpans(line, markedSpans);
  var estHeight = estimateHeight ? estimateHeight(line) : 1;
  if (estHeight != line.height) { updateLineHeight(line, estHeight); }
}

// Detach a line from the document tree and its markers.
function cleanUpLine(line) {
  line.parent = null;
  detachMarkedSpans(line);
}

// Convert a style as returned by a mode (either null, or a string
// containing one or more styles) to a CSS style. This is cached,
// and also looks for line-wide styles.
var styleToClassCache = {};
var styleToClassCacheWithMode = {};
function interpretTokenStyle(style, options) {
  if (!style || /^\s*$/.test(style)) { return null }
  var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
  return cache[style] ||
    (cache[style] = style.replace(/\S+/g, "cm-$&"))
}

// Render the DOM representation of the text of a line. Also builds
// up a 'line map', which points at the DOM nodes that represent
// specific stretches of text, and is used by the measuring code.
// The returned object contains the DOM node, this map, and
// information about line-wide styles that were set by the mode.
function buildLineContent(cm, lineView) {
  // The padding-right forces the element to have a 'border', which
  // is needed on Webkit to be able to get line-level bounding
  // rectangles for it (in measureChar).
  var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null);
  var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content,
                 col: 0, pos: 0, cm: cm,
                 trailingSpace: false,
                 splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")};
  lineView.measure = {};

  // Iterate over the logical lines that make up this visual line.
  for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
    var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);
    builder.pos = 0;
    builder.addToken = buildToken;
    // Optionally wire in some hacks into the token-rendering
    // algorithm, to deal with browser quirks.
    if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))
      { builder.addToken = buildTokenBadBidi(builder.addToken, order); }
    builder.map = [];
    var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
    insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
    if (line.styleClasses) {
      if (line.styleClasses.bgClass)
        { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); }
      if (line.styleClasses.textClass)
        { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); }
    }

    // Ensure at least a single node is present, for measuring.
    if (builder.map.length == 0)
      { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }

    // Store the map and a cache object for the current logical line
    if (i == 0) {
      lineView.measure.map = builder.map;
      lineView.measure.cache = {};
    } else {
      (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)
      ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});
    }
  }

  // See issue #2901
  if (webkit) {
    var last = builder.content.lastChild;
    if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
      { builder.content.className = "cm-tab-wrap-hack"; }
  }

  signal(cm, "renderLine", cm, lineView.line, builder.pre);
  if (builder.pre.className)
    { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); }

  return builder
}

function defaultSpecialCharPlaceholder(ch) {
  var token = elt("span", "\u2022", "cm-invalidchar");
  token.title = "\\u" + ch.charCodeAt(0).toString(16);
  token.setAttribute("aria-label", token.title);
  return token
}

// Build up the DOM representation for a single token, and add it to
// the line map. Takes care to render special characters separately.
function buildToken(builder, text, style, startStyle, endStyle, title, css) {
  if (!text) { return }
  var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;
  var special = builder.cm.state.specialChars, mustWrap = false;
  var content;
  if (!special.test(text)) {
    builder.col += text.length;
    content = document.createTextNode(displayText);
    builder.map.push(builder.pos, builder.pos + text.length, content);
    if (ie && ie_version < 9) { mustWrap = true; }
    builder.pos += text.length;
  } else {
    content = document.createDocumentFragment();
    var pos = 0;
    while (true) {
      special.lastIndex = pos;
      var m = special.exec(text);
      var skipped = m ? m.index - pos : text.length - pos;
      if (skipped) {
        var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
        if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); }
        else { content.appendChild(txt); }
        builder.map.push(builder.pos, builder.pos + skipped, txt);
        builder.col += skipped;
        builder.pos += skipped;
      }
      if (!m) { break }
      pos += skipped + 1;
      var txt$1 = (void 0);
      if (m[0] == "\t") {
        var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
        txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
        txt$1.setAttribute("role", "presentation");
        txt$1.setAttribute("cm-text", "\t");
        builder.col += tabWidth;
      } else if (m[0] == "\r" || m[0] == "\n") {
        txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
        txt$1.setAttribute("cm-text", m[0]);
        builder.col += 1;
      } else {
        txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);
        txt$1.setAttribute("cm-text", m[0]);
        if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); }
        else { content.appendChild(txt$1); }
        builder.col += 1;
      }
      builder.map.push(builder.pos, builder.pos + 1, txt$1);
      builder.pos++;
    }
  }
  builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;
  if (style || startStyle || endStyle || mustWrap || css) {
    var fullStyle = style || "";
    if (startStyle) { fullStyle += startStyle; }
    if (endStyle) { fullStyle += endStyle; }
    var token = elt("span", [content], fullStyle, css);
    if (title) { token.title = title; }
    return builder.content.appendChild(token)
  }
  builder.content.appendChild(content);
}

function splitSpaces(text, trailingBefore) {
  if (text.length > 1 && !/  /.test(text)) { return text }
  var spaceBefore = trailingBefore, result = "";
  for (var i = 0; i < text.length; i++) {
    var ch = text.charAt(i);
    if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))
      { ch = "\u00a0"; }
    result += ch;
    spaceBefore = ch == " ";
  }
  return result
}

// Work around nonsense dimensions being reported for stretches of
// right-to-left text.
function buildTokenBadBidi(inner, order) {
  return function (builder, text, style, startStyle, endStyle, title, css) {
    style = style ? style + " cm-force-border" : "cm-force-border";
    var start = builder.pos, end = start + text.length;
    for (;;) {
      // Find the part that overlaps with the start of this text
      var part = (void 0);
      for (var i = 0; i < order.length; i++) {
        part = order[i];
        if (part.to > start && part.from <= start) { break }
      }
      if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, title, css) }
      inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
      startStyle = null;
      text = text.slice(part.to - start);
      start = part.to;
    }
  }
}

function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
  var widget = !ignoreWidget && marker.widgetNode;
  if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }
  if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
    if (!widget)
      { widget = builder.content.appendChild(document.createElement("span")); }
    widget.setAttribute("cm-marker", marker.id);
  }
  if (widget) {
    builder.cm.display.input.setUneditable(widget);
    builder.content.appendChild(widget);
  }
  builder.pos += size;
  builder.trailingSpace = false;
}

// Outputs a number of spans to make up a line, taking highlighting
// and marked text into account.
function insertLineContent(line, builder, styles) {
  var spans = line.markedSpans, allText = line.text, at = 0;
  if (!spans) {
    for (var i$1 = 1; i$1 < styles.length; i$1+=2)
      { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }
    return
  }

  var len = allText.length, pos = 0, i = 1, text = "", style, css;
  var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
  for (;;) {
    if (nextChange == pos) { // Update current marker set
      spanStyle = spanEndStyle = spanStartStyle = title = css = "";
      collapsed = null; nextChange = Infinity;
      var foundBookmarks = [], endStyles = (void 0);
      for (var j = 0; j < spans.length; ++j) {
        var sp = spans[j], m = sp.marker;
        if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
          foundBookmarks.push(m);
        } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
          if (sp.to != null && sp.to != pos && nextChange > sp.to) {
            nextChange = sp.to;
            spanEndStyle = "";
          }
          if (m.className) { spanStyle += " " + m.className; }
          if (m.css) { css = (css ? css + ";" : "") + m.css; }
          if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; }
          if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }
          if (m.title && !title) { title = m.title; }
          if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
            { collapsed = sp; }
        } else if (sp.from > pos && nextChange > sp.from) {
          nextChange = sp.from;
        }
      }
      if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)
        { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } }

      if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)
        { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }
      if (collapsed && (collapsed.from || 0) == pos) {
        buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
                           collapsed.marker, collapsed.from == null);
        if (collapsed.to == null) { return }
        if (collapsed.to == pos) { collapsed = false; }
      }
    }
    if (pos >= len) { break }

    var upto = Math.min(len, nextChange);
    while (true) {
      if (text) {
        var end = pos + text.length;
        if (!collapsed) {
          var tokenText = end > upto ? text.slice(0, upto - pos) : text;
          builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
                           spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
        }
        if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}
        pos = end;
        spanStartStyle = "";
      }
      text = allText.slice(at, at = styles[i++]);
      style = interpretTokenStyle(styles[i++], builder.cm.options);
    }
  }
}


// These objects are used to represent the visible (currently drawn)
// part of the document. A LineView may correspond to multiple
// logical lines, if those are connected by collapsed ranges.
function LineView(doc, line, lineN) {
  // The starting line
  this.line = line;
  // Continuing lines, if any
  this.rest = visualLineContinued(line);
  // Number of logical lines in this visual line
  this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
  this.node = this.text = null;
  this.hidden = lineIsHidden(doc, line);
}

// Create a range of LineView objects for the given lines.
function buildViewArray(cm, from, to) {
  var array = [], nextPos;
  for (var pos = from; pos < to; pos = nextPos) {
    var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
    nextPos = pos + view.size;
    array.push(view);
  }
  return array
}

var operationGroup = null;

function pushOperation(op) {
  if (operationGroup) {
    operationGroup.ops.push(op);
  } else {
    op.ownsGroup = operationGroup = {
      ops: [op],
      delayedCallbacks: []
    };
  }
}

function fireCallbacksForOps(group) {
  // Calls delayed callbacks and cursorActivity handlers until no
  // new ones appear
  var callbacks = group.delayedCallbacks, i = 0;
  do {
    for (; i < callbacks.length; i++)
      { callbacks[i].call(null); }
    for (var j = 0; j < group.ops.length; j++) {
      var op = group.ops[j];
      if (op.cursorActivityHandlers)
        { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
          { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }
    }
  } while (i < callbacks.length)
}

function finishOperation(op, endCb) {
  var group = op.ownsGroup;
  if (!group) { return }

  try { fireCallbacksForOps(group); }
  finally {
    operationGroup = null;
    endCb(group);
  }
}

var orphanDelayedCallbacks = null;

// Often, we want to signal events at a point where we are in the
// middle of some work, but don't want the handler to start calling
// other methods on the editor, which might be in an inconsistent
// state or simply not expect any other events to happen.
// signalLater looks whether there are any handlers, and schedules
// them to be executed when the last operation ends, or, if no
// operation is active, when a timeout fires.
function signalLater(emitter, type /*, values...*/) {
  var arr = getHandlers(emitter, type);
  if (!arr.length) { return }
  var args = Array.prototype.slice.call(arguments, 2), list;
  if (operationGroup) {
    list = operationGroup.delayedCallbacks;
  } else if (orphanDelayedCallbacks) {
    list = orphanDelayedCallbacks;
  } else {
    list = orphanDelayedCallbacks = [];
    setTimeout(fireOrphanDelayed, 0);
  }
  var loop = function ( i ) {
    list.push(function () { return arr[i].apply(null, args); });
  };

  for (var i = 0; i < arr.length; ++i)
    loop( i );
}

function fireOrphanDelayed() {
  var delayed = orphanDelayedCallbacks;
  orphanDelayedCallbacks = null;
  for (var i = 0; i < delayed.length; ++i) { delayed[i](); }
}

// When an aspect of a line changes, a string is added to
// lineView.changes. This updates the relevant part of the line's
// DOM structure.
function updateLineForChanges(cm, lineView, lineN, dims) {
  for (var j = 0; j < lineView.changes.length; j++) {
    var type = lineView.changes[j];
    if (type == "text") { updateLineText(cm, lineView); }
    else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); }
    else if (type == "class") { updateLineClasses(cm, lineView); }
    else if (type == "widget") { updateLineWidgets(cm, lineView, dims); }
  }
  lineView.changes = null;
}

// Lines with gutter elements, widgets or a background class need to
// be wrapped, and have the extra elements added to the wrapper div
function ensureLineWrapped(lineView) {
  if (lineView.node == lineView.text) {
    lineView.node = elt("div", null, null, "position: relative");
    if (lineView.text.parentNode)
      { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }
    lineView.node.appendChild(lineView.text);
    if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }
  }
  return lineView.node
}

function updateLineBackground(cm, lineView) {
  var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
  if (cls) { cls += " CodeMirror-linebackground"; }
  if (lineView.background) {
    if (cls) { lineView.background.className = cls; }
    else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
  } else if (cls) {
    var wrap = ensureLineWrapped(lineView);
    lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
    cm.display.input.setUneditable(lineView.background);
  }
}

// Wrapper around buildLineContent which will reuse the structure
// in display.externalMeasured when possible.
function getLineContent(cm, lineView) {
  var ext = cm.display.externalMeasured;
  if (ext && ext.line == lineView.line) {
    cm.display.externalMeasured = null;
    lineView.measure = ext.measure;
    return ext.built
  }
  return buildLineContent(cm, lineView)
}

// Redraw the line's text. Interacts with the background and text
// classes because the mode may output tokens that influence these
// classes.
function updateLineText(cm, lineView) {
  var cls = lineView.text.className;
  var built = getLineContent(cm, lineView);
  if (lineView.text == lineView.node) { lineView.node = built.pre; }
  lineView.text.parentNode.replaceChild(built.pre, lineView.text);
  lineView.text = built.pre;
  if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
    lineView.bgClass = built.bgClass;
    lineView.textClass = built.textClass;
    updateLineClasses(cm, lineView);
  } else if (cls) {
    lineView.text.className = cls;
  }
}

function updateLineClasses(cm, lineView) {
  updateLineBackground(cm, lineView);
  if (lineView.line.wrapClass)
    { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }
  else if (lineView.node != lineView.text)
    { lineView.node.className = ""; }
  var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
  lineView.text.className = textClass || "";
}

function updateLineGutter(cm, lineView, lineN, dims) {
  if (lineView.gutter) {
    lineView.node.removeChild(lineView.gutter);
    lineView.gutter = null;
  }
  if (lineView.gutterBackground) {
    lineView.node.removeChild(lineView.gutterBackground);
    lineView.gutterBackground = null;
  }
  if (lineView.line.gutterClass) {
    var wrap = ensureLineWrapped(lineView);
    lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
                                    ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px"));
    cm.display.input.setUneditable(lineView.gutterBackground);
    wrap.insertBefore(lineView.gutterBackground, lineView.text);
  }
  var markers = lineView.line.gutterMarkers;
  if (cm.options.lineNumbers || markers) {
    var wrap$1 = ensureLineWrapped(lineView);
    var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"));
    cm.display.input.setUneditable(gutterWrap);
    wrap$1.insertBefore(gutterWrap, lineView.text);
    if (lineView.line.gutterClass)
      { gutterWrap.className += " " + lineView.line.gutterClass; }
    if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
      { lineView.lineNumber = gutterWrap.appendChild(
        elt("div", lineNumberFor(cm.options, lineN),
            "CodeMirror-linenumber CodeMirror-gutter-elt",
            ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); }
    if (markers) { for (var k = 0; k < cm.options.gutters.length; ++k) {
      var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
      if (found)
        { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt",
                                   ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); }
    } }
  }
}

function updateLineWidgets(cm, lineView, dims) {
  if (lineView.alignable) { lineView.alignable = null; }
  for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {
    next = node.nextSibling;
    if (node.className == "CodeMirror-linewidget")
      { lineView.node.removeChild(node); }
  }
  insertLineWidgets(cm, lineView, dims);
}

// Build a line's DOM representation from scratch
function buildLineElement(cm, lineView, lineN, dims) {
  var built = getLineContent(cm, lineView);
  lineView.text = lineView.node = built.pre;
  if (built.bgClass) { lineView.bgClass = built.bgClass; }
  if (built.textClass) { lineView.textClass = built.textClass; }

  updateLineClasses(cm, lineView);
  updateLineGutter(cm, lineView, lineN, dims);
  insertLineWidgets(cm, lineView, dims);
  return lineView.node
}

// A lineView may contain multiple logical lines (when merged by
// collapsed spans). The widgets for all of them need to be drawn.
function insertLineWidgets(cm, lineView, dims) {
  insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
  if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)
    { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }
}

function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
  if (!line.widgets) { return }
  var wrap = ensureLineWrapped(lineView);
  for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
    var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
    if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); }
    positionLineWidget(widget, node, lineView, dims);
    cm.display.input.setUneditable(node);
    if (allowAbove && widget.above)
      { wrap.insertBefore(node, lineView.gutter || lineView.text); }
    else
      { wrap.appendChild(node); }
    signalLater(widget, "redraw");
  }
}

function positionLineWidget(widget, node, lineView, dims) {
  if (widget.noHScroll) {
    (lineView.alignable || (lineView.alignable = [])).push(node);
    var width = dims.wrapperWidth;
    node.style.left = dims.fixedPos + "px";
    if (!widget.coverGutter) {
      width -= dims.gutterTotalWidth;
      node.style.paddingLeft = dims.gutterTotalWidth + "px";
    }
    node.style.width = width + "px";
  }
  if (widget.coverGutter) {
    node.style.zIndex = 5;
    node.style.position = "relative";
    if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; }
  }
}

function widgetHeight(widget) {
  if (widget.height != null) { return widget.height }
  var cm = widget.doc.cm;
  if (!cm) { return 0 }
  if (!contains(document.body, widget.node)) {
    var parentStyle = "position: relative;";
    if (widget.coverGutter)
      { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; }
    if (widget.noHScroll)
      { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; }
    removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
  }
  return widget.height = widget.node.parentNode.offsetHeight
}

// Return true when the given mouse event happened in a widget
function eventInWidget(display, e) {
  for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
    if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
        (n.parentNode == display.sizer && n != display.mover))
      { return true }
  }
}

// POSITION MEASUREMENT

function paddingTop(display) {return display.lineSpace.offsetTop}
function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}
function paddingH(display) {
  if (display.cachedPaddingH) { return display.cachedPaddingH }
  var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
  var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
  var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
  if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }
  return data
}

function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }
function displayWidth(cm) {
  return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth
}
function displayHeight(cm) {
  return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight
}

// Ensure the lineView.wrapping.heights array is populated. This is
// an array of bottom offsets for the lines that make up a drawn
// line. When lineWrapping is on, there might be more than one
// height.
function ensureLineHeights(cm, lineView, rect) {
  var wrapping = cm.options.lineWrapping;
  var curWidth = wrapping && displayWidth(cm);
  if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
    var heights = lineView.measure.heights = [];
    if (wrapping) {
      lineView.measure.width = curWidth;
      var rects = lineView.text.firstChild.getClientRects();
      for (var i = 0; i < rects.length - 1; i++) {
        var cur = rects[i], next = rects[i + 1];
        if (Math.abs(cur.bottom - next.bottom) > 2)
          { heights.push((cur.bottom + next.top) / 2 - rect.top); }
      }
    }
    heights.push(rect.bottom - rect.top);
  }
}

// Find a line map (mapping character offsets to text nodes) and a
// measurement cache for the given line number. (A line view might
// contain multiple lines when collapsed ranges are present.)
function mapFromLineView(lineView, line, lineN) {
  if (lineView.line == line)
    { return {map: lineView.measure.map, cache: lineView.measure.cache} }
  for (var i = 0; i < lineView.rest.length; i++)
    { if (lineView.rest[i] == line)
      { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }
  for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)
    { if (lineNo(lineView.rest[i$1]) > lineN)
      { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }
}

// Render a line into the hidden node display.externalMeasured. Used
// when measurement is needed for a line that's not in the viewport.
function updateExternalMeasurement(cm, line) {
  line = visualLine(line);
  var lineN = lineNo(line);
  var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
  view.lineN = lineN;
  var built = view.built = buildLineContent(cm, view);
  view.text = built.pre;
  removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
  return view
}

// Get a {top, bottom, left, right} box (in line-local coordinates)
// for a given character.
function measureChar(cm, line, ch, bias) {
  return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)
}

// Find a line view that corresponds to the given line number.
function findViewForLine(cm, lineN) {
  if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
    { return cm.display.view[findViewIndex(cm, lineN)] }
  var ext = cm.display.externalMeasured;
  if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
    { return ext }
}

// Measurement can be split in two steps, the set-up work that
// applies to the whole line, and the measurement of the actual
// character. Functions like coordsChar, that need to do a lot of
// measurements in a row, can thus ensure that the set-up work is
// only done once.
function prepareMeasureForLine(cm, line) {
  var lineN = lineNo(line);
  var view = findViewForLine(cm, lineN);
  if (view && !view.text) {
    view = null;
  } else if (view && view.changes) {
    updateLineForChanges(cm, view, lineN, getDimensions(cm));
    cm.curOp.forceUpdate = true;
  }
  if (!view)
    { view = updateExternalMeasurement(cm, line); }

  var info = mapFromLineView(view, line, lineN);
  return {
    line: line, view: view, rect: null,
    map: info.map, cache: info.cache, before: info.before,
    hasHeights: false
  }
}

// Given a prepared measurement object, measures the position of an
// actual character (or fetches it from the cache).
function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
  if (prepared.before) { ch = -1; }
  var key = ch + (bias || ""), found;
  if (prepared.cache.hasOwnProperty(key)) {
    found = prepared.cache[key];
  } else {
    if (!prepared.rect)
      { prepared.rect = prepared.view.text.getBoundingClientRect(); }
    if (!prepared.hasHeights) {
      ensureLineHeights(cm, prepared.view, prepared.rect);
      prepared.hasHeights = true;
    }
    found = measureCharInner(cm, prepared, ch, bias);
    if (!found.bogus) { prepared.cache[key] = found; }
  }
  return {left: found.left, right: found.right,
          top: varHeight ? found.rtop : found.top,
          bottom: varHeight ? found.rbottom : found.bottom}
}

var nullRect = {left: 0, right: 0, top: 0, bottom: 0};

function nodeAndOffsetInLineMap(map$$1, ch, bias) {
  var node, start, end, collapse, mStart, mEnd;
  // First, search the line map for the text node corresponding to,
  // or closest to, the target character.
  for (var i = 0; i < map$$1.length; i += 3) {
    mStart = map$$1[i];
    mEnd = map$$1[i + 1];
    if (ch < mStart) {
      start = 0; end = 1;
      collapse = "left";
    } else if (ch < mEnd) {
      start = ch - mStart;
      end = start + 1;
    } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) {
      end = mEnd - mStart;
      start = end - 1;
      if (ch >= mEnd) { collapse = "right"; }
    }
    if (start != null) {
      node = map$$1[i + 2];
      if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
        { collapse = bias; }
      if (bias == "left" && start == 0)
        { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) {
          node = map$$1[(i -= 3) + 2];
          collapse = "left";
        } }
      if (bias == "right" && start == mEnd - mStart)
        { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) {
          node = map$$1[(i += 3) + 2];
          collapse = "right";
        } }
      break
    }
  }
  return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}
}

function getUsefulRect(rects, bias) {
  var rect = nullRect;
  if (bias == "left") { for (var i = 0; i < rects.length; i++) {
    if ((rect = rects[i]).left != rect.right) { break }
  } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {
    if ((rect = rects[i$1]).left != rect.right) { break }
  } }
  return rect
}

function measureCharInner(cm, prepared, ch, bias) {
  var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
  var node = place.node, start = place.start, end = place.end, collapse = place.collapse;

  var rect;
  if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
    for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned
      while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }
      while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }
      if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)
        { rect = node.parentNode.getBoundingClientRect(); }
      else
        { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }
      if (rect.left || rect.right || start == 0) { break }
      end = start;
      start = start - 1;
      collapse = "right";
    }
    if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }
  } else { // If it is a widget, simply get the box for the whole widget.
    if (start > 0) { collapse = bias = "right"; }
    var rects;
    if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
      { rect = rects[bias == "right" ? rects.length - 1 : 0]; }
    else
      { rect = node.getBoundingClientRect(); }
  }
  if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
    var rSpan = node.parentNode.getClientRects()[0];
    if (rSpan)
      { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }
    else
      { rect = nullRect; }
  }

  var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
  var mid = (rtop + rbot) / 2;
  var heights = prepared.view.measure.heights;
  var i = 0;
  for (; i < heights.length - 1; i++)
    { if (mid < heights[i]) { break } }
  var top = i ? heights[i - 1] : 0, bot = heights[i];
  var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
                right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
                top: top, bottom: bot};
  if (!rect.left && !rect.right) { result.bogus = true; }
  if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }

  return result
}

// Work around problem with bounding client rects on ranges being
// returned incorrectly when zoomed on IE10 and below.
function maybeUpdateRectForZooming(measure, rect) {
  if (!window.screen || screen.logicalXDPI == null ||
      screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
    { return rect }
  var scaleX = screen.logicalXDPI / screen.deviceXDPI;
  var scaleY = screen.logicalYDPI / screen.deviceYDPI;
  return {left: rect.left * scaleX, right: rect.right * scaleX,
          top: rect.top * scaleY, bottom: rect.bottom * scaleY}
}

function clearLineMeasurementCacheFor(lineView) {
  if (lineView.measure) {
    lineView.measure.cache = {};
    lineView.measure.heights = null;
    if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)
      { lineView.measure.caches[i] = {}; } }
  }
}

function clearLineMeasurementCache(cm) {
  cm.display.externalMeasure = null;
  removeChildren(cm.display.lineMeasure);
  for (var i = 0; i < cm.display.view.length; i++)
    { clearLineMeasurementCacheFor(cm.display.view[i]); }
}

function clearCaches(cm) {
  clearLineMeasurementCache(cm);
  cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
  if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }
  cm.display.lineNumChars = null;
}

function pageScrollX() {
  // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206
  // which causes page_Offset and bounding client rects to use
  // different reference viewports and invalidate our calculations.
  if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }
  return window.pageXOffset || (document.documentElement || document.body).scrollLeft
}
function pageScrollY() {
  if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }
  return window.pageYOffset || (document.documentElement || document.body).scrollTop
}

function widgetTopHeight(lineObj) {
  var height = 0;
  if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)
    { height += widgetHeight(lineObj.widgets[i]); } } }
  return height
}

// Converts a {top, bottom, left, right} box from line-local
// coordinates into another coordinate system. Context may be one of
// "line", "div" (display.lineDiv), "local"./null (editor), "window",
// or "page".
function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
  if (!includeWidgets) {
    var height = widgetTopHeight(lineObj);
    rect.top += height; rect.bottom += height;
  }
  if (context == "line") { return rect }
  if (!context) { context = "local"; }
  var yOff = heightAtLine(lineObj);
  if (context == "local") { yOff += paddingTop(cm.display); }
  else { yOff -= cm.display.viewOffset; }
  if (context == "page" || context == "window") {
    var lOff = cm.display.lineSpace.getBoundingClientRect();
    yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
    var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
    rect.left += xOff; rect.right += xOff;
  }
  rect.top += yOff; rect.bottom += yOff;
  return rect
}

// Coverts a box from "div" coords to another coordinate system.
// Context may be "window", "page", "div", or "local"./null.
function fromCoordSystem(cm, coords, context) {
  if (context == "div") { return coords }
  var left = coords.left, top = coords.top;
  // First move into "page" coordinate system
  if (context == "page") {
    left -= pageScrollX();
    top -= pageScrollY();
  } else if (context == "local" || !context) {
    var localBox = cm.display.sizer.getBoundingClientRect();
    left += localBox.left;
    top += localBox.top;
  }

  var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
  return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}
}

function charCoords(cm, pos, context, lineObj, bias) {
  if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }
  return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)
}

// Returns a box for a given cursor position, which may have an
// 'other' property containing the position of the secondary cursor
// on a bidi boundary.
// A cursor Pos(line, char, "before") is on the same visual line as `char - 1`
// and after `char - 1` in writing order of `char - 1`
// A cursor Pos(line, char, "after") is on the same visual line as `char`
// and before `char` in writing order of `char`
// Examples (upper-case letters are RTL, lower-case are LTR):
//     Pos(0, 1, ...)
//     before   after
// ab     a|b     a|b
// aB     a|B     aB|
// Ab     |Ab     A|b
// AB     B|A     B|A
// Every position after the last character on a line is considered to stick
// to the last character on the line.
function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
  lineObj = lineObj || getLine(cm.doc, pos.line);
  if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
  function get(ch, right) {
    var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
    if (right) { m.left = m.right; } else { m.right = m.left; }
    return intoCoordSystem(cm, lineObj, m, context)
  }
  var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;
  if (ch >= lineObj.text.length) {
    ch = lineObj.text.length;
    sticky = "before";
  } else if (ch <= 0) {
    ch = 0;
    sticky = "after";
  }
  if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }

  function getBidi(ch, partPos, invert) {
    var part = order[partPos], right = part.level == 1;
    return get(invert ? ch - 1 : ch, right != invert)
  }
  var partPos = getBidiPartAt(order, ch, sticky);
  var other = bidiOther;
  var val = getBidi(ch, partPos, sticky == "before");
  if (other != null) { val.other = getBidi(ch, other, sticky != "before"); }
  return val
}

// Used to cheaply estimate the coordinates for a position. Used for
// intermediate scroll updates.
function estimateCoords(cm, pos) {
  var left = 0;
  pos = clipPos(cm.doc, pos);
  if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }
  var lineObj = getLine(cm.doc, pos.line);
  var top = heightAtLine(lineObj) + paddingTop(cm.display);
  return {left: left, right: left, top: top, bottom: top + lineObj.height}
}

// Positions returned by coordsChar contain some extra information.
// xRel is the relative x position of the input coordinates compared
// to the found position (so xRel > 0 means the coordinates are to
// the right of the character position, for example). When outside
// is true, that means the coordinates lie outside the line's
// vertical range.
function PosWithInfo(line, ch, sticky, outside, xRel) {
  var pos = Pos(line, ch, sticky);
  pos.xRel = xRel;
  if (outside) { pos.outside = true; }
  return pos
}

// Compute the character position closest to the given coordinates.
// Input must be lineSpace-local ("div" coordinate system).
function coordsChar(cm, x, y) {
  var doc = cm.doc;
  y += cm.display.viewOffset;
  if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) }
  var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
  if (lineN > last)
    { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) }
  if (x < 0) { x = 0; }

  var lineObj = getLine(doc, lineN);
  for (;;) {
    var found = coordsCharInner(cm, lineObj, lineN, x, y);
    var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));
    if (!collapsed) { return found }
    var rangeEnd = collapsed.find(1);
    if (rangeEnd.line == lineN) { return rangeEnd }
    lineObj = getLine(doc, lineN = rangeEnd.line);
  }
}

function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
  y -= widgetTopHeight(lineObj);
  var end = lineObj.text.length;
  var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);
  end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);
  return {begin: begin, end: end}
}

function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
  if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
  var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
  return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
}

// Returns true if the given side of a box is after the given
// coordinates, in top-to-bottom, left-to-right order.
function boxIsAfter(box, x, y, left) {
  return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x
}

function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
  // Move y into line-local coordinate space
  y -= heightAtLine(lineObj);
  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
  // When directly calling `measureCharPrepared`, we have to adjust
  // for the widgets at this line.
  var widgetHeight$$1 = widgetTopHeight(lineObj);
  var begin = 0, end = lineObj.text.length, ltr = true;

  var order = getOrder(lineObj, cm.doc.direction);
  // If the line isn't plain left-to-right text, first figure out
  // which bidi section the coordinates fall into.
  if (order) {
    var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)
                 (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);
    ltr = part.level != 1;
    // The awkward -1 offsets are needed because findFirst (called
    // on these below) will treat its first bound as inclusive,
    // second as exclusive, but we want to actually address the
    // characters in the part's range
    begin = ltr ? part.from : part.to - 1;
    end = ltr ? part.to : part.from - 1;
  }

  // A binary search to find the first character whose bounding box
  // starts after the coordinates. If we run across any whose box wrap
  // the coordinates, store that.
  var chAround = null, boxAround = null;
  var ch = findFirst(function (ch) {
    var box = measureCharPrepared(cm, preparedMeasure, ch);
    box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;
    if (!boxIsAfter(box, x, y, false)) { return false }
    if (box.top <= y && box.left <= x) {
      chAround = ch;
      boxAround = box;
    }
    return true
  }, begin, end);

  var baseX, sticky, outside = false;
  // If a box around the coordinates was found, use that
  if (boxAround) {
    // Distinguish coordinates nearer to the left or right side of the box
    var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;
    ch = chAround + (atStart ? 0 : 1);
    sticky = atStart ? "after" : "before";
    baseX = atLeft ? boxAround.left : boxAround.right;
  } else {
    // (Adjust for extended bound, if necessary.)
    if (!ltr && (ch == end || ch == begin)) { ch++; }
    // To determine which side to associate with, get the box to the
    // left of the character and compare it's vertical position to the
    // coordinates
    sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" :
      (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?
      "after" : "before";
    // Now get accurate coordinates for this place, in order to get a
    // base X position
    var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
    baseX = coords.left;
    outside = y < coords.top || y >= coords.bottom;
  }

  ch = skipExtendingChars(lineObj.text, ch, 1);
  return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)
}

function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {
  // Bidi parts are sorted left-to-right, and in a non-line-wrapping
  // situation, we can take this ordering to correspond to the visual
  // ordering. This finds the first part whose end is after the given
  // coordinates.
  var index = findFirst(function (i) {
    var part = order[i], ltr = part.level != 1;
    return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"),
                                   "line", lineObj, preparedMeasure), x, y, true)
  }, 0, order.length - 1);
  var part = order[index];
  // If this isn't the first part, the part's start is also after
  // the coordinates, and the coordinates aren't on the same line as
  // that start, move one part back.
  if (index > 0) {
    var ltr = part.level != 1;
    var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"),
                             "line", lineObj, preparedMeasure);
    if (boxIsAfter(start, x, y, true) && start.top > y)
      { part = order[index - 1]; }
  }
  return part
}

function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {
  // In a wrapped line, rtl text on wrapping boundaries can do things
  // that don't correspond to the ordering in our `order` array at
  // all, so a binary search doesn't work, and we want to return a
  // part that only spans one line so that the binary search in
  // coordsCharInner is safe. As such, we first find the extent of the
  // wrapped line, and then do a flat search in which we discard any
  // spans that aren't on the line.
  var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);
  var begin = ref.begin;
  var end = ref.end;
  if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; }
  var part = null, closestDist = null;
  for (var i = 0; i < order.length; i++) {
    var p = order[i];
    if (p.from >= end || p.to <= begin) { continue }
    var ltr = p.level != 1;
    var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;
    // Weigh against spans ending before this, so that they are only
    // picked if nothing ends after
    var dist = endX < x ? x - endX + 1e9 : endX - x;
    if (!part || closestDist > dist) {
      part = p;
      closestDist = dist;
    }
  }
  if (!part) { part = order[order.length - 1]; }
  // Clip the part to the wrapped line.
  if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }
  if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }
  return part
}

var measureText;
// Compute the default text height.
function textHeight(display) {
  if (display.cachedTextHeight != null) { return display.cachedTextHeight }
  if (measureText == null) {
    measureText = elt("pre");
    // Measure a bunch of lines, for browsers that compute
    // fractional heights.
    for (var i = 0; i < 49; ++i) {
      measureText.appendChild(document.createTextNode("x"));
      measureText.appendChild(elt("br"));
    }
    measureText.appendChild(document.createTextNode("x"));
  }
  removeChildrenAndAdd(display.measure, measureText);
  var height = measureText.offsetHeight / 50;
  if (height > 3) { display.cachedTextHeight = height; }
  removeChildren(display.measure);
  return height || 1
}

// Compute the default character width.
function charWidth(display) {
  if (display.cachedCharWidth != null) { return display.cachedCharWidth }
  var anchor = elt("span", "xxxxxxxxxx");
  var pre = elt("pre", [anchor]);
  removeChildrenAndAdd(display.measure, pre);
  var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
  if (width > 2) { display.cachedCharWidth = width; }
  return width || 10
}

// Do a bulk-read of the DOM positions and sizes needed to draw the
// view, so that we don't interleave reading and writing to the DOM.
function getDimensions(cm) {
  var d = cm.display, left = {}, width = {};
  var gutterLeft = d.gutters.clientLeft;
  for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
    left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
    width[cm.options.gutters[i]] = n.clientWidth;
  }
  return {fixedPos: compensateForHScroll(d),
          gutterTotalWidth: d.gutters.offsetWidth,
          gutterLeft: left,
          gutterWidth: width,
          wrapperWidth: d.wrapper.clientWidth}
}

// Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
// but using getBoundingClientRect to get a sub-pixel-accurate
// result.
function compensateForHScroll(display) {
  return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left
}

// Returns a function that estimates the height of a line, to use as
// first approximation until the line becomes visible (and is thus
// properly measurable).
function estimateHeight(cm) {
  var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
  var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
  return function (line) {
    if (lineIsHidden(cm.doc, line)) { return 0 }

    var widgetsHeight = 0;
    if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {
      if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }
    } }

    if (wrapping)
      { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }
    else
      { return widgetsHeight + th }
  }
}

function estimateLineHeights(cm) {
  var doc = cm.doc, est = estimateHeight(cm);
  doc.iter(function (line) {
    var estHeight = est(line);
    if (estHeight != line.height) { updateLineHeight(line, estHeight); }
  });
}

// Given a mouse event, find the corresponding position. If liberal
// is false, it checks whether a gutter or scrollbar was clicked,
// and returns null if it was. forRect is used by rectangular
// selections, and tries to estimate a character position even for
// coordinates beyond the right of the text.
function posFromMouse(cm, e, liberal, forRect) {
  var display = cm.display;
  if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null }

  var x, y, space = display.lineSpace.getBoundingClientRect();
  // Fails unpredictably on IE[67] when mouse is dragged around quickly.
  try { x = e.clientX - space.left; y = e.clientY - space.top; }
  catch (e) { return null }
  var coords = coordsChar(cm, x, y), line;
  if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
    var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
    coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
  }
  return coords
}

// Find the view element corresponding to a given line. Return null
// when the line isn't visible.
function findViewIndex(cm, n) {
  if (n >= cm.display.viewTo) { return null }
  n -= cm.display.viewFrom;
  if (n < 0) { return null }
  var view = cm.display.view;
  for (var i = 0; i < view.length; i++) {
    n -= view[i].size;
    if (n < 0) { return i }
  }
}

function updateSelection(cm) {
  cm.display.input.showSelection(cm.display.input.prepareSelection());
}

function prepareSelection(cm, primary) {
  if ( primary === void 0 ) primary = true;

  var doc = cm.doc, result = {};
  var curFragment = result.cursors = document.createDocumentFragment();
  var selFragment = result.selection = document.createDocumentFragment();

  for (var i = 0; i < doc.sel.ranges.length; i++) {
    if (!primary && i == doc.sel.primIndex) { continue }
    var range$$1 = doc.sel.ranges[i];
    if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
    var collapsed = range$$1.empty();
    if (collapsed || cm.options.showCursorWhenSelecting)
      { drawSelectionCursor(cm, range$$1.head, curFragment); }
    if (!collapsed)
      { drawSelectionRange(cm, range$$1, selFragment); }
  }
  return result
}

// Draws a cursor for the given range
function drawSelectionCursor(cm, head, output) {
  var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);

  var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
  cursor.style.left = pos.left + "px";
  cursor.style.top = pos.top + "px";
  cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";

  if (pos.other) {
    // Secondary cursor, shown when on a 'jump' in bi-directional text
    var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
    otherCursor.style.display = "";
    otherCursor.style.left = pos.other.left + "px";
    otherCursor.style.top = pos.other.top + "px";
    otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
  }
}

function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }

// Draws the given range as a highlighted selection
function drawSelectionRange(cm, range$$1, output) {
  var display = cm.display, doc = cm.doc;
  var fragment = document.createDocumentFragment();
  var padding = paddingH(cm.display), leftSide = padding.left;
  var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
  var docLTR = doc.direction == "ltr";

  function add(left, top, width, bottom) {
    if (top < 0) { top = 0; }
    top = Math.round(top);
    bottom = Math.round(bottom);
    fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n                             top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n                             height: " + (bottom - top) + "px")));
  }

  function drawForLine(line, fromArg, toArg) {
    var lineObj = getLine(doc, line);
    var lineLen = lineObj.text.length;
    var start, end;
    function coords(ch, bias) {
      return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
    }

    function wrapX(pos, dir, side) {
      var extent = wrappedLineExtentChar(cm, lineObj, null, pos);
      var prop = (dir == "ltr") == (side == "after") ? "left" : "right";
      var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);
      return coords(ch, prop)[prop]
    }

    var order = getOrder(lineObj, doc.direction);
    iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {
      var ltr = dir == "ltr";
      var fromPos = coords(from, ltr ? "left" : "right");
      var toPos = coords(to - 1, ltr ? "right" : "left");

      var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;
      var first = i == 0, last = !order || i == order.length - 1;
      if (toPos.top - fromPos.top <= 3) { // Single line
        var openLeft = (docLTR ? openStart : openEnd) && first;
        var openRight = (docLTR ? openEnd : openStart) && last;
        var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;
        var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;
        add(left, fromPos.top, right - left, fromPos.bottom);
      } else { // Multiple lines
        var topLeft, topRight, botLeft, botRight;
        if (ltr) {
          topLeft = docLTR && openStart && first ? leftSide : fromPos.left;
          topRight = docLTR ? rightSide : wrapX(from, dir, "before");
          botLeft = docLTR ? leftSide : wrapX(to, dir, "after");
          botRight = docLTR && openEnd && last ? rightSide : toPos.right;
        } else {
          topLeft = !docLTR ? leftSide : wrapX(from, dir, "before");
          topRight = !docLTR && openStart && first ? rightSide : fromPos.right;
          botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;
          botRight = !docLTR ? rightSide : wrapX(to, dir, "after");
        }
        add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);
        if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }
        add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);
      }

      if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }
      if (cmpCoords(toPos, start) < 0) { start = toPos; }
      if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }
      if (cmpCoords(toPos, end) < 0) { end = toPos; }
    });
    return {start: start, end: end}
  }

  var sFrom = range$$1.from(), sTo = range$$1.to();
  if (sFrom.line == sTo.line) {
    drawForLine(sFrom.line, sFrom.ch, sTo.ch);
  } else {
    var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
    var singleVLine = visualLine(fromLine) == visualLine(toLine);
    var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
    var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
    if (singleVLine) {
      if (leftEnd.top < rightStart.top - 2) {
        add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
        add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
      } else {
        add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
      }
    }
    if (leftEnd.bottom < rightStart.top)
      { add(leftSide, leftEnd.bottom, null, rightStart.top); }
  }

  output.appendChild(fragment);
}

// Cursor-blinking
function restartBlink(cm) {
  if (!cm.state.focused) { return }
  var display = cm.display;
  clearInterval(display.blinker);
  var on = true;
  display.cursorDiv.style.visibility = "";
  if (cm.options.cursorBlinkRate > 0)
    { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; },
      cm.options.cursorBlinkRate); }
  else if (cm.options.cursorBlinkRate < 0)
    { display.cursorDiv.style.visibility = "hidden"; }
}

function ensureFocus(cm) {
  if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
}

function delayBlurEvent(cm) {
  cm.state.delayingBlurEvent = true;
  setTimeout(function () { if (cm.state.delayingBlurEvent) {
    cm.state.delayingBlurEvent = false;
    onBlur(cm);
  } }, 100);
}

function onFocus(cm, e) {
  if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; }

  if (cm.options.readOnly == "nocursor") { return }
  if (!cm.state.focused) {
    signal(cm, "focus", cm, e);
    cm.state.focused = true;
    addClass(cm.display.wrapper, "CodeMirror-focused");
    // This test prevents this from firing when a context
    // menu is closed (since the input reset would kill the
    // select-all detection hack)
    if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
      cm.display.input.reset();
      if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730
    }
    cm.display.input.receivedFocus();
  }
  restartBlink(cm);
}
function onBlur(cm, e) {
  if (cm.state.delayingBlurEvent) { return }

  if (cm.state.focused) {
    signal(cm, "blur", cm, e);
    cm.state.focused = false;
    rmClass(cm.display.wrapper, "CodeMirror-focused");
  }
  clearInterval(cm.display.blinker);
  setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
}

// Read the actual heights of the rendered lines, and update their
// stored heights to match.
function updateHeightsInViewport(cm) {
  var display = cm.display;
  var prevBottom = display.lineDiv.offsetTop;
  for (var i = 0; i < display.view.length; i++) {
    var cur = display.view[i], height = (void 0);
    if (cur.hidden) { continue }
    if (ie && ie_version < 8) {
      var bot = cur.node.offsetTop + cur.node.offsetHeight;
      height = bot - prevBottom;
      prevBottom = bot;
    } else {
      var box = cur.node.getBoundingClientRect();
      height = box.bottom - box.top;
    }
    var diff = cur.line.height - height;
    if (height < 2) { height = textHeight(display); }
    if (diff > .005 || diff < -.005) {
      updateLineHeight(cur.line, height);
      updateWidgetHeight(cur.line);
      if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
        { updateWidgetHeight(cur.rest[j]); } }
    }
  }
}

// Read and store the height of line widgets associated with the
// given line.
function updateWidgetHeight(line) {
  if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {
    var w = line.widgets[i], parent = w.node.parentNode;
    if (parent) { w.height = parent.offsetHeight; }
  } }
}

// Compute the lines that are visible in a given viewport (defaults
// the the current scroll position). viewport may contain top,
// height, and ensure (see op.scrollToPos) properties.
function visibleLines(display, doc, viewport) {
  var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
  top = Math.floor(top - paddingTop(display));
  var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;

  var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
  // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
  // forces those lines into the viewport (if possible).
  if (viewport && viewport.ensure) {
    var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
    if (ensureFrom < from) {
      from = ensureFrom;
      to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
    } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
      from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
      to = ensureTo;
    }
  }
  return {from: from, to: Math.max(to, from + 1)}
}

// Re-align line numbers and gutter marks to compensate for
// horizontal scrolling.
function alignHorizontally(cm) {
  var display = cm.display, view = display.view;
  if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
  var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
  var gutterW = display.gutters.offsetWidth, left = comp + "px";
  for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
    if (cm.options.fixedGutter) {
      if (view[i].gutter)
        { view[i].gutter.style.left = left; }
      if (view[i].gutterBackground)
        { view[i].gutterBackground.style.left = left; }
    }
    var align = view[i].alignable;
    if (align) { for (var j = 0; j < align.length; j++)
      { align[j].style.left = left; } }
  } }
  if (cm.options.fixedGutter)
    { display.gutters.style.left = (comp + gutterW) + "px"; }
}

// Used to ensure that the line number gutter is still the right
// size for the current document size. Returns true when an update
// is needed.
function maybeUpdateLineNumberWidth(cm) {
  if (!cm.options.lineNumbers) { return false }
  var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
  if (last.length != display.lineNumChars) {
    var test = display.measure.appendChild(elt("div", [elt("div", last)],
                                               "CodeMirror-linenumber CodeMirror-gutter-elt"));
    var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
    display.lineGutter.style.width = "";
    display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
    display.lineNumWidth = display.lineNumInnerWidth + padding;
    display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
    display.lineGutter.style.width = display.lineNumWidth + "px";
    updateGutterSpace(cm);
    return true
  }
  return false
}

// SCROLLING THINGS INTO VIEW

// If an editor sits on the top or bottom of the window, partially
// scrolled out of view, this ensures that the cursor is visible.
function maybeScrollWindow(cm, rect) {
  if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }

  var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
  if (rect.top + box.top < 0) { doScroll = true; }
  else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
  if (doScroll != null && !phantom) {
    var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n                         top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n                         height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n                         left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
    cm.display.lineSpace.appendChild(scrollNode);
    scrollNode.scrollIntoView(doScroll);
    cm.display.lineSpace.removeChild(scrollNode);
  }
}

// Scroll a given position into view (immediately), verifying that
// it actually became visible (as line heights are accurately
// measured, the position of something may 'drift' during drawing).
function scrollPosIntoView(cm, pos, end, margin) {
  if (margin == null) { margin = 0; }
  var rect;
  if (!cm.options.lineWrapping && pos == end) {
    // Set pos and end to the cursor positions around the character pos sticks to
    // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch
    // If pos == Pos(_, 0, "before"), pos and end are unchanged
    pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos;
    end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos;
  }
  for (var limit = 0; limit < 5; limit++) {
    var changed = false;
    var coords = cursorCoords(cm, pos);
    var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
    rect = {left: Math.min(coords.left, endCoords.left),
            top: Math.min(coords.top, endCoords.top) - margin,
            right: Math.max(coords.left, endCoords.left),
            bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
    var scrollPos = calculateScrollPos(cm, rect);
    var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
    if (scrollPos.scrollTop != null) {
      updateScrollTop(cm, scrollPos.scrollTop);
      if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
    }
    if (scrollPos.scrollLeft != null) {
      setScrollLeft(cm, scrollPos.scrollLeft);
      if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
    }
    if (!changed) { break }
  }
  return rect
}

// Scroll a given set of coordinates into view (immediately).
function scrollIntoView(cm, rect) {
  var scrollPos = calculateScrollPos(cm, rect);
  if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }
  if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
}

// Calculate a new scroll position needed to scroll the given
// rectangle into view. Returns an object with scrollTop and
// scrollLeft properties. When these are undefined, the
// vertical/horizontal position does not need to be adjusted.
function calculateScrollPos(cm, rect) {
  var display = cm.display, snapMargin = textHeight(cm.display);
  if (rect.top < 0) { rect.top = 0; }
  var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
  var screen = displayHeight(cm), result = {};
  if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
  var docBottom = cm.doc.height + paddingVert(display);
  var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
  if (rect.top < screentop) {
    result.scrollTop = atTop ? 0 : rect.top;
  } else if (rect.bottom > screentop + screen) {
    var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
    if (newTop != screentop) { result.scrollTop = newTop; }
  }

  var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
  var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
  var tooWide = rect.right - rect.left > screenw;
  if (tooWide) { rect.right = rect.left + screenw; }
  if (rect.left < 10)
    { result.scrollLeft = 0; }
  else if (rect.left < screenleft)
    { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
  else if (rect.right > screenw + screenleft - 3)
    { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
  return result
}

// Store a relative adjustment to the scroll position in the current
// operation (to be applied when the operation finishes).
function addToScrollTop(cm, top) {
  if (top == null) { return }
  resolveScrollToPos(cm);
  cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
}

// Make sure that at the end of the operation the current cursor is
// shown.
function ensureCursorVisible(cm) {
  resolveScrollToPos(cm);
  var cur = cm.getCursor();
  cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};
}

function scrollToCoords(cm, x, y) {
  if (x != null || y != null) { resolveScrollToPos(cm); }
  if (x != null) { cm.curOp.scrollLeft = x; }
  if (y != null) { cm.curOp.scrollTop = y; }
}

function scrollToRange(cm, range$$1) {
  resolveScrollToPos(cm);
  cm.curOp.scrollToPos = range$$1;
}

// When an operation has its scrollToPos property set, and another
// scroll action is applied before the end of the operation, this
// 'simulates' scrolling that position into view in a cheap way, so
// that the effect of intermediate scroll commands is not ignored.
function resolveScrollToPos(cm) {
  var range$$1 = cm.curOp.scrollToPos;
  if (range$$1) {
    cm.curOp.scrollToPos = null;
    var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
    scrollToCoordsRange(cm, from, to, range$$1.margin);
  }
}

function scrollToCoordsRange(cm, from, to, margin) {
  var sPos = calculateScrollPos(cm, {
    left: Math.min(from.left, to.left),
    top: Math.min(from.top, to.top) - margin,
    right: Math.max(from.right, to.right),
    bottom: Math.max(from.bottom, to.bottom) + margin
  });
  scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);
}

// Sync the scrollable area and scrollbars, ensure the viewport
// covers the visible area.
function updateScrollTop(cm, val) {
  if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
  if (!gecko) { updateDisplaySimple(cm, {top: val}); }
  setScrollTop(cm, val, true);
  if (gecko) { updateDisplaySimple(cm); }
  startWorker(cm, 100);
}

function setScrollTop(cm, val, forceScroll) {
  val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val);
  if (cm.display.scroller.scrollTop == val && !forceScroll) { return }
  cm.doc.scrollTop = val;
  cm.display.scrollbars.setScrollTop(val);
  if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }
}

// Sync scroller and scrollbar, ensure the gutter elements are
// aligned.
function setScrollLeft(cm, val, isScroller, forceScroll) {
  val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
  if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }
  cm.doc.scrollLeft = val;
  alignHorizontally(cm);
  if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
  cm.display.scrollbars.setScrollLeft(val);
}

// SCROLLBARS

// Prepare DOM reads needed to update the scrollbars. Done in one
// shot to minimize update/measure roundtrips.
function measureForScrollbars(cm) {
  var d = cm.display, gutterW = d.gutters.offsetWidth;
  var docH = Math.round(cm.doc.height + paddingVert(cm.display));
  return {
    clientHeight: d.scroller.clientHeight,
    viewHeight: d.wrapper.clientHeight,
    scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
    viewWidth: d.wrapper.clientWidth,
    barLeft: cm.options.fixedGutter ? gutterW : 0,
    docHeight: docH,
    scrollHeight: docH + scrollGap(cm) + d.barHeight,
    nativeBarWidth: d.nativeBarWidth,
    gutterWidth: gutterW
  }
}

var NativeScrollbars = function(place, scroll, cm) {
  this.cm = cm;
  var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
  var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
  vert.tabIndex = horiz.tabIndex = -1;
  place(vert); place(horiz);

  on(vert, "scroll", function () {
    if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); }
  });
  on(horiz, "scroll", function () {
    if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); }
  });

  this.checkedZeroWidth = false;
  // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
  if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; }
};

NativeScrollbars.prototype.update = function (measure) {
  var needsH = measure.scrollWidth > measure.clientWidth + 1;
  var needsV = measure.scrollHeight > measure.clientHeight + 1;
  var sWidth = measure.nativeBarWidth;

  if (needsV) {
    this.vert.style.display = "block";
    this.vert.style.bottom = needsH ? sWidth + "px" : "0";
    var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
    // A bug in IE8 can cause this value to be negative, so guard it.
    this.vert.firstChild.style.height =
      Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
  } else {
    this.vert.style.display = "";
    this.vert.firstChild.style.height = "0";
  }

  if (needsH) {
    this.horiz.style.display = "block";
    this.horiz.style.right = needsV ? sWidth + "px" : "0";
    this.horiz.style.left = measure.barLeft + "px";
    var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
    this.horiz.firstChild.style.width =
      Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
  } else {
    this.horiz.style.display = "";
    this.horiz.firstChild.style.width = "0";
  }

  if (!this.checkedZeroWidth && measure.clientHeight > 0) {
    if (sWidth == 0) { this.zeroWidthHack(); }
    this.checkedZeroWidth = true;
  }

  return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}
};

NativeScrollbars.prototype.setScrollLeft = function (pos) {
  if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
  if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); }
};

NativeScrollbars.prototype.setScrollTop = function (pos) {
  if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
  if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); }
};

NativeScrollbars.prototype.zeroWidthHack = function () {
  var w = mac && !mac_geMountainLion ? "12px" : "18px";
  this.horiz.style.height = this.vert.style.width = w;
  this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none";
  this.disableHoriz = new Delayed;
  this.disableVert = new Delayed;
};

NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {
  bar.style.pointerEvents = "auto";
  function maybeDisable() {
    // To find out whether the scrollbar is still visible, we
    // check whether the element under the pixel in the bottom
    // right corner of the scrollbar box is the scrollbar box
    // itself (when the bar is still visible) or its filler child
    // (when the bar is hidden). If it is still visible, we keep
    // it enabled, if it's hidden, we disable pointer events.
    var box = bar.getBoundingClientRect();
    var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)
        : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);
    if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
    else { delay.set(1000, maybeDisable); }
  }
  delay.set(1000, maybeDisable);
};

NativeScrollbars.prototype.clear = function () {
  var parent = this.horiz.parentNode;
  parent.removeChild(this.horiz);
  parent.removeChild(this.vert);
};

var NullScrollbars = function () {};

NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };
NullScrollbars.prototype.setScrollLeft = function () {};
NullScrollbars.prototype.setScrollTop = function () {};
NullScrollbars.prototype.clear = function () {};

function updateScrollbars(cm, measure) {
  if (!measure) { measure = measureForScrollbars(cm); }
  var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
  updateScrollbarsInner(cm, measure);
  for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
    if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
      { updateHeightsInViewport(cm); }
    updateScrollbarsInner(cm, measureForScrollbars(cm));
    startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
  }
}

// Re-synchronize the fake scrollbars with the actual size of the
// content.
function updateScrollbarsInner(cm, measure) {
  var d = cm.display;
  var sizes = d.scrollbars.update(measure);

  d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
  d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
  d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent";

  if (sizes.right && sizes.bottom) {
    d.scrollbarFiller.style.display = "block";
    d.scrollbarFiller.style.height = sizes.bottom + "px";
    d.scrollbarFiller.style.width = sizes.right + "px";
  } else { d.scrollbarFiller.style.display = ""; }
  if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
    d.gutterFiller.style.display = "block";
    d.gutterFiller.style.height = sizes.bottom + "px";
    d.gutterFiller.style.width = measure.gutterWidth + "px";
  } else { d.gutterFiller.style.display = ""; }
}

var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};

function initScrollbars(cm) {
  if (cm.display.scrollbars) {
    cm.display.scrollbars.clear();
    if (cm.display.scrollbars.addClass)
      { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
  }

  cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {
    cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
    // Prevent clicks in the scrollbars from killing focus
    on(node, "mousedown", function () {
      if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }
    });
    node.setAttribute("cm-not-content", "true");
  }, function (pos, axis) {
    if (axis == "horizontal") { setScrollLeft(cm, pos); }
    else { updateScrollTop(cm, pos); }
  }, cm);
  if (cm.display.scrollbars.addClass)
    { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
}

// Operations are used to wrap a series of changes to the editor
// state in such a way that each change won't have to update the
// cursor and display (which would be awkward, slow, and
// error-prone). Instead, display updates are batched and then all
// combined and executed at once.

var nextOpId = 0;
// Start a new operation.
function startOperation(cm) {
  cm.curOp = {
    cm: cm,
    viewChanged: false,      // Flag that indicates that lines might need to be redrawn
    startHeight: cm.doc.height, // Used to detect need to update scrollbar
    forceUpdate: false,      // Used to force a redraw
    updateInput: null,       // Whether to reset the input textarea
    typing: false,           // Whether this reset should be careful to leave existing text (for compositing)
    changeObjs: null,        // Accumulated changes, for firing change events
    cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
    cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
    selectionChanged: false, // Whether the selection needs to be redrawn
    updateMaxLine: false,    // Set when the widest line needs to be determined anew
    scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
    scrollToPos: null,       // Used to scroll to a specific position
    focus: false,
    id: ++nextOpId           // Unique ID
  };
  pushOperation(cm.curOp);
}

// Finish an operation, updating the display and signalling delayed events
function endOperation(cm) {
  var op = cm.curOp;
  finishOperation(op, function (group) {
    for (var i = 0; i < group.ops.length; i++)
      { group.ops[i].cm.curOp = null; }
    endOperations(group);
  });
}

// The DOM updates done when an operation finishes are batched so
// that the minimum number of relayouts are required.
function endOperations(group) {
  var ops = group.ops;
  for (var i = 0; i < ops.length; i++) // Read DOM
    { endOperation_R1(ops[i]); }
  for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)
    { endOperation_W1(ops[i$1]); }
  for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM
    { endOperation_R2(ops[i$2]); }
  for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)
    { endOperation_W2(ops[i$3]); }
  for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM
    { endOperation_finish(ops[i$4]); }
}

function endOperation_R1(op) {
  var cm = op.cm, display = cm.display;
  maybeClipScrollbars(cm);
  if (op.updateMaxLine) { findMaxLine(cm); }

  op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
    op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
                       op.scrollToPos.to.line >= display.viewTo) ||
    display.maxLineChanged && cm.options.lineWrapping;
  op.update = op.mustUpdate &&
    new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
}

function endOperation_W1(op) {
  op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
}

function endOperation_R2(op) {
  var cm = op.cm, display = cm.display;
  if (op.updatedDisplay) { updateHeightsInViewport(cm); }

  op.barMeasure = measureForScrollbars(cm);

  // If the max line changed since it was last measured, measure it,
  // and ensure the document's width matches it.
  // updateDisplay_W2 will use these properties to do the actual resizing
  if (display.maxLineChanged && !cm.options.lineWrapping) {
    op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
    cm.display.sizerWidth = op.adjustWidthTo;
    op.barMeasure.scrollWidth =
      Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
    op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
  }

  if (op.updatedDisplay || op.selectionChanged)
    { op.preparedSelection = display.input.prepareSelection(); }
}

function endOperation_W2(op) {
  var cm = op.cm;

  if (op.adjustWidthTo != null) {
    cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
    if (op.maxScrollLeft < cm.doc.scrollLeft)
      { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }
    cm.display.maxLineChanged = false;
  }

  var takeFocus = op.focus && op.focus == activeElt();
  if (op.preparedSelection)
    { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
  if (op.updatedDisplay || op.startHeight != cm.doc.height)
    { updateScrollbars(cm, op.barMeasure); }
  if (op.updatedDisplay)
    { setDocumentHeight(cm, op.barMeasure); }

  if (op.selectionChanged) { restartBlink(cm); }

  if (cm.state.focused && op.updateInput)
    { cm.display.input.reset(op.typing); }
  if (takeFocus) { ensureFocus(op.cm); }
}

function endOperation_finish(op) {
  var cm = op.cm, display = cm.display, doc = cm.doc;

  if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }

  // Abort mouse wheel delta measurement, when scrolling explicitly
  if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
    { display.wheelStartX = display.wheelStartY = null; }

  // Propagate the scroll position to the actual DOM scroller
  if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }

  if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }
  // If we need to scroll a specific position into view, do so.
  if (op.scrollToPos) {
    var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
                                 clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
    maybeScrollWindow(cm, rect);
  }

  // Fire events for markers that are hidden/unidden by editing or
  // undoing
  var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
  if (hidden) { for (var i = 0; i < hidden.length; ++i)
    { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } }
  if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)
    { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } }

  if (display.wrapper.offsetHeight)
    { doc.scrollTop = cm.display.scroller.scrollTop; }

  // Fire change events, and delayed event handlers
  if (op.changeObjs)
    { signal(cm, "changes", cm, op.changeObjs); }
  if (op.update)
    { op.update.finish(); }
}

// Run the given function in an operation
function runInOp(cm, f) {
  if (cm.curOp) { return f() }
  startOperation(cm);
  try { return f() }
  finally { endOperation(cm); }
}
// Wraps a function in an operation. Returns the wrapped function.
function operation(cm, f) {
  return function() {
    if (cm.curOp) { return f.apply(cm, arguments) }
    startOperation(cm);
    try { return f.apply(cm, arguments) }
    finally { endOperation(cm); }
  }
}
// Used to add methods to editor and doc instances, wrapping them in
// operations.
function methodOp(f) {
  return function() {
    if (this.curOp) { return f.apply(this, arguments) }
    startOperation(this);
    try { return f.apply(this, arguments) }
    finally { endOperation(this); }
  }
}
function docMethodOp(f) {
  return function() {
    var cm = this.cm;
    if (!cm || cm.curOp) { return f.apply(this, arguments) }
    startOperation(cm);
    try { return f.apply(this, arguments) }
    finally { endOperation(cm); }
  }
}

// Updates the display.view data structure for a given change to the
// document. From and to are in pre-change coordinates. Lendiff is
// the amount of lines added or subtracted by the change. This is
// used for changes that span multiple lines, or change the way
// lines are divided into visual lines. regLineChange (below)
// registers single-line changes.
function regChange(cm, from, to, lendiff) {
  if (from == null) { from = cm.doc.first; }
  if (to == null) { to = cm.doc.first + cm.doc.size; }
  if (!lendiff) { lendiff = 0; }

  var display = cm.display;
  if (lendiff && to < display.viewTo &&
      (display.updateLineNumbers == null || display.updateLineNumbers > from))
    { display.updateLineNumbers = from; }

  cm.curOp.viewChanged = true;

  if (from >= display.viewTo) { // Change after
    if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
      { resetView(cm); }
  } else if (to <= display.viewFrom) { // Change before
    if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
      resetView(cm);
    } else {
      display.viewFrom += lendiff;
      display.viewTo += lendiff;
    }
  } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
    resetView(cm);
  } else if (from <= display.viewFrom) { // Top overlap
    var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
    if (cut) {
      display.view = display.view.slice(cut.index);
      display.viewFrom = cut.lineN;
      display.viewTo += lendiff;
    } else {
      resetView(cm);
    }
  } else if (to >= display.viewTo) { // Bottom overlap
    var cut$1 = viewCuttingPoint(cm, from, from, -1);
    if (cut$1) {
      display.view = display.view.slice(0, cut$1.index);
      display.viewTo = cut$1.lineN;
    } else {
      resetView(cm);
    }
  } else { // Gap in the middle
    var cutTop = viewCuttingPoint(cm, from, from, -1);
    var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
    if (cutTop && cutBot) {
      display.view = display.view.slice(0, cutTop.index)
        .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
        .concat(display.view.slice(cutBot.index));
      display.viewTo += lendiff;
    } else {
      resetView(cm);
    }
  }

  var ext = display.externalMeasured;
  if (ext) {
    if (to < ext.lineN)
      { ext.lineN += lendiff; }
    else if (from < ext.lineN + ext.size)
      { display.externalMeasured = null; }
  }
}

// Register a change to a single line. Type must be one of "text",
// "gutter", "class", "widget"
function regLineChange(cm, line, type) {
  cm.curOp.viewChanged = true;
  var display = cm.display, ext = cm.display.externalMeasured;
  if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
    { display.externalMeasured = null; }

  if (line < display.viewFrom || line >= display.viewTo) { return }
  var lineView = display.view[findViewIndex(cm, line)];
  if (lineView.node == null) { return }
  var arr = lineView.changes || (lineView.changes = []);
  if (indexOf(arr, type) == -1) { arr.push(type); }
}

// Clear the view.
function resetView(cm) {
  cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
  cm.display.view = [];
  cm.display.viewOffset = 0;
}

function viewCuttingPoint(cm, oldN, newN, dir) {
  var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
  if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
    { return {index: index, lineN: newN} }
  var n = cm.display.viewFrom;
  for (var i = 0; i < index; i++)
    { n += view[i].size; }
  if (n != oldN) {
    if (dir > 0) {
      if (index == view.length - 1) { return null }
      diff = (n + view[index].size) - oldN;
      index++;
    } else {
      diff = n - oldN;
    }
    oldN += diff; newN += diff;
  }
  while (visualLineNo(cm.doc, newN) != newN) {
    if (index == (dir < 0 ? 0 : view.length - 1)) { return null }
    newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
    index += dir;
  }
  return {index: index, lineN: newN}
}

// Force the view to cover a given range, adding empty view element
// or clipping off existing ones as needed.
function adjustView(cm, from, to) {
  var display = cm.display, view = display.view;
  if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
    display.view = buildViewArray(cm, from, to);
    display.viewFrom = from;
  } else {
    if (display.viewFrom > from)
      { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }
    else if (display.viewFrom < from)
      { display.view = display.view.slice(findViewIndex(cm, from)); }
    display.viewFrom = from;
    if (display.viewTo < to)
      { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }
    else if (display.viewTo > to)
      { display.view = display.view.slice(0, findViewIndex(cm, to)); }
  }
  display.viewTo = to;
}

// Count the number of lines in the view whose DOM representation is
// out of date (or nonexistent).
function countDirtyView(cm) {
  var view = cm.display.view, dirty = 0;
  for (var i = 0; i < view.length; i++) {
    var lineView = view[i];
    if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }
  }
  return dirty
}

// HIGHLIGHT WORKER

function startWorker(cm, time) {
  if (cm.doc.highlightFrontier < cm.display.viewTo)
    { cm.state.highlight.set(time, bind(highlightWorker, cm)); }
}

function highlightWorker(cm) {
  var doc = cm.doc;
  if (doc.highlightFrontier >= cm.display.viewTo) { return }
  var end = +new Date + cm.options.workTime;
  var context = getContextBefore(cm, doc.highlightFrontier);
  var changedLines = [];

  doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {
    if (context.line >= cm.display.viewFrom) { // Visible
      var oldStyles = line.styles;
      var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;
      var highlighted = highlightLine(cm, line, context, true);
      if (resetState) { context.state = resetState; }
      line.styles = highlighted.styles;
      var oldCls = line.styleClasses, newCls = highlighted.classes;
      if (newCls) { line.styleClasses = newCls; }
      else if (oldCls) { line.styleClasses = null; }
      var ischange = !oldStyles || oldStyles.length != line.styles.length ||
        oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
      for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
      if (ischange) { changedLines.push(context.line); }
      line.stateAfter = context.save();
      context.nextLine();
    } else {
      if (line.text.length <= cm.options.maxHighlightLength)
        { processLine(cm, line.text, context); }
      line.stateAfter = context.line % 5 == 0 ? context.save() : null;
      context.nextLine();
    }
    if (+new Date > end) {
      startWorker(cm, cm.options.workDelay);
      return true
    }
  });
  doc.highlightFrontier = context.line;
  doc.modeFrontier = Math.max(doc.modeFrontier, context.line);
  if (changedLines.length) { runInOp(cm, function () {
    for (var i = 0; i < changedLines.length; i++)
      { regLineChange(cm, changedLines[i], "text"); }
  }); }
}

// DISPLAY DRAWING

var DisplayUpdate = function(cm, viewport, force) {
  var display = cm.display;

  this.viewport = viewport;
  // Store some values that we'll need later (but don't want to force a relayout for)
  this.visible = visibleLines(display, cm.doc, viewport);
  this.editorIsHidden = !display.wrapper.offsetWidth;
  this.wrapperHeight = display.wrapper.clientHeight;
  this.wrapperWidth = display.wrapper.clientWidth;
  this.oldDisplayWidth = displayWidth(cm);
  this.force = force;
  this.dims = getDimensions(cm);
  this.events = [];
};

DisplayUpdate.prototype.signal = function (emitter, type) {
  if (hasHandler(emitter, type))
    { this.events.push(arguments); }
};
DisplayUpdate.prototype.finish = function () {
    var this$1 = this;

  for (var i = 0; i < this.events.length; i++)
    { signal.apply(null, this$1.events[i]); }
};

function maybeClipScrollbars(cm) {
  var display = cm.display;
  if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
    display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
    display.heightForcer.style.height = scrollGap(cm) + "px";
    display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
    display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
    display.scrollbarsClipped = true;
  }
}

function selectionSnapshot(cm) {
  if (cm.hasFocus()) { return null }
  var active = activeElt();
  if (!active || !contains(cm.display.lineDiv, active)) { return null }
  var result = {activeElt: active};
  if (window.getSelection) {
    var sel = window.getSelection();
    if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {
      result.anchorNode = sel.anchorNode;
      result.anchorOffset = sel.anchorOffset;
      result.focusNode = sel.focusNode;
      result.focusOffset = sel.focusOffset;
    }
  }
  return result
}

function restoreSelection(snapshot) {
  if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }
  snapshot.activeElt.focus();
  if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {
    var sel = window.getSelection(), range$$1 = document.createRange();
    range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset);
    range$$1.collapse(false);
    sel.removeAllRanges();
    sel.addRange(range$$1);
    sel.extend(snapshot.focusNode, snapshot.focusOffset);
  }
}

// Does the actual updating of the line display. Bails out
// (returning false) when there is nothing to be done and forced is
// false.
function updateDisplayIfNeeded(cm, update) {
  var display = cm.display, doc = cm.doc;

  if (update.editorIsHidden) {
    resetView(cm);
    return false
  }

  // Bail out if the visible area is already rendered and nothing changed.
  if (!update.force &&
      update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
      (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
      display.renderedView == display.view && countDirtyView(cm) == 0)
    { return false }

  if (maybeUpdateLineNumberWidth(cm)) {
    resetView(cm);
    update.dims = getDimensions(cm);
  }

  // Compute a suitable new viewport (from & to)
  var end = doc.first + doc.size;
  var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
  var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
  if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }
  if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }
  if (sawCollapsedSpans) {
    from = visualLineNo(cm.doc, from);
    to = visualLineEndNo(cm.doc, to);
  }

  var different = from != display.viewFrom || to != display.viewTo ||
    display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
  adjustView(cm, from, to);

  display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
  // Position the mover div to align with the current scroll position
  cm.display.mover.style.top = display.viewOffset + "px";

  var toUpdate = countDirtyView(cm);
  if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
      (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
    { return false }

  // For big changes, we hide the enclosing element during the
  // update, since that speeds up the operations on most browsers.
  var selSnapshot = selectionSnapshot(cm);
  if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
  patchDisplay(cm, display.updateLineNumbers, update.dims);
  if (toUpdate > 4) { display.lineDiv.style.display = ""; }
  display.renderedView = display.view;
  // There might have been a widget with a focused element that got
  // hidden or updated, if so re-focus it.
  restoreSelection(selSnapshot);

  // Prevent selection and cursors from interfering with the scroll
  // width and height.
  removeChildren(display.cursorDiv);
  removeChildren(display.selectionDiv);
  display.gutters.style.height = display.sizer.style.minHeight = 0;

  if (different) {
    display.lastWrapHeight = update.wrapperHeight;
    display.lastWrapWidth = update.wrapperWidth;
    startWorker(cm, 400);
  }

  display.updateLineNumbers = null;

  return true
}

function postUpdateDisplay(cm, update) {
  var viewport = update.viewport;

  for (var first = true;; first = false) {
    if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
      // Clip forced viewport to actual scrollable area.
      if (viewport && viewport.top != null)
        { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }
      // Updated line heights might result in the drawn area not
      // actually covering the viewport. Keep looping until it does.
      update.visible = visibleLines(cm.display, cm.doc, viewport);
      if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
        { break }
    }
    if (!updateDisplayIfNeeded(cm, update)) { break }
    updateHeightsInViewport(cm);
    var barMeasure = measureForScrollbars(cm);
    updateSelection(cm);
    updateScrollbars(cm, barMeasure);
    setDocumentHeight(cm, barMeasure);
    update.force = false;
  }

  update.signal(cm, "update", cm);
  if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
    update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
    cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
  }
}

function updateDisplaySimple(cm, viewport) {
  var update = new DisplayUpdate(cm, viewport);
  if (updateDisplayIfNeeded(cm, update)) {
    updateHeightsInViewport(cm);
    postUpdateDisplay(cm, update);
    var barMeasure = measureForScrollbars(cm);
    updateSelection(cm);
    updateScrollbars(cm, barMeasure);
    setDocumentHeight(cm, barMeasure);
    update.finish();
  }
}

// Sync the actual display DOM structure with display.view, removing
// nodes for lines that are no longer in view, and creating the ones
// that are not there yet, and updating the ones that are out of
// date.
function patchDisplay(cm, updateNumbersFrom, dims) {
  var display = cm.display, lineNumbers = cm.options.lineNumbers;
  var container = display.lineDiv, cur = container.firstChild;

  function rm(node) {
    var next = node.nextSibling;
    // Works around a throw-scroll bug in OS X Webkit
    if (webkit && mac && cm.display.currentWheelTarget == node)
      { node.style.display = "none"; }
    else
      { node.parentNode.removeChild(node); }
    return next
  }

  var view = display.view, lineN = display.viewFrom;
  // Loop over the elements in the view, syncing cur (the DOM nodes
  // in display.lineDiv) with the view as we go.
  for (var i = 0; i < view.length; i++) {
    var lineView = view[i];
    if (lineView.hidden) {
    } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
      var node = buildLineElement(cm, lineView, lineN, dims);
      container.insertBefore(node, cur);
    } else { // Already drawn
      while (cur != lineView.node) { cur = rm(cur); }
      var updateNumber = lineNumbers && updateNumbersFrom != null &&
        updateNumbersFrom <= lineN && lineView.lineNumber;
      if (lineView.changes) {
        if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; }
        updateLineForChanges(cm, lineView, lineN, dims);
      }
      if (updateNumber) {
        removeChildren(lineView.lineNumber);
        lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
      }
      cur = lineView.node.nextSibling;
    }
    lineN += lineView.size;
  }
  while (cur) { cur = rm(cur); }
}

function updateGutterSpace(cm) {
  var width = cm.display.gutters.offsetWidth;
  cm.display.sizer.style.marginLeft = width + "px";
}

function setDocumentHeight(cm, measure) {
  cm.display.sizer.style.minHeight = measure.docHeight + "px";
  cm.display.heightForcer.style.top = measure.docHeight + "px";
  cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
}

// Rebuild the gutter elements, ensure the margin to the left of the
// code matches their width.
function updateGutters(cm) {
  var gutters = cm.display.gutters, specs = cm.options.gutters;
  removeChildren(gutters);
  var i = 0;
  for (; i < specs.length; ++i) {
    var gutterClass = specs[i];
    var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
    if (gutterClass == "CodeMirror-linenumbers") {
      cm.display.lineGutter = gElt;
      gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
    }
  }
  gutters.style.display = i ? "" : "none";
  updateGutterSpace(cm);
}

// Make sure the gutters options contains the element
// "CodeMirror-linenumbers" when the lineNumbers option is true.
function setGuttersForLineNumbers(options) {
  var found = indexOf(options.gutters, "CodeMirror-linenumbers");
  if (found == -1 && options.lineNumbers) {
    options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
  } else if (found > -1 && !options.lineNumbers) {
    options.gutters = options.gutters.slice(0);
    options.gutters.splice(found, 1);
  }
}

// Since the delta values reported on mouse wheel events are
// unstandardized between browsers and even browser versions, and
// generally horribly unpredictable, this code starts by measuring
// the scroll effect that the first few mouse wheel events have,
// and, from that, detects the way it can convert deltas to pixel
// offsets afterwards.
//
// The reason we want to know the amount a wheel event will scroll
// is that it gives us a chance to update the display before the
// actual scrolling happens, reducing flickering.

var wheelSamples = 0;
var wheelPixelsPerUnit = null;
// Fill in a browser-detected starting value on browsers where we
// know one. These don't have to be accurate -- the result of them
// being wrong would just be a slight flicker on the first wheel
// scroll (if it is large enough).
if (ie) { wheelPixelsPerUnit = -.53; }
else if (gecko) { wheelPixelsPerUnit = 15; }
else if (chrome) { wheelPixelsPerUnit = -.7; }
else if (safari) { wheelPixelsPerUnit = -1/3; }

function wheelEventDelta(e) {
  var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
  if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
  if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
  else if (dy == null) { dy = e.wheelDelta; }
  return {x: dx, y: dy}
}
function wheelEventPixels(e) {
  var delta = wheelEventDelta(e);
  delta.x *= wheelPixelsPerUnit;
  delta.y *= wheelPixelsPerUnit;
  return delta
}

function onScrollWheel(cm, e) {
  var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;

  var display = cm.display, scroll = display.scroller;
  // Quit if there's nothing to scroll here
  var canScrollX = scroll.scrollWidth > scroll.clientWidth;
  var canScrollY = scroll.scrollHeight > scroll.clientHeight;
  if (!(dx && canScrollX || dy && canScrollY)) { return }

  // Webkit browsers on OS X abort momentum scrolls when the target
  // of the scroll event is removed from the scrollable element.
  // This hack (see related code in patchDisplay) makes sure the
  // element is kept around.
  if (dy && mac && webkit) {
    outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
      for (var i = 0; i < view.length; i++) {
        if (view[i].node == cur) {
          cm.display.currentWheelTarget = cur;
          break outer
        }
      }
    }
  }

  // On some browsers, horizontal scrolling will cause redraws to
  // happen before the gutter has been realigned, causing it to
  // wriggle around in a most unseemly way. When we have an
  // estimated pixels/delta value, we just handle horizontal
  // scrolling entirely here. It'll be slightly off from native, but
  // better than glitching out.
  if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
    if (dy && canScrollY)
      { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
    setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
    // Only prevent default scrolling if vertical scrolling is
    // actually possible. Otherwise, it causes vertical scroll
    // jitter on OSX trackpads when deltaX is small and deltaY
    // is large (issue #3579)
    if (!dy || (dy && canScrollY))
      { e_preventDefault(e); }
    display.wheelStartX = null; // Abort measurement, if in progress
    return
  }

  // 'Project' the visible viewport to cover the area that is being
  // scrolled into view (if we know enough to estimate it).
  if (dy && wheelPixelsPerUnit != null) {
    var pixels = dy * wheelPixelsPerUnit;
    var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
    if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
    else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
    updateDisplaySimple(cm, {top: top, bottom: bot});
  }

  if (wheelSamples < 20) {
    if (display.wheelStartX == null) {
      display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
      display.wheelDX = dx; display.wheelDY = dy;
      setTimeout(function () {
        if (display.wheelStartX == null) { return }
        var movedX = scroll.scrollLeft - display.wheelStartX;
        var movedY = scroll.scrollTop - display.wheelStartY;
        var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
          (movedX && display.wheelDX && movedX / display.wheelDX);
        display.wheelStartX = display.wheelStartY = null;
        if (!sample) { return }
        wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
        ++wheelSamples;
      }, 200);
    } else {
      display.wheelDX += dx; display.wheelDY += dy;
    }
  }
}

// Selection objects are immutable. A new one is created every time
// the selection changes. A selection is one or more non-overlapping
// (and non-touching) ranges, sorted, and an integer that indicates
// which one is the primary selection (the one that's scrolled into
// view, that getCursor returns, etc).
var Selection = function(ranges, primIndex) {
  this.ranges = ranges;
  this.primIndex = primIndex;
};

Selection.prototype.primary = function () { return this.ranges[this.primIndex] };

Selection.prototype.equals = function (other) {
    var this$1 = this;

  if (other == this) { return true }
  if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }
  for (var i = 0; i < this.ranges.length; i++) {
    var here = this$1.ranges[i], there = other.ranges[i];
    if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }
  }
  return true
};

Selection.prototype.deepCopy = function () {
    var this$1 = this;

  var out = [];
  for (var i = 0; i < this.ranges.length; i++)
    { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); }
  return new Selection(out, this.primIndex)
};

Selection.prototype.somethingSelected = function () {
    var this$1 = this;

  for (var i = 0; i < this.ranges.length; i++)
    { if (!this$1.ranges[i].empty()) { return true } }
  return false
};

Selection.prototype.contains = function (pos, end) {
    var this$1 = this;

  if (!end) { end = pos; }
  for (var i = 0; i < this.ranges.length; i++) {
    var range = this$1.ranges[i];
    if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
      { return i }
  }
  return -1
};

var Range = function(anchor, head) {
  this.anchor = anchor; this.head = head;
};

Range.prototype.from = function () { return minPos(this.anchor, this.head) };
Range.prototype.to = function () { return maxPos(this.anchor, this.head) };
Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };

// Take an unsorted, potentially overlapping set of ranges, and
// build a selection out of it. 'Consumes' ranges array (modifying
// it).
function normalizeSelection(ranges, primIndex) {
  var prim = ranges[primIndex];
  ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });
  primIndex = indexOf(ranges, prim);
  for (var i = 1; i < ranges.length; i++) {
    var cur = ranges[i], prev = ranges[i - 1];
    if (cmp(prev.to(), cur.from()) >= 0) {
      var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
      var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
      if (i <= primIndex) { --primIndex; }
      ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
    }
  }
  return new Selection(ranges, primIndex)
}

function simpleSelection(anchor, head) {
  return new Selection([new Range(anchor, head || anchor)], 0)
}

// Compute the position of the end of a change (its 'to' property
// refers to the pre-change end).
function changeEnd(change) {
  if (!change.text) { return change.to }
  return Pos(change.from.line + change.text.length - 1,
             lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))
}

// Adjust a position to refer to the post-change position of the
// same text, or the end of the change if the change covers it.
function adjustForChange(pos, change) {
  if (cmp(pos, change.from) < 0) { return pos }
  if (cmp(pos, change.to) <= 0) { return changeEnd(change) }

  var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
  if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }
  return Pos(line, ch)
}

function computeSelAfterChange(doc, change) {
  var out = [];
  for (var i = 0; i < doc.sel.ranges.length; i++) {
    var range = doc.sel.ranges[i];
    out.push(new Range(adjustForChange(range.anchor, change),
                       adjustForChange(range.head, change)));
  }
  return normalizeSelection(out, doc.sel.primIndex)
}

function offsetPos(pos, old, nw) {
  if (pos.line == old.line)
    { return Pos(nw.line, pos.ch - old.ch + nw.ch) }
  else
    { return Pos(nw.line + (pos.line - old.line), pos.ch) }
}

// Used by replaceSelections to allow moving the selection to the
// start or around the replaced test. Hint may be "start" or "around".
function computeReplacedSel(doc, changes, hint) {
  var out = [];
  var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
  for (var i = 0; i < changes.length; i++) {
    var change = changes[i];
    var from = offsetPos(change.from, oldPrev, newPrev);
    var to = offsetPos(changeEnd(change), oldPrev, newPrev);
    oldPrev = change.to;
    newPrev = to;
    if (hint == "around") {
      var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
      out[i] = new Range(inv ? to : from, inv ? from : to);
    } else {
      out[i] = new Range(from, from);
    }
  }
  return new Selection(out, doc.sel.primIndex)
}

// Used to get the editor into a consistent state again when options change.

function loadMode(cm) {
  cm.doc.mode = getMode(cm.options, cm.doc.modeOption);
  resetModeState(cm);
}

function resetModeState(cm) {
  cm.doc.iter(function (line) {
    if (line.stateAfter) { line.stateAfter = null; }
    if (line.styles) { line.styles = null; }
  });
  cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;
  startWorker(cm, 100);
  cm.state.modeGen++;
  if (cm.curOp) { regChange(cm); }
}

// DOCUMENT DATA STRUCTURE

// By default, updates that start and end at the beginning of a line
// are treated specially, in order to make the association of line
// widgets and marker elements with the text behave more intuitive.
function isWholeLineUpdate(doc, change) {
  return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
    (!doc.cm || doc.cm.options.wholeLineUpdateBefore)
}

// Perform a change on the document data structure.
function updateDoc(doc, change, markedSpans, estimateHeight$$1) {
  function spansFor(n) {return markedSpans ? markedSpans[n] : null}
  function update(line, text, spans) {
    updateLine(line, text, spans, estimateHeight$$1);
    signalLater(line, "change", line, change);
  }
  function linesFor(start, end) {
    var result = [];
    for (var i = start; i < end; ++i)
      { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); }
    return result
  }

  var from = change.from, to = change.to, text = change.text;
  var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
  var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;

  // Adjust the line structure
  if (change.full) {
    doc.insert(0, linesFor(0, text.length));
    doc.remove(text.length, doc.size - text.length);
  } else if (isWholeLineUpdate(doc, change)) {
    // This is a whole-line replace. Treated specially to make
    // sure line objects move the way they are supposed to.
    var added = linesFor(0, text.length - 1);
    update(lastLine, lastLine.text, lastSpans);
    if (nlines) { doc.remove(from.line, nlines); }
    if (added.length) { doc.insert(from.line, added); }
  } else if (firstLine == lastLine) {
    if (text.length == 1) {
      update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
    } else {
      var added$1 = linesFor(1, text.length - 1);
      added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1));
      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
      doc.insert(from.line + 1, added$1);
    }
  } else if (text.length == 1) {
    update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
    doc.remove(from.line + 1, nlines);
  } else {
    update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
    update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
    var added$2 = linesFor(1, text.length - 1);
    if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }
    doc.insert(from.line + 1, added$2);
  }

  signalLater(doc, "change", doc, change);
}

// Call f for all linked documents.
function linkedDocs(doc, f, sharedHistOnly) {
  function propagate(doc, skip, sharedHist) {
    if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {
      var rel = doc.linked[i];
      if (rel.doc == skip) { continue }
      var shared = sharedHist && rel.sharedHist;
      if (sharedHistOnly && !shared) { continue }
      f(rel.doc, shared);
      propagate(rel.doc, doc, shared);
    } }
  }
  propagate(doc, null, true);
}

// Attach a document to an editor.
function attachDoc(cm, doc) {
  if (doc.cm) { throw new Error("This document is already in use.") }
  cm.doc = doc;
  doc.cm = cm;
  estimateLineHeights(cm);
  loadMode(cm);
  setDirectionClass(cm);
  if (!cm.options.lineWrapping) { findMaxLine(cm); }
  cm.options.mode = doc.modeOption;
  regChange(cm);
}

function setDirectionClass(cm) {
  (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl");
}

function directionChanged(cm) {
  runInOp(cm, function () {
    setDirectionClass(cm);
    regChange(cm);
  });
}

function History(startGen) {
  // Arrays of change events and selections. Doing something adds an
  // event to done and clears undo. Undoing moves events from done
  // to undone, redoing moves them in the other direction.
  this.done = []; this.undone = [];
  this.undoDepth = Infinity;
  // Used to track when changes can be merged into a single undo
  // event
  this.lastModTime = this.lastSelTime = 0;
  this.lastOp = this.lastSelOp = null;
  this.lastOrigin = this.lastSelOrigin = null;
  // Used by the isClean() method
  this.generation = this.maxGeneration = startGen || 1;
}

// Create a history change event from an updateDoc-style change
// object.
function historyChangeFromChange(doc, change) {
  var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
  attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
  linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);
  return histChange
}

// Pop all selection events off the end of a history array. Stop at
// a change event.
function clearSelectionEvents(array) {
  while (array.length) {
    var last = lst(array);
    if (last.ranges) { array.pop(); }
    else { break }
  }
}

// Find the top change event in the history. Pop off selection
// events that are in the way.
function lastChangeEvent(hist, force) {
  if (force) {
    clearSelectionEvents(hist.done);
    return lst(hist.done)
  } else if (hist.done.length && !lst(hist.done).ranges) {
    return lst(hist.done)
  } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
    hist.done.pop();
    return lst(hist.done)
  }
}

// Register a change in the history. Merges changes that are within
// a single operation, or are close together with an origin that
// allows merging (starting with "+") into a single event.
function addChangeToHistory(doc, change, selAfter, opId) {
  var hist = doc.history;
  hist.undone.length = 0;
  var time = +new Date, cur;
  var last;

  if ((hist.lastOp == opId ||
       hist.lastOrigin == change.origin && change.origin &&
       ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||
        change.origin.charAt(0) == "*")) &&
      (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
    // Merge this change into the last event
    last = lst(cur.changes);
    if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
      // Optimized case for simple insertion -- don't want to add
      // new changesets for every character typed
      last.to = changeEnd(change);
    } else {
      // Add new sub-event
      cur.changes.push(historyChangeFromChange(doc, change));
    }
  } else {
    // Can not be merged, start a new event.
    var before = lst(hist.done);
    if (!before || !before.ranges)
      { pushSelectionToHistory(doc.sel, hist.done); }
    cur = {changes: [historyChangeFromChange(doc, change)],
           generation: hist.generation};
    hist.done.push(cur);
    while (hist.done.length > hist.undoDepth) {
      hist.done.shift();
      if (!hist.done[0].ranges) { hist.done.shift(); }
    }
  }
  hist.done.push(selAfter);
  hist.generation = ++hist.maxGeneration;
  hist.lastModTime = hist.lastSelTime = time;
  hist.lastOp = hist.lastSelOp = opId;
  hist.lastOrigin = hist.lastSelOrigin = change.origin;

  if (!last) { signal(doc, "historyAdded"); }
}

function selectionEventCanBeMerged(doc, origin, prev, sel) {
  var ch = origin.charAt(0);
  return ch == "*" ||
    ch == "+" &&
    prev.ranges.length == sel.ranges.length &&
    prev.somethingSelected() == sel.somethingSelected() &&
    new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)
}

// Called whenever the selection changes, sets the new selection as
// the pending selection in the history, and pushes the old pending
// selection into the 'done' array when it was significantly
// different (in number of selected ranges, emptiness, or time).
function addSelectionToHistory(doc, sel, opId, options) {
  var hist = doc.history, origin = options && options.origin;

  // A new event is started when the previous origin does not match
  // the current, or the origins don't allow matching. Origins
  // starting with * are always merged, those starting with + are
  // merged when similar and close together in time.
  if (opId == hist.lastSelOp ||
      (origin && hist.lastSelOrigin == origin &&
       (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
        selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
    { hist.done[hist.done.length - 1] = sel; }
  else
    { pushSelectionToHistory(sel, hist.done); }

  hist.lastSelTime = +new Date;
  hist.lastSelOrigin = origin;
  hist.lastSelOp = opId;
  if (options && options.clearRedo !== false)
    { clearSelectionEvents(hist.undone); }
}

function pushSelectionToHistory(sel, dest) {
  var top = lst(dest);
  if (!(top && top.ranges && top.equals(sel)))
    { dest.push(sel); }
}

// Used to store marked span information in the history.
function attachLocalSpans(doc, change, from, to) {
  var existing = change["spans_" + doc.id], n = 0;
  doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {
    if (line.markedSpans)
      { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; }
    ++n;
  });
}

// When un/re-doing restores text containing marked spans, those
// that have been explicitly cleared should not be restored.
function removeClearedSpans(spans) {
  if (!spans) { return null }
  var out;
  for (var i = 0; i < spans.length; ++i) {
    if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }
    else if (out) { out.push(spans[i]); }
  }
  return !out ? spans : out.length ? out : null
}

// Retrieve and filter the old marked spans stored in a change event.
function getOldSpans(doc, change) {
  var found = change["spans_" + doc.id];
  if (!found) { return null }
  var nw = [];
  for (var i = 0; i < change.text.length; ++i)
    { nw.push(removeClearedSpans(found[i])); }
  return nw
}

// Used for un/re-doing changes from the history. Combines the
// result of computing the existing spans with the set of spans that
// existed in the history (so that deleting around a span and then
// undoing brings back the span).
function mergeOldSpans(doc, change) {
  var old = getOldSpans(doc, change);
  var stretched = stretchSpansOverChange(doc, change);
  if (!old) { return stretched }
  if (!stretched) { return old }

  for (var i = 0; i < old.length; ++i) {
    var oldCur = old[i], stretchCur = stretched[i];
    if (oldCur && stretchCur) {
      spans: for (var j = 0; j < stretchCur.length; ++j) {
        var span = stretchCur[j];
        for (var k = 0; k < oldCur.length; ++k)
          { if (oldCur[k].marker == span.marker) { continue spans } }
        oldCur.push(span);
      }
    } else if (stretchCur) {
      old[i] = stretchCur;
    }
  }
  return old
}

// Used both to provide a JSON-safe object in .getHistory, and, when
// detaching a document, to split the history in two
function copyHistoryArray(events, newGroup, instantiateSel) {
  var copy = [];
  for (var i = 0; i < events.length; ++i) {
    var event = events[i];
    if (event.ranges) {
      copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
      continue
    }
    var changes = event.changes, newChanges = [];
    copy.push({changes: newChanges});
    for (var j = 0; j < changes.length; ++j) {
      var change = changes[j], m = (void 0);
      newChanges.push({from: change.from, to: change.to, text: change.text});
      if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) {
        if (indexOf(newGroup, Number(m[1])) > -1) {
          lst(newChanges)[prop] = change[prop];
          delete change[prop];
        }
      } } }
    }
  }
  return copy
}

// The 'scroll' parameter given to many of these indicated whether
// the new cursor position should be scrolled into view after
// modifying the selection.

// If shift is held or the extend flag is set, extends a range to
// include a given position (and optionally a second position).
// Otherwise, simply returns the range between the given positions.
// Used for cursor motion and such.
function extendRange(range, head, other, extend) {
  if (extend) {
    var anchor = range.anchor;
    if (other) {
      var posBefore = cmp(head, anchor) < 0;
      if (posBefore != (cmp(other, anchor) < 0)) {
        anchor = head;
        head = other;
      } else if (posBefore != (cmp(head, other) < 0)) {
        head = other;
      }
    }
    return new Range(anchor, head)
  } else {
    return new Range(other || head, head)
  }
}

// Extend the primary selection range, discard the rest.
function extendSelection(doc, head, other, options, extend) {
  if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }
  setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);
}

// Extend all selections (pos is an array of selections with length
// equal the number of selections)
function extendSelections(doc, heads, options) {
  var out = [];
  var extend = doc.cm && (doc.cm.display.shift || doc.extend);
  for (var i = 0; i < doc.sel.ranges.length; i++)
    { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }
  var newSel = normalizeSelection(out, doc.sel.primIndex);
  setSelection(doc, newSel, options);
}

// Updates a single range in the selection.
function replaceOneSelection(doc, i, range, options) {
  var ranges = doc.sel.ranges.slice(0);
  ranges[i] = range;
  setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);
}

// Reset the selection to a single range.
function setSimpleSelection(doc, anchor, head, options) {
  setSelection(doc, simpleSelection(anchor, head), options);
}

// Give beforeSelectionChange handlers a change to influence a
// selection update.
function filterSelectionChange(doc, sel, options) {
  var obj = {
    ranges: sel.ranges,
    update: function(ranges) {
      var this$1 = this;

      this.ranges = [];
      for (var i = 0; i < ranges.length; i++)
        { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
                                   clipPos(doc, ranges[i].head)); }
    },
    origin: options && options.origin
  };
  signal(doc, "beforeSelectionChange", doc, obj);
  if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); }
  if (obj.ranges != sel.ranges) { return normalizeSelection(obj.ranges, obj.ranges.length - 1) }
  else { return sel }
}

function setSelectionReplaceHistory(doc, sel, options) {
  var done = doc.history.done, last = lst(done);
  if (last && last.ranges) {
    done[done.length - 1] = sel;
    setSelectionNoUndo(doc, sel, options);
  } else {
    setSelection(doc, sel, options);
  }
}

// Set a new selection.
function setSelection(doc, sel, options) {
  setSelectionNoUndo(doc, sel, options);
  addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
}

function setSelectionNoUndo(doc, sel, options) {
  if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
    { sel = filterSelectionChange(doc, sel, options); }

  var bias = options && options.bias ||
    (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
  setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));

  if (!(options && options.scroll === false) && doc.cm)
    { ensureCursorVisible(doc.cm); }
}

function setSelectionInner(doc, sel) {
  if (sel.equals(doc.sel)) { return }

  doc.sel = sel;

  if (doc.cm) {
    doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
    signalCursorActivity(doc.cm);
  }
  signalLater(doc, "cursorActivity", doc);
}

// Verify that the selection does not partially select any atomic
// marked ranges.
function reCheckSelection(doc) {
  setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));
}

// Return a selection that does not partially select any atomic
// ranges.
function skipAtomicInSelection(doc, sel, bias, mayClear) {
  var out;
  for (var i = 0; i < sel.ranges.length; i++) {
    var range = sel.ranges[i];
    var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];
    var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);
    var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);
    if (out || newAnchor != range.anchor || newHead != range.head) {
      if (!out) { out = sel.ranges.slice(0, i); }
      out[i] = new Range(newAnchor, newHead);
    }
  }
  return out ? normalizeSelection(out, sel.primIndex) : sel
}

function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
  var line = getLine(doc, pos.line);
  if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {
    var sp = line.markedSpans[i], m = sp.marker;
    if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
        (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
      if (mayClear) {
        signal(m, "beforeCursorEnter");
        if (m.explicitlyCleared) {
          if (!line.markedSpans) { break }
          else {--i; continue}
        }
      }
      if (!m.atomic) { continue }

      if (oldPos) {
        var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);
        if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
          { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }
        if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
          { return skipAtomicInner(doc, near, pos, dir, mayClear) }
      }

      var far = m.find(dir < 0 ? -1 : 1);
      if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
        { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }
      return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null
    }
  } }
  return pos
}

// Ensure a given position is not inside an atomic range.
function skipAtomic(doc, pos, oldPos, bias, mayClear) {
  var dir = bias || 1;
  var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||
      (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||
      skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||
      (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));
  if (!found) {
    doc.cantEdit = true;
    return Pos(doc.first, 0)
  }
  return found
}

function movePos(doc, pos, dir, line) {
  if (dir < 0 && pos.ch == 0) {
    if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }
    else { return null }
  } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {
    if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }
    else { return null }
  } else {
    return new Pos(pos.line, pos.ch + dir)
  }
}

function selectAll(cm) {
  cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);
}

// UPDATING

// Allow "beforeChange" event handlers to influence a change
function filterChange(doc, change, update) {
  var obj = {
    canceled: false,
    from: change.from,
    to: change.to,
    text: change.text,
    origin: change.origin,
    cancel: function () { return obj.canceled = true; }
  };
  if (update) { obj.update = function (from, to, text, origin) {
    if (from) { obj.from = clipPos(doc, from); }
    if (to) { obj.to = clipPos(doc, to); }
    if (text) { obj.text = text; }
    if (origin !== undefined) { obj.origin = origin; }
  }; }
  signal(doc, "beforeChange", doc, obj);
  if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); }

  if (obj.canceled) { return null }
  return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}
}

// Apply a change to a document, and add it to the document's
// history, and propagating it to all linked documents.
function makeChange(doc, change, ignoreReadOnly) {
  if (doc.cm) {
    if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }
    if (doc.cm.state.suppressEdits) { return }
  }

  if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
    change = filterChange(doc, change, true);
    if (!change) { return }
  }

  // Possibly split or suppress the update based on the presence
  // of read-only spans in its range.
  var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
  if (split) {
    for (var i = split.length - 1; i >= 0; --i)
      { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); }
  } else {
    makeChangeInner(doc, change);
  }
}

function makeChangeInner(doc, change) {
  if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return }
  var selAfter = computeSelAfterChange(doc, change);
  addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);

  makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
  var rebased = [];

  linkedDocs(doc, function (doc, sharedHist) {
    if (!sharedHist && indexOf(rebased, doc.history) == -1) {
      rebaseHist(doc.history, change);
      rebased.push(doc.history);
    }
    makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
  });
}

// Revert a change stored in a document's history.
function makeChangeFromHistory(doc, type, allowSelectionOnly) {
  var suppress = doc.cm && doc.cm.state.suppressEdits;
  if (suppress && !allowSelectionOnly) { return }

  var hist = doc.history, event, selAfter = doc.sel;
  var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;

  // Verify that there is a useable event (so that ctrl-z won't
  // needlessly clear selection events)
  var i = 0;
  for (; i < source.length; i++) {
    event = source[i];
    if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
      { break }
  }
  if (i == source.length) { return }
  hist.lastOrigin = hist.lastSelOrigin = null;

  for (;;) {
    event = source.pop();
    if (event.ranges) {
      pushSelectionToHistory(event, dest);
      if (allowSelectionOnly && !event.equals(doc.sel)) {
        setSelection(doc, event, {clearRedo: false});
        return
      }
      selAfter = event;
    } else if (suppress) {
      source.push(event);
      return
    } else { break }
  }

  // Build up a reverse change object to add to the opposite history
  // stack (redo when undoing, and vice versa).
  var antiChanges = [];
  pushSelectionToHistory(selAfter, dest);
  dest.push({changes: antiChanges, generation: hist.generation});
  hist.generation = event.generation || ++hist.maxGeneration;

  var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");

  var loop = function ( i ) {
    var change = event.changes[i];
    change.origin = type;
    if (filter && !filterChange(doc, change, false)) {
      source.length = 0;
      return {}
    }

    antiChanges.push(historyChangeFromChange(doc, change));

    var after = i ? computeSelAfterChange(doc, change) : lst(source);
    makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
    if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }
    var rebased = [];

    // Propagate to the linked documents
    linkedDocs(doc, function (doc, sharedHist) {
      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
        rebaseHist(doc.history, change);
        rebased.push(doc.history);
      }
      makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
    });
  };

  for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {
    var returned = loop( i$1 );

    if ( returned ) return returned.v;
  }
}

// Sub-views need their line numbers shifted when text is added
// above or below them in the parent document.
function shiftDoc(doc, distance) {
  if (distance == 0) { return }
  doc.first += distance;
  doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(
    Pos(range.anchor.line + distance, range.anchor.ch),
    Pos(range.head.line + distance, range.head.ch)
  ); }), doc.sel.primIndex);
  if (doc.cm) {
    regChange(doc.cm, doc.first, doc.first - distance, distance);
    for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
      { regLineChange(doc.cm, l, "gutter"); }
  }
}

// More lower-level change function, handling only a single document
// (not linked ones).
function makeChangeSingleDoc(doc, change, selAfter, spans) {
  if (doc.cm && !doc.cm.curOp)
    { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }

  if (change.to.line < doc.first) {
    shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
    return
  }
  if (change.from.line > doc.lastLine()) { return }

  // Clip the change to the size of this doc
  if (change.from.line < doc.first) {
    var shift = change.text.length - 1 - (doc.first - change.from.line);
    shiftDoc(doc, shift);
    change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
              text: [lst(change.text)], origin: change.origin};
  }
  var last = doc.lastLine();
  if (change.to.line > last) {
    change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
              text: [change.text[0]], origin: change.origin};
  }

  change.removed = getBetween(doc, change.from, change.to);

  if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }
  if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }
  else { updateDoc(doc, change, spans); }
  setSelectionNoUndo(doc, selAfter, sel_dontScroll);
}

// Handle the interaction of a change to a document with the editor
// that this document is part of.
function makeChangeSingleDocInEditor(cm, change, spans) {
  var doc = cm.doc, display = cm.display, from = change.from, to = change.to;

  var recomputeMaxLength = false, checkWidthStart = from.line;
  if (!cm.options.lineWrapping) {
    checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
    doc.iter(checkWidthStart, to.line + 1, function (line) {
      if (line == display.maxLine) {
        recomputeMaxLength = true;
        return true
      }
    });
  }

  if (doc.sel.contains(change.from, change.to) > -1)
    { signalCursorActivity(cm); }

  updateDoc(doc, change, spans, estimateHeight(cm));

  if (!cm.options.lineWrapping) {
    doc.iter(checkWidthStart, from.line + change.text.length, function (line) {
      var len = lineLength(line);
      if (len > display.maxLineLength) {
        display.maxLine = line;
        display.maxLineLength = len;
        display.maxLineChanged = true;
        recomputeMaxLength = false;
      }
    });
    if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
  }

  retreatFrontier(doc, from.line);
  startWorker(cm, 400);

  var lendiff = change.text.length - (to.line - from.line) - 1;
  // Remember that these lines changed, for updating the display
  if (change.full)
    { regChange(cm); }
  else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
    { regLineChange(cm, from.line, "text"); }
  else
    { regChange(cm, from.line, to.line + 1, lendiff); }

  var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
  if (changeHandler || changesHandler) {
    var obj = {
      from: from, to: to,
      text: change.text,
      removed: change.removed,
      origin: change.origin
    };
    if (changeHandler) { signalLater(cm, "change", cm, obj); }
    if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }
  }
  cm.display.selForContextMenu = null;
}

function replaceRange(doc, code, from, to, origin) {
  if (!to) { to = from; }
  if (cmp(to, from) < 0) { var assign;
    (assign = [to, from], from = assign[0], to = assign[1]); }
  if (typeof code == "string") { code = doc.splitLines(code); }
  makeChange(doc, {from: from, to: to, text: code, origin: origin});
}

// Rebasing/resetting history to deal with externally-sourced changes

function rebaseHistSelSingle(pos, from, to, diff) {
  if (to < pos.line) {
    pos.line += diff;
  } else if (from < pos.line) {
    pos.line = from;
    pos.ch = 0;
  }
}

// Tries to rebase an array of history events given a change in the
// document. If the change touches the same lines as the event, the
// event, and everything 'behind' it, is discarded. If the change is
// before the event, the event's positions are updated. Uses a
// copy-on-write scheme for the positions, to avoid having to
// reallocate them all on every rebase, but also avoid problems with
// shared position objects being unsafely updated.
function rebaseHistArray(array, from, to, diff) {
  for (var i = 0; i < array.length; ++i) {
    var sub = array[i], ok = true;
    if (sub.ranges) {
      if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
      for (var j = 0; j < sub.ranges.length; j++) {
        rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
        rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
      }
      continue
    }
    for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {
      var cur = sub.changes[j$1];
      if (to < cur.from.line) {
        cur.from = Pos(cur.from.line + diff, cur.from.ch);
        cur.to = Pos(cur.to.line + diff, cur.to.ch);
      } else if (from <= cur.to.line) {
        ok = false;
        break
      }
    }
    if (!ok) {
      array.splice(0, i + 1);
      i = 0;
    }
  }
}

function rebaseHist(hist, change) {
  var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
  rebaseHistArray(hist.done, from, to, diff);
  rebaseHistArray(hist.undone, from, to, diff);
}

// Utility for applying a change to a line by handle or number,
// returning the number and optionally registering the line as
// changed.
function changeLine(doc, handle, changeType, op) {
  var no = handle, line = handle;
  if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); }
  else { no = lineNo(handle); }
  if (no == null) { return null }
  if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }
  return line
}

// The document is represented as a BTree consisting of leaves, with
// chunk of lines in them, and branches, with up to ten leaves or
// other branch nodes below them. The top node is always a branch
// node, and is the document object itself (meaning it has
// additional methods and properties).
//
// All nodes have parent links. The tree is used both to go from
// line numbers to line objects, and to go from objects to numbers.
// It also indexes by height, and is used to convert between height
// and line object, and to find the total height of the document.
//
// See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html

function LeafChunk(lines) {
  var this$1 = this;

  this.lines = lines;
  this.parent = null;
  var height = 0;
  for (var i = 0; i < lines.length; ++i) {
    lines[i].parent = this$1;
    height += lines[i].height;
  }
  this.height = height;
}

LeafChunk.prototype = {
  chunkSize: function() { return this.lines.length },

  // Remove the n lines at offset 'at'.
  removeInner: function(at, n) {
    var this$1 = this;

    for (var i = at, e = at + n; i < e; ++i) {
      var line = this$1.lines[i];
      this$1.height -= line.height;
      cleanUpLine(line);
      signalLater(line, "delete");
    }
    this.lines.splice(at, n);
  },

  // Helper used to collapse a small branch into a single leaf.
  collapse: function(lines) {
    lines.push.apply(lines, this.lines);
  },

  // Insert the given array of lines at offset 'at', count them as
  // having the given height.
  insertInner: function(at, lines, height) {
    var this$1 = this;

    this.height += height;
    this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
    for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }
  },

  // Used to iterate over a part of the tree.
  iterN: function(at, n, op) {
    var this$1 = this;

    for (var e = at + n; at < e; ++at)
      { if (op(this$1.lines[at])) { return true } }
  }
};

function BranchChunk(children) {
  var this$1 = this;

  this.children = children;
  var size = 0, height = 0;
  for (var i = 0; i < children.length; ++i) {
    var ch = children[i];
    size += ch.chunkSize(); height += ch.height;
    ch.parent = this$1;
  }
  this.size = size;
  this.height = height;
  this.parent = null;
}

BranchChunk.prototype = {
  chunkSize: function() { return this.size },

  removeInner: function(at, n) {
    var this$1 = this;

    this.size -= n;
    for (var i = 0; i < this.children.length; ++i) {
      var child = this$1.children[i], sz = child.chunkSize();
      if (at < sz) {
        var rm = Math.min(n, sz - at), oldHeight = child.height;
        child.removeInner(at, rm);
        this$1.height -= oldHeight - child.height;
        if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }
        if ((n -= rm) == 0) { break }
        at = 0;
      } else { at -= sz; }
    }
    // If the result is smaller than 25 lines, ensure that it is a
    // single leaf node.
    if (this.size - n < 25 &&
        (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
      var lines = [];
      this.collapse(lines);
      this.children = [new LeafChunk(lines)];
      this.children[0].parent = this;
    }
  },

  collapse: function(lines) {
    var this$1 = this;

    for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
  },

  insertInner: function(at, lines, height) {
    var this$1 = this;

    this.size += lines.length;
    this.height += height;
    for (var i = 0; i < this.children.length; ++i) {
      var child = this$1.children[i], sz = child.chunkSize();
      if (at <= sz) {
        child.insertInner(at, lines, height);
        if (child.lines && child.lines.length > 50) {
          // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
          // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
          var remaining = child.lines.length % 25 + 25;
          for (var pos = remaining; pos < child.lines.length;) {
            var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
            child.height -= leaf.height;
            this$1.children.splice(++i, 0, leaf);
            leaf.parent = this$1;
          }
          child.lines = child.lines.slice(0, remaining);
          this$1.maybeSpill();
        }
        break
      }
      at -= sz;
    }
  },

  // When a node has grown, check whether it should be split.
  maybeSpill: function() {
    if (this.children.length <= 10) { return }
    var me = this;
    do {
      var spilled = me.children.splice(me.children.length - 5, 5);
      var sibling = new BranchChunk(spilled);
      if (!me.parent) { // Become the parent node
        var copy = new BranchChunk(me.children);
        copy.parent = me;
        me.children = [copy, sibling];
        me = copy;
     } else {
        me.size -= sibling.size;
        me.height -= sibling.height;
        var myIndex = indexOf(me.parent.children, me);
        me.parent.children.splice(myIndex + 1, 0, sibling);
      }
      sibling.parent = me.parent;
    } while (me.children.length > 10)
    me.parent.maybeSpill();
  },

  iterN: function(at, n, op) {
    var this$1 = this;

    for (var i = 0; i < this.children.length; ++i) {
      var child = this$1.children[i], sz = child.chunkSize();
      if (at < sz) {
        var used = Math.min(n, sz - at);
        if (child.iterN(at, used, op)) { return true }
        if ((n -= used) == 0) { break }
        at = 0;
      } else { at -= sz; }
    }
  }
};

// Line widgets are block elements displayed above or below a line.

var LineWidget = function(doc, node, options) {
  var this$1 = this;

  if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))
    { this$1[opt] = options[opt]; } } }
  this.doc = doc;
  this.node = node;
};

LineWidget.prototype.clear = function () {
    var this$1 = this;

  var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
  if (no == null || !ws) { return }
  for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } }
  if (!ws.length) { line.widgets = null; }
  var height = widgetHeight(this);
  updateLineHeight(line, Math.max(0, line.height - height));
  if (cm) {
    runInOp(cm, function () {
      adjustScrollWhenAboveVisible(cm, line, -height);
      regLineChange(cm, no, "widget");
    });
    signalLater(cm, "lineWidgetCleared", cm, this, no);
  }
};

LineWidget.prototype.changed = function () {
    var this$1 = this;

  var oldH = this.height, cm = this.doc.cm, line = this.line;
  this.height = null;
  var diff = widgetHeight(this) - oldH;
  if (!diff) { return }
  if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }
  if (cm) {
    runInOp(cm, function () {
      cm.curOp.forceUpdate = true;
      adjustScrollWhenAboveVisible(cm, line, diff);
      signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line));
    });
  }
};
eventMixin(LineWidget);

function adjustScrollWhenAboveVisible(cm, line, diff) {
  if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
    { addToScrollTop(cm, diff); }
}

function addLineWidget(doc, handle, node, options) {
  var widget = new LineWidget(doc, node, options);
  var cm = doc.cm;
  if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }
  changeLine(doc, handle, "widget", function (line) {
    var widgets = line.widgets || (line.widgets = []);
    if (widget.insertAt == null) { widgets.push(widget); }
    else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); }
    widget.line = line;
    if (cm && !lineIsHidden(doc, line)) {
      var aboveVisible = heightAtLine(line) < doc.scrollTop;
      updateLineHeight(line, line.height + widgetHeight(widget));
      if (aboveVisible) { addToScrollTop(cm, widget.height); }
      cm.curOp.forceUpdate = true;
    }
    return true
  });
  if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); }
  return widget
}

// TEXTMARKERS

// Created with markText and setBookmark methods. A TextMarker is a
// handle that can be used to clear or find a marked position in the
// document. Line objects hold arrays (markedSpans) containing
// {from, to, marker} object pointing to such marker objects, and
// indicating that such a marker is present on that line. Multiple
// lines may point to the same marker when it spans across lines.
// The spans will have null for their from/to properties when the
// marker continues beyond the start/end of the line. Markers have
// links back to the lines they currently touch.

// Collapsed markers have unique ids, in order to be able to order
// them, which is needed for uniquely determining an outer marker
// when they overlap (they may nest, but not partially overlap).
var nextMarkerId = 0;

var TextMarker = function(doc, type) {
  this.lines = [];
  this.type = type;
  this.doc = doc;
  this.id = ++nextMarkerId;
};

// Clear the marker.
TextMarker.prototype.clear = function () {
    var this$1 = this;

  if (this.explicitlyCleared) { return }
  var cm = this.doc.cm, withOp = cm && !cm.curOp;
  if (withOp) { startOperation(cm); }
  if (hasHandler(this, "clear")) {
    var found = this.find();
    if (found) { signalLater(this, "clear", found.from, found.to); }
  }
  var min = null, max = null;
  for (var i = 0; i < this.lines.length; ++i) {
    var line = this$1.lines[i];
    var span = getMarkedSpanFor(line.markedSpans, this$1);
    if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), "text"); }
    else if (cm) {
      if (span.to != null) { max = lineNo(line); }
      if (span.from != null) { min = lineNo(line); }
    }
    line.markedSpans = removeMarkedSpan(line.markedSpans, span);
    if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm)
      { updateLineHeight(line, textHeight(cm.display)); }
  }
  if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {
    var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual);
    if (len > cm.display.maxLineLength) {
      cm.display.maxLine = visual;
      cm.display.maxLineLength = len;
      cm.display.maxLineChanged = true;
    }
  } }

  if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }
  this.lines.length = 0;
  this.explicitlyCleared = true;
  if (this.atomic && this.doc.cantEdit) {
    this.doc.cantEdit = false;
    if (cm) { reCheckSelection(cm.doc); }
  }
  if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); }
  if (withOp) { endOperation(cm); }
  if (this.parent) { this.parent.clear(); }
};

// Find the position of the marker in the document. Returns a {from,
// to} object by default. Side can be passed to get a specific side
// -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
// Pos objects returned contain a line object, rather than a line
// number (used to prevent looking up the same line twice).
TextMarker.prototype.find = function (side, lineObj) {
    var this$1 = this;

  if (side == null && this.type == "bookmark") { side = 1; }
  var from, to;
  for (var i = 0; i < this.lines.length; ++i) {
    var line = this$1.lines[i];
    var span = getMarkedSpanFor(line.markedSpans, this$1);
    if (span.from != null) {
      from = Pos(lineObj ? line : lineNo(line), span.from);
      if (side == -1) { return from }
    }
    if (span.to != null) {
      to = Pos(lineObj ? line : lineNo(line), span.to);
      if (side == 1) { return to }
    }
  }
  return from && {from: from, to: to}
};

// Signals that the marker's widget changed, and surrounding layout
// should be recomputed.
TextMarker.prototype.changed = function () {
    var this$1 = this;

  var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
  if (!pos || !cm) { return }
  runInOp(cm, function () {
    var line = pos.line, lineN = lineNo(pos.line);
    var view = findViewForLine(cm, lineN);
    if (view) {
      clearLineMeasurementCacheFor(view);
      cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
    }
    cm.curOp.updateMaxLine = true;
    if (!lineIsHidden(widget.doc, line) && widget.height != null) {
      var oldHeight = widget.height;
      widget.height = null;
      var dHeight = widgetHeight(widget) - oldHeight;
      if (dHeight)
        { updateLineHeight(line, line.height + dHeight); }
    }
    signalLater(cm, "markerChanged", cm, this$1);
  });
};

TextMarker.prototype.attachLine = function (line) {
  if (!this.lines.length && this.doc.cm) {
    var op = this.doc.cm.curOp;
    if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
      { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }
  }
  this.lines.push(line);
};

TextMarker.prototype.detachLine = function (line) {
  this.lines.splice(indexOf(this.lines, line), 1);
  if (!this.lines.length && this.doc.cm) {
    var op = this.doc.cm.curOp;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
  }
};
eventMixin(TextMarker);

// Create a marker, wire it up to the right lines, and
function markText(doc, from, to, options, type) {
  // Shared markers (across linked documents) are handled separately
  // (markTextShared will call out to this again, once per
  // document).
  if (options && options.shared) { return markTextShared(doc, from, to, options, type) }
  // Ensure we are in an operation.
  if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }

  var marker = new TextMarker(doc, type), diff = cmp(from, to);
  if (options) { copyObj(options, marker, false); }
  // Don't connect empty markers unless clearWhenEmpty is false
  if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
    { return marker }
  if (marker.replacedWith) {
    // Showing up as a widget implies collapsed (widget replaces text)
    marker.collapsed = true;
    marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget");
    if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); }
    if (options.insertLeft) { marker.widgetNode.insertLeft = true; }
  }
  if (marker.collapsed) {
    if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
        from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
      { throw new Error("Inserting collapsed marker partially overlapping an existing one") }
    seeCollapsedSpans();
  }

  if (marker.addToHistory)
    { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); }

  var curLine = from.line, cm = doc.cm, updateMaxLine;
  doc.iter(curLine, to.line + 1, function (line) {
    if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
      { updateMaxLine = true; }
    if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }
    addMarkedSpan(line, new MarkedSpan(marker,
                                       curLine == from.line ? from.ch : null,
                                       curLine == to.line ? to.ch : null));
    ++curLine;
  });
  // lineIsHidden depends on the presence of the spans, so needs a second pass
  if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {
    if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }
  }); }

  if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); }

  if (marker.readOnly) {
    seeReadOnlySpans();
    if (doc.history.done.length || doc.history.undone.length)
      { doc.clearHistory(); }
  }
  if (marker.collapsed) {
    marker.id = ++nextMarkerId;
    marker.atomic = true;
  }
  if (cm) {
    // Sync editor state
    if (updateMaxLine) { cm.curOp.updateMaxLine = true; }
    if (marker.collapsed)
      { regChange(cm, from.line, to.line + 1); }
    else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
      { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } }
    if (marker.atomic) { reCheckSelection(cm.doc); }
    signalLater(cm, "markerAdded", cm, marker);
  }
  return marker
}

// SHARED TEXTMARKERS

// A shared marker spans multiple linked documents. It is
// implemented as a meta-marker-object controlling multiple normal
// markers.
var SharedTextMarker = function(markers, primary) {
  var this$1 = this;

  this.markers = markers;
  this.primary = primary;
  for (var i = 0; i < markers.length; ++i)
    { markers[i].parent = this$1; }
};

SharedTextMarker.prototype.clear = function () {
    var this$1 = this;

  if (this.explicitlyCleared) { return }
  this.explicitlyCleared = true;
  for (var i = 0; i < this.markers.length; ++i)
    { this$1.markers[i].clear(); }
  signalLater(this, "clear");
};

SharedTextMarker.prototype.find = function (side, lineObj) {
  return this.primary.find(side, lineObj)
};
eventMixin(SharedTextMarker);

function markTextShared(doc, from, to, options, type) {
  options = copyObj(options);
  options.shared = false;
  var markers = [markText(doc, from, to, options, type)], primary = markers[0];
  var widget = options.widgetNode;
  linkedDocs(doc, function (doc) {
    if (widget) { options.widgetNode = widget.cloneNode(true); }
    markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
    for (var i = 0; i < doc.linked.length; ++i)
      { if (doc.linked[i].isParent) { return } }
    primary = lst(markers);
  });
  return new SharedTextMarker(markers, primary)
}

function findSharedMarkers(doc) {
  return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })
}

function copySharedMarkers(doc, markers) {
  for (var i = 0; i < markers.length; i++) {
    var marker = markers[i], pos = marker.find();
    var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
    if (cmp(mFrom, mTo)) {
      var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
      marker.markers.push(subMark);
      subMark.parent = marker;
    }
  }
}

function detachSharedMarkers(markers) {
  var loop = function ( i ) {
    var marker = markers[i], linked = [marker.primary.doc];
    linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });
    for (var j = 0; j < marker.markers.length; j++) {
      var subMarker = marker.markers[j];
      if (indexOf(linked, subMarker.doc) == -1) {
        subMarker.parent = null;
        marker.markers.splice(j--, 1);
      }
    }
  };

  for (var i = 0; i < markers.length; i++) loop( i );
}

var nextDocId = 0;
var Doc = function(text, mode, firstLine, lineSep, direction) {
  if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }
  if (firstLine == null) { firstLine = 0; }

  BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
  this.first = firstLine;
  this.scrollTop = this.scrollLeft = 0;
  this.cantEdit = false;
  this.cleanGeneration = 1;
  this.modeFrontier = this.highlightFrontier = firstLine;
  var start = Pos(firstLine, 0);
  this.sel = simpleSelection(start);
  this.history = new History(null);
  this.id = ++nextDocId;
  this.modeOption = mode;
  this.lineSep = lineSep;
  this.direction = (direction == "rtl") ? "rtl" : "ltr";
  this.extend = false;

  if (typeof text == "string") { text = this.splitLines(text); }
  updateDoc(this, {from: start, to: start, text: text});
  setSelection(this, simpleSelection(start), sel_dontScroll);
};

Doc.prototype = createObj(BranchChunk.prototype, {
  constructor: Doc,
  // Iterate over the document. Supports two forms -- with only one
  // argument, it calls that for each line in the document. With
  // three, it iterates over the range given by the first two (with
  // the second being non-inclusive).
  iter: function(from, to, op) {
    if (op) { this.iterN(from - this.first, to - from, op); }
    else { this.iterN(this.first, this.first + this.size, from); }
  },

  // Non-public interface for adding and removing lines.
  insert: function(at, lines) {
    var height = 0;
    for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }
    this.insertInner(at - this.first, lines, height);
  },
  remove: function(at, n) { this.removeInner(at - this.first, n); },

  // From here, the methods are part of the public interface. Most
  // are also available from CodeMirror (editor) instances.

  getValue: function(lineSep) {
    var lines = getLines(this, this.first, this.first + this.size);
    if (lineSep === false) { return lines }
    return lines.join(lineSep || this.lineSeparator())
  },
  setValue: docMethodOp(function(code) {
    var top = Pos(this.first, 0), last = this.first + this.size - 1;
    makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
                      text: this.splitLines(code), origin: "setValue", full: true}, true);
    if (this.cm) { scrollToCoords(this.cm, 0, 0); }
    setSelection(this, simpleSelection(top), sel_dontScroll);
  }),
  replaceRange: function(code, from, to, origin) {
    from = clipPos(this, from);
    to = to ? clipPos(this, to) : from;
    replaceRange(this, code, from, to, origin);
  },
  getRange: function(from, to, lineSep) {
    var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
    if (lineSep === false) { return lines }
    return lines.join(lineSep || this.lineSeparator())
  },

  getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},

  getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},
  getLineNumber: function(line) {return lineNo(line)},

  getLineHandleVisualStart: function(line) {
    if (typeof line == "number") { line = getLine(this, line); }
    return visualLine(line)
  },

  lineCount: function() {return this.size},
  firstLine: function() {return this.first},
  lastLine: function() {return this.first + this.size - 1},

  clipPos: function(pos) {return clipPos(this, pos)},

  getCursor: function(start) {
    var range$$1 = this.sel.primary(), pos;
    if (start == null || start == "head") { pos = range$$1.head; }
    else if (start == "anchor") { pos = range$$1.anchor; }
    else if (start == "end" || start == "to" || start === false) { pos = range$$1.to(); }
    else { pos = range$$1.from(); }
    return pos
  },
  listSelections: function() { return this.sel.ranges },
  somethingSelected: function() {return this.sel.somethingSelected()},

  setCursor: docMethodOp(function(line, ch, options) {
    setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
  }),
  setSelection: docMethodOp(function(anchor, head, options) {
    setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
  }),
  extendSelection: docMethodOp(function(head, other, options) {
    extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
  }),
  extendSelections: docMethodOp(function(heads, options) {
    extendSelections(this, clipPosArray(this, heads), options);
  }),
  extendSelectionsBy: docMethodOp(function(f, options) {
    var heads = map(this.sel.ranges, f);
    extendSelections(this, clipPosArray(this, heads), options);
  }),
  setSelections: docMethodOp(function(ranges, primary, options) {
    var this$1 = this;

    if (!ranges.length) { return }
    var out = [];
    for (var i = 0; i < ranges.length; i++)
      { out[i] = new Range(clipPos(this$1, ranges[i].anchor),
                         clipPos(this$1, ranges[i].head)); }
    if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }
    setSelection(this, normalizeSelection(out, primary), options);
  }),
  addSelection: docMethodOp(function(anchor, head, options) {
    var ranges = this.sel.ranges.slice(0);
    ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
    setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);
  }),

  getSelection: function(lineSep) {
    var this$1 = this;

    var ranges = this.sel.ranges, lines;
    for (var i = 0; i < ranges.length; i++) {
      var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());
      lines = lines ? lines.concat(sel) : sel;
    }
    if (lineSep === false) { return lines }
    else { return lines.join(lineSep || this.lineSeparator()) }
  },
  getSelections: function(lineSep) {
    var this$1 = this;

    var parts = [], ranges = this.sel.ranges;
    for (var i = 0; i < ranges.length; i++) {
      var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());
      if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); }
      parts[i] = sel;
    }
    return parts
  },
  replaceSelection: function(code, collapse, origin) {
    var dup = [];
    for (var i = 0; i < this.sel.ranges.length; i++)
      { dup[i] = code; }
    this.replaceSelections(dup, collapse, origin || "+input");
  },
  replaceSelections: docMethodOp(function(code, collapse, origin) {
    var this$1 = this;

    var changes = [], sel = this.sel;
    for (var i = 0; i < sel.ranges.length; i++) {
      var range$$1 = sel.ranges[i];
      changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin};
    }
    var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
    for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)
      { makeChange(this$1, changes[i$1]); }
    if (newSel) { setSelectionReplaceHistory(this, newSel); }
    else if (this.cm) { ensureCursorVisible(this.cm); }
  }),
  undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
  redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
  undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
  redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),

  setExtending: function(val) {this.extend = val;},
  getExtending: function() {return this.extend},

  historySize: function() {
    var hist = this.history, done = 0, undone = 0;
    for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }
    for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }
    return {undo: done, redo: undone}
  },
  clearHistory: function() {this.history = new History(this.history.maxGeneration);},

  markClean: function() {
    this.cleanGeneration = this.changeGeneration(true);
  },
  changeGeneration: function(forceSplit) {
    if (forceSplit)
      { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }
    return this.history.generation
  },
  isClean: function (gen) {
    return this.history.generation == (gen || this.cleanGeneration)
  },

  getHistory: function() {
    return {done: copyHistoryArray(this.history.done),
            undone: copyHistoryArray(this.history.undone)}
  },
  setHistory: function(histData) {
    var hist = this.history = new History(this.history.maxGeneration);
    hist.done = copyHistoryArray(histData.done.slice(0), null, true);
    hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
  },

  setGutterMarker: docMethodOp(function(line, gutterID, value) {
    return changeLine(this, line, "gutter", function (line) {
      var markers = line.gutterMarkers || (line.gutterMarkers = {});
      markers[gutterID] = value;
      if (!value && isEmpty(markers)) { line.gutterMarkers = null; }
      return true
    })
  }),

  clearGutter: docMethodOp(function(gutterID) {
    var this$1 = this;

    this.iter(function (line) {
      if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
        changeLine(this$1, line, "gutter", function () {
          line.gutterMarkers[gutterID] = null;
          if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }
          return true
        });
      }
    });
  }),

  lineInfo: function(line) {
    var n;
    if (typeof line == "number") {
      if (!isLine(this, line)) { return null }
      n = line;
      line = getLine(this, line);
      if (!line) { return null }
    } else {
      n = lineNo(line);
      if (n == null) { return null }
    }
    return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
            textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
            widgets: line.widgets}
  },

  addLineClass: docMethodOp(function(handle, where, cls) {
    return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) {
      var prop = where == "text" ? "textClass"
               : where == "background" ? "bgClass"
               : where == "gutter" ? "gutterClass" : "wrapClass";
      if (!line[prop]) { line[prop] = cls; }
      else if (classTest(cls).test(line[prop])) { return false }
      else { line[prop] += " " + cls; }
      return true
    })
  }),
  removeLineClass: docMethodOp(function(handle, where, cls) {
    return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) {
      var prop = where == "text" ? "textClass"
               : where == "background" ? "bgClass"
               : where == "gutter" ? "gutterClass" : "wrapClass";
      var cur = line[prop];
      if (!cur) { return false }
      else if (cls == null) { line[prop] = null; }
      else {
        var found = cur.match(classTest(cls));
        if (!found) { return false }
        var end = found.index + found[0].length;
        line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
      }
      return true
    })
  }),

  addLineWidget: docMethodOp(function(handle, node, options) {
    return addLineWidget(this, handle, node, options)
  }),
  removeLineWidget: function(widget) { widget.clear(); },

  markText: function(from, to, options) {
    return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range")
  },
  setBookmark: function(pos, options) {
    var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
                    insertLeft: options && options.insertLeft,
                    clearWhenEmpty: false, shared: options && options.shared,
                    handleMouseEvents: options && options.handleMouseEvents};
    pos = clipPos(this, pos);
    return markText(this, pos, pos, realOpts, "bookmark")
  },
  findMarksAt: function(pos) {
    pos = clipPos(this, pos);
    var markers = [], spans = getLine(this, pos.line).markedSpans;
    if (spans) { for (var i = 0; i < spans.length; ++i) {
      var span = spans[i];
      if ((span.from == null || span.from <= pos.ch) &&
          (span.to == null || span.to >= pos.ch))
        { markers.push(span.marker.parent || span.marker); }
    } }
    return markers
  },
  findMarks: function(from, to, filter) {
    from = clipPos(this, from); to = clipPos(this, to);
    var found = [], lineNo$$1 = from.line;
    this.iter(from.line, to.line + 1, function (line) {
      var spans = line.markedSpans;
      if (spans) { for (var i = 0; i < spans.length; i++) {
        var span = spans[i];
        if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to ||
              span.from == null && lineNo$$1 != from.line ||
              span.from != null && lineNo$$1 == to.line && span.from >= to.ch) &&
            (!filter || filter(span.marker)))
          { found.push(span.marker.parent || span.marker); }
      } }
      ++lineNo$$1;
    });
    return found
  },
  getAllMarks: function() {
    var markers = [];
    this.iter(function (line) {
      var sps = line.markedSpans;
      if (sps) { for (var i = 0; i < sps.length; ++i)
        { if (sps[i].from != null) { markers.push(sps[i].marker); } } }
    });
    return markers
  },

  posFromIndex: function(off) {
    var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length;
    this.iter(function (line) {
      var sz = line.text.length + sepSize;
      if (sz > off) { ch = off; return true }
      off -= sz;
      ++lineNo$$1;
    });
    return clipPos(this, Pos(lineNo$$1, ch))
  },
  indexFromPos: function (coords) {
    coords = clipPos(this, coords);
    var index = coords.ch;
    if (coords.line < this.first || coords.ch < 0) { return 0 }
    var sepSize = this.lineSeparator().length;
    this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value
      index += line.text.length + sepSize;
    });
    return index
  },

  copy: function(copyHistory) {
    var doc = new Doc(getLines(this, this.first, this.first + this.size),
                      this.modeOption, this.first, this.lineSep, this.direction);
    doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
    doc.sel = this.sel;
    doc.extend = false;
    if (copyHistory) {
      doc.history.undoDepth = this.history.undoDepth;
      doc.setHistory(this.getHistory());
    }
    return doc
  },

  linkedDoc: function(options) {
    if (!options) { options = {}; }
    var from = this.first, to = this.first + this.size;
    if (options.from != null && options.from > from) { from = options.from; }
    if (options.to != null && options.to < to) { to = options.to; }
    var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);
    if (options.sharedHist) { copy.history = this.history
    ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
    copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
    copySharedMarkers(copy, findSharedMarkers(this));
    return copy
  },
  unlinkDoc: function(other) {
    var this$1 = this;

    if (other instanceof CodeMirror$1) { other = other.doc; }
    if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {
      var link = this$1.linked[i];
      if (link.doc != other) { continue }
      this$1.linked.splice(i, 1);
      other.unlinkDoc(this$1);
      detachSharedMarkers(findSharedMarkers(this$1));
      break
    } }
    // If the histories were shared, split them again
    if (other.history == this.history) {
      var splitIds = [other.id];
      linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);
      other.history = new History(null);
      other.history.done = copyHistoryArray(this.history.done, splitIds);
      other.history.undone = copyHistoryArray(this.history.undone, splitIds);
    }
  },
  iterLinkedDocs: function(f) {linkedDocs(this, f);},

  getMode: function() {return this.mode},
  getEditor: function() {return this.cm},

  splitLines: function(str) {
    if (this.lineSep) { return str.split(this.lineSep) }
    return splitLinesAuto(str)
  },
  lineSeparator: function() { return this.lineSep || "\n" },

  setDirection: docMethodOp(function (dir) {
    if (dir != "rtl") { dir = "ltr"; }
    if (dir == this.direction) { return }
    this.direction = dir;
    this.iter(function (line) { return line.order = null; });
    if (this.cm) { directionChanged(this.cm); }
  })
});

// Public alias.
Doc.prototype.eachLine = Doc.prototype.iter;

// Kludge to work around strange IE behavior where it'll sometimes
// re-fire a series of drag-related events right after the drop (#1551)
var lastDrop = 0;

function onDrop(e) {
  var cm = this;
  clearDragCursor(cm);
  if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
    { return }
  e_preventDefault(e);
  if (ie) { lastDrop = +new Date; }
  var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
  if (!pos || cm.isReadOnly()) { return }
  // Might be a file drop, in which case we simply extract the text
  // and insert it.
  if (files && files.length && window.FileReader && window.File) {
    var n = files.length, text = Array(n), read = 0;
    var loadFile = function (file, i) {
      if (cm.options.allowDropFileTypes &&
          indexOf(cm.options.allowDropFileTypes, file.type) == -1)
        { return }

      var reader = new FileReader;
      reader.onload = operation(cm, function () {
        var content = reader.result;
        if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { content = ""; }
        text[i] = content;
        if (++read == n) {
          pos = clipPos(cm.doc, pos);
          var change = {from: pos, to: pos,
                        text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
                        origin: "paste"};
          makeChange(cm.doc, change);
          setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
        }
      });
      reader.readAsText(file);
    };
    for (var i = 0; i < n; ++i) { loadFile(files[i], i); }
  } else { // Normal drop
    // Don't do a replace if the drop happened inside of the selected text.
    if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
      cm.state.draggingText(e);
      // Ensure the editor is re-focused
      setTimeout(function () { return cm.display.input.focus(); }, 20);
      return
    }
    try {
      var text$1 = e.dataTransfer.getData("Text");
      if (text$1) {
        var selected;
        if (cm.state.draggingText && !cm.state.draggingText.copy)
          { selected = cm.listSelections(); }
        setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
        if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)
          { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } }
        cm.replaceSelection(text$1, "around", "paste");
        cm.display.input.focus();
      }
    }
    catch(e){}
  }
}

function onDragStart(cm, e) {
  if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }
  if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }

  e.dataTransfer.setData("Text", cm.getSelection());
  e.dataTransfer.effectAllowed = "copyMove";

  // Use dummy image instead of default browsers image.
  // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
  if (e.dataTransfer.setDragImage && !safari) {
    var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
    img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
    if (presto) {
      img.width = img.height = 1;
      cm.display.wrapper.appendChild(img);
      // Force a relayout, or Opera won't use our image for some obscure reason
      img._top = img.offsetTop;
    }
    e.dataTransfer.setDragImage(img, 0, 0);
    if (presto) { img.parentNode.removeChild(img); }
  }
}

function onDragOver(cm, e) {
  var pos = posFromMouse(cm, e);
  if (!pos) { return }
  var frag = document.createDocumentFragment();
  drawSelectionCursor(cm, pos, frag);
  if (!cm.display.dragCursor) {
    cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
    cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
  }
  removeChildrenAndAdd(cm.display.dragCursor, frag);
}

function clearDragCursor(cm) {
  if (cm.display.dragCursor) {
    cm.display.lineSpace.removeChild(cm.display.dragCursor);
    cm.display.dragCursor = null;
  }
}

// These must be handled carefully, because naively registering a
// handler for each editor will cause the editors to never be
// garbage collected.

function forEachCodeMirror(f) {
  if (!document.getElementsByClassName) { return }
  var byClass = document.getElementsByClassName("CodeMirror");
  for (var i = 0; i < byClass.length; i++) {
    var cm = byClass[i].CodeMirror;
    if (cm) { f(cm); }
  }
}

var globalsRegistered = false;
function ensureGlobalHandlers() {
  if (globalsRegistered) { return }
  registerGlobalHandlers();
  globalsRegistered = true;
}
function registerGlobalHandlers() {
  // When the window resizes, we need to refresh active editors.
  var resizeTimer;
  on(window, "resize", function () {
    if (resizeTimer == null) { resizeTimer = setTimeout(function () {
      resizeTimer = null;
      forEachCodeMirror(onResize);
    }, 100); }
  });
  // When the window loses focus, we want to show the editor as blurred
  on(window, "blur", function () { return forEachCodeMirror(onBlur); });
}
// Called when the window resizes
function onResize(cm) {
  var d = cm.display;
  // Might be a text scaling operation, clear size caches.
  d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
  d.scrollbarsClipped = false;
  cm.setSize();
}

var keyNames = {
  3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
  19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
  36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
  46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
  106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete", 145: "ScrollLock",
  173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
  221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
  63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
};

// Number keys
for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }
// Alphabetic keys
for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }
// Function keys
for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; }

var keyMap = {};

keyMap.basic = {
  "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
  "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
  "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
  "Tab": "defaultTab", "Shift-Tab": "indentAuto",
  "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
  "Esc": "singleSelection"
};
// Note that the save and find-related commands aren't defined by
// default. User code or addons can define them. Unknown commands
// are simply ignored.
keyMap.pcDefault = {
  "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
  "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
  "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
  "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
  "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
  "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
  "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
  "fallthrough": "basic"
};
// Very basic readline/emacs-style bindings, which are standard on Mac.
keyMap.emacsy = {
  "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
  "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
  "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
  "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
  "Ctrl-O": "openLine"
};
keyMap.macDefault = {
  "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
  "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
  "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
  "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
  "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
  "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
  "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
  "fallthrough": ["basic", "emacsy"]
};
keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;

// KEYMAP DISPATCH

function normalizeKeyName(name) {
  var parts = name.split(/-(?!$)/);
  name = parts[parts.length - 1];
  var alt, ctrl, shift, cmd;
  for (var i = 0; i < parts.length - 1; i++) {
    var mod = parts[i];
    if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }
    else if (/^a(lt)?$/i.test(mod)) { alt = true; }
    else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }
    else if (/^s(hift)?$/i.test(mod)) { shift = true; }
    else { throw new Error("Unrecognized modifier name: " + mod) }
  }
  if (alt) { name = "Alt-" + name; }
  if (ctrl) { name = "Ctrl-" + name; }
  if (cmd) { name = "Cmd-" + name; }
  if (shift) { name = "Shift-" + name; }
  return name
}

// This is a kludge to keep keymaps mostly working as raw objects
// (backwards compatibility) while at the same time support features
// like normalization and multi-stroke key bindings. It compiles a
// new normalized keymap, and then updates the old object to reflect
// this.
function normalizeKeyMap(keymap) {
  var copy = {};
  for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {
    var value = keymap[keyname];
    if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }
    if (value == "...") { delete keymap[keyname]; continue }

    var keys = map(keyname.split(" "), normalizeKeyName);
    for (var i = 0; i < keys.length; i++) {
      var val = (void 0), name = (void 0);
      if (i == keys.length - 1) {
        name = keys.join(" ");
        val = value;
      } else {
        name = keys.slice(0, i + 1).join(" ");
        val = "...";
      }
      var prev = copy[name];
      if (!prev) { copy[name] = val; }
      else if (prev != val) { throw new Error("Inconsistent bindings for " + name) }
    }
    delete keymap[keyname];
  } }
  for (var prop in copy) { keymap[prop] = copy[prop]; }
  return keymap
}

function lookupKey(key, map$$1, handle, context) {
  map$$1 = getKeyMap(map$$1);
  var found = map$$1.call ? map$$1.call(key, context) : map$$1[key];
  if (found === false) { return "nothing" }
  if (found === "...") { return "multi" }
  if (found != null && handle(found)) { return "handled" }

  if (map$$1.fallthrough) {
    if (Object.prototype.toString.call(map$$1.fallthrough) != "[object Array]")
      { return lookupKey(key, map$$1.fallthrough, handle, context) }
    for (var i = 0; i < map$$1.fallthrough.length; i++) {
      var result = lookupKey(key, map$$1.fallthrough[i], handle, context);
      if (result) { return result }
    }
  }
}

// Modifier key presses don't count as 'real' key presses for the
// purpose of keymap fallthrough.
function isModifierKey(value) {
  var name = typeof value == "string" ? value : keyNames[value.keyCode];
  return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
}

function addModifierNames(name, event, noShift) {
  var base = name;
  if (event.altKey && base != "Alt") { name = "Alt-" + name; }
  if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
  if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
  if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; }
  return name
}

// Look up the name of a key as indicated by an event object.
function keyName(event, noShift) {
  if (presto && event.keyCode == 34 && event["char"]) { return false }
  var name = keyNames[event.keyCode];
  if (name == null || event.altGraphKey) { return false }
  // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,
  // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)
  if (event.keyCode == 3 && event.code) { name = event.code; }
  return addModifierNames(name, event, noShift)
}

function getKeyMap(val) {
  return typeof val == "string" ? keyMap[val] : val
}

// Helper for deleting text near the selection(s), used to implement
// backspace, delete, and similar functionality.
function deleteNearSelection(cm, compute) {
  var ranges = cm.doc.sel.ranges, kill = [];
  // Build up a set of ranges to kill first, merging overlapping
  // ranges.
  for (var i = 0; i < ranges.length; i++) {
    var toKill = compute(ranges[i]);
    while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
      var replaced = kill.pop();
      if (cmp(replaced.from, toKill.from) < 0) {
        toKill.from = replaced.from;
        break
      }
    }
    kill.push(toKill);
  }
  // Next, remove those actual ranges.
  runInOp(cm, function () {
    for (var i = kill.length - 1; i >= 0; i--)
      { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); }
    ensureCursorVisible(cm);
  });
}

function moveCharLogically(line, ch, dir) {
  var target = skipExtendingChars(line.text, ch + dir, dir);
  return target < 0 || target > line.text.length ? null : target
}

function moveLogically(line, start, dir) {
  var ch = moveCharLogically(line, start.ch, dir);
  return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
}

function endOfLine(visually, cm, lineObj, lineNo, dir) {
  if (visually) {
    var order = getOrder(lineObj, cm.doc.direction);
    if (order) {
      var part = dir < 0 ? lst(order) : order[0];
      var moveInStorageOrder = (dir < 0) == (part.level == 1);
      var sticky = moveInStorageOrder ? "after" : "before";
      var ch;
      // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
      // it could be that the last bidi part is not on the last visual line,
      // since visual lines contain content order-consecutive chunks.
      // Thus, in rtl, we are looking for the first (content-order) character
      // in the rtl chunk that is on the last line (that is, the same line
      // as the last (content-order) character).
      if (part.level > 0 || cm.doc.direction == "rtl") {
        var prep = prepareMeasureForLine(cm, lineObj);
        ch = dir < 0 ? lineObj.text.length - 1 : 0;
        var targetTop = measureCharPrepared(cm, prep, ch).top;
        ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
        if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
      } else { ch = dir < 0 ? part.to : part.from; }
      return new Pos(lineNo, ch, sticky)
    }
  }
  return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
}

function moveVisually(cm, line, start, dir) {
  var bidi = getOrder(line, cm.doc.direction);
  if (!bidi) { return moveLogically(line, start, dir) }
  if (start.ch >= line.text.length) {
    start.ch = line.text.length;
    start.sticky = "before";
  } else if (start.ch <= 0) {
    start.ch = 0;
    start.sticky = "after";
  }
  var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
  if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
    // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
    // nothing interesting happens.
    return moveLogically(line, start, dir)
  }

  var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
  var prep;
  var getWrappedLineExtent = function (ch) {
    if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
    prep = prep || prepareMeasureForLine(cm, line);
    return wrappedLineExtentChar(cm, line, prep, ch)
  };
  var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);

  if (cm.doc.direction == "rtl" || part.level == 1) {
    var moveInStorageOrder = (part.level == 1) == (dir < 0);
    var ch = mv(start, moveInStorageOrder ? 1 : -1);
    if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
      // Case 2: We move within an rtl part or in an rtl editor on the same visual line
      var sticky = moveInStorageOrder ? "before" : "after";
      return new Pos(start.line, ch, sticky)
    }
  }

  // Case 3: Could not move within this bidi part in this visual line, so leave
  // the current bidi part

  var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
    var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
      ? new Pos(start.line, mv(ch, 1), "before")
      : new Pos(start.line, ch, "after"); };

    for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
      var part = bidi[partPos];
      var moveInStorageOrder = (dir > 0) == (part.level != 1);
      var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
      if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
      ch = moveInStorageOrder ? part.from : mv(part.to, -1);
      if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
    }
  };

  // Case 3a: Look for other bidi parts on the same visual line
  var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
  if (res) { return res }

  // Case 3b: Look for other bidi parts on the next visual line
  var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
  if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
    res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
    if (res) { return res }
  }

  // Case 4: Nowhere to move
  return null
}

// Commands are parameter-less actions that can be performed on an
// editor, mostly used for keybindings.
var commands = {
  selectAll: selectAll,
  singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); },
  killLine: function (cm) { return deleteNearSelection(cm, function (range) {
    if (range.empty()) {
      var len = getLine(cm.doc, range.head.line).text.length;
      if (range.head.ch == len && range.head.line < cm.lastLine())
        { return {from: range.head, to: Pos(range.head.line + 1, 0)} }
      else
        { return {from: range.head, to: Pos(range.head.line, len)} }
    } else {
      return {from: range.from(), to: range.to()}
    }
  }); },
  deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({
    from: Pos(range.from().line, 0),
    to: clipPos(cm.doc, Pos(range.to().line + 1, 0))
  }); }); },
  delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({
    from: Pos(range.from().line, 0), to: range.from()
  }); }); },
  delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {
    var top = cm.charCoords(range.head, "div").top + 5;
    var leftPos = cm.coordsChar({left: 0, top: top}, "div");
    return {from: leftPos, to: range.from()}
  }); },
  delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {
    var top = cm.charCoords(range.head, "div").top + 5;
    var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
    return {from: range.from(), to: rightPos }
  }); },
  undo: function (cm) { return cm.undo(); },
  redo: function (cm) { return cm.redo(); },
  undoSelection: function (cm) { return cm.undoSelection(); },
  redoSelection: function (cm) { return cm.redoSelection(); },
  goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },
  goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },
  goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },
    {origin: "+move", bias: 1}
  ); },
  goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },
    {origin: "+move", bias: 1}
  ); },
  goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },
    {origin: "+move", bias: -1}
  ); },
  goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
    var top = cm.cursorCoords(range.head, "div").top + 5;
    return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
  }, sel_move); },
  goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
    var top = cm.cursorCoords(range.head, "div").top + 5;
    return cm.coordsChar({left: 0, top: top}, "div")
  }, sel_move); },
  goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
    var top = cm.cursorCoords(range.head, "div").top + 5;
    var pos = cm.coordsChar({left: 0, top: top}, "div");
    if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
    return pos
  }, sel_move); },
  goLineUp: function (cm) { return cm.moveV(-1, "line"); },
  goLineDown: function (cm) { return cm.moveV(1, "line"); },
  goPageUp: function (cm) { return cm.moveV(-1, "page"); },
  goPageDown: function (cm) { return cm.moveV(1, "page"); },
  goCharLeft: function (cm) { return cm.moveH(-1, "char"); },
  goCharRight: function (cm) { return cm.moveH(1, "char"); },
  goColumnLeft: function (cm) { return cm.moveH(-1, "column"); },
  goColumnRight: function (cm) { return cm.moveH(1, "column"); },
  goWordLeft: function (cm) { return cm.moveH(-1, "word"); },
  goGroupRight: function (cm) { return cm.moveH(1, "group"); },
  goGroupLeft: function (cm) { return cm.moveH(-1, "group"); },
  goWordRight: function (cm) { return cm.moveH(1, "word"); },
  delCharBefore: function (cm) { return cm.deleteH(-1, "char"); },
  delCharAfter: function (cm) { return cm.deleteH(1, "char"); },
  delWordBefore: function (cm) { return cm.deleteH(-1, "word"); },
  delWordAfter: function (cm) { return cm.deleteH(1, "word"); },
  delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); },
  delGroupAfter: function (cm) { return cm.deleteH(1, "group"); },
  indentAuto: function (cm) { return cm.indentSelection("smart"); },
  indentMore: function (cm) { return cm.indentSelection("add"); },
  indentLess: function (cm) { return cm.indentSelection("subtract"); },
  insertTab: function (cm) { return cm.replaceSelection("\t"); },
  insertSoftTab: function (cm) {
    var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
    for (var i = 0; i < ranges.length; i++) {
      var pos = ranges[i].from();
      var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
      spaces.push(spaceStr(tabSize - col % tabSize));
    }
    cm.replaceSelections(spaces);
  },
  defaultTab: function (cm) {
    if (cm.somethingSelected()) { cm.indentSelection("add"); }
    else { cm.execCommand("insertTab"); }
  },
  // Swap the two chars left and right of each selection's head.
  // Move cursor behind the two swapped characters afterwards.
  //
  // Doesn't consider line feeds a character.
  // Doesn't scan more than one line above to find a character.
  // Doesn't do anything on an empty line.
  // Doesn't do anything with non-empty selections.
  transposeChars: function (cm) { return runInOp(cm, function () {
    var ranges = cm.listSelections(), newSel = [];
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) { continue }
      var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
      if (line) {
        if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }
        if (cur.ch > 0) {
          cur = new Pos(cur.line, cur.ch + 1);
          cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
                          Pos(cur.line, cur.ch - 2), cur, "+transpose");
        } else if (cur.line > cm.doc.first) {
          var prev = getLine(cm.doc, cur.line - 1).text;
          if (prev) {
            cur = new Pos(cur.line, 1);
            cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
                            prev.charAt(prev.length - 1),
                            Pos(cur.line - 1, prev.length - 1), cur, "+transpose");
          }
        }
      }
      newSel.push(new Range(cur, cur));
    }
    cm.setSelections(newSel);
  }); },
  newlineAndIndent: function (cm) { return runInOp(cm, function () {
    var sels = cm.listSelections();
    for (var i = sels.length - 1; i >= 0; i--)
      { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); }
    sels = cm.listSelections();
    for (var i$1 = 0; i$1 < sels.length; i$1++)
      { cm.indentLine(sels[i$1].from().line, null, true); }
    ensureCursorVisible(cm);
  }); },
  openLine: function (cm) { return cm.replaceSelection("\n", "start"); },
  toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }
};


function lineStart(cm, lineN) {
  var line = getLine(cm.doc, lineN);
  var visual = visualLine(line);
  if (visual != line) { lineN = lineNo(visual); }
  return endOfLine(true, cm, visual, lineN, 1)
}
function lineEnd(cm, lineN) {
  var line = getLine(cm.doc, lineN);
  var visual = visualLineEnd(line);
  if (visual != line) { lineN = lineNo(visual); }
  return endOfLine(true, cm, line, lineN, -1)
}
function lineStartSmart(cm, pos) {
  var start = lineStart(cm, pos.line);
  var line = getLine(cm.doc, start.line);
  var order = getOrder(line, cm.doc.direction);
  if (!order || order[0].level == 0) {
    var firstNonWS = Math.max(0, line.text.search(/\S/));
    var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
    return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)
  }
  return start
}

// Run a handler that was bound to a key.
function doHandleBinding(cm, bound, dropShift) {
  if (typeof bound == "string") {
    bound = commands[bound];
    if (!bound) { return false }
  }
  // Ensure previous input has been read, so that the handler sees a
  // consistent view of the document
  cm.display.input.ensurePolled();
  var prevShift = cm.display.shift, done = false;
  try {
    if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
    if (dropShift) { cm.display.shift = false; }
    done = bound(cm) != Pass;
  } finally {
    cm.display.shift = prevShift;
    cm.state.suppressEdits = false;
  }
  return done
}

function lookupKeyForEditor(cm, name, handle) {
  for (var i = 0; i < cm.state.keyMaps.length; i++) {
    var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
    if (result) { return result }
  }
  return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
    || lookupKey(name, cm.options.keyMap, handle, cm)
}

// Note that, despite the name, this function is also used to check
// for bound mouse clicks.

var stopSeq = new Delayed;

function dispatchKey(cm, name, e, handle) {
  var seq = cm.state.keySeq;
  if (seq) {
    if (isModifierKey(name)) { return "handled" }
    if (/\'$/.test(name))
      { cm.state.keySeq = null; }
    else
      { stopSeq.set(50, function () {
        if (cm.state.keySeq == seq) {
          cm.state.keySeq = null;
          cm.display.input.reset();
        }
      }); }
    if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true }
  }
  return dispatchKeyInner(cm, name, e, handle)
}

function dispatchKeyInner(cm, name, e, handle) {
  var result = lookupKeyForEditor(cm, name, handle);

  if (result == "multi")
    { cm.state.keySeq = name; }
  if (result == "handled")
    { signalLater(cm, "keyHandled", cm, name, e); }

  if (result == "handled" || result == "multi") {
    e_preventDefault(e);
    restartBlink(cm);
  }

  return !!result
}

// Handle a key from the keydown event.
function handleKeyBinding(cm, e) {
  var name = keyName(e, true);
  if (!name) { return false }

  if (e.shiftKey && !cm.state.keySeq) {
    // First try to resolve full name (including 'Shift-'). Failing
    // that, see if there is a cursor-motion command (starting with
    // 'go') bound to the keyname without 'Shift-'.
    return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); })
        || dispatchKey(cm, name, e, function (b) {
             if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
               { return doHandleBinding(cm, b) }
           })
  } else {
    return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })
  }
}

// Handle a key from the keypress event
function handleCharBinding(cm, e, ch) {
  return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); })
}

var lastStoppedKey = null;
function onKeyDown(e) {
  var cm = this;
  cm.curOp.focus = activeElt();
  if (signalDOMEvent(cm, e)) { return }
  // IE does strange things with escape.
  if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }
  var code = e.keyCode;
  cm.display.shift = code == 16 || e.shiftKey;
  var handled = handleKeyBinding(cm, e);
  if (presto) {
    lastStoppedKey = handled ? code : null;
    // Opera has no cut event... we try to at least catch the key combo
    if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
      { cm.replaceSelection("", null, "cut"); }
  }

  // Turn mouse into crosshair when Alt is held on Mac.
  if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
    { showCrossHair(cm); }
}

function showCrossHair(cm) {
  var lineDiv = cm.display.lineDiv;
  addClass(lineDiv, "CodeMirror-crosshair");

  function up(e) {
    if (e.keyCode == 18 || !e.altKey) {
      rmClass(lineDiv, "CodeMirror-crosshair");
      off(document, "keyup", up);
      off(document, "mouseover", up);
    }
  }
  on(document, "keyup", up);
  on(document, "mouseover", up);
}

function onKeyUp(e) {
  if (e.keyCode == 16) { this.doc.sel.shift = false; }
  signalDOMEvent(this, e);
}

function onKeyPress(e) {
  var cm = this;
  if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }
  var keyCode = e.keyCode, charCode = e.charCode;
  if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}
  if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }
  var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
  // Some browsers fire keypress events for backspace
  if (ch == "\x08") { return }
  if (handleCharBinding(cm, e, ch)) { return }
  cm.display.input.onKeyPress(e);
}

var DOUBLECLICK_DELAY = 400;

var PastClick = function(time, pos, button) {
  this.time = time;
  this.pos = pos;
  this.button = button;
};

PastClick.prototype.compare = function (time, pos, button) {
  return this.time + DOUBLECLICK_DELAY > time &&
    cmp(pos, this.pos) == 0 && button == this.button
};

var lastClick;
var lastDoubleClick;
function clickRepeat(pos, button) {
  var now = +new Date;
  if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {
    lastClick = lastDoubleClick = null;
    return "triple"
  } else if (lastClick && lastClick.compare(now, pos, button)) {
    lastDoubleClick = new PastClick(now, pos, button);
    lastClick = null;
    return "double"
  } else {
    lastClick = new PastClick(now, pos, button);
    lastDoubleClick = null;
    return "single"
  }
}

// A mouse down can be a single click, double click, triple click,
// start of selection drag, start of text drag, new cursor
// (ctrl-click), rectangle drag (alt-drag), or xwin
// middle-click-paste. Or it might be a click on something we should
// not interfere with, such as a scrollbar or widget.
function onMouseDown(e) {
  var cm = this, display = cm.display;
  if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }
  display.input.ensurePolled();
  display.shift = e.shiftKey;

  if (eventInWidget(display, e)) {
    if (!webkit) {
      // Briefly turn off draggability, to allow widgets to do
      // normal dragging things.
      display.scroller.draggable = false;
      setTimeout(function () { return display.scroller.draggable = true; }, 100);
    }
    return
  }
  if (clickInGutter(cm, e)) { return }
  var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single";
  window.focus();

  // #3261: make sure, that we're not starting a second selection
  if (button == 1 && cm.state.selectingText)
    { cm.state.selectingText(e); }

  if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }

  if (button == 1) {
    if (pos) { leftButtonDown(cm, pos, repeat, e); }
    else if (e_target(e) == display.scroller) { e_preventDefault(e); }
  } else if (button == 2) {
    if (pos) { extendSelection(cm.doc, pos); }
    setTimeout(function () { return display.input.focus(); }, 20);
  } else if (button == 3) {
    if (captureRightClick) { onContextMenu(cm, e); }
    else { delayBlurEvent(cm); }
  }
}

function handleMappedButton(cm, button, pos, repeat, event) {
  var name = "Click";
  if (repeat == "double") { name = "Double" + name; }
  else if (repeat == "triple") { name = "Triple" + name; }
  name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name;

  return dispatchKey(cm,  addModifierNames(name, event), event, function (bound) {
    if (typeof bound == "string") { bound = commands[bound]; }
    if (!bound) { return false }
    var done = false;
    try {
      if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
      done = bound(cm, pos) != Pass;
    } finally {
      cm.state.suppressEdits = false;
    }
    return done
  })
}

function configureMouse(cm, repeat, event) {
  var option = cm.getOption("configureMouse");
  var value = option ? option(cm, repeat, event) : {};
  if (value.unit == null) {
    var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;
    value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line";
  }
  if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }
  if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }
  if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }
  return value
}

function leftButtonDown(cm, pos, repeat, event) {
  if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
  else { cm.curOp.focus = activeElt(); }

  var behavior = configureMouse(cm, repeat, event);

  var sel = cm.doc.sel, contained;
  if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
      repeat == "single" && (contained = sel.contains(pos)) > -1 &&
      (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&
      (cmp(contained.to(), pos) > 0 || pos.xRel < 0))
    { leftButtonStartDrag(cm, event, pos, behavior); }
  else
    { leftButtonSelect(cm, event, pos, behavior); }
}

// Start a text drag. When it ends, see if any dragging actually
// happen, and treat as a click if it didn't.
function leftButtonStartDrag(cm, event, pos, behavior) {
  var display = cm.display, moved = false;
  var dragEnd = operation(cm, function (e) {
    if (webkit) { display.scroller.draggable = false; }
    cm.state.draggingText = false;
    off(display.wrapper.ownerDocument, "mouseup", dragEnd);
    off(display.wrapper.ownerDocument, "mousemove", mouseMove);
    off(display.scroller, "dragstart", dragStart);
    off(display.scroller, "drop", dragEnd);
    if (!moved) {
      e_preventDefault(e);
      if (!behavior.addNew)
        { extendSelection(cm.doc, pos, null, null, behavior.extend); }
      // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
      if (webkit || ie && ie_version == 9)
        { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); }
      else
        { display.input.focus(); }
    }
  });
  var mouseMove = function(e2) {
    moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;
  };
  var dragStart = function () { return moved = true; };
  // Let the drag handler handle this.
  if (webkit) { display.scroller.draggable = true; }
  cm.state.draggingText = dragEnd;
  dragEnd.copy = !behavior.moveOnDrag;
  // IE's approach to draggable
  if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
  on(display.wrapper.ownerDocument, "mouseup", dragEnd);
  on(display.wrapper.ownerDocument, "mousemove", mouseMove);
  on(display.scroller, "dragstart", dragStart);
  on(display.scroller, "drop", dragEnd);

  delayBlurEvent(cm);
  setTimeout(function () { return display.input.focus(); }, 20);
}

function rangeForUnit(cm, pos, unit) {
  if (unit == "char") { return new Range(pos, pos) }
  if (unit == "word") { return cm.findWordAt(pos) }
  if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }
  var result = unit(cm, pos);
  return new Range(result.from, result.to)
}

// Normal selection, as opposed to text dragging.
function leftButtonSelect(cm, event, start, behavior) {
  var display = cm.display, doc = cm.doc;
  e_preventDefault(event);

  var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
  if (behavior.addNew && !behavior.extend) {
    ourIndex = doc.sel.contains(start);
    if (ourIndex > -1)
      { ourRange = ranges[ourIndex]; }
    else
      { ourRange = new Range(start, start); }
  } else {
    ourRange = doc.sel.primary();
    ourIndex = doc.sel.primIndex;
  }

  if (behavior.unit == "rectangle") {
    if (!behavior.addNew) { ourRange = new Range(start, start); }
    start = posFromMouse(cm, event, true, true);
    ourIndex = -1;
  } else {
    var range$$1 = rangeForUnit(cm, start, behavior.unit);
    if (behavior.extend)
      { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); }
    else
      { ourRange = range$$1; }
  }

  if (!behavior.addNew) {
    ourIndex = 0;
    setSelection(doc, new Selection([ourRange], 0), sel_mouse);
    startSel = doc.sel;
  } else if (ourIndex == -1) {
    ourIndex = ranges.length;
    setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
                 {scroll: false, origin: "*mouse"});
  } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) {
    setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
                 {scroll: false, origin: "*mouse"});
    startSel = doc.sel;
  } else {
    replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
  }

  var lastPos = start;
  function extendTo(pos) {
    if (cmp(lastPos, pos) == 0) { return }
    lastPos = pos;

    if (behavior.unit == "rectangle") {
      var ranges = [], tabSize = cm.options.tabSize;
      var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
      var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
      var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
      for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
           line <= end; line++) {
        var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
        if (left == right)
          { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }
        else if (text.length > leftPos)
          { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }
      }
      if (!ranges.length) { ranges.push(new Range(start, start)); }
      setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
                   {origin: "*mouse", scroll: false});
      cm.scrollIntoView(pos);
    } else {
      var oldRange = ourRange;
      var range$$1 = rangeForUnit(cm, pos, behavior.unit);
      var anchor = oldRange.anchor, head;
      if (cmp(range$$1.anchor, anchor) > 0) {
        head = range$$1.head;
        anchor = minPos(oldRange.from(), range$$1.anchor);
      } else {
        head = range$$1.anchor;
        anchor = maxPos(oldRange.to(), range$$1.head);
      }
      var ranges$1 = startSel.ranges.slice(0);
      ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));
      setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
    }
  }

  var editorSize = display.wrapper.getBoundingClientRect();
  // Used to ensure timeout re-tries don't fire when another extend
  // happened in the meantime (clearTimeout isn't reliable -- at
  // least on Chrome, the timeouts still happen even when cleared,
  // if the clear happens after their scheduled firing time).
  var counter = 0;

  function extend(e) {
    var curCount = ++counter;
    var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle");
    if (!cur) { return }
    if (cmp(cur, lastPos) != 0) {
      cm.curOp.focus = activeElt();
      extendTo(cur);
      var visible = visibleLines(display, doc);
      if (cur.line >= visible.to || cur.line < visible.from)
        { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }
    } else {
      var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
      if (outside) { setTimeout(operation(cm, function () {
        if (counter != curCount) { return }
        display.scroller.scrollTop += outside;
        extend(e);
      }), 50); }
    }
  }

  function done(e) {
    cm.state.selectingText = false;
    counter = Infinity;
    e_preventDefault(e);
    display.input.focus();
    off(display.wrapper.ownerDocument, "mousemove", move);
    off(display.wrapper.ownerDocument, "mouseup", up);
    doc.history.lastSelOrigin = null;
  }

  var move = operation(cm, function (e) {
    if (e.buttons === 0 || !e_button(e)) { done(e); }
    else { extend(e); }
  });
  var up = operation(cm, done);
  cm.state.selectingText = up;
  on(display.wrapper.ownerDocument, "mousemove", move);
  on(display.wrapper.ownerDocument, "mouseup", up);
}

// Used when mouse-selecting to adjust the anchor to the proper side
// of a bidi jump depending on the visual position of the head.
function bidiSimplify(cm, range$$1) {
  var anchor = range$$1.anchor;
  var head = range$$1.head;
  var anchorLine = getLine(cm.doc, anchor.line);
  if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }
  var order = getOrder(anchorLine);
  if (!order) { return range$$1 }
  var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];
  if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }
  var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);
  if (boundary == 0 || boundary == order.length) { return range$$1 }

  // Compute the relative visual position of the head compared to the
  // anchor (<0 is to the left, >0 to the right)
  var leftSide;
  if (head.line != anchor.line) {
    leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0;
  } else {
    var headIndex = getBidiPartAt(order, head.ch, head.sticky);
    var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);
    if (headIndex == boundary - 1 || headIndex == boundary)
      { leftSide = dir < 0; }
    else
      { leftSide = dir > 0; }
  }

  var usePart = order[boundary + (leftSide ? -1 : 0)];
  var from = leftSide == (usePart.level == 1);
  var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before";
  return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)
}


// Determines whether an event happened in the gutter, and fires the
// handlers for the corresponding event.
function gutterEvent(cm, e, type, prevent) {
  var mX, mY;
  if (e.touches) {
    mX = e.touches[0].clientX;
    mY = e.touches[0].clientY;
  } else {
    try { mX = e.clientX; mY = e.clientY; }
    catch(e) { return false }
  }
  if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
  if (prevent) { e_preventDefault(e); }

  var display = cm.display;
  var lineBox = display.lineDiv.getBoundingClientRect();

  if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }
  mY -= lineBox.top - display.viewOffset;

  for (var i = 0; i < cm.options.gutters.length; ++i) {
    var g = display.gutters.childNodes[i];
    if (g && g.getBoundingClientRect().right >= mX) {
      var line = lineAtHeight(cm.doc, mY);
      var gutter = cm.options.gutters[i];
      signal(cm, type, cm, line, gutter, e);
      return e_defaultPrevented(e)
    }
  }
}

function clickInGutter(cm, e) {
  return gutterEvent(cm, e, "gutterClick", true)
}

// CONTEXT MENU HANDLING

// To make the context menu work, we need to briefly unhide the
// textarea (making it as unobtrusive as possible) to let the
// right-click take effect on it.
function onContextMenu(cm, e) {
  if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }
  if (signalDOMEvent(cm, e, "contextmenu")) { return }
  cm.display.input.onContextMenu(e);
}

function contextMenuInGutter(cm, e) {
  if (!hasHandler(cm, "gutterContextMenu")) { return false }
  return gutterEvent(cm, e, "gutterContextMenu", false)
}

function themeChanged(cm) {
  cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
    cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
  clearCaches(cm);
}

var Init = {toString: function(){return "CodeMirror.Init"}};

var defaults = {};
var optionHandlers = {};

function defineOptions(CodeMirror) {
  var optionHandlers = CodeMirror.optionHandlers;

  function option(name, deflt, handle, notOnInit) {
    CodeMirror.defaults[name] = deflt;
    if (handle) { optionHandlers[name] =
      notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }
  }

  CodeMirror.defineOption = option;

  // Passed to option handlers when there is no old value.
  CodeMirror.Init = Init;

  // These two are, on init, called from the constructor because they
  // have to be initialized before the editor can start at all.
  option("value", "", function (cm, val) { return cm.setValue(val); }, true);
  option("mode", null, function (cm, val) {
    cm.doc.modeOption = val;
    loadMode(cm);
  }, true);

  option("indentUnit", 2, loadMode, true);
  option("indentWithTabs", false);
  option("smartIndent", true);
  option("tabSize", 4, function (cm) {
    resetModeState(cm);
    clearCaches(cm);
    regChange(cm);
  }, true);

  option("lineSeparator", null, function (cm, val) {
    cm.doc.lineSep = val;
    if (!val) { return }
    var newBreaks = [], lineNo = cm.doc.first;
    cm.doc.iter(function (line) {
      for (var pos = 0;;) {
        var found = line.text.indexOf(val, pos);
        if (found == -1) { break }
        pos = found + val.length;
        newBreaks.push(Pos(lineNo, found));
      }
      lineNo++;
    });
    for (var i = newBreaks.length - 1; i >= 0; i--)
      { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }
  });
  option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g, function (cm, val, old) {
    cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
    if (old != Init) { cm.refresh(); }
  });
  option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);
  option("electricChars", true);
  option("inputStyle", mobile ? "contenteditable" : "textarea", function () {
    throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME
  }, true);
  option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);
  option("rtlMoveVisually", !windows);
  option("wholeLineUpdateBefore", true);

  option("theme", "default", function (cm) {
    themeChanged(cm);
    guttersChanged(cm);
  }, true);
  option("keyMap", "default", function (cm, val, old) {
    var next = getKeyMap(val);
    var prev = old != Init && getKeyMap(old);
    if (prev && prev.detach) { prev.detach(cm, next); }
    if (next.attach) { next.attach(cm, prev || null); }
  });
  option("extraKeys", null);
  option("configureMouse", null);

  option("lineWrapping", false, wrappingChanged, true);
  option("gutters", [], function (cm) {
    setGuttersForLineNumbers(cm.options);
    guttersChanged(cm);
  }, true);
  option("fixedGutter", true, function (cm, val) {
    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
    cm.refresh();
  }, true);
  option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true);
  option("scrollbarStyle", "native", function (cm) {
    initScrollbars(cm);
    updateScrollbars(cm);
    cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
    cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
  }, true);
  option("lineNumbers", false, function (cm) {
    setGuttersForLineNumbers(cm.options);
    guttersChanged(cm);
  }, true);
  option("firstLineNumber", 1, guttersChanged, true);
  option("lineNumberFormatter", function (integer) { return integer; }, guttersChanged, true);
  option("showCursorWhenSelecting", false, updateSelection, true);

  option("resetSelectionOnContextMenu", true);
  option("lineWiseCopyCut", true);
  option("pasteLinesPerSelection", true);

  option("readOnly", false, function (cm, val) {
    if (val == "nocursor") {
      onBlur(cm);
      cm.display.input.blur();
    }
    cm.display.input.readOnlyChanged(val);
  });
  option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);
  option("dragDrop", true, dragDropChanged);
  option("allowDropFileTypes", null);

  option("cursorBlinkRate", 530);
  option("cursorScrollMargin", 0);
  option("cursorHeight", 1, updateSelection, true);
  option("singleCursorHeightPerLine", true, updateSelection, true);
  option("workTime", 100);
  option("workDelay", 100);
  option("flattenSpans", true, resetModeState, true);
  option("addModeClass", false, resetModeState, true);
  option("pollInterval", 100);
  option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });
  option("historyEventDelay", 1250);
  option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true);
  option("maxHighlightLength", 10000, resetModeState, true);
  option("moveInputWithCursor", true, function (cm, val) {
    if (!val) { cm.display.input.resetPosition(); }
  });

  option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
  option("autofocus", null);
  option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
  option("phrases", null);
}

function guttersChanged(cm) {
  updateGutters(cm);
  regChange(cm);
  alignHorizontally(cm);
}

function dragDropChanged(cm, value, old) {
  var wasOn = old && old != Init;
  if (!value != !wasOn) {
    var funcs = cm.display.dragFunctions;
    var toggle = value ? on : off;
    toggle(cm.display.scroller, "dragstart", funcs.start);
    toggle(cm.display.scroller, "dragenter", funcs.enter);
    toggle(cm.display.scroller, "dragover", funcs.over);
    toggle(cm.display.scroller, "dragleave", funcs.leave);
    toggle(cm.display.scroller, "drop", funcs.drop);
  }
}

function wrappingChanged(cm) {
  if (cm.options.lineWrapping) {
    addClass(cm.display.wrapper, "CodeMirror-wrap");
    cm.display.sizer.style.minWidth = "";
    cm.display.sizerWidth = null;
  } else {
    rmClass(cm.display.wrapper, "CodeMirror-wrap");
    findMaxLine(cm);
  }
  estimateLineHeights(cm);
  regChange(cm);
  clearCaches(cm);
  setTimeout(function () { return updateScrollbars(cm); }, 100);
}

// A CodeMirror instance represents an editor. This is the object
// that user code is usually dealing with.

function CodeMirror$1(place, options) {
  var this$1 = this;

  if (!(this instanceof CodeMirror$1)) { return new CodeMirror$1(place, options) }

  this.options = options = options ? copyObj(options) : {};
  // Determine effective options based on given values and defaults.
  copyObj(defaults, options, false);
  setGuttersForLineNumbers(options);

  var doc = options.value;
  if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
  else if (options.mode) { doc.modeOption = options.mode; }
  this.doc = doc;

  var input = new CodeMirror$1.inputStyles[options.inputStyle](this);
  var display = this.display = new Display(place, doc, input);
  display.wrapper.CodeMirror = this;
  updateGutters(this);
  themeChanged(this);
  if (options.lineWrapping)
    { this.display.wrapper.className += " CodeMirror-wrap"; }
  initScrollbars(this);

  this.state = {
    keyMaps: [],  // stores maps added by addKeyMap
    overlays: [], // highlighting overlays, as added by addOverlay
    modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info
    overwrite: false,
    delayingBlurEvent: false,
    focused: false,
    suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
    pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
    selectingText: false,
    draggingText: false,
    highlight: new Delayed(), // stores highlight worker timeout
    keySeq: null,  // Unfinished key sequence
    specialChars: null
  };

  if (options.autofocus && !mobile) { display.input.focus(); }

  // Override magic textarea content restore that IE sometimes does
  // on our hidden textarea on reload
  if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }

  registerEventHandlers(this);
  ensureGlobalHandlers();

  startOperation(this);
  this.curOp.forceUpdate = true;
  attachDoc(this, doc);

  if ((options.autofocus && !mobile) || this.hasFocus())
    { setTimeout(bind(onFocus, this), 20); }
  else
    { onBlur(this); }

  for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))
    { optionHandlers[opt](this$1, options[opt], Init); } }
  maybeUpdateLineNumberWidth(this);
  if (options.finishInit) { options.finishInit(this); }
  for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); }
  endOperation(this);
  // Suppress optimizelegibility in Webkit, since it breaks text
  // measuring on line wrapping boundaries.
  if (webkit && options.lineWrapping &&
      getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
    { display.lineDiv.style.textRendering = "auto"; }
}

// The default configuration options.
CodeMirror$1.defaults = defaults;
// Functions to run when options are changed.
CodeMirror$1.optionHandlers = optionHandlers;

// Attach the necessary event handlers when initializing the editor
function registerEventHandlers(cm) {
  var d = cm.display;
  on(d.scroller, "mousedown", operation(cm, onMouseDown));
  // Older IE's will not fire a second mousedown for a double click
  if (ie && ie_version < 11)
    { on(d.scroller, "dblclick", operation(cm, function (e) {
      if (signalDOMEvent(cm, e)) { return }
      var pos = posFromMouse(cm, e);
      if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }
      e_preventDefault(e);
      var word = cm.findWordAt(pos);
      extendSelection(cm.doc, word.anchor, word.head);
    })); }
  else
    { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }
  // Some browsers fire contextmenu *after* opening the menu, at
  // which point we can't mess with it anymore. Context menu is
  // handled in onMouseDown for these browsers.
  if (!captureRightClick) { on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); }

  // Used to suppress mouse event handling when a touch happens
  var touchFinished, prevTouch = {end: 0};
  function finishTouch() {
    if (d.activeTouch) {
      touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);
      prevTouch = d.activeTouch;
      prevTouch.end = +new Date;
    }
  }
  function isMouseLikeTouchEvent(e) {
    if (e.touches.length != 1) { return false }
    var touch = e.touches[0];
    return touch.radiusX <= 1 && touch.radiusY <= 1
  }
  function farAway(touch, other) {
    if (other.left == null) { return true }
    var dx = other.left - touch.left, dy = other.top - touch.top;
    return dx * dx + dy * dy > 20 * 20
  }
  on(d.scroller, "touchstart", function (e) {
    if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {
      d.input.ensurePolled();
      clearTimeout(touchFinished);
      var now = +new Date;
      d.activeTouch = {start: now, moved: false,
                       prev: now - prevTouch.end <= 300 ? prevTouch : null};
      if (e.touches.length == 1) {
        d.activeTouch.left = e.touches[0].pageX;
        d.activeTouch.top = e.touches[0].pageY;
      }
    }
  });
  on(d.scroller, "touchmove", function () {
    if (d.activeTouch) { d.activeTouch.moved = true; }
  });
  on(d.scroller, "touchend", function (e) {
    var touch = d.activeTouch;
    if (touch && !eventInWidget(d, e) && touch.left != null &&
        !touch.moved && new Date - touch.start < 300) {
      var pos = cm.coordsChar(d.activeTouch, "page"), range;
      if (!touch.prev || farAway(touch, touch.prev)) // Single tap
        { range = new Range(pos, pos); }
      else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
        { range = cm.findWordAt(pos); }
      else // Triple tap
        { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }
      cm.setSelection(range.anchor, range.head);
      cm.focus();
      e_preventDefault(e);
    }
    finishTouch();
  });
  on(d.scroller, "touchcancel", finishTouch);

  // Sync scrolling between fake scrollbars and real scrollable
  // area, ensure viewport is updated when scrolling.
  on(d.scroller, "scroll", function () {
    if (d.scroller.clientHeight) {
      updateScrollTop(cm, d.scroller.scrollTop);
      setScrollLeft(cm, d.scroller.scrollLeft, true);
      signal(cm, "scroll", cm);
    }
  });

  // Listen to wheel events in order to try and update the viewport on time.
  on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); });
  on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); });

  // Prevent wrapper from ever scrolling
  on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });

  d.dragFunctions = {
    enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},
    over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
    start: function (e) { return onDragStart(cm, e); },
    drop: operation(cm, onDrop),
    leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
  };

  var inp = d.input.getField();
  on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); });
  on(inp, "keydown", operation(cm, onKeyDown));
  on(inp, "keypress", operation(cm, onKeyPress));
  on(inp, "focus", function (e) { return onFocus(cm, e); });
  on(inp, "blur", function (e) { return onBlur(cm, e); });
}

var initHooks = [];
CodeMirror$1.defineInitHook = function (f) { return initHooks.push(f); };

// Indent the given line. The how parameter can be "smart",
// "add"/null, "subtract", or "prev". When aggressive is false
// (typically set to true for forced single-line indents), empty
// lines are not indented, and places where the mode returns Pass
// are left alone.
function indentLine(cm, n, how, aggressive) {
  var doc = cm.doc, state;
  if (how == null) { how = "add"; }
  if (how == "smart") {
    // Fall back to "prev" when the mode doesn't have an indentation
    // method.
    if (!doc.mode.indent) { how = "prev"; }
    else { state = getContextBefore(cm, n).state; }
  }

  var tabSize = cm.options.tabSize;
  var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
  if (line.stateAfter) { line.stateAfter = null; }
  var curSpaceString = line.text.match(/^\s*/)[0], indentation;
  if (!aggressive && !/\S/.test(line.text)) {
    indentation = 0;
    how = "not";
  } else if (how == "smart") {
    indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
    if (indentation == Pass || indentation > 150) {
      if (!aggressive) { return }
      how = "prev";
    }
  }
  if (how == "prev") {
    if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }
    else { indentation = 0; }
  } else if (how == "add") {
    indentation = curSpace + cm.options.indentUnit;
  } else if (how == "subtract") {
    indentation = curSpace - cm.options.indentUnit;
  } else if (typeof how == "number") {
    indentation = curSpace + how;
  }
  indentation = Math.max(0, indentation);

  var indentString = "", pos = 0;
  if (cm.options.indentWithTabs)
    { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} }
  if (pos < indentation) { indentString += spaceStr(indentation - pos); }

  if (indentString != curSpaceString) {
    replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
    line.stateAfter = null;
    return true
  } else {
    // Ensure that, if the cursor was in the whitespace at the start
    // of the line, it is moved to the end of that space.
    for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {
      var range = doc.sel.ranges[i$1];
      if (range.head.line == n && range.head.ch < curSpaceString.length) {
        var pos$1 = Pos(n, curSpaceString.length);
        replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));
        break
      }
    }
  }
}

// This will be set to a {lineWise: bool, text: [string]} object, so
// that, when pasting, we know what kind of selections the copied
// text was made out of.
var lastCopied = null;

function setLastCopied(newLastCopied) {
  lastCopied = newLastCopied;
}

function applyTextInput(cm, inserted, deleted, sel, origin) {
  var doc = cm.doc;
  cm.display.shift = false;
  if (!sel) { sel = doc.sel; }

  var paste = cm.state.pasteIncoming || origin == "paste";
  var textLines = splitLinesAuto(inserted), multiPaste = null;
  // When pasting N lines into N selections, insert one line per selection
  if (paste && sel.ranges.length > 1) {
    if (lastCopied && lastCopied.text.join("\n") == inserted) {
      if (sel.ranges.length % lastCopied.text.length == 0) {
        multiPaste = [];
        for (var i = 0; i < lastCopied.text.length; i++)
          { multiPaste.push(doc.splitLines(lastCopied.text[i])); }
      }
    } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {
      multiPaste = map(textLines, function (l) { return [l]; });
    }
  }

  var updateInput;
  // Normal behavior is to insert the new text into every selection
  for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {
    var range$$1 = sel.ranges[i$1];
    var from = range$$1.from(), to = range$$1.to();
    if (range$$1.empty()) {
      if (deleted && deleted > 0) // Handle deletion
        { from = Pos(from.line, from.ch - deleted); }
      else if (cm.state.overwrite && !paste) // Handle overwrite
        { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }
      else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
        { from = to = Pos(from.line, 0); }
    }
    updateInput = cm.curOp.updateInput;
    var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,
                       origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
    makeChange(cm.doc, changeEvent);
    signalLater(cm, "inputRead", cm, changeEvent);
  }
  if (inserted && !paste)
    { triggerElectric(cm, inserted); }

  ensureCursorVisible(cm);
  cm.curOp.updateInput = updateInput;
  cm.curOp.typing = true;
  cm.state.pasteIncoming = cm.state.cutIncoming = false;
}

function handlePaste(e, cm) {
  var pasted = e.clipboardData && e.clipboardData.getData("Text");
  if (pasted) {
    e.preventDefault();
    if (!cm.isReadOnly() && !cm.options.disableInput)
      { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); }
    return true
  }
}

function triggerElectric(cm, inserted) {
  // When an 'electric' character is inserted, immediately trigger a reindent
  if (!cm.options.electricChars || !cm.options.smartIndent) { return }
  var sel = cm.doc.sel;

  for (var i = sel.ranges.length - 1; i >= 0; i--) {
    var range$$1 = sel.ranges[i];
    if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue }
    var mode = cm.getModeAt(range$$1.head);
    var indented = false;
    if (mode.electricChars) {
      for (var j = 0; j < mode.electricChars.length; j++)
        { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
          indented = indentLine(cm, range$$1.head.line, "smart");
          break
        } }
    } else if (mode.electricInput) {
      if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch)))
        { indented = indentLine(cm, range$$1.head.line, "smart"); }
    }
    if (indented) { signalLater(cm, "electricInput", cm, range$$1.head.line); }
  }
}

function copyableRanges(cm) {
  var text = [], ranges = [];
  for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
    var line = cm.doc.sel.ranges[i].head.line;
    var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
    ranges.push(lineRange);
    text.push(cm.getRange(lineRange.anchor, lineRange.head));
  }
  return {text: text, ranges: ranges}
}

function disableBrowserMagic(field, spellcheck) {
  field.setAttribute("autocorrect", "off");
  field.setAttribute("autocapitalize", "off");
  field.setAttribute("spellcheck", !!spellcheck);
}

function hiddenTextarea() {
  var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none");
  var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
  // The textarea is kept positioned near the cursor to prevent the
  // fact that it'll be scrolled into view on input from scrolling
  // our fake cursor out of view. On webkit, when wrap=off, paste is
  // very slow. So make the area wide instead.
  if (webkit) { te.style.width = "1000px"; }
  else { te.setAttribute("wrap", "off"); }
  // If border: 0; -- iOS fails to open keyboard (issue #1287)
  if (ios) { te.style.border = "1px solid black"; }
  disableBrowserMagic(te);
  return div
}

// The publicly visible API. Note that methodOp(f) means
// 'wrap f in an operation, performed on its `this` parameter'.

// This is not the complete set of editor methods. Most of the
// methods defined on the Doc type are also injected into
// CodeMirror.prototype, for backwards compatibility and
// convenience.

var addEditorMethods = function(CodeMirror) {
  var optionHandlers = CodeMirror.optionHandlers;

  var helpers = CodeMirror.helpers = {};

  CodeMirror.prototype = {
    constructor: CodeMirror,
    focus: function(){window.focus(); this.display.input.focus();},

    setOption: function(option, value) {
      var options = this.options, old = options[option];
      if (options[option] == value && option != "mode") { return }
      options[option] = value;
      if (optionHandlers.hasOwnProperty(option))
        { operation(this, optionHandlers[option])(this, value, old); }
      signal(this, "optionChange", this, option);
    },

    getOption: function(option) {return this.options[option]},
    getDoc: function() {return this.doc},

    addKeyMap: function(map$$1, bottom) {
      this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map$$1));
    },
    removeKeyMap: function(map$$1) {
      var maps = this.state.keyMaps;
      for (var i = 0; i < maps.length; ++i)
        { if (maps[i] == map$$1 || maps[i].name == map$$1) {
          maps.splice(i, 1);
          return true
        } }
    },

    addOverlay: methodOp(function(spec, options) {
      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
      if (mode.startState) { throw new Error("Overlays may not be stateful.") }
      insertSorted(this.state.overlays,
                   {mode: mode, modeSpec: spec, opaque: options && options.opaque,
                    priority: (options && options.priority) || 0},
                   function (overlay) { return overlay.priority; });
      this.state.modeGen++;
      regChange(this);
    }),
    removeOverlay: methodOp(function(spec) {
      var this$1 = this;

      var overlays = this.state.overlays;
      for (var i = 0; i < overlays.length; ++i) {
        var cur = overlays[i].modeSpec;
        if (cur == spec || typeof spec == "string" && cur.name == spec) {
          overlays.splice(i, 1);
          this$1.state.modeGen++;
          regChange(this$1);
          return
        }
      }
    }),

    indentLine: methodOp(function(n, dir, aggressive) {
      if (typeof dir != "string" && typeof dir != "number") {
        if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; }
        else { dir = dir ? "add" : "subtract"; }
      }
      if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }
    }),
    indentSelection: methodOp(function(how) {
      var this$1 = this;

      var ranges = this.doc.sel.ranges, end = -1;
      for (var i = 0; i < ranges.length; i++) {
        var range$$1 = ranges[i];
        if (!range$$1.empty()) {
          var from = range$$1.from(), to = range$$1.to();
          var start = Math.max(end, from.line);
          end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
          for (var j = start; j < end; ++j)
            { indentLine(this$1, j, how); }
          var newRanges = this$1.doc.sel.ranges;
          if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
            { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }
        } else if (range$$1.head.line > end) {
          indentLine(this$1, range$$1.head.line, how, true);
          end = range$$1.head.line;
          if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); }
        }
      }
    }),

    // Fetch the parser token for a given character. Useful for hacks
    // that want to inspect the mode state (say, for completion).
    getTokenAt: function(pos, precise) {
      return takeToken(this, pos, precise)
    },

    getLineTokens: function(line, precise) {
      return takeToken(this, Pos(line), precise, true)
    },

    getTokenTypeAt: function(pos) {
      pos = clipPos(this.doc, pos);
      var styles = getLineStyles(this, getLine(this.doc, pos.line));
      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
      var type;
      if (ch == 0) { type = styles[2]; }
      else { for (;;) {
        var mid = (before + after) >> 1;
        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }
        else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }
        else { type = styles[mid * 2 + 2]; break }
      } }
      var cut = type ? type.indexOf("overlay ") : -1;
      return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)
    },

    getModeAt: function(pos) {
      var mode = this.doc.mode;
      if (!mode.innerMode) { return mode }
      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode
    },

    getHelper: function(pos, type) {
      return this.getHelpers(pos, type)[0]
    },

    getHelpers: function(pos, type) {
      var this$1 = this;

      var found = [];
      if (!helpers.hasOwnProperty(type)) { return found }
      var help = helpers[type], mode = this.getModeAt(pos);
      if (typeof mode[type] == "string") {
        if (help[mode[type]]) { found.push(help[mode[type]]); }
      } else if (mode[type]) {
        for (var i = 0; i < mode[type].length; i++) {
          var val = help[mode[type][i]];
          if (val) { found.push(val); }
        }
      } else if (mode.helperType && help[mode.helperType]) {
        found.push(help[mode.helperType]);
      } else if (help[mode.name]) {
        found.push(help[mode.name]);
      }
      for (var i$1 = 0; i$1 < help._global.length; i$1++) {
        var cur = help._global[i$1];
        if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1)
          { found.push(cur.val); }
      }
      return found
    },

    getStateAfter: function(line, precise) {
      var doc = this.doc;
      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
      return getContextBefore(this, line + 1, precise).state
    },

    cursorCoords: function(start, mode) {
      var pos, range$$1 = this.doc.sel.primary();
      if (start == null) { pos = range$$1.head; }
      else if (typeof start == "object") { pos = clipPos(this.doc, start); }
      else { pos = start ? range$$1.from() : range$$1.to(); }
      return cursorCoords(this, pos, mode || "page")
    },

    charCoords: function(pos, mode) {
      return charCoords(this, clipPos(this.doc, pos), mode || "page")
    },

    coordsChar: function(coords, mode) {
      coords = fromCoordSystem(this, coords, mode || "page");
      return coordsChar(this, coords.left, coords.top)
    },

    lineAtHeight: function(height, mode) {
      height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
      return lineAtHeight(this.doc, height + this.display.viewOffset)
    },
    heightAtLine: function(line, mode, includeWidgets) {
      var end = false, lineObj;
      if (typeof line == "number") {
        var last = this.doc.first + this.doc.size - 1;
        if (line < this.doc.first) { line = this.doc.first; }
        else if (line > last) { line = last; end = true; }
        lineObj = getLine(this.doc, line);
      } else {
        lineObj = line;
      }
      return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top +
        (end ? this.doc.height - heightAtLine(lineObj) : 0)
    },

    defaultTextHeight: function() { return textHeight(this.display) },
    defaultCharWidth: function() { return charWidth(this.display) },

    getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},

    addWidget: function(pos, node, scroll, vert, horiz) {
      var display = this.display;
      pos = cursorCoords(this, clipPos(this.doc, pos));
      var top = pos.bottom, left = pos.left;
      node.style.position = "absolute";
      node.setAttribute("cm-ignore-events", "true");
      this.display.input.setUneditable(node);
      display.sizer.appendChild(node);
      if (vert == "over") {
        top = pos.top;
      } else if (vert == "above" || vert == "near") {
        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
        // Default to positioning above (if specified and possible); otherwise default to positioning below
        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
          { top = pos.top - node.offsetHeight; }
        else if (pos.bottom + node.offsetHeight <= vspace)
          { top = pos.bottom; }
        if (left + node.offsetWidth > hspace)
          { left = hspace - node.offsetWidth; }
      }
      node.style.top = top + "px";
      node.style.left = node.style.right = "";
      if (horiz == "right") {
        left = display.sizer.clientWidth - node.offsetWidth;
        node.style.right = "0px";
      } else {
        if (horiz == "left") { left = 0; }
        else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }
        node.style.left = left + "px";
      }
      if (scroll)
        { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }
    },

    triggerOnKeyDown: methodOp(onKeyDown),
    triggerOnKeyPress: methodOp(onKeyPress),
    triggerOnKeyUp: onKeyUp,
    triggerOnMouseDown: methodOp(onMouseDown),

    execCommand: function(cmd) {
      if (commands.hasOwnProperty(cmd))
        { return commands[cmd].call(null, this) }
    },

    triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),

    findPosH: function(from, amount, unit, visually) {
      var this$1 = this;

      var dir = 1;
      if (amount < 0) { dir = -1; amount = -amount; }
      var cur = clipPos(this.doc, from);
      for (var i = 0; i < amount; ++i) {
        cur = findPosH(this$1.doc, cur, dir, unit, visually);
        if (cur.hitSide) { break }
      }
      return cur
    },

    moveH: methodOp(function(dir, unit) {
      var this$1 = this;

      this.extendSelectionsBy(function (range$$1) {
        if (this$1.display.shift || this$1.doc.extend || range$$1.empty())
          { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) }
        else
          { return dir < 0 ? range$$1.from() : range$$1.to() }
      }, sel_move);
    }),

    deleteH: methodOp(function(dir, unit) {
      var sel = this.doc.sel, doc = this.doc;
      if (sel.somethingSelected())
        { doc.replaceSelection("", null, "+delete"); }
      else
        { deleteNearSelection(this, function (range$$1) {
          var other = findPosH(doc, range$$1.head, dir, unit, false);
          return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other}
        }); }
    }),

    findPosV: function(from, amount, unit, goalColumn) {
      var this$1 = this;

      var dir = 1, x = goalColumn;
      if (amount < 0) { dir = -1; amount = -amount; }
      var cur = clipPos(this.doc, from);
      for (var i = 0; i < amount; ++i) {
        var coords = cursorCoords(this$1, cur, "div");
        if (x == null) { x = coords.left; }
        else { coords.left = x; }
        cur = findPosV(this$1, coords, dir, unit);
        if (cur.hitSide) { break }
      }
      return cur
    },

    moveV: methodOp(function(dir, unit) {
      var this$1 = this;

      var doc = this.doc, goals = [];
      var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();
      doc.extendSelectionsBy(function (range$$1) {
        if (collapse)
          { return dir < 0 ? range$$1.from() : range$$1.to() }
        var headPos = cursorCoords(this$1, range$$1.head, "div");
        if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; }
        goals.push(headPos.left);
        var pos = findPosV(this$1, headPos, dir, unit);
        if (unit == "page" && range$$1 == doc.sel.primary())
          { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); }
        return pos
      }, sel_move);
      if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
        { doc.sel.ranges[i].goalColumn = goals[i]; } }
    }),

    // Find the word at the given position (as returned by coordsChar).
    findWordAt: function(pos) {
      var doc = this.doc, line = getLine(doc, pos.line).text;
      var start = pos.ch, end = pos.ch;
      if (line) {
        var helper = this.getHelper(pos, "wordChars");
        if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; }
        var startChar = line.charAt(start);
        var check = isWordChar(startChar, helper)
          ? function (ch) { return isWordChar(ch, helper); }
          : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); }
          : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); };
        while (start > 0 && check(line.charAt(start - 1))) { --start; }
        while (end < line.length && check(line.charAt(end))) { ++end; }
      }
      return new Range(Pos(pos.line, start), Pos(pos.line, end))
    },

    toggleOverwrite: function(value) {
      if (value != null && value == this.state.overwrite) { return }
      if (this.state.overwrite = !this.state.overwrite)
        { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); }
      else
        { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); }

      signal(this, "overwriteToggle", this, this.state.overwrite);
    },
    hasFocus: function() { return this.display.input.getField() == activeElt() },
    isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },

    scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),
    getScrollInfo: function() {
      var scroller = this.display.scroller;
      return {left: scroller.scrollLeft, top: scroller.scrollTop,
              height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
              width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
              clientHeight: displayHeight(this), clientWidth: displayWidth(this)}
    },

    scrollIntoView: methodOp(function(range$$1, margin) {
      if (range$$1 == null) {
        range$$1 = {from: this.doc.sel.primary().head, to: null};
        if (margin == null) { margin = this.options.cursorScrollMargin; }
      } else if (typeof range$$1 == "number") {
        range$$1 = {from: Pos(range$$1, 0), to: null};
      } else if (range$$1.from == null) {
        range$$1 = {from: range$$1, to: null};
      }
      if (!range$$1.to) { range$$1.to = range$$1.from; }
      range$$1.margin = margin || 0;

      if (range$$1.from.line != null) {
        scrollToRange(this, range$$1);
      } else {
        scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin);
      }
    }),

    setSize: methodOp(function(width, height) {
      var this$1 = this;

      var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; };
      if (width != null) { this.display.wrapper.style.width = interpret(width); }
      if (height != null) { this.display.wrapper.style.height = interpret(height); }
      if (this.options.lineWrapping) { clearLineMeasurementCache(this); }
      var lineNo$$1 = this.display.viewFrom;
      this.doc.iter(lineNo$$1, this.display.viewTo, function (line) {
        if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)
          { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, "widget"); break } } }
        ++lineNo$$1;
      });
      this.curOp.forceUpdate = true;
      signal(this, "refresh", this);
    }),

    operation: function(f){return runInOp(this, f)},
    startOperation: function(){return startOperation(this)},
    endOperation: function(){return endOperation(this)},

    refresh: methodOp(function() {
      var oldHeight = this.display.cachedTextHeight;
      regChange(this);
      this.curOp.forceUpdate = true;
      clearCaches(this);
      scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);
      updateGutterSpace(this);
      if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
        { estimateLineHeights(this); }
      signal(this, "refresh", this);
    }),

    swapDoc: methodOp(function(doc) {
      var old = this.doc;
      old.cm = null;
      attachDoc(this, doc);
      clearCaches(this);
      this.display.input.reset();
      scrollToCoords(this, doc.scrollLeft, doc.scrollTop);
      this.curOp.forceScroll = true;
      signalLater(this, "swapDoc", this, old);
      return old
    }),

    phrase: function(phraseText) {
      var phrases = this.options.phrases;
      return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText
    },

    getInputField: function(){return this.display.input.getField()},
    getWrapperElement: function(){return this.display.wrapper},
    getScrollerElement: function(){return this.display.scroller},
    getGutterElement: function(){return this.display.gutters}
  };
  eventMixin(CodeMirror);

  CodeMirror.registerHelper = function(type, name, value) {
    if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }
    helpers[type][name] = value;
  };
  CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
    CodeMirror.registerHelper(type, name, value);
    helpers[type]._global.push({pred: predicate, val: value});
  };
};

// Used for horizontal relative motion. Dir is -1 or 1 (left or
// right), unit can be "char", "column" (like char, but doesn't
// cross line boundaries), "word" (across next word), or "group" (to
// the start of next group of word or non-word-non-whitespace
// chars). The visually param controls whether, in right-to-left
// text, direction 1 means to move towards the next index in the
// string, or towards the character to the right of the current
// position. The resulting position will have a hitSide=true
// property if it reached the end of the document.
function findPosH(doc, pos, dir, unit, visually) {
  var oldPos = pos;
  var origDir = dir;
  var lineObj = getLine(doc, pos.line);
  function findNextLine() {
    var l = pos.line + dir;
    if (l < doc.first || l >= doc.first + doc.size) { return false }
    pos = new Pos(l, pos.ch, pos.sticky);
    return lineObj = getLine(doc, l)
  }
  function moveOnce(boundToLine) {
    var next;
    if (visually) {
      next = moveVisually(doc.cm, lineObj, pos, dir);
    } else {
      next = moveLogically(lineObj, pos, dir);
    }
    if (next == null) {
      if (!boundToLine && findNextLine())
        { pos = endOfLine(visually, doc.cm, lineObj, pos.line, dir); }
      else
        { return false }
    } else {
      pos = next;
    }
    return true
  }

  if (unit == "char") {
    moveOnce();
  } else if (unit == "column") {
    moveOnce(true);
  } else if (unit == "word" || unit == "group") {
    var sawType = null, group = unit == "group";
    var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
    for (var first = true;; first = false) {
      if (dir < 0 && !moveOnce(!first)) { break }
      var cur = lineObj.text.charAt(pos.ch) || "\n";
      var type = isWordChar(cur, helper) ? "w"
        : group && cur == "\n" ? "n"
        : !group || /\s/.test(cur) ? null
        : "p";
      if (group && !first && !type) { type = "s"; }
      if (sawType && sawType != type) {
        if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";}
        break
      }

      if (type) { sawType = type; }
      if (dir > 0 && !moveOnce(!first)) { break }
    }
  }
  var result = skipAtomic(doc, pos, oldPos, origDir, true);
  if (equalCursorPos(oldPos, result)) { result.hitSide = true; }
  return result
}

// For relative vertical movement. Dir may be -1 or 1. Unit can be
// "page" or "line". The resulting position will have a hitSide=true
// property if it reached the end of the document.
function findPosV(cm, pos, dir, unit) {
  var doc = cm.doc, x = pos.left, y;
  if (unit == "page") {
    var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
    var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);
    y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;

  } else if (unit == "line") {
    y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
  }
  var target;
  for (;;) {
    target = coordsChar(cm, x, y);
    if (!target.outside) { break }
    if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }
    y += dir * 5;
  }
  return target
}

// CONTENTEDITABLE INPUT STYLE

var ContentEditableInput = function(cm) {
  this.cm = cm;
  this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
  this.polling = new Delayed();
  this.composing = null;
  this.gracePeriod = false;
  this.readDOMTimeout = null;
};

ContentEditableInput.prototype.init = function (display) {
    var this$1 = this;

  var input = this, cm = input.cm;
  var div = input.div = display.lineDiv;
  disableBrowserMagic(div, cm.options.spellcheck);

  on(div, "paste", function (e) {
    if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }
    // IE doesn't fire input events, so we schedule a read for the pasted content in this way
    if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }
  });

  on(div, "compositionstart", function (e) {
    this$1.composing = {data: e.data, done: false};
  });
  on(div, "compositionupdate", function (e) {
    if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }
  });
  on(div, "compositionend", function (e) {
    if (this$1.composing) {
      if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }
      this$1.composing.done = true;
    }
  });

  on(div, "touchstart", function () { return input.forceCompositionEnd(); });

  on(div, "input", function () {
    if (!this$1.composing) { this$1.readFromDOMSoon(); }
  });

  function onCopyCut(e) {
    if (signalDOMEvent(cm, e)) { return }
    if (cm.somethingSelected()) {
      setLastCopied({lineWise: false, text: cm.getSelections()});
      if (e.type == "cut") { cm.replaceSelection("", null, "cut"); }
    } else if (!cm.options.lineWiseCopyCut) {
      return
    } else {
      var ranges = copyableRanges(cm);
      setLastCopied({lineWise: true, text: ranges.text});
      if (e.type == "cut") {
        cm.operation(function () {
          cm.setSelections(ranges.ranges, 0, sel_dontScroll);
          cm.replaceSelection("", null, "cut");
        });
      }
    }
    if (e.clipboardData) {
      e.clipboardData.clearData();
      var content = lastCopied.text.join("\n");
      // iOS exposes the clipboard API, but seems to discard content inserted into it
      e.clipboardData.setData("Text", content);
      if (e.clipboardData.getData("Text") == content) {
        e.preventDefault();
        return
      }
    }
    // Old-fashioned briefly-focus-a-textarea hack
    var kludge = hiddenTextarea(), te = kludge.firstChild;
    cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
    te.value = lastCopied.text.join("\n");
    var hadFocus = document.activeElement;
    selectInput(te);
    setTimeout(function () {
      cm.display.lineSpace.removeChild(kludge);
      hadFocus.focus();
      if (hadFocus == div) { input.showPrimarySelection(); }
    }, 50);
  }
  on(div, "copy", onCopyCut);
  on(div, "cut", onCopyCut);
};

ContentEditableInput.prototype.prepareSelection = function () {
  var result = prepareSelection(this.cm, false);
  result.focus = this.cm.state.focused;
  return result
};

ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
  if (!info || !this.cm.display.view.length) { return }
  if (info.focus || takeFocus) { this.showPrimarySelection(); }
  this.showMultipleSelections(info);
};

ContentEditableInput.prototype.getSelection = function () {
  return this.cm.display.wrapper.ownerDocument.getSelection()
};

ContentEditableInput.prototype.showPrimarySelection = function () {
  var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
  var from = prim.from(), to = prim.to();

  if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
    sel.removeAllRanges();
    return
  }

  var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
  var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);
  if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
      cmp(minPos(curAnchor, curFocus), from) == 0 &&
      cmp(maxPos(curAnchor, curFocus), to) == 0)
    { return }

  var view = cm.display.view;
  var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||
      {node: view[0].measure.map[2], offset: 0};
  var end = to.line < cm.display.viewTo && posToDOM(cm, to);
  if (!end) {
    var measure = view[view.length - 1].measure;
    var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
    end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
  }

  if (!start || !end) {
    sel.removeAllRanges();
    return
  }

  var old = sel.rangeCount && sel.getRangeAt(0), rng;
  try { rng = range(start.node, start.offset, end.offset, end.node); }
  catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
  if (rng) {
    if (!gecko && cm.state.focused) {
      sel.collapse(start.node, start.offset);
      if (!rng.collapsed) {
        sel.removeAllRanges();
        sel.addRange(rng);
      }
    } else {
      sel.removeAllRanges();
      sel.addRange(rng);
    }
    if (old && sel.anchorNode == null) { sel.addRange(old); }
    else if (gecko) { this.startGracePeriod(); }
  }
  this.rememberSelection();
};

ContentEditableInput.prototype.startGracePeriod = function () {
    var this$1 = this;

  clearTimeout(this.gracePeriod);
  this.gracePeriod = setTimeout(function () {
    this$1.gracePeriod = false;
    if (this$1.selectionChanged())
      { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }
  }, 20);
};

ContentEditableInput.prototype.showMultipleSelections = function (info) {
  removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
  removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
};

ContentEditableInput.prototype.rememberSelection = function () {
  var sel = this.getSelection();
  this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
  this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
};

ContentEditableInput.prototype.selectionInEditor = function () {
  var sel = this.getSelection();
  if (!sel.rangeCount) { return false }
  var node = sel.getRangeAt(0).commonAncestorContainer;
  return contains(this.div, node)
};

ContentEditableInput.prototype.focus = function () {
  if (this.cm.options.readOnly != "nocursor") {
    if (!this.selectionInEditor())
      { this.showSelection(this.prepareSelection(), true); }
    this.div.focus();
  }
};
ContentEditableInput.prototype.blur = function () { this.div.blur(); };
ContentEditableInput.prototype.getField = function () { return this.div };

ContentEditableInput.prototype.supportsTouch = function () { return true };

ContentEditableInput.prototype.receivedFocus = function () {
  var input = this;
  if (this.selectionInEditor())
    { this.pollSelection(); }
  else
    { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }

  function poll() {
    if (input.cm.state.focused) {
      input.pollSelection();
      input.polling.set(input.cm.options.pollInterval, poll);
    }
  }
  this.polling.set(this.cm.options.pollInterval, poll);
};

ContentEditableInput.prototype.selectionChanged = function () {
  var sel = this.getSelection();
  return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
    sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
};

ContentEditableInput.prototype.pollSelection = function () {
  if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
  var sel = this.getSelection(), cm = this.cm;
  // On Android Chrome (version 56, at least), backspacing into an
  // uneditable block element will put the cursor in that element,
  // and then, because it's not editable, hide the virtual keyboard.
  // Because Android doesn't allow us to actually detect backspace
  // presses in a sane way, this code checks for when that happens
  // and simulates a backspace press in this case.
  if (android && chrome && this.cm.options.gutters.length && isInGutter(sel.anchorNode)) {
    this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs});
    this.blur();
    this.focus();
    return
  }
  if (this.composing) { return }
  this.rememberSelection();
  var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
  var head = domToPos(cm, sel.focusNode, sel.focusOffset);
  if (anchor && head) { runInOp(cm, function () {
    setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
    if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }
  }); }
};

ContentEditableInput.prototype.pollContent = function () {
  if (this.readDOMTimeout != null) {
    clearTimeout(this.readDOMTimeout);
    this.readDOMTimeout = null;
  }

  var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
  var from = sel.from(), to = sel.to();
  if (from.ch == 0 && from.line > cm.firstLine())
    { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }
  if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())
    { to = Pos(to.line + 1, 0); }
  if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }

  var fromIndex, fromLine, fromNode;
  if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
    fromLine = lineNo(display.view[0].line);
    fromNode = display.view[0].node;
  } else {
    fromLine = lineNo(display.view[fromIndex].line);
    fromNode = display.view[fromIndex - 1].node.nextSibling;
  }
  var toIndex = findViewIndex(cm, to.line);
  var toLine, toNode;
  if (toIndex == display.view.length - 1) {
    toLine = display.viewTo - 1;
    toNode = display.lineDiv.lastChild;
  } else {
    toLine = lineNo(display.view[toIndex + 1].line) - 1;
    toNode = display.view[toIndex + 1].node.previousSibling;
  }

  if (!fromNode) { return false }
  var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
  var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
  while (newText.length > 1 && oldText.length > 1) {
    if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
    else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
    else { break }
  }

  var cutFront = 0, cutEnd = 0;
  var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
  while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
    { ++cutFront; }
  var newBot = lst(newText), oldBot = lst(oldText);
  var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
                           oldBot.length - (oldText.length == 1 ? cutFront : 0));
  while (cutEnd < maxCutEnd &&
         newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
    { ++cutEnd; }
  // Try to move start of change to start of selection if ambiguous
  if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {
    while (cutFront && cutFront > from.ch &&
           newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {
      cutFront--;
      cutEnd++;
    }
  }

  newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, "");
  newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, "");

  var chFrom = Pos(fromLine, cutFront);
  var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
  if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
    replaceRange(cm.doc, newText, chFrom, chTo, "+input");
    return true
  }
};

ContentEditableInput.prototype.ensurePolled = function () {
  this.forceCompositionEnd();
};
ContentEditableInput.prototype.reset = function () {
  this.forceCompositionEnd();
};
ContentEditableInput.prototype.forceCompositionEnd = function () {
  if (!this.composing) { return }
  clearTimeout(this.readDOMTimeout);
  this.composing = null;
  this.updateFromDOM();
  this.div.blur();
  this.div.focus();
};
ContentEditableInput.prototype.readFromDOMSoon = function () {
    var this$1 = this;

  if (this.readDOMTimeout != null) { return }
  this.readDOMTimeout = setTimeout(function () {
    this$1.readDOMTimeout = null;
    if (this$1.composing) {
      if (this$1.composing.done) { this$1.composing = null; }
      else { return }
    }
    this$1.updateFromDOM();
  }, 80);
};

ContentEditableInput.prototype.updateFromDOM = function () {
    var this$1 = this;

  if (this.cm.isReadOnly() || !this.pollContent())
    { runInOp(this.cm, function () { return regChange(this$1.cm); }); }
};

ContentEditableInput.prototype.setUneditable = function (node) {
  node.contentEditable = "false";
};

ContentEditableInput.prototype.onKeyPress = function (e) {
  if (e.charCode == 0 || this.composing) { return }
  e.preventDefault();
  if (!this.cm.isReadOnly())
    { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
};

ContentEditableInput.prototype.readOnlyChanged = function (val) {
  this.div.contentEditable = String(val != "nocursor");
};

ContentEditableInput.prototype.onContextMenu = function () {};
ContentEditableInput.prototype.resetPosition = function () {};

ContentEditableInput.prototype.needsContentAttribute = true;

function posToDOM(cm, pos) {
  var view = findViewForLine(cm, pos.line);
  if (!view || view.hidden) { return null }
  var line = getLine(cm.doc, pos.line);
  var info = mapFromLineView(view, line, pos.line);

  var order = getOrder(line, cm.doc.direction), side = "left";
  if (order) {
    var partPos = getBidiPartAt(order, pos.ch);
    side = partPos % 2 ? "right" : "left";
  }
  var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
  result.offset = result.collapse == "right" ? result.end : result.start;
  return result
}

function isInGutter(node) {
  for (var scan = node; scan; scan = scan.parentNode)
    { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }
  return false
}

function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }

function domTextBetween(cm, from, to, fromLine, toLine) {
  var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;
  function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
  function close() {
    if (closing) {
      text += lineSep;
      if (extraLinebreak) { text += lineSep; }
      closing = extraLinebreak = false;
    }
  }
  function addText(str) {
    if (str) {
      close();
      text += str;
    }
  }
  function walk(node) {
    if (node.nodeType == 1) {
      var cmText = node.getAttribute("cm-text");
      if (cmText) {
        addText(cmText);
        return
      }
      var markerID = node.getAttribute("cm-marker"), range$$1;
      if (markerID) {
        var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
        if (found.length && (range$$1 = found[0].find(0)))
          { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
        return
      }
      if (node.getAttribute("contenteditable") == "false") { return }
      var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);
      if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }

      if (isBlock) { close(); }
      for (var i = 0; i < node.childNodes.length; i++)
        { walk(node.childNodes[i]); }

      if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }
      if (isBlock) { closing = true; }
    } else if (node.nodeType == 3) {
      addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " "));
    }
  }
  for (;;) {
    walk(from);
    if (from == to) { break }
    from = from.nextSibling;
    extraLinebreak = false;
  }
  return text
}

function domToPos(cm, node, offset) {
  var lineNode;
  if (node == cm.display.lineDiv) {
    lineNode = cm.display.lineDiv.childNodes[offset];
    if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }
    node = null; offset = 0;
  } else {
    for (lineNode = node;; lineNode = lineNode.parentNode) {
      if (!lineNode || lineNode == cm.display.lineDiv) { return null }
      if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }
    }
  }
  for (var i = 0; i < cm.display.view.length; i++) {
    var lineView = cm.display.view[i];
    if (lineView.node == lineNode)
      { return locateNodeInLineView(lineView, node, offset) }
  }
}

function locateNodeInLineView(lineView, node, offset) {
  var wrapper = lineView.text.firstChild, bad = false;
  if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }
  if (node == wrapper) {
    bad = true;
    node = wrapper.childNodes[offset];
    offset = 0;
    if (!node) {
      var line = lineView.rest ? lst(lineView.rest) : lineView.line;
      return badPos(Pos(lineNo(line), line.text.length), bad)
    }
  }

  var textNode = node.nodeType == 3 ? node : null, topNode = node;
  if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
    textNode = node.firstChild;
    if (offset) { offset = textNode.nodeValue.length; }
  }
  while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }
  var measure = lineView.measure, maps = measure.maps;

  function find(textNode, topNode, offset) {
    for (var i = -1; i < (maps ? maps.length : 0); i++) {
      var map$$1 = i < 0 ? measure.map : maps[i];
      for (var j = 0; j < map$$1.length; j += 3) {
        var curNode = map$$1[j + 2];
        if (curNode == textNode || curNode == topNode) {
          var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
          var ch = map$$1[j] + offset;
          if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; }
          return Pos(line, ch)
        }
      }
    }
  }
  var found = find(textNode, topNode, offset);
  if (found) { return badPos(found, bad) }

  // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
  for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
    found = find(after, after.firstChild, 0);
    if (found)
      { return badPos(Pos(found.line, found.ch - dist), bad) }
    else
      { dist += after.textContent.length; }
  }
  for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {
    found = find(before, before.firstChild, -1);
    if (found)
      { return badPos(Pos(found.line, found.ch + dist$1), bad) }
    else
      { dist$1 += before.textContent.length; }
  }
}

// TEXTAREA INPUT STYLE

var TextareaInput = function(cm) {
  this.cm = cm;
  // See input.poll and input.reset
  this.prevInput = "";

  // Flag that indicates whether we expect input to appear real soon
  // now (after some event like 'keypress' or 'input') and are
  // polling intensively.
  this.pollingFast = false;
  // Self-resetting timeout for the poller
  this.polling = new Delayed();
  // Used to work around IE issue with selection being forgotten when focus moves away from textarea
  this.hasSelection = false;
  this.composing = null;
};

TextareaInput.prototype.init = function (display) {
    var this$1 = this;

  var input = this, cm = this.cm;
  this.createField(display);
  var te = this.textarea;

  display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);

  // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
  if (ios) { te.style.width = "0px"; }

  on(te, "input", function () {
    if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }
    input.poll();
  });

  on(te, "paste", function (e) {
    if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }

    cm.state.pasteIncoming = true;
    input.fastPoll();
  });

  function prepareCopyCut(e) {
    if (signalDOMEvent(cm, e)) { return }
    if (cm.somethingSelected()) {
      setLastCopied({lineWise: false, text: cm.getSelections()});
    } else if (!cm.options.lineWiseCopyCut) {
      return
    } else {
      var ranges = copyableRanges(cm);
      setLastCopied({lineWise: true, text: ranges.text});
      if (e.type == "cut") {
        cm.setSelections(ranges.ranges, null, sel_dontScroll);
      } else {
        input.prevInput = "";
        te.value = ranges.text.join("\n");
        selectInput(te);
      }
    }
    if (e.type == "cut") { cm.state.cutIncoming = true; }
  }
  on(te, "cut", prepareCopyCut);
  on(te, "copy", prepareCopyCut);

  on(display.scroller, "paste", function (e) {
    if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }
    cm.state.pasteIncoming = true;
    input.focus();
  });

  // Prevent normal selection in the editor (we handle our own)
  on(display.lineSpace, "selectstart", function (e) {
    if (!eventInWidget(display, e)) { e_preventDefault(e); }
  });

  on(te, "compositionstart", function () {
    var start = cm.getCursor("from");
    if (input.composing) { input.composing.range.clear(); }
    input.composing = {
      start: start,
      range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
    };
  });
  on(te, "compositionend", function () {
    if (input.composing) {
      input.poll();
      input.composing.range.clear();
      input.composing = null;
    }
  });
};

TextareaInput.prototype.createField = function (_display) {
  // Wraps and hides input textarea
  this.wrapper = hiddenTextarea();
  // The semihidden textarea that is focused when the editor is
  // focused, and receives input.
  this.textarea = this.wrapper.firstChild;
};

TextareaInput.prototype.prepareSelection = function () {
  // Redraw the selection and/or cursor
  var cm = this.cm, display = cm.display, doc = cm.doc;
  var result = prepareSelection(cm);

  // Move the hidden textarea near the cursor to prevent scrolling artifacts
  if (cm.options.moveInputWithCursor) {
    var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
    var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
    result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
                                        headPos.top + lineOff.top - wrapOff.top));
    result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
                                         headPos.left + lineOff.left - wrapOff.left));
  }

  return result
};

TextareaInput.prototype.showSelection = function (drawn) {
  var cm = this.cm, display = cm.display;
  removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
  removeChildrenAndAdd(display.selectionDiv, drawn.selection);
  if (drawn.teTop != null) {
    this.wrapper.style.top = drawn.teTop + "px";
    this.wrapper.style.left = drawn.teLeft + "px";
  }
};

// Reset the input to correspond to the selection (or to be empty,
// when not typing and nothing is selected)
TextareaInput.prototype.reset = function (typing) {
  if (this.contextMenuPending || this.composing) { return }
  var cm = this.cm;
  if (cm.somethingSelected()) {
    this.prevInput = "";
    var content = cm.getSelection();
    this.textarea.value = content;
    if (cm.state.focused) { selectInput(this.textarea); }
    if (ie && ie_version >= 9) { this.hasSelection = content; }
  } else if (!typing) {
    this.prevInput = this.textarea.value = "";
    if (ie && ie_version >= 9) { this.hasSelection = null; }
  }
};

TextareaInput.prototype.getField = function () { return this.textarea };

TextareaInput.prototype.supportsTouch = function () { return false };

TextareaInput.prototype.focus = function () {
  if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
    try { this.textarea.focus(); }
    catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
  }
};

TextareaInput.prototype.blur = function () { this.textarea.blur(); };

TextareaInput.prototype.resetPosition = function () {
  this.wrapper.style.top = this.wrapper.style.left = 0;
};

TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };

// Poll for input changes, using the normal rate of polling. This
// runs as long as the editor is focused.
TextareaInput.prototype.slowPoll = function () {
    var this$1 = this;

  if (this.pollingFast) { return }
  this.polling.set(this.cm.options.pollInterval, function () {
    this$1.poll();
    if (this$1.cm.state.focused) { this$1.slowPoll(); }
  });
};

// When an event has just come in that is likely to add or change
// something in the input textarea, we poll faster, to ensure that
// the change appears on the screen quickly.
TextareaInput.prototype.fastPoll = function () {
  var missed = false, input = this;
  input.pollingFast = true;
  function p() {
    var changed = input.poll();
    if (!changed && !missed) {missed = true; input.polling.set(60, p);}
    else {input.pollingFast = false; input.slowPoll();}
  }
  input.polling.set(20, p);
};

// Read input from the textarea, and update the document to match.
// When something is selected, it is present in the textarea, and
// selected (unless it is huge, in which case a placeholder is
// used). When nothing is selected, the cursor sits after previously
// seen text (can be empty), which is stored in prevInput (we must
// not reset the textarea when typing, because that breaks IME).
TextareaInput.prototype.poll = function () {
    var this$1 = this;

  var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
  // Since this is called a *lot*, try to bail out as cheaply as
  // possible when it is clear that nothing happened. hasSelection
  // will be the case when there is a lot of text in the textarea,
  // in which case reading its value would be expensive.
  if (this.contextMenuPending || !cm.state.focused ||
      (hasSelection(input) && !prevInput && !this.composing) ||
      cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)
    { return false }

  var text = input.value;
  // If nothing changed, bail.
  if (text == prevInput && !cm.somethingSelected()) { return false }
  // Work around nonsensical selection resetting in IE9/10, and
  // inexplicable appearance of private area unicode characters on
  // some key combos in Mac (#2689).
  if (ie && ie_version >= 9 && this.hasSelection === text ||
      mac && /[\uf700-\uf7ff]/.test(text)) {
    cm.display.input.reset();
    return false
  }

  if (cm.doc.sel == cm.display.selForContextMenu) {
    var first = text.charCodeAt(0);
    if (first == 0x200b && !prevInput) { prevInput = "\u200b"; }
    if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") }
  }
  // Find the part of the input that is actually new
  var same = 0, l = Math.min(prevInput.length, text.length);
  while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }

  runInOp(cm, function () {
    applyTextInput(cm, text.slice(same), prevInput.length - same,
                   null, this$1.composing ? "*compose" : null);

    // Don't leave long text in the textarea, since it makes further polling slow
    if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; }
    else { this$1.prevInput = text; }

    if (this$1.composing) {
      this$1.composing.range.clear();
      this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"),
                                         {className: "CodeMirror-composing"});
    }
  });
  return true
};

TextareaInput.prototype.ensurePolled = function () {
  if (this.pollingFast && this.poll()) { this.pollingFast = false; }
};

TextareaInput.prototype.onKeyPress = function () {
  if (ie && ie_version >= 9) { this.hasSelection = null; }
  this.fastPoll();
};

TextareaInput.prototype.onContextMenu = function (e) {
  var input = this, cm = input.cm, display = cm.display, te = input.textarea;
  var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
  if (!pos || presto) { return } // Opera is difficult.

  // Reset the current text selection only if the click is done outside of the selection
  // and 'resetSelectionOnContextMenu' option is true.
  var reset = cm.options.resetSelectionOnContextMenu;
  if (reset && cm.doc.sel.contains(pos) == -1)
    { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }

  var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;
  input.wrapper.style.cssText = "position: absolute";
  var wrapperBox = input.wrapper.getBoundingClientRect();
  te.style.cssText = "position: absolute; width: 30px; height: 30px;\n      top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n      z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
  var oldScrollY;
  if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)
  display.input.focus();
  if (webkit) { window.scrollTo(null, oldScrollY); }
  display.input.reset();
  // Adds "Select all" to context menu in FF
  if (!cm.somethingSelected()) { te.value = input.prevInput = " "; }
  input.contextMenuPending = true;
  display.selForContextMenu = cm.doc.sel;
  clearTimeout(display.detectingSelectAll);

  // Select-all will be greyed out if there's nothing to select, so
  // this adds a zero-width space so that we can later check whether
  // it got selected.
  function prepareSelectAllHack() {
    if (te.selectionStart != null) {
      var selected = cm.somethingSelected();
      var extval = "\u200b" + (selected ? te.value : "");
      te.value = "\u21da"; // Used to catch context-menu undo
      te.value = extval;
      input.prevInput = selected ? "" : "\u200b";
      te.selectionStart = 1; te.selectionEnd = extval.length;
      // Re-set this, in case some other handler touched the
      // selection in the meantime.
      display.selForContextMenu = cm.doc.sel;
    }
  }
  function rehide() {
    input.contextMenuPending = false;
    input.wrapper.style.cssText = oldWrapperCSS;
    te.style.cssText = oldCSS;
    if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }

    // Try to detect the user choosing select-all
    if (te.selectionStart != null) {
      if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }
      var i = 0, poll = function () {
        if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
            te.selectionEnd > 0 && input.prevInput == "\u200b") {
          operation(cm, selectAll)(cm);
        } else if (i++ < 10) {
          display.detectingSelectAll = setTimeout(poll, 500);
        } else {
          display.selForContextMenu = null;
          display.input.reset();
        }
      };
      display.detectingSelectAll = setTimeout(poll, 200);
    }
  }

  if (ie && ie_version >= 9) { prepareSelectAllHack(); }
  if (captureRightClick) {
    e_stop(e);
    var mouseup = function () {
      off(window, "mouseup", mouseup);
      setTimeout(rehide, 20);
    };
    on(window, "mouseup", mouseup);
  } else {
    setTimeout(rehide, 50);
  }
};

TextareaInput.prototype.readOnlyChanged = function (val) {
  if (!val) { this.reset(); }
  this.textarea.disabled = val == "nocursor";
};

TextareaInput.prototype.setUneditable = function () {};

TextareaInput.prototype.needsContentAttribute = false;

function fromTextArea(textarea, options) {
  options = options ? copyObj(options) : {};
  options.value = textarea.value;
  if (!options.tabindex && textarea.tabIndex)
    { options.tabindex = textarea.tabIndex; }
  if (!options.placeholder && textarea.placeholder)
    { options.placeholder = textarea.placeholder; }
  // Set autofocus to true if this textarea is focused, or if it has
  // autofocus and no other element is focused.
  if (options.autofocus == null) {
    var hasFocus = activeElt();
    options.autofocus = hasFocus == textarea ||
      textarea.getAttribute("autofocus") != null && hasFocus == document.body;
  }

  function save() {textarea.value = cm.getValue();}

  var realSubmit;
  if (textarea.form) {
    on(textarea.form, "submit", save);
    // Deplorable hack to make the submit method do the right thing.
    if (!options.leaveSubmitMethodAlone) {
      var form = textarea.form;
      realSubmit = form.submit;
      try {
        var wrappedSubmit = form.submit = function () {
          save();
          form.submit = realSubmit;
          form.submit();
          form.submit = wrappedSubmit;
        };
      } catch(e) {}
    }
  }

  options.finishInit = function (cm) {
    cm.save = save;
    cm.getTextArea = function () { return textarea; };
    cm.toTextArea = function () {
      cm.toTextArea = isNaN; // Prevent this from being ran twice
      save();
      textarea.parentNode.removeChild(cm.getWrapperElement());
      textarea.style.display = "";
      if (textarea.form) {
        off(textarea.form, "submit", save);
        if (typeof textarea.form.submit == "function")
          { textarea.form.submit = realSubmit; }
      }
    };
  };

  textarea.style.display = "none";
  var cm = CodeMirror$1(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },
    options);
  return cm
}

function addLegacyProps(CodeMirror) {
  CodeMirror.off = off;
  CodeMirror.on = on;
  CodeMirror.wheelEventPixels = wheelEventPixels;
  CodeMirror.Doc = Doc;
  CodeMirror.splitLines = splitLinesAuto;
  CodeMirror.countColumn = countColumn;
  CodeMirror.findColumn = findColumn;
  CodeMirror.isWordChar = isWordCharBasic;
  CodeMirror.Pass = Pass;
  CodeMirror.signal = signal;
  CodeMirror.Line = Line;
  CodeMirror.changeEnd = changeEnd;
  CodeMirror.scrollbarModel = scrollbarModel;
  CodeMirror.Pos = Pos;
  CodeMirror.cmpPos = cmp;
  CodeMirror.modes = modes;
  CodeMirror.mimeModes = mimeModes;
  CodeMirror.resolveMode = resolveMode;
  CodeMirror.getMode = getMode;
  CodeMirror.modeExtensions = modeExtensions;
  CodeMirror.extendMode = extendMode;
  CodeMirror.copyState = copyState;
  CodeMirror.startState = startState;
  CodeMirror.innerMode = innerMode;
  CodeMirror.commands = commands;
  CodeMirror.keyMap = keyMap;
  CodeMirror.keyName = keyName;
  CodeMirror.isModifierKey = isModifierKey;
  CodeMirror.lookupKey = lookupKey;
  CodeMirror.normalizeKeyMap = normalizeKeyMap;
  CodeMirror.StringStream = StringStream;
  CodeMirror.SharedTextMarker = SharedTextMarker;
  CodeMirror.TextMarker = TextMarker;
  CodeMirror.LineWidget = LineWidget;
  CodeMirror.e_preventDefault = e_preventDefault;
  CodeMirror.e_stopPropagation = e_stopPropagation;
  CodeMirror.e_stop = e_stop;
  CodeMirror.addClass = addClass;
  CodeMirror.contains = contains;
  CodeMirror.rmClass = rmClass;
  CodeMirror.keyNames = keyNames;
}

// EDITOR CONSTRUCTOR

defineOptions(CodeMirror$1);

addEditorMethods(CodeMirror$1);

// Set up methods on CodeMirror's prototype to redirect to the editor's document.
var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
  { CodeMirror$1.prototype[prop] = (function(method) {
    return function() {return method.apply(this.doc, arguments)}
  })(Doc.prototype[prop]); } }

eventMixin(Doc);

// INPUT HANDLING

CodeMirror$1.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};

// MODE DEFINITION AND QUERYING

// Extra arguments are stored as the mode's dependencies, which is
// used by (legacy) mechanisms like loadmode.js to automatically
// load a mode. (Preferred mechanism is the require/define calls.)
CodeMirror$1.defineMode = function(name/*, mode, …*/) {
  if (!CodeMirror$1.defaults.mode && name != "null") { CodeMirror$1.defaults.mode = name; }
  defineMode.apply(this, arguments);
};

CodeMirror$1.defineMIME = defineMIME;

// Minimal default mode.
CodeMirror$1.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });
CodeMirror$1.defineMIME("text/plain", "null");

// EXTENSIONS

CodeMirror$1.defineExtension = function (name, func) {
  CodeMirror$1.prototype[name] = func;
};
CodeMirror$1.defineDocExtension = function (name, func) {
  Doc.prototype[name] = func;
};

CodeMirror$1.fromTextArea = fromTextArea;

addLegacyProps(CodeMirror$1);

CodeMirror$1.version = "5.40.0";

return CodeMirror$1;

})));
editors/codemirror/lib/addons.min.js000064400000160661152177723720013547 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.getWrapperElement();a.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:b.style.width,height:b.style.height},b.style.width="",b.style.height="auto",b.className+=" CodeMirror-fullscreen",document.documentElement.style.overflow="hidden",a.refresh()}function c(a){var b=a.getWrapperElement();b.className=b.className.replace(/\s*CodeMirror-fullscreen\b/,""),document.documentElement.style.overflow="";var c=a.state.fullScreenRestore;b.style.width=c.width,b.style.height=c.height,window.scrollTo(c.scrollLeft,c.scrollTop),a.refresh()}a.defineOption("fullScreen",!1,(function(d,e,f){f==a.Init&&(f=!1),!f!=!e&&(e?b(d):c(d))}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b,c,d){this.cm=a,this.node=b,this.options=c,this.height=d,this.cleared=!1}function c(a){var b=a.getWrapperElement(),c=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle,d=parseInt(c.height),e=a.state.panels={setHeight:b.style.height,heightLeft:d,panels:0,wrapper:document.createElement("div")};b.parentNode.insertBefore(e.wrapper,b);var f=a.hasFocus();e.wrapper.appendChild(b),f&&a.focus(),a._setSize=a.setSize,null!=d&&(a.setSize=function(b,c){if(null==c)return this._setSize(b,c);if(e.setHeight=c,"number"!=typeof c){var f=/^(\d+\.?\d*)px$/.exec(c);f?c=Number(f[1]):(e.wrapper.style.height=c,c=e.wrapper.offsetHeight,e.wrapper.style.height="")}a._setSize(b,e.heightLeft+=c-d),d=c})}function d(a){var b=a.state.panels;a.state.panels=null;var c=a.getWrapperElement();b.wrapper.parentNode.replaceChild(c,b.wrapper),c.style.height=b.setHeight,a.setSize=a._setSize,a.setSize()}function e(a,b){for(var c=b.nextSibling;c;c=c.nextSibling)if(c==a.getWrapperElement())return!0;return!1}a.defineExtension("addPanel",(function(a,d){d=d||{},this.state.panels||c(this);var f=this.state.panels,g=f.wrapper,h=this.getWrapperElement(),i=d.replace instanceof b&&!d.replace.cleared;d.after instanceof b&&!d.after.cleared?g.insertBefore(a,d.before.node.nextSibling):d.before instanceof b&&!d.before.cleared?g.insertBefore(a,d.before.node):i?(g.insertBefore(a,d.replace.node),f.panels++,d.replace.clear()):"bottom"==d.position?g.appendChild(a):"before-bottom"==d.position?g.insertBefore(a,h.nextSibling):"after-top"==d.position?g.insertBefore(a,h):g.insertBefore(a,g.firstChild);var j=d&&d.height||a.offsetHeight;return this._setSize(null,f.heightLeft-=j),i||f.panels++,d.stable&&e(this,a)&&this.scrollTo(null,this.getScrollInfo().top+j),new b(this,a,d,j)})),b.prototype.clear=function(){if(!this.cleared){this.cleared=!0;var a=this.cm.state.panels;this.cm._setSize(null,a.heightLeft+=this.height),this.options.stable&&e(this.cm,this.node)&&this.cm.scrollTo(null,this.cm.getScrollInfo().top-this.height),a.wrapper.removeChild(this.node),0==--a.panels&&d(this.cm)}},b.prototype.changed=function(a){var b=null==a?this.node.offsetHeight:a,c=this.cm.state.panels;this.cm._setSize(null,c.heightLeft-=b-this.height),this.height=b}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b){return"pairs"==b&&"string"==typeof a?a:"object"==typeof a&&null!=a[b]?a[b]:l[b]}function c(a){for(var b=0;b<a.length;b++){var c=a.charAt(b),e="'"+c+"'";n[e]||(n[e]=d(c))}}function d(a){return function(b){return i(b,a)}}function e(a){var b=a.state.closeBrackets;if(!b||b.override)return b;var c=a.getModeAt(a.getCursor());return c.closeBrackets||b}function f(c){var d=e(c);if(!d||c.getOption("disableInput"))return a.Pass;for(var f=b(d,"pairs"),g=c.listSelections(),h=0;h<g.length;h++){if(!g[h].empty())return a.Pass;var i=j(c,g[h].head);if(!i||f.indexOf(i)%2!=0)return a.Pass}for(var h=g.length-1;h>=0;h--){var k=g[h].head;c.replaceRange("",m(k.line,k.ch-1),m(k.line,k.ch+1),"+delete")}}function g(c){var d=e(c),f=d&&b(d,"explode");if(!f||c.getOption("disableInput"))return a.Pass;for(var g=c.listSelections(),h=0;h<g.length;h++){if(!g[h].empty())return a.Pass;var i=j(c,g[h].head);if(!i||f.indexOf(i)%2!=0)return a.Pass}c.operation((function(){var a=c.lineSeparator()||"\n";c.replaceSelection(a+a,null),c.execCommand("goCharLeft"),g=c.listSelections();for(var b=0;b<g.length;b++){var d=g[b].head.line;c.indentLine(d,null,!0),c.indentLine(d+1,null,!0)}}))}function h(b){var c=a.cmpPos(b.anchor,b.head)>0;return{anchor:new m(b.anchor.line,b.anchor.ch+(c?-1:1)),head:new m(b.head.line,b.head.ch+(c?1:-1))}}function i(c,d){var f=e(c);if(!f||c.getOption("disableInput"))return a.Pass;var g=b(f,"pairs"),i=g.indexOf(d);if(i==-1)return a.Pass;for(var j,l=b(f,"triples"),n=g.charAt(i+1)==d,o=c.listSelections(),p=i%2==0,q=0;q<o.length;q++){var r,s=o[q],t=s.head,u=c.getRange(t,m(t.line,t.ch+1));if(p&&!s.empty())r="surround";else if(!n&&p||u!=d)if(n&&t.ch>1&&l.indexOf(d)>=0&&c.getRange(m(t.line,t.ch-2),t)==d+d){if(t.ch>2&&/\bstring/.test(c.getTokenTypeAt(m(t.line,t.ch-2))))return a.Pass;r="addFour"}else if(n){var v=0==t.ch?" ":c.getRange(m(t.line,t.ch-1),t);if(a.isWordChar(u)||v==d||a.isWordChar(v))return a.Pass;r="both"}else{if(!p)return a.Pass;r="both"}else r=n&&k(c,t)?"both":l.indexOf(d)>=0&&c.getRange(t,m(t.line,t.ch+3))==d+d+d?"skipThree":"skip";if(j){if(j!=r)return a.Pass}else j=r}var w=i%2?g.charAt(i-1):d,x=i%2?d:g.charAt(i+1);c.operation((function(){if("skip"==j)c.execCommand("goCharRight");else if("skipThree"==j)for(var a=0;a<3;a++)c.execCommand("goCharRight");else if("surround"==j){for(var b=c.getSelections(),a=0;a<b.length;a++)b[a]=w+b[a]+x;c.replaceSelections(b,"around"),b=c.listSelections().slice();for(var a=0;a<b.length;a++)b[a]=h(b[a]);c.setSelections(b)}else"both"==j?(c.replaceSelection(w+x,null),c.triggerElectric(w+x),c.execCommand("goCharLeft")):"addFour"==j&&(c.replaceSelection(w+w+w+w,"before"),c.execCommand("goCharRight"))}))}function j(a,b){var c=a.getRange(m(b.line,b.ch-1),m(b.line,b.ch+1));return 2==c.length?c:null}function k(a,b){var c=a.getTokenAt(m(b.line,b.ch+1));return/\bstring/.test(c.type)&&c.start==b.ch&&(0==b.ch||!/\bstring/.test(a.getTokenTypeAt(b)))}var l={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},m=a.Pos;a.defineOption("autoCloseBrackets",!1,(function(d,e,f){f&&f!=a.Init&&(d.removeKeyMap(n),d.state.closeBrackets=null),e&&(c(b(e,"pairs")),d.state.closeBrackets=e,d.addKeyMap(n))}));var n={Backspace:f,Enter:g};c(l.pairs+"`")})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],a):a(CodeMirror)})((function(a){function b(b){if(b.getOption("disableInput"))return a.Pass;for(var c=b.listSelections(),d=[],i=b.getOption("autoCloseTags"),j=0;j<c.length;j++){if(!c[j].empty())return a.Pass;var k=c[j].head,l=b.getTokenAt(k),m=a.innerMode(b.getMode(),l.state),n=m.state;if("xml"!=m.mode.name||!n.tagName)return a.Pass;var o="html"==m.mode.configuration,p="object"==typeof i&&i.dontCloseTags||o&&g,q="object"==typeof i&&i.indentTags||o&&h,r=n.tagName;l.end>k.ch&&(r=r.slice(0,r.length-l.end+k.ch));var s=r.toLowerCase();if(!r||"string"==l.type&&(l.end!=k.ch||!/[\"\']/.test(l.string.charAt(l.string.length-1))||1==l.string.length)||"tag"==l.type&&"closeTag"==n.type||l.string.indexOf("/")==l.string.length-1||p&&e(p,s)>-1||f(b,r,k,n,!0))return a.Pass;var t=q&&e(q,s)>-1;d[j]={indent:t,text:">"+(t?"\n\n":"")+"</"+r+">",newPos:t?a.Pos(k.line+1,0):a.Pos(k.line,k.ch+1)}}for(var u="object"==typeof i&&i.dontIndentOnAutoClose,j=c.length-1;j>=0;j--){var v=d[j];b.replaceRange(v.text,c[j].head,c[j].anchor,"+insert");var w=b.listSelections().slice(0);w[j]={head:v.newPos,anchor:v.newPos},b.setSelections(w),!u&&v.indent&&(b.indentLine(v.newPos.line,null,!0),b.indentLine(v.newPos.line+1,null,!0))}}function c(b,c){for(var d=b.listSelections(),e=[],g=c?"/":"</",h=b.getOption("autoCloseTags"),i="object"==typeof h&&h.dontIndentOnSlash,j=0;j<d.length;j++){if(!d[j].empty())return a.Pass;var k=d[j].head,l=b.getTokenAt(k),m=a.innerMode(b.getMode(),l.state),n=m.state;if(c&&("string"==l.type||"<"!=l.string.charAt(0)||l.start!=k.ch-1))return a.Pass;var o;if("xml"!=m.mode.name)if("htmlmixed"==b.getMode().name&&"javascript"==m.mode.name)o=g+"script";else{if("htmlmixed"!=b.getMode().name||"css"!=m.mode.name)return a.Pass;o=g+"style"}else{if(!n.context||!n.context.tagName||f(b,n.context.tagName,k,n))return a.Pass;o=g+n.context.tagName}">"!=b.getLine(k.line).charAt(l.end)&&(o+=">"),e[j]=o}if(b.replaceSelections(e),d=b.listSelections(),!i)for(var j=0;j<d.length;j++)(j==d.length-1||d[j].head.line<d[j+1].head.line)&&b.indentLine(d[j].head.line)}function d(b){return b.getOption("disableInput")?a.Pass:c(b,!0)}function e(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;c<d;++c)if(a[c]==b)return c;return-1}function f(b,c,d,e,f){if(!a.scanForClosingTag)return!1;var g=Math.min(b.lastLine()+1,d.line+500),h=a.scanForClosingTag(b,d,null,g);if(!h||h.tag!=c)return!1;for(var i=e.context,j=f?1:0;i&&i.tagName==c;i=i.prev)++j;d=h.to;for(var k=1;k<j;k++){var l=a.scanForClosingTag(b,d,null,g);if(!l||l.tag!=c)return!1;d=l.to}return!0}a.defineOption("autoCloseTags",!1,(function(c,e,f){if(f!=a.Init&&f&&c.removeKeyMap("autoCloseTags"),e){var g={name:"autoCloseTags"};("object"!=typeof e||e.whenClosing)&&(g["'/'"]=function(a){return d(a)}),("object"!=typeof e||e.whenOpening)&&(g["'>'"]=function(a){return b(a)}),c.addKeyMap(g)}}));var g=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],h=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];a.commands.closeTag=function(a){return c(a)}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b,d){var e=a.getLineHandle(b.line),f=b.ch-1,i=d&&d.afterCursor;null==i&&(i=/(^| )cm-fat-cursor($| )/.test(a.getWrapperElement().className));var j=!i&&f>=0&&h[e.text.charAt(f)]||h[e.text.charAt(++f)];if(!j)return null;var k=">"==j.charAt(1)?1:-1;if(d&&d.strict&&k>0!=(f==b.ch))return null;var l=a.getTokenTypeAt(g(b.line,f+1)),m=c(a,g(b.line,f+(k>0?1:0)),k,l||null,d);return null==m?null:{from:g(b.line,f),to:m&&m.pos,match:m&&m.ch==j.charAt(0),forward:k>0}}function c(a,b,c,d,e){for(var f=e&&e.maxScanLineLength||1e4,i=e&&e.maxScanLines||1e3,j=[],k=e&&e.bracketRegex?e.bracketRegex:/[(){}[\]]/,l=c>0?Math.min(b.line+i,a.lastLine()+1):Math.max(a.firstLine()-1,b.line-i),m=b.line;m!=l;m+=c){var n=a.getLine(m);if(n){var o=c>0?0:n.length-1,p=c>0?n.length:-1;if(!(n.length>f))for(m==b.line&&(o=b.ch-(c<0?1:0));o!=p;o+=c){var q=n.charAt(o);if(k.test(q)&&(void 0===d||a.getTokenTypeAt(g(m,o+1))==d)){var r=h[q];if(">"==r.charAt(1)==c>0)j.push(q);else{if(!j.length)return{pos:g(m,o),ch:q};j.pop()}}}}}return m-c!=(c>0?a.lastLine():a.firstLine())&&null}function d(a,c,d){for(var e=a.state.matchBrackets.maxHighlightLineLength||1e3,h=[],i=a.listSelections(),j=0;j<i.length;j++){var k=i[j].empty()&&b(a,i[j].head,d);if(k&&a.getLine(k.from.line).length<=e){var l=k.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";h.push(a.markText(k.from,g(k.from.line,k.from.ch+1),{className:l})),k.to&&a.getLine(k.to.line).length<=e&&h.push(a.markText(k.to,g(k.to.line,k.to.ch+1),{className:l}))}}if(h.length){f&&a.state.focused&&a.focus();var m=function(){a.operation((function(){for(var a=0;a<h.length;a++)h[a].clear()}))};if(!c)return m;setTimeout(m,800)}}function e(a){a.operation((function(){a.state.matchBrackets.currentlyHighlighted&&(a.state.matchBrackets.currentlyHighlighted(),a.state.matchBrackets.currentlyHighlighted=null),a.state.matchBrackets.currentlyHighlighted=d(a,!1,a.state.matchBrackets)}))}var f=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),g=a.Pos,h={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};a.defineOption("matchBrackets",!1,(function(b,c,d){d&&d!=a.Init&&(b.off("cursorActivity",e),b.state.matchBrackets&&b.state.matchBrackets.currentlyHighlighted&&(b.state.matchBrackets.currentlyHighlighted(),b.state.matchBrackets.currentlyHighlighted=null)),c&&(b.state.matchBrackets="object"==typeof c?c:{},b.on("cursorActivity",e))})),a.defineExtension("matchBrackets",(function(){d(this,!0)})),a.defineExtension("findMatchingBracket",(function(a,c,d){return(d||"boolean"==typeof c)&&(d?(d.strict=c,c=d):c=c?{strict:!0}:null),b(this,a,c)})),a.defineExtension("scanForBracket",(function(a,b,d,e){return c(this,a,b,d,e)}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],a):a(CodeMirror)})((function(a){"use strict";function b(a){a.state.tagHit&&a.state.tagHit.clear(),a.state.tagOther&&a.state.tagOther.clear(),a.state.tagHit=a.state.tagOther=null}function c(c){c.state.failedTagMatch=!1,c.operation((function(){if(b(c),!c.somethingSelected()){var d=c.getCursor(),e=c.getViewport();e.from=Math.min(e.from,d.line),e.to=Math.max(d.line+1,e.to);var f=a.findMatchingTag(c,d,e);if(f){if(c.state.matchBothTags){var g="open"==f.at?f.open:f.close;g&&(c.state.tagHit=c.markText(g.from,g.to,{className:"CodeMirror-matchingtag"}))}var h="close"==f.at?f.open:f.close;h?c.state.tagOther=c.markText(h.from,h.to,{className:"CodeMirror-matchingtag"}):c.state.failedTagMatch=!0}}}))}function d(a){a.state.failedTagMatch&&c(a)}a.defineOption("matchTags",!1,(function(e,f,g){g&&g!=a.Init&&(e.off("cursorActivity",c),e.off("viewportChange",d),b(e)),f&&(e.state.matchBothTags="object"==typeof f&&f.bothTags,e.on("cursorActivity",c),e.on("viewportChange",d),c(e))})),a.commands.toMatchingTag=function(b){var c=a.findMatchingTag(b,b.getCursor());if(c){var d="close"==c.at?c.open:c.close;d&&b.extendSelection(d.to,d.from)}}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("fold","brace",(function(b,c){function d(d){for(var h=c.ch,i=0;;){var j=h<=0?-1:g.lastIndexOf(d,h-1);if(j!=-1){if(1==i&&j<c.ch)break;if(e=b.getTokenTypeAt(a.Pos(f,j+1)),!/^(comment|string)/.test(e))return j+1;h=j-1}else{if(1==i)break;i=1,h=g.length}}}var e,f=c.line,g=b.getLine(f),h="{",i="}",j=d("{");if(null==j&&(h="[",i="]",j=d("[")),null!=j){var k,l,m=1,n=b.lastLine();a:for(var o=f;o<=n;++o)for(var p=b.getLine(o),q=o==f?j:0;;){var r=p.indexOf(h,q),s=p.indexOf(i,q);if(r<0&&(r=p.length),s<0&&(s=p.length),q=Math.min(r,s),q==p.length)break;if(b.getTokenTypeAt(a.Pos(o,q+1))==e)if(q==r)++m;else if(!--m){k=o,l=q;break a}++q}if(null!=k&&(f!=k||l!=j))return{from:a.Pos(f,j),to:a.Pos(k,l)}}})),a.registerHelper("fold","import",(function(b,c){function d(c){if(c<b.firstLine()||c>b.lastLine())return null;var d=b.getTokenAt(a.Pos(c,1));if(/\S/.test(d.string)||(d=b.getTokenAt(a.Pos(c,d.end+1))),"keyword"!=d.type||"import"!=d.string)return null;for(var e=c,f=Math.min(b.lastLine(),c+10);e<=f;++e){var g=b.getLine(e),h=g.indexOf(";");if(h!=-1)return{startCh:d.end,end:a.Pos(e,h)}}}var e,f=c.line,g=d(f);if(!g||d(f-1)||(e=d(f-2))&&e.end.line==f-1)return null;for(var h=g.end;;){var i=d(h.line+1);if(null==i)break;h=i.end}return{from:b.clipPos(a.Pos(f,g.startCh+1)),to:h}})),a.registerHelper("fold","include",(function(b,c){function d(c){if(c<b.firstLine()||c>b.lastLine())return null;var d=b.getTokenAt(a.Pos(c,1));return/\S/.test(d.string)||(d=b.getTokenAt(a.Pos(c,d.end+1))),"meta"==d.type&&"#include"==d.string.slice(0,8)?d.start+8:void 0}var e=c.line,f=d(e);if(null==f||null!=d(e-1))return null;for(var g=e;;){var h=d(g+1);if(null==h)break;++g}return{from:a.Pos(e,f+1),to:b.clipPos(a.Pos(g))}}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,e,f,g){function h(a){var c=i(b,e);if(!c||c.to.line-c.from.line<j)return null;for(var d=b.findMarksAt(c.from),f=0;f<d.length;++f)if(d[f].__isFold&&"fold"!==g){if(!a)return null;c.cleared=!0,d[f].clear()}return c}if(f&&f.call){var i=f;f=null}else var i=d(b,f,"rangeFinder");"number"==typeof e&&(e=a.Pos(e,0));var j=d(b,f,"minFoldSize"),k=h(!0);if(d(b,f,"scanUp"))for(;!k&&e.line>b.firstLine();)e=a.Pos(e.line-1,0),k=h(!1);if(k&&!k.cleared&&"unfold"!==g){var l=c(b,f);a.on(l,"mousedown",(function(b){m.clear(),a.e_preventDefault(b)}));var m=b.markText(k.from,k.to,{replacedWith:l,clearOnEnter:d(b,f,"clearOnEnter"),__isFold:!0});m.on("clear",(function(c,d){a.signal(b,"unfold",b,c,d)})),a.signal(b,"fold",b,k.from,k.to)}}function c(a,b){var c=d(a,b,"widget");if("string"==typeof c){var e=document.createTextNode(c);c=document.createElement("span"),c.appendChild(e),c.className="CodeMirror-foldmarker"}else c&&(c=c.cloneNode(!0));return c}function d(a,b,c){if(b&&void 0!==b[c])return b[c];var d=a.options.foldOptions;return d&&void 0!==d[c]?d[c]:e[c]}a.newFoldFunction=function(a,c){return function(d,e){b(d,e,{rangeFinder:a,widget:c})}},a.defineExtension("foldCode",(function(a,c,d){b(this,a,c,d)})),a.defineExtension("isFolded",(function(a){for(var b=this.findMarksAt(a),c=0;c<b.length;++c)if(b[c].__isFold)return!0})),a.commands.toggleFold=function(a){a.foldCode(a.getCursor())},a.commands.fold=function(a){a.foldCode(a.getCursor(),null,"fold")},a.commands.unfold=function(a){a.foldCode(a.getCursor(),null,"unfold")},a.commands.foldAll=function(b){b.operation((function(){for(var c=b.firstLine(),d=b.lastLine();c<=d;c++)b.foldCode(a.Pos(c,0),null,"fold")}))},a.commands.unfoldAll=function(b){b.operation((function(){for(var c=b.firstLine(),d=b.lastLine();c<=d;c++)b.foldCode(a.Pos(c,0),null,"unfold")}))},a.registerHelper("fold","combine",(function(){var a=Array.prototype.slice.call(arguments,0);return function(b,c){for(var d=0;d<a.length;++d){var e=a[d](b,c);if(e)return e}}})),a.registerHelper("fold","auto",(function(a,b){for(var c=a.getHelpers(b,"fold"),d=0;d<c.length;d++){var e=c[d](a,b);if(e)return e}}));var e={rangeFinder:a.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1,clearOnEnter:!0};a.defineOption("foldOptions",null),a.defineExtension("foldOption",(function(a,b){return d(this,a,b)}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],a):a(CodeMirror)})((function(a){"use strict";function b(a){this.options=a,this.from=this.to=0}function c(a){return a===!0&&(a={}),null==a.gutter&&(a.gutter="CodeMirror-foldgutter"),null==a.indicatorOpen&&(a.indicatorOpen="CodeMirror-foldgutter-open"),null==a.indicatorFolded&&(a.indicatorFolded="CodeMirror-foldgutter-folded"),a}function d(a,b){for(var c=a.findMarks(l(b,0),l(b+1,0)),d=0;d<c.length;++d)if(c[d].__isFold&&c[d].find().from.line==b)return c[d]}function e(a){if("string"==typeof a){var b=document.createElement("div");return b.className=a+" CodeMirror-guttermarker-subtle",b}return a.cloneNode(!0)}function f(a,b,c){var f=a.state.foldGutter.options,g=b,h=a.foldOption(f,"minFoldSize"),i=a.foldOption(f,"rangeFinder");a.eachLine(b,c,(function(b){var c=null;if(d(a,g))c=e(f.indicatorFolded);else{var j=l(g,0),k=i&&i(a,j);k&&k.to.line-k.from.line>=h&&(c=e(f.indicatorOpen))}a.setGutterMarker(b,f.gutter,c),++g}))}function g(a){var b=a.getViewport(),c=a.state.foldGutter;c&&(a.operation((function(){f(a,b.from,b.to)})),c.from=b.from,c.to=b.to)}function h(a,b,c){var e=a.state.foldGutter;if(e){var f=e.options;if(c==f.gutter){var g=d(a,b);g?g.clear():a.foldCode(l(b,0),f.rangeFinder)}}}function i(a){var b=a.state.foldGutter;if(b){var c=b.options;b.from=b.to=0,clearTimeout(b.changeUpdate),b.changeUpdate=setTimeout((function(){g(a)}),c.foldOnChangeTimeSpan||600)}}function j(a){var b=a.state.foldGutter;if(b){var c=b.options;clearTimeout(b.changeUpdate),b.changeUpdate=setTimeout((function(){var c=a.getViewport();b.from==b.to||c.from-b.to>20||b.from-c.to>20?g(a):a.operation((function(){c.from<b.from&&(f(a,c.from,b.from),b.from=c.from),c.to>b.to&&(f(a,b.to,c.to),b.to=c.to)}))}),c.updateViewportTimeSpan||400)}}function k(a,b){var c=a.state.foldGutter;if(c){var d=b.line;d>=c.from&&d<c.to&&f(a,d,d+1)}}a.defineOption("foldGutter",!1,(function(d,e,f){f&&f!=a.Init&&(d.clearGutter(d.state.foldGutter.options.gutter),d.state.foldGutter=null,d.off("gutterClick",h),d.off("change",i),d.off("viewportChange",j),d.off("fold",k),d.off("unfold",k),d.off("swapDoc",i)),e&&(d.state.foldGutter=new b(c(e)),g(d),d.on("gutterClick",h),d.on("change",i),d.on("viewportChange",j),d.on("fold",k),d.on("unfold",k),d.on("swapDoc",i))}));var l=a.Pos})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){return a.line-b.line||a.ch-b.ch}function c(a,b,c,d){this.line=b,this.ch=c,this.cm=a,this.text=a.getLine(b),this.min=d?Math.max(d.from,a.firstLine()):a.firstLine(),this.max=d?Math.min(d.to-1,a.lastLine()):a.lastLine()}function d(a,b){var c=a.cm.getTokenTypeAt(m(a.line,b));return c&&/\btag\b/.test(c)}function e(a){if(!(a.line>=a.max))return a.ch=0,a.text=a.cm.getLine(++a.line),!0}function f(a){if(!(a.line<=a.min))return a.text=a.cm.getLine(--a.line),a.ch=a.text.length,!0}function g(a){for(;;){var b=a.text.indexOf(">",a.ch);if(b==-1){if(e(a))continue;return}{if(d(a,b+1)){var c=a.text.lastIndexOf("/",b),f=c>-1&&!/\S/.test(a.text.slice(c+1,b));return a.ch=b+1,f?"selfClose":"regular"}a.ch=b+1}}}function h(a){for(;;){var b=a.ch?a.text.lastIndexOf("<",a.ch-1):-1;if(b==-1){if(f(a))continue;return}if(d(a,b+1)){p.lastIndex=b,a.ch=b;var c=p.exec(a.text);if(c&&c.index==b)return c}else a.ch=b}}function i(a){for(;;){p.lastIndex=a.ch;var b=p.exec(a.text);if(!b){if(e(a))continue;return}{if(d(a,b.index+1))return a.ch=b.index+b[0].length,b;a.ch=b.index+1}}}function j(a){for(;;){var b=a.ch?a.text.lastIndexOf(">",a.ch-1):-1;if(b==-1){if(f(a))continue;return}{if(d(a,b+1)){var c=a.text.lastIndexOf("/",b),e=c>-1&&!/\S/.test(a.text.slice(c+1,b));return a.ch=b+1,e?"selfClose":"regular"}a.ch=b}}}function k(a,b){for(var c=[];;){var d,e=i(a),f=a.line,h=a.ch-(e?e[0].length:0);if(!e||!(d=g(a)))return;if("selfClose"!=d)if(e[1]){for(var j=c.length-1;j>=0;--j)if(c[j]==e[2]){c.length=j;break}if(j<0&&(!b||b==e[2]))return{tag:e[2],from:m(f,h),to:m(a.line,a.ch)}}else c.push(e[2])}}function l(a,b){for(var c=[];;){var d=j(a);if(!d)return;if("selfClose"!=d){var e=a.line,f=a.ch,g=h(a);if(!g)return;if(g[1])c.push(g[2]);else{for(var i=c.length-1;i>=0;--i)if(c[i]==g[2]){c.length=i;break}if(i<0&&(!b||b==g[2]))return{tag:g[2],from:m(a.line,a.ch),to:m(e,f)}}}else h(a)}}var m=a.Pos,n="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",o=n+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",p=new RegExp("<(/?)(["+n+"]["+o+"]*)","g");a.registerHelper("fold","xml",(function(a,d){for(var e=new c(a,d.line,0);;){var f=i(e);if(!f||e.line!=d.line)return;var h=g(e);if(!h)return;if(!f[1]&&"selfClose"!=h){var j=m(e.line,e.ch),l=k(e,f[2]);return l&&b(l.from,j)>0?{from:j,to:l.from}:null}}})),a.findMatchingTag=function(a,d,e){var f=new c(a,d.line,d.ch,e);if(f.text.indexOf(">")!=-1||f.text.indexOf("<")!=-1){var i=g(f),j=i&&m(f.line,f.ch),n=i&&h(f);if(i&&n&&!(b(f,d)>0)){var o={from:m(f.line,f.ch),to:j,tag:n[2]};return"selfClose"==i?{open:o,close:null,at:"open"}:n[1]?{open:l(f,n[2]),close:o,at:"close"}:(f=new c(a,j.line,j.ch,e),{open:o,close:k(f,n[2]),at:"open"})}}},a.findEnclosingTag=function(a,b,d,e){for(var f=new c(a,b.line,b.ch,d);;){var g=l(f,e);if(!g)break;var h=new c(a,b.line,b.ch,d),i=k(h,g.tag);if(i)return{open:g,close:i}}},a.scanForClosingTag=function(a,b,d,e){var f=new c(a,b.line,b.ch,e?{from:0,to:e}:null);return k(f,d)}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),"cjs"):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],(function(b){a(b,"amd")})):a(CodeMirror,"plain")})((function(a,b){function c(a,b){var c=b;return function(){0==--c&&a()}}function d(b,d){var e=a.modes[b].dependencies;if(!e)return d();for(var f=[],g=0;g<e.length;++g)a.modes.hasOwnProperty(e[g])||f.push(e[g]);if(!f.length)return d();for(var h=c(d,f.length),g=0;g<f.length;++g)a.requireMode(f[g],h)}a.modeURL||(a.modeURL="../mode/%N/%N.js");var e={};a.requireMode=function(c,f){if("string"!=typeof c&&(c=c.name),a.modes.hasOwnProperty(c))return d(c,f);if(e.hasOwnProperty(c))return e[c].push(f);var g=a.modeURL.replace(/%N/g,c);if("plain"==b){var h=document.createElement("script");h.src=g;var i=document.getElementsByTagName("script")[0],j=e[c]=[f];a.on(h,"load",(function(){d(c,(function(){for(var a=0;a<j.length;++a)j[a]()}))})),i.parentNode.insertBefore(h,i)}else"cjs"==b?(require(g),f()):"amd"==b&&requirejs([g],f)},a.autoLoadMode=function(b,c){a.modes.hasOwnProperty(c)||a.requireMode(c,(function(){b.setOption("mode",b.getOption("mode"))}))}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.multiplexingMode=function(b){function c(a,b,c,d){if("string"==typeof b){var e=a.indexOf(b,c);return d&&e>-1?e+b.length:e}var f=b.exec(c?a.slice(c):a);return f?f.index+c+(d?f[0].length:0):-1}var d=Array.prototype.slice.call(arguments,1);return{startState:function(){return{outer:a.startState(b),innerActive:null,inner:null}},copyState:function(c){return{outer:a.copyState(b,c.outer),innerActive:c.innerActive,inner:c.innerActive&&a.copyState(c.innerActive.mode,c.inner)}},token:function(e,f){if(f.innerActive){var g=f.innerActive,h=e.string;if(!g.close&&e.sol())return f.innerActive=f.inner=null,this.token(e,f);var i=g.close?c(h,g.close,e.pos,g.parseDelimiters):-1;if(i==e.pos&&!g.parseDelimiters)return e.match(g.close),f.innerActive=f.inner=null,g.delimStyle&&g.delimStyle+" "+g.delimStyle+"-close";i>-1&&(e.string=h.slice(0,i));var j=g.mode.token(e,f.inner);return i>-1&&(e.string=h),i==e.pos&&g.parseDelimiters&&(f.innerActive=f.inner=null),g.innerStyle&&(j=j?j+" "+g.innerStyle:g.innerStyle),j}for(var k=1/0,h=e.string,l=0;l<d.length;++l){var m=d[l],i=c(h,m.open,e.pos);if(i==e.pos){m.parseDelimiters||e.match(m.open),f.innerActive=m;var n=0;if(b.indent){var o=b.indent(f.outer,"");o!==a.Pass&&(n=o)}return f.inner=a.startState(m.mode,n),m.delimStyle&&m.delimStyle+" "+m.delimStyle+"-open"}i!=-1&&i<k&&(k=i)}k!=1/0&&(e.string=h.slice(0,k));var p=b.token(e,f.outer);return k!=1/0&&(e.string=h),p},indent:function(c,d){var e=c.innerActive?c.innerActive.mode:b;return e.indent?e.indent(c.innerActive?c.inner:c.outer,d):a.Pass},blankLine:function(c){var e=c.innerActive?c.innerActive.mode:b;if(e.blankLine&&e.blankLine(c.innerActive?c.inner:c.outer),c.innerActive)"\n"===c.innerActive.close&&(c.innerActive=c.inner=null);else for(var f=0;f<d.length;++f){var g=d[f];"\n"===g.open&&(c.innerActive=g,c.inner=a.startState(g.mode,e.indent?e.indent(c.outer,""):0))}},electricChars:b.electricChars,innerMode:function(a){return a.inner?{state:a.inner,mode:a.innerActive.mode}:{state:a.outer,mode:b}}}}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){function c(a){clearTimeout(d.doRedraw),d.doRedraw=setTimeout((function(){d.redraw()}),a)}this.cm=a,this.options=b,this.buttonHeight=b.scrollButtonHeight||a.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=a.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var d=this;a.on("refresh",this.resizeHandler=function(){clearTimeout(d.doUpdate),d.doUpdate=setTimeout((function(){d.computeScale()&&c(20)}),100)}),a.on("markerAdded",this.resizeHandler),a.on("markerCleared",this.resizeHandler),b.listenForChanges!==!1&&a.on("change",this.changeHandler=function(){c(250)})}a.defineExtension("annotateScrollbar",(function(a){return"string"==typeof a&&(a={className:a}),new b(this,a)})),a.defineOption("scrollButtonHeight",0),b.prototype.computeScale=function(){var a=this.cm,b=(a.getWrapperElement().clientHeight-a.display.barHeight-2*this.buttonHeight)/a.getScrollerElement().scrollHeight;if(b!=this.hScale)return this.hScale=b,!0},b.prototype.update=function(a){this.annotations=a,this.redraw()},b.prototype.redraw=function(a){function b(a,b){if(i!=a.line&&(i=a.line,j=c.getLineHandle(i)),j.widgets&&j.widgets.length||g&&j.height>h)return c.charCoords(a,"local")[b?"top":"bottom"];var d=c.heightAtLine(j,"local");return d+(b?0:j.height)}a!==!1&&this.computeScale();var c=this.cm,d=this.hScale,e=document.createDocumentFragment(),f=this.annotations,g=c.getOption("lineWrapping"),h=g&&1.5*c.defaultTextHeight(),i=null,j=null,k=c.lastLine();if(c.display.barWidth)for(var l,m=0;m<f.length;m++){var n=f[m];if(!(n.to.line>k)){for(var o=l||b(n.from,!0)*d,p=b(n.to,!1)*d;m<f.length-1&&!(f[m+1].to.line>k)&&(l=b(f[m+1].from,!0)*d,!(l>p+.9));)n=f[++m],p=b(n.to,!1)*d;if(p!=o){var q=Math.max(p-o,3),r=e.appendChild(document.createElement("div"));r.style.cssText="position: absolute; right: 0px; width: "+Math.max(c.display.barWidth-1,2)+"px; top: "+(o+this.buttonHeight)+"px; height: "+q+"px",r.className=this.options.className,n.id&&r.setAttribute("annotation-id",n.id)}}}this.div.textContent="",this.div.appendChild(e)},b.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,c,d){function e(b){var c=a.wheelEventPixels(b)["horizontal"==f.orientation?"x":"y"],d=f.pos;f.moveTo(f.pos+c),f.pos!=d&&a.e_preventDefault(b)}this.orientation=c,this.scroll=d,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=b+"-"+c,this.inner=this.node.appendChild(document.createElement("div"));var f=this;a.on(this.inner,"mousedown",(function(b){function c(){a.off(document,"mousemove",d),a.off(document,"mouseup",c)}function d(a){return 1!=a.which?c():void f.moveTo(h+(a[e]-g)*(f.total/f.size))}if(1==b.which){a.e_preventDefault(b);var e="horizontal"==f.orientation?"pageX":"pageY",g=b[e],h=f.pos;a.on(document,"mousemove",d),a.on(document,"mouseup",c)}})),a.on(this.node,"click",(function(b){a.e_preventDefault(b);var c,d=f.inner.getBoundingClientRect();c="horizontal"==f.orientation?b.clientX<d.left?-1:b.clientX>d.right?1:0:b.clientY<d.top?-1:b.clientY>d.bottom?1:0,f.moveTo(f.pos+c*f.screen)})),a.on(this.node,"mousewheel",e),a.on(this.node,"DOMMouseScroll",e)}function c(a,c,d){this.addClass=a,this.horiz=new b(a,"horizontal",d),c(this.horiz.node),this.vert=new b(a,"vertical",d),c(this.vert.node),this.width=null}b.prototype.setPos=function(a,b){return a<0&&(a=0),a>this.total-this.screen&&(a=this.total-this.screen),
!(!b&&a==this.pos)&&(this.pos=a,this.inner.style["horizontal"==this.orientation?"left":"top"]=a*(this.size/this.total)+"px",!0)},b.prototype.moveTo=function(a){this.setPos(a)&&this.scroll(a,this.orientation)};var d=10;b.prototype.update=function(a,b,c){var e=this.screen!=b||this.total!=a||this.size!=c;e&&(this.screen=b,this.total=a,this.size=c);var f=this.screen*(this.size/this.total);f<d&&(this.size-=d-f,f=d),this.inner.style["horizontal"==this.orientation?"width":"height"]=f+"px",this.setPos(this.pos,e)},c.prototype.update=function(a){if(null==this.width){var b=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;b&&(this.width=parseInt(b.height))}var c=this.width||0,d=a.scrollWidth>a.clientWidth+1,e=a.scrollHeight>a.clientHeight+1;return this.vert.node.style.display=e?"block":"none",this.horiz.node.style.display=d?"block":"none",e&&(this.vert.update(a.scrollHeight,a.clientHeight,a.viewHeight-(d?c:0)),this.vert.node.style.bottom=d?c+"px":"0"),d&&(this.horiz.update(a.scrollWidth,a.clientWidth,a.viewWidth-(e?c:0)-a.barLeft),this.horiz.node.style.right=e?c+"px":"0",this.horiz.node.style.left=a.barLeft+"px"),{right:e?c:0,bottom:d?c:0}},c.prototype.setScrollTop=function(a){this.vert.setPos(a)},c.prototype.setScrollLeft=function(a){this.horiz.setPos(a)},c.prototype.clear=function(){var a=this.horiz.node.parentNode;a.removeChild(this.horiz.node),a.removeChild(this.vert.node)},a.scrollbarModel.simple=function(a,b){return new c("CodeMirror-simplescroll",a,b)},a.scrollbarModel.overlay=function(a,b){return new c("CodeMirror-overlayscroll",a,b)}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./searchcursor"),require("../scroll/annotatescrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../scroll/annotatescrollbar"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c,d){this.cm=a,this.options=d;var e={listenForChanges:!1};for(var f in d)e[f]=d[f];e.className||(e.className="CodeMirror-search-match"),this.annotation=a.annotateScrollbar(e),this.query=b,this.caseFold=c,this.gap={from:a.firstLine(),to:a.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var g=this;a.on("change",this.changeHandler=function(a,b){g.onChange(b)})}function c(a,b,c){return a<=b?a:Math.max(b,a+c)}a.defineExtension("showMatchesOnScrollbar",(function(a,c,d){return"string"==typeof d&&(d={className:d}),d||(d={}),new b(this,a,c,d)}));var d=1e3;b.prototype.findMatches=function(){if(this.gap){for(var b=0;b<this.matches.length;b++){var c=this.matches[b];if(c.from.line>=this.gap.to)break;c.to.line>=this.gap.from&&this.matches.splice(b--,1)}for(var e=this.cm.getSearchCursor(this.query,a.Pos(this.gap.from,0),this.caseFold),f=this.options&&this.options.maxMatches||d;e.findNext();){var c={from:e.from(),to:e.to()};if(c.from.line>=this.gap.to)break;if(this.matches.splice(b++,0,c),this.matches.length>f)break}this.gap=null}},b.prototype.onChange=function(b){var d=b.from.line,e=a.changeEnd(b).line,f=e-b.to.line;if(this.gap?(this.gap.from=Math.min(c(this.gap.from,d,f),b.from.line),this.gap.to=Math.max(c(this.gap.to,d,f),b.from.line)):this.gap={from:b.from.line,to:e+1},f)for(var g=0;g<this.matches.length;g++){var h=this.matches[g],i=c(h.from.line,d,f);i!=h.from.line&&(h.from=a.Pos(i,h.from.ch));var j=c(h.to.line,d,f);j!=h.to.line&&(h.to=a.Pos(j,h.to.ch))}clearTimeout(this.update);var k=this;this.update=setTimeout((function(){k.updateAfterChange()}),250)},b.prototype.updateAfterChange=function(){this.findMatches(),this.annotation.update(this.matches)},b.prototype.clear=function(){this.cm.off("change",this.changeHandler),this.annotation.clear()}})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],a):a(CodeMirror)})((function(a){"use strict";function b(a){this.options={};for(var b in l)this.options[b]=(a&&a.hasOwnProperty(b)?a:l)[b];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function c(a){var b=a.state.matchHighlighter;(b.active||a.hasFocus())&&e(a,b)}function d(a){var b=a.state.matchHighlighter;b.active||(b.active=!0,e(a,b))}function e(a,b){clearTimeout(b.timeout),b.timeout=setTimeout((function(){h(a)}),b.options.delay)}function f(a,b,c,d){var e=a.state.matchHighlighter;if(a.addOverlay(e.overlay=k(b,c,d)),e.options.annotateScrollbar&&a.showMatchesOnScrollbar){var f=c?new RegExp("\\b"+b.replace(/[\\\[.+*?(){|^$]/g,"\\$&")+"\\b"):b;e.matchesonscroll=a.showMatchesOnScrollbar(f,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function g(a){var b=a.state.matchHighlighter;b.overlay&&(a.removeOverlay(b.overlay),b.overlay=null,b.matchesonscroll&&(b.matchesonscroll.clear(),b.matchesonscroll=null))}function h(a){a.operation((function(){var b=a.state.matchHighlighter;if(g(a),!a.somethingSelected()&&b.options.showToken){for(var c=b.options.showToken===!0?/[\w$]/:b.options.showToken,d=a.getCursor(),e=a.getLine(d.line),h=d.ch,j=h;h&&c.test(e.charAt(h-1));)--h;for(;j<e.length&&c.test(e.charAt(j));)++j;return void(h<j&&f(a,e.slice(h,j),c,b.options.style))}var k=a.getCursor("from"),l=a.getCursor("to");if(k.line==l.line&&(!b.options.wordsOnly||i(a,k,l))){var m=a.getRange(k,l);b.options.trim&&(m=m.replace(/^\s+|\s+$/g,"")),m.length>=b.options.minChars&&f(a,m,!1,b.options.style)}}))}function i(a,b,c){var d=a.getRange(b,c);if(null!==d.match(/^\w+$/)){if(b.ch>0){var e={line:b.line,ch:b.ch-1},f=a.getRange(e,b);if(null===f.match(/\W/))return!1}if(c.ch<a.getLine(b.line).length){var e={line:c.line,ch:c.ch+1},f=a.getRange(c,e);if(null===f.match(/\W/))return!1}return!0}return!1}function j(a,b){return!(a.start&&b.test(a.string.charAt(a.start-1))||a.pos!=a.string.length&&b.test(a.string.charAt(a.pos)))}function k(a,b,c){return{token:function(d){return!d.match(a)||b&&!j(d,b)?(d.next(),void(d.skipTo(a.charAt(0))||d.skipToEnd())):c}}}var l={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};a.defineOption("highlightSelectionMatches",!1,(function(e,f,i){if(i&&i!=a.Init&&(g(e),clearTimeout(e.state.matchHighlighter.timeout),e.state.matchHighlighter=null,e.off("cursorActivity",c),e.off("focus",d)),f){var j=e.state.matchHighlighter=new b(f);e.hasFocus()?(j.active=!0,h(e)):e.on("focus",d),e.on("cursorActivity",c)}}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.flags;return null!=b?b:(a.ignoreCase?"i":"")+(a.global?"g":"")+(a.multiline?"m":"")}function c(a,c){for(var d=b(a),e=d,f=0;f<c.length;f++)e.indexOf(c.charAt(f))==-1&&(e+=c.charAt(f));return d==e?a:new RegExp(a.source,e)}function d(a){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(a.source)}function e(a,b,d){b=c(b,"g");for(var e=d.line,f=d.ch,g=a.lastLine();e<=g;e++,f=0){b.lastIndex=f;var h=a.getLine(e),i=b.exec(h);if(i)return{from:p(e,i.index),to:p(e,i.index+i[0].length),match:i}}}function f(a,b,f){if(!d(b))return e(a,b,f);b=c(b,"gm");for(var g,h=1,i=f.line,j=a.lastLine();i<=j;){for(var k=0;k<h&&!(i>j);k++){var l=a.getLine(i++);g=null==g?l:g+"\n"+l}h=2*h,b.lastIndex=f.ch;var m=b.exec(g);if(m){var n=g.slice(0,m.index).split("\n"),o=m[0].split("\n"),q=f.line+n.length-1,r=n[n.length-1].length;return{from:p(q,r),to:p(q+o.length-1,1==o.length?r+o[0].length:o[o.length-1].length),match:m}}}}function g(a,b){for(var c,d=0;;){b.lastIndex=d;var e=b.exec(a);if(!e)return c;if(c=e,d=c.index+(c[0].length||1),d==a.length)return c}}function h(a,b,d){b=c(b,"g");for(var e=d.line,f=d.ch,h=a.firstLine();e>=h;e--,f=-1){var i=a.getLine(e);f>-1&&(i=i.slice(0,f));var j=g(i,b);if(j)return{from:p(e,j.index),to:p(e,j.index+j[0].length),match:j}}}function i(a,b,d){b=c(b,"gm");for(var e,f=1,h=d.line,i=a.firstLine();h>=i;){for(var j=0;j<f;j++){var k=a.getLine(h--);e=null==e?k.slice(0,d.ch):k+"\n"+e}f*=2;var l=g(e,b);if(l){var m=e.slice(0,l.index).split("\n"),n=l[0].split("\n"),o=h+m.length,q=m[m.length-1].length;return{from:p(o,q),to:p(o+n.length-1,1==n.length?q+n[0].length:n[n.length-1].length),match:l}}}}function j(a,b,c,d){if(a.length==b.length)return c;for(var e=0,f=c+Math.max(0,a.length-b.length);;){if(e==f)return e;var g=e+f>>1,h=d(a.slice(0,g)).length;if(h==c)return g;h>c?f=g:e=g+1}}function k(a,b,c,d){if(!b.length)return null;var e=d?n:o,f=e(b).split(/\r|\n\r?/);a:for(var g=c.line,h=c.ch,i=a.lastLine()+1-f.length;g<=i;g++,h=0){var k=a.getLine(g).slice(h),l=e(k);if(1==f.length){var m=l.indexOf(f[0]);if(m==-1)continue a;var c=j(k,l,m,e)+h;return{from:p(g,j(k,l,m,e)+h),to:p(g,j(k,l,m+f[0].length,e)+h)}}var q=l.length-f[0].length;if(l.slice(q)==f[0]){for(var r=1;r<f.length-1;r++)if(e(a.getLine(g+r))!=f[r])continue a;var s=a.getLine(g+f.length-1),t=e(s),u=f[f.length-1];if(t.slice(0,u.length)==u)return{from:p(g,j(k,l,q,e)+h),to:p(g+f.length-1,j(s,t,u.length,e))}}}}function l(a,b,c,d){if(!b.length)return null;var e=d?n:o,f=e(b).split(/\r|\n\r?/);a:for(var g=c.line,h=c.ch,i=a.firstLine()-1+f.length;g>=i;g--,h=-1){var k=a.getLine(g);h>-1&&(k=k.slice(0,h));var l=e(k);if(1==f.length){var m=l.lastIndexOf(f[0]);if(m==-1)continue a;return{from:p(g,j(k,l,m,e)),to:p(g,j(k,l,m+f[0].length,e))}}var q=f[f.length-1];if(l.slice(0,q.length)==q){for(var r=1,c=g-f.length+1;r<f.length-1;r++)if(e(a.getLine(c+r))!=f[r])continue a;var s=a.getLine(g+1-f.length),t=e(s);if(t.slice(t.length-f[0].length)==f[0])return{from:p(g+1-f.length,j(s,t,s.length-f[0].length,e)),to:p(g,j(k,l,q.length,e))}}}}function m(a,b,d,g){this.atOccurrence=!1,this.doc=a,d=d?a.clipPos(d):p(0,0),this.pos={from:d,to:d};var j;"object"==typeof g?j=g.caseFold:(j=g,g=null),"string"==typeof b?(null==j&&(j=!1),this.matches=function(c,d){return(c?l:k)(a,b,d,j)}):(b=c(b,"gm"),g&&g.multiline===!1?this.matches=function(c,d){return(c?h:e)(a,b,d)}:this.matches=function(c,d){return(c?i:f)(a,b,d)})}var n,o,p=a.Pos;String.prototype.normalize?(n=function(a){return a.normalize("NFD").toLowerCase()},o=function(a){return a.normalize("NFD")}):(n=function(a){return a.toLowerCase()},o=function(a){return a}),m.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(b){for(var c=this.matches(b,this.doc.clipPos(b?this.pos.from:this.pos.to));c&&0==a.cmpPos(c.from,c.to);)b?c.from.ch?c.from=p(c.from.line,c.from.ch-1):c=c.from.line==this.doc.firstLine()?null:this.matches(b,this.doc.clipPos(p(c.from.line-1))):c.to.ch<this.doc.getLine(c.to.line).length?c.to=p(c.to.line,c.to.ch+1):c=c.to.line==this.doc.lastLine()?null:this.matches(b,p(c.to.line+1,0));if(c)return this.pos=c,this.atOccurrence=!0,this.pos.match||!0;var d=p(b?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:d,to:d},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(b,c){if(this.atOccurrence){var d=a.splitLines(b);this.doc.replaceRange(d,this.pos.from,this.pos.to,c),this.pos.to=p(this.pos.from.line+d.length-1,d[d.length-1].length+(1==d.length?this.pos.from.ch:0))}}},a.defineExtension("getSearchCursor",(function(a,b,c){return new m(this.doc,a,b,c)})),a.defineDocExtension("getSearchCursor",(function(a,b,c){return new m(this,a,b,c)})),a.defineExtension("selectMatches",(function(b,c){for(var d=[],e=this.getSearchCursor(b,this.getCursor("from"),c);e.findNext()&&!(a.cmpPos(e.to(),this.getCursor("to"))>0);)d.push({anchor:e.from(),head:e.to()});d.length&&this.setSelections(d,0)}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b=0;b<a.state.activeLines.length;b++)a.removeLineClass(a.state.activeLines[b],"wrap",f),a.removeLineClass(a.state.activeLines[b],"background",g),a.removeLineClass(a.state.activeLines[b],"gutter",h)}function c(a,b){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0}function d(a,d){for(var e=[],i=0;i<d.length;i++){var j=d[i],k=a.getOption("styleActiveLine");if("object"==typeof k&&k.nonEmpty?j.anchor.line==j.head.line:j.empty()){var l=a.getLineHandleVisualStart(j.head.line);e[e.length-1]!=l&&e.push(l)}}c(a.state.activeLines,e)||a.operation((function(){b(a);for(var c=0;c<e.length;c++)a.addLineClass(e[c],"wrap",f),a.addLineClass(e[c],"background",g),a.addLineClass(e[c],"gutter",h);a.state.activeLines=e}))}function e(a,b){d(a,b.ranges)}var f="CodeMirror-activeline",g="CodeMirror-activeline-background",h="CodeMirror-activeline-gutter";a.defineOption("styleActiveLine",!1,(function(c,f,g){var h=g!=a.Init&&g;f!=h&&(h&&(c.off("beforeSelectionChange",e),b(c),delete c.state.activeLines),f&&(c.state.activeLines=[],d(c,c.listSelections()),c.on("beforeSelectionChange",e)))}))})),(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"null",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"],alias:["objective-c","objc"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]}];for(var b=0;b<a.modeInfo.length;b++){var c=a.modeInfo[b];c.mimes&&(c.mime=c.mimes[0])}a.findModeByMIME=function(b){b=b.toLowerCase();for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.mime==b)return d;if(d.mimes)for(var e=0;e<d.mimes.length;e++)if(d.mimes[e]==b)return d}return/\+xml$/.test(b)?a.findModeByMIME("application/xml"):/\+json$/.test(b)?a.findModeByMIME("application/json"):void 0},a.findModeByExtension=function(b){for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.ext)for(var e=0;e<d.ext.length;e++)if(d.ext[e]==b)return d}},a.findModeByFileName=function(b){for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.file&&d.file.test(b))return d}var e=b.lastIndexOf("."),f=e>-1&&b.substring(e+1,b.length);if(f)return a.findModeByExtension(f)},a.findModeByName=function(b){b=b.toLowerCase();for(var c=0;c<a.modeInfo.length;c++){var d=a.modeInfo[c];if(d.name.toLowerCase()==b)return d;if(d.alias)for(var e=0;e<d.alias.length;e++)if(d.alias[e].toLowerCase()==b)return d}}}));editors/codemirror/lib/addons.js000064400000317346152177723720012771 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
    if (old == CodeMirror.Init) old = false;
    if (!old == !val) return;
    if (val) setFullscreen(cm);
    else setNormal(cm);
  });

  function setFullscreen(cm) {
    var wrap = cm.getWrapperElement();
    cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
                                  width: wrap.style.width, height: wrap.style.height};
    wrap.style.width = "";
    wrap.style.height = "auto";
    wrap.className += " CodeMirror-fullscreen";
    document.documentElement.style.overflow = "hidden";
    cm.refresh();
  }

  function setNormal(cm) {
    var wrap = cm.getWrapperElement();
    wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
    document.documentElement.style.overflow = "";
    var info = cm.state.fullScreenRestore;
    wrap.style.width = info.width; wrap.style.height = info.height;
    window.scrollTo(info.scrollLeft, info.scrollTop);
    cm.refresh();
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineExtension("addPanel", function(node, options) {
    options = options || {};

    if (!this.state.panels) initPanels(this);

    var info = this.state.panels;
    var wrapper = info.wrapper;
    var cmWrapper = this.getWrapperElement();
    var replace = options.replace instanceof Panel && !options.replace.cleared;

    if (options.after instanceof Panel && !options.after.cleared) {
      wrapper.insertBefore(node, options.before.node.nextSibling);
    } else if (options.before instanceof Panel && !options.before.cleared) {
      wrapper.insertBefore(node, options.before.node);
    } else if (replace) {
      wrapper.insertBefore(node, options.replace.node);
      info.panels++;
      options.replace.clear();
    } else if (options.position == "bottom") {
      wrapper.appendChild(node);
    } else if (options.position == "before-bottom") {
      wrapper.insertBefore(node, cmWrapper.nextSibling);
    } else if (options.position == "after-top") {
      wrapper.insertBefore(node, cmWrapper);
    } else {
      wrapper.insertBefore(node, wrapper.firstChild);
    }

    var height = (options && options.height) || node.offsetHeight;
    this._setSize(null, info.heightLeft -= height);
    if (!replace) {
      info.panels++;
    }
    if (options.stable && isAtTop(this, node))
      this.scrollTo(null, this.getScrollInfo().top + height)

    return new Panel(this, node, options, height);
  });

  function Panel(cm, node, options, height) {
    this.cm = cm;
    this.node = node;
    this.options = options;
    this.height = height;
    this.cleared = false;
  }

  Panel.prototype.clear = function() {
    if (this.cleared) return;
    this.cleared = true;
    var info = this.cm.state.panels;
    this.cm._setSize(null, info.heightLeft += this.height);
    if (this.options.stable && isAtTop(this.cm, this.node))
      this.cm.scrollTo(null, this.cm.getScrollInfo().top - this.height)
    info.wrapper.removeChild(this.node);
    if (--info.panels == 0) removePanels(this.cm);
  };

  Panel.prototype.changed = function(height) {
    var newHeight = height == null ? this.node.offsetHeight : height;
    var info = this.cm.state.panels;
    this.cm._setSize(null, info.heightLeft -= (newHeight - this.height));
    this.height = newHeight;
  };

  function initPanels(cm) {
    var wrap = cm.getWrapperElement();
    var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;
    var height = parseInt(style.height);
    var info = cm.state.panels = {
      setHeight: wrap.style.height,
      heightLeft: height,
      panels: 0,
      wrapper: document.createElement("div")
    };
    wrap.parentNode.insertBefore(info.wrapper, wrap);
    var hasFocus = cm.hasFocus();
    info.wrapper.appendChild(wrap);
    if (hasFocus) cm.focus();

    cm._setSize = cm.setSize;
    if (height != null) cm.setSize = function(width, newHeight) {
      if (newHeight == null) return this._setSize(width, newHeight);
      info.setHeight = newHeight;
      if (typeof newHeight != "number") {
        var px = /^(\d+\.?\d*)px$/.exec(newHeight);
        if (px) {
          newHeight = Number(px[1]);
        } else {
          info.wrapper.style.height = newHeight;
          newHeight = info.wrapper.offsetHeight;
          info.wrapper.style.height = "";
        }
      }
      cm._setSize(width, info.heightLeft += (newHeight - height));
      height = newHeight;
    };
  }

  function removePanels(cm) {
    var info = cm.state.panels;
    cm.state.panels = null;

    var wrap = cm.getWrapperElement();
    info.wrapper.parentNode.replaceChild(wrap, info.wrapper);
    wrap.style.height = info.setHeight;
    cm.setSize = cm._setSize;
    cm.setSize();
  }

  function isAtTop(cm, dom) {
    for (var sibling = dom.nextSibling; sibling; sibling = sibling.nextSibling)
      if (sibling == cm.getWrapperElement()) return true
    return false
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  var defaults = {
    pairs: "()[]{}''\"\"",
    triples: "",
    explode: "[]{}"
  };

  var Pos = CodeMirror.Pos;

  CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.removeKeyMap(keyMap);
      cm.state.closeBrackets = null;
    }
    if (val) {
      ensureBound(getOption(val, "pairs"))
      cm.state.closeBrackets = val;
      cm.addKeyMap(keyMap);
    }
  });

  function getOption(conf, name) {
    if (name == "pairs" && typeof conf == "string") return conf;
    if (typeof conf == "object" && conf[name] != null) return conf[name];
    return defaults[name];
  }

  var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
  function ensureBound(chars) {
    for (var i = 0; i < chars.length; i++) {
      var ch = chars.charAt(i), key = "'" + ch + "'"
      if (!keyMap[key]) keyMap[key] = handler(ch)
    }
  }
  ensureBound(defaults.pairs + "`")

  function handler(ch) {
    return function(cm) { return handleChar(cm, ch); };
  }

  function getConfig(cm) {
    var deflt = cm.state.closeBrackets;
    if (!deflt || deflt.override) return deflt;
    var mode = cm.getModeAt(cm.getCursor());
    return mode.closeBrackets || deflt;
  }

  function handleBackspace(cm) {
    var conf = getConfig(cm);
    if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;

    var pairs = getOption(conf, "pairs");
    var ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var around = charsAround(cm, ranges[i].head);
      if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
    }
    for (var i = ranges.length - 1; i >= 0; i--) {
      var cur = ranges[i].head;
      cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete");
    }
  }

  function handleEnter(cm) {
    var conf = getConfig(cm);
    var explode = conf && getOption(conf, "explode");
    if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass;

    var ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var around = charsAround(cm, ranges[i].head);
      if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
    }
    cm.operation(function() {
      var linesep = cm.lineSeparator() || "\n";
      cm.replaceSelection(linesep + linesep, null);
      cm.execCommand("goCharLeft");
      ranges = cm.listSelections();
      for (var i = 0; i < ranges.length; i++) {
        var line = ranges[i].head.line;
        cm.indentLine(line, null, true);
        cm.indentLine(line + 1, null, true);
      }
    });
  }

  function contractSelection(sel) {
    var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;
    return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),
            head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};
  }

  function handleChar(cm, ch) {
    var conf = getConfig(cm);
    if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;

    var pairs = getOption(conf, "pairs");
    var pos = pairs.indexOf(ch);
    if (pos == -1) return CodeMirror.Pass;
    var triples = getOption(conf, "triples");

    var identical = pairs.charAt(pos + 1) == ch;
    var ranges = cm.listSelections();
    var opening = pos % 2 == 0;

    var type;
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i], cur = range.head, curType;
      var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));
      if (opening && !range.empty()) {
        curType = "surround";
      } else if ((identical || !opening) && next == ch) {
        if (identical && stringStartsAfter(cm, cur))
          curType = "both";
        else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)
          curType = "skipThree";
        else
          curType = "skip";
      } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
                 cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {
        if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;
        curType = "addFour";
      } else if (identical) {
        var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur)
        if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";
        else return CodeMirror.Pass;
      } else if (opening) {
        curType = "both";
      } else {
        return CodeMirror.Pass;
      }
      if (!type) type = curType;
      else if (type != curType) return CodeMirror.Pass;
    }

    var left = pos % 2 ? pairs.charAt(pos - 1) : ch;
    var right = pos % 2 ? ch : pairs.charAt(pos + 1);
    cm.operation(function() {
      if (type == "skip") {
        cm.execCommand("goCharRight");
      } else if (type == "skipThree") {
        for (var i = 0; i < 3; i++)
          cm.execCommand("goCharRight");
      } else if (type == "surround") {
        var sels = cm.getSelections();
        for (var i = 0; i < sels.length; i++)
          sels[i] = left + sels[i] + right;
        cm.replaceSelections(sels, "around");
        sels = cm.listSelections().slice();
        for (var i = 0; i < sels.length; i++)
          sels[i] = contractSelection(sels[i]);
        cm.setSelections(sels);
      } else if (type == "both") {
        cm.replaceSelection(left + right, null);
        cm.triggerElectric(left + right);
        cm.execCommand("goCharLeft");
      } else if (type == "addFour") {
        cm.replaceSelection(left + left + left + left, "before");
        cm.execCommand("goCharRight");
      }
    });
  }

  function charsAround(cm, pos) {
    var str = cm.getRange(Pos(pos.line, pos.ch - 1),
                          Pos(pos.line, pos.ch + 1));
    return str.length == 2 ? str : null;
  }

  function stringStartsAfter(cm, pos) {
    var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
    return /\bstring/.test(token.type) && token.start == pos.ch &&
      (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos)))
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Tag-closer extension for CodeMirror.
 *
 * This extension adds an "autoCloseTags" option that can be set to
 * either true to get the default behavior, or an object to further
 * configure its behavior.
 *
 * These are supported options:
 *
 * `whenClosing` (default true)
 *   Whether to autoclose when the '/' of a closing tag is typed.
 * `whenOpening` (default true)
 *   Whether to autoclose the tag when the final '>' of an opening
 *   tag is typed.
 * `dontCloseTags` (default is empty tags for HTML, none for XML)
 *   An array of tag names that should not be autoclosed.
 * `indentTags` (default is block tags for HTML, none for XML)
 *   An array of tag names that should, when opened, cause a
 *   blank line to be added inside the tag, and the blank line and
 *   closing line to be indented.
 *
 * See demos/closetag.html for a usage example.
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../fold/xml-fold"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
    if (old != CodeMirror.Init && old)
      cm.removeKeyMap("autoCloseTags");
    if (!val) return;
    var map = {name: "autoCloseTags"};
    if (typeof val != "object" || val.whenClosing)
      map["'/'"] = function(cm) { return autoCloseSlash(cm); };
    if (typeof val != "object" || val.whenOpening)
      map["'>'"] = function(cm) { return autoCloseGT(cm); };
    cm.addKeyMap(map);
  });

  var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
                       "source", "track", "wbr"];
  var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
                    "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];

  function autoCloseGT(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    var ranges = cm.listSelections(), replacements = [];
    var opt = cm.getOption("autoCloseTags");
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var pos = ranges[i].head, tok = cm.getTokenAt(pos);
      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
      if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;

      var html = inner.mode.configuration == "html";
      var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
      var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);

      var tagName = state.tagName;
      if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
      var lowerTagName = tagName.toLowerCase();
      // Don't process the '>' at the end of an end-tag or self-closing tag
      if (!tagName ||
          tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
          tok.type == "tag" && state.type == "closeTag" ||
          tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
          dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||
          closingTagExists(cm, tagName, pos, state, true))
        return CodeMirror.Pass;

      var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;
      replacements[i] = {indent: indent,
                         text: ">" + (indent ? "\n\n" : "") + "</" + tagName + ">",
                         newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
    }

    var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnAutoClose);
    for (var i = ranges.length - 1; i >= 0; i--) {
      var info = replacements[i];
      cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
      var sel = cm.listSelections().slice(0);
      sel[i] = {head: info.newPos, anchor: info.newPos};
      cm.setSelections(sel);
      if (!dontIndentOnAutoClose && info.indent) {
        cm.indentLine(info.newPos.line, null, true);
        cm.indentLine(info.newPos.line + 1, null, true);
      }
    }
  }

  function autoCloseCurrent(cm, typingSlash) {
    var ranges = cm.listSelections(), replacements = [];
    var head = typingSlash ? "/" : "</";
    var opt = cm.getOption("autoCloseTags");
    var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnSlash);
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var pos = ranges[i].head, tok = cm.getTokenAt(pos);
      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
      if (typingSlash && (tok.type == "string" || tok.string.charAt(0) != "<" ||
                          tok.start != pos.ch - 1))
        return CodeMirror.Pass;
      // Kludge to get around the fact that we are not in XML mode
      // when completing in JS/CSS snippet in htmlmixed mode. Does not
      // work for other XML embedded languages (there is no general
      // way to go from a mixed mode to its current XML state).
      var replacement;
      if (inner.mode.name != "xml") {
        if (cm.getMode().name == "htmlmixed" && inner.mode.name == "javascript")
          replacement = head + "script";
        else if (cm.getMode().name == "htmlmixed" && inner.mode.name == "css")
          replacement = head + "style";
        else
          return CodeMirror.Pass;
      } else {
        if (!state.context || !state.context.tagName ||
            closingTagExists(cm, state.context.tagName, pos, state))
          return CodeMirror.Pass;
        replacement = head + state.context.tagName;
      }
      if (cm.getLine(pos.line).charAt(tok.end) != ">") replacement += ">";
      replacements[i] = replacement;
    }
    cm.replaceSelections(replacements);
    ranges = cm.listSelections();
    if (!dontIndentOnAutoClose) {
        for (var i = 0; i < ranges.length; i++)
            if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
                cm.indentLine(ranges[i].head.line);
    }
  }

  function autoCloseSlash(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    return autoCloseCurrent(cm, true);
  }

  CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };

  function indexOf(collection, elt) {
    if (collection.indexOf) return collection.indexOf(elt);
    for (var i = 0, e = collection.length; i < e; ++i)
      if (collection[i] == elt) return i;
    return -1;
  }

  // If xml-fold is loaded, we use its functionality to try and verify
  // whether a given tag is actually unclosed.
  function closingTagExists(cm, tagName, pos, state, newTag) {
    if (!CodeMirror.scanForClosingTag) return false;
    var end = Math.min(cm.lastLine() + 1, pos.line + 500);
    var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);
    if (!nextClose || nextClose.tag != tagName) return false;
    var cx = state.context;
    // If the immediate wrapping context contains onCx instances of
    // the same tag, a closing tag only exists if there are at least
    // that many closing tags of that type following.
    for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;
    pos = nextClose.to;
    for (var i = 1; i < onCx; i++) {
      var next = CodeMirror.scanForClosingTag(cm, pos, null, end);
      if (!next || next.tag != tagName) return false;
      pos = next.to;
    }
    return true;
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
    (document.documentMode == null || document.documentMode < 8);

  var Pos = CodeMirror.Pos;

  var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};

  function findMatchingBracket(cm, where, config) {
    var line = cm.getLineHandle(where.line), pos = where.ch - 1;
    var afterCursor = config && config.afterCursor
    if (afterCursor == null)
      afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)

    // A cursor is defined as between two characters, but in in vim command mode
    // (i.e. not insert mode), the cursor is visually represented as a
    // highlighted box on top of the 2nd character. Otherwise, we allow matches
    // from before or after the cursor.
    var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
        matching[line.text.charAt(++pos)];
    if (!match) return null;
    var dir = match.charAt(1) == ">" ? 1 : -1;
    if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
    var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));

    var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
    if (found == null) return null;
    return {from: Pos(where.line, pos), to: found && found.pos,
            match: found && found.ch == match.charAt(0), forward: dir > 0};
  }

  // bracketRegex is used to specify which type of bracket to scan
  // should be a regexp, e.g. /[[\]]/
  //
  // Note: If "where" is on an open bracket, then this bracket is ignored.
  //
  // Returns false when no bracket was found, null when it reached
  // maxScanLines and gave up
  function scanForBracket(cm, where, dir, style, config) {
    var maxScanLen = (config && config.maxScanLineLength) || 10000;
    var maxScanLines = (config && config.maxScanLines) || 1000;

    var stack = [];
    var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
    var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
                          : Math.max(cm.firstLine() - 1, where.line - maxScanLines);
    for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
      var line = cm.getLine(lineNo);
      if (!line) continue;
      var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
      if (line.length > maxScanLen) continue;
      if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
      for (; pos != end; pos += dir) {
        var ch = line.charAt(pos);
        if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
          var match = matching[ch];
          if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
          else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
          else stack.pop();
        }
      }
    }
    return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
  }

  function matchBrackets(cm, autoclear, config) {
    // Disable brace matching in long lines, since it'll cause hugely slow updates
    var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
    var marks = [], ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
      if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
        var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
        marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
        if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
          marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
      }
    }

    if (marks.length) {
      // Kludge to work around the IE bug from issue #1193, where text
      // input stops going to the textare whever this fires.
      if (ie_lt8 && cm.state.focused) cm.focus();

      var clear = function() {
        cm.operation(function() {
          for (var i = 0; i < marks.length; i++) marks[i].clear();
        });
      };
      if (autoclear) setTimeout(clear, 800);
      else return clear;
    }
  }

  function doMatchBrackets(cm) {
    cm.operation(function() {
      if (cm.state.matchBrackets.currentlyHighlighted) {
        cm.state.matchBrackets.currentlyHighlighted();
        cm.state.matchBrackets.currentlyHighlighted = null;
      }
      cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
    });
  }

  CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.off("cursorActivity", doMatchBrackets);
      if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {
        cm.state.matchBrackets.currentlyHighlighted();
        cm.state.matchBrackets.currentlyHighlighted = null;
      }
    }
    if (val) {
      cm.state.matchBrackets = typeof val == "object" ? val : {};
      cm.on("cursorActivity", doMatchBrackets);
    }
  });

  CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
  CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
    // Backwards-compatibility kludge
    if (oldConfig || typeof config == "boolean") {
      if (!oldConfig) {
        config = config ? {strict: true} : null
      } else {
        oldConfig.strict = config
        config = oldConfig
      }
    }
    return findMatchingBracket(this, pos, config)
  });
  CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
    return scanForBracket(this, pos, dir, style, config);
  });
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../fold/xml-fold"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.off("cursorActivity", doMatchTags);
      cm.off("viewportChange", maybeUpdateMatch);
      clear(cm);
    }
    if (val) {
      cm.state.matchBothTags = typeof val == "object" && val.bothTags;
      cm.on("cursorActivity", doMatchTags);
      cm.on("viewportChange", maybeUpdateMatch);
      doMatchTags(cm);
    }
  });

  function clear(cm) {
    if (cm.state.tagHit) cm.state.tagHit.clear();
    if (cm.state.tagOther) cm.state.tagOther.clear();
    cm.state.tagHit = cm.state.tagOther = null;
  }

  function doMatchTags(cm) {
    cm.state.failedTagMatch = false;
    cm.operation(function() {
      clear(cm);
      if (cm.somethingSelected()) return;
      var cur = cm.getCursor(), range = cm.getViewport();
      range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
      var match = CodeMirror.findMatchingTag(cm, cur, range);
      if (!match) return;
      if (cm.state.matchBothTags) {
        var hit = match.at == "open" ? match.open : match.close;
        if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
      }
      var other = match.at == "close" ? match.open : match.close;
      if (other)
        cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
      else
        cm.state.failedTagMatch = true;
    });
  }

  function maybeUpdateMatch(cm) {
    if (cm.state.failedTagMatch) doMatchTags(cm);
  }

  CodeMirror.commands.toMatchingTag = function(cm) {
    var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
    if (found) {
      var other = found.at == "close" ? found.open : found.close;
      if (other) cm.extendSelection(other.to, other.from);
    }
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("fold", "brace", function(cm, start) {
  var line = start.line, lineText = cm.getLine(line);
  var tokenType;

  function findOpening(openCh) {
    for (var at = start.ch, pass = 0;;) {
      var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);
      if (found == -1) {
        if (pass == 1) break;
        pass = 1;
        at = lineText.length;
        continue;
      }
      if (pass == 1 && found < start.ch) break;
      tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));
      if (!/^(comment|string)/.test(tokenType)) return found + 1;
      at = found - 1;
    }
  }

  var startToken = "{", endToken = "}", startCh = findOpening("{");
  if (startCh == null) {
    startToken = "[", endToken = "]";
    startCh = findOpening("[");
  }

  if (startCh == null) return;
  var count = 1, lastLine = cm.lastLine(), end, endCh;
  outer: for (var i = line; i <= lastLine; ++i) {
    var text = cm.getLine(i), pos = i == line ? startCh : 0;
    for (;;) {
      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
      if (nextOpen < 0) nextOpen = text.length;
      if (nextClose < 0) nextClose = text.length;
      pos = Math.min(nextOpen, nextClose);
      if (pos == text.length) break;
      if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {
        if (pos == nextOpen) ++count;
        else if (!--count) { end = i; endCh = pos; break outer; }
      }
      ++pos;
    }
  }
  if (end == null || line == end && endCh == startCh) return;
  return {from: CodeMirror.Pos(line, startCh),
          to: CodeMirror.Pos(end, endCh)};
});

CodeMirror.registerHelper("fold", "import", function(cm, start) {
  function hasImport(line) {
    if (line < cm.firstLine() || line > cm.lastLine()) return null;
    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
    if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
    if (start.type != "keyword" || start.string != "import") return null;
    // Now find closing semicolon, return its position
    for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {
      var text = cm.getLine(i), semi = text.indexOf(";");
      if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};
    }
  }

  var startLine = start.line, has = hasImport(startLine), prev;
  if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))
    return null;
  for (var end = has.end;;) {
    var next = hasImport(end.line + 1);
    if (next == null) break;
    end = next.end;
  }
  return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};
});

CodeMirror.registerHelper("fold", "include", function(cm, start) {
  function hasInclude(line) {
    if (line < cm.firstLine() || line > cm.lastLine()) return null;
    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
    if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
    if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8;
  }

  var startLine = start.line, has = hasInclude(startLine);
  if (has == null || hasInclude(startLine - 1) != null) return null;
  for (var end = startLine;;) {
    var next = hasInclude(end + 1);
    if (next == null) break;
    ++end;
  }
  return {from: CodeMirror.Pos(startLine, has + 1),
          to: cm.clipPos(CodeMirror.Pos(end))};
});

});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function doFold(cm, pos, options, force) {
    if (options && options.call) {
      var finder = options;
      options = null;
    } else {
      var finder = getOption(cm, options, "rangeFinder");
    }
    if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
    var minSize = getOption(cm, options, "minFoldSize");

    function getRange(allowFolded) {
      var range = finder(cm, pos);
      if (!range || range.to.line - range.from.line < minSize) return null;
      var marks = cm.findMarksAt(range.from);
      for (var i = 0; i < marks.length; ++i) {
        if (marks[i].__isFold && force !== "fold") {
          if (!allowFolded) return null;
          range.cleared = true;
          marks[i].clear();
        }
      }
      return range;
    }

    var range = getRange(true);
    if (getOption(cm, options, "scanUp")) while (!range && pos.line > cm.firstLine()) {
      pos = CodeMirror.Pos(pos.line - 1, 0);
      range = getRange(false);
    }
    if (!range || range.cleared || force === "unfold") return;

    var myWidget = makeWidget(cm, options);
    CodeMirror.on(myWidget, "mousedown", function(e) {
      myRange.clear();
      CodeMirror.e_preventDefault(e);
    });
    var myRange = cm.markText(range.from, range.to, {
      replacedWith: myWidget,
      clearOnEnter: getOption(cm, options, "clearOnEnter"),
      __isFold: true
    });
    myRange.on("clear", function(from, to) {
      CodeMirror.signal(cm, "unfold", cm, from, to);
    });
    CodeMirror.signal(cm, "fold", cm, range.from, range.to);
  }

  function makeWidget(cm, options) {
    var widget = getOption(cm, options, "widget");
    if (typeof widget == "string") {
      var text = document.createTextNode(widget);
      widget = document.createElement("span");
      widget.appendChild(text);
      widget.className = "CodeMirror-foldmarker";
    } else if (widget) {
      widget = widget.cloneNode(true)
    }
    return widget;
  }

  // Clumsy backwards-compatible interface
  CodeMirror.newFoldFunction = function(rangeFinder, widget) {
    return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };
  };

  // New-style interface
  CodeMirror.defineExtension("foldCode", function(pos, options, force) {
    doFold(this, pos, options, force);
  });

  CodeMirror.defineExtension("isFolded", function(pos) {
    var marks = this.findMarksAt(pos);
    for (var i = 0; i < marks.length; ++i)
      if (marks[i].__isFold) return true;
  });

  CodeMirror.commands.toggleFold = function(cm) {
    cm.foldCode(cm.getCursor());
  };
  CodeMirror.commands.fold = function(cm) {
    cm.foldCode(cm.getCursor(), null, "fold");
  };
  CodeMirror.commands.unfold = function(cm) {
    cm.foldCode(cm.getCursor(), null, "unfold");
  };
  CodeMirror.commands.foldAll = function(cm) {
    cm.operation(function() {
      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
        cm.foldCode(CodeMirror.Pos(i, 0), null, "fold");
    });
  };
  CodeMirror.commands.unfoldAll = function(cm) {
    cm.operation(function() {
      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
        cm.foldCode(CodeMirror.Pos(i, 0), null, "unfold");
    });
  };

  CodeMirror.registerHelper("fold", "combine", function() {
    var funcs = Array.prototype.slice.call(arguments, 0);
    return function(cm, start) {
      for (var i = 0; i < funcs.length; ++i) {
        var found = funcs[i](cm, start);
        if (found) return found;
      }
    };
  });

  CodeMirror.registerHelper("fold", "auto", function(cm, start) {
    var helpers = cm.getHelpers(start, "fold");
    for (var i = 0; i < helpers.length; i++) {
      var cur = helpers[i](cm, start);
      if (cur) return cur;
    }
  });

  var defaultOptions = {
    rangeFinder: CodeMirror.fold.auto,
    widget: "\u2194",
    minFoldSize: 0,
    scanUp: false,
    clearOnEnter: true
  };

  CodeMirror.defineOption("foldOptions", null);

  function getOption(cm, options, name) {
    if (options && options[name] !== undefined)
      return options[name];
    var editorOptions = cm.options.foldOptions;
    if (editorOptions && editorOptions[name] !== undefined)
      return editorOptions[name];
    return defaultOptions[name];
  }

  CodeMirror.defineExtension("foldOption", function(options, name) {
    return getOption(this, options, name);
  });
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./foldcode"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./foldcode"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("foldGutter", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.clearGutter(cm.state.foldGutter.options.gutter);
      cm.state.foldGutter = null;
      cm.off("gutterClick", onGutterClick);
      cm.off("change", onChange);
      cm.off("viewportChange", onViewportChange);
      cm.off("fold", onFold);
      cm.off("unfold", onFold);
      cm.off("swapDoc", onChange);
    }
    if (val) {
      cm.state.foldGutter = new State(parseOptions(val));
      updateInViewport(cm);
      cm.on("gutterClick", onGutterClick);
      cm.on("change", onChange);
      cm.on("viewportChange", onViewportChange);
      cm.on("fold", onFold);
      cm.on("unfold", onFold);
      cm.on("swapDoc", onChange);
    }
  });

  var Pos = CodeMirror.Pos;

  function State(options) {
    this.options = options;
    this.from = this.to = 0;
  }

  function parseOptions(opts) {
    if (opts === true) opts = {};
    if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter";
    if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open";
    if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded";
    return opts;
  }

  function isFolded(cm, line) {
    var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));
    for (var i = 0; i < marks.length; ++i)
      if (marks[i].__isFold && marks[i].find().from.line == line) return marks[i];
  }

  function marker(spec) {
    if (typeof spec == "string") {
      var elt = document.createElement("div");
      elt.className = spec + " CodeMirror-guttermarker-subtle";
      return elt;
    } else {
      return spec.cloneNode(true);
    }
  }

  function updateFoldInfo(cm, from, to) {
    var opts = cm.state.foldGutter.options, cur = from;
    var minSize = cm.foldOption(opts, "minFoldSize");
    var func = cm.foldOption(opts, "rangeFinder");
    cm.eachLine(from, to, function(line) {
      var mark = null;
      if (isFolded(cm, cur)) {
        mark = marker(opts.indicatorFolded);
      } else {
        var pos = Pos(cur, 0);
        var range = func && func(cm, pos);
        if (range && range.to.line - range.from.line >= minSize)
          mark = marker(opts.indicatorOpen);
      }
      cm.setGutterMarker(line, opts.gutter, mark);
      ++cur;
    });
  }

  function updateInViewport(cm) {
    var vp = cm.getViewport(), state = cm.state.foldGutter;
    if (!state) return;
    cm.operation(function() {
      updateFoldInfo(cm, vp.from, vp.to);
    });
    state.from = vp.from; state.to = vp.to;
  }

  function onGutterClick(cm, line, gutter) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    if (gutter != opts.gutter) return;
    var folded = isFolded(cm, line);
    if (folded) folded.clear();
    else cm.foldCode(Pos(line, 0), opts.rangeFinder);
  }

  function onChange(cm) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    state.from = state.to = 0;
    clearTimeout(state.changeUpdate);
    state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);
  }

  function onViewportChange(cm) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    clearTimeout(state.changeUpdate);
    state.changeUpdate = setTimeout(function() {
      var vp = cm.getViewport();
      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
        updateInViewport(cm);
      } else {
        cm.operation(function() {
          if (vp.from < state.from) {
            updateFoldInfo(cm, vp.from, state.from);
            state.from = vp.from;
          }
          if (vp.to > state.to) {
            updateFoldInfo(cm, state.to, vp.to);
            state.to = vp.to;
          }
        });
      }
    }, opts.updateViewportTimeSpan || 400);
  }

  function onFold(cm, from) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var line = from.line;
    if (line >= state.from && line < state.to)
      updateFoldInfo(cm, line, line + 1);
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var Pos = CodeMirror.Pos;
  function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }

  var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
  var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
  var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g");

  function Iter(cm, line, ch, range) {
    this.line = line; this.ch = ch;
    this.cm = cm; this.text = cm.getLine(line);
    this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine();
    this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine();
  }

  function tagAt(iter, ch) {
    var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));
    return type && /\btag\b/.test(type);
  }

  function nextLine(iter) {
    if (iter.line >= iter.max) return;
    iter.ch = 0;
    iter.text = iter.cm.getLine(++iter.line);
    return true;
  }
  function prevLine(iter) {
    if (iter.line <= iter.min) return;
    iter.text = iter.cm.getLine(--iter.line);
    iter.ch = iter.text.length;
    return true;
  }

  function toTagEnd(iter) {
    for (;;) {
      var gt = iter.text.indexOf(">", iter.ch);
      if (gt == -1) { if (nextLine(iter)) continue; else return; }
      if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }
      var lastSlash = iter.text.lastIndexOf("/", gt);
      var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
      iter.ch = gt + 1;
      return selfClose ? "selfClose" : "regular";
    }
  }
  function toTagStart(iter) {
    for (;;) {
      var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1;
      if (lt == -1) { if (prevLine(iter)) continue; else return; }
      if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }
      xmlTagStart.lastIndex = lt;
      iter.ch = lt;
      var match = xmlTagStart.exec(iter.text);
      if (match && match.index == lt) return match;
    }
  }

  function toNextTag(iter) {
    for (;;) {
      xmlTagStart.lastIndex = iter.ch;
      var found = xmlTagStart.exec(iter.text);
      if (!found) { if (nextLine(iter)) continue; else return; }
      if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }
      iter.ch = found.index + found[0].length;
      return found;
    }
  }
  function toPrevTag(iter) {
    for (;;) {
      var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1;
      if (gt == -1) { if (prevLine(iter)) continue; else return; }
      if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }
      var lastSlash = iter.text.lastIndexOf("/", gt);
      var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
      iter.ch = gt + 1;
      return selfClose ? "selfClose" : "regular";
    }
  }

  function findMatchingClose(iter, tag) {
    var stack = [];
    for (;;) {
      var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);
      if (!next || !(end = toTagEnd(iter))) return;
      if (end == "selfClose") continue;
      if (next[1]) { // closing tag
        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {
          stack.length = i;
          break;
        }
        if (i < 0 && (!tag || tag == next[2])) return {
          tag: next[2],
          from: Pos(startLine, startCh),
          to: Pos(iter.line, iter.ch)
        };
      } else { // opening tag
        stack.push(next[2]);
      }
    }
  }
  function findMatchingOpen(iter, tag) {
    var stack = [];
    for (;;) {
      var prev = toPrevTag(iter);
      if (!prev) return;
      if (prev == "selfClose") { toTagStart(iter); continue; }
      var endLine = iter.line, endCh = iter.ch;
      var start = toTagStart(iter);
      if (!start) return;
      if (start[1]) { // closing tag
        stack.push(start[2]);
      } else { // opening tag
        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {
          stack.length = i;
          break;
        }
        if (i < 0 && (!tag || tag == start[2])) return {
          tag: start[2],
          from: Pos(iter.line, iter.ch),
          to: Pos(endLine, endCh)
        };
      }
    }
  }

  CodeMirror.registerHelper("fold", "xml", function(cm, start) {
    var iter = new Iter(cm, start.line, 0);
    for (;;) {
      var openTag = toNextTag(iter)
      if (!openTag || iter.line != start.line) return
      var end = toTagEnd(iter)
      if (!end) return
      if (!openTag[1] && end != "selfClose") {
        var startPos = Pos(iter.line, iter.ch);
        var endPos = findMatchingClose(iter, openTag[2]);
        return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null
      }
    }
  });
  CodeMirror.findMatchingTag = function(cm, pos, range) {
    var iter = new Iter(cm, pos.line, pos.ch, range);
    if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return;
    var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);
    var start = end && toTagStart(iter);
    if (!end || !start || cmp(iter, pos) > 0) return;
    var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};
    if (end == "selfClose") return {open: here, close: null, at: "open"};

    if (start[1]) { // closing tag
      return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"};
    } else { // opening tag
      iter = new Iter(cm, to.line, to.ch, range);
      return {open: here, close: findMatchingClose(iter, start[2]), at: "open"};
    }
  };

  CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {
    var iter = new Iter(cm, pos.line, pos.ch, range);
    for (;;) {
      var open = findMatchingOpen(iter, tag);
      if (!open) break;
      var forward = new Iter(cm, pos.line, pos.ch, range);
      var close = findMatchingClose(forward, open.tag);
      if (close) return {open: open, close: close};
    }
  };

  // Used by addon/edit/closetag.js
  CodeMirror.scanForClosingTag = function(cm, pos, name, end) {
    var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);
    return findMatchingClose(iter, name);
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), "cjs");
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
  else // Plain browser env
    mod(CodeMirror, "plain");
})(function(CodeMirror, env) {
  if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";

  var loading = {};
  function splitCallback(cont, n) {
    var countDown = n;
    return function() { if (--countDown == 0) cont(); };
  }
  function ensureDeps(mode, cont) {
    var deps = CodeMirror.modes[mode].dependencies;
    if (!deps) return cont();
    var missing = [];
    for (var i = 0; i < deps.length; ++i) {
      if (!CodeMirror.modes.hasOwnProperty(deps[i]))
        missing.push(deps[i]);
    }
    if (!missing.length) return cont();
    var split = splitCallback(cont, missing.length);
    for (var i = 0; i < missing.length; ++i)
      CodeMirror.requireMode(missing[i], split);
  }

  CodeMirror.requireMode = function(mode, cont) {
    if (typeof mode != "string") mode = mode.name;
    if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);
    if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);

    var file = CodeMirror.modeURL.replace(/%N/g, mode);
    if (env == "plain") {
      var script = document.createElement("script");
      script.src = file;
      var others = document.getElementsByTagName("script")[0];
      var list = loading[mode] = [cont];
      CodeMirror.on(script, "load", function() {
        ensureDeps(mode, function() {
          for (var i = 0; i < list.length; ++i) list[i]();
        });
      });
      others.parentNode.insertBefore(script, others);
    } else if (env == "cjs") {
      require(file);
      cont();
    } else if (env == "amd") {
      requirejs([file], cont);
    }
  };

  CodeMirror.autoLoadMode = function(instance, mode) {
    if (!CodeMirror.modes.hasOwnProperty(mode))
      CodeMirror.requireMode(mode, function() {
        instance.setOption("mode", instance.getOption("mode"));
      });
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.multiplexingMode = function(outer /*, others */) {
  // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects
  var others = Array.prototype.slice.call(arguments, 1);

  function indexOf(string, pattern, from, returnEnd) {
    if (typeof pattern == "string") {
      var found = string.indexOf(pattern, from);
      return returnEnd && found > -1 ? found + pattern.length : found;
    }
    var m = pattern.exec(from ? string.slice(from) : string);
    return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
  }

  return {
    startState: function() {
      return {
        outer: CodeMirror.startState(outer),
        innerActive: null,
        inner: null
      };
    },

    copyState: function(state) {
      return {
        outer: CodeMirror.copyState(outer, state.outer),
        innerActive: state.innerActive,
        inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)
      };
    },

    token: function(stream, state) {
      if (!state.innerActive) {
        var cutOff = Infinity, oldContent = stream.string;
        for (var i = 0; i < others.length; ++i) {
          var other = others[i];
          var found = indexOf(oldContent, other.open, stream.pos);
          if (found == stream.pos) {
            if (!other.parseDelimiters) stream.match(other.open);
            state.innerActive = other;

            // Get the outer indent, making sure to handle CodeMirror.Pass
            var outerIndent = 0;
            if (outer.indent) {
              var possibleOuterIndent = outer.indent(state.outer, "");
              if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;
            }

            state.inner = CodeMirror.startState(other.mode, outerIndent);
            return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
          } else if (found != -1 && found < cutOff) {
            cutOff = found;
          }
        }
        if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
        var outerToken = outer.token(stream, state.outer);
        if (cutOff != Infinity) stream.string = oldContent;
        return outerToken;
      } else {
        var curInner = state.innerActive, oldContent = stream.string;
        if (!curInner.close && stream.sol()) {
          state.innerActive = state.inner = null;
          return this.token(stream, state);
        }
        var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;
        if (found == stream.pos && !curInner.parseDelimiters) {
          stream.match(curInner.close);
          state.innerActive = state.inner = null;
          return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
        }
        if (found > -1) stream.string = oldContent.slice(0, found);
        var innerToken = curInner.mode.token(stream, state.inner);
        if (found > -1) stream.string = oldContent;

        if (found == stream.pos && curInner.parseDelimiters)
          state.innerActive = state.inner = null;

        if (curInner.innerStyle) {
          if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
          else innerToken = curInner.innerStyle;
        }

        return innerToken;
      }
    },

    indent: function(state, textAfter) {
      var mode = state.innerActive ? state.innerActive.mode : outer;
      if (!mode.indent) return CodeMirror.Pass;
      return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);
    },

    blankLine: function(state) {
      var mode = state.innerActive ? state.innerActive.mode : outer;
      if (mode.blankLine) {
        mode.blankLine(state.innerActive ? state.inner : state.outer);
      }
      if (!state.innerActive) {
        for (var i = 0; i < others.length; ++i) {
          var other = others[i];
          if (other.open === "\n") {
            state.innerActive = other;
            state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "") : 0);
          }
        }
      } else if (state.innerActive.close === "\n") {
        state.innerActive = state.inner = null;
      }
    },

    electricChars: outer.electricChars,

    innerMode: function(state) {
      return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
    }
  };
};

});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineExtension("annotateScrollbar", function(options) {
    if (typeof options == "string") options = {className: options};
    return new Annotation(this, options);
  });

  CodeMirror.defineOption("scrollButtonHeight", 0);

  function Annotation(cm, options) {
    this.cm = cm;
    this.options = options;
    this.buttonHeight = options.scrollButtonHeight || cm.getOption("scrollButtonHeight");
    this.annotations = [];
    this.doRedraw = this.doUpdate = null;
    this.div = cm.getWrapperElement().appendChild(document.createElement("div"));
    this.div.style.cssText = "position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none";
    this.computeScale();

    function scheduleRedraw(delay) {
      clearTimeout(self.doRedraw);
      self.doRedraw = setTimeout(function() { self.redraw(); }, delay);
    }

    var self = this;
    cm.on("refresh", this.resizeHandler = function() {
      clearTimeout(self.doUpdate);
      self.doUpdate = setTimeout(function() {
        if (self.computeScale()) scheduleRedraw(20);
      }, 100);
    });
    cm.on("markerAdded", this.resizeHandler);
    cm.on("markerCleared", this.resizeHandler);
    if (options.listenForChanges !== false)
      cm.on("change", this.changeHandler = function() {
        scheduleRedraw(250);
      });
  }

  Annotation.prototype.computeScale = function() {
    var cm = this.cm;
    var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /
      cm.getScrollerElement().scrollHeight
    if (hScale != this.hScale) {
      this.hScale = hScale;
      return true;
    }
  };

  Annotation.prototype.update = function(annotations) {
    this.annotations = annotations;
    this.redraw();
  };

  Annotation.prototype.redraw = function(compute) {
    if (compute !== false) this.computeScale();
    var cm = this.cm, hScale = this.hScale;

    var frag = document.createDocumentFragment(), anns = this.annotations;

    var wrapping = cm.getOption("lineWrapping");
    var singleLineH = wrapping && cm.defaultTextHeight() * 1.5;
    var curLine = null, curLineObj = null;
    function getY(pos, top) {
      if (curLine != pos.line) {
        curLine = pos.line;
        curLineObj = cm.getLineHandle(curLine);
      }
      if ((curLineObj.widgets && curLineObj.widgets.length) ||
          (wrapping && curLineObj.height > singleLineH))
        return cm.charCoords(pos, "local")[top ? "top" : "bottom"];
      var topY = cm.heightAtLine(curLineObj, "local");
      return topY + (top ? 0 : curLineObj.height);
    }

    var lastLine = cm.lastLine()
    if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {
      var ann = anns[i];
      if (ann.to.line > lastLine) continue;
      var top = nextTop || getY(ann.from, true) * hScale;
      var bottom = getY(ann.to, false) * hScale;
      while (i < anns.length - 1) {
        if (anns[i + 1].to.line > lastLine) break;
        nextTop = getY(anns[i + 1].from, true) * hScale;
        if (nextTop > bottom + .9) break;
        ann = anns[++i];
        bottom = getY(ann.to, false) * hScale;
      }
      if (bottom == top) continue;
      var height = Math.max(bottom - top, 3);

      var elt = frag.appendChild(document.createElement("div"));
      elt.style.cssText = "position: absolute; right: 0px; width: " + Math.max(cm.display.barWidth - 1, 2) + "px; top: "
        + (top + this.buttonHeight) + "px; height: " + height + "px";
      elt.className = this.options.className;
      if (ann.id) {
        elt.setAttribute("annotation-id", ann.id);
      }
    }
    this.div.textContent = "";
    this.div.appendChild(frag);
  };

  Annotation.prototype.clear = function() {
    this.cm.off("refresh", this.resizeHandler);
    this.cm.off("markerAdded", this.resizeHandler);
    this.cm.off("markerCleared", this.resizeHandler);
    if (this.changeHandler) this.cm.off("change", this.changeHandler);
    this.div.parentNode.removeChild(this.div);
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function Bar(cls, orientation, scroll) {
    this.orientation = orientation;
    this.scroll = scroll;
    this.screen = this.total = this.size = 1;
    this.pos = 0;

    this.node = document.createElement("div");
    this.node.className = cls + "-" + orientation;
    this.inner = this.node.appendChild(document.createElement("div"));

    var self = this;
    CodeMirror.on(this.inner, "mousedown", function(e) {
      if (e.which != 1) return;
      CodeMirror.e_preventDefault(e);
      var axis = self.orientation == "horizontal" ? "pageX" : "pageY";
      var start = e[axis], startpos = self.pos;
      function done() {
        CodeMirror.off(document, "mousemove", move);
        CodeMirror.off(document, "mouseup", done);
      }
      function move(e) {
        if (e.which != 1) return done();
        self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));
      }
      CodeMirror.on(document, "mousemove", move);
      CodeMirror.on(document, "mouseup", done);
    });

    CodeMirror.on(this.node, "click", function(e) {
      CodeMirror.e_preventDefault(e);
      var innerBox = self.inner.getBoundingClientRect(), where;
      if (self.orientation == "horizontal")
        where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;
      else
        where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;
      self.moveTo(self.pos + where * self.screen);
    });

    function onWheel(e) {
      var moved = CodeMirror.wheelEventPixels(e)[self.orientation == "horizontal" ? "x" : "y"];
      var oldPos = self.pos;
      self.moveTo(self.pos + moved);
      if (self.pos != oldPos) CodeMirror.e_preventDefault(e);
    }
    CodeMirror.on(this.node, "mousewheel", onWheel);
    CodeMirror.on(this.node, "DOMMouseScroll", onWheel);
  }

  Bar.prototype.setPos = function(pos, force) {
    if (pos < 0) pos = 0;
    if (pos > this.total - this.screen) pos = this.total - this.screen;
    if (!force && pos == this.pos) return false;
    this.pos = pos;
    this.inner.style[this.orientation == "horizontal" ? "left" : "top"] =
      (pos * (this.size / this.total)) + "px";
    return true
  };

  Bar.prototype.moveTo = function(pos) {
    if (this.setPos(pos)) this.scroll(pos, this.orientation);
  }

  var minButtonSize = 10;

  Bar.prototype.update = function(scrollSize, clientSize, barSize) {
    var sizeChanged = this.screen != clientSize || this.total != scrollSize || this.size != barSize
    if (sizeChanged) {
      this.screen = clientSize;
      this.total = scrollSize;
      this.size = barSize;
    }

    var buttonSize = this.screen * (this.size / this.total);
    if (buttonSize < minButtonSize) {
      this.size -= minButtonSize - buttonSize;
      buttonSize = minButtonSize;
    }
    this.inner.style[this.orientation == "horizontal" ? "width" : "height"] =
      buttonSize + "px";
    this.setPos(this.pos, sizeChanged);
  };

  function SimpleScrollbars(cls, place, scroll) {
    this.addClass = cls;
    this.horiz = new Bar(cls, "horizontal", scroll);
    place(this.horiz.node);
    this.vert = new Bar(cls, "vertical", scroll);
    place(this.vert.node);
    this.width = null;
  }

  SimpleScrollbars.prototype.update = function(measure) {
    if (this.width == null) {
      var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;
      if (style) this.width = parseInt(style.height);
    }
    var width = this.width || 0;

    var needsH = measure.scrollWidth > measure.clientWidth + 1;
    var needsV = measure.scrollHeight > measure.clientHeight + 1;
    this.vert.node.style.display = needsV ? "block" : "none";
    this.horiz.node.style.display = needsH ? "block" : "none";

    if (needsV) {
      this.vert.update(measure.scrollHeight, measure.clientHeight,
                       measure.viewHeight - (needsH ? width : 0));
      this.vert.node.style.bottom = needsH ? width + "px" : "0";
    }
    if (needsH) {
      this.horiz.update(measure.scrollWidth, measure.clientWidth,
                        measure.viewWidth - (needsV ? width : 0) - measure.barLeft);
      this.horiz.node.style.right = needsV ? width + "px" : "0";
      this.horiz.node.style.left = measure.barLeft + "px";
    }

    return {right: needsV ? width : 0, bottom: needsH ? width : 0};
  };

  SimpleScrollbars.prototype.setScrollTop = function(pos) {
    this.vert.setPos(pos);
  };

  SimpleScrollbars.prototype.setScrollLeft = function(pos) {
    this.horiz.setPos(pos);
  };

  SimpleScrollbars.prototype.clear = function() {
    var parent = this.horiz.node.parentNode;
    parent.removeChild(this.horiz.node);
    parent.removeChild(this.vert.node);
  };

  CodeMirror.scrollbarModel.simple = function(place, scroll) {
    return new SimpleScrollbars("CodeMirror-simplescroll", place, scroll);
  };
  CodeMirror.scrollbarModel.overlay = function(place, scroll) {
    return new SimpleScrollbars("CodeMirror-overlayscroll", place, scroll);
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./searchcursor"), require("../scroll/annotatescrollbar"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./searchcursor", "../scroll/annotatescrollbar"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineExtension("showMatchesOnScrollbar", function(query, caseFold, options) {
    if (typeof options == "string") options = {className: options};
    if (!options) options = {};
    return new SearchAnnotation(this, query, caseFold, options);
  });

  function SearchAnnotation(cm, query, caseFold, options) {
    this.cm = cm;
    this.options = options;
    var annotateOptions = {listenForChanges: false};
    for (var prop in options) annotateOptions[prop] = options[prop];
    if (!annotateOptions.className) annotateOptions.className = "CodeMirror-search-match";
    this.annotation = cm.annotateScrollbar(annotateOptions);
    this.query = query;
    this.caseFold = caseFold;
    this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};
    this.matches = [];
    this.update = null;

    this.findMatches();
    this.annotation.update(this.matches);

    var self = this;
    cm.on("change", this.changeHandler = function(_cm, change) { self.onChange(change); });
  }

  var MAX_MATCHES = 1000;

  SearchAnnotation.prototype.findMatches = function() {
    if (!this.gap) return;
    for (var i = 0; i < this.matches.length; i++) {
      var match = this.matches[i];
      if (match.from.line >= this.gap.to) break;
      if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);
    }
    var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), this.caseFold);
    var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES;
    while (cursor.findNext()) {
      var match = {from: cursor.from(), to: cursor.to()};
      if (match.from.line >= this.gap.to) break;
      this.matches.splice(i++, 0, match);
      if (this.matches.length > maxMatches) break;
    }
    this.gap = null;
  };

  function offsetLine(line, changeStart, sizeChange) {
    if (line <= changeStart) return line;
    return Math.max(changeStart, line + sizeChange);
  }

  SearchAnnotation.prototype.onChange = function(change) {
    var startLine = change.from.line;
    var endLine = CodeMirror.changeEnd(change).line;
    var sizeChange = endLine - change.to.line;
    if (this.gap) {
      this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);
      this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);
    } else {
      this.gap = {from: change.from.line, to: endLine + 1};
    }

    if (sizeChange) for (var i = 0; i < this.matches.length; i++) {
      var match = this.matches[i];
      var newFrom = offsetLine(match.from.line, startLine, sizeChange);
      if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);
      var newTo = offsetLine(match.to.line, startLine, sizeChange);
      if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);
    }
    clearTimeout(this.update);
    var self = this;
    this.update = setTimeout(function() { self.updateAfterChange(); }, 250);
  };

  SearchAnnotation.prototype.updateAfterChange = function() {
    this.findMatches();
    this.annotation.update(this.matches);
  };

  SearchAnnotation.prototype.clear = function() {
    this.cm.off("change", this.changeHandler);
    this.annotation.clear();
  };
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Highlighting text that matches the selection
//
// Defines an option highlightSelectionMatches, which, when enabled,
// will style strings that match the selection throughout the
// document.
//
// The option can be set to true to simply enable it, or to a
// {minChars, style, wordsOnly, showToken, delay} object to explicitly
// configure it. minChars is the minimum amount of characters that should be
// selected for the behavior to occur, and style is the token style to
// apply to the matches. This will be prefixed by "cm-" to create an
// actual CSS class name. If wordsOnly is enabled, the matches will be
// highlighted only if the selected text is a word. showToken, when enabled,
// will cause the current token to be highlighted when nothing is selected.
// delay is used to specify how much time to wait, in milliseconds, before
// highlighting the matches. If annotateScrollbar is enabled, the occurences
// will be highlighted on the scrollbar via the matchesonscrollbar addon.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./matchesonscrollbar"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./matchesonscrollbar"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var defaults = {
    style: "matchhighlight",
    minChars: 2,
    delay: 100,
    wordsOnly: false,
    annotateScrollbar: false,
    showToken: false,
    trim: true
  }

  function State(options) {
    this.options = {}
    for (var name in defaults)
      this.options[name] = (options && options.hasOwnProperty(name) ? options : defaults)[name]
    this.overlay = this.timeout = null;
    this.matchesonscroll = null;
    this.active = false;
  }

  CodeMirror.defineOption("highlightSelectionMatches", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      removeOverlay(cm);
      clearTimeout(cm.state.matchHighlighter.timeout);
      cm.state.matchHighlighter = null;
      cm.off("cursorActivity", cursorActivity);
      cm.off("focus", onFocus)
    }
    if (val) {
      var state = cm.state.matchHighlighter = new State(val);
      if (cm.hasFocus()) {
        state.active = true
        highlightMatches(cm)
      } else {
        cm.on("focus", onFocus)
      }
      cm.on("cursorActivity", cursorActivity);
    }
  });

  function cursorActivity(cm) {
    var state = cm.state.matchHighlighter;
    if (state.active || cm.hasFocus()) scheduleHighlight(cm, state)
  }

  function onFocus(cm) {
    var state = cm.state.matchHighlighter
    if (!state.active) {
      state.active = true
      scheduleHighlight(cm, state)
    }
  }

  function scheduleHighlight(cm, state) {
    clearTimeout(state.timeout);
    state.timeout = setTimeout(function() {highlightMatches(cm);}, state.options.delay);
  }

  function addOverlay(cm, query, hasBoundary, style) {
    var state = cm.state.matchHighlighter;
    cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
    if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
      var searchFor = hasBoundary ? new RegExp("\\b" + query.replace(/[\\\[.+*?(){|^$]/g, "\\$&") + "\\b") : query;
      state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
        {className: "CodeMirror-selection-highlight-scrollbar"});
    }
  }

  function removeOverlay(cm) {
    var state = cm.state.matchHighlighter;
    if (state.overlay) {
      cm.removeOverlay(state.overlay);
      state.overlay = null;
      if (state.matchesonscroll) {
        state.matchesonscroll.clear();
        state.matchesonscroll = null;
      }
    }
  }

  function highlightMatches(cm) {
    cm.operation(function() {
      var state = cm.state.matchHighlighter;
      removeOverlay(cm);
      if (!cm.somethingSelected() && state.options.showToken) {
        var re = state.options.showToken === true ? /[\w$]/ : state.options.showToken;
        var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;
        while (start && re.test(line.charAt(start - 1))) --start;
        while (end < line.length && re.test(line.charAt(end))) ++end;
        if (start < end)
          addOverlay(cm, line.slice(start, end), re, state.options.style);
        return;
      }
      var from = cm.getCursor("from"), to = cm.getCursor("to");
      if (from.line != to.line) return;
      if (state.options.wordsOnly && !isWord(cm, from, to)) return;
      var selection = cm.getRange(from, to)
      if (state.options.trim) selection = selection.replace(/^\s+|\s+$/g, "")
      if (selection.length >= state.options.minChars)
        addOverlay(cm, selection, false, state.options.style);
    });
  }

  function isWord(cm, from, to) {
    var str = cm.getRange(from, to);
    if (str.match(/^\w+$/) !== null) {
        if (from.ch > 0) {
            var pos = {line: from.line, ch: from.ch - 1};
            var chr = cm.getRange(pos, from);
            if (chr.match(/\W/) === null) return false;
        }
        if (to.ch < cm.getLine(from.line).length) {
            var pos = {line: to.line, ch: to.ch + 1};
            var chr = cm.getRange(to, pos);
            if (chr.match(/\W/) === null) return false;
        }
        return true;
    } else return false;
  }

  function boundariesAround(stream, re) {
    return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&
      (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));
  }

  function makeOverlay(query, hasBoundary, style) {
    return {token: function(stream) {
      if (stream.match(query) &&
          (!hasBoundary || boundariesAround(stream, hasBoundary)))
        return style;
      stream.next();
      stream.skipTo(query.charAt(0)) || stream.skipToEnd();
    }};
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"
  var Pos = CodeMirror.Pos

  function regexpFlags(regexp) {
    var flags = regexp.flags
    return flags != null ? flags : (regexp.ignoreCase ? "i" : "")
      + (regexp.global ? "g" : "")
      + (regexp.multiline ? "m" : "")
  }

  function ensureFlags(regexp, flags) {
    var current = regexpFlags(regexp), target = current
    for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)
      target += flags.charAt(i)
    return current == target ? regexp : new RegExp(regexp.source, target)
  }

  function maybeMultiline(regexp) {
    return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source)
  }

  function searchRegexpForward(doc, regexp, start) {
    regexp = ensureFlags(regexp, "g")
    for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
      regexp.lastIndex = ch
      var string = doc.getLine(line), match = regexp.exec(string)
      if (match)
        return {from: Pos(line, match.index),
                to: Pos(line, match.index + match[0].length),
                match: match}
    }
  }

  function searchRegexpForwardMultiline(doc, regexp, start) {
    if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)

    regexp = ensureFlags(regexp, "gm")
    var string, chunk = 1
    for (var line = start.line, last = doc.lastLine(); line <= last;) {
      // This grows the search buffer in exponentially-sized chunks
      // between matches, so that nearby matches are fast and don't
      // require concatenating the whole document (in case we're
      // searching for something that has tons of matches), but at the
      // same time, the amount of retries is limited.
      for (var i = 0; i < chunk; i++) {
        if (line > last) break
        var curLine = doc.getLine(line++)
        string = string == null ? curLine : string + "\n" + curLine
      }
      chunk = chunk * 2
      regexp.lastIndex = start.ch
      var match = regexp.exec(string)
      if (match) {
        var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
        var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length
        return {from: Pos(startLine, startCh),
                to: Pos(startLine + inside.length - 1,
                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
                match: match}
      }
    }
  }

  function lastMatchIn(string, regexp) {
    var cutOff = 0, match
    for (;;) {
      regexp.lastIndex = cutOff
      var newMatch = regexp.exec(string)
      if (!newMatch) return match
      match = newMatch
      cutOff = match.index + (match[0].length || 1)
      if (cutOff == string.length) return match
    }
  }

  function searchRegexpBackward(doc, regexp, start) {
    regexp = ensureFlags(regexp, "g")
    for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
      var string = doc.getLine(line)
      if (ch > -1) string = string.slice(0, ch)
      var match = lastMatchIn(string, regexp)
      if (match)
        return {from: Pos(line, match.index),
                to: Pos(line, match.index + match[0].length),
                match: match}
    }
  }

  function searchRegexpBackwardMultiline(doc, regexp, start) {
    regexp = ensureFlags(regexp, "gm")
    var string, chunk = 1
    for (var line = start.line, first = doc.firstLine(); line >= first;) {
      for (var i = 0; i < chunk; i++) {
        var curLine = doc.getLine(line--)
        string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string
      }
      chunk *= 2

      var match = lastMatchIn(string, regexp)
      if (match) {
        var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
        var startLine = line + before.length, startCh = before[before.length - 1].length
        return {from: Pos(startLine, startCh),
                to: Pos(startLine + inside.length - 1,
                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
                match: match}
      }
    }
  }

  var doFold, noFold
  if (String.prototype.normalize) {
    doFold = function(str) { return str.normalize("NFD").toLowerCase() }
    noFold = function(str) { return str.normalize("NFD") }
  } else {
    doFold = function(str) { return str.toLowerCase() }
    noFold = function(str) { return str }
  }

  // Maps a position in a case-folded line back to a position in the original line
  // (compensating for codepoints increasing in number during folding)
  function adjustPos(orig, folded, pos, foldFunc) {
    if (orig.length == folded.length) return pos
    for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {
      if (min == max) return min
      var mid = (min + max) >> 1
      var len = foldFunc(orig.slice(0, mid)).length
      if (len == pos) return mid
      else if (len > pos) max = mid
      else min = mid + 1
    }
  }

  function searchStringForward(doc, query, start, caseFold) {
    // Empty string would match anything and never progress, so we
    // define it to match nothing instead.
    if (!query.length) return null
    var fold = caseFold ? doFold : noFold
    var lines = fold(query).split(/\r|\n\r?/)

    search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {
      var orig = doc.getLine(line).slice(ch), string = fold(orig)
      if (lines.length == 1) {
        var found = string.indexOf(lines[0])
        if (found == -1) continue search
        var start = adjustPos(orig, string, found, fold) + ch
        return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),
                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}
      } else {
        var cutFrom = string.length - lines[0].length
        if (string.slice(cutFrom) != lines[0]) continue search
        for (var i = 1; i < lines.length - 1; i++)
          if (fold(doc.getLine(line + i)) != lines[i]) continue search
        var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
        if (endString.slice(0, lastLine.length) != lastLine) continue search
        return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
                to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
      }
    }
  }

  function searchStringBackward(doc, query, start, caseFold) {
    if (!query.length) return null
    var fold = caseFold ? doFold : noFold
    var lines = fold(query).split(/\r|\n\r?/)

    search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {
      var orig = doc.getLine(line)
      if (ch > -1) orig = orig.slice(0, ch)
      var string = fold(orig)
      if (lines.length == 1) {
        var found = string.lastIndexOf(lines[0])
        if (found == -1) continue search
        return {from: Pos(line, adjustPos(orig, string, found, fold)),
                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}
      } else {
        var lastLine = lines[lines.length - 1]
        if (string.slice(0, lastLine.length) != lastLine) continue search
        for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)
          if (fold(doc.getLine(start + i)) != lines[i]) continue search
        var top = doc.getLine(line + 1 - lines.length), topString = fold(top)
        if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search
        return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),
                to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}
      }
    }
  }

  function SearchCursor(doc, query, pos, options) {
    this.atOccurrence = false
    this.doc = doc
    pos = pos ? doc.clipPos(pos) : Pos(0, 0)
    this.pos = {from: pos, to: pos}

    var caseFold
    if (typeof options == "object") {
      caseFold = options.caseFold
    } else { // Backwards compat for when caseFold was the 4th argument
      caseFold = options
      options = null
    }

    if (typeof query == "string") {
      if (caseFold == null) caseFold = false
      this.matches = function(reverse, pos) {
        return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
      }
    } else {
      query = ensureFlags(query, "gm")
      if (!options || options.multiline !== false)
        this.matches = function(reverse, pos) {
          return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
        }
      else
        this.matches = function(reverse, pos) {
          return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)
        }
    }
  }

  SearchCursor.prototype = {
    findNext: function() {return this.find(false)},
    findPrevious: function() {return this.find(true)},

    find: function(reverse) {
      var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))

      // Implements weird auto-growing behavior on null-matches for
      // backwards-compatiblity with the vim code (unfortunately)
      while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {
        if (reverse) {
          if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)
          else if (result.from.line == this.doc.firstLine()) result = null
          else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))
        } else {
          if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)
          else if (result.to.line == this.doc.lastLine()) result = null
          else result = this.matches(reverse, Pos(result.to.line + 1, 0))
        }
      }

      if (result) {
        this.pos = result
        this.atOccurrence = true
        return this.pos.match || true
      } else {
        var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)
        this.pos = {from: end, to: end}
        return this.atOccurrence = false
      }
    },

    from: function() {if (this.atOccurrence) return this.pos.from},
    to: function() {if (this.atOccurrence) return this.pos.to},

    replace: function(newText, origin) {
      if (!this.atOccurrence) return
      var lines = CodeMirror.splitLines(newText)
      this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)
      this.pos.to = Pos(this.pos.from.line + lines.length - 1,
                        lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))
    }
  }

  CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
    return new SearchCursor(this.doc, query, pos, caseFold)
  })
  CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
    return new SearchCursor(this, query, pos, caseFold)
  })

  CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
    var ranges = []
    var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold)
    while (cur.findNext()) {
      if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break
      ranges.push({anchor: cur.from(), head: cur.to()})
    }
    if (ranges.length)
      this.setSelections(ranges, 0)
  })
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  var WRAP_CLASS = "CodeMirror-activeline";
  var BACK_CLASS = "CodeMirror-activeline-background";
  var GUTT_CLASS = "CodeMirror-activeline-gutter";

  CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
    var prev = old == CodeMirror.Init ? false : old;
    if (val == prev) return
    if (prev) {
      cm.off("beforeSelectionChange", selectionChange);
      clearActiveLines(cm);
      delete cm.state.activeLines;
    }
    if (val) {
      cm.state.activeLines = [];
      updateActiveLines(cm, cm.listSelections());
      cm.on("beforeSelectionChange", selectionChange);
    }
  });

  function clearActiveLines(cm) {
    for (var i = 0; i < cm.state.activeLines.length; i++) {
      cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS);
      cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS);
      cm.removeLineClass(cm.state.activeLines[i], "gutter", GUTT_CLASS);
    }
  }

  function sameArray(a, b) {
    if (a.length != b.length) return false;
    for (var i = 0; i < a.length; i++)
      if (a[i] != b[i]) return false;
    return true;
  }

  function updateActiveLines(cm, ranges) {
    var active = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i];
      var option = cm.getOption("styleActiveLine");
      if (typeof option == "object" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())
        continue
      var line = cm.getLineHandleVisualStart(range.head.line);
      if (active[active.length - 1] != line) active.push(line);
    }
    if (sameArray(cm.state.activeLines, active)) return;
    cm.operation(function() {
      clearActiveLines(cm);
      for (var i = 0; i < active.length; i++) {
        cm.addLineClass(active[i], "wrap", WRAP_CLASS);
        cm.addLineClass(active[i], "background", BACK_CLASS);
        cm.addLineClass(active[i], "gutter", GUTT_CLASS);
      }
      cm.state.activeLines = active;
    });
  }

  function selectionChange(cm, sel) {
    updateActiveLines(cm, sel.ranges);
  }
});

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.modeInfo = [
    {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]},
    {name: "PGP", mimes: ["application/pgp", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["asc", "pgp", "sig"]},
    {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]},
    {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i},
    {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]},
    {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]},
    {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]},
    {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]},
    {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp"]},
    {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]},
    {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]},
    {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]},
    {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/},
    {name: "CoffeeScript", mimes: ["application/vnd.coffeescript", "text/coffeescript", "text/x-coffeescript"], mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]},
    {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]},
    {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]},
    {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]},
    {name: "Crystal", mime: "text/x-crystal", mode: "crystal", ext: ["cr"]},
    {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]},
    {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]},
    {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]},
    {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]},
    {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]},
    {name: "Django", mime: "text/x-django", mode: "django"},
    {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/},
    {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]},
    {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]},
    {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"},
    {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]},
    {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]},
    {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]},
    {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]},
    {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]},
    {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]},
    {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]},
    {name: "Esper", mime: "text/x-esper", mode: "sql"},
    {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]},
    {name: "FCL", mime: "text/x-fcl", mode: "fcl"},
    {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]},
    {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90"]},
    {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]},
    {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]},
    {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]},
    {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i},
    {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]},
    {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy", "gradle"], file: /^Jenkinsfile$/},
    {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]},
    {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]},
    {name: "Haskell (Literate)", mime: "text/x-literate-haskell", mode: "haskell-literate", ext: ["lhs"]},
    {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]},
    {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]},
    {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]},
    {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm", "handlebars", "hbs"], alias: ["xhtml"]},
    {name: "HTTP", mime: "message/http", mode: "http"},
    {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]},
    {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]},
    {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]},
    {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]},
    {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"],
     mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]},
    {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]},
    {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]},
    {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]},
    {name: "Jinja2", mime: "null", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]},
    {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]},
    {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]},
    {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]},
    {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]},
    {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]},
    {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]},
    {name: "mIRC", mime: "text/mirc", mode: "mirc"},
    {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"},
    {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb"]},
    {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]},
    {name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]},
    {name: "MS SQL", mime: "text/x-mssql", mode: "sql"},
    {name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]},
    {name: "MySQL", mime: "text/x-mysql", mode: "sql"},
    {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i},
    {name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]},
    {name: "NTriples", mimes: ["application/n-triples", "application/n-quads", "text/n-triples"],
     mode: "ntriples", ext: ["nt", "nq"]},
    {name: "Objective-C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"], alias: ["objective-c", "objc"]},
    {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]},
    {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]},
    {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]},
    {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]},
    {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]},
    {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]},
    {name: "PHP", mimes: ["text/x-php", "application/x-httpd-php", "application/x-httpd-php-open"], mode: "php", ext: ["php", "php3", "php4", "php5", "php7", "phtml"]},
    {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]},
    {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]},
    {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]},
    {name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]},
    {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]},
    {name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]},
    {name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/},
    {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]},
    {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]},
    {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r", "R"], alias: ["rscript"]},
    {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]},
    {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"},
    {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]},
    {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]},
    {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]},
    {name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]},
    {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]},
    {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]},
    {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]},
    {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]},
    {name: "Shell", mimes: ["text/x-sh", "application/x-sh"], mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/},
    {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]},
    {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]},
    {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]},
    {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]},
    {name: "Solr", mime: "text/x-solr", mode: "solr"},
    {name: "SML", mime: "text/x-sml", mode: "mllike", ext: ["sml", "sig", "fun", "smackspec"]},
    {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]},
    {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]},
    {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]},
    {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]},
    {name: "SQLite", mime: "text/x-sqlite", mode: "sql"},
    {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]},
    {name: "Stylus", mime: "text/x-styl", mode: "stylus", ext: ["styl"]},
    {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]},
    {name: "sTeX", mime: "text/x-stex", mode: "stex"},
    {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx", "tex"], alias: ["tex"]},
    {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v", "sv", "svh"]},
    {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]},
    {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]},
    {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"},
    {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"},
    {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]},
    {name: "Tornado", mime: "text/x-tornado", mode: "tornado"},
    {name: "troff", mime: "text/troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]},
    {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]},
    {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]},
    {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]},
    {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]},
    {name: "TypeScript-JSX", mime: "text/typescript-jsx", mode: "jsx", ext: ["tsx"], alias: ["tsx"]},
    {name: "Twig", mime: "text/x-twig", mode: "twig"},
    {name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]},
    {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]},
    {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]},
    {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]},
    {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]},
    {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]},
    {name: "Vue.js Component", mimes: ["script/x-vue", "text/x-vue"], mode: "vue", ext: ["vue"]},
    {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd", "svg"], alias: ["rss", "wsdl", "xsd"]},
    {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]},
    {name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]},
    {name: "YAML", mimes: ["text/x-yaml", "text/yaml"], mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]},
    {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]},
    {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]},
    {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]},
    {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]}
  ];
  // Ensure all modes have a mime property for backwards compatibility
  for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
    var info = CodeMirror.modeInfo[i];
    if (info.mimes) info.mime = info.mimes[0];
  }

  CodeMirror.findModeByMIME = function(mime) {
    mime = mime.toLowerCase();
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.mime == mime) return info;
      if (info.mimes) for (var j = 0; j < info.mimes.length; j++)
        if (info.mimes[j] == mime) return info;
    }
    if (/\+xml$/.test(mime)) return CodeMirror.findModeByMIME("application/xml")
    if (/\+json$/.test(mime)) return CodeMirror.findModeByMIME("application/json")
  };

  CodeMirror.findModeByExtension = function(ext) {
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.ext) for (var j = 0; j < info.ext.length; j++)
        if (info.ext[j] == ext) return info;
    }
  };

  CodeMirror.findModeByFileName = function(filename) {
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.file && info.file.test(filename)) return info;
    }
    var dot = filename.lastIndexOf(".");
    var ext = dot > -1 && filename.substring(dot + 1, filename.length);
    if (ext) return CodeMirror.findModeByExtension(ext);
  };

  CodeMirror.findModeByName = function(name) {
    name = name.toLowerCase();
    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {
      var info = CodeMirror.modeInfo[i];
      if (info.name.toLowerCase() == name) return info;
      if (info.alias) for (var j = 0; j < info.alias.length; j++)
        if (info.alias[j].toLowerCase() == name) return info;
    }
  };
});
editors/codemirror/lib/codemirror.min.js000064400000511275152177723720014445 0ustar00!(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.CodeMirror=b()})(this,(function(){"use strict";function a(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}function b(a){for(var b=a.childNodes.length;b>0;--b)a.removeChild(a.firstChild);return a}function c(a,c){return b(a).appendChild(c)}function d(a,b,c,d){var e=document.createElement(a);if(c&&(e.className=c),d&&(e.style.cssText=d),"string"==typeof b)e.appendChild(document.createTextNode(b));else if(b)for(var f=0;f<b.length;++f)e.appendChild(b[f]);return e}function e(a,b,c,e){var f=d(a,b,c,e);return f.setAttribute("role","presentation"),f}function f(a,b){if(3==b.nodeType&&(b=b.parentNode),a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)}function g(){var a;try{a=document.activeElement}catch(b){a=document.body||null}for(;a&&a.shadowRoot&&a.shadowRoot.activeElement;)a=a.shadowRoot.activeElement;return a}function h(b,c){var d=b.className;a(c).test(d)||(b.className+=(d?" ":"")+c)}function i(b,c){for(var d=b.split(" "),e=0;e<d.length;e++)d[e]&&!a(d[e]).test(c)&&(c+=" "+d[e]);return c}function j(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function k(a,b,c){b||(b={});for(var d in a)!a.hasOwnProperty(d)||c===!1&&b.hasOwnProperty(d)||(b[d]=a[d]);return b}function l(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),b==-1&&(b=a.length));for(var f=d||0,g=e||0;;){var h=a.indexOf("\t",f);if(h<0||h>=b)return g+(b-f);g+=h-f,g+=c-g%c,f=h+1}}function m(a,b){for(var c=0;c<a.length;++c)if(a[c]==b)return c;return-1}function n(a,b,c){for(var d=0,e=0;;){var f=a.indexOf("\t",d);f==-1&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);if(e+=f-d,e+=c-e%c,d=f+1,e>=b)return d}}function o(a){for(;Xg.length<=a;)Xg.push(p(Xg)+" ");return Xg[a]}function p(a){return a[a.length-1]}function q(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=b(a[d],d);return c}function r(a,b,c){for(var d=0,e=c(b);d<a.length&&c(a[d])<=e;)d++;a.splice(d,0,b)}function s(){}function t(a,b){var c;return Object.create?c=Object.create(a):(s.prototype=a,c=new s),b&&k(b,c),c}function u(a){return/\w/.test(a)||a>"€"&&(a.toUpperCase()!=a.toLowerCase()||Yg.test(a))}function v(a,b){return b?!!(b.source.indexOf("\\w")>-1&&u(a))||b.test(a):u(a)}function w(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;return!0}function x(a){return a.charCodeAt(0)>=768&&Zg.test(a)}function y(a,b,c){for(;(c<0?b>0:b<a.length)&&x(a.charAt(b));)b+=c;return b}function z(a,b,c){for(var d=b>c?-1:1;;){if(b==c)return b;var e=(b+c)/2,f=d<0?Math.ceil(e):Math.floor(e);if(f==b)return a(f)?b:c;a(f)?c=f:b=f+d}}function A(a,b,c){var f=this;this.input=c,f.scrollbarFiller=d("div",null,"CodeMirror-scrollbar-filler"),f.scrollbarFiller.setAttribute("cm-not-content","true"),f.gutterFiller=d("div",null,"CodeMirror-gutter-filler"),f.gutterFiller.setAttribute("cm-not-content","true"),f.lineDiv=e("div",null,"CodeMirror-code"),f.selectionDiv=d("div",null,null,"position: relative; z-index: 1"),f.cursorDiv=d("div",null,"CodeMirror-cursors"),f.measure=d("div",null,"CodeMirror-measure"),f.lineMeasure=d("div",null,"CodeMirror-measure"),f.lineSpace=e("div",[f.measure,f.lineMeasure,f.selectionDiv,f.cursorDiv,f.lineDiv],null,"position: relative; outline: none");var g=e("div",[f.lineSpace],"CodeMirror-lines");f.mover=d("div",[g],null,"position: relative"),f.sizer=d("div",[f.mover],"CodeMirror-sizer"),f.sizerWidth=null,f.heightForcer=d("div",null,null,"position: absolute; height: "+Sg+"px; width: 1px;"),f.gutters=d("div",null,"CodeMirror-gutters"),f.lineGutter=null,f.scroller=d("div",[f.sizer,f.heightForcer,f.gutters],"CodeMirror-scroll"),f.scroller.setAttribute("tabIndex","-1"),f.wrapper=d("div",[f.scrollbarFiller,f.gutterFiller,f.scroller],"CodeMirror"),ug&&vg<8&&(f.gutters.style.zIndex=-1,f.scroller.style.paddingRight=0),wg||qg&&Fg||(f.scroller.draggable=!0),a&&(a.appendChild?a.appendChild(f.wrapper):a(f.wrapper)),f.viewFrom=f.viewTo=b.first,f.reportedViewFrom=f.reportedViewTo=b.first,f.view=[],f.renderedView=null,f.externalMeasured=null,f.viewOffset=0,f.lastWrapHeight=f.lastWrapWidth=0,f.updateLineNumbers=null,f.nativeBarWidth=f.barHeight=f.barWidth=0,f.scrollbarsClipped=!1,f.lineNumWidth=f.lineNumInnerWidth=f.lineNumChars=null,f.alignWidgets=!1,f.cachedCharWidth=f.cachedTextHeight=f.cachedPaddingH=null,f.maxLine=null,f.maxLineLength=0,f.maxLineChanged=!1,f.wheelDX=f.wheelDY=f.wheelStartX=f.wheelStartY=null,f.shift=!1,f.selForContextMenu=null,f.activeTouch=null,c.init(f)}function B(a,b){if(b-=a.first,b<0||b>=a.size)throw new Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(b<f){c=e;break}b-=f}return c.lines[b]}function C(a,b,c){var d=[],e=b.line;return a.iter(b.line,c.line+1,(function(a){var f=a.text;e==c.line&&(f=f.slice(0,c.ch)),e==b.line&&(f=f.slice(b.ch)),d.push(f),++e})),d}function D(a,b,c){var d=[];return a.iter(b,c,(function(a){d.push(a.text)})),d}function E(a,b){var c=b-a.height;if(c)for(var d=a;d;d=d.parent)d.height+=c}function F(a){if(null==a.parent)return null;for(var b=a.parent,c=m(b.lines,a),d=b.parent;d;b=d,d=d.parent)for(var e=0;d.children[e]!=b;++e)c+=d.children[e].chunkSize();return c+b.first}function G(a,b){var c=a.first;a:do{for(var d=0;d<a.children.length;++d){var e=a.children[d],f=e.height;if(b<f){a=e;continue a}b-=f,c+=e.chunkSize()}return c}while(!a.lines);for(var g=0;g<a.lines.length;++g){var h=a.lines[g],i=h.height;if(b<i)break;b-=i}return c+g}function H(a,b){return b>=a.first&&b<a.first+a.size}function I(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function J(a,b,c){return void 0===c&&(c=null),this instanceof J?(this.line=a,this.ch=b,void(this.sticky=c)):new J(a,b,c)}function K(a,b){return a.line-b.line||a.ch-b.ch}function L(a,b){return a.sticky==b.sticky&&0==K(a,b)}function M(a){return J(a.line,a.ch)}function N(a,b){return K(a,b)<0?b:a}function O(a,b){return K(a,b)<0?a:b}function P(a,b){return Math.max(a.first,Math.min(b,a.first+a.size-1))}function Q(a,b){if(b.line<a.first)return J(a.first,0);var c=a.first+a.size-1;return b.line>c?J(c,B(a,c).text.length):R(b,B(a,b.line).text.length)}function R(a,b){var c=a.ch;return null==c||c>b?J(a.line,b):c<0?J(a.line,0):a}function S(a,b){for(var c=[],d=0;d<b.length;d++)c[d]=Q(a,b[d]);return c}function T(){$g=!0}function U(){_g=!0}function V(a,b,c){this.marker=a,this.from=b,this.to=c}function W(a,b){if(a)for(var c=0;c<a.length;++c){var d=a[c];if(d.marker==b)return d}}function X(a,b){for(var c,d=0;d<a.length;++d)a[d]!=b&&(c||(c=[])).push(a[d]);return c}function Y(a,b){a.markedSpans=a.markedSpans?a.markedSpans.concat([b]):[b],b.marker.attachLine(a)}function Z(a,b,c){var d;if(a)for(var e=0;e<a.length;++e){var f=a[e],g=f.marker,h=null==f.from||(g.inclusiveLeft?f.from<=b:f.from<b);if(h||f.from==b&&"bookmark"==g.type&&(!c||!f.marker.insertLeft)){var i=null==f.to||(g.inclusiveRight?f.to>=b:f.to>b);(d||(d=[])).push(new V(g,f.from,i?null:f.to))}}return d}function $(a,b,c){var d;if(a)for(var e=0;e<a.length;++e){var f=a[e],g=f.marker,h=null==f.to||(g.inclusiveRight?f.to>=b:f.to>b);if(h||f.from==b&&"bookmark"==g.type&&(!c||f.marker.insertLeft)){var i=null==f.from||(g.inclusiveLeft?f.from<=b:f.from<b);(d||(d=[])).push(new V(g,i?null:f.from-b,null==f.to?null:f.to-b))}}return d}function _(a,b){if(b.full)return null;var c=H(a,b.from.line)&&B(a,b.from.line).markedSpans,d=H(a,b.to.line)&&B(a,b.to.line).markedSpans;if(!c&&!d)return null;var e=b.from.ch,f=b.to.ch,g=0==K(b.from,b.to),h=Z(c,e,g),i=$(d,f,g),j=1==b.text.length,k=p(b.text).length+(j?e:0);if(h)for(var l=0;l<h.length;++l){var m=h[l];if(null==m.to){var n=W(i,m.marker);n?j&&(m.to=null==n.to?null:n.to+k):m.to=e}}if(i)for(var o=0;o<i.length;++o){var q=i[o];if(null!=q.to&&(q.to+=k),null==q.from){var r=W(h,q.marker);r||(q.from=k,j&&(h||(h=[])).push(q))}else q.from+=k,j&&(h||(h=[])).push(q)}h&&(h=aa(h)),i&&i!=h&&(i=aa(i));var s=[h];if(!j){var t,u=b.text.length-2;if(u>0&&h)for(var v=0;v<h.length;++v)null==h[v].to&&(t||(t=[])).push(new V(h[v].marker,null,null));for(var w=0;w<u;++w)s.push(t);s.push(i)}return s}function aa(a){for(var b=0;b<a.length;++b){var c=a[b];null!=c.from&&c.from==c.to&&c.marker.clearWhenEmpty!==!1&&a.splice(b--,1)}return a.length?a:null}function ba(a,b,c){var d=null;if(a.iter(b.line,c.line+1,(function(a){if(a.markedSpans)for(var b=0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&m(d,c)!=-1||(d||(d=[])).push(c)}})),!d)return null;for(var e=[{from:b,to:c}],f=0;f<d.length;++f)for(var g=d[f],h=g.find(0),i=0;i<e.length;++i){var j=e[i];if(!(K(j.to,h.from)<0||K(j.from,h.to)>0)){var k=[i,1],l=K(j.from,h.from),n=K(j.to,h.to);(l<0||!g.inclusiveLeft&&!l)&&k.push({from:j.from,to:h.from}),(n>0||!g.inclusiveRight&&!n)&&k.push({from:h.to,to:j.to}),e.splice.apply(e,k),i+=k.length-3}}return e}function ca(a){var b=a.markedSpans;if(b){for(var c=0;c<b.length;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function da(a,b){if(b){for(var c=0;c<b.length;++c)b[c].marker.attachLine(a);a.markedSpans=b}}function ea(a){return a.inclusiveLeft?-1:0}function fa(a){return a.inclusiveRight?1:0}function ga(a,b){var c=a.lines.length-b.lines.length;if(0!=c)return c;var d=a.find(),e=b.find(),f=K(d.from,e.from)||ea(a)-ea(b);if(f)return-f;var g=K(d.to,e.to)||fa(a)-fa(b);return g?g:b.id-a.id}function ha(a,b){var c,d=_g&&a.markedSpans;if(d)for(var e=void 0,f=0;f<d.length;++f)e=d[f],e.marker.collapsed&&null==(b?e.from:e.to)&&(!c||ga(c,e.marker)<0)&&(c=e.marker);return c}function ia(a){return ha(a,!0)}function ja(a){return ha(a,!1)}function ka(a,b){var c,d=_g&&a.markedSpans;if(d)for(var e=0;e<d.length;++e){var f=d[e];f.marker.collapsed&&(null==f.from||f.from<b)&&(null==f.to||f.to>b)&&(!c||ga(c,f.marker)<0)&&(c=f.marker)}return c}function la(a,b,c,d,e){var f=B(a,b),g=_g&&f.markedSpans;if(g)for(var h=0;h<g.length;++h){var i=g[h];if(i.marker.collapsed){var j=i.marker.find(0),k=K(j.from,c)||ea(i.marker)-ea(e),l=K(j.to,d)||fa(i.marker)-fa(e);if(!(k>=0&&l<=0||k<=0&&l>=0)&&(k<=0&&(i.marker.inclusiveRight&&e.inclusiveLeft?K(j.to,c)>=0:K(j.to,c)>0)||k>=0&&(i.marker.inclusiveRight&&e.inclusiveLeft?K(j.from,d)<=0:K(j.from,d)<0)))return!0}}}function ma(a){for(var b;b=ia(a);)a=b.find(-1,!0).line;return a}function na(a){for(var b;b=ja(a);)a=b.find(1,!0).line;return a}function oa(a){for(var b,c;b=ja(a);)a=b.find(1,!0).line,(c||(c=[])).push(a);return c}function pa(a,b){var c=B(a,b),d=ma(c);return c==d?b:F(d)}function qa(a,b){if(b>a.lastLine())return b;var c,d=B(a,b);if(!ra(a,d))return b;for(;c=ja(d);)d=c.find(1,!0).line;return F(d)+1}function ra(a,b){var c=_g&&b.markedSpans;if(c)for(var d=void 0,e=0;e<c.length;++e)if(d=c[e],d.marker.collapsed){if(null==d.from)return!0;if(!d.marker.widgetNode&&0==d.from&&d.marker.inclusiveLeft&&sa(a,b,d))return!0}}function sa(a,b,c){if(null==c.to){var d=c.marker.find(1,!0);return sa(a,d.line,W(d.line.markedSpans,c.marker))}if(c.marker.inclusiveRight&&c.to==b.text.length)return!0;for(var e=void 0,f=0;f<b.markedSpans.length;++f)if(e=b.markedSpans[f],e.marker.collapsed&&!e.marker.widgetNode&&e.from==c.to&&(null==e.to||e.to!=c.from)&&(e.marker.inclusiveLeft||c.marker.inclusiveRight)&&sa(a,b,e))return!0}function ta(a){a=ma(a);for(var b=0,c=a.parent,d=0;d<c.lines.length;++d){var e=c.lines[d];if(e==a)break;b+=e.height}for(var f=c.parent;f;c=f,f=c.parent)for(var g=0;g<f.children.length;++g){var h=f.children[g];if(h==c)break;b+=h.height}return b}function ua(a){if(0==a.height)return 0;for(var b,c=a.text.length,d=a;b=ia(d);){var e=b.find(0,!0);d=e.from.line,c+=e.from.ch-e.to.ch}for(d=a;b=ja(d);){var f=b.find(0,!0);c-=d.text.length-f.from.ch,d=f.to.line,c+=d.text.length-f.to.ch}return c}function va(a){var b=a.display,c=a.doc;b.maxLine=B(c,c.first),b.maxLineLength=ua(b.maxLine),b.maxLineChanged=!0,c.iter((function(a){var c=ua(a);c>b.maxLineLength&&(b.maxLineLength=c,b.maxLine=a)}))}function wa(a,b,c,d){if(!a)return d(b,c,"ltr",0);for(var e=!1,f=0;f<a.length;++f){var g=a[f];(g.from<c&&g.to>b||b==c&&g.to==b)&&(d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr",f),e=!0)}e||d(b,c,"ltr")}function xa(a,b,c){var d;ah=null;for(var e=0;e<a.length;++e){var f=a[e];if(f.from<b&&f.to>b)return e;f.to==b&&(f.from!=f.to&&"before"==c?d=e:ah=e),f.from==b&&(f.from!=f.to&&"before"!=c?d=e:ah=e)}return null!=d?d:ah}function ya(a,b){var c=a.order;return null==c&&(c=a.order=bh(a.text,b)),c}function za(a,b){return a._handlers&&a._handlers[b]||ch}function Aa(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else{var d=a._handlers,e=d&&d[b];if(e){var f=m(e,c);f>-1&&(d[b]=e.slice(0,f).concat(e.slice(f+1)))}}}function Ba(a,b){var c=za(a,b);if(c.length)for(var d=Array.prototype.slice.call(arguments,2),e=0;e<c.length;++e)c[e].apply(null,d)}function Ca(a,b,c){return"string"==typeof b&&(b={type:b,preventDefault:function(){this.defaultPrevented=!0}}),Ba(a,c||b.type,a,b),Ia(b)||b.codemirrorIgnore}function Da(a){var b=a._handlers&&a._handlers.cursorActivity;if(b)for(var c=a.curOp.cursorActivityHandlers||(a.curOp.cursorActivityHandlers=[]),d=0;d<b.length;++d)m(c,b[d])==-1&&c.push(b[d])}function Ea(a,b){return za(a,b).length>0}function Fa(a){a.prototype.on=function(a,b){dh(this,a,b)},a.prototype.off=function(a,b){Aa(this,a,b)}}function Ga(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function Ha(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function Ia(a){return null!=a.defaultPrevented?a.defaultPrevented:0==a.returnValue}function Ja(a){Ga(a),Ha(a)}function Ka(a){return a.target||a.srcElement}function La(a){var b=a.which;return null==b&&(1&a.button?b=1:2&a.button?b=3:4&a.button&&(b=2)),Gg&&a.ctrlKey&&1==b&&(b=3),b}function Ma(a){if(null==Qg){var b=d("span","​");c(a,d("span",[b,document.createTextNode("x")])),0!=a.firstChild.offsetHeight&&(Qg=b.offsetWidth<=1&&b.offsetHeight>2&&!(ug&&vg<8))}var e=Qg?d("span","​"):d("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return e.setAttribute("cm-text",""),e}function Na(a){if(null!=Rg)return Rg;var d=c(a,document.createTextNode("AخA")),e=Kg(d,0,1).getBoundingClientRect(),f=Kg(d,1,2).getBoundingClientRect();return b(a),!(!e||e.left==e.right)&&(Rg=f.right-e.right<3)}function Oa(a){if(null!=ih)return ih;var b=c(a,d("span","x")),e=b.getBoundingClientRect(),f=Kg(b,0,1).getBoundingClientRect();return ih=Math.abs(e.left-f.left)>1}function Pa(a,b){arguments.length>2&&(b.dependencies=Array.prototype.slice.call(arguments,2)),jh[a]=b}function Qa(a,b){kh[a]=b}function Ra(a){if("string"==typeof a&&kh.hasOwnProperty(a))a=kh[a];else if(a&&"string"==typeof a.name&&kh.hasOwnProperty(a.name)){var b=kh[a.name];"string"==typeof b&&(b={name:b}),a=t(b,a),a.name=b.name}else{if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return Ra("application/xml");if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return Ra("application/json")}return"string"==typeof a?{name:a}:a||{name:"null"}}function Sa(a,b){b=Ra(b);var c=jh[b.name];if(!c)return Sa(a,"text/plain");var d=c(a,b);if(lh.hasOwnProperty(b.name)){var e=lh[b.name];for(var f in e)e.hasOwnProperty(f)&&(d.hasOwnProperty(f)&&(d["_"+f]=d[f]),d[f]=e[f])}if(d.name=b.name,b.helperType&&(d.helperType=b.helperType),b.modeProps)for(var g in b.modeProps)d[g]=b.modeProps[g];return d}function Ta(a,b){var c=lh.hasOwnProperty(a)?lh[a]:lh[a]={};k(b,c)}function Ua(a,b){if(b===!0)return b;if(a.copyState)return a.copyState(b);var c={};for(var d in b){var e=b[d];e instanceof Array&&(e=e.concat([])),c[d]=e}return c}function Va(a,b){for(var c;a.innerMode&&(c=a.innerMode(b),c&&c.mode!=a);)b=c.state,a=c.mode;return c||{mode:a,state:b}}function Wa(a,b,c){return!a.startState||a.startState(b,c)}function Xa(a,b,c,d){var e=[a.state.modeGen],f={};db(a,b.text,a.doc.mode,c,(function(a,b){return e.push(a,b)}),f,d);for(var g=c.state,h=function(d){c.baseTokens=e;var h=a.state.overlays[d],i=1,j=0;c.state=!0,db(a,b.text,h.mode,c,(function(a,b){for(var c=i;j<a;){var d=e[i];d>a&&e.splice(i,1,a,e[i+1],d),i+=2,j=Math.min(a,d)}if(b)if(h.opaque)e.splice(c,i-c,a,"overlay "+b),i=c+2;else for(;c<i;c+=2){var f=e[c+1];e[c+1]=(f?f+" ":"")+"overlay "+b}}),f),c.state=g,c.baseTokens=null,c.baseTokenPos=1},i=0;i<a.state.overlays.length;++i)h(i);return{styles:e,classes:f.bgClass||f.textClass?f:null}}function Ya(a,b,c){if(!b.styles||b.styles[0]!=a.state.modeGen){var d=Za(a,F(b)),e=b.text.length>a.options.maxHighlightLength&&Ua(a.doc.mode,d.state),f=Xa(a,b,d);e&&(d.state=e),b.stateAfter=d.save(!e),b.styles=f.styles,f.classes?b.styleClasses=f.classes:b.styleClasses&&(b.styleClasses=null),c===a.doc.highlightFrontier&&(a.doc.modeFrontier=Math.max(a.doc.modeFrontier,++a.doc.highlightFrontier))}return b.styles}function Za(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return new oh(d,!0,b);var f=eb(a,b,c),g=f>d.first&&B(d,f-1).stateAfter,h=g?oh.fromSaved(d,g,f):new oh(d,Wa(d.mode),f);return d.iter(f,b,(function(c){$a(a,c.text,h);var d=h.line;c.stateAfter=d==b-1||d%5==0||d>=e.viewFrom&&d<e.viewTo?h.save():null,h.nextLine()})),c&&(d.modeFrontier=h.line),h}function $a(a,b,c,d){var e=a.doc.mode,f=new mh(b,a.options.tabSize,c);for(f.start=f.pos=d||0,""==b&&_a(e,c.state);!f.eol();)ab(e,f,c.state),f.start=f.pos}function _a(a,b){if(a.blankLine)return a.blankLine(b);if(a.innerMode){var c=Va(a,b);return c.mode.blankLine?c.mode.blankLine(c.state):void 0}}function ab(a,b,c,d){for(var e=0;e<10;e++){d&&(d[0]=Va(a,c).mode);var f=a.token(b,c);if(b.pos>b.start)return f}throw new Error("Mode "+a.name+" failed to advance stream.")}function bb(a,b,c,d){var e,f=a.doc,g=f.mode;b=Q(f,b);var h,i=B(f,b.line),j=Za(a,b.line,c),k=new mh(i.text,a.options.tabSize,j);for(d&&(h=[]);(d||k.pos<b.ch)&&!k.eol();)k.start=k.pos,e=ab(g,k,j.state),d&&h.push(new ph(k,e,Ua(f.mode,j.state)));return d?h:new ph(k,e,j.state)}function cb(a,b){if(a)for(;;){var c=a.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!c)break;a=a.slice(0,c.index)+a.slice(c.index+c[0].length);var d=c[1]?"bgClass":"textClass";null==b[d]?b[d]=c[2]:new RegExp("(?:^|s)"+c[2]+"(?:$|s)").test(b[d])||(b[d]+=" "+c[2])}return a}function db(a,b,c,d,e,f,g){var h=c.flattenSpans;null==h&&(h=a.options.flattenSpans);var i,j=0,k=null,l=new mh(b,a.options.tabSize,d),m=a.options.addModeClass&&[null];for(""==b&&cb(_a(c,d.state),f);!l.eol();){if(l.pos>a.options.maxHighlightLength?(h=!1,g&&$a(a,b,d,l.pos),l.pos=b.length,i=null):i=cb(ab(c,l,d.state,m),f),m){var n=m[0].name;n&&(i="m-"+(i?n+" "+i:n))}if(!h||k!=i){for(;j<l.start;)j=Math.min(l.start,j+5e3),e(j,k);k=i}l.start=l.pos}for(;j<l.pos;){var o=Math.min(l.pos,j+5e3);e(o,k),j=o}}function eb(a,b,c){for(var d,e,f=a.doc,g=c?-1:b-(a.doc.mode.innerMode?1e3:100),h=b;h>g;--h){if(h<=f.first)return f.first;var i=B(f,h-1),j=i.stateAfter;if(j&&(!c||h+(j instanceof nh?j.lookAhead:0)<=f.modeFrontier))return h;var k=l(i.text,null,a.options.tabSize);(null==e||d>k)&&(e=h-1,d=k)}return e}function fb(a,b){if(a.modeFrontier=Math.min(a.modeFrontier,b),!(a.highlightFrontier<b-10)){for(var c=a.first,d=b-1;d>c;d--){var e=B(a,d).stateAfter;if(e&&(!(e instanceof nh)||d+e.lookAhead<b)){c=d+1;break}}a.highlightFrontier=Math.min(a.highlightFrontier,c)}}function gb(a,b,c,d){a.text=b,a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null),null!=a.order&&(a.order=null),ca(a),da(a,c);var e=d?d(a):1;e!=a.height&&E(a,e)}function hb(a){a.parent=null,ca(a)}function ib(a,b){if(!a||/^\s*$/.test(a))return null;var c=b.addModeClass?th:sh;return c[a]||(c[a]=a.replace(/\S+/g,"cm-$&"))}function jb(a,b){var c=e("span",null,null,wg?"padding-right: .1px":null),d={pre:e("pre",[c],"CodeMirror-line"),content:c,col:0,pos:0,cm:a,trailingSpace:!1,splitSpaces:(ug||wg)&&a.getOption("lineWrapping")};b.measure={};for(var f=0;f<=(b.rest?b.rest.length:0);f++){var g=f?b.rest[f-1]:b.line,h=void 0;d.pos=0,d.addToken=lb,Na(a.display.measure)&&(h=ya(g,a.doc.direction))&&(d.addToken=nb(d.addToken,h)),d.map=[];var j=b!=a.display.externalMeasured&&F(g);pb(g,d,Ya(a,g,j)),g.styleClasses&&(g.styleClasses.bgClass&&(d.bgClass=i(g.styleClasses.bgClass,d.bgClass||"")),g.styleClasses.textClass&&(d.textClass=i(g.styleClasses.textClass,d.textClass||""))),0==d.map.length&&d.map.push(0,0,d.content.appendChild(Ma(a.display.measure))),0==f?(b.measure.map=d.map,b.measure.cache={}):((b.measure.maps||(b.measure.maps=[])).push(d.map),(b.measure.caches||(b.measure.caches=[])).push({}))}if(wg){var k=d.content.lastChild;(/\bcm-tab\b/.test(k.className)||k.querySelector&&k.querySelector(".cm-tab"))&&(d.content.className="cm-tab-wrap-hack")}return Ba(a,"renderLine",a,b.line,d.pre),d.pre.className&&(d.textClass=i(d.pre.className,d.textClass||"")),d}function kb(a){var b=d("span","•","cm-invalidchar");return b.title="\\u"+a.charCodeAt(0).toString(16),b.setAttribute("aria-label",b.title),b}function lb(a,b,c,e,f,g,h){if(b){var i,j=a.splitSpaces?mb(b,a.trailingSpace):b,k=a.cm.state.specialChars,l=!1;if(k.test(b)){i=document.createDocumentFragment();for(var m=0;;){k.lastIndex=m;var n=k.exec(b),p=n?n.index-m:b.length-m;if(p){var q=document.createTextNode(j.slice(m,m+p));ug&&vg<9?i.appendChild(d("span",[q])):i.appendChild(q),a.map.push(a.pos,a.pos+p,q),a.col+=p,a.pos+=p}if(!n)break;m+=p+1;var r=void 0;if("\t"==n[0]){var s=a.cm.options.tabSize,t=s-a.col%s;r=i.appendChild(d("span",o(t),"cm-tab")),r.setAttribute("role","presentation"),r.setAttribute("cm-text","\t"),a.col+=t}else"\r"==n[0]||"\n"==n[0]?(r=i.appendChild(d("span","\r"==n[0]?"␍":"␤","cm-invalidchar")),r.setAttribute("cm-text",n[0]),a.col+=1):(r=a.cm.options.specialCharPlaceholder(n[0]),r.setAttribute("cm-text",n[0]),ug&&vg<9?i.appendChild(d("span",[r])):i.appendChild(r),a.col+=1);a.map.push(a.pos,a.pos+1,r),a.pos++}}else a.col+=b.length,i=document.createTextNode(j),a.map.push(a.pos,a.pos+b.length,i),ug&&vg<9&&(l=!0),a.pos+=b.length;if(a.trailingSpace=32==j.charCodeAt(b.length-1),c||e||f||l||h){var u=c||"";e&&(u+=e),f&&(u+=f);var v=d("span",[i],u,h);return g&&(v.title=g),a.content.appendChild(v)}a.content.appendChild(i)}}function mb(a,b){if(a.length>1&&!/  /.test(a))return a;for(var c=b,d="",e=0;e<a.length;e++){var f=a.charAt(e);" "!=f||!c||e!=a.length-1&&32!=a.charCodeAt(e+1)||(f=" "),d+=f,c=" "==f}return d}function nb(a,b){return function(c,d,e,f,g,h,i){e=e?e+" cm-force-border":"cm-force-border";for(var j=c.pos,k=j+d.length;;){for(var l=void 0,m=0;m<b.length&&(l=b[m],!(l.to>j&&l.from<=j));m++);if(l.to>=k)return a(c,d,e,f,g,h,i);a(c,d.slice(0,l.to-j),e,f,null,h,i),f=null,d=d.slice(l.to-j),j=l.to}}}function ob(a,b,c,d){var e=!d&&c.widgetNode;e&&a.map.push(a.pos,a.pos+b,e),!d&&a.cm.display.input.needsContentAttribute&&(e||(e=a.content.appendChild(document.createElement("span"))),e.setAttribute("cm-marker",c.id)),e&&(a.cm.display.input.setUneditable(e),a.content.appendChild(e)),a.pos+=b,a.trailingSpace=!1}function pb(a,b,c){var d=a.markedSpans,e=a.text,f=0;if(d)for(var g,h,i,j,k,l,m,n=e.length,o=0,p=1,q="",r=0;;){if(r==o){i=j=k=l=h="",m=null,r=1/0;for(var s=[],t=void 0,u=0;u<d.length;++u){var v=d[u],w=v.marker;"bookmark"==w.type&&v.from==o&&w.widgetNode?s.push(w):v.from<=o&&(null==v.to||v.to>o||w.collapsed&&v.to==o&&v.from==o)?(null!=v.to&&v.to!=o&&r>v.to&&(r=v.to,j=""),w.className&&(i+=" "+w.className),w.css&&(h=(h?h+";":"")+w.css),w.startStyle&&v.from==o&&(k+=" "+w.startStyle),w.endStyle&&v.to==r&&(t||(t=[])).push(w.endStyle,v.to),w.title&&!l&&(l=w.title),w.collapsed&&(!m||ga(m.marker,w)<0)&&(m=v)):v.from>o&&r>v.from&&(r=v.from)}if(t)for(var x=0;x<t.length;x+=2)t[x+1]==r&&(j+=" "+t[x]);if(!m||m.from==o)for(var y=0;y<s.length;++y)ob(b,0,s[y]);if(m&&(m.from||0)==o){if(ob(b,(null==m.to?n+1:m.to)-o,m.marker,null==m.from),null==m.to)return;m.to==o&&(m=!1)}}if(o>=n)break;for(var z=Math.min(n,r);;){if(q){var A=o+q.length;if(!m){var B=A>z?q.slice(0,z-o):q;b.addToken(b,B,g?g+i:i,k,o+B.length==r?j:"",l,h)}if(A>=z){q=q.slice(z-o),o=z;break}o=A,k=""}q=e.slice(f,f=c[p++]),g=ib(c[p++],b.cm.options)}}else for(var C=1;C<c.length;C+=2)b.addToken(b,e.slice(f,f=c[C]),ib(c[C+1],b.cm.options))}function qb(a,b,c){this.line=b,this.rest=oa(b),this.size=this.rest?F(p(this.rest))-c+1:1,this.node=this.text=null,this.hidden=ra(a,b)}function rb(a,b,c){for(var d,e=[],f=b;f<c;f=d){var g=new qb(a.doc,B(a.doc,f),f);d=f+g.size,e.push(g)}return e}function sb(a){uh?uh.ops.push(a):a.ownsGroup=uh={ops:[a],delayedCallbacks:[]}}function tb(a){var b=a.delayedCallbacks,c=0;do{for(;c<b.length;c++)b[c].call(null);for(var d=0;d<a.ops.length;d++){var e=a.ops[d];if(e.cursorActivityHandlers)for(;e.cursorActivityCalled<e.cursorActivityHandlers.length;)e.cursorActivityHandlers[e.cursorActivityCalled++].call(null,e.cm)}}while(c<b.length)}function ub(a,b){var c=a.ownsGroup;if(c)try{tb(c)}finally{uh=null,b(c)}}function vb(a,b){var c=za(a,b);if(c.length){var d,e=Array.prototype.slice.call(arguments,2);uh?d=uh.delayedCallbacks:vh?d=vh:(d=vh=[],setTimeout(wb,0));for(var f=function(a){d.push((function(){return c[a].apply(null,e)}))},g=0;g<c.length;++g)f(g)}}function wb(){var a=vh;vh=null;for(var b=0;b<a.length;++b)a[b]()}function xb(a,b,c,d){for(var e=0;e<b.changes.length;e++){var f=b.changes[e];"text"==f?Bb(a,b):"gutter"==f?Db(a,b,c,d):"class"==f?Cb(a,b):"widget"==f&&Eb(a,b,d)}b.changes=null}function yb(a){return a.node==a.text&&(a.node=d("div",null,null,"position: relative"),a.text.parentNode&&a.text.parentNode.replaceChild(a.node,a.text),a.node.appendChild(a.text),ug&&vg<8&&(a.node.style.zIndex=2)),a.node}function zb(a,b){var c=b.bgClass?b.bgClass+" "+(b.line.bgClass||""):b.line.bgClass;if(c&&(c+=" CodeMirror-linebackground"),b.background)c?b.background.className=c:(b.background.parentNode.removeChild(b.background),b.background=null);else if(c){var e=yb(b);b.background=e.insertBefore(d("div",null,c),e.firstChild),a.display.input.setUneditable(b.background)}}function Ab(a,b){var c=a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):jb(a,b)}function Bb(a,b){var c=b.text.className,d=Ab(a,b);b.text==b.node&&(b.node=d.pre),b.text.parentNode.replaceChild(d.pre,b.text),b.text=d.pre,d.bgClass!=b.bgClass||d.textClass!=b.textClass?(b.bgClass=d.bgClass,b.textClass=d.textClass,Cb(a,b)):c&&(b.text.className=c)}function Cb(a,b){zb(a,b),b.line.wrapClass?yb(b).className=b.line.wrapClass:b.node!=b.text&&(b.node.className="");var c=b.textClass?b.textClass+" "+(b.line.textClass||""):b.line.textClass;b.text.className=c||""}function Db(a,b,c,e){if(b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null),b.gutterBackground&&(b.node.removeChild(b.gutterBackground),b.gutterBackground=null),b.line.gutterClass){var f=yb(b);b.gutterBackground=d("div",null,"CodeMirror-gutter-background "+b.line.gutterClass,"left: "+(a.options.fixedGutter?e.fixedPos:-e.gutterTotalWidth)+"px; width: "+e.gutterTotalWidth+"px"),a.display.input.setUneditable(b.gutterBackground),f.insertBefore(b.gutterBackground,b.text)}var g=b.line.gutterMarkers;if(a.options.lineNumbers||g){var h=yb(b),i=b.gutter=d("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter?e.fixedPos:-e.gutterTotalWidth)+"px");if(a.display.input.setUneditable(i),h.insertBefore(i,b.text),b.line.gutterClass&&(i.className+=" "+b.line.gutterClass),!a.options.lineNumbers||g&&g["CodeMirror-linenumbers"]||(b.lineNumber=i.appendChild(d("div",I(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+e.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px"))),g)for(var j=0;j<a.options.gutters.length;++j){var k=a.options.gutters[j],l=g.hasOwnProperty(k)&&g[k];l&&i.appendChild(d("div",[l],"CodeMirror-gutter-elt","left: "+e.gutterLeft[k]+"px; width: "+e.gutterWidth[k]+"px"))}}}function Eb(a,b,c){b.alignable&&(b.alignable=null);for(var d=b.node.firstChild,e=void 0;d;d=e)e=d.nextSibling,"CodeMirror-linewidget"==d.className&&b.node.removeChild(d);Gb(a,b,c)}function Fb(a,b,c,d){var e=Ab(a,b);return b.text=b.node=e.pre,e.bgClass&&(b.bgClass=e.bgClass),e.textClass&&(b.textClass=e.textClass),Cb(a,b),Db(a,b,c,d),Gb(a,b,d),b.node}function Gb(a,b,c){if(Hb(a,b.line,b,c,!0),b.rest)for(var d=0;d<b.rest.length;d++)Hb(a,b.rest[d],b,c,!1)}function Hb(a,b,c,e,f){if(b.widgets)for(var g=yb(c),h=0,i=b.widgets;h<i.length;++h){var j=i[h],k=d("div",[j.node],"CodeMirror-linewidget");j.handleMouseEvents||k.setAttribute("cm-ignore-events","true"),Ib(j,k,c,e),a.display.input.setUneditable(k),f&&j.above?g.insertBefore(k,c.gutter||c.text):g.appendChild(k),vb(j,"redraw")}}function Ib(a,b,c,d){if(a.noHScroll){(c.alignable||(c.alignable=[])).push(b);var e=d.wrapperWidth;b.style.left=d.fixedPos+"px",a.coverGutter||(e-=d.gutterTotalWidth,b.style.paddingLeft=d.gutterTotalWidth+"px"),b.style.width=e+"px"}a.coverGutter&&(b.style.zIndex=5,b.style.position="relative",a.noHScroll||(b.style.marginLeft=-d.gutterTotalWidth+"px"))}function Jb(a){if(null!=a.height)return a.height;var b=a.doc.cm;if(!b)return 0;if(!f(document.body,a.node)){var e="position: relative;";a.coverGutter&&(e+="margin-left: -"+b.display.gutters.offsetWidth+"px;"),a.noHScroll&&(e+="width: "+b.display.wrapper.clientWidth+"px;"),c(b.display.measure,d("div",[a.node],null,e))}return a.height=a.node.parentNode.offsetHeight}function Kb(a,b){for(var c=Ka(b);c!=a.wrapper;c=c.parentNode)if(!c||1==c.nodeType&&"true"==c.getAttribute("cm-ignore-events")||c.parentNode==a.sizer&&c!=a.mover)return!0}function Lb(a){return a.lineSpace.offsetTop}function Mb(a){return a.mover.offsetHeight-a.lineSpace.offsetHeight}function Nb(a){if(a.cachedPaddingH)return a.cachedPaddingH;var b=c(a.measure,d("pre","x")),e=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle,f={left:parseInt(e.paddingLeft),right:parseInt(e.paddingRight)};return isNaN(f.left)||isNaN(f.right)||(a.cachedPaddingH=f),f}function Ob(a){return Sg-a.display.nativeBarWidth}function Pb(a){return a.display.scroller.clientWidth-Ob(a)-a.display.barWidth}function Qb(a){return a.display.scroller.clientHeight-Ob(a)-a.display.barHeight}function Rb(a,b,c){var d=a.options.lineWrapping,e=d&&Pb(a);if(!b.measure.heights||d&&b.measure.width!=e){var f=b.measure.heights=[];if(d){b.measure.width=e;for(var g=b.text.firstChild.getClientRects(),h=0;h<g.length-1;h++){var i=g[h],j=g[h+1];Math.abs(i.bottom-j.bottom)>2&&f.push((i.bottom+j.top)/2-c.top)}}f.push(c.bottom-c.top)}}function Sb(a,b,c){if(a.line==b)return{map:a.measure.map,cache:a.measure.cache};for(var d=0;d<a.rest.length;d++)if(a.rest[d]==b)return{map:a.measure.maps[d],cache:a.measure.caches[d]};for(var e=0;e<a.rest.length;e++)if(F(a.rest[e])>c)return{map:a.measure.maps[e],cache:a.measure.caches[e],before:!0}}function Tb(a,b){b=ma(b);var d=F(b),e=a.display.externalMeasured=new qb(a.doc,b,d);e.lineN=d;var f=e.built=jb(a,e);return e.text=f.pre,c(a.display.lineMeasure,f.pre),e}function Ub(a,b,c,d){return Xb(a,Wb(a,b),c,d)}function Vb(a,b){if(b>=a.display.viewFrom&&b<a.display.viewTo)return a.display.view[Ac(a,b)];var c=a.display.externalMeasured;return c&&b>=c.lineN&&b<c.lineN+c.size?c:void 0}function Wb(a,b){var c=F(b),d=Vb(a,c);d&&!d.text?d=null:d&&d.changes&&(xb(a,d,c,vc(a)),a.curOp.forceUpdate=!0),d||(d=Tb(a,b));var e=Sb(d,b,c);return{line:b,view:d,rect:null,map:e.map,cache:e.cache,before:e.before,hasHeights:!1}}function Xb(a,b,c,d,e){b.before&&(c=-1);var f,g=c+(d||"");return b.cache.hasOwnProperty(g)?f=b.cache[g]:(b.rect||(b.rect=b.view.text.getBoundingClientRect()),b.hasHeights||(Rb(a,b.view,b.rect),b.hasHeights=!0),f=$b(a,b,c,d),f.bogus||(b.cache[g]=f)),{left:f.left,right:f.right,top:e?f.rtop:f.top,bottom:e?f.rbottom:f.bottom}}function Yb(a,b,c){for(var d,e,f,g,h,i,j=0;j<a.length;j+=3)if(h=a[j],i=a[j+1],b<h?(e=0,f=1,g="left"):b<i?(e=b-h,f=e+1):(j==a.length-3||b==i&&a[j+3]>b)&&(f=i-h,e=f-1,b>=i&&(g="right")),null!=e){if(d=a[j+2],h==i&&c==(d.insertLeft?"left":"right")&&(g=c),"left"==c&&0==e)for(;j&&a[j-2]==a[j-3]&&a[j-1].insertLeft;)d=a[(j-=3)+2],g="left";if("right"==c&&e==i-h)for(;j<a.length-3&&a[j+3]==a[j+4]&&!a[j+5].insertLeft;)d=a[(j+=3)+2],g="right";break}return{node:d,start:e,end:f,collapse:g,coverStart:h,coverEnd:i}}function Zb(a,b){var c=wh;
if("left"==b)for(var d=0;d<a.length&&(c=a[d]).left==c.right;d++);else for(var e=a.length-1;e>=0&&(c=a[e]).left==c.right;e--);return c}function $b(a,b,c,d){var e,f=Yb(b.map,c,d),g=f.node,h=f.start,i=f.end,j=f.collapse;if(3==g.nodeType){for(var k=0;k<4;k++){for(;h&&x(b.line.text.charAt(f.coverStart+h));)--h;for(;f.coverStart+i<f.coverEnd&&x(b.line.text.charAt(f.coverStart+i));)++i;if(e=ug&&vg<9&&0==h&&i==f.coverEnd-f.coverStart?g.parentNode.getBoundingClientRect():Zb(Kg(g,h,i).getClientRects(),d),e.left||e.right||0==h)break;i=h,h-=1,j="right"}ug&&vg<11&&(e=_b(a.display.measure,e))}else{h>0&&(j=d="right");var l;e=a.options.lineWrapping&&(l=g.getClientRects()).length>1?l["right"==d?l.length-1:0]:g.getBoundingClientRect()}if(ug&&vg<9&&!h&&(!e||!e.left&&!e.right)){var m=g.parentNode.getClientRects()[0];e=m?{left:m.left,right:m.left+uc(a.display),top:m.top,bottom:m.bottom}:wh}for(var n=e.top-b.rect.top,o=e.bottom-b.rect.top,p=(n+o)/2,q=b.view.measure.heights,r=0;r<q.length-1&&!(p<q[r]);r++);var s=r?q[r-1]:0,t=q[r],u={left:("right"==j?e.right:e.left)-b.rect.left,right:("left"==j?e.left:e.right)-b.rect.left,top:s,bottom:t};return e.left||e.right||(u.bogus=!0),a.options.singleCursorHeightPerLine||(u.rtop=n,u.rbottom=o),u}function _b(a,b){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!Oa(a))return b;var c=screen.logicalXDPI/screen.deviceXDPI,d=screen.logicalYDPI/screen.deviceYDPI;return{left:b.left*c,right:b.right*c,top:b.top*d,bottom:b.bottom*d}}function ac(a){if(a.measure&&(a.measure.cache={},a.measure.heights=null,a.rest))for(var b=0;b<a.rest.length;b++)a.measure.caches[b]={}}function bc(a){a.display.externalMeasure=null,b(a.display.lineMeasure);for(var c=0;c<a.display.view.length;c++)ac(a.display.view[c])}function cc(a){bc(a),a.display.cachedCharWidth=a.display.cachedTextHeight=a.display.cachedPaddingH=null,a.options.lineWrapping||(a.display.maxLineChanged=!0),a.display.lineNumChars=null}function dc(){return yg&&Eg?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ec(){return yg&&Eg?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function fc(a){var b=0;if(a.widgets)for(var c=0;c<a.widgets.length;++c)a.widgets[c].above&&(b+=Jb(a.widgets[c]));return b}function gc(a,b,c,d,e){if(!e){var f=fc(b);c.top+=f,c.bottom+=f}if("line"==d)return c;d||(d="local");var g=ta(b);if("local"==d?g+=Lb(a.display):g-=a.display.viewOffset,"page"==d||"window"==d){var h=a.display.lineSpace.getBoundingClientRect();g+=h.top+("window"==d?0:ec());var i=h.left+("window"==d?0:dc());c.left+=i,c.right+=i}return c.top+=g,c.bottom+=g,c}function hc(a,b,c){if("div"==c)return b;var d=b.left,e=b.top;if("page"==c)d-=dc(),e-=ec();else if("local"==c||!c){var f=a.display.sizer.getBoundingClientRect();d+=f.left,e+=f.top}var g=a.display.lineSpace.getBoundingClientRect();return{left:d-g.left,top:e-g.top}}function ic(a,b,c,d,e){return d||(d=B(a.doc,b.line)),gc(a,d,Ub(a,d,b.ch,e),c)}function jc(a,b,c,d,e,f){function g(b,g){var h=Xb(a,e,b,g?"right":"left",f);return g?h.left=h.right:h.right=h.left,gc(a,d,h,c)}function h(a,b,c){var d=i[b],e=1==d.level;return g(c?a-1:a,e!=c)}d=d||B(a.doc,b.line),e||(e=Wb(a,d));var i=ya(d,a.doc.direction),j=b.ch,k=b.sticky;if(j>=d.text.length?(j=d.text.length,k="before"):j<=0&&(j=0,k="after"),!i)return g("before"==k?j-1:j,"before"==k);var l=xa(i,j,k),m=ah,n=h(j,l,"before"==k);return null!=m&&(n.other=h(j,m,"before"!=k)),n}function kc(a,b){var c=0;b=Q(a.doc,b),a.options.lineWrapping||(c=uc(a.display)*b.ch);var d=B(a.doc,b.line),e=ta(d)+Lb(a.display);return{left:c,right:c,top:e,bottom:e+d.height}}function lc(a,b,c,d,e){var f=J(a,b,c);return f.xRel=e,d&&(f.outside=!0),f}function mc(a,b,c){var d=a.doc;if(c+=a.display.viewOffset,c<0)return lc(d.first,0,null,!0,-1);var e=G(d,c),f=d.first+d.size-1;if(e>f)return lc(d.first+d.size-1,B(d,f).text.length,null,!0,1);b<0&&(b=0);for(var g=B(d,e);;){var h=qc(a,g,e,b,c),i=ka(g,h.ch+(h.xRel>0?1:0));if(!i)return h;var j=i.find(1);if(j.line==e)return j;g=B(d,e=j.line)}}function nc(a,b,c,d){d-=fc(b);var e=b.text.length,f=z((function(b){return Xb(a,c,b-1).bottom<=d}),e,0);return e=z((function(b){return Xb(a,c,b).top>d}),f,e),{begin:f,end:e}}function oc(a,b,c,d){c||(c=Wb(a,b));var e=gc(a,b,Xb(a,c,d),"line").top;return nc(a,b,c,e)}function pc(a,b,c,d){return!(a.bottom<=c)&&(a.top>c||(d?a.left:a.right)>b)}function qc(a,b,c,d,e){e-=ta(b);var f=Wb(a,b),g=fc(b),h=0,i=b.text.length,j=!0,k=ya(b,a.doc.direction);if(k){var l=(a.options.lineWrapping?sc:rc)(a,b,c,f,k,d,e);j=1!=l.level,h=j?l.from:l.to-1,i=j?l.to:l.from-1}var m,n,o=null,p=null,q=z((function(b){var c=Xb(a,f,b);return c.top+=g,c.bottom+=g,!!pc(c,d,e,!1)&&(c.top<=e&&c.left<=d&&(o=b,p=c),!0)}),h,i),r=!1;if(p){var s=d-p.left<p.right-d,t=s==j;q=o+(t?0:1),n=t?"after":"before",m=s?p.left:p.right}else{j||q!=i&&q!=h||q++,n=0==q?"after":q==b.text.length?"before":Xb(a,f,q-(j?1:0)).bottom+g<=e==j?"after":"before";var u=jc(a,J(c,q,n),"line",b,f);m=u.left,r=e<u.top||e>=u.bottom}return q=y(b.text,q,1),lc(c,q,n,r,d-m)}function rc(a,b,c,d,e,f,g){var h=z((function(h){var i=e[h],j=1!=i.level;return pc(jc(a,J(c,j?i.to:i.from,j?"before":"after"),"line",b,d),f,g,!0)}),0,e.length-1),i=e[h];if(h>0){var j=1!=i.level,k=jc(a,J(c,j?i.from:i.to,j?"after":"before"),"line",b,d);pc(k,f,g,!0)&&k.top>g&&(i=e[h-1])}return i}function sc(a,b,c,d,e,f,g){var h=nc(a,b,d,g),i=h.begin,j=h.end;/\s/.test(b.text.charAt(j-1))&&j--;for(var k=null,l=null,m=0;m<e.length;m++){var n=e[m];if(!(n.from>=j||n.to<=i)){var o=1!=n.level,p=Xb(a,d,o?Math.min(j,n.to)-1:Math.max(i,n.from)).right,q=p<f?f-p+1e9:p-f;(!k||l>q)&&(k=n,l=q)}}return k||(k=e[e.length-1]),k.from<i&&(k={from:i,to:k.to,level:k.level}),k.to>j&&(k={from:k.from,to:j,level:k.level}),k}function tc(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==rh){rh=d("pre");for(var e=0;e<49;++e)rh.appendChild(document.createTextNode("x")),rh.appendChild(d("br"));rh.appendChild(document.createTextNode("x"))}c(a.measure,rh);var f=rh.offsetHeight/50;return f>3&&(a.cachedTextHeight=f),b(a.measure),f||1}function uc(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var b=d("span","xxxxxxxxxx"),e=d("pre",[b]);c(a.measure,e);var f=b.getBoundingClientRect(),g=(f.right-f.left)/10;return g>2&&(a.cachedCharWidth=g),g||10}function vc(a){for(var b=a.display,c={},d={},e=b.gutters.clientLeft,f=b.gutters.firstChild,g=0;f;f=f.nextSibling,++g)c[a.options.gutters[g]]=f.offsetLeft+f.clientLeft+e,d[a.options.gutters[g]]=f.clientWidth;return{fixedPos:wc(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:c,gutterWidth:d,wrapperWidth:b.wrapper.clientWidth}}function wc(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function xc(a){var b=tc(a.display),c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/uc(a.display)-3);return function(e){if(ra(a.doc,e))return 0;var f=0;if(e.widgets)for(var g=0;g<e.widgets.length;g++)e.widgets[g].height&&(f+=e.widgets[g].height);return c?f+(Math.ceil(e.text.length/d)||1)*b:f+b}}function yc(a){var b=a.doc,c=xc(a);b.iter((function(a){var b=c(a);b!=a.height&&E(a,b)}))}function zc(a,b,c,d){var e=a.display;if(!c&&"true"==Ka(b).getAttribute("cm-not-content"))return null;var f,g,h=e.lineSpace.getBoundingClientRect();try{f=b.clientX-h.left,g=b.clientY-h.top}catch(a){return null}var i,j=mc(a,f,g);if(d&&1==j.xRel&&(i=B(a.doc,j.line).text).length==j.ch){var k=l(i,i.length,a.options.tabSize)-i.length;j=J(j.line,Math.max(0,Math.round((f-Nb(a.display).left)/uc(a.display))-k))}return j}function Ac(a,b){if(b>=a.display.viewTo)return null;if(b-=a.display.viewFrom,b<0)return null;for(var c=a.display.view,d=0;d<c.length;d++)if(b-=c[d].size,b<0)return d}function Bc(a){a.display.input.showSelection(a.display.input.prepareSelection())}function Cc(a,b){void 0===b&&(b=!0);for(var c=a.doc,d={},e=d.cursors=document.createDocumentFragment(),f=d.selection=document.createDocumentFragment(),g=0;g<c.sel.ranges.length;g++)if(b||g!=c.sel.primIndex){var h=c.sel.ranges[g];if(!(h.from().line>=a.display.viewTo||h.to().line<a.display.viewFrom)){var i=h.empty();(i||a.options.showCursorWhenSelecting)&&Dc(a,h.head,e),i||Fc(a,h,f)}}return d}function Dc(a,b,c){var e=jc(a,b,"div",null,null,!a.options.singleCursorHeightPerLine),f=c.appendChild(d("div"," ","CodeMirror-cursor"));if(f.style.left=e.left+"px",f.style.top=e.top+"px",f.style.height=Math.max(0,e.bottom-e.top)*a.options.cursorHeight+"px",e.other){var g=c.appendChild(d("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));g.style.display="",g.style.left=e.other.left+"px",g.style.top=e.other.top+"px",g.style.height=.85*(e.other.bottom-e.other.top)+"px"}}function Ec(a,b){return a.top-b.top||a.left-b.left}function Fc(a,b,c){function e(a,b,c,e){b<0&&(b=0),b=Math.round(b),e=Math.round(e),i.appendChild(d("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px;\n                             top: "+b+"px; width: "+(null==c?l-a:c)+"px;\n                             height: "+(e-b)+"px"))}function f(b,c,d){function f(c,d){return ic(a,J(b,c),"div",n,d)}function g(b,c,d){var e=oc(a,n,null,b),g="ltr"==c==("after"==d)?"left":"right",h="after"==d?e.begin:e.end-(/\s/.test(n.text.charAt(e.end-1))?2:1);return f(h,g)[g]}var i,j,n=B(h,b),o=n.text.length,p=ya(n,h.direction);return wa(p,c||0,null==d?o:d,(function(a,b,h,n){var q="ltr"==h,r=f(a,q?"left":"right"),s=f(b-1,q?"right":"left"),t=null==c&&0==a,u=null==d&&b==o,v=0==n,w=!p||n==p.length-1;if(s.top-r.top<=3){var x=(m?t:u)&&v,y=(m?u:t)&&w,z=x?k:(q?r:s).left,A=y?l:(q?s:r).right;e(z,r.top,A-z,r.bottom)}else{var B,C,D,E;q?(B=m&&t&&v?k:r.left,C=m?l:g(a,h,"before"),D=m?k:g(b,h,"after"),E=m&&u&&w?l:s.right):(B=m?g(a,h,"before"):k,C=!m&&t&&v?l:r.right,D=!m&&u&&w?k:s.left,E=m?g(b,h,"after"):l),e(B,r.top,C-B,r.bottom),r.bottom<s.top&&e(k,r.bottom,null,s.top),e(D,s.top,E-D,s.bottom)}(!i||Ec(r,i)<0)&&(i=r),Ec(s,i)<0&&(i=s),(!j||Ec(r,j)<0)&&(j=r),Ec(s,j)<0&&(j=s)})),{start:i,end:j}}var g=a.display,h=a.doc,i=document.createDocumentFragment(),j=Nb(a.display),k=j.left,l=Math.max(g.sizerWidth,Pb(a)-g.sizer.offsetLeft)-j.right,m="ltr"==h.direction,n=b.from(),o=b.to();if(n.line==o.line)f(n.line,n.ch,o.ch);else{var p=B(h,n.line),q=B(h,o.line),r=ma(p)==ma(q),s=f(n.line,n.ch,r?p.text.length+1:null).end,t=f(o.line,r?0:null,o.ch).start;r&&(s.top<t.top-2?(e(s.right,s.top,null,s.bottom),e(k,t.top,t.left,t.bottom)):e(s.right,s.top,t.left-s.right,s.bottom)),s.bottom<t.top&&e(k,s.bottom,null,t.top)}c.appendChild(i)}function Gc(a){if(a.state.focused){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursorDiv.style.visibility="",a.options.cursorBlinkRate>0?b.blinker=setInterval((function(){return b.cursorDiv.style.visibility=(c=!c)?"":"hidden"}),a.options.cursorBlinkRate):a.options.cursorBlinkRate<0&&(b.cursorDiv.style.visibility="hidden")}}function Hc(a){a.state.focused||(a.display.input.focus(),Jc(a))}function Ic(a){a.state.delayingBlurEvent=!0,setTimeout((function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,Kc(a))}),100)}function Jc(a,b){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1),"nocursor"!=a.options.readOnly&&(a.state.focused||(Ba(a,"focus",a,b),a.state.focused=!0,h(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),wg&&setTimeout((function(){return a.display.input.reset(!0)}),20)),a.display.input.receivedFocus()),Gc(a))}function Kc(a,b){a.state.delayingBlurEvent||(a.state.focused&&(Ba(a,"blur",a,b),a.state.focused=!1,Ng(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout((function(){a.state.focused||(a.display.shift=!1)}),150))}function Lc(a){for(var b=a.display,c=b.lineDiv.offsetTop,d=0;d<b.view.length;d++){var e=b.view[d],f=void 0;if(!e.hidden){if(ug&&vg<8){var g=e.node.offsetTop+e.node.offsetHeight;f=g-c,c=g}else{var h=e.node.getBoundingClientRect();f=h.bottom-h.top}var i=e.line.height-f;if(f<2&&(f=tc(b)),(i>.005||i<-.005)&&(E(e.line,f),Mc(e.line),e.rest))for(var j=0;j<e.rest.length;j++)Mc(e.rest[j])}}}function Mc(a){if(a.widgets)for(var b=0;b<a.widgets.length;++b){var c=a.widgets[b],d=c.node.parentNode;d&&(c.height=d.offsetHeight)}}function Nc(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop;d=Math.floor(d-Lb(a));var e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight,f=G(b,d),g=G(b,e);if(c&&c.ensure){var h=c.ensure.from.line,i=c.ensure.to.line;h<f?(f=h,g=G(b,ta(B(b,h))+a.wrapper.clientHeight)):Math.min(i,b.lastLine())>=g&&(f=G(b,ta(B(b,i))-a.wrapper.clientHeight),g=i)}return{from:f,to:Math.max(g,f+1)}}function Oc(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=wc(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g<c.length;g++)if(!c[g].hidden){a.options.fixedGutter&&(c[g].gutter&&(c[g].gutter.style.left=f),c[g].gutterBackground&&(c[g].gutterBackground.style.left=f));var h=c[g].alignable;if(h)for(var i=0;i<h.length;i++)h[i].style.left=f}a.options.fixedGutter&&(b.gutters.style.left=d+e+"px")}}function Pc(a){if(!a.options.lineNumbers)return!1;var b=a.doc,c=I(a.options,b.first+b.size-1),e=a.display;if(c.length!=e.lineNumChars){var f=e.measure.appendChild(d("div",[d("div",c)],"CodeMirror-linenumber CodeMirror-gutter-elt")),g=f.firstChild.offsetWidth,h=f.offsetWidth-g;return e.lineGutter.style.width="",e.lineNumInnerWidth=Math.max(g,e.lineGutter.offsetWidth-h)+1,e.lineNumWidth=e.lineNumInnerWidth+h,e.lineNumChars=e.lineNumInnerWidth?c.length:-1,e.lineGutter.style.width=e.lineNumWidth+"px",Gd(a),!0}return!1}function Qc(a,b){if(!Ca(a,"scrollCursorIntoView")){var c=a.display,e=c.sizer.getBoundingClientRect(),f=null;if(b.top+e.top<0?f=!0:b.bottom+e.top>(window.innerHeight||document.documentElement.clientHeight)&&(f=!1),null!=f&&!Cg){var g=d("div","​",null,"position: absolute;\n                         top: "+(b.top-c.viewOffset-Lb(a.display))+"px;\n                         height: "+(b.bottom-b.top+Ob(a)+c.barHeight)+"px;\n                         left: "+b.left+"px; width: "+Math.max(2,b.right-b.left)+"px;");a.display.lineSpace.appendChild(g),g.scrollIntoView(f),a.display.lineSpace.removeChild(g)}}}function Rc(a,b,c,d){null==d&&(d=0);var e;a.options.lineWrapping||b!=c||(b=b.ch?J(b.line,"before"==b.sticky?b.ch-1:b.ch,"after"):b,c="before"==b.sticky?J(b.line,b.ch+1,"before"):b);for(var f=0;f<5;f++){var g=!1,h=jc(a,b),i=c&&c!=b?jc(a,c):h;e={left:Math.min(h.left,i.left),top:Math.min(h.top,i.top)-d,right:Math.max(h.left,i.left),bottom:Math.max(h.bottom,i.bottom)+d};var j=Tc(a,e),k=a.doc.scrollTop,l=a.doc.scrollLeft;if(null!=j.scrollTop&&($c(a,j.scrollTop),Math.abs(a.doc.scrollTop-k)>1&&(g=!0)),null!=j.scrollLeft&&(ad(a,j.scrollLeft),Math.abs(a.doc.scrollLeft-l)>1&&(g=!0)),!g)break}return e}function Sc(a,b){var c=Tc(a,b);null!=c.scrollTop&&$c(a,c.scrollTop),null!=c.scrollLeft&&ad(a,c.scrollLeft)}function Tc(a,b){var c=a.display,d=tc(a.display);b.top<0&&(b.top=0);var e=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:c.scroller.scrollTop,f=Qb(a),g={};b.bottom-b.top>f&&(b.bottom=b.top+f);var h=a.doc.height+Mb(c),i=b.top<d,j=b.bottom>h-d;if(b.top<e)g.scrollTop=i?0:b.top;else if(b.bottom>e+f){var k=Math.min(b.top,(j?h:b.bottom)-f);k!=e&&(g.scrollTop=k)}var l=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:c.scroller.scrollLeft,m=Pb(a)-(a.options.fixedGutter?c.gutters.offsetWidth:0),n=b.right-b.left>m;return n&&(b.right=b.left+m),b.left<10?g.scrollLeft=0:b.left<l?g.scrollLeft=Math.max(0,b.left-(n?0:10)):b.right>m+l-3&&(g.scrollLeft=b.right+(n?0:10)-m),g}function Uc(a,b){null!=b&&(Yc(a),a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+b)}function Vc(a){Yc(a);var b=a.getCursor();a.curOp.scrollToPos={from:b,to:b,margin:a.options.cursorScrollMargin}}function Wc(a,b,c){null==b&&null==c||Yc(a),null!=b&&(a.curOp.scrollLeft=b),null!=c&&(a.curOp.scrollTop=c)}function Xc(a,b){Yc(a),a.curOp.scrollToPos=b}function Yc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=kc(a,b.from),d=kc(a,b.to);Zc(a,c,d,b.margin)}}function Zc(a,b,c,d){var e=Tc(a,{left:Math.min(b.left,c.left),top:Math.min(b.top,c.top)-d,right:Math.max(b.right,c.right),bottom:Math.max(b.bottom,c.bottom)+d});Wc(a,e.scrollLeft,e.scrollTop)}function $c(a,b){Math.abs(a.doc.scrollTop-b)<2||(qg||Ed(a,{top:b}),_c(a,b,!0),qg&&Ed(a),xd(a,100))}function _c(a,b,c){b=Math.min(a.display.scroller.scrollHeight-a.display.scroller.clientHeight,b),(a.display.scroller.scrollTop!=b||c)&&(a.doc.scrollTop=b,a.display.scrollbars.setScrollTop(b),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b))}function ad(a,b,c,d){b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),(c?b==a.doc.scrollLeft:Math.abs(a.doc.scrollLeft-b)<2)&&!d||(a.doc.scrollLeft=b,Oc(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function bd(a){var b=a.display,c=b.gutters.offsetWidth,d=Math.round(a.doc.height+Mb(a.display));return{clientHeight:b.scroller.clientHeight,viewHeight:b.wrapper.clientHeight,scrollWidth:b.scroller.scrollWidth,clientWidth:b.scroller.clientWidth,viewWidth:b.wrapper.clientWidth,barLeft:a.options.fixedGutter?c:0,docHeight:d,scrollHeight:d+Ob(a)+b.barHeight,nativeBarWidth:b.nativeBarWidth,gutterWidth:c}}function cd(a,b){b||(b=bd(a));var c=a.display.barWidth,d=a.display.barHeight;dd(a,b);for(var e=0;e<4&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=a.display.barWidth&&a.options.lineWrapping&&Lc(a),dd(a,bd(a)),c=a.display.barWidth,d=a.display.barHeight}function dd(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px",c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px",c.heightForcer.style.borderBottom=d.bottom+"px solid transparent",d.right&&d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=d.bottom+"px",c.scrollbarFiller.style.width=d.right+"px"):c.scrollbarFiller.style.display="",d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function ed(a){a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&Ng(a.display.wrapper,a.display.scrollbars.addClass)),a.display.scrollbars=new zh[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller),dh(b,"mousedown",(function(){a.state.focused&&setTimeout((function(){return a.display.input.focus()}),0)})),b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?ad(a,b):$c(a,b)},a),a.display.scrollbars.addClass&&h(a.display.wrapper,a.display.scrollbars.addClass)}function fd(a){a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ah},sb(a.curOp)}function gd(a){var b=a.curOp;ub(b,(function(a){for(var b=0;b<a.ops.length;b++)a.ops[b].cm.curOp=null;hd(a)}))}function hd(a){for(var b=a.ops,c=0;c<b.length;c++)id(b[c]);for(var d=0;d<b.length;d++)jd(b[d]);for(var e=0;e<b.length;e++)kd(b[e]);for(var f=0;f<b.length;f++)ld(b[f]);for(var g=0;g<b.length;g++)md(b[g])}function id(a){var b=a.cm,c=b.display;zd(b),a.updateMaxLine&&va(b),a.mustUpdate=a.viewChanged||a.forceUpdate||null!=a.scrollTop||a.scrollToPos&&(a.scrollToPos.from.line<c.viewFrom||a.scrollToPos.to.line>=c.viewTo)||c.maxLineChanged&&b.options.lineWrapping,a.update=a.mustUpdate&&new Bh(b,a.mustUpdate&&{top:a.scrollTop,ensure:a.scrollToPos},a.forceUpdate)}function jd(a){a.updatedDisplay=a.mustUpdate&&Cd(a.cm,a.update)}function kd(a){var b=a.cm,c=b.display;a.updatedDisplay&&Lc(b),a.barMeasure=bd(b),c.maxLineChanged&&!b.options.lineWrapping&&(a.adjustWidthTo=Ub(b,c.maxLine,c.maxLine.text.length).left+3,b.display.sizerWidth=a.adjustWidthTo,a.barMeasure.scrollWidth=Math.max(c.scroller.clientWidth,c.sizer.offsetLeft+a.adjustWidthTo+Ob(b)+b.display.barWidth),a.maxScrollLeft=Math.max(0,c.sizer.offsetLeft+a.adjustWidthTo-Pb(b))),(a.updatedDisplay||a.selectionChanged)&&(a.preparedSelection=c.input.prepareSelection())}function ld(a){var b=a.cm;null!=a.adjustWidthTo&&(b.display.sizer.style.minWidth=a.adjustWidthTo+"px",a.maxScrollLeft<b.doc.scrollLeft&&ad(b,Math.min(b.display.scroller.scrollLeft,a.maxScrollLeft),!0),b.display.maxLineChanged=!1);var c=a.focus&&a.focus==g();a.preparedSelection&&b.display.input.showSelection(a.preparedSelection,c),(a.updatedDisplay||a.startHeight!=b.doc.height)&&cd(b,a.barMeasure),a.updatedDisplay&&Hd(b,a.barMeasure),a.selectionChanged&&Gc(b),b.state.focused&&a.updateInput&&b.display.input.reset(a.typing),c&&Hc(a.cm)}function md(a){var b=a.cm,c=b.display,d=b.doc;if(a.updatedDisplay&&Dd(b,a.update),null==c.wheelStartX||null==a.scrollTop&&null==a.scrollLeft&&!a.scrollToPos||(c.wheelStartX=c.wheelStartY=null),null!=a.scrollTop&&_c(b,a.scrollTop,a.forceScroll),null!=a.scrollLeft&&ad(b,a.scrollLeft,!0,!0),a.scrollToPos){var e=Rc(b,Q(d,a.scrollToPos.from),Q(d,a.scrollToPos.to),a.scrollToPos.margin);Qc(b,e)}var f=a.maybeHiddenMarkers,g=a.maybeUnhiddenMarkers;if(f)for(var h=0;h<f.length;++h)f[h].lines.length||Ba(f[h],"hide");if(g)for(var i=0;i<g.length;++i)g[i].lines.length&&Ba(g[i],"unhide");c.wrapper.offsetHeight&&(d.scrollTop=b.display.scroller.scrollTop),a.changeObjs&&Ba(b,"changes",b,a.changeObjs),a.update&&a.update.finish()}function nd(a,b){if(a.curOp)return b();fd(a);try{return b()}finally{gd(a)}}function od(a,b){return function(){if(a.curOp)return b.apply(a,arguments);fd(a);try{return b.apply(a,arguments)}finally{gd(a)}}}function pd(a){return function(){if(this.curOp)return a.apply(this,arguments);fd(this);try{return a.apply(this,arguments)}finally{gd(this)}}}function qd(a){return function(){var b=this.cm;if(!b||b.curOp)return a.apply(this,arguments);fd(b);try{return a.apply(this,arguments)}finally{gd(b)}}}function rd(a,b,c,d){null==b&&(b=a.doc.first),null==c&&(c=a.doc.first+a.doc.size),d||(d=0);var e=a.display;if(d&&c<e.viewTo&&(null==e.updateLineNumbers||e.updateLineNumbers>b)&&(e.updateLineNumbers=b),a.curOp.viewChanged=!0,b>=e.viewTo)_g&&pa(a.doc,b)<e.viewTo&&td(a);else if(c<=e.viewFrom)_g&&qa(a.doc,c+d)>e.viewFrom?td(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)td(a);else if(b<=e.viewFrom){var f=ud(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):td(a)}else if(c>=e.viewTo){var g=ud(a,b,b,-1);g?(e.view=e.view.slice(0,g.index),e.viewTo=g.lineN):td(a)}else{var h=ud(a,b,b,-1),i=ud(a,c,c+d,1);h&&i?(e.view=e.view.slice(0,h.index).concat(rb(a,h.lineN,i.lineN)).concat(e.view.slice(i.index)),e.viewTo+=d):td(a)}var j=e.externalMeasured;j&&(c<j.lineN?j.lineN+=d:b<j.lineN+j.size&&(e.externalMeasured=null))}function sd(a,b,c){a.curOp.viewChanged=!0;var d=a.display,e=a.display.externalMeasured;if(e&&b>=e.lineN&&b<e.lineN+e.size&&(d.externalMeasured=null),!(b<d.viewFrom||b>=d.viewTo)){var f=d.view[Ac(a,b)];if(null!=f.node){var g=f.changes||(f.changes=[]);m(g,c)==-1&&g.push(c)}}}function td(a){a.display.viewFrom=a.display.viewTo=a.doc.first,a.display.view=[],a.display.viewOffset=0}function ud(a,b,c,d){var e,f=Ac(a,b),g=a.display.view;if(!_g||c==a.doc.first+a.doc.size)return{index:f,lineN:c};for(var h=a.display.viewFrom,i=0;i<f;i++)h+=g[i].size;if(h!=b){if(d>0){if(f==g.length-1)return null;e=h+g[f].size-b,f++}else e=h-b;b+=e,c+=e}for(;pa(a.doc,c)!=c;){if(f==(d<0?0:g.length-1))return null;c+=d*g[f-(d<0?1:0)].size,f+=d}return{index:f,lineN:c}}function vd(a,b,c){var d=a.display,e=d.view;0==e.length||b>=d.viewTo||c<=d.viewFrom?(d.view=rb(a,b,c),d.viewFrom=b):(d.viewFrom>b?d.view=rb(a,b,d.viewFrom).concat(d.view):d.viewFrom<b&&(d.view=d.view.slice(Ac(a,b))),d.viewFrom=b,d.viewTo<c?d.view=d.view.concat(rb(a,d.viewTo,c)):d.viewTo>c&&(d.view=d.view.slice(0,Ac(a,c)))),d.viewTo=c}function wd(a){for(var b=a.display.view,c=0,d=0;d<b.length;d++){var e=b[d];e.hidden||e.node&&!e.changes||++c}return c}function xd(a,b){a.doc.highlightFrontier<a.display.viewTo&&a.state.highlight.set(b,j(yd,a))}function yd(a){var b=a.doc;if(!(b.highlightFrontier>=a.display.viewTo)){var c=+new Date+a.options.workTime,d=Za(a,b.highlightFrontier),e=[];b.iter(d.line,Math.min(b.first+b.size,a.display.viewTo+500),(function(f){if(d.line>=a.display.viewFrom){var g=f.styles,h=f.text.length>a.options.maxHighlightLength?Ua(b.mode,d.state):null,i=Xa(a,f,d,!0);h&&(d.state=h),f.styles=i.styles;var j=f.styleClasses,k=i.classes;k?f.styleClasses=k:j&&(f.styleClasses=null);for(var l=!g||g.length!=f.styles.length||j!=k&&(!j||!k||j.bgClass!=k.bgClass||j.textClass!=k.textClass),m=0;!l&&m<g.length;++m)l=g[m]!=f.styles[m];l&&e.push(d.line),f.stateAfter=d.save(),d.nextLine()}else f.text.length<=a.options.maxHighlightLength&&$a(a,f.text,d),f.stateAfter=d.line%5==0?d.save():null,d.nextLine();if(+new Date>c)return xd(a,a.options.workDelay),!0})),b.highlightFrontier=d.line,b.modeFrontier=Math.max(b.modeFrontier,d.line),e.length&&nd(a,(function(){for(var b=0;b<e.length;b++)sd(a,e[b],"text")}))}}function zd(a){var b=a.display;!b.scrollbarsClipped&&b.scroller.offsetWidth&&(b.nativeBarWidth=b.scroller.offsetWidth-b.scroller.clientWidth,b.heightForcer.style.height=Ob(a)+"px",b.sizer.style.marginBottom=-b.nativeBarWidth+"px",b.sizer.style.borderRightWidth=Ob(a)+"px",b.scrollbarsClipped=!0)}function Ad(a){if(a.hasFocus())return null;var b=g();if(!b||!f(a.display.lineDiv,b))return null;var c={activeElt:b};if(window.getSelection){var d=window.getSelection();d.anchorNode&&d.extend&&f(a.display.lineDiv,d.anchorNode)&&(c.anchorNode=d.anchorNode,c.anchorOffset=d.anchorOffset,c.focusNode=d.focusNode,c.focusOffset=d.focusOffset)}return c}function Bd(a){if(a&&a.activeElt&&a.activeElt!=g()&&(a.activeElt.focus(),a.anchorNode&&f(document.body,a.anchorNode)&&f(document.body,a.focusNode))){var b=window.getSelection(),c=document.createRange();c.setEnd(a.anchorNode,a.anchorOffset),c.collapse(!1),b.removeAllRanges(),b.addRange(c),b.extend(a.focusNode,a.focusOffset)}}function Cd(a,c){var d=a.display,e=a.doc;if(c.editorIsHidden)return td(a),!1;if(!c.force&&c.visible.from>=d.viewFrom&&c.visible.to<=d.viewTo&&(null==d.updateLineNumbers||d.updateLineNumbers>=d.viewTo)&&d.renderedView==d.view&&0==wd(a))return!1;Pc(a)&&(td(a),c.dims=vc(a));var f=e.first+e.size,g=Math.max(c.visible.from-a.options.viewportMargin,e.first),h=Math.min(f,c.visible.to+a.options.viewportMargin);d.viewFrom<g&&g-d.viewFrom<20&&(g=Math.max(e.first,d.viewFrom)),d.viewTo>h&&d.viewTo-h<20&&(h=Math.min(f,d.viewTo)),_g&&(g=pa(a.doc,g),h=qa(a.doc,h));var i=g!=d.viewFrom||h!=d.viewTo||d.lastWrapHeight!=c.wrapperHeight||d.lastWrapWidth!=c.wrapperWidth;vd(a,g,h),d.viewOffset=ta(B(a.doc,d.viewFrom)),a.display.mover.style.top=d.viewOffset+"px";var j=wd(a);if(!i&&0==j&&!c.force&&d.renderedView==d.view&&(null==d.updateLineNumbers||d.updateLineNumbers>=d.viewTo))return!1;var k=Ad(a);return j>4&&(d.lineDiv.style.display="none"),Fd(a,d.updateLineNumbers,c.dims),j>4&&(d.lineDiv.style.display=""),d.renderedView=d.view,Bd(k),b(d.cursorDiv),b(d.selectionDiv),d.gutters.style.height=d.sizer.style.minHeight=0,i&&(d.lastWrapHeight=c.wrapperHeight,d.lastWrapWidth=c.wrapperWidth,xd(a,400)),d.updateLineNumbers=null,!0}function Dd(a,b){for(var c=b.viewport,d=!0;(d&&a.options.lineWrapping&&b.oldDisplayWidth!=Pb(a)||(c&&null!=c.top&&(c={top:Math.min(a.doc.height+Mb(a.display)-Qb(a),c.top)}),b.visible=Nc(a.display,a.doc,c),!(b.visible.from>=a.display.viewFrom&&b.visible.to<=a.display.viewTo)))&&Cd(a,b);d=!1){Lc(a);var e=bd(a);Bc(a),cd(a,e),Hd(a,e),b.force=!1}b.signal(a,"update",a),a.display.viewFrom==a.display.reportedViewFrom&&a.display.viewTo==a.display.reportedViewTo||(b.signal(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo)}function Ed(a,b){var c=new Bh(a,b);if(Cd(a,c)){Lc(a),Dd(a,c);var d=bd(a);Bc(a),cd(a,d),Hd(a,d),c.finish()}}function Fd(a,c,d){function e(b){var c=b.nextSibling;return wg&&Gg&&a.display.currentWheelTarget==b?b.style.display="none":b.parentNode.removeChild(b),c}for(var f=a.display,g=a.options.lineNumbers,h=f.lineDiv,i=h.firstChild,j=f.view,k=f.viewFrom,l=0;l<j.length;l++){var n=j[l];if(n.hidden);else if(n.node&&n.node.parentNode==h){for(;i!=n.node;)i=e(i);var o=g&&null!=c&&c<=k&&n.lineNumber;n.changes&&(m(n.changes,"gutter")>-1&&(o=!1),xb(a,n,k,d)),o&&(b(n.lineNumber),n.lineNumber.appendChild(document.createTextNode(I(a.options,k)))),i=n.node.nextSibling}else{var p=Fb(a,n,k,d);h.insertBefore(p,i)}k+=n.size}for(;i;)i=e(i)}function Gd(a){var b=a.display.gutters.offsetWidth;a.display.sizer.style.marginLeft=b+"px"}function Hd(a,b){a.display.sizer.style.minHeight=b.docHeight+"px",a.display.heightForcer.style.top=b.docHeight+"px",a.display.gutters.style.height=b.docHeight+a.display.barHeight+Ob(a)+"px"}function Id(a){var c=a.display.gutters,e=a.options.gutters;b(c);for(var f=0;f<e.length;++f){var g=e[f],h=c.appendChild(d("div",null,"CodeMirror-gutter "+g));"CodeMirror-linenumbers"==g&&(a.display.lineGutter=h,h.style.width=(a.display.lineNumWidth||1)+"px")}c.style.display=f?"":"none",Gd(a)}function Jd(a){var b=m(a.gutters,"CodeMirror-linenumbers");b==-1&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]):b>-1&&!a.lineNumbers&&(a.gutters=a.gutters.slice(0),a.gutters.splice(b,1))}function Kd(a){var b=a.wheelDeltaX,c=a.wheelDeltaY;return null==b&&a.detail&&a.axis==a.HORIZONTAL_AXIS&&(b=a.detail),null==c&&a.detail&&a.axis==a.VERTICAL_AXIS?c=a.detail:null==c&&(c=a.wheelDelta),{x:b,y:c}}function Ld(a){var b=Kd(a);return b.x*=Dh,b.y*=Dh,b}function Md(a,b){var c=Kd(b),d=c.x,e=c.y,f=a.display,g=f.scroller,h=g.scrollWidth>g.clientWidth,i=g.scrollHeight>g.clientHeight;if(d&&h||e&&i){if(e&&Gg&&wg)a:for(var j=b.target,k=f.view;j!=g;j=j.parentNode)for(var l=0;l<k.length;l++)if(k[l].node==j){a.display.currentWheelTarget=j;break a}if(d&&!qg&&!zg&&null!=Dh)return e&&i&&$c(a,Math.max(0,g.scrollTop+e*Dh)),ad(a,Math.max(0,g.scrollLeft+d*Dh)),(!e||e&&i)&&Ga(b),void(f.wheelStartX=null);if(e&&null!=Dh){var m=e*Dh,n=a.doc.scrollTop,o=n+f.wrapper.clientHeight;m<0?n=Math.max(0,n+m-50):o=Math.min(a.doc.height,o+m+50),Ed(a,{top:n,bottom:o})}Ch<20&&(null==f.wheelStartX?(f.wheelStartX=g.scrollLeft,f.wheelStartY=g.scrollTop,f.wheelDX=d,f.wheelDY=e,setTimeout((function(){if(null!=f.wheelStartX){var a=g.scrollLeft-f.wheelStartX,b=g.scrollTop-f.wheelStartY,c=b&&f.wheelDY&&b/f.wheelDY||a&&f.wheelDX&&a/f.wheelDX;f.wheelStartX=f.wheelStartY=null,c&&(Dh=(Dh*Ch+c)/(Ch+1),++Ch)}}),200)):(f.wheelDX+=d,f.wheelDY+=e))}}function Nd(a,b){var c=a[b];a.sort((function(a,b){return K(a.from(),b.from())})),b=m(a,c);for(var d=1;d<a.length;d++){var e=a[d],f=a[d-1];if(K(f.to(),e.from())>=0){var g=O(f.from(),e.from()),h=N(f.to(),e.to()),i=f.empty()?e.from()==e.head:f.from()==f.head;d<=b&&--b,a.splice(--d,2,new Fh(i?h:g,i?g:h))}}return new Eh(a,b)}function Od(a,b){return new Eh([new Fh(a,b||a)],0)}function Pd(a){return a.text?J(a.from.line+a.text.length-1,p(a.text).length+(1==a.text.length?a.from.ch:0)):a.to}function Qd(a,b){if(K(a,b.from)<0)return a;if(K(a,b.to)<=0)return Pd(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;return a.line==b.to.line&&(d+=Pd(b).ch-b.to.ch),J(c,d)}function Rd(a,b){for(var c=[],d=0;d<a.sel.ranges.length;d++){var e=a.sel.ranges[d];c.push(new Fh(Qd(e.anchor,b),Qd(e.head,b)))}return Nd(c,a.sel.primIndex)}function Sd(a,b,c){return a.line==b.line?J(c.line,a.ch-b.ch+c.ch):J(c.line+(a.line-b.line),a.ch)}function Td(a,b,c){for(var d=[],e=J(a.first,0),f=e,g=0;g<b.length;g++){var h=b[g],i=Sd(h.from,e,f),j=Sd(Pd(h),e,f);if(e=h.to,f=j,"around"==c){var k=a.sel.ranges[g],l=K(k.head,k.anchor)<0;d[g]=new Fh(l?j:i,l?i:j)}else d[g]=new Fh(i,i)}return new Eh(d,a.sel.primIndex);
}function Ud(a){a.doc.mode=Sa(a.options,a.doc.modeOption),Vd(a)}function Vd(a){a.doc.iter((function(a){a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null)})),a.doc.modeFrontier=a.doc.highlightFrontier=a.doc.first,xd(a,100),a.state.modeGen++,a.curOp&&rd(a)}function Wd(a,b){return 0==b.from.ch&&0==b.to.ch&&""==p(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function Xd(a,b,c,d){function e(a){return c?c[a]:null}function f(a,c,e){gb(a,c,e,d),vb(a,"change",a,b)}function g(a,b){for(var c=[],f=a;f<b;++f)c.push(new qh(j[f],e(f),d));return c}var h=b.from,i=b.to,j=b.text,k=B(a,h.line),l=B(a,i.line),m=p(j),n=e(j.length-1),o=i.line-h.line;if(b.full)a.insert(0,g(0,j.length)),a.remove(j.length,a.size-j.length);else if(Wd(a,b)){var q=g(0,j.length-1);f(l,l.text,n),o&&a.remove(h.line,o),q.length&&a.insert(h.line,q)}else if(k==l)if(1==j.length)f(k,k.text.slice(0,h.ch)+m+k.text.slice(i.ch),n);else{var r=g(1,j.length-1);r.push(new qh(m+k.text.slice(i.ch),n,d)),f(k,k.text.slice(0,h.ch)+j[0],e(0)),a.insert(h.line+1,r)}else if(1==j.length)f(k,k.text.slice(0,h.ch)+j[0]+l.text.slice(i.ch),e(0)),a.remove(h.line+1,o);else{f(k,k.text.slice(0,h.ch)+j[0],e(0)),f(l,m+l.text.slice(i.ch),n);var s=g(1,j.length-1);o>1&&a.remove(h.line+1,o-1),a.insert(h.line+1,s)}vb(a,"change",a,b)}function Yd(a,b,c){function d(a,e,f){if(a.linked)for(var g=0;g<a.linked.length;++g){var h=a.linked[g];if(h.doc!=e){var i=f&&h.sharedHist;c&&!i||(b(h.doc,i),d(h.doc,a,i))}}}d(a,null,!0)}function Zd(a,b){if(b.cm)throw new Error("This document is already in use.");a.doc=b,b.cm=a,yc(a),Ud(a),$d(a),a.options.lineWrapping||va(a),a.options.mode=b.modeOption,rd(a)}function $d(a){("rtl"==a.doc.direction?h:Ng)(a.display.lineDiv,"CodeMirror-rtl")}function _d(a){nd(a,(function(){$d(a),rd(a)}))}function ae(a){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=a||1}function be(a,b){var c={from:M(b.from),to:Pd(b),text:C(a,b.from,b.to)};return ie(a,c,b.from.line,b.to.line+1),Yd(a,(function(a){return ie(a,c,b.from.line,b.to.line+1)}),!0),c}function ce(a){for(;a.length;){var b=p(a);if(!b.ranges)break;a.pop()}}function de(a,b){return b?(ce(a.done),p(a.done)):a.done.length&&!p(a.done).ranges?p(a.done):a.done.length>1&&!a.done[a.done.length-2].ranges?(a.done.pop(),p(a.done)):void 0}function ee(a,b,c,d){var e=a.history;e.undone.length=0;var f,g,h=+new Date;if((e.lastOp==d||e.lastOrigin==b.origin&&b.origin&&("+"==b.origin.charAt(0)&&e.lastModTime>h-(a.cm?a.cm.options.historyEventDelay:500)||"*"==b.origin.charAt(0)))&&(f=de(e,e.lastOp==d)))g=p(f.changes),0==K(b.from,b.to)&&0==K(b.from,g.to)?g.to=Pd(b):f.changes.push(be(a,b));else{var i=p(e.done);for(i&&i.ranges||he(a.sel,e.done),f={changes:[be(a,b)],generation:e.generation},e.done.push(f);e.done.length>e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift()}e.done.push(c),e.generation=++e.maxGeneration,e.lastModTime=e.lastSelTime=h,e.lastOp=e.lastSelOp=d,e.lastOrigin=e.lastSelOrigin=b.origin,g||Ba(a,"historyAdded")}function fe(a,b,c,d){var e=b.charAt(0);return"*"==e||"+"==e&&c.ranges.length==d.ranges.length&&c.somethingSelected()==d.somethingSelected()&&new Date-a.history.lastSelTime<=(a.cm?a.cm.options.historyEventDelay:500)}function ge(a,b,c,d){var e=a.history,f=d&&d.origin;c==e.lastSelOp||f&&e.lastSelOrigin==f&&(e.lastModTime==e.lastSelTime&&e.lastOrigin==f||fe(a,f,p(e.done),b))?e.done[e.done.length-1]=b:he(b,e.done),e.lastSelTime=+new Date,e.lastSelOrigin=f,e.lastSelOp=c,d&&d.clearRedo!==!1&&ce(e.undone)}function he(a,b){var c=p(b);c&&c.ranges&&c.equals(a)||b.push(a)}function ie(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),(function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans),++f}))}function je(a){if(!a)return null;for(var b,c=0;c<a.length;++c)a[c].marker.explicitlyCleared?b||(b=a.slice(0,c)):b&&b.push(a[c]);return b?b.length?b:null:a}function ke(a,b){var c=b["spans_"+a.id];if(!c)return null;for(var d=[],e=0;e<b.text.length;++e)d.push(je(c[e]));return d}function le(a,b){var c=ke(a,b),d=_(a,b);if(!c)return d;if(!d)return c;for(var e=0;e<c.length;++e){var f=c[e],g=d[e];if(f&&g)a:for(var h=0;h<g.length;++h){for(var i=g[h],j=0;j<f.length;++j)if(f[j].marker==i.marker)continue a;f.push(i)}else g&&(c[e]=g)}return c}function me(a,b,c){for(var d=[],e=0;e<a.length;++e){var f=a[e];if(f.ranges)d.push(c?Eh.prototype.deepCopy.call(f):f);else{var g=f.changes,h=[];d.push({changes:h});for(var i=0;i<g.length;++i){var j=g[i],k=void 0;if(h.push({from:j.from,to:j.to,text:j.text}),b)for(var l in j)(k=l.match(/^spans_(\d+)$/))&&m(b,Number(k[1]))>-1&&(p(h)[l]=j[l],delete j[l])}}}return d}function ne(a,b,c,d){if(d){var e=a.anchor;if(c){var f=K(b,e)<0;f!=K(c,e)<0?(e=b,b=c):f!=K(b,c)<0&&(b=c)}return new Fh(e,b)}return new Fh(c||b,b)}function oe(a,b,c,d,e){null==e&&(e=a.cm&&(a.cm.display.shift||a.extend)),ue(a,new Eh([ne(a.sel.primary(),b,c,e)],0),d)}function pe(a,b,c){for(var d=[],e=a.cm&&(a.cm.display.shift||a.extend),f=0;f<a.sel.ranges.length;f++)d[f]=ne(a.sel.ranges[f],b[f],null,e);var g=Nd(d,a.sel.primIndex);ue(a,g,c)}function qe(a,b,c,d){var e=a.sel.ranges.slice(0);e[b]=c,ue(a,Nd(e,a.sel.primIndex),d)}function re(a,b,c,d){ue(a,Od(b,c),d)}function se(a,b,c){var d={ranges:b.ranges,update:function(b){var c=this;this.ranges=[];for(var d=0;d<b.length;d++)c.ranges[d]=new Fh(Q(a,b[d].anchor),Q(a,b[d].head))},origin:c&&c.origin};return Ba(a,"beforeSelectionChange",a,d),a.cm&&Ba(a.cm,"beforeSelectionChange",a.cm,d),d.ranges!=b.ranges?Nd(d.ranges,d.ranges.length-1):b}function te(a,b,c){var d=a.history.done,e=p(d);e&&e.ranges?(d[d.length-1]=b,ve(a,b,c)):ue(a,b,c)}function ue(a,b,c){ve(a,b,c),ge(a,a.sel,a.cm?a.cm.curOp.id:NaN,c)}function ve(a,b,c){(Ea(a,"beforeSelectionChange")||a.cm&&Ea(a.cm,"beforeSelectionChange"))&&(b=se(a,b,c));var d=c&&c.bias||(K(b.primary().head,a.sel.primary().head)<0?-1:1);we(a,ye(a,b,d,!0)),c&&c.scroll===!1||!a.cm||Vc(a.cm)}function we(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,Da(a.cm)),vb(a,"cursorActivity",a))}function xe(a){we(a,ye(a,a.sel,null,!1))}function ye(a,b,c,d){for(var e,f=0;f<b.ranges.length;f++){var g=b.ranges[f],h=b.ranges.length==a.sel.ranges.length&&a.sel.ranges[f],i=Ae(a,g.anchor,h&&h.anchor,c,d),j=Ae(a,g.head,h&&h.head,c,d);(e||i!=g.anchor||j!=g.head)&&(e||(e=b.ranges.slice(0,f)),e[f]=new Fh(i,j))}return e?Nd(e,b.primIndex):b}function ze(a,b,c,d,e){var f=B(a,b.line);if(f.markedSpans)for(var g=0;g<f.markedSpans.length;++g){var h=f.markedSpans[g],i=h.marker;if((null==h.from||(i.inclusiveLeft?h.from<=b.ch:h.from<b.ch))&&(null==h.to||(i.inclusiveRight?h.to>=b.ch:h.to>b.ch))){if(e&&(Ba(i,"beforeCursorEnter"),i.explicitlyCleared)){if(f.markedSpans){--g;continue}break}if(!i.atomic)continue;if(c){var j=i.find(d<0?1:-1),k=void 0;if((d<0?i.inclusiveRight:i.inclusiveLeft)&&(j=Be(a,j,-d,j&&j.line==b.line?f:null)),j&&j.line==b.line&&(k=K(j,c))&&(d<0?k<0:k>0))return ze(a,j,b,d,e)}var l=i.find(d<0?-1:1);return(d<0?i.inclusiveLeft:i.inclusiveRight)&&(l=Be(a,l,d,l.line==b.line?f:null)),l?ze(a,l,b,d,e):null}}return b}function Ae(a,b,c,d,e){var f=d||1,g=ze(a,b,c,f,e)||!e&&ze(a,b,c,f,!0)||ze(a,b,c,-f,e)||!e&&ze(a,b,c,-f,!0);return g?g:(a.cantEdit=!0,J(a.first,0))}function Be(a,b,c,d){return c<0&&0==b.ch?b.line>a.first?Q(a,J(b.line-1)):null:c>0&&b.ch==(d||B(a,b.line)).text.length?b.line<a.first+a.size-1?J(b.line+1,0):null:new J(b.line,b.ch+c)}function Ce(a){a.setSelection(J(a.firstLine(),0),J(a.lastLine()),Ug)}function De(a,b,c){var d={canceled:!1,from:b.from,to:b.to,text:b.text,origin:b.origin,cancel:function(){return d.canceled=!0}};return c&&(d.update=function(b,c,e,f){b&&(d.from=Q(a,b)),c&&(d.to=Q(a,c)),e&&(d.text=e),void 0!==f&&(d.origin=f)}),Ba(a,"beforeChange",a,d),a.cm&&Ba(a.cm,"beforeChange",a.cm,d),d.canceled?null:{from:d.from,to:d.to,text:d.text,origin:d.origin}}function Ee(a,b,c){if(a.cm){if(!a.cm.curOp)return od(a.cm,Ee)(a,b,c);if(a.cm.state.suppressEdits)return}if(!(Ea(a,"beforeChange")||a.cm&&Ea(a.cm,"beforeChange"))||(b=De(a,b,!0))){var d=$g&&!c&&ba(a,b.from,b.to);if(d)for(var e=d.length-1;e>=0;--e)Fe(a,{from:d[e].from,to:d[e].to,text:e?[""]:b.text,origin:b.origin});else Fe(a,b)}}function Fe(a,b){if(1!=b.text.length||""!=b.text[0]||0!=K(b.from,b.to)){var c=Rd(a,b);ee(a,b,c,a.cm?a.cm.curOp.id:NaN),Ie(a,b,c,_(a,b));var d=[];Yd(a,(function(a,c){c||m(d,a.history)!=-1||(Ne(a.history,b),d.push(a.history)),Ie(a,b,null,_(a,b))}))}}function Ge(a,b,c){var d=a.cm&&a.cm.state.suppressEdits;if(!d||c){for(var e,f=a.history,g=a.sel,h="undo"==b?f.done:f.undone,i="undo"==b?f.undone:f.done,j=0;j<h.length&&(e=h[j],c?!e.ranges||e.equals(a.sel):e.ranges);j++);if(j!=h.length){for(f.lastOrigin=f.lastSelOrigin=null;;){if(e=h.pop(),!e.ranges){if(d)return void h.push(e);break}if(he(e,i),c&&!e.equals(a.sel))return void ue(a,e,{clearRedo:!1});g=e}var k=[];he(g,i),i.push({changes:k,generation:f.generation}),f.generation=e.generation||++f.maxGeneration;for(var l=Ea(a,"beforeChange")||a.cm&&Ea(a.cm,"beforeChange"),n=function(c){var d=e.changes[c];if(d.origin=b,l&&!De(a,d,!1))return h.length=0,{};k.push(be(a,d));var f=c?Rd(a,d):p(h);Ie(a,d,f,le(a,d)),!c&&a.cm&&a.cm.scrollIntoView({from:d.from,to:Pd(d)});var g=[];Yd(a,(function(a,b){b||m(g,a.history)!=-1||(Ne(a.history,d),g.push(a.history)),Ie(a,d,null,le(a,d))}))},o=e.changes.length-1;o>=0;--o){var q=n(o);if(q)return q.v}}}}function He(a,b){if(0!=b&&(a.first+=b,a.sel=new Eh(q(a.sel.ranges,(function(a){return new Fh(J(a.anchor.line+b,a.anchor.ch),J(a.head.line+b,a.head.ch))})),a.sel.primIndex),a.cm)){rd(a.cm,a.first,a.first-b,b);for(var c=a.cm.display,d=c.viewFrom;d<c.viewTo;d++)sd(a.cm,d,"gutter")}}function Ie(a,b,c,d){if(a.cm&&!a.cm.curOp)return od(a.cm,Ie)(a,b,c,d);if(b.to.line<a.first)return void He(a,b.text.length-1-(b.to.line-b.from.line));if(!(b.from.line>a.lastLine())){if(b.from.line<a.first){var e=b.text.length-1-(a.first-b.from.line);He(a,e),b={from:J(a.first,0),to:J(b.to.line+e,b.to.ch),text:[p(b.text)],origin:b.origin}}var f=a.lastLine();b.to.line>f&&(b={from:b.from,to:J(f,B(a,f).text.length),text:[b.text[0]],origin:b.origin}),b.removed=C(a,b.from,b.to),c||(c=Rd(a,b)),a.cm?Je(a.cm,b,d):Xd(a,b,d),ve(a,c,Ug)}}function Je(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,i=f.line;a.options.lineWrapping||(i=F(ma(B(d,f.line))),d.iter(i,g.line+1,(function(a){if(a==e.maxLine)return h=!0,!0}))),d.sel.contains(b.from,b.to)>-1&&Da(a),Xd(d,b,c,xc(a)),a.options.lineWrapping||(d.iter(i,f.line+b.text.length,(function(a){var b=ua(a);b>e.maxLineLength&&(e.maxLine=a,e.maxLineLength=b,e.maxLineChanged=!0,h=!1)})),h&&(a.curOp.updateMaxLine=!0)),fb(d,f.line),xd(a,400);var j=b.text.length-(g.line-f.line)-1;b.full?rd(a):f.line!=g.line||1!=b.text.length||Wd(a.doc,b)?rd(a,f.line,g.line+1,j):sd(a,f.line,"text");var k=Ea(a,"changes"),l=Ea(a,"change");if(l||k){var m={from:f,to:g,text:b.text,removed:b.removed,origin:b.origin};l&&vb(a,"change",a,m),k&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(m)}a.display.selForContextMenu=null}function Ke(a,b,c,d,e){if(d||(d=c),K(d,c)<0){var f;f=[d,c],c=f[0],d=f[1]}"string"==typeof b&&(b=a.splitLines(b)),Ee(a,{from:c,to:d,text:b,origin:e})}function Le(a,b,c,d){c<a.line?a.line+=d:b<a.line&&(a.line=b,a.ch=0)}function Me(a,b,c,d){for(var e=0;e<a.length;++e){var f=a[e],g=!0;if(f.ranges){f.copied||(f=a[e]=f.deepCopy(),f.copied=!0);for(var h=0;h<f.ranges.length;h++)Le(f.ranges[h].anchor,b,c,d),Le(f.ranges[h].head,b,c,d)}else{for(var i=0;i<f.changes.length;++i){var j=f.changes[i];if(c<j.from.line)j.from=J(j.from.line+d,j.from.ch),j.to=J(j.to.line+d,j.to.ch);else if(b<=j.to.line){g=!1;break}}g||(a.splice(0,e+1),e=0)}}}function Ne(a,b){var c=b.from.line,d=b.to.line,e=b.text.length-(d-c)-1;Me(a.done,c,d,e),Me(a.undone,c,d,e)}function Oe(a,b,c,d){var e=b,f=b;return"number"==typeof b?f=B(a,P(a,b)):e=F(b),null==e?null:(d(f,e)&&a.cm&&sd(a.cm,e,c),f)}function Pe(a){var b=this;this.lines=a,this.parent=null;for(var c=0,d=0;d<a.length;++d)a[d].parent=b,c+=a[d].height;this.height=c}function Qe(a){var b=this;this.children=a;for(var c=0,d=0,e=0;e<a.length;++e){var f=a[e];c+=f.chunkSize(),d+=f.height,f.parent=b}this.size=c,this.height=d,this.parent=null}function Re(a,b,c){ta(b)<(a.curOp&&a.curOp.scrollTop||a.doc.scrollTop)&&Uc(a,c)}function Se(a,b,c,d){var e=new Gh(a,c,d),f=a.cm;return f&&e.noHScroll&&(f.display.alignWidgets=!0),Oe(a,b,"widget",(function(b){var c=b.widgets||(b.widgets=[]);if(null==e.insertAt?c.push(e):c.splice(Math.min(c.length-1,Math.max(0,e.insertAt)),0,e),e.line=b,f&&!ra(a,b)){var d=ta(b)<a.scrollTop;E(b,b.height+Jb(e)),d&&Uc(f,e.height),f.curOp.forceUpdate=!0}return!0})),f&&vb(f,"lineWidgetAdded",f,e,"number"==typeof b?b:F(b)),e}function Te(a,b,c,d,f){if(d&&d.shared)return Ue(a,b,c,d,f);if(a.cm&&!a.cm.curOp)return od(a.cm,Te)(a,b,c,d,f);var g=new Ih(a,f),h=K(b,c);if(d&&k(d,g,!1),h>0||0==h&&g.clearWhenEmpty!==!1)return g;if(g.replacedWith&&(g.collapsed=!0,g.widgetNode=e("span",[g.replacedWith],"CodeMirror-widget"),d.handleMouseEvents||g.widgetNode.setAttribute("cm-ignore-events","true"),d.insertLeft&&(g.widgetNode.insertLeft=!0)),g.collapsed){if(la(a,b.line,b,c,g)||b.line!=c.line&&la(a,c.line,b,c,g))throw new Error("Inserting collapsed marker partially overlapping an existing one");U()}g.addToHistory&&ee(a,{from:b,to:c,origin:"markText"},a.sel,NaN);var i,j=b.line,l=a.cm;if(a.iter(j,c.line+1,(function(a){l&&g.collapsed&&!l.options.lineWrapping&&ma(a)==l.display.maxLine&&(i=!0),g.collapsed&&j!=b.line&&E(a,0),Y(a,new V(g,j==b.line?b.ch:null,j==c.line?c.ch:null)),++j})),g.collapsed&&a.iter(b.line,c.line+1,(function(b){ra(a,b)&&E(b,0)})),g.clearOnEnter&&dh(g,"beforeCursorEnter",(function(){return g.clear()})),g.readOnly&&(T(),(a.history.done.length||a.history.undone.length)&&a.clearHistory()),g.collapsed&&(g.id=++Hh,g.atomic=!0),l){if(i&&(l.curOp.updateMaxLine=!0),g.collapsed)rd(l,b.line,c.line+1);else if(g.className||g.title||g.startStyle||g.endStyle||g.css)for(var m=b.line;m<=c.line;m++)sd(l,m,"text");g.atomic&&xe(l.doc),vb(l,"markerAdded",l,g)}return g}function Ue(a,b,c,d,e){d=k(d),d.shared=!1;var f=[Te(a,b,c,d,e)],g=f[0],h=d.widgetNode;return Yd(a,(function(a){h&&(d.widgetNode=h.cloneNode(!0)),f.push(Te(a,Q(a,b),Q(a,c),d,e));for(var i=0;i<a.linked.length;++i)if(a.linked[i].isParent)return;g=p(f)})),new Jh(f,g)}function Ve(a){return a.findMarks(J(a.first,0),a.clipPos(J(a.lastLine())),(function(a){return a.parent}))}function We(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=d.find(),f=a.clipPos(e.from),g=a.clipPos(e.to);if(K(f,g)){var h=Te(a,f,g,d.primary,d.primary.type);d.markers.push(h),h.parent=d}}}function Xe(a){for(var b=function(b){var c=a[b],d=[c.primary.doc];Yd(c.primary.doc,(function(a){return d.push(a)}));for(var e=0;e<c.markers.length;e++){var f=c.markers[e];m(d,f.doc)==-1&&(f.parent=null,c.markers.splice(e--,1))}},c=0;c<a.length;c++)b(c)}function Ye(a){var b=this;if(_e(b),!Ca(b,a)&&!Kb(b.display,a)){Ga(a),ug&&(Mh=+new Date);var c=zc(b,a,!0),d=a.dataTransfer.files;if(c&&!b.isReadOnly())if(d&&d.length&&window.FileReader&&window.File)for(var e=d.length,f=Array(e),g=0,h=function(a,d){if(!b.options.allowDropFileTypes||m(b.options.allowDropFileTypes,a.type)!=-1){var h=new FileReader;h.onload=od(b,(function(){var a=h.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(a)&&(a=""),f[d]=a,++g==e){c=Q(b.doc,c);var i={from:c,to:c,text:b.doc.splitLines(f.join(b.doc.lineSeparator())),origin:"paste"};Ee(b.doc,i),te(b.doc,Od(c,Pd(i)))}})),h.readAsText(a)}},i=0;i<e;++i)h(d[i],i);else{if(b.state.draggingText&&b.doc.sel.contains(c)>-1)return b.state.draggingText(a),void setTimeout((function(){return b.display.input.focus()}),20);try{var j=a.dataTransfer.getData("Text");if(j){var k;if(b.state.draggingText&&!b.state.draggingText.copy&&(k=b.listSelections()),ve(b.doc,Od(c,c)),k)for(var l=0;l<k.length;++l)Ke(b.doc,"",k[l].anchor,k[l].head,"drag");b.replaceSelection(j,"around","paste"),b.display.input.focus()}}catch(a){}}}}function Ze(a,b){if(ug&&(!a.state.draggingText||+new Date-Mh<100))return void Ja(b);if(!Ca(a,b)&&!Kb(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.effectAllowed="copyMove",b.dataTransfer.setDragImage&&!Ag)){var c=d("img",null,null,"position: fixed; left: 0; top: 0;");c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",zg&&(c.width=c.height=1,a.display.wrapper.appendChild(c),c._top=c.offsetTop),b.dataTransfer.setDragImage(c,0,0),zg&&c.parentNode.removeChild(c)}}function $e(a,b){var e=zc(a,b);if(e){var f=document.createDocumentFragment();Dc(a,e,f),a.display.dragCursor||(a.display.dragCursor=d("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),a.display.lineSpace.insertBefore(a.display.dragCursor,a.display.cursorDiv)),c(a.display.dragCursor,f)}}function _e(a){a.display.dragCursor&&(a.display.lineSpace.removeChild(a.display.dragCursor),a.display.dragCursor=null)}function af(a){if(document.getElementsByClassName)for(var b=document.getElementsByClassName("CodeMirror"),c=0;c<b.length;c++){var d=b[c].CodeMirror;d&&a(d)}}function bf(){Nh||(cf(),Nh=!0)}function cf(){var a;dh(window,"resize",(function(){null==a&&(a=setTimeout((function(){a=null,af(df)}),100))})),dh(window,"blur",(function(){return af(Kc)}))}function df(a){var b=a.display;b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null,b.scrollbarsClipped=!1,a.setSize()}function ef(a){var b=a.split(/-(?!$)/);a=b[b.length-1];for(var c,d,e,f,g=0;g<b.length-1;g++){var h=b[g];if(/^(cmd|meta|m)$/i.test(h))f=!0;else if(/^a(lt)?$/i.test(h))c=!0;else if(/^(c|ctrl|control)$/i.test(h))d=!0;else{if(!/^s(hift)?$/i.test(h))throw new Error("Unrecognized modifier name: "+h);e=!0}}return c&&(a="Alt-"+a),d&&(a="Ctrl-"+a),f&&(a="Cmd-"+a),e&&(a="Shift-"+a),a}function ff(a){var b={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];if(/^(name|fallthrough|(de|at)tach)$/.test(c))continue;if("..."==d){delete a[c];continue}for(var e=q(c.split(" "),ef),f=0;f<e.length;f++){var g=void 0,h=void 0;f==e.length-1?(h=e.join(" "),g=d):(h=e.slice(0,f+1).join(" "),g="...");var i=b[h];if(i){if(i!=g)throw new Error("Inconsistent bindings for "+h)}else b[h]=g}delete a[c]}for(var j in b)a[j]=b[j];return a}function gf(a,b,c,d){b=lf(b);var e=b.call?b.call(a,d):b[a];if(e===!1)return"nothing";if("..."===e)return"multi";if(null!=e&&c(e))return"handled";if(b.fallthrough){if("[object Array]"!=Object.prototype.toString.call(b.fallthrough))return gf(a,b.fallthrough,c,d);for(var f=0;f<b.fallthrough.length;f++){var g=gf(a,b.fallthrough[f],c,d);if(g)return g}}}function hf(a){var b="string"==typeof a?a:Oh[a.keyCode];return"Ctrl"==b||"Alt"==b||"Shift"==b||"Mod"==b}function jf(a,b,c){var d=a;return b.altKey&&"Alt"!=d&&(a="Alt-"+a),(Lg?b.metaKey:b.ctrlKey)&&"Ctrl"!=d&&(a="Ctrl-"+a),(Lg?b.ctrlKey:b.metaKey)&&"Cmd"!=d&&(a="Cmd-"+a),!c&&b.shiftKey&&"Shift"!=d&&(a="Shift-"+a),a}function kf(a,b){if(zg&&34==a.keyCode&&a.char)return!1;var c=Oh[a.keyCode];return null!=c&&!a.altGraphKey&&(3==a.keyCode&&a.code&&(c=a.code),jf(c,a,b))}function lf(a){return"string"==typeof a?Sh[a]:a}function mf(a,b){for(var c=a.doc.sel.ranges,d=[],e=0;e<c.length;e++){for(var f=b(c[e]);d.length&&K(f.from,p(d).to)<=0;){var g=d.pop();if(K(g.from,f.from)<0){f.from=g.from;break}}d.push(f)}nd(a,(function(){for(var b=d.length-1;b>=0;b--)Ke(a.doc,"",d[b].from,d[b].to,"+delete");Vc(a)}))}function nf(a,b,c){var d=y(a.text,b+c,c);return d<0||d>a.text.length?null:d}function of(a,b,c){var d=nf(a,b.ch,c);return null==d?null:new J(b.line,d,c<0?"after":"before")}function pf(a,b,c,d,e){if(a){var f=ya(c,b.doc.direction);if(f){var g,h=e<0?p(f):f[0],i=e<0==(1==h.level),j=i?"after":"before";if(h.level>0||"rtl"==b.doc.direction){var k=Wb(b,c);g=e<0?c.text.length-1:0;var l=Xb(b,k,g).top;g=z((function(a){return Xb(b,k,a).top==l}),e<0==(1==h.level)?h.from:h.to-1,g),"before"==j&&(g=nf(c,g,1))}else g=e<0?h.to:h.from;return new J(d,g,j)}}return new J(d,e<0?c.text.length:0,e<0?"before":"after")}function qf(a,b,c,d){var e=ya(b,a.doc.direction);if(!e)return of(b,c,d);c.ch>=b.text.length?(c.ch=b.text.length,c.sticky="before"):c.ch<=0&&(c.ch=0,c.sticky="after");var f=xa(e,c.ch,c.sticky),g=e[f];if("ltr"==a.doc.direction&&g.level%2==0&&(d>0?g.to>c.ch:g.from<c.ch))return of(b,c,d);var h,i=function(a,c){return nf(b,a instanceof J?a.ch:a,c)},j=function(c){return a.options.lineWrapping?(h=h||Wb(a,b),oc(a,b,h,c)):{begin:0,end:b.text.length}},k=j("before"==c.sticky?i(c,-1):c.ch);if("rtl"==a.doc.direction||1==g.level){var l=1==g.level==d<0,m=i(c,l?1:-1);if(null!=m&&(l?m<=g.to&&m<=k.end:m>=g.from&&m>=k.begin)){var n=l?"before":"after";return new J(c.line,m,n)}}var o=function(a,b,d){for(var f=function(a,b){return b?new J(c.line,i(a,1),"before"):new J(c.line,a,"after")};a>=0&&a<e.length;a+=b){var g=e[a],h=b>0==(1!=g.level),j=h?d.begin:i(d.end,-1);if(g.from<=j&&j<g.to)return f(j,h);if(j=h?g.from:i(g.to,-1),d.begin<=j&&j<d.end)return f(j,h)}},p=o(f+d,d,k);if(p)return p;var q=d>0?k.end:i(k.begin,-1);return null==q||d>0&&q==b.text.length||!(p=o(d>0?0:e.length-1,d,j(q)))?null:p}function rf(a,b){var c=B(a.doc,b),d=ma(c);return d!=c&&(b=F(d)),pf(!0,a,d,b,1)}function sf(a,b){var c=B(a.doc,b),d=na(c);return d!=c&&(b=F(d)),pf(!0,a,c,b,-1)}function tf(a,b){var c=rf(a,b.line),d=B(a.doc,c.line),e=ya(d,a.doc.direction);if(!e||0==e[0].level){var f=Math.max(0,d.text.search(/\S/)),g=b.line==c.line&&b.ch<=f&&b.ch;return J(c.line,g?0:f,c.sticky)}return c}function uf(a,b,c){if("string"==typeof b&&(b=Th[b],!b))return!1;a.display.input.ensurePolled();var d=a.display.shift,e=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),c&&(a.display.shift=!1),e=b(a)!=Tg}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function vf(a,b,c){for(var d=0;d<a.state.keyMaps.length;d++){var e=gf(b,a.state.keyMaps[d],c,a);if(e)return e}return a.options.extraKeys&&gf(b,a.options.extraKeys,c,a)||gf(b,a.options.keyMap,c,a)}function wf(a,b,c,d){var e=a.state.keySeq;if(e){if(hf(b))return"handled";if(/\'$/.test(b)?a.state.keySeq=null:Uh.set(50,(function(){a.state.keySeq==e&&(a.state.keySeq=null,a.display.input.reset())})),xf(a,e+" "+b,c,d))return!0}return xf(a,b,c,d)}function xf(a,b,c,d){var e=vf(a,b,d);return"multi"==e&&(a.state.keySeq=b),"handled"==e&&vb(a,"keyHandled",a,b,c),"handled"!=e&&"multi"!=e||(Ga(c),Gc(a)),!!e}function yf(a,b){var c=kf(b,!0);return!!c&&(b.shiftKey&&!a.state.keySeq?wf(a,"Shift-"+c,b,(function(b){return uf(a,b,!0)}))||wf(a,c,b,(function(b){if("string"==typeof b?/^go[A-Z]/.test(b):b.motion)return uf(a,b)})):wf(a,c,b,(function(b){return uf(a,b)})))}function zf(a,b,c){return wf(a,"'"+c+"'",b,(function(b){return uf(a,b,!0)}))}function Af(a){var b=this;if(b.curOp.focus=g(),!Ca(b,a)){ug&&vg<11&&27==a.keyCode&&(a.returnValue=!1);var c=a.keyCode;b.display.shift=16==c||a.shiftKey;var d=yf(b,a);zg&&(Vh=d?c:null,!d&&88==c&&!hh&&(Gg?a.metaKey:a.ctrlKey)&&b.replaceSelection("",null,"cut")),18!=c||/\bCodeMirror-crosshair\b/.test(b.display.lineDiv.className)||Bf(b)}}function Bf(a){function b(a){18!=a.keyCode&&a.altKey||(Ng(c,"CodeMirror-crosshair"),Aa(document,"keyup",b),Aa(document,"mouseover",b))}var c=a.display.lineDiv;h(c,"CodeMirror-crosshair"),dh(document,"keyup",b),dh(document,"mouseover",b)}function Cf(a){16==a.keyCode&&(this.doc.sel.shift=!1),Ca(this,a)}function Df(a){var b=this;if(!(Kb(b.display,a)||Ca(b,a)||a.ctrlKey&&!a.altKey||Gg&&a.metaKey)){var c=a.keyCode,d=a.charCode;if(zg&&c==Vh)return Vh=null,void Ga(a);if(!zg||a.which&&!(a.which<10)||!yf(b,a)){var e=String.fromCharCode(null==d?c:d);"\b"!=e&&(zf(b,a,e)||b.display.input.onKeyPress(a))}}}function Ef(a,b){var c=+new Date;return Zh&&Zh.compare(c,a,b)?(Yh=Zh=null,"triple"):Yh&&Yh.compare(c,a,b)?(Zh=new Xh(c,a,b),Yh=null,"double"):(Yh=new Xh(c,a,b),Zh=null,"single")}function Ff(a){var b=this,c=b.display;if(!(Ca(b,a)||c.activeTouch&&c.input.supportsTouch())){if(c.input.ensurePolled(),c.shift=a.shiftKey,Kb(c,a))return void(wg||(c.scroller.draggable=!1,setTimeout((function(){return c.scroller.draggable=!0}),100)));if(!Of(b,a)){var d=zc(b,a),e=La(a),f=d?Ef(d,e):"single";window.focus(),1==e&&b.state.selectingText&&b.state.selectingText(a),d&&Gf(b,e,d,f,a)||(1==e?d?If(b,d,f,a):Ka(a)==c.scroller&&Ga(a):2==e?(d&&oe(b.doc,d),setTimeout((function(){return c.input.focus()}),20)):3==e&&(Mg?Pf(b,a):Ic(b)))}}}function Gf(a,b,c,d,e){var f="Click";return"double"==d?f="Double"+f:"triple"==d&&(f="Triple"+f),f=(1==b?"Left":2==b?"Middle":"Right")+f,wf(a,jf(f,e),e,(function(b){if("string"==typeof b&&(b=Th[b]),!b)return!1;var d=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),d=b(a,c)!=Tg}finally{a.state.suppressEdits=!1}return d}))}function Hf(a,b,c){var d=a.getOption("configureMouse"),e=d?d(a,b,c):{};if(null==e.unit){var f=Hg?c.shiftKey&&c.metaKey:c.altKey;e.unit=f?"rectangle":"single"==b?"char":"double"==b?"word":"line"}return(null==e.extend||a.doc.extend)&&(e.extend=a.doc.extend||c.shiftKey),null==e.addNew&&(e.addNew=Gg?c.metaKey:c.ctrlKey),null==e.moveOnDrag&&(e.moveOnDrag=!(Gg?c.altKey:c.ctrlKey)),e}function If(a,b,c,d){ug?setTimeout(j(Hc,a),0):a.curOp.focus=g();var e,f=Hf(a,c,d),h=a.doc.sel;a.options.dragDrop&&eh&&!a.isReadOnly()&&"single"==c&&(e=h.contains(b))>-1&&(K((e=h.ranges[e]).from(),b)<0||b.xRel>0)&&(K(e.to(),b)>0||b.xRel<0)?Jf(a,d,b,f):Lf(a,d,b,f)}function Jf(a,b,c,d){var e=a.display,f=!1,g=od(a,(function(b){wg&&(e.scroller.draggable=!1),a.state.draggingText=!1,Aa(e.wrapper.ownerDocument,"mouseup",g),Aa(e.wrapper.ownerDocument,"mousemove",h),Aa(e.scroller,"dragstart",i),Aa(e.scroller,"drop",g),f||(Ga(b),d.addNew||oe(a.doc,c,null,null,d.extend),wg||ug&&9==vg?setTimeout((function(){e.wrapper.ownerDocument.body.focus(),e.input.focus()}),20):e.input.focus())})),h=function(a){f=f||Math.abs(b.clientX-a.clientX)+Math.abs(b.clientY-a.clientY)>=10},i=function(){return f=!0};wg&&(e.scroller.draggable=!0),a.state.draggingText=g,g.copy=!d.moveOnDrag,e.scroller.dragDrop&&e.scroller.dragDrop(),dh(e.wrapper.ownerDocument,"mouseup",g),dh(e.wrapper.ownerDocument,"mousemove",h),dh(e.scroller,"dragstart",i),dh(e.scroller,"drop",g),Ic(a),setTimeout((function(){return e.input.focus()}),20)}function Kf(a,b,c){if("char"==c)return new Fh(b,b);if("word"==c)return a.findWordAt(b);if("line"==c)return new Fh(J(b.line,0),Q(a.doc,J(b.line+1,0)));var d=c(a,b);return new Fh(d.from,d.to)}function Lf(a,b,c,d){function e(b){if(0!=K(r,b))if(r=b,"rectangle"==d.unit){for(var e=[],f=a.options.tabSize,g=l(B(j,c.line).text,c.ch,f),h=l(B(j,b.line).text,b.ch,f),i=Math.min(g,h),p=Math.max(g,h),q=Math.min(c.line,b.line),s=Math.min(a.lastLine(),Math.max(c.line,b.line));q<=s;q++){var t=B(j,q).text,u=n(t,i,f);i==p?e.push(new Fh(J(q,u),J(q,u))):t.length>u&&e.push(new Fh(J(q,u),J(q,n(t,p,f))))}e.length||e.push(new Fh(c,c)),ue(j,Nd(o.ranges.slice(0,m).concat(e),m),{origin:"*mouse",scroll:!1}),a.scrollIntoView(b)}else{var v,w=k,x=Kf(a,b,d.unit),y=w.anchor;K(x.anchor,y)>0?(v=x.head,y=O(w.from(),x.anchor)):(v=x.anchor,y=N(w.to(),x.head));var z=o.ranges.slice(0);z[m]=Mf(a,new Fh(Q(j,y),v)),ue(j,Nd(z,m),Vg)}}function f(b){var c=++t,h=zc(a,b,!0,"rectangle"==d.unit);if(h)if(0!=K(h,r)){a.curOp.focus=g(),e(h);var k=Nc(i,j);(h.line>=k.to||h.line<k.from)&&setTimeout(od(a,(function(){t==c&&f(b)})),150)}else{var l=b.clientY<s.top?-20:b.clientY>s.bottom?20:0;l&&setTimeout(od(a,(function(){t==c&&(i.scroller.scrollTop+=l,f(b))})),50)}}function h(b){a.state.selectingText=!1,t=1/0,Ga(b),i.input.focus(),Aa(i.wrapper.ownerDocument,"mousemove",u),Aa(i.wrapper.ownerDocument,"mouseup",v),j.history.lastSelOrigin=null}var i=a.display,j=a.doc;Ga(b);var k,m,o=j.sel,p=o.ranges;if(d.addNew&&!d.extend?(m=j.sel.contains(c),k=m>-1?p[m]:new Fh(c,c)):(k=j.sel.primary(),m=j.sel.primIndex),"rectangle"==d.unit)d.addNew||(k=new Fh(c,c)),c=zc(a,b,!0,!0),m=-1;else{var q=Kf(a,c,d.unit);k=d.extend?ne(k,q.anchor,q.head,d.extend):q}d.addNew?m==-1?(m=p.length,ue(j,Nd(p.concat([k]),m),{scroll:!1,origin:"*mouse"})):p.length>1&&p[m].empty()&&"char"==d.unit&&!d.extend?(ue(j,Nd(p.slice(0,m).concat(p.slice(m+1)),0),{scroll:!1,origin:"*mouse"}),o=j.sel):qe(j,m,k,Vg):(m=0,ue(j,new Eh([k],0),Vg),o=j.sel);var r=c,s=i.wrapper.getBoundingClientRect(),t=0,u=od(a,(function(a){0!==a.buttons&&La(a)?f(a):h(a)})),v=od(a,h);a.state.selectingText=v,dh(i.wrapper.ownerDocument,"mousemove",u),dh(i.wrapper.ownerDocument,"mouseup",v)}function Mf(a,b){var c=b.anchor,d=b.head,e=B(a.doc,c.line);if(0==K(c,d)&&c.sticky==d.sticky)return b;var f=ya(e);if(!f)return b;var g=xa(f,c.ch,c.sticky),h=f[g];if(h.from!=c.ch&&h.to!=c.ch)return b;var i=g+(h.from==c.ch==(1!=h.level)?0:1);if(0==i||i==f.length)return b;var j;if(d.line!=c.line)j=(d.line-c.line)*("ltr"==a.doc.direction?1:-1)>0;else{var k=xa(f,d.ch,d.sticky),l=k-g||(d.ch-c.ch)*(1==h.level?-1:1);j=k==i-1||k==i?l<0:l>0}var m=f[i+(j?-1:0)],n=j==(1==m.level),o=n?m.from:m.to,p=n?"after":"before";return c.ch==o&&c.sticky==p?b:new Fh(new J(c.line,o,p),d)}function Nf(a,b,c,d){var e,f;if(b.touches)e=b.touches[0].clientX,f=b.touches[0].clientY;else try{e=b.clientX,f=b.clientY}catch(a){return!1}if(e>=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&Ga(b);var g=a.display,h=g.lineDiv.getBoundingClientRect();if(f>h.bottom||!Ea(a,c))return Ia(b);f-=h.top-g.viewOffset;for(var i=0;i<a.options.gutters.length;++i){var j=g.gutters.childNodes[i];if(j&&j.getBoundingClientRect().right>=e){var k=G(a.doc,f),l=a.options.gutters[i];return Ba(a,c,a,k,l,b),Ia(b)}}}function Of(a,b){return Nf(a,b,"gutterClick",!0)}function Pf(a,b){Kb(a.display,b)||Qf(a,b)||Ca(a,b,"contextmenu")||a.display.input.onContextMenu(b)}function Qf(a,b){return!!Ea(a,"gutterContextMenu")&&Nf(a,b,"gutterContextMenu",!1)}function Rf(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g," cm-s-"),cc(a)}function Sf(a){function b(b,d,e,f){a.defaults[b]=d,e&&(c[b]=f?function(a,b,c){c!=$h&&e(a,b,c)}:e)}var c=a.optionHandlers;a.defineOption=b,a.Init=$h,b("value","",(function(a,b){return a.setValue(b)}),!0),b("mode",null,(function(a,b){a.doc.modeOption=b,Ud(a)}),!0),b("indentUnit",2,Ud,!0),b("indentWithTabs",!1),b("smartIndent",!0),b("tabSize",4,(function(a){Vd(a),cc(a),rd(a)}),!0),b("lineSeparator",null,(function(a,b){if(a.doc.lineSep=b,b){var c=[],d=a.doc.first;a.doc.iter((function(a){for(var e=0;;){var f=a.text.indexOf(b,e);if(f==-1)break;e=f+b.length,c.push(J(d,f))}d++}));for(var e=c.length-1;e>=0;e--)Ke(a.doc,b,c[e],J(c[e].line,c[e].ch+b.length))}})),b("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,(function(a,b,c){a.state.specialChars=new RegExp(b.source+(b.test("\t")?"":"|\t"),"g"),c!=$h&&a.refresh()})),b("specialCharPlaceholder",kb,(function(a){return a.refresh()}),!0),b("electricChars",!0),b("inputStyle",Fg?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),b("spellcheck",!1,(function(a,b){return a.getInputField().spellcheck=b}),!0),b("rtlMoveVisually",!Ig),b("wholeLineUpdateBefore",!0),b("theme","default",(function(a){Rf(a),Tf(a)}),!0),b("keyMap","default",(function(a,b,c){var d=lf(b),e=c!=$h&&lf(c);e&&e.detach&&e.detach(a,d),d.attach&&d.attach(a,e||null)})),b("extraKeys",null),b("configureMouse",null),b("lineWrapping",!1,Vf,!0),b("gutters",[],(function(a){Jd(a.options),Tf(a)}),!0),b("fixedGutter",!0,(function(a,b){a.display.gutters.style.left=b?wc(a.display)+"px":"0",a.refresh()}),!0),b("coverGutterNextToScrollbar",!1,(function(a){return cd(a)}),!0),b("scrollbarStyle","native",(function(a){ed(a),cd(a),a.display.scrollbars.setScrollTop(a.doc.scrollTop),a.display.scrollbars.setScrollLeft(a.doc.scrollLeft)}),!0),b("lineNumbers",!1,(function(a){Jd(a.options),Tf(a)}),!0),b("firstLineNumber",1,Tf,!0),b("lineNumberFormatter",(function(a){return a}),Tf,!0),b("showCursorWhenSelecting",!1,Bc,!0),b("resetSelectionOnContextMenu",!0),b("lineWiseCopyCut",!0),b("pasteLinesPerSelection",!0),b("readOnly",!1,(function(a,b){"nocursor"==b&&(Kc(a),a.display.input.blur()),a.display.input.readOnlyChanged(b)})),b("disableInput",!1,(function(a,b){b||a.display.input.reset()}),!0),b("dragDrop",!0,Uf),b("allowDropFileTypes",null),b("cursorBlinkRate",530),
b("cursorScrollMargin",0),b("cursorHeight",1,Bc,!0),b("singleCursorHeightPerLine",!0,Bc,!0),b("workTime",100),b("workDelay",100),b("flattenSpans",!0,Vd,!0),b("addModeClass",!1,Vd,!0),b("pollInterval",100),b("undoDepth",200,(function(a,b){return a.doc.history.undoDepth=b})),b("historyEventDelay",1250),b("viewportMargin",10,(function(a){return a.refresh()}),!0),b("maxHighlightLength",1e4,Vd,!0),b("moveInputWithCursor",!0,(function(a,b){b||a.display.input.resetPosition()})),b("tabindex",null,(function(a,b){return a.display.input.getField().tabIndex=b||""})),b("autofocus",null),b("direction","ltr",(function(a,b){return a.doc.setDirection(b)}),!0),b("phrases",null)}function Tf(a){Id(a),rd(a),Oc(a)}function Uf(a,b,c){var d=c&&c!=$h;if(!b!=!d){var e=a.display.dragFunctions,f=b?dh:Aa;f(a.display.scroller,"dragstart",e.start),f(a.display.scroller,"dragenter",e.enter),f(a.display.scroller,"dragover",e.over),f(a.display.scroller,"dragleave",e.leave),f(a.display.scroller,"drop",e.drop)}}function Vf(a){a.options.lineWrapping?(h(a.display.wrapper,"CodeMirror-wrap"),a.display.sizer.style.minWidth="",a.display.sizerWidth=null):(Ng(a.display.wrapper,"CodeMirror-wrap"),va(a)),yc(a),rd(a),cc(a),setTimeout((function(){return cd(a)}),100)}function Wf(a,b){var c=this;if(!(this instanceof Wf))return new Wf(a,b);this.options=b=b?k(b):{},k(_h,b,!1),Jd(b);var d=b.value;"string"==typeof d?d=new Lh(d,b.mode,null,b.lineSeparator,b.direction):b.mode&&(d.modeOption=b.mode),this.doc=d;var e=new Wf.inputStyles[b.inputStyle](this),f=this.display=new A(a,d,e);f.wrapper.CodeMirror=this,Id(this),Rf(this),b.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ed(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Pg,keySeq:null,specialChars:null},b.autofocus&&!Fg&&f.input.focus(),ug&&vg<11&&setTimeout((function(){return c.display.input.reset(!0)}),20),Xf(this),bf(),fd(this),this.curOp.forceUpdate=!0,Zd(this,d),b.autofocus&&!Fg||this.hasFocus()?setTimeout(j(Jc,this),20):Kc(this);for(var g in ai)ai.hasOwnProperty(g)&&ai[g](c,b[g],$h);Pc(this),b.finishInit&&b.finishInit(this);for(var h=0;h<bi.length;++h)bi[h](c);gd(this),wg&&b.lineWrapping&&"optimizelegibility"==getComputedStyle(f.lineDiv).textRendering&&(f.lineDiv.style.textRendering="auto")}function Xf(a){function b(){e.activeTouch&&(f=setTimeout((function(){return e.activeTouch=null}),1e3),g=e.activeTouch,g.end=+new Date)}function c(a){if(1!=a.touches.length)return!1;var b=a.touches[0];return b.radiusX<=1&&b.radiusY<=1}function d(a,b){if(null==b.left)return!0;var c=b.left-a.left,d=b.top-a.top;return c*c+d*d>400}var e=a.display;dh(e.scroller,"mousedown",od(a,Ff)),ug&&vg<11?dh(e.scroller,"dblclick",od(a,(function(b){if(!Ca(a,b)){var c=zc(a,b);if(c&&!Of(a,b)&&!Kb(a.display,b)){Ga(b);var d=a.findWordAt(c);oe(a.doc,d.anchor,d.head)}}}))):dh(e.scroller,"dblclick",(function(b){return Ca(a,b)||Ga(b)})),Mg||dh(e.scroller,"contextmenu",(function(b){return Pf(a,b)}));var f,g={end:0};dh(e.scroller,"touchstart",(function(b){if(!Ca(a,b)&&!c(b)&&!Of(a,b)){e.input.ensurePolled(),clearTimeout(f);var d=+new Date;e.activeTouch={start:d,moved:!1,prev:d-g.end<=300?g:null},1==b.touches.length&&(e.activeTouch.left=b.touches[0].pageX,e.activeTouch.top=b.touches[0].pageY)}})),dh(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),dh(e.scroller,"touchend",(function(c){var f=e.activeTouch;if(f&&!Kb(e,c)&&null!=f.left&&!f.moved&&new Date-f.start<300){var g,h=a.coordsChar(e.activeTouch,"page");g=!f.prev||d(f,f.prev)?new Fh(h,h):!f.prev.prev||d(f,f.prev.prev)?a.findWordAt(h):new Fh(J(h.line,0),Q(a.doc,J(h.line+1,0))),a.setSelection(g.anchor,g.head),a.focus(),Ga(c)}b()})),dh(e.scroller,"touchcancel",b),dh(e.scroller,"scroll",(function(){e.scroller.clientHeight&&($c(a,e.scroller.scrollTop),ad(a,e.scroller.scrollLeft,!0),Ba(a,"scroll",a))})),dh(e.scroller,"mousewheel",(function(b){return Md(a,b)})),dh(e.scroller,"DOMMouseScroll",(function(b){return Md(a,b)})),dh(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(b){Ca(a,b)||Ja(b)},over:function(b){Ca(a,b)||($e(a,b),Ja(b))},start:function(b){return Ze(a,b)},drop:od(a,Ye),leave:function(b){Ca(a,b)||_e(a)}};var h=e.input.getField();dh(h,"keyup",(function(b){return Cf.call(a,b)})),dh(h,"keydown",od(a,Af)),dh(h,"keypress",od(a,Df)),dh(h,"focus",(function(b){return Jc(a,b)})),dh(h,"blur",(function(b){return Kc(a,b)}))}function Yf(a,b,c,d){var e,f=a.doc;null==c&&(c="add"),"smart"==c&&(f.mode.indent?e=Za(a,b).state:c="prev");var g=a.options.tabSize,h=B(f,b),i=l(h.text,null,g);h.stateAfter&&(h.stateAfter=null);var j,k=h.text.match(/^\s*/)[0];if(d||/\S/.test(h.text)){if("smart"==c&&(j=f.mode.indent(e,h.text.slice(k.length),h.text),j==Tg||j>150)){if(!d)return;c="prev"}}else j=0,c="not";"prev"==c?j=b>f.first?l(B(f,b-1).text,null,g):0:"add"==c?j=i+a.options.indentUnit:"subtract"==c?j=i-a.options.indentUnit:"number"==typeof c&&(j=i+c),j=Math.max(0,j);var m="",n=0;if(a.options.indentWithTabs)for(var p=Math.floor(j/g);p;--p)n+=g,m+="\t";if(n<j&&(m+=o(j-n)),m!=k)return Ke(f,m,J(b,0),J(b,k.length),"+input"),h.stateAfter=null,!0;for(var q=0;q<f.sel.ranges.length;q++){var r=f.sel.ranges[q];if(r.head.line==b&&r.head.ch<k.length){var s=J(b,k.length);qe(f,q,new Fh(s,s));break}}}function Zf(a){ci=a}function $f(a,b,c,d,e){var f=a.doc;a.display.shift=!1,d||(d=f.sel);var g=a.state.pasteIncoming||"paste"==e,h=fh(b),i=null;if(g&&d.ranges.length>1)if(ci&&ci.text.join("\n")==b){if(d.ranges.length%ci.text.length==0){i=[];for(var j=0;j<ci.text.length;j++)i.push(f.splitLines(ci.text[j]))}}else h.length==d.ranges.length&&a.options.pasteLinesPerSelection&&(i=q(h,(function(a){return[a]})));for(var k,l=d.ranges.length-1;l>=0;l--){var m=d.ranges[l],n=m.from(),o=m.to();m.empty()&&(c&&c>0?n=J(n.line,n.ch-c):a.state.overwrite&&!g?o=J(o.line,Math.min(B(f,o.line).text.length,o.ch+p(h).length)):ci&&ci.lineWise&&ci.text.join("\n")==b&&(n=o=J(n.line,0))),k=a.curOp.updateInput;var r={from:n,to:o,text:i?i[l%i.length]:h,origin:e||(g?"paste":a.state.cutIncoming?"cut":"+input")};Ee(a.doc,r),vb(a,"inputRead",a,r)}b&&!g&&ag(a,b),Vc(a),a.curOp.updateInput=k,a.curOp.typing=!0,a.state.pasteIncoming=a.state.cutIncoming=!1}function _f(a,b){var c=a.clipboardData&&a.clipboardData.getData("Text");if(c)return a.preventDefault(),b.isReadOnly()||b.options.disableInput||nd(b,(function(){return $f(b,c,0,null,"paste")})),!0}function ag(a,b){if(a.options.electricChars&&a.options.smartIndent)for(var c=a.doc.sel,d=c.ranges.length-1;d>=0;d--){var e=c.ranges[d];if(!(e.head.ch>100||d&&c.ranges[d-1].head.line==e.head.line)){var f=a.getModeAt(e.head),g=!1;if(f.electricChars){for(var h=0;h<f.electricChars.length;h++)if(b.indexOf(f.electricChars.charAt(h))>-1){g=Yf(a,e.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(B(a.doc,e.head.line).text.slice(0,e.head.ch))&&(g=Yf(a,e.head.line,"smart"));g&&vb(a,"electricInput",a,e.head.line)}}}function bg(a){for(var b=[],c=[],d=0;d<a.doc.sel.ranges.length;d++){var e=a.doc.sel.ranges[d].head.line,f={anchor:J(e,0),head:J(e+1,0)};c.push(f),b.push(a.getRange(f.anchor,f.head))}return{text:b,ranges:c}}function cg(a,b){a.setAttribute("autocorrect","off"),a.setAttribute("autocapitalize","off"),a.setAttribute("spellcheck",!!b)}function dg(){var a=d("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),b=d("div",[a],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return wg?a.style.width="1000px":a.setAttribute("wrap","off"),Dg&&(a.style.border="1px solid black"),cg(a),b}function eg(a,b,c,d,e){function f(){var d=b.line+c;return!(d<a.first||d>=a.first+a.size)&&(b=new J(d,b.ch,b.sticky),j=B(a,d))}function g(d){var g;if(g=e?qf(a.cm,j,b,c):of(j,b,c),null==g){if(d||!f())return!1;b=pf(e,a.cm,j,b.line,c)}else b=g;return!0}var h=b,i=c,j=B(a,b.line);if("char"==d)g();else if("column"==d)g(!0);else if("word"==d||"group"==d)for(var k=null,l="group"==d,m=a.cm&&a.cm.getHelper(b,"wordChars"),n=!0;!(c<0)||g(!n);n=!1){var o=j.text.charAt(b.ch)||"\n",p=v(o,m)?"w":l&&"\n"==o?"n":!l||/\s/.test(o)?null:"p";if(!l||n||p||(p="s"),k&&k!=p){c<0&&(c=1,g(),b.sticky="after");break}if(p&&(k=p),c>0&&!g(!n))break}var q=Ae(a,b,h,i,!0);return L(h,q)&&(q.hitSide=!0),q}function fg(a,b,c,d){var e,f=a.doc,g=b.left;if("page"==d){var h=Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),i=Math.max(h-.5*tc(a.display),3);e=(c>0?b.bottom:b.top)+c*i}else"line"==d&&(e=c>0?b.bottom+3:b.top-3);for(var j;j=mc(a,g,e),j.outside;){if(c<0?e<=0:e>=f.height){j.hitSide=!0;break}e+=5*c}return j}function gg(a,b){var c=Vb(a,b.line);if(!c||c.hidden)return null;var d=B(a.doc,b.line),e=Sb(c,d,b.line),f=ya(d,a.doc.direction),g="left";if(f){var h=xa(f,b.ch);g=h%2?"right":"left"}var i=Yb(e.map,b.ch,g);return i.offset="right"==i.collapse?i.end:i.start,i}function hg(a){for(var b=a;b;b=b.parentNode)if(/CodeMirror-gutter-wrapper/.test(b.className))return!0;return!1}function ig(a,b){return b&&(a.bad=!0),a}function jg(a,b,c,d,e){function f(a){return function(b){return b.id==a}}function g(){k&&(j+=l,m&&(j+=l),k=m=!1)}function h(a){a&&(g(),j+=a)}function i(b){if(1==b.nodeType){var c=b.getAttribute("cm-text");if(c)return void h(c);var j,n=b.getAttribute("cm-marker");if(n){var o=a.findMarks(J(d,0),J(e+1,0),f(+n));return void(o.length&&(j=o[0].find(0))&&h(C(a.doc,j.from,j.to).join(l)))}if("false"==b.getAttribute("contenteditable"))return;var p=/^(pre|div|p|li|table|br)$/i.test(b.nodeName);if(!/^br$/i.test(b.nodeName)&&0==b.textContent.length)return;p&&g();for(var q=0;q<b.childNodes.length;q++)i(b.childNodes[q]);/^(pre|p)$/i.test(b.nodeName)&&(m=!0),p&&(k=!0)}else 3==b.nodeType&&h(b.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "))}for(var j="",k=!1,l=a.doc.lineSeparator(),m=!1;i(b),b!=c;)b=b.nextSibling,m=!1;return j}function kg(a,b,c){var d;if(b==a.display.lineDiv){if(d=a.display.lineDiv.childNodes[c],!d)return ig(a.clipPos(J(a.display.viewTo-1)),!0);b=null,c=0}else for(d=b;;d=d.parentNode){if(!d||d==a.display.lineDiv)return null;if(d.parentNode&&d.parentNode==a.display.lineDiv)break}for(var e=0;e<a.display.view.length;e++){var f=a.display.view[e];if(f.node==d)return lg(f,b,c)}}function lg(a,b,c){function d(b,c,d){for(var e=-1;e<(l?l.length:0);e++)for(var f=e<0?k.map:l[e],g=0;g<f.length;g+=3){var h=f[g+2];if(h==b||h==c){var i=F(e<0?a.line:a.rest[e]),j=f[g]+d;return(d<0||h!=b)&&(j=f[g+(d?1:0)]),J(i,j)}}}var e=a.text.firstChild,g=!1;if(!b||!f(e,b))return ig(J(F(a.line),0),!0);if(b==e&&(g=!0,b=e.childNodes[c],c=0,!b)){var h=a.rest?p(a.rest):a.line;return ig(J(F(h),h.text.length),g)}var i=3==b.nodeType?b:null,j=b;for(i||1!=b.childNodes.length||3!=b.firstChild.nodeType||(i=b.firstChild,c&&(c=i.nodeValue.length));j.parentNode!=e;)j=j.parentNode;var k=a.measure,l=k.maps,m=d(i,j,c);if(m)return ig(m,g);for(var n=j.nextSibling,o=i?i.nodeValue.length-c:0;n;n=n.nextSibling){if(m=d(n,n.firstChild,0))return ig(J(m.line,m.ch-o),g);o+=n.textContent.length}for(var q=j.previousSibling,r=c;q;q=q.previousSibling){if(m=d(q,q.firstChild,-1))return ig(J(m.line,m.ch+r),g);r+=q.textContent.length}}function mg(a,b){function c(){a.value=i.getValue()}if(b=b?k(b):{},b.value=a.value,!b.tabindex&&a.tabIndex&&(b.tabindex=a.tabIndex),!b.placeholder&&a.placeholder&&(b.placeholder=a.placeholder),null==b.autofocus){var d=g();b.autofocus=d==a||null!=a.getAttribute("autofocus")&&d==document.body}var e;if(a.form&&(dh(a.form,"submit",c),!b.leaveSubmitMethodAlone)){var f=a.form;e=f.submit;try{var h=f.submit=function(){c(),f.submit=e,f.submit(),f.submit=h}}catch(a){}}b.finishInit=function(b){b.save=c,b.getTextArea=function(){return a},b.toTextArea=function(){b.toTextArea=isNaN,c(),a.parentNode.removeChild(b.getWrapperElement()),a.style.display="",a.form&&(Aa(a.form,"submit",c),"function"==typeof a.form.submit&&(a.form.submit=e))}},a.style.display="none";var i=Wf((function(b){return a.parentNode.insertBefore(b,a.nextSibling)}),b);return i}function ng(a){a.off=Aa,a.on=dh,a.wheelEventPixels=Ld,a.Doc=Lh,a.splitLines=fh,a.countColumn=l,a.findColumn=n,a.isWordChar=u,a.Pass=Tg,a.signal=Ba,a.Line=qh,a.changeEnd=Pd,a.scrollbarModel=zh,a.Pos=J,a.cmpPos=K,a.modes=jh,a.mimeModes=kh,a.resolveMode=Ra,a.getMode=Sa,a.modeExtensions=lh,a.extendMode=Ta,a.copyState=Ua,a.startState=Wa,a.innerMode=Va,a.commands=Th,a.keyMap=Sh,a.keyName=kf,a.isModifierKey=hf,a.lookupKey=gf,a.normalizeKeyMap=ff,a.StringStream=mh,a.SharedTextMarker=Jh,a.TextMarker=Ih,a.LineWidget=Gh,a.e_preventDefault=Ga,a.e_stopPropagation=Ha,a.e_stop=Ja,a.addClass=h,a.contains=f,a.rmClass=Ng,a.keyNames=Oh}var og=navigator.userAgent,pg=navigator.platform,qg=/gecko\/\d/i.test(og),rg=/MSIE \d/.test(og),sg=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(og),tg=/Edge\/(\d+)/.exec(og),ug=rg||sg||tg,vg=ug&&(rg?document.documentMode||6:+(tg||sg)[1]),wg=!tg&&/WebKit\//.test(og),xg=wg&&/Qt\/\d+\.\d+/.test(og),yg=!tg&&/Chrome\//.test(og),zg=/Opera\//.test(og),Ag=/Apple Computer/.test(navigator.vendor),Bg=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(og),Cg=/PhantomJS/.test(og),Dg=!tg&&/AppleWebKit/.test(og)&&/Mobile\/\w+/.test(og),Eg=/Android/.test(og),Fg=Dg||Eg||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(og),Gg=Dg||/Mac/.test(pg),Hg=/\bCrOS\b/.test(og),Ig=/win/i.test(pg),Jg=zg&&og.match(/Version\/(\d*\.\d*)/);Jg&&(Jg=Number(Jg[1])),Jg&&Jg>=15&&(zg=!1,wg=!0);var Kg,Lg=Gg&&(xg||zg&&(null==Jg||Jg<12.11)),Mg=qg||ug&&vg>=9,Ng=function(b,c){var d=b.className,e=a(c).exec(d);if(e){var f=d.slice(e.index+e[0].length);b.className=d.slice(0,e.index)+(f?e[1]+f:"")}};Kg=document.createRange?function(a,b,c,d){var e=document.createRange();return e.setEnd(d||a,c),e.setStart(a,b),e}:function(a,b,c){var d=document.body.createTextRange();try{d.moveToElementText(a.parentNode)}catch(a){return d}return d.collapse(!0),d.moveEnd("character",c),d.moveStart("character",b),d};var Og=function(a){a.select()};Dg?Og=function(a){a.selectionStart=0,a.selectionEnd=a.value.length}:ug&&(Og=function(a){try{a.select()}catch(a){}});var Pg=function(){this.id=null};Pg.prototype.set=function(a,b){clearTimeout(this.id),this.id=setTimeout(b,a)};var Qg,Rg,Sg=30,Tg={toString:function(){return"CodeMirror.Pass"}},Ug={scroll:!1},Vg={origin:"*mouse"},Wg={origin:"+move"},Xg=[""],Yg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Zg=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,$g=!1,_g=!1,ah=null,bh=(function(){function a(a){return a<=247?c.charAt(a):1424<=a&&a<=1524?"R":1536<=a&&a<=1785?d.charAt(a-1536):1774<=a&&a<=2220?"r":8192<=a&&a<=8203?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a,this.from=b,this.to=c}var c="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",d="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,f=/[stwN]/,g=/[LRr]/,h=/[Lb1n]/,i=/[1n]/;return function(c,d){var j="ltr"==d?"L":"R";if(0==c.length||"ltr"==d&&!e.test(c))return!1;for(var k=c.length,l=[],m=0;m<k;++m)l.push(a(c.charCodeAt(m)));for(var n=0,o=j;n<k;++n){var q=l[n];"m"==q?l[n]=o:o=q}for(var r=0,s=j;r<k;++r){var t=l[r];"1"==t&&"r"==s?l[r]="n":g.test(t)&&(s=t,"r"==t&&(l[r]="R"))}for(var u=1,v=l[0];u<k-1;++u){var w=l[u];"+"==w&&"1"==v&&"1"==l[u+1]?l[u]="1":","!=w||v!=l[u+1]||"1"!=v&&"n"!=v||(l[u]=v),v=w}for(var x=0;x<k;++x){var y=l[x];if(","==y)l[x]="N";else if("%"==y){var z=void 0;for(z=x+1;z<k&&"%"==l[z];++z);for(var A=x&&"!"==l[x-1]||z<k&&"1"==l[z]?"1":"N",B=x;B<z;++B)l[B]=A;x=z-1}}for(var C=0,D=j;C<k;++C){var E=l[C];"L"==D&&"1"==E?l[C]="L":g.test(E)&&(D=E)}for(var F=0;F<k;++F)if(f.test(l[F])){var G=void 0;for(G=F+1;G<k&&f.test(l[G]);++G);for(var H="L"==(F?l[F-1]:j),I="L"==(G<k?l[G]:j),J=H==I?H?"L":"R":j,K=F;K<G;++K)l[K]=J;F=G-1}for(var L,M=[],N=0;N<k;)if(h.test(l[N])){var O=N;for(++N;N<k&&h.test(l[N]);++N);M.push(new b(0,O,N))}else{var P=N,Q=M.length;for(++N;N<k&&"L"!=l[N];++N);for(var R=P;R<N;)if(i.test(l[R])){P<R&&M.splice(Q,0,new b(1,P,R));var S=R;for(++R;R<N&&i.test(l[R]);++R);M.splice(Q,0,new b(2,S,R)),P=R}else++R;P<N&&M.splice(Q,0,new b(1,P,N))}return"ltr"==d&&(1==M[0].level&&(L=c.match(/^\s+/))&&(M[0].from=L[0].length,M.unshift(new b(0,0,L[0].length))),1==p(M).level&&(L=c.match(/\s+$/))&&(p(M).to-=L[0].length,M.push(new b(0,k-L[0].length,k)))),"rtl"==d?M.reverse():M}})(),ch=[],dh=function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var d=a._handlers||(a._handlers={});d[b]=(d[b]||ch).concat(c)}},eh=(function(){if(ug&&vg<9)return!1;var a=d("div");return"draggable"in a||"dragDrop"in a})(),fh=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;b<=d;){var e=a.indexOf("\n",b);e==-1&&(e=a.length);var f=a.slice(b,"\r"==a.charAt(e-1)?e-1:e),g=f.indexOf("\r");g!=-1?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},gh=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(a){return!1}}:function(a){var b;try{b=a.ownerDocument.selection.createRange()}catch(a){}return!(!b||b.parentElement()!=a)&&0!=b.compareEndPoints("StartToEnd",b)},hh=(function(){var a=d("div");return"oncopy"in a||(a.setAttribute("oncopy","return;"),"function"==typeof a.oncopy)})(),ih=null,jh={},kh={},lh={},mh=function(a,b,c){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=c};mh.prototype.eol=function(){return this.pos>=this.string.length},mh.prototype.sol=function(){return this.pos==this.lineStart},mh.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},mh.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},mh.prototype.eat=function(a){var b,c=this.string.charAt(this.pos);if(b="string"==typeof a?c==a:c&&(a.test?a.test(c):a(c)))return++this.pos,c},mh.prototype.eatWhile=function(a){for(var b=this.pos;this.eat(a););return this.pos>b},mh.prototype.eatSpace=function(){for(var a=this,b=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++a.pos;return this.pos>b},mh.prototype.skipToEnd=function(){this.pos=this.string.length},mh.prototype.skipTo=function(a){var b=this.string.indexOf(a,this.pos);if(b>-1)return this.pos=b,!0},mh.prototype.backUp=function(a){this.pos-=a},mh.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=l(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?l(this.string,this.lineStart,this.tabSize):0)},mh.prototype.indentation=function(){return l(this.string,null,this.tabSize)-(this.lineStart?l(this.string,this.lineStart,this.tabSize):0)},mh.prototype.match=function(a,b,c){if("string"!=typeof a){var d=this.string.slice(this.pos).match(a);return d&&d.index>0?null:(d&&b!==!1&&(this.pos+=d[0].length),d)}var e=function(a){return c?a.toLowerCase():a},f=this.string.substr(this.pos,a.length);if(e(f)==e(a))return b!==!1&&(this.pos+=a.length),!0},mh.prototype.current=function(){return this.string.slice(this.start,this.pos)},mh.prototype.hideFirstChars=function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}},mh.prototype.lookAhead=function(a){var b=this.lineOracle;return b&&b.lookAhead(a)},mh.prototype.baseToken=function(){var a=this.lineOracle;return a&&a.baseToken(this.pos)};var nh=function(a,b){this.state=a,this.lookAhead=b},oh=function(a,b,c,d){this.state=b,this.doc=a,this.line=c,this.maxLookAhead=d||0,this.baseTokens=null,this.baseTokenPos=1};oh.prototype.lookAhead=function(a){var b=this.doc.getLine(this.line+a);return null!=b&&a>this.maxLookAhead&&(this.maxLookAhead=a),b},oh.prototype.baseToken=function(a){var b=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=a;)b.baseTokenPos+=2;var c=this.baseTokens[this.baseTokenPos+1];return{type:c&&c.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-a}},oh.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},oh.fromSaved=function(a,b,c){return b instanceof nh?new oh(a,Ua(a.mode,b.state),c,b.lookAhead):new oh(a,Ua(a.mode,b),c)},oh.prototype.save=function(a){var b=a!==!1?Ua(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new nh(b,this.maxLookAhead):b};var ph=function(a,b,c){this.start=a.start,this.end=a.pos,this.string=a.current(),this.type=b||null,this.state=c},qh=function(a,b,c){this.text=a,da(this,b),this.height=c?c(this):1};qh.prototype.lineNo=function(){return F(this)},Fa(qh);var rh,sh={},th={},uh=null,vh=null,wh={left:0,right:0,top:0,bottom:0},xh=function(a,b,c){this.cm=c;var e=this.vert=d("div",[d("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),f=this.horiz=d("div",[d("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e.tabIndex=f.tabIndex=-1,a(e),a(f),dh(e,"scroll",(function(){e.clientHeight&&b(e.scrollTop,"vertical")})),dh(f,"scroll",(function(){f.clientWidth&&b(f.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,ug&&vg<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xh.prototype.update=function(a){var b=a.scrollWidth>a.clientWidth+1,c=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;if(c){this.vert.style.display="block",this.vert.style.bottom=b?d+"px":"0";var e=a.viewHeight-(b?d:0);this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+e)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(b){this.horiz.style.display="block",this.horiz.style.right=c?d+"px":"0",this.horiz.style.left=a.barLeft+"px";var f=a.viewWidth-a.barLeft-(c?d:0);this.horiz.firstChild.style.width=Math.max(0,a.scrollWidth-a.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&a.clientHeight>0&&(0==d&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:c?d:0,bottom:b?d:0}},xh.prototype.setScrollLeft=function(a){this.horiz.scrollLeft!=a&&(this.horiz.scrollLeft=a),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xh.prototype.setScrollTop=function(a){this.vert.scrollTop!=a&&(this.vert.scrollTop=a),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xh.prototype.zeroWidthHack=function(){var a=Gg&&!Bg?"12px":"18px";this.horiz.style.height=this.vert.style.width=a,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Pg,this.disableVert=new Pg},xh.prototype.enableZeroWidthBar=function(a,b,c){function d(){var e=a.getBoundingClientRect(),f="vert"==c?document.elementFromPoint(e.right-1,(e.top+e.bottom)/2):document.elementFromPoint((e.right+e.left)/2,e.bottom-1);f!=a?a.style.pointerEvents="none":b.set(1e3,d)}a.style.pointerEvents="auto",b.set(1e3,d)},xh.prototype.clear=function(){var a=this.horiz.parentNode;a.removeChild(this.horiz),a.removeChild(this.vert)};var yh=function(){};yh.prototype.update=function(){return{bottom:0,right:0}},yh.prototype.setScrollLeft=function(){},yh.prototype.setScrollTop=function(){},yh.prototype.clear=function(){};var zh={native:xh,null:yh},Ah=0,Bh=function(a,b,c){var d=a.display;this.viewport=b,this.visible=Nc(d,a.doc,b),this.editorIsHidden=!d.wrapper.offsetWidth,this.wrapperHeight=d.wrapper.clientHeight,this.wrapperWidth=d.wrapper.clientWidth,this.oldDisplayWidth=Pb(a),this.force=c,this.dims=vc(a),this.events=[]};Bh.prototype.signal=function(a,b){Ea(a,b)&&this.events.push(arguments)},Bh.prototype.finish=function(){for(var a=this,b=0;b<this.events.length;b++)Ba.apply(null,a.events[b])};var Ch=0,Dh=null;ug?Dh=-.53:qg?Dh=15:yg?Dh=-.7:Ag&&(Dh=-1/3);var Eh=function(a,b){this.ranges=a,this.primIndex=b};Eh.prototype.primary=function(){return this.ranges[this.primIndex]},Eh.prototype.equals=function(a){var b=this;if(a==this)return!0;if(a.primIndex!=this.primIndex||a.ranges.length!=this.ranges.length)return!1;for(var c=0;c<this.ranges.length;c++){var d=b.ranges[c],e=a.ranges[c];if(!L(d.anchor,e.anchor)||!L(d.head,e.head))return!1}return!0},Eh.prototype.deepCopy=function(){for(var a=this,b=[],c=0;c<this.ranges.length;c++)b[c]=new Fh(M(a.ranges[c].anchor),M(a.ranges[c].head));return new Eh(b,this.primIndex)},Eh.prototype.somethingSelected=function(){for(var a=this,b=0;b<this.ranges.length;b++)if(!a.ranges[b].empty())return!0;return!1},Eh.prototype.contains=function(a,b){var c=this;b||(b=a);for(var d=0;d<this.ranges.length;d++){var e=c.ranges[d];if(K(b,e.from())>=0&&K(a,e.to())<=0)return d}return-1};var Fh=function(a,b){this.anchor=a,this.head=b};Fh.prototype.from=function(){return O(this.anchor,this.head)},Fh.prototype.to=function(){return N(this.anchor,this.head)},Fh.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Pe.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=this,d=a,e=a+b;d<e;++d){var f=c.lines[d];c.height-=f.height,hb(f),vb(f,"delete")}this.lines.splice(a,b)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(a,b,c){var d=this;this.height+=c,this.lines=this.lines.slice(0,a).concat(b).concat(this.lines.slice(a));for(var e=0;e<b.length;++e)b[e].parent=d},iterN:function(a,b,c){for(var d=this,e=a+b;a<e;++a)if(c(d.lines[a]))return!0}},Qe.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){var c=this;this.size-=b;for(var d=0;d<this.children.length;++d){var e=c.children[d],f=e.chunkSize();if(a<f){var g=Math.min(b,f-a),h=e.height;if(e.removeInner(a,g),c.height-=h-e.height,f==g&&(c.children.splice(d--,1),e.parent=null),0==(b-=g))break;a=0}else a-=f}if(this.size-b<25&&(this.children.length>1||!(this.children[0]instanceof Pe))){var i=[];this.collapse(i),this.children=[new Pe(i)],this.children[0].parent=this}},collapse:function(a){for(var b=this,c=0;c<this.children.length;++c)b.children[c].collapse(a)},insertInner:function(a,b,c){var d=this;this.size+=b.length,this.height+=c;for(var e=0;e<this.children.length;++e){var f=d.children[e],g=f.chunkSize();if(a<=g){if(f.insertInner(a,b,c),f.lines&&f.lines.length>50){for(var h=f.lines.length%25+25,i=h;i<f.lines.length;){var j=new Pe(f.lines.slice(i,i+=25));f.height-=j.height,d.children.splice(++e,0,j),j.parent=d}f.lines=f.lines.slice(0,h),d.maybeSpill()}break}a-=g}},maybeSpill:function(){if(!(this.children.length<=10)){var a=this;do{var b=a.children.splice(a.children.length-5,5),c=new Qe(b);if(a.parent){a.size-=c.size,a.height-=c.height;var d=m(a.parent.children,a);a.parent.children.splice(d+1,0,c)}else{var e=new Qe(a.children);e.parent=a,a.children=[e,c],a=e}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()}},iterN:function(a,b,c){for(var d=this,e=0;e<this.children.length;++e){var f=d.children[e],g=f.chunkSize();if(a<g){var h=Math.min(b,g-a);if(f.iterN(a,h,c))return!0;if(0==(b-=h))break;a=0}else a-=g}}};var Gh=function(a,b,c){var d=this;if(c)for(var e in c)c.hasOwnProperty(e)&&(d[e]=c[e]);this.doc=a,this.node=b};Gh.prototype.clear=function(){var a=this,b=this.doc.cm,c=this.line.widgets,d=this.line,e=F(d);if(null!=e&&c){for(var f=0;f<c.length;++f)c[f]==a&&c.splice(f--,1);c.length||(d.widgets=null);var g=Jb(this);E(d,Math.max(0,d.height-g)),b&&(nd(b,(function(){Re(b,d,-g),sd(b,e,"widget")})),vb(b,"lineWidgetCleared",b,this,e))}},Gh.prototype.changed=function(){var a=this,b=this.height,c=this.doc.cm,d=this.line;this.height=null;var e=Jb(this)-b;e&&(ra(this.doc,d)||E(d,d.height+e),c&&nd(c,(function(){c.curOp.forceUpdate=!0,Re(c,d,e),vb(c,"lineWidgetChanged",c,a,F(d))})))},Fa(Gh);var Hh=0,Ih=function(a,b){this.lines=[],this.type=b,this.doc=a,this.id=++Hh};Ih.prototype.clear=function(){var a=this;if(!this.explicitlyCleared){var b=this.doc.cm,c=b&&!b.curOp;if(c&&fd(b),Ea(this,"clear")){var d=this.find();d&&vb(this,"clear",d.from,d.to)}for(var e=null,f=null,g=0;g<this.lines.length;++g){var h=a.lines[g],i=W(h.markedSpans,a);b&&!a.collapsed?sd(b,F(h),"text"):b&&(null!=i.to&&(f=F(h)),null!=i.from&&(e=F(h))),h.markedSpans=X(h.markedSpans,i),null==i.from&&a.collapsed&&!ra(a.doc,h)&&b&&E(h,tc(b.display))}if(b&&this.collapsed&&!b.options.lineWrapping)for(var j=0;j<this.lines.length;++j){var k=ma(a.lines[j]),l=ua(k);l>b.display.maxLineLength&&(b.display.maxLine=k,b.display.maxLineLength=l,b.display.maxLineChanged=!0)}null!=e&&b&&this.collapsed&&rd(b,e,f+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,b&&xe(b.doc)),b&&vb(b,"markerCleared",b,this,e,f),c&&gd(b),this.parent&&this.parent.clear()}},Ih.prototype.find=function(a,b){var c=this;null==a&&"bookmark"==this.type&&(a=1);for(var d,e,f=0;f<this.lines.length;++f){var g=c.lines[f],h=W(g.markedSpans,c);if(null!=h.from&&(d=J(b?g:F(g),h.from),a==-1))return d;if(null!=h.to&&(e=J(b?g:F(g),h.to),1==a))return e}return d&&{from:d,to:e}},Ih.prototype.changed=function(){var a=this,b=this.find(-1,!0),c=this,d=this.doc.cm;b&&d&&nd(d,(function(){var e=b.line,f=F(b.line),g=Vb(d,f);if(g&&(ac(g),d.curOp.selectionChanged=d.curOp.forceUpdate=!0),d.curOp.updateMaxLine=!0,!ra(c.doc,e)&&null!=c.height){var h=c.height;c.height=null;var i=Jb(c)-h;i&&E(e,e.height+i)}vb(d,"markerChanged",d,a)}))},Ih.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&m(b.maybeHiddenMarkers,this)!=-1||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)},Ih.prototype.detachLine=function(a){if(this.lines.splice(m(this.lines,a),1),!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;(b.maybeHiddenMarkers||(b.maybeHiddenMarkers=[])).push(this)}},Fa(Ih);var Jh=function(a,b){var c=this;this.markers=a,this.primary=b;for(var d=0;d<a.length;++d)a[d].parent=c;
};Jh.prototype.clear=function(){var a=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var b=0;b<this.markers.length;++b)a.markers[b].clear();vb(this,"clear")}},Jh.prototype.find=function(a,b){return this.primary.find(a,b)},Fa(Jh);var Kh=0,Lh=function(a,b,c,d,e){if(!(this instanceof Lh))return new Lh(a,b,c,d,e);null==c&&(c=0),Qe.call(this,[new Pe([new qh("",null)])]),this.first=c,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=c;var f=J(c,0);this.sel=Od(f),this.history=new ae(null),this.id=++Kh,this.modeOption=b,this.lineSep=d,this.direction="rtl"==e?"rtl":"ltr",this.extend=!1,"string"==typeof a&&(a=this.splitLines(a)),Xd(this,{from:f,to:f,text:a}),ue(this,Od(f),Ug)};Lh.prototype=t(Qe.prototype,{constructor:Lh,iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,b){for(var c=0,d=0;d<b.length;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=D(this,this.first,this.first+this.size);return a===!1?b:b.join(a||this.lineSeparator())},setValue:qd((function(a){var b=J(this.first,0),c=this.first+this.size-1;Ee(this,{from:b,to:J(c,B(this,c).text.length),text:this.splitLines(a),origin:"setValue",full:!0},!0),this.cm&&Wc(this.cm,0,0),ue(this,Od(b),Ug)})),replaceRange:function(a,b,c,d){b=Q(this,b),c=c?Q(this,c):b,Ke(this,a,b,c,d)},getRange:function(a,b,c){var d=C(this,Q(this,a),Q(this,b));return c===!1?d:d.join(c||this.lineSeparator())},getLine:function(a){var b=this.getLineHandle(a);return b&&b.text},getLineHandle:function(a){if(H(this,a))return B(this,a)},getLineNumber:function(a){return F(a)},getLineHandleVisualStart:function(a){return"number"==typeof a&&(a=B(this,a)),ma(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return Q(this,a)},getCursor:function(a){var b,c=this.sel.primary();return b=null==a||"head"==a?c.head:"anchor"==a?c.anchor:"end"==a||"to"==a||a===!1?c.to():c.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:qd((function(a,b,c){re(this,Q(this,"number"==typeof a?J(a,b||0):a),null,c)})),setSelection:qd((function(a,b,c){re(this,Q(this,a),Q(this,b||a),c)})),extendSelection:qd((function(a,b,c){oe(this,Q(this,a),b&&Q(this,b),c)})),extendSelections:qd((function(a,b){pe(this,S(this,a),b)})),extendSelectionsBy:qd((function(a,b){var c=q(this.sel.ranges,a);pe(this,S(this,c),b)})),setSelections:qd((function(a,b,c){var d=this;if(a.length){for(var e=[],f=0;f<a.length;f++)e[f]=new Fh(Q(d,a[f].anchor),Q(d,a[f].head));null==b&&(b=Math.min(a.length-1,this.sel.primIndex)),ue(this,Nd(e,b),c)}})),addSelection:qd((function(a,b,c){var d=this.sel.ranges.slice(0);d.push(new Fh(Q(this,a),Q(this,b||a))),ue(this,Nd(d,d.length-1),c)})),getSelection:function(a){for(var b,c=this,d=this.sel.ranges,e=0;e<d.length;e++){var f=C(c,d[e].from(),d[e].to());b=b?b.concat(f):f}return a===!1?b:b.join(a||this.lineSeparator())},getSelections:function(a){for(var b=this,c=[],d=this.sel.ranges,e=0;e<d.length;e++){var f=C(b,d[e].from(),d[e].to());a!==!1&&(f=f.join(a||b.lineSeparator())),c[e]=f}return c},replaceSelection:function(a,b,c){for(var d=[],e=0;e<this.sel.ranges.length;e++)d[e]=a;this.replaceSelections(d,b,c||"+input")},replaceSelections:qd((function(a,b,c){for(var d=this,e=[],f=this.sel,g=0;g<f.ranges.length;g++){var h=f.ranges[g];e[g]={from:h.from(),to:h.to(),text:d.splitLines(a[g]),origin:c}}for(var i=b&&"end"!=b&&Td(this,e,b),j=e.length-1;j>=0;j--)Ee(d,e[j]);i?te(this,i):this.cm&&Vc(this.cm)})),undo:qd((function(){Ge(this,"undo")})),redo:qd((function(){Ge(this,"redo")})),undoSelection:qd((function(){Ge(this,"undo",!0)})),redoSelection:qd((function(){Ge(this,"redo",!0)})),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d<a.done.length;d++)a.done[d].ranges||++b;for(var e=0;e<a.undone.length;e++)a.undone[e].ranges||++c;return{undo:b,redo:c}},clearHistory:function(){this.history=new ae(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(a){return a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)},getHistory:function(){return{done:me(this.history.done),undone:me(this.history.undone)}},setHistory:function(a){var b=this.history=new ae(this.history.maxGeneration);b.done=me(a.done.slice(0),null,!0),b.undone=me(a.undone.slice(0),null,!0)},setGutterMarker:qd((function(a,b,c){return Oe(this,a,"gutter",(function(a){var d=a.gutterMarkers||(a.gutterMarkers={});return d[b]=c,!c&&w(d)&&(a.gutterMarkers=null),!0}))})),clearGutter:qd((function(a){var b=this;this.iter((function(c){c.gutterMarkers&&c.gutterMarkers[a]&&Oe(b,c,"gutter",(function(){return c.gutterMarkers[a]=null,w(c.gutterMarkers)&&(c.gutterMarkers=null),!0}))}))})),lineInfo:function(a){var b;if("number"==typeof a){if(!H(this,a))return null;if(b=a,a=B(this,a),!a)return null}else if(b=F(a),null==b)return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},addLineClass:qd((function(b,c,d){return Oe(this,b,"gutter"==c?"gutter":"class",(function(b){var e="text"==c?"textClass":"background"==c?"bgClass":"gutter"==c?"gutterClass":"wrapClass";if(b[e]){if(a(d).test(b[e]))return!1;b[e]+=" "+d}else b[e]=d;return!0}))})),removeLineClass:qd((function(b,c,d){return Oe(this,b,"gutter"==c?"gutter":"class",(function(b){var e="text"==c?"textClass":"background"==c?"bgClass":"gutter"==c?"gutterClass":"wrapClass",f=b[e];if(!f)return!1;if(null==d)b[e]=null;else{var g=f.match(a(d));if(!g)return!1;var h=g.index+g[0].length;b[e]=f.slice(0,g.index)+(g.index&&h!=f.length?" ":"")+f.slice(h)||null}return!0}))})),addLineWidget:qd((function(a,b,c){return Se(this,a,b,c)})),removeLineWidget:function(a){a.clear()},markText:function(a,b,c){return Te(this,Q(this,a),Q(this,b),c,c&&c.type||"range")},setBookmark:function(a,b){var c={replacedWith:b&&(null==b.nodeType?b.widget:b),insertLeft:b&&b.insertLeft,clearWhenEmpty:!1,shared:b&&b.shared,handleMouseEvents:b&&b.handleMouseEvents};return a=Q(this,a),Te(this,a,a,c,"bookmark")},findMarksAt:function(a){a=Q(this,a);var b=[],c=B(this,a.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var e=c[d];(null==e.from||e.from<=a.ch)&&(null==e.to||e.to>=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=Q(this,a),b=Q(this,b);var d=[],e=a.line;return this.iter(a.line,b.line+1,(function(f){var g=f.markedSpans;if(g)for(var h=0;h<g.length;h++){var i=g[h];null!=i.to&&e==a.line&&a.ch>=i.to||null==i.from&&e!=a.line||null!=i.from&&e==b.line&&i.from>=b.ch||c&&!c(i.marker)||d.push(i.marker.parent||i.marker)}++e})),d},getAllMarks:function(){var a=[];return this.iter((function(b){var c=b.markedSpans;if(c)for(var d=0;d<c.length;++d)null!=c[d].from&&a.push(c[d].marker)})),a},posFromIndex:function(a){var b,c=this.first,d=this.lineSeparator().length;return this.iter((function(e){var f=e.text.length+d;return f>a?(b=a,!0):(a-=f,void++c)})),Q(this,J(c,b))},indexFromPos:function(a){a=Q(this,a);var b=a.ch;if(a.line<this.first||a.ch<0)return 0;var c=this.lineSeparator().length;return this.iter(this.first,a.line,(function(a){b+=a.text.length+c})),b},copy:function(a){var b=new Lh(D(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return b.scrollTop=this.scrollTop,b.scrollLeft=this.scrollLeft,b.sel=this.sel,b.extend=!1,a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory())),b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from),null!=a.to&&a.to<c&&(c=a.to);var d=new Lh(D(this,b,c),a.mode||this.modeOption,b,this.lineSep,this.direction);return a.sharedHist&&(d.history=this.history),(this.linked||(this.linked=[])).push({doc:d,sharedHist:a.sharedHist}),d.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}],We(d,Ve(this)),d},unlinkDoc:function(a){var b=this;if(a instanceof Wf&&(a=a.doc),this.linked)for(var c=0;c<this.linked.length;++c){var d=b.linked[c];if(d.doc==a){b.linked.splice(c,1),a.unlinkDoc(b),Xe(Ve(b));break}}if(a.history==this.history){var e=[a.id];Yd(a,(function(a){return e.push(a.id)}),!0),a.history=new ae(null),a.history.done=me(this.history.done,e),a.history.undone=me(this.history.undone,e)}},iterLinkedDocs:function(a){Yd(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(a){return this.lineSep?a.split(this.lineSep):fh(a)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:qd((function(a){"rtl"!=a&&(a="ltr"),a!=this.direction&&(this.direction=a,this.iter((function(a){return a.order=null})),this.cm&&_d(this.cm))}))}),Lh.prototype.eachLine=Lh.prototype.iter;for(var Mh=0,Nh=!1,Oh={3:"Pause",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",145:"ScrollLock",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Ph=0;Ph<10;Ph++)Oh[Ph+48]=Oh[Ph+96]=String(Ph);for(var Qh=65;Qh<=90;Qh++)Oh[Qh]=String.fromCharCode(Qh);for(var Rh=1;Rh<=12;Rh++)Oh[Rh+111]=Oh[Rh+63235]="F"+Rh;var Sh={};Sh.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Sh.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Sh.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Sh.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Sh.default=Gg?Sh.macDefault:Sh.pcDefault;var Th={selectAll:Ce,singleSelection:function(a){return a.setSelection(a.getCursor("anchor"),a.getCursor("head"),Ug)},killLine:function(a){return mf(a,(function(b){if(b.empty()){var c=B(a.doc,b.head.line).text.length;return b.head.ch==c&&b.head.line<a.lastLine()?{from:b.head,to:J(b.head.line+1,0)}:{from:b.head,to:J(b.head.line,c)}}return{from:b.from(),to:b.to()}}))},deleteLine:function(a){return mf(a,(function(b){return{from:J(b.from().line,0),to:Q(a.doc,J(b.to().line+1,0))}}))},delLineLeft:function(a){return mf(a,(function(a){return{from:J(a.from().line,0),to:a.from()}}))},delWrappedLineLeft:function(a){return mf(a,(function(b){var c=a.charCoords(b.head,"div").top+5,d=a.coordsChar({left:0,top:c},"div");return{from:d,to:b.from()}}))},delWrappedLineRight:function(a){return mf(a,(function(b){var c=a.charCoords(b.head,"div").top+5,d=a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div");return{from:b.from(),to:d}}))},undo:function(a){return a.undo()},redo:function(a){return a.redo()},undoSelection:function(a){return a.undoSelection()},redoSelection:function(a){return a.redoSelection()},goDocStart:function(a){return a.extendSelection(J(a.firstLine(),0))},goDocEnd:function(a){return a.extendSelection(J(a.lastLine()))},goLineStart:function(a){return a.extendSelectionsBy((function(b){return rf(a,b.head.line)}),{origin:"+move",bias:1})},goLineStartSmart:function(a){return a.extendSelectionsBy((function(b){return tf(a,b.head)}),{origin:"+move",bias:1})},goLineEnd:function(a){return a.extendSelectionsBy((function(b){return sf(a,b.head.line)}),{origin:"+move",bias:-1})},goLineRight:function(a){return a.extendSelectionsBy((function(b){var c=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div")}),Wg)},goLineLeft:function(a){return a.extendSelectionsBy((function(b){var c=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:0,top:c},"div")}),Wg)},goLineLeftSmart:function(a){return a.extendSelectionsBy((function(b){var c=a.cursorCoords(b.head,"div").top+5,d=a.coordsChar({left:0,top:c},"div");return d.ch<a.getLine(d.line).search(/\S/)?tf(a,b.head):d}),Wg)},goLineUp:function(a){return a.moveV(-1,"line")},goLineDown:function(a){return a.moveV(1,"line")},goPageUp:function(a){return a.moveV(-1,"page")},goPageDown:function(a){return a.moveV(1,"page")},goCharLeft:function(a){return a.moveH(-1,"char")},goCharRight:function(a){return a.moveH(1,"char")},goColumnLeft:function(a){return a.moveH(-1,"column")},goColumnRight:function(a){return a.moveH(1,"column")},goWordLeft:function(a){return a.moveH(-1,"word")},goGroupRight:function(a){return a.moveH(1,"group")},goGroupLeft:function(a){return a.moveH(-1,"group")},goWordRight:function(a){return a.moveH(1,"word")},delCharBefore:function(a){return a.deleteH(-1,"char")},delCharAfter:function(a){return a.deleteH(1,"char")},delWordBefore:function(a){return a.deleteH(-1,"word")},delWordAfter:function(a){return a.deleteH(1,"word")},delGroupBefore:function(a){return a.deleteH(-1,"group")},delGroupAfter:function(a){return a.deleteH(1,"group")},indentAuto:function(a){return a.indentSelection("smart")},indentMore:function(a){return a.indentSelection("add")},indentLess:function(a){return a.indentSelection("subtract")},insertTab:function(a){return a.replaceSelection("\t")},insertSoftTab:function(a){for(var b=[],c=a.listSelections(),d=a.options.tabSize,e=0;e<c.length;e++){var f=c[e].from(),g=l(a.getLine(f.line),f.ch,d);b.push(o(d-g%d))}a.replaceSelections(b)},defaultTab:function(a){a.somethingSelected()?a.indentSelection("add"):a.execCommand("insertTab")},transposeChars:function(a){return nd(a,(function(){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++)if(b[d].empty()){var e=b[d].head,f=B(a.doc,e.line).text;if(f)if(e.ch==f.length&&(e=new J(e.line,e.ch-1)),e.ch>0)e=new J(e.line,e.ch+1),a.replaceRange(f.charAt(e.ch-1)+f.charAt(e.ch-2),J(e.line,e.ch-2),e,"+transpose");else if(e.line>a.doc.first){var g=B(a.doc,e.line-1).text;g&&(e=new J(e.line,1),a.replaceRange(f.charAt(0)+a.doc.lineSeparator()+g.charAt(g.length-1),J(e.line-1,g.length-1),e,"+transpose"))}c.push(new Fh(e,e))}a.setSelections(c)}))},newlineAndIndent:function(a){return nd(a,(function(){for(var b=a.listSelections(),c=b.length-1;c>=0;c--)a.replaceRange(a.doc.lineSeparator(),b[c].anchor,b[c].head,"+input");b=a.listSelections();for(var d=0;d<b.length;d++)a.indentLine(b[d].from().line,null,!0);Vc(a)}))},openLine:function(a){return a.replaceSelection("\n","start")},toggleOverwrite:function(a){return a.toggleOverwrite()}},Uh=new Pg,Vh=null,Wh=400,Xh=function(a,b,c){this.time=a,this.pos=b,this.button=c};Xh.prototype.compare=function(a,b,c){return this.time+Wh>a&&0==K(b,this.pos)&&c==this.button};var Yh,Zh,$h={toString:function(){return"CodeMirror.Init"}},_h={},ai={};Wf.defaults=_h,Wf.optionHandlers=ai;var bi=[];Wf.defineInitHook=function(a){return bi.push(a)};var ci=null,di=function(a){var b=a.optionHandlers,c=a.helpers={};a.prototype={constructor:a,focus:function(){window.focus(),this.display.input.focus()},setOption:function(a,c){var d=this.options,e=d[a];d[a]==c&&"mode"!=a||(d[a]=c,b.hasOwnProperty(a)&&od(this,b[a])(this,c,e),Ba(this,"optionChange",this,a))},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](lf(a))},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;c<b.length;++c)if(b[c]==a||b[c].name==a)return b.splice(c,1),!0},addOverlay:pd((function(b,c){var d=b.token?b:a.getMode(this.options,b);if(d.startState)throw new Error("Overlays may not be stateful.");r(this.state.overlays,{mode:d,modeSpec:b,opaque:c&&c.opaque,priority:c&&c.priority||0},(function(a){return a.priority})),this.state.modeGen++,rd(this)})),removeOverlay:pd((function(a){for(var b=this,c=this.state.overlays,d=0;d<c.length;++d){var e=c[d].modeSpec;if(e==a||"string"==typeof a&&e.name==a)return c.splice(d,1),b.state.modeGen++,void rd(b)}})),indentLine:pd((function(a,b,c){"string"!=typeof b&&"number"!=typeof b&&(b=null==b?this.options.smartIndent?"smart":"prev":b?"add":"subtract"),H(this.doc,a)&&Yf(this,a,b,c)})),indentSelection:pd((function(a){for(var b=this,c=this.doc.sel.ranges,d=-1,e=0;e<c.length;e++){var f=c[e];if(f.empty())f.head.line>d&&(Yf(b,f.head.line,a,!0),d=f.head.line,e==b.doc.sel.primIndex&&Vc(b));else{var g=f.from(),h=f.to(),i=Math.max(d,g.line);d=Math.min(b.lastLine(),h.line-(h.ch?0:1))+1;for(var j=i;j<d;++j)Yf(b,j,a);var k=b.doc.sel.ranges;0==g.ch&&c.length==k.length&&k[e].from().ch>0&&qe(b.doc,e,new Fh(g,k[e].to()),Ug)}}})),getTokenAt:function(a,b){return bb(this,a,b)},getLineTokens:function(a,b){return bb(this,J(a),b,!0)},getTokenTypeAt:function(a){a=Q(this.doc,a);var b,c=Ya(this,B(this.doc,a.line)),d=0,e=(c.length-1)/2,f=a.ch;if(0==f)b=c[2];else for(;;){var g=d+e>>1;if((g?c[2*g-1]:0)>=f)e=g;else{if(!(c[2*g+1]<f)){b=c[2*g+2];break}d=g+1}}var h=b?b.indexOf("overlay "):-1;return h<0?b:0==h?null:b.slice(0,h-1)},getModeAt:function(b){var c=this.doc.mode;return c.innerMode?a.innerMode(c,this.getTokenAt(b).state).mode:c},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(a,b){var d=this,e=[];if(!c.hasOwnProperty(b))return e;var f=c[b],g=this.getModeAt(a);if("string"==typeof g[b])f[g[b]]&&e.push(f[g[b]]);else if(g[b])for(var h=0;h<g[b].length;h++){var i=f[g[b][h]];i&&e.push(i)}else g.helperType&&f[g.helperType]?e.push(f[g.helperType]):f[g.name]&&e.push(f[g.name]);for(var j=0;j<f._global.length;j++){var k=f._global[j];k.pred(g,d)&&m(e,k.val)==-1&&e.push(k.val)}return e},getStateAfter:function(a,b){var c=this.doc;return a=P(c,null==a?c.first+c.size-1:a),Za(this,a+1,b).state},cursorCoords:function(a,b){var c,d=this.doc.sel.primary();return c=null==a?d.head:"object"==typeof a?Q(this.doc,a):a?d.from():d.to(),jc(this,c,b||"page")},charCoords:function(a,b){return ic(this,Q(this.doc,a),b||"page")},coordsChar:function(a,b){return a=hc(this,a,b||"page"),mc(this,a.left,a.top)},lineAtHeight:function(a,b){return a=hc(this,{top:a,left:0},b||"page").top,G(this.doc,a+this.display.viewOffset)},heightAtLine:function(a,b,c){var d,e=!1;if("number"==typeof a){var f=this.doc.first+this.doc.size-1;a<this.doc.first?a=this.doc.first:a>f&&(a=f,e=!0),d=B(this.doc,a)}else d=a;return gc(this,d,{top:0,left:0},b||"page",c||e).top+(e?this.doc.height-ta(d):0)},defaultTextHeight:function(){return tc(this.display)},defaultCharWidth:function(){return uc(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display;a=jc(this,Q(this.doc,a));var g=a.bottom,h=a.left;if(b.style.position="absolute",b.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(b),f.sizer.appendChild(b),"over"==d)g=a.top;else if("above"==d||"near"==d){var i=Math.max(f.wrapper.clientHeight,this.doc.height),j=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>i)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=i&&(g=a.bottom),h+b.offsetWidth>j&&(h=j-b.offsetWidth)}b.style.top=g+"px",b.style.left=b.style.right="","right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/2),b.style.left=h+"px"),c&&Sc(this,{left:h,top:g,right:h+b.offsetWidth,bottom:g+b.offsetHeight})},triggerOnKeyDown:pd(Af),triggerOnKeyPress:pd(Df),triggerOnKeyUp:Cf,triggerOnMouseDown:pd(Ff),execCommand:function(a){if(Th.hasOwnProperty(a))return Th[a].call(null,this)},triggerElectric:pd((function(a){ag(this,a)})),findPosH:function(a,b,c,d){var e=this,f=1;b<0&&(f=-1,b=-b);for(var g=Q(this.doc,a),h=0;h<b&&(g=eg(e.doc,g,f,c,d),!g.hitSide);++h);return g},moveH:pd((function(a,b){var c=this;this.extendSelectionsBy((function(d){return c.display.shift||c.doc.extend||d.empty()?eg(c.doc,d.head,a,b,c.options.rtlMoveVisually):a<0?d.from():d.to()}),Wg)})),deleteH:pd((function(a,b){var c=this.doc.sel,d=this.doc;c.somethingSelected()?d.replaceSelection("",null,"+delete"):mf(this,(function(c){var e=eg(d,c.head,a,b,!1);return a<0?{from:e,to:c.head}:{from:c.head,to:e}}))})),findPosV:function(a,b,c,d){var e=this,f=1,g=d;b<0&&(f=-1,b=-b);for(var h=Q(this.doc,a),i=0;i<b;++i){var j=jc(e,h,"div");if(null==g?g=j.left:j.left=g,h=fg(e,j,f,c),h.hitSide)break}return h},moveV:pd((function(a,b){var c=this,d=this.doc,e=[],f=!this.display.shift&&!d.extend&&d.sel.somethingSelected();if(d.extendSelectionsBy((function(g){if(f)return a<0?g.from():g.to();var h=jc(c,g.head,"div");null!=g.goalColumn&&(h.left=g.goalColumn),e.push(h.left);var i=fg(c,h,a,b);return"page"==b&&g==d.sel.primary()&&Uc(c,ic(c,i,"div").top-h.top),i}),Wg),e.length)for(var g=0;g<d.sel.ranges.length;g++)d.sel.ranges[g].goalColumn=e[g]})),findWordAt:function(a){var b=this.doc,c=B(b,a.line).text,d=a.ch,e=a.ch;if(c){var f=this.getHelper(a,"wordChars");"before"!=a.sticky&&e!=c.length||!d?++e:--d;for(var g=c.charAt(d),h=v(g,f)?function(a){return v(a,f)}:/\s/.test(g)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!v(a)};d>0&&h(c.charAt(d-1));)--d;for(;e<c.length&&h(c.charAt(e));)++e}return new Fh(J(a.line,d),J(a.line,e))},toggleOverwrite:function(a){null!=a&&a==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?h(this.display.cursorDiv,"CodeMirror-overwrite"):Ng(this.display.cursorDiv,"CodeMirror-overwrite"),Ba(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==g()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:pd((function(a,b){Wc(this,a,b)})),getScrollInfo:function(){var a=this.display.scroller;return{left:a.scrollLeft,top:a.scrollTop,height:a.scrollHeight-Ob(this)-this.display.barHeight,width:a.scrollWidth-Ob(this)-this.display.barWidth,clientHeight:Qb(this),clientWidth:Pb(this)}},scrollIntoView:pd((function(a,b){null==a?(a={from:this.doc.sel.primary().head,to:null},null==b&&(b=this.options.cursorScrollMargin)):"number"==typeof a?a={from:J(a,0),to:null}:null==a.from&&(a={from:a,to:null}),a.to||(a.to=a.from),a.margin=b||0,null!=a.from.line?Xc(this,a):Zc(this,a.from,a.to,a.margin)})),setSize:pd((function(a,b){var c=this,d=function(a){return"number"==typeof a||/^\d+$/.test(String(a))?a+"px":a};null!=a&&(this.display.wrapper.style.width=d(a)),null!=b&&(this.display.wrapper.style.height=d(b)),this.options.lineWrapping&&bc(this);var e=this.display.viewFrom;this.doc.iter(e,this.display.viewTo,(function(a){if(a.widgets)for(var b=0;b<a.widgets.length;b++)if(a.widgets[b].noHScroll){sd(c,e,"widget");break}++e})),this.curOp.forceUpdate=!0,Ba(this,"refresh",this)})),operation:function(a){return nd(this,a)},startOperation:function(){return fd(this)},endOperation:function(){return gd(this)},refresh:pd((function(){var a=this.display.cachedTextHeight;rd(this),this.curOp.forceUpdate=!0,cc(this),Wc(this,this.doc.scrollLeft,this.doc.scrollTop),Gd(this),(null==a||Math.abs(a-tc(this.display))>.5)&&yc(this),Ba(this,"refresh",this)})),swapDoc:pd((function(a){var b=this.doc;return b.cm=null,Zd(this,a),cc(this),this.display.input.reset(),Wc(this,a.scrollLeft,a.scrollTop),this.curOp.forceScroll=!0,vb(this,"swapDoc",this,b),b})),phrase:function(a){var b=this.options.phrases;return b&&Object.prototype.hasOwnProperty.call(b,a)?b[a]:a},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Fa(a),a.registerHelper=function(b,d,e){c.hasOwnProperty(b)||(c[b]=a[b]={_global:[]}),c[b][d]=e},a.registerGlobalHelper=function(b,d,e,f){a.registerHelper(b,d,f),c[b]._global.push({pred:e,val:f})}},ei=function(a){this.cm=a,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Pg,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};ei.prototype.init=function(a){function b(a){if(!Ca(e,a)){if(e.somethingSelected())Zf({lineWise:!1,text:e.getSelections()}),"cut"==a.type&&e.replaceSelection("",null,"cut");else{if(!e.options.lineWiseCopyCut)return;var b=bg(e);Zf({lineWise:!0,text:b.text}),"cut"==a.type&&e.operation((function(){e.setSelections(b.ranges,0,Ug),e.replaceSelection("",null,"cut")}))}if(a.clipboardData){a.clipboardData.clearData();var c=ci.text.join("\n");if(a.clipboardData.setData("Text",c),a.clipboardData.getData("Text")==c)return void a.preventDefault()}var g=dg(),h=g.firstChild;e.display.lineSpace.insertBefore(g,e.display.lineSpace.firstChild),h.value=ci.text.join("\n");var i=document.activeElement;Og(h),setTimeout((function(){e.display.lineSpace.removeChild(g),i.focus(),i==f&&d.showPrimarySelection()}),50)}}var c=this,d=this,e=d.cm,f=d.div=a.lineDiv;cg(f,e.options.spellcheck),dh(f,"paste",(function(a){Ca(e,a)||_f(a,e)||vg<=11&&setTimeout(od(e,(function(){return c.updateFromDOM()})),20)})),dh(f,"compositionstart",(function(a){c.composing={data:a.data,done:!1}})),dh(f,"compositionupdate",(function(a){c.composing||(c.composing={data:a.data,done:!1})})),dh(f,"compositionend",(function(a){c.composing&&(a.data!=c.composing.data&&c.readFromDOMSoon(),c.composing.done=!0)})),dh(f,"touchstart",(function(){return d.forceCompositionEnd()})),dh(f,"input",(function(){c.composing||c.readFromDOMSoon()})),dh(f,"copy",b),dh(f,"cut",b)},ei.prototype.prepareSelection=function(){var a=Cc(this.cm,!1);return a.focus=this.cm.state.focused,a},ei.prototype.showSelection=function(a,b){a&&this.cm.display.view.length&&((a.focus||b)&&this.showPrimarySelection(),this.showMultipleSelections(a))},ei.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},ei.prototype.showPrimarySelection=function(){var a=this.getSelection(),b=this.cm,c=b.doc.sel.primary(),d=c.from(),e=c.to();if(b.display.viewTo==b.display.viewFrom||d.line>=b.display.viewTo||e.line<b.display.viewFrom)return void a.removeAllRanges();var f=kg(b,a.anchorNode,a.anchorOffset),g=kg(b,a.focusNode,a.focusOffset);if(!f||f.bad||!g||g.bad||0!=K(O(f,g),d)||0!=K(N(f,g),e)){var h=b.display.view,i=d.line>=b.display.viewFrom&&gg(b,d)||{node:h[0].measure.map[2],offset:0},j=e.line<b.display.viewTo&&gg(b,e);if(!j){var k=h[h.length-1].measure,l=k.maps?k.maps[k.maps.length-1]:k.map;j={node:l[l.length-1],offset:l[l.length-2]-l[l.length-3]}}if(!i||!j)return void a.removeAllRanges();var m,n=a.rangeCount&&a.getRangeAt(0);try{m=Kg(i.node,i.offset,j.offset,j.node)}catch(a){}m&&(!qg&&b.state.focused?(a.collapse(i.node,i.offset),m.collapsed||(a.removeAllRanges(),a.addRange(m))):(a.removeAllRanges(),a.addRange(m)),n&&null==a.anchorNode?a.addRange(n):qg&&this.startGracePeriod()),this.rememberSelection()}},ei.prototype.startGracePeriod=function(){var a=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout((function(){a.gracePeriod=!1,a.selectionChanged()&&a.cm.operation((function(){return a.cm.curOp.selectionChanged=!0}))}),20)},ei.prototype.showMultipleSelections=function(a){c(this.cm.display.cursorDiv,a.cursors),c(this.cm.display.selectionDiv,a.selection)},ei.prototype.rememberSelection=function(){var a=this.getSelection();this.lastAnchorNode=a.anchorNode,this.lastAnchorOffset=a.anchorOffset,this.lastFocusNode=a.focusNode,this.lastFocusOffset=a.focusOffset},ei.prototype.selectionInEditor=function(){var a=this.getSelection();if(!a.rangeCount)return!1;var b=a.getRangeAt(0).commonAncestorContainer;return f(this.div,b)},ei.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},ei.prototype.blur=function(){this.div.blur()},ei.prototype.getField=function(){return this.div},ei.prototype.supportsTouch=function(){return!0},ei.prototype.receivedFocus=function(){function a(){b.cm.state.focused&&(b.pollSelection(),b.polling.set(b.cm.options.pollInterval,a))}var b=this;this.selectionInEditor()?this.pollSelection():nd(this.cm,(function(){return b.cm.curOp.selectionChanged=!0})),this.polling.set(this.cm.options.pollInterval,a)},ei.prototype.selectionChanged=function(){var a=this.getSelection();return a.anchorNode!=this.lastAnchorNode||a.anchorOffset!=this.lastAnchorOffset||a.focusNode!=this.lastFocusNode||a.focusOffset!=this.lastFocusOffset},ei.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var a=this.getSelection(),b=this.cm;if(Eg&&yg&&this.cm.options.gutters.length&&hg(a.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var c=kg(b,a.anchorNode,a.anchorOffset),d=kg(b,a.focusNode,a.focusOffset);c&&d&&nd(b,(function(){ue(b.doc,Od(c,d),Ug),(c.bad||d.bad)&&(b.curOp.selectionChanged=!0)}))}}},ei.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var a=this.cm,b=a.display,c=a.doc.sel.primary(),d=c.from(),e=c.to();if(0==d.ch&&d.line>a.firstLine()&&(d=J(d.line-1,B(a.doc,d.line-1).length)),e.ch==B(a.doc,e.line).text.length&&e.line<a.lastLine()&&(e=J(e.line+1,0)),d.line<b.viewFrom||e.line>b.viewTo-1)return!1;var f,g,h;d.line==b.viewFrom||0==(f=Ac(a,d.line))?(g=F(b.view[0].line),h=b.view[0].node):(g=F(b.view[f].line),h=b.view[f-1].node.nextSibling);var i,j,k=Ac(a,e.line);if(k==b.view.length-1?(i=b.viewTo-1,j=b.lineDiv.lastChild):(i=F(b.view[k+1].line)-1,j=b.view[k+1].node.previousSibling),!h)return!1;for(var l=a.doc.splitLines(jg(a,h,j,g,i)),m=C(a.doc,J(g,0),J(i,B(a.doc,i).text.length));l.length>1&&m.length>1;)if(p(l)==p(m))l.pop(),m.pop(),i--;else{if(l[0]!=m[0])break;l.shift(),m.shift(),g++}for(var n=0,o=0,q=l[0],r=m[0],s=Math.min(q.length,r.length);n<s&&q.charCodeAt(n)==r.charCodeAt(n);)++n;for(var t=p(l),u=p(m),v=Math.min(t.length-(1==l.length?n:0),u.length-(1==m.length?n:0));o<v&&t.charCodeAt(t.length-o-1)==u.charCodeAt(u.length-o-1);)++o;if(1==l.length&&1==m.length&&g==d.line)for(;n&&n>d.ch&&t.charCodeAt(t.length-o-1)==u.charCodeAt(u.length-o-1);)n--,
o++;l[l.length-1]=t.slice(0,t.length-o).replace(/^\u200b+/,""),l[0]=l[0].slice(n).replace(/\u200b+$/,"");var w=J(g,n),x=J(i,m.length?p(m).length-o:0);return l.length>1||l[0]||K(w,x)?(Ke(a.doc,l,w,x,"+input"),!0):void 0},ei.prototype.ensurePolled=function(){this.forceCompositionEnd()},ei.prototype.reset=function(){this.forceCompositionEnd()},ei.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},ei.prototype.readFromDOMSoon=function(){var a=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(a.readDOMTimeout=null,a.composing){if(!a.composing.done)return;a.composing=null}a.updateFromDOM()}),80))},ei.prototype.updateFromDOM=function(){var a=this;!this.cm.isReadOnly()&&this.pollContent()||nd(this.cm,(function(){return rd(a.cm)}))},ei.prototype.setUneditable=function(a){a.contentEditable="false"},ei.prototype.onKeyPress=function(a){0==a.charCode||this.composing||(a.preventDefault(),this.cm.isReadOnly()||od(this.cm,$f)(this.cm,String.fromCharCode(null==a.charCode?a.keyCode:a.charCode),0))},ei.prototype.readOnlyChanged=function(a){this.div.contentEditable=String("nocursor"!=a)},ei.prototype.onContextMenu=function(){},ei.prototype.resetPosition=function(){},ei.prototype.needsContentAttribute=!0;var fi=function(a){this.cm=a,this.prevInput="",this.pollingFast=!1,this.polling=new Pg,this.hasSelection=!1,this.composing=null};fi.prototype.init=function(a){function b(a){if(!Ca(e,a)){if(e.somethingSelected())Zf({lineWise:!1,text:e.getSelections()});else{if(!e.options.lineWiseCopyCut)return;var b=bg(e);Zf({lineWise:!0,text:b.text}),"cut"==a.type?e.setSelections(b.ranges,null,Ug):(d.prevInput="",f.value=b.text.join("\n"),Og(f))}"cut"==a.type&&(e.state.cutIncoming=!0)}}var c=this,d=this,e=this.cm;this.createField(a);var f=this.textarea;a.wrapper.insertBefore(this.wrapper,a.wrapper.firstChild),Dg&&(f.style.width="0px"),dh(f,"input",(function(){ug&&vg>=9&&c.hasSelection&&(c.hasSelection=null),d.poll()})),dh(f,"paste",(function(a){Ca(e,a)||_f(a,e)||(e.state.pasteIncoming=!0,d.fastPoll())})),dh(f,"cut",b),dh(f,"copy",b),dh(a.scroller,"paste",(function(b){Kb(a,b)||Ca(e,b)||(e.state.pasteIncoming=!0,d.focus())})),dh(a.lineSpace,"selectstart",(function(b){Kb(a,b)||Ga(b)})),dh(f,"compositionstart",(function(){var a=e.getCursor("from");d.composing&&d.composing.range.clear(),d.composing={start:a,range:e.markText(a,e.getCursor("to"),{className:"CodeMirror-composing"})}})),dh(f,"compositionend",(function(){d.composing&&(d.poll(),d.composing.range.clear(),d.composing=null)}))},fi.prototype.createField=function(a){this.wrapper=dg(),this.textarea=this.wrapper.firstChild},fi.prototype.prepareSelection=function(){var a=this.cm,b=a.display,c=a.doc,d=Cc(a);if(a.options.moveInputWithCursor){var e=jc(a,c.sel.primary().head,"div"),f=b.wrapper.getBoundingClientRect(),g=b.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(b.wrapper.clientHeight-10,e.top+g.top-f.top)),d.teLeft=Math.max(0,Math.min(b.wrapper.clientWidth-10,e.left+g.left-f.left))}return d},fi.prototype.showSelection=function(a){var b=this.cm,d=b.display;c(d.cursorDiv,a.cursors),c(d.selectionDiv,a.selection),null!=a.teTop&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left=a.teLeft+"px")},fi.prototype.reset=function(a){if(!this.contextMenuPending&&!this.composing){var b=this.cm;if(b.somethingSelected()){this.prevInput="";var c=b.getSelection();this.textarea.value=c,b.state.focused&&Og(this.textarea),ug&&vg>=9&&(this.hasSelection=c)}else a||(this.prevInput=this.textarea.value="",ug&&vg>=9&&(this.hasSelection=null))}},fi.prototype.getField=function(){return this.textarea},fi.prototype.supportsTouch=function(){return!1},fi.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Fg||g()!=this.textarea))try{this.textarea.focus()}catch(a){}},fi.prototype.blur=function(){this.textarea.blur()},fi.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},fi.prototype.receivedFocus=function(){this.slowPoll()},fi.prototype.slowPoll=function(){var a=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){a.poll(),a.cm.state.focused&&a.slowPoll()}))},fi.prototype.fastPoll=function(){function a(){var d=c.poll();d||b?(c.pollingFast=!1,c.slowPoll()):(b=!0,c.polling.set(60,a))}var b=!1,c=this;c.pollingFast=!0,c.polling.set(20,a)},fi.prototype.poll=function(){var a=this,b=this.cm,c=this.textarea,d=this.prevInput;if(this.contextMenuPending||!b.state.focused||gh(c)&&!d&&!this.composing||b.isReadOnly()||b.options.disableInput||b.state.keySeq)return!1;var e=c.value;if(e==d&&!b.somethingSelected())return!1;if(ug&&vg>=9&&this.hasSelection===e||Gg&&/[\uf700-\uf7ff]/.test(e))return b.display.input.reset(),!1;if(b.doc.sel==b.display.selForContextMenu){var f=e.charCodeAt(0);if(8203!=f||d||(d="​"),8666==f)return this.reset(),this.cm.execCommand("undo")}for(var g=0,h=Math.min(d.length,e.length);g<h&&d.charCodeAt(g)==e.charCodeAt(g);)++g;return nd(b,(function(){$f(b,e.slice(g),d.length-g,null,a.composing?"*compose":null),e.length>1e3||e.indexOf("\n")>-1?c.value=a.prevInput="":a.prevInput=e,a.composing&&(a.composing.range.clear(),a.composing.range=b.markText(a.composing.start,b.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},fi.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},fi.prototype.onKeyPress=function(){ug&&vg>=9&&(this.hasSelection=null),this.fastPoll()},fi.prototype.onContextMenu=function(a){function b(){if(null!=g.selectionStart){var a=e.somethingSelected(),b="​"+(a?g.value:"");g.value="⇚",g.value=b,d.prevInput=a?"":"​",g.selectionStart=1,g.selectionEnd=b.length,f.selForContextMenu=e.doc.sel}}function c(){if(d.contextMenuPending=!1,d.wrapper.style.cssText=l,g.style.cssText=k,ug&&vg<9&&f.scrollbars.setScrollTop(f.scroller.scrollTop=i),null!=g.selectionStart){(!ug||ug&&vg<9)&&b();var a=0,c=function(){f.selForContextMenu==e.doc.sel&&0==g.selectionStart&&g.selectionEnd>0&&"​"==d.prevInput?od(e,Ce)(e):a++<10?f.detectingSelectAll=setTimeout(c,500):(f.selForContextMenu=null,f.input.reset())};f.detectingSelectAll=setTimeout(c,200)}}var d=this,e=d.cm,f=e.display,g=d.textarea,h=zc(e,a),i=f.scroller.scrollTop;if(h&&!zg){var j=e.options.resetSelectionOnContextMenu;j&&e.doc.sel.contains(h)==-1&&od(e,ue)(e.doc,Od(h),Ug);var k=g.style.cssText,l=d.wrapper.style.cssText;d.wrapper.style.cssText="position: absolute";var m=d.wrapper.getBoundingClientRect();g.style.cssText="position: absolute; width: 30px; height: 30px;\n      top: "+(a.clientY-m.top-5)+"px; left: "+(a.clientX-m.left-5)+"px;\n      z-index: 1000; background: "+(ug?"rgba(255, 255, 255, .05)":"transparent")+";\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var n;if(wg&&(n=window.scrollY),f.input.focus(),wg&&window.scrollTo(null,n),f.input.reset(),e.somethingSelected()||(g.value=d.prevInput=" "),d.contextMenuPending=!0,f.selForContextMenu=e.doc.sel,clearTimeout(f.detectingSelectAll),ug&&vg>=9&&b(),Mg){Ja(a);var o=function(){Aa(window,"mouseup",o),setTimeout(c,20)};dh(window,"mouseup",o)}else setTimeout(c,50)}},fi.prototype.readOnlyChanged=function(a){a||this.reset(),this.textarea.disabled="nocursor"==a},fi.prototype.setUneditable=function(){},fi.prototype.needsContentAttribute=!1,Sf(Wf),di(Wf);var gi="iter insert remove copy getEditor constructor".split(" ");for(var hi in Lh.prototype)Lh.prototype.hasOwnProperty(hi)&&m(gi,hi)<0&&(Wf.prototype[hi]=(function(a){return function(){return a.apply(this.doc,arguments)}})(Lh.prototype[hi]));return Fa(Lh),Wf.inputStyles={textarea:fi,contenteditable:ei},Wf.defineMode=function(a){Wf.defaults.mode||"null"==a||(Wf.defaults.mode=a),Pa.apply(this,arguments)},Wf.defineMIME=Qa,Wf.defineMode("null",(function(){return{token:function(a){return a.skipToEnd()}}})),Wf.defineMIME("text/plain","null"),Wf.defineExtension=function(a,b){Wf.prototype[a]=b},Wf.defineDocExtension=function(a,b){Lh.prototype[a]=b},Wf.fromTextArea=mg,ng(Wf),Wf.version="5.40.0",Wf}));editors/codemirror/lib/addons.css000064400000004054152177723720013132 0ustar00.CodeMirror-fullscreen {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  height: auto;
  z-index: 9;
}

.CodeMirror-foldmarker {
  color: blue;
  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
  font-family: arial;
  line-height: .3;
  cursor: pointer;
}
.CodeMirror-foldgutter {
  width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
  cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
  content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
  content: "\25B8";
}

.CodeMirror-search-match {
  background: gold;
  border-top: 1px solid orange;
  border-bottom: 1px solid orange;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  opacity: .5;
}

.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
  position: absolute;
  background: #ccc;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #bbb;
  border-radius: 2px;
}

.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
  position: absolute;
  z-index: 6;
  background: #eee;
}

.CodeMirror-simplescroll-horizontal {
  bottom: 0; left: 0;
  height: 8px;
}
.CodeMirror-simplescroll-horizontal div {
  bottom: 0;
  height: 100%;
}

.CodeMirror-simplescroll-vertical {
  right: 0; top: 0;
  width: 8px;
}
.CodeMirror-simplescroll-vertical div {
  right: 0;
  width: 100%;
}


.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
  display: none;
}

.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
  position: absolute;
  background: #bcd;
  border-radius: 3px;
}

.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
  position: absolute;
  z-index: 6;
}

.CodeMirror-overlayscroll-horizontal {
  bottom: 0; left: 0;
  height: 6px;
}
.CodeMirror-overlayscroll-horizontal div {
  bottom: 0;
  height: 100%;
}

.CodeMirror-overlayscroll-vertical {
  right: 0; top: 0;
  width: 6px;
}
.CodeMirror-overlayscroll-vertical div {
  right: 0;
  width: 100%;
}
editors/codemirror/lib/codemirror.css000064400000020536152177723720014032 0ustar00/* BASICS */

.CodeMirror {
  /* Set height, width, borders, and global font properties here */
  font-family: monospace;
  height: 300px;
  color: black;
  direction: ltr;
}

/* PADDING */

.CodeMirror-lines {
  padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre {
  padding: 0 4px; /* Horizontal padding of content */
}

.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
  background-color: white; /* The little square between H and V scrollbars */
}

/* GUTTER */

.CodeMirror-gutters {
  border-right: 1px solid #ddd;
  background-color: #f7f7f7;
  white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
  padding: 0 3px 0 5px;
  min-width: 20px;
  text-align: right;
  color: #999;
  white-space: nowrap;
}

.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }

/* CURSOR */

.CodeMirror-cursor {
  border-left: 1px solid black;
  border-right: none;
  width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
  border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
  width: auto;
  border: 0 !important;
  background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
  z-index: 1;
}
.cm-fat-cursor-mark {
  background-color: rgba(20, 255, 20, 0.5);
  -webkit-animation: blink 1.06s steps(1) infinite;
  -moz-animation: blink 1.06s steps(1) infinite;
  animation: blink 1.06s steps(1) infinite;
}
.cm-animate-fat-cursor {
  width: auto;
  border: 0;
  -webkit-animation: blink 1.06s steps(1) infinite;
  -moz-animation: blink 1.06s steps(1) infinite;
  animation: blink 1.06s steps(1) infinite;
  background-color: #7e7;
}
@-moz-keyframes blink {
  0% {}
  50% { background-color: transparent; }
  100% {}
}
@-webkit-keyframes blink {
  0% {}
  50% { background-color: transparent; }
  100% {}
}
@keyframes blink {
  0% {}
  50% { background-color: transparent; }
  100% {}
}

/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror-overwrite .CodeMirror-cursor {}

.cm-tab { display: inline-block; text-decoration: inherit; }

.CodeMirror-rulers {
  position: absolute;
  left: 0; right: 0; top: -50px; bottom: -20px;
  overflow: hidden;
}
.CodeMirror-ruler {
  border-left: 1px solid #ccc;
  top: 0; bottom: 0;
  position: absolute;
}

/* DEFAULT THEME */

.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}

.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}

.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}

.CodeMirror-composing { border-bottom: 2px solid; }

/* Default styles for common addons */

div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}

/* STOP */

/* The rest of this file contains styles related to the mechanics of
   the editor. You probably shouldn't touch them. */

.CodeMirror {
  position: relative;
  overflow: hidden;
  background: white;
}

.CodeMirror-scroll {
  overflow: scroll !important; /* Things will break if this is overridden */
  /* 30px is the magic margin used to hide the element's real scrollbars */
  /* See overflow: hidden in .CodeMirror */
  margin-bottom: -30px; margin-right: -30px;
  padding-bottom: 30px;
  height: 100%;
  outline: none; /* Prevent dragging from highlighting the element */
  position: relative;
}
.CodeMirror-sizer {
  position: relative;
  border-right: 30px solid transparent;
}

/* The fake, visible scrollbars. Used to force redraw during scrolling
   before actual scrolling happens, thus preventing shaking and
   flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
  position: absolute;
  z-index: 6;
  display: none;
}
.CodeMirror-vscrollbar {
  right: 0; top: 0;
  overflow-x: hidden;
  overflow-y: scroll;
}
.CodeMirror-hscrollbar {
  bottom: 0; left: 0;
  overflow-y: hidden;
  overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
  right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
  left: 0; bottom: 0;
}

.CodeMirror-gutters {
  position: absolute; left: 0; top: 0;
  min-height: 100%;
  z-index: 3;
}
.CodeMirror-gutter {
  white-space: normal;
  height: 100%;
  display: inline-block;
  vertical-align: top;
  margin-bottom: -30px;
}
.CodeMirror-gutter-wrapper {
  position: absolute;
  z-index: 4;
  background: none !important;
  border: none !important;
}
.CodeMirror-gutter-background {
  position: absolute;
  top: 0; bottom: 0;
  z-index: 4;
}
.CodeMirror-gutter-elt {
  position: absolute;
  cursor: default;
  z-index: 4;
}
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }

.CodeMirror-lines {
  cursor: text;
  min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre {
  /* Reset some styles that the rest of the page might have set */
  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
  border-width: 0;
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  margin: 0;
  white-space: pre;
  word-wrap: normal;
  line-height: inherit;
  color: inherit;
  z-index: 2;
  position: relative;
  overflow: visible;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-variant-ligatures: contextual;
  font-variant-ligatures: contextual;
}
.CodeMirror-wrap pre {
  word-wrap: break-word;
  white-space: pre-wrap;
  word-break: normal;
}

.CodeMirror-linebackground {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 0;
  z-index: 0;
}

.CodeMirror-linewidget {
  position: relative;
  z-index: 2;
  padding: 0.1px; /* Force widget margins to stay inside of the container */
}

.CodeMirror-widget {}

.CodeMirror-rtl pre { direction: rtl; }

.CodeMirror-code {
  outline: none;
}

/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

.CodeMirror-measure {
  position: absolute;
  width: 100%;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.CodeMirror-cursor {
  position: absolute;
  pointer-events: none;
}
.CodeMirror-measure pre { position: static; }

div.CodeMirror-cursors {
  visibility: hidden;
  position: relative;
  z-index: 3;
}
div.CodeMirror-dragcursors {
  visibility: visible;
}

.CodeMirror-focused div.CodeMirror-cursors {
  visibility: visible;
}

.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }

.cm-searching {
  background-color: #ffa;
  background-color: rgba(255, 255, 0, .4);
}

/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }

@media print {
  /* Hide the cursor when printing */
  .CodeMirror div.CodeMirror-cursors {
    visibility: hidden;
  }
}

/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }

/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }
editors/codemirror/lib/addons.min.css000064400000003356152177723720013720 0ustar00.CodeMirror-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-foldmarker{color:#00f;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror-search-match{background:gold;border-top:1px solid orange;border-bottom:1px solid orange;-moz-box-sizing:border-box;box-sizing:border-box;opacity:.5}.CodeMirror-simplescroll-horizontal div,.CodeMirror-simplescroll-vertical div{position:absolute;background:#ccc;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #bbb;border-radius:2px}.CodeMirror-simplescroll-horizontal,.CodeMirror-simplescroll-vertical{position:absolute;z-index:6;background:#eee}.CodeMirror-simplescroll-horizontal{bottom:0;left:0;height:8px}.CodeMirror-simplescroll-horizontal div{bottom:0;height:100%}.CodeMirror-simplescroll-vertical{right:0;top:0;width:8px}.CodeMirror-simplescroll-vertical div{right:0;width:100%}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:#bcd;border-radius:3px}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:6px}.CodeMirror-overlayscroll-horizontal div{bottom:0;height:100%}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:6px}.CodeMirror-overlayscroll-vertical div{right:0;width:100%}editors/codemirror/lib/codemirror.min.css000064400000013310152177723720014604 0ustar00.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}editors/codemirror/addon/display/autorefresh.js000064400000003010152177723720016010 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"

  CodeMirror.defineOption("autoRefresh", false, function(cm, val) {
    if (cm.state.autoRefresh) {
      stopListening(cm, cm.state.autoRefresh)
      cm.state.autoRefresh = null
    }
    if (val && cm.display.wrapper.offsetHeight == 0)
      startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
  })

  function startListening(cm, state) {
    function check() {
      if (cm.display.wrapper.offsetHeight) {
        stopListening(cm, state)
        if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
          cm.refresh()
      } else {
        state.timeout = setTimeout(check, state.delay)
      }
    }
    state.timeout = setTimeout(check, state.delay)
    state.hurry = function() {
      clearTimeout(state.timeout)
      state.timeout = setTimeout(check, 50)
    }
    CodeMirror.on(window, "mouseup", state.hurry)
    CodeMirror.on(window, "keyup", state.hurry)
  }

  function stopListening(_cm, state) {
    clearTimeout(state.timeout)
    CodeMirror.off(window, "mouseup", state.hurry)
    CodeMirror.off(window, "keyup", state.hurry)
  }
});
editors/codemirror/addon/display/fullscreen.css000064400000000164152177723720016006 0ustar00.CodeMirror-fullscreen {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  height: auto;
  z-index: 9;
}
editors/codemirror/addon/display/panel.js000064400000010403152177723720014564 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineExtension("addPanel", function(node, options) {
    options = options || {};

    if (!this.state.panels) initPanels(this);

    var info = this.state.panels;
    var wrapper = info.wrapper;
    var cmWrapper = this.getWrapperElement();
    var replace = options.replace instanceof Panel && !options.replace.cleared;

    if (options.after instanceof Panel && !options.after.cleared) {
      wrapper.insertBefore(node, options.before.node.nextSibling);
    } else if (options.before instanceof Panel && !options.before.cleared) {
      wrapper.insertBefore(node, options.before.node);
    } else if (replace) {
      wrapper.insertBefore(node, options.replace.node);
      info.panels++;
      options.replace.clear();
    } else if (options.position == "bottom") {
      wrapper.appendChild(node);
    } else if (options.position == "before-bottom") {
      wrapper.insertBefore(node, cmWrapper.nextSibling);
    } else if (options.position == "after-top") {
      wrapper.insertBefore(node, cmWrapper);
    } else {
      wrapper.insertBefore(node, wrapper.firstChild);
    }

    var height = (options && options.height) || node.offsetHeight;
    this._setSize(null, info.heightLeft -= height);
    if (!replace) {
      info.panels++;
    }
    if (options.stable && isAtTop(this, node))
      this.scrollTo(null, this.getScrollInfo().top + height)

    return new Panel(this, node, options, height);
  });

  function Panel(cm, node, options, height) {
    this.cm = cm;
    this.node = node;
    this.options = options;
    this.height = height;
    this.cleared = false;
  }

  Panel.prototype.clear = function() {
    if (this.cleared) return;
    this.cleared = true;
    var info = this.cm.state.panels;
    this.cm._setSize(null, info.heightLeft += this.height);
    if (this.options.stable && isAtTop(this.cm, this.node))
      this.cm.scrollTo(null, this.cm.getScrollInfo().top - this.height)
    info.wrapper.removeChild(this.node);
    if (--info.panels == 0) removePanels(this.cm);
  };

  Panel.prototype.changed = function(height) {
    var newHeight = height == null ? this.node.offsetHeight : height;
    var info = this.cm.state.panels;
    this.cm._setSize(null, info.heightLeft -= (newHeight - this.height));
    this.height = newHeight;
  };

  function initPanels(cm) {
    var wrap = cm.getWrapperElement();
    var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;
    var height = parseInt(style.height);
    var info = cm.state.panels = {
      setHeight: wrap.style.height,
      heightLeft: height,
      panels: 0,
      wrapper: document.createElement("div")
    };
    wrap.parentNode.insertBefore(info.wrapper, wrap);
    var hasFocus = cm.hasFocus();
    info.wrapper.appendChild(wrap);
    if (hasFocus) cm.focus();

    cm._setSize = cm.setSize;
    if (height != null) cm.setSize = function(width, newHeight) {
      if (newHeight == null) return this._setSize(width, newHeight);
      info.setHeight = newHeight;
      if (typeof newHeight != "number") {
        var px = /^(\d+\.?\d*)px$/.exec(newHeight);
        if (px) {
          newHeight = Number(px[1]);
        } else {
          info.wrapper.style.height = newHeight;
          newHeight = info.wrapper.offsetHeight;
          info.wrapper.style.height = "";
        }
      }
      cm._setSize(width, info.heightLeft += (newHeight - height));
      height = newHeight;
    };
  }

  function removePanels(cm) {
    var info = cm.state.panels;
    cm.state.panels = null;

    var wrap = cm.getWrapperElement();
    info.wrapper.parentNode.replaceChild(wrap, info.wrapper);
    wrap.style.height = info.setHeight;
    cm.setSize = cm._setSize;
    cm.setSize();
  }

  function isAtTop(cm, dom) {
    for (var sibling = dom.nextSibling; sibling; sibling = sibling.nextSibling)
      if (sibling == cm.getWrapperElement()) return true
    return false
  }
});
editors/codemirror/addon/display/fullscreen.js000064400000002727152177723720015641 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
    if (old == CodeMirror.Init) old = false;
    if (!old == !val) return;
    if (val) setFullscreen(cm);
    else setNormal(cm);
  });

  function setFullscreen(cm) {
    var wrap = cm.getWrapperElement();
    cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
                                  width: wrap.style.width, height: wrap.style.height};
    wrap.style.width = "";
    wrap.style.height = "auto";
    wrap.className += " CodeMirror-fullscreen";
    document.documentElement.style.overflow = "hidden";
    cm.refresh();
  }

  function setNormal(cm) {
    var wrap = cm.getWrapperElement();
    wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
    document.documentElement.style.overflow = "";
    var info = cm.state.fullScreenRestore;
    wrap.style.width = info.width; wrap.style.height = info.height;
    window.scrollTo(info.scrollLeft, info.scrollTop);
    cm.refresh();
  }
});
editors/codemirror/addon/display/rulers.js000064400000003574152177723720015014 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("rulers", false, function(cm, val) {
    if (cm.state.rulerDiv) {
      cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)
      cm.state.rulerDiv = null
      cm.off("refresh", drawRulers)
    }
    if (val && val.length) {
      cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement("div"), cm.display.lineSpace)
      cm.state.rulerDiv.className = "CodeMirror-rulers"
      drawRulers(cm)
      cm.on("refresh", drawRulers)
    }
  });

  function drawRulers(cm) {
    cm.state.rulerDiv.textContent = ""
    var val = cm.getOption("rulers");
    var cw = cm.defaultCharWidth();
    var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
    cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + "px";
    for (var i = 0; i < val.length; i++) {
      var elt = document.createElement("div");
      elt.className = "CodeMirror-ruler";
      var col, conf = val[i];
      if (typeof conf == "number") {
        col = conf;
      } else {
        col = conf.column;
        if (conf.className) elt.className += " " + conf.className;
        if (conf.color) elt.style.borderColor = conf.color;
        if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;
        if (conf.width) elt.style.borderLeftWidth = conf.width;
      }
      elt.style.left = (left + col * cw) + "px";
      cm.state.rulerDiv.appendChild(elt)
    }
  }
});
editors/codemirror/addon/display/autorefresh.min.js000064400000001534152177723720016603 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,d){function e(){b.display.wrapper.offsetHeight?(c(b,d),b.display.lastWrapHeight!=b.display.wrapper.clientHeight&&b.refresh()):d.timeout=setTimeout(e,d.delay)}d.timeout=setTimeout(e,d.delay),d.hurry=function(){clearTimeout(d.timeout),d.timeout=setTimeout(e,50)},a.on(window,"mouseup",d.hurry),a.on(window,"keyup",d.hurry)}function c(b,c){clearTimeout(c.timeout),a.off(window,"mouseup",c.hurry),a.off(window,"keyup",c.hurry)}a.defineOption("autoRefresh",!1,(function(a,d){a.state.autoRefresh&&(c(a,a.state.autoRefresh),a.state.autoRefresh=null),d&&0==a.display.wrapper.offsetHeight&&b(a,a.state.autoRefresh={delay:d.delay||250})}))}));editors/codemirror/addon/display/fullscreen.min.js000064400000001603152177723720016413 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.getWrapperElement();a.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:b.style.width,height:b.style.height},b.style.width="",b.style.height="auto",b.className+=" CodeMirror-fullscreen",document.documentElement.style.overflow="hidden",a.refresh()}function c(a){var b=a.getWrapperElement();b.className=b.className.replace(/\s*CodeMirror-fullscreen\b/,""),document.documentElement.style.overflow="";var c=a.state.fullScreenRestore;b.style.width=c.width,b.style.height=c.height,window.scrollTo(c.scrollLeft,c.scrollTop),a.refresh()}a.defineOption("fullScreen",!1,(function(d,e,f){f==a.Init&&(f=!1),!f!=!e&&(e?b(d):c(d))}))}));editors/codemirror/addon/display/placeholder.min.js000064400000002332152177723720016533 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a){a.state.placeholder&&(a.state.placeholder.parentNode.removeChild(a.state.placeholder),a.state.placeholder=null)}function c(a){b(a);var c=a.state.placeholder=document.createElement("pre");c.style.cssText="height: 0; overflow: visible",c.style.direction=a.getOption("direction"),c.className="CodeMirror-placeholder";var d=a.getOption("placeholder");"string"==typeof d&&(d=document.createTextNode(d)),c.appendChild(d),a.display.lineSpace.insertBefore(c,a.display.lineSpace.firstChild)}function d(a){f(a)&&c(a)}function e(a){var d=a.getWrapperElement(),e=f(a);d.className=d.className.replace(" CodeMirror-empty","")+(e?" CodeMirror-empty":""),e?c(a):b(a)}function f(a){return 1===a.lineCount()&&""===a.getLine(0)}a.defineOption("placeholder","",(function(c,f,g){var h=g&&g!=a.Init;if(f&&!h)c.on("blur",d),c.on("change",e),c.on("swapDoc",e),e(c);else if(!f&&h){c.off("blur",d),c.off("change",e),c.off("swapDoc",e),b(c);var i=c.getWrapperElement();i.className=i.className.replace(" CodeMirror-empty","")}f&&!c.hasFocus()&&d(c)}))}));editors/codemirror/addon/display/panel.min.js000064400000004606152177723720015356 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b,c,d){this.cm=a,this.node=b,this.options=c,this.height=d,this.cleared=!1}function c(a){var b=a.getWrapperElement(),c=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle,d=parseInt(c.height),e=a.state.panels={setHeight:b.style.height,heightLeft:d,panels:0,wrapper:document.createElement("div")};b.parentNode.insertBefore(e.wrapper,b);var f=a.hasFocus();e.wrapper.appendChild(b),f&&a.focus(),a._setSize=a.setSize,null!=d&&(a.setSize=function(b,c){if(null==c)return this._setSize(b,c);if(e.setHeight=c,"number"!=typeof c){var f=/^(\d+\.?\d*)px$/.exec(c);f?c=Number(f[1]):(e.wrapper.style.height=c,c=e.wrapper.offsetHeight,e.wrapper.style.height="")}a._setSize(b,e.heightLeft+=c-d),d=c})}function d(a){var b=a.state.panels;a.state.panels=null;var c=a.getWrapperElement();b.wrapper.parentNode.replaceChild(c,b.wrapper),c.style.height=b.setHeight,a.setSize=a._setSize,a.setSize()}function e(a,b){for(var c=b.nextSibling;c;c=c.nextSibling)if(c==a.getWrapperElement())return!0;return!1}a.defineExtension("addPanel",(function(a,d){d=d||{},this.state.panels||c(this);var f=this.state.panels,g=f.wrapper,h=this.getWrapperElement(),i=d.replace instanceof b&&!d.replace.cleared;d.after instanceof b&&!d.after.cleared?g.insertBefore(a,d.before.node.nextSibling):d.before instanceof b&&!d.before.cleared?g.insertBefore(a,d.before.node):i?(g.insertBefore(a,d.replace.node),f.panels++,d.replace.clear()):"bottom"==d.position?g.appendChild(a):"before-bottom"==d.position?g.insertBefore(a,h.nextSibling):"after-top"==d.position?g.insertBefore(a,h):g.insertBefore(a,g.firstChild);var j=d&&d.height||a.offsetHeight;return this._setSize(null,f.heightLeft-=j),i||f.panels++,d.stable&&e(this,a)&&this.scrollTo(null,this.getScrollInfo().top+j),new b(this,a,d,j)})),b.prototype.clear=function(){if(!this.cleared){this.cleared=!0;var a=this.cm.state.panels;this.cm._setSize(null,a.heightLeft+=this.height),this.options.stable&&e(this.cm,this.node)&&this.cm.scrollTo(null,this.cm.getScrollInfo().top-this.height),a.wrapper.removeChild(this.node),0==--a.panels&&d(this.cm)}},b.prototype.changed=function(a){var b=null==a?this.node.offsetHeight:a,c=this.cm.state.panels;this.cm._setSize(null,c.heightLeft-=b-this.height),this.height=b}}));editors/codemirror/addon/display/placeholder.js000064400000004221152177723720015750 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
    var prev = old && old != CodeMirror.Init;
    if (val && !prev) {
      cm.on("blur", onBlur);
      cm.on("change", onChange);
      cm.on("swapDoc", onChange);
      onChange(cm);
    } else if (!val && prev) {
      cm.off("blur", onBlur);
      cm.off("change", onChange);
      cm.off("swapDoc", onChange);
      clearPlaceholder(cm);
      var wrapper = cm.getWrapperElement();
      wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
    }

    if (val && !cm.hasFocus()) onBlur(cm);
  });

  function clearPlaceholder(cm) {
    if (cm.state.placeholder) {
      cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
      cm.state.placeholder = null;
    }
  }
  function setPlaceholder(cm) {
    clearPlaceholder(cm);
    var elt = cm.state.placeholder = document.createElement("pre");
    elt.style.cssText = "height: 0; overflow: visible";
    elt.style.direction = cm.getOption("direction");
    elt.className = "CodeMirror-placeholder";
    var placeHolder = cm.getOption("placeholder")
    if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder)
    elt.appendChild(placeHolder)
    cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
  }

  function onBlur(cm) {
    if (isEmpty(cm)) setPlaceholder(cm);
  }
  function onChange(cm) {
    var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
    wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");

    if (empty) setPlaceholder(cm);
    else clearPlaceholder(cm);
  }

  function isEmpty(cm) {
    return (cm.lineCount() === 1) && (cm.getLine(0) === "");
  }
});
editors/codemirror/addon/display/fullscreen.min.css000064400000000132152177723720016563 0ustar00.CodeMirror-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;height:auto;z-index:9}editors/codemirror/addon/display/rulers.min.js000064400000002236152177723720015570 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b){b.state.rulerDiv.textContent="";var c=b.getOption("rulers"),d=b.defaultCharWidth(),e=b.charCoords(a.Pos(b.firstLine(),0),"div").left;b.state.rulerDiv.style.minHeight=b.display.scroller.offsetHeight+30+"px";for(var f=0;f<c.length;f++){var g=document.createElement("div");g.className="CodeMirror-ruler";var h,i=c[f];"number"==typeof i?h=i:(h=i.column,i.className&&(g.className+=" "+i.className),i.color&&(g.style.borderColor=i.color),i.lineStyle&&(g.style.borderLeftStyle=i.lineStyle),i.width&&(g.style.borderLeftWidth=i.width)),g.style.left=e+h*d+"px",b.state.rulerDiv.appendChild(g)}}a.defineOption("rulers",!1,(function(a,c){a.state.rulerDiv&&(a.state.rulerDiv.parentElement.removeChild(a.state.rulerDiv),a.state.rulerDiv=null,a.off("refresh",b)),c&&c.length&&(a.state.rulerDiv=a.display.lineSpace.parentElement.insertBefore(document.createElement("div"),a.display.lineSpace),a.state.rulerDiv.className="CodeMirror-rulers",b(a),a.on("refresh",b))}))}));editors/codemirror/addon/hint/css-hint.min.js000064400000002232152177723720015275 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../mode/css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/css/css"],a):a(CodeMirror)})((function(a){"use strict";var b={link:1,visited:1,active:1,hover:1,focus:1,"first-letter":1,"first-line":1,"first-child":1,before:1,after:1,lang:1};a.registerHelper("hint","css",(function(c){function d(a){for(var b in a)j&&0!=b.lastIndexOf(j,0)||l.push(b)}var e=c.getCursor(),f=c.getTokenAt(e),g=a.innerMode(c.getMode(),f.state);if("css"==g.mode.name){if("keyword"==f.type&&0=="!important".indexOf(f.string))return{list:["!important"],from:a.Pos(e.line,f.start),to:a.Pos(e.line,f.end)};var h=f.start,i=e.ch,j=f.string.slice(0,i-h);/[^\w$_-]/.test(j)&&(j="",h=i=e.ch);var k=a.resolveMode("text/css"),l=[],m=g.state.state;return"pseudo"==m||"variable-3"==f.type?d(b):"block"==m||"maybeprop"==m?d(k.propertyKeywords):"prop"==m||"parens"==m||"at"==m||"params"==m?(d(k.valueKeywords),d(k.colorKeywords)):"media"!=m&&"media_parens"!=m||(d(k.mediaTypes),d(k.mediaFeatures)),l.length?{list:l,from:a.Pos(e.line,h),to:a.Pos(e.line,i)}:void 0}}))}));editors/codemirror/addon/hint/show-hint.min.js000064400000021106152177723720015466 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){this.cm=a,this.options=b,this.widget=null,this.debounce=0,this.tick=0,this.startPos=this.cm.getCursor("start"),this.startLen=this.cm.getLine(this.startPos.line).length-this.cm.getSelection().length;var c=this;a.on("cursorActivity",this.activityFunc=function(){c.cursorActivity()})}function c(a,b,c){var d=a.options.hintOptions,e={};for(var f in o)e[f]=o[f];if(d)for(var f in d)void 0!==d[f]&&(e[f]=d[f]);if(c)for(var f in c)void 0!==c[f]&&(e[f]=c[f]);return e.hint.resolve&&(e.hint=e.hint.resolve(a,b)),e}function d(a){return"string"==typeof a?a:a.text}function e(a,b){function c(a,c){var e;e="string"!=typeof c?function(a){return c(a,b)}:d.hasOwnProperty(c)?d[c]:c,f[a]=e}var d={Up:function(){b.moveFocus(-1)},Down:function(){b.moveFocus(1)},PageUp:function(){b.moveFocus(-b.menuSize()+1,!0)},PageDown:function(){b.moveFocus(b.menuSize()-1,!0)},Home:function(){b.setFocus(0)},End:function(){b.setFocus(b.length-1)},Enter:b.pick,Tab:b.pick,Esc:b.close},e=a.options.customKeys,f=e?{}:d;if(e)for(var g in e)e.hasOwnProperty(g)&&c(g,e[g]);var h=a.options.extraKeys;if(h)for(var g in h)h.hasOwnProperty(g)&&c(g,h[g]);return f}function f(a,b){for(;b&&b!=a;){if("LI"===b.nodeName.toUpperCase()&&b.parentNode==a)return b;b=b.parentNode}}function g(b,c){this.completion=b,this.data=c,this.picked=!1;var g=this,h=b.cm,i=this.hints=document.createElement("ul"),j=b.cm.options.theme;i.className="CodeMirror-hints "+j,this.selectedHint=c.selectedHint||0;for(var m=c.list,n=0;n<m.length;++n){var o=i.appendChild(document.createElement("li")),p=m[n],q=k+(n!=this.selectedHint?"":" "+l);null!=p.className&&(q=p.className+" "+q),o.className=q,p.render?p.render(o,c,p):o.appendChild(document.createTextNode(p.displayText||d(p))),o.hintId=n}var r=h.cursorCoords(b.options.alignWithWord?c.from:null),s=r.left,t=r.bottom,u=!0;i.style.left=s+"px",i.style.top=t+"px";var v=window.innerWidth||Math.max(document.body.offsetWidth,document.documentElement.offsetWidth),w=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(b.options.container||document.body).appendChild(i);var x=i.getBoundingClientRect(),y=x.bottom-w,z=i.scrollHeight>i.clientHeight+1,A=h.getScrollInfo();if(y>0){var B=x.bottom-x.top,C=r.top-(r.bottom-x.top);if(C-B>0)i.style.top=(t=r.top-B)+"px",u=!1;else if(B>w){i.style.height=w-5+"px",i.style.top=(t=r.bottom-x.top)+"px";var D=h.getCursor();c.from.ch!=D.ch&&(r=h.cursorCoords(D),i.style.left=(s=r.left)+"px",x=i.getBoundingClientRect())}}var E=x.right-v;if(E>0&&(x.right-x.left>v&&(i.style.width=v-5+"px",E-=x.right-x.left-v),i.style.left=(s=r.left-E)+"px"),z)for(var F=i.firstChild;F;F=F.nextSibling)F.style.paddingRight=h.display.nativeBarWidth+"px";if(h.addKeyMap(this.keyMap=e(b,{moveFocus:function(a,b){g.changeActive(g.selectedHint+a,b)},setFocus:function(a){g.changeActive(a)},menuSize:function(){return g.screenAmount()},length:m.length,close:function(){b.close()},pick:function(){g.pick()},data:c})),b.options.closeOnUnfocus){var G;h.on("blur",this.onBlur=function(){G=setTimeout((function(){b.close()}),100)}),h.on("focus",this.onFocus=function(){clearTimeout(G)})}return h.on("scroll",this.onScroll=function(){var a=h.getScrollInfo(),c=h.getWrapperElement().getBoundingClientRect(),d=t+A.top-a.top,e=d-(window.pageYOffset||(document.documentElement||document.body).scrollTop);return u||(e+=i.offsetHeight),e<=c.top||e>=c.bottom?b.close():(i.style.top=d+"px",void(i.style.left=s+A.left-a.left+"px"))}),a.on(i,"dblclick",(function(a){var b=f(i,a.target||a.srcElement);b&&null!=b.hintId&&(g.changeActive(b.hintId),g.pick())})),a.on(i,"click",(function(a){var c=f(i,a.target||a.srcElement);c&&null!=c.hintId&&(g.changeActive(c.hintId),b.options.completeOnSingleClick&&g.pick())})),a.on(i,"mousedown",(function(){setTimeout((function(){h.focus()}),20)})),a.signal(c,"select",m[this.selectedHint],i.childNodes[this.selectedHint]),!0}function h(a,b){if(!a.somethingSelected())return b;for(var c=[],d=0;d<b.length;d++)b[d].supportsSelection&&c.push(b[d]);return c}function i(a,b,c,d){if(a.async)a(b,d,c);else{var e=a(b,c);e&&e.then?e.then(d):d(e)}}function j(b,c){var d,e=b.getHelpers(c,"hint");if(e.length){var f=function(a,b,c){function d(e){return e==f.length?b(null):void i(f[e],a,c,(function(a){a&&a.list.length>0?b(a):d(e+1)}))}var f=h(a,e);d(0)};return f.async=!0,f.supportsSelection=!0,f}return(d=b.getHelper(b.getCursor(),"hintWords"))?function(b){return a.hint.fromList(b,{words:d})}:a.hint.anyword?function(b,c){return a.hint.anyword(b,c)}:function(){}}var k="CodeMirror-hint",l="CodeMirror-hint-active";a.showHint=function(a,b,c){if(!b)return a.showHint(c);c&&c.async&&(b.async=!0);var d={hint:b};if(c)for(var e in c)d[e]=c[e];return a.showHint(d)},a.defineExtension("showHint",(function(d){d=c(this,this.getCursor("start"),d);var e=this.listSelections();if(!(e.length>1)){if(this.somethingSelected()){if(!d.hint.supportsSelection)return;for(var f=0;f<e.length;f++)if(e[f].head.line!=e[f].anchor.line)return}this.state.completionActive&&this.state.completionActive.close();var g=this.state.completionActive=new b(this,d);g.options.hint&&(a.signal(this,"startCompletion",this),g.update(!0))}}));var m=window.requestAnimationFrame||function(a){return setTimeout(a,1e3/60)},n=window.cancelAnimationFrame||clearTimeout;b.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.tick=null,this.cm.off("cursorActivity",this.activityFunc),this.widget&&this.data&&a.signal(this.data,"close"),this.widget&&this.widget.close(),a.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(b,c){var e=b.list[c];e.hint?e.hint(this.cm,b,e):this.cm.replaceRange(d(e),e.from||b.from,e.to||b.to,"complete"),a.signal(b,"pick",e),this.close()},cursorActivity:function(){this.debounce&&(n(this.debounce),this.debounce=0);var a=this.cm.getCursor(),b=this.cm.getLine(a.line);if(a.line!=this.startPos.line||b.length-a.ch!=this.startLen-this.startPos.ch||a.ch<this.startPos.ch||this.cm.somethingSelected()||!a.ch||this.options.closeCharacters.test(b.charAt(a.ch-1)))this.close();else{var c=this;this.debounce=m((function(){c.update()})),this.widget&&this.widget.disable()}},update:function(a){if(null!=this.tick){var b=this,c=++this.tick;i(this.options.hint,this.cm,this.options,(function(d){b.tick==c&&b.finishUpdate(d,a)}))}},finishUpdate:function(b,c){this.data&&a.signal(this.data,"update");var d=this.widget&&this.widget.picked||c&&this.options.completeSingle;this.widget&&this.widget.close(),this.data=b,b&&b.list.length&&(d&&1==b.list.length?this.pick(b,0):(this.widget=new g(this,b),a.signal(b,"shown")))}},g.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var a=this.completion.cm;this.completion.options.closeOnUnfocus&&(a.off("blur",this.onBlur),a.off("focus",this.onFocus)),a.off("scroll",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var a=this;this.keyMap={Enter:function(){a.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(b,c){if(b>=this.data.list.length?b=c?this.data.list.length-1:0:b<0&&(b=c?0:this.data.list.length-1),this.selectedHint!=b){var d=this.hints.childNodes[this.selectedHint];d&&(d.className=d.className.replace(" "+l,"")),d=this.hints.childNodes[this.selectedHint=b],d.className+=" "+l,d.offsetTop<this.hints.scrollTop?this.hints.scrollTop=d.offsetTop-3:d.offsetTop+d.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=d.offsetTop+d.offsetHeight-this.hints.clientHeight+3),a.signal(this.data,"select",this.data.list[this.selectedHint],d)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},a.registerHelper("hint","auto",{resolve:j}),a.registerHelper("hint","fromList",(function(b,c){var d,e=b.getCursor(),f=b.getTokenAt(e),g=a.Pos(e.line,f.start),h=e;f.start<e.ch&&/\w/.test(f.string.charAt(e.ch-f.start-1))?d=f.string.substr(0,e.ch-f.start):(d="",g=e);for(var i=[],j=0;j<c.words.length;j++){var k=c.words[j];k.slice(0,d.length)==d&&i.push(k)}if(i.length)return{list:i,from:g,to:h}})),a.commands.autocomplete=a.showHint;var o={hint:a.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\s()\[\]{};:>,]/,closeOnUnfocus:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null};a.defineOption("hintOptions",null)}));editors/codemirror/addon/hint/javascript-hint.min.js000064400000006127152177723720016662 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b){for(var c=0,d=a.length;c<d;++c)b(a[c])}function c(a,b){if(!Array.prototype.indexOf){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1}return a.indexOf(b)!=-1}function d(b,c,d,e){var f=b.getCursor(),g=d(b,f);if(!/\b(?:string|comment)\b/.test(g.type)){var h=a.innerMode(b.getMode(),g.state);if("json"!==h.mode.helperType){g.state=h.state,/^[\w$_]*$/.test(g.string)?g.end>f.ch&&(g.end=f.ch,g.string=g.string.slice(0,f.ch-g.start)):g={start:f.ch,end:f.ch,string:"",state:g.state,type:"."==g.string?"property":null};for(var k=g;"property"==k.type;){if(k=d(b,j(f.line,k.start)),"."!=k.string)return;if(k=d(b,j(f.line,k.start)),!l)var l=[];l.push(k)}return{list:i(g,l,c,e),from:j(f.line,g.start),to:j(f.line,g.end)}}}}function e(a,b){return d(a,n,(function(a,b){return a.getTokenAt(b)}),b)}function f(a,b){var c=a.getTokenAt(b);return b.ch==c.start+1&&"."==c.string.charAt(0)?(c.end=c.start,c.string=".",c.type="property"):/^\.[\w$_]*$/.test(c.string)&&(c.type="property",c.start++,c.string=c.string.replace(/\./,"")),c}function g(a,b){return d(a,o,f,b)}function h(a,b){if(Object.getOwnPropertyNames&&Object.getPrototypeOf)for(var c=a;c;c=Object.getPrototypeOf(c))Object.getOwnPropertyNames(c).forEach(b);else for(var d in a)b(d)}function i(a,d,e,f){function g(a){0!=a.lastIndexOf(n,0)||c(j,a)||j.push(a)}function i(a){"string"==typeof a?b(k,g):a instanceof Array?b(l,g):a instanceof Function&&b(m,g),h(a,g)}var j=[],n=a.string,o=f&&f.globalScope||window;if(d&&d.length){var p,q=d.pop();for(q.type&&0===q.type.indexOf("variable")?(f&&f.additionalContext&&(p=f.additionalContext[q.string]),f&&f.useGlobalScope===!1||(p=p||o[q.string])):"string"==q.type?p="":"atom"==q.type?p=1:"function"==q.type&&(null==o.jQuery||"$"!=q.string&&"jQuery"!=q.string||"function"!=typeof o.jQuery?null!=o._&&"_"==q.string&&"function"==typeof o._&&(p=o._()):p=o.jQuery());null!=p&&d.length;)p=p[d.pop().string];null!=p&&i(p)}else{for(var r=a.state.localVars;r;r=r.next)g(r.name);for(var r=a.state.globalVars;r;r=r.next)g(r.name);f&&f.useGlobalScope===!1||i(o),b(e,g)}return j}var j=a.Pos;a.registerHelper("hint","javascript",e),a.registerHelper("hint","coffeescript",g);var k="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),l="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),m="prototype apply call bind".split(" "),n="break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield".split(" "),o="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ")}));editors/codemirror/addon/hint/javascript-hint.js000064400000014656152177723720016106 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  var Pos = CodeMirror.Pos;

  function forEach(arr, f) {
    for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
  }

  function arrayContains(arr, item) {
    if (!Array.prototype.indexOf) {
      var i = arr.length;
      while (i--) {
        if (arr[i] === item) {
          return true;
        }
      }
      return false;
    }
    return arr.indexOf(item) != -1;
  }

  function scriptHint(editor, keywords, getToken, options) {
    // Find the token at the cursor
    var cur = editor.getCursor(), token = getToken(editor, cur);
    if (/\b(?:string|comment)\b/.test(token.type)) return;
    var innerMode = CodeMirror.innerMode(editor.getMode(), token.state);
    if (innerMode.mode.helperType === "json") return;
    token.state = innerMode.state;

    // If it's not a 'word-style' token, ignore the token.
    if (!/^[\w$_]*$/.test(token.string)) {
      token = {start: cur.ch, end: cur.ch, string: "", state: token.state,
               type: token.string == "." ? "property" : null};
    } else if (token.end > cur.ch) {
      token.end = cur.ch;
      token.string = token.string.slice(0, cur.ch - token.start);
    }

    var tprop = token;
    // If it is a property, find out what it is a property of.
    while (tprop.type == "property") {
      tprop = getToken(editor, Pos(cur.line, tprop.start));
      if (tprop.string != ".") return;
      tprop = getToken(editor, Pos(cur.line, tprop.start));
      if (!context) var context = [];
      context.push(tprop);
    }
    return {list: getCompletions(token, context, keywords, options),
            from: Pos(cur.line, token.start),
            to: Pos(cur.line, token.end)};
  }

  function javascriptHint(editor, options) {
    return scriptHint(editor, javascriptKeywords,
                      function (e, cur) {return e.getTokenAt(cur);},
                      options);
  };
  CodeMirror.registerHelper("hint", "javascript", javascriptHint);

  function getCoffeeScriptToken(editor, cur) {
  // This getToken, it is for coffeescript, imitates the behavior of
  // getTokenAt method in javascript.js, that is, returning "property"
  // type and treat "." as indepenent token.
    var token = editor.getTokenAt(cur);
    if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {
      token.end = token.start;
      token.string = '.';
      token.type = "property";
    }
    else if (/^\.[\w$_]*$/.test(token.string)) {
      token.type = "property";
      token.start++;
      token.string = token.string.replace(/\./, '');
    }
    return token;
  }

  function coffeescriptHint(editor, options) {
    return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);
  }
  CodeMirror.registerHelper("hint", "coffeescript", coffeescriptHint);

  var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " +
                     "toUpperCase toLowerCase split concat match replace search").split(" ");
  var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " +
                    "lastIndexOf every some filter forEach map reduce reduceRight ").split(" ");
  var funcProps = "prototype apply call bind".split(" ");
  var javascriptKeywords = ("break case catch class const continue debugger default delete do else export extends false finally for function " +
                  "if in import instanceof new null return super switch this throw true try typeof var void while with yield").split(" ");
  var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " +
                  "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" ");

  function forAllProps(obj, callback) {
    if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {
      for (var name in obj) callback(name)
    } else {
      for (var o = obj; o; o = Object.getPrototypeOf(o))
        Object.getOwnPropertyNames(o).forEach(callback)
    }
  }

  function getCompletions(token, context, keywords, options) {
    var found = [], start = token.string, global = options && options.globalScope || window;
    function maybeAdd(str) {
      if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str);
    }
    function gatherCompletions(obj) {
      if (typeof obj == "string") forEach(stringProps, maybeAdd);
      else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
      else if (obj instanceof Function) forEach(funcProps, maybeAdd);
      forAllProps(obj, maybeAdd)
    }

    if (context && context.length) {
      // If this is a property, see if it belongs to some object we can
      // find in the current environment.
      var obj = context.pop(), base;
      if (obj.type && obj.type.indexOf("variable") === 0) {
        if (options && options.additionalContext)
          base = options.additionalContext[obj.string];
        if (!options || options.useGlobalScope !== false)
          base = base || global[obj.string];
      } else if (obj.type == "string") {
        base = "";
      } else if (obj.type == "atom") {
        base = 1;
      } else if (obj.type == "function") {
        if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&
            (typeof global.jQuery == 'function'))
          base = global.jQuery();
        else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function'))
          base = global._();
      }
      while (base != null && context.length)
        base = base[context.pop().string];
      if (base != null) gatherCompletions(base);
    } else {
      // If not, just look in the global object and any local scope
      // (reading into JS mode internals to get at the local and global variables)
      for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
      for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);
      if (!options || options.useGlobalScope !== false)
        gatherCompletions(global);
      forEach(keywords, maybeAdd);
    }
    return found;
  }
});
editors/codemirror/addon/hint/sql-hint.min.js000064400000007270152177723720015313 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../../mode/sql/sql")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/sql/sql"],a):a(CodeMirror)})((function(a){"use strict";function b(a){return"[object Array]"==Object.prototype.toString.call(a)}function c(b){var c=b.doc.modeOption;return"sql"===c&&(c="text/x-sql"),a.resolveMode(c).keywords}function d(b){var c=b.doc.modeOption;return"sql"===c&&(c="text/x-sql"),a.resolveMode(c).identifierQuote||"`"}function e(a){return"string"==typeof a?a:a.text}function f(a,c){return b(c)&&(c={columns:c}),c.text||(c.text=a),c}function g(a){var c={};if(b(a))for(var d=a.length-1;d>=0;d--){var g=a[d];c[e(g).toUpperCase()]=f(e(g),g)}else if(a)for(var h in a)c[h.toUpperCase()]=f(h,a[h]);return c}function h(a){return q[a.toUpperCase()]}function i(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function j(a,b){var c=a.length,d=e(b).substr(0,c);return a.toUpperCase()===d.toUpperCase()}function k(a,c,d,e){if(b(d))for(var f=0;f<d.length;f++)j(c,d[f])&&a.push(e(d[f]));else for(var g in d)if(d.hasOwnProperty(g)){var h=d[g];h=h&&h!==!0?h.displayText?{text:h.text,displayText:h.displayText}:h.text:g,j(c,h)&&a.push(e(h))}}function l(a){"."==a.charAt(0)&&(a=a.substr(1));for(var b=a.split(t+t),c=0;c<b.length;c++)b[c]=b[c].replace(new RegExp(t,"g"),"");return b.join(t)}function m(a){for(var b=e(a).split("."),c=0;c<b.length;c++)b[c]=t+b[c].replace(new RegExp(t,"g"),t+t)+t;var d=b.join(".");return"string"==typeof a?d:(a=i(a),a.text=d,a)}function n(a,b,c,d){for(var e=!1,f=[],g=b.start,j=!0;j;)j="."==b.string.charAt(0),e=e||b.string.charAt(0)==t,g=b.start,f.unshift(l(b.string)),b=d.getTokenAt(v(a.line,b.start)),"."==b.string&&(j=!0,b=d.getTokenAt(v(a.line,b.start)));var n=f.join(".");k(c,n,q,(function(a){return e?m(a):a})),k(c,n,r,(function(a){return e?m(a):a})),n=f.pop();var o=f.join("."),s=!1,u=o;if(!h(o)){var w=o;o=p(o,d),o!==w&&(s=!0)}var x=h(o);return x&&x.columns&&(x=x.columns),x&&k(c,n,x,(function(a){var b=o;return 1==s&&(b=u),"string"==typeof a?a=b+"."+a:(a=i(a),a.text=b+"."+a.text),e?m(a):a})),g}function o(a,b){for(var c=a.split(/\s+/),d=0;d<c.length;d++)c[d]&&b(c[d].replace(/[,;]/g,""))}function p(a,b){for(var c=b.doc,d=c.getValue(),e=a.toUpperCase(),f="",g="",i=[],j={start:v(0,0),end:v(b.lastLine(),b.getLineHandle(b.lastLine()).length)},k=d.indexOf(u.QUERY_DIV);k!=-1;)i.push(c.posFromIndex(k)),k=d.indexOf(u.QUERY_DIV,k+1);i.unshift(v(0,0)),i.push(v(b.lastLine(),b.getLineHandle(b.lastLine()).text.length));for(var l=null,m=b.getCursor(),n=0;n<i.length;n++){if((null==l||w(m,l)>0)&&w(m,i[n])<=0){j={start:l,end:i[n]};break}l=i[n]}if(j.start)for(var p=c.getRange(j.start,j.end,!1),n=0;n<p.length;n++){var q=p[n];if(o(q,(function(a){var b=a.toUpperCase();b===e&&h(f)&&(g=f),b!==u.ALIAS_KEYWORD&&(f=a)})),g)break}return g}var q,r,s,t,u={QUERY_DIV:";",ALIAS_KEYWORD:"AS"},v=a.Pos,w=a.cmpPos;a.registerHelper("hint","sql",(function(a,b){q=g(b&&b.tables);var e=b&&b.defaultTable,f=b&&b.disableKeywords;r=e&&h(e),s=c(a),t=d(a),e&&!r&&(r=p(e,a)),r=r||[],r.columns&&(r=r.columns);var i,j,l,m=a.getCursor(),o=[],u=a.getTokenAt(m);return u.end>m.ch&&(u.end=m.ch,u.string=u.string.slice(0,m.ch-u.start)),u.string.match(/^[.`"\w@]\w*$/)?(l=u.string,i=u.start,j=u.end):(i=j=m.ch,l=""),"."==l.charAt(0)||l.charAt(0)==t?i=n(m,u,o,a):(k(o,l,r,(function(a){return{text:a,className:"CodeMirror-hint-table CodeMirror-hint-default-table"}})),k(o,l,q,(function(a){return"object"==typeof a?a.className="CodeMirror-hint-table":a={text:a,className:"CodeMirror-hint-table"},a})),f||k(o,l,s,(function(a){return{text:a.toUpperCase(),className:"CodeMirror-hint-keyword"}}))),{list:o,from:v(m.line,i),to:v(m.line,j)}}))}));editors/codemirror/addon/hint/html-hint.js000064400000026116152177723720014676 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./xml-hint"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./xml-hint"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" ");
  var targets = ["_blank", "_self", "_top", "_parent"];
  var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
  var methods = ["get", "post", "put", "delete"];
  var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
  var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech",
               "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait",
               "orientation:landscape", "device-height: [X]", "device-width: [X]"];
  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags

  var data = {
    a: {
      attrs: {
        href: null, ping: null, type: null,
        media: media,
        target: targets,
        hreflang: langs
      }
    },
    abbr: s,
    acronym: s,
    address: s,
    applet: s,
    area: {
      attrs: {
        alt: null, coords: null, href: null, target: null, ping: null,
        media: media, hreflang: langs, type: null,
        shape: ["default", "rect", "circle", "poly"]
      }
    },
    article: s,
    aside: s,
    audio: {
      attrs: {
        src: null, mediagroup: null,
        crossorigin: ["anonymous", "use-credentials"],
        preload: ["none", "metadata", "auto"],
        autoplay: ["", "autoplay"],
        loop: ["", "loop"],
        controls: ["", "controls"]
      }
    },
    b: s,
    base: { attrs: { href: null, target: targets } },
    basefont: s,
    bdi: s,
    bdo: s,
    big: s,
    blockquote: { attrs: { cite: null } },
    body: s,
    br: s,
    button: {
      attrs: {
        form: null, formaction: null, name: null, value: null,
        autofocus: ["", "autofocus"],
        disabled: ["", "autofocus"],
        formenctype: encs,
        formmethod: methods,
        formnovalidate: ["", "novalidate"],
        formtarget: targets,
        type: ["submit", "reset", "button"]
      }
    },
    canvas: { attrs: { width: null, height: null } },
    caption: s,
    center: s,
    cite: s,
    code: s,
    col: { attrs: { span: null } },
    colgroup: { attrs: { span: null } },
    command: {
      attrs: {
        type: ["command", "checkbox", "radio"],
        label: null, icon: null, radiogroup: null, command: null, title: null,
        disabled: ["", "disabled"],
        checked: ["", "checked"]
      }
    },
    data: { attrs: { value: null } },
    datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } },
    datalist: { attrs: { data: null } },
    dd: s,
    del: { attrs: { cite: null, datetime: null } },
    details: { attrs: { open: ["", "open"] } },
    dfn: s,
    dir: s,
    div: s,
    dl: s,
    dt: s,
    em: s,
    embed: { attrs: { src: null, type: null, width: null, height: null } },
    eventsource: { attrs: { src: null } },
    fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } },
    figcaption: s,
    figure: s,
    font: s,
    footer: s,
    form: {
      attrs: {
        action: null, name: null,
        "accept-charset": charsets,
        autocomplete: ["on", "off"],
        enctype: encs,
        method: methods,
        novalidate: ["", "novalidate"],
        target: targets
      }
    },
    frame: s,
    frameset: s,
    h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,
    head: {
      attrs: {},
      children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
    },
    header: s,
    hgroup: s,
    hr: s,
    html: {
      attrs: { manifest: null },
      children: ["head", "body"]
    },
    i: s,
    iframe: {
      attrs: {
        src: null, srcdoc: null, name: null, width: null, height: null,
        sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
        seamless: ["", "seamless"]
      }
    },
    img: {
      attrs: {
        alt: null, src: null, ismap: null, usemap: null, width: null, height: null,
        crossorigin: ["anonymous", "use-credentials"]
      }
    },
    input: {
      attrs: {
        alt: null, dirname: null, form: null, formaction: null,
        height: null, list: null, max: null, maxlength: null, min: null,
        name: null, pattern: null, placeholder: null, size: null, src: null,
        step: null, value: null, width: null,
        accept: ["audio/*", "video/*", "image/*"],
        autocomplete: ["on", "off"],
        autofocus: ["", "autofocus"],
        checked: ["", "checked"],
        disabled: ["", "disabled"],
        formenctype: encs,
        formmethod: methods,
        formnovalidate: ["", "novalidate"],
        formtarget: targets,
        multiple: ["", "multiple"],
        readonly: ["", "readonly"],
        required: ["", "required"],
        type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month",
               "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
               "file", "submit", "image", "reset", "button"]
      }
    },
    ins: { attrs: { cite: null, datetime: null } },
    kbd: s,
    keygen: {
      attrs: {
        challenge: null, form: null, name: null,
        autofocus: ["", "autofocus"],
        disabled: ["", "disabled"],
        keytype: ["RSA"]
      }
    },
    label: { attrs: { "for": null, form: null } },
    legend: s,
    li: { attrs: { value: null } },
    link: {
      attrs: {
        href: null, type: null,
        hreflang: langs,
        media: media,
        sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
      }
    },
    map: { attrs: { name: null } },
    mark: s,
    menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
    meta: {
      attrs: {
        content: null,
        charset: charsets,
        name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
        "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
      }
    },
    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
    nav: s,
    noframes: s,
    noscript: s,
    object: {
      attrs: {
        data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,
        typemustmatch: ["", "typemustmatch"]
      }
    },
    ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } },
    optgroup: { attrs: { disabled: ["", "disabled"], label: null } },
    option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } },
    output: { attrs: { "for": null, form: null, name: null } },
    p: s,
    param: { attrs: { name: null, value: null } },
    pre: s,
    progress: { attrs: { value: null, max: null } },
    q: { attrs: { cite: null } },
    rp: s,
    rt: s,
    ruby: s,
    s: s,
    samp: s,
    script: {
      attrs: {
        type: ["text/javascript"],
        src: null,
        async: ["", "async"],
        defer: ["", "defer"],
        charset: charsets
      }
    },
    section: s,
    select: {
      attrs: {
        form: null, name: null, size: null,
        autofocus: ["", "autofocus"],
        disabled: ["", "disabled"],
        multiple: ["", "multiple"]
      }
    },
    small: s,
    source: { attrs: { src: null, type: null, media: null } },
    span: s,
    strike: s,
    strong: s,
    style: {
      attrs: {
        type: ["text/css"],
        media: media,
        scoped: null
      }
    },
    sub: s,
    summary: s,
    sup: s,
    table: s,
    tbody: s,
    td: { attrs: { colspan: null, rowspan: null, headers: null } },
    textarea: {
      attrs: {
        dirname: null, form: null, maxlength: null, name: null, placeholder: null,
        rows: null, cols: null,
        autofocus: ["", "autofocus"],
        disabled: ["", "disabled"],
        readonly: ["", "readonly"],
        required: ["", "required"],
        wrap: ["soft", "hard"]
      }
    },
    tfoot: s,
    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
    thead: s,
    time: { attrs: { datetime: null } },
    title: s,
    tr: s,
    track: {
      attrs: {
        src: null, label: null, "default": null,
        kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
        srclang: langs
      }
    },
    tt: s,
    u: s,
    ul: s,
    "var": s,
    video: {
      attrs: {
        src: null, poster: null, width: null, height: null,
        crossorigin: ["anonymous", "use-credentials"],
        preload: ["auto", "metadata", "none"],
        autoplay: ["", "autoplay"],
        mediagroup: ["movie"],
        muted: ["", "muted"],
        controls: ["", "controls"]
      }
    },
    wbr: s
  };

  var globalAttrs = {
    accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
    "class": null,
    contenteditable: ["true", "false"],
    contextmenu: null,
    dir: ["ltr", "rtl", "auto"],
    draggable: ["true", "false", "auto"],
    dropzone: ["copy", "move", "link", "string:", "file:"],
    hidden: ["hidden"],
    id: null,
    inert: ["inert"],
    itemid: null,
    itemprop: null,
    itemref: null,
    itemscope: ["itemscope"],
    itemtype: null,
    lang: ["en", "es"],
    spellcheck: ["true", "false"],
    style: null,
    tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
    title: null,
    translate: ["yes", "no"],
    onclick: null,
    rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"]
  };
  function populate(obj) {
    for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))
      obj.attrs[attr] = globalAttrs[attr];
  }

  populate(s);
  for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)
    populate(data[tag]);

  CodeMirror.htmlSchema = data;
  function htmlHint(cm, options) {
    var local = {schemaInfo: data};
    if (options) for (var opt in options) local[opt] = options[opt];
    return CodeMirror.hint.xml(cm, local);
  }
  CodeMirror.registerHelper("hint", "html", htmlHint);
});
editors/codemirror/addon/hint/html-hint.min.js000064400000016724152177723720015464 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./xml-hint")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./xml-hint"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b in l)l.hasOwnProperty(b)&&(a.attrs[b]=l[b])}function c(b,c){var d={schemaInfo:k};if(c)for(var e in c)d[e]=c[e];return a.hint.xml(b,d)}var d="ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" "),e=["_blank","_self","_top","_parent"],f=["ascii","utf-8","utf-16","latin1","latin1"],g=["get","post","put","delete"],h=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],i=["all","screen","print","embossed","braille","handheld","print","projection","screen","tty","tv","speech","3d-glasses","resolution [>][<][=] [X]","device-aspect-ratio: X/Y","orientation:portrait","orientation:landscape","device-height: [X]","device-width: [X]"],j={attrs:{}},k={a:{attrs:{href:null,ping:null,type:null,media:i,target:e,hreflang:d}},abbr:j,acronym:j,address:j,applet:j,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:i,hreflang:d,type:null,shape:["default","rect","circle","poly"]}},article:j,aside:j,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["","autoplay"],loop:["","loop"],controls:["","controls"]}},b:j,base:{attrs:{href:null,target:e}},basefont:j,bdi:j,bdo:j,big:j,blockquote:{attrs:{cite:null}},body:j,br:j,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["","autofocus"],disabled:["","autofocus"],formenctype:h,formmethod:g,formnovalidate:["","novalidate"],formtarget:e,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:j,center:j,cite:j,code:j,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["","disabled"],checked:["","checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["","disabled"],multiple:["","multiple"]}},datalist:{attrs:{data:null}},dd:j,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["","open"]}},dfn:j,dir:j,div:j,dl:j,dt:j,em:j,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["","disabled"],form:null,name:null}},figcaption:j,figure:j,font:j,footer:j,form:{attrs:{action:null,name:null,"accept-charset":f,autocomplete:["on","off"],enctype:h,method:g,novalidate:["","novalidate"],target:e}},frame:j,frameset:j,h1:j,h2:j,h3:j,h4:j,h5:j,h6:j,head:{attrs:{},children:["title","base","link","style","meta","script","noscript","command"]},header:j,hgroup:j,hr:j,html:{attrs:{manifest:null},children:["head","body"]},i:j,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["","seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["","autofocus"],checked:["","checked"],disabled:["","disabled"],formenctype:h,formmethod:g,formnovalidate:["","novalidate"],formtarget:e,multiple:["","multiple"],readonly:["","readonly"],required:["","required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:j,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["","autofocus"],disabled:["","disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:j,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:d,media:i,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:j,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:f,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:j,noframes:j,noscript:j,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["","typemustmatch"]}},ol:{attrs:{reversed:["","reversed"],start:null,type:["1","a","A","i","I"]}},optgroup:{attrs:{disabled:["","disabled"],label:null}},option:{attrs:{disabled:["","disabled"],label:null,selected:["","selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:j,param:{attrs:{name:null,value:null}},pre:j,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:j,rt:j,ruby:j,s:j,samp:j,script:{attrs:{type:["text/javascript"],src:null,async:["","async"],defer:["","defer"],charset:f}},section:j,select:{attrs:{form:null,name:null,size:null,autofocus:["","autofocus"],disabled:["","disabled"],multiple:["","multiple"]}},small:j,source:{attrs:{src:null,type:null,media:null}},span:j,strike:j,strong:j,style:{attrs:{type:["text/css"],media:i,scoped:null}},sub:j,summary:j,sup:j,table:j,tbody:j,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["","autofocus"],disabled:["","disabled"],readonly:["","readonly"],required:["","required"],wrap:["soft","hard"]}},tfoot:j,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:j,time:{attrs:{datetime:null}},title:j,tr:j,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:d}},tt:j,u:j,ul:j,var:j,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["","autoplay"],mediagroup:["movie"],muted:["","muted"],controls:["","controls"]}},wbr:j},l={accesskey:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9"],class:null,contenteditable:["true","false"],contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["en","es"],spellcheck:["true","false"],style:null,tabindex:["1","2","3","4","5","6","7","8","9"],title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"]};b(j);for(var m in k)k.hasOwnProperty(m)&&k[m]!=j&&b(k[m]);a.htmlSchema=k,a.registerHelper("hint","html",c)}));editors/codemirror/addon/hint/anyword-hint.js000064400000003221152177723720015405 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var WORD = /[\w$]+/, RANGE = 500;

  CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
    var word = options && options.word || WORD;
    var range = options && options.range || RANGE;
    var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
    var end = cur.ch, start = end;
    while (start && word.test(curLine.charAt(start - 1))) --start;
    var curWord = start != end && curLine.slice(start, end);

    var list = options && options.list || [], seen = {};
    var re = new RegExp(word.source, "g");
    for (var dir = -1; dir <= 1; dir += 2) {
      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
      for (; line != endLine; line += dir) {
        var text = editor.getLine(line), m;
        while (m = re.exec(text)) {
          if (line == cur.line && m[0] === curWord) continue;
          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
            seen[m[0]] = true;
            list.push(m[0]);
          }
        }
      }
    }
    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
  });
});
editors/codemirror/addon/hint/show-hint.min.css000064400000000772152177723720015650 0ustar00.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid silver;background:#fff;font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}li.CodeMirror-hint-active{background:#08f;color:#fff}editors/codemirror/addon/hint/xml-hint.js000064400000011200152177723720014516 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var Pos = CodeMirror.Pos;

  function getHints(cm, options) {
    var tags = options && options.schemaInfo;
    var quote = (options && options.quoteChar) || '"';
    if (!tags) return;
    var cur = cm.getCursor(), token = cm.getTokenAt(cur);
    if (token.end > cur.ch) {
      token.end = cur.ch;
      token.string = token.string.slice(0, cur.ch - token.start);
    }
    var inner = CodeMirror.innerMode(cm.getMode(), token.state);
    if (inner.mode.name != "xml") return;
    var result = [], replaceToken = false, prefix;
    var tag = /\btag\b/.test(token.type) && !/>$/.test(token.string);
    var tagName = tag && /^\w/.test(token.string), tagStart;

    if (tagName) {
      var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start);
      var tagType = /<\/$/.test(before) ? "close" : /<$/.test(before) ? "open" : null;
      if (tagType) tagStart = token.start - (tagType == "close" ? 2 : 1);
    } else if (tag && token.string == "<") {
      tagType = "open";
    } else if (tag && token.string == "</") {
      tagType = "close";
    }

    if (!tag && !inner.state.tagName || tagType) {
      if (tagName)
        prefix = token.string;
      replaceToken = tagType;
      var cx = inner.state.context, curTag = cx && tags[cx.tagName];
      var childList = cx ? curTag && curTag.children : tags["!top"];
      if (childList && tagType != "close") {
        for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].lastIndexOf(prefix, 0) == 0)
          result.push("<" + childList[i]);
      } else if (tagType != "close") {
        for (var name in tags)
          if (tags.hasOwnProperty(name) && name != "!top" && name != "!attrs" && (!prefix || name.lastIndexOf(prefix, 0) == 0))
            result.push("<" + name);
      }
      if (cx && (!prefix || tagType == "close" && cx.tagName.lastIndexOf(prefix, 0) == 0))
        result.push("</" + cx.tagName + ">");
    } else {
      // Attribute completion
      var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs;
      var globalAttrs = tags["!attrs"];
      if (!attrs && !globalAttrs) return;
      if (!attrs) {
        attrs = globalAttrs;
      } else if (globalAttrs) { // Combine tag-local and global attributes
        var set = {};
        for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm];
        for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm];
        attrs = set;
      }
      if (token.type == "string" || token.string == "=") { // A value
        var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),
                                 Pos(cur.line, token.type == "string" ? token.start : token.end));
        var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues;
        if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;
        if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget
        if (token.type == "string") {
          prefix = token.string;
          var n = 0;
          if (/['"]/.test(token.string.charAt(0))) {
            quote = token.string.charAt(0);
            prefix = token.string.slice(1);
            n++;
          }
          var len = token.string.length;
          if (/['"]/.test(token.string.charAt(len - 1))) {
            quote = token.string.charAt(len - 1);
            prefix = token.string.substr(n, len - 2);
          }
          replaceToken = true;
        }
        for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].lastIndexOf(prefix, 0) == 0)
          result.push(quote + atValues[i] + quote);
      } else { // An attribute name
        if (token.type == "attribute") {
          prefix = token.string;
          replaceToken = true;
        }
        for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.lastIndexOf(prefix, 0) == 0))
          result.push(attr);
      }
    }
    return {
      list: result,
      from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur,
      to: replaceToken ? Pos(cur.line, token.end) : cur
    };
  }

  CodeMirror.registerHelper("hint", "xml", getHints);
});
editors/codemirror/addon/hint/anyword-hint.min.js000064400000001435152177723720016174 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";var b=/[\w$]+/,c=500;a.registerHelper("hint","anyword",(function(d,e){for(var f=e&&e.word||b,g=e&&e.range||c,h=d.getCursor(),i=d.getLine(h.line),j=h.ch,k=j;k&&f.test(i.charAt(k-1));)--k;for(var l=k!=j&&i.slice(k,j),m=e&&e.list||[],n={},o=new RegExp(f.source,"g"),p=-1;p<=1;p+=2)for(var q=h.line,r=Math.min(Math.max(q+p*g,d.firstLine()),d.lastLine())+p;q!=r;q+=p)for(var s,t=d.getLine(q);s=o.exec(t);)q==h.line&&s[0]===l||l&&0!=s[0].lastIndexOf(l,0)||Object.prototype.hasOwnProperty.call(n,s[0])||(n[s[0]]=!0,m.push(s[0]));return{list:m,from:a.Pos(h.line,k),to:a.Pos(h.line,j)}}))}));editors/codemirror/addon/hint/xml-hint.min.js000064400000004162152177723720015311 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,d){var e=d&&d.schemaInfo,f=d&&d.quoteChar||'"';if(e){var g=b.getCursor(),h=b.getTokenAt(g);h.end>g.ch&&(h.end=g.ch,h.string=h.string.slice(0,g.ch-h.start));var i=a.innerMode(b.getMode(),h.state);if("xml"==i.mode.name){var j,k,l=[],m=!1,n=/\btag\b/.test(h.type)&&!/>$/.test(h.string),o=n&&/^\w/.test(h.string);if(o){var p=b.getLine(g.line).slice(Math.max(0,h.start-2),h.start),q=/<\/$/.test(p)?"close":/<$/.test(p)?"open":null;q&&(k=h.start-("close"==q?2:1))}else n&&"<"==h.string?q="open":n&&"</"==h.string&&(q="close");if(!n&&!i.state.tagName||q){o&&(j=h.string),m=q;var r=i.state.context,s=r&&e[r.tagName],t=r?s&&s.children:e["!top"];if(t&&"close"!=q)for(var u=0;u<t.length;++u)j&&0!=t[u].lastIndexOf(j,0)||l.push("<"+t[u]);else if("close"!=q)for(var v in e)!e.hasOwnProperty(v)||"!top"==v||"!attrs"==v||j&&0!=v.lastIndexOf(j,0)||l.push("<"+v);r&&(!j||"close"==q&&0==r.tagName.lastIndexOf(j,0))&&l.push("</"+r.tagName+">")}else{var s=e[i.state.tagName],w=s&&s.attrs,x=e["!attrs"];if(!w&&!x)return;if(w){if(x){var y={};for(var z in x)x.hasOwnProperty(z)&&(y[z]=x[z]);for(var z in w)w.hasOwnProperty(z)&&(y[z]=w[z]);w=y}}else w=x;if("string"==h.type||"="==h.string){var A,p=b.getRange(c(g.line,Math.max(0,g.ch-60)),c(g.line,"string"==h.type?h.start:h.end)),B=p.match(/([^\s\u00a0=<>\"\']+)=$/);if(!B||!w.hasOwnProperty(B[1])||!(A=w[B[1]]))return;if("function"==typeof A&&(A=A.call(this,b)),"string"==h.type){j=h.string;var C=0;/['"]/.test(h.string.charAt(0))&&(f=h.string.charAt(0),j=h.string.slice(1),C++);var D=h.string.length;/['"]/.test(h.string.charAt(D-1))&&(f=h.string.charAt(D-1),j=h.string.substr(C,D-2)),m=!0}for(var u=0;u<A.length;++u)j&&0!=A[u].lastIndexOf(j,0)||l.push(f+A[u]+f)}else{"attribute"==h.type&&(j=h.string,m=!0);for(var E in w)!w.hasOwnProperty(E)||j&&0!=E.lastIndexOf(j,0)||l.push(E)}}return{list:l,from:m?c(g.line,null==k?h.start:k):g,to:m?c(g.line,h.end):g}}}}var c=a.Pos;a.registerHelper("hint","xml",b)}));editors/codemirror/addon/hint/show-hint.css000064400000001157152177723720015064 0ustar00.CodeMirror-hints {
  position: absolute;
  z-index: 10;
  overflow: hidden;
  list-style: none;

  margin: 0;
  padding: 2px;

  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
  box-shadow: 2px 3px 5px rgba(0,0,0,.2);
  border-radius: 3px;
  border: 1px solid silver;

  background: white;
  font-size: 90%;
  font-family: monospace;

  max-height: 20em;
  overflow-y: auto;
}

.CodeMirror-hint {
  margin: 0;
  padding: 0 4px;
  border-radius: 2px;
  white-space: pre;
  color: black;
  cursor: pointer;
}

li.CodeMirror-hint-active {
  background: #08f;
  color: white;
}
editors/codemirror/addon/hint/show-hint.js000064400000037167152177723720014722 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var HINT_ELEMENT_CLASS        = "CodeMirror-hint";
  var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active";

  // This is the old interface, kept around for now to stay
  // backwards-compatible.
  CodeMirror.showHint = function(cm, getHints, options) {
    if (!getHints) return cm.showHint(options);
    if (options && options.async) getHints.async = true;
    var newOpts = {hint: getHints};
    if (options) for (var prop in options) newOpts[prop] = options[prop];
    return cm.showHint(newOpts);
  };

  CodeMirror.defineExtension("showHint", function(options) {
    options = parseOptions(this, this.getCursor("start"), options);
    var selections = this.listSelections()
    if (selections.length > 1) return;
    // By default, don't allow completion when something is selected.
    // A hint function can have a `supportsSelection` property to
    // indicate that it can handle selections.
    if (this.somethingSelected()) {
      if (!options.hint.supportsSelection) return;
      // Don't try with cross-line selections
      for (var i = 0; i < selections.length; i++)
        if (selections[i].head.line != selections[i].anchor.line) return;
    }

    if (this.state.completionActive) this.state.completionActive.close();
    var completion = this.state.completionActive = new Completion(this, options);
    if (!completion.options.hint) return;

    CodeMirror.signal(this, "startCompletion", this);
    completion.update(true);
  });

  function Completion(cm, options) {
    this.cm = cm;
    this.options = options;
    this.widget = null;
    this.debounce = 0;
    this.tick = 0;
    this.startPos = this.cm.getCursor("start");
    this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;

    var self = this;
    cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); });
  }

  var requestAnimationFrame = window.requestAnimationFrame || function(fn) {
    return setTimeout(fn, 1000/60);
  };
  var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;

  Completion.prototype = {
    close: function() {
      if (!this.active()) return;
      this.cm.state.completionActive = null;
      this.tick = null;
      this.cm.off("cursorActivity", this.activityFunc);

      if (this.widget && this.data) CodeMirror.signal(this.data, "close");
      if (this.widget) this.widget.close();
      CodeMirror.signal(this.cm, "endCompletion", this.cm);
    },

    active: function() {
      return this.cm.state.completionActive == this;
    },

    pick: function(data, i) {
      var completion = data.list[i];
      if (completion.hint) completion.hint(this.cm, data, completion);
      else this.cm.replaceRange(getText(completion), completion.from || data.from,
                                completion.to || data.to, "complete");
      CodeMirror.signal(data, "pick", completion);
      this.close();
    },

    cursorActivity: function() {
      if (this.debounce) {
        cancelAnimationFrame(this.debounce);
        this.debounce = 0;
      }

      var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);
      if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||
          pos.ch < this.startPos.ch || this.cm.somethingSelected() ||
          (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {
        this.close();
      } else {
        var self = this;
        this.debounce = requestAnimationFrame(function() {self.update();});
        if (this.widget) this.widget.disable();
      }
    },

    update: function(first) {
      if (this.tick == null) return
      var self = this, myTick = ++this.tick
      fetchHints(this.options.hint, this.cm, this.options, function(data) {
        if (self.tick == myTick) self.finishUpdate(data, first)
      })
    },

    finishUpdate: function(data, first) {
      if (this.data) CodeMirror.signal(this.data, "update");

      var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);
      if (this.widget) this.widget.close();

      this.data = data;

      if (data && data.list.length) {
        if (picked && data.list.length == 1) {
          this.pick(data, 0);
        } else {
          this.widget = new Widget(this, data);
          CodeMirror.signal(data, "shown");
        }
      }
    }
  };

  function parseOptions(cm, pos, options) {
    var editor = cm.options.hintOptions;
    var out = {};
    for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
    if (editor) for (var prop in editor)
      if (editor[prop] !== undefined) out[prop] = editor[prop];
    if (options) for (var prop in options)
      if (options[prop] !== undefined) out[prop] = options[prop];
    if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)
    return out;
  }

  function getText(completion) {
    if (typeof completion == "string") return completion;
    else return completion.text;
  }

  function buildKeyMap(completion, handle) {
    var baseMap = {
      Up: function() {handle.moveFocus(-1);},
      Down: function() {handle.moveFocus(1);},
      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},
      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},
      Home: function() {handle.setFocus(0);},
      End: function() {handle.setFocus(handle.length - 1);},
      Enter: handle.pick,
      Tab: handle.pick,
      Esc: handle.close
    };
    var custom = completion.options.customKeys;
    var ourMap = custom ? {} : baseMap;
    function addBinding(key, val) {
      var bound;
      if (typeof val != "string")
        bound = function(cm) { return val(cm, handle); };
      // This mechanism is deprecated
      else if (baseMap.hasOwnProperty(val))
        bound = baseMap[val];
      else
        bound = val;
      ourMap[key] = bound;
    }
    if (custom)
      for (var key in custom) if (custom.hasOwnProperty(key))
        addBinding(key, custom[key]);
    var extra = completion.options.extraKeys;
    if (extra)
      for (var key in extra) if (extra.hasOwnProperty(key))
        addBinding(key, extra[key]);
    return ourMap;
  }

  function getHintElement(hintsElement, el) {
    while (el && el != hintsElement) {
      if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el;
      el = el.parentNode;
    }
  }

  function Widget(completion, data) {
    this.completion = completion;
    this.data = data;
    this.picked = false;
    var widget = this, cm = completion.cm;

    var hints = this.hints = document.createElement("ul");
    var theme = completion.cm.options.theme;
    hints.className = "CodeMirror-hints " + theme;
    this.selectedHint = data.selectedHint || 0;

    var completions = data.list;
    for (var i = 0; i < completions.length; ++i) {
      var elt = hints.appendChild(document.createElement("li")), cur = completions[i];
      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS);
      if (cur.className != null) className = cur.className + " " + className;
      elt.className = className;
      if (cur.render) cur.render(elt, data, cur);
      else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));
      elt.hintId = i;
    }

    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);
    var left = pos.left, top = pos.bottom, below = true;
    hints.style.left = left + "px";
    hints.style.top = top + "px";
    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
    var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
    var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
    (completion.options.container || document.body).appendChild(hints);
    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;
    var scrolls = hints.scrollHeight > hints.clientHeight + 1
    var startScroll = cm.getScrollInfo();

    if (overlapY > 0) {
      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);
      if (curTop - height > 0) { // Fits above cursor
        hints.style.top = (top = pos.top - height) + "px";
        below = false;
      } else if (height > winH) {
        hints.style.height = (winH - 5) + "px";
        hints.style.top = (top = pos.bottom - box.top) + "px";
        var cursor = cm.getCursor();
        if (data.from.ch != cursor.ch) {
          pos = cm.cursorCoords(cursor);
          hints.style.left = (left = pos.left) + "px";
          box = hints.getBoundingClientRect();
        }
      }
    }
    var overlapX = box.right - winW;
    if (overlapX > 0) {
      if (box.right - box.left > winW) {
        hints.style.width = (winW - 5) + "px";
        overlapX -= (box.right - box.left) - winW;
      }
      hints.style.left = (left = pos.left - overlapX) + "px";
    }
    if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)
      node.style.paddingRight = cm.display.nativeBarWidth + "px"

    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {
      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },
      setFocus: function(n) { widget.changeActive(n); },
      menuSize: function() { return widget.screenAmount(); },
      length: completions.length,
      close: function() { completion.close(); },
      pick: function() { widget.pick(); },
      data: data
    }));

    if (completion.options.closeOnUnfocus) {
      var closingOnBlur;
      cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
      cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
    }

    cm.on("scroll", this.onScroll = function() {
      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
      var newTop = top + startScroll.top - curScroll.top;
      var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);
      if (!below) point += hints.offsetHeight;
      if (point <= editor.top || point >= editor.bottom) return completion.close();
      hints.style.top = newTop + "px";
      hints.style.left = (left + startScroll.left - curScroll.left) + "px";
    });

    CodeMirror.on(hints, "dblclick", function(e) {
      var t = getHintElement(hints, e.target || e.srcElement);
      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
    });

    CodeMirror.on(hints, "click", function(e) {
      var t = getHintElement(hints, e.target || e.srcElement);
      if (t && t.hintId != null) {
        widget.changeActive(t.hintId);
        if (completion.options.completeOnSingleClick) widget.pick();
      }
    });

    CodeMirror.on(hints, "mousedown", function() {
      setTimeout(function(){cm.focus();}, 20);
    });

    CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]);
    return true;
  }

  Widget.prototype = {
    close: function() {
      if (this.completion.widget != this) return;
      this.completion.widget = null;
      this.hints.parentNode.removeChild(this.hints);
      this.completion.cm.removeKeyMap(this.keyMap);

      var cm = this.completion.cm;
      if (this.completion.options.closeOnUnfocus) {
        cm.off("blur", this.onBlur);
        cm.off("focus", this.onFocus);
      }
      cm.off("scroll", this.onScroll);
    },

    disable: function() {
      this.completion.cm.removeKeyMap(this.keyMap);
      var widget = this;
      this.keyMap = {Enter: function() { widget.picked = true; }};
      this.completion.cm.addKeyMap(this.keyMap);
    },

    pick: function() {
      this.completion.pick(this.data, this.selectedHint);
    },

    changeActive: function(i, avoidWrap) {
      if (i >= this.data.list.length)
        i = avoidWrap ? this.data.list.length - 1 : 0;
      else if (i < 0)
        i = avoidWrap ? 0  : this.data.list.length - 1;
      if (this.selectedHint == i) return;
      var node = this.hints.childNodes[this.selectedHint];
      if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
      node = this.hints.childNodes[this.selectedHint = i];
      node.className += " " + ACTIVE_HINT_ELEMENT_CLASS;
      if (node.offsetTop < this.hints.scrollTop)
        this.hints.scrollTop = node.offsetTop - 3;
      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
      CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
    },

    screenAmount: function() {
      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
    }
  };

  function applicableHelpers(cm, helpers) {
    if (!cm.somethingSelected()) return helpers
    var result = []
    for (var i = 0; i < helpers.length; i++)
      if (helpers[i].supportsSelection) result.push(helpers[i])
    return result
  }

  function fetchHints(hint, cm, options, callback) {
    if (hint.async) {
      hint(cm, callback, options)
    } else {
      var result = hint(cm, options)
      if (result && result.then) result.then(callback)
      else callback(result)
    }
  }

  function resolveAutoHints(cm, pos) {
    var helpers = cm.getHelpers(pos, "hint"), words
    if (helpers.length) {
      var resolved = function(cm, callback, options) {
        var app = applicableHelpers(cm, helpers);
        function run(i) {
          if (i == app.length) return callback(null)
          fetchHints(app[i], cm, options, function(result) {
            if (result && result.list.length > 0) callback(result)
            else run(i + 1)
          })
        }
        run(0)
      }
      resolved.async = true
      resolved.supportsSelection = true
      return resolved
    } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) {
      return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }
    } else if (CodeMirror.hint.anyword) {
      return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }
    } else {
      return function() {}
    }
  }

  CodeMirror.registerHelper("hint", "auto", {
    resolve: resolveAutoHints
  });

  CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
    var cur = cm.getCursor(), token = cm.getTokenAt(cur)
    var term, from = CodeMirror.Pos(cur.line, token.start), to = cur
    if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) {
      term = token.string.substr(0, cur.ch - token.start)
    } else {
      term = ""
      from = cur
    }
    var found = [];
    for (var i = 0; i < options.words.length; i++) {
      var word = options.words[i];
      if (word.slice(0, term.length) == term)
        found.push(word);
    }

    if (found.length) return {list: found, from: from, to: to};
  });

  CodeMirror.commands.autocomplete = CodeMirror.showHint;

  var defaultOptions = {
    hint: CodeMirror.hint.auto,
    completeSingle: true,
    alignWithWord: true,
    closeCharacters: /[\s()\[\]{};:>,]/,
    closeOnUnfocus: true,
    completeOnSingleClick: true,
    container: null,
    customKeys: null,
    extraKeys: null
  };

  CodeMirror.defineOption("hintOptions", null);
});
editors/codemirror/addon/hint/sql-hint.js000064400000022520152177723720014524 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../mode/sql/sql"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../mode/sql/sql"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var tables;
  var defaultTable;
  var keywords;
  var identifierQuote;
  var CONS = {
    QUERY_DIV: ";",
    ALIAS_KEYWORD: "AS"
  };
  var Pos = CodeMirror.Pos, cmpPos = CodeMirror.cmpPos;

  function isArray(val) { return Object.prototype.toString.call(val) == "[object Array]" }

  function getKeywords(editor) {
    var mode = editor.doc.modeOption;
    if (mode === "sql") mode = "text/x-sql";
    return CodeMirror.resolveMode(mode).keywords;
  }

  function getIdentifierQuote(editor) {
    var mode = editor.doc.modeOption;
    if (mode === "sql") mode = "text/x-sql";
    return CodeMirror.resolveMode(mode).identifierQuote || "`";
  }

  function getText(item) {
    return typeof item == "string" ? item : item.text;
  }

  function wrapTable(name, value) {
    if (isArray(value)) value = {columns: value}
    if (!value.text) value.text = name
    return value
  }

  function parseTables(input) {
    var result = {}
    if (isArray(input)) {
      for (var i = input.length - 1; i >= 0; i--) {
        var item = input[i]
        result[getText(item).toUpperCase()] = wrapTable(getText(item), item)
      }
    } else if (input) {
      for (var name in input)
        result[name.toUpperCase()] = wrapTable(name, input[name])
    }
    return result
  }

  function getTable(name) {
    return tables[name.toUpperCase()]
  }

  function shallowClone(object) {
    var result = {};
    for (var key in object) if (object.hasOwnProperty(key))
      result[key] = object[key];
    return result;
  }

  function match(string, word) {
    var len = string.length;
    var sub = getText(word).substr(0, len);
    return string.toUpperCase() === sub.toUpperCase();
  }

  function addMatches(result, search, wordlist, formatter) {
    if (isArray(wordlist)) {
      for (var i = 0; i < wordlist.length; i++)
        if (match(search, wordlist[i])) result.push(formatter(wordlist[i]))
    } else {
      for (var word in wordlist) if (wordlist.hasOwnProperty(word)) {
        var val = wordlist[word]
        if (!val || val === true)
          val = word
        else
          val = val.displayText ? {text: val.text, displayText: val.displayText} : val.text
        if (match(search, val)) result.push(formatter(val))
      }
    }
  }

  function cleanName(name) {
    // Get rid name from identifierQuote and preceding dot(.)
    if (name.charAt(0) == ".") {
      name = name.substr(1);
    }
    // replace doublicated identifierQuotes with single identifierQuotes
    // and remove single identifierQuotes
    var nameParts = name.split(identifierQuote+identifierQuote);
    for (var i = 0; i < nameParts.length; i++)
      nameParts[i] = nameParts[i].replace(new RegExp(identifierQuote,"g"), "");
    return nameParts.join(identifierQuote);
  }

  function insertIdentifierQuotes(name) {
    var nameParts = getText(name).split(".");
    for (var i = 0; i < nameParts.length; i++)
      nameParts[i] = identifierQuote +
        // doublicate identifierQuotes
        nameParts[i].replace(new RegExp(identifierQuote,"g"), identifierQuote+identifierQuote) +
        identifierQuote;
    var escaped = nameParts.join(".");
    if (typeof name == "string") return escaped;
    name = shallowClone(name);
    name.text = escaped;
    return name;
  }

  function nameCompletion(cur, token, result, editor) {
    // Try to complete table, column names and return start position of completion
    var useIdentifierQuotes = false;
    var nameParts = [];
    var start = token.start;
    var cont = true;
    while (cont) {
      cont = (token.string.charAt(0) == ".");
      useIdentifierQuotes = useIdentifierQuotes || (token.string.charAt(0) == identifierQuote);

      start = token.start;
      nameParts.unshift(cleanName(token.string));

      token = editor.getTokenAt(Pos(cur.line, token.start));
      if (token.string == ".") {
        cont = true;
        token = editor.getTokenAt(Pos(cur.line, token.start));
      }
    }

    // Try to complete table names
    var string = nameParts.join(".");
    addMatches(result, string, tables, function(w) {
      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
    });

    // Try to complete columns from defaultTable
    addMatches(result, string, defaultTable, function(w) {
      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
    });

    // Try to complete columns
    string = nameParts.pop();
    var table = nameParts.join(".");

    var alias = false;
    var aliasTable = table;
    // Check if table is available. If not, find table by Alias
    if (!getTable(table)) {
      var oldTable = table;
      table = findTableByAlias(table, editor);
      if (table !== oldTable) alias = true;
    }

    var columns = getTable(table);
    if (columns && columns.columns)
      columns = columns.columns;

    if (columns) {
      addMatches(result, string, columns, function(w) {
        var tableInsert = table;
        if (alias == true) tableInsert = aliasTable;
        if (typeof w == "string") {
          w = tableInsert + "." + w;
        } else {
          w = shallowClone(w);
          w.text = tableInsert + "." + w.text;
        }
        return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
      });
    }

    return start;
  }

  function eachWord(lineText, f) {
    var words = lineText.split(/\s+/)
    for (var i = 0; i < words.length; i++)
      if (words[i]) f(words[i].replace(/[,;]/g, ''))
  }

  function findTableByAlias(alias, editor) {
    var doc = editor.doc;
    var fullQuery = doc.getValue();
    var aliasUpperCase = alias.toUpperCase();
    var previousWord = "";
    var table = "";
    var separator = [];
    var validRange = {
      start: Pos(0, 0),
      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)
    };

    //add separator
    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);
    while(indexOfSeparator != -1) {
      separator.push(doc.posFromIndex(indexOfSeparator));
      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);
    }
    separator.unshift(Pos(0, 0));
    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));

    //find valid range
    var prevItem = null;
    var current = editor.getCursor()
    for (var i = 0; i < separator.length; i++) {
      if ((prevItem == null || cmpPos(current, prevItem) > 0) && cmpPos(current, separator[i]) <= 0) {
        validRange = {start: prevItem, end: separator[i]};
        break;
      }
      prevItem = separator[i];
    }

    if (validRange.start) {
      var query = doc.getRange(validRange.start, validRange.end, false);

      for (var i = 0; i < query.length; i++) {
        var lineText = query[i];
        eachWord(lineText, function(word) {
          var wordUpperCase = word.toUpperCase();
          if (wordUpperCase === aliasUpperCase && getTable(previousWord))
            table = previousWord;
          if (wordUpperCase !== CONS.ALIAS_KEYWORD)
            previousWord = word;
        });
        if (table) break;
      }
    }
    return table;
  }

  CodeMirror.registerHelper("hint", "sql", function(editor, options) {
    tables = parseTables(options && options.tables)
    var defaultTableName = options && options.defaultTable;
    var disableKeywords = options && options.disableKeywords;
    defaultTable = defaultTableName && getTable(defaultTableName);
    keywords = getKeywords(editor);
    identifierQuote = getIdentifierQuote(editor);

    if (defaultTableName && !defaultTable)
      defaultTable = findTableByAlias(defaultTableName, editor);

    defaultTable = defaultTable || [];

    if (defaultTable.columns)
      defaultTable = defaultTable.columns;

    var cur = editor.getCursor();
    var result = [];
    var token = editor.getTokenAt(cur), start, end, search;
    if (token.end > cur.ch) {
      token.end = cur.ch;
      token.string = token.string.slice(0, cur.ch - token.start);
    }

    if (token.string.match(/^[.`"\w@]\w*$/)) {
      search = token.string;
      start = token.start;
      end = token.end;
    } else {
      start = end = cur.ch;
      search = "";
    }
    if (search.charAt(0) == "." || search.charAt(0) == identifierQuote) {
      start = nameCompletion(cur, token, result, editor);
    } else {
      addMatches(result, search, defaultTable, function(w) {return {text:w, className: "CodeMirror-hint-table CodeMirror-hint-default-table"};});
      addMatches(
          result,
          search,
          tables,
          function(w) {
              if (typeof w === 'object') {
                  w.className =  "CodeMirror-hint-table";
              } else {
                  w = {text: w, className: "CodeMirror-hint-table"};
              }

              return w;
          }
      );
      if (!disableKeywords)
        addMatches(result, search, keywords, function(w) {return {text: w.toUpperCase(), className: "CodeMirror-hint-keyword"};});
    }

    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};
  });
});
editors/codemirror/addon/hint/css-hint.js000064400000004166152177723720014523 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../../mode/css/css"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../../mode/css/css"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1,
                       "first-letter": 1, "first-line": 1, "first-child": 1,
                       before: 1, after: 1, lang: 1};

  CodeMirror.registerHelper("hint", "css", function(cm) {
    var cur = cm.getCursor(), token = cm.getTokenAt(cur);
    var inner = CodeMirror.innerMode(cm.getMode(), token.state);
    if (inner.mode.name != "css") return;

    if (token.type == "keyword" && "!important".indexOf(token.string) == 0)
      return {list: ["!important"], from: CodeMirror.Pos(cur.line, token.start),
              to: CodeMirror.Pos(cur.line, token.end)};

    var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);
    if (/[^\w$_-]/.test(word)) {
      word = ""; start = end = cur.ch;
    }

    var spec = CodeMirror.resolveMode("text/css");

    var result = [];
    function add(keywords) {
      for (var name in keywords)
        if (!word || name.lastIndexOf(word, 0) == 0)
          result.push(name);
    }

    var st = inner.state.state;
    if (st == "pseudo" || token.type == "variable-3") {
      add(pseudoClasses);
    } else if (st == "block" || st == "maybeprop") {
      add(spec.propertyKeywords);
    } else if (st == "prop" || st == "parens" || st == "at" || st == "params") {
      add(spec.valueKeywords);
      add(spec.colorKeywords);
    } else if (st == "media" || st == "media_parens") {
      add(spec.mediaTypes);
      add(spec.mediaFeatures);
    }

    if (result.length) return {
      list: result,
      from: CodeMirror.Pos(cur.line, start),
      to: CodeMirror.Pos(cur.line, end)
    };
  });
});
editors/codemirror/addon/tern/tern.min.js000064400000027113152177723720014530 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c){var d=a.docs[b];d?c(F(a,d)):a.options.getFile?a.options.getFile(b,c):c(null)}function c(a,b,c){for(var d in a.docs){var e=a.docs[d];if(e.doc==b)return e}if(!c)for(var f=0;;++f)if(d="[doc"+(f||"")+"]",!a.docs[d]){c=d;break}return a.addDoc(c,b)}function d(b,d){return"string"==typeof d?b.docs[d]:(d instanceof a&&(d=d.getDoc()),d instanceof a.Doc?c(b,d):void 0)}function e(a,b,d){var e=c(a,b),g=a.cachedArgHints;g&&g.doc==b&&L(g.start,d.to)>=0&&(a.cachedArgHints=null);var h=e.changed;null==h&&(e.changed=h={from:d.from.line,to:d.from.line});var i=d.from.line+(d.text.length-1);d.from.line<h.to&&(h.to=h.to-(d.to.line-i)),i>=h.to&&(h.to=i+1),h.from>d.from.line&&(h.from=d.from.line),b.lineCount()>J&&d.to-h.from>100&&setTimeout((function(){e.changed&&e.changed.to-e.changed.from>100&&f(a,e)}),200)}function f(a,b){a.server.request({files:[{type:"full",name:b.name,text:F(a,b)}]},(function(a){a?window.console.error(a):b.changed=null}))}function g(b,c,d){b.request(c,{type:"completions",types:!0,docs:!0,urls:!0},(function(e,f){if(e)return D(b,c,e);var g=[],i="",j=f.start,k=f.end;'["'==c.getRange(H(j.line,j.ch-2),j)&&'"]'!=c.getRange(k,H(k.line,k.ch+2))&&(i='"]');for(var l=0;l<f.completions.length;++l){var m=f.completions[l],n=h(m.type);f.guess&&(n+=" "+I+"guess"),g.push({text:m.name+i,displayText:m.displayName||m.name,className:n,data:m})}var o={from:j,to:k,list:g},p=null;a.on(o,"close",(function(){B(p)})),a.on(o,"update",(function(){B(p)})),a.on(o,"select",(function(a,c){B(p);var d=b.options.completionTip?b.options.completionTip(a.data):a.data.doc;d&&(p=A(c.parentNode.getBoundingClientRect().right+window.pageXOffset,c.getBoundingClientRect().top+window.pageYOffset,d),p.className+=" "+I+"hint-doc")})),d(o)}))}function h(a){var b;return b="?"==a?"unknown":"number"==a||"string"==a||"bool"==a?a:/^fn\(/.test(a)?"fn":/^\[/.test(a)?"array":"object",I+"completion "+I+"completion-"+b}function i(a,b,c,d,e){a.request(b,d,(function(c,d){if(c)return D(a,b,c);if(a.options.typeTip)var f=a.options.typeTip(d);else{var f=w("span",null,w("strong",null,d.type||"not found"));if(d.doc&&f.appendChild(document.createTextNode(" — "+d.doc)),d.url){f.appendChild(document.createTextNode(" "));var g=f.appendChild(w("a",null,"[docs]"));g.href=d.url,g.target="_blank"}}y(b,f,a),e&&e()}),c)}function j(b,c){if(E(b),!c.somethingSelected()){var d=c.getTokenAt(c.getCursor()).state,e=a.innerMode(c.getMode(),d);if("javascript"==e.mode.name){var f=e.state.lexical;if("call"==f.info){for(var g,h=f.pos||0,i=c.getOption("tabSize"),j=c.getCursor().line,m=Math.max(0,j-9),n=!1;j>=m;--j){for(var o=c.getLine(j),p=0,q=0;;){var r=o.indexOf("\t",q);if(r==-1)break;p+=i-(r+p)%i-1,q=r+1}if(g=f.column-p,"("==o.charAt(g)){n=!0;break}}if(n){var s=H(j,g),t=b.cachedArgHints;return t&&t.doc==c.getDoc()&&0==L(s,t.start)?k(b,c,h):void b.request(c,{type:"type",preferFunction:!0,end:s},(function(a,d){!a&&d.type&&/^fn\(/.test(d.type)&&(b.cachedArgHints={start:s,type:l(d.type),name:d.exprName||d.name||"fn",guess:d.guess,doc:c.getDoc()},k(b,c,h))}))}}}}}function k(a,b,c){E(a);for(var d=a.cachedArgHints,e=d.type,f=w("span",d.guess?I+"fhint-guess":null,w("span",I+"fname",d.name),"("),g=0;g<e.args.length;++g){g&&f.appendChild(document.createTextNode(", "));var h=e.args[g];f.appendChild(w("span",I+"farg"+(g==c?" "+I+"farg-current":""),h.name||"?")),"?"!=h.type&&(f.appendChild(document.createTextNode(": ")),f.appendChild(w("span",I+"type",h.type)))}f.appendChild(document.createTextNode(e.rettype?") -> ":")")),e.rettype&&f.appendChild(w("span",I+"type",e.rettype));var i=b.cursorCoords(null,"page"),j=a.activeArgHints=A(i.right+1,i.bottom,f);setTimeout((function(){j.clear=z(b,(function(){a.activeArgHints==j&&E(a)}))}),20)}function l(a){function b(b){for(var c=0,e=d;;){var f=a.charAt(d);if(b.test(f)&&!c)return a.slice(e,d);/[{\[\(]/.test(f)?++c:/[}\]\)]/.test(f)&&--c,++d}}var c=[],d=3;if(")"!=a.charAt(d))for(;;){var e=a.slice(d).match(/^([^, \(\[\{]+): /);if(e&&(d+=e[0].length,e=e[1]),c.push({name:e,type:b(/[\),]/)}),")"==a.charAt(d))break;d+=2}var f=a.slice(d).match(/^\) -> (.*)$/);return{args:c,rettype:f&&f[1]}}function m(a,b){function d(d){var e={type:"definition",variable:d||null},f=c(a,b.getDoc());a.server.request(u(a,f,e),(function(c,d){if(c)return D(a,b,c);if(!d.file&&d.url)return void window.open(d.url);if(d.file){var e,g=a.docs[d.file];if(g&&(e=p(g.doc,d)))return a.jumpStack.push({file:f.name,start:b.getCursor("from"),end:b.getCursor("to")}),void o(a,f,g,e.start,e.end)}D(a,b,"Could not find a definition.")}))}q(b)?d():x(b,"Jump to variable",(function(a){a&&d(a)}))}function n(a,b){var d=a.jumpStack.pop(),e=d&&a.docs[d.file];e&&o(a,c(a,b.getDoc()),e,d.start,d.end)}function o(a,b,c,d,e){c.doc.setSelection(d,e),b!=c&&a.options.switchToDoc&&(E(a),a.options.switchToDoc(c.name,c.doc))}function p(a,b){for(var c=b.context.slice(0,b.contextOffset).split("\n"),d=b.start.line-(c.length-1),e=H(d,(1==c.length?b.start.ch:a.getLine(d).length)-c[0].length),f=a.getLine(d).slice(e.ch),g=d+1;g<a.lineCount()&&f.length<b.context.length;++g)f+="\n"+a.getLine(g);if(f.slice(0,b.context.length)==b.context)return b;for(var h,i=a.getSearchCursor(b.context,0,!1),j=1/0;i.findNext();){var k=i.from(),l=1e4*Math.abs(k.line-e.line);l||(l=Math.abs(k.ch-e.ch)),l<j&&(h=k,j=l)}if(!h)return null;if(1==c.length?h.ch+=c[0].length:h=H(h.line+(c.length-1),c[c.length-1].length),b.start.line==b.end.line)var m=H(h.line,h.ch+(b.end.ch-b.start.ch));else var m=H(h.line+(b.end.line-b.start.line),b.end.ch);return{start:h,end:m}}function q(a){var b=a.getCursor("end"),c=a.getTokenAt(b);return!(c.start<b.ch&&"comment"==c.type)&&/[\w)\]]/.test(a.getLine(b.line).slice(Math.max(b.ch-1,0),b.ch+1))}function r(a,b){var c=b.getTokenAt(b.getCursor());return/\w/.test(c.string)?void x(b,"New name for "+c.string,(function(c){a.request(b,{type:"rename",newName:c,fullDocs:!0},(function(c,d){return c?D(a,b,c):void t(a,d.changes)}))})):D(a,b,"Not at a variable")}function s(a,b){var d=c(a,b.doc).name;a.request(b,{type:"refs"},(function(c,e){if(c)return D(a,b,c);for(var f=[],g=0,h=b.getCursor(),i=0;i<e.refs.length;i++){var j=e.refs[i];j.file==d&&(f.push({anchor:j.start,head:j.end}),L(h,j.start)>=0&&L(h,j.end)<=0&&(g=f.length-1))}b.setSelections(f,g)}))}function t(a,b){for(var c=Object.create(null),d=0;d<b.length;++d){var e=b[d];(c[e.file]||(c[e.file]=[])).push(e)}for(var f in c){var g=a.docs[f],h=c[f];if(g){h.sort((function(a,b){return L(b.start,a.start)}));for(var i="*rename"+ ++K,d=0;d<h.length;++d){var e=h[d];g.doc.replaceRange(e.text,e.start,e.end,i)}}}}function u(a,b,c,d){var e=[],f=0,g=!c.fullDocs;g||delete c.fullDocs,"string"==typeof c&&(c={type:c}),c.lineCharPositions=!0,null==c.end&&(c.end=d||b.doc.getCursor("end"),b.doc.somethingSelected()&&(c.start=b.doc.getCursor("start")));var h=c.start||c.end;if(b.changed)if(b.doc.lineCount()>J&&g!==!1&&b.changed.to-b.changed.from<100&&b.changed.from<=h.line&&b.changed.to>c.end.line){e.push(v(b,h,c.end)),c.file="#0";var f=e[0].offsetLines;null!=c.start&&(c.start=H(c.start.line- -f,c.start.ch)),c.end=H(c.end.line-f,c.end.ch)}else e.push({type:"full",name:b.name,text:F(a,b)}),c.file=b.name,b.changed=null;else c.file=b.name;for(var i in a.docs){var j=a.docs[i];j.changed&&j!=b&&(e.push({type:"full",name:j.name,text:F(a,j)}),j.changed=null)}return{query:c,files:e}}function v(b,c,d){for(var e,f=b.doc,g=null,h=null,i=4,j=c.line-1,k=Math.max(0,j-50);j>=k;--j){var l=f.getLine(j),m=l.search(/\bfunction\b/);if(!(m<0)){var n=a.countColumn(l,null,i);null!=g&&g<=n||(g=n,h=j)}}null==h&&(h=k);var o=Math.min(f.lastLine(),d.line+20);if(null==g||g==a.countColumn(f.getLine(c.line),null,i))e=o;else for(e=d.line+1;e<o;++e){var n=a.countColumn(f.getLine(e),null,i);if(n<=g)break}var p=H(h,0);return{type:"part",name:b.name,offsetLines:p.line,text:f.getRange(p,H(e,d.line==e?null:0))}}function w(a,b){var c=document.createElement(a);b&&(c.className=b);for(var d=2;d<arguments.length;++d){var e=arguments[d];"string"==typeof e&&(e=document.createTextNode(e)),c.appendChild(e)}return c}function x(a,b,c){a.openDialog?a.openDialog(b+": <input type=text>",c):c(prompt(b,""))}function y(b,c,d){function e(){j=!0,i||f()}function f(){b.state.ternTooltip=null,h.parentNode&&C(h),k()}b.state.ternTooltip&&B(b.state.ternTooltip);var g=b.cursorCoords(),h=b.state.ternTooltip=A(g.right+1,g.bottom,c),i=!1,j=!1;a.on(h,"mousemove",(function(){i=!0})),a.on(h,"mouseout",(function(b){var c=b.relatedTarget||b.toElement;c&&a.contains(h,c)||(j?f():i=!1)})),setTimeout(e,d.options.hintDelay?d.options.hintDelay:1700);var k=z(b,f)}function z(a,b){return a.on("cursorActivity",b),a.on("blur",b),a.on("scroll",b),a.on("setDoc",b),function(){a.off("cursorActivity",b),a.off("blur",b),a.off("scroll",b),a.off("setDoc",b)}}function A(a,b,c){var d=w("div",I+"tooltip",c);return d.style.left=a+"px",d.style.top=b+"px",document.body.appendChild(d),d}function B(a){var b=a&&a.parentNode;b&&b.removeChild(a)}function C(a){a.style.opacity="0",setTimeout((function(){B(a)}),1100)}function D(a,b,c){a.options.showError?a.options.showError(b,c):y(b,String(c),a)}function E(a){a.activeArgHints&&(a.activeArgHints.clear&&a.activeArgHints.clear(),B(a.activeArgHints),a.activeArgHints=null)}function F(a,b){var c=b.doc.getValue();return a.options.fileFilter&&(c=a.options.fileFilter(c,b.name,b.doc)),c}function G(a){function c(a,b){b&&(a.id=++e,f[e]=b),d.postMessage(a)}var d=a.worker=new Worker(a.options.workerScript);d.postMessage({type:"init",defs:a.options.defs,plugins:a.options.plugins,scripts:a.options.workerDeps});var e=0,f={};d.onmessage=function(d){var e=d.data;"getFile"==e.type?b(a,e.name,(function(a,b){c({type:"getFile",err:String(a),text:b,id:e.id})})):"debug"==e.type?window.console.log(e.message):e.id&&f[e.id]&&(f[e.id](e.err,e.body),delete f[e.id])},d.onerror=function(a){for(var b in f)f[b](a);f={}},this.addFile=function(a,b){c({type:"add",name:a,text:b})},this.delFile=function(a){c({type:"del",name:a})},this.request=function(a,b){c({type:"req",body:a},b)}}a.TernServer=function(a){var c=this;this.options=a||{};var d=this.options.plugins||(this.options.plugins={});d.doc_comment||(d.doc_comment=!0),this.docs=Object.create(null),this.options.useWorker?this.server=new G(this):this.server=new tern.Server({getFile:function(a,d){return b(c,a,d)},async:!0,defs:this.options.defs||[],plugins:d}),this.trackChange=function(a,b){e(c,a,b)},this.cachedArgHints=null,this.activeArgHints=null,this.jumpStack=[],this.getHint=function(a,b){return g(c,a,b)},this.getHint.async=!0},a.TernServer.prototype={addDoc:function(b,c){var d={doc:c,name:b,changed:null};return this.server.addFile(b,F(this,d)),a.on(c,"change",this.trackChange),this.docs[b]=d},delDoc:function(b){var c=d(this,b);c&&(a.off(c.doc,"change",this.trackChange),delete this.docs[c.name],this.server.delFile(c.name))},hideDoc:function(a){E(this);var b=d(this,a);b&&b.changed&&f(this,b)},complete:function(a){a.showHint({hint:this.getHint})},showType:function(a,b,c){i(this,a,b,"type",c)},showDocs:function(a,b,c){i(this,a,b,"documentation",c)},updateArgHints:function(a){j(this,a)},jumpToDef:function(a){m(this,a)},jumpBack:function(a){n(this,a)},rename:function(a){r(this,a)},selectName:function(a){s(this,a)},request:function(a,b,d,e){var f=this,g=c(this,a.getDoc()),h=u(this,g,b,e),i=h.query&&this.options.queryOptions&&this.options.queryOptions[h.query.type];if(i)for(var j in i)h.query[j]=i[j];this.server.request(h,(function(a,c){!a&&f.options.responseFilter&&(c=f.options.responseFilter(g,b,h,a,c)),d(a,c)}))},destroy:function(){E(this),this.worker&&(this.worker.terminate(),this.worker=null)}};var H=a.Pos,I="CodeMirror-Tern-",J=250,K=0,L=a.cmpPos}));editors/codemirror/addon/tern/tern.js000064400000060704152177723720013751 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Glue code between CodeMirror and Tern.
//
// Create a CodeMirror.TernServer to wrap an actual Tern server,
// register open documents (CodeMirror.Doc instances) with it, and
// call its methods to activate the assisting functions that Tern
// provides.
//
// Options supported (all optional):
// * defs: An array of JSON definition data structures.
// * plugins: An object mapping plugin names to configuration
//   options.
// * getFile: A function(name, c) that can be used to access files in
//   the project that haven't been loaded yet. Simply do c(null) to
//   indicate that a file is not available.
// * fileFilter: A function(value, docName, doc) that will be applied
//   to documents before passing them on to Tern.
// * switchToDoc: A function(name, doc) that should, when providing a
//   multi-file view, switch the view or focus to the named file.
// * showError: A function(editor, message) that can be used to
//   override the way errors are displayed.
// * completionTip: Customize the content in tooltips for completions.
//   Is passed a single argument—the completion's data as returned by
//   Tern—and may return a string, DOM node, or null to indicate that
//   no tip should be shown. By default the docstring is shown.
// * typeTip: Like completionTip, but for the tooltips shown for type
//   queries.
// * responseFilter: A function(doc, query, request, error, data) that
//   will be applied to the Tern responses before treating them
//
//
// It is possible to run the Tern server in a web worker by specifying
// these additional options:
// * useWorker: Set to true to enable web worker mode. You'll probably
//   want to feature detect the actual value you use here, for example
//   !!window.Worker.
// * workerScript: The main script of the worker. Point this to
//   wherever you are hosting worker.js from this directory.
// * workerDeps: An array of paths pointing (relative to workerScript)
//   to the Acorn and Tern libraries and any Tern plugins you want to
//   load. Or, if you minified those into a single script and included
//   them in the workerScript, simply leave this undefined.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  // declare global: tern

  CodeMirror.TernServer = function(options) {
    var self = this;
    this.options = options || {};
    var plugins = this.options.plugins || (this.options.plugins = {});
    if (!plugins.doc_comment) plugins.doc_comment = true;
    this.docs = Object.create(null);
    if (this.options.useWorker) {
      this.server = new WorkerServer(this);
    } else {
      this.server = new tern.Server({
        getFile: function(name, c) { return getFile(self, name, c); },
        async: true,
        defs: this.options.defs || [],
        plugins: plugins
      });
    }
    this.trackChange = function(doc, change) { trackChange(self, doc, change); };

    this.cachedArgHints = null;
    this.activeArgHints = null;
    this.jumpStack = [];

    this.getHint = function(cm, c) { return hint(self, cm, c); };
    this.getHint.async = true;
  };

  CodeMirror.TernServer.prototype = {
    addDoc: function(name, doc) {
      var data = {doc: doc, name: name, changed: null};
      this.server.addFile(name, docValue(this, data));
      CodeMirror.on(doc, "change", this.trackChange);
      return this.docs[name] = data;
    },

    delDoc: function(id) {
      var found = resolveDoc(this, id);
      if (!found) return;
      CodeMirror.off(found.doc, "change", this.trackChange);
      delete this.docs[found.name];
      this.server.delFile(found.name);
    },

    hideDoc: function(id) {
      closeArgHints(this);
      var found = resolveDoc(this, id);
      if (found && found.changed) sendDoc(this, found);
    },

    complete: function(cm) {
      cm.showHint({hint: this.getHint});
    },

    showType: function(cm, pos, c) { showContextInfo(this, cm, pos, "type", c); },

    showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, "documentation", c); },

    updateArgHints: function(cm) { updateArgHints(this, cm); },

    jumpToDef: function(cm) { jumpToDef(this, cm); },

    jumpBack: function(cm) { jumpBack(this, cm); },

    rename: function(cm) { rename(this, cm); },

    selectName: function(cm) { selectName(this, cm); },

    request: function (cm, query, c, pos) {
      var self = this;
      var doc = findDoc(this, cm.getDoc());
      var request = buildRequest(this, doc, query, pos);
      var extraOptions = request.query && this.options.queryOptions && this.options.queryOptions[request.query.type]
      if (extraOptions) for (var prop in extraOptions) request.query[prop] = extraOptions[prop];

      this.server.request(request, function (error, data) {
        if (!error && self.options.responseFilter)
          data = self.options.responseFilter(doc, query, request, error, data);
        c(error, data);
      });
    },

    destroy: function () {
      closeArgHints(this)
      if (this.worker) {
        this.worker.terminate();
        this.worker = null;
      }
    }
  };

  var Pos = CodeMirror.Pos;
  var cls = "CodeMirror-Tern-";
  var bigDoc = 250;

  function getFile(ts, name, c) {
    var buf = ts.docs[name];
    if (buf)
      c(docValue(ts, buf));
    else if (ts.options.getFile)
      ts.options.getFile(name, c);
    else
      c(null);
  }

  function findDoc(ts, doc, name) {
    for (var n in ts.docs) {
      var cur = ts.docs[n];
      if (cur.doc == doc) return cur;
    }
    if (!name) for (var i = 0;; ++i) {
      n = "[doc" + (i || "") + "]";
      if (!ts.docs[n]) { name = n; break; }
    }
    return ts.addDoc(name, doc);
  }

  function resolveDoc(ts, id) {
    if (typeof id == "string") return ts.docs[id];
    if (id instanceof CodeMirror) id = id.getDoc();
    if (id instanceof CodeMirror.Doc) return findDoc(ts, id);
  }

  function trackChange(ts, doc, change) {
    var data = findDoc(ts, doc);

    var argHints = ts.cachedArgHints;
    if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) >= 0)
      ts.cachedArgHints = null;

    var changed = data.changed;
    if (changed == null)
      data.changed = changed = {from: change.from.line, to: change.from.line};
    var end = change.from.line + (change.text.length - 1);
    if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);
    if (end >= changed.to) changed.to = end + 1;
    if (changed.from > change.from.line) changed.from = change.from.line;

    if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {
      if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);
    }, 200);
  }

  function sendDoc(ts, doc) {
    ts.server.request({files: [{type: "full", name: doc.name, text: docValue(ts, doc)}]}, function(error) {
      if (error) window.console.error(error);
      else doc.changed = null;
    });
  }

  // Completion

  function hint(ts, cm, c) {
    ts.request(cm, {type: "completions", types: true, docs: true, urls: true}, function(error, data) {
      if (error) return showError(ts, cm, error);
      var completions = [], after = "";
      var from = data.start, to = data.end;
      if (cm.getRange(Pos(from.line, from.ch - 2), from) == "[\"" &&
          cm.getRange(to, Pos(to.line, to.ch + 2)) != "\"]")
        after = "\"]";

      for (var i = 0; i < data.completions.length; ++i) {
        var completion = data.completions[i], className = typeToIcon(completion.type);
        if (data.guess) className += " " + cls + "guess";
        completions.push({text: completion.name + after,
                          displayText: completion.displayName || completion.name,
                          className: className,
                          data: completion});
      }

      var obj = {from: from, to: to, list: completions};
      var tooltip = null;
      CodeMirror.on(obj, "close", function() { remove(tooltip); });
      CodeMirror.on(obj, "update", function() { remove(tooltip); });
      CodeMirror.on(obj, "select", function(cur, node) {
        remove(tooltip);
        var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;
        if (content) {
          tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,
                                node.getBoundingClientRect().top + window.pageYOffset, content);
          tooltip.className += " " + cls + "hint-doc";
        }
      });
      c(obj);
    });
  }

  function typeToIcon(type) {
    var suffix;
    if (type == "?") suffix = "unknown";
    else if (type == "number" || type == "string" || type == "bool") suffix = type;
    else if (/^fn\(/.test(type)) suffix = "fn";
    else if (/^\[/.test(type)) suffix = "array";
    else suffix = "object";
    return cls + "completion " + cls + "completion-" + suffix;
  }

  // Type queries

  function showContextInfo(ts, cm, pos, queryName, c) {
    ts.request(cm, queryName, function(error, data) {
      if (error) return showError(ts, cm, error);
      if (ts.options.typeTip) {
        var tip = ts.options.typeTip(data);
      } else {
        var tip = elt("span", null, elt("strong", null, data.type || "not found"));
        if (data.doc)
          tip.appendChild(document.createTextNode(" — " + data.doc));
        if (data.url) {
          tip.appendChild(document.createTextNode(" "));
          var child = tip.appendChild(elt("a", null, "[docs]"));
          child.href = data.url;
          child.target = "_blank";
        }
      }
      tempTooltip(cm, tip, ts);
      if (c) c();
    }, pos);
  }

  // Maintaining argument hints

  function updateArgHints(ts, cm) {
    closeArgHints(ts);

    if (cm.somethingSelected()) return;
    var state = cm.getTokenAt(cm.getCursor()).state;
    var inner = CodeMirror.innerMode(cm.getMode(), state);
    if (inner.mode.name != "javascript") return;
    var lex = inner.state.lexical;
    if (lex.info != "call") return;

    var ch, argPos = lex.pos || 0, tabSize = cm.getOption("tabSize");
    for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {
      var str = cm.getLine(line), extra = 0;
      for (var pos = 0;;) {
        var tab = str.indexOf("\t", pos);
        if (tab == -1) break;
        extra += tabSize - (tab + extra) % tabSize - 1;
        pos = tab + 1;
      }
      ch = lex.column - extra;
      if (str.charAt(ch) == "(") {found = true; break;}
    }
    if (!found) return;

    var start = Pos(line, ch);
    var cache = ts.cachedArgHints;
    if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)
      return showArgHints(ts, cm, argPos);

    ts.request(cm, {type: "type", preferFunction: true, end: start}, function(error, data) {
      if (error || !data.type || !(/^fn\(/).test(data.type)) return;
      ts.cachedArgHints = {
        start: start,
        type: parseFnType(data.type),
        name: data.exprName || data.name || "fn",
        guess: data.guess,
        doc: cm.getDoc()
      };
      showArgHints(ts, cm, argPos);
    });
  }

  function showArgHints(ts, cm, pos) {
    closeArgHints(ts);

    var cache = ts.cachedArgHints, tp = cache.type;
    var tip = elt("span", cache.guess ? cls + "fhint-guess" : null,
                  elt("span", cls + "fname", cache.name), "(");
    for (var i = 0; i < tp.args.length; ++i) {
      if (i) tip.appendChild(document.createTextNode(", "));
      var arg = tp.args[i];
      tip.appendChild(elt("span", cls + "farg" + (i == pos ? " " + cls + "farg-current" : ""), arg.name || "?"));
      if (arg.type != "?") {
        tip.appendChild(document.createTextNode(":\u00a0"));
        tip.appendChild(elt("span", cls + "type", arg.type));
      }
    }
    tip.appendChild(document.createTextNode(tp.rettype ? ") ->\u00a0" : ")"));
    if (tp.rettype) tip.appendChild(elt("span", cls + "type", tp.rettype));
    var place = cm.cursorCoords(null, "page");
    var tooltip = ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip)
    setTimeout(function() {
      tooltip.clear = onEditorActivity(cm, function() {
        if (ts.activeArgHints == tooltip) closeArgHints(ts) })
    }, 20)
  }

  function parseFnType(text) {
    var args = [], pos = 3;

    function skipMatching(upto) {
      var depth = 0, start = pos;
      for (;;) {
        var next = text.charAt(pos);
        if (upto.test(next) && !depth) return text.slice(start, pos);
        if (/[{\[\(]/.test(next)) ++depth;
        else if (/[}\]\)]/.test(next)) --depth;
        ++pos;
      }
    }

    // Parse arguments
    if (text.charAt(pos) != ")") for (;;) {
      var name = text.slice(pos).match(/^([^, \(\[\{]+): /);
      if (name) {
        pos += name[0].length;
        name = name[1];
      }
      args.push({name: name, type: skipMatching(/[\),]/)});
      if (text.charAt(pos) == ")") break;
      pos += 2;
    }

    var rettype = text.slice(pos).match(/^\) -> (.*)$/);

    return {args: args, rettype: rettype && rettype[1]};
  }

  // Moving to the definition of something

  function jumpToDef(ts, cm) {
    function inner(varName) {
      var req = {type: "definition", variable: varName || null};
      var doc = findDoc(ts, cm.getDoc());
      ts.server.request(buildRequest(ts, doc, req), function(error, data) {
        if (error) return showError(ts, cm, error);
        if (!data.file && data.url) { window.open(data.url); return; }

        if (data.file) {
          var localDoc = ts.docs[data.file], found;
          if (localDoc && (found = findContext(localDoc.doc, data))) {
            ts.jumpStack.push({file: doc.name,
                               start: cm.getCursor("from"),
                               end: cm.getCursor("to")});
            moveTo(ts, doc, localDoc, found.start, found.end);
            return;
          }
        }
        showError(ts, cm, "Could not find a definition.");
      });
    }

    if (!atInterestingExpression(cm))
      dialog(cm, "Jump to variable", function(name) { if (name) inner(name); });
    else
      inner();
  }

  function jumpBack(ts, cm) {
    var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];
    if (!doc) return;
    moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);
  }

  function moveTo(ts, curDoc, doc, start, end) {
    doc.doc.setSelection(start, end);
    if (curDoc != doc && ts.options.switchToDoc) {
      closeArgHints(ts);
      ts.options.switchToDoc(doc.name, doc.doc);
    }
  }

  // The {line,ch} representation of positions makes this rather awkward.
  function findContext(doc, data) {
    var before = data.context.slice(0, data.contextOffset).split("\n");
    var startLine = data.start.line - (before.length - 1);
    var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);

    var text = doc.getLine(startLine).slice(start.ch);
    for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)
      text += "\n" + doc.getLine(cur);
    if (text.slice(0, data.context.length) == data.context) return data;

    var cursor = doc.getSearchCursor(data.context, 0, false);
    var nearest, nearestDist = Infinity;
    while (cursor.findNext()) {
      var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;
      if (!dist) dist = Math.abs(from.ch - start.ch);
      if (dist < nearestDist) { nearest = from; nearestDist = dist; }
    }
    if (!nearest) return null;

    if (before.length == 1)
      nearest.ch += before[0].length;
    else
      nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);
    if (data.start.line == data.end.line)
      var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));
    else
      var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);
    return {start: nearest, end: end};
  }

  function atInterestingExpression(cm) {
    var pos = cm.getCursor("end"), tok = cm.getTokenAt(pos);
    if (tok.start < pos.ch && tok.type == "comment") return false;
    return /[\w)\]]/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));
  }

  // Variable renaming

  function rename(ts, cm) {
    var token = cm.getTokenAt(cm.getCursor());
    if (!/\w/.test(token.string)) return showError(ts, cm, "Not at a variable");
    dialog(cm, "New name for " + token.string, function(newName) {
      ts.request(cm, {type: "rename", newName: newName, fullDocs: true}, function(error, data) {
        if (error) return showError(ts, cm, error);
        applyChanges(ts, data.changes);
      });
    });
  }

  function selectName(ts, cm) {
    var name = findDoc(ts, cm.doc).name;
    ts.request(cm, {type: "refs"}, function(error, data) {
      if (error) return showError(ts, cm, error);
      var ranges = [], cur = 0;
      var curPos = cm.getCursor();
      for (var i = 0; i < data.refs.length; i++) {
        var ref = data.refs[i];
        if (ref.file == name) {
          ranges.push({anchor: ref.start, head: ref.end});
          if (cmpPos(curPos, ref.start) >= 0 && cmpPos(curPos, ref.end) <= 0)
            cur = ranges.length - 1;
        }
      }
      cm.setSelections(ranges, cur);
    });
  }

  var nextChangeOrig = 0;
  function applyChanges(ts, changes) {
    var perFile = Object.create(null);
    for (var i = 0; i < changes.length; ++i) {
      var ch = changes[i];
      (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);
    }
    for (var file in perFile) {
      var known = ts.docs[file], chs = perFile[file];;
      if (!known) continue;
      chs.sort(function(a, b) { return cmpPos(b.start, a.start); });
      var origin = "*rename" + (++nextChangeOrig);
      for (var i = 0; i < chs.length; ++i) {
        var ch = chs[i];
        known.doc.replaceRange(ch.text, ch.start, ch.end, origin);
      }
    }
  }

  // Generic request-building helper

  function buildRequest(ts, doc, query, pos) {
    var files = [], offsetLines = 0, allowFragments = !query.fullDocs;
    if (!allowFragments) delete query.fullDocs;
    if (typeof query == "string") query = {type: query};
    query.lineCharPositions = true;
    if (query.end == null) {
      query.end = pos || doc.doc.getCursor("end");
      if (doc.doc.somethingSelected())
        query.start = doc.doc.getCursor("start");
    }
    var startPos = query.start || query.end;

    if (doc.changed) {
      if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&
          doc.changed.to - doc.changed.from < 100 &&
          doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {
        files.push(getFragmentAround(doc, startPos, query.end));
        query.file = "#0";
        var offsetLines = files[0].offsetLines;
        if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);
        query.end = Pos(query.end.line - offsetLines, query.end.ch);
      } else {
        files.push({type: "full",
                    name: doc.name,
                    text: docValue(ts, doc)});
        query.file = doc.name;
        doc.changed = null;
      }
    } else {
      query.file = doc.name;
    }
    for (var name in ts.docs) {
      var cur = ts.docs[name];
      if (cur.changed && cur != doc) {
        files.push({type: "full", name: cur.name, text: docValue(ts, cur)});
        cur.changed = null;
      }
    }

    return {query: query, files: files};
  }

  function getFragmentAround(data, start, end) {
    var doc = data.doc;
    var minIndent = null, minLine = null, endLine, tabSize = 4;
    for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {
      var line = doc.getLine(p), fn = line.search(/\bfunction\b/);
      if (fn < 0) continue;
      var indent = CodeMirror.countColumn(line, null, tabSize);
      if (minIndent != null && minIndent <= indent) continue;
      minIndent = indent;
      minLine = p;
    }
    if (minLine == null) minLine = min;
    var max = Math.min(doc.lastLine(), end.line + 20);
    if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))
      endLine = max;
    else for (endLine = end.line + 1; endLine < max; ++endLine) {
      var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);
      if (indent <= minIndent) break;
    }
    var from = Pos(minLine, 0);

    return {type: "part",
            name: data.name,
            offsetLines: from.line,
            text: doc.getRange(from, Pos(endLine, end.line == endLine ? null : 0))};
  }

  // Generic utilities

  var cmpPos = CodeMirror.cmpPos;

  function elt(tagname, cls /*, ... elts*/) {
    var e = document.createElement(tagname);
    if (cls) e.className = cls;
    for (var i = 2; i < arguments.length; ++i) {
      var elt = arguments[i];
      if (typeof elt == "string") elt = document.createTextNode(elt);
      e.appendChild(elt);
    }
    return e;
  }

  function dialog(cm, text, f) {
    if (cm.openDialog)
      cm.openDialog(text + ": <input type=text>", f);
    else
      f(prompt(text, ""));
  }

  // Tooltips

  function tempTooltip(cm, content, ts) {
    if (cm.state.ternTooltip) remove(cm.state.ternTooltip);
    var where = cm.cursorCoords();
    var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content);
    function maybeClear() {
      old = true;
      if (!mouseOnTip) clear();
    }
    function clear() {
      cm.state.ternTooltip = null;
      if (tip.parentNode) fadeOut(tip)
      clearActivity()
    }
    var mouseOnTip = false, old = false;
    CodeMirror.on(tip, "mousemove", function() { mouseOnTip = true; });
    CodeMirror.on(tip, "mouseout", function(e) {
      var related = e.relatedTarget || e.toElement
      if (!related || !CodeMirror.contains(tip, related)) {
        if (old) clear();
        else mouseOnTip = false;
      }
    });
    setTimeout(maybeClear, ts.options.hintDelay ? ts.options.hintDelay : 1700);
    var clearActivity = onEditorActivity(cm, clear)
  }

  function onEditorActivity(cm, f) {
    cm.on("cursorActivity", f)
    cm.on("blur", f)
    cm.on("scroll", f)
    cm.on("setDoc", f)
    return function() {
      cm.off("cursorActivity", f)
      cm.off("blur", f)
      cm.off("scroll", f)
      cm.off("setDoc", f)
    }
  }

  function makeTooltip(x, y, content) {
    var node = elt("div", cls + "tooltip", content);
    node.style.left = x + "px";
    node.style.top = y + "px";
    document.body.appendChild(node);
    return node;
  }

  function remove(node) {
    var p = node && node.parentNode;
    if (p) p.removeChild(node);
  }

  function fadeOut(tooltip) {
    tooltip.style.opacity = "0";
    setTimeout(function() { remove(tooltip); }, 1100);
  }

  function showError(ts, cm, msg) {
    if (ts.options.showError)
      ts.options.showError(cm, msg);
    else
      tempTooltip(cm, String(msg), ts);
  }

  function closeArgHints(ts) {
    if (ts.activeArgHints) {
      if (ts.activeArgHints.clear) ts.activeArgHints.clear()
      remove(ts.activeArgHints)
      ts.activeArgHints = null
    }
  }

  function docValue(ts, doc) {
    var val = doc.doc.getValue();
    if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);
    return val;
  }

  // Worker wrapper

  function WorkerServer(ts) {
    var worker = ts.worker = new Worker(ts.options.workerScript);
    worker.postMessage({type: "init",
                        defs: ts.options.defs,
                        plugins: ts.options.plugins,
                        scripts: ts.options.workerDeps});
    var msgId = 0, pending = {};

    function send(data, c) {
      if (c) {
        data.id = ++msgId;
        pending[msgId] = c;
      }
      worker.postMessage(data);
    }
    worker.onmessage = function(e) {
      var data = e.data;
      if (data.type == "getFile") {
        getFile(ts, data.name, function(err, text) {
          send({type: "getFile", err: String(err), text: text, id: data.id});
        });
      } else if (data.type == "debug") {
        window.console.log(data.message);
      } else if (data.id && pending[data.id]) {
        pending[data.id](data.err, data.body);
        delete pending[data.id];
      }
    };
    worker.onerror = function(e) {
      for (var id in pending) pending[id](e);
      pending = {};
    };

    this.addFile = function(name, text) { send({type: "add", name: name, text: text}); };
    this.delFile = function(name) { send({type: "del", name: name}); };
    this.request = function(body, c) { send({type: "req", body: body}, c); };
  }
});
editors/codemirror/addon/tern/tern.css000064400000003520152177723720014116 0ustar00.CodeMirror-Tern-completion {
  padding-left: 22px;
  position: relative;
  line-height: 1.5;
}
.CodeMirror-Tern-completion:before {
  position: absolute;
  left: 2px;
  bottom: 2px;
  border-radius: 50%;
  font-size: 12px;
  font-weight: bold;
  height: 15px;
  width: 15px;
  line-height: 16px;
  text-align: center;
  color: white;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.CodeMirror-Tern-completion-unknown:before {
  content: "?";
  background: #4bb;
}
.CodeMirror-Tern-completion-object:before {
  content: "O";
  background: #77c;
}
.CodeMirror-Tern-completion-fn:before {
  content: "F";
  background: #7c7;
}
.CodeMirror-Tern-completion-array:before {
  content: "A";
  background: #c66;
}
.CodeMirror-Tern-completion-number:before {
  content: "1";
  background: #999;
}
.CodeMirror-Tern-completion-string:before {
  content: "S";
  background: #999;
}
.CodeMirror-Tern-completion-bool:before {
  content: "B";
  background: #999;
}

.CodeMirror-Tern-completion-guess {
  color: #999;
}

.CodeMirror-Tern-tooltip {
  border: 1px solid silver;
  border-radius: 3px;
  color: #444;
  padding: 2px 5px;
  font-size: 90%;
  font-family: monospace;
  background-color: white;
  white-space: pre-wrap;

  max-width: 40em;
  position: absolute;
  z-index: 10;
  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
  box-shadow: 2px 3px 5px rgba(0,0,0,.2);

  transition: opacity 1s;
  -moz-transition: opacity 1s;
  -webkit-transition: opacity 1s;
  -o-transition: opacity 1s;
  -ms-transition: opacity 1s;
}

.CodeMirror-Tern-hint-doc {
  max-width: 25em;
  margin-top: -3px;
}

.CodeMirror-Tern-fname { color: black; }
.CodeMirror-Tern-farg { color: #70a; }
.CodeMirror-Tern-farg-current { text-decoration: underline; }
.CodeMirror-Tern-type { color: #07c; }
.CodeMirror-Tern-fhint-guess { opacity: .7; }
editors/codemirror/addon/tern/worker.js000064400000002271152177723720014305 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// declare global: tern, server

var server;

this.onmessage = function(e) {
  var data = e.data;
  switch (data.type) {
  case "init": return startServer(data.defs, data.plugins, data.scripts);
  case "add": return server.addFile(data.name, data.text);
  case "del": return server.delFile(data.name);
  case "req": return server.request(data.body, function(err, reqData) {
    postMessage({id: data.id, body: reqData, err: err && String(err)});
  });
  case "getFile":
    var c = pending[data.id];
    delete pending[data.id];
    return c(data.err, data.text);
  default: throw new Error("Unknown message type: " + data.type);
  }
};

var nextId = 0, pending = {};
function getFile(file, c) {
  postMessage({type: "getFile", name: file, id: ++nextId});
  pending[nextId] = c;
}

function startServer(defs, plugins, scripts) {
  if (scripts) importScripts.apply(null, scripts);

  server = new tern.Server({
    getFile: getFile,
    async: true,
    defs: defs,
    plugins: plugins
  });
}

this.console = {
  log: function(v) { postMessage({type: "debug", message: v}); }
};
editors/codemirror/addon/tern/tern.min.css000064400000003050152177723720014676 0ustar00.CodeMirror-Tern-completion{padding-left:22px;position:relative;line-height:1.5}.CodeMirror-Tern-completion:before{position:absolute;left:2px;bottom:2px;border-radius:50%;font-size:12px;font-weight:700;height:15px;width:15px;line-height:16px;text-align:center;color:#fff;-moz-box-sizing:border-box;box-sizing:border-box}.CodeMirror-Tern-completion-unknown:before{content:"?";background:#4bb}.CodeMirror-Tern-completion-object:before{content:"O";background:#77c}.CodeMirror-Tern-completion-fn:before{content:"F";background:#7c7}.CodeMirror-Tern-completion-array:before{content:"A";background:#c66}.CodeMirror-Tern-completion-number:before{content:"1";background:#999}.CodeMirror-Tern-completion-string:before{content:"S";background:#999}.CodeMirror-Tern-completion-bool:before{content:"B";background:#999}.CodeMirror-Tern-completion-guess{color:#999}.CodeMirror-Tern-tooltip{border:1px solid silver;border-radius:3px;color:#444;padding:2px 5px;font-size:90%;font-family:monospace;background-color:#fff;white-space:pre-wrap;max-width:40em;position:absolute;z-index:10;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px rgba(0,0,0,.2);transition:opacity 1s;-moz-transition:opacity 1s;-webkit-transition:opacity 1s;-o-transition:opacity 1s;-ms-transition:opacity 1s}.CodeMirror-Tern-hint-doc{max-width:25em;margin-top:-3px}.CodeMirror-Tern-fname{color:#000}.CodeMirror-Tern-farg{color:#70a}.CodeMirror-Tern-farg-current{text-decoration:underline}.CodeMirror-Tern-type{color:#07c}.CodeMirror-Tern-fhint-guess{opacity:.7}editors/codemirror/addon/tern/worker.min.js000064400000001372152177723720015070 0ustar00function getFile(a,b){postMessage({type:"getFile",name:a,id:++nextId}),pending[nextId]=b}function startServer(a,b,c){c&&importScripts.apply(null,c),server=new tern.Server({getFile:getFile,async:!0,defs:a,plugins:b})}var server;this.onmessage=function(a){var b=a.data;switch(b.type){case"init":return startServer(b.defs,b.plugins,b.scripts);case"add":return server.addFile(b.name,b.text);case"del":return server.delFile(b.name);case"req":return server.request(b.body,(function(a,c){postMessage({id:b.id,body:c,err:a&&String(a)})}));case"getFile":var c=pending[b.id];return delete pending[b.id],c(b.err,b.text);default:throw new Error("Unknown message type: "+b.type)}};var nextId=0,pending={};this.console={log:function(a){postMessage({type:"debug",message:a})}};editors/codemirror/addon/fold/foldcode.js000064400000011317152177723720014530 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function doFold(cm, pos, options, force) {
    if (options && options.call) {
      var finder = options;
      options = null;
    } else {
      var finder = getOption(cm, options, "rangeFinder");
    }
    if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0);
    var minSize = getOption(cm, options, "minFoldSize");

    function getRange(allowFolded) {
      var range = finder(cm, pos);
      if (!range || range.to.line - range.from.line < minSize) return null;
      var marks = cm.findMarksAt(range.from);
      for (var i = 0; i < marks.length; ++i) {
        if (marks[i].__isFold && force !== "fold") {
          if (!allowFolded) return null;
          range.cleared = true;
          marks[i].clear();
        }
      }
      return range;
    }

    var range = getRange(true);
    if (getOption(cm, options, "scanUp")) while (!range && pos.line > cm.firstLine()) {
      pos = CodeMirror.Pos(pos.line - 1, 0);
      range = getRange(false);
    }
    if (!range || range.cleared || force === "unfold") return;

    var myWidget = makeWidget(cm, options);
    CodeMirror.on(myWidget, "mousedown", function(e) {
      myRange.clear();
      CodeMirror.e_preventDefault(e);
    });
    var myRange = cm.markText(range.from, range.to, {
      replacedWith: myWidget,
      clearOnEnter: getOption(cm, options, "clearOnEnter"),
      __isFold: true
    });
    myRange.on("clear", function(from, to) {
      CodeMirror.signal(cm, "unfold", cm, from, to);
    });
    CodeMirror.signal(cm, "fold", cm, range.from, range.to);
  }

  function makeWidget(cm, options) {
    var widget = getOption(cm, options, "widget");
    if (typeof widget == "string") {
      var text = document.createTextNode(widget);
      widget = document.createElement("span");
      widget.appendChild(text);
      widget.className = "CodeMirror-foldmarker";
    } else if (widget) {
      widget = widget.cloneNode(true)
    }
    return widget;
  }

  // Clumsy backwards-compatible interface
  CodeMirror.newFoldFunction = function(rangeFinder, widget) {
    return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };
  };

  // New-style interface
  CodeMirror.defineExtension("foldCode", function(pos, options, force) {
    doFold(this, pos, options, force);
  });

  CodeMirror.defineExtension("isFolded", function(pos) {
    var marks = this.findMarksAt(pos);
    for (var i = 0; i < marks.length; ++i)
      if (marks[i].__isFold) return true;
  });

  CodeMirror.commands.toggleFold = function(cm) {
    cm.foldCode(cm.getCursor());
  };
  CodeMirror.commands.fold = function(cm) {
    cm.foldCode(cm.getCursor(), null, "fold");
  };
  CodeMirror.commands.unfold = function(cm) {
    cm.foldCode(cm.getCursor(), null, "unfold");
  };
  CodeMirror.commands.foldAll = function(cm) {
    cm.operation(function() {
      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
        cm.foldCode(CodeMirror.Pos(i, 0), null, "fold");
    });
  };
  CodeMirror.commands.unfoldAll = function(cm) {
    cm.operation(function() {
      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
        cm.foldCode(CodeMirror.Pos(i, 0), null, "unfold");
    });
  };

  CodeMirror.registerHelper("fold", "combine", function() {
    var funcs = Array.prototype.slice.call(arguments, 0);
    return function(cm, start) {
      for (var i = 0; i < funcs.length; ++i) {
        var found = funcs[i](cm, start);
        if (found) return found;
      }
    };
  });

  CodeMirror.registerHelper("fold", "auto", function(cm, start) {
    var helpers = cm.getHelpers(start, "fold");
    for (var i = 0; i < helpers.length; i++) {
      var cur = helpers[i](cm, start);
      if (cur) return cur;
    }
  });

  var defaultOptions = {
    rangeFinder: CodeMirror.fold.auto,
    widget: "\u2194",
    minFoldSize: 0,
    scanUp: false,
    clearOnEnter: true
  };

  CodeMirror.defineOption("foldOptions", null);

  function getOption(cm, options, name) {
    if (options && options[name] !== undefined)
      return options[name];
    var editorOptions = cm.options.foldOptions;
    if (editorOptions && editorOptions[name] !== undefined)
      return editorOptions[name];
    return defaultOptions[name];
  }

  CodeMirror.defineExtension("foldOption", function(options, name) {
    return getOption(this, options, name);
  });
});
editors/codemirror/addon/fold/foldgutter.js000064400000011030152177723720015120 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./foldcode"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./foldcode"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("foldGutter", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.clearGutter(cm.state.foldGutter.options.gutter);
      cm.state.foldGutter = null;
      cm.off("gutterClick", onGutterClick);
      cm.off("change", onChange);
      cm.off("viewportChange", onViewportChange);
      cm.off("fold", onFold);
      cm.off("unfold", onFold);
      cm.off("swapDoc", onChange);
    }
    if (val) {
      cm.state.foldGutter = new State(parseOptions(val));
      updateInViewport(cm);
      cm.on("gutterClick", onGutterClick);
      cm.on("change", onChange);
      cm.on("viewportChange", onViewportChange);
      cm.on("fold", onFold);
      cm.on("unfold", onFold);
      cm.on("swapDoc", onChange);
    }
  });

  var Pos = CodeMirror.Pos;

  function State(options) {
    this.options = options;
    this.from = this.to = 0;
  }

  function parseOptions(opts) {
    if (opts === true) opts = {};
    if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter";
    if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open";
    if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded";
    return opts;
  }

  function isFolded(cm, line) {
    var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));
    for (var i = 0; i < marks.length; ++i)
      if (marks[i].__isFold && marks[i].find().from.line == line) return marks[i];
  }

  function marker(spec) {
    if (typeof spec == "string") {
      var elt = document.createElement("div");
      elt.className = spec + " CodeMirror-guttermarker-subtle";
      return elt;
    } else {
      return spec.cloneNode(true);
    }
  }

  function updateFoldInfo(cm, from, to) {
    var opts = cm.state.foldGutter.options, cur = from;
    var minSize = cm.foldOption(opts, "minFoldSize");
    var func = cm.foldOption(opts, "rangeFinder");
    cm.eachLine(from, to, function(line) {
      var mark = null;
      if (isFolded(cm, cur)) {
        mark = marker(opts.indicatorFolded);
      } else {
        var pos = Pos(cur, 0);
        var range = func && func(cm, pos);
        if (range && range.to.line - range.from.line >= minSize)
          mark = marker(opts.indicatorOpen);
      }
      cm.setGutterMarker(line, opts.gutter, mark);
      ++cur;
    });
  }

  function updateInViewport(cm) {
    var vp = cm.getViewport(), state = cm.state.foldGutter;
    if (!state) return;
    cm.operation(function() {
      updateFoldInfo(cm, vp.from, vp.to);
    });
    state.from = vp.from; state.to = vp.to;
  }

  function onGutterClick(cm, line, gutter) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    if (gutter != opts.gutter) return;
    var folded = isFolded(cm, line);
    if (folded) folded.clear();
    else cm.foldCode(Pos(line, 0), opts.rangeFinder);
  }

  function onChange(cm) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    state.from = state.to = 0;
    clearTimeout(state.changeUpdate);
    state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);
  }

  function onViewportChange(cm) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var opts = state.options;
    clearTimeout(state.changeUpdate);
    state.changeUpdate = setTimeout(function() {
      var vp = cm.getViewport();
      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
        updateInViewport(cm);
      } else {
        cm.operation(function() {
          if (vp.from < state.from) {
            updateFoldInfo(cm, vp.from, state.from);
            state.from = vp.from;
          }
          if (vp.to > state.to) {
            updateFoldInfo(cm, state.to, vp.to);
            state.to = vp.to;
          }
        });
      }
    }, opts.updateViewportTimeSpan || 400);
  }

  function onFold(cm, from) {
    var state = cm.state.foldGutter;
    if (!state) return;
    var line = from.line;
    if (line >= state.from && line < state.to)
      updateFoldInfo(cm, line, line + 1);
  }
});
editors/codemirror/addon/fold/indent-fold.min.js000064400000001221152177723720015727 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,c){var d=b.getLine(c),e=d.search(/\S/);return e==-1||/\bcomment\b/.test(b.getTokenTypeAt(a.Pos(c,e+1)))?-1:a.countColumn(d,null,b.getOption("tabSize"))}a.registerHelper("fold","indent",(function(c,d){var e=b(c,d.line);if(!(e<0)){for(var f=null,g=d.line+1,h=c.lastLine();g<=h;++g){var i=b(c,g);if(i==-1);else{if(!(i>e))break;f=g}}return f?{from:a.Pos(d.line,c.getLine(d.line).length),to:a.Pos(f,c.getLine(f).length)}:void 0}}))}));editors/codemirror/addon/fold/comment-fold.js000064400000004162152177723720015335 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerGlobalHelper("fold", "comment", function(mode) {
  return mode.blockCommentStart && mode.blockCommentEnd;
}, function(cm, start) {
  var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
  if (!startToken || !endToken) return;
  var line = start.line, lineText = cm.getLine(line);

  var startCh;
  for (var at = start.ch, pass = 0;;) {
    var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
    if (found == -1) {
      if (pass == 1) return;
      pass = 1;
      at = lineText.length;
      continue;
    }
    if (pass == 1 && found < start.ch) return;
    if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&
        (found == 0 || lineText.slice(found - endToken.length, found) == endToken ||
         !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {
      startCh = found + startToken.length;
      break;
    }
    at = found - 1;
  }

  var depth = 1, lastLine = cm.lastLine(), end, endCh;
  outer: for (var i = line; i <= lastLine; ++i) {
    var text = cm.getLine(i), pos = i == line ? startCh : 0;
    for (;;) {
      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
      if (nextOpen < 0) nextOpen = text.length;
      if (nextClose < 0) nextClose = text.length;
      pos = Math.min(nextOpen, nextClose);
      if (pos == text.length) break;
      if (pos == nextOpen) ++depth;
      else if (!--depth) { end = i; endCh = pos; break outer; }
      ++pos;
    }
  }
  if (end == null || line == end && endCh == startCh) return;
  return {from: CodeMirror.Pos(line, startCh),
          to: CodeMirror.Pos(end, endCh)};
});

});
editors/codemirror/addon/fold/indent-fold.js000064400000003212152177723720015147 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

function lineIndent(cm, lineNo) {
  var text = cm.getLine(lineNo)
  var spaceTo = text.search(/\S/)
  if (spaceTo == -1 || /\bcomment\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))
    return -1
  return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
}

CodeMirror.registerHelper("fold", "indent", function(cm, start) {
  var myIndent = lineIndent(cm, start.line)
  if (myIndent < 0) return
  var lastLineInFold = null

  // Go through lines until we find a line that definitely doesn't belong in
  // the block we're folding, or to the end.
  for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
    var indent = lineIndent(cm, i)
    if (indent == -1) {
    } else if (indent > myIndent) {
      // Lines with a greater indent are considered part of the block.
      lastLineInFold = i;
    } else {
      // If this line has non-space, non-comment content, and is
      // indented less or equal to the start line, it is the start of
      // another block.
      break;
    }
  }
  if (lastLineInFold) return {
    from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),
    to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
  };
});

});
editors/codemirror/addon/fold/brace-fold.js000064400000007544152177723720014756 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("fold", "brace", function(cm, start) {
  var line = start.line, lineText = cm.getLine(line);
  var tokenType;

  function findOpening(openCh) {
    for (var at = start.ch, pass = 0;;) {
      var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);
      if (found == -1) {
        if (pass == 1) break;
        pass = 1;
        at = lineText.length;
        continue;
      }
      if (pass == 1 && found < start.ch) break;
      tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));
      if (!/^(comment|string)/.test(tokenType)) return found + 1;
      at = found - 1;
    }
  }

  var startToken = "{", endToken = "}", startCh = findOpening("{");
  if (startCh == null) {
    startToken = "[", endToken = "]";
    startCh = findOpening("[");
  }

  if (startCh == null) return;
  var count = 1, lastLine = cm.lastLine(), end, endCh;
  outer: for (var i = line; i <= lastLine; ++i) {
    var text = cm.getLine(i), pos = i == line ? startCh : 0;
    for (;;) {
      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
      if (nextOpen < 0) nextOpen = text.length;
      if (nextClose < 0) nextClose = text.length;
      pos = Math.min(nextOpen, nextClose);
      if (pos == text.length) break;
      if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {
        if (pos == nextOpen) ++count;
        else if (!--count) { end = i; endCh = pos; break outer; }
      }
      ++pos;
    }
  }
  if (end == null || line == end && endCh == startCh) return;
  return {from: CodeMirror.Pos(line, startCh),
          to: CodeMirror.Pos(end, endCh)};
});

CodeMirror.registerHelper("fold", "import", function(cm, start) {
  function hasImport(line) {
    if (line < cm.firstLine() || line > cm.lastLine()) return null;
    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
    if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
    if (start.type != "keyword" || start.string != "import") return null;
    // Now find closing semicolon, return its position
    for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {
      var text = cm.getLine(i), semi = text.indexOf(";");
      if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};
    }
  }

  var startLine = start.line, has = hasImport(startLine), prev;
  if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))
    return null;
  for (var end = has.end;;) {
    var next = hasImport(end.line + 1);
    if (next == null) break;
    end = next.end;
  }
  return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};
});

CodeMirror.registerHelper("fold", "include", function(cm, start) {
  function hasInclude(line) {
    if (line < cm.firstLine() || line > cm.lastLine()) return null;
    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));
    if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));
    if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8;
  }

  var startLine = start.line, has = hasInclude(startLine);
  if (has == null || hasInclude(startLine - 1) != null) return null;
  for (var end = startLine;;) {
    var next = hasInclude(end + 1);
    if (next == null) break;
    ++end;
  }
  return {from: CodeMirror.Pos(startLine, has + 1),
          to: cm.clipPos(CodeMirror.Pos(end))};
});

});
editors/codemirror/addon/fold/xml-fold.js000064400000015054152177723720014475 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var Pos = CodeMirror.Pos;
  function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }

  var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
  var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
  var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g");

  function Iter(cm, line, ch, range) {
    this.line = line; this.ch = ch;
    this.cm = cm; this.text = cm.getLine(line);
    this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine();
    this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine();
  }

  function tagAt(iter, ch) {
    var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));
    return type && /\btag\b/.test(type);
  }

  function nextLine(iter) {
    if (iter.line >= iter.max) return;
    iter.ch = 0;
    iter.text = iter.cm.getLine(++iter.line);
    return true;
  }
  function prevLine(iter) {
    if (iter.line <= iter.min) return;
    iter.text = iter.cm.getLine(--iter.line);
    iter.ch = iter.text.length;
    return true;
  }

  function toTagEnd(iter) {
    for (;;) {
      var gt = iter.text.indexOf(">", iter.ch);
      if (gt == -1) { if (nextLine(iter)) continue; else return; }
      if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }
      var lastSlash = iter.text.lastIndexOf("/", gt);
      var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
      iter.ch = gt + 1;
      return selfClose ? "selfClose" : "regular";
    }
  }
  function toTagStart(iter) {
    for (;;) {
      var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1;
      if (lt == -1) { if (prevLine(iter)) continue; else return; }
      if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }
      xmlTagStart.lastIndex = lt;
      iter.ch = lt;
      var match = xmlTagStart.exec(iter.text);
      if (match && match.index == lt) return match;
    }
  }

  function toNextTag(iter) {
    for (;;) {
      xmlTagStart.lastIndex = iter.ch;
      var found = xmlTagStart.exec(iter.text);
      if (!found) { if (nextLine(iter)) continue; else return; }
      if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }
      iter.ch = found.index + found[0].length;
      return found;
    }
  }
  function toPrevTag(iter) {
    for (;;) {
      var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1;
      if (gt == -1) { if (prevLine(iter)) continue; else return; }
      if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }
      var lastSlash = iter.text.lastIndexOf("/", gt);
      var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt));
      iter.ch = gt + 1;
      return selfClose ? "selfClose" : "regular";
    }
  }

  function findMatchingClose(iter, tag) {
    var stack = [];
    for (;;) {
      var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);
      if (!next || !(end = toTagEnd(iter))) return;
      if (end == "selfClose") continue;
      if (next[1]) { // closing tag
        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {
          stack.length = i;
          break;
        }
        if (i < 0 && (!tag || tag == next[2])) return {
          tag: next[2],
          from: Pos(startLine, startCh),
          to: Pos(iter.line, iter.ch)
        };
      } else { // opening tag
        stack.push(next[2]);
      }
    }
  }
  function findMatchingOpen(iter, tag) {
    var stack = [];
    for (;;) {
      var prev = toPrevTag(iter);
      if (!prev) return;
      if (prev == "selfClose") { toTagStart(iter); continue; }
      var endLine = iter.line, endCh = iter.ch;
      var start = toTagStart(iter);
      if (!start) return;
      if (start[1]) { // closing tag
        stack.push(start[2]);
      } else { // opening tag
        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {
          stack.length = i;
          break;
        }
        if (i < 0 && (!tag || tag == start[2])) return {
          tag: start[2],
          from: Pos(iter.line, iter.ch),
          to: Pos(endLine, endCh)
        };
      }
    }
  }

  CodeMirror.registerHelper("fold", "xml", function(cm, start) {
    var iter = new Iter(cm, start.line, 0);
    for (;;) {
      var openTag = toNextTag(iter)
      if (!openTag || iter.line != start.line) return
      var end = toTagEnd(iter)
      if (!end) return
      if (!openTag[1] && end != "selfClose") {
        var startPos = Pos(iter.line, iter.ch);
        var endPos = findMatchingClose(iter, openTag[2]);
        return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null
      }
    }
  });
  CodeMirror.findMatchingTag = function(cm, pos, range) {
    var iter = new Iter(cm, pos.line, pos.ch, range);
    if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return;
    var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);
    var start = end && toTagStart(iter);
    if (!end || !start || cmp(iter, pos) > 0) return;
    var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};
    if (end == "selfClose") return {open: here, close: null, at: "open"};

    if (start[1]) { // closing tag
      return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"};
    } else { // opening tag
      iter = new Iter(cm, to.line, to.ch, range);
      return {open: here, close: findMatchingClose(iter, start[2]), at: "open"};
    }
  };

  CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {
    var iter = new Iter(cm, pos.line, pos.ch, range);
    for (;;) {
      var open = findMatchingOpen(iter, tag);
      if (!open) break;
      var forward = new Iter(cm, pos.line, pos.ch, range);
      var close = findMatchingClose(forward, open.tag);
      if (close) return {open: open, close: close};
    }
  };

  // Used by addon/edit/closetag.js
  CodeMirror.scanForClosingTag = function(cm, pos, name, end) {
    var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);
    return findMatchingClose(iter, name);
  };
});
editors/codemirror/addon/fold/brace-fold.min.js000064400000003612152177723720015530 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("fold","brace",(function(b,c){function d(d){for(var h=c.ch,i=0;;){var j=h<=0?-1:g.lastIndexOf(d,h-1);if(j!=-1){if(1==i&&j<c.ch)break;if(e=b.getTokenTypeAt(a.Pos(f,j+1)),!/^(comment|string)/.test(e))return j+1;h=j-1}else{if(1==i)break;i=1,h=g.length}}}var e,f=c.line,g=b.getLine(f),h="{",i="}",j=d("{");if(null==j&&(h="[",i="]",j=d("[")),null!=j){var k,l,m=1,n=b.lastLine();a:for(var o=f;o<=n;++o)for(var p=b.getLine(o),q=o==f?j:0;;){var r=p.indexOf(h,q),s=p.indexOf(i,q);if(r<0&&(r=p.length),s<0&&(s=p.length),q=Math.min(r,s),q==p.length)break;if(b.getTokenTypeAt(a.Pos(o,q+1))==e)if(q==r)++m;else if(!--m){k=o,l=q;break a}++q}if(null!=k&&(f!=k||l!=j))return{from:a.Pos(f,j),to:a.Pos(k,l)}}})),a.registerHelper("fold","import",(function(b,c){function d(c){if(c<b.firstLine()||c>b.lastLine())return null;var d=b.getTokenAt(a.Pos(c,1));if(/\S/.test(d.string)||(d=b.getTokenAt(a.Pos(c,d.end+1))),"keyword"!=d.type||"import"!=d.string)return null;for(var e=c,f=Math.min(b.lastLine(),c+10);e<=f;++e){var g=b.getLine(e),h=g.indexOf(";");if(h!=-1)return{startCh:d.end,end:a.Pos(e,h)}}}var e,f=c.line,g=d(f);if(!g||d(f-1)||(e=d(f-2))&&e.end.line==f-1)return null;for(var h=g.end;;){var i=d(h.line+1);if(null==i)break;h=i.end}return{from:b.clipPos(a.Pos(f,g.startCh+1)),to:h}})),a.registerHelper("fold","include",(function(b,c){function d(c){if(c<b.firstLine()||c>b.lastLine())return null;var d=b.getTokenAt(a.Pos(c,1));return/\S/.test(d.string)||(d=b.getTokenAt(a.Pos(c,d.end+1))),"meta"==d.type&&"#include"==d.string.slice(0,8)?d.start+8:void 0}var e=c.line,f=d(e);if(null==f||null!=d(e-1))return null;for(var g=e;;){var h=d(g+1);if(null==h)break;++g}return{from:a.Pos(e,f+1),to:b.clipPos(a.Pos(g))}}))}));editors/codemirror/addon/fold/xml-fold.min.js000064400000006306152177723720015257 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){return a.line-b.line||a.ch-b.ch}function c(a,b,c,d){this.line=b,this.ch=c,this.cm=a,this.text=a.getLine(b),this.min=d?Math.max(d.from,a.firstLine()):a.firstLine(),this.max=d?Math.min(d.to-1,a.lastLine()):a.lastLine()}function d(a,b){var c=a.cm.getTokenTypeAt(m(a.line,b));return c&&/\btag\b/.test(c)}function e(a){if(!(a.line>=a.max))return a.ch=0,a.text=a.cm.getLine(++a.line),!0}function f(a){if(!(a.line<=a.min))return a.text=a.cm.getLine(--a.line),a.ch=a.text.length,!0}function g(a){for(;;){var b=a.text.indexOf(">",a.ch);if(b==-1){if(e(a))continue;return}{if(d(a,b+1)){var c=a.text.lastIndexOf("/",b),f=c>-1&&!/\S/.test(a.text.slice(c+1,b));return a.ch=b+1,f?"selfClose":"regular"}a.ch=b+1}}}function h(a){for(;;){var b=a.ch?a.text.lastIndexOf("<",a.ch-1):-1;if(b==-1){if(f(a))continue;return}if(d(a,b+1)){p.lastIndex=b,a.ch=b;var c=p.exec(a.text);if(c&&c.index==b)return c}else a.ch=b}}function i(a){for(;;){p.lastIndex=a.ch;var b=p.exec(a.text);if(!b){if(e(a))continue;return}{if(d(a,b.index+1))return a.ch=b.index+b[0].length,b;a.ch=b.index+1}}}function j(a){for(;;){var b=a.ch?a.text.lastIndexOf(">",a.ch-1):-1;if(b==-1){if(f(a))continue;return}{if(d(a,b+1)){var c=a.text.lastIndexOf("/",b),e=c>-1&&!/\S/.test(a.text.slice(c+1,b));return a.ch=b+1,e?"selfClose":"regular"}a.ch=b}}}function k(a,b){for(var c=[];;){var d,e=i(a),f=a.line,h=a.ch-(e?e[0].length:0);if(!e||!(d=g(a)))return;if("selfClose"!=d)if(e[1]){for(var j=c.length-1;j>=0;--j)if(c[j]==e[2]){c.length=j;break}if(j<0&&(!b||b==e[2]))return{tag:e[2],from:m(f,h),to:m(a.line,a.ch)}}else c.push(e[2])}}function l(a,b){for(var c=[];;){var d=j(a);if(!d)return;if("selfClose"!=d){var e=a.line,f=a.ch,g=h(a);if(!g)return;if(g[1])c.push(g[2]);else{for(var i=c.length-1;i>=0;--i)if(c[i]==g[2]){c.length=i;break}if(i<0&&(!b||b==g[2]))return{tag:g[2],from:m(a.line,a.ch),to:m(e,f)}}}else h(a)}}var m=a.Pos,n="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",o=n+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",p=new RegExp("<(/?)(["+n+"]["+o+"]*)","g");a.registerHelper("fold","xml",(function(a,d){for(var e=new c(a,d.line,0);;){var f=i(e);if(!f||e.line!=d.line)return;var h=g(e);if(!h)return;if(!f[1]&&"selfClose"!=h){var j=m(e.line,e.ch),l=k(e,f[2]);return l&&b(l.from,j)>0?{from:j,to:l.from}:null}}})),a.findMatchingTag=function(a,d,e){var f=new c(a,d.line,d.ch,e);if(f.text.indexOf(">")!=-1||f.text.indexOf("<")!=-1){var i=g(f),j=i&&m(f.line,f.ch),n=i&&h(f);if(i&&n&&!(b(f,d)>0)){var o={from:m(f.line,f.ch),to:j,tag:n[2]};return"selfClose"==i?{open:o,close:null,at:"open"}:n[1]?{open:l(f,n[2]),close:o,at:"close"}:(f=new c(a,j.line,j.ch,e),{open:o,close:k(f,n[2]),at:"open"})}}},a.findEnclosingTag=function(a,b,d,e){for(var f=new c(a,b.line,b.ch,d);;){var g=l(f,e);if(!g)break;var h=new c(a,b.line,b.ch,d),i=k(h,g.tag);if(i)return{open:g,close:i}}},a.scanForClosingTag=function(a,b,d,e){var f=new c(a,b.line,b.ch,e?{from:0,to:e}:null);return k(f,d)}}));editors/codemirror/addon/fold/foldgutter.min.css000064400000000567152177723720016073 0ustar00.CodeMirror-foldmarker{color:#00f;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}editors/codemirror/addon/fold/markdown-fold.min.js000064400000001317152177723720016276 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("fold","markdown",(function(b,c){function d(c){var d=b.getTokenTypeAt(a.Pos(c,0));return d&&/\bheader\b/.test(d)}function e(a,b,c){var e=b&&b.match(/^#+/);return e&&d(a)?e[0].length:(e=c&&c.match(/^[=\-]+\s*$/),e&&d(a+1)?"="==c[0]?1:2:f)}var f=100,g=b.getLine(c.line),h=b.getLine(c.line+1),i=e(c.line,g,h);if(i!==f){for(var j=b.lastLine(),k=c.line,l=b.getLine(k+2);k<j&&!(e(k+1,h,l)<=i);)++k,h=l,l=b.getLine(k+2);return{from:a.Pos(c.line,g.length),to:a.Pos(k,b.getLine(k).length)}}}))}));editors/codemirror/addon/fold/foldcode.min.js000064400000004743152177723720015317 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,e,f,g){function h(a){var c=i(b,e);if(!c||c.to.line-c.from.line<j)return null;for(var d=b.findMarksAt(c.from),f=0;f<d.length;++f)if(d[f].__isFold&&"fold"!==g){if(!a)return null;c.cleared=!0,d[f].clear()}return c}if(f&&f.call){var i=f;f=null}else var i=d(b,f,"rangeFinder");"number"==typeof e&&(e=a.Pos(e,0));var j=d(b,f,"minFoldSize"),k=h(!0);if(d(b,f,"scanUp"))for(;!k&&e.line>b.firstLine();)e=a.Pos(e.line-1,0),k=h(!1);if(k&&!k.cleared&&"unfold"!==g){var l=c(b,f);a.on(l,"mousedown",(function(b){m.clear(),a.e_preventDefault(b)}));var m=b.markText(k.from,k.to,{replacedWith:l,clearOnEnter:d(b,f,"clearOnEnter"),__isFold:!0});m.on("clear",(function(c,d){a.signal(b,"unfold",b,c,d)})),a.signal(b,"fold",b,k.from,k.to)}}function c(a,b){var c=d(a,b,"widget");if("string"==typeof c){var e=document.createTextNode(c);c=document.createElement("span"),c.appendChild(e),c.className="CodeMirror-foldmarker"}else c&&(c=c.cloneNode(!0));return c}function d(a,b,c){if(b&&void 0!==b[c])return b[c];var d=a.options.foldOptions;return d&&void 0!==d[c]?d[c]:e[c]}a.newFoldFunction=function(a,c){return function(d,e){b(d,e,{rangeFinder:a,widget:c})}},a.defineExtension("foldCode",(function(a,c,d){b(this,a,c,d)})),a.defineExtension("isFolded",(function(a){for(var b=this.findMarksAt(a),c=0;c<b.length;++c)if(b[c].__isFold)return!0})),a.commands.toggleFold=function(a){a.foldCode(a.getCursor())},a.commands.fold=function(a){a.foldCode(a.getCursor(),null,"fold")},a.commands.unfold=function(a){a.foldCode(a.getCursor(),null,"unfold")},a.commands.foldAll=function(b){b.operation((function(){for(var c=b.firstLine(),d=b.lastLine();c<=d;c++)b.foldCode(a.Pos(c,0),null,"fold")}))},a.commands.unfoldAll=function(b){b.operation((function(){for(var c=b.firstLine(),d=b.lastLine();c<=d;c++)b.foldCode(a.Pos(c,0),null,"unfold")}))},a.registerHelper("fold","combine",(function(){var a=Array.prototype.slice.call(arguments,0);return function(b,c){for(var d=0;d<a.length;++d){var e=a[d](b,c);if(e)return e}}})),a.registerHelper("fold","auto",(function(a,b){for(var c=a.getHelpers(b,"fold"),d=0;d<c.length;d++){var e=c[d](a,b);if(e)return e}}));var e={rangeFinder:a.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1,clearOnEnter:!0};a.defineOption("foldOptions",null),a.defineExtension("foldOption",(function(a,b){return d(this,a,b)}))}));editors/codemirror/addon/fold/foldgutter.css000064400000000663152177723720015306 0ustar00.CodeMirror-foldmarker {
  color: blue;
  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
  font-family: arial;
  line-height: .3;
  cursor: pointer;
}
.CodeMirror-foldgutter {
  width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
  cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
  content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
  content: "\25B8";
}
editors/codemirror/addon/fold/comment-fold.min.js000064400000002001152177723720016105 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerGlobalHelper("fold","comment",(function(a){return a.blockCommentStart&&a.blockCommentEnd}),(function(b,c){var d=b.getModeAt(c),e=d.blockCommentStart,f=d.blockCommentEnd;if(e&&f){for(var g,h=c.line,i=b.getLine(h),j=c.ch,k=0;;){var l=j<=0?-1:i.lastIndexOf(e,j-1);if(l!=-1){if(1==k&&l<c.ch)return;if(/comment/.test(b.getTokenTypeAt(a.Pos(h,l+1)))&&(0==l||i.slice(l-f.length,l)==f||!/comment/.test(b.getTokenTypeAt(a.Pos(h,l))))){g=l+e.length;break}j=l-1}else{if(1==k)return;k=1,j=i.length}}var m,n,o=1,p=b.lastLine();a:for(var q=h;q<=p;++q)for(var r=b.getLine(q),s=q==h?g:0;;){var t=r.indexOf(e,s),u=r.indexOf(f,s);if(t<0&&(t=r.length),u<0&&(u=r.length),s=Math.min(t,u),s==r.length)break;if(s==t)++o;else if(!--o){m=q,n=s;break a}++s}if(null!=m&&(h!=m||n!=g))return{from:a.Pos(h,g),to:a.Pos(m,n)}}}))}));editors/codemirror/addon/fold/foldgutter.min.js000064400000004617152177723720015717 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],a):a(CodeMirror)})((function(a){"use strict";function b(a){this.options=a,this.from=this.to=0}function c(a){return a===!0&&(a={}),null==a.gutter&&(a.gutter="CodeMirror-foldgutter"),null==a.indicatorOpen&&(a.indicatorOpen="CodeMirror-foldgutter-open"),null==a.indicatorFolded&&(a.indicatorFolded="CodeMirror-foldgutter-folded"),a}function d(a,b){for(var c=a.findMarks(l(b,0),l(b+1,0)),d=0;d<c.length;++d)if(c[d].__isFold&&c[d].find().from.line==b)return c[d]}function e(a){if("string"==typeof a){var b=document.createElement("div");return b.className=a+" CodeMirror-guttermarker-subtle",b}return a.cloneNode(!0)}function f(a,b,c){var f=a.state.foldGutter.options,g=b,h=a.foldOption(f,"minFoldSize"),i=a.foldOption(f,"rangeFinder");a.eachLine(b,c,(function(b){var c=null;if(d(a,g))c=e(f.indicatorFolded);else{var j=l(g,0),k=i&&i(a,j);k&&k.to.line-k.from.line>=h&&(c=e(f.indicatorOpen))}a.setGutterMarker(b,f.gutter,c),++g}))}function g(a){var b=a.getViewport(),c=a.state.foldGutter;c&&(a.operation((function(){f(a,b.from,b.to)})),c.from=b.from,c.to=b.to)}function h(a,b,c){var e=a.state.foldGutter;if(e){var f=e.options;if(c==f.gutter){var g=d(a,b);g?g.clear():a.foldCode(l(b,0),f.rangeFinder)}}}function i(a){var b=a.state.foldGutter;if(b){var c=b.options;b.from=b.to=0,clearTimeout(b.changeUpdate),b.changeUpdate=setTimeout((function(){g(a)}),c.foldOnChangeTimeSpan||600)}}function j(a){var b=a.state.foldGutter;if(b){var c=b.options;clearTimeout(b.changeUpdate),b.changeUpdate=setTimeout((function(){var c=a.getViewport();b.from==b.to||c.from-b.to>20||b.from-c.to>20?g(a):a.operation((function(){c.from<b.from&&(f(a,c.from,b.from),b.from=c.from),c.to>b.to&&(f(a,b.to,c.to),b.to=c.to)}))}),c.updateViewportTimeSpan||400)}}function k(a,b){var c=a.state.foldGutter;if(c){var d=b.line;d>=c.from&&d<c.to&&f(a,d,d+1)}}a.defineOption("foldGutter",!1,(function(d,e,f){f&&f!=a.Init&&(d.clearGutter(d.state.foldGutter.options.gutter),d.state.foldGutter=null,d.off("gutterClick",h),d.off("change",i),d.off("viewportChange",j),d.off("fold",k),d.off("unfold",k),d.off("swapDoc",i)),e&&(d.state.foldGutter=new b(c(e)),g(d),d.on("gutterClick",h),d.on("change",i),d.on("viewportChange",j),d.on("fold",k),d.on("unfold",k),d.on("swapDoc",i))}));var l=a.Pos}));editors/codemirror/addon/fold/markdown-fold.js000064400000003106152177723720015512 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("fold", "markdown", function(cm, start) {
  var maxDepth = 100;

  function isHeader(lineNo) {
    var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));
    return tokentype && /\bheader\b/.test(tokentype);
  }

  function headerLevel(lineNo, line, nextLine) {
    var match = line && line.match(/^#+/);
    if (match && isHeader(lineNo)) return match[0].length;
    match = nextLine && nextLine.match(/^[=\-]+\s*$/);
    if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2;
    return maxDepth;
  }

  var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);
  var level = headerLevel(start.line, firstLine, nextLine);
  if (level === maxDepth) return undefined;

  var lastLineNo = cm.lastLine();
  var end = start.line, nextNextLine = cm.getLine(end + 2);
  while (end < lastLineNo) {
    if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;
    ++end;
    nextLine = nextNextLine;
    nextNextLine = cm.getLine(end + 2);
  }

  return {
    from: CodeMirror.Pos(start.line, firstLine.length),
    to: CodeMirror.Pos(end, cm.getLine(end).length)
  };
});

});
editors/codemirror/addon/runmode/runmode.min.js000064400000012571152177723720015734 0ustar00function splitLines(a){return a.split(/\r\n?|\n/)}function StringStream(a,b,c){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.context=c}function copyObj(a,b,c){b||(b={});for(var d in a)!a.hasOwnProperty(d)||c===!1&&b.hasOwnProperty(d)||(b[d]=a[d]);return b}!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.runMode=function(b,c,d,e){var f=a.getMode(a.defaults,c),g=/MSIE \d/.test(navigator.userAgent),h=g&&(null==document.documentMode||document.documentMode<9);if(d.appendChild){var i=e&&e.tabSize||a.defaults.tabSize,j=d,k=0;j.innerHTML="",d=function(a,b){if("\n"==a)return j.appendChild(document.createTextNode(h?"\r":a)),void(k=0);for(var c="",d=0;;){var e=a.indexOf("\t",d);if(e==-1){c+=a.slice(d),k+=a.length-d;break}k+=e-d,c+=a.slice(d,e);var f=i-k%i;k+=f;for(var g=0;g<f;++g)c+=" ";d=e+1}if(b){var l=j.appendChild(document.createElement("span"));l.className="cm-"+b.replace(/ +/g," cm-"),l.appendChild(document.createTextNode(c))}else j.appendChild(document.createTextNode(c))}}for(var l=a.splitLines(b),m=e&&e.state||a.startState(f),n=0,o=l.length;n<o;++n){n&&d("\n");var p=new a.StringStream(l[n]);for(!p.string&&f.blankLine&&f.blankLine(m);!p.eol();){var q=f.token(p,m);d(p.current(),q,n,p.start,m),p.start=p.pos}}}}));var countColumn=exports.countColumn=function(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),b==-1&&(b=a.length));for(var f=d||0,g=e||0;;){var h=a.indexOf("\t",f);if(h<0||h>=b)return g+(b-f);g+=h-f,g+=c-g%c,f=h+1}};StringStream.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(a){var b=this.string.charAt(this.pos);if("string"==typeof a)var c=b==a;else var c=b&&(a.test?a.test(b):a(b));if(c)return++this.pos,b},eatWhile:function(a){for(var b=this.pos;this.eat(a););return this.pos>b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var b=this.string.indexOf(a,this.pos);if(b>-1)return this.pos=b,!0},backUp:function(a){this.pos-=a},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=countColumn(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?countColumn(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return countColumn(this.string,null,this.tabSize)-(this.lineStart?countColumn(this.string,this.lineStart,this.tabSize):0)},match:function(a,b,c){if("string"!=typeof a){var d=this.string.slice(this.pos).match(a);return d&&d.index>0?null:(d&&b!==!1&&(this.pos+=d[0].length),d)}var e=function(a){return c?a.toLowerCase():a},f=this.string.substr(this.pos,a.length);if(e(f)==e(a))return b!==!1&&(this.pos+=a.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}},lookAhead:function(a){var b=this.context.line+a;return b>=this.context.lines.length?null:this.context.lines[b]}},exports.StringStream=StringStream,exports.startState=function(a,b,c){return!a.startState||a.startState(b,c)};var modes=exports.modes={},mimeModes=exports.mimeModes={};exports.defineMode=function(a,b){arguments.length>2&&(b.dependencies=Array.prototype.slice.call(arguments,2)),modes[a]=b},exports.defineMIME=function(a,b){mimeModes[a]=b},exports.defineMode("null",(function(){return{token:function(a){a.skipToEnd()}}})),exports.defineMIME("text/plain","null"),exports.resolveMode=function(a){return"string"==typeof a&&mimeModes.hasOwnProperty(a)?a=mimeModes[a]:a&&"string"==typeof a.name&&mimeModes.hasOwnProperty(a.name)&&(a=mimeModes[a.name]),"string"==typeof a?{name:a}:a||{name:"null"}};var modeExtensions=exports.modeExtensions={};exports.extendMode=function(a,b){var c=modeExtensions.hasOwnProperty(a)?modeExtensions[a]:modeExtensions[a]={};copyObj(b,c)},exports.getMode=function(a,b){var b=exports.resolveMode(b),c=modes[b.name];if(!c)return exports.getMode(a,"text/plain");var d=c(a,b);if(modeExtensions.hasOwnProperty(b.name)){var e=modeExtensions[b.name];for(var f in e)e.hasOwnProperty(f)&&(d.hasOwnProperty(f)&&(d["_"+f]=d[f]),d[f]=e[f])}if(d.name=b.name,b.helperType&&(d.helperType=b.helperType),b.modeProps)for(var f in b.modeProps)d[f]=b.modeProps[f];return d},exports.innerMode=function(a,b){for(var c;a.innerMode&&(c=a.innerMode(b),c&&c.mode!=a);)b=c.state,a=c.mode;return c||{mode:a,state:b}},exports.registerHelper=exports.registerGlobalHelper=Math.min,exports.runMode=function(a,b,c,d){for(var e=exports.getMode({indentUnit:2},b),f=splitLines(a),g=d&&d.state||exports.startState(e),h={lines:f,line:0},i=0,j=f.length;i<j;++i,++h.line){i&&c("\n");var k=new exports.StringStream(f[i],4,h);for(!k.string&&e.blankLine&&e.blankLine(g);!k.eol();){var l=e.token(k,g);c(k.current(),l,i,k.start,g),k.start=k.pos}}},require.cache[require.resolve("../../lib/codemirror")]=require.cache[require.resolve("./runmode.node")],require.cache[require.resolve("../../addon/runmode/runmode")]=require.cache[require.resolve("./runmode.node")];editors/codemirror/addon/runmode/runmode.js000064400000004704152177723720015151 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.runMode = function(string, modespec, callback, options) {
  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
  var ie = /MSIE \d/.test(navigator.userAgent);
  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);

  if (callback.appendChild) {
    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
    var node = callback, col = 0;
    node.innerHTML = "";
    callback = function(text, style) {
      if (text == "\n") {
        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
        // Emitting a carriage return makes everything ok.
        node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
        col = 0;
        return;
      }
      var content = "";
      // replace tabs
      for (var pos = 0;;) {
        var idx = text.indexOf("\t", pos);
        if (idx == -1) {
          content += text.slice(pos);
          col += text.length - pos;
          break;
        } else {
          col += idx - pos;
          content += text.slice(pos, idx);
          var size = tabSize - col % tabSize;
          col += size;
          for (var i = 0; i < size; ++i) content += " ";
          pos = idx + 1;
        }
      }

      if (style) {
        var sp = node.appendChild(document.createElement("span"));
        sp.className = "cm-" + style.replace(/ +/g, " cm-");
        sp.appendChild(document.createTextNode(content));
      } else {
        node.appendChild(document.createTextNode(content));
      }
    };
  }

  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
  for (var i = 0, e = lines.length; i < e; ++i) {
    if (i) callback("\n");
    var stream = new CodeMirror.StringStream(lines[i]);
    if (!stream.string && mode.blankLine) mode.blankLine(state);
    while (!stream.eol()) {
      var style = mode.token(stream, state);
      callback(stream.current(), style, i, stream.start, state);
      stream.start = stream.pos;
    }
  }
};

});
editors/codemirror/addon/runmode/runmode.node.js000064400000015624152177723720016100 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/* Just enough of CodeMirror to run runMode under node.js */

function splitLines(string){return string.split(/\r\n?|\n/);};

// Counts the column offset in a string, taking tabs into account.
// Used mostly to find indentation.
var countColumn = exports.countColumn = function(string, end, tabSize, startIndex, startValue) {
  if (end == null) {
    end = string.search(/[^\s\u00a0]/);
    if (end == -1) end = string.length;
  }
  for (var i = startIndex || 0, n = startValue || 0;;) {
    var nextTab = string.indexOf("\t", i);
    if (nextTab < 0 || nextTab >= end)
      return n + (end - i);
    n += nextTab - i;
    n += tabSize - (n % tabSize);
    i = nextTab + 1;
  }
};

function StringStream(string, tabSize, context) {
  this.pos = this.start = 0;
  this.string = string;
  this.tabSize = tabSize || 8;
  this.lastColumnPos = this.lastColumnValue = 0;
  this.lineStart = 0;
  this.context = context
};

StringStream.prototype = {
  eol: function() {return this.pos >= this.string.length;},
  sol: function() {return this.pos == this.lineStart;},
  peek: function() {return this.string.charAt(this.pos) || undefined;},
  next: function() {
    if (this.pos < this.string.length)
      return this.string.charAt(this.pos++);
  },
  eat: function(match) {
    var ch = this.string.charAt(this.pos);
    if (typeof match == "string") var ok = ch == match;
    else var ok = ch && (match.test ? match.test(ch) : match(ch));
    if (ok) {++this.pos; return ch;}
  },
  eatWhile: function(match) {
    var start = this.pos;
    while (this.eat(match)){}
    return this.pos > start;
  },
  eatSpace: function() {
    var start = this.pos;
    while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
    return this.pos > start;
  },
  skipToEnd: function() {this.pos = this.string.length;},
  skipTo: function(ch) {
    var found = this.string.indexOf(ch, this.pos);
    if (found > -1) {this.pos = found; return true;}
  },
  backUp: function(n) {this.pos -= n;},
  column: function() {
    if (this.lastColumnPos < this.start) {
      this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
      this.lastColumnPos = this.start;
    }
    return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
  },
  indentation: function() {
    return countColumn(this.string, null, this.tabSize) -
      (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
  },
  match: function(pattern, consume, caseInsensitive) {
    if (typeof pattern == "string") {
      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
      var substr = this.string.substr(this.pos, pattern.length);
      if (cased(substr) == cased(pattern)) {
        if (consume !== false) this.pos += pattern.length;
        return true;
      }
    } else {
      var match = this.string.slice(this.pos).match(pattern);
      if (match && match.index > 0) return null;
      if (match && consume !== false) this.pos += match[0].length;
      return match;
    }
  },
  current: function(){return this.string.slice(this.start, this.pos);},
  hideFirstChars: function(n, inner) {
    this.lineStart += n;
    try { return inner(); }
    finally { this.lineStart -= n; }
  },
  lookAhead: function(n) {
    var line = this.context.line + n
    return line >= this.context.lines.length ? null : this.context.lines[line]
  }
};
exports.StringStream = StringStream;

exports.startState = function(mode, a1, a2) {
  return mode.startState ? mode.startState(a1, a2) : true;
};

var modes = exports.modes = {}, mimeModes = exports.mimeModes = {};
exports.defineMode = function(name, mode) {
  if (arguments.length > 2)
    mode.dependencies = Array.prototype.slice.call(arguments, 2);
  modes[name] = mode;
};
exports.defineMIME = function(mime, spec) { mimeModes[mime] = spec; };

exports.defineMode("null", function() {
  return {token: function(stream) {stream.skipToEnd();}};
});
exports.defineMIME("text/plain", "null");

exports.resolveMode = function(spec) {
  if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
    spec = mimeModes[spec];
  } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
    spec = mimeModes[spec.name];
  }
  if (typeof spec == "string") return {name: spec};
  else return spec || {name: "null"};
};

function copyObj(obj, target, overwrite) {
  if (!target) target = {};
  for (var prop in obj)
    if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
      target[prop] = obj[prop];
  return target;
}

// This can be used to attach properties to mode objects from
// outside the actual mode definition.
var modeExtensions = exports.modeExtensions = {};
exports.extendMode = function(mode, properties) {
  var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
  copyObj(properties, exts);
};

exports.getMode = function(options, spec) {
  var spec = exports.resolveMode(spec);
  var mfactory = modes[spec.name];
  if (!mfactory) return exports.getMode(options, "text/plain");
  var modeObj = mfactory(options, spec);
  if (modeExtensions.hasOwnProperty(spec.name)) {
    var exts = modeExtensions[spec.name];
    for (var prop in exts) {
      if (!exts.hasOwnProperty(prop)) continue;
      if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
      modeObj[prop] = exts[prop];
    }
  }
  modeObj.name = spec.name;
  if (spec.helperType) modeObj.helperType = spec.helperType;
  if (spec.modeProps) for (var prop in spec.modeProps)
    modeObj[prop] = spec.modeProps[prop];

  return modeObj;
};

exports.innerMode = function(mode, state) {
  var info;
  while (mode.innerMode) {
    info = mode.innerMode(state);
    if (!info || info.mode == mode) break;
    state = info.state;
    mode = info.mode;
  }
  return info || {mode: mode, state: state};
}

exports.registerHelper = exports.registerGlobalHelper = Math.min;

exports.runMode = function(string, modespec, callback, options) {
  var mode = exports.getMode({indentUnit: 2}, modespec);
  var lines = splitLines(string), state = (options && options.state) || exports.startState(mode);
  var context = {lines: lines, line: 0}
  for (var i = 0, e = lines.length; i < e; ++i, ++context.line) {
    if (i) callback("\n");
    var stream = new exports.StringStream(lines[i], 4, context);
    if (!stream.string && mode.blankLine) mode.blankLine(state);
    while (!stream.eol()) {
      var style = mode.token(stream, state);
      callback(stream.current(), style, i, stream.start, state);
      stream.start = stream.pos;
    }
  }
};

require.cache[require.resolve("../../lib/codemirror")] = require.cache[require.resolve("./runmode.node")];
require.cache[require.resolve("../../addon/runmode/runmode")] = require.cache[require.resolve("./runmode.node")];
editors/codemirror/addon/runmode/runmode-standalone.min.js000064400000006130152177723720020054 0ustar00window.CodeMirror={},(function(){"use strict";function a(a){return a.split(/\r?\n|\r/)}function b(a){this.pos=this.start=0,this.string=a,this.lineStart=0}b.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||null},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(a){var b=this.string.charAt(this.pos);if("string"==typeof a)var c=b==a;else var c=b&&(a.test?a.test(b):a(b));if(c)return++this.pos,b},eatWhile:function(a){for(var b=this.pos;this.eat(a););return this.pos>b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var b=this.string.indexOf(a,this.pos);if(b>-1)return this.pos=b,!0},backUp:function(a){this.pos-=a},column:function(){return this.start-this.lineStart},indentation:function(){return 0},match:function(a,b,c){if("string"!=typeof a){var d=this.string.slice(this.pos).match(a);return d&&d.index>0?null:(d&&b!==!1&&(this.pos+=d[0].length),d)}var e=function(a){return c?a.toLowerCase():a},f=this.string.substr(this.pos,a.length);if(e(f)==e(a))return b!==!1&&(this.pos+=a.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}},lookAhead:function(){return null}},CodeMirror.StringStream=b,CodeMirror.startState=function(a,b,c){return!a.startState||a.startState(b,c)};var c=CodeMirror.modes={},d=CodeMirror.mimeModes={};CodeMirror.defineMode=function(a,b){arguments.length>2&&(b.dependencies=Array.prototype.slice.call(arguments,2)),c[a]=b},CodeMirror.defineMIME=function(a,b){d[a]=b},CodeMirror.resolveMode=function(a){return"string"==typeof a&&d.hasOwnProperty(a)?a=d[a]:a&&"string"==typeof a.name&&d.hasOwnProperty(a.name)&&(a=d[a.name]),"string"==typeof a?{name:a}:a||{name:"null"}},CodeMirror.getMode=function(a,b){b=CodeMirror.resolveMode(b);var d=c[b.name];if(!d)throw new Error("Unknown mode: "+b);return d(a,b)},CodeMirror.registerHelper=CodeMirror.registerGlobalHelper=Math.min,CodeMirror.defineMode("null",(function(){return{token:function(a){a.skipToEnd()}}})),CodeMirror.defineMIME("text/plain","null"),CodeMirror.runMode=function(b,c,d,e){var f=CodeMirror.getMode({indentUnit:2},c);if(1==d.nodeType){var g=e&&e.tabSize||4,h=d,i=0;h.innerHTML="",d=function(a,b){if("\n"==a)return h.appendChild(document.createElement("br")),void(i=0);for(var c="",d=0;;){var e=a.indexOf("\t",d);if(e==-1){c+=a.slice(d),i+=a.length-d;break}i+=e-d,c+=a.slice(d,e);var f=g-i%g;i+=f;for(var j=0;j<f;++j)c+=" ";d=e+1}if(b){var k=h.appendChild(document.createElement("span"));k.className="cm-"+b.replace(/ +/g," cm-"),k.appendChild(document.createTextNode(c))}else h.appendChild(document.createTextNode(c))}}for(var j=a(b),k=e&&e.state||CodeMirror.startState(f),l=0,m=j.length;l<m;++l){l&&d("\n");var n=new CodeMirror.StringStream(j[l]);for(!n.string&&f.blankLine&&f.blankLine(k);!n.eol();){var o=f.token(n,k);d(n.current(),o,l,n.start,k),n.start=n.pos}}}})();editors/codemirror/addon/runmode/colorize.js000064400000002430152177723720015320 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./runmode"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./runmode"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;

  function textContent(node, out) {
    if (node.nodeType == 3) return out.push(node.nodeValue);
    for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
      textContent(ch, out);
      if (isBlock.test(node.nodeType)) out.push("\n");
    }
  }

  CodeMirror.colorize = function(collection, defaultMode) {
    if (!collection) collection = document.body.getElementsByTagName("pre");

    for (var i = 0; i < collection.length; ++i) {
      var node = collection[i];
      var mode = node.getAttribute("data-lang") || defaultMode;
      if (!mode) continue;

      var text = [];
      textContent(node, text);
      node.innerHTML = "";
      CodeMirror.runMode(text.join(""), mode, node);

      node.className += " cm-s-default";
    }
  };
});
editors/codemirror/addon/runmode/runmode-standalone.js000064400000012340152177723720017272 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

window.CodeMirror = {};

(function() {
"use strict";

function splitLines(string){ return string.split(/\r?\n|\r/); };

function StringStream(string) {
  this.pos = this.start = 0;
  this.string = string;
  this.lineStart = 0;
}
StringStream.prototype = {
  eol: function() {return this.pos >= this.string.length;},
  sol: function() {return this.pos == 0;},
  peek: function() {return this.string.charAt(this.pos) || null;},
  next: function() {
    if (this.pos < this.string.length)
      return this.string.charAt(this.pos++);
  },
  eat: function(match) {
    var ch = this.string.charAt(this.pos);
    if (typeof match == "string") var ok = ch == match;
    else var ok = ch && (match.test ? match.test(ch) : match(ch));
    if (ok) {++this.pos; return ch;}
  },
  eatWhile: function(match) {
    var start = this.pos;
    while (this.eat(match)){}
    return this.pos > start;
  },
  eatSpace: function() {
    var start = this.pos;
    while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
    return this.pos > start;
  },
  skipToEnd: function() {this.pos = this.string.length;},
  skipTo: function(ch) {
    var found = this.string.indexOf(ch, this.pos);
    if (found > -1) {this.pos = found; return true;}
  },
  backUp: function(n) {this.pos -= n;},
  column: function() {return this.start - this.lineStart;},
  indentation: function() {return 0;},
  match: function(pattern, consume, caseInsensitive) {
    if (typeof pattern == "string") {
      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
      var substr = this.string.substr(this.pos, pattern.length);
      if (cased(substr) == cased(pattern)) {
        if (consume !== false) this.pos += pattern.length;
        return true;
      }
    } else {
      var match = this.string.slice(this.pos).match(pattern);
      if (match && match.index > 0) return null;
      if (match && consume !== false) this.pos += match[0].length;
      return match;
    }
  },
  current: function(){return this.string.slice(this.start, this.pos);},
  hideFirstChars: function(n, inner) {
    this.lineStart += n;
    try { return inner(); }
    finally { this.lineStart -= n; }
  },
  lookAhead: function() { return null }
};
CodeMirror.StringStream = StringStream;

CodeMirror.startState = function (mode, a1, a2) {
  return mode.startState ? mode.startState(a1, a2) : true;
};

var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
CodeMirror.defineMode = function (name, mode) {
  if (arguments.length > 2)
    mode.dependencies = Array.prototype.slice.call(arguments, 2);
  modes[name] = mode;
};
CodeMirror.defineMIME = function (mime, spec) { mimeModes[mime] = spec; };
CodeMirror.resolveMode = function(spec) {
  if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
    spec = mimeModes[spec];
  } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
    spec = mimeModes[spec.name];
  }
  if (typeof spec == "string") return {name: spec};
  else return spec || {name: "null"};
};
CodeMirror.getMode = function (options, spec) {
  spec = CodeMirror.resolveMode(spec);
  var mfactory = modes[spec.name];
  if (!mfactory) throw new Error("Unknown mode: " + spec);
  return mfactory(options, spec);
};
CodeMirror.registerHelper = CodeMirror.registerGlobalHelper = Math.min;
CodeMirror.defineMode("null", function() {
  return {token: function(stream) {stream.skipToEnd();}};
});
CodeMirror.defineMIME("text/plain", "null");

CodeMirror.runMode = function (string, modespec, callback, options) {
  var mode = CodeMirror.getMode({ indentUnit: 2 }, modespec);

  if (callback.nodeType == 1) {
    var tabSize = (options && options.tabSize) || 4;
    var node = callback, col = 0;
    node.innerHTML = "";
    callback = function (text, style) {
      if (text == "\n") {
        node.appendChild(document.createElement("br"));
        col = 0;
        return;
      }
      var content = "";
      // replace tabs
      for (var pos = 0; ;) {
        var idx = text.indexOf("\t", pos);
        if (idx == -1) {
          content += text.slice(pos);
          col += text.length - pos;
          break;
        } else {
          col += idx - pos;
          content += text.slice(pos, idx);
          var size = tabSize - col % tabSize;
          col += size;
          for (var i = 0; i < size; ++i) content += " ";
          pos = idx + 1;
        }
      }

      if (style) {
        var sp = node.appendChild(document.createElement("span"));
        sp.className = "cm-" + style.replace(/ +/g, " cm-");
        sp.appendChild(document.createTextNode(content));
      } else {
        node.appendChild(document.createTextNode(content));
      }
    };
  }

  var lines = splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
  for (var i = 0, e = lines.length; i < e; ++i) {
    if (i) callback("\n");
    var stream = new CodeMirror.StringStream(lines[i]);
    if (!stream.string && mode.blankLine) mode.blankLine(state);
    while (!stream.eol()) {
      var style = mode.token(stream, state);
      callback(stream.current(), style, i, stream.start, state);
      stream.start = stream.pos;
    }
  }
};
})();
editors/codemirror/addon/runmode/colorize.min.js000064400000001244152177723720016104 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./runmode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./runmode"],a):a(CodeMirror)})((function(a){"use strict";function b(a,d){if(3==a.nodeType)return d.push(a.nodeValue);for(var e=a.firstChild;e;e=e.nextSibling)b(e,d),c.test(a.nodeType)&&d.push("\n")}var c=/^(p|li|div|h\\d|pre|blockquote|td)$/;a.colorize=function(c,d){c||(c=document.body.getElementsByTagName("pre"));for(var e=0;e<c.length;++e){var f=c[e],g=f.getAttribute("data-lang")||d;if(g){var h=[];b(f,h),f.innerHTML="",a.runMode(h.join(""),g,f),f.className+=" cm-s-default"}}}}));editors/codemirror/addon/mode/overlay.js000064400000006235152177723720014435 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Utility function that allows modes to be combined. The mode given
// as the base argument takes care of most of the normal mode
// functionality, but a second (typically simple) mode is used, which
// can override the style of text. Both modes get to parse all of the
// text, but when both assign a non-null style to a piece of code, the
// overlay wins, unless the combine argument was true and not overridden,
// or state.overlay.combineTokens was true, in which case the styles are
// combined.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.overlayMode = function(base, overlay, combine) {
  return {
    startState: function() {
      return {
        base: CodeMirror.startState(base),
        overlay: CodeMirror.startState(overlay),
        basePos: 0, baseCur: null,
        overlayPos: 0, overlayCur: null,
        streamSeen: null
      };
    },
    copyState: function(state) {
      return {
        base: CodeMirror.copyState(base, state.base),
        overlay: CodeMirror.copyState(overlay, state.overlay),
        basePos: state.basePos, baseCur: null,
        overlayPos: state.overlayPos, overlayCur: null
      };
    },

    token: function(stream, state) {
      if (stream != state.streamSeen ||
          Math.min(state.basePos, state.overlayPos) < stream.start) {
        state.streamSeen = stream;
        state.basePos = state.overlayPos = stream.start;
      }

      if (stream.start == state.basePos) {
        state.baseCur = base.token(stream, state.base);
        state.basePos = stream.pos;
      }
      if (stream.start == state.overlayPos) {
        stream.pos = stream.start;
        state.overlayCur = overlay.token(stream, state.overlay);
        state.overlayPos = stream.pos;
      }
      stream.pos = Math.min(state.basePos, state.overlayPos);

      // state.overlay.combineTokens always takes precedence over combine,
      // unless set to null
      if (state.overlayCur == null) return state.baseCur;
      else if (state.baseCur != null &&
               state.overlay.combineTokens ||
               combine && state.overlay.combineTokens == null)
        return state.baseCur + " " + state.overlayCur;
      else return state.overlayCur;
    },

    indent: base.indent && function(state, textAfter) {
      return base.indent(state.base, textAfter);
    },
    electricChars: base.electricChars,

    innerMode: function(state) { return {state: state.base, mode: base}; },

    blankLine: function(state) {
      var baseToken, overlayToken;
      if (base.blankLine) baseToken = base.blankLine(state.base);
      if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);

      return overlayToken == null ?
        baseToken :
        (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken);
    }
  };
};

});
editors/codemirror/addon/mode/multiplex.js000064400000011455152177723720014777 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.multiplexingMode = function(outer /*, others */) {
  // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects
  var others = Array.prototype.slice.call(arguments, 1);

  function indexOf(string, pattern, from, returnEnd) {
    if (typeof pattern == "string") {
      var found = string.indexOf(pattern, from);
      return returnEnd && found > -1 ? found + pattern.length : found;
    }
    var m = pattern.exec(from ? string.slice(from) : string);
    return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
  }

  return {
    startState: function() {
      return {
        outer: CodeMirror.startState(outer),
        innerActive: null,
        inner: null
      };
    },

    copyState: function(state) {
      return {
        outer: CodeMirror.copyState(outer, state.outer),
        innerActive: state.innerActive,
        inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)
      };
    },

    token: function(stream, state) {
      if (!state.innerActive) {
        var cutOff = Infinity, oldContent = stream.string;
        for (var i = 0; i < others.length; ++i) {
          var other = others[i];
          var found = indexOf(oldContent, other.open, stream.pos);
          if (found == stream.pos) {
            if (!other.parseDelimiters) stream.match(other.open);
            state.innerActive = other;

            // Get the outer indent, making sure to handle CodeMirror.Pass
            var outerIndent = 0;
            if (outer.indent) {
              var possibleOuterIndent = outer.indent(state.outer, "");
              if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;
            }

            state.inner = CodeMirror.startState(other.mode, outerIndent);
            return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
          } else if (found != -1 && found < cutOff) {
            cutOff = found;
          }
        }
        if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
        var outerToken = outer.token(stream, state.outer);
        if (cutOff != Infinity) stream.string = oldContent;
        return outerToken;
      } else {
        var curInner = state.innerActive, oldContent = stream.string;
        if (!curInner.close && stream.sol()) {
          state.innerActive = state.inner = null;
          return this.token(stream, state);
        }
        var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;
        if (found == stream.pos && !curInner.parseDelimiters) {
          stream.match(curInner.close);
          state.innerActive = state.inner = null;
          return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
        }
        if (found > -1) stream.string = oldContent.slice(0, found);
        var innerToken = curInner.mode.token(stream, state.inner);
        if (found > -1) stream.string = oldContent;

        if (found == stream.pos && curInner.parseDelimiters)
          state.innerActive = state.inner = null;

        if (curInner.innerStyle) {
          if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
          else innerToken = curInner.innerStyle;
        }

        return innerToken;
      }
    },

    indent: function(state, textAfter) {
      var mode = state.innerActive ? state.innerActive.mode : outer;
      if (!mode.indent) return CodeMirror.Pass;
      return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);
    },

    blankLine: function(state) {
      var mode = state.innerActive ? state.innerActive.mode : outer;
      if (mode.blankLine) {
        mode.blankLine(state.innerActive ? state.inner : state.outer);
      }
      if (!state.innerActive) {
        for (var i = 0; i < others.length; ++i) {
          var other = others[i];
          if (other.open === "\n") {
            state.innerActive = other;
            state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "") : 0);
          }
        }
      } else if (state.innerActive.close === "\n") {
        state.innerActive = state.inner = null;
      }
    },

    electricChars: outer.electricChars,

    innerMode: function(state) {
      return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
    }
  };
};

});
editors/codemirror/addon/mode/multiplex.min.js000064400000004246152177723720015561 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.multiplexingMode=function(b){function c(a,b,c,d){if("string"==typeof b){var e=a.indexOf(b,c);return d&&e>-1?e+b.length:e}var f=b.exec(c?a.slice(c):a);return f?f.index+c+(d?f[0].length:0):-1}var d=Array.prototype.slice.call(arguments,1);return{startState:function(){return{outer:a.startState(b),innerActive:null,inner:null}},copyState:function(c){return{outer:a.copyState(b,c.outer),innerActive:c.innerActive,inner:c.innerActive&&a.copyState(c.innerActive.mode,c.inner)}},token:function(e,f){if(f.innerActive){var g=f.innerActive,h=e.string;if(!g.close&&e.sol())return f.innerActive=f.inner=null,this.token(e,f);var i=g.close?c(h,g.close,e.pos,g.parseDelimiters):-1;if(i==e.pos&&!g.parseDelimiters)return e.match(g.close),f.innerActive=f.inner=null,g.delimStyle&&g.delimStyle+" "+g.delimStyle+"-close";i>-1&&(e.string=h.slice(0,i));var j=g.mode.token(e,f.inner);return i>-1&&(e.string=h),i==e.pos&&g.parseDelimiters&&(f.innerActive=f.inner=null),g.innerStyle&&(j=j?j+" "+g.innerStyle:g.innerStyle),j}for(var k=1/0,h=e.string,l=0;l<d.length;++l){var m=d[l],i=c(h,m.open,e.pos);if(i==e.pos){m.parseDelimiters||e.match(m.open),f.innerActive=m;var n=0;if(b.indent){var o=b.indent(f.outer,"");o!==a.Pass&&(n=o)}return f.inner=a.startState(m.mode,n),m.delimStyle&&m.delimStyle+" "+m.delimStyle+"-open"}i!=-1&&i<k&&(k=i)}k!=1/0&&(e.string=h.slice(0,k));var p=b.token(e,f.outer);return k!=1/0&&(e.string=h),p},indent:function(c,d){var e=c.innerActive?c.innerActive.mode:b;return e.indent?e.indent(c.innerActive?c.inner:c.outer,d):a.Pass},blankLine:function(c){var e=c.innerActive?c.innerActive.mode:b;if(e.blankLine&&e.blankLine(c.innerActive?c.inner:c.outer),c.innerActive)"\n"===c.innerActive.close&&(c.innerActive=c.inner=null);else for(var f=0;f<d.length;++f){var g=d[f];"\n"===g.open&&(c.innerActive=g,c.inner=a.startState(g.mode,e.indent?e.indent(c.outer,""):0))}},electricChars:b.electricChars,innerMode:function(a){return a.inner?{state:a.inner,mode:a.innerActive.mode}:{state:a.outer,mode:b}}}}}));editors/codemirror/addon/mode/simple.js000064400000017554152177723720014253 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineSimpleMode = function(name, states) {
    CodeMirror.defineMode(name, function(config) {
      return CodeMirror.simpleMode(config, states);
    });
  };

  CodeMirror.simpleMode = function(config, states) {
    ensureState(states, "start");
    var states_ = {}, meta = states.meta || {}, hasIndentation = false;
    for (var state in states) if (state != meta && states.hasOwnProperty(state)) {
      var list = states_[state] = [], orig = states[state];
      for (var i = 0; i < orig.length; i++) {
        var data = orig[i];
        list.push(new Rule(data, states));
        if (data.indent || data.dedent) hasIndentation = true;
      }
    }
    var mode = {
      startState: function() {
        return {state: "start", pending: null,
                local: null, localState: null,
                indent: hasIndentation ? [] : null};
      },
      copyState: function(state) {
        var s = {state: state.state, pending: state.pending,
                 local: state.local, localState: null,
                 indent: state.indent && state.indent.slice(0)};
        if (state.localState)
          s.localState = CodeMirror.copyState(state.local.mode, state.localState);
        if (state.stack)
          s.stack = state.stack.slice(0);
        for (var pers = state.persistentStates; pers; pers = pers.next)
          s.persistentStates = {mode: pers.mode,
                                spec: pers.spec,
                                state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),
                                next: s.persistentStates};
        return s;
      },
      token: tokenFunction(states_, config),
      innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },
      indent: indentFunction(states_, meta)
    };
    if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))
      mode[prop] = meta[prop];
    return mode;
  };

  function ensureState(states, name) {
    if (!states.hasOwnProperty(name))
      throw new Error("Undefined state " + name + " in simple mode");
  }

  function toRegex(val, caret) {
    if (!val) return /(?:)/;
    var flags = "";
    if (val instanceof RegExp) {
      if (val.ignoreCase) flags = "i";
      val = val.source;
    } else {
      val = String(val);
    }
    return new RegExp((caret === false ? "" : "^") + "(?:" + val + ")", flags);
  }

  function asToken(val) {
    if (!val) return null;
    if (val.apply) return val
    if (typeof val == "string") return val.replace(/\./g, " ");
    var result = [];
    for (var i = 0; i < val.length; i++)
      result.push(val[i] && val[i].replace(/\./g, " "));
    return result;
  }

  function Rule(data, states) {
    if (data.next || data.push) ensureState(states, data.next || data.push);
    this.regex = toRegex(data.regex);
    this.token = asToken(data.token);
    this.data = data;
  }

  function tokenFunction(states, config) {
    return function(stream, state) {
      if (state.pending) {
        var pend = state.pending.shift();
        if (state.pending.length == 0) state.pending = null;
        stream.pos += pend.text.length;
        return pend.token;
      }

      if (state.local) {
        if (state.local.end && stream.match(state.local.end)) {
          var tok = state.local.endToken || null;
          state.local = state.localState = null;
          return tok;
        } else {
          var tok = state.local.mode.token(stream, state.localState), m;
          if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))
            stream.pos = stream.start + m.index;
          return tok;
        }
      }

      var curState = states[state.state];
      for (var i = 0; i < curState.length; i++) {
        var rule = curState[i];
        var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);
        if (matches) {
          if (rule.data.next) {
            state.state = rule.data.next;
          } else if (rule.data.push) {
            (state.stack || (state.stack = [])).push(state.state);
            state.state = rule.data.push;
          } else if (rule.data.pop && state.stack && state.stack.length) {
            state.state = state.stack.pop();
          }

          if (rule.data.mode)
            enterLocalMode(config, state, rule.data.mode, rule.token);
          if (rule.data.indent)
            state.indent.push(stream.indentation() + config.indentUnit);
          if (rule.data.dedent)
            state.indent.pop();
          var token = rule.token
          if (token && token.apply) token = token(matches)
          if (matches.length > 2 && rule.token && typeof rule.token != "string") {
            state.pending = [];
            for (var j = 2; j < matches.length; j++)
              if (matches[j])
                state.pending.push({text: matches[j], token: rule.token[j - 1]});
            stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));
            return token[0];
          } else if (token && token.join) {
            return token[0];
          } else {
            return token;
          }
        }
      }
      stream.next();
      return null;
    };
  }

  function cmp(a, b) {
    if (a === b) return true;
    if (!a || typeof a != "object" || !b || typeof b != "object") return false;
    var props = 0;
    for (var prop in a) if (a.hasOwnProperty(prop)) {
      if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;
      props++;
    }
    for (var prop in b) if (b.hasOwnProperty(prop)) props--;
    return props == 0;
  }

  function enterLocalMode(config, state, spec, token) {
    var pers;
    if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)
      if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;
    var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);
    var lState = pers ? pers.state : CodeMirror.startState(mode);
    if (spec.persistent && !pers)
      state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};

    state.localState = lState;
    state.local = {mode: mode,
                   end: spec.end && toRegex(spec.end),
                   endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),
                   endToken: token && token.join ? token[token.length - 1] : token};
  }

  function indexOf(val, arr) {
    for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;
  }

  function indentFunction(states, meta) {
    return function(state, textAfter, line) {
      if (state.local && state.local.mode.indent)
        return state.local.mode.indent(state.localState, textAfter, line);
      if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)
        return CodeMirror.Pass;

      var pos = state.indent.length - 1, rules = states[state.state];
      scan: for (;;) {
        for (var i = 0; i < rules.length; i++) {
          var rule = rules[i];
          if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {
            var m = rule.regex.exec(textAfter);
            if (m && m[0]) {
              pos--;
              if (rule.next || rule.push) rules = states[rule.next || rule.push];
              textAfter = textAfter.slice(m[0].length);
              continue scan;
            }
          }
        }
        break;
      }
      return pos < 0 ? 0 : state.indent[pos];
    };
  }
});
editors/codemirror/addon/mode/multiplex_test.js000064400000001502152177723720016026 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function() {
  CodeMirror.defineMode("markdown_with_stex", function(){
    var inner = CodeMirror.getMode({}, "stex");
    var outer = CodeMirror.getMode({}, "markdown");

    var innerOptions = {
      open: '$',
      close: '$',
      mode: inner,
      delimStyle: 'delim',
      innerStyle: 'inner'
    };

    return CodeMirror.multiplexingMode(outer, innerOptions);
  });

  var mode = CodeMirror.getMode({}, "markdown_with_stex");

  function MT(name) {
    test.mode(
      name,
      mode,
      Array.prototype.slice.call(arguments, 1),
      'multiplexing');
  }

  MT(
    "stexInsideMarkdown",
    "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
})();
editors/codemirror/addon/mode/overlay.min.js000064400000002454152177723720015216 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.overlayMode=function(b,c,d){return{startState:function(){return{base:a.startState(b),overlay:a.startState(c),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(d){return{base:a.copyState(b,d.base),overlay:a.copyState(c,d.overlay),basePos:d.basePos,baseCur:null,overlayPos:d.overlayPos,overlayCur:null}},token:function(a,e){return(a!=e.streamSeen||Math.min(e.basePos,e.overlayPos)<a.start)&&(e.streamSeen=a,e.basePos=e.overlayPos=a.start),a.start==e.basePos&&(e.baseCur=b.token(a,e.base),e.basePos=a.pos),a.start==e.overlayPos&&(a.pos=a.start,e.overlayCur=c.token(a,e.overlay),e.overlayPos=a.pos),a.pos=Math.min(e.basePos,e.overlayPos),null==e.overlayCur?e.baseCur:null!=e.baseCur&&e.overlay.combineTokens||d&&null==e.overlay.combineTokens?e.baseCur+" "+e.overlayCur:e.overlayCur},indent:b.indent&&function(a,c){return b.indent(a.base,c)},electricChars:b.electricChars,innerMode:function(a){return{state:a.base,mode:b}},blankLine:function(a){var e,f;return b.blankLine&&(e=b.blankLine(a.base)),c.blankLine&&(f=c.blankLine(a.overlay)),null==f?e:d&&null!=e?e+" "+f:f}}}}));editors/codemirror/addon/mode/multiplex_test.min.js000064400000000760152177723720016615 0ustar00!(function(){function a(a){test.mode(a,b,Array.prototype.slice.call(arguments,1),"multiplexing")}CodeMirror.defineMode("markdown_with_stex",(function(){var a=CodeMirror.getMode({},"stex"),b=CodeMirror.getMode({},"markdown"),c={open:"$",close:"$",mode:a,delimStyle:"delim",innerStyle:"inner"};return CodeMirror.multiplexingMode(b,c)}));var b=CodeMirror.getMode({},"markdown_with_stex");a("stexInsideMarkdown","[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]")})();editors/codemirror/addon/mode/simple.min.js000064400000007740152177723720015031 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){if(!a.hasOwnProperty(b))throw new Error("Undefined state "+b+" in simple mode")}function c(a,b){if(!a)return/(?:)/;var c="";return a instanceof RegExp?(a.ignoreCase&&(c="i"),a=a.source):a=String(a),new RegExp((b===!1?"":"^")+"(?:"+a+")",c)}function d(a){if(!a)return null;if(a.apply)return a;if("string"==typeof a)return a.replace(/\./g," ");for(var b=[],c=0;c<a.length;c++)b.push(a[c]&&a[c].replace(/\./g," "));return b}function e(a,e){(a.next||a.push)&&b(e,a.next||a.push),this.regex=c(a.regex),this.token=d(a.token),this.data=a}function f(a,b){return function(c,d){if(d.pending){var e=d.pending.shift();return 0==d.pending.length&&(d.pending=null),c.pos+=e.text.length,e.token}if(d.local){if(d.local.end&&c.match(d.local.end)){var f=d.local.endToken||null;return d.local=d.localState=null,f}var g,f=d.local.mode.token(c,d.localState);return d.local.endScan&&(g=d.local.endScan.exec(c.current()))&&(c.pos=c.start+g.index),f}for(var i=a[d.state],j=0;j<i.length;j++){var k=i[j],l=(!k.data.sol||c.sol())&&c.match(k.regex);if(l){k.data.next?d.state=k.data.next:k.data.push?((d.stack||(d.stack=[])).push(d.state),d.state=k.data.push):k.data.pop&&d.stack&&d.stack.length&&(d.state=d.stack.pop()),k.data.mode&&h(b,d,k.data.mode,k.token),k.data.indent&&d.indent.push(c.indentation()+b.indentUnit),k.data.dedent&&d.indent.pop();var m=k.token;if(m&&m.apply&&(m=m(l)),l.length>2&&k.token&&"string"!=typeof k.token){d.pending=[];for(var n=2;n<l.length;n++)l[n]&&d.pending.push({text:l[n],token:k.token[n-1]});return c.backUp(l[0].length-(l[1]?l[1].length:0)),m[0]}return m&&m.join?m[0]:m}}return c.next(),null}}function g(a,b){if(a===b)return!0;if(!a||"object"!=typeof a||!b||"object"!=typeof b)return!1;var c=0;for(var d in a)if(a.hasOwnProperty(d)){if(!b.hasOwnProperty(d)||!g(a[d],b[d]))return!1;c++}for(var d in b)b.hasOwnProperty(d)&&c--;return 0==c}function h(b,d,e,f){var h;if(e.persistent)for(var i=d.persistentStates;i&&!h;i=i.next)(e.spec?g(e.spec,i.spec):e.mode==i.mode)&&(h=i);var j=h?h.mode:e.mode||a.getMode(b,e.spec),k=h?h.state:a.startState(j);e.persistent&&!h&&(d.persistentStates={mode:j,spec:e.spec,state:k,next:d.persistentStates}),d.localState=k,d.local={mode:j,end:e.end&&c(e.end),endScan:e.end&&e.forceEnd!==!1&&c(e.end,!1),endToken:f&&f.join?f[f.length-1]:f}}function i(a,b){for(var c=0;c<b.length;c++)if(b[c]===a)return!0}function j(b,c){return function(d,e,f){if(d.local&&d.local.mode.indent)return d.local.mode.indent(d.localState,e,f);if(null==d.indent||d.local||c.dontIndentStates&&i(d.state,c.dontIndentStates)>-1)return a.Pass;var g=d.indent.length-1,h=b[d.state];a:for(;;){for(var j=0;j<h.length;j++){var k=h[j];if(k.data.dedent&&k.data.dedentIfLineStart!==!1){var l=k.regex.exec(e);if(l&&l[0]){g--,(k.next||k.push)&&(h=b[k.next||k.push]),e=e.slice(l[0].length);continue a}}}break}return g<0?0:d.indent[g]}}a.defineSimpleMode=function(b,c){a.defineMode(b,(function(b){return a.simpleMode(b,c)}))},a.simpleMode=function(c,d){b(d,"start");var g={},h=d.meta||{},i=!1;for(var k in d)if(k!=h&&d.hasOwnProperty(k))for(var l=g[k]=[],m=d[k],n=0;n<m.length;n++){var o=m[n];l.push(new e(o,d)),(o.indent||o.dedent)&&(i=!0)}var p={startState:function(){return{state:"start",pending:null,local:null,localState:null,indent:i?[]:null}},copyState:function(b){var c={state:b.state,pending:b.pending,local:b.local,localState:null,indent:b.indent&&b.indent.slice(0)};b.localState&&(c.localState=a.copyState(b.local.mode,b.localState)),b.stack&&(c.stack=b.stack.slice(0));for(var d=b.persistentStates;d;d=d.next)c.persistentStates={mode:d.mode,spec:d.spec,state:d.state==b.localState?c.localState:a.copyState(d.mode,d.state),next:c.persistentStates};return c},token:f(g,c),innerMode:function(a){return a.local&&{mode:a.local.mode,state:a.localState}},indent:j(g,h)};if(h)for(var q in h)h.hasOwnProperty(q)&&(p[q]=h[q]);return p}}));editors/codemirror/addon/mode/loadmode.min.js000064400000002230152177723720015311 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),"cjs"):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],(function(b){a(b,"amd")})):a(CodeMirror,"plain")})((function(a,b){function c(a,b){var c=b;return function(){0==--c&&a()}}function d(b,d){var e=a.modes[b].dependencies;if(!e)return d();for(var f=[],g=0;g<e.length;++g)a.modes.hasOwnProperty(e[g])||f.push(e[g]);if(!f.length)return d();for(var h=c(d,f.length),g=0;g<f.length;++g)a.requireMode(f[g],h)}a.modeURL||(a.modeURL="../mode/%N/%N.js");var e={};a.requireMode=function(c,f){if("string"!=typeof c&&(c=c.name),a.modes.hasOwnProperty(c))return d(c,f);if(e.hasOwnProperty(c))return e[c].push(f);var g=a.modeURL.replace(/%N/g,c);if("plain"==b){var h=document.createElement("script");h.src=g;var i=document.getElementsByTagName("script")[0],j=e[c]=[f];a.on(h,"load",(function(){d(c,(function(){for(var a=0;a<j.length;++a)j[a]()}))})),i.parentNode.insertBefore(h,i)}else"cjs"==b?(require(g),f()):"amd"==b&&requirejs([g],f)},a.autoLoadMode=function(b,c){a.modes.hasOwnProperty(c)||a.requireMode(c,(function(){b.setOption("mode",b.getOption("mode"))}))}}));editors/codemirror/addon/mode/loadmode.js000064400000004346152177723720014541 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), "cjs");
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
  else // Plain browser env
    mod(CodeMirror, "plain");
})(function(CodeMirror, env) {
  if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";

  var loading = {};
  function splitCallback(cont, n) {
    var countDown = n;
    return function() { if (--countDown == 0) cont(); };
  }
  function ensureDeps(mode, cont) {
    var deps = CodeMirror.modes[mode].dependencies;
    if (!deps) return cont();
    var missing = [];
    for (var i = 0; i < deps.length; ++i) {
      if (!CodeMirror.modes.hasOwnProperty(deps[i]))
        missing.push(deps[i]);
    }
    if (!missing.length) return cont();
    var split = splitCallback(cont, missing.length);
    for (var i = 0; i < missing.length; ++i)
      CodeMirror.requireMode(missing[i], split);
  }

  CodeMirror.requireMode = function(mode, cont) {
    if (typeof mode != "string") mode = mode.name;
    if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);
    if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);

    var file = CodeMirror.modeURL.replace(/%N/g, mode);
    if (env == "plain") {
      var script = document.createElement("script");
      script.src = file;
      var others = document.getElementsByTagName("script")[0];
      var list = loading[mode] = [cont];
      CodeMirror.on(script, "load", function() {
        ensureDeps(mode, function() {
          for (var i = 0; i < list.length; ++i) list[i]();
        });
      });
      others.parentNode.insertBefore(script, others);
    } else if (env == "cjs") {
      require(file);
      cont();
    } else if (env == "amd") {
      requirejs([file], cont);
    }
  };

  CodeMirror.autoLoadMode = function(instance, mode) {
    if (!CodeMirror.modes.hasOwnProperty(mode))
      CodeMirror.requireMode(mode, function() {
        instance.setOption("mode", instance.getOption("mode"));
      });
  };
});
editors/codemirror/addon/merge/merge.min.js000064400000044113152177723720015005 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","diff_match_patch"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){this.mv=a,this.type=b,this.classes="left"==b?{chunk:"CodeMirror-merge-l-chunk",start:"CodeMirror-merge-l-chunk-start",end:"CodeMirror-merge-l-chunk-end",insert:"CodeMirror-merge-l-inserted",del:"CodeMirror-merge-l-deleted",connect:"CodeMirror-merge-l-connect"}:{chunk:"CodeMirror-merge-r-chunk",start:"CodeMirror-merge-r-chunk-start",end:"CodeMirror-merge-r-chunk-end",insert:"CodeMirror-merge-r-inserted",del:"CodeMirror-merge-r-deleted",connect:"CodeMirror-merge-r-connect"}}function c(b){b.diffOutOfDate&&(b.diff=z(b.orig.getValue(),b.edit.getValue(),b.mv.options.ignoreWhitespace),b.chunks=A(b.diff),b.diffOutOfDate=!1,a.signal(b.edit,"updateDiff",b.diff))}function d(b){function d(a){W=!0,p=!1,"full"==a&&(b.svg&&J(b.svg),b.copyButtons&&J(b.copyButtons),j(b.edit,m.marked,b.classes),j(b.orig,o.marked,b.classes),m.from=m.to=o.from=o.to=0),c(b),b.showDifferences&&(k(b.edit,b.diff,m,DIFF_INSERT,b.classes),k(b.orig,b.diff,o,DIFF_DELETE,b.classes)),"align"==b.mv.options.connect&&s(b),n(b),null!=b.needsScrollSync&&f(b,b.needsScrollSync),W=!1}function e(a){W||(b.dealigned=!0,g(a))}function g(a){W||p||(clearTimeout(l),a===!0&&(p=!0),l=setTimeout(d,a===!0?20:250))}function h(a,c){b.diffOutOfDate||(b.diffOutOfDate=!0,m.from=m.to=o.from=o.to=0),e(c.text.length-1!=c.to.line-c.from.line)}function i(){b.diffOutOfDate=!0,b.dealigned=!0,d("full")}var l,m={from:0,to:0,marked:[]},o={from:0,to:0,marked:[]},p=!1;return b.edit.on("change",h),b.orig.on("change",h),b.edit.on("swapDoc",i),b.orig.on("swapDoc",i),"align"==b.mv.options.connect&&(a.on(b.edit.state.trackAlignable,"realign",e),a.on(b.orig.state.trackAlignable,"realign",e)),b.edit.on("viewportChange",(function(){g(!1)})),b.orig.on("viewportChange",(function(){g(!1)})),d(),d}function e(a,b){a.edit.on("scroll",(function(){f(a,!0)&&n(a)})),a.orig.on("scroll",(function(){f(a,!1)&&n(a),b&&f(b,!0)&&n(b)}))}function f(a,b){if(a.diffOutOfDate)return a.lockScroll&&null==a.needsScrollSync&&(a.needsScrollSync=b),!1;if(a.needsScrollSync=null,!a.lockScroll)return!0;var c,d,e=+new Date;if(b?(c=a.edit,d=a.orig):(c=a.orig,d=a.edit),c.state.scrollSetBy==a&&(c.state.scrollSetAt||0)+250>e)return!1;var f=c.getScrollInfo();if("align"==a.mv.options.connect)q=f.top;else{var h,i,j=.5*f.clientHeight,k=f.top+j,l=c.lineAtHeight(k,"local"),m=D(a.chunks,l,b),n=g(c,b?m.edit:m.orig),o=g(d,b?m.orig:m.edit),p=(k-n.top)/(n.bot-n.top),q=o.top-j+p*(o.bot-o.top);if(q>f.top&&(i=f.top/j)<1)q=q*i+f.top*(1-i);else if((h=f.height-f.clientHeight-f.top)<j){var r=d.getScrollInfo(),s=r.height-r.clientHeight-q;s>h&&(i=h/j)<1&&(q=q*i+(r.height-r.clientHeight-h)*(1-i))}}return d.scrollTo(f.left,q),d.state.scrollSetAt=e,d.state.scrollSetBy=a,!0}function g(a,b){var c=b.after;return null==c&&(c=a.lastLine()+1),{top:a.heightAtLine(b.before||0,"local"),bot:a.heightAtLine(c,"local")}}function h(b,c,d){b.lockScroll=c,c&&0!=d&&f(b,DIFF_INSERT)&&n(b),(c?a.addClass:a.rmClass)(b.lockButton,"CodeMirror-merge-scrolllock-enabled")}function i(a,b,c){for(var d=c.classLocation,e=0;e<d.length;e++)a.removeLineClass(b,d[e],c.chunk),a.removeLineClass(b,d[e],c.start),a.removeLineClass(b,d[e],c.end)}function j(b,c,d){for(var e=0;e<c.length;++e){var f=c[e];f instanceof a.TextMarker?f.clear():f.parent&&i(b,f,d)}c.length=0}function k(a,b,c,d,e){var f=a.getViewport();a.operation((function(){c.from==c.to||f.from-c.to>20||c.from-f.to>20?(j(a,c.marked,e),m(a,b,d,c.marked,f.from,f.to,e),c.from=f.from,c.to=f.to):(f.from<c.from&&(m(a,b,d,c.marked,f.from,c.from,e),c.from=f.from),f.to>c.to&&(m(a,b,d,c.marked,c.to,f.to,e),c.to=f.to))}))}function l(a,b,c,d,e,f){for(var g=c.classLocation,h=a.getLineHandle(b),i=0;i<g.length;i++)d&&a.addLineClass(h,g[i],c.chunk),e&&a.addLineClass(h,g[i],c.start),f&&a.addLineClass(h,g[i],c.end);return h}function m(a,b,c,d,e,f,g){function h(b,c){for(var h=Math.max(e,b),i=Math.min(f,c),j=h;j<i;++j)d.push(l(a,j,g,!0,j==b,j==c-1));b==c&&h==c&&i==c&&(h?d.push(l(a,h-1,g,!1,!1,!0)):d.push(l(a,h,g,!1,!0,!1)))}for(var i=U(0,0),j=U(e,0),k=a.clipPos(U(f-1)),m=c==DIFF_DELETE?g.del:g.insert,n=0,o=!1,p=0;p<b.length;++p){var q=b[p],r=q[0],s=q[1];if(r==DIFF_EQUAL){var t=i.line+(C(b,p)?0:1);M(i,s);var u=i.line+(B(b,p)?1:0);u>t&&(o&&(h(n,t),o=!1),n=u)}else if(o=!0,r==c){var v=M(i,s,!0),w=P(j,i),x=O(k,v);Q(w,x)||d.push(a.markText(w,x,{className:m})),i=v}}o&&h(n,i.line+1)}function n(a){if(a.showDifferences){if(a.svg){J(a.svg);var b=a.gap.offsetWidth;K(a.svg,"width",b,"height",a.gap.offsetHeight)}a.copyButtons&&J(a.copyButtons);for(var c=a.edit.getViewport(),d=a.orig.getViewport(),e=a.mv.wrap.getBoundingClientRect().top,f=e-a.edit.getScrollerElement().getBoundingClientRect().top+a.edit.getScrollInfo().top,g=e-a.orig.getScrollerElement().getBoundingClientRect().top+a.orig.getScrollInfo().top,h=0;h<a.chunks.length;h++){var i=a.chunks[h];i.editFrom<=c.to&&i.editTo>=c.from&&i.origFrom<=d.to&&i.origTo>=d.from&&v(a,i,g,f,b)}}}function o(a,b){for(var c=0,d=0,e=0;e<b.length;e++){var f=b[e];if(f.editTo>a&&f.editFrom<=a)return null;if(f.editFrom>a)break;c=f.editTo,d=f.origTo}return d+(a-c)}function p(a,b,c){for(var d=a.state.trackAlignable,e=a.firstLine(),f=0,g=[],h=0;;h++){for(var i=b[h],j=i?c?i.origFrom:i.editFrom:1e9;f<d.alignable.length;f+=2){var k=d.alignable[f]+1;if(!(k<=e)){if(!(k<=j))break;g.push(k)}}if(!i)break;g.push(e=c?i.origTo:i.editTo)}return g}function q(a,b,c,d){var e=0,f=0,g=0,h=0;a:for(;;e++){var i=a[e],j=b[f];if(!i&&null==j)break;for(var k=i?i[0]:1e9,l=null==j?1e9:j;g<c.length;){var m=c[g];if(m.origFrom<=l&&m.origTo>l){f++,e--;continue a}if(m.editTo>k){if(m.editFrom<=k)continue a;break}h+=m.origTo-m.origFrom-(m.editTo-m.editFrom),g++}if(k==l-h)i[d]=l,f++;else if(k<l-h)i[d]=k+h;else{var n=[l-h,null,null];n[d]=l,a.splice(e,0,n),f++}}}function r(a,b){var c=p(a.edit,a.chunks,!1),d=[];if(b)for(var e=0,f=0;e<b.chunks.length;e++){for(var g=b.chunks[e].editTo;f<c.length&&c[f]<g;)f++;f!=c.length&&c[f]==g||c.splice(f++,0,g)}for(var e=0;e<c.length;e++)d.push([c[e],null,null]);return q(d,p(a.orig,a.chunks,!0),a.chunks,1),b&&q(d,p(b.orig,b.chunks,!0),b.chunks,2),d}function s(a,b){if(a.dealigned||b){if(!a.orig.curOp)return a.orig.operation((function(){s(a,b)}));a.dealigned=!1;var d=a.mv.left==a?a.mv.right:a.mv.left;d&&(c(d),d.dealigned=!1);for(var e=r(a,d),f=a.mv.aligners,g=0;g<f.length;g++)f[g].clear();f.length=0;var h=[a.edit,a.orig],i=[];d&&h.push(d.orig);for(var g=0;g<h.length;g++)i.push(h[g].getScrollInfo().top);for(var j=0;j<e.length;j++)t(h,e[j],f);for(var g=0;g<h.length;g++)h[g].scrollTo(null,i[g])}}function t(a,b,c){for(var d=0,e=[],f=0;f<a.length;f++)if(null!=b[f]){var g=a[f].heightAtLine(b[f],"local");e[f]=g,d=Math.max(d,g)}for(var f=0;f<a.length;f++)if(null!=b[f]){var h=d-e[f];h>1&&c.push(u(a[f],b[f],h))}}function u(a,b,c){var d=!0;b>a.lastLine()&&(b--,d=!1);var e=document.createElement("div");return e.className="CodeMirror-merge-spacer",e.style.height=c+"px",e.style.minWidth="1px",a.addLineWidget(b,e,{height:c,above:d,mergeSpacer:!0,handleMouseEvents:!0})}function v(a,b,c,d,e){var f="left"==a.type,g=a.orig.heightAtLine(b.origFrom,"local",!0)-c;if(a.svg){var h=g,i=a.edit.heightAtLine(b.editFrom,"local",!0)-d;if(f){var j=h;h=i,i=j}var k=a.orig.heightAtLine(b.origTo,"local",!0)-c,l=a.edit.heightAtLine(b.editTo,"local",!0)-d;if(f){var j=k;k=l,l=j}var m=" C "+e/2+" "+i+" "+e/2+" "+h+" "+(e+2)+" "+h,n=" C "+e/2+" "+k+" "+e/2+" "+l+" -1 "+l;K(a.svg.appendChild(document.createElementNS(V,"path")),"d","M -1 "+i+m+" L "+(e+2)+" "+k+n+" z","class",a.classes.connect)}if(a.copyButtons){var o=a.copyButtons.appendChild(I("div","left"==a.type?"⇝":"⇜","CodeMirror-merge-copy")),p=a.mv.options.allowEditingOriginals;if(o.title=a.edit.phrase(p?"Push to left":"Revert chunk"),o.chunk=b,o.style.top=(b.origTo>b.origFrom?g:a.edit.heightAtLine(b.editFrom,"local")-d)+"px",p){var q=a.edit.heightAtLine(b.editFrom,"local")-d,r=a.copyButtons.appendChild(I("div","right"==a.type?"⇝":"⇜","CodeMirror-merge-copy-reverse"));r.title="Push to right",r.chunk={editFrom:b.origFrom,editTo:b.origTo,origFrom:b.editFrom,origTo:b.editTo},r.style.top=q+"px","right"==a.type?r.style.left="2px":r.style.right="2px"}}}function w(a,b,c,d){if(!a.diffOutOfDate){var e=d.origTo>c.lastLine()?U(d.origFrom-1):U(d.origFrom,0),f=U(d.origTo,0),g=d.editTo>b.lastLine()?U(d.editFrom-1):U(d.editFrom,0),h=U(d.editTo,0),i=a.mv.options.revertChunk;i?i(a.mv,c,e,f,b,g,h):b.replaceRange(c.getRange(e,f),g,h)}}function x(b){var c=b.lockButton=I("div",null,"CodeMirror-merge-scrolllock"),d=I("div",[c],"CodeMirror-merge-scrolllock-wrap");a.on(c,"click",(function(){h(b,!b.lockScroll)}));var e=[d];if(b.mv.options.revertButtons!==!1&&(b.copyButtons=I("div",null,"CodeMirror-merge-copybuttons-"+b.type),a.on(b.copyButtons,"click",(function(a){var c=a.target||a.srcElement;if(c.chunk)return"CodeMirror-merge-copy-reverse"==c.className?void w(b,b.orig,b.edit,c.chunk):void w(b,b.edit,b.orig,c.chunk)})),e.unshift(b.copyButtons)),"align"!=b.mv.options.connect){var f=document.createElementNS&&document.createElementNS(V,"svg");f&&!f.createSVGRect&&(f=null),b.svg=f,f&&e.push(f)}return b.gap=I("div",e,"CodeMirror-merge-gap")}function y(a){return"string"==typeof a?a:a.getValue()}function z(a,b,c){Y||(Y=new diff_match_patch);for(var d=Y.diff_main(a,b),e=0;e<d.length;++e){var f=d[e];(c?/[^ \t]/.test(f[1]):f[1])?e&&d[e-1][0]==f[0]&&(d.splice(e--,1),d[e][1]+=f[1]):d.splice(e--,1)}return d}function A(a){var b=[];if(!a.length)return b;for(var c=0,d=0,e=U(0,0),f=U(0,0),g=0;g<a.length;++g){var h=a[g],i=h[0];if(i==DIFF_EQUAL){var j=!C(a,g)||e.line<c||f.line<d?1:0,k=e.line+j,l=f.line+j;M(e,h[1],null,f);var m=B(a,g)?1:0,n=e.line+m,o=f.line+m;n>k&&(g&&b.push({origFrom:d,origTo:l,editFrom:c,editTo:k}),c=n,d=o)}else M(i==DIFF_INSERT?e:f,h[1])}return(c<=e.line||d<=f.line)&&b.push({origFrom:d,origTo:f.line+1,editFrom:c,editTo:e.line+1}),b}function B(a,b){if(b==a.length-1)return!0;var c=a[b+1][1];return!(1==c.length&&b<a.length-2||10!=c.charCodeAt(0))&&(b==a.length-2||(c=a[b+2][1],(c.length>1||b==a.length-3)&&10==c.charCodeAt(0)))}function C(a,b){if(0==b)return!0;var c=a[b-1][1];return 10==c.charCodeAt(c.length-1)&&(1==b||(c=a[b-2][1],10==c.charCodeAt(c.length-1)))}function D(a,b,c){for(var d,e,f,g,h=0;h<a.length;h++){var i=a[h],j=c?i.editFrom:i.origFrom,k=c?i.editTo:i.origTo;null==e&&(j>b?(e=i.editFrom,g=i.origFrom):k>b&&(e=i.editTo,g=i.origTo)),k<=b?(d=i.editTo,f=i.origTo):j<=b&&(d=i.editFrom,f=i.origFrom)}return{edit:{before:d,after:e},orig:{before:f,after:g}}}function E(b,c,d){function e(){g.clear(),b.removeLineClass(c,"wrap","CodeMirror-merge-collapsed-line")}b.addLineClass(c,"wrap","CodeMirror-merge-collapsed-line");var f=document.createElement("span");f.className="CodeMirror-merge-collapsed-widget",f.title=b.phrase("Identical text collapsed. Click to expand.");var g=b.markText(U(c,0),U(d-1),{inclusiveLeft:!0,inclusiveRight:!0,replacedWith:f,clearOnEnter:!0});return g.explicitlyCleared&&e(),a.on(f,"click",e),g.on("clear",e),a.on(f,"click",e),{mark:g,clear:e}}function F(a,b){function c(){for(var a=0;a<d.length;a++)d[a].clear()}for(var d=[],e=0;e<b.length;e++){var f=b[e],g=E(f.cm,f.line,f.line+a);d.push(g),g.mark.on("clear",c)}return d[0].mark}function G(a,b,c,d){for(var e=0;e<a.chunks.length;e++)for(var f=a.chunks[e],g=f.editFrom-b;g<f.editTo+b;g++){var h=g+c;h>=0&&h<d.length&&(d[h]=!1)}}function H(a,b){"number"!=typeof b&&(b=2);for(var c=[],d=a.editor(),e=d.firstLine(),f=e,g=d.lastLine();f<=g;f++)c.push(!0);a.left&&G(a.left,b,e,c),a.right&&G(a.right,b,e,c);for(var h=0;h<c.length;h++)if(c[h]){for(var i=h+e,j=1;h<c.length-1&&c[h+1];h++,j++);if(j>b){var k=[{line:i,cm:d}];a.left&&k.push({line:o(i,a.left.chunks),cm:a.left.orig}),a.right&&k.push({line:o(i,a.right.chunks),cm:a.right.orig});var l=F(j,k);a.options.onCollapse&&a.options.onCollapse(a,i,j,l)}}}function I(a,b,c,d){var e=document.createElement(a);if(c&&(e.className=c),d&&(e.style.cssText=d),"string"==typeof b)e.appendChild(document.createTextNode(b));else if(b)for(var f=0;f<b.length;++f)e.appendChild(b[f]);return e}function J(a){for(var b=a.childNodes.length;b>0;--b)a.removeChild(a.firstChild)}function K(a){for(var b=1;b<arguments.length;b+=2)a.setAttribute(arguments[b],arguments[b+1])}function L(a,b){b||(b={});for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function M(a,b,c,d){for(var e=c?U(a.line,a.ch):a,f=0;;){var g=b.indexOf("\n",f);if(g==-1)break;++e.line,d&&++d.line,f=g+1}return e.ch=(f?0:e.ch)+(b.length-f),d&&(d.ch=(f?0:d.ch)+(b.length-f)),e}function N(a){this.cm=a,this.alignable=[],this.height=a.doc.height;var b=this;a.on("markerAdded",(function(a,c){if(c.collapsed){var d=c.find(1);null!=d&&b.set(d.line,_)}})),a.on("markerCleared",(function(a,c,d,e){null!=e&&c.collapsed&&b.check(e,_,b.hasMarker)})),a.on("markerChanged",this.signal.bind(this)),a.on("lineWidgetAdded",(function(a,c,d){c.mergeSpacer||(c.above?b.set(d-1,$):b.set(d,Z))})),a.on("lineWidgetCleared",(function(a,c,d){c.mergeSpacer||(c.above?b.check(d-1,$,b.hasWidgetBelow):b.check(d,Z,b.hasWidget))})),a.on("lineWidgetChanged",this.signal.bind(this)),a.on("change",(function(a,c){var d=c.from.line,e=c.to.line-c.from.line,f=c.text.length-1,g=d+f;(e||f)&&b.map(d,e,f),b.check(g,_,b.hasMarker),(e||f)&&b.check(c.from.line,_,b.hasMarker)})),a.on("viewportChange",(function(){b.cm.doc.height!=b.height&&b.signal()}))}function O(a,b){return(a.line-b.line||a.ch-b.ch)<0?a:b}function P(a,b){return(a.line-b.line||a.ch-b.ch)>0?a:b}function Q(a,b){return a.line==b.line&&a.ch==b.ch}function R(a,b,c){for(var d=a.length-1;d>=0;d--){var e=a[d],f=(c?e.origTo:e.editTo)-1;if(f<b)return f}}function S(a,b,c){for(var d=0;d<a.length;d++){var e=a[d],f=c?e.origFrom:e.editFrom;if(f>b)return f}}function T(b,d){var e=null,f=b.state.diffViews,g=b.getCursor().line;if(f)for(var h=0;h<f.length;h++){var i=f[h],j=b==i.orig;c(i);var k=d<0?R(i.chunks,g,j):S(i.chunks,g,j);null==k||null!=e&&!(d<0?k>e:k<e)||(e=k)}return null==e?a.Pass:void b.setCursor(e,0)}var U=a.Pos,V="http://www.w3.org/2000/svg";b.prototype={constructor:b,init:function(b,c,d){this.edit=this.mv.edit,(this.edit.state.diffViews||(this.edit.state.diffViews=[])).push(this),this.orig=a(b,L({value:c,readOnly:!this.mv.options.allowEditingOriginals},L(d))),"align"==this.mv.options.connect&&(this.edit.state.trackAlignable||(this.edit.state.trackAlignable=new N(this.edit)),this.orig.state.trackAlignable=new N(this.orig)),this.lockButton.title=this.edit.phrase("Toggle locked scrolling"),this.orig.state.diffViews=[this];var e=d.chunkClassLocation||"background";"[object Array]"!=Object.prototype.toString.call(e)&&(e=[e]),this.classes.classLocation=e,this.diff=z(y(c),y(d.value),this.mv.options.ignoreWhitespace),this.chunks=A(this.diff),this.diffOutOfDate=this.dealigned=!1,this.needsScrollSync=null,this.showDifferences=d.showDifferences!==!1},registerEvents:function(a){this.forceUpdate=d(this),h(this,!0,!1),e(this,a)},setShowDifferences:function(a){a=a!==!1,a!=this.showDifferences&&(this.showDifferences=a,this.forceUpdate("full"))}};var W=!1,X=a.MergeView=function(c,d){if(!(this instanceof X))return new X(c,d);this.options=d;var e=d.origLeft,f=null==d.origRight?d.orig:d.origRight,g=null!=e,h=null!=f,i=1+(g?1:0)+(h?1:0),j=[],k=this.left=null,l=this.right=null,m=this;if(g){k=this.left=new b(this,"left");var o=I("div",null,"CodeMirror-merge-pane CodeMirror-merge-left");j.push(o),j.push(x(k))}var p=I("div",null,"CodeMirror-merge-pane CodeMirror-merge-editor");if(j.push(p),h){l=this.right=new b(this,"right"),j.push(x(l));var q=I("div",null,"CodeMirror-merge-pane CodeMirror-merge-right");j.push(q)}(h?q:p).className+=" CodeMirror-merge-pane-rightmost",j.push(I("div",null,null,"height: 0; clear: both;"));var r=this.wrap=c.appendChild(I("div",j,"CodeMirror-merge CodeMirror-merge-"+i+"pane"));this.edit=a(p,L(d)),k&&k.init(o,e,d),l&&l.init(q,f,d),d.collapseIdentical&&this.editor().operation((function(){H(m,d.collapseIdentical)})),"align"==d.connect&&(this.aligners=[],s(this.left||this.right,!0)),k&&k.registerEvents(l),l&&l.registerEvents(k);var t=function(){k&&n(k),l&&n(l)};a.on(window,"resize",t);var u=setInterval((function(){for(var b=r.parentNode;b&&b!=document.body;b=b.parentNode);b||(clearInterval(u),a.off(window,"resize",t))}),5e3)};X.prototype={constructor:X,editor:function(){return this.edit},rightOriginal:function(){return this.right&&this.right.orig},leftOriginal:function(){return this.left&&this.left.orig},setShowDifferences:function(a){this.right&&this.right.setShowDifferences(a),this.left&&this.left.setShowDifferences(a)},rightChunks:function(){if(this.right)return c(this.right),this.right.chunks},leftChunks:function(){if(this.left)return c(this.left),this.left.chunks}};var Y,Z=1,$=2,_=4;N.prototype={signal:function(){a.signal(this,"realign"),this.height=this.cm.doc.height},set:function(a,b){for(var c=-1;c<this.alignable.length;c+=2){var d=this.alignable[c]-a;if(0==d){if((this.alignable[c+1]&b)==b)return;return this.alignable[c+1]|=b,void this.signal()}if(d>0)break}this.signal(),this.alignable.splice(c,0,a,b)},find:function(a){for(var b=0;b<this.alignable.length;b+=2)if(this.alignable[b]==a)return b;return-1},check:function(a,b,c){var d=this.find(a);if(d!=-1&&this.alignable[d+1]&b&&!c.call(this,a)){this.signal();var e=this.alignable[d+1]&~b;e?this.alignable[d+1]=e:this.alignable.splice(d,2)}},hasMarker:function(a){var b=this.cm.getLineHandle(a);if(b.markedSpans)for(var c=0;c<b.markedSpans.length;c++)if(b.markedSpans[c].mark.collapsed&&null!=b.markedSpans[c].to)return!0;return!1},hasWidget:function(a){var b=this.cm.getLineHandle(a);if(b.widgets)for(var c=0;c<b.widgets.length;c++)if(!b.widgets[c].above&&!b.widgets[c].mergeSpacer)return!0;return!1},hasWidgetBelow:function(a){if(a==this.cm.lastLine())return!1;var b=this.cm.getLineHandle(a+1);if(b.widgets)for(var c=0;c<b.widgets.length;c++)if(b.widgets[c].above&&!b.widgets[c].mergeSpacer)return!0;return!1},map:function(a,b,c){for(var d=c-b,e=a+b,f=-1,g=-1,h=0;h<this.alignable.length;h+=2){var i=this.alignable[h];i==a&&this.alignable[h+1]&$&&(f=h),i==e&&this.alignable[h+1]&$&&(g=h),i<=a||(i<e?this.alignable.splice(h--,2):this.alignable[h]+=d)}if(f>-1){var j=this.alignable[f+1];j==$?this.alignable.splice(f,2):this.alignable[f+1]=j&~$}g>-1&&c&&this.set(a+c,$)}},a.commands.goNextDiff=function(a){return T(a,1)},a.commands.goPrevDiff=function(a){return T(a,-1)}}));editors/codemirror/addon/merge/merge.js000064400000111421152177723720014220 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror")); // Note non-packaged dependency diff_match_patch
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "diff_match_patch"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  var Pos = CodeMirror.Pos;
  var svgNS = "http://www.w3.org/2000/svg";

  function DiffView(mv, type) {
    this.mv = mv;
    this.type = type;
    this.classes = type == "left"
      ? {chunk: "CodeMirror-merge-l-chunk",
         start: "CodeMirror-merge-l-chunk-start",
         end: "CodeMirror-merge-l-chunk-end",
         insert: "CodeMirror-merge-l-inserted",
         del: "CodeMirror-merge-l-deleted",
         connect: "CodeMirror-merge-l-connect"}
      : {chunk: "CodeMirror-merge-r-chunk",
         start: "CodeMirror-merge-r-chunk-start",
         end: "CodeMirror-merge-r-chunk-end",
         insert: "CodeMirror-merge-r-inserted",
         del: "CodeMirror-merge-r-deleted",
         connect: "CodeMirror-merge-r-connect"};
  }

  DiffView.prototype = {
    constructor: DiffView,
    init: function(pane, orig, options) {
      this.edit = this.mv.edit;
      ;(this.edit.state.diffViews || (this.edit.state.diffViews = [])).push(this);
      this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));
      if (this.mv.options.connect == "align") {
        if (!this.edit.state.trackAlignable) this.edit.state.trackAlignable = new TrackAlignable(this.edit)
        this.orig.state.trackAlignable = new TrackAlignable(this.orig)
      }
      this.lockButton.title = this.edit.phrase("Toggle locked scrolling");

      this.orig.state.diffViews = [this];
      var classLocation = options.chunkClassLocation || "background";
      if (Object.prototype.toString.call(classLocation) != "[object Array]") classLocation = [classLocation]
      this.classes.classLocation = classLocation

      this.diff = getDiff(asString(orig), asString(options.value), this.mv.options.ignoreWhitespace);
      this.chunks = getChunks(this.diff);
      this.diffOutOfDate = this.dealigned = false;
      this.needsScrollSync = null

      this.showDifferences = options.showDifferences !== false;
    },
    registerEvents: function(otherDv) {
      this.forceUpdate = registerUpdate(this);
      setScrollLock(this, true, false);
      registerScroll(this, otherDv);
    },
    setShowDifferences: function(val) {
      val = val !== false;
      if (val != this.showDifferences) {
        this.showDifferences = val;
        this.forceUpdate("full");
      }
    }
  };

  function ensureDiff(dv) {
    if (dv.diffOutOfDate) {
      dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue(), dv.mv.options.ignoreWhitespace);
      dv.chunks = getChunks(dv.diff);
      dv.diffOutOfDate = false;
      CodeMirror.signal(dv.edit, "updateDiff", dv.diff);
    }
  }

  var updating = false;
  function registerUpdate(dv) {
    var edit = {from: 0, to: 0, marked: []};
    var orig = {from: 0, to: 0, marked: []};
    var debounceChange, updatingFast = false;
    function update(mode) {
      updating = true;
      updatingFast = false;
      if (mode == "full") {
        if (dv.svg) clear(dv.svg);
        if (dv.copyButtons) clear(dv.copyButtons);
        clearMarks(dv.edit, edit.marked, dv.classes);
        clearMarks(dv.orig, orig.marked, dv.classes);
        edit.from = edit.to = orig.from = orig.to = 0;
      }
      ensureDiff(dv);
      if (dv.showDifferences) {
        updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);
        updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);
      }

      if (dv.mv.options.connect == "align")
        alignChunks(dv);
      makeConnections(dv);
      if (dv.needsScrollSync != null) syncScroll(dv, dv.needsScrollSync)

      updating = false;
    }
    function setDealign(fast) {
      if (updating) return;
      dv.dealigned = true;
      set(fast);
    }
    function set(fast) {
      if (updating || updatingFast) return;
      clearTimeout(debounceChange);
      if (fast === true) updatingFast = true;
      debounceChange = setTimeout(update, fast === true ? 20 : 250);
    }
    function change(_cm, change) {
      if (!dv.diffOutOfDate) {
        dv.diffOutOfDate = true;
        edit.from = edit.to = orig.from = orig.to = 0;
      }
      // Update faster when a line was added/removed
      setDealign(change.text.length - 1 != change.to.line - change.from.line);
    }
    function swapDoc() {
      dv.diffOutOfDate = true;
      dv.dealigned = true;
      update("full");
    }
    dv.edit.on("change", change);
    dv.orig.on("change", change);
    dv.edit.on("swapDoc", swapDoc);
    dv.orig.on("swapDoc", swapDoc);
    if (dv.mv.options.connect == "align") {
      CodeMirror.on(dv.edit.state.trackAlignable, "realign", setDealign)
      CodeMirror.on(dv.orig.state.trackAlignable, "realign", setDealign)
    }
    dv.edit.on("viewportChange", function() { set(false); });
    dv.orig.on("viewportChange", function() { set(false); });
    update();
    return update;
  }

  function registerScroll(dv, otherDv) {
    dv.edit.on("scroll", function() {
      syncScroll(dv, true) && makeConnections(dv);
    });
    dv.orig.on("scroll", function() {
      syncScroll(dv, false) && makeConnections(dv);
      if (otherDv) syncScroll(otherDv, true) && makeConnections(otherDv);
    });
  }

  function syncScroll(dv, toOrig) {
    // Change handler will do a refresh after a timeout when diff is out of date
    if (dv.diffOutOfDate) {
      if (dv.lockScroll && dv.needsScrollSync == null) dv.needsScrollSync = toOrig
      return false
    }
    dv.needsScrollSync = null
    if (!dv.lockScroll) return true;
    var editor, other, now = +new Date;
    if (toOrig) { editor = dv.edit; other = dv.orig; }
    else { editor = dv.orig; other = dv.edit; }
    // Don't take action if the position of this editor was recently set
    // (to prevent feedback loops)
    if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 250 > now) return false;

    var sInfo = editor.getScrollInfo();
    if (dv.mv.options.connect == "align") {
      targetPos = sInfo.top;
    } else {
      var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;
      var mid = editor.lineAtHeight(midY, "local");
      var around = chunkBoundariesAround(dv.chunks, mid, toOrig);
      var off = getOffsets(editor, toOrig ? around.edit : around.orig);
      var offOther = getOffsets(other, toOrig ? around.orig : around.edit);
      var ratio = (midY - off.top) / (off.bot - off.top);
      var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);

      var botDist, mix;
      // Some careful tweaking to make sure no space is left out of view
      // when scrolling to top or bottom.
      if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {
        targetPos = targetPos * mix + sInfo.top * (1 - mix);
      } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {
        var otherInfo = other.getScrollInfo();
        var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;
        if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)
          targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);
      }
    }

    other.scrollTo(sInfo.left, targetPos);
    other.state.scrollSetAt = now;
    other.state.scrollSetBy = dv;
    return true;
  }

  function getOffsets(editor, around) {
    var bot = around.after;
    if (bot == null) bot = editor.lastLine() + 1;
    return {top: editor.heightAtLine(around.before || 0, "local"),
            bot: editor.heightAtLine(bot, "local")};
  }

  function setScrollLock(dv, val, action) {
    dv.lockScroll = val;
    if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);
    (val ? CodeMirror.addClass : CodeMirror.rmClass)(dv.lockButton, "CodeMirror-merge-scrolllock-enabled");
  }

  // Updating the marks for editor content

  function removeClass(editor, line, classes) {
    var locs = classes.classLocation
    for (var i = 0; i < locs.length; i++) {
      editor.removeLineClass(line, locs[i], classes.chunk);
      editor.removeLineClass(line, locs[i], classes.start);
      editor.removeLineClass(line, locs[i], classes.end);
    }
  }

  function clearMarks(editor, arr, classes) {
    for (var i = 0; i < arr.length; ++i) {
      var mark = arr[i];
      if (mark instanceof CodeMirror.TextMarker)
        mark.clear();
      else if (mark.parent)
        removeClass(editor, mark, classes);
    }
    arr.length = 0;
  }

  // FIXME maybe add a margin around viewport to prevent too many updates
  function updateMarks(editor, diff, state, type, classes) {
    var vp = editor.getViewport();
    editor.operation(function() {
      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
        clearMarks(editor, state.marked, classes);
        markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);
        state.from = vp.from; state.to = vp.to;
      } else {
        if (vp.from < state.from) {
          markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);
          state.from = vp.from;
        }
        if (vp.to > state.to) {
          markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);
          state.to = vp.to;
        }
      }
    });
  }

  function addClass(editor, lineNr, classes, main, start, end) {
    var locs = classes.classLocation, line = editor.getLineHandle(lineNr);
    for (var i = 0; i < locs.length; i++) {
      if (main) editor.addLineClass(line, locs[i], classes.chunk);
      if (start) editor.addLineClass(line, locs[i], classes.start);
      if (end) editor.addLineClass(line, locs[i], classes.end);
    }
    return line;
  }

  function markChanges(editor, diff, type, marks, from, to, classes) {
    var pos = Pos(0, 0);
    var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));
    var cls = type == DIFF_DELETE ? classes.del : classes.insert;
    function markChunk(start, end) {
      var bfrom = Math.max(from, start), bto = Math.min(to, end);
      for (var i = bfrom; i < bto; ++i)
        marks.push(addClass(editor, i, classes, true, i == start, i == end - 1));
      // When the chunk is empty, make sure a horizontal line shows up
      if (start == end && bfrom == end && bto == end) {
        if (bfrom)
          marks.push(addClass(editor, bfrom - 1, classes, false, false, true));
        else
          marks.push(addClass(editor, bfrom, classes, false, true, false));
      }
    }

    var chunkStart = 0, pending = false;
    for (var i = 0; i < diff.length; ++i) {
      var part = diff[i], tp = part[0], str = part[1];
      if (tp == DIFF_EQUAL) {
        var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);
        moveOver(pos, str);
        var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);
        if (cleanTo > cleanFrom) {
          if (pending) { markChunk(chunkStart, cleanFrom); pending = false }
          chunkStart = cleanTo;
        }
      } else {
        pending = true
        if (tp == type) {
          var end = moveOver(pos, str, true);
          var a = posMax(top, pos), b = posMin(bot, end);
          if (!posEq(a, b))
            marks.push(editor.markText(a, b, {className: cls}));
          pos = end;
        }
      }
    }
    if (pending) markChunk(chunkStart, pos.line + 1);
  }

  // Updating the gap between editor and original

  function makeConnections(dv) {
    if (!dv.showDifferences) return;

    if (dv.svg) {
      clear(dv.svg);
      var w = dv.gap.offsetWidth;
      attrs(dv.svg, "width", w, "height", dv.gap.offsetHeight);
    }
    if (dv.copyButtons) clear(dv.copyButtons);

    var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();
    var outerTop = dv.mv.wrap.getBoundingClientRect().top
    var sTopEdit = outerTop - dv.edit.getScrollerElement().getBoundingClientRect().top + dv.edit.getScrollInfo().top
    var sTopOrig = outerTop - dv.orig.getScrollerElement().getBoundingClientRect().top + dv.orig.getScrollInfo().top;
    for (var i = 0; i < dv.chunks.length; i++) {
      var ch = dv.chunks[i];
      if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&
          ch.origFrom <= vpOrig.to && ch.origTo >= vpOrig.from)
        drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w);
    }
  }

  function getMatchingOrigLine(editLine, chunks) {
    var editStart = 0, origStart = 0;
    for (var i = 0; i < chunks.length; i++) {
      var chunk = chunks[i];
      if (chunk.editTo > editLine && chunk.editFrom <= editLine) return null;
      if (chunk.editFrom > editLine) break;
      editStart = chunk.editTo;
      origStart = chunk.origTo;
    }
    return origStart + (editLine - editStart);
  }

  // Combines information about chunks and widgets/markers to return
  // an array of lines, in a single editor, that probably need to be
  // aligned with their counterparts in the editor next to it.
  function alignableFor(cm, chunks, isOrig) {
    var tracker = cm.state.trackAlignable
    var start = cm.firstLine(), trackI = 0
    var result = []
    for (var i = 0;; i++) {
      var chunk = chunks[i]
      var chunkStart = !chunk ? 1e9 : isOrig ? chunk.origFrom : chunk.editFrom
      for (; trackI < tracker.alignable.length; trackI += 2) {
        var n = tracker.alignable[trackI] + 1
        if (n <= start) continue
        if (n <= chunkStart) result.push(n)
        else break
      }
      if (!chunk) break
      result.push(start = isOrig ? chunk.origTo : chunk.editTo)
    }
    return result
  }

  // Given information about alignable lines in two editors, fill in
  // the result (an array of three-element arrays) to reflect the
  // lines that need to be aligned with each other.
  function mergeAlignable(result, origAlignable, chunks, setIndex) {
    var rI = 0, origI = 0, chunkI = 0, diff = 0
    outer: for (;; rI++) {
      var nextR = result[rI], nextO = origAlignable[origI]
      if (!nextR && nextO == null) break

      var rLine = nextR ? nextR[0] : 1e9, oLine = nextO == null ? 1e9 : nextO
      while (chunkI < chunks.length) {
        var chunk = chunks[chunkI]
        if (chunk.origFrom <= oLine && chunk.origTo > oLine) {
          origI++
          rI--
          continue outer;
        }
        if (chunk.editTo > rLine) {
          if (chunk.editFrom <= rLine) continue outer;
          break
        }
        diff += (chunk.origTo - chunk.origFrom) - (chunk.editTo - chunk.editFrom)
        chunkI++
      }
      if (rLine == oLine - diff) {
        nextR[setIndex] = oLine
        origI++
      } else if (rLine < oLine - diff) {
        nextR[setIndex] = rLine + diff
      } else {
        var record = [oLine - diff, null, null]
        record[setIndex] = oLine
        result.splice(rI, 0, record)
        origI++
      }
    }
  }

  function findAlignedLines(dv, other) {
    var alignable = alignableFor(dv.edit, dv.chunks, false), result = []
    if (other) for (var i = 0, j = 0; i < other.chunks.length; i++) {
      var n = other.chunks[i].editTo
      while (j < alignable.length && alignable[j] < n) j++
      if (j == alignable.length || alignable[j] != n) alignable.splice(j++, 0, n)
    }
    for (var i = 0; i < alignable.length; i++)
      result.push([alignable[i], null, null])

    mergeAlignable(result, alignableFor(dv.orig, dv.chunks, true), dv.chunks, 1)
    if (other)
      mergeAlignable(result, alignableFor(other.orig, other.chunks, true), other.chunks, 2)

    return result
  }

  function alignChunks(dv, force) {
    if (!dv.dealigned && !force) return;
    if (!dv.orig.curOp) return dv.orig.operation(function() {
      alignChunks(dv, force);
    });

    dv.dealigned = false;
    var other = dv.mv.left == dv ? dv.mv.right : dv.mv.left;
    if (other) {
      ensureDiff(other);
      other.dealigned = false;
    }
    var linesToAlign = findAlignedLines(dv, other);

    // Clear old aligners
    var aligners = dv.mv.aligners;
    for (var i = 0; i < aligners.length; i++)
      aligners[i].clear();
    aligners.length = 0;

    var cm = [dv.edit, dv.orig], scroll = [];
    if (other) cm.push(other.orig);
    for (var i = 0; i < cm.length; i++)
      scroll.push(cm[i].getScrollInfo().top);

    for (var ln = 0; ln < linesToAlign.length; ln++)
      alignLines(cm, linesToAlign[ln], aligners);

    for (var i = 0; i < cm.length; i++)
      cm[i].scrollTo(null, scroll[i]);
  }

  function alignLines(cm, lines, aligners) {
    var maxOffset = 0, offset = [];
    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
      var off = cm[i].heightAtLine(lines[i], "local");
      offset[i] = off;
      maxOffset = Math.max(maxOffset, off);
    }
    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
      var diff = maxOffset - offset[i];
      if (diff > 1)
        aligners.push(padAbove(cm[i], lines[i], diff));
    }
  }

  function padAbove(cm, line, size) {
    var above = true;
    if (line > cm.lastLine()) {
      line--;
      above = false;
    }
    var elt = document.createElement("div");
    elt.className = "CodeMirror-merge-spacer";
    elt.style.height = size + "px"; elt.style.minWidth = "1px";
    return cm.addLineWidget(line, elt, {height: size, above: above, mergeSpacer: true, handleMouseEvents: true});
  }

  function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {
    var flip = dv.type == "left";
    var top = dv.orig.heightAtLine(chunk.origFrom, "local", true) - sTopOrig;
    if (dv.svg) {
      var topLpx = top;
      var topRpx = dv.edit.heightAtLine(chunk.editFrom, "local", true) - sTopEdit;
      if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }
      var botLpx = dv.orig.heightAtLine(chunk.origTo, "local", true) - sTopOrig;
      var botRpx = dv.edit.heightAtLine(chunk.editTo, "local", true) - sTopEdit;
      if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }
      var curveTop = " C " + w/2 + " " + topRpx + " " + w/2 + " " + topLpx + " " + (w + 2) + " " + topLpx;
      var curveBot = " C " + w/2 + " " + botLpx + " " + w/2 + " " + botRpx + " -1 " + botRpx;
      attrs(dv.svg.appendChild(document.createElementNS(svgNS, "path")),
            "d", "M -1 " + topRpx + curveTop + " L " + (w + 2) + " " + botLpx + curveBot + " z",
            "class", dv.classes.connect);
    }
    if (dv.copyButtons) {
      var copy = dv.copyButtons.appendChild(elt("div", dv.type == "left" ? "\u21dd" : "\u21dc",
                                                "CodeMirror-merge-copy"));
      var editOriginals = dv.mv.options.allowEditingOriginals;
      copy.title = dv.edit.phrase(editOriginals ? "Push to left" : "Revert chunk");
      copy.chunk = chunk;
      copy.style.top = (chunk.origTo > chunk.origFrom ? top : dv.edit.heightAtLine(chunk.editFrom, "local") - sTopEdit) + "px";

      if (editOriginals) {
        var topReverse = dv.edit.heightAtLine(chunk.editFrom, "local") - sTopEdit;
        var copyReverse = dv.copyButtons.appendChild(elt("div", dv.type == "right" ? "\u21dd" : "\u21dc",
                                                         "CodeMirror-merge-copy-reverse"));
        copyReverse.title = "Push to right";
        copyReverse.chunk = {editFrom: chunk.origFrom, editTo: chunk.origTo,
                             origFrom: chunk.editFrom, origTo: chunk.editTo};
        copyReverse.style.top = topReverse + "px";
        dv.type == "right" ? copyReverse.style.left = "2px" : copyReverse.style.right = "2px";
      }
    }
  }

  function copyChunk(dv, to, from, chunk) {
    if (dv.diffOutOfDate) return;
    var origStart = chunk.origTo > from.lastLine() ? Pos(chunk.origFrom - 1) : Pos(chunk.origFrom, 0)
    var origEnd = Pos(chunk.origTo, 0)
    var editStart = chunk.editTo > to.lastLine() ? Pos(chunk.editFrom - 1) : Pos(chunk.editFrom, 0)
    var editEnd = Pos(chunk.editTo, 0)
    var handler = dv.mv.options.revertChunk
    if (handler)
      handler(dv.mv, from, origStart, origEnd, to, editStart, editEnd)
    else
      to.replaceRange(from.getRange(origStart, origEnd), editStart, editEnd)
  }

  // Merge view, containing 0, 1, or 2 diff views.

  var MergeView = CodeMirror.MergeView = function(node, options) {
    if (!(this instanceof MergeView)) return new MergeView(node, options);

    this.options = options;
    var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;

    var hasLeft = origLeft != null, hasRight = origRight != null;
    var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);
    var wrap = [], left = this.left = null, right = this.right = null;
    var self = this;

    if (hasLeft) {
      left = this.left = new DiffView(this, "left");
      var leftPane = elt("div", null, "CodeMirror-merge-pane CodeMirror-merge-left");
      wrap.push(leftPane);
      wrap.push(buildGap(left));
    }

    var editPane = elt("div", null, "CodeMirror-merge-pane CodeMirror-merge-editor");
    wrap.push(editPane);

    if (hasRight) {
      right = this.right = new DiffView(this, "right");
      wrap.push(buildGap(right));
      var rightPane = elt("div", null, "CodeMirror-merge-pane CodeMirror-merge-right");
      wrap.push(rightPane);
    }

    (hasRight ? rightPane : editPane).className += " CodeMirror-merge-pane-rightmost";

    wrap.push(elt("div", null, null, "height: 0; clear: both;"));

    var wrapElt = this.wrap = node.appendChild(elt("div", wrap, "CodeMirror-merge CodeMirror-merge-" + panes + "pane"));
    this.edit = CodeMirror(editPane, copyObj(options));

    if (left) left.init(leftPane, origLeft, options);
    if (right) right.init(rightPane, origRight, options);
    if (options.collapseIdentical)
      this.editor().operation(function() {
        collapseIdenticalStretches(self, options.collapseIdentical);
      });
    if (options.connect == "align") {
      this.aligners = [];
      alignChunks(this.left || this.right, true);
    }
    if (left) left.registerEvents(right)
    if (right) right.registerEvents(left)


    var onResize = function() {
      if (left) makeConnections(left);
      if (right) makeConnections(right);
    };
    CodeMirror.on(window, "resize", onResize);
    var resizeInterval = setInterval(function() {
      for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}
      if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, "resize", onResize); }
    }, 5000);
  };

  function buildGap(dv) {
    var lock = dv.lockButton = elt("div", null, "CodeMirror-merge-scrolllock");
    var lockWrap = elt("div", [lock], "CodeMirror-merge-scrolllock-wrap");
    CodeMirror.on(lock, "click", function() { setScrollLock(dv, !dv.lockScroll); });
    var gapElts = [lockWrap];
    if (dv.mv.options.revertButtons !== false) {
      dv.copyButtons = elt("div", null, "CodeMirror-merge-copybuttons-" + dv.type);
      CodeMirror.on(dv.copyButtons, "click", function(e) {
        var node = e.target || e.srcElement;
        if (!node.chunk) return;
        if (node.className == "CodeMirror-merge-copy-reverse") {
          copyChunk(dv, dv.orig, dv.edit, node.chunk);
          return;
        }
        copyChunk(dv, dv.edit, dv.orig, node.chunk);
      });
      gapElts.unshift(dv.copyButtons);
    }
    if (dv.mv.options.connect != "align") {
      var svg = document.createElementNS && document.createElementNS(svgNS, "svg");
      if (svg && !svg.createSVGRect) svg = null;
      dv.svg = svg;
      if (svg) gapElts.push(svg);
    }

    return dv.gap = elt("div", gapElts, "CodeMirror-merge-gap");
  }

  MergeView.prototype = {
    constructor: MergeView,
    editor: function() { return this.edit; },
    rightOriginal: function() { return this.right && this.right.orig; },
    leftOriginal: function() { return this.left && this.left.orig; },
    setShowDifferences: function(val) {
      if (this.right) this.right.setShowDifferences(val);
      if (this.left) this.left.setShowDifferences(val);
    },
    rightChunks: function() {
      if (this.right) { ensureDiff(this.right); return this.right.chunks; }
    },
    leftChunks: function() {
      if (this.left) { ensureDiff(this.left); return this.left.chunks; }
    }
  };

  function asString(obj) {
    if (typeof obj == "string") return obj;
    else return obj.getValue();
  }

  // Operations on diffs
  var dmp;
  function getDiff(a, b, ignoreWhitespace) {
    if (!dmp) dmp = new diff_match_patch();

    var diff = dmp.diff_main(a, b);
    // The library sometimes leaves in empty parts, which confuse the algorithm
    for (var i = 0; i < diff.length; ++i) {
      var part = diff[i];
      if (ignoreWhitespace ? !/[^ \t]/.test(part[1]) : !part[1]) {
        diff.splice(i--, 1);
      } else if (i && diff[i - 1][0] == part[0]) {
        diff.splice(i--, 1);
        diff[i][1] += part[1];
      }
    }
    return diff;
  }

  function getChunks(diff) {
    var chunks = [];
    if (!diff.length) return chunks;
    var startEdit = 0, startOrig = 0;
    var edit = Pos(0, 0), orig = Pos(0, 0);
    for (var i = 0; i < diff.length; ++i) {
      var part = diff[i], tp = part[0];
      if (tp == DIFF_EQUAL) {
        var startOff = !startOfLineClean(diff, i) || edit.line < startEdit || orig.line < startOrig ? 1 : 0;
        var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;
        moveOver(edit, part[1], null, orig);
        var endOff = endOfLineClean(diff, i) ? 1 : 0;
        var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;
        if (cleanToEdit > cleanFromEdit) {
          if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,
                              editFrom: startEdit, editTo: cleanFromEdit});
          startEdit = cleanToEdit; startOrig = cleanToOrig;
        }
      } else {
        moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);
      }
    }
    if (startEdit <= edit.line || startOrig <= orig.line)
      chunks.push({origFrom: startOrig, origTo: orig.line + 1,
                   editFrom: startEdit, editTo: edit.line + 1});
    return chunks;
  }

  function endOfLineClean(diff, i) {
    if (i == diff.length - 1) return true;
    var next = diff[i + 1][1];
    if ((next.length == 1 && i < diff.length - 2) || next.charCodeAt(0) != 10) return false;
    if (i == diff.length - 2) return true;
    next = diff[i + 2][1];
    return (next.length > 1 || i == diff.length - 3) && next.charCodeAt(0) == 10;
  }

  function startOfLineClean(diff, i) {
    if (i == 0) return true;
    var last = diff[i - 1][1];
    if (last.charCodeAt(last.length - 1) != 10) return false;
    if (i == 1) return true;
    last = diff[i - 2][1];
    return last.charCodeAt(last.length - 1) == 10;
  }

  function chunkBoundariesAround(chunks, n, nInEdit) {
    var beforeE, afterE, beforeO, afterO;
    for (var i = 0; i < chunks.length; i++) {
      var chunk = chunks[i];
      var fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom;
      var toLocal = nInEdit ? chunk.editTo : chunk.origTo;
      if (afterE == null) {
        if (fromLocal > n) { afterE = chunk.editFrom; afterO = chunk.origFrom; }
        else if (toLocal > n) { afterE = chunk.editTo; afterO = chunk.origTo; }
      }
      if (toLocal <= n) { beforeE = chunk.editTo; beforeO = chunk.origTo; }
      else if (fromLocal <= n) { beforeE = chunk.editFrom; beforeO = chunk.origFrom; }
    }
    return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};
  }

  function collapseSingle(cm, from, to) {
    cm.addLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
    var widget = document.createElement("span");
    widget.className = "CodeMirror-merge-collapsed-widget";
    widget.title = cm.phrase("Identical text collapsed. Click to expand.");
    var mark = cm.markText(Pos(from, 0), Pos(to - 1), {
      inclusiveLeft: true,
      inclusiveRight: true,
      replacedWith: widget,
      clearOnEnter: true
    });
    function clear() {
      mark.clear();
      cm.removeLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
    }
    if (mark.explicitlyCleared) clear();
    CodeMirror.on(widget, "click", clear);
    mark.on("clear", clear);
    CodeMirror.on(widget, "click", clear);
    return {mark: mark, clear: clear};
  }

  function collapseStretch(size, editors) {
    var marks = [];
    function clear() {
      for (var i = 0; i < marks.length; i++) marks[i].clear();
    }
    for (var i = 0; i < editors.length; i++) {
      var editor = editors[i];
      var mark = collapseSingle(editor.cm, editor.line, editor.line + size);
      marks.push(mark);
      mark.mark.on("clear", clear);
    }
    return marks[0].mark;
  }

  function unclearNearChunks(dv, margin, off, clear) {
    for (var i = 0; i < dv.chunks.length; i++) {
      var chunk = dv.chunks[i];
      for (var l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) {
        var pos = l + off;
        if (pos >= 0 && pos < clear.length) clear[pos] = false;
      }
    }
  }

  function collapseIdenticalStretches(mv, margin) {
    if (typeof margin != "number") margin = 2;
    var clear = [], edit = mv.editor(), off = edit.firstLine();
    for (var l = off, e = edit.lastLine(); l <= e; l++) clear.push(true);
    if (mv.left) unclearNearChunks(mv.left, margin, off, clear);
    if (mv.right) unclearNearChunks(mv.right, margin, off, clear);

    for (var i = 0; i < clear.length; i++) {
      if (clear[i]) {
        var line = i + off;
        for (var size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {}
        if (size > margin) {
          var editors = [{line: line, cm: edit}];
          if (mv.left) editors.push({line: getMatchingOrigLine(line, mv.left.chunks), cm: mv.left.orig});
          if (mv.right) editors.push({line: getMatchingOrigLine(line, mv.right.chunks), cm: mv.right.orig});
          var mark = collapseStretch(size, editors);
          if (mv.options.onCollapse) mv.options.onCollapse(mv, line, size, mark);
        }
      }
    }
  }

  // General utilities

  function elt(tag, content, className, style) {
    var e = document.createElement(tag);
    if (className) e.className = className;
    if (style) e.style.cssText = style;
    if (typeof content == "string") e.appendChild(document.createTextNode(content));
    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
    return e;
  }

  function clear(node) {
    for (var count = node.childNodes.length; count > 0; --count)
      node.removeChild(node.firstChild);
  }

  function attrs(elt) {
    for (var i = 1; i < arguments.length; i += 2)
      elt.setAttribute(arguments[i], arguments[i+1]);
  }

  function copyObj(obj, target) {
    if (!target) target = {};
    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];
    return target;
  }

  function moveOver(pos, str, copy, other) {
    var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;
    for (;;) {
      var nl = str.indexOf("\n", at);
      if (nl == -1) break;
      ++out.line;
      if (other) ++other.line;
      at = nl + 1;
    }
    out.ch = (at ? 0 : out.ch) + (str.length - at);
    if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);
    return out;
  }

  // Tracks collapsed markers and line widgets, in order to be able to
  // accurately align the content of two editors.

  var F_WIDGET = 1, F_WIDGET_BELOW = 2, F_MARKER = 4

  function TrackAlignable(cm) {
    this.cm = cm
    this.alignable = []
    this.height = cm.doc.height
    var self = this
    cm.on("markerAdded", function(_, marker) {
      if (!marker.collapsed) return
      var found = marker.find(1)
      if (found != null) self.set(found.line, F_MARKER)
    })
    cm.on("markerCleared", function(_, marker, _min, max) {
      if (max != null && marker.collapsed)
        self.check(max, F_MARKER, self.hasMarker)
    })
    cm.on("markerChanged", this.signal.bind(this))
    cm.on("lineWidgetAdded", function(_, widget, lineNo) {
      if (widget.mergeSpacer) return
      if (widget.above) self.set(lineNo - 1, F_WIDGET_BELOW)
      else self.set(lineNo, F_WIDGET)
    })
    cm.on("lineWidgetCleared", function(_, widget, lineNo) {
      if (widget.mergeSpacer) return
      if (widget.above) self.check(lineNo - 1, F_WIDGET_BELOW, self.hasWidgetBelow)
      else self.check(lineNo, F_WIDGET, self.hasWidget)
    })
    cm.on("lineWidgetChanged", this.signal.bind(this))
    cm.on("change", function(_, change) {
      var start = change.from.line, nBefore = change.to.line - change.from.line
      var nAfter = change.text.length - 1, end = start + nAfter
      if (nBefore || nAfter) self.map(start, nBefore, nAfter)
      self.check(end, F_MARKER, self.hasMarker)
      if (nBefore || nAfter) self.check(change.from.line, F_MARKER, self.hasMarker)
    })
    cm.on("viewportChange", function() {
      if (self.cm.doc.height != self.height) self.signal()
    })
  }

  TrackAlignable.prototype = {
    signal: function() {
      CodeMirror.signal(this, "realign")
      this.height = this.cm.doc.height
    },

    set: function(n, flags) {
      var pos = -1
      for (; pos < this.alignable.length; pos += 2) {
        var diff = this.alignable[pos] - n
        if (diff == 0) {
          if ((this.alignable[pos + 1] & flags) == flags) return
          this.alignable[pos + 1] |= flags
          this.signal()
          return
        }
        if (diff > 0) break
      }
      this.signal()
      this.alignable.splice(pos, 0, n, flags)
    },

    find: function(n) {
      for (var i = 0; i < this.alignable.length; i += 2)
        if (this.alignable[i] == n) return i
      return -1
    },

    check: function(n, flag, pred) {
      var found = this.find(n)
      if (found == -1 || !(this.alignable[found + 1] & flag)) return
      if (!pred.call(this, n)) {
        this.signal()
        var flags = this.alignable[found + 1] & ~flag
        if (flags) this.alignable[found + 1] = flags
        else this.alignable.splice(found, 2)
      }
    },

    hasMarker: function(n) {
      var handle = this.cm.getLineHandle(n)
      if (handle.markedSpans) for (var i = 0; i < handle.markedSpans.length; i++)
        if (handle.markedSpans[i].mark.collapsed && handle.markedSpans[i].to != null)
          return true
      return false
    },

    hasWidget: function(n) {
      var handle = this.cm.getLineHandle(n)
      if (handle.widgets) for (var i = 0; i < handle.widgets.length; i++)
        if (!handle.widgets[i].above && !handle.widgets[i].mergeSpacer) return true
      return false
    },

    hasWidgetBelow: function(n) {
      if (n == this.cm.lastLine()) return false
      var handle = this.cm.getLineHandle(n + 1)
      if (handle.widgets) for (var i = 0; i < handle.widgets.length; i++)
        if (handle.widgets[i].above && !handle.widgets[i].mergeSpacer) return true
      return false
    },

    map: function(from, nBefore, nAfter) {
      var diff = nAfter - nBefore, to = from + nBefore, widgetFrom = -1, widgetTo = -1
      for (var i = 0; i < this.alignable.length; i += 2) {
        var n = this.alignable[i]
        if (n == from && (this.alignable[i + 1] & F_WIDGET_BELOW)) widgetFrom = i
        if (n == to && (this.alignable[i + 1] & F_WIDGET_BELOW)) widgetTo = i
        if (n <= from) continue
        else if (n < to) this.alignable.splice(i--, 2)
        else this.alignable[i] += diff
      }
      if (widgetFrom > -1) {
        var flags = this.alignable[widgetFrom + 1]
        if (flags == F_WIDGET_BELOW) this.alignable.splice(widgetFrom, 2)
        else this.alignable[widgetFrom + 1] = flags & ~F_WIDGET_BELOW
      }
      if (widgetTo > -1 && nAfter)
        this.set(from + nAfter, F_WIDGET_BELOW)
    }
  }

  function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }
  function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }
  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }

  function findPrevDiff(chunks, start, isOrig) {
    for (var i = chunks.length - 1; i >= 0; i--) {
      var chunk = chunks[i];
      var to = (isOrig ? chunk.origTo : chunk.editTo) - 1;
      if (to < start) return to;
    }
  }

  function findNextDiff(chunks, start, isOrig) {
    for (var i = 0; i < chunks.length; i++) {
      var chunk = chunks[i];
      var from = (isOrig ? chunk.origFrom : chunk.editFrom);
      if (from > start) return from;
    }
  }

  function goNearbyDiff(cm, dir) {
    var found = null, views = cm.state.diffViews, line = cm.getCursor().line;
    if (views) for (var i = 0; i < views.length; i++) {
      var dv = views[i], isOrig = cm == dv.orig;
      ensureDiff(dv);
      var pos = dir < 0 ? findPrevDiff(dv.chunks, line, isOrig) : findNextDiff(dv.chunks, line, isOrig);
      if (pos != null && (found == null || (dir < 0 ? pos > found : pos < found)))
        found = pos;
    }
    if (found != null)
      cm.setCursor(found, 0);
    else
      return CodeMirror.Pass;
  }

  CodeMirror.commands.goNextDiff = function(cm) {
    return goNearbyDiff(cm, 1);
  };
  CodeMirror.commands.goPrevDiff = function(cm) {
    return goNearbyDiff(cm, -1);
  };
});
editors/codemirror/addon/merge/merge.css000064400000006537152177723720014407 0ustar00.CodeMirror-merge {
  position: relative;
  border: 1px solid #ddd;
  white-space: pre;
}

.CodeMirror-merge, .CodeMirror-merge .CodeMirror {
  height: 350px;
}

.CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }
.CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }
.CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }
.CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }

.CodeMirror-merge-pane {
  display: inline-block;
  white-space: normal;
  vertical-align: top;
}
.CodeMirror-merge-pane-rightmost {
  position: absolute;
  right: 0px;
  z-index: 1;
}

.CodeMirror-merge-gap {
  z-index: 2;
  display: inline-block;
  height: 100%;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow: hidden;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  position: relative;
  background: #f8f8f8;
}

.CodeMirror-merge-scrolllock-wrap {
  position: absolute;
  bottom: 0; left: 50%;
}
.CodeMirror-merge-scrolllock {
  position: relative;
  left: -50%;
  cursor: pointer;
  color: #555;
  line-height: 1;
}
.CodeMirror-merge-scrolllock:after {
  content: "\21db\00a0\00a0\21da";
}
.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after {
  content: "\21db\21da";
}

.CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {
  position: absolute;
  left: 0; top: 0;
  right: 0; bottom: 0;
  line-height: 1;
}

.CodeMirror-merge-copy {
  position: absolute;
  cursor: pointer;
  color: #44c;
  z-index: 3;
}

.CodeMirror-merge-copy-reverse {
  position: absolute;
  cursor: pointer;
  color: #44c;
}

.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }
.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }

.CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);
  background-position: bottom left;
  background-repeat: repeat-x;
}

.CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);
  background-position: bottom left;
  background-repeat: repeat-x;
}

.CodeMirror-merge-r-chunk { background: #ffffe0; }
.CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }
.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }
.CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }

.CodeMirror-merge-l-chunk { background: #eef; }
.CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }
.CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }
.CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }

.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }
.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }
.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }

.CodeMirror-merge-collapsed-widget:before {
  content: "(...)";
}
.CodeMirror-merge-collapsed-widget {
  cursor: pointer;
  color: #88b;
  background: #eef;
  border: 1px solid #ddf;
  font-size: 90%;
  padding: 0 3px;
  border-radius: 4px;
}
.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }
editors/codemirror/addon/merge/merge.min.css000064400000005643152177723720015166 0ustar00.CodeMirror-merge{position:relative;border:1px solid #ddd;white-space:pre}.CodeMirror-merge,.CodeMirror-merge .CodeMirror{height:350px}.CodeMirror-merge-2pane .CodeMirror-merge-pane{width:47%}.CodeMirror-merge-2pane .CodeMirror-merge-gap{width:6%}.CodeMirror-merge-3pane .CodeMirror-merge-pane{width:31%}.CodeMirror-merge-3pane .CodeMirror-merge-gap{width:3.5%}.CodeMirror-merge-pane{display:inline-block;white-space:normal;vertical-align:top}.CodeMirror-merge-pane-rightmost{position:absolute;right:0;z-index:1}.CodeMirror-merge-gap{z-index:2;display:inline-block;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd;position:relative;background:#f8f8f8}.CodeMirror-merge-scrolllock-wrap{position:absolute;bottom:0;left:50%}.CodeMirror-merge-scrolllock{position:relative;left:-50%;cursor:pointer;color:#555;line-height:1}.CodeMirror-merge-copy,.CodeMirror-merge-copy-reverse{position:absolute;color:#44c;cursor:pointer}.CodeMirror-merge-scrolllock:after{content:"\21db\00a0\00a0\21da"}.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after{content:"\21db\21da"}.CodeMirror-merge-copybuttons-left,.CodeMirror-merge-copybuttons-right{position:absolute;left:0;top:0;right:0;bottom:0;line-height:1}.CodeMirror-merge-copy{z-index:3}.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy{left:2px}.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy{right:2px}.CodeMirror-merge-l-inserted,.CodeMirror-merge-r-inserted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-l-deleted,.CodeMirror-merge-r-deleted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-r-chunk{background:#ffffe0}.CodeMirror-merge-r-chunk-start{border-top:1px solid #ee8}.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #ee8}.CodeMirror-merge-r-connect{fill:#ffffe0;stroke:#ee8;stroke-width:1px}.CodeMirror-merge-l-chunk{background:#eef}.CodeMirror-merge-l-chunk-start{border-top:1px solid #88e}.CodeMirror-merge-l-chunk-end{border-bottom:1px solid #88e}.CodeMirror-merge-l-connect{fill:#eef;stroke:#88e;stroke-width:1px}.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk{background:#dfd}.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start{border-top:1px solid #4e4}.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #4e4}.CodeMirror-merge-collapsed-widget:before{content:"(...)"}.CodeMirror-merge-collapsed-widget{cursor:pointer;color:#88b;background:#eef;border:1px solid #ddf;font-size:90%;padding:0 3px;border-radius:4px}.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt{display:none}editors/codemirror/addon/search/search.min.js000064400000012477152177723720015331 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){return"string"==typeof a?a=new RegExp(a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),b?"gi":"g"):a.global||(a=new RegExp(a.source,a.ignoreCase?"gi":"g")),{token:function(b){a.lastIndex=b.pos;var c=a.exec(b.string);return c&&c.index==b.pos?(b.pos+=c[0].length||1,"searching"):void(c?b.pos=c.index:b.skipToEnd())}}}function c(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function d(a){return a.state.search||(a.state.search=new c)}function e(a){return"string"==typeof a&&a==a.toLowerCase()}function f(a,b,c){return a.getSearchCursor(b,c,{caseFold:e(b),multiline:!0})}function g(a,b,c,d,e){a.openDialog(b,d,{value:c,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){o(a)},onKeyDown:e})}function h(a,b,c,d,e){a.openDialog?a.openDialog(b,e,{value:d,selectValueOnOpen:!0}):e(prompt(c,d))}function i(a,b,c,d){a.openConfirm?a.openConfirm(b,d):confirm(c)&&d[0]()}function j(a){return a.replace(/\\(.)/g,(function(a,b){return"n"==b?"\n":"r"==b?"\r":b}))}function k(a){var b=a.match(/^\/(.*)\/([a-z]*)$/);if(b)try{a=new RegExp(b[1],b[2].indexOf("i")==-1?"":"i")}catch(a){}else a=j(a);return("string"==typeof a?""==a:a.test(""))&&(a=/x^/),a}function l(a,c,d){c.queryText=d,c.query=k(d),a.removeOverlay(c.overlay,e(c.query)),c.overlay=b(c.query,e(c.query)),a.addOverlay(c.overlay),a.showMatchesOnScrollbar&&(c.annotate&&(c.annotate.clear(),c.annotate=null),c.annotate=a.showMatchesOnScrollbar(c.query,e(c.query)))}function m(b,c,e,f){var i=d(b);if(i.query)return n(b,c);var j=b.getSelection()||i.lastQuery;if(j instanceof RegExp&&"x^"==j.source&&(j=null),e&&b.openDialog){var k=null,m=function(c,d){a.e_stop(d),c&&(c!=i.queryText&&(l(b,i,c),i.posFrom=i.posTo=b.getCursor()),k&&(k.style.opacity=1),n(b,d.shiftKey,(function(a,c){var d;c.line<3&&document.querySelector&&(d=b.display.wrapper.querySelector(".CodeMirror-dialog"))&&d.getBoundingClientRect().bottom-4>b.cursorCoords(c,"window").top&&((k=d).style.opacity=.4)})))};g(b,p(b),j,m,(function(c,e){var f=a.keyName(c),g=b.getOption("extraKeys"),h=g&&g[f]||a.keyMap[b.getOption("keyMap")][f];"findNext"==h||"findPrev"==h||"findPersistentNext"==h||"findPersistentPrev"==h?(a.e_stop(c),l(b,d(b),e),b.execCommand(h)):"find"!=h&&"findPersistent"!=h||(a.e_stop(c),m(e,c))})),f&&j&&(l(b,i,j),n(b,c))}else h(b,p(b),"Search for:",j,(function(a){a&&!i.query&&b.operation((function(){l(b,i,a),i.posFrom=i.posTo=b.getCursor(),n(b,c)}))}))}function n(b,c,e){b.operation((function(){var g=d(b),h=f(b,g.query,c?g.posFrom:g.posTo);(h.find(c)||(h=f(b,g.query,c?a.Pos(b.lastLine()):a.Pos(b.firstLine(),0)),h.find(c)))&&(b.setSelection(h.from(),h.to()),b.scrollIntoView({from:h.from(),to:h.to()},20),g.posFrom=h.from(),g.posTo=h.to(),e&&e(h.from(),h.to()))}))}function o(a){a.operation((function(){var b=d(a);b.lastQuery=b.query,b.query&&(b.query=b.queryText=null,a.removeOverlay(b.overlay),b.annotate&&(b.annotate.clear(),b.annotate=null))}))}function p(a){return'<span class="CodeMirror-search-label">'+a.phrase("Search:")+'</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">'+a.phrase("(Use /re/ syntax for regexp search)")+"</span>"}function q(a){return' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">'+a.phrase("(Use /re/ syntax for regexp search)")+"</span>"}function r(a){return'<span class="CodeMirror-search-label">'+a.phrase("With:")+'</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>'}function s(a){return'<span class="CodeMirror-search-label">'+a.phrase("Replace?")+"</span> <button>"+a.phrase("Yes")+"</button> <button>"+a.phrase("No")+"</button> <button>"+a.phrase("All")+"</button> <button>"+a.phrase("Stop")+"</button> "}function t(a,b,c){a.operation((function(){for(var d=f(a,b);d.findNext();)if("string"!=typeof b){var e=a.getRange(d.from(),d.to()).match(b);d.replace(c.replace(/\$(\d)/g,(function(a,b){return e[b]})))}else d.replace(c)}))}function u(a,b){if(!a.getOption("readOnly")){var c=a.getSelection()||d(a).lastQuery,e='<span class="CodeMirror-search-label">'+(b?a.phrase("Replace all:"):a.phrase("Replace:"))+"</span>";h(a,e+q(a),e,c,(function(c){c&&(c=k(c),h(a,r(a),a.phrase("Replace with:"),"",(function(d){if(d=j(d),b)t(a,c,d);else{o(a);var e=f(a,c,a.getCursor("from")),g=function(){var b,j=e.from();!(b=e.findNext())&&(e=f(a,c),!(b=e.findNext())||j&&e.from().line==j.line&&e.from().ch==j.ch)||(a.setSelection(e.from(),e.to()),a.scrollIntoView({from:e.from(),to:e.to()}),i(a,s(a),a.phrase("Replace?"),[function(){h(b)},g,function(){t(a,c,d)}]))},h=function(a){e.replace("string"==typeof c?d:d.replace(/\$(\d)/g,(function(b,c){return a[c]}))),g()};g()}})))}))}}a.commands.find=function(a){o(a),m(a)},a.commands.findPersistent=function(a){o(a),m(a,!1,!0)},a.commands.findPersistentNext=function(a){m(a,!1,!0,!0)},a.commands.findPersistentPrev=function(a){m(a,!0,!0,!0)},a.commands.findNext=m,a.commands.findPrev=function(a){m(a,!0)},a.commands.clearSearch=o,a.commands.replace=u,a.commands.replaceAll=function(a){u(a,!0)}}));editors/codemirror/addon/search/matchesonscrollbar.js000064400000007341152177723720017161 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./searchcursor"), require("../scroll/annotatescrollbar"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./searchcursor", "../scroll/annotatescrollbar"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineExtension("showMatchesOnScrollbar", function(query, caseFold, options) {
    if (typeof options == "string") options = {className: options};
    if (!options) options = {};
    return new SearchAnnotation(this, query, caseFold, options);
  });

  function SearchAnnotation(cm, query, caseFold, options) {
    this.cm = cm;
    this.options = options;
    var annotateOptions = {listenForChanges: false};
    for (var prop in options) annotateOptions[prop] = options[prop];
    if (!annotateOptions.className) annotateOptions.className = "CodeMirror-search-match";
    this.annotation = cm.annotateScrollbar(annotateOptions);
    this.query = query;
    this.caseFold = caseFold;
    this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};
    this.matches = [];
    this.update = null;

    this.findMatches();
    this.annotation.update(this.matches);

    var self = this;
    cm.on("change", this.changeHandler = function(_cm, change) { self.onChange(change); });
  }

  var MAX_MATCHES = 1000;

  SearchAnnotation.prototype.findMatches = function() {
    if (!this.gap) return;
    for (var i = 0; i < this.matches.length; i++) {
      var match = this.matches[i];
      if (match.from.line >= this.gap.to) break;
      if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);
    }
    var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), this.caseFold);
    var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES;
    while (cursor.findNext()) {
      var match = {from: cursor.from(), to: cursor.to()};
      if (match.from.line >= this.gap.to) break;
      this.matches.splice(i++, 0, match);
      if (this.matches.length > maxMatches) break;
    }
    this.gap = null;
  };

  function offsetLine(line, changeStart, sizeChange) {
    if (line <= changeStart) return line;
    return Math.max(changeStart, line + sizeChange);
  }

  SearchAnnotation.prototype.onChange = function(change) {
    var startLine = change.from.line;
    var endLine = CodeMirror.changeEnd(change).line;
    var sizeChange = endLine - change.to.line;
    if (this.gap) {
      this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);
      this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);
    } else {
      this.gap = {from: change.from.line, to: endLine + 1};
    }

    if (sizeChange) for (var i = 0; i < this.matches.length; i++) {
      var match = this.matches[i];
      var newFrom = offsetLine(match.from.line, startLine, sizeChange);
      if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);
      var newTo = offsetLine(match.to.line, startLine, sizeChange);
      if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);
    }
    clearTimeout(this.update);
    var self = this;
    this.update = setTimeout(function() { self.updateAfterChange(); }, 250);
  };

  SearchAnnotation.prototype.updateAfterChange = function() {
    this.findMatches();
    this.annotation.update(this.matches);
  };

  SearchAnnotation.prototype.clear = function() {
    this.cm.off("change", this.changeHandler);
    this.annotation.clear();
  };
});
editors/codemirror/addon/search/searchcursor.min.js000064400000012143152177723720016555 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.flags;return null!=b?b:(a.ignoreCase?"i":"")+(a.global?"g":"")+(a.multiline?"m":"")}function c(a,c){for(var d=b(a),e=d,f=0;f<c.length;f++)e.indexOf(c.charAt(f))==-1&&(e+=c.charAt(f));return d==e?a:new RegExp(a.source,e)}function d(a){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(a.source)}function e(a,b,d){b=c(b,"g");for(var e=d.line,f=d.ch,g=a.lastLine();e<=g;e++,f=0){b.lastIndex=f;var h=a.getLine(e),i=b.exec(h);if(i)return{from:p(e,i.index),to:p(e,i.index+i[0].length),match:i}}}function f(a,b,f){if(!d(b))return e(a,b,f);b=c(b,"gm");for(var g,h=1,i=f.line,j=a.lastLine();i<=j;){for(var k=0;k<h&&!(i>j);k++){var l=a.getLine(i++);g=null==g?l:g+"\n"+l}h=2*h,b.lastIndex=f.ch;var m=b.exec(g);if(m){var n=g.slice(0,m.index).split("\n"),o=m[0].split("\n"),q=f.line+n.length-1,r=n[n.length-1].length;return{from:p(q,r),to:p(q+o.length-1,1==o.length?r+o[0].length:o[o.length-1].length),match:m}}}}function g(a,b){for(var c,d=0;;){b.lastIndex=d;var e=b.exec(a);if(!e)return c;if(c=e,d=c.index+(c[0].length||1),d==a.length)return c}}function h(a,b,d){b=c(b,"g");for(var e=d.line,f=d.ch,h=a.firstLine();e>=h;e--,f=-1){var i=a.getLine(e);f>-1&&(i=i.slice(0,f));var j=g(i,b);if(j)return{from:p(e,j.index),to:p(e,j.index+j[0].length),match:j}}}function i(a,b,d){b=c(b,"gm");for(var e,f=1,h=d.line,i=a.firstLine();h>=i;){for(var j=0;j<f;j++){var k=a.getLine(h--);e=null==e?k.slice(0,d.ch):k+"\n"+e}f*=2;var l=g(e,b);if(l){var m=e.slice(0,l.index).split("\n"),n=l[0].split("\n"),o=h+m.length,q=m[m.length-1].length;return{from:p(o,q),to:p(o+n.length-1,1==n.length?q+n[0].length:n[n.length-1].length),match:l}}}}function j(a,b,c,d){if(a.length==b.length)return c;for(var e=0,f=c+Math.max(0,a.length-b.length);;){if(e==f)return e;var g=e+f>>1,h=d(a.slice(0,g)).length;if(h==c)return g;h>c?f=g:e=g+1}}function k(a,b,c,d){if(!b.length)return null;var e=d?n:o,f=e(b).split(/\r|\n\r?/);a:for(var g=c.line,h=c.ch,i=a.lastLine()+1-f.length;g<=i;g++,h=0){var k=a.getLine(g).slice(h),l=e(k);if(1==f.length){var m=l.indexOf(f[0]);if(m==-1)continue a;var c=j(k,l,m,e)+h;return{from:p(g,j(k,l,m,e)+h),to:p(g,j(k,l,m+f[0].length,e)+h)}}var q=l.length-f[0].length;if(l.slice(q)==f[0]){for(var r=1;r<f.length-1;r++)if(e(a.getLine(g+r))!=f[r])continue a;var s=a.getLine(g+f.length-1),t=e(s),u=f[f.length-1];if(t.slice(0,u.length)==u)return{from:p(g,j(k,l,q,e)+h),to:p(g+f.length-1,j(s,t,u.length,e))}}}}function l(a,b,c,d){if(!b.length)return null;var e=d?n:o,f=e(b).split(/\r|\n\r?/);a:for(var g=c.line,h=c.ch,i=a.firstLine()-1+f.length;g>=i;g--,h=-1){var k=a.getLine(g);h>-1&&(k=k.slice(0,h));var l=e(k);if(1==f.length){var m=l.lastIndexOf(f[0]);if(m==-1)continue a;return{from:p(g,j(k,l,m,e)),to:p(g,j(k,l,m+f[0].length,e))}}var q=f[f.length-1];if(l.slice(0,q.length)==q){for(var r=1,c=g-f.length+1;r<f.length-1;r++)if(e(a.getLine(c+r))!=f[r])continue a;var s=a.getLine(g+1-f.length),t=e(s);if(t.slice(t.length-f[0].length)==f[0])return{from:p(g+1-f.length,j(s,t,s.length-f[0].length,e)),to:p(g,j(k,l,q.length,e))}}}}function m(a,b,d,g){this.atOccurrence=!1,this.doc=a,d=d?a.clipPos(d):p(0,0),this.pos={from:d,to:d};var j;"object"==typeof g?j=g.caseFold:(j=g,g=null),"string"==typeof b?(null==j&&(j=!1),this.matches=function(c,d){return(c?l:k)(a,b,d,j)}):(b=c(b,"gm"),g&&g.multiline===!1?this.matches=function(c,d){return(c?h:e)(a,b,d)}:this.matches=function(c,d){return(c?i:f)(a,b,d)})}var n,o,p=a.Pos;String.prototype.normalize?(n=function(a){return a.normalize("NFD").toLowerCase()},o=function(a){return a.normalize("NFD")}):(n=function(a){return a.toLowerCase()},o=function(a){return a}),m.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(b){for(var c=this.matches(b,this.doc.clipPos(b?this.pos.from:this.pos.to));c&&0==a.cmpPos(c.from,c.to);)b?c.from.ch?c.from=p(c.from.line,c.from.ch-1):c=c.from.line==this.doc.firstLine()?null:this.matches(b,this.doc.clipPos(p(c.from.line-1))):c.to.ch<this.doc.getLine(c.to.line).length?c.to=p(c.to.line,c.to.ch+1):c=c.to.line==this.doc.lastLine()?null:this.matches(b,p(c.to.line+1,0));if(c)return this.pos=c,this.atOccurrence=!0,this.pos.match||!0;var d=p(b?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:d,to:d},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(b,c){if(this.atOccurrence){var d=a.splitLines(b);this.doc.replaceRange(d,this.pos.from,this.pos.to,c),this.pos.to=p(this.pos.from.line+d.length-1,d[d.length-1].length+(1==d.length?this.pos.from.ch:0))}}},a.defineExtension("getSearchCursor",(function(a,b,c){return new m(this.doc,a,b,c)})),a.defineDocExtension("getSearchCursor",(function(a,b,c){return new m(this,a,b,c)})),a.defineExtension("selectMatches",(function(b,c){for(var d=[],e=this.getSearchCursor(b,this.getCursor("from"),c);e.findNext()&&!(a.cmpPos(e.to(),this.getCursor("to"))>0);)d.push({anchor:e.from(),head:e.to()});d.length&&this.setSelections(d,0)}))}));editors/codemirror/addon/search/searchcursor.js000064400000027300152177723720015774 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"))
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod)
  else // Plain browser env
    mod(CodeMirror)
})(function(CodeMirror) {
  "use strict"
  var Pos = CodeMirror.Pos

  function regexpFlags(regexp) {
    var flags = regexp.flags
    return flags != null ? flags : (regexp.ignoreCase ? "i" : "")
      + (regexp.global ? "g" : "")
      + (regexp.multiline ? "m" : "")
  }

  function ensureFlags(regexp, flags) {
    var current = regexpFlags(regexp), target = current
    for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)
      target += flags.charAt(i)
    return current == target ? regexp : new RegExp(regexp.source, target)
  }

  function maybeMultiline(regexp) {
    return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source)
  }

  function searchRegexpForward(doc, regexp, start) {
    regexp = ensureFlags(regexp, "g")
    for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
      regexp.lastIndex = ch
      var string = doc.getLine(line), match = regexp.exec(string)
      if (match)
        return {from: Pos(line, match.index),
                to: Pos(line, match.index + match[0].length),
                match: match}
    }
  }

  function searchRegexpForwardMultiline(doc, regexp, start) {
    if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)

    regexp = ensureFlags(regexp, "gm")
    var string, chunk = 1
    for (var line = start.line, last = doc.lastLine(); line <= last;) {
      // This grows the search buffer in exponentially-sized chunks
      // between matches, so that nearby matches are fast and don't
      // require concatenating the whole document (in case we're
      // searching for something that has tons of matches), but at the
      // same time, the amount of retries is limited.
      for (var i = 0; i < chunk; i++) {
        if (line > last) break
        var curLine = doc.getLine(line++)
        string = string == null ? curLine : string + "\n" + curLine
      }
      chunk = chunk * 2
      regexp.lastIndex = start.ch
      var match = regexp.exec(string)
      if (match) {
        var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
        var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length
        return {from: Pos(startLine, startCh),
                to: Pos(startLine + inside.length - 1,
                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
                match: match}
      }
    }
  }

  function lastMatchIn(string, regexp) {
    var cutOff = 0, match
    for (;;) {
      regexp.lastIndex = cutOff
      var newMatch = regexp.exec(string)
      if (!newMatch) return match
      match = newMatch
      cutOff = match.index + (match[0].length || 1)
      if (cutOff == string.length) return match
    }
  }

  function searchRegexpBackward(doc, regexp, start) {
    regexp = ensureFlags(regexp, "g")
    for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
      var string = doc.getLine(line)
      if (ch > -1) string = string.slice(0, ch)
      var match = lastMatchIn(string, regexp)
      if (match)
        return {from: Pos(line, match.index),
                to: Pos(line, match.index + match[0].length),
                match: match}
    }
  }

  function searchRegexpBackwardMultiline(doc, regexp, start) {
    regexp = ensureFlags(regexp, "gm")
    var string, chunk = 1
    for (var line = start.line, first = doc.firstLine(); line >= first;) {
      for (var i = 0; i < chunk; i++) {
        var curLine = doc.getLine(line--)
        string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string
      }
      chunk *= 2

      var match = lastMatchIn(string, regexp)
      if (match) {
        var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
        var startLine = line + before.length, startCh = before[before.length - 1].length
        return {from: Pos(startLine, startCh),
                to: Pos(startLine + inside.length - 1,
                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
                match: match}
      }
    }
  }

  var doFold, noFold
  if (String.prototype.normalize) {
    doFold = function(str) { return str.normalize("NFD").toLowerCase() }
    noFold = function(str) { return str.normalize("NFD") }
  } else {
    doFold = function(str) { return str.toLowerCase() }
    noFold = function(str) { return str }
  }

  // Maps a position in a case-folded line back to a position in the original line
  // (compensating for codepoints increasing in number during folding)
  function adjustPos(orig, folded, pos, foldFunc) {
    if (orig.length == folded.length) return pos
    for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {
      if (min == max) return min
      var mid = (min + max) >> 1
      var len = foldFunc(orig.slice(0, mid)).length
      if (len == pos) return mid
      else if (len > pos) max = mid
      else min = mid + 1
    }
  }

  function searchStringForward(doc, query, start, caseFold) {
    // Empty string would match anything and never progress, so we
    // define it to match nothing instead.
    if (!query.length) return null
    var fold = caseFold ? doFold : noFold
    var lines = fold(query).split(/\r|\n\r?/)

    search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {
      var orig = doc.getLine(line).slice(ch), string = fold(orig)
      if (lines.length == 1) {
        var found = string.indexOf(lines[0])
        if (found == -1) continue search
        var start = adjustPos(orig, string, found, fold) + ch
        return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),
                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}
      } else {
        var cutFrom = string.length - lines[0].length
        if (string.slice(cutFrom) != lines[0]) continue search
        for (var i = 1; i < lines.length - 1; i++)
          if (fold(doc.getLine(line + i)) != lines[i]) continue search
        var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
        if (endString.slice(0, lastLine.length) != lastLine) continue search
        return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
                to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
      }
    }
  }

  function searchStringBackward(doc, query, start, caseFold) {
    if (!query.length) return null
    var fold = caseFold ? doFold : noFold
    var lines = fold(query).split(/\r|\n\r?/)

    search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {
      var orig = doc.getLine(line)
      if (ch > -1) orig = orig.slice(0, ch)
      var string = fold(orig)
      if (lines.length == 1) {
        var found = string.lastIndexOf(lines[0])
        if (found == -1) continue search
        return {from: Pos(line, adjustPos(orig, string, found, fold)),
                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}
      } else {
        var lastLine = lines[lines.length - 1]
        if (string.slice(0, lastLine.length) != lastLine) continue search
        for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)
          if (fold(doc.getLine(start + i)) != lines[i]) continue search
        var top = doc.getLine(line + 1 - lines.length), topString = fold(top)
        if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search
        return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),
                to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}
      }
    }
  }

  function SearchCursor(doc, query, pos, options) {
    this.atOccurrence = false
    this.doc = doc
    pos = pos ? doc.clipPos(pos) : Pos(0, 0)
    this.pos = {from: pos, to: pos}

    var caseFold
    if (typeof options == "object") {
      caseFold = options.caseFold
    } else { // Backwards compat for when caseFold was the 4th argument
      caseFold = options
      options = null
    }

    if (typeof query == "string") {
      if (caseFold == null) caseFold = false
      this.matches = function(reverse, pos) {
        return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
      }
    } else {
      query = ensureFlags(query, "gm")
      if (!options || options.multiline !== false)
        this.matches = function(reverse, pos) {
          return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
        }
      else
        this.matches = function(reverse, pos) {
          return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)
        }
    }
  }

  SearchCursor.prototype = {
    findNext: function() {return this.find(false)},
    findPrevious: function() {return this.find(true)},

    find: function(reverse) {
      var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))

      // Implements weird auto-growing behavior on null-matches for
      // backwards-compatiblity with the vim code (unfortunately)
      while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {
        if (reverse) {
          if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)
          else if (result.from.line == this.doc.firstLine()) result = null
          else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))
        } else {
          if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)
          else if (result.to.line == this.doc.lastLine()) result = null
          else result = this.matches(reverse, Pos(result.to.line + 1, 0))
        }
      }

      if (result) {
        this.pos = result
        this.atOccurrence = true
        return this.pos.match || true
      } else {
        var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)
        this.pos = {from: end, to: end}
        return this.atOccurrence = false
      }
    },

    from: function() {if (this.atOccurrence) return this.pos.from},
    to: function() {if (this.atOccurrence) return this.pos.to},

    replace: function(newText, origin) {
      if (!this.atOccurrence) return
      var lines = CodeMirror.splitLines(newText)
      this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)
      this.pos.to = Pos(this.pos.from.line + lines.length - 1,
                        lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))
    }
  }

  CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
    return new SearchCursor(this.doc, query, pos, caseFold)
  })
  CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
    return new SearchCursor(this, query, pos, caseFold)
  })

  CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
    var ranges = []
    var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold)
    while (cur.findNext()) {
      if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break
      ranges.push({anchor: cur.from(), head: cur.to()})
    }
    if (ranges.length)
      this.setSelections(ranges, 0)
  })
});
editors/codemirror/addon/search/search.js000064400000024665152177723720014551 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Define search commands. Depends on dialog.js or another
// implementation of the openDialog method.

// Replace works a little oddly -- it will do the replace on the next
// Ctrl-G (or whatever is bound to findNext) press. You prevent a
// replace by making sure the match is no longer selected when hitting
// Ctrl-G.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./searchcursor"), require("../dialog/dialog"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./searchcursor", "../dialog/dialog"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function searchOverlay(query, caseInsensitive) {
    if (typeof query == "string")
      query = new RegExp(query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), caseInsensitive ? "gi" : "g");
    else if (!query.global)
      query = new RegExp(query.source, query.ignoreCase ? "gi" : "g");

    return {token: function(stream) {
      query.lastIndex = stream.pos;
      var match = query.exec(stream.string);
      if (match && match.index == stream.pos) {
        stream.pos += match[0].length || 1;
        return "searching";
      } else if (match) {
        stream.pos = match.index;
      } else {
        stream.skipToEnd();
      }
    }};
  }

  function SearchState() {
    this.posFrom = this.posTo = this.lastQuery = this.query = null;
    this.overlay = null;
  }

  function getSearchState(cm) {
    return cm.state.search || (cm.state.search = new SearchState());
  }

  function queryCaseInsensitive(query) {
    return typeof query == "string" && query == query.toLowerCase();
  }

  function getSearchCursor(cm, query, pos) {
    // Heuristic: if the query string is all lowercase, do a case insensitive search.
    return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});
  }

  function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {
    cm.openDialog(text, onEnter, {
      value: deflt,
      selectValueOnOpen: true,
      closeOnEnter: false,
      onClose: function() { clearSearch(cm); },
      onKeyDown: onKeyDown
    });
  }

  function dialog(cm, text, shortText, deflt, f) {
    if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});
    else f(prompt(shortText, deflt));
  }

  function confirmDialog(cm, text, shortText, fs) {
    if (cm.openConfirm) cm.openConfirm(text, fs);
    else if (confirm(shortText)) fs[0]();
  }

  function parseString(string) {
    return string.replace(/\\(.)/g, function(_, ch) {
      if (ch == "n") return "\n"
      if (ch == "r") return "\r"
      return ch
    })
  }

  function parseQuery(query) {
    var isRE = query.match(/^\/(.*)\/([a-z]*)$/);
    if (isRE) {
      try { query = new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i"); }
      catch(e) {} // Not a regular expression after all, do a string search
    } else {
      query = parseString(query)
    }
    if (typeof query == "string" ? query == "" : query.test(""))
      query = /x^/;
    return query;
  }

  function startSearch(cm, state, query) {
    state.queryText = query;
    state.query = parseQuery(query);
    cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));
    state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));
    cm.addOverlay(state.overlay);
    if (cm.showMatchesOnScrollbar) {
      if (state.annotate) { state.annotate.clear(); state.annotate = null; }
      state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));
    }
  }

  function doSearch(cm, rev, persistent, immediate) {
    var state = getSearchState(cm);
    if (state.query) return findNext(cm, rev);
    var q = cm.getSelection() || state.lastQuery;
    if (q instanceof RegExp && q.source == "x^") q = null
    if (persistent && cm.openDialog) {
      var hiding = null
      var searchNext = function(query, event) {
        CodeMirror.e_stop(event);
        if (!query) return;
        if (query != state.queryText) {
          startSearch(cm, state, query);
          state.posFrom = state.posTo = cm.getCursor();
        }
        if (hiding) hiding.style.opacity = 1
        findNext(cm, event.shiftKey, function(_, to) {
          var dialog
          if (to.line < 3 && document.querySelector &&
              (dialog = cm.display.wrapper.querySelector(".CodeMirror-dialog")) &&
              dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, "window").top)
            (hiding = dialog).style.opacity = .4
        })
      };
      persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {
        var keyName = CodeMirror.keyName(event)
        var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
        if (cmd == "findNext" || cmd == "findPrev" ||
          cmd == "findPersistentNext" || cmd == "findPersistentPrev") {
          CodeMirror.e_stop(event);
          startSearch(cm, getSearchState(cm), query);
          cm.execCommand(cmd);
        } else if (cmd == "find" || cmd == "findPersistent") {
          CodeMirror.e_stop(event);
          searchNext(query, event);
        }
      });
      if (immediate && q) {
        startSearch(cm, state, q);
        findNext(cm, rev);
      }
    } else {
      dialog(cm, getQueryDialog(cm), "Search for:", q, function(query) {
        if (query && !state.query) cm.operation(function() {
          startSearch(cm, state, query);
          state.posFrom = state.posTo = cm.getCursor();
          findNext(cm, rev);
        });
      });
    }
  }

  function findNext(cm, rev, callback) {cm.operation(function() {
    var state = getSearchState(cm);
    var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);
    if (!cursor.find(rev)) {
      cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));
      if (!cursor.find(rev)) return;
    }
    cm.setSelection(cursor.from(), cursor.to());
    cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);
    state.posFrom = cursor.from(); state.posTo = cursor.to();
    if (callback) callback(cursor.from(), cursor.to())
  });}

  function clearSearch(cm) {cm.operation(function() {
    var state = getSearchState(cm);
    state.lastQuery = state.query;
    if (!state.query) return;
    state.query = state.queryText = null;
    cm.removeOverlay(state.overlay);
    if (state.annotate) { state.annotate.clear(); state.annotate = null; }
  });}


  function getQueryDialog(cm)  {
    return '<span class="CodeMirror-search-label">' + cm.phrase("Search:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
  }
  function getReplaceQueryDialog(cm) {
    return ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
  }
  function getReplacementQueryDialog(cm) {
    return '<span class="CodeMirror-search-label">' + cm.phrase("With:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
  }
  function getDoReplaceConfirm(cm) {
    return '<span class="CodeMirror-search-label">' + cm.phrase("Replace?") + '</span> <button>' + cm.phrase("Yes") + '</button> <button>' + cm.phrase("No") + '</button> <button>' + cm.phrase("All") + '</button> <button>' + cm.phrase("Stop") + '</button> ';
  }

  function replaceAll(cm, query, text) {
    cm.operation(function() {
      for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {
        if (typeof query != "string") {
          var match = cm.getRange(cursor.from(), cursor.to()).match(query);
          cursor.replace(text.replace(/\$(\d)/g, function(_, i) {return match[i];}));
        } else cursor.replace(text);
      }
    });
  }

  function replace(cm, all) {
    if (cm.getOption("readOnly")) return;
    var query = cm.getSelection() || getSearchState(cm).lastQuery;
    var dialogText = '<span class="CodeMirror-search-label">' + (all ? cm.phrase("Replace all:") : cm.phrase("Replace:")) + '</span>';
    dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {
      if (!query) return;
      query = parseQuery(query);
      dialog(cm, getReplacementQueryDialog(cm), cm.phrase("Replace with:"), "", function(text) {
        text = parseString(text)
        if (all) {
          replaceAll(cm, query, text)
        } else {
          clearSearch(cm);
          var cursor = getSearchCursor(cm, query, cm.getCursor("from"));
          var advance = function() {
            var start = cursor.from(), match;
            if (!(match = cursor.findNext())) {
              cursor = getSearchCursor(cm, query);
              if (!(match = cursor.findNext()) ||
                  (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;
            }
            cm.setSelection(cursor.from(), cursor.to());
            cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
            confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase("Replace?"),
                          [function() {doReplace(match);}, advance,
                           function() {replaceAll(cm, query, text)}]);
          };
          var doReplace = function(match) {
            cursor.replace(typeof query == "string" ? text :
                           text.replace(/\$(\d)/g, function(_, i) {return match[i];}));
            advance();
          };
          advance();
        }
      });
    });
  }

  CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};
  CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};
  CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};
  CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};
  CodeMirror.commands.findNext = doSearch;
  CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};
  CodeMirror.commands.clearSearch = clearSearch;
  CodeMirror.commands.replace = replace;
  CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};
});
editors/codemirror/addon/search/matchesonscrollbar.min.js000064400000004161152177723720017740 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./searchcursor"),require("../scroll/annotatescrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../scroll/annotatescrollbar"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c,d){this.cm=a,this.options=d;var e={listenForChanges:!1};for(var f in d)e[f]=d[f];e.className||(e.className="CodeMirror-search-match"),this.annotation=a.annotateScrollbar(e),this.query=b,this.caseFold=c,this.gap={from:a.firstLine(),to:a.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var g=this;a.on("change",this.changeHandler=function(a,b){g.onChange(b)})}function c(a,b,c){return a<=b?a:Math.max(b,a+c)}a.defineExtension("showMatchesOnScrollbar",(function(a,c,d){return"string"==typeof d&&(d={className:d}),d||(d={}),new b(this,a,c,d)}));var d=1e3;b.prototype.findMatches=function(){if(this.gap){for(var b=0;b<this.matches.length;b++){var c=this.matches[b];if(c.from.line>=this.gap.to)break;c.to.line>=this.gap.from&&this.matches.splice(b--,1)}for(var e=this.cm.getSearchCursor(this.query,a.Pos(this.gap.from,0),this.caseFold),f=this.options&&this.options.maxMatches||d;e.findNext();){var c={from:e.from(),to:e.to()};if(c.from.line>=this.gap.to)break;if(this.matches.splice(b++,0,c),this.matches.length>f)break}this.gap=null}},b.prototype.onChange=function(b){var d=b.from.line,e=a.changeEnd(b).line,f=e-b.to.line;if(this.gap?(this.gap.from=Math.min(c(this.gap.from,d,f),b.from.line),this.gap.to=Math.max(c(this.gap.to,d,f),b.from.line)):this.gap={from:b.from.line,to:e+1},f)for(var g=0;g<this.matches.length;g++){var h=this.matches[g],i=c(h.from.line,d,f);i!=h.from.line&&(h.from=a.Pos(i,h.from.ch));var j=c(h.to.line,d,f);j!=h.to.line&&(h.to=a.Pos(j,h.to.ch))}clearTimeout(this.update);var k=this;this.update=setTimeout((function(){k.updateAfterChange()}),250)},b.prototype.updateAfterChange=function(){this.findMatches(),this.annotation.update(this.matches)},b.prototype.clear=function(){this.cm.off("change",this.changeHandler),this.annotation.clear()}}));editors/codemirror/addon/search/matchesonscrollbar.css000064400000000274152177723720017333 0ustar00.CodeMirror-search-match {
  background: gold;
  border-top: 1px solid orange;
  border-bottom: 1px solid orange;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  opacity: .5;
}
editors/codemirror/addon/search/matchesonscrollbar.min.css000064400000000240152177723720020106 0ustar00.CodeMirror-search-match{background:gold;border-top:1px solid orange;border-bottom:1px solid orange;-moz-box-sizing:border-box;box-sizing:border-box;opacity:.5}editors/codemirror/addon/search/match-highlighter.js000064400000013620152177723720016661 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Highlighting text that matches the selection
//
// Defines an option highlightSelectionMatches, which, when enabled,
// will style strings that match the selection throughout the
// document.
//
// The option can be set to true to simply enable it, or to a
// {minChars, style, wordsOnly, showToken, delay} object to explicitly
// configure it. minChars is the minimum amount of characters that should be
// selected for the behavior to occur, and style is the token style to
// apply to the matches. This will be prefixed by "cm-" to create an
// actual CSS class name. If wordsOnly is enabled, the matches will be
// highlighted only if the selected text is a word. showToken, when enabled,
// will cause the current token to be highlighted when nothing is selected.
// delay is used to specify how much time to wait, in milliseconds, before
// highlighting the matches. If annotateScrollbar is enabled, the occurences
// will be highlighted on the scrollbar via the matchesonscrollbar addon.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("./matchesonscrollbar"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "./matchesonscrollbar"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var defaults = {
    style: "matchhighlight",
    minChars: 2,
    delay: 100,
    wordsOnly: false,
    annotateScrollbar: false,
    showToken: false,
    trim: true
  }

  function State(options) {
    this.options = {}
    for (var name in defaults)
      this.options[name] = (options && options.hasOwnProperty(name) ? options : defaults)[name]
    this.overlay = this.timeout = null;
    this.matchesonscroll = null;
    this.active = false;
  }

  CodeMirror.defineOption("highlightSelectionMatches", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      removeOverlay(cm);
      clearTimeout(cm.state.matchHighlighter.timeout);
      cm.state.matchHighlighter = null;
      cm.off("cursorActivity", cursorActivity);
      cm.off("focus", onFocus)
    }
    if (val) {
      var state = cm.state.matchHighlighter = new State(val);
      if (cm.hasFocus()) {
        state.active = true
        highlightMatches(cm)
      } else {
        cm.on("focus", onFocus)
      }
      cm.on("cursorActivity", cursorActivity);
    }
  });

  function cursorActivity(cm) {
    var state = cm.state.matchHighlighter;
    if (state.active || cm.hasFocus()) scheduleHighlight(cm, state)
  }

  function onFocus(cm) {
    var state = cm.state.matchHighlighter
    if (!state.active) {
      state.active = true
      scheduleHighlight(cm, state)
    }
  }

  function scheduleHighlight(cm, state) {
    clearTimeout(state.timeout);
    state.timeout = setTimeout(function() {highlightMatches(cm);}, state.options.delay);
  }

  function addOverlay(cm, query, hasBoundary, style) {
    var state = cm.state.matchHighlighter;
    cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
    if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
      var searchFor = hasBoundary ? new RegExp("\\b" + query.replace(/[\\\[.+*?(){|^$]/g, "\\$&") + "\\b") : query;
      state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
        {className: "CodeMirror-selection-highlight-scrollbar"});
    }
  }

  function removeOverlay(cm) {
    var state = cm.state.matchHighlighter;
    if (state.overlay) {
      cm.removeOverlay(state.overlay);
      state.overlay = null;
      if (state.matchesonscroll) {
        state.matchesonscroll.clear();
        state.matchesonscroll = null;
      }
    }
  }

  function highlightMatches(cm) {
    cm.operation(function() {
      var state = cm.state.matchHighlighter;
      removeOverlay(cm);
      if (!cm.somethingSelected() && state.options.showToken) {
        var re = state.options.showToken === true ? /[\w$]/ : state.options.showToken;
        var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;
        while (start && re.test(line.charAt(start - 1))) --start;
        while (end < line.length && re.test(line.charAt(end))) ++end;
        if (start < end)
          addOverlay(cm, line.slice(start, end), re, state.options.style);
        return;
      }
      var from = cm.getCursor("from"), to = cm.getCursor("to");
      if (from.line != to.line) return;
      if (state.options.wordsOnly && !isWord(cm, from, to)) return;
      var selection = cm.getRange(from, to)
      if (state.options.trim) selection = selection.replace(/^\s+|\s+$/g, "")
      if (selection.length >= state.options.minChars)
        addOverlay(cm, selection, false, state.options.style);
    });
  }

  function isWord(cm, from, to) {
    var str = cm.getRange(from, to);
    if (str.match(/^\w+$/) !== null) {
        if (from.ch > 0) {
            var pos = {line: from.line, ch: from.ch - 1};
            var chr = cm.getRange(pos, from);
            if (chr.match(/\W/) === null) return false;
        }
        if (to.ch < cm.getLine(from.line).length) {
            var pos = {line: to.line, ch: to.ch + 1};
            var chr = cm.getRange(to, pos);
            if (chr.match(/\W/) === null) return false;
        }
        return true;
    } else return false;
  }

  function boundariesAround(stream, re) {
    return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&
      (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));
  }

  function makeOverlay(query, hasBoundary, style) {
    return {token: function(stream) {
      if (stream.match(query) &&
          (!hasBoundary || boundariesAround(stream, hasBoundary)))
        return style;
      stream.next();
      stream.skipTo(query.charAt(0)) || stream.skipToEnd();
    }};
  }
});
editors/codemirror/addon/search/jump-to-line.min.js000064400000002224152177723720016371 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../dialog/dialog"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c,d,e){a.openDialog?a.openDialog(b,e,{value:d,selectValueOnOpen:!0}):e(prompt(c,d))}function c(a){return a.phrase("Jump to line:")+' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">'+a.phrase("(Use line:column or scroll% syntax)")+"</span>"}function d(a,b){var c=Number(b);return/^[-+]/.test(b)?a.getCursor().line+c:c-1}a.commands.jumpToLine=function(a){var e=a.getCursor();b(a,c(a),a.phrase("Jump to line:"),e.line+1+":"+e.ch,(function(b){if(b){var c;if(c=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(b))a.setCursor(d(a,c[1]),Number(c[2]));else if(c=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(b)){var f=Math.round(a.lineCount()*Number(c[1])/100);/^[-+]/.test(c[1])&&(f=e.line+f+1),a.setCursor(f-1,e.ch)}else(c=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(b))&&a.setCursor(d(a,c[1]),e.ch)}}))},a.keyMap.default["Alt-G"]="jumpToLine"}));editors/codemirror/addon/search/jump-to-line.js000064400000003741152177723720015614 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Defines jumpToLine command. Uses dialog.js if present.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../dialog/dialog"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../dialog/dialog"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function dialog(cm, text, shortText, deflt, f) {
    if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});
    else f(prompt(shortText, deflt));
  }

  function getJumpDialog(cm) {
    return cm.phrase("Jump to line:") + ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use line:column or scroll% syntax)") + '</span>';
  }

  function interpretLine(cm, string) {
    var num = Number(string)
    if (/^[-+]/.test(string)) return cm.getCursor().line + num
    else return num - 1
  }

  CodeMirror.commands.jumpToLine = function(cm) {
    var cur = cm.getCursor();
    dialog(cm, getJumpDialog(cm), cm.phrase("Jump to line:"), (cur.line + 1) + ":" + cur.ch, function(posStr) {
      if (!posStr) return;

      var match;
      if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) {
        cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))
      } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) {
        var line = Math.round(cm.lineCount() * Number(match[1]) / 100);
        if (/^[-+]/.test(match[1])) line = cur.line + line + 1;
        cm.setCursor(line - 1, cur.ch);
      } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) {
        cm.setCursor(interpretLine(cm, match[1]), cur.ch);
      }
    });
  };

  CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine";
});
editors/codemirror/addon/search/match-highlighter.min.js000064400000005272152177723720017447 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],a):a(CodeMirror)})((function(a){"use strict";function b(a){this.options={};for(var b in l)this.options[b]=(a&&a.hasOwnProperty(b)?a:l)[b];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function c(a){var b=a.state.matchHighlighter;(b.active||a.hasFocus())&&e(a,b)}function d(a){var b=a.state.matchHighlighter;b.active||(b.active=!0,e(a,b))}function e(a,b){clearTimeout(b.timeout),b.timeout=setTimeout((function(){h(a)}),b.options.delay)}function f(a,b,c,d){var e=a.state.matchHighlighter;if(a.addOverlay(e.overlay=k(b,c,d)),e.options.annotateScrollbar&&a.showMatchesOnScrollbar){var f=c?new RegExp("\\b"+b.replace(/[\\\[.+*?(){|^$]/g,"\\$&")+"\\b"):b;e.matchesonscroll=a.showMatchesOnScrollbar(f,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function g(a){var b=a.state.matchHighlighter;b.overlay&&(a.removeOverlay(b.overlay),b.overlay=null,b.matchesonscroll&&(b.matchesonscroll.clear(),b.matchesonscroll=null))}function h(a){a.operation((function(){var b=a.state.matchHighlighter;if(g(a),!a.somethingSelected()&&b.options.showToken){for(var c=b.options.showToken===!0?/[\w$]/:b.options.showToken,d=a.getCursor(),e=a.getLine(d.line),h=d.ch,j=h;h&&c.test(e.charAt(h-1));)--h;for(;j<e.length&&c.test(e.charAt(j));)++j;return void(h<j&&f(a,e.slice(h,j),c,b.options.style))}var k=a.getCursor("from"),l=a.getCursor("to");if(k.line==l.line&&(!b.options.wordsOnly||i(a,k,l))){var m=a.getRange(k,l);b.options.trim&&(m=m.replace(/^\s+|\s+$/g,"")),m.length>=b.options.minChars&&f(a,m,!1,b.options.style)}}))}function i(a,b,c){var d=a.getRange(b,c);if(null!==d.match(/^\w+$/)){if(b.ch>0){var e={line:b.line,ch:b.ch-1},f=a.getRange(e,b);if(null===f.match(/\W/))return!1}if(c.ch<a.getLine(b.line).length){var e={line:c.line,ch:c.ch+1},f=a.getRange(c,e);if(null===f.match(/\W/))return!1}return!0}return!1}function j(a,b){return!(a.start&&b.test(a.string.charAt(a.start-1))||a.pos!=a.string.length&&b.test(a.string.charAt(a.pos)))}function k(a,b,c){return{token:function(d){return!d.match(a)||b&&!j(d,b)?(d.next(),void(d.skipTo(a.charAt(0))||d.skipToEnd())):c}}}var l={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};a.defineOption("highlightSelectionMatches",!1,(function(e,f,i){if(i&&i!=a.Init&&(g(e),clearTimeout(e.state.matchHighlighter.timeout),e.state.matchHighlighter=null,e.off("cursorActivity",c),e.off("focus",d)),f){var j=e.state.matchHighlighter=new b(f);e.hasFocus()?(j.active=!0,h(e)):e.on("focus",d),e.on("cursorActivity",c)}}))}));editors/codemirror/addon/dialog/dialog.css000064400000000773152177723720014703 0ustar00.CodeMirror-dialog {
  position: absolute;
  left: 0; right: 0;
  background: inherit;
  z-index: 15;
  padding: .1em .8em;
  overflow: hidden;
  color: inherit;
}

.CodeMirror-dialog-top {
  border-bottom: 1px solid #eee;
  top: 0;
}

.CodeMirror-dialog-bottom {
  border-top: 1px solid #eee;
  bottom: 0;
}

.CodeMirror-dialog input {
  border: none;
  outline: none;
  background: transparent;
  width: 20em;
  color: inherit;
  font-family: monospace;
}

.CodeMirror-dialog button {
  font-size: 70%;
}
editors/codemirror/addon/dialog/dialog.js000064400000012067152177723720014526 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Open simple dialogs on top of an editor. Relies on dialog.css.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  function dialogDiv(cm, template, bottom) {
    var wrap = cm.getWrapperElement();
    var dialog;
    dialog = wrap.appendChild(document.createElement("div"));
    if (bottom)
      dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";
    else
      dialog.className = "CodeMirror-dialog CodeMirror-dialog-top";

    if (typeof template == "string") {
      dialog.innerHTML = template;
    } else { // Assuming it's a detached DOM element.
      dialog.appendChild(template);
    }
    CodeMirror.addClass(wrap, 'dialog-opened');
    return dialog;
  }

  function closeNotification(cm, newVal) {
    if (cm.state.currentNotificationClose)
      cm.state.currentNotificationClose();
    cm.state.currentNotificationClose = newVal;
  }

  CodeMirror.defineExtension("openDialog", function(template, callback, options) {
    if (!options) options = {};

    closeNotification(this, null);

    var dialog = dialogDiv(this, template, options.bottom);
    var closed = false, me = this;
    function close(newVal) {
      if (typeof newVal == 'string') {
        inp.value = newVal;
      } else {
        if (closed) return;
        closed = true;
        CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
        dialog.parentNode.removeChild(dialog);
        me.focus();

        if (options.onClose) options.onClose(dialog);
      }
    }

    var inp = dialog.getElementsByTagName("input")[0], button;
    if (inp) {
      inp.focus();

      if (options.value) {
        inp.value = options.value;
        if (options.selectValueOnOpen !== false) {
          inp.select();
        }
      }

      if (options.onInput)
        CodeMirror.on(inp, "input", function(e) { options.onInput(e, inp.value, close);});
      if (options.onKeyUp)
        CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);});

      CodeMirror.on(inp, "keydown", function(e) {
        if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }
        if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {
          inp.blur();
          CodeMirror.e_stop(e);
          close();
        }
        if (e.keyCode == 13) callback(inp.value, e);
      });

      if (options.closeOnBlur !== false) CodeMirror.on(inp, "blur", close);
    } else if (button = dialog.getElementsByTagName("button")[0]) {
      CodeMirror.on(button, "click", function() {
        close();
        me.focus();
      });

      if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close);

      button.focus();
    }
    return close;
  });

  CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) {
    closeNotification(this, null);
    var dialog = dialogDiv(this, template, options && options.bottom);
    var buttons = dialog.getElementsByTagName("button");
    var closed = false, me = this, blurring = 1;
    function close() {
      if (closed) return;
      closed = true;
      CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
      dialog.parentNode.removeChild(dialog);
      me.focus();
    }
    buttons[0].focus();
    for (var i = 0; i < buttons.length; ++i) {
      var b = buttons[i];
      (function(callback) {
        CodeMirror.on(b, "click", function(e) {
          CodeMirror.e_preventDefault(e);
          close();
          if (callback) callback(me);
        });
      })(callbacks[i]);
      CodeMirror.on(b, "blur", function() {
        --blurring;
        setTimeout(function() { if (blurring <= 0) close(); }, 200);
      });
      CodeMirror.on(b, "focus", function() { ++blurring; });
    }
  });

  /*
   * openNotification
   * Opens a notification, that can be closed with an optional timer
   * (default 5000ms timer) and always closes on click.
   *
   * If a notification is opened while another is opened, it will close the
   * currently opened one and open the new one immediately.
   */
  CodeMirror.defineExtension("openNotification", function(template, options) {
    closeNotification(this, close);
    var dialog = dialogDiv(this, template, options && options.bottom);
    var closed = false, doneTimer;
    var duration = options && typeof options.duration !== "undefined" ? options.duration : 5000;

    function close() {
      if (closed) return;
      closed = true;
      clearTimeout(doneTimer);
      CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
      dialog.parentNode.removeChild(dialog);
    }

    CodeMirror.on(dialog, 'click', function(e) {
      CodeMirror.e_preventDefault(e);
      close();
    });

    if (duration)
      doneTimer = setTimeout(close, duration);

    return close;
  });
});
editors/codemirror/addon/dialog/dialog.min.js000064400000004462152177723720015310 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(b,c,d){var e,f=b.getWrapperElement();return e=f.appendChild(document.createElement("div")),d?e.className="CodeMirror-dialog CodeMirror-dialog-bottom":e.className="CodeMirror-dialog CodeMirror-dialog-top","string"==typeof c?e.innerHTML=c:e.appendChild(c),a.addClass(f,"dialog-opened"),e}function c(a,b){a.state.currentNotificationClose&&a.state.currentNotificationClose(),a.state.currentNotificationClose=b}a.defineExtension("openDialog",(function(d,e,f){function g(b){if("string"==typeof b)l.value=b;else{if(j)return;j=!0,a.rmClass(i.parentNode,"dialog-opened"),i.parentNode.removeChild(i),k.focus(),f.onClose&&f.onClose(i)}}f||(f={}),c(this,null);var h,i=b(this,d,f.bottom),j=!1,k=this,l=i.getElementsByTagName("input")[0];return l?(l.focus(),f.value&&(l.value=f.value,f.selectValueOnOpen!==!1&&l.select()),f.onInput&&a.on(l,"input",(function(a){f.onInput(a,l.value,g)})),f.onKeyUp&&a.on(l,"keyup",(function(a){f.onKeyUp(a,l.value,g)})),a.on(l,"keydown",(function(b){f&&f.onKeyDown&&f.onKeyDown(b,l.value,g)||((27==b.keyCode||f.closeOnEnter!==!1&&13==b.keyCode)&&(l.blur(),a.e_stop(b),g()),13==b.keyCode&&e(l.value,b))})),f.closeOnBlur!==!1&&a.on(l,"blur",g)):(h=i.getElementsByTagName("button")[0])&&(a.on(h,"click",(function(){g(),k.focus()})),f.closeOnBlur!==!1&&a.on(h,"blur",g),h.focus()),g})),a.defineExtension("openConfirm",(function(d,e,f){function g(){j||(j=!0,a.rmClass(h.parentNode,"dialog-opened"),h.parentNode.removeChild(h),k.focus())}c(this,null);var h=b(this,d,f&&f.bottom),i=h.getElementsByTagName("button"),j=!1,k=this,l=1;i[0].focus();for(var m=0;m<i.length;++m){var n=i[m];!(function(b){a.on(n,"click",(function(c){a.e_preventDefault(c),g(),b&&b(k)}))})(e[m]),a.on(n,"blur",(function(){--l,setTimeout((function(){l<=0&&g()}),200)})),a.on(n,"focus",(function(){++l}))}})),a.defineExtension("openNotification",(function(d,e){function f(){i||(i=!0,clearTimeout(g),a.rmClass(h.parentNode,"dialog-opened"),h.parentNode.removeChild(h))}c(this,f);var g,h=b(this,d,e&&e.bottom),i=!1,j=e&&"undefined"!=typeof e.duration?e.duration:5e3;return a.on(h,"click",(function(b){a.e_preventDefault(b),f()})),j&&(g=setTimeout(f,j)),f}))}));editors/codemirror/addon/dialog/dialog.min.css000064400000000616152177723720015461 0ustar00.CodeMirror-dialog{position:absolute;left:0;right:0;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{border:none;outline:0;background:0 0;width:20em;color:inherit;font-family:monospace}.CodeMirror-dialog button{font-size:70%}editors/codemirror/addon/wrap/hardwrap.js000064400000012660152177723720014610 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var Pos = CodeMirror.Pos;

  function findParagraph(cm, pos, options) {
    var startRE = options.paragraphStart || cm.getHelper(pos, "paragraphStart");
    for (var start = pos.line, first = cm.firstLine(); start > first; --start) {
      var line = cm.getLine(start);
      if (startRE && startRE.test(line)) break;
      if (!/\S/.test(line)) { ++start; break; }
    }
    var endRE = options.paragraphEnd || cm.getHelper(pos, "paragraphEnd");
    for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) {
      var line = cm.getLine(end);
      if (endRE && endRE.test(line)) { ++end; break; }
      if (!/\S/.test(line)) break;
    }
    return {from: start, to: end};
  }

  function findBreakPoint(text, column, wrapOn, killTrailingSpace) {
    var at = column
    while (at < text.length && text.charAt(at) == " ") at++
    for (; at > 0; --at)
      if (wrapOn.test(text.slice(at - 1, at + 1))) break;
    for (var first = true;; first = false) {
      var endOfText = at;
      if (killTrailingSpace)
        while (text.charAt(endOfText - 1) == " ") --endOfText;
      if (endOfText == 0 && first) at = column;
      else return {from: endOfText, to: at};
    }
  }

  function wrapRange(cm, from, to, options) {
    from = cm.clipPos(from); to = cm.clipPos(to);
    var column = options.column || 80;
    var wrapOn = options.wrapOn || /\s\S|-[^\.\d]/;
    var killTrailing = options.killTrailingSpace !== false;
    var changes = [], curLine = "", curNo = from.line;
    var lines = cm.getRange(from, to, false);
    if (!lines.length) return null;
    var leadingSpace = lines[0].match(/^[ \t]*/)[0];
    if (leadingSpace.length >= column) column = leadingSpace.length + 1

    for (var i = 0; i < lines.length; ++i) {
      var text = lines[i], oldLen = curLine.length, spaceInserted = 0;
      if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) {
        curLine += " ";
        spaceInserted = 1;
      }
      var spaceTrimmed = "";
      if (i) {
        spaceTrimmed = text.match(/^\s*/)[0];
        text = text.slice(spaceTrimmed.length);
      }
      curLine += text;
      if (i) {
        var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed &&
          findBreakPoint(curLine, column, wrapOn, killTrailing);
        // If this isn't broken, or is broken at a different point, remove old break
        if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) {
          changes.push({text: [spaceInserted ? " " : ""],
                        from: Pos(curNo, oldLen),
                        to: Pos(curNo + 1, spaceTrimmed.length)});
        } else {
          curLine = leadingSpace + text;
          ++curNo;
        }
      }
      while (curLine.length > column) {
        var bp = findBreakPoint(curLine, column, wrapOn, killTrailing);
        changes.push({text: ["", leadingSpace],
                      from: Pos(curNo, bp.from),
                      to: Pos(curNo, bp.to)});
        curLine = leadingSpace + curLine.slice(bp.to);
        ++curNo;
      }
    }
    if (changes.length) cm.operation(function() {
      for (var i = 0; i < changes.length; ++i) {
        var change = changes[i];
        if (change.text || CodeMirror.cmpPos(change.from, change.to))
          cm.replaceRange(change.text, change.from, change.to);
      }
    });
    return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null;
  }

  CodeMirror.defineExtension("wrapParagraph", function(pos, options) {
    options = options || {};
    if (!pos) pos = this.getCursor();
    var para = findParagraph(this, pos, options);
    return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options);
  });

  CodeMirror.commands.wrapLines = function(cm) {
    cm.operation(function() {
      var ranges = cm.listSelections(), at = cm.lastLine() + 1;
      for (var i = ranges.length - 1; i >= 0; i--) {
        var range = ranges[i], span;
        if (range.empty()) {
          var para = findParagraph(cm, range.head, {});
          span = {from: Pos(para.from, 0), to: Pos(para.to - 1)};
        } else {
          span = {from: range.from(), to: range.to()};
        }
        if (span.to.line >= at) continue;
        at = span.from.line;
        wrapRange(cm, span.from, span.to, {});
      }
    });
  };

  CodeMirror.defineExtension("wrapRange", function(from, to, options) {
    return wrapRange(this, from, to, options || {});
  });

  CodeMirror.defineExtension("wrapParagraphsInRange", function(from, to, options) {
    options = options || {};
    var cm = this, paras = [];
    for (var line = from.line; line <= to.line;) {
      var para = findParagraph(cm, Pos(line, 0), options);
      paras.push(para);
      line = para.to;
    }
    var madeChange = false;
    if (paras.length) cm.operation(function() {
      for (var i = paras.length - 1; i >= 0; --i)
        madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options);
    });
    return madeChange;
  });
});
editors/codemirror/addon/wrap/hardwrap.min.js000064400000004640152177723720015371 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b,c){for(var d=c.paragraphStart||a.getHelper(b,"paragraphStart"),e=b.line,f=a.firstLine();e>f;--e){var g=a.getLine(e);if(d&&d.test(g))break;if(!/\S/.test(g)){++e;break}}for(var h=c.paragraphEnd||a.getHelper(b,"paragraphEnd"),i=b.line+1,j=a.lastLine();i<=j;++i){var g=a.getLine(i);if(h&&h.test(g)){++i;break}if(!/\S/.test(g))break}return{from:e,to:i}}function c(a,b,c,d){for(var e=b;e<a.length&&" "==a.charAt(e);)e++;for(;e>0&&!c.test(a.slice(e-1,e+1));--e);for(var f=!0;;f=!1){var g=e;if(d)for(;" "==a.charAt(g-1);)--g;if(0!=g||!f)return{from:g,to:e};e=b}}function d(b,d,f,g){d=b.clipPos(d),f=b.clipPos(f);var h=g.column||80,i=g.wrapOn||/\s\S|-[^\.\d]/,j=g.killTrailingSpace!==!1,k=[],l="",m=d.line,n=b.getRange(d,f,!1);if(!n.length)return null;var o=n[0].match(/^[ \t]*/)[0];o.length>=h&&(h=o.length+1);for(var p=0;p<n.length;++p){var q=n[p],r=l.length,s=0;l&&q&&!i.test(l.charAt(l.length-1)+q.charAt(0))&&(l+=" ",s=1);var t="";if(p&&(t=q.match(/^\s*/)[0],q=q.slice(t.length)),l+=q,p){var u=l.length>h&&o==t&&c(l,h,i,j);u&&u.from==r&&u.to==r+s?(l=o+q,++m):k.push({text:[s?" ":""],from:e(m,r),to:e(m+1,t.length)})}for(;l.length>h;){var v=c(l,h,i,j);k.push({text:["",o],from:e(m,v.from),to:e(m,v.to)}),l=o+l.slice(v.to),++m}}return k.length&&b.operation((function(){for(var c=0;c<k.length;++c){var d=k[c];(d.text||a.cmpPos(d.from,d.to))&&b.replaceRange(d.text,d.from,d.to)}})),k.length?{from:k[0].from,to:a.changeEnd(k[k.length-1])}:null}var e=a.Pos;a.defineExtension("wrapParagraph",(function(a,c){c=c||{},a||(a=this.getCursor());var f=b(this,a,c);return d(this,e(f.from,0),e(f.to-1),c)})),a.commands.wrapLines=function(a){a.operation((function(){for(var c=a.listSelections(),f=a.lastLine()+1,g=c.length-1;g>=0;g--){var h,i=c[g];if(i.empty()){var j=b(a,i.head,{});h={from:e(j.from,0),to:e(j.to-1)}}else h={from:i.from(),to:i.to()};h.to.line>=f||(f=h.from.line,d(a,h.from,h.to,{}))}}))},a.defineExtension("wrapRange",(function(a,b,c){return d(this,a,b,c||{})})),a.defineExtension("wrapParagraphsInRange",(function(a,c,f){f=f||{};for(var g=this,h=[],i=a.line;i<=c.line;){var j=b(g,e(i,0),f);h.push(j),i=j.to}var k=!1;return h.length&&g.operation((function(){for(var a=h.length-1;a>=0;--a)k=k||d(g,e(h[a].from,0),e(h[a].to-1),f)})),k}))}));editors/codemirror/addon/lint/javascript-lint.js000064400000004060152177723720016102 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  // declare global: JSHINT

  function validator(text, options) {
    if (!window.JSHINT) {
      if (window.console) {
        window.console.error("Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run.");
      }
      return [];
    }
    if (!options.indent) // JSHint error.character actually is a column index, this fixes underlining on lines using tabs for indentation
      options.indent = 1; // JSHint default value is 4
    JSHINT(text, options, options.globals);
    var errors = JSHINT.data().errors, result = [];
    if (errors) parseErrors(errors, result);
    return result;
  }

  CodeMirror.registerHelper("lint", "javascript", validator);

  function parseErrors(errors, output) {
    for ( var i = 0; i < errors.length; i++) {
      var error = errors[i];
      if (error) {
        if (error.line <= 0) {
          if (window.console) {
            window.console.warn("Cannot display JSHint error (invalid line " + error.line + ")", error);
          }
          continue;
        }

        var start = error.character - 1, end = start + 1;
        if (error.evidence) {
          var index = error.evidence.substring(start).search(/.\b/);
          if (index > -1) {
            end += index;
          }
        }

        // Convert to format expected by validation service
        var hint = {
          message: error.reason,
          severity: error.code ? (error.code.startsWith('W') ? "warning" : "error") : "error",
          from: CodeMirror.Pos(error.line - 1, start),
          to: CodeMirror.Pos(error.line - 1, end)
        };

        output.push(hint);
      }
    }
  }
});
editors/codemirror/addon/lint/javascript-lint.min.js000064400000001641152177723720016666 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){if(!window.JSHINT)return window.console&&window.console.error("Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run."),[];b.indent||(b.indent=1),JSHINT(a,b,b.globals);var d=JSHINT.data().errors,e=[];return d&&c(d,e),e}function c(b,c){for(var d=0;d<b.length;d++){var e=b[d];if(e){if(e.line<=0){window.console&&window.console.warn("Cannot display JSHint error (invalid line "+e.line+")",e);continue}var f=e.character-1,g=f+1;if(e.evidence){var h=e.evidence.substring(f).search(/.\b/);h>-1&&(g+=h)}var i={message:e.reason,severity:e.code&&e.code.startsWith("W")?"warning":"error",from:a.Pos(e.line-1,f),to:a.Pos(e.line-1,g)};c.push(i)}}}a.registerHelper("lint","javascript",b)}));editors/codemirror/addon/lint/html-lint.js000064400000003505152177723720014703 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js

// declare global: HTMLHint

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("htmlhint"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "htmlhint"], mod);
  else // Plain browser env
    mod(CodeMirror, window.HTMLHint);
})(function(CodeMirror, HTMLHint) {
  "use strict";

  var defaultRules = {
    "tagname-lowercase": true,
    "attr-lowercase": true,
    "attr-value-double-quotes": true,
    "doctype-first": false,
    "tag-pair": true,
    "spec-char-escape": true,
    "id-unique": true,
    "src-not-empty": true,
    "attr-no-duplication": true
  };

  CodeMirror.registerHelper("lint", "html", function(text, options) {
    var found = [];
    if (HTMLHint && !HTMLHint.verify) HTMLHint = HTMLHint.HTMLHint;
    if (!HTMLHint) HTMLHint = window.HTMLHint;
    if (!HTMLHint) {
      if (window.console) {
          window.console.error("Error: HTMLHint not found, not defined on window, or not available through define/require, CodeMirror HTML linting cannot run.");
      }
      return found;
    }
    var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
    for (var i = 0; i < messages.length; i++) {
      var message = messages[i];
      var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
      found.push({
        from: CodeMirror.Pos(startLine, startCol),
        to: CodeMirror.Pos(endLine, endCol),
        message: message.message,
        severity : message.type
      });
    }
    return found;
  });
});
editors/codemirror/addon/lint/css-lint.js000064400000002436152177723720014531 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Depends on csslint.js from https://github.com/stubbornella/csslint

// declare global: CSSLint

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("lint", "css", function(text, options) {
  var found = [];
  if (!window.CSSLint) {
    if (window.console) {
        window.console.error("Error: window.CSSLint not defined, CodeMirror CSS linting cannot run.");
    }
    return found;
  }
  var results = CSSLint.verify(text, options), messages = results.messages, message = null;
  for ( var i = 0; i < messages.length; i++) {
    message = messages[i];
    var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;
    found.push({
      from: CodeMirror.Pos(startLine, startCol),
      to: CodeMirror.Pos(endLine, endCol),
      message: message.message,
      severity : message.type
    });
  }
  return found;
});

});
editors/codemirror/addon/lint/coffeescript-lint.js000064400000002672152177723720016417 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js

// declare global: coffeelint

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("lint", "coffeescript", function(text) {
  var found = [];
  if (!window.coffeelint) {
    if (window.console) {
      window.console.error("Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run.");
    }
    return found;
  }
  var parseError = function(err) {
    var loc = err.lineNumber;
    found.push({from: CodeMirror.Pos(loc-1, 0),
                to: CodeMirror.Pos(loc, 0),
                severity: err.level,
                message: err.message});
  };
  try {
    var res = coffeelint.lint(text);
    for(var i = 0; i < res.length; i++) {
      parseError(res[i]);
    }
  } catch(e) {
    found.push({from: CodeMirror.Pos(e.location.first_line, 0),
                to: CodeMirror.Pos(e.location.last_line, e.location.last_column),
                severity: 'error',
                message: e.message});
  }
  return found;
});

});
editors/codemirror/addon/lint/lint.css000064400000005667152177723720014130 0ustar00/* The lint marker gutter */
.CodeMirror-lint-markers {
  width: 16px;
}

.CodeMirror-lint-tooltip {
  background-color: #ffd;
  border: 1px solid black;
  border-radius: 4px 4px 4px 4px;
  color: black;
  font-family: monospace;
  font-size: 10pt;
  overflow: hidden;
  padding: 2px 5px;
  position: fixed;
  white-space: pre;
  white-space: pre-wrap;
  z-index: 100;
  max-width: 600px;
  opacity: 0;
  transition: opacity .4s;
  -moz-transition: opacity .4s;
  -webkit-transition: opacity .4s;
  -o-transition: opacity .4s;
  -ms-transition: opacity .4s;
}

.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
  background-position: left bottom;
  background-repeat: repeat-x;
}

.CodeMirror-lint-mark-error {
  background-image:
  url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
  ;
}

.CodeMirror-lint-mark-warning {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
}

.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
  background-position: center center;
  background-repeat: no-repeat;
  cursor: pointer;
  display: inline-block;
  height: 16px;
  width: 16px;
  vertical-align: middle;
  position: relative;
}

.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
  padding-left: 18px;
  background-position: top left;
  background-repeat: no-repeat;
}

.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
}

.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
}

.CodeMirror-lint-marker-multiple {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
  background-repeat: no-repeat;
  background-position: right bottom;
  width: 100%; height: 100%;
}
editors/codemirror/addon/lint/coffeescript-lint.min.js000064400000001372152177723720017175 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("lint","coffeescript",(function(b){var c=[];if(!window.coffeelint)return window.console&&window.console.error("Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run."),c;var d=function(b){var d=b.lineNumber;c.push({from:a.Pos(d-1,0),to:a.Pos(d,0),severity:b.level,message:b.message})};try{for(var e=coffeelint.lint(b),f=0;f<e.length;f++)d(e[f])}catch(b){c.push({from:a.Pos(b.location.first_line,0),to:a.Pos(b.location.last_line,b.location.last_column),severity:"error",message:b.message})}return c}))}));editors/codemirror/addon/lint/json-lint.js000064400000002465152177723720014714 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Depends on jsonlint.js from https://github.com/zaach/jsonlint

// declare global: jsonlint

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

CodeMirror.registerHelper("lint", "json", function(text) {
  var found = [];
  if (!window.jsonlint) {
    if (window.console) {
      window.console.error("Error: window.jsonlint not defined, CodeMirror JSON linting cannot run.");
    }
    return found;
  }
  // for jsonlint's web dist jsonlint is exported as an object with a single property parser, of which parseError
  // is a subproperty
  var jsonlint = window.jsonlint.parser || window.jsonlint
  jsonlint.parseError = function(str, hash) {
    var loc = hash.loc;
    found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
                to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
                message: str});
  };
  try { jsonlint.parse(text); }
  catch(e) {}
  return found;
});

});
editors/codemirror/addon/lint/json-lint.min.js000064400000001172152177723720015470 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("lint","json",(function(b){var c=[];if(!window.jsonlint)return window.console&&window.console.error("Error: window.jsonlint not defined, CodeMirror JSON linting cannot run."),c;var d=window.jsonlint.parser||window.jsonlint;d.parseError=function(b,d){var e=d.loc;c.push({from:a.Pos(e.first_line-1,e.first_column),to:a.Pos(e.last_line-1,e.last_column),message:b})};try{d.parse(b)}catch(a){}return c}))}));editors/codemirror/addon/lint/lint.min.js000064400000010326152177723720014522 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,c){function d(b){return e.parentNode?(e.style.top=Math.max(0,b.clientY-e.offsetHeight-5)+"px",void(e.style.left=b.clientX+5+"px")):a.off(document,"mousemove",d)}var e=document.createElement("div");return e.className="CodeMirror-lint-tooltip",e.appendChild(c.cloneNode(!0)),document.body.appendChild(e),a.on(document,"mousemove",d),d(b),null!=e.style.opacity&&(e.style.opacity=1),e}function c(a){a.parentNode&&a.parentNode.removeChild(a)}function d(a){a.parentNode&&(null==a.style.opacity&&c(a),a.style.opacity=0,setTimeout((function(){c(a)}),600))}function e(c,e,f){function g(){a.off(f,"mouseout",g),h&&(d(h),h=null)}var h=b(c,e),i=setInterval((function(){if(h)for(var a=f;;a=a.parentNode){if(a&&11==a.nodeType&&(a=a.host),a==document.body)return;if(!a){g();break}}if(!h)return clearInterval(i)}),400);a.on(f,"mouseout",g)}function f(a,b,c){this.marked=[],this.options=b,this.timeout=null,this.hasGutter=c,this.onMouseOver=function(b){r(a,b)},this.waitingFor=0}function g(a,b){return b instanceof Function?{getAnnotations:b}:(b&&b!==!0||(b={}),b)}function h(a){var b=a.state.lint;b.hasGutter&&a.clearGutter(s);for(var c=0;c<b.marked.length;++c)b.marked[c].clear();b.marked.length=0}function i(b,c,d,f){var g=document.createElement("div"),h=g;return g.className="CodeMirror-lint-marker-"+c,d&&(h=g.appendChild(document.createElement("div")),h.className="CodeMirror-lint-marker-multiple"),0!=f&&a.on(h,"mouseover",(function(a){e(a,b,h)})),g}function j(a,b){return"error"==a?a:b}function k(a){for(var b=[],c=0;c<a.length;++c){var d=a[c],e=d.from.line;(b[e]||(b[e]=[])).push(d)}return b}function l(a){var b=a.severity;b||(b="error");var c=document.createElement("div");return c.className="CodeMirror-lint-message-"+b,"undefined"!=typeof a.messageHTML?c.innerHTML=a.messageHTML:c.appendChild(document.createTextNode(a.message)),c}function m(b,c,d){function e(){g=-1,b.off("change",e)}var f=b.state.lint,g=++f.waitingFor;b.on("change",e),c(b.getValue(),(function(c,d){b.off("change",e),f.waitingFor==g&&(d&&c instanceof a&&(c=d),b.operation((function(){o(b,c)})))}),d,b)}function n(b){var c=b.state.lint,d=c.options,e=d.options||d,f=d.getAnnotations||b.getHelper(a.Pos(0,0),"lint");if(f)if(d.async||f.async)m(b,f,e);else{var g=f(b.getValue(),e,b);if(!g)return;g.then?g.then((function(a){b.operation((function(){o(b,a)}))})):b.operation((function(){o(b,g)}))}}function o(a,b){h(a);for(var c=a.state.lint,d=c.options,e=k(b),f=0;f<e.length;++f){var g=e[f];if(g){for(var m=null,n=c.hasGutter&&document.createDocumentFragment(),o=0;o<g.length;++o){var p=g[o],q=p.severity;q||(q="error"),m=j(m,q),d.formatAnnotation&&(p=d.formatAnnotation(p)),c.hasGutter&&n.appendChild(l(p)),p.to&&c.marked.push(a.markText(p.from,p.to,{className:"CodeMirror-lint-mark-"+q,__annotation:p}))}c.hasGutter&&a.setGutterMarker(f,s,i(n,m,g.length>1,c.options.tooltips))}}d.onUpdateLinting&&d.onUpdateLinting(b,e,a)}function p(a){var b=a.state.lint;b&&(clearTimeout(b.timeout),b.timeout=setTimeout((function(){n(a)}),b.options.delay||500))}function q(a,b){for(var c=b.target||b.srcElement,d=document.createDocumentFragment(),f=0;f<a.length;f++){var g=a[f];d.appendChild(l(g))}e(b,d,c)}function r(a,b){var c=b.target||b.srcElement;if(/\bCodeMirror-lint-mark-/.test(c.className)){for(var d=c.getBoundingClientRect(),e=(d.left+d.right)/2,f=(d.top+d.bottom)/2,g=a.findMarksAt(a.coordsChar({left:e,top:f},"client")),h=[],i=0;i<g.length;++i){var j=g[i].__annotation;j&&h.push(j)}h.length&&q(h,b)}}var s="CodeMirror-lint-markers";a.defineOption("lint",!1,(function(b,c,d){if(d&&d!=a.Init&&(h(b),b.state.lint.options.lintOnChange!==!1&&b.off("change",p),a.off(b.getWrapperElement(),"mouseover",b.state.lint.onMouseOver),clearTimeout(b.state.lint.timeout),delete b.state.lint),c){for(var e=b.getOption("gutters"),i=!1,j=0;j<e.length;++j)e[j]==s&&(i=!0);var k=b.state.lint=new f(b,g(b,c),i);k.options.lintOnChange!==!1&&b.on("change",p),0!=k.options.tooltips&&"gutter"!=k.options.tooltips&&a.on(b.getWrapperElement(),"mouseover",k.onMouseOver),n(b)}})),a.defineExtension("performLint",(function(){this.state.lint&&n(this)}))}));editors/codemirror/addon/lint/html-lint.min.js000064400000001657152177723720015473 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("htmlhint")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","htmlhint"],a):a(CodeMirror,window.HTMLHint)})((function(a,b){"use strict";var c={"tagname-lowercase":!0,"attr-lowercase":!0,"attr-value-double-quotes":!0,"doctype-first":!1,"tag-pair":!0,"spec-char-escape":!0,"id-unique":!0,"src-not-empty":!0,"attr-no-duplication":!0};a.registerHelper("lint","html",(function(d,e){var f=[];if(b&&!b.verify&&(b=b.HTMLHint),b||(b=window.HTMLHint),!b)return window.console&&window.console.error("Error: HTMLHint not found, not defined on window, or not available through define/require, CodeMirror HTML linting cannot run."),f;for(var g=b.verify(d,e&&e.rules||c),h=0;h<g.length;h++){var i=g[h],j=i.line-1,k=i.line-1,l=i.col-1,m=i.col;f.push({from:a.Pos(j,l),to:a.Pos(k,m),message:i.message,severity:i.type})}return f}))}));editors/codemirror/addon/lint/yaml-lint.min.js000064400000001036152177723720015460 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("lint","yaml",(function(b){var c=[];if(!window.jsyaml)return window.console&&window.console.error("Error: window.jsyaml not defined, CodeMirror YAML linting cannot run."),c;try{jsyaml.load(b)}catch(b){var d=b.mark,e=d?a.Pos(d.line,d.column):a.Pos(0,0),f=e;c.push({from:e,to:f,message:b.message})}return c}))}));editors/codemirror/addon/lint/yaml-lint.js000064400000002344152177723720014701 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
"use strict";

// Depends on js-yaml.js from https://github.com/nodeca/js-yaml

// declare global: jsyaml

CodeMirror.registerHelper("lint", "yaml", function(text) {
  var found = [];
  if (!window.jsyaml) {
    if (window.console) {
      window.console.error("Error: window.jsyaml not defined, CodeMirror YAML linting cannot run.");
    }
    return found;
  }
  try { jsyaml.load(text); }
  catch(e) {
      var loc = e.mark,
          // js-yaml YAMLException doesn't always provide an accurate lineno
          // e.g., when there are multiple yaml docs
          // ---
          // ---
          // foo:bar
          from = loc ? CodeMirror.Pos(loc.line, loc.column) : CodeMirror.Pos(0, 0),
          to = from;
      found.push({ from: from, to: to, message: e.message });
  }
  return found;
});

});
editors/codemirror/addon/lint/lint.js000064400000020642152177723720013742 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  var GUTTER_ID = "CodeMirror-lint-markers";

  function showTooltip(e, content) {
    var tt = document.createElement("div");
    tt.className = "CodeMirror-lint-tooltip";
    tt.appendChild(content.cloneNode(true));
    document.body.appendChild(tt);

    function position(e) {
      if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
      tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
      tt.style.left = (e.clientX + 5) + "px";
    }
    CodeMirror.on(document, "mousemove", position);
    position(e);
    if (tt.style.opacity != null) tt.style.opacity = 1;
    return tt;
  }
  function rm(elt) {
    if (elt.parentNode) elt.parentNode.removeChild(elt);
  }
  function hideTooltip(tt) {
    if (!tt.parentNode) return;
    if (tt.style.opacity == null) rm(tt);
    tt.style.opacity = 0;
    setTimeout(function() { rm(tt); }, 600);
  }

  function showTooltipFor(e, content, node) {
    var tooltip = showTooltip(e, content);
    function hide() {
      CodeMirror.off(node, "mouseout", hide);
      if (tooltip) { hideTooltip(tooltip); tooltip = null; }
    }
    var poll = setInterval(function() {
      if (tooltip) for (var n = node;; n = n.parentNode) {
        if (n && n.nodeType == 11) n = n.host;
        if (n == document.body) return;
        if (!n) { hide(); break; }
      }
      if (!tooltip) return clearInterval(poll);
    }, 400);
    CodeMirror.on(node, "mouseout", hide);
  }

  function LintState(cm, options, hasGutter) {
    this.marked = [];
    this.options = options;
    this.timeout = null;
    this.hasGutter = hasGutter;
    this.onMouseOver = function(e) { onMouseOver(cm, e); };
    this.waitingFor = 0
  }

  function parseOptions(_cm, options) {
    if (options instanceof Function) return {getAnnotations: options};
    if (!options || options === true) options = {};
    return options;
  }

  function clearMarks(cm) {
    var state = cm.state.lint;
    if (state.hasGutter) cm.clearGutter(GUTTER_ID);
    for (var i = 0; i < state.marked.length; ++i)
      state.marked[i].clear();
    state.marked.length = 0;
  }

  function makeMarker(labels, severity, multiple, tooltips) {
    var marker = document.createElement("div"), inner = marker;
    marker.className = "CodeMirror-lint-marker-" + severity;
    if (multiple) {
      inner = marker.appendChild(document.createElement("div"));
      inner.className = "CodeMirror-lint-marker-multiple";
    }

    if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) {
      showTooltipFor(e, labels, inner);
    });

    return marker;
  }

  function getMaxSeverity(a, b) {
    if (a == "error") return a;
    else return b;
  }

  function groupByLine(annotations) {
    var lines = [];
    for (var i = 0; i < annotations.length; ++i) {
      var ann = annotations[i], line = ann.from.line;
      (lines[line] || (lines[line] = [])).push(ann);
    }
    return lines;
  }

  function annotationTooltip(ann) {
    var severity = ann.severity;
    if (!severity) severity = "error";
    var tip = document.createElement("div");
    tip.className = "CodeMirror-lint-message-" + severity;
    if (typeof ann.messageHTML != 'undefined') {
        tip.innerHTML = ann.messageHTML;
    } else {
        tip.appendChild(document.createTextNode(ann.message));
    }
    return tip;
  }

  function lintAsync(cm, getAnnotations, passOptions) {
    var state = cm.state.lint
    var id = ++state.waitingFor
    function abort() {
      id = -1
      cm.off("change", abort)
    }
    cm.on("change", abort)
    getAnnotations(cm.getValue(), function(annotations, arg2) {
      cm.off("change", abort)
      if (state.waitingFor != id) return
      if (arg2 && annotations instanceof CodeMirror) annotations = arg2
      cm.operation(function() {updateLinting(cm, annotations)})
    }, passOptions, cm);
  }

  function startLinting(cm) {
    var state = cm.state.lint, options = state.options;
    /*
     * Passing rules in `options` property prevents JSHint (and other linters) from complaining
     * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc.
     */
    var passOptions = options.options || options;
    var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint");
    if (!getAnnotations) return;
    if (options.async || getAnnotations.async) {
      lintAsync(cm, getAnnotations, passOptions)
    } else {
      var annotations = getAnnotations(cm.getValue(), passOptions, cm);
      if (!annotations) return;
      if (annotations.then) annotations.then(function(issues) {
        cm.operation(function() {updateLinting(cm, issues)})
      });
      else cm.operation(function() {updateLinting(cm, annotations)})
    }
  }

  function updateLinting(cm, annotationsNotSorted) {
    clearMarks(cm);
    var state = cm.state.lint, options = state.options;

    var annotations = groupByLine(annotationsNotSorted);

    for (var line = 0; line < annotations.length; ++line) {
      var anns = annotations[line];
      if (!anns) continue;

      var maxSeverity = null;
      var tipLabel = state.hasGutter && document.createDocumentFragment();

      for (var i = 0; i < anns.length; ++i) {
        var ann = anns[i];
        var severity = ann.severity;
        if (!severity) severity = "error";
        maxSeverity = getMaxSeverity(maxSeverity, severity);

        if (options.formatAnnotation) ann = options.formatAnnotation(ann);
        if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));

        if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {
          className: "CodeMirror-lint-mark-" + severity,
          __annotation: ann
        }));
      }

      if (state.hasGutter)
        cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,
                                                       state.options.tooltips));
    }
    if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);
  }

  function onChange(cm) {
    var state = cm.state.lint;
    if (!state) return;
    clearTimeout(state.timeout);
    state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);
  }

  function popupTooltips(annotations, e) {
    var target = e.target || e.srcElement;
    var tooltip = document.createDocumentFragment();
    for (var i = 0; i < annotations.length; i++) {
      var ann = annotations[i];
      tooltip.appendChild(annotationTooltip(ann));
    }
    showTooltipFor(e, tooltip, target);
  }

  function onMouseOver(cm, e) {
    var target = e.target || e.srcElement;
    if (!/\bCodeMirror-lint-mark-/.test(target.className)) return;
    var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;
    var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, "client"));

    var annotations = [];
    for (var i = 0; i < spans.length; ++i) {
      var ann = spans[i].__annotation;
      if (ann) annotations.push(ann);
    }
    if (annotations.length) popupTooltips(annotations, e);
  }

  CodeMirror.defineOption("lint", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      clearMarks(cm);
      if (cm.state.lint.options.lintOnChange !== false)
        cm.off("change", onChange);
      CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver);
      clearTimeout(cm.state.lint.timeout);
      delete cm.state.lint;
    }

    if (val) {
      var gutters = cm.getOption("gutters"), hasLintGutter = false;
      for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;
      var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);
      if (state.options.lintOnChange !== false)
        cm.on("change", onChange);
      if (state.options.tooltips != false && state.options.tooltips != "gutter")
        CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver);

      startLinting(cm);
    }
  });

  CodeMirror.defineExtension("performLint", function() {
    if (this.state.lint) startLinting(this);
  });
});
editors/codemirror/addon/lint/css-lint.min.js000064400000001150152177723720015303 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.registerHelper("lint","css",(function(b,c){var d=[];if(!window.CSSLint)return window.console&&window.console.error("Error: window.CSSLint not defined, CodeMirror CSS linting cannot run."),d;for(var e=CSSLint.verify(b,c),f=e.messages,g=null,h=0;h<f.length;h++){g=f[h];var i=g.line-1,j=g.line-1,k=g.col-1,l=g.col;d.push({from:a.Pos(i,k),to:a.Pos(j,l),message:g.message,severity:g.type})}return d}))}));editors/codemirror/addon/lint/lint.min.css000064400000005241152177723720014676 0ustar00.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark-error,.CodeMirror-lint-mark-warning{background-position:left bottom;background-repeat:repeat-x}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-marker-warning{background-position:center center;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message-error,.CodeMirror-lint-message-warning{padding-left:18px;background-position:top left;background-repeat:no-repeat}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:right bottom;width:100%;height:100%}editors/codemirror/addon/comment/comment.js000064400000021442152177723720015131 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var noOptions = {};
  var nonWS = /[^\s\u00a0]/;
  var Pos = CodeMirror.Pos;

  function firstNonWS(str) {
    var found = str.search(nonWS);
    return found == -1 ? 0 : found;
  }

  CodeMirror.commands.toggleComment = function(cm) {
    cm.toggleComment();
  };

  CodeMirror.defineExtension("toggleComment", function(options) {
    if (!options) options = noOptions;
    var cm = this;
    var minLine = Infinity, ranges = this.listSelections(), mode = null;
    for (var i = ranges.length - 1; i >= 0; i--) {
      var from = ranges[i].from(), to = ranges[i].to();
      if (from.line >= minLine) continue;
      if (to.line >= minLine) to = Pos(minLine, 0);
      minLine = from.line;
      if (mode == null) {
        if (cm.uncomment(from, to, options)) mode = "un";
        else { cm.lineComment(from, to, options); mode = "line"; }
      } else if (mode == "un") {
        cm.uncomment(from, to, options);
      } else {
        cm.lineComment(from, to, options);
      }
    }
  });

  // Rough heuristic to try and detect lines that are part of multi-line string
  function probablyInsideString(cm, pos, line) {
    return /\bstring\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\'\"\`]/.test(line)
  }

  function getMode(cm, pos) {
    var mode = cm.getMode()
    return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)
  }

  CodeMirror.defineExtension("lineComment", function(from, to, options) {
    if (!options) options = noOptions;
    var self = this, mode = getMode(self, from);
    var firstLine = self.getLine(from.line);
    if (firstLine == null || probablyInsideString(self, from, firstLine)) return;

    var commentString = options.lineComment || mode.lineComment;
    if (!commentString) {
      if (options.blockCommentStart || mode.blockCommentStart) {
        options.fullLines = true;
        self.blockComment(from, to, options);
      }
      return;
    }

    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);
    var pad = options.padding == null ? " " : options.padding;
    var blankLines = options.commentBlankLines || from.line == to.line;

    self.operation(function() {
      if (options.indent) {
        var baseString = null;
        for (var i = from.line; i < end; ++i) {
          var line = self.getLine(i);
          var whitespace = line.slice(0, firstNonWS(line));
          if (baseString == null || baseString.length > whitespace.length) {
            baseString = whitespace;
          }
        }
        for (var i = from.line; i < end; ++i) {
          var line = self.getLine(i), cut = baseString.length;
          if (!blankLines && !nonWS.test(line)) continue;
          if (line.slice(0, cut) != baseString) cut = firstNonWS(line);
          self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));
        }
      } else {
        for (var i = from.line; i < end; ++i) {
          if (blankLines || nonWS.test(self.getLine(i)))
            self.replaceRange(commentString + pad, Pos(i, 0));
        }
      }
    });
  });

  CodeMirror.defineExtension("blockComment", function(from, to, options) {
    if (!options) options = noOptions;
    var self = this, mode = getMode(self, from);
    var startString = options.blockCommentStart || mode.blockCommentStart;
    var endString = options.blockCommentEnd || mode.blockCommentEnd;
    if (!startString || !endString) {
      if ((options.lineComment || mode.lineComment) && options.fullLines != false)
        self.lineComment(from, to, options);
      return;
    }
    if (/\bcomment\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return

    var end = Math.min(to.line, self.lastLine());
    if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;

    var pad = options.padding == null ? " " : options.padding;
    if (from.line > end) return;

    self.operation(function() {
      if (options.fullLines != false) {
        var lastLineHasText = nonWS.test(self.getLine(end));
        self.replaceRange(pad + endString, Pos(end));
        self.replaceRange(startString + pad, Pos(from.line, 0));
        var lead = options.blockCommentLead || mode.blockCommentLead;
        if (lead != null) for (var i = from.line + 1; i <= end; ++i)
          if (i != end || lastLineHasText)
            self.replaceRange(lead + pad, Pos(i, 0));
      } else {
        self.replaceRange(endString, to);
        self.replaceRange(startString, from);
      }
    });
  });

  CodeMirror.defineExtension("uncomment", function(from, to, options) {
    if (!options) options = noOptions;
    var self = this, mode = getMode(self, from);
    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);

    // Try finding line comments
    var lineString = options.lineComment || mode.lineComment, lines = [];
    var pad = options.padding == null ? " " : options.padding, didSomething;
    lineComment: {
      if (!lineString) break lineComment;
      for (var i = start; i <= end; ++i) {
        var line = self.getLine(i);
        var found = line.indexOf(lineString);
        if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;
        if (found == -1 && nonWS.test(line)) break lineComment;
        if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;
        lines.push(line);
      }
      self.operation(function() {
        for (var i = start; i <= end; ++i) {
          var line = lines[i - start];
          var pos = line.indexOf(lineString), endPos = pos + lineString.length;
          if (pos < 0) continue;
          if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;
          didSomething = true;
          self.replaceRange("", Pos(i, pos), Pos(i, endPos));
        }
      });
      if (didSomething) return true;
    }

    // Try block comments
    var startString = options.blockCommentStart || mode.blockCommentStart;
    var endString = options.blockCommentEnd || mode.blockCommentEnd;
    if (!startString || !endString) return false;
    var lead = options.blockCommentLead || mode.blockCommentLead;
    var startLine = self.getLine(start), open = startLine.indexOf(startString)
    if (open == -1) return false
    var endLine = end == start ? startLine : self.getLine(end)
    var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);
    var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)
    if (close == -1 ||
        !/comment/.test(self.getTokenTypeAt(insideStart)) ||
        !/comment/.test(self.getTokenTypeAt(insideEnd)) ||
        self.getRange(insideStart, insideEnd, "\n").indexOf(endString) > -1)
      return false;

    // Avoid killing block comments completely outside the selection.
    // Positions of the last startString before the start of the selection, and the first endString after it.
    var lastStart = startLine.lastIndexOf(startString, from.ch);
    var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);
    if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;
    // Positions of the first endString after the end of the selection, and the last startString before it.
    firstEnd = endLine.indexOf(endString, to.ch);
    var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);
    lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;
    if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;

    self.operation(function() {
      self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),
                        Pos(end, close + endString.length));
      var openEnd = open + startString.length;
      if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;
      self.replaceRange("", Pos(start, open), Pos(start, openEnd));
      if (lead) for (var i = start + 1; i <= end; ++i) {
        var line = self.getLine(i), found = line.indexOf(lead);
        if (found == -1 || nonWS.test(line.slice(0, found))) continue;
        var foundEnd = found + lead.length;
        if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;
        self.replaceRange("", Pos(i, found), Pos(i, foundEnd));
      }
    });
    return true;
  });
});
editors/codemirror/addon/comment/continuecomment.js000064400000005717152177723720016705 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  function continueComment(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    var ranges = cm.listSelections(), mode, inserts = [];
    for (var i = 0; i < ranges.length; i++) {
      var pos = ranges[i].head
      if (!/\bcomment\b/.test(cm.getTokenTypeAt(pos))) return CodeMirror.Pass;
      var modeHere = cm.getModeAt(pos)
      if (!mode) mode = modeHere;
      else if (mode != modeHere) return CodeMirror.Pass;

      var insert = null;
      if (mode.blockCommentStart && mode.blockCommentContinue) {
        var line = cm.getLine(pos.line).slice(0, pos.ch)
        var end = line.lastIndexOf(mode.blockCommentEnd), found
        if (end != -1 && end == pos.ch - mode.blockCommentEnd.length) {
          // Comment ended, don't continue it
        } else if ((found = line.lastIndexOf(mode.blockCommentStart)) > -1 && found > end) {
          insert = line.slice(0, found)
          if (/\S/.test(insert)) {
            insert = ""
            for (var j = 0; j < found; ++j) insert += " "
          }
        } else if ((found = line.indexOf(mode.blockCommentContinue)) > -1 && !/\S/.test(line.slice(0, found))) {
          insert = line.slice(0, found)
        }
        if (insert != null) insert += mode.blockCommentContinue
      }
      if (insert == null && mode.lineComment && continueLineCommentEnabled(cm)) {
        var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);
        if (found > -1) {
          insert = line.slice(0, found);
          if (/\S/.test(insert)) insert = null;
          else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\s*/)[0];
        }
      }
      if (insert == null) return CodeMirror.Pass;
      inserts[i] = "\n" + insert;
    }

    cm.operation(function() {
      for (var i = ranges.length - 1; i >= 0; i--)
        cm.replaceRange(inserts[i], ranges[i].from(), ranges[i].to(), "+insert");
    });
  }

  function continueLineCommentEnabled(cm) {
    var opt = cm.getOption("continueComments");
    if (opt && typeof opt == "object")
      return opt.continueLineComment !== false;
    return true;
  }

  CodeMirror.defineOption("continueComments", null, function(cm, val, prev) {
    if (prev && prev != CodeMirror.Init)
      cm.removeKeyMap("continueComment");
    if (val) {
      var key = "Enter";
      if (typeof val == "string")
        key = val;
      else if (typeof val == "object" && val.key)
        key = val.key;
      var map = {name: "continueComment"};
      map[key] = continueComment;
      cm.addKeyMap(map);
    }
  });
});
editors/codemirror/addon/comment/continuecomment.min.js000064400000003036152177723720017457 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(b){if(b.getOption("disableInput"))return a.Pass;for(var d,e=b.listSelections(),f=[],g=0;g<e.length;g++){var h=e[g].head;if(!/\bcomment\b/.test(b.getTokenTypeAt(h)))return a.Pass;var i=b.getModeAt(h);if(d){if(d!=i)return a.Pass}else d=i;var j=null;if(d.blockCommentStart&&d.blockCommentContinue){var k,l=b.getLine(h.line).slice(0,h.ch),m=l.lastIndexOf(d.blockCommentEnd);if(m!=-1&&m==h.ch-d.blockCommentEnd.length);else if((k=l.lastIndexOf(d.blockCommentStart))>-1&&k>m){if(j=l.slice(0,k),/\S/.test(j)){j="";for(var n=0;n<k;++n)j+=" "}}else(k=l.indexOf(d.blockCommentContinue))>-1&&!/\S/.test(l.slice(0,k))&&(j=l.slice(0,k));null!=j&&(j+=d.blockCommentContinue)}if(null==j&&d.lineComment&&c(b)){var l=b.getLine(h.line),k=l.indexOf(d.lineComment);k>-1&&(j=l.slice(0,k),/\S/.test(j)?j=null:j+=d.lineComment+l.slice(k+d.lineComment.length).match(/^\s*/)[0])}if(null==j)return a.Pass;f[g]="\n"+j}b.operation((function(){for(var a=e.length-1;a>=0;a--)b.replaceRange(f[a],e[a].from(),e[a].to(),"+insert")}))}function c(a){var b=a.getOption("continueComments");return!b||"object"!=typeof b||b.continueLineComment!==!1}a.defineOption("continueComments",null,(function(c,d,e){if(e&&e!=a.Init&&c.removeKeyMap("continueComment"),d){var f="Enter";"string"==typeof d?f=d:"object"==typeof d&&d.key&&(f=d.key);var g={name:"continueComment"};g[f]=b,c.addKeyMap(g)}}))}));editors/codemirror/addon/comment/comment.min.js000064400000007715152177723720015722 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){var b=a.search(f);return b==-1?0:b}function c(a,b,c){return/\bstring\b/.test(a.getTokenTypeAt(g(b.line,0)))&&!/^[\'\"\`]/.test(c)}function d(a,b){var c=a.getMode();return c.useInnerComments!==!1&&c.innerMode?a.getModeAt(b):c}var e={},f=/[^\s\u00a0]/,g=a.Pos;a.commands.toggleComment=function(a){a.toggleComment()},a.defineExtension("toggleComment",(function(a){a||(a=e);for(var b=this,c=1/0,d=this.listSelections(),f=null,h=d.length-1;h>=0;h--){var i=d[h].from(),j=d[h].to();i.line>=c||(j.line>=c&&(j=g(c,0)),c=i.line,null==f?b.uncomment(i,j,a)?f="un":(b.lineComment(i,j,a),f="line"):"un"==f?b.uncomment(i,j,a):b.lineComment(i,j,a))}})),a.defineExtension("lineComment",(function(a,h,i){i||(i=e);var j=this,k=d(j,a),l=j.getLine(a.line);if(null!=l&&!c(j,a,l)){var m=i.lineComment||k.lineComment;if(!m)return void((i.blockCommentStart||k.blockCommentStart)&&(i.fullLines=!0,j.blockComment(a,h,i)));var n=Math.min(0!=h.ch||h.line==a.line?h.line+1:h.line,j.lastLine()+1),o=null==i.padding?" ":i.padding,p=i.commentBlankLines||a.line==h.line;j.operation((function(){if(i.indent){for(var c=null,d=a.line;d<n;++d){var e=j.getLine(d),h=e.slice(0,b(e));(null==c||c.length>h.length)&&(c=h)}for(var d=a.line;d<n;++d){var e=j.getLine(d),k=c.length;(p||f.test(e))&&(e.slice(0,k)!=c&&(k=b(e)),j.replaceRange(c+m+o,g(d,0),g(d,k)))}}else for(var d=a.line;d<n;++d)(p||f.test(j.getLine(d)))&&j.replaceRange(m+o,g(d,0))}))}})),a.defineExtension("blockComment",(function(a,b,c){c||(c=e);var h=this,i=d(h,a),j=c.blockCommentStart||i.blockCommentStart,k=c.blockCommentEnd||i.blockCommentEnd;if(!j||!k)return void((c.lineComment||i.lineComment)&&0!=c.fullLines&&h.lineComment(a,b,c));if(!/\bcomment\b/.test(h.getTokenTypeAt(g(a.line,0)))){var l=Math.min(b.line,h.lastLine());l!=a.line&&0==b.ch&&f.test(h.getLine(l))&&--l;var m=null==c.padding?" ":c.padding;a.line>l||h.operation((function(){if(0!=c.fullLines){var d=f.test(h.getLine(l));h.replaceRange(m+k,g(l)),h.replaceRange(j+m,g(a.line,0));var e=c.blockCommentLead||i.blockCommentLead;if(null!=e)for(var n=a.line+1;n<=l;++n)(n!=l||d)&&h.replaceRange(e+m,g(n,0))}else h.replaceRange(k,b),h.replaceRange(j,a)}))}})),a.defineExtension("uncomment",(function(a,b,c){c||(c=e);var h,i=this,j=d(i,a),k=Math.min(0!=b.ch||b.line==a.line?b.line:b.line-1,i.lastLine()),l=Math.min(a.line,k),m=c.lineComment||j.lineComment,n=[],o=null==c.padding?" ":c.padding;a:if(m){for(var p=l;p<=k;++p){var q=i.getLine(p),r=q.indexOf(m);if(r>-1&&!/comment/.test(i.getTokenTypeAt(g(p,r+1)))&&(r=-1),r==-1&&f.test(q))break a;if(r>-1&&f.test(q.slice(0,r)))break a;n.push(q)}if(i.operation((function(){for(var a=l;a<=k;++a){var b=n[a-l],c=b.indexOf(m),d=c+m.length;c<0||(b.slice(d,d+o.length)==o&&(d+=o.length),h=!0,i.replaceRange("",g(a,c),g(a,d)))}})),h)return!0}var s=c.blockCommentStart||j.blockCommentStart,t=c.blockCommentEnd||j.blockCommentEnd;if(!s||!t)return!1;var u=c.blockCommentLead||j.blockCommentLead,v=i.getLine(l),w=v.indexOf(s);if(w==-1)return!1;var x=k==l?v:i.getLine(k),y=x.indexOf(t,k==l?w+s.length:0),z=g(l,w+1),A=g(k,y+1);if(y==-1||!/comment/.test(i.getTokenTypeAt(z))||!/comment/.test(i.getTokenTypeAt(A))||i.getRange(z,A,"\n").indexOf(t)>-1)return!1;var B=v.lastIndexOf(s,a.ch),C=B==-1?-1:v.slice(0,a.ch).indexOf(t,B+s.length);if(B!=-1&&C!=-1&&C+t.length!=a.ch)return!1;C=x.indexOf(t,b.ch);var D=x.slice(b.ch).lastIndexOf(s,C-b.ch);return B=C==-1||D==-1?-1:b.ch+D,(C==-1||B==-1||B==b.ch)&&(i.operation((function(){i.replaceRange("",g(k,y-(o&&x.slice(y-o.length,y)==o?o.length:0)),g(k,y+t.length));var a=w+s.length;if(o&&v.slice(a,a+o.length)==o&&(a+=o.length),i.replaceRange("",g(l,w),g(l,a)),u)for(var b=l+1;b<=k;++b){var c=i.getLine(b),d=c.indexOf(u);if(d!=-1&&!f.test(c.slice(0,d))){var e=d+u.length;o&&c.slice(e,e+o.length)==o&&(e+=o.length),i.replaceRange("",g(b,d),g(b,e))}}})),!0)}))}));editors/codemirror/addon/edit/closebrackets.min.js000064400000006517152177723720016366 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b){return"pairs"==b&&"string"==typeof a?a:"object"==typeof a&&null!=a[b]?a[b]:l[b]}function c(a){for(var b=0;b<a.length;b++){var c=a.charAt(b),e="'"+c+"'";n[e]||(n[e]=d(c))}}function d(a){return function(b){return i(b,a)}}function e(a){var b=a.state.closeBrackets;if(!b||b.override)return b;var c=a.getModeAt(a.getCursor());return c.closeBrackets||b}function f(c){var d=e(c);if(!d||c.getOption("disableInput"))return a.Pass;for(var f=b(d,"pairs"),g=c.listSelections(),h=0;h<g.length;h++){if(!g[h].empty())return a.Pass;var i=j(c,g[h].head);if(!i||f.indexOf(i)%2!=0)return a.Pass}for(var h=g.length-1;h>=0;h--){var k=g[h].head;c.replaceRange("",m(k.line,k.ch-1),m(k.line,k.ch+1),"+delete")}}function g(c){var d=e(c),f=d&&b(d,"explode");if(!f||c.getOption("disableInput"))return a.Pass;for(var g=c.listSelections(),h=0;h<g.length;h++){if(!g[h].empty())return a.Pass;var i=j(c,g[h].head);if(!i||f.indexOf(i)%2!=0)return a.Pass}c.operation((function(){var a=c.lineSeparator()||"\n";c.replaceSelection(a+a,null),c.execCommand("goCharLeft"),g=c.listSelections();for(var b=0;b<g.length;b++){var d=g[b].head.line;c.indentLine(d,null,!0),c.indentLine(d+1,null,!0)}}))}function h(b){var c=a.cmpPos(b.anchor,b.head)>0;return{anchor:new m(b.anchor.line,b.anchor.ch+(c?-1:1)),head:new m(b.head.line,b.head.ch+(c?1:-1))}}function i(c,d){var f=e(c);if(!f||c.getOption("disableInput"))return a.Pass;var g=b(f,"pairs"),i=g.indexOf(d);if(i==-1)return a.Pass;for(var j,l=b(f,"triples"),n=g.charAt(i+1)==d,o=c.listSelections(),p=i%2==0,q=0;q<o.length;q++){var r,s=o[q],t=s.head,u=c.getRange(t,m(t.line,t.ch+1));if(p&&!s.empty())r="surround";else if(!n&&p||u!=d)if(n&&t.ch>1&&l.indexOf(d)>=0&&c.getRange(m(t.line,t.ch-2),t)==d+d){if(t.ch>2&&/\bstring/.test(c.getTokenTypeAt(m(t.line,t.ch-2))))return a.Pass;r="addFour"}else if(n){var v=0==t.ch?" ":c.getRange(m(t.line,t.ch-1),t);if(a.isWordChar(u)||v==d||a.isWordChar(v))return a.Pass;r="both"}else{if(!p)return a.Pass;r="both"}else r=n&&k(c,t)?"both":l.indexOf(d)>=0&&c.getRange(t,m(t.line,t.ch+3))==d+d+d?"skipThree":"skip";if(j){if(j!=r)return a.Pass}else j=r}var w=i%2?g.charAt(i-1):d,x=i%2?d:g.charAt(i+1);c.operation((function(){if("skip"==j)c.execCommand("goCharRight");else if("skipThree"==j)for(var a=0;a<3;a++)c.execCommand("goCharRight");else if("surround"==j){for(var b=c.getSelections(),a=0;a<b.length;a++)b[a]=w+b[a]+x;c.replaceSelections(b,"around"),b=c.listSelections().slice();for(var a=0;a<b.length;a++)b[a]=h(b[a]);c.setSelections(b)}else"both"==j?(c.replaceSelection(w+x,null),c.triggerElectric(w+x),c.execCommand("goCharLeft")):"addFour"==j&&(c.replaceSelection(w+w+w+w,"before"),c.execCommand("goCharRight"))}))}function j(a,b){var c=a.getRange(m(b.line,b.ch-1),m(b.line,b.ch+1));return 2==c.length?c:null}function k(a,b){var c=a.getTokenAt(m(b.line,b.ch+1));return/\bstring/.test(c.type)&&c.start==b.ch&&(0==b.ch||!/\bstring/.test(a.getTokenTypeAt(b)))}var l={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},m=a.Pos;a.defineOption("autoCloseBrackets",!1,(function(d,e,f){f&&f!=a.Init&&(d.removeKeyMap(n),d.state.closeBrackets=null),e&&(c(b(e,"pairs")),d.state.closeBrackets=e,d.addKeyMap(n))}));var n={Backspace:f,Enter:g};c(l.pairs+"`")}));editors/codemirror/addon/edit/continuelist.js000064400000006726152177723720015502 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,
      emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,
      unorderedListRE = /[*+-]\s/;

  CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    var ranges = cm.listSelections(), replacements = [];
    for (var i = 0; i < ranges.length; i++) {
      var pos = ranges[i].head;
      var eolState = cm.getStateAfter(pos.line);
      var inList = eolState.list !== false;
      var inQuote = eolState.quote !== 0;

      var line = cm.getLine(pos.line), match = listRE.exec(line);
      var cursorBeforeBullet = /^\s*$/.test(line.slice(0, pos.ch));
      if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) {
        cm.execCommand("newlineAndIndent");
        return;
      }
      if (emptyListRE.test(line)) {
        if (!/>\s*$/.test(line)) cm.replaceRange("", {
          line: pos.line, ch: 0
        }, {
          line: pos.line, ch: pos.ch + 1
        });
        replacements[i] = "\n";
      } else {
        var indent = match[1], after = match[5];
        var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0);
        var bullet = numbered ? (parseInt(match[3], 10) + 1) + match[4] : match[2].replace("x", " ");
        replacements[i] = "\n" + indent + bullet + after;

        if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);
      }
    }

    cm.replaceSelections(replacements);
  };

  // Auto-updating Markdown list numbers when a new item is added to the
  // middle of a list
  function incrementRemainingMarkdownListNumbers(cm, pos) {
    var startLine = pos.line, lookAhead = 0, skipCount = 0;
    var startItem = listRE.exec(cm.getLine(startLine)), startIndent = startItem[1];

    do {
      lookAhead += 1;
      var nextLineNumber = startLine + lookAhead;
      var nextLine = cm.getLine(nextLineNumber), nextItem = listRE.exec(nextLine);

      if (nextItem) {
        var nextIndent = nextItem[1];
        var newNumber = (parseInt(startItem[3], 10) + lookAhead - skipCount);
        var nextNumber = (parseInt(nextItem[3], 10)), itemNumber = nextNumber;

        if (startIndent === nextIndent && !isNaN(nextNumber)) {
          if (newNumber === nextNumber) itemNumber = nextNumber + 1;
          if (newNumber > nextNumber) itemNumber = newNumber + 1;
          cm.replaceRange(
            nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),
          {
            line: nextLineNumber, ch: 0
          }, {
            line: nextLineNumber, ch: nextLine.length
          });
        } else {
          if (startIndent.length > nextIndent.length) return;
          // This doesn't run if the next line immediatley indents, as it is
          // not clear of the users intention (new indented item or same level)
          if ((startIndent.length < nextIndent.length) && (lookAhead === 1)) return;
          skipCount += 1;
        }
      }
    } while (nextItem);
  }
});
editors/codemirror/addon/edit/matchtags.min.js000064400000002505152177723720015506 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],a):a(CodeMirror)})((function(a){"use strict";function b(a){a.state.tagHit&&a.state.tagHit.clear(),a.state.tagOther&&a.state.tagOther.clear(),a.state.tagHit=a.state.tagOther=null}function c(c){c.state.failedTagMatch=!1,c.operation((function(){if(b(c),!c.somethingSelected()){var d=c.getCursor(),e=c.getViewport();e.from=Math.min(e.from,d.line),e.to=Math.max(d.line+1,e.to);var f=a.findMatchingTag(c,d,e);if(f){if(c.state.matchBothTags){var g="open"==f.at?f.open:f.close;g&&(c.state.tagHit=c.markText(g.from,g.to,{className:"CodeMirror-matchingtag"}))}var h="close"==f.at?f.open:f.close;h?c.state.tagOther=c.markText(h.from,h.to,{className:"CodeMirror-matchingtag"}):c.state.failedTagMatch=!0}}}))}function d(a){a.state.failedTagMatch&&c(a)}a.defineOption("matchTags",!1,(function(e,f,g){g&&g!=a.Init&&(e.off("cursorActivity",c),e.off("viewportChange",d),b(e)),f&&(e.state.matchBothTags="object"==typeof f&&f.bothTags,e.on("cursorActivity",c),e.on("viewportChange",d),c(e))})),a.commands.toMatchingTag=function(b){var c=a.findMatchingTag(b,b.getCursor());if(c){var d="close"==c.at?c.open:c.close;d&&b.extendSelection(d.to,d.from)}}}));editors/codemirror/addon/edit/trailingspace.min.js000064400000000774152177723720016366 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){a.defineOption("showTrailingSpace",!1,(function(b,c,d){d==a.Init&&(d=!1),d&&!c?b.removeOverlay("trailingspace"):!d&&c&&b.addOverlay({token:function(a){for(var b=a.string.length,c=b;c&&/\s/.test(a.string.charAt(c-1));--c);return c>a.pos?(a.pos=c,null):(a.pos=b,"trailingspace")},name:"trailingspace"})}))}));editors/codemirror/addon/edit/closebrackets.js000064400000014747152177723720015610 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  var defaults = {
    pairs: "()[]{}''\"\"",
    triples: "",
    explode: "[]{}"
  };

  var Pos = CodeMirror.Pos;

  CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.removeKeyMap(keyMap);
      cm.state.closeBrackets = null;
    }
    if (val) {
      ensureBound(getOption(val, "pairs"))
      cm.state.closeBrackets = val;
      cm.addKeyMap(keyMap);
    }
  });

  function getOption(conf, name) {
    if (name == "pairs" && typeof conf == "string") return conf;
    if (typeof conf == "object" && conf[name] != null) return conf[name];
    return defaults[name];
  }

  var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
  function ensureBound(chars) {
    for (var i = 0; i < chars.length; i++) {
      var ch = chars.charAt(i), key = "'" + ch + "'"
      if (!keyMap[key]) keyMap[key] = handler(ch)
    }
  }
  ensureBound(defaults.pairs + "`")

  function handler(ch) {
    return function(cm) { return handleChar(cm, ch); };
  }

  function getConfig(cm) {
    var deflt = cm.state.closeBrackets;
    if (!deflt || deflt.override) return deflt;
    var mode = cm.getModeAt(cm.getCursor());
    return mode.closeBrackets || deflt;
  }

  function handleBackspace(cm) {
    var conf = getConfig(cm);
    if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;

    var pairs = getOption(conf, "pairs");
    var ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var around = charsAround(cm, ranges[i].head);
      if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
    }
    for (var i = ranges.length - 1; i >= 0; i--) {
      var cur = ranges[i].head;
      cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete");
    }
  }

  function handleEnter(cm) {
    var conf = getConfig(cm);
    var explode = conf && getOption(conf, "explode");
    if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass;

    var ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var around = charsAround(cm, ranges[i].head);
      if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
    }
    cm.operation(function() {
      var linesep = cm.lineSeparator() || "\n";
      cm.replaceSelection(linesep + linesep, null);
      cm.execCommand("goCharLeft");
      ranges = cm.listSelections();
      for (var i = 0; i < ranges.length; i++) {
        var line = ranges[i].head.line;
        cm.indentLine(line, null, true);
        cm.indentLine(line + 1, null, true);
      }
    });
  }

  function contractSelection(sel) {
    var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;
    return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),
            head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};
  }

  function handleChar(cm, ch) {
    var conf = getConfig(cm);
    if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;

    var pairs = getOption(conf, "pairs");
    var pos = pairs.indexOf(ch);
    if (pos == -1) return CodeMirror.Pass;
    var triples = getOption(conf, "triples");

    var identical = pairs.charAt(pos + 1) == ch;
    var ranges = cm.listSelections();
    var opening = pos % 2 == 0;

    var type;
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i], cur = range.head, curType;
      var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));
      if (opening && !range.empty()) {
        curType = "surround";
      } else if ((identical || !opening) && next == ch) {
        if (identical && stringStartsAfter(cm, cur))
          curType = "both";
        else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)
          curType = "skipThree";
        else
          curType = "skip";
      } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
                 cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {
        if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;
        curType = "addFour";
      } else if (identical) {
        var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur)
        if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";
        else return CodeMirror.Pass;
      } else if (opening) {
        curType = "both";
      } else {
        return CodeMirror.Pass;
      }
      if (!type) type = curType;
      else if (type != curType) return CodeMirror.Pass;
    }

    var left = pos % 2 ? pairs.charAt(pos - 1) : ch;
    var right = pos % 2 ? ch : pairs.charAt(pos + 1);
    cm.operation(function() {
      if (type == "skip") {
        cm.execCommand("goCharRight");
      } else if (type == "skipThree") {
        for (var i = 0; i < 3; i++)
          cm.execCommand("goCharRight");
      } else if (type == "surround") {
        var sels = cm.getSelections();
        for (var i = 0; i < sels.length; i++)
          sels[i] = left + sels[i] + right;
        cm.replaceSelections(sels, "around");
        sels = cm.listSelections().slice();
        for (var i = 0; i < sels.length; i++)
          sels[i] = contractSelection(sels[i]);
        cm.setSelections(sels);
      } else if (type == "both") {
        cm.replaceSelection(left + right, null);
        cm.triggerElectric(left + right);
        cm.execCommand("goCharLeft");
      } else if (type == "addFour") {
        cm.replaceSelection(left + left + left + left, "before");
        cm.execCommand("goCharRight");
      }
    });
  }

  function charsAround(cm, pos) {
    var str = cm.getRange(Pos(pos.line, pos.ch - 1),
                          Pos(pos.line, pos.ch + 1));
    return str.length == 2 ? str : null;
  }

  function stringStartsAfter(cm, pos) {
    var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
    return /\bstring/.test(token.type) && token.start == pos.ch &&
      (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos)))
  }
});
editors/codemirror/addon/edit/continuelist.min.js000064400000002536152177723720016257 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){var d=b.line,e=0,f=0,g=c.exec(a.getLine(d)),h=g[1];do{e+=1;var i=d+e,j=a.getLine(i),k=c.exec(j);if(k){var l=k[1],m=parseInt(g[3],10)+e-f,n=parseInt(k[3],10),o=n;if(h!==l||isNaN(n)){if(h.length>l.length)return;if(h.length<l.length&&1===e)return;f+=1}else m===n&&(o=n+1),m>n&&(o=m+1),a.replaceRange(j.replace(c,l+o+k[4]+k[5]),{line:i,ch:0},{line:i,ch:j.length})}}while(k)}var c=/^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,d=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,e=/[*+-]\s/;a.commands.newlineAndIndentContinueMarkdownList=function(f){if(f.getOption("disableInput"))return a.Pass;for(var g=f.listSelections(),h=[],i=0;i<g.length;i++){var j=g[i].head,k=f.getStateAfter(j.line),l=k.list!==!1,m=0!==k.quote,n=f.getLine(j.line),o=c.exec(n),p=/^\s*$/.test(n.slice(0,j.ch));if(!g[i].empty()||!l&&!m||!o||p)return void f.execCommand("newlineAndIndent");if(d.test(n))/>\s*$/.test(n)||f.replaceRange("",{line:j.line,ch:0},{line:j.line,ch:j.ch+1}),h[i]="\n";else{var q=o[1],r=o[5],s=!(e.test(o[2])||o[2].indexOf(">")>=0),t=s?parseInt(o[3],10)+1+o[4]:o[2].replace("x"," ");h[i]="\n"+q+t+r,s&&b(f,j)}}f.replaceSelections(h)}}));editors/codemirror/addon/edit/matchbrackets.min.js000064400000005532152177723720016351 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){function b(a,b,d){var e=a.getLineHandle(b.line),f=b.ch-1,i=d&&d.afterCursor;null==i&&(i=/(^| )cm-fat-cursor($| )/.test(a.getWrapperElement().className));var j=!i&&f>=0&&h[e.text.charAt(f)]||h[e.text.charAt(++f)];if(!j)return null;var k=">"==j.charAt(1)?1:-1;if(d&&d.strict&&k>0!=(f==b.ch))return null;var l=a.getTokenTypeAt(g(b.line,f+1)),m=c(a,g(b.line,f+(k>0?1:0)),k,l||null,d);return null==m?null:{from:g(b.line,f),to:m&&m.pos,match:m&&m.ch==j.charAt(0),forward:k>0}}function c(a,b,c,d,e){for(var f=e&&e.maxScanLineLength||1e4,i=e&&e.maxScanLines||1e3,j=[],k=e&&e.bracketRegex?e.bracketRegex:/[(){}[\]]/,l=c>0?Math.min(b.line+i,a.lastLine()+1):Math.max(a.firstLine()-1,b.line-i),m=b.line;m!=l;m+=c){var n=a.getLine(m);if(n){var o=c>0?0:n.length-1,p=c>0?n.length:-1;if(!(n.length>f))for(m==b.line&&(o=b.ch-(c<0?1:0));o!=p;o+=c){var q=n.charAt(o);if(k.test(q)&&(void 0===d||a.getTokenTypeAt(g(m,o+1))==d)){var r=h[q];if(">"==r.charAt(1)==c>0)j.push(q);else{if(!j.length)return{pos:g(m,o),ch:q};j.pop()}}}}}return m-c!=(c>0?a.lastLine():a.firstLine())&&null}function d(a,c,d){for(var e=a.state.matchBrackets.maxHighlightLineLength||1e3,h=[],i=a.listSelections(),j=0;j<i.length;j++){var k=i[j].empty()&&b(a,i[j].head,d);if(k&&a.getLine(k.from.line).length<=e){var l=k.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";h.push(a.markText(k.from,g(k.from.line,k.from.ch+1),{className:l})),k.to&&a.getLine(k.to.line).length<=e&&h.push(a.markText(k.to,g(k.to.line,k.to.ch+1),{className:l}))}}if(h.length){f&&a.state.focused&&a.focus();var m=function(){a.operation((function(){for(var a=0;a<h.length;a++)h[a].clear()}))};if(!c)return m;setTimeout(m,800)}}function e(a){a.operation((function(){a.state.matchBrackets.currentlyHighlighted&&(a.state.matchBrackets.currentlyHighlighted(),a.state.matchBrackets.currentlyHighlighted=null),a.state.matchBrackets.currentlyHighlighted=d(a,!1,a.state.matchBrackets)}))}var f=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),g=a.Pos,h={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};a.defineOption("matchBrackets",!1,(function(b,c,d){d&&d!=a.Init&&(b.off("cursorActivity",e),b.state.matchBrackets&&b.state.matchBrackets.currentlyHighlighted&&(b.state.matchBrackets.currentlyHighlighted(),b.state.matchBrackets.currentlyHighlighted=null)),c&&(b.state.matchBrackets="object"==typeof c?c:{},b.on("cursorActivity",e))})),a.defineExtension("matchBrackets",(function(){d(this,!0)})),a.defineExtension("findMatchingBracket",(function(a,c,d){return(d||"boolean"==typeof c)&&(d?(d.strict=c,c=d):c=c?{strict:!0}:null),b(this,a,c)})),a.defineExtension("scanForBracket",(function(a,b,d,e){return c(this,a,b,d,e)}))}));editors/codemirror/addon/edit/trailingspace.js000064400000001754152177723720015603 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
    if (prev == CodeMirror.Init) prev = false;
    if (prev && !val)
      cm.removeOverlay("trailingspace");
    else if (!prev && val)
      cm.addOverlay({
        token: function(stream) {
          for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
          if (i > stream.pos) { stream.pos = i; return null; }
          stream.pos = l;
          return "trailingspace";
        },
        name: "trailingspace"
      });
  });
});
editors/codemirror/addon/edit/matchbrackets.js000064400000014163152177723720015567 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
    (document.documentMode == null || document.documentMode < 8);

  var Pos = CodeMirror.Pos;

  var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};

  function findMatchingBracket(cm, where, config) {
    var line = cm.getLineHandle(where.line), pos = where.ch - 1;
    var afterCursor = config && config.afterCursor
    if (afterCursor == null)
      afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)

    // A cursor is defined as between two characters, but in in vim command mode
    // (i.e. not insert mode), the cursor is visually represented as a
    // highlighted box on top of the 2nd character. Otherwise, we allow matches
    // from before or after the cursor.
    var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
        matching[line.text.charAt(++pos)];
    if (!match) return null;
    var dir = match.charAt(1) == ">" ? 1 : -1;
    if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
    var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));

    var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
    if (found == null) return null;
    return {from: Pos(where.line, pos), to: found && found.pos,
            match: found && found.ch == match.charAt(0), forward: dir > 0};
  }

  // bracketRegex is used to specify which type of bracket to scan
  // should be a regexp, e.g. /[[\]]/
  //
  // Note: If "where" is on an open bracket, then this bracket is ignored.
  //
  // Returns false when no bracket was found, null when it reached
  // maxScanLines and gave up
  function scanForBracket(cm, where, dir, style, config) {
    var maxScanLen = (config && config.maxScanLineLength) || 10000;
    var maxScanLines = (config && config.maxScanLines) || 1000;

    var stack = [];
    var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
    var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
                          : Math.max(cm.firstLine() - 1, where.line - maxScanLines);
    for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
      var line = cm.getLine(lineNo);
      if (!line) continue;
      var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
      if (line.length > maxScanLen) continue;
      if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
      for (; pos != end; pos += dir) {
        var ch = line.charAt(pos);
        if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
          var match = matching[ch];
          if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
          else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
          else stack.pop();
        }
      }
    }
    return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
  }

  function matchBrackets(cm, autoclear, config) {
    // Disable brace matching in long lines, since it'll cause hugely slow updates
    var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
    var marks = [], ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++) {
      var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
      if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
        var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
        marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
        if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
          marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
      }
    }

    if (marks.length) {
      // Kludge to work around the IE bug from issue #1193, where text
      // input stops going to the textare whever this fires.
      if (ie_lt8 && cm.state.focused) cm.focus();

      var clear = function() {
        cm.operation(function() {
          for (var i = 0; i < marks.length; i++) marks[i].clear();
        });
      };
      if (autoclear) setTimeout(clear, 800);
      else return clear;
    }
  }

  function doMatchBrackets(cm) {
    cm.operation(function() {
      if (cm.state.matchBrackets.currentlyHighlighted) {
        cm.state.matchBrackets.currentlyHighlighted();
        cm.state.matchBrackets.currentlyHighlighted = null;
      }
      cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
    });
  }

  CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.off("cursorActivity", doMatchBrackets);
      if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {
        cm.state.matchBrackets.currentlyHighlighted();
        cm.state.matchBrackets.currentlyHighlighted = null;
      }
    }
    if (val) {
      cm.state.matchBrackets = typeof val == "object" ? val : {};
      cm.on("cursorActivity", doMatchBrackets);
    }
  });

  CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
  CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
    // Backwards-compatibility kludge
    if (oldConfig || typeof config == "boolean") {
      if (!oldConfig) {
        config = config ? {strict: true} : null
      } else {
        oldConfig.strict = config
        config = oldConfig
      }
    }
    return findMatchingBracket(this, pos, config)
  });
  CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
    return scanForBracket(this, pos, dir, style, config);
  });
});
editors/codemirror/addon/edit/closetag.min.js000064400000006536152177723720015344 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],a):a(CodeMirror)})((function(a){function b(b){if(b.getOption("disableInput"))return a.Pass;for(var c=b.listSelections(),d=[],i=b.getOption("autoCloseTags"),j=0;j<c.length;j++){if(!c[j].empty())return a.Pass;var k=c[j].head,l=b.getTokenAt(k),m=a.innerMode(b.getMode(),l.state),n=m.state;if("xml"!=m.mode.name||!n.tagName)return a.Pass;var o="html"==m.mode.configuration,p="object"==typeof i&&i.dontCloseTags||o&&g,q="object"==typeof i&&i.indentTags||o&&h,r=n.tagName;l.end>k.ch&&(r=r.slice(0,r.length-l.end+k.ch));var s=r.toLowerCase();if(!r||"string"==l.type&&(l.end!=k.ch||!/[\"\']/.test(l.string.charAt(l.string.length-1))||1==l.string.length)||"tag"==l.type&&"closeTag"==n.type||l.string.indexOf("/")==l.string.length-1||p&&e(p,s)>-1||f(b,r,k,n,!0))return a.Pass;var t=q&&e(q,s)>-1;d[j]={indent:t,text:">"+(t?"\n\n":"")+"</"+r+">",newPos:t?a.Pos(k.line+1,0):a.Pos(k.line,k.ch+1)}}for(var u="object"==typeof i&&i.dontIndentOnAutoClose,j=c.length-1;j>=0;j--){var v=d[j];b.replaceRange(v.text,c[j].head,c[j].anchor,"+insert");var w=b.listSelections().slice(0);w[j]={head:v.newPos,anchor:v.newPos},b.setSelections(w),!u&&v.indent&&(b.indentLine(v.newPos.line,null,!0),b.indentLine(v.newPos.line+1,null,!0))}}function c(b,c){for(var d=b.listSelections(),e=[],g=c?"/":"</",h=b.getOption("autoCloseTags"),i="object"==typeof h&&h.dontIndentOnSlash,j=0;j<d.length;j++){if(!d[j].empty())return a.Pass;var k=d[j].head,l=b.getTokenAt(k),m=a.innerMode(b.getMode(),l.state),n=m.state;if(c&&("string"==l.type||"<"!=l.string.charAt(0)||l.start!=k.ch-1))return a.Pass;var o;if("xml"!=m.mode.name)if("htmlmixed"==b.getMode().name&&"javascript"==m.mode.name)o=g+"script";else{if("htmlmixed"!=b.getMode().name||"css"!=m.mode.name)return a.Pass;o=g+"style"}else{if(!n.context||!n.context.tagName||f(b,n.context.tagName,k,n))return a.Pass;o=g+n.context.tagName}">"!=b.getLine(k.line).charAt(l.end)&&(o+=">"),e[j]=o}if(b.replaceSelections(e),d=b.listSelections(),!i)for(var j=0;j<d.length;j++)(j==d.length-1||d[j].head.line<d[j+1].head.line)&&b.indentLine(d[j].head.line)}function d(b){return b.getOption("disableInput")?a.Pass:c(b,!0)}function e(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;c<d;++c)if(a[c]==b)return c;return-1}function f(b,c,d,e,f){if(!a.scanForClosingTag)return!1;var g=Math.min(b.lastLine()+1,d.line+500),h=a.scanForClosingTag(b,d,null,g);if(!h||h.tag!=c)return!1;for(var i=e.context,j=f?1:0;i&&i.tagName==c;i=i.prev)++j;d=h.to;for(var k=1;k<j;k++){var l=a.scanForClosingTag(b,d,null,g);if(!l||l.tag!=c)return!1;d=l.to}return!0}a.defineOption("autoCloseTags",!1,(function(c,e,f){if(f!=a.Init&&f&&c.removeKeyMap("autoCloseTags"),e){var g={name:"autoCloseTags"};("object"!=typeof e||e.whenClosing)&&(g["'/'"]=function(a){return d(a)}),("object"!=typeof e||e.whenOpening)&&(g["'>'"]=function(a){return b(a)}),c.addKeyMap(g)}}));var g=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],h=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];a.commands.closeTag=function(a){return c(a)}}));editors/codemirror/addon/edit/matchtags.js000064400000004464152177723720014732 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../fold/xml-fold"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.off("cursorActivity", doMatchTags);
      cm.off("viewportChange", maybeUpdateMatch);
      clear(cm);
    }
    if (val) {
      cm.state.matchBothTags = typeof val == "object" && val.bothTags;
      cm.on("cursorActivity", doMatchTags);
      cm.on("viewportChange", maybeUpdateMatch);
      doMatchTags(cm);
    }
  });

  function clear(cm) {
    if (cm.state.tagHit) cm.state.tagHit.clear();
    if (cm.state.tagOther) cm.state.tagOther.clear();
    cm.state.tagHit = cm.state.tagOther = null;
  }

  function doMatchTags(cm) {
    cm.state.failedTagMatch = false;
    cm.operation(function() {
      clear(cm);
      if (cm.somethingSelected()) return;
      var cur = cm.getCursor(), range = cm.getViewport();
      range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
      var match = CodeMirror.findMatchingTag(cm, cur, range);
      if (!match) return;
      if (cm.state.matchBothTags) {
        var hit = match.at == "open" ? match.open : match.close;
        if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
      }
      var other = match.at == "close" ? match.open : match.close;
      if (other)
        cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
      else
        cm.state.failedTagMatch = true;
    });
  }

  function maybeUpdateMatch(cm) {
    if (cm.state.failedTagMatch) doMatchTags(cm);
  }

  CodeMirror.commands.toMatchingTag = function(cm) {
    var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
    if (found) {
      var other = found.at == "close" ? found.open : found.close;
      if (other) cm.extendSelection(other.to, other.from);
    }
  };
});
editors/codemirror/addon/edit/closetag.js000064400000017515152177723720014561 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Tag-closer extension for CodeMirror.
 *
 * This extension adds an "autoCloseTags" option that can be set to
 * either true to get the default behavior, or an object to further
 * configure its behavior.
 *
 * These are supported options:
 *
 * `whenClosing` (default true)
 *   Whether to autoclose when the '/' of a closing tag is typed.
 * `whenOpening` (default true)
 *   Whether to autoclose the tag when the final '>' of an opening
 *   tag is typed.
 * `dontCloseTags` (default is empty tags for HTML, none for XML)
 *   An array of tag names that should not be autoclosed.
 * `indentTags` (default is block tags for HTML, none for XML)
 *   An array of tag names that should, when opened, cause a
 *   blank line to be added inside the tag, and the blank line and
 *   closing line to be indented.
 *
 * See demos/closetag.html for a usage example.
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror", "../fold/xml-fold"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
    if (old != CodeMirror.Init && old)
      cm.removeKeyMap("autoCloseTags");
    if (!val) return;
    var map = {name: "autoCloseTags"};
    if (typeof val != "object" || val.whenClosing)
      map["'/'"] = function(cm) { return autoCloseSlash(cm); };
    if (typeof val != "object" || val.whenOpening)
      map["'>'"] = function(cm) { return autoCloseGT(cm); };
    cm.addKeyMap(map);
  });

  var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
                       "source", "track", "wbr"];
  var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
                    "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];

  function autoCloseGT(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    var ranges = cm.listSelections(), replacements = [];
    var opt = cm.getOption("autoCloseTags");
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var pos = ranges[i].head, tok = cm.getTokenAt(pos);
      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
      if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;

      var html = inner.mode.configuration == "html";
      var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
      var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);

      var tagName = state.tagName;
      if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
      var lowerTagName = tagName.toLowerCase();
      // Don't process the '>' at the end of an end-tag or self-closing tag
      if (!tagName ||
          tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
          tok.type == "tag" && state.type == "closeTag" ||
          tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
          dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||
          closingTagExists(cm, tagName, pos, state, true))
        return CodeMirror.Pass;

      var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;
      replacements[i] = {indent: indent,
                         text: ">" + (indent ? "\n\n" : "") + "</" + tagName + ">",
                         newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
    }

    var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnAutoClose);
    for (var i = ranges.length - 1; i >= 0; i--) {
      var info = replacements[i];
      cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
      var sel = cm.listSelections().slice(0);
      sel[i] = {head: info.newPos, anchor: info.newPos};
      cm.setSelections(sel);
      if (!dontIndentOnAutoClose && info.indent) {
        cm.indentLine(info.newPos.line, null, true);
        cm.indentLine(info.newPos.line + 1, null, true);
      }
    }
  }

  function autoCloseCurrent(cm, typingSlash) {
    var ranges = cm.listSelections(), replacements = [];
    var head = typingSlash ? "/" : "</";
    var opt = cm.getOption("autoCloseTags");
    var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnSlash);
    for (var i = 0; i < ranges.length; i++) {
      if (!ranges[i].empty()) return CodeMirror.Pass;
      var pos = ranges[i].head, tok = cm.getTokenAt(pos);
      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
      if (typingSlash && (tok.type == "string" || tok.string.charAt(0) != "<" ||
                          tok.start != pos.ch - 1))
        return CodeMirror.Pass;
      // Kludge to get around the fact that we are not in XML mode
      // when completing in JS/CSS snippet in htmlmixed mode. Does not
      // work for other XML embedded languages (there is no general
      // way to go from a mixed mode to its current XML state).
      var replacement;
      if (inner.mode.name != "xml") {
        if (cm.getMode().name == "htmlmixed" && inner.mode.name == "javascript")
          replacement = head + "script";
        else if (cm.getMode().name == "htmlmixed" && inner.mode.name == "css")
          replacement = head + "style";
        else
          return CodeMirror.Pass;
      } else {
        if (!state.context || !state.context.tagName ||
            closingTagExists(cm, state.context.tagName, pos, state))
          return CodeMirror.Pass;
        replacement = head + state.context.tagName;
      }
      if (cm.getLine(pos.line).charAt(tok.end) != ">") replacement += ">";
      replacements[i] = replacement;
    }
    cm.replaceSelections(replacements);
    ranges = cm.listSelections();
    if (!dontIndentOnAutoClose) {
        for (var i = 0; i < ranges.length; i++)
            if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
                cm.indentLine(ranges[i].head.line);
    }
  }

  function autoCloseSlash(cm) {
    if (cm.getOption("disableInput")) return CodeMirror.Pass;
    return autoCloseCurrent(cm, true);
  }

  CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };

  function indexOf(collection, elt) {
    if (collection.indexOf) return collection.indexOf(elt);
    for (var i = 0, e = collection.length; i < e; ++i)
      if (collection[i] == elt) return i;
    return -1;
  }

  // If xml-fold is loaded, we use its functionality to try and verify
  // whether a given tag is actually unclosed.
  function closingTagExists(cm, tagName, pos, state, newTag) {
    if (!CodeMirror.scanForClosingTag) return false;
    var end = Math.min(cm.lastLine() + 1, pos.line + 500);
    var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);
    if (!nextClose || nextClose.tag != tagName) return false;
    var cx = state.context;
    // If the immediate wrapping context contains onCx instances of
    // the same tag, a closing tag only exists if there are at least
    // that many closing tags of that type following.
    for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;
    pos = nextClose.to;
    for (var i = 1; i < onCx; i++) {
      var next = CodeMirror.scanForClosingTag(cm, pos, null, end);
      if (!next || next.tag != tagName) return false;
      pos = next.to;
    }
    return true;
  }
});
editors/codemirror/addon/scroll/scrollpastend.min.js000064400000001457152177723720016766 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,d){a.changeEnd(d).line==b.lastLine()&&c(b)}function c(a){var b="";if(a.lineCount()>1){var d=a.display.scroller.clientHeight-30,e=a.getLineHandle(a.lastLine()).height;b=d-e+"px"}a.state.scrollPastEndPadding!=b&&(a.state.scrollPastEndPadding=b,a.display.lineSpace.parentNode.style.paddingBottom=b,a.off("refresh",c),a.setSize(),a.on("refresh",c))}a.defineOption("scrollPastEnd",!1,(function(d,e,f){f&&f!=a.Init&&(d.off("change",b),d.off("refresh",c),d.display.lineSpace.parentNode.style.paddingBottom="",d.state.scrollPastEndPadding=null),e&&(d.on("change",b),d.on("refresh",c),c(d))}))}));editors/codemirror/addon/scroll/simplescrollbars.js000064400000012527152177723720016707 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  function Bar(cls, orientation, scroll) {
    this.orientation = orientation;
    this.scroll = scroll;
    this.screen = this.total = this.size = 1;
    this.pos = 0;

    this.node = document.createElement("div");
    this.node.className = cls + "-" + orientation;
    this.inner = this.node.appendChild(document.createElement("div"));

    var self = this;
    CodeMirror.on(this.inner, "mousedown", function(e) {
      if (e.which != 1) return;
      CodeMirror.e_preventDefault(e);
      var axis = self.orientation == "horizontal" ? "pageX" : "pageY";
      var start = e[axis], startpos = self.pos;
      function done() {
        CodeMirror.off(document, "mousemove", move);
        CodeMirror.off(document, "mouseup", done);
      }
      function move(e) {
        if (e.which != 1) return done();
        self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));
      }
      CodeMirror.on(document, "mousemove", move);
      CodeMirror.on(document, "mouseup", done);
    });

    CodeMirror.on(this.node, "click", function(e) {
      CodeMirror.e_preventDefault(e);
      var innerBox = self.inner.getBoundingClientRect(), where;
      if (self.orientation == "horizontal")
        where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;
      else
        where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;
      self.moveTo(self.pos + where * self.screen);
    });

    function onWheel(e) {
      var moved = CodeMirror.wheelEventPixels(e)[self.orientation == "horizontal" ? "x" : "y"];
      var oldPos = self.pos;
      self.moveTo(self.pos + moved);
      if (self.pos != oldPos) CodeMirror.e_preventDefault(e);
    }
    CodeMirror.on(this.node, "mousewheel", onWheel);
    CodeMirror.on(this.node, "DOMMouseScroll", onWheel);
  }

  Bar.prototype.setPos = function(pos, force) {
    if (pos < 0) pos = 0;
    if (pos > this.total - this.screen) pos = this.total - this.screen;
    if (!force && pos == this.pos) return false;
    this.pos = pos;
    this.inner.style[this.orientation == "horizontal" ? "left" : "top"] =
      (pos * (this.size / this.total)) + "px";
    return true
  };

  Bar.prototype.moveTo = function(pos) {
    if (this.setPos(pos)) this.scroll(pos, this.orientation);
  }

  var minButtonSize = 10;

  Bar.prototype.update = function(scrollSize, clientSize, barSize) {
    var sizeChanged = this.screen != clientSize || this.total != scrollSize || this.size != barSize
    if (sizeChanged) {
      this.screen = clientSize;
      this.total = scrollSize;
      this.size = barSize;
    }

    var buttonSize = this.screen * (this.size / this.total);
    if (buttonSize < minButtonSize) {
      this.size -= minButtonSize - buttonSize;
      buttonSize = minButtonSize;
    }
    this.inner.style[this.orientation == "horizontal" ? "width" : "height"] =
      buttonSize + "px";
    this.setPos(this.pos, sizeChanged);
  };

  function SimpleScrollbars(cls, place, scroll) {
    this.addClass = cls;
    this.horiz = new Bar(cls, "horizontal", scroll);
    place(this.horiz.node);
    this.vert = new Bar(cls, "vertical", scroll);
    place(this.vert.node);
    this.width = null;
  }

  SimpleScrollbars.prototype.update = function(measure) {
    if (this.width == null) {
      var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;
      if (style) this.width = parseInt(style.height);
    }
    var width = this.width || 0;

    var needsH = measure.scrollWidth > measure.clientWidth + 1;
    var needsV = measure.scrollHeight > measure.clientHeight + 1;
    this.vert.node.style.display = needsV ? "block" : "none";
    this.horiz.node.style.display = needsH ? "block" : "none";

    if (needsV) {
      this.vert.update(measure.scrollHeight, measure.clientHeight,
                       measure.viewHeight - (needsH ? width : 0));
      this.vert.node.style.bottom = needsH ? width + "px" : "0";
    }
    if (needsH) {
      this.horiz.update(measure.scrollWidth, measure.clientWidth,
                        measure.viewWidth - (needsV ? width : 0) - measure.barLeft);
      this.horiz.node.style.right = needsV ? width + "px" : "0";
      this.horiz.node.style.left = measure.barLeft + "px";
    }

    return {right: needsV ? width : 0, bottom: needsH ? width : 0};
  };

  SimpleScrollbars.prototype.setScrollTop = function(pos) {
    this.vert.setPos(pos);
  };

  SimpleScrollbars.prototype.setScrollLeft = function(pos) {
    this.horiz.setPos(pos);
  };

  SimpleScrollbars.prototype.clear = function() {
    var parent = this.horiz.node.parentNode;
    parent.removeChild(this.horiz.node);
    parent.removeChild(this.vert.node);
  };

  CodeMirror.scrollbarModel.simple = function(place, scroll) {
    return new SimpleScrollbars("CodeMirror-simplescroll", place, scroll);
  };
  CodeMirror.scrollbarModel.overlay = function(place, scroll) {
    return new SimpleScrollbars("CodeMirror-overlayscroll", place, scroll);
  };
});
editors/codemirror/addon/scroll/scrollpastend.js000064400000003056152177723720016201 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
    if (old && old != CodeMirror.Init) {
      cm.off("change", onChange);
      cm.off("refresh", updateBottomMargin);
      cm.display.lineSpace.parentNode.style.paddingBottom = "";
      cm.state.scrollPastEndPadding = null;
    }
    if (val) {
      cm.on("change", onChange);
      cm.on("refresh", updateBottomMargin);
      updateBottomMargin(cm);
    }
  });

  function onChange(cm, change) {
    if (CodeMirror.changeEnd(change).line == cm.lastLine())
      updateBottomMargin(cm);
  }

  function updateBottomMargin(cm) {
    var padding = "";
    if (cm.lineCount() > 1) {
      var totalH = cm.display.scroller.clientHeight - 30,
          lastLineH = cm.getLineHandle(cm.lastLine()).height;
      padding = (totalH - lastLineH) + "px";
    }
    if (cm.state.scrollPastEndPadding != padding) {
      cm.state.scrollPastEndPadding = padding;
      cm.display.lineSpace.parentNode.style.paddingBottom = padding;
      cm.off("refresh", updateBottomMargin);
      cm.setSize();
      cm.on("refresh", updateBottomMargin);
    }
  }
});
editors/codemirror/addon/scroll/simplescrollbars.min.css000064400000002175152177723720017643 0ustar00.CodeMirror-simplescroll-horizontal div,.CodeMirror-simplescroll-vertical div{position:absolute;background:#ccc;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #bbb;border-radius:2px}.CodeMirror-simplescroll-horizontal,.CodeMirror-simplescroll-vertical{position:absolute;z-index:6;background:#eee}.CodeMirror-simplescroll-horizontal{bottom:0;left:0;height:8px}.CodeMirror-simplescroll-horizontal div{bottom:0;height:100%}.CodeMirror-simplescroll-vertical{right:0;top:0;width:8px}.CodeMirror-simplescroll-vertical div{right:0;width:100%}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:#bcd;border-radius:3px}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:6px}.CodeMirror-overlayscroll-horizontal div{bottom:0;height:100%}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:6px}.CodeMirror-overlayscroll-vertical div{right:0;width:100%}editors/codemirror/addon/scroll/simplescrollbars.css000064400000002503152177723720017054 0ustar00.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
  position: absolute;
  background: #ccc;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #bbb;
  border-radius: 2px;
}

.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
  position: absolute;
  z-index: 6;
  background: #eee;
}

.CodeMirror-simplescroll-horizontal {
  bottom: 0; left: 0;
  height: 8px;
}
.CodeMirror-simplescroll-horizontal div {
  bottom: 0;
  height: 100%;
}

.CodeMirror-simplescroll-vertical {
  right: 0; top: 0;
  width: 8px;
}
.CodeMirror-simplescroll-vertical div {
  right: 0;
  width: 100%;
}


.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
  display: none;
}

.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
  position: absolute;
  background: #bcd;
  border-radius: 3px;
}

.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
  position: absolute;
  z-index: 6;
}

.CodeMirror-overlayscroll-horizontal {
  bottom: 0; left: 0;
  height: 6px;
}
.CodeMirror-overlayscroll-horizontal div {
  bottom: 0;
  height: 100%;
}

.CodeMirror-overlayscroll-vertical {
  right: 0; top: 0;
  width: 6px;
}
.CodeMirror-overlayscroll-vertical div {
  right: 0;
  width: 100%;
}
editors/codemirror/addon/scroll/annotatescrollbar.js000064400000010534152177723720017040 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineExtension("annotateScrollbar", function(options) {
    if (typeof options == "string") options = {className: options};
    return new Annotation(this, options);
  });

  CodeMirror.defineOption("scrollButtonHeight", 0);

  function Annotation(cm, options) {
    this.cm = cm;
    this.options = options;
    this.buttonHeight = options.scrollButtonHeight || cm.getOption("scrollButtonHeight");
    this.annotations = [];
    this.doRedraw = this.doUpdate = null;
    this.div = cm.getWrapperElement().appendChild(document.createElement("div"));
    this.div.style.cssText = "position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none";
    this.computeScale();

    function scheduleRedraw(delay) {
      clearTimeout(self.doRedraw);
      self.doRedraw = setTimeout(function() { self.redraw(); }, delay);
    }

    var self = this;
    cm.on("refresh", this.resizeHandler = function() {
      clearTimeout(self.doUpdate);
      self.doUpdate = setTimeout(function() {
        if (self.computeScale()) scheduleRedraw(20);
      }, 100);
    });
    cm.on("markerAdded", this.resizeHandler);
    cm.on("markerCleared", this.resizeHandler);
    if (options.listenForChanges !== false)
      cm.on("change", this.changeHandler = function() {
        scheduleRedraw(250);
      });
  }

  Annotation.prototype.computeScale = function() {
    var cm = this.cm;
    var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /
      cm.getScrollerElement().scrollHeight
    if (hScale != this.hScale) {
      this.hScale = hScale;
      return true;
    }
  };

  Annotation.prototype.update = function(annotations) {
    this.annotations = annotations;
    this.redraw();
  };

  Annotation.prototype.redraw = function(compute) {
    if (compute !== false) this.computeScale();
    var cm = this.cm, hScale = this.hScale;

    var frag = document.createDocumentFragment(), anns = this.annotations;

    var wrapping = cm.getOption("lineWrapping");
    var singleLineH = wrapping && cm.defaultTextHeight() * 1.5;
    var curLine = null, curLineObj = null;
    function getY(pos, top) {
      if (curLine != pos.line) {
        curLine = pos.line;
        curLineObj = cm.getLineHandle(curLine);
      }
      if ((curLineObj.widgets && curLineObj.widgets.length) ||
          (wrapping && curLineObj.height > singleLineH))
        return cm.charCoords(pos, "local")[top ? "top" : "bottom"];
      var topY = cm.heightAtLine(curLineObj, "local");
      return topY + (top ? 0 : curLineObj.height);
    }

    var lastLine = cm.lastLine()
    if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {
      var ann = anns[i];
      if (ann.to.line > lastLine) continue;
      var top = nextTop || getY(ann.from, true) * hScale;
      var bottom = getY(ann.to, false) * hScale;
      while (i < anns.length - 1) {
        if (anns[i + 1].to.line > lastLine) break;
        nextTop = getY(anns[i + 1].from, true) * hScale;
        if (nextTop > bottom + .9) break;
        ann = anns[++i];
        bottom = getY(ann.to, false) * hScale;
      }
      if (bottom == top) continue;
      var height = Math.max(bottom - top, 3);

      var elt = frag.appendChild(document.createElement("div"));
      elt.style.cssText = "position: absolute; right: 0px; width: " + Math.max(cm.display.barWidth - 1, 2) + "px; top: "
        + (top + this.buttonHeight) + "px; height: " + height + "px";
      elt.className = this.options.className;
      if (ann.id) {
        elt.setAttribute("annotation-id", ann.id);
      }
    }
    this.div.textContent = "";
    this.div.appendChild(frag);
  };

  Annotation.prototype.clear = function() {
    this.cm.off("refresh", this.resizeHandler);
    this.cm.off("markerAdded", this.resizeHandler);
    this.cm.off("markerCleared", this.resizeHandler);
    if (this.changeHandler) this.cm.off("change", this.changeHandler);
    this.div.parentNode.removeChild(this.div);
  };
});
editors/codemirror/addon/scroll/annotatescrollbar.min.js000064400000005166152177723720017627 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){function c(a){clearTimeout(d.doRedraw),d.doRedraw=setTimeout((function(){d.redraw()}),a)}this.cm=a,this.options=b,this.buttonHeight=b.scrollButtonHeight||a.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=a.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var d=this;a.on("refresh",this.resizeHandler=function(){clearTimeout(d.doUpdate),d.doUpdate=setTimeout((function(){d.computeScale()&&c(20)}),100)}),a.on("markerAdded",this.resizeHandler),a.on("markerCleared",this.resizeHandler),b.listenForChanges!==!1&&a.on("change",this.changeHandler=function(){c(250)})}a.defineExtension("annotateScrollbar",(function(a){return"string"==typeof a&&(a={className:a}),new b(this,a)})),a.defineOption("scrollButtonHeight",0),b.prototype.computeScale=function(){var a=this.cm,b=(a.getWrapperElement().clientHeight-a.display.barHeight-2*this.buttonHeight)/a.getScrollerElement().scrollHeight;if(b!=this.hScale)return this.hScale=b,!0},b.prototype.update=function(a){this.annotations=a,this.redraw()},b.prototype.redraw=function(a){function b(a,b){if(i!=a.line&&(i=a.line,j=c.getLineHandle(i)),j.widgets&&j.widgets.length||g&&j.height>h)return c.charCoords(a,"local")[b?"top":"bottom"];var d=c.heightAtLine(j,"local");return d+(b?0:j.height)}a!==!1&&this.computeScale();var c=this.cm,d=this.hScale,e=document.createDocumentFragment(),f=this.annotations,g=c.getOption("lineWrapping"),h=g&&1.5*c.defaultTextHeight(),i=null,j=null,k=c.lastLine();if(c.display.barWidth)for(var l,m=0;m<f.length;m++){var n=f[m];if(!(n.to.line>k)){for(var o=l||b(n.from,!0)*d,p=b(n.to,!1)*d;m<f.length-1&&!(f[m+1].to.line>k)&&(l=b(f[m+1].from,!0)*d,!(l>p+.9));)n=f[++m],p=b(n.to,!1)*d;if(p!=o){var q=Math.max(p-o,3),r=e.appendChild(document.createElement("div"));r.style.cssText="position: absolute; right: 0px; width: "+Math.max(c.display.barWidth-1,2)+"px; top: "+(o+this.buttonHeight)+"px; height: "+q+"px",r.className=this.options.className,n.id&&r.setAttribute("annotation-id",n.id)}}}this.div.textContent="",this.div.appendChild(e)},b.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}));editors/codemirror/addon/scroll/simplescrollbars.min.js000064400000006054152177723720017467 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(b,c,d){function e(b){var c=a.wheelEventPixels(b)["horizontal"==f.orientation?"x":"y"],d=f.pos;f.moveTo(f.pos+c),f.pos!=d&&a.e_preventDefault(b)}this.orientation=c,this.scroll=d,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=b+"-"+c,this.inner=this.node.appendChild(document.createElement("div"));var f=this;a.on(this.inner,"mousedown",(function(b){function c(){a.off(document,"mousemove",d),a.off(document,"mouseup",c)}function d(a){return 1!=a.which?c():void f.moveTo(h+(a[e]-g)*(f.total/f.size))}if(1==b.which){a.e_preventDefault(b);var e="horizontal"==f.orientation?"pageX":"pageY",g=b[e],h=f.pos;a.on(document,"mousemove",d),a.on(document,"mouseup",c)}})),a.on(this.node,"click",(function(b){a.e_preventDefault(b);var c,d=f.inner.getBoundingClientRect();c="horizontal"==f.orientation?b.clientX<d.left?-1:b.clientX>d.right?1:0:b.clientY<d.top?-1:b.clientY>d.bottom?1:0,f.moveTo(f.pos+c*f.screen)})),a.on(this.node,"mousewheel",e),a.on(this.node,"DOMMouseScroll",e)}function c(a,c,d){this.addClass=a,this.horiz=new b(a,"horizontal",d),c(this.horiz.node),this.vert=new b(a,"vertical",d),c(this.vert.node),this.width=null}b.prototype.setPos=function(a,b){return a<0&&(a=0),a>this.total-this.screen&&(a=this.total-this.screen),!(!b&&a==this.pos)&&(this.pos=a,this.inner.style["horizontal"==this.orientation?"left":"top"]=a*(this.size/this.total)+"px",!0)},b.prototype.moveTo=function(a){this.setPos(a)&&this.scroll(a,this.orientation)};var d=10;b.prototype.update=function(a,b,c){var e=this.screen!=b||this.total!=a||this.size!=c;e&&(this.screen=b,this.total=a,this.size=c);var f=this.screen*(this.size/this.total);f<d&&(this.size-=d-f,f=d),this.inner.style["horizontal"==this.orientation?"width":"height"]=f+"px",this.setPos(this.pos,e)},c.prototype.update=function(a){if(null==this.width){var b=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;b&&(this.width=parseInt(b.height))}var c=this.width||0,d=a.scrollWidth>a.clientWidth+1,e=a.scrollHeight>a.clientHeight+1;return this.vert.node.style.display=e?"block":"none",this.horiz.node.style.display=d?"block":"none",e&&(this.vert.update(a.scrollHeight,a.clientHeight,a.viewHeight-(d?c:0)),this.vert.node.style.bottom=d?c+"px":"0"),d&&(this.horiz.update(a.scrollWidth,a.clientWidth,a.viewWidth-(e?c:0)-a.barLeft),this.horiz.node.style.right=e?c+"px":"0",this.horiz.node.style.left=a.barLeft+"px"),{right:e?c:0,bottom:d?c:0}},c.prototype.setScrollTop=function(a){this.vert.setPos(a)},c.prototype.setScrollLeft=function(a){this.horiz.setPos(a)},c.prototype.clear=function(){var a=this.horiz.node.parentNode;a.removeChild(this.horiz.node),a.removeChild(this.vert.node)},a.scrollbarModel.simple=function(a,b){return new c("CodeMirror-simplescroll",a,b)},a.scrollbarModel.overlay=function(a,b){return new c("CodeMirror-overlayscroll",a,b)}}));editors/codemirror/addon/selection/selection-pointer.min.js000064400000003577152177723720020250 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){var c=a.state.selectionPointer;(null==b.buttons?b.which:b.buttons)?c.mouseX=c.mouseY=null:(c.mouseX=b.clientX,c.mouseY=b.clientY),e(a)}function c(a,b){if(!a.getWrapperElement().contains(b.relatedTarget)){var c=a.state.selectionPointer;c.mouseX=c.mouseY=null,e(a)}}function d(a){a.state.selectionPointer.rects=null,e(a)}function e(a){a.state.selectionPointer.willUpdate||(a.state.selectionPointer.willUpdate=!0,setTimeout((function(){f(a),a.state.selectionPointer.willUpdate=!1}),50))}function f(a){var b=a.state.selectionPointer;if(b){if(null==b.rects&&null!=b.mouseX&&(b.rects=[],a.somethingSelected()))for(var c=a.display.selectionDiv.firstChild;c;c=c.nextSibling)b.rects.push(c.getBoundingClientRect());var d=!1;if(null!=b.mouseX)for(var e=0;e<b.rects.length;e++){var f=b.rects[e];f.left<=b.mouseX&&f.right>=b.mouseX&&f.top<=b.mouseY&&f.bottom>=b.mouseY&&(d=!0)}var g=d?b.value:"";a.display.lineDiv.style.cursor!=g&&(a.display.lineDiv.style.cursor=g)}}a.defineOption("selectionPointer",!1,(function(e,f){var g=e.state.selectionPointer;g&&(a.off(e.getWrapperElement(),"mousemove",g.mousemove),a.off(e.getWrapperElement(),"mouseout",g.mouseout),a.off(window,"scroll",g.windowScroll),e.off("cursorActivity",d),e.off("scroll",d),e.state.selectionPointer=null,e.display.lineDiv.style.cursor=""),f&&(g=e.state.selectionPointer={value:"string"==typeof f?f:"default",mousemove:function(a){b(e,a)},mouseout:function(a){c(e,a)},windowScroll:function(){d(e)},rects:null,mouseX:null,mouseY:null,willUpdate:!1},a.on(e.getWrapperElement(),"mousemove",g.mousemove),a.on(e.getWrapperElement(),"mouseout",g.mouseout),a.on(window,"scroll",g.windowScroll),e.on("cursorActivity",d),e.on("scroll",d))}))}));editors/codemirror/addon/selection/selection-pointer.js000064400000006335152177723720017461 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("selectionPointer", false, function(cm, val) {
    var data = cm.state.selectionPointer;
    if (data) {
      CodeMirror.off(cm.getWrapperElement(), "mousemove", data.mousemove);
      CodeMirror.off(cm.getWrapperElement(), "mouseout", data.mouseout);
      CodeMirror.off(window, "scroll", data.windowScroll);
      cm.off("cursorActivity", reset);
      cm.off("scroll", reset);
      cm.state.selectionPointer = null;
      cm.display.lineDiv.style.cursor = "";
    }
    if (val) {
      data = cm.state.selectionPointer = {
        value: typeof val == "string" ? val : "default",
        mousemove: function(event) { mousemove(cm, event); },
        mouseout: function(event) { mouseout(cm, event); },
        windowScroll: function() { reset(cm); },
        rects: null,
        mouseX: null, mouseY: null,
        willUpdate: false
      };
      CodeMirror.on(cm.getWrapperElement(), "mousemove", data.mousemove);
      CodeMirror.on(cm.getWrapperElement(), "mouseout", data.mouseout);
      CodeMirror.on(window, "scroll", data.windowScroll);
      cm.on("cursorActivity", reset);
      cm.on("scroll", reset);
    }
  });

  function mousemove(cm, event) {
    var data = cm.state.selectionPointer;
    if (event.buttons == null ? event.which : event.buttons) {
      data.mouseX = data.mouseY = null;
    } else {
      data.mouseX = event.clientX;
      data.mouseY = event.clientY;
    }
    scheduleUpdate(cm);
  }

  function mouseout(cm, event) {
    if (!cm.getWrapperElement().contains(event.relatedTarget)) {
      var data = cm.state.selectionPointer;
      data.mouseX = data.mouseY = null;
      scheduleUpdate(cm);
    }
  }

  function reset(cm) {
    cm.state.selectionPointer.rects = null;
    scheduleUpdate(cm);
  }

  function scheduleUpdate(cm) {
    if (!cm.state.selectionPointer.willUpdate) {
      cm.state.selectionPointer.willUpdate = true;
      setTimeout(function() {
        update(cm);
        cm.state.selectionPointer.willUpdate = false;
      }, 50);
    }
  }

  function update(cm) {
    var data = cm.state.selectionPointer;
    if (!data) return;
    if (data.rects == null && data.mouseX != null) {
      data.rects = [];
      if (cm.somethingSelected()) {
        for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)
          data.rects.push(sel.getBoundingClientRect());
      }
    }
    var inside = false;
    if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {
      var rect = data.rects[i];
      if (rect.left <= data.mouseX && rect.right >= data.mouseX &&
          rect.top <= data.mouseY && rect.bottom >= data.mouseY)
        inside = true;
    }
    var cursor = inside ? data.value : "";
    if (cm.display.lineDiv.style.cursor != cursor)
      cm.display.lineDiv.style.cursor = cursor;
  }
});
editors/codemirror/addon/selection/mark-selection.js000064400000007407152177723720016734 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// Because sometimes you need to mark the selected *text*.
//
// Adds an option 'styleSelectedText' which, when enabled, gives
// selected text the CSS class given as option value, or
// "CodeMirror-selectedtext" when the value is not a string.

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) {
    var prev = old && old != CodeMirror.Init;
    if (val && !prev) {
      cm.state.markedSelection = [];
      cm.state.markedSelectionStyle = typeof val == "string" ? val : "CodeMirror-selectedtext";
      reset(cm);
      cm.on("cursorActivity", onCursorActivity);
      cm.on("change", onChange);
    } else if (!val && prev) {
      cm.off("cursorActivity", onCursorActivity);
      cm.off("change", onChange);
      clear(cm);
      cm.state.markedSelection = cm.state.markedSelectionStyle = null;
    }
  });

  function onCursorActivity(cm) {
    if (cm.state.markedSelection)
      cm.operation(function() { update(cm); });
  }

  function onChange(cm) {
    if (cm.state.markedSelection && cm.state.markedSelection.length)
      cm.operation(function() { clear(cm); });
  }

  var CHUNK_SIZE = 8;
  var Pos = CodeMirror.Pos;
  var cmp = CodeMirror.cmpPos;

  function coverRange(cm, from, to, addAt) {
    if (cmp(from, to) == 0) return;
    var array = cm.state.markedSelection;
    var cls = cm.state.markedSelectionStyle;
    for (var line = from.line;;) {
      var start = line == from.line ? from : Pos(line, 0);
      var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;
      var end = atEnd ? to : Pos(endLine, 0);
      var mark = cm.markText(start, end, {className: cls});
      if (addAt == null) array.push(mark);
      else array.splice(addAt++, 0, mark);
      if (atEnd) break;
      line = endLine;
    }
  }

  function clear(cm) {
    var array = cm.state.markedSelection;
    for (var i = 0; i < array.length; ++i) array[i].clear();
    array.length = 0;
  }

  function reset(cm) {
    clear(cm);
    var ranges = cm.listSelections();
    for (var i = 0; i < ranges.length; i++)
      coverRange(cm, ranges[i].from(), ranges[i].to());
  }

  function update(cm) {
    if (!cm.somethingSelected()) return clear(cm);
    if (cm.listSelections().length > 1) return reset(cm);

    var from = cm.getCursor("start"), to = cm.getCursor("end");

    var array = cm.state.markedSelection;
    if (!array.length) return coverRange(cm, from, to);

    var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();
    if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||
        cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)
      return reset(cm);

    while (cmp(from, coverStart.from) > 0) {
      array.shift().clear();
      coverStart = array[0].find();
    }
    if (cmp(from, coverStart.from) < 0) {
      if (coverStart.to.line - from.line < CHUNK_SIZE) {
        array.shift().clear();
        coverRange(cm, from, coverStart.to, 0);
      } else {
        coverRange(cm, from, coverStart.from, 0);
      }
    }

    while (cmp(to, coverEnd.to) < 0) {
      array.pop().clear();
      coverEnd = array[array.length - 1].find();
    }
    if (cmp(to, coverEnd.to) > 0) {
      if (to.line - coverEnd.from.line < CHUNK_SIZE) {
        array.pop().clear();
        coverRange(cm, coverEnd.from, to);
      } else {
        coverRange(cm, coverEnd.to, to);
      }
    }
  }
});
editors/codemirror/addon/selection/active-line.js000064400000004713152177723720016214 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";
  var WRAP_CLASS = "CodeMirror-activeline";
  var BACK_CLASS = "CodeMirror-activeline-background";
  var GUTT_CLASS = "CodeMirror-activeline-gutter";

  CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
    var prev = old == CodeMirror.Init ? false : old;
    if (val == prev) return
    if (prev) {
      cm.off("beforeSelectionChange", selectionChange);
      clearActiveLines(cm);
      delete cm.state.activeLines;
    }
    if (val) {
      cm.state.activeLines = [];
      updateActiveLines(cm, cm.listSelections());
      cm.on("beforeSelectionChange", selectionChange);
    }
  });

  function clearActiveLines(cm) {
    for (var i = 0; i < cm.state.activeLines.length; i++) {
      cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS);
      cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS);
      cm.removeLineClass(cm.state.activeLines[i], "gutter", GUTT_CLASS);
    }
  }

  function sameArray(a, b) {
    if (a.length != b.length) return false;
    for (var i = 0; i < a.length; i++)
      if (a[i] != b[i]) return false;
    return true;
  }

  function updateActiveLines(cm, ranges) {
    var active = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i];
      var option = cm.getOption("styleActiveLine");
      if (typeof option == "object" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())
        continue
      var line = cm.getLineHandleVisualStart(range.head.line);
      if (active[active.length - 1] != line) active.push(line);
    }
    if (sameArray(cm.state.activeLines, active)) return;
    cm.operation(function() {
      clearActiveLines(cm);
      for (var i = 0; i < active.length; i++) {
        cm.addLineClass(active[i], "wrap", WRAP_CLASS);
        cm.addLineClass(active[i], "background", BACK_CLASS);
        cm.addLineClass(active[i], "gutter", GUTT_CLASS);
      }
      cm.state.activeLines = active;
    });
  }

  function selectionChange(cm, sel) {
    updateActiveLines(cm, sel.ranges);
  }
});
editors/codemirror/addon/selection/mark-selection.min.js000064400000003373152177723720017514 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){a.state.markedSelection&&a.operation((function(){g(a)}))}function c(a){a.state.markedSelection&&a.state.markedSelection.length&&a.operation((function(){e(a)}))}function d(a,b,c,d){if(0!=j(b,c))for(var e=a.state.markedSelection,f=a.state.markedSelectionStyle,g=b.line;;){var k=g==b.line?b:i(g,0),l=g+h,m=l>=c.line,n=m?c:i(l,0),o=a.markText(k,n,{className:f});if(null==d?e.push(o):e.splice(d++,0,o),m)break;g=l}}function e(a){for(var b=a.state.markedSelection,c=0;c<b.length;++c)b[c].clear();b.length=0}function f(a){e(a);for(var b=a.listSelections(),c=0;c<b.length;c++)d(a,b[c].from(),b[c].to())}function g(a){if(!a.somethingSelected())return e(a);if(a.listSelections().length>1)return f(a);var b=a.getCursor("start"),c=a.getCursor("end"),g=a.state.markedSelection;if(!g.length)return d(a,b,c);var i=g[0].find(),k=g[g.length-1].find();if(!i||!k||c.line-b.line<=h||j(b,k.to)>=0||j(c,i.from)<=0)return f(a);for(;j(b,i.from)>0;)g.shift().clear(),i=g[0].find();for(j(b,i.from)<0&&(i.to.line-b.line<h?(g.shift().clear(),d(a,b,i.to,0)):d(a,b,i.from,0));j(c,k.to)<0;)g.pop().clear(),k=g[g.length-1].find();j(c,k.to)>0&&(c.line-k.from.line<h?(g.pop().clear(),d(a,k.from,c)):d(a,k.to,c))}a.defineOption("styleSelectedText",!1,(function(d,g,h){var i=h&&h!=a.Init;g&&!i?(d.state.markedSelection=[],d.state.markedSelectionStyle="string"==typeof g?g:"CodeMirror-selectedtext",f(d),d.on("cursorActivity",b),d.on("change",c)):!g&&i&&(d.off("cursorActivity",b),d.off("change",c),e(d),d.state.markedSelection=d.state.markedSelectionStyle=null)}));var h=8,i=a.Pos,j=a.cmpPos}));editors/codemirror/addon/selection/active-line.min.js000064400000002513152177723720016772 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a){for(var b=0;b<a.state.activeLines.length;b++)a.removeLineClass(a.state.activeLines[b],"wrap",f),a.removeLineClass(a.state.activeLines[b],"background",g),a.removeLineClass(a.state.activeLines[b],"gutter",h)}function c(a,b){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0}function d(a,d){for(var e=[],i=0;i<d.length;i++){var j=d[i],k=a.getOption("styleActiveLine");if("object"==typeof k&&k.nonEmpty?j.anchor.line==j.head.line:j.empty()){var l=a.getLineHandleVisualStart(j.head.line);e[e.length-1]!=l&&e.push(l)}}c(a.state.activeLines,e)||a.operation((function(){b(a);for(var c=0;c<e.length;c++)a.addLineClass(e[c],"wrap",f),a.addLineClass(e[c],"background",g),a.addLineClass(e[c],"gutter",h);a.state.activeLines=e}))}function e(a,b){d(a,b.ranges)}var f="CodeMirror-activeline",g="CodeMirror-activeline-background",h="CodeMirror-activeline-gutter";a.defineOption("styleActiveLine",!1,(function(c,f,g){var h=g!=a.Init&&g;f!=h&&(h&&(c.off("beforeSelectionChange",e),b(c),delete c.state.activeLines),f&&(c.state.activeLines=[],d(c,c.listSelections()),c.on("beforeSelectionChange",e)))}))}));editors/codemirror/keymap/sublime.js000064400000061311152177723720013665 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// A rough approximation of Sublime Text's keybindings
// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../lib/codemirror"), require("../addon/search/searchcursor"), require("../addon/edit/matchbrackets"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../lib/codemirror", "../addon/search/searchcursor", "../addon/edit/matchbrackets"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var cmds = CodeMirror.commands;
  var Pos = CodeMirror.Pos;

  // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.
  function findPosSubword(doc, start, dir) {
    if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));
    var line = doc.getLine(start.line);
    if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));
    var state = "start", type;
    for (var pos = start.ch, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {
      var next = line.charAt(dir < 0 ? pos - 1 : pos);
      var cat = next != "_" && CodeMirror.isWordChar(next) ? "w" : "o";
      if (cat == "w" && next.toUpperCase() == next) cat = "W";
      if (state == "start") {
        if (cat != "o") { state = "in"; type = cat; }
      } else if (state == "in") {
        if (type != cat) {
          if (type == "w" && cat == "W" && dir < 0) pos--;
          if (type == "W" && cat == "w" && dir > 0) { type = "w"; continue; }
          break;
        }
      }
    }
    return Pos(start.line, pos);
  }

  function moveSubword(cm, dir) {
    cm.extendSelectionsBy(function(range) {
      if (cm.display.shift || cm.doc.extend || range.empty())
        return findPosSubword(cm.doc, range.head, dir);
      else
        return dir < 0 ? range.from() : range.to();
    });
  }

  cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };
  cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };

  cmds.scrollLineUp = function(cm) {
    var info = cm.getScrollInfo();
    if (!cm.somethingSelected()) {
      var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
      if (cm.getCursor().line >= visibleBottomLine)
        cm.execCommand("goLineUp");
    }
    cm.scrollTo(null, info.top - cm.defaultTextHeight());
  };
  cmds.scrollLineDown = function(cm) {
    var info = cm.getScrollInfo();
    if (!cm.somethingSelected()) {
      var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
      if (cm.getCursor().line <= visibleTopLine)
        cm.execCommand("goLineDown");
    }
    cm.scrollTo(null, info.top + cm.defaultTextHeight());
  };

  cmds.splitSelectionByLine = function(cm) {
    var ranges = cm.listSelections(), lineRanges = [];
    for (var i = 0; i < ranges.length; i++) {
      var from = ranges[i].from(), to = ranges[i].to();
      for (var line = from.line; line <= to.line; ++line)
        if (!(to.line > from.line && line == to.line && to.ch == 0))
          lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),
                           head: line == to.line ? to : Pos(line)});
    }
    cm.setSelections(lineRanges, 0);
  };

  cmds.singleSelectionTop = function(cm) {
    var range = cm.listSelections()[0];
    cm.setSelection(range.anchor, range.head, {scroll: false});
  };

  cmds.selectLine = function(cm) {
    var ranges = cm.listSelections(), extended = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i];
      extended.push({anchor: Pos(range.from().line, 0),
                     head: Pos(range.to().line + 1, 0)});
    }
    cm.setSelections(extended);
  };

  function insertLine(cm, above) {
    if (cm.isReadOnly()) return CodeMirror.Pass
    cm.operation(function() {
      var len = cm.listSelections().length, newSelection = [], last = -1;
      for (var i = 0; i < len; i++) {
        var head = cm.listSelections()[i].head;
        if (head.line <= last) continue;
        var at = Pos(head.line + (above ? 0 : 1), 0);
        cm.replaceRange("\n", at, null, "+insertLine");
        cm.indentLine(at.line, null, true);
        newSelection.push({head: at, anchor: at});
        last = head.line + 1;
      }
      cm.setSelections(newSelection);
    });
    cm.execCommand("indentAuto");
  }

  cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };

  cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };

  function wordAt(cm, pos) {
    var start = pos.ch, end = start, line = cm.getLine(pos.line);
    while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;
    while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;
    return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};
  }

  cmds.selectNextOccurrence = function(cm) {
    var from = cm.getCursor("from"), to = cm.getCursor("to");
    var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;
    if (CodeMirror.cmpPos(from, to) == 0) {
      var word = wordAt(cm, from);
      if (!word.word) return;
      cm.setSelection(word.from, word.to);
      fullWord = true;
    } else {
      var text = cm.getRange(from, to);
      var query = fullWord ? new RegExp("\\b" + text + "\\b") : text;
      var cur = cm.getSearchCursor(query, to);
      var found = cur.findNext();
      if (!found) {
        cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));
        found = cur.findNext();
      }
      if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to()))
        return CodeMirror.Pass
      cm.addSelection(cur.from(), cur.to());
    }
    if (fullWord)
      cm.state.sublimeFindFullWord = cm.doc.sel;
  };

  function addCursorToSelection(cm, dir) {
    var ranges = cm.listSelections(), newRanges = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i];
      var newAnchor = cm.findPosV(
          range.anchor, dir, "line", range.anchor.goalColumn);
      var newHead = cm.findPosV(
          range.head, dir, "line", range.head.goalColumn);
      newAnchor.goalColumn = range.anchor.goalColumn != null ?
          range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left;
      newHead.goalColumn = range.head.goalColumn != null ?
          range.head.goalColumn : cm.cursorCoords(range.head, "div").left;
      var newRange = {anchor: newAnchor, head: newHead};
      newRanges.push(range);
      newRanges.push(newRange);
    }
    cm.setSelections(newRanges);
  }
  cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };
  cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };

  function isSelectedRange(ranges, from, to) {
    for (var i = 0; i < ranges.length; i++)
      if (ranges[i].from() == from && ranges[i].to() == to) return true
    return false
  }

  var mirror = "(){}[]";
  function selectBetweenBrackets(cm) {
    var ranges = cm.listSelections(), newRanges = []
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);
      if (!opening) return false;
      for (;;) {
        var closing = cm.scanForBracket(pos, 1);
        if (!closing) return false;
        if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {
          var startPos = Pos(opening.pos.line, opening.pos.ch + 1);
          if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&
              CodeMirror.cmpPos(closing.pos, range.to()) == 0) {
            opening = cm.scanForBracket(opening.pos, -1);
            if (!opening) return false;
          } else {
            newRanges.push({anchor: startPos, head: closing.pos});
            break;
          }
        }
        pos = Pos(closing.pos.line, closing.pos.ch + 1);
      }
    }
    cm.setSelections(newRanges);
    return true;
  }

  cmds.selectScope = function(cm) {
    selectBetweenBrackets(cm) || cm.execCommand("selectAll");
  };
  cmds.selectBetweenBrackets = function(cm) {
    if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;
  };

  cmds.goToBracket = function(cm) {
    cm.extendSelectionsBy(function(range) {
      var next = cm.scanForBracket(range.head, 1);
      if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;
      var prev = cm.scanForBracket(range.head, -1);
      return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;
    });
  };

  cmds.swapLineUp = function(cm) {
    if (cm.isReadOnly()) return CodeMirror.Pass
    var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i], from = range.from().line - 1, to = range.to().line;
      newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),
                    head: Pos(range.head.line - 1, range.head.ch)});
      if (range.to().ch == 0 && !range.empty()) --to;
      if (from > at) linesToMove.push(from, to);
      else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;
      at = to;
    }
    cm.operation(function() {
      for (var i = 0; i < linesToMove.length; i += 2) {
        var from = linesToMove[i], to = linesToMove[i + 1];
        var line = cm.getLine(from);
        cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine");
        if (to > cm.lastLine())
          cm.replaceRange("\n" + line, Pos(cm.lastLine()), null, "+swapLine");
        else
          cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine");
      }
      cm.setSelections(newSels);
      cm.scrollIntoView();
    });
  };

  cmds.swapLineDown = function(cm) {
    if (cm.isReadOnly()) return CodeMirror.Pass
    var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;
    for (var i = ranges.length - 1; i >= 0; i--) {
      var range = ranges[i], from = range.to().line + 1, to = range.from().line;
      if (range.to().ch == 0 && !range.empty()) from--;
      if (from < at) linesToMove.push(from, to);
      else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;
      at = to;
    }
    cm.operation(function() {
      for (var i = linesToMove.length - 2; i >= 0; i -= 2) {
        var from = linesToMove[i], to = linesToMove[i + 1];
        var line = cm.getLine(from);
        if (from == cm.lastLine())
          cm.replaceRange("", Pos(from - 1), Pos(from), "+swapLine");
        else
          cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine");
        cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine");
      }
      cm.scrollIntoView();
    });
  };

  cmds.toggleCommentIndented = function(cm) {
    cm.toggleComment({ indent: true });
  }

  cmds.joinLines = function(cm) {
    var ranges = cm.listSelections(), joined = [];
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i], from = range.from();
      var start = from.line, end = range.to().line;
      while (i < ranges.length - 1 && ranges[i + 1].from().line == end)
        end = ranges[++i].to().line;
      joined.push({start: start, end: end, anchor: !range.empty() && from});
    }
    cm.operation(function() {
      var offset = 0, ranges = [];
      for (var i = 0; i < joined.length; i++) {
        var obj = joined[i];
        var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;
        for (var line = obj.start; line <= obj.end; line++) {
          var actual = line - offset;
          if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);
          if (actual < cm.lastLine()) {
            cm.replaceRange(" ", Pos(actual), Pos(actual + 1, /^\s*/.exec(cm.getLine(actual + 1))[0].length));
            ++offset;
          }
        }
        ranges.push({anchor: anchor || head, head: head});
      }
      cm.setSelections(ranges, 0);
    });
  };

  cmds.duplicateLine = function(cm) {
    cm.operation(function() {
      var rangeCount = cm.listSelections().length;
      for (var i = 0; i < rangeCount; i++) {
        var range = cm.listSelections()[i];
        if (range.empty())
          cm.replaceRange(cm.getLine(range.head.line) + "\n", Pos(range.head.line, 0));
        else
          cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());
      }
      cm.scrollIntoView();
    });
  };


  function sortLines(cm, caseSensitive) {
    if (cm.isReadOnly()) return CodeMirror.Pass
    var ranges = cm.listSelections(), toSort = [], selected;
    for (var i = 0; i < ranges.length; i++) {
      var range = ranges[i];
      if (range.empty()) continue;
      var from = range.from().line, to = range.to().line;
      while (i < ranges.length - 1 && ranges[i + 1].from().line == to)
        to = ranges[++i].to().line;
      if (!ranges[i].to().ch) to--;
      toSort.push(from, to);
    }
    if (toSort.length) selected = true;
    else toSort.push(cm.firstLine(), cm.lastLine());

    cm.operation(function() {
      var ranges = [];
      for (var i = 0; i < toSort.length; i += 2) {
        var from = toSort[i], to = toSort[i + 1];
        var start = Pos(from, 0), end = Pos(to);
        var lines = cm.getRange(start, end, false);
        if (caseSensitive)
          lines.sort();
        else
          lines.sort(function(a, b) {
            var au = a.toUpperCase(), bu = b.toUpperCase();
            if (au != bu) { a = au; b = bu; }
            return a < b ? -1 : a == b ? 0 : 1;
          });
        cm.replaceRange(lines, start, end);
        if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});
      }
      if (selected) cm.setSelections(ranges, 0);
    });
  }

  cmds.sortLines = function(cm) { sortLines(cm, true); };
  cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); };

  cmds.nextBookmark = function(cm) {
    var marks = cm.state.sublimeBookmarks;
    if (marks) while (marks.length) {
      var current = marks.shift();
      var found = current.find();
      if (found) {
        marks.push(current);
        return cm.setSelection(found.from, found.to);
      }
    }
  };

  cmds.prevBookmark = function(cm) {
    var marks = cm.state.sublimeBookmarks;
    if (marks) while (marks.length) {
      marks.unshift(marks.pop());
      var found = marks[marks.length - 1].find();
      if (!found)
        marks.pop();
      else
        return cm.setSelection(found.from, found.to);
    }
  };

  cmds.toggleBookmark = function(cm) {
    var ranges = cm.listSelections();
    var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);
    for (var i = 0; i < ranges.length; i++) {
      var from = ranges[i].from(), to = ranges[i].to();
      var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);
      for (var j = 0; j < found.length; j++) {
        if (found[j].sublimeBookmark) {
          found[j].clear();
          for (var k = 0; k < marks.length; k++)
            if (marks[k] == found[j])
              marks.splice(k--, 1);
          break;
        }
      }
      if (j == found.length)
        marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));
    }
  };

  cmds.clearBookmarks = function(cm) {
    var marks = cm.state.sublimeBookmarks;
    if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
    marks.length = 0;
  };

  cmds.selectBookmarks = function(cm) {
    var marks = cm.state.sublimeBookmarks, ranges = [];
    if (marks) for (var i = 0; i < marks.length; i++) {
      var found = marks[i].find();
      if (!found)
        marks.splice(i--, 0);
      else
        ranges.push({anchor: found.from, head: found.to});
    }
    if (ranges.length)
      cm.setSelections(ranges, 0);
  };

  function modifyWordOrSelection(cm, mod) {
    cm.operation(function() {
      var ranges = cm.listSelections(), indices = [], replacements = [];
      for (var i = 0; i < ranges.length; i++) {
        var range = ranges[i];
        if (range.empty()) { indices.push(i); replacements.push(""); }
        else replacements.push(mod(cm.getRange(range.from(), range.to())));
      }
      cm.replaceSelections(replacements, "around", "case");
      for (var i = indices.length - 1, at; i >= 0; i--) {
        var range = ranges[indices[i]];
        if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;
        var word = wordAt(cm, range.head);
        at = word.from;
        cm.replaceRange(mod(word.word), word.from, word.to);
      }
    });
  }

  cmds.smartBackspace = function(cm) {
    if (cm.somethingSelected()) return CodeMirror.Pass;

    cm.operation(function() {
      var cursors = cm.listSelections();
      var indentUnit = cm.getOption("indentUnit");

      for (var i = cursors.length - 1; i >= 0; i--) {
        var cursor = cursors[i].head;
        var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);
        var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption("tabSize"));

        // Delete by one character by default
        var deletePos = cm.findPosH(cursor, -1, "char", false);

        if (toStartOfLine && !/\S/.test(toStartOfLine) && column % indentUnit == 0) {
          var prevIndent = new Pos(cursor.line,
            CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));

          // Smart delete only if we found a valid prevIndent location
          if (prevIndent.ch != cursor.ch) deletePos = prevIndent;
        }

        cm.replaceRange("", deletePos, cursor, "+delete");
      }
    });
  };

  cmds.delLineRight = function(cm) {
    cm.operation(function() {
      var ranges = cm.listSelections();
      for (var i = ranges.length - 1; i >= 0; i--)
        cm.replaceRange("", ranges[i].anchor, Pos(ranges[i].to().line), "+delete");
      cm.scrollIntoView();
    });
  };

  cmds.upcaseAtCursor = function(cm) {
    modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });
  };
  cmds.downcaseAtCursor = function(cm) {
    modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });
  };

  cmds.setSublimeMark = function(cm) {
    if (cm.state.sublimeMark) cm.state.sublimeMark.clear();
    cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
  };
  cmds.selectToSublimeMark = function(cm) {
    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
    if (found) cm.setSelection(cm.getCursor(), found);
  };
  cmds.deleteToSublimeMark = function(cm) {
    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
    if (found) {
      var from = cm.getCursor(), to = found;
      if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }
      cm.state.sublimeKilled = cm.getRange(from, to);
      cm.replaceRange("", from, to);
    }
  };
  cmds.swapWithSublimeMark = function(cm) {
    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
    if (found) {
      cm.state.sublimeMark.clear();
      cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
      cm.setCursor(found);
    }
  };
  cmds.sublimeYank = function(cm) {
    if (cm.state.sublimeKilled != null)
      cm.replaceSelection(cm.state.sublimeKilled, null, "paste");
  };

  cmds.showInCenter = function(cm) {
    var pos = cm.cursorCoords(null, "local");
    cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);
  };

  function getTarget(cm) {
    var from = cm.getCursor("from"), to = cm.getCursor("to");
    if (CodeMirror.cmpPos(from, to) == 0) {
      var word = wordAt(cm, from);
      if (!word.word) return;
      from = word.from;
      to = word.to;
    }
    return {from: from, to: to, query: cm.getRange(from, to), word: word};
  }

  function findAndGoTo(cm, forward) {
    var target = getTarget(cm);
    if (!target) return;
    var query = target.query;
    var cur = cm.getSearchCursor(query, forward ? target.to : target.from);

    if (forward ? cur.findNext() : cur.findPrevious()) {
      cm.setSelection(cur.from(), cur.to());
    } else {
      cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)
                                              : cm.clipPos(Pos(cm.lastLine())));
      if (forward ? cur.findNext() : cur.findPrevious())
        cm.setSelection(cur.from(), cur.to());
      else if (target.word)
        cm.setSelection(target.from, target.to);
    }
  };
  cmds.findUnder = function(cm) { findAndGoTo(cm, true); };
  cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };
  cmds.findAllUnder = function(cm) {
    var target = getTarget(cm);
    if (!target) return;
    var cur = cm.getSearchCursor(target.query);
    var matches = [];
    var primaryIndex = -1;
    while (cur.findNext()) {
      matches.push({anchor: cur.from(), head: cur.to()});
      if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)
        primaryIndex++;
    }
    cm.setSelections(matches, primaryIndex);
  };


  var keyMap = CodeMirror.keyMap;
  keyMap.macSublime = {
    "Cmd-Left": "goLineStartSmart",
    "Shift-Tab": "indentLess",
    "Shift-Ctrl-K": "deleteLine",
    "Alt-Q": "wrapLines",
    "Ctrl-Left": "goSubwordLeft",
    "Ctrl-Right": "goSubwordRight",
    "Ctrl-Alt-Up": "scrollLineUp",
    "Ctrl-Alt-Down": "scrollLineDown",
    "Cmd-L": "selectLine",
    "Shift-Cmd-L": "splitSelectionByLine",
    "Esc": "singleSelectionTop",
    "Cmd-Enter": "insertLineAfter",
    "Shift-Cmd-Enter": "insertLineBefore",
    "Cmd-D": "selectNextOccurrence",
    "Shift-Cmd-Space": "selectScope",
    "Shift-Cmd-M": "selectBetweenBrackets",
    "Cmd-M": "goToBracket",
    "Cmd-Ctrl-Up": "swapLineUp",
    "Cmd-Ctrl-Down": "swapLineDown",
    "Cmd-/": "toggleCommentIndented",
    "Cmd-J": "joinLines",
    "Shift-Cmd-D": "duplicateLine",
    "F9": "sortLines",
    "Cmd-F9": "sortLinesInsensitive",
    "F2": "nextBookmark",
    "Shift-F2": "prevBookmark",
    "Cmd-F2": "toggleBookmark",
    "Shift-Cmd-F2": "clearBookmarks",
    "Alt-F2": "selectBookmarks",
    "Backspace": "smartBackspace",
    "Cmd-K Cmd-K": "delLineRight",
    "Cmd-K Cmd-U": "upcaseAtCursor",
    "Cmd-K Cmd-L": "downcaseAtCursor",
    "Cmd-K Cmd-Space": "setSublimeMark",
    "Cmd-K Cmd-A": "selectToSublimeMark",
    "Cmd-K Cmd-W": "deleteToSublimeMark",
    "Cmd-K Cmd-X": "swapWithSublimeMark",
    "Cmd-K Cmd-Y": "sublimeYank",
    "Cmd-K Cmd-C": "showInCenter",
    "Cmd-K Cmd-G": "clearBookmarks",
    "Cmd-K Cmd-Backspace": "delLineLeft",
    "Cmd-K Cmd-0": "unfoldAll",
    "Cmd-K Cmd-J": "unfoldAll",
    "Ctrl-Shift-Up": "addCursorToPrevLine",
    "Ctrl-Shift-Down": "addCursorToNextLine",
    "Cmd-F3": "findUnder",
    "Shift-Cmd-F3": "findUnderPrevious",
    "Alt-F3": "findAllUnder",
    "Shift-Cmd-[": "fold",
    "Shift-Cmd-]": "unfold",
    "Cmd-I": "findIncremental",
    "Shift-Cmd-I": "findIncrementalReverse",
    "Cmd-H": "replace",
    "F3": "findNext",
    "Shift-F3": "findPrev",
    "fallthrough": "macDefault"
  };
  CodeMirror.normalizeKeyMap(keyMap.macSublime);

  keyMap.pcSublime = {
    "Shift-Tab": "indentLess",
    "Shift-Ctrl-K": "deleteLine",
    "Alt-Q": "wrapLines",
    "Ctrl-T": "transposeChars",
    "Alt-Left": "goSubwordLeft",
    "Alt-Right": "goSubwordRight",
    "Ctrl-Up": "scrollLineUp",
    "Ctrl-Down": "scrollLineDown",
    "Ctrl-L": "selectLine",
    "Shift-Ctrl-L": "splitSelectionByLine",
    "Esc": "singleSelectionTop",
    "Ctrl-Enter": "insertLineAfter",
    "Shift-Ctrl-Enter": "insertLineBefore",
    "Ctrl-D": "selectNextOccurrence",
    "Shift-Ctrl-Space": "selectScope",
    "Shift-Ctrl-M": "selectBetweenBrackets",
    "Ctrl-M": "goToBracket",
    "Shift-Ctrl-Up": "swapLineUp",
    "Shift-Ctrl-Down": "swapLineDown",
    "Ctrl-/": "toggleCommentIndented",
    "Ctrl-J": "joinLines",
    "Shift-Ctrl-D": "duplicateLine",
    "F9": "sortLines",
    "Ctrl-F9": "sortLinesInsensitive",
    "F2": "nextBookmark",
    "Shift-F2": "prevBookmark",
    "Ctrl-F2": "toggleBookmark",
    "Shift-Ctrl-F2": "clearBookmarks",
    "Alt-F2": "selectBookmarks",
    "Backspace": "smartBackspace",
    "Ctrl-K Ctrl-K": "delLineRight",
    "Ctrl-K Ctrl-U": "upcaseAtCursor",
    "Ctrl-K Ctrl-L": "downcaseAtCursor",
    "Ctrl-K Ctrl-Space": "setSublimeMark",
    "Ctrl-K Ctrl-A": "selectToSublimeMark",
    "Ctrl-K Ctrl-W": "deleteToSublimeMark",
    "Ctrl-K Ctrl-X": "swapWithSublimeMark",
    "Ctrl-K Ctrl-Y": "sublimeYank",
    "Ctrl-K Ctrl-C": "showInCenter",
    "Ctrl-K Ctrl-G": "clearBookmarks",
    "Ctrl-K Ctrl-Backspace": "delLineLeft",
    "Ctrl-K Ctrl-0": "unfoldAll",
    "Ctrl-K Ctrl-J": "unfoldAll",
    "Ctrl-Alt-Up": "addCursorToPrevLine",
    "Ctrl-Alt-Down": "addCursorToNextLine",
    "Ctrl-F3": "findUnder",
    "Shift-Ctrl-F3": "findUnderPrevious",
    "Alt-F3": "findAllUnder",
    "Shift-Ctrl-[": "fold",
    "Shift-Ctrl-]": "unfold",
    "Ctrl-I": "findIncremental",
    "Shift-Ctrl-I": "findIncrementalReverse",
    "Ctrl-H": "replace",
    "F3": "findNext",
    "Shift-F3": "findPrev",
    "fallthrough": "pcDefault"
  };
  CodeMirror.normalizeKeyMap(keyMap.pcSublime);

  var mac = keyMap.default == keyMap.macDefault;
  keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;
});
editors/codemirror/keymap/vim.min.js000064400000227737152177723720013622 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],a):a(CodeMirror)})((function(a){"use strict";var b=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"(",type:"motion",motion:"moveBySentence",motionArgs:{forward:!1}},{keys:")",type:"motion",motion:"moveBySentence",motionArgs:{forward:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],c=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],d=a.Pos,e=function(){function e(b){b.setOption("disableInput",!0),b.setOption("showCursorWhenSelecting",!1),a.signal(b,"vim-mode-change",{mode:"normal"}),b.on("cursorActivity",jb),C(b),a.on(b.getInputField(),"paste",o(b))}function f(b){b.setOption("disableInput",!1),b.off("cursorActivity",jb),a.off(b.getInputField(),"paste",o(b)),b.state.vim=null}function g(b,c){this==a.keyMap.vim&&(a.rmClass(b.getWrapperElement(),"cm-fat-cursor"),"contenteditable"==b.getOption("inputStyle")&&null!=document.body.style.caretColor&&(l(b),b.getInputField().style.caretColor="")),c&&c.attach==h||f(b)}function h(b,c){this==a.keyMap.vim&&(a.addClass(b.getWrapperElement(),"cm-fat-cursor"),"contenteditable"==b.getOption("inputStyle")&&null!=document.body.style.caretColor&&(k(b),b.getInputField().style.caretColor="transparent")),c&&c.attach==h||e(b)}function i(a){for(var b=a.listSelections(),c=[],e=0;e<b.length;e++){var f=b[e];if(f.empty())if(f.anchor.ch<a.getLine(f.anchor.line).length)c.push(a.markText(f.anchor,d(f.anchor.line,f.anchor.ch+1),{className:"cm-fat-cursor-mark"}));else{var g=document.createElement("span");g.textContent=" ",g.className="cm-fat-cursor-mark",c.push(a.setBookmark(f.anchor,{widget:g}))}}return c}function j(a){var b=a.state.fatCursorMarks;if(b)for(var c=0;c<b.length;c++)b[c].clear();a.state.fatCursorMarks=i(a)}function k(a){a.state.fatCursorMarks=i(a),a.on("cursorActivity",j)}function l(a){var b=a.state.fatCursorMarks;if(b)for(var c=0;c<b.length;c++)b[c].clear();a.state.fatCursorMarks=null,a.off("cursorActivity",j)}function m(b,c){if(c){if(this[b])return this[b];var d=n(b);if(!d)return!1;var e=a.Vim.findKey(c,d);return"function"==typeof e&&a.signal(c,"vim-keypress",d),e}}function n(a){if("'"==a.charAt(0))return a.charAt(1);var b=a.split(/-(?!$)/),c=b[b.length-1];if(1==b.length&&1==b[0].length)return!1;if(2==b.length&&"Shift"==b[0]&&1==c.length)return!1;for(var d=!1,e=0;e<b.length;e++){var f=b[e];f in qb?b[e]=qb[f]:d=!0,f in rb&&(b[e]=rb[f])}return!!d&&(u(c)&&(b[b.length-1]=c.toLowerCase()),"<"+b.join("-")+">")}function o(a){var b=a.state.vim;return b.onPasteFn||(b.onPasteFn=function(){b.insertMode||(a.setCursor(Q(a.getCursor(),0,1)),Jb.enterInsertMode(a,{},b))}),b.onPasteFn}function p(a,b){for(var c=[],d=a;d<a+b;d++)c.push(String.fromCharCode(d));return c}function q(a,b){return b>=a.firstLine()&&b<=a.lastLine()}function r(a){return/^[a-z]$/.test(a)}function s(a){return"()[]{}".indexOf(a)!=-1}function t(a){return sb.test(a)}function u(a){return/^[A-Z]$/.test(a)}function v(a){return/^\s*$/.test(a)}function w(a){return".?!".indexOf(a)!=-1}function x(a,b){for(var c=0;c<b.length;c++)if(b[c]==a)return!0;return!1}function y(a,b,c,d,e){if(void 0===b&&!e)throw Error("defaultValue is required unless callback is provided");if(c||(c="string"),Ab[a]={type:c,defaultValue:b,callback:e},d)for(var f=0;f<d.length;f++)Ab[d[f]]=Ab[a];b&&z(a,b)}function z(a,b,c,d){var e=Ab[a];d=d||{};var f=d.scope;if(!e)return new Error("Unknown option: "+a);if("boolean"==e.type){if(b&&b!==!0)return new Error("Invalid argument: "+a+"="+b);b!==!1&&(b=!0)}e.callback?("local"!==f&&e.callback(b,void 0),"global"!==f&&c&&e.callback(b,c)):("local"!==f&&(e.value="boolean"==e.type?!!b:b),"global"!==f&&c&&(c.state.vim.options[a]={value:b}))}function A(a,b,c){var d=Ab[a];c=c||{};var e=c.scope;if(!d)return new Error("Unknown option: "+a);{if(!d.callback){var f="global"!==e&&b&&b.state.vim.options[a];return(f||"local"!==e&&d||{}).value}var f=b&&d.callback(void 0,b);if("global"!==e&&void 0!==f)return f;if("local"!==e)return d.callback()}}function B(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=Cb()}function C(a){return a.state.vim||(a.state.vim={inputState:new E,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),a.state.vim}function D(){Db={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:Bb(),macroModeState:new B,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new I({}),searchHistoryController:new J,exCommandHistoryController:new J};for(var a in Ab){var b=Ab[a];b.value=b.defaultValue}}function E(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function F(b,c){b.state.vim.inputState=new E,a.signal(b,"vim-command-done",c)}function G(a,b,c){this.clear(),this.keyBuffer=[a||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!b,this.blockwise=!!c}function H(a,b){var c=Db.registerController.registers;if(!a||1!=a.length)throw Error("Register name must be 1 character");if(c[a])throw Error("Register already defined "+a);c[a]=b,zb.push(a)}function I(a){this.registers=a,this.unnamedRegister=a['"']=new G,a["."]=new G,a[":"]=new G,a["/"]=new G}function J(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function K(a,b){Hb[a]=b}function L(a,b){for(var c=[],d=0;d<b;d++)c.push(a);return c}function M(a,b){Ib[a]=b}function N(a,b){Jb[a]=b}function O(a,b,c){var e=Math.min(Math.max(a.firstLine(),b.line),a.lastLine()),f=aa(a,e)-1;f=c?f+1:f;var g=Math.min(Math.max(0,b.ch),f);return d(e,g)}function P(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function Q(a,b,c){return"object"==typeof b&&(c=b.ch,b=b.line),d(a.line+b,a.ch+c)}function R(a,b){return{line:b.line-a.line,ch:b.line-a.line}}function S(a,b,c,d){for(var e,f=[],g=[],h=0;h<b.length;h++){var i=b[h];"insert"==c&&"insert"!=i.context||i.context&&i.context!=c||d.operator&&"action"==i.type||!(e=T(a,i.keys))||("partial"==e&&f.push(i),"full"==e&&g.push(i))}return{partial:f.length&&f,full:g.length&&g}}function T(a,b){if("<character>"==b.slice(-11)){var c=b.length-11,d=a.slice(0,c),e=b.slice(0,c);return d==e&&a.length>c?"full":0==e.indexOf(d)&&"partial"}return a==b?"full":0==b.indexOf(a)&&"partial"}function U(a){var b=/^.*(<[^>]+>)$/.exec(a),c=b?b[1]:a.slice(-1);if(c.length>1)switch(c){case"<CR>":c="\n";break;case"<Space>":c=" ";break;default:c=""}return c}function V(a,b,c){return function(){for(var d=0;d<c;d++)b(a)}}function W(a){return d(a.line,a.ch)}function X(a,b){return a.ch==b.ch&&a.line==b.line}function Y(a,b){return a.line<b.line||a.line==b.line&&a.ch<b.ch}function Z(a,b){return arguments.length>2&&(b=Z.apply(void 0,Array.prototype.slice.call(arguments,1))),Y(a,b)?a:b}function $(a,b){return arguments.length>2&&(b=$.apply(void 0,Array.prototype.slice.call(arguments,1))),Y(a,b)?b:a}function _(a,b,c){var d=Y(a,b),e=Y(b,c);return d&&e}function aa(a,b){return a.getLine(b).length}function ba(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ca(a){return a.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function da(a,b,c){var e=aa(a,b),f=new Array(c-e+1).join(" ");a.setCursor(d(b,e)),a.replaceRange(f,a.getCursor())}function ea(a,b){var c=[],e=a.listSelections(),f=W(a.clipPos(b)),g=!X(b,f),h=a.getCursor("head"),i=ga(e,h),j=X(e[i].head,e[i].anchor),k=e.length-1,l=k-i>i?k:0,m=e[l].anchor,n=Math.min(m.line,f.line),o=Math.max(m.line,f.line),p=m.ch,q=f.ch,r=e[l].head.ch-p,s=q-p;r>0&&s<=0?(p++,g||q--):r<0&&s>=0?(p--,j||q++):r<0&&s==-1&&(p--,q++);for(var t=n;t<=o;t++){var u={anchor:new d(t,p),head:new d(t,q)};c.push(u)}return a.setSelections(c),b.ch=q,m.ch=p,m}function fa(a,b,c){for(var d=[],e=0;e<c;e++){var f=Q(b,e,0);d.push({anchor:f,head:f})}a.setSelections(d,0)}function ga(a,b,c){for(var d=0;d<a.length;d++){var e="head"!=c&&X(a[d].anchor,b),f="anchor"!=c&&X(a[d].head,b);if(e||f)return d}return-1}function ha(a,b){var c=b.lastSelection,e=function(){var b=a.listSelections(),c=b[0],d=b[b.length-1],e=Y(c.anchor,c.head)?c.anchor:c.head,f=Y(d.anchor,d.head)?d.head:d.anchor;return[e,f]},f=function(){var b=a.getCursor(),e=a.getCursor(),f=c.visualBlock;if(f){var g=f.width,h=f.height;e=d(b.line+h,b.ch+g);for(var i=[],j=b.line;j<e.line;j++){var k=d(j,b.ch),l=d(j,e.ch),m={anchor:k,head:l};i.push(m)}a.setSelections(i)}else{var n=c.anchorMark.find(),o=c.headMark.find(),p=o.line-n.line,q=o.ch-n.ch;e={line:e.line+p,ch:p?e.ch:q+e.ch},c.visualLine&&(b=d(b.line,0),e=d(e.line,aa(a,e.line))),a.setSelection(b,e)}return[b,e]};return b.visualMode?e():f()}function ia(a,b){var c=b.sel.anchor,d=b.sel.head;b.lastPastedText&&(d=a.posFromIndex(a.indexFromPos(c)+b.lastPastedText.length),b.lastPastedText=null),b.lastSelection={anchorMark:a.setBookmark(c),headMark:a.setBookmark(d),anchor:W(c),head:W(d),visualMode:b.visualMode,visualLine:b.visualLine,visualBlock:b.visualBlock}}function ja(a,b,c){var e,f=a.state.vim.sel,g=f.head,h=f.anchor;return Y(c,b)&&(e=c,c=b,b=e),Y(g,h)?(g=Z(b,g),h=$(h,c)):(h=Z(b,h),g=$(g,c),g=Q(g,0,-1),g.ch==-1&&g.line!=a.firstLine()&&(g=d(g.line-1,aa(a,g.line-1)))),[h,g]}function ka(a,b,c){var d=a.state.vim;b=b||d.sel;var c=c||d.visualLine?"line":d.visualBlock?"block":"char",e=la(a,b,c);a.setSelections(e.ranges,e.primary),kb(a)}function la(a,b,c,e){var f=W(b.head),g=W(b.anchor);if("char"==c){var h=e||Y(b.head,b.anchor)?0:1,i=Y(b.head,b.anchor)?1:0;return f=Q(b.head,0,h),g=Q(b.anchor,0,i),{ranges:[{anchor:g,head:f}],primary:0}}if("line"==c){if(Y(b.head,b.anchor))f.ch=0,g.ch=aa(a,g.line);else{g.ch=0;var j=a.lastLine();f.line>j&&(f.line=j),f.ch=aa(a,f.line)}return{ranges:[{anchor:g,head:f}],primary:0}}if("block"==c){for(var k=Math.min(g.line,f.line),l=Math.min(g.ch,f.ch),m=Math.max(g.line,f.line),n=Math.max(g.ch,f.ch)+1,o=m-k+1,p=f.line==k?0:o-1,q=[],r=0;r<o;r++)q.push({anchor:d(k+r,l),head:d(k+r,n)});return{ranges:q,primary:p}}}function ma(a){var b=a.getCursor("head");return 1==a.getSelection().length&&(b=Z(b,a.getCursor("anchor"))),b}function na(b,c){var d=b.state.vim;c!==!1&&b.setCursor(O(b,d.sel.head)),ia(b,d),d.visualMode=!1,d.visualLine=!1,d.visualBlock=!1,a.signal(b,"vim-mode-change",{mode:"normal"}),d.fakeCursor&&d.fakeCursor.clear()}function oa(a,b,c){var d=a.getRange(b,c);if(/\n\s*$/.test(d)){var e=d.split("\n");e.pop();for(var f,f=e.pop();e.length>0&&f&&v(f);f=e.pop())c.line--,c.ch=0;f?(c.line--,c.ch=aa(a,c.line)):c.ch=0}}function pa(a,b,c){b.ch=0,c.ch=0,c.line++}function qa(a){if(!a)return 0;var b=a.search(/\S/);return b==-1?a.length:b}function ra(a,b,c,e,f){for(var g=ma(a),h=a.getLine(g.line),i=g.ch,j=f?tb[0]:ub[0];!j(h.charAt(i));)if(i++,i>=h.length)return null;e?j=ub[0]:(j=tb[0],j(h.charAt(i))||(j=tb[1]));for(var k=i,l=i;j(h.charAt(k))&&k<h.length;)k++;for(;j(h.charAt(l))&&l>=0;)l--;if(l++,b){for(var m=k;/\s/.test(h.charAt(k))&&k<h.length;)k++;if(m==k){for(var n=l;/\s/.test(h.charAt(l-1))&&l>0;)l--;l||(l=n)}}return{start:d(g.line,l),end:d(g.line,k)}}function sa(a,b,c){X(b,c)||Db.jumpList.add(a,b,c)}function ta(a,b){Db.lastCharacterSearch.increment=a,Db.lastCharacterSearch.forward=b.forward,Db.lastCharacterSearch.selectedCharacter=b.selectedCharacter}function ua(a,b,c,e){var f=W(a.getCursor()),g=c?1:-1,h=c?a.lineCount():-1,i=f.ch,j=f.line,k=a.getLine(j),l={lineText:k,nextCh:k.charAt(i),lastCh:null,index:i,symb:e,reverseSymb:(c?{")":"(","}":"{"}:{"(":")","{":"}"})[e],forward:c,depth:0,curMoveThrough:!1},m=Kb[e];if(!m)return f;var n=Lb[m].init,o=Lb[m].isComplete;for(n&&n(l);j!==h&&b;){if(l.index+=g,l.nextCh=l.lineText.charAt(l.index),!l.nextCh){if(j+=g,l.lineText=a.getLine(j)||"",g>0)l.index=0;else{var p=l.lineText.length;l.index=p>0?p-1:0}l.nextCh=l.lineText.charAt(l.index)}o(l)&&(f.line=j,f.ch=l.index,b--)}return l.nextCh||l.curMoveThrough?d(j,l.index):f}function va(a,b,c,d,e){var f=b.line,g=b.ch,h=a.getLine(f),i=c?1:-1,j=d?ub:tb;if(e&&""==h){if(f+=i,h=a.getLine(f),!q(a,f))return null;g=c?0:h.length}for(;;){if(e&&""==h)return{from:0,to:0,line:f};for(var k=i>0?h.length:-1,l=k,m=k;g!=k;){for(var n=!1,o=0;o<j.length&&!n;++o)if(j[o](h.charAt(g))){for(l=g;g!=k&&j[o](h.charAt(g));)g+=i;if(m=g,n=l!=m,l==b.ch&&f==b.line&&m==l+i)continue;return{from:Math.min(l,m+1),to:Math.max(l,m),line:f}}n||(g+=i)}if(f+=i,!q(a,f))return null;h=a.getLine(f),g=i>0?0:h.length}}function wa(a,b,c,e,f,g){var h=W(b),i=[];(e&&!f||!e&&f)&&c++;for(var j=!(e&&f),k=0;k<c;k++){var l=va(a,b,e,g,j);if(!l){var m=aa(a,a.lastLine());i.push(e?{line:a.lastLine(),from:m,to:m}:{line:0,from:0,to:0});break}i.push(l),b=d(l.line,e?l.to-1:l.from)}var n=i.length!=c,o=i[0],p=i.pop();return e&&!f?(n||o.from==h.ch&&o.line==h.line||(p=i.pop()),d(p.line,p.from)):e&&f?d(p.line,p.to-1):!e&&f?(n||o.to==h.ch&&o.line==h.line||(p=i.pop()),d(p.line,p.to)):d(p.line,p.from)}function xa(a,b,c,e){for(var f,g=a.getCursor(),h=g.ch,i=0;i<b;i++){var j=a.getLine(g.line);if(f=Aa(h,j,e,c,!0),f==-1)return null;h=f}return d(a.getCursor().line,f)}function ya(a,b){var c=a.getCursor().line;return O(a,d(c,b-1))}function za(a,b,c,d){x(c,yb)&&(b.marks[c]&&b.marks[c].clear(),b.marks[c]=a.setBookmark(d))}function Aa(a,b,c,d,e){var f;return d?(f=b.indexOf(c,a+1),f==-1||e||(f-=1)):(f=b.lastIndexOf(c,a-1),f==-1||e||(f+=1)),f}function Ba(a,b,c,e,f){function g(b){return!a.getLine(b)}function h(a,b,c){return c?g(a)!=g(a+b):!g(a)&&g(a+b)}var i,j,k=b.line,l=a.firstLine(),m=a.lastLine(),n=k;if(e){for(;l<=n&&n<=m&&c>0;)h(n,e)&&c--,n+=e;return new d(n,0)}var o=a.state.vim;if(o.visualLine&&h(k,1,!0)){var p=o.sel.anchor;h(p.line,-1,!0)&&(f&&p.line==k||(k+=1))}var q=g(k);for(n=k;n<=m&&c;n++)h(n,1,!0)&&(f&&g(n)==q||c--);for(j=new d(n,0),n>m&&!q?q=!0:f=!1,n=k;n>l&&(f&&g(n)!=q&&n!=k||!h(n,-1,!0));n--);return i=new d(n,0),{start:i,end:j}}function Ca(a,b,c,e){function f(a,b){if(b.pos+b.dir<0||b.pos+b.dir>=b.line.length){if(b.ln+=b.dir,!q(a,b.ln))return b.line=null,b.ln=null,void(b.pos=null);b.line=a.getLine(b.ln),b.pos=b.dir>0?0:b.line.length-1}else b.pos+=b.dir}function g(a,b,c,d){var e=a.getLine(b),g=""===e,h={line:e,ln:b,pos:c,dir:d},i={ln:h.ln,pos:h.pos},j=""===h.line;for(f(a,h);null!==h.line;){if(i.ln=h.ln,i.pos=h.pos,""===h.line&&!j)return{ln:h.ln,pos:h.pos};if(g&&""!==h.line&&!v(h.line[h.pos]))return{ln:h.ln,pos:h.pos};!w(h.line[h.pos])||g||h.pos!==h.line.length-1&&!v(h.line[h.pos+1])||(g=!0),f(a,h)}var e=a.getLine(i.ln);i.pos=0;for(var k=e.length-1;k>=0;--k)if(!v(e[k])){i.pos=k;break}return i}function h(a,b,c,d){var e=a.getLine(b),g={line:e,ln:b,pos:c,dir:d},h={ln:g.ln,pos:null},i=""===g.line;for(f(a,g);null!==g.line;){if(""===g.line&&!i)return null!==h.pos?h:{ln:g.ln,pos:g.pos};if(w(g.line[g.pos])&&null!==h.pos&&(g.ln!==h.ln||g.pos+1!==h.pos))return h;""===g.line||v(g.line[g.pos])||(i=!1,h={ln:g.ln,pos:g.pos}),f(a,g)}var e=a.getLine(h.ln);h.pos=0;for(var j=0;j<e.length;++j)if(!v(e[j])){h.pos=j;break}return h}for(var i={ln:b.line,pos:b.ch};c>0;)i=e<0?h(a,i.ln,i.pos,e):g(a,i.ln,i.pos,e),c--;return d(i.ln,i.pos)}function Da(a,b,c,e){var f,g,h=b,i={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[c],j={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[c],k=a.getLine(h.line).charAt(h.ch),l=k===j?1:0;if(f=a.scanForBracket(d(h.line,h.ch+l),-1,void 0,{bracketRegex:i}),g=a.scanForBracket(d(h.line,h.ch+l),1,void 0,{bracketRegex:i}),!f||!g)return{start:h,end:h};if(f=f.pos,g=g.pos,f.line==g.line&&f.ch>g.ch||f.line>g.line){var m=f;f=g,g=m}return e?g.ch+=1:f.ch+=1,{start:f,end:g}}function Ea(a,b,c,e){var f,g,h,i,j=W(b),k=a.getLine(j.line),l=k.split(""),m=l.indexOf(c);if(j.ch<m?j.ch=m:m<j.ch&&l[j.ch]==c&&(g=j.ch,--j.ch),l[j.ch]!=c||g)for(h=j.ch;h>-1&&!f;h--)l[h]==c&&(f=h+1);else f=j.ch+1;if(f&&!g)for(h=f,i=l.length;h<i&&!g;h++)l[h]==c&&(g=h);return f&&g?(e&&(--f,++g),{start:d(j.line,f),end:d(j.line,g)}):{start:j,end:j}}function Fa(){}function Ga(a){var b=a.state.vim;return b.searchState_||(b.searchState_=new Fa)}function Ha(a,b,c,d,e){a.openDialog?a.openDialog(b,d,{bottom:!0,value:e.value,onKeyDown:e.onKeyDown,onKeyUp:e.onKeyUp,selectValueOnOpen:!1}):d(prompt(c,""))}function Ia(a){return Ka(a,"/")}function Ja(a){return La(a,"/")}function Ka(a,b){var c=La(a,b)||[];if(!c.length)return[];var d=[];if(0===c[0]){for(var e=0;e<c.length;e++)"number"==typeof c[e]&&d.push(a.substring(c[e]+1,c[e+1]));return d}}function La(a,b){b||(b="/");for(var c=!1,d=[],e=0;e<a.length;e++){var f=a.charAt(e);c||f!=b||d.push(e),c=!c&&"\\"==f}return d}function Ma(a){for(var b="|(){",c="}",d=!1,e=[],f=-1;f<a.length;f++){var g=a.charAt(f)||"",h=a.charAt(f+1)||"",i=h&&b.indexOf(h)!=-1;d?("\\"===g&&i||e.push(g),d=!1):"\\"===g?(d=!0,h&&c.indexOf(h)!=-1&&(i=!0),i&&"\\"!==h||e.push(g)):(e.push(g),i&&"\\"!==h&&e.push("\\"))}return e.join("")}function Na(a){for(var b=!1,c=[],d=-1;d<a.length;d++){var e=a.charAt(d)||"",f=a.charAt(d+1)||"";Mb[e+f]?(c.push(Mb[e+f]),d++):b?(c.push(e),b=!1):"\\"===e?(b=!0,t(f)||"$"===f?c.push("$"):"/"!==f&&"\\"!==f&&c.push("\\")):("$"===e&&c.push("$"),c.push(e),"/"===f&&c.push("\\"))}return c.join("")}function Oa(b){for(var c=new a.StringStream(b),d=[];!c.eol();){for(;c.peek()&&"\\"!=c.peek();)d.push(c.next());var e=!1;for(var f in Nb)if(c.match(f,!0)){e=!0,d.push(Nb[f]);break}e||d.push(c.next())}return d.join("")}function Pa(a,b,c){var d=Db.registerController.getRegister("/");if(d.setText(a),a instanceof RegExp)return a;var e,f,g=Ja(a);if(g.length){e=a.substring(0,g[0]);var h=a.substring(g[0]);f=h.indexOf("i")!=-1}else e=a;if(!e)return null;A("pcre")||(e=Ma(e)),c&&(b=/^[^A-Z]*$/.test(e));var i=new RegExp(e,b||f?"i":void 0);return i}function Qa(a,b){a.openNotification?a.openNotification('<span style="color: red">'+b+"</span>",{bottom:!0,duration:5e3}):alert(b)}function Ra(a,b){var c='<span style="font-family: monospace; white-space: pre">'+(a||"")+'<input type="text"></span>';return b&&(c+=' <span style="color: #888">'+b+"</span>"),c}function Sa(a,b){var c=(b.prefix||"")+" "+(b.desc||""),d=Ra(b.prefix,b.desc);Ha(a,d,c,b.onClose,b)}function Ta(a,b){if(a instanceof RegExp&&b instanceof RegExp){for(var c=["global","multiline","ignoreCase","source"],d=0;d<c.length;d++){var e=c[d];if(a[e]!==b[e])return!1}return!0}return!1}function Ua(a,b,c,d){if(b){var e=Ga(a),f=Pa(b,!!c,!!d);if(f)return Wa(a,f),Ta(f,e.getQuery())?f:(e.setQuery(f),f)}}function Va(a){if("^"==a.source.charAt(0))var b=!0;return{token:function(c){if(b&&!c.sol())return void c.skipToEnd();var d=c.match(a,!1);if(d)return 0==d[0].length?(c.next(),"searching"):c.sol()||(c.backUp(1),a.exec(c.next()+d[0]))?(c.match(a),"searching"):(c.next(),null);for(;!c.eol()&&(c.next(),!c.match(a,!1)););},query:a}}function Wa(a,b){var c=Ga(a),d=c.getOverlay();d&&b==d.query||(d&&a.removeOverlay(d),d=Va(b),a.addOverlay(d),a.showMatchesOnScrollbar&&(c.getScrollbarAnnotate()&&c.getScrollbarAnnotate().clear(),c.setScrollbarAnnotate(a.showMatchesOnScrollbar(b))),c.setOverlay(d))}function Xa(a,b,c,e){return void 0===e&&(e=1),a.operation((function(){for(var f=a.getCursor(),g=a.getSearchCursor(c,f),h=0;h<e;h++){var i=g.find(b);if(0==h&&i&&X(g.from(),f)&&(i=g.find(b)),!i&&(g=a.getSearchCursor(c,b?d(a.lastLine()):d(a.firstLine(),0)),
!g.find(b)))return}return g.from()}))}function Ya(a){var b=Ga(a);a.removeOverlay(Ga(a).getOverlay()),b.setOverlay(null),b.getScrollbarAnnotate()&&(b.getScrollbarAnnotate().clear(),b.setScrollbarAnnotate(null))}function Za(a,b,c){return"number"!=typeof a&&(a=a.line),b instanceof Array?x(a,b):c?a>=b&&a<=c:a==b}function $a(a){var b=a.getScrollInfo(),c=6,d=10,e=a.coordsChar({left:0,top:c+b.top},"local"),f=b.clientHeight-d+b.top,g=a.coordsChar({left:0,top:f},"local");return{top:e.line,bottom:g.line}}function _a(a,b,c){if("'"==c){var d=a.doc.history.done,e=d[d.length-2];return e&&e.ranges&&e.ranges[0].head}if("."==c){if(0==a.doc.history.lastModTime)return;var f=a.doc.history.done.filter((function(a){if(void 0!==a.changes)return a}));f.reverse();var g=f[0].changes[0].to;return g}var h=b.marks[c];return h&&h.find()}function ab(b,c,d,e,f,g,h,i,j){function k(){b.operation((function(){for(;!p;)l(),m();n()}))}function l(){var a=b.getRange(g.from(),g.to()),c=a.replace(h,i);g.replace(c)}function m(){for(;g.findNext()&&Za(g.from(),e,f);)if(d||!q||g.from().line!=q.line)return b.scrollIntoView(g.from(),30),b.setSelection(g.from(),g.to()),q=g.from(),void(p=!1);p=!0}function n(a){if(a&&a(),b.focus(),q){b.setCursor(q);var c=b.state.vim;c.exMode=!1,c.lastHPos=c.lastHSPos=q.ch}j&&j()}function o(c,d,e){a.e_stop(c);var f=a.keyName(c);switch(f){case"Y":l(),m();break;case"N":m();break;case"A":var g=j;j=void 0,b.operation(k),j=g;break;case"L":l();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":n(e)}return p&&n(e),!0}b.state.vim.exMode=!0;var p=!1,q=g.from();return m(),p?void Qa(b,"No matches for "+h.source):c?void Sa(b,{prefix:"replace with <strong>"+i+"</strong> (y/n/a/q/l)",onKeyDown:o}):(k(),void(j&&j()))}function bb(b){var c=b.state.vim,d=Db.macroModeState,e=Db.registerController.getRegister("."),f=d.isPlaying,g=d.lastInsertModeChanges,h=[];if(!f){for(var i=g.inVisualBlock&&c.lastSelection?c.lastSelection.visualBlock.height:1,j=g.changes,h=[],k=0;k<j.length;)h.push(j[k]),j[k]instanceof mb?k++:k+=i;g.changes=h,b.off("change",ib),a.off(b.getInputField(),"keydown",nb)}!f&&c.insertModeRepeat>1&&(ob(b,c,c.insertModeRepeat-1,!0),c.lastEditInputState.repeatOverride=c.insertModeRepeat),delete c.insertModeRepeat,c.insertMode=!1,b.setCursor(b.getCursor().line,b.getCursor().ch-1),b.setOption("keyMap","vim"),b.setOption("disableInput",!0),b.toggleOverwrite(!1),e.setText(g.changes.join("")),a.signal(b,"vim-mode-change",{mode:"normal"}),d.isRecording&&gb(d)}function cb(a){b.unshift(a)}function db(a,b,c,d,e){var f={keys:a,type:b};f[b]=c,f[b+"Args"]=d;for(var g in e)f[g]=e[g];cb(f)}function eb(b,c,d,e){var f=Db.registerController.getRegister(e);if(":"==e)return f.keyBuffer[0]&&Rb.processCommand(b,f.keyBuffer[0]),void(d.isPlaying=!1);var g=f.keyBuffer,h=0;d.isPlaying=!0,d.replaySearchQueries=f.searchQueries.slice(0);for(var i=0;i<g.length;i++)for(var j,k,l=g[i];l;)if(j=/<\w+-.+?>|<\w+>|./.exec(l),k=j[0],l=l.substring(j.index+k.length),a.Vim.handleKey(b,k,"macro"),c.insertMode){var m=f.insertModeChanges[h++].changes;Db.macroModeState.lastInsertModeChanges.changes=m,pb(b,m,1),bb(b)}d.isPlaying=!1}function fb(a,b){if(!a.isPlaying){var c=a.latestRegister,d=Db.registerController.getRegister(c);d&&d.pushText(b)}}function gb(a){if(!a.isPlaying){var b=a.latestRegister,c=Db.registerController.getRegister(b);c&&c.pushInsertModeChanges&&c.pushInsertModeChanges(a.lastInsertModeChanges)}}function hb(a,b){if(!a.isPlaying){var c=a.latestRegister,d=Db.registerController.getRegister(c);d&&d.pushSearchQuery&&d.pushSearchQuery(b)}}function ib(a,b){var c=Db.macroModeState,d=c.lastInsertModeChanges;if(!c.isPlaying)for(;b;){if(d.expectCursorActivityForChange=!0,"+input"==b.origin||"paste"==b.origin||void 0===b.origin){var e=b.text.join("\n");d.maybeReset&&(d.changes=[],d.maybeReset=!1),a.state.overwrite&&!/\n/.test(e)?d.changes.push([e]):d.changes.push(e)}b=b.next}}function jb(a){var b=a.state.vim;if(b.insertMode){var c=Db.macroModeState;if(c.isPlaying)return;var d=c.lastInsertModeChanges;d.expectCursorActivityForChange?d.expectCursorActivityForChange=!1:d.maybeReset=!0}else a.curOp.isVimOp||lb(a,b);b.visualMode&&kb(a)}function kb(a){var b=a.state.vim,c=O(a,W(b.sel.head)),d=Q(c,0,1);b.fakeCursor&&b.fakeCursor.clear(),b.fakeCursor=a.markText(c,d,{className:"cm-animate-fat-cursor"})}function lb(b,c){var d=b.getCursor("anchor"),e=b.getCursor("head");if(c.visualMode&&!b.somethingSelected()?na(b,!1):c.visualMode||c.insertMode||!b.somethingSelected()||(c.visualMode=!0,c.visualLine=!1,a.signal(b,"vim-mode-change",{mode:"visual"})),c.visualMode){var f=Y(e,d)?0:-1,g=Y(e,d)?-1:0;e=Q(e,0,f),d=Q(d,0,g),c.sel={anchor:d,head:e},za(b,c,"<",Z(e,d)),za(b,c,">",$(e,d))}else c.insertMode||(c.lastHPos=b.getCursor().ch)}function mb(a){this.keyName=a}function nb(b){function c(){return e.maybeReset&&(e.changes=[],e.maybeReset=!1),e.changes.push(new mb(f)),!0}var d=Db.macroModeState,e=d.lastInsertModeChanges,f=a.keyName(b);f&&(f.indexOf("Delete")==-1&&f.indexOf("Backspace")==-1||a.lookupKey(f,"vim-insert",c))}function ob(a,b,c,d){function e(){h?Gb.processAction(a,b,b.lastEditActionCommand):Gb.evalInput(a,b)}function f(c){if(g.lastInsertModeChanges.changes.length>0){c=b.lastEditActionCommand?c:1;var d=g.lastInsertModeChanges;pb(a,d.changes,c)}}var g=Db.macroModeState;g.isPlaying=!0;var h=!!b.lastEditActionCommand,i=b.inputState;if(b.inputState=b.lastEditInputState,h&&b.lastEditActionCommand.interlaceInsertRepeat)for(var j=0;j<c;j++)e(),f(1);else d||e(),f(c);b.inputState=i,b.insertMode&&!d&&bb(a),g.isPlaying=!1}function pb(b,c,d){function e(c){return"string"==typeof c?a.commands[c](b):c(b),!0}var f=b.getCursor("head"),g=Db.macroModeState.lastInsertModeChanges.inVisualBlock;if(g){var h=b.state.vim,i=h.lastSelection,j=R(i.anchor,i.head);fa(b,f,j.line+1),d=b.listSelections().length,b.setCursor(f)}for(var k=0;k<d;k++){g&&b.setCursor(Q(f,k,0));for(var l=0;l<c.length;l++){var m=c[l];if(m instanceof mb)a.lookupKey(m.keyName,"vim-insert",e);else if("string"==typeof m){var n=b.getCursor();b.replaceRange(m,n,n)}else{var o=b.getCursor(),p=Q(o,0,m[0].length);b.replaceRange(m[0],o,p)}}}g&&b.setCursor(Q(f,0,1))}a.defineOption("vimMode",!1,(function(b,c,d){c&&"vim"!=b.getOption("keyMap")?b.setOption("keyMap","vim"):!c&&d!=a.Init&&/^vim/.test(b.getOption("keyMap"))&&b.setOption("keyMap","default")}));var qb={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},rb={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"},sb=/[\d]/,tb=[a.isWordChar,function(b){return b&&!a.isWordChar(b)&&!/\s/.test(b)}],ub=[function(a){return/\S/.test(a)}],vb=p(65,26),wb=p(97,26),xb=p(48,10),yb=[].concat(vb,wb,xb,["<",">"]),zb=[].concat(vb,wb,xb,["-",'"',".",":","/"]),Ab={};y("filetype",void 0,"string",["ft"],(function(a,b){if(void 0!==b){if(void 0===a){var c=b.getOption("mode");return"null"==c?"":c}var c=""==a?"null":a;b.setOption("mode",c)}}));var Bb=function(){function a(a,b,h){function i(b){var e=++d%c,f=g[e];f&&f.clear(),g[e]=a.setBookmark(b)}var j=d%c,k=g[j];if(k){var l=k.find();l&&!X(l,b)&&i(b)}else i(b);i(h),e=d,f=d-c+1,f<0&&(f=0)}function b(a,b){d+=b,d>e?d=e:d<f&&(d=f);var h=g[(c+d)%c];if(h&&!h.find()){var i,j=b>0?1:-1,k=a.getCursor();do if(d+=j,h=g[(c+d)%c],h&&(i=h.find())&&!X(k,i))break;while(d<e&&d>f)}return h}var c=100,d=-1,e=0,f=0,g=new Array(c);return{cachedCursor:void 0,add:a,move:b}},Cb=function(a){return a?{changes:a.changes,expectCursorActivityForChange:a.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};B.prototype={exitMacroRecordMode:function(){var a=Db.macroModeState;a.onRecordingDone&&a.onRecordingDone(),a.onRecordingDone=void 0,a.isRecording=!1},enterMacroRecordMode:function(a,b){var c=Db.registerController.getRegister(b);c&&(c.clear(),this.latestRegister=b,a.openDialog&&(this.onRecordingDone=a.openDialog("(recording)["+b+"]",null,{bottom:!0})),this.isRecording=!0)}};var Db,Eb,Fb={buildKeyMap:function(){},getRegisterController:function(){return Db.registerController},resetVimGlobalState_:D,getVimGlobalState_:function(){return Db},maybeInitVimState_:C,suppressErrorLogging:!1,InsertModeKey:mb,map:function(a,b,c){Rb.map(a,b,c)},unmap:function(a,b){Rb.unmap(a,b)},setOption:z,getOption:A,defineOption:y,defineEx:function(a,b,c){if(b){if(0!==a.indexOf(b))throw new Error('(Vim.defineEx) "'+b+'" is not a prefix of "'+a+'", command not registered')}else b=a;Qb[a]=c,Rb.commandMap_[b]={name:a,shortName:b,type:"api"}},handleKey:function(a,b,c){var d=this.findKey(a,b,c);if("function"==typeof d)return d()},findKey:function(c,d,e){function f(){var a=Db.macroModeState;if(a.isRecording){if("q"==d)return a.exitMacroRecordMode(),F(c),!0;"mapping"!=e&&fb(a,d)}}function g(){if("<Esc>"==d)return F(c),l.visualMode?na(c):l.insertMode&&bb(c),!0}function h(b){for(var e;b;)e=/<\w+-.+?>|<\w+>|./.exec(b),d=e[0],b=b.substring(e.index+d.length),a.Vim.handleKey(c,d,"mapping")}function i(){if(g())return!0;for(var a=l.inputState.keyBuffer=l.inputState.keyBuffer+d,e=1==d.length,f=Gb.matchCommand(a,b,l.inputState,"insert");a.length>1&&"full"!=f.type;){var a=l.inputState.keyBuffer=a.slice(1),h=Gb.matchCommand(a,b,l.inputState,"insert");"none"!=h.type&&(f=h)}if("none"==f.type)return F(c),!1;if("partial"==f.type)return Eb&&window.clearTimeout(Eb),Eb=window.setTimeout((function(){l.insertMode&&l.inputState.keyBuffer&&F(c)}),A("insertModeEscKeysTimeout")),!e;if(Eb&&window.clearTimeout(Eb),e){for(var i=c.listSelections(),j=0;j<i.length;j++){var k=i[j].head;c.replaceRange("",Q(k,0,-(a.length-1)),k,"+input")}Db.macroModeState.lastInsertModeChanges.changes.pop()}return F(c),f.command}function j(){if(f()||g())return!0;var a=l.inputState.keyBuffer=l.inputState.keyBuffer+d;if(/^[1-9]\d*$/.test(a))return!0;var e=/^(\d*)(.*)$/.exec(a);if(!e)return F(c),!1;var h=l.visualMode?"visual":"normal",i=Gb.matchCommand(e[2]||e[1],b,l.inputState,h);if("none"==i.type)return F(c),!1;if("partial"==i.type)return!0;l.inputState.keyBuffer="";var e=/^(\d*)(.*)$/.exec(a);return e[1]&&"0"!=e[1]&&l.inputState.pushRepeatDigit(e[1]),i.command}var k,l=C(c);return k=l.insertMode?i():j(),k===!1?l.insertMode||1!==d.length?void 0:function(){return!0}:k===!0?function(){return!0}:function(){return c.operation((function(){c.curOp.isVimOp=!0;try{"keyToKey"==k.type?h(k.toKeys):Gb.processCommand(c,l,k)}catch(b){throw c.state.vim=void 0,C(c),a.Vim.suppressErrorLogging||console.log(b),b}return!0}))}},handleEx:function(a,b){Rb.processCommand(a,b)},defineMotion:K,defineAction:N,defineOperator:M,mapCommand:db,_mapCommand:cb,defineRegister:H,exitVisualMode:na,exitInsertMode:bb};E.prototype.pushRepeatDigit=function(a){this.operator?this.motionRepeat=this.motionRepeat.concat(a):this.prefixRepeat=this.prefixRepeat.concat(a)},E.prototype.getRepeat=function(){var a=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(a=1,this.prefixRepeat.length>0&&(a*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(a*=parseInt(this.motionRepeat.join(""),10))),a},G.prototype={setText:function(a,b,c){this.keyBuffer=[a||""],this.linewise=!!b,this.blockwise=!!c},pushText:function(a,b){b&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(a)},pushInsertModeChanges:function(a){this.insertModeChanges.push(Cb(a))},pushSearchQuery:function(a){this.searchQueries.push(a)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},I.prototype={pushText:function(a,b,c,d,e){d&&"\n"!==c.charAt(c.length-1)&&(c+="\n");var f=this.isValidRegister(a)?this.getRegister(a):null;if(!f){switch(b){case"yank":this.registers[0]=new G(c,d,e);break;case"delete":case"change":c.indexOf("\n")==-1?this.registers["-"]=new G(c,d):(this.shiftNumericRegisters_(),this.registers[1]=new G(c,d))}return void this.unnamedRegister.setText(c,d,e)}var g=u(a);g?f.pushText(c,d):f.setText(c,d,e),this.unnamedRegister.setText(f.toString(),d)},getRegister:function(a){return this.isValidRegister(a)?(a=a.toLowerCase(),this.registers[a]||(this.registers[a]=new G),this.registers[a]):this.unnamedRegister},isValidRegister:function(a){return a&&x(a,zb)},shiftNumericRegisters_:function(){for(var a=9;a>=2;a--)this.registers[a]=this.getRegister(""+(a-1))}},J.prototype={nextMatch:function(a,b){var c=this.historyBuffer,d=b?-1:1;null===this.initialPrefix&&(this.initialPrefix=a);for(var e=this.iterator+d;b?e>=0:e<c.length;e+=d)for(var f=c[e],g=0;g<=f.length;g++)if(this.initialPrefix==f.substring(0,g))return this.iterator=e,f;return e>=c.length?(this.iterator=c.length,this.initialPrefix):e<0?a:void 0},pushInput:function(a){var b=this.historyBuffer.indexOf(a);b>-1&&this.historyBuffer.splice(b,1),a.length&&this.historyBuffer.push(a)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var Gb={matchCommand:function(a,b,c,d){var e=S(a,b,d,c);if(!e.full&&!e.partial)return{type:"none"};if(!e.full&&e.partial)return{type:"partial"};for(var f,g=0;g<e.full.length;g++){var h=e.full[g];f||(f=h)}if("<character>"==f.keys.slice(-11)){var i=U(a);if(!i)return{type:"none"};c.selectedCharacter=i}return{type:"full",command:f}},processCommand:function(a,b,c){switch(b.inputState.repeatOverride=c.repeatOverride,c.type){case"motion":this.processMotion(a,b,c);break;case"operator":this.processOperator(a,b,c);break;case"operatorMotion":this.processOperatorMotion(a,b,c);break;case"action":this.processAction(a,b,c);break;case"search":this.processSearch(a,b,c);break;case"ex":case"keyToEx":this.processEx(a,b,c)}},processMotion:function(a,b,c){b.inputState.motion=c.motion,b.inputState.motionArgs=P(c.motionArgs),this.evalInput(a,b)},processOperator:function(a,b,c){var d=b.inputState;if(d.operator){if(d.operator==c.operator)return d.motion="expandToLine",d.motionArgs={linewise:!0},void this.evalInput(a,b);F(a)}d.operator=c.operator,d.operatorArgs=P(c.operatorArgs),b.visualMode&&this.evalInput(a,b)},processOperatorMotion:function(a,b,c){var d=b.visualMode,e=P(c.operatorMotionArgs);e&&d&&e.visualLine&&(b.visualLine=!0),this.processOperator(a,b,c),d||this.processMotion(a,b,c)},processAction:function(a,b,c){var d=b.inputState,e=d.getRepeat(),f=!!e,g=P(c.actionArgs)||{};d.selectedCharacter&&(g.selectedCharacter=d.selectedCharacter),c.operator&&this.processOperator(a,b,c),c.motion&&this.processMotion(a,b,c),(c.motion||c.operator)&&this.evalInput(a,b),g.repeat=e||1,g.repeatIsExplicit=f,g.registerName=d.registerName,F(a),b.lastMotion=null,c.isEdit&&this.recordLastEdit(b,d,c),Jb[c.action](a,g,b)},processSearch:function(b,c,d){function e(a,e,f){Db.searchHistoryController.pushInput(a),Db.searchHistoryController.reset();try{Ua(b,a,e,f)}catch(c){return Qa(b,"Invalid regex: "+a),void F(b)}Gb.processMotion(b,c,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:d.searchArgs.toJumplist}})}function f(a){b.scrollTo(m.left,m.top),e(a,!0,!0);var c=Db.macroModeState;c.isRecording&&hb(c,a)}function g(c,d,e){var f,g,h=a.keyName(c);"Up"==h||"Down"==h?(f="Up"==h,g=c.target?c.target.selectionEnd:0,d=Db.searchHistoryController.nextMatch(d,f)||"",e(d),g&&c.target&&(c.target.selectionEnd=c.target.selectionStart=Math.min(g,c.target.value.length))):"Left"!=h&&"Right"!=h&&"Ctrl"!=h&&"Alt"!=h&&"Shift"!=h&&Db.searchHistoryController.reset();var j;try{j=Ua(b,d,!0,!0)}catch(a){}j?b.scrollIntoView(Xa(b,!i,j),30):(Ya(b),b.scrollTo(m.left,m.top))}function h(c,d,e){var f=a.keyName(c);"Esc"==f||"Ctrl-C"==f||"Ctrl-["==f||"Backspace"==f&&""==d?(Db.searchHistoryController.pushInput(d),Db.searchHistoryController.reset(),Ua(b,l),Ya(b),b.scrollTo(m.left,m.top),a.e_stop(c),F(b),e(),b.focus()):"Up"==f||"Down"==f?a.e_stop(c):"Ctrl-U"==f&&(a.e_stop(c),e(""))}if(b.getSearchCursor){var i=d.searchArgs.forward,j=d.searchArgs.wholeWordOnly;Ga(b).setReversed(!i);var k=i?"/":"?",l=Ga(b).getQuery(),m=b.getScrollInfo();switch(d.searchArgs.querySrc){case"prompt":var n=Db.macroModeState;if(n.isPlaying){var o=n.replaySearchQueries.shift();e(o,!0,!1)}else Sa(b,{onClose:f,prefix:k,desc:Ob,onKeyUp:g,onKeyDown:h});break;case"wordUnderCursor":var p=ra(b,!1,!0,!1,!0),q=!0;if(p||(p=ra(b,!1,!0,!1,!1),q=!1),!p)return;var o=b.getLine(p.start.line).substring(p.start.ch,p.end.ch);o=q&&j?"\\b"+o+"\\b":ca(o),Db.jumpList.cachedCursor=b.getCursor(),b.setCursor(p.start),e(o,!0,!1)}}},processEx:function(b,c,d){function e(a){Db.exCommandHistoryController.pushInput(a),Db.exCommandHistoryController.reset(),Rb.processCommand(b,a)}function f(c,d,e){var f,g,h=a.keyName(c);("Esc"==h||"Ctrl-C"==h||"Ctrl-["==h||"Backspace"==h&&""==d)&&(Db.exCommandHistoryController.pushInput(d),Db.exCommandHistoryController.reset(),a.e_stop(c),F(b),e(),b.focus()),"Up"==h||"Down"==h?(a.e_stop(c),f="Up"==h,g=c.target?c.target.selectionEnd:0,d=Db.exCommandHistoryController.nextMatch(d,f)||"",e(d),g&&c.target&&(c.target.selectionEnd=c.target.selectionStart=Math.min(g,c.target.value.length))):"Ctrl-U"==h?(a.e_stop(c),e("")):"Left"!=h&&"Right"!=h&&"Ctrl"!=h&&"Alt"!=h&&"Shift"!=h&&Db.exCommandHistoryController.reset()}"keyToEx"==d.type?Rb.processCommand(b,d.exArgs.input):c.visualMode?Sa(b,{onClose:e,prefix:":",value:"'<,'>",onKeyDown:f,selectValueOnOpen:!1}):Sa(b,{onClose:e,prefix:":",onKeyDown:f})},evalInput:function(a,b){var c,e,f,g=b.inputState,h=g.motion,i=g.motionArgs||{},j=g.operator,k=g.operatorArgs||{},l=g.registerName,m=b.sel,n=W(b.visualMode?O(a,m.head):a.getCursor("head")),o=W(b.visualMode?O(a,m.anchor):a.getCursor("anchor")),p=W(n),q=W(o);if(j&&this.recordLastEdit(b,g),f=void 0!==g.repeatOverride?g.repeatOverride:g.getRepeat(),f>0&&i.explicitRepeat?i.repeatIsExplicit=!0:(i.noRepeat||!i.explicitRepeat&&0===f)&&(f=1,i.repeatIsExplicit=!1),g.selectedCharacter&&(i.selectedCharacter=k.selectedCharacter=g.selectedCharacter),i.repeat=f,F(a),h){var r=Hb[h](a,n,i,b);if(b.lastMotion=Hb[h],!r)return;if(i.toJumplist){var s=Db.jumpList,t=s.cachedCursor;t?(sa(a,t,r),delete s.cachedCursor):sa(a,n,r)}r instanceof Array?(e=r[0],c=r[1]):c=r,c||(c=W(n)),b.visualMode?(b.visualBlock&&c.ch===1/0||(c=O(a,c,b.visualBlock)),e&&(e=O(a,e,!0)),e=e||q,m.anchor=e,m.head=c,ka(a),za(a,b,"<",Y(e,c)?e:c),za(a,b,">",Y(e,c)?c:e)):j||(c=O(a,c),a.setCursor(c.line,c.ch))}if(j){if(k.lastSel){e=q;var u=k.lastSel,v=Math.abs(u.head.line-u.anchor.line),w=Math.abs(u.head.ch-u.anchor.ch);c=u.visualLine?d(q.line+v,q.ch):u.visualBlock?d(q.line+v,q.ch+w):u.head.line==u.anchor.line?d(q.line,q.ch+w):d(q.line+v,q.ch),b.visualMode=!0,b.visualLine=u.visualLine,b.visualBlock=u.visualBlock,m=b.sel={anchor:e,head:c},ka(a)}else b.visualMode&&(k.lastSel={anchor:W(m.anchor),head:W(m.head),visualBlock:b.visualBlock,visualLine:b.visualLine});var x,y,z,A,B;if(b.visualMode){if(x=Z(m.head,m.anchor),y=$(m.head,m.anchor),z=b.visualLine||k.linewise,A=b.visualBlock?"block":z?"line":"char",B=la(a,{anchor:x,head:y},A),z){var C=B.ranges;if("block"==A)for(var D=0;D<C.length;D++)C[D].head.ch=aa(a,C[D].head.line);else"line"==A&&(C[0].head=d(C[0].head.line+1,0))}}else{if(x=W(e||q),y=W(c||p),Y(y,x)){var E=x;x=y,y=E}z=i.linewise||k.linewise,z?pa(a,x,y):i.forward&&oa(a,x,y),A="char";var G=!i.inclusive||z;B=la(a,{anchor:x,head:y},A,G)}a.setSelections(B.ranges,B.primary),b.lastMotion=null,k.repeat=f,k.registerName=l,k.linewise=z;var H=Ib[j](a,k,B.ranges,q,c);b.visualMode&&na(a,null!=H),H&&a.setCursor(H)}},recordLastEdit:function(a,b,c){var d=Db.macroModeState;d.isPlaying||(a.lastEditInputState=b,a.lastEditActionCommand=c,d.lastInsertModeChanges.changes=[],d.lastInsertModeChanges.expectCursorActivityForChange=!1)}},Hb={moveToTopLine:function(a,b,c){var e=$a(a).top+c.repeat-1;return d(e,qa(a.getLine(e)))},moveToMiddleLine:function(a){var b=$a(a),c=Math.floor(.5*(b.top+b.bottom));return d(c,qa(a.getLine(c)))},moveToBottomLine:function(a,b,c){var e=$a(a).bottom-c.repeat+1;return d(e,qa(a.getLine(e)))},expandToLine:function(a,b,c){var e=b;return d(e.line+c.repeat-1,1/0)},findNext:function(a,b,c){var d=Ga(a),e=d.getQuery();if(e){var f=!c.forward;return f=d.isReversed()?!f:f,Wa(a,e),Xa(a,f,e,c.repeat)}},goToMark:function(a,b,c,d){var e=_a(a,d,c.selectedCharacter);return e?c.linewise?{line:e.line,ch:qa(a.getLine(e.line))}:e:null},moveToOtherHighlightedEnd:function(a,b,c,e){if(e.visualBlock&&c.sameLine){var f=e.sel;return[O(a,d(f.anchor.line,f.head.ch)),O(a,d(f.head.line,f.anchor.ch))]}return[e.sel.head,e.sel.anchor]},jumpToMark:function(a,b,c,e){for(var f=b,g=0;g<c.repeat;g++){var h=f;for(var i in e.marks)if(r(i)){var j=e.marks[i].find(),k=c.forward?Y(j,h):Y(h,j);if(!(k||c.linewise&&j.line==h.line)){var l=X(h,f),m=c.forward?_(h,j,f):_(f,j,h);(l||m)&&(f=j)}}}return c.linewise&&(f=d(f.line,qa(a.getLine(f.line)))),f},moveByCharacters:function(a,b,c){var e=b,f=c.repeat,g=c.forward?e.ch+f:e.ch-f;return d(e.line,g)},moveByLines:function(a,b,c,e){var f=b,g=f.ch;switch(e.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:g=e.lastHPos;break;default:e.lastHPos=g}var h=c.repeat+(c.repeatOffset||0),i=c.forward?f.line+h:f.line-h,j=a.firstLine(),k=a.lastLine();return i<j&&f.line==j?this.moveToStartOfLine(a,b,c,e):i>k&&f.line==k?this.moveToEol(a,b,c,e):(c.toFirstChar&&(g=qa(a.getLine(i)),e.lastHPos=g),e.lastHSPos=a.charCoords(d(i,g),"div").left,d(i,g))},moveByDisplayLines:function(a,b,c,e){var f=b;switch(e.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:e.lastHSPos=a.charCoords(f,"div").left}var g=c.repeat,h=a.findPosV(f,c.forward?g:-g,"line",e.lastHSPos);if(h.hitSide)if(c.forward)var i=a.charCoords(h,"div"),j={top:i.top+8,left:e.lastHSPos},h=a.coordsChar(j,"div");else{var k=a.charCoords(d(a.firstLine(),0),"div");k.left=e.lastHSPos,h=a.coordsChar(k,"div")}return e.lastHPos=h.ch,h},moveByPage:function(a,b,c){var d=b,e=c.repeat;return a.findPosV(d,c.forward?e:-e,"page")},moveByParagraph:function(a,b,c){var d=c.forward?1:-1;return Ba(a,b,c.repeat,d)},moveBySentence:function(a,b,c){var d=c.forward?1:-1;return Ca(a,b,c.repeat,d)},moveByScroll:function(a,b,c,d){var e=a.getScrollInfo(),f=null,g=c.repeat;g||(g=e.clientHeight/(2*a.defaultTextHeight()));var h=a.charCoords(b,"local");c.repeat=g;var f=Hb.moveByDisplayLines(a,b,c,d);if(!f)return null;var i=a.charCoords(f,"local");return a.scrollTo(null,e.top+i.top-h.top),f},moveByWords:function(a,b,c){return wa(a,b,c.repeat,!!c.forward,!!c.wordEnd,!!c.bigWord)},moveTillCharacter:function(a,b,c){var d=c.repeat,e=xa(a,d,c.forward,c.selectedCharacter),f=c.forward?-1:1;return ta(f,c),e?(e.ch+=f,e):null},moveToCharacter:function(a,b,c){var d=c.repeat;return ta(0,c),xa(a,d,c.forward,c.selectedCharacter)||b},moveToSymbol:function(a,b,c){var d=c.repeat;return ua(a,d,c.forward,c.selectedCharacter)||b},moveToColumn:function(a,b,c,d){var e=c.repeat;return d.lastHPos=e-1,d.lastHSPos=a.charCoords(b,"div").left,ya(a,e)},moveToEol:function(a,b,c,e){var f=b;e.lastHPos=1/0;var g=d(f.line+c.repeat-1,1/0),h=a.clipPos(g);return h.ch--,e.lastHSPos=a.charCoords(h,"div").left,g},moveToFirstNonWhiteSpaceCharacter:function(a,b){var c=b;return d(c.line,qa(a.getLine(c.line)))},moveToMatchedSymbol:function(a,b){for(var c,e=b,f=e.line,g=e.ch,h=a.getLine(f);g<h.length;g++)if(c=h.charAt(g),c&&s(c)){var i=a.getTokenTypeAt(d(f,g+1));if("string"!==i&&"comment"!==i)break}if(g<h.length){var j=a.findMatchingBracket(d(f,g));return j.to}return e},moveToStartOfLine:function(a,b){return d(b.line,0)},moveToLineOrEdgeOfDocument:function(a,b,c){var e=c.forward?a.lastLine():a.firstLine();return c.repeatIsExplicit&&(e=c.repeat-a.getOption("firstLineNumber")),d(e,qa(a.getLine(e)))},textObjectManipulation:function(a,b,c,d){var e={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},f={"'":!0,'"':!0},g=c.selectedCharacter;"b"==g?g="(":"B"==g&&(g="{");var h,i=!c.textObjectInner;if(e[g])h=Da(a,b,g,i);else if(f[g])h=Ea(a,b,g,i);else if("W"===g)h=ra(a,i,!0,!0);else if("w"===g)h=ra(a,i,!0,!1);else{if("p"!==g)return null;if(h=Ba(a,b,c.repeat,0,i),c.linewise=!0,d.visualMode)d.visualLine||(d.visualLine=!0);else{var j=d.inputState.operatorArgs;j&&(j.linewise=!0),h.end.line--}}return a.state.vim.visualMode?ja(a,h.start,h.end):[h.start,h.end]},repeatLastCharacterSearch:function(a,b,c){var d=Db.lastCharacterSearch,e=c.repeat,f=c.forward===d.forward,g=(d.increment?1:0)*(f?-1:1);a.moveH(-g,"char"),c.inclusive=!!f;var h=xa(a,e,f,d.selectedCharacter);return h?(h.ch+=g,h):(a.moveH(g,"char"),b)}},Ib={change:function(b,c,e){var f,g,h=b.state.vim;if(Db.macroModeState.lastInsertModeChanges.inVisualBlock=h.visualBlock,h.visualMode){g=b.getSelection();var i=L("",e.length);b.replaceSelections(i),f=Z(e[0].head,e[0].anchor)}else{var j=e[0].anchor,k=e[0].head;g=b.getRange(j,k);var l=h.lastEditInputState||{};if("moveByWords"==l.motion&&!v(g)){var m=/\s+$/.exec(g);m&&l.motionArgs&&l.motionArgs.forward&&(k=Q(k,0,-m[0].length),g=g.slice(0,-m[0].length))}var n=new d(j.line-1,Number.MAX_VALUE),o=b.firstLine()==b.lastLine();k.line>b.lastLine()&&c.linewise&&!o?b.replaceRange("",n,k):b.replaceRange("",j,k),c.linewise&&(o||(b.setCursor(n),a.commands.newlineAndIndent(b)),j.ch=Number.MAX_VALUE),f=j}Db.registerController.pushText(c.registerName,"change",g,c.linewise,e.length>1),Jb.enterInsertMode(b,{head:f},b.state.vim)},delete:function(a,b,c){var e,f,g=a.state.vim;if(g.visualBlock){f=a.getSelection();var h=L("",c.length);a.replaceSelections(h),e=c[0].anchor}else{var i=c[0].anchor,j=c[0].head;b.linewise&&j.line!=a.firstLine()&&i.line==a.lastLine()&&i.line==j.line-1&&(i.line==a.firstLine()?i.ch=0:i=d(i.line-1,aa(a,i.line-1))),f=a.getRange(i,j),a.replaceRange("",i,j),e=i,b.linewise&&(e=Hb.moveToFirstNonWhiteSpaceCharacter(a,i))}Db.registerController.pushText(b.registerName,"delete",f,b.linewise,g.visualBlock);var k=g.insertMode;return O(a,e,k)},indent:function(a,b,c){var d=a.state.vim,e=c[0].anchor.line,f=d.visualBlock?c[c.length-1].anchor.line:c[0].head.line,g=d.visualMode?b.repeat:1;b.linewise&&f--;for(var h=e;h<=f;h++)for(var i=0;i<g;i++)a.indentLine(h,b.indentRight);return Hb.moveToFirstNonWhiteSpaceCharacter(a,c[0].anchor)},changeCase:function(a,b,c,d,e){for(var f=a.getSelections(),g=[],h=b.toLower,i=0;i<f.length;i++){var j=f[i],k="";if(h===!0)k=j.toLowerCase();else if(h===!1)k=j.toUpperCase();else for(var l=0;l<j.length;l++){var m=j.charAt(l);k+=u(m)?m.toLowerCase():m.toUpperCase()}g.push(k)}return a.replaceSelections(g),b.shouldMoveCursor?e:!a.state.vim.visualMode&&b.linewise&&c[0].anchor.line+1==c[0].head.line?Hb.moveToFirstNonWhiteSpaceCharacter(a,d):b.linewise?d:Z(c[0].anchor,c[0].head)},yank:function(a,b,c,d){var e=a.state.vim,f=a.getSelection(),g=e.visualMode?Z(e.sel.anchor,e.sel.head,c[0].head,c[0].anchor):d;return Db.registerController.pushText(b.registerName,"yank",f,b.linewise,e.visualBlock),g}},Jb={jumpListWalk:function(a,b,c){if(!c.visualMode){var d=b.repeat,e=b.forward,f=Db.jumpList,g=f.move(a,e?d:-d),h=g?g.find():void 0;h=h?h:a.getCursor(),a.setCursor(h)}},scroll:function(a,b,c){if(!c.visualMode){var d=b.repeat||1,e=a.defaultTextHeight(),f=a.getScrollInfo().top,g=e*d,h=b.forward?f+g:f-g,i=W(a.getCursor()),j=a.charCoords(i,"local");if(b.forward)h>j.top?(i.line+=(h-j.top)/e,i.line=Math.ceil(i.line),a.setCursor(i),j=a.charCoords(i,"local"),a.scrollTo(null,j.top)):a.scrollTo(null,h);else{var k=h+a.getScrollInfo().clientHeight;k<j.bottom?(i.line-=(j.bottom-k)/e,i.line=Math.floor(i.line),a.setCursor(i),j=a.charCoords(i,"local"),a.scrollTo(null,j.bottom-a.getScrollInfo().clientHeight)):a.scrollTo(null,h)}}},scrollToCursor:function(a,b){var c=a.getCursor().line,e=a.charCoords(d(c,0),"local"),f=a.getScrollInfo().clientHeight,g=e.top,h=e.bottom-g;switch(b.position){case"center":g=g-f/2+h;break;case"bottom":g=g-f+h}a.scrollTo(null,g)},replayMacro:function(a,b,c){var d=b.selectedCharacter,e=b.repeat,f=Db.macroModeState;for("@"==d&&(d=f.latestRegister);e--;)eb(a,c,f,d)},enterMacroRecordMode:function(a,b){var c=Db.macroModeState,d=b.selectedCharacter;Db.registerController.isValidRegister(d)&&c.enterMacroRecordMode(a,d)},toggleOverwrite:function(b){b.state.overwrite?(b.toggleOverwrite(!1),b.setOption("keyMap","vim-insert"),a.signal(b,"vim-mode-change",{mode:"insert"})):(b.toggleOverwrite(!0),b.setOption("keyMap","vim-replace"),a.signal(b,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(b,c,e){if(!b.getOption("readOnly")){e.insertMode=!0,e.insertModeRepeat=c&&c.repeat||1;var f=c?c.insertAt:null,g=e.sel,h=c.head||b.getCursor("head"),i=b.listSelections().length;if("eol"==f)h=d(h.line,aa(b,h.line));else if("charAfter"==f)h=Q(h,0,1);else if("firstNonBlank"==f)h=Hb.moveToFirstNonWhiteSpaceCharacter(b,h);else if("startOfSelectedArea"==f)e.visualBlock?(h=d(Math.min(g.head.line,g.anchor.line),Math.min(g.head.ch,g.anchor.ch)),i=Math.abs(g.head.line-g.anchor.line)+1):h=g.head.line<g.anchor.line?g.head:d(g.anchor.line,0);else if("endOfSelectedArea"==f)e.visualBlock?(h=d(Math.min(g.head.line,g.anchor.line),Math.max(g.head.ch+1,g.anchor.ch)),i=Math.abs(g.head.line-g.anchor.line)+1):h=g.head.line>=g.anchor.line?Q(g.head,0,1):d(g.anchor.line,0);else if("inplace"==f&&e.visualMode)return;b.setOption("disableInput",!1),c&&c.replace?(b.toggleOverwrite(!0),b.setOption("keyMap","vim-replace"),a.signal(b,"vim-mode-change",{mode:"replace"})):(b.toggleOverwrite(!1),b.setOption("keyMap","vim-insert"),a.signal(b,"vim-mode-change",{mode:"insert"})),Db.macroModeState.isPlaying||(b.on("change",ib),a.on(b.getInputField(),"keydown",nb)),e.visualMode&&na(b),fa(b,h,i)}},toggleVisualMode:function(b,c,e){var f,g=c.repeat,h=b.getCursor();e.visualMode?e.visualLine^c.linewise||e.visualBlock^c.blockwise?(e.visualLine=!!c.linewise,e.visualBlock=!!c.blockwise,a.signal(b,"vim-mode-change",{mode:"visual",subMode:e.visualLine?"linewise":e.visualBlock?"blockwise":""}),ka(b)):na(b):(e.visualMode=!0,e.visualLine=!!c.linewise,e.visualBlock=!!c.blockwise,f=O(b,d(h.line,h.ch+g-1),!0),e.sel={anchor:h,head:f},a.signal(b,"vim-mode-change",{mode:"visual",subMode:e.visualLine?"linewise":e.visualBlock?"blockwise":""}),ka(b),za(b,e,"<",Z(h,f)),za(b,e,">",$(h,f)))},reselectLastSelection:function(b,c,d){var e=d.lastSelection;if(d.visualMode&&ia(b,d),e){var f=e.anchorMark.find(),g=e.headMark.find();if(!f||!g)return;d.sel={anchor:f,head:g},d.visualMode=!0,d.visualLine=e.visualLine,d.visualBlock=e.visualBlock,ka(b),za(b,d,"<",Z(f,g)),za(b,d,">",$(f,g)),a.signal(b,"vim-mode-change",{mode:"visual",subMode:d.visualLine?"linewise":d.visualBlock?"blockwise":""})}},joinLines:function(a,b,c){var e,f;if(c.visualMode){if(e=a.getCursor("anchor"),f=a.getCursor("head"),Y(f,e)){var g=f;f=e,e=g}f.ch=aa(a,f.line)-1}else{var h=Math.max(b.repeat,2);e=a.getCursor(),f=O(a,d(e.line+h-1,1/0))}for(var i=0,j=e.line;j<f.line;j++){i=aa(a,e.line);var g=d(e.line+1,aa(a,e.line+1)),k=a.getRange(e,g);k=k.replace(/\n\s*/g," "),a.replaceRange(k,e,g)}var l=d(e.line,i);c.visualMode&&na(a,!1),a.setCursor(l)},newLineAndEnterInsertMode:function(b,c,e){e.insertMode=!0;var f=W(b.getCursor());if(f.line!==b.firstLine()||c.after){f.line=c.after?f.line:f.line-1,f.ch=aa(b,f.line),b.setCursor(f);var g=a.commands.newlineAndIndentContinueComment||a.commands.newlineAndIndent;g(b)}else b.replaceRange("\n",d(b.firstLine(),0)),b.setCursor(b.firstLine(),0);this.enterInsertMode(b,{repeat:c.repeat},e)},paste:function(a,b,c){var e=W(a.getCursor()),f=Db.registerController.getRegister(b.registerName),g=f.toString();if(g){if(b.matchIndent){var h=a.getOption("tabSize"),i=function(a){var b=a.split("\t").length-1,c=a.split(" ").length-1;return b*h+1*c},j=a.getLine(a.getCursor().line),k=i(j.match(/^\s*/)[0]),l=g.replace(/\n$/,""),m=g!==l,n=i(g.match(/^\s*/)[0]),g=l.replace(/^\s*/gm,(function(b){var c=k+(i(b)-n);if(c<0)return"";if(a.getOption("indentWithTabs")){var d=Math.floor(c/h);return Array(d+1).join("\t")}return Array(c+1).join(" ")}));g+=m?"\n":""}if(b.repeat>1)var g=Array(b.repeat+1).join(g);var o=f.linewise,p=f.blockwise;if(o)c.visualMode?g=c.visualLine?g.slice(0,-1):"\n"+g.slice(0,g.length-1)+"\n":b.after?(g="\n"+g.slice(0,g.length-1),e.ch=aa(a,e.line)):e.ch=0;else{if(p){g=g.split("\n");for(var q=0;q<g.length;q++)g[q]=""==g[q]?" ":g[q]}e.ch+=b.after?1:0}var r,s;if(c.visualMode){
c.lastPastedText=g;var t,u=ha(a,c),v=u[0],w=u[1],x=a.getSelection(),y=a.listSelections(),z=new Array(y.length).join("1").split("1");c.lastSelection&&(t=c.lastSelection.headMark.find()),Db.registerController.unnamedRegister.setText(x),p?(a.replaceSelections(z),w=d(v.line+g.length-1,v.ch),a.setCursor(v),ea(a,w),a.replaceSelections(g),r=v):c.visualBlock?(a.replaceSelections(z),a.setCursor(v),a.replaceRange(g,v,v),r=v):(a.replaceRange(g,v,w),r=a.posFromIndex(a.indexFromPos(v)+g.length-1)),t&&(c.lastSelection.headMark=a.setBookmark(t)),o&&(r.ch=0)}else if(p){a.setCursor(e);for(var q=0;q<g.length;q++){var A=e.line+q;A>a.lastLine()&&a.replaceRange("\n",d(A,0));var B=aa(a,A);B<e.ch&&da(a,A,e.ch)}a.setCursor(e),ea(a,d(e.line+g.length-1,e.ch)),a.replaceSelections(g),r=e}else a.replaceRange(g,e),o&&b.after?r=d(e.line+1,qa(a.getLine(e.line+1))):o&&!b.after?r=d(e.line,qa(a.getLine(e.line))):!o&&b.after?(s=a.indexFromPos(e),r=a.posFromIndex(s+g.length-1)):(s=a.indexFromPos(e),r=a.posFromIndex(s+g.length));c.visualMode&&na(a,!1),a.setCursor(r)}},undo:function(b,c){b.operation((function(){V(b,a.commands.undo,c.repeat)(),b.setCursor(b.getCursor("anchor"))}))},redo:function(b,c){V(b,a.commands.redo,c.repeat)()},setRegister:function(a,b,c){c.inputState.registerName=b.selectedCharacter},setMark:function(a,b,c){var d=b.selectedCharacter;za(a,c,d,a.getCursor())},replace:function(b,c,e){var f,g,h=c.selectedCharacter,i=b.getCursor(),j=b.listSelections();if(e.visualMode)i=b.getCursor("start"),g=b.getCursor("end");else{var k=b.getLine(i.line);f=i.ch+c.repeat,f>k.length&&(f=k.length),g=d(i.line,f)}if("\n"==h)e.visualMode||b.replaceRange("",i,g),(a.commands.newlineAndIndentContinueComment||a.commands.newlineAndIndent)(b);else{var l=b.getRange(i,g);if(l=l.replace(/[^\n]/g,h),e.visualBlock){var m=new Array(b.getOption("tabSize")+1).join(" ");l=b.getSelection(),l=l.replace(/\t/g,m).replace(/[^\n]/g,h).split("\n"),b.replaceSelections(l)}else b.replaceRange(l,i,g);e.visualMode?(i=Y(j[0].anchor,j[0].head)?j[0].anchor:j[0].head,b.setCursor(i),na(b,!1)):b.setCursor(Q(g,0,-1))}},incrementNumberToken:function(a,b){for(var c,e,f,g,h=a.getCursor(),i=a.getLine(h.line),j=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;null!==(c=j.exec(i))&&(e=c.index,f=e+c[0].length,!(h.ch<f)););if((b.backtrack||!(f<=h.ch))&&c){var k=c[2]||c[4],l=c[3]||c[5],m=b.increase?1:-1,n={"0b":2,0:8,"":10,"0x":16}[k.toLowerCase()],o=parseInt(c[1]+l,n)+m*b.repeat;g=o.toString(n);var p=k?new Array(l.length-g.length+1+c[1].length).join("0"):"";g="-"===g.charAt(0)?"-"+k+p+g.substr(1):k+p+g;var q=d(h.line,e),r=d(h.line,f);a.replaceRange(g,q,r),a.setCursor(d(h.line,e+g.length-1))}},repeatLastEdit:function(a,b,c){var d=c.lastEditInputState;if(d){var e=b.repeat;e&&b.repeatIsExplicit?c.lastEditInputState.repeatOverride=e:e=c.lastEditInputState.repeatOverride||e,ob(a,c,e,!1)}},indent:function(a,b){a.indentLine(a.getCursor().line,b.indentRight)},exitInsertMode:bb},Kb={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},Lb={bracket:{isComplete:function(a){if(a.nextCh===a.symb){if(a.depth++,a.depth>=1)return!0}else a.nextCh===a.reverseSymb&&a.depth--;return!1}},section:{init:function(a){a.curMoveThrough=!0,a.symb=(a.forward?"]":"[")===a.symb?"{":"}"},isComplete:function(a){return 0===a.index&&a.nextCh===a.symb}},comment:{isComplete:function(a){var b="*"===a.lastCh&&"/"===a.nextCh;return a.lastCh=a.nextCh,b}},method:{init:function(a){a.symb="m"===a.symb?"{":"}",a.reverseSymb="{"===a.symb?"}":"{"},isComplete:function(a){return a.nextCh===a.symb}},preprocess:{init:function(a){a.index=0},isComplete:function(a){if("#"===a.nextCh){var b=a.lineText.match(/#(\w+)/)[1];if("endif"===b){if(a.forward&&0===a.depth)return!0;a.depth++}else if("if"===b){if(!a.forward&&0===a.depth)return!0;a.depth--}if("else"===b&&0===a.depth)return!0}return!1}}};y("pcre",!0,"boolean"),Fa.prototype={getQuery:function(){return Db.query},setQuery:function(a){Db.query=a},getOverlay:function(){return this.searchOverlay},setOverlay:function(a){this.searchOverlay=a},isReversed:function(){return Db.isReversed},setReversed:function(a){Db.isReversed=a},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(a){this.annotate=a}};var Mb={"\\n":"\n","\\r":"\r","\\t":"\t"},Nb={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t"},Ob="(Javascript regexp)",Pb=function(){this.buildCommandMap_()};Pb.prototype={processCommand:function(a,b,c){var d=this;a.operation((function(){a.curOp.isVimOp=!0,d._processCommand(a,b,c)}))},_processCommand:function(b,c,d){var e=b.state.vim,f=Db.registerController.getRegister(":"),g=f.toString();e.visualMode&&na(b);var h=new a.StringStream(c);f.setText(c);var i=d||{};i.input=c;try{this.parseInput_(b,h,i)}catch(a){throw Qa(b,a),a}var j,k;if(i.commandName){if(j=this.matchCommand_(i.commandName)){if(k=j.name,j.excludeFromCommandHistory&&f.setText(g),this.parseCommandArgs_(h,i,j),"exToKey"==j.type){for(var l=0;l<j.toKeys.length;l++)a.Vim.handleKey(b,j.toKeys[l],"mapping");return}if("exToEx"==j.type)return void this.processCommand(b,j.toInput)}}else void 0!==i.line&&(k="move");if(!k)return void Qa(b,'Not an editor command ":'+c+'"');try{Qb[k](b,i),j&&j.possiblyAsync||!i.callback||i.callback()}catch(a){throw Qa(b,a),a}},parseInput_:function(a,b,c){b.eatWhile(":"),b.eat("%")?(c.line=a.firstLine(),c.lineEnd=a.lastLine()):(c.line=this.parseLineSpec_(a,b),void 0!==c.line&&b.eat(",")&&(c.lineEnd=this.parseLineSpec_(a,b)));var d=b.match(/^(\w+)/);return d?c.commandName=d[1]:c.commandName=b.match(/.*/)[0],c},parseLineSpec_:function(a,b){var c=b.match(/^(\d+)/);if(c)return parseInt(c[1],10)-1;switch(b.next()){case".":return this.parseLineSpecOffset_(b,a.getCursor().line);case"$":return this.parseLineSpecOffset_(b,a.lastLine());case"'":var d=b.next(),e=_a(a,a.state.vim,d);if(!e)throw new Error("Mark not set");return this.parseLineSpecOffset_(b,e.line);case"-":case"+":return b.backUp(1),this.parseLineSpecOffset_(b,a.getCursor().line);default:return void b.backUp(1)}},parseLineSpecOffset_:function(a,b){var c=a.match(/^([+-])?(\d+)/);if(c){var d=parseInt(c[2],10);"-"==c[1]?b-=d:b+=d}return b},parseCommandArgs_:function(a,b,c){if(!a.eol()){b.argString=a.match(/.*/)[0];var d=c.argDelimiter||/\s+/,e=ba(b.argString).split(d);e.length&&e[0]&&(b.args=e)}},matchCommand_:function(a){for(var b=a.length;b>0;b--){var c=a.substring(0,b);if(this.commandMap_[c]){var d=this.commandMap_[c];if(0===d.name.indexOf(a))return d}}return null},buildCommandMap_:function(){this.commandMap_={};for(var a=0;a<c.length;a++){var b=c[a],d=b.shortName||b.name;this.commandMap_[d]=b}},map:function(a,c,d){if(":"!=a&&":"==a.charAt(0)){if(d)throw Error("Mode not supported for ex mappings");var e=a.substring(1);":"!=c&&":"==c.charAt(0)?this.commandMap_[e]={name:e,type:"exToEx",toInput:c.substring(1),user:!0}:this.commandMap_[e]={name:e,type:"exToKey",toKeys:c,user:!0}}else if(":"!=c&&":"==c.charAt(0)){var f={keys:a,type:"keyToEx",exArgs:{input:c.substring(1)}};d&&(f.context=d),b.unshift(f)}else{var f={keys:a,type:"keyToKey",toKeys:c};d&&(f.context=d),b.unshift(f)}},unmap:function(a,c){if(":"!=a&&":"==a.charAt(0)){if(c)throw Error("Mode not supported for ex mappings");var d=a.substring(1);if(this.commandMap_[d]&&this.commandMap_[d].user)return void delete this.commandMap_[d]}else for(var e=a,f=0;f<b.length;f++)if(e==b[f].keys&&b[f].context===c)return void b.splice(f,1);throw Error("No such mapping.")}};var Qb={colorscheme:function(a,b){return!b.args||b.args.length<1?void Qa(a,a.getOption("theme")):void a.setOption("theme",b.args[0])},map:function(a,b,c){var d=b.args;return!d||d.length<2?void(a&&Qa(a,"Invalid mapping: "+b.input)):void Rb.map(d[0],d[1],c)},imap:function(a,b){this.map(a,b,"insert")},nmap:function(a,b){this.map(a,b,"normal")},vmap:function(a,b){this.map(a,b,"visual")},unmap:function(a,b,c){var d=b.args;return!d||d.length<1?void(a&&Qa(a,"No such mapping: "+b.input)):void Rb.unmap(d[0],c)},move:function(a,b){Gb.processCommand(a,a.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:b.line+1})},set:function(a,b){var c=b.args,d=b.setCfg||{};if(!c||c.length<1)return void(a&&Qa(a,"Invalid mapping: "+b.input));var e=c[0].split("="),f=e[0],g=e[1],h=!1;if("?"==f.charAt(f.length-1)){if(g)throw Error("Trailing characters: "+b.argString);f=f.substring(0,f.length-1),h=!0}void 0===g&&"no"==f.substring(0,2)&&(f=f.substring(2),g=!1);var i=Ab[f]&&"boolean"==Ab[f].type;if(i&&void 0==g&&(g=!0),!i&&void 0===g||h){var j=A(f,a,d);j instanceof Error?Qa(a,j.message):j===!0||j===!1?Qa(a," "+(j?"":"no")+f):Qa(a,"  "+f+"="+j)}else{var k=z(f,g,a,d);k instanceof Error&&Qa(a,k.message)}},setlocal:function(a,b){b.setCfg={scope:"local"},this.set(a,b)},setglobal:function(a,b){b.setCfg={scope:"global"},this.set(a,b)},registers:function(a,b){var c=b.args,d=Db.registerController.registers,e="----------Registers----------<br><br>";if(c){var f;c=c.join("");for(var g=0;g<c.length;g++)if(f=c.charAt(g),Db.registerController.isValidRegister(f)){var h=d[f]||new G;e+='"'+f+"    "+h.toString()+"<br>"}}else for(var f in d){var i=d[f].toString();i.length&&(e+='"'+f+"    "+i+"<br>")}Qa(a,e)},sort:function(b,c){function e(){if(c.argString){var b=new a.StringStream(c.argString);if(b.eat("!")&&(h=!0),b.eol())return;if(!b.eatSpace())return"Invalid arguments";var d=b.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!d&&!b.eol())return"Invalid arguments";if(d[1]){i=d[1].indexOf("i")!=-1,j=d[1].indexOf("u")!=-1;var e=d[1].indexOf("d")!=-1||d[1].indexOf("n")!=-1&&1,f=d[1].indexOf("x")!=-1&&1,g=d[1].indexOf("o")!=-1&&1;if(e+f+g>1)return"Invalid arguments";k=e&&"decimal"||f&&"hex"||g&&"octal"}d[2]&&(l=new RegExp(d[2].substr(1,d[2].length-2),i?"i":""))}}function f(a,b){if(h){var c;c=a,a=b,b=c}i&&(a=a.toLowerCase(),b=b.toLowerCase());var d=k&&s.exec(a),e=k&&s.exec(b);return d?(d=parseInt((d[1]+d[2]).toLowerCase(),t),e=parseInt((e[1]+e[2]).toLowerCase(),t),d-e):a<b?-1:1}function g(a,b){if(h){var c;c=a,a=b,b=c}return i&&(a[0]=a[0].toLowerCase(),b[0]=b[0].toLowerCase()),a[0]<b[0]?-1:1}var h,i,j,k,l,m=e();if(m)return void Qa(b,m+": "+c.argString);var n=c.line||b.firstLine(),o=c.lineEnd||c.line||b.lastLine();if(n!=o){var p=d(n,0),q=d(o,aa(b,o)),r=b.getRange(p,q).split("\n"),s=l?l:"decimal"==k?/(-?)([\d]+)/:"hex"==k?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==k?/([0-7]+)/:null,t="decimal"==k?10:"hex"==k?16:"octal"==k?8:null,u=[],v=[];if(k||l)for(var w=0;w<r.length;w++){var x=l?r[w].match(l):null;x&&""!=x[0]?u.push(x):!l&&s.exec(r[w])?u.push(r[w]):v.push(r[w])}else v=r;if(u.sort(l?g:f),l)for(var w=0;w<u.length;w++)u[w]=u[w].input;else k||v.sort(f);if(r=h?u.concat(v):v.concat(u),j){var y,z=r;r=[];for(var w=0;w<z.length;w++)z[w]!=y&&r.push(z[w]),y=z[w]}b.replaceRange(r.join("\n"),p,q)}},global:function(a,b){var c=b.argString;if(!c)return void Qa(a,"Regular Expression missing from global");var d,e=void 0!==b.line?b.line:a.firstLine(),f=b.lineEnd||b.line||a.lastLine(),g=Ia(c),h=c;if(g.length&&(h=g[0],d=g.slice(1,g.length).join("/")),h)try{Ua(a,h,!0,!0)}catch(b){return void Qa(a,"Invalid regex: "+h)}for(var i=Ga(a).getQuery(),j=[],k="",l=e;l<=f;l++){var m=i.test(a.getLine(l));m&&(j.push(l+1),k+=a.getLine(l)+"<br>")}if(!d)return void Qa(a,k);var n=0,o=function(){if(n<j.length){var b=j[n]+d;Rb.processCommand(a,b,{callback:o})}n++};o()},substitute:function(a,b){if(!a.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var c,e,f,g,h=b.argString,i=h?Ka(h,h[0]):[],j="",k=!1,l=!1;if(i.length)c=i[0],j=i[1],c&&"$"===c[c.length-1]&&(c=c.slice(0,c.length-1)+"\\n",j=j?j+"\n":"\n"),void 0!==j&&(j=A("pcre")?Oa(j):Na(j),Db.lastSubstituteReplacePart=j),e=i[2]?i[2].split(" "):[];else if(h&&h.length)return void Qa(a,"Substitutions should be of the form :s/pattern/replace/");if(e&&(f=e[0],g=parseInt(e[1]),f&&(f.indexOf("c")!=-1&&(k=!0,f.replace("c","")),f.indexOf("g")!=-1&&(l=!0,f.replace("g","")),c=c.replace(/\//g,"\\/")+"/"+f)),c)try{Ua(a,c,!0,!0)}catch(b){return void Qa(a,"Invalid regex: "+c)}if(j=j||Db.lastSubstituteReplacePart,void 0===j)return void Qa(a,"No previous substitute regular expression");var m=Ga(a),n=m.getQuery(),o=void 0!==b.line?b.line:a.getCursor().line,p=b.lineEnd||o;o==a.firstLine()&&p==a.lastLine()&&(p=1/0),g&&(o=p,p=o+g-1);var q=O(a,d(o,0)),r=a.getSearchCursor(n,q);ab(a,k,l,o,p,r,n,j,b.callback)},redo:a.commands.redo,undo:a.commands.undo,write:function(b){a.commands.save?a.commands.save(b):b.save&&b.save()},nohlsearch:function(a){Ya(a)},yank:function(a){var b=W(a.getCursor()),c=b.line,d=a.getLine(c);Db.registerController.pushText("0","yank",d,!0,!0)},delmarks:function(b,c){if(!c.argString||!ba(c.argString))return void Qa(b,"Argument required");for(var d=b.state.vim,e=new a.StringStream(ba(c.argString));!e.eol();){e.eatSpace();var f=e.pos;if(!e.match(/[a-zA-Z]/,!1))return void Qa(b,"Invalid argument: "+c.argString.substring(f));var g=e.next();if(e.match("-",!0)){if(!e.match(/[a-zA-Z]/,!1))return void Qa(b,"Invalid argument: "+c.argString.substring(f));var h=g,i=e.next();if(!(r(h)&&r(i)||u(h)&&u(i)))return void Qa(b,"Invalid argument: "+h+"-");var j=h.charCodeAt(0),k=i.charCodeAt(0);if(j>=k)return void Qa(b,"Invalid argument: "+c.argString.substring(f));for(var l=0;l<=k-j;l++){var m=String.fromCharCode(j+l);delete d.marks[m]}}else delete d.marks[g]}}},Rb=new Pb;return a.keyMap.vim={attach:h,detach:g,call:m},y("insertModeEscKeysTimeout",200,"number"),a.keyMap["vim-insert"]={fallthrough:["default"],attach:h,detach:g,call:m},a.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:h,detach:g,call:m},D(),Fb};a.Vim=e()}));editors/codemirror/keymap/emacs.min.js000064400000016301152177723720014076 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";function b(a,b){return a.line==b.line&&a.ch==b.ch}function c(a){I.push(a),I.length>50&&I.shift()}function d(a){return I.length?void(I[I.length-1]+=a):c(a)}function e(a){return I[I.length-(a?Math.min(a,1):1)]||""}function f(){return I.length>1&&I.pop(),e()}function g(a,e,f,g,h){null==h&&(h=a.getRange(e,f)),"grow"==g&&J&&J.cm==a&&b(e,J.pos)&&a.isClean(J.gen)?d(h):g!==!1&&c(h),a.replaceRange("",e,f,"+delete"),J="grow"==g?{cm:a,pos:e,gen:a.changeGeneration()}:null}function h(a,b,c){return a.findPosH(b,c,"char",!0)}function i(a,b,c){return a.findPosH(b,c,"word",!0)}function j(a,b,c){return a.findPosV(b,c,"line",a.doc.sel.goalColumn)}function k(a,b,c){return a.findPosV(b,c,"page",a.doc.sel.goalColumn)}function l(a,b,c){for(var d=b.line,e=a.getLine(d),f=/\S/.test(c<0?e.slice(0,b.ch):e.slice(b.ch)),g=a.firstLine(),h=a.lastLine();;){if(d+=c,d<g||d>h)return a.clipPos(H(d-c,c<0?0:null));e=a.getLine(d);var i=/\S/.test(e);if(i)f=!0;else if(f)return H(d,0)}}function m(a,b,c){for(var d=b.line,e=b.ch,f=a.getLine(b.line),g=!1;;){var h=f.charAt(e+(c<0?-1:0));if(h){if(g&&/[!?.]/.test(h))return H(d,e+(c>0?1:0));g||(g=/\w/.test(h)),e+=c}else{if(d==(c<0?a.firstLine():a.lastLine()))return H(d,e);if(f=a.getLine(d+c),!/\S/.test(f))return H(d,e);d+=c,e=c<0?f.length:0}}}function n(a,c,d){var e;if(a.findMatchingBracket&&(e=a.findMatchingBracket(c,{strict:!0}))&&e.match&&(e.forward?1:-1)==d)return d>0?H(e.to.line,e.to.ch+1):e.to;for(var f=!0;;f=!1){var g=a.getTokenAt(c),h=H(c.line,d<0?g.start:g.end);if(!(f&&d>0&&g.end==c.ch)&&/\w/.test(g.string))return h;var i=a.findPosH(h,d,"char");if(b(h,i))return c;c=i}}function o(a,b){var c=a.state.emacsPrefix;return c?(w(a),"-"==c?-1:Number(c)):b?null:1}function p(a){var b="string"==typeof a?function(b){b.execCommand(a)}:a;return function(a){var c=o(a);b(a);for(var d=1;d<c;++d)b(a)}}function q(a,c,d,e){var f=o(a);f<0&&(e=-e,f=-f);for(var g=0;g<f;++g){var h=d(a,c,e);if(b(h,c))break;c=h}return c}function r(a,b){var c=function(c){c.extendSelection(q(c,c.getCursor(),a,b))};return c.motion=!0,c}function s(a,b,c,d){for(var e,f=a.listSelections(),h=f.length;h--;)e=f[h].head,g(a,e,q(a,e,b,c),d)}function t(a,b){if(a.somethingSelected()){for(var c,d=a.listSelections(),e=d.length;e--;)c=d[e],g(a,c.anchor,c.head,b);return!0}}function u(a,b){return a.state.emacsPrefix?void("-"!=b&&(a.state.emacsPrefix+=b)):(a.state.emacsPrefix=b,a.on("keyHandled",v),void a.on("inputRead",x))}function v(a,b){a.state.emacsPrefixMap||K.hasOwnProperty(b)||w(a)}function w(a){a.state.emacsPrefix=null,a.off("keyHandled",v),a.off("inputRead",x)}function x(a,b){var c=o(a);if(c>1&&"+input"==b.origin){for(var d=b.text.join("\n"),e="",f=1;f<c;++f)e+=d;a.replaceSelection(e)}}function y(a){a.state.emacsPrefixMap=!0,a.addKeyMap(M),a.on("keyHandled",z),a.on("inputRead",z)}function z(a,b){("string"!=typeof b||!/^\d$/.test(b)&&"Ctrl-U"!=b)&&(a.removeKeyMap(M),a.state.emacsPrefixMap=!1,a.off("keyHandled",z),a.off("inputRead",z))}function A(a){a.setCursor(a.getCursor()),a.setExtending(!a.getExtending()),a.on("change",(function(){a.setExtending(!1)}))}function B(a){a.setExtending(!1),a.setCursor(a.getCursor())}function C(a,b,c){a.openDialog?a.openDialog(b+': <input type="text" style="width: 10em"/>',c,{bottom:!0}):c(prompt(b,""))}function D(a,b){var c=a.getCursor(),d=a.findPosH(c,1,"word");a.replaceRange(b(a.getRange(c,d)),c,d),a.setCursor(d)}function E(a){for(var b=a.getCursor(),c=b.line,d=b.ch,e=[];c>=a.firstLine();){for(var f=a.getLine(c),g=null==d?f.length:d;g>0;){var d=f.charAt(--g);if(")"==d)e.push("(");else if("]"==d)e.push("[");else if("}"==d)e.push("{");else if(/[\(\{\[]/.test(d)&&(!e.length||e.pop()!=d))return a.extendSelection(H(c,g))}--c,d=null}}function F(a){a.execCommand("clearSearch"),B(a)}function G(a){M[a]=function(b){u(b,a)},L["Ctrl-"+a]=function(b){u(b,a)},K["Ctrl-"+a]=!0}var H=a.Pos,I=[],J=null,K={"Alt-G":!0,"Ctrl-X":!0,"Ctrl-Q":!0,"Ctrl-U":!0};a.emacs={kill:g,killRegion:t,repeated:p};for(var L=a.keyMap.emacs=a.normalizeKeyMap({"Ctrl-W":function(a){g(a,a.getCursor("start"),a.getCursor("end"),!0)},"Ctrl-K":p((function(a){var b=a.getCursor(),c=a.clipPos(H(b.line)),d=a.getRange(b,c);/\S/.test(d)||(d+="\n",c=H(b.line+1,0)),g(a,b,c,"grow",d)})),"Alt-W":function(a){c(a.getSelection()),B(a)},"Ctrl-Y":function(a){var b=a.getCursor();a.replaceRange(e(o(a)),b,b,"paste"),a.setSelection(b,a.getCursor())},"Alt-Y":function(a){a.replaceSelection(f(),"around","paste")},"Ctrl-Space":A,"Ctrl-Shift-2":A,"Ctrl-F":r(h,1),"Ctrl-B":r(h,-1),Right:r(h,1),Left:r(h,-1),"Ctrl-D":function(a){s(a,h,1,!1)},Delete:function(a){t(a,!1)||s(a,h,1,!1)},"Ctrl-H":function(a){s(a,h,-1,!1)},Backspace:function(a){t(a,!1)||s(a,h,-1,!1)},"Alt-F":r(i,1),"Alt-B":r(i,-1),"Alt-Right":r(i,1),"Alt-Left":r(i,-1),"Alt-D":function(a){s(a,i,1,"grow")},"Alt-Backspace":function(a){s(a,i,-1,"grow")},"Ctrl-N":r(j,1),"Ctrl-P":r(j,-1),Down:r(j,1),Up:r(j,-1),"Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":r(k,-1),"Ctrl-V":r(k,1),PageUp:r(k,-1),PageDown:r(k,1),"Ctrl-Up":r(l,-1),"Ctrl-Down":r(l,1),"Alt-A":r(m,-1),"Alt-E":r(m,1),"Alt-K":function(a){s(a,m,1,"grow")},"Ctrl-Alt-K":function(a){s(a,n,1,"grow")},"Ctrl-Alt-Backspace":function(a){s(a,n,-1,"grow")},"Ctrl-Alt-F":r(n,1),"Ctrl-Alt-B":r(n,-1,"grow"),"Shift-Ctrl-Alt-2":function(a){var b=a.getCursor();a.setSelection(q(a,b,n,1),b)},"Ctrl-Alt-T":function(a){var b=n(a,a.getCursor(),-1),c=n(a,b,1),d=n(a,c,1),e=n(a,d,-1);a.replaceRange(a.getRange(e,d)+a.getRange(c,e)+a.getRange(b,c),b,d)},"Ctrl-Alt-U":p(E),"Alt-Space":function(a){for(var b=a.getCursor(),c=b.ch,d=b.ch,e=a.getLine(b.line);c&&/\s/.test(e.charAt(c-1));)--c;for(;d<e.length&&/\s/.test(e.charAt(d));)++d;a.replaceRange(" ",H(b.line,c),H(b.line,d))},"Ctrl-O":p((function(a){a.replaceSelection("\n","start")})),"Ctrl-T":p((function(a){a.execCommand("transposeChars")})),"Alt-C":p((function(a){D(a,(function(a){var b=a.search(/\w/);return b==-1?a:a.slice(0,b)+a.charAt(b).toUpperCase()+a.slice(b+1).toLowerCase()}))})),"Alt-U":p((function(a){D(a,(function(a){return a.toUpperCase()}))})),"Alt-L":p((function(a){D(a,(function(a){return a.toLowerCase()}))})),"Alt-;":"toggleComment","Ctrl-/":p("undo"),"Shift-Ctrl--":p("undo"),"Ctrl-Z":p("undo"),"Cmd-Z":p("undo"),"Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findPersistentNext","Ctrl-R":"findPersistentPrev","Ctrl-G":F,"Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":p((function(a){a.replaceSelection("\n","end")})),Tab:"indentAuto","Alt-G G":function(a){var b=o(a,!0);return null!=b&&b>0?a.setCursor(b-1):void C(a,"Goto line",(function(b){var c;b&&!isNaN(c=Number(b))&&c==(0|c)&&c>0&&a.setCursor(c-1)}))},"Ctrl-X Tab":function(a){a.indentSelection(o(a,!0)||a.getOption("indentUnit"))},"Ctrl-X Ctrl-X":function(a){a.setSelection(a.getCursor("head"),a.getCursor("anchor"))},"Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X U":p("undo"),"Ctrl-X K":"close","Ctrl-X Delete":function(a){g(a,a.getCursor(),m(a,a.getCursor(),1),"grow")},"Ctrl-X H":"selectAll","Ctrl-Q Tab":p("insertTab"),"Ctrl-U":y}),M={"Ctrl-G":w},N=0;N<10;++N)G(String(N));G("-")}));editors/codemirror/keymap/sublime.min.js000064400000034444152177723720014456 0ustar00!(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],a):a(CodeMirror)})((function(a){"use strict";function b(b,c,d){if(d<0&&0==c.ch)return b.clipPos(n(c.line-1));var e=b.getLine(c.line);if(d>0&&c.ch>=e.length)return b.clipPos(n(c.line+1,0));for(var f,g="start",h=c.ch,i=d<0?0:e.length,j=0;h!=i;h+=d,j++){var k=e.charAt(d<0?h-1:h),l="_"!=k&&a.isWordChar(k)?"w":"o";if("w"==l&&k.toUpperCase()==k&&(l="W"),"start"==g)"o"!=l&&(g="in",f=l);else if("in"==g&&f!=l){if("w"==f&&"W"==l&&d<0&&h--,"W"==f&&"w"==l&&d>0){f="w";continue}break}}return n(c.line,h)}function c(a,c){a.extendSelectionsBy((function(d){return a.display.shift||a.doc.extend||d.empty()?b(a.doc,d.head,c):c<0?d.from():d.to()}))}function d(b,c){return b.isReadOnly()?a.Pass:(b.operation((function(){for(var a=b.listSelections().length,d=[],e=-1,f=0;f<a;f++){var g=b.listSelections()[f].head;if(!(g.line<=e)){var h=n(g.line+(c?0:1),0);b.replaceRange("\n",h,null,"+insertLine"),b.indentLine(h.line,null,!0),d.push({head:h,anchor:h}),e=g.line+1}}b.setSelections(d)})),void b.execCommand("indentAuto"))}function e(b,c){for(var d=c.ch,e=d,f=b.getLine(c.line);d&&a.isWordChar(f.charAt(d-1));)--d;for(;e<f.length&&a.isWordChar(f.charAt(e));)++e;return{from:n(c.line,d),to:n(c.line,e),word:f.slice(d,e)}}function f(a,b){for(var c=a.listSelections(),d=[],e=0;e<c.length;e++){var f=c[e],g=a.findPosV(f.anchor,b,"line",f.anchor.goalColumn),h=a.findPosV(f.head,b,"line",f.head.goalColumn);g.goalColumn=null!=f.anchor.goalColumn?f.anchor.goalColumn:a.cursorCoords(f.anchor,"div").left,h.goalColumn=null!=f.head.goalColumn?f.head.goalColumn:a.cursorCoords(f.head,"div").left;var i={anchor:g,head:h};d.push(f),d.push(i)}a.setSelections(d)}function g(a,b,c){for(var d=0;d<a.length;d++)if(a[d].from()==b&&a[d].to()==c)return!0;return!1}function h(b){for(var c=b.listSelections(),d=[],e=0;e<c.length;e++){var f=c[e],g=f.head,h=b.scanForBracket(g,-1);if(!h)return!1;for(;;){var i=b.scanForBracket(g,1);if(!i)return!1;if(i.ch==o.charAt(o.indexOf(h.ch)+1)){var j=n(h.pos.line,h.pos.ch+1);if(0!=a.cmpPos(j,f.from())||0!=a.cmpPos(i.pos,f.to())){d.push({anchor:j,head:i.pos});break}if(h=b.scanForBracket(h.pos,-1),!h)return!1}g=n(i.pos.line,i.pos.ch+1)}}return b.setSelections(d),!0}function i(b,c){if(b.isReadOnly())return a.Pass;for(var d,e=b.listSelections(),f=[],g=0;g<e.length;g++){var h=e[g];if(!h.empty()){for(var i=h.from().line,j=h.to().line;g<e.length-1&&e[g+1].from().line==j;)j=e[++g].to().line;e[g].to().ch||j--,f.push(i,j)}}f.length?d=!0:f.push(b.firstLine(),b.lastLine()),b.operation((function(){for(var a=[],e=0;e<f.length;e+=2){var g=f[e],h=f[e+1],i=n(g,0),j=n(h),k=b.getRange(i,j,!1);c?k.sort():k.sort((function(a,b){var c=a.toUpperCase(),d=b.toUpperCase();return c!=d&&(a=c,b=d),a<b?-1:a==b?0:1})),b.replaceRange(k,i,j),d&&a.push({anchor:i,head:n(h+1,0)})}d&&b.setSelections(a,0)}))}function j(b,c){b.operation((function(){for(var d=b.listSelections(),f=[],g=[],h=0;h<d.length;h++){var i=d[h];i.empty()?(f.push(h),g.push("")):g.push(c(b.getRange(i.from(),i.to())))}b.replaceSelections(g,"around","case");for(var j,h=f.length-1;h>=0;h--){var i=d[f[h]];if(!(j&&a.cmpPos(i.head,j)>0)){var k=e(b,i.head);j=k.from,b.replaceRange(c(k.word),k.from,k.to)}}}))}function k(b){var c=b.getCursor("from"),d=b.getCursor("to");if(0==a.cmpPos(c,d)){var f=e(b,c);if(!f.word)return;c=f.from,d=f.to}return{from:c,to:d,query:b.getRange(c,d),word:f}}function l(a,b){var c=k(a);if(c){var d=c.query,e=a.getSearchCursor(d,b?c.to:c.from);(b?e.findNext():e.findPrevious())?a.setSelection(e.from(),e.to()):(e=a.getSearchCursor(d,b?n(a.firstLine(),0):a.clipPos(n(a.lastLine()))),(b?e.findNext():e.findPrevious())?a.setSelection(e.from(),e.to()):c.word&&a.setSelection(c.from,c.to))}}var m=a.commands,n=a.Pos;m.goSubwordLeft=function(a){c(a,-1)},m.goSubwordRight=function(a){c(a,1)},m.scrollLineUp=function(a){var b=a.getScrollInfo();if(!a.somethingSelected()){var c=a.lineAtHeight(b.top+b.clientHeight,"local");a.getCursor().line>=c&&a.execCommand("goLineUp")}a.scrollTo(null,b.top-a.defaultTextHeight())},m.scrollLineDown=function(a){var b=a.getScrollInfo();if(!a.somethingSelected()){var c=a.lineAtHeight(b.top,"local")+1;a.getCursor().line<=c&&a.execCommand("goLineDown")}a.scrollTo(null,b.top+a.defaultTextHeight())},m.splitSelectionByLine=function(a){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++)for(var e=b[d].from(),f=b[d].to(),g=e.line;g<=f.line;++g)f.line>e.line&&g==f.line&&0==f.ch||c.push({anchor:g==e.line?e:n(g,0),head:g==f.line?f:n(g)});a.setSelections(c,0)},m.singleSelectionTop=function(a){var b=a.listSelections()[0];a.setSelection(b.anchor,b.head,{scroll:!1})},m.selectLine=function(a){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++){var e=b[d];c.push({anchor:n(e.from().line,0),head:n(e.to().line+1,0)})}a.setSelections(c)},m.insertLineAfter=function(a){return d(a,!1)},m.insertLineBefore=function(a){return d(a,!0)},m.selectNextOccurrence=function(b){var c=b.getCursor("from"),d=b.getCursor("to"),f=b.state.sublimeFindFullWord==b.doc.sel;if(0==a.cmpPos(c,d)){var h=e(b,c);if(!h.word)return;b.setSelection(h.from,h.to),f=!0}else{var i=b.getRange(c,d),j=f?new RegExp("\\b"+i+"\\b"):i,k=b.getSearchCursor(j,d),l=k.findNext();if(l||(k=b.getSearchCursor(j,n(b.firstLine(),0)),l=k.findNext()),!l||g(b.listSelections(),k.from(),k.to()))return a.Pass;b.addSelection(k.from(),k.to())}f&&(b.state.sublimeFindFullWord=b.doc.sel)},m.addCursorToPrevLine=function(a){f(a,-1)},m.addCursorToNextLine=function(a){f(a,1)};var o="(){}[]";m.selectScope=function(a){h(a)||a.execCommand("selectAll")},m.selectBetweenBrackets=function(b){if(!h(b))return a.Pass},m.goToBracket=function(b){b.extendSelectionsBy((function(c){var d=b.scanForBracket(c.head,1);if(d&&0!=a.cmpPos(d.pos,c.head))return d.pos;var e=b.scanForBracket(c.head,-1);return e&&n(e.pos.line,e.pos.ch+1)||c.head}))},m.swapLineUp=function(b){if(b.isReadOnly())return a.Pass;for(var c=b.listSelections(),d=[],e=b.firstLine()-1,f=[],g=0;g<c.length;g++){var h=c[g],i=h.from().line-1,j=h.to().line;f.push({anchor:n(h.anchor.line-1,h.anchor.ch),head:n(h.head.line-1,h.head.ch)}),0!=h.to().ch||h.empty()||--j,i>e?d.push(i,j):d.length&&(d[d.length-1]=j),e=j}b.operation((function(){for(var a=0;a<d.length;a+=2){var c=d[a],e=d[a+1],g=b.getLine(c);b.replaceRange("",n(c,0),n(c+1,0),"+swapLine"),e>b.lastLine()?b.replaceRange("\n"+g,n(b.lastLine()),null,"+swapLine"):b.replaceRange(g+"\n",n(e,0),null,"+swapLine")}b.setSelections(f),b.scrollIntoView()}))},m.swapLineDown=function(b){if(b.isReadOnly())return a.Pass;for(var c=b.listSelections(),d=[],e=b.lastLine()+1,f=c.length-1;f>=0;f--){var g=c[f],h=g.to().line+1,i=g.from().line;0!=g.to().ch||g.empty()||h--,h<e?d.push(h,i):d.length&&(d[d.length-1]=i),e=i}b.operation((function(){for(var a=d.length-2;a>=0;a-=2){var c=d[a],e=d[a+1],f=b.getLine(c);c==b.lastLine()?b.replaceRange("",n(c-1),n(c),"+swapLine"):b.replaceRange("",n(c,0),n(c+1,0),"+swapLine"),b.replaceRange(f+"\n",n(e,0),null,"+swapLine")}b.scrollIntoView()}))},m.toggleCommentIndented=function(a){a.toggleComment({indent:!0})},m.joinLines=function(a){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++){for(var e=b[d],f=e.from(),g=f.line,h=e.to().line;d<b.length-1&&b[d+1].from().line==h;)h=b[++d].to().line;c.push({start:g,end:h,anchor:!e.empty()&&f})}a.operation((function(){for(var b=0,d=[],e=0;e<c.length;e++){for(var f,g=c[e],h=g.anchor&&n(g.anchor.line-b,g.anchor.ch),i=g.start;i<=g.end;i++){var j=i-b;i==g.end&&(f=n(j,a.getLine(j).length+1)),j<a.lastLine()&&(a.replaceRange(" ",n(j),n(j+1,/^\s*/.exec(a.getLine(j+1))[0].length)),++b)}d.push({anchor:h||f,head:f})}a.setSelections(d,0)}))},m.duplicateLine=function(a){a.operation((function(){for(var b=a.listSelections().length,c=0;c<b;c++){var d=a.listSelections()[c];d.empty()?a.replaceRange(a.getLine(d.head.line)+"\n",n(d.head.line,0)):a.replaceRange(a.getRange(d.from(),d.to()),d.from())}a.scrollIntoView()}))},m.sortLines=function(a){i(a,!0)},m.sortLinesInsensitive=function(a){i(a,!1)},m.nextBookmark=function(a){var b=a.state.sublimeBookmarks;if(b)for(;b.length;){var c=b.shift(),d=c.find();if(d)return b.push(c),a.setSelection(d.from,d.to)}},m.prevBookmark=function(a){var b=a.state.sublimeBookmarks;if(b)for(;b.length;){b.unshift(b.pop());var c=b[b.length-1].find();if(c)return a.setSelection(c.from,c.to);b.pop()}},m.toggleBookmark=function(a){for(var b=a.listSelections(),c=a.state.sublimeBookmarks||(a.state.sublimeBookmarks=[]),d=0;d<b.length;d++){for(var e=b[d].from(),f=b[d].to(),g=b[d].empty()?a.findMarksAt(e):a.findMarks(e,f),h=0;h<g.length;h++)if(g[h].sublimeBookmark){g[h].clear();for(var i=0;i<c.length;i++)c[i]==g[h]&&c.splice(i--,1);break}h==g.length&&c.push(a.markText(e,f,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},m.clearBookmarks=function(a){var b=a.state.sublimeBookmarks;if(b)for(var c=0;c<b.length;c++)b[c].clear();b.length=0},m.selectBookmarks=function(a){var b=a.state.sublimeBookmarks,c=[];if(b)for(var d=0;d<b.length;d++){var e=b[d].find();e?c.push({anchor:e.from,head:e.to}):b.splice(d--,0)}c.length&&a.setSelections(c,0)},m.smartBackspace=function(b){return b.somethingSelected()?a.Pass:void b.operation((function(){for(var c=b.listSelections(),d=b.getOption("indentUnit"),e=c.length-1;e>=0;e--){var f=c[e].head,g=b.getRange({line:f.line,ch:0},f),h=a.countColumn(g,null,b.getOption("tabSize")),i=b.findPosH(f,-1,"char",!1);if(g&&!/\S/.test(g)&&h%d==0){var j=new n(f.line,a.findColumn(g,h-d,d));j.ch!=f.ch&&(i=j)}b.replaceRange("",i,f,"+delete")}}))},m.delLineRight=function(a){a.operation((function(){for(var b=a.listSelections(),c=b.length-1;c>=0;c--)a.replaceRange("",b[c].anchor,n(b[c].to().line),"+delete");a.scrollIntoView()}))},m.upcaseAtCursor=function(a){j(a,(function(a){return a.toUpperCase()}))},m.downcaseAtCursor=function(a){j(a,(function(a){return a.toLowerCase()}))},m.setSublimeMark=function(a){a.state.sublimeMark&&a.state.sublimeMark.clear(),a.state.sublimeMark=a.setBookmark(a.getCursor())},m.selectToSublimeMark=function(a){var b=a.state.sublimeMark&&a.state.sublimeMark.find();b&&a.setSelection(a.getCursor(),b)},m.deleteToSublimeMark=function(b){var c=b.state.sublimeMark&&b.state.sublimeMark.find();if(c){var d=b.getCursor(),e=c;if(a.cmpPos(d,e)>0){var f=e;e=d,d=f}b.state.sublimeKilled=b.getRange(d,e),b.replaceRange("",d,e)}},m.swapWithSublimeMark=function(a){var b=a.state.sublimeMark&&a.state.sublimeMark.find();b&&(a.state.sublimeMark.clear(),a.state.sublimeMark=a.setBookmark(a.getCursor()),a.setCursor(b))},m.sublimeYank=function(a){null!=a.state.sublimeKilled&&a.replaceSelection(a.state.sublimeKilled,null,"paste")},m.showInCenter=function(a){var b=a.cursorCoords(null,"local");a.scrollTo(null,(b.top+b.bottom)/2-a.getScrollInfo().clientHeight/2)},m.findUnder=function(a){l(a,!0)},m.findUnderPrevious=function(a){l(a,!1)},m.findAllUnder=function(a){var b=k(a);if(b){for(var c=a.getSearchCursor(b.query),d=[],e=-1;c.findNext();)d.push({anchor:c.from(),head:c.to()}),c.from().line<=b.from.line&&c.from().ch<=b.from.ch&&e++;a.setSelections(d,e)}};var p=a.keyMap;p.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F9:"sortLines","Cmd-F9":"sortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},a.normalizeKeyMap(p.macSublime),p.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Ctrl-F9":"sortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},a.normalizeKeyMap(p.pcSublime);var q=p.default==p.macDefault;p.sublime=q?p.macSublime:p.pcSublime}));editors/codemirror/keymap/emacs.js000064400000032635152177723720013324 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../lib/codemirror"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../lib/codemirror"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  "use strict";

  var Pos = CodeMirror.Pos;
  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }

  // Kill 'ring'

  var killRing = [];
  function addToRing(str) {
    killRing.push(str);
    if (killRing.length > 50) killRing.shift();
  }
  function growRingTop(str) {
    if (!killRing.length) return addToRing(str);
    killRing[killRing.length - 1] += str;
  }
  function getFromRing(n) { return killRing[killRing.length - (n ? Math.min(n, 1) : 1)] || ""; }
  function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); }

  var lastKill = null;

  function kill(cm, from, to, ring, text) {
    if (text == null) text = cm.getRange(from, to);

    if (ring == "grow" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))
      growRingTop(text);
    else if (ring !== false)
      addToRing(text);
    cm.replaceRange("", from, to, "+delete");

    if (ring == "grow") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};
    else lastKill = null;
  }

  // Boundaries of various units

  function byChar(cm, pos, dir) {
    return cm.findPosH(pos, dir, "char", true);
  }

  function byWord(cm, pos, dir) {
    return cm.findPosH(pos, dir, "word", true);
  }

  function byLine(cm, pos, dir) {
    return cm.findPosV(pos, dir, "line", cm.doc.sel.goalColumn);
  }

  function byPage(cm, pos, dir) {
    return cm.findPosV(pos, dir, "page", cm.doc.sel.goalColumn);
  }

  function byParagraph(cm, pos, dir) {
    var no = pos.line, line = cm.getLine(no);
    var sawText = /\S/.test(dir < 0 ? line.slice(0, pos.ch) : line.slice(pos.ch));
    var fst = cm.firstLine(), lst = cm.lastLine();
    for (;;) {
      no += dir;
      if (no < fst || no > lst)
        return cm.clipPos(Pos(no - dir, dir < 0 ? 0 : null));
      line = cm.getLine(no);
      var hasText = /\S/.test(line);
      if (hasText) sawText = true;
      else if (sawText) return Pos(no, 0);
    }
  }

  function bySentence(cm, pos, dir) {
    var line = pos.line, ch = pos.ch;
    var text = cm.getLine(pos.line), sawWord = false;
    for (;;) {
      var next = text.charAt(ch + (dir < 0 ? -1 : 0));
      if (!next) { // End/beginning of line reached
        if (line == (dir < 0 ? cm.firstLine() : cm.lastLine())) return Pos(line, ch);
        text = cm.getLine(line + dir);
        if (!/\S/.test(text)) return Pos(line, ch);
        line += dir;
        ch = dir < 0 ? text.length : 0;
        continue;
      }
      if (sawWord && /[!?.]/.test(next)) return Pos(line, ch + (dir > 0 ? 1 : 0));
      if (!sawWord) sawWord = /\w/.test(next);
      ch += dir;
    }
  }

  function byExpr(cm, pos, dir) {
    var wrap;
    if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))
        && wrap.match && (wrap.forward ? 1 : -1) == dir)
      return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;

    for (var first = true;; first = false) {
      var token = cm.getTokenAt(pos);
      var after = Pos(pos.line, dir < 0 ? token.start : token.end);
      if (first && dir > 0 && token.end == pos.ch || !/\w/.test(token.string)) {
        var newPos = cm.findPosH(after, dir, "char");
        if (posEq(after, newPos)) return pos;
        else pos = newPos;
      } else {
        return after;
      }
    }
  }

  // Prefixes (only crudely supported)

  function getPrefix(cm, precise) {
    var digits = cm.state.emacsPrefix;
    if (!digits) return precise ? null : 1;
    clearPrefix(cm);
    return digits == "-" ? -1 : Number(digits);
  }

  function repeated(cmd) {
    var f = typeof cmd == "string" ? function(cm) { cm.execCommand(cmd); } : cmd;
    return function(cm) {
      var prefix = getPrefix(cm);
      f(cm);
      for (var i = 1; i < prefix; ++i) f(cm);
    };
  }

  function findEnd(cm, pos, by, dir) {
    var prefix = getPrefix(cm);
    if (prefix < 0) { dir = -dir; prefix = -prefix; }
    for (var i = 0; i < prefix; ++i) {
      var newPos = by(cm, pos, dir);
      if (posEq(newPos, pos)) break;
      pos = newPos;
    }
    return pos;
  }

  function move(by, dir) {
    var f = function(cm) {
      cm.extendSelection(findEnd(cm, cm.getCursor(), by, dir));
    };
    f.motion = true;
    return f;
  }

  function killTo(cm, by, dir, ring) {
    var selections = cm.listSelections(), cursor;
    var i = selections.length;
    while (i--) {
      cursor = selections[i].head;
      kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);
    }
  }

  function killRegion(cm, ring) {
    if (cm.somethingSelected()) {
      var selections = cm.listSelections(), selection;
      var i = selections.length;
      while (i--) {
        selection = selections[i];
        kill(cm, selection.anchor, selection.head, ring);
      }
      return true;
    }
  }

  function addPrefix(cm, digit) {
    if (cm.state.emacsPrefix) {
      if (digit != "-") cm.state.emacsPrefix += digit;
      return;
    }
    // Not active yet
    cm.state.emacsPrefix = digit;
    cm.on("keyHandled", maybeClearPrefix);
    cm.on("inputRead", maybeDuplicateInput);
  }

  var prefixPreservingKeys = {"Alt-G": true, "Ctrl-X": true, "Ctrl-Q": true, "Ctrl-U": true};

  function maybeClearPrefix(cm, arg) {
    if (!cm.state.emacsPrefixMap && !prefixPreservingKeys.hasOwnProperty(arg))
      clearPrefix(cm);
  }

  function clearPrefix(cm) {
    cm.state.emacsPrefix = null;
    cm.off("keyHandled", maybeClearPrefix);
    cm.off("inputRead", maybeDuplicateInput);
  }

  function maybeDuplicateInput(cm, event) {
    var dup = getPrefix(cm);
    if (dup > 1 && event.origin == "+input") {
      var one = event.text.join("\n"), txt = "";
      for (var i = 1; i < dup; ++i) txt += one;
      cm.replaceSelection(txt);
    }
  }

  function addPrefixMap(cm) {
    cm.state.emacsPrefixMap = true;
    cm.addKeyMap(prefixMap);
    cm.on("keyHandled", maybeRemovePrefixMap);
    cm.on("inputRead", maybeRemovePrefixMap);
  }

  function maybeRemovePrefixMap(cm, arg) {
    if (typeof arg == "string" && (/^\d$/.test(arg) || arg == "Ctrl-U")) return;
    cm.removeKeyMap(prefixMap);
    cm.state.emacsPrefixMap = false;
    cm.off("keyHandled", maybeRemovePrefixMap);
    cm.off("inputRead", maybeRemovePrefixMap);
  }

  // Utilities

  function setMark(cm) {
    cm.setCursor(cm.getCursor());
    cm.setExtending(!cm.getExtending());
    cm.on("change", function() { cm.setExtending(false); });
  }

  function clearMark(cm) {
    cm.setExtending(false);
    cm.setCursor(cm.getCursor());
  }

  function getInput(cm, msg, f) {
    if (cm.openDialog)
      cm.openDialog(msg + ": <input type=\"text\" style=\"width: 10em\"/>", f, {bottom: true});
    else
      f(prompt(msg, ""));
  }

  function operateOnWord(cm, op) {
    var start = cm.getCursor(), end = cm.findPosH(start, 1, "word");
    cm.replaceRange(op(cm.getRange(start, end)), start, end);
    cm.setCursor(end);
  }

  function toEnclosingExpr(cm) {
    var pos = cm.getCursor(), line = pos.line, ch = pos.ch;
    var stack = [];
    while (line >= cm.firstLine()) {
      var text = cm.getLine(line);
      for (var i = ch == null ? text.length : ch; i > 0;) {
        var ch = text.charAt(--i);
        if (ch == ")")
          stack.push("(");
        else if (ch == "]")
          stack.push("[");
        else if (ch == "}")
          stack.push("{");
        else if (/[\(\{\[]/.test(ch) && (!stack.length || stack.pop() != ch))
          return cm.extendSelection(Pos(line, i));
      }
      --line; ch = null;
    }
  }

  function quit(cm) {
    cm.execCommand("clearSearch");
    clearMark(cm);
  }

  CodeMirror.emacs = {kill: kill, killRegion: killRegion, repeated: repeated};

  // Actual keymap

  var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({
    "Ctrl-W": function(cm) {kill(cm, cm.getCursor("start"), cm.getCursor("end"), true);},
    "Ctrl-K": repeated(function(cm) {
      var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));
      var text = cm.getRange(start, end);
      if (!/\S/.test(text)) {
        text += "\n";
        end = Pos(start.line + 1, 0);
      }
      kill(cm, start, end, "grow", text);
    }),
    "Alt-W": function(cm) {
      addToRing(cm.getSelection());
      clearMark(cm);
    },
    "Ctrl-Y": function(cm) {
      var start = cm.getCursor();
      cm.replaceRange(getFromRing(getPrefix(cm)), start, start, "paste");
      cm.setSelection(start, cm.getCursor());
    },
    "Alt-Y": function(cm) {cm.replaceSelection(popFromRing(), "around", "paste");},

    "Ctrl-Space": setMark, "Ctrl-Shift-2": setMark,

    "Ctrl-F": move(byChar, 1), "Ctrl-B": move(byChar, -1),
    "Right": move(byChar, 1), "Left": move(byChar, -1),
    "Ctrl-D": function(cm) { killTo(cm, byChar, 1, false); },
    "Delete": function(cm) { killRegion(cm, false) || killTo(cm, byChar, 1, false); },
    "Ctrl-H": function(cm) { killTo(cm, byChar, -1, false); },
    "Backspace": function(cm) { killRegion(cm, false) || killTo(cm, byChar, -1, false); },

    "Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
    "Alt-Right": move(byWord, 1), "Alt-Left": move(byWord, -1),
    "Alt-D": function(cm) { killTo(cm, byWord, 1, "grow"); },
    "Alt-Backspace": function(cm) { killTo(cm, byWord, -1, "grow"); },

    "Ctrl-N": move(byLine, 1), "Ctrl-P": move(byLine, -1),
    "Down": move(byLine, 1), "Up": move(byLine, -1),
    "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
    "End": "goLineEnd", "Home": "goLineStart",

    "Alt-V": move(byPage, -1), "Ctrl-V": move(byPage, 1),
    "PageUp": move(byPage, -1), "PageDown": move(byPage, 1),

    "Ctrl-Up": move(byParagraph, -1), "Ctrl-Down": move(byParagraph, 1),

    "Alt-A": move(bySentence, -1), "Alt-E": move(bySentence, 1),
    "Alt-K": function(cm) { killTo(cm, bySentence, 1, "grow"); },

    "Ctrl-Alt-K": function(cm) { killTo(cm, byExpr, 1, "grow"); },
    "Ctrl-Alt-Backspace": function(cm) { killTo(cm, byExpr, -1, "grow"); },
    "Ctrl-Alt-F": move(byExpr, 1), "Ctrl-Alt-B": move(byExpr, -1, "grow"),

    "Shift-Ctrl-Alt-2": function(cm) {
      var cursor = cm.getCursor();
      cm.setSelection(findEnd(cm, cursor, byExpr, 1), cursor);
    },
    "Ctrl-Alt-T": function(cm) {
      var leftStart = byExpr(cm, cm.getCursor(), -1), leftEnd = byExpr(cm, leftStart, 1);
      var rightEnd = byExpr(cm, leftEnd, 1), rightStart = byExpr(cm, rightEnd, -1);
      cm.replaceRange(cm.getRange(rightStart, rightEnd) + cm.getRange(leftEnd, rightStart) +
                      cm.getRange(leftStart, leftEnd), leftStart, rightEnd);
    },
    "Ctrl-Alt-U": repeated(toEnclosingExpr),

    "Alt-Space": function(cm) {
      var pos = cm.getCursor(), from = pos.ch, to = pos.ch, text = cm.getLine(pos.line);
      while (from && /\s/.test(text.charAt(from - 1))) --from;
      while (to < text.length && /\s/.test(text.charAt(to))) ++to;
      cm.replaceRange(" ", Pos(pos.line, from), Pos(pos.line, to));
    },
    "Ctrl-O": repeated(function(cm) { cm.replaceSelection("\n", "start"); }),
    "Ctrl-T": repeated(function(cm) {
      cm.execCommand("transposeChars");
    }),

    "Alt-C": repeated(function(cm) {
      operateOnWord(cm, function(w) {
        var letter = w.search(/\w/);
        if (letter == -1) return w;
        return w.slice(0, letter) + w.charAt(letter).toUpperCase() + w.slice(letter + 1).toLowerCase();
      });
    }),
    "Alt-U": repeated(function(cm) {
      operateOnWord(cm, function(w) { return w.toUpperCase(); });
    }),
    "Alt-L": repeated(function(cm) {
      operateOnWord(cm, function(w) { return w.toLowerCase(); });
    }),

    "Alt-;": "toggleComment",

    "Ctrl-/": repeated("undo"), "Shift-Ctrl--": repeated("undo"),
    "Ctrl-Z": repeated("undo"), "Cmd-Z": repeated("undo"),
    "Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd",
    "Ctrl-S": "findPersistentNext", "Ctrl-R": "findPersistentPrev", "Ctrl-G": quit, "Shift-Alt-5": "replace",
    "Alt-/": "autocomplete",
    "Enter": "newlineAndIndent",
    "Ctrl-J": repeated(function(cm) { cm.replaceSelection("\n", "end"); }),
    "Tab": "indentAuto",

    "Alt-G G": function(cm) {
      var prefix = getPrefix(cm, true);
      if (prefix != null && prefix > 0) return cm.setCursor(prefix - 1);

      getInput(cm, "Goto line", function(str) {
        var num;
        if (str && !isNaN(num = Number(str)) && num == (num|0) && num > 0)
          cm.setCursor(num - 1);
      });
    },

    "Ctrl-X Tab": function(cm) {
      cm.indentSelection(getPrefix(cm, true) || cm.getOption("indentUnit"));
    },
    "Ctrl-X Ctrl-X": function(cm) {
      cm.setSelection(cm.getCursor("head"), cm.getCursor("anchor"));
    },
    "Ctrl-X Ctrl-S": "save",
    "Ctrl-X Ctrl-W": "save",
    "Ctrl-X S": "saveAll",
    "Ctrl-X F": "open",
    "Ctrl-X U": repeated("undo"),
    "Ctrl-X K": "close",
    "Ctrl-X Delete": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), "grow"); },
    "Ctrl-X H": "selectAll",

    "Ctrl-Q Tab": repeated("insertTab"),
    "Ctrl-U": addPrefixMap
  });

  var prefixMap = {"Ctrl-G": clearPrefix};
  function regPrefix(d) {
    prefixMap[d] = function(cm) { addPrefix(cm, d); };
    keyMap["Ctrl-" + d] = function(cm) { addPrefix(cm, d); };
    prefixPreservingKeys["Ctrl-" + d] = true;
  }
  for (var i = 0; i < 10; ++i) regPrefix(String(i));
  regPrefix("-");
});
editors/codemirror/keymap/vim.js000064400000633746152177723720013041 0ustar00// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Supported keybindings:
 *   Too many to list. Refer to defaultKeyMap below.
 *
 * Supported Ex commands:
 *   Refer to defaultExCommandMap below.
 *
 * Registers: unnamed, -, a-z, A-Z, 0-9
 *   (Does not respect the special case for number registers when delete
 *    operator is made with these commands: %, (, ),  , /, ?, n, N, {, } )
 *   TODO: Implement the remaining registers.
 *
 * Marks: a-z, A-Z, and 0-9
 *   TODO: Implement the remaining special marks. They have more complex
 *       behavior.
 *
 * Events:
 *  'vim-mode-change' - raised on the editor anytime the current mode changes,
 *                      Event object: {mode: "visual", subMode: "linewise"}
 *
 * Code structure:
 *  1. Default keymap
 *  2. Variable declarations and short basic helpers
 *  3. Instance (External API) implementation
 *  4. Internal state tracking objects (input state, counter) implementation
 *     and instantiation
 *  5. Key handler (the main command dispatcher) implementation
 *  6. Motion, operator, and action implementations
 *  7. Helper functions for the key handler, motions, operators, and actions
 *  8. Set up Vim to work as a keymap for CodeMirror.
 *  9. Ex command implementations.
 */

(function(mod) {
  if (typeof exports == "object" && typeof module == "object") // CommonJS
    mod(require("../lib/codemirror"), require("../addon/search/searchcursor"), require("../addon/dialog/dialog"), require("../addon/edit/matchbrackets.js"));
  else if (typeof define == "function" && define.amd) // AMD
    define(["../lib/codemirror", "../addon/search/searchcursor", "../addon/dialog/dialog", "../addon/edit/matchbrackets"], mod);
  else // Plain browser env
    mod(CodeMirror);
})(function(CodeMirror) {
  'use strict';

  var defaultKeymap = [
    // Key to key mapping. This goes first to make it possible to override
    // existing mappings.
    { keys: '<Left>', type: 'keyToKey', toKeys: 'h' },
    { keys: '<Right>', type: 'keyToKey', toKeys: 'l' },
    { keys: '<Up>', type: 'keyToKey', toKeys: 'k' },
    { keys: '<Down>', type: 'keyToKey', toKeys: 'j' },
    { keys: '<Space>', type: 'keyToKey', toKeys: 'l' },
    { keys: '<BS>', type: 'keyToKey', toKeys: 'h', context: 'normal'},
    { keys: '<C-Space>', type: 'keyToKey', toKeys: 'W' },
    { keys: '<C-BS>', type: 'keyToKey', toKeys: 'B', context: 'normal' },
    { keys: '<S-Space>', type: 'keyToKey', toKeys: 'w' },
    { keys: '<S-BS>', type: 'keyToKey', toKeys: 'b', context: 'normal' },
    { keys: '<C-n>', type: 'keyToKey', toKeys: 'j' },
    { keys: '<C-p>', type: 'keyToKey', toKeys: 'k' },
    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>' },
    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>' },
    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
    { keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' },
    { keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'},
    { keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' },
    { keys: 'S', type: 'keyToKey', toKeys: 'VdO', context: 'visual' },
    { keys: '<Home>', type: 'keyToKey', toKeys: '0' },
    { keys: '<End>', type: 'keyToKey', toKeys: '$' },
    { keys: '<PageUp>', type: 'keyToKey', toKeys: '<C-b>' },
    { keys: '<PageDown>', type: 'keyToKey', toKeys: '<C-f>' },
    { keys: '<CR>', type: 'keyToKey', toKeys: 'j^', context: 'normal' },
    { keys: '<Ins>', type: 'action', action: 'toggleOverwrite', context: 'insert' },
    // Motions
    { keys: 'H', type: 'motion', motion: 'moveToTopLine', motionArgs: { linewise: true, toJumplist: true }},
    { keys: 'M', type: 'motion', motion: 'moveToMiddleLine', motionArgs: { linewise: true, toJumplist: true }},
    { keys: 'L', type: 'motion', motion: 'moveToBottomLine', motionArgs: { linewise: true, toJumplist: true }},
    { keys: 'h', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: false }},
    { keys: 'l', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: true }},
    { keys: 'j', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, linewise: true }},
    { keys: 'k', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, linewise: true }},
    { keys: 'gj', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: true }},
    { keys: 'gk', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: false }},
    { keys: 'w', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false }},
    { keys: 'W', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false, bigWord: true }},
    { keys: 'e', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, inclusive: true }},
    { keys: 'E', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, bigWord: true, inclusive: true }},
    { keys: 'b', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }},
    { keys: 'B', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false, bigWord: true }},
    { keys: 'ge', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, inclusive: true }},
    { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
    { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
    { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
    { keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},
    { keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},
    { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
    { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
    { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
    { keys: '<C-u>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: false, explicitRepeat: true }},
    { keys: 'gg', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true, toJumplist: true }},
    { keys: 'G', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: true, explicitRepeat: true, linewise: true, toJumplist: true }},
    { keys: '0', type: 'motion', motion: 'moveToStartOfLine' },
    { keys: '^', type: 'motion', motion: 'moveToFirstNonWhiteSpaceCharacter' },
    { keys: '+', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true }},
    { keys: '-', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, toFirstChar:true }},
    { keys: '_', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true, repeatOffset:-1 }},
    { keys: '$', type: 'motion', motion: 'moveToEol', motionArgs: { inclusive: true }},
    { keys: '%', type: 'motion', motion: 'moveToMatchedSymbol', motionArgs: { inclusive: true, toJumplist: true }},
    { keys: 'f<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: true , inclusive: true }},
    { keys: 'F<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: false }},
    { keys: 't<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: true, inclusive: true }},
    { keys: 'T<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: false }},
    { keys: ';', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: true }},
    { keys: ',', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: false }},
    { keys: '\'<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true, linewise: true}},
    { keys: '`<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true}},
    { keys: ']`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true } },
    { keys: '[`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false } },
    { keys: ']\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true, linewise: true } },
    { keys: '[\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false, linewise: true } },
    // the next two aren't motions but must come before more general motion declarations
    { keys: ']p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true, matchIndent: true}},
    { keys: '[p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true, matchIndent: true}},
    { keys: ']<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: true, toJumplist: true}},
    { keys: '[<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: false, toJumplist: true}},
    { keys: '|', type: 'motion', motion: 'moveToColumn'},
    { keys: 'o', type: 'motion', motion: 'moveToOtherHighlightedEnd', context:'visual'},
    { keys: 'O', type: 'motion', motion: 'moveToOtherHighlightedEnd', motionArgs: {sameLine: true}, context:'visual'},
    // Operators
    { keys: 'd', type: 'operator', operator: 'delete' },
    { keys: 'y', type: 'operator', operator: 'yank' },
    { keys: 'c', type: 'operator', operator: 'change' },
    { keys: '>', type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }},
    { keys: '<', type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }},
    { keys: 'g~', type: 'operator', operator: 'changeCase' },
    { keys: 'gu', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, isEdit: true },
    { keys: 'gU', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, isEdit: true },
    { keys: 'n', type: 'motion', motion: 'findNext', motionArgs: { forward: true, toJumplist: true }},
    { keys: 'N', type: 'motion', motion: 'findNext', motionArgs: { forward: false, toJumplist: true }},
    // Operator-Motion dual commands
    { keys: 'x', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorMotionArgs: { visualLine: false }},
    { keys: 'X', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }},
    { keys: 'D', type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},
    { keys: 'D', type: 'operator', operator: 'delete', operatorArgs: { linewise: true }, context: 'visual'},
    { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'expandToLine', motionArgs: { linewise: true }, context: 'normal'},
    { keys: 'Y', type: 'operator', operator: 'yank', operatorArgs: { linewise: true }, context: 'visual'},
    { keys: 'C', type: 'operatorMotion', operator: 'change', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},
    { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'},
    { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'},
    { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'},
    { keys: '<C-w>', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' },
    // Actions
    { keys: '<C-i>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: true }},
    { keys: '<C-o>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: false }},
    { keys: '<C-e>', type: 'action', action: 'scroll', actionArgs: { forward: true, linewise: true }},
    { keys: '<C-y>', type: 'action', action: 'scroll', actionArgs: { forward: false, linewise: true }},
    { keys: 'a', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'charAfter' }, context: 'normal' },
    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'eol' }, context: 'normal' },
    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'endOfSelectedArea' }, context: 'visual' },
    { keys: 'i', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'inplace' }, context: 'normal' },
    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'firstNonBlank'}, context: 'normal' },
    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'startOfSelectedArea' }, context: 'visual' },
    { keys: 'o', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: true }, context: 'normal' },
    { keys: 'O', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: false }, context: 'normal' },
    { keys: 'v', type: 'action', action: 'toggleVisualMode' },
    { keys: 'V', type: 'action', action: 'toggleVisualMode', actionArgs: { linewise: true }},
    { keys: '<C-v>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},
    { keys: '<C-q>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},
    { keys: 'gv', type: 'action', action: 'reselectLastSelection' },
    { keys: 'J', type: 'action', action: 'joinLines', isEdit: true },
    { keys: 'p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true }},
    { keys: 'P', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true }},
    { keys: 'r<character>', type: 'action', action: 'replace', isEdit: true },
    { keys: '@<character>', type: 'action', action: 'replayMacro' },
    { keys: 'q<character>', type: 'action', action: 'enterMacroRecordMode' },
    // Handle Replace-mode as a special case of insert mode.
    { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }},
    { keys: 'u', type: 'action', action: 'undo', context: 'normal' },
    { keys: 'u', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, context: 'visual', isEdit: true },
    { keys: 'U', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, context: 'visual', isEdit: true },
    { keys: '<C-r>', type: 'action', action: 'redo' },
    { keys: 'm<character>', type: 'action', action: 'setMark' },
    { keys: '"<character>', type: 'action', action: 'setRegister' },
    { keys: 'zz', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }},
    { keys: 'z.', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },
    { keys: 'zt', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }},
    { keys: 'z<CR>', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },
    { keys: 'z-', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }},
    { keys: 'zb', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },
    { keys: '.', type: 'action', action: 'repeatLastEdit' },
    { keys: '<C-a>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: true, backtrack: false}},
    { keys: '<C-x>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: false, backtrack: false}},
    { keys: '<C-t>', type: 'action', action: 'indent', actionArgs: { indentRight: true }, context: 'insert' },
    { keys: '<C-d>', type: 'action', action: 'indent', actionArgs: { indentRight: false }, context: 'insert' },
    // Text object motions
    { keys: 'a<character>', type: 'motion', motion: 'textObjectManipulation' },
    { keys: 'i<character>', type: 'motion', motion: 'textObjectManipulation', motionArgs: { textObjectInner: true }},
    // Search
    { keys: '/', type: 'search', searchArgs: { forward: true, querySrc: 'prompt', toJumplist: true }},
    { keys: '?', type: 'search', searchArgs: { forward: false, querySrc: 'prompt', toJumplist: true }},
    { keys: '*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},
    { keys: '#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},
    { keys: 'g*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', toJumplist: true }},
    { keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }},
    // Ex command
    { keys: ':', type: 'ex' }
  ];

  /**
   * Ex commands
   * Care must be taken when adding to the default Ex command map. For any
   * pair of commands that have a shared prefix, at least one of their
   * shortNames must not match the prefix of the other command.
   */
  var defaultExCommandMap = [
    { name: 'colorscheme', shortName: 'colo' },
    { name: 'map' },
    { name: 'imap', shortName: 'im' },
    { name: 'nmap', shortName: 'nm' },
    { name: 'vmap', shortName: 'vm' },
    { name: 'unmap' },
    { name: 'write', shortName: 'w' },
    { name: 'undo', shortName: 'u' },
    { name: 'redo', shortName: 'red' },
    { name: 'set', shortName: 'se' },
    { name: 'set', shortName: 'se' },
    { name: 'setlocal', shortName: 'setl' },
    { name: 'setglobal', shortName: 'setg' },
    { name: 'sort', shortName: 'sor' },
    { name: 'substitute', shortName: 's', possiblyAsync: true },
    { name: 'nohlsearch', shortName: 'noh' },
    { name: 'yank', shortName: 'y' },
    { name: 'delmarks', shortName: 'delm' },
    { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
    { name: 'global', shortName: 'g' }
  ];

  var Pos = CodeMirror.Pos;

  var Vim = function() {
    function enterVimMode(cm) {
      cm.setOption('disableInput', true);
      cm.setOption('showCursorWhenSelecting', false);
      CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
      cm.on('cursorActivity', onCursorActivity);
      maybeInitVimState(cm);
      CodeMirror.on(cm.getInputField(), 'paste', getOnPasteFn(cm));
    }

    function leaveVimMode(cm) {
      cm.setOption('disableInput', false);
      cm.off('cursorActivity', onCursorActivity);
      CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));
      cm.state.vim = null;
    }

    function detachVimMap(cm, next) {
      if (this == CodeMirror.keyMap.vim) {
        CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
        if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
          disableFatCursorMark(cm);
          cm.getInputField().style.caretColor = "";
        }
      }

      if (!next || next.attach != attachVimMap)
        leaveVimMode(cm);
    }
    function attachVimMap(cm, prev) {
      if (this == CodeMirror.keyMap.vim) {
        CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
        if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
          enableFatCursorMark(cm);
          cm.getInputField().style.caretColor = "transparent";
        }
      }

      if (!prev || prev.attach != attachVimMap)
        enterVimMode(cm);
    }

    function fatCursorMarks(cm) {
      var ranges = cm.listSelections(), result = []
      for (var i = 0; i < ranges.length; i++) {
        var range = ranges[i]
        if (range.empty()) {
          if (range.anchor.ch < cm.getLine(range.anchor.line).length) {
            result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1),
                                    {className: "cm-fat-cursor-mark"}))
          } else {
            var widget = document.createElement("span")
            widget.textContent = "\u00a0"
            widget.className = "cm-fat-cursor-mark"
            result.push(cm.setBookmark(range.anchor, {widget: widget}))
          }
        }
      }
      return result
    }

    function updateFatCursorMark(cm) {
      var marks = cm.state.fatCursorMarks
      if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
      cm.state.fatCursorMarks = fatCursorMarks(cm)
    }

    function enableFatCursorMark(cm) {
      cm.state.fatCursorMarks = fatCursorMarks(cm)
      cm.on("cursorActivity", updateFatCursorMark)
    }

    function disableFatCursorMark(cm) {
      var marks = cm.state.fatCursorMarks
      if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
      cm.state.fatCursorMarks = null
      cm.off("cursorActivity", updateFatCursorMark)
    }

    // Deprecated, simply setting the keymap works again.
    CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
      if (val && cm.getOption("keyMap") != "vim")
        cm.setOption("keyMap", "vim");
      else if (!val && prev != CodeMirror.Init && /^vim/.test(cm.getOption("keyMap")))
        cm.setOption("keyMap", "default");
    });

    function cmKey(key, cm) {
      if (!cm) { return undefined; }
      if (this[key]) { return this[key]; }
      var vimKey = cmKeyToVimKey(key);
      if (!vimKey) {
        return false;
      }
      var cmd = CodeMirror.Vim.findKey(cm, vimKey);
      if (typeof cmd == 'function') {
        CodeMirror.signal(cm, 'vim-keypress', vimKey);
      }
      return cmd;
    }

    var modifiers = {'Shift': 'S', 'Ctrl': 'C', 'Alt': 'A', 'Cmd': 'D', 'Mod': 'A'};
    var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del',Insert:'Ins'};
    function cmKeyToVimKey(key) {
      if (key.charAt(0) == '\'') {
        // Keypress character binding of format "'a'"
        return key.charAt(1);
      }
      var pieces = key.split(/-(?!$)/);
      var lastPiece = pieces[pieces.length - 1];
      if (pieces.length == 1 && pieces[0].length == 1) {
        // No-modifier bindings use literal character bindings above. Skip.
        return false;
      } else if (pieces.length == 2 && pieces[0] == 'Shift' && lastPiece.length == 1) {
        // Ignore Shift+char bindings as they should be handled by literal character.
        return false;
      }
      var hasCharacter = false;
      for (var i = 0; i < pieces.length; i++) {
        var piece = pieces[i];
        if (piece in modifiers) { pieces[i] = modifiers[piece]; }
        else { hasCharacter = true; }
        if (piece in specialKeys) { pieces[i] = specialKeys[piece]; }
      }
      if (!hasCharacter) {
        // Vim does not support modifier only keys.
        return false;
      }
      // TODO: Current bindings expect the character to be lower case, but
      // it looks like vim key notation uses upper case.
      if (isUpperCase(lastPiece)) {
        pieces[pieces.length - 1] = lastPiece.toLowerCase();
      }
      return '<' + pieces.join('-') + '>';
    }

    function getOnPasteFn(cm) {
      var vim = cm.state.vim;
      if (!vim.onPasteFn) {
        vim.onPasteFn = function() {
          if (!vim.insertMode) {
            cm.setCursor(offsetCursor(cm.getCursor(), 0, 1));
            actions.enterInsertMode(cm, {}, vim);
          }
        };
      }
      return vim.onPasteFn;
    }

    var numberRegex = /[\d]/;
    var wordCharTest = [CodeMirror.isWordChar, function(ch) {
      return ch && !CodeMirror.isWordChar(ch) && !/\s/.test(ch);
    }], bigWordCharTest = [function(ch) {
      return /\S/.test(ch);
    }];
    function makeKeyRange(start, size) {
      var keys = [];
      for (var i = start; i < start + size; i++) {
        keys.push(String.fromCharCode(i));
      }
      return keys;
    }
    var upperCaseAlphabet = makeKeyRange(65, 26);
    var lowerCaseAlphabet = makeKeyRange(97, 26);
    var numbers = makeKeyRange(48, 10);
    var validMarks = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['<', '>']);
    var validRegisters = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['-', '"', '.', ':', '/']);

    function isLine(cm, line) {
      return line >= cm.firstLine() && line <= cm.lastLine();
    }
    function isLowerCase(k) {
      return (/^[a-z]$/).test(k);
    }
    function isMatchableSymbol(k) {
      return '()[]{}'.indexOf(k) != -1;
    }
    function isNumber(k) {
      return numberRegex.test(k);
    }
    function isUpperCase(k) {
      return (/^[A-Z]$/).test(k);
    }
    function isWhiteSpaceString(k) {
      return (/^\s*$/).test(k);
    }
    function isEndOfSentenceSymbol(k) {
      return '.?!'.indexOf(k) != -1;
    }
    function inArray(val, arr) {
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] == val) {
          return true;
        }
      }
      return false;
    }

    var options = {};
    function defineOption(name, defaultValue, type, aliases, callback) {
      if (defaultValue === undefined && !callback) {
        throw Error('defaultValue is required unless callback is provided');
      }
      if (!type) { type = 'string'; }
      options[name] = {
        type: type,
        defaultValue: defaultValue,
        callback: callback
      };
      if (aliases) {
        for (var i = 0; i < aliases.length; i++) {
          options[aliases[i]] = options[name];
        }
      }
      if (defaultValue) {
        setOption(name, defaultValue);
      }
    }

    function setOption(name, value, cm, cfg) {
      var option = options[name];
      cfg = cfg || {};
      var scope = cfg.scope;
      if (!option) {
        return new Error('Unknown option: ' + name);
      }
      if (option.type == 'boolean') {
        if (value && value !== true) {
          return new Error('Invalid argument: ' + name + '=' + value);
        } else if (value !== false) {
          // Boolean options are set to true if value is not defined.
          value = true;
        }
      }
      if (option.callback) {
        if (scope !== 'local') {
          option.callback(value, undefined);
        }
        if (scope !== 'global' && cm) {
          option.callback(value, cm);
        }
      } else {
        if (scope !== 'local') {
          option.value = option.type == 'boolean' ? !!value : value;
        }
        if (scope !== 'global' && cm) {
          cm.state.vim.options[name] = {value: value};
        }
      }
    }

    function getOption(name, cm, cfg) {
      var option = options[name];
      cfg = cfg || {};
      var scope = cfg.scope;
      if (!option) {
        return new Error('Unknown option: ' + name);
      }
      if (option.callback) {
        var local = cm && option.callback(undefined, cm);
        if (scope !== 'global' && local !== undefined) {
          return local;
        }
        if (scope !== 'local') {
          return option.callback();
        }
        return;
      } else {
        var local = (scope !== 'global') && (cm && cm.state.vim.options[name]);
        return (local || (scope !== 'local') && option || {}).value;
      }
    }

    defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) {
      // Option is local. Do nothing for global.
      if (cm === undefined) {
        return;
      }
      // The 'filetype' option proxies to the CodeMirror 'mode' option.
      if (name === undefined) {
        var mode = cm.getOption('mode');
        return mode == 'null' ? '' : mode;
      } else {
        var mode = name == '' ? 'null' : name;
        cm.setOption('mode', mode);
      }
    });

    var createCircularJumpList = function() {
      var size = 100;
      var pointer = -1;
      var head = 0;
      var tail = 0;
      var buffer = new Array(size);
      function add(cm, oldCur, newCur) {
        var current = pointer % size;
        var curMark = buffer[current];
        function useNextSlot(cursor) {
          var next = ++pointer % size;
          var trashMark = buffer[next];
          if (trashMark) {
            trashMark.clear();
          }
          buffer[next] = cm.setBookmark(cursor);
        }
        if (curMark) {
          var markPos = curMark.find();
          // avoid recording redundant cursor position
          if (markPos && !cursorEqual(markPos, oldCur)) {
            useNextSlot(oldCur);
          }
        } else {
          useNextSlot(oldCur);
        }
        useNextSlot(newCur);
        head = pointer;
        tail = pointer - size + 1;
        if (tail < 0) {
          tail = 0;
        }
      }
      function move(cm, offset) {
        pointer += offset;
        if (pointer > head) {
          pointer = head;
        } else if (pointer < tail) {
          pointer = tail;
        }
        var mark = buffer[(size + pointer) % size];
        // skip marks that are temporarily removed from text buffer
        if (mark && !mark.find()) {
          var inc = offset > 0 ? 1 : -1;
          var newCur;
          var oldCur = cm.getCursor();
          do {
            pointer += inc;
            mark = buffer[(size + pointer) % size];
            // skip marks that are the same as current position
            if (mark &&
                (newCur = mark.find()) &&
                !cursorEqual(oldCur, newCur)) {
              break;
            }
          } while (pointer < head && pointer > tail);
        }
        return mark;
      }
      return {
        cachedCursor: undefined, //used for # and * jumps
        add: add,
        move: move
      };
    };

    // Returns an object to track the changes associated insert mode.  It
    // clones the object that is passed in, or creates an empty object one if
    // none is provided.
    var createInsertModeChanges = function(c) {
      if (c) {
        // Copy construction
        return {
          changes: c.changes,
          expectCursorActivityForChange: c.expectCursorActivityForChange
        };
      }
      return {
        // Change list
        changes: [],
        // Set to true on change, false on cursorActivity.
        expectCursorActivityForChange: false
      };
    };

    function MacroModeState() {
      this.latestRegister = undefined;
      this.isPlaying = false;
      this.isRecording = false;
      this.replaySearchQueries = [];
      this.onRecordingDone = undefined;
      this.lastInsertModeChanges = createInsertModeChanges();
    }
    MacroModeState.prototype = {
      exitMacroRecordMode: function() {
        var macroModeState = vimGlobalState.macroModeState;
        if (macroModeState.onRecordingDone) {
          macroModeState.onRecordingDone(); // close dialog
        }
        macroModeState.onRecordingDone = undefined;
        macroModeState.isRecording = false;
      },
      enterMacroRecordMode: function(cm, registerName) {
        var register =
            vimGlobalState.registerController.getRegister(registerName);
        if (register) {
          register.clear();
          this.latestRegister = registerName;
          if (cm.openDialog) {
            this.onRecordingDone = cm.openDialog(
                '(recording)['+registerName+']', null, {bottom:true});
          }
          this.isRecording = true;
        }
      }
    };

    function maybeInitVimState(cm) {
      if (!cm.state.vim) {
        // Store instance state in the CodeMirror object.
        cm.state.vim = {
          inputState: new InputState(),
          // Vim's input state that triggered the last edit, used to repeat
          // motions and operators with '.'.
          lastEditInputState: undefined,
          // Vim's action command before the last edit, used to repeat actions
          // with '.' and insert mode repeat.
          lastEditActionCommand: undefined,
          // When using jk for navigation, if you move from a longer line to a
          // shorter line, the cursor may clip to the end of the shorter line.
          // If j is pressed again and cursor goes to the next line, the
          // cursor should go back to its horizontal position on the longer
          // line if it can. This is to keep track of the horizontal position.
          lastHPos: -1,
          // Doing the same with screen-position for gj/gk
          lastHSPos: -1,
          // The last motion command run. Cleared if a non-motion command gets
          // executed in between.
          lastMotion: null,
          marks: {},
          // Mark for rendering fake cursor for visual mode.
          fakeCursor: null,
          insertMode: false,
          // Repeat count for changes made in insert mode, triggered by key
          // sequences like 3,i. Only exists when insertMode is true.
          insertModeRepeat: undefined,
          visualMode: false,
          // If we are in visual line mode. No effect if visualMode is false.
          visualLine: false,
          visualBlock: false,
          lastSelection: null,
          lastPastedText: null,
          sel: {},
          // Buffer-local/window-local values of vim options.
          options: {}
        };
      }
      return cm.state.vim;
    }
    var vimGlobalState;
    function resetVimGlobalState() {
      vimGlobalState = {
        // The current search query.
        searchQuery: null,
        // Whether we are searching backwards.
        searchIsReversed: false,
        // Replace part of the last substituted pattern
        lastSubstituteReplacePart: undefined,
        jumpList: createCircularJumpList(),
        macroModeState: new MacroModeState,
        // Recording latest f, t, F or T motion command.
        lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},
        registerController: new RegisterController({}),
        // search history buffer
        searchHistoryController: new HistoryController(),
        // ex Command history buffer
        exCommandHistoryController : new HistoryController()
      };
      for (var optionName in options) {
        var option = options[optionName];
        option.value = option.defaultValue;
      }
    }

    var lastInsertModeKeyTimer;
    var vimApi= {
      buildKeyMap: function() {
        // TODO: Convert keymap into dictionary format for fast lookup.
      },
      // Testing hook, though it might be useful to expose the register
      // controller anyways.
      getRegisterController: function() {
        return vimGlobalState.registerController;
      },
      // Testing hook.
      resetVimGlobalState_: resetVimGlobalState,

      // Testing hook.
      getVimGlobalState_: function() {
        return vimGlobalState;
      },

      // Testing hook.
      maybeInitVimState_: maybeInitVimState,

      suppressErrorLogging: false,

      InsertModeKey: InsertModeKey,
      map: function(lhs, rhs, ctx) {
        // Add user defined key bindings.
        exCommandDispatcher.map(lhs, rhs, ctx);
      },
      unmap: function(lhs, ctx) {
        exCommandDispatcher.unmap(lhs, ctx);
      },
      // TODO: Expose setOption and getOption as instance methods. Need to decide how to namespace
      // them, or somehow make them work with the existing CodeMirror setOption/getOption API.
      setOption: setOption,
      getOption: getOption,
      defineOption: defineOption,
      defineEx: function(name, prefix, func){
        if (!prefix) {
          prefix = name;
        } else if (name.indexOf(prefix) !== 0) {
          throw new Error('(Vim.defineEx) "'+prefix+'" is not a prefix of "'+name+'", command not registered');
        }
        exCommands[name]=func;
        exCommandDispatcher.commandMap_[prefix]={name:name, shortName:prefix, type:'api'};
      },
      handleKey: function (cm, key, origin) {
        var command = this.findKey(cm, key, origin);
        if (typeof command === 'function') {
          return command();
        }
      },
      /**
       * This is the outermost function called by CodeMirror, after keys have
       * been mapped to their Vim equivalents.
       *
       * Finds a command based on the key (and cached keys if there is a
       * multi-key sequence). Returns `undefined` if no key is matched, a noop
       * function if a partial match is found (multi-key), and a function to
       * execute the bound command if a a key is matched. The function always
       * returns true.
       */
      findKey: function(cm, key, origin) {
        var vim = maybeInitVimState(cm);
        function handleMacroRecording() {
          var macroModeState = vimGlobalState.macroModeState;
          if (macroModeState.isRecording) {
            if (key == 'q') {
              macroModeState.exitMacroRecordMode();
              clearInputState(cm);
              return true;
            }
            if (origin != 'mapping') {
              logKey(macroModeState, key);
            }
          }
        }
        function handleEsc() {
          if (key == '<Esc>') {
            // Clear input state and get back to normal mode.
            clearInputState(cm);
            if (vim.visualMode) {
              exitVisualMode(cm);
            } else if (vim.insertMode) {
              exitInsertMode(cm);
            }
            return true;
          }
        }
        function doKeyToKey(keys) {
          // TODO: prevent infinite recursion.
          var match;
          while (keys) {
            // Pull off one command key, which is either a single character
            // or a special sequence wrapped in '<' and '>', e.g. '<Space>'.
            match = (/<\w+-.+?>|<\w+>|./).exec(keys);
            key = match[0];
            keys = keys.substring(match.index + key.length);
            CodeMirror.Vim.handleKey(cm, key, 'mapping');
          }
        }

        function handleKeyInsertMode() {
          if (handleEsc()) { return true; }
          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
          var keysAreChars = key.length == 1;
          var match = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');
          // Need to check all key substrings in insert mode.
          while (keys.length > 1 && match.type != 'full') {
            var keys = vim.inputState.keyBuffer = keys.slice(1);
            var thisMatch = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');
            if (thisMatch.type != 'none') { match = thisMatch; }
          }
          if (match.type == 'none') { clearInputState(cm); return false; }
          else if (match.type == 'partial') {
            if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }
            lastInsertModeKeyTimer = window.setTimeout(
              function() { if (vim.insertMode && vim.inputState.keyBuffer) { clearInputState(cm); } },
              getOption('insertModeEscKeysTimeout'));
            return !keysAreChars;
          }

          if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }
          if (keysAreChars) {
            var selections = cm.listSelections();
            for (var i = 0; i < selections.length; i++) {
              var here = selections[i].head;
              cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input');
            }
            vimGlobalState.macroModeState.lastInsertModeChanges.changes.pop();
          }
          clearInputState(cm);
          return match.command;
        }

        function handleKeyNonInsertMode() {
          if (handleMacroRecording() || handleEsc()) { return true; }

          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
          if (/^[1-9]\d*$/.test(keys)) { return true; }

          var keysMatcher = /^(\d*)(.*)$/.exec(keys);
          if (!keysMatcher) { clearInputState(cm); return false; }
          var context = vim.visualMode ? 'visual' :
                                         'normal';
          var match = commandDispatcher.matchCommand(keysMatcher[2] || keysMatcher[1], defaultKeymap, vim.inputState, context);
          if (match.type == 'none') { clearInputState(cm); return false; }
          else if (match.type == 'partial') { return true; }

          vim.inputState.keyBuffer = '';
          var keysMatcher = /^(\d*)(.*)$/.exec(keys);
          if (keysMatcher[1] && keysMatcher[1] != '0') {
            vim.inputState.pushRepeatDigit(keysMatcher[1]);
          }
          return match.command;
        }

        var command;
        if (vim.insertMode) { command = handleKeyInsertMode(); }
        else { command = handleKeyNonInsertMode(); }
        if (command === false) {
          return !vim.insertMode && key.length === 1 ? function() { return true; } : undefined;
        } else if (command === true) {
          // TODO: Look into using CodeMirror's multi-key handling.
          // Return no-op since we are caching the key. Counts as handled, but
          // don't want act on it just yet.
          return function() { return true; };
        } else {
          return function() {
            return cm.operation(function() {
              cm.curOp.isVimOp = true;
              try {
                if (command.type == 'keyToKey') {
                  doKeyToKey(command.toKeys);
                } else {
                  commandDispatcher.processCommand(cm, vim, command);
                }
              } catch (e) {
                // clear VIM state in case it's in a bad state.
                cm.state.vim = undefined;
                maybeInitVimState(cm);
                if (!CodeMirror.Vim.suppressErrorLogging) {
                  console['log'](e);
                }
                throw e;
              }
              return true;
            });
          };
        }
      },
      handleEx: function(cm, input) {
        exCommandDispatcher.processCommand(cm, input);
      },

      defineMotion: defineMotion,
      defineAction: defineAction,
      defineOperator: defineOperator,
      mapCommand: mapCommand,
      _mapCommand: _mapCommand,

      defineRegister: defineRegister,

      exitVisualMode: exitVisualMode,
      exitInsertMode: exitInsertMode
    };

    // Represents the current input state.
    function InputState() {
      this.prefixRepeat = [];
      this.motionRepeat = [];

      this.operator = null;
      this.operatorArgs = null;
      this.motion = null;
      this.motionArgs = null;
      this.keyBuffer = []; // For matching multi-key commands.
      this.registerName = null; // Defaults to the unnamed register.
    }
    InputState.prototype.pushRepeatDigit = function(n) {
      if (!this.operator) {
        this.prefixRepeat = this.prefixRepeat.concat(n);
      } else {
        this.motionRepeat = this.motionRepeat.concat(n);
      }
    };
    InputState.prototype.getRepeat = function() {
      var repeat = 0;
      if (this.prefixRepeat.length > 0 || this.motionRepeat.length > 0) {
        repeat = 1;
        if (this.prefixRepeat.length > 0) {
          repeat *= parseInt(this.prefixRepeat.join(''), 10);
        }
        if (this.motionRepeat.length > 0) {
          repeat *= parseInt(this.motionRepeat.join(''), 10);
        }
      }
      return repeat;
    };

    function clearInputState(cm, reason) {
      cm.state.vim.inputState = new InputState();
      CodeMirror.signal(cm, 'vim-command-done', reason);
    }

    /*
     * Register stores information about copy and paste registers.  Besides
     * text, a register must store whether it is linewise (i.e., when it is
     * pasted, should it insert itself into a new line, or should the text be
     * inserted at the cursor position.)
     */
    function Register(text, linewise, blockwise) {
      this.clear();
      this.keyBuffer = [text || ''];
      this.insertModeChanges = [];
      this.searchQueries = [];
      this.linewise = !!linewise;
      this.blockwise = !!blockwise;
    }
    Register.prototype = {
      setText: function(text, linewise, blockwise) {
        this.keyBuffer = [text || ''];
        this.linewise = !!linewise;
        this.blockwise = !!blockwise;
      },
      pushText: function(text, linewise) {
        // if this register has ever been set to linewise, use linewise.
        if (linewise) {
          if (!this.linewise) {
            this.keyBuffer.push('\n');
          }
          this.linewise = true;
        }
        this.keyBuffer.push(text);
      },
      pushInsertModeChanges: function(changes) {
        this.insertModeChanges.push(createInsertModeChanges(changes));
      },
      pushSearchQuery: function(query) {
        this.searchQueries.push(query);
      },
      clear: function() {
        this.keyBuffer = [];
        this.insertModeChanges = [];
        this.searchQueries = [];
        this.linewise = false;
      },
      toString: function() {
        return this.keyBuffer.join('');
      }
    };

    /**
     * Defines an external register.
     *
     * The name should be a single character that will be used to reference the register.
     * The register should support setText, pushText, clear, and toString(). See Register
     * for a reference implementation.
     */
    function defineRegister(name, register) {
      var registers = vimGlobalState.registerController.registers;
      if (!name || name.length != 1) {
        throw Error('Register name must be 1 character');
      }
      if (registers[name]) {
        throw Error('Register already defined ' + name);
      }
      registers[name] = register;
      validRegisters.push(name);
    }

    /*
     * vim registers allow you to keep many independent copy and paste buffers.
     * See http://usevim.com/2012/04/13/registers/ for an introduction.
     *
     * RegisterController keeps the state of all the registers.  An initial
     * state may be passed in.  The unnamed register '"' will always be
     * overridden.
     */
    function RegisterController(registers) {
      this.registers = registers;
      this.unnamedRegister = registers['"'] = new Register();
      registers['.'] = new Register();
      registers[':'] = new Register();
      registers['/'] = new Register();
    }
    RegisterController.prototype = {
      pushText: function(registerName, operator, text, linewise, blockwise) {
        if (linewise && text.charAt(text.length - 1) !== '\n'){
          text += '\n';
        }
        // Lowercase and uppercase registers refer to the same register.
        // Uppercase just means append.
        var register = this.isValidRegister(registerName) ?
            this.getRegister(registerName) : null;
        // if no register/an invalid register was specified, things go to the
        // default registers
        if (!register) {
          switch (operator) {
            case 'yank':
              // The 0 register contains the text from the most recent yank.
              this.registers['0'] = new Register(text, linewise, blockwise);
              break;
            case 'delete':
            case 'change':
              if (text.indexOf('\n') == -1) {
                // Delete less than 1 line. Update the small delete register.
                this.registers['-'] = new Register(text, linewise);
              } else {
                // Shift down the contents of the numbered registers and put the
                // deleted text into register 1.
                this.shiftNumericRegisters_();
                this.registers['1'] = new Register(text, linewise);
              }
              break;
          }
          // Make sure the unnamed register is set to what just happened
          this.unnamedRegister.setText(text, linewise, blockwise);
          return;
        }

        // If we've gotten to this point, we've actually specified a register
        var append = isUpperCase(registerName);
        if (append) {
          register.pushText(text, linewise);
        } else {
          register.setText(text, linewise, blockwise);
        }
        // The unnamed register always has the same value as the last used
        // register.
        this.unnamedRegister.setText(register.toString(), linewise);
      },
      // Gets the register named @name.  If one of @name doesn't already exist,
      // create it.  If @name is invalid, return the unnamedRegister.
      getRegister: function(name) {
        if (!this.isValidRegister(name)) {
          return this.unnamedRegister;
        }
        name = name.toLowerCase();
        if (!this.registers[name]) {
          this.registers[name] = new Register();
        }
        return this.registers[name];
      },
      isValidRegister: function(name) {
        return name && inArray(name, validRegisters);
      },
      shiftNumericRegisters_: function() {
        for (var i = 9; i >= 2; i--) {
          this.registers[i] = this.getRegister('' + (i - 1));
        }
      }
    };
    function HistoryController() {
        this.historyBuffer = [];
        this.iterator = 0;
        this.initialPrefix = null;
    }
    HistoryController.prototype = {
      // the input argument here acts a user entered prefix for a small time
      // until we start autocompletion in which case it is the autocompleted.
      nextMatch: function (input, up) {
        var historyBuffer = this.historyBuffer;
        var dir = up ? -1 : 1;
        if (this.initialPrefix === null) this.initialPrefix = input;
        for (var i = this.iterator + dir; up ? i >= 0 : i < historyBuffer.length; i+= dir) {
          var element = historyBuffer[i];
          for (var j = 0; j <= element.length; j++) {
            if (this.initialPrefix == element.substring(0, j)) {
              this.iterator = i;
              return element;
            }
          }
        }
        // should return the user input in case we reach the end of buffer.
        if (i >= historyBuffer.length) {
          this.iterator = historyBuffer.length;
          return this.initialPrefix;
        }
        // return the last autocompleted query or exCommand as it is.
        if (i < 0 ) return input;
      },
      pushInput: function(input) {
        var index = this.historyBuffer.indexOf(input);
        if (index > -1) this.historyBuffer.splice(index, 1);
        if (input.length) this.historyBuffer.push(input);
      },
      reset: function() {
        this.initialPrefix = null;
        this.iterator = this.historyBuffer.length;
      }
    };
    var commandDispatcher = {
      matchCommand: function(keys, keyMap, inputState, context) {
        var matches = commandMatches(keys, keyMap, context, inputState);
        if (!matches.full && !matches.partial) {
          return {type: 'none'};
        } else if (!matches.full && matches.partial) {
          return {type: 'partial'};
        }

        var bestMatch;
        for (var i = 0; i < matches.full.length; i++) {
          var match = matches.full[i];
          if (!bestMatch) {
            bestMatch = match;
          }
        }
        if (bestMatch.keys.slice(-11) == '<character>') {
          var character = lastChar(keys);
          if (!character) return {type: 'none'};
          inputState.selectedCharacter = character;
        }
        return {type: 'full', command: bestMatch};
      },
      processCommand: function(cm, vim, command) {
        vim.inputState.repeatOverride = command.repeatOverride;
        switch (command.type) {
          case 'motion':
            this.processMotion(cm, vim, command);
            break;
          case 'operator':
            this.processOperator(cm, vim, command);
            break;
          case 'operatorMotion':
            this.processOperatorMotion(cm, vim, command);
            break;
          case 'action':
            this.processAction(cm, vim, command);
            break;
          case 'search':
            this.processSearch(cm, vim, command);
            break;
          case 'ex':
          case 'keyToEx':
            this.processEx(cm, vim, command);
            break;
          default:
            break;
        }
      },
      processMotion: function(cm, vim, command) {
        vim.inputState.motion = command.motion;
        vim.inputState.motionArgs = copyArgs(command.motionArgs);
        this.evalInput(cm, vim);
      },
      processOperator: function(cm, vim, command) {
        var inputState = vim.inputState;
        if (inputState.operator) {
          if (inputState.operator == command.operator) {
            // Typing an operator twice like 'dd' makes the operator operate
            // linewise
            inputState.motion = 'expandToLine';
            inputState.motionArgs = { linewise: true };
            this.evalInput(cm, vim);
            return;
          } else {
            // 2 different operators in a row doesn't make sense.
            clearInputState(cm);
          }
        }
        inputState.operator = command.operator;
        inputState.operatorArgs = copyArgs(command.operatorArgs);
        if (vim.visualMode) {
          // Operating on a selection in visual mode. We don't need a motion.
          this.evalInput(cm, vim);
        }
      },
      processOperatorMotion: function(cm, vim, command) {
        var visualMode = vim.visualMode;
        var operatorMotionArgs = copyArgs(command.operatorMotionArgs);
        if (operatorMotionArgs) {
          // Operator motions may have special behavior in visual mode.
          if (visualMode && operatorMotionArgs.visualLine) {
            vim.visualLine = true;
          }
        }
        this.processOperator(cm, vim, command);
        if (!visualMode) {
          this.processMotion(cm, vim, command);
        }
      },
      processAction: function(cm, vim, command) {
        var inputState = vim.inputState;
        var repeat = inputState.getRepeat();
        var repeatIsExplicit = !!repeat;
        var actionArgs = copyArgs(command.actionArgs) || {};
        if (inputState.selectedCharacter) {
          actionArgs.selectedCharacter = inputState.selectedCharacter;
        }
        // Actions may or may not have motions and operators. Do these first.
        if (command.operator) {
          this.processOperator(cm, vim, command);
        }
        if (command.motion) {
          this.processMotion(cm, vim, command);
        }
        if (command.motion || command.operator) {
          this.evalInput(cm, vim);
        }
        actionArgs.repeat = repeat || 1;
        actionArgs.repeatIsExplicit = repeatIsExplicit;
        actionArgs.registerName = inputState.registerName;
        clearInputState(cm);
        vim.lastMotion = null;
        if (command.isEdit) {
          this.recordLastEdit(vim, inputState, command);
        }
        actions[command.action](cm, actionArgs, vim);
      },
      processSearch: function(cm, vim, command) {
        if (!cm.getSearchCursor) {
          // Search depends on SearchCursor.
          return;
        }
        var forward = command.searchArgs.forward;
        var wholeWordOnly = command.searchArgs.wholeWordOnly;
        getSearchState(cm).setReversed(!forward);
        var promptPrefix = (forward) ? '/' : '?';
        var originalQuery = getSearchState(cm).getQuery();
        var originalScrollPos = cm.getScrollInfo();
        function handleQuery(query, ignoreCase, smartCase) {
          vimGlobalState.searchHistoryController.pushInput(query);
          vimGlobalState.searchHistoryController.reset();
          try {
            updateSearchQuery(cm, query, ignoreCase, smartCase);
          } catch (e) {
            showConfirm(cm, 'Invalid regex: ' + query);
            clearInputState(cm);
            return;
          }
          commandDispatcher.processMotion(cm, vim, {
            type: 'motion',
            motion: 'findNext',
            motionArgs: { forward: true, toJumplist: command.searchArgs.toJumplist }
          });
        }
        function onPromptClose(query) {
          cm.scrollTo(originalScrollPos.left, originalScrollPos.top);
          handleQuery(query, true /** ignoreCase */, true /** smartCase */);
          var macroModeState = vimGlobalState.macroModeState;
          if (macroModeState.isRecording) {
            logSearchQuery(macroModeState, query);
          }
        }
        function onPromptKeyUp(e, query, close) {
          var keyName = CodeMirror.keyName(e), up, offset;
          if (keyName == 'Up' || keyName == 'Down') {
            up = keyName == 'Up' ? true : false;
            offset = e.target ? e.target.selectionEnd : 0;
            query = vimGlobalState.searchHistoryController.nextMatch(query, up) || '';
            close(query);
            if (offset && e.target) e.target.selectionEnd = e.target.selectionStart = Math.min(offset, e.target.value.length);
          } else {
            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')
              vimGlobalState.searchHistoryController.reset();
          }
          var parsedQuery;
          try {
            parsedQuery = updateSearchQuery(cm, query,
                true /** ignoreCase */, true /** smartCase */);
          } catch (e) {
            // Swallow bad regexes for incremental search.
          }
          if (parsedQuery) {
            cm.scrollIntoView(findNext(cm, !forward, parsedQuery), 30);
          } else {
            clearSearchHighlight(cm);
            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);
          }
        }
        function onPromptKeyDown(e, query, close) {
          var keyName = CodeMirror.keyName(e);
          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||
              (keyName == 'Backspace' && query == '')) {
            vimGlobalState.searchHistoryController.pushInput(query);
            vimGlobalState.searchHistoryController.reset();
            updateSearchQuery(cm, originalQuery);
            clearSearchHighlight(cm);
            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);
            CodeMirror.e_stop(e);
            clearInputState(cm);
            close();
            cm.focus();
          } else if (keyName == 'Up' || keyName == 'Down') {
            CodeMirror.e_stop(e);
          } else if (keyName == 'Ctrl-U') {
            // Ctrl-U clears input.
            CodeMirror.e_stop(e);
            close('');
          }
        }
        switch (command.searchArgs.querySrc) {
          case 'prompt':
            var macroModeState = vimGlobalState.macroModeState;
            if (macroModeState.isPlaying) {
              var query = macroModeState.replaySearchQueries.shift();
              handleQuery(query, true /** ignoreCase */, false /** smartCase */);
            } else {
              showPrompt(cm, {
                  onClose: onPromptClose,
                  prefix: promptPrefix,
                  desc: searchPromptDesc,
                  onKeyUp: onPromptKeyUp,
                  onKeyDown: onPromptKeyDown
              });
            }
            break;
          case 'wordUnderCursor':
            var word = expandWordUnderCursor(cm, false /** inclusive */,
                true /** forward */, false /** bigWord */,
                true /** noSymbol */);
            var isKeyword = true;
            if (!word) {
              word = expandWordUnderCursor(cm, false /** inclusive */,
                  true /** forward */, false /** bigWord */,
                  false /** noSymbol */);
              isKeyword = false;
            }
            if (!word) {
              return;
            }
            var query = cm.getLine(word.start.line).substring(word.start.ch,
                word.end.ch);
            if (isKeyword && wholeWordOnly) {
                query = '\\b' + query + '\\b';
            } else {
              query = escapeRegex(query);
            }

            // cachedCursor is used to save the old position of the cursor
            // when * or # causes vim to seek for the nearest word and shift
            // the cursor before entering the motion.
            vimGlobalState.jumpList.cachedCursor = cm.getCursor();
            cm.setCursor(word.start);

            handleQuery(query, true /** ignoreCase */, false /** smartCase */);
            break;
        }
      },
      processEx: function(cm, vim, command) {
        function onPromptClose(input) {
          // Give the prompt some time to close so that if processCommand shows
          // an error, the elements don't overlap.
          vimGlobalState.exCommandHistoryController.pushInput(input);
          vimGlobalState.exCommandHistoryController.reset();
          exCommandDispatcher.processCommand(cm, input);
        }
        function onPromptKeyDown(e, input, close) {
          var keyName = CodeMirror.keyName(e), up, offset;
          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||
              (keyName == 'Backspace' && input == '')) {
            vimGlobalState.exCommandHistoryController.pushInput(input);
            vimGlobalState.exCommandHistoryController.reset();
            CodeMirror.e_stop(e);
            clearInputState(cm);
            close();
            cm.focus();
          }
          if (keyName == 'Up' || keyName == 'Down') {
            CodeMirror.e_stop(e);
            up = keyName == 'Up' ? true : false;
            offset = e.target ? e.target.selectionEnd : 0;
            input = vimGlobalState.exCommandHistoryController.nextMatch(input, up) || '';
            close(input);
            if (offset && e.target) e.target.selectionEnd = e.target.selectionStart = Math.min(offset, e.target.value.length);
          } else if (keyName == 'Ctrl-U') {
            // Ctrl-U clears input.
            CodeMirror.e_stop(e);
            close('');
          } else {
            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')
              vimGlobalState.exCommandHistoryController.reset();
          }
        }
        if (command.type == 'keyToEx') {
          // Handle user defined Ex to Ex mappings
          exCommandDispatcher.processCommand(cm, command.exArgs.input);
        } else {
          if (vim.visualMode) {
            showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
                onKeyDown: onPromptKeyDown, selectValueOnOpen: false});
          } else {
            showPrompt(cm, { onClose: onPromptClose, prefix: ':',
                onKeyDown: onPromptKeyDown});
          }
        }
      },
      evalInput: function(cm, vim) {
        // If the motion command is set, execute both the operator and motion.
        // Otherwise return.
        var inputState = vim.inputState;
        var motion = inputState.motion;
        var motionArgs = inputState.motionArgs || {};
        var operator = inputState.operator;
        var operatorArgs = inputState.operatorArgs || {};
        var registerName = inputState.registerName;
        var sel = vim.sel;
        // TODO: Make sure cm and vim selections are identical outside visual mode.
        var origHead = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.head): cm.getCursor('head'));
        var origAnchor = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.anchor) : cm.getCursor('anchor'));
        var oldHead = copyCursor(origHead);
        var oldAnchor = copyCursor(origAnchor);
        var newHead, newAnchor;
        var repeat;
        if (operator) {
          this.recordLastEdit(vim, inputState);
        }
        if (inputState.repeatOverride !== undefined) {
          // If repeatOverride is specified, that takes precedence over the
          // input state's repeat. Used by Ex mode and can be user defined.
          repeat = inputState.repeatOverride;
        } else {
          repeat = inputState.getRepeat();
        }
        if (repeat > 0 && motionArgs.explicitRepeat) {
          motionArgs.repeatIsExplicit = true;
        } else if (motionArgs.noRepeat ||
            (!motionArgs.explicitRepeat && repeat === 0)) {
          repeat = 1;
          motionArgs.repeatIsExplicit = false;
        }
        if (inputState.selectedCharacter) {
          // If there is a character input, stick it in all of the arg arrays.
          motionArgs.selectedCharacter = operatorArgs.selectedCharacter =
              inputState.selectedCharacter;
        }
        motionArgs.repeat = repeat;
        clearInputState(cm);
        if (motion) {
          var motionResult = motions[motion](cm, origHead, motionArgs, vim);
          vim.lastMotion = motions[motion];
          if (!motionResult) {
            return;
          }
          if (motionArgs.toJumplist) {
            var jumpList = vimGlobalState.jumpList;
            // if the current motion is # or *, use cachedCursor
            var cachedCursor = jumpList.cachedCursor;
            if (cachedCursor) {
              recordJumpPosition(cm, cachedCursor, motionResult);
              delete jumpList.cachedCursor;
            } else {
              recordJumpPosition(cm, origHead, motionResult);
            }
          }
          if (motionResult instanceof Array) {
            newAnchor = motionResult[0];
            newHead = motionResult[1];
          } else {
            newHead = motionResult;
          }
          // TODO: Handle null returns from motion commands better.
          if (!newHead) {
            newHead = copyCursor(origHead);
          }
          if (vim.visualMode) {
            if (!(vim.visualBlock && newHead.ch === Infinity)) {
              newHead = clipCursorToContent(cm, newHead, vim.visualBlock);
            }
            if (newAnchor) {
              newAnchor = clipCursorToContent(cm, newAnchor, true);
            }
            newAnchor = newAnchor || oldAnchor;
            sel.anchor = newAnchor;
            sel.head = newHead;
            updateCmSelection(cm);
            updateMark(cm, vim, '<',
                cursorIsBefore(newAnchor, newHead) ? newAnchor
                    : newHead);
            updateMark(cm, vim, '>',
                cursorIsBefore(newAnchor, newHead) ? newHead
                    : newAnchor);
          } else if (!operator) {
            newHead = clipCursorToContent(cm, newHead);
            cm.setCursor(newHead.line, newHead.ch);
          }
        }
        if (operator) {
          if (operatorArgs.lastSel) {
            // Replaying a visual mode operation
            newAnchor = oldAnchor;
            var lastSel = operatorArgs.lastSel;
            var lineOffset = Math.abs(lastSel.head.line - lastSel.anchor.line);
            var chOffset = Math.abs(lastSel.head.ch - lastSel.anchor.ch);
            if (lastSel.visualLine) {
              // Linewise Visual mode: The same number of lines.
              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
            } else if (lastSel.visualBlock) {
              // Blockwise Visual mode: The same number of lines and columns.
              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset);
            } else if (lastSel.head.line == lastSel.anchor.line) {
              // Normal Visual mode within one line: The same number of characters.
              newHead = Pos(oldAnchor.line, oldAnchor.ch + chOffset);
            } else {
              // Normal Visual mode with several lines: The same number of lines, in the
              // last line the same number of characters as in the last line the last time.
              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
            }
            vim.visualMode = true;
            vim.visualLine = lastSel.visualLine;
            vim.visualBlock = lastSel.visualBlock;
            sel = vim.sel = {
              anchor: newAnchor,
              head: newHead
            };
            updateCmSelection(cm);
          } else if (vim.visualMode) {
            operatorArgs.lastSel = {
              anchor: copyCursor(sel.anchor),
              head: copyCursor(sel.head),
              visualBlock: vim.visualBlock,
              visualLine: vim.visualLine
            };
          }
          var curStart, curEnd, linewise, mode;
          var cmSel;
          if (vim.visualMode) {
            // Init visual op
            curStart = cursorMin(sel.head, sel.anchor);
            curEnd = cursorMax(sel.head, sel.anchor);
            linewise = vim.visualLine || operatorArgs.linewise;
            mode = vim.visualBlock ? 'block' :
                   linewise ? 'line' :
                   'char';
            cmSel = makeCmSelection(cm, {
              anchor: curStart,
              head: curEnd
            }, mode);
            if (linewise) {
              var ranges = cmSel.ranges;
              if (mode == 'block') {
                // Linewise operators in visual block mode extend to end of line
                for (var i = 0; i < ranges.length; i++) {
                  ranges[i].head.ch = lineLength(cm, ranges[i].head.line);
                }
              } else if (mode == 'line') {
                ranges[0].head = Pos(ranges[0].head.line + 1, 0);
              }
            }
          } else {
            // Init motion op
            curStart = copyCursor(newAnchor || oldAnchor);
            curEnd = copyCursor(newHead || oldHead);
            if (cursorIsBefore(curEnd, curStart)) {
              var tmp = curStart;
              curStart = curEnd;
              curEnd = tmp;
            }
            linewise = motionArgs.linewise || operatorArgs.linewise;
            if (linewise) {
              // Expand selection to entire line.
              expandSelectionToLine(cm, curStart, curEnd);
            } else if (motionArgs.forward) {
              // Clip to trailing newlines only if the motion goes forward.
              clipToLine(cm, curStart, curEnd);
            }
            mode = 'char';
            var exclusive = !motionArgs.inclusive || linewise;
            cmSel = makeCmSelection(cm, {
              anchor: curStart,
              head: curEnd
            }, mode, exclusive);
          }
          cm.setSelections(cmSel.ranges, cmSel.primary);
          vim.lastMotion = null;
          operatorArgs.repeat = repeat; // For indent in visual mode.
          operatorArgs.registerName = registerName;
          // Keep track of linewise as it affects how paste and change behave.
          operatorArgs.linewise = linewise;
          var operatorMoveTo = operators[operator](
            cm, operatorArgs, cmSel.ranges, oldAnchor, newHead);
          if (vim.visualMode) {
            exitVisualMode(cm, operatorMoveTo != null);
          }
          if (operatorMoveTo) {
            cm.setCursor(operatorMoveTo);
          }
        }
      },
      recordLastEdit: function(vim, inputState, actionCommand) {
        var macroModeState = vimGlobalState.macroModeState;
        if (macroModeState.isPlaying) { return; }
        vim.lastEditInputState = inputState;
        vim.lastEditActionCommand = actionCommand;
        macroModeState.lastInsertModeChanges.changes = [];
        macroModeState.lastInsertModeChanges.expectCursorActivityForChange = false;
      }
    };

    /**
     * typedef {Object{line:number,ch:number}} Cursor An object containing the
     *     position of the cursor.
     */
    // All of the functions below return Cursor objects.
    var motions = {
      moveToTopLine: function(cm, _head, motionArgs) {
        var line = getUserVisibleLines(cm).top + motionArgs.repeat -1;
        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
      },
      moveToMiddleLine: function(cm) {
        var range = getUserVisibleLines(cm);
        var line = Math.floor((range.top + range.bottom) * 0.5);
        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
      },
      moveToBottomLine: function(cm, _head, motionArgs) {
        var line = getUserVisibleLines(cm).bottom - motionArgs.repeat +1;
        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
      },
      expandToLine: function(_cm, head, motionArgs) {
        // Expands forward to end of line, and then to next line if repeat is
        // >1. Does not handle backward motion!
        var cur = head;
        return Pos(cur.line + motionArgs.repeat - 1, Infinity);
      },
      findNext: function(cm, _head, motionArgs) {
        var state = getSearchState(cm);
        var query = state.getQuery();
        if (!query) {
          return;
        }
        var prev = !motionArgs.forward;
        // If search is initiated with ? instead of /, negate direction.
        prev = (state.isReversed()) ? !prev : prev;
        highlightSearchMatches(cm, query);
        return findNext(cm, prev/** prev */, query, motionArgs.repeat);
      },
      goToMark: function(cm, _head, motionArgs, vim) {
        var pos = getMarkPos(cm, vim, motionArgs.selectedCharacter);
        if (pos) {
          return motionArgs.linewise ? { line: pos.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(pos.line)) } : pos;
        }
        return null;
      },
      moveToOtherHighlightedEnd: function(cm, _head, motionArgs, vim) {
        if (vim.visualBlock && motionArgs.sameLine) {
          var sel = vim.sel;
          return [
            clipCursorToContent(cm, Pos(sel.anchor.line, sel.head.ch)),
            clipCursorToContent(cm, Pos(sel.head.line, sel.anchor.ch))
          ];
        } else {
          return ([vim.sel.head, vim.sel.anchor]);
        }
      },
      jumpToMark: function(cm, head, motionArgs, vim) {
        var best = head;
        for (var i = 0; i < motionArgs.repeat; i++) {
          var cursor = best;
          for (var key in vim.marks) {
            if (!isLowerCase(key)) {
              continue;
            }
            var mark = vim.marks[key].find();
            var isWrongDirection = (motionArgs.forward) ?
              cursorIsBefore(mark, cursor) : cursorIsBefore(cursor, mark);

            if (isWrongDirection) {
              continue;
            }
            if (motionArgs.linewise && (mark.line == cursor.line)) {
              continue;
            }

            var equal = cursorEqual(cursor, best);
            var between = (motionArgs.forward) ?
              cursorIsBetween(cursor, mark, best) :
              cursorIsBetween(best, mark, cursor);

            if (equal || between) {
              best = mark;
            }
          }
        }

        if (motionArgs.linewise) {
          // Vim places the cursor on the first non-whitespace character of
          // the line if there is one, else it places the cursor at the end
          // of the line, regardless of whether a mark was found.
          best = Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line)));
        }
        return best;
      },
      moveByCharacters: function(_cm, head, motionArgs) {
        var cur = head;
        var repeat = motionArgs.repeat;
        var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat;
        return Pos(cur.line, ch);
      },
      moveByLines: function(cm, head, motionArgs, vim) {
        var cur = head;
        var endCh = cur.ch;
        // Depending what our last motion was, we may want to do different
        // things. If our last motion was moving vertically, we want to
        // preserve the HPos from our last horizontal move.  If our last motion
        // was going to the end of a line, moving vertically we should go to
        // the end of the line, etc.
        switch (vim.lastMotion) {
          case this.moveByLines:
          case this.moveByDisplayLines:
          case this.moveByScroll:
          case this.moveToColumn:
          case this.moveToEol:
            endCh = vim.lastHPos;
            break;
          default:
            vim.lastHPos = endCh;
        }
        var repeat = motionArgs.repeat+(motionArgs.repeatOffset||0);
        var line = motionArgs.forward ? cur.line + repeat : cur.line - repeat;
        var first = cm.firstLine();
        var last = cm.lastLine();
        // Vim go to line begin or line end when cursor at first/last line and
        // move to previous/next line is triggered.
        if (line < first && cur.line == first){
          return this.moveToStartOfLine(cm, head, motionArgs, vim);
        }else if (line > last && cur.line == last){
            return this.moveToEol(cm, head, motionArgs, vim);
        }
        if (motionArgs.toFirstChar){
          endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line));
          vim.lastHPos = endCh;
        }
        vim.lastHSPos = cm.charCoords(Pos(line, endCh),'div').left;
        return Pos(line, endCh);
      },
      moveByDisplayLines: function(cm, head, motionArgs, vim) {
        var cur = head;
        switch (vim.lastMotion) {
          case this.moveByDisplayLines:
          case this.moveByScroll:
          case this.moveByLines:
          case this.moveToColumn:
          case this.moveToEol:
            break;
          default:
            vim.lastHSPos = cm.charCoords(cur,'div').left;
        }
        var repeat = motionArgs.repeat;
        var res=cm.findPosV(cur,(motionArgs.forward ? repeat : -repeat),'line',vim.lastHSPos);
        if (res.hitSide) {
          if (motionArgs.forward) {
            var lastCharCoords = cm.charCoords(res, 'div');
            var goalCoords = { top: lastCharCoords.top + 8, left: vim.lastHSPos };
            var res = cm.coordsChar(goalCoords, 'div');
          } else {
            var resCoords = cm.charCoords(Pos(cm.firstLine(), 0), 'div');
            resCoords.left = vim.lastHSPos;
            res = cm.coordsChar(resCoords, 'div');
          }
        }
        vim.lastHPos = res.ch;
        return res;
      },
      moveByPage: function(cm, head, motionArgs) {
        // CodeMirror only exposes functions that move the cursor page down, so
        // doing this bad hack to move the cursor and move it back. evalInput
        // will move the cursor to where it should be in the end.
        var curStart = head;
        var repeat = motionArgs.repeat;
        return cm.findPosV(curStart, (motionArgs.forward ? repeat : -repeat), 'page');
      },
      moveByParagraph: function(cm, head, motionArgs) {
        var dir = motionArgs.forward ? 1 : -1;
        return findParagraph(cm, head, motionArgs.repeat, dir);
      },
      moveBySentence: function(cm, head, motionArgs) {
        var dir = motionArgs.forward ? 1 : -1;
        return findSentence(cm, head, motionArgs.repeat, dir);
      },
      moveByScroll: function(cm, head, motionArgs, vim) {
        var scrollbox = cm.getScrollInfo();
        var curEnd = null;
        var repeat = motionArgs.repeat;
        if (!repeat) {
          repeat = scrollbox.clientHeight / (2 * cm.defaultTextHeight());
        }
        var orig = cm.charCoords(head, 'local');
        motionArgs.repeat = repeat;
        var curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim);
        if (!curEnd) {
          return null;
        }
        var dest = cm.charCoords(curEnd, 'local');
        cm.scrollTo(null, scrollbox.top + dest.top - orig.top);
        return curEnd;
      },
      moveByWords: function(cm, head, motionArgs) {
        return moveToWord(cm, head, motionArgs.repeat, !!motionArgs.forward,
            !!motionArgs.wordEnd, !!motionArgs.bigWord);
      },
      moveTillCharacter: function(cm, _head, motionArgs) {
        var repeat = motionArgs.repeat;
        var curEnd = moveToCharacter(cm, repeat, motionArgs.forward,
            motionArgs.selectedCharacter);
        var increment = motionArgs.forward ? -1 : 1;
        recordLastCharacterSearch(increment, motionArgs);
        if (!curEnd) return null;
        curEnd.ch += increment;
        return curEnd;
      },
      moveToCharacter: function(cm, head, motionArgs) {
        var repeat = motionArgs.repeat;
        recordLastCharacterSearch(0, motionArgs);
        return moveToCharacter(cm, repeat, motionArgs.forward,
            motionArgs.selectedCharacter) || head;
      },
      moveToSymbol: function(cm, head, motionArgs) {
        var repeat = motionArgs.repeat;
        return findSymbol(cm, repeat, motionArgs.forward,
            motionArgs.selectedCharacter) || head;
      },
      moveToColumn: function(cm, head, motionArgs, vim) {
        var repeat = motionArgs.repeat;
        // repeat is equivalent to which column we want to move to!
        vim.lastHPos = repeat - 1;
        vim.lastHSPos = cm.charCoords(head,'div').left;
        return moveToColumn(cm, repeat);
      },
      moveToEol: function(cm, head, motionArgs, vim) {
        var cur = head;
        vim.lastHPos = Infinity;
        var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity);
        var end=cm.clipPos(retval);
        end.ch--;
        vim.lastHSPos = cm.charCoords(end,'div').left;
        return retval;
      },
      moveToFirstNonWhiteSpaceCharacter: function(cm, head) {
        // Go to the start of the line where the text begins, or the end for
        // whitespace-only lines
        var cursor = head;
        return Pos(cursor.line,
                   findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line)));
      },
      moveToMatchedSymbol: function(cm, head) {
        var cursor = head;
        var line = cursor.line;
        var ch = cursor.ch;
        var lineText = cm.getLine(line);
        var symbol;
        for (; ch < lineText.length; ch++) {
          symbol = lineText.charAt(ch);
          if (symbol && isMatchableSymbol(symbol)) {
            var style = cm.getTokenTypeAt(Pos(line, ch + 1));
            if (style !== "string" && style !== "comment") {
              break;
            }
          }
        }
        if (ch < lineText.length) {
          var matched = cm.findMatchingBracket(Pos(line, ch));
          return matched.to;
        } else {
          return cursor;
        }
      },
      moveToStartOfLine: function(_cm, head) {
        return Pos(head.line, 0);
      },
      moveToLineOrEdgeOfDocument: function(cm, _head, motionArgs) {
        var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine();
        if (motionArgs.repeatIsExplicit) {
          lineNum = motionArgs.repeat - cm.getOption('firstLineNumber');
        }
        return Pos(lineNum,
                   findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum)));
      },
      textObjectManipulation: function(cm, head, motionArgs, vim) {
        // TODO: lots of possible exceptions that can be thrown here. Try da(
        //     outside of a () block.

        // TODO: adding <> >< to this map doesn't work, presumably because
        // they're operators
        var mirroredPairs = {'(': ')', ')': '(',
                             '{': '}', '}': '{',
                             '[': ']', ']': '['};
        var selfPaired = {'\'': true, '"': true};

        var character = motionArgs.selectedCharacter;
        // 'b' refers to  '()' block.
        // 'B' refers to  '{}' block.
        if (character == 'b') {
          character = '(';
        } else if (character == 'B') {
          character = '{';
        }

        // Inclusive is the difference between a and i
        // TODO: Instead of using the additional text object map to perform text
        //     object operations, merge the map into the defaultKeyMap and use
        //     motionArgs to define behavior. Define separate entries for 'aw',
        //     'iw', 'a[', 'i[', etc.
        var inclusive = !motionArgs.textObjectInner;

        var tmp;
        if (mirroredPairs[character]) {
          tmp = selectCompanionObject(cm, head, character, inclusive);
        } else if (selfPaired[character]) {
          tmp = findBeginningAndEnd(cm, head, character, inclusive);
        } else if (character === 'W') {
          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,
                                                     true /** bigWord */);
        } else if (character === 'w') {
          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,
                                                     false /** bigWord */);
        } else if (character === 'p') {
          tmp = findParagraph(cm, head, motionArgs.repeat, 0, inclusive);
          motionArgs.linewise = true;
          if (vim.visualMode) {
            if (!vim.visualLine) { vim.visualLine = true; }
          } else {
            var operatorArgs = vim.inputState.operatorArgs;
            if (operatorArgs) { operatorArgs.linewise = true; }
            tmp.end.line--;
          }
        } else {
          // No text object defined for this, don't move.
          return null;
        }

        if (!cm.state.vim.visualMode) {
          return [tmp.start, tmp.end];
        } else {
          return expandSelection(cm, tmp.start, tmp.end);
        }
      },

      repeatLastCharacterSearch: function(cm, head, motionArgs) {
        var lastSearch = vimGlobalState.lastCharacterSearch;
        var repeat = motionArgs.repeat;
        var forward = motionArgs.forward === lastSearch.forward;
        var increment = (lastSearch.increment ? 1 : 0) * (forward ? -1 : 1);
        cm.moveH(-increment, 'char');
        motionArgs.inclusive = forward ? true : false;
        var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter);
        if (!curEnd) {
          cm.moveH(increment, 'char');
          return head;
        }
        curEnd.ch += increment;
        return curEnd;
      }
    };

    function defineMotion(name, fn) {
      motions[name] = fn;
    }

    function fillArray(val, times) {
      var arr = [];
      for (var i = 0; i < times; i++) {
        arr.push(val);
      }
      return arr;
    }
    /**
     * An operator acts on a text selection. It receives the list of selections
     * as input. The corresponding CodeMirror selection is guaranteed to
    * match the input selection.
     */
    var operators = {
      change: function(cm, args, ranges) {
        var finalHead, text;
        var vim = cm.state.vim;
        vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock = vim.visualBlock;
        if (!vim.visualMode) {
          var anchor = ranges[0].anchor,
              head = ranges[0].head;
          text = cm.getRange(anchor, head);
          var lastState = vim.lastEditInputState || {};
          if (lastState.motion == "moveByWords" && !isWhiteSpaceString(text)) {
            // Exclude trailing whitespace if the range is not all whitespace.
            var match = (/\s+$/).exec(text);
            if (match && lastState.motionArgs && lastState.motionArgs.forward) {
              head = offsetCursor(head, 0, - match[0].length);
              text = text.slice(0, - match[0].length);
            }
          }
          var prevLineEnd = new Pos(anchor.line - 1, Number.MAX_VALUE);
          var wasLastLine = cm.firstLine() == cm.lastLine();
          if (head.line > cm.lastLine() && args.linewise && !wasLastLine) {
            cm.replaceRange('', prevLineEnd, head);
          } else {
            cm.replaceRange('', anchor, head);
          }
          if (args.linewise) {
            // Push the next line back down, if there is a next line.
            if (!wasLastLine) {
              cm.setCursor(prevLineEnd);
              CodeMirror.commands.newlineAndIndent(cm);
            }
            // make sure cursor ends up at the end of the line.
            anchor.ch = Number.MAX_VALUE;
          }
          finalHead = anchor;
        } else {
          text = cm.getSelection();
          var replacement = fillArray('', ranges.length);
          cm.replaceSelections(replacement);
          finalHead = cursorMin(ranges[0].head, ranges[0].anchor);
        }
        vimGlobalState.registerController.pushText(
            args.registerName, 'change', text,
            args.linewise, ranges.length > 1);
        actions.enterInsertMode(cm, {head: finalHead}, cm.state.vim);
      },
      // delete is a javascript keyword.
      'delete': function(cm, args, ranges) {
        var finalHead, text;
        var vim = cm.state.vim;
        if (!vim.visualBlock) {
          var anchor = ranges[0].anchor,
              head = ranges[0].head;
          if (args.linewise &&
              head.line != cm.firstLine() &&
              anchor.line == cm.lastLine() &&
              anchor.line == head.line - 1) {
            // Special case for dd on last line (and first line).
            if (anchor.line == cm.firstLine()) {
              anchor.ch = 0;
            } else {
              anchor = Pos(anchor.line - 1, lineLength(cm, anchor.line - 1));
            }
          }
          text = cm.getRange(anchor, head);
          cm.replaceRange('', anchor, head);
          finalHead = anchor;
          if (args.linewise) {
            finalHead = motions.moveToFirstNonWhiteSpaceCharacter(cm, anchor);
          }
        } else {
          text = cm.getSelection();
          var replacement = fillArray('', ranges.length);
          cm.replaceSelections(replacement);
          finalHead = ranges[0].anchor;
        }
        vimGlobalState.registerController.pushText(
            args.registerName, 'delete', text,
            args.linewise, vim.visualBlock);
        var includeLineBreak = vim.insertMode
        return clipCursorToContent(cm, finalHead, includeLineBreak);
      },
      indent: function(cm, args, ranges) {
        var vim = cm.state.vim;
        var startLine = ranges[0].anchor.line;
        var endLine = vim.visualBlock ?
          ranges[ranges.length - 1].anchor.line :
          ranges[0].head.line;
        // In visual mode, n> shifts the selection right n times, instead of
        // shifting n lines right once.
        var repeat = (vim.visualMode) ? args.repeat : 1;
        if (args.linewise) {
          // The only way to delete a newline is to delete until the start of
          // the next line, so in linewise mode evalInput will include the next
          // line. We don't want this in indent, so we go back a line.
          endLine--;
        }
        for (var i = startLine; i <= endLine; i++) {
          for (var j = 0; j < repeat; j++) {
            cm.indentLine(i, args.indentRight);
          }
        }
        return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);
      },
      changeCase: function(cm, args, ranges, oldAnchor, newHead) {
        var selections = cm.getSelections();
        var swapped = [];
        var toLower = args.toLower;
        for (var j = 0; j < selections.length; j++) {
          var toSwap = selections[j];
          var text = '';
          if (toLower === true) {
            text = toSwap.toLowerCase();
          } else if (toLower === false) {
            text = toSwap.toUpperCase();
          } else {
            for (var i = 0; i < toSwap.length; i++) {
              var character = toSwap.charAt(i);
              text += isUpperCase(character) ? character.toLowerCase() :
                  character.toUpperCase();
            }
          }
          swapped.push(text);
        }
        cm.replaceSelections(swapped);
        if (args.shouldMoveCursor){
          return newHead;
        } else if (!cm.state.vim.visualMode && args.linewise && ranges[0].anchor.line + 1 == ranges[0].head.line) {
          return motions.moveToFirstNonWhiteSpaceCharacter(cm, oldAnchor);
        } else if (args.linewise){
          return oldAnchor;
        } else {
          return cursorMin(ranges[0].anchor, ranges[0].head);
        }
      },
      yank: function(cm, args, ranges, oldAnchor) {
        var vim = cm.state.vim;
        var text = cm.getSelection();
        var endPos = vim.visualMode
          ? cursorMin(vim.sel.anchor, vim.sel.head, ranges[0].head, ranges[0].anchor)
          : oldAnchor;
        vimGlobalState.registerController.pushText(
            args.registerName, 'yank',
            text, args.linewise, vim.visualBlock);
        return endPos;
      }
    };

    function defineOperator(name, fn) {
      operators[name] = fn;
    }

    var actions = {
      jumpListWalk: function(cm, actionArgs, vim) {
        if (vim.visualMode) {
          return;
        }
        var repeat = actionArgs.repeat;
        var forward = actionArgs.forward;
        var jumpList = vimGlobalState.jumpList;

        var mark = jumpList.move(cm, forward ? repeat : -repeat);
        var markPos = mark ? mark.find() : undefined;
        markPos = markPos ? markPos : cm.getCursor();
        cm.setCursor(markPos);
      },
      scroll: function(cm, actionArgs, vim) {
        if (vim.visualMode) {
          return;
        }
        var repeat = actionArgs.repeat || 1;
        var lineHeight = cm.defaultTextHeight();
        var top = cm.getScrollInfo().top;
        var delta = lineHeight * repeat;
        var newPos = actionArgs.forward ? top + delta : top - delta;
        var cursor = copyCursor(cm.getCursor());
        var cursorCoords = cm.charCoords(cursor, 'local');
        if (actionArgs.forward) {
          if (newPos > cursorCoords.top) {
             cursor.line += (newPos - cursorCoords.top) / lineHeight;
             cursor.line = Math.ceil(cursor.line);
             cm.setCursor(cursor);
             cursorCoords = cm.charCoords(cursor, 'local');
             cm.scrollTo(null, cursorCoords.top);
          } else {
             // Cursor stays within bounds.  Just reposition the scroll window.
             cm.scrollTo(null, newPos);
          }
        } else {
          var newBottom = newPos + cm.getScrollInfo().clientHeight;
          if (newBottom < cursorCoords.bottom) {
             cursor.line -= (cursorCoords.bottom - newBottom) / lineHeight;
             cursor.line = Math.floor(cursor.line);
             cm.setCursor(cursor);
             cursorCoords = cm.charCoords(cursor, 'local');
             cm.scrollTo(
                 null, cursorCoords.bottom - cm.getScrollInfo().clientHeight);
          } else {
             // Cursor stays within bounds.  Just reposition the scroll window.
             cm.scrollTo(null, newPos);
          }
        }
      },
      scrollToCursor: function(cm, actionArgs) {
        var lineNum = cm.getCursor().line;
        var charCoords = cm.charCoords(Pos(lineNum, 0), 'local');
        var height = cm.getScrollInfo().clientHeight;
        var y = charCoords.top;
        var lineHeight = charCoords.bottom - y;
        switch (actionArgs.position) {
          case 'center': y = y - (height / 2) + lineHeight;
            break;
          case 'bottom': y = y - height + lineHeight;
            break;
        }
        cm.scrollTo(null, y);
      },
      replayMacro: function(cm, actionArgs, vim) {
        var registerName = actionArgs.selectedCharacter;
        var repeat = actionArgs.repeat;
        var macroModeState = vimGlobalState.macroModeState;
        if (registerName == '@') {
          registerName = macroModeState.latestRegister;
        }
        while(repeat--){
          executeMacroRegister(cm, vim, macroModeState, registerName);
        }
      },
      enterMacroRecordMode: function(cm, actionArgs) {
        var macroModeState = vimGlobalState.macroModeState;
        var registerName = actionArgs.selectedCharacter;
        if (vimGlobalState.registerController.isValidRegister(registerName)) {
          macroModeState.enterMacroRecordMode(cm, registerName);
        }
      },
      toggleOverwrite: function(cm) {
        if (!cm.state.overwrite) {
          cm.toggleOverwrite(true);
          cm.setOption('keyMap', 'vim-replace');
          CodeMirror.signal(cm, "vim-mode-change", {mode: "replace"});
        } else {
          cm.toggleOverwrite(false);
          cm.setOption('keyMap', 'vim-insert');
          CodeMirror.signal(cm, "vim-mode-change", {mode: "insert"});
        }
      },
      enterInsertMode: function(cm, actionArgs, vim) {
        if (cm.getOption('readOnly')) { return; }
        vim.insertMode = true;
        vim.insertModeRepeat = actionArgs && actionArgs.repeat || 1;
        var insertAt = (actionArgs) ? actionArgs.insertAt : null;
        var sel = vim.sel;
        var head = actionArgs.head || cm.getCursor('head');
        var height = cm.listSelections().length;
        if (insertAt == 'eol') {
          head = Pos(head.line, lineLength(cm, head.line));
        } else if (insertAt == 'charAfter') {
          head = offsetCursor(head, 0, 1);
        } else if (insertAt == 'firstNonBlank') {
          head = motions.moveToFirstNonWhiteSpaceCharacter(cm, head);
        } else if (insertAt == 'startOfSelectedArea') {
          if (!vim.visualBlock) {
            if (sel.head.line < sel.anchor.line) {
              head = sel.head;
            } else {
              head = Pos(sel.anchor.line, 0);
            }
          } else {
            head = Pos(
                Math.min(sel.head.line, sel.anchor.line),
                Math.min(sel.head.ch, sel.anchor.ch));
            height = Math.abs(sel.head.line - sel.anchor.line) + 1;
          }
        } else if (insertAt == 'endOfSelectedArea') {
          if (!vim.visualBlock) {
            if (sel.head.line >= sel.anchor.line) {
              head = offsetCursor(sel.head, 0, 1);
            } else {
              head = Pos(sel.anchor.line, 0);
            }
          } else {
            head = Pos(
                Math.min(sel.head.line, sel.anchor.line),
                Math.max(sel.head.ch + 1, sel.anchor.ch));
            height = Math.abs(sel.head.line - sel.anchor.line) + 1;
          }
        } else if (insertAt == 'inplace') {
          if (vim.visualMode){
            return;
          }
        }
        cm.setOption('disableInput', false);
        if (actionArgs && actionArgs.replace) {
          // Handle Replace-mode as a special case of insert mode.
          cm.toggleOverwrite(true);
          cm.setOption('keyMap', 'vim-replace');
          CodeMirror.signal(cm, "vim-mode-change", {mode: "replace"});
        } else {
          cm.toggleOverwrite(false);
          cm.setOption('keyMap', 'vim-insert');
          CodeMirror.signal(cm, "vim-mode-change", {mode: "insert"});
        }
        if (!vimGlobalState.macroModeState.isPlaying) {
          // Only record if not replaying.
          cm.on('change', onChange);
          CodeMirror.on(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);
        }
        if (vim.visualMode) {
          exitVisualMode(cm);
        }
        selectForInsert(cm, head, height);
      },
      toggleVisualMode: function(cm, actionArgs, vim) {
        var repeat = actionArgs.repeat;
        var anchor = cm.getCursor();
        var head;
        // TODO: The repeat should actually select number of characters/lines
        //     equal to the repeat times the size of the previous visual
        //     operation.
        if (!vim.visualMode) {
          // Entering visual mode
          vim.visualMode = true;
          vim.visualLine = !!actionArgs.linewise;
          vim.visualBlock = !!actionArgs.blockwise;
          head = clipCursorToContent(
              cm, Pos(anchor.line, anchor.ch + repeat - 1),
              true /** includeLineBreak */);
          vim.sel = {
            anchor: anchor,
            head: head
          };
          CodeMirror.signal(cm, "vim-mode-change", {mode: "visual", subMode: vim.visualLine ? "linewise" : vim.visualBlock ? "blockwise" : ""});
          updateCmSelection(cm);
          updateMark(cm, vim, '<', cursorMin(anchor, head));
          updateMark(cm, vim, '>', cursorMax(anchor, head));
        } else if (vim.visualLine ^ actionArgs.linewise ||
            vim.visualBlock ^ actionArgs.blockwise) {
          // Toggling between modes
          vim.visualLine = !!actionArgs.linewise;
          vim.visualBlock = !!actionArgs.blockwise;
          CodeMirror.signal(cm, "vim-mode-change", {mode: "visual", subMode: vim.visualLine ? "linewise" : vim.visualBlock ? "blockwise" : ""});
          updateCmSelection(cm);
        } else {
          exitVisualMode(cm);
        }
      },
      reselectLastSelection: function(cm, _actionArgs, vim) {
        var lastSelection = vim.lastSelection;
        if (vim.visualMode) {
          updateLastSelection(cm, vim);
        }
        if (lastSelection) {
          var anchor = lastSelection.anchorMark.find();
          var head = lastSelection.headMark.find();
          if (!anchor || !head) {
            // If the marks have been destroyed due to edits, do nothing.
            return;
          }
          vim.sel = {
            anchor: anchor,
            head: head
          };
          vim.visualMode = true;
          vim.visualLine = lastSelection.visualLine;
          vim.visualBlock = lastSelection.visualBlock;
          updateCmSelection(cm);
          updateMark(cm, vim, '<', cursorMin(anchor, head));
          updateMark(cm, vim, '>', cursorMax(anchor, head));
          CodeMirror.signal(cm, 'vim-mode-change', {
            mode: 'visual',
            subMode: vim.visualLine ? 'linewise' :
                     vim.visualBlock ? 'blockwise' : ''});
        }
      },
      joinLines: function(cm, actionArgs, vim) {
        var curStart, curEnd;
        if (vim.visualMode) {
          curStart = cm.getCursor('anchor');
          curEnd = cm.getCursor('head');
          if (cursorIsBefore(curEnd, curStart)) {
            var tmp = curEnd;
            curEnd = curStart;
            curStart = tmp;
          }
          curEnd.ch = lineLength(cm, curEnd.line) - 1;
        } else {
          // Repeat is the number of lines to join. Minimum 2 lines.
          var repeat = Math.max(actionArgs.repeat, 2);
          curStart = cm.getCursor();
          curEnd = clipCursorToContent(cm, Pos(curStart.line + repeat - 1,
                                               Infinity));
        }
        var finalCh = 0;
        for (var i = curStart.line; i < curEnd.line; i++) {
          finalCh = lineLength(cm, curStart.line);
          var tmp = Pos(curStart.line + 1,
                        lineLength(cm, curStart.line + 1));
          var text = cm.getRange(curStart, tmp);
          text = text.replace(/\n\s*/g, ' ');
          cm.replaceRange(text, curStart, tmp);
        }
        var curFinalPos = Pos(curStart.line, finalCh);
        if (vim.visualMode) {
          exitVisualMode(cm, false);
        }
        cm.setCursor(curFinalPos);
      },
      newLineAndEnterInsertMode: function(cm, actionArgs, vim) {
        vim.insertMode = true;
        var insertAt = copyCursor(cm.getCursor());
        if (insertAt.line === cm.firstLine() && !actionArgs.after) {
          // Special case for inserting newline before start of document.
          cm.replaceRange('\n', Pos(cm.firstLine(), 0));
          cm.setCursor(cm.firstLine(), 0);
        } else {
          insertAt.line = (actionArgs.after) ? insertAt.line :
              insertAt.line - 1;
          insertAt.ch = lineLength(cm, insertAt.line);
          cm.setCursor(insertAt);
          var newlineFn = CodeMirror.commands.newlineAndIndentContinueComment ||
              CodeMirror.commands.newlineAndIndent;
          newlineFn(cm);
        }
        this.enterInsertMode(cm, { repeat: actionArgs.repeat }, vim);
      },
      paste: function(cm, actionArgs, vim) {
        var cur = copyCursor(cm.getCursor());
        var register = vimGlobalState.registerController.getRegister(
            actionArgs.registerName);
        var text = register.toString();
        if (!text) {
          return;
        }
        if (actionArgs.matchIndent) {
          var tabSize = cm.getOption("tabSize");
          // length that considers tabs and tabSize
          var whitespaceLength = function(str) {
            var tabs = (str.split("\t").length - 1);
            var spaces = (str.split(" ").length - 1);
            return tabs * tabSize + spaces * 1;
          };
          var currentLine = cm.getLine(cm.getCursor().line);
          var indent = whitespaceLength(currentLine.match(/^\s*/)[0]);
          // chomp last newline b/c don't want it to match /^\s*/gm
          var chompedText = text.replace(/\n$/, '');
          var wasChomped = text !== chompedText;
          var firstIndent = whitespaceLength(text.match(/^\s*/)[0]);
          var text = chompedText.replace(/^\s*/gm, function(wspace) {
            var newIndent = indent + (whitespaceLength(wspace) - firstIndent);
            if (newIndent < 0) {
              return "";
            }
            else if (cm.getOption("indentWithTabs")) {
              var quotient = Math.floor(newIndent / tabSize);
              return Array(quotient + 1).join('\t');
            }
            else {
              return Array(newIndent + 1).join(' ');
            }
          });
          text += wasChomped ? "\n" : "";
        }
        if (actionArgs.repeat > 1) {
          var text = Array(actionArgs.repeat + 1).join(text);
        }
        var linewise = register.linewise;
        var blockwise = register.blockwise;
        if (linewise) {
          if(vim.visualMode) {
            text = vim.visualLine ? text.slice(0, -1) : '\n' + text.slice(0, text.length - 1) + '\n';
          } else if (actionArgs.after) {
            // Move the newline at the end to the start instead, and paste just
            // before the newline character of the line we are on right now.
            text = '\n' + text.slice(0, text.length - 1);
            cur.ch = lineLength(cm, cur.line);
          } else {
            cur.ch = 0;
          }
        } else {
          if (blockwise) {
            text = text.split('\n');
            for (var i = 0; i < text.length; i++) {
              text[i] = (text[i] == '') ? ' ' : text[i];
            }
          }
          cur.ch += actionArgs.after ? 1 : 0;
        }
        var curPosFinal;
        var idx;
        if (vim.visualMode) {
          //  save the pasted text for reselection if the need arises
          vim.lastPastedText = text;
          var lastSelectionCurEnd;
          var selectedArea = getSelectedAreaRange(cm, vim);
          var selectionStart = selectedArea[0];
          var selectionEnd = selectedArea[1];
          var selectedText = cm.getSelection();
          var selections = cm.listSelections();
          var emptyStrings = new Array(selections.length).join('1').split('1');
          // save the curEnd marker before it get cleared due to cm.replaceRange.
          if (vim.lastSelection) {
            lastSelectionCurEnd = vim.lastSelection.headMark.find();
          }
          // push the previously selected text to unnamed register
          vimGlobalState.registerController.unnamedRegister.setText(selectedText);
          if (blockwise) {
            // first delete the selected text
            cm.replaceSelections(emptyStrings);
            // Set new selections as per the block length of the yanked text
            selectionEnd = Pos(selectionStart.line + text.length-1, selectionStart.ch);
            cm.setCursor(selectionStart);
            selectBlock(cm, selectionEnd);
            cm.replaceSelections(text);
            curPosFinal = selectionStart;
          } else if (vim.visualBlock) {
            cm.replaceSelections(emptyStrings);
            cm.setCursor(selectionStart);
            cm.replaceRange(text, selectionStart, selectionStart);
            curPosFinal = selectionStart;
          } else {
            cm.replaceRange(text, selectionStart, selectionEnd);
            curPosFinal = cm.posFromIndex(cm.indexFromPos(selectionStart) + text.length - 1);
          }
          // restore the the curEnd marker
          if(lastSelectionCurEnd) {
            vim.lastSelection.headMark = cm.setBookmark(lastSelectionCurEnd);
          }
          if (linewise) {
            curPosFinal.ch=0;
          }
        } else {
          if (blockwise) {
            cm.setCursor(cur);
            for (var i = 0; i < text.length; i++) {
              var line = cur.line+i;
              if (line > cm.lastLine()) {
                cm.replaceRange('\n',  Pos(line, 0));
              }
              var lastCh = lineLength(cm, line);
              if (lastCh < cur.ch) {
                extendLineToColumn(cm, line, cur.ch);
              }
            }
            cm.setCursor(cur);
            selectBlock(cm, Pos(cur.line + text.length-1, cur.ch));
            cm.replaceSelections(text);
            curPosFinal = cur;
          } else {
            cm.replaceRange(text, cur);
            // Now fine tune the cursor to where we want it.
            if (linewise && actionArgs.after) {
              curPosFinal = Pos(
              cur.line + 1,
              findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1)));
            } else if (linewise && !actionArgs.after) {
              curPosFinal = Pos(
                cur.line,
                findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line)));
            } else if (!linewise && actionArgs.after) {
              idx = cm.indexFromPos(cur);
              curPosFinal = cm.posFromIndex(idx + text.length - 1);
            } else {
              idx = cm.indexFromPos(cur);
              curPosFinal = cm.posFromIndex(idx + text.length);
            }
          }
        }
        if (vim.visualMode) {
          exitVisualMode(cm, false);
        }
        cm.setCursor(curPosFinal);
      },
      undo: function(cm, actionArgs) {
        cm.operation(function() {
          repeatFn(cm, CodeMirror.commands.undo, actionArgs.repeat)();
          cm.setCursor(cm.getCursor('anchor'));
        });
      },
      redo: function(cm, actionArgs) {
        repeatFn(cm, CodeMirror.commands.redo, actionArgs.repeat)();
      },
      setRegister: function(_cm, actionArgs, vim) {
        vim.inputState.registerName = actionArgs.selectedCharacter;
      },
      setMark: function(cm, actionArgs, vim) {
        var markName = actionArgs.selectedCharacter;
        updateMark(cm, vim, markName, cm.getCursor());
      },
      replace: function(cm, actionArgs, vim) {
        var replaceWith = actionArgs.selectedCharacter;
        var curStart = cm.getCursor();
        var replaceTo;
        var curEnd;
        var selections = cm.listSelections();
        if (vim.visualMode) {
          curStart = cm.getCursor('start');
          curEnd = cm.getCursor('end');
        } else {
          var line = cm.getLine(curStart.line);
          replaceTo = curStart.ch + actionArgs.repeat;
          if (replaceTo > line.length) {
            replaceTo=line.length;
          }
          curEnd = Pos(curStart.line, replaceTo);
        }
        if (replaceWith=='\n') {
          if (!vim.visualMode) cm.replaceRange('', curStart, curEnd);
          // special case, where vim help says to replace by just one line-break
          (CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent)(cm);
        } else {
          var replaceWithStr = cm.getRange(curStart, curEnd);
          //replace all characters in range by selected, but keep linebreaks
          replaceWithStr = replaceWithStr.replace(/[^\n]/g, replaceWith);
          if (vim.visualBlock) {
            // Tabs are split in visua block before replacing
            var spaces = new Array(cm.getOption("tabSize")+1).join(' ');
            replaceWithStr = cm.getSelection();
            replaceWithStr = replaceWithStr.replace(/\t/g, spaces).replace(/[^\n]/g, replaceWith).split('\n');
            cm.replaceSelections(replaceWithStr);
          } else {
            cm.replaceRange(replaceWithStr, curStart, curEnd);
          }
          if (vim.visualMode) {
            curStart = cursorIsBefore(selections[0].anchor, selections[0].head) ?
                         selections[0].anchor : selections[0].head;
            cm.setCursor(curStart);
            exitVisualMode(cm, false);
          } else {
            cm.setCursor(offsetCursor(curEnd, 0, -1));
          }
        }
      },
      incrementNumberToken: function(cm, actionArgs) {
        var cur = cm.getCursor();
        var lineStr = cm.getLine(cur.line);
        var re = /(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;
        var match;
        var start;
        var end;
        var numberStr;
        while ((match = re.exec(lineStr)) !== null) {
          start = match.index;
          end = start + match[0].length;
          if (cur.ch < end)break;
        }
        if (!actionArgs.backtrack && (end <= cur.ch))return;
        if (match) {
          var baseStr = match[2] || match[4]
          var digits = match[3] || match[5]
          var increment = actionArgs.increase ? 1 : -1;
          var base = {'0b': 2, '0': 8, '': 10, '0x': 16}[baseStr.toLowerCase()];
          var number = parseInt(match[1] + digits, base) + (increment * actionArgs.repeat);
          numberStr = number.toString(base);
          var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : ''
          if (numberStr.charAt(0) === '-') {
            numberStr = '-' + baseStr + zeroPadding + numberStr.substr(1);
          } else {
            numberStr = baseStr + zeroPadding + numberStr;
          }
          var from = Pos(cur.line, start);
          var to = Pos(cur.line, end);
          cm.replaceRange(numberStr, from, to);
        } else {
          return;
        }
        cm.setCursor(Pos(cur.line, start + numberStr.length - 1));
      },
      repeatLastEdit: function(cm, actionArgs, vim) {
        var lastEditInputState = vim.lastEditInputState;
        if (!lastEditInputState) { return; }
        var repeat = actionArgs.repeat;
        if (repeat && actionArgs.repeatIsExplicit) {
          vim.lastEditInputState.repeatOverride = repeat;
        } else {
          repeat = vim.lastEditInputState.repeatOverride || repeat;
        }
        repeatLastEdit(cm, vim, repeat, false /** repeatForInsert */);
      },
      indent: function(cm, actionArgs) {
        cm.indentLine(cm.getCursor().line, actionArgs.indentRight);
      },
      exitInsertMode: exitInsertMode
    };

    function defineAction(name, fn) {
      actions[name] = fn;
    }

    /*
     * Below are miscellaneous utility functions used by vim.js
     */

    /**
     * Clips cursor to ensure that line is within the buffer's range
     * If includeLineBreak is true, then allow cur.ch == lineLength.
     */
    function clipCursorToContent(cm, cur, includeLineBreak) {
      var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() );
      var maxCh = lineLength(cm, line) - 1;
      maxCh = (includeLineBreak) ? maxCh + 1 : maxCh;
      var ch = Math.min(Math.max(0, cur.ch), maxCh);
      return Pos(line, ch);
    }
    function copyArgs(args) {
      var ret = {};
      for (var prop in args) {
        if (args.hasOwnProperty(prop)) {
          ret[prop] = args[prop];
        }
      }
      return ret;
    }
    function offsetCursor(cur, offsetLine, offsetCh) {
      if (typeof offsetLine === 'object') {
        offsetCh = offsetLine.ch;
        offsetLine = offsetLine.line;
      }
      return Pos(cur.line + offsetLine, cur.ch + offsetCh);
    }
    function getOffset(anchor, head) {
      return {
        line: head.line - anchor.line,
        ch: head.line - anchor.line
      };
    }
    function commandMatches(keys, keyMap, context, inputState) {
      // Partial matches are not applied. They inform the key handler
      // that the current key sequence is a subsequence of a valid key
      // sequence, so that the key buffer is not cleared.
      var match, partial = [], full = [];
      for (var i = 0; i < keyMap.length; i++) {
        var command = keyMap[i];
        if (context == 'insert' && command.context != 'insert' ||
            command.context && command.context != context ||
            inputState.operator && command.type == 'action' ||
            !(match = commandMatch(keys, command.keys))) { continue; }
        if (match == 'partial') { partial.push(command); }
        if (match == 'full') { full.push(command); }
      }
      return {
        partial: partial.length && partial,
        full: full.length && full
      };
    }
    function commandMatch(pressed, mapped) {
      if (mapped.slice(-11) == '<character>') {
        // Last character matches anything.
        var prefixLen = mapped.length - 11;
        var pressedPrefix = pressed.slice(0, prefixLen);
        var mappedPrefix = mapped.slice(0, prefixLen);
        return pressedPrefix == mappedPrefix && pressed.length > prefixLen ? 'full' :
               mappedPrefix.indexOf(pressedPrefix) == 0 ? 'partial' : false;
      } else {
        return pressed == mapped ? 'full' :
               mapped.indexOf(pressed) == 0 ? 'partial' : false;
      }
    }
    function lastChar(keys) {
      var match = /^.*(<[^>]+>)$/.exec(keys);
      var selectedCharacter = match ? match[1] : keys.slice(-1);
      if (selectedCharacter.length > 1){
        switch(selectedCharacter){
          case '<CR>':
            selectedCharacter='\n';
            break;
          case '<Space>':
            selectedCharacter=' ';
            break;
          default:
            selectedCharacter='';
            break;
        }
      }
      return selectedCharacter;
    }
    function repeatFn(cm, fn, repeat) {
      return function() {
        for (var i = 0; i < repeat; i++) {
          fn(cm);
        }
      };
    }
    function copyCursor(cur) {
      return Pos(cur.line, cur.ch);
    }
    function cursorEqual(cur1, cur2) {
      return cur1.ch == cur2.ch && cur1.line == cur2.line;
    }
    function cursorIsBefore(cur1, cur2) {
      if (cur1.line < cur2.line) {
        return true;
      }
      if (cur1.line == cur2.line && cur1.ch < cur2.ch) {
        return true;
      }
      return false;
    }
    function cursorMin(cur1, cur2) {
      if (arguments.length > 2) {
        cur2 = cursorMin.apply(undefined, Array.prototype.slice.call(arguments, 1));
      }
      return cursorIsBefore(cur1, cur2) ? cur1 : cur2;
    }
    function cursorMax(cur1, cur2) {
      if (arguments.length > 2) {
        cur2 = cursorMax.apply(undefined, Array.prototype.slice.call(arguments, 1));
      }
      return cursorIsBefore(cur1, cur2) ? cur2 : cur1;
    }
    function cursorIsBetween(cur1, cur2, cur3) {
      // returns true if cur2 is between cur1 and cur3.
      var cur1before2 = cursorIsBefore(cur1, cur2);
      var cur2before3 = cursorIsBefore(cur2, cur3);
      return cur1before2 && cur2before3;
    }
    function lineLength(cm, lineNum) {
      return cm.getLine(lineNum).length;
    }
    function trim(s) {
      if (s.trim) {
        return s.trim();
      }
      return s.replace(/^\s+|\s+$/g, '');
    }
    function escapeRegex(s) {
      return s.replace(/([.?*+$\[\]\/\\(){}|\-])/g, '\\$1');
    }
    function extendLineToColumn(cm, lineNum, column) {
      var endCh = lineLength(cm, lineNum);
      var spaces = new Array(column-endCh+1).join(' ');
      cm.setCursor(Pos(lineNum, endCh));
      cm.replaceRange(spaces, cm.getCursor());
    }
    // This functions selects a rectangular block
    // of text with selectionEnd as any of its corner
    // Height of block:
    // Difference in selectionEnd.line and first/last selection.line
    // Width of the block:
    // Distance between selectionEnd.ch and any(first considered here) selection.ch
    function selectBlock(cm, selectionEnd) {
      var selections = [], ranges = cm.listSelections();
      var head = copyCursor(cm.clipPos(selectionEnd));
      var isClipped = !cursorEqual(selectionEnd, head);
      var curHead = cm.getCursor('head');
      var primIndex = getIndex(ranges, curHead);
      var wasClipped = cursorEqual(ranges[primIndex].head, ranges[primIndex].anchor);
      var max = ranges.length - 1;
      var index = max - primIndex > primIndex ? max : 0;
      var base = ranges[index].anchor;

      var firstLine = Math.min(base.line, head.line);
      var lastLine = Math.max(base.line, head.line);
      var baseCh = base.ch, headCh = head.ch;

      var dir = ranges[index].head.ch - baseCh;
      var newDir = headCh - baseCh;
      if (dir > 0 && newDir <= 0) {
        baseCh++;
        if (!isClipped) { headCh--; }
      } else if (dir < 0 && newDir >= 0) {
        baseCh--;
        if (!wasClipped) { headCh++; }
      } else if (dir < 0 && newDir == -1) {
        baseCh--;
        headCh++;
      }
      for (var line = firstLine; line <= lastLine; line++) {
        var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};
        selections.push(range);
      }
      cm.setSelections(selections);
      selectionEnd.ch = headCh;
      base.ch = baseCh;
      return base;
    }
    function selectForInsert(cm, head, height) {
      var sel = [];
      for (var i = 0; i < height; i++) {
        var lineHead = offsetCursor(head, i, 0);
        sel.push({anchor: lineHead, head: lineHead});
      }
      cm.setSelections(sel, 0);
    }
    // getIndex returns the index of the cursor in the selections.
    function getIndex(ranges, cursor, end) {
      for (var i = 0; i < ranges.length; i++) {
        var atAnchor = end != 'head' && cursorEqual(ranges[i].anchor, cursor);
        var atHead = end != 'anchor' && cursorEqual(ranges[i].head, cursor);
        if (atAnchor || atHead) {
          return i;
        }
      }
      return -1;
    }
    function getSelectedAreaRange(cm, vim) {
      var lastSelection = vim.lastSelection;
      var getCurrentSelectedAreaRange = function() {
        var selections = cm.listSelections();
        var start =  selections[0];
        var end = selections[selections.length-1];
        var selectionStart = cursorIsBefore(start.anchor, start.head) ? start.anchor : start.head;
        var selectionEnd = cursorIsBefore(end.anchor, end.head) ? end.head : end.anchor;
        return [selectionStart, selectionEnd];
      };
      var getLastSelectedAreaRange = function() {
        var selectionStart = cm.getCursor();
        var selectionEnd = cm.getCursor();
        var block = lastSelection.visualBlock;
        if (block) {
          var width = block.width;
          var height = block.height;
          selectionEnd = Pos(selectionStart.line + height, selectionStart.ch + width);
          var selections = [];
          // selectBlock creates a 'proper' rectangular block.
          // We do not want that in all cases, so we manually set selections.
          for (var i = selectionStart.line; i < selectionEnd.line; i++) {
            var anchor = Pos(i, selectionStart.ch);
            var head = Pos(i, selectionEnd.ch);
            var range = {anchor: anchor, head: head};
            selections.push(range);
          }
          cm.setSelections(selections);
        } else {
          var start = lastSelection.anchorMark.find();
          var end = lastSelection.headMark.find();
          var line = end.line - start.line;
          var ch = end.ch - start.ch;
          selectionEnd = {line: selectionEnd.line + line, ch: line ? selectionEnd.ch : ch + selectionEnd.ch};
          if (lastSelection.visualLine) {
            selectionStart = Pos(selectionStart.line, 0);
            selectionEnd = Pos(selectionEnd.line, lineLength(cm, selectionEnd.line));
          }
          cm.setSelection(selectionStart, selectionEnd);
        }
        return [selectionStart, selectionEnd];
      };
      if (!vim.visualMode) {
      // In case of replaying the action.
        return getLastSelectedAreaRange();
      } else {
        return getCurrentSelectedAreaRange();
      }
    }
    // Updates the previous selection with the current selection's values. This
    // should only be called in visual mode.
    function updateLastSelection(cm, vim) {
      var anchor = vim.sel.anchor;
      var head = vim.sel.head;
      // To accommodate the effect of lastPastedText in the last selection
      if (vim.lastPastedText) {
        head = cm.posFromIndex(cm.indexFromPos(anchor) + vim.lastPastedText.length);
        vim.lastPastedText = null;
      }
      vim.lastSelection = {'anchorMark': cm.setBookmark(anchor),
                           'headMark': cm.setBookmark(head),
                           'anchor': copyCursor(anchor),
                           'head': copyCursor(head),
                           'visualMode': vim.visualMode,
                           'visualLine': vim.visualLine,
                           'visualBlock': vim.visualBlock};
    }
    function expandSelection(cm, start, end) {
      var sel = cm.state.vim.sel;
      var head = sel.head;
      var anchor = sel.anchor;
      var tmp;
      if (cursorIsBefore(end, start)) {
        tmp = end;
        end = start;
        start = tmp;
      }
      if (cursorIsBefore(head, anchor)) {
        head = cursorMin(start, head);
        anchor = cursorMax(anchor, end);
      } else {
        anchor = cursorMin(start, anchor);
        head = cursorMax(head, end);
        head = offsetCursor(head, 0, -1);
        if (head.ch == -1 && head.line != cm.firstLine()) {
          head = Pos(head.line - 1, lineLength(cm, head.line - 1));
        }
      }
      return [anchor, head];
    }
    /**
     * Updates the CodeMirror selection to match the provided vim selection.
     * If no arguments are given, it uses the current vim selection state.
     */
    function updateCmSelection(cm, sel, mode) {
      var vim = cm.state.vim;
      sel = sel || vim.sel;
      var mode = mode ||
        vim.visualLine ? 'line' : vim.visualBlock ? 'block' : 'char';
      var cmSel = makeCmSelection(cm, sel, mode);
      cm.setSelections(cmSel.ranges, cmSel.primary);
      updateFakeCursor(cm);
    }
    function makeCmSelection(cm, sel, mode, exclusive) {
      var head = copyCursor(sel.head);
      var anchor = copyCursor(sel.anchor);
      if (mode == 'char') {
        var headOffset = !exclusive && !cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;
        var anchorOffset = cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;
        head = offsetCursor(sel.head, 0, headOffset);
        anchor = offsetCursor(sel.anchor, 0, anchorOffset);
        return {
          ranges: [{anchor: anchor, head: head}],
          primary: 0
        };
      } else if (mode == 'line') {
        if (!cursorIsBefore(sel.head, sel.anchor)) {
          anchor.ch = 0;

          var lastLine = cm.lastLine();
          if (head.line > lastLine) {
            head.line = lastLine;
          }
          head.ch = lineLength(cm, head.line);
        } else {
          head.ch = 0;
          anchor.ch = lineLength(cm, anchor.line);
        }
        return {
          ranges: [{anchor: anchor, head: head}],
          primary: 0
        };
      } else if (mode == 'block') {
        var top = Math.min(anchor.line, head.line),
            left = Math.min(anchor.ch, head.ch),
            bottom = Math.max(anchor.line, head.line),
            right = Math.max(anchor.ch, head.ch) + 1;
        var height = bottom - top + 1;
        var primary = head.line == top ? 0 : height - 1;
        var ranges = [];
        for (var i = 0; i < height; i++) {
          ranges.push({
            anchor: Pos(top + i, left),
            head: Pos(top + i, right)
          });
        }
        return {
          ranges: ranges,
          primary: primary
        };
      }
    }
    function getHead(cm) {
      var cur = cm.getCursor('head');
      if (cm.getSelection().length == 1) {
        // Small corner case when only 1 character is selected. The "real"
        // head is the left of head and anchor.
        cur = cursorMin(cur, cm.getCursor('anchor'));
      }
      return cur;
    }

    /**
     * If moveHead is set to false, the CodeMirror selection will not be
     * touched. The caller assumes the responsibility of putting the cursor
    * in the right place.
     */
    function exitVisualMode(cm, moveHead) {
      var vim = cm.state.vim;
      if (moveHead !== false) {
        cm.setCursor(clipCursorToContent(cm, vim.sel.head));
      }
      updateLastSelection(cm, vim);
      vim.visualMode = false;
      vim.visualLine = false;
      vim.visualBlock = false;
      CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
      if (vim.fakeCursor) {
        vim.fakeCursor.clear();
      }
    }

    // Remove any trailing newlines from the selection. For
    // example, with the caret at the start of the last word on the line,
    // 'dw' should word, but not the newline, while 'w' should advance the
    // caret to the first character of the next line.
    function clipToLine(cm, curStart, curEnd) {
      var selection = cm.getRange(curStart, curEnd);
      // Only clip if the selection ends with trailing newline + whitespace
      if (/\n\s*$/.test(selection)) {
        var lines = selection.split('\n');
        // We know this is all whitespace.
        lines.pop();

        // Cases:
        // 1. Last word is an empty line - do not clip the trailing '\n'
        // 2. Last word is not an empty line - clip the trailing '\n'
        var line;
        // Find the line containing the last word, and clip all whitespace up
        // to it.
        for (var line = lines.pop(); lines.length > 0 && line && isWhiteSpaceString(line); line = lines.pop()) {
          curEnd.line--;
          curEnd.ch = 0;
        }
        // If the last word is not an empty line, clip an additional newline
        if (line) {
          curEnd.line--;
          curEnd.ch = lineLength(cm, curEnd.line);
        } else {
          curEnd.ch = 0;
        }
      }
    }

    // Expand the selection to line ends.
    function expandSelectionToLine(_cm, curStart, curEnd) {
      curStart.ch = 0;
      curEnd.ch = 0;
      curEnd.line++;
    }

    function findFirstNonWhiteSpaceCharacter(text) {
      if (!text) {
        return 0;
      }
      var firstNonWS = text.search(/\S/);
      return firstNonWS == -1 ? text.length : firstNonWS;
    }

    function expandWordUnderCursor(cm, inclusive, _forward, bigWord, noSymbol) {
      var cur = getHead(cm);
      var line = cm.getLine(cur.line);
      var idx = cur.ch;

      // Seek to first word or non-whitespace character, depending on if
      // noSymbol is true.
      var test = noSymbol ? wordCharTest[0] : bigWordCharTest [0];
      while (!test(line.charAt(idx))) {
        idx++;
        if (idx >= line.length) { return null; }
      }

      if (bigWord) {
        test = bigWordCharTest[0];
      } else {
        test = wordCharTest[0];
        if (!test(line.charAt(idx))) {
          test = wordCharTest[1];
        }
      }

      var end = idx, start = idx;
      while (test(line.charAt(end)) && end < line.length) { end++; }
      while (test(line.charAt(start)) && start >= 0) { start--; }
      start++;

      if (inclusive) {
        // If present, include all whitespace after word.
        // Otherwise, include all whitespace before word, except indentation.
        var wordEnd = end;
        while (/\s/.test(line.charAt(end)) && end < line.length) { end++; }
        if (wordEnd == end) {
          var wordStart = start;
          while (/\s/.test(line.charAt(start - 1)) && start > 0) { start--; }
          if (!start) { start = wordStart; }
        }
      }
      return { start: Pos(cur.line, start), end: Pos(cur.line, end) };
    }

    function recordJumpPosition(cm, oldCur, newCur) {
      if (!cursorEqual(oldCur, newCur)) {
        vimGlobalState.jumpList.add(cm, oldCur, newCur);
      }
    }

    function recordLastCharacterSearch(increment, args) {
        vimGlobalState.lastCharacterSearch.increment = increment;
        vimGlobalState.lastCharacterSearch.forward = args.forward;
        vimGlobalState.lastCharacterSearch.selectedCharacter = args.selectedCharacter;
    }

    var symbolToMode = {
        '(': 'bracket', ')': 'bracket', '{': 'bracket', '}': 'bracket',
        '[': 'section', ']': 'section',
        '*': 'comment', '/': 'comment',
        'm': 'method', 'M': 'method',
        '#': 'preprocess'
    };
    var findSymbolModes = {
      bracket: {
        isComplete: function(state) {
          if (state.nextCh === state.symb) {
            state.depth++;
            if (state.depth >= 1)return true;
          } else if (state.nextCh === state.reverseSymb) {
            state.depth--;
          }
          return false;
        }
      },
      section: {
        init: function(state) {
          state.curMoveThrough = true;
          state.symb = (state.forward ? ']' : '[') === state.symb ? '{' : '}';
        },
        isComplete: function(state) {
          return state.index === 0 && state.nextCh === state.symb;
        }
      },
      comment: {
        isComplete: function(state) {
          var found = state.lastCh === '*' && state.nextCh === '/';
          state.lastCh = state.nextCh;
          return found;
        }
      },
      // TODO: The original Vim implementation only operates on level 1 and 2.
      // The current implementation doesn't check for code block level and
      // therefore it operates on any levels.
      method: {
        init: function(state) {
          state.symb = (state.symb === 'm' ? '{' : '}');
          state.reverseSymb = state.symb === '{' ? '}' : '{';
        },
        isComplete: function(state) {
          if (state.nextCh === state.symb)return true;
          return false;
        }
      },
      preprocess: {
        init: function(state) {
          state.index = 0;
        },
        isComplete: function(state) {
          if (state.nextCh === '#') {
            var token = state.lineText.match(/#(\w+)/)[1];
            if (token === 'endif') {
              if (state.forward && state.depth === 0) {
                return true;
              }
              state.depth++;
            } else if (token === 'if') {
              if (!state.forward && state.depth === 0) {
                return true;
              }
              state.depth--;
            }
            if (token === 'else' && state.depth === 0)return true;
          }
          return false;
        }
      }
    };
    function findSymbol(cm, repeat, forward, symb) {
      var cur = copyCursor(cm.getCursor());
      var increment = forward ? 1 : -1;
      var endLine = forward ? cm.lineCount() : -1;
      var curCh = cur.ch;
      var line = cur.line;
      var lineText = cm.getLine(line);
      var state = {
        lineText: lineText,
        nextCh: lineText.charAt(curCh),
        lastCh: null,
        index: curCh,
        symb: symb,
        reverseSymb: (forward ?  { ')': '(', '}': '{' } : { '(': ')', '{': '}' })[symb],
        forward: forward,
        depth: 0,
        curMoveThrough: false
      };
      var mode = symbolToMode[symb];
      if (!mode)return cur;
      var init = findSymbolModes[mode].init;
      var isComplete = findSymbolModes[mode].isComplete;
      if (init) { init(state); }
      while (line !== endLine && repeat) {
        state.index += increment;
        state.nextCh = state.lineText.charAt(state.index);
        if (!state.nextCh) {
          line += increment;
          state.lineText = cm.getLine(line) || '';
          if (increment > 0) {
            state.index = 0;
          } else {
            var lineLen = state.lineText.length;
            state.index = (lineLen > 0) ? (lineLen-1) : 0;
          }
          state.nextCh = state.lineText.charAt(state.index);
        }
        if (isComplete(state)) {
          cur.line = line;
          cur.ch = state.index;
          repeat--;
        }
      }
      if (state.nextCh || state.curMoveThrough) {
        return Pos(line, state.index);
      }
      return cur;
    }

    /*
     * Returns the boundaries of the next word. If the cursor in the middle of
     * the word, then returns the boundaries of the current word, starting at
     * the cursor. If the cursor is at the start/end of a word, and we are going
     * forward/backward, respectively, find the boundaries of the next word.
     *
     * @param {CodeMirror} cm CodeMirror object.
     * @param {Cursor} cur The cursor position.
     * @param {boolean} forward True to search forward. False to search
     *     backward.
     * @param {boolean} bigWord True if punctuation count as part of the word.
     *     False if only [a-zA-Z0-9] characters count as part of the word.
     * @param {boolean} emptyLineIsWord True if empty lines should be treated
     *     as words.
     * @return {Object{from:number, to:number, line: number}} The boundaries of
     *     the word, or null if there are no more words.
     */
    function findWord(cm, cur, forward, bigWord, emptyLineIsWord) {
      var lineNum = cur.line;
      var pos = cur.ch;
      var line = cm.getLine(lineNum);
      var dir = forward ? 1 : -1;
      var charTests = bigWord ? bigWordCharTest: wordCharTest;

      if (emptyLineIsWord && line == '') {
        lineNum += dir;
        line = cm.getLine(lineNum);
        if (!isLine(cm, lineNum)) {
          return null;
        }
        pos = (forward) ? 0 : line.length;
      }

      while (true) {
        if (emptyLineIsWord && line == '') {
          return { from: 0, to: 0, line: lineNum };
        }
        var stop = (dir > 0) ? line.length : -1;
        var wordStart = stop, wordEnd = stop;
        // Find bounds of next word.
        while (pos != stop) {
          var foundWord = false;
          for (var i = 0; i < charTests.length && !foundWord; ++i) {
            if (charTests[i](line.charAt(pos))) {
              wordStart = pos;
              // Advance to end of word.
              while (pos != stop && charTests[i](line.charAt(pos))) {
                pos += dir;
              }
              wordEnd = pos;
              foundWord = wordStart != wordEnd;
              if (wordStart == cur.ch && lineNum == cur.line &&
                  wordEnd == wordStart + dir) {
                // We started at the end of a word. Find the next one.
                continue;
              } else {
                return {
                  from: Math.min(wordStart, wordEnd + 1),
                  to: Math.max(wordStart, wordEnd),
                  line: lineNum };
              }
            }
          }
          if (!foundWord) {
            pos += dir;
          }
        }
        // Advance to next/prev line.
        lineNum += dir;
        if (!isLine(cm, lineNum)) {
          return null;
        }
        line = cm.getLine(lineNum);
        pos = (dir > 0) ? 0 : line.length;
      }
    }

    /**
     * @param {CodeMirror} cm CodeMirror object.
     * @param {Pos} cur The position to start from.
     * @param {int} repeat Number of words to move past.
     * @param {boolean} forward True to search forward. False to search
     *     backward.
     * @param {boolean} wordEnd True to move to end of word. False to move to
     *     beginning of word.
     * @param {boolean} bigWord True if punctuation count as part of the word.
     *     False if only alphabet characters count as part of the word.
     * @return {Cursor} The position the cursor should move to.
     */
    function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) {
      var curStart = copyCursor(cur);
      var words = [];
      if (forward && !wordEnd || !forward && wordEnd) {
        repeat++;
      }
      // For 'e', empty lines are not considered words, go figure.
      var emptyLineIsWord = !(forward && wordEnd);
      for (var i = 0; i < repeat; i++) {
        var word = findWord(cm, cur, forward, bigWord, emptyLineIsWord);
        if (!word) {
          var eodCh = lineLength(cm, cm.lastLine());
          words.push(forward
              ? {line: cm.lastLine(), from: eodCh, to: eodCh}
              : {line: 0, from: 0, to: 0});
          break;
        }
        words.push(word);
        cur = Pos(word.line, forward ? (word.to - 1) : word.from);
      }
      var shortCircuit = words.length != repeat;
      var firstWord = words[0];
      var lastWord = words.pop();
      if (forward && !wordEnd) {
        // w
        if (!shortCircuit && (firstWord.from != curStart.ch || firstWord.line != curStart.line)) {
          // We did not start in the middle of a word. Discard the extra word at the end.
          lastWord = words.pop();
        }
        return Pos(lastWord.line, lastWord.from);
      } else if (forward && wordEnd) {
        return Pos(lastWord.line, lastWord.to - 1);
      } else if (!forward && wordEnd) {
        // ge
        if (!shortCircuit && (firstWord.to != curStart.ch || firstWord.line != curStart.line)) {
          // We did not start in the middle of a word. Discard the extra word at the end.
          lastWord = words.pop();
        }
        return Pos(lastWord.line, lastWord.to);
      } else {
        // b
        return Pos(lastWord.line, lastWord.from);
      }
    }

    function moveToCharacter(cm, repeat, forward, character) {
      var cur = cm.getCursor();
      var start = cur.ch;
      var idx;
      for (var i = 0; i < repeat; i ++) {
        var line = cm.getLine(cur.line);
        idx = charIdxInLine(start, line, character, forward, true);
        if (idx == -1) {
          return null;
        }
        start = idx;
      }
      return Pos(cm.getCursor().line, idx);
    }

    function moveToColumn(cm, repeat) {
      // repeat is always >= 1, so repeat - 1 always corresponds
      // to the column we want to go to.
      var line = cm.getCursor().line;
      return clipCursorToContent(cm, Pos(line, repeat - 1));
    }

    function updateMark(cm, vim, markName, pos) {
      if (!inArray(markName, validMarks)) {
        return;
      }
      if (vim.marks[markName]) {
        vim.marks[markName].clear();
      }
      vim.marks[markName] = cm.setBookmark(pos);
    }

    function charIdxInLine(start, line, character, forward, includeChar) {
      // Search for char in line.
      // motion_options: {forward, includeChar}
      // If includeChar = true, include it too.
      // If forward = true, search forward, else search backwards.
      // If char is not found on this line, do nothing
      var idx;
      if (forward) {
        idx = line.indexOf(character, start + 1);
        if (idx != -1 && !includeChar) {
          idx -= 1;
        }
      } else {
        idx = line.lastIndexOf(character, start - 1);
        if (idx != -1 && !includeChar) {
          idx += 1;
        }
      }
      return idx;
    }

    function findParagraph(cm, head, repeat, dir, inclusive) {
      var line = head.line;
      var min = cm.firstLine();
      var max = cm.lastLine();
      var start, end, i = line;
      function isEmpty(i) { return !cm.getLine(i); }
      function isBoundary(i, dir, any) {
        if (any) { return isEmpty(i) != isEmpty(i + dir); }
        return !isEmpty(i) && isEmpty(i + dir);
      }
      if (dir) {
        while (min <= i && i <= max && repeat > 0) {
          if (isBoundary(i, dir)) { repeat--; }
          i += dir;
        }
        return new Pos(i, 0);
      }

      var vim = cm.state.vim;
      if (vim.visualLine && isBoundary(line, 1, true)) {
        var anchor = vim.sel.anchor;
        if (isBoundary(anchor.line, -1, true)) {
          if (!inclusive || anchor.line != line) {
            line += 1;
          }
        }
      }
      var startState = isEmpty(line);
      for (i = line; i <= max && repeat; i++) {
        if (isBoundary(i, 1, true)) {
          if (!inclusive || isEmpty(i) != startState) {
            repeat--;
          }
        }
      }
      end = new Pos(i, 0);
      // select boundary before paragraph for the last one
      if (i > max && !startState) { startState = true; }
      else { inclusive = false; }
      for (i = line; i > min; i--) {
        if (!inclusive || isEmpty(i) == startState || i == line) {
          if (isBoundary(i, -1, true)) { break; }
        }
      }
      start = new Pos(i, 0);
      return { start: start, end: end };
    }

    function findSentence(cm, cur, repeat, dir) {

      /*
        Takes an index object
        {
          line: the line string,
          ln: line number,
          pos: index in line,
          dir: direction of traversal (-1 or 1)
        }
        and modifies the line, ln, and pos members to represent the
        next valid position or sets them to null if there are
        no more valid positions.
       */
      function nextChar(cm, idx) {
        if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {
          idx.ln += idx.dir;
          if (!isLine(cm, idx.ln)) {
            idx.line = null;
            idx.ln = null;
            idx.pos = null;
            return;
          }
          idx.line = cm.getLine(idx.ln);
          idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;
        }
        else {
          idx.pos += idx.dir;
        }
      }

      /*
        Performs one iteration of traversal in forward direction
        Returns an index object of the new location
       */
      function forward(cm, ln, pos, dir) {
        var line = cm.getLine(ln);
        var stop = (line === "");

        var curr = {
          line: line,
          ln: ln,
          pos: pos,
          dir: dir,
        }

        var last_valid = {
          ln: curr.ln,
          pos: curr.pos,
        }

        var skip_empty_lines = (curr.line === "");

        // Move one step to skip character we start on
        nextChar(cm, curr);

        while (curr.line !== null) {
          last_valid.ln = curr.ln;
          last_valid.pos = curr.pos;

          if (curr.line === "" && !skip_empty_lines) {
            return { ln: curr.ln, pos: curr.pos, };
          }
          else if (stop && curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
            return { ln: curr.ln, pos: curr.pos, };
          }
          else if (isEndOfSentenceSymbol(curr.line[curr.pos])
            && !stop
            && (curr.pos === curr.line.length - 1
              || isWhiteSpaceString(curr.line[curr.pos + 1]))) {
            stop = true;
          }

          nextChar(cm, curr);
        }

        /*
          Set the position to the last non whitespace character on the last
          valid line in the case that we reach the end of the document.
        */
        var line = cm.getLine(last_valid.ln);
        last_valid.pos = 0;
        for(var i = line.length - 1; i >= 0; --i) {
          if (!isWhiteSpaceString(line[i])) {
            last_valid.pos = i;
            break;
          }
        }

        return last_valid;

      }

      /*
        Performs one iteration of traversal in reverse direction
        Returns an index object of the new location
       */
      function reverse(cm, ln, pos, dir) {
        var line = cm.getLine(ln);

        var curr = {
          line: line,
          ln: ln,
          pos: pos,
          dir: dir,
        }

        var last_valid = {
          ln: curr.ln,
          pos: null,
        };

        var skip_empty_lines = (curr.line === "");

        // Move one step to skip character we start on
        nextChar(cm, curr);

        while (curr.line !== null) {

          if (curr.line === "" && !skip_empty_lines) {
            if (last_valid.pos !== null) {
              return last_valid;
            }
            else {
              return { ln: curr.ln, pos: curr.pos };
            }
          }
          else if (isEndOfSentenceSymbol(curr.line[curr.pos])
              && last_valid.pos !== null
              && !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {
            return last_valid;
          }
          else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
            skip_empty_lines = false;
            last_valid = { ln: curr.ln, pos: curr.pos }
          }

          nextChar(cm, curr);
        }

        /*
          Set the position to the first non whitespace character on the last
          valid line in the case that we reach the beginning of the document.
        */
        var line = cm.getLine(last_valid.ln);
        last_valid.pos = 0;
        for(var i = 0; i < line.length; ++i) {
          if (!isWhiteSpaceString(line[i])) {
            last_valid.pos = i;
            break;
          }
        }
        return last_valid;
      }

      var curr_index = {
        ln: cur.line,
        pos: cur.ch,
      };

      while (repeat > 0) {
        if (dir < 0) {
          curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);
        }
        else {
          curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);
        }
        repeat--;
      }

      return Pos(curr_index.ln, curr_index.pos);
    }

    // TODO: perhaps this finagling of start and end positions belonds
    // in codemirror/replaceRange?
    function selectCompanionObject(cm, head, symb, inclusive) {
      var cur = head, start, end;

      var bracketRegexp = ({
        '(': /[()]/, ')': /[()]/,
        '[': /[[\]]/, ']': /[[\]]/,
        '{': /[{}]/, '}': /[{}]/})[symb];
      var openSym = ({
        '(': '(', ')': '(',
        '[': '[', ']': '[',
        '{': '{', '}': '{'})[symb];
      var curChar = cm.getLine(cur.line).charAt(cur.ch);
      // Due to the behavior of scanForBracket, we need to add an offset if the
      // cursor is on a matching open bracket.
      var offset = curChar === openSym ? 1 : 0;

      start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
      end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});

      if (!start || !end) {
        return { start: cur, end: cur };
      }

      start = start.pos;
      end = end.pos;

      if ((start.line == end.line && start.ch > end.ch)
          || (start.line > end.line)) {
        var tmp = start;
        start = end;
        end = tmp;
      }

      if (inclusive) {
        end.ch += 1;
      } else {
        start.ch += 1;
      }

      return { start: start, end: end };
    }

    // Takes in a symbol and a cursor and tries to simulate text objects that
    // have identical opening and closing symbols
    // TODO support across multiple lines
    function findBeginningAndEnd(cm, head, symb, inclusive) {
      var cur = copyCursor(head);
      var line = cm.getLine(cur.line);
      var chars = line.split('');
      var start, end, i, len;
      var firstIndex = chars.indexOf(symb);

      // the decision tree is to always look backwards for the beginning first,
      // but if the cursor is in front of the first instance of the symb,
      // then move the cursor forward
      if (cur.ch < firstIndex) {
        cur.ch = firstIndex;
        // Why is this line even here???
        // cm.setCursor(cur.line, firstIndex+1);
      }
      // otherwise if the cursor is currently on the closing symbol
      else if (firstIndex < cur.ch && chars[cur.ch] == symb) {
        end = cur.ch; // assign end to the current cursor
        --cur.ch; // make sure to look backwards
      }

      // if we're currently on the symbol, we've got a start
      if (chars[cur.ch] == symb && !end) {
        start = cur.ch + 1; // assign start to ahead of the cursor
      } else {
        // go backwards to find the start
        for (i = cur.ch; i > -1 && !start; i--) {
          if (chars[i] == symb) {
            start = i + 1;
          }
        }
      }

      // look forwards for the end symbol
      if (start && !end) {
        for (i = start, len = chars.length; i < len && !end; i++) {
          if (chars[i] == symb) {
            end = i;
          }
        }
      }

      // nothing found
      if (!start || !end) {
        return { start: cur, end: cur };
      }

      // include the symbols
      if (inclusive) {
        --start; ++end;
      }

      return {
        start: Pos(cur.line, start),
        end: Pos(cur.line, end)
      };
    }

    // Search functions
    defineOption('pcre', true, 'boolean');
    function SearchState() {}
    SearchState.prototype = {
      getQuery: function() {
        return vimGlobalState.query;
      },
      setQuery: function(query) {
        vimGlobalState.query = query;
      },
      getOverlay: function() {
        return this.searchOverlay;
      },
      setOverlay: function(overlay) {
        this.searchOverlay = overlay;
      },
      isReversed: function() {
        return vimGlobalState.isReversed;
      },
      setReversed: function(reversed) {
        vimGlobalState.isReversed = reversed;
      },
      getScrollbarAnnotate: function() {
        return this.annotate;
      },
      setScrollbarAnnotate: function(annotate) {
        this.annotate = annotate;
      }
    };
    function getSearchState(cm) {
      var vim = cm.state.vim;
      return vim.searchState_ || (vim.searchState_ = new SearchState());
    }
    function dialog(cm, template, shortText, onClose, options) {
      if (cm.openDialog) {
        cm.openDialog(template, onClose, { bottom: true, value: options.value,
            onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,
            selectValueOnOpen: false});
      }
      else {
        onClose(prompt(shortText, ''));
      }
    }
    function splitBySlash(argString) {
      return splitBySeparator(argString, '/');
    }

    function findUnescapedSlashes(argString) {
      return findUnescapedSeparators(argString, '/');
    }

    function splitBySeparator(argString, separator) {
      var slashes = findUnescapedSeparators(argString, separator) || [];
      if (!slashes.length) return [];
      var tokens = [];
      // in case of strings like foo/bar
      if (slashes[0] !== 0) return;
      for (var i = 0; i < slashes.length; i++) {
        if (typeof slashes[i] == 'number')
          tokens.push(argString.substring(slashes[i] + 1, slashes[i+1]));
      }
      return tokens;
    }

    function findUnescapedSeparators(str, separator) {
      if (!separator)
        separator = '/';

      var escapeNextChar = false;
      var slashes = [];
      for (var i = 0; i < str.length; i++) {
        var c = str.charAt(i);
        if (!escapeNextChar && c == separator) {
          slashes.push(i);
        }
        escapeNextChar = !escapeNextChar && (c == '\\');
      }
      return slashes;
    }

    // Translates a search string from ex (vim) syntax into javascript form.
    function translateRegex(str) {
      // When these match, add a '\' if unescaped or remove one if escaped.
      var specials = '|(){';
      // Remove, but never add, a '\' for these.
      var unescape = '}';
      var escapeNextChar = false;
      var out = [];
      for (var i = -1; i < str.length; i++) {
        var c = str.charAt(i) || '';
        var n = str.charAt(i+1) || '';
        var specialComesNext = (n && specials.indexOf(n) != -1);
        if (escapeNextChar) {
          if (c !== '\\' || !specialComesNext) {
            out.push(c);
          }
          escapeNextChar = false;
        } else {
          if (c === '\\') {
            escapeNextChar = true;
            // Treat the unescape list as special for removing, but not adding '\'.
            if (n && unescape.indexOf(n) != -1) {
              specialComesNext = true;
            }
            // Not passing this test means removing a '\'.
            if (!specialComesNext || n === '\\') {
              out.push(c);
            }
          } else {
            out.push(c);
            if (specialComesNext && n !== '\\') {
              out.push('\\');
            }
          }
        }
      }
      return out.join('');
    }

    // Translates the replace part of a search and replace from ex (vim) syntax into
    // javascript form.  Similar to translateRegex, but additionally fixes back references
    // (translates '\[0..9]' to '$[0..9]') and follows different rules for escaping '$'.
    var charUnescapes = {'\\n': '\n', '\\r': '\r', '\\t': '\t'};
    function translateRegexReplace(str) {
      var escapeNextChar = false;
      var out = [];
      for (var i = -1; i < str.length; i++) {
        var c = str.charAt(i) || '';
        var n = str.charAt(i+1) || '';
        if (charUnescapes[c + n]) {
          out.push(charUnescapes[c+n]);
          i++;
        } else if (escapeNextChar) {
          // At any point in the loop, escapeNextChar is true if the previous
          // character was a '\' and was not escaped.
          out.push(c);
          escapeNextChar = false;
        } else {
          if (c === '\\') {
            escapeNextChar = true;
            if ((isNumber(n) || n === '$')) {
              out.push('$');
            } else if (n !== '/' && n !== '\\') {
              out.push('\\');
            }
          } else {
            if (c === '$') {
              out.push('$');
            }
            out.push(c);
            if (n === '/') {
              out.push('\\');
            }
          }
        }
      }
      return out.join('');
    }

    // Unescape \ and / in the replace part, for PCRE mode.
    var unescapes = {'\\/': '/', '\\\\': '\\', '\\n': '\n', '\\r': '\r', '\\t': '\t'};
    function unescapeRegexReplace(str) {
      var stream = new CodeMirror.StringStream(str);
      var output = [];
      while (!stream.eol()) {
        // Search for \.
        while (stream.peek() && stream.peek() != '\\') {
          output.push(stream.next());
        }
        var matched = false;
        for (var matcher in unescapes) {
          if (stream.match(matcher, true)) {
            matched = true;
            output.push(unescapes[matcher]);
            break;
          }
        }
        if (!matched) {
          // Don't change anything
          output.push(stream.next());
        }
      }
      return output.join('');
    }

    /**
     * Extract the regular expression from the query and return a Regexp object.
     * Returns null if the query is blank.
     * If ignoreCase is passed in, the Regexp object will have the 'i' flag set.
     * If smartCase is passed in, and the query contains upper case letters,
     *   then ignoreCase is overridden, and the 'i' flag will not be set.
     * If the query contains the /i in the flag part of the regular expression,
     *   then both ignoreCase and smartCase are ignored, and 'i' will be passed
     *   through to the Regex object.
     */
    function parseQuery(query, ignoreCase, smartCase) {
      // First update the last search register
      var lastSearchRegister = vimGlobalState.registerController.getRegister('/');
      lastSearchRegister.setText(query);
      // Check if the query is already a regex.
      if (query instanceof RegExp) { return query; }
      // First try to extract regex + flags from the input. If no flags found,
      // extract just the regex. IE does not accept flags directly defined in
      // the regex string in the form /regex/flags
      var slashes = findUnescapedSlashes(query);
      var regexPart;
      var forceIgnoreCase;
      if (!slashes.length) {
        // Query looks like 'regexp'
        regexPart = query;
      } else {
        // Query looks like 'regexp/...'
        regexPart = query.substring(0, slashes[0]);
        var flagsPart = query.substring(slashes[0]);
        forceIgnoreCase = (flagsPart.indexOf('i') != -1);
      }
      if (!regexPart) {
        return null;
      }
      if (!getOption('pcre')) {
        regexPart = translateRegex(regexPart);
      }
      if (smartCase) {
        ignoreCase = (/^[^A-Z]*$/).test(regexPart);
      }
      var regexp = new RegExp(regexPart,
          (ignoreCase || forceIgnoreCase) ? 'i' : undefined);
      return regexp;
    }
    function showConfirm(cm, text) {
      if (cm.openNotification) {
        cm.openNotification('<span style="color: red">' + text + '</span>',
                            {bottom: true, duration: 5000});
      } else {
        alert(text);
      }
    }
    function makePrompt(prefix, desc) {
      var raw = '<span style="font-family: monospace; white-space: pre">' +
          (prefix || "") + '<input type="text"></span>';
      if (desc)
        raw += ' <span style="color: #888">' + desc + '</span>';
      return raw;
    }
    var searchPromptDesc = '(Javascript regexp)';
    function showPrompt(cm, options) {
      var shortText = (options.prefix || '') + ' ' + (options.desc || '');
      var prompt = makePrompt(options.prefix, options.desc);
      dialog(cm, prompt, shortText, options.onClose, options);
    }
    function regexEqual(r1, r2) {
      if (r1 instanceof RegExp && r2 instanceof RegExp) {
          var props = ['global', 'multiline', 'ignoreCase', 'source'];
          for (var i = 0; i < props.length; i++) {
              var prop = props[i];
              if (r1[prop] !== r2[prop]) {
                  return false;
              }
          }
          return true;
      }
      return false;
    }
    // Returns true if the query is valid.
    function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) {
      if (!rawQuery) {
        return;
      }
      var state = getSearchState(cm);
      var query = parseQuery(rawQuery, !!ignoreCase, !!smartCase);
      if (!query) {
        return;
      }
      highlightSearchMatches(cm, query);
      if (regexEqual(query, state.getQuery())) {
        return query;
      }
      state.setQuery(query);
      return query;
    }
    function searchOverlay(query) {
      if (query.source.charAt(0) == '^') {
        var matchSol = true;
      }
      return {
        token: function(stream) {
          if (matchSol && !stream.sol()) {
            stream.skipToEnd();
            return;
          }
          var match = stream.match(query, false);
          if (match) {
            if (match[0].length == 0) {
              // Matched empty string, skip to next.
              stream.next();
              return 'searching';
            }
            if (!stream.sol()) {
              // Backtrack 1 to match \b
              stream.backUp(1);
              if (!query.exec(stream.next() + match[0])) {
                stream.next();
                return null;
              }
            }
            stream.match(query);
            return 'searching';
          }
          while (!stream.eol()) {
            stream.next();
            if (stream.match(query, false)) break;
          }
        },
        query: query
      };
    }
    function highlightSearchMatches(cm, query) {
      var searchState = getSearchState(cm);
      var overlay = searchState.getOverlay();
      if (!overlay || query != overlay.query) {
        if (overlay) {
          cm.removeOverlay(overlay);
        }
        overlay = searchOverlay(query);
        cm.addOverlay(overlay);
        if (cm.showMatchesOnScrollbar) {
          if (searchState.getScrollbarAnnotate()) {
            searchState.getScrollbarAnnotate().clear();
          }
          searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query));
        }
        searchState.setOverlay(overlay);
      }
    }
    function findNext(cm, prev, query, repeat) {
      if (repeat === undefined) { repeat = 1; }
      return cm.operation(function() {
        var pos = cm.getCursor();
        var cursor = cm.getSearchCursor(query, pos);
        for (var i = 0; i < repeat; i++) {
          var found = cursor.find(prev);
          if (i == 0 && found && cursorEqual(cursor.from(), pos)) { found = cursor.find(prev); }
          if (!found) {
            // SearchCursor may have returned null because it hit EOF, wrap
            // around and try again.
            cursor = cm.getSearchCursor(query,
                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );
            if (!cursor.find(prev)) {
              return;
            }
          }
        }
        return cursor.from();
      });
    }
    function clearSearchHighlight(cm) {
      var state = getSearchState(cm);
      cm.removeOverlay(getSearchState(cm).getOverlay());
      state.setOverlay(null);
      if (state.getScrollbarAnnotate()) {
        state.getScrollbarAnnotate().clear();
        state.setScrollbarAnnotate(null);
      }
    }
    /**
     * Check if pos is in the specified range, INCLUSIVE.
     * Range can be specified with 1 or 2 arguments.
     * If the first range argument is an array, treat it as an array of line
     * numbers. Match pos against any of the lines.
     * If the first range argument is a number,
     *   if there is only 1 range argument, check if pos has the same line
     *       number
     *   if there are 2 range arguments, then check if pos is in between the two
     *       range arguments.
     */
    function isInRange(pos, start, end) {
      if (typeof pos != 'number') {
        // Assume it is a cursor position. Get the line number.
        pos = pos.line;
      }
      if (start instanceof Array) {
        return inArray(pos, start);
      } else {
        if (end) {
          return (pos >= start && pos <= end);
        } else {
          return pos == start;
        }
      }
    }
    function getUserVisibleLines(cm) {
      var scrollInfo = cm.getScrollInfo();
      var occludeToleranceTop = 6;
      var occludeToleranceBottom = 10;
      var from = cm.coordsChar({left:0, top: occludeToleranceTop + scrollInfo.top}, 'local');
      var bottomY = scrollInfo.clientHeight - occludeToleranceBottom + scrollInfo.top;
      var to = cm.coordsChar({left:0, top: bottomY}, 'local');
      return {top: from.line, bottom: to.line};
    }

    function getMarkPos(cm, vim, markName) {
      if (markName == '\'') {
        var history = cm.doc.history.done;
        var event = history[history.length - 2];
        return event && event.ranges && event.ranges[0].head;
      } else if (markName == '.') {
        if (cm.doc.history.lastModTime == 0) {
          return  // If no changes, bail out; don't bother to copy or reverse history array.
        } else {
          var changeHistory = cm.doc.history.done.filter(function(el){ if (el.changes !== undefined) { return el } });
          changeHistory.reverse();
          var lastEditPos = changeHistory[0].changes[0].to;
        }
        return lastEditPos;
      }

      var mark = vim.marks[markName];
      return mark && mark.find();
    }

    var ExCommandDispatcher = function() {
      this.buildCommandMap_();
    };
    ExCommandDispatcher.prototype = {
      processCommand: function(cm, input, opt_params) {
        var that = this;
        cm.operation(function () {
          cm.curOp.isVimOp = true;
          that._processCommand(cm, input, opt_params);
        });
      },
      _processCommand: function(cm, input, opt_params) {
        var vim = cm.state.vim;
        var commandHistoryRegister = vimGlobalState.registerController.getRegister(':');
        var previousCommand = commandHistoryRegister.toString();
        if (vim.visualMode) {
          exitVisualMode(cm);
        }
        var inputStream = new CodeMirror.StringStream(input);
        // update ": with the latest command whether valid or invalid
        commandHistoryRegister.setText(input);
        var params = opt_params || {};
        params.input = input;
        try {
          this.parseInput_(cm, inputStream, params);
        } catch(e) {
          showConfirm(cm, e);
          throw e;
        }
        var command;
        var commandName;
        if (!params.commandName) {
          // If only a line range is defined, move to the line.
          if (params.line !== undefined) {
            commandName = 'move';
          }
        } else {
          command = this.matchCommand_(params.commandName);
          if (command) {
            commandName = command.name;
            if (command.excludeFromCommandHistory) {
              commandHistoryRegister.setText(previousCommand);
            }
            this.parseCommandArgs_(inputStream, params, command);
            if (command.type == 'exToKey') {
              // Handle Ex to Key mapping.
              for (var i = 0; i < command.toKeys.length; i++) {
                CodeMirror.Vim.handleKey(cm, command.toKeys[i], 'mapping');
              }
              return;
            } else if (command.type == 'exToEx') {
              // Handle Ex to Ex mapping.
              this.processCommand(cm, command.toInput);
              return;
            }
          }
        }
        if (!commandName) {
          showConfirm(cm, 'Not an editor command ":' + input + '"');
          return;
        }
        try {
          exCommands[commandName](cm, params);
          // Possibly asynchronous commands (e.g. substitute, which might have a
          // user confirmation), are responsible for calling the callback when
          // done. All others have it taken care of for them here.
          if ((!command || !command.possiblyAsync) && params.callback) {
            params.callback();
          }
        } catch(e) {
          showConfirm(cm, e);
          throw e;
        }
      },
      parseInput_: function(cm, inputStream, result) {
        inputStream.eatWhile(':');
        // Parse range.
        if (inputStream.eat('%')) {
          result.line = cm.firstLine();
          result.lineEnd = cm.lastLine();
        } else {
          result.line = this.parseLineSpec_(cm, inputStream);
          if (result.line !== undefined && inputStream.eat(',')) {
            result.lineEnd = this.parseLineSpec_(cm, inputStream);
          }
        }

        // Parse command name.
        var commandMatch = inputStream.match(/^(\w+)/);
        if (commandMatch) {
          result.commandName = commandMatch[1];
        } else {
          result.commandName = inputStream.match(/.*/)[0];
        }

        return result;
      },
      parseLineSpec_: function(cm, inputStream) {
        var numberMatch = inputStream.match(/^(\d+)/);
        if (numberMatch) {
          // Absolute line number plus offset (N+M or N-M) is probably a typo,
          // not something the user actually wanted. (NB: vim does allow this.)
          return parseInt(numberMatch[1], 10) - 1;
        }
        switch (inputStream.next()) {
          case '.':
            return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
          case '$':
            return this.parseLineSpecOffset_(inputStream, cm.lastLine());
          case '\'':
            var markName = inputStream.next();
            var markPos = getMarkPos(cm, cm.state.vim, markName);
            if (!markPos) throw new Error('Mark not set');
            return this.parseLineSpecOffset_(inputStream, markPos.line);
          case '-':
          case '+':
            inputStream.backUp(1);
            // Offset is relative to current line if not otherwise specified.
            return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
          default:
            inputStream.backUp(1);
            return undefined;
        }
      },
      parseLineSpecOffset_: function(inputStream, line) {
        var offsetMatch = inputStream.match(/^([+-])?(\d+)/);
        if (offsetMatch) {
          var offset = parseInt(offsetMatch[2], 10);
          if (offsetMatch[1] == "-") {
            line -= offset;
          } else {
            line += offset;
          }
        }
        return line;
      },
      parseCommandArgs_: function(inputStream, params, command) {
        if (inputStream.eol()) {
          return;
        }
        params.argString = inputStream.match(/.*/)[0];
        // Parse command-line arguments
        var delim = command.argDelimiter || /\s+/;
        var args = trim(params.argString).split(delim);
        if (args.length && args[0]) {
          params.args = args;
        }
      },
      matchCommand_: function(commandName) {
        // Return the command in the command map that matches the shortest
        // prefix of the passed in command name. The match is guaranteed to be
        // unambiguous if the defaultExCommandMap's shortNames are set up
        // correctly. (see @code{defaultExCommandMap}).
        for (var i = commandName.length; i > 0; i--) {
          var prefix = commandName.substring(0, i);
          if (this.commandMap_[prefix]) {
            var command = this.commandMap_[prefix];
            if (command.name.indexOf(commandName) === 0) {
              return command;
            }
          }
        }
        return null;
      },
      buildCommandMap_: function() {
        this.commandMap_ = {};
        for (var i = 0; i < defaultExCommandMap.length; i++) {
          var command = defaultExCommandMap[i];
          var key = command.shortName || command.name;
          this.commandMap_[key] = command;
        }
      },
      map: function(lhs, rhs, ctx) {
        if (lhs != ':' && lhs.charAt(0) == ':') {
          if (ctx) { throw Error('Mode not supported for ex mappings'); }
          var commandName = lhs.substring(1);
          if (rhs != ':' && rhs.charAt(0) == ':') {
            // Ex to Ex mapping
            this.commandMap_[commandName] = {
              name: commandName,
              type: 'exToEx',
              toInput: rhs.substring(1),
              user: true
            };
          } else {
            // Ex to key mapping
            this.commandMap_[commandName] = {
              name: commandName,
              type: 'exToKey',
              toKeys: rhs,
              user: true
            };
          }
        } else {
          if (rhs != ':' && rhs.charAt(0) == ':') {
            // Key to Ex mapping.
            var mapping = {
              keys: lhs,
              type: 'keyToEx',
              exArgs: { input: rhs.substring(1) }
            };
            if (ctx) { mapping.context = ctx; }
            defaultKeymap.unshift(mapping);
          } else {
            // Key to key mapping
            var mapping = {
              keys: lhs,
              type: 'keyToKey',
              toKeys: rhs
            };
            if (ctx) { mapping.context = ctx; }
            defaultKeymap.unshift(mapping);
          }
        }
      },
      unmap: function(lhs, ctx) {
        if (lhs != ':' && lhs.charAt(0) == ':') {
          // Ex to Ex or Ex to key mapping
          if (ctx) { throw Error('Mode not supported for ex mappings'); }
          var commandName = lhs.substring(1);
          if (this.commandMap_[commandName] && this.commandMap_[commandName].user) {
            delete this.commandMap_[commandName];
            return;
          }
        } else {
          // Key to Ex or key to key mapping
          var keys = lhs;
          for (var i = 0; i < defaultKeymap.length; i++) {
            if (keys == defaultKeymap[i].keys
                && defaultKeymap[i].context === ctx) {
              defaultKeymap.splice(i, 1);
              return;
            }
          }
        }
        throw Error('No such mapping.');
      }
    };

    var exCommands = {
      colorscheme: function(cm, params) {
        if (!params.args || params.args.length < 1) {
          showConfirm(cm, cm.getOption('theme'));
          return;
        }
        cm.setOption('theme', params.args[0]);
      },
      map: function(cm, params, ctx) {
        var mapArgs = params.args;
        if (!mapArgs || mapArgs.length < 2) {
          if (cm) {
            showConfirm(cm, 'Invalid mapping: ' + params.input);
          }
          return;
        }
        exCommandDispatcher.map(mapArgs[0], mapArgs[1], ctx);
      },
      imap: function(cm, params) { this.map(cm, params, 'insert'); },
      nmap: function(cm, params) { this.map(cm, params, 'normal'); },
      vmap: function(cm, params) { this.map(cm, params, 'visual'); },
      unmap: function(cm, params, ctx) {
        var mapArgs = params.args;
        if (!mapArgs || mapArgs.length < 1) {
          if (cm) {
            showConfirm(cm, 'No such mapping: ' + params.input);
          }
          return;
        }
        exCommandDispatcher.unmap(mapArgs[0], ctx);
      },
      move: function(cm, params) {
        commandDispatcher.processCommand(cm, cm.state.vim, {
            type: 'motion',
            motion: 'moveToLineOrEdgeOfDocument',
            motionArgs: { forward: false, explicitRepeat: true,
              linewise: true },
            repeatOverride: params.line+1});
      },
      set: function(cm, params) {
        var setArgs = params.args;
        // Options passed through to the setOption/getOption calls. May be passed in by the
        // local/global versions of the set command
        var setCfg = params.setCfg || {};
        if (!setArgs || setArgs.length < 1) {
          if (cm) {
            showConfirm(cm, 'Invalid mapping: ' + params.input);
          }
          return;
        }
        var expr = setArgs[0].split('=');
        var optionName = expr[0];
        var value = expr[1];
        var forceGet = false;

        if (optionName.charAt(optionName.length - 1) == '?') {
          // If post-fixed with ?, then the set is actually a get.
          if (value) { throw Error('Trailing characters: ' + params.argString); }
          optionName = optionName.substring(0, optionName.length - 1);
          forceGet = true;
        }
        if (value === undefined && optionName.substring(0, 2) == 'no') {
          // To set boolean options to false, the option name is prefixed with
          // 'no'.
          optionName = optionName.substring(2);
          value = false;
        }

        var optionIsBoolean = options[optionName] && options[optionName].type == 'boolean';
        if (optionIsBoolean && value == undefined) {
          // Calling set with a boolean option sets it to true.
          value = true;
        }
        // If no value is provided, then we assume this is a get.
        if (!optionIsBoolean && value === undefined || forceGet) {
          var oldValue = getOption(optionName, cm, setCfg);
          if (oldValue instanceof Error) {
            showConfirm(cm, oldValue.message);
          } else if (oldValue === true || oldValue === false) {
            showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
          } else {
            showConfirm(cm, '  ' + optionName + '=' + oldValue);
          }
        } else {
          var setOptionReturn = setOption(optionName, value, cm, setCfg);
          if (setOptionReturn instanceof Error) {
            showConfirm(cm, setOptionReturn.message);
          }
        }
      },
      setlocal: function (cm, params) {
        // setCfg is passed through to setOption
        params.setCfg = {scope: 'local'};
        this.set(cm, params);
      },
      setglobal: function (cm, params) {
        // setCfg is passed through to setOption
        params.setCfg = {scope: 'global'};
        this.set(cm, params);
      },
      registers: function(cm, params) {
        var regArgs = params.args;
        var registers = vimGlobalState.registerController.registers;
        var regInfo = '----------Registers----------<br><br>';
        if (!regArgs) {
          for (var registerName in registers) {
            var text = registers[registerName].toString();
            if (text.length) {
              regInfo += '"' + registerName + '    ' + text + '<br>';
            }
          }
        } else {
          var registerName;
          regArgs = regArgs.join('');
          for (var i = 0; i < regArgs.length; i++) {
            registerName = regArgs.charAt(i);
            if (!vimGlobalState.registerController.isValidRegister(registerName)) {
              continue;
            }
            var register = registers[registerName] || new Register();
            regInfo += '"' + registerName + '    ' + register.toString() + '<br>';
          }
        }
        showConfirm(cm, regInfo);
      },
      sort: function(cm, params) {
        var reverse, ignoreCase, unique, number, pattern;
        function parseArgs() {
          if (params.argString) {
            var args = new CodeMirror.StringStream(params.argString);
            if (args.eat('!')) { reverse = true; }
            if (args.eol()) { return; }
            if (!args.eatSpace()) { return 'Invalid arguments'; }
            var opts = args.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);
            if (!opts && !args.eol()) { return 'Invalid arguments'; }
            if (opts[1]) {
              ignoreCase = opts[1].indexOf('i') != -1;
              unique = opts[1].indexOf('u') != -1;
              var decimal = opts[1].indexOf('d') != -1 || opts[1].indexOf('n') != -1 && 1;
              var hex = opts[1].indexOf('x') != -1 && 1;
              var octal = opts[1].indexOf('o') != -1 && 1;
              if (decimal + hex + octal > 1) { return 'Invalid arguments'; }
              number = decimal && 'decimal' || hex && 'hex' || octal && 'octal';
            }
            if (opts[2]) {
              pattern = new RegExp(opts[2].substr(1, opts[2].length - 2), ignoreCase ? 'i' : '');
            }
          }
        }
        var err = parseArgs();
        if (err) {
          showConfirm(cm, err + ': ' + params.argString);
          return;
        }
        var lineStart = params.line || cm.firstLine();
        var lineEnd = params.lineEnd || params.line || cm.lastLine();
        if (lineStart == lineEnd) { return; }
        var curStart = Pos(lineStart, 0);
        var curEnd = Pos(lineEnd, lineLength(cm, lineEnd));
        var text = cm.getRange(curStart, curEnd).split('\n');
        var numberRegex = pattern ? pattern :
           (number == 'decimal') ? /(-?)([\d]+)/ :
           (number == 'hex') ? /(-?)(?:0x)?([0-9a-f]+)/i :
           (number == 'octal') ? /([0-7]+)/ : null;
        var radix = (number == 'decimal') ? 10 : (number == 'hex') ? 16 : (number == 'octal') ? 8 : null;
        var numPart = [], textPart = [];
        if (number || pattern) {
          for (var i = 0; i < text.length; i++) {
            var matchPart = pattern ? text[i].match(pattern) : null;
            if (matchPart && matchPart[0] != '') {
              numPart.push(matchPart);
            } else if (!pattern && numberRegex.exec(text[i])) {
              numPart.push(text[i]);
            } else {
              textPart.push(text[i]);
            }
          }
        } else {
          textPart = text;
        }
        function compareFn(a, b) {
          if (reverse) { var tmp; tmp = a; a = b; b = tmp; }
          if (ignoreCase) { a = a.toLowerCase(); b = b.toLowerCase(); }
          var anum = number && numberRegex.exec(a);
          var bnum = number && numberRegex.exec(b);
          if (!anum) { return a < b ? -1 : 1; }
          anum = parseInt((anum[1] + anum[2]).toLowerCase(), radix);
          bnum = parseInt((bnum[1] + bnum[2]).toLowerCase(), radix);
          return anum - bnum;
        }
        function comparePatternFn(a, b) {
          if (reverse) { var tmp; tmp = a; a = b; b = tmp; }
          if (ignoreCase) { a[0] = a[0].toLowerCase(); b[0] = b[0].toLowerCase(); }
          return (a[0] < b[0]) ? -1 : 1;
        }
        numPart.sort(pattern ? comparePatternFn : compareFn);
        if (pattern) {
          for (var i = 0; i < numPart.length; i++) {
            numPart[i] = numPart[i].input;
          }
        } else if (!number) { textPart.sort(compareFn); }
        text = (!reverse) ? textPart.concat(numPart) : numPart.concat(textPart);
        if (unique) { // Remove duplicate lines
          var textOld = text;
          var lastLine;
          text = [];
          for (var i = 0; i < textOld.length; i++) {
            if (textOld[i] != lastLine) {
              text.push(textOld[i]);
            }
            lastLine = textOld[i];
          }
        }
        cm.replaceRange(text.join('\n'), curStart, curEnd);
      },
      global: function(cm, params) {
        // a global command is of the form
        // :[range]g/pattern/[cmd]
        // argString holds the string /pattern/[cmd]
        var argString = params.argString;
        if (!argString) {
          showConfirm(cm, 'Regular Expression missing from global');
          return;
        }
        // range is specified here
        var lineStart = (params.line !== undefined) ? params.line : cm.firstLine();
        var lineEnd = params.lineEnd || params.line || cm.lastLine();
        // get the tokens from argString
        var tokens = splitBySlash(argString);
        var regexPart = argString, cmd;
        if (tokens.length) {
          regexPart = tokens[0];
          cmd = tokens.slice(1, tokens.length).join('/');
        }
        if (regexPart) {
          // If regex part is empty, then use the previous query. Otherwise
          // use the regex part as the new query.
          try {
           updateSearchQuery(cm, regexPart, true /** ignoreCase */,
             true /** smartCase */);
          } catch (e) {
           showConfirm(cm, 'Invalid regex: ' + regexPart);
           return;
          }
        }
        // now that we have the regexPart, search for regex matches in the
        // specified range of lines
        var query = getSearchState(cm).getQuery();
        var matchedLines = [], content = '';
        for (var i = lineStart; i <= lineEnd; i++) {
          var matched = query.test(cm.getLine(i));
          if (matched) {
            matchedLines.push(i+1);
            content+= cm.getLine(i) + '<br>';
          }
        }
        // if there is no [cmd], just display the list of matched lines
        if (!cmd) {
          showConfirm(cm, content);
          return;
        }
        var index = 0;
        var nextCommand = function() {
          if (index < matchedLines.length) {
            var command = matchedLines[index] + cmd;
            exCommandDispatcher.processCommand(cm, command, {
              callback: nextCommand
            });
          }
          index++;
        };
        nextCommand();
      },
      substitute: function(cm, params) {
        if (!cm.getSearchCursor) {
          throw new Error('Search feature not available. Requires searchcursor.js or ' +
              'any other getSearchCursor implementation.');
        }
        var argString = params.argString;
        var tokens = argString ? splitBySeparator(argString, argString[0]) : [];
        var regexPart, replacePart = '', trailing, flagsPart, count;
        var confirm = false; // Whether to confirm each replace.
        var global = false; // True to replace all instances on a line, false to replace only 1.
        if (tokens.length) {
          regexPart = tokens[0];
          replacePart = tokens[1];
          if (regexPart && regexPart[regexPart.length - 1] === '$') {
            regexPart = regexPart.slice(0, regexPart.length - 1) + '\\n';
            replacePart = replacePart ? replacePart + '\n' : '\n';
          }
          if (replacePart !== undefined) {
            if (getOption('pcre')) {
              replacePart = unescapeRegexReplace(replacePart);
            } else {
              replacePart = translateRegexReplace(replacePart);
            }
            vimGlobalState.lastSubstituteReplacePart = replacePart;
          }
          trailing = tokens[2] ? tokens[2].split(' ') : [];
        } else {
          // either the argString is empty or its of the form ' hello/world'
          // actually splitBySlash returns a list of tokens
          // only if the string starts with a '/'
          if (argString && argString.length) {
            showConfirm(cm, 'Substitutions should be of the form ' +
                ':s/pattern/replace/');
            return;
          }
        }
        // After the 3rd slash, we can have flags followed by a space followed
        // by count.
        if (trailing) {
          flagsPart = trailing[0];
          count = parseInt(trailing[1]);
          if (flagsPart) {
            if (flagsPart.indexOf('c') != -1) {
              confirm = true;
              flagsPart.replace('c', '');
            }
            if (flagsPart.indexOf('g') != -1) {
              global = true;
              flagsPart.replace('g', '');
            }
            regexPart = regexPart.replace(/\//g, "\\/") + '/' + flagsPart;
          }
        }
        if (regexPart) {
          // If regex part is empty, then use the previous query. Otherwise use
          // the regex part as the new query.
          try {
            updateSearchQuery(cm, regexPart, true /** ignoreCase */,
              true /** smartCase */);
          } catch (e) {
            showConfirm(cm, 'Invalid regex: ' + regexPart);
            return;
          }
        }
        replacePart = replacePart || vimGlobalState.lastSubstituteReplacePart;
        if (replacePart === undefined) {
          showConfirm(cm, 'No previous substitute regular expression');
          return;
        }
        var state = getSearchState(cm);
        var query = state.getQuery();
        var lineStart = (params.line !== undefined) ? params.line : cm.getCursor().line;
        var lineEnd = params.lineEnd || lineStart;
        if (lineStart == cm.firstLine() && lineEnd == cm.lastLine()) {
          lineEnd = Infinity;
        }
        if (count) {
          lineStart = lineEnd;
          lineEnd = lineStart + count - 1;
        }
        var startPos = clipCursorToContent(cm, Pos(lineStart, 0));
        var cursor = cm.getSearchCursor(query, startPos);
        doReplace(cm, confirm, global, lineStart, lineEnd, cursor, query, replacePart, params.callback);
      },
      redo: CodeMirror.commands.redo,
      undo: CodeMirror.commands.undo,
      write: function(cm) {
        if (CodeMirror.commands.save) {
          // If a save command is defined, call it.
          CodeMirror.commands.save(cm);
        } else if (cm.save) {
          // Saves to text area if no save command is defined and cm.save() is available.
          cm.save();
        }
      },
      nohlsearch: function(cm) {
        clearSearchHighlight(cm);
      },
      yank: function (cm) {
        var cur = copyCursor(cm.getCursor());
        var line = cur.line;
        var lineText = cm.getLine(line);
        vimGlobalState.registerController.pushText(
          '0', 'yank', lineText, true, true);
      },
      delmarks: function(cm, params) {
        if (!params.argString || !trim(params.argString)) {
          showConfirm(cm, 'Argument required');
          return;
        }

        var state = cm.state.vim;
        var stream = new CodeMirror.StringStream(trim(params.argString));
        while (!stream.eol()) {
          stream.eatSpace();

          // Record the streams position at the beginning of the loop for use
          // in error messages.
          var count = stream.pos;

          if (!stream.match(/[a-zA-Z]/, false)) {
            showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));
            return;
          }

          var sym = stream.next();
          // Check if this symbol is part of a range
          if (stream.match('-', true)) {
            // This symbol is part of a range.

            // The range must terminate at an alphabetic character.
            if (!stream.match(/[a-zA-Z]/, false)) {
              showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));
              return;
            }

            var startMark = sym;
            var finishMark = stream.next();
            // The range must terminate at an alphabetic character which
            // shares the same case as the start of the range.
            if (isLowerCase(startMark) && isLowerCase(finishMark) ||
                isUpperCase(startMark) && isUpperCase(finishMark)) {
              var start = startMark.charCodeAt(0);
              var finish = finishMark.charCodeAt(0);
              if (start >= finish) {
                showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));
                return;
              }

              // Because marks are always ASCII values, and we have
              // determined that they are the same case, we can use
              // their char codes to iterate through the defined range.
              for (var j = 0; j <= finish - start; j++) {
                var mark = String.fromCharCode(start + j);
                delete state.marks[mark];
              }
            } else {
              showConfirm(cm, 'Invalid argument: ' + startMark + '-');
              return;
            }
          } else {
            // This symbol is a valid mark, and is not part of a range.
            delete state.marks[sym];
          }
        }
      }
    };

    var exCommandDispatcher = new ExCommandDispatcher();

    /**
    * @param {CodeMirror} cm CodeMirror instance we are in.
    * @param {boolean} confirm Whether to confirm each replace.
    * @param {Cursor} lineStart Line to start replacing from.
    * @param {Cursor} lineEnd Line to stop replacing at.
    * @param {RegExp} query Query for performing matches with.
    * @param {string} replaceWith Text to replace matches with. May contain $1,
    *     $2, etc for replacing captured groups using Javascript replace.
    * @param {function()} callback A callback for when the replace is done.
    */
    function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor, query,
        replaceWith, callback) {
      // Set up all the functions.
      cm.state.vim.exMode = true;
      var done = false;
      var lastPos = searchCursor.from();
      function replaceAll() {
        cm.operation(function() {
          while (!done) {
            replace();
            next();
          }
          stop();
        });
      }
      function replace() {
        var text = cm.getRange(searchCursor.from(), searchCursor.to());
        var newText = text.replace(query, replaceWith);
        searchCursor.replace(newText);
      }
      function next() {
        // The below only loops to skip over multiple occurrences on the same
        // line when 'global' is not true.
        while(searchCursor.findNext() &&
              isInRange(searchCursor.from(), lineStart, lineEnd)) {
          if (!global && lastPos && searchCursor.from().line == lastPos.line) {
            continue;
          }
          cm.scrollIntoView(searchCursor.from(), 30);
          cm.setSelection(searchCursor.from(), searchCursor.to());
          lastPos = searchCursor.from();
          done = false;
          return;
        }
        done = true;
      }
      function stop(close) {
        if (close) { close(); }
        cm.focus();
        if (lastPos) {
          cm.setCursor(lastPos);
          var vim = cm.state.vim;
          vim.exMode = false;
          vim.lastHPos = vim.lastHSPos = lastPos.ch;
        }
        if (callback) { callback(); }
      }
      function onPromptKeyDown(e, _value, close) {
        // Swallow all keys.
        CodeMirror.e_stop(e);
        var keyName = CodeMirror.keyName(e);
        switch (keyName) {
          case 'Y':
            replace(); next(); break;
          case 'N':
            next(); break;
          case 'A':
            // replaceAll contains a call to close of its own. We don't want it
            // to fire too early or multiple times.
            var savedCallback = callback;
            callback = undefined;
            cm.operation(replaceAll);
            callback = savedCallback;
            break;
          case 'L':
            replace();
            // fall through and exit.
          case 'Q':
          case 'Esc':
          case 'Ctrl-C':
          case 'Ctrl-[':
            stop(close);
            break;
        }
        if (done) { stop(close); }
        return true;
      }

      // Actually do replace.
      next();
      if (done) {
        showConfirm(cm, 'No matches for ' + query.source);
        return;
      }
      if (!confirm) {
        replaceAll();
        if (callback) { callback(); }
        return;
      }
      showPrompt(cm, {
        prefix: 'replace with <strong>' + replaceWith + '</strong> (y/n/a/q/l)',
        onKeyDown: onPromptKeyDown
      });
    }

    CodeMirror.keyMap.vim = {
      attach: attachVimMap,
      detach: detachVimMap,
      call: cmKey
    };

    function exitInsertMode(cm) {
      var vim = cm.state.vim;
      var macroModeState = vimGlobalState.macroModeState;
      var insertModeChangeRegister = vimGlobalState.registerController.getRegister('.');
      var isPlaying = macroModeState.isPlaying;
      var lastChange = macroModeState.lastInsertModeChanges;
      // In case of visual block, the insertModeChanges are not saved as a
      // single word, so we convert them to a single word
      // so as to update the ". register as expected in real vim.
      var text = [];
      if (!isPlaying) {
        var selLength = lastChange.inVisualBlock && vim.lastSelection ?
            vim.lastSelection.visualBlock.height : 1;
        var changes = lastChange.changes;
        var text = [];
        var i = 0;
        // In case of multiple selections in blockwise visual,
        // the inserted text, for example: 'f<Backspace>oo', is stored as
        // 'f', 'f', InsertModeKey 'o', 'o', 'o', 'o'. (if you have a block with 2 lines).
        // We push the contents of the changes array as per the following:
        // 1. In case of InsertModeKey, just increment by 1.
        // 2. In case of a character, jump by selLength (2 in the example).
        while (i < changes.length) {
          // This loop will convert 'ff<bs>oooo' to 'f<bs>oo'.
          text.push(changes[i]);
          if (changes[i] instanceof InsertModeKey) {
             i++;
          } else {
             i+= selLength;
          }
        }
        lastChange.changes = text;
        cm.off('change', onChange);
        CodeMirror.off(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);
      }
      if (!isPlaying && vim.insertModeRepeat > 1) {
        // Perform insert mode repeat for commands like 3,a and 3,o.
        repeatLastEdit(cm, vim, vim.insertModeRepeat - 1,
            true /** repeatForInsert */);
        vim.lastEditInputState.repeatOverride = vim.insertModeRepeat;
      }
      delete vim.insertModeRepeat;
      vim.insertMode = false;
      cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1);
      cm.setOption('keyMap', 'vim');
      cm.setOption('disableInput', true);
      cm.toggleOverwrite(false); // exit replace mode if we were in it.
      // update the ". register before exiting insert mode
      insertModeChangeRegister.setText(lastChange.changes.join(''));
      CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
      if (macroModeState.isRecording) {
        logInsertModeChange(macroModeState);
      }
    }

    function _mapCommand(command) {
      defaultKeymap.unshift(command);
    }

    function mapCommand(keys, type, name, args, extra) {
      var command = {keys: keys, type: type};
      command[type] = name;
      command[type + "Args"] = args;
      for (var key in extra)
        command[key] = extra[key];
      _mapCommand(command);
    }

    // The timeout in milliseconds for the two-character ESC keymap should be
    // adjusted according to your typing speed to prevent false positives.
    defineOption('insertModeEscKeysTimeout', 200, 'number');

    CodeMirror.keyMap['vim-insert'] = {
      // TODO: override navigation keys so that Esc will cancel automatic
      // indentation from o, O, i_<CR>
      fallthrough: ['default'],
      attach: attachVimMap,
      detach: detachVimMap,
      call: cmKey
    };

    CodeMirror.keyMap['vim-replace'] = {
      'Backspace': 'goCharLeft',
      fallthrough: ['vim-insert'],
      attach: attachVimMap,
      detach: detachVimMap,
      call: cmKey
    };

    function executeMacroRegister(cm, vim, macroModeState, registerName) {
      var register = vimGlobalState.registerController.getRegister(registerName);
      if (registerName == ':') {
        // Read-only register containing last Ex command.
        if (register.keyBuffer[0]) {
          exCommandDispatcher.processCommand(cm, register.keyBuffer[0]);
        }
        macroModeState.isPlaying = false;
        return;
      }
      var keyBuffer = register.keyBuffer;
      var imc = 0;
      macroModeState.isPlaying = true;
      macroModeState.replaySearchQueries = register.searchQueries.slice(0);
      for (var i = 0; i < keyBuffer.length; i++) {
        var text = keyBuffer[i];
        var match, key;
        while (text) {
          // Pull off one command key, which is either a single character
          // or a special sequence wrapped in '<' and '>', e.g. '<Space>'.
          match = (/<\w+-.+?>|<\w+>|./).exec(text);
          key = match[0];
          text = text.substring(match.index + key.length);
          CodeMirror.Vim.handleKey(cm, key, 'macro');
          if (vim.insertMode) {
            var changes = register.insertModeChanges[imc++].changes;
            vimGlobalState.macroModeState.lastInsertModeChanges.changes =
                changes;
            repeatInsertModeChanges(cm, changes, 1);
            exitInsertMode(cm);
          }
        }
      }
      macroModeState.isPlaying = false;
    }

    function logKey(macroModeState, key) {
      if (macroModeState.isPlaying) { return; }
      var registerName = macroModeState.latestRegister;
      var register = vimGlobalState.registerController.getRegister(registerName);
      if (register) {
        register.pushText(key);
      }
    }

    function logInsertModeChange(macroModeState) {
      if (macroModeState.isPlaying) { return; }
      var registerName = macroModeState.latestRegister;
      var register = vimGlobalState.registerController.getRegister(registerName);
      if (register && register.pushInsertModeChanges) {
        register.pushInsertModeChanges(macroModeState.lastInsertModeChanges);
      }
    }

    function logSearchQuery(macroModeState, query) {
      if (macroModeState.isPlaying) { return; }
      var registerName = macroModeState.latestRegister;
      var register = vimGlobalState.registerController.getRegister(registerName);
      if (register && register.pushSearchQuery) {
        register.pushSearchQuery(query);
      }
    }

    /**
     * Listens for changes made in insert mode.
     * Should only be active in insert mode.
     */
    function onChange(cm, changeObj) {
      var macroModeState = vimGlobalState.macroModeState;
      var lastChange = macroModeState.lastInsertModeChanges;
      if (!macroModeState.isPlaying) {
        while(changeObj) {
          lastChange.expectCursorActivityForChange = true;
          if (changeObj.origin == '+input' || changeObj.origin == 'paste'
              || changeObj.origin === undefined /* only in testing */) {
            var text = changeObj.text.join('\n');
            if (lastChange.maybeReset) {
              lastChange.changes = [];
              lastChange.maybeReset = false;
            }
            if (cm.state.overwrite && !/\n/.test(text)) {
                lastChange.changes.push([text]);
            } else {
                lastChange.changes.push(text);
            }
          }
          // Change objects may be chained with next.
          changeObj = changeObj.next;
        }
      }
    }

    /**
    * Listens for any kind of cursor activity on CodeMirror.
    */
    function onCursorActivity(cm) {
      var vim = cm.state.vim;
      if (vim.insertMode) {
        // Tracking cursor activity in insert mode (for macro support).
        var macroModeState = vimGlobalState.macroModeState;
        if (macroModeState.isPlaying) { return; }
        var lastChange = macroModeState.lastInsertModeChanges;
        if (lastChange.expectCursorActivityForChange) {
          lastChange.expectCursorActivityForChange = false;
        } else {
          // Cursor moved outside the context of an edit. Reset the change.
          lastChange.maybeReset = true;
        }
      } else if (!cm.curOp.isVimOp) {
        handleExternalSelection(cm, vim);
      }
      if (vim.visualMode) {
        updateFakeCursor(cm);
      }
    }
    function updateFakeCursor(cm) {
      var vim = cm.state.vim;
      var from = clipCursorToContent(cm, copyCursor(vim.sel.head));
      var to = offsetCursor(from, 0, 1);
      if (vim.fakeCursor) {
        vim.fakeCursor.clear();
      }
      vim.fakeCursor = cm.markText(from, to, {className: 'cm-animate-fat-cursor'});
    }
    function handleExternalSelection(cm, vim) {
      var anchor = cm.getCursor('anchor');
      var head = cm.getCursor('head');
      // Enter or exit visual mode to match mouse selection.
      if (vim.visualMode && !cm.somethingSelected()) {
        exitVisualMode(cm, false);
      } else if (!vim.visualMode && !vim.insertMode && cm.somethingSelected()) {
        vim.visualMode = true;
        vim.visualLine = false;
        CodeMirror.signal(cm, "vim-mode-change", {mode: "visual"});
      }
      if (vim.visualMode) {
        // Bind CodeMirror selection model to vim selection model.
        // Mouse selections are considered visual characterwise.
        var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0;
        var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0;
        head = offsetCursor(head, 0, headOffset);
        anchor = offsetCursor(anchor, 0, anchorOffset);
        vim.sel = {
          anchor: anchor,
          head: head
        };
        updateMark(cm, vim, '<', cursorMin(head, anchor));
        updateMark(cm, vim, '>', cursorMax(head, anchor));
      } else if (!vim.insertMode) {
        // Reset lastHPos if selection was modified by something outside of vim mode e.g. by mouse.
        vim.lastHPos = cm.getCursor().ch;
      }
    }

    /** Wrapper for special keys pressed in insert mode */
    function InsertModeKey(keyName) {
      this.keyName = keyName;
    }

    /**
    * Handles raw key down events from the text area.
    * - Should only be active in insert mode.
    * - For recording deletes in insert mode.
    */
    function onKeyEventTargetKeyDown(e) {
      var macroModeState = vimGlobalState.macroModeState;
      var lastChange = macroModeState.lastInsertModeChanges;
      var keyName = CodeMirror.keyName(e);
      if (!keyName) { return; }
      function onKeyFound() {
        if (lastChange.maybeReset) {
          lastChange.changes = [];
          lastChange.maybeReset = false;
        }
        lastChange.changes.push(new InsertModeKey(keyName));
        return true;
      }
      if (keyName.indexOf('Delete') != -1 || keyName.indexOf('Backspace') != -1) {
        CodeMirror.lookupKey(keyName, 'vim-insert', onKeyFound);
      }
    }

    /**
     * Repeats the last edit, which includes exactly 1 command and at most 1
     * insert. Operator and motion commands are read from lastEditInputState,
     * while action commands are read from lastEditActionCommand.
     *
     * If repeatForInsert is true, then the function was called by
     * exitInsertMode to repeat the insert mode changes the user just made. The
     * corresponding enterInsertMode call was made with a count.
     */
    function repeatLastEdit(cm, vim, repeat, repeatForInsert) {
      var macroModeState = vimGlobalState.macroModeState;
      macroModeState.isPlaying = true;
      var isAction = !!vim.lastEditActionCommand;
      var cachedInputState = vim.inputState;
      function repeatCommand() {
        if (isAction) {
          commandDispatcher.processAction(cm, vim, vim.lastEditActionCommand);
        } else {
          commandDispatcher.evalInput(cm, vim);
        }
      }
      function repeatInsert(repeat) {
        if (macroModeState.lastInsertModeChanges.changes.length > 0) {
          // For some reason, repeat cw in desktop VIM does not repeat
          // insert mode changes. Will conform to that behavior.
          repeat = !vim.lastEditActionCommand ? 1 : repeat;
          var changeObject = macroModeState.lastInsertModeChanges;
          repeatInsertModeChanges(cm, changeObject.changes, repeat);
        }
      }
      vim.inputState = vim.lastEditInputState;
      if (isAction && vim.lastEditActionCommand.interlaceInsertRepeat) {
        // o and O repeat have to be interlaced with insert repeats so that the
        // insertions appear on separate lines instead of the last line.
        for (var i = 0; i < repeat; i++) {
          repeatCommand();
          repeatInsert(1);
        }
      } else {
        if (!repeatForInsert) {
          // Hack to get the cursor to end up at the right place. If I is
          // repeated in insert mode repeat, cursor will be 1 insert
          // change set left of where it should be.
          repeatCommand();
        }
        repeatInsert(repeat);
      }
      vim.inputState = cachedInputState;
      if (vim.insertMode && !repeatForInsert) {
        // Don't exit insert mode twice. If repeatForInsert is set, then we
        // were called by an exitInsertMode call lower on the stack.
        exitInsertMode(cm);
      }
      macroModeState.isPlaying = false;
    }

    function repeatInsertModeChanges(cm, changes, repeat) {
      function keyHandler(binding) {
        if (typeof binding == 'string') {
          CodeMirror.commands[binding](cm);
        } else {
          binding(cm);
        }
        return true;
      }
      var head = cm.getCursor('head');
      var inVisualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock;
      if (inVisualBlock) {
        // Set up block selection again for repeating the changes.
        var vim = cm.state.vim;
        var lastSel = vim.lastSelection;
        var offset = getOffset(lastSel.anchor, lastSel.head);
        selectForInsert(cm, head, offset.line + 1);
        repeat = cm.listSelections().length;
        cm.setCursor(head);
      }
      for (var i = 0; i < repeat; i++) {
        if (inVisualBlock) {
          cm.setCursor(offsetCursor(head, i, 0));
        }
        for (var j = 0; j < changes.length; j++) {
          var change = changes[j];
          if (change instanceof InsertModeKey) {
            CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
          } else if (typeof change == "string") {
            var cur = cm.getCursor();
            cm.replaceRange(change, cur, cur);
          } else {
            var start = cm.getCursor();
            var end = offsetCursor(start, 0, change[0].length);
            cm.replaceRange(change[0], start, end);
          }
        }
      }
      if (inVisualBlock) {
        cm.setCursor(offsetCursor(head, 0, 1));
      }
    }

    resetVimGlobalState();
    return vimApi;
  };
  // Initialize Vim and make it available as an API.
  CodeMirror.Vim = Vim();
});
editors/tinymce/langs/ga.js000064400000022043152177723720011734 0ustar00tinymce.addI18n('ga',{
"Cut": "Gearr",
"Heading 5": "Ceannteideal 5",
"Header 2": "Ceannt\u00e1sc 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "N\u00ed f\u00e9idir le do bhrabhs\u00e1la\u00ed teacht go d\u00edreach ar an ngearrthaisce. Bain \u00fas\u00e1id as na haicearra\u00ed Ctrl+X\/C\/V. ",
"Heading 4": "Ceannteideal 4",
"Div": "Deighilt",
"Heading 2": "Ceannteideal 2",
"Paste": "Greamaigh",
"Close": "D\u00fan",
"Font Family": "Cl\u00f3fhoireann",
"Pre": "R\u00e9amh",
"Align right": "Ail\u00ednigh ar dheis",
"New document": "C\u00e1ip\u00e9is nua",
"Blockquote": "Athfhriotal",
"Numbered list": "Liosta Uimhrithe",
"Heading 1": "Ceannteideal 1",
"Headings": "Ceannteidil",
"Increase indent": "M\u00e9adaigh eang",
"Formats": "Form\u00e1id\u00ed",
"Headers": "Ceannt\u00e1sca",
"Select all": "Roghnaigh uile",
"Header 3": "Ceannt\u00e1sc 3",
"Blocks": "Blocanna",
"Undo": "Cealaigh",
"Strikethrough": "L\u00edne tr\u00edd",
"Bullet list": "Liosta Urchar",
"Header 1": "Ceannt\u00e1sc 1",
"Superscript": "Forscript",
"Clear formatting": "Glan form\u00e1idi\u00fa",
"Font Sizes": "Cl\u00f3mh\u00e9ideanna",
"Subscript": "Foscript",
"Header 6": "Ceannt\u00e1sc 6",
"Redo": "Athdh\u00e9an",
"Paragraph": "Alt",
"Ok": "OK",
"Bold": "Trom",
"Code": "C\u00f3d",
"Italic": "Iod\u00e1lach",
"Align center": "Ail\u00ednigh sa l\u00e1r",
"Header 5": "Ceannt\u00e1sc 5",
"Heading 6": "Ceannteideal 6",
"Heading 3": "Ceannteideal 3",
"Decrease indent": "Laghdaigh eang",
"Header 4": "Ceannt\u00e1sc 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Sa m\u00f3d gn\u00e1th-th\u00e9acs anois. Gream\u00f3far \u00e1bhar mar ghn\u00e1th-th\u00e9acs go dt\u00ed go m\u00fachfaidh t\u00fa an rogha seo.",
"Underline": "Fol\u00edne",
"Cancel": "Cealaigh",
"Justify": "Comhfhadaigh",
"Inline": "Inl\u00edne",
"Copy": "C\u00f3ipe\u00e1il",
"Align left": "Ail\u00ednigh ar chl\u00e9",
"Visual aids": "\u00c1iseanna amhairc",
"Lower Greek": "Litir Bheag Ghr\u00e9agach",
"Square": "Cearn\u00f3g",
"Default": "R\u00e9amhshocr\u00fa",
"Lower Alpha": "Alfa Beag",
"Circle": "Ciorcal",
"Disc": "Diosca",
"Upper Alpha": "Alfa M\u00f3r",
"Upper Roman": "Litir Mh\u00f3r R\u00f3mh\u00e1nach",
"Lower Roman": "Litir Bheag R\u00f3mh\u00e1nach",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "N\u00ed m\u00f3r don aitheantas tos\u00fa le litir, agus gan ach litreacha, uimhreacha, daiseanna, poncanna, idirstadanna, n\u00f3 fostr\u00edoca ina dhiaidh sin.",
"Name": "Ainm",
"Anchor": "Ancaire",
"Id": "Aitheantas",
"You have unsaved changes are you sure you want to navigate away?": "T\u00e1 athruithe gan s\u00e1bh\u00e1il ann. An bhfuil t\u00fa cinnte gur mhaith leat imeacht amach as seo?",
"Restore last draft": "Oscail an dr\u00e9acht is d\u00e9ana\u00ed",
"Special character": "Carachtar speisialta",
"Source code": "C\u00f3d foinseach",
"Language": "Teanga",
"Insert\/Edit code sample": "Cuir sampla c\u00f3id isteach\/in eagar",
"B": "G",
"R": "D",
"G": "U",
"Color": "Dath",
"Right to left": "Deas-go-cl\u00e9",
"Left to right": "Cl\u00e9-go-deas",
"Emoticons": "Straoiseoga",
"Robots": "R\u00f3bait",
"Document properties": "Air\u00edonna na C\u00e1ip\u00e9ise",
"Title": "Teideal",
"Keywords": "Lorgfhocail",
"Encoding": "Ionch\u00f3d\u00fa",
"Description": "Cur S\u00edos",
"Author": "\u00dadar",
"Fullscreen": "L\u00e1nsc\u00e1ile\u00e1n",
"Horizontal line": "L\u00edne chothrom\u00e1nach",
"Horizontal space": "Sp\u00e1s cothrom\u00e1nach",
"Insert\/edit image": "Cuir \u00edomh\u00e1 isteach\/in eagar",
"General": "Ginear\u00e1lta",
"Advanced": "Casta",
"Source": "Foinse",
"Border": "Iml\u00edne",
"Constrain proportions": "Comhr\u00e9ir faoi ghlas",
"Vertical space": "Sp\u00e1s ingearach",
"Image description": "Cur s\u00edos ar an \u00edomh\u00e1",
"Style": "St\u00edl",
"Dimensions": "Tois\u00ed",
"Insert image": "Cuir \u00edomh\u00e1 isteach",
"Image": "\u00cdomh\u00e1",
"Zoom in": "Z\u00fam\u00e1il isteach",
"Contrast": "Codarsnacht",
"Back": "Siar",
"Gamma": "G\u00e1ma",
"Flip horizontally": "Cas go cothrom\u00e1nach",
"Resize": "Athraigh m\u00e9id",
"Sharpen": "G\u00e9araigh",
"Zoom out": "Z\u00fam\u00e1il amach",
"Image options": "Roghanna \u00edomh\u00e1",
"Apply": "Cuir i bhfeidhm",
"Brightness": "Gile",
"Rotate clockwise": "Rothlaigh ar deiseal",
"Rotate counterclockwise": "Rothlaigh ar tuathal",
"Edit image": "Cuir an \u00edomh\u00e1 in eagar",
"Color levels": "Leibh\u00e9il datha",
"Crop": "Bear",
"Orientation": "Treoshu\u00edomh",
"Flip vertically": "Cas go hingearach",
"Invert": "Inbh\u00e9artaigh",
"Date\/time": "D\u00e1ta\/am",
"Insert date\/time": "Cuir d\u00e1ta\/am isteach",
"Remove link": "Bain an nasc",
"Url": "URL",
"Text to display": "T\u00e9acs le taispe\u00e1int",
"Anchors": "Ancair\u00ed",
"Insert link": "Cuir nasc isteach",
"Link": "Nasc",
"New window": "Fuinneog nua",
"None": "Dada",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Is nasc seachtrach \u00e9 an URL a chuir t\u00fa isteach. An bhfuil fonn ort an r\u00e9im\u00edr riachtanach http:\/\/ a chur leis?",
"Paste or type a link": "Greamaigh n\u00f3 cl\u00f3scr\u00edobh nasc",
"Target": "Sprioc",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Is seoladh r\u00edomhphoist \u00e9 an URL a chuir t\u00fa isteach. An bhfuil fonn ort an r\u00e9im\u00edr riachtanach mailto: a chur leis?",
"Insert\/edit link": "Cuir nasc isteach\/in eagar",
"Insert\/edit video": "Cuir f\u00edse\u00e1n isteach\/in eagar",
"Media": "Me\u00e1in",
"Alternative source": "Foinse mhalartach",
"Paste your embed code below:": "Greamaigh do ch\u00f3d leabaithe th\u00edos:",
"Insert video": "Cuir f\u00edse\u00e1n isteach",
"Poster": "P\u00f3staer",
"Insert\/edit media": "Cuir me\u00e1n isteach\/in eagar",
"Embed": "Leabaigh",
"Nonbreaking space": "Sp\u00e1s neamhbhristeach",
"Page break": "Briseadh leathanaigh",
"Paste as text": "Greamaigh mar th\u00e9acs",
"Preview": "R\u00e9amhamharc",
"Print": "Priont\u00e1il",
"Save": "S\u00e1bh\u00e1il",
"Could not find the specified string.": "N\u00edor aims\u00edodh an teaghr\u00e1n.",
"Replace": "Ionadaigh",
"Next": "Ar aghaidh",
"Whole words": "Focail ioml\u00e1na",
"Find and replace": "Aimsigh agus ionadaigh",
"Replace with": "Ionadaigh le",
"Find": "Aimsigh",
"Replace all": "Ionadaigh uile",
"Match case": "C\u00e1s-\u00edogair",
"Prev": "Siar",
"Spellcheck": "Seice\u00e1il an litri\u00fa",
"Finish": "Cr\u00edochnaigh",
"Ignore all": "D\u00e9an neamhaird orthu go l\u00e9ir",
"Ignore": "D\u00e9an neamhaird air",
"Add to Dictionary": "Cuir leis an bhFocl\u00f3ir \u00e9",
"Insert row before": "Ions\u00e1igh r\u00f3 os a chionn",
"Rows": "R\u00f3nna",
"Height": "Airde",
"Paste row after": "Greamaigh r\u00f3 faoi",
"Alignment": "Ail\u00edni\u00fa",
"Border color": "Dath na himl\u00edne",
"Column group": "Gr\u00fapa col\u00fan",
"Row": "R\u00f3",
"Insert column before": "Ions\u00e1igh col\u00fan ar chl\u00e9",
"Split cell": "Roinn cill",
"Cell padding": "Stu\u00e1il ceall",
"Cell spacing": "Sp\u00e1s\u00e1il ceall",
"Row type": "Cine\u00e1l an r\u00f3",
"Insert table": "Ions\u00e1igh t\u00e1bla",
"Body": "Corp",
"Caption": "Fotheideal",
"Footer": "Bunt\u00e1sc",
"Delete row": "Scrios an r\u00f3",
"Paste row before": "Greamaigh r\u00f3 os a chionn",
"Scope": "Sc\u00f3ip",
"Delete table": "Scrios an t\u00e1bla",
"H Align": "Ail\u00edni\u00fa C.",
"Top": "Barr",
"Header cell": "Cill cheannt\u00e1isc",
"Column": "Col\u00fan",
"Row group": "Gr\u00fapa r\u00f3nna",
"Cell": "Cill",
"Middle": "L\u00e1r",
"Cell type": "Cine\u00e1l na cille",
"Copy row": "C\u00f3ipe\u00e1il an r\u00f3",
"Row properties": "Air\u00edonna an r\u00f3",
"Table properties": "Air\u00edonna an t\u00e1bla",
"Bottom": "Bun",
"V Align": "Ail\u00edni\u00fa I.",
"Header": "Ceannt\u00e1sc",
"Right": "Ar Dheis",
"Insert column after": "Ions\u00e1igh col\u00fan ar dheis",
"Cols": "Col\u00fain",
"Insert row after": "Ions\u00e1igh r\u00f3 faoi",
"Width": "Leithead",
"Cell properties": "Air\u00edonna na cille",
"Left": "Ar Chl\u00e9",
"Cut row": "Gearr an r\u00f3",
"Delete column": "Scrios an col\u00fan",
"Center": "Sa L\u00e1r",
"Merge cells": "Cumaisc cealla",
"Insert template": "Ions\u00e1igh teimpl\u00e9ad",
"Templates": "Teimpl\u00e9id",
"Background color": "Dath an ch\u00falra",
"Custom...": "Saincheap...",
"Custom color": "Dath saincheaptha",
"No color": "Gan dath",
"Text color": "Dath an t\u00e9acs",
"Table of Contents": "Cl\u00e1r na n\u00c1bhar",
"Show blocks": "Taispe\u00e1in blocanna",
"Show invisible characters": "Taispe\u00e1in carachtair dhofheicthe",
"Words: {0}": "Focail: {0}",
"Insert": "Ions\u00e1ig",
"File": "Comhad",
"Edit": "Eagar",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Limist\u00e9ar M\u00e9ith-Th\u00e9acs. Br\u00faigh ALT-F9 le haghaidh roghchl\u00e1ir, ALT-F10 le haghaidh barra uirlis\u00ed, agus ALT-0 le c\u00fanamh a fh\u00e1il",
"Tools": "Uirlis\u00ed",
"View": "Amharc",
"Table": "T\u00e1bla",
"Format": "Form\u00e1id"
});editors/tinymce/langs/sl.js000064400000020005152177723720011757 0ustar00tinymce.addI18n('sl',{
"Cut": "Izre\u017ei",
"Heading 5": "Podnaslov 5",
"Header 2": "Naslov 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Varnostne nastavitve brskalnika ne dopu\u0161\u010dajo direktnega dostopa do odlo\u017ei\u0161\u010da. Uporabite kombinacijo tipk Ctrl+X\/C\/V na tipkovnici.",
"Heading 4": "Podnaslov 4",
"Div": "Div",
"Heading 2": "Podnaslov 2",
"Paste": "Prilepi",
"Close": "Zapri",
"Font Family": "Dru\u017eina pisave",
"Pre": "Predformat",
"Align right": "Desna poravnava",
"New document": "Nov dokument",
"Blockquote": "Navedek",
"Numbered list": "O\u0161tevil\u010den seznam",
"Heading 1": "Podnaslov 1",
"Headings": "Podnaslovi",
"Increase indent": "Pove\u010daj zamik",
"Formats": "Oblika",
"Headers": "Naslovi",
"Select all": "Izberi vse",
"Header 3": "Naslov 3",
"Blocks": "Grupe",
"Undo": "Razveljavi",
"Strikethrough": "Pre\u010drtano",
"Bullet list": "Ozna\u010den seznam",
"Header 1": "Naslov 1",
"Superscript": "Nadpisano",
"Clear formatting": "Po\u010disti oblikovanje",
"Font Sizes": "Velikosti pisave",
"Subscript": "Podpisano",
"Header 6": "Naslov 6",
"Redo": "Ponovi",
"Paragraph": "Odstavek",
"Ok": "V redu",
"Bold": "Krepko",
"Code": "Koda",
"Italic": "Le\u017ee\u010de",
"Align center": "Sredinska poravnava",
"Header 5": "Naslov 5",
"Heading 6": "Podnaslov 6",
"Heading 3": "Podnaslov 3",
"Decrease indent": "Zmanj\u0161aj zamik",
"Header 4": "Naslov 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Odlagali\u0161\u010de je zdaj v tekstovnem na\u010dinu. Vsebina bo preslikana kot golo besedilo brez oblike, dokler te mo\u017enosti ne izklju\u010dite.",
"Underline": "Pod\u010drtano",
"Cancel": "Prekli\u010di",
"Justify": "Obojestranska poravnava",
"Inline": "Med besedilom",
"Copy": "Kopiraj",
"Align left": "Leva poravnava",
"Visual aids": "Vizualni pripomo\u010dki",
"Lower Greek": "Male gr\u0161ke \u010drke",
"Square": "Kvadratek",
"Default": "Privzeto",
"Lower Alpha": "Male tiskane \u010drke",
"Circle": "Pikica",
"Disc": "Kroglica",
"Upper Alpha": "Velike tiskane \u010drke",
"Upper Roman": "Velike rimske \u0161tevilke",
"Lower Roman": "Male rimske \u0161tevilke",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id se mora za\u010deti s \u010drko, sledijo samo \u010drke, \u0161tevilke, pomi\u0161ljaji, pike, dvopi\u010dja ali pod\u010drtaj.",
"Name": "Ime",
"Anchor": "Sidro",
"Id": "ID",
"You have unsaved changes are you sure you want to navigate away?": "Imate neshranjene spremembe. Ste prepri\u010dati, da \u017eelite zapustiti stran?",
"Restore last draft": "Obnovi zadnji osnutek",
"Special character": "Posebni znaki",
"Source code": "Izvorna koda",
"Language": "Jezik",
"Insert\/Edit code sample": "Vstavi\/uredi vzor\u010dno kodo",
"B": "B",
"R": "R",
"G": "G",
"Color": "Barva",
"Right to left": "Od desne proti levi",
"Left to right": "Od leve proti desni",
"Emoticons": "Sme\u0161koti",
"Robots": "Robotki",
"Document properties": "Lastnosti dokumenta",
"Title": "Naslov",
"Keywords": "Klju\u010dne besede",
"Encoding": "Kodiranje",
"Description": "Opis",
"Author": "Avtor",
"Fullscreen": "\u010cez cel zaslon",
"Horizontal line": "Vodoravna \u010drta",
"Horizontal space": "Vodoravni prostor",
"Insert\/edit image": "Vstavi\/uredi sliko",
"General": "Splo\u0161no",
"Advanced": "Napredno",
"Source": "Vir",
"Border": "Obroba",
"Constrain proportions": "Obdr\u017ei razmerje",
"Vertical space": "Navpi\u010dni prostor",
"Image description": "Opis slike",
"Style": "Slog",
"Dimensions": "Dimenzije",
"Insert image": "Vstavi sliko",
"Image": "Slika",
"Zoom in": "Pove\u010daj",
"Contrast": "Kontrast",
"Back": "Nazaj",
"Gamma": "Gama",
"Flip horizontally": "Zasukaj vodoravno",
"Resize": "Spremeni velikost",
"Sharpen": "Izostri",
"Zoom out": "Pomanj\u0161aj",
"Image options": "Mo\u017enosti slike",
"Apply": "Uporabi",
"Brightness": "Svetlost",
"Rotate clockwise": "Zavrti v smeri urinega kazalca",
"Rotate counterclockwise": "Zavrti v nasprotni smeri urnega kazalca",
"Edit image": "Uredi sliko",
"Color levels": "Barvni nivoji",
"Crop": "Obre\u017ei",
"Orientation": "Usmerjenost",
"Flip vertically": "Zasukaj navpi\u010dno",
"Invert": "Obrni",
"Date\/time": "Datum/\u010das",
"Insert date\/time": "Vstavi datum\/\u010das",
"Remove link": "Odstrani povezavo",
"Url": "URL",
"Text to display": "Prikazno besedilo",
"Anchors": "Sidra",
"Insert link": "Vstavi povezavo",
"Link": "Povezava",
"New window": "Novo okno",
"None": "Brez",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Vneseni URL je zunanja povezava. Ali \u017eelite dodati zahtevano http:\/\/ predpono?",
"Paste or type a link": "Prilepi ali vnesi povezavo",
"Target": "Cilj",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Vneseni URL je e-po\u0161tni naslov. Ali \u017eeliteelite dodati zahtevano mailto: predpono?",
"Insert\/edit link": "Vstavi\/uredi povezavo",
"Insert\/edit video": "Vstavi\/uredi video",
"Media": "Mediji",
"Alternative source": "Nadomestni vir",
"Paste your embed code below:": "Prilepite kodo za vdelavo:",
"Insert video": "Vstavi video",
"Poster": "Poster",
"Insert\/edit media": "Vstavi\/uredi medij",
"Embed": "Vdelaj",
"Nonbreaking space": "Nedeljivi presledek",
"Page break": "Prelom strani",
"Paste as text": "Prilepi kot besedilo",
"Preview": "Predogled",
"Print": "Natisni",
"Save": "Shrani",
"Could not find the specified string.": "Iskanje ni vrnilo rezultatov.",
"Replace": "Zamenjaj",
"Next": "Naprej",
"Whole words": "Cele besede",
"Find and replace": "Poi\u0161\u010di in zamenjaj",
"Replace with": "Zamenjaj z",
"Find": "Poi\u0161\u010di",
"Replace all": "Zamenjaj vse",
"Match case": "Ujemanje malih in velikih \u010drk",
"Prev": "Nazaj",
"Spellcheck": "Preverjanje \u010drkovanja",
"Finish": "Zaklju\u010di",
"Ignore all": "Prezri vse",
"Ignore": "Prezri",
"Add to Dictionary": "Dodaj v slovar",
"Insert row before": "Vstavi vrstico pred",
"Rows": "Vrstice",
"Height": "Vi\u0161ina",
"Paste row after": "Prilepi vrstico za",
"Alignment": "Poravnava",
"Border color": "Barva obrobe",
"Column group": "Grupiranje stolpcev",
"Row": "Vrstica",
"Insert column before": "Vstavi stolpec pred",
"Split cell": "Razdeli celico",
"Cell padding": "Polnilo med celicami",
"Cell spacing": "Razmik med celicami",
"Row type": "Tip vrstice",
"Insert table": "Vstavi tabelo",
"Body": "Vsebina",
"Caption": "Naslov",
"Footer": "Noga",
"Delete row": "Izbri\u0161i vrstico",
"Paste row before": "Prilepi vrstico pred",
"Scope": "Obseg",
"Delete table": "Izbri\u0161i tabelo",
"H Align": "Vodoravna poravnava",
"Top": "Zgoraj",
"Header cell": "Celica glave",
"Column": "Stolpec",
"Row group": "Grupiranje vrstic",
"Cell": "Celica",
"Middle": "Sredina",
"Cell type": "Tip celice",
"Copy row": "Kopiraj vrstico",
"Row properties": "Lastnosti vrstice",
"Table properties": "Lastnosti tabele",
"Bottom": "Spodaj",
"V Align": "Navpi\u010dna poravnava",
"Header": "Glava",
"Right": "Desno",
"Insert column after": "Vstavi stolpec za",
"Cols": "Stolpci",
"Insert row after": "Vstavi vrstico za",
"Width": "\u0160irina",
"Cell properties": "Lastnosti celice",
"Left": "Levo",
"Cut row": "Izre\u017ei vrstico",
"Delete column": "Izbri\u0161i stolpec",
"Center": "Sredinsko",
"Merge cells": "Zdru\u017ei celice",
"Insert template": "Vstavi predlogo",
"Templates": "Predloge",
"Background color": "Barva ozadja",
"Custom...": "Po meri...",
"Custom color": "Barva po meri",
"No color": "Brez barve",
"Text color": "Barva besedila",
"Table of Contents": "Vsebina tabele",
"Show blocks": "Prika\u017ei grupe",
"Show invisible characters": "Prika\u017ei skrite znake",
"Words: {0}": "Besed: {0}",
"Insert": "Vstavi",
"File": "Datoteka",
"Edit": "Uredi",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Bogato besedilo. Pritisnite ALT-F9 za meni. Pritisnite ALT-F10 za orodno vrstico. Pritisnite ALT-0 za pomo\u010d",
"Tools": "Orodja",
"View": "Pogled",
"Table": "Tabela",
"Format": "Oblika"
});editors/tinymce/langs/zh-CN.js000064400000023310152177723720012262 0ustar00tinymce.addI18n('zh-CN',{
"Cut": "\u526a\u5207",
"Heading 5": "\u6807\u98985",
"Header 2": "\u6807\u98982",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002",
"Heading 4": "\u6807\u98984",
"Div": "Div\u533a\u5757",
"Heading 2": "\u6807\u98982",
"Paste": "\u7c98\u8d34",
"Close": "\u5173\u95ed",
"Font Family": "\u5b57\u4f53",
"Pre": "\u9884\u683c\u5f0f\u6587\u672c",
"Align right": "\u53f3\u5bf9\u9f50",
"New document": "\u65b0\u6587\u6863",
"Blockquote": "\u5f15\u7528",
"Numbered list": "\u7f16\u53f7\u5217\u8868",
"Heading 1": "\u6807\u98981",
"Headings": "\u6807\u9898",
"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
"Formats": "\u683c\u5f0f",
"Headers": "\u6807\u9898",
"Select all": "\u5168\u9009",
"Header 3": "\u6807\u98983",
"Blocks": "\u533a\u5757",
"Undo": "\u64a4\u6d88",
"Strikethrough": "\u5220\u9664\u7ebf",
"Bullet list": "\u9879\u76ee\u7b26\u53f7",
"Header 1": "\u6807\u98981",
"Superscript": "\u4e0a\u6807",
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
"Font Sizes": "\u5b57\u53f7",
"Subscript": "\u4e0b\u6807",
"Header 6": "\u6807\u98986",
"Redo": "\u91cd\u590d",
"Paragraph": "\u6bb5\u843d",
"Ok": "\u786e\u5b9a",
"Bold": "\u7c97\u4f53",
"Code": "\u4ee3\u7801",
"Italic": "\u659c\u4f53",
"Align center": "\u5c45\u4e2d",
"Header 5": "\u6807\u98985",
"Heading 6": "\u6807\u98986",
"Heading 3": "\u6807\u98983",
"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
"Header 4": "\u6807\u98984",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
"Underline": "\u4e0b\u5212\u7ebf",
"Cancel": "\u53d6\u6d88",
"Justify": "\u4e24\u7aef\u5bf9\u9f50",
"Inline": "\u6587\u672c",
"Copy": "\u590d\u5236",
"Align left": "\u5de6\u5bf9\u9f50",
"Visual aids": "\u7f51\u683c\u7ebf",
"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
"Square": "\u65b9\u5757",
"Default": "\u9ed8\u8ba4",
"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
"Circle": "\u7a7a\u5fc3\u5706",
"Disc": "\u5b9e\u5fc3\u5706",
"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002",
"Name": "\u540d\u79f0",
"Anchor": "\u951a\u70b9",
"Id": "\u6807\u8bc6\u7b26",
"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
"Special character": "\u7279\u6b8a\u7b26\u53f7",
"Source code": "\u6e90\u4ee3\u7801",
"Language": "\u8bed\u8a00",
"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u989c\u8272",
"Right to left": "\u4ece\u53f3\u5230\u5de6",
"Left to right": "\u4ece\u5de6\u5230\u53f3",
"Emoticons": "\u8868\u60c5",
"Robots": "\u673a\u5668\u4eba",
"Document properties": "\u6587\u6863\u5c5e\u6027",
"Title": "\u6807\u9898",
"Keywords": "\u5173\u952e\u8bcd",
"Encoding": "\u7f16\u7801",
"Description": "\u63cf\u8ff0",
"Author": "\u4f5c\u8005",
"Fullscreen": "\u5168\u5c4f",
"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
"General": "\u666e\u901a",
"Advanced": "\u9ad8\u7ea7",
"Source": "\u5730\u5740",
"Border": "\u8fb9\u6846",
"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
"Image description": "\u56fe\u7247\u63cf\u8ff0",
"Style": "\u6837\u5f0f",
"Dimensions": "\u5927\u5c0f",
"Insert image": "\u63d2\u5165\u56fe\u7247",
"Image": "\u56fe\u7247",
"Zoom in": "\u653e\u5927",
"Contrast": "\u5bf9\u6bd4\u5ea6",
"Back": "\u540e\u9000",
"Gamma": "\u4f3d\u9a6c\u503c",
"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
"Resize": "\u8c03\u6574\u5927\u5c0f",
"Sharpen": "\u9510\u5316",
"Zoom out": "\u7f29\u5c0f",
"Image options": "\u56fe\u7247\u9009\u9879",
"Apply": "\u5e94\u7528",
"Brightness": "\u4eae\u5ea6",
"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
"Edit image": "\u7f16\u8f91\u56fe\u7247",
"Color levels": "\u989c\u8272\u5c42\u6b21",
"Crop": "\u88c1\u526a",
"Orientation": "\u65b9\u5411",
"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
"Invert": "\u53cd\u8f6c",
"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
"Remove link": "\u5220\u9664\u94fe\u63a5",
"Url": "\u5730\u5740",
"Text to display": "\u663e\u793a\u6587\u5b57",
"Anchors": "\u951a\u70b9",
"Insert link": "\u63d2\u5165\u94fe\u63a5",
"Link": "\u94fe\u63a5",
"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
"None": "\u65e0",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f",
"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
"Target": "\u6253\u5f00\u65b9\u5f0f",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
"Media": "\u5a92\u4f53",
"Alternative source": "\u955c\u50cf",
"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
"Insert video": "\u63d2\u5165\u89c6\u9891",
"Poster": "\u5c01\u9762",
"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
"Embed": "\u5185\u5d4c",
"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
"Page break": "\u5206\u9875\u7b26",
"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
"Preview": "\u9884\u89c8",
"Print": "\u6253\u5370",
"Save": "\u4fdd\u5b58",
"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
"Replace": "\u66ff\u6362",
"Next": "\u4e0b\u4e00\u4e2a",
"Whole words": "\u5168\u5b57\u5339\u914d",
"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
"Replace with": "\u66ff\u6362\u4e3a",
"Find": "\u67e5\u627e",
"Replace all": "\u5168\u90e8\u66ff\u6362",
"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
"Prev": "\u4e0a\u4e00\u4e2a",
"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
"Finish": "\u5b8c\u6210",
"Ignore all": "\u5168\u90e8\u5ffd\u7565",
"Ignore": "\u5ffd\u7565",
"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
"Rows": "\u884c",
"Height": "\u9ad8",
"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
"Border color": "\u8fb9\u6846\u989c\u8272",
"Column group": "\u5217\u7ec4",
"Row": "\u884c",
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
"Row type": "\u884c\u7c7b\u578b",
"Insert table": "\u63d2\u5165\u8868\u683c",
"Body": "\u8868\u4f53",
"Caption": "\u6807\u9898",
"Footer": "\u8868\u5c3e",
"Delete row": "\u5220\u9664\u884c",
"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
"Scope": "\u8303\u56f4",
"Delete table": "\u5220\u9664\u8868\u683c",
"H Align": "\u6c34\u5e73\u5bf9\u9f50",
"Top": "\u9876\u90e8\u5bf9\u9f50",
"Header cell": "\u8868\u5934\u5355\u5143\u683c",
"Column": "\u5217",
"Row group": "\u884c\u7ec4",
"Cell": "\u5355\u5143\u683c",
"Middle": "\u5782\u76f4\u5c45\u4e2d",
"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
"Copy row": "\u590d\u5236\u884c",
"Row properties": "\u884c\u5c5e\u6027",
"Table properties": "\u8868\u683c\u5c5e\u6027",
"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
"V Align": "\u5782\u76f4\u5bf9\u9f50",
"Header": "\u8868\u5934",
"Right": "\u53f3\u5bf9\u9f50",
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
"Cols": "\u5217",
"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
"Width": "\u5bbd",
"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
"Left": "\u5de6\u5bf9\u9f50",
"Cut row": "\u526a\u5207\u884c",
"Delete column": "\u5220\u9664\u5217",
"Center": "\u5c45\u4e2d",
"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
"Insert template": "\u63d2\u5165\u6a21\u677f",
"Templates": "\u6a21\u677f",
"Background color": "\u80cc\u666f\u8272",
"Custom...": "\u81ea\u5b9a\u4e49...",
"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
"No color": "\u65e0",
"Text color": "\u6587\u5b57\u989c\u8272",
"Table of Contents": "\u5185\u5bb9\u5217\u8868",
"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
"Words: {0}": "\u5b57\u6570\uff1a{0}",
"Insert": "\u63d2\u5165",
"File": "\u6587\u4ef6",
"Edit": "\u7f16\u8f91",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
"Tools": "\u5de5\u5177",
"View": "\u89c6\u56fe",
"Table": "\u8868\u683c",
"Format": "\u683c\u5f0f"
});editors/tinymce/langs/af.js000064400000016776152177723720011753 0ustar00tinymce.addI18n('af',{
"Cut": "Knip",
"Heading 5": "Hooflyn 5",
"Header 2": "Hooflyn 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Jou webblaaier ondersteun nie toegang tot die knipbord nie. Gebruik asb. Ctrl+X\/C\/V.",
"Heading 4": "Hooflyn 4",
"Div": "Div",
"Heading 2": "Hooflyn 2",
"Paste": "Plak",
"Close": "Sluit",
"Font Family": "Font Familie",
"Pre": "Pre",
"Align right": "Regs-gerig",
"New document": "Nuwe dokument",
"Blockquote": "Aanhaaling",
"Numbered list": "Genommerde lys",
"Heading 1": "Hooflyn 1",
"Headings": "Koppe",
"Increase indent": "Inkeping vergroot",
"Formats": "Formate",
"Headers": "Hooflyn-tekste",
"Select all": "Alles selekteer",
"Header 3": "Hooflyn 3",
"Blocks": "Blok",
"Undo": "Ongedaan maak",
"Strikethrough": "Deurhaal",
"Bullet list": "Opsommingsteken-lys",
"Header 1": "Hooflyn 1",
"Superscript": "Superskrif",
"Clear formatting": "Herstel Formateering",
"Font Sizes": "Tekengrootte",
"Subscript": "Subskrif",
"Header 6": "Hooflyn 6",
"Redo": "Herdoen",
"Paragraph": "Paragraaf",
"Ok": "OK",
"Bold": "Vetdruk",
"Code": "Kode",
"Italic": "Kursief",
"Align center": "Sentreer",
"Header 5": "Hooflyn 5",
"Heading 6": "Hooflyn 6",
"Heading 3": "Hooflyn 3",
"Decrease indent": "Inkeping verklein",
"Header 4": "Hooflyn 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Die plak funksie is nou in plat-teks modus. Teks word ingevoeg sonder enige formateering, todat jy hierdie opsie wissel.",
"Underline": "Onderlyn",
"Cancel": "Kanselleer",
"Justify": "Gerigstelling",
"Inline": "Inlyn",
"Copy": "Kopieer",
"Align left": "Linksgerig",
"Visual aids": "Hulpmiddels",
"Lower Greek": "Griekse letters",
"Square": "Vierkantjie",
"Default": "Verstek",
"Lower Alpha": "Klein letters",
"Circle": "Sirkeltjie",
"Disc": "Balletjie",
"Upper Alpha": "Hoofletters",
"Upper Roman": "Romeinse syfers groot",
"Lower Roman": "Romeinse syfers klein",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id moet met 'n letter begin en kan slegs deur letters, koppeltekens, syfers, punte en onderstreep-karakters gevolg word",
"Name": "Naam",
"Anchor": "Anker",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Jy het ongestoorde wysigings op hierdier bladsy - is jy seker dat jy die bladsy wil verlaat?",
"Restore last draft": "Herstel die laatste konsep",
"Special character": "Spesiaale karakter",
"Source code": "Bronkode",
"Language": "Taal",
"Insert\/Edit code sample": "Voeg\/Redigeer voorbeeld-kode",
"B": "Blou",
"R": "Rooi",
"G": "Groen",
"Color": "Kleur",
"Right to left": "Regs na links",
"Left to right": "Links na regs",
"Emoticons": "Emotikons",
"Robots": "Robotte",
"Document properties": "Dokument eienskappe",
"Title": "Titel",
"Keywords": "Sleutelwoorde",
"Encoding": "Kodering",
"Description": "Beskrywing",
"Author": "Outeur",
"Fullscreen": "Voll-skerm",
"Horizontal line": "Horisontale lyn",
"Horizontal space": "Horisontale ruimte",
"Insert\/edit image": "Afbeelding invoeg\/bewerk",
"General": "Algemeen",
"Advanced": "Gevorderd",
"Source": "Bron",
"Border": "Rand",
"Constrain proportions": "Behou verhoudings",
"Vertical space": "Vertikale ruimte",
"Image description": "Afbeelding bemskrywing",
"Style": "Styl",
"Dimensions": "Afmetings",
"Insert image": "Afbeelding invoeg",
"Image": "Afbeelding",
"Zoom in": "Inzoem",
"Contrast": "Kontras",
"Back": "Terug",
"Gamma": "Gamma",
"Flip horizontally": "Horisontaal weerspie\u00ebl",
"Resize": "Grootte wysig",
"Sharpen": "Verskerp",
"Zoom out": "Uitzoem",
"Image options": "Afbeelding opsies",
"Apply": "Toepas",
"Brightness": "Helderheid",
"Rotate clockwise": "Regsom draai",
"Rotate counterclockwise": "Linksom draai",
"Edit image": "Bewerk afbeelding",
"Color levels": "Kleurvlakke",
"Crop": "Afknip",
"Orientation": "Orienteering",
"Flip vertically": "Vertikaal weerspie\u00ebl",
"Invert": "Omkeer",
"Date\/time": "Datum\/tyd",
"Insert date\/time": "Voeg datum\/tyd in",
"Remove link": "Skakel verwyder",
"Url": "URL",
"Text to display": "Skakelteks",
"Anchors": "Anker",
"Insert link": "Skakel invoeg",
"Link":"Skakel",
"New window": "Nuwe venster",
"None": "Geen",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Die URL verwys na 'n eksterne adres. Wil jy die \"http:\/\/\" voorvoegsel byvoeg?",
"Paste or type a link": "Plak of tik 'n skalel in",
"Target": "Teiken",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Die URL lyk soos 'n eposadres. Wil jy die \"mailto:\" voorvoegsel byvoeg?",
"Insert\/edit link": "Skakel invoeg\/bewerk",
"Insert\/edit video": "Video invoeg\/bewerk",
"Poster": "Plakaat",
"Insert\/edit media": "Voeg in\/Redigeer media",
"Media": "Media",
"Alternative source": "Alternatiewe bron",
"Paste your embed code below:": "Plak jou ingesluite kode hieronder in:",
"Insert video": "Video invoeg",
"Embed": "Insluit",
"Nonbreaking space": "Vaste spasie invoeg",
"Page break": "Nuwe Bladsy",
"Paste as text": "As teks plak",
"Preview": "Voorbeeld",
"Print": "Druk",
"Save": "Stoor",
"Could not find the specified string.": "Kon nie die gesoekde string vind nie",
"Replace": "Vervang",
"Next": "Volgende",
"Whole words": "Sleg hele woorde",
"Find and replace": "Soek-en-Vervang",
"Replace with": "Vervang met",
"Find": "Soek",
"Replace all": "Alles vervang",
"Match case": "Kassensitief",
"Prev": "Vorige",
"Spellcheck": "Speltoets",
"Finish": "Einde",
"Ignore all": "Alles ignoreer",
"Ignore": "Ignoreer",
"Add to Dictionary": "Aan woordelys byvoeg",
"Insert row before": "Voeg nuwe ry boaan",
"Rows": "Rye",
"Height": "Hoogte",
"Paste row after": "Plak ry onder",
"Alignment": "Gerigdheid",
"Border color": "Randkleur",
"Column group": "Kolomgroep",
"Row": "Ry",
"Insert column before": "Voeg kolom vooraan",
"Split cell": "Split sel",
"Cell padding": "Ruimte binnein sel",
"Cell spacing": "Ruimte rondom sel",
"Row type": "Ry tipe",
"Insert table": "Tabel invoeg",
"Body": "Tabel Inhoud",
"Caption": "Onderskrif",
"Footer": "Voetskrif",
"Delete row": "Verwyder ry",
"Paste row before": "Plak ry vooraan",
"Scope": "Bereik",
"Delete table": "Verwyder tabel",
"H Align": "Horisontaal-gerigdheid",
"Top": "Bo",
"Header cell": "Kop sel",
"Column": "Kolom",
"Row group": "Rygroep",
"Cell": "Sel",
"Middle": "Sentreer",
"Cell type": "Seltipe",
"Copy row": "Kopieer ry",
"Row properties": "Ry eienskappe",
"Table properties": "Tabel eienskappe",
"Bottom": "Onder",
"V Align": "Vertikaal-rerigdheid",
"Header": "Kopteks",
"Right": "Regs",
"Insert column after": "Voeg kolom na",
"Cols": "Kolomme",
"Insert row after": "Voeg ry onderaan",
"Width": "Breedte",
"Cell properties": "Sel eienskappe",
"Left": "Links",
"Cut row": "Knip ry",
"Delete column": "Verwyder kolom",
"Center": "Middel",
"Merge cells": "Selle saamvoeg",
"Insert template": "Sjabloon invoeg",
"Templates": "Sjablone",
"Background color": "Agtergrondkleur",
"Custom...": "Pasgemaakte...",
"Custom color": "Pasgemaakte kleur",
"No color": "Geen kleur",
"Text color": "Tekskleur",
"Table of Contents":"Inhouds-opgawe",
"Show blocks": "Blokke vertoon",
"Show invisible characters": "Onsigbare karakters vertoon",
"Words: {0}": "Woorde: {0}",
"Insert": "Invoeg",
"File": "L\u00eaer",
"Edit": "Bewerk",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ryk Teks Area. Druk ALT-F9 vir menu, ALT-F10 vir die nutsbalk, ALT-0 vir hulp.",
"Tools": "Gereedskap",
"View": "Beeld",
"Table": "Tabel",
"Format": "Formateering"
});
editors/tinymce/langs/fi.js000064400000016415152177723720011751 0ustar00tinymce.addI18n('fi',{
"Cut": "Leikkaa",
"Heading 5": "Otsikko 5",
"Header 2": "Otsikko 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Selaimesi ei tue leikekirjan suoraa k\u00e4ytt\u00e4mist\u00e4. Ole hyv\u00e4 ja k\u00e4yt\u00e4 n\u00e4pp\u00e4imist\u00f6n Ctrl+X ja Ctrl+V n\u00e4pp\u00e4inyhdistelmi\u00e4.",
"Heading 4": "Otsikko 4",
"Div": "Div",
"Heading 2": "Otsikko 2",
"Paste": "Liit\u00e4",
"Close": "Sulje",
"Font Family": "Fontti",
"Pre": "Esimuotoiltu",
"Align right": "Tasaa oikealle",
"New document": "Uusi dokumentti",
"Blockquote": "Lainauslohko",
"Numbered list": "J\u00e4rjestetty lista",
"Heading 1": "Otsikko 1",
"Headings": "Otsikot",
"Increase indent": "Loitonna",
"Formats": "Muotoilut",
"Headers": "Otsikot",
"Select all": "Valitse kaikki",
"Header 3": "Otsikko 3",
"Blocks": "Lohkot",
"Undo": "Peru",
"Strikethrough": "Yliviivaus",
"Bullet list": "J\u00e4rjest\u00e4m\u00e4t\u00f6n lista",
"Header 1": "Otsikko 1",
"Superscript": "Yl\u00e4indeksi",
"Clear formatting": "Poista muotoilu",
"Font Sizes": "Fonttikoko",
"Subscript": "Alaindeksi",
"Header 6": "Otsikko 6",
"Redo": "Tee uudelleen",
"Paragraph": "Kappale",
"Ok": "Ok",
"Bold": "Lihavointi",
"Code": "Koodi",
"Italic": "Kursivointi",
"Align center": "Keskit\u00e4",
"Header 5": "Otsikko 5",
"Heading 6": "Otsikko 6",
"Heading 3": "Otsikko 3",
"Decrease indent": "Sisenn\u00e4",
"Header 4": "Otsikko 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Liitt\u00e4minen on nyt pelk\u00e4n tekstin -tilassa. Sis\u00e4ll\u00f6t liitet\u00e4\u00e4n nyt pelkk\u00e4n\u00e4 tekstin\u00e4, kunnes otat vaihtoehdon pois k\u00e4yt\u00f6st\u00e4.",
"Underline": "Alleviivaus",
"Cancel": "Peruuta",
"Justify": "Tasaa",
"Inline": "Samalla rivill\u00e4",
"Copy": "Kopioi",
"Align left": "Tasaa vasemmalle",
"Visual aids": "Visuaaliset neuvot",
"Lower Greek": "pienet kirjaimet: \u03b1, \u03b2, \u03b3",
"Square": "Neli\u00f6",
"Default": "Oletus",
"Lower Alpha": "pienet kirjaimet: a, b, c",
"Circle": "Pallo",
"Disc": "Ympyr\u00e4",
"Upper Alpha": "isot kirjaimet: A, B, C",
"Upper Roman": "isot kirjaimet: I, II, III",
"Lower Roman": "pienet kirjaimet: i, ii, iii",
"Name": "Nimi",
"Anchor": "Ankkuri",
"You have unsaved changes are you sure you want to navigate away?": "Sinulla on tallentamattomia muutoksia, haluatko varmasti siirty\u00e4 toiselle sivulle?",
"Restore last draft": "Palauta aiempi luonnos",
"Special character": "Erikoismerkki",
"Source code": "L\u00e4hdekoodi",
"Color": "V\u00e4ri",
"Right to left": "Oikealta vasemmalle",
"Left to right": "Vasemmalta oikealle",
"Emoticons": "Hymi\u00f6t",
"Robots": "Robotit",
"Document properties": "Dokumentin ominaisuudet",
"Title": "Otsikko",
"Keywords": "Avainsanat",
"Encoding": "Merkist\u00f6",
"Description": "Kuvaus",
"Author": "Tekij\u00e4",
"Fullscreen": "Koko ruutu",
"Horizontal line": "Vaakasuora viiva",
"Horizontal space": "Horisontaalinen tila",
"Insert\/edit image": "Lis\u00e4\u00e4\/muokkaa kuva",
"General": "Yleiset",
"Advanced": "Lis\u00e4asetukset",
"Source": "L\u00e4hde",
"Border": "Reunus",
"Constrain proportions": "S\u00e4ilyt\u00e4 mittasuhteet",
"Vertical space": "Vertikaalinen tila",
"Image description": "Kuvaus",
"Style": "Tyyli",
"Dimensions": "Mittasuhteet",
"Insert image": "Lis\u00e4\u00e4 kuva",
"Insert date\/time": "Lis\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 tai aika",
"Remove link": "Poista linkki",
"Url": "Osoite",
"Text to display": "N\u00e4ytett\u00e4v\u00e4 teksti",
"Anchors": "Ankkurit",
"Insert link": "Lis\u00e4\u00e4 linkki",
"New window": "Uusi ikkuna",
"None": "Ei mit\u00e4\u00e4n",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan ulkoinen linkki. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun http:\/\/ -etuliitteen?",
"Target": "Kohde",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan s\u00e4hk\u00f6postiosoite. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun mailto: -etuliitteen?",
"Insert\/edit link": "Lis\u00e4\u00e4 tai muokkaa linkki",
"Insert\/edit video": "Lis\u00e4\u00e4\/muokkaa video",
"Poster": "L\u00e4hett\u00e4j\u00e4",
"Alternative source": "Vaihtoehtoinen l\u00e4hde",
"Paste your embed code below:": "Liit\u00e4 upotuskoodisi alapuolelle:",
"Insert video": "Lis\u00e4\u00e4 video",
"Embed": "Upota",
"Nonbreaking space": "Sitova v\u00e4lily\u00f6nti",
"Page break": "Sivunvaihto",
"Paste as text": "Liit\u00e4 tekstin\u00e4",
"Preview": "Esikatselu",
"Print": "Tulosta",
"Save": "Tallenna",
"Could not find the specified string.": "Haettua merkkijonoa ei l\u00f6ytynyt.",
"Replace": "Korvaa",
"Next": "Seur.",
"Whole words": "Koko sanat",
"Find and replace": "Etsi ja korvaa",
"Replace with": "Korvaa",
"Find": "Etsi",
"Replace all": "Korvaa kaikki",
"Match case": "Erota isot ja pienet kirjaimet",
"Prev": "Edel.",
"Spellcheck": "Oikolue",
"Finish": "Lopeta",
"Ignore all": "\u00c4l\u00e4 huomioi mit\u00e4\u00e4n",
"Ignore": "\u00c4l\u00e4 huomioi",
"Add to Dictionary": "Lis\u00e4\u00e4 sanakirjaan",
"Insert row before": "Lis\u00e4\u00e4 rivi ennen",
"Rows": "Rivit",
"Height": "Korkeus",
"Paste row after": "Liit\u00e4 rivi j\u00e4lkeen",
"Alignment": "Tasaus",
"Border color": "Reunuksen v\u00e4ri",
"Column group": "Sarakeryhm\u00e4",
"Row": "Rivi",
"Insert column before": "Lis\u00e4\u00e4 rivi ennen",
"Split cell": "Jaa solu",
"Cell padding": "Solun tyhj\u00e4 tila",
"Cell spacing": "Solun v\u00e4li",
"Row type": "Rivityyppi",
"Insert table": "Lis\u00e4\u00e4 taulukko",
"Body": "Runko",
"Caption": "Seloste",
"Footer": "Alaosa",
"Delete row": "Poista rivi",
"Paste row before": "Liit\u00e4 rivi ennen",
"Scope": "Laajuus",
"Delete table": "Poista taulukko",
"H Align": "H tasaus",
"Top": "Yl\u00e4reuna",
"Header cell": "Otsikkosolu",
"Column": "Sarake",
"Row group": "Riviryhm\u00e4",
"Cell": "Solu",
"Middle": "Keskikohta",
"Cell type": "Solun tyyppi",
"Copy row": "Kopioi rivi",
"Row properties": "Rivin ominaisuudet",
"Table properties": "Taulukon ominaisuudet",
"Bottom": "Alareuna",
"V Align": "V tasaus",
"Header": "Otsikko",
"Right": "Oikea",
"Insert column after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen",
"Cols": "Sarakkeet",
"Insert row after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen",
"Width": "Leveys",
"Cell properties": "Solun ominaisuudet",
"Left": "Vasen",
"Cut row": "Leikkaa rivi",
"Delete column": "Poista sarake",
"Center": "Keskell\u00e4",
"Merge cells": "Yhdist\u00e4 solut",
"Insert template": "Lis\u00e4\u00e4 pohja",
"Templates": "Pohjat",
"Background color": "Taustan v\u00e4ri",
"Custom...": "Mukauta...",
"Custom color": "Mukautettu v\u00e4ri",
"No color": "Ei v\u00e4ri\u00e4",
"Text color": "Tekstin v\u00e4ri",
"Show blocks": "N\u00e4yt\u00e4 lohkot",
"Show invisible characters": "N\u00e4yt\u00e4 n\u00e4kym\u00e4tt\u00f6m\u00e4t merkit",
"Words: {0}": "Sanat: {0}",
"Insert": "Lis\u00e4\u00e4",
"File": "Tiedosto",
"Edit": "Muokkaa",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastetun tekstin alue. Paina ALT-F9 valikkoon. Paina ALT-F10 ty\u00f6kaluriviin. Paina ALT-0 ohjeeseen.",
"Tools": "Ty\u00f6kalut",
"View": "N\u00e4yt\u00e4",
"Table": "Taulukko",
"Format": "Muotoilu"
});editors/tinymce/langs/ja.js000064400000031630152177723720011741 0ustar00tinymce.addI18n('ja',{
"Cut": "\u5207\u308a\u53d6\u308a",
"Heading 5": "\u898b\u51fa\u3057 5",
"Header 2": "\u30d8\u30c3\u30c0\u30fc 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u304a\u4f7f\u3044\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\uff08Ctrl+X, Ctrl+C, Ctrl+V\uff09\u3092\u304a\u4f7f\u3044\u4e0b\u3055\u3044\u3002",
"Heading 4": "\u898b\u51fa\u3057 4",
"Div": "Div",
"Heading 2": "\u898b\u51fa\u3057 2",
"Paste": "\u8cbc\u308a\u4ed8\u3051",
"Close": "\u9589\u3058\u308b",
"Font Family": "\u30d5\u30a9\u30f3\u30c8\u30d5\u30a1\u30df\u30ea\u30fc",
"Pre": "Pre",
"Align right": "\u53f3\u5bc4\u305b",
"New document": "\u65b0\u898f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8",
"Blockquote": "\u5f15\u7528",
"Numbered list": "\u756a\u53f7\u4ed8\u304d\u7b87\u6761\u66f8\u304d",
"Heading 1": "\u898b\u51fa\u3057 1",
"Headings": "\u898b\u51fa\u3057",
"Increase indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u5897\u3084\u3059",
"Formats": "\u66f8\u5f0f",
"Headers": "\u30d8\u30c3\u30c0\u30fc",
"Select all": "\u5168\u3066\u3092\u9078\u629e",
"Header 3": "\u30d8\u30c3\u30c0\u30fc 3",
"Blocks": "\u30d6\u30ed\u30c3\u30af",
"Undo": "\u5143\u306b\u623b\u3059",
"Strikethrough": "\u53d6\u308a\u6d88\u3057\u7dda",
"Bullet list": "\u7b87\u6761\u66f8\u304d",
"Header 1": "\u30d8\u30c3\u30c0\u30fc 1",
"Superscript": "\u4e0a\u4ed8\u304d\u6587\u5b57",
"Clear formatting": "\u66f8\u5f0f\u3092\u30af\u30ea\u30a2",
"Font Sizes": "\u30d5\u30a9\u30f3\u30c8\u30b5\u30a4\u30ba",
"Subscript": "\u4e0b\u4ed8\u304d\u6587\u5b57",
"Header 6": "\u30d8\u30c3\u30c0\u30fc 6",
"Redo": "\u3084\u308a\u76f4\u3059",
"Paragraph": "\u6bb5\u843d",
"Ok": "OK",
"Bold": "\u592a\u5b57",
"Code": "\u30b3\u30fc\u30c9",
"Italic": "\u659c\u4f53",
"Align center": "\u4e2d\u592e\u63c3\u3048",
"Header 5": "\u30d8\u30c3\u30c0\u30fc 5",
"Heading 6": "\u898b\u51fa\u3057 6",
"Heading 3": "\u898b\u51fa\u3057 3",
"Decrease indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6e1b\u3089\u3059",
"Header 4": "\u30d8\u30c3\u30c0\u30fc 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u8cbc\u308a\u4ed8\u3051\u306f\u73fe\u5728\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u30e2\u30fc\u30c9\u3067\u3059\u3002\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30aa\u30d5\u306b\u3057\u306a\u3044\u9650\u308a\u5185\u5bb9\u306f\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051\u3089\u308c\u307e\u3059\u3002",
"Underline": "\u4e0b\u7dda",
"Cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
"Justify": "\u4e21\u7aef\u63c3\u3048",
"Inline": "\u30a4\u30f3\u30e9\u30a4\u30f3",
"Copy": "\u30b3\u30d4\u30fc",
"Align left": "\u5de6\u5bc4\u305b",
"Visual aids": "\u8868\u306e\u67a0\u7dda\u3092\u70b9\u7dda\u3067\u8868\u793a",
"Lower Greek": "\u5c0f\u6587\u5b57\u306e\u30ae\u30ea\u30b7\u30e3\u6587\u5b57",
"Square": "\u56db\u89d2",
"Default": "\u30c7\u30d5\u30a9\u30eb\u30c8",
"Lower Alpha": "\u5c0f\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8",
"Circle": "\u5186",
"Disc": "\u70b9",
"Upper Alpha": "\u5927\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8",
"Upper Roman": "\u5927\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57",
"Lower Roman": "\u5c0f\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID\u306f\u6587\u5b57\u3067\u59cb\u307e\u308a\u3001\u6587\u5b57\u3001\u6570\u5b57\u3001\u30c0\u30c3\u30b7\u30e5\u3001\u30c9\u30c3\u30c8\u3001\u30b3\u30ed\u30f3\u307e\u305f\u306f\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3067\u59cb\u307e\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002",
"Name": "\u30a2\u30f3\u30ab\u30fc\u540d",
"Anchor": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "\u307e\u3060\u4fdd\u5b58\u3057\u3066\u3044\u306a\u3044\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u672c\u5f53\u306b\u3053\u306e\u30da\u30fc\u30b8\u3092\u96e2\u308c\u307e\u3059\u304b\uff1f",
"Restore last draft": "\u524d\u56de\u306e\u4e0b\u66f8\u304d\u3092\u5fa9\u6d3b\u3055\u305b\u308b",
"Special character": "\u7279\u6b8a\u6587\u5b57",
"Source code": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9",
"Language": "\u8a00\u8a9e",
"Insert\/Edit code sample": "\u30b3\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306e\u633f\u5165\u30fb\u7de8\u96c6",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u30ab\u30e9\u30fc",
"Right to left": "\u53f3\u304b\u3089\u5de6",
"Left to right": "\u5de6\u304b\u3089\u53f3",
"Emoticons": "\u7d75\u6587\u5b57",
"Robots": "\u30ed\u30dc\u30c3\u30c4",
"Document properties": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3",
"Title": "\u30bf\u30a4\u30c8\u30eb",
"Keywords": "\u30ad\u30fc\u30ef\u30fc\u30c9",
"Encoding": "\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0",
"Description": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5185\u5bb9",
"Author": "\u8457\u8005",
"Fullscreen": "\u5168\u753b\u9762\u8868\u793a",
"Horizontal line": "\u6c34\u5e73\u7f6b\u7dda",
"Horizontal space": "\u6a2a\u65b9\u5411\u306e\u4f59\u767d",
"Insert\/edit image": "\u753b\u50cf\u306e\u633f\u5165\u30fb\u7de8\u96c6",
"General": "\u4e00\u822c",
"Advanced": "\u8a73\u7d30\u8a2d\u5b9a",
"Source": "\u753b\u50cf\u306e\u30bd\u30fc\u30b9",
"Border": "\u67a0\u7dda",
"Constrain proportions": "\u7e26\u6a2a\u6bd4\u3092\u4fdd\u6301\u3059\u308b",
"Vertical space": "\u7e26\u65b9\u5411\u306e\u4f59\u767d",
"Image description": "\u753b\u50cf\u306e\u8aac\u660e\u6587",
"Style": "\u30b9\u30bf\u30a4\u30eb",
"Dimensions": "\u753b\u50cf\u30b5\u30a4\u30ba\uff08\u6a2a\u30fb\u7e26\uff09",
"Insert image": "\u753b\u50cf\u306e\u633f\u5165",
"Image": "\u753b\u50cf",
"Zoom in": "\u30ba\u30fc\u30e0\u30a4\u30f3",
"Contrast": "\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8",
"Back": "\u623b\u308b",
"Gamma": "\u30ac\u30f3\u30de",
"Flip horizontally": "\u6c34\u5e73\u306b\u53cd\u8ee2",
"Resize": "\u30ea\u30b5\u30a4\u30ba",
"Sharpen": "\u30b7\u30e3\u30fc\u30d7\u5316",
"Zoom out": "\u30ba\u30fc\u30e0\u30a2\u30a6\u30c8",
"Image options": "\u753b\u50cf\u30aa\u30d7\u30b7\u30e7\u30f3",
"Apply": "\u9069\u7528",
"Brightness": "\u660e\u308b\u3055",
"Rotate clockwise": "\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2",
"Rotate counterclockwise": "\u53cd\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2",
"Edit image": "\u753b\u50cf\u306e\u7de8\u96c6",
"Color levels": "\u30ab\u30e9\u30fc\u30ec\u30d9\u30eb",
"Crop": "\u30af\u30ed\u30c3\u30d7",
"Orientation": "\u5411\u304d",
"Flip vertically": "\u4e0a\u4e0b\u306b\u53cd\u8ee2",
"Invert": "\u53cd\u8ee2",
"Date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b",
"Insert date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b",
"Remove link": "\u30ea\u30f3\u30af\u306e\u524a\u9664",
"Url": "\u30ea\u30f3\u30af\u5148URL",
"Text to display": "\u30ea\u30f3\u30af\u5143\u30c6\u30ad\u30b9\u30c8",
"Anchors": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09",
"Insert link": "\u30ea\u30f3\u30af",
"Link": "\u30ea\u30f3\u30af",
"New window": "\u65b0\u898f\u30a6\u30a3\u30f3\u30c9\u30a6",
"None": "\u306a\u3057",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u5916\u90e8\u30ea\u30f3\u30af\u306e\u3088\u3046\u3067\u3059\u3002\u300chttp:\/\/\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f",
"Paste or type a link": "\u30ea\u30f3\u30af\u3092\u30da\u30fc\u30b9\u30c8\u307e\u305f\u306f\u5165\u529b",
"Target": "\u30bf\u30fc\u30b2\u30c3\u30c8\u5c5e\u6027",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3088\u3046\u3067\u3059\u3002\u300cmailto:\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f",
"Insert\/edit link": "\u30ea\u30f3\u30af\u306e\u633f\u5165\u30fb\u7de8\u96c6",
"Insert\/edit video": "\u52d5\u753b\u306e\u633f\u5165\u30fb\u7de8\u96c6",
"Media": "\u30e1\u30c7\u30a3\u30a2",
"Alternative source": "\u4ee3\u66ff\u52d5\u753b\u306e\u5834\u6240",
"Paste your embed code below:": "\u57cb\u3081\u8fbc\u307f\u7528\u30b3\u30fc\u30c9\u3092\u4e0b\u8a18\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002",
"Insert video": "\u52d5\u753b",
"Poster": "\u4ee3\u66ff\u753b\u50cf\u306e\u5834\u6240",
"Insert\/edit media": "\u30e1\u30c7\u30a3\u30a2\u306e\u633f\u5165\u30fb\u7de8\u96c6",
"Embed": "\u57cb\u3081\u8fbc\u307f",
"Nonbreaking space": "\u56fa\u5b9a\u30b9\u30da\u30fc\u30b9\uff08&nbsp;\uff09",
"Page break": "\u30da\u30fc\u30b8\u533a\u5207\u308a",
"Paste as text": "\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051",
"Preview": "\u30d7\u30ec\u30d3\u30e5\u30fc",
"Print": "\u5370\u5237",
"Save": "\u4fdd\u5b58",
"Could not find the specified string.": "\u304a\u63a2\u3057\u306e\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",
"Replace": "\u7f6e\u304d\u63db\u3048",
"Next": "\u6b21",
"Whole words": "\u5358\u8a9e\u5358\u4f4d\u3067\u691c\u7d22\u3059\u308b",
"Find and replace": "\u691c\u7d22\u3068\u7f6e\u304d\u63db\u3048",
"Replace with": "\u7f6e\u304d\u63db\u3048\u308b\u6587\u5b57",
"Find": "\u691c\u7d22",
"Replace all": "\u5168\u3066\u3092\u7f6e\u304d\u63db\u3048\u308b",
"Match case": "\u5927\u6587\u5b57\u30fb\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b",
"Prev": "\u524d",
"Spellcheck": "\u30b9\u30da\u30eb\u30c1\u30a7\u30c3\u30af",
"Finish": "\u7d42\u4e86",
"Ignore all": "\u5168\u3066\u3092\u7121\u8996",
"Ignore": "\u7121\u8996",
"Add to Dictionary": "\u8f9e\u66f8\u306b\u8ffd\u52a0",
"Insert row before": "\u4e0a\u5074\u306b\u884c\u3092\u633f\u5165",
"Rows": "\u884c\u6570",
"Height": "\u9ad8\u3055",
"Paste row after": "\u4e0b\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051",
"Alignment": "\u914d\u7f6e",
"Border color": "\u67a0\u7dda\u306e\u8272",
"Column group": "\u5217\u30b0\u30eb\u30fc\u30d7",
"Row": "\u884c",
"Insert column before": "\u5de6\u5074\u306b\u5217\u3092\u633f\u5165",
"Split cell": "\u30bb\u30eb\u306e\u5206\u5272",
"Cell padding": "\u30bb\u30eb\u5185\u4f59\u767d\uff08\u30d1\u30c7\u30a3\u30f3\u30b0\uff09",
"Cell spacing": "\u30bb\u30eb\u306e\u9593\u9694",
"Row type": "\u884c\u30bf\u30a4\u30d7",
"Insert table": "\u8868\u306e\u633f\u5165",
"Body": "\u30dc\u30c7\u30a3\u30fc",
"Caption": "\u8868\u984c",
"Footer": "\u30d5\u30c3\u30bf\u30fc",
"Delete row": "\u884c\u306e\u524a\u9664",
"Paste row before": "\u4e0a\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051",
"Scope": "\u30b9\u30b3\u30fc\u30d7",
"Delete table": "\u8868\u306e\u524a\u9664",
"H Align": "\u6c34\u5e73\u65b9\u5411\u306e\u914d\u7f6e",
"Top": "\u4e0a",
"Header cell": "\u30d8\u30c3\u30c0\u30fc\u30bb\u30eb",
"Column": "\u5217",
"Row group": "\u884c\u30b0\u30eb\u30fc\u30d7",
"Cell": "\u30bb\u30eb",
"Middle": "\u4e2d\u592e",
"Cell type": "\u30bb\u30eb\u30bf\u30a4\u30d7",
"Copy row": "\u884c\u306e\u30b3\u30d4\u30fc",
"Row properties": "\u884c\u306e\u8a73\u7d30\u8a2d\u5b9a",
"Table properties": "\u8868\u306e\u8a73\u7d30\u8a2d\u5b9a",
"Bottom": "\u4e0b",
"V Align": "\u5782\u76f4\u65b9\u5411\u306e\u914d\u7f6e",
"Header": "\u30d8\u30c3\u30c0\u30fc",
"Right": "\u53f3\u5bc4\u305b",
"Insert column after": "\u53f3\u5074\u306b\u5217\u3092\u633f\u5165",
"Cols": "\u5217\u6570",
"Insert row after": "\u4e0b\u5074\u306b\u884c\u3092\u633f\u5165",
"Width": "\u5e45",
"Cell properties": "\u30bb\u30eb\u306e\u8a73\u7d30\u8a2d\u5b9a",
"Left": "\u5de6\u5bc4\u305b",
"Cut row": "\u884c\u306e\u5207\u308a\u53d6\u308a",
"Delete column": "\u5217\u306e\u524a\u9664",
"Center": "\u4e2d\u592e\u63c3\u3048",
"Merge cells": "\u30bb\u30eb\u306e\u7d50\u5408",
"Insert template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165",
"Templates": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d",
"Background color": "\u80cc\u666f\u8272",
"Custom...": "\u30ab\u30b9\u30bf\u30e0...",
"Custom color": "\u30ab\u30b9\u30bf\u30e0\u30ab\u30e9\u30fc",
"No color": "\u30ab\u30e9\u30fc\u306a\u3057",
"Text color": "\u30c6\u30ad\u30b9\u30c8\u306e\u8272",
"Table of Contents": "\u76ee\u6b21",
"Show blocks": "\u6587\u7ae0\u306e\u533a\u5207\u308a\u3092\u70b9\u7dda\u3067\u8868\u793a",
"Show invisible characters": "\u4e0d\u53ef\u8996\u6587\u5b57\u3092\u8868\u793a",
"Words: {0}": "\u5358\u8a9e\u6570: {0}",
"Insert": "\u633f\u5165",
"File": "\u30d5\u30a1\u30a4\u30eb",
"Edit": "\u7de8\u96c6",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u66f8\u5f0f\u4ed8\u304d\u30c6\u30ad\u30b9\u30c8\u306e\u7de8\u96c6\u753b\u9762\u3002ALT-F9\u3067\u30e1\u30cb\u30e5\u30fc\u3001ALT-F10\u3067\u30c4\u30fc\u30eb\u30d0\u30fc\u3001ALT-0\u3067\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002",
"Tools": "\u30c4\u30fc\u30eb",
"View": "\u8868\u793a",
"Table": "\u8868",
"Format": "\u66f8\u5f0f"
});editors/tinymce/langs/ru.js000064400000056471152177723720012007 0ustar00tinymce.addI18n('ru',{
"Cut": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c",
"Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
"Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448: Ctrl+X\/C\/V.",
"Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
"Div": "\u0411\u043b\u043e\u043a",
"Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
"Close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
"Font Family": "\u0428\u0440\u0438\u0444\u0442",
"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435",
"Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"New document": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
"Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430",
"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
"Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
"Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442",
"Headers": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
"Select all": "\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435",
"Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
"Blocks": "\u0411\u043b\u043e\u043a\u0438",
"Undo": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c",
"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
"Bullet list": "\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
"Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442",
"Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430",
"Subscript": "\u041d\u0438\u0436\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
"Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
"Redo": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
"Ok": "\u041e\u043a",
"Bold": "\u041f\u043e\u043b\u0443\u0436\u0438\u0440\u043d\u044b\u0439",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
"Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
"Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
"Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
"Decrease indent": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
"Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e.",
"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
"Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
"Justify": "\u041f\u043e \u0448\u0438\u0440\u0438\u043d\u0435",
"Inline": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435",
"Copy": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
"Align left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Visual aids": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b",
"Lower Greek": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b",
"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439",
"Lower Alpha": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438",
"Disc": "\u041a\u0440\u0443\u0433\u0438",
"Upper Alpha": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
"Upper Roman": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
"Lower Roman": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435, \u0442\u043e\u0447\u043a\u0438, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f.",
"Name": "\u0418\u043c\u044f",
"Anchor": "\u042f\u043a\u043e\u0440\u044c",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0439\u0442\u0438?",
"Restore last draft": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430",
"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
"Source code": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434",
"Language": "\u042f\u0437\u044b\u043a",
"Insert\/Edit code sample": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\/\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u0426\u0432\u0435\u0442",
"Right to left": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e",
"Left to right": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
"Emoticons": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b",
"Robots": "\u0420\u043e\u0431\u043e\u0442\u044b",
"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Keywords": "\u041a\u043b\u044e\u0447\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430",
"Encoding": "\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
"Author": "\u0410\u0432\u0442\u043e\u0440",
"Fullscreen": "\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c",
"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f",
"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"General": "\u041e\u0431\u0449\u0435\u0435",
"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435",
"Source": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
"Border": "\u0420\u0430\u043c\u043a\u0430",
"Constrain proportions": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438",
"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
"Style": "\u0421\u0442\u0438\u043b\u044c",
"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440",
"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"Image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
"Zoom in": "\u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c",
"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442",
"Back": "\u041d\u0430\u0437\u0430\u0434",
"Gamma": "\u0413\u0430\u043c\u043c\u0430",
"Flip horizontally": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438",
"Resize": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440",
"Sharpen": "\u0427\u0435\u0442\u043a\u043e\u0441\u0442\u044c",
"Zoom out": "\u041e\u0442\u0434\u0430\u043b\u0438\u0442\u044c",
"Image options": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
"Apply": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c",
"Brightness": "\u042f\u0440\u043a\u043e\u0441\u0442\u044c",
"Rotate clockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435",
"Rotate counterclockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438",
"Edit image": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"Color levels": "\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438",
"Crop": "\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c",
"Orientation": "\u041e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f",
"Flip vertically": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438",
"Invert": "\u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f",
"Date\/time": "\u0414\u0430\u0442\u0430\/\u0432\u0440\u0435\u043c\u044f",
"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u0443\/\u0432\u0440\u0435\u043c\u044f",
"Remove link": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
"Url": "\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044b\u043b\u043a\u0438",
"Text to display": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442",
"Anchors": "\u042f\u043a\u043e\u0440\u044f",
"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
"Link": "\u0421\u0441\u044b\u043b\u043a\u0430",
"New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435",
"None": "\u041d\u0435\u0442",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abhttp:\/\/\u00bb?",
"Paste or type a link": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443",
"Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abmailto:\u00bb?",
"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
"Media": "\u0412\u0438\u0434\u0435\u043e",
"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435:",
"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
"Poster": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"Insert\/edit media": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438",
"Nonbreaking space": "\u041d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0431\u0435\u043b",
"Page break": "\u0420\u0430\u0437\u0440\u044b\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",
"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442",
"Preview": "\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440",
"Print": "\u041f\u0435\u0447\u0430\u0442\u044c",
"Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
"Could not find the specified string.": "\u0417\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
"Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c",
"Next": "\u0412\u043d\u0438\u0437",
"Whole words": "\u0421\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c",
"Find and replace": "\u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430",
"Replace with": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430",
"Find": "\u041d\u0430\u0439\u0442\u0438",
"Replace all": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435",
"Match case": "\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440",
"Prev": "\u0412\u0432\u0435\u0440\u0445",
"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
"Finish": "\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c",
"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435",
"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
"Add to Dictionary": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c",
"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
"Rows": "\u0421\u0442\u0440\u043e\u043a\u0438",
"Height": "\u0412\u044b\u0441\u043e\u0442\u0430",
"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
"Alignment": "\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
"Border color": "\u0426\u0432\u0435\u0442 \u0440\u0430\u043c\u043a\u0438",
"Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a",
"Row": "\u0421\u0442\u0440\u043e\u043a\u0430",
"Insert column before": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043b\u0435\u0432\u0430",
"Split cell": "\u0420\u0430\u0437\u0431\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443",
"Cell padding": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
"Cell spacing": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
"Row type": "\u0422\u0438\u043f \u0441\u0442\u0440\u043e\u043a\u0438",
"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
"Body": "\u0422\u0435\u043b\u043e",
"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Footer": "\u041d\u0438\u0437",
"Delete row": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
"Scope": "Scope",
"Delete table": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
"H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
"Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u0443",
"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446",
"Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a",
"Cell": "\u042f\u0447\u0435\u0439\u043a\u0430",
"Middle": "\u041f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435",
"Cell type": "\u0422\u0438\u043f \u044f\u0447\u0435\u0439\u043a\u0438",
"Copy row": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0440\u043e\u043a\u0438",
"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b",
"Bottom": "\u041f\u043e \u043d\u0438\u0437\u0443",
"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
"Header": "\u0428\u0430\u043f\u043a\u0430",
"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Insert column after": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043f\u0440\u0430\u0432\u0430",
"Cols": "\u0421\u0442\u043e\u043b\u0431\u0446\u044b",
"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u0435\u0439\u043a\u0438",
"Left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Cut row": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
"Delete column": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446",
"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
"Merge cells": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438",
"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b",
"Background color": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430",
"Custom...": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c\u2026",
"Custom color": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0446\u0432\u0435\u0442",
"No color": "\u0411\u0435\u0437 \u0446\u0432\u0435\u0442\u0430",
"Text color": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430",
"Table of Contents": "\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435",
"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438",
"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
"Words: {0}": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {0}",
"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
"File": "\u0424\u0430\u0439\u043b",
"Edit": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-F9 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, ALT-0 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.",
"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b",
"View": "\u0412\u0438\u0434",
"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
});
editors/tinymce/langs/fo.js000064400000015045152177723720011755 0ustar00tinymce.addI18n('fo',{
"Cut": "Klipp",
"Header 2": "Header 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "T\u00edn kagi hevur ikki beinlei\u00f0is atgongd til setibor\u00f0i\u00f0. Vinarliga br\u00faka CTRL+X\/C\/V snarvegirnar \u00edsta\u00f0in.",
"Div": "Div",
"Paste": "L\u00edma",
"Close": "Lat aftur",
"Font Family": "Font Family",
"Pre": "Pre",
"Align right": "H\u00f8gra stilla",
"New document": "N\u00fdtt skjal",
"Blockquote": "Blockquote",
"Numbered list": "Tal listi",
"Increase indent": "vaks inndr\u00e1tt",
"Formats": "Sni\u00f0",
"Headers": "Headers",
"Select all": "Vel alt",
"Header 3": "Header 3",
"Blocks": "Blocks",
"Undo": "Angra ger",
"Strikethrough": "Strika \u00edgj\u00f8gnum",
"Bullet list": "Punkt listi",
"Header 1": "Header 1",
"Superscript": "H\u00e1skrift",
"Clear formatting": "Strika sni\u00f0",
"Font Sizes": "Font Sizes",
"Subscript": "L\u00e1gskrift",
"Header 6": "Header 6",
"Redo": "Ger aftur",
"Paragraph": "Paragraph",
"Ok": "Ok",
"Bold": "Feit",
"Code": "Code",
"Italic": "Sk\u00e1ktekstur",
"Align center": "Mi\u00f0set",
"Header 5": "Header 5",
"Decrease indent": "Minka inndr\u00e1tt",
"Header 4": "Header 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",
"Underline": "Undirstrika",
"Cancel": "\u00d3gilda",
"Justify": "L\u00edka breddar",
"Inline": "Inline",
"Copy": "Avrita",
"Align left": "Vinstra stilla",
"Visual aids": "Sj\u00f3nhj\u00e1lp",
"Lower Greek": "L\u00edti Grikskt",
"Square": "Fj\u00f3rhyrningur",
"Default": "Forsettur",
"Lower Alpha": "L\u00edti Alfa",
"Circle": "Ringur",
"Disc": "Skiva",
"Upper Alpha": "St\u00f3rt Alfa",
"Upper Roman": "St\u00f3rt R\u00f3mverskt",
"Lower Roman": "L\u00edti R\u00f3mverskt",
"Name": "Navn",
"Anchor": "Akker",
"You have unsaved changes are you sure you want to navigate away?": "T\u00fa hevur ikki goymdar broytingar. Ert t\u00fa v\u00edsur \u00ed at t\u00fa vilt halda fram?",
"Restore last draft": "Endurskapa seinasta uppkast",
"Special character": "Serst\u00f8k tekn",
"Source code": "keldukoda",
"Right to left": "H\u00f8gra til vinstra",
"Left to right": "Vinstra til h\u00f8gra",
"Emoticons": "Emotikonur",
"Robots": "Robottar",
"Document properties": "Skjal eginleikar",
"Title": "Heiti",
"Keywords": "Leitior\u00f0",
"Encoding": "Koding",
"Description": "L\u00fdsing",
"Author": "H\u00f8vundur",
"Fullscreen": "Fullan sk\u00edggja",
"Horizontal line": "Vatnr\u00f8tt linja",
"Horizontal space": "Vatnr\u00e6tt fr\u00e1st\u00f8\u00f0a",
"Insert\/edit image": "Innset\/r\u00e6tta mynd",
"General": "Vanligt",
"Advanced": "Framkomi",
"Source": "Kelda",
"Border": "Rammi",
"Constrain proportions": "Var\u00f0veit lutfall",
"Vertical space": "Loddr\u00e6t fr\u00e1st\u00f8\u00f0a",
"Image description": "L\u00fdsing av mynd",
"Style": "St\u00edlur",
"Dimensions": "St\u00f8dd",
"Insert image": "Insert image",
"Insert date\/time": "Innset dag\/t\u00ed\u00f0",
"Remove link": "Remove link",
"Url": "Url",
"Text to display": "Tekstur at v\u00edsa",
"Anchors": "Anchors",
"Insert link": "Innset leinkju",
"New window": "N\u00fdggjan glugga",
"None": "Eingin",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "M\u00e1l",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Innset\/r\u00e6tta leinkju",
"Insert\/edit video": "Innset\/r\u00e6tta kykmynd",
"Poster": "Uppslag",
"Alternative source": "Onnur kelda",
"Paste your embed code below:": "Innset ta\u00f0 kodu, sum skal leggjast inn \u00ed, ni\u00f0anfyri:",
"Insert video": "Innset kykmynd",
"Embed": "Legg inn \u00ed",
"Nonbreaking space": "Hart millumr\u00fam",
"Page break": "S\u00ed\u00f0uskift",
"Paste as text": "Paste as text",
"Preview": "V\u00eds frammanundan",
"Print": "Prenta",
"Save": "Goym",
"Could not find the specified string.": "Kundi ikki finna leititekst",
"Replace": "Set \u00edsta\u00f0in",
"Next": "N\u00e6sta",
"Whole words": "Heil or\u00f0",
"Find and replace": "Finn og set \u00edsta\u00f0in",
"Replace with": "Set \u00edsta\u00f0in",
"Find": "Finn",
"Replace all": "Set \u00edsta\u00f0in fyri \u00f8ll",
"Match case": "ST\u00d3RIR og l\u00edtlir b\u00f3kstavir",
"Prev": "Fyrra",
"Spellcheck": "R\u00e6ttstavari",
"Finish": "Enda",
"Ignore all": "Leyp alt um",
"Ignore": "Leyp um",
"Insert row before": "Innset ra\u00f0 \u00e1\u00f0renn",
"Rows": "R\u00f8\u00f0",
"Height": "H\u00e6dd",
"Paste row after": "L\u00edma ra\u00f0 aftan\u00e1",
"Alignment": "Stilling",
"Column group": "Teig b\u00f3lkur",
"Row": "Ra\u00f0",
"Insert column before": "Innset teig \u00e1\u00f0renn",
"Split cell": "Syndra puntar",
"Cell padding": "Punt fylling",
"Cell spacing": "Punt fr\u00e1st\u00f8\u00f0a",
"Row type": "Ra\u00f0 slag",
"Insert table": "Innset talvu",
"Body": "Likam",
"Caption": "Tekstur",
"Footer": "F\u00f3tur",
"Delete row": "Skrika ra\u00f0",
"Paste row before": "L\u00edma ra\u00f0 \u00e1\u00f0renn",
"Scope": "N\u00fdtslu\u00f8ki",
"Delete table": "Strika talvu",
"Header cell": "H\u00f8vd puntur",
"Column": "Teigur",
"Cell": "Puntur",
"Header": "H\u00f8vd",
"Cell type": "Punt slag",
"Copy row": "Avrita ra\u00f0",
"Row properties": "Ra\u00f0 eginleikar",
"Table properties": "Talvu eginleikar",
"Row group": "Ra\u00f0 b\u00f3lkur",
"Right": "H\u00f8gra",
"Insert column after": "Innset teig aftan\u00e1",
"Cols": "Teigar",
"Insert row after": "Innset ra\u00f0 aftan\u00e1",
"Width": "Breidd",
"Cell properties": "Punt eginleikar",
"Left": "Vinstra",
"Cut row": "Klipp ra\u00f0",
"Delete column": "Strika teig",
"Center": "Mi\u00f0a",
"Merge cells": "Fl\u00e6tta puntar",
"Insert template": "Innset form",
"Templates": "Formur",
"Background color": "Bakgrundslitur",
"Text color": "Tekst litur",
"Show blocks": "V\u00eds blokkar",
"Show invisible characters": "V\u00eds \u00f3sj\u00f3nlig tekn",
"Words: {0}": "Or\u00f0: {0}",
"Insert": "Innset",
"File": "F\u00edla",
"Edit": "Ritstj\u00f3rna",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "R\u00edkt Tekst \u00d8ki. Tr\u00fdst ALT-F9 fyri valmynd. Tr\u00fdst ALT-F10 fyri ambo\u00f0slinju. Tr\u00fdst ALT-0 fyri hj\u00e1lp",
"Tools": "Ambo\u00f0",
"View": "V\u00eds",
"Table": "Talva",
"Format": "Smi\u00f0"
});editors/tinymce/langs/kk.js000064400000052311152177723720011753 0ustar00tinymce.addI18n('kk',{
"Cut": "\u049a\u0438\u044b\u043f \u0430\u043b\u0443",
"Heading 5": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 5",
"Header 2": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u0456\u04a3\u0456\u0437 \u0430\u043b\u043c\u0430\u0441\u0443 \u0431\u0443\u0444\u0435\u0440\u0456\u043d\u0435 \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u049b\u0430\u0442\u044b\u043d\u0430\u0439 \u0430\u043b\u043c\u0430\u0439\u0434\u044b. Ctrl+X\/C\/V \u043f\u0435\u0440\u043d\u0435\u043b\u0435\u0440 \u0442\u0456\u0440\u043a\u0435\u0441\u0456\u043c\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u04a3\u044b\u0437.",
"Heading 4": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 4",
"Div": "Div",
"Heading 2": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 2",
"Paste": "\u049a\u043e\u044e",
"Close": "\u0416\u0430\u0431\u0443",
"Font Family": "\u049a\u0430\u0440\u0456\u043f\u0442\u0435\u0440 \u0442\u043e\u0431\u044b",
"Pre": "Pre",
"Align right": "\u041e\u04a3\u0493\u0430 \u043e\u0440\u043d\u0430\u043b\u0430\u0441\u0442\u044b\u0440\u0443",
"New document": "\u0416\u0430\u04a3\u0430 \u049b\u04b1\u0436\u0430\u0442",
"Blockquote": "\u0414\u04d9\u0439\u0435\u043a\u0441\u04e9\u0437",
"Numbered list": "\u041d\u04e9\u043c\u0456\u0440\u043b\u0435\u043d\u0433\u0435\u043d \u0442\u0456\u0437\u0456\u043c",
"Heading 1": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 1",
"Headings": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f",
"Increase indent": "\u0428\u0435\u0433\u0456\u043d\u0456\u0441\u0442\u0456 \u0430\u0440\u0442\u0442\u044b\u0440\u0443",
"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0430\u0440",
"Headers": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430",
"Select all": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b\u043d \u0442\u0430\u04a3\u0434\u0430\u0443",
"Header 3": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 3",
"Blocks": "\u0411\u043b\u043e\u043a\u0442\u0435\u043a\u0442\u0435\u0441 (Block)",
"Undo": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
"Strikethrough": "\u0411\u0435\u043b\u0456\u043d\u0435\u043d \u0441\u044b\u0437\u044b\u043b\u0493\u0430\u043d",
"Bullet list": "\u0422\u0430\u04a3\u0431\u0430\u043b\u0430\u043d\u0493\u0430\u043d \u0442\u0456\u0437\u0456\u043c",
"Header 1": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 1",
"Superscript": "\u04ae\u0441\u0442\u0456\u04a3\u0433\u0456 \u0438\u043d\u0434\u0435\u043a\u0441",
"Clear formatting": "\u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0430\u0443\u0434\u0430\u043d \u0442\u0430\u0437\u0430\u0440\u0442\u0443",
"Font Sizes": "\u049a\u0430\u0440\u0456\u043f\u0442\u0435\u0440 \u04e9\u043b\u0448\u0435\u043c\u0456",
"Subscript": "\u0410\u0441\u0442\u044b\u04a3\u0493\u044b \u0438\u043d\u0434\u0435\u043a\u0441",
"Header 6": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 6",
"Redo": "\u049a\u0430\u0439\u0442\u0430\u0440\u0443",
"Paragraph": "\u0410\u0431\u0437\u0430\u0446",
"Ok": "\u041e\u041a",
"Bold": "\u0416\u0443\u0430\u043d",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041a\u04e9\u043b\u0431\u0435\u0443",
"Align center": "\u041e\u0440\u0442\u0430\u0441\u044b\u043d\u0430 \u043e\u0440\u043d\u0430\u043b\u0430\u0441\u0442\u044b\u0440\u0443",
"Header 5": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 5",
"Heading 6": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 6",
"Heading 3": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f 3",
"Decrease indent": "\u0428\u0435\u0433\u0456\u043d\u0456\u0441\u0442\u0456 \u043a\u0435\u043c\u0456\u0442\u0443",
"Header 4": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u041e\u0441\u044b \u043e\u043f\u0446\u0438\u044f \u04e9\u0448\u0456\u0440\u0456\u043b\u043c\u0435\u0433\u0435\u043d\u0448\u0435, \u0431\u0443\u0444\u0435\u0440\u0434\u0435\u0433\u0456 \u043c\u04d9\u0442\u0456\u043d \u043a\u04d9\u0434\u0456\u043c\u0433\u0456 \u043c\u04d9\u0442\u0456\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u049b\u043e\u0439\u044b\u043b\u0430\u0434\u044b.",
"Underline": "\u0410\u0441\u0442\u044b \u0441\u044b\u0437\u044b\u043b\u0493\u0430\u043d",
"Cancel": "\u0411\u0430\u0441 \u0442\u0430\u0440\u0442\u0443",
"Justify": "\u0422\u043e\u043b\u0442\u044b\u0440\u0443",
"Inline": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0456\u043b\u0433\u0435\u043d (Inline)",
"Copy": "\u041a\u04e9\u0448\u0456\u0440\u0443",
"Align left": "\u0421\u043e\u043b\u0493\u0430 \u043e\u0440\u043d\u0430\u043b\u0430\u0441\u0442\u044b\u0440\u0443",
"Visual aids": "\u041a\u04e9\u043c\u0435\u043a\u0448\u0456 \u0431\u0435\u043b\u0433\u0456\u043b\u0435\u0440",
"Lower Greek": "\u041a\u0456\u0448\u0456 \u0433\u0440\u0435\u043a \u04d9\u0440\u0456\u043f\u0442\u0435\u0440\u0456",
"Square": "\u0428\u0430\u0440\u0448\u044b",
"Default": "\u04d8\u0434\u0435\u043f\u043a\u0456",
"Lower Alpha": "\u041a\u0456\u0448\u0456 \u04d9\u0440\u0456\u043f\u0442\u0435\u0440",
"Circle": "\u0428\u0435\u04a3\u0431\u0435\u0440",
"Disc": "\u0414\u0438\u0441\u043a",
"Upper Alpha": "\u0411\u0430\u0441 \u04d9\u0440\u0456\u043f\u0442\u0435\u0440",
"Upper Roman": "\u0411\u0430\u0441 \u0440\u0438\u043c \u0446\u0438\u0444\u0440\u043b\u0430\u0440\u044b",
"Lower Roman": "\u041a\u0456\u0448\u0456 \u0440\u0438\u043c \u0446\u0438\u0444\u0440\u043b\u0430\u0440\u044b",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u04d9\u0440\u0456\u043f\u0442\u0435\u043d \u0431\u0430\u0441\u0442\u0430\u043b\u044b\u043f, \u04d9\u0440\u0456\u043f\u0442\u0435\u0440, \u0441\u0430\u043d\u0434\u0430\u0440, \u0441\u044b\u0437\u044b\u049b\u0448\u0430\u043b\u0430\u0440, \u043d\u04af\u043a\u0442\u0435\u043b\u0435\u0440 \u0436\u04d9\u043d\u0435 \u0442.\u0431 \u0436\u0430\u043b\u0493\u0430\u0441\u0443\u044b \u0442\u0438\u0456\u0441.",
"Name": "\u0410\u0442\u044b",
"Anchor": "\u0411\u0435\u0442\u0431\u0435\u043b\u0433\u0456",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "\u0421\u0430\u049b\u0442\u0430\u043b\u043c\u0430\u0493\u0430\u043d \u04e9\u0437\u0433\u0435\u0440\u0456\u0441\u0442\u0435\u0440 \u0431\u0430\u0440. \u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d \u0431\u0430\u0441\u049b\u0430 \u0436\u0435\u0440\u0433\u0435 \u043a\u0435\u0442\u0443\u0434\u0456 \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?",
"Restore last draft": "\u0421\u043e\u04a3\u0493\u044b \u0441\u0430\u049b\u0442\u0430\u043b\u0493\u0430\u043d\u0434\u044b \u049b\u0430\u043b\u043f\u044b\u043d\u0430 \u043a\u0435\u043b\u0442\u0456\u0440\u0443",
"Special character": "\u0410\u0440\u043d\u0430\u0439\u044b \u0442\u0430\u04a3\u0431\u0430",
"Source code": "\u0411\u0430\u0441\u0442\u0430\u043f\u049b\u044b \u043a\u043e\u0434",
"Language": "\u0422\u0456\u043b",
"Insert\/Edit code sample": "\u041a\u043e\u0434 \u04af\u043b\u0433\u0456\u0441\u0456\u043d \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u0422\u04af\u0441",
"Right to left": "\u041e\u04a3\u043d\u0430\u043d \u0441\u043e\u043b\u0493\u0430",
"Left to right": "\u0421\u043e\u043b\u0434\u0430\u043d \u043e\u04a3\u0493\u0430",
"Emoticons": "\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0442\u0430\u0440",
"Robots": "Meta-robots",
"Document properties": "\u049a\u04b1\u0436\u0430\u0442 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b",
"Title": "\u0410\u0442\u0430\u0443\u044b",
"Keywords": "Meta-keywords",
"Encoding": "Meta-charset",
"Description": "\u0421\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b",
"Author": "Meta-author",
"Fullscreen": "\u0422\u043e\u043b\u044b\u049b \u044d\u043a\u0440\u0430\u043d",
"Horizontal line": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3 \u0441\u044b\u0437\u044b\u049b",
"Horizontal space": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u0456\u043d\u0435\u043d \u049b\u0430\u043b\u0430\u0442\u044b\u043d \u043e\u0440\u044b\u043d",
"Insert\/edit image": "\u0421\u0443\u0440\u0435\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443",
"General": "\u0416\u0430\u043b\u043f\u044b",
"Advanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
"Source": "\u0410\u0434\u0440\u0435\u0441\u0456",
"Border": "\u0416\u0438\u0435\u0433\u0456",
"Constrain proportions": "\u041f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u044f\u043b\u0430\u0440\u0434\u044b \u0441\u0430\u049b\u0442\u0430\u0443",
"Vertical space": "\u0422\u0456\u043a \u043a\u0435\u04a3\u0434\u0456\u0433\u0456",
"Image description": "\u0421\u0443\u0440\u0435\u0442 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b",
"Style": "\u0421\u0442\u0438\u043b\u0456",
"Dimensions": "\u04e8\u043b\u0448\u0435\u043c\u0434\u0435\u0440\u0456",
"Insert image": "\u0421\u0443\u0440\u0435\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Image": "\u0421\u0443\u0440\u0435\u0442",
"Zoom in": "\u0416\u0430\u049b\u044b\u043d\u0434\u0430\u0442\u0443",
"Contrast": "\u049a\u043e\u044e\u043b\u0430\u0442\u0443",
"Back": "\u0410\u0440\u0442\u049b\u0430",
"Gamma": "\u0413\u0430\u043c\u043c\u0430",
"Flip horizontally": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u043d\u0435\u043d \u0430\u0443\u0434\u0430\u0440\u0443",
"Resize": "\u04e8\u043b\u0448\u0435\u043c\u0456\u043d \u04e9\u0437\u0433\u0435\u0440\u0442\u0443",
"Sharpen": "\u041d\u0430\u049b\u0442\u044b\u043b\u0430\u0443",
"Zoom out": "\u0410\u043b\u044b\u0441\u0442\u0430\u0442\u0443",
"Image options": "\u0421\u0443\u0440\u0435\u0442 \u0431\u0430\u043f\u0442\u0430\u0443\u043b\u0430\u0440\u044b",
"Apply": "\u0421\u0430\u049b\u0442\u0430\u0443",
"Brightness": "\u0410\u0448\u044b\u049b\u0442\u0430\u0443",
"Rotate clockwise": "\u0421\u0430\u0493\u0430\u0442 \u0442\u0456\u043b\u0456\u043d\u0456\u04a3 \u0431\u0430\u0493\u044b\u0442\u044b\u043c\u0435\u043d \u0431\u04b1\u0440\u0443",
"Rotate counterclockwise": "\u0421\u0430\u0493\u0430\u0442 \u0442\u0456\u043b\u0456\u043d\u0456\u04a3 \u0431\u0430\u0493\u044b\u0442\u044b\u043d\u0430 \u049b\u0430\u0440\u0441\u044b \u0431\u04b1\u0440\u0443",
"Edit image": "\u0421\u0443\u0440\u0435\u0442\u0442\u0456 \u04e9\u0437\u0433\u0435\u0440\u0442\u0443",
"Color levels": "\u0422\u04af\u0441 \u0434\u0435\u04a3\u0433\u0435\u0439\u043b\u0435\u0440\u0456",
"Crop": "\u041a\u0435\u0441\u0443",
"Orientation": "\u0411\u0430\u0493\u0434\u0430\u0440",
"Flip vertically": "\u0422\u0456\u0433\u0456\u043d\u0435\u043d \u0430\u0443\u0434\u0430\u0440\u0443",
"Invert": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Date\/time": "\u041a\u04af\u043d\/\u0443\u0430\u049b\u044b\u0442",
"Insert date\/time": "\u041a\u04af\u043d\/\u0443\u0430\u049b\u044b\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Remove link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u0430\u043b\u044b\u043f \u0442\u0430\u0441\u0442\u0430\u0443",
"Url": "URL-\u0430\u0434\u0440\u0435\u0441\u0456",
"Text to display": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u0435\u0442\u0456\u043d \u043c\u04d9\u0442\u0456\u043d",
"Anchors": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043b\u0435\u0440",
"Insert link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435",
"New window": "\u0416\u0430\u04a3\u0430 \u0442\u0435\u0440\u0435\u0437\u0435",
"None": "\u0416\u043e\u049b",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0421\u0456\u0437 \u0435\u04a3\u0433\u0456\u0437\u0456\u043f \u0442\u04b1\u0440\u0493\u0430\u043d URL \u0441\u044b\u0440\u0442\u049b\u044b \u0441\u0456\u043b\u0442\u0435\u043c\u0435 \u0431\u043e\u043b\u044b\u043f \u0442\u0430\u0431\u044b\u043b\u0430\u0434\u044b. \u0410\u043b\u0434\u044b\u043d\u0430 http:\/\/ \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0456\u043d \u049b\u043e\u0441\u0443\u0434\u044b \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?",
"Paste or type a link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u049b\u043e\u0439\u044b\u04a3\u044b\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u0442\u0435\u0440\u0456\u04a3\u0456\u0437",
"Target": "\u0410\u0448\u044b\u043b\u0430\u0442\u044b\u043d \u0436\u0435\u0440\u0456",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0421\u0456\u0437 \u0435\u04a3\u0433\u0456\u0437\u0456\u043f \u0442\u04b1\u0440\u0493\u0430\u043d URL e-mail \u0430\u0434\u0440\u0435\u0441\u0456 \u0431\u043e\u043b\u044b\u043f \u0442\u0430\u0431\u044b\u043b\u0430\u0434\u044b. \u0410\u043b\u0434\u044b\u043d\u0430 mailto: \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0456\u043d \u049b\u043e\u0441\u0443\u0434\u044b \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?",
"Insert\/edit link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443",
"Insert\/edit video": "\u0412\u0438\u0434\u0435\u043e \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443",
"Media": "\u041c\u0435\u0434\u0438\u0430",
"Alternative source": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0430\u0434\u0440\u0435\u0441\u0456",
"Paste your embed code below:": "\u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043a\u043e\u0434\u0442\u044b \u043a\u04e9\u0448\u0456\u0440\u0456\u043f \u0430\u043b\u044b\u043f, \u049b\u043e\u0439\u044b\u04a3\u044b\u0437:",
"Insert video": "\u0412\u0438\u0434\u0435\u043e \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440\u0456",
"Insert\/edit media": "\u041c\u0435\u0434\u0438\u0430 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443",
"Embed": "\u0415\u043d\u0434\u0456\u0440\u0443",
"Nonbreaking space": "\u04ae\u0437\u0434\u0456\u043a\u0441\u0456\u0437 \u0431\u043e\u0441 \u043e\u0440\u044b\u043d",
"Page break": "\u0411\u0435\u0442 \u04af\u0437\u0456\u043b\u0456\u043c\u0456",
"Paste as text": "\u041c\u04d9\u0442\u0456\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u049b\u043e\u044e",
"Preview": "\u0410\u043b\u0434\u044b\u043d-\u0430\u043b\u0430 \u049b\u0430\u0440\u0430\u0443",
"Print": "\u0411\u0430\u0441\u044b\u043f \u0448\u044b\u0493\u0430\u0440\u0443",
"Save": "\u0421\u0430\u049b\u0442\u0430\u0443",
"Could not find the specified string.": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u0433\u0435\u043d \u0436\u043e\u043b \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.",
"Replace": "\u0410\u0443\u044b\u0441\u0442\u044b\u0440\u0443",
"Next": "\u041a\u0435\u043b\u0435\u0441\u0456",
"Whole words": "\u0422\u04b1\u0442\u0430\u0441 \u0441\u04e9\u0437\u0434\u0435\u0440",
"Find and replace": "\u0422\u0430\u0431\u0443 \u0436\u04d9\u043d\u0435 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443",
"Replace with": "\u0410\u0443\u044b\u0441\u0442\u044b\u0440\u0430\u0442\u044b\u043d \u043c\u04d9\u0442\u0456\u043d",
"Find": "\u0422\u0430\u0431\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u04d9\u0442\u0456\u043d",
"Replace all": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b\u043d \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443",
"Match case": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0434\u0456 \u0435\u0441\u043a\u0435\u0440\u0443",
"Prev": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b",
"Spellcheck": "\u0415\u043c\u043b\u0435 \u0442\u0435\u043a\u0441\u0435\u0440\u0443",
"Finish": "\u0410\u044f\u049b\u0442\u0430\u0443",
"Ignore all": "\u0415\u0448\u049b\u0430\u0439\u0441\u044b\u0441\u044b\u043d \u0435\u043b\u0435\u043c\u0435\u0443",
"Ignore": "\u0415\u043b\u0435\u043c\u0435\u0443",
"Add to Dictionary": "\u0421\u04e9\u0437\u0434\u0456\u043a\u043a\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Insert row before": "\u04ae\u0441\u0442\u0456\u043d\u0435 \u0436\u043e\u043b \u049b\u043e\u0441\u0443",
"Rows": "\u0416\u043e\u043b\u044b",
"Height": "\u0411\u0438\u0456\u043a\u0442\u0456\u0433\u0456",
"Paste row after": "\u0416\u043e\u043b\u0434\u044b\u04a3 \u0430\u0441\u0442\u044b\u043d\u0430 \u049b\u043e\u044e",
"Alignment": "\u041e\u0440\u043d\u0430\u043b\u0430\u0441\u0443\u044b",
"Border color": "\u0416\u0438\u0435\u043a \u0442\u04af\u0441\u0456",
"Column group": "\u0411\u0430\u0493\u0430\u043d \u0442\u043e\u0431\u044b",
"Row": "\u0416\u043e\u043b",
"Insert column before": "\u0410\u043b\u0434\u044b\u043d\u0430 \u0431\u0430\u0493\u0430\u043d \u049b\u043e\u0441\u0443",
"Split cell": "\u04b0\u044f\u0448\u044b\u049b\u0442\u044b \u0431\u04e9\u043b\u0443",
"Cell padding": "\u04b0\u044f\u0448\u044b\u049b \u043a\u0435\u04a3\u0434\u0456\u0433\u0456",
"Cell spacing": "\u04b0\u044f\u0448\u044b\u049b \u0430\u0440\u0430\u043b\u044b\u0493\u044b",
"Row type": "\u0416\u043e\u043b \u0442\u0438\u043f\u0456",
"Insert table": "\u041a\u0435\u0441\u0442\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Body": "\u041d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u04e9\u043b\u0456\u0433\u0456",
"Caption": "\u0410\u0442\u0430\u0443\u044b",
"Footer": "\u0410\u044f\u049b \u0436\u0430\u0493\u044b",
"Delete row": "\u0416\u043e\u043b\u0434\u044b \u0436\u043e\u044e",
"Paste row before": "\u0416\u043e\u043b\u0434\u044b\u04a3 \u04af\u0441\u0442\u0456\u043d\u0435 \u049b\u043e\u044e",
"Scope": "\u0410\u0443\u043c\u0430\u0493\u044b",
"Delete table": "\u041a\u0435\u0441\u0442\u0435\u043d\u0456 \u0436\u043e\u044e",
"H Align": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u043d\u0435\u043d \u0442\u0443\u0440\u0430\u043b\u0430\u0443",
"Top": "\u04ae\u0441\u0442\u0456",
"Header cell": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 \u04b1\u044f\u0448\u044b\u049b",
"Column": "\u0411\u0430\u0493\u0430\u043d",
"Row group": "\u0416\u043e\u043b \u0442\u043e\u0431\u044b",
"Cell": "\u04b0\u044f\u0448\u044b\u049b",
"Middle": "\u041e\u0440\u0442\u0430\u0441\u044b",
"Cell type": "\u04b0\u044f\u0448\u044b\u049b \u0442\u0438\u043f\u0456",
"Copy row": "\u0416\u043e\u043b\u0434\u044b \u043a\u04e9\u0448\u0456\u0440\u0443",
"Row properties": "\u0416\u043e\u043b \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b",
"Table properties": "\u041a\u0435\u0441\u0442\u0435 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b",
"Bottom": "\u0410\u0441\u0442\u044b",
"V Align": "\u0422\u0456\u0433\u0456\u043d\u0435\u043d \u0442\u0443\u0440\u0430\u043b\u0430\u0443",
"Header": "\u0411\u0430\u0441 \u0436\u0430\u0493\u044b",
"Right": "\u041e\u04a3\u0493\u0430",
"Insert column after": "\u0410\u0440\u0442\u044b\u043d\u0430 \u0431\u0430\u0493\u0430\u043d \u049b\u043e\u0441\u0443",
"Cols": "\u0411\u0430\u0493\u0430\u043d\u044b",
"Insert row after": "\u0410\u0441\u0442\u044b\u043d\u0430 \u0436\u043e\u043b \u049b\u043e\u0441\u0443",
"Width": "\u04b0\u0437\u044b\u043d\u0434\u044b\u0493\u044b",
"Cell properties": "\u04b0\u044f\u0448\u044b\u049b \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b",
"Left": "\u0421\u043e\u043b\u0493\u0430",
"Cut row": "\u0416\u043e\u043b\u0434\u044b \u049b\u0438\u044b\u043f \u0430\u043b\u0443",
"Delete column": "\u0411\u0430\u0493\u0430\u043d\u0434\u044b \u0436\u043e\u044e",
"Center": "\u041e\u0440\u0442\u0430\u0441\u044b\u043d\u0430",
"Merge cells": "\u04b0\u044f\u0448\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u0431\u0456\u0440\u0456\u043a\u0442\u0456\u0440\u0443",
"Insert template": "\u04ae\u043b\u0433\u0456 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"Templates": "\u04ae\u043b\u0433\u0456\u043b\u0435\u0440",
"Background color": "\u04e8\u04a3\u0456\u043d\u0456\u04a3 \u0442\u04af\u0441\u0456",
"Custom...": "\u04e8\u0437\u0433\u0435\u0440\u0442\u0443",
"Custom color": "\u0422\u04af\u0441 \u04e9\u0437\u0433\u0435\u0440\u0442\u0443",
"No color": "\u0422\u04af\u0441\u0441\u0456\u0437",
"Text color": "\u041c\u04d9\u0442\u0456\u043d \u0442\u04af\u0441\u0456",
"Table of Contents": "\u041c\u0430\u0437\u043c\u04b1\u043d\u0434\u0430\u0440 \u043a\u0435\u0441\u0442\u0435\u0441\u0456",
"Show blocks": "\u0411\u043b\u043e\u043a\u0442\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443",
"Show invisible characters": "\u041a\u04e9\u0440\u0456\u043d\u0431\u0435\u0439\u0442\u0456\u043d \u0442\u0430\u04a3\u0431\u0430\u043b\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443",
"Words: {0}": "\u0421\u04e9\u0437 \u0441\u0430\u043d\u044b: {0}",
"Insert": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443",
"File": "\u0424\u0430\u0439\u043b",
"Edit": "\u0422\u04af\u0437\u0435\u0442\u0443",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0430\u043b\u0493\u0430\u043d \u043c\u04d9\u0442\u0456\u043d \u0430\u0443\u043c\u0430\u0493\u044b. \u041c\u0435\u043d\u044e \u043a\u04e9\u0440\u0441\u0435\u0442\u0443 \u04af\u0448\u0456\u043d ALT-F9 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437. \u049a\u04b1\u0440\u0430\u043b\u0434\u0430\u0440 \u043f\u0430\u043d\u0435\u043b\u0456\u043d \u043a\u04e9\u0440\u0441\u0435\u0442\u0443 \u04af\u0448\u0456\u043d ALT-F10 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437. \u041a\u04e9\u043c\u0435\u043a \u0430\u043b\u0443 \u04af\u0448\u0456\u043d ALT-0 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.",
"Tools": "\u049a\u04b1\u0440\u0430\u043b\u0434\u0430\u0440",
"View": "\u041a\u04e9\u0440\u0456\u043d\u0456\u0441",
"Table": "\u041a\u0435\u0441\u0442\u0435",
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
});editors/tinymce/langs/th.js000064400000047310152177723720011764 0ustar00tinymce.addI18n('th',{
"Cut": "\u0e15\u0e31\u0e14",
"Heading 5": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 5",
"Header 2": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e04\u0e25\u0e34\u0e1b\u0e1a\u0e2d\u0e23\u0e4c\u0e14 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e43\u0e0a\u0e49\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e25\u0e31\u0e14 Ctrl+X\/C\/V \u0e41\u0e17\u0e19",
"Heading 4": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 4",
"Div": "Div",
"Heading 2": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 2",
"Paste": "\u0e27\u0e32\u0e07",
"Close": "\u0e1b\u0e34\u0e14",
"Font Family": "\u0e15\u0e23\u0e30\u0e01\u0e39\u0e25\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23",
"Pre": "\u0e01\u0e48\u0e2d\u0e19",
"Align right": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e02\u0e27\u0e32",
"New document": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e43\u0e2b\u0e21\u0e48",
"Blockquote": "\u0e22\u0e01\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e31\u0e49\u0e07\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32",
"Numbered list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e40\u0e25\u0e02",
"Heading 1": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 1",
"Headings": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
"Increase indent": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
"Formats": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
"Headers": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
"Select all": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
"Header 3": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 3",
"Blocks": "\u0e1a\u0e25\u0e47\u0e2d\u0e01",
"Undo": "\u0e40\u0e25\u0e34\u0e01\u0e17\u0e33",
"Strikethrough": "\u0e02\u0e35\u0e14\u0e17\u0e31\u0e1a",
"Bullet list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e22\u0e48\u0e2d\u0e22",
"Header 1": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 1",
"Superscript": "\u0e15\u0e31\u0e27\u0e22\u0e01",
"Clear formatting": "\u0e25\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
"Font Sizes": "\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23",
"Subscript": "\u0e15\u0e31\u0e27\u0e2b\u0e49\u0e2d\u0e22",
"Header 6": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 6",
"Redo": "\u0e17\u0e4d\u0e32\u0e0b\u0e49\u0e33",
"Paragraph": "\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32",
"Ok": "\u0e15\u0e01\u0e25\u0e07",
"Bold": "\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e32",
"Code": "\u0e42\u0e04\u0e49\u0e14",
"Italic": "\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e35\u0e22\u0e07",
"Align center": "\u0e08\u0e31\u0e14\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07",
"Header 5": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 5",
"Heading 6": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 6",
"Heading 3": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 3",
"Decrease indent": "\u0e25\u0e14\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
"Header 4": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e42\u0e2b\u0e21\u0e14\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e18\u0e23\u0e23\u0e21\u0e14\u0e32 \u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e27\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e18\u0e23\u0e23\u0e21\u0e14\u0e32\u0e08\u0e19\u0e01\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e08\u0e30\u0e1b\u0e34\u0e14\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e19\u0e35\u0e49",
"Underline": "\u0e02\u0e35\u0e14\u0e40\u0e2a\u0e49\u0e19\u0e43\u0e15\u0e49",
"Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
"Justify": "\u0e40\u0e15\u0e47\u0e21\u0e41\u0e19\u0e27",
"Inline": "\u0e41\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e44\u0e25\u0e19\u0e4c",
"Copy": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01",
"Align left": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e0b\u0e49\u0e32\u0e22",
"Visual aids": "\u0e17\u0e31\u0e28\u0e19\u0e39\u0e1b\u0e01\u0e23\u0e13\u0e4c",
"Lower Greek": "\u0e01\u0e23\u0e35\u0e01\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
"Square": "\u0e08\u0e31\u0e15\u0e38\u0e23\u0e31\u0e2a",
"Default": "\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
"Lower Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
"Circle": "\u0e27\u0e07\u0e01\u0e25\u0e21",
"Disc": "\u0e14\u0e34\u0e2a\u0e01\u0e4c",
"Upper Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32",
"Upper Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32",
"Lower Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0e04\u0e27\u0e23\u0e08\u0e30\u0e02\u0e36\u0e49\u0e19\u0e15\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 \u0e15\u0e32\u0e21\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 \u0e15\u0e31\u0e27\u0e40\u0e25\u0e02 \u0e02\u0e35\u0e14\u0e01\u0e25\u0e32\u0e07 \u0e08\u0e38\u0e14 \u0e2d\u0e31\u0e12\u0e20\u0e32\u0e04 \u0e2b\u0e23\u0e37\u0e2d \u0e02\u0e35\u0e14\u0e25\u0e48\u0e32\u0e07",
"Name": "\u0e0a\u0e37\u0e48\u0e2d",
"Anchor": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "\u0e04\u0e38\u0e13\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2d\u0e2d\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?",
"Restore last draft": "\u0e04\u0e37\u0e19\u0e04\u0e48\u0e32\u0e41\u0e1a\u0e1a\u0e23\u0e48\u0e32\u0e07\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
"Special character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e1e\u0e34\u0e40\u0e28\u0e29",
"Source code": "\u0e42\u0e04\u0e49\u0e14\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a",
"Language": "\u0e20\u0e32\u0e29\u0e32",
"Insert\/Edit code sample": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14",
"B": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19",
"R": "\u0e41\u0e14\u0e07",
"G": "\u0e40\u0e02\u0e35\u0e22\u0e27",
"Color": "\u0e2a\u0e35",
"Right to left": "\u0e02\u0e27\u0e32\u0e44\u0e1b\u0e0b\u0e49\u0e32\u0e22",
"Left to right": "\u0e0b\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e02\u0e27\u0e32",
"Emoticons": "\u0e2d\u0e34\u0e42\u0e21\u0e15\u0e34\u0e04\u0e2d\u0e19",
"Robots": "\u0e2b\u0e38\u0e48\u0e19\u0e22\u0e19\u0e15\u0e4c",
"Document properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
"Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
"Keywords": "\u0e04\u0e33\u0e2a\u0e33\u0e04\u0e31\u0e0d",
"Encoding": "\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a",
"Description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
"Author": "\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19",
"Fullscreen": "\u0e40\u0e15\u0e47\u0e21\u0e08\u0e2d",
"Horizontal line": "\u0e40\u0e2a\u0e49\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
"Horizontal space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
"Insert\/edit image": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e39\u0e1b",
"General": "\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
"Advanced": "\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07",
"Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32",
"Border": "\u0e40\u0e2a\u0e49\u0e19\u0e02\u0e2d\u0e1a",
"Constrain proportions": "\u0e08\u0e33\u0e01\u0e31\u0e14\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19",
"Vertical space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07",
"Image description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e23\u0e39\u0e1b",
"Style": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
"Dimensions": "\u0e02\u0e19\u0e32\u0e14",
"Insert image": "\u0e41\u0e17\u0e23\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e",
"Image": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e",
"Zoom in": "\u0e02\u0e22\u0e32\u0e22\u0e40\u0e02\u0e49\u0e32",
"Contrast": "\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e15\u0e48\u0e32\u0e07",
"Back": "\u0e01\u0e25\u0e31\u0e1a",
"Gamma": "\u0e41\u0e01\u0e21\u0e21\u0e32",
"Flip horizontally": "\u0e1e\u0e25\u0e34\u0e01\u0e15\u0e32\u0e21\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
"Resize": "\u0e1b\u0e23\u0e31\u0e1a\u0e02\u0e19\u0e32\u0e14",
"Sharpen": "\u0e04\u0e27\u0e32\u0e21\u0e04\u0e21",
"Zoom out": "\u0e22\u0e48\u0e2d\u0e2d\u0e2d\u0e01",
"Image options": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e",
"Apply": "\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49",
"Brightness": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07",
"Rotate clockwise": "\u0e2b\u0e21\u0e38\u0e19\u0e15\u0e32\u0e21\u0e40\u0e02\u0e47\u0e21\u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32",
"Rotate counterclockwise": "\u0e2b\u0e21\u0e38\u0e19\u0e17\u0e27\u0e19\u0e40\u0e02\u0e47\u0e21\u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32",
"Edit image": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e39\u0e1b",
"Color levels": "\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2a\u0e35",
"Crop": "\u0e04\u0e23\u0e2d\u0e1b\u0e15\u0e31\u0e14",
"Orientation": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e27\u0e32\u0e07",
"Flip vertically": "\u0e1e\u0e25\u0e34\u0e01\u0e15\u0e32\u0e21\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07",
"Invert": "\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a",
"Date\/time": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\/\u0e40\u0e27\u0e25\u0e32",
"Insert date\/time": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\/\u0e40\u0e27\u0e25\u0e32",
"Remove link": "\u0e40\u0e2d\u0e32\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e2d\u0e2d\u0e01",
"Url": "URL",
"Text to display": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07",
"Anchors": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14",
"Insert link": "\u0e41\u0e17\u0e23\u0e01\u0e25\u0e34\u0e07\u0e01\u0e4c",
"Link": "\u0e25\u0e34\u0e07\u0e01\u0e4c",
"New window": "\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e43\u0e2b\u0e21\u0e48",
"None": "\u0e44\u0e21\u0e48\u0e21\u0e35",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL \u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e23\u0e30\u0e1a\u0e38\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2a\u0e48 http:\/\/ \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48",
"Paste or type a link": "\u0e27\u0e32\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e1b\u0e49\u0e2d\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c",
"Target": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL \u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e23\u0e30\u0e1a\u0e38\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e41\u0e2d\u0e14\u0e40\u0e14\u0e23\u0e2a \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2a\u0e48 mailto: \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48",
"Insert\/edit link": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e25\u0e34\u0e07\u0e01\u0e4c",
"Insert\/edit video": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d",
"Media": "\u0e2a\u0e37\u0e48\u0e2d",
"Alternative source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e2a\u0e33\u0e23\u0e2d\u0e07",
"Paste your embed code below:": "\u0e27\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14\u0e1d\u0e31\u0e07\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07:",
"Insert video": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d",
"Poster": "\u0e42\u0e1b\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c",
"Insert\/edit media": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e2a\u0e37\u0e48\u0e2d",
"Embed": "\u0e1d\u0e31\u0e07",
"Nonbreaking space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e44\u0e21\u0e48\u0e41\u0e22\u0e01",
"Page break": "\u0e15\u0e31\u0e27\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
"Paste as text": "\u0e27\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
"Preview": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07",
"Print": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c",
"Save": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01",
"Could not find the specified string.": "\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2a\u0e15\u0e23\u0e34\u0e07\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38",
"Replace": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
"Next": "\u0e16\u0e31\u0e14\u0e44\u0e1b",
"Whole words": "\u0e17\u0e31\u0e49\u0e07\u0e04\u0e33",
"Find and replace": "\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e41\u0e25\u0e30\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
"Replace with": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e14\u0e49\u0e27\u0e22",
"Find": "\u0e04\u0e49\u0e19\u0e2b\u0e32",
"Replace all": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
"Match case": "\u0e15\u0e23\u0e07\u0e15\u0e32\u0e21\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e43\u0e2b\u0e0d\u0e48-\u0e40\u0e25\u0e47\u0e01",
"Prev": "\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32",
"Spellcheck": "\u0e15\u0e23\u0e27\u0e08\u0e01\u0e32\u0e23\u0e2a\u0e30\u0e01\u0e14",
"Finish": "\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19",
"Ignore all": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
"Ignore": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19",
"Add to Dictionary": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e43\u0e19\u0e1e\u0e08\u0e19\u0e32\u0e19\u0e38\u0e01\u0e23\u0e21",
"Insert row before": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19",
"Rows": "\u0e41\u0e16\u0e27",
"Height": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07",
"Paste row after": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
"Alignment": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e41\u0e19\u0e27",
"Border color": "\u0e2a\u0e35\u0e02\u0e2d\u0e1a",
"Column group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
"Row": "\u0e41\u0e16\u0e27",
"Insert column before": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e19\u0e49\u0e32",
"Split cell": "\u0e41\u0e22\u0e01\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Cell padding": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e20\u0e32\u0e22\u0e43\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Cell spacing": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Row type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27",
"Insert table": "\u0e41\u0e17\u0e23\u0e01\u0e15\u0e32\u0e23\u0e32\u0e07",
"Body": "\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
"Caption": "\u0e1b\u0e49\u0e32\u0e22\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
"Footer": "\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e49\u0e32\u0e22",
"Delete row": "\u0e25\u0e1a\u0e41\u0e16\u0e27",
"Paste row before": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19",
"Scope": "\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15",
"Delete table": "\u0e25\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07",
"H Align": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e43\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
"Top": "\u0e1a\u0e19",
"Header cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
"Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
"Row group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e41\u0e16\u0e27",
"Cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Middle": "\u0e01\u0e25\u0e32\u0e07",
"Cell type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Copy row": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e41\u0e16\u0e27",
"Row properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27",
"Table properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07",
"Bottom": "\u0e25\u0e48\u0e32\u0e07",
"V Align": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e43\u0e19\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07",
"Header": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
"Right": "\u0e02\u0e27\u0e32",
"Insert column after": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e25\u0e31\u0e07",
"Cols": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
"Insert row after": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
"Width": "\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07",
"Cell properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Left": "\u0e0b\u0e49\u0e32\u0e22",
"Cut row": "\u0e15\u0e31\u0e14\u0e41\u0e16\u0e27",
"Delete column": "\u0e25\u0e1a\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
"Center": "\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07",
"Merge cells": "\u0e1c\u0e2a\u0e32\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
"Insert template": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
"Templates": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
"Background color": "\u0e2a\u0e35\u0e1e\u0e37\u0e49\u0e19\u0e2b\u0e25\u0e31\u0e07",
"Custom...": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
"Custom color": "\u0e2a\u0e35\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
"No color": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2a\u0e35",
"Text color": "\u0e2a\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
"Table of Contents": "\u0e2a\u0e32\u0e23\u0e1a\u0e31\u0e0d",
"Show blocks": "\u0e41\u0e2a\u0e14\u0e07\u0e1a\u0e25\u0e47\u0e2d\u0e01",
"Show invisible characters": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e17\u0e35\u0e48\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19",
"Words: {0}": "\u0e04\u0e33: {0}",
"Insert": "\u0e41\u0e17\u0e23\u0e01",
"File": "\u0e44\u0e1f\u0e25\u0e4c",
"Edit": "\u0e41\u0e01\u0e49\u0e44\u0e02",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Rich Text \u0e01\u0e14 ALT-F9 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e21\u0e19\u0e39 \u0e01\u0e14 ALT-F10 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e16\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d \u0e01\u0e14 ALT-0 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d",
"Tools": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d",
"View": "\u0e21\u0e38\u0e21\u0e21\u0e2d\u0e07",
"Table": "\u0e15\u0e32\u0e23\u0e32\u0e07",
"Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a"
});editors/tinymce/langs/hu.js000064400000023631152177723720011765 0ustar00tinymce.addI18n('hu',{
"Cut": "Kiv\u00e1g\u00e1s",
"Heading 5": "Fejl\u00e9c 5",
"Header 2": "C\u00edmsor 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "A b\u00f6ng\u00e9sz\u0151d nem t\u00e1mogatja a k\u00f6zvetlen hozz\u00e1f\u00e9r\u00e9st a v\u00e1g\u00f3laphoz. K\u00e9rlek haszn\u00e1ld a Ctrl+X\/C\/V billenty\u0171ket.",
"Heading 4": "Fejl\u00e9c 4",
"Div": "Div",
"Heading 2": "Fejl\u00e9c 2",
"Paste": "Beilleszt\u00e9s",
"Close": "Bez\u00e1r",
"Font Family": "Bet\u0171t\u00edpus",
"Pre": "El\u0151",
"Align right": "Jobbra igaz\u00edt",
"New document": "\u00daj dokumentum",
"Blockquote": "Id\u00e9zetblokk",
"Numbered list": "Sz\u00e1moz\u00e1s",
"Heading 1": "Fejl\u00e9c 1",
"Headings": "Fejl\u00e9cek",
"Increase indent": "Beh\u00faz\u00e1s n\u00f6vel\u00e9se",
"Formats": "Form\u00e1tumok",
"Headers": "C\u00edmsorok",
"Select all": "Minden kijel\u00f6l\u00e9se",
"Header 3": "C\u00edmsor 3",
"Blocks": "Blokkok",
"Undo": "Visszavon\u00e1s",
"Strikethrough": "\u00c1th\u00fazott",
"Bullet list": "Felsorol\u00e1s",
"Header 1": "C\u00edmsor 1",
"Superscript": "Fels\u0151 index",
"Clear formatting": "Form\u00e1z\u00e1s t\u00f6rl\u00e9se",
"Font Sizes": "Bet\u0171m\u00e9retek",
"Subscript": "Als\u00f3 index",
"Header 6": "C\u00edmsor 6",
"Redo": "Ism\u00e9t",
"Paragraph": "Bekezd\u00e9s",
"Ok": "Rendben",
"Bold": "F\u00e9lk\u00f6v\u00e9r",
"Code": "K\u00f3d",
"Italic": "D\u0151lt",
"Align center": "K\u00f6z\u00e9pre z\u00e1r",
"Header 5": "C\u00edmsor 5",
"Heading 6": "Fejl\u00e9c 6",
"Heading 3": "Fejl\u00e9c 3",
"Decrease indent": "Beh\u00faz\u00e1s cs\u00f6kkent\u00e9se",
"Header 4": "C\u00edmsor 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Beilleszt\u00e9s mostant\u00f3l egyszer\u0171 sz\u00f6veg m\u00f3dban. A tartalmak mostant\u00f3l egyszer\u0171 sz\u00f6vegk\u00e9nt lesznek beillesztve, am\u00edg nem kapcsolod ki ezt az opci\u00f3t.",
"Underline": "Al\u00e1h\u00fazott",
"Cancel": "M\u00e9gse",
"Justify": "Sorkiz\u00e1r\u00e1s",
"Inline": "Vonalon bel\u00fcl",
"Copy": "M\u00e1sol\u00e1s",
"Align left": "Balra igaz\u00edt",
"Visual aids": "Vizu\u00e1lis seg\u00e9deszk\u00f6z\u00f6k",
"Lower Greek": "Kis g\u00f6r\u00f6g sz\u00e1m",
"Square": "N\u00e9gyzet",
"Default": "Alap\u00e9rtelmezett",
"Lower Alpha": "Kisbet\u0171",
"Circle": "K\u00f6r",
"Disc": "Pont",
"Upper Alpha": "Nagybet\u0171",
"Upper Roman": "Nagy r\u00f3mai sz\u00e1m",
"Lower Roman": "Kis r\u00f3mai sz\u00e1m",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Az azonos\u00edt\u00f3nak bet\u0171vel kell kezd\u0151dnie, azut\u00e1n csak bet\u0171ket, sz\u00e1mokat, gondolatjeleket, pontokat, kett\u0151spontokat vagy al\u00e1h\u00faz\u00e1st tartalmazhat.",
"Name": "N\u00e9v",
"Anchor": "Horgony",
"Id": "Azonos\u00edt\u00f3",
"You have unsaved changes are you sure you want to navigate away?": "Nem mentett m\u00f3dos\u00edt\u00e1said vannak, biztos hogy el akarsz navig\u00e1lni?",
"Restore last draft": "Utols\u00f3 piszkozat vissza\u00e1ll\u00edt\u00e1sa",
"Special character": "Speci\u00e1lis karakter",
"Source code": "Forr\u00e1sk\u00f3d",
"Language": "Nyelv",
"Insert\/Edit code sample": "K\u00f3dminta besz\u00far\u00e1sa\/szerkeszt\u00e9se",
"B": "B",
"R": "R",
"G": "G",
"Color": "Sz\u00edn",
"Right to left": "Jobbr\u00f3l balra",
"Left to right": "Balr\u00f3l jobbra",
"Emoticons": "Vigyorok",
"Robots": "Robotok",
"Document properties": "Dokumentum tulajdons\u00e1gai",
"Title": "C\u00edm",
"Keywords": "Kulcsszavak",
"Encoding": "K\u00f3dol\u00e1s",
"Description": "Le\u00edr\u00e1s",
"Author": "Szerz\u0151",
"Fullscreen": "Teljes k\u00e9perny\u0151",
"Horizontal line": "V\u00edzszintes vonal",
"Horizontal space": "Horizont\u00e1lis hely",
"Insert\/edit image": "K\u00e9p beilleszt\u00e9se\/szerkeszt\u00e9se",
"General": "\u00c1ltal\u00e1nos",
"Advanced": "Halad\u00f3",
"Source": "Forr\u00e1s",
"Border": "Szeg\u00e9ly",
"Constrain proportions": "M\u00e9retar\u00e1ny",
"Vertical space": "Vertik\u00e1lis hely",
"Image description": "K\u00e9p le\u00edr\u00e1sa",
"Style": "St\u00edlus",
"Dimensions": "M\u00e9retek",
"Insert image": "K\u00e9p besz\u00far\u00e1sa",
"Image": "K\u00e9p",
"Zoom in": "Nagy\u00edt\u00e1s",
"Contrast": "Kontraszt",
"Back": "Vissza",
"Gamma": "Gamma",
"Flip horizontally": "V\u00edzszintes t\u00fckr\u00f6z\u00e9s",
"Resize": "\u00c1tm\u00e9retez\u00e9s",
"Sharpen": "\u00c9less\u00e9g",
"Zoom out": "Kicsiny\u00edt\u00e9s",
"Image options": "K\u00e9p be\u00e1ll\u00edt\u00e1sok",
"Apply": "Ment\u00e9s",
"Brightness": "F\u00e9nyer\u0151",
"Rotate clockwise": "Forgat\u00e1s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151en",
"Rotate counterclockwise": "Forgat\u00e1s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tesen",
"Edit image": "K\u00e9p szerkeszt\u00e9se",
"Color levels": "Sz\u00ednszint",
"Crop": "K\u00e9p v\u00e1g\u00e1s",
"Orientation": "K\u00e9p t\u00e1jol\u00e1s",
"Flip vertically": "F\u00fcgg\u0151leges t\u00fckr\u00f6z\u00e9s",
"Invert": "Inverz k\u00e9p",
"Date\/time": "D\u00e1tum\/id\u0151",
"Insert date\/time": "D\u00e1tum\/id\u0151 beilleszt\u00e9se",
"Remove link": "Hivatkoz\u00e1s t\u00f6rl\u00e9se",
"Url": "Url",
"Text to display": "Megjelen\u0151 sz\u00f6veg",
"Anchors": "Horgonyok",
"Insert link": "Link beilleszt\u00e9se",
"Link": "Link",
"New window": "\u00daj ablak",
"None": "Nincs",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Az URL amit megadt\u00e1l k\u00fcls\u0151 c\u00edmnek t\u0171nik. Szeretn\u00e9d hozz\u00e1adni a sz\u00fcks\u00e9ges http:\/\/ el\u0151tagot?",
"Paste or type a link": "Link be\u00edr\u00e1sa vagy beilleszt\u00e9se",
"Target": "C\u00e9l",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Az URL amit megadt\u00e1l email c\u00edmnek t\u0171nik. Szeretn\u00e9d hozz\u00e1adni a sz\u00fcks\u00e9ges mailto: el\u0151tagot?",
"Insert\/edit link": "Link beilleszt\u00e9se\/szerkeszt\u00e9se",
"Insert\/edit video": "Vide\u00f3 beilleszt\u00e9se\/szerkeszt\u00e9se",
"Media": "M\u00e9dia",
"Alternative source": "Alternat\u00edv forr\u00e1s",
"Paste your embed code below:": "Illeszd be a be\u00e1gyaz\u00f3 k\u00f3dot alulra:",
"Insert video": "Vide\u00f3 beilleszt\u00e9se",
"Poster": "El\u0151n\u00e9zeti k\u00e9p",
"Insert\/edit media": "M\u00e9dia besz\u00far\u00e1sa\/beilleszt\u00e9se",
"Embed": "Be\u00e1gyaz\u00e1s",
"Nonbreaking space": "Nem t\u00f6rhet\u0151 hely",
"Page break": "Oldalt\u00f6r\u00e9s",
"Paste as text": "Beilleszt\u00e9s sz\u00f6vegk\u00e9nt",
"Preview": "El\u0151n\u00e9zet",
"Print": "Nyomtat\u00e1s",
"Save": "Ment\u00e9s",
"Could not find the specified string.": "A be\u00edrt kifejez\u00e9s nem tal\u00e1lhat\u00f3.",
"Replace": "Csere",
"Next": "K\u00f6vetkez\u0151",
"Whole words": "Csak ha ez a teljes sz\u00f3",
"Find and replace": "Keres\u00e9s \u00e9s csere",
"Replace with": "Csere erre",
"Find": "Keres\u00e9s",
"Replace all": "Az \u00f6sszes cser\u00e9je",
"Match case": "Kis \u00e9s nagybet\u0171k megk\u00fcl\u00f6nb\u00f6ztet\u00e9se",
"Prev": "El\u0151z\u0151",
"Spellcheck": "Helyes\u00edr\u00e1s ellen\u0151rz\u00e9s",
"Finish": "Befejez\u00e9s",
"Ignore all": "Mindent figyelmen k\u00edv\u00fcl hagy",
"Ignore": "Figyelmen k\u00edv\u00fcl hagy",
"Add to Dictionary": "Sz\u00f3t\u00e1rhoz ad",
"Insert row before": "Sor besz\u00far\u00e1sa el\u00e9",
"Rows": "Sorok",
"Height": "Magass\u00e1g",
"Paste row after": "Sor beilleszt\u00e9se m\u00f6g\u00e9",
"Alignment": "Igaz\u00edt\u00e1s",
"Border color": "Szeg\u00e9ly sz\u00edne",
"Column group": "Oszlop csoport",
"Row": "Sor",
"Insert column before": "Oszlop besz\u00far\u00e1sa el\u00e9",
"Split cell": "Cell\u00e1k sz\u00e9tv\u00e1laszt\u00e1sa",
"Cell padding": "Cella m\u00e9rete",
"Cell spacing": "Cell\u00e1k t\u00e1vols\u00e1ga",
"Row type": "Sor t\u00edpus",
"Insert table": "T\u00e1bl\u00e1zat beilleszt\u00e9se",
"Body": "Sz\u00f6vegt\u00f6rzs",
"Caption": "Felirat",
"Footer": "L\u00e1bl\u00e9c",
"Delete row": "Sor t\u00f6rl\u00e9se",
"Paste row before": "Sor beilleszt\u00e9se el\u00e9",
"Scope": "Hat\u00f3k\u00f6r",
"Delete table": "T\u00e1bl\u00e1zat t\u00f6rl\u00e9se",
"H Align": "V\u00edzszintes igaz\u00edt\u00e1s",
"Top": "Fel\u00fcl",
"Header cell": "Fejl\u00e9c cella",
"Column": "Oszlop",
"Row group": "Sor csoport",
"Cell": "Cella",
"Middle": "K\u00f6z\u00e9pen",
"Cell type": "Cella t\u00edpusa",
"Copy row": "Sor m\u00e1sol\u00e1sa",
"Row properties": "Sor tulajdons\u00e1gai",
"Table properties": "T\u00e1bl\u00e1zat tulajdons\u00e1gok",
"Bottom": "Alul",
"V Align": "F\u00fcgg\u0151leges igaz\u00edt\u00e1s",
"Header": "Fejl\u00e9c",
"Right": "Jobb",
"Insert column after": "Oszlop besz\u00far\u00e1sa m\u00f6g\u00e9",
"Cols": "Oszlopok",
"Insert row after": "Sor besz\u00far\u00e1sa m\u00f6g\u00e9",
"Width": "Sz\u00e9less\u00e9g",
"Cell properties": "Cella tulajdons\u00e1gok",
"Left": "Bal",
"Cut row": "Sor kiv\u00e1g\u00e1sa",
"Delete column": "Oszlop t\u00f6rl\u00e9se",
"Center": "K\u00f6z\u00e9p",
"Merge cells": "Cell\u00e1k egyes\u00edt\u00e9se",
"Insert template": "Sablon beilleszt\u00e9se",
"Templates": "Sablonok",
"Background color": "H\u00e1tt\u00e9r sz\u00edn",
"Custom...": "Egy\u00e9ni...",
"Custom color": "Egy\u00e9ni sz\u00edn",
"No color": "Nincs sz\u00edn",
"Text color": "Sz\u00f6veg sz\u00edne",
"Table of Contents": "Tartalomjegyz\u00e9k",
"Show blocks": "Blokkok mutat\u00e1sa",
"Show invisible characters": "L\u00e1thatatlan karakterek mutat\u00e1sa",
"Words: {0}": "Szavak: {0}",
"Insert": "Beilleszt\u00e9s",
"File": "F\u00e1jl",
"Edit": "Szerkeszt\u00e9s",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text ter\u00fclet. Nyomj ALT-F9-et a men\u00fch\u00f6z. Nyomj ALT-F10-et az eszk\u00f6zt\u00e1rhoz. Nyomj ALT-0-t a s\u00fag\u00f3hoz",
"Tools": "Eszk\u00f6z\u00f6k",
"View": "N\u00e9zet",
"Table": "T\u00e1bl\u00e1zat",
"Format": "Form\u00e1tum"
});editors/tinymce/langs/es.js000064400000014727152177723720011766 0ustar00tinymce.addI18n('es',{
"Cut": "Cortar",
"Header 2": "Encabezado 2 ",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tu navegador no soporta acceso directo al portapapeles. Por favor usa las teclas Crtl+X\/C\/V de tu teclado",
"Div": "Capa",
"Paste": "Pegar",
"Close": "Cerrar",
"Font Family": "Familia de fuentes",
"Pre": "Pre",
"Align right": "Alinear a la derecha",
"New document": "Nuevo documento",
"Blockquote": "Bloque de cita",
"Numbered list": "Lista numerada",
"Increase indent": "Incrementar sangr\u00eda",
"Formats": "Formatos",
"Headers": "Encabezado",
"Select all": "Seleccionar todo",
"Header 3": "Encabezado 3",
"Blocks": "Bloques",
"Undo": "Deshacer",
"Strikethrough": "Tachado",
"Bullet list": "Lista de vi\u00f1etas",
"Header 1": "Encabezado 1",
"Superscript": "Super\u00edndice",
"Clear formatting": "Limpiar formato",
"Font Sizes": "Tama\u00f1os de fuente",
"Subscript": "Sub\u00edndice",
"Header 6": "Encabezado 6",
"Redo": "Rehacer",
"Paragraph": "P\u00e1rrafo",
"Ok": "Ok",
"Bold": "Negrita",
"Code": "C\u00f3digo",
"Italic": "It\u00e1lica",
"Align center": "Alinear al centro",
"Header 5": "Encabezado 5 ",
"Decrease indent": "Disminuir sangr\u00eda",
"Header 4": "Encabezado 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.",
"Underline": "Subrayado",
"Cancel": "Cancelar",
"Justify": "Justificar",
"Inline": "en l\u00ednea",
"Copy": "Copiar",
"Align left": "Alinear a la izquierda",
"Visual aids": "Ayudas visuales",
"Lower Greek": "Inferior Griega",
"Square": "Cuadrado",
"Default": "Por defecto",
"Lower Alpha": "Inferior Alfa",
"Circle": "C\u00edrculo",
"Disc": "Disco",
"Upper Alpha": "Superior Alfa",
"Upper Roman": "Superior Romana",
"Lower Roman": "Inferior Romana",
"Name": "Nombre",
"Anchor": "Ancla",
"You have unsaved changes are you sure you want to navigate away?": "Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?",
"Restore last draft": "Restaurar el \u00faltimo borrador",
"Special character": "Car\u00e1cter especial",
"Source code": "C\u00f3digo fuente",
"Right to left": "De derecha a izquierda",
"Left to right": "De izquierda a derecha",
"Emoticons": "Emoticonos",
"Robots": "Robots",
"Document properties": "Propiedades del documento",
"Title": "T\u00edtulo",
"Keywords": "Palabras clave",
"Encoding": "Codificaci\u00f3n",
"Description": "Descripci\u00f3n",
"Author": "Autor",
"Fullscreen": "Pantalla completa",
"Horizontal line": "L\u00ednea horizontal",
"Horizontal space": "Espacio horizontal",
"Insert\/edit image": "Insertar\/editar imagen",
"General": "General",
"Advanced": "Avanzado",
"Source": "Fuente",
"Border": "Borde",
"Constrain proportions": "Restringir proporciones",
"Vertical space": "Espacio vertical",
"Image description": "Descripci\u00f3n de la imagen",
"Style": "Estilo",
"Dimensions": "Dimensiones",
"Insert image": "Insertar imagen",
"Insert date\/time": "Insertar fecha\/hora",
"Remove link": "Quitar enlace",
"Url": "URL",
"Text to display": "Texto para mostrar",
"Anchors": "Anclas",
"Insert link": "Insertar enlace",
"New window": "Nueva ventana",
"None": "Ninguno",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "Destino",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Insertar\/editar enlace",
"Insert\/edit video": "Insertar\/editar video",
"Poster": "Miniatura",
"Alternative source": "Fuente alternativa",
"Paste your embed code below:": "Pega tu c\u00f3digo embebido debajo",
"Insert video": "Insertar video",
"Embed": "Incrustado",
"Nonbreaking space": "Espacio fijo",
"Page break": "Salto de p\u00e1gina",
"Paste as text": "Pegar como texto",
"Preview": "Previsualizar",
"Print": "Imprimir",
"Save": "Guardar",
"Could not find the specified string.": "No se encuentra la cadena de texto especificada",
"Replace": "Reemplazar",
"Next": "Siguiente",
"Whole words": "Palabras completas",
"Find and replace": "Buscar y reemplazar",
"Replace with": "Reemplazar con",
"Find": "Buscar",
"Replace all": "Reemplazar todo",
"Match case": "Coincidencia exacta",
"Prev": "Anterior",
"Spellcheck": "Corrector ortogr\u00e1fico",
"Finish": "Finalizar",
"Ignore all": "Ignorar todos",
"Ignore": "Ignorar",
"Insert row before": "Insertar fila antes",
"Rows": "Filas",
"Height": "Alto",
"Paste row after": "Pegar la fila despu\u00e9s",
"Alignment": "Alineaci\u00f3n",
"Column group": "Grupo de columnas",
"Row": "Fila",
"Insert column before": "Insertar columna antes",
"Split cell": "Dividir celdas",
"Cell padding": "Relleno de celda",
"Cell spacing": "Espacio entre celdas",
"Row type": "Tipo de fila",
"Insert table": "Insertar tabla",
"Body": "Cuerpo",
"Caption": "Subt\u00edtulo",
"Footer": "Pie de p\u00e1gina",
"Delete row": "Eliminar fila",
"Paste row before": "Pegar la fila antes",
"Scope": "\u00c1mbito",
"Delete table": "Eliminar tabla",
"Header cell": "Celda de la cebecera",
"Column": "Columna",
"Cell": "Celda",
"Header": "Cabecera",
"Cell type": "Tipo de celda",
"Copy row": "Copiar fila",
"Row properties": "Propiedades de la fila",
"Table properties": "Propiedades de la tabla",
"Row group": "Grupo de filas",
"Right": "Derecha",
"Insert column after": "Insertar columna despu\u00e9s",
"Cols": "Columnas",
"Insert row after": "Insertar fila despu\u00e9s ",
"Width": "Ancho",
"Cell properties": "Propiedades de la celda",
"Left": "Izquierda",
"Cut row": "Cortar fila",
"Delete column": "Eliminar columna",
"Center": "Centrado",
"Merge cells": "Combinar celdas",
"Insert template": "Insertar plantilla",
"Templates": "Plantillas",
"Background color": "Color de fondo",
"Text color": "Color del texto",
"Show blocks": "Mostrar bloques",
"Show invisible characters": "Mostrar caracteres invisibles",
"Words: {0}": "Palabras: {0}",
"Insert": "Insertar",
"File": "Archivo",
"Edit": "Editar",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda",
"Tools": "Herramientas",
"View": "Ver",
"Table": "Tabla",
"Format": "Formato"
});editors/tinymce/langs/cs.js000064400000017542152177723720011762 0ustar00tinymce.addI18n('cs',{
"Cut": "Vyjmout",
"Heading 5": "Nadpis 5",
"Header 2": "Nadpis 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prohl\u00ed\u017ee\u010d nepodporuje p\u0159\u00edm\u00fd p\u0159\u00edstup do schr\u00e1nky. Pou\u017eijte pros\u00edm kl\u00e1vesov\u00e9 zkratky Ctrl+X\/C\/V.",
"Heading 4": "Nadpis 4",
"Div": "Div (blok)",
"Heading 2": "Nadpis 2",
"Paste": "Vlo\u017eit",
"Close": "Zav\u0159\u00edt",
"Font Family": "Typ p\u00edsma",
"Pre": "Pre (p\u0159edform\u00e1tov\u00e1no)",
"Align right": "Zarovnat vpravo",
"New document": "Nov\u00fd dokument",
"Blockquote": "Citace",
"Numbered list": "\u010c\u00edslov\u00e1n\u00ed",
"Heading 1": "Nadpis 1",
"Headings": "Nadpisy",
"Increase indent": "Zv\u011bt\u0161it odsazen\u00ed",
"Formats": "Form\u00e1ty",
"Headers": "Nadpisy",
"Select all": "Vybrat v\u0161e",
"Header 3": "Nadpis 3",
"Blocks": "Blokov\u00e9 zobrazen\u00ed (block)",
"Undo": "Zp\u011bt",
"Strikethrough": "P\u0159e\u0161rktnut\u00e9",
"Bullet list": "Odr\u00e1\u017eky",
"Header 1": "Nadpis 1",
"Superscript": "Horn\u00ed index",
"Clear formatting": "Vymazat form\u00e1tov\u00e1n\u00ed",
"Font Sizes": "Velikost p\u00edsma",
"Subscript": "Doln\u00ed index",
"Header 6": "Nadpis 6",
"Redo": "Znovu",
"Paragraph": "Odstavec",
"Ok": "OK",
"Bold": "Tu\u010dn\u00e9",
"Code": "Code (k\u00f3d)",
"Italic": "Kurz\u00edva",
"Align center": "Zarovnat na st\u0159ed",
"Header 5": "Nadpis 5",
"Heading 6": "Nadpis 6",
"Heading 3": "Nadpis 3",
"Decrease indent": "Zmen\u0161it odsazen\u00ed",
"Header 4": "Nadpis 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Je zapnuto vkl\u00e1d\u00e1n\u00ed \u010dist\u00e9ho textu. Dokud nebude tato volba vypnuta, bude ve\u0161ker\u00fd obsah vlo\u017een jako \u010dist\u00fd text.",
"Underline": "Podtr\u017een\u00e9",
"Cancel": "Zru\u0161it",
"Justify": "Zarovnat do bloku",
"Inline": "\u0158\u00e1dkov\u00e9 zobrazen\u00ed (inline)",
"Copy": "Kop\u00edrovat",
"Align left": "Zarovnat vlevo",
"Visual aids": "Vizu\u00e1ln\u00ed pom\u016fcky",
"Lower Greek": "Mal\u00e9 p\u00edsmenkov\u00e1n\u00ed",
"Square": "\u010ctvere\u010dek",
"Default": "V\u00fdchoz\u00ed",
"Lower Alpha": "Norm\u00e1ln\u00ed \u010d\u00edslov\u00e1n\u00ed",
"Circle": "Kole\u010dko",
"Disc": "Punt\u00edk",
"Upper Alpha": "velk\u00e9 p\u00edsmenkov\u00e1n\u00ed",
"Upper Roman": "\u0158\u00edmsk\u00e9 \u010d\u00edslice",
"Lower Roman": "Mal\u00e9 \u0159\u00edmsk\u00e9 \u010d\u00edslice",
"Name": "N\u00e1zev",
"Anchor": "Kotva",
"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zm\u011bny. Opravdu chcete opustit str\u00e1nku?",
"Restore last draft": "Obnovit posledn\u00ed koncept",
"Special character": "Speci\u00e1ln\u00ed znak",
"Source code": "Zdrojov\u00fd k\u00f3d",
"Color": "Barva",
"Right to left": "Zprava doleva",
"Left to right": "Zleva doprava",
"Emoticons": "Emotikony",
"Robots": "Roboti",
"Document properties": "Vlastnosti dokumentu",
"Title": "Titulek",
"Keywords": "Kl\u00ed\u010dov\u00e1 slova",
"Encoding": "K\u00f3dov\u00e1n\u00ed",
"Description": "Popis",
"Author": "Autor",
"Fullscreen": "Na celou obrazovku",
"Horizontal line": "Vodorovn\u00e1 \u010d\u00e1ra",
"Horizontal space": "Horizont\u00e1ln\u00ed mezera",
"Insert\/edit image": "Vlo\u017eit \/ upravit obr\u00e1zek",
"General": "Obecn\u00e9",
"Advanced": "Pokro\u010dil\u00e9",
"Source": "Url",
"Border": "R\u00e1me\u010dek",
"Constrain proportions": "Zachovat proporce",
"Vertical space": "Vertik\u00e1ln\u00ed mezera",
"Image description": "Popis obr\u00e1zku",
"Style": "Styl",
"Dimensions": "Rozm\u011bry",
"Insert image": "Vlo\u017eit obr\u00e1zek",
"Insert date\/time": "Vlo\u017eit datum \/ \u010das",
"Remove link": "Odstranit odkaz",
"Url": "Odkaz",
"Text to display": "Text k zobrazen\u00ed",
"Anchors": "Kotvy",
"Insert link": "Vlo\u017eit odkaz",
"New window": "Nov\u00e9 okno",
"None": "\u017d\u00e1dn\u00e9",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Zadan\u00e9 URL vypad\u00e1 jako odkaz na jin\u00fd web. Chcete doplnit povinn\u00fd prefix http:\/\/?",
"Target": "C\u00edl",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Zadan\u00e9 URL vypad\u00e1 jako e-mailov\u00e1 adresa. Chcete doplnit povinn\u00fd prefix mailto:?",
"Insert\/edit link": "Vlo\u017eit \/ upravit odkaz",
"Insert\/edit video": "Vlo\u017eit \/ upravit video",
"Poster": "N\u00e1hled",
"Alternative source": "Alternativn\u00ed zdroj",
"Paste your embed code below:": "Vlo\u017ete k\u00f3d pro vlo\u017een\u00ed n\u00ed\u017ee:",
"Insert video": "Vlo\u017eit video",
"Embed": "Vlo\u017eit",
"Nonbreaking space": "Pevn\u00e1 mezera",
"Page break": "Konec str\u00e1nky",
"Paste as text": "Vlo\u017eit jako \u010dist\u00fd text",
"Preview": "N\u00e1hled",
"Print": "Tisk",
"Save": "Ulo\u017eit",
"Could not find the specified string.": "Zadan\u00fd \u0159et\u011bzec nebyl nalezen.",
"Replace": "Nahradit",
"Next": "Dal\u0161\u00ed",
"Whole words": "Pouze cel\u00e1 slova",
"Find and replace": "Naj\u00edt a nahradit",
"Replace with": "Nahradit za",
"Find": "Naj\u00edt",
"Replace all": "Nahradit v\u0161e",
"Match case": "Rozli\u0161ovat mal\u00e1 a velk\u00e1 p\u00edsmena",
"Prev": "P\u0159edchoz\u00ed",
"Spellcheck": "Kontrola pravopisu",
"Finish": "Ukon\u010dit",
"Ignore all": "Ignorovat v\u0161e",
"Ignore": "Ignorovat",
"Add to Dictionary": "P\u0159idat do slovn\u00edku",
"Insert row before": "Vlo\u017eit \u0159\u00e1dek nad",
"Rows": "\u0158\u00e1dek",
"Height": "V\u00fd\u0161ka",
"Paste row after": "Vlo\u017eit \u0159\u00e1dek pod",
"Alignment": "Zarovn\u00e1n\u00ed",
"Column group": "Skupina sloupc\u016f",
"Row": "\u0158\u00e1dek",
"Insert column before": "Vlo\u017eit sloupec vlevo",
"Split cell": "Rozd\u011blit bu\u0148ky",
"Cell padding": "Vnit\u0159n\u00ed okraj bun\u011bk",
"Cell spacing": "Vn\u011bj\u0161\u00ed okraj bun\u011bk",
"Row type": "Typ \u0159\u00e1dku",
"Insert table": "Vlo\u017eit tabulku",
"Body": "T\u011blo",
"Caption": "Nadpis",
"Footer": "Pati\u010dka",
"Delete row": "Smazat \u0159\u00e1dek",
"Paste row before": "Vlo\u017eit \u0159\u00e1dek nad",
"Scope": "Rozsah",
"Delete table": "Smazat tabulku",
"H Align": "Horizont\u00e1ln\u00ed zarovn\u00e1n\u00ed",
"Top": "Nahoru",
"Header cell": "Hlavi\u010dkov\u00e1 bu\u0148ka",
"Column": "Sloupec",
"Row group": "Skupina \u0159\u00e1dk\u016f",
"Cell": "Bu\u0148ka",
"Middle": "Uprost\u0159ed",
"Cell type": "Typ bu\u0148ky",
"Copy row": "Kop\u00edrovat \u0159\u00e1dek",
"Row properties": "Vlastnosti \u0159\u00e1dku",
"Table properties": "Vlastnosti tabulky",
"Bottom": "Dol\u016f",
"V Align": "Vertik\u00e1ln\u00ed zarovn\u00e1n\u00ed",
"Header": "Hlavi\u010dka",
"Right": "Vpravo",
"Insert column after": "Vlo\u017eit sloupec vpravo",
"Cols": "Sloupc\u016f",
"Insert row after": "Vlo\u017eit \u0159\u00e1dek pod",
"Width": "\u0160\u00ed\u0159ka",
"Cell properties": "Vlastnosti bu\u0148ky",
"Left": "Vlevo",
"Cut row": "Vyjmout \u0159\u00e1dek",
"Delete column": "Smazat sloupec",
"Center": "Na st\u0159ed",
"Merge cells": "Slou\u010dit bu\u0148ky",
"Insert template": "Vlo\u017eit \u0161ablonu",
"Templates": "\u0160ablony",
"Background color": "Barva pozad\u00ed",
"Custom...": "Vlastn\u00ed...",
"Custom color": "Vlastn\u00ed barva",
"No color": "Bez barvy",
"Text color": "Barva p\u00edsma",
"Show blocks": "Uk\u00e1zat bloky",
"Show invisible characters": "Zobrazit speci\u00e1ln\u00ed znaky",
"Words: {0}": "Po\u010det slov: {0}",
"Insert": "Vlo\u017eit",
"File": "Soubor",
"Edit": "\u00dapravy",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Editor. Stiskn\u011bte ALT-F9 pro menu, ALT-F10 pro n\u00e1strojovou li\u0161tu a ALT-0 pro n\u00e1pov\u011bdu.",
"Tools": "N\u00e1stroje",
"View": "Zobrazit",
"Table": "Tabulka",
"Format": "Form\u00e1t"
});editors/tinymce/langs/bg.js000064400000047053152177723720011745 0ustar00tinymce.addI18n('bg',{
"Cut": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435",
"Header 2": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448\u0438\u044f\u0442 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Ctrl+X (\u0437\u0430 \u0438\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435), Ctrl+C (\u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435) \u0438 Ctrl+V (\u0437\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435).",
"Div": "\u0411\u043b\u043e\u043a",
"Paste": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435",
"Close": "\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
"Font Family": "\u0428\u0440\u0438\u0444\u0442",
"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0435\u043d \u0442\u0435\u043a\u0441\u0442",
"Align right": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u0434\u044f\u0441\u043d\u043e",
"New document": "\u041d\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
"Blockquote": "\u0426\u0438\u0442\u0430\u0442",
"Numbered list": "\u041d\u043e\u043c\u0435\u0440\u0438\u0440\u0430\u043d \u0441\u043f\u0438\u0441\u044a\u043a",
"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430",
"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435",
"Headers": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f",
"Select all": "\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0446\u044f\u043b\u043e\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435",
"Header 3": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3",
"Blocks": "\u0411\u043b\u043e\u043a\u043e\u0432\u0435",
"Undo": "\u0412\u044a\u0440\u043d\u0438",
"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043d\u0435",
"Bullet list": "\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0432\u043e\u0434\u0430\u0447\u0438",
"Header 1": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1",
"Superscript": "\u0413\u043e\u0440\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441",
"Clear formatting": "\u0418\u0437\u0447\u0438\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e",
"Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",
"Subscript": "\u0414\u043e\u043b\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441",
"Header 6": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 6",
"Redo": "\u041e\u0442\u043c\u0435\u043d\u0438",
"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
"Ok": "\u0414\u043e\u0431\u0440\u0435",
"Bold": "\u0423\u0434\u0435\u0431\u0435\u043b\u0435\u043d (\u043f\u043e\u043b\u0443\u0447\u0435\u0440)",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041d\u0430\u043a\u043b\u043e\u043d\u0435\u043d (\u043a\u0443\u0440\u0441\u0438\u0432)",
"Align center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e",
"Header 5": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 5",
"Decrease indent": "\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430",
"Header 4": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 \u0432 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0440\u0435\u0436\u0438\u043c. \u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u0449\u0435 \u0431\u044a\u0434\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e \u043a\u0430\u0442\u043e \u043d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442, \u0434\u043e\u043a\u0430\u0442\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0430\u0437\u0438 \u043e\u043f\u0446\u0438\u044f.",
"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u0442\u0430\u043d",
"Cancel": "\u041e\u0442\u043a\u0430\u0437",
"Justify": "\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435",
"Inline": "\u041d\u0430 \u0435\u0434\u0438\u043d \u0440\u0435\u0434",
"Copy": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435",
"Align left": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u043b\u044f\u0432\u043e",
"Visual aids": "\u0412\u0438\u0437\u0443\u0430\u043b\u043d\u043e \u043e\u0442\u043a\u0440\u043e\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0438 \u0431\u0435\u0437 \u043a\u0430\u043d\u0442\u043e\u0432\u0435 (\u0440\u0430\u043c\u043a\u0438)",
"Lower Greek": "\u041c\u0430\u043b\u043a\u0438 \u0433\u0440\u044a\u0446\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
"Square": "\u0417\u0430\u043f\u044a\u043b\u043d\u0435\u043d\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438",
"Default": "\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435",
"Lower Alpha": "\u041c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
"Circle": "\u041e\u043a\u0440\u044a\u0436\u043d\u043e\u0441\u0442\u0438",
"Disc": "\u041a\u0440\u044a\u0433\u0447\u0435\u0442\u0430",
"Upper Alpha": "\u0413\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438",
"Upper Roman": "\u0420\u0438\u043c\u0441\u043a\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u0433\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438",
"Lower Roman": "\u0420\u0438\u043c\u0441\u043a\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
"Name": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435",
"Anchor": "\u041a\u043e\u0442\u0432\u0430 (\u0432\u0440\u044a\u0437\u043a\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430)",
"You have unsaved changes are you sure you want to navigate away?": "\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u0430 \u043d\u0435\u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438. \u0429\u0435 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435 \u043b\u0438?",
"Restore last draft": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0447\u0435\u0440\u043d\u043e\u0432\u0430",
"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0435\u043d \u0437\u043d\u0430\u043a",
"Source code": "\u0418\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 HTML",
"Right to left": "\u041e\u0442\u0434\u044f\u0441\u043d\u043e \u043d\u0430\u043b\u044f\u0432\u043e",
"Left to right": "\u041e\u0442\u043b\u044f\u0432\u043e \u043d\u0430\u0434\u044f\u0441\u043d\u043e",
"Emoticons": "\u0415\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438",
"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438 \u043d\u0430 \u0443\u0435\u0431 \u0442\u044a\u0440\u0441\u0430\u0447\u043a\u0438",
"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
"Title": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435",
"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0438 \u0434\u0443\u043c\u0438",
"Encoding": "\u041a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u043d\u0430\u0446\u0438\u0442\u0435",
"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
"Author": "\u0410\u0432\u0442\u043e\u0440",
"Fullscreen": "\u041d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",
"Horizontal line": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u0430 \u0447\u0435\u0440\u0442\u0430",
"Horizontal space": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e",
"Insert\/edit image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430",
"General": "\u041e\u0431\u0449\u043e",
"Advanced": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e",
"Source": "\u0410\u0434\u0440\u0435\u0441",
"Border": "\u041a\u0430\u043d\u0442 (\u0440\u0430\u043c\u043a\u0430)",
"Constrain proportions": "\u0417\u0430\u0432\u0430\u0437\u043d\u0430\u0432\u0435 \u043d\u0430 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438\u0442\u0435",
"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e",
"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0442\u0430",
"Style": "\u0421\u0442\u0438\u043b",
"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440",
"Insert image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"Insert date\/time": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u0442\u0430\/\u0447\u0430\u0441",
"Remove link": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430",
"Url": "\u0410\u0434\u0440\u0435\u0441 (URL)",
"Text to display": "\u0422\u0435\u043a\u0441\u0442",
"Anchors": "\u041a\u043e\u0442\u0432\u0438",
"Insert link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)",
"New window": "\u0412 \u043d\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 (\u043f\u043e\u0434\u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446)",
"None": "\u0411\u0435\u0437",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u0426\u0435\u043b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)",
"Insert\/edit video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",
"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440",
"Alternative source": "\u0410\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435\u043d \u0430\u0434\u0440\u0435\u0441",
"Paste your embed code below:": "\u041f\u043e\u0441\u0442\u0430\u0432\u0435\u0442\u0435 \u043a\u043e\u0434\u0430 \u0437\u0430 \u0432\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0432 \u043f\u043e\u043b\u0435\u0442\u043e \u043f\u043e-\u0434\u043e\u043b\u0443:",
"Insert video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",
"Embed": "\u0412\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435",
"Nonbreaking space": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
"Page break": "\u041d\u043e\u0432\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430",
"Paste as text": "\u041f\u043e\u0441\u0442\u0430\u0432\u0438 \u043a\u0430\u0442\u043e \u0442\u0435\u043a\u0441\u0442",
"Preview": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434",
"Print": "\u041f\u0435\u0447\u0430\u0442",
"Save": "\u0421\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435",
"Could not find the specified string.": "\u0422\u044a\u0440\u0441\u0435\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.",
"Replace": "\u0417\u0430\u043c\u044f\u043d\u0430",
"Next": "\u0421\u043b\u0435\u0434\u0432\u0430\u0449",
"Whole words": "\u0421\u0430\u043c\u043e \u0446\u0435\u043b\u0438 \u0434\u0443\u043c\u0438",
"Find and replace": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0438 \u0437\u0430\u043c\u044f\u043d\u0430",
"Replace with": "\u0417\u0430\u043c\u044f\u043d\u0430 \u0441",
"Find": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0437\u0430",
"Replace all": "\u0417\u0430\u043c\u044f\u043d\u0430 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0440\u0435\u0449\u0430\u043d\u0438\u044f",
"Match case": "\u0421\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044a\u0440\u0430 (\u043c\u0430\u043b\u043a\u0438\/\u0433\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438)",
"Prev": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d",
"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430",
"Finish": "\u041a\u0440\u0430\u0439",
"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e",
"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435",
"Insert row before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438",
"Rows": "\u0420\u0435\u0434\u043e\u0432\u0435",
"Height": "\u0412\u0438\u0441\u043e\u0447\u0438\u043d\u0430",
"Paste row after": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434",
"Alignment": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435",
"Column group": "Column group",
"Row": "\u0420\u0435\u0434",
"Insert column before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0438",
"Split cell": "\u0420\u0430\u0437\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430",
"Cell padding": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e",
"Cell spacing": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435",
"Row type": "\u0422\u0438\u043f \u043d\u0430 \u0440\u0435\u0434\u0430",
"Insert table": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430",
"Body": "\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 (body)",
"Caption": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043f\u0440\u0435\u0434\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
"Footer": "\u0414\u043e\u043b\u0435\u043d \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b (footer)",
"Delete row": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u0430",
"Paste row before": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438",
"Scope": "\u041e\u0431\u0445\u0432\u0430\u0442",
"Delete table": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
"Header cell": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430 (\u0430\u043d\u0442\u0435\u0442\u043a\u0430)",
"Column": "\u041a\u043e\u043b\u043e\u043d\u0430",
"Cell": "\u041a\u043b\u0435\u0442\u043a\u0430",
"Header": "\u0413\u043e\u0440\u0435\u043d \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b (header)",
"Cell type": "\u0422\u0438\u043f \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430",
"Copy row": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434",
"Row properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0440\u0435\u0434\u0430",
"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
"Row group": "Row group",
"Right": "\u0414\u044f\u0441\u043d\u043e",
"Insert column after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u0441\u043b\u0435\u0434",
"Cols": "\u041a\u043e\u043b\u043e\u043d\u0438",
"Insert row after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434",
"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
"Cell properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430",
"Left": "\u041b\u044f\u0432\u043e",
"Cut row": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434",
"Delete column": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430\u0442\u0430",
"Center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e",
"Merge cells": "\u0421\u043b\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435",
"Insert template": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
"Background color": "\u0424\u043e\u043d\u043e\u0432 \u0446\u0432\u044f\u0442",
"Text color": "\u0426\u0432\u044f\u0442 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",
"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u043e\u0432\u0435\u0442\u0435",
"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u0438 \u0437\u043d\u0430\u0446\u0438",
"Words: {0}": "\u0411\u0440\u043e\u0439 \u0434\u0443\u043c\u0438: {0}",
"Insert": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435",
"File": "\u0424\u0430\u0439\u043b",
"Edit": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u041f\u043e\u043b\u0435 \u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 Alt+F9 \u0437\u0430 \u043c\u0435\u043d\u044e; Alt+F10 \u0437\u0430 \u043b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438; Alt+0 \u0437\u0430 \u043f\u043e\u043c\u043e\u0449.",
"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438",
"View": "\u0418\u0437\u0433\u043b\u0435\u0434",
"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435"
});editors/tinymce/langs/ug.js000064400000037376152177723720011777 0ustar00tinymce.addI18n('ug',{
"Cut": "\u0643\u06d0\u0633\u0649\u0634",
"Header 2": "\u062a\u06d0\u0645\u0627 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0633\u0649\u0632\u0646\u0649\u06ad \u062a\u0648\u0631 \u0643\u06c6\u0631\u06af\u06c8\u0686\u0649\u06ad\u0649\u0632 \u0642\u0649\u064a\u0649\u067e \u0686\u0627\u067e\u0644\u0627\u0634 \u062a\u0627\u062e\u062a\u0649\u0633\u0649 \u0632\u0649\u064a\u0627\u0631\u06d5\u062a \u0642\u0649\u0644\u0649\u0634\u0646\u0649 \u0642\u0648\u0644\u0644\u0649\u0645\u0627\u064a\u062f\u06c7.  Ctrl+X\/C\/V \u062a\u06d0\u0632\u0644\u06d5\u062a\u0645\u06d5 \u0643\u0648\u0646\u06c7\u067e\u0643\u0649\u0633\u0649 \u0626\u0627\u0631\u0642\u0649\u0644\u0649\u0642 \u0643\u06d0\u0633\u0649\u067e \u0686\u0627\u067e\u0644\u0627\u0634 \u0645\u06d5\u0634\u063a\u06c7\u0644\u0627\u062a\u0649 \u0642\u0649\u0644\u0649\u06ad.",
"Div": "Div",
"Paste": "\u0686\u0627\u067e\u0644\u0627\u0634",
"Close": "\u062a\u0627\u0642\u0627\u0634",
"Font Family": "Font Family",
"Pre": "Pre",
"Align right": "\u0626\u0648\u06ad\u063a\u0627 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
"New document": "\u064a\u06d0\u06ad\u0649 \u06be\u06c6\u062c\u062c\u06d5\u062a \u0642\u06c7\u0631\u06c7\u0634",
"Blockquote": "\u0626\u06d5\u0633\u0643\u06d5\u0631\u062a\u0649\u0634",
"Numbered list": "\u0633\u0627\u0646\u0644\u0649\u0642 \u062a\u0649\u0632\u0649\u0645\u0644\u0649\u0643",
"Increase indent": "\u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0633\u06c8\u0631\u06c8\u0634",
"Formats": "\u0641\u0648\u0631\u0645\u0627\u062a",
"Headers": "Headers",
"Select all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u062a\u0627\u0644\u0644\u0627\u0634",
"Header 3": "\u062a\u06d0\u0645\u0627 3",
"Blocks": "Blocks",
"Undo": "\u0626\u0627\u0631\u0642\u0649\u063a\u0627 \u064a\u06d0\u0646\u0649\u0634",
"Strikethrough": "\u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634 \u0633\u0649\u0632\u0649\u0642\u0649",
"Bullet list": "\u0628\u06d5\u0644\u06af\u06d5 \u062a\u0649\u0632\u0649\u0645\u0644\u0649\u0643",
"Header 1": "\u062a\u06d0\u0645\u0627 1",
"Superscript": "\u0626\u06c8\u0633\u062a\u06c8\u0646\u0643\u0649 \u0628\u06d5\u0644\u06af\u06d5",
"Clear formatting": "\u0641\u0648\u0631\u0645\u0627\u062a\u0646\u0649 \u062a\u0627\u0632\u0644\u0627\u0634",
"Font Sizes": "Font Sizes",
"Subscript": "\u0626\u0627\u0633\u062a\u0649\u0646\u0642\u0649 \u0628\u06d5\u0644\u06af\u06d5",
"Header 6": "\u062a\u06d0\u0645\u0627 6",
"Redo": "\u0642\u0627\u064a\u062a\u0627 \u0642\u0649\u0644\u0649\u0634",
"Paragraph": "\u067e\u0627\u0631\u0627\u06af\u0649\u0631\u0627 \u0641",
"Ok": "\u062c\u06d5\u0632\u0649\u0645\u0644\u06d5\u0634",
"Bold": "\u062a\u0648\u0645",
"Code": "Code",
"Italic": "\u064a\u0627\u0646\u062a\u06c7",
"Align center": "\u0645\u06d5\u0631\u0643\u06d5\u0632\u06af\u06d5 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
"Header 5": "\u062a\u06d0\u0645\u0627 5",
"Decrease indent": "\u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0633\u06c8\u0631\u06c8\u0634",
"Header 4": "\u062a\u06d0\u0645\u0627 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u06be\u0627\u0632\u0649\u0631 \u0686\u0627\u067e\u0644\u0649\u0633\u0649\u06ad\u0649\u0632 \u0633\u0627\u067e \u062a\u06d0\u0643\u0649\u0634 \u0645\u06d5\u0632\u0645\u06c7\u0646\u0649 \u0686\u0627\u067e\u0644\u0649\u0646\u0649\u062f\u06c7. \u062a\u06d0\u0643\u0649\u0634 \u0634\u06d5\u0643\u0644\u0649\u062f\u06d5 \u0686\u0627\u067e\u0644\u0627\u0634 \u062a\u06d5\u06ad\u0634\u0649\u0643\u0649\u0646\u0649 \u062a\u0627\u0642\u0649\u06cb\u06d5\u062a\u0643\u06d5\u0646\u06af\u06d5 \u0642\u06d5\u062f\u06d5\u0631.",
"Underline": "\u0626\u0627\u0633\u062a\u0649 \u0633\u0649\u0632\u0649\u0642",
"Cancel": "\u0642\u0627\u0644\u062f\u06c7\u0631\u06c7\u0634",
"Justify": "\u0626\u0649\u0643\u0643\u0649 \u064a\u0627\u0646\u063a\u0627 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
"Inline": "Inline",
"Copy": "\u0643\u06c6\u0686\u06c8\u0631\u06c8\u0634",
"Align left": "\u0633\u0648\u0644\u063a\u0627 \u062a\u0648\u063a\u0631\u0649\u0644\u0627\u0634",
"Visual aids": "\u0626\u06d5\u0633\u0643\u06d5\u0631\u062a\u0649\u0634",
"Lower Greek": "\u06af\u0631\u06d0\u062a\u0633\u0649\u064a\u0649\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
"Square": "\u0643\u06cb\u0627\u062f\u0631\u0627\u062a",
"Default": "\u0633\u06c8\u0643\u06c8\u062a",
"Lower Alpha": "\u0626\u0649\u0646\u06af\u0649\u0644\u0649\u0632\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
"Circle": "\u0686\u06d5\u0645\u0628\u06d5\u0631",
"Disc": "\u062f\u06d0\u0633\u0643\u0627",
"Upper Alpha": "\u0626\u0649\u0646\u06af\u0649\u0644\u0649\u0632\u0686\u06d5 \u0686\u0648\u06ad \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
"Upper Roman": "\u0631\u0649\u0645\u0686\u06d5 \u0686\u0648\u06ad \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
"Lower Roman": "\u0631\u0649\u0645\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
"Name": "\u0646\u0627\u0645\u0649",
"Anchor": "\u0626\u06c7\u0644\u0627\u0646\u0645\u0627",
"You have unsaved changes are you sure you want to navigate away?": "\u0633\u0649\u0632 \u062a\u06d0\u062e\u0649 \u0645\u06d5\u0632\u0645\u06c7\u0646\u0646\u0649 \u0633\u0627\u0642\u0644\u0649\u0645\u0649\u062f\u0649\u06ad\u0649\u0632\u060c \u0626\u0627\u064a\u0631\u0649\u0644\u0627\u0645\u0633\u0649\u0632\u061f",
"Restore last draft": "\u0626\u0627\u062e\u0649\u0631\u0642\u0649 \u0643\u06c7\u067e\u0649\u064a\u0649\u06af\u06d5 \u0642\u0627\u064a\u062a\u0649\u0634",
"Special character": "\u0626\u0627\u0644\u0627\u06be\u0649\u062f\u06d5 \u0628\u06d5\u0644\u06af\u0649\u0644\u06d5\u0631",
"Source code": "\u0626\u06d5\u0633\u0644\u0649 \u0643\u0648\u062f\u0649",
"Right to left": "\u0626\u0648\u06ad\u062f\u0649\u0646 \u0633\u0648\u0644\u063a\u0627",
"Left to right": "\u0633\u0648\u0644\u062f\u0649\u0646 \u0626\u0648\u06ad\u063a\u0627 ",
"Emoticons": "\u0686\u0649\u0631\u0627\u064a \u0626\u0649\u067e\u0627\u062f\u06d5",
"Robots": "\u0645\u0627\u0634\u0649\u0646\u0627 \u0626\u0627\u062f\u06d5\u0645",
"Document properties": "\u06be\u06c6\u062c\u062c\u06d5\u062a \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
"Title": "\u062a\u06d0\u0645\u0627",
"Keywords": "\u06be\u0627\u0644\u0642\u0649\u0644\u0649\u0642 \u0633\u06c6\u0632",
"Encoding": "\u0643\u0648\u062f\u0644\u0627\u0634",
"Description": "\u062a\u06d5\u0633\u0649\u06cb\u0649\u0631",
"Author": "\u0626\u06c7\u0644\u0627\u0646\u0645\u0627",
"Fullscreen": "\u067e\u06c8\u062a\u06c8\u0646 \u0626\u06d0\u0643\u0631\u0627\u0646",
"Horizontal line": "\u06af\u0648\u0631\u0632\u0649\u0646\u062a\u0627\u0644 \u0642\u06c7\u0631",
"Horizontal space": "\u06af\u0648\u0631\u0632\u0649\u0646\u062a\u0627\u0644 \u0628\u0648\u0634\u0644\u06c7\u0642",
"Insert\/edit image": "\u0631\u06d5\u0633\u0649\u0645 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634 \u064a\u0627\u0643\u0649 \u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
"General": "\u0626\u0627\u062f\u06d5\u062a\u062a\u0649\u0643\u0649",
"Advanced": "\u0626\u0627\u0644\u0627\u06be\u0649\u062f\u06d5",
"Source": "\u0645\u06d5\u0646\u0628\u06d5",
"Border": "\u064a\u0627\u0642\u0627",
"Constrain proportions": "\u0626\u06d0\u06af\u0649\u0632\u0644\u0649\u0643-\u0643\u06d5\u06ad\u0644\u0649\u0643 \u0646\u0649\u0633\u067e\u0649\u062a\u0649\u0646\u0649 \u0633\u0627\u0642\u0644\u0627\u0634",
"Vertical space": "\u06cb\u06d0\u0631\u062a\u0649\u0643\u0627\u0644 \u0628\u0648\u0634\u0644\u06c7\u0642",
"Image description": "\u0631\u06d5\u0633\u0649\u0645 \u062a\u06d5\u0633\u06cb\u0649\u0631\u0649",
"Style": "\u0626\u06c7\u0633\u0644\u06c7\u067e",
"Dimensions": "\u0686\u0648\u06ad-\u0643\u0649\u0686\u0649\u0643",
"Insert image": "\u0631\u06d5\u0633\u0649\u0645 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Insert date\/time": "\u0686\u0649\u0633\u0644\u0627\/\u06cb\u0627\u0642\u0649\u062a \u0643\u0649\u0631\u06af\u06c8\u0632\u06c8\u0634",
"Remove link": "Remove link",
"Url": "\u0626\u0627\u062f\u0631\u0649\u0633",
"Text to display": "\u0643\u06c6\u0631\u06c8\u0646\u0649\u062f\u0649\u063a\u0627\u0646 \u0645\u06d5\u0632\u0645\u06c7\u0646",
"Anchors": "Anchors",
"Insert link": "\u0626\u06c7\u0644\u0649\u0646\u0649\u0634 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"New window": "\u064a\u06d0\u06ad\u0649 \u0643\u06c6\u0632\u0646\u06d5\u0643",
"None": "\u064a\u0648\u0642",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u0646\u0649\u0634\u0627\u0646",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u0626\u06c7\u0644\u0649\u0646\u0649\u0634 \u0642\u06c7\u0633\u062a\u06c7\u0631\u06c7\u0634\/\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
"Insert\/edit video": "\u0633\u0649\u0646 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634\/\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
"Poster": "\u064a\u0648\u0644\u0644\u0649\u063a\u06c7\u0686\u0649",
"Alternative source": "\u062a\u06d5\u0633\u06cb\u0649\u0631\u0649",
"Paste your embed code below:": "\u0642\u0649\u0633\u062a\u06c7\u0631\u0645\u0627\u0642\u0686\u0649 \u0628\u0648\u0644\u063a\u0627\u0646 \u0643\u0648\u062f\u0646\u0649 \u0686\u0627\u067e\u0644\u0627\u06ad",
"Insert video": "\u0633\u0649\u0646 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Embed": "\u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Nonbreaking space": "\u0628\u0648\u0634\u0644\u06c7\u0642",
"Page break": "\u0628\u06d5\u062a \u0626\u0627\u062e\u0649\u0631\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Paste as text": "\u062a\u06d0\u0643\u0649\u0634 \u0634\u06d5\u0643\u0644\u0649\u062f\u06d5 \u0686\u0627\u067e\u0644\u0627\u0634",
"Preview": "\u0643\u06c6\u0631\u06c8\u0634",
"Print": "\u0628\u0627\u0633\u0645\u0627\u0642 ",
"Save": "\u0633\u0627\u0642\u0644\u0627\u0634",
"Could not find the specified string.": "\u0626\u0649\u0632\u062f\u0649\u0645\u06d5\u0643\u0686\u0649 \u0628\u0648\u0644\u063a\u0627\u0646 \u0645\u06d5\u0632\u0645\u06c7\u0646\u0646\u0649 \u062a\u0627\u067e\u0627\u0644\u0645\u0649\u062f\u0649.",
"Replace": "\u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Next": "\u0643\u06d0\u064a\u0649\u0646\u0643\u0649\u0633\u0649",
"Whole words": "\u062a\u0648\u0644\u06c7\u0642  \u0645\u0627\u0633\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Find and replace": "\u0626\u0649\u0632\u062f\u06d5\u0634 \u06cb\u06d5 \u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Replace with": "\u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Find": "\u0626\u0649\u0632\u062f\u06d5\u0634",
"Replace all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Match case": "\u0686\u0648\u06ad \u0643\u0649\u0686\u0649\u0643 \u06be\u06d5\u0631\u0649\u067e\u0646\u0649 \u067e\u06d5\u0631\u0649\u0642\u0644\u06d5\u0646\u062f\u06c8\u0631\u06c8\u0634",
"Prev": "\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649\u0633\u0649",
"Spellcheck": "\u0626\u0649\u0645\u0644\u0627 \u062a\u06d5\u0643\u0634\u06c8\u0631\u06c8\u0634",
"Finish": "\u0626\u0627\u062e\u0649\u0631\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
"Ignore all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u0626\u06c6\u062a\u0643\u06c8\u0632\u06c8\u0634",
"Ignore": "\u0626\u06c6\u062a\u0643\u06c8\u0632\u06c8\u0634",
"Insert row before": "\u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0642\u06c7\u0631 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Rows": "\u0642\u06c7\u0631",
"Height": "\u0626\u06d0\u06af\u0649\u0632\u0644\u0649\u0643\u0649",
"Paste row after": "\u0642\u06c7\u0631 \u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0686\u0627\u067e\u0644\u0627\u0634",
"Alignment": "\u064a\u06c6\u0644\u0649\u0646\u0649\u0634\u0649",
"Column group": "\u0631\u06d5\u062a \u06af\u06c7\u0631\u06c7\u067e\u067e\u0649\u0633\u0649",
"Row": "\u0642\u06c7\u0631",
"Insert column before": "\u0631\u06d5\u062a \u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Split cell": "\u0643\u0627\u062a\u06d5\u0643 \u067e\u0627\u0631\u0686\u0649\u0644\u0627\u0634",
"Cell padding": "\u0643\u0627\u062a\u06d5\u0643 \u0626\u0649\u0686\u0643\u0649 \u0626\u0627\u0631\u0649\u0644\u0649\u0642\u0649",
"Cell spacing": "\u0643\u0627\u062a\u06d5\u0643 \u0633\u0649\u0631\u062a\u0642\u0649 \u0626\u0627\u0631\u0649\u0644\u0649\u0642\u0649",
"Row type": "\u0642\u06c7\u0631 \u062a\u0649\u067e\u0649",
"Insert table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Body": "\u0628\u06d5\u062f\u0649\u0646\u0649",
"Caption": "\u0686\u06c8\u0634\u06d5\u0646\u062f\u06c8\u0631\u06c8\u0634",
"Footer": "\u067e\u06c7\u062a\u0649",
"Delete row": "\u0642\u06c7\u0631 \u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634",
"Paste row before": "\u0642\u06c7\u0631 \u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0686\u0627\u067e\u0644\u0627\u0634",
"Scope": "\u062f\u0627\u0626\u0649\u0631\u06d5",
"Delete table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u0626\u06c6\u0686\u06c8\u0631\u0634",
"Header cell": "\u0628\u0627\u0634 \u0643\u0627\u062a\u06d5\u0643",
"Column": "\u0631\u06d5\u062a",
"Cell": "\u0643\u0627\u062a\u06d5\u0643",
"Header": "\u0628\u06d0\u0634\u0649",
"Cell type": "\u0643\u0627\u062a\u06d5\u0643 \u062a\u0649\u067e\u0649",
"Copy row": "\u0642\u06c7\u0631 \u0643\u06c6\u0686\u06c8\u0631\u06c8\u0634",
"Row properties": "\u0642\u06c7\u0631 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
"Table properties": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
"Row group": "\u0642\u06c7\u0631 \u06af\u06c7\u0631\u06c7\u067e\u067e\u0649\u0633\u0649",
"Right": "\u0626\u0648\u06ad",
"Insert column after": "\u0631\u06d5\u062a \u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Cols": "\u0631\u06d5\u062a",
"Insert row after": "\u0626\u0627\u0631\u0642\u0649\u063a\u0627 \u0642\u06c7\u0631 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Width": "\u0643\u06d5\u06ad\u0644\u0649\u0643\u0649",
"Cell properties": "\u0643\u0627\u062a\u06d5\u0643 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
"Left": "\u0633\u0648\u0644",
"Cut row": "\u0642\u06c7\u0631 \u0643\u06d0\u0633\u0649\u0634",
"Delete column": "\u0631\u06d5\u062a \u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634",
"Center": "\u0645\u06d5\u0631\u0643\u06d5\u0632",
"Merge cells": "\u0643\u0627\u062a\u06d5\u0643 \u0628\u0649\u0631\u0644\u06d5\u0634\u062a\u06c8\u0631\u06c8\u0634",
"Insert template": "\u0626\u06c8\u0644\u06af\u06d5 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"Templates": "\u0626\u06c8\u0644\u06af\u0649\u0644\u06d5\u0631",
"Background color": "\u0626\u0627\u0631\u0642\u0627 \u0631\u06d5\u06ad\u06af\u0649",
"Text color": "\u062e\u06d5\u062a \u0631\u06d5\u06ad\u06af\u0649",
"Show blocks": "\u0631\u0627\u064a\u0648\u0646 \u0643\u06c6\u0631\u0633\u0649\u062a\u0649\u0634",
"Show invisible characters": "\u0643\u06c6\u0631\u06c8\u0646\u0645\u06d5\u064a\u062f\u0649\u063a\u0627\u0646 \u06be\u06d5\u0631\u0649\u067e\u0644\u06d5\u0631\u0646\u0649 \u0643\u06c6\u0631\u0633\u0649\u062a\u0649\u0634",
"Words: {0}": "\u0633\u06c6\u0632: {0}",
"Insert": "\u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
"File": "\u06be\u06c6\u062c\u062c\u06d5\u062a",
"Edit": "\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help",
"Tools": "\u0642\u06c7\u0631\u0627\u0644",
"View": "\u0643\u06c6\u0631\u06c8\u0634",
"Table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644",
"Format": "\u0641\u0648\u0631\u0645\u0627\u062a"
});editors/tinymce/langs/zh-TW.js000064400000017503152177723720012323 0ustar00tinymce.addI18n('zh-TW',{
"Cut": "\u526a\u4e0b",
"Header 2": "\u6a19\u984c 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002",
"Div": "Div",
"Paste": "\u8cbc\u4e0a",
"Close": "\u95dc\u9589",
"Font Family": "\u5b57\u9ad4",
"Pre": "Pre",
"Align right": "\u7f6e\u53f3\u5c0d\u9f4a",
"New document": "\u65b0\u6587\u4ef6",
"Blockquote": "\u5f15\u7528",
"Numbered list": "\u6578\u5b57\u6e05\u55ae",
"Increase indent": "\u589e\u52a0\u7e2e\u6392",
"Formats": "\u683c\u5f0f",
"Headers": "\u6a19\u984c",
"Select all": "\u5168\u9078",
"Header 3": "\u6a19\u984c 3",
"Blocks": "\u5340\u584a",
"Undo": "\u5fa9\u539f",
"Strikethrough": "\u522a\u9664\u7dda",
"Bullet list": "\u9805\u76ee\u6e05\u55ae",
"Header 1": "\u6a19\u984c 1",
"Superscript": "\u4e0a\u6a19",
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
"Font Sizes": "\u5b57\u578b\u5927\u5c0f",
"Subscript": "\u4e0b\u6a19",
"Header 6": "\u6a19\u984c 6",
"Redo": "\u53d6\u6d88\u5fa9\u539f",
"Paragraph": "\u6bb5\u843d",
"Ok": "\u78ba\u5b9a",
"Bold": "\u7c97\u9ad4",
"Code": "\u7a0b\u5f0f\u78bc",
"Italic": "\u659c\u9ad4",
"Align center": "\u7f6e\u4e2d\u5c0d\u9f4a",
"Header 5": "\u6a19\u984c 5",
"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392",
"Header 4": "\u6a19\u984c 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002",
"Underline": "\u5e95\u7dda",
"Cancel": "\u53d6\u6d88",
"Justify": "\u5de6\u53f3\u5c0d\u9f4a",
"Inline": "Inline",
"Copy": "\u8907\u88fd",
"Align left": "\u7f6e\u5de6\u5c0d\u9f4a",
"Visual aids": "\u5c0f\u5e6b\u624b",
"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd",
"Square": "\u6b63\u65b9\u5f62",
"Default": "\u9810\u8a2d",
"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd",
"Circle": "\u7a7a\u5fc3\u5713",
"Disc": "\u5be6\u5fc3\u5713",
"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd",
"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57",
"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57",
"Name": "\u540d\u7a31",
"Anchor": "\u52a0\u5165\u9328\u9ede",
"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f",
"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f",
"Special character": "\u7279\u6b8a\u5b57\u5143",
"Source code": "\u539f\u59cb\u78bc",
"Right to left": "\u5f9e\u53f3\u5230\u5de6",
"Left to right": "\u5f9e\u5de6\u5230\u53f3",
"Emoticons": "\u8868\u60c5",
"Robots": "\u6a5f\u5668\u4eba",
"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027",
"Title": "\u6a19\u984c",
"Keywords": "\u95dc\u9375\u5b57",
"Encoding": "\u7de8\u78bc",
"Description": "\u63cf\u8ff0",
"Author": "\u4f5c\u8005",
"Fullscreen": "\u5168\u87a2\u5e55",
"Horizontal line": "\u6c34\u5e73\u7dda",
"Horizontal space": "\u5bec\u5ea6",
"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247",
"General": "\u4e00\u822c",
"Advanced": "\u9032\u968e",
"Source": "\u5716\u7247\u7db2\u5740",
"Border": "\u908a\u6846",
"Constrain proportions": "\u7b49\u6bd4\u4f8b\u7e2e\u653e",
"Vertical space": "\u9ad8\u5ea6",
"Image description": "\u5716\u7247\u63cf\u8ff0",
"Style": "\u6a23\u5f0f",
"Dimensions": "\u5c3a\u5bf8",
"Insert image": "\u63d2\u5165\u5716\u7247",
"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593",
"Remove link": "\u79fb\u9664\u9023\u7d50",
"Url": "\u7db2\u5740",
"Text to display": "\u986f\u793a\u6587\u5b57",
"Anchors": "\u52a0\u5165\u9328\u9ede",
"Insert link": "\u63d2\u5165\u9023\u7d50",
"New window": "\u53e6\u958b\u8996\u7a97",
"None": "\u7121",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u958b\u555f\u65b9\u5f0f",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50",
"Insert\/edit video": "\u63d2\u4ef6\/\u7de8\u8f2f \u5f71\u97f3",
"Poster": "\u9810\u89bd\u5716\u7247",
"Alternative source": "\u66ff\u4ee3\u5f71\u97f3",
"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:",
"Insert video": "\u63d2\u5165\u5f71\u97f3",
"Embed": "\u5d4c\u5165\u78bc",
"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c",
"Page break": "\u5206\u9801",
"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a",
"Preview": "\u9810\u89bd",
"Print": "\u5217\u5370",
"Save": "\u5132\u5b58",
"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32",
"Replace": "\u66ff\u63db",
"Next": "\u4e0b\u4e00\u500b",
"Whole words": "\u6574\u500b\u55ae\u5b57",
"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3",
"Replace with": "\u66f4\u63db",
"Find": "\u641c\u5c0b",
"Replace all": "\u66ff\u63db\u5168\u90e8",
"Match case": "\u76f8\u5339\u914d\u6848\u4ef6",
"Prev": "\u4e0a\u4e00\u500b",
"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5",
"Finish": "\u5b8c\u6210",
"Ignore all": "\u5ffd\u7565\u6240\u6709",
"Ignore": "\u5ffd\u7565",
"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d",
"Rows": "\u5217",
"Height": "\u9ad8\u5ea6",
"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c",
"Alignment": "\u5c0d\u9f4a",
"Column group": "\u6b04\u4f4d\u7fa4\u7d44",
"Row": "\u5217",
"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d",
"Split cell": "\u5206\u5272\u5132\u5b58\u683c",
"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd",
"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd",
"Row type": "\u884c\u7684\u985e\u578b",
"Insert table": "\u63d2\u5165\u8868\u683c",
"Body": "\u4e3b\u9ad4",
"Caption": "\u8868\u683c\u6a19\u984c",
"Footer": "\u9801\u5c3e",
"Delete row": "\u522a\u9664\u5217",
"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d",
"Scope": "\u7bc4\u570d",
"Delete table": "\u522a\u9664\u8868\u683c",
"Header cell": "\u6a19\u982d\u5132\u5b58\u683c",
"Column": "\u884c",
"Cell": "\u5132\u5b58\u683c",
"Header": "\u6a19\u982d",
"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b",
"Copy row": "\u8907\u88fd\u5217",
"Row properties": "\u5217\u5c6c\u6027",
"Table properties": "\u8868\u683c\u5c6c\u6027",
"Row group": "\u5217\u7fa4\u7d44",
"Right": "\u53f3\u908a",
"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c",
"Cols": "\u6b04\u4f4d\u6bb5",
"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c",
"Width": "\u5bec\u5ea6",
"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027",
"Left": "\u5de6\u908a",
"Cut row": "\u526a\u4e0b\u5217",
"Delete column": "\u522a\u9664\u884c",
"Center": "\u4e2d\u9593",
"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c",
"Insert template": "\u63d2\u5165\u6a23\u7248",
"Templates": "\u6a23\u7248",
"Background color": "\u80cc\u666f\u984f\u8272",
"Text color": "\u6587\u5b57\u984f\u8272",
"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a",
"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143",
"Words: {0}": "\u5b57\u6578\uff1a{0}",
"Insert": "\u63d2\u5165",
"File": "\u6a94\u6848",
"Edit": "\u7de8\u8f2f",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9",
"Tools": "\u5de5\u5177",
"View": "\u6aa2\u8996",
"Table": "\u8868\u683c",
"Format": "\u683c\u5f0f"
});editors/tinymce/langs/id.js000064400000015750152177723720011750 0ustar00tinymce.addI18n('id',{
"Cut": "Penggal",
"Heading 5": "Judul 5",
"Header 2": "Judul 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browser anda tidak mendukung akses langsung ke clipboard. Silahkan gunakan Ctrl+X\/C\/V dari keyboard.",
"Heading 4": "Judul 4",
"Div": "Div",
"Heading 2": "Judul 2",
"Paste": "Tempel",
"Close": "Tutup",
"Font Family": "Jenis Huruf",
"Pre": "Pre",
"Align right": "Rata kanan",
"New document": "Dokumen baru",
"Blockquote": "Kutipan",
"Numbered list": "Daftar bernomor",
"Heading 1": "Judul 1",
"Headings": "Judul",
"Increase indent": "Tambah inden",
"Formats": "Format",
"Headers": "Judul",
"Select all": "Pilih semua",
"Header 3": "Judul 3",
"Blocks": "Blok",
"Undo": "Batalkan",
"Strikethrough": "Coret",
"Bullet list": "Daftar bersimbol",
"Header 1": "Judul 1",
"Superscript": "Superskrip",
"Clear formatting": "Hapus format",
"Font Sizes": "Ukuran Huruf",
"Subscript": "Subskrip",
"Header 6": "Judul 6",
"Redo": "Ulangi",
"Paragraph": "Paragraf",
"Ok": "Ok",
"Bold": "Tebal",
"Code": "Code",
"Italic": "Miring",
"Align center": "Rata tengah",
"Header 5": "Judul 5",
"Heading 6": "Judul 6",
"Heading 3": "Judul 3",
"Decrease indent": "Turunkan inden",
"Header 4": "Judul 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Penempelan sekarang dalam modus teks biasa. Konten sekarang akan disisipkan sebagai teks biasa sampai Anda mamatikan pilihan ini.",
"Underline": "Garis bawah",
"Cancel": "Batal",
"Justify": "Penuh",
"Inline" : "Baris",
"Copy": "Salin",
"Align left": "Rata kiri",
"Visual aids": "Alat bantu visual",
"Lower Greek": "Huruf Kecil Yunani",
"Square": "Kotak",
"Default": "Bawaan",
"Lower Alpha": "Huruf Kecil",
"Circle": "Lingkaran",
"Disc": "Cakram",
"Upper Alpha": "Huruf Besar",
"Upper Roman": "Huruf Besar Romawi",
"Lower Roman": "Huruf Kecil Romawi",
"Name": "Nama",
"Anchor": "Jangkar",
"You have unsaved changes are you sure you want to navigate away?": "Anda memiliki perubahan yang belum disimpan, yakin ingin beralih ?",
"Restore last draft": "Muat kembali draft sebelumnya",
"Special character": "Karakter khusus",
"Source code": "Kode sumber",
"B": "B",
"R": "M",
"G": "H",
"Color": "Warna",
"Right to left": "Kanan ke kiri",
"Left to right": "Kiri ke kanan",
"Emoticons": "Emotikon",
"Robots": "Robot",
"Document properties": "Properti dokumwn",
"Title": "Judul",
"Keywords": "Kata kunci",
"Encoding": "Enkoding",
"Description": "Description",
"Author": "Penulis",
"Fullscreen": "Layar penuh",
"Horizontal line": "Garis horisontal",
"Horizontal space": "Spasi Horisontal",
"Insert\/edit image": "Sisip\/sunting gambar",
"General": "Umum",
"Advanced": "Lanjutan",
"Source": "Sumber",
"Border": "Batas",
"Constrain proportions": "Samakan proporsi",
"Vertical space": "Spasi vertikal",
"Image description": "Deskripsi Gambar",
"Style": "Gaya",
"Dimensions": "Dimensi",
"Insert image": "Sisipkan gambar",
"Zoom in": "Perbesar",
"Contrast": "Kontras",
"Back": "Kembali",
"Gamma": "Gamma",
"Flip horizontally": "Balik horisontal",
"Resize": "Ubah ukuran",
"Sharpen": "Ketajaman",
"Zoom out": "Perkecil",
"Image options": "Opsi Gambar",
"Apply": "Terapkan",
"Brightness": "Kecerahan",
"Rotate clockwise": "Putar searahjarumjam",
"Rotate counterclockwise": "Putar berlawananjarumjam",
"Edit image": "Sunting gambar",
"Color levels": "Tingkat warna",
"Crop": "Krop",
"Orientation": "Orientasi",
"Flip vertically": "Balik vertikal",
"Invert": "Kebalikan",
"Insert date\/time": "Sisipkan tanggal\/waktu",
"Remove link": "Buang tautan",
"Url": "Tautan",
"Text to display": "Teks yang ditampilkan",
"Anchors": "Jangkar",
"Insert link": "Sisipkan tautan",
"New window": "Jendela baru",
"None": "Tdk ada",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Tautan yang anda masukkan sepertinya adalah tautan eksternal. Apakah Anda ingin menambahkan prefiks http:\/\/ yang dibutuhkan?",
"Target": "Jendela Tujuan",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Tautan yang anda masukkan sepertinya adalah alamat email. Apakah Anda ingin menambahkan prefiks mailto: yang dibutuhkan?",
"Insert\/edit link": "Sisip\/sunting tautan",
"Insert\/edit video": "Sisip\/sunting video",
"Poster": "Penulis",
"Alternative source": "Sumber Alternatif",
"Paste your embed code below:": "Tempel kode yang diembed dibawah ini:",
"Insert video": "Sisipkan video",
"Embed": "Embed",
"Nonbreaking space": "Spasi ",
"Page break": "Baris baru",
"Paste as text": "Tempel sebagai teks biasa",
"Preview": "Pratinjau",
"Print": "Cetak",
"Save": "Simpan",
"Could not find the specified string.": "Tidak dapat menemukan string yang dimaksud.",
"Replace": "Ganti",
"Next": "Berikutnya",
"Whole words": "Semua kata",
"Find and replace": "Cari dan Ganti",
"Replace with": "Ganti dengan",
"Find": "Cari",
"Replace all": "Ganti semua",
"Match case": "Samakan besar kecil huruf",
"Prev": "Sebelumnya",
"Spellcheck": "Spellcheck",
"Finish": "Selesai",
"Ignore all": "Abaikan semua",
"Ignore": "Abaikan",
"Add to Dictionary": "Tambahkan ke kamus",
"Insert row before": "Sisipkan baris sebelum",
"Rows": "Barisan",
"Height": "Tinggi",
"Paste row after": "Tempel baris setelah",
"Alignment": "Penjajaran",
"Border color": "Warna batas",
"Column group": "Kelompok kolom",
"Row": "Baris",
"Insert column before": "Sisipkan kolom sebelum",
"Split cell": "Bagi sel",
"Cell padding": "Lapisan sel",
"Cell spacing": "Spasi sel",
"Row type": "Tipe baris",
"Insert table": "Sisipkan tabel",
"Body": "Body",
"Caption": "Caption",
"Footer": "Footer",
"Delete row": "Hapus baris",
"Paste row before": "Tempel baris sebelum",
"Scope": "Skup",
"Delete table": "Hapus tabel",
"H Align": "Rata Samping",
"Top": "Atas",
"Header cell": "Sel Header",
"Column": "Kolom",
"Row group": "Kelompok baris",
"Cell": "Sel",
"Middle": "Tengah",
"Cell type": "Tipe sel",
"Copy row": "Salin baris",
"Row properties": "Properti baris",
"Table properties": "Properti tabel",
"Bottom": "bawah",
"V Align": "Rata Atas",
"Header": "Header",
"Right": "Kanan",
"Insert column after": "Sisipkan kolom setelah",
"Cols": "Kolom",
"Insert row after": "Sisipkan baris setelah",
"Width": "Lebar",
"Cell properties": "Properti sel",
"Left": "Kiri",
"Cut row": "Penggal baris",
"Delete column": "Hapus kolom",
"Center": "Tengah",
"Merge cells": "Gabung sel",
"Insert template": "Sisipkan templat",
"Templates": "Templat",
"Background color": "Warna latar",
"Custom...": "Atur sendiri...",
"Custom color": "Warna Sendiri",
"No color": "Tidak berwarna",
"Text color": "Warna teks",
"Show blocks": "Tampilkan blok",
"Show invisible characters": "Tampilkan karakter tak tampak",
"Words: {0}": "Kata: {0}",
"Insert": "Sisip",
"File": "Berkas",
"Edit": "Sunting",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Area teks kaya. Tekan ALT-F9 untuk menu. Tekan ALT-F10 untuk toolbar. Tekan ALT-0 untuk bantuan",
"Tools": "Alat",
"View": "Tampilan",
"Table": "Tabel",
"Format": "Format"
});editors/tinymce/langs/it.js000064400000020415152177723720011762 0ustar00tinymce.addI18n('it',{
"Cut": "Taglia",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Il tuo browser non supporta l'accesso diretto negli Appunti. Per favore usa i tasti di scelta rapida Ctrl+X\/C\/V.",
"Paste": "Incolla",
"Paste as text": "Incolla come testo",
"Close": "Chiudi",
"Align right": "Allinea a Destra",
"New document": "Nuovo Documento",
"Numbered list": "Elenchi Numerati",
"Increase indent": "Aumenta rientro",
"Formats": "Formattazioni",
"Select all": "Seleziona tutto",
"Undo": "Annulla",
"Strikethrough": "Barrato",
"Bullet list": "Elenchi Puntati",
"Superscript": "Apice",
"Clear formatting": "Cancella formattazione",
"Subscript": "Pedice",
"Redo": "Ripristina",
"Ok": "Ok",
"Bold": "Grassetto",
"Italic": "Corsivo",
"Align center": "Allinea al Centro",
"Decrease indent": "Riduci rientro",
"Underline": "Sottolineato",
"Cancel": "Cancella",
"Justify": "Giustifica",
"Copy": "Copia",
"Align left": "Allinea a Sinistra",
"Visual aids": "Elementi Visivi",
"Lower Greek": "Minuscolo lettere greche",
"Square": "Quadrato",
"Default": "Predefinito",
"Lower Alpha": "Minuscolo alfanumerico",
"Circle": "Cerchio",
"Disc": "Disco",
"Upper Alpha": "Maiuscolo alfanumerico",
"Upper Roman": "Maiuscolo lettere romane",
"Lower Roman": "Minuscolo lettere romane",
"Name": "Nome",
"Anchor": "Ancora",
"Anchors": "Ancora",
"You have unsaved changes are you sure you want to navigate away?": "Non hai salvato delle modifiche, sei sicuro di andartene?",
"Restore last draft": "Ripristina l'ultima bozza.",
"Special character": "Inserisci Carattere Speciale",
"Source code": "Codice Sorgente",
"Right to left": "Da Destra a Sinistra",
"Left to right": "Da Sinistra a Destra",
"Emoticons": "Faccine",
"Robots": "Robot",
"Document properties": "Propriet\u00e0 Documento",
"Title": "Titolo",
"Keywords": "Parola Chiave",
"Encoding": "Codifica",
"Description": "Descrizione",
"Author": "Autore",
"Fullscreen": "Schermo Intero",
"Horizontal line": "Linea Orizzontale",
"Horizontal space": "Spazio Orizzontale",
"Insert\/edit image": "Aggiungi\/Modifica Immagine",
"General": "Generale",
"Advanced": "Avanzato",
"Source": "URL",
"Border": "Bordo",
"Constrain proportions": "Mantieni Proporzioni",
"Vertical space": "Spazio Verticale",
"Image description": "Descrizione Immagine",
"Style": "Stile",
"Dimensions": "Dimensioni",
"Insert image": "Inserisci immagine",
"Insert date\/time": "Inserisci Data\/Ora",
"Remove link": "Rimuovi Link",
"Url": "Url",
"Text to display": "Testo da Visualizzare",
"Insert link": "Inserisci Link",
"New window": "Nuova Finestra",
"None": "No",
"Target": "Target",
"Insert\/edit link": "Inserisci\/Modifica link",
"Insert\/edit video": "Inserisci\/Modifica video",
"Poster": "Anteprima",
"Alternative source": "Alternativo",
"Paste your embed code below:": "Incolla qui il codice da incorporare:",
"Insert video": "Inserisci Video",
"Embed": "Incorporare",
"Nonbreaking space": "Spazio unificatore",
"Preview": "Anteprima",
"Print": "Stampa",
"Save": "Salva",
"Could not find the specified string.": "Impossibile trovare la parola specifica.",
"Replace": "Sostituisci",
"Next": "Successivo",
"Whole words": "Parole intere",
"Find and replace": "Trova e Sostituisci",
"Replace with": "Sostituisci con",
"Find": "Trova",
"Replace all": "Sostituisci tutto",
"Match case": "Maiuscole\/Minuscole ",
"Prev": "Precedente",
"Spellcheck": "Controllo ortografico",
"Finish": "Termina",
"Ignore all": "Ignora tutto",
"Ignore": "Ignora",
"Insert row before": "Inserisci una Riga prima",
"Rows": "Righe",
"Height": "Altezza",
"Paste row after": "Incolla una Riga dopo",
"Alignment": "Allineamento",
"Column group": "Gruppo di Colonne",
"Row": "Riga",
"Insert column before": "Inserisci una Colonna prima",
"Split cell": "Dividi Cella",
"Cell padding": "Padding della Cella",
"Cell spacing": "Spaziatura della Cella",
"Row type": "Tipo di Riga",
"Insert table": "Inserisci Tabella",
"Body": "Body",
"Caption": "Didascalia",
"Footer": "Footer",
"Delete row": "Cancella Riga",
"Paste row before": "Incolla una Riga prima",
"Scope": "Campo",
"Delete table": "Cancella Tabella",
"Header cell": "cella d'intestazione",
"Column": "Colonna",
"Cell": "Cella",
"Header": "Header",
"Cell type": "Tipo di Cella",
"Copy row": "Copia Riga",
"Row properties": "Propriet\u00e0 della Riga",
"Table properties": "Propriet\u00e0 della Tabella",
"Row group": "Gruppo di Righe",
"Right": "Destra",
"Insert column after": "Inserisci una Colonna dopo",
"Cols": "Colonne",
"Insert row after": "Inserisci una Riga dopo",
"Width": "Larghezza",
"Cell properties": "Propriet\u00e0 della Cella",
"Left": "Sinistra",
"Cut row": "Taglia Riga",
"Delete column": "Cancella Colonna",
"Center": "Centro",
"Merge cells": "Unisci Cella",
"Insert template": "Inserisci Template",
"Templates": "Template",
"Background color": "Colore Sfondo",
"Text color": "Colore Testo",
"Show blocks": "Mostra Blocchi",
"Show invisible characters": "Mostra Caratteri Invisibili",
"Words: {0}": "Parole: {0}",
"Insert": "Inserisci",
"File": "File",
"Edit": "Modifica",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Premi ALT-F9 per il men\u00f9. Premi ALT-F10 per la barra degli strumenti. Premi ALT-0 per l'aiuto.",
"Tools": "Strumenti",
"View": "Visualizza",
"Table": "Tabella",
"Format": "Formato",
"Inline": "Formato",
"Blocks": "Blocchi",
"Zoom in": "Zoom",
"Contrast": "Contrasto",
"Back": "Indietro",
"Gamma": "Gamma",
"Flip horizontally": "Capovolgi orizzontalmente",
"Resize": "Ridimensiona",
"Sharpen": "Affila",
"Zoom out": "Zoom indietro",
"Image options": "Opzioni immagine",
"Apply": "Applica",
"Brightness": "Luminosit\u00e0",
"Rotate clockwise": "Ruota in senso orario",
"Rotate counterclockwise": "Ruota in senso antiorario",
"Edit image": "Modifica Immagine",
"Color levels": "Livelli colore",
"Crop": "Rifila",
"Orientation": "Orientamento",
"Flip vertically": "Capovolgi verticalmente",
"Invert": "Inverti",
"Font Family": "Famiglia Carattere",
"Font Sizes": "Grandezza Carattere",
"Paragraph": "Paragrafo",
"Address": "Indirizzo",
"Blockquote": "Citazione",
"Pre": "Preformattato",
"Code": "Codice",
"H Align": "Allineamento orizzontale",
"V Align": "Allineamento verticale",
"Top": "Sopra",
"Middle": "Al centro",
"Bottom": "Sotto",
"Headers": "Intestazioni",
"Header 1": "Intestazione 1",
"Header 2": "Intestazione 2",
"Header 3": "Intestazione 3",
"Header 4": "Intestazione 4",
"Header 5": "Intestazione 5",
"Header 6": "Intestazione 6",
"Headings": "Intestazioni",
"Heading 1": "Intestazione 1",
"Heading 2": "Intestazione 2",
"Heading 3": "Intestazione 3",
"Heading 4": "Intestazione 4",
"Heading 5": "Intestazione 5",
"Heading 6": "Intestazione 6",
"Preformatted": "Preformattato",
"Add to Dictionary": "Aggiungi al dizionario",
"Insert Time": "Inserisci ora",
"Insert nonbreaking space": "Inserisci uno spazio",
"Insert\/Edit code sample": "Inserisci\/modifica codice da mostrare",
"Language": "Linguaggio",
"Toggle blockquote": "Testo quotato",
"Border color": "Colore bordo",
"Color": "Colore",
"Custom...": "Personalizza...",
"Custom color": "Personalizza colore",
"No color": "Nessun colore",
"Id": "Id",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'Id dovrebbe iniziare con una lettera, seguita solo da lettere, numeri, trattini, due punti, virgole o underscore.",
"Insert/Edit code sample": "Inserisci/Modifica codice di esempio",
"Language": "Lingua",
"Image": "Immagine",
"Date/time": "Data/ora",
"Link": "Link",
"Paste or type a link": "Incolla o scrivi un link",
"Insert/Edit Media": "Inserisci/Modifica oggetto multimediale",
"Media": "Media",
"Table of Contents": "Tabella di contenuti",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "L'incolla è ora in modalità di testo normale. I contenuti verranno incollati come testo normale fino a quando non disattiverai questa opzione.",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL inserito sembra essere un collegamento esterno. Vuoi aggiungere il prefisso necessario http:\/\/?",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL inserito sembra essere un indirizzo email. Vuoi aggiungere il prefisso necessario mailto:?"
});editors/tinymce/langs/be.js000064400000045725152177723720011747 0ustar00tinymce.addI18n('be',{
"Cut": "\u0412\u044b\u0440\u0430\u0437\u0430\u0446\u044c",
"Heading 5": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 5",
"Header 2": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u045e\u0437\u044d\u0440 \u043d\u0435 \u043f\u0430\u0434\u0442\u0440\u044b\u043c\u043b\u0456\u0432\u0430\u0435 \u043f\u0440\u0430\u043c\u044b \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0430\u0431\u043c\u0435\u043d\u0443. \u041a\u0430\u043b\u0456 \u043b\u0430\u0441\u043a\u0430, \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u043e\u045e\u0432\u0430\u0439\u0446\u0435 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u044b\u044f \u0441\u043f\u0430\u043b\u0443\u0447\u044d\u043d\u043d\u044f \u043a\u043b\u0430\u0432\u0456\u0448: Ctrl + X\/C\/V.",
"Heading 4": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 4",
"Div": "\u0411\u043b\u043e\u043a",
"Heading 2": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 2",
"Paste": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c",
"Close": "\u0417\u0430\u0447\u044b\u043d\u0456\u0446\u044c",
"Font Family": "\u0428\u0440\u044b\u0444\u0442",
"Pre": "\u041f\u0440\u0430\u0434\u0444\u0430\u0440\u043c\u0430\u0442\u0430\u0432\u0430\u043d\u043d\u0435",
"Align right": "\u041f\u0430 \u043f\u0440\u0430\u0432\u044b\u043c \u043a\u0440\u0430\u0456",
"New document": "\u041d\u043e\u0432\u044b \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442",
"Blockquote": "\u0426\u044b\u0442\u0430\u0442\u0430",
"Numbered list": "\u041d\u0443\u043c\u0430\u0440\u0430\u0432\u0430\u043d\u044b \u0441\u043f\u0456\u0441",
"Heading 1": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 1",
"Headings": "\u0417\u0430\u0433\u0430\u043b\u043e\u045e\u043a\u0456",
"Increase indent": "\u041f\u0430\u0432\u044f\u043b\u0456\u0447\u044b\u0446\u044c \u0432\u043e\u0434\u0441\u0442\u0443\u043f",
"Formats": "\u0424\u0430\u0440\u043c\u0430\u0442",
"Headers": "\u0417\u0430\u0433\u0430\u043b\u043e\u045e\u043a\u0456",
"Select all": "\u0412\u044b\u043b\u0443\u0447\u044b\u0446\u044c \u0443\u0441\u0451",
"Header 3": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 3",
"Blocks": "\u0411\u043b\u043e\u043a\u0456",
"Undo": "\u0412\u044f\u0440\u043d\u0443\u0446\u044c",
"Strikethrough": "\u0417\u0430\u043a\u0440\u044d\u0441\u043b\u0435\u043d\u044b",
"Bullet list": "\u041c\u0430\u0440\u043a\u0456\u0440\u0430\u0432\u0430\u043d\u044b \u0441\u043f\u0456\u0441",
"Header 1": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 1",
"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0456 \u0456\u043d\u0434\u044d\u043a\u0441",
"Clear formatting": "\u0410\u0447\u044b\u0441\u0446\u0456\u0446\u044c \u0444\u0430\u0440\u043c\u0430\u0442",
"Font Sizes": "\u041f\u0430\u043c\u0435\u0440 \u0448\u0440\u044b\u0444\u0442\u0430",
"Subscript": "\u041d\u0456\u0436\u043d\u0456 \u0456\u043d\u0434\u044d\u043a\u0441",
"Header 6": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 6",
"Redo": "\u0410\u0434\u043c\u044f\u043d\u0456\u0446\u044c",
"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
"Ok": "Ok",
"Bold": "\u0422\u043b\u0443\u0441\u0442\u044b",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041a\u0443\u0440\u0441\u0456\u045e",
"Align center": "\u041f\u0430 \u0446\u044d\u043d\u0442\u0440\u044b",
"Header 5": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 5",
"Heading 6": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 6",
"Heading 3": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 3",
"Decrease indent": "\u041f\u0430\u043c\u0435\u043d\u0448\u044b\u0446\u044c \u0432\u043e\u0434\u0441\u0442\u0443\u043f",
"Header 4": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0423\u0441\u0442\u0430\u045e\u043a\u0430 \u0437\u0434\u0437\u044f\u0439\u0441\u043d\u044f\u0435\u0446\u0446\u0430 \u045e \u0432\u044b\u0433\u043b\u044f\u0434\u0437\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0433\u0430 \u0442\u044d\u043a\u0441\u0442\u0443, \u043f\u0430\u043a\u0443\u043b\u044c \u043d\u0435 \u0430\u0434\u043a\u043b\u044e\u0447\u044b\u0446\u044c \u0434\u0430\u0434\u0437\u0435\u043d\u0443\u044e \u043e\u043f\u0446\u044b\u044e.",
"Underline": "\u041f\u0430\u0434\u043a\u0440\u044d\u0441\u043b\u0435\u043d\u044b",
"Cancel": "\u0410\u0434\u043c\u044f\u043d\u0456\u0446\u044c",
"Justify": "\u041f\u0430 \u0448\u044b\u0440\u044b\u043d\u0456",
"Inline": "\u0420\u0430\u0434\u043a\u043e\u0432\u044b",
"Copy": "\u041a\u0430\u043f\u0456\u0440\u0430\u0432\u0430\u0446\u044c",
"Align left": "\u041f\u0430 \u043b\u0435\u0432\u044b\u043c \u043a\u0440\u0430\u0456",
"Visual aids": "\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b",
"Lower Greek": "\u041c\u0430\u043b\u044b\u044f \u0433\u0440\u044d\u0447\u0430\u0441\u043a\u0456\u044f \u043b\u0456\u0442\u0430\u0440\u044b",
"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b",
"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b",
"Lower Alpha": "\u041c\u0430\u043b\u044b\u044f \u043b\u0430\u0446\u0456\u043d\u0441\u043a\u0456\u044f \u043b\u0456\u0442\u0430\u0440\u044b",
"Circle": "\u0410\u043a\u0440\u0443\u0436\u043d\u0430\u0441\u0446\u0456",
"Disc": "\u041a\u0440\u0443\u0433\u0456",
"Upper Alpha": "\u0417\u0430\u0433\u0430\u043b\u043e\u045e\u043d\u044b\u044f \u043b\u0430\u0446\u0456\u043d\u0441\u043a\u0456\u044f \u043b\u0456\u0442\u0430\u0440\u044b",
"Upper Roman": "\u0417\u0430\u0433\u0430\u043b\u043e\u045e\u043d\u044b\u044f \u0440\u044b\u043c\u0441\u043a\u0456\u044f \u043b\u0456\u0447\u0431\u044b",
"Lower Roman": "\u041c\u0430\u043b\u044b\u044f \u0440\u044b\u043c\u0441\u043a\u0456\u044f \u043b\u0456\u0447\u0431\u044b",
"Name": "\u0406\u043c\u044f",
"Anchor": "\u042f\u043a\u0430\u0440",
"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0451\u0441\u0446\u044c \u043d\u0435\u0437\u0430\u0445\u0430\u0432\u0430\u043d\u044b\u044f \u0437\u043c\u0435\u043d\u044b. \u0412\u044b \u045e\u043f\u044d\u045e\u043d\u0435\u043d\u044b\u044f, \u0448\u0442\u043e \u0445\u043e\u0447\u0430\u0446\u0435 \u0432\u044b\u0439\u0441\u0446\u0456?",
"Restore last draft": "\u0410\u0434\u043d\u0430\u045e\u043b\u0435\u043d\u043d\u0435 \u0430\u043f\u043e\u0448\u043d\u044f\u0433\u0430 \u043f\u0440\u0430\u0435\u043a\u0442\u0430",
"Special character": "\u0421\u043f\u0435\u0446\u044b\u044f\u043b\u044c\u043d\u044b\u044f \u0441\u0456\u043c\u0432\u0430\u043b\u044b",
"Source code": "\u0417\u044b\u0445\u043e\u0434\u043d\u044b \u043a\u043e\u0434",
"Color": "\u041a\u043e\u043b\u0435\u0440",
"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u0430",
"Left to right": "\u0417\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0430",
"Emoticons": "\u0414\u0430\u0434\u0430\u0446\u044c \u0441\u043c\u0430\u0439\u043b",
"Robots": "\u0420\u043e\u0431\u0430\u0442\u044b",
"Document properties": "\u0423\u043b\u0430\u0441\u0446\u0456\u0432\u0430\u0441\u0446\u0456 \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
"Title": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a",
"Keywords": "\u041a\u043b\u044e\u0447\u0430\u0432\u044b\u044f \u0441\u043b\u043e\u0432\u044b",
"Encoding": "\u041a\u0430\u0434\u044b\u0440\u043e\u045e\u043a\u0430",
"Description": "\u0410\u043f\u0456\u0441\u0430\u043d\u043d\u0435",
"Author": "\u0410\u045e\u0442\u0430\u0440",
"Fullscreen": "\u041f\u043e\u045e\u043d\u0430\u044d\u043a\u0440\u0430\u043d\u043d\u044b \u0440\u044d\u0436\u044b\u043c",
"Horizontal line": "\u0413\u0430\u0440\u044b\u0437\u0430\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0456\u043d\u0456\u044f",
"Horizontal space": "\u0413\u0430\u0440\u044b\u0437\u0430\u043d\u0442\u0430\u043b\u044c\u043d\u044b \u0456\u043d\u0442\u044d\u0440\u0432\u0430\u043b",
"Insert\/edit image": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c\/\u0440\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044c \u0432\u044b\u044f\u0432\u0443",
"General": "\u0410\u0433\u0443\u043b\u044c\u043d\u0430\u0435",
"Advanced": "\u041f\u0430\u0448\u044b\u0440\u0430\u043d\u0430\u0435",
"Source": "\u041a\u0440\u044b\u043d\u0456\u0446\u0430",
"Border": "\u041c\u044f\u0436\u0430",
"Constrain proportions": "\u0417\u0430\u0445\u0430\u0432\u0430\u0446\u044c \u043f\u0440\u0430\u043f\u043e\u0440\u0446\u044b\u0456",
"Vertical space": "\u0412\u0435\u0440\u0442\u044b\u043a\u0430\u043b\u044c\u043d\u044b \u0456\u043d\u0442\u044d\u0440\u0432\u0430\u043b",
"Image description": "\u0410\u043f\u0456\u0441\u0430\u043d\u043d\u0435 \u0432\u044b\u044f\u0432\u044b",
"Style": "\u0421\u0442\u044b\u043b\u044c",
"Dimensions": "\u041f\u0430\u043c\u0435\u0440",
"Insert image": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0432\u044b\u044f\u0432\u0443",
"Insert date\/time": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0434\u0430\u0442\u0443\/\u0447\u0430\u0441",
"Remove link": "\u0412\u044b\u0434\u0430\u043b\u0456\u0446\u044c \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0443",
"Url": "\u0410\u0434\u0440\u0430\u0441 \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0456",
"Text to display": "\u0422\u044d\u043a\u0441\u0442 \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0456",
"Anchors": "\u042f\u043a\u0430\u0440\u044b",
"Insert link": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0443",
"New window": "\u0423 \u043d\u043e\u0432\u044b\u043c \u0430\u043a\u043d\u0435",
"None": "\u041d\u044f\u043c\u0430",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0423\u0432\u0435\u0434\u0437\u0435\u043d\u044b \u0430\u0434\u0440\u0430\u0441 \u043f\u0430\u0434\u043e\u0431\u043d\u044b \u043d\u0430 \u0437\u043d\u0435\u0448\u043d\u044e\u044e \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0443. \u0416\u0430\u0434\u0430\u0435\u0446\u0435 \u0434\u0430\u0434\u0430\u0446\u044c \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u044b http:\/\/ \u043f\u0440\u044d\u0444\u0456\u043a\u0441?",
"Target": "\u0410\u0434\u043a\u0440\u044b\u0432\u0430\u0446\u044c \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0443",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0423\u0432\u0435\u0434\u0437\u0435\u043d\u044b \u0430\u0434\u0440\u0430\u0441 \u043f\u0430\u0434\u043e\u0431\u043d\u044b \u043d\u0430 \u0430\u0434\u0440\u0430\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u0439 \u043f\u043e\u0448\u0442\u044b. \u0416\u0430\u0434\u0430\u0435\u0446\u0435 \u0434\u0430\u0434\u0430\u0446\u044c \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u044b mailto: \u043f\u0440\u044d\u0444\u0456\u043a\u0441?",
"Insert\/edit link": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c\/\u0440\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044c \u0441\u043f\u0430\u0441\u044b\u043b\u043a\u0443",
"Insert\/edit video": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c\/\u0440\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044c \u0432\u0456\u0434\u044d\u0430",
"Poster": "\u0412\u044b\u044f\u0432\u0430",
"Alternative source": "\u0410\u043b\u044c\u0442\u044d\u0440\u043d\u0430\u0442\u044b\u045e\u043d\u0430\u044f \u043a\u0440\u044b\u043d\u0456\u0446\u0430",
"Paste your embed code below:": "\u0423\u0441\u0442\u0430\u045e\u0446\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0456\u0436\u044d\u0439:",
"Insert video": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0432\u0456\u0434\u044d\u0430",
"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u045e\u0441\u0442\u0430\u045e\u043a\u0456",
"Nonbreaking space": "\u041d\u0435\u043f\u0430\u0440\u044b\u045e\u043d\u044b \u043f\u0440\u0430\u0431\u0435\u043b",
"Page break": "\u0420\u0430\u0437\u0440\u044b\u045e \u0441\u0442\u0430\u0440\u043e\u043d\u043a\u0456",
"Paste as text": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u044f\u043a \u0442\u044d\u043a\u0441\u0442",
"Preview": "\u041f\u0440\u0430\u0434\u043f\u0440\u0430\u0433\u043b\u044f\u0434",
"Print": "\u0414\u0440\u0443\u043a",
"Save": "\u0417\u0430\u0445\u0430\u0432\u0430\u0446\u044c",
"Could not find the specified string.": "\u0417\u0430\u0434\u0430\u0434\u0437\u0435\u043d\u044b \u0440\u0430\u0434\u043e\u043a \u043d\u0435 \u0437\u043d\u043e\u0439\u0434\u0437\u0435\u043d\u044b",
"Replace": "\u0417\u043c\u044f\u043d\u0456\u0446\u044c",
"Next": "\u0423\u043d\u0456\u0437",
"Whole words": "\u0421\u043b\u043e\u0432\u044b \u0446\u0430\u043b\u043a\u0430\u043c",
"Find and replace": "\u041f\u043e\u0448\u0443\u043a \u0456 \u0437\u0430\u043c\u0435\u043d\u0430",
"Replace with": "\u0417\u043c\u044f\u043d\u0456\u0446\u044c \u043d\u0430",
"Find": "\u0417\u043d\u0430\u0439\u0441\u0446\u0456",
"Replace all": "\u0417\u043c\u044f\u043d\u0456\u0446\u044c \u0443\u0441\u0435",
"Match case": "\u0423\u043b\u0456\u0447\u0432\u0430\u0446\u044c \u0440\u044d\u0433\u0456\u0441\u0442\u0440",
"Prev": "\u0423\u0432\u0435\u0440\u0445",
"Spellcheck": "\u041f\u0440\u0430\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u0430\u043f\u0456\u0441\u0443",
"Finish": "\u0421\u043a\u043e\u043d\u0447\u044b\u0446\u044c",
"Ignore all": "\u0406\u0433\u043d\u0430\u0440\u0430\u0432\u0430\u0446\u044c \u0443\u0441\u0435",
"Ignore": "\u0406\u0433\u043d\u0430\u0440\u0430\u0432\u0430\u0446\u044c",
"Add to Dictionary": "\u0414\u0430\u0434\u0430\u0446\u044c \u0443 \u0441\u043b\u043e\u045e\u043d\u0456\u043a",
"Insert row before": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
"Rows": "\u0420\u0430\u0434\u043a\u0456",
"Height": "\u0412\u044b\u0448\u044b\u043d\u044f",
"Paste row after": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u043d\u0456\u0437\u0443",
"Alignment": "\u0412\u044b\u0440\u0430\u045e\u043d\u043e\u045e\u0432\u0430\u043d\u043d\u0435",
"Border color": "\u041a\u043e\u043b\u0435\u0440 \u043c\u044f\u0436\u044b",
"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u043b\u0443\u043f\u043a\u043e\u045e",
"Row": "\u0420\u0430\u0434\u043e\u043a",
"Insert column before": "\u0414\u0430\u0434\u0430\u0446\u044c \u0441\u043b\u0443\u043f\u043e\u043a \u0437\u043b\u0435\u0432\u0430",
"Split cell": "\u0420\u0430\u0437\u0431\u0456\u0446\u044c \u044f\u0447\u044d\u0439\u043a\u0443",
"Cell padding": "\u0423\u043d\u0443\u0442\u0440\u0430\u043d\u044b \u0432\u043e\u0434\u0441\u0442\u0443\u043f",
"Cell spacing": "\u0417\u043d\u0435\u0448\u043d\u0456 \u0432\u043e\u0434\u0441\u0442\u0443\u043f",
"Row type": "\u0422\u044b\u043f \u0440\u0430\u0434\u043a\u0430",
"Insert table": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0442\u0430\u0431\u043b\u0456\u0446\u0443",
"Body": "\u0426\u0435\u043b\u0430",
"Caption": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a",
"Footer": "\u041d\u0456\u0437",
"Delete row": "\u0412\u044b\u0434\u0430\u043b\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a",
"Paste row before": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
"Scope": "\u0421\u0444\u0435\u0440\u0430",
"Delete table": "\u0412\u044b\u0434\u0430\u043b\u0456\u0446\u044c \u0442\u0430\u0431\u043b\u0456\u0446\u0443",
"H Align": "\u0413\u0430\u0440. \u0432\u044b\u0440\u0430\u045e\u043d\u043e\u045e\u0432\u0430\u043d\u043d\u0435",
"Top": "\u0412\u0435\u0440\u0445",
"Header cell": "\u0417\u0430\u0433\u0430\u043b\u043e\u0432\u0430\u043a",
"Column": "\u0421\u043b\u0443\u043f\u043e\u043a",
"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u0430\u0434\u043a\u043e\u045e",
"Cell": "\u042f\u0447\u044d\u0439\u043a\u0430",
"Middle": "\u0421\u044f\u0440\u044d\u0434\u0437\u0456\u043d\u0430",
"Cell type": "\u0422\u044b\u043f \u044f\u0447\u044d\u0439\u043a\u0456",
"Copy row": "\u041a\u0430\u043f\u0456\u044f\u0432\u0430\u0446\u044c \u0440\u0430\u0434\u043e\u043a",
"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0430\u0434\u043a\u0430",
"Table properties": "\u0423\u043b\u0430\u0441\u0446\u0456\u0432\u0430\u0441\u0446\u0456 \u0442\u0430\u0431\u043b\u0456\u0446\u044b",
"Bottom": "\u041d\u0456\u0437",
"V Align": "\u0412\u0435\u0440. \u0432\u044b\u0440\u0430\u045e\u043d\u043e\u045e\u0432\u0430\u043d\u043d\u0435",
"Header": "\u0428\u0430\u043f\u043a\u0430",
"Right": "\u041f\u0430 \u043f\u0440\u0430\u0432\u044b\u043c \u043a\u0440\u0430\u0456",
"Insert column after": "\u0414\u0430\u0434\u0430\u0446\u044c \u0441\u043b\u0443\u043f\u043e\u043a \u0441\u043f\u0440\u0430\u0432\u0430",
"Cols": "\u0421\u043b\u0443\u043f\u043a\u0456",
"Insert row after": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0440\u0430\u0434\u043e\u043a \u0437\u043d\u0456\u0437\u0443",
"Width": "\u0428\u044b\u0440\u044b\u043d\u044f",
"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u044d\u0439\u043a\u0456",
"Left": "\u041f\u0430 \u043b\u0435\u0432\u044b\u043c \u043a\u0440\u0430\u0456",
"Cut row": "\u0412\u044b\u0440\u0430\u0437\u0430\u0446\u044c \u0440\u0430\u0434\u043e\u043a",
"Delete column": "\u0412\u044b\u0434\u0430\u043b\u0456\u0446\u044c \u0441\u043b\u0443\u043f\u043e\u043a",
"Center": "\u041f\u0430 \u0446\u044d\u043d\u0442\u0440\u044b",
"Merge cells": "\u0410\u0431'\u044f\u0434\u043d\u0430\u0446\u044c \u044f\u0447\u044d\u0439\u043a\u0456",
"Insert template": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b",
"Background color": "\u041a\u043e\u043b\u0435\u0440 \u0444\u043e\u043d\u0443",
"Custom...": "\u041a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u043a\u0456...",
"Custom color": "\u041a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u043a\u0456 \u043a\u043e\u043b\u0435\u0440",
"No color": "\u0411\u0435\u0437 \u043a\u043e\u043b\u0435\u0440\u0443",
"Text color": "\u041a\u043e\u043b\u0435\u0440 \u0442\u044d\u043a\u0441\u0442\u0443",
"Show blocks": "\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u0431\u043b\u043e\u043a\u0456",
"Show invisible characters": "\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u043d\u044f\u0431\u0430\u0447\u043d\u044b\u044f \u0441\u0456\u043c\u0432\u0430\u043b\u044b",
"Words: {0}": "\u041a\u043e\u043b\u044c\u043a\u0430\u0441\u0446\u044c \u0441\u043b\u043e\u045e: {0}",
"Insert": "\u0423\u0441\u0442\u0430\u0432\u0456\u0446\u044c",
"File": "\u0424\u0430\u0439\u043b",
"Edit": "\u0417\u043c\u044f\u043d\u0456\u0446\u044c",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u044d\u043a\u0441\u0442\u0430\u0432\u0430\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0446\u0456\u0441\u043d\u0456\u0446\u0435 ALT-F9, \u043a\u0430\u0431 \u0432\u044b\u043a\u043b\u0456\u043a\u0430\u0446\u044c \u043c\u0435\u043d\u044e, ALT-F10 - \u043f\u0430\u043d\u044d\u043b\u044c \u043f\u0440\u044b\u043b\u0430\u0434\u0430\u045e, ALT-0 - \u0434\u043b\u044f \u0432\u044b\u043a\u043b\u0456\u043a\u0443 \u0434\u0430\u043f\u0430\u043c\u043e\u0433\u0456.",
"Tools": "\u041f\u0440\u044b\u043b\u0430\u0434\u044b",
"View": "\u0412\u044b\u0433\u043b\u044f\u0434",
"Table": "\u0422\u0430\u0431\u043b\u0456\u0446\u0430",
"Format": "\u0424\u0430\u0440\u043c\u0430\u0442"
});editors/tinymce/langs/pl.js000064400000017662152177723720011773 0ustar00tinymce.addI18n('pl',{
"Cut": "Wytnij",
"Heading 5": "Nag\u0142\u00f3wek 5",
"Header 2": "Nag\u0142\u00f3wek 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Twoja przegl\u0105darka nie obs\u0142uguje bezpo\u015bredniego dost\u0119pu do schowka. U\u017cyj zamiast tego kombinacji klawiszy Ctrl+X\/C\/V.",
"Heading 4": "Nag\u0142\u00f3wek 4",
"Div": "Div",
"Heading 2": "Nag\u0142\u00f3wek 2",
"Paste": "Wklej",
"Close": "Zamknij",
"Font Family": "Kr\u00f3j czcionki",
"Pre": "Sformatowany tekst",
"Align right": "Wyr\u00f3wnaj do prawej",
"New document": "Nowy dokument",
"Blockquote": "Blok cytatu",
"Numbered list": "Lista numerowana",
"Heading 1": "Nag\u0142\u00f3wek 1",
"Headings": "Nag\u0142\u00f3wki",
"Increase indent": "Zwi\u0119ksz wci\u0119cie",
"Formats": "Formaty",
"Headers": "Nag\u0142\u00f3wki",
"Select all": "Zaznacz wszystko",
"Header 3": "Nag\u0142\u00f3wek 3",
"Blocks": "Bloki",
"Undo": "Cofnij",
"Strikethrough": "Przekre\u015blenie",
"Bullet list": "Lista wypunktowana",
"Header 1": "Nag\u0142\u00f3wek 1",
"Superscript": "Indeks g\u00f3rny",
"Clear formatting": "Wyczy\u015b\u0107 formatowanie",
"Font Sizes": "Rozmiar czcionki",
"Subscript": "Indeks dolny",
"Header 6": "Nag\u0142\u00f3wek 6",
"Redo": "Pon\u00f3w",
"Paragraph": "Akapit",
"Ok": "Ok",
"Bold": "Pogrubienie",
"Code": "Kod \u017ar\u00f3d\u0142owy",
"Italic": "Kursywa",
"Align center": "Wyr\u00f3wnaj do \u015brodka",
"Header 5": "Nag\u0142\u00f3wek 5",
"Heading 6": "Nag\u0142\u00f3wek 6",
"Heading 3": "Nag\u0142\u00f3wek 3",
"Decrease indent": "Zmniejsz wci\u0119cie",
"Header 4": "Nag\u0142\u00f3wek 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Wklejanie jest w trybie tekstowym. Zawarto\u015b\u0107 zostanie wklejona jako zwyk\u0142y tekst dop\u00f3ki nie wy\u0142\u0105czysz tej opcji.",
"Underline": "Podkre\u015blenie",
"Cancel": "Anuluj",
"Justify": "Do lewej i prawej",
"Inline": "W tek\u015bcie",
"Copy": "Kopiuj",
"Align left": "Wyr\u00f3wnaj do lewej",
"Visual aids": "Pomoce wizualne",
"Lower Greek": "Ma\u0142e greckie",
"Square": "Kwadrat",
"Default": "Domy\u015blne",
"Lower Alpha": "Ma\u0142e litery",
"Circle": "K\u00f3\u0142ko",
"Disc": "Dysk",
"Upper Alpha": "Wielkie litery",
"Upper Roman": "Wielkie rzymskie",
"Lower Roman": "Ma\u0142e rzymskie",
"Name": "Nazwa",
"Anchor": "Kotwica",
"You have unsaved changes are you sure you want to navigate away?": "Masz niezapisane zmiany. Czy na pewno chcesz opu\u015bci\u0107 stron\u0119?",
"Restore last draft": "Przywr\u00f3\u0107 ostatni szkic",
"Special character": "Znak specjalny",
"Source code": "Kod \u017ar\u00f3d\u0142owy",
"B": "B",
"R": "R",
"G": "G",
"Color": "Kolor",
"Right to left": "Od prawej do lewej",
"Left to right": "Od lewej do prawej",
"Emoticons": "Emotikony",
"Robots": "Roboty",
"Document properties": "W\u0142a\u015bciwo\u015bci dokumentu",
"Title": "Tytu\u0142",
"Keywords": "S\u0142owa kluczowe",
"Encoding": "Kodowanie",
"Description": "Opis",
"Author": "Autor",
"Fullscreen": "Pe\u0142ny ekran",
"Horizontal line": "Pozioma linia",
"Horizontal space": "Odst\u0119p poziomy",
"Insert\/edit image": "Wstaw\/edytuj obrazek",
"General": "Og\u00f3lne",
"Advanced": "Zaawansowane",
"Source": "\u0179r\u00f3d\u0142o",
"Border": "Ramka",
"Constrain proportions": "Zachowaj proporcje",
"Vertical space": "Odst\u0119p pionowy",
"Image description": "Opis obrazka",
"Style": "Styl",
"Dimensions": "Wymiary",
"Insert image": "Wstaw obrazek",
"Zoom in": "Powi\u0119ksz",
"Contrast": "Kontrast",
"Back": "Cofnij",
"Gamma": "Gamma",
"Flip horizontally": "Przerzu\u0107 w poziomie",
"Resize": "Zmiana rozmiaru",
"Sharpen": "Wyostrz",
"Zoom out": "Pomniejsz",
"Image options": "Opcje obrazu",
"Apply": "Zaakceptuj",
"Brightness": "Jasno\u015b\u0107",
"Rotate clockwise": "Obr\u00f3\u0107 w prawo",
"Rotate counterclockwise": "Obr\u00f3\u0107 w lewo",
"Edit image": "Edytuj obrazek",
"Color levels": "Poziom koloru",
"Crop": "Przytnij",
"Orientation": "Orientacja",
"Flip vertically": "Przerzu\u0107 w pionie",
"Invert": "Odwr\u00f3\u0107",
"Insert date\/time": "Wstaw dat\u0119\/czas",
"Remove link": "Usu\u0144 link",
"Url": "Url",
"Text to display": "Tekst do wy\u015bwietlenia",
"Anchors": "Kotwice",
"Insert link": "Wstaw link",
"New window": "Nowe okno",
"None": "\u017baden",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na link zewn\u0119trzny. Czy chcesz doda\u0107 http:\/\/ jako prefiks?",
"Target": "Cel",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na adres e-mail. Czy chcesz doda\u0107 mailto: jako prefiks?",
"Insert\/edit link": "Wstaw\/edytuj link",
"Insert\/edit video": "Wstaw\/edytuj wideo",
"Poster": "Plakat",
"Alternative source": "Alternatywne \u017ar\u00f3d\u0142o",
"Paste your embed code below:": "Wklej tutaj kod do osadzenia:",
"Insert video": "Wstaw wideo",
"Embed": "Osad\u017a",
"Nonbreaking space": "Nie\u0142amliwa spacja",
"Page break": "Podzia\u0142 strony",
"Paste as text": "Wklej jako zwyk\u0142y tekst",
"Preview": "Podgl\u0105d",
"Print": "Drukuj",
"Save": "Zapisz",
"Could not find the specified string.": "Nie znaleziono szukanego tekstu.",
"Replace": "Zamie\u0144",
"Next": "Nast.",
"Whole words": "Ca\u0142e s\u0142owa",
"Find and replace": "Znajd\u017a i zamie\u0144",
"Replace with": "Zamie\u0144 na",
"Find": "Znajd\u017a",
"Replace all": "Zamie\u0144 wszystko",
"Match case": "Dopasuj wielko\u015b\u0107 liter",
"Prev": "Poprz.",
"Spellcheck": "Sprawdzanie pisowni",
"Finish": "Zako\u0144cz",
"Ignore all": "Ignoruj wszystko",
"Ignore": "Ignoruj",
"Add to Dictionary": "Dodaj do s\u0142ownika",
"Insert row before": "Wstaw wiersz przed",
"Rows": "Wiersz.",
"Height": "Wysoko\u015b\u0107",
"Paste row after": "Wklej wiersz po",
"Alignment": "Wyr\u00f3wnanie",
"Border color": "Kolor ramki",
"Column group": "Grupa kolumn",
"Row": "Wiersz",
"Insert column before": "Wstaw kolumn\u0119 przed",
"Split cell": "Podziel kom\u00f3rk\u0119",
"Cell padding": "Dope\u0142nienie kom\u00f3rki",
"Cell spacing": "Odst\u0119py kom\u00f3rek",
"Row type": "Typ wiersza",
"Insert table": "Wstaw tabel\u0119",
"Body": "Tre\u015b\u0107",
"Caption": "Tytu\u0142",
"Footer": "Stopka",
"Delete row": "Usu\u0144 wiersz",
"Paste row before": "Wklej wiersz przed",
"Scope": "Kontekst",
"Delete table": "Usu\u0144 tabel\u0119",
"H Align": "Wyr\u00f3wnanie w pionie",
"Top": "G\u00f3ra",
"Header cell": "Kom\u00f3rka nag\u0142\u00f3wka",
"Column": "Kolumna",
"Row group": "Grupa wierszy",
"Cell": "Kom\u00f3rka",
"Middle": "\u015arodek",
"Cell type": "Typ kom\u00f3rki",
"Copy row": "Kopiuj wiersz",
"Row properties": "W\u0142a\u015bciwo\u015bci wiersza",
"Table properties": "W\u0142a\u015bciwo\u015bci tabeli",
"Bottom": "D\u00f3\u0142",
"V Align": "Wyr\u00f3wnanie w poziomie",
"Header": "Nag\u0142\u00f3wek",
"Right": "Prawo",
"Insert column after": "Wstaw kolumn\u0119 po",
"Cols": "Kol.",
"Insert row after": "Wstaw wiersz po",
"Width": "Szeroko\u015b\u0107",
"Cell properties": "W\u0142a\u015bciwo\u015bci kom\u00f3rki",
"Left": "Lewo",
"Cut row": "Wytnij wiersz",
"Delete column": "Usu\u0144 kolumn\u0119",
"Center": "\u015arodek",
"Merge cells": "\u0141\u0105cz kom\u00f3rki",
"Insert template": "Wstaw szablon",
"Templates": "Szablony",
"Background color": "Kolor t\u0142a",
"Custom...": "Niestandardowy...",
"Custom color": "Kolor niestandardowy",
"No color": "Bez koloru",
"Text color": "Kolor tekstu",
"Show blocks": "Poka\u017c bloki",
"Show invisible characters": "Poka\u017c niewidoczne znaki",
"Words: {0}": "S\u0142\u00f3w: {0}",
"Insert": "Wstaw",
"File": "Plik",
"Edit": "Edycja",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Obszar Edycji. ALT-F9 - menu. ALT-F10 - pasek narz\u0119dzi. ALT-0 - pomoc",
"Tools": "Narz\u0119dzia",
"View": "Widok",
"Table": "Tabela",
"Format": "Format"
});editors/tinymce/langs/si-LK.js000064400000036757152177723720012305 0ustar00tinymce.addI18n('si-LK',{
"Cut": "\u0d9a\u0db4\u0db1\u0dca\u0db1",
"Header 2": "Header 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0d9c\u0dca\u200d\u0dbb\u0dcf\u0dc4\u0d9a \u0db4\u0dd4\u0dc0\u0dbb\u0dd4\u0dc0\u0da7 \u0d8d\u0da2\u0dd4 \u0db4\u0dca\u200d\u0dbb\u0dc0\u0dda\u0dc1\u0dba\u0d9a\u0dca \u0dbd\u0db6\u0dcf\u0daf\u0dd3\u0db8\u0da7 \u0d94\u0db6\u0d9c\u0dda \u0db6\u0dca\u200d\u0dbb\u0dc0\u0dd4\u0dc3\u0dbb\u0dba \u0dc3\u0dc4\u0dba\u0d9a\u0dca \u0db1\u0ddc\u0daf\u0d9a\u0dca\u0dc0\u0dba\u0dd3. \u0d9a\u0dbb\u0dd4\u0dab\u0dcf\u0d9a\u0dbb \u0d92\u0dc0\u0dd9\u0db1\u0dd4\u0dc0\u0da7 Ctrl+X\/C\/V \u0dba\u0db1 \u0dba\u0dad\u0dd4\u0dbb\u0dd4\u0db4\u0dd4\u0dc0\u0dbb\u0dd4 \u0d9a\u0dd9\u0da7\u0dd2\u0db8\u0d9f \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1.",
"Div": "Div",
"Paste": "\u0d85\u0dbd\u0dc0\u0db1\u0dca\u0db1",
"Close": "\u0dc0\u0dc3\u0db1\u0dca\u0db1",
"Font Family": "Font Family",
"Pre": "Pre",
"Align right": "\u0daf\u0d9a\u0dd4\u0dab\u0dd4\u0db4\u0dc3\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
"New document": "\u0db1\u0dc0 \u0dbd\u0dda\u0d9b\u0db1\u0dba\u0d9a\u0dca",
"Blockquote": "Blockquote",
"Numbered list": "\u0d85\u0d82\u0d9a\u0db1\u0dba \u0d9a\u0dbd \u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0",
"Increase indent": "\u0dc0\u0dd0\u0da9\u0dd2\u0dc0\u0db1 \u0d91\u0db6\u0dd4\u0db8",
"Formats": "\u0d86\u0d9a\u0dd8\u0dad\u0dd2",
"Headers": "Headers",
"Select all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd \u0dad\u0ddd\u0dbb\u0db1\u0dca\u0db1",
"Header 3": "Header 3",
"Blocks": "Blocks",
"Undo": "\u0db1\u0dd2\u0dc2\u0dca\u0db4\u0dca\u200d\u0dbb\u0db7\u0dcf \u0d9a\u0dbb\u0db1\u0dc0\u0dcf",
"Strikethrough": "\u0db8\u0dd0\u0daf\u0dd2 \u0d89\u0dbb\u0dd0\u0dad\u0dd2",
"Bullet list": "\u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0",
"Header 1": "Header 1",
"Superscript": "\u0d8b\u0da9\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4",
"Clear formatting": "\u0db4\u0dd0\u0dc4\u0dd0\u0daf\u0dd2\u0dbd\u0dd2 \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba",
"Font Sizes": "Font Sizes",
"Subscript": "\u0dba\u0da7\u0dd2\u0dbd\u0d9a\u0dd4\u0dab\u0dd4",
"Header 6": "Header 6",
"Redo": "\t\u0db1\u0dd0\u0dc0\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Paragraph": "Paragraph",
"Ok": "\u0d85\u0db1\u0dd4\u0db8\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Bold": "\u0db4\u0dd0\u0dc4\u0dd0\u0daf\u0dd2\u0dbd\u0dd2 \u0dc3\u0dda \u0db4\u0dd9\u0db1\u0dd9\u0db1",
"Code": "Code",
"Italic": "\u0d87\u0dbd\u0d9a\u0dd4\u0dbb\u0dd4",
"Align center": "\u0db8\u0dd0\u0daf\u0dd2 \u0d9a\u0ddc\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Header 5": "Header 5",
"Decrease indent": "\u0d85\u0da9\u0dd4\u0dc0\u0db1 \u0d91\u0db6\u0dd4\u0db8",
"Header 4": "Header 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",
"Underline": "\u0dba\u0da7\u0dd2\u0db1\u0dca \u0d89\u0dbb\u0d9a\u0dca \u0d85\u0db3\u0dd2\u0db1\u0dca\u0db1",
"Cancel": "\u0d85\u0dc4\u0ddd\u0dc3\u0dd2 \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Justify": "\u0dc3\u0db8\u0dc0 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Inline": "Inline",
"Copy": "\u0db4\u0dd2\u0da7\u0db4\u0dad\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Align left": "\u0dc0\u0db8\u0dca\u0db4\u0dc3\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Visual aids": "\u0daf\u0dd8\u0dc1\u0dca\u200d\u0dba\u0dcf\u0db0\u0dcf\u0dbb",
"Lower Greek": "\u0d9a\u0dd4\u0da9\u0dcf \u0d9c\u0dca\u200d\u0dbb\u0dd3\u0d9a ",
"Square": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0",
"Default": "\u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2\u0dba ",
"Lower Alpha": "\u0d9a\u0dd4\u0da9\u0dcf \u0d87\u0dbd\u0dca\u0dc6\u0dcf ",
"Circle": "\u0dc0\u0d9a\u0dca\u200d\u0dbb\u0dba",
"Disc": "\u0dad\u0dd0\u0da7\u0dd2\u0dba ",
"Upper Alpha": "\u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0d87\u0dbd\u0dca\u0dc6\u0dcf ",
"Upper Roman": "\u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0dbb\u0ddd\u0db8\u0dcf\u0db1\u0dd4 ",
"Lower Roman": "\u0d9a\u0dd4\u0da9\u0dcf \u0dbb\u0ddd\u0db8\u0dcf\u0db1\u0dd4 ",
"Name": "\u0db1\u0dcf\u0db8\u0dba ",
"Anchor": "\u0d87\u0db1\u0dca\u0d9a\u0dbb\u0dba",
"You have unsaved changes are you sure you want to navigate away?": "\u0d94\u0db6\u0d9c\u0dda \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1 \u0db1\u0ddc\u0dbd\u0daf \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca \u0d87\u0dad,\u0d94\u0db6\u0da7 \u0dc0\u0dd2\u0dc1\u0dca\u0dc0\u0dcf\u0dc3\u0daf \u0d89\u0dc0\u0dad\u0da7 \u0dba\u0dcf\u0dba\u0dd4\u0dad\u0dd4\u0dba\u0dd2 \u0d9a\u0dd2\u0dba\u0dcf?",
"Restore last draft": "\u0d85\u0dc0\u0dc3\u0dcf\u0db1\u0dba\u0da7 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0d9a\u0dc5 \u0d9a\u0dd9\u0da7\u0dd4\u0db8\u0dca\u0db4\u0dad \u0db4\u0dd2\u0dc5\u0dd2\u0db1\u0d9c\u0db1\u0dca\u0db1 ",
"Special character": "\u0dc0\u0dd2\u0dc1\u0dda\u0dc2 \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab ",
"Source code": "\u0db8\u0dd6\u0dbd \u0d9a\u0dda\u0dad\u0dba ",
"Right to left": "\u0daf\u0d9a\u0dd4\u0dab\u0dd4\u0db4\u0dc3 \u0dc3\u0dd2\u0da7 \u0dc0\u0db8\u0dca\u0db4\u0dc3\u0da7 ",
"Left to right": "\u0dc0\u0db8\u0dca\u0db4\u0dc3 \u0dc3\u0dd2\u0da7 \u0daf\u0d9a\u0dd4\u0db1\u0dd4\u0db4\u0dc3\u0da7 ",
"Emoticons": "\u0db7\u0dcf\u0dc0 \u0db1\u0dd2\u0dbb\u0dd4\u0db4\u0d9a",
"Robots": "\u0dbb\u0ddc\u0db6\u0ddd",
"Document properties": "\u0dbd\u0dda\u0d9b\u0db1\u0dba\u0dda \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
"Title": "\u0db8\u0dcf\u0dad\u0dd8\u0d9a\u0dcf\u0dc0",
"Keywords": "\u0db8\u0dd6\u0dbd \u0db4\u0daf\u0dba ",
"Encoding": "\u0d9a\u0dda\u0dad\u0db1\u0dba",
"Description": "\u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb\u0dba ",
"Author": "\u0d9a\u0dad\u0dd8 ",
"Fullscreen": "\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0dd2\u0dbb\u0dba ",
"Horizontal line": "\u0dad\u0dd2\u0dbb\u0dc3\u0dca \u0d89\u0dbb  ",
"Horizontal space": "\u0dad\u0dd2\u0dbb\u0dc3\u0dca \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0da9",
"Insert\/edit image": "\u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd4\u0dbb\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc3\u0d9a\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"General": "\u0db4\u0ddc\u0daf\u0dd4",
"Advanced": "\u0db4\u0dca\u200d\u0dbb\u0d9c\u0dad",
"Source": "\u0db8\u0dd6\u0dbd\u0dba  ",
"Border": "\u0dc3\u0dd3\u0db8\u0dcf\u0dc0 ",
"Constrain proportions": "\u0dc3\u0d82\u0dbb\u0ddd\u0daf\u0d9a \u0db4\u0dca\u200d\u0dbb\u0db8\u0dcf\u0dab\u0db1",
"Vertical space": "\u0dc3\u0dd2\u0dbb\u0dc3\u0dca \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0da9",
"Image description": "\u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd4\u0dbb\u0dba\u0dda \u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb\u0dba ",
"Style": "\u0dc0\u0dd2\u0dbd\u0dcf\u0dc3\u0dba",
"Dimensions": "\u0db8\u0dcf\u0db1",
"Insert image": "Insert image",
"Insert date\/time": "\u0daf\u0dd2\u0db1\u0dba \/ \u0dc0\u0dda\u0dbd\u0dcf\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Remove link": "Remove link",
"Url": "Url",
"Text to display": "\u0db4\u0dd9\u0dc5 - \u0dc3\u0d82\u0daf\u0dbb\u0dca\u0dc1\u0d9a\u0dba",
"Anchors": "Anchors",
"Insert link": "\u0dc3\u0db6\u0dd0\u0db3\u0dd2\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
"New window": "\u0db1\u0dc0 \u0d9a\u0dc0\u0dd4\u0dc5\u0dd4\u0dc0\u0d9a\u0dca",
"None": "\u0d9a\u0dd2\u0dc3\u0dd2\u0dc0\u0d9a\u0dca \u0db1\u0dd0\u0dad",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u0d89\u0dbd\u0d9a\u0dca\u0d9a\u0dba",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u0dc3\u0db6\u0dd0\u0db3\u0dd2\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Insert\/edit video": "\u0dc0\u0dd3\u0da9\u0dd2\u0dba\u0ddd\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Poster": "\u0db4\u0ddd\u0dc3\u0dca\u0da7\u0dbb\u0dba",
"Alternative source": "\u0dc0\u0dd2\u0d9a\u0dbd\u0dca\u0db4 \u0db8\u0dd6\u0dbd\u0dba",
"Paste your embed code below:": "\u0d94\u0db6\u0d9c\u0dda \u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd6 \u0d9a\u0dda\u0dad\u0dba \u0db4\u0dc4\u0dad\u0dd2\u0db1\u0dca \u0daf\u0db8\u0db1\u0dca\u0db1",
"Insert video": "\u0dc0\u0dd3\u0da9\u0dd2\u0dba\u0ddd\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Embed": "\u0d9a\u0dcf\u0dc0\u0daf\u0dca\u0daf\u0db1\u0dca\u0db1",
"Nonbreaking space": "\u0db1\u0ddc\u0d9a\u0dd0\u0da9\u0dd4\u0dab\u0dd4 \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0dbb",
"Page break": "\u0db4\u0dd2\u0da7\u0dd4 \u0d9a\u0da9\u0db1\u0dba",
"Paste as text": "Paste as text",
"Preview": "\u0db4\u0dd9\u0dbb\u0daf\u0dc3\u0dd4\u0db1",
"Print": "\u0db8\u0dd4\u0daf\u0dca\u200d\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Save": "\u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1",
"Could not find the specified string.": "\u0db1\u0dd2\u0dbb\u0dd6\u0db4\u0dd2\u0dad \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4 \u0dc0\u0dd0\u0dbd \u0dc3\u0ddc\u0dba\u0dcf \u0d9c\u0dad \u0db1\u0ddc\u0dc4\u0dd0\u0d9a\u0dd2 \u0dc0\u0dd2\u0dba",
"Replace": "\u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Next": "\u0db4\u0dc3\u0dd4",
"Whole words": "\u0dc3\u0db8\u0dc3\u0dca\u0dad \u0db4\u0daf",
"Find and replace": "\u0dc3\u0ddc\u0dba\u0dcf \u0db4\u0dc3\u0dd4\u0dc0 \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Replace with": "\u0db8\u0dd9\u0dba \u0dc3\u0db8\u0d9f \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Find": "\u0dc3\u0ddc\u0dba\u0db1\u0dca\u0db1",
"Replace all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd\u0db8 \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Match case": "\u0d9a\u0dcf\u0dbb\u0dab\u0dba \u0d9c\u0dbd\u0db4\u0db1\u0dca\u0db1",
"Prev": "\u0db4\u0dd9\u0dbb",
"Spellcheck": "\u0d85\u0d9a\u0dca\u0dc2\u0dbb \u0dc0\u0dd2\u0db1\u0dca\u200d\u0dba\u0dcf\u0dc3\u0dba \u0db4\u0dbb\u0dd3\u0d9a\u0dca\u0dc2\u0dcf \u0d9a\u0dbb \u0db6\u0dd0\u0dbd\u0dd3\u0db8",
"Finish": "\u0d85\u0dc0\u0dc3\u0db1\u0dca",
"Ignore all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd\u0db8 \u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dbb\u0dd2\u0db1\u0dca\u0db1",
"Ignore": "\u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dd0\u0dbb\u0dd3\u0db8",
"Insert row before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0db4\u0dda\u0dc5\u0dd2\u0dba\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Rows": "\u0db4\u0dda\u0dc5\u0dd2",
"Height": "\u0d8b\u0dc3 ",
"Paste row after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d85\u0db8\u0dd4\u0dab\u0db1\u0dca\u0db1 ",
"Alignment": "\u0db4\u0dd9\u0dc5 \u0d9c\u0dd0\u0dc3\u0dd4\u0db8",
"Column group": "\u0dad\u0dd3\u0dbb\u0dd4 \u0d9a\u0dcf\u0dab\u0dca\u0da9\u0dba",
"Row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba ",
"Insert column before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Split cell": "\u0d9a\u0ddc\u0da7\u0dd4 \u0dc0\u0dd9\u0db1\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"Cell padding": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0db4\u0dd2\u0dbb\u0dc0\u0dd4\u0db8",
"Cell spacing": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d89\u0da9 \u0dc3\u0dd3\u0db8\u0dcf\u0dc0 ",
"Row type": "\u0db4\u0dda\u0dc5\u0dd2\u0dba\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0d9c\u0dba",
"Insert table": "\u0dc0\u0d9c\u0dd4\u0dc0\u0da7 \u0d87\u0dad\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"Body": "\u0db4\u0dca\u200d\u0dbb\u0db0\u0dcf\u0db1 \u0d9a\u0ddc\u0da7\u0dc3",
"Caption": "\u0dba\u0da7\u0dd2 \u0dbd\u0dd2\u0dba\u0db8\u0db1 ",
"Footer": "\u0db4\u0dcf\u0daf\u0d9a\u0dba",
"Delete row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
"Paste row before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d85\u0db8\u0dd4\u0dab\u0db1\u0dca\u0db1 ",
"Scope": "\u0dc0\u0dd2\u0dc2\u0dba\u0db4\u0dae\u0dba",
"Delete table": "\u0dc0\u0d9c\u0dd4\u0dc0 \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
"Header cell": "\u0dc1\u0dd3\u0dbb\u0dca\u0dc2 \u0d9a\u0ddc\u0da7\u0dd4\u0dc0",
"Column": "\u0dad\u0dd3\u0dbb\u0dd4\u0dc0",
"Cell": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0 ",
"Header": "\u0dc1\u0dd3\u0dbb\u0dca\u0dc2\u0d9a\u0dba",
"Cell type": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0d9c\u0dba",
"Copy row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0db4\u0dd2\u0da7\u0db4\u0dad\u0dca \u0d9a\u0dbb\u0d9c\u0db1\u0dca\u0db1 ",
"Row properties": "\u0db4\u0dda\u0dc5\u0dd2\u0dba\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
"Table properties": "\u0dc0\u0d9c\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
"Row group": "\u0db4\u0dda\u0dc5\u0dd2 \u0d9a\u0dcf\u0dab\u0dca\u0da9\u0dba",
"Right": "\u0daf\u0d9a\u0dd4\u0dab",
"Insert column after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"Cols": "\u0dad\u0dd3\u0dbb\u0dd4 ",
"Insert row after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0db4\u0dda\u0dc5\u0dd2\u0dba\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"Width": "\u0db4\u0dc5\u0dbd",
"Cell properties": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
"Left": "\u0dc0\u0db8",
"Cut row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d9a\u0db4\u0dcf\u0d9c\u0db1\u0dca\u0db1 ",
"Delete column": "\u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
"Center": "\u0db8\u0dd0\u0daf",
"Merge cells": "\u0d9a\u0ddc\u0da7\u0dd4 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
"Insert template": "\u0d85\u0da0\u0dca\u0da0\u0dd4\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"Templates": "\u0d85\u0da0\u0dca\u0da0\u0dd4",
"Background color": "\u0db4\u0dc3\u0dd4\u0db6\u0dd2\u0db8\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0dab\u0dba",
"Text color": "\u0db4\u0dd9\u0dc5 \u0dc3\u0da7\u0dc4\u0db1\u0dda \u0dc0\u0dbb\u0dca\u0dab\u0dba",
"Show blocks": "\u0d9a\u0ddc\u0da7\u0dc3\u0dca \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Show invisible characters": "\u0db1\u0ddc\u0db4\u0dd9\u0db1\u0dd9\u0db1 \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4 \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Words: {0}": "\u0dc0\u0da0\u0db1: {0}",
"Insert": "\u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
"File": "\u0d9c\u0ddc\u0db1\u0dd4\u0dc0",
"Edit": "\u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0db4\u0dd9\u0dc5 \u0dc3\u0da7\u0dc4\u0db1\u0dca \u0db6\u0dc4\u0dd4\u0dbd \u0db4\u0dca\u200d\u0dbb\u0daf\u0dda\u0dc1\u0dba. \u0db8\u0dd9\u0db1\u0dd4\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf ALT-F9  \u0d94\u0db6\u0db1\u0dca\u0db1. \u0db8\u0dd9\u0dc0\u0dbd\u0db8\u0dca \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf ALT-F10  \u0d94\u0db6\u0db1\u0dca\u0db1. \u0dc3\u0dc4\u0dba \u0dbd\u0db6\u0dcf\u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf ALT-0  \u0d94\u0db6\u0db1\u0dca\u0db1.",
"Tools": "\u0db8\u0dd9\u0dc0\u0dbd\u0db8\u0dca",
"View": "\u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
"Table": "\u0dc0\u0d9c\u0dd4\u0dc0",
"Format": "\u0dc4\u0dd0\u0da9\u0dad\u0dbd\u0dba"
});editors/tinymce/langs/gl.js000064400000015102152177723720011745 0ustar00tinymce.addI18n('gl',{
"Cut": "Cortar",
"Header 2": "Cabeceira 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador non admite o acceso directo ao portapapeis. Empregue os atallos de teclado Ctrl+X\/C\/V no seu canto.",
"Div": "Div",
"Paste": "Pegar",
"Close": "Pechar",
"Font Family": "Tipo de letra",
"Pre": "Pre",
"Align right": "Ali\u00f1ar \u00e1 dereita",
"New document": "Novo documento",
"Blockquote": "Bloque entre comi\u00f1as",
"Numbered list": "Lista numerada",
"Increase indent": "Aumentar a sangr\u00eda",
"Formats": "Formatos",
"Headers": "Cabeceiras",
"Select all": "Seleccionar todo",
"Header 3": "Cabeceira 3",
"Blocks": "Bloques",
"Undo": "Desfacer",
"Strikethrough": "Riscado",
"Bullet list": "Lista de vi\u00f1etas",
"Header 1": "Cabeceira 1",
"Superscript": "Super\u00edndice",
"Clear formatting": "Limpar o formato",
"Font Sizes": "Tama\u00f1o da letra",
"Subscript": "Sub\u00edndice",
"Header 6": "Cabeceira 6",
"Redo": "Refacer",
"Paragraph": "Par\u00e1grafo",
"Ok": "Aceptar",
"Bold": "Negra",
"Code": "C\u00f3digo",
"Italic": "Cursiva",
"Align center": "Ali\u00f1ar ao centro",
"Header 5": "Cabeceira 5",
"Decrease indent": "Reducir a sangr\u00eda",
"Header 4": "Cabeceira 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Neste momento o pegado est\u00e1 definido en modo de texto simple. Os contidos p\u00e9garanse como texto sen formato ata que se active esta opci\u00f3n.",
"Underline": "Subli\u00f1ado",
"Cancel": "Cancelar",
"Justify": "Xustificar",
"Inline": "En li\u00f1a",
"Copy": "Copiar",
"Align left": "Ali\u00f1ar \u00e1 esquerda",
"Visual aids": "Axudas visuais",
"Lower Greek": "Grega min\u00fascula",
"Square": "Cadrado",
"Default": "Predeterminada",
"Lower Alpha": "Alfa min\u00fascula",
"Circle": "Circulo",
"Disc": "Disco",
"Upper Alpha": "Alfa mai\u00fascula",
"Upper Roman": "Romana mai\u00fascula",
"Lower Roman": "Romana min\u00fascula",
"Name": "Nome",
"Anchor": "Ancoraxe",
"You have unsaved changes are you sure you want to navigate away?": "Ten cambios sen gardar. Confirma que quere sa\u00edr?",
"Restore last draft": "Restaurar o \u00faltimo borrador",
"Special character": "Car\u00e1cter especial",
"Source code": "C\u00f3digo fonte",
"Right to left": "De dereita a esquerda",
"Left to right": "De esquerda a dereita",
"Emoticons": "Emoticonas",
"Robots": "Robots",
"Document properties": "Propiedades do documento",
"Title": "T\u00edtulo",
"Keywords": "Palabras clave",
"Encoding": "Codificaci\u00f3n",
"Description": "Descrici\u00f3n",
"Author": "Autor",
"Fullscreen": "Pantalla completa",
"Horizontal line": "Li\u00f1a horizontal",
"Horizontal space": "Espazo horizontal",
"Insert\/edit image": "Inserir\/editar imaxe",
"General": "Xeral",
"Advanced": "Avanzado",
"Source": "Orixe",
"Border": "Bordo",
"Constrain proportions": "Restrinxir as proporci\u00f3ns",
"Vertical space": "Espazo vertical",
"Image description": "Descrici\u00f3n da imaxe",
"Style": "Estilo",
"Dimensions": "Dimensi\u00f3ns",
"Insert image": "Inserir imaxe",
"Insert date\/time": "Inserir data\/hora",
"Remove link": "Retirar a ligaz\u00f3n",
"Url": "URL",
"Text to display": "Texto que amosar",
"Anchors": "Ancoraxes",
"Insert link": "Inserir ligaz\u00f3n",
"New window": "Nova xanela",
"None": "Ning\u00fan",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "Destino",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Inserir\/editar ligaz\u00f3n",
"Insert\/edit video": "Inserir\/editar v\u00eddeo",
"Poster": "Cartel",
"Alternative source": "Orixe alternativa",
"Paste your embed code below:": "Pegue embaixo o c\u00f3digo integrado:",
"Insert video": "Inserir v\u00eddeo",
"Embed": "Integrado",
"Nonbreaking space": "Espazo irromp\u00edbel",
"Page break": "Quebra de p\u00e1xina",
"Paste as text": "Pegar como texto",
"Preview": "Vista previa",
"Print": "Imprimir",
"Save": "Gardar",
"Could not find the specified string.": "Non foi pos\u00edbel atopar a cadea de texto especificada.",
"Replace": "Substitu\u00edr",
"Next": "Seguinte",
"Whole words": "Palabras completas",
"Find and replace": "Buscar e substitu\u00edr",
"Replace with": "Substitu\u00edr con",
"Find": "Buscar",
"Replace all": "Substitu\u00edr todo",
"Match case": "Distinguir mai\u00fasculas",
"Prev": "Anterior",
"Spellcheck": "Corrector ortogr\u00e1fico",
"Finish": "Rematar",
"Ignore all": "Ignorar todo",
"Ignore": "Ignorar",
"Insert row before": "Inserir unha fila enriba",
"Rows": "Filas",
"Height": "Alto",
"Paste row after": "Pegar fila enriba",
"Alignment": "Ali\u00f1amento",
"Column group": "Grupo de columnas",
"Row": "Fila",
"Insert column before": "Inserir columna \u00e1 esquerda",
"Split cell": "Dividir celas",
"Cell padding": "Marxe interior da cela",
"Cell spacing": "Marxe entre celas",
"Row type": "Tipo de fila",
"Insert table": "Inserir t\u00e1boa",
"Body": "Corpo",
"Caption": "Subt\u00edtulo",
"Footer": "Rodap\u00e9",
"Delete row": "Eliminar fila",
"Paste row before": "Pegar fila embaixo",
"Scope": "\u00c1mbito",
"Delete table": "Eliminar t\u00e1boa",
"Header cell": "Cela de cabeceira",
"Column": "Columna",
"Cell": "Cela",
"Header": "Cabeceira",
"Cell type": "Tipo de cela",
"Copy row": "Copiar fila",
"Row properties": "Propiedades das filas",
"Table properties": "Propiedades da t\u00e1boa",
"Row group": "Grupo de filas",
"Right": "Dereita",
"Insert column after": "Inserir columna \u00e1 dereita",
"Cols": "Cols.",
"Insert row after": "Inserir unha fila embaixo",
"Width": "Largo",
"Cell properties": "Propiedades da cela",
"Left": "Esquerda",
"Cut row": "Cortar fila",
"Delete column": "Eliminar columna",
"Center": "Centro",
"Merge cells": "Combinar celas",
"Insert template": "Inserir modelo",
"Templates": "Modelos",
"Background color": "Cor do fondo",
"Text color": "Cor do texto",
"Show blocks": "Amosar os bloques",
"Show invisible characters": "Amosar caracteres invis\u00edbeis",
"Words: {0}": "Palabras: {0}",
"Insert": "Inserir",
"File": "Ficheiro",
"Edit": "Editar",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto mellorado. Prema ALT-F9 para o men\u00fa. Prema ALT-F10 para a barra de ferramentas. Prema ALT-0 para a axuda",
"Tools": "Ferramentas",
"View": "Ver",
"Table": "T\u00e1boa",
"Format": "Formato"
});editors/tinymce/langs/bs.js000064400000017771152177723720011765 0ustar00tinymce.addI18n('bs',{
"Cut": "Izre\u017ei",
"Heading 5": "Naslov 5",
"Header 2": "Zaglavlje 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 preglednik ne podr\u017eava direktan pristup me\u0111uspremniku (clipboard). Molimo Vas da umjesto toga koristite kratice na tastaturi Ctrl+X\/C\/V.",
"Heading 4": "Naslov 4",
"Div": "Div",
"Heading 2": "Naslov 2",
"Paste": "Zalijepi",
"Close": "Zatvori",
"Font Family": "Vrsta pisma",
"Pre": "Pre",
"Align right": "Poravnaj desno",
"New document": "Novi dokument",
"Blockquote": "Blockquote",
"Numbered list": "Numerisana lista",
"Heading 1": "Naslov 1",
"Headings": "Naslovi",
"Increase indent": "Pove\u0107aj uvla\u010denje",
"Formats": "Formati",
"Headers": "Zaglavlja",
"Select all": "Ozna\u010di sve",
"Header 3": "Zaglavlje 3",
"Blocks": "Blokovi",
"Undo": "Poni\u0161ti",
"Strikethrough": "Crta kroz sredinu",
"Bullet list": "Lista",
"Header 1": "Zaglavlje 1",
"Superscript": "Eksponent",
"Clear formatting": "Ukloni oblikovanje",
"Font Sizes": "Veli\u010dine fonta",
"Subscript": "Indeks",
"Header 6": "Zaglavlje 6",
"Redo": "Vrati",
"Paragraph": "Paragraf",
"Ok": "U redu",
"Bold": "Podebljano",
"Code": "Kod",
"Italic": "Kurziv",
"Align center": "Poravnaj po sredini",
"Header 5": "Zaglavlje 5",
"Heading 6": "Naslov 6",
"Heading 3": "Naslov 3",
"Decrease indent": "Smanji uvla\u010denje",
"Header 4": "Zaglavlje 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Akcija zalijepi od sada lijepi \u010disti tekst. Sadr\u017eaj \u0107e biti zaljepljen kao \u010disti tekst sve dok ne isklju\u010dite ovu opciju.",
"Underline": "Linija ispod",
"Cancel": "Odustani",
"Justify": "Obostrano poravnanje",
"Inline": "Unutra\u0161nje",
"Copy": "Kopiraj",
"Align left": "Poravnaj lijevo",
"Visual aids": "Vizualna pomo\u0107",
"Lower Greek": "Mala gr\u010dka slova",
"Square": "Kvadrat",
"Default": "Zadano",
"Lower Alpha": "Mala slova",
"Circle": "Krug",
"Disc": "Disk",
"Upper Alpha": "Velika slova",
"Upper Roman": "Velika rimska slova",
"Lower Roman": "Mala rimska slova",
"Name": "Ime",
"Anchor": "Sidro",
"You have unsaved changes are you sure you want to navigate away?": "Postoje izmjene koje nisu snimljene, jeste li sigurni da \u017eelite iza\u0107i?",
"Restore last draft": "Vrati posljednju skicu",
"Special character": "Poseban znak",
"Source code": "Izvorni kod",
"B": "B",
"R": "R",
"G": "G",
"Color": "Boja",
"Right to left": "S desna na lijevo",
"Left to right": "S lijeva na desno",
"Emoticons": "Emotikoni",
"Robots": "Roboti pretra\u017eiva\u010da",
"Document properties": "Svojstva dokumenta",
"Title": "Naslov",
"Keywords": "Klju\u010dne rije\u010di",
"Encoding": "Kodna stranica",
"Description": "Opis",
"Author": "Autor",
"Fullscreen": "Cijeli ekran",
"Horizontal line": "Horizontalna linija",
"Horizontal space": "Horizontalan razmak",
"Insert\/edit image": "Ubaci\/izmijeni sliku",
"Insert\/Edit code sample": "Ubaci\/izmijeni uzorak koda",
"General": "Op\u0107enito",
"Advanced": "Napredno",
"Source": "Izvor",
"Border": "Ivica",
"Constrain proportions": "Zadr\u017ei proporcije",
"Vertical space": "Vertikalni razmak",
"Image description": "Opis slike",
"Style": "Stil",
"Dimensions": "Dimenzije",
"Insert image": "Ubaci sliku",
"Zoom in": "Pove\u0107aj",
"Contrast": "Kontrast",
"Back": "Nazad",
"Gamma": "Gamma",
"Flip horizontally": "Obrni horizontalno",
"Resize": "Promjeni veli\u010dinu",
"Sharpen": "Izo\u0161travanje",
"Zoom out": "Smanji",
"Insert image": "Ubaci sliku",
"Apply": "Primijeni",
"Brightness": "Svjetlina",
"Rotate clockwise": "Rotiraj desno",
"Rotate counterclockwise": "Rotiraj lijevo",
"Edit image": "Uredi sliku",
"Color levels": "Nivoi boje",
"Crop": "Obre\u017ei",
"Orientation": "Orijentacija",
"Flip vertically": "Obrni vertikalno",
"Invert": "Invertuj",
"Insert date\/time": "Ubaci datum\/vrijeme",
"Remove link": "Ukloni poveznicu",
"Url": "Url",
"Text to display": "Tekst za prikaz",
"Anchors": "Kra\u0107e poveznice",
"Insert link": "Ubaci poveznicu",
"New window": "Novi prozor",
"None": "Ni\u0161ta",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL koji ste unijeli izgleda da je eksterni link. \u017delite li dodati potrebni http:\/\/ prefiks?",
"Target": "Meta",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL koji ste unijeli izgleda da je adresa e-po\u0161te. \u017delite li dodati potrebni mailto: prefiks?",
"Insert\/edit link": "Umetni\/izmijeni link",
"Insert\/edit video": "Umetni\/izmijeni video",
"Poster": "Poster",
"Alternative source": "Alternativni izvor",
"Paste your embed code below:": "Umetnite va\u0161 kod za ugradnju ispod:",
"Insert video": "Umetni video",
"Embed": "Ugradi",
"Nonbreaking space": "Neprekidaju\u0107i razmak",
"Page break": "Prijelom stranice",
"Paste as text": "Zalijepi kao tekst",
"Preview": "Pregled",
"Print": "Ispis",
"Save": "Spremi",
"Could not find the specified string.": "Tra\u017eeni tekst nije prona\u0111en",
"Replace": "Zamijeni",
"Next": "Sljede\u0107i",
"Whole words": "Cijele rije\u010di",
"Find and replace": "Prona\u0111i i zamijeni",
"Replace with": "Zamijeni sa",
"Find": "Tra\u017ei",
"Replace all": "Zamijeni sve",
"Match case": "Pazi na mala i velika slova",
"Prev": "Prethodni",
"Spellcheck": "Provjeri pravopis",
"Finish": "Zavr\u0161i",
"Ignore all": "Zanemari sve",
"Ignore": "Zanemari",
"Add to Dictionary": "Dodaj u rje\u010dnik",
"Insert row before": "Umetni redak prije",
"Rows": "Redovi",
"Height": "Visina",
"Paste row after": "Zalijepi redak nakon",
"Alignment": "Poravnanje",
"Border color": "Boja ivice",
"Column group": "Grupirane kolone",
"Row": "Redak",
"Insert column before": "Umetni kolonu prije",
"Split cell": "Razdvoji polja",
"Cell padding": "Razmak unutar polja",
"Cell spacing": "Razmak izme\u0111u polja",
"Row type": "Vrsta redka",
"Insert table": "Umetni tablicu",
"Body": "Sadr\u017eaj",
"Caption": "Naslov",
"Footer": "Podno\u017eje",
"Delete row": "Izbri\u0161i redak",
"Paste row before": "Zalijepi redak prije",
"Scope": "Doseg",
"Delete table": "Izbri\u0161i tablicu",
"H Align": "H Poravnavanje",
"Top": "Vrh",
"Header cell": "Polje zaglavlja",
"Column": "Kolona",
"Row group": "Grupirani redovi",
"Cell": "Polje",
"Middle": "Sredina",
"Cell type": "Vrsta polja",
"Copy row": "Kopiraj redak",
"Row properties": "Svojstva redka",
"Table properties": "Svojstva tablice",
"Bottom": "Dno",
"V Align": "V Poravnavanje",
"Header": "Zaglavlje",
"Right": "Desno",
"Insert column after": "Umetni kolonu poslije",
"Cols": "Stupci",
"Insert row after": "Umetni redak poslije",
"Width": "\u0160irina",
"Cell properties": "Svojstva polja",
"Left": "Lijevo",
"Cut row": "Izre\u017ei redak",
"Delete column": "Izbri\u0161i kolonu",
"Center": "Sredina",
"Merge cells": "Spoji polja",
"Insert template": "Umetni predlo\u017eak",
"Templates": "Predlo\u0161ci",
"Background color": "Boja pozadine",
"Custom...": "Prilago\u0111eno...",
"Custom color": "Prilago\u0111ena boja",
"No color": "Bez boje",
"Text color": "Boja teksta",
"Show blocks": "Prika\u017ei blokove",
"Show invisible characters": "Prika\u017ei nevidljive znakove",
"Words: {0}": "Rije\u010di: {0}",
"Insert": "Umetni",
"File": "Datoteka",
"Edit": "Izmijeni",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Pritisni ALT-F9 za izbornik. Pritisni ALT-F10 za alatnu traku. Pritisni ALT-0 za pomo\u0107",
"Tools": "Alati",
"View": "Pogled",
"Table": "Tablica",
"Format": "Format",
"Id": "Id",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id treba da po\u010dinje sa slovom, i pored slova mogu se koristiti samo brojevi, crtice, ta\u010dke, zarezi ili donje crte.",
"Insert/Edit code sample": "Ubaci/Izmijeni primjer koda",
"Language": "Jezik",
"Image": "Image",
"Date/time": "Datum/vrijeme",
"Link": "Link",
"Paste or type a link": "Zalijepi ili unesi link",
"Insert/Edit Media": "Ubaci/Izmijeni medij",
"Media": "Medij",
"Table of Contents": "Sadr\u017eaj"
});editors/tinymce/langs/et.js000064400000014720152177723720011760 0ustar00tinymce.addI18n('et',{
"Cut": "L\u00f5ika",
"Header 2": "Pealkiri 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Sinu veebilehitseja ei toeta otsest ligip\u00e4\u00e4su l\u00f5ikelauale. Palun kasuta selle asemel klaviatuuri kiirk\u00e4sklusi Ctrl+X\/C\/V.",
"Div": "Sektsioon",
"Paste": "Kleebi",
"Close": "Sulge",
"Font Family": "Kirjastiilid",
"Pre": "Eelvormindatud",
"Align right": "Joonda paremale",
"New document": "Uus dokument",
"Blockquote": "Plokktsitaat",
"Numbered list": "J\u00e4rjestatud loend",
"Increase indent": "Suurenda taanet",
"Formats": "Vormingud",
"Headers": "P\u00e4ised",
"Select all": "Vali k\u00f5ik",
"Header 3": "Pealkiri 3",
"Blocks": "Plokid",
"Undo": "V\u00f5ta tagasi",
"Strikethrough": "L\u00e4bikriipsutatud",
"Bullet list": "J\u00e4rjestamata loend",
"Header 1": "Pealkiri 1",
"Superscript": "\u00dclaindeks",
"Clear formatting": "Puhasta vorming",
"Font Sizes": "Kirja suurused",
"Subscript": "Alaindeks",
"Header 6": "Pealkiri 6",
"Redo": "Tee uuesti",
"Paragraph": "L\u00f5ik",
"Ok": "Ok",
"Bold": "Rasvane",
"Code": "Kood",
"Italic": "Kaldkiri",
"Align center": "Joonda keskele",
"Header 5": "Pealkiri 5",
"Decrease indent": "V\u00e4henda taanet",
"Header 4": "Pealkiri 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Asetamine on n\u00fc\u00fcd tekstire\u017eiimis. Sisu asetatakse n\u00fc\u00fcd lihttekstina, kuni sa l\u00fclitad selle valiku v\u00e4lja.",
"Underline": "Allakriipsutatud",
"Cancel": "Katkesta",
"Justify": "Joonda r\u00f6\u00f6pselt",
"Inline": "Reasisene",
"Copy": "Kopeeri",
"Align left": "Joonda vasakule",
"Visual aids": "N\u00e4itevahendid",
"Lower Greek": "Kreeka v\u00e4iket\u00e4hed (\u03b1, \u03b2, \u03b3)",
"Square": "Ruut",
"Default": "Vaikimisi",
"Lower Alpha": "V\u00e4iket\u00e4hed (a, b, c)",
"Circle": "Ring",
"Disc": "Ketas",
"Upper Alpha": "Suurt\u00e4hed (A, B, C)",
"Upper Roman": "Rooma suurt\u00e4hed (I, II, III)",
"Lower Roman": "Rooma v\u00e4iket\u00e4hed (i, ii, iii)",
"Name": "Nimi",
"Anchor": "Ankur",
"You have unsaved changes are you sure you want to navigate away?": "Sul on salvestamata muudatusi. Oled Sa kindel, et soovid mujale navigeeruda?",
"Restore last draft": "Taasta viimane mustand",
"Special character": "Erim\u00e4rk",
"Source code": "L\u00e4htekood",
"Right to left": "Paremalt vasakule",
"Left to right": "Vasakult paremale",
"Emoticons": "Emotikonid",
"Robots": "Robotid",
"Document properties": "Dokumendi omadused",
"Title": "Pealkiri",
"Keywords": "M\u00e4rks\u00f5nad",
"Encoding": "M\u00e4rgistik",
"Description": "Kirjeldus",
"Author": "Autor",
"Fullscreen": "T\u00e4isekraan",
"Horizontal line": "Horisontaaljoon",
"Horizontal space": "Reavahe",
"Insert\/edit image": "Lisa\/muuda pilt",
"General": "\u00dcldine",
"Advanced": "T\u00e4iendavad seaded",
"Source": "Allikas",
"Border": "\u00c4\u00e4ris",
"Constrain proportions": "S\u00e4ilita kuvasuhe",
"Vertical space": "P\u00fcstine vahe",
"Image description": "Pildi kirjeldus",
"Style": "Stiil",
"Dimensions": "M\u00f5\u00f5tmed",
"Insert image": "Lisa pilt",
"Insert date\/time": "Lisa kuup\u00e4ev\/kellaaeg",
"Remove link": "Eemalda link",
"Url": "Viide (url)",
"Text to display": "Kuvatav tekst",
"Anchors": "Ankrud",
"Insert link": "Lisa link",
"New window": "Uus aken",
"None": "Puudub",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "Sihtm\u00e4rk",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Lisa\/muuda link",
"Insert\/edit video": "Lisa\/muuda video",
"Poster": "Lisaja",
"Alternative source": "Teine allikas",
"Paste your embed code below:": "Kleebi oma manustamiskood siia alla:",
"Insert video": "Lisa video",
"Embed": "Manusta",
"Nonbreaking space": "T\u00fchim\u00e4rk (nbsp)",
"Page break": "Lehevahetus",
"Paste as text": "Aseta tekstina",
"Preview": "Eelvaade",
"Print": "Tr\u00fcki",
"Save": "Salvesta",
"Could not find the specified string.": "Ei suutnud leida etteantud s\u00f5net.",
"Replace": "Asenda",
"Next": "J\u00e4rg",
"Whole words": "Terviks\u00f5nad",
"Find and replace": "Otsi ja asenda",
"Replace with": "Asendus",
"Find": "Otsi",
"Replace all": "Asenda k\u00f5ik",
"Match case": "Erista suur- ja v\u00e4iket\u00e4hti",
"Prev": "Eelm",
"Spellcheck": "\u00d5igekirja kontroll",
"Finish": "L\u00f5peta",
"Ignore all": "Eira k\u00f5iki",
"Ignore": "Eira",
"Insert row before": "Lisa rida enne",
"Rows": "Read",
"Height": "K\u00f5rgus",
"Paste row after": "Kleebi rida j\u00e4rele",
"Alignment": "Joondus",
"Column group": "Veergude r\u00fchm",
"Row": "Rida",
"Insert column before": "Lisa tulp enne",
"Split cell": "T\u00fckelda lahter",
"Cell padding": "Lahtri sisu ja tabeli \u00e4\u00e4rise vahe",
"Cell spacing": "Lahtrivahe",
"Row type": "Rea t\u00fc\u00fcp",
"Insert table": "Lisa tabel",
"Body": "P\u00f5hiosa",
"Caption": "Alapealkiri",
"Footer": "Jalus",
"Delete row": "Kustuta rida",
"Paste row before": "Kleebi rida enne",
"Scope": "Ulatus",
"Delete table": "Kustuta tabel",
"Header cell": "P\u00e4islahter",
"Column": "Tulp",
"Cell": "Lahter",
"Header": "P\u00e4is",
"Cell type": "Lahtri t\u00fc\u00fcp",
"Copy row": "Kopeeri rida",
"Row properties": "Rea omadused",
"Table properties": "Tabeli omadused",
"Row group": "Ridade r\u00fchm",
"Right": "Paremal",
"Insert column after": "Lisa tulp j\u00e4rele",
"Cols": "Veerud",
"Insert row after": "Lisa rida j\u00e4rele",
"Width": "Laius",
"Cell properties": "Lahtri omadused",
"Left": "Vasakul",
"Cut row": "L\u00f5ika rida",
"Delete column": "Kustuta tulp",
"Center": "Keskel",
"Merge cells": "\u00dchenda lahtrid",
"Insert template": "Lisa mall",
"Templates": "Mallid",
"Background color": "Tausta v\u00e4rv",
"Text color": "Teksti v\u00e4rv",
"Show blocks": "N\u00e4ita plokke",
"Show invisible characters": "N\u00e4ita peidetud m\u00e4rke",
"Words: {0}": "S\u00f5nu: {0}",
"Insert": "Sisesta",
"File": "Fail",
"Edit": "Muuda",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastatud teksti ala. Men\u00fc\u00fc jaoks vajuta ALT-F9. T\u00f6\u00f6riistariba jaoks vajuta ALT-F10. Abi saamiseks vajuta ALT-0.",
"Tools": "T\u00f6\u00f6riistad",
"View": "Vaade",
"Table": "Tabel",
"Format": "Vorming"
});editors/tinymce/langs/ta.js000064400000057427152177723720011767 0ustar00tinymce.addI18n('ta',{
"Cut": "\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Heading 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5",
"Header 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0ba8\u0b95\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0ba8\u0bc7\u0bb0\u0b9f\u0bbf \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bc8 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb2\u0bbe\u0bb5\u0bbf \u0b86\u0ba4\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b86\u0b95\u0bb5\u0bc7 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bbe\u0ba9 Ctrl+X\/C\/V \u0b87\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0ba4\u0baf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95.",
"Heading 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4",
"Div": "\u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1 (Div)",
"Heading 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2",
"Paste": "\u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Close": "\u0bae\u0bc2\u0b9f\u0bc1\u0b95",
"Font Family": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1 \u0b95\u0bc1\u0b9f\u0bc1\u0bae\u0bcd\u0baa\u0bae\u0bcd",
"Pre": "\u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1 (Pre)",
"Align right": "\u0bb5\u0bb2\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
"New document": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b86\u0bb5\u0ba3\u0bae\u0bcd",
"Blockquote": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bcb\u0bb3\u0bcd",
"Numbered list": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
"Heading 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1",
"Headings": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Increase indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
"Formats": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Headers": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Select all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
"Header 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3",
"Blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd",
"Undo": "\u0bae\u0bc1\u0ba9\u0bcd\u0b9a\u0bc6\u0baf\u0bb2\u0bcd \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
"Strikethrough": "\u0ba8\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
"Bullet list": "\u0baa\u0bca\u0b9f\u0bcd\u0b9f\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f  \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
"Header 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1",
"Superscript": "\u0bae\u0bc7\u0bb2\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
"Clear formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95",
"Font Sizes": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1 \u0b85\u0bb3\u0bb5\u0bc1\u0b95\u0bb3\u0bcd",
"Subscript": "\u0b95\u0bc0\u0bb4\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
"Header 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6",
"Redo": "\u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
"Paragraph": "\u0baa\u0ba4\u0bcd\u0ba4\u0bbf",
"Ok": "\u0b9a\u0bb0\u0bbf",
"Bold": "\u0ba4\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
"Code": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
"Italic": "\u0b9a\u0bbe\u0baf\u0bcd\u0bb5\u0bc1",
"Align center": "\u0bae\u0bc8\u0baf \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
"Header 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5",
"Heading 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6",
"Heading 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3",
"Decrease indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95",
"Header 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1. \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bb5\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
"Underline": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
"Cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
"Justify": "\u0ba8\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
"Inline": "\u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
"Copy": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
"Align left": "\u0b87\u0b9f\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
"Visual aids": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd",
"Lower Greek": "\u0b95\u0bc0\u0bb4\u0bcd \u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd",
"Square": "\u0b9a\u0ba4\u0bc1\u0bb0\u0bae\u0bcd",
"Default": "\u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
"Lower Alpha": "\u0b95\u0bc0\u0bb4\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
"Circle": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bae\u0bcd",
"Disc": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bc1",
"Upper Alpha": "\u0bae\u0bc7\u0bb2\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
"Upper Roman": "\u0bae\u0bc7\u0bb2\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
"Lower Roman": "\u0b95\u0bc0\u0bb4\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0b86\u0ba9\u0ba4\u0bc1 \u0b92\u0bb0\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd; \u0b87\u0ba4\u0ba9\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd, \u0b8e\u0ba3\u0bcd\u0b95\u0bb3\u0bcd, \u0b87\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (-), \u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (.), \u0bae\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0bb1\u0bcd\u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (:) \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (_) \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b87\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd.",
"Name": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
"Anchor": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bbe\u0ba4 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba9; \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bbe\u0bb3\u0bbe?",
"Restore last draft": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
"Special character": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1",
"Source code": "\u0bae\u0bc2\u0bb2 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
"Language": "\u0bae\u0bca\u0bb4\u0bbf",
"Insert\/Edit code sample": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
"Right to left": "\u0bb5\u0bb2\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0b87\u0b9f\u0bae\u0bcd",
"Left to right": "\u0b87\u0b9f\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bb5\u0bb2\u0bae\u0bcd",
"Emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
"Robots": "\u0baa\u0bca\u0bb1\u0bbf\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd (Robots)",
"Document properties": "\u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Title": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
"Keywords": "\u0bae\u0bc1\u0ba4\u0ba9\u0bcd\u0bae\u0bc8\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
"Encoding": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd",
"Description": "\u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
"Author": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb3\u0bb0\u0bcd",
"Fullscreen": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8",
"Horizontal line": "\u0b95\u0bbf\u0b9f\u0bc8 \u0b95\u0bcb\u0b9f\u0bc1",
"Horizontal space": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
"Insert\/edit image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"General": "\u0baa\u0bca\u0ba4\u0bc1",
"Advanced": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
"Source": "\u0bae\u0bc2\u0bb2\u0bae\u0bcd",
"Border": "\u0b95\u0bb0\u0bc8",
"Constrain proportions": "\u0bb5\u0bbf\u0b95\u0bbf\u0ba4\u0bbe\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
"Vertical space": "\u0ba8\u0bc6\u0b9f\u0bc1\u0ba4\u0bb3 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
"Image description": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
"Style": "\u0baa\u0bbe\u0ba3\u0bbf",
"Dimensions": "\u0baa\u0bb0\u0bbf\u0bae\u0bbe\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
"Insert image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Image": "\u0baa\u0b9f\u0bae\u0bcd",
"Zoom in": "\u0baa\u0bc6\u0bb0\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
"Contrast": "\u0ba8\u0bbf\u0bb1\u0bae\u0bbe\u0bb1\u0bc1\u0baa\u0bbe\u0b9f\u0bc1",
"Back": "\u0baa\u0bbf\u0ba9\u0bcd",
"Gamma": "Gamma",
"Flip horizontally": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f\u0bae\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1",
"Resize": "\u0bae\u0bb1\u0bc1\u0b85\u0bb3\u0bb5\u0bbf\u0b9f\u0bc1",
"Sharpen": "\u0b95\u0bc2\u0bb0\u0bcd\u0bae\u0bc8\u0baf\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
"Zoom out": "\u0b9a\u0bbf\u0bb1\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
"Image options": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Apply": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
"Brightness": "\u0b92\u0bb3\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1",
"Rotate clockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1",
"Rotate counterclockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0 \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1",
"Edit image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bca\u0b95\u0bc1",
"Color levels": "\u0bb5\u0ba3\u0bcd\u0ba3 \u0ba8\u0bbf\u0bb2\u0bc8\u0b95\u0bb3\u0bcd",
"Crop": "\u0b9a\u0bc6\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc1",
"Orientation": "\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bae\u0bc8\u0bb5\u0bc1",
"Flip vertically": "\u0b9a\u0bc6\u0b99\u0bcd\u0b95\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1",
"Invert": "\u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1",
"Date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd",
"Insert date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Remove link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
"Url": "\u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
"Text to display": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf\u0baf \u0b89\u0bb0\u0bc8",
"Anchors": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
"Insert link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
"New window": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd",
"None": "\u0b8f\u0ba4\u0bc1\u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bb5\u0bc6\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 (external link) \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 http:\/\/ \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?",
"Paste or type a link": "\u0b92\u0bb0\u0bc1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95",
"Target": "\u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd-\u0b85\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 mailto: \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?",
"Insert\/edit link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"Insert\/edit video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"Media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd",
"Alternative source": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2\u0bae\u0bcd",
"Paste your embed code below:": "\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b9f\u0bcd\u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b95\u0bc0\u0bb4\u0bc7 \u0b92\u0b9f\u0bcd\u0b9f\u0bb5\u0bc1\u0bae\u0bcd:",
"Insert video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Poster": "\u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf",
"Insert\/edit media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"Embed": "\u0b89\u0b9f\u0bcd\u0baa\u0bca\u0ba4\u0bbf",
"Nonbreaking space": "\u0baa\u0bbf\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
"Page break": "\u0baa\u0b95\u0bcd\u0b95 \u0baa\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
"Paste as text": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Preview": "\u0bae\u0bc1\u0ba9\u0bcd\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1",
"Print": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95",
"Save": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95",
"Could not find the specified string.": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f \u0b9a\u0bb0\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
"Replace": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
"Next": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4",
"Whole words": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
"Find and replace": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
"Replace with": "\u0b87\u0ba4\u0ba9\u0bc1\u0b9f\u0ba9\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
"Find": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
"Replace all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
"Match case": "\u0bb5\u0b9f\u0bbf\u0bb5\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0bca\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
"Prev": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf",
"Spellcheck": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
"Finish": "\u0bae\u0bc1\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
"Ignore all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
"Ignore": "\u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
"Add to Dictionary": "\u0b85\u0b95\u0bb0\u0bbe\u0ba4\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
"Insert row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Rows": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"Height": "\u0b89\u0baf\u0bb0\u0bae\u0bcd",
"Paste row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1",
"Border color": "\u0b95\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
"Column group": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
"Row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
"Insert column before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Split cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
"Cell padding": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0ba8\u0bbf\u0bb0\u0baa\u0bcd\u0baa\u0bb2\u0bcd",
"Cell spacing": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
"Row type": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0b95\u0bc8",
"Insert table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Body": "\u0b89\u0b9f\u0bb2\u0bcd",
"Caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
"Footer": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
"Delete row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
"Paste row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Scope": "\u0bb5\u0bb0\u0bc8\u0baf\u0bc6\u0bb2\u0bcd\u0bb2\u0bc8",
"Delete table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
"H Align": "\u0b95\u0bbf (H) \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
"Top": "\u0bae\u0bc7\u0bb2\u0bcd",
"Header cell": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
"Column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
"Row group": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
"Cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
"Middle": "\u0ba8\u0b9f\u0bc1",
"Cell type": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0bb5\u0b95\u0bc8",
"Copy row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
"Row properties": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Table properties": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Bottom": "\u0b95\u0bc0\u0bb4\u0bcd",
"V Align": "\u0b9a\u0bc6 (V) \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
"Header": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
"Right": "\u0bb5\u0bb2\u0bae\u0bcd",
"Insert column after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Cols": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
"Insert row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Width": "\u0b85\u0b95\u0bb2\u0bae\u0bcd",
"Cell properties": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
"Left": "\u0b87\u0b9f\u0bae\u0bcd",
"Cut row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Delete column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
"Center": "\u0bae\u0bc8\u0baf\u0bae\u0bcd",
"Merge cells": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
"Insert template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"Templates": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd",
"Background color": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0ba3\u0bbf \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
"Custom...": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd...",
"Custom color": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
"No color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
"Text color": "\u0b89\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
"Table of Contents": "\u0baa\u0bca\u0bb0\u0bc1\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0bae\u0bcd",
"Show blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Show invisible characters": "\u0b95\u0ba3\u0bcd\u0ba3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
"Words: {0}": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd: {0}",
"Insert": "\u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
"File": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1",
"Edit": "\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-F9 , \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 ALT-F10 , \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0",
"Tools": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd",
"View": "\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1\u0b95",
"Table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
"Format": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1"
});editors/tinymce/langs/sw.js000064400000017321152177723720012001 0ustar00tinymce.addI18n('sw',{
"Cut": "Kata",
"Heading 5": "Kichwa 5",
"Header 2": "Kijajuu 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Kisakuzi chako hakiauniwi kufika kwa clipboard moja kwa moja. Tafadhali tumia njia fupi ya kinanda taipu, kama Ctrl+X\/C\/V.",
"Heading 4": "Kichwa 4",
"Div": "Div",
"Heading 2": "Kichwa 2",
"Paste": "Bandika",
"Close": "Funga",
"Font Family": "Jamii ya fonti",
"Pre": "Iliofomatiwa",
"Align right": "Panga kulia",
"New document": "Waraka mpya",
"Blockquote": "Nukuu",
"Numbered list": "Orodha ya nambari",
"Heading 1": "Kichwa 1",
"Headings": "Vichwa",
"Increase indent": "Ongeza jongezo",
"Formats": "Fomati",
"Headers": "Vijajuu",
"Select all": "Chagua zote",
"Header 3": "Kijajuu 3",
"Blocks": "Matofali",
"Undo": "Tengua",
"Strikethrough": "Mkato ulalo",
"Bullet list": "Orodha ya tobo",
"Header 1": "Kijajuu 1",
"Superscript": "Hati juu",
"Clear formatting": "Safisha fomati",
"Font Sizes": "Ukubwa wa fonti",
"Subscript": "Hati chini",
"Header 6": "Kijajuu 6",
"Redo": "Rudia",
"Paragraph": "Aya",
"Ok": "Ok",
"Bold": "Nene",
"Code": "Kodi",
"Italic": "Italiki",
"Align center": "Panga katikati",
"Header 5": "Kijajuu 5",
"Heading 6": "Kichwa 6",
"Heading 3": "Kichwa 3",
"Decrease indent": "Punguza jongezo",
"Header 4": "Kijajuu 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Bandika sasa iko katika modi ya matini ghafi. Yaliyomo yatabandikwa kama matini ghafi mpaka utakapo zima chaguo hili.",
"Underline": "Pigia mstari",
"Cancel": "Ghairi",
"Justify": "Sawazisha",
"Inline": "Inline",
"Copy": "Nakili",
"Align left": "Panga kushoto",
"Visual aids": "Misaada ya kuona",
"Lower Greek": "Herufi ndogo za kigiriki",
"Square": "Mraba",
"Default": "Difoti",
"Lower Alpha": "Herufi ndogo",
"Circle": "Duara",
"Disc": "Nukta",
"Upper Alpha": "Herufi kubwa",
"Upper Roman": "Herufi kubwa za kirumi",
"Lower Roman": "Herufi ndogo za kirumi",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Kitambulisho kinapaswa kuanza na herufi kufwatiwa na maherufi, manambari, madeshi, vitone, minukta pacha au vistari chini pekee.",
"Name": "Jina",
"Anchor": "Nanga",
"Id": "Kitambulisho",
"You have unsaved changes are you sure you want to navigate away?": "Uko na mabadilisho ambayo hujayahifadhi. Una hakika unataka kuwacha?",
"Restore last draft": "Rejesha mswadajaribio wa mwisho",
"Special character": "Kikambo maalum",
"Source code": "Chanzo",
"Language": "Lugha",
"Insert\/Edit code sample": "Ingiza\/hariri mfano wa kodi",
"B": "B",
"R": "R",
"G": "G",
"Color": "Rangi",
"Right to left": "Kulia-kushoto",
"Left to right": "Kushoto-kulia",
"Emoticons": "Emoticons",
"Robots": "Roboti",
"Document properties": "Sifa za waraka",
"Title": "Kichwa",
"Keywords": "Maneno misingi",
"Encoding": "Usimbaji",
"Description": "Fafanuo",
"Author": "Mwandishi",
"Fullscreen": "Skrini kamili",
"Horizontal line": "Mstari mlalo",
"Horizontal space": "Nafasi mlalo",
"Insert\/edit image": "Ingiza\/hariri picha",
"General": "Ujumla",
"Advanced": "Hali ya juu",
"Source": "Kodi ya chanzo",
"Border": "Mkingo",
"Constrain proportions": "Lazimisha uwiano",
"Vertical space": "Nafasi wima",
"Image description": "Fafanuo la picha",
"Style": "Mtindo",
"Dimensions": "Kipimo",
"Insert image": "Ingiza picha",
"Image": "Picha",
"Zoom in": "Kuza zaidi",
"Contrast": "Ulinganuzi",
"Back": "Nyuma",
"Gamma": "Gamma",
"Flip horizontally": "Geuza mlalo",
"Resize": "Badilisha ukubwa",
"Sharpen": "Chonga",
"Zoom out": "Fifiza",
"Image options": "Machaguo ya picha",
"Apply": "Omba",
"Brightness": "Mwangaza",
"Rotate clockwise": "Zungusha mwelekeo saa",
"Rotate counterclockwise": "Zungusha mwelekeo kinyume cha saa",
"Edit image": "Hariri",
"Color levels": "Viwango vya rangi",
"Crop": "Puna",
"Orientation": "Uelekeo",
"Flip vertically": "Geuza wima",
"Invert": "Pindua",
"Date\/time": "Tarehe\/saa",
"Insert date\/time": "Ingiza tarehe\/saa",
"Remove link": "Ondoa kiungo",
"Url": "URL",
"Text to display": "Matini ya kuonyesha",
"Anchors": "Mananga",
"Insert link": "Ingiza kiungo",
"Link": "Kiungo",
"New window": "Dirisha jipya",
"None": "Hakuna",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL ulioingiza unaonekana ni kama kiungo cha nje. Unataka kuongeza prefix inayohitajika, ambayo ni http:\/\/ ?",
"Paste or type a link": "Bandika au kuchapa kiungo",
"Target": "Lengo",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL ulioingiza unaonekana ni kama anwani ya barua pepe. Unataka kuongeza prefix inayohitajika, ambayo ni mailto: ?",
"Insert\/edit link": "Ingiza\/hariri kiungo",
"Insert\/edit video": "Ingiza\/hariri video",
"Media": "Midia",
"Alternative source": "Chanzo cha mbadala",
"Paste your embed code below:": "Bandika kodi yako ya kupachika hapo chini:",
"Insert video": "Ingiza video",
"Poster": "Bando",
"Insert\/edit media": "Ingiza\/hariri midia",
"Embed": "Pachika",
"Nonbreaking space": "Nafasi fungamanishi",
"Page break": "Kigawa kurasa",
"Paste as text": "Bandika kama matini",
"Preview": "Hakikisho",
"Print": "Chapisha",
"Save": "Hifadhi",
"Could not find the specified string.": "Haikuweza kupata tungo lililoelezwa.",
"Replace": "Badilisha",
"Next": "Ifuatayo",
"Whole words": "Maneno kamili",
"Find and replace": "Tafuta na badilisha",
"Replace with": "Badilisha na",
"Find": "Tafuta",
"Replace all": "Badilisha zote",
"Match case": "Tahadhari herufi ndogo\/kubwa",
"Prev": "Iliopita",
"Spellcheck": "Ukaguzi tahajia",
"Finish": "Maliza",
"Ignore all": "Puuza zote",
"Ignore": "Puuza",
"Add to Dictionary": "Ongeza kwa kamusi",
"Insert row before": "Ingiza safumlalo kabla",
"Rows": "Masafumlalo",
"Height": "Urefu",
"Paste row after": "Bandika safumlalo baada",
"Alignment": "Mpangilio",
"Border color": "Rangi ya mkingo",
"Column group": "Kikundi cha safuwima",
"Row": "Safumlalo",
"Insert column before": "Ingiza safuwima kabla",
"Split cell": "Bainisha seli",
"Cell padding": "Pedi ya seli",
"Cell spacing": "Nafasi ya seli",
"Row type": "Aina ya safumlalo",
"Insert table": "Ingiza jedwali",
"Body": "Mwili",
"Caption": "Manukuu",
"Footer": "Kijachini",
"Delete row": "Futa safumlalo",
"Paste row before": "Bandika safumlalo kabla",
"Scope": "Wigo",
"Delete table": "Futa jedwali",
"H Align": "Pangilia mlalo",
"Top": "Juu",
"Header cell": "Seli ya kijajuu",
"Column": "Safuwima",
"Row group": "Kikundi cha safumlalo",
"Cell": "Seli",
"Middle": "Katikati",
"Cell type": "Aina ya seli",
"Copy row": "Nakili safumlalo",
"Row properties": "Mali ya safumlalo",
"Table properties": "Masifa ya jedwali",
"Bottom": "Chini",
"V Align": "Pangilia wima",
"Header": "Kijajuu",
"Right": "Kulia",
"Insert column after": "Ingiza safuwima baada",
"Cols": "Masafuwima",
"Insert row after": "Ingiza safumlalo baada",
"Width": "Upana",
"Cell properties": "Mali ya seli",
"Left": "Kushoto",
"Cut row": "Kata safumlalo",
"Delete column": "Futa safuwima",
"Center": "Katikati",
"Merge cells": "Unganisha maseli",
"Insert template": "Ingiza templeti",
"Templates": "Templeti",
"Background color": "Rangi ya usuli",
"Custom...": "Desturi...",
"Custom color": "Rangi ya desturi",
"No color": "Hakuna rangi",
"Text color": "Rangi ya matini",
"Table of Contents": "Jedwali la yaliyomo",
"Show blocks": "Onyesha matofali",
"Show invisible characters": "Onyesha vibambo visivyoonekana",
"Words: {0}": "Maneno: {0}",
"Insert": "Ingiza",
"File": "Faili",
"Edit": "Hariri picha",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Eneo la matini tondoti. Bofya ALT-F9 kwa menyu. Bofya ALT-F10 kwa upauzana. Bofya ALT-0 kwa usaidizi",
"Tools": "Zana",
"View": "Mtazamo",
"Table": "Jedwali",
"Format": "Fomati",
});editors/tinymce/langs/uk.js000064400000056553152177723720012001 0ustar00tinymce.addI18n('uk',{
"Cut": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",
"Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
"Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043f\u0440\u044f\u043c\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0456\u043d\u0443. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Ctrl+X\/C\/V \u0437\u0430\u043c\u0456\u0441\u0442\u044c \u0441\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044f \u043a\u043b\u0430\u0432\u0456\u0448.",
"Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
"Div": "\u0411\u043b\u043e\u043a",
"Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
"Close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
"Font Family": "\u0428\u0440\u0438\u0444\u0442 \u0437\u043c\u0456\u0441\u0442\u0443",
"Pre": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0454 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f",
"Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"New document": "\u041d\u043e\u0432\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
"Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430",
"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
"Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
"Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Increase indent": "\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438  \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438",
"Headers": "Headers",
"Select all": "\u0412\u0438\u0434\u0456\u043b\u0438\u0442\u0438 \u0432\u0441\u0435",
"Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
"Blocks": "\u0411\u043b\u043e\u043a\u0438",
"Undo": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
"Strikethrough": "\u0417\u0430\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
"Bullet list": "\u041d\u0435\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
"Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u0456\u043d\u0434\u0435\u043a\u0441",
"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f",
"Font Sizes": "\u0420\u043e\u0437\u043c\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443",
"Subscript": "\u041d\u0438\u0436\u043d\u0456\u0439 \u0456\u043d\u0434\u0435\u043a\u0441",
"Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
"Redo": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438",
"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
"Ok": "\u0413\u0430\u0440\u0430\u0437\u0434",
"Bold": "\u0416\u0438\u0440\u043d\u0438\u0439",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
"Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
"Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
"Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
"Decrease indent": "\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
"Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0434\u0456\u0439\u0441\u043d\u044e\u0454\u0442\u044c\u0441\u044f \u0443 \u0432\u0438\u0433\u043b\u044f\u0434\u0456 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u043f\u043e\u043a\u0438 \u043d\u0435 \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438 \u0434\u0430\u043d\u0443 \u043e\u043f\u0446\u0456\u044e.",
"Underline": "\u041f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
"Cancel": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
"Justify": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
"Inline": "\u0412\u0431\u0443\u0434\u043e\u0432\u0430\u043d\u0456",
"Copy": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438",
"Align left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Visual aids": "\u041d\u0430\u043e\u0447\u043d\u0456 \u043f\u0440\u0438\u043b\u0430\u0434\u0434\u044f",
"Lower Greek": "\u041c\u0430\u043b\u0456 \u0433\u0440\u0435\u0446\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u0438",
"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0439",
"Lower Alpha": "\u041c\u0430\u043b\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0456",
"Disc": "\u041a\u0440\u0443\u0433\u0438",
"Upper Alpha": "\u0412\u0435\u043b\u0438\u043a\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
"Upper Roman": "\u0420\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438",
"Lower Roman": "\u041c\u0430\u043b\u0456 \u0440\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u041a\u043e\u0434 \u043c\u0430\u0454 \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u043b\u0456\u0442\u0435\u0440\u0438 \u0456 \u043c\u043e\u0436\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043b\u0438\u0448\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0438 \u043b\u0456\u0442\u0435\u0440, \u0446\u0438\u0444\u0440, \u0434\u0435\u0444\u0456\u0441\u0443, \u043a\u0440\u0430\u043f\u043a\u0438, \u043a\u043e\u043c\u0438 \u0430\u0431\u043e \u043d\u0438\u0436\u043d\u044c\u043e\u0433\u043e \u043f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f.",
"Name": "\u041d\u0430\u0437\u0432\u0430",
"Anchor": "\u042f\u043a\u0456\u0440",
"Id": "\u041a\u043e\u0434",
"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0412\u0430\u0441 \u0454 \u043d\u0435\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0437\u043c\u0456\u043d\u0438. \u0412\u0438 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0449\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u043f\u0456\u0442\u0438?",
"Restore last draft": "\u0412\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043e\u0441\u0442\u0430\u043d\u043d\u044c\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443",
"Special character": "\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438",
"Source code": "\u0412\u0438\u0445\u0456\u0434\u043d\u0438\u0439 \u043a\u043e\u0434",
"Language": "\u041c\u043e\u0432\u0430",
"Insert\/Edit code sample": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u043d\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u043a\u043e\u0434\u0443",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u043a\u043e\u043b\u0456\u0440",
"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0456\u0432\u043e",
"Left to right": "\u0417\u043b\u0456\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
"Emoticons": "\u0415\u043c\u043e\u0446\u0456\u0457",
"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438",
"Document properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0456 \u0441\u043b\u043e\u0432\u0430",
"Encoding": "\u041a\u043e\u0434\u0443\u0432\u0430\u043d\u043d\u044f",
"Description": "\u041e\u043f\u0438\u0441",
"Author": "\u0410\u0432\u0442\u043e\u0440",
"Fullscreen": "\u041f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c",
"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430 \u043b\u0456\u043d\u0456\u044f",
"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"General": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0456",
"Advanced": "\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u0456",
"Source": "\u0414\u0436\u0435\u0440\u0435\u043b\u043e",
"Border": "\u041c\u0435\u0436\u0430",
"Constrain proportions": "\u0417\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0456\u0457",
"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
"Image description": "\u041e\u043f\u0438\u0441 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Style": "\u0421\u0442\u0438\u043b\u044c",
"Dimensions": "\u0420\u043e\u0437\u043c\u0456\u0440",
"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Image": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Zoom in": "\u041d\u0430\u0431\u043b\u0438\u0437\u0438\u0442\u0438",
"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442",
"Back": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f",
"Gamma": "\u0413\u0430\u043c\u043c\u0430",
"Flip horizontally": "\u0412\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0456",
"Resize": "\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440",
"Sharpen": "\u0427\u0456\u0442\u043a\u0456\u0441\u0442\u044c",
"Zoom out": "\u0412\u0456\u0434\u0434\u0430\u043b\u0438\u0442\u0438",
"Image options": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Apply": "\u0417\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u0442\u0438",
"Brightness": "\u042f\u0441\u043a\u0440\u0430\u0432\u0456\u0441\u0442\u044c",
"Rotate clockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u0437\u0430 \u0433\u043e\u0434\u0438\u043d\u043d\u0438\u043a\u043e\u0432\u043e\u044e \u0441\u0442\u0440\u0456\u043b\u043a\u043e\u044e",
"Rotate counterclockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u043f\u0440\u043e\u0442\u0438 \u0433\u043e\u0434\u0438\u043d\u043d\u0438\u043a\u043e\u0432\u043e\u0457 \u0441\u0442\u0440\u0456\u043b\u043a\u0438",
"Edit image": "\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Color levels": "\u0420\u0456\u0432\u043d\u0456 \u043a\u043e\u043b\u044c\u043e\u0440\u0456\u0432",
"Crop": "\u041e\u0431\u0440\u0456\u0437\u0430\u0442\u0438",
"Orientation": "\u041e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u044f",
"Flip vertically": "\u0412\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0456",
"Invert": "\u0406\u043d\u0432\u0435\u0440\u0441\u0456\u044f",
"Date\/time": "\u0414\u0430\u0442\u0430\/\u0447\u0430\u0441",
"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443\/\u0447\u0430\u0441",
"Remove link": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"Url": "\u0410\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"Text to display": "\u0422\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Anchors": "\u042f\u043a\u043e\u0440\u0456",
"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"Link": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"New window": "\u0423 \u043d\u043e\u0432\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456",
"None": "\u041d\u0456",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u0454 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 http:\/\/ \u043f\u0440\u0435\u0444\u0456\u043a\u0441?",
"Paste or type a link": "\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u0430\u0431\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"Target": "\u0412\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 mailto: \u043f\u0440\u0435\u0444\u0456\u043a\u0441?",
"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
"Media": "\u041c\u0435\u0434\u0456\u0430\u0434\u0430\u043d\u0456",
"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0435 \u0434\u0436\u0435\u0440\u0435\u043b\u043e",
"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0447\u0435:",
"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
"Poster": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
"Insert\/edit media": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0430\u0443\u0434\u0456\u043e",
"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438",
"Nonbreaking space": "\u041d\u0435\u0440\u043e\u0437\u0440\u0438\u0432\u043d\u0438\u0439 \u043f\u0440\u043e\u0431\u0456\u043b",
"Page break": "\u0420\u043e\u0437\u0440\u0438\u0432 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438",
"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u044f\u043a \u0442\u0435\u043a\u0441\u0442",
"Preview": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434",
"Print": "\u0414\u0440\u0443\u043a\u0443\u0432\u0430\u0442\u0438",
"Save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",
"Could not find the specified string.": "\u0412\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e",
"Replace": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438",
"Next": "\u0412\u043d\u0438\u0437",
"Whole words": "\u0426\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430",
"Find and replace": "\u041f\u043e\u0448\u0443\u043a \u0456 \u0437\u0430\u043c\u0456\u043d\u0430",
"Replace with": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u043d\u0430",
"Find": "\u0417\u043d\u0430\u0439\u0442\u0438",
"Replace all": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u0432\u0441\u0435",
"Match case": "\u0412\u0440\u0430\u0445\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0433\u0456\u0441\u0442\u0440",
"Prev": "\u0412\u0433\u043e\u0440\u0443",
"Spellcheck": "\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u0457",
"Finish": "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438",
"Ignore all": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0435",
"Ignore": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438",
"Add to Dictionary": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0434\u043e \u0421\u043b\u043e\u0432\u043d\u0438\u043a\u0430",
"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
"Rows": "\u0420\u044f\u0434\u043a\u0438",
"Height": "\u0412\u0438\u0441\u043e\u0442\u0430",
"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443",
"Alignment": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
"Border color": "\u043a\u043e\u043b\u0456\u0440 \u0440\u0430\u043c\u043a\u0438",
"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u0442\u043e\u0432\u043f\u0446\u0456\u0432",
"Row": "\u0420\u044f\u0434\u043e\u043a",
"Insert column before": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043b\u0456\u0432\u043e\u0440\u0443\u0447",
"Split cell": "\u0420\u043e\u0437\u0431\u0438\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0443",
"Cell padding": "\u041f\u043e\u043b\u044f \u043a\u043e\u043c\u0456\u0440\u043e\u043a",
"Cell spacing": "\u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u043c\u0456\u0436 \u043a\u043e\u043c\u0456\u0440\u043a\u0430\u043c\u0438",
"Row type": "\u0422\u0438\u043f \u0440\u044f\u0434\u043a\u0430",
"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
"Body": "\u0422\u0456\u043b\u043e",
"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Footer": "\u041d\u0438\u0436\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b",
"Delete row": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
"Scope": "\u0421\u0444\u0435\u0440\u0430",
"Delete table": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
"H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0435  \u0432\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
"Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u044f\u0434\u043a\u0456\u0432",
"Cell": "\u041a\u043e\u043c\u0456\u0440\u043a\u0430",
"Middle": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
"Cell type": "\u0422\u0438\u043f \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
"Copy row": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0440\u044f\u0434\u043a\u0430",
"Table properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0442\u0430\u0431\u043b\u0438\u0446\u0456",
"Bottom": "\u041f\u043e \u043d\u0438\u0436\u043d\u044c\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0435 \u0432\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
"Header": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b",
"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Insert column after": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043f\u0440\u0430\u0432\u043e\u0440\u0443\u0447",
"Cols": "\u0421\u0442\u043e\u0432\u043f\u0446\u0456",
"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443",
"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
"Left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
"Cut row": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
"Delete column": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
"Merge cells": "\u041e\u0431'\u0454\u0434\u043d\u0430\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
"Background color": "\u041a\u043e\u043b\u0456\u0440 \u0444\u043e\u043d\u0443",
"Custom...": "\u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044c\u043a\u0438\u0439",
"Custom color": "\u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u0456\u0440",
"No color": "\u0431\u0435\u0437 \u043a\u043e\u043b\u044c\u043e\u0440\u0443",
"Text color": "\u041a\u043e\u043b\u0456\u0440 \u0442\u0435\u043a\u0441\u0442\u0443",
"Table of Contents": "\u0417\u043c\u0456\u0441\u0442",
"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0431\u043b\u043e\u043a\u0438",
"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438",
"Words: {0}": "\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u043b\u0456\u0432: {0}",
"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
"File": "\u0424\u0430\u0439\u043b",
"Edit": "\u0417\u043c\u0456\u043d\u0438\u0442\u0438",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-F9 \u0449\u043e\u0431 \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438 \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432, ALT-0 \u0434\u043b\u044f \u0432\u0438\u043a\u043b\u0438\u043a\u0443 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0438.",
"Tools": "\u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438",
"View": "\u0412\u0438\u0433\u043b\u044f\u0434",
"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f",
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
});
editors/tinymce/langs/de.js000064400000021260152177723720011735 0ustar00tinymce.addI18n('de',{
"Cut": "Ausschneiden",
"Heading 5": "\u00dcberschrift 5",
"Header 2": "\u00dcberschrift 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X \/ C \/ V Tastenkombinationen.",
"Heading 4": "\u00dcberschrift 4",
"Div": "Textblock",
"Heading 2": "\u00dcberschrift 2",
"Paste": "Einf\u00fcgen",
"Close": "Schlie\u00dfen",
"Font Family": "Schriftart",
"Pre": "Vorformatierter Text",
"Align right": "Rechtsb\u00fcndig ausrichten",
"New document": "Neues Dokument",
"Blockquote": "Zitat",
"Numbered list": "Nummerierte Liste",
"Heading 1": "\u00dcberschrift 1",
"Headings": "\u00dcberschriften",
"Increase indent": "Einzug vergr\u00f6\u00dfern",
"Formats": "Formate",
"Headers": "\u00dcberschriften",
"Select all": "Alles ausw\u00e4hlen",
"Header 3": "\u00dcberschrift 3",
"Blocks": "Absatzformate",
"Undo": "R\u00fcckg\u00e4ngig",
"Strikethrough": "Durchgestrichen",
"Bullet list": "Aufz\u00e4hlung",
"Header 1": "\u00dcberschrift 1",
"Superscript": "Hochgestellt",
"Clear formatting": "Formatierung entfernen",
"Font Sizes": "Schriftgr\u00f6\u00dfe",
"Subscript": "Tiefgestellt",
"Header 6": "\u00dcberschrift 6",
"Redo": "Wiederholen",
"Paragraph": "Absatz",
"Ok": "Ok",
"Bold": "Fett",
"Code": "Quelltext",
"Italic": "Kursiv",
"Align center": "Zentriert ausrichten",
"Header 5": "\u00dcberschrift 5",
"Heading 6": "\u00dcberschrift 6",
"Heading 3": "\u00dcberschrift 3",
"Decrease indent": "Einzug verkleinern",
"Header 4": "\u00dcberschrift 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!",
"Underline": "Unterstrichen",
"Cancel": "Abbrechen",
"Justify": "Blocksatz",
"Inline": "Zeichenformate",
"Copy": "Kopieren",
"Align left": "Linksb\u00fcndig ausrichten",
"Visual aids": "Visuelle Hilfen",
"Lower Greek": "Griechische Kleinbuchstaben",
"Square": "Quadrat",
"Default": "Standard",
"Lower Alpha": "Kleinbuchstaben",
"Circle": "Kreis",
"Disc": "Punkt",
"Upper Alpha": "Gro\u00dfbuchstaben",
"Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)",
"Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Die Kennung sollte mit einem Buchstaben anfangen. Nachfolgend nur Buchstaben, Zahlen, Striche (Minus), Punkte, Kommas und Unterstriche.",
"Name": "Name",
"Anchor": "Textmarke",
"Id": "Kennung",
"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?",
"Restore last draft": "Letzten Entwurf wiederherstellen",
"Special character": "Sonderzeichen",
"Source code": "Quelltext",
"Language": "Sprache",
"Insert\/Edit code sample": "Codebeispiel einf\u00fcgen\/bearbeiten",
"B": "B",
"R": "R",
"G": "G",
"Color": "Farbe",
"Right to left": "Von rechts nach links",
"Left to right": "Von links nach rechts",
"Emoticons": "Emoticons",
"Robots": "Robots",
"Document properties": "Dokumenteigenschaften",
"Title": "Titel",
"Keywords": "Sch\u00fcsselw\u00f6rter",
"Encoding": "Zeichenkodierung",
"Description": "Beschreibung",
"Author": "Verfasser",
"Fullscreen": "Vollbild",
"Horizontal line": "Horizontale Linie",
"Horizontal space": "Horizontaler Abstand",
"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten",
"General": "Allgemein",
"Advanced": "Erweitert",
"Source": "Quelle",
"Border": "Rahmen",
"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
"Vertical space": "Vertikaler Abstand",
"Image description": "Bildbeschreibung",
"Style": "Stil",
"Dimensions": "Abmessungen",
"Insert image": "Bild einf\u00fcgen",
"Image": "Bild",
"Zoom in": "Ansicht vergr\u00f6\u00dfern",
"Contrast": "Kontrast",
"Back": "Zur\u00fcck",
"Gamma": "Gamma",
"Flip horizontally": "Horizontal spiegeln",
"Resize": "Skalieren",
"Sharpen": "Sch\u00e4rfen",
"Zoom out": "Ansicht verkleinern",
"Image options": "Bildeigenschaften",
"Apply": "Anwenden",
"Brightness": "Helligkeit",
"Rotate clockwise": "Im Uhrzeigersinn drehen",
"Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen",
"Edit image": "Bild bearbeiten",
"Color levels": "Farbwerte",
"Crop": "Bescheiden",
"Orientation": "Ausrichtung",
"Flip vertically": "Vertikal spiegeln",
"Invert": "Invertieren",
"Date\/time": "Datum\/Uhrzeit",
"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ",
"Remove link": "Link entfernen",
"Url": "URL",
"Text to display": "Anzuzeigender Text",
"Anchors": "Textmarken",
"Insert link": "Link einf\u00fcgen",
"Link": "Link",
"New window": "Neues Fenster",
"None": "Keine",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?",
"Paste or type a link": "Link einf\u00fcgen oder eintippen",
"Target": "Ziel",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?",
"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
"Media": "Medium",
"Alternative source": "Alternative Quelle",
"Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:",
"Insert video": "Video einf\u00fcgen",
"Poster": "Poster",
"Insert\/edit media": "Medien einf\u00fcgen\/bearbeiten",
"Embed": "Einbetten",
"Nonbreaking space": "Gesch\u00fctztes Leerzeichen",
"Page break": "Seitenumbruch",
"Paste as text": "Als Text einf\u00fcgen",
"Preview": "Vorschau",
"Print": "Drucken",
"Save": "Speichern",
"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.",
"Replace": "Ersetzen",
"Next": "Weiter",
"Whole words": "Nur ganze W\u00f6rter",
"Find and replace": "Suchen und ersetzen",
"Replace with": "Ersetzen durch",
"Find": "Suchen",
"Replace all": "Alles ersetzen",
"Match case": "Gro\u00df-\/Kleinschreibung beachten",
"Prev": "Zur\u00fcck",
"Spellcheck": "Rechtschreibpr\u00fcfung",
"Finish": "Ende",
"Ignore all": "Alles Ignorieren",
"Ignore": "Ignorieren",
"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen",
"Insert row before": "Neue Zeile davor einf\u00fcgen ",
"Rows": "Zeilen",
"Height": "H\u00f6he",
"Paste row after": "Zeile danach einf\u00fcgen",
"Alignment": "Ausrichtung",
"Border color": "Rahmenfarbe",
"Column group": "Spaltengruppe",
"Row": "Zeile",
"Insert column before": "Neue Spalte davor einf\u00fcgen",
"Split cell": "Zelle aufteilen",
"Cell padding": "Zelleninnenabstand",
"Cell spacing": "Zellenabstand",
"Row type": "Zeilentyp",
"Insert table": "Tabelle einf\u00fcgen",
"Body": "Inhalt",
"Caption": "Beschriftung",
"Footer": "Fu\u00dfzeile",
"Delete row": "Zeile l\u00f6schen",
"Paste row before": "Zeile davor einf\u00fcgen",
"Scope": "G\u00fcltigkeitsbereich",
"Delete table": "Tabelle l\u00f6schen",
"H Align": "Horizontale Ausrichtung",
"Top": "Oben",
"Header cell": "Kopfzelle",
"Column": "Spalte",
"Row group": "Zeilengruppe",
"Cell": "Zelle",
"Middle": "Mitte",
"Cell type": "Zellentyp",
"Copy row": "Zeile kopieren",
"Row properties": "Zeileneigenschaften",
"Table properties": "Tabelleneigenschaften",
"Bottom": "Unten",
"V Align": "Vertikale Ausrichtung",
"Header": "Kopfzeile",
"Right": "Rechtsb\u00fcndig",
"Insert column after": "Neue Spalte danach einf\u00fcgen",
"Cols": "Spalten",
"Insert row after": "Neue Zeile danach einf\u00fcgen",
"Width": "Breite",
"Cell properties": "Zelleneigenschaften",
"Left": "Linksb\u00fcndig",
"Cut row": "Zeile ausschneiden",
"Delete column": "Spalte l\u00f6schen",
"Center": "Zentriert",
"Merge cells": "Zellen verbinden",
"Insert template": "Vorlage einf\u00fcgen ",
"Templates": "Vorlagen",
"Background color": "Hintergrundfarbe",
"Custom...": "Benutzerdefiniert...",
"Custom color": "Benutzerdefinierte Farbe",
"No color": "Keine Farbe",
"Text color": "Textfarbe",
"Table of Contents": "Inhaltsverzeichnis",
"Show blocks": "Bl\u00f6cke anzeigen",
"Show invisible characters": "Unsichtbare Zeichen anzeigen",
"Words: {0}": "W\u00f6rter: {0}",
"Insert": "Einf\u00fcgen",
"File": "Datei",
"Edit": "Bearbeiten",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
"Tools": "Werkzeuge",
"View": "Ansicht",
"Table": "Tabelle",
"Format": "Format"
});
editors/tinymce/langs/lv.js000064400000017646152177723720012003 0ustar00tinymce.addI18n('lv',{
"Cut": "Izgriezt",
"Header 2": "Otr\u0101 l\u012bme\u0146a virsraksts",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "J\u016bsu p\u0101rl\u016bkprogramma neatbalsta piek\u013cuvi starpliktuvei. L\u016bdzu izmantojiet Ctrl+X\/C\/V klaviat\u016bras sa\u012bsnes.",
"Div": "Div elements",
"Paste": "Iel\u012bm\u0113t",
"Close": "Aizv\u0113rt",
"Font Family": "Font Family",
"Pre": "Pre elements",
"Align right": "L\u012bdzin\u0101t pa labi",
"New document": "Jauns dokuments",
"Blockquote": "Cit\u0101ts",
"Numbered list": "Numur\u0113ts saraksts",
"Increase indent": "Palielin\u0101t atk\u0101pi",
"Formats": "Form\u0101ti",
"Headers": "Virsraksti",
"Select all": "Iez\u012bm\u0113t",
"Header 3": "Tre\u0161\u0101 l\u012bme\u0146a virsraksts",
"Blocks": "Bloka elements",
"Undo": "Atsaukt",
"Strikethrough": "P\u0101rsv\u012btrot",
"Bullet list": "Nenumuer\u0113ts saraksts",
"Header 1": "Pirm\u0101 l\u012bme\u0146a virsraksts",
"Superscript": "Aug\u0161raksts",
"Clear formatting": "No\u0146emt format\u0113jumu",
"Font Sizes": "Font Sizes",
"Subscript": "Apak\u0161raksts",
"Header 6": "Sest\u0101 l\u012bme\u0146a virsraksts",
"Redo": "Atcelt atsauk\u0161anu",
"Paragraph": "Paragr\u0101fs",
"Ok": "Labi",
"Bold": "Treknraksts",
"Code": "Koda elements",
"Italic": "Kurs\u012bvs",
"Align center": "Centr\u0113t",
"Header 5": "Piekt\u0101 l\u012bme\u0146a virsraksts",
"Decrease indent": "Samazin\u0101t atk\u0101pi",
"Header 4": "Ceturt\u0101 l\u012bme\u0146a virsraksts",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Iel\u012bm\u0113\u0161ana tagad ir vienk\u0101r\u0161teksta re\u017e\u012bm\u0101. Saturs tiks iel\u012bm\u0113ts k\u0101 vienk\u0101r\u0161teksts, l\u012bdz \u0161\u012b opcija tiks atsl\u0113gta.",
"Underline": "Pasv\u012btrot",
"Cancel": "Atcelt",
"Justify": "L\u012bdzin\u0101t abas malas",
"Inline": "Rindi\u0146as elements",
"Copy": "Kop\u0113t",
"Align left": "L\u012bdzin\u0101t pa kreisi",
"Visual aids": "Uzskates l\u012bdzek\u013ci",
"Lower Greek": "Grie\u0137u mazie burti",
"Square": "Kvadr\u0101ts",
"Default": "Noklus\u0113juma",
"Lower Alpha": "Lat\u012b\u0146u mazie burti",
"Circle": "Aplis",
"Disc": "Disks",
"Upper Alpha": "Lat\u012b\u0146u lielie burti",
"Upper Roman": "Romie\u0161u lielie burti",
"Lower Roman": "Romie\u0161u mazie burti",
"Name": "V\u0101rds",
"Anchor": "Enkurelements",
"You have unsaved changes are you sure you want to navigate away?": "Jums ir nesaglab\u0101tas izmai\u0146as, esat dro\u0161s, ka v\u0113laties doties prom",
"Restore last draft": "Atjaunot p\u0113d\u0113jo melnrakstu",
"Special character": "\u012apa\u0161ais simbols",
"Source code": "Pirmkods",
"Right to left": "No lab\u0101s uz kreiso",
"Left to right": "No kreis\u0101s uz labo",
"Emoticons": "Emocijas",
"Robots": "Programmas",
"Document properties": "Dokumenta uzst\u0101d\u012bjumi",
"Title": "Nosaukums",
"Keywords": "Atsl\u0113gv\u0101rdi",
"Encoding": "Kod\u0113jums",
"Description": "Apraksts",
"Author": "Autors",
"Fullscreen": "Pilnekr\u0101na re\u017e\u012bms",
"Horizontal line": "Horizont\u0101la l\u012bnija",
"Horizontal space": "Horizont\u0101l\u0101 vieta",
"Insert\/edit image": "Ievietot\/labot att\u0113lu",
"General": "Visp\u0101r\u012bgi",
"Advanced": "Papildus",
"Source": "Avots",
"Border": "Apmale",
"Constrain proportions": "Saglab\u0101t malu attiec\u012bbu",
"Vertical space": "Vertik\u0101l\u0101 vieta",
"Image description": "Att\u0113la apraksts",
"Style": "Stils",
"Dimensions": "Izm\u0113ri",
"Insert image": "Ievietot att\u0113lu",
"Insert date\/time": "Ievietot datumu\/laiku",
"Remove link": "No\u0146emt saiti",
"Url": "Adrese",
"Text to display": "Teksts",
"Anchors": "Enkurelements",
"Insert link": "Ievietot saiti",
"New window": "Jauns logs",
"None": "Nek\u0101",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "M\u0113r\u0137is",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Ievietot\/labot saiti",
"Insert\/edit video": "Ievietot\/redi\u0123\u0113t video",
"Poster": "Att\u0113ls",
"Alternative source": "Alternat\u012bvs avots",
"Paste your embed code below:": "Iekop\u0113jiet embed kodu zem\u0101k:",
"Insert video": "Ievietot video",
"Embed": "Embed",
"Nonbreaking space": "L\u012bnij-nedalo\u0161s atstarpes simbols",
"Page break": "P\u0101rnest jaun\u0101 lap\u0101",
"Paste as text": "Iel\u012bm\u0113t k\u0101 tekstu",
"Preview": "Priek\u0161skat\u012bjums",
"Print": "Print\u0113t",
"Save": "Saglab\u0101t",
"Could not find the specified string.": "Mekl\u0113tais teksts netika atrasts",
"Replace": "Aizvietot",
"Next": "N\u0101ko\u0161ais",
"Whole words": "Pilnus v\u0101rdus",
"Find and replace": "Mekl\u0113t un aizvietot",
"Replace with": "Aizvietot ar",
"Find": "Mekl\u0113t",
"Replace all": "Aizvietot visu",
"Match case": "Re\u0123istrj\u016bt\u012bgs",
"Prev": "Iepriek\u0161\u0113jais",
"Spellcheck": "Pareizrakst\u012bbas p\u0101rbaude",
"Finish": "Beigt",
"Ignore all": "Ignor\u0113t visu",
"Ignore": "Ignor\u0113t",
"Insert row before": "Ievietot rindu pirms",
"Rows": "Rindas",
"Height": "Augstums",
"Paste row after": "Iel\u012bm\u0113t rindu p\u0113c",
"Alignment": "L\u012bdzin\u0101jums",
"Column group": "Kolonnu grupa",
"Row": "Rinda",
"Insert column before": "Ievietot kolonu pirms",
"Split cell": "Sadal\u012bt \u0161\u016bnas",
"Cell padding": "\u0160\u016bnas atstatumi",
"Cell spacing": "\u0160\u016bnu atstarpes",
"Row type": "Rindas tips",
"Insert table": "Ievietot tabulu",
"Body": "\u0136ermenis",
"Caption": "Virsraksts",
"Footer": "K\u0101jene",
"Delete row": "Dz\u0113st rindu",
"Paste row before": "Iel\u012bm\u0113t rindu pirms",
"Scope": "Apgabals",
"Delete table": "Dz\u0113st tabulu",
"Header cell": "Galvenes \u0161\u016bna",
"Column": "Kolona",
"Cell": "\u0160\u016bna",
"Header": "Galvene",
"Cell type": "\u0160\u016bnas tips",
"Copy row": "Kop\u0113t rindu",
"Row properties": "Rindas uzst\u0101d\u012bjumi",
"Table properties": "Tabulas uzst\u0101d\u012bjumi",
"Row group": "Rindu grupa",
"Right": "Pa labi",
"Insert column after": "Ievietot kolonu p\u0113c",
"Cols": "Kolonas",
"Insert row after": "Ievietot rindu p\u0113c",
"Width": "Platums",
"Cell properties": "\u0160\u016bnas uzst\u0101d\u012bjumi",
"Left": "Pa kreisi",
"Cut row": "Izgriezt rindu",
"Delete column": "Dz\u0113st kolonu",
"Center": "Centr\u0113t",
"Merge cells": "Apvienot \u0161\u016bnas",
"Insert template": "Ievietot \u0161ablonu",
"Templates": "\u0160abloni",
"Background color": "Fona kr\u0101sa",
"Text color": "Teksta kr\u0101sa",
"Show blocks": "R\u0101d\u012bt blokus",
"Show invisible characters": "R\u0101d\u012bt neredzam\u0101s rakstz\u012bmes",
"Words: {0}": "V\u0101rdi: {0}",
"Insert": "Ievietot",
"File": "Fails",
"Edit": "Labot",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Vizu\u0101li redi\u0123\u0113jama teksta apgabals. Nospiediet ALT-F9 izv\u0113lnei, ALT-F10 r\u012bkjoslai vai ALT-0 pal\u012bdz\u012bbai.",
"Tools": "R\u012bki",
"View": "Skat\u012bt",
"Table": "Tabula",
"Format": "Form\u0101ts",
"H Align": "Horizont\u0101lais l\u012bdzin\u0101jums",
"V Align": "Vertik\u0101lais l\u012bdzin\u0101jums",
"Top": "Aug\u0161\u0101",
"Middle": "Vid\u016b",
"Bottom": "Apak\u0161\u0101",
"Headings": "Virsraksti",
"Heading 1": "1. virsraksts",
"Heading 2": "2. virsraksts",
"Heading 3": "3. virsraksts",
"Heading 4": "4. virsraksts",
"Heading 5": "5. virsraksts",
"Heading 6": "6. virsraksts",
"Add to Dictionary": "Pievienot v\u0101rdn\u012bcai",
"Border color": "Apmales kr\u0101sa",
"Color": "Kr\u0101sa",
"Custom...": "Piel\u0101gots...",
"Custom color": "Nestandarta kr\u0101sa",
"No color": "Bez kr\u0101sas"
});
editors/tinymce/langs/vi.js000064400000017460152177723720011772 0ustar00tinymce.addI18n('vi',{
"Cut": "C\u1eaft",
"Header 2": "Ti\u00eau \u0111\u1ec1 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 truy c\u1eadp truy c\u1eadp b\u1ed9 nh\u1edb \u1ea3o, vui l\u00f2ng s\u1eed d\u1ee5ng c\u00e1c t\u1ed5 h\u1ee3p ph\u00edm Ctrl + X, C, V.",
"Div": "Khung",
"Paste": "D\u00e1n",
"Close": "\u0110\u00f3ng L\u1ea1i",
"Font Family": "Font Family",
"Pre": "\u0110\u1ecbnh d\u1ea1ng",
"Align right": "Canh ph\u1ea3i",
"New document": "T\u1ea1o t\u00e0i li\u1ec7u m\u1edbi",
"Blockquote": "\u0110o\u1ea1n Tr\u00edch D\u1eabn",
"Numbered list": "Danh s\u00e1ch d\u1ea1ng s\u1ed1",
"Increase indent": "T\u0103ng kho\u1ea3ng c\u00e1ch d\u00f2ng",
"Formats": "\u0110\u1ecbnh d\u1ea1ng",
"Headers": "\u0110\u1ea7u trang",
"Select all": "Ch\u1ecdn t\u1ea5t c\u1ea3",
"Header 3": "Ti\u00eau \u0111\u1ec1 3",
"Blocks": "Bao",
"Undo": "H\u1ee7y thao t\u00e1c",
"Strikethrough": "G\u1ea1ch ngang",
"Bullet list": "Danh s\u00e1ch d\u1ea1ng bi\u1ec3u t\u01b0\u1ee3ng",
"Header 1": "Ti\u00eau \u0111\u1ec1 1",
"Superscript": "K\u00fd t\u1ef1 m\u0169",
"Clear formatting": "L\u01b0\u1ee3c b\u1ecf ph\u1ea7n hi\u1ec7u \u1ee9ng",
"Font Sizes": "Font Sizes",
"Subscript": "K\u00fd t\u1ef1 th\u1ea5p",
"Header 6": "Ti\u00eau \u0111\u1ec1 6",
"Redo": "L\u00e0m l\u1ea1i",
"Paragraph": "\u0110o\u1ea1n v\u0103n",
"Ok": "\u0110\u1ed3ng \u00dd",
"Bold": "In \u0111\u1eadm",
"Code": "M\u00e3",
"Italic": "In nghi\u00eang",
"Align center": "Canh gi\u1eefa",
"Header 5": "Ti\u00eau \u0111\u1ec1 5",
"Decrease indent": "Th\u1ee5t l\u00f9i d\u00f2ng",
"Header 4": "Ti\u00eau \u0111\u1ec1 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Ch\u1ee9c n\u0103ng D\u00e1n \u0111ang trong tr\u1ea1ng th\u00e1i v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n. N\u1ed9i dung s\u1ebd \u0111\u01b0\u1ee3c d\u00e1n d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n, kh\u00f4ng c\u00f3 \u0111\u1ecbnh d\u1ea1ng.",
"Underline": "G\u1ea1ch d\u01b0\u1edbi",
"Cancel": "Hu\u1ef7 B\u1ecf",
"Justify": "Canh \u0111\u1ec1u hai b\u00ean",
"Inline": "C\u00f9ng d\u00f2ng",
"Copy": "Sao ch\u00e9p",
"Align left": "Canh tr\u00e1i",
"Visual aids": "M\u1edf khung so\u1ea1n th\u1ea3o",
"Lower Greek": "S\u1ed1 hy l\u1ea1p th\u01b0\u1eddng",
"Square": "\u00d4 vu\u00f4ng",
"Default": "M\u1eb7c \u0111\u1ecbnh",
"Lower Alpha": "K\u00fd t\u1ef1 th\u01b0\u1eddng",
"Circle": "H\u00ecnh tr\u00f2n",
"Disc": "H\u00ecnh tr\u00f2n  d\u1ea1ng m\u1ecfng",
"Upper Alpha": "K\u00fd t\u1ef1 hoa",
"Upper Roman": "S\u1ed1 la m\u00e3 hoa",
"Lower Roman": "S\u1ed1 la m\u00e3 th\u01b0\u1eddng",
"Name": "Name",
"Anchor": "Anchor",
"You have unsaved changes are you sure you want to navigate away?": "B\u1ea1n ch\u01b0a l\u01b0u thay \u0111\u1ed5i b\u1ea1n c\u00f3 ch\u1eafc b\u1ea1n mu\u1ed1n di chuy\u1ec3n \u0111i?",
"Restore last draft": "Kh\u00f4i ph\u1ee5c b\u1ea3n g\u1ea7n nh\u1ea5t",
"Special character": "Special character",
"Source code": "M\u00e3 ngu\u1ed3n",
"Right to left": "Right to left",
"Left to right": "Left to right",
"Emoticons": "Bi\u1ec3u t\u01b0\u1ee3ng c\u1ea3m x\u00fac",
"Robots": "Robots",
"Document properties": "Thu\u1ed9c t\u00ednh t\u00e0i li\u1ec7u",
"Title": "Ti\u00eau \u0111\u1ec1",
"Keywords": "T\u1eeb kh\u00f3a",
"Encoding": "M\u00e3 h\u00f3a",
"Description": "Description",
"Author": "T\u00e1c gi\u1ea3",
"Fullscreen": "Fullscreen",
"Horizontal line": "K\u1ebb ngang",
"Horizontal space": "N\u1eb1m ngang",
"Insert\/edit image": "Ch\u00e8n\/s\u1eeda \u1ea3nh",
"General": "Chung",
"Advanced": "N\u00e2ng cao",
"Source": "Ngu\u1ed3n",
"Border": "\u0110\u01b0\u1eddng vi\u1ec1n",
"Constrain proportions": "T\u1ef7 l\u1ec7 h\u1ea1n ch\u1ebf",
"Vertical space": "N\u1eb1m d\u1ecdc",
"Image description": "M\u00f4 t\u1ea3 \u1ea3nh",
"Style": "Ki\u1ec3u",
"Dimensions": "K\u00edch th\u01b0\u1edbc",
"Insert image": "Ch\u00e8n \u1ea3nh",
"Insert date\/time": "Insert date\/time",
"Remove link": "B\u1ecf li\u00ean k\u1ebft",
"Url": "Url",
"Text to display": "N\u1ed9i dung hi\u1ec3n th\u1ecb",
"Anchors": "Anchors",
"Insert link": "Ch\u00e8n li\u00ean k\u1ebft",
"New window": "C\u1eeda s\u1ed5 m\u1edbi",
"None": "Kh\u00f4ng",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u0110\u00edch",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Ch\u00e8n\/s\u1eeda li\u00ean k\u1ebft",
"Insert\/edit video": "Ch\u00e8n\/s\u1eeda video",
"Poster": "Ng\u01b0\u1eddi g\u1eedi",
"Alternative source": "Ngu\u1ed3n thay th\u1ebf",
"Paste your embed code below:": "D\u00e1n m\u00e3 nh\u00fang c\u1ee7a b\u1ea1n d\u01b0\u1edbi \u0111\u00e2y:",
"Insert video": "Ch\u00e8n video",
"Embed": "Nh\u00fang",
"Nonbreaking space": "Nonbreaking space",
"Page break": "Ng\u1eaft trang",
"Paste as text": "D\u00e1n \u0111o\u1ea1n v\u0103n b\u1ea3n",
"Preview": "Xem th\u1eed",
"Print": "In",
"Save": "L\u01b0u",
"Could not find the specified string.": "Could not find the specified string.",
"Replace": "Replace",
"Next": "Next",
"Whole words": "To\u00e0n b\u1ed9 t\u1eeb",
"Find and replace": "Find and replace",
"Replace with": "Replace with",
"Find": "Find",
"Replace all": "Thay t\u1ea5t c\u1ea3",
"Match case": "Match case",
"Prev": "Tr\u01b0\u1edbc",
"Spellcheck": "Ki\u1ec3m tra ch\u00ednh t\u1ea3",
"Finish": "Ho\u00e0n t\u1ea5t",
"Ignore all": "B\u1ecf qua t\u1ea5t",
"Ignore": "B\u1ecf qua",
"Insert row before": "Th\u00eam d\u00f2ng ph\u00eda tr\u00ean",
"Rows": "D\u00f2ng",
"Height": "\u0110\u1ed9 Cao",
"Paste row after": "D\u00e1n v\u00e0o ph\u00eda sau, d\u01b0\u1edbi",
"Alignment": "Canh ch\u1ec9nh",
"Column group": "Gom nh\u00f3m c\u1ed9t",
"Row": "D\u00f2ng",
"Insert column before": "Th\u00eam c\u1ed9t b\u00ean tr\u00e1i",
"Split cell": "Chia c\u1eaft \u00f4",
"Cell padding": "Kho\u1ea3ng c\u00e1ch trong \u00f4",
"Cell spacing": "Kho\u1ea3ng c\u00e1ch \u00f4",
"Row type": "Th\u1ec3 lo\u1ea1i d\u00f2ng",
"Insert table": "Th\u00eam b\u1ea3ng",
"Body": "N\u1ed9i dung",
"Caption": "Ti\u00eau \u0111\u1ec1",
"Footer": "Ch\u00e2n",
"Delete row": "Xo\u00e1 d\u00f2ng",
"Paste row before": "D\u00e1n v\u00e0o ph\u00eda tr\u01b0\u1edbc, tr\u00ean",
"Scope": "Quy\u1ec1n",
"Delete table": "Xo\u00e1 b\u1ea3ng",
"Header cell": "Ti\u00eau \u0111\u1ec1 \u00f4",
"Column": "C\u1ed9t",
"Cell": "\u00d4",
"Header": "Ti\u00eau \u0111\u1ec1",
"Cell type": "Lo\u1ea1i \u00f4",
"Copy row": "Sao ch\u00e9p d\u00f2ng",
"Row properties": "Thu\u1ed9c t\u00ednh d\u00f2ng",
"Table properties": "Thu\u1ed9c t\u00ednh b\u1ea3ng",
"Row group": "Gom nh\u00f3m d\u00f2ng",
"Right": "Ph\u1ea3i",
"Insert column after": "Th\u00eam c\u1ed9t b\u00ean ph\u1ea3i",
"Cols": "C\u1ed9t",
"Insert row after": "Th\u00eam d\u00f2ng ph\u00eda d\u01b0\u1edbi",
"Width": "\u0110\u1ed9 R\u1ed9ng",
"Cell properties": "Thu\u1ed9c t\u00ednh \u00f4",
"Left": "Tr\u00e1i",
"Cut row": "C\u1eaft d\u00f2ng",
"Delete column": "Xo\u00e1 c\u1ed9t",
"Center": "Gi\u1eefa",
"Merge cells": "Tr\u1ed9n \u00f4",
"Insert template": "Insert template",
"Templates": "Templates",
"Background color": "M\u00e0u n\u1ec1n",
"Text color": "M\u00e0u v\u0103n b\u1ea3n",
"Show blocks": "Show blocks",
"Show invisible characters": "Hi\u1ec3n th\u1ecb k\u00fd t\u1ef1 \u1ea9n",
"Words: {0}": "Words: {0}",
"Insert": "Insert",
"File": "File",
"Edit": "Edit",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help",
"Tools": "Tools",
"View": "View",
"Table": "Table",
"Format": "Format"
});editors/tinymce/langs/pt-BR.js000064400000020575152177723720012301 0ustar00tinymce.addI18n('pt-BR',{
"Cut": "Recortar",
"Heading 5": "Cabe\u00e7alho 5",
"Header 2": "Cabe\u00e7alho 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Seu navegador n\u00e3o suporta acesso direto \u00e0 \u00e1rea de transfer\u00eancia. Por favor use os atalhos Ctrl+X - C - V do teclado",
"Heading 4": "Cabe\u00e7alho 4",
"Div": "Div",
"Heading 2": "Cabe\u00e7alho 2",
"Paste": "Colar",
"Close": "Fechar",
"Font Family": "Fonte",
"Pre": "Pre",
"Align right": "Alinhar \u00e0 direita",
"New document": "Novo documento",
"Blockquote": "Aspas",
"Numbered list": "Lista ordenada",
"Heading 1": "Cabe\u00e7alho 1",
"Headings": "Cabe\u00e7alhos",
"Increase indent": "Aumentar recuo",
"Formats": "Formatos",
"Headers": "Cabe\u00e7alhos",
"Select all": "Selecionar tudo",
"Header 3": "Cabe\u00e7alho 3",
"Blocks": "Blocos",
"Undo": "Desfazer",
"Strikethrough": "Riscar",
"Bullet list": "Lista n\u00e3o ordenada",
"Header 1": "Cabe\u00e7alho 1",
"Superscript": "Sobrescrito",
"Clear formatting": "Limpar formata\u00e7\u00e3o",
"Font Sizes": "Tamanho",
"Subscript": "Subscrever",
"Header 6": "Cabe\u00e7alho 6",
"Redo": "Refazer",
"Paragraph": "Par\u00e1grafo",
"Ok": "Ok",
"Bold": "Negrito",
"Code": "C\u00f3digo",
"Italic": "It\u00e1lico",
"Align center": "Centralizar",
"Header 5": "Cabe\u00e7alho 5",
"Heading 6": "Cabe\u00e7alho 6",
"Heading 3": "Cabe\u00e7alho 3",
"Decrease indent": "Diminuir recuo",
"Header 4": "Cabe\u00e7alho 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 agora em modo texto plano. O conte\u00fado ser\u00e1 colado como texto plano at\u00e9 voc\u00ea desligar esta op\u00e7\u00e3o.",
"Underline": "Sublinhar",
"Cancel": "Cancelar",
"Justify": "Justificar",
"Inline": "Em linha",
"Copy": "Copiar",
"Align left": "Alinhar \u00e0 esquerda",
"Visual aids": "Ajuda visual",
"Lower Greek": "\u03b1. \u03b2. \u03b3. ...",
"Square": "Quadrado",
"Default": "Padr\u00e3o",
"Lower Alpha": "a. b. c. ...",
"Circle": "C\u00edrculo",
"Disc": "Disco",
"Upper Alpha": "A. B. C. ...",
"Upper Roman": "I. II. III. ...",
"Lower Roman": "i. ii. iii. ...",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id deve come\u00e7ar com uma letra, seguido apenas por letras, n\u00fameros, tra\u00e7os, pontos, dois pontos ou sublinhados.",
"Name": "Nome",
"Anchor": "\u00c2ncora",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Voc\u00ea tem mudan\u00e7as n\u00e3o salvas. Voc\u00ea tem certeza que deseja sair?",
"Restore last draft": "Restaurar \u00faltimo rascunho",
"Special character": "Caracteres especiais",
"Source code": "C\u00f3digo fonte",
"Language": "Idioma",
"Insert\/Edit code sample": "Inserir\/Editar c\u00f3digo de exemplo",
"B": "B",
"R": "R",
"G": "G",
"Color": "Cor",
"Right to left": "Da direita para a esquerda",
"Left to right": "Da esquerda para a direita",
"Emoticons": "Emoticons",
"Robots": "Rob\u00f4s",
"Document properties": "Propriedades do documento",
"Title": "T\u00edtulo",
"Keywords": "Palavras-chave",
"Encoding": "Codifica\u00e7\u00e3o",
"Description": "Descri\u00e7\u00e3o",
"Author": "Autor",
"Fullscreen": "Tela cheia",
"Horizontal line": "Linha horizontal",
"Horizontal space": "Espa\u00e7amento horizontal",
"Insert\/edit image": "Inserir\/editar imagem",
"General": "Geral",
"Advanced": "Avan\u00e7ado",
"Source": "Endere\u00e7o da imagem",
"Border": "Borda",
"Constrain proportions": "Manter propor\u00e7\u00f5es",
"Vertical space": "Espa\u00e7amento vertical",
"Image description": "Inserir descri\u00e7\u00e3o",
"Style": "Estilo",
"Dimensions": "Dimens\u00f5es",
"Insert image": "Inserir imagem",
"Image": "Imagem",
"Zoom in": "Aumentar zoom",
"Contrast": "Contraste",
"Back": "Voltar",
"Gamma": "Gama",
"Flip horizontally": "Virar horizontalmente",
"Resize": "Redimensionar",
"Sharpen": "Aumentar nitidez",
"Zoom out": "Diminuir zoom",
"Image options": "Op\u00e7\u00f5es de Imagem",
"Apply": "Aplicar",
"Brightness": "Brilho",
"Rotate clockwise": "Girar em sentido anti-hor\u00e1rio",
"Rotate counterclockwise": "Girar em sentido hor\u00e1rio",
"Edit image": "Editar imagem",
"Color levels": "N\u00edveis de cor",
"Crop": "Cortar",
"Orientation": "Orienta\u00e7\u00e3o",
"Flip vertically": "Virar verticalmente",
"Invert": "Inverter",
"Date\/time": "data\/hora",
"Insert date\/time": "Inserir data\/hora",
"Remove link": "Remover link",
"Url": "Url",
"Text to display": "Texto para mostrar",
"Anchors": "\u00c2ncoras",
"Insert link": "Inserir link",
"Link": "Link",
"New window": "Nova janela",
"None": "Nenhum",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "A URL que voc\u00ea informou parece ser um link externo. Deseja incluir o prefixo http:\/\/?",
"Paste or type a link": "Cole ou digite um Link",
"Target": "Alvo",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Inserir\/editar link",
"Insert\/edit video": "Inserir\/editar v\u00eddeo",
"Media": "imagem",
"Alternative source": "Fonte alternativa",
"Paste your embed code below:": "Insira o c\u00f3digo de incorpora\u00e7\u00e3o abaixo:",
"Insert video": "Inserir v\u00eddeo",
"Poster": "Autor",
"Insert\/edit media": "Inserir\/editar imagem",
"Embed": "Incorporar",
"Nonbreaking space": "Espa\u00e7o n\u00e3o separ\u00e1vel",
"Page break": "Quebra de p\u00e1gina",
"Paste as text": "Colar como texto",
"Preview": "Pr\u00e9-visualizar",
"Print": "Imprimir",
"Save": "Salvar",
"Could not find the specified string.": "N\u00e3o foi poss\u00edvel encontrar o termo especificado",
"Replace": "Substituir",
"Next": "Pr\u00f3ximo",
"Whole words": "Palavras inteiras",
"Find and replace": "Localizar e substituir",
"Replace with": "Substituir por",
"Find": "Localizar",
"Replace all": "Substituir tudo",
"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas",
"Prev": "Anterior",
"Spellcheck": "Corretor ortogr\u00e1fico",
"Finish": "Finalizar",
"Ignore all": "Ignorar tudo",
"Ignore": "Ignorar",
"Add to Dictionary": "Adicionar ao Dicion\u00e1rio",
"Insert row before": "Inserir linha antes",
"Rows": "Linhas",
"Height": "Altura",
"Paste row after": "Colar linha depois",
"Alignment": "Alinhamento",
"Border color": "Cor da borda",
"Column group": "Agrupar coluna",
"Row": "Linha",
"Insert column before": "Inserir coluna antes",
"Split cell": "Dividir c\u00e9lula",
"Cell padding": "Espa\u00e7amento interno da c\u00e9lula",
"Cell spacing": "Espa\u00e7amento da c\u00e9lula",
"Row type": "Tipo de linha",
"Insert table": "Inserir tabela",
"Body": "Corpo",
"Caption": "Legenda",
"Footer": "Rodap\u00e9",
"Delete row": "Excluir linha",
"Paste row before": "Colar linha antes",
"Scope": "Escopo",
"Delete table": "Excluir tabela",
"H Align": "Alinhamento H",
"Top": "Superior",
"Header cell": "C\u00e9lula cabe\u00e7alho",
"Column": "Coluna",
"Row group": "Agrupar linha",
"Cell": "C\u00e9lula",
"Middle": "Meio",
"Cell type": "Tipo de c\u00e9lula",
"Copy row": "Copiar linha",
"Row properties": "Propriedades da linha",
"Table properties": "Propriedades da tabela",
"Bottom": "Inferior",
"V Align": "Alinhamento V",
"Header": "Cabe\u00e7alho",
"Right": "Direita",
"Insert column after": "Inserir coluna depois",
"Cols": "Colunas",
"Insert row after": "Inserir linha depois",
"Width": "Largura",
"Cell properties": "Propriedades da c\u00e9lula",
"Left": "Esquerdo",
"Cut row": "Recortar linha",
"Delete column": "Excluir coluna",
"Center": "Centro",
"Merge cells": "Agrupar c\u00e9lulas",
"Insert template": "Inserir modelo",
"Templates": "Modelos",
"Background color": "Cor do fundo",
"Custom...": "Personalizado...",
"Custom color": "Cor personalizada",
"No color": "Nenhuma cor",
"Text color": "Cor do texto",
"Table of Contents": "\u00edndice de Conte\u00fado",
"Show blocks": "Mostrar blocos",
"Show invisible characters": "Exibir caracteres invis\u00edveis",
"Words: {0}": "Palavras: {0}",
"Insert": "Inserir",
"File": "Arquivo",
"Edit": "Editar",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto formatado. Pressione ALT-F9 para exibir o menu, ALT-F10 para exibir a barra de ferramentas ou ALT-0 para exibir a ajuda",
"Tools": "Ferramentas",
"View": "Visualizar",
"Table": "Tabela",
"Format": "Formatar"
});editors/tinymce/langs/hr.js000064400000017674152177723720011774 0ustar00tinymce.addI18n('hr',{
"Cut": "Izre\u017ei",
"Heading 5": "Naslov 5",
"Header 2": "Zaglavlje 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 preglednik ne podr\u017eava direktan pristup me\u0111uspremniku. Molimo Vas da umjesto toga koristite tipkovni\u010dke kratice Ctrl+X\/C\/V.",
"Heading 4": "Naslov 4",
"Div": "DIV",
"Heading 2": "Naslov 2",
"Paste": "Zalijepi",
"Close": "Zatvori",
"Font Family": "Obitelj fonta",
"Pre": "PRE",
"Align right": "Poravnaj desno",
"New document": "Novi dokument",
"Blockquote": "BLOCKQUOTE",
"Numbered list": "Numerirana lista",
"Heading 1": "Naslov 1",
"Headings": "Naslovi",
"Increase indent": "Pove\u0107aj uvla\u010denje",
"Formats": "Formati",
"Headers": "Zaglavlja",
"Select all": "Ozna\u010di sve",
"Header 3": "Zaglavlje 3",
"Blocks": "Blokovi",
"Undo": "Poni\u0161ti",
"Strikethrough": "Crta kroz sredinu",
"Bullet list": "Lista",
"Header 1": "Zaglavlje 1",
"Superscript": "Eksponent",
"Clear formatting": "Ukloni oblikovanje",
"Font Sizes": "Veli\u010dine fonta",
"Subscript": "Indeks",
"Header 6": "Zaglavlje 6",
"Redo": "Vrati",
"Paragraph": "Paragraf",
"Ok": "U redu",
"Bold": "Podebljano",
"Code": "CODE oznaka",
"Italic": "Kurziv",
"Align center": "Poravnaj po sredini",
"Header 5": "Zaglavlje 5",
"Heading 6": "Naslov 6",
"Heading 3": "Naslov 3",
"Decrease indent": "Smanji uvla\u010denje",
"Header 4": "Zaglavlje 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Akcija zalijepi od sada lijepi \u010disti tekst. Sadr\u017eaj \u0107e biti zaljepljen kao \u010disti tekst sve dok ne isklju\u010dite ovu opciju.",
"Underline": "Crta ispod",
"Cancel": "Odustani",
"Justify": "Obostrano poravnanje",
"Inline": "Unutarnje",
"Copy": "Kopiraj",
"Align left": "Poravnaj lijevo",
"Visual aids": "Vizualna pomo\u0107",
"Lower Greek": "Mala gr\u010dka slova",
"Square": "Kvadrat",
"Default": "Zadano",
"Lower Alpha": "Mala slova",
"Circle": "Krug",
"Disc": "To\u010dka",
"Upper Alpha": "Velika slova",
"Upper Roman": "Velika rimska slova",
"Lower Roman": "Mala rimska slova",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id treba po\u010dinjati slovom, a nakon toga slijede samo slova, brojevi, crtice, to\u010dke, dvoto\u010dke i podvlake.",
"Name": "Ime",
"Anchor": "Sidro",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Postoje ne pohranjene izmjene, jeste li sigurni da \u017eelite oti\u0107i?",
"Restore last draft": "Vrati posljednju skicu",
"Special character": "Poseban znak",
"Source code": "Izvorni kod",
"Language": "Jezik",
"Insert\/Edit code sample": "Umetni\/Uredi primjer k\u00f4da",
"B": "B",
"R": "R",
"G": "G",
"Color": "Boja",
"Right to left": "S desna na lijevo",
"Left to right": "S lijeva na desno",
"Emoticons": "Emotikoni",
"Robots": "Roboti pretra\u017eiva\u010da",
"Document properties": "Svojstva dokumenta",
"Title": "Naslov",
"Keywords": "Klju\u010dne rije\u010di",
"Encoding": "Kodna stranica",
"Description": "Opis",
"Author": "Autor",
"Fullscreen": "Cijeli ekran",
"Horizontal line": "Horizontalna linija",
"Horizontal space": "Horizontalan razmak",
"Insert\/edit image": "Umetni\/izmijeni sliku",
"General": "Op\u0107enito",
"Advanced": "Napredno",
"Source": "Izvor",
"Border": "Rub",
"Constrain proportions": "Zadr\u017ei proporcije",
"Vertical space": "Okomit razmak",
"Image description": "Opis slike",
"Style": "Stil",
"Dimensions": "Dimenzije",
"Insert image": "Umetni sliku",
"Image": "Slika",
"Zoom in": "Pove\u0107aj",
"Contrast": "Kontrast",
"Back": "Natrag",
"Gamma": "Gamma",
"Flip horizontally": "Obrni horizontalno",
"Resize": "Promjeni veli\u010dinu",
"Sharpen": "Izo\u0161travanje",
"Zoom out": "Smanji",
"Image options": "Opcije slike",
"Apply": "Primijeni",
"Brightness": "Svjetlina",
"Rotate clockwise": "Rotiraj desno",
"Rotate counterclockwise": "Rotiraj lijevo",
"Edit image": "Uredi sliku",
"Color levels": "Razine boje",
"Crop": "Obre\u017ei",
"Orientation": "Orijentacija",
"Flip vertically": "Obrni vertikalno",
"Invert": "Invertiraj",
"Date\/time": "Datum\/vrijeme",
"Insert date\/time": "Umetni datum\/vrijeme",
"Remove link": "Ukloni poveznicu",
"Url": "Url",
"Text to display": "Tekst za prikaz",
"Anchors": "Kra\u0107e poveznice",
"Insert link": "Umetni poveznicu",
"Link": "Link",
"New window": "Novi prozor",
"None": "Ni\u0161ta",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Izgleda da je URL koji ste upisali vanjski link. \u017delite li dodati obavezan http:\/\/ prefiks?",
"Paste or type a link": "Zalijepi ili upi\u0161i link",
"Target": "Meta",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Izgleda da je URL koji ste upisali e-mail adresa. \u017delite li dodati obavezan mailto: prefiks?",
"Insert\/edit link": "Umetni\/izmijeni poveznicu",
"Insert\/edit video": "Umetni\/izmijeni video",
"Media": "Media",
"Alternative source": "Alternativni izvor",
"Paste your embed code below:": "Umetnite va\u0161 kod za ugradnju ispod:",
"Insert video": "Umetni video",
"Poster": "Poster",
"Insert\/edit media": "Umetni\/uredi mediju",
"Embed": "Ugradi",
"Nonbreaking space": "Neprekidaju\u0107i razmak",
"Page break": "Prijelom stranice",
"Paste as text": "Zalijepi kao tekst",
"Preview": "Pregled",
"Print": "Ispis",
"Save": "Spremi",
"Could not find the specified string.": "Tra\u017eeni tekst nije prona\u0111en",
"Replace": "Zamijeni",
"Next": "Slijede\u0107i",
"Whole words": "Cijele rije\u010di",
"Find and replace": "Prona\u0111i i zamijeni",
"Replace with": "Zamijeni s",
"Find": "Tra\u017ei",
"Replace all": "Zamijeni sve",
"Match case": "Pazi na mala i velika slova",
"Prev": "Prethodni",
"Spellcheck": "Provjeri pravopis",
"Finish": "Zavr\u0161i",
"Ignore all": "Zanemari sve",
"Ignore": "Zanemari",
"Add to Dictionary": "Dodaj u rje\u010dnik",
"Insert row before": "Umetni redak prije",
"Rows": "Redci",
"Height": "Visina",
"Paste row after": "Zalijepi redak nakon",
"Alignment": "Poravnanje",
"Border color": "Boja ruba",
"Column group": "Grupirani stupci",
"Row": "Redak",
"Insert column before": "Umetni stupac prije",
"Split cell": "Razdvoji polja",
"Cell padding": "Razmak unutar polja",
"Cell spacing": "Razmak izme\u0111u polja",
"Row type": "Vrsta redka",
"Insert table": "Umetni tablicu",
"Body": "Sadr\u017eaj",
"Caption": "Natpis",
"Footer": "Podno\u017eje",
"Delete row": "Izbri\u0161i redak",
"Paste row before": "Zalijepi redak prije",
"Scope": "Doseg",
"Delete table": "Izbri\u0161i tablicu",
"H Align": "H Poravnavanje",
"Top": "Vrh",
"Header cell": "Polje zaglavlja",
"Column": "Stupac",
"Row group": "Grupirani redci",
"Cell": "Polje",
"Middle": "Sredina",
"Cell type": "Vrsta polja",
"Copy row": "Kopiraj redak",
"Row properties": "Svojstva redka",
"Table properties": "Svojstva tablice",
"Bottom": "Dno",
"V Align": "V Poravnavanje",
"Header": "Zaglavlje",
"Right": "Desno",
"Insert column after": "Umetni stupac nakon",
"Cols": "Stupci",
"Insert row after": "Umetni redak nakon",
"Width": "\u0160irina",
"Cell properties": "Svojstva polja",
"Left": "Lijevo",
"Cut row": "Izre\u017ei redak",
"Delete column": "Izbri\u0161i stupac",
"Center": "Sredina",
"Merge cells": "Spoji polja",
"Insert template": "Umetni predlo\u017eak",
"Templates": "Predlo\u0161ci",
"Background color": "Boja pozadine",
"Custom...": "Prilago\u0111eno...",
"Custom color": "Prilago\u0111ena boja",
"No color": "Bez boje",
"Text color": "Boja teksta",
"Table of Contents": "Sadr\u017eaj",
"Show blocks": "Prika\u017ei blokove",
"Show invisible characters": "Prika\u017ei nevidljive znakove",
"Words: {0}": "Rije\u010di: {0}",
"Insert": "Umetni",
"File": "Datoteka",
"Edit": "Izmijeni",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Pritisni ALT-F9 za izbornik. Pritisni ALT-F10 za alatnu traku. Pritisni ALT-0 za pomo\u0107",
"Tools": "Alati",
"View": "Pogled",
"Table": "Tablica",
"Format": "Oblikuj"
});editors/tinymce/langs/sv.js000064400000017623152177723720012005 0ustar00tinymce.addI18n('sv',{
"Cut": "Klipp ut",
"Heading 5": "Rubrik 5",
"Header 2": "Rubrik 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din webbl\u00e4sare st\u00f6djer inte direkt \u00e5tkomst till urklipp. V\u00e4nligen anv\u00e4nd kortkommandona Ctrl+X\/C\/V i st\u00e4llet.",
"Heading 4": "Rubrik 4",
"Div": "Div",
"Heading 2": "Rubrik 2",
"Paste": "Klistra in",
"Close": "St\u00e4ng",
"Font Family": "Teckensnitt",
"Pre": "F\u00f6rformaterad",
"Align right": "H\u00f6gerst\u00e4ll",
"New document": "Nytt dokument",
"Blockquote": "Blockcitat",
"Numbered list": "Nummerlista",
"Heading 1": "Rubrik 1",
"Headings": "Rubriker",
"Increase indent": "\u00d6ka indrag",
"Formats": "Format",
"Headers": "Rubriker",
"Select all": "Markera allt",
"Header 3": "Rubrik 3",
"Blocks": "Block",
"Undo": "\u00c5ngra",
"Strikethrough": "Genomstruken",
"Bullet list": "Punktlista",
"Header 1": "Rubrik 1",
"Superscript": "Upph\u00f6jd text",
"Clear formatting": "Ta bort format",
"Font Sizes": "Storlek",
"Subscript": "Neds\u00e4nkt text",
"Header 6": "Rubrik 6",
"Redo": "G\u00f6r om",
"Paragraph": "Br\u00f6dtext",
"Ok": "OK",
"Bold": "Fetstil",
"Code": "Kod",
"Italic": "Kursiv stil",
"Align center": "Centrera",
"Header 5": "Rubrik 5",
"Heading 6": "Rubrik 6",
"Heading 3": "Rubrik 3",
"Decrease indent": "Minska indrag",
"Header 4": "Rubrik 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Klistra in \u00e4r nu i textl\u00e4ge. Inneh\u00e5ll kommer att konverteras till text tills du sl\u00e5r av detta l\u00e4ge.",
"Underline": "Understruken",
"Cancel": "Avbryt",
"Justify": "Justera",
"Inline": "P\u00e5 rad",
"Copy": "Kopiera",
"Align left": "V\u00e4nsterst\u00e4ll",
"Visual aids": "Visuella hj\u00e4lpmedel",
"Lower Greek": "Grekiska gemener",
"Square": "Fyrkant",
"Default": "Original",
"Lower Alpha": "Gemener",
"Circle": "Cirkel",
"Disc": "Disk",
"Upper Alpha": "Versaler",
"Upper Roman": "Romerska versaler",
"Lower Roman": "Romerska gemener",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID skall b\u00f6rja med en boktav och endast f\u00f6ljas av bokst\u00c4ver a-z, siffror, bindestreck, punkt, kolon eller understreck.",
"Name": "Namn",
"Anchor": "Ankare",
"Id": "ID",
"You have unsaved changes are you sure you want to navigate away?": "Du har f\u00f6r\u00e4ndringar som du inte har sparat. \u00c4r du s\u00e4ker p\u00e5 att du vill navigera vidare?",
"Restore last draft": "\u00c5terst\u00e4ll senaste utkast",
"Special character": "Specialtecken",
"Source code": "K\u00e4llkod",
"Language": "Spr\u00e5k",
"Insert\/Edit code sample": "Infoga\/\u00e4ndra kodexempel",
"B": "B",
"R": "R",
"G": "G",
"Color": "F\u00e4rg",
"Right to left": "H\u00f6ger till v\u00e4nster",
"Left to right": "V\u00e4nster till h\u00f6ger",
"Emoticons": "Emoticons",
"Robots": "Robotar",
"Document properties": "Dokumentegenskaper",
"Title": "Titel",
"Keywords": "Nyckelord",
"Encoding": "Kodning",
"Description": "Beskrivning",
"Author": "F\u00f6rfattare",
"Fullscreen": "Fullsk\u00e4rm",
"Horizontal line": "Horisontell linje",
"Horizontal space": "Horisontellt utrymme",
"Insert\/edit image": "Infoga\/redigera bild",
"General": "Generella",
"Advanced": "Avancerat",
"Source": "K\u00e4lla",
"Border": "Ram",
"Constrain proportions": "Begr\u00e4nsa proportioner",
"Vertical space": "Vertikaltutrymme",
"Image description": "Bildbeskrivning",
"Style": "Stil",
"Dimensions": "Dimensioner",
"Insert image": "Infoga bild",
"Image": "Bild",
"Zoom in": "Zooma in",
"Contrast": "Kontrast",
"Back": "Tillbaka",
"Gamma": "Gamma",
"Flip horizontally": "V\u00e4nd horsontellt",
"Resize": "Skala om",
"Sharpen": "Sk\u00e4rpa",
"Zoom out": "Zooma ut",
"Image options": "Bildalternativ",
"Apply": "Verst\u00e4ll",
"Brightness": "Ljusstyrka",
"Rotate clockwise": "Rotera medurs",
"Rotate counterclockwise": "Rotera moturs",
"Edit image": "\u00c4ndra bild",
"Color levels": "F\u00e4rgniv\u00e5er",
"Crop": "Besk\u00e4r",
"Orientation": "Riktning",
"Flip vertically": "V\u00e4nd vertikalt",
"Invert": "Invertera",
"Date\/time": "Datum\/tid",
"Insert date\/time": "Infoga datum\/tid",
"Remove link": "Ta bort l\u00e4nk",
"Url": "Url",
"Text to display": "Text att visa",
"Anchors": "Bokm\u00e4rken",
"Insert link": "Infoga l\u00e4nk",
"Link": "L\u00e4nk",
"New window": "Nytt f\u00f6nster",
"None": "Ingen",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Urlen du angav verkar vara en extern l\u00e4nk. Vill du l\u00e4gga till http:\/\/ prefixet?",
"Paste or type a link": "Klistra in eller ange en l\u00e4nk",
"Target": "M\u00e5l",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Urlen du angav verkar vara en epost adress. Vill du l\u00e4gga till ett mailto: prefix?",
"Insert\/edit link": "Infoga\/redigera l\u00e4nk",
"Insert\/edit video": "Infoga\/redigera video",
"Poster": "Affish",
"Alternative source": "Alternativ k\u00e4lla",
"Paste your embed code below:": "Klistra in din inb\u00e4ddningskod nedan:",
"Insert video": "Infoga video",
"Poster": "Affish",
"Insert\/edit media": "Infoga\/\u00e4ndra media",
"Embed": "Inb\u00e4ddning",
"Nonbreaking space": "Avbrottsfritt mellanrum",
"Page break": "Sydbrytning",
"Paste as text": "Klistra in som text",
"Preview": "F\u00f6rhandsgranska",
"Print": "Skriv ut",
"Save": "Spara",
"Could not find the specified string.": "Kunde inte hitta den specifierade st\u00e4ngen.",
"Replace": "Ers\u00e4tt",
"Next": "N\u00e4sta",
"Whole words": "Hela ord",
"Find and replace": "S\u00f6k och ers\u00e4tt",
"Replace with": "Ers\u00e4tt med",
"Find": "S\u00f6k",
"Replace all": "Ers\u00e4tt alla",
"Match case": "Matcha gemener\/versaler",
"Prev": "F\u00f6reg\u00e5ende",
"Spellcheck": "R\u00e4ttstava",
"Finish": "Avsluta",
"Ignore all": "Ignorera alla",
"Ignore": "Ignorera",
"Add to Dictionary": "L\u00e4gg till i ordlista",
"Insert row before": "Infoga rad f\u00f6re",
"Rows": "Rader",
"Height": "H\u00f6jd",
"Paste row after": "Klistra in rad efter",
"Alignment": "Justering",
"Border color": "Ramf\u00e4rg",
"Column group": "Kolumngrupp",
"Row": "Rad",
"Insert column before": "Infoga kollumn f\u00f6re",
"Split cell": "Bryt is\u00e4r celler",
"Cell padding": "Cellpaddning",
"Cell spacing": "Cellmellanrum",
"Row type": "Radtyp",
"Insert table": "Infoga tabell",
"Body": "Kropp",
"Caption": "Rubrik",
"Footer": "Fot",
"Delete row": "Radera rad",
"Paste row before": "Klista in rad f\u00f6re",
"Scope": "Omf\u00e5ng",
"Delete table": "Radera tabell",
"H Align": "H-justering",
"Top": "Toppen",
"Header cell": "Huvudcell",
"Column": "Kolumn",
"Row group": "Radgrupp",
"Cell": "Cell",
"Middle": "Mitten",
"Cell type": "Celltyp",
"Copy row": "Kopiera rad",
"Row properties": "Radegenskaper",
"Table properties": "Tabellegenskaper",
"Bottom": "Botten",
"V Align": "V-justering",
"Header": "Huvud",
"Right": "H\u00f6ger",
"Insert column after": "Infoga kolumn efter",
"Cols": "Kolumner",
"Insert row after": "Infoga rad efter",
"Width": "Bredd",
"Cell properties": "Cellegenskaper",
"Left": "V\u00e4nster",
"Cut row": "Klipp ut rad",
"Delete column": "Radera kolumn",
"Center": "Centrum",
"Merge cells": "Sammanfoga celler",
"Insert template": "Infoga mall",
"Templates": "Mallar",
"Background color": "Bakgrundsf\u00e4rg",
"Custom...": "Anpassad...",
"Custom color": "Anpassad f\u00e4rg",
"No color": "Ingen f\u00e4rg",
"Text color": "Textf\u00e4rg",
"Table of Contents": "Inneh\u00e5llsf\u00f6rteckning",
"Show blocks": "Visa block",
"Show invisible characters": "Visa onsynliga tecken",
"Words: {0}": "Ord: {0}",
"Insert": "Infoga",
"File": "Fil",
"Edit": "Redigera",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textredigerare. Tryck ALT-F9 f\u00f6r menyn. Tryck ALT-F10 f\u00f6r verktygsrader. Tryck ALT-0 f\u00f6r hj\u00e4lp.",
"Tools": "Verktyg",
"View": "Visa",
"Table": "Tabell",
"Format": "Format"
});editors/tinymce/langs/ro.js000064400000015645152177723720011777 0ustar00tinymce.addI18n('ro',{
"Cut": "Decupeaz\u0103",
"Header 2": "Antet 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browserul dumneavoastr\u0103 nu support\u0103 acces direct la clipboard. Folosi\u0163i combina\u0163ile de tastatur\u0103 Ctrl+X\/C\/V.",
"Div": "Div",
"Paste": "Lipe\u015fte",
"Close": "\u00cenchide",
"Font Family": "Font",
"Pre": "Pre",
"Align right": "Aliniere la dreapta",
"New document": "Document nou",
"Blockquote": "Men\u0163iune bloc",
"Numbered list": "List\u0103 ordonat\u0103",
"Increase indent": "Indenteaz\u0103",
"Formats": "Formate",
"Headers": "Antete",
"Select all": "Selecteaz\u0103 tot",
"Header 3": "Antet 3",
"Blocks": "Blocuri",
"Undo": "Reexecut\u0103",
"Strikethrough": "T\u0103iat",
"Bullet list": "List\u0103 neordonat\u0103",
"Header 1": "Antet 1",
"Superscript": "Superscript",
"Clear formatting": "\u015eterge format\u0103rile",
"Font Sizes": "Dimensiune font",
"Subscript": "Subscript",
"Header 6": "Antet 6",
"Redo": "Dezexecut\u0103",
"Paragraph": "Paragraf",
"Ok": "Ok",
"Bold": "\u00cengro\u015fat",
"Code": "Cod",
"Italic": "Italic",
"Align center": "Centrare",
"Header 5": "Antet 5",
"Decrease indent": "De-indenteaz\u0103",
"Header 4": "Antet 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Functia \"lipe\u015fte\" este acum \u00een modul text simplu. Continutul va fi acum inserat ca text simplu p\u00e2n\u0103 c\u00e2nd aceast\u0103 op\u021biune va fi dezactivat.",
"Underline": "Subliniat",
"Cancel": "Anuleaz\u0103",
"Justify": "Aliniere pe toat\u0103 l\u0103\u021bimea",
"Inline": "Inline",
"Copy": "Copiaz\u0103",
"Align left": "Aliniere la st\u00e2nga",
"Visual aids": "Ajutor vizual",
"Lower Greek": "Minuscule Grecesti",
"Square": "P\u0103trat",
"Default": "Implicit",
"Lower Alpha": "Minuscule Alfanumerice",
"Circle": "Cerc",
"Disc": "Disc",
"Upper Alpha": "Majuscule Alfanumerice",
"Upper Roman": "Majuscule Romane",
"Lower Roman": "Minuscule Romane",
"Name": "Nume",
"Anchor": "Ancor\u0103",
"You have unsaved changes are you sure you want to navigate away?": "Ave\u021bi modific\u0103ri nesalvate! Sunte\u0163i sigur c\u0103 dori\u0163i s\u0103 ie\u015fiti?",
"Restore last draft": "Restaurare la ultima salvare",
"Special character": "Caractere speciale",
"Source code": "Codul surs\u0103",
"Right to left": "Dreapta la st\u00e2nga",
"Left to right": "St\u00e2nga la dreapta",
"Emoticons": "Emoticoane",
"Robots": "Robo\u021bi",
"Document properties": "Propriet\u0103\u021bi document",
"Title": "Titlu",
"Keywords": "Cuvinte cheie",
"Encoding": "Codare",
"Description": "Descriere",
"Author": "Autor",
"Fullscreen": "Pe tot ecranul",
"Horizontal line": "Linie orizontal\u0103",
"Horizontal space": "Spa\u021biul orizontal",
"Insert\/edit image": "Inserare\/editarea imaginilor",
"General": "General",
"Advanced": "Avansat",
"Source": "Surs\u0103",
"Border": "Bordur\u0103",
"Constrain proportions": "Constr\u00e2nge propor\u021biile",
"Vertical space": "Spa\u021biul vertical",
"Image description": "Descrierea imaginii",
"Style": "Stil",
"Dimensions": "Dimensiuni",
"Insert image": "Inserare imagine",
"Insert date\/time": "Insereaz\u0103 data\/ora",
"Remove link": "\u0218terge link-ul",
"Url": "Url",
"Text to display": "Text de afi\u0219at",
"Anchors": "Ancor\u0103",
"Insert link": "Inserare link",
"New window": "Fereastr\u0103 nou\u0103",
"None": "Nici unul",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u021aint\u0103",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Inserare\/editare link",
"Insert\/edit video": "Inserare\/editare video",
"Poster": "Poster",
"Alternative source": "Surs\u0103 alternativ\u0103",
"Paste your embed code below:": "Insera\u021bi codul:",
"Insert video": "Inserare video",
"Embed": "Embed",
"Nonbreaking space": "Spa\u021biu neseparator",
"Page break": "\u00centrerupere de pagin\u0103",
"Paste as text": "Lipe\u015fte ca text",
"Preview": "Previzualizare",
"Print": "Tip\u0103re\u0219te",
"Save": "Salveaz\u0103",
"Could not find the specified string.": "Nu am putut g\u0103si \u0219irul specificat.",
"Replace": "\u00cenlocuie\u015fte",
"Next": "Precedent",
"Whole words": "Doar cuv\u00eentul \u00eentreg",
"Find and replace": "Caut\u0103 \u015fi \u00eenlocuie\u015fte",
"Replace with": "\u00cenlocuie\u015fte cu",
"Find": "Caut\u0103",
"Replace all": "\u00cenlocuie\u015fte toate",
"Match case": "Distinge majuscule\/minuscule",
"Prev": "Anterior",
"Spellcheck": "Verificarea ortografic\u0103",
"Finish": "Finalizeaz\u0103",
"Ignore all": "Ignor\u0103 toate",
"Ignore": "Ignor\u0103",
"Insert row before": "Insereaz\u0103 \u00eenainte de linie",
"Rows": "Linii",
"Height": "\u00cen\u0103l\u0163ime",
"Paste row after": "Lipe\u015fte linie dup\u0103",
"Alignment": "Aliniament",
"Column group": "Grup de coloane",
"Row": "Linie",
"Insert column before": "Insereaza \u00eenainte de coloan\u0103",
"Split cell": "\u00cemp\u0103r\u021birea celulelor",
"Cell padding": "Spa\u021biere",
"Cell spacing": "Spa\u021biere celule",
"Row type": "Tip de linie",
"Insert table": "Insereaz\u0103 tabel\u0103",
"Body": "Corp",
"Caption": "Titlu",
"Footer": "Subsol",
"Delete row": "\u0218terge linia",
"Paste row before": "Lipe\u015fte \u00eenainte de linie",
"Scope": "Domeniu",
"Delete table": "\u0218terge tabel\u0103",
"Header cell": "Antet celul\u0103",
"Column": "Coloan\u0103",
"Cell": "Celul\u0103",
"Header": "Antet",
"Cell type": "Tip celul\u0103",
"Copy row": "Copiaz\u0103 linie",
"Row properties": "Propriet\u0103\u021bi linie",
"Table properties": "Propriet\u0103\u021bi tabel\u0103",
"Row group": "Grup de linii",
"Right": "Dreapta",
"Insert column after": "Insereaza dup\u0103 coloan\u0103",
"Cols": "Coloane",
"Insert row after": "Insereaz\u0103 dup\u0103 linie",
"Width": "L\u0103\u0163ime",
"Cell properties": "Propriet\u0103\u021bi celul\u0103",
"Left": "St\u00e2nga",
"Cut row": "Taie linie",
"Delete column": "\u0218terge coloana",
"Center": "Centru",
"Merge cells": "\u00cembinarea celulelor",
"Insert template": "Insereaz\u0103 \u0219ablon",
"Templates": "\u015eabloane",
"Background color": "Culoare fundal",
"Text color": "Culoare text",
"Show blocks": "Afi\u0219are blocuri",
"Show invisible characters": "Afi\u0219are caractere invizibile",
"Words: {0}": "Cuvinte: {0}",
"Insert": "Insereaz\u0103",
"File": "Fil\u0103",
"Edit": "Editeaz\u0103",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zon\u0103 cu Rich Text. Apas\u0103 ALT-F9 pentru meniu. Apas\u0103 ALT-F10 pentru bara de unelte. Apas\u0103 ALT-0 pentru ajutor",
"Tools": "Unelte",
"View": "Vezi",
"Table": "Tabel\u0103",
"Format": "Formateaz\u0103"
});editors/tinymce/langs/sk.js000064400000022635152177723720011771 0ustar00tinymce.addI18n('sk',{
"Cut": "Vystrihn\u00fa\u0165",
"Heading 5": "Nadpis 5",
"Header 2": "Nadpis 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prehliada\u010d nepodporuje priamy pr\u00edstup do schr\u00e1nky. Pou\u017eite kl\u00e1vesov\u00e9 skratky Ctrl+X\/C\/V.",
"Heading 4": "Nadpis 4",
"Div": "Blok",
"Heading 2": "Nadpis 2",
"Paste": "Vlo\u017ei\u0165",
"Close": "Zatvori\u0165",
"Font Family": "P\u00edsmo",
"Pre": "Preform\u00e1tovan\u00fd",
"Align right": "Zarovna\u0165 vpravo",
"New document": "Nov\u00fd dokument",
"Blockquote": "Cit\u00e1cia",
"Numbered list": "\u010c\u00edslovan\u00fd zoznam",
"Heading 1": "Nadpis 1",
"Headings": "Nadpisy",
"Increase indent": "Zv\u00e4\u010d\u0161i\u0165 odsadenie",
"Formats": "Form\u00e1ty",
"Headers": "Nadpisy",
"Select all": "Ozna\u010di\u0165 v\u0161etko",
"Header 3": "Nadpis 3",
"Blocks": "Bloky",
"Undo": "Vr\u00e1ti\u0165",
"Strikethrough": "Pre\u010diarknut\u00e9",
"Bullet list": "Odr\u00e1\u017eky",
"Header 1": "Nadpis 1",
"Superscript": "Horn\u00fd index",
"Clear formatting": "Vymaza\u0165 form\u00e1tovanie",
"Font Sizes": "Ve\u013ekos\u0165 p\u00edsma",
"Subscript": "Spodn\u00fd index",
"Header 6": "Nadpis 6",
"Redo": "Znova",
"Paragraph": "Odsek",
"Ok": "Ok",
"Bold": "Tu\u010dn\u00e9",
"Code": "K\u00f3d",
"Italic": "Kurz\u00edva",
"Align center": "Zarovna\u0165 na stred",
"Header 5": "Nadpis 5",
"Heading 6": "Nadpis 6",
"Heading 3": "Nadpis 3",
"Decrease indent": "Zmen\u0161i\u0165 odsadenie",
"Header 4": "Nadpis 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Vkladanie je v m\u00f3de neform\u00e1tovan\u00e9ho textu. Vkladan\u00fd obsah bude vlo\u017een\u00fd ako neform\u00e1tovan\u00fd, a\u017e pok\u00fdm t\u00fato mo\u017enos\u0165 nevypnete.",
"Underline": "Pod\u010diarknut\u00e9",
"Cancel": "Zru\u0161i\u0165",
"Justify": "Zarovna\u0165",
"Inline": "\u0160t\u00fdly",
"Copy": "Kop\u00edrova\u0165",
"Align left": "Zarovna\u0165 v\u013eavo",
"Visual aids": "Vizu\u00e1lne pom\u00f4cky",
"Lower Greek": "Mal\u00e9 gr\u00e9cke p\u00edsmen\u00e1",
"Square": "\u0160tvorec",
"Default": "V\u00fdchodzie",
"Lower Alpha": "Mal\u00e9 p\u00edsmen\u00e1",
"Circle": "Kruh",
"Disc": "Disk",
"Upper Alpha": "Ve\u013ek\u00e9 p\u00edsmen\u00e1",
"Upper Roman": "Ve\u013ek\u00e9 r\u00edmske \u010d\u00edslice",
"Lower Roman": "Mal\u00e9 r\u00edmske \u010d\u00edslice",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id by malo za\u010d\u00edna\u0165 p\u00edsmenom, nasledovan\u00e9 p\u00edsmenami, \u010d\u00edslami, pom\u013a\u010dkami, bodkami, dvojbodkami alebo podtr\u017en\u00edkmi.",
"Name": "N\u00e1zov",
"Anchor": "Odkaz",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zmeny, naozaj chcete opusti\u0165 str\u00e1nku?",
"Restore last draft": "Obnovi\u0165 posledn\u00fd koncept",
"Special character": "\u0160peci\u00e1lny znak",
"Source code": "Zdrojov\u00fd k\u00f3d",
"Language": "Jazyk",
"Insert\/Edit code sample": "Vlo\u017ei\u0165\/upravi\u0165 vzorku k\u00f3du",
"B": "B",
"R": "R",
"G": "G",
"Color": "Farba",
"Right to left": "Sprava do\u013eava",
"Left to right": "Z\u013eava doprava",
"Emoticons": "Smajl\u00edci",
"Robots": "Preh\u013ead\u00e1vacie roboty",
"Document properties": "Vlastnosti dokumentu",
"Title": "Nadpis",
"Keywords": "K\u013e\u00fa\u010dov\u00e9 slov\u00e1",
"Encoding": "K\u00f3dovanie",
"Description": "Popis",
"Author": "Autor",
"Fullscreen": "Na cel\u00fa obrazovku",
"Horizontal line": "Horizont\u00e1lna \u010diara",
"Horizontal space": "Horizont\u00e1lny priestor",
"Insert\/edit image": "Vlo\u017ei\u0165\/upravi\u0165 obr\u00e1zok",
"General": "Hlavn\u00e9",
"Advanced": "Pokro\u010dil\u00e9",
"Source": "Zdroj",
"Border": "Or\u00e1movanie",
"Constrain proportions": "Vymedzen\u00e9 proporcie",
"Vertical space": "Vertik\u00e1lny priestor",
"Image description": "Popis obr\u00e1zku",
"Style": "\u0160t\u00fdl",
"Dimensions": "Rozmery",
"Insert image": "Vlo\u017ei\u0165 obr\u00e1zok",
"Image": "Obr\u00e1zok",
"Zoom in": "Pribl\u00ed\u017ei\u0165",
"Contrast": "Kontrast",
"Back": "Sp\u00e4\u0165",
"Gamma": "Gama",
"Flip horizontally": "Preklopi\u0165 horizont\u00e1lne",
"Resize": "Zmeni\u0165 ve\u013ekos\u0165",
"Sharpen": "Zaostri\u0165",
"Zoom out": "Oddiali\u0165",
"Image options": "Mo\u017enosti obr\u00e1zku",
"Apply": "Pou\u017ei\u0165",
"Brightness": "Jas",
"Rotate clockwise": "Oto\u010di\u0165 v smere hodinov\u00fdch ru\u010di\u010diek",
"Rotate counterclockwise": "Oto\u010di\u0165 proti smeru hodinov\u00fdch ru\u010di\u010diek",
"Edit image": "Upravi\u0165 obr\u00e1zok",
"Color levels": "\u00darovne farieb",
"Crop": "Vyreza\u0165",
"Orientation": "Orient\u00e1cia",
"Flip vertically": "Preklopi\u0165 vertik\u00e1lne",
"Invert": "Invertova\u0165",
"Date\/time": "D\u00e1tum\/\u010das",
"Insert date\/time": "Vlo\u017ei\u0165 d\u00e1tum\/\u010das",
"Remove link": "Odstr\u00e1ni\u0165 odkaz",
"Url": "Url",
"Text to display": "Zobrazen\u00fd text",
"Anchors": "Kotvy",
"Insert link": "Vlo\u017ei\u0165 odkaz",
"Link": "Odkaz",
"New window": "Nov\u00e9 okno",
"None": "\u017diadne",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL adresa ktor\u00fa ste zadali vyzer\u00e1 ako extern\u00fd odkaz. Chcete prida\u0165 vy\u017eadovan\u00fa http:\/\/ predponu?",
"Paste or type a link": "Prilepte alebo nap\u00ed\u0161te odkaz",
"Target": "Cie\u013e",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL, ktor\u00fa ste vlo\u017eili je pravdepodobne emailov\u00e1 adresa. \u017del\u00e1te si prida\u0165 vy\u017eadovan\u00fa mailto: predponu?",
"Insert\/edit link": "Vlo\u017ei\u0165\/upravi\u0165 odkaz",
"Insert\/edit video": "Vlo\u017ei\u0165\/upravi\u0165 video",
"Media": "M\u00e9di\u00e1",
"Alternative source": "Alternat\u00edvny zdroj",
"Paste your embed code below:": "Vlo\u017ete k\u00f3d pre vlo\u017eenie na str\u00e1nku:",
"Insert video": "Vlo\u017ei\u0165 video",
"Poster": "Uk\u00e1\u017eka",
"Insert\/edit media": "Vlo\u017ei\u0165\/upravi\u0165 m\u00e9di\u00e1",
"Embed": "Vlo\u017een\u00e9",
"Nonbreaking space": "Nedelite\u013en\u00e1 medzera",
"Page break": "Zalomenie str\u00e1nky",
"Paste as text": "Vlo\u017ei\u0165 ako text",
"Preview": "N\u00e1h\u013ead",
"Print": "Tla\u010di\u0165",
"Save": "Ulo\u017ei\u0165",
"Could not find the specified string.": "Zadan\u00fd re\u0165azec sa nena\u0161iel.",
"Replace": "Nahradi\u0165",
"Next": "Nasleduj\u00face",
"Whole words": "Cel\u00e9 slov\u00e1",
"Find and replace": "Vyh\u013eada\u0165 a nahradi\u0165",
"Replace with": "Nahradi\u0165 za",
"Find": "H\u013eada\u0165",
"Replace all": "Nahradi\u0165 v\u0161etko",
"Match case": "Rozli\u0161ova\u0165 ve\u013ek\u00e9\/mal\u00e9",
"Prev": "Predch\u00e1dzaj\u00face",
"Spellcheck": "Kontrola pravopisu",
"Finish": "Dokon\u010di\u0165",
"Ignore all": "Ignorova\u0165 v\u0161etko",
"Ignore": "Ignorova\u0165",
"Add to Dictionary": "Prida\u0165 do slovn\u00edka",
"Insert row before": "Vlo\u017ei\u0165 nov\u00fd riadok pred",
"Rows": "Riadky",
"Height": "V\u00fd\u0161ka",
"Paste row after": "Vlo\u017ei\u0165 riadok za",
"Alignment": "Zarovnanie",
"Border color": "Farba or\u00e1movania",
"Column group": "Skupina st\u013apcov",
"Row": "Riadok",
"Insert column before": "Prida\u0165 nov\u00fd st\u013apec pred",
"Split cell": "Rozdeli\u0165 bunku",
"Cell padding": "Odsadenie v bunk\u00e1ch",
"Cell spacing": "Priestor medzi bunkami",
"Row type": "Typ riadku",
"Insert table": "Vlo\u017ei\u0165 tabu\u013eku",
"Body": "Telo",
"Caption": "Popisok",
"Footer": "P\u00e4ti\u010dka",
"Delete row": "Zmaza\u0165 riadok",
"Paste row before": "Vlo\u017ei\u0165 riadok pred",
"Scope": "Oblas\u0165",
"Delete table": "Zmaza\u0165 tabu\u013eku",
"H Align": "Horizont\u00e1lne zarovnanie",
"Top": "Vrch",
"Header cell": "Bunka z\u00e1hlavia",
"Column": "St\u013apec",
"Row group": "Skupina riadkov",
"Cell": "Bunka",
"Middle": "Stred",
"Cell type": "Typ bunky",
"Copy row": "Kop\u00edrova\u0165 riadok",
"Row properties": "Vlastnosti riadku",
"Table properties": "Nastavenia tabu\u013eky",
"Bottom": "Spodok",
"V Align": "Vertik\u00e1lne zarovnanie",
"Header": "Z\u00e1hlavie",
"Right": "Vpravo",
"Insert column after": "Prida\u0165 nov\u00fd st\u013apec za",
"Cols": "St\u013apce",
"Insert row after": "Vlo\u017ei\u0165 nov\u00fd riadok za",
"Width": "\u0160\u00edrka",
"Cell properties": "Vlastnosti bunky",
"Left": "V\u013eavo",
"Cut row": "Vystrihn\u00fa\u0165 riadok",
"Delete column": "Vymaza\u0165 st\u013apec",
"Center": "Na stred",
"Merge cells": "Spoji\u0165 bunky",
"Insert template": "Vlo\u017ei\u0165 \u0161abl\u00f3nu",
"Templates": "\u0160abl\u00f3ny",
"Background color": "Farba pozadia",
"Custom...": "Vlastn\u00e1...",
"Custom color": "Vlastn\u00e1 farba",
"No color": "Bez farby",
"Text color": "Farba textu",
"Table of Contents": "Obsah",
"Show blocks": "Zobrazi\u0165 bloky",
"Show invisible characters": "Zobrazi\u0165 skryt\u00e9 znaky",
"Words: {0}": "Slov: {0}",
"Insert": "Vlo\u017ei\u0165",
"File": "S\u00fabor",
"Edit": "Upravi\u0165",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textov\u00e9 pole. Stla\u010dte ALT-F9 pre zobrazenie menu, ALT-F10 pre zobrazenie panela n\u00e1strojov, ALT-0 pre n\u00e1povedu.",
"Tools": "N\u00e1stroje",
"View": "Zobrazi\u0165",
"Table": "Tabu\u013eka",
"Format": "Form\u00e1t"
});editors/tinymce/langs/fa.js000064400000037261152177723720011743 0ustar00tinymce.addI18n('fa',{
"Cut": "\u0628\u0631\u062f\u0627\u0634\u062a\u0646",
"Header 2": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u06a9\u067e\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f. \u0644\u0637\u0641\u0627 \u0627\u0632 \u06a9\u0644\u06cc\u062f \u0647\u0627\u06cc Ctrl+X\/C\/V \u062f\u0631 \u06a9\u06cc\u0628\u0648\u0631\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.",
"Div": "\u062a\u06af \u0628\u062e\u0634 - Div",
"Paste": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646",
"Close": "\u0628\u0633\u062a\u0646",
"Font Family": "\u0641\u0648\u0646\u062a",
"Pre": "\u062a\u06af \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 - Pre",
"Align right": "\u0631\u0627\u0633\u062a \u0686\u06cc\u0646",
"New document": "\u0633\u0646\u062f \u062c\u062f\u06cc\u062f",
"Blockquote": "\u062a\u06af \u0646\u0642\u0644 \u0642\u0648\u0644 - Blockquote",
"Numbered list": "\u0644\u06cc\u0633\u062a \u0634\u0645\u0627\u0631\u0647 \u0627\u06cc",
"Increase indent": "\u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0648 \u0631\u0641\u062a\u06af\u06cc",
"Formats": "\u0642\u0627\u0644\u0628",
"Headers": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647\u200c\u0647\u0627",
"Select all": "\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u0645\u0647",
"Header 3": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 3",
"Blocks": "\u0628\u0644\u0648\u06a9",
"Undo": "\t\n\u0628\u0627\u0637\u0644 \u06a9\u0631\u062f\u0646",
"Strikethrough": "\u062e\u0637 \u062e\u0648\u0631\u062f\u0647",
"Bullet list": "\u0644\u06cc\u0633\u062a \u062f\u0627\u06cc\u0631\u0647 \u0627\u06cc",
"Header 1": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 1",
"Superscript": "\u0628\u0627\u0644\u0627\u0646\u0648\u06cc\u0633 - \u062d\u0627\u0644\u062a \u062a\u0648\u0627\u0646",
"Clear formatting": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc",
"Font Sizes": "\u0627\u0646\u062f\u0627\u0632\u0647 \u0641\u0648\u0646\u062a",
"Subscript": "\u0632\u06cc\u0631 \u0646\u0648\u06cc\u0633 - \u062d\u0627\u0644\u062a \u0627\u0646\u062f\u06cc\u0633",
"Header 6": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 6",
"Redo": "\u0627\u0646\u062c\u0627\u0645 \u062f\u0648\u0628\u0627\u0631\u0647",
"Paragraph": "\u062a\u06af \u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641 - Paragraph",
"Ok": "\u0628\u0627\u0634\u0647",
"Bold": "\u062f\u0631\u0634\u062a",
"Code": "\u062a\u06af \u06a9\u062f - Code",
"Italic": "\u062e\u0637 \u06a9\u062c",
"Align center": "\u0648\u0633\u0637 \u0686\u06cc\u0646",
"Header 5": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 5",
"Decrease indent": "\u06a9\u0627\u0647\u0634 \u062a\u0648 \u0631\u0641\u062a\u06af\u06cc",
"Header 4": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u0631\u0627 \u063a\u06cc\u0631\u200c\u0641\u0639\u0627\u0644 \u0646\u06a9\u0646\u06cc\u062f\u060c \u0645\u062d\u062a\u0648\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.",
"Underline": "\u062e\u0637 \u0632\u06cc\u0631",
"Cancel": "\u0644\u063a\u0648",
"Justify": "\u0645\u0633\u0627\u0648\u06cc \u0627\u0632 \u0637\u0631\u0641\u06cc\u0646",
"Inline": "\u062e\u0637\u06cc",
"Copy": "\u06a9\u067e\u06cc",
"Align left": "\u0686\u067e \u0686\u06cc\u0646",
"Visual aids": "\u06a9\u0645\u06a9 \u0647\u0627\u06cc \u0628\u0635\u0631\u06cc",
"Lower Greek": "\u06cc\u0648\u0646\u0627\u0646\u06cc \u06a9\u0648\u0686\u06a9",
"Square": "\u0645\u0631\u0628\u0639",
"Default": "\u067e\u06cc\u0634\u0641\u0631\u0636",
"Lower Alpha": "\u0622\u0644\u0641\u0627\u0621 \u06a9\u0648\u0686\u06a9",
"Circle": "\u062f\u0627\u06cc\u0631\u0647",
"Disc": "\u062f\u06cc\u0633\u06a9",
"Upper Alpha": "\u0622\u0644\u0641\u0627\u0621 \u0628\u0632\u0631\u06af",
"Upper Roman": "\u0631\u0648\u0645\u06cc \u0628\u0632\u0631\u06af",
"Lower Roman": "\u0631\u0648\u0645\u06cc \u06a9\u0648\u0686\u06a9",
"Name": "\u0646\u0627\u0645",
"Anchor": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9",
"You have unsaved changes are you sure you want to navigate away?": "\u0634\u0645\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647 \u0627\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u0622\u06cc\u0627 \u0645\u0637\u0645\u0626\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u0628\u0631\u0648\u06cc\u062f\u061f",
"Restore last draft": "\u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0622\u062e\u0631\u06cc\u0646 \u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633",
"Special character": "\u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u0647\u0627\u06cc \u062e\u0627\u0635",
"Source code": "\u06a9\u062f \u0645\u0646\u0628\u0639",
"Right to left": "\u0631\u0627\u0633\u062a \u0628\u0647 \u0686\u067e",
"Left to right": "\u0686\u067e \u0628\u0647 \u0631\u0627\u0633\u062a",
"Emoticons": "\u0634\u06a9\u0644\u06a9\u200c\u0647\u0627",
"Robots": "\u0631\u0628\u0627\u062a\u200c\u0647\u0627",
"Document properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0646\u062f",
"Title": "\u0639\u0646\u0648\u0627\u0646",
"Keywords": "\u06a9\u0644\u0645\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc",
"Encoding": "\u06a9\u062f \u06af\u0630\u0627\u0631\u06cc",
"Description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a",
"Author": "\u0646\u0648\u06cc\u0633\u0646\u062f\u0647",
"Fullscreen": "\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647",
"Horizontal line": "\u062e\u0637 \u0627\u0641\u0642\u06cc",
"Horizontal space": "\u0641\u0636\u0627\u06cc \u0627\u0641\u0642\u06cc",
"Insert\/edit image": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631",
"General": "\u0639\u0645\u0648\u0645\u06cc",
"Advanced": "\u067e\u06cc\u0634\u0631\u0641\u062a\u0647",
"Source": "\u0645\u0646\u0628\u0639",
"Border": "\u062d\u0627\u0634\u06cc\u0647",
"Constrain proportions": "\u062d\u0641\u0638 \u062a\u0646\u0627\u0633\u0628",
"Vertical space": "\u0641\u0636\u0627\u06cc \u0639\u0645\u0648\u062f\u06cc",
"Image description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0639\u06a9\u0633",
"Style": "\u0633\u0628\u06a9",
"Dimensions": "\u0627\u0628\u0639\u0627\u062f",
"Insert image": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631",
"Insert date\/time": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646",
"Remove link": "\u062d\u0630\u0641 \u0644\u06cc\u0646\u06a9",
"Url": "\u0627\u062f\u0631\u0633 \u0644\u06cc\u0646\u06a9",
"Text to display": "\u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634",
"Anchors": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9 \u062f\u0627\u062e\u0644 \u0635\u0641\u062d\u0647",
"Insert link": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9",
"New window": "\u067e\u0646\u062c\u0631\u0647 \u062c\u062f\u06cc\u062f",
"None": "\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u0646\u062d\u0648\u0647 \u0628\u0627\u0632 \u0634\u062f\u0646 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9",
"Insert\/edit video": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc",
"Poster": "\u067e\u0648\u0633\u062a\u0631",
"Alternative source": "\u0645\u0646\u0628\u0639 \u062f\u06cc\u06af\u0631",
"Paste your embed code below:": "\u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0627 \u062f\u0627\u062f\u0646 \u062f\u0631 \u0633\u0627\u06cc\u062a - embed - \u060c \u062f\u0631 \u0632\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:",
"Insert video": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc",
"Embed": "\u062c\u0627 \u062f\u0627\u062f\u0646",
"Nonbreaking space": "\u0641\u0636\u0627\u06cc \u063a\u06cc\u0631 \u0634\u06a9\u0633\u062a\u0646",
"Page break": "\u0634\u06a9\u0633\u062a\u0646 \u0635\u0641\u062d\u0647",
"Paste as text": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0646",
"Preview": "\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634",
"Print": "\u0686\u0627\u067e",
"Save": "\u0630\u062e\u06cc\u0631\u0647",
"Could not find the specified string.": "\u0631\u0634\u062a\u0647 \u0645\u062a\u0646\u06cc \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f.",
"Replace": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646",
"Next": "\u0628\u0639\u062f\u06cc",
"Whole words": "\u0647\u0645\u0647 \u06a9\u0644\u0645\u0647\u200c\u0647\u0627",
"Find and replace": "\u062c\u0633\u062a\u200c\u0648\u200c\u062c\u0648 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646",
"Replace with": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646 \u0628\u0627",
"Find": "\u062c\u0633\u062a\u200c\u0648\u200c\u062c\u0648",
"Replace all": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647",
"Match case": "\u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af",
"Prev": "\u0642\u0628\u0644\u06cc",
"Spellcheck": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627\u06cc\u06cc",
"Finish": "\u067e\u0627\u06cc\u0627\u0646",
"Ignore all": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0647\u0645\u0647",
"Ignore": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646",
"Insert row before": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0637\u0631 \u062c\u062f\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
"Rows": "\u062a\u0639\u062f\u0627\u062f \u0633\u0637\u0631\u200c\u0647\u0627",
"Height": "\u0627\u0631\u062a\u0641\u0627\u0639",
"Paste row after": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
"Alignment": "\u0631\u062f\u06cc\u0641 \u0628\u0646\u062f\u06cc \u0646\u0648\u0634\u062a\u0647",
"Column group": "\u06af\u0631\u0648\u0647 \u0633\u062a\u0648\u0646",
"Row": "\u0633\u0637\u0631",
"Insert column before": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646",
"Split cell": "\u062a\u0642\u0633\u06cc\u0645 \u0633\u0644\u0648\u0644 \u062c\u062f\u0648\u0644",
"Cell padding": "\u062d\u0627\u0634\u06cc\u0647 \u0633\u0644\u0648\u0644 \u0647\u0627",
"Cell spacing": "\u0641\u0627\u0635\u0644\u0647\u200c\u06cc \u0628\u06cc\u0646 \u0633\u0644\u0648\u0644 \u0647\u0627",
"Row type": "\u0646\u0648\u0639 \u0633\u0637\u0631",
"Insert table": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062c\u062f\u0648\u0644",
"Body": "\u0628\u062f\u0646\u0647",
"Caption": "\u0639\u0646\u0648\u0627\u0646",
"Footer": "\u067e\u0627\u0646\u0648\u06cc\u0633",
"Delete row": "\u062d\u0630\u0641 \u0633\u0637\u0631",
"Paste row before": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
"Scope": "\u0645\u062d\u062f\u0648\u062f\u0647\u200c\u06cc \u0639\u0646\u0648\u0627\u0646",
"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644",
"Header cell": "\u0633\u0631\u0622\u06cc\u0646\u062f \u0633\u0644\u0648\u0644",
"Column": "\u0633\u062a\u0648\u0646",
"Cell": "\u0633\u0644\u0648\u0644",
"Header": "\u0633\u0631\u0622\u06cc\u0646\u062f",
"Cell type": "\u0646\u0648\u0639 \u0633\u0644\u0648\u0644",
"Copy row": "\u06a9\u067e\u06cc \u0633\u0637\u0631",
"Row properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0637\u0631",
"Table properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u0648\u0644",
"Row group": "\u06af\u0631\u0648\u0647 \u0633\u0637\u0631",
"Right": "\u0631\u0627\u0633\u062a",
"Insert column after": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646",
"Cols": "\u062a\u0639\u062f\u0627\u062f \u0633\u062a\u0648\u0646\u200c\u0647\u0627",
"Insert row after": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0637\u0631 \u062c\u062f\u06cc\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
"Width": "\u0639\u0631\u0636",
"Cell properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0644\u0648\u0644",
"Left": "\u0686\u067e",
"Cut row": "\u0628\u0631\u0634 \u0633\u0637\u0631",
"Delete column": "\u062d\u0630\u0641 \u0633\u062a\u0648\u0646",
"Center": "\u0648\u0633\u0637",
"Merge cells": "\u0627\u062f\u063a\u0627\u0645 \u0633\u0644\u0648\u0644\u200c\u0647\u0627",
"Insert template": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0644\u06af\u0648",
"Templates": "\u0627\u0644\u06af\u0648\u200c\u0647\u0627",
"Background color": "\u0631\u0646\u06af \u0632\u0645\u06cc\u0646\u0647 \u0645\u062a\u0646",
"Text color": "\u0631\u0646\u06af \u0645\u062a\u0646",
"Show blocks": "\u0646\u0645\u0627\u06cc\u0634 \u0628\u062e\u0634\u200c\u0647\u0627",
"Show invisible characters": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0686\u0627\u067e",
"Words: {0}": "\u06a9\u0644\u0645\u0627\u062a : {0}",
"Insert": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646",
"File": "\u067e\u0631\u0648\u0646\u062f\u0647",
"Edit": "\u0648\u06cc\u0631\u0627\u06cc\u0634",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u06cc \u0645\u062a\u0646. \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0646\u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc ALT-F9\u060c \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 ALT-F10 \u0648 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647\u200c\u06cc \u0631\u0627\u0647\u0646\u0645\u0627 ALT-0 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.",
"Tools": "\u0627\u0628\u0632\u0627\u0631\u0647\u0627",
"View": "\u0646\u0645\u0627\u06cc\u0634",
"Table": "\u062c\u062f\u0648\u0644",
"Format": "\u0642\u0627\u0644\u0628",
"_dir": "rtl"
});editors/tinymce/langs/mk.js000064400000051771152177723720011766 0ustar00tinymce.addI18n('mk',{
"Cut": "\u0418\u0441\u0435\u0447\u0438",
"Heading 5": "\u041d\u0430\u0441\u043b\u043e\u0432 5",
"Header 2": "\u041d\u0430\u0441\u043b\u043e\u0432 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448\u0438\u043e\u0442 \u043f\u0440\u0435\u043b\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u043d\u0435 \u043f\u043e\u0434\u0434\u0440\u0436\u0443\u0432\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0435\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043f \u0434\u043e \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430\u0442\u0430.\u041a\u043e\u0440\u0438\u0441\u0442\u0435\u0442\u0435 \u0433\u0438 Ctrl+X\/C\/V \u043a\u0440\u0430\u0442\u0435\u043d\u043a\u0438\u0442\u0435 \u043d\u0430 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0430\u0442\u0430.",
"Heading 4": "\u041d\u0430\u0441\u043b\u043e\u0432 4",
"Div": "DIV",
"Heading 2": "\u041d\u0430\u0441\u043b\u043e\u0432 2",
"Paste": "\u0412\u043c\u0435\u0442\u043d\u0438",
"Close": "\u0417\u0430\u0442\u0432\u043e\u0440\u0438",
"Font Family": "\u0424\u043e\u043d\u0442 \u0444\u0430\u043c\u0438\u043b\u0438\u0458\u0430",
"Pre": "PRE",
"Align right": "\u0414\u0435\u0441\u043d\u043e \u043f\u043e\u0440\u0430\u043c\u043d\u0443\u0432\u0430\u045a\u0435",
"New document": "\u041d\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
"Blockquote": "\u0426\u0438\u0442\u0430\u0442",
"Numbered list": "\u041b\u0438\u0441\u0442\u0430 \u0441\u043e \u0431\u0440\u043e\u0458\u043a\u0438",
"Heading 1": "\u041d\u0430\u0441\u043b\u043e\u0432 1",
"Headings": "\u041d\u0430\u0441\u043b\u043e\u0432\u0438",
"Increase indent": "\u0417\u0433\u043e\u043b\u0435\u043c\u0438 \u0432\u043e\u0432\u043b\u0435\u043a\u0443\u0432\u0430\u045a\u0435",
"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438",
"Headers": "\u041d\u0430\u0441\u043b\u043e\u0432\u0438",
"Select all": "\u041e\u0437\u043d\u0430\u0447\u0438 \u0433\u0438 \u0441\u0438\u0442\u0435",
"Header 3": "\u041d\u0430\u0441\u043b\u043e\u0432 3",
"Blocks": "\u0411\u043b\u043e\u043a\u043e\u0432\u0438",
"Undo": "\u0412\u0440\u0430\u0442\u0438",
"Strikethrough": "\u041f\u0440\u0435\u0446\u0440\u0442\u0430\u043d\u043e",
"Bullet list": "\u041b\u0438\u0441\u0442\u0430 \u0441\u043e \u0437\u043d\u0430\u0446\u0438",
"Header 1": "\u041d\u0430\u0441\u043b\u043e\u0432 1",
"Superscript": "\u041d\u0430\u0442\u0442\u0435\u043a\u0441\u0442",
"Clear formatting": "\u0418\u0441\u0447\u0438\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u045a\u0435",
"Font Sizes": "\u0424\u043e\u043d\u0442 \u0433\u043e\u043b\u0435\u043c\u0438\u043d\u0430",
"Subscript": "\u041f\u043e\u0442\u0442\u0435\u043a\u0441\u0442",
"Header 6": "\u041d\u0430\u0441\u043b\u043e\u0432 6",
"Redo": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438",
"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
"Ok": "\u041e\u041a",
"Bold": "\u0417\u0434\u0435\u0431\u0435\u043b\u0435\u043d\u043e",
"Code": "\u041a\u043e\u0434",
"Italic": "\u041d\u0430\u043a\u043e\u0441\u0435\u043d\u043e",
"Align center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e",
"Header 5": "\u041d\u0430\u0441\u043b\u043e\u0432 5",
"Heading 6": "\u041d\u0430\u0441\u043b\u043e\u0432 6",
"Heading 3": "\u041d\u0430\u0441\u043b\u043e\u0432 3",
"Decrease indent": "\u0421\u043c\u0430\u043b\u0438 \u0432\u043e\u0432\u043b\u0435\u043a\u0443\u0432\u0430\u045a\u0435",
"Header 4": "\u041d\u0430\u0441\u043b\u043e\u0432 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u043c\u0435\u0442\u043d\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u0435 \u043a\u0430\u043a\u043e \u0447\u0438\u0441\u0442 \u0442\u0435\u043a\u0441\u0442. \u0421\u043e\u0434\u0440\u0436\u0438\u043d\u0430\u0442\u0430 \u045c\u0435 \u0431\u0438\u0434\u0435 \u0432\u043c\u0435\u0442\u043d\u0430\u0442\u0430 \u043a\u0430\u043a\u043e \u0447\u0438\u0441\u0442 \u0442\u0435\u043a\u0441\u0442 \u0441\u00e8 \u0434\u043e\u0434\u0435\u043a\u0430 \u043d\u0435 \u0458\u0430 \u0438\u0441\u043a\u043b\u0443\u0447\u0438\u0442\u0435 \u043e\u0432\u0430\u0430 \u043e\u043f\u0446\u0438\u0458\u0430.",
"Underline": "\u041f\u043e\u0434\u0432\u043b\u0435\u0447\u0435\u043d\u043e",
"Cancel": "\u041e\u0442\u043a\u0430\u0436\u0438",
"Justify": "\u041f\u043e\u0440\u0430\u043c\u043d\u0435\u0442\u043e",
"Inline": "\u041d\u0430\u0432\u043d\u0430\u0442\u0440\u0435",
"Copy": "\u041a\u043e\u043f\u0438\u0440\u0430\u0458",
"Align left": "\u041b\u0435\u0432\u043e \u043f\u043e\u0440\u0430\u043c\u043d\u0443\u0432\u0430\u045a\u0435",
"Visual aids": "\u0412\u0438\u0437\u0443\u0435\u043b\u043d\u0430 \u043f\u043e\u043c\u043e\u0448",
"Lower Greek": "\u041c\u0430\u043b\u0438 \u0433\u0440\u0447\u043a\u0438",
"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442",
"Default": "\u041f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e",
"Lower Alpha": "\u041c\u0430\u043b\u0438 \u0430\u043b\u0444\u0430",
"Circle": "\u041a\u0440\u0443\u0433",
"Disc": "\u0422\u043e\u0447\u043a\u0430",
"Upper Alpha": "\u0413\u043e\u043b\u0435\u043c\u0438 \u0430\u043b\u0444\u0430",
"Upper Roman": "\u0413\u043e\u043b\u0435\u043c\u0438 \u0440\u0438\u043c\u0441\u043a\u0438",
"Lower Roman": "\u0413\u043e\u043b\u0435\u043c\u0438 \u0440\u0438\u043c\u0441\u043a\u0438",
"Name": "\u0418\u043c\u0435",
"Anchor": "\u0421\u0438\u0434\u0440\u043e",
"You have unsaved changes are you sure you want to navigate away?": "\u0418\u043c\u0430\u0442\u0435 \u043d\u0435\u0437\u0430\u0447\u0443\u0432\u0430\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438, \u0441\u0438\u0433\u0443\u0440\u043d\u043e \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0458\u0430 \u043d\u0430\u043f\u0443\u0448\u0442\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430?",
"Restore last draft": "\u0412\u0440\u0430\u0442\u0438 \u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043e\u0442 \u043d\u0430\u0446\u0440\u0442",
"Special character": "\u0421\u043f\u0435\u0446\u0438\u0458\u0430\u043b\u0435\u043d \u043a\u0430\u0440\u0430\u043a\u0442\u0435\u0440",
"Source code": "\u0418\u0437\u0432\u043e\u0440\u0435\u043d \u043a\u043e\u0434",
"Color": "\u0411\u043e\u0458\u0430",
"Right to left": "\u041e\u0434 \u0434\u0435\u0441\u043d\u043e \u043d\u0430 \u043b\u0435\u0432\u043e",
"Left to right": "\u041e\u0434 \u043b\u0435\u0432\u043e \u043d\u0430 \u0434\u0435\u0441\u043d\u043e",
"Emoticons": "\u0415\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438",
"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438",
"Document properties": "\u041f\u043e\u0434\u0430\u0442\u043e\u0446\u0438 \u0437\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0442",
"Title": "\u041d\u0430\u0441\u043b\u043e\u0432",
"Keywords": "\u041a\u043b\u0443\u0447\u043d\u0438 \u0437\u0431\u043e\u0440\u043e\u0432\u0438",
"Encoding": "\u041a\u043e\u0434\u0438\u0440\u0430\u045a\u0435",
"Description": "\u041e\u043f\u0438\u0441",
"Author": "\u0410\u0432\u0442\u043e\u0440",
"Fullscreen": "\u0426\u0435\u043b \u0435\u043a\u0440\u0430\u043d",
"Horizontal line": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u0430 \u043b\u0438\u043d\u0438\u0458\u0430",
"Horizontal space": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0440",
"Insert\/edit image": "\u0412\u043c\u0435\u0442\u043d\u0438\/\u0421\u043c\u0435\u043d\u0438 \u0441\u043b\u0438\u043a\u0430",
"General": "\u041e\u043f\u0448\u0442\u043e",
"Advanced": "\u041d\u0430\u043f\u0440\u0435\u0434\u043d\u043e",
"Source": "\u0418\u0437\u0432\u043e\u0440",
"Border": "\u0420\u0430\u043c\u043a\u0430",
"Constrain proportions": "\u0412\u0440\u0437\u0430\u043d\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438",
"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0440",
"Image description": "\u041e\u043f\u0438\u0441 \u043d\u0430 \u0441\u043b\u0438\u043a\u0430",
"Style": "\u0421\u0442\u0438\u043b",
"Dimensions": "\u0414\u0438\u043c\u0435\u043d\u0437\u0438\u0438",
"Insert image": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0441\u043b\u0438\u043a\u0430",
"Insert date\/time": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0434\u0430\u0442\u0443\u043c\/\u0432\u0440\u0435\u043c\u0435",
"Remove link": "\u041e\u0442\u0441\u0442\u0440\u0430\u043d\u0438 \u043b\u0438\u043d\u043a",
"Url": "URL",
"Text to display": "\u0422\u0435\u043a\u0441\u0442 \u0437\u0430 \u043f\u0440\u0438\u043a\u0430\u0437",
"Anchors": "\u0421\u0438\u0434\u0440\u0430",
"Insert link": "\u0412\u043c\u0435\u0442\u043d\u0438 \u043b\u0438\u043d\u043a",
"New window": "\u041d\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446",
"None": "\u041d\u0438\u0448\u0442\u043e",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL-\u0442\u043e \u043a\u043e\u0435 \u0433\u043e \u0432\u043d\u0435\u0441\u043e\u0432\u0442\u0435 \u0441\u0435 \u0447\u0438\u043d\u0438 \u0434\u0435\u043a\u0430 \u0435 \u043d\u0430\u0434\u0432\u043e\u0440\u0435\u0448\u043d\u0430 \u0432\u0440\u0441\u043a\u0430. \u0414\u0430\u043b\u0438 \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u0434\u0430\u0434\u0435 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 http:\/\/ \u043f\u0440\u0435\u0444\u0438\u043a\u0441?",
"Target": "\u0426\u0435\u043b",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "UR-\u0442\u043e \u043a\u043e\u0435 \u0433\u043e \u0432\u043d\u0435\u0441\u043e\u0432\u0442\u0435 \u0441\u0435 \u0447\u0438\u043d\u0438 \u0434\u0435\u043a\u0430 \u0435  \u0435-\u043f\u043e\u0448\u0442\u0430. \u0414\u0430\u043b\u0438 \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u0434\u0430\u0434\u0435 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 mailto: \u043f\u0440\u0435\u0444\u0438\u043a\u0441?",
"Insert\/edit link": "\u0412\u043c\u0435\u0442\u043d\u0438\/\u0441\u043c\u0435\u043d\u0438 \u043b\u0438\u043d\u043a",
"Insert\/edit video": "\u0412\u043c\u0435\u0442\u043d\u0438\/\u0441\u043c\u0435\u043d\u0438 \u0432\u0438\u0434\u0435\u043e",
"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440",
"Alternative source": "\u0410\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435\u043d \u0438\u0437\u0432\u043e\u0440",
"Paste your embed code below:": "\u0412\u0435\u043c\u0442\u043d\u0438 \u0433\u043e \u043a\u043e\u0434\u043e\u0442 \u0437\u0430 \u0432\u0433\u0440\u0430\u0434\u0435\u043d\u043e \u043f\u043e\u0434\u043e\u043b\u0443:",
"Insert\/Edit code sample": "\u0412\u043c\u0435\u0442\u043d\u0438\/\u0441\u043c\u0435\u043d\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430 \u043a\u043e\u0434",
"Insert video": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0432\u0438\u0434\u0435\u043e",
"Embed": "\u0412\u0433\u0440\u0430\u0434\u0435\u043d\u043e",
"Nonbreaking space": "\u041c\u0435\u0441\u0442\u043e \u0431\u0435\u0437 \u043f\u0440\u0435\u043a\u0440\u0448\u0443\u0432\u0430\u045a\u0435",
"Page break": "\u041f\u0440\u0435\u043a\u0440\u0448\u0443\u0432\u0430\u045a\u0435",
"Paste as text": "\u0412\u043c\u0435\u0442\u043d\u0438 \u043a\u0430\u043a\u043e \u0442\u0435\u043a\u0441\u0442",
"Preview": "\u041f\u0440\u0435\u0433\u043b\u0435\u0434",
"Print": "\u041f\u0435\u0447\u0430\u0442\u0438",
"Save": "\u0417\u0430\u0447\u0443\u0432\u0430\u0458",
"Could not find the specified string.": "\u041d\u0435\u043c\u043e\u0436\u043d\u043e \u0434\u0430 \u0441\u0435 \u043d\u0430\u0458\u0434\u0435 \u043f\u043e\u0441\u043e\u0447\u0435\u043d\u0438\u043e\u0442 \u043d\u0438\u0437.",
"Replace": "\u0421\u043c\u0435\u043d\u0438",
"Next": "\u041f\u043e",
"Whole words": "\u0426\u0435\u043b\u0438 \u0437\u0431\u043e\u0440\u043e\u0432\u0438",
"Find and replace": "\u041d\u0430\u0458\u0434\u0438 \u0438 \u0441\u043c\u0435\u043d\u0438",
"Replace with": "\u0421\u043c\u0435\u043d\u0438 \u0441\u043e",
"Find": "\u041d\u0430\u0458\u0434\u0438",
"Replace all": "\u0421\u043c\u0435\u043d\u0438 \u0441\u00e8",
"Match case": "\u0414\u0430 \u0441\u0435 \u0441\u043e\u0432\u043f\u0430\u0453\u0430",
"Prev": "\u041f\u0440\u0435\u0434",
"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441",
"Finish": "\u041a\u0440\u0430\u0458",
"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458 \u0441\u00e8",
"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458",
"Add to Dictionary": "\u0414\u043e\u0434\u0430\u0434\u0438 \u0432\u043e \u0440\u0435\u0447\u043d\u0438\u043a",
"Insert row before": "\u041d\u043e\u0432 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434",
"Rows": "\u0420\u0435\u0434\u043e\u0432\u0438",
"Height": "\u0412\u0438\u0441\u0438\u043d\u0430",
"Paste row after": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0440\u0435\u0434 \u043f\u043e\u0441\u043b\u0435",
"Border color": "\u0411\u043e\u0458\u0430 \u043d\u0430 \u0440\u0430\u043c\u043a\u0430",
"Alignment": "\u041f\u043e\u0440\u0430\u043c\u043d\u0443\u0432\u0430\u045a\u0435",
"Column group": "\u0413\u0440\u0443\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u0438",
"Row": "\u0420\u0435\u0434",
"Insert column before": "\u041d\u043e\u0432\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u043f\u0440\u0435\u0434",
"Split cell": "\u041f\u043e\u0434\u0435\u043b\u0438 \u045c\u0435\u043b\u0438\u0458\u0430",
"Cell padding": "\u041f\u0440\u043e\u0441\u0442\u043e\u0440 \u0432\u043e \u045c\u0435\u043b\u0438\u0458\u0430",
"Cell spacing": "\u041f\u0440\u043e\u0441\u0442\u043e\u0440 \u043c\u0435\u0453\u0443 \u045c\u0435\u043b\u0438\u0438",
"Row type": "\u0422\u0438\u043f \u043d\u0430 \u0440\u0435\u0434",
"Insert table": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0442\u0430\u0431\u0435\u043b\u0430",
"Body": "\u0422\u0435\u043b\u043e",
"Caption": "\u041d\u0430\u0442\u043f\u0438\u0441",
"Footer": "\u041f\u043e\u0434\u043d\u043e\u0436\u0458\u0435",
"Delete row": "\u0418\u0437\u0431\u0440\u0438\u0448\u0438 \u0440\u0435\u0434",
"Paste row before": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434",
"Scope": "\u041e\u043f\u0441\u0435\u0433",
"Delete table": "\u0418\u0437\u0431\u0440\u0438\u0448\u0438 \u0442\u0430\u0431\u0435\u043b\u0430",
"H Align": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e \u043f\u043e\u0440\u0430\u043c\u043d\u0443\u0432\u0430\u045a\u0435",
"Top": "\u0413\u043e\u0440\u0435",
"Header cell": "\u041d\u0430\u0441\u043b\u043e\u0432\u043d\u0430 \u045c\u0435\u043b\u0438\u0458\u0430",
"Column": "\u041a\u043e\u043b\u043e\u043d\u0430",
"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u0435\u0434\u043e\u0432\u0438",
"Cell": "\u040c\u0435\u043b\u0438\u0458\u0430",
"Middle": "\u0421\u0440\u0435\u0434\u0438\u043d\u0430",
"Cell type": "\u0422\u0438\u043f \u043d\u0430 \u045c\u0435\u043b\u0438\u0458\u0430",
"Copy row": "\u041a\u043e\u043f\u0438\u0440\u0430\u0458 \u0440\u0435\u0434",
"Row properties": "\u041a\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0430 \u0440\u0435\u0434",
"Table properties": "\u041a\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0430 \u0442\u0430\u0431\u0435\u043b\u0430",
"Bottom": "\u0414\u043e\u043b\u0443",
"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e \u043f\u043e\u0440\u0430\u043c\u043d\u0443\u0432\u0430\u045a\u0435",
"Header": "\u041d\u0430\u0441\u043b\u043e\u0432",
"Right": "\u0414\u0435\u0441\u043d\u043e",
"Insert column after": "\u041d\u043e\u0432\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u043f\u043e",
"Cols": "\u041a\u043e\u043b\u043e\u043d\u0438",
"Insert row after": "\u041d\u043e\u0432 \u0440\u0435\u0434 \u043f\u043e",
"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
"Cell properties": "\u041a\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430",
"Left": "\u041b\u0435\u0432\u043e",
"Cut row": "\u041e\u0442\u0441\u0435\u0447\u0438 \u0440\u0435\u0434",
"Delete column": "\u0418\u0437\u0431\u0440\u0438\u0448\u0438 \u043a\u043e\u043b\u043e\u043d\u0430",
"Center": "\u0426\u0435\u043d\u0442\u0430\u0440",
"Merge cells": "\u0421\u043f\u043e\u0438 \u043a\u043e\u043b\u043e\u043d\u0438",
"Insert template": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0448\u0430\u0431\u043b\u043e\u043d",
"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
"Background color": "\u0411\u043e\u0458\u0430 \u043d\u0430 \u043f\u043e\u0437\u0430\u0434\u0438\u043d\u0430",
"Custom...": "\u041f\u043e \u0436\u0435\u043b\u0431\u0430",
"Custom color": "\u0411\u043e\u0458\u0430 \u043f\u043e \u0436\u0435\u043b\u0431\u0430",
"No color": "\u0411\u0435\u0437 \u0431\u043e\u0458\u0430",
"Text color": "\u0411\u043e\u0458\u0430 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442",
"Show blocks": "\u041f\u0440\u0438\u043a\u0430\u0436\u0438 \u0431\u043b\u043e\u043a\u043e\u0432\u0438",
"Show invisible characters": "\u041f\u0440\u0438\u043a\u0430\u0436\u0438 \u043d\u0435\u0432\u0438\u0434\u043b\u0438\u0432\u0438 \u043a\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438",
"Words: {0}": "\u0417\u0431\u043e\u0440\u043e\u0432\u0438:{0}",
"Insert": "\u0412\u043c\u0435\u0442\u043d\u0438",
"File": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
"Edit": "\u0423\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0417\u0431\u043e\u0433\u0430\u0442\u0435\u043d\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u0442\u0435\u043a\u0441\u0442. \u041f\u0440\u0438\u0442\u0438\u0441\u043d\u0435\u0442\u0435 ALT-F9 \u0437\u0430 \u043c\u0435\u043d\u0438.\u041f\u0440\u0438\u0442\u0438\u0441\u043d\u0435\u0442\u0435 ALT-F10 \u0437\u0430 \u043b\u0435\u043d\u0442\u0430 \u0441\u043e \u0430\u043b\u0430\u0442\u043a\u0438.\u041f\u0440\u0438\u0442\u0438\u0441\u043d\u0435\u0442\u0435 ALT-0 \u0437\u0430 \u043f\u043e\u043c\u043e\u0448",
"Preformatted": "\u041f\u0440\u0435\u0434\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u043e",
"Tools": "\u0410\u043b\u0430\u0442\u043a\u0438",
"View": "\u041f\u0440\u0438\u043a\u0430\u0437",
"Table": "\u0422\u0430\u0431\u0435\u043b\u0430",
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442",
"Color": "\u0411\u043e\u0458\u0430",
"R": "R",
"G": "G",
"B": "B",
"Rotate counterclockwise": "\u0417\u0430\u0432\u0440\u0442\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043e\u0434 \u0441\u0442\u0440\u0435\u043b\u043a\u0438\u0442\u0435",
"Rotate clockwise": "\u0417\u0430\u0432\u0440\u0442\u0438 \u0432\u043e \u043f\u0440\u0430\u0432\u0435\u0446 \u043d\u0430 \u0441\u0442\u0440\u0435\u043b\u043a\u0438\u0442\u0435",
"Flip vertically": "\u041f\u0440\u0435\u0432\u0440\u0442\u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e",
"Flip horizontally": "\u041f\u0440\u0435\u0432\u0440\u0442\u0438 \u0445\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e",
"Edit image": "\u0423\u0440\u0435\u0434\u0438 \u0441\u043b\u0438\u043a\u0430",
"Image options": "\u041e\u043f\u0446\u0438\u0438 \u0437\u0430 \u0441\u043b\u0438\u043a\u0430",
"Zoom in": "\u0417\u0433\u043e\u043b\u0435\u043c\u0438",
"Zoom out": "\u041d\u0430\u043c\u0430\u043b\u0438",
"Crop": "\u041e\u0442\u0441\u0435\u0447\u0438 \u0434\u0435\u043b",
"Resize": "\u0420\u0435\u0434\u0438\u043c\u0435\u043d\u0437\u0438\u043e\u043d\u0438\u0440\u0430\u0458",
"Orientation": "\u041d\u0430\u0441\u043e\u0447\u0435\u043d\u043e\u0441\u0442",
"Brightness": "\u041e\u0441\u0432\u0435\u0442\u043b\u0443\u0432\u0430\u045a\u0435",
"Sharpen": "\u041e\u0441\u0442\u0440\u0438\u043d\u0430",
"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442",
"Color levels": "\u041d\u0438\u0432\u043e \u043d\u0430 \u0431\u043e\u0438",
"Gamma": "\u0413\u0430\u043c\u0430",
"Invert": "\u0418\u043d\u0432\u0435\u0440\u0437\u043d\u043e",
"Apply": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438",
"Back": "\u041d\u0430\u0437\u0430\u0434",
"Id": "ID",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u043f\u043e\u0447\u043d\u0443\u0432\u0430 \u0441\u043e \u0431\u0443\u043a\u0432\u0430, \u0441\u043b\u0435\u0434\u0435\u043d\u0430 \u0441\u0430\u043c\u043e \u043e\u0434 \u0431\u0443\u043a\u0432\u0438, \u0431\u0440\u043e\u0458\u043a\u0438, \u0446\u0440\u0442\u0430, \u0442\u043e\u0447\u043a\u0430, \u0442\u043e\u0447\u043a\u0430-\u0437\u0430\u043f\u0438\u0440\u043a\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u0432\u043b\u0435\u0447\u0435\u043d\u043e.",
"Insert/Edit code sample": "\u0412\u043c\u0435\u0442\u043d\u0438/\u0423\u0440\u0435\u0434\u0438 \u0438\u0441\u0435\u0447\u043e\u043a \u043e\u0434 \u043a\u043e\u0434",
"Language": "\u0408\u0430\u0437\u0438\u043a",
"Image": "\u0421\u043b\u0438\u043a\u0430",
"Date/time": "\u0414\u0430\u0442\u0443\u043c/\u0412\u0440\u0435\u043c\u0435",
"Link": "\u0412\u0440\u0441\u043a\u0430",
"Paste or type a link": "\u0412\u043c\u0435\u0442\u043d\u0435\u0442\u0435 \u0458\u0430 \u0438\u043b\u0438 \u0432\u043f\u0438\u0448\u0435\u0442\u0435 \u0458\u0430 \u0432\u0430\u0448\u0430\u0442\u0430 \u0432\u0440\u0441\u043a\u0430",
"Insert/Edit Media": "\u0412\u043c\u0435\u0442\u043d\u0438/\u0423\u0440\u0435\u0434\u0438 \u043c\u0435\u0434\u0438\u0458",
"Media": "\u041c\u0435\u0434\u0438\u0430",
"Table of Contents": "\u0421\u043e\u0434\u0440\u0436\u0438\u043d\u0430"
});editors/tinymce/langs/fr.js000064400000020605152177723720011756 0ustar00tinymce.addI18n('fr',{
"Cut": "Couper",
"Heading 5": "En-t\u00eate 5",
"Header 2": "Titre 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas la copie directe. Merci d'utiliser les touches Ctrl+X\/C\/V.",
"Heading 4": "En-t\u00eate 4",
"Div": "Div",
"Heading 2": "En-t\u00eate 2",
"Paste": "Coller",
"Close": "Fermer",
"Font Family": "Police",
"Pre": "Pre",
"Align right": "Aligner \u00e0 droite",
"New document": "Nouveau document",
"Blockquote": "Citation",
"Numbered list": "Num\u00e9rotation",
"Heading 1": "En-t\u00eate 1",
"Headings": "En-t\u00eates",
"Increase indent": "Augmenter le retrait",
"Formats": "Formats",
"Headers": "Titres",
"Select all": "Tout s\u00e9lectionner",
"Header 3": "Titre 3",
"Blocks": "Blocs",
"Undo": "Annuler",
"Strikethrough": "Barr\u00e9",
"Bullet list": "Puces",
"Header 1": "Titre 1",
"Superscript": "Exposant",
"Clear formatting": "Effacer la mise en forme",
"Font Sizes": "Taille de police",
"Subscript": "Indice",
"Header 6": "Titre 6",
"Redo": "R\u00e9tablir",
"Paragraph": "Paragraphe",
"Ok": "Ok",
"Bold": "Gras",
"Code": "Code",
"Italic": "Italique",
"Align center": "Centrer",
"Header 5": "Titre 5",
"Heading 6": "En-t\u00eate 6",
"Heading 3": "En-t\u00eate 3",
"Decrease indent": "Diminuer le retrait",
"Header 4": "Titre 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.",
"Underline": "Soulign\u00e9",
"Cancel": "Annuler",
"Justify": "Justifier",
"Inline": "En ligne",
"Copy": "Copier",
"Align left": "Aligner \u00e0 gauche",
"Visual aids": "Aides visuelle",
"Lower Greek": "Grec minuscule",
"Square": "Carr\u00e9",
"Default": "Par d\u00e9faut",
"Lower Alpha": "Alpha minuscule",
"Circle": "Cercle",
"Disc": "Disque",
"Upper Alpha": "Alpha majuscule",
"Upper Roman": "Romain majuscule",
"Lower Roman": "Romain minuscule",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'Id doit commencer par une lettre suivi par des lettres, nombres, tirets, points, deux-points ou underscores",
"Name": "Nom",
"Anchor": "Ancre",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?",
"Restore last draft": "Restaurer le dernier brouillon",
"Special character": "Caract\u00e8res sp\u00e9ciaux",
"Source code": "Code source",
"Language": "Langue",
"Insert\/Edit code sample": "Ins\u00e9rer \/ modifier une exemple de code",
"B": "B",
"R": "R",
"G": "V",
"Color": "Couleur",
"Right to left": "Droite \u00e0 gauche",
"Left to right": "Gauche \u00e0 droite",
"Emoticons": "Emotic\u00f4nes",
"Robots": "Robots",
"Document properties": "Propri\u00e9t\u00e9 du document",
"Title": "Titre",
"Keywords": "Mots-cl\u00e9s",
"Encoding": "Encodage",
"Description": "Description",
"Author": "Auteur",
"Fullscreen": "Plein \u00e9cran",
"Horizontal line": "Ligne horizontale",
"Horizontal space": "Espacement horizontal",
"Insert\/edit image": "Ins\u00e9rer\/modifier une image",
"General": "G\u00e9n\u00e9ral",
"Advanced": "Avanc\u00e9",
"Source": "Source",
"Border": "Bordure",
"Constrain proportions": "Conserver les proportions",
"Vertical space": "Espacement vertical",
"Image description": "Description de l'image",
"Style": "Style",
"Dimensions": "Dimensions",
"Insert image": "Ins\u00e9rer une image",
"Image": "Image",
"Zoom in": "Zoomer",
"Contrast": "Contraste",
"Back": "Retour",
"Gamma": "Gamma",
"Flip horizontally": "Retournement horizontal",
"Resize": "Redimensionner",
"Sharpen": "Affiner",
"Zoom out": "D\u00e9zoomer",
"Image options": "Options de l'image",
"Apply": "Appliquer",
"Brightness": "Luminosit\u00e9",
"Rotate clockwise": "Rotation horaire",
"Rotate counterclockwise": "Rotation anti-horaire",
"Edit image": "Modifier l'image",
"Color levels": "Niveaux de couleur",
"Crop": "Rogner",
"Orientation": "Orientation",
"Flip vertically": "Retournement vertical",
"Invert": "Inverser",
"Date\/time": "Date\/heure",
"Insert date\/time": "Ins\u00e9rer date\/heure",
"Remove link": "Enlever le lien",
"Url": "Url",
"Text to display": "Texte \u00e0 afficher",
"Anchors": "Ancres",
"Insert link": "Ins\u00e9rer un lien",
"Link": "Lien",
"New window": "Nouvelle fen\u00eatre",
"None": "n\/a",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?",
"Paste or type a link": "Coller ou taper un lien",
"Target": "Cible",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?",
"Insert\/edit link": "Ins\u00e9rer\/modifier un lien",
"Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o",
"Media": "M\u00e9dia",
"Alternative source": "Source alternative",
"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :",
"Insert video": "Ins\u00e9rer une vid\u00e9o",
"Poster": "Publier",
"Insert\/edit media": "Ins\u00e9rer\/modifier un m\u00e9dia",
"Embed": "Int\u00e9grer",
"Nonbreaking space": "Espace ins\u00e9cable",
"Page break": "Saut de page",
"Paste as text": "Coller comme texte",
"Preview": "Pr\u00e9visualiser",
"Print": "Imprimer",
"Save": "Enregistrer",
"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.",
"Replace": "Remplacer",
"Next": "Suiv",
"Whole words": "Mots entiers",
"Find and replace": "Trouver et remplacer",
"Replace with": "Remplacer par",
"Find": "Chercher",
"Replace all": "Tout remplacer",
"Match case": "Respecter la casse",
"Prev": "Pr\u00e9c ",
"Spellcheck": "V\u00e9rification orthographique",
"Finish": "Finie",
"Ignore all": "Tout ignorer",
"Ignore": "Ignorer",
"Add to Dictionary": "Ajouter au dictionnaire",
"Insert row before": "Ins\u00e9rer une ligne avant",
"Rows": "Lignes",
"Height": "Hauteur",
"Paste row after": "Coller la ligne apr\u00e8s",
"Alignment": "Alignement",
"Border color": "Couleur de la bordure",
"Column group": "Groupe de colonnes",
"Row": "Ligne",
"Insert column before": "Ins\u00e9rer une colonne avant",
"Split cell": "Diviser la cellule",
"Cell padding": "Espacement interne cellule",
"Cell spacing": "Espacement inter-cellulles",
"Row type": "Type de ligne",
"Insert table": "Ins\u00e9rer un tableau",
"Body": "Corps",
"Caption": "Titre",
"Footer": "Pied",
"Delete row": "Effacer la ligne",
"Paste row before": "Coller la ligne avant",
"Scope": "Etendue",
"Delete table": "Supprimer le tableau",
"H Align": "Alignement H",
"Top": "Haut",
"Header cell": "Cellule d'en-t\u00eate",
"Column": "Colonne",
"Row group": "Groupe de lignes",
"Cell": "Cellule",
"Middle": "Milieu",
"Cell type": "Type de cellule",
"Copy row": "Copier la ligne",
"Row properties": "Propri\u00e9t\u00e9s de la ligne",
"Table properties": "Propri\u00e9t\u00e9s du tableau",
"Bottom": "Bas",
"V Align": "Alignement V",
"Header": "En-t\u00eate",
"Right": "Droite",
"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s",
"Cols": "Colonnes",
"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s",
"Width": "Largeur",
"Cell properties": "Propri\u00e9t\u00e9s de la cellule",
"Left": "Gauche",
"Cut row": "Couper la ligne",
"Delete column": "Effacer la colonne",
"Center": "Centr\u00e9",
"Merge cells": "Fusionner les cellules",
"Insert template": "Ajouter un th\u00e8me",
"Templates": "Th\u00e8mes",
"Background color": "Couleur d'arri\u00e8re-plan",
"Custom...": "Personnalis\u00e9...",
"Custom color": "Couleur personnalis\u00e9e",
"No color": "Aucune couleur",
"Text color": "Couleur du texte",
"Table of Contents": "Table des mati\u00e8res",
"Show blocks": "Afficher les blocs",
"Show invisible characters": "Afficher les caract\u00e8res invisibles",
"Words: {0}": "Mots : {0}",
"Insert": "Ins\u00e9rer",
"File": "Fichier",
"Edit": "Editer",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.",
"Tools": "Outils",
"View": "Voir",
"Table": "Tableau",
"Format": "Format"
});editors/tinymce/langs/nl.js000064400000017236152177723720011766 0ustar00tinymce.addI18n('nl',{
"Add to Dictionary": "Toevoegen aan woordenlijst",
"Advanced": "Geavanceerd",
"Align center": "Centreren",
"Align left": "Links uitlijnen",
"Align right": "Rechts uitlijnen",
"Alignment": "Uitlijning",
"Alternative source": "Alternatieve bron",
"Anchor": "Anker",
"Anchors": "Anker",
"Apply": "Toepassen",
"Author": "Auteur",
"B": "Blauw",
"Back": "Terug",
"Background color": "Achtergrondkleur",
"Blockquote": "Citaat",
"Blocks": "Blokken",
"Body": "Inhoud",
"Bold": "Vet",
"Border color": "Randkleur",
"Border": "Rand",
"Bottom": "Onder",
"Brightness": "Helderheid",
"Bullet list": "Opsommingsteken",
"Cancel": "Annuleren",
"Caption": "Onderschrift",
"Cell padding": "Celpadding",
"Cell properties": "Celeigenschappen",
"Cell spacing": "Celruimte",
"Cell type": "Celtype",
"Cell": "Cel",
"Center": "Centreren",
"Circle": "Cirkel",
"Clear formatting": "Opmaak wissen",
"Close": "Sluiten",
"Code": "Codering",
"Color levels": "Kleurniveau's",
"Color": "Kleur",
"Cols": "Kolommen",
"Column group": "Kolomgroep",
"Column": "Kolom",
"Constrain proportions": "Verhoudingen behouden",
"Contrast": "Contrast",
"Copy row": "Kopieer rij",
"Copy": "Kopi\u00ebren",
"Could not find the specified string.": "Geen resultaten gevonden",
"Crop": "Uitsnijden",
"Custom color": "Aangepaste kleur",
"Custom...": "Aangepaste...",
"Cut row": "Rij knippen",
"Cut": "Knippen",
"Date\/time": "Datum\/tijd",
"Decrease indent": "Inspringen verkleinen",
"Default": "Standaard",
"Delete column": "Verwijder kolom",
"Delete row": "Verwijder rij",
"Delete table": "Verwijder tabel",
"Description": "Omschrijving",
"Dimensions": "Afmetingen",
"Disc": "Bolletje",
"Div": "Div",
"Document properties": "Documenteigenschappen",
"Edit image": "Bewerk afbeelding",
"Edit": "Bewerken",
"Embed": "Insluiten",
"Emoticons": "Emoticons",
"Encoding": "Codering",
"File": "Bestand",
"Find and replace": "Zoek en vervang",
"Find": "Zoeken",
"Finish": "Einde",
"Flip horizontally": "Horizontaal spiegelen",
"Flip vertically": "Verticaal spiegelen",
"Font Family": "Lettertype",
"Font Sizes": "Tekengrootte",
"Footer": "Voettekst",
"Format": "Opmaak",
"Formats": "Opmaak",
"Fullscreen": "Volledig scherm",
"G": "Groen",
"Gamma": "Gamma",
"General": "Algemeen",
"H Align": "Horizontaal uitlijnen",
"Header 1": "Kop 1",
"Header 2": "Kop 2",
"Header 3": "Kop 3",
"Header 4": "Kop 4",
"Header 5": "Kop 5",
"Header 6": "Kop 6",
"Header cell": "Kopcel",
"Header": "Koptekst",
"Headers": "Kopteksten",
"Heading 1": "Kop 1",
"Heading 2": "Kop 2",
"Heading 3": "Kop 3",
"Heading 4": "Kop 4",
"Heading 5": "Kop 5",
"Heading 6": "Kop 6",
"Headings": "Koppen",
"Height": "Hoogte",
"Horizontal line": "Horizontale lijn",
"Horizontal space": "Horizontale ruimte",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID moet beginnen met een letter, alleen gevolgd door letters, nummers, streepjes, punten, dubbele punten of underscores.",
"Id": "ID",
"Ignore all": "Alles negeren",
"Ignore": "Negeren",
"Image description": "Afbeeldingsomschrijving",
"Image options": "Afbeeldingsopties",
"Image": "Afbeelding",
"Increase indent": "Inspringen vergroten",
"Inline": "Inlijn",
"Insert column after": "Voeg kolom in na",
"Insert column before": "Voeg kolom in voor",
"Insert date\/time": "Voeg datum\/tijd in",
"Insert image": "Afbeelding invoegen",
"Insert link": "Hyperlink invoegen",
"Insert row after": "Voeg rij toe na",
"Insert row before": "Voeg rij toe voor",
"Insert table": "Tabel invoegen",
"Insert template": "Template invoegen",
"Insert video": "Video invoegen",
"Insert": "Invoegen",
"Insert\/Edit code sample": "Codevoorbeeld invoegen\/bewerken",
"Insert\/edit image": "Afbeelding invoegen\/bewerken",
"Insert\/edit link": "Hyperlink invoegen\/bewerken",
"Insert\/edit media": "Media invoegen\/bewerken",
"Insert\/edit video": "Video invoegen\/bewerken",
"Invert": "Omkeren",
"Italic": "Cursief",
"Justify": "Uitvullen",
"Keywords": "Trefwoorden",
"Language": "Taal",
"Left to right": "Links naar rechts",
"Left": "Links",
"Link": "Link",
"Lower Alpha": "Kleine letters",
"Lower Greek": "Griekse letters (klein)",
"Lower Roman": "Romeinse cijfers (klein)",
"Match case": "Identieke hoofd\/kleine letters",
"Media": "Media",
"Merge cells": "Cellen samenvoegen",
"Middle": "Centreren",
"Name": "Naam",
"New document": "Nieuw document",
"New window": "Nieuw venster",
"Next": "Volgende",
"No color": "Geen kleur",
"Nonbreaking space": "Vaste spatie invoegen",
"None": "Geen",
"Numbered list": "Nummering",
"Ok": "Ok",
"Orientation": "Ori\u00ebntatie",
"Page break": "Nieuwe pagina",
"Paragraph": "Paragraaf",
"Paste as text": "Plakken als tekst",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Plakken gebeurt nu als platte tekst. Tekst wordt nu ingevoegd zonder opmaak tot deze optie uitgeschakeld wordt.",
"Paste or type a link": "Plak of typ een link",
"Paste row after": "Plak rij na",
"Paste row before": "Plak rij voor",
"Paste your embed code below:": "Plak uw in te sluiten code hieronder:",
"Paste": "Plakken",
"Poster": "Poster",
"Pre": "Pre",
"Prev": "Vorige",
"Preview": "Voorbeeld",
"Print": "Afdrukken",
"R": "Rood",
"Redo": "Opnieuw",
"Remove link": "Link verwijderen",
"Replace all": "Alles vervangen",
"Replace with": "Vervangen door",
"Replace": "Vervangen",
"Resize": "Formaat aanpassen",
"Restore last draft": "Herstellen naar vorig concept",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Opgemaakte tekstgebied. Druk op ALT-F9 voor het menu. Druk op ALT-F10 voor de werkbalk. Druk op ALT-0 voor de help.",
"Right to left": "Rechts naar links",
"Right": "Rechts",
"Robots": "Robots",
"Rotate clockwise": "Rechtsom draaien",
"Rotate counterclockwise": "Linksom draaien",
"Row group": "Rijgroep",
"Row properties": "Rij-eigenschappen",
"Row type": "Rijtype",
"Row": "Rij",
"Rows": "Rijen",
"Save": "Opslaan",
"Scope": "Bereik",
"Select all": "Alles selecteren",
"Sharpen": "Scherper",
"Show blocks": "Blokken tonen",
"Show invisible characters": "Verborgen tekens tonen",
"Source code": "Broncode",
"Source": "Bron",
"Special character": "Speciale tekens",
"Spellcheck": "Spellingscontrole",
"Split cell": "Cel splitsen",
"Square": "Vierkant",
"Strikethrough": "Doorhalen",
"Style": "Stijl",
"Subscript": "Subscript",
"Superscript": "Superscript",
"Table of Contents": "Inhoudsopgave",
"Table properties": "Tabeleigenschappen",
"Table": "Tabel",
"Target": "Doel",
"Templates": "Templates",
"Text color": "Tekstkleur",
"Text to display": "Tekst om weer te geven",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "De ingegeven URL lijkt op een e-mailadres. Wilt u er \"mailto:\" aan toevoegen?",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "De ingegeven URL lijkt op een externe link. Wilt u er \"http:\/\/\" aan toevoegen?",
"Title": "Titel",
"Tools": "Gereedschap",
"Top": "Bovenaan",
"Underline": "Onderstreept",
"Undo": "Ongedaan maken",
"Upper Alpha": "Hoofdletters alfabetisch",
"Upper Roman": "Hoofdletters Romeinse cijfers",
"Url": "URL",
"V Align": "Verticaal uitlijnen",
"Vertical space": "Verticale ruimte",
"View": "Weergave",
"Visual aids": "Hulpmiddelen",
"Whole words": "Hele woorden",
"Width": "Breedte",
"Words: {0}": "Woorden: {0}",
"You have unsaved changes are you sure you want to navigate away?": "U heeft niet alles opgeslagen weet u zeker dat u de pagina wil verlaten?",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Uw browser ondersteunt geen toegang tot het klemboord. Gelieve de ctrl+X\/C\/V sneltoetsen gebruiken.",
"Zoom in": "Inzoomen",
"Zoom out": "Uitzoomen"
});editors/tinymce/langs/lt.js000064400000022514152177723720011767 0ustar00tinymce.addI18n('lt',{
"Redo": "Gr\u0105\u017einti",
"Undo": "Atstatyti",
"Cut": "I\u0161kirpti",
"Copy": "Kopijuoti",
"Paste": "\u012ed\u0117ti",
"Select all": "Pa\u017eym\u0117ti visk\u0105",
"New document": "Naujas dokumentas",
"Ok": "Gerai",
"Cancel": "Atsisakyti",
"Visual aids": "Vaizdin\u0117s priemon\u0117s",
"Bold": "Pary\u0161kintas",
"Italic": "Kursyvinis",
"Underline": "Pabrauktas",
"Strikethrough": "Perbrauktas",
"Superscript": "Vir\u0161utinis indeksas",
"Subscript": "Apatinis indeksas",
"Clear formatting": "Naikinti formatavim\u0105",
"Align left": "Lygiuoti kair\u0117je",
"Align center": "Centruoti",
"Align right": "Lygiuoti de\u0161in\u0117je",
"Justify": "I\u0161d\u0117styti per vis\u0105 plot\u012f",
"Bullet list": "\u017denklinimo s\u0105ra\u0161as",
"Numbered list": "Skaitmeninis s\u0105ra\u0161as",
"Decrease indent": "Ma\u017einti \u012ftrauk\u0105",
"Increase indent": "Didinti \u012ftrauk\u0105",
"Close": "U\u017edaryti",
"Formats": "Formatai",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nar\u0161ykl\u0117s nustatymai neleid\u017eia redaktoriui tiesiogiai pasiekti laikinosios atminties. Pra\u0161ome naudoti klaviat\u016bros klavi\u0161us Ctrl+X\/C\/V.",
"Headers": "Antra\u0161t\u0117s",
"Header 1": "Antra\u0161t\u0117 1",
"Header 2": "Antra\u0161t\u0117 2",
"Header 3": "Antra\u0161t\u0117 3",
"Header 4": "Antra\u0161t\u0117 4",
"Header 5": "Antra\u0161t\u0117 5",
"Header 6": "Antra\u0161t\u0117 6",
"Headings": "Antra\u0161t\u0117s",
"Heading 1": "Antra\u0161t\u0117 1",
"Heading 2": "Antra\u0161t\u0117 2",
"Heading 3": "Antra\u0161t\u0117 3",
"Heading 4": "Antra\u0161t\u0117 4",
"Heading 5": "Antra\u0161t\u0117 5",
"Heading 6": "Antra\u0161t\u0117 6",
"Div": "Div",
"Pre": "Pre",
"Code": "Kodas",
"Paragraph": "Paragrafas",
"Blockquote": "Citata",
"Inline": "Inline",
"Blocks": "Blokai",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Dabar \u012fterpiama paprastojo teksto re\u017eimu. Kol \u0161i parinktis \u012fjungta, turinys bus \u012fterptas kaip paprastas tekstas.",
"Font Family": "\u0160riftas",
"Font Sizes": "\u0160rifto dyd\u017eiai",
"Default": "Pagrindinis",
"Circle": "Apskritimas",
"Disc": "Diskas",
"Square": "Kvadratas",
"Lower Alpha": "Ma\u017eosios raid\u0117s",
"Lower Greek": "Ma\u017eosios graik\u0173",
"Lower Roman": "Ma\u017eosios rom\u0117n\u0173",
"Upper Alpha": "Did\u017eiosios raid\u0117s",
"Upper Roman": "Did\u017eiosios rom\u0117n\u0173",
"Anchor": "\u017dym\u0117",
"Name": "Pavadinimas",
"Id": "ID",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID turi prasid\u0117ti raide, po kurios gali b\u016bti raid\u0117s, skai\u010diai, br\u016bk\u0161niai, ta\u0161kai, kabliata\u0161kiai ar apatiniai pabraukimai.",
"You have unsaved changes are you sure you want to navigate away?": "Turite nei\u0161saugot\u0173 pakeitim\u0173! Ar tikrai norite i\u0161eiti?",
"Restore last draft": "Atstatyti paskutin\u012f projekt\u0105",
"Special character": "Specialus simbolis",
"Source code": "Pirminis \u0161altinis",
"Insert\/Edit code sample": "Prid\u0117ti \/ keisti kodo pavyzd\u012f",
"Language": "Kalba",
"Color": "Spalva",
"R": "R",
"G": "G",
"B": "B",
"Left to right": "I\u0161 kair\u0117s \u012f de\u0161in\u0119",
"Right to left": "I\u0161 de\u0161in\u0117s \u012f kair\u0119",
"Emoticons": "Jaustukai",
"Document properties": "Dokumento savyb\u0117s",
"Title": "Pavadinimas",
"Keywords": "\u017dymos",
"Description": "Apra\u0161as",
"Robots": "Robotai",
"Author": "Autorius",
"Encoding": "Kodavimas",
"Fullscreen": "Visas ekranas",
"Horizontal line": "Horizontali linija",
"Insert\/edit image": "\u012eterpti|Tvarkyti paveiksl\u0117l\u012f",
"Image description": "Paveiksl\u0117lio apra\u0161as",
"Source": "Pirmin\u0117 nuoroda",
"Dimensions": "Matmenys",
"Constrain proportions": "Laikytis proporcij\u0173",
"General": "Bendra",
"Advanced": "I\u0161pl\u0117stas",
"Style": "Stilius",
"Vertical space": "Vertikalus tarpas",
"Horizontal space": "Horizontalus tarpas",
"Border": "R\u0117melis",
"Insert image": "\u012eterpti paveiksl\u0117l\u012f",
"Image": "Paveiksl\u0117lis",
"Rotate counterclockwise": "Pasukti prie\u0161 laikrod\u017eio rodykl\u0119",
"Rotate clockwise": "Pasukti pagal laikrod\u017eio rodykl\u0119",
"Flip vertically": "Apversti vertikaliai",
"Flip horizontally": "Apversti horizontaliai",
"Edit image": "Redaguoti paveiksl\u0117l\u012f",
"Image options": "Paveiksl\u0117lio nustatymai",
"Zoom in": "Priartinti",
"Zoom out": "Atitolinti",
"Crop": "Atkarpyti",
"Resize": "Keisti dyd\u012f",
"Orientation": "Pasukimas",
"Brightness": "\u0160viesumas",
"Sharpen": "Ry\u0161kumas",
"Contrast": "Kontrastas",
"Color levels": "Spalv\u0173 lygiai",
"Gamma": "Gama",
"Invert": "Prie\u0161ingos spalvos",
"Apply": "Taikyti",
"Back": "Atgal",
"Insert date\/time": "\u012eterpti dat\u0105\/laik\u0105",
"Date\/time": "Data \/ laikas",
"Insert link": "\u012eterpti nuorod\u0105",
"Insert\/edit link": "\u012eterpti\/taisyti nuorod\u0105",
"Text to display": "Rodomas tekstas",
"Url": "Nuoroda",
"Target": "Tikslin\u0117 nuoroda",
"None": "Nieko",
"New window": "Naujas langas",
"Remove link": "\u0160alinti nuorod\u0105",
"Anchors": "\u017dym\u0117",
"Link": "Nuoroda",
"Paste or type a link": "\u012eklijuokite arba \u012fra\u0161ykite nuorod\u0105",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Atrodo, kad \u012fvesta nuoroda yra elektroninio pa\u0161to adresas. Ar norite prie\u0161 j\u012f \u012fvesti reikalaujam\u0105 \u201emailto:\u201c?",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Atrodo, kad \u012fved\u0117te nuotolin\u0119 nuorod\u0105. Ar norite prie\u0161 j\u0105 \u012fvesti reikalaujam\u0105 \u201ehttp:\/\/\u201c?",
"Insert video": "\u012eterpti video",
"Insert\/edit video": "\u012eterpti\/tvarkyti video",
"Insert\/edit media": "Prid\u0117ti \/ keisti medij\u0105",
"Alternative source": "Alternatyvus \u0161altinis",
"Poster": "Plakatas",
"Paste your embed code below:": "\u012eterpkite kod\u0105 \u017eemiau:",
"Embed": "\u012eterpti",
"Media": "Medija",
"Nonbreaking space": "Nepertraukiamos vietos",
"Page break": "Puslapio skirtukas",
"Paste as text": "\u012eklijuoti kaip tekst\u0105",
"Preview": "Per\u017ei\u016bra",
"Print": "Spausdinti",
"Save": "I\u0161saugoti",
"Find": "Ie\u0161koti",
"Replace with": "Kuo pakeisti",
"Replace": "Pakeisti",
"Replace all": "Pakeisti visk\u0105",
"Prev": "Ankstesnis",
"Next": "Sekantis",
"Find and replace": "Surasti ir pakeisti",
"Could not find the specified string.": "Nepavyko rasti nurodytos eilut\u0117s.",
"Match case": "Atitinkamus",
"Whole words": "Visus \u017eod\u017eius",
"Spellcheck": "Ra\u0161ybos tikrinimas",
"Ignore": "Ignoruoti",
"Ignore all": "Ignoruoti visk\u0105",
"Finish": "Baigti",
"Add to Dictionary": "Prid\u0117ti \u012f \u017dodyn\u0105",
"Insert table": "\u012eterpti lentel\u0119",
"Table properties": "Lentel\u0117s savyb\u0117s",
"Delete table": "\u0160alinti lentel\u0119",
"Cell": "Langeliai",
"Row": "Eilut\u0117s",
"Column": "Stulpelis",
"Cell properties": "Langelio savyb\u0117s",
"Merge cells": "Sujungti langelius",
"Split cell": "Skaidyti langelius",
"Insert row before": "\u012eterpti eilut\u0119 prie\u0161",
"Insert row after": "\u012eterpti eilut\u0119 po",
"Delete row": "Naikinti eilut\u0119",
"Row properties": "Eilut\u0117s savyb\u0117s",
"Cut row": "I\u0161kirpti eilut\u0119",
"Copy row": "Kopijuoti eilut\u0119",
"Paste row before": "\u012ed\u0117ti eilut\u0119 prie\u0161",
"Paste row after": "\u012ed\u0117ti eilut\u0119 po",
"Insert column before": "\u012eterpti stulpel\u012f prie\u0161",
"Insert column after": "\u012eterpti stulpel\u012f po",
"Delete column": "Naikinti stulpel\u012f",
"Cols": "Stulpeliai",
"Rows": "Eilut\u0117s",
"Width": "Plotis",
"Height": "Auk\u0161tis",
"Cell spacing": "Tarpas tarp langeli\u0173",
"Cell padding": "Tarpas nuo langelio iki teksto",
"Caption": "Antra\u0161t\u0117",
"Left": "Kair\u0117",
"Center": "Centras",
"Right": "De\u0161in\u0117",
"Cell type": "Langelio tipas",
"Scope": "Strukt\u016bra",
"Alignment": "Lygiavimas",
"H Align": "H Lygiavimas",
"V Align": "V Lygiavimas",
"Top": "Vir\u0161uje",
"Middle": "Viduryje",
"Bottom": "Apa\u010dioje",
"Header cell": "Antra\u0161t\u0117s langelis",
"Row group": "Eilu\u010di\u0173 grup\u0117",
"Column group": "Stulpeli\u0173 grup\u0117",
"Row type": "Eilu\u010di\u0173 tipas",
"Header": "Antra\u0161t\u0117",
"Body": "Turinys",
"Footer": "Apa\u010dia",
"Border color": "R\u0117melio spalva",
"Insert template": "\u012eterpti \u0161ablon\u0105",
"Templates": "\u0160ablonai",
"Text color": "Teksto spalva",
"Background color": "Fono spalva",
"Custom...": "Pasirinktinas...",
"Custom color": "Pasirinktina spalva",
"No color": "Jokios spalvos",
"Table of Contents": "Turinys",
"Show blocks": "Rodyti blokus",
"Show invisible characters": "Rodyti nematomus simbolius",
"Words: {0}": "\u017dod\u017eiai: {0}",
"File": "Failas",
"Edit": "Redaguoti",
"Insert": "\u012eterpti",
"View": "Per\u017ei\u016bra",
"Format": "Formatas",
"Table": "Lentel\u0117",
"Tools": "\u012erankiai",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Suformatuoto teksto laukas. D\u0117l meniu spauskite ALT-F9. U\u017eduo\u010di\u0173 juostos \u012fjungimui spauskite ALT-F10. Pagalbai - spauskite ALT-0."
});editors/tinymce/langs/tr.js000064400000016473152177723720012004 0ustar00tinymce.addI18n('tr',{
"Cut": "Kes",
"Header 2": "Ba\u015fl\u0131k 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Taray\u0131c\u0131n\u0131z panoya direk eri\u015fimi desteklemiyor. L\u00fctfen Ctrl+X\/C\/V klavye k\u0131sayollar\u0131n\u0131 kullan\u0131n.",
"Div": "Div",
"Paste": "Yap\u0131\u015ft\u0131r",
"Close": "Kapat",
"Font Family": "Yaz\u0131tipi Ailesi",
"Pre": "\u00d6n",
"Align right": "Sa\u011fa hizala",
"New document": "Yeni dok\u00fcman",
"Blockquote": "Al\u0131nt\u0131",
"Numbered list": "S\u0131ral\u0131 liste",
"Increase indent": "Girintiyi art\u0131r",
"Formats": "Bi\u00e7imler",
"Headers": "Ba\u015fl\u0131klar",
"Select all": "T\u00fcm\u00fcn\u00fc se\u00e7",
"Header 3": "Ba\u015fl\u0131k 3",
"Blocks": "Bloklar",
"Undo": "Geri Al",
"Strikethrough": "\u00dcst\u00fc \u00e7izili",
"Bullet list": "S\u0131ras\u0131z liste",
"Header 1": "Ba\u015fl\u0131k 1",
"Superscript": "\u00dcst simge",
"Clear formatting": "Bi\u00e7imi temizle",
"Font Sizes": "Yaz\u0131tipi B\u00fcy\u00fckl\u00fc\u011f\u00fc",
"Subscript": "Alt simge",
"Header 6": "Ba\u015fl\u0131k 6",
"Redo": "Yinele",
"Paragraph": "Paragraf",
"Ok": "Tamam",
"Bold": "Kal\u0131n",
"Code": "Kod",
"Italic": "\u0130talik",
"Align center": "Ortala",
"Header 5": "Ba\u015fl\u0131k 5",
"Decrease indent": "Girintiyi azalt",
"Header 4": "Ba\u015fl\u0131k 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00fcz metin modunda yap\u0131\u015ft\u0131r. Bu se\u00e7ene\u011fi kapatana kadar i\u00e7erikler d\u00fcz metin olarak yap\u0131\u015ft\u0131r\u0131l\u0131r.",
"Underline": "Alt\u0131 \u00e7izili",
"Cancel": "\u0130ptal",
"Justify": "\u0130ki yana yasla",
"Inline": "Sat\u0131r i\u00e7i",
"Copy": "Kopyala",
"Align left": "Sola hizala",
"Visual aids": "G\u00f6rsel ara\u00e7lar",
"Lower Greek": "K\u00fc\u00e7\u00fck Yunan alfabesi",
"Square": "Kare",
"Default": "Varsay\u0131lan",
"Lower Alpha": "K\u00fc\u00e7\u00fck ABC",
"Circle": "Daire",
"Disc": "Disk",
"Upper Alpha": "B\u00fcy\u00fck ABC",
"Upper Roman": "B\u00fcy\u00fck Roman alfabesi",
"Lower Roman": "K\u00fc\u00e7\u00fck Roman alfabesi",
"Name": "\u0130sim",
"Anchor": "\u00c7apa",
"You have unsaved changes are you sure you want to navigate away?": "Kaydedilmemi\u015f de\u011fi\u015fiklikler var, sayfadan ayr\u0131lmak istedi\u011finize emin misiniz?",
"Restore last draft": "Son tasla\u011f\u0131 kurtar",
"Special character": "\u00d6zel karakter",
"Source code": "Kaynak kodu",
"Right to left": "Sa\u011fdan sola",
"Left to right": "Soldan sa\u011fa",
"Emoticons": "G\u00fcl\u00fcc\u00fckler",
"Robots": "Robotlar",
"Document properties": "Dok\u00fcman \u00f6zellikleri",
"Title": "Ba\u015fl\u0131k",
"Keywords": "Anahtar kelimeler",
"Encoding": "Kodlama",
"Description": "A\u00e7\u0131klama",
"Author": "Yazar",
"Fullscreen": "Tam ekran",
"Horizontal line": "Yatay \u00e7izgi",
"Horizontal space": "Yatay bo\u015fluk",
"Insert\/edit image": "Resim ekle\/d\u00fczenle",
"General": "Genel",
"Advanced": "Geli\u015fmi\u015f",
"Source": "Kaynak",
"Border": "\u00c7er\u00e7eve",
"Constrain proportions": "En - Boy oran\u0131n\u0131 koru",
"Vertical space": "Dikey bo\u015fluk",
"Image description": "Resim a\u00e7\u0131klamas\u0131",
"Style": "Stil",
"Dimensions": "Boyutlar",
"Insert image": "Resim ekle",
"Insert date\/time": "Tarih \/ Zaman ekle",
"Remove link": "Ba\u011flant\u0131y\u0131 kald\u0131r",
"Url": "Url",
"Text to display": "G\u00f6r\u00fcnen yaz\u0131",
"Anchors": "\u00c7apalar",
"Insert link": "Ba\u011flant\u0131 ekle",
"New window": "Yeni pencere",
"None": "Hi\u00e7biri",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "Hedef",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Ba\u011flant\u0131 ekle\/d\u00fczenle",
"Insert\/edit video": "Video ekle\/d\u00fczenle",
"Poster": "Poster",
"Alternative source": "Alternatif kaynak",
"Paste your embed code below:": "Medya g\u00f6mme kodunu buraya yap\u0131\u015ft\u0131r:",
"Insert video": "Video ekle",
"Embed": "G\u00f6mme",
"Nonbreaking space": "B\u00f6l\u00fcnemez bo\u015fluk",
"Page break": "Sayfa sonu",
"Paste as text": "Metin olarak yap\u0131\u015ft\u0131r",
"Preview": "\u00d6nizleme",
"Print": "Yazd\u0131r",
"Save": "Kaydet",
"Could not find the specified string.": "Herhangi bir sonu\u00e7 bulunamad\u0131.",
"Replace": "De\u011fi\u015ftir",
"Next": "Sonraki",
"Whole words": "Tam s\u00f6zc\u00fckler",
"Find and replace": "Bul ve de\u011fi\u015ftir",
"Replace with": "Bununla de\u011fi\u015ftir",
"Find": "Bul",
"Replace all": "T\u00fcm\u00fcn\u00fc de\u011fi\u015ftir",
"Match case": "B\u00fcy\u00fck \/ K\u00fc\u00e7\u00fck harfe duyarl\u0131",
"Prev": "\u00d6nceki",
"Spellcheck": "Yaz\u0131m denetimi",
"Finish": "Bitir",
"Ignore all": "T\u00fcm\u00fcn\u00fc yoksay",
"Ignore": "Yoksay",
"Insert row before": "\u00d6ncesine yeni sat\u0131r ekle",
"Rows": "Sat\u0131rlar",
"Height": "Y\u00fckseklik",
"Paste row after": "Sonras\u0131na sat\u0131r  yap\u0131\u015ft\u0131r",
"Alignment": "Hizalama",
"Column group": "S\u00fctun grubu",
"Row": "Sat\u0131r",
"Insert column before": "\u00d6ncesine yeni s\u00fctun ekle",
"Split cell": "H\u00fccreleri ay\u0131r",
"Cell padding": "H\u00fccre i\u00e7 bo\u015flu\u011fu",
"Cell spacing": "H\u00fccre aral\u0131\u011f\u0131",
"Row type": "Sat\u0131r tipi",
"Insert table": "Tablo ekle",
"Body": "G\u00f6vde",
"Caption": "Ba\u015fl\u0131k",
"Footer": "Alt",
"Delete row": "Sat\u0131r\u0131 sil",
"Paste row before": "\u00d6ncesine sat\u0131r yap\u0131\u015ft\u0131r",
"Scope": "Kapsam",
"Delete table": "Tabloyu sil",
"Header cell": "Ba\u015fl\u0131k h\u00fccresi",
"Column": "S\u00fctun",
"Cell": "H\u00fccre",
"Header": "Ba\u015fl\u0131k",
"Cell type": "H\u00fccre tipi",
"Copy row": "Sat\u0131r\u0131 kopyala",
"Row properties": "Sat\u0131r \u00f6zellikleri",
"Table properties": "Tablo \u00f6zellikleri",
"Row group": "Sat\u0131r grubu",
"Right": "Sa\u011f",
"Insert column after": "Sonras\u0131na yeni s\u00fctun ekle",
"Cols": "S\u00fctunlar",
"Insert row after": "Sonras\u0131na yeni sat\u0131r ekle",
"Width": "Geni\u015flik",
"Cell properties": "H\u00fccre \u00f6zellikleri",
"Left": "Sol",
"Cut row": "Sat\u0131r\u0131 kes",
"Delete column": "S\u00fctunu sil",
"Center": "Orta",
"Merge cells": "H\u00fccreleri birle\u015ftir",
"Insert template": "\u015eablon ekle",
"Templates": "\u015eablonlar",
"Background color": "Arkaplan rengi",
"Text color": "Yaz\u0131 rengi",
"Show blocks": "Bloklar\u0131 g\u00f6r\u00fcnt\u00fcle",
"Show invisible characters": "G\u00f6r\u00fcnmez karakterleri g\u00f6ster",
"Words: {0}": "Kelime: {0}",
"Insert": "Ekle",
"File": "Dosya",
"Edit": "D\u00fczenle",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zengin Metin Alan\u0131. Men\u00fc i\u00e7in ALT-F9 k\u0131sayolunu kullan\u0131n. Ara\u00e7 \u00e7ubu\u011fu i\u00e7in ALT-F10 k\u0131sayolunu kullan\u0131n. Yard\u0131m i\u00e7in ALT-0 k\u0131sayolunu kullan\u0131n.",
"Tools": "Ara\u00e7lar",
"View": "G\u00f6r\u00fcnt\u00fcle",
"Table": "Tablo",
"Format": "Bi\u00e7im"
});editors/tinymce/langs/da.js000064400000017612152177723720011737 0ustar00tinymce.addI18n('da',{
"Cut": "Klip",
"Heading 5": "Overskrift 5",
"Header 2": "Overskrift 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din browser underst\u00f8tter ikke direkte adgang til clipboard. Benyt Ctrl+X\/C\/ keybord shortcuts i stedet for.",
"Heading 4": "Overskrift 4",
"Div": "Div",
"Heading 2": "Overskrift 2",
"Paste": "Inds\u00e6t",
"Close": "Luk",
"Font Family": "Skrifttype",
"Pre": "Pre",
"Align right": "H\u00f8jrejusteret",
"New document": "Nyt dokument",
"Blockquote": "Indrykning",
"Numbered list": "Nummerering",
"Heading 1": "Overskrift 1",
"Headings": "Overskrifter",
"Increase indent": "For\u00f8g indrykning",
"Formats": "Formater",
"Headers": "Overskrifter",
"Select all": "V\u00e6lg alle",
"Header 3": "Overskrift 3",
"Blocks": "Blokke",
"Undo": "Fortryd",
"Strikethrough": "Gennemstreg",
"Bullet list": "Punkt tegn",
"Header 1": "Overskrift 1",
"Superscript": "H\u00e6vet",
"Clear formatting": "Nulstil formattering",
"Font Sizes": "Skriftst\u00f8rrelse",
"Subscript": "S\u00e6nket",
"Header 6": "Overskrift 6",
"Redo": "Genopret",
"Paragraph": "S\u00e6tning",
"Ok": "Ok",
"Bold": "Fed",
"Code": "Code",
"Italic": "Kursiv",
"Align center": "Centreret",
"Header 5": "Overskrift 5",
"Heading 6": "Overskrift 6",
"Heading 3": "Overskrift 3",
"Decrease indent": "Formindsk indrykning",
"Header 4": "Overskrift 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "S\u00e6t ind er indstillet til at inds\u00e6tte som ren tekst. Indhold bliver nu indsat uden formatering indtil du \u00e6ndrer indstillingen.",
"Underline": "Understreg",
"Cancel": "Fortryd",
"Justify": "Justering",
"Inline": "Inline",
"Copy": "Kopier",
"Align left": "Venstrejusteret",
"Visual aids": "Visuel hj\u00e6lp",
"Lower Greek": "Lower Gr\u00e6sk",
"Square": "Kvadrat",
"Default": "Standard",
"Lower Alpha": "Lower Alpha",
"Circle": "Cirkel",
"Disc": "Disk",
"Upper Alpha": "Upper Alpha",
"Upper Roman": "Upper Roman",
"Lower Roman": "Lower Roman",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id b\u00f8r starte med et bogstav, efterfulgt af bogstaver, tal, bindestreger, punktummer, koloner eller underscores.",
"Name": "Navn",
"Anchor": "Anchor",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Du har ikke gemte \u00e6ndringer. Er du sikker p\u00e5 at du vil forts\u00e6tte?",
"Restore last draft": "Genopret sidste kladde",
"Special character": "Specielle tegn",
"Source code": "Kildekode",
"Language": "Sprog",
"Insert\/Edit code sample": "Inds\u00e6t\/Ret kodeeksempel",
"B": "B",
"R": "R",
"G": "G",
"Color": "Farve",
"Right to left": "H\u00f8jre til venstre",
"Left to right": "Venstre til h\u00f8jre",
"Emoticons": "Emot-ikoner",
"Robots": "Robotter",
"Document properties": "Dokument egenskaber",
"Title": "Titel",
"Keywords": "S\u00f8geord",
"Encoding": "Kodning",
"Description": "Beskrivelse",
"Author": "Forfatter",
"Fullscreen": "Fuldsk\u00e6rm",
"Horizontal line": "Vandret linie",
"Horizontal space": "Vandret afstand",
"Insert\/edit image": "Inds\u00e6t\/ret billede",
"General": "Generet",
"Advanced": "Avanceret",
"Source": "Kilde",
"Border": "Kant",
"Constrain proportions": "Behold propertioner",
"Vertical space": "Lodret afstand",
"Image description": "Billede beskrivelse",
"Style": "Stil",
"Dimensions": "Dimensioner",
"Insert image": "Inds\u00e6t billede",
"Image": "Billede",
"Zoom in": "Zoom ind",
"Contrast": "Kontrast",
"Back": "Tilbage",
"Gamma": "Gamma",
"Flip horizontally": "Flip horisontalt",
"Resize": "Skaler",
"Sharpen": "G\u00f8r skarpere",
"Zoom out": "Zoom ud",
"Image options": "Billede indstillinger",
"Apply": "Anvend",
"Brightness": "Lysstyrke",
"Rotate clockwise": "Drej med urets retning",
"Rotate counterclockwise": "Drej modsat urets retning",
"Edit image": "Rediger billede",
"Color levels": "Farve niveauer",
"Crop": "Besk\u00e6r",
"Orientation": "Retning",
"Flip vertically": "Flip vertikalt",
"Invert": "Inverter",
"Date\/time": "Dato\/klokkeslet",
"Insert date\/time": "Inds\u00e6t dato\/klokkeslet",
"Remove link": "Fjern link",
"Url": "Url",
"Text to display": "Vis tekst",
"Anchors": "Ankre",
"Insert link": "Inds\u00e6t link",
"Link": "Link",
"New window": "Nyt vindue",
"None": "Ingen",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URLen som du angav ser ud til at v\u00e6re et eksternt link. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks http:\/\/ ?",
"Paste or type a link": "Inds\u00e6t eller skriv et link",
"Target": "Target",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URLen som du angav ser ud til at v\u00e6re en email adresse. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks  mailto: ?",
"Insert\/edit link": "Inds\u00e6t\/ret link",
"Insert\/edit video": "Inds\u00e6t\/ret video",
"Media": "Medier",
"Alternative source": "Alternativ kilde",
"Paste your embed code below:": "Inds\u00e6t din embed kode herunder:",
"Insert video": "Inds\u00e6t video",
"Poster": "Poster",
"Insert\/edit media": "Inds\u00e6t\/ret medier",
"Embed": "Integrer",
"Nonbreaking space": "H\u00e5rdt mellemrum",
"Page break": "Sideskift",
"Paste as text": "Inds\u00e6t som ren tekst",
"Preview": "Forh\u00e5ndsvisning",
"Print": "Udskriv",
"Save": "Gem",
"Could not find the specified string.": "Kunne ikke finde s\u00f8getekst",
"Replace": "Erstat",
"Next": "N\u00e6ste",
"Whole words": "Hele ord",
"Find and replace": "Find og erstat",
"Replace with": "Erstat med",
"Find": "Find",
"Replace all": "Erstat alt",
"Match case": "STORE og sm\u00e5 bogstaver",
"Prev": "Forrige",
"Spellcheck": "Stavekontrol",
"Finish": "F\u00e6rdig",
"Ignore all": "Ignorer alt",
"Ignore": "Ignorer",
"Add to Dictionary": "Tilf\u00f8j til ordbog",
"Insert row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
"Rows": "R\u00e6kker",
"Height": "H\u00f8jde",
"Paste row after": "Inds\u00e6t r\u00e6kke efter",
"Alignment": "Tilpasning",
"Border color": "Kant farve",
"Column group": "Kolonne gruppe",
"Row": "R\u00e6kke",
"Insert column before": "Inds\u00e6t kolonne f\u00f8r",
"Split cell": "Split celle",
"Cell padding": "Celle padding",
"Cell spacing": "Celle afstand",
"Row type": "R\u00e6kke type",
"Insert table": "Inds\u00e6t tabel",
"Body": "Krop",
"Caption": "Tekst",
"Footer": "Sidefod",
"Delete row": "Slet r\u00e6kke",
"Paste row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
"Scope": "Anvendelsesomr\u00e5de",
"Delete table": "Slet tabel",
"H Align": "H juster",
"Top": "Top",
"Header cell": "Sidehoved celle",
"Column": "Kolonne",
"Row group": "R\u00e6kke gruppe",
"Cell": "Celle",
"Middle": "Midt",
"Cell type": "Celle type",
"Copy row": "Kopier r\u00e6kke",
"Row properties": "R\u00e6kke egenskaber",
"Table properties": "Tabel egenskaber",
"Bottom": "Bund",
"V Align": "V juster",
"Header": "Sidehoved",
"Right": "H\u00f8jre",
"Insert column after": "Inds\u00e6t kolonne efter",
"Cols": "Kolonne",
"Insert row after": "Inds\u00e6t r\u00e6kke efter",
"Width": "Bredde",
"Cell properties": "Celle egenskaber",
"Left": "Venstre",
"Cut row": "Klip r\u00e6kke",
"Delete column": "Slet kolonne",
"Center": "Centrering",
"Merge cells": "Flet celler",
"Insert template": "Inds\u00e6t skabelon",
"Templates": "Skabeloner",
"Background color": "Baggrunds farve",
"Custom...": "Brugerdefineret...",
"Custom color": "Brugerdefineret farve",
"No color": "Ingen farve",
"Text color": "Tekst farve",
"Table of Contents": "Indholdsfortegnelse",
"Show blocks": "Vis klokke",
"Show invisible characters": "Vis usynlige tegn",
"Words: {0}": "Ord: {0}",
"Insert": "Inds\u00e6t",
"File": "Fil",
"Edit": "Rediger",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text omr\u00e5de. Tryk ALT-F9 for menu. Tryk ALT-F10 for toolbar. Tryk ALT-0 for hj\u00e6lp",
"Tools": "V\u00e6rkt\u00f8j",
"View": "Vis",
"Table": "Tabel",
"Format": "Format"
});editors/tinymce/langs/km.js000064400000051620152177723720011757 0ustar00tinymce.addI18n('km',{
"Cut": "\u1780\u17b6\u178f\u17cb",
"Heading 5": "\u1780\u17d2\u1794\u17b6\u179b 5",
"Header 2": "\u1780\u17d2\u1794\u17b6\u179b 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u1780\u1798\u17d2\u1798\u179c\u17b7\u1792\u17b8\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u200b\u179a\u1794\u179f\u17cb\u200b\u17a2\u17d2\u1793\u1780\u200b\u1798\u17b7\u1793\u200b\u17a2\u17b6\u1785\u200b\u1785\u17bc\u179b\u200b\u1795\u17d2\u1791\u17b6\u179b\u17cb\u200b\u1791\u17c5\u200b\u1780\u17b6\u1793\u17cb\u200b\u1780\u17d2\u178a\u17b6\u179a\u200b\u178f\u1798\u17d2\u1794\u17c0\u178f\u200b\u1781\u17d2\u1791\u17b6\u179f\u17cb\u200b\u17a1\u17be\u1799\u17d4 \u179f\u17bc\u1798\u200b\u1794\u17d2\u179a\u17be Ctrl+X\/C\/V \u179b\u17be\u200b\u1780\u17d2\u178a\u17b6\u179a\u200b\u1785\u17bb\u1785\u200b\u1787\u17c6\u1793\u17bd\u179f\u200b\u179c\u17b7\u1789\u17d4",
"Heading 4": "\u1780\u17d2\u1794\u17b6\u179b 4",
"Div": "Div",
"Heading 2": "\u1780\u17d2\u1794\u17b6\u179b 2",
"Paste": "\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb",
"Close": "\u1794\u17b7\u1791",
"Font Family": "\u1796\u17bb\u1798\u17d2\u1796\u200b\u17a2\u1780\u17d2\u179f\u179a",
"Pre": "Pre",
"Align right": "\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1791\u17c5\u200b\u179f\u17d2\u178a\u17b6\u17c6",
"New document": "\u17af\u1780\u179f\u17b6\u179a\u200b\u17a2\u178f\u17d2\u1790\u1794\u1791\u200b\u1790\u17d2\u1798\u17b8",
"Blockquote": "\u1794\u17d2\u179b\u1780\u17cb\u200b\u1796\u17b6\u1780\u17d2\u1799\u200b\u179f\u1798\u17d2\u179a\u1784\u17cb",
"Numbered list": "\u1794\u1789\u17d2\u1787\u17b8\u200b\u1787\u17b6\u200b\u179b\u17c1\u1781",
"Heading 1": "\u1780\u17d2\u1794\u17b6\u179b 1",
"Headings": "\u1780\u17d2\u1794\u17b6\u179b",
"Increase indent": "\u1781\u17b7\u178f\u200b\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u200b\u1785\u17bc\u179b",
"Formats": "\u1791\u1798\u17d2\u179a\u1784\u17cb",
"Headers": "\u1780\u17d2\u1794\u17b6\u179b",
"Select all": "\u1787\u17d2\u179a\u17be\u179f\u200b\u1791\u17b6\u17c6\u1784\u200b\u17a2\u179f\u17cb",
"Header 3": "\u1780\u17d2\u1794\u17b6\u179b 3",
"Blocks": "\u1794\u17d2\u179b\u1780\u17cb",
"Undo": "\u1798\u17b7\u1793\u200b\u1792\u17d2\u179c\u17be\u200b\u179c\u17b7\u1789",
"Strikethrough": "\u1782\u17bc\u179f\u200b\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u200b\u1780\u178e\u17d2\u178a\u17b6\u179b",
"Bullet list": "\u1794\u1789\u17d2\u1787\u17b8\u200b\u1787\u17b6\u200b\u1785\u17c6\u178e\u17bb\u1785",
"Header 1": "\u1780\u17d2\u1794\u17b6\u179b 1",
"Superscript": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u178f\u17bc\u1785\u200b\u179b\u17be",
"Clear formatting": "\u179f\u1798\u17d2\u17a2\u17b6\u178f\u200b\u1791\u1798\u17d2\u179a\u1784\u17cb",
"Font Sizes": "\u1791\u17c6\u17a0\u17c6\u200b\u17a2\u1780\u17d2\u179f\u179a",
"Subscript": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u178f\u17bc\u1785\u200b\u1780\u17d2\u179a\u17c4\u1798",
"Header 6": "\u1780\u17d2\u1794\u17b6\u179b 6",
"Redo": "\u1792\u17d2\u179c\u17be\u200b\u179c\u17b7\u1789",
"Paragraph": "\u1780\u178b\u17b6\u1781\u178e\u17d2\u178c",
"Ok": "\u1796\u17d2\u179a\u1798",
"Bold": "\u178a\u17b7\u178f",
"Code": "\u1780\u17bc\u178a",
"Italic": "\u1791\u17d2\u179a\u17c1\u178f",
"Align center": "\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1791\u17c5\u200b\u1780\u178e\u17d2\u178a\u17b6\u179b",
"Header 5": "\u1780\u17d2\u1794\u17b6\u179b 5",
"Heading 6": "\u1780\u17d2\u1794\u17b6\u179b 6",
"Heading 3": "\u1780\u17d2\u1794\u17b6\u179b 3",
"Decrease indent": "\u1781\u17b7\u178f\u200b\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u200b\u1785\u17c1\u1789",
"Header 4": "\u1780\u17d2\u1794\u17b6\u179b 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u1780\u17b6\u179a\u200b\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1796\u17c1\u179b\u200b\u1793\u17c1\u17c7 \u179f\u17d2\u1790\u17b7\u178f\u200b\u1780\u17d2\u1793\u17bb\u1784\u200b\u1794\u17c2\u1794\u200b\u1795\u17c2\u1793\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u1792\u1798\u17d2\u1798\u178f\u17b6\u17d4 \u1794\u1785\u17d2\u1785\u17bb\u1794\u17d2\u1794\u1793\u17d2\u1793\u200b\u1793\u17c1\u17c7 \u1798\u17b6\u178f\u17b7\u1780\u17b6\u200b\u1791\u17b6\u17c6\u1784\u200b\u17a1\u17b6\u1799\u200b\u1793\u17b9\u1784\u200b\u178f\u17d2\u179a\u17bc\u179c\u200b\u1794\u17b6\u1793\u200b\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1787\u17b6\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u1792\u1798\u17d2\u1798\u178f\u17b6 \u179b\u17bb\u17c7\u178f\u17d2\u179a\u17b6\u200b\u178f\u17c2\u200b\u17a2\u17d2\u1793\u1780\u200b\u1794\u17b7\u1791\u200b\u1787\u1798\u17d2\u179a\u17be\u179f\u200b\u1793\u17c1\u17c7\u17d4",
"Underline": "\u1782\u17bc\u179f\u200b\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u200b\u1796\u17b8\u200b\u1780\u17d2\u179a\u17c4\u1798",
"Cancel": "\u1794\u17c4\u17c7\u200b\u1794\u1784\u17cb",
"Justify": "\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1796\u17c1\u1789",
"Inline": "\u1780\u17d2\u1793\u17bb\u1784\u200b\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb",
"Copy": "\u1785\u1798\u17d2\u179b\u1784",
"Align left": "\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1791\u17c5\u200b\u1786\u17d2\u179c\u17c1\u1784",
"Visual aids": "\u1791\u17b7\u178a\u17d2\u178b\u1797\u17b6\u1796\u200b\u1787\u17c6\u1793\u17bd\u1799",
"Lower Greek": "\u179b\u17c1\u1781\u200b\u1780\u17d2\u179a\u17b7\u1780\u200b\u178f\u17bc\u1785",
"Square": "\u1787\u17d2\u179a\u17bb\u1784",
"Default": "\u179b\u17c6\u1793\u17b6\u17c6\u200b\u178a\u17be\u1798",
"Lower Alpha": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u178f\u17bc\u1785",
"Circle": "\u1798\u17bc\u179b",
"Disc": "\u1790\u17b6\u179f",
"Upper Alpha": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u1792\u17c6",
"Upper Roman": "\u179b\u17c1\u1781\u200b\u179a\u17c9\u17bc\u1798\u17c9\u17b6\u17c6\u1784\u200b\u1792\u17c6",
"Lower Roman": "\u179b\u17c1\u1781\u200b\u179a\u17c9\u17bc\u1798\u17c9\u17b6\u17c6\u1784\u200b\u178f\u17bc\u1785",
"Name": "\u1788\u17d2\u1798\u17c4\u17c7",
"Anchor": "\u1799\u17bb\u1790\u17d2\u1780\u17b6",
"You have unsaved changes are you sure you want to navigate away?": "\u1798\u17b6\u1793\u200b\u1794\u1793\u17d2\u179b\u17b6\u179f\u17cb\u200b\u1794\u17d2\u178a\u17bc\u179a\u200b\u1798\u17b7\u1793\u200b\u1791\u17b6\u1793\u17cb\u200b\u1794\u17b6\u1793\u200b\u179a\u1780\u17d2\u179f\u17b6\u200b\u1791\u17bb\u1780\u17d4 \u178f\u17be\u200b\u17a2\u17d2\u1793\u1780\u200b\u1796\u17b7\u178f\u200b\u1787\u17b6\u200b\u1785\u1784\u17cb\u200b\u1785\u17b6\u1780\u200b\u1785\u17c1\u1789\u200b\u1796\u17b8\u1791\u17b8\u1793\u17c1\u17c7\u200b\u1798\u17c2\u1793\u1791\u17c1?",
"Restore last draft": "\u179f\u17d2\u178a\u17b6\u179a\u200b\u179f\u17c1\u1785\u1780\u17d2\u178a\u17b8\u200b\u1796\u17d2\u179a\u17b6\u1784\u200b\u1796\u17b8\u200b\u1798\u17bb\u1793",
"Special character": "\u178f\u17bd\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u1796\u17b7\u179f\u17c1\u179f",
"Source code": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u1780\u17bc\u178a",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u1796\u178e\u17cc",
"Right to left": "\u179f\u17d2\u178a\u17b6\u17c6\u200b\u1791\u17c5\u200b\u1786\u17d2\u179c\u17c1\u1784",
"Left to right": "\u1786\u17d2\u179c\u17c1\u1784\u200b\u1791\u17c5\u200b\u179f\u17d2\u178a\u17b6\u17c6",
"Emoticons": "\u179a\u17bc\u1794\u200b\u179f\u1789\u17d2\u1789\u17b6\u178e\u200b\u17a2\u17b6\u179a\u1798\u17d2\u1798\u178e\u17cd",
"Robots": "\u179a\u17bc\u1794\u1799\u1793\u17d2\u178f",
"Document properties": "\u179b\u1780\u17d2\u1781\u178e\u17c8\u200b\u179f\u1798\u17d2\u1794\u178f\u17d2\u178f\u17b7\u200b\u17af\u1780\u179f\u17b6\u179a",
"Title": "\u1785\u17c6\u178e\u1784\u200b\u1787\u17be\u1784",
"Keywords": "\u1796\u17b6\u1780\u17d2\u1799\u200b\u1782\u1793\u17d2\u179b\u17b9\u17c7",
"Encoding": "\u1780\u17b6\u179a\u200b\u17a2\u17ca\u17b8\u1793\u1780\u17bc\u178a",
"Description": "\u179f\u17c1\u1785\u1780\u17d2\u178a\u17b8\u200b\u17a2\u1792\u17b7\u1794\u17d2\u1794\u17b6\u1799",
"Author": "\u17a2\u17d2\u1793\u1780\u200b\u1793\u17b7\u1796\u1793\u17d2\u1792",
"Fullscreen": "\u1796\u17c1\u1789\u200b\u17a2\u17c1\u1780\u17d2\u179a\u1784\u17cb",
"Horizontal line": "\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u200b\u178a\u17c1\u1780",
"Horizontal space": "\u179b\u17c6\u17a0\u200b\u1795\u17d2\u178a\u17c1\u1780",
"Insert\/edit image": "\u1794\u1789\u17d2\u1785\u17bc\u179b\/\u1780\u17c2 \u179a\u17bc\u1794\u200b\u1797\u17b6\u1796",
"General": "\u1791\u17bc\u1791\u17c5",
"Advanced": "\u1780\u1798\u17d2\u179a\u17b7\u178f\u200b\u1781\u17d2\u1796\u179f\u17cb",
"Source": "\u1794\u17d2\u179a\u1797\u1796",
"Border": "\u179f\u17ca\u17bb\u1798",
"Constrain proportions": " \u1794\u1784\u17d2\u1781\u17c6\u200b\u17b2\u17d2\u1799\u200b\u1798\u17b6\u1793\u200b\u179f\u1798\u17b6\u1798\u17b6\u178f\u17d2\u179a",
"Vertical space": "\u179b\u17c6\u17a0\u200b\u1794\u1789\u17d2\u1788\u179a",
"Image description": "\u179f\u17c1\u1785\u1780\u17d2\u178a\u17b8\u200b\u17a2\u1792\u17b7\u1794\u17d2\u1794\u17b6\u1799\u200b\u1796\u17b8\u200b\u179a\u17bc\u1794",
"Style": "\u179a\u1785\u1793\u17b6\u1794\u1790",
"Dimensions": "\u179c\u17b7\u1798\u17b6\u178f\u17d2\u179a",
"Insert image": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u179a\u17bc\u1794\u200b\u1797\u17b6\u1796",
"Zoom in": "\u1796\u1784\u17d2\u179a\u17b8\u1780",
"Contrast": "\u1780\u1798\u17d2\u179a\u17b7\u178f\u200b\u1796\u178e\u17cc",
"Back": "\u1790\u1799\u1780\u17d2\u179a\u17c4\u1799",
"Gamma": "\u17a0\u17d2\u1782\u17b6\u1798\u17c9\u17b6",
"Flip horizontally": "\u178f\u17d2\u179a\u17a1\u1794\u17cb\u200b\u1795\u17d2\u178a\u17c1\u1780",
"Resize": "\u1794\u17d2\u178a\u17bc\u179a\u200b\u1791\u17c6\u17a0\u17c6",
"Sharpen": "\u1785\u17d2\u1794\u17b6\u179f\u17cb",
"Zoom out": "\u1794\u1784\u17d2\u179a\u17bd\u1798",
"Image options": "\u1787\u1798\u17d2\u179a\u17be\u179f\u200b\u179a\u17bc\u1794\u1797\u17b6\u1796",
"Apply": "\u17a2\u1793\u17bb\u179c\u178f\u17d2\u178f",
"Brightness": "\u1796\u1793\u17d2\u179b\u17ba",
"Rotate clockwise": "\u1794\u1784\u17d2\u179c\u17b7\u179b\u200b\u179f\u17d2\u179a\u1794\u200b\u1791\u17d2\u179a\u1793\u17b7\u1785\u200b\u1793\u17b6\u17a1\u17b7\u1780\u17b6",
"Rotate counterclockwise": "\u1794\u1784\u17d2\u179c\u17b7\u179b\u200b\u1785\u17d2\u179a\u17b6\u179f\u200b\u1791\u17d2\u179a\u1793\u17b7\u1785\u200b\u1793\u17b6\u17a1\u17b7\u1780\u17b6",
"Edit image": "\u1780\u17c2\u179f\u1798\u17d2\u179a\u17bd\u179b\u200b\u179a\u17bc\u1794\u1797\u17b6\u1796",
"Color levels": "\u1780\u1798\u17d2\u179a\u17b7\u178f\u200b\u1796\u178e\u17cc",
"Crop": "\u1785\u17d2\u179a\u17b9\u1794",
"Orientation": "\u1791\u17b7\u179f",
"Flip vertically": "\u178f\u17d2\u179a\u17a1\u1794\u17cb\u200b\u1794\u1789\u17d2\u1788\u179a",
"Invert": "\u178a\u17b6\u1780\u17cb\u200b\u1794\u1789\u17d2\u1785\u17d2\u179a\u17b6\u179f",
"Insert date\/time": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1780\u17b6\u179b\u200b\u1794\u179a\u17b7\u1785\u17d2\u1786\u17c1\u1791\/\u1798\u17c9\u17c4\u1784",
"Remove link": "\u178a\u1780\u200b\u178f\u17c6\u178e\u200b\u1785\u17c1\u1789",
"Url": "Url",
"Text to display": "\u17a2\u1780\u17d2\u179f\u179a\u200b\u178f\u17d2\u179a\u17bc\u179c\u200b\u1794\u1784\u17d2\u17a0\u17b6\u1789",
"Anchors": "\u1799\u17bb\u1790\u17d2\u1780\u17b6",
"Insert link": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u178f\u17c6\u178e",
"New window": "\u1795\u17d2\u1791\u17b6\u17c6\u1784\u200b\u179c\u17b8\u1793\u178a\u17bc\u200b\u1790\u17d2\u1798\u17b8",
"None": "\u1798\u17b7\u1793\u200b\u1798\u17b6\u1793",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u17a2\u17d2\u1793\u1780\u200b\u1794\u17b6\u1793\u200b\u1794\u1789\u17d2\u1785\u17bc\u179b URL \u178a\u17c2\u179b\u200b\u1787\u17b6\u200b\u178f\u17c6\u178e\u200b\u1791\u17c5\u200b\u1781\u17b6\u1784\u200b\u1780\u17d2\u179a\u17c5\u17d4 \u178f\u17be\u200b\u17a2\u17d2\u1793\u1780\u200b\u1785\u1784\u17cb\u200b\u1794\u1793\u17d2\u1790\u17c2\u1798\u200b\u1794\u17bb\u1796\u17d2\u179c\u1794\u200b\u1791 http:\/\/ \u178a\u17c2\u179a\u200b\u17ac\u1791\u17c1?",
"Target": "\u1791\u17b7\u179f\u178a\u17c5",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u17a2\u17d2\u1793\u1780\u200b\u1794\u17b6\u1793\u200b\u1794\u1789\u17d2\u1785\u17bc\u179b URL \u178a\u17c2\u179b\u200b\u1798\u17b6\u1793\u200b\u179f\u178e\u17d2\u178b\u17b6\u1793\u200b\u178a\u17bc\u1785\u200b\u17a2\u17b6\u179f\u1799\u178a\u17d2\u178b\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1798\u17c2\u179b\u17d4 \u178f\u17be\u200b\u17a2\u17d2\u1793\u1780\u200b\u1785\u1784\u17cb\u200b\u1794\u1793\u17d2\u1790\u17c2\u1798\u200b\u1794\u17bb\u1796\u17d2\u179c\u1794\u200b\u1791 mailto: \u178a\u17c2\u179a\u200b\u17ac\u1791\u17c1?",
"Insert\/edit link": "\u1794\u1789\u17d2\u1785\u17bc\u179b\/\u1780\u17c2 \u178f\u17c6\u178e",
"Insert\/edit video": "\u1794\u1789\u17d2\u1785\u17bc\u179b\/\u1780\u17c2 \u179c\u17b8\u178a\u17c1\u17a2\u17bc",
"Poster": "\u17a2\u17d2\u1793\u1780\u200b\u1795\u17d2\u179f\u17b6\u1799",
"Alternative source": "\u1794\u17d2\u179a\u1797\u1796\u200b\u178a\u1791\u17c3\u200b\u1791\u17c0\u178f",
"Paste your embed code below:": "\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1780\u17bc\u178a\u200b\u1794\u1784\u17d2\u1780\u1794\u17cb\u200b\u1793\u17c5\u200b\u1781\u17b6\u1784\u200b\u1780\u17d2\u179a\u17c4\u1798:",
"Insert video": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u179c\u17b8\u178a\u17c1\u17a2\u17bc",
"Embed": "\u1794\u1784\u17d2\u1780\u1794\u17cb",
"Nonbreaking space": "\u178a\u17c6\u178e\u1780\u200b\u1783\u17d2\u179b\u17b6\u200b\u1798\u17b7\u1793\u200b\u1794\u17c6\u1794\u17c2\u1780",
"Page break": "\u1794\u17c6\u1794\u17c2\u1780\u200b\u1791\u17c6\u1796\u17d0\u179a",
"Paste as text": "\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1787\u17b6\u200b\u17a2\u1780\u17d2\u179f\u179a",
"Preview": "\u1798\u17be\u179b\u200b\u1787\u17b6\u200b\u1798\u17bb\u1793",
"Print": "\u1794\u17c4\u17c7\u200b\u1796\u17bb\u1798\u17d2\u1796",
"Save": "\u179a\u1780\u17d2\u179f\u17b6\u200b\u1791\u17bb\u1780",
"Could not find the specified string.": "\u1798\u17b7\u1793\u200b\u17a2\u17b6\u1785\u200b\u179a\u1780\u200b\u1783\u17be\u1789\u200b\u1781\u17d2\u179f\u17c2\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u178a\u17c2\u179b\u200b\u1794\u17b6\u1793\u200b\u1780\u17c6\u178e\u178f\u17cb\u17d4",
"Replace": "\u1787\u17c6\u1793\u17bd\u179f",
"Next": "\u1798\u17bb\u1781",
"Whole words": "\u1796\u17b6\u1780\u17d2\u1799\u200b\u1791\u17b6\u17c6\u1784\u200b\u1798\u17bc\u179b",
"Find and replace": "\u179f\u17d2\u179c\u17c2\u1784\u200b\u179a\u1780\u200b\u1793\u17b7\u1784\u200b\u1787\u17c6\u1793\u17bd\u179f",
"Replace with": "\u1787\u17c6\u1793\u17bd\u179f\u200b\u178a\u17c4\u1799",
"Find": "\u179f\u17d2\u179c\u17c2\u1784\u200b\u179a\u1780",
"Replace all": "\u1787\u17c6\u1793\u17bd\u179f\u200b\u1791\u17b6\u17c6\u1784\u200b\u17a2\u179f\u17cb",
"Match case": "\u1780\u179a\u178e\u17b8\u200b\u178a\u17c6\u178e\u17bc\u1785",
"Prev": "\u1780\u17d2\u179a\u17c4\u1799",
"Spellcheck": "\u1796\u17b7\u1793\u17b7\u178f\u17d2\u1799\u200b\u17a2\u1780\u17d2\u1781\u179a\u17b6\u179c\u17b7\u179a\u17bb\u1791\u17d2\u1792",
"Finish": "\u1794\u1789\u17d2\u1785\u1794\u17cb",
"Ignore all": "\u1798\u17b7\u1793\u200b\u17a2\u17be\u1796\u17be\u200b\u1791\u17b6\u17c6\u1784\u200b\u17a2\u179f\u17cb",
"Ignore": "\u1798\u17b7\u1793\u200b\u17a2\u17be\u200b\u1796\u17be",
"Add to Dictionary": "\u1794\u1793\u17d2\u1790\u17c2\u1798\u200b\u1791\u17c5\u200b\u179c\u1785\u1793\u17b6\u1793\u17bb\u1780\u17d2\u179a\u1798",
"Insert row before": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1788\u17bd\u179a\u200b\u178a\u17c1\u1780\u200b\u1796\u17b8\u200b\u1798\u17bb\u1781",
"Rows": "\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Height": "\u1780\u1798\u17d2\u1796\u179f\u17cb",
"Paste row after": "\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780\u200b\u1796\u17b8\u200b\u1780\u17d2\u179a\u17c4\u1799",
"Alignment": "\u1780\u17b6\u179a\u200b\u178f\u1798\u17d2\u179a\u17b9\u1798",
"Border color": "\u1796\u178e\u17cc\u200b\u179f\u17ca\u17bb\u1798",
"Column group": "\u1780\u17d2\u179a\u17bb\u1798\u200b\u1787\u17bd\u179a\u200b\u1788\u179a",
"Row": "\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Insert column before": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1787\u17bd\u179a\u200b\u1788\u179a\u200b\u1796\u17b8\u200b\u1798\u17bb\u1781",
"Split cell": "\u1789\u17c2\u1780\u200b\u1780\u17d2\u179a\u17a1\u17b6",
"Cell padding": "\u1785\u1793\u17d2\u179b\u17c4\u17c7\u200b\u1780\u17d2\u179a\u17a1\u17b6",
"Cell spacing": "\u1782\u1798\u17d2\u179b\u17b6\u178f\u200b\u1780\u17d2\u179a\u17a1\u17b6",
"Row type": "\u1794\u17d2\u179a\u1797\u17c1\u1791\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Insert table": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u178f\u17b6\u179a\u17b6\u1784",
"Body": "\u178f\u17bd\u200b\u179f\u17c1\u1785\u1780\u17d2\u178a\u17b8",
"Caption": "\u1785\u17c6\u178e\u1784\u200b\u1787\u17be\u1784",
"Footer": "\u1794\u178b\u1798\u200b\u1780\u1790\u17b6",
"Delete row": "\u179b\u17bb\u1794\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Paste row before": "\u1794\u17b7\u1791\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780\u200b\u1796\u17b8\u200b\u1798\u17bb\u1781",
"Scope": "\u179c\u17b7\u179f\u17b6\u179b\u200b\u1797\u17b6\u1796",
"Delete table": "\u179b\u17bb\u1794\u200b\u178f\u17b6\u179a\u17b6\u1784",
"H Align": "\u1780\u17b6\u179a\u200b\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1795\u17d2\u178a\u17c1\u1780",
"Top": "\u179b\u17be",
"Header cell": "\u1780\u17d2\u179a\u17a1\u17b6\u200b\u1785\u17c6\u178e\u1784\u200b\u1787\u17be\u1784",
"Column": "\u1787\u17bd\u179a\u200b\u1788\u179a",
"Row group": "\u1780\u17d2\u179a\u17bb\u1798\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Cell": "\u1780\u17d2\u179a\u17a1\u17b6",
"Middle": "\u1780\u178e\u17d2\u178a\u17b6\u179b",
"Cell type": "\u1794\u17d2\u179a\u1797\u17c1\u1791\u200b\u1780\u17d2\u179a\u17a1\u17b6",
"Copy row": "\u1785\u1798\u17d2\u179b\u1784\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Row properties": "\u179b\u1780\u17d2\u1781\u178e\u17c8\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Table properties": "\u179b\u1780\u17d2\u1781\u178e\u17c8\u200b\u178f\u17b6\u179a\u17b6\u1784",
"Bottom": "\u1780\u17d2\u179a\u17c4\u1798",
"V Align": "\u1780\u17b6\u179a\u200b\u178f\u1798\u17d2\u179a\u17b9\u1798\u200b\u1794\u1789\u17d2\u1788\u179a",
"Header": "\u1785\u17c6\u178e\u1784\u200b\u1787\u17be\u1784",
"Right": "\u179f\u17d2\u178a\u17b6\u17c6",
"Insert column after": "\u1794\u1789\u17d2\u1787\u17bc\u179b\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780\u200b\u1796\u17b8\u200b\u1780\u17d2\u179a\u17c4\u1799",
"Cols": "\u1787\u17bd\u179a\u200b\u1788\u179a",
"Insert row after": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780\u200b\u1796\u17b8\u200b\u1780\u17d2\u179a\u17c4\u1799",
"Width": "\u1791\u1791\u17b9\u1784",
"Cell properties": "\u179b\u1780\u17d2\u1781\u178e\u17c8\u200b\u1780\u17d2\u179a\u17a1\u17b6",
"Left": "\u1786\u17d2\u179c\u17c1\u1784",
"Cut row": "\u1780\u17b6\u178f\u17cb\u200b\u1787\u17bd\u179a\u200b\u178a\u17c1\u1780",
"Delete column": "\u179b\u17bb\u1794\u200b\u1787\u17bd\u179a\u200b\u1788\u179a",
"Center": "\u1780\u178e\u17d2\u178a\u17b6\u179b",
"Merge cells": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1780\u17d2\u179a\u17a1\u17b6\u200b\u1785\u17bc\u179b\u200b\u1782\u17d2\u1793\u17b6",
"Insert template": "\u1794\u1789\u17d2\u1785\u17bc\u179b\u200b\u1796\u17bb\u1798\u17d2\u1796\u200b\u1782\u1798\u17d2\u179a\u17bc",
"Templates": "\u1796\u17bb\u1798\u17d2\u1796\u200b\u1782\u1798\u17d2\u179a\u17bc",
"Background color": "\u1796\u178e\u17cc\u200b\u1795\u17d2\u1791\u17c3\u200b\u1780\u17d2\u179a\u17c4\u1799",
"Custom...": "\u1795\u17d2\u1791\u17b6\u179b\u17cb\u200b\u1781\u17d2\u179b\u17bd\u1793...",
"Custom color": "\u1796\u178e\u17cc\u200b\u1795\u17d2\u1791\u17b6\u179b\u17cb\u200b\u1781\u17d2\u179b\u17bd\u1793",
"No color": "\u1782\u17d2\u1798\u17b6\u1793\u200b\u1796\u178e\u17cc",
"Text color": "\u1796\u178e\u17cc\u200b\u17a2\u1780\u17d2\u179f\u179a",
"Show blocks": "\u1794\u1784\u17d2\u17a0\u17b6\u1789\u200b\u1794\u17d2\u179b\u17bb\u1780",
"Show invisible characters": "\u1794\u1784\u17d2\u17a0\u17b6\u1789\u200b\u178f\u17bd\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u1780\u17c6\u1794\u17b6\u17c6\u1784",
"Words: {0}": "\u1796\u17b6\u1780\u17d2\u1799: {0}",
"Insert": "\u1794\u1789\u17d2\u1785\u17bc\u179b",
"File": "\u17af\u1780\u179f\u17b6\u179a",
"Edit": "\u1780\u17c2\u1794\u17d2\u179a\u17c2",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u1791\u17b8\u178f\u17b6\u17c6\u1784\u200b\u17a2\u1780\u17d2\u179f\u179a\u200b\u179f\u17c6\u1794\u17bc\u179a\u1794\u17c2\u1794\u17d4 \u1785\u17bb\u1785 ALT-F9 \u179f\u1798\u17d2\u179a\u17b6\u1794\u17cb\u200b\u1798\u17c9\u17ba\u1793\u17bb\u1799\u17d4 \u1785\u17bb\u1785 ALT-F10 \u179f\u1798\u17d2\u179a\u17b6\u1794\u17cb\u200b\u179a\u1794\u17b6\u179a\u200b\u17a7\u1794\u1780\u179a\u178e\u17cd\u17d4 \u1785\u17bb\u1785 ALT-0 \u179f\u1798\u17d2\u179a\u17b6\u1794\u17cb\u200b\u1787\u17c6\u1793\u17bd\u1799\u17d4",
"Tools": "\u17a7\u1794\u1780\u179a\u178e\u17cd",
"View": "\u1791\u17b7\u178a\u17d2\u178b\u1797\u17b6\u1796",
"Table": "\u178f\u17b6\u179a\u17b6\u1784",
"Format": "\u1791\u1798\u17d2\u179a\u1784\u17cb"
});editors/tinymce/langs/ar.js000064400000045575152177723720011766 0ustar00tinymce.addI18n('ar',{
"Cut": "\u0642\u0635",
"Heading 5": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 5",
"Header 2": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0641\u0638\u0629. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d Ctrl+X\/C\/V \u0628\u062f\u0644\u0627 \u0645\u0646 \u0630\u0644\u0643.",
"Heading 4": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 4",
"Div": "Div",
"Heading 2": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 2",
"Paste": "\u0644\u0635\u0642",
"Close": "\u0625\u063a\u0644\u0627\u0642",
"Font Family": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u062e\u0637",
"Pre": "\u0633\u0627\u0628\u0642",
"Align right": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0645\u064a\u0646",
"New document": "\u0645\u0633\u062a\u0646\u062f \u062c\u062f\u064a\u062f",
"Blockquote": "\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0627\u0642\u062a\u0628\u0627\u0633",
"Numbered list": "\u062a\u0631\u0642\u064a\u0645",
"Heading 1": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 1",
"Headings": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629",
"Increase indent": "\u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
"Formats": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a",
"Headers": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646",
"Select all": "\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0644",
"Header 3": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 3",
"Blocks": "\u0627\u0644\u0623\u0642\u0633\u0627\u0645",
"Undo": "\u062a\u0631\u0627\u062c\u0639",
"Strikethrough": "\u064a\u062a\u0648\u0633\u0637 \u062e\u0637",
"Bullet list": "\u062a\u0639\u062f\u0627\u062f \u0646\u0642\u0637\u064a",
"Header 1": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 1",
"Superscript": "\u0645\u0631\u062a\u0641\u0639",
"Clear formatting": "\u0645\u0633\u062d \u0627\u0644\u062a\u0646\u0633\u064a\u0642",
"Font Sizes": "\u062d\u062c\u0645 \u0627\u0644\u062e\u0637",
"Subscript": "\u0645\u0646\u062e\u0641\u0636",
"Header 6": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 6",
"Redo": "\u0625\u0639\u0627\u062f\u0629",
"Paragraph": "\u0641\u0642\u0631\u0629",
"Ok": "\u0645\u0648\u0627\u0641\u0642",
"Bold": "\u063a\u0627\u0645\u0642",
"Code": "\u0631\u0645\u0632",
"Italic": "\u0645\u0627\u0626\u0644",
"Align center": "\u062a\u0648\u0633\u064a\u0637",
"Header 5": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 5",
"Heading 6": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 6",
"Heading 3": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0631\u0626\u064a\u0633\u064a 3",
"Decrease indent": "\u0625\u0646\u0642\u0627\u0635 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
"Header 4": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u064a\u062a\u0645 \u0627\u0644\u0644\u0635\u0642 \u062d\u0627\u0644\u064a\u0627\u064b \u0643\u0646\u0635 \u0639\u0627\u062f\u064a. \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0633\u064a\u0628\u0642\u0649 \u0643\u0646\u0635 \u0639\u0627\u062f\u064a \u062d\u062a\u0649 \u062a\u0642\u0648\u0645 \u0628\u062a\u0639\u0637\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631.",
"Underline": "\u062a\u0633\u0637\u064a\u0631",
"Cancel": "\u0625\u0644\u063a\u0627\u0621",
"Justify": "\u0636\u0628\u0637",
"Inline": "\u062e\u0644\u0627\u0644",
"Copy": "\u0646\u0633\u062e",
"Align left": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0633\u0627\u0631",
"Visual aids": "\u0627\u0644\u0645\u0639\u064a\u0646\u0627\u062a \u0627\u0644\u0628\u0635\u0631\u064a\u0629",
"Lower Greek": "\u062a\u0631\u0642\u064a\u0645 \u064a\u0648\u0646\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
"Square": "\u0645\u0631\u0628\u0639",
"Default": "\u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a",
"Lower Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062e\u0631\u0641 \u0635\u063a\u064a\u0631\u0629",
"Circle": "\u062f\u0627\u0626\u0631\u0629",
"Disc": "\u0642\u0631\u0635",
"Upper Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062d\u0631\u0641 \u0643\u0628\u064a\u0631\u0629",
"Upper Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0643\u0628\u064a\u0631",
"Lower Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u0631\u0642\u0645 \u0627\u0644\u0645\u0639\u0631\u0641 \u064a\u062c\u0628 \u0623\u0646 \u062a\u0628\u062f\u0623 \u0628\u062d\u0631\u0641\u060c \u064a\u062a\u0628\u0639 \u0641\u0642\u0637 \u0628\u062d\u0631\u0648\u0641 \u0648\u0623\u0631\u0642\u0627\u0645\u060c \u0634\u0631\u0637\u0627\u062a\u060c \u0623\u0648 \u0627\u0644\u0646\u0642\u0627\u0637\u060c \u0627\u0644\u0646\u0642\u0637\u062a\u064a\u0646 \u0623\u0648 \u0627\u0644\u0634\u0631\u0637\u0627\u062a \u0627\u0644\u0633\u0641\u0644\u064a\u0629.",
"Name": "\u0627\u0644\u0627\u0633\u0645",
"Anchor": "\u0645\u0631\u0633\u0627\u0629",
"Id": "\u0631\u0642\u0645 \u0627\u0644\u0645\u0639\u0631\u0641",
"You have unsaved changes are you sure you want to navigate away?": "\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0644\u0645 \u064a\u062a\u0645 \u062d\u0641\u0638\u0647\u0627 \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0639\u064a\u062f\u0627\u061f",
"Restore last draft": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0623\u062e\u0631 \u0645\u0633\u0648\u062f\u0629",
"Special character": "\u0631\u0645\u0632",
"Source code": "\u0634\u0641\u0631\u0629 \u0627\u0644\u0645\u0635\u062f\u0631",
"Language": "\u0627\u0644\u0644\u063a\u0629",
"Insert\/Edit code sample": "\u0625\u062f\u0631\u0627\u062c/\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0643\u0648\u062f",
"B": "B",
"R": "R",
"G": "G",
"Color": "\u0627\u0644\u0644\u0648\u0646",
"Right to left": "\u0645\u0646 \u0627\u0644\u064a\u0645\u064a\u0646 \u0644\u0644\u064a\u0633\u0627\u0631",
"Left to right": "\u0645\u0646 \u0627\u0644\u064a\u0633\u0627\u0631 \u0644\u0644\u064a\u0645\u064a\u0646",
"Emoticons": "\u0627\u0644\u0631\u0645\u0648\u0632",
"Robots": "\u0627\u0644\u0631\u0648\u0628\u0648\u062a\u0627\u062a",
"Document properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0645\u0633\u062a\u0646\u062f",
"Title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
"Keywords": "\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0628\u062d\u062b",
"Encoding": "\u0627\u0644\u062a\u0631\u0645\u064a\u0632",
"Description": "\u0627\u0644\u0648\u0635\u0641",
"Author": "\u0627\u0644\u0643\u0627\u062a\u0628",
"Fullscreen": "\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",
"Horizontal line": "\u062e\u0637 \u0623\u0641\u0642\u064a",
"Horizontal space": "\u0645\u0633\u0627\u0641\u0629 \u0623\u0641\u0642\u064a\u0629",
"Insert\/edit image": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0635\u0648\u0631\u0629",
"General": "\u0639\u0627\u0645",
"Advanced": "\u062e\u0635\u0627\u0626\u0635 \u0645\u062a\u0642\u062f\u0645\u0647",
"Source": "\u0627\u0644\u0645\u0635\u062f\u0631",
"Border": "\u062d\u062f\u0648\u062f",
"Constrain proportions": "\u0627\u0644\u062a\u0646\u0627\u0633\u0628",
"Vertical space": "\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062f\u064a\u0629",
"Image description": "\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",
"Style": "\u0627\u0644\u0646\u0645\u0637 \/ \u0627\u0644\u0634\u0643\u0644",
"Dimensions": "\u0627\u0644\u0623\u0628\u0639\u0627\u062f",
"Insert image": "\u0625\u062f\u0631\u0627\u062c \u0635\u0648\u0631\u0629",
"Image": "\u0627\u0644\u0635\u0648\u0631\u0629",
"Zoom in": "\u062a\u0643\u0628\u064a\u0631",
"Contrast": "\u0627\u0644\u062a\u0628\u0627\u064a\u0646",
"Back": "\u0644\u0644\u062e\u0644\u0641",
"Gamma": "\u063a\u0627\u0645\u0627",
"Flip horizontally": "\u0627\u0646\u0639\u0643\u0627\u0633 \u0623\u0641\u0642\u064a",
"Resize": "\u062a\u063a\u064a\u064a\u0631 \u062d\u062c\u0645",
"Sharpen": "\u062d\u0627\u062f\u0629",
"Zoom out": "\u062a\u0635\u063a\u064a\u0631",
"Image options": "\u0627\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0635\u0648\u0631\u0629",
"Apply": "\u062a\u0637\u0628\u064a\u0642",
"Brightness": "\u0627\u0644\u0625\u0636\u0627\u0621\u0629",
"Rotate clockwise": "\u062a\u062f\u0648\u064a\u0631 \u0641\u064a \u0627\u062a\u062c\u0627\u0647 \u0639\u0642\u0627\u0631\u0628 \u0627\u0644\u0633\u0627\u0639\u0629",
"Rotate counterclockwise": "\u062a\u062f\u0648\u064a\u0631 \u0639\u0643\u0633 \u0627\u062a\u062c\u0627\u0647 \u0639\u0642\u0627\u0631\u0628 \u0627\u0644\u0633\u0627\u0639\u0629",
"Edit image": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0635\u0648\u0631\u0629",
"Color levels": "\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0644\u0648\u0646",
"Crop": "\u0642\u0635",
"Orientation": "\u0627\u0644\u0645\u062d\u0627\u0630\u0627\u0629",
"Flip vertically": "\u0627\u0646\u0639\u0643\u0627\u0633 \u0639\u0627\u0645\u0648\u062f\u064a",
"Invert": "\u0639\u0643\u0633",
"Date\/time": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e/\u0627\u0644\u0648\u0642\u062a",
"Insert date\/time": "\u0625\u062f\u0631\u0627\u062c \u062a\u0627\u0631\u064a\u062e\/\u0648\u0642\u062a",
"Remove link": "\u062d\u0630\u0641 \u0627\u0644\u0631\u0627\u0628\u0637",
"Url": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
"Text to display": "\u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u0637\u0644\u0648\u0628 \u0639\u0631\u0636\u0647",
"Anchors": "\u0627\u0644\u0645\u0631\u0633\u0627\u0629",
"Insert link": "\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637",
"Link": "\u0627\u0644\u0631\u0627\u0628\u0637",
"New window": "\u0646\u0627\u0641\u0630\u0629 \u062c\u062f\u064a\u062f\u0629",
"None": "\u0628\u0644\u0627",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0646\u062a\u0648\u0642\u0639 \u0627\u0646\u0643 \u0642\u0645\u062a \u0628\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637 \u0644\u0645\u0648\u0642\u0639 \u062e\u0627\u0631\u062c\u064a. \u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0646 \u0646\u0636\u064a\u0641 \u0627\u0644\u0644\u0627\u062d\u0642\u0629 http:\/\/ \u0644\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064a \u0627\u062f\u062e\u0644\u062a\u0647\u061f",
"Paste or type a link": "\u0623\u062f\u062e\u0644 \u0623\u0648 \u0627\u0643\u062a\u0628 \u0627\u0644\u0631\u0627\u0628\u0637",
"Target": "\u0627\u0644\u0625\u0637\u0627\u0631 \u0627\u0644\u0647\u062f\u0641",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064a \u0642\u0645\u062a \u0628\u0625\u062f\u0631\u0627\u062c\u0647 \u064a\u0634\u0627\u0628\u0647 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a. \u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0646 \u062a\u0636\u064a\u0641 \u0627\u0644\u0644\u0627\u062d\u0642\u0629 mailto: \u0645\u0639\u062a\u0628\u0631\u0627\u064b \u0647\u0630\u0627 \u0627\u0644\u0631\u0627\u0628\u0637 \u0628\u0631\u064a\u062f\u0627 \u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u0627\u064b\u061f",
"Insert\/edit link": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0631\u0627\u0628\u0637",
"Insert\/edit video": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0641\u064a\u062f\u064a\u0648",
"Media": "\u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0627\u0644\u0645\u062a\u0639\u062f\u062f\u0629",
"Alternative source": "\u0645\u0635\u062f\u0631 \u0628\u062f\u064a\u0644",
"Paste your embed code below:": "\u0644\u0635\u0642 \u0643\u0648\u062f \u0627\u0644\u062a\u0636\u0645\u064a\u0646 \u0647\u0646\u0627:",
"Insert video": "\u0625\u062f\u0631\u0627\u062c \u0641\u064a\u062f\u064a\u0648",
"Poster": "\u0645\u0644\u0635\u0642",
"Insert\/edit media": "\u0625\u062f\u0631\u0627\u062c/\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0627\u0644\u0645\u062a\u0639\u062f\u062f\u0629",
"Embed": "\u062a\u0636\u0645\u064a\u0646",
"Nonbreaking space": "\u0645\u0633\u0627\u0641\u0629 \u063a\u064a\u0631 \u0645\u0646\u0642\u0633\u0645\u0629",
"Page break": "\u0641\u0627\u0635\u0644 \u0644\u0644\u0635\u0641\u062d\u0629",
"Paste as text": "\u0644\u0635\u0642 \u0643\u0646\u0635",
"Preview": "\u0645\u0639\u0627\u064a\u0646\u0629",
"Print": "\u0637\u0628\u0627\u0639\u0629",
"Save": "\u062d\u0641\u0638",
"Could not find the specified string.": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629",
"Replace": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
"Next": "\u0627\u0644\u062a\u0627\u0644\u064a",
"Whole words": "\u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0628\u0627\u0644\u0643\u0627\u0645\u0644",
"Find and replace": "\u0628\u062d\u062b \u0648\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
"Replace with": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0628\u0640",
"Find": "\u0628\u062d\u062b",
"Replace all": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0643\u0644",
"Match case": "\u0645\u0637\u0627\u0628\u0642\u0629 \u062d\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641",
"Prev": "\u0627\u0644\u0633\u0627\u0628\u0642",
"Spellcheck": "\u062a\u062f\u0642\u064a\u0642 \u0625\u0645\u0644\u0627\u0626\u064a",
"Finish": "\u0627\u0646\u062a\u0647\u064a",
"Ignore all": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0643\u0644",
"Ignore": "\u062a\u062c\u0627\u0647\u0644",
"Add to Dictionary": "\u0627\u0636\u0641 \u0627\u0644\u064a \u0627\u0644\u0642\u0627\u0645\u0648\u0633",
"Insert row before": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
"Rows": "\u0639\u062f\u062f \u0627\u0644\u0635\u0641\u0648\u0641",
"Height": "\u0627\u0631\u062a\u0641\u0627\u0639",
"Paste row after": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
"Alignment": "\u0645\u062d\u0627\u0630\u0627\u0629",
"Border color": "\u0644\u0648\u0646 \u0627\u0644\u0625\u0637\u0627\u0631",
"Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0639\u0645\u0648\u062f",
"Row": "\u0635\u0641",
"Insert column before": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0633\u0627\u0631",
"Split cell": "\u062a\u0642\u0633\u064a\u0645 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
"Cell padding": "\u062a\u0628\u0627\u0639\u062f \u0627\u0644\u062e\u0644\u064a\u0629",
"Cell spacing": "\u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0628\u064a\u0646 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
"Row type": "\u0646\u0648\u0639 \u0627\u0644\u0635\u0641",
"Insert table": "\u0625\u062f\u0631\u0627\u062c \u062c\u062f\u0648\u0644",
"Body": "\u0647\u064a\u0643\u0644",
"Caption": "\u0634\u0631\u062d",
"Footer": "\u062a\u0630\u064a\u064a\u0644",
"Delete row": "\u062d\u0630\u0641 \u0635\u0641",
"Paste row before": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
"Scope": "\u0627\u0644\u0645\u062c\u0627\u0644",
"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644",
"H Align": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0623\u0641\u0642\u064a\u0629",
"Top": "\u0623\u0639\u0644\u064a",
"Header cell": "\u0631\u0623\u0633 \u0627\u0644\u062e\u0644\u064a\u0629",
"Column": "\u0639\u0645\u0648\u062f",
"Row group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0635\u0641",
"Cell": "\u062e\u0644\u064a\u0629",
"Middle": "\u0627\u0644\u0648\u0633\u0637",
"Cell type": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0644\u064a\u0629",
"Copy row": "\u0646\u0633\u062e \u0627\u0644\u0635\u0641",
"Row properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0641",
"Table properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062c\u062f\u0648\u0644",
"Bottom": "\u0627\u0644\u0623\u0633\u0641\u0644",
"V Align": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0631\u0623\u0633\u064a\u0629",
"Header": "\u0627\u0644\u0631\u0623\u0633",
"Right": "\u064a\u0645\u064a\u0646",
"Insert column after": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0645\u064a\u0646",
"Cols": "\u0639\u062f\u062f \u0627\u0644\u0623\u0639\u0645\u062f\u0629",
"Insert row after": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
"Width": "\u0639\u0631\u0636",
"Cell properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062e\u0644\u064a\u0629",
"Left": "\u064a\u0633\u0627\u0631",
"Cut row": "\u0642\u0635 \u0627\u0644\u0635\u0641",
"Delete column": "\u062d\u0630\u0641 \u0639\u0645\u0648\u062f",
"Center": "\u062a\u0648\u0633\u064a\u0637",
"Merge cells": "\u062f\u0645\u062c \u062e\u0644\u0627\u064a\u0627",
"Insert template": "\u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628",
"Templates": "\u0642\u0648\u0627\u0644\u0628",
"Background color": "\u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629",
"Custom...": "\u062a\u062e\u0635\u064a\u0635 ...",
"Custom color": "\u0644\u0648\u0646 \u0645\u062e\u0635\u0635",
"No color": "\u0628\u062f\u0648\u0646 \u0644\u0648\u0646",
"Text color": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635",
"Table of Contents": "\u062c\u062f\u0648\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a",
"Show blocks": "\u0645\u0634\u0627\u0647\u062f\u0629 \u0627\u0644\u0643\u062a\u0644",
"Show invisible characters": "\u0623\u0638\u0647\u0631 \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u063a\u064a\u0631 \u0645\u0631\u0626\u064a\u0629",
"Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a:{0}",
"Insert": "\u0625\u062f\u0631\u0627\u062c",
"File": "\u0645\u0644\u0641",
"Edit": "\u062a\u062d\u0631\u064a\u0631",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0645\u0646\u0637\u0642\u0629 \u0646\u0635 \u0645\u0646\u0633\u0642. \u0627\u0636\u063a\u0637 ALT-F9 \u0644\u0644\u0642\u0627\u0626\u0645\u0629. \u0627\u0636\u063a\u0637 ALT-F10 \u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u0623\u062f\u0648\u0627\u062a. \u0627\u0636\u063a\u0637 ALT-0 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0633\u0627\u0639\u062f\u0629",
"Tools": "\u0623\u062f\u0627\u0648\u0627\u062a",
"View": "\u0639\u0631\u0636",
"Table": "\u062c\u062f\u0648\u0644",
"Format": "\u062a\u0646\u0633\u064a\u0642",
"_dir": "rtl"
});editors/tinymce/langs/readme.md000064400000000227152177723720012566 0ustar00This is where language files should be placed.

Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/
editors/tinymce/langs/he.js000064400000031520152177723720011741 0ustar00tinymce.addI18n('he',{
"Cut": "\u05d2\u05d6\u05d5\u05e8",
"Header 2": "\u05db\u05d5\u05ea\u05e8\u05ea 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d0\u05d9\u05e0\u05d5 \u05de\u05d0\u05e4\u05e9\u05e8 \u05d2\u05d9\u05e9\u05d4 \u05d9\u05e9\u05d9\u05e8\u05d4 \u05dc\u05dc\u05d5\u05d7. \u05d0\u05e0\u05d0 \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e7\u05d9\u05e6\u05d5\u05e8\u05d9 \u05d4\u05de\u05e7\u05dc\u05d3\u05ea Ctrl+X\/C\/V \u05d1\u05de\u05e7\u05d5\u05dd.",
"Div": "\u05de\u05e7\u05d8\u05e2 \u05e7\u05d5\u05d3 Div",
"Paste": "\u05d4\u05d3\u05d1\u05e7",
"Close": "\u05e1\u05d2\u05d5\u05e8",
"Font Family": "\u05e1\u05d5\u05d2 \u05d2\u05d5\u05e4\u05df",
"Pre": "\u05e7\u05d8\u05e2 \u05de\u05e7\u05d3\u05d9\u05dd Pre",
"Align right": "\u05d9\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc",
"New document": "\u05de\u05e1\u05de\u05da \u05d7\u05d3\u05e9",
"Blockquote": "\u05de\u05e7\u05d8\u05e2 \u05e6\u05d9\u05d8\u05d5\u05d8",
"Numbered list": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05de\u05d5\u05e1\u05e4\u05e8\u05ea",
"Increase indent": "\u05d4\u05d2\u05d3\u05dc \u05d4\u05d6\u05d7\u05d4",
"Formats": "\u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd",
"Headers": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea",
"Select all": "\u05d1\u05d7\u05e8 \u05d4\u05db\u05dc",
"Header 3": "\u05db\u05d5\u05ea\u05e8\u05ea 3",
"Blocks": "\u05de\u05d1\u05e0\u05d9\u05dd",
"Undo": "\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4",
"Strikethrough": "\u05e7\u05d5 \u05d7\u05d5\u05e6\u05d4",
"Bullet list": "\u05e8\u05e9\u05d9\u05de\u05ea \u05ea\u05d1\u05dc\u05d9\u05d8\u05d9\u05dd",
"Header 1": "\u05db\u05d5\u05ea\u05e8\u05ea 1",
"Superscript": "\u05db\u05ea\u05d1 \u05e2\u05d9\u05dc\u05d9",
"Clear formatting": "\u05e0\u05e7\u05d4 \u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd",
"Font Sizes": "\u05d2\u05d5\u05d3\u05dc \u05d2\u05d5\u05e4\u05df",
"Subscript": "\u05db\u05ea\u05d1 \u05ea\u05d7\u05ea\u05d9",
"Header 6": "\u05db\u05d5\u05ea\u05e8\u05ea 6",
"Redo": "\u05d1\u05e6\u05e2 \u05e9\u05d5\u05d1",
"Paragraph": "\u05e4\u05d9\u05e1\u05e7\u05d4",
"Ok": "\u05d0\u05d9\u05e9\u05d5\u05e8",
"Bold": "\u05de\u05d5\u05d3\u05d2\u05e9",
"Code": "\u05e7\u05d5\u05d3",
"Italic": "\u05e0\u05d8\u05d5\u05d9",
"Align center": "\u05de\u05e8\u05db\u05d6",
"Header 5": "\u05db\u05d5\u05ea\u05e8\u05ea 5",
"Decrease indent": "\u05d4\u05e7\u05d8\u05df \u05d4\u05d6\u05d7\u05d4",
"Header 4": "\u05db\u05d5\u05ea\u05e8\u05ea 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u05d4\u05d3\u05d1\u05e7\u05d4 \u05d1\u05de\u05e6\u05d1 \u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc. \u05ea\u05db\u05e0\u05d9\u05dd \u05d9\u05d5\u05d3\u05d1\u05e7\u05d5 \u05de\u05e2\u05ea\u05d4 \u05db\u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc \u05e2\u05d3 \u05e9\u05ea\u05db\u05d1\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5.",
"Underline": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d9",
"Cancel": "\u05d1\u05d8\u05dc",
"Justify": "\u05de\u05ea\u05d7 \u05dc\u05e6\u05d3\u05d3\u05d9\u05dd",
"Inline": "\u05d1\u05d2\u05d5\u05e3 \u05d4\u05d8\u05e7\u05e1\u05d8",
"Copy": "\u05d4\u05e2\u05ea\u05e7",
"Align left": "\u05d9\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc",
"Visual aids": "\u05e2\u05d6\u05e8\u05d9\u05dd \u05d7\u05d6\u05d5\u05ea\u05d9\u05d9\u05dd",
"Lower Greek": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d9\u05d5\u05d5\u05e0\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
"Square": "\u05e8\u05d9\u05d1\u05d5\u05e2",
"Default": "\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",
"Lower Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
"Circle": "\u05e2\u05d9\u05d2\u05d5\u05dc",
"Disc": "\u05d7\u05d9\u05e9\u05d5\u05e7",
"Upper Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
"Upper Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
"Lower Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
"Name": "\u05e9\u05dd",
"Anchor": "\u05de\u05e7\u05d5\u05dd \u05e2\u05d9\u05d2\u05d5\u05df",
"You have unsaved changes are you sure you want to navigate away?": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d5. \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e6\u05d0\u05ea \u05de\u05d4\u05d3\u05e3?",
"Restore last draft": "\u05e9\u05d7\u05d6\u05e8 \u05d8\u05d9\u05d5\u05d8\u05d4 \u05d0\u05d7\u05e8\u05d5\u05e0\u05d4",
"Special character": "\u05ea\u05d5\u05d5\u05d9\u05dd \u05de\u05d9\u05d5\u05d7\u05d3\u05d9\u05dd",
"Source code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8",
"Right to left": "\u05de\u05d9\u05de\u05d9\u05df \u05dc\u05e9\u05de\u05d0\u05dc",
"Left to right": "\u05de\u05e9\u05de\u05d0\u05dc \u05dc\u05d9\u05de\u05d9\u05df",
"Emoticons": "\u05de\u05d7\u05d5\u05d5\u05ea",
"Robots": "\u05e8\u05d5\u05d1\u05d5\u05d8\u05d9\u05dd",
"Document properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05de\u05e1\u05de\u05da",
"Title": "\u05db\u05d5\u05ea\u05e8\u05ea",
"Keywords": "\u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7",
"Encoding": "\u05e7\u05d9\u05d3\u05d5\u05d3",
"Description": "\u05ea\u05d9\u05d0\u05d5\u05e8",
"Author": "\u05de\u05d7\u05d1\u05e8",
"Fullscreen": "\u05de\u05e1\u05da \u05de\u05dc\u05d0",
"Horizontal line": "\u05e7\u05d5 \u05d0\u05d5\u05e4\u05e7\u05d9",
"Horizontal space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05d5\u05e4\u05e7\u05d9",
"Insert\/edit image": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d4",
"General": "\u05db\u05dc\u05dc\u05d9",
"Advanced": "\u05de\u05ea\u05e7\u05d3\u05dd",
"Source": "\u05de\u05e7\u05d5\u05e8",
"Border": "\u05de\u05e1\u05d2\u05e8\u05ea",
"Constrain proportions": "\u05d4\u05d2\u05d1\u05dc\u05ea \u05e4\u05e8\u05d5\u05e4\u05d5\u05e8\u05e6\u05d9\u05d5\u05ea",
"Vertical space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05e0\u05db\u05d9",
"Image description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05ea\u05de\u05d5\u05e0\u05d4",
"Style": "\u05e1\u05d2\u05e0\u05d5\u05df",
"Dimensions": "\u05de\u05d9\u05de\u05d3\u05d9\u05dd",
"Insert image": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05de\u05d5\u05e0\u05d4",
"Insert date\/time": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d0\u05e8\u05d9\u05da\/\u05e9\u05e2\u05d4",
"Remove link": "\u05de\u05d7\u05e7 \u05e7\u05d9\u05e9\u05d5\u05e8",
"Url": "\u05db\u05ea\u05d5\u05d1\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8",
"Text to display": "\u05d8\u05e7\u05e1\u05d8 \u05dc\u05d4\u05e6\u05d2\u05d4",
"Anchors": "\u05e2\u05d5\u05d2\u05e0\u05d9\u05dd",
"Insert link": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d9\u05e9\u05d5\u05e8",
"New window": "\u05d7\u05dc\u05d5\u05df \u05d7\u05d3\u05e9",
"None": "\u05dc\u05dc\u05d0",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\u05de\u05d8\u05e8\u05d4",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e7\u05d9\u05e9\u05d5\u05e8",
"Insert\/edit video": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e1\u05e8\u05d8\u05d5\u05df",
"Poster": "\u05e4\u05d5\u05e1\u05d8\u05e8",
"Alternative source": "\u05de\u05e7\u05d5\u05e8 \u05de\u05e9\u05e0\u05d9",
"Paste your embed code below:": "\u05d4\u05d3\u05d1\u05e7 \u05e7\u05d5\u05d3 \u05d4\u05d8\u05de\u05e2\u05d4 \u05de\u05ea\u05d7\u05ea:",
"Insert video": "\u05d4\u05db\u05e0\u05e1 \u05e1\u05e8\u05d8\u05d5\u05df",
"Embed": "\u05d4\u05d8\u05de\u05e2",
"Nonbreaking space": "\u05e8\u05d5\u05d5\u05d7 (\u05dc\u05dc\u05d0 \u05e9\u05d1\u05d9\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4)",
"Page break": "\u05d3\u05e3 \u05d7\u05d3\u05e9",
"Paste as text": "\u05d4\u05d3\u05d1\u05e7 \u05db\u05d8\u05e7\u05e1\u05d8",
"Preview": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4",
"Print": "\u05d4\u05d3\u05e4\u05e1",
"Save": "\u05e9\u05de\u05d9\u05e8\u05d4",
"Could not find the specified string.": "\u05de\u05d7\u05e8\u05d5\u05d6\u05ea \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d4",
"Replace": "\u05d4\u05d7\u05dc\u05e3",
"Next": "\u05d4\u05d1\u05d0",
"Whole words": "\u05de\u05d9\u05dc\u05d4 \u05e9\u05dc\u05de\u05d4",
"Find and replace": "\u05d7\u05e4\u05e9 \u05d5\u05d4\u05d7\u05dc\u05e3",
"Replace with": "\u05d4\u05d7\u05dc\u05e3 \u05d1",
"Find": "\u05d7\u05e4\u05e9",
"Replace all": "\u05d4\u05d7\u05dc\u05e3 \u05d4\u05db\u05dc",
"Match case": "\u05d4\u05d1\u05d7\u05df \u05d1\u05d9\u05df \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea \u05dc\u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
"Prev": "\u05e7\u05d5\u05d3\u05dd",
"Spellcheck": "\u05d1\u05d5\u05d3\u05e7 \u05d0\u05d9\u05d5\u05ea",
"Finish": "\u05e1\u05d9\u05d9\u05dd",
"Ignore all": "\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d4\u05db\u05dc",
"Ignore": "\u05d4\u05ea\u05e2\u05dc\u05dd",
"Insert row before": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9",
"Rows": "\u05e9\u05d5\u05e8\u05d5\u05ea",
"Height": "\u05d2\u05d5\u05d1\u05d4",
"Paste row after": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9",
"Alignment": "\u05d9\u05d9\u05e9\u05d5\u05e8",
"Column group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e2\u05de\u05d5\u05d3\u05d5\u05ea",
"Row": "\u05e9\u05d5\u05e8\u05d4",
"Insert column before": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05dc\u05e4\u05e0\u05d9",
"Split cell": "\u05e4\u05e6\u05dc \u05ea\u05d0",
"Cell padding": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05e4\u05e0\u05d9\u05de\u05d9\u05d9\u05dd \u05dc\u05ea\u05d0",
"Cell spacing": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9\u05dd \u05dc\u05ea\u05d0",
"Row type": "\u05e1\u05d5\u05d2 \u05e9\u05d5\u05e8\u05d4",
"Insert table": "\u05d4\u05db\u05e0\u05e1 \u05d8\u05d1\u05dc\u05d4",
"Body": "\u05d2\u05d5\u05e3 \u05d4\u05d8\u05d1\u05dc\u05d0",
"Caption": "\u05db\u05d9\u05ea\u05d5\u05d1",
"Footer": "\u05db\u05d5\u05ea\u05e8\u05ea \u05ea\u05d7\u05ea\u05d5\u05e0\u05d4",
"Delete row": "\u05de\u05d7\u05e7 \u05e9\u05d5\u05e8\u05d4",
"Paste row before": "\u05d4\u05d3\u05d1\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9",
"Scope": "\u05d4\u05d9\u05e7\u05e3",
"Delete table": "\u05de\u05d7\u05e7 \u05d8\u05d1\u05dc\u05d4",
"Header cell": "\u05db\u05d5\u05ea\u05e8\u05ea \u05dc\u05ea\u05d0",
"Column": "\u05e2\u05de\u05d5\u05d3\u05d4",
"Cell": "\u05ea\u05d0",
"Header": "\u05db\u05d5\u05ea\u05e8\u05ea",
"Cell type": "\u05e1\u05d5\u05d2 \u05ea\u05d0",
"Copy row": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4",
"Row properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05e9\u05d5\u05e8\u05d4",
"Table properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05d8\u05d1\u05dc\u05d4",
"Row group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e9\u05d5\u05e8\u05d5\u05ea",
"Right": "\u05d9\u05de\u05d9\u05df",
"Insert column after": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d0\u05d7\u05e8\u05d9",
"Cols": "\u05e2\u05de\u05d5\u05d3\u05d5\u05ea",
"Insert row after": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9",
"Width": "\u05e8\u05d5\u05d7\u05d1",
"Cell properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05ea\u05d0",
"Left": "\u05e9\u05de\u05d0\u05dc",
"Cut row": "\u05d2\u05d6\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d4",
"Delete column": "\u05de\u05d7\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4",
"Center": "\u05de\u05e8\u05db\u05d6",
"Merge cells": "\u05de\u05d6\u05d2 \u05ea\u05d0\u05d9\u05dd",
"Insert template": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea",
"Templates": "\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea",
"Background color": "\u05e6\u05d1\u05e2 \u05e8\u05e7\u05e2",
"Text color": "\u05e6\u05d1\u05e2 \u05d4\u05db\u05ea\u05d1",
"Show blocks": "\u05d4\u05e6\u05d2 \u05ea\u05d9\u05d1\u05d5\u05ea",
"Show invisible characters": "\u05d4\u05e6\u05d2 \u05ea\u05d5\u05d5\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e8\u05d0\u05d9\u05dd",
"Words: {0}": "\u05de\u05d9\u05dc\u05d9\u05dd: {0}",
"Insert": "\u05d4\u05d5\u05e1\u05e4\u05d4",
"File": "\u05e7\u05d5\u05d1\u05e5",
"Edit": "\u05e2\u05e8\u05d9\u05db\u05d4",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u05ea\u05d9\u05d1\u05ea \u05e2\u05e8\u05d9\u05db\u05d4 \u05d7\u05db\u05de\u05d4. \u05dc\u05d7\u05e5 Alt-F9 \u05dc\u05ea\u05e4\u05e8\u05d9\u05d8. Alt-F10 \u05dc\u05ea\u05e6\u05d5\u05d2\u05ea \u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd, Alt-0 \u05dc\u05e2\u05d6\u05e8\u05d4",
"Tools": "\u05db\u05dc\u05d9\u05dd",
"View": "\u05ea\u05e6\u05d5\u05d2\u05d4",
"Table": "\u05d8\u05d1\u05dc\u05d4",
"Format": "\u05e4\u05d5\u05e8\u05de\u05d8",
"_dir": "rtl"
});editors/tinymce/langs/pt-PT.js000064400000021042152177723720012307 0ustar00tinymce.addI18n('pt-PT',{
"Cut": "Cortar",
"Heading 5": "T\u00edtulo 5",
"Header 2": "Cabe\u00e7alho 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador n\u00e3o suporta acesso direto \u00e0 \u00e1rea de transfer\u00eancia. Por favor use os atalhos Ctrl+X\/C\/V do seu teclado.",
"Heading 4": "T\u00edtulo 4",
"Div": "Div",
"Heading 2": "T\u00edtulo 2",
"Paste": "Colar",
"Close": "Fechar",
"Font Family": "Fonte",
"Pre": "Pre",
"Align right": "Alinhar \u00e0 direita",
"New document": "Novo documento",
"Blockquote": "Cita\u00e7\u00e3o em bloco",
"Numbered list": "Lista numerada",
"Heading 1": "T\u00edtulo 1",
"Headings": "T\u00edtulos",
"Increase indent": "Aumentar avan\u00e7o",
"Formats": "Formatos",
"Headers": "Cabe\u00e7alhos",
"Select all": "Selecionar tudo",
"Header 3": "Cabe\u00e7alho 3",
"Blocks": "Blocos",
"Undo": "Desfazer",
"Strikethrough": "Rasurado",
"Bullet list": "Lista com marcadores",
"Header 1": "Cabe\u00e7alho 1",
"Superscript": "Superior \u00e0 linha",
"Clear formatting": "Limpar formata\u00e7\u00e3o",
"Font Sizes": "Tamanhos",
"Subscript": "Inferior \u00e0 linha",
"Header 6": "Cabe\u00e7alho 6",
"Redo": "Refazer",
"Paragraph": "Par\u00e1grafo",
"Ok": "Ok",
"Bold": "Negrito",
"Code": "C\u00f3digo",
"Italic": "It\u00e1lico",
"Align center": "Alinhar ao centro",
"Header 5": "Cabe\u00e7alho 5",
"Heading 6": "T\u00edtulo 6",
"Heading 3": "T\u00edtulo 3",
"Decrease indent": "Diminuir avan\u00e7o",
"Header 4": "Cabe\u00e7alho 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 em modo de texto simples. O conte\u00fado ser\u00e1 colado como texto simples at\u00e9 desativar esta op\u00e7\u00e3o.",
"Underline": "Sublinhado",
"Cancel": "Cancelar",
"Justify": "Justificado",
"Inline": "Na linha",
"Copy": "Copiar",
"Align left": "Alinhar \u00e0 esquerda",
"Visual aids": "Ajuda visual",
"Lower Greek": "\\u03b1. \\u03b2. \\u03b3. ...",
"Square": "Quadrado",
"Default": "Padr\u00e3o",
"Lower Alpha": "a. b. c. ...",
"Circle": "C\u00edrculo",
"Disc": "Disco",
"Upper Alpha": "A. B. C. ...",
"Upper Roman": "I. II. III. ...",
"Lower Roman": "i. ii. iii. ...",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "O ID deve come\u00e7ar com uma letra, seguido por letras, n\u00fameros, tra\u00e7os, pontos, dois pontos ou sobtra\u00e7os.",
"Name": "Nome",
"Anchor": "\u00c2ncora",
"Id": "ID",
"You have unsaved changes are you sure you want to navigate away?": "Existem altera\u00e7\u00f5es que ainda n\u00e3o foram guardadas. Tem a certeza que pretende sair?",
"Restore last draft": "Restaurar o \u00faltimo rascunho",
"Special character": "Car\u00e1cter especial",
"Source code": "C\u00f3digo fonte",
"Language": "Idioma",
"Insert\/Edit code sample": "Inserir\/editar amostra de c\u00f3digo",
"B": "B",
"R": "R",
"G": "G",
"Color": "Cor",
"Right to left": "Da direita para a esquerda",
"Left to right": "Da esquerda para a direita",
"Emoticons": "Emo\u00e7\u00f5es",
"Robots": "Rob\u00f4s",
"Document properties": "Propriedades do documento",
"Title": "T\u00edtulo",
"Keywords": "Palavras-chave",
"Encoding": "Codifica\u00e7\u00e3o",
"Description": "Descri\u00e7\u00e3o",
"Author": "Autor",
"Fullscreen": "Ecr\u00e3 completo",
"Horizontal line": "Linha horizontal",
"Horizontal space": "Espa\u00e7amento horizontal",
"Insert\/edit image": "Inserir\/editar imagem",
"General": "Geral",
"Advanced": "Avan\u00e7ado",
"Source": "Localiza\u00e7\u00e3o",
"Border": "Contorno",
"Constrain proportions": "Manter propor\u00e7\u00f5es",
"Vertical space": "Espa\u00e7amento vertical",
"Image description": "Descri\u00e7\u00e3o da imagem",
"Style": "Estilo",
"Dimensions": "Dimens\u00f5es",
"Insert image": "Inserir imagem",
"Image": "Imagem",
"Zoom in": "Mais zoom",
"Contrast": "Contraste",
"Back": "Voltar",
"Gamma": "Gama",
"Flip horizontally": "Inverter horizontalmente",
"Resize": "Redimensionar",
"Sharpen": "Mais nitidez",
"Zoom out": "Menos zoom",
"Image options": "Op\u00e7\u00f5es de imagem",
"Apply": "Aplicar",
"Brightness": "Brilho",
"Rotate clockwise": "Rota\u00e7\u00e3o hor\u00e1ria",
"Rotate counterclockwise": "Rota\u00e7\u00e3o anti-hor\u00e1ria",
"Edit image": "Editar imagem",
"Color levels": "N\u00edveis de cor",
"Crop": "Recortar",
"Orientation": "Orienta\u00e7\u00e3o",
"Flip vertically": "Inverter verticalmente",
"Invert": "Inverter",
"Date\/time": "Data\/hora",
"Insert date\/time": "Inserir data\/hora",
"Remove link": "Remover liga\u00e7\u00e3o",
"Url": "URL",
"Text to display": "Texto a exibir",
"Anchors": "\u00c2ncora",
"Insert link": "Inserir liga\u00e7\u00e3o",
"Link": "Liga\u00e7\u00e3o",
"New window": "Nova janela",
"None": "Nenhum",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "O URL que indicou parece ser um endere\u00e7o web. Quer adicionar o prefixo http:\/\/ tal como necess\u00e1rio?",
"Paste or type a link": "Copiar ou escrever uma hiperliga\u00e7\u00e3o",
"Target": "Alvo",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "O URL que indicou parece ser um endere\u00e7o de email. Quer adicionar o prefixo mailto: tal como necess\u00e1rio?",
"Insert\/edit link": "Inserir\/editar liga\u00e7\u00e3o",
"Insert\/edit video": "Inserir\/editar v\u00eddeo",
"Media": "Media",
"Alternative source": "Localiza\u00e7\u00e3o alternativa",
"Paste your embed code below:": "Colar c\u00f3digo para embeber:",
"Insert video": "Inserir v\u00eddeo",
"Poster": "Autor",
"Insert\/edit media": "Inserir\/editar media",
"Embed": "Embeber",
"Nonbreaking space": "Espa\u00e7o n\u00e3o quebr\u00e1vel",
"Page break": "Quebra de p\u00e1gina",
"Paste as text": "Colar como texto",
"Preview": "Pr\u00e9-visualizar",
"Print": "Imprimir",
"Save": "Guardar",
"Could not find the specified string.": "N\u00e3o foi poss\u00edvel localizar o termo especificado.",
"Replace": "Substituir",
"Next": "Pr\u00f3ximo",
"Whole words": "Palavras completas",
"Find and replace": "Pesquisar e substituir",
"Replace with": "Substituir por",
"Find": "Pesquisar",
"Replace all": "Substituir tudo",
"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas",
"Prev": "Anterior",
"Spellcheck": "Corretor ortogr\u00e1fico",
"Finish": "Concluir",
"Ignore all": "Ignorar tudo",
"Ignore": "Ignorar",
"Add to Dictionary": "Adicionar ao dicion\u00e1rio",
"Insert row before": "Inserir linha antes",
"Rows": "Linhas",
"Height": "Altura",
"Paste row after": "Colar linha depois",
"Alignment": "Alinhamento",
"Border color": "Cor de contorno",
"Column group": "Agrupar coluna",
"Row": "Linha",
"Insert column before": "Inserir coluna antes",
"Split cell": "Dividir c\u00e9lula",
"Cell padding": "Espa\u00e7amento interno da c\u00e9lula",
"Cell spacing": "Espa\u00e7amento entre c\u00e9lulas",
"Row type": "Tipo de linha",
"Insert table": "Inserir tabela",
"Body": "Corpo",
"Caption": "Legenda",
"Footer": "Rodap\u00e9",
"Delete row": "Eliminar linha",
"Paste row before": "Colar linha antes",
"Scope": "Escopo",
"Delete table": "Eliminar tabela",
"H Align": "Alinhamento H",
"Top": "Superior",
"Header cell": "C\u00e9lula de cabe\u00e7alho",
"Column": "Coluna",
"Row group": "Agrupar linha",
"Cell": "C\u00e9lula",
"Middle": "Meio",
"Cell type": "Tipo de c\u00e9lula",
"Copy row": "Copiar linha",
"Row properties": "Propriedades da linha",
"Table properties": "Propriedades da tabela",
"Bottom": "Inferior",
"V Align": "Alinhamento V",
"Header": "Cabe\u00e7alho",
"Right": "Direita",
"Insert column after": "Inserir coluna depois",
"Cols": "Colunas",
"Insert row after": "Inserir linha depois",
"Width": "Largura",
"Cell properties": "Propriedades da c\u00e9lula",
"Left": "Esquerda",
"Cut row": "Cortar linha",
"Delete column": "Eliminar coluna",
"Center": "Centro",
"Merge cells": "Unir c\u00e9lulas",
"Insert template": "Inserir modelo",
"Templates": "Modelos",
"Background color": "Cor de fundo",
"Custom...": "Personalizada...",
"Custom color": "Cor personalizada",
"No color": "Sem cor",
"Text color": "Cor do texto",
"Table of Contents": "\u00cdndice",
"Show blocks": "Mostrar blocos",
"Show invisible characters": "Mostrar caracteres invis\u00edveis",
"Words: {0}": "Palavras: {0}",
"Insert": "Inserir",
"File": "Ficheiro",
"Edit": "Editar",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Caixa de texto formatado. Pressione ALT-F9 para exibir o menu. Pressione ALT-F10 para exibir a barra de ferramentas. Pressione ALT-0 para exibir a ajuda",
"Tools": "Ferramentas",
"View": "Ver",
"Table": "Tabela",
"Format": "Formatar"
});editors/tinymce/langs/nb.js000064400000017605152177723720011754 0ustar00tinymce.addI18n('nb',{
"Cut": "Klipp ut",
"Heading 5": "Overskrift 5",
"Header 2": "Overskrift 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nettleseren din st\u00f8tter ikke direkte tilgang til utklippsboken. Bruk istedet tastatur-snarveiene Ctrl+X\/C\/V, eller Cmd+X\/C\/V p\u00e5 Mac.",
"Heading 4": "Overskrift 4",
"Div": "Delblokk <div>",
"Heading 2": "Overskrift 2",
"Paste": "Lim inn",
"Close": "Lukk",
"Font Family": "Skriftsnitt",
"Pre": "Definert <pre>",
"Align right": "H\u00f8yrejustert",
"New document": "Nytt dokument",
"Blockquote": "Sitatblokk <blockquote>",
"Numbered list": "Nummerliste",
"Heading 1": "Overskrift 1",
"Headings": "Overskrifter",
"Increase indent": "\u00d8k innrykk",
"Formats": "Stiler",
"Headers": "Overskrifter",
"Select all": "Marker alt",
"Header 3": "Overskrift 3",
"Blocks": "Blokker",
"Undo": "Angre",
"Strikethrough": "Gjennomstreket",
"Bullet list": "Punktliste",
"Header 1": "Overskrift 1",
"Superscript": "Hevet skrift",
"Clear formatting": "Fjern formateringer",
"Font Sizes": "St\u00f8rrelse",
"Subscript": "Senket skrift",
"Header 6": "Overskrift 6",
"Redo": "Utf\u00f8r likevel",
"Paragraph": "Avsnitt <p>",
"Ok": "OK",
"Bold": "Halvfet",
"Code": "Kode <code>",
"Italic": "Kursiv",
"Align center": "Midtstilt",
"Header 5": "Overskrift 5",
"Heading 6": "Overskrift 6",
"Heading 3": "Overskrift 3",
"Decrease indent": "Reduser innrykk",
"Header 4": "Overskrift 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Lim inn er n\u00e5 i ren-tekst modus. Kopiert innhold vil bli limt inn som ren tekst inntil du sl\u00e5r av dette valget.",
"Underline": "Understreket",
"Cancel": "Avbryt",
"Justify": "Juster alle linjer",
"Inline": "Innkapslet <span>",
"Copy": "Kopier",
"Align left": "Venstrejustert",
"Visual aids": "Visuelle hjelpemidler",
"Lower Greek": "Greske minuskler",
"Square": "Fylt firkant",
"Default": "Normal",
"Lower Alpha": "Minuskler",
"Circle": "\u00c5pen sirkel",
"Disc": "Fylt sirkel",
"Upper Alpha": "Versaler",
"Upper Roman": "Romerske versaler",
"Lower Roman": "Romerske minuskler",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id burde starte med en bokstav, bare fulgt av bokstaver, nummer, streker, punktum, koloner eller understreker.",
"Name": "Navn",
"Anchor": "Anker",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Du har ikke arkivert endringene. Vil du fortsette uten \u00e5 arkivere?",
"Restore last draft": "Gjenopprett siste utkast",
"Special character": "Spesialtegn",
"Source code": "Kildekode",
"Language": "Spr\u00e5k",
"Insert\/Edit code sample": "Sett inn\/endre kodeeksempel",
"B": "B",
"R": "R",
"G": "G",
"Color": "Farge",
"Right to left": "H\u00f8yre til venstre",
"Left to right": "Venstre til h\u00f8yre",
"Emoticons": "Hum\u00f8rfjes",
"Robots": "Roboter",
"Document properties": "Dokumentegenskaper",
"Title": "Tittel",
"Keywords": "N\u00f8kkelord",
"Encoding": "Tegnkoding",
"Description": "Beskrivelse",
"Author": "Forfatter",
"Fullscreen": "Fullskjerm",
"Horizontal line": "Horisontal linje",
"Horizontal space": "Horisontal marg",
"Insert\/edit image": "Sett inn\/endre bilde",
"General": "Generelt",
"Advanced": "Avansert",
"Source": "Bildelenke",
"Border": "Ramme",
"Constrain proportions": "Behold proporsjoner",
"Vertical space": "Vertikal marg",
"Image description": "Bildebeskrivelse",
"Style": "Stil",
"Dimensions": "Dimensjoner",
"Insert image": "Sett inn bilde",
"Image": "Bilde",
"Zoom in": "Zoom inn",
"Contrast": "Kontrast",
"Back": "Tilbake",
"Gamma": "Gamma",
"Flip horizontally": "Speilvend horisontalt",
"Resize": "Skaler",
"Sharpen": "Skarphet",
"Zoom out": "Zoom ut",
"Image options": "Bilde innstillinger",
"Apply": "Utf\u00f8r",
"Brightness": "Lysstyrke",
"Rotate clockwise": "Roter mot h\u00f8yre",
"Rotate counterclockwise": "Roter mot venstre",
"Edit image": "Rediger bilde",
"Color levels": "Fargeniv\u00e5",
"Crop": "Beskj\u00e6r",
"Orientation": "Orientering",
"Flip vertically": "Speilvend vertikalt",
"Invert": "Inverter",
"Date\/time": "Dato\/tid",
"Insert date\/time": "Sett inn dato\/tid",
"Remove link": "Fjern lenke",
"Url": "Url",
"Text to display": "Tekst som skal vises",
"Anchors": "Anker",
"Insert link": "Sett inn lenke",
"Link": "Lenke",
"New window": "Nytt vindu",
"None": "Ingen",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Oppgitt URL ser ut til \u00e5 v\u00e6re en e-postadresse. \u00d8nsker du \u00e5 sette inn p\u00e5krevd mailto:-prefiks foran e-postadressen?",
"Paste or type a link": "Lim inn eller skriv en lenke",
"Target": "M\u00e5l",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Oppgitte URL ser ut til \u00e5 v\u00e6re en epost-adresse. \u00d8nsker du \u00e5 sette inn p\u00e5krevet mailto: prefiks forran epost-adressen?",
"Insert\/edit link": "Sett inn\/endre lenke",
"Insert\/edit video": "Sett inn\/rediger video",
"Media": "Media",
"Alternative source": "Alternativ kilde",
"Paste your embed code below:": "Lim inn  inkluderings-koden nedenfor",
"Insert video": "Sett inn video",
"Poster": "Plakatbilde",
"Insert\/edit media": "Sett inn\/endre media",
"Embed": "Inkluder",
"Nonbreaking space": "Hardt mellomrom",
"Page break": "Sideskifte",
"Paste as text": "Lim inn som tekst",
"Preview": "Forh\u00e5ndsvisning",
"Print": "Skriv ut",
"Save": "Arkiver",
"Could not find the specified string.": "Kunne ikke finne den spesifiserte teksten",
"Replace": "Erstatt",
"Next": "Neste",
"Whole words": "Hele ord",
"Find and replace": "Finn og erstatt",
"Replace with": "Erstatt med",
"Find": "Finn",
"Replace all": "Erstatt alle",
"Match case": "Match store og sm\u00e5 bokstaver",
"Prev": "Forrige",
"Spellcheck": "Stavekontroll",
"Finish": "Avslutt",
"Ignore all": "Ignorer alle",
"Ignore": "Ignorer",
"Add to Dictionary": "Legg til i ordliste",
"Insert row before": "Sett inn rad f\u00f8r",
"Rows": "Rader",
"Height": "H\u00f8yde",
"Paste row after": "Lim inn rad etter",
"Alignment": "Justering",
"Border color": "Rammefarge",
"Column group": "Kolonnegruppe",
"Row": "Rad",
"Insert column before": "Sett inn kolonne f\u00f8r",
"Split cell": "Splitt celle",
"Cell padding": "Cellemarg",
"Cell spacing": "Celleavstand",
"Row type": "Rad-type",
"Insert table": "Sett inn tabell",
"Body": "Br\u00f8dtekst",
"Caption": "Tittel",
"Footer": "Bunntekst",
"Delete row": "Slett rad",
"Paste row before": "Lim inn rad f\u00f8r",
"Scope": "Omfang",
"Delete table": "Slett tabell",
"H Align": "H Justering",
"Top": "Topp",
"Header cell": "Topptekst-celle",
"Column": "Kolonne",
"Row group": "Radgruppe",
"Cell": "Celle",
"Middle": "Midten",
"Cell type": "Celletype",
"Copy row": "Kopier rad",
"Row properties": "Rad egenskaper",
"Table properties": "Tabell egenskaper",
"Bottom": "Bunn",
"V Align": "V Justering",
"Header": "Topptekst",
"Right": "H\u00f8yre",
"Insert column after": "Sett inn kolonne etter",
"Cols": "Kolonner",
"Insert row after": "Sett in rad etter",
"Width": "Bredde",
"Cell properties": "Celle egenskaper",
"Left": "Venstre",
"Cut row": "Klipp ut rad",
"Delete column": "Slett kolonne",
"Center": "Midtstilt",
"Merge cells": "Sl\u00e5 sammen celler",
"Insert template": "Sett inn mal",
"Templates": "Maler",
"Background color": "Bakgrunnsfarge",
"Custom...": "Tilpass...",
"Custom color": "Tilpasset farge",
"No color": "Ingen farge",
"Text color": "Tekstfarge",
"Table of Contents": "Innholdsfortegnelse",
"Show blocks": "Vis blokker",
"Show invisible characters": "Vis skjulte tegn",
"Words: {0}": "Antall ord: {0}",
"Insert": "Sett inn",
"File": "Arkiv",
"Edit": "Rediger",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Tekstredigering. Tast ALT-F9 for meny. Tast ALT-F10 for verkt\u00f8ys-rader. Tast ALT-0 for hjelp.",
"Tools": "Verkt\u00f8y",
"View": "Vis",
"Table": "Tabell",
"Format": "Format"
});editors/tinymce/langs/ka.js000064400000054423152177723720011747 0ustar00tinymce.addI18n('ka',{
"Cut": "\u10d0\u10db\u10dd\u10ed\u10e0\u10d0",
"Heading 5": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 5",
"Header 2": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u10d7\u10e5\u10d5\u10d4\u10dc \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e1 \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1 \u10d1\u10e3\u10e4\u10e0\u10e2\u10e8\u10d8 \u10e8\u10d4\u10ee\u10ec\u10d4\u10d5\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0. \u10d2\u10d7\u10ee\u10dd\u10d5\u10d7 \u10e1\u10d0\u10dc\u10d0\u10ea\u10d5\u10da\u10dd\u10d3 \u10d8\u10e1\u10d0\u10e0\u10d2\u10d4\u10d1\u10da\u10dd\u10d7 Ctrl+X\/C\/V \u10db\u10d0\u10da\u10e1\u10d0\u10ee\u10db\u10dd\u10d1\u10d8 \u10d9\u10dd\u10db\u10d1\u10d8\u10dc\u10d0\u10ea\u10d8\u10d4\u10d1\u10d8\u10d7.",
"Heading 4": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 4",
"Div": "\u10d2\u10d0\u10dc\u10d0\u10ec\u10d8\u10da\u10d4\u10d1\u10d0",
"Heading 2": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 2",
"Paste": "\u10e9\u10d0\u10e1\u10db\u10d0",
"Close": "\u10d3\u10d0\u10ee\u10e3\u10e0\u10d5\u10d0",
"Font Family": "\u10e4\u10dd\u10dc\u10e2\u10d8",
"Pre": "\u10de\u10e0\u10d4\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8",
"Align right": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
"New document": "\u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10dd\u10d9\u10e3\u10db\u10d4\u10dc\u10e2\u10d8",
"Blockquote": "\u10d1\u10da\u10dd\u10d9\u10d8\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10ea\u10d8\u10e2\u10d0\u10e2\u10d0",
"Numbered list": "\u10d3\u10d0\u10dc\u10dd\u10db\u10e0\u10d8\u10da\u10d8 \u10e1\u10d8\u10d0",
"Heading 1": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 1",
"Headings": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8",
"Increase indent": "\u10d0\u10d1\u10d6\u10d0\u10ea\u10d8\u10e1 \u10d2\u10d0\u10d6\u10e0\u10d3\u10d0",
"Formats": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8",
"Headers": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d4\u10d1\u10d8",
"Select all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10db\u10dd\u10e6\u10dc\u10d8\u10e8\u10d5\u10dc\u10d0",
"Header 3": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 3",
"Blocks": "\u10d1\u10da\u10dd\u10d9\u10d4\u10d1\u10d8",
"Undo": "\u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0",
"Strikethrough": "\u10e8\u10e3\u10d0 \u10ee\u10d0\u10d6\u10d8",
"Bullet list": "\u10d1\u10e3\u10da\u10d4\u10e2 \u10e1\u10d8\u10d0",
"Header 1": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 1",
"Superscript": "\u10d6\u10d4\u10d3\u10d0 \u10d8\u10dc\u10d3\u10d4\u10e5\u10e1\u10d8",
"Clear formatting": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10e1\u10e3\u10e4\u10d7\u10d0\u10d5\u10d4\u10d1\u10d0",
"Font Sizes": "\u10e4\u10dd\u10dc\u10e2\u10d8\u10e1 \u10d6\u10dd\u10db\u10d0",
"Subscript": "\u10e5\u10d5\u10d4\u10d3\u10d0 \u10d8\u10dc\u10d3\u10d4\u10e5\u10e1\u10d8",
"Header 6": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 6",
"Redo": "\u10d2\u10d0\u10db\u10d4\u10dd\u10e0\u10d4\u10d1\u10d0",
"Paragraph": "\u10de\u10d0\u10e0\u10d0\u10d2\u10e0\u10d0\u10e4\u10d8",
"Ok": "\u10d9\u10d0\u10e0\u10d2\u10d8",
"Bold": "\u10db\u10d9\u10d5\u10d4\u10d7\u10e0\u10d8",
"Code": "\u10d9\u10dd\u10d3\u10d8",
"Italic": "\u10d3\u10d0\u10ee\u10e0\u10d8\u10da\u10d8",
"Align center": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10ea\u10d4\u10dc\u10e2\u10e0\u10e8\u10d8",
"Header 5": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 5",
"Heading 6": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 6",
"Heading 3": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 3",
"Decrease indent": "\u10d0\u10d1\u10d6\u10d0\u10ea\u10d8\u10e1 \u10e8\u10d4\u10db\u10ea\u10d8\u10e0\u10d4\u10d1\u10d0",
"Header 4": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0 \u10e9\u10d5\u10d4\u10e3\u10da\u10d4\u10d1\u10e0\u10d8\u10d5 \u10e0\u10d4\u10df\u10d8\u10db\u10e8\u10d8\u10d0. \u10e2\u10d4\u10e5\u10e1\u10e2\u10d8 \u10e9\u10d0\u10d8\u10e1\u10db\u10d4\u10d5\u10d0 \u10e3\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10dd\u10d7 \u10e1\u10d0\u10dc\u10d0\u10db \u10d0\u10db \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d0\u10e1 \u10d0\u10e0 \u10d2\u10d0\u10d7\u10d8\u10e8\u10d0\u10d5\u10d7.",
"Underline": "\u10e5\u10d5\u10d4\u10d3\u10d0 \u10ee\u10d0\u10d6\u10d8",
"Cancel": "\u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0",
"Justify": "\u10d2\u10d0\u10db\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",
"Inline": "\u10ee\u10d0\u10d6\u10e8\u10d8\u10d3\u10d0",
"Copy": "\u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d1\u10d0",
"Align left": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
"Visual aids": "\u10d5\u10d8\u10d6\u10e3\u10d0\u10da\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0",
"Lower Greek": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8",
"Square": "\u10d9\u10d5\u10d0\u10d3\u10e0\u10d0\u10e2\u10d8",
"Default": "\u10e1\u10e2\u10d0\u10dc\u10d3\u10d0\u10e0\u10e2\u10e3\u10da\u10d8",
"Lower Alpha": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10d0\u10da\u10e4\u10d0",
"Circle": "\u10ec\u10e0\u10d4",
"Disc": "\u10d3\u10d8\u10e1\u10d9\u10d8",
"Upper Alpha": "\u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10d0\u10da\u10e4\u10d0",
"Upper Roman": "\u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10e0\u10dd\u10db\u10d0\u10e3\u10da\u10d8",
"Lower Roman": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10e0\u10dd\u10db\u10d0\u10e3\u10da\u10d8",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "id \u10e3\u10dc\u10d3\u10d0 \u10d8\u10ec\u10e7\u10d4\u10d1\u10dd\u10d3\u10d4\u10e1 \u10d0\u10e1\u10dd\u10d7\u10d8, \u10e0\u10dd\u10db\u10d4\u10da\u10e1\u10d0\u10ea \u10db\u10dd\u10e7\u10d5\u10d4\u10d1\u10d0 \u10db\u10ee\u10dd\u10da\u10dd\u10d3 \u10d0\u10e1\u10dd\u10d4\u10d1\u10d8, \u10ea\u10d8\u10e4\u10e0\u10d4\u10d1\u10d8, \u10e2\u10d8\u10e0\u10d4, \u10ec\u10d4\u10e0\u10e2\u10d8\u10da\u10d4\u10d1\u10d8, \u10dd\u10e0\u10d8 \u10ec\u10d4\u10e0\u10e2\u10d8\u10da\u10d8 \u10d0\u10dc \u10e5\u10d5\u10d4\u10d3\u10d0 \u10e2\u10d8\u10e0\u10d4. ",
"Name": "\u10e1\u10d0\u10ee\u10d4\u10da\u10d8",
"Anchor": "\u10e6\u10e3\u10d6\u10d0",
"Id": "id",
"You have unsaved changes are you sure you want to navigate away?": "\u10d7\u10e5\u10d5\u10d4\u10dc \u10d2\u10d0\u10e5\u10d5\u10d7 \u10e8\u10d4\u10e3\u10dc\u10d0\u10ee\u10d0\u10d5\u10d8 \u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d4\u10d1\u10d8, \u10d3\u10d0\u10e0\u10ec\u10db\u10e3\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10ee\u10d0\u10d7 \u10e0\u10dd\u10db \u10e1\u10ee\u10d5\u10d0\u10d2\u10d0\u10dc \u10d2\u10d0\u10d3\u10d0\u10e1\u10d5\u10da\u10d0 \u10d2\u10e1\u10e3\u10e0\u10d7?",
"Restore last draft": "\u10d1\u10dd\u10da\u10dd\u10e1 \u10e8\u10d4\u10dc\u10d0\u10ee\u10e3\u10da\u10d8\u10e1 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d0",
"Special character": "\u10e1\u10de\u10d4\u10ea\u10d8\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd",
"Source code": "\u10ec\u10e7\u10d0\u10e0\u10dd\u10e1 \u10d9\u10dd\u10d3\u10d8",
"Language": "\u10d4\u10dc\u10d0",
"Insert\/Edit code sample": "\u10e9\u10d0\u10e1\u10d5\u10d8\/\u10e8\u10d4\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10d9\u10dd\u10d3\u10d8\u10e1 \u10db\u10d0\u10d2\u10d0\u10da\u10d8\u10d7\u10d8",
"B": "\u10da",
"R": "\u10ec",
"G": "\u10db",
"Color": "\u10e4\u10d4\u10e0\u10d8",
"Right to left": "\u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d3\u10d0\u10dc \u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
"Left to right": "\u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d3\u10d0\u10dc \u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
"Emoticons": "\u10e1\u10db\u10d0\u10d8\u10da\u10d8\u10d9\u10d4\u10d1\u10d8",
"Robots": "\u10e0\u10dd\u10d1\u10dd\u10d4\u10d1\u10d8",
"Document properties": "\u10d3\u10dd\u10d9\u10e3\u10db\u10d4\u10dc\u10e2\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
"Title": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8",
"Keywords": "\u10e1\u10d0\u10d9\u10d5\u10d0\u10dc\u10eb\u10dd \u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8",
"Encoding": "\u10d9\u10dd\u10d3\u10d8\u10e0\u10d4\u10d1\u10d0",
"Description": "\u10d0\u10ee\u10ec\u10d4\u10e0\u10d0",
"Author": "\u10d0\u10d5\u10e2\u10dd\u10e0\u10d8",
"Fullscreen": "\u10e1\u10d0\u10d5\u10e1\u10d4 \u10d4\u10d9\u10e0\u10d0\u10dc\u10d8",
"Horizontal line": "\u10f0\u10dd\u10e0\u10d8\u10d6\u10dd\u10dc\u10e2\u10d0\u10da\u10e3\u10e0\u10d8 \u10ee\u10d0\u10d6\u10d8",
"Horizontal space": "\u10f0\u10dd\u10e0\u10d8\u10d6\u10dd\u10dc\u10e2\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
"Insert\/edit image": "\u10e9\u10d0\u10e1\u10d5\u10d8\/\u10e8\u10d4\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10e1\u10e3\u10e0\u10d0\u10d7\u10d8",
"General": "\u10db\u10d7\u10d0\u10d5\u10d0\u10e0\u10d8",
"Advanced": "\u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10d7\u10d8",
"Source": "\u10d1\u10db\u10e3\u10da\u10d8",
"Border": "\u10e1\u10d0\u10d6\u10e6\u10d5\u10d0\u10e0\u10d8",
"Constrain proportions": "\u10de\u10e0\u10dd\u10de\u10dd\u10e0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d0\u10ea\u10d5\u10d0",
"Vertical space": "\u10d5\u10d4\u10e0\u10e2\u10d8\u10d9\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
"Image description": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10d3\u10d0\u10ee\u10d0\u10e1\u10d8\u10d0\u10d7\u10d4\u10d1\u10d0",
"Style": "\u10e1\u10e2\u10d8\u10da\u10d8",
"Dimensions": "\u10d2\u10d0\u10dc\u10d6\u10dd\u10db\u10d8\u10da\u10d4\u10d1\u10d0",
"Insert image": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Image": "\u10d2\u10d0\u10db\u10dd\u10e1\u10d0\u10ee\u10e3\u10da\u10d4\u10d1\u10d0",
"Zoom in": "\u10d2\u10d0\u10d3\u10d8\u10d3\u10d8\u10d4\u10d1\u10d0",
"Contrast": "\u10d9\u10dd\u10dc\u10e2\u10e0\u10d0\u10e1\u10e2\u10d8",
"Back": "\u10e3\u10d9\u10d0\u10dc",
"Gamma": "\u10d2\u10d0\u10db\u10d0",
"Flip horizontally": "\u10f0\u10dd\u10e0\u10d8\u10d6\u10dd\u10dc\u10e2\u10d0\u10da\u10e3\u10e0\u10d0\u10d3 \u10e8\u10d4\u10e2\u10e0\u10d8\u10d0\u10da\u10d4\u10d1\u10d0",
"Resize": "\u10d6\u10dd\u10db\u10d8\u10e1 \u10e8\u10d4\u10ea\u10d5\u10da\u10d0",
"Sharpen": "\u10d2\u10d0\u10da\u10d4\u10e1\u10d5\u10d0",
"Zoom out": "\u10d3\u10d0\u10de\u10d0\u10e2\u10d0\u10e0\u10d0\u10d5\u10d4\u10d1\u10d0",
"Image options": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d4\u10d1\u10d8",
"Apply": "\u10db\u10d8\u10e6\u10d4\u10d1\u10d0",
"Brightness": "\u10e1\u10d8\u10d9\u10d0\u10e8\u10d9\u10d0\u10e8\u10d4",
"Rotate clockwise": "\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10d8\u10e1\u10e0\u10d8\u10e1 \u10db\u10d8\u10db\u10d0\u10e0\u10d7\u10e3\u10da\u10d4\u10d1\u10d8\u10d7 \u10db\u10dd\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0",
"Rotate counterclockwise": "\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10d8\u10e1\u10e0\u10d8\u10e1 \u10db\u10d8\u10db\u10d0\u10e0\u10d7\u10e3\u10da\u10d4\u10d1\u10d8\u10e1 \u10e1\u10d0\u10ec\u10d8\u10dc\u10d0\u10d0\u10e6\u10db\u10d3\u10d4\u10d2\u10dd\u10d2 \u10db\u10dd\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0",
"Edit image": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0",
"Color levels": "\u10e4\u10d4\u10e0\u10d8\u10e1 \u10d3\u10dd\u10dc\u10d4",
"Crop": "\u10db\u10dd\u10ed\u10e0\u10d0",
"Orientation": "\u10dd\u10e0\u10d8\u10d4\u10dc\u10e2\u10d0\u10ea\u10d8\u10d0",
"Flip vertically": "\u10d5\u10d4\u10e0\u10e2\u10d8\u10d9\u10d0\u10da\u10e3\u10e0\u10d0\u10d3 \u10d0\u10e2\u10e0\u10d8\u10d0\u10da\u10d4\u10d1\u10d0",
"Invert": "\u10e8\u10d4\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0",
"Date\/time": "\u10d7\u10d0\u10e0\u10d8\u10e6\u10d8\/\u10d3\u10e0\u10dd",
"Insert date\/time": "\u10d7\u10d0\u10e0\u10d8\u10e6\u10d8\/\u10d3\u10e0\u10dd\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Remove link": "\u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
"Url": "Url",
"Text to display": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8",
"Anchors": "\u10e6\u10e3\u10d6\u10d0",
"Insert link": "\u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Link": "\u10d1\u10db\u10e3\u10da\u10d8",
"New window": "\u10d0\u10ee\u10d0\u10da \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0\u10e8\u10d8",
"None": "\u10d0\u10e0\u10ea\u10d4\u10e0\u10d7\u10d8",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10d8\u10d4\u10e0 \u10db\u10d8\u10d7\u10d8\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8 \u10ec\u10d0\u10e0\u10db\u10dd\u10d0\u10d3\u10d2\u10d4\u10dc\u10e1 \u10d2\u10d0\u10e0\u10d4 \u10d1\u10db\u10e3\u10da\u10e1. \u10d2\u10e1\u10e3\u10e0\u10d7, \u10e0\u10dd\u10db \u10db\u10d8\u10d5\u10d0\u10dc\u10d8\u10ed\u10dd http:\/\/ \u10e4\u10e0\u10d4\u10e4\u10d8\u10e5\u10e1\u10d8?",
"Paste or type a link": "\u10e9\u10d0\u10e1\u10d5\u10d8\u10d7 \u10d0\u10dc \u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d1\u10db\u10e3\u10da\u10d8",
"Target": "\u10d2\u10d0\u10ee\u10e1\u10dc\u10d0",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u10d7\u10e5\u10d5\u10d4\u10dc \u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10d4\u10da-\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8 \u10dc\u10d0\u10ea\u10d5\u10da\u10d0\u10d3 \u10d5\u10d4\u10d1-\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8\u10e1\u10d0. \u10d2\u10e1\u10e3\u10e0\u10d7, \u10e0\u10dd\u10db \u10db\u10d8\u10d5\u10d0\u10dc\u10d8\u10ed\u10dd mailto: \u10e4\u10e0\u10d4\u10e4\u10d8\u10e5\u10e1\u10d8?",
"Insert\/edit link": "\u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0\/\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d0",
"Insert\/edit video": "\u10d5\u10d8\u10d3\u10d4\u10dd\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0\/\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0",
"Media": "\u10db\u10d4\u10d3\u10d8\u10d0",
"Alternative source": "\u10d0\u10da\u10e2\u10d4\u10e0\u10dc\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10ec\u10e7\u10d0\u10e0\u10dd",
"Paste your embed code below:": "\u10d0\u10e5 \u10e9\u10d0\u10e1\u10d5\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d9\u10dd\u10d3\u10d8:",
"Insert video": "\u10d5\u10d8\u10d3\u10d4\u10dd\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Poster": "\u10de\u10da\u10d0\u10d9\u10d0\u10e2\u10d8",
"Insert\/edit media": "\u10db\u10d4\u10d3\u10d8\u10d0\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0\/\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0",
"Embed": "\u10e9\u10d0\u10e8\u10d4\u10dc\u10d4\u10d1\u10d0",
"Nonbreaking space": "\u10e3\u10ec\u10e7\u10d5\u10d4\u10e2\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
"Page break": "\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8\u10e1 \u10d2\u10d0\u10ec\u10e7\u10d5\u10d4\u10e2\u10d0",
"Paste as text": "\u10e9\u10d0\u10e1\u10d5\u10d8\u10d7 \u10e0\u10dd\u10d2\u10dd\u10e0\u10ea \u10e2\u10d4\u10e5\u10e1\u10e2\u10d8",
"Preview": "\u10ec\u10d8\u10dc\u10d0\u10e1\u10ec\u10d0\u10e0 \u10dc\u10d0\u10ee\u10d5\u10d0",
"Print": "\u10d0\u10db\u10dd\u10d1\u10d4\u10ed\u10d5\u10d3\u10d0",
"Save": "\u10e8\u10d4\u10dc\u10d0\u10ee\u10d5\u10d0",
"Could not find the specified string.": "\u10db\u10dd\u10ea\u10d4\u10db\u10e3\u10da\u10d8 \u10e9\u10d0\u10dc\u10d0\u10ec\u10d4\u10e0\u10d8 \u10d5\u10d4\u10e0 \u10db\u10dd\u10d8\u10eb\u10d4\u10d1\u10dc\u10d0.",
"Replace": "\u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
"Next": "\u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8",
"Whole words": "\u10e1\u10e0\u10e3\u10da\u10d8 \u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8",
"Find and replace": "\u10db\u10dd\u10eb\u10d4\u10d1\u10dc\u10d4 \u10d3\u10d0 \u10e8\u10d4\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4",
"Replace with": "\u10e8\u10d4\u10e1\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10e1\u10d8\u10e2\u10e7\u10d5\u10d0",
"Find": "\u10eb\u10d4\u10d1\u10dc\u10d0",
"Replace all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
"Match case": "\u10d3\u10d0\u10d0\u10db\u10d7\u10ee\u10d5\u10d8\u10d4 \u10d0\u10e1\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d6\u10dd\u10db\u10d0",
"Prev": "\u10ec\u10d8\u10dc\u10d0",
"Spellcheck": "\u10db\u10d0\u10e0\u10d7\u10da\u10ec\u10d4\u10e0\u10d8\u10e1 \u10e8\u10d4\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0",
"Finish": "\u10d3\u10d0\u10e1\u10d0\u10e1\u10e0\u10e3\u10da\u10d8",
"Ignore all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10d8\u10d2\u10dc\u10dd\u10e0\u10d8\u10e0\u10d4\u10d1\u10d0",
"Ignore": "\u10d8\u10d2\u10dc\u10dd\u10e0\u10d8\u10e0\u10d4\u10d1\u10d0",
"Add to Dictionary": "\u10da\u10d4\u10e5\u10e1\u10d8\u10d9\u10dd\u10dc\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
"Insert row before": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
"Rows": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d4\u10d1\u10d8",
"Height": "\u10e1\u10d8\u10db\u10d0\u10e6\u10da\u10d4",
"Paste row after": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10e9\u10d0\u10e1\u10db\u10d0",
"Alignment": "\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
"Border color": "\u10e1\u10d0\u10d6\u10d0\u10e0\u10d8\u10e1 \u10e4\u10d4\u10e0\u10d8",
"Column group": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10ef\u10d2\u10e3\u10e4\u10d8",
"Row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8",
"Insert column before": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
"Split cell": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d2\u10d0\u10e7\u10dd\u10e4\u10d0",
"Cell padding": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10e4\u10d0\u10e0\u10d7\u10dd\u10d1\u10d8",
"Cell spacing": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10d0",
"Row type": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8",
"Insert table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Body": "\u10e2\u10d0\u10dc\u10d8",
"Caption": "\u10ec\u10d0\u10e0\u10ec\u10d4\u10e0\u10d0",
"Footer": "\u10eb\u10d8\u10e0\u10d8",
"Delete row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
"Paste row before": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10e9\u10d0\u10e1\u10db\u10d0",
"Scope": "\u10e9\u10d0\u10e0\u10e9\u10dd",
"Delete table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
"H Align": "H \u10e9\u10d0\u10db\u10ec\u10d9\u10e0\u10d8\u10d5\u10d4\u10d1\u10d0",
"Top": "\u10db\u10d0\u10e6\u10da\u10d0",
"Header cell": "\u10d7\u10d0\u10d5\u10d8\u10e1 \u10e3\u10ef\u10e0\u10d0",
"Column": "\u10e1\u10d5\u10d4\u10e2\u10d8",
"Row group": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10ef\u10d2\u10e3\u10e4\u10d8",
"Cell": "\u10e3\u10ef\u10e0\u10d0",
"Middle": "\u10e8\u10e3\u10d0",
"Cell type": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8",
"Copy row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d1\u10d0",
"Row properties": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
"Table properties": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
"Bottom": "\u10e5\u10d5\u10d4\u10d3\u10d0",
"V Align": "V \u10e9\u10d0\u10db\u10ec\u10d9\u10e0\u10d8\u10d5\u10d4\u10d1\u10d0",
"Header": "\u10d7\u10d0\u10d5\u10d8",
"Right": "\u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
"Insert column after": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
"Cols": "\u10e1\u10d5\u10d4\u10e2\u10d4\u10d1\u10d8",
"Insert row after": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
"Width": "\u10e1\u10d8\u10d2\u10d0\u10dc\u10d4",
"Cell properties": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
"Left": "\u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
"Cut row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d0\u10db\u10dd\u10ed\u10e0\u10d0",
"Delete column": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
"Center": "\u10ea\u10d4\u10dc\u10e2\u10e0\u10e8\u10d8",
"Merge cells": "\u10e3\u10ef\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10d0",
"Insert template": "\u10e8\u10d0\u10d1\u10da\u10dd\u10dc\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
"Templates": "\u10e8\u10d0\u10d1\u10da\u10dd\u10dc\u10d4\u10d1\u10d8",
"Background color": "\u10e3\u10d9\u10d0\u10dc\u10d0 \u10e4\u10d4\u10e0\u10d8",
"Custom...": "\u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8",
"Custom color": "\u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8 \u10e4\u10d4\u10e0\u10d8",
"No color": "\u10e4\u10d4\u10e0\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4",
"Text color": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e4\u10d4\u10e0\u10d8",
"Table of Contents": "\u10e1\u10d0\u10e0\u10e9\u10d4\u10d5\u10d8",
"Show blocks": "\u10d1\u10da\u10dd\u10d9\u10d4\u10d1\u10d8\u10e1 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0",
"Show invisible characters": "\u10e3\u10ee\u10d8\u10da\u10d0\u10d5\u10d8 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd\u10d4\u10d1\u10d8\u10e1 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0",
"Words: {0}": "\u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8: {0}",
"Insert": "\u10e9\u10d0\u10e1\u10db\u10d0",
"File": "\u10e4\u10d0\u10d8\u10da\u10d8",
"Edit": "\u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e4\u10d0\u10e0\u10d7\u10d8. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-F9\u10e1 \u10db\u10d4\u10dc\u10d8\u10e3\u10e1 \u10d2\u10d0\u10db\u10dd\u10e1\u10d0\u10eb\u10d0\u10ee\u10d4\u10d1\u10da\u10d0\u10d3. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-F10\u10e1 \u10de\u10d0\u10dc\u10d4\u10da\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-0\u10e1 \u10d3\u10d0\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1",
"Tools": "\u10d8\u10d0\u10e0\u10d0\u10e6\u10d4\u10d1\u10d8",
"View": "\u10dc\u10d0\u10ee\u10d5\u10d0",
"Table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8",
"Format": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8"
});editors/tinymce/langs/ms.js000064400000012756152177723720011776 0ustar00tinymce.addI18n('ms',{
"Cut": "Potong",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Pelayar internet anda tidak menyokong akses terus kepada papan klip. Sila gunakan pintasan papan kekunci Ctrl+X\/C\/V.",
"Paste": "Tampal",
"Close": "Tutup",
"Align right": "Alih ke kanan",
"New document": "Dokumen baru",
"Numbered list": "Senarai bernombor",
"Increase indent": "Tingkatkan inden",
"Formats": "Format",
"Select all": "Pilih semua",
"Undo": "Kembali Ke asal",
"Strikethrough": "Batal",
"Bullet list": "Senarai bullet",
"Superscript": "Superskrip",
"Clear formatting": "Hilangkan format",
"Subscript": "Subskrip",
"Redo": "Buat semula",
"Ok": "Ok",
"Bold": "Tebalkan",
"Italic": "Tulisan senget",
"Align center": "Alih ke tengah",
"Decrease indent": "Kurangkan inden",
"Underline": "Garis bawah",
"Cancel": "Batal",
"Justify": "Sama ratakan",
"Copy": "Salin",
"Align left": "Alihkan ke kiri",
"Visual aids": "Visual bantuan",
"Lower Greek": "Greek Kecil",
"Square": "Petak",
"Default": "Asal",
"Lower Alpha": "Alpha Kecil",
"Circle": "Bulat",
"Disc": "Cakera",
"Upper Alpha": "Alpha Besar",
"Upper Roman": "Roman Besar",
"Lower Roman": "Roman Kecik",
"Name": "Nama",
"Anchor": "Pemberat",
"You have unsaved changes are you sure you want to navigate away?": "Anda mempunyai perubahan yang belum disimpan, anda pasti mahu keluar?",
"Restore last draft": "Kembalikan draf lepas",
"Special character": "Karekter unik",
"Source code": "Sumber Kod",
"Right to left": "Kanan Ke kiri",
"Left to right": "Kiri Ke kanan",
"Emoticons": "Emotikon",
"Robots": "Robot",
"Document properties": "Sifat-sifat dokumen",
"Title": "Tajuk",
"Keywords": "Kata kunci",
"Encoding": "Pengekodan",
"Description": "Penerangan",
"Author": "Pengarang",
"Fullscreen": "Skrin penuh",
"Horizontal line": "Garis mendatar",
"Horizontal space": "Ruang mendatar",
"Insert\/edit image": "Masukkan\/Ubah Gambar",
"General": "Am",
"Advanced": "Lanjutan",
"Source": "Sumber",
"Border": "Sempadan",
"Constrain proportions": "Bentuk kekangan",
"Vertical space": "Ruang menegak",
"Image description": "Penerangan gambar",
"Style": "Gaya",
"Dimensions": "Dimensi",
"Insert image": "Masukkan gambar",
"Insert date\/time": "Masukkan tarikh\/masa",
"Remove link": "Padam pautan",
"Url": "Url",
"Text to display": "Teks untuk dipaparkan",
"Insert link": "Masukkan pautan",
"New window": "Tetingkap baru",
"None": "Tiada",
"Target": "Target",
"Insert\/edit link": "Masukkan\/Ubah pautan",
"Insert\/edit video": "Masukkan\/Ubah video",
"Poster": "Poster",
"Alternative source": "Sumber alternatif",
"Paste your embed code below:": "Tampalkan kod embed anda di bawah:",
"Insert video": "Masukkan video",
"Embed": "Embed",
"Nonbreaking space": "Ruang tidak dipisahkan",
"Preview": "Pratonton",
"Print": "Cetak",
"Save": "Simpan",
"Could not find the specified string.": "Tidak dapat mencari untaian yang dinyatakan.",
"Replace": "Ganti",
"Next": "Seterusnya",
"Whole words": "Keseluruhan perkataan",
"Find and replace": "Cari dan gantikan",
"Replace with": "Gantikan dengan",
"Find": "Cari",
"Replace all": "Ganti semua",
"Match case": "Huruf sepadan",
"Prev": "Kembali",
"Spellcheck": "Semakan Ejaan",
"Finish": "Tamat",
"Ignore all": "Biarkan semua",
"Ignore": "Biarkan",
"Insert row before": "Masukkan baris sebelumnya",
"Rows": "Baris-Baris",
"Height": "Tinggi",
"Paste row after": "Tampal baris selepasnya",
"Alignment": "Penjajaran",
"Column group": "Kumpulan lajur",
"Row": "Baris",
"Insert column before": "Masukkan lajur sebelumnya",
"Split cell": "Asingkan sel",
"Cell padding": "Penebalan sel",
"Cell spacing": "Penjarakkan sel",
"Row type": "Jenis baris",
"Insert table": "Masukkan jadual",
"Body": "Badan",
"Caption": "Keterangan",
"Footer": "Pengaki",
"Delete row": "Padam Baris",
"Paste row before": "Tampal baris sebelumnya",
"Scope": "Skop",
"Delete table": "Padam jadual",
"Header cell": "Sel pengepala",
"Column": "Lajur",
"Cell": "Sel",
"Header": "Pengepala",
"Cell type": "Jenis sel",
"Copy row": "Salin baris",
"Row properties": "Sifat-sifat baris",
"Table properties": "Sifat-sifat jadual",
"Row group": "Kumpulan baris",
"Right": "Kanan",
"Insert column after": "Masukkan lajur selepasnya",
"Cols": "Cols",
"Insert row after": "Masukkan baris selepasnya",
"Width": "Lebar",
"Cell properties": "Sifat-sifat sel",
"Left": "Kiri",
"Cut row": "Potong baris",
"Delete column": "Padam lajur",
"Center": "Tengah",
"Merge cells": "Gabung Sel",
"Insert template": "Masukkan templat",
"Templates": "Templat",
"Background color": "Warna latar belakang",
"Text color": "Warna teks",
"Show blocks": "Papar blok",
"Show invisible characters": "Papar karekter tersembunyi",
"Words: {0}": "Perkataan: {0}",
"Insert": "Masukkan",
"File": "Fail",
"Edit": "Ubah",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ruangan Teks Luas. Tekan ALT-F9 untuk menu. Tekan ALT-F10 untuk bar perkakasan. Tekan ALT-0 untuk bantuan",
"Tools": "Peralatan",
"View": "Pemandangan",
"Table": "Jadual",
"Format": "Format",
"Inline": "Sebaris",
"Blocks": "Blok-blok",
"Edit image": "Ubah gambar",
"Font Family": "Kumpulan fon",
"Font Sizes": "Saiz fon",
"Paragraph": "Perenggan",
"Address": "Alamat",
"Pre": "Pra",
"Code": "Kod",
"Headers": "Pengepala",
"Header 1": "Pengepala 1",
"Header 2": "Pengepala 2",
"Header 3": "Pengepala 3",
"Header 4": "Pengepala 4",
"Header 5": "Pengepala 5",
"Header 6": "Pengepala 6",
"Insert Time": "Masukkan masa",
"Insert nonbreaking space": "Masukkan ruang yang tidak dipisahkan",
"Toggle blockquote": "Togol Ruang Petikan"
});editors/tinymce/langs/ko.js000064400000020305152177723720011755 0ustar00tinymce.addI18n('ko',{
"Cut": "\uc798\ub77c\ub0b4\uae30",
"Header 2": "\uc81c\ubaa9 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\ube0c\ub77c\uc6b0\uc838\uac00 \ud074\ub9bd\ubcf4\ub4dc \uc811\uadfc\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Ctrl+X\/C\/V \ud0a4\ub97c \uc774\uc6a9\ud574 \uc8fc\uc138\uc694.",
"Div": "\uad6c\ubd84",
"Paste": "\ubd99\uc5ec\ub123\uae30",
"Close": "\ub2eb\uae30",
"Font Family": "Font Family",
"Pre": "Pre",
"Align right": "\uc624\ub978\ucabd\uc815\ub82c",
"New document": "\uc0c8 \ubb38\uc11c",
"Blockquote": "\uad6c\ud68d",
"Numbered list": "\uc22b\uc790\ub9ac\uc2a4\ud2b8",
"Increase indent": "\ub4e4\uc5ec\uc4f0\uae30",
"Formats": "\ud3ec\ub9f7",
"Headers": "\uc2a4\ud0c0\uc77c",
"Select all": "\uc804\uccb4\uc120\ud0dd",
"Header 3": "\uc81c\ubaa9 3",
"Blocks": "\ube14\ub85d \uc124\uc815",
"Undo": "\uc2e4\ud589\ucde8\uc18c",
"Strikethrough": "\ucde8\uc18c\uc120",
"Bullet list": "\uc810\ub9ac\uc2a4\ud2b8",
"Header 1": "\uc81c\ubaa9 1",
"Superscript": "\uc717\ucca8\uc790",
"Clear formatting": "\ud3ec\ub9f7\ucd08\uae30\ud654",
"Font Sizes": "Font Sizes",
"Subscript": "\uc544\ub798\ucca8\uc790",
"Header 6": "\uc81c\ubaa9 6",
"Redo": "\ub2e4\uc2dc\uc2e4\ud589",
"Paragraph": "\ub2e8\ub77d",
"Ok": "\ud655\uc778",
"Bold": "\uad75\uac8c",
"Code": "\ucf54\ub4dc",
"Italic": "\uae30\uc6b8\uc784\uaf34",
"Align center": "\uac00\uc6b4\ub370\uc815\ub82c",
"Header 5": "\uc81c\ubaa9 5",
"Decrease indent": "\ub0b4\uc5b4\uc4f0\uae30",
"Header 4": "\uc81c\ubaa9 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\uc2a4\ud0c0\uc77c\ubcf5\uc0ac \ub044\uae30. \uc774 \uc635\uc158\uc744 \ub044\uae30 \uc804\uc5d0\ub294 \ubcf5\uc0ac \uc2dc, \uc2a4\ud0c0\uc77c\uc774 \ubcf5\uc0ac\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.",
"Underline": "\ubc11\uc904",
"Cancel": "\ucde8\uc18c",
"Justify": "\uc591\ucabd\uc815\ub82c",
"Inline": "\ub77c\uc778 \uc124\uc815",
"Copy": "\ubcf5\uc0ac\ud558\uae30",
"Align left": "\uc67c\ucabd\uc815\ub82c",
"Visual aids": "\uc2dc\uac01\uad50\uc7ac",
"Lower Greek": "\uadf8\ub9ac\uc2a4\uc5b4 \uc18c\ubb38\uc790",
"Square": "\uc0ac\uac01",
"Default": "\uae30\ubcf8",
"Lower Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790",
"Circle": "\uc6d0",
"Disc": "\uc6d0\ubc18",
"Upper Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790",
"Upper Roman": "\ub85c\ub9c8\uc790 \ub300\ubb38\uc790",
"Lower Roman": "\ub85c\ub9c8\uc790 \uc18c\ubb38\uc790",
"Name": "\uc774\ub984",
"Anchor": "\uc575\ucee4",
"You have unsaved changes are you sure you want to navigate away?": "\uc800\uc7a5\ud558\uc9c0 \uc54a\uc740 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub97c \ubc97\uc5b4\ub098\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
"Restore last draft": "\ub9c8\uc9c0\ub9c9 \ucd08\uc548 \ubcf5\uc6d0",
"Special character": "\ud2b9\uc218\ubb38\uc790",
"Source code": "\uc18c\uc2a4\ucf54\ub4dc",
"Right to left": "\uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd",
"Left to right": "\uc67c\ucabd\uc5d0\uc11c \uc624\ub978\ucabd",
"Emoticons": "\uc774\ubaa8\ud2f0\ucf58",
"Robots": "\ub85c\ubd07",
"Document properties": "\ubb38\uc11c \uc18d\uc131",
"Title": "\uc81c\ubaa9",
"Keywords": "\ud0a4\uc6cc\ub4dc",
"Encoding": "\uc778\ucf54\ub529",
"Description": "\uc124\uba85",
"Author": "\uc800\uc790",
"Fullscreen": "\uc804\uccb4\ud654\uba74",
"Horizontal line": "\uac00\ub85c",
"Horizontal space": "\uc218\ud3c9 \uacf5\ubc31",
"Insert\/edit image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785\/\uc218\uc815",
"General": "\uc77c\ubc18",
"Advanced": "\uace0\uae09",
"Source": "\uc18c\uc2a4",
"Border": "\ud14c\ub450\ub9ac",
"Constrain proportions": "\uc791\uc5c5 \uc81c\ud55c",
"Vertical space": "\uc218\uc9c1 \uacf5\ubc31",
"Image description": "\uc774\ubbf8\uc9c0 \uc124\uba85",
"Style": "\uc2a4\ud0c0\uc77c",
"Dimensions": "\ud06c\uae30",
"Insert image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785",
"Insert date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04\uc0bd\uc785",
"Remove link": "\ub9c1\ud06c\uc0ad\uc81c",
"Url": "\uc8fc\uc18c",
"Text to display": "\ubcf8\ubb38",
"Anchors": "\ucc45\uac08\ud53c",
"Insert link": "\ub9c1\ud06c \uc0bd\uc785 ",
"New window": "\uc0c8\ucc3d",
"None": "\uc5c6\uc74c",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "\ub300\uc0c1",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "\ub9c1\ud06c \uc0bd\uc785\/\uc218\uc815",
"Insert\/edit video": "\ube44\ub514\uc624 \uc0bd\uc785\/\uc218\uc815",
"Poster": "\ud3ec\uc2a4\ud130",
"Alternative source": "\ub300\uccb4 \uc18c\uc2a4",
"Paste your embed code below:": "\uc544\ub798\uc5d0 \ucf54\ub4dc\ub97c \ubd99\uc5ec\ub123\uc73c\uc138\uc694:",
"Insert video": "\ube44\ub514\uc624 \uc0bd\uc785",
"Embed": "\uc0bd\uc785",
"Nonbreaking space": "\ub744\uc5b4\uc4f0\uae30",
"Page break": "\ud398\uc774\uc9c0 \uad6c\ubd84\uc790",
"Paste as text": "\ud14d\uc2a4\ud2b8\ub85c \ubd99\uc5ec\ub123\uae30",
"Preview": "\ubbf8\ub9ac\ubcf4\uae30",
"Print": "\ucd9c\ub825",
"Save": "\uc800\uc7a5",
"Could not find the specified string.": "\ubb38\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
"Replace": "\uad50\uccb4",
"Next": "\ub2e4\uc74c",
"Whole words": "\uc804\uccb4 \ub2e8\uc5b4",
"Find and replace": "\ucc3e\uc544\uc11c \uad50\uccb4",
"Replace with": "\uad50\uccb4",
"Find": "\ucc3e\uae30",
"Replace all": "\uc804\uccb4 \uad50\uccb4",
"Match case": "\ub300\uc18c\ubb38\uc790 \uc77c\uce58",
"Prev": "\uc774\uc804",
"Spellcheck": "\ubb38\ubc95\uccb4\ud06c",
"Finish": "\uc644\ub8cc",
"Ignore all": "\uc804\uccb4\ubb34\uc2dc",
"Ignore": "\ubb34\uc2dc",
"Insert row before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785",
"Rows": "\ud589",
"Height": "\ub192\uc774",
"Paste row after": "\ub2e4\uc74c\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30",
"Alignment": "\uc815\ub82c",
"Column group": "\uc5f4 \uadf8\ub8f9",
"Row": "\uc5f4",
"Insert column before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785",
"Split cell": "\uc140 \ub098\ub204\uae30",
"Cell padding": "\uc140 \uc548\ucabd \uc5ec\ubc31",
"Cell spacing": "\uc140 \uac04\uaca9",
"Row type": "\ud589 \ud0c0\uc785",
"Insert table": "\ud14c\uc774\ube14 \uc0bd\uc785",
"Body": "\ubc14\ub514",
"Caption": "\ucea1\uc158",
"Footer": "\ud478\ud130",
"Delete row": "\ud589 \uc9c0\uc6b0\uae30",
"Paste row before": "\uc774\uc804\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30",
"Scope": "\ubc94\uc704",
"Delete table": "\ud14c\uc774\ube14 \uc0ad\uc81c",
"Header cell": "\ud5e4\ub354 \uc140",
"Column": "\ud589",
"Cell": "\uc140",
"Header": "\ud5e4\ub354",
"Cell type": "\uc140 \ud0c0\uc785",
"Copy row": "\ud589 \ubcf5\uc0ac",
"Row properties": "\ud589 \uc18d\uc131",
"Table properties": "\ud14c\uc774\ube14 \uc18d\uc131",
"Row group": "\ud589 \uadf8\ub8f9",
"Right": "\uc624\ub978\ucabd",
"Insert column after": "\ub2e4\uc74c\uc5d0 \uc5f4 \uc0bd\uc785",
"Cols": "\uc5f4",
"Insert row after": "\ub2e4\uc74c\uc5d0 \ud589 \uc0bd\uc785",
"Width": "\ub113\uc774",
"Cell properties": "\uc140 \uc18d",
"Left": "\uc67c\ucabd",
"Cut row": "\ud589 \uc798\ub77c\ub0b4\uae30",
"Delete column": "\uc5f4 \uc9c0\uc6b0\uae30",
"Center": "\uac00\uc6b4\ub370",
"Merge cells": "\uc140 \ud569\uce58\uae30",
"Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785",
"Templates": "\ud15c\ud50c\ub9bf",
"Background color": "\ubc30\uacbd\uc0c9",
"Text color": "\ubb38\uc790 \uc0c9\uae54",
"Show blocks": "\ube14\ub7ed \ubcf4\uc5ec\uc8fc\uae30",
"Show invisible characters": "\uc548\ubcf4\uc774\ub294 \ubb38\uc790 \ubcf4\uc774\uae30",
"Words: {0}": "\ub2e8\uc5b4: {0}",
"Insert": "\uc0bd\uc785",
"File": "\ud30c\uc77c",
"Edit": "\uc218\uc815",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30 \uc785\ub2c8\ub2e4. ALT-F9\ub97c \ub204\ub974\uba74 \uba54\ub274, ALT-F10\ub97c \ub204\ub974\uba74 \ud234\ubc14, ALT-0\uc744 \ub204\ub974\uba74 \ub3c4\uc6c0\ub9d0\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
"Tools": "\ub3c4\uad6c",
"View": "\ubcf4\uae30",
"Table": "\ud14c\uc774\ube14",
"Format": "\ud3ec\ub9f7"
});editors/tinymce/langs/sy.js000064400000033630152177723720012004 0ustar00tinymce.addI18n('sy',{
"Cut": "\u0729\u0718\u0728",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0721\u0713\u0712\u0717 Ctrl+X\/C\/V \u0712\u072a\u0718\u0723\u072a \u0715\u071d\u0718\u071f\u0742 \u0720\u0710 \u071d\u0720\u0717 \u0721\u072c\u0725\u0715\u072a\u0722\u0710 \u071a\u0715\u072a\u072b\u0710 \u0720\u0725\u0712\u0742\u072a\u0710 \u0720\u071b\u0712\u0742\u0720\u071d\u072c \u0729\u071d\u0728\u072c\u0710. \u0710\u0722 \u0712\u0723\u0721\u0710 \u0720\u0718\u071f\u0742 \u0721\u0726\u0720\u071a \u0713\u0715\u071d\u0721\u0718\u072c \u0729\u0726\u0720\u0710",
"Paste": "\u0715\u0712\u072b",
"Close": "\u0715\u0712\u0742\u0718\u072a",
"Align right": "\u0721\u0723\u0715\u072a\u072c\u0710 \u0720\u071d\u0721\u071d\u0722\u0710",
"New document": "\u0722\u0718\u0717\u072a\u0710 \u071a\u0715\u072c\u0710",
"Numbered list": "\u0729\u071d\u0721\u072c\u0710 \u0721\u072a\u0718\u0729\u0721\u072c\u0710",
"Increase indent": "\u0721\u0719\u071d\u0715 \u0723\u0726\u071d\u0729\u0718\u072c\u0710 \u0715\u072b\u0718\u072a\u071d\u0710 \u0715\u0723\u072a\u071b\u0710",
"Formats": "\u0710\u0723\u071f\u071d\u0721\u0308\u0710",
"Select all": "\u0726\u072a\u0718\u072b \u0720\u071f\u0720",
"Undo": "\u0720\u0710 \u0725\u0712\u0742\u0718\u0715",
"Strikethrough": "\u0723\u072a\u071b\u0710 \u0721\u0713\u0718",
"Bullet list": "\u0729\u071d\u0721\u072c\u0710 \u0715\u071f\u0726\u071d\u072c\u0308\u0710",
"Superscript": "\u072a\u0712 \u0723\u072a\u071b\u0710",
"Clear formatting": "\u072b\u071d\u0718\u0726 \u0720\u0710\u0723\u071f\u071d\u0721\u0308\u0710",
"Subscript": "\u0726\u0725\u0718\u072c \u0723\u072a\u071b\u0710",
"Redo": "\u0721\u071b\u071d\u0712\u0742\u0710",
"Ok": "\u071b\u0712\u0742\u0710",
"Bold": "\u071a\u0720\u071d\u0721\u0710",
"Italic": "\u0713\u0722\u071d\u0710",
"Align center": "\u0721\u0723\u0715\u072a\u072c\u0710 \u0712\u0726\u0720\u0713\u0710",
"Decrease indent": "\u0721\u0712\u0728\u072a \u0723\u0726\u071d\u0729\u0718\u072c \u0715\u072b\u0718\u072a\u071d\u0710 \u0715\u0723\u072a\u071b\u0710",
"Underline": "\u072c\u071a\u0718\u072c \u0713\u0330\u072a\u0713\u0710",
"Cancel": "\u0721\u0712\u071b\u0720",
"Justify": "\u0721\u0719\u0715\u0715\u0729\u0722\u0718\u072c\u0710",
"Copy": "\u0722\u0723\u0718\u071f\u073c",
"Align left": "\u0721\u0723\u0715\u072a\u072c\u0710 \u0720\u0723\u0721\u0720\u0710",
"Visual aids": "\u0725\u0718\u0715\u072a\u0308\u0722\u0710 \u0721\u072c\u071a\u0719\u071d\u0722\u0308\u0710",
"Lower Greek": "\u071d\u0718\u0722\u0722\u071d\u0710 \u072c\u071a\u072c\u071d\u0710",
"Square": "\u0721\u072a\u0712\u0725\u0710",
"Default": "\u0726\u072a\u071d\u072b\u0710",
"Lower Alpha": "\u0710\u0720\u0726\u0712\u071d\u072c \u072c\u071a\u072c\u071d\u0308\u0710",
"Circle": "\u071a\u0718\u0715\u072a\u0710",
"Disc": "\u0729\u0712\u0742\u0722\u0710",
"Upper Alpha": "\u0710\u0720\u0726\u0712\u071d\u072c \u0725\u0720\u071d\u072c\u0710",
"Upper Roman": "\u072a\u0718\u0721\u0722 \u0725\u0720\u071d\u072c\u0710",
"Lower Roman": "\u072a\u0718\u0721\u0722 \u072c\u071a\u072c\u071d\u072c\u0710",
"Name": "\u072b\u0721\u0710",
"Anchor": "\u0721\u072a\u0723\u0710",
"You have unsaved changes are you sure you want to navigate away?": "\u0720\u0710 \u071d\u0718\u072c \u071a\u0718\u0721\u071d\u0710 \u0720\u072b\u0718\u071a\u0720\u0726\u0308\u0710\u060c \u071d\u0718\u072c \u071a\u072c\u071d\u072c\u0710 \u0715\u0712\u0725\u072c \u0726\u0720\u071b\u072c\u061f",
"Restore last draft": "\u071a\u0721\u071d \u0720\u0721\u0718\u071f\u0721\u072c\u0710 \u071a\u072a\u071d\u072c\u0710",
"Special character": "\u0710\u072c\u0718\u072c\u0710 \u0715\u071d\u0720\u0722\u071d\u072c\u0710",
"Source code": "\u071f\u0718\u0715\u0710 \u0715\u0721\u0712\u0718\u0725\u0710",
"Right to left": "\u071d\u0721\u071d\u0722\u0710 \u0720\u0723\u0721\u0720\u0710",
"Left to right": "\u0723\u0721\u0720\u0710 \u0720\u071d\u0721\u071d\u0722\u0710",
"Emoticons": "\u072a\u0308\u0721\u0719\u0710 \u0722\u0712\u0742\u0717\u071d\u0308\u0710",
"Robots": "\u072a\u0718\u0712\u0718\u072c\u0308\u0710",
"Document properties": "\u0715\u071d\u0720\u071d\u072c\u0308\u0710 \u0715\u0710\u072b\u071b\u072a\u0308\u0710",
"Title": "\u0721\u0718\u0722\u0725\u0710",
"Keywords": "\u071a\u0712\u072a\u0308\u0710 \u0715\u0729\u0715\u071d\u0720\u0710",
"Encoding": "\u0721\u072c\u072a\u0721\u0719\u0718\u072c\u0710",
"Description": "\u0710\u072a\u071d\u071f\u0742\u0718\u072c\u0710",
"Author": "\u0723\u071d\u0718\u0721\u0710",
"Fullscreen": "\u072b\u072b\u072c\u0710 \u0721\u0720\u071d\u072c\u0710",
"Horizontal line": "\u0723\u072a\u071b\u0710 \u0710\u0718\u0726\u0729\u071d\u0710",
"Horizontal space": "\u0723\u0726\u071d\u0729\u0718\u072c\u0710 \u0710\u0718\u0726\u0729\u071d\u072c\u0710",
"Insert\/edit image": "\u0721\u0725\u0712\u0742\u072a\/\u072b\u071a\u0720\u0726 \u0720\u0728\u0718\u072a\u072c\u0710",
"General": "\u0713\u0718\u0722\u071d\u0710",
"Advanced": "\u0721\u072b\u0718\u072b\u071b\u0710",
"Source": "URL",
"Border": "\u072c\u071a\u0718\u0721\u0308\u0710",
"Constrain proportions": "\u0712\u071d\u072c\u071d\u0718\u072c\u0710 \u0715\u0721\u0729\u0718\u0715\u0722\u0718\u072c\u0710",
"Vertical space": "\u0723\u0726\u071d\u0729\u0718\u072c\u0710 \u0725\u0721\u0718\u0715\u071d\u072c\u0710",
"Image description": "\u0710\u072a\u071d\u071f\u0742\u0718\u072c\u0710 \u0715\u0728\u0718\u072a\u072c\u0710",
"Style": "\u0710\u0723\u071f\u071d\u0721\u0710",
"Dimensions": "\u072a\u071a\u0729\u0718\u072c\u0710",
"Insert image": "\u0721\u0725\u0712\u0742\u072a \u0728\u0718\u072a\u072c\u0710",
"Insert date\/time": "\u0721\u0725\u0712\u0742\u072a \u0723\u071d\u0729\u0718\u0721\u0710\/\u0725\u0715\u0722\u0710",
"Remove link": "\u072b\u071d\u0718\u0726 \u0720\u0710\u0723\u072a\u0710",
"Url": "Url",
"Text to display": "\u0728\u071a\u071a\u0710 \u0720\u0721\u071a\u0719\u0718\u071d\u0710",
"Insert link": "\u0721\u0725\u0712\u0742\u072a \u0710\u0723\u072a\u0710",
"New window": "\u0718\u071d\u0722\u0715\u0718\u0719 \u071a\u0715\u072c\u072c\u0710",
"None": "\u0717\u071d\u071f\u0330 \u071a\u0715",
"Target": "\u0722\u071d\u072b\u0710",
"Insert\/edit link": "\u0721\u0725\u0712\u0742\u072a\/\u0723\u071d\u0721\u072c\u0710 \u0715\u0710\u0723\u072a\u0710",
"Insert\/edit video": "\u0721\u0725\u0712\u0742\u072a\/\u0723\u071d\u0721\u072c\u0710 \u0715\u0712\u0742\u071d\u0715\u071d\u0718",
"Poster": "\u072b\u0718\u072c\u0726\u071d\u072c\u0308\u0710",
"Alternative source": "\u0721\u0712\u0718\u0725\u0710 \u072c\u071a\u0720\u0718\u0726\u0710",
"Paste your embed code below:": "\u0715\u0712\u072b \u071f\u0718\u0715\u0710 \u071a\u0712\u0742\u071d\u072b\u0710 \u0712\u0710\u0720\u072c\u071a\u072c:",
"Insert video": "\u0721\u0725\u0712\u0742\u072a \u0712\u0742\u071d\u0715\u071d\u0718",
"Embed": "\u071a\u0712\u0742\u0718\u072b",
"Nonbreaking space": "\u0720\u071d\u072c \u0729\u071b\u0725\u072c\u0710 \u0715\u0723\u0726\u071d\u0729\u0718\u072c\u0710",
"Preview": "\u071a\u071d\u072a\u072c\u0710",
"Print": "\u071b\u0712\u0742\u0725\u072c\u0710",
"Save": "\u071a\u0721\u071d\u072c\u0710",
"Could not find the specified string.": "\u0720\u0710 \u0721\u0728\u0710 \u0720\u0717 \u0721\u072b\u071f\u0330\u0718\u071a\u0710 \u072b\u072b\u0720\u072c\u0710 \u072c\u0718\u071a\u0721\u072c\u0710",
"Replace": "\u072b\u071a\u0720\u0726",
"Next": "\u0712\u072c\u0742\u072a\u0717",
"Whole words": "\u071f\u0720\u071d\u0717\u071d \u071a\u0712\u072a\u0308\u0710",
"Find and replace": "\u0721\u072b\u071f\u0330\u071a \u0718\u072b\u071a\u0720\u0726",
"Replace with": "\u072b\u071a\u0720\u0726 \u0712\u071d\u0715",
"Find": "\u0721\u072b\u071f\u0330\u071a",
"Replace all": "\u072b\u071a\u0720\u0726 \u071f\u0720\u071d\u0717\u071d",
"Match case": "\u0713\u0718\u072a\u072c\u0710\/\u0719\u0725\u072a\u072c\u0710 ",
"Prev": "\u0715\u0725\u0712\u0742\u072a",
"Spellcheck": "\u0728\u071a\u0728\u071d\u072c\u0710 \u0715\u0717\u0718\u0713\u071d\u0710",
"Finish": "\u0726\u072a\u0729\u0710",
"Ignore all": "\u0710\u0717\u0721\u071d \u071f\u0720\u071d\u0717\u071d",
"Ignore": "Ign\u0725\u0715\u0722\u0710",
"Insert row before": "\u0721\u0725\u0712\u0742\u072a \u0713\u0330\u072a\u0713\u0710 \u0721\u0729\u0715\u0747\u0721",
"Rows": "Righe",
"Height": "\u071d\u0721\u071d\u0722\u0710",
"Paste row after": "\u0715\u0712\u072b \u0713\u0330\u072a\u0713\u0710 \u0712\u072c\u072a",
"Alignment": "\u0721\u0713\u0330\u072a\u0713\u0722\u072c\u0710",
"Column group": "\u071f\u0718\u0722\u072b\u0710 \u0715\u0725\u0721\u0718\u0715\u0710",
"Row": "\u0713\u0330\u072a\u0713\u0710",
"Insert column before": "\u0721\u0725\u0712\u0742\u072a \u0725\u0721\u0718\u0715\u0710 \u0721\u0729\u0715\u0721",
"Split cell": "\u0712\u072a\u0712\u0719 \u0720\u0729\u0720\u071d\u072c\u0710",
"Cell padding": "\u0721\u0720\u071d\u072c\u0710 \u0715\u0729\u0720\u071d\u072c\u0710",
"Cell spacing": "\u0723\u0726\u071d\u0729\u0718\u072c\u0710 \u0715\u0729\u0720\u071d\u072c\u0710",
"Row type": "\u0710\u0715\u072b\u0710 \u0715\u0713\u0330\u072a\u0713\u0710",
"Insert table": "\u0721\u0725\u0712\u0742\u072a \u0720\u071b\u0712\u0720\u0710",
"Body": "\u0726\u0713\u073c\u072a\u0735\u0710",
"Caption": "\u0712\u072a\u072b\u0721\u0710",
"Footer": "\u0710\u0729\u0726\u072c\u0742\u0710",
"Delete row": "\u072b\u0718\u0726 \u0720\u0713\u0330\u072a\u0713\u0710",
"Paste row before": "\u0715\u0712\u072b \u0713\u0330\u072a\u0713\u0710 \u0721\u0729\u0715\u0721",
"Scope": "\u071a\u0729\u0720\u0710",
"Delete table": "\u072b\u0718\u0726 \u0720\u071b\u0712\u0720\u0710",
"Header cell": "\u0729\u0720\u071d\u072c\u0710 \u0715\u072a\u072b\u0710",
"Column": "\u0725\u0721\u0718\u0715\u0710",
"Cell": "\u0729\u0720\u071d\u072c\u0710",
"Header": "\u072a\u072b\u0710",
"Cell type": "\u0710\u0715\u072b\u0710 \u0715\u0729\u0720\u071d\u072c\u0710",
"Copy row": "\u0722\u0723\u0718\u071f\u0742 \u0713\u0330\u072a\u0713\u0710",
"Row properties": "\u0715\u071d\u0720\u071d\u072c\u0308\u0710 \u0715\u0713\u072a\u0713\u0710",
"Table properties": "\u0715\u071d\u0720\u071d\u072c\u0308\u0710 \u0715\u071b\u0712\u0720\u0710",
"Row group": "\u071f\u0718\u0722\u072b\u0710 \u0715\u0713\u0330\u072a\u0713\u0710",
"Right": "\u071d\u0721\u071d\u0722\u0710",
"Insert column after": "\u0721\u0725\u0712\u0742\u072a \u0725\u0721\u0718\u0715\u0710 \u0712\u072c\u072a",
"Cols": "\u0725\u0721\u0718\u0715\u0308\u0710",
"Insert row after": "\u0721\u0725\u0712\u0742\u072a \u0713\u0330\u072a\u0713\u0710 \u0712\u072c\u072a",
"Width": "\u0726\u072c\u0742\u071d\u0718\u072c\u0742\u0710",
"Cell properties": "\u0715\u071d\u0720\u071d\u072c\u0308\u0710 \u0715\u0729\u0720\u071d\u072c\u0710",
"Left": "\u0723\u0721\u0720\u0710",
"Cut row": "\u0729\u0718\u0728 \u0713\u0330\u072a\u0713\u0710",
"Delete column": "\u072b\u0718\u0726 \u0725\u0721\u0718\u0715\u0710",
"Center": "\u0726\u0720\u0713\u0710",
"Merge cells": "\u071a\u071d\u0715 \u0729\u0720\u071d\u072c\u0308\u0710",
"Insert template": "\u0721\u0725\u0712\u0742\u072a \u0729\u0720\u0712\u0742\u0710",
"Templates": "\u0729\u0720\u0712\u0742\u0710",
"Background color": "\u0713\u0718\u0722\u0710 \u0715\u0712\u072c\u072a\u071d\u0718\u072c\u0710",
"Text color": "\u0713\u0718\u0722\u0710 \u0715\u0728\u071a\u071a\u0710",
"Show blocks": "\u0721\u071a\u0719\u071d \u0720\u0713\u0718\u072b\u0721\u0710",
"Show invisible characters": "\u0721\u071a\u0719\u071d \u0720\u0710\u072c\u0718\u072c\u0308\u0710 \u0720\u0710 \u0721\u072c\u071a\u0719\u071d\u0722\u0308\u0710",
"Words: {0}": "{0} :\u071a\u0712\u072a\u0308\u0710",
"Insert": "\u0721\u0725\u0712\u0742\u072a",
"File": "\u071f\u0722\u0726\u072a\u0710",
"Edit": "\u0723\u071d\u0721\u072c\u0710",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"\u0729\u0710 \u0719\u0718\u0720\u0721\u0710\u0722\u0710 \u0729\u0710 \u0725\u0718\u0715\u072a\u0722\u0710 ALT-F10 \u0729\u0710 \u0720\u0718\u071a\u071d\u072c\u0710. \u0715\u0718\u072b ALT-F9 \u0715\u0718\u072b  .Rich Text Area \u0726\u0722\u071d\u072c\u0710 \u0715",
"Tools": "\u0719\u0718\u0720\u0721\u0710\u0722\u0710",
"View": "\u071a\u0719\u071d\u072c\u0710",
"Table": "\u071b\u0712\u0720\u0710",
"Format": "\u0710\u0723\u071f\u071d\u0721\u0710",
"Inline": "\u0725\u0720 \u0713\u0330\u072a\u0713\u0710",
"Blocks": "\u0713\u0718\u072b\u0721\u0710",
"Edit image": "\u0723\u071d\u0721\u072c\u0710 \u0715\u0728\u0718\u072a\u072c\u0710",
"Font Family": "\u071f\u0720\u0726\u072c \u0715\u0726\u032e\u0718\u0722\u072c",
"Font Sizes": "\u072a\u0308\u0712\u0718\u072c\u0710 \u0715\u0726\u032e\u0718\u0722\u072c",
"Paragraph": "\u0726\u072c\u0742\u0713\u073c\u0721\u0710",
"Address": "\u0721\u0718\u0722\u0725\u0710",
"Pre": "\u0721\u072c\u0729\u0720\u0712\u0742\u0722\u0718\u072c\u0710 \u0729\u0715\u0747\u0721\u072c\u0710",
"Code": "\u071f\u0718\u0715\u0710",
"Headers": "\u072a\u0308\u072b\u0722\u0710",
"Header 1": "\u072a\u072b\u0710 1",
"Header 2": "\u072a\u072b\u0710 2",
"Header 3": "\u072a\u072b\u0710 3",
"Header 4": "\u072a\u072b\u0710 4",
"Header 5": "\u072a\u072b\u0710 5",
"Header 6": "\u072a\u072b\u0710 6",
"Insert Time": "\u0721\u0725\u0712\u0742\u072a \u0725\u0715\u0722\u0710",
"Insert nonbreaking space": "\u0721\u0725\u0712\u0742\u072a \u0723\u0726\u071d\u0729\u0718\u072c\u0710 \u0720\u0710 \u072c\u0712\u0742\u071d\u072a\u072c\u0710",
"Toggle blockquote": "\u072b\u071a\u0720\u0726 \u0720\u0713\u0718\u072b\u0721\u072c\u0742 \u072b\u0729\u0720\u072c\u0710",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "http:\/\/ prefix? \u0715\u0721\u0718\u0725\u0712\u0742\u072a\u0718\u071f\u0742 \u0721\u0712\u071d\u0718\u0722\u0710 \u071d\u0720\u0717 \u0715\u0717\u0307\u0718 \u071a\u0715 \u0710\u0723\u072a\u0710 \u0712\u072a\u071d\u0710 \u071d\u0720\u0717. \u0712\u0725\u072c \u072c\u0718\u0723\u0726\u072c URL",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "mailto: prefix? \u0715\u0721\u0718\u0725\u0712\u0742\u072a\u0718\u071f\u073c \u0721\u0712\u071d\u0718\u0722\u0710 \u071d\u0720\u0717 \u0715\u0717\u0307\u0718 \u071d\u0720\u0717 \u0721\u0718\u0722\u0725\u0710 \u0715\u0712\u071d\u0720\u0715\u072a\u0710 \u0710\u0720\u071f\u072c\u072a\u0718\u0722\u071d\u0710. \u0712\u0725\u072c \u072c\u0718\u0723\u0726\u072c \u0720\u071b\u0720\u0712\u072c\u0710  URL",
"_dir": "rtl"
});editors/tinymce/langs/sr.js000064400000014277152177723720012003 0ustar00tinymce.addI18n('sr',{
"Cut": "Iseci",
"Header 2": "Zaglavlje 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 pretra\u017eiva\u010d nepodr\u017eava direktan pristup prenosu.Koristite Ctrl+X\/C\/V pre\u010dice na tastaturi",
"Div": "Div",
"Paste": "Nalepi",
"Close": "Zatvori",
"Font Family": "Vrsta fonta",
"Pre": "Pre",
"Align right": "Poravnano  desno",
"New document": "Novi dokument",
"Blockquote": "Navodnici",
"Numbered list": "Numerisana lista",
"Increase indent": "Pove\u0107aj uvla\u010denje",
"Formats": "Formatiraj",
"Headers": "Zaglavlje",
"Select all": "Obele\u017ei sve",
"Header 3": "Zaglavlje 3",
"Blocks": "Blokovi",
"Undo": "Nazad",
"Strikethrough": "Precrtan",
"Bullet list": "Lista nabrajanja",
"Header 1": "Zaglavlje 1",
"Superscript": "Natpis",
"Clear formatting": "Brisanje formatiranja",
"Font Sizes": "Veli\u010dine fontova",
"Subscript": "Potpisan",
"Header 6": "Zaglavlje 6",
"Redo": "Napred",
"Paragraph": "Paragraf",
"Ok": "Ok",
"Bold": "Podebljan",
"Code": "Kod",
"Italic": "isko\u0161en",
"Align center": "Poravnano centar",
"Header 5": "Zaglavlje 5",
"Decrease indent": "Smanji uvla\u010denje",
"Header 4": "Zaglavlje 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Nalepiti je sada u obi\u010dnom text modu.Sadr\u017eaj \u0107e biti nalepljen kao obi\u010dan tekst dok ne ugasite ovu opciju.",
"Underline": "Podvu\u010den",
"Cancel": "Opozovi",
"Justify": "Poravnanje",
"Inline": "U liniji",
"Copy": "Kopiraj",
"Align left": "Poravnano levo",
"Visual aids": "Vizuelna pomagala",
"Lower Greek": "Ni\u017ei gr\u010dki",
"Square": "Kvadrat",
"Default": "Podrazumevano",
"Lower Alpha": "Donja Alpha",
"Circle": "Krug",
"Disc": "Disk",
"Upper Alpha": "Gornji Alpha",
"Upper Roman": "Gornji Roman",
"Lower Roman": "Donji Roman",
"Name": "Ime",
"Anchor": "Sidro",
"You have unsaved changes are you sure you want to navigate away?": "Imate nesa\u010duvane promene dali ste sigurni da \u017eelite da iza\u0111ete?",
"Restore last draft": "Vrati  poslednji nacrt",
"Special character": "Specijalni karakter",
"Source code": "Izvorni kod",
"Right to left": "Sa desne na levu",
"Left to right": "Sa leve na desnu",
"Emoticons": "Smajliji",
"Robots": "Roboti",
"Document properties": "Postavke dokumenta",
"Title": "Naslov",
"Keywords": "Klju\u010dne re\u010di",
"Encoding": "Kodiranje",
"Description": "Opis",
"Author": "Autor",
"Fullscreen": "Pun ekran",
"Horizontal line": "Horizontalna linija",
"Horizontal space": "Horizontalni razmak",
"Insert\/edit image": "Ubaci\/Promeni sliku",
"General": "Op\u0161te",
"Advanced": "Napredno",
"Source": "Izvor",
"Border": "Okvir",
"Constrain proportions": "Ograni\u010dene proporcije",
"Vertical space": "Vertikalni razmak",
"Image description": "Opis slike",
"Style": "Stil",
"Dimensions": "Dimenzije",
"Insert image": "Ubaci sliku",
"Insert date\/time": "Ubaci datum\/vreme",
"Remove link": "Ukloni link",
"Url": "Url",
"Text to display": "Tekst za prikaz",
"Anchors": "sidro",
"Insert link": "Ubaci vezu",
"New window": "Novi prozor",
"None": "Ni\u0161ta",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?",
"Target": "Meta",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
"Insert\/edit link": "Ubaci\/promeni vezu",
"Insert\/edit video": "Ubaci\/promeni video",
"Poster": "Poster",
"Alternative source": "Alternativni izvor",
"Paste your embed code below:": "Nalepite ugra\u0111eni kod ispod:",
"Insert video": "Ubaci video",
"Embed": "Ugra\u0111eno",
"Nonbreaking space": "bez ramaka",
"Page break": "Lomljenje stranice",
"Paste as text": "Nalepi kao tekst",
"Preview": "Pregled",
"Print": "\u0160tampanje",
"Save": "Sa\u010duvati",
"Could not find the specified string.": "Nije mogu\u0107e prona\u0107i navedeni niz.",
"Replace": "Zameni",
"Next": "Slede\u0107i",
"Whole words": "Cele re\u010di",
"Find and replace": "Na\u0111i i zameni",
"Replace with": "Zameni sa",
"Find": "Na\u0111i",
"Replace all": "Zameni sve",
"Match case": "Predmet za upore\u0111ivanje",
"Prev": "Prethodni",
"Spellcheck": "Provera pravopisa",
"Finish": "Kraj",
"Ignore all": "Ignori\u0161i sve",
"Ignore": "ignori\u0161i",
"Insert row before": "Ubaci red pre",
"Rows": "Redovi",
"Height": "Visina",
"Paste row after": "Nalepi red posle",
"Alignment": "Svrstavanje",
"Column group": "Grupa kolone",
"Row": "Red",
"Insert column before": "Ubaci kolonu pre",
"Split cell": "Razdvoji \u0107elije",
"Cell padding": "Razmak \u0107elije",
"Cell spacing": "Prostor \u0107elije",
"Row type": "Tip reda",
"Insert table": "ubaci tabelu",
"Body": "Telo",
"Caption": "Natpis",
"Footer": "Podno\u017eje",
"Delete row": "Obri\u0161i red",
"Paste row before": "Nalepi red pre",
"Scope": "Obim",
"Delete table": "Obri\u0161i tabelu",
"Header cell": "Visina \u0107elije",
"Column": "Kolona",
"Cell": "\u0106elija",
"Header": "Zaglavlje",
"Cell type": "Tip \u0107elije",
"Copy row": "Kopiraj red",
"Row properties": "Postavke reda",
"Table properties": "Postavke tabele",
"Row group": "Grupa reda",
"Right": "Desno",
"Insert column after": "Ubaci kolonu posle",
"Cols": "Kolone",
"Insert row after": "Ubaci red posle",
"Width": "\u0160irina",
"Cell properties": "Postavke \u0107elije",
"Left": "Levo",
"Cut row": "Iseci red",
"Delete column": "Obri\u0161i kolonu",
"Center": "Centar",
"Merge cells": "Spoji \u0107elije",
"Insert template": "Ubaci \u0161ablon",
"Templates": "\u0160abloni",
"Background color": "Boja pozadine",
"Text color": "Boja tekst",
"Show blocks": "Prikaz blokova",
"Show invisible characters": "Prika\u017ei nevidljive karaktere",
"Words: {0}": "Re\u010di:{0}",
"Insert": "Umetni",
"File": "Datoteka",
"Edit": "Ure\u0111ivanje",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Oboga\u0107en tekst. Pritisni te ALT-F9 za meni.Pritisnite ALT-F10 za traku sa alatkama.Pritisnite ALT-0 za pomo\u0107",
"Tools": "Alatke",
"View": "Prikaz",
"Table": "Tabela",
"Format": "Format"
});editors/tinymce/langs/cy.js000064400000017106152177723720011764 0ustar00tinymce.addI18n('cy',{
"Cut": "Torri",
"Heading 5": "Pennawd 5",
"Header 2": "Pennawd 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Dyw eich porwr ddim yn cynnal mynediad uniongyrchol i'r clipfwrdd. Yn hytrach defnyddiwch y bysellau llwybrau byr Ctrl+X\/C\/V.",
"Heading 4": "Pennawd 4",
"Div": "Div",
"Heading 2": "Pennawd 2",
"Paste": "Gludo",
"Close": "Cau",
"Font Family": "Teulu Ffont",
"Pre": "Pre",
"Align right": "Aliniad de",
"New document": "Dogfen newydd",
"Blockquote": "Dyfyniad bloc",
"Numbered list": "Rhestr rifol",
"Heading 1": "Pennawd 1",
"Headings": "Penawdau",
"Increase indent": "Cynyddu mewnoliad",
"Formats": "Fformatau",
"Headers": "Penawdau",
"Select all": "Dewis popeth",
"Header 3": "Pennawd 3",
"Blocks": "Blociau",
"Undo": "Dadwneud",
"Strikethrough": "Llinell drwodd",
"Bullet list": "Rhestr fwled",
"Header 1": "Pennawd 1",
"Superscript": "Uwchsgript",
"Clear formatting": "Clirio pob fformat",
"Font Sizes": "Meintiau Ffont",
"Subscript": "Is-sgript",
"Header 6": "Pennawd 6",
"Redo": "Ailwneud",
"Paragraph": "Paragraff",
"Ok": "Iawn",
"Bold": "Bras",
"Code": "Cod",
"Italic": "Italig",
"Align center": "Aliniad canol",
"Header 5": "Pennawd 5",
"Heading 6": "Pennawd 6",
"Heading 3": "Pennawd 3",
"Decrease indent": "Lleihau mewnoliad",
"Header 4": "Pennawd 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Mae gludo nawr yn gweithio yn y modd testun plaen.  Caiff testun plaen ei ludo nawr tan gaiff yr opsiwn ei doglo i'w ddiffodd.",
"Underline": "Tanlinellu",
"Cancel": "Canslo",
"Justify": "Unioni",
"Inline": "Mewnlin",
"Copy": "Cop\u00efo",
"Align left": "Aliniad chwith",
"Visual aids": "Cymorth gweledol",
"Lower Greek": "Groeg Is",
"Square": "Sgw\u00e2r",
"Default": "Diofyn",
"Lower Alpha": "Alffa Is",
"Circle": "Cylch",
"Disc": "Disg",
"Upper Alpha": "Alffa Uwch",
"Upper Roman": "Rhufeinig Uwch",
"Lower Roman": "Rhufeinig Is",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Dylai Id gychwyn gyda llythyren ac yna dim ond llythrennau, rhifau, llinellau toriad,dotiau, colonau neu danlinellau.",
"Name": "Enw",
"Anchor": "Angor",
"Id": "Id",
"You have unsaved changes are you sure you want to navigate away?": "Mae newidiadau heb eu cadw - ydych chi wir am symud i ffwrdd?",
"Restore last draft": "Adfer y drafft olaf",
"Special character": "Nod arbennig",
"Source code": "Cod gwreiddiol",
"Language": "Iaith",
"Insert\/Edit code sample": "Mewnosod\/golygu sampl cod",
"B": "Gl",
"R": "C",
"G": "Gw",
"Color": "Lliw",
"Right to left": "De i'r chwith",
"Left to right": "Chwith i'r dde",
"Emoticons": "Gwenogluniau",
"Robots": "Robotiaid",
"Document properties": "Priodweddau'r ddogfen",
"Title": "Teitl",
"Keywords": "Allweddeiriau",
"Encoding": "Amgodiad",
"Description": "Disgrifiad",
"Author": "Awdur",
"Fullscreen": "Sgrin llawn",
"Horizontal line": "Llinell lorweddol",
"Horizontal space": "Gofod llorweddol",
"Insert\/edit image": "Mewnosod\/golygu delwedd",
"General": "Cyffredinol",
"Advanced": "Uwch",
"Source": "Ffynhonnell",
"Border": "Border",
"Constrain proportions": "Gorfodi cyfrannedd",
"Vertical space": "Gofod fertigol",
"Image description": "Disgrifiad y ddelwedd",
"Style": "Arddull",
"Dimensions": "Dimensiynau",
"Insert image": "Mewnosod delwedd",
"Image": "Delwedd",
"Zoom in": "Chwyddo mewn",
"Contrast": "Cyferbynnedd",
"Back": "Nol",
"Gamma": "Gamma",
"Flip horizontally": "Fflipio llorweddol",
"Resize": "Ailfeintio",
"Sharpen": "Hogi",
"Zoom out": "Chwyddo allan",
"Image options": "Dewisiadau delwedd",
"Apply": "Rhoi ar waith",
"Brightness": "Disgleirdeb",
"Rotate clockwise": "Troi clocwedd",
"Rotate counterclockwise": "Troi gwrthgloc",
"Edit image": "Golygu delwedd",
"Color levels": "Lefelau Lliw",
"Crop": "Tocio",
"Orientation": "Cyfeiriadaeth",
"Flip vertically": "Fflipio fertigol",
"Invert": "Gwrthdroi",
"Date\/time": "Dyddiad\/amser",
"Insert date\/time": "Mewnosod dyddiad\/amser",
"Remove link": "Tynnu dolen",
"Url": "Url",
"Text to display": "Testun i'w ddangos",
"Anchors": "Angorau",
"Insert link": "Mewnosod dolen",
"Link": "Dolen",
"New window": "Ffenest newydd",
"None": "Dim",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Mae'n debyg mai dolen allanol yw'r URL hwn. Ydych chi am ychwanegu'r rhagddodiad http:\/\/ ?",
"Paste or type a link": "Pastio neu deipio dolen",
"Target": "Targed",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Mae'n debyg mai cyfeiriad e-bost yw'r URL hwn. Ydych chi am ychwanegu'r rhagddoddiad mailto:?",
"Insert\/edit link": "Mewnosod\/golygu dolen",
"Insert\/edit video": "Mewnosod\/golygu fideo",
"Media": "Cyfrwng",
"Alternative source": "Ffynhonnell amgen",
"Paste your embed code below:": "Gludwch eich cod mewnosod isod:",
"Insert video": "Mewnosod fideo",
"Poster": "Poster",
"Insert\/edit media": "Mewnosod\/golygu cyfrwng",
"Embed": "Mewnosod",
"Nonbreaking space": "Bwlch heb dorri",
"Page break": "Toriad tudalen",
"Paste as text": "Gludo fel testun",
"Preview": "Rhagolwg",
"Print": "Argraffu",
"Save": "Cadw",
"Could not find the specified string.": "Methu ffeindio'r llinyn hwnnw.",
"Replace": "Amnewid",
"Next": "Nesaf",
"Whole words": "Geiriau cyfan",
"Find and replace": "Chwilio ac amnewid",
"Replace with": "Amnewid gyda",
"Find": "Chwilio",
"Replace all": "Amnewid y cwbl",
"Match case": "Cas yn cyfateb",
"Prev": "Blaenorol",
"Spellcheck": "Sillafydd",
"Finish": "Gorffen",
"Ignore all": "Amwybyddu pob",
"Ignore": "Anwybyddu",
"Add to Dictionary": "Adio i'r Geiriadur",
"Insert row before": "Mewnosod rhes cyn",
"Rows": "Rhesi",
"Height": "Uchder",
"Paste row after": "Gludo rhes ar \u00f4l",
"Alignment": "Aliniad",
"Border color": "Lliw Border",
"Column group": "Gr\u0175p colofn",
"Row": "Rhes",
"Insert column before": "Mewnosod colofn cyn",
"Split cell": "Hollti celloedd",
"Cell padding": "Padio celloedd",
"Cell spacing": "Bylchiad celloedd",
"Row type": "Math y rhes",
"Insert table": "Mewnosod tabl",
"Body": "Corff",
"Caption": "Pennawd",
"Footer": "Troedyn",
"Delete row": "Dileu rhes",
"Paste row before": "Gludo rhes cyn",
"Scope": "Cwmpas",
"Delete table": "Dileu'r tabl",
"H Align": "Aliniad Ll",
"Top": "Brig",
"Header cell": "Cell bennawd",
"Column": "Colofn",
"Row group": "Gr\u0175p rhes",
"Cell": "Cell",
"Middle": "Canol",
"Cell type": "Math y gell",
"Copy row": "Cop\u00efo rhes",
"Row properties": "Priodweddau rhes",
"Table properties": "Priodweddau tabl",
"Bottom": "Gwaelod",
"V Align": "Aliniad F",
"Header": "Pennyn",
"Right": "De",
"Insert column after": "Mewnosod colofn ar \u00f4l",
"Cols": "Colofnau",
"Insert row after": "Mewnosod rhes ar \u00f4l",
"Width": "Lled",
"Cell properties": "Priodweddau'r gell",
"Left": "Chwith",
"Cut row": "Torri rhes",
"Delete column": "Dileu colofn",
"Center": "Canol",
"Merge cells": "Cyfuno celloedd",
"Insert template": "Mewnosod templed",
"Templates": "Templedi",
"Background color": "Lliw cefndir",
"Custom...": "Personol...",
"Custom color": "Lliw personol",
"No color": "Dim Lliw",
"Text color": "Lliw testun",
"Table of Contents": "Tabl Cynnwys",
"Show blocks": "Dangos blociau",
"Show invisible characters": "Dangos nodau anweledig",
"Words: {0}": "Geiriau: {0}",
"Insert": "Mewnosod",
"File": "Ffeil",
"Edit": "Golygu",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ardal Testun Uwch. Pwyswch ALT-F9 ar gyfer y ddewislen, Pwyswch ALT-F10 ar gyfer y bar offer. Pwyswch ALT-0 am gymorth",
"Tools": "Offer",
"View": "Dangos",
"Table": "Tabl",
"Format": "Fformat"
});editors/tinymce/langs/lb.js000064400000015331152177723720011744 0ustar00tinymce.addI18n('lb',{
"Cut": "Ausschneiden",
"Header 2": "Titel 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "D\u00e4i Web-Browser \u00ebnnerst\u00ebtzt keen direkten Acc\u00e8s op d'Zw\u00ebschenaplag. Benotz w.e.gl. CTRL+C fir den ausgewielten Text ze kop\u00e9ieren an CTRL+V fir en anzepechen.",
"Div": "DIV",
"Paste": "Apechen",
"Close": "Zoumaachen",
"Font Family": "Schr\u00ebft-Famill",
"Pre": "PRE",
"Align right": "Riets align\u00e9iert",
"New document": "Neit Dokument",
"Blockquote": "Zitat",
"Numbered list": "Nummer\u00e9iert L\u00ebscht",
"Increase indent": "Ident\u00e9ierung vergr\u00e9isseren",
"Formats": "Formater",
"Headers": "Titelen",
"Select all": "Alles auswielen",
"Header 3": "Titel 3",
"Blocks": "Bl\u00e9ck",
"Undo": "R\u00e9ckg\u00e4ngeg maachen",
"Strikethrough": "Duerchgestrach",
"Bullet list": "Opzielung",
"Header 1": "Titel 1",
"Superscript": "H\u00e9ichgestallt",
"Clear formatting": "Format\u00e9ierung l\u00e4schen",
"Font Sizes": "Schr\u00ebft-Gr\u00e9issten",
"Subscript": "Erofgestallt",
"Header 6": "Titel 6",
"Redo": "Widderhuelen",
"Paragraph": "Paragraph",
"Ok": "Okee",
"Bold": "Fett",
"Code": "CODE",
"Italic": "Kursiv",
"Align center": "Zentr\u00e9iert",
"Header 5": "Titel 5",
"Decrease indent": "Ident\u00e9ierung verklengeren",
"Header 4": "Titel 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\"Apechen\" ass elo am Textmodus. Inhalter ginn elo ouni Format\u00e9ierungen agepecht bis du d\u00ebs Optioun ausm\u00e9chs.",
"Underline": "\u00cbnnerstrach",
"Cancel": "Ofbriechen",
"Justify": "Blocksaz",
"Inline": "Inline",
"Copy": "Kop\u00e9ieren",
"Align left": "L\u00e9nks align\u00e9iert",
"Visual aids": "Visuell H\u00ebllefen",
"Lower Greek": "Klengt griichescht Alphabet",
"Square": "Quadrat",
"Default": "Standard",
"Lower Alpha": "Klengt Alphabet",
"Circle": "Krees",
"Disc": "Scheif",
"Upper Alpha": "Grousst Alphabet",
"Upper Roman": "Grousst r\u00e9imescht Alphabet",
"Lower Roman": "Klengt r\u00e9imescht Alphabet",
"Name": "Numm",
"Anchor": "Anker",
"You have unsaved changes are you sure you want to navigate away?": "Du hues ongesp\u00e4ichert \u00c4nnerungen. W\u00eblls du s\u00e9cher ewechnavig\u00e9ieren?",
"Restore last draft": "Leschten Entworf er\u00ebm zr\u00e9cksetzen",
"Special character": "Speziell Zeechen",
"Source code": "Quelltext",
"Right to left": "Vu riets no l\u00e9nks",
"Left to right": "Vu l\u00e9nks no riets",
"Emoticons": "Smileyen",
"Robots": "Robotter",
"Document properties": "Eegeschafte vum Dokument",
"Title": "Titel",
"Keywords": "Schl\u00ebsselwierder",
"Encoding": "Cod\u00e9ierung",
"Description": "Beschreiwung",
"Author": "Auteur",
"Fullscreen": "Vollbildschierm",
"Horizontal line": "Horizontal Linn",
"Horizontal space": "Horizontalen Espace",
"Insert\/edit image": "Bild af\u00fcgen\/\u00e4nneren",
"General": "Allgemeng",
"Advanced": "Erweidert",
"Source": "Quell",
"Border": "Rand",
"Constrain proportions": "Proportioune b\u00e4ibehalen",
"Vertical space": "Vertikalen Espace",
"Image description": "Bildbeschreiwung",
"Style": "Stil",
"Dimensions": "Dimensiounen",
"Insert image": "Bild af\u00fcgen",
"Insert date\/time": "Datum\/Z\u00e4it drasetzen",
"Remove link": "Link l\u00e4schen",
"Url": "URL",
"Text to display": "Text deen unzeweisen ass",
"Anchors": "Ankeren",
"Insert link": "Link drasetzen",
"New window": "Nei F\u00ebnster",
"None": "Keen",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "D'URL d\u00e9i s du aginn hues sch\u00e9ngt en externe Link ze sinn. W\u00eblls du den \"http:\/\/\"-Pr\u00e4fix dob\u00e4isetzen?",
"Target": "Zil",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "D'URL d\u00e9i s du aginn hues sch\u00e9ngt eng Email-Adress ze sinn. W\u00eblls du de \"mailto:\"-Pr\u00e4fix dob\u00e4isetzen?",
"Insert\/edit link": "Link drasetzen\/\u00e4nneren",
"Insert\/edit video": "Video drasetzen\/\u00e4nneren",
"Poster": "Pouster",
"Alternative source": "Alternativ Quell",
"Paste your embed code below:": "Abannungscode hei apechen:",
"Insert video": "Video drasetzen",
"Embed": "Abannen",
"Nonbreaking space": "Net\u00ebmbriechenden Espace",
"Page break": "S\u00e4iten\u00ebmbroch",
"Paste as text": "Als Text apechen",
"Preview": "Kucken",
"Print": "Dr\u00e9cken",
"Save": "Sp\u00e4icheren",
"Could not find the specified string.": "Den Text konnt net fonnt ginn.",
"Replace": "Ersetzen",
"Next": "Weider",
"Whole words": "Ganz Wierder",
"Find and replace": "Fannen an ersetzen",
"Replace with": "Ersetze mat",
"Find": "Fannen",
"Replace all": "All ersetzen",
"Match case": "Grouss-\/Klengschreiwung respekt\u00e9ieren",
"Prev": "Zr\u00e9ck",
"Spellcheck": "Verbesseren",
"Finish": "Ofschl\u00e9issen",
"Ignore all": "All ignor\u00e9ieren",
"Ignore": "Ignor\u00e9ieren",
"Insert row before": "Rei virdrun drasetzen",
"Rows": "Reien",
"Height": "H\u00e9icht",
"Paste row after": "Rei herno apechen",
"Alignment": "Align\u00e9ierung",
"Column group": "Kolonnegrupp",
"Row": "Rei",
"Insert column before": "Kolonn virdrun drasetzen",
"Split cell": "Zell opspl\u00e9cken",
"Cell padding": "Zellenopf\u00ebllung",
"Cell spacing": "Zellenofstand",
"Row type": "Reientyp",
"Insert table": "Tabell drasetzen",
"Body": "Kierper",
"Caption": "Beschr\u00ebftung",
"Footer": "Fouss",
"Delete row": "Rei l\u00e4schen",
"Paste row before": "Rei virdrun apechen",
"Scope": "Ber\u00e4ich",
"Delete table": "Tabell l\u00e4schen",
"Header cell": "Kappzell",
"Column": "Kolonn",
"Cell": "Zell",
"Header": "Kapp",
"Cell type": "Zellentyp",
"Copy row": "Rei kop\u00e9ieren",
"Row properties": "Eegeschafte vu Reien",
"Table properties": "Eegeschafte vun Tabellen",
"Row group": "Reiegrupp",
"Right": "Riets",
"Insert column after": "Kolonn herno drasetzen",
"Cols": "Kolonnen",
"Insert row after": "Rei herno drasetzen",
"Width": "Breet",
"Cell properties": "Eegeschafte vun Zellen",
"Left": "L\u00e9nks",
"Cut row": "Rei ausschneiden",
"Delete column": "Kolonn l\u00e4schen",
"Center": "M\u00ebtt",
"Merge cells": "Zelle fusion\u00e9ieren",
"Insert template": "Virlag drasetzen",
"Templates": "Virlagen",
"Background color": "Hanndergrondfaarf",
"Text color": "Textfaarf",
"Show blocks": "Bl\u00e9ck weisen",
"Show invisible characters": "Onsiichtbar Zeeche weisen",
"Words: {0}": "Wierder: {0}",
"Insert": "Drasetzen",
"File": "Fichier",
"Edit": "\u00c4nneren",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ber\u00e4ich fir format\u00e9ierten Text. Dr\u00e9ck ALT+F9 fir de Men\u00fc. Dr\u00e9ck ALT+F10 fir d'Geschirleescht. Dr\u00e9ck ALT+0 fir d'H\u00ebllef.",
"Tools": "Geschir",
"View": "Kucken",
"Table": "Tabell",
"Format": "Format"
});editors/tinymce/langs/ca.js000064400000017152152177723720011735 0ustar00tinymce.addI18n('ca',{
"Cut": "Retalla",
"Heading 5": "Encap\u00e7alament 5",
"Header 2": "Cap\u00e7alera 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "El vostre navegador no suporta l'acc\u00e9s directe al portaobjectes. Si us plau, feu servir les dreceres de teclat Ctrl+X\/C\/V.",
"Heading 4": "Encap\u00e7alament 4",
"Div": "Div",
"Heading 2": "Encap\u00e7alament 2",
"Paste": "Enganxa",
"Close": "Tanca",
"Font Family": "Fam\u00edlia de la font",
"Pre": "Pre",
"Align right": "Aliniat a la dreta",
"New document": "Nou document",
"Blockquote": "Cita",
"Numbered list": "Llista enumerada",
"Heading 1": "Encap\u00e7alament 1",
"Headings": "Encap\u00e7alaments",
"Increase indent": "Augmentar sagnat",
"Formats": "Formats",
"Headers": "Cap\u00e7aleres",
"Select all": "Seleccionar-ho tot",
"Header 3": "Cap\u00e7alera 3",
"Blocks": "Blocs",
"Undo": "Desfer",
"Strikethrough": "Ratllat",
"Bullet list": "Llista no ordenada",
"Header 1": "Cap\u00e7alera 1",
"Superscript": "Super\u00edndex",
"Clear formatting": "Eliminar format",
"Font Sizes": "Mides de la font",
"Subscript": "Sub\u00edndex",
"Header 6": "Cap\u00e7alera 6",
"Redo": "Refer",
"Paragraph": "Par\u00e0graf",
"Ok": "Acceptar",
"Bold": "Negreta",
"Code": "Codi",
"Italic": "Cursiva",
"Align center": "Centrat",
"Header 5": "Cap\u00e7alera 5",
"Heading 6": "Encap\u00e7alament 6",
"Heading 3": "Encap\u00e7alament 3",
"Decrease indent": "Disminuir sagnat",
"Header 4": "Cap\u00e7alera 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Enganxar ara est\u00e0 en mode text pla. Els continguts s'enganxaran com a text pla fins que desactivis aquesta opci\u00f3. ",
"Underline": "Subratllat",
"Cancel": "Cancel\u00b7la",
"Justify": "Justificat",
"Inline": "En l\u00ednia",
"Copy": "Copia",
"Align left": "Aliniat a l'esquerra",
"Visual aids": "Assist\u00e8ncia visual",
"Lower Greek": "Grec menor",
"Square": "Quadrat",
"Default": "Per defecte",
"Lower Alpha": "Alfa menor",
"Circle": "Cercle",
"Disc": "Disc",
"Upper Alpha": "Alfa major",
"Upper Roman": "Roman major",
"Lower Roman": "Roman menor",
"Name": "Nom",
"Anchor": "\u00c0ncora",
"You have unsaved changes are you sure you want to navigate away?": "Teniu canvis sense desar, esteu segur que voleu deixar-ho ara?",
"Restore last draft": "Restaurar l'\u00faltim esborrany",
"Special character": "Car\u00e0cter especial",
"Source code": "Codi font",
"B": "B",
"R": "R",
"G": "G",
"Color": "Color",
"Right to left": "De dreta a esquerra",
"Left to right": "D'esquerra a dreta",
"Emoticons": "Emoticones",
"Robots": "Robots",
"Document properties": "Propietats del document",
"Title": "T\u00edtol",
"Keywords": "Paraules clau",
"Encoding": "Codificaci\u00f3",
"Description": "Descripci\u00f3",
"Author": "Autor",
"Fullscreen": "Pantalla completa",
"Horizontal line": "L\u00ednia horitzontal",
"Horizontal space": "Espai horitzontal",
"Insert\/edit image": "Inserir\/editar imatge",
"General": "General",
"Advanced": "Avan\u00e7at",
"Source": "Font",
"Border": "Vora",
"Constrain proportions": "Mantenir proporcions",
"Vertical space": "Espai vertical",
"Image description": "Descripci\u00f3 de la imatge",
"Style": "Estil",
"Dimensions": "Dimensions",
"Insert image": "Inserir imatge",
"Zoom in": "Ampliar",
"Contrast": "Contrast",
"Back": "Tornar",
"Gamma": "Gamma",
"Flip horizontally": "Capgirar horitzontalment",
"Resize": "Canviar mida",
"Sharpen": "Remarcar vores",
"Zoom out": "Empetitir",
"Image options": "Opcions d'imatge",
"Apply": "Aplicar",
"Brightness": "Brillantor",
"Rotate clockwise": "Girar a la dreta",
"Rotate counterclockwise": "Girar a l'esquerra",
"Edit image": "Editar imatge",
"Color levels": "Nivells de color",
"Crop": "Escap\u00e7ar",
"Orientation": "Orientaci\u00f3",
"Flip vertically": "Capgirar verticalment",
"Invert": "Invertir",
"Insert date\/time": "Inserir data\/hora",
"Remove link": "Treure enlla\u00e7",
"Url": "URL",
"Text to display": "Text per mostrar",
"Anchors": "\u00c0ncores",
"Insert link": "Inserir enlla\u00e7",
"New window": "Finestra nova",
"None": "Cap",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que has escrit sembla un enlla\u00e7 extern. Vols afegir-li el prefix obligatori http:\/\/ ?",
"Target": "Dest\u00ed",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que has escrit sembla una adre\u00e7a de correu electr\u00f2nic. Vols afegir-li el prefix obligatori mailto: ?",
"Insert\/edit link": "Inserir\/editar enlla\u00e7",
"Insert\/edit video": "Inserir\/editar v\u00eddeo",
"Poster": "P\u00f3ster",
"Alternative source": "Font alternativa",
"Paste your embed code below:": "Enganxau el codi a sota:",
"Insert video": "Inserir v\u00eddeo",
"Embed": "Incloure",
"Nonbreaking space": "Espai fixe",
"Page break": "Salt de p\u00e0gina",
"Paste as text": "Enganxar com a text",
"Preview": "Previsualitzaci\u00f3",
"Print": "Imprimir",
"Save": "Desa",
"Could not find the specified string.": "No es pot trobar el text especificat.",
"Replace": "Rempla\u00e7ar",
"Next": "Seg\u00fcent",
"Whole words": "Paraules senceres",
"Find and replace": "Buscar i rempla\u00e7ar",
"Replace with": "Rempla\u00e7ar amb",
"Find": "Buscar",
"Replace all": "Rempla\u00e7ar-ho tot",
"Match case": "Coincidir maj\u00fascules",
"Prev": "Anterior",
"Spellcheck": "Comprovar ortrografia",
"Finish": "Finalitzar",
"Ignore all": "Ignorar tots",
"Ignore": "Ignorar",
"Add to Dictionary": "Afegir al diccionari",
"Insert row before": "Inserir fila a sobre",
"Rows": "Files",
"Height": "Al\u00e7ada",
"Paste row after": "Enganxar fila a sota",
"Alignment": "Aliniament",
"Border color": "Color de vora",
"Column group": "Grup de columna",
"Row": "Fila",
"Insert column before": "Inserir columna abans",
"Split cell": "Dividir cel\u00b7les",
"Cell padding": "Marge intern",
"Cell spacing": "Espai entre cel\u00b7les",
"Row type": "Tipus de fila",
"Insert table": "Inserir taula",
"Body": "Cos",
"Caption": "Encap\u00e7alament",
"Footer": "Peu",
"Delete row": "Esborrar fila",
"Paste row before": "Enganxar fila a sobre",
"Scope": "\u00c0mbit",
"Delete table": "Esborrar taula",
"H Align": "Al\u00edniament H",
"Top": "Superior",
"Header cell": "Cel\u00b7la de cap\u00e7alera",
"Column": "Columna",
"Row group": "Grup de fila",
"Cell": "Cel\u00b7la",
"Middle": "Mitj\u00e0",
"Cell type": "Tipus de cel\u00b7la",
"Copy row": "Copiar fila",
"Row properties": "Propietats de fila",
"Table properties": "Propietats de taula",
"Bottom": "Inferior",
"V Align": "Al\u00edniament V",
"Header": "Cap\u00e7alera",
"Right": "A la dreta",
"Insert column after": "Inserir columna despr\u00e9s",
"Cols": "Cols",
"Insert row after": "Inserir fila a sota",
"Width": "Amplada",
"Cell properties": "Propietats de cel\u00b7la",
"Left": "A l'esquerra",
"Cut row": "Retallar fila",
"Delete column": "Esborrar columna",
"Center": "Centrat",
"Merge cells": "Fusionar cel\u00b7les",
"Insert template": "Inserir plantilla",
"Templates": "Plantilles",
"Background color": "Color del fons",
"Custom...": "Personalitzar...",
"Custom color": "Personalitzar el color",
"No color": "Sense color",
"Text color": "Color del text",
"Show blocks": "Mostrar blocs",
"Show invisible characters": "Mostrar car\u00e0cters invisibles",
"Words: {0}": "Paraules: {0}",
"Insert": "Inserir",
"File": "Arxiu",
"Edit": "Edici\u00f3",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c0rea de text amb format. Premeu ALT-F9 per mostrar el men\u00fa, ALT F10 per la barra d'eines i ALT-0 per ajuda.",
"Tools": "Eines",
"View": "Veure",
"Table": "Taula",
"Format": "Format"
});editors/tinymce/langs/el.js000064400000046636152177723720011763 0ustar00tinymce.addI18n('el',{
"Cut": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae",
"Header 2": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u039f \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03ac\u03bc\u03b5\u03c3\u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2 \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 Ctrl+X\/C\/V.",
"Div": "Div",
"Paste": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7",
"Close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
"Font Family": "\u0393\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac",
"Pre": "Pre",
"Align right": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b4\u03b5\u03be\u03b9\u03ac",
"New document": "\u039d\u03ad\u03bf \u03ad\u03b3\u03b3\u03c1\u03b1\u03c6\u03bf",
"Blockquote": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u03c0\u03b1\u03c1\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2",
"Numbered list": "\u0391\u03c1\u03b9\u03b8\u03bc\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1",
"Increase indent": "\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
"Formats": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
"Headers": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2",
"Select all": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03cc\u03bb\u03c9\u03bd",
"Header 3": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 3",
"Blocks": "\u03a4\u03bc\u03ae\u03bc\u03b1\u03c4\u03b1",
"Undo": "\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7",
"Strikethrough": "\u0394\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae",
"Bullet list": "\u039b\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03ba\u03bf\u03c5\u03ba\u03ba\u03af\u03b4\u03b5\u03c2",
"Header 1": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 1",
"Superscript": "\u0395\u03ba\u03b8\u03ad\u03c4\u03b7\u03c2",
"Clear formatting": "\u0391\u03c0\u03b1\u03bb\u03bf\u03b9\u03c6\u03ae \u03bc\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2",
"Font Sizes": "\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2",
"Subscript": "\u0394\u03b5\u03af\u03ba\u03c4\u03b7\u03c2",
"Header 6": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 6",
"Redo": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7",
"Paragraph": "\u03a0\u03b1\u03c1\u03ac\u03b3\u03c1\u03b1\u03c6\u03bf\u03c2",
"Ok": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9",
"Bold": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b7",
"Code": "\u039a\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2",
"Italic": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1",
"Align center": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03c3\u03c4\u03bf \u03ba\u03ad\u03bd\u03c4\u03c1\u03bf",
"Header 5": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 5",
"Decrease indent": "\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
"Header 4": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 4",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0397 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03ce\u03c1\u03b1 \u03c3\u03b5 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03bb\u03bf\u03cd \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5. \u03a4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03b1 \u03bc\u03b9\u03b1\u03c2 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7\u03c2 \u03b8\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c9\u03c2 \u03b1\u03c0\u03bb\u03cc \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03cc\u03c3\u03bf \u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c5\u03c4\u03ae \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03bd\u03b5\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae.",
"Underline": "\u03a5\u03c0\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b9\u03c3\u03b7",
"Cancel": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7",
"Justify": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03c3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7",
"Inline": "\u0395\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03ad\u03bd\u03b7",
"Copy": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae",
"Align left": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
"Visual aids": "O\u03c0\u03c4\u03b9\u03ba\u03ac \u03b2\u03bf\u03b7\u03b8\u03ae\u03bc\u03b1\u03c4\u03b1 ",
"Lower Greek": "\u03a0\u03b5\u03b6\u03ac \u03b5\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
"Square": "\u03a4\u03b5\u03c4\u03c1\u03ac\u03b3\u03c9\u03bd\u03bf",
"Default": "\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf",
"Lower Alpha": "\u03a0\u03b5\u03b6\u03ac \u03bb\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac",
"Circle": "\u039a\u03cd\u03ba\u03bb\u03bf\u03c2",
"Disc": "\u0394\u03af\u03c3\u03ba\u03bf\u03c2",
"Upper Alpha": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u03bb\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac",
"Upper Roman": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u03c1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac",
"Lower Roman": "\u03a0\u03b5\u03b6\u03ac \u03c1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac",
"Name": "\u038c\u03bd\u03bf\u03bc\u03b1",
"Anchor": "\u0391\u03b3\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7",
"You have unsaved changes are you sure you want to navigate away?": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03bc\u03b7 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c6\u03cd\u03b3\u03b5\u03c4\u03b5 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c3\u03b5\u03bb\u03af\u03b4\u03b1;",
"Restore last draft": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5",
"Special character": "\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b1\u03c2",
"Source code": "\u03a0\u03b7\u03b3\u03b1\u03af\u03bf\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2",
"Right to left": "\u0391\u03c0\u03cc \u03b4\u03b5\u03be\u03b9\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
"Left to right": "\u0391\u03c0\u03cc \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03ac",
"Emoticons": "\u03a6\u03b1\u03c4\u03c3\u03bf\u03cd\u03bb\u03b5\u03c2",
"Robots": "\u03a1\u03bf\u03bc\u03c0\u03cc\u03c4",
"Document properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b5\u03b3\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5",
"Title": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2",
"Keywords": "\u039b\u03ad\u03be\u03b5\u03b9\u03c2 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac",
"Encoding": "\u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
"Description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae",
"Author": "\u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2",
"Fullscreen": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03bf\u03b8\u03cc\u03bd\u03b7",
"Horizontal line": "\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae",
"Horizontal space": "\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1",
"Insert\/edit image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
"General": "\u0393\u03b5\u03bd\u03b9\u03ba\u03ac",
"Advanced": "\u0393\u03b9\u03b1 \u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2",
"Source": "\u03a0\u03b7\u03b3\u03ae",
"Border": "\u03a0\u03bb\u03b1\u03af\u03c3\u03b9\u03bf",
"Constrain proportions": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b1\u03bd\u03b1\u03bb\u03bf\u03b3\u03b9\u03ce\u03bd",
"Vertical space": "\u039a\u03ac\u03b8\u03b5\u03c4\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1",
"Image description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
"Style": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7",
"Dimensions": "\u0394\u03b9\u03b1\u03c3\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2",
"Insert image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
"Insert date\/time": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1\u03c2\/\u03ce\u03c1\u03b1\u03c2",
"Remove link": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
"Url": "URL",
"Text to display": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b3\u03b9\u03b1 \u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7",
"Anchors": "\u0386\u03b3\u03ba\u03c5\u03c1\u03b5\u03c2",
"Insert link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
"New window": "\u039d\u03ad\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf",
"None": "\u039a\u03b1\u03bc\u03af\u03b1",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03c0\u03bf\u03c5 \u03b5\u03b9\u03c3\u03ac\u03c7\u03b8\u03b7\u03ba\u03b5 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2. \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03cc\u03b8\u03b7\u03bc\u03b1 http:\/\/;",
"Target": "\u03a0\u03c1\u03bf\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03c0\u03bf\u03c5 \u03b5\u03b9\u03c3\u03ac\u03c7\u03b8\u03b7\u03ba\u03b5 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email. \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03cc\u03b8\u03b7\u03bc\u03b1 mailto:;",
"Insert\/edit link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
"Insert\/edit video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf",
"Poster": "\u0391\u03c6\u03af\u03c3\u03b1",
"Alternative source": "\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7",
"Paste your embed code below:": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03b5\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03ad\u03bd\u03bf \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9:",
"Insert video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b2\u03af\u03bd\u03c4\u03b5\u03bf",
"Embed": "\u0395\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7",
"Nonbreaking space": "\u039a\u03b5\u03bd\u03cc \u03c7\u03c9\u03c1\u03af\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae",
"Page break": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2",
"Paste as text": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03c9\u03c2 \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf",
"Preview": "\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7",
"Print": "\u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7",
"Save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7",
"Could not find the specified string.": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03cd\u03c1\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b1\u03bb\u03c6\u03b1\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03bf\u03cd.",
"Replace": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7",
"Next": "\u0395\u03c0\u03cc\u03bc.",
"Whole words": "\u039f\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03b5\u03c2 \u03bb\u03ad\u03be\u03b5\u03b9\u03c2",
"Find and replace": "\u0395\u03cd\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7",
"Replace with": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03bc\u03b5",
"Find": "\u0395\u03cd\u03c1\u03b5\u03c3\u03b7",
"Replace all": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03cc\u03bb\u03c9\u03bd",
"Match case": "\u03a4\u03b1\u03af\u03c1\u03b9\u03b1\u03c3\u03bc\u03b1 \u03c0\u03b5\u03b6\u03ce\u03bd\/\u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03c9\u03bd",
"Prev": "\u03a0\u03c1\u03bf\u03b7\u03b3.",
"Spellcheck": "\u039f\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03cc\u03c2 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 ",
"Finish": "\u03a4\u03ad\u03bb\u03bf\u03c2",
"Ignore all": "\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7 \u03cc\u03bb\u03c9\u03bd",
"Ignore": "\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7",
"Insert row before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03b5\u03c0\u03ac\u03bd\u03c9",
"Rows": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2",
"Height": "\u038e\u03c8\u03bf\u03c2",
"Paste row after": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03ba\u03ac\u03c4\u03c9",
"Alignment": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7",
"Column group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03c3\u03c4\u03b7\u03bb\u03ce\u03bd",
"Row": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae",
"Insert column before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
"Split cell": "\u0394\u03b9\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
"Cell padding": "\u0391\u03bd\u03b1\u03c0\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
"Cell spacing": "\u0391\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
"Row type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
"Insert table": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
"Body": "\u03a3\u03ce\u03bc\u03b1",
"Caption": "\u039b\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1",
"Footer": "\u03a5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf",
"Delete row": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
"Paste row before": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03b5\u03c0\u03ac\u03bd\u03c9",
"Scope": "\u0388\u03ba\u03c4\u03b1\u03c3\u03b7",
"Delete table": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
"Header cell": "\u039a\u03b5\u03bb\u03af-\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1",
"Column": "\u03a3\u03c4\u03ae\u03bb\u03b7",
"Cell": "\u039a\u03b5\u03bb\u03af",
"Header": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1",
"Cell type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
"Copy row": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
"Row properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
"Table properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
"Row group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd",
"Right": "\u0394\u03b5\u03be\u03b9\u03ac",
"Insert column after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03b4\u03b5\u03be\u03b9\u03ac",
"Cols": "\u03a3\u03c4\u03ae\u03bb\u03b5\u03c2",
"Insert row after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03ba\u03ac\u03c4\u03c9",
"Width": "\u03a0\u03bb\u03ac\u03c4\u03bf\u03c2",
"Cell properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
"Left": "\u0391\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
"Cut row": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
"Delete column": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2",
"Center": "\u039a\u03b5\u03bd\u03c4\u03c1\u03b1\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b7",
"Merge cells": "\u03a3\u03c5\u03b3\u03c7\u03ce\u03bd\u03b5\u03c5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
"Insert template": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5 ",
"Templates": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03b1",
"Background color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03c6\u03cc\u03bd\u03c4\u03bf\u03c5",
"Text color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 ",
"Show blocks": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bc\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd",
"Show invisible characters": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03c1\u03c5\u03c6\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd",
"Words: {0}": "\u039b\u03ad\u03be\u03b5\u03b9\u03c2: {0}",
"Insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae",
"File": "\u0391\u03c1\u03c7\u03b5\u03af\u03bf",
"Edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u0395\u03bc\u03c0\u03bb\u03bf\u03c5\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u039a\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-F9 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-F10 \u03b3\u03b9\u03b1  \u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-0 \u03b3\u03b9\u03b1 \u03b2\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1",
"Tools": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1",
"View": "\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae",
"Table": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2",
"Format": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7"
});editors/tinymce/langs/eu.js000064400000016676152177723720011775 0ustar00tinymce.addI18n('eu',{
"Cut": "Ebaki",
"Heading 5": "5 Izenburua",
"Header 2": "2 Goiburua",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Zure nabigatzaileak ez du arbela zuzenean erabiltzeko euskarririk. Mesedez erabili CTRL+X\/C\/V teklatuko lasterbideak.",
"Heading 4": "4 Izenburua",
"Div": "Div",
"Heading 2": "2 Izenburua",
"Paste": "Itsatsi",
"Close": "Itxi",
"Font Family": "Letra-tipo familia",
"Pre": "Pre",
"Align right": "Lerrokatu eskuinean",
"New document": "Dokumentu berria",
"Blockquote": "Blockquote",
"Numbered list": "Zerrenda  zenbakiduna",
"Heading 1": "1 Izenburua",
"Headings": "Izenburuak",
"Increase indent": "Handitu koska",
"Formats": "Formatuak",
"Headers": "Goiburuak",
"Select all": "Hautatu dena",
"Header 3": "3 Goiburua",
"Blocks": "Blokeak",
"Undo": "Desegin",
"Strikethrough": "Marratua",
"Bullet list": "Bulet zerrenda",
"Header 1": "1 Goiburua",
"Superscript": "Goi-indizea",
"Clear formatting": "Garbitu formatua",
"Font Sizes": "Letra-tamainak",
"Subscript": "Azpiindize",
"Header 6": "6 Goiburua",
"Redo": "Berregin",
"Paragraph": "Paragrafoa",
"Ok": "Ados",
"Bold": "Lodia",
"Code": "Kodea",
"Italic": "Etzana",
"Align center": "Lerrokatu erdian",
"Header 5": "5 Goiburua",
"Heading 6": "6 Izenburua",
"Heading 3": "3 Izenburua",
"Decrease indent": "Txikitu koska",
"Header 4": "4 Goiburua",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Itsatsi testu arrunt moduan dago orain. Edukiak testu arruntak bezala itsatsiko dira aukera hau desaktibatu arte.",
"Underline": "Azpimarratua",
"Cancel": "Utzi",
"Justify": "Justifikatuta",
"Inline": "Lerroan",
"Copy": "Kopiatu",
"Align left": "Lerrokatu ezkerrean",
"Visual aids": "Laguntza bisualak",
"Lower Greek": "Greko minuskula",
"Square": "Karratua",
"Default": "Lehenetsia",
"Lower Alpha": "Letra minuskula",
"Circle": "Zirkulua",
"Disc": "Diskoa",
"Upper Alpha": "Letra maiuskula",
"Upper Roman": "Erromatar maiuskula",
"Lower Roman": "Erromatar minuskula",
"Name": "Izena",
"Anchor": "Esteka",
"You have unsaved changes are you sure you want to navigate away?": "Gorde gabeko aldaketak dituzu, ziur zaude hemendik irten nahi duzula?",
"Restore last draft": "Leheneratu azken zirriborroa",
"Special character": "Karaktere berezia",
"Source code": "Iturburu-kodea",
"B": "B",
"R": "R",
"G": "G",
"Color": "Kolorea",
"Right to left": "Eskuinetik ezkerrera",
"Left to right": "Ezkerretik eskuinera",
"Emoticons": "Aurpegierak",
"Robots": "Robotak",
"Document properties": "Dokumentuaren propietateak",
"Title": "Titulua",
"Keywords": "Gako-hitzak",
"Encoding": "Kodeketa",
"Description": "Deskribapena",
"Author": "Egilea",
"Fullscreen": "Pantaila osoa",
"Horizontal line": "Marra horizontala",
"Horizontal space": "Tarte horizontala",
"Insert\/edit image": "Txertatu\/editatu irudia",
"General": "Orokorra",
"Advanced": "Aurreratua",
"Source": "Iturburua",
"Border": "Ertza",
"Constrain proportions": "Mugatu proportzioak",
"Vertical space": "Tarte bertikala",
"Image description": "Irudiaren deskribapena",
"Style": "Estiloa",
"Dimensions": "Neurriak",
"Insert image": "Txertatu irudia",
"Zoom in": "Handiagotu",
"Contrast": "Kontrastea",
"Back": "Atzera",
"Gamma": "Gamma",
"Flip horizontally": "Irauli horizontalki",
"Resize": "Aldatu tamaina",
"Sharpen": "Araztu",
"Zoom out": "Txikiagotu",
"Image options": "Irudiaren aukerak",
"Apply": "Aplikatu",
"Brightness": "Distira",
"Rotate clockwise": "Biratu erlojuaren noranzkoan",
"Rotate counterclockwise": "Biratu erlojuaren aurkako noranzkoan",
"Edit image": "Editatu irudia",
"Color levels": "Kolore-mailak",
"Crop": "Moztu",
"Orientation": "Orientazioa",
"Flip vertically": "Irauli bertikalki",
"Invert": "Alderantzikatu",
"Insert date\/time": "Txertatu data\/ordua",
"Remove link": "Kendu esteka",
"Url": "Url",
"Text to display": "Bistaratzeko testua",
"Anchors": "Estekak",
"Insert link": "Txertatu esteka",
"New window": "Leiho berria",
"None": "Bat ere ez",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Sartu duzun URL-ak kanpoko esteka dirudi. Nahi duzu dagokion http:\/\/ aurrizkia gehitzea?",
"Target": "Helburua",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Sartu duzun URL-ak posta helbide elektronikoa dirudi. Nahi duzu dagokion mailto: aurrizkia gehitzea?",
"Insert\/edit link": "Txertatu\/editatu esteka",
"Insert\/edit video": "Txertatu\/editatu bideoa",
"Poster": "Posterra",
"Alternative source": "Ordezko iturburua",
"Paste your embed code below:": "Itsatsi hemen zure kapsulatze-kodea:",
"Insert video": "Txertatu bideoa",
"Embed": "Kapsulatu",
"Nonbreaking space": "Zuriune zatiezina",
"Page break": "Orrialde-jauzia",
"Paste as text": "Itsatsi testu gisa",
"Preview": "Aurrebista",
"Print": "Inprimatu",
"Save": "Gorde",
"Could not find the specified string.": "Ezin izan da zehaztutako katea aurkitu.",
"Replace": "Ordeztu",
"Next": "Hurrengoa",
"Whole words": "hitz osoak",
"Find and replace": "Bilatu eta ordeztu",
"Replace with": "Ordeztu honekin",
"Find": "Bilatu",
"Replace all": "Ordeztu dena",
"Match case": "Maiuskula\/minuskula",
"Prev": "Aurrekoa",
"Spellcheck": "Ortografia-egiaztapena",
"Finish": "Amaitu",
"Ignore all": "Ez ikusi egin dena",
"Ignore": "Ez ikusi egin",
"Add to Dictionary": "Gehitu hiztegian",
"Insert row before": "Txertatu errenkada aurretik",
"Rows": "Errenkadak",
"Height": "Altuera",
"Paste row after": "Itsatsi errenkada ondoren",
"Alignment": "Lerrokatzea",
"Border color": "Ertzaren kolorea",
"Column group": "Zutabe taldea",
"Row": "Errenkada",
"Insert column before": "Txertatu zutabea aurretik",
"Split cell": "Zatitu gelaxka",
"Cell padding": "Gelaxka-betegarria",
"Cell spacing": "Gelaxka-bitartea",
"Row type": "Lerro mota",
"Insert table": "Txertatu taula",
"Body": "Gorputza",
"Caption": "Epigrafea",
"Footer": "Oina",
"Delete row": "Ezabatu errenkada",
"Paste row before": "Itsatsi errenkada aurretik",
"Scope": "Esparrua",
"Delete table": "Ezabatu taula",
"H Align": "Lerrokatze horizontala",
"Top": "Goian",
"Header cell": "Goiburu-gelaxka",
"Column": "Zutabea",
"Row group": "Lerro taldea",
"Cell": "Gelaxka",
"Middle": "Erdian",
"Cell type": "Gelaxka mota",
"Copy row": "Kopiatu errenkada",
"Row properties": "Errenkadaren propietateak",
"Table properties": "Taularen propietateak",
"Bottom": "Behean",
"V Align": "Lerrokatze bertikala",
"Header": "Goiburua",
"Right": "Eskuina",
"Insert column after": "Txertatu zutabea ondoren",
"Cols": "Zutabeak",
"Insert row after": "Txertatu errenkada ondoren",
"Width": "Zabalera",
"Cell properties": "Gelaxkaren propietateak",
"Left": "Ezkerra",
"Cut row": "Ebaki errenkada",
"Delete column": "Ezabatu zutabea",
"Center": "Erdia",
"Merge cells": "Konbinatu gelaxkak",
"Insert template": "Txertatu txantiloia",
"Templates": "Txantiloiak",
"Background color": "Atzeko planoaren kolorea",
"Custom...": "Pertsonalizatua...",
"Custom color": "Kolore pertsonalizatua",
"No color": "Kolorerik gabe",
"Text color": "Testuaren kolorea",
"Show blocks": "Erakutsi blokeak",
"Show invisible characters": "Erakutsi karaktere ikusezinak",
"Words: {0}": "Hitzak: {0}",
"Insert": "Txertatu",
"File": "Fitxategia",
"Edit": "Editatu",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Testu aberastuaren area. Sakatu ALT-F9 menurako. Sakatu ALT-F10 tresna-barrarako. Sakatu ALT-0 laguntzarako",
"Tools": "Tresnak",
"View": "Ikusi",
"Table": "Taula",
"Format": "Formatua"
});
editors/tinymce/templates/snippet1.html000064400000000050152177723720014324 0ustar00This is just some <strong>code</strong>.editors/tinymce/templates/layout1.html000064400000000315152177723720014163 0ustar00<table border="1">
	<thead>
		<tr>
			<td>Column 1</td>
			<td>Column 2</td>
		</tr>
	</thead>

	<tbody>
		<tr>
			<td>Username: {$username}</td>
			<td>Staffid: {$staffid}</td>
		</tr>
	</tbody>
</table>
editors/tinymce/themes/modern/theme.min.js000064400000031513152177723720014700 0ustar00!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l<a;++l)s[l]=r(i[l]);var c=o.apply(null,s);if(void 0===c)throw"module ["+t+"] returned undefined";n.instance=c},n=function(t,n,r){if("string"!=typeof t)throw"module id must be a string";if(void 0===n)throw"no dependencies for "+t;if(void 0===r)throw"no definition function for "+t;e[t]={deps:n,defn:r,instance:void 0}},r=function(n){var r=e[n];if(void 0===r)throw"module ["+n+"] was undefined";return void 0===r.instance&&t(n),r.instance},i=function(e,t){for(var n=e.length,i=new Array(n),o=0;o<n;++o)i[o]=r(e[o]);t.apply(null,i)},o={};o.bolt={module:{api:{define:n,require:i,demand:r}}};var a=n,s=function(e,t){a(e,[],function(){return t})};s("1",tinymce.Env),s("2",tinymce.EditorManager),s("3",tinymce.ThemeManager),s("8",tinymce.util.Tools),s("9",tinymce.ui.Factory),s("a",tinymce.DOM),a("b",["8","9"],function(e,t){var n="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",r=function(n,r,i){var o,a=[];if(r)return e.each(r.split(/[ ,]/),function(e){var r,s=function(){var t=n.selection;e.settings.stateSelector&&t.selectorChanged(e.settings.stateSelector,function(t){e.active(t)},!0),e.settings.disabledStateSelector&&t.selectorChanged(e.settings.disabledStateSelector,function(t){e.disabled(t)})};"|"==e?o=null:t.has(e)?(e={type:e,size:i},a.push(e),o=null):(o||(o={type:"buttongroup",items:[]},a.push(o)),n.buttons[e]&&(r=e,e=n.buttons[r],"function"==typeof e&&(e=e()),e.type=e.type||"button",e.size=i,e=t.create(e),o.items.push(e),n.initialized?s():n.on("init",s)))}),{type:"toolbar",layout:"flow",items:a}},i=function(t,i){var o=[],a=t.settings,s=function(e){if(e)return o.push(r(t,e,i)),!0};if(e.isArray(a.toolbar)){if(0===a.toolbar.length)return;e.each(a.toolbar,function(e,t){a["toolbar"+(t+1)]=e}),delete a.toolbar}for(var l=1;l<10&&s(a["toolbar"+l]);l++);if(o.length||a.toolbar===!1||s(a.toolbar||n),o.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:o}};return{createToolbar:r,createToolbars:i}}),a("c",["8"],function(e){var t={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},n=function(e,t){var n;return"|"==t?{text:"|"}:n=e[t]},r=function(r,i,o){var a,s,l,c,u;if(u=e.makeMap((i.removed_menuitems||"").split(/[ ,]/)),i.menu?(s=i.menu[o],c=!0):s=t[o],s){a={text:s.title},l=[],e.each((s.items||"").split(/[ ,]/),function(e){var t=n(r,e);t&&!u[e]&&l.push(n(r,e))}),c||e.each(r,function(e){e.context==o&&("before"==e.separator&&l.push({text:"|"}),e.prependToContext?l.unshift(e):l.push(e),"after"==e.separator&&l.push({text:"|"}))});for(var d=0;d<l.length;d++)"|"==l[d].text&&(0!==d&&d!=l.length-1||l.splice(d,1));if(a.menu=l,!a.menu.length)return null}return a},i=function(e){var n,i=[],o=e.settings,a=[];if(o.menu)for(n in o.menu)a.push(n);else for(n in t)a.push(n);for(var s="string"==typeof o.menubar?o.menubar.split(/[ ,]/):a,l=0;l<s.length;l++){var c=s[l];c=r(e.menuItems,e.settings,c),c&&i.push(c)}return i};return{createMenuButtons:i}}),s("j",tinymce.util.Delay),s("k",tinymce.geom.Rect),a("d",["a","8","j","b","9","k"],function(e,t,n,r,i,o){var a=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}},s=function(e){t.each(e.contextToolbars,function(e){e.panel&&e.panel.hide()})},l=function(e,t){e.moveTo(t.left,t.top)},c=function(e,n,r){n=n?n.substr(0,2):"",t.each({t:"down",b:"up"},function(t,i){e.classes.toggle("arrow-"+t,r(i,n.substr(0,1)))}),t.each({l:"left",r:"right"},function(t,i){e.classes.toggle("arrow-"+t,r(i,n.substr(1,1)))})},u=function(e,t,n,r,i,o){return o=a({x:t,y:n,w:o.w,h:o.h}),e&&(o=e({elementRect:a(r),contentAreaRect:a(i),panelRect:o})),o},d=function(a){var d,f=a.settings,p=function(){return a.contextToolbars||[]},m=function(t){var n,r,i;return n=e.getPos(a.getContentAreaContainer()),r=a.dom.getRect(t),i=a.dom.getRoot(),"BODY"===i.nodeName&&(r.x-=i.ownerDocument.documentElement.scrollLeft||i.scrollLeft,r.y-=i.ownerDocument.documentElement.scrollTop||i.scrollTop),r.x+=n.x,r.y+=n.y,r},g=function(t,n){var r,i,d,p,g,h,v,b,y=f.inline_toolbar_position_handler;if(!a.removed){if(!t||!t.toolbar.panel)return void s(a);v=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],g=t.toolbar.panel,n&&g.show(),d=m(t.element),i=e.getRect(g.getEl()),p=e.getRect(a.getContentAreaContainer()||a.getBody()),b=25,"inline"!==e.getStyle(t.element,"display",!0)&&(d.w=t.element.clientWidth,d.h=t.element.clientHeight),a.inline||(p.w=a.getDoc().documentElement.offsetWidth),a.selection.controlSelection.isResizable(t.element)&&d.w<b&&(d=o.inflate(d,0,8)),r=o.findBestRelativePosition(i,d,p,v),d=o.clamp(d,p),r?(h=o.relativePosition(i,d,r),l(g,u(y,h.x,h.y,d,p,i))):(p.h+=i.h,d=o.intersect(p,d),d?(r=o.findBestRelativePosition(i,d,p,["bc-tc","bl-tl","br-tr"]),r?(h=o.relativePosition(i,d,r),l(g,u(y,h.x,h.y,d,p,i))):l(g,u(y,d.x,d.y,d,p,i))):g.hide()),c(g,r,function(e,t){return e===t})}},h=function(e){return function(){var t=function(){a.selection&&g(x(a.selection.getNode()),e)};n.requestAnimationFrame(t)}},v=function(){d||(d=a.selection.getScrollContainer()||a.getWin(),e.bind(d,"scroll",h(!0)),a.on("remove",function(){e.unbind(d,"scroll")}))},b=function(e){var t;return e.toolbar.panel?(e.toolbar.panel.show(),void g(e)):(v(),t=i.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:r.createToolbar(a,e.toolbar.items),oncancel:function(){a.focus()}}),e.toolbar.panel=t,t.renderTo(document.body).reflow(),void g(e))},y=function(){t.each(p(),function(e){e.panel&&e.panel.hide()})},x=function(e){var t,n,r,i=p();for(r=a.$(e).parents().add(e),t=r.length-1;t>=0;t--)for(n=i.length-1;n>=0;n--)if(i[n].predicate(r[t]))return{toolbar:i[n],element:r[t]};return null};a.on("click keyup setContent ObjectResized",function(e){("setcontent"!==e.type||e.selection)&&n.setEditorTimeout(a,function(){var e;e=x(a.selection.getNode()),e?(y(),b(e)):y()})}),a.on("blur hide contextmenu",y),a.on("ObjectResizeStart",function(){var e=x(a.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.hide()}),a.on("ResizeEditor ResizeWindow",h(!0)),a.on("nodeChange",h(!1)),a.on("remove",function(){t.each(p(),function(e){e.panel&&e.panel.remove()}),a.contextToolbars={}}),a.shortcuts.add("ctrl+F9","",function(){var e=x(a.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.items()[0].focus()})};return{addContextualToolbars:d}}),a("e",[],function(){var e=function(e,t){return function(){var n=e.find(t)[0];n&&n.focus(!0)}},t=function(t,n){t.shortcuts.add("Alt+F9","",e(n,"menubar")),t.shortcuts.add("Alt+F10,F10","",e(n,"toolbar")),t.shortcuts.add("Alt+F11","",e(n,"elementpath")),n.on("cancel",function(){t.focus()})};return{addKeys:t}}),a("f",["8","9","1"],function(e,t,n){var r=function(e){return{element:function(){return e}}},i=function(e,t,n){var i=e.settings[n];i&&i(r(t.getEl("body")))},o=function(t,n,r){e.each(r,function(e){var r=n.items().filter("#"+e.name)[0];r&&r.visible()&&e.name!==t&&(i(e,r,"onhide"),r.visible(!1))})},a=function(e){e.items().each(function(e){e.active(!1)})},s=function(t,n){return e.grep(t,function(e){return e.name===n})[0]},l=function(e,n,r){return function(l){var c=l.control,u=c.parents().filter("panel")[0],d=u.find("#"+n)[0],f=s(r,n);o(n,u,r),a(c.parent()),d&&d.visible()?(i(f,d,"onhide"),d.hide(),c.active(!1)):(d?(d.show(),i(f,d,"onshow")):(d=t.create({type:"container",name:n,layout:"stack",classes:"sidebar-panel",html:""}),u.prepend(d),i(f,d,"onrender"),i(f,d,"onshow")),c.active(!0)),e.fire("ResizeEditor")}},c=function(){return!n.ie||n.ie>=11},u=function(e){return!(!c()||!e.sidebars)&&e.sidebars.length>0},d=function(t){var n=e.map(t.sidebars,function(e){var n=e.settings;return{type:"button",icon:n.icon,image:n.image,tooltip:n.tooltip,onclick:l(t,e.name,t.sidebars)}});return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:n}]}};return{hasSidebar:u,createSidebar:d}}),a("g",[],function(){var e=function(e){var t=function(){e._skinLoaded=!0,e.fire("SkinLoaded")};return function(){e.initialized?t():e.on("init",t)}};return{fireSkinLoaded:e}}),a("6",["a"],function(e){var t=function(e){return{width:e.clientWidth,height:e.clientHeight}},n=function(n,r,i){var o,a,s,l,c=n.settings;o=n.getContainer(),a=n.getContentAreaContainer().firstChild,s=t(o),l=t(a),null!==r&&(r=Math.max(c.min_width||100,r),r=Math.min(c.max_width||65535,r),e.setStyle(o,"width",r+(s.width-l.width)),e.setStyle(a,"width",r)),i=Math.max(c.min_height||100,i),i=Math.min(c.max_height||65535,i),e.setStyle(a,"height",i),n.fire("ResizeEditor")},r=function(e,t,r){var i=e.getContentAreaContainer();n(e,i.clientWidth+t,i.clientHeight+r)};return{resizeTo:n,resizeBy:r}}),a("4",["8","9","a","b","c","d","e","f","g","6"],function(e,t,n,r,i,o,a,s,l,c){var u=function(e){return function(t){e.find("*").disabled("readonly"===t.mode)}},d=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},f=function(e){return{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[d("0"),s.createSidebar(e)]}},p=function(e,p,m){var g,h,v,b=e.settings;return m.skinUiCss&&n.styleSheetLoader.load(m.skinUiCss,l.fireSkinLoaded(e)),g=p.panel=t.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[b.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i.createMenuButtons(e)},r.createToolbars(e,b.toolbar_items_size),s.hasSidebar(e)?f(e):d("1 0 0 0")]}),b.resize!==!1&&(h={type:"resizehandle",direction:b.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;v={width:t.clientWidth,height:t.clientHeight}},onResize:function(t){"both"===b.resize?c.resizeTo(e,v.width+t.deltaX,v.height+t.deltaY):c.resizeTo(e,null,v.height+t.deltaY)}}),b.statusbar!==!1&&g.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:e},h]}),e.fire("BeforeRenderUI"),e.on("SwitchMode",u(g)),g.renderBefore(m.targetNode).reflow(),b.readonly&&e.setMode("readonly"),b.width&&n.setStyle(g.getEl(),"width",b.width),e.on("remove",function(){g.remove(),g=null}),a.addKeys(e,g),o.addContextualToolbars(e),{iframeContainer:g.find("#iframe")[0].getEl(),editorContainer:g.getEl()}};return{render:p}}),s("h",tinymce.ui.FloatPanel),a("5",["8","9","a","h","b","c","d","e","g"],function(e,t,n,r,i,o,a,s,l){var c=function(e,c,u){var d,f,p=e.settings;p.fixed_toolbar_container&&(f=n.select(p.fixed_toolbar_container)[0]);var m=function(){if(d&&d.moveRel&&d.visible()&&!d._fixed){var t=e.selection.getScrollContainer(),r=e.getBody(),i=0,o=0;if(t){var a=n.getPos(r),s=n.getPos(t);i=Math.max(0,s.x-a.x),o=Math.max(0,s.y-a.y)}d.fixed(!1).moveRel(r,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(i,o)}},g=function(){d&&(d.show(),m(),n.addClass(e.getBody(),"mce-edit-focus"))},h=function(){d&&(d.hide(),r.hideAll(),n.removeClass(e.getBody(),"mce-edit-focus"))},v=function(){return d?void(d.visible()||g()):(d=c.panel=t.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[p.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:o.createMenuButtons(e)},i.createToolbars(e,p.toolbar_items_size)]}),e.fire("BeforeRenderUI"),d.renderTo(f||document.body).reflow(),s.addKeys(e,d),g(),a.addContextualToolbars(e),e.on("nodeChange",m),e.on("activate",g),e.on("deactivate",h),void e.nodeChanged())};return p.content_editable=!0,e.on("focus",function(){u.skinUiCss?n.styleSheetLoader.load(u.skinUiCss,v,v):v()}),e.on("blur hide",h),e.on("remove",function(){d&&(d.remove(),d=null)}),u.skinUiCss&&n.styleSheetLoader.load(u.skinUiCss,l.fireSkinLoaded(e)),{}};return{render:c}}),s("i",tinymce.ui.Throbber),a("7",["i"],function(e){var t=function(t,n){var r;t.on("ProgressState",function(t){r=r||new e(n.panel.getEl("body")),t.state?r.show(t.time):r.hide()})};return{setup:t}}),a("0",["1","2","3","4","5","6","7"],function(e,t,n,r,i,o,a){var s=function(n,o,s){var l=n.settings,c=l.skin!==!1&&(l.skin||"lightgray");if(c){var u=l.skin_url;u=u?n.documentBaseURI.toAbsolute(u):t.baseURL+"/skins/"+c,e.documentMode<=7?s.skinUiCss=u+"/skin.ie7.min.css":s.skinUiCss=u+"/skin.min.css",n.contentCSS.push(u+"/content"+(n.inline?".inline":"")+".min.css")}return a.setup(n,o),l.inline?i.render(n,o,s):r.render(n,o,s)};return n.add("modern",function(e){return{renderUI:function(t){return s(e,this,t)},resizeTo:function(t,n){return o.resizeTo(e,t,n)},resizeBy:function(t,n){return o.resizeBy(e,t,n)}}}),function(){}}),r("0")()}();editors/tinymce/license.txt000064400000063473152177723720012102 0ustar00		  GNU LESSER GENERAL PUBLIC LICENSE
		       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

		  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.
  
  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

			    NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

		     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


editors/tinymce/skins/lightgray/skin.min.css000064400000112530152177723720015265 0ustar00.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#D9D9D9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#3498db}.mce-croprect-handle-move:focus{outline:1px solid #3498db}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:rgba(0,0,0,0.2);border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:rgba(0,0,0,0.2);border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#f0f0f0;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#f0f0f0;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:rgba(0,0,0,0.2);border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#f0f0f0;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:rgba(0,0,0,0.2);border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#f0f0f0;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:#fff;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;top:0;left:0;background:#FFF;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#858585}.mce-close:hover i{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#F0F0F0;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#CCCCCC;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333333}.mce-notification .mce-progress .mce-bar-container{border-color:#CCCCCC}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #ccc}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:white}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #AAA;background:#EEE;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #BBB;background:#DDD;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{background:#BBB}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#FFF}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#ffffff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}editors/tinymce/skins/lightgray/content.inline.min.css000064400000005321152177723720017247 0ustar00.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1}editors/tinymce/skins/lightgray/skin.ie7.min.css000064400000104130152177723720015745 0ustar00.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#D9D9D9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#3498db}.mce-croprect-handle-move:focus{outline:1px solid #3498db}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:rgba(0,0,0,0.2);border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:rgba(0,0,0,0.2);border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#f0f0f0;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#f0f0f0;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:rgba(0,0,0,0.2);border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#f0f0f0;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:rgba(0,0,0,0.2);border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#f0f0f0;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;top:0;left:0;background:#FFF;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#858585}.mce-close:hover i{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#F0F0F0;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#CCCCCC;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333333}.mce-notification .mce-progress .mce-bar-container{border-color:#CCCCCC}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #ccc}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:white}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #AAA;background:#EEE;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #BBB;background:#DDD;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{background:#BBB}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#FFF}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#ffffff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + '&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-alignnone{-ie7-icon:"\e003"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-rotateleft{-ie7-icon:"\eaa8"}.mce-i-rotateright{-ie7-icon:"\eaa9"}.mce-i-crop{-ie7-icon:"\ee78"}.mce-i-editimage{-ie7-icon:"\e914"}.mce-i-options{-ie7-icon:"\ec6a"}.mce-i-flipv{-ie7-icon:"\eaaa"}.mce-i-fliph{-ie7-icon:"\eaac"}.mce-i-zoomin{-ie7-icon:"\eb35"}.mce-i-zoomout{-ie7-icon:"\eb36"}.mce-i-sun{-ie7-icon:"\eccc"}.mce-i-moon{-ie7-icon:"\eccd"}.mce-i-arrowleft{-ie7-icon:"\edc0"}.mce-i-arrowright{-ie7-icon:"\edb8"}.mce-i-drop{-ie7-icon:"\e934"}.mce-i-contrast{-ie7-icon:"\ecd4"}.mce-i-sharpen{-ie7-icon:"\eba7"}.mce-i-palette{-ie7-icon:"\e92a"}.mce-i-resize2{-ie7-icon:"\edf9"}.mce-i-orientation{-ie7-icon:"\e601"}.mce-i-invert{-ie7-icon:"\e602"}.mce-i-gamma{-ie7-icon:"\e600"}.mce-i-remove{-ie7-icon:"\ed6a"}.mce-i-codesample{-ie7-icon:"\e603"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}editors/tinymce/skins/lightgray/content.min.css000064400000006226152177723720015777 0ustar00html{height:100%;cursor:text}body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1}editors/tinymce/skins/lightgray/img/trans.gif000064400000000053152177723720015413 0ustar00GIF89a�!�,D;editors/tinymce/skins/lightgray/img/anchor.gif000064400000000065152177723720015541 0ustar00GIF89a����!�,�a�����t4V;editors/tinymce/skins/lightgray/img/object.gif000064400000000230152177723720015527 0ustar00GIF89a
����???ooo���WWW������������������򝝝���333!�,
E��I�{�����Y�5Oi�#E
ȩ�1��GJS��};������e|����+%4�Ht�,�gLnD;editors/tinymce/skins/lightgray/img/loader.gif000064400000005060152177723720015535 0ustar00GIF89a���������Ҽ����������ܸ����������ت����������������������666&&&PPP���ppp���VVV���hhhFFF�����HHH222!�NETSCAPE2.0!�Created with ajaxload.info!�	
,�@�pH�b�$Ĩtx@$�W@e��8>S���-k�\�'<\0�f4�`�
/yXg{wQ
o	�X
h�
Dd�	a�eTy�vkyBVevCp�y��CyFp�QpGpP�CpHp�ͫpIp��pJ�����e��
֝X��ϧ���e��p�X����%䀪ia6�Ž�'_S$�jt�EY�<��M��zh��*AY ���I8�ظq���J6c����N8/��f�s��	!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����f!Q
mx[

[ Dbd	jx��B�iti��BV[tC�f��C�c��C�gc�D�c���c�ټ����[��cL��
cM��cN��[O��fPba��lB�-N���ƌ!��t�
"��`Q��$}`����̙bJ,{԰q	GÈ�ܠ�V��.�xI���:A!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����fusD
mx[

[eiCbd	j�XT��jif^V[tC�[f��CfFc�Q�[Gc�DcHc��
cIc��BcJ���ش�������X������	�c���ŪXX���!F�J�ϗ�t�4q���C
���hQ�G��x�!J@cPJ
��8*��Q�&9!b2��X��c�p�u$ɒ&O�!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����fusD
mx[

[eiCbd	j�XT��jif^V[tC�[f��CfFc�Q�[Gc�DcHc��
cIc��BcJ���؍����[M���[N��XO�ӺcP�X���c����WP��Fӗ
:TjH�7X-�u!��
^��@ICb��"C����dJ� �
�eJ�~Uc3#�A���	��	!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����fusD
mx[

[eiCbd	j�XT��jif^V[tC�[f��CfFc�Q�[Gc�DcHc��
cIc��BcJ���؍����[M���[N��XO�ӺcP�X���c����cP���B�t�t%ԐB+HԐ�G�$]��� C#�K��(Gn٣�� Un���d�������NC���%M��	!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����fusD
mx[

[eiCbd	j�XT��jif^V[tC�[f��CfFc�Q�[Gc�DcHc��
cIc��BcJ����P��[����[���[b��X�׿�c�ph��/Xcfp��+ScP}`�M�&N����6@�5z���(B�RR�AR�i�e�63��yx��4ƪ���
�$J�8�%!�	
,�@�pH�P Ĩtx@$�W��8L�
��'��p�0g�	�B
h�ew����cusD 

[eiB��Zjx[C���jif^�tC�[�J�Cf	��D�[���Dc��C
c�Pڏc���c���c���[Mc�Ԥc��XOf>I6��-&(�5f���	��1dx%�O�mmFaY��Q$"-EY��E2
I���=j�Ԅ#�V7/�H�"��EmF�(a�$ܗ !�	
,�@�pH|$0
�P ĨT�qp*X, ��"ө�-o�]�"<d��f4��`B��/�yYg{	
uD
\eP
hgkC�a�hC{vk{`r�B�h{�C{r�D�h�h�CF�r��
rr�Br���h���hL���hMr���i�h���]O���r��BS+X.9�����+9�8c� 0Q�%85D�.(�6��%.����Ȑ�Ca�,�����B����{�$;0��/�z5۶��;A;editors/tinymce/skins/lightgray/fonts/tinymce.woff000064400000042114152177723720016511 0ustar00wOFFDLDOS/2``�cmaph44�f��gasp�glyf�<�<�}
�=head?866/hhea?p$$�6hmtx?�����locaA����e�TmaxpB�  ��nameB����TpostD,  ��������3	@�x���@�@ B@ �(�5���+�������(�*�-�5�=�A�a���6��j�����j���x���� ��*��
�*�������&�*�-�0�9�?�a���5��j�����j���x������  98IKIDB<431/,+��=�������797979���!!!3#!3!3��������@@K5�������@5@����1'.#!"3!2654&#5#!"&5463!23��P!� !//!�!/!E��	� 		����!/!��!//!`!P���		`	����/75'.'7'./#'737>77'>7'#'573�hq�+�+�qh��hq�+�+�qh�������p�+�qh��hq�+�+�qh��hq�+ ������!!!!!!!!!!�����������@���@����!!!!!!!!!!�������������@���@����!!!!!!!!!!��������������@���@����!!!!!!!!!!�������@�@�@�@�m����2Vb�%.+'>4&'	#"3267>'732676&'#"&'.5467>7>7>327"&54632#"&'.'.'.5467>32{"T(@������@(T"=3; (S#("AA"(#S( ;3=���%55%%552�"#@DHD���DHD�@#"=�3#"(c.BB.c("#3�=�

�5&%55%&5�

@���&*-354&+54&+"#"3!!781381#55!537#!!@
�&�&�

 ��������e�����
@&&@
��
��@@�@@�[e@�@���)7ES!!%!!#!!!#"3!26533!2654&#"&546;2#"&546;2#"&546;2@������x8���8**0*�*0**�����@

@
o���@@@���*��**x��**0*��



�



�@



���#/!!!!!!4632#"&4632#"&4632#"&������������K55KK55KK55KK55KK55KK55K������@5KK55KK��5KK55KK��5KK55KK@���)%!!!!!!'#5#53#575#53#535#535#5�����������@@@�����������������@��2@�<2@��@@@@@�!!!!!!!!!!����������������@�@�@�@����!!!!!!!!!!%�����������������@�@�@�@�����@=2#".5'4>3">!2#".5'4>3">�.R=##=R..R=#Fz�]@u-	I.R=##=R..R=#Fz�]@u-	#=R..R=##=R. ]�zF�0.
#=R..R=##=R. ]�zF�0.
@����
>.	6�+&8�������FO@M��e�����������5	5&&>@�����8&+iOF��������e��Mr�.����
@r67>'&7#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64@
'<

'���
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�


	c
		
�	
A19�.
<'

��'
	�
		
c	

	�	
A�.�-c�*u.Ac�*u.A
	�
		
c	

	�	
A�-����2eimquy}#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64''773#3#'3#3#�
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�	

	c
		
�	
A19�..��.�i@@�����.��@@��
	�
		
c	

	�	
A�-�-d�*u.Ac�*u.A
	�
		
c	

	�	
A�-�-��.��@��.�)��@���@�			!�@@@����@�����%@!!!4632#"&!7@����8((88((8����@��@���(88((88�H��`	@@"!#535#535#53!!#535#535#53%��������@����������@��@����������������������8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P@���	3	!#	3@�����������6�J+6@J"32>54.#"&'.5467>32'>77.'#17'P�i<<i�PP�i<<i�|)i::i)(,,()i::i)(,,�R+%C:0V`<.V0:C%+<`��@�(�<i�PP�i<<i�PP�i<��(,,()i::i)(,,()i::iV0:C%+<`�+%C:0V`6�
�2v� Il"32>7.2#"&546#"&'.'.'>7>732654&'.#">7>325.'O��p,,p��OO��p,,p���%%%%a? "D##D" ?/U##U/2pPPp2/U##U()UWZ..ZWU),R%*a5&MPS**SPM&5a*%R,�$C_::_C$$C_::_C$�%%%%��A((A
6PppP6
A((A�9!m,I

I,m!9��0%7!3#33#B::r��r�H:��������
�#'!5!!5!5#!5!!%!!5!!!!5!����@����������������@������������������!!������7!!!!''7'77@�����@U�|���>��>��>��@���@ ����>��>��>������%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n���������3%!7!5>54.#"!!5.54>32�@��1R<!7`�II�`7!<R1��@FvU/P��jj��P/UvF@���H_p>P�g;;g�P>p_H��!Sl�G]�zFFz�]G�lS���'3?S"32>54.".54>32#"&54632#"&546322>7#".'j��PP��jj��PP��jY�uDDu�YY�uDDu��%%%%�%%%%�5aRB8Um==mU8BRa�P��jj��PP��jj��P�PDu�YY�uDDu�YY�uDp%%%%%%%%��"-@oQ//Qo@-"�'!!!";!32654&!!%#"&54632����&&��&&�����@&��&�&@&��@����
''7''!7!7'7!7��lԊ�v�lԊ�������l�Ԋ���������lԊ��lԊ��������llԊ���@����
048>334&+"33#%5#";5#54&+326=4&#26#535#53	7��@&�&@��@�&&���&��&@�����`�R�`���&&�����@&��&@@``&�@&`&&ƀ@���@ F�.���#53533##%!3!�������@����������������#'/37?CH3#73#%#535#53#73#%3#33#73#%#535#53#73#%3#3!!1!������@��@�@�������@��@�����@��@�@�������@������@�@@@@�@�@�@@@��@@��@@@@�@�@�@@@��@@@�������#3#73#%3#73#%3#!3!!#!������������� ��@ ���@@@@@@@@@@�@��������@�����%+2#5267>54&'.#"33>!3@]�zFFz�]G�225522�GG�2&2	���Nv����Fz�]]�zF`522�GG�22552&_4�Q�g;���@��@�$>54.#!!2>54&32+#32� (F]5���5]F(D��e*<<)f���,>>�"T/5]F(��(F]5FtFK55K��K55K���#3!53#5������@�@��@�@@@�@�3#".533267>5!!��2WuBBuW2�I((I������`<iN--Ni<��`88����8<#"&'.5332654&#"&'.5467>32#4&#"32%!!�0550,q>>q,05�rNNrrN>q,0550,q>>q,05�rNNrrN>q,�%��$b55b$!$$!$b54LL44L$!$b55b$!$$!$b54LL44L$!@���!####".54>�����.R=##=R�����#=R..R=#@��!####".54>
�����.R=##=R��������#=R..R=#���� ��!####".54>-����.R=##=R������#=R..R=#�������	#5'!!!'##%!3!!5333@���@���ee��ee��@��������@���@eeee���@�����@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@����	''� ������������5A!'!!3!!.54>32'>54&#"3267?6&%"&54632��` ��@�8K-�@�'B0+Jc88cJ+c�
pPPppP2�3��3II33II@@�����3BQ,8cJ++Jc8 ү2PppPPp
�3�I33II33I@���*59=373#35#335'54&+54&+"#"3!!81381#55!!!  @0�0@  @
�&�&�

 ���������@�@@@���
@&&@
��
��@@�@@�@@���"&.'.#"#5>723#5!!!�	&		z�]�W�@���@PF

��s�*�����@�0��}:)%!!!!>2&'>7>&'.s��CI�L���B���BBBBB.mv{;.`_X%8<04-t~8V��P�G�GBBBBB���B-<
3%9���4-0&)V'-����+i'#".'81<5<51045041>7'7818181<1.10>7>71099>581<5<5}Z@JQ+N�i>%�-�:c-x�u%;K%F
<<)?,MY0";f�P'OMJ#�-���d0w�k :R1F&BB&4c^W'MG$�� `%KWj546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==�=+*;>%ZX+=�!!5!5#!55!!!!5!����@��������������������������	�#!!5!5#!5!!%!!5!!!!5!����@�������������������������������@�!!5!5!5!!5!5!5!!5!5!5!5!5!�@��@��@��������@��@��@�@��@�@�@��!!!5#!5!!5!!!��@���@��������������@�������������%5#53533#!!!!5!5!5!5!5!@��V���j����@@�����Z��Z��������@�@�@��3##5#535%!!5!5!5!5!5!!!���V�����@������@��Z��Z��������@�@��@��##5#53533!!5!!5!!5!5!!��F��F��M�@�@�@�������C��@����������=��3533##5#!!!%!!!!5!5!M�F��F��������������C��C������������=��'!!!!5!5!5!5!5!!!5!5!''7'77���@������@�`=��=��=��=���������@�@��@�@���=��=��=��=��!!!!''7'77�=��}�`��`��`��`�����@���`��`��`��`�@�!!5!5!5!5!5!!5!5!5!5!5!�����@������@��@�@��@�@�@�@�!!5!5!5!!5!5!5!!5!5!5!�@��@��@�����@��@��@�@��@�@��$''7'77!#3#3!5!7!5!'!5!v��M��M��M��I��@@VZ@��6@��s@���=��M��J��M��MC�����@�@��@�@��%155!!'5!'5!!57!57!'77'7@@@@@@����
3�3
�#0��M��L��M���@
@�M@�@����3
4ZZ4
3�@v#ss0S�j��M��M��M��@����
5%33'47632#"'&��@�@@�@��@��((((�@��@���@��@��(((
�#'3#7!!3#7!!3#7!!3#7!!3#7!!���@�������������@�����@������������@���@���@���@������3'	7%93267>594&'.'
DVVV����TW��#@�		
	
�CVVV���P���#3I/


,���!!!!!!!!����
�j@V�*�*����	#57'762!!5�
���@�C+lC���Ts�
���=�Cm+C��pp	���	!GVht�!!##53#575#53%#535#535#5>32#.'#"&546?>54&#"##3267573>32#"&'#32654&#"%.#"3267#"&54632#�0CC�Ɇ��̉�����55+J )0.5&C�		�J0:=0GG�G?07BC90>C�@�C�6C�@7C����CCGCC�,( p
+!"'	
3	#�p
E7:MV� '' !%'%"$%-3G9<G2.���2.#"34>32!#".'7!732>5z#U`j8j��P`Aq�V.WOE�`�&Aq�V.WOE����#U`j8j��P&>+P��jV�qA$3 �`���V�qA$3 ����&>+P��j��� (,'>735!5#!!.'#7261%#3733%7#*w4+#
���]��H3!6\D+�D�$]�]3�3]��MM�0v"IMP(]]]]C7$M,:j0�C�]�Ѝ����@��3#3#%3#3#%3#3#%3#3#@������������������������������������	5	!!!�������r��s���s����� @�7)!3#!!3#@�����@���@���Q��Q��@���@@����!!"3!265#5#	G��E���!//!�!/�����E?���/!��!//!0��������!!7!"3!26534&'��`��(88(�(8 ���`X��0�0�����8(�@(88(����`HX��0�0���!";!2654&!5#!���(88(�3m(88H����8(�(8�8((8�����@�`&.106726'46.#"310!4.oE
SZZS
EpqU�Uqp>V@dW^JJ^Wd@V>-FZ00ZF-����##54&+"#"3!2654&%46;2!PqO�Oq �\&�&��OqqO�� ��&&�����#2#54&+"32#!"&5463!5463Oq�&�&���qO�qO��&&�� ��Oq�37OS54&+"#3;26=!5534&+"!!;26=35#534&+"#3;26=!5!53�����@������@�����������@����@�����������������@����
!!%5!!7!5!#53��@����@@����@�����@@�@���!!!!!!������@�@�����$%.#"3!26'%"&546327#4632�K

�K%3f3%�%%%%X%%,g��,@@,%%%%�%%���8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P���'3"32>54.".54>32##5#53533j��PP��jj��PP��jP�i<<i�PP�i<<i���������P��jj��PP��jj��P��<i�PP�i<<i�PP�i<@��������!"32>54.3#!53#533j��PP��jj��PP�������@@�@�P��jj��PP��jj��P���@@�����	
%!!#535#3��@�� � �ࠀ������@�� � ��������a�6.'32>7>&'#"&'32>7>'aK\j77j\KHYe55eYH~!|F)N!

,TJ="
"�E�wl//lw�E+XXV).L66L.)VXX+��>K-?'@�5*0�A@@3!26=4&#!"
�

�@
 �

�
���#!4&+"!"3!;265!26=4&�
�
��

`
�
`
@`

��
�
��

`
�
�@	7�@@��@�@��������	��@����������@'	������@���@��@@	��@�@@	@���		������@��	7!!!!'#5'��������[c�����������[b� @�@#"#7#4>32#2>54.#`P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i< @�@#23'34.#"3".54>3�P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i<�!!�@��@�����!)@��@�������"6B%'.>54.#"326776&".54>32##33535#��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]������Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(����������"6:%'.>54.#"326776&".54>32!!��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]����Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(@�@N!	5#'35#'35#'35#'35#'35#'35#'35#'35#'35!'!5!'!5!'!5!'733#3!!!!!!���-;IXft�����������-��I����������7��W��@���@�u��u@@�!!!!!!@����������@�@�
���
)7FTcr��%2#"&=46"&=46322+"&5463+"&546;2"/&4762'&4762"%"'&4?6262"'&4?"32>54."&54632%%%%%%%%�%%@%%�@%@%%@%}-5.5��-5.5g5.5-��5.5-=5]F((F]55]F((F]5B^^BB^^�%@%%@%�%@%%@%�%%%%@%%%%�.5-5�.5-55-5.�<5-5.�(F]55]F((F]55]F(�`^BB^^BB^3��.''>7>.'�-`1.6!((r��KK.\ʿ�553z\� <���EFhA
'C53z\\˿�6���"32>54.4>3".j��PP��jj��PP���<i�PP�i<�P��jj��PP��jj��P�P�i<�<i��C}='			7}Z���Z"��Z##Z���Z��"Z���Z"��Z#���`�7	'����@��@�@@�����(326=#"3!2654&#"32654&#!"%%��%%�%%%�[�%%��%���%%�[%%%�%%��%%%���7'!5##3!3535#!@�@��@�������@��@@��@�����������@@����#�_<��������������}@m@@@.�@6�@������@ �@0-��@*@@@@���@  @3��
B��8b�R�^���Pn�<�F��� <����		`	�

P
�
�@��L���

P
�
� t�x6x��$\��F|��Fz�&Rd��0h��>r�Z�Dl��(<P^l���"4��\vHx���J}��`6uK
�		g	=	|	 	R	
4�tinymcetinymceVersion 1.0Version 1.0tinymcetinymcetinymcetinymceRegularRegulartinymcetinymceFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce.eot000064400000042244152177723720016343 0ustar00�DD�LP�#�tinymceRegularVersion 1.0tinymce�0OS/2��`cmap�f��4gaspPglyf}
�=X<�head/>�6hhea�6?$$hmtx��?H�loca�e�TA<�maxp��B8 name�TBX�postC� ��������3	@�x���@�@ B@ �(�5���+�������(�*�-�5�=�A�a���6��j�����j���x���� ��*��
�*�������&�*�-�0�9�?�a���5��j�����j���x������  98IKIDB<431/,+��=�������797979���!!!3#!3!3��������@@K5�������@5@����1'.#!"3!2654&#5#!"&5463!23��P!� !//!�!/!E��	� 		����!/!��!//!`!P���		`	����/75'.'7'./#'737>77'>7'#'573�hq�+�+�qh��hq�+�+�qh�������p�+�qh��hq�+�+�qh��hq�+ ������!!!!!!!!!!�����������@���@����!!!!!!!!!!�������������@���@����!!!!!!!!!!��������������@���@����!!!!!!!!!!�������@�@�@�@�m����2Vb�%.+'>4&'	#"3267>'732676&'#"&'.5467>7>7>327"&54632#"&'.'.'.5467>32{"T(@������@(T"=3; (S#("AA"(#S( ;3=���%55%%552�"#@DHD���DHD�@#"=�3#"(c.BB.c("#3�=�

�5&%55%&5�

@���&*-354&+54&+"#"3!!781381#55!537#!!@
�&�&�

 ��������e�����
@&&@
��
��@@�@@�[e@�@���)7ES!!%!!#!!!#"3!26533!2654&#"&546;2#"&546;2#"&546;2@������x8���8**0*�*0**�����@

@
o���@@@���*��**x��**0*��



�



�@



���#/!!!!!!4632#"&4632#"&4632#"&������������K55KK55KK55KK55KK55KK55K������@5KK55KK��5KK55KK��5KK55KK@���)%!!!!!!'#5#53#575#53#535#535#5�����������@@@�����������������@��2@�<2@��@@@@@�!!!!!!!!!!����������������@�@�@�@����!!!!!!!!!!%�����������������@�@�@�@�����@=2#".5'4>3">!2#".5'4>3">�.R=##=R..R=#Fz�]@u-	I.R=##=R..R=#Fz�]@u-	#=R..R=##=R. ]�zF�0.
#=R..R=##=R. ]�zF�0.
@����
>.	6�+&8�������FO@M��e�����������5	5&&>@�����8&+iOF��������e��Mr�.����
@r67>'&7#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64@
'<

'���
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�


	c
		
�	
A19�.
<'

��'
	�
		
c	

	�	
A�.�-c�*u.Ac�*u.A
	�
		
c	

	�	
A�-����2eimquy}#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64''773#3#'3#3#�
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�	

	c
		
�	
A19�..��.�i@@�����.��@@��
	�
		
c	

	�	
A�-�-d�*u.Ac�*u.A
	�
		
c	

	�	
A�-�-��.��@��.�)��@���@�			!�@@@����@�����%@!!!4632#"&!7@����8((88((8����@��@���(88((88�H��`	@@"!#535#535#53!!#535#535#53%��������@����������@��@����������������������8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P@���	3	!#	3@�����������6�J+6@J"32>54.#"&'.5467>32'>77.'#17'P�i<<i�PP�i<<i�|)i::i)(,,()i::i)(,,�R+%C:0V`<.V0:C%+<`��@�(�<i�PP�i<<i�PP�i<��(,,()i::i)(,,()i::iV0:C%+<`�+%C:0V`6�
�2v� Il"32>7.2#"&546#"&'.'.'>7>732654&'.#">7>325.'O��p,,p��OO��p,,p���%%%%a? "D##D" ?/U##U/2pPPp2/U##U()UWZ..ZWU),R%*a5&MPS**SPM&5a*%R,�$C_::_C$$C_::_C$�%%%%��A((A
6PppP6
A((A�9!m,I

I,m!9��0%7!3#33#B::r��r�H:��������
�#'!5!!5!5#!5!!%!!5!!!!5!����@����������������@������������������!!������7!!!!''7'77@�����@U�|���>��>��>��@���@ ����>��>��>������%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n���������3%!7!5>54.#"!!5.54>32�@��1R<!7`�II�`7!<R1��@FvU/P��jj��P/UvF@���H_p>P�g;;g�P>p_H��!Sl�G]�zFFz�]G�lS���'3?S"32>54.".54>32#"&54632#"&546322>7#".'j��PP��jj��PP��jY�uDDu�YY�uDDu��%%%%�%%%%�5aRB8Um==mU8BRa�P��jj��PP��jj��P�PDu�YY�uDDu�YY�uDp%%%%%%%%��"-@oQ//Qo@-"�'!!!";!32654&!!%#"&54632����&&��&&�����@&��&�&@&��@����
''7''!7!7'7!7��lԊ�v�lԊ�������l�Ԋ���������lԊ��lԊ��������llԊ���@����
048>334&+"33#%5#";5#54&+326=4&#26#535#53	7��@&�&@��@�&&���&��&@�����`�R�`���&&�����@&��&@@``&�@&`&&ƀ@���@ F�.���#53533##%!3!�������@����������������#'/37?CH3#73#%#535#53#73#%3#33#73#%#535#53#73#%3#3!!1!������@��@�@�������@��@�����@��@�@�������@������@�@@@@�@�@�@@@��@@��@@@@�@�@�@@@��@@@�������#3#73#%3#73#%3#!3!!#!������������� ��@ ���@@@@@@@@@@�@��������@�����%+2#5267>54&'.#"33>!3@]�zFFz�]G�225522�GG�2&2	���Nv����Fz�]]�zF`522�GG�22552&_4�Q�g;���@��@�$>54.#!!2>54&32+#32� (F]5���5]F(D��e*<<)f���,>>�"T/5]F(��(F]5FtFK55K��K55K���#3!53#5������@�@��@�@@@�@�3#".533267>5!!��2WuBBuW2�I((I������`<iN--Ni<��`88����8<#"&'.5332654&#"&'.5467>32#4&#"32%!!�0550,q>>q,05�rNNrrN>q,0550,q>>q,05�rNNrrN>q,�%��$b55b$!$$!$b54LL44L$!$b55b$!$$!$b54LL44L$!@���!####".54>�����.R=##=R�����#=R..R=#@��!####".54>
�����.R=##=R��������#=R..R=#���� ��!####".54>-����.R=##=R������#=R..R=#�������	#5'!!!'##%!3!!5333@���@���ee��ee��@��������@���@eeee���@�����@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@����	''� ������������5A!'!!3!!.54>32'>54&#"3267?6&%"&54632��` ��@�8K-�@�'B0+Jc88cJ+c�
pPPppP2�3��3II33II@@�����3BQ,8cJ++Jc8 ү2PppPPp
�3�I33II33I@���*59=373#35#335'54&+54&+"#"3!!81381#55!!!  @0�0@  @
�&�&�

 ���������@�@@@���
@&&@
��
��@@�@@�@@���"&.'.#"#5>723#5!!!�	&		z�]�W�@���@PF

��s�*�����@�0��}:)%!!!!>2&'>7>&'.s��CI�L���B���BBBBB.mv{;.`_X%8<04-t~8V��P�G�GBBBBB���B-<
3%9���4-0&)V'-����+i'#".'81<5<51045041>7'7818181<1.10>7>71099>581<5<5}Z@JQ+N�i>%�-�:c-x�u%;K%F
<<)?,MY0";f�P'OMJ#�-���d0w�k :R1F&BB&4c^W'MG$�� `%KWj546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==�=+*;>%ZX+=�!!5!5#!55!!!!5!����@��������������������������	�#!!5!5#!5!!%!!5!!!!5!����@�������������������������������@�!!5!5!5!!5!5!5!!5!5!5!5!5!�@��@��@��������@��@��@�@��@�@�@��!!!5#!5!!5!!!��@���@��������������@�������������%5#53533#!!!!5!5!5!5!5!@��V���j����@@�����Z��Z��������@�@�@��3##5#535%!!5!5!5!5!5!!!���V�����@������@��Z��Z��������@�@��@��##5#53533!!5!!5!!5!5!!��F��F��M�@�@�@�������C��@����������=��3533##5#!!!%!!!!5!5!M�F��F��������������C��C������������=��'!!!!5!5!5!5!5!!!5!5!''7'77���@������@�`=��=��=��=���������@�@��@�@���=��=��=��=��!!!!''7'77�=��}�`��`��`��`�����@���`��`��`��`�@�!!5!5!5!5!5!!5!5!5!5!5!�����@������@��@�@��@�@�@�@�!!5!5!5!!5!5!5!!5!5!5!�@��@��@�����@��@��@�@��@�@��$''7'77!#3#3!5!7!5!'!5!v��M��M��M��I��@@VZ@��6@��s@���=��M��J��M��MC�����@�@��@�@��%155!!'5!'5!!57!57!'77'7@@@@@@����
3�3
�#0��M��L��M���@
@�M@�@����3
4ZZ4
3�@v#ss0S�j��M��M��M��@����
5%33'47632#"'&��@�@@�@��@��((((�@��@���@��@��(((
�#'3#7!!3#7!!3#7!!3#7!!3#7!!���@�������������@�����@������������@���@���@���@������3'	7%93267>594&'.'
DVVV����TW��#@�		
	
�CVVV���P���#3I/


,���!!!!!!!!����
�j@V�*�*����	#57'762!!5�
���@�C+lC���Ts�
���=�Cm+C��pp	���	!GVht�!!##53#575#53%#535#535#5>32#.'#"&546?>54&#"##3267573>32#"&'#32654&#"%.#"3267#"&54632#�0CC�Ɇ��̉�����55+J )0.5&C�		�J0:=0GG�G?07BC90>C�@�C�6C�@7C����CCGCC�,( p
+!"'	
3	#�p
E7:MV� '' !%'%"$%-3G9<G2.���2.#"34>32!#".'7!732>5z#U`j8j��P`Aq�V.WOE�`�&Aq�V.WOE����#U`j8j��P&>+P��jV�qA$3 �`���V�qA$3 ����&>+P��j��� (,'>735!5#!!.'#7261%#3733%7#*w4+#
���]��H3!6\D+�D�$]�]3�3]��MM�0v"IMP(]]]]C7$M,:j0�C�]�Ѝ����@��3#3#%3#3#%3#3#%3#3#@������������������������������������	5	!!!�������r��s���s����� @�7)!3#!!3#@�����@���@���Q��Q��@���@@����!!"3!265#5#	G��E���!//!�!/�����E?���/!��!//!0��������!!7!"3!26534&'��`��(88(�(8 ���`X��0�0�����8(�@(88(����`HX��0�0���!";!2654&!5#!���(88(�3m(88H����8(�(8�8((8�����@�`&.106726'46.#"310!4.oE
SZZS
EpqU�Uqp>V@dW^JJ^Wd@V>-FZ00ZF-����##54&+"#"3!2654&%46;2!PqO�Oq �\&�&��OqqO�� ��&&�����#2#54&+"32#!"&5463!5463Oq�&�&���qO�qO��&&�� ��Oq�37OS54&+"#3;26=!5534&+"!!;26=35#534&+"#3;26=!5!53�����@������@�����������@����@�����������������@����
!!%5!!7!5!#53��@����@@����@�����@@�@���!!!!!!������@�@�����$%.#"3!26'%"&546327#4632�K

�K%3f3%�%%%%X%%,g��,@@,%%%%�%%���8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P���'3"32>54.".54>32##5#53533j��PP��jj��PP��jP�i<<i�PP�i<<i���������P��jj��PP��jj��P��<i�PP�i<<i�PP�i<@��������!"32>54.3#!53#533j��PP��jj��PP�������@@�@�P��jj��PP��jj��P���@@�����	
%!!#535#3��@�� � �ࠀ������@�� � ��������a�6.'32>7>&'#"&'32>7>'aK\j77j\KHYe55eYH~!|F)N!

,TJ="
"�E�wl//lw�E+XXV).L66L.)VXX+��>K-?'@�5*0�A@@3!26=4&#!"
�

�@
 �

�
���#!4&+"!"3!;265!26=4&�
�
��

`
�
`
@`

��
�
��

`
�
�@	7�@@��@�@��������	��@����������@'	������@���@��@@	��@�@@	@���		������@��	7!!!!'#5'��������[c�����������[b� @�@#"#7#4>32#2>54.#`P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i< @�@#23'34.#"3".54>3�P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i<�!!�@��@�����!)@��@�������"6B%'.>54.#"326776&".54>32##33535#��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]������Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(����������"6:%'.>54.#"326776&".54>32!!��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]����Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(@�@N!	5#'35#'35#'35#'35#'35#'35#'35#'35#'35!'!5!'!5!'!5!'733#3!!!!!!���-;IXft�����������-��I����������7��W��@���@�u��u@@�!!!!!!@����������@�@�
���
)7FTcr��%2#"&=46"&=46322+"&5463+"&546;2"/&4762'&4762"%"'&4?6262"'&4?"32>54."&54632%%%%%%%%�%%@%%�@%@%%@%}-5.5��-5.5g5.5-��5.5-=5]F((F]55]F((F]5B^^BB^^�%@%%@%�%@%%@%�%%%%@%%%%�.5-5�.5-55-5.�<5-5.�(F]55]F((F]55]F(�`^BB^^BB^3��.''>7>.'�-`1.6!((r��KK.\ʿ�553z\� <���EFhA
'C53z\\˿�6���"32>54.4>3".j��PP��jj��PP���<i�PP�i<�P��jj��PP��jj��P�P�i<�<i��C}='			7}Z���Z"��Z##Z���Z��"Z���Z"��Z#���`�7	'����@��@�@@�����(326=#"3!2654&#"32654&#!"%%��%%�%%%�[�%%��%���%%�[%%%�%%��%%%���7'!5##3!3535#!@�@��@�������@��@@��@�����������@@����#�_<��������������}@m@@@.�@6�@������@ �@0-��@*@@@@���@  @3��
B��8b�R�^���Pn�<�F��� <����		`	�

P
�
�@��L���

P
�
� t�x6x��$\��F|��Fz�&Rd��0h��>r�Z�Dl��(<P^l���"4��\vHx���J}��`6uK
�		g	=	|	 	R	
4�tinymcetinymceVersion 1.0Version 1.0tinymcetinymcetinymcetinymceRegularRegulartinymcetinymceFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce-small.ttf000064400000022130152177723720017447 0ustar00�0OS/2$�`cmapƭ��lgasp�glyf	G��headg�{ �6hhea�� �$hmtx�� ��loca�$�Z!�tmaxpI�"H name�L܁"h�post$8 ��������3	@����@�@ P �(�2�5����� ��*�4�������   5��797979@��7%'!"3!2653#5!81!813#4&#!"#33!26=��!//!�!/��@@�����@&��&@@&@&�PP�/!� !//!������&&���&&������.'.#!"3!2654&'#5!8181!!81S�A�`&&�&.
�
����͆&�&& A-
�
��������095'.'7'./#'737>77'>?%#'573�hq�+�+�qh��hq�+�+�qh���������p�+�qh��hq�+�+�qh��hq�+������@@�!!!!!!!!@������@��@�����@���@@�!!!!!!!!@������������@���@@�!!!!!!!!@������@@��@�����@���@@�!!!!!!!!@���������������@����)w`*@Mc.'70>&'	1&67>'776&'#"&'&67>327"&54632##"&'.'&67>32`"V)?�$0����0$�?)V"9
//�8# ?? #8�//
9�))	�%%%%3)	)"# ?�,H\0��@0\H,�? #8�//
9"V)??)V"9
//�8Y$C
�%%%%�$
C@��',0754&+54&+"#";!7#81381#55!!537#!!�
�&�&�

������������ee����@�
@&&@
�
���@@�@@��ee����@��*9HW#35!3!35!3#";2653;2654&##"&546;2##"&546;2##"&546;2#x8@��@�@��@8**�*�*�**����@

@

<��@@@�@@�*�P**8��**�*�



�



��



�@�@%2!!!!!!32654&#"32654&#"32654&#"�@��@��@���%%%%%%%%%%%%@������%%%%��%%%%��%%%%���%!!!!!!5##3#33#3#3#5�@��@��@��@@�@@��������@�����n�@@�@2<�@@@@@2@@�!!!!!!!!@���@@��@������������@�����@@�!!!!!!!!@���@��@�����������@�����@��?2#".5'4>3">3!2#".5'4>3">3(F44F('F4<h�O7d&
(F44F('F4<h�O7d&
 7J*+J7  7J+T�o@t,*	 7J*+J7  7J+T�o@t,*	p��%>.	6�$"����P��?OlK��S�PP�y�x@��5	5&.>@P����"$lO?̰������S��Kx��y@��0m'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&'&4762#��))�!!D���D))�!!��D���D))��))��@ ��څ�!]!D
��
�D�!]!��D���D�))��))m @ ��@��0m�����'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&/&4762#"&=4632##"&546;2#2"/&47>372#"&=46332+"&5463��))�!!D���D))�!!��D���D))��))��� ��



@�

�

�@� ��



���

�

څ�!]!D
��
�D�!]!��D���D�))��))�� � z
�

�
@



�� � z
�

�
��



�	!'!�����������+����k@@�@$1!"3!2654&#818181!8132654&#"��&&&&����8((88((8@&��&&�&�@@� � ����(88((88(	@@�@$).36!"3!2654&##53#53#53!!3#53#53#53!%��&&&&�������������������� @&��&&�&�@�������������������@��:3#52#575!5!'"32>7>54.'.#���%�\�����-VQI  0""0  IQV--VQI  0""0  IQV-���%��@�@��"0  IQV--VQI  0""0  IQV--VQI  0"`���'7'	���@�@@��@��@��@��@N�f
)>S>7'%7.'"&/54632#"32>54.#".54>32#NQ&rE+NE;TEr&Q;EN+B�

n		`P�i<<i�PP�i<<i�P<iN--Ni<<iN--Ni<�3=[[+6B&�[[=3&B6+��I�

�7		<i�PP�i<<i�PP�i<�`-Ni<<iN--Ni<<iN-@��3@e>7>325.'.#"%"32>7.##"&54632#"&'.'>7>732654&'@"M*D�MM�D*M"4'TVY--YVT'4�E�sb&&bs�EE�sb&&bs�E%%%%�3l99l3'FF'

pPPp

'FF'�&?())(?&v%##%v�$C_::_C$$C_::_C$�%%%%�=%%='PppP'=%%=��.+"8137337>101#�;@<�q:�:q��''��> @� ��䤈�
@@�	"',1!!5!!!5!!5!!#533#5!3#5=3#3#553#@���@����������@��������@���@��@��@������������@��������@��!!@����@@��
7!!5###5!''7'77@��ݷ���@���>��>��>��>���@����@��>��>��>��>����%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n������@��4%5>54.#"#'!5.54>32!5#�9^D%Fz�]]�zF%D^9�@@&?-/Qm>>mQ/-?&@@��%GZj9P�i<<i�P9jZG%`��;KX0BuW22WuB0XK;��`@��.;HY2#"&'.5467>35"32>54.#132654&#"!32654&#""&'32>7#K�558855�KK�558855�K]�zFFz�]]�zFFz�]�%%%%%%%%@L�,	-CS//SC-	,�L4855�KK�558855�KK�558LFz�]]�zFFz�]]�zF��%%%%%%%%��3+,K88K,+3@@�@+!!5!";!532654&#!!#"&54632���&&��&&�����@���&�&��&&���@��
'7!7!7!!'!'!'7�������������`�����`��@��������`�����`��������@��"'9>C5#"'35#334&+"35353#54&#26=4&+32653#53#5��&�юR������@@&�&@����&��&�����@@&��	���F���@@���&&�������`&&`&�@&@�����@@��#53533##5!3!53�������������������@��@��@��#).39=A3#3#3#7#3!3#3#3#35353##!!!!35353#'3#����@���@��@��@�����@@��@@�����@��@@@�����@@��@@@�@@�@�@��@��@������@��@�@@@@��!%!3!3!#!#3#73#73#73#73#0��  ��� � ���������������������@��@����@@@@@@@@@���&,2#5267>54&'.#"33>3!3@]�zFFz�]G�225522�GG�2&2	���Nv�U����Fz�]]�zF`522�GG�22552&_4�Q�g;���@�@@ ->54.+!2>54&''46;2+5#"&=32#q$+#=R.� .R=#P?�C -- s�s� -- �S/+L8!�!8L+Bi�8((8��0�8((8�@@@#3!53#5!@����@���@@��@@�@�@@!7!!5#"&'.5#32>5#�@���=""=�-Ni<<iN-��@@���--���5]F((F]5�@@�@>!.#"&546323.'.#"!!#"&'#3267>54&'35���%^3CbbC8Yq+#&a55a&)--)��+9bC8Yq+#&a55a&)-��A-,A/#&ET-.T@
6",A/#&ET-3@�@@@"333335!�.R=##=R.�@���@@#=R..R=#�������@@�@"333335!7'�.R=##=R.�@���@����@#=R..R=#����������`@�@"333335!@.R=##=R.�@���@���@#=R..R=#�����������@�
"#5'!!!'#5#5%!3!!5333@�����@�ee��ee����@@�@����@��@���[eeee���@�������@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@@��6C!'!!3!!.54>32'>54&#"3267?6&'%"&54632#��` ��@�xX ��@d'B0+Jc88cJ+#�
pPPppP2o3��3II33II3@@�����3BQ,8cJ++Jc8 �o2PppPPp
�3VI33II33I@��&+0@54&+54&+"#";!#81381#55!!!!373#35#5335�
�&�&�

�@�����������@���  @0�0@  @�
@&&@
�
�@@@�@@����@��@�@@�@��� `%KXk546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==+�=+*;>%ZX+=�C�_<��0=��0=���������9@�@@@@�@@��@@@p@@@@@@`N@�@@@@@@@@@@@����@�@`@@@��
l�0Rt�0~�@x��"Bb B`��Nn�z��		6	`	�	�
P
�
�,P��B���
0
R
|
�
�:���9��
�
H
�'
o
�	
	�	U	�	2	|	
4�tinymce-smalltinymce-smallVersion 1.0Version 1.0tinymce-smalltinymce-smalltinymce-smalltinymce-smallRegularRegulartinymce-smalltinymce-smallFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce-small.eot000064400000022424152177723720017447 0ustar00%X$�LP�C�tinymce-smallRegularVersion 1.0tinymce-small�0OS/2$�`cmapƭ��lgasp�glyf	G��headg�{ �6hhea�� �$hmtx�� ��loca�$�Z!�tmaxpI�"H name�L܁"h�post$8 ��������3	@����@�@ P �(�2�5����� ��*�4�������   5��797979@��7%'!"3!2653#5!81!813#4&#!"#33!26=��!//!�!/��@@�����@&��&@@&@&�PP�/!� !//!������&&���&&������.'.#!"3!2654&'#5!8181!!81S�A�`&&�&.
�
����͆&�&& A-
�
��������095'.'7'./#'737>77'>?%#'573�hq�+�+�qh��hq�+�+�qh���������p�+�qh��hq�+�+�qh��hq�+������@@�!!!!!!!!@������@��@�����@���@@�!!!!!!!!@������������@���@@�!!!!!!!!@������@@��@�����@���@@�!!!!!!!!@���������������@����)w`*@Mc.'70>&'	1&67>'776&'#"&'&67>327"&54632##"&'.'&67>32`"V)?�$0����0$�?)V"9
//�8# ?? #8�//
9�))	�%%%%3)	)"# ?�,H\0��@0\H,�? #8�//
9"V)??)V"9
//�8Y$C
�%%%%�$
C@��',0754&+54&+"#";!7#81381#55!!537#!!�
�&�&�

������������ee����@�
@&&@
�
���@@�@@��ee����@��*9HW#35!3!35!3#";2653;2654&##"&546;2##"&546;2##"&546;2#x8@��@�@��@8**�*�*�**����@

@

<��@@@�@@�*�P**8��**�*�



�



��



�@�@%2!!!!!!32654&#"32654&#"32654&#"�@��@��@���%%%%%%%%%%%%@������%%%%��%%%%��%%%%���%!!!!!!5##3#33#3#3#5�@��@��@��@@�@@��������@�����n�@@�@2<�@@@@@2@@�!!!!!!!!@���@@��@������������@�����@@�!!!!!!!!@���@��@�����������@�����@��?2#".5'4>3">3!2#".5'4>3">3(F44F('F4<h�O7d&
(F44F('F4<h�O7d&
 7J*+J7  7J+T�o@t,*	 7J*+J7  7J+T�o@t,*	p��%>.	6�$"����P��?OlK��S�PP�y�x@��5	5&.>@P����"$lO?̰������S��Kx��y@��0m'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&'&4762#��))�!!D���D))�!!��D���D))��))��@ ��څ�!]!D
��
�D�!]!��D���D�))��))m @ ��@��0m�����'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&/&4762#"&=4632##"&546;2#2"/&47>372#"&=46332+"&5463��))�!!D���D))�!!��D���D))��))��� ��



@�

�

�@� ��



���

�

څ�!]!D
��
�D�!]!��D���D�))��))�� � z
�

�
@



�� � z
�

�
��



�	!'!�����������+����k@@�@$1!"3!2654&#818181!8132654&#"��&&&&����8((88((8@&��&&�&�@@� � ����(88((88(	@@�@$).36!"3!2654&##53#53#53!!3#53#53#53!%��&&&&�������������������� @&��&&�&�@�������������������@��:3#52#575!5!'"32>7>54.'.#���%�\�����-VQI  0""0  IQV--VQI  0""0  IQV-���%��@�@��"0  IQV--VQI  0""0  IQV--VQI  0"`���'7'	���@�@@��@��@��@��@N�f
)>S>7'%7.'"&/54632#"32>54.#".54>32#NQ&rE+NE;TEr&Q;EN+B�

n		`P�i<<i�PP�i<<i�P<iN--Ni<<iN--Ni<�3=[[+6B&�[[=3&B6+��I�

�7		<i�PP�i<<i�PP�i<�`-Ni<<iN--Ni<<iN-@��3@e>7>325.'.#"%"32>7.##"&54632#"&'.'>7>732654&'@"M*D�MM�D*M"4'TVY--YVT'4�E�sb&&bs�EE�sb&&bs�E%%%%�3l99l3'FF'

pPPp

'FF'�&?())(?&v%##%v�$C_::_C$$C_::_C$�%%%%�=%%='PppP'=%%=��.+"8137337>101#�;@<�q:�:q��''��> @� ��䤈�
@@�	"',1!!5!!!5!!5!!#533#5!3#5=3#3#553#@���@����������@��������@���@��@��@������������@��������@��!!@����@@��
7!!5###5!''7'77@��ݷ���@���>��>��>��>���@����@��>��>��>��>����%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n������@��4%5>54.#"#'!5.54>32!5#�9^D%Fz�]]�zF%D^9�@@&?-/Qm>>mQ/-?&@@��%GZj9P�i<<i�P9jZG%`��;KX0BuW22WuB0XK;��`@��.;HY2#"&'.5467>35"32>54.#132654&#"!32654&#""&'32>7#K�558855�KK�558855�K]�zFFz�]]�zFFz�]�%%%%%%%%@L�,	-CS//SC-	,�L4855�KK�558855�KK�558LFz�]]�zFFz�]]�zF��%%%%%%%%��3+,K88K,+3@@�@+!!5!";!532654&#!!#"&54632���&&��&&�����@���&�&��&&���@��
'7!7!7!!'!'!'7�������������`�����`��@��������`�����`��������@��"'9>C5#"'35#334&+"35353#54&#26=4&+32653#53#5��&�юR������@@&�&@����&��&�����@@&��	���F���@@���&&�������`&&`&�@&@�����@@��#53533##5!3!53�������������������@��@��@��#).39=A3#3#3#7#3!3#3#3#35353##!!!!35353#'3#����@���@��@��@�����@@��@@�����@��@@@�����@@��@@@�@@�@�@��@��@������@��@�@@@@��!%!3!3!#!#3#73#73#73#73#0��  ��� � ���������������������@��@����@@@@@@@@@���&,2#5267>54&'.#"33>3!3@]�zFFz�]G�225522�GG�2&2	���Nv�U����Fz�]]�zF`522�GG�22552&_4�Q�g;���@�@@ ->54.+!2>54&''46;2+5#"&=32#q$+#=R.� .R=#P?�C -- s�s� -- �S/+L8!�!8L+Bi�8((8��0�8((8�@@@#3!53#5!@����@���@@��@@�@�@@!7!!5#"&'.5#32>5#�@���=""=�-Ni<<iN-��@@���--���5]F((F]5�@@�@>!.#"&546323.'.#"!!#"&'#3267>54&'35���%^3CbbC8Yq+#&a55a&)--)��+9bC8Yq+#&a55a&)-��A-,A/#&ET-.T@
6",A/#&ET-3@�@@@"333335!�.R=##=R.�@���@@#=R..R=#�������@@�@"333335!7'�.R=##=R.�@���@����@#=R..R=#����������`@�@"333335!@.R=##=R.�@���@���@#=R..R=#�����������@�
"#5'!!!'#5#5%!3!!5333@�����@�ee��ee����@@�@����@��@���[eeee���@�������@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@@��6C!'!!3!!.54>32'>54&#"3267?6&'%"&54632#��` ��@�xX ��@d'B0+Jc88cJ+#�
pPPppP2o3��3II33II3@@�����3BQ,8cJ++Jc8 �o2PppPPp
�3VI33II33I@��&+0@54&+54&+"#";!#81381#55!!!!373#35#5335�
�&�&�

�@�����������@���  @0�0@  @�
@&&@
�
�@@@�@@����@��@�@@�@��� `%KXk546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==+�=+*;>%ZX+=�C�_<��0=��0=���������9@�@@@@�@@��@@@p@@@@@@`N@�@@@@@@@@@@@����@�@`@@@��
l�0Rt�0~�@x��"Bb B`��Nn�z��		6	`	�	�
P
�
�,P��B���
0
R
|
�
�:���9��
�
H
�'
o
�	
	�	U	�	2	|	
4�tinymce-smalltinymce-smallVersion 1.0Version 1.0tinymce-smalltinymce-smalltinymce-smalltinymce-smallRegularRegulartinymce-smalltinymce-smallFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce.svg000064400000131647152177723720016361 0ustar00<?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>Generated by IcoMoon</metadata>
<defs>
<font id="tinymce" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe000;" glyph-name="save" d="M896 960h-896v-1024h1024v896l-128 128zM512 832h128v-256h-128v256zM896 64h-768v768h64v-320h576v320h74.978l53.022-53.018v-714.982z" />
<glyph unicode="&#xe001;" glyph-name="newdocument" d="M903.432 760.57l-142.864 142.862c-31.112 31.112-92.568 56.568-136.568 56.568h-480c-44 0-80-36-80-80v-864c0-44 36-80 80-80h736c44 0 80 36 80 80v608c0 44-25.456 105.458-56.568 136.57zM858.178 715.314c3.13-3.13 6.25-6.974 9.28-11.314h-163.458v163.456c4.34-3.030 8.184-6.15 11.314-9.28l142.864-142.862zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16h480c4.832 0 10.254-0.61 16-1.704v-254.296h254.296c1.094-5.746 1.704-11.166 1.704-16v-608z" />
<glyph unicode="&#xe002;" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" />
<glyph unicode="&#xe003;" glyph-name="alignleft" d="M0 896h1024v-128h-1024zM0 704h640v-128h-640zM0 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
<glyph unicode="&#xe004;" glyph-name="aligncenter" d="M0 896h1024v-128h-1024zM192 704h640v-128h-640zM192 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
<glyph unicode="&#xe005;" glyph-name="alignright" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
<glyph unicode="&#xe006;" glyph-name="alignjustify" d="M0 896h1024v-128h-1024zM0 704h1024v-128h-1024zM0 512h1024v-128h-1024zM0 320h1024v-128h-1024zM0 128h1024v-128h-1024z" />
<glyph unicode="&#xe007;" glyph-name="cut" d="M890.774 250.846c-45.654 45.556-103.728 69.072-157.946 69.072h-29.112l-63.904 64.008 255.62 256.038c63.904 64.010 63.904 192.028 0 256.038l-383.43-384.056-383.432 384.054c-63.904-64.008-63.904-192.028 0-256.038l255.622-256.034-63.906-64.008h-29.114c-54.22 0-112.292-23.518-157.948-69.076-81.622-81.442-92.65-202.484-24.63-270.35 29.97-29.902 70.288-44.494 112.996-44.494 54.216 0 112.29 23.514 157.946 69.072 53.584 53.464 76.742 124 67.084 185.348l65.384 65.488 65.376-65.488c-9.656-61.348 13.506-131.882 67.084-185.348 45.662-45.558 103.732-69.072 157.948-69.072 42.708 0 83.024 14.592 112.994 44.496 68.020 67.866 56.988 188.908-24.632 270.35zM353.024 114.462c-7.698-17.882-19.010-34.346-33.626-48.926-14.636-14.604-31.172-25.918-49.148-33.624-16.132-6.916-32.96-10.568-48.662-10.568-15.146 0-36.612 3.402-52.862 19.612-16.136 16.104-19.52 37.318-19.52 52.288 0 15.542 3.642 32.21 10.526 48.212 7.7 17.884 19.014 34.346 33.626 48.926 14.634 14.606 31.172 25.914 49.15 33.624 16.134 6.914 32.96 10.568 48.664 10.568 15.146 0 36.612-3.4 52.858-19.614 16.134-16.098 19.522-37.316 19.522-52.284 0.002-15.542-3.638-32.216-10.528-48.214zM512.004 293.404c-49.914 0-90.376 40.532-90.376 90.526 0 49.992 40.462 90.52 90.376 90.52s90.372-40.528 90.372-90.52c0-49.998-40.46-90.526-90.372-90.526zM855.272 40.958c-16.248-16.208-37.712-19.612-52.86-19.612-15.704 0-32.53 3.652-48.666 10.568-17.972 7.706-34.508 19.020-49.142 33.624-14.614 14.58-25.926 31.042-33.626 48.926-6.886 15.998-10.526 32.672-10.526 48.212 0 14.966 3.384 36.188 19.52 52.286 16.246 16.208 37.712 19.614 52.86 19.614 15.7 0 32.53-3.654 48.66-10.568 17.978-7.708 34.516-19.018 49.15-33.624 14.61-14.58 25.924-31.042 33.626-48.926 6.884-15.998 10.526-32.67 10.526-48.212-0.002-14.97-3.39-36.186-19.522-52.288z" />
<glyph unicode="&#xe008;" glyph-name="paste" d="M832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h448l192 192v512h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM832 26.51v101.49h101.49l-101.49-101.49zM960 192h-192v-192h-320v576h512v-384z" />
<glyph unicode="&#xe009;" glyph-name="searchreplace" d="M64 960h384v-64h-384zM576 960h384v-64h-384zM952 640h-56v256h-256v-256h-256v256h-256v-256h-56c-39.6 0-72-32.4-72-72v-560c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v376h128v-376c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v560c0 39.6-32.4 72-72 72zM348 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM924 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32z" />
<glyph unicode="&#xe00a;" glyph-name="bullist" d="M384 896h640v-128h-640v128zM384 512h640v-128h-640v128zM384 128h640v-128h-640v128zM0 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 64c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128z" />
<glyph unicode="&#xe00b;" glyph-name="numlist" d="M384 128h640v-128h-640zM384 512h640v-128h-640zM384 896h640v-128h-640zM192 960v-256h-64v192h-64v64zM128 434v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM256 256v-320h-192v64h128v64h-128v64h128v64h-128v64z" />
<glyph unicode="&#xe00c;" glyph-name="indent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM0 256v384l256-192z" />
<glyph unicode="&#xe00d;" glyph-name="outdent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM256 640v-384l-256 192z" />
<glyph unicode="&#xe00e;" glyph-name="blockquote" d="M225 512c123.712 0 224-100.29 224-224 0-123.712-100.288-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.634-11.636-22.252-24.016-31.83-37.020 11.438 1.8 23.16 2.746 35.104 2.746zM801 512c123.71 0 224-100.29 224-224 0-123.712-100.29-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.636-11.636-22.254-24.016-31.832-37.020 11.44 1.8 23.16 2.746 35.106 2.746z" />
<glyph unicode="&#xe00f;" glyph-name="undo" d="M761.862-64c113.726 206.032 132.888 520.306-313.862 509.824v-253.824l-384 384 384 384v-248.372c534.962 13.942 594.57-472.214 313.862-775.628z" />
<glyph unicode="&#xe010;" glyph-name="redo" d="M576 711.628v248.372l384-384-384-384v253.824c-446.75 10.482-427.588-303.792-313.86-509.824-280.712 303.414-221.1 789.57 313.86 775.628z" />
<glyph unicode="&#xe011;" glyph-name="link" d="M320 256c17.6-17.6 47.274-16.726 65.942 1.942l316.118 316.116c18.668 18.668 19.54 48.342 1.94 65.942s-47.274 16.726-65.942-1.942l-316.116-316.116c-18.668-18.668-19.542-48.342-1.942-65.942zM476.888 284.888c4.56-9.050 6.99-19.16 6.99-29.696 0-17.616-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.382 99.382c-12.248 12.248-18.992 28.694-18.992 46.308s6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994 10.536 0 20.644-2.43 29.696-6.99l65.338 65.338c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-60.67-60.67-60.67-159.948 0-220.618l99.382-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c55.82 55.82 60.238 144.298 13.344 205.344l-65.34-65.34zM978.498 815.116l-99.382 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994s34.060-6.746 46.308-18.994l99.382-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c60.67 60.666 60.67 159.944 0 220.614z" />
<glyph unicode="&#xe012;" glyph-name="unlink" d="M476.888 284.886c4.56-9.048 6.99-19.158 6.99-29.696 0-17.616-6.744-34.058-18.992-46.308l-163.38-163.38c-12.248-12.248-28.696-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.38 99.38c-12.248 12.25-18.992 28.696-18.992 46.308s6.744 34.060 18.992 46.308l163.38 163.382c12.248 12.246 28.696 18.992 46.308 18.992 10.538 0 20.644-2.43 29.696-6.988l65.338 65.336c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.38-163.382c-60.67-60.67-60.67-159.95 0-220.618l99.38-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.38 163.38c55.82 55.82 60.238 144.298 13.344 205.346l-65.34-65.338zM978.496 815.116l-99.38 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.97-15.166-110.306-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.246 12.248 28.694 18.994 46.306 18.994 17.616 0 34.060-6.746 46.308-18.994l99.38-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.38-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.504l163.38 163.38c60.672 60.666 60.672 159.944 0 220.614zM233.368 681.376l-191.994 191.994 45.256 45.256 191.994-191.994zM384 960h64v-192h-64zM0 576h192v-64h-192zM790.632 214.624l191.996-191.996-45.256-45.256-191.996 191.996zM576 128h64v-192h-64zM832 384h192v-64h-192z" />
<glyph unicode="&#xe013;" glyph-name="anchor" d="M192 960v-1024l320 320 320-320v1024h-640zM768 90.51l-256 256-256-256v805.49h512v-805.49z" />
<glyph unicode="&#xe014;" glyph-name="image" d="M0 832v-832h1024v832h-1024zM960 64h-896v704h896v-704zM704 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM896 128h-768l192 512 256-320 128 96z" />
<glyph unicode="&#xe015;" glyph-name="media" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
<glyph unicode="&#xe016;" glyph-name="help" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
<glyph unicode="&#xe017;" glyph-name="code" d="M320 704l-256-256 256-256h128l-256 256 256 256zM704 704h-128l256-256-256-256h128l256 256z" />
<glyph unicode="&#xe018;" glyph-name="inserttime" d="M512 768c-212.076 0-384-171.922-384-384s171.922-384 384-384c212.074 0 384 171.922 384 384s-171.926 384-384 384zM715.644 180.354c-54.392-54.396-126.716-84.354-203.644-84.354s-149.25 29.958-203.646 84.354c-54.396 54.394-84.354 126.718-84.354 203.646s29.958 149.25 84.354 203.646c54.396 54.396 126.718 84.354 203.646 84.354s149.252-29.958 203.642-84.354c54.402-54.396 84.358-126.718 84.358-203.646s-29.958-149.252-84.356-203.646zM325.93 756.138l-42.94 85.878c-98.874-49.536-179.47-130.132-229.006-229.008l85.876-42.94c40.248 80.336 105.732 145.822 186.070 186.070zM884.134 570.070l85.878 42.938c-49.532 98.876-130.126 179.472-229.004 229.008l-42.944-85.878c80.338-40.248 145.824-105.732 186.070-186.068zM512 576h-64v-192c0-10.11 4.7-19.11 12.022-24.972l-0.012-0.016 160-128 39.976 49.976-147.986 118.39v176.622z" />
<glyph unicode="&#xe019;" glyph-name="preview" d="M512 640c-209.368 0-395.244-100.556-512-256 116.756-155.446 302.632-256 512-256s395.244 100.554 512 256c-116.756 155.444-302.632 256-512 256zM448 512c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM773.616 254.704c-39.648-20.258-81.652-35.862-124.846-46.376-44.488-10.836-90.502-16.328-136.77-16.328-46.266 0-92.282 5.492-136.768 16.324-43.194 10.518-85.198 26.122-124.846 46.376-63.020 32.202-120.222 76.41-167.64 129.298 47.418 52.888 104.62 97.1 167.64 129.298 32.336 16.522 66.242 29.946 101.082 40.040-19.888-30.242-31.468-66.434-31.468-105.336 0-106.040 85.962-192 192-192s192 85.96 192 192c0 38.902-11.582 75.094-31.466 105.34 34.838-10.096 68.744-23.52 101.082-40.042 63.022-32.198 120.218-76.408 167.638-129.298-47.42-52.886-104.618-97.1-167.638-129.296zM860.918 716.278c-108.72 55.554-226.112 83.722-348.918 83.722s-240.198-28.168-348.918-83.722c-58.772-30.032-113.732-67.904-163.082-112.076v-109.206c55.338 58.566 120.694 107.754 192.194 144.29 99.62 50.904 207.218 76.714 319.806 76.714s220.186-25.81 319.804-76.716c71.502-36.536 136.858-85.724 192.196-144.29v109.206c-49.35 44.174-104.308 82.046-163.082 112.078z" />
<glyph unicode="&#xe01a;" glyph-name="forecolor" d="M322.018 128l57.6 192h264.764l57.6-192h113.632l-191.996 640h-223.236l-192-640h113.636zM475.618 640h72.764l57.6-192h-187.964l57.6 192z" />
<glyph unicode="&#xe01b;" glyph-name="table" d="M0 896v-896h1024v896h-1024zM384 320v192h256v-192h-256zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
<glyph unicode="&#xe01c;" glyph-name="hr" d="M0 512h1024v-128h-1024z" />
<glyph unicode="&#xe01d;" glyph-name="removeformat" d="M0 64h576v-128h-576zM192 960h704v-128h-704zM277.388 128l204.688 784.164 123.85-32.328-196.25-751.836zM929.774-64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774z" />
<glyph unicode="&#xe01e;" glyph-name="sub" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
<glyph unicode="&#xe01f;" glyph-name="sup" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
<glyph unicode="&#xe020;" glyph-name="charmap" d="M704 64h256l64 128v-256h-384v214.214c131.112 56.484 224 197.162 224 361.786 0 214.432-157.598 382.266-352 382.266-194.406 0-352-167.832-352-382.266 0-164.624 92.886-305.302 224-361.786v-214.214h-384v256l64-128h256v32.59c-187.63 66.46-320 227.402-320 415.41 0 247.424 229.23 448 512 448s512-200.576 512-448c0-188.008-132.37-348.95-320-415.41v-32.59z" />
<glyph unicode="&#xe021;" glyph-name="emoticons" d="M512 960c-282.77 0-512-229.228-512-512 0-282.77 229.228-512 512-512 282.77 0 512 229.23 512 512 0 282.772-229.23 512-512 512zM512 16c-238.586 0-432 193.412-432 432 0 238.586 193.414 432 432 432 238.59 0 432-193.414 432-432 0-238.588-193.41-432-432-432zM384 640c0-35.346-28.654-64-64-64s-64 28.654-64 64 28.654 64 64 64 64-28.654 64-64zM768 640c0-35.346-28.652-64-64-64s-64 28.654-64 64 28.652 64 64 64 64-28.654 64-64zM512 308c141.074 0 262.688 57.532 318.462 123.192-20.872-171.22-156.288-303.192-318.462-303.192-162.118 0-297.498 132.026-318.444 303.168 55.786-65.646 177.386-123.168 318.444-123.168z" />
<glyph unicode="&#xe022;" glyph-name="print" d="M256 896h512v-128h-512zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM704 64h-384v320h384v-320zM974.4 608c0-25.626-20.774-46.4-46.398-46.4-25.626 0-46.402 20.774-46.402 46.4s20.776 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" />
<glyph unicode="&#xe023;" glyph-name="fullscreen" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
<glyph unicode="&#xe024;" glyph-name="spellchecker" d="M128 704h128v-192h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192zM128 896h128v-128h-128v128zM960 896v64h-192c-35.202 0-64-28.8-64-64v-320c0-35.2 28.798-64 64-64h192v64h-192v320h192zM640 800v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64zM576 576h-128v128h128v-128zM576 768h-128v128h128v-128zM832 384l-416-448-224 288 82 70 142-148 352 302z" />
<glyph unicode="&#xe025;" glyph-name="nonbreaking" d="M448 384h-192v128h192v192h128v-192h192v-128h-192v-192h-128zM1024 320v-384h-1024v384h128v-256h768v256z" />
<glyph unicode="&#xe026;" glyph-name="template" d="M384 768h128v-64h-128zM576 768h128v-64h-128zM896 768v-256h-192v64h128v128h-64v64zM320 576h128v-64h-128zM512 576h128v-64h-128zM192 704v-128h64v-64h-128v256h192v-64zM384 384h128v-64h-128zM576 384h128v-64h-128zM896 384v-256h-192v64h128v128h-64v64zM320 192h128v-64h-128zM512 192h128v-64h-128zM192 320v-128h64v-64h-128v256h192v-64zM960 896h-896v-896h896v896zM1024 960v0-1024h-1024v1024h1024z" />
<glyph unicode="&#xe027;" glyph-name="pagebreak" d="M0 448h128v-64h-128zM192 448h192v-64h-192zM448 448h128v-64h-128zM640 448h192v-64h-192zM896 448h128v-64h-128zM880 960l16-448h-768l16 448h32l16-384h640l16 384zM144-64l-16 384h768l-16-384h-32l-16 320h-640l-16-320z" />
<glyph unicode="&#xe028;" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" />
<glyph unicode="&#xe02a;" glyph-name="bold" d="M707.88 475.348c37.498 44.542 60.12 102.008 60.12 164.652 0 141.16-114.842 256-256 256h-320v-896h384c141.158 0 256 114.842 256 256 0 92.956-49.798 174.496-124.12 219.348zM384 768h101.5c55.968 0 101.5-57.42 101.5-128s-45.532-128-101.5-128h-101.5v256zM543 128h-159v256h159c58.45 0 106-57.42 106-128s-47.55-128-106-128z" />
<glyph unicode="&#xe02b;" glyph-name="italic" d="M896 896v-64h-128l-320-768h128v-64h-448v64h128l320 768h-128v64z" />
<glyph unicode="&#xe02c;" glyph-name="underline" d="M704 896h128v-416c0-159.058-143.268-288-320-288-176.73 0-320 128.942-320 288v416h128v-416c0-40.166 18.238-78.704 51.354-108.506 36.896-33.204 86.846-51.494 140.646-51.494s103.75 18.29 140.646 51.494c33.116 29.802 51.354 68.34 51.354 108.506v416zM192 128h640v-128h-640z" />
<glyph unicode="&#xe02d;" glyph-name="strikethrough" d="M731.42 442.964c63.92-47.938 100.58-116.086 100.58-186.964s-36.66-139.026-100.58-186.964c-59.358-44.518-137.284-69.036-219.42-69.036-82.138 0-160.062 24.518-219.42 69.036-63.92 47.938-100.58 116.086-100.58 186.964h128c0-69.382 87.926-128 192-128s192 58.618 192 128c0 69.382-87.926 128-192 128-82.138 0-160.062 24.518-219.42 69.036-63.92 47.94-100.58 116.086-100.58 186.964s36.66 139.024 100.58 186.964c59.358 44.518 137.282 69.036 219.42 69.036 82.136 0 160.062-24.518 219.42-69.036 63.92-47.94 100.58-116.086 100.58-186.964h-128c0 69.382-87.926 128-192 128s-192-58.618-192-128c0-69.382 87.926-128 192-128 82.136 0 160.062-24.518 219.42-69.036zM0 448h1024v-64h-1024z" />
<glyph unicode="&#xe02e;" glyph-name="visualchars" d="M384 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224z" />
<glyph unicode="&#xe02f;" glyph-name="ltr" d="M448 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM64 512l256-224-256-224z" />
<glyph unicode="&#xe030;" glyph-name="rtl" d="M256 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM960 64l-256 224 256 224z" />
<glyph unicode="&#xe031;" glyph-name="copy" d="M832 704h-192v64l-192 192h-448v-768h384v-256h640v576l-192 192zM832 613.49l101.49-101.49h-101.49v101.49zM448 869.49l101.49-101.49h-101.49v101.49zM64 896h320v-192h192v-448h-512v640zM960 0h-512v192h192v448h128v-192h192v-448z" />
<glyph unicode="&#xe032;" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" />
<glyph unicode="&#xe033;" glyph-name="checkbox" d="M128 416l288-288 480 480-128 128-352-352-160 160z" />
<glyph unicode="&#xe034;" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM904.34 256h74.86l44.8 448h-1024l64-640h484.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM1002.996 46.25l-198.496 174.692c17.454 28.92 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l174.692-198.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM640 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" />
<glyph unicode="&#xe035;" glyph-name="pastetext" d="M512 448v-128h32l32 64h64v-256h-48v-64h224v64h-48v256h64l32-64h32v128zM832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h640v704h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM960 0h-512v576h512v-576z" />
<glyph unicode="&#xe600;" glyph-name="gamma" d="M483.2 320l-147.2 336c-9.6 25.6-19.2 44.8-25.6 54.4s-16 12.8-25.6 12.8c-16 0-25.6-3.2-28.8-3.2v70.4c9.6 6.4 25.6 6.4 38.4 9.6 32 0 57.6-6.4 73.6-22.4 6.4-6.4 12.8-16 19.2-25.6 6.4-12.8 12.8-25.6 16-41.6l121.6-291.2 150.4 371.2h92.8l-198.4-470.4v-224h-86.4v224zM0 960v-1024h1024v1024h-1024zM960 0h-896v896h896v-896z" />
<glyph unicode="&#xe601;" glyph-name="orientation" d="M627.2 80h-579.2v396.8h579.2v-396.8zM553.6 406.4h-435.2v-256h435.2v256zM259.2 732.8c176 176 457.6 176 633.6 0s176-457.6 0-633.6c-121.6-121.6-297.6-160-454.4-108.8 121.6-28.8 262.4 9.6 361.6 108.8 150.4 150.4 160 384 22.4 521.6-121.6 121.6-320 128-470.4 19.2l86.4-86.4-294.4-22.4 22.4 294.4 92.8-92.8z" />
<glyph unicode="&#xe602;" glyph-name="invert" d="M892.8-22.4l-89.6 89.6c-70.4-80-172.8-131.2-288-131.2-208 0-380.8 166.4-384 377.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4v0c0 0 0 0 0 3.2 0 0 0 3.2 0 3.2 3.2 105.6 48 211.2 105.6 304l-192 192 44.8 44.8 182.4-182.4c0 0 0 0 0 0l569.6-569.6c0 0 0 0 0 0l99.2-99.2-48-44.8zM896 326.4c0 0 0 0 0 0 0 3.2 0 6.4 0 6.4-9.6 316.8-384 627.2-384 627.2s-108.8-89.6-208-220.8l70.4-70.4c6.4 9.6 16 22.4 22.4 32 41.6 51.2 83.2 96 115.2 128v0c32-32 73.6-76.8 115.2-128 108.8-137.6 169.6-265.6 172.8-371.2 0 0 0-3.2 0-3.2v0 0c0-3.2 0-3.2 0-6.4s0-3.2 0-3.2v0 0c0-22.4-3.2-41.6-9.6-64l76.8-76.8c16 41.6 28.8 89.6 28.8 137.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4z" />
<glyph unicode="&#xe603;" glyph-name="codesample" d="M199.995 578.002v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-100.518 0-182.003-81.485-182.003-182.003v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-100.515 81.485-182.003 182.003-182.003h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 50.931-20.928 96.966-54.646 130.002 33.716 33.036 54.646 79.072 54.646 130.002zM824.005 578.002v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c100.515 0 182.003-81.485 182.003-182.003v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-100.515-81.488-182.003-182.003-182.003h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 50.931 20.928 96.966 54.646 130.002-33.716 33.036-54.646 79.072-54.646 130.002zM616.002 603.285c0-57.439-46.562-104.002-104.002-104.002s-104.002 46.562-104.002 104.002c0 57.439 46.562 104.002 104.002 104.002s104.002-46.562 104.002-104.002zM512 448.717c-57.439 0-104.002-46.562-104.002-104.002 0-55.845 26-100.115 105.752-103.88-23.719-33.417-59.441-46.612-105.752-50.944v-61.751c0 0 208.003-18.144 208.003 216.577-0.202 57.441-46.56 104.004-104.002 104.004z" />
<glyph unicode="&#xe604;" glyph-name="tablerowprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
<glyph unicode="&#xe605;" glyph-name="tablecellprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
<glyph unicode="&#xe606;" glyph-name="table2" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-896v192h896v-192z" />
<glyph unicode="&#xe607;" glyph-name="tablemergecells" d="M0 896v-896h1024v896h-1024zM384 64v448h576v-448h-576zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192z" />
<glyph unicode="&#xe608;" glyph-name="tableinsertcolbefore" d="M320 188.8v182.4h-182.4v89.6h182.4v182.4h86.4v-182.4h185.6v-89.6h-185.6v-182.4zM0 896v-896h1024v896h-1024zM640 64h-576v704h576v-704zM960 64h-256v192h256v-192zM960 320h-256v192h256v-192zM960 576h-256v192h256v-192z" />
<glyph unicode="&#xe609;" glyph-name="tableinsertcolafter" d="M704 643.2v-182.4h182.4v-89.6h-182.4v-182.4h-86.4v182.4h-185.6v89.6h185.6v182.4zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v704h576v-704z" />
<glyph unicode="&#xe60a;" glyph-name="tableinsertrowbefore" d="M691.2 508.8h-144v-144h-70.4v144h-144v67.2h144v144h70.4v-144h144zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM640 64h-256v192h256v-192zM960 64h-256v192h256v-192zM960 316.8h-896v451.2h896v-451.2z" />
<glyph unicode="&#xe60b;" glyph-name="tableinsertrowafter" d="M332.8 323.2h144v144h70.4v-144h144v-67.2h-144v-144h-70.4v144h-144zM0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM64 768h256v-192h-256v192zM960 64h-896v451.2h896v-451.2zM960 576h-256v192h256v-192z" />
<glyph unicode="&#xe60d;" glyph-name="tablesplitcells" d="M0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v448h576v-448zM960 576h-256v192h256v-192zM864 156.8l-60.8-60.8-131.2 131.2-131.2-131.2-60.8 60.8 131.2 131.2-131.2 131.2 60.8 60.8 131.2-131.2 131.2 131.2 60.8-60.8-131.2-131.2z" />
<glyph unicode="&#xe60e;" glyph-name="tabledelete" d="M0 896h1024v-896h-1024v896zM60.8 768v-704h899.2v704h-899.2zM809.6 211.2l-96-96-204.8 204.8-204.8-204.8-96 96 204.8 204.8-204.8 204.8 96 96 204.8-204.8 204.8 204.8 96-96-204.8-204.8z" />
<glyph unicode="&#xe62a;" glyph-name="tableleftheader" d="M0 896v-832h1024v832h-1024zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM640 640h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-256v192h256v-192z" />
<glyph unicode="&#xe62b;" glyph-name="tabletopheader" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192z" />
<glyph unicode="&#xe800;" glyph-name="tabledeleterow" d="M886.4 572.8l-156.8-156.8 160-160-76.8-76.8-160 160-156.8-156.8-76.8 73.6 160 160-163.2 163.2 76.8 76.8 163.2-163.2 156.8 156.8 73.6-76.8zM0 896v-896h1024v896h-1024zM960 576h-22.4l-64-64h86.4v-192h-89.6l64-64h25.6v-192h-896v192h310.4l64 64h-374.4v192h371.2l-64 64h-307.2v192h896v-192z" />
<glyph unicode="&#xe801;" glyph-name="tabledeletecol" d="M320 499.2l64-64v-12.8l-64-64v140.8zM640 422.4l64-64v137.6l-64-64v-9.6zM1024 896v-896h-1024v896h1024zM960 768h-256v-51.2l-12.8 12.8-51.2-51.2v89.6h-256v-89.6l-51.2 51.2-12.8-12.8v51.2h-256v-704h256v118.4l35.2-35.2 28.8 28.8v-115.2h256v115.2l48-48 16 16v-83.2h256v707.2zM672 662.4l-156.8-156.8-163.2 163.2-76.8-76.8 163.2-163.2-156.8-156.8 76.8-76.8 156.8 156.8 160-160 76.8 76.8-160 160 156.8 156.8-76.8 76.8z" />
<glyph unicode="&#xe900;" glyph-name="a11y" d="M960 704v64l-448-128-448 128v-64l320-128v-256l-128-448h64l192 448 192-448h64l-128 448v256zM416 800q0 40 28 68t68 28 68-28 28-68-28-68-68-28-68 28-28 68z" />
<glyph unicode="&#xe901;" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM384 512h128v-128h-128v128zM576 512h448v-128h-448v128zM0 320h128v-128h-128v128zM192 320h832v-128h-832v128zM192 128h128v-128h-128v128zM384 128h640v-128h-640v128z" />
<glyph unicode="&#xe902;" glyph-name="fill" d="M521.6 915.2l-67.2-67.2-86.4 86.4-86.4-86.4 86.4-86.4-368-368 432-432 518.4 518.4-428.8 435.2zM435.2 134.4l-262.4 262.4 35.2 35.2 576 51.2-348.8-348.8zM953.6 409.6c-6.4-6.4-16-16-28.8-32-28.8-32-41.6-64-41.6-89.6v0 0 0 0 0 0 0c0-16 6.4-35.2 22.4-48 12.8-12.8 32-22.4 48-22.4s35.2 6.4 48 22.4 22.4 32 22.4 48v0 0 0 0 0 0 0c0 25.6-12.8 54.4-41.6 89.6-9.6 16-22.4 25.6-28.8 32v0z" />
<glyph unicode="&#xe903;" glyph-name="borderwidth" d="M0 265.6h1024v-128h-1024v128zM0 32h1024v-64h-1024v64zM0 566.4h1024v-192h-1024v192zM0 928h1024v-256h-1024v256z" />
<glyph unicode="&#xe904;" glyph-name="line" d="M739.2 627.2l-502.4-502.4h-185.6v185.6l502.4 502.4 185.6-185.6zM803.2 688l-185.6 185.6 67.2 67.2c22.4 22.4 54.4 22.4 76.8 0l108.8-108.8c22.4-22.4 22.4-54.4 0-76.8l-67.2-67.2zM41.6 48h940.8v-112h-940.8v112z" />
<glyph unicode="&#xe905;" glyph-name="count" d="M0 480h1024v-64h-1024v64zM304 912v-339.2h-67.2v272h-67.2v67.2zM444.8 694.4v-54.4h134.4v-67.2h-201.6v153.6l134.4 64v54.4h-134.4v67.2h201.6v-153.6zM854.4 912v-339.2h-204.8v67.2h137.6v67.2h-137.6v70.4h137.6v67.2h-137.6v67.2zM115.2 166.4c3.2 57.6 38.4 83.2 108.8 83.2 38.4 0 67.2-9.6 86.4-25.6s25.6-35.2 25.6-70.4v-112c0-25.6 0-28.8 9.6-41.6h-73.6c-3.2 9.6-3.2 9.6-6.4 19.2-22.4-19.2-41.6-25.6-70.4-25.6-54.4 0-89.6 32-89.6 76.8s28.8 70.4 99.2 80l38.4 6.4c16 3.2 22.4 6.4 22.4 16 0 12.8-12.8 22.4-38.4 22.4s-41.6-9.6-44.8-28.8h-67.2zM262.4 115.2c-6.4-3.2-12.8-6.4-25.6-6.4l-25.6-6.4c-25.6-6.4-38.4-16-38.4-28.8 0-16 12.8-25.6 35.2-25.6s41.6 9.6 54.4 32v35.2zM390.4 336h73.6v-112c22.4 16 41.6 22.4 67.2 22.4 64 0 105.6-51.2 105.6-124.8 0-76.8-44.8-134.4-108.8-134.4-32 0-48 9.6-67.2 35.2v-28.8h-70.4v342.4zM460.8 121.6c0-41.6 22.4-70.4 51.2-70.4s51.2 28.8 51.2 70.4c0 44.8-19.2 70.4-51.2 70.4-28.8 0-51.2-28.8-51.2-70.4zM851.2 153.6c-3.2 22.4-19.2 35.2-44.8 35.2-32 0-51.2-25.6-51.2-70.4 0-48 19.2-73.6 51.2-73.6 25.6 0 41.6 12.8 44.8 41.6l70.4-3.2c-9.6-60.8-54.4-96-118.4-96-73.6 0-121.6 51.2-121.6 128 0 80 48 131.2 124.8 131.2 64 0 108.8-35.2 112-96h-67.2z" />
<glyph unicode="&#xe906;" glyph-name="reload" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" />
<glyph unicode="&#xe907;" glyph-name="translate" d="M553.6 304l-118.4 118.4c80 89.6 137.6 195.2 172.8 304h137.6v92.8h-326.4v92.8h-92.8v-92.8h-326.4v-92.8h518.4c-32-89.6-80-176-147.2-249.6-44.8 48-80 99.2-108.8 156.8h-92.8c35.2-76.8 80-147.2 137.6-211.2l-236.8-233.6 67.2-67.2 233.6 233.6 144-144c3.2 0 38.4 92.8 38.4 92.8zM816 540.8h-92.8l-208-560h92.8l51.2 140.8h220.8l51.2-140.8h92.8l-208 560zM691.2 214.4l76.8 201.6 76.8-201.6h-153.6z" />
<glyph unicode="&#xe908;" glyph-name="drag" d="M576 896h128v-128h-128v128zM576 640h128v-128h-128v128zM320 640h128v-128h-128v128zM576 384h128v-128h-128v128zM320 384h128v-128h-128v128zM320 128h128v-128h-128v128zM576 128h128v-128h-128v128zM320 896h128v-128h-128v128z" />
<glyph unicode="&#xe90b;" glyph-name="home" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" />
<glyph unicode="&#xe911;" glyph-name="books" d="M576.234 670.73l242.712 81.432 203.584-606.784-242.712-81.432zM0 64h256v704h-256v-704zM64 640h128v-64h-128v64zM320 64h256v704h-256v-704zM384 640h128v-64h-128v64z" />
<glyph unicode="&#xe914;" glyph-name="upload" d="M839.432 760.57c27.492-27.492 50.554-78.672 55.552-120.57h-318.984v318.984c41.898-4.998 93.076-28.060 120.568-55.552l142.864-142.862zM512 576v384h-368c-44 0-80-36-80-80v-864c0-44 36-80 80-80h672c44 0 80 36 80 80v560h-384zM576 192v-192h-192v192h-160l256 256 256-256h-160z" />
<glyph unicode="&#xe915;" glyph-name="editimage" d="M768 416v-352h-640v640h352l128 128h-512c-52.8 0-96-43.2-96-96v-704c0-52.8 43.2-96 96-96h704c52.798 0 96 43.2 96 96v512l-128-128zM864 960l-608-608v-160h160l608 608c0 96-64 160-160 160zM416 320l-48 48 480 480 48-48-480-480z" />
<glyph unicode="&#xe91c;" glyph-name="bubble" d="M928 896h-832c-52.8 0-96-43.2-96-96v-512c0-52.8 43.2-96 96-96h160v-256l307.2 256h364.8c52.8 0 96 43.2 96 96v512c0 52.8-43.2 96-96 96zM896 320h-379.142l-196.858-174.714v174.714h-192v448h768v-448z" />
<glyph unicode="&#xe91d;" glyph-name="user" d="M622.826 257.264c-22.11 3.518-22.614 64.314-22.614 64.314s64.968 64.316 79.128 150.802c38.090 0 61.618 91.946 23.522 124.296 1.59 34.054 48.96 267.324-190.862 267.324s-192.45-233.27-190.864-267.324c-38.094-32.35-14.57-124.296 23.522-124.296 14.158-86.486 79.128-150.802 79.128-150.802s-0.504-60.796-22.614-64.314c-71.22-11.332-337.172-128.634-337.172-257.264h896c0 128.63-265.952 245.932-337.174 257.264z" />
<glyph unicode="&#xe926;" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" />
<glyph unicode="&#xe927;" glyph-name="unlock" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" />
<glyph unicode="&#xe928;" glyph-name="settings" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" />
<glyph unicode="&#xe92a;" glyph-name="remove2" d="M192-64h640l64 704h-768zM640 832v128h-256v-128h-320v-192l64 64h768l64-64v192h-320zM576 832h-128v64h128v-64z" />
<glyph unicode="&#xe92d;" glyph-name="menu" d="M384 896h256v-256h-256zM384 576h256v-256h-256zM384 256h256v-256h-256z" />
<glyph unicode="&#xe930;" glyph-name="warning" d="M1009.956 44.24l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648s-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.302 0 96.792 48.708 63.302 108.24zM512 64c-35.346 0-64 28.654-64 64 0 35.348 28.654 64 64 64 35.348 0 64-28.652 64-64 0-35.346-28.652-64-64-64zM556 256h-88l-20 256c0 35.346 28.654 64 64 64s64-28.654 64-64l-20-256z" />
<glyph unicode="&#xe931;" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
<glyph unicode="&#xe932;" glyph-name="pluscircle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM768 384h-192v-192h-128v192h-192v128h192v192h128v-192h192z" />
<glyph unicode="&#xe933;" glyph-name="info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM448 768h128v-128h-128v128zM640 128h-256v64h64v256h-64v64h192v-320h64v-64z" />
<glyph unicode="&#xe934;" glyph-name="notice" d="M1024 224l-288 736h-448l-288-288v-448l288-288h448l288 288v448l-288 288zM576 128h-128v128h128v-128zM576 384h-128v384h128v-384z" />
<glyph unicode="&#xe935;" glyph-name="drop" d="M864.626 486.838c-65.754 183.44-205.11 348.15-352.626 473.162-147.516-125.012-286.87-289.722-352.626-473.162-40.664-113.436-44.682-236.562 12.584-345.4 65.846-125.14 198.632-205.438 340.042-205.438s274.196 80.298 340.040 205.44c57.27 108.838 53.25 231.962 12.586 345.398zM738.764 201.044c-43.802-83.252-132.812-137.044-226.764-137.044-55.12 0-108.524 18.536-152.112 50.652 13.242-1.724 26.632-2.652 40.112-2.652 117.426 0 228.668 67.214 283.402 171.242 44.878 85.292 40.978 173.848 23.882 244.338 14.558-28.15 26.906-56.198 36.848-83.932 22.606-63.062 40.024-156.34-5.368-242.604z" />
<glyph unicode="&#xe939;" glyph-name="minus" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" />
<glyph unicode="&#xe93a;" glyph-name="plus" d="M992 576h-352v352c0 17.672-14.328 32-32 32h-192c-17.672 0-32-14.328-32-32v-352h-352c-17.672 0-32-14.328-32-32v-192c0-17.672 14.328-32 32-32h352v-352c0-17.672 14.328-32 32-32h192c17.672 0 32 14.328 32 32v352h352c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32z" />
<glyph unicode="&#xe93b;" glyph-name="arrowup" d="M0 320l192-192 320 320 320-320 192 192-511.998 512z" />
<glyph unicode="&#xe93c;" glyph-name="arrowright" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" />
<glyph unicode="&#xe93d;" glyph-name="arrowdown" d="M1024 576l-192 192-320-320-320 320-192-192 512-511.998z" />
<glyph unicode="&#xe93f;" glyph-name="arrowup2" d="M768 320l-256 256-256-256z" />
<glyph unicode="&#xe940;" glyph-name="arrowdown2" d="M256 576l256-256 256 256z" />
<glyph unicode="&#xe941;" glyph-name="menu2" d="M256 704l256-256 256 256zM255.996 384.004l256-256 256 256z" />
<glyph unicode="&#xe961;" glyph-name="newtab" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" />
<glyph unicode="&#xeaa8;" glyph-name="rotateleft" d="M607.998 831.986c-212.070 0-383.986-171.916-383.986-383.986h-191.994l246.848-246.848 246.848 246.848h-191.994c0 151.478 122.798 274.276 274.276 274.276 151.48 0 274.276-122.798 274.276-274.276 0-151.48-122.796-274.276-274.276-274.276v-109.71c212.070 0 383.986 171.916 383.986 383.986s-171.916 383.986-383.986 383.986z" />
<glyph unicode="&#xeaa9;" glyph-name="rotateright" d="M416.002 831.986c212.070 0 383.986-171.916 383.986-383.986h191.994l-246.848-246.848-246.848 246.848h191.994c0 151.478-122.798 274.276-274.276 274.276-151.48 0-274.276-122.798-274.276-274.276 0-151.48 122.796-274.276 274.276-274.276v-109.71c-212.070 0-383.986 171.916-383.986 383.986s171.916 383.986 383.986 383.986z" />
<glyph unicode="&#xeaaa;" glyph-name="flipv" d="M0 576h1024v384zM1024 0v384h-1024z" />
<glyph unicode="&#xeaac;" glyph-name="fliph" d="M576 960v-1024h384zM0-64h384v1024z" />
<glyph unicode="&#xeb35;" glyph-name="zoomin" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" />
<glyph unicode="&#xeb36;" glyph-name="zoomout" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" />
<glyph unicode="&#xeba7;" glyph-name="sharpen" d="M768 832h-512l-256-256 512-576 512 576-256 256zM512 181.334v2.666h-2.37l-14.222 16h16.592v16h-30.814l-14.222 16h45.036v16h-59.258l-14.222 16h73.48v16h-87.704l-14.222 16h101.926v16h-116.148l-14.222 16h130.37v16h-144.592l-14.222 16h158.814v16h-173.038l-14.222 16h187.26v16h-201.482l-14.222 16h215.704v16h-229.926l-14.222 16h244.148v16h-258.372l-14.222 16h272.594v16h-286.816l-14.222 16h301.038v16h-315.26l-14.222 16h329.482v16h-343.706l-7.344 8.262 139.072 139.072h211.978v-3.334h215.314l16-16h-231.314v-16h247.314l16-16h-263.314v-16h279.314l16-16h-295.314v-16h311.314l16-16h-327.314v-16h343.312l7.738-7.738-351.050-394.928z" />
<glyph unicode="&#xec6a;" glyph-name="options" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" />
<glyph unicode="&#xeccc;" glyph-name="sun" d="M512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.348 0-64 28.654-64 64s28.652 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.258c24.992-24.99 24.992-65.516 0-90.508-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.99-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.518 24.992 90.508 0 24.994-24.994 24.994-65.52 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0s-24.994 65.518 0 90.508l45.256 45.258zM512 704c-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 141.384-114.616 256-256 256zM512 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
<glyph unicode="&#xeccd;" glyph-name="moon" d="M715.812 895.52c-60.25 34.784-124.618 55.904-189.572 64.48 122.936-160.082 144.768-384.762 37.574-570.42-107.2-185.67-312.688-279.112-512.788-252.68 39.898-51.958 90.376-97.146 150.628-131.934 245.908-141.974 560.37-57.72 702.344 188.198 141.988 245.924 57.732 560.372-188.186 702.356z" />
<glyph unicode="&#xecd4;" glyph-name="contrast" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM128 448c0 212.078 171.922 384 384 384v-768c-212.078 0-384 171.922-384 384z" />
<glyph unicode="&#xed6a;" glyph-name="remove22" d="M893.254 738.746l-90.508 90.508-290.746-290.744-290.746 290.744-90.508-90.506 290.746-290.748-290.746-290.746 90.508-90.508 290.746 290.746 290.746-290.746 90.508 90.51-290.744 290.744z" />
<glyph unicode="&#xedc0;" glyph-name="arrowleft" d="M672-64l192 192-320 320 320 320-192 192-512-512z" />
<glyph unicode="&#xedf9;" glyph-name="resize2" d="M0 896v-384c0-35.346 28.654-64 64-64s64 28.654 64 64v229.488l677.488-677.488h-229.488c-35.346 0-64-28.652-64-64 0-35.346 28.654-64 64-64h384c35.346 0 64 28.654 64 64v384c0 35.348-28.654 64-64 64s-64-28.652-64-64v-229.488l-677.488 677.488h229.488c35.346 0 64 28.654 64 64s-28.652 64-64 64h-384c-35.346 0-64-28.654-64-64z" />
<glyph unicode="&#xee78;" glyph-name="crop" d="M832 704l192 192-64 64-192-192h-448v192h-128v-192h-192v-128h192v-512h512v-192h128v192h192v128h-192v448zM320 640h320l-320-320v320zM384 256l320 320v-320h-320z" />
</font></defs></svg>editors/tinymce/skins/lightgray/fonts/tinymce-small.woff000064400000022244152177723720017621 0ustar00wOFF$�$XOS/2``$cmaphllƭ��gasp�glyf�	G�head �66g�{hhea!$$��hmtx!<����loca" tt�$�Zmaxp"�  I�name"���L܁post$�  ��������3	@����@�@ P �(�2�5����� ��*�4�������   5��797979@��7%'!"3!2653#5!81!813#4&#!"#33!26=��!//!�!/��@@�����@&��&@@&@&�PP�/!� !//!������&&���&&������.'.#!"3!2654&'#5!8181!!81S�A�`&&�&.
�
����͆&�&& A-
�
��������095'.'7'./#'737>77'>?%#'573�hq�+�+�qh��hq�+�+�qh���������p�+�qh��hq�+�+�qh��hq�+������@@�!!!!!!!!@������@��@�����@���@@�!!!!!!!!@������������@���@@�!!!!!!!!@������@@��@�����@���@@�!!!!!!!!@���������������@����)w`*@Mc.'70>&'	1&67>'776&'#"&'&67>327"&54632##"&'.'&67>32`"V)?�$0����0$�?)V"9
//�8# ?? #8�//
9�))	�%%%%3)	)"# ?�,H\0��@0\H,�? #8�//
9"V)??)V"9
//�8Y$C
�%%%%�$
C@��',0754&+54&+"#";!7#81381#55!!537#!!�
�&�&�

������������ee����@�
@&&@
�
���@@�@@��ee����@��*9HW#35!3!35!3#";2653;2654&##"&546;2##"&546;2##"&546;2#x8@��@�@��@8**�*�*�**����@

@

<��@@@�@@�*�P**8��**�*�



�



��



�@�@%2!!!!!!32654&#"32654&#"32654&#"�@��@��@���%%%%%%%%%%%%@������%%%%��%%%%��%%%%���%!!!!!!5##3#33#3#3#5�@��@��@��@@�@@��������@�����n�@@�@2<�@@@@@2@@�!!!!!!!!@���@@��@������������@�����@@�!!!!!!!!@���@��@�����������@�����@��?2#".5'4>3">3!2#".5'4>3">3(F44F('F4<h�O7d&
(F44F('F4<h�O7d&
 7J*+J7  7J+T�o@t,*	 7J*+J7  7J+T�o@t,*	p��%>.	6�$"����P��?OlK��S�PP�y�x@��5	5&.>@P����"$lO?̰������S��Kx��y@��0m'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&'&4762#��))�!!D���D))�!!��D���D))��))��@ ��څ�!]!D
��
�D�!]!��D���D�))��))m @ ��@��0m�����'.#"7'&4?>32#"&/326?64'#"&/.546?>327'.#"326?>54&/"&/&4762#"&=4632##"&546;2#2"/&47>372#"&=46332+"&5463��))�!!D���D))�!!��D���D))��))��� ��



@�

�

�@� ��



���

�

څ�!]!D
��
�D�!]!��D���D�))��))�� � z
�

�
@



�� � z
�

�
��



�	!'!�����������+����k@@�@$1!"3!2654&#818181!8132654&#"��&&&&����8((88((8@&��&&�&�@@� � ����(88((88(	@@�@$).36!"3!2654&##53#53#53!!3#53#53#53!%��&&&&�������������������� @&��&&�&�@�������������������@��:3#52#575!5!'"32>7>54.'.#���%�\�����-VQI  0""0  IQV--VQI  0""0  IQV-���%��@�@��"0  IQV--VQI  0""0  IQV--VQI  0"`���'7'	���@�@@��@��@��@��@N�f
)>S>7'%7.'"&/54632#"32>54.#".54>32#NQ&rE+NE;TEr&Q;EN+B�

n		`P�i<<i�PP�i<<i�P<iN--Ni<<iN--Ni<�3=[[+6B&�[[=3&B6+��I�

�7		<i�PP�i<<i�PP�i<�`-Ni<<iN--Ni<<iN-@��3@e>7>325.'.#"%"32>7.##"&54632#"&'.'>7>732654&'@"M*D�MM�D*M"4'TVY--YVT'4�E�sb&&bs�EE�sb&&bs�E%%%%�3l99l3'FF'

pPPp

'FF'�&?())(?&v%##%v�$C_::_C$$C_::_C$�%%%%�=%%='PppP'=%%=��.+"8137337>101#�;@<�q:�:q��''��> @� ��䤈�
@@�	"',1!!5!!!5!!5!!#533#5!3#5=3#3#553#@���@����������@��������@���@��@��@������������@��������@��!!@����@@��
7!!5###5!''7'77@��ݷ���@���>��>��>��>���@����@��>��>��>��>����%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n������@��4%5>54.#"#'!5.54>32!5#�9^D%Fz�]]�zF%D^9�@@&?-/Qm>>mQ/-?&@@��%GZj9P�i<<i�P9jZG%`��;KX0BuW22WuB0XK;��`@��.;HY2#"&'.5467>35"32>54.#132654&#"!32654&#""&'32>7#K�558855�KK�558855�K]�zFFz�]]�zFFz�]�%%%%%%%%@L�,	-CS//SC-	,�L4855�KK�558855�KK�558LFz�]]�zFFz�]]�zF��%%%%%%%%��3+,K88K,+3@@�@+!!5!";!532654&#!!#"&54632���&&��&&�����@���&�&��&&���@��
'7!7!7!!'!'!'7�������������`�����`��@��������`�����`��������@��"'9>C5#"'35#334&+"35353#54&#26=4&+32653#53#5��&�юR������@@&�&@����&��&�����@@&��	���F���@@���&&�������`&&`&�@&@�����@@��#53533##5!3!53�������������������@��@��@��#).39=A3#3#3#7#3!3#3#3#35353##!!!!35353#'3#����@���@��@��@�����@@��@@�����@��@@@�����@@��@@@�@@�@�@��@��@������@��@�@@@@��!%!3!3!#!#3#73#73#73#73#0��  ��� � ���������������������@��@����@@@@@@@@@���&,2#5267>54&'.#"33>3!3@]�zFFz�]G�225522�GG�2&2	���Nv�U����Fz�]]�zF`522�GG�22552&_4�Q�g;���@�@@ ->54.+!2>54&''46;2+5#"&=32#q$+#=R.� .R=#P?�C -- s�s� -- �S/+L8!�!8L+Bi�8((8��0�8((8�@@@#3!53#5!@����@���@@��@@�@�@@!7!!5#"&'.5#32>5#�@���=""=�-Ni<<iN-��@@���--���5]F((F]5�@@�@>!.#"&546323.'.#"!!#"&'#3267>54&'35���%^3CbbC8Yq+#&a55a&)--)��+9bC8Yq+#&a55a&)-��A-,A/#&ET-.T@
6",A/#&ET-3@�@@@"333335!�.R=##=R.�@���@@#=R..R=#�������@@�@"333335!7'�.R=##=R.�@���@����@#=R..R=#����������`@�@"333335!@.R=##=R.�@���@���@#=R..R=#�����������@�
"#5'!!!'#5#5%!3!!5333@�����@�ee��ee����@@�@����@��@���[eeee���@�������@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@@��6C!'!!3!!.54>32'>54&#"3267?6&'%"&54632#��` ��@�xX ��@d'B0+Jc88cJ+#�
pPPppP2o3��3II33II3@@�����3BQ,8cJ++Jc8 �o2PppPPp
�3VI33II33I@��&+0@54&+54&+"#";!#81381#55!!!!373#35#5335�
�&�&�

�@�����������@���  @0�0@  @�
@&&@
�
�@@@�@@����@��@�@@�@��� `%KXk546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==+�=+*;>%ZX+=�C�_<��0=��0=���������9@�@@@@�@@��@@@p@@@@@@`N@�@@@@@@@@@@@����@�@`@@@��
l�0Rt�0~�@x��"Bb B`��Nn�z��		6	`	�	�
P
�
�,P��B���
0
R
|
�
�:���9��
�
H
�'
o
�	
	�	U	�	2	|	
4�tinymce-smalltinymce-smallVersion 1.0Version 1.0tinymce-smalltinymce-smalltinymce-smalltinymce-smallRegularRegulartinymce-smalltinymce-smallFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce.ttf000064400000042000152177723720016337 0ustar00�0OS/2��`cmap�f��4gaspPglyf}
�=X<�head/>�6hhea�6?$$hmtx��?H�loca�e�TA<�maxp��B8 name�TBX�postC� ��������3	@�x���@�@ B@ �(�5���+�������(�*�-�5�=�A�a���6��j�����j���x���� ��*��
�*�������&�*�-�0�9�?�a���5��j�����j���x������  98IKIDB<431/,+��=�������797979���!!!3#!3!3��������@@K5�������@5@����1'.#!"3!2654&#5#!"&5463!23��P!� !//!�!/!E��	� 		����!/!��!//!`!P���		`	����/75'.'7'./#'737>77'>7'#'573�hq�+�+�qh��hq�+�+�qh�������p�+�qh��hq�+�+�qh��hq�+ ������!!!!!!!!!!�����������@���@����!!!!!!!!!!�������������@���@����!!!!!!!!!!��������������@���@����!!!!!!!!!!�������@�@�@�@�m����2Vb�%.+'>4&'	#"3267>'732676&'#"&'.5467>7>7>327"&54632#"&'.'.'.5467>32{"T(@������@(T"=3; (S#("AA"(#S( ;3=���%55%%552�"#@DHD���DHD�@#"=�3#"(c.BB.c("#3�=�

�5&%55%&5�

@���&*-354&+54&+"#"3!!781381#55!537#!!@
�&�&�

 ��������e�����
@&&@
��
��@@�@@�[e@�@���)7ES!!%!!#!!!#"3!26533!2654&#"&546;2#"&546;2#"&546;2@������x8���8**0*�*0**�����@

@
o���@@@���*��**x��**0*��



�



�@



���#/!!!!!!4632#"&4632#"&4632#"&������������K55KK55KK55KK55KK55KK55K������@5KK55KK��5KK55KK��5KK55KK@���)%!!!!!!'#5#53#575#53#535#535#5�����������@@@�����������������@��2@�<2@��@@@@@�!!!!!!!!!!����������������@�@�@�@����!!!!!!!!!!%�����������������@�@�@�@�����@=2#".5'4>3">!2#".5'4>3">�.R=##=R..R=#Fz�]@u-	I.R=##=R..R=#Fz�]@u-	#=R..R=##=R. ]�zF�0.
#=R..R=##=R. ]�zF�0.
@����
>.	6�+&8�������FO@M��e�����������5	5&&>@�����8&+iOF��������e��Mr�.����
@r67>'&7#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64@
'<

'���
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�


	c
		
�	
A19�.
<'

��'
	�
		
c	

	�	
A�.�-c�*u.Ac�*u.A
	�
		
c	

	�	
A�-����2eimquy}#"&/.546?>327.#"326?>''.#"7.546?>32#"&'326?64''773#3#'3#3#�
	�


	c
		
�	
A19�..c9:�*#A�c9:�*#A
	�	

	c
		
�	
A19�..��.�i@@�����.��@@��
	�
		
c	

	�	
A�-�-d�*u.Ac�*u.A
	�
		
c	

	�	
A�-�-��.��@��.�)��@���@�			!�@@@����@�����%@!!!4632#"&!7@����8((88((8����@��@���(88((88�H��`	@@"!#535#535#53!!#535#535#53%��������@����������@��@����������������������8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P@���	3	!#	3@�����������6�J+6@J"32>54.#"&'.5467>32'>77.'#17'P�i<<i�PP�i<<i�|)i::i)(,,()i::i)(,,�R+%C:0V`<.V0:C%+<`��@�(�<i�PP�i<<i�PP�i<��(,,()i::i)(,,()i::iV0:C%+<`�+%C:0V`6�
�2v� Il"32>7.2#"&546#"&'.'.'>7>732654&'.#">7>325.'O��p,,p��OO��p,,p���%%%%a? "D##D" ?/U##U/2pPPp2/U##U()UWZ..ZWU),R%*a5&MPS**SPM&5a*%R,�$C_::_C$$C_::_C$�%%%%��A((A
6PppP6
A((A�9!m,I

I,m!9��0%7!3#33#B::r��r�H:��������
�#'!5!!5!5#!5!!%!!5!!!!5!����@����������������@������������������!!������7!!!!''7'77@�����@U�|���>��>��>��@���@ ����>��>��>������%3#575#53#'#	373�����܈���������22@�<2@�R���������3#575#53#'#	373�����܈����������2@�<2@�n���������3%!7!5>54.#"!!5.54>32�@��1R<!7`�II�`7!<R1��@FvU/P��jj��P/UvF@���H_p>P�g;;g�P>p_H��!Sl�G]�zFFz�]G�lS���'3?S"32>54.".54>32#"&54632#"&546322>7#".'j��PP��jj��PP��jY�uDDu�YY�uDDu��%%%%�%%%%�5aRB8Um==mU8BRa�P��jj��PP��jj��P�PDu�YY�uDDu�YY�uDp%%%%%%%%��"-@oQ//Qo@-"�'!!!";!32654&!!%#"&54632����&&��&&�����@&��&�&@&��@����
''7''!7!7'7!7��lԊ�v�lԊ�������l�Ԋ���������lԊ��lԊ��������llԊ���@����
048>334&+"33#%5#";5#54&+326=4&#26#535#53	7��@&�&@��@�&&���&��&@�����`�R�`���&&�����@&��&@@``&�@&`&&ƀ@���@ F�.���#53533##%!3!�������@����������������#'/37?CH3#73#%#535#53#73#%3#33#73#%#535#53#73#%3#3!!1!������@��@�@�������@��@�����@��@�@�������@������@�@@@@�@�@�@@@��@@��@@@@�@�@�@@@��@@@�������#3#73#%3#73#%3#!3!!#!������������� ��@ ���@@@@@@@@@@�@��������@�����%+2#5267>54&'.#"33>!3@]�zFFz�]G�225522�GG�2&2	���Nv����Fz�]]�zF`522�GG�22552&_4�Q�g;���@��@�$>54.#!!2>54&32+#32� (F]5���5]F(D��e*<<)f���,>>�"T/5]F(��(F]5FtFK55K��K55K���#3!53#5������@�@��@�@@@�@�3#".533267>5!!��2WuBBuW2�I((I������`<iN--Ni<��`88����8<#"&'.5332654&#"&'.5467>32#4&#"32%!!�0550,q>>q,05�rNNrrN>q,0550,q>>q,05�rNNrrN>q,�%��$b55b$!$$!$b54LL44L$!$b55b$!$$!$b54LL44L$!@���!####".54>�����.R=##=R�����#=R..R=#@��!####".54>
�����.R=##=R��������#=R..R=#���� ��!####".54>-����.R=##=R������#=R..R=#�������	#5'!!!'##%!3!!5333@���@���ee��ee��@��������@���@eeee���@�����@�#'+/37;3#3#3#3#'3#3#'3#3#3#3#3#'3#'3#'3#'3#@@�@@@@@@�@@@@�@@�@@@@@@@@�@@�@@�@@�@@�@@@@@@@�@@@@@@@@@@@@@@@@@@@@@����	''� ������������5A!'!!3!!.54>32'>54&#"3267?6&%"&54632��` ��@�8K-�@�'B0+Jc88cJ+c�
pPPppP2�3��3II33II@@�����3BQ,8cJ++Jc8 ү2PppPPp
�3�I33II33I@���*59=373#35#335'54&+54&+"#"3!!81381#55!!!  @0�0@  @
�&�&�

 ���������@�@@@���
@&&@
��
��@@�@@�@@���"&.'.#"#5>723#5!!!�	&		z�]�W�@���@PF

��s�*�����@�0��}:)%!!!!>2&'>7>&'.s��CI�L���B���BBBBB.mv{;.`_X%8<04-t~8V��P�G�GBBBBB���B-<
3%9���4-0&)V'-����+i'#".'81<5<51045041>7'7818181<1.10>7>71099>581<5<5}Z@JQ+N�i>%�-�:c-x�u%;K%F
<<)?,MY0";f�P'OMJ#�-���d0w�k :R1F&BB&4c^W'MG$�� `%KWj546;5#"+32;5#"&=4&'>5!54&+532;#"+5326=467.5'#"&54632"0>54&#�. Kk.  .kK .p. Kk.  .kK .�=++==++=h+=.<5#ANA=+Bh .hkKh .h. hKkh. h&CC&h .hkKh .h. hKkh. h&CC&+==++==�=+*;>%ZX+=�!!5!5#!55!!!!5!����@��������������������������	�#!!5!5#!5!!%!!5!!!!5!����@�������������������������������@�!!5!5!5!!5!5!5!!5!5!5!5!5!�@��@��@��������@��@��@�@��@�@�@��!!!5#!5!!5!!!��@���@��������������@�������������%5#53533#!!!!5!5!5!5!5!@��V���j����@@�����Z��Z��������@�@�@��3##5#535%!!5!5!5!5!5!!!���V�����@������@��Z��Z��������@�@��@��##5#53533!!5!!5!!5!5!!��F��F��M�@�@�@�������C��@����������=��3533##5#!!!%!!!!5!5!M�F��F��������������C��C������������=��'!!!!5!5!5!5!5!!!5!5!''7'77���@������@�`=��=��=��=���������@�@��@�@���=��=��=��=��!!!!''7'77�=��}�`��`��`��`�����@���`��`��`��`�@�!!5!5!5!5!5!!5!5!5!5!5!�����@������@��@�@��@�@�@�@�!!5!5!5!!5!5!5!!5!5!5!�@��@��@�����@��@��@�@��@�@��$''7'77!#3#3!5!7!5!'!5!v��M��M��M��I��@@VZ@��6@��s@���=��M��J��M��MC�����@�@��@�@��%155!!'5!'5!!57!57!'77'7@@@@@@����
3�3
�#0��M��L��M���@
@�M@�@����3
4ZZ4
3�@v#ss0S�j��M��M��M��@����
5%33'47632#"'&��@�@@�@��@��((((�@��@���@��@��(((
�#'3#7!!3#7!!3#7!!3#7!!3#7!!���@�������������@�����@������������@���@���@���@������3'	7%93267>594&'.'
DVVV����TW��#@�		
	
�CVVV���P���#3I/


,���!!!!!!!!����
�j@V�*�*����	#57'762!!5�
���@�C+lC���Ts�
���=�Cm+C��pp	���	!GVht�!!##53#575#53%#535#535#5>32#.'#"&546?>54&#"##3267573>32#"&'#32654&#"%.#"3267#"&54632#�0CC�Ɇ��̉�����55+J )0.5&C�		�J0:=0GG�G?07BC90>C�@�C�6C�@7C����CCGCC�,( p
+!"'	
3	#�p
E7:MV� '' !%'%"$%-3G9<G2.���2.#"34>32!#".'7!732>5z#U`j8j��P`Aq�V.WOE�`�&Aq�V.WOE����#U`j8j��P&>+P��jV�qA$3 �`���V�qA$3 ����&>+P��j��� (,'>735!5#!!.'#7261%#3733%7#*w4+#
���]��H3!6\D+�D�$]�]3�3]��MM�0v"IMP(]]]]C7$M,:j0�C�]�Ѝ����@��3#3#%3#3#%3#3#%3#3#@������������������������������������	5	!!!�������r��s���s����� @�7)!3#!!3#@�����@���@���Q��Q��@���@@����!!"3!265#5#	G��E���!//!�!/�����E?���/!��!//!0��������!!7!"3!26534&'��`��(88(�(8 ���`X��0�0�����8(�@(88(����`HX��0�0���!";!2654&!5#!���(88(�3m(88H����8(�(8�8((8�����@�`&.106726'46.#"310!4.oE
SZZS
EpqU�Uqp>V@dW^JJ^Wd@V>-FZ00ZF-����##54&+"#"3!2654&%46;2!PqO�Oq �\&�&��OqqO�� ��&&�����#2#54&+"32#!"&5463!5463Oq�&�&���qO�qO��&&�� ��Oq�37OS54&+"#3;26=!5534&+"!!;26=35#534&+"#3;26=!5!53�����@������@�����������@����@�����������������@����
!!%5!!7!5!#53��@����@@����@�����@@�@���!!!!!!������@�@�����$%.#"3!26'%"&546327#4632�K

�K%3f3%�%%%%X%%,g��,@@,%%%%�%%���8M3#2#575!57"32>7>54.'.#512#".54>���%������*PKD--DKP**PKD--DKP*j��PP��jj��PP���@%��@�@��-DKP**PKD--DKP**PKD-`P��jj��PP��jj��P���'3"32>54.".54>32##5#53533j��PP��jj��PP��jP�i<<i�PP�i<<i���������P��jj��PP��jj��P��<i�PP�i<<i�PP�i<@��������!"32>54.3#!53#533j��PP��jj��PP�������@@�@�P��jj��PP��jj��P���@@�����	
%!!#535#3��@�� � �ࠀ������@�� � ��������a�6.'32>7>&'#"&'32>7>'aK\j77j\KHYe55eYH~!|F)N!

,TJ="
"�E�wl//lw�E+XXV).L66L.)VXX+��>K-?'@�5*0�A@@3!26=4&#!"
�

�@
 �

�
���#!4&+"!"3!;265!26=4&�
�
��

`
�
`
@`

��
�
��

`
�
�@	7�@@��@�@��������	��@����������@'	������@���@��@@	��@�@@	@���		������@��	7!!!!'#5'��������[c�����������[b� @�@#"#7#4>32#2>54.#`P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i< @�@#23'34.#"3".54>3�P�i<����+Jd99dJ++Jd9P�i<<i�P@<i�P��9dJ++Jd99dJ+n<i�PP�i<�!!�@��@�����!)@��@�������"6B%'.>54.#"326776&".54>32##33535#��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]������Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(����������"6:%'.>54.#"326776&".54>32!!��'+1<i�PP�i<<i�PG�2�K��5]F((F]55]F((F]����Y�2�GP�i<<i�PP�i<1+'�K(F]55]F((F]55]F(@�@N!	5#'35#'35#'35#'35#'35#'35#'35#'35#'35!'!5!'!5!'!5!'733#3!!!!!!���-;IXft�����������-��I����������7��W��@���@�u��u@@�!!!!!!@����������@�@�
���
)7FTcr��%2#"&=46"&=46322+"&5463+"&546;2"/&4762'&4762"%"'&4?6262"'&4?"32>54."&54632%%%%%%%%�%%@%%�@%@%%@%}-5.5��-5.5g5.5-��5.5-=5]F((F]55]F((F]5B^^BB^^�%@%%@%�%@%%@%�%%%%@%%%%�.5-5�.5-55-5.�<5-5.�(F]55]F((F]55]F(�`^BB^^BB^3��.''>7>.'�-`1.6!((r��KK.\ʿ�553z\� <���EFhA
'C53z\\˿�6���"32>54.4>3".j��PP��jj��PP���<i�PP�i<�P��jj��PP��jj��P�P�i<�<i��C}='			7}Z���Z"��Z##Z���Z��"Z���Z"��Z#���`�7	'����@��@�@@�����(326=#"3!2654&#"32654&#!"%%��%%�%%%�[�%%��%���%%�[%%%�%%��%%%���7'!5##3!3535#!@�@��@�������@��@@��@�����������@@����#�_<��������������}@m@@@.�@6�@������@ �@0-��@*@@@@���@  @3��
B��8b�R�^���Pn�<�F��� <����		`	�

P
�
�@��L���

P
�
� t�x6x��$\��F|��Fz�&Rd��0h��>r�Z�Dl��(<P^l���"4��\vHx���J}��`6uK
�		g	=	|	 	R	
4�tinymcetinymceVersion 1.0Version 1.0tinymcetinymcetinymcetinymceRegularRegulartinymcetinymceFont generated by IcoMoon.Font generated by IcoMoon.editors/tinymce/skins/lightgray/fonts/tinymce-small.svg000064400000060227152177723720017462 0ustar00<?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>Generated by IcoMoon</metadata>
<defs>
<font id="tinymce-small" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe000;" glyph-name="save" d="M960 80v591.938l-223.938 224.062h-592.062c-44.182 0-80-35.816-80-80v-736c0-44.184 35.818-80 80-80h736c44.184 0 80 35.816 80 80zM576 768h64v-192h-64v192zM704 128h-384v255.882c0.034 0.042 0.076 0.082 0.116 0.118h383.77c0.040-0.036 0.082-0.076 0.116-0.118l-0.002-255.882zM832 128h-64v256c0 35.2-28.8 64-64 64h-384c-35.2 0-64-28.8-64-64v-256h-64v640h64v-192c0-35.2 28.8-64 64-64h320c35.2 0 64 28.8 64 64v171.010l128-128.072v-490.938z" />
<glyph unicode="&#xe001;" glyph-name="newdocument" d="M850.746 717.254l-133.492 133.49c-24.888 24.892-74.054 45.256-109.254 45.256h-416c-35.2 0-64-28.8-64-64v-768c0-35.2 28.8-64 64-64h640c35.2 0 64 28.8 64 64v544c0 35.2-20.366 84.364-45.254 109.254zM805.49 672.002c6.792-6.796 13.792-19.162 18.894-32.002h-184.384v184.386c12.84-5.1 25.204-12.1 32-18.896l133.49-133.488zM831.884 64h-639.77c-0.040 0.034-0.082 0.076-0.114 0.116v767.77c0.034 0.040 0.076 0.082 0.114 0.114h383.886v-256h256v-511.884c-0.034-0.040-0.076-0.082-0.116-0.116z" />
<glyph unicode="&#xe002;" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" />
<glyph unicode="&#xe003;" glyph-name="alignleft" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM64 576h576v-128h-576zM64 192h576v-128h-576z" />
<glyph unicode="&#xe004;" glyph-name="aligncenter" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM256 576h512v-128h-512zM256 192h512v-128h-512z" />
<glyph unicode="&#xe005;" glyph-name="alignright" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM384 576h576v-128h-576zM384 192h576v-128h-576z" />
<glyph unicode="&#xe006;" glyph-name="alignjustify" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM64 576h896v-128h-896zM64 192h896v-128h-896z" />
<glyph unicode="&#xe007;" glyph-name="cut" d="M864.408 289.868c-46.47 46.47-106.938 68.004-161.082 62.806l-63.326 63.326 192 192c0 0 128 128 0 256l-320-320-320 320c-128-128 0-256 0-256l192-192-63.326-63.326c-54.144 5.198-114.61-16.338-161.080-62.806-74.98-74.98-85.112-186.418-22.626-248.9 62.482-62.482 173.92-52.354 248.9 22.626 46.47 46.468 68.002 106.938 62.806 161.080l63.326 63.326 63.328-63.328c-5.196-54.144 16.336-114.61 62.806-161.078 74.978-74.98 186.418-85.112 248.898-22.626 62.488 62.482 52.356 173.918-22.624 248.9zM353.124 201.422c-2.212-24.332-15.020-49.826-35.14-69.946-22.212-22.214-51.080-35.476-77.218-35.476-10.524 0-25.298 2.228-35.916 12.848-21.406 21.404-17.376 73.132 22.626 113.136 22.212 22.214 51.080 35.476 77.218 35.476 10.524 0 25.298-2.228 35.916-12.848 13.112-13.11 13.47-32.688 12.514-43.19zM512 352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM819.152 108.848c-10.62-10.62-25.392-12.848-35.916-12.848-26.138 0-55.006 13.262-77.218 35.476-20.122 20.12-32.928 45.614-35.138 69.946-0.958 10.502-0.6 30.080 12.514 43.192 10.618 10.622 25.39 12.848 35.916 12.848 26.136 0 55.006-13.262 77.216-35.474 40.004-40.008 44.032-91.736 22.626-113.14z" />
<glyph unicode="&#xe008;" glyph-name="paste" d="M704 576v160c0 17.6-14.4 32-32 32h-160v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-160c-17.602 0-32-14.4-32-32v-512c0-17.6 14.398-32 32-32h224v-192h384l192 192v384h-192zM320 831.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 640v64h384v-64h-384zM704 90.51v101.49h101.49l-101.49-101.49zM832 256h-192v-192h-256v448h448v-256z" />
<glyph unicode="&#xe009;" glyph-name="searchreplace" d="M888 576h-56v256h64v64h-320v-64h64v-256h-256v256h64v64h-320v-64h64v-256h-56c-39.6 0-72-32.4-72-72v-432c0-39.6 32.4-72 72-72h240c39.6 0 72 32.4 72 72v312h128v-312c0-39.6 32.4-72 72-72h240c39.6 0 72 32.4 72 72v432c0 39.6-32.4 72-72 72zM348 64h-184c-19.8 0-36 14.4-36 32s16.2 32 36 32h184c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM860 64h-184c-19.8 0-36 14.4-36 32s16.2 32 36 32h184c19.8 0 36-14.4 36-32s-16.2-32-36-32z" />
<glyph unicode="&#xe00a;" glyph-name="bullist" d="M384 832h576v-128h-576zM384 512h576v-128h-576zM384 192h576v-128h-576zM128 768c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM128 448c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM128 128c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64z" />
<glyph unicode="&#xe00b;" glyph-name="numlist" d="M384 832h576v-128h-576zM384 512h576v-128h-576zM384 192h576v-128h-576zM320 430v146h-64v320h-128v-64h64v-256h-64v-64h128v-50l-128-60v-146h128v-64h-128v-64h128v-64h-128v-64h192v320h-128v50z" />
<glyph unicode="&#xe00c;" glyph-name="indent" d="M64 768h896v-128h-896zM384 384h576v-128h-576zM384 576h576v-128h-576zM64 192h896v-128h-896zM64 576l224-160-224-160z" />
<glyph unicode="&#xe00d;" glyph-name="outdent" d="M64 768h896v-128h-896zM64 384h576v-128h-576zM64 576h576v-128h-576zM64 192h896v-128h-896zM960 576l-224-160 224-160z" />
<glyph unicode="&#xe00e;" glyph-name="blockquote" d="M256.428 535.274c105.8 0 191.572-91.17 191.572-203.638 0-112.464-85.772-203.636-191.572-203.636-105.802 0-191.572 91.17-191.572 203.636l-0.856 29.092c0 224.93 171.54 407.272 383.144 407.272v-116.364c-73.1 0-141.826-30.26-193.516-85.204-9.954-10.578-19.034-21.834-27.224-33.656 9.784 1.64 19.806 2.498 30.024 2.498zM768.428 535.274c105.8 0 191.572-91.17 191.572-203.638 0-112.464-85.772-203.636-191.572-203.636-105.802 0-191.572 91.17-191.572 203.636l-0.856 29.092c0 224.93 171.54 407.272 383.144 407.272v-116.364c-73.1 0-141.826-30.26-193.516-85.204-9.956-10.578-19.036-21.834-27.224-33.656 9.784 1.64 19.806 2.498 30.024 2.498z" />
<glyph unicode="&#xe00f;" glyph-name="undo" d="M704 0c59 199 134.906 455.266-256 446.096v-222.096l-336.002 336 336.002 336v-217.326c468.092 12.2 544-358.674 256-678.674z" />
<glyph unicode="&#xe010;" glyph-name="redo" d="M576 678.674v217.326l336.002-336-336.002-336v222.096c-390.906 9.17-315-247.096-256-446.096-288 320-212.092 690.874 256 678.674z" />
<glyph unicode="&#xe011;" glyph-name="unlink" d="M927.274 729.784l-133.49 133.488c-21.104 21.104-49.232 32.728-79.198 32.728s-58.094-11.624-79.196-32.726l-165.492-165.49c-43.668-43.668-43.668-114.724 0-158.392l2.746-2.746 67.882 67.882-2.746 2.746c-6.132 6.132-6.132 16.494 0 22.626l165.492 165.492c4.010 4.008 8.808 4.608 11.312 4.608s7.302-0.598 11.312-4.61l133.49-133.488c6.132-6.134 6.132-16.498 0.002-22.628l-165.494-165.494c-4.008-4.008-8.806-4.608-11.31-4.608s-7.302 0.6-11.312 4.612l-2.746 2.746-67.88-67.884 2.742-2.742c21.106-21.108 49.23-32.728 79.2-32.728s58.094 11.624 79.196 32.726l165.494 165.492c43.662 43.666 43.662 114.72-0.004 158.39zM551.356 359.356l-67.882-67.882 2.746-2.746c4.008-4.008 4.61-8.806 4.61-11.31 0-2.506-0.598-7.302-4.606-11.314l-165.494-165.49c-4.010-4.010-8.81-4.61-11.314-4.61s-7.304 0.6-11.314 4.61l-133.492 133.486c-4.010 4.010-4.61 8.81-4.61 11.314s0.598 7.3 4.61 11.312l165.49 165.488c4.010 4.012 8.81 4.612 11.314 4.612s7.304-0.6 11.314-4.612l2.746-2.742 67.882 67.88-2.746 2.746c-21.104 21.104-49.23 32.726-79.196 32.726s-58.092-11.624-79.196-32.726l-165.488-165.486c-21.106-21.104-32.73-49.234-32.73-79.198s11.624-58.094 32.726-79.198l133.49-133.49c21.106-21.102 49.232-32.726 79.198-32.726s58.092 11.624 79.196 32.726l165.494 165.492c21.104 21.104 32.722 49.23 32.722 79.196s-11.624 58.094-32.726 79.196l-2.744 2.746zM352 250c-9.724 0-19.45 3.71-26.87 11.128-14.84 14.84-14.84 38.898 0 53.738l320 320c14.84 14.84 38.896 14.84 53.736 0 14.844-14.84 14.844-38.9 0-53.74l-320-320c-7.416-7.416-17.142-11.126-26.866-11.126z" />
<glyph unicode="&#xe012;" glyph-name="link" d="M927.274 729.784l-133.49 133.488c-21.104 21.104-49.232 32.728-79.198 32.728s-58.094-11.624-79.196-32.726l-165.492-165.49c-43.668-43.668-43.668-114.724 0-158.392l2.746-2.746 67.882 67.882-2.746 2.746c-6.132 6.132-6.132 16.494 0 22.626l165.492 165.492c4.010 4.008 8.808 4.608 11.312 4.608s7.302-0.598 11.312-4.61l133.49-133.488c6.132-6.134 6.132-16.498 0.002-22.628l-165.494-165.494c-4.008-4.008-8.806-4.608-11.31-4.608s-7.302 0.6-11.312 4.612l-2.746 2.746-67.88-67.884 2.742-2.742c21.106-21.108 49.23-32.728 79.2-32.728s58.094 11.624 79.196 32.726l165.494 165.492c43.662 43.666 43.662 114.72-0.004 158.39zM551.356 359.356l-67.882-67.882 2.746-2.746c4.008-4.008 4.61-8.806 4.61-11.31 0-2.506-0.598-7.302-4.606-11.314l-165.494-165.49c-4.010-4.010-8.81-4.61-11.314-4.61s-7.304 0.6-11.314 4.61l-133.492 133.486c-4.010 4.010-4.61 8.81-4.61 11.314s0.598 7.3 4.61 11.312l165.49 165.488c4.010 4.012 8.81 4.612 11.314 4.612s7.304-0.6 11.314-4.612l2.746-2.742 67.882 67.88-2.746 2.746c-21.104 21.104-49.23 32.726-79.196 32.726s-58.092-11.624-79.196-32.726l-165.488-165.486c-21.106-21.104-32.73-49.234-32.73-79.198s11.624-58.094 32.726-79.198l133.49-133.49c21.106-21.102 49.232-32.726 79.198-32.726s58.092 11.624 79.196 32.726l165.494 165.492c21.104 21.104 32.722 49.23 32.722 79.196s-11.624 58.094-32.726 79.196l-2.744 2.746zM800 122c-9.724 0-19.45 3.708-26.87 11.13l-128 127.998c-14.844 14.84-14.844 38.898 0 53.738 14.84 14.844 38.896 14.844 53.736 0l128-128c14.844-14.84 14.844-38.896 0-53.736-7.416-7.422-17.142-11.13-26.866-11.13zM608 0c-17.674 0-32 14.326-32 32v128c0 17.674 14.326 32 32 32s32-14.326 32-32v-128c0-17.674-14.326-32-32-32zM928 320h-128c-17.674 0-32 14.326-32 32s14.326 32 32 32h128c17.674 0 32-14.326 32-32s-14.326-32-32-32zM224 774c9.724 0 19.45-3.708 26.87-11.13l128-128c14.842-14.84 14.842-38.898 0-53.738-14.84-14.844-38.898-14.844-53.738 0l-128 128c-14.842 14.84-14.842 38.898 0 53.738 7.418 7.422 17.144 11.13 26.868 11.13zM416 896c17.674 0 32-14.326 32-32v-128c0-17.674-14.326-32-32-32s-32 14.326-32 32v128c0 17.674 14.326 32 32 32zM96 576h128c17.674 0 32-14.326 32-32s-14.326-32-32-32h-128c-17.674 0-32 14.326-32 32s14.326 32 32 32z" />
<glyph unicode="&#xe013;" glyph-name="bookmark" d="M256 896v-896l256 256 256-256v896h-512zM704 170.51l-192 192-192-192v661.49h384v-661.49z" />
<glyph unicode="&#xe014;" glyph-name="image" d="M896 832h-768c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h768c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM896 128.116c-0.012-0.014-0.030-0.028-0.042-0.042l-191.958 319.926-160-128-224 288-191.968-479.916c-0.010 0.010-0.022 0.022-0.032 0.032v639.77c0.034 0.040 0.076 0.082 0.114 0.114h767.77c0.040-0.034 0.082-0.076 0.116-0.116v-639.768zM640 608c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96s-96-42.981-96-96z" />
<glyph unicode="&#xe015;" glyph-name="media" d="M896 832h-768c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h768c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM256 128h-128v128h128v-128zM256 384h-128v128h128v-128zM256 640h-128v128h128v-128zM704 128h-384v640h384v-640zM896 128h-128v128h128v-128zM896 384h-128v128h128v-128zM896 640h-128v128h128v-128zM384 640v-384l288 192z" />
<glyph unicode="&#xe016;" glyph-name="help" d="M448 256h128v-128h-128v128zM704 704c35.346 0 64-28.654 64-64v-166l-228-154h-92v64l192 128v64h-320v128h384zM512 896c-119.666 0-232.166-46.6-316.784-131.216-84.614-84.618-131.216-197.118-131.216-316.784 0-119.664 46.602-232.168 131.216-316.784 84.618-84.616 197.118-131.216 316.784-131.216 119.664 0 232.168 46.6 316.784 131.216s131.216 197.12 131.216 316.784c0 119.666-46.6 232.166-131.216 316.784-84.616 84.616-197.12 131.216-316.784 131.216z" />
<glyph unicode="&#xe017;" glyph-name="code" d="M416 256l-192 192 192 192-64 64-256-256 256-256zM672 704l-64-64 192-192-192-192 64-64 256 256z" />
<glyph unicode="&#xe018;" glyph-name="insertdatetime" d="M77.798 655.376l81.414-50.882c50.802 81.114 128.788 143.454 221.208 174.246l-30.366 91.094c-113.748-37.898-209.728-114.626-272.256-214.458zM673.946 869.834l-30.366-91.094c92.422-30.792 170.404-93.132 221.208-174.248l81.412 50.882c-62.526 99.834-158.506 176.562-272.254 214.46zM607.974 255.992c-4.808 0-9.692 1.090-14.286 3.386l-145.688 72.844v211.778c0 17.672 14.328 32 32 32s32-14.328 32-32v-172.222l110.31-55.156c15.806-7.902 22.214-27.124 14.31-42.932-5.604-11.214-16.908-17.696-28.646-17.698zM512 768c-212.078 0-384-171.922-384-384s171.922-384 384-384c212.078 0 384 171.922 384 384s-171.922 384-384 384zM512 96c-159.058 0-288 128.942-288 288s128.942 288 288 288c159.058 0 288-128.942 288-288s-128.942-288-288-288z" />
<glyph unicode="&#xe019;" glyph-name="preview" d="M64 504.254c45.318 49.92 97.162 92.36 153.272 125.124 90.332 52.744 192.246 80.622 294.728 80.622 102.48 0 204.396-27.878 294.726-80.624 56.112-32.764 107.956-75.204 153.274-125.124v117.432c-33.010 28.118-68.124 53.14-104.868 74.594-105.006 61.314-223.658 93.722-343.132 93.722s-238.128-32.408-343.134-93.72c-36.742-21.454-71.856-46.478-104.866-74.596v-117.43zM512 640c-183.196 0-345.838-100.556-448-256 102.162-155.448 264.804-256 448-256s345.838 100.552 448 256c-102.162 155.444-264.804 256-448 256zM512 448c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.348 28.654 64 64 64s64-28.652 64-64zM728.066 263.338c-67.434-39.374-140.128-59.338-216.066-59.338s-148.632 19.964-216.066 59.338c-51.554 30.104-98.616 71.31-138.114 120.662 39.498 49.35 86.56 90.558 138.116 120.66 13.276 7.752 26.758 14.74 40.426 20.982-10.512-23.742-16.362-50.008-16.362-77.642 0-106.040 85.962-192 192-192 106.040 0 192 85.96 192 192 0 27.634-5.85 53.9-16.36 77.642 13.668-6.244 27.15-13.23 40.426-20.982 51.554-30.102 98.616-71.31 138.116-120.66-39.498-49.352-86.56-90.558-138.116-120.662z" />
<glyph unicode="&#xe01a;" glyph-name="forecolor" d="M651.168 676.166c-24.612 81.962-28.876 91.834-107.168 91.834h-64c-79.618 0-82.664-10.152-108.418-96 0-0.002 0-0.002-0.002-0.004l-143.998-479.996h113.636l57.6 192h226.366l57.6-192h113.63l-145.246 484.166zM437.218 512l38.4 136c10.086 33.618 36.38 30 36.38 30s26.294 3.618 36.38-30h0.004l38.4-136h-149.564z" />
<glyph unicode="&#xe01b;" glyph-name="table" d="M64 768v-704h896v704h-896zM384 320v128h256v-128h-256zM640 256v-128h-256v128h256zM640 640v-128h-256v128h256zM320 640v-128h-192v128h192zM128 448h192v-128h-192v128zM704 448h192v-128h-192v128zM704 512v128h192v-128h-192zM128 256h192v-128h-192v128zM704 128v128h192v-128h-192z" />
<glyph unicode="&#xe01c;" glyph-name="hr" d="M64 512h896v-128h-896z" />
<glyph unicode="&#xe01d;" glyph-name="removeformat" d="M64 192h512v-128h-512v128zM768 768h-220.558l-183.766-512h-132.288l183.762 512h-223.15v128h576v-128zM929.774 64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774-62.226-62.226z" />
<glyph unicode="&#xe01e;" glyph-name="subscript" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
<glyph unicode="&#xe01f;" glyph-name="superscript" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
<glyph unicode="&#xe020;" glyph-name="charmap" d="M704 128v37.004c151.348 61.628 256 193.82 256 346.996 0 212.078-200.576 384-448 384s-448-171.922-448-384c0-153.176 104.654-285.368 256-346.996v-37.004h-192l-64 96v-224h320v222.812c-100.9 51.362-170.666 161.54-170.666 289.188 0 176.732 133.718 320 298.666 320s298.666-143.268 298.666-320c0-127.648-69.766-237.826-170.666-289.188v-222.812h320v224l-64-96h-192z" />
<glyph unicode="&#xe021;" glyph-name="emoticons" d="M512 820c99.366 0 192.782-38.694 263.042-108.956s108.958-163.678 108.958-263.044-38.696-192.782-108.958-263.042-163.676-108.958-263.042-108.958-192.782 38.696-263.044 108.958-108.956 163.676-108.956 263.042 38.694 192.782 108.956 263.044 163.678 108.956 263.044 108.956zM512 896c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448v0zM320 576c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM576 576c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM512 304c-101.84 0-192.56 36.874-251.166 94.328 23.126-117.608 126.778-206.328 251.166-206.328s228.040 88.72 251.168 206.328c-58.608-57.454-149.328-94.328-251.168-94.328z" />
<glyph unicode="&#xe022;" glyph-name="print" d="M256 832h512v-128h-512v128zM896 640h-768c-35.2 0-64-28.8-64-64v-256c0-35.2 28.796-64 64-64h128v-192h512v192h128c35.2 0 64 28.8 64 64v256c0 35.2-28.8 64-64 64zM704 128h-384v256h384v-256zM910.4 544c0-25.626-20.774-46.4-46.398-46.4s-46.402 20.774-46.402 46.4 20.778 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" />
<glyph unicode="&#xe023;" glyph-name="fullscreen" d="M480 576l-192 192 128 128h-352v-352l128 128 192-192zM640 480l192 192 128-128v352h-352l128-128-192-192zM544 320l192-192-128-128h352v352l-128-128-192 192zM384 416l-192-192-128 128v-352h352l-128 128 192 192z" />
<glyph unicode="&#xe024;" glyph-name="spellcheck" d="M960 832v64h-192c-35.202 0-64-28.8-64-64v-320c0-15.856 5.858-30.402 15.496-41.614l-303.496-260.386-142 148-82-70 224-288 416 448h128v64h-192v320h192zM256 448h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192h128v-192zM128 704v128h128v-128h-128zM640 512v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64zM448 832h128v-128h-128v128zM448 640h128v-128h-128v128z" />
<glyph unicode="&#xe025;" glyph-name="nonbreaking" d="M448 448h-128v128h128v128h128v-128h128v-128h-128v-128h-128v128zM960 384v-320h-896v320h128v-192h640v192h128z" />
<glyph unicode="&#xe026;" glyph-name="template" d="M512 576h128v-64h-128zM512 192h128v-64h-128zM576 384h128v-64h-128zM768 384v-192h-64v-64h128v256zM384 384h128v-64h-128zM320 192h128v-64h-128zM320 576h128v-64h-128zM192 768v-256h64v192h64v64zM704 512h128v256h-64v-192h-64zM64 896v-896h896v896h-896zM896 64h-768v768h768v-768zM192 384v-256h64v192h64v64zM576 768h128v-64h-128zM384 768h128v-64h-128z" />
<glyph unicode="&#xe027;" glyph-name="pagebreak" d="M816 896l16-384h-640l16 384h32l16-320h512l16 320h32zM208 0l-16 320h640l-16-320h-32l-16 256h-512l-16-256h-32zM64 448h128v-64h-128zM256 448h128v-64h-128zM448 448h128v-64h-128zM640 448h128v-64h-128zM832 448h128v-64h-128z" />
<glyph unicode="&#xe028;" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" />
<glyph unicode="&#xe02a;" glyph-name="bold" d="M625.442 465.818c48.074 38.15 78.558 94.856 78.558 158.182 0 114.876-100.29 208-224 208h-224v-768h288c123.712 0 224 93.124 224 208 0 88.196-59.118 163.562-142.558 193.818zM384 656c0 26.51 21.49 48 48 48h67.204c42.414 0 76.796-42.98 76.796-96s-34.382-96-76.796-96h-115.204v144zM547.2 192h-115.2c-26.51 0-48 21.49-48 48v144h163.2c42.418 0 76.8-42.98 76.8-96s-34.382-96-76.8-96z" />
<glyph unicode="&#xe02b;" glyph-name="italic" d="M832 832v-64h-144l-256-640h144v-64h-448v64h144l256 640h-144v64h448z" />
<glyph unicode="&#xe02c;" glyph-name="underline" d="M192 128h576v-64h-576v64zM640 832v-384c0-31.312-14.7-61.624-41.39-85.352-30.942-27.502-73.068-42.648-118.61-42.648-45.544 0-87.668 15.146-118.608 42.648-26.692 23.728-41.392 54.040-41.392 85.352v384h-128v-384c0-141.382 128.942-256 288-256s288 114.618 288 256v384h-128z" />
<glyph unicode="&#xe02d;" glyph-name="strikethrough" d="M960 448h-265.876c-50.078 35.42-114.43 54.86-182.124 54.86-89.206 0-164.572 50.242-164.572 109.712s75.366 109.714 164.572 109.714c75.058 0 140.308-35.576 159.12-82.286h113.016c-7.93 50.644-37.58 97.968-84.058 132.826-50.88 38.16-117.676 59.174-188.078 59.174-70.404 0-137.196-21.014-188.074-59.174-54.788-41.090-86.212-99.502-86.212-160.254s31.424-119.164 86.212-160.254c1.956-1.466 3.942-2.898 5.946-4.316h-265.872v-64h512.532c58.208-17.106 100.042-56.27 100.042-100.572 0-59.468-75.368-109.71-164.572-109.71-75.060 0-140.308 35.574-159.118 82.286h-113.016c7.93-50.64 37.582-97.968 84.060-132.826 50.876-38.164 117.668-59.18 188.072-59.18 70.402 0 137.198 21.016 188.074 59.174 54.79 41.090 86.208 99.502 86.208 160.254 0 35.298-10.654 69.792-30.294 100.572h204.012v64z" />
<glyph unicode="&#xe02e;" glyph-name="visualchars" d="M384 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448z" />
<glyph unicode="&#xe02f;" glyph-name="ltr" d="M448 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448zM64 64l224 192-224 192z" />
<glyph unicode="&#xe030;" glyph-name="rtl" d="M320 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448zM960 448l-224-192 224-192z" />
<glyph unicode="&#xe031;" glyph-name="copy" d="M832 640h-192v64l-192 192h-384v-704h384v-192h576v448l-192 192zM832 549.49l101.49-101.49h-101.49v101.49zM448 805.49l101.49-101.49h-101.49v101.49zM128 832h256v-192h192v-384h-448v576zM960 64h-448v128h128v384h128v-192h192v-320z" />
<glyph unicode="&#xe032;" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" />
<glyph unicode="&#xe034;" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM840.34 256h87.66l32 448h-896l64-640h356.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM874.996 110.25l-134.496 110.692c17.454 28.922 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l110.692-134.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM576 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" />
<glyph unicode="&#xe035;" glyph-name="pastetext" d="M704 576v160c0 17.6-14.4 32-32 32h-160v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-160c-17.602 0-32-14.4-32-32v-512c0-17.6 14.398-32 32-32h224v-192h576v576h-192zM320 831.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 640v64h384v-64h-384zM832 64h-448v448h448v-448zM448 448v-128h32l32 64h64v-192h-48v-64h160v64h-48v192h64l32-64h32v128z" />
<glyph unicode="&#xe603;" glyph-name="codesample" d="M200.015 577.994v103.994c0 43.077 34.919 77.997 77.997 77.997h26v103.994h-26c-100.51 0-181.991-81.481-181.991-181.991v-103.994c0-43.077-34.919-77.997-77.997-77.997h-26v-103.994h26c43.077 0 77.997-34.919 77.997-77.997v-103.994c0-100.509 81.481-181.991 181.991-181.991h26v103.994h-26c-43.077 0-77.997 34.919-77.997 77.997v103.994c0 50.927-20.928 96.961-54.642 129.994 33.714 33.032 54.642 79.065 54.642 129.994zM823.985 577.994v103.994c0 43.077-34.919 77.997-77.997 77.997h-26v103.994h26c100.509 0 181.991-81.481 181.991-181.991v-103.994c0-43.077 34.919-77.997 77.997-77.997h26v-103.994h-26c-43.077 0-77.997-34.919-77.997-77.997v-103.994c0-100.509-81.482-181.991-181.991-181.991h-26v103.994h26c43.077 0 77.997 34.919 77.997 77.997v103.994c0 50.927 20.928 96.961 54.642 129.994-33.714 33.032-54.642 79.065-54.642 129.994zM615.997 603.277c0-57.435-46.56-103.994-103.994-103.994s-103.994 46.56-103.994 103.994c0 57.435 46.56 103.994 103.994 103.994s103.994-46.56 103.994-103.994zM512 448.717c-57.435 0-103.994-46.56-103.994-103.994 0-55.841 26-100.107 105.747-103.875-23.715-33.413-59.437-46.608-105.747-50.94v-61.747c0 0 207.991-18.144 207.991 216.561-0.202 57.437-46.56 103.996-103.994 103.996z" />
</font></defs></svg>editors/tinymce/tinymce.min.js000064400001430145152177723720012502 0ustar00// 4.5.11 (2019-05-16)
!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){var r,i,o,a,l;for(r=0;r<n.length;r++){i=e,o=n[r],a=o.split(/[.\/]/);for(var u=0;u<a.length-1;++u)i[a[u]]===t&&(i[a[u]]={}),i=i[a[u]];i[a[a.length-1]]=s[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in s)l[o]=s[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var s={},l="tinymce/geom/Rect",u="tinymce/util/Promise",c="tinymce/util/Delay",d="tinymce/Env",f="tinymce/dom/EventUtils",p="tinymce/dom/Sizzle",h="tinymce/util/Arr",m="tinymce/util/Tools",g="tinymce/dom/DomQuery",v="tinymce/html/Styles",y="tinymce/dom/TreeWalker",b="tinymce/dom/Range",C="tinymce/html/Entities",x="tinymce/dom/StyleSheetLoader",w="tinymce/dom/DOMUtils",E="tinymce/dom/ScriptLoader",N="tinymce/AddOnManager",_="tinymce/dom/NodeType",S="tinymce/text/Zwsp",k="tinymce/caret/CaretContainer",T="tinymce/dom/RangeUtils",R="tinymce/NodeChange",A="tinymce/html/Node",B="tinymce/html/Schema",D="tinymce/html/SaxParser",L="tinymce/html/DomParser",M="tinymce/html/Writer",P="tinymce/html/Serializer",O="tinymce/dom/Serializer",H="tinymce/dom/TridentSelection",I="tinymce/util/VK",F="tinymce/dom/ControlSelection",z="tinymce/util/Fun",U="tinymce/caret/CaretCandidate",W="tinymce/geom/ClientRect",V="tinymce/text/ExtendingChar",$="tinymce/caret/CaretPosition",q="tinymce/caret/CaretBookmark",j="tinymce/dom/BookmarkManager",Y="tinymce/dom/Selection",X="tinymce/dom/ElementUtils",K="tinymce/fmt/Preview",G="tinymce/fmt/Hooks",J="tinymce/Formatter",Q="tinymce/undo/Diff",Z="tinymce/undo/Fragments",ee="tinymce/undo/Levels",te="tinymce/UndoManager",ne="tinymce/EnterKey",re="tinymce/ForceBlocks",ie="tinymce/caret/CaretUtils",oe="tinymce/caret/CaretWalker",ae="tinymce/InsertList",se="tinymce/InsertContent",le="tinymce/EditorCommands",ue="tinymce/util/URI",ce="tinymce/util/Class",de="tinymce/util/EventDispatcher",fe="tinymce/data/Binding",pe="tinymce/util/Observable",he="tinymce/data/ObservableObject",me="tinymce/ui/Selector",ge="tinymce/ui/Collection",ve="tinymce/ui/DomUtils",ye="tinymce/ui/BoxUtils",be="tinymce/ui/ClassList",Ce="tinymce/ui/ReflowQueue",xe="tinymce/ui/Control",we="tinymce/ui/Factory",Ee="tinymce/ui/KeyboardNavigation",Ne="tinymce/ui/Container",_e="tinymce/ui/DragHelper",Se="tinymce/ui/Scrollable",ke="tinymce/ui/Panel",Te="tinymce/ui/Movable",Re="tinymce/ui/Resizable",Ae="tinymce/ui/FloatPanel",Be="tinymce/ui/Window",De="tinymce/ui/MessageBox",Le="tinymce/WindowManager",Me="tinymce/ui/Tooltip",Pe="tinymce/ui/Widget",Oe="tinymce/ui/Progress",He="tinymce/ui/Notification",Ie="tinymce/NotificationManager",Fe="tinymce/dom/NodePath",ze="tinymce/util/Quirks",Ue="tinymce/EditorObservable",We="tinymce/Mode",Ve="tinymce/Shortcuts",$e="tinymce/file/Uploader",qe="tinymce/file/Conversions",je="tinymce/file/ImageScanner",Ye="tinymce/file/BlobCache",Xe="tinymce/file/UploadStatus",Ke="tinymce/ErrorReporter",Ge="tinymce/EditorUpload",Je="tinymce/caret/FakeCaret",Qe="tinymce/dom/Dimensions",Ze="tinymce/caret/LineWalker",et="tinymce/caret/LineUtils",tt="tinymce/dom/MousePosition",nt="tinymce/DragDropOverrides",rt="tinymce/SelectionOverrides",it="tinymce/util/Uuid",ot="tinymce/ui/Sidebar",at="tinymce/Editor",st="tinymce/util/I18n",lt="tinymce/FocusManager",ut="tinymce/EditorManager",ct="tinymce/LegacyInput",dt="tinymce/util/XHR",ft="tinymce/util/JSON",pt="tinymce/util/JSONRequest",ht="tinymce/util/JSONP",mt="tinymce/util/LocalStorage",gt="tinymce/Compat",vt="tinymce/ui/Layout",yt="tinymce/ui/AbsoluteLayout",bt="tinymce/ui/Button",Ct="tinymce/ui/ButtonGroup",xt="tinymce/ui/Checkbox",wt="tinymce/ui/ComboBox",Et="tinymce/ui/ColorBox",Nt="tinymce/ui/PanelButton",_t="tinymce/ui/ColorButton",St="tinymce/util/Color",kt="tinymce/ui/ColorPicker",Tt="tinymce/ui/Path",Rt="tinymce/ui/ElementPath",At="tinymce/ui/FormItem",Bt="tinymce/ui/Form",Dt="tinymce/ui/FieldSet",Lt="tinymce/content/LinkTargets",Mt="tinymce/ui/FilePicker",Pt="tinymce/ui/FitLayout",Ot="tinymce/ui/FlexLayout",Ht="tinymce/ui/FlowLayout",It="tinymce/fmt/FontInfo",Ft="tinymce/ui/FormatControls",zt="tinymce/ui/GridLayout",Ut="tinymce/ui/Iframe",Wt="tinymce/ui/InfoBox",Vt="tinymce/ui/Label",$t="tinymce/ui/Toolbar",qt="tinymce/ui/MenuBar",jt="tinymce/ui/MenuButton",Yt="tinymce/ui/MenuItem",Xt="tinymce/ui/Throbber",Kt="tinymce/ui/Menu",Gt="tinymce/ui/ListBox",Jt="tinymce/ui/Radio",Qt="tinymce/ui/ResizeHandle",Zt="tinymce/ui/SelectBox",en="tinymce/ui/Slider",tn="tinymce/ui/Spacer",nn="tinymce/ui/SplitButton",rn="tinymce/ui/StackLayout",on="tinymce/ui/TabPanel",an="tinymce/ui/TextBox",sn="tinymce/Register";r(l,[],function(){function e(e,t,n){var r,i,a,s,l,c;return r=t.x,i=t.y,a=e.w,s=e.h,l=t.w,c=t.h,n=(n||"").split(""),"b"===n[0]&&(i+=c),"r"===n[1]&&(r+=l),"c"===n[0]&&(i+=u(c/2)),"c"===n[1]&&(r+=u(l/2)),"b"===n[3]&&(i-=s),"r"===n[4]&&(r-=a),"c"===n[3]&&(i-=u(s/2)),"c"===n[4]&&(r-=u(a/2)),o(r,i,a,s)}function t(t,n,r,i){var o,a;for(a=0;a<i.length;a++)if(o=e(t,n,i[a]),o.x>=r.x&&o.x+o.w<=r.w+r.x&&o.y>=r.y&&o.y+o.h<=r.h+r.y)return i[a];return null}function n(e,t,n){return o(e.x-t,e.y-n,e.w+2*t,e.h+2*n)}function r(e,t){var n,r,i,a;return n=l(e.x,t.x),r=l(e.y,t.y),i=s(e.x+e.w,t.x+t.w),a=s(e.y+e.h,t.y+t.h),i-n<0||a-r<0?null:o(n,r,i-n,a-r)}function i(e,t,n){var r,i,a,s,u,c,d,f,p,h;return u=e.x,c=e.y,d=e.x+e.w,f=e.y+e.h,p=t.x+t.w,h=t.y+t.h,r=l(0,t.x-u),i=l(0,t.y-c),a=l(0,d-p),s=l(0,f-h),u+=r,c+=i,n&&(d+=r,f+=i,u-=a,c-=s),d-=a,f-=s,o(u,c,d-u,f-c)}function o(e,t,n,r){return{x:e,y:t,w:n,h:r}}function a(e){return o(e.left,e.top,e.width,e.height)}var s=Math.min,l=Math.max,u=Math.round;return{inflate:n,relativePosition:e,findBestRelativePosition:t,intersect:r,clamp:i,create:o,fromClientRect:a}}),r(u,[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(a){i.call(this,a)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;e<t;e++)n.call(this,this._deferreds[e]);this._deferreds=null}function a(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function s(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(i){if(r)return;r=!0,n(i)}}if(window.Promise)return window.Promise;var l=t.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)},u=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return t.prototype["catch"]=function(e){return this.then(null,e)},t.prototype.then=function(e,r){var i=this;return new t(function(t,o){n.call(i,new a(e,r,t,o))})},t.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&u(arguments[0])?arguments[0]:arguments);return new t(function(t,n){function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){r(o,e)},n)}e[o]=a,0===--i&&t(e)}catch(l){n(l)}}if(0===e.length)return t([]);for(var i=e.length,o=0;o<e.length;o++)r(o,e[o])})},t.resolve=function(e){return e&&"object"==typeof e&&e.constructor===t?e:new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.race=function(e){return new t(function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)})},t}),r(c,[u],function(e){function t(e,t){function n(e){window.setTimeout(e,0)}var r,i=window.requestAnimationFrame,o=["ms","moz","webkit"];for(r=0;r<o.length&&!i;r++)i=window[o[r]+"RequestAnimationFrame"];i||(i=n),i(e,t)}function n(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)}function r(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)}function i(e){return clearTimeout(e)}function o(e){return clearInterval(e)}function a(e,t){var r,i;return i=function(){var i=arguments;clearTimeout(r),r=n(function(){e.apply(this,i)},t)},i.stop=function(){clearTimeout(r)},i}var s;return{requestAnimationFrame:function(n,r){return s?void s.then(n):void(s=new e(function(e){r||(r=document.body),t(e,r)}).then(n))},setTimeout:n,setInterval:r,setEditorTimeout:function(e,t,r){return n(function(){e.removed||t()},r)},setEditorInterval:function(e,t,n){var i;return i=r(function(){e.removed?clearInterval(i):t()},n)},debounce:a,throttle:a,clearInterval:o,clearTimeout:i}}),r(d,[],function(){function e(e){return"matchMedia"in window&&matchMedia(e).matches}var t=navigator,n=t.userAgent,r,i,o,a,s,l,u,c,d,f,p,h,m;r=window.opera&&window.opera.buildNumber,d=/Android/.test(n),i=/WebKit/.test(n),o=!i&&!r&&/MSIE/gi.test(n)&&/Explorer/gi.test(t.appName),o=o&&/MSIE (\w+)\./.exec(n)[1],a=n.indexOf("Trident/")!=-1&&(n.indexOf("rv:")!=-1||t.appName.indexOf("Netscape")!=-1)&&11,s=n.indexOf("Edge/")!=-1&&!o&&!a&&12,o=o||a||s,l=!i&&!a&&/Gecko/.test(n),u=n.indexOf("Mac")!=-1,c=/(iPad|iPhone)/.test(n),f="FormData"in window&&"FileReader"in window&&"URL"in window&&!!URL.createObjectURL,p=e("only screen and (max-device-width: 480px)")&&(d||c),h=e("only screen and (min-width: 800px)")&&(d||c),m=n.indexOf("Windows Phone")!=-1,s&&(i=!1);var g=!c||f||n.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:r,webkit:i,ie:o,gecko:l,mac:u,iOS:c,android:d,contentEditable:g,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=o,range:window.getSelection&&"Range"in window,documentMode:o&&!s?document.documentMode||7:10,fileApi:f,ceFalse:o===!1||o>8,canHaveCSP:o===!1||o>11,desktop:!p&&!h,windowsPhone:m}}),r(f,[c,d],function(e,t){function n(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function r(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function i(e,t){var n,r=t;return n=e.path,n&&n.length>0&&(r=n[0]),e.deepPath&&(n=e.deepPath(),n&&n.length>0&&(r=n[0])),r}function o(e,n){function r(){return!1}function o(){return!0}var a,s=n||{},l;for(a in e)c[a]||(s[a]=e[a]);if(s.target||(s.target=s.srcElement||document),t.experimentalShadowDom&&(s.target=i(e,s.target)),e&&u.test(e.type)&&e.pageX===l&&e.clientX!==l){var d=s.target.ownerDocument||document,f=d.documentElement,p=d.body;s.pageX=e.clientX+(f&&f.scrollLeft||p&&p.scrollLeft||0)-(f&&f.clientLeft||p&&p.clientLeft||0),s.pageY=e.clientY+(f&&f.scrollTop||p&&p.scrollTop||0)-(f&&f.clientTop||p&&p.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=o,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=o,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=o,s.stopPropagation()},s.isDefaultPrevented||(s.isDefaultPrevented=r,s.isPropagationStopped=r,s.isImmediatePropagationStopped=r),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s}function a(t,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(c))}function s(){("complete"===u.readyState||"interactive"===u.readyState&&u.body)&&(r(u,"readystatechange",s),a())}function l(){try{u.documentElement.doScroll("left")}catch(t){return void e.setTimeout(l)}a()}var u=t.document,c={type:"ready"};return o.domLoaded?void i(c):(u.addEventListener?"complete"===u.readyState?a():n(t,"DOMContentLoaded",a):(n(u,"readystatechange",s),u.documentElement.doScroll&&t.self===t.top&&l()),void n(t,"load",a))}function s(){function e(e,t){var n,r,o,a,s=i[t];if(n=s&&s[e.type])for(r=0,o=n.length;r<o;r++)if(a=n[r],a&&a.func.call(a.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var t=this,i={},s,u,c,d,f;u=l+(+new Date).toString(32),d="onmouseenter"in document.documentElement,c="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},s=1,t.domLoaded=!1,t.events=i,t.bind=function(r,l,p,h){function m(t){e(o(t||E.event),g)}var g,v,y,b,C,x,w,E=window;if(r&&3!==r.nodeType&&8!==r.nodeType){for(r[u]?g=r[u]:(g=s++,r[u]=g,i[g]={}),h=h||r,l=l.split(" "),y=l.length;y--;)b=l[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),t.domLoaded&&"ready"===b&&"complete"==r.readyState?p.call(h,o({type:b})):(d||(C=f[b],C&&(x=function(t){var n,r;if(n=t.currentTarget,r=t.relatedTarget,r&&n.contains)r=n.contains(r);else for(;r&&r!==n;)r=r.parentNode;r||(t=o(t||E.event),t.type="mouseout"===t.type?"mouseleave":"mouseenter",t.target=n,e(t,g))})),c||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(t){t=o(t||E.event),t.type="focus"===t.type?"focusin":"focusout",e(t,g)}),v=i[g][b],v?"ready"===b&&t.domLoaded?p({type:b}):v.push({func:p,scope:h}):(i[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?a(r,x,t):n(r,C||b,x,w)));return r=v=0,p}},t.unbind=function(e,n,o){var a,s,l,c,d,f;if(!e||3===e.nodeType||8===e.nodeType)return t;if(a=e[u]){if(f=i[a],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],s=f[d]){if(o)for(c=s.length;c--;)if(s[c].func===o){var p=s.nativeHandler,h=s.fakeName,m=s.capture;s=s.slice(0,c).concat(s.slice(c+1)),s.nativeHandler=p,s.fakeName=h,s.capture=m,f[d]=s}o&&0!==s.length||(delete f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture))}}else{for(d in f)s=f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture);f={}}for(d in f)return t;delete i[a];try{delete e[u]}catch(g){e[u]=null}}return t},t.fire=function(n,r,i){var a;if(!n||3===n.nodeType||8===n.nodeType)return t;i=o(null,i),i.type=r,i.target=n;do a=n[u],a&&e(i,a),n=n.parentNode||n.ownerDocument||n.defaultView||n.parentWindow;while(n&&!i.isPropagationStopped());return t},t.clean=function(e){var n,r,i=t.unbind;if(!e||3===e.nodeType||8===e.nodeType)return t;if(e[u]&&i(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(i(e),r=e.getElementsByTagName("*"),n=r.length;n--;)e=r[n],e[u]&&i(e);return t},t.destroy=function(){i={}},t.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var l="mce-data-",u=/^(?:mouse|contextmenu)|click/,c={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1};return s.Event=new s,s.Event.bind(window,"ready",function(){}),s}),r(p,[],function(){function e(e,t,n,r){var i,o,a,s,l,u,d,p,h,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(M&&!r){if(i=ve.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!P||!P.test(e))){if(p=d=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(u=_(e),(d=t.getAttribute("id"))?p=d.replace(be,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=u.length;l--;)u[l]=p+f(u[l]);h=ye.test(e)&&c(t.parentNode)||t,m=u.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return k(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=W++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,u=[U,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===U&&s[1]===o)return u[2]=s[2];if(l[r]=u,u[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;i<o;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),u&&t.push(s)));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var u,c,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(u=g(b,p),i(u,[],s,l),c=u.length;c--;)(d=u[c])&&(b[p[c]]=!(y[p[c]]=d));if(r){if(o||e){if(o){for(u=[],c=b.length;c--;)(d=b[c])&&u.push(y[c]=d);o(null,b=[],u,l)}for(c=b.length;c--;)(d=b[c])&&(u=o?te.call(r,d):f[c])>-1&&(r[u]=!(a[u]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),u=p(function(e){return te.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):u(e,n,r))}];s<i;s++)if(n=w.relative[e[s].type])c=[p(h(c),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;r<i&&!w.relative[e[r].type];r++);return v(s>1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s<r&&y(e.slice(s,r)),r<i&&y(e=e.slice(r)),r<i&&f(e))}c.push(n)}return h(c)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,u){var c,d,f,p=0,h="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",u),C=U+=null==y?1:Math.random()||.1,x=b.length;for(u&&(T=a!==D&&a);h!==x&&null!=(c=b[h]);h++){if(o&&c){for(d=0;f=t[d++];)if(f(c,a,s)){l.push(c);break}u&&(U=C)}i&&((c=!f&&c)&&p--,r&&m.push(c))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=J.call(l));v=g(v)}Z.apply(l,v),u&&!r&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return u&&(U=C,T=y),m};return i?r(a):a}var C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F="sizzle"+-new Date,z=window.document,U=0,W=0,V=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,X=1<<31,K={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",re="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe="\\["+re+"*("+ie+")(?:"+re+"*([*^$|!~]?=)"+re+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+re+"*\\]",ae=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",se=new RegExp("^"+re+"+|((?:^|[^\\\\])(?:\\\\.)*)"+re+"+$","g"),le=new RegExp("^"+re+"*,"+re+"*"),ue=new RegExp("^"+re+"*([>+~]|"+re+")"+re+"*"),ce=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+ie+"$"),pe={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,Ce=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(we){Z={apply:G.length?function(e,t){Q.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},N=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},B=e.setDocument=function(e){function t(e){try{return e.top}catch(t){}return null}var n,r=e?e.ownerDocument||e:z,o=r.defaultView;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!N(r),o&&o!==t(o)&&(o.addEventListener?o.addEventListener("unload",function(){B()},!1):o.attachEvent&&o.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ge.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Y)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){if(M)return t.getElementsByClassName(e)},O=[],P=[],(x.qsa=ge.test(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(x.matchesSelector=ge.test(H=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),O.push("!=",ae)}),P=P.length&&new RegExp(P.join("|")),O=O.length&&new RegExp(O.join("|")),n=ge.test(L.compareDocumentPosition),I=n||ge.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=n?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===z&&I(z,e)?-1:t===r||t.ownerDocument===z&&I(z,t)?1:R?te.call(R,e)-te.call(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],u=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:R?te.call(R,e)-te.call(R,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;l[i]===u[i];)i++;return i?a(l[i],u[i]):l[i]===z?-1:u[i]===z?1:0},r):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ce,"='$1']"),x.matchesSelector&&M&&(!O||!O.test(n))&&(!P||!P.test(n)))try{var r=H.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&K.call(w.attrHandle,n.toLowerCase())?r(e,n,!M):t;return i!==t?i:x.attributes||!M?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},E=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ce,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(Ce,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=_(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ce,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(c=g[F]||(g[F]={}),u=c[e]||[],p=u[0]===U&&u[1],f=u[0]===U&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[U,p,f];break}}else if(y&&(u=(t[F]||(t[F]={}))[e])&&u[0]===U)f=u[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[U,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(se,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ce,xe),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(t){return fe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ce,xe).toLowerCase(),function(e){var n;do if(n=M?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,_=e.tokenize=function(t,n){var r,i,o,a,s,l,u,c=$[t+" "];if(c)return n?0:c.slice(0);for(s=t,l=[],u=w.preFilter;s;){r&&!(i=le.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ue.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),s=s.slice(r.length));for(a in w.filter)!(i=pe[a].exec(s))||u[a]&&!(i=u[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},S=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=_(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},k=e.select=function(e,t,n,r){var i,o,a,s,l,u="function"==typeof e&&e,d=!r&&_(e=u.selector||e);
if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&M&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ce,xe),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ce,xe),ye.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(u||S(e,d))(r,t,!M,n,ye.test(e)&&c(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(h,[],function(){function e(e){var t=e,n,r;if(!c(e))for(t=[],n=0,r=e.length;n<r;n++)t[n]=e[n];return t}function n(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;i<o;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function r(e,t){var r=[];return n(e,function(n,i){r.push(t(n,i,e))}),r}function i(e,t){var r=[];return n(e,function(n,i){t&&!t(n,i,e)||r.push(n)}),r}function o(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function a(e,t,n,r){var i=0;for(arguments.length<3&&(n=e[0]);i<e.length;i++)n=t.call(r,n,e[i],i);return n}function s(e,t,n){var r,i;for(r=0,i=e.length;r<i;r++)if(t.call(n,e[r],r,e))return r;return-1}function l(e,n,r){var i=s(e,n,r);return i!==-1?e[i]:t}function u(e){return e[e.length-1]}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{isArray:c,toArray:e,each:n,map:r,filter:i,indexOf:o,reduce:a,findIndex:s,find:l,last:u}}),r(m,[d,h],function(e,n){function r(e){return null===e||e===t?"":(""+e).replace(h,"")}function i(e,r){return r?!("array"!=r||!n.isArray(e))||typeof e==r:e!==t}function o(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e,t,n){var r=this,i,o,a,s,l,u=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},u=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],u?o[a]=function(){return i[s].apply(this,arguments)}:o[a]=function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function l(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;r<i;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function u(e,t,r,i){i=i||this,e&&(r&&(e=e[r]),n.each(e,function(e,n){return t.call(i,e,n,r)!==!1&&void u(e,t,r,i)}))}function c(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function d(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;n<r&&(t=t[e[n]],t);n++);return t}function f(e,t){return!e||i(e,"array")?e:n.map(e.split(t||","),r)}function p(t){var n=e.cacheSuffix;return n&&(t+=(t.indexOf("?")===-1?"?":"&")+n),t}var h=/^\s*|\s*$/g;return{trim:r,isArray:n.isArray,is:i,toArray:n.toArray,makeMap:o,each:n.each,map:n.map,grep:n.filter,inArray:n.indexOf,hasOwn:a,extend:l,create:s,walk:u,createNS:c,resolve:d,explode:f,_addCacheSuffix:p}}),r(g,[f,p,m,d],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e){return e&&e==e.window}function l(e,t){var n,r,i;for(t=t||w,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function u(e,t,n,r){var i;if(a(t))t=l(t,v(e[0]));else if(t.length&&!t.nodeType){if(t=f.makeArray(t),r)for(i=t.length-1;i>=0;i--)u(e,t[i],n,r);else for(i=0;i<t.length;i++)u(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function c(e,t){return e&&t&&(" "+e.className+" ").indexOf(" "+t+" ")!==-1}function d(e,t,n){var r,i;return t=f(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function f(e,t){return new f.fn.init(e,t)}function p(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function h(e){return null===e||e===k?"":(""+e).replace(P,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;i<n&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function g(e,t){var n=[];return m(e,function(e,r){t(r,e)&&n.push(r)}),n}function v(e){return e?9==e.nodeType?e:e.ownerDocument:w}function y(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof f&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&f(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function b(e,n,r,i){var o=[];for(i instanceof f&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&f(e).is(i))break}o.push(e)}return o}function C(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function x(e,t,n){m(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var w=document,E=Array.prototype.push,N=Array.prototype.slice,_=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,S=e.Event,k,T=r.makeMap("children,contents,next,prev"),R=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),A=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),B={"for":"htmlFor","class":"className",readonly:"readOnly"},D={"float":"cssFloat"},L={},M={},P=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:_.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)E.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];else E.apply(n,f.makeArray(e));return n},attr:function(e,t){var n=this,r;if("object"==typeof e)m(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=L[e],r&&r.get)return r.get(n[0],e);if(A[e])return n.prop(e)?e:k;t=n[0].getAttribute(e,2),null===t&&(t=k)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=L[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=B[e]||e,"object"==typeof e)m(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)m(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||R[e]||(t+="px"),i.each(function(){var n=this.style;if(s=M[e],s&&s.set)return void s.set(this,t);try{this.style[D[e]||e]=t}catch(i){}null!==t&&""!==t||(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=M[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return k}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],S.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){f(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return u(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return u(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?u(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?u(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return f(e).append(this),this},prependTo:function(e){return f(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return d(this,e)},wrapAll:function(e){return d(this,e,!0)},wrapInner:function(e){return this.each(function(){f(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){f(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),f(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(e.indexOf(" ")!==-1?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=c(r,e),o!==t&&(i=r.className,o?r.className=h((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return c(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){S.bind(this,e,t)})},off:function(e,t){return this.each(function(){S.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?S.fire(this,e.type,e):S.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new f(N.apply(this,arguments))},eq:function(e){return e===-1?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)f.find(e,this[t],r);return f(r)},filter:function(e){return f("function"==typeof e?g(this.toArray(),function(t,n){return e(n,t)}):f.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof f&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&f(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),f(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:E,sort:[].sort,splice:[].splice},r.extend(f,{extend:r.extend,makeArray:function(e){return s(e)||e.nodeType?[e]:r.toArray(e)},inArray:p,isArray:r.isArray,each:m,trim:h,grep:g,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?f.find.matchesSelector(t[0],e)?[t[0]]:[]:f.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return y(e,"parentNode")},next:function(e){return C(e,"nextSibling",1)},prev:function(e){return C(e,"previousSibling",1)},children:function(e){return b(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){f.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(f.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(T[e]||(i=f.unique(i)),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(L,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),x(L,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(D["float"]="styleFloat",x(M,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=L,f.cssHooks=M,f}),r(v,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l={},u,c,d,f="\ufeff";for(e=e||{},t&&(c=t.getValidStyles(),d=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+f).split(" "),s=0;s<u.length;s++)l[u[s]]=f+s,l[f+s]=u[s];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function u(e,t,n){var r,i,o,a;if(r=y[e+"-top"+t],r&&(i=y[e+"-right"+t],i&&(o=y[e+"-bottom"+t],o&&(a=y[e+"-left"+t])))){var l=[r,i,o,a];for(s=l.length-1;s--&&l[s]===l[s+1];);s>-1&&n||(y[e+t]=s==-1?l[0]:l.join(" "),delete y[e+"-top"+t],delete y[e+"-right"+t],delete y[e+"-bottom"+t],delete y[e+"-left"+t])}}function c(e){var t=y[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return y[e]=t[0],!0}}function d(e,t,n,r){c(t)&&c(n)&&c(r)&&(y[e]=y[t]+" "+y[n]+" "+y[r],delete y[t],delete y[n],delete y[r])}function p(e){return w=!0,l[e]}function h(e,t){return w&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return l[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(e){return String.fromCharCode(parseInt(e.slice(1),16))}function g(e){return e.replace(/\\[0-9a-f]+/gi,m)}function v(t,n,r,i,o,a){if(o=o||a)return o=h(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=h(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return E&&(n=E.call(N,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var y={},b,C,x,w,E=e.url_converter,N=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,p).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,p)});b=o.exec(t);)if(o.lastIndex=b.index+b[0].length,C=b[1].replace(a,"").toLowerCase(),x=b[2].replace(a,""),C&&x){if(C=g(C),x=g(x),C.indexOf(f)!==-1||C.indexOf('"')!==-1)continue;if(!e.allow_script_urls&&("behavior"==C||/expression\s*\(|\/\*|\*\//.test(x)))continue;"font-weight"===C&&"700"===x?x="bold":"color"!==C&&"background-color"!==C||(x=x.toLowerCase()),x=x.replace(r,n),x=x.replace(i,v),y[C]=w?h(x,!0):x}u("border","",!0),u("border","-width"),u("border","-color"),u("border","-style"),u("padding",""),u("margin",""),d("border","border-width","border-style","border-color"),"medium none"===y.border&&delete y.border,"none"===y["border-image"]&&delete y["border-image"]}return y},serialize:function(e,t){function n(t){var n,r,o,a;if(n=c[t])for(r=0,o=n.length;r<o;r++)t=n[r],a=e[t],a&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=d["*"],(!n||!n[e])&&(n=d[t],!n||!n[e])}var i="",o,a;if(t&&c)n("*"),n(t);else for(o in e)a=e[o],!a||d&&!r(o,t)||(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(y,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}function r(e,n,r,i){var o,a,s;if(e){if(o=e[r],t&&o===t)return;if(o){if(!i)for(s=o[n];s;s=s[n])if(!s[n])return s;return o}if(a=e.parentNode,a&&a!==t)return a}}var i=e;this.current=function(){return i},this.next=function(e){return i=n(i,"firstChild","nextSibling",e)},this.prev=function(e){return i=n(i,"lastChild","previousSibling",e)},this.prev2=function(e){return i=r(i,"lastChild","previousSibling",e)}}}),r(b,[m],function(e){function t(n){function r(){return P.createDocumentFragment()}function i(e,t){E(F,e,t)}function o(e,t){E(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function u(e){o(e.parentNode,j(e)+1)}function c(e){e?(M[V]=M[W],M[$]=M[U]):(M[W]=M[V],M[U]=M[$]),M.collapsed=F}function d(e){a(e),u(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[W],r=M[U],i=M[V],o=M[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,u=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,u):3===e?w(n,r,l,u):void 0}function h(){N(I)}function m(){return N(O)}function g(){return N(H)}function v(e){var t=this[W],r=this[U],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return q(new t(n),{startContainer:M[W],startOffset:M[U],endContainer:M[V],endOffset:M[$],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(t<0)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[W]==M[V]&&M[U]==M[$]}function w(e,t,r,i){var o,a,s,l,u,c;if(e==r)return t==i?0:t<i?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&a<t;)a++,s=s.nextSibling;return t<=a?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&a<i;)a++,s=s.nextSibling;return a<i?-1:1}for(l=n.findCommonAncestor(e,r),u=e;u&&u.parentNode!=l;)u=u.parentNode;for(u||(u=l),c=r;c&&c.parentNode!=l;)c=c.parentNode;if(c||(c=l),u==c)return 0;for(s=l.firstChild;s;){if(s==u)return-1;if(s==c)return 1;s=s.nextSibling}}function E(e,t,r){var i,o;for(e?(M[W]=t,M[U]=r):(M[V]=t,M[$]=r),i=M[V];i.parentNode;)i=i.parentNode;for(o=M[W];o.parentNode;)o=o.parentNode;o==i?w(M[W],M[U],M[V],M[$])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[W],M[V])}function N(e){var t,n=0,r=0,i,o,a,s,l,u;if(M[W]==M[V])return _(e);for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[W])return S(t,e);++n}for(t=M[W],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++r}for(o=r-n,a=M[W];o>0;)a=a.parentNode,o--;for(s=M[V];o<0;)s=s.parentNode,o++;for(l=a.parentNode,u=s.parentNode;l!=u;l=l.parentNode,u=u.parentNode)a=l,s=u;return T(a,s,e)}function _(e){var t,n,i,o,a,s,l,u,c;if(e!=I&&(t=r()),M[U]==M[$])return t;if(3==M[W].nodeType){if(n=M[W].nodeValue,i=n.substring(M[U],M[$]),e!=H&&(o=M[W],u=M[U],c=M[$]-M[U],0===u&&c>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(u,c),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(P.createTextNode(i)),t}for(o=C(M[W],M[U]),a=M[$]-M[U];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=H&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[U],a<=0)return t!=H&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=H&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=H&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,u,c;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,u=e.nextSibling;l>0;)c=u.nextSibling,i=D(u,n),o&&o.appendChild(i),u=c,--l;return i=R(t,n),o&&o.appendChild(i),n!=H&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[V],M[$]-1),r,i,o,a,s,l=n!=M[V];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[W],M[U]),r=n!=M[W],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,u;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[U],a=o.substring(l),s=o.substring(0,l)):(l=M[$],a=o.substring(0,l),s=o.substring(l)),i!=H&&(e.nodeValue=s),i==I)return;return u=n.clone(e,z),u.nodeValue=a,u}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==H?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,P=n.doc,O=0,H=1,I=2,F=!0,z=!1,U="startOffset",W="startContainer",V="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(M,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:F,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:u,collapse:c,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(C,[m],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/[<>&\"\']/g,c=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(u,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function u(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?u:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(c,function(e,n){return n?(n="x"===n.charAt(0).toLowerCase()?parseInt(n.substr(1),16):parseInt(n,10),n>65535?(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n))):d[n]||String.fromCharCode(n)):a[e]||i[e]||t(e)})}};return f}),r(x,[m,c],function(e,t){return function(n,r){function i(e){n.getElementsByTagName("head")[0].appendChild(e)}function o(r,o,u){function c(){for(var e=b.passed,t=e.length;t--;)e[t]();b.status=2,b.passed=[],b.failed=[]}function d(){for(var e=b.failed,t=e.length;t--;)e[t]();b.status=3,b.passed=[],b.failed=[]}function f(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function p(e,n){e()||((new Date).getTime()-y<l?t.setTimeout(n):d())}function h(){p(function(){for(var e=n.styleSheets,t,r=e.length,i;r--;)if(t=e[r],i=t.ownerNode?t.ownerNode:t.owningElement,i&&i.id===g.id)return c(),!0},h)}function m(){p(function(){try{var e=v.sheet.cssRules;return c(),!!e}catch(t){}},m)}var g,v,y,b;if(r=e._addCacheSuffix(r),s[r]?b=s[r]:(b={passed:[],failed:[]},s[r]=b),o&&b.passed.push(o),u&&b.failed.push(u),1!=b.status){if(2==b.status)return void c();if(3==b.status)return void d();if(b.status=1,g=n.createElement("link"),g.rel="stylesheet",g.type="text/css",g.id="u"+a++,g.async=!1,g.defer=!1,y=(new Date).getTime(),"onload"in g&&!f())g.onload=h,g.onerror=d;else{if(navigator.userAgent.indexOf("Firefox")>0)return v=n.createElement("style"),v.textContent='@import "'+r+'"',m(),void i(v);h()}i(g),g.href=r}}var a=0,s={},l;r=r||{},l=r.maxLoadTime||5e3,this.load=o}}),r(w,[p,g,v,f,y,b,C,d,m,x],function(e,n,r,i,o,a,s,l,u,c){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var n=t.attr("style");n=e.serializeStyle(e.parseStyle(n),t[0].nodeName),n||(n=null),t.attr("data-mce-style",n)}function p(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n}function h(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!b||e.documentMode>=8,o.boxModel=!b||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new c(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var m=u.each,g=u.is,v=u.grep,y=u.trim,b=l.ie,C=/^([a-z0-9],?)+$/i,x=/^[ \t\r\n]*$/;return h.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(b&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!b||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),n.indexOf("px")===-1&&(n=0),r.indexOf("px")===-1&&(r=0),
{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),g(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(C.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=g(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&f(this,e)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=l.ie&&l.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&f(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){m(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,u;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return u=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=u.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=u.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==h.DOM&&n===document){var o=h.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,h.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==h.DOM&&n===document?void h.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void m(e.split(","),function(e){var i;e=u._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),b&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),b?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div></div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType&&"outerHTML"in e?e.outerHTML:n("<div></div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}r.remove(n(this).html(t),!0)})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return g(t,"array")&&(e=e.cloneNode(!0)),n&&m(v(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(u.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),!!e&&(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],m(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i))},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(b){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,u,c=0;if(e=e.firstChild){l=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null),s=n.schema?n.schema.getWhiteSpaceElements():{};do{if(a=e.nodeType,1===a){var d=e.getAttribute("data-mce-bogus");if(d){e=l.next("all"===d);continue}if(u=e.nodeName.toLowerCase(),t&&t[u]){if("br"===u){c++,e=l.next();continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(u=i[r].nodeName,"name"===u||"data-mce-bookmark"===u)return!1}if(8==a)return!1;if(3===a&&!x.test(e.nodeValue))return!1;if(3===a&&e.parentNode&&s[e.parentNode.nodeName]&&x.test(e.nodeValue))return!1;e=l.next()}while(e)}return c<=1},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:p,split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=y(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;if(e&&t)return o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.insertBefore(n,e):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t},bind:function(e,t,n,r){var i=this;if(u.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(u.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},h.DOM=new h(document),h.nodeIndex=p,h}),r(E,[w,m],function(e,t){function n(){function e(e,n,i){function o(){l.remove(c),u&&(u.onreadystatechange=u.onload=u=null),n()}function s(){a(i)?i():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+e)}var l=r,u,c;c=l.uniqueId(),u=document.createElement("script"),u.id=c,u.type="text/javascript",u.src=t._addCacheSuffix(e),"onreadystatechange"in u?u.onreadystatechange=function(){/loaded|complete/.test(u.readyState)&&o()}:u.onload=o,u.onerror=s,(document.getElementsByTagName("head")[0]||document.body).appendChild(u)}var n=0,s=1,l=2,u=3,c={},d=[],f={},p=[],h=0,m;this.isDone=function(e){return c[e]==l},this.markDone=function(e){c[e]=l},this.add=this.load=function(e,t,r,i){var o=c[e];o==m&&(d.push(e),c[e]=n),t&&(f[e]||(f[e]=[]),f[e].push({success:t,failure:i,scope:r||this}))},this.remove=function(e){delete c[e],delete f[e]},this.loadQueue=function(e,t,n){this.loadScripts(d,e,t,n)},this.loadScripts=function(t,n,r,d){function g(e,t){i(f[t],function(t){a(t[e])&&t[e].call(t.scope)}),f[t]=m}var v,y=[];p.push({success:n,failure:d,scope:r||this}),(v=function(){var n=o(t);t.length=0,i(n,function(t){return c[t]===l?void g("success",t):c[t]===u?void g("failure",t):void(c[t]!==s&&(c[t]=s,h++,e(t,function(){c[t]=l,h--,g("success",t),v()},function(){c[t]=u,h--,y.push(t),g("failure",t),v()})))}),h||(i(p,function(e){0===y.length?a(e.success)&&e.success.call(e.scope):a(e.failure)&&e.failure.call(e.scope,y)}),p.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep,a=function(e){return"function"==typeof e};return n.ScriptLoader=new n,n}),r(N,[E,m],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",n.indexOf(","+i.substr(0,2)+",")!=-1)i=i.substr(0,2);else if(n.indexOf(","+i+",")==-1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s,l){function u(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,d=o;c.urls[n]||("object"==typeof o&&(d=o.prefix+o.resource+o.suffix),0!==d.indexOf("/")&&d.indexOf("://")==-1&&(d=r.baseURL+"/"+d),c.urls[n]=d.substring(0,d.lastIndexOf("/")),c.lookup[n]?u():e.ScriptLoader.add(d,u,s,l))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(_,[],function(){function e(e){return function(t){return!!t&&t.nodeType==e}}function t(e){return e=e.toLowerCase().split(" "),function(t){var n,r;if(t&&t.nodeType)for(r=t.nodeName.toLowerCase(),n=0;n<e.length;n++)if(r===e[n])return!0;return!1}}function n(e,t){return t=t.toLowerCase().split(" "),function(n){var r,i;if(s(n))for(r=0;r<t.length;r++)if(i=getComputedStyle(n,null).getPropertyValue(e),i===t[r])return!0;return!1}}function r(e,t){return function(n){return s(n)&&n[e]===t}}function i(e,t){return function(n){return s(n)&&n.getAttribute(e)===t}}function o(e){return s(e)&&e.hasAttribute("data-mce-bogus")}function a(e){return function(t){if(s(t)){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}}var s=e(1);return{isText:e(3),isElement:s,isComment:e(8),isBr:t("br"),isContentEditableTrue:a("true"),isContentEditableFalse:a("false"),matchNodeNames:t,hasPropValue:r,hasAttributeValue:i,matchStyleValues:n,isBogus:o}}),r(S,[],function(){function e(e){return e==n}function t(e){return e.replace(new RegExp(n,"g"),"")}var n="\ufeff";return{isZwsp:e,ZWSP:n,trim:t}}),r(k,[_,S],function(e,t){function n(e){return y(e)&&(e=e.parentNode),v(e)&&e.hasAttribute("data-mce-caret")}function r(e){return y(e)&&t.isZwsp(e.data)}function i(e){return n(e)||r(e)}function o(e){var t=e.parentNode;t&&t.removeChild(e)}function a(e){try{return e.nodeValue}catch(t){return""}}function s(e,t){0===t.length?o(e):e.nodeValue=t}function l(e,n){var r,o,a,s;if(r=e.ownerDocument,a=r.createTextNode(t.ZWSP),s=e.parentNode,n){if(o=e.previousSibling,y(o)){if(i(o))return o;if(h(o))return o.splitText(o.data.length-1)}s.insertBefore(a,e)}else{if(o=e.nextSibling,y(o)){if(i(o))return o;if(p(o))return o.splitText(1),o}e.nextSibling?s.insertBefore(a,e.nextSibling):s.appendChild(a)}return a}function u(){var e=document.createElement("br");return e.setAttribute("data-mce-bogus","1"),e}function c(e,t,n){var r,i,o;return r=t.ownerDocument,i=r.createElement(e),i.setAttribute("data-mce-caret",n?"before":"after"),i.setAttribute("data-mce-bogus","all"),i.appendChild(u()),o=t.parentNode,n?o.insertBefore(i,t):t.nextSibling?o.insertBefore(i,t.nextSibling):o.appendChild(i),i}function d(t){return t.firstChild!==t.lastChild||!e.isBr(t.firstChild)}function f(e){if(v(e)&&i(e)&&(d(e)?e.removeAttribute("data-mce-caret"):o(e)),y(e)){var n=t.trim(a(e));s(e,n)}}function p(e){return y(e)&&e.data[0]==t.ZWSP}function h(e){return y(e)&&e.data[e.data.length-1]==t.ZWSP}function m(t){var n=t.getElementsByTagName("br"),r=n[n.length-1];e.isBogus(r)&&r.parentNode.removeChild(r)}function g(e){return e&&e.hasAttribute("data-mce-caret")?(m(e),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null}var v=e.isElement,y=e.isText;return{isCaretContainer:i,isCaretContainerBlock:n,isCaretContainerInline:r,showCaretContainerBlock:g,insertInline:l,insertBlock:c,hasContent:d,remove:f,startsWithCaretContainer:p,endsWithCaretContainer:h}}),r(T,[m,y,_,b,k],function(e,t,n,r,i){function o(e){return m(e)||g(e)}function a(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:t<0&&(t=0),n[t]||e}function s(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}function l(e,t,n){return null!==s(e,t,n)}function u(e){return"_mce_caret"===e.id}function c(e,t){return v(e)&&l(e,t,u)===!1}function d(e){this.walk=function(t,n){function r(e){var t;return t=e[0],3===t.nodeType&&t===l&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===c&&3===t.nodeType&&e.splice(e.length-1,1),e}function i(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function o(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,o){var a=o?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=i(g==e?g:g[a],a),y.length&&(o||y.reverse(),n(r(y)))}var l=t.startContainer,u=t.startOffset,c=t.endContainer,d=t.endOffset,f,p,m,g,v,y,b;if(b=e.select("td[data-mce-selected],th[data-mce-selected]"),b.length>0)return void h(b,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[u]),1==c.nodeType&&c.hasChildNodes()&&(c=a(c,d)),l==c)return n(r([l]));for(f=e.findCommonAncestor(l,c),g=l;g;g=g.parentNode){if(g===c)return s(l,f,!0);if(g===f)break}for(g=c;g;g=g.parentNode){if(g===l)return s(c,f);if(g===f)break}p=o(l,f)||l,m=o(c,f)||c,s(l,p,!0),y=i(p==l?p:p.nextSibling,"nextSibling",m==c?m.nextSibling:m),y.length&&n(r(y)),s(c,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function s(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||m);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function l(e){for(;e&&e!=m;){if(g(e))return!0;e=e.parentNode}return!1}function u(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function d(n,r){var a,s,l;if(r=r||f,l=e.getParent(r.parentNode,e.isBlock)||m,n&&"BR"==r.nodeName&&x&&e.isEmpty(l))return f=r.parentNode,p=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);y=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(y)||c(y,e.getRoot()))return;if(3===y.nodeType&&y.nodeValue.length>0)return f=y,p=n?y.nodeValue.length:0,void(i=!0);if(e.isBlock(y)||b[y.nodeName.toLowerCase()])return;s=y}o&&s&&(f=s,i=!0,p=0)}var f,p,h,m=e.getRoot(),y,b,C,x;if(f=n[(r?"start":"end")+"Container"],p=n[(r?"start":"end")+"Offset"],x=1==f.nodeType&&p===f.childNodes.length,b=e.schema.getNonEmptyElements(),C=r,!v(f)){if(1==f.nodeType&&p>f.childNodes.length-1&&(C=!1),9===f.nodeType&&(f=e.getRoot(),p=0),f===m){if(C&&(y=f.childNodes[p>0?p-1:0])){if(v(y))return;if(b[y.nodeName]||"TABLE"==y.nodeName)return}if(f.hasChildNodes()){if(p=Math.min(!C&&p>0?p-1:p,f.childNodes.length-1),f=f.childNodes[p],p=0,!o&&f===m.lastChild&&"TABLE"===f.nodeName)return;if(l(f)||v(f))return;if(f.hasChildNodes()&&!/TABLE/.test(f.nodeName)){y=f,h=new t(f,m);do{if(g(y)||v(y)){i=!1;break}if(3===y.nodeType&&y.nodeValue.length>0){p=C?0:y.nodeValue.length,f=y,i=!0;break}if(b[y.nodeName.toLowerCase()]&&!a(y)){p=e.nodeIndex(y),f=y.parentNode,"IMG"!=y.nodeName||C||p++,i=!0;break}}while(y=C?h.next():h.prev())}}}o&&(3===f.nodeType&&0===p&&d(!0),1===f.nodeType&&(y=f.childNodes[p],y||(y=f.childNodes[p-1]),!y||"BR"!==y.nodeName||u(y,"A")||s(y)||s(y,!0)||d(!0,y))),C&&!o&&3===f.nodeType&&p===f.nodeValue.length&&d(!1),i&&n["set"+(r?"Start":"End")](f,p)}}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}function f(t,n,r){var i,o,a;if(i=r.elementFromPoint(t,n),o=r.body.createTextRange(),i&&"HTML"!=i.tagName||(i=r.body),o.moveToElementText(i),a=e.toArray(o.getClientRects()),a=a.sort(function(e,t){return e=Math.abs(Math.max(e.top-n,e.bottom-n)),t=Math.abs(Math.max(t.top-n,t.bottom-n)),e-t}),a.length>0){n=(a[0].bottom+a[0].top)/2;try{return o.moveToPoint(t,n),o.collapse(!0),o}catch(s){}}return null}function p(e,t){var n=e&&e.parentElement?e.parentElement():null;return g(s(n,t,o))?null:e}var h=e.each,m=n.isContentEditableTrue,g=n.isContentEditableFalse,v=i.isCaretContainer;return d.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},d.getCaretRangeFromPoint=function(e,t,n){var r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r=f(e,t,n)}return p(r,n.body)}return r},d.getSelectedNode=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset==n+1?t.childNodes[n]:null},d.getNode=function(e,t){return 1==e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},d}),r(R,[T,d,c],function(e,t,n){return function(r){function i(e){var t,n;if(n=r.$(e).parentsUntil(r.getBody()).add(e),n.length===a.length){for(t=n.length;t>=0&&n[t]===a[t];t--);if(t===-1)return a=n,!0}return a=n,!1}var o,a=[];"onselectionchange"in r.getDoc()||r.on("NodeChange Click MouseUp KeyUp Focus",function(t){var n,i;n=r.selection.getRng(),i={startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset},"nodechange"!=t.type&&e.compareRanges(i,o)||r.fire("SelectionChange"),o=i}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!t.range&&r.selection.isCollapsed()||!i(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"==r.selection.getNode().nodeName?n.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())}),this.nodeChanged=function(e){var t=r.selection,n,i,o;r.initialized&&t&&!r.settings.disable_nodechange&&!r.readonly&&(o=r.getBody(),n=t.getStart()||o,n.ownerDocument==r.getDoc()&&r.dom.isChildOf(n,o)||(n=o),"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),i=[],r.dom.getParent(n,function(e){return e===o||void i.push(e)}),e=e||{},e.element=n,e.parents=i,r.fire("NodeChange",e))}}}),r(A,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;r<i;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t,r){var i=this,o=i.firstChild,a,s;if(r=r||{},o)do{if(1===o.type){if(o.attributes.map["data-mce-bogus"])continue;if(t[o.name])return!1;for(a=o.attributes.length;a--;)if(s=o.attributes[a].name,"name"===s||0===s.indexOf("data-mce-bookmark"))return!1}if(8===o.type)return!1;if(3===o.type&&!n.test(o.value))return!1;if(3===o.type&&o.parent&&r[o.parent.name]&&n.test(o.value))return!1}while(o=e(o,i));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(B,[m],function(e){function t(t,n){return t=e.trim(t),t?t.split(n||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;r<i;r++)n[e[r]]=t||{};return n}var s,u,c;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),e=t(e),s=e.length;s--;)u=t([l,n].join(" ")),c={attributes:i(u),attributesOrder:u,children:i(r,o)},a[e[s]]=c}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;o<s;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,u,c,d,f,p;return i[e]?i[e]:(l="id accesskey class dir lang style tabindex title",u="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",c="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!=e&&(l+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",u+=" article aside details dialog figure header footer hgroup section nav",c+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!=e&&(l+=" xml:lang",p="acronym applet basefont big font strike tt",c=[c,p].join(" "),s(t(p),function(e){n(e,"",c)}),f="center dir isindex noframes",u=[u,f].join(" "),d=[u,c].join(" "),s(t(f),function(e){n(e,"",d)})),d=d||[u,c].join(" "),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",d),n("img","src sizes srcset alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",[d,"param"].join(" ")),n("param","name value"),n("map","name",[d,"area"].join(" ")),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",[d,"legend"].join(" ")),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",[d,"li"].join(" ")),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",[c,"rt rp"].join(" ")),n("figcaption","",d),n("mark rt rp summary bdi","",c),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[d,"track source"].join(" ")),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[d,"track source"].join(" ")),n("picture","","img source"),n("source","src srcset type media sizes"),n("track","kind src srclang label default"),n("datalist","",[c,"option"].join(" ")),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",[d,"figcaption"].join(" ")),n("time","datetime",c),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",[d,"summary"].join(" ")),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),
r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,delete a.script,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]=n[r.toUpperCase()]="map"==t?a(e,/[, ]/):u(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,u=e.explode,c=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,u,f,p,h,m,g,v,b,x,w,E,N,_,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,E=y["@"].attributesOrder),n=0,r=e.length;n<r;n++)if(s=S.exec(e[n])){if(b=s[1],p=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];v.push.apply(v,E)}if(f)for(f=t(f,"|"),i=0,o=f.length;i<o;i++)if(s=k.exec(f[i])){if(u={},m=s[1],h=s[2].replace(/::/g,":"),b=s[3],_=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(h),u.required=!0),"-"===m){delete g[h],v.splice(c(v,h),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:h,value:_}),u.defaultValue=_),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:h,value:_}),u.forcedValue=_),"<"===b&&(u.validValues=a(_,"?"))),T.test(h)?(l.attributePatterns=l.attributePatterns||[],u.pattern=d(h),l.attributePatterns.push(u)):(g[h]||v.push(h),g[h]=u)}w||"@"!=p||(w=g,E=v),x&&(l.outputName=p,y[x]=l),T.test(p)?(l.pattern=d(p),C.push(l)):y[p]=l}}function p(e){y={},C=[],f(e),s(E,function(e,t){b[t]=e.children})}function h(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],M[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(n){var r=/^([+\-]?)(\w+)\[([^\]]+)\]$/;i[e.schema]=null,n&&s(t(n,","),function(e){var n=r.exec(e),i,o;n&&(o=n[1],i=o?b[n[2]]:b[n[2]]={"#comment":{}},i=b[n[2]],s(t(n[3],"|"),function(e){"-"===o?delete i[e]:i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,E,N,_,S,k,T,R,A,B,D,L,M={},P={};e=e||{},E=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),N=o("whitespace_elements","pre script noscript style textarea video audio iframe object code"),_=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),S=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),k=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script pre code",S),B=o("move_caret_before_on_enter_elements","table",A),D=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",D),L=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){P[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?p(e.valid_elements):(s(E,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),h(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),s({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(e,n){y[n]&&(y[n].parentsRequired=t(e))}),e.invalid_elements&&s(u(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return k},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return D},v.getTextInlineElements=function(){return L},v.getShortEndedElements=function(){return S},v.getSelfClosingElements=function(){return _},v.getNonEmptyElements=function(){return A},v.getMoveCaretBeforeOnEnterElements=function(){return B},v.getWhiteSpaceElements=function(){return N},v.getSpecialElements=function(){return P},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return M},v.addValidElements=f,v.setValidElements=p,v.addCustomElements=h,v.addValidChildren=m,v.elements=y}}),r(D,[B,C,m],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=p.length;t--&&p[t].name!==e;);if(t>=0){for(n=p.length-1;n>=t;n--)e=p[n],e.valid&&l.end(e.name);p.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),E&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););s===-1&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var u=n.replace(l,"");try{u=decodeURIComponent(u)}catch(c){u=unescape(u)}if(V.test(u))return;if(!i.allow_html_data_urls&&$.test(u)&&!/^data:image\//i.test(u))return}h.map[t]=n,h.push({name:t,value:n})}var l=this,u,c=0,d,f,p=[],h,m,g,v,y,b,C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F=0,z=t.decode,U,W=n.makeMap("src,href,data,background,formaction,poster"),V=/((java|vb)script|mhtml):/i,$=/^data:/i;for(P=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),O=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),M=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),E=i.validate,b=i.remove_internals,U=i.fix_self_closing,H=a.getSpecialElements();u=P.exec(e);){if(c<u.index&&l.text(z(e.substr(c,u.index-c))),d=u[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=u[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,U&&M[d]&&p.length>0&&p[p.length-1].name===d&&o(d),!E||(N=a.getElementRule(d))){if(_=!0,E&&(T=N.attributes,R=N.attributePatterns),(k=u[8])?(y=k.indexOf("data-mce-type")!==-1,y&&b&&(_=!1),h=[],h.map={},k.replace(O,s)):(h=[],h.map={}),E&&!y){if(A=N.attributesRequired,B=N.attributesDefault,D=N.attributesForced,L=N.removeEmptyAttrs,L&&!h.length&&(_=!1),D)for(m=D.length;m--;)S=D[m],v=S.name,I=S.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I});if(B)for(m=B.length;m--;)S=B[m],v=S.name,v in h.map||(I=S.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in h.map););m===-1&&(_=!1)}if(S=h.map["data-mce-bogus"]){if("all"===S){c=r(a,e,P.lastIndex),P.lastIndex=c;continue}_=!1}}_&&l.start(d,h,w)}else _=!1;if(f=H[d]){f.lastIndex=c=u.index+u[0].length,(u=f.exec(e))?(_&&(g=e.substr(c,u.index-c)),c=u.index+u[0].length):(g=e.substr(c),c=e.length),_&&(g.length>0&&l.text(g,!0),l.end(d)),P.lastIndex=c;continue}w||(k&&k.indexOf("/")==k.length-1?_&&l.end(d):p.push({name:d,valid:_}))}else(d=u[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3).toLowerCase()||(d=" "+d),l.comment(d)):(d=u[2])?l.cdata(d):(d=u[3])?l.doctype(d):(d=u[4])&&l.pi(d,u[5]);c=u.index+u[0].length}for(c<e.length&&l.text(z(e.substr(c))),m=p.length-1;m>=0;m--)d=p[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(L,[A,B,D,m],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend,l=function(t,n){t.padd_empty_with_br?n.empty().append(new e("br","1")).shortEnded=!0:n.empty().append(new e("#text","3")).value="\xa0"},u=function(e,t){return e&&e.firstChild===e.lastChild&&e.firstChild.name===t};return function(c,d){function f(t){var n,r,o,a,s,l,c,f,h,m,g,v,y,b,C,x;for(v=i("tr,td,th,tbody,thead,tfoot,table"),m=d.getNonEmptyElements(),g=d.getWhiteSpaceElements(),y=d.getTextBlockElements(),b=d.getSpecialElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(y[r.name]&&"li"==r.parent.name){for(C=r.next;C&&y[C.name];)C.name="li",C.fixed=!0,r.parent.insert(C,r.parent),C=C.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!d.isValidChild(o.name,r.name)&&!v[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=l=p.filterNode(a[0].clone()),h=0;h<a.length-1;h++){for(d.isValidChild(l.name,a[h].name)?(c=p.filterNode(a[h].clone()),l.append(c)):c=l,f=a[h].firstChild;f&&f!=a[h+1];)x=f.next,c.append(f),f=x;l=c}s.isEmpty(m,g)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(m,g)||u(o,"br"))&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(C=r.prev,C&&("ul"===C.name||"ul"===C.name)){C.append(r);continue}if(C=r.next,C&&("ul"===C.name||"ul"===C.name)){C.insert(r,C.firstChild,!0);continue}r.wrap(p.filterNode(new e("ul",1)));continue}d.isValidChild(r.parent.name,"div")&&d.isValidChild("div",r.name)?r.wrap(p.filterNode(new e("div",1))):b[r.name]?r.empty().remove():r.unwrap()}}}var p=this,h={},m=[],g={},v={};c=c||{},c.validate=!("validate"in c)||c.validate,c.root_name=c.root_name||"body",p.schema=d=d||new t,p.filterNode=function(e){var t,n,r;n in h&&(r=g[n],r?r.push(e):g[n]=[e]),t=m.length;for(;t--;)n=m[t].name,n in e.attributes.map&&(r=v[n],r?r.push(e):v[n]=[e]);return e},p.addNodeFilter=function(e,t){o(a(e),function(e){var n=h[e];n||(h[e]=n=[]),n.push(t)})},p.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<m.length;n++)if(m[n].name===e)return void m[n].callbacks.push(t);m.push({name:e,callbacks:[t]})})},p.parse=function(t,r){function o(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(A,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(L,"")))}var t=b.firstChild,n,r;if(d.isValidChild(b.name,F.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!R[t.name]&&!t.attr("data-mce-type")?r?r.append(t):(r=a(F,1),r.attr(c.forced_root_block_attrs),b.insert(r,t),r.append(t)):(e(r),r=null),t=n;e(r)}}function a(t,n){var r=new e(t,n),i;return t in h&&(i=g[t],i?i.push(r):g[t]=[r]),r}function u(e){var t,n,r,i,o=d.getBlockElements();for(t=e.prev;t&&3===t.type;){if(r=t.value.replace(L,""),r.length>0)return void(t.value=r);if(n=t.next){if(3==n.type&&n.value.length){t=t.prev;continue}if(!o[n.name]&&"script"!=n.name&&"style"!=n.name){t=t.prev;continue}}i=t.prev,t.remove(),t=i}}function p(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var y,b,C,x,w,E,N,_,S,k,T,R,A,B=[],D,L,M,P,O,H,I,F;if(r=r||{},g={},v={},R=s(i("script,style,head,html,body,title,meta,param"),d.getBlockElements()),I=d.getNonEmptyElements(),H=d.children,T=c.validate,F="forced_root_block"in r?r.forced_root_block:c.forced_root_block,O=d.getWhiteSpaceElements(),A=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,M=/[ \t\r\n]+/g,P=/^[ \t\r\n]+$/,y=new n({validate:T,allow_script_urls:c.allow_script_urls,allow_conditional_comments:c.allow_conditional_comments,self_closing_elements:p(d.getSelfClosingElements()),cdata:function(e){C.append(a("#cdata",4)).value=e},text:function(e,t){var n;D||(e=e.replace(M," "),C.lastChild&&R[C.lastChild.name]&&(e=e.replace(A,""))),0!==e.length&&(n=a("#text",3),n.raw=!!t,C.append(n).value=e)},comment:function(e){C.append(a("#comment",8)).value=e},pi:function(e,t){C.append(a(e,7)).value=t,u(C)},doctype:function(e){var t;t=C.append(a("#doctype",10)),t.value=e,u(C)},start:function(e,t,n){var r,i,o,s,l;if(o=T?d.getElementRule(e):{}){for(r=a(o.outputName||e,1),r.attributes=t,r.shortEnded=n,C.append(r),l=H[C.name],l&&H[r.name]&&!l[r.name]&&B.push(r),i=m.length;i--;)s=m[i].name,s in t.map&&(S=v[s],S?S.push(r):v[s]=[r]);R[e]&&u(r),n||(C=r),!D&&O[e]&&(D=!0)}},end:function(e){var t,n,r,i,o;if(n=T?d.getElementRule(e):{}){if(R[e]&&!D){if(t=C.firstChild,t&&3===t.type)if(r=t.value.replace(A,""),r.length>0)t.value=r,t=t.next;else for(i=t.next,t.remove(),t=i;t&&3===t.type;)r=t.value,i=t.next,(0===r.length||P.test(r))&&(t.remove(),t=i),t=i;if(t=C.lastChild,t&&3===t.type)if(r=t.value.replace(L,""),r.length>0)t.value=r,t=t.prev;else for(i=t.prev,t.remove(),t=i;t&&3===t.type;)r=t.value,i=t.prev,(0===r.length||P.test(r))&&(t.remove(),t=i),t=i}if(D&&O[e]&&(D=!1),(n.removeEmpty||n.paddEmpty)&&C.isEmpty(I,O))if(n.paddEmpty)l(c,C);else if(!C.attributes.map.name&&!C.attributes.map.id)return o=C.parent,R[C.name]?C.empty().remove():C.unwrap(),void(C=o);C=C.parent}}},d),b=C=new e(r.context||c.root_name,11),y.parse(t),T&&B.length&&(r.context?r.invalid=!0:f(B)),F&&("body"==b.name||r.isRootContent)&&o(),!r.invalid){for(k in g){for(S=h[k],x=g[k],N=x.length;N--;)x[N].parent||x.splice(N,1);for(w=0,E=S.length;w<E;w++)S[w](x,k,r)}for(w=0,E=m.length;w<E;w++)if(S=m[w],S.name in v){for(x=v[S.name],N=x.length;N--;)x[N].parent||x.splice(N,1);for(N=0,_=S.callbacks.length;N<_;N++)S.callbacks[N](x,S.name,r)}}return b},c.remove_trailing_brs&&p.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},d.getBlockElements()),a=d.getNonEmptyElements(),u,f,p,h,m=d.getNonEmptyElements(),g,v;for(o.body=1,n=0;n<r;n++)if(i=t[n],u=i.parent,o[i.parent.name]&&i===u.lastChild){for(p=i.prev;p;){if(h=p.name,"span"!==h||"bookmark"!==p.attr("data-mce-type")){if("br"!==h)break;if("br"===h){i=null;break}}p=p.prev}i&&(i.remove(),u.isEmpty(a,m)&&(g=d.getElementRule(u.name),g&&(g.removeEmpty?u.remove():g.paddEmpty&&l(c,u))))}else{for(f=i;u&&u.firstChild===f&&u.lastChild===f&&(f=u,!o[u.name]);)u=u.parent;f===u&&c.padd_empty_with_br!==!0&&(v=new e("#text",3),v.value="\xa0",i.replace(v))}}),c.allow_unsafe_link_target||p.addAttributeFilter("href",function(e){function t(e){return e=n(e),e?[e,l].join(" "):l}function n(e){var t=new RegExp("("+l.replace(" ","|")+")","g");return e&&(e=r.trim(e.replace(t,""))),e?e:null}function i(e,r){return r?t(e):n(e)}for(var o=e.length,a,s,l="noopener noreferrer";o--;)a=e[o],s=a.attr("rel"),"a"===a.name&&a.attr("rel",i(s,"_blank"==a.attr("target")))}),c.allow_html_in_named_anchor||p.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),c.fix_list_elements&&p.addNodeFilter("ul,ol",function(t){for(var n=t.length,r,i;n--;)if(r=t[n],i=r.parent,"ul"===i.name||"ol"===i.name)if(r.prev&&"li"===r.prev.name)r.prev.append(r);else{var o=new e("li",1);o.attr("style","list-style-type: none"),r.wrap(o)}}),c.validate&&d.getValidClasses()&&p.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=d.getValidClasses(),l,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,l=s["*"],l&&l[o]&&(u=!0),l=s[n.name],!u&&l&&l[o]&&(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(M,[C,m],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var u,c,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(u=0,c=t.length;u<c;u++)d=t[u],r.push(" ",d.name,'="',s(d.value,!0),'"');!n||l?r[r.length]=">":r[r.length]=" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",s(t),"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(P,[M,B],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate=!("validate"in n)||n.validate,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,u,c,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,u=e.attributes,a&&u&&u.length>1&&(f=[],f.map={},m=r.getElementRule(e.name))){for(p=0,h=m.attributesOrder.length;p<h;p++)c=m.attributesOrder[p],c in u.map&&(d=u.map[c],f.map[c]=d,f.push({name:c,value:d}));for(p=0,h=u.length;p<h;p++)c=u[p].name,c in f.map||(d=u.map[c],f.map[c]=d,f.push({name:c,value:d}));u=f}if(o.start(e.name,u,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(O,[w,L,D,C,P,A,B,d,m,S],function(e,t,n,r,i,o,a,s,l,u){function c(e){function t(e){return e&&"br"===e.name}var n,r;n=e.lastChild,t(n)&&(r=n.prev,t(r)&&(n.remove(),r.remove()))}var d=l.each,f=l.trim,p=e.DOM;return function(e,o){function h(e){var t=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","\\s?("+x.join("|")+')="[^"]+"'].join("|"),"gi");return e=u.trim(e.replace(t,""))}function m(e){var t=e,r=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,i,a,s,l,u,c=o.schema;for(t=h(t),u=c.getShortEndedElements();l=r.exec(t);)a=r.lastIndex,s=l[0].length,i=u[l[1]]?a:n.findEndTag(c,t,a),t=t.substring(0,a-s)+t.substring(i),r.lastIndex=a-s;return t}function g(){return m(o.getBody().innerHTML)}function v(e){l.inArray(x,e)===-1&&(C.addAttributeFilter(e,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),x.push(e))}var y,b,C,x=["data-mce-selected"];return o&&(y=o.dom,b=o.schema),y=y||p,b=b||new a(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs=!("remove_trailing_brs"in e)||e.remove_trailing_brs,C=new t(e,b),C.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),C.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,s=e.url_converter,l=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=y.serializeStyle(y.parseStyle(o),i.name):s&&(o=s.call(l,o,n,i.name)),i.attr(n,o.length>0?o:null))}),C.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),C.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),C.addNodeFilter("noscript",function(e){for(var t=e.length,n;t--;)n=e[t].firstChild,n&&(n.value=r.decode(n.value))}),C.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),C.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),C.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),C.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:b,addNodeFilter:C.addNodeFilter,addAttributeFilter:C.addAttributeFilter,serialize:function(t,n){var r=this,o,a,l,p,h,m;return s.ie&&y.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),y.setHTML(t,h)):t=t.cloneNode(!0),o=document.implementation,o.createHTMLDocument&&(a=o.createHTMLDocument(""),d("BODY"==t.nodeName?t.childNodes:[t],function(e){a.body.appendChild(a.importNode(e,!0))}),t="BODY"!=t.nodeName?a.body.firstChild:a.body,l=y.doc,y.doc=a),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,r.onPreProcess(n)),m=C.parse(f(n.getInner?t.innerHTML:y.getOuterHTML(t)),n),c(m),p=new i(e,b),n.content=p.serialize(m),n.cleanup||(n.content=u.trim(n.content),n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||r.onPostProcess(n),l&&(y.doc=l),n.node=null,n.content},addRules:function(e){b.addValidElements(e)},setRules:function(e){b.setValidElements(e)},onPreProcess:function(e){o&&o.fire("PreProcess",e)},onPostProcess:function(e){o&&o.fire("PostProcess",e)},addTempAttr:v,trimHtml:h,getTrimmedContent:g,trimContent:m}}}),r(H,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,u,c,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;i<=o;)if(c=Math.floor((i+o)/2),l=s[c],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=c-1;else{if(!(d<0))return{node:l};i=c+1}if(d<0)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),u=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)u++;else for(r.collapse(!0),u=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)u++;return{node:l,position:d,offset:u,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,u,c;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===u)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(c=l.nodeValue,s+=c.length,s>=i)){r=l,s-=i,s=c.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,u,c,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(f.number!=-2147024809)throw f;d=r.getBookmark(2),u=o.duplicate(),u.collapse(!0),s=u.parentElement(),l||(u=o.duplicate(),u.collapse(!1),c=u.parentElement(),c.innerHTML=c.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;if(n=t(a,e))return{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,u;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),u=i.offset,u!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-u:u)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:u,n=e?l:c,d=r.duplicate(),t!=f&&t!=f.documentElement||(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,u,c,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,u=t.endContainer,c=t.endOffset,r=p.createTextRange(),s==u&&1==s.nodeType){if(l==c&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==c-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(I,[d],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(F,[I,m,c,d,_],function(e,t,n,r,i){function o(e,t){for(;t&&t!=e;){if(s(t)||a(t))return t;t=t.parentNode}return null}var a=i.isContentEditableFalse,s=i.isContentEditableTrue;return function(i,s){function l(e){var t=s.settings.object_resizing;return t!==!1&&!r.iOS&&("string"!=typeof t&&(t="table,img,div"),"false"!==e.getAttribute("data-mce-resize")&&(e!=s.getBody()&&s.dom.is(e,t)))}function u(t){var n,r,i,o,a;n=t.screenX-L,r=t.screenY-M,U=n*B[2]+H,W=r*B[3]+I,U=U<5?5:U,W=W<5?5:W,i="IMG"==k.nodeName&&s.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==k.nodeName&&B[2]*B[3]!==0,i&&(j(n)>j(r)?(W=Y(U*F),U=Y(W/F)):(U=Y(W/F),W=Y(U*F))),_.setStyles(T,{width:U,height:W}),o=B.startPos.x+n,a=B.startPos.y+r,o=o>0?o:0,a=a>0?a:0,_.setStyles(R,{left:o,top:a,display:"block"}),R.innerHTML=U+" &times; "+W,B[2]<0&&T.clientWidth<=U&&_.setStyle(T,"left",P+(H-U)),B[3]<0&&T.clientHeight<=W&&_.setStyle(T,"top",O+(I-W)),n=X.scrollWidth-K,r=X.scrollHeight-G,n+r!==0&&_.setStyles(R,{left:o-n,top:a-r}),z||(s.fire("ObjectResizeStart",{target:k,width:H,height:I}),z=!0)}function c(){function e(e,t){t&&(k.style[e]||!s.schema.isValid(k.nodeName.toLowerCase(),e)?_.setStyle(k,e,t):_.setAttrib(k,e,t))}z=!1,e("width",U),e("height",W),_.unbind(V,"mousemove",u),_.unbind(V,"mouseup",c),$!=V&&(_.unbind($,"mousemove",u),_.unbind($,"mouseup",c)),_.remove(T),_.remove(R),q&&"TABLE"!=k.nodeName||d(k),s.fire("ObjectResized",{target:k,width:U,height:W}),_.setAttrib(k,"style",_.getAttrib(k,"style")),s.nodeChanged()}function d(e,t,n){var i,o,a,d,p;f(),x(),i=_.getPos(e,X),P=i.x,O=i.y,p=e.getBoundingClientRect(),o=p.width||p.right-p.left,a=p.height||p.bottom-p.top,k!=e&&(C(),k=e,U=W=0),d=s.fire("ObjectSelected",{target:e}),l(e)&&!d.isDefaultPrevented()?S(A,function(e,i){function s(t){L=t.screenX,M=t.screenY,H=k.clientWidth,I=k.clientHeight,F=I/H,B=e,e.startPos={x:o*e[0]+P,y:a*e[1]+O},K=X.scrollWidth,G=X.scrollHeight,T=k.cloneNode(!0),_.addClass(T,"mce-clonedresizable"),_.setAttrib(T,"data-mce-bogus","all"),T.contentEditable=!1,T.unSelectabe=!0,_.setStyles(T,{left:P,top:O,margin:0}),T.removeAttribute("data-mce-selected"),X.appendChild(T),_.bind(V,"mousemove",u),_.bind(V,"mouseup",c),$!=V&&(_.bind($,"mousemove",u),_.bind($,"mouseup",c)),R=_.add(X,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},H+" &times; "+I)}var l;return t?void(i==t&&s(n)):(l=_.get("mceResizeHandle"+i),l&&_.remove(l),l=_.add(X,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),11===r.ie&&(l.contentEditable=!1),_.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),s(e)}),e.elm=l,void _.setStyles(l,{left:o*e[0]+P-l.offsetWidth/2,top:a*e[1]+O-l.offsetHeight/2}))}):f(),k.setAttribute("data-mce-selected","1")}function f(){var e,t;x(),k&&k.removeAttribute("data-mce-selected");for(e in A)t=_.get("mceResizeHandle"+e),t&&(_.unbind(t),_.remove(t))}function p(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,r;if(!z&&!s.removed)return S(_.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),r="mousedown"==e.type?e.target:i.getNode(),r=_.$(r).closest(q?"table":"table,img,hr")[0],t(r,X)&&(w(),n=i.getStart(!0),t(n,r)&&t(i.getEnd(!0),r)&&(!q||r!=n&&"IMG"!==n.nodeName))?void d(r):void f()}function h(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function m(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function g(e){var t=e.srcElement,n,r,i,o,a,l,u;n=t.getBoundingClientRect(),l=D.clientX-n.left,u=D.clientY-n.top;for(r in A)if(i=A[r],o=t.offsetWidth*i[0],a=t.offsetHeight*i[1],j(o-l)<8&&j(a-u)<8){B=i;break}z=!0,s.fire("ObjectResizeStart",{target:k,width:k.clientWidth,height:k.clientHeight}),s.getDoc().selection.empty(),d(t,r,D)}function v(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function y(e){return a(o(s.getBody(),e))}function b(e){var t=e.srcElement;if(y(t))return void v(e);if(t!=k){if(s.fire("ObjectSelected",{target:t}),C(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);
"IMG"!=t.nodeName&&"TABLE"!=t.nodeName||(f(),k=t,h(t,"resizestart",g))}}function C(){m(k,"resizestart",g)}function x(){for(var e in A){var t=A[e];t.elm&&(_.unbind(t.elm),delete t.elm)}}function w(){try{s.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function E(e){var t;if(q){t=V.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function N(){k=T=null,q&&(C(),m(X,"controlselect",b))}var _=s.dom,S=t.each,k,T,R,A,B,D,L,M,P,O,H,I,F,z,U,W,V=s.getDoc(),$=document,q=r.ie&&r.ie<11,j=Math.abs,Y=Math.round,X=s.getBody(),K,G;A={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var J=".mce-content-body";return s.contentStyles.push(J+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: box-sizing;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+J+" .mce-resizehandle:hover {background: #000}"+J+" img[data-mce-selected],"+J+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+J+" .mce-clonedresizable {position: absolute;"+(r.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+J+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),s.on("init",function(){q?(s.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(f(),E(e.target))}),h(X,"controlselect",b),s.on("mousedown",function(e){D=e})):(w(),r.ie>=11&&(s.on("mousedown click",function(e){var t=e.target,n=t.nodeName;z||!/^(TABLE|IMG|HR)$/.test(n)||y(t)||(s.selection.select(t,"TABLE"==n),"mousedown"==e.type&&s.nodeChanged())}),s.dom.bind(X,"mscontrolselect",function(e){function t(e){n.setEditorTimeout(s,function(){s.selection.select(e)})}return y(e.target)?(e.preventDefault(),void t(e.target)):void(/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&t(e.target)))})));var e=n.throttle(function(e){s.composing||p(e)});s.on("nodechange ResizeEditor ResizeWindow drop",e),s.on("keyup compositionend",function(t){k&&"TABLE"==k.nodeName&&e(t)}),s.on("hide blur",f)}),s.on("remove",x),{isResizable:l,showResizeRect:d,hideResizeRect:f,updateResizeRect:p,controlSelect:E,destroy:N}}}),r(z,[],function(){function e(e){return function(){return e}}function t(e){return function(t){return!e(t)}}function n(e,t){return function(n){return e(t(n))}}function r(){var e=s.call(arguments);return function(t){for(var n=0;n<e.length;n++)if(e[n](t))return!0;return!1}}function i(){var e=s.call(arguments);return function(t){for(var n=0;n<e.length;n++)if(!e[n](t))return!1;return!0}}function o(e){var t=s.call(arguments);return t.length-1>=e.length?e.apply(this,t.slice(1)):function(){var e=t.concat([].slice.call(arguments));return o.apply(this,e)}}function a(){}var s=[].slice;return{constant:e,negate:t,and:i,or:r,curry:o,compose:n,noop:a}}),r(U,[_,h,k],function(e,t,n){function r(e){return!m(e)&&(d(e)?!f(e.parentNode):p(e)||c(e)||h(e)||u(e))}function i(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode){if(u(e))return!1;if(l(e))return!0}return!0}function o(e){return!!u(e)&&t.reduce(e.getElementsByTagName("*"),function(e,t){return e||l(t)},!1)!==!0}function a(e){return p(e)||o(e)}function s(e,t){return r(e)&&i(e,t)}var l=e.isContentEditableTrue,u=e.isContentEditableFalse,c=e.isBr,d=e.isText,f=e.matchNodeNames("script style textarea"),p=e.matchNodeNames("img input textarea hr iframe video audio object"),h=e.matchNodeNames("table"),m=n.isCaretContainer;return{isCaretCandidate:r,isInEditable:i,isAtomic:a,isEditableCaretCandidate:s}}),r(W,[],function(){function e(e){return e?{left:c(e.left),top:c(e.top),bottom:c(e.bottom),right:c(e.right),width:c(e.width),height:c(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}}function t(t,n){return t=e(t),n?t.right=t.left:(t.left=t.left+t.width,t.right=t.left),t.width=0,t}function n(e,t){return e.left===t.left&&e.top===t.top&&e.bottom===t.bottom&&e.right===t.right}function r(e,t,n){return e>=0&&e<=Math.min(t.height,n.height)/2}function i(e,t){return e.bottom<t.top||!(e.top>t.bottom)&&r(t.top-e.bottom,e,t)}function o(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&r(t.bottom-e.top,e,t)}function a(e,t){return e.left<t.left}function s(e,t){return e.right>t.right}function l(e,t){return i(e,t)?-1:o(e,t)?1:a(e,t)?-1:s(e,t)?1:0}function u(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom}var c=Math.round;return{clone:e,collapse:t,isEqual:n,isAbove:i,isBelow:o,isLeft:a,isRight:s,compare:l,containsXY:u}}),r(V,[],function(){function e(e){return"string"==typeof e&&e.charCodeAt(0)>=768&&t.test(e)}var t=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]");return{isExtendingChar:e}}),r($,[z,_,w,T,U,W,V],function(e,t,n,r,i,o,a){function s(e){return"createRange"in e?e.createRange():n.DOM.createRng()}function l(e){return e&&/[\r\n\t ]/.test(e)}function u(e){var t=e.startContainer,n=e.startOffset,r;return!!(l(e.toString())&&v(t.parentNode)&&(r=t.data,l(r[n-1])||l(r[n+1])))}function c(e){function t(e){var t=e.ownerDocument,n=s(t),r=t.createTextNode("\xa0"),i=e.parentNode,a;return i.insertBefore(r,e),n.setStart(r,0),n.setEnd(r,1),a=o.clone(n.getBoundingClientRect()),i.removeChild(r),a}function n(e){var n,r;return r=e.getClientRects(),n=r.length>0?o.clone(r[0]):o.clone(e.getBoundingClientRect()),b(e)&&0===n.left?t(e):n}function r(e,t){return e=o.collapse(e,t),e.width=1,e.right=e.left+1,e}function i(e){0!==e.height&&(c.length>0&&o.isEqual(e,c[c.length-1])||c.push(e))}function l(e,t){var o=s(e.ownerDocument);if(t<e.data.length){if(a.isExtendingChar(e.data[t]))return c;if(a.isExtendingChar(e.data[t-1])&&(o.setStart(e,t),o.setEnd(e,t+1),!u(o)))return i(r(n(o),!1)),c}t>0&&(o.setStart(e,t-1),o.setEnd(e,t),u(o)||i(r(n(o),!1))),t<e.data.length&&(o.setStart(e,t),o.setEnd(e,t+1),u(o)||i(r(n(o),!0)))}var c=[],d,p;if(y(e.container()))return l(e.container(),e.offset()),c;if(f(e.container()))if(e.isAtEnd())p=x(e.container(),e.offset()),y(p)&&l(p,p.data.length),g(p)&&!b(p)&&i(r(n(p),!1));else{if(p=x(e.container(),e.offset()),y(p)&&l(p,0),g(p)&&e.isAtEnd())return i(r(n(p),!1)),c;d=x(e.container(),e.offset()-1),g(d)&&!b(d)&&(h(d)||h(p)||!g(p))&&i(r(n(d),!1)),g(p)&&i(r(n(p),!0))}return c}function d(t,n,r){function i(){return y(t)?0===n:0===n}function o(){return y(t)?n>=t.data.length:n>=t.childNodes.length}function a(){var e;return e=s(t.ownerDocument),e.setStart(t,n),e.setEnd(t,n),e}function l(){return r||(r=c(new d(t,n))),r}function u(){return l().length>0}function f(e){return e&&t===e.container()&&n===e.offset()}function p(e){return x(t,e?n-1:n)}return{container:e.constant(t),offset:e.constant(n),toRange:a,getClientRects:l,isVisible:u,isAtStart:i,isAtEnd:o,isEqual:f,getNode:p}}var f=t.isElement,p=i.isCaretCandidate,h=t.matchStyleValues("display","block table"),m=t.matchStyleValues("float","left right"),g=e.and(f,p,e.negate(m)),v=e.negate(t.matchStyleValues("white-space","pre pre-line pre-wrap")),y=t.isText,b=t.isBr,C=n.nodeIndex,x=r.getNode;return d.fromRangeStart=function(e){return new d(e.startContainer,e.startOffset)},d.fromRangeEnd=function(e){return new d(e.endContainer,e.endOffset)},d.after=function(e){return new d(e.parentNode,C(e)+1)},d.before=function(e){return new d(e.parentNode,C(e))},d}),r(q,[_,w,z,h,$],function(e,t,n,r,i){function o(e){var t=e.parentNode;return v(t)?o(t):t}function a(e){return e?r.reduce(e.childNodes,function(e,t){return v(t)&&"BR"!=t.nodeName?e=e.concat(a(t)):e.push(t),e},[]):[]}function s(e,t){for(;(e=e.previousSibling)&&g(e);)t+=e.data.length;return t}function l(e){return function(t){return e===t}}function u(t){var n,i,s;return n=a(o(t)),i=r.findIndex(n,l(t),t),n=n.slice(0,i+1),s=r.reduce(n,function(e,t,r){return g(t)&&g(n[r-1])&&e++,e},0),n=r.filter(n,e.matchNodeNames(t.nodeName)),i=r.findIndex(n,l(t),t),i-s}function c(e){var t;return t=g(e)?"text()":e.nodeName.toLowerCase(),t+"["+u(e)+"]"}function d(e,t,n){var r=[];for(t=t.parentNode;t!=e&&(!n||!n(t));t=t.parentNode)r.push(t);return r}function f(t,i){var o,a,l=[],u,f,p;return o=i.container(),a=i.offset(),g(o)?u=s(o,a):(f=o.childNodes,a>=f.length?(u="after",a=f.length-1):u="before",o=f[a]),l.push(c(o)),p=d(t,o),p=r.filter(p,n.negate(e.isBogus)),l=l.concat(r.map(p,function(e){return c(e)})),l.reverse().join("/")+","+u}function p(t,n,i){var o=a(t);return o=r.filter(o,function(e,t){return!g(e)||!g(o[t-1])}),o=r.filter(o,e.matchNodeNames(n)),o[i]}function h(e,t){for(var n=e,r=0,o;g(n);){if(o=n.data.length,t>=r&&t<=r+o){e=n,t-=r;break}if(!g(n.nextSibling)){e=n,t=o;break}r+=o,n=n.nextSibling}return t>e.data.length&&(t=e.data.length),new i(e,t)}function m(e,t){var n,o,a;return t?(n=t.split(","),t=n[0].split("/"),a=n.length>1?n[1]:"before",o=r.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),p(e,t[1],parseInt(t[2],10))):null},e),o?g(o)?h(o,parseInt(a,10)):(a="after"===a?y(o)+1:y(o),new i(o.parentNode,a)):null):null}var g=e.isText,v=e.isBogus,y=t.nodeIndex;return{create:f,resolve:m}}),r(j,[d,m,k,q,$,_,T],function(e,t,n,r,i,o,a){function s(s){var u=s.dom;this.getBookmark=function(e,c){function d(e,n){var r=0;return t.each(u.select(e),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!=n&&void r++}),r}function f(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function p(e){function t(e,t){var r=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],o=[],a,s,l=0;if(3==r.nodeType){if(c)for(a=r.previousSibling;a&&3==a.nodeType;a=a.previousSibling)i+=a.nodeValue.length;o.push(i)}else s=r.childNodes,i>=s.length&&s.length&&(l=1,i=Math.max(0,s.length-1)),o.push(u.nodeIndex(s[i],c)+l);for(;r&&r!=n;r=r.parentNode)o.push(u.nodeIndex(r,c));return o}var n=u.getRoot(),r={};return r.start=t(e,!0),s.isCollapsed()||(r.end=t(e)),r}function h(e){function t(e,t){var r;if(o.isElement(e)&&(e=a.getNode(e,t),l(e)))return e;if(n.isCaretContainer(e)){if(o.isText(e)&&n.isCaretContainerBlock(e)&&(e=e.parentNode),r=e.previousSibling,l(r))return r;if(r=e.nextSibling,l(r))return r}}return t(e.startContainer,e.startOffset)||t(e.endContainer,e.endOffset)}var m,g,v,y,b,C,x="&#xFEFF;",w;if(2==e)return C=s.getNode(),b=C?C.nodeName:null,m=s.getRng(),l(C)||"IMG"==b?{name:b,index:d(b,C)}:s.tridentSel?s.tridentSel.getBookmark(e):(C=h(m),C?(b=C.tagName,{name:b,index:d(b,C)}):p(m));if(3==e)return m=s.getRng(),{start:r.create(u.getRoot(),i.fromRangeStart(m)),end:r.create(u.getRoot(),i.fromRangeEnd(m))};if(e)return{rng:s.getRng()};if(m=s.getRng(),v=u.uniqueId(),y=s.isCollapsed(),w="overflow:hidden;line-height:0px",m.duplicate||m.item){if(m.item)return C=m.item(0),b=C.nodeName,{name:b,index:d(b,C)};g=m.duplicate();try{m.collapse(),m.pasteHTML('<span data-mce-type="bookmark" id="'+v+'_start" style="'+w+'">'+x+"</span>"),y||(g.collapse(!1),m.moveToElementText(g.parentElement()),0===m.compareEndPoints("StartToEnd",g)&&g.move("character",-1),g.pasteHTML('<span data-mce-type="bookmark" id="'+v+'_end" style="'+w+'">'+x+"</span>"))}catch(E){return null}}else{if(C=s.getNode(),b=C.nodeName,"IMG"==b)return{name:b,index:d(b,C)};g=f(m.cloneRange()),y||(g.collapse(!1),g.insertNode(u.create("span",{"data-mce-type":"bookmark",id:v+"_end",style:w},x))),m=f(m),m.collapse(!0),m.insertNode(u.create("span",{"data-mce-type":"bookmark",id:v+"_start",style:w},x))}return s.moveToBookmark({id:v,keep:1}),{id:v}},this.moveToBookmark=function(n){function i(e){var t=n[e?"start":"end"],r,i,o,a;if(t){for(o=t[0],i=d,r=t.length-1;r>=1;r--){if(a=i.childNodes,t[r]>a.length-1)return;i=a[t[r]]}3===i.nodeType&&(o=Math.min(t[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(t[0],i.childNodes.length)),e?c.setStart(i,o):c.setEnd(i,o)}return!0}function o(r){var i=u.get(n.id+"_"+r),o,a,s,l,c=n.keep;if(i&&(o=i.parentNode,"start"==r?(c?(o=i.firstChild,a=1):a=u.nodeIndex(i),f=p=o,h=m=a):(c?(o=i.firstChild,a=1):a=u.nodeIndex(i),p=o,m=a),!c)){for(l=i.previousSibling,s=i.nextSibling,t.each(t.grep(i.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});i=u.get(n.id+"_"+r);)u.remove(i,1);l&&s&&l.nodeType==s.nodeType&&3==l.nodeType&&!e.opera&&(a=l.nodeValue.length,l.appendData(s.nodeValue),u.remove(s),"start"==r?(f=p=l,h=m=a):(p=l,m=a))}}function a(t){return!u.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function l(){var e,t;return e=u.createRng(),t=r.resolve(u.getRoot(),n.start),e.setStart(t.container(),t.offset()),t=r.resolve(u.getRoot(),n.end),e.setEnd(t.container(),t.offset()),e}var c,d,f,p,h,m;if(n)if(t.isArray(n.start)){if(c=u.createRng(),d=u.getRoot(),s.tridentSel)return s.tridentSel.moveToBookmark(n);i(!0)&&i()&&s.setRng(c)}else"string"==typeof n.start?s.setRng(l(n)):n.id?(o("start"),o("end"),f&&(c=u.createRng(),c.setStart(a(f),h),c.setEnd(a(p),m),s.setRng(c))):n.name?s.select(u.select(n.name)[n.index]):n.rng&&s.setRng(n.rng)}}var l=o.isContentEditableFalse;return s.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},s}),r(Y,[y,H,F,T,j,_,d,m,$],function(e,n,r,i,o,a,s,l,u){function c(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var d=l.each,f=l.trim,p=s.ie;return c.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!(!t||t.item)&&(t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed)},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a,s,l;if(!n.win)return null;if(a=n.win.document,"undefined"==typeof a||null===a)return null;if(!e&&n.lastFocusBookmark){var u=n.lastFocusBookmark;return u.startContainer?(i=a.createRange(),i.setStart(u.startContainer,u.startOffset),i.setEnd(u.endContainer,u.endOffset)):i=u,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(l=n.editor.fire("GetSelectionRange",{range:i}),l.range!==i)return l.range;if(p&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r,i,o;if(e)if(e.select){n.explicitRange=null;try{e.select()}catch(a){}}else if(n.tridentSel){if(e.cloneRange)try{n.tridentSel.addRange(e)}catch(a){}}else{if(r=n.getSel(),o=n.editor.fire("SetSelectionRange",{range:e}),e=o.range,r){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(a){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}e.collapsed||e.startContainer!=e.endContainer||!r.setBaseAndExtent||s.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(i=e.startContainer.childNodes[e.startOffset],i&&"IMG"==i.tagName&&(r.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),r.anchorNode===e.startContainer&&r.focusNode===e.endContainer||r.setBaseAndExtent(i,0,i,1))),n.editor.fire("AfterSetSelectionRange",{range:e})}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i,o,a,s,l=t.dom.getRoot();return n?(i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&s-a<2&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r)):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return!(t&&t.anchorNode&&t.focusNode)||(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0)},normalize:function(){var e=this,t=e.getRng();return s.range&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};d(n.selectorChangedData,function(e,t){d(o,function(n){if(i.is(n,t))return r[t]||(d(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1})}),d(r,function(e,n){a[n]||(delete r[n],d(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){function n(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var r,i,o=this,s=o.dom,l=s.getRoot(),u,c,d=0;if(a.isElement(e)){if(t===!1&&(d=e.offsetHeight),"BODY"!=l.nodeName){var f=o.getScrollContainer();if(f)return r=n(e).y-n(f).y+d,c=f.clientHeight,u=f.scrollTop,void((r<u||r+25>u+c)&&(f.scrollTop=r<u?r:r-c+25))}i=s.getViewPort(o.editor.getWin()),r=s.getPos(e).y+d,u=i.y,c=i.h,(r<i.y||r+25>u+c)&&o.editor.getWin().scrollTo(0,r<u?r:r-c+25)}},placeCaretAt:function(e,t){this.setRng(i.getCaretRangeFromPoint(e,t,this.editor.getDoc()))},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),a=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==f(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(s.ie&&s.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},getBoundingClientRect:function(){var e=this.getRng();return e.collapsed?u.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){this.win=null,this.controlSelection.destroy()}},c}),r(X,[j,m],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&0!==i.indexOf("data-")&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName==i.nodeName&&(!!a(o(n),o(i))&&(!!a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))&&(!e.isBookmarkNode(n)&&!e.isBookmarkNode(i))))}}var r=t.each;return n}),r(K,[w,m,B],function(e,t,n){function r(e,r){function i(e,t){t.classes.length&&u.addClass(e,t.classes.join(" ")),u.setAttribs(e,t.attrs)}function o(e){var t;return c="string"==typeof e?{name:e,classes:[],attrs:{}}:e,t=u.create(c.name),i(t,c),t}function a(e,n){var r="string"!=typeof e?e.nodeName.toLowerCase():e,i=f.getElementRule(r),o=i.parentsRequired;return!(!o||!o.length)&&(n&&t.inArray(o,n)!==-1?n:o[0])}function s(e,n,r){var i,l,c,d=n.length&&n[0],f=d&&d.name;if(c=a(e,f))f==c?(l=n[0],n=n.slice(1)):l=c;else if(d)l=n[0],n=n.slice(1);else if(!r)return e;return l&&(i=o(l),i.appendChild(e)),r&&(i||(i=u.create("div"),i.appendChild(e)),t.each(r,function(t){var n=o(t);i.insertBefore(n,e)})),s(i,n,l&&l.siblings)}var l,c,d,f=r&&r.schema||new n({});return e&&e.length?(c=e[0],l=o(c),d=u.create("div"),d.appendChild(s(l,e.slice(1),c.siblings)),d):""}function i(e,t){return r(a(e),t)}function o(e){var n,r={classes:[],attrs:{}};return e=r.selector=t.trim(e),"*"!==e&&(n=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,n,i,o,a){switch(n){case"#":r.attrs.id=i;break;case".":r.classes.push(i);break;case":":t.inArray("checked disabled enabled read-only required".split(" "),i)!==-1&&(r.attrs[i]=i)}if("["==o){var s=a.match(/([\w\-]+)(?:\=\"([^\"]+))?/);s&&(r.attrs[s[1]]=s[2])}return""})),r.name=n||"div",r}function a(e){return e&&"string"==typeof e?(e=e.split(/\s*,\s*/)[0],e=e.replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),t.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var n=t.map(e.split(/(?:~\+|~|\+)/),o),r=n.pop();return n.length&&(r.siblings=n),r}).reverse()):[]}function s(e,t){function n(e){return e.replace(/%(\w+)/g,"")}var i,o,s,c,d="",f,p;if(p=e.settings.preview_styles,p===!1)return"";if("string"!=typeof p&&(p="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return"preview"in t&&(p=t.preview,p===!1)?"":(i=t.block||t.inline||"span",c=a(t.selector),c.length?(c[0].name||(c[0].name=i),i=t.selector,o=r(c,e)):o=r([i],e),s=u.select(i,o)[0]||o.firstChild,l(t.styles,function(e,t){e=n(e),e&&u.setStyle(s,t,e)}),l(t.attributes,function(e,t){e=n(e),e&&u.setAttrib(s,t,e)}),l(t.classes,function(e){e=n(e),u.hasClass(s,e)||u.addClass(s,e)}),e.fire("PreviewFormats"),u.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),f=u.getStyle(e.getBody(),"fontSize",!0),f=/px$/.test(f)?parseInt(f,10):0,l(p.split(" "),function(t){var n=u.getStyle(s,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=u.getStyle(e.getBody(),t,!0),"#ffffff"==u.toHex(n).toLowerCase())||"color"==t&&"#000000"==u.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===f)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*f+"px"}"border"==t&&n&&(d+="padding:0 2px;"),d+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),u.remove(o),d)}var l=t.each,u=e.DOM;return{getCssText:s,parseSelector:a,selectorToHtml:i}}),r(G,[h,_,g],function(e,t,n){function r(e,t){var n=o[e];n||(o[e]=n=[]),o[e].push(t)}function i(e,t){s(o[e],function(e){e(t)})}var o={},a=e.filter,s=e.each;return r("pre",function(r){function i(t){return u(t.previousSibling)&&e.indexOf(c,t.previousSibling)!=-1}function o(e,t){n(t).remove(),n(e).append("<br><br>").append(t.childNodes)}var l=r.selection.getRng(),u,c;u=t.matchNodeNames("pre"),l.collapsed||(c=r.selection.getSelectedBlocks(),s(a(a(c,u),i),function(e){o(e.previousSibling,e)}))}),{postProcess:i}}),r(J,[y,T,j,X,z,m,K,G],function(e,t,n,r,i,o,a,s){return function(l){function u(e){return e.nodeType&&(e=e.nodeName),!!l.schema.getTextBlockElements()[e.toLowerCase()]}function c(e){return/^(TH|TD)$/.test(e.nodeName)}function d(e){return e&&/^(IMG)$/.test(e.nodeName)}function f(e,t){return Q.getParents(e,t,Q.getRoot())}function p(e){return 1===e.nodeType&&"_mce_caret"===e.id}function h(){v({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){me(n,function(t,n){Q.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,
deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),me("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){v(e,{block:e,remove:"all"})}),v(l.settings.formats)}function m(){l.addShortcut("meta+b","bold_desc","Bold"),l.addShortcut("meta+i","italic_desc","Italic"),l.addShortcut("meta+u","underline_desc","Underline");for(var e=1;e<=6;e++)l.addShortcut("access+"+e,"",["FormatBlock",!1,"h"+e]);l.addShortcut("access+7","",["FormatBlock",!1,"p"]),l.addShortcut("access+8","",["FormatBlock",!1,"div"]),l.addShortcut("access+9","",["FormatBlock",!1,"address"])}function g(e){return e?J[e]:J}function v(e,t){e&&("string"!=typeof e?me(e,function(e,t){v(t,e)}):(t=t.length?t:[t],me(t,function(e){e.deep===ce&&(e.deep=!e.selector),e.split===ce&&(e.split=!e.selector||e.inline),e.remove===ce&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),J[e]=t))}function y(e){return e&&J[e]&&delete J[e],J}function b(e,t){var n=g(t);if(n)for(var r=0;r<n.length;r++)if(n[r].inherit===!1&&Q.is(e,n[r].selector))return!0;return!1}function C(e){var t;return l.dom.getParent(e,function(e){return t=l.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function x(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=C(e.parentNode),l.dom.getStyle(e,"color")&&t?l.dom.setStyle(e,"text-decoration",t):l.dom.getStyle(e,"text-decoration")===t&&l.dom.setStyle(e,"text-decoration",null))}function w(t,n,r){function i(e,t){if(t=t||f,e){if(t.onformat&&t.onformat(e,t,n,r),me(t.styles,function(t,r){Q.setStyle(e,r,F(t,n))}),t.styles){var i=Q.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}me(t.attributes,function(t,r){Q.setAttrib(e,r,F(t,n))}),me(t.classes,function(t){t=F(t,n),Q.hasClass(e,t)||Q.addClass(e,t)})}}function o(e,t){var n=!1;return!!f.selector&&(me(e,function(e){if(!("collapsed"in e&&e.collapsed!==v))return Q.is(t,e.selector)&&!p(t)?(i(t,e),n=!0,!1):void 0}),n)}function a(){function t(t,n){var i=new e(n);for(r=i.prev2();r;r=i.prev2()){if(3==r.nodeType&&r.data.length>0)return r;if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}}var n=l.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var a=t(i,o),s=3==a.nodeType?a.data.length:a.childNodes.length;n.setEnd(a,s)}return n}function c(e,r,a){var s=[],l,c,h=!0;l=f.inline||f.block,c=Q.create(l),i(c),ee.walk(e,function(e){function r(e){var g,v,y,b;if(b=h,g=e.nodeName.toLowerCase(),v=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&de(e)&&(b=h,h="true"===de(e),y=!0),D(g,"br"))return m=0,void(f.block&&Q.remove(e));if(f.wrapper&&_(e,t,n))return void(m=0);if(h&&!y&&f.block&&!f.wrapper&&u(g)&&te(v,l))return e=Q.rename(e,l),i(e),s.push(e),void(m=0);if(f.selector){var C=o(d,e);if(!f.inline||C)return void(m=0)}!h||y||!te(l,g)||!te(v,l)||!a&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||p(e)||f.inline&&ne(e)?(m=0,me(ge(e.childNodes),r),y&&(h=b),m=0):(m||(m=Q.clone(c,se),e.parentNode.insertBefore(m,e),s.push(m)),m.appendChild(e))}var m;me(e,r)}),f.links===!0&&me(s,function(e){function t(e){"A"===e.nodeName&&i(e,f),me(ge(e.childNodes),t)}t(e)}),me(s,function(e){function r(e){var t=0;return me(e.childNodes,function(e){z(e)||he(e)||t++}),t}function o(e){var t=!1;return me(e.childNodes,function(e){if(M(e))return t=e,!1}),t}function a(e,t){do{if(1!==r(e))break;if(e=o(e),!e)break;if(t(e))return e}while(e);return null}function l(e){var t,n;return t=o(e),t&&!he(t)&&B(t,f)&&(n=Q.clone(t,se),i(n),Q.replace(n,e,le),Q.remove(t,1)),n||e}var u;if(u=r(e),(s.length>1||!ne(e))&&0===u)return void Q.remove(e,1);if(f.inline||f.wrapper){if(f.exact||1!==u||(e=l(e)),me(d,function(t){me(Q.select(t.inline,e),function(e){he(e)||$(t,n,e,t.exact?e:null)})}),_(e.parentNode,t,n)&&$(f,n,e)&&(e=0),f.merge_with_parents&&Q.getParent(e.parentNode,function(r){if(_(r,t,n))return $(f,n,e)&&(e=0),le}),!ne(e)&&!H(e,"fontSize")){var c=a(e,P("fontSize"));c&&w("fontsize",{value:H(c,"fontSize")},e)}e&&f.merge_siblings!==!1&&(e=Y(j(e),e),e=Y(e,j(e,le)))}})}var d=g(t),f=d[0],h,m,v=!r&&Z.isCollapsed();if("false"!==de(Z.getNode())){if(f){if(r)r.nodeType?o(d,r)||(m=Q.createRng(),m.setStartBefore(r),m.setEndAfter(r),c(W(m,d),null,!0)):c(r,null,!0);else if(v&&f.inline&&!Q.select("td[data-mce-selected],th[data-mce-selected]").length)K("apply",t,n);else{var y=l.selection.getNode();re||!d[0].defaultBlock||Q.getParent(y,Q.isBlock)||w(d[0].defaultBlock),l.selection.setRng(a()),h=Z.getBookmark(),c(W(Z.getRng(le),d),h),f.styles&&((f.styles.color||f.styles.textDecoration)&&(ve(y,x,"childNodes"),x(y)),f.styles.backgroundColor&&L(y,P("fontSize"),O("backgroundColor",F(f.styles.backgroundColor,n)))),Z.moveToBookmark(h),G(Z.getRng(le)),l.nodeChanged()}s.postProcess(t,l)}}else{r=Z.getNode();for(var b=0,C=d.length;b<C;b++)if(d[b].ceFalseOverride&&Q.is(r,d[b].selector))return void i(r,d[b])}}function E(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&de(e)&&(a=y,y="true"===de(e),s=!0),n=ge(e.childNodes),y&&!s)for(r=0,o=p.length;r<o&&!$(p[r],t,e,e);r++);if(h.deep&&n.length){for(r=0,o=n.length;r<o;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return me(f(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=_(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function a(e,n,r,i){var o,a,s,l,u,c;if(e){for(c=e.parentNode,o=n.parentNode;o&&o!=c;o=o.parentNode){for(a=Q.clone(o,se),u=0;u<p.length;u++)if($(p[u],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||h.mixed&&ne(e)||(n=Q.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function s(e){return a(o(e),e,e,!0)}function u(e){var t=Q.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return he(n)&&(n=n[e?"firstChild":"lastChild"]),3==n.nodeType&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),Q.remove(t,!0),n}function d(e){var t,n,r=e.commonAncestorContainer;if(e=W(e,p,le),h.split){if(t=X(e,le),n=X(e),t!=n){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&c(n)&&n.firstChild&&(n=n.firstChild||n),Q.isChildOf(t,n)&&!ne(n)&&!c(t)&&!c(n))return t=U(t,"span",{id:"_start","data-mce-type":"bookmark"}),s(t),void(t=u(le));t=U(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=U(n,"span",{id:"_end","data-mce-type":"bookmark"}),s(t),s(n),t=u(le),n=u()}else t=n=s(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=ie(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=ie(n)+1}ee.walk(e,function(e){me(e,function(e){i(e),1===e.nodeType&&"underline"===l.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===C(e.parentNode)&&$({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=g(e),h=p[0],m,v,y=!0;if(n)return void(n.nodeType?(v=Q.createRng(),v.setStartBefore(n),v.setEndAfter(n),d(v)):d(n));if("false"!==de(Z.getNode()))Z.isCollapsed()&&h.inline&&!Q.select("td[data-mce-selected],th[data-mce-selected]").length?K("remove",e,t,r):(m=Z.getBookmark(),d(Z.getRng(le)),Z.moveToBookmark(m),h.inline&&S(e,t,Z.getStart())&&G(Z.getRng(!0)),l.nodeChanged());else{n=Z.getNode();for(var b=0,x=p.length;b<x&&(!p[b].ceFalseOverride||!$(p[b],t,n,n));b++);}}function N(e,t,n){var r=g(e);!S(e,t,n)||"toggle"in r[0]&&!r[0].toggle?w(e,t,n):E(e,t,n)}function _(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===ce){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?Q.getAttrib(e,o):H(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!D(a,I(F(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?Q.getAttrib(e,s[l]):H(e,s[l]))return t;return t}var o=g(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],B(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!Q.hasClass(e,l[s]))return;return a}}function S(e,t,n){function r(n){var r=Q.getRoot();return n!==r&&(n=Q.getParent(n,function(n){return!!b(n,e)||(n.parentNode===r||!!_(n,e,t,!0))}),_(n,e,t))}var i;return n?r(n):(n=Z.getNode(),r(n)?le:(i=Z.getStart(),i!=n&&r(i)?le:se))}function k(e,t){var n,r=[],i={};return n=Z.getStart(),Q.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&_(n,a,t)&&(i[a]=!0,r.push(a))},Q.getRoot()),r}function T(e){var t=g(e),n,r,i,o,a;if(t)for(n=Z.getStart(),r=f(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return le;for(i=r.length-1;i>=0;i--)if(Q.is(r[i],a))return le}return se}function R(e,t,n){var r;return ue||(ue={},r={},l.on("NodeChange",function(e){var t=f(e.element),n={};t=o.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),me(ue,function(e,i){me(t,function(o){return _(o,i,{},e.similar)?(r[i]||(me(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):!b(o,i)&&void 0})}),me(r,function(i,o){n[o]||(delete r[o],me(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),me(e.split(","),function(e){ue[e]||(ue[e]=[],ue[e].similar=n),ue[e].push(t)}),this}function A(e){return a.getCssText(l,e)}function B(e,t){return D(e,t.inline)?le:D(e,t.block)?le:t.selector?1==e.nodeType&&Q.is(e,t.selector):void 0}function D(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function L(e,t,n){me(e.childNodes,function(e){M(e)&&(t(e)&&n(e),e.hasChildNodes()&&L(e,t,n))})}function M(e){return 1==e.nodeType&&!he(e)&&!z(e)&&!p(e)}function P(e){return i.curry(function(e,t){return!(!t||!H(t,e))},e)}function O(e,t){return i.curry(function(e,t,n){Q.setStyle(n,e,t)},e,t)}function H(e,t){return I(Q.getStyle(e,t),t)}function I(e,t){return"color"!=t&&"backgroundColor"!=t||(e=Q.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function F(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function z(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function U(e,t,n){var r=Q.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function W(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=Q.getRoot(),3==r.nodeType&&!z(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&ne(i))return i;for(o=i[a];o;o=o[a])if(!he(o)&&!z(o)&&!t(o))return i;if(i==s||i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===ce&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function a(e){for(var t=e;t;){if(1===t.nodeType&&de(t))return"false"===de(t)?t:e;t=t.parentNode}return e}function s(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,n===-1||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=n!==-1&&(o===-1||n<o)?n:o),n}var a,s,u,c;if(3===t.nodeType){if(u=o(t,n),u!==-1)return{container:t,offset:u};c=t}for(a=new e(t,Q.getParent(t,ne)||l.getBody());s=a[i?"prev":"next"]();)if(3===s.nodeType){if(c=s,u=o(s),u!==-1)return{container:s,offset:u}}else if(ne(s))break;if(c)return n=i?0:c.length,{container:c,offset:n}}function c(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=f(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&Q.is(i[o],s.selector))return i[o];return e}function d(e,t){var r,i=Q.getRoot();if(n[0].wrapper||(r=Q.getParent(e,n[0].block,i)),r||(r=Q.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&u(e)})),r&&n[0].wrapper&&(r=f(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!ne(r[t])&&(r=r[t],!D(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=a(g),y=a(y),(he(g.parentNode)||he(g))&&(g=he(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(he(y.parentNode)||he(y))&&(y=he(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=s(g,v,!0),m&&(g=m.container,v=m.offset),m=s(y,b),m&&(y=m.container,b=m.offset)),h=o(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=o(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==se&&!n[0].inline&&(g=c(g,"previousSibling"),y=c(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=d(g,"previousSibling"),y=d(y,"nextSibling"),n[0].block&&(ne(g)||(g=i(!0)),ne(y)||(y=i()))),1==g.nodeType&&(v=ie(g),g=g.parentNode),1==y.nodeType&&(b=ie(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function V(e,t){return t.links&&"A"==e.tagName}function $(e,t,n,r){var i,o,a;if(!B(n,e)&&!V(n,e))return se;if("all"!=e.remove)for(me(e.styles,function(i,o){i=I(F(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||D(H(r,o),i))&&Q.setStyle(n,o,""),a=1}),a&&""===Q.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),me(e.attributes,function(e,i){var o;if(e=F(e,t),"number"==typeof i&&(i=e,r=0),!r||D(Q.getAttrib(r,i),e)){if("class"==i&&(e=Q.getAttrib(n,i),e&&(o="",me(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void Q.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),ae.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),me(e.classes,function(e){e=F(e,t),r&&!Q.hasClass(r,e)||Q.removeClass(n,e)}),o=Q.getAttribs(n),i=0;i<o.length;i++){var s=o[i].nodeName;if(0!==s.indexOf("_")&&0!==s.indexOf("data-"))return se}return"none"!=e.remove?(q(n,e),le):void 0}function q(e,t){function n(e,t,n){return e=j(e,t,n),!e||"BR"==e.nodeName||ne(e)}var r=e.parentNode,i;t.block&&(re?r==Q.getRoot()&&(t.list_block&&D(e,t.list_block)||me(ge(e.childNodes),function(e){te(re,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=U(e,re),Q.setAttribs(i,l.settings.forced_root_block_attrs)):i=0})):ne(e)&&!ne(r)&&(n(e,se)||n(e.firstChild,le,1)||e.insertBefore(Q.create("br"),e.firstChild),n(e,le)||n(e.lastChild,se,1)||e.appendChild(Q.create("br")))),t.selector&&t.inline&&!D(t.inline,e)||Q.remove(e,1)}function j(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!z(e))return e}function Y(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!he(i))return i}return e}var i,o,a=new r(Q);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return Q.remove(t),me(ge(t.childNodes),function(t){e.appendChild(t)}),e}return t}function X(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,l.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,l.getBody()).prev()||r),r}function K(t,n,r,i){function o(e){var t=Q.create("span",{id:m,"data-mce-bogus":!0,style:v?"color:red":""});return e&&t.appendChild(l.getDoc().createTextNode(oe)),t}function a(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==oe||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function s(e){for(;e;){if(e.id===m)return e;e=e.parentNode}}function c(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=Z.getRng(!0),a(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),Q.remove(e)):(n=c(e),n.nodeValue.charAt(0)===oe&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset>0&&r.setStart(n,r.startOffset-1),r.endContainer==n&&r.endOffset>0&&r.setEnd(n,r.endOffset-1)),Q.remove(e,1)),Z.setRng(r);else if(e=s(Z.getStart()),!e)for(;e=Q.get(m);)d(e,!1)}function f(){var e,t,i,a,l,u,d;e=Z.getRng(!0),a=e.startOffset,u=e.startContainer,d=u.nodeValue,t=s(Z.getStart()),t&&(i=c(t));var f=/[^\s\u00a0\u00ad\u200b\ufeff]/;d&&a>0&&a<d.length&&f.test(d.charAt(a))&&f.test(d.charAt(a-1))?(l=Z.getBookmark(),e.collapse(!0),e=W(e,g(n)),e=ee.split(e),w(n,r,e),Z.moveToBookmark(l)):(t&&i.nodeValue===oe?w(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,w(n,r,t)),Z.setCursorLocation(i,a))}function p(){var e=Z.getRng(!0),t,a,s,l,c,d,f=[],p,h;for(t=e.startContainer,a=e.startOffset,c=t,3==t.nodeType&&(a!=t.nodeValue.length&&(l=!0),c=c.parentNode);c;){if(_(c,n,r,i)){d=c;break}c.nextSibling&&(l=!0),f.push(c),c=c.parentNode}if(d)if(l)s=Z.getBookmark(),e.collapse(!0),e=W(e,g(n),!0),e=ee.split(e),E(n,r,e),Z.moveToBookmark(s);else{for(h=o(),c=h,p=f.length-1;p>=0;p--)c.appendChild(Q.clone(f[p],!1)),c=c.firstChild;c.appendChild(Q.doc.createTextNode(oe)),c=c.firstChild;var m=Q.getParent(d,u);m&&Q.isEmpty(m)?d.parentNode.replaceChild(h,d):Q.insertAfter(h,d),Z.setCursorLocation(c,1),Q.isEmpty(d)&&Q.remove(d)}}function h(){var e;e=s(Z.getStart()),e&&!Q.isEmpty(e)&&ve(e,function(e){1!=e.nodeType||e.id===m||Q.isEmpty(e)||Q.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var m="_mce_caret",v=l.settings.caret_debug;l._hasCaretEvents||(pe=function(){var e=[],t;if(a(s(Z.getStart()),e))for(t=e.length;t--;)Q.setAttrib(e[t],"data-mce-bogus","1")},fe=function(e){var t=e.keyCode;d(),8==t&&Z.isCollapsed()&&Z.getStart().innerHTML==oe&&d(s(Z.getStart())),37!=t&&39!=t||d(s(Z.getStart())),h()},l.on("SetContent",function(e){e.selection&&h()}),l._hasCaretEvents=!0),"apply"==t?f():p()}function G(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if((t.startContainer!=t.endContainer||!d(t.startContainer.childNodes[t.startOffset]))&&(3==n.nodeType&&r>=n.nodeValue.length&&(r=ie(n),n=n.parentNode,i=!0),1==n.nodeType))for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,Q.getParent(n,Q.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!z(a))return l=Q.create("a",{"data-mce-bogus":"all"},oe),a.parentNode.insertBefore(l,a),t.setStart(a,0),Z.setRng(t),void Q.remove(l)}var J={},Q=l.dom,Z=l.selection,ee=new t(Q),te=l.schema.isValidChild,ne=Q.isBlock,re=l.settings.forced_root_block,ie=Q.nodeIndex,oe="\ufeff",ae=/^(src|href|style)$/,se=!1,le=!0,ue,ce,de=Q.getContentEditable,fe,pe,he=n.isBookmarkNode,me=o.each,ge=o.grep,ve=o.walk,ye=o.extend;ye(this,{get:g,register:v,unregister:y,apply:w,remove:E,toggle:N,match:S,matchAll:k,matchNode:_,canApply:T,formatChanged:R,getCssText:A}),h(),m(),l.on("BeforeGetContent",function(e){pe&&"raw"!=e.format&&pe()}),l.on("mouseup keydown",function(e){fe&&fe(e)})}}),r(Q,[],function(){var e=0,t=1,n=2,r=function(r,i){var o=r.length+i.length+2,a=new Array(o),s=new Array(o),l=function(e,t,n){return{start:e,end:t,diag:n}},u=function(o,a,s,l,c){var f=d(o,a,s,l);if(null===f||f.start===a&&f.diag===a-l||f.end===o&&f.diag===o-s)for(var p=o,h=s;p<a||h<l;)p<a&&h<l&&r[p]===i[h]?(c.push([e,r[p]]),++p,++h):a-o>l-s?(c.push([n,r[p]]),++p):(c.push([t,i[h]]),++h);else{u(o,f.start,s,f.start-f.diag,c);for(var m=f.start;m<f.end;++m)c.push([e,r[m]]);u(f.end,a,f.end-f.diag,l,c)}},c=function(e,t,n,o){for(var a=e;a-t<o&&a<n&&r[a]===i[a-t];)++a;return l(e,a,t)},d=function(e,t,n,o){var l=t-e,u=o-n;if(0===l||0===u)return null;var d=l-u,f=u+l,p=(f%2===0?f:f+1)/2;a[1+p]=e,s[1+p]=t+1;for(var h=0;h<=p;++h){for(var m=-h;m<=h;m+=2){var g=m+p;m===-h||m!=h&&a[g-1]<a[g+1]?a[g]=a[g+1]:a[g]=a[g-1]+1;for(var v=a[g],y=v-e+n-m;v<t&&y<o&&r[v]===i[y];)a[g]=++v,++y;if(d%2!=0&&d-h<=m&&m<=d+h&&s[g-d]<=a[g])return c(s[g-d],m+e-n,t,o)}for(m=d-h;m<=d+h;m+=2){for(g=m+p-d,m===d-h||m!=d+h&&s[g+1]<=s[g-1]?s[g]=s[g+1]-1:s[g]=s[g-1],v=s[g]-1,y=v-e+n-m;v>=e&&y>=n&&r[v]===i[y];)s[g]=v--,y--;if(d%2===0&&-h<=m&&m<=h&&s[g]<=a[g+d])return c(s[g],m+e-n,t,o)}}},f=[];return u(0,r.length,0,i.length,f),f};return{KEEP:e,DELETE:n,INSERT:t,diff:r}}),r(Z,[h,C,Q],function(e,t,n){var r=function(e){return 1===e.nodeType?e.outerHTML:3===e.nodeType?t.encodeRaw(e.data,!1):8===e.nodeType?"<!--"+e.data+"-->":""},i=function(e){var t,n,r;for(r=document.createElement("div"),t=document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t},o=function(e,t,n){var r=i(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)},a=function(e,t){if(e.hasChildNodes()&&t<e.childNodes.length){var n=e.childNodes[t];n.parentNode.removeChild(n)}},s=function(t,r){var i=0;e.each(t,function(e){e[0]===n.KEEP?i++:e[0]===n.INSERT?(o(r,e[1],i),i++):e[0]===n.DELETE&&a(r,i)})},l=function(t){return e.map(t.childNodes,r)},u=function(t,i){var o=e.map(i.childNodes,r);return s(n.diff(o,t),i),i};return{read:l,write:u}}),r(ee,[h,Z],function(e,t){var n=function(e){return e.indexOf("</iframe>")!==-1},r=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},i=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},o=function(o){var a,s,l;return a=t.read(o.getBody()),l=e.map(a,function(e){return o.serializer.trimContent(e)}),s=l.join(""),n(s)?r(l):i(s)},a=function(e,n,r){"fragmented"===n.type?t.write(n.fragments,e.getBody()):e.setContent(n.content,{format:"raw"}),e.selection.moveToBookmark(r?n.beforeBookmark:n.bookmark)},s=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},l=function(e,t){return s(e)===s(t)};return{createFragmentedLevel:r,createCompleteLevel:i,createFromEditor:o,applyToEditor:a,isEq:l}}),r(te,[I,m,ee],function(e,t,n){return function(e){function r(t){e.setDirty(t)}function i(e){a.typing=!1,a.add({},e)}function o(){a.typing&&(a.typing=!1,a.add())}var a=this,s=0,l=[],u,c,d=0;return e.on("init",function(){a.add()}),e.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(o(),a.beforeChange())}),e.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&i(e)}),e.on("ObjectResizeStart Cut",function(){a.beforeChange()}),e.on("SaveContent ObjectResized blur",i),e.on("DragEnd",i),e.on("KeyUp",function(t){var o=t.keyCode;t.isDefaultPrevented()||((o>=33&&o<=36||o>=37&&o<=40||45===o||t.ctrlKey)&&(i(),e.nodeChanged()),46!==o&&8!==o||e.nodeChanged(),c&&a.typing&&(e.isDirty()||(r(l[0]&&!n.isEq(n.createFromEditor(e),l[0])),e.isDirty()&&e.fire("change",{level:l[0],lastLevel:null})),e.fire("TypingUndo"),c=!1,e.nodeChanged()))}),e.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented()){if(t>=33&&t<=36||t>=37&&t<=40||45===t)return void(a.typing&&i(e));var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||t>20)||224===t||91===t||a.typing||n||(a.beforeChange(),a.typing=!0,a.add({},e),c=!0)}}),e.on("MouseDown",function(e){a.typing&&i(e)}),e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo"),e.on("AddUndo Undo Redo ClearUndos",function(t){t.isDefaultPrevented()||e.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(u=e.selection.getBookmark(2,!0))},add:function(i,o){var a,c=e.settings,f,p;if(p=n.createFromEditor(e),i=i||{},i=t.extend(i,p),d||e.removed)return null;if(f=l[s],e.fire("BeforeAddUndo",{level:i,lastLevel:f,originalEvent:o}).isDefaultPrevented())return null;if(f&&n.isEq(f,i))return null;if(l[s]&&(l[s].beforeBookmark=u),c.custom_undo_redo_levels&&l.length>c.custom_undo_redo_levels){for(a=0;a<l.length-1;a++)l[a]=l[a+1];l.length--,s=l.length}i.bookmark=e.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(i),s=l.length-1;var h={level:i,lastLevel:f,originalEvent:o};return e.fire("AddUndo",h),s>0&&(r(!0),e.fire("change",h)),i},undo:function(){var t;return a.typing&&(a.add(),a.typing=!1),s>0&&(t=l[--s],n.applyToEditor(e,t,!0),r(!0),e.fire("undo",{level:t})),t},redo:function(){var t;return s<l.length-1&&(t=l[++s],n.applyToEditor(e,t,!1),r(!0),e.fire("redo",{level:t})),t},clear:function(){l=[],s=0,a.typing=!1,a.data=l,e.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&!n.isEq(n.createFromEditor(e),l[0])},hasRedo:function(){return s<l.length-1&&!a.typing},transact:function(e){o(),a.beforeChange();try{d++,e()}finally{d--}return a.add()},extra:function(t,r){var i,o;a.transact(t)&&(o=l[s].bookmark,i=l[s-1],n.applyToEditor(e,i,!0),a.transact(r)&&(l[s-1].beforeBookmark=o))}}}}),r(ne,[y,T,k,d],function(e,t,n,r){var i=r.ie&&r.ie<11;return function(o){function a(a){function h(e){return e&&s.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==s.getContentEditable(e)}function m(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function g(e){var t;s.isBlock(e)&&(t=l.getRng(),e.appendChild(s.create("span",null,"\xa0")),l.select(e),e.lastChild.outerHTML="",l.setRng(t))}function v(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(s.isBlock(t))return;1!=t.nodeType||f[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?s.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&s.remove(t)}}function y(t){function n(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,a,u=t,c;if(t){if(r.ie&&r.ie<9&&P&&P.firstChild&&P.firstChild==P.lastChild&&"BR"==P.firstChild.tagName&&s.remove(P.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var d=n(t.firstChild);d&&/^(UL|OL|DL)$/.test(d.nodeName)&&t.insertBefore(s.doc.createTextNode("\xa0"),t.firstChild)}if(a=s.createRng(),r.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){a.setStart(o,0),a.setEnd(o,0);break}if(p[o.nodeName.toLowerCase()]){a.setStartBefore(o),a.setEndBefore(o);break}u=o,o=i.next()}o||(a.setStart(u,0),a.setEnd(u,0))}else"BR"==t.nodeName?t.nextSibling&&s.isBlock(t.nextSibling)?((!O||O<9)&&(c=s.create("br"),t.parentNode.insertBefore(c,t)),a.setStartBefore(t),a.setEndBefore(t)):(a.setStartAfter(t),a.setEndAfter(t)):(a.setStart(t,0),a.setEnd(t,0));l.setRng(a),s.remove(c),l.scrollIntoView(t)}}function b(e){var t=u.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&s.setAttribs(e,u.forced_root_block_attrs)}function C(e){e.innerHTML=i?"":'<br data-mce-bogus="1">'}function x(e){var t=L,n,r,o,a=d.getTextInlineElements();if(e||"TABLE"==U?(n=s.create(e||V),b(n)):n=P.cloneNode(!1),o=n,u.keep_styles!==!1)do if(a[t.nodeName]){if("_mce_caret"==t.id)continue;r=t.cloneNode(!1),s.setAttrib(r,"id",""),n.hasChildNodes()?(r.appendChild(n.firstChild),n.appendChild(r)):(o=r,n.appendChild(r))}while((t=t.parentNode)&&t!=D);return i||(o.innerHTML='<br data-mce-bogus="1">'),n}function w(t){var n,r,i;if(3==L.nodeType&&(t?M>0:M<L.nodeValue.length))return!1;if(L.parentNode==P&&$&&!t)return!0;if(t&&1==L.nodeType&&L==P.firstChild)return!0;if("TABLE"===L.nodeName||L.previousSibling&&"TABLE"==L.previousSibling.nodeName)return $&&!t||!$&&t;for(n=new e(L,P),3==L.nodeType&&(t&&0===M?n.prev():t||M!=L.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),f[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function E(e,t){var n,r,i,a,l,u,c=V||"P";if(r=s.getParent(e,s.isBlock),!r||!h(r)){if(r=r||D,u=r==o.getBody()||m(r)?r.nodeName.toLowerCase():r.parentNode.nodeName.toLowerCase(),!r.hasChildNodes())return n=s.create(c),b(n),r.appendChild(n),A.setStart(n,0),A.setEnd(n,0),n;for(a=e;a.parentNode!=r;)a=a.parentNode;for(;a&&!s.isBlock(a);)i=a,a=a.previousSibling;if(i&&d.isValidChild(u,c.toLowerCase())){for(n=s.create(c),b(n),i.parentNode.insertBefore(n,i),a=i;a&&!s.isBlock(a);)l=a.nextSibling,n.appendChild(a),a=l;A.setStart(e,t),A.setEnd(e,t)}}return e}function N(){function e(e){for(var t=z[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===P}function t(){var e=z.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:z}if(z!=o.getBody()){var n=z.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(V="LI"),I=V?x(V):s.create("BR"),e(!0)&&e()?"LI"==n?s.insertAfter(I,t()):s.replace(I,z):e(!0)?"LI"==n?(s.insertAfter(I,t()),I.appendChild(s.doc.createTextNode(" ")),I.appendChild(z)):z.parentNode.insertBefore(I,z):e()?(s.insertAfter(I,t()),g(I)):(z=t(),B=A.cloneRange(),B.setStartAfter(P),B.setEndAfter(z),F=B.extractContents(),"LI"==V&&"LI"==F.firstChild.nodeName?(I=F.firstChild,s.insertAfter(F,z)):(s.insertAfter(F,z),s.insertAfter(I,z))),s.remove(P),y(I),c.add()}}function _(){o.execCommand("InsertLineBreak",!1,a)}function S(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function k(e){var t=s.getRoot(),n,r;for(n=e;n!==t&&"false"!==s.getContentEditable(n);)"true"===s.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function T(e){var t;i||(e.normalize(),t=e.lastChild,t&&!/^(left|right)$/gi.test(s.getStyle(t,"float",!0))||s.add(e,"br"))}function R(){I=/^(H[1-6]|PRE|FIGURE)$/.test(U)&&"HGROUP"!=W?x(V):x(),u.end_container_on_empty_block&&h(z)&&s.isEmpty(P)?I=s.split(z,P):s.insertAfter(I,P),y(I)}var A,B,D,L,M,P,O,H,I,F,z,U,W,V,$;if(A=l.getRng(!0),!a.isDefaultPrevented()){if(!A.collapsed)return void o.execCommand("Delete");if(new t(s).normalize(A),L=A.startContainer,M=A.startOffset,V=(u.force_p_newlines?"p":"")||u.forced_root_block,V=V?V.toUpperCase():"",O=s.doc.documentMode,H=a.shiftKey,1==L.nodeType&&L.hasChildNodes()&&($=M>L.childNodes.length-1,L=L.childNodes[Math.min(M,L.childNodes.length-1)]||L,M=$&&3==L.nodeType?L.nodeValue.length:0),D=k(L)){if(c.beforeChange(),!s.isBlock(D)&&D!=s.getRoot())return void(V&&!H||_());if((V&&!H||!V&&H)&&(L=E(L,M)),P=s.getParent(L,s.isBlock),z=P?s.getParent(P.parentNode,s.isBlock):null,U=P?P.nodeName.toUpperCase():"",W=z?z.nodeName.toUpperCase():"","LI"!=W||a.ctrlKey||(P=z,U=W),o.undoManager.typing&&(o.undoManager.typing=!1,o.undoManager.add()),/^(LI|DT|DD)$/.test(U)){if(!V&&H)return void _();if(s.isEmpty(P))return void N()}if("PRE"==U&&u.br_in_pre!==!1){if(!H)return void _()}else if(!V&&!H&&"LI"!=U||V&&H)return void _();V&&P===o.getBody()||(V=V||"P",n.isCaretContainerBlock(P)?(I=n.showCaretContainerBlock(P),s.isEmpty(P)&&C(P),y(I)):w()?R():w(!0)?(I=P.parentNode.insertBefore(x(),P),g(I),y(P)):(B=A.cloneRange(),B.setEndAfter(P),F=B.extractContents(),S(F),I=F.firstChild,s.insertAfter(F,P),v(I),T(P),s.isEmpty(P)&&C(P),I.normalize(),s.isEmpty(I)?(s.remove(I),R()):y(I)),s.setAttrib(I,"id",""),o.fire("NewBlock",{newBlock:I}),c.typing=!1,c.add())}}}var s=o.dom,l=o.selection,u=o.settings,c=o.undoManager,d=o.schema,f=d.getNonEmptyElements(),p=d.getMoveCaretBeforeOnEnterElements();o.on("keydown",function(e){13==e.keyCode&&a(e)!==!1&&e.preventDefault()})}}),r(re,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,u,c,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){u=l.startContainer,c=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),c=y.move("character",m)*-1,y.collapsed||(y=l.duplicate(),y.collapse(!1),f=y.move("character",m)*-1-c);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),
t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(u,c),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",c),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(ie,[z,y,_,$,k,U],function(e,t,n,r,i,o){function a(e){return e>0}function s(e){return e<0}function l(e,t){for(var n;n=e(t);)if(!N(n))return n;return null}function u(e,n,r,i,o){var u=new t(e,i);if(s(n)){if((x(e)||N(e))&&(e=l(u.prev,!0),r(e)))return e;for(;e=l(u.prev,o);)if(r(e))return e}if(a(n)){if((x(e)||N(e))&&(e=l(u.next,!0),r(e)))return e;for(;e=l(u.next,o);)if(r(e))return e}return null}function c(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode)if(C(e))return e;return t}function d(e,t){for(;e&&e!=t;){if(w(e))return e;e=e.parentNode}return null}function f(e,t,n){return d(e.container(),n)==d(t.container(),n)}function p(e,t,n){return c(e.container(),n)==c(t.container(),n)}function h(e,t){var n,r;return t?(n=t.container(),r=t.offset(),S(n)?n.childNodes[r+e]:null):null}function m(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n}function g(e,t,n){return d(t,e)==d(n,e)}function v(e,t,n){var r,i;for(i=e?"previousSibling":"nextSibling";n&&n!=t;){if(r=n[i],E(r)&&(r=r[i]),x(r)){if(g(t,r,n))return r;break}if(k(r))break;n=n.parentNode}return null}function y(e,t,r){var o,a,s,l,u=_(v,!0,t),c=_(v,!1,t);if(a=r.startContainer,s=r.startOffset,i.isCaretContainerBlock(a)){if(S(a)||(a=a.parentNode),l=a.getAttribute("data-mce-caret"),"before"==l&&(o=a.nextSibling,x(o)))return T(o);if("after"==l&&(o=a.previousSibling,x(o)))return R(o)}if(!r.collapsed)return r;if(n.isText(a)){if(E(a)){if(1===e){if(o=c(a))return T(o);if(o=u(a))return R(o)}if(e===-1){if(o=u(a))return R(o);if(o=c(a))return T(o)}return r}if(i.endsWithCaretContainer(a)&&s>=a.data.length-1)return 1===e&&(o=c(a))?T(o):r;if(i.startsWithCaretContainer(a)&&s<=1)return e===-1&&(o=u(a))?R(o):r;if(s===a.data.length)return o=c(a),o?T(o):r;if(0===s)return o=u(a),o?R(o):r}return r}function b(e,t){return x(h(e,t))}var C=n.isContentEditableTrue,x=n.isContentEditableFalse,w=n.matchStyleValues("display","block table table-cell table-caption"),E=i.isCaretContainer,N=i.isCaretContainerBlock,_=e.curry,S=n.isElement,k=o.isCaretCandidate,T=_(m,!0),R=_(m,!1);return{isForwards:a,isBackwards:s,findNode:u,getEditingHost:c,getParentBlock:d,isInSameBlock:f,isInSameEditingHost:p,isBeforeContentEditableFalse:_(b,0),isAfterContentEditableFalse:_(b,-1),normalizeRange:y}}),r(oe,[_,U,$,ie,h,z],function(e,t,n,r,i,o){function a(e,t){for(var n=[];e&&e!=t;)n.push(e),e=e.parentNode;return n}function s(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null}function l(e,t){if(m(e)){if(v(t.previousSibling)&&!f(t.previousSibling))return n.before(t);if(f(t))return n(t,0)}if(g(e)){if(v(t.nextSibling)&&!f(t.nextSibling))return n.after(t);if(f(t))return n(t,t.data.length)}return g(e)?h(t)?n.before(t):n.after(t):n.before(t)}function u(t,i){var o;return!!e.isBr(t)&&(o=c(1,n.after(t),i),!!o&&!r.isInSameBlock(n.before(t),n.before(o),i))}function c(e,t,h){var C,x,w,E,N,_,S;if(!p(h)||!t)return null;if(S=t,C=S.container(),x=S.offset(),f(C)){if(g(e)&&x>0)return n(C,--x);if(m(e)&&x<C.length)return n(C,++x);w=C}else{if(g(e)&&x>0&&(E=s(C,x-1),v(E)))return!y(E)&&(N=r.findNode(E,e,b,E))?f(N)?n(N,N.data.length):n.after(N):f(E)?n(E,E.data.length):n.before(E);if(m(e)&&x<C.childNodes.length&&(E=s(C,x),v(E)))return u(E,h)?c(e,n.after(E),h):!y(E)&&(N=r.findNode(E,e,b,E))?f(N)?n(N,0):n.before(N):f(E)?n(E,0):n.after(E);w=S.getNode()}return(m(e)&&S.isAtEnd()||g(e)&&S.isAtStart())&&(w=r.findNode(w,e,o.constant(!0),h,!0),b(w))?l(e,w):(E=r.findNode(w,e,b,h),_=i.last(i.filter(a(C,h),d)),!_||E&&_.contains(E)?E?l(e,E):null:S=m(e)?n.after(_):n.before(_))}var d=e.isContentEditableFalse,f=e.isText,p=e.isElement,h=e.isBr,m=r.isForwards,g=r.isBackwards,v=t.isCaretCandidate,y=t.isAtomic,b=t.isEditableCaretCandidate;return function(e){return{next:function(t){return c(1,t,e)},prev:function(t){return c(-1,t,e)}}}}),r(ae,[m,oe,$],function(e,t,n){var r=function(e){var t=e.firstChild,n=e.lastChild;return t&&"meta"===t.name&&(t=t.next),n&&"mce_marker"===n.attr("id")&&(n=n.prev),!(!t||t!==n)&&("ul"===t.name||"ol"===t.name)},i=function(e){var t=e.firstChild,n=e.lastChild;return t&&"META"===t.nodeName&&t.parentNode.removeChild(t),n&&"mce_marker"===n.id&&n.parentNode.removeChild(n),e},o=function(e,t,n){var r=t.serialize(n),o=e.createFragment(r);return i(o)},a=function(t){return e.grep(t.childNodes,function(e){return"LI"===e.nodeName})},s=function(e){return!e.firstChild},l=function(e){return e.length>0&&s(e[e.length-1])?e.slice(0,-1):e},u=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},c=function(e,t){return!!u(e,t)},d=function(e,t){var n=t.cloneRange(),r=t.cloneRange();return n.setStartBefore(e),r.setEndAfter(e),[n.cloneContents(),r.cloneContents()]},f=function(e,r){var i=n.before(e),o=new t(r),a=o.next(i);return a?a.toRange():null},p=function(e,r){var i=n.after(e),o=new t(r),a=o.prev(i);return a?a.toRange():null},h=function(t,n,r,i){var o=d(t,i),a=t.parentNode;return a.insertBefore(o[0],t),e.each(n,function(e){a.insertBefore(e,t)}),a.insertBefore(o[1],t),a.removeChild(t),p(n[n.length-1],r)},m=function(t,n,r){var i=t.parentNode;return e.each(n,function(e){i.insertBefore(e,t)}),f(t,r)},g=function(e,t,n,r){return r.insertAfter(t.reverse(),e),p(t[0],n)},v=function(e,r,i,s){var c=o(r,e,s),d=u(r,i.startContainer),f=l(a(c.firstChild)),p=1,v=2,y=r.getRoot(),b=function(e){var o=n.fromRangeStart(i),a=new t(r.getRoot()),s=e===p?a.prev(o):a.next(o);return!s||u(r,s.getNode())!==d};return b(p)?m(d,f,y):b(v)?g(d,f,y,r):h(d,f,y,i)};return{isListFragment:r,insertAtCaret:v,isParentBlockLi:c,trimListItems:l,listItems:a}}),r(se,[d,m,P,oe,$,X,_,ae],function(e,t,n,r,i,o,a,s){var l=a.matchNodeNames("td th"),u=function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,i=n.lastChild;!r||r===i&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}},c=function(a,c,d){function f(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=L.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}function p(){var e,t,n;e=L.getRng(!0),t=e.startContainer,n=e.startOffset,3==t.nodeType&&e.collapsed&&("\xa0"===t.data[n]?(t.deleteData(n,1),/[\u00a0| ]$/.test(c)||(c+=" ")):"\xa0"===t.data[n-1]&&(t.deleteData(n-1,1),/[\u00a0| ]$/.test(c)||(c=" "+c)))}function h(){if(B){var e=a.getBody(),n=new o(M);t.each(M.select("*[data-mce-fragment]"),function(t){for(var r=t.parentNode;r&&r!=e;r=r.parentNode)D[t.nodeName.toLowerCase()]&&n.compare(r,t)&&M.remove(t,!0)})}}function m(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}function g(e){t.each(e.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")})}function v(e){return!!e.getAttribute("data-mce-fragment")}function y(e){return e&&!a.schema.getShortEndedElements()[e.nodeName]}function b(t){function n(e){for(var t=a.getBody();e&&e!==t;e=e.parentNode)if("false"===a.dom.getContentEditable(e))return e;return null}function o(e){var t=i.fromRangeStart(e),n=new r(a.getBody());if(t=n.next(t))return t.toRange()}var s,u,c;if(t){if(L.scrollIntoView(t),s=n(t))return M.remove(t),void L.select(s);k=M.createRng(),T=t.previousSibling,T&&3==T.nodeType?(k.setStart(T,T.nodeValue.length),e.ie||(R=t.nextSibling,R&&3==R.nodeType&&(T.appendData(R.data),R.parentNode.removeChild(R)))):(k.setStartBefore(t),k.setEndBefore(t)),u=M.getParent(t,M.isBlock),M.remove(t),u&&M.isEmpty(u)&&(a.$(u).empty(),k.setStart(u,0),k.setEnd(u,0),l(u)||v(u)||!(c=o(k))?M.add(u,M.create("br",{"data-mce-bogus":"1"})):(k=c,M.remove(u))),L.setRng(k)}}var C,x,w,E,N,_,S,k,T,R,A,B,D=a.schema.getTextInlineElements(),L=a.selection,M=a.dom;/^ | $/.test(c)&&(c=f(c)),C=a.parser,B=d.merge,x=new n({validate:a.settings.validate},a.schema),A='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',_={content:c,format:"html",selection:!0},a.fire("BeforeSetContent",_),c=_.content,c.indexOf("{$caret}")==-1&&(c+="{$caret}"),c=c.replace(/\{\$caret\}/,A),k=L.getRng();var P=k.startContainer||(k.parentElement?k.parentElement():null),O=a.getBody();P===O&&L.isCollapsed()&&M.isBlock(O.firstChild)&&y(O.firstChild)&&M.isEmpty(O.firstChild)&&(k=M.createRng(),k.setStart(O.firstChild,0),k.setEnd(O.firstChild,0),L.setRng(k)),L.isCollapsed()||(a.selection.setRng(a.selection.getRng()),a.getDoc().execCommand("Delete",!1,null),p()),w=L.getNode();var H={context:w.nodeName.toLowerCase(),data:d.data};if(N=C.parse(c,H),d.paste===!0&&s.isListFragment(N)&&s.isParentBlockLi(M,w))return k=s.insertAtCaret(x,M,a.selection.getRng(!0),N),a.selection.setRng(k),void a.fire("SetContent",_);if(m(N),T=N.lastChild,"mce_marker"==T.attr("id"))for(S=T,T=T.prev;T;T=T.walk(!0))if(3==T.type||!M.isBlock(T.name)){a.schema.isValidChild(T.parent.name,"span")&&T.parent.insert(S,T,"br"===T.name);break}if(a._selectionOverrides.showBlockCaretContainer(w),H.invalid){for(L.setContent(A),w=L.getNode(),E=a.getBody(),9==w.nodeType?w=T=E:T=w;T!==E;)w=T,T=T.parentNode;c=w==E?E.innerHTML:M.getOuterHTML(w),c=x.serialize(C.parse(c.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return x.serialize(N)}))),w==E?M.setHTML(E,c):M.setOuterHTML(w,c)}else c=x.serialize(N),u(a,c,w);h(),b(M.get("mce_marker")),g(a.getBody()),a.fire("SetContent",_),a.addVisual()},d=function(e){var n;return"string"!=typeof e?(n=t.extend({paste:e.paste,data:{paste:e.paste}},e),{content:e.content,details:n}):{content:e,details:{}}},f=function(e,t){var n=d(t);c(e,n.content,n.details)};return{insertAtCaret:f}}),r(le,[d,m,T,y,se,_],function(e,n,r,i,o,a){var s=n.each,l=n.extend,u=n.map,c=n.inArray,d=n.explode,f=e.ie&&e.ie<11,p=!0,h=!1;return function(n){function m(e,t,r,i){var o,a,l=0;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||i&&i.skip_focus||n.focus(),i=n.fire("BeforeExecCommand",{command:e,ui:t,value:r}),i.isDefaultPrevented())return!1;if(a=e.toLowerCase(),o=D.exec[a])return o(a,t,r),n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;if(s(n.plugins,function(i){if(i.execCommand&&i.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),l=!0,!1}),l)return l;if(n.theme&&n.theme.execCommand&&n.theme.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;try{l=n.getDoc().execCommand(e,t,r)}catch(u){}return!!l&&(n.fire("ExecCommand",{command:e,ui:t,value:r}),!0)}function g(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=D.state[e])return t(e);try{return n.getDoc().queryCommandState(e)}catch(r){}return!1}}function v(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=D.value[e])return t(e);try{return n.getDoc().queryCommandValue(e)}catch(r){}}}function y(e,t){t=t||"exec",s(e,function(e,n){s(n.toLowerCase().split(","),function(n){D[t][n]=e})})}function b(e,t,r){e=e.toLowerCase(),D.exec[e]=function(e,i,o,a){return t.call(r||n,i,o,a)}}function C(e){if(e=e.toLowerCase(),D.exec[e])return!0;try{return n.getDoc().queryCommandSupported(e)}catch(t){}return!1}function x(e,t,r){e=e.toLowerCase(),D.state[e]=function(){return t.call(r||n)}}function w(e,t,r){e=e.toLowerCase(),D.value[e]=function(){return t.call(r||n)}}function E(e){return e=e.toLowerCase(),!!D.exec[e]}function N(e,r,i){return r===t&&(r=h),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function _(e){return B.match(e)}function S(e,r){B.toggle(e,r?{value:r}:t),n.nodeChanged()}function k(e){M=A.getBookmark(e)}function T(){A.moveToBookmark(M)}var R,A,B,D={state:{},exec:{},value:{}},L=n.settings,M;n.on("PreInit",function(){R=n.dom,A=n.selection,L=n.settings,B=n.formatter}),l(this,{execCommand:m,queryCommandState:g,queryCommandValue:v,queryCommandSupported:C,addCommands:y,addCommand:b,addQueryStateHandler:x,addQueryValueHandler:w,hasCustomCommand:E}),y({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(t){var r=n.getDoc(),i;try{N(t)}catch(o){i=p}if("paste"!==t||r.queryCommandEnabled(t)||(i=!0),i||!r.queryCommandSupported(t)){var a=n.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");e.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),n.notificationManager.open({text:a,type:"error"})}},unlink:function(){if(A.isCollapsed()){var e=n.dom.getParent(n.selection.getStart(),"a");return void(e&&n.dom.remove(e,!0))}B.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"==t&&(t="justify"),s("left,center,right,justify".split(","),function(e){t!=e&&B.remove("align"+e)}),"none"!=t&&S("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;N(e),t=R.getParent(A.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(k(),R.split(n,t),T()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){S(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){S(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&n<=7&&(i=d(L.font_size_style_values),r=d(L.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),S(e,n)},RemoveFormat:function(e){B.remove(e)},mceBlockQuote:function(){S("blockquote")},FormatBlock:function(e,t,n){return S(n||"p")},mceCleanup:function(){var e=A.getBookmark();n.setContent(n.getContent({cleanup:p}),{cleanup:p}),A.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||A.getNode();i!=n.getBody()&&(k(),n.dom.remove(i,p),T())},mceSelectNodeDepth:function(e,t,r){var i=0;R.getParent(A.getNode(),function(e){if(1==e.nodeType&&i++==r)return A.select(e),h},n.getBody())},mceSelectNode:function(e,t,n){A.select(n)},mceInsertContent:function(e,t,r){o.insertAtCaret(n,r)},mceInsertRawHTML:function(e,t,r){A.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){S(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,r,i;t=L.indentation,r=/[a-z%]+$/i.exec(t),t=parseInt(t,10),g("InsertUnorderedList")||g("InsertOrderedList")?N(e):(L.forced_root_block||R.getParent(A.getNode(),R.isBlock)||B.apply("div"),s(A.getSelectedBlocks(),function(o){if("false"!==R.getContentEditable(o)&&"LI"!==o.nodeName){var a=n.getParam("indent_use_margin",!1)?"margin":"padding";a="TABLE"===o.nodeName?"margin":a,a+="rtl"==R.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),R.setStyle(o,a,i?i+r:"")):(i=parseInt(o.style[a]||0,10)+t+r,R.setStyle(o,a,i))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,A.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=R.getParent(A.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||B.remove("link"),n.href&&B.apply("link",n,r)},selectAll:function(){var e=R.getRoot(),t;if(A.getRng().setStart){var n=R.getParent(A.getStart(),a.isContentEditableTrue);n&&(t=R.createRng(),t.selectNodeContents(n),A.setRng(t))}else t=A.getRng(),t.item||(t.moveToElementText(e),t.select())},"delete":function(){N("Delete");var e=n.getBody();R.isEmpty(e)&&(n.setContent(""),e.firstChild&&R.isBlock(e.firstChild)?n.selection.setCursorLocation(e.firstChild,0):n.selection.setCursorLocation(e,0))},mceNewDocument:function(){n.setContent("")},InsertLineBreak:function(e,t,o){function a(){for(var e=new i(m,v),t,r=n.schema.getNonEmptyElements();t=e.next();)if(r[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=o,l,u,c,d=A.getRng(!0);new r(R).normalize(d);var h=d.startOffset,m=d.startContainer;if(1==m.nodeType&&m.hasChildNodes()){var g=h>m.childNodes.length-1;m=m.childNodes[Math.min(h,m.childNodes.length-1)]||m,h=g&&3==m.nodeType?m.nodeValue.length:0}var v=R.getParent(m,R.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?R.getParent(v.parentNode,R.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),m&&3==m.nodeType&&h>=m.nodeValue.length&&(f||a()||(l=R.create("br"),d.insertNode(l),d.setStartAfter(l),d.setEndAfter(l),u=!0)),l=R.create("br"),d.insertNode(l);var w=R.doc.documentMode;return f&&"PRE"==y&&(!w||w<8)&&l.parentNode.insertBefore(R.doc.createTextNode("\r"),l),c=R.create("span",{},"&nbsp;"),l.parentNode.insertBefore(c,l),A.scrollIntoView(c),R.remove(c),u?(d.setStartBefore(l),d.setEndBefore(l)):(d.setStartAfter(l),d.setEndAfter(l)),A.setRng(d),n.undoManager.add(),p}}),y({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=A.isCollapsed()?[R.getParent(A.getNode(),R.isBlock)]:A.getSelectedBlocks(),r=u(n,function(e){return!!B.matchNode(e,t)});return c(r,p)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return _(e)},mceBlockQuote:function(){return _("blockquote")},Outdent:function(){var e;if(L.inline_styles){if((e=R.getParent(A.getStart(),R.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return p;if((e=R.getParent(A.getEnd(),R.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return p}return g("InsertUnorderedList")||g("InsertOrderedList")||!L.inline_styles&&!!R.getParent(A.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=R.getParent(A.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),y({"FontSize,FontName":function(e){var t=0,n;return(n=R.getParent(A.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),y({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(ue,[m],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var u=0===e.indexOf("//");0!==e.indexOf("/")||u||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),u&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;o<a;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;o<a;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);o<a;o++)i+="../";for(o=r-1,a=n.length;o<a;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=r<=0?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}},t.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t},t}),r(ce,[m],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=u[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,u=l.prototype,c,d,f;o=!0,c=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){for(var n in t)"init"!==n&&(e[n]=t[n])}),u.Mixins&&(e.Mixins=u.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&u.Defaults&&(e.Defaults=r({},u.Defaults,e.Defaults));for(d in e)f=e[d],"function"==typeof f&&u[d]?c[d]=s(d,f):c[d]=f;return t.prototype=c,t.constructor=t,t.extend=i,t},t}),r(de,[m],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,u;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=c),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;s<l;s++){if(u=o[s],u.once&&a(e,u.func),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(u.func.call(c,i)===!1)return i.preventDefault(),i}return i}function o(t,r,i,o){var a,s,l;if(r===!1&&(r=n),r)for(r={func:r},o&&e.extend(r,o),s=t.toLowerCase().split(" "),l=s.length;l--;)t=s[l],a=d[t],a||(a=d[t]=[],f(t,!0)),i?a.unshift(r):a.push(r);return u}function a(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=d[e],!e){for(i in d)f(i,!1),delete d[i];return u}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),d[e]=r);else r.length=0;r.length||(f(e,!1),delete d[e])}}else{for(e in d)f(e,!1);d={}}return u}function s(e,t,n){return o(e,t,n,{once:!0})}function l(e){return e=e.toLowerCase(),!(!d[e]||0===d[e].length)}var u=this,c,d={},f;t=t||{},c=t.scope||u,f=t.toggleEvent||n,u.fire=i,u.on=o,u.off=a,u.once=s,u.has=l}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(fe,[],function(){function e(e){this.create=e.create}return e.create=function(t,n){return new e({create:function(e,r){function i(t){e.set(r,t.value)}function o(e){t.set(n,e.value)}var a;return e.on("change:"+r,o),t.on("change:"+n,i),a=e._bindings,a||(a=e._bindings=[],e.on("destroy",function(){for(var e=a.length;e--;)a[e]()})),a.push(function(){t.off("change:"+n,i)}),t.get(n)}})},e}),r(pe,[de],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(he,[fe,pe,ce,m],function(e,t,n,r){function i(e){return e.nodeType>0}function o(e,t){var n,a;if(e===t)return!0;if(null===e||null===t)return e===t;if("object"!=typeof e||"object"!=typeof t)return e===t;if(r.isArray(t)){if(e.length!==t.length)return!1;for(n=e.length;n--;)if(!o(e[n],t[n]))return!1}if(i(e)||i(t))return e===t;a={};for(n in t){if(!o(e[n],t[n]))return!1;a[n]=!0}for(n in e)if(!a[n]&&!o(e[n],t[n]))return!1;return!0}return n.extend({Mixins:[t],init:function(t){var n,r;t=t||{};for(n in t)r=t[n],r instanceof e&&(t[n]=r.create(this,n));this.data=t},set:function(t,n){var r,i,a=this.data[t];if(n instanceof e&&(n=n.create(this,t)),"object"==typeof t){for(r in t)this.set(r,t[r]);return this}return o(a,n)||(this.data[t]=n,i={target:this,name:t,value:n,oldValue:a},this.fire("change:"+t,i),this.fire("change",i)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(t){return e.create(this,t)},destroy:function(){this.fire("destroy")}})}),r(me,[ce],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}function o(e){if(e)return function(t){return t._name===e}}function a(e){if(e)return e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.classes.contains(e[n]))return!1;return!0}}function s(e,t,n){if(e)return function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t&&i.substr(i.length-n.length)===n:!!n}}function l(e){var t;if(e)return e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=c(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:!!t[e]&&t[e]()})}function u(e,r,u){function c(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),c(t(d[1])),c(o(d[2])),c(a(d[3])),c(s(d[4],d[5],d[6])),c(l(d[7])),r.pseudo=!!d[7],r.direct=u,r}function c(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&c(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(u(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=c(e,[])},match:function(e,t){var n,r,i,o,a,s,l,u,c,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;n<r;n++){for(a=t[n],o=a.length,h=e,p=0,i=o-1;i>=0;i--)for(u=a[i];h;){if(u.pseudo)for(f=h.parent().items(),c=d=f.length;c--&&f[c]!==h;);for(s=0,l=u.length;s<l;s++)if(!u[s](h,c,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;h=h.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,u,c=t[i];for(o=0,a=e.length;o<a;o++){for(u=e[o],s=0,l=c.length;s<l;s++)if(!c[s](u,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(u):u.items&&n(u.items(),t,i+1);else if(c.direct)return;u.items&&n(u.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;i<s;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(ge,[m,me,ce],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;r<n;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;i<o;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return e===-1?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return!!this[0]&&this[0].classes.contains(e)},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},e.each("fire on off show hide append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(ve,[d,m,w],function(e,t,n){var r=0,i={id:function(){return"mceu_"+r++},create:function(e,r,i){var o=document.createElement(e);return n.DOM.setAttribs(o,r),"string"==typeof i?o.innerHTML=i:t.each(i,function(e){e.nodeType&&o.appendChild(e)}),o},createFragment:function(e){return n.DOM.createFragment(e)},getWindowSize:function(){return n.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return n.DOM.getPos(e,t||i.getContainer())},getContainer:function(){return e.container?e.container:document.body},getViewPort:function(e){return n.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return n.DOM.addClass(e,t)},removeClass:function(e,t){return n.DOM.removeClass(e,t)},hasClass:function(e,t){return n.DOM.hasClass(e,t)},toggleClass:function(e,t,r){return n.DOM.toggleClass(e,t,r)},css:function(e,t,r){return n.DOM.setStyle(e,t,r)},getRuntimeStyle:function(e,t){return n.DOM.getStyle(e,t,!0)},on:function(e,t,r,i){
return n.DOM.bind(e,t,r,i)},off:function(e,t,r){return n.DOM.unbind(e,t,r)},fire:function(e,t,r){return n.DOM.fire(e,t,r)},innerHtml:function(e,t){n.DOM.setHTML(e,t)}};return i}),r(ye,[],function(){return{parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}}}}),r(be,[m],function(e){function t(){}function n(e){this.cls=[],this.cls._map={},this.onchange=e||t,this.prefix=""}return e.extend(n.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){for(var t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),n.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)t>0&&(e+=" "),e+=this.prefix+this.cls[t];return e},n}),r(Ce,[c],function(e){var t={},n;return{add:function(r){var i=r.parent();if(i){if(!i._layout||i._layout.isNative())return;t[i._id]||(t[i._id]=i),n||(n=!0,e.requestAnimationFrame(function(){var e,r;n=!1;for(e in t)r=t[e],r.state.get("rendered")&&r.reflow();t={}},document.body))}},remove:function(e){t[e._id]&&delete t[e._id]}}}),r(xe,[ce,m,de,he,ge,ve,g,ye,be,Ce],function(e,t,n,r,i,o,a,s,l,u){function c(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e.state.get("rendered")&&d(e))}})),e._eventDispatcher}function d(e){function t(t){var n=e.getParentCtrl(t.target);n&&n.fire(t.type,t)}function n(){var e=u._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),u._lastHoverCtrl=null)}function r(t){var n=e.getParentCtrl(t.target),r=u._lastHoverCtrl,i=0,o,a,s;if(n!==r){if(u._lastHoverCtrl=n,a=n.parents().toArray().reverse(),a.push(n),r){for(s=r.parents().toArray().reverse(),s.push(r),i=0;i<s.length&&a[i]===s[i];i++);for(o=s.length-1;o>=i;o--)r=s[o],r.fire("mouseleave",{target:r.getEl()})}for(o=i;o<a.length;o++)n=a[o],n.fire("mouseenter",{target:n.getEl()})}}function i(t){t.preventDefault(),"mousewheel"==t.type?(t.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-.025*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=e.fire("wheel",t)}var o,s,l,u,c,d;if(c=e._nativeEvents){for(l=e.parents().toArray(),l.unshift(e),o=0,s=l.length;!u&&o<s;o++)u=l[o]._eventsRoot;for(u||(u=l[l.length-1]||e),e._eventsRoot=u,s=o,o=0;o<s;o++)l[o]._eventsRoot=u;var h=u._delegates;h||(h=u._delegates={});for(d in c){if(!c)return!1;"wheel"!==d||p?("mouseenter"===d||"mouseleave"===d?u._hasMouseEnter||(a(u.getEl()).on("mouseleave",n).on("mouseover",r),u._hasMouseEnter=1):h[d]||(a(u.getEl()).on(d,t),h[d]=!0),c[d]=!1):f?a(e.getEl()).on("mousewheel",i):a(e.getEl()).on("DOMMouseScroll",i)}}}var f="onmousewheel"in document,p=!1,h="mce-",m,g=0,v={Statics:{classPrefix:h},isRtl:function(){return m.rtl},classPrefix:h,init:function(e){function n(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}var i=this,o,u;i.settings=e=t.extend({},i.Defaults,e),i._id=e.id||"mceu_"+g++,i._aria={role:e.role},i._elmCache={},i.$=a,i.state=new r({visible:!0,active:!1,disabled:!1,value:""}),i.data=new r(e.data),i.classes=new l(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,o=e.classes,o&&(i.Defaults&&(u=i.Defaults.classes,u&&o!=u&&n(u)),n(o)),t.each("title text name visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=e,i.borderBox=s.parseBox(e.border),i.paddingBox=s.parseBox(e.padding),i.marginBox=s.parseBox(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){return o.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e=this,t=e.settings,n,r,i=e.getEl(),a,l,u,c,d,f,p,h;n=e.borderBox=e.borderBox||s.measureBox(i,"border"),e.paddingBox=e.paddingBox||s.measureBox(i,"padding"),e.marginBox=e.marginBox||s.measureBox(i,"margin"),h=o.getSize(i),f=t.minWidth,p=t.minHeight,u=f||h.width,c=p||h.height,a=t.width,l=t.height,d=t.autoResize,d="undefined"!=typeof d?d:!a&&!l,a=a||u,l=l||c;var m=n.left+n.right,g=n.top+n.bottom,v=t.maxWidth||65535,y=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:l,deltaW:m,deltaH:g,contentW:a-m,contentH:l-g,innerW:a-m,innerH:l-g,startMinWidth:f||0,startMinHeight:p||0,minW:Math.min(u,v),minH:Math.min(c,y),maxW:v,maxH:y,autoResize:d,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,r.x===n.x&&r.y===n.y&&r.w===n.w&&r.h===n.h||(l=m.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o,a,s,l,u,c;u=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,i=e._layoutRect,l=e._lastRepaintRect||{},o=e.borderBox,a=o.left+o.right,s=o.top+o.bottom,i.x!==l.x&&(t.left=u(i.x)+"px",l.x=i.x),i.y!==l.y&&(t.top=u(i.y)+"px",l.y=i.y),i.w!==l.w&&(c=u(i.w-a),t.width=(c>=0?c:0)+"px",l.w=i.w),i.h!==l.h&&(c=u(i.h-s),t.height=(c>=0?c:0)+"px",l.h=i.h),e._hasBody&&i.innerW!==l.innerW&&(c=u(i.innerW),r=e.getEl("body"),r&&(n=r.style,n.width=(c>=0?c:0)+"px"),l.innerW=i.innerW),e._hasBody&&i.innerH!==l.innerH&&(c=u(i.innerH),r=r||e.getEl("body"),r&&(n=n||r.style,n.height=(c>=0?c:0)+"px"),l.innerH=i.innerH),e._lastRepaintRect=l,e.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,o.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;if(i&&(t=i[e]))return n=r,!1}),t?t.call(n,i):(i.action=e,void this.fire("execute",i))}}var r=this;return c(r).on(e,n(t)),r},off:function(e,t){return c(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=c(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return c(this).has(e)},parents:function(e){var t=this,n,r=new i;for(n=t.parent();n;n=n.parent())r.add(n);return e&&(r=r.filter(e)),r},parentsAndSelf:function(e){return new i(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=a("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return m.translate?m.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,i;if(e.items){var o=e.items().toArray();for(i=o.length;i--;)o[i].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&a(t).off();var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e.state.set("rendered",!1),e.state.destroy(),e.fire("remove"),e},renderBefore:function(e){return a(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return a(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e=this,t=e.settings,n,r,i,o,s;e.$el=a(e.getEl()),e.state.set("rendered",!0);for(o in t)0===o.indexOf("on")&&e.on(o.substr(2),t[o]);if(e._eventsRoot){for(i=e.parent();!s&&i;i=i.parent())s=i._eventsRoot;if(s)for(o in s._nativeEvents)e._nativeEvents[o]=!0}d(e),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e.settings.border&&(r=e.borderBox,e.$el.css({"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.state.get("visible")===!1&&(e.getEl().style.display="none"),e.bindStates(),e.state.on("change:visible",function(t){var n=t.value,r;e.state.get("rendered")&&(e.getEl().style.display=n===!1?"none":"",e.getEl().getBoundingClientRect()),r=e.parent(),r&&(r._lastRect=null),e.fire(n?"show":"hide"),u.add(e)}),e.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,u,c=t(n,r);return i=c.x,o=c.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,u=r.clientHeight,"end"==e?(i-=l-a,o-=u-s):"center"==e&&(i-=l/2-a/2,o-=u/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){u.remove(this);var e=this.parent();return e._layout&&!e._layout.isNative()&&e.reflow(),this}};return t.each("text title visible disabled active value".split(" "),function(e){v[e]=function(t){return 0===arguments.length?this.state.get(e):("undefined"!=typeof t&&this.state.set(e,t),this)}}),m=e.extend(v)}),r(we,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(Ee,[],function(){return function(e){function t(e){return e&&1===e.nodeType}function n(e){return e=e||C,t(e)?e.getAttribute("role"):null}function r(e){for(var t,r=e||C;r=r.parentNode;)if(t=n(r))return t}function i(e){var n=C;if(t(n))return n.getAttribute("aria-"+e)}function o(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t||"SELECT"==t}function a(e){return!(!o(e)||e.hidden)||!!/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(n(e))}function s(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display&&!e.disabled){a(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||b.getEl()),n}function l(e){var t,n;e=e||x,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function u(e){var t=l(e),n=s(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return e<0?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function d(e,t){var n=-1,r=l();t=t||s(r.getEl());for(var i=0;i<t.length;i++)t[i]===C&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function f(){var e=r();"tablist"==e?d(-1,s(C.parentNode)):x.parent().submenu?v():d(-1)}function p(){var e=n(),t=r();"tablist"==t?d(1,s(C.parentNode)):"menuitem"==e&&"menu"==t&&i("haspopup")?y():d(1)}function h(){d(-1)}function m(){var e=n(),t=r();"menuitem"==e&&"menubar"==t?y():"button"==e&&i("haspopup")?y({key:"down"}):d(1)}function g(e){var t=r();if("tablist"==t){var n=s(x.getEl("body"))[0];n&&n.focus()}else d(e.shiftKey?-1:1)}function v(){x.fire("cancel")}function y(e){e=e||{},x.fire("click",{target:C,aria:e})}var b=e.root,C,x;try{C=document.activeElement}catch(w){C=document.body}return x=b.getParentCtrl(C),b.on("keydown",function(e){function t(e,t){o(C)||"slider"!==n(C)&&t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,f);break;case 39:t(e,p);break;case 38:t(e,h);break;case 40:t(e,m);break;case 27:v();break;case 14:case 13:case 32:t(e,y);break;case 9:g(e)!==!1&&e.preventDefault()}}),b.on("focusin",function(e){C=e.target,x=e.control}),{focusFirst:u}}}),r(Ne,[xe,ge,me,we,Ee,m,g,be,Ce],function(e,t,n,r,i,o,a,s,l){var u={};return e.extend({init:function(e){var n=this;n._super(e),e=n.settings,e.fixed&&n.state.set("fixed",!0),n._items=new t,n.isRtl()&&n.classes.add("rtl"),n.bodyClasses=new s(function(){n.state.get("rendered")&&(n.getEl("body").className=this.toString())}),n.bodyClasses.prefix=n.classPrefix,n.classes.add("container"),n.bodyClasses.add("container-body"),e.containerCls&&n.classes.add(e.containerCls),n._layout=r.create((e.layout||"")+"layout"),n.settings.items?n.add(n.settings.items):n.add(n.render()),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=u[e]=u[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r;t.parent(e),t.state.get("rendered")||(r=e.getEl("body"),r.hasChildNodes()&&n<=r.childNodes.length-1?a(r.childNodes[n]).before(t.renderHtml()):a(r).append(t.renderHtml()),t.postRender(),l.add(t))}),e._layout.applyClasses(e.items().filter(":visible")),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!=t.w||n.h!=t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var t;if(l.remove(this),this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(_e,[g],function(e){function t(e){var t,n,r,i,o,a,s,l,u=Math.max;return t=e.documentElement,n=e.body,r=u(t.scrollWidth,n.scrollWidth),i=u(t.clientWidth,n.clientWidth),o=u(t.offsetWidth,n.offsetWidth),a=u(t.scrollHeight,n.scrollHeight),s=u(t.clientHeight,n.clientHeight),l=u(t.offsetHeight,n.offsetHeight),{width:r<o?i:r,height:a<l?s:a}}function n(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}return function(r,i){function o(){return s.getElementById(i.handle||r)}var a,s=i.document||document,l,u,c,d,f,p;i=i||{},u=function(r){var u=t(s),h,m;n(r),r.preventDefault(),l=r.button,h=o(),f=r.screenX,p=r.screenY,m=window.getComputedStyle?window.getComputedStyle(h,null).getPropertyValue("cursor"):h.runtimeStyle.cursor,a=e("<div></div>").css({position:"absolute",top:0,left:0,width:u.width,height:u.height,zIndex:2147483647,opacity:1e-4,cursor:m}).appendTo(s.body),e(s).on("mousemove touchmove",d).on("mouseup touchend",c),i.start(r)},d=function(e){return n(e),e.button!==l?c(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-p,e.preventDefault(),void i.drag(e))},c=function(t){n(t),e(s).off("mousemove touchmove",d).off("mouseup touchend",c),a.remove(),i.stop&&i.stop(t)},this.destroy=function(){e(o()).off()},e(o()).on("mousedown touchstart",u)}}),r(Se,[g,_e],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,u,c){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),e(i.getEl("absend")).css(y,i.layoutRect()[l]-1),!u)return void e(f).css("display","none");e(f).css("display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+c]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e(f).css(v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e(p).css(v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var u,c=i._id+"-scroll"+n,d=i.classPrefix;e(i.getEl()).append('<div id="'+c+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+c+'t" class="'+d+'scrollbar-thumb"></div></div>'),i.draghelper=new t(c+"t",{start:function(){u=i.getEl("body")["scroll"+r],e("#"+c).addClass(d+"active")},drag:function(e){var t,c,d,f,p=i.layoutRect();c=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=c&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=u+e["delta"+s]/t},stop:function(){e("#"+c).removeClass(d+"active")}})}i.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e(i.getEl("body")).on("scroll",n)),n())}}}),r(ke,[Ne,Se],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(Te,[ve],function(e){function t(t,n,r){var i,o,a,s,l,u,c,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t.state.get("fixed")&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,u=p.height,p=e.getSize(n),c=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=c),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(c/2)),"b"===r[3]&&(s-=u),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(u/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:u}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this.state.get("fixed")){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return e<0?0:e+n>t?(e=t-n,e<0?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i.state.get("rendered")?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Re,[ve],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(t<=1||n<=1){var r=e.getWindowSize();t=t<=1?t*r.w:t,n=n<=1?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Ae,[ke,Te,Re,ve,g,c],function(e,t,n,r,i,o){function a(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function s(e){for(var t=v.length;t--;){var n=v[t],r=n.getParentCtrl(e.target);if(n.settings.autohide){if(r&&(a(r,n)||n.parent()===r))continue;e=n.fire("autohide",{target:e.target}),e.isDefaultPrevented()||n.hide()}}}function l(){h||(h=function(e){2!=e.button&&s(e)},i(document).on("click touchstart",h))}function u(){m||(m=function(){var e;for(e=v.length;e--;)d(v[e])},i(window).on("scroll",m))}function c(){if(!g){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;g=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,C.hideAll())},i(window).on("resize",g)}}function d(e){function t(t,n){for(var r,i=0;i<v.length;i++)if(v[i]!=e)for(r=v[i].parent();r&&(r=r.parent());)r==e&&v[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e.state.get("fixed")?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function f(e,t){var n,r=C.zIndex||65535,o;if(e)y.push(t);else for(n=y.length;n--;)y[n]===t&&y.splice(n,1);if(y.length)for(n=0;n<y.length;n++)y[n].modal&&(r++,o=y[n]),y[n].getEl().style.zIndex=r,y[n].zIndex=r,r++;var a=i("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];o?i(a).css("z-index",o.zIndex-1):a&&(a.parentNode.removeChild(a),b=!1),C.currentZIndex=r}function p(e){var t;for(t=v.length;t--;)v[t]===e&&v.splice(t,1);for(t=y.length;t--;)y[t]===e&&y.splice(t,1)}var h,m,g,v=[],y=[],b,C=e.extend({Mixins:[t,n],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.classes.add("floatpanel"),e.autohide&&(l(),c(),v.push(t)),e.autofix&&(u(),t.on("move",function(){d(this)})),t.on("postrender show",function(e){if(e.control==t){var n,r=t.classPrefix;t.modal&&!b&&(n=i("#"+r+"modal-block",t.getContainerElm()),n[0]||(n=i('<div id="'+r+'modal-block" class="'+r+"reset "+r+'fade"></div>').appendTo(t.getContainerElm())),o.setTimeout(function(){n.addClass(r+"in"),i(t.getEl()).addClass(r+"in")}),b=!0),f(!0,t)}}),t.on("show",function(){t.parents().each(function(e){if(e.state.get("fixed"))return t.fixed(!0),!1})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!=e){if(t.state.get("rendered")){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e=this,t,n=e._super();for(t=v.length;t--&&v[t]!==e;);return t===-1&&v.push(e),n},hide:function(){return p(this),f(!1,this),this._super()},hideAll:function(){C.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),f(!1,e)),e},remove:function(){p(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return C.hideAll=function(){for(var e=v.length;e--;){var t=v[e];t&&t.settings.autohide&&(t.hide(),v.splice(e,1))}},C}),r(Be,[Ae,ke,ve,g,_e,ye,d,c],function(e,t,n,r,i,o,a,s){function l(e){var t="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",n=r("meta[name=viewport]")[0],i;a.overrideViewPort!==!1&&(n||(n=document.createElement("meta"),n.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),i=n.getAttribute("content"),i&&"undefined"!=typeof p&&(p=i),n.setAttribute("content",e?t:p))}function u(e,t){c()&&t===!1&&r([document.documentElement,document.body]).removeClass(e+"fullscreen")}function c(){for(var e=0;e<f.length;e++)if(f[e]._fullscreen)return!0;return!1}function d(){function e(){var e,t=n.getWindowSize(),r;for(e=0;e<f.length;e++)r=f[e].layoutRect(),f[e].moveTo(f[e].settings.x||Math.max(0,t.w/2-r.w/2),f[e].settings.y||Math.max(0,t.h/2-r.h/2))}if(!a.desktop){var t={w:window.innerWidth,h:window.innerHeight};s.setInterval(function(){var e=window.innerWidth,n=window.innerHeight;t.w==e&&t.h==n||(t={w:e,h:n},r(window).trigger("resize"))},100)}r(window).on("resize",e)}var f=[],p="",h=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var r=this;r._super(e),r.isRtl()&&r.classes.add("rtl"),r.classes.add("window"),r.bodyClasses.add("window-body"),r.state.set("fixed",!0),e.buttons&&(r.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:r.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),r.statusbar.classes.add("foot"),r.statusbar.parent(r)),r.on("click",function(e){var t=r.classPrefix+"close";(n.hasClass(e.target,t)||n.hasClass(e.target.parentNode,t))&&r.close()}),r.on("cancel",function(){r.close()}),r.aria("describedby",r.describedBy||r._id+"-none"),r.aria("label",e.title),r._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=e.settings.x||Math.max(0,a.w/2-t.w/2),t.y=e.settings.y||Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><div id="'+n+'-dragh" class="'+r+'dragh"></div><button type="button" class="'+r+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,i=document.documentElement,a,l=t.classPrefix,u;if(e!=t._fullscreen)if(r(window).on("resize",function(){var e;if(t._fullscreen)if(a)t._timer||(t._timer=s.setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(a=!0)}}),u=t.layoutRect(),t._fullscreen=e,e){t._initial={x:u.x,y:u.y,w:u.w,h:u.h},t.borderBox=o.parseBox("0"),t.getEl("head").style.display="none",u.deltaH-=u.headerH+2,r([i,document.body]).addClass(l+"fullscreen"),t.classes.add("fullscreen");var c=n.getWindowSize();t.moveTo(0,0).resizeTo(c.w,c.h)}else t.borderBox=o.parseBox(t.settings.border),t.getEl("head").style.display="",u.deltaH+=u.headerH,r([i,document.body]).removeClass(l+"fullscreen"),t.classes.remove("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.classes.add("in"),e.fire("open")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()}),f.push(e),l(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),u(e.classPrefix,!1),t=f.length;t--;)f[t]===e&&f.splice(t,1);l(f.length>0)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return d(),h}),r(De,[Be],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};
switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(Le,[Be,De],function(e,t){return function(n){function r(){if(s.length)return s[s.length-1]}function i(e){n.fire("OpenWindow",{win:e})}function o(e){n.fire("CloseWindow",{win:e})}var a=this,s=[];a.windows=s,n.on("remove",function(){for(var e=s.length;e--;)s[e].close()}),a.open=function(t,r){var a;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body,data:t.data,callbacks:t.commands}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){a.find("form")[0].submit()}},{text:"Cancel",onclick:function(){a.close()}}]),a=new e(t),s.push(a),a.on("close",function(){for(var e=s.length;e--;)s[e]===a&&s.splice(e,1);s.length||n.focus(),o(a)}),t.data&&a.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),a.features=t||{},a.params=r||{},1===s.length&&n.nodeChanged(),a=a.renderTo().reflow(),i(a),a},a.alert=function(e,r,a){var s;s=t.alert(e,function(){r?r.call(a||this):n.focus()}),s.on("close",function(){o(s)}),i(s)},a.confirm=function(e,n,r){var a;a=t.confirm(e,function(e){n.call(r||this,e)}),a.on("close",function(){o(a)}),i(a)},a.close=function(){r()&&r().close()},a.getParams=function(){return r()?r().params:null},a.setParams=function(e){r()&&(r().params=e)},a.getWindows=function(){return s}}}),r(Me,[xe,Te],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Pe,[xe,Me],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.classes.toggle("tooltip-n","bc-tc"==i),r.classes.toggle("tooltip-nw","bc-tl"==i),r.classes.toggle("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){function e(e){n.aria("disabled",e),n.classes.toggle("disabled",e)}function t(e){n.aria("pressed",e),n.classes.toggle("active",e)}var n=this;return n.state.on("change:disabled",function(t){e(t.value)}),n.state.on("change:active",function(e){t(e.value)}),n.state.get("disabled")&&e(!0),n.state.get("active")&&t(!0),n._super()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Oe,[Pe],function(e){return e.extend({Defaults:{value:0},init:function(e){var t=this;t._super(e),t.classes.add("progress"),t.settings.filter||(t.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this,t=e._id,n=this.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div class="'+n+'bar-container"><div class="'+n+'bar"></div></div><div class="'+n+'text">0%</div></div>'},postRender:function(){var e=this;return e._super(),e.value(e.settings.value),e},bindStates:function(){function e(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}var t=this;return t.state.on("change:value",function(t){e(t.value)}),e(t.state.get("value")),t._super()}})}),r(He,[xe,Te,Oe,c],function(e,t,n,r){return e.extend({Mixins:[t],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new n),t.on("click",function(e){e.target.className.indexOf(t.classPrefix+"close")!=-1&&t.close()})},renderHtml:function(){var e=this,t=e.classPrefix,n="",r="",i="",o="";return e.icon&&(n='<i class="'+t+"ico "+t+"i-"+e.icon+'"></i>'),e.color&&(o=' style="background-color: '+e.color+'"'),e.closeButton&&(r='<button type="button" class="'+t+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(i=e.progressBar.renderHtml()),'<div id="'+e._id+'" class="'+e.classes+'"'+o+' role="presentation">'+n+'<div class="'+t+'notification-inner">'+e.state.get("text")+"</div>"+i+r+"</div>"},postRender:function(){var e=this;return r.setTimeout(function(){e.$el.addClass(e.classPrefix+"in")}),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().childNodes[1].innerHTML=t.value}),e.progressBar&&e.progressBar.bindStates(),e._super()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||e.remove(),e},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=65534}})}),r(Ie,[He,c,m],function(e,t,n){return function(r){function i(){if(f.length)return f[f.length-1]}function o(){t.requestAnimationFrame(function(){a(),s()})}function a(){for(var e=0;e<f.length;e++)f[e].moveTo(0,0)}function s(){if(f.length>0){var e=f.slice(0,1)[0],t=r.inline?r.getElement():r.getContentAreaContainer();if(e.moveRel(t,"tc-tc"),f.length>1)for(var n=1;n<f.length;n++)f[n].moveRel(f[n-1].getEl(),"bc-tc")}}function l(e,t){if(!c(t))return null;var r=n.grep(e,function(e){return u(t,e)});return 0===r.length?null:r[0]}function u(e,t){return e.type===t.settings.type&&e.text===t.settings.text}function c(e){return!e.progressBar&&!e.timeout}var d=this,f=[];d.notifications=f,r.on("remove",function(){for(var e=f.length;e--;)f[e].close()}),r.on("ResizeEditor",s),r.on("ResizeWindow",o),d.open=function(t){if(!r.removed){var n;r.editorManager.setActive(r);var i=l(f,t);return null===i?(n=new e(t),f.push(n),t.timeout>0&&(n.timer=setTimeout(function(){n.close()},t.timeout)),n.on("close",function(){var e=f.length;for(n.timer&&r.getWin().clearTimeout(n.timer);e--;)f[e]===n&&f.splice(e,1);s()}),n.renderTo(),s()):n=i,n}},d.close=function(){i()&&i().close()},d.getNotifications=function(){return f},r.on("SkinLoaded",function(){var e=r.settings.service_message;e&&r.notificationManager.open({text:e,type:"warning",timeout:0,icon:""})})}}),r(Fe,[w],function(e){function t(t,n,r){for(var i=[];n&&n!=t;n=n.parentNode)i.push(e.nodeIndex(n,r));return i}function n(e,t){var n,r,i;for(r=e,n=t.length-1;n>=0;n--){if(i=r.childNodes,t[n]>i.length-1)return null;r=i[t[n]]}return r}return{create:t,resolve:n}}),r(ze,[I,T,y,Fe,A,C,d,m,c,k,$,oe],function(e,t,n,r,i,o,a,s,l,u,c,d){return function(f){function p(e,t){try{f.getDoc().execCommand(e,!1,t)}catch(n){}}function h(){var e=f.getDoc().documentMode;return e?e:6}function m(e){return e.isDefaultPrevented()}function g(e){var t,n;e.dataTransfer&&(f.selection.isCollapsed()&&"IMG"==e.target.tagName&&re.select(e.target),t=f.selection.getContent(),t.length>0&&(n=ce+escape(f.id)+","+escape(t),e.dataTransfer.setData(de,n)))}function v(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(de),t&&t.indexOf(ce)>=0)?(t=t.substr(ce.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}function y(e){f.queryCommandSupported("mceInsertClipboardContent")?f.execCommand("mceInsertClipboardContent",!1,{content:e}):f.execCommand("mceInsertContent",!1,e)}function b(){function i(e){var t=x.schema.getBlockElements(),n=f.getBody();if("BR"!=e.nodeName)return!1;for(;e!=n&&!t[e.nodeName];e=e.parentNode)if(e.nextSibling)return!1;return!0}function o(e,t){var n;for(n=e.nextSibling;n&&n!=t;n=n.nextSibling)if((3!=n.nodeType||0!==Z.trim(n.data).length)&&n!==t)return!1;return n===t}function a(e,t,r){var o,a,s;if(x.isChildOf(e,f.getBody()))for(s=x.schema.getNonEmptyElements(),o=new n(r||e,e);a=o[t?"next":"prev"]();){if(s[a.nodeName]&&!i(a))return a;if(3==a.nodeType&&a.data.length>0)return a}}function u(e){var n,r,i,o,s;if(!e.collapsed&&(n=x.getParent(t.getNode(e.startContainer,e.startOffset),x.isBlock),r=x.getParent(t.getNode(e.endContainer,e.endOffset),x.isBlock),s=f.schema.getTextBlockElements(),n!=r&&s[n.nodeName]&&s[r.nodeName]&&"false"!==x.getContentEditable(n)&&"false"!==x.getContentEditable(r)))return e.deleteContents(),i=a(n,!1),o=a(r,!0),x.isEmpty(r)||Z(n).append(r.childNodes),Z(r).remove(),i?1==i.nodeType?"BR"==i.nodeName?(e.setStartBefore(i),e.setEndBefore(i)):(e.setStartAfter(i),e.setEndAfter(i)):(e.setStart(i,i.data.length),e.setEnd(i,i.data.length)):o&&(1==o.nodeType?(e.setStartBefore(o),e.setEndBefore(o)):(e.setStart(o,0),e.setEnd(o,0))),w.setRng(e),!0}function c(e,n){var r,i,s,l,u,c;if(!e.collapsed)return e;if(u=e.startContainer,c=e.startOffset,3==u.nodeType)if(n){if(c<u.data.length)return e}else if(c>0)return e;r=t.getNode(u,c),s=x.getParent(r,x.isBlock),i=a(f.getBody(),n,r),l=x.getParent(i,x.isBlock);var d=1===u.nodeType&&c>u.childNodes.length-1;if(!r||!i)return e;if(l&&s!=l)if(n){if(!o(s,l))return e;1==r.nodeType?"BR"==r.nodeName?e.setStartBefore(r):e.setStartAfter(r):e.setStart(r,r.data.length),1==i.nodeType?e.setEnd(i,0):e.setEndBefore(i)}else{if(!o(l,s))return e;1==i.nodeType?"BR"==i.nodeName?e.setStartBefore(i):e.setStartAfter(i):e.setStart(i,i.data.length),1==r.nodeType&&d?e.setEndAfter(r):e.setEndBefore(r)}return e}function d(e){var t=w.getRng();if(t=c(t,e),u(t))return!0}function p(e,t){function n(e,n){return m=Z(n).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),l=e.cloneNode(!1),m=s.map(m,function(e){return e=e.cloneNode(!1),l.hasChildNodes()?(e.appendChild(l.firstChild),l.appendChild(e)):l.appendChild(e),l.appendChild(e),e}),m.length?(h=x.create("br"),m[0].appendChild(h),x.replace(l,e),t.setStartBefore(h),t.setEndBefore(h),f.selection.setRng(t),h):null}function i(e){return e&&f.schema.getTextBlockElements()[e.tagName]}var o,a,l,u,c,d,p,h,m;if(t.collapsed&&(d=t.startContainer,p=t.startOffset,a=x.getParent(d,x.isBlock),i(a)))if(1==d.nodeType){if(d=d.childNodes[p],d&&"BR"!=d.tagName)return;if(c=e?a.nextSibling:a.previousSibling,x.isEmpty(a)&&i(c)&&x.isEmpty(c)&&n(a,d))return x.remove(c),!0}else if(3==d.nodeType){if(o=r.create(a,d),u=a.cloneNode(!0),d=r.resolve(u,o),e){if(p>=d.data.length)return;d.deleteData(p,1)}else{if(p<=0)return;d.deleteData(p-1,1)}if(x.isEmpty(u))return n(a,d)}}function h(e){var t,n,r;d(e)||(s.each(f.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&f.dom.setAttrib(e,"style",f.dom.getAttrib(e,"style"))}),t=new E(function(){}),t.observe(f.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),f.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),n=f.selection.getRng(),r=n.startContainer.parentNode,s.each(t.takeRecords(),function(e){if(x.isChildOf(e.target,f.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}s.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),x.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),f.selection.setRng(n))}})}}),t.disconnect(),s.each(f.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")}))}function b(e){f.undoManager.transact(function(){h(e)})}var C=f.getDoc(),x=f.dom,w=f.selection,E=window.MutationObserver,N,_;E||(N=!0,E=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),f.on("keydown",function(e){var t=e.keyCode==te,n=e.ctrlKey||e.metaKey;if(!m(e)&&(t||e.keyCode==ee)){var r=f.selection.getRng(),i=r.startContainer,o=r.startOffset;if(t&&e.shiftKey)return;if(p(t,r))return void e.preventDefault();if(!n&&r.collapsed&&3==i.nodeType&&(t?o<i.data.length:o>0))return;e.preventDefault(),n&&f.selection.getSel().modify("extend",t?"forward":"backward",e.metaKey?"lineboundary":"word"),h(t)}}),f.on("keypress",function(t){if(!m(t)&&!w.isCollapsed()&&t.charCode>31&&!e.metaKeyPressed(t)){var n,r,i,o,a,s;n=f.selection.getRng(),s=String.fromCharCode(t.charCode),t.preventDefault(),r=Z(n.startContainer).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),h(!0),r=r.filter(function(e,t){return!Z.contains(f.getBody(),t)}),r.length?(i=x.createFragment(),r.each(function(e,t){t=t.cloneNode(!1),i.hasChildNodes()?(t.appendChild(i.firstChild),i.appendChild(t)):(a=t,i.appendChild(t)),i.appendChild(t)}),a.appendChild(f.getDoc().createTextNode(s)),o=x.getParent(n.startContainer,x.isBlock),x.isEmpty(o)?Z(o).empty().append(i):n.insertNode(i),n.setStart(a.firstChild,1),n.setEnd(a.firstChild,1),f.selection.setRng(n)):f.selection.setContent(s)}}),f.addCommand("Delete",function(){h()}),f.addCommand("ForwardDelete",function(){h(!0)}),N||(f.on("dragstart",function(e){_=w.getRng(),g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);n&&(e.preventDefault(),l.setEditorTimeout(f,function(){var r=t.getCaretRangeFromPoint(e.x,e.y,C);_&&(w.setRng(_),_=null,b()),w.setRng(r),y(n.html)}))}}),f.on("cut",function(e){m(e)||!e.clipboardData||f.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",f.selection.getContent()),e.clipboardData.setData("text/plain",f.selection.getContent({format:"text"})),l.setEditorTimeout(f,function(){b(!0)}))}))}function C(){function e(e){var t=ne.create("body"),n=e.cloneContents();return t.appendChild(n),re.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(f.getBody()),t.compareRanges(n,r)}var i=e(n),o=ne.createRng();o.selectNode(f.getBody());var a=e(o);return i===a}f.on("keydown",function(e){var t=e.keyCode,r,i;if(!m(e)&&(t==te||t==ee)){if(r=f.selection.isCollapsed(),i=f.getBody(),r&&!ne.isEmpty(i))return;if(!r&&!n(f.selection.getRng()))return;e.preventDefault(),f.setContent(""),i.firstChild&&ne.isBlock(i.firstChild)?f.selection.setCursorLocation(i.firstChild,0):f.selection.setCursorLocation(i,0),f.nodeChanged()}})}function x(){f.shortcuts.add("meta+a",null,"SelectAll")}function w(){f.settings.content_editable||ne.bind(f.getDoc(),"mousedown mouseup",function(e){var t;if(e.target==f.getDoc().documentElement)if(t=re.getRng(),f.getBody().focus(),"mousedown"==e.type){if(u.isCaretContainer(t.startContainer))return;re.placeCaretAt(e.clientX,e.clientY)}else re.setRng(t)})}function E(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee){if(!f.getBody().getElementsByTagName("hr").length)return;if(re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return ne.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(ne.remove(n),e.preventDefault())}}})}function N(){window.Range.prototype.getClientRects||f.on("mousedown",function(e){if(!m(e)&&"HTML"===e.target.nodeName){var t=f.getBody();t.blur(),l.setEditorTimeout(f,function(){t.focus()})}})}function _(){f.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==ne.getContentEditableParent(t)&&(e.preventDefault(),re.select(t),f.nodeChanged()),"A"==t.nodeName&&ne.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),re.select(t))})}function S(){function e(){var e=ne.getAttribs(re.getStart().cloneNode(!1));return function(){var t=re.getStart();t!==f.getBody()&&(ne.setAttrib(t,"style",null),Q(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!re.isCollapsed()&&ne.getParent(re.getStart(),ne.isBlock)!=ne.getParent(re.getEnd(),ne.isBlock)}f.on("keypress",function(n){var r;if(!m(n)&&(8==n.keyCode||46==n.keyCode)&&t())return r=e(),f.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1}),ne.bind(f.getDoc(),"cut",function(n){var r;!m(n)&&t()&&(r=e(),l.setEditorTimeout(f,function(){r()}))})}function k(){document.body.setAttribute("role","application")}function T(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee&&re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function R(){h()>7||(p("RespectVisibilityInDesign",!0),f.contentStyles.push(".mceHideBrInPre pre br {display: none}"),ne.addClass(f.getBody(),"mceHideBrInPre"),oe.addNodeFilter("pre",function(e){for(var t=e.length,n,r,o,a;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)o=n[r],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new i("#text",3),o,!0).value="\n"}),ae.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function A(){ne.bind(f.getBody(),"mouseup",function(){var e,t=re.getNode();"IMG"==t.nodeName&&((e=ne.getStyle(t,"width"))&&(ne.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"width","")),(e=ne.getStyle(t,"height"))&&(ne.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"height","")))})}function B(){f.on("keydown",function(t){var n,r,i,o,a;if(!m(t)&&t.keyCode==e.BACKSPACE&&(n=re.getRng(),r=n.startContainer,i=n.startOffset,o=ne.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(f.formatter.toggle("blockquote",null,a),n=ne.createRng(),n.setStart(r,0),n.setEnd(r,0),re.setRng(n))}})}function D(){function e(){K(),p("StyleWithCSS",!1),p("enableInlineTableEditing",!1),ie.object_resizing||p("enableObjectResizing",!1)}ie.readonly||f.on("BeforeExecCommand MouseDown",e)}function L(){function e(){Q(ne.select("a"),function(e){var t=e.parentNode,n=ne.getRoot();if(t.lastChild===e){for(;t&&!ne.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}ne.add(t,"br",{"data-mce-bogus":1})}})}f.on("SetContent ExecCommand",function(t){"setcontent"!=t.type&&"mceInsertLink"!==t.command||e()})}function M(){ie.forced_root_block&&f.on("init",function(){p("DefaultParagraphSeparator",ie.forced_root_block)})}function P(){f.on("keydown",function(e){var t;m(e)||e.keyCode!=ee||(t=f.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),f.undoManager.beforeChange(),ne.remove(t.item(0)),f.undoManager.add()))})}function O(){var e;h()>=10&&(e="",Q("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),f.contentStyles.push(e+"{padding-right: 1px !important}"))}function H(){h()<9&&(oe.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),ae.addNodeFilter("noscript",function(e){for(var t=e.length,n,r,a;t--;)n=e[t],r=e[t].firstChild,r?r.value=o.decode(r.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),r=new i("#text",3),r.value=a,r.raw=!0,n.append(r)))}))}function I(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),ne.unbind(r,"mouseup",n),ne.unbind(r,"mousemove",t),a=o=0}var r=ne.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,ne.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(ne.bind(r,"mouseup",n),ne.bind(r,"mousemove",t),ne.getRoot().focus(),a.select())}})}function F(){f.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||re.normalize()},!0)}function z(){f.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function U(){f.inline||f.on("keydown",function(){document.activeElement==document.body&&f.getWin().focus()})}function W(){f.inline||(f.contentStyles.push("body {min-height: 150px}"),f.on("click",function(e){var t;if("HTML"==e.target.nodeName){if(a.ie>11)return void f.getBody().focus();t=f.selection.getRng(),f.getBody().focus(),f.selection.setRng(t),f.selection.normalize(),f.nodeChanged()}}))}function V(){a.mac&&f.on("keydown",function(t){!e.metaKeyPressed(t)||t.shiftKey||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),f.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","lineboundary"))})}function $(){p("AutoUrlDetect",!1)}function q(){f.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),f.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function j(){f.on("init",function(){f.dom.bind(f.getBody(),"submit",function(e){e.preventDefault()})})}function Y(){oe.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}function X(){f.on("dragstart",function(e){g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);if(n&&n.id!=f.id){e.preventDefault();var r=t.getCaretRangeFromPoint(e.x,e.y,f.getDoc());re.setRng(r),y(n.html)}}})}function K(){}function G(){var e;return se?(e=f.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}function J(){function t(e){var t=new d(e.getBody()),n=e.selection.getRng(),r=c.fromRangeStart(n),i=c.fromRangeEnd(n),o=t.prev(r),a=t.next(i);return!e.selection.isCollapsed()&&(!o||o.isAtStart()&&r.isEqual(o))&&(!a||a.isAtEnd()&&r.isEqual(a))}f.on("keypress",function(n){!m(n)&&!re.isCollapsed()&&n.charCode>31&&!e.metaKeyPressed(n)&&t(f)&&(n.preventDefault(),f.setContent(String.fromCharCode(n.charCode)),f.selection.select(f.getBody(),!0),f.selection.collapse(!1),f.nodeChanged())}),f.on("keydown",function(e){var n=e.keyCode;m(e)||n!=te&&n!=ee||t(f)&&(e.preventDefault(),f.setContent(""),f.nodeChanged())})}var Q=s.each,Z=f.$,ee=e.BACKSPACE,te=e.DELETE,ne=f.dom,re=f.selection,ie=f.settings,oe=f.parser,ae=f.serializer,se=a.gecko,le=a.ie,ue=a.webkit,ce="data:text/mce-internal,",de=le?"Text":"URL";return B(),C(),a.windowsPhone||F(),ue&&(J(),b(),w(),_(),M(),j(),T(),Y(),a.iOS?(U(),W(),q()):x()),le&&a.ie<11&&(E(),k(),R(),A(),P(),O(),H(),I()),a.ie>=11&&T(),a.ie&&(W(),x(),$(),X()),se&&(J(),E(),N(),S(),D(),L(),z(),V(),T()),{refreshContentEditable:K,isHidden:G}}}),r(Ue,[pe,w,m],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){function n(e){return!e.hidden&&!e.readonly}var i=r(e,t),s;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;s=function(r){for(var i=r.target,a=e.editorManager.editors,s=a.length;s--;){var l=a[s].getBody();(l===i||o.isChildOf(i,l))&&n(a[s])&&a[s].fire(t,r)}},a[t]=s,o.bind(i,t,s)}else s=function(r){n(e)&&e.fire(t,r)},o.bind(i,t,s),e.delegates[t]=s}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(We,[],function(){function e(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function t(e){var t,n;return t=e.getBody(),n=function(t){e.dom.getParents(t.target,"a").length>0&&t.preventDefault()},e.dom.bind(t,"click",n),{unbind:function(){e.dom.unbind(t,"click",n)}}}function n(n,r){n._clickBlocker&&(n._clickBlocker.unbind(),n._clickBlocker=null),r?(n._clickBlocker=t(n),n.selection.controlSelection.hideResizeRect(),n.readonly=!0,n.getBody().contentEditable=!1):(n.readonly=!1,n.getBody().contentEditable=!0,e(n,"StyleWithCSS",!1),e(n,"enableInlineTableEditing",!1),e(n,"enableObjectResizing",!1),n.focus(),n.nodeChanged())}function r(e,t){var r=e.readonly?"readonly":"design";t!=r&&(e.initialized?n(e,"readonly"==t):e.on("init",function(){n(e,"readonly"==t)}),e.fire("SwitchMode",{mode:t}))}return{setMode:r}}),r(Ve,[m,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122},o=e.makeMap("alt,ctrl,shift,meta,access");return function(a){function s(e){var a,s,l={};n(r(e,"+"),function(e){e in o?l[e]=!0:/^[0-9]{2,}$/.test(e)?l.keyCode=parseInt(e,10):(l.charCode=e.charCodeAt(0),l.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}),a=[l.keyCode];for(s in o)l[s]?a.push(s):l[s]=!1;return l.id=a.join(","),l.access&&(l.alt=!0,t.mac?l.ctrl=!0:l.shift=!0),l.meta&&(t.mac?l.meta=!0:(l.ctrl=!0,l.meta=!1)),l}function l(t,n,i,o){var l;return l=e.map(r(t,">"),s),l[l.length-1]=e.extend(l[l.length-1],{func:i,scope:o||a}),e.extend(l[0],{desc:a.translate(n),subpatterns:l.slice(1)})}function u(e){return e.altKey||e.ctrlKey||e.metaKey}function c(e){return"keydown"===e.type&&e.keyCode>=112&&e.keyCode<=123}function d(e,t){return!!t&&(t.ctrl==e.ctrlKey&&t.meta==e.metaKey&&(t.alt==e.altKey&&t.shift==e.shiftKey&&(!!(e.keyCode==t.keyCode||e.charCode&&e.charCode==t.charCode)&&(e.preventDefault(),!0))))}function f(e){return e.func?e.func.call(e.scope):null}var p=this,h={},m=[];a.on("keyup keypress keydown",function(e){!u(e)&&!c(e)||e.isDefaultPrevented()||(n(h,function(t){if(d(e,t))return m=t.subpatterns.slice(0),"keydown"==e.type&&f(t),!0}),d(e,m[0])&&(1===m.length&&"keydown"==e.type&&f(m[0]),m.shift()))}),p.add=function(t,i,o,s){var u;return u=o,"string"==typeof o?o=function(){a.execCommand(u,!1,null)}:e.isArray(u)&&(o=function(){a.execCommand(u[0],u[1],u[2])}),n(r(e.trim(t.toLowerCase())),function(e){var t=l(e,i,o,s);h[t.id]=t}),!0},p.remove=function(e){var t=l(e);return!!h[t.id]&&(delete h[t.id],!0)}}}),r($e,[u,m,z],function(e,t,n){return function(r,i){function o(e){var t,n;return n={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},t=n[e.blob().type.toLowerCase()]||"dat",e.filename()+"."+t}function a(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}function s(e){return{id:e.id,blob:e.blob,base64:e.base64,filename:n.constant(o(e))}}function l(e,t,n,r){var o,s;o=new XMLHttpRequest,o.open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){r(e.loaded/e.total*100)},o.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e;return 200!=o.status?void n("HTTP Error: "+o.status):(e=JSON.parse(o.responseText),e&&"string"==typeof e.location?void t(a(i.basePath,e.location)):void n("Invalid JSON: "+o.responseText))},s=new FormData,s.append("file",e.blob(),e.filename()),o.send(s)}function u(){return new e(function(e){e([])})}function c(e,t){return{url:t,blobInfo:e,status:!0}}function d(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,n){t.each(y[e],function(e){e(n)}),delete y[e]}function p(t,n,i){return r.markPending(t.blobUri()),new e(function(e){var o,a,l=function(){};try{var u=function(){o&&(o.close(),a=l)},p=function(n){u(),r.markUploaded(t.blobUri(),n),f(t.blobUri(),c(t,n)),e(c(t,n))},h=function(n){u(),r.removeFailed(t.blobUri()),f(t.blobUri(),d(t,n)),e(d(t,n))};a=function(e){e<0||e>100||(o||(o=i()),o.progressBar.value(e))},n(s(t),p,h,a)}catch(m){e(d(t,m.message))}})}function h(e){return e===l}function m(t){var n=t.blobUri();return new e(function(e){y[n]=y[n]||[],y[n].push(e)})}function g(n,o){return n=t.grep(n,function(e){return!r.isUploaded(e.blobUri())}),e.all(t.map(n,function(e){return r.isPending(e.blobUri())?m(e):p(e,i.handler,o)}))}function v(e,t){return!i.url&&h(i.handler)?u():g(e,t)}var y={};return i=t.extend({credentials:!1,handler:l},i),{upload:v}}}),r(qe,[u],function(e){function t(t){return new e(function(e,n){var r=function(){n("Cannot convert "+t+" to Blob. Resource might not exist or is inaccessible.")};try{var i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="blob",i.onload=function(){200==this.status?e(this.response):r()},i.onerror=r,i.send()}catch(o){r()}})}function n(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}}function r(t){return new e(function(e){var r,i,o;t=n(t);try{r=atob(t.data)}catch(a){return void e(new Blob([]))}for(i=new Uint8Array(r.length),o=0;o<i.length;o++)i[o]=r.charCodeAt(o);e(new Blob([i],{type:t.type}))})}function i(e){return 0===e.indexOf("blob:")?t(e):0===e.indexOf("data:")?r(e):null}function o(t){return new e(function(e){var n=new FileReader;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}return{uriToBlob:i,blobToDataUri:o,parseDataUri:n}}),r(je,[u,h,z,qe,d],function(e,t,n,r,i){var o=0,a=function(e){return(e||"blobid")+o++};return function(o,s){function l(l,c){function d(e,t,n){var i,o;return 0===e.src.indexOf("blob:")?(o=s.getByUri(e.src),void(o?t({image:e,blobInfo:o}):r.uriToBlob(e.src).then(function(n){r.blobToDataUri(n).then(function(l){i=r.parseDataUri(l).data,o=s.create(a(),n,i),s.add(o),t({image:e,blobInfo:o})})},function(e){n(e)}))):(i=r.parseDataUri(e.src).data,o=s.findFirst(function(e){return e.base64()===i}),void(o?t({image:e,blobInfo:o}):r.uriToBlob(e.src).then(function(n){o=s.create(a(),n,i),s.add(o),t({image:e,blobInfo:o})},function(e){n(e)})))}var f,p;return c||(c=n.constant(!0)),f=t.filter(l.getElementsByTagName("img"),function(e){var t=e.src;return!!i.fileApi&&(!e.hasAttribute("data-mce-bogus")&&(!e.hasAttribute("data-mce-placeholder")&&(!(!t||t==i.transparentSrc)&&(0===t.indexOf("blob:")?!o.isUploaded(t):0===t.indexOf("data:")&&c(e)))))}),p=t.map(f,function(t){var n;return u[t.src]?new e(function(e){u[t.src].then(function(n){
return"string"==typeof n?n:void e({image:t,blobInfo:n.blobInfo})})}):(n=new e(function(e,n){d(t,e,n)}).then(function(e){return delete u[e.image.src],e})["catch"](function(e){return delete u[t.src],e}),u[t.src]=n,n)}),e.all(p)}var u={};return{findAll:l}}}),r(Ye,[h,z],function(e,t){return function(){function n(e,t,n,r){return{id:c(e),filename:c(r||e),blob:c(t),base64:c(n),blobUri:c(URL.createObjectURL(t))}}function r(e){i(e.id())||u.push(e)}function i(e){return o(function(t){return t.id()===e})}function o(t){return e.filter(u,t)[0]}function a(e){return o(function(t){return t.blobUri()==e})}function s(t){u=e.filter(u,function(e){return e.blobUri()!==t||(URL.revokeObjectURL(e.blobUri()),!1)})}function l(){e.each(u,function(e){URL.revokeObjectURL(e.blobUri())}),u=[]}var u=[],c=t.constant;return{create:n,add:r,get:i,getByUri:a,findFirst:o,removeByUri:s,destroy:l}}}),r(Xe,[],function(){return function(){function e(e,t){return{status:e,resultUri:t}}function t(e){return e in d}function n(e){var t=d[e];return t?t.resultUri:null}function r(e){return!!t(e)&&d[e].status===u}function i(e){return!!t(e)&&d[e].status===c}function o(t){d[t]=e(u,null)}function a(t,n){d[t]=e(c,n)}function s(e){delete d[e]}function l(){d={}}var u=1,c=2,d={};return{hasBlobUri:t,getResultUri:n,isPending:r,isUploaded:i,markPending:o,markUploaded:a,removeFailed:s,destroy:l}}}),r(Ke,[N],function(e){var t=e.PluginManager,n=function(e,n){for(var r in t.urls){var i=t.urls[r]+"/plugin"+n+".js";if(i===e)return r}return null},r=function(e,t){var r=n(t,e.suffix);return r?"Failed to load plugin: "+r+" from url "+t:"Failed to load plugin url: "+t},i=function(e,t){e.notificationManager.open({type:"error",text:t})},o=function(e,t){e._skinLoaded?i(e,t):e.on("SkinLoaded",function(){i(e,t)})},a=function(e,t){o(e,"Failed to upload image: "+t)},s=function(e,t){o(e,r(e,t))};return{pluginLoadError:s,uploadError:a,displayError:o}}),r(Ge,[h,$e,je,Ye,Xe,Ke],function(e,t,n,r,i,o){return function(a){function s(e){return function(t){return a.selection?e(t):[]}}function l(){return"?"+(new Date).getTime()}function u(e,t,n){var r=0;do r=e.indexOf(t,r),r!==-1&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1);while(r!==-1);return e}function c(e,t,n){return e=u(e,'src="'+t+'"','src="'+n+'"'),e=u(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')}function d(t,n){e.each(a.undoManager.data,function(r){"fragmented"===r.type?r.fragments=e.map(r.fragments,function(e){return c(e,t,n)}):r.content=c(r.content,t,n)})}function f(){return a.notificationManager.open({text:a.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})}function p(e,t){C.removeByUri(e.src),d(e.src,t),a.$(e).attr({src:E.images_reuse_filename?t+l():t,"data-mce-src":a.convertURL(t,"src")})}function h(n){return x||(x=new t(N,{url:E.images_upload_url,basePath:E.images_upload_base_path,credentials:E.images_upload_credentials,handler:E.images_upload_handler})),v().then(s(function(t){var r;return r=e.map(t,function(e){return e.blobInfo}),x.upload(r,f).then(s(function(r){return r=e.map(r,function(e,n){var r=t[n].image;return e.status&&a.settings.images_replace_blob_uris!==!1?p(r,e.url):e.error&&o.uploadError(a,e.error),{element:r,status:e.status}}),n&&n(r),r}))}))}function m(e){if(E.automatic_uploads!==!1)return h(e)}function g(e){return!E.images_dataimg_filter||E.images_dataimg_filter(e)}function v(){return w||(w=new n(N,C)),w.findAll(a.getBody(),g).then(s(function(t){return t=e.filter(t,function(e){return"string"!=typeof e||(o.displayError(a,e),!1)}),e.each(t,function(e){d(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),t}))}function y(){C.destroy(),N.destroy(),w=x=null}function b(t){return t.replace(/src="(blob:[^"]+)"/g,function(t,n){var r=N.getResultUri(n);if(r)return'src="'+r+'"';var i=C.getByUri(n);return i||(i=e.reduce(a.editorManager.editors,function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null)),i?'src="data:'+i.blob().type+";base64,"+i.base64()+'"':t})}var C=new r,x,w,E=a.settings,N=new i;return a.on("setContent",function(){a.settings.automatic_uploads!==!1?m():v()}),a.on("RawSaveContent",function(e){e.content=b(e.content)}),a.on("getContent",function(e){e.source_view||"raw"==e.format||(e.content=b(e.content))}),a.on("PostRender",function(){a.parser.addNodeFilter("img",function(t){e.each(t,function(e){var t=e.attr("src");if(!C.getByUri(t)){var n=N.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:C,uploadImages:h,uploadImagesAuto:m,scanForImages:v,destroy:y}}}),r(Je,[k,$,_,T,g,W,c],function(e,t,n,r,i,o,a){var s=n.isContentEditableFalse;return function(t,n){function r(e,n){var r=o.collapse(e.getBoundingClientRect(),n),i,a,s,l,u;return"BODY"==t.tagName?(i=t.ownerDocument.documentElement,a=t.scrollLeft||i.scrollLeft,s=t.scrollTop||i.scrollTop):(u=t.getBoundingClientRect(),a=t.scrollLeft-u.left,s=t.scrollTop-u.top),r.left+=a,r.right+=a,r.top+=s,r.bottom+=s,r.width=1,l=e.offsetWidth-e.clientWidth,l>0&&(n&&(l*=-1),r.left+=l,r.right+=l),r}function l(){var n,r,o,a,s;for(n=i("*[contentEditable=false]",t),a=0;a<n.length;a++)r=n[a],o=r.previousSibling,e.endsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(s.length-1,1)),o=r.nextSibling,e.startsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(0,1));return null}function u(o,a){var l,u;return c(),n(a)?(g=e.insertBlock("p",a,o),l=r(a,o),i(g).css("top",l.top),m=i('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(l).appendTo(t),o&&m.addClass("mce-visual-caret-before"),d(),u=a.ownerDocument.createRange(),u.setStart(g,0),u.setEnd(g,0),u):(g=e.insertInline(a,o),u=a.ownerDocument.createRange(),s(g.nextSibling)?(u.setStart(g,0),u.setEnd(g,0)):(u.setStart(g,1),u.setEnd(g,1)),u)}function c(){l(),g&&(e.remove(g),g=null),m&&(m.remove(),m=null),clearInterval(h)}function d(){h=a.setInterval(function(){i("div.mce-visual-caret",t).toggleClass("mce-visual-caret-hidden")},500)}function f(){a.clearInterval(h)}function p(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var h,m,g;return{show:u,hide:c,getCss:p,destroy:f}}}),r(Qe,[h,_,W],function(e,t,n){function r(i){function o(t){return e.map(t,function(e){return e=n.clone(e),e.node=i,e})}if(e.isArray(i))return e.reduce(i,function(e,t){return e.concat(r(t))},[]);if(t.isElement(i))return o(i.getClientRects());if(t.isText(i)){var a=i.ownerDocument.createRange();return a.setStart(i,0),a.setEnd(i,i.data.length),o(a.getClientRects())}}return{getClientRects:r}}),r(Ze,[z,h,Qe,U,ie,oe,$,W],function(e,t,n,r,i,o,a,s){function l(e,t,n,o){for(;o=i.findNode(o,e,r.isEditableCaretCandidate,t);)if(n(o))return}function u(e,r,i,o,a,s){function u(o){var s,l,u;for(u=n.getClientRects(o),e==-1&&(u=u.reverse()),s=0;s<u.length;s++)if(l=u[s],!i(l,p)){if(f.length>0&&r(l,t.last(f))&&c++,l.line=c,a(l))return!0;f.push(l)}}var c=0,d,f=[],p;return(p=t.last(s.getClientRects()))?(d=s.getNode(),u(d),l(e,o,u,d),f):f}function c(e,t){return t.line>e}function d(e,t){return t.line===e}function f(e,n,r,i){function l(n){return 1==e?t.last(n.getClientRects()):t.last(n.getClientRects())}var u=new o(n),c,d,f,p,h=[],m=0,g,v;1==e?(c=u.next,d=s.isBelow,f=s.isAbove,p=a.after(i)):(c=u.prev,d=s.isAbove,f=s.isBelow,p=a.before(i)),v=l(p);do if(p.isVisible()&&(g=l(p),!f(g,v))){if(h.length>0&&d(g,t.last(h))&&m++,g=s.clone(g),g.position=p,g.line=m,r(g))return h;h.push(g)}while(p=c(p));return h}var p=e.curry,h=p(u,-1,s.isAbove,s.isBelow),m=p(u,1,s.isBelow,s.isAbove);return{upUntil:h,downUntil:m,positionsUntil:f,isAboveLine:p(c),isLine:p(d)}}),r(et,[z,h,_,Qe,W,ie,U],function(e,t,n,r,i,o,a){function s(e,t){return Math.abs(e.left-t)}function l(e,t){return Math.abs(e.right-t)}function u(e,n){function r(e,t){return e>=t.left&&e<=t.right}return t.reduce(e,function(e,t){var i,o;return i=Math.min(s(e,n),l(e,n)),o=Math.min(s(t,n),l(t,n)),r(n,t)?t:r(n,e)?e:o==i&&m(t.node)?t:o<i?t:e})}function c(e,t,n,r){for(;r=g(r,e,a.isEditableCaretCandidate,t);)if(n(r))return}function d(e,n){function o(e,i){var o;return o=t.filter(r.getClientRects(i),function(t){return!e(t,n)}),a=a.concat(o),0===o.length}var a=[];return a.push(n),c(-1,e,v(o,i.isAbove),n.node),c(1,e,v(o,i.isBelow),n.node),a}function f(e){return t.filter(t.toArray(e.getElementsByTagName("*")),m)}function p(e,t){return{node:e.node,before:s(e,t)<l(e,t)}}function h(e,n,i){var o,a;return o=r.getClientRects(f(e)),o=t.filter(o,function(e){return i>=e.top&&i<=e.bottom}),a=u(o,n),a&&(a=u(d(e,a),n),a&&m(a.node))?p(a,n):null}var m=n.isContentEditableFalse,g=o.findNode,v=e.curry;return{findClosestClientRect:u,findLineNodeRects:d,closestCaret:h}}),r(tt,[],function(){var e=function(e){var t,n,r,i;return i=e.getBoundingClientRect(),t=e.ownerDocument,n=t.documentElement,r=t.defaultView,{top:i.top+r.pageYOffset-n.clientTop,left:i.left+r.pageXOffset-n.clientLeft}},t=function(t){return t.inline?e(t.getBody()):{left:0,top:0}},n=function(e){var t=e.getBody();return e.inline?{left:t.scrollLeft,top:t.scrollTop}:{left:0,top:0}},r=function(e){var t=e.getBody(),n=e.getDoc().documentElement,r={left:t.scrollLeft,top:t.scrollTop},i={left:t.scrollLeft||n.scrollLeft,top:t.scrollTop||n.scrollTop};return e.inline?r:i},i=function(t,n){if(n.target.ownerDocument!==t.getDoc()){var i=e(t.getContentAreaContainer()),o=r(t);return{left:n.pageX-i.left+o.left,top:n.pageY-i.top+o.top}}return{left:n.pageX,top:n.pageY}},o=function(e,t,n){return{pageX:n.left-e.left+t.left,pageY:n.top-e.top+t.top}},a=function(e,r){return o(t(e),n(e),i(e,r))};return{calc:a}}),r(nt,[_,h,z,c,w,tt],function(e,t,n,r,i,o){var a=e.isContentEditableFalse,s=e.isContentEditableTrue,l=function(e,t){return a(t)&&t!==e},u=function(e,t,n){return t!==n&&!e.dom.isChildOf(t,n)&&!a(t)},c=function(e){var t=e.cloneNode(!0);return t.removeAttribute("data-mce-selected"),t},d=function(e,t,n,r){var i=t.cloneNode(!0);e.dom.setStyles(i,{width:n,height:r}),e.dom.setAttrib(i,"data-mce-selected",null);var o=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(o,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(i,{margin:0,boxSizing:"border-box"}),o.appendChild(i),o},f=function(e,t){e.parentNode!==t&&t.appendChild(e)},p=function(e,t,n,r,i,o){var a=0,s=0;e.style.left=t.pageX+"px",e.style.top=t.pageY+"px",t.pageX+n>i&&(a=t.pageX+n-i),t.pageY+r>o&&(s=t.pageY+r-o),e.style.width=n-a+"px",e.style.height=r-s+"px"},h=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},m=function(e){return 0===e.button},g=function(e){return e.element},v=function(e,t){return{pageX:t.pageX-e.relX,pageY:t.pageY+5}},y=function(e,r){return function(i){if(m(i)){var o=t.find(r.dom.getParents(i.target),n.or(a,s));if(l(r.getBody(),o)){var u=r.dom.getPos(o),c=r.getBody(),f=r.getDoc().documentElement;e.element=o,e.screenX=i.screenX,e.screenY=i.screenY,e.maxX=(r.inline?c.scrollWidth:f.offsetWidth)-2,e.maxY=(r.inline?c.scrollHeight:f.offsetHeight)-2,e.relX=i.pageX-u.x,e.relY=i.pageY-u.y,e.width=o.offsetWidth,e.height=o.offsetHeight,e.ghost=d(r,o,e.width,e.height)}}}},b=function(e,t){var n=r.throttle(function(e,n){t._selectionOverrides.hideFakeCaret(),t.selection.placeCaretAt(e,n)},0);return function(r){var i=Math.max(Math.abs(r.screenX-e.screenX),Math.abs(r.screenY-e.screenY));if(g(e)&&!e.dragging&&i>10){var a=t.fire("dragstart",{target:e.element});if(a.isDefaultPrevented())return;e.dragging=!0,t.focus()}if(e.dragging){var s=v(e,o.calc(t,r));f(e.ghost,t.getBody()),p(e.ghost,s,e.width,e.height,e.maxX,e.maxY),n(r.clientX,r.clientY)}}},C=function(e){var t=e.getSel().getRangeAt(0),n=t.startContainer;return 3===n.nodeType?n.parentNode:n},x=function(e,t){return function(n){if(e.dragging&&u(t,C(t.selection),e.element)){var r=c(e.element),i=t.fire("drop",{targetClone:r,clientX:n.clientX,clientY:n.clientY});i.isDefaultPrevented()||(r=i.targetClone,t.undoManager.transact(function(){h(e.element),t.insertContent(t.dom.getOuterHTML(r)),t._selectionOverrides.hideFakeCaret()}))}E(e)}},w=function(e,t){return function(){E(e),e.dragging&&t.fire("dragend")}},E=function(e){e.dragging=!1,e.element=null,h(e.ghost)},N=function(e){var t={},n,r,o,a,s,l;n=i.DOM,l=document,r=y(t,e),o=b(t,e),a=x(t,e),s=w(t,e),e.on("mousedown",r),e.on("mousemove",o),e.on("mouseup",a),n.bind(l,"mousemove",o),n.bind(l,"mouseup",s),e.on("remove",function(){n.unbind(l,"mousemove",o),n.unbind(l,"mouseup",s)})},_=function(e){e.on("drop",function(t){var n="undefined"!=typeof t.clientX?e.getDoc().elementFromPoint(t.clientX,t.clientY):null;(a(n)||a(e.dom.getContentEditableParent(n)))&&t.preventDefault()})},S=function(e){N(e),_(e)};return{init:S}}),r(rt,[d,oe,$,k,ie,Je,Ze,et,_,T,W,I,z,h,c,nt],function(e,t,n,r,i,o,a,s,l,u,c,d,f,p,h,m){function g(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function v(u){function v(e){return u.dom.hasClass(e,"mce-offscreen-selection")}function _(){var e=u.dom.get(ue);return e?e.getElementsByTagName("*")[0]:e}function S(e){return u.dom.isBlock(e)}function k(e){e&&u.selection.setRng(e)}function T(){return u.selection.getRng()}function R(e,t){u.selection.scrollIntoView(e,t)}function A(e,t,n){var r;return r=u.fire("ShowCaret",{target:t,direction:e,before:n}),r.isDefaultPrevented()?null:(R(t,e===-1),le.show(n,t))}function B(e){var t;return t=u.fire("BeforeObjectSelected",{target:e}),t.isDefaultPrevented()?null:D(e)}function D(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}function L(e,t){var n=i.isInSameBlock(e,t);return!(n||!l.isBr(e.getNode()))||n}function M(e,t){return t=i.normalizeRange(e,ie,t),e==-1?n.fromRangeStart(t):n.fromRangeEnd(t)}function P(e){return r.isCaretContainerBlock(e.startContainer)}function O(e,t,n,r){var i,o,a,s;return!r.collapsed&&(i=N(r),C(i))?A(e,i,e==-1):(s=P(r),o=M(e,r),n(o)?B(o.getNode(e==-1)):(o=t(o))?n(o)?A(e,o.getNode(e==-1),1==e):(a=t(o),n(a)&&L(o,a)?A(e,a.getNode(e==-1),1==e):s?$(o.toRange()):null):s?r:null)}function H(e,t,n){var r,i,o,l,u,c,d,f,h;if(h=N(n),r=M(e,n),i=t(ie,a.isAboveLine(1),r),o=p.filter(i,a.isLine(1)),u=p.last(r.getClientRects()),E(r)&&(h=r.getNode()),w(r)&&(h=r.getNode(!0)),!u)return null;if(c=u.left,l=s.findClosestClientRect(o,c),l&&C(l.node))return d=Math.abs(c-l.left),f=Math.abs(c-l.right),A(e,l.node,d<f);if(h){var m=a.positionsUntil(e,ie,a.isAboveLine(1),h);if(l=s.findClosestClientRect(p.filter(m,a.isLine(1)),c))return $(l.position.toRange());if(l=p.last(p.filter(m,a.isLine(0))))return $(l.position.toRange())}}function I(t,r){function i(){var t=u.dom.create(u.settings.forced_root_block);return(!e.ie||e.ie>=11)&&(t.innerHTML='<br data-mce-bogus="1">'),t}var o,a,s;if(r.collapsed&&u.settings.forced_root_block){if(o=u.dom.getParent(r.startContainer,"PRE"),!o)return;a=1==t?ae(n.fromRangeStart(r)):se(n.fromRangeStart(r)),a||(s=i(),1==t?u.$(o).after(s):u.$(o).before(s),u.selection.select(s,!0),u.selection.collapse())}}function F(e,t,n,r){var i;return(i=O(e,t,n,r))?i:(i=I(e,r),i?i:null)}function z(e,t,n){var r;return(r=H(e,t,n))?r:(r=I(e,n),r?r:null)}function U(){return de("*[data-mce-caret]")[0]}function W(e){e.hasAttribute("data-mce-caret")&&(r.showCaretContainerBlock(e),k(T()),R(e[0]))}function V(e){var t,r;return e=i.normalizeRange(1,ie,e),t=n.fromRangeStart(e),C(t.getNode())?A(1,t.getNode(),!t.isAtEnd()):C(t.getNode(!0))?A(1,t.getNode(!0),!1):(r=u.dom.getParent(t.getNode(),f.or(C,b)),C(r)?A(1,r,!1):null)}function $(e){var t;return e&&e.collapsed?(t=V(e),t?t:e):e}function q(e){var t,i,o,a;return C(e)?(C(e.previousSibling)&&(o=e.previousSibling),i=se(n.before(e)),i||(t=ae(n.after(e))),t&&x(t.getNode())&&(a=t.getNode()),r.remove(e.previousSibling),r.remove(e.nextSibling),u.dom.remove(e),u.dom.isEmpty(u.getBody())?(u.setContent(""),void u.focus()):o?n.after(o).toRange():a?n.before(a).toRange():i?i.toRange():t?t.toRange():null):null}function j(e){var t=u.schema.getTextBlockElements();return e.nodeName in t}function Y(e){return u.dom.isEmpty(e)}function X(e,t,r){var i=u.dom,o,a,s,l;if(o=i.getParent(t.getNode(),i.isBlock),a=i.getParent(r.getNode(),i.isBlock),e===-1){if(l=r.getNode(!0),w(r)&&S(l))return j(o)?(Y(o)&&i.remove(o),n.after(l).toRange()):q(r.getNode(!0))}else if(l=t.getNode(),E(t)&&S(l))return j(a)?(Y(a)&&i.remove(a),n.before(l).toRange()):q(t.getNode());if(o===a||!j(o)||!j(a))return null;for(;s=o.firstChild;)a.appendChild(s);return u.dom.remove(o),r.toRange()}function K(e,t,n,i){var o,a,s,l;return!i.collapsed&&(o=N(i),C(o))?$(q(o)):(a=M(e,i),n(a)&&r.isCaretContainerBlock(i.startContainer)?(l=e==-1?oe.prev(a):oe.next(a),l?$(l.toRange()):i):t(a)?$(q(a.getNode(e==-1))):(s=e==-1?oe.prev(a):oe.next(a),t(s)?e===-1?X(e,a,s):X(e,s,a):void 0))}function G(){function i(e,t){if(e.isDefaultPrevented()===!1){var n=t(T());n&&(e.preventDefault(),k(n))}}function o(e){for(var t=u.getBody();e&&e!=t;){if(b(e)||C(e))return e;e=e.parentNode}return null}function l(e,t,n){return!n.collapsed&&p.reduce(n.getClientRects(),function(n,r){return n||c.containsXY(r,e,t)},!1)}function f(e){var t=!1;e.on("touchstart",function(){t=!1}),e.on("touchmove",function(){t=!0}),e.on("touchend",function(e){var n=o(e.target);C(n)&&(t||(e.preventDefault(),ee(B(n))))})}function g(){var e,t=o(u.selection.getNode());b(t)&&S(t)&&u.dom.isEmpty(t)&&(e=u.dom.create("br",{"data-mce-bogus":"1"}),u.$(t).empty().append(e),u.selection.setRng(n.before(e).toRange()))}function x(e){var t=U();if(t)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void W(t)):void(r.hasContent(t)&&W(t))}function N(e){var t;switch(e.keyCode){case d.DELETE:t=g();break;case d.BACKSPACE:t=g()}t&&e.preventDefault()}var R=y(F,1,ae,E),D=y(F,-1,se,w),L=y(K,1,E,w),M=y(K,-1,w,E),P=y(z,-1,a.upUntil),O=y(z,1,a.downUntil);u.on("mouseup",function(){var e=T();e.collapsed&&k(V(e))}),u.on("click",function(e){var t;t=o(e.target),t&&(C(t)&&(e.preventDefault(),u.focus()),b(t)&&u.dom.isChildOf(t,u.selection.getNode())&&te())}),u.on("blur NewBlock",function(){te(),re()});var H=function(e){var r=new t(e);if(!e.firstChild)return!1;var i=n.before(e.firstChild),o=r.next(i);return o&&!E(o)&&!w(o)},I=function(e,t){var n=u.dom.getParent(e,u.dom.isBlock),r=u.dom.getParent(t,u.dom.isBlock);return n===r},j=function(e){return!(e.keyCode>=112&&e.keyCode<=123)},Y=function(e,t){var n=u.dom.getParent(e,u.dom.isBlock),r=u.dom.getParent(t,u.dom.isBlock);return n&&!I(n,r)&&H(n)};f(u),u.on("mousedown",function(e){var t;if(t=o(e.target))C(t)?(e.preventDefault(),ee(B(t))):l(e.clientX,e.clientY,u.selection.getRng())||u.selection.placeCaretAt(e.clientX,e.clientY);else{te(),re();var n=s.closestCaret(ie,e.clientX,e.clientY);n&&(Y(e.target,n.node)||(e.preventDefault(),u.getBody().focus(),k(A(1,n.node,n.before))))}}),u.on("keydown",function(e){if(!d.modifierPressed(e))switch(e.keyCode){case d.RIGHT:i(e,R);break;case d.DOWN:i(e,O);break;case d.LEFT:i(e,D);break;case d.UP:i(e,P);break;case d.DELETE:i(e,L);break;case d.BACKSPACE:i(e,M);break;default:C(u.selection.getNode())&&j(e)&&e.preventDefault()}}),u.on("keyup compositionstart",function(e){x(e),N(e)},!0),u.on("cut",function(){var e=u.selection.getNode();C(e)&&h.setEditorTimeout(u,function(){k($(q(e)))})}),u.on("getSelectionRange",function(e){var t=e.range;if(ce){if(!ce.parentNode)return void(ce=null);t=t.cloneRange(),t.selectNode(ce),e.range=t}}),u.on("setSelectionRange",function(e){var t;t=ee(e.range),t&&(e.range=t)}),u.on("AfterSetSelectionRange",function(e){var t=e.range;Z(t)||re(),v(t.startContainer.parentNode)||te()}),u.on("focus",function(){h.setEditorTimeout(u,function(){u.selection.setRng($(u.selection.getRng()))},0)}),u.on("copy",function(t){var n=t.clipboardData;if(!t.isDefaultPrevented()&&t.clipboardData&&!e.ie){var r=_();r&&(t.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),m.init(u)}function J(){var e=u.contentStyles,t=".mce-content-body";e.push(le.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")}function Q(e){return r.isCaretContainer(e)||r.startsWithCaretContainer(e)||r.endsWithCaretContainer(e)}function Z(e){return Q(e.startContainer)||Q(e.endContainer)}function ee(t){var n,r=u.$,i=u.dom,o,a,s,l,c,d,f,p,h;if(!t)return null;if(t.collapsed){if(!Z(t)){if(f=M(1,t),C(f.getNode()))return A(1,f.getNode(),!f.isAtEnd());if(C(f.getNode(!0)))return A(1,f.getNode(!0),!1)}return null}return s=t.startContainer,l=t.startOffset,c=t.endOffset,3==s.nodeType&&0==l&&C(s.parentNode)&&(s=s.parentNode,l=i.nodeIndex(s),s=s.parentNode),1!=s.nodeType?null:(c==l+1&&(n=s.childNodes[l]),C(n)?(p=h=n.cloneNode(!0),d=u.fire("ObjectSelected",{target:n,targetClone:p}),d.isDefaultPrevented()?null:(p=d.targetClone,o=r("#"+ue),0===o.length&&(o=r('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",ue),o.appendTo(u.getBody())),t=u.dom.createRng(),p===h&&e.ie?(o.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(p),t.setStartAfter(o[0].firstChild.firstChild),t.setEndAfter(p)):(o.empty().append("\xa0").append(p).append("\xa0"),t.setStart(o[0].firstChild,1),t.setEnd(o[0].lastChild,0)),o.css({top:i.getPos(n,u.getBody()).y}),o[0].focus(),a=u.selection.getSel(),a.removeAllRanges(),a.addRange(t),u.$("*[data-mce-selected]").removeAttr("data-mce-selected"),n.setAttribute("data-mce-selected",1),ce=n,re(),t)):null)}function te(){ce&&(ce.removeAttribute("data-mce-selected"),u.$("#"+ue).remove(),ce=null)}function ne(){le.destroy(),ce=null}function re(){le.hide()}var ie=u.getBody(),oe=new t(ie),ae=y(g,oe.next),se=y(g,oe.prev),le=new o(u.getBody(),S),ue="sel-"+u.dom.uniqueId(),ce,de=u.$;return e.ceFalse&&(G(),J()),{showBlockCaretContainer:W,hideFakeCaret:re,destroy:ne}}var y=f.curry,b=l.isContentEditableTrue,C=l.isContentEditableFalse,x=l.isElement,w=i.isAfterContentEditableFalse,E=i.isBeforeContentEditableFalse,N=u.getSelectedNode;return v}),r(it,[],function(){var e=0,t=function(){var e=function(){return Math.round(4294967295*Math.random()).toString(36)},t=(new Date).getTime();return"s"+t.toString(36)+e()+e()+e()},n=function(n){return n+e++ +t()};return{uuid:n}}),r(ot,[],function(){var e=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r};return{add:e}}),r(at,[w,g,N,R,A,O,P,Y,J,te,ne,re,le,ue,E,f,Le,Ie,B,L,ze,d,m,c,Ue,We,Ve,Ge,rt,it,ot,Ke],function(e,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,C,x,w,E,N,_,S,k,T,R,A,B,D){function L(e,t,i){var o=this,a,s,l;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,l=i.defaultSettings,t=H({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},l,t),l&&l.external_plugins&&t.external_plugins&&(t.external_plugins=H({},l.external_plugins,t.external_plugins)),o.settings=t,r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.setDirty(!1),o.plugins={},o.documentBaseURI=new h(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new k(o),o.loadedCSS={},o.editorCommands=new p(o),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,o.settings.content_editable=o.inline,t.cache_suffix&&(w.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),t.override_viewport===!1&&(w.overrideViewPort=!1),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var M=e.DOM,P=r.ThemeManager,O=r.PluginManager,H=E.extend,I=E.each,F=E.explode,z=E.inArray,U=E.trim,W=E.resolve,V=g.Event,$=w.gecko,q=w.ie;return L.prototype={render:function(){function e(){M.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!P.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",P.load(r.theme,t)}E.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),I(r.external_plugins,function(e,t){O.load(t,e),r.plugins+=" "+t}),I(r.plugins.split(/[ ,]/),function(e){if(e=U(e),e&&!O.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=O.dependencies(e);I(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=O.createUrl(t,e),O.load(e.resource,e)})}else O.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()},n,function(e){D.pluginLoadError(n,e[0]),n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!V.domLoaded)return void M.bind(window,"ready",e);if(n.getElement()&&w.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||M.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(M.insertAfter(M.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},M.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.setDirty(!1),a._mceOldSubmit(a)})),n.windowManager=new v(n),n.notificationManager=new y(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=M.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),n.editorManager.add(n),t()}},init:function(){function e(n){var r=O.get(n),i,o;if(i=O.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=U(n),r&&z(m,n)===-1){if(I(O.dependencies(n),function(t){e(t)}),t.plugins[n])return;o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n))}}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,u,c,d,f,p,h,m=[];if(t.rtl=n.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(n.language),n.aria_label=n.aria_label||M.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),u=P.get(n.theme),t.theme=new u(t,P.urls[n.theme]),t.theme.init&&t.theme.init(t,P.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),I(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),o<a&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&I(F(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();if(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!w.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',!/#$/.test(document.location.href))for(h=0;h<t.contentCSS.length;h++){var g=t.contentCSS[h];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+E._addCacheSuffix(g)+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",d.indexOf("=")!=-1&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",f.indexOf("=")!=-1&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&w.ie&&w.ie<12&&(c=v);var y=M.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},M.setAttrib(y,"src",c||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=M.add(l.iframeContainer,y),q)try{t.getDoc()}catch(b){s.src=c=v}l.editorContainer&&(M.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=M.isHidden(l.editorContainer)),t.getElement().style.display="none",M.setAttrib(t.id,"aria-hidden",!0),c||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),p=n.getDoc(),h,m;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();M.removeClass(e,"mce-content-body"),M.removeClass(e,"mce-edit-focus"),M.setAttrib(e,"contentEditable",null)}),M.addClass(s,"mce-content-body"),n.contentDocument=p=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),h=n.getBody(),h.disabled=!0,n.readonly=r.readonly,n.readonly||(n.inline&&"static"==M.getStyle(h,"position",!0)&&(h.style.position="relative"),h.contentEditable=n.getParam("content_editable_state",!0)),h.disabled=!1,n.editorUpload=new T(n),n.schema=new b(r),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new C(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)if(i=e[r],
a=i.attr(t),s="data-mce-"+t,!i.attributes.map[s]){if(0===a.indexOf("data:")||0===a.indexOf("blob:"))continue;"style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name))}}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("type")||"no/type",0!==r.indexOf("mce-")&&n.attr("type","mce-"+r)}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&0===r.getAll("br").length&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new u(n),n.undoManager=new c(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n._nodeChangeDispatcher=new i(n),n._selectionOverrides=new R(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(p.body.spellcheck=!1,M.setAttrib(h,"spellcheck","false")),n.quirks=new x(n),n.fire("PostRender"),r.directionality&&(h.dir=r.directionality),r.nowrap&&(h.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){I(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|<br \/>|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.on("compositionstart compositionend",function(e){n.composing="compositionstart"===e.type}),n.contentStyles.length>0&&(m="",I(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),I(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&N.setEditorTimeout(n,function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.destroyed||e.focus()},100),s=p=h=null},focus:function(e){function t(e){return n.dom.getParent(e,function(e){return"true"===n.dom.getContentEditable(e)})}var n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l=n.getBody(),u;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n.quirks.refreshContentEditable(),u=t(r.getNode()),n.$.contains(l,u))return u.focus(),r.normalize(),void n.editorManager.setActive(n);if(i||(w.opera||n.getBody().focus(),n.getWin().focus()),$||i){if(l.setActive)try{l.setActive()}catch(c){l.focus()}else n.inline&&document.activeElement!==l&&n.selection.setRng(n.lastRng),l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.setActive(n)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?W(r):0,n=W(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?(e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}),this.editorManager.translate(e)):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?I(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),e.length>1?i[U(e[0])]=U(e[1]):i[U(e[0])]=U(e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return B.add(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addContextToolbar:function(e,t){var n=this,r;n.contextToolbars=n.contextToolbars||[],"string"==typeof e&&(r=e,e=function(e){return n.dom.is(e,r)}),n.contextToolbars.push({id:A.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(M.show(e.getContainer()),M.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(q&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(M.hide(e.getContainer()),M.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;if(r)return e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),"raw"==e.format&&t.fire("RawSaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=M.getParent(t.id,"form"))&&I(i.elements,function(e){if(e.name==t.id)return e.value=r,!1})),e.element=n=null,e.set_dirty!==!1&&t.setDirty(!1),r},setContent:function(e,t){var n=this,r=n.getBody(),i,o;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(o=q&&q<11?"":'<br data-mce-bogus="1">',"TABLE"==r.nodeName?e="<tr><td>"+o+"</td></tr>":/^(UL|OL)$/.test(r.nodeName)&&(e="<li>"+o+"</li>"),i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=o,e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):q||e||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=U(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?E.trim(t.serializer.getTrimmedContent()):"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),"text"!=e.format?e.content=U(n):e.content=n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=H({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!=t&&this.fire("dirty")},setMode:function(e){S.setMode(this,e)},getContainer:function(){var e=this;return e.container||(e.container=M.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=M.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),I(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&M.remove(e.getElement().nextSibling),e.inline||(q&&q<10&&e.getDoc().execCommand("SelectAll",!1,null),M.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),M.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),M.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},H(L.prototype,_),L}),r(st,[m],function(e){var t={},n="en";return{setCode:function(e){e&&(n=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return n},rtl:!1,add:function(e,n){var r=t[e];r||(t[e]=r={});for(var i in n)r[i]=n[i];this.setCode(e)},translate:function(r){function i(t){return e.is(t,"function")?Object.prototype.toString.call(t):o(t)?"":""+t}function o(t){return""===t||null===t||e.is(t,"undefined")}function a(t){return t=i(t),e.hasOwn(s,t)?i(s[t]):t}var s=t[n]||{};if(o(r))return"";if(e.is(r,"object")&&e.hasOwn(r,"raw"))return i(r.raw);if(e.is(r,"array")){var l=r.slice(1);r=a(r[0]).replace(/\{([0-9]+)\}/g,function(t,n){return e.hasOwn(l,n)?i(l[n]):t})}return a(r).replace(/{context:\w+}$/,"")},data:t}}),r(lt,[w,c,d],function(e,t,n){function r(e){function r(){try{return document.activeElement}catch(e){return document.body}}function u(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function d(d){var f=d.editor;f.on("init",function(){(f.inline||n.ie)&&("onbeforedeactivate"in document&&n.ie<9?f.dom.bind(f.getBody(),"beforedeactivate",function(e){if(e.target==f.getBody())try{f.lastRng=f.selection.getRng()}catch(t){}}):f.on("nodechange mouseup keyup",function(e){var t=r();"nodechange"==e.type&&e.selectionChange||(t&&t.id==f.id+"_ifr"&&(t=f.getBody()),f.dom.isChildOf(t,f.getBody())&&(f.lastRng=f.selection.getRng()))}),n.webkit&&!i&&(i=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(f.lastRng=n)}},s.bind(document,"selectionchange",i)))}),f.on("setcontent",function(){f.lastRng=null}),f.on("mousedown",function(){f.selection.lastFocusBookmark=null}),f.on("focusin",function(){var t=e.focusedEditor,n;f.selection.lastFocusBookmark&&(n=c(f,f.selection.lastFocusBookmark),f.selection.lastFocusBookmark=null,f.selection.setRng(n)),t!=f&&(t&&t.fire("blur",{focusedEditor:f}),e.setActive(f),e.focusedEditor=f,f.fire("focus",{blurredEditor:t}),f.focus(!0)),f.lastRng=null}),f.on("focusout",function(){t.setEditorTimeout(f,function(){var t=e.focusedEditor;l(f,r())||t!=f||(f.fire("blur",{focusedEditor:null}),e.focusedEditor=null,f.selection&&(f.selection.lastFocusBookmark=null))})}),o||(o=function(t){var n=e.activeEditor,r;r=t.target,n&&r.ownerDocument==document&&(n.selection&&r!=n.getBody()&&(n.selection.lastFocusBookmark=u(n.dom,n.lastRng)),r==document.body||l(n,r)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},s.bind(document,"focusin",o)),f.inline&&!a&&(a=function(t){var n=e.activeEditor,r=n.dom;if(n.inline&&r&&!r.isChildOf(t.target,n.getBody())){var i=n.selection.getRng();i.collapsed||(n.lastRng=i)}},s.bind(document,"mouseup",a))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(s.unbind(document,"selectionchange",i),s.unbind(document,"focusin",o),s.unbind(document,"mouseup",a),i=o=a=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var i,o,a,s=e.DOM,l=function(e,t){var n=e?e.settings.custom_ui_selector:"",i=s.getParent(t,function(t){return r.isEditorUIElement(t)||!!n&&e.dom.is(t,n)});return null!==i};return r.isEditorUIElement=function(e){return e.className.toString().indexOf("mce-")!==-1},r._isUIElement=l,r}),r(ut,[at,g,w,ue,d,m,u,pe,st,lt,N],function(e,t,n,r,i,o,a,s,l,u,c){function d(e){v(x.editors,function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})}function f(e,n){n!==w&&(n?t(window).on("resize scroll",d):t(window).off("resize scroll",d),w=n)}function p(e){var t=x.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return x.activeEditor==e&&(x.activeEditor=t[0]),x.focusedEditor==e&&(x.focusedEditor=null),n}function h(e){return e&&e.initialized&&!(e.getContainer()||e.getBody()).parentNode&&(p(e),e.unbindAllNativeEvents(),e.destroy(!0),e.removed=!0,e=null),e}var m=n.DOM,g=o.explode,v=o.each,y=o.extend,b=0,C,x,w=!1;return x={$:t,majorVersion:"4",minorVersion:"5.11",releaseDate:"2019-05-16",editors:[],i18n:l,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=r.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){a=s[l].src;var c=a.substring(a.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){c.indexOf(".min")!=-1&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}}!t&&document.currentScript&&(a=document.currentScript.src,a.indexOf(".min")!=-1&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new u(e)},overrideDefaults:function(e){var t,n;t=e.base_url,t&&(this.baseURL=new r(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new r(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n),this.defaultSettings=e;var i=e.plugin_base_urls;for(var o in i)c.PluginManager.urls[o]=i[o]},init:function(n){function r(e,t){return e.inline&&t.tagName.toLowerCase()in C}function i(e,t){window.console&&!window.test&&window.console.log(e,t)}function s(e){var t=e.id;return t||(t=e.name,t=t&&!m.get(t)?e.name:m.uniqueId(),e.setAttribute("id",t)),t}function l(e){var t=n[e];if(t)return t.apply(f,Array.prototype.slice.call(arguments,2))}function u(e,t){return t.constructor===RegExp?t.test(e.className):m.hasClass(e,t)}function c(e){var t,n=[];if(e.types)return v(e.types,function(e){n=n.concat(m.select(e.selector))}),n;if(e.selector)return m.select(e.selector);if(e.target)return[e.target];switch(e.mode){case"exact":t=e.elements||"",t.length>0&&v(g(t),function(e){var t;(t=m.get(e))?n.push(t):v(document.forms,function(t){v(t.elements,function(t){t.name===e&&(e="mce_editor_"+b++,m.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":v(m.select("textarea"),function(t){e.editor_deselector&&u(t,e.editor_deselector)||e.editor_selector&&!u(t,e.editor_selector)||n.push(t)})}return n}function d(){function a(t,n,r){var i=new e(t,n,f);p.push(i),i.on("init",function(){++u===g.length&&x(p)}),i.targetElm=i.targetElm||r,i.render()}var u=0,p=[],g;return m.unbind(window,"ready",d),l("onpageload"),g=t.unique(c(n)),n.types?void v(n.types,function(e){o.each(g,function(t){return!m.is(t,e.selector)||(a(s(t),y({},n,e),t),!1)})}):(o.each(g,function(e){h(f.get(e.id))}),g=o.grep(g,function(e){return!f.get(e.id)}),void v(g,function(e){r(n,e)?i("Could not initialize inline editor on invalid inline target element",e):a(s(e),n,e)}))}var f=this,p,C;C=o.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var x=function(e){p=e};return f.settings=n,m.bind(window,"ready",d),new a(function(e){p?e(p):x=function(t){e(t)}})},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),f(n,!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),C||(C=function(){t.fire("BeforeUnload")},m.bind(window,"beforeunload",C)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void v(m.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(p(i)&&t.fire("RemoveEditor",{editor:i}),r.length||m.unbind(window,"beforeunload",C),i.remove(),f(r,r.length>0),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return!!i.activeEditor&&i.activeEditor.execCommand(t,n,r)},triggerSave:function(){v(this.editors,function(e){e.save()})},addI18n:function(e,t){l.add(e,t)},translate:function(e){return l.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},y(x,s),x.setup(),window.tinymce=window.tinyMCE=x,x}),r(ct,[ut,m],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(n,r){"html4"===t.settings.schema&&e(r,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(dt,[pe,m],function(e,t){var n={send:function(e){function r(){!e.async||4==i.readyState||o++>1e4?(e.success&&o<1e4&&200==i.status?e.success.call(e.success_scope,""+i.responseText,i,e):e.error&&e.error.call(e.error_scope,o>1e4?"TIMED_OUT":"GENERAL",i,e),i=null):setTimeout(r,10)}var i,o=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async!==!1,e.data=e.data||"",n.fire("beforeInitialize",{settings:e}),i=new XMLHttpRequest){if(i.overrideMimeType&&i.overrideMimeType(e.content_type),i.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(i.withCredentials=!0),e.content_type&&i.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&t.each(e.requestheaders,function(e){i.setRequestHeader(e.key,e.value)}),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i=n.fire("beforeSend",{xhr:i,settings:e}).xhr,i.send(e.data),!e.async)return r();setTimeout(r,10)}}};return t.extend(n,e),n}),r(ft,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb\tt\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(pt,[ft,dt,m],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ht,[w],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(mt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?c+e:i.indexOf(",",c),r===-1||r>i.length?null:(n=i.substring(c,r),c=r+1,n)}var r,i,s,c=0;if(a={},u){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(u){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,u;try{if(window.localStorage)return localStorage}catch(c){}return l="tinymce",o=document.documentElement,u=!!o.addBehavior,u&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(gt,[w,f,E,N,m,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each("trim isArray is toArray makeMap each map grep inArray extend create walk createNS resolve explode _addCacheSuffix".split(" "),function(e){a[e]=i[e]}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(vt,[ce,m],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t=this,n=t.settings,r,i,o,a;r=n.firstControlClass,i=n.lastControlClass,e.each(function(e){e.classes.remove(r).remove(i).add(n.controlClass),e.visible()&&(o||(o=e),a=e)}),o&&o.classes.add(r),a&&a.classes.add(i)},renderHtml:function(e){var t=this,n="";return t.applyClasses(e.items()),e.items().each(function(e){n+=e.renderHtml()}),n},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),r(yt,[vt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(bt,[Pe],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t._super(e),e=t.settings,n=t.settings.size,t.on("click mousedown",function(e){e.preventDefault()}),t.on("touchstart",function(e){t.fire("click",e),e.preventDefault()}),e.subtype&&t.classes.add(e.subtype),n&&t.classes.add("btn-"+n),e.icon&&t.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e=this.getEl().firstChild,t;e&&(t=e.style,t.width=t.height="100%"),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("icon"),i,o=e.state.get("text"),a="";return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),r=r?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+a+"</button></div>"},bindStates:function(){function e(e){var i=n("span."+r,t.getEl());e?(i[0]||(n("button:first",t.getEl()).append('<span class="'+r+'"></span>'),i=n("span."+r,t.getEl())),i.html(t.encode(e))):i.remove(),t.classes.toggle("btn-has-text",!!e)}var t=this,n=t.$,r=t.classPrefix+"txt";return t.state.on("change:text",function(t){e(t.value)}),t.state.on("change:icon",function(n){var r=n.value,i=t.classPrefix;t.settings.icon=r,r=r?i+"ico "+i+"i-"+t.settings.icon:"";var o=t.getEl().firstChild,a=o.getElementsByTagName("i")[0];r?(a&&a==o.firstChild||(a=document.createElement("i"),o.insertBefore(a,o.firstChild)),a.className=r):a&&o.removeChild(a),e(t.state.get("text"))}),t._super()}})}),r(Ct,[Ne],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(xt,[Pe],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){function e(e){t.classes.toggle("checked",e),t.aria("checked",e)}var t=this;return t.state.on("change:text",function(e){t.getEl("al").firstChild.data=t.translate(e.value)}),t.state.on("change:checked change:value",function(n){t.fire("change"),e(n.value)}),t.state.on("change:icon",function(e){var n=e.value,r=t.classPrefix;if("undefined"==typeof n)return t.settings.icon;t.settings.icon=n,n=n?r+"ico "+r+"i-"+t.settings.icon:"";var i=t.getEl().firstChild,o=i.getElementsByTagName("i")[0];n?(o&&o==i.firstChild||(o=document.createElement("i"),i.insertBefore(o,i.firstChild)),o.className=n):o&&i.removeChild(o)}),t.state.get("checked")&&e(!0),t._super()}})}),r(wt,[Pe,we,ve,g,I,m],function(e,t,n,r,i,o){return e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,o=t.getEl();if(r.contains(o,i)||i==o)for(;i&&i!=o;)i.id&&i.id.indexOf("-open")!=-1&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){var n;13==e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){if("INPUT"==e.target.nodeName){var n=t.state.get("value"),r=e.target.value;r!==n&&(t.state.set("value",r),t.fire("autocomplete",e))}}),t.on("mouseover",function(e){var n=t.tooltip().moveTo(-65535);if(t.statusLevel()&&e.target.className.indexOf(t.classPrefix+"status")!==-1){var r=t.statusMessage()||"Ok",i=n.text(r).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);n.classes.toggle("tooltip-n","bc-tc"==i),n.classes.toggle("tooltip-nw","bc-tl"==i),n.classes.toggle("tooltip-ne","bc-tr"==i),n.moveRel(e.target,i)}})},statusLevel:function(e){return arguments.length>0&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return arguments.length>0&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),i=e.getEl("open"),o=e.layoutRect(),a,s,l=0,u=t.firstChild;e.statusLevel()&&"none"!==e.statusLevel()&&(l=parseInt(n.getRuntimeStyle(u,"padding-right"),10)-parseInt(n.getRuntimeStyle(u,"padding-left"),10)),a=i?o.w-n.getSize(i).width-10:o.w-10;var c=document;return c.all&&(!c.documentMode||c.documentMode<=8)&&(s=e.layoutRect().h-2+"px"),r(u).css({width:a-l,lineHeight:s}),e._super(),e},postRender:function(){var e=this;return r(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.state.get("value")||"",o,a,s="",l="",u="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),u='<i id="'+t+'-status" class="mce-status mce-ico" style="display: none"></i>',e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e.state.get("text"),(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",
e.classes.add("has-open")),'<div id="'+t+'" class="'+e.classes+'"><input id="'+t+'-inp" class="'+r+'textbox" value="'+e.encode(i,!1)+'" hidefocus="1"'+l+' placeholder="'+e.encode(n.placeholder)+'" />'+u+s+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(e,n){var r=this;if(0===e.length)return void r.hideMenu();var i=function(e,t){return function(){r.fire("selectitem",{title:t,value:e})}};r.menu?r.menu.items().remove():r.menu=t.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),o.each(e,function(e){r.menu.add({text:e.title,url:e.previewUrl,match:n,classes:"menu-item-ellipsis",onclick:i(e.value,e.title)})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var a=r.layoutRect().w;r.menu.layoutRect({w:a,minW:0,maxW:a}),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var e=this;e.state.on("change:value",function(t){e.getEl("inp").value!=t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e.state.on("change:statusLevel",function(t){var r=e.getEl("status"),i=e.classPrefix,o=t.value;n.css(r,"display","none"===o?"none":""),n.toggleClass(r,i+"i-checkmark","ok"===o),n.toggleClass(r,i+"i-warning","warn"===o),n.toggleClass(r,i+"i-error","error"===o),e.classes.toggle("has-status","none"!==o),e.repaint()}),n.on(e.getEl("status"),"mouseleave",function(){e.tooltip().hide()}),e.on("cancel",function(t){e.menu&&e.menu.visible()&&(t.stopPropagation(),e.hideMenu())});var t=function(e,t){t&&t.items().length>0&&t.items().eq(e)[0].focus()};return e.on("keydown",function(n){var r=n.keyCode;"INPUT"===n.target.nodeName&&(r===i.DOWN?(n.preventDefault(),e.fire("autocomplete"),t(0,e.menu)):r===i.UP&&(n.preventDefault(),t(-1,e.menu)))}),e._super()},remove:function(){r(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}})}),r(Et,[wt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(r){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}})}),r(Nt,[bt,Ae],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(_t,[Nt,w],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("text"),i=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",a="";return r&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(r)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(St,[],function(){function e(e){function i(e,i,o){var a,s,l,u,c,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,c=t(e,t(i,o)),d=n(e,n(i,o)),c==d?(l=c,{h:0,s:0,v:100*l}):(u=e==c?i-o:o==c?e-i:o-e,a=e==c?3:o==c?1:5,a=60*(a-u/(d-c)),s=(d-c)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,u;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=p=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),u=o-s,Math.floor(a)){case 0:d=s,f=l,p=0;break;case 1:d=l,f=s,p=0;break;case 2:d=0,f=s,p=l;break;case 3:d=0,f=l,p=s;break;case 4:d=l,f=0,p=s;break;case 5:d=s,f=0,p=l;break;default:d=f=p=0}d=r(255*(d+u)),f=r(255*(f+u)),p=r(255*(p+u))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(p)}function s(){return{r:d,g:f,b:p}}function l(){return i(d,f,p)}function u(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,p=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),p=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),p=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),p=parseInt(t[3]+t[3],16)),d=d<0?0:d>255?255:d,f=f<0?0:f>255?255:f,p=p<0?0:p>255?255:p,c}var c=this,d=0,f=0,p=0;e&&u(e),c.toRgb=s,c.toHsv=l,c.toHex=a,c.parse=u}var t=Math.min,n=Math.max,r=Math.round;return e}),r(kt,[Pe,_e,ve,St],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(p,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),u.s=100*n.x,u.v=100*(1-n.y),i(u),s.fire("change")}function a(t){var n;n=e(c,t),u=l.toHsv(),u.h=360*(1-n.y),i(u,!0),s.fire("change")}var s=this,l=s.color(),u,c,d,f,p;c=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),p=s.getEl("svp"),s._repaint=function(){u=l.toHsv(),i(u)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;e<t;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(Tt,[Pe],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes+'">'+e._getDataPathHtml(e.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t=this,n=e||[],r,i,o="",a=t.classPrefix;for(r=0,i=n.length;r<i;r++)o+=(r>0?'<div class="'+a+'divider" aria-hidden="true"> '+t.settings.delimiter+" </div>":"")+'<div role="button" class="'+a+"path-item"+(r==i-1?" "+a+"last":"")+'" data-index="'+r+'" tabindex="-1" id="'+t._id+"-"+r+'" aria-level="'+(r+1)+'">'+n[r].name+"</div>";return o||(o='<div class="'+a+'path-item">\xa0</div>'),o}})}),r(Rt,[Tt],function(e){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var t=this,n=t.settings.editor;return n.settings.elementpath!==!1&&(t.on("select",function(e){n.focus(),n.selection.select(this.row()[e.index].element),n.nodeChanged()}),n.on("nodeChange",function(r){for(var i=[],o=r.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=n.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}t.row(i)})),t._super()}})}),r(At,[Ne],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Bt,[Ne,At,m],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.fromJSON(e.settings.data)},bindStates:function(){function e(){var e=0,n=[],r,i,o;if(t.settings.labelGapCalc!==!1)for(o="children"==t.settings.labelGapCalc?t.find("formitem"):t.items(),o.filter("formitem").each(function(t){var r=t.items()[0],i=r.getEl().clientWidth;e=i>e?i:e,n.push(r)}),i=t.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=e+i}var t=this;t._super(),t.on("show",e),e()}})}),r(Dt,[Bt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Lt,[w,z,h,it,m,_],function(e,t,n,r,i,o){var a=i.trim,s=function(e,t,n,r,i){return{type:e,title:t,url:n,level:r,attach:i}},l=function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return o.isContentEditableTrue(e)}return!1},u=function(t,n){return e.DOM.select(t,n)},c=function(e){return e.innerText||e.textContent},d=function(e){return e.id?e.id:r.uuid("h")},f=function(e){return e&&"A"===e.nodeName&&(e.id||e.name)},p=function(e){return f(e)&&m(e)},h=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},m=function(e){return l(e)&&!o.isContentEditableFalse(e)},g=function(e){return h(e)&&m(e)},v=function(e){return h(e)?parseInt(e.nodeName.substr(1),10):0},y=function(e){var t=d(e),n=function(){e.id=t};return s("header",c(e),"#"+t,v(e),n)},b=function(e){var n=e.id||e.name,r=c(e);return s("anchor",r?r:"#"+n,"#"+n,0,t.noop)},C=function(e){return n.map(n.filter(e,g),y)},x=function(e){return n.map(n.filter(e,p),b)},w=function(e){var t=u("h1,h2,h3,h4,h5,h6,a:not([href])",e);return t},E=function(e){return a(e.title).length>0},N=function(e){var t=w(e);return n.filter(C(t).concat(x(t)),E)};return{find:N}}),r(Mt,[wt,m,h,z,I,Lt],function(e,t,n,r,i,o){var a={},s=5,l=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},u=function(e){return t.map(e,l)},c=function(e,t){return{title:e,value:{title:e,url:t,attach:r.noop}}},d=function(e,t){var r=n.find(t,function(t){return t.url===e});return!r},f=function(e,t,n){var r=t in e?e[t]:n;return r===!1?null:r},p=function(e,i,o,s){var l={title:"-"},p=function(e){var a=n.filter(e[o],function(e){return d(e,i)});return t.map(a,function(e){return{title:e,value:{title:e,url:e,attach:r.noop}}})},h=function(e){var t=n.filter(i,function(t){return t.type==e});return u(t)},g=function(){var e=h("anchor"),t=f(s,"anchor_top","#top"),n=f(s,"anchor_bottom","#bottom");return null!==t&&e.unshift(c("<top>",t)),null!==n&&e.push(c("<bottom>",n)),e},v=function(e){return n.reduce(e,function(e,t){var n=0===e.length||0===t.length;return n?e.concat(t):e.concat(l,t)},[])};return s.typeahead_urls===!1?[]:"file"===o?v([m(e,p(a)),m(e,h("header")),m(e,g())]):m(e,p(a))},h=function(e,t){var r=a[t];/^https?/.test(e)&&(r?n.indexOf(r,e)===-1&&(a[t]=r.slice(0,s).concat(e)):a[t]=[e])},m=function(e,n){var r=e.toLowerCase(),i=t.grep(n,function(e){return e.title.toLowerCase().indexOf(r)!==-1});return 1===i.length&&i[0].title===e?[]:i},g=function(e){var t=e.title;return t.raw?t.raw:t},v=function(e,t,n,r){var i=function(i){var a=o.find(n),s=p(i,a,r,t);e.showAutoComplete(s,i)};e.on("autocomplete",function(){i(e.value())}),e.on("selectitem",function(t){var n=t.value;e.value(n.url);var i=g(n);"image"===r?e.fire("change",{meta:{alt:i,attach:n.attach}}):e.fire("change",{meta:{text:i,attach:n.attach}}),e.focus()}),e.on("click",function(t){0===e.value().length&&"INPUT"===t.target.nodeName&&i("")}),e.on("PostRender",function(){e.getRoot().on("submit",function(t){t.isDefaultPrevented()||h(e.value(),r)})})},y=function(e){var t=e.status,n=e.message;return"valid"===t?{status:"ok",message:n}:"unknown"===t?{status:"warn",message:n}:"invalid"===t?{status:"warn",message:n}:{status:"none",message:""}},b=function(e,t,n){var r=t.filepicker_validator_handler;if(r){var i=function(t){return 0===t.length?void e.statusLevel("none"):void r({url:t,type:n},function(t){var n=y(t);e.statusMessage(n.message),e.statusLevel(n.status)})};e.state.on("change:value",function(e){i(e.value)})}};return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s,l=e.filetype;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),s&&!s[l]||(a=i.file_picker_callback,!a||s&&!s[l]?(a=i.file_browser_callback,!a||s&&!s[l]||(o=function(){a(n.getEl("inp").id,n.value(),l,window)})):o=function(){var e=n.fire("beforecall").meta;e=t.extend({filetype:l},e),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),e)}),o&&(e.icon="browse",e.onaction=o),n._super(e),v(n,i,r.getBody(),l),b(n,i,l)}})}),r(Pt,[yt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Ot,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v=[],y,b,C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F,z=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e.paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,u=a.spacing||0,"row-reversed"!=f&&"column-reverse"!=f||(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",_="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",O="left",M="w",D="x",L="innerW",P="minW",H="right",I="deltaW",F="contentW"):(S="x",N="w",_="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",O="top",M="h",D="y",L="innerH",P="minH",H="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],E=c=0,t=0,n=r.length;t<n;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=t<n-1?u:0,g>0&&(c+=g,h[k]&&v.push(p),h.flex=g),d-=h[_],y=o[O]+h[P]+o[H],y>E&&(E=y);if(x={},d<0?x[_]=i[_]-d+i[A]:x[_]=i[R]-d+i[A],x[P]=E+i[I],x[B]=i[R]-d,x[F]=E,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/c,t=0,n=v.length;t<n;t++)p=v[t],h=p.layoutRect(),b=h[k],y=h[_]+h.flex*C,y>b?(d-=h[k]-h[_],c-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/c,w=o[T],x={},0===c&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],w<0&&(w=o[T])):"justify"==l&&(w=o[T],u=Math.floor(d/(r.length-1)))),x[D]=o[O],t=0,n=r.length;t<n;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[_],"center"===s?x[D]=Math.round(i[L]/2-h[M]/2):"stretch"===s?(x[M]=z(h[P]||0,i[L]-o[O]-o[H]),x[D]=o[O]):"end"===s&&(x[D]=i[L]-h[M]-o.top),h.flex>0&&(y+=h.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+u}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var W=e.parent();W&&(W._lastRect=null,W.recalc())}}})}),r(Ht,[vt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}})}),r(It,[w],function(e){var n=function(e,t,n){for(;n!==t;){if(n.style[e])return n.style[e];n=n.parentNode}return""},r=function(e){return/[0-9.]+px$/.test(e)?Math.round(72*parseInt(e,10)/96)+"pt":e},i=function(e){return e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")},o=function(t,n){return e.DOM.getStyle(n,t,!0)},a=function(e,t){var r=n("fontSize",e,t);return""!==r?r:o("fontSize",t)},s=function(e,r){var a=n("fontFamily",e,r),s=""!==a?a:o("fontFamily",r);return s!==t?i(s):""};return{getFontSize:a,getFontFamily:s,toPt:r}}),r(Ft,[xe,Pe,Ae,m,h,w,ut,d,It],function(e,t,n,r,i,o,a,s,l){function u(e){e.settings.ui_container&&(s.container=o.DOM.select(e.settings.ui_container)[0])}function c(t){t.on("ScriptsLoaded",function(){t.rtl&&(e.rtl=!0)})}function d(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;f(i.parents,function(e){if(f(t,function(t){if(n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a)return!1}),a)return!1}),r.value(a)})}}function i(t){return function(){var n=this,r=function(e){return e?e.split(",")[0]:""};e.on("nodeChange",function(i){var o,a=null;o=l.getFontFamily(e.getBody(),i.element),f(t,function(e){e.value.toLowerCase()===o.toLowerCase()&&(a=e.value)}),f(t,function(e){a||r(e.value).toLowerCase()!==r(o).toLowerCase()||(a=e.value)}),n.value(a),!a&&o&&n.text(r(o))})}}function o(t){return function(){var n=this;e.on("nodeChange",function(r){var i,o,a=null;i=l.getFontSize(e.getBody(),r.element),o=l.toPt(i),f(t,function(e){e.value===i?a=i:e.value===o&&(a=o)}),n.value(a),a||n.text(o)})}}function a(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function s(){function t(e){var n=[];if(e)return f(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){f(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return e.formatter.getCssText(this.settings.format)},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&h(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function u(t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}}function c(t){return function(){function n(){var n="redo"==t?"hasRedo":"hasUndo";return!!e.undoManager&&e.undoManager[n]()}var r=this;r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){r.disabled(e.readonly||!n())})}}function d(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function h(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}function m(t){var n=t.length;return r.each(t,function(t){t.menu&&(t.hidden=0===m(t.menu));var r=t.format;r&&(t.hidden=!e.formatter.canApply(r)),t.hidden&&n--}),n}function g(t){var n=t.items().length;return t.items().each(function(t){t.menu&&t.visible(g(t.menu)>0),!t.menu&&t.settings.menu&&t.visible(m(t.settings.menu)>0);var r=t.settings.format;r&&t.visible(e.formatter.canApply(r)),t.visible()||n--}),n}var v;v=s(),f({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:u(n),onclick:function(){h(n)}})}),f({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),f({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:u(n)})});var y=function(e){var t=e;return t.length>0&&"-"===t[0].text&&(t=t.slice(1)),t.length>0&&"-"===t[t.length-1].text&&(t=t.slice(0,t.length-1)),t},b=function(t){var n,i;if("string"==typeof t)i=t.split(" ");else if(r.isArray(t))return p(r.map(t,b));return n=r.grep(i,function(t){return"|"===t||t in e.menuItems}),r.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},C=function(t){var n=[{text:"-"}],i=r.grep(e.menuItems,function(e){return e.context===t});return r.each(i,function(e){"before"==e.separator&&n.push({text:"|"}),e.prependToContext?n.unshift(e):n.push(e),"after"==e.separator&&n.push({text:"|"})}),n},x=function(e){return y(e.insert_button_items?b(e.insert_button_items):C("insert"))};e.addButton("undo",{tooltip:"Undo",onPostRender:c("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:c("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:c("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:c("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:d,cmd:"mceToggleVisualAid"}),e.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),e.addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(x(e.settings)),this.menu.renderNew()}}),f({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:v,onShowMenu:function(){e.settings.style_formats_autohide&&g(this.menu)}}),e.addButton("formatselect",function(){var n=[],r=a(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return f(r,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:r[0][0],values:n,fixedWidth:!0,onselect:h,onPostRender:t(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],r=a(e.settings.font_formats||t);return f(r,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:e[1].indexOf("dings")==-1?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:i(n),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",r=e.settings.fontsize_formats||n;return f(r.split(" "),function(e){var n=e,r=e,i=e.split("=");i.length>1&&(n=i[0],r=i[1]),t.push({text:n,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:o(t),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:v})}var f=r.each,p=function(e){return i.reduce(e,function(e,t){return e.concat(t)},[])};a.on("AddEditor",function(e){var t=e.editor;c(t),d(t),u(t)}),e.translate=function(e){return a.translate(e)},t.tooltips=!s.iOS}),r(zt,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,C,x,w,E,N=[],_=[],S,k,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e.paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;d<r;d++)N.push(0);for(f=0;f<n;f++)_.push(0);for(f=0;f<n;f++)for(d=0;d<r&&(c=i[f*r+d],c);d++)u=c.layoutRect(),S=u.minW,k=u.minH,N[d]=S>N[d]?S:N[d],_[f]=k>_[f]?k:_[f];for(T=o.innerW-g.left-g.right,w=0,d=0;d<r;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,E=0,f=0;f<n;f++)E+=_[f]+(f>0?b:0),R-=(f>0?b:0)+_[f];if(w+=g.left+g.right,E+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=E+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d<M.length;d++)L+=M[d];else L=r;var P=T/L;for(d=0;d<r;d++)N[d]+=M?M[d]*P:P;for(h=g.top,f=0;f<n;f++){for(p=g.left,s=_[f]+D,d=0;d<r&&(B=A?f*r+r-1-d:f*r+d,c=i[B],c);d++)m=c.settings,u=c.layoutRect(),a=Math.max(N[d],u.startMinWidth),u.x=p,u.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?u.x=p+a/2-u.w/2:"right"==v?u.x=p+a-u.w:"stretch"==v&&(u.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?u.y=h+s/2-u.h/2:"bottom"==v?u.y=h+s-u.h:"stretch"==v&&(u.h=s),c.layoutRect(u),p+=a+y,c.recalc&&c.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var O=e.parent();O&&(O._lastRect=null,O.recalc())}}})}),r(Ut,[Pe,c],function(e,t){return e.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,n){var r=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,n&&n()):t.setTimeout(function(){r.html(e)}),this}})}),r(Wt,[Pe],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("infobox"),t.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>';
},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Vt,[Pe,ve],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.classes.add("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e=this,t,n,r=e.settings.forId;return!r&&(n=e.settings.forName)&&(t=e.getRoot().find("#"+n)[0],t&&(r=t._id)),r?'<label id="'+e._id+'" class="'+e.classes+'"'+(r?' for="'+r+'"':"")+">"+e.encode(e.state.get("text"))+"</label>":'<span id="'+e._id+'" class="'+e.classes+'">'+e.encode(e.state.get("text"))+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r($t,[Ne],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.classes.add("toolbar")},postRender:function(){var e=this;return e.items().each(function(e){e.classes.add("toolbar-item")}),e._super()}})}),r(qt,[$t],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(jt,[bt,we,qt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(e){var n=this,r;return n.menu&&n.menu.visible()&&e!==!1?n.hideMenu():(n.menu||(r=n.state.get("menu")||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",r.renderTo?n.menu=r.parent(n).show().renderTo():n.menu=t.create(r).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){e.control==n.menu&&n.activeMenu("show"==e.type),n.aria("expanded","show"==e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),void n.fire("showmenu"))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o,a=e.state.get("text"),s="";return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",a&&(e.classes.add("btn-has-text"),s='<span class="'+r+'txt">'+e.encode(a)+"</span>"),i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+s+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.focus(),e.showMenu(!t.aria),t.aria&&e.menu.items().filter(":visible")[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Yt,[Pe,we,d,c],function(e,t,n,r){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this,n;t._super(e),e=t.settings,t.classes.add("menu-item"),e.menu&&t.classes.add("menu-item-expand"),e.preview&&t.classes.add("menu-item-preview"),n=t.state.get("text"),"-"!==n&&"|"!==n||(t.classes.add("menu-item-sep"),t.aria("role","separator"),t.state.set("text","-")),e.selectable&&(t.aria("role","menuitemcheckbox"),t.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.classes.add("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.classes.remove("selected")}),r.submenu=!0),r._parentMenu=i,r.classes.add("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.classes.remove(r._lastRel).add(o),r._lastRel=o,e.classes.add("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){function e(e){var t,r,i={};for(i=n.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)r=i[e[t].toLowerCase()],r&&(e[t]=r);return e.join("+")}function t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function r(e){var n=s.match||"";return n?e.replace(new RegExp(t(n),"gi"),function(e){return"!mce~match["+e+"]mce~match!"}):e}function i(e){return e.replace(new RegExp(t("!mce~match["),"g"),"<b>").replace(new RegExp(t("]mce~match!"),"g"),"</b>")}var o=this,a=o._id,s=o.settings,l=o.classPrefix,u=o.state.get("text"),c=o.settings.icon,d="",f=s.shortcut,p=o.encode(s.url),h="";return c&&o.parent().classes.add("menu-has-icons"),s.image&&(d=" style=\"background-image: url('"+s.image+"')\""),f&&(f=e(f)),c=l+"ico "+l+"i-"+(o.settings.icon||"none"),h="-"!==u?'<i class="'+c+'"'+d+"></i>\xa0":"",u=i(o.encode(r(u))),p=i(o.encode(r(p))),'<div id="'+a+'" class="'+o.classes+'" tabindex="-1">'+h+("-"!==u?'<span id="'+a+'-text" class="'+l+'text">'+u+"</span>":"")+(f?'<div id="'+a+'-shortcut" class="'+l+'menu-shortcut">'+f+"</div>":"")+(s.menu?'<div class="'+l+'caret"></div>':"")+(p?'<div class="'+l+'menu-item-link">'+p+"</div>":"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var i=e.getEl("text");i&&i.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),r.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){var e=this;return e.parent().items().each(function(e){e.classes.remove("selected")}),e.classes.toggle("selected",!0),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Xt,[g,xe,c],function(e,t,n){return function(r,i){var o=this,a,s=t.classPrefix,l;o.show=function(t,u){function c(){a&&(e(r).append('<div class="'+s+"throbber"+(i?" "+s+"throbber-inline":"")+'"></div>'),u&&u())}return o.hide(),a=!0,t?l=n.setTimeout(c,t):c(),o},o.hide=function(){var e=r.lastChild;return n.clearTimeout(l),e&&e.className.indexOf("throbber")!=-1&&e.parentNode.removeChild(e),a=!1,o}}}),r(Kt,[Ae,Yt,Xt,m],function(e,t,n,r){return e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var n=e.items,i=n.length;i--;)n[i]=r.extend({},e.itemDefaults,n[i]);t._super(e),t.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},load:function(){function e(){t.throbber&&(t.throbber.hide(),t.throbber=null)}var t=this,r,i;i=t.settings.itemsFactory,i&&(t.throbber||(t.throbber=new n(t.getEl("body"),!0),0===t.items().length?(t.throbber.show(),t.fire("loading")):t.throbber.show(100,function(){t.items().remove(),t.fire("loading")}),t.on("hide close",e)),t.requestTime=r=(new Date).getTime(),t.settings.itemsFactory(function(n){return 0===n.length?void t.hide():void(t.requestTime===r&&(t.getEl().style.width="",t.getEl("body").style.width="",e(),t.items().remove(),t.getEl("body").innerHTML="",t.add(n),t.renderNew(),t.fire("loaded")))}))},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;if(n.icon||n.image||n.selectable)return e._hasIcons=!0,!1}),e.settings.itemsFactory&&e.on("postrender",function(){e.settings.itemsFactory&&e.load()}),e._super()}})}),r(Gt,[jt,Kt],function(e,t){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value)return o=o||r[a].text,n.state.set("value",r[a].value),!0;if(r[a].menu&&t(r[a].menu))return!0}}var n=this,r,i,o,a;n._super(e),e=n.settings,n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n.state.set("value",r[0].value)),n.state.set("menu",r)),n.state.set("text",e.text||o),n.classes.add("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.value()),a=r})},bindStates:function(){function e(e,n){e instanceof t&&e.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}function n(e,t){var r;if(e)for(var i=0;i<e.length;i++){if(e[i].value===t)return e[i];if(e[i].menu&&(r=n(e[i].menu,t)))return r}}var r=this;return r.on("show",function(t){e(t.control,r.value())}),r.state.on("change:value",function(e){var t=n(r.state.get("menu"),e.value);t?r.text(t.text):r.text(r.settings.text)}),r._super()}})}),r(Jt,[xt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(Qt,[Pe,_e],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"==e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Zt,[Pe],function(e){function t(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}return e.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var t=this;t._super(e),t.settings.size&&(t.size=t.settings.size),t.settings.options&&(t._options=t.settings.options),t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e=this,n,r="";return n=t(e._options),e.size&&(r=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+r+">"+n+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(n){e.getEl().innerHTML=t(n.value)}),e._super()}})}),r(en,[Pe,_e,ve],function(e,t,n){function r(e,t,n){return e<t&&(e=t),e>n&&(e=n),e}function i(e,t,n){e.setAttribute("aria-"+t,n)}function o(e,t){var r,o,a,s,l,u;"v"==e.settings.orientation?(s="top",a="height",o="h"):(s="left",a="width",o="w"),u=e.getEl("handle"),r=(e.layoutRect()[o]||100)-n.getSize(u)[a],l=r*((t-e._minValue)/(e._maxValue-e._minValue))+"px",u.style[s]=l,u.style.height=e.layoutRect().h+"px",i(u,"valuenow",t),i(u,"valuetext",""+e.settings.previewFilter(t)),i(u,"valuemin",e._minValue),i(u,"valuemax",e._maxValue)}return e.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"==e.orientation&&t.classes.add("vertical"),t._minValue=e.minValue||0,t._maxValue=e.maxValue||100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div id="'+t+'-handle" class="'+n+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){function e(e,t,n){return(n+e)/(t-e)}function i(e,t,n){return n*(t-e)-e}function o(t,n){function o(o){var a;a=s.value(),a=i(t,n,e(t,n,a)+.05*o),a=r(a,t,n),s.value(a),s.fire("dragstart",{value:a}),s.fire("drag",{value:a}),s.fire("dragend",{value:a})}s.on("keydown",function(e){switch(e.keyCode){case 37:case 38:o(-1);break;case 39:case 40:o(1)}})}function a(e,i,o){var a,l,u,h,m;s._dragHelper=new t(s._id,{handle:s._id+"-handle",start:function(e){a=e[c],l=parseInt(s.getEl("handle").style[d],10),u=(s.layoutRect()[p]||100)-n.getSize(o)[f],s.fire("dragstart",{value:m})},drag:function(t){var n=t[c]-a;h=r(l+n,0,u),o.style[d]=h+"px",m=e+h/u*(i-e),s.value(m),s.tooltip().text(""+s.settings.previewFilter(m)).show().moveRel(o,"bc tc"),s.fire("drag",{value:m})},stop:function(){s.tooltip().hide(),s.fire("dragend",{value:m})}})}var s=this,l,u,c,d,f,p;l=s._minValue,u=s._maxValue,"v"==s.settings.orientation?(c="screenY",d="top",f="height",p="h"):(c="screenX",d="left",f="width",p="w"),s._super(),o(l,u,s.getEl("handle")),a(l,u,s.getEl("handle"))},repaint:function(){this._super(),o(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){o(e,t.value)}),e._super()}})}),r(tn,[Pe],function(e){return e.extend({renderHtml:function(){var e=this;return e.classes.add("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"></div>'}})}),r(nn,[jt,ve,g],function(e,t,n){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,r=e.getEl(),i=e.layoutRect(),o,a;return e._super(),o=r.firstChild,a=r.lastChild,n(o).css({width:i.w-t.getSize(a).width,height:i.h-2}),n(a).css({height:i.h-2}),e},activeMenu:function(e){var t=this;n(t.getEl().lastChild).toggleClass(t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.state.get("icon"),o=e.state.get("text"),a="";return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(i?'<i class="'+i+'"'+r+"></i>":"")+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(i?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&n.className.indexOf("open")==-1)return e.stopImmediatePropagation(),void(t&&t.call(this,e));n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(rn,[Ht],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),r(on,[ke,g,ve],function(e,t,n){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t(n).removeClass(this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t(n).addClass(this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(n&&n.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,r,i;r=n.getSize(e.getEl("head")).width,r=r<0?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=n.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,t=e._super(),t.deltaH+=o,t.innerH=t.h-t.deltaH,t}})}),r(an,[Pe,m,ve],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("textbox"),e.multiline?t.classes.add("multiline"):(t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){t.state.set("value",e.target.value)}))},repaint:function(){var e=this,t,n,r,i,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e.borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,r=e.settings,i,o;return i={id:e._id,hidefocus:"1"},t.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){i[e]=r[e]}),e.disabled()&&(i.disabled="disabled"),r.subtype&&(i.type=r.subtype),o=n.create(r.multiline?"textarea":"input",i),o.value=e.state.get("value"),o.className=e.classes,o.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!=t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}})}),r(sn,[],function(){var e=this||window,t=function(){return e.tinymce};return"function"==typeof e.define&&(e.define.amd||e.define("ephox/tinymce",[],t)),"object"==typeof module&&(module.exports=window.tinymce),{}}),a([l,u,c,d,f,p,m,g,v,y,C,w,E,N,T,A,B,D,L,M,P,O,I,F,j,Y,J,te,le,ue,ce,de,pe,me,ge,Ce,xe,we,Ee,Ne,_e,Se,ke,Te,Re,Ae,Be,De,Le,Me,Pe,Oe,He,Ie,Ue,Ve,at,st,lt,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,Et,Nt,_t,St,kt,Tt,Rt,At,Bt,Dt,Mt,Pt,Ot,Ht,Ft,zt,Ut,Wt,Vt,$t,qt,jt,Yt,Xt,Kt,Gt,Jt,Qt,Zt,en,tn,nn,rn,on,an])}(window);editors/tinymce/js/tiny-close.min.js000064400000001264152177723720013527 0ustar00document.addEventListener("DOMContentLoaded",function(){"undefined"==typeof window.jModalClose_no_tinyMCE&&(window.jModalClose_no_tinyMCE="function"==typeof jModalClose&&jModalClose,jModalClose=function(){window.jModalClose_no_tinyMCE&&window.jModalClose_no_tinyMCE.apply(this,arguments),tinyMCE.activeEditor.windowManager.close()}),"undefined"==typeof window.SqueezeBoxClose_no_tinyMCE&&("undefined"==typeof SqueezeBox&&(SqueezeBox={}),window.SqueezeBoxClose_no_tinyMCE="function"==typeof SqueezeBox.close&&SqueezeBox.close,SqueezeBox.close=function(){window.SqueezeBoxClose_no_tinyMCE&&window.SqueezeBoxClose_no_tinyMCE.apply(this,arguments),tinyMCE.activeEditor.windowManager.close()})});
editors/tinymce/js/tiny-close.js000064400000002333152177723720012743 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * This is used by tinyMCE in order to allow both mootools and bootstrap modals
 * to close correctly, more tinyMCE related functionality maybe added in the future
 *
 * @package     Joomla
 * @since       3.5.1
 * @version     1.0
 */
document.addEventListener('DOMContentLoaded', function () {
	if (typeof window.jModalClose_no_tinyMCE === 'undefined')
	{
		window.jModalClose_no_tinyMCE = typeof(jModalClose) == 'function'  ?  jModalClose  :  false;

		jModalClose = function () {
			if (window.jModalClose_no_tinyMCE) window.jModalClose_no_tinyMCE.apply(this, arguments);
			tinyMCE.activeEditor.windowManager.close();
		};
	}

	if (typeof window.SqueezeBoxClose_no_tinyMCE === 'undefined')
	{
		if (typeof(SqueezeBox) == 'undefined')  SqueezeBox = {};
		window.SqueezeBoxClose_no_tinyMCE = typeof(SqueezeBox.close) == 'function'  ?  SqueezeBox.close  :  false;

		SqueezeBox.close = function () {
			if (window.SqueezeBoxClose_no_tinyMCE)  window.SqueezeBoxClose_no_tinyMCE.apply(this, arguments);
			tinyMCE.activeEditor.windowManager.close();
		};
	}
});
editors/tinymce/js/tinymce.js000064400000010265152177723720012330 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

;(function(tinyMCE, Joomla, window, document){
	"use strict";

	// This line is for Mootools b/c
	window.getSize = window.getSize || function(){return {x: window.innerWidth, y: window.innerHeight};};

	// @deprecated 4.0 Use directly Joomla.editors.instances[editor].replaceSelection(text);
	window.jInsertEditorText = function ( text, editor ) {
		Joomla.editors.instances[editor].replaceSelection(text);
	};

	var JoomlaTinyMCE = {

		/**
		 * Find all TinyMCE elements and initialize TinyMCE instance for each
		 *
		 * @param {HTMLElement}  target  Target Element where to search for the editor element
		 *
		 * @since 3.7.0
		 */
		setupEditors: function ( target ) {
			target = target || document;
			var pluginOptions = Joomla.getOptions ? Joomla.getOptions('plg_editor_tinymce', {})
					:  (Joomla.optionsStorage.plg_editor_tinymce || {}),
				editors = target.querySelectorAll('.js-editor-tinymce');

			for(var i = 0, l = editors.length; i < l; i++) {
				var editor = editors[i].querySelector('textarea');
				this.setupEditor(editor, pluginOptions);
			}
		},

		/**
		 * Initialize TinyMCE editor instance
		 *
		 * @param {HTMLElement}  element
		 * @param {Object}       pluginOptions
		 *
		 * @since 3.7.0
		 */
		setupEditor: function ( element, pluginOptions ) {
			var name = element ? element.getAttribute('name').replace(/\[\]|\]/g, '').split('[').pop() : 'default', // Get Editor name
			    tinyMCEOptions = pluginOptions ? pluginOptions.tinyMCE || {} : {},
			    defaultOptions = tinyMCEOptions['default'] || {},
			    options = tinyMCEOptions[name] ? tinyMCEOptions[name] : defaultOptions; // Check specific options by the name

			// Avoid an unexpected changes, and copy the options object
			if (options.joomlaMergeDefaults) {
				options = Joomla.extend(Joomla.extend({}, defaultOptions), options);
			} else {
				options = Joomla.extend({}, options);
			}

			if (element) {
				// We already have the Target, so reset the selector and assign given element as target
				options.selector = null;
				options.target   = element;
			}

			// @TODO: the ext-buttons should be as TinyMCE plugins, not the callback hack
			if (options.joomlaExtButtons && options.joomlaExtButtons.names && options.joomlaExtButtons.names.length) {
				options.toolbar1 += ' | ' + options.joomlaExtButtons.names.join(' ');
				var callbackString = options.joomlaExtButtons.script.join(';');
				options.setupCallbackString = options.setupCallbackString || '';
				options.setupCallbackString = options.setupCallbackString + ';' + callbackString;
				options.joomlaExtButtons = null;
			}

			if (options.setupCallbackString && !options.setup) {
				options.setup = new Function('editor', options.setupCallbackString);
			}

			// Create a new instance
			var ed = new tinyMCE.Editor(element.id, options, tinymce.EditorManager);
			ed.render();

			/** Register the editor's instance to Joomla Object */
			Joomla.editors.instances[element.id] = {
				// Required by Joomla's API for the XTD-Buttons
				'getValue': function () { return this.instance.getContent(); },
				'setValue': function (text) { return this.instance.setContent(text); },
				'getSelection': function () { return this.instance.selection.getContent({format: 'text'}); },
				'replaceSelection': function (text) { return this.instance.execCommand('mceInsertContent', false, text); },
				// Some extra instance dependent
				'id': element.id,
				'instance': ed,
				'onSave': function() { if (this.instance.isHidden()) { this.instance.show()}; return '';},
			};

			/** On save **/
			document.getElementById(ed.id).form.addEventListener('submit', function() {
				Joomla.editors.instances[ed.targetElm.id].onSave();
			})
		}

	};

	Joomla.JoomlaTinyMCE = JoomlaTinyMCE;

	// Init on DOMContentLoaded
	document.addEventListener('DOMContentLoaded', function () {
		Joomla.JoomlaTinyMCE.setupEditors();

		// Init in subform field
		if(window.jQuery) {
			jQuery(document).on('subform-row-add', function (event, row) {
				Joomla.JoomlaTinyMCE.setupEditors(row);
			});
		}
	});

}(tinyMCE, Joomla, window, document));
editors/tinymce/js/tinymce.min.js000064400000003547152177723720013117 0ustar00!function(u,l,t,c){"use strict";t.getSize=t.getSize||function(){return{x:t.innerWidth,y:t.innerHeight}},t.jInsertEditorText=function(t,e){l.editors.instances[e].replaceSelection(t)};var e={setupEditors:function(t){t=t||c;for(var e=l.getOptions?l.getOptions("plg_editor_tinymce",{}):l.optionsStorage.plg_editor_tinymce||{},n=t.querySelectorAll(".js-editor-tinymce"),i=0,o=n.length;i<o;i++){var r=n[i].querySelector("textarea");this.setupEditor(r,e)}},setupEditor:function(t,e){var n=t?t.getAttribute("name").replace(/\[\]|\]/g,"").split("[").pop():"default",i=e&&e.tinyMCE||{},o=i.default||{},r=i[n]?i[n]:o;if(r=r.joomlaMergeDefaults?l.extend(l.extend({},o),r):l.extend({},r),t&&(r.selector=null,r.target=t),r.joomlaExtButtons&&r.joomlaExtButtons.names&&r.joomlaExtButtons.names.length){r.toolbar1+=" | "+r.joomlaExtButtons.names.join(" ");var s=r.joomlaExtButtons.script.join(";");r.setupCallbackString=r.setupCallbackString||"",r.setupCallbackString=r.setupCallbackString+";"+s,r.joomlaExtButtons=null}r.setupCallbackString&&!r.setup&&(r.setup=new Function("editor",r.setupCallbackString));var a=new u.Editor(t.id,r,tinymce.EditorManager);a.render(),l.editors.instances[t.id]={getValue:function(){return this.instance.getContent()},setValue:function(t){return this.instance.setContent(t)},getSelection:function(){return this.instance.selection.getContent({format:"text"})},replaceSelection:function(t){return this.instance.execCommand("mceInsertContent",!1,t)},id:t.id,instance:a,onSave:function(){return this.instance.isHidden()&&this.instance.show(),""}},c.getElementById(a.id).form.addEventListener("submit",function(){l.editors.instances[a.targetElm.id].onSave()})}};l.JoomlaTinyMCE=e,c.addEventListener("DOMContentLoaded",function(){l.JoomlaTinyMCE.setupEditors(),t.jQuery&&jQuery(c).on("subform-row-add",function(t,e){l.JoomlaTinyMCE.setupEditors(e)})})}(tinyMCE,Joomla,window,document);
editors/tinymce/js/tinymce-builder.js000064400000024210152177723720013747 0ustar00/**
 * @copyright  Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

;(function($) {
    "use strict";

    /**
     * Fake TinyMCE object to allow to use TinyMCE translation for the button labels
     *
     * @since  3.7.0
     */
    window.tinymce = {
        langCode: 'en',
        langStrings: {},
        addI18n: function (code, strings){
            this.langCode    = code;
            this.langStrings = strings || {};
        },
        translate: function (string){
            return this.langStrings[string] ? this.langStrings[string] : string;
        }
    };

    /**
     * Joomla TinyMCE Builder
     *
     * @param {HTMLElement} container
     * @param {Object}      options
     * @constructor
     *
     * @since  3.7.0
     */
    var JoomlaTinyMCEBuilder = function(container, options) {
        this.$container = $(container);
        this.options    = options;

        // Find source containers
        this.$sourceMenu    = this.$container.find('.timymce-builder-menu.source');
        this.$sourceToolbar = this.$container.find('.timymce-builder-toolbar.source');

        // Find target containers
        this.$targetMenu    = this.$container.find('.timymce-builder-menu.target');
        this.$targetToolbar = this.$container.find('.timymce-builder-toolbar.target');

        // Render Source elements
        this.$sourceMenu.each(function(i, element){
            this.renderBar(element, 'menu');
        }.bind(this));
        this.$sourceToolbar.each(function(i, element){
            this.renderBar(element, 'toolbar');
        }.bind(this));

        // Render Target elements
        this.$targetMenu.each(function(i, element){
            this.renderBar(element, 'menu', null, true);
        }.bind(this));
        this.$targetToolbar.each(function(i, element){
            this.renderBar(element, 'toolbar', null, true);
        }.bind(this));

        // Set up "drag&drop" stuff
        var $copyHelper = null, removeIntent = false, self = this;
        this.$sourceMenu.sortable({
            connectWith: this.$targetMenu,
            items: '.mce-btn',
            cancel: '',
            placeholder: 'mce-btn ui-state-highlight',
            start: function(event, ui) {
                self.$targetMenu.addClass('drop-area-highlight');
            },
            helper: function(event, el) {
                $copyHelper = el.clone().insertAfter(el);
                return el;
            },
            stop: function() {
                $copyHelper && $copyHelper.remove();
                self.$targetMenu.removeClass('drop-area-highlight');
            }
        });

        this.$sourceToolbar.sortable({
            connectWith: this.$targetToolbar,
            items: '.mce-btn',
            cancel: '',
            placeholder: 'mce-btn ui-state-highlight',
            start: function(event, ui) {
                self.$targetToolbar.addClass('drop-area-highlight');
            },
            helper: function(event, el) {
                $copyHelper = el.clone().insertAfter(el);
                return el;
            },
            stop: function() {
                $copyHelper && $copyHelper.remove();
                self.$targetToolbar.removeClass('drop-area-highlight');
            }
        });

        $().add(this.$targetMenu).add(this.$targetToolbar).sortable({
            items: '.mce-btn',
            cancel: '',
            placeholder: 'mce-btn ui-state-highlight',
            receive: function(event, ui) {
                $copyHelper = null;
                var $el = ui.item, $cont = $(this);
                self.appendInput($el, $cont.data('group'), $cont.data('set'))
            },
            over: function (event, ui) {
                removeIntent = false;
            },
            out: function (event, ui) {
                removeIntent = true;
            },
            beforeStop: function (event, ui) {
                if(removeIntent){
                    ui.item.remove();
                }
            }
        });

        // Bind actions buttons
        this.$container.on('click', '.button-action', function(event){
            var $btn = $(event.target), action = $btn.data('action'), options = $btn.data();

            if (this[action]) {
                this[action].call(this, options);
            } else {
                throw new Error('Unsupported action ' + action);
            }
        }.bind(this));

    };

    /**
     * Render the toolbar/menubar
     *
     * @param {HTMLElement} container  The toolbar container
     * @param {String}      type       The type toolbar or menu
     * @param {Array|null}  value      The value
     * @param {Boolean}     withInput  Whether append input
     *
     * @since  3.7.0
     */
    JoomlaTinyMCEBuilder.prototype.renderBar = function(container, type, value, withInput) {
        var $container = $(container),
            group = $container.data('group'),
            set = $container.data('set'),
            items = type === 'menu' ? this.options.menus : this.options.buttons,
            value = value ? value : ($container.data('value') || []),
            item, name, $btn;

        for ( var i = 0, l = value.length; i < l; i++ ) {
            name = value[i];
            item = items[name];

            if (!item) {
                continue;
            }

            $btn = this.createButton(name, item, type);
            $container.append($btn);

            // Enable tooltip
            if ($btn.tooltip) {
                $btn.tooltip({trigger: 'hover'});
            }

            // Add input
            if (withInput) {
                this.appendInput($btn, group, set);
            }
        }
    };

    /**
     * Create the element needed for renderBar()
     * @param {String} name
     * @param {Object} info
     * @param {String} type
     *
     * @return {jQuery}
     *
     * @since  3.7.0
     */
    JoomlaTinyMCEBuilder.prototype.createButton = function(name, info, type){
        var $element = $('<div />', {
            'class': 'mce-btn',
            'data-name': name,
            'data-toggle': 'tooltip',
            'title': tinymce.translate(info.label)
        });
        var $btn = $('<button/>', {
            'type': 'button'
        });
        $element.append($btn);

        if (type === 'menu') {
            $btn.html('<span class="mce-txt">' + tinymce.translate(info.label) + '</span> <i class="mce-caret"></i>');
        } else {
            $element.addClass('mce-btn-small');
            $btn.html(info.text ? tinymce.translate(info.text) : '<i class="mce-ico mce-i-' + name + '"></i>');
        }

        return $element;
    };

    /**
     * Append input to the button item
     * @param {HTMLElement} element
     * @param {String}      group
     * @param {String}      set
     *
     * @since  3.7.0
     */
    JoomlaTinyMCEBuilder.prototype.appendInput = function (element, group, set) {
        var $el    = $(element),
            name   = this.options.formControl + '[' + set + '][' + group + '][]',
            $input = $('<input/>', {
                type: 'hidden',
                name:  name,
                value: $el.data('name')
            });

        $el.append($input);
    };

    /**
     * Set Selected preset to specific  set
     * @param {Object} options Options {set: 1, preset: 'presetName'}
     */
    JoomlaTinyMCEBuilder.prototype.setPreset = function (options) {
        var set = options.set, preset = this.options.toolbarPreset[options.preset] || null;

        if (!preset) {
            throw new Error('Unknown Preset "' + options.preset + '"');
        }

        var $container, type;
        for (var group in preset) {
            if (!preset.hasOwnProperty(group)) {
                continue;
            }

            // Find correct container for current set
            if (group === 'menu') {
                type = 'menu';
                $container = this.$targetMenu.filter('[data-group="' + group + '"][data-set="' + set + '"]');
            } else {
                type = 'toolbar'
                $container = this.$targetToolbar.filter('[data-group="' + group + '"][data-set="' + set + '"]');
            }

            // Reset existing values
            $container.empty();

            // Set new
            this.renderBar($container, type, preset[group], true);
        }
    };

    /**
     * Clear the pane for specific set
     * @param {Object} options Options {set: 1}
     */
    JoomlaTinyMCEBuilder.prototype.clearPane = function (options) {
        var set = options.set;

        this.$targetMenu.filter('[data-set="' + set + '"]').empty();
        this.$targetToolbar.filter('[data-set="' + set + '"]').empty();
    };


    // Init the builder
    $(document).ready(function(){
        var options = Joomla.getOptions ? Joomla.getOptions('plg_editors_tinymce_builder', {})
        			:  (Joomla.optionsStorage.plg_editors_tinymce_builder || {});

        new JoomlaTinyMCEBuilder($('#joomla-tinymce-builder'), options);

        $("#set-tabs a").on('click', function (event) {
            event.preventDefault();
            $(this).tab("show");
        });

        // Allow to select the group only once per the set
        var $accessSelects = $('#joomla-tinymce-builder').find('.access-select');
        toggleAvailableOption();
        $accessSelects.on('change', function () {
            toggleAvailableOption();
        });

        function toggleAvailableOption () {
            $accessSelects.find('option[disabled]').removeAttr('disabled');

            // Disable already selected options
            $accessSelects.each(function () {
                var $select = $(this), val = $select.val() || [], query = [],
                    $options = $accessSelects.not(this).find('option');

                for (var i = 0, l = val.length; i < l; i++ ) {
                    if (!val[i]) continue;
                    query.push('[value="' + val[i] + '"]');
                }

                if (query.length) {
                    $options.filter(query.join(',')).attr('disabled', 'disabled');
                }
            });

            // Update Chosen
            $accessSelects.trigger('liszt:updated');
        }
    });
}(jQuery));
editors/tinymce/js/plugins/dragdrop/plugin.min.js000064400000004374152177723720016227 0ustar00tinymce.PluginManager.add("jdragdrop",function(e){function t(t){var r=new FormData;r.append("Filedata",t),r.append("folder",tinyMCE.activeEditor.settings.mediaUploadPath);var n=new XMLHttpRequest;n.upload.onprogress=function(e){var t=e.loaded/e.total*100;document.querySelector(".bar").style.width=t+"%"},removeProgessBar=function(){setTimeout(function(){var t=document.querySelector("#jloader");t.parentNode.removeChild(t),e.contentAreaContainer.style.borderWidth="1px 0 0 0"},200)},n.onload=function(){var t=JSON.parse(n.responseText);if(200==n.status){if("0"==t.status&&(removeProgessBar(),e.windowManager.alert(t.message+": "+tinyMCE.activeEditor.settings.setCustomDir+t.location)),"1"==t.status){removeProgessBar();var r=tinyMCE.activeEditor.getDoc().createElement("img");r.src=tinyMCE.activeEditor.settings.setCustomDir+t.location,tinyMCE.activeEditor.execCommand("mceInsertContent",!1,r.outerHTML)}}else removeProgessBar()},n.onerror=function(){removeProgessBar()},n.open("POST",tinyMCE.activeEditor.settings.uploadUri,!0),n.send(r)}tinyMCE.DOM.bind(document,"dragleave",function(e){return e.stopPropagation(),e.preventDefault(),tinyMCE.activeEditor.contentAreaContainer.style.borderWidth="1px 0 0",!1}),"undefined"!=typeof FormData?(e.on("dragenter",function(e){return e.stopPropagation(),!1}),e.on("dragover",function(t){return t.preventDefault(),e.contentAreaContainer.style.borderStyle="dashed",e.contentAreaContainer.style.borderWidth="5px",!1}),e.on("drop",function(r){if(r.dataTransfer&&r.dataTransfer.files&&r.dataTransfer.files.length>0)for(var n,a=0;n=r.dataTransfer.files[a];a++){if(n.name.toLowerCase().match(/\.(jpg|jpeg|png|gif)$/)){var o,i,s="";(o=document.createElement("div")).id="jloader",(i=document.createElement("div")).classList.add("progress"),i.classList.add("progress-success"),i.classList.add("progress-striped"),i.classList.add("active"),i.style.width="100%",i.style.height="30px",(s=document.createElement("div")).classList.add("bar"),s.style.width="0",i.appendChild(s),o.appendChild(i),document.querySelector(".mce-toolbar-grp").appendChild(o),t(n)}r.preventDefault()}e.contentAreaContainer.style.borderWidth="1px 0 0"})):(Joomla.renderMessages({error:[Joomla.JText._("PLG_TINY_ERR_UNSUPPORTEDBROWSER")]}),e.on("drop",function(e){return e.preventDefault(),!1}))});editors/tinymce/js/plugins/dragdrop/plugin.js000064400000007004152177723720015436 0ustar00tinymce.PluginManager.add('jdragdrop', function(editor) {

	// Reset the drop area border
	tinyMCE.DOM.bind(document, 'dragleave', function(e) {
		e.stopPropagation();
		e.preventDefault();
		tinyMCE.activeEditor.contentAreaContainer.style.borderWidth = '1px 0 0';

		return false;
	});

	// The upload logic
	function UploadFile(file) {
		var fd = new FormData();
		fd.append('Filedata', file);
		fd.append('folder', tinyMCE.activeEditor.settings.mediaUploadPath);

		var xhr = new XMLHttpRequest();

		xhr.upload.onprogress = function(e) {
			var percentComplete = (e.loaded / e.total) * 100;
			document.querySelector('.bar').style.width = percentComplete + '%';
		};

		removeProgessBar = function(){
			setTimeout(function(){
				var loader = document.querySelector('#jloader');
				loader.parentNode.removeChild(loader);
				editor.contentAreaContainer.style.borderWidth = '1px 0 0 0';
			}, 200);
		};

		xhr.onload = function() {
			var resp = JSON.parse(xhr.responseText);

			if (xhr.status == 200) {
				if (resp.status == '0') {
					removeProgessBar();

					editor.windowManager.alert(resp.message + ': ' + tinyMCE.activeEditor.settings.setCustomDir + resp.location);

				}

				if (resp.status == '1') {
					removeProgessBar();

					// Create the image tag
					var newNode = tinyMCE.activeEditor.getDoc().createElement ('img');
					newNode.src= tinyMCE.activeEditor.settings.setCustomDir + resp.location;
					tinyMCE.activeEditor.execCommand('mceInsertContent', false, newNode.outerHTML);
				}
			} else {
				removeProgessBar();
			}
		};

		xhr.onerror = function() {
			removeProgessBar();
		};

		xhr.open("POST", tinyMCE.activeEditor.settings.uploadUri, true);
		xhr.send(fd);

	}

	// Listers for drag and drop
	if (typeof FormData != 'undefined'){

		// Fix for Chrome
		editor.on('dragenter', function(e) {
			e.stopPropagation();

			return false;
		});


		// Notify user when file is over the drop area
		editor.on('dragover', function(e) {
			e.preventDefault();
			editor.contentAreaContainer.style.borderStyle = 'dashed';
			editor.contentAreaContainer.style.borderWidth = '5px';

			return false;
		});

		// Logic for the dropped file
		editor.on('drop', function(e) {

			// We override only for files
			if (e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files.length > 0) {
				for (var i = 0, f; f = e.dataTransfer.files[i]; i++) {

					// Only images allowed
					if (f.name.toLowerCase().match(/\.(jpg|jpeg|png|gif)$/)) {

						// Create and display the progress bar
						var container, innerDiv, progressBar = '';
						container = document.createElement('div');
						container.id = 'jloader';
						innerDiv = document.createElement('div');
						innerDiv.classList.add('progress');
						innerDiv.classList.add('progress-success');
						innerDiv.classList.add('progress-striped');
						innerDiv.classList.add('active');
						innerDiv.style.width = '100%';
						innerDiv.style.height = '30px';
						progressBar = document.createElement('div');
						progressBar.classList.add('bar');
						progressBar.style.width = '0';
						innerDiv.appendChild(progressBar);
						container.appendChild(innerDiv);
						document.querySelector('.mce-toolbar-grp').appendChild(container);

						// Upload the file(s)
						UploadFile(f);
					}

					e.preventDefault();
				}
			}
			editor.contentAreaContainer.style.borderWidth = '1px 0 0';
		});
	} else {
		Joomla.renderMessages({'error': [Joomla.JText._("PLG_TINY_ERR_UNSUPPORTEDBROWSER")]});
		editor.on('drop', function(e) {
			e.preventDefault();

			return false;
		});
	}
});
editors/tinymce/changelog.txt000064400000160160152177723720012376 0ustar00Version 4.5.11 (2019-05-16)
  Fixed bug where the editor would scroll to the top of the editable area if a dialog was closed in inline mode. #TINY-1073
Version 4.5.10 (2018-10-19)
  Changed the contextual toolbar shortcut to Ctrl+F9 since an Edge shortcut interfered with the previous one.
Version 4.5.9 (2018-08-02)
  Fixed a bug where Edge 17 wouldn't be able to select images or tables.
Version 4.5.8 (2017-10-05)
	Fixed bug where paste on Edge wouldn't paste UTF characters since Microsoft didn't implement the html5 clipboard api correctly.
	Fixed bug where it was hard to focus the editor on IE 10 since the body element didn't have full height.
	Fixed bug where malformed blob urls wouldn't be handled correctly by the editor.
Version 4.5.7 (2017-04-25)
	Fixed bug with selection around inline contenteditable false would get collapsed incorrectly.
	Fixed bug where pasting on Microsoft Edge 40+ would produce clipboard fragment headers.
Version 4.5.6 (2017-03-30)
	Fixed bug where it wasn't possible to select floated images in some cases.
Version 4.5.5 (2017-03-07)
	Fixed text formatting bug with fontsize could not be changed after changing the text color.
Version 4.5.4 (2017-02-23)
	Fixed bug where setBaseAndExtend would throw exceptions on Chrome 58 when selecting images.
	Fixed bug where deleting partially selected contents could remove all contents in some edge cases on WebKit.
Version 4.5.3 (2017-02-01)
	Added keyboard navigation for menu buttons when the menu is in focus.
	Added api to the list plugin for setting custom classes/attributes on lists.
	Added validation for the anchor plugin input field according to W3C id naming specifications.
	Fixed bug where media placeholders were removed after resize with the forced_root_block setting set to false.
	Fixed bug where deleting selections with similar sibling nodes sometimes deleted the whole document.
	Fixed bug with inlite theme where several toolbars would appear scrolling when more than one instance of the editor was in use.
	Fixed bug where the editor would throw error with the fontselect plugin on hidden editor instances in Firefox.
	Fixed bug where the background color would not stretch to the font size.
	Fixed bug where font size would be removed when changing background color.
	Fixed bug where the undomanager trimmed away whitespace between nodes on undo/redo.
	Fixed bug where media_dimensions=false in media plugin caused the editor to throw an error.
	Fixed bug where IE was producing font/u elements within links on paste.
	Fixed bug where some button tooltips were broken when compat3x was in use.
	Fixed bug where backspace/delete/typeover would remove the caption element.
	Fixed bug where powerspell failed to function when compat3x was enabled.
	Fixed bug where it wasn't possible to apply sub/sup on text with large font size.
	Fixed bug where pre tags with spaces weren't treated as content.
	Fixed bug where Meta+A would select the entire document instead of all contents in nested ce=true elements.
Version 4.5.2 (2017-01-04)
	Added missing keyboard shortcut description for the underline menu item in the format menu.
	Fixed bug where external blob urls wasn't properly handled by editor upload logic. Patch contributed by David Oviedo.
	Fixed bug where urls wasn't treated as a single word by the wordcount plugin.
	Fixed bug where nbsp characters wasn't treated as word delimiters by the wordcount plugin.
	Fixed bug where editor instance wasn't properly passed to the format preview logic. Patch contributed by NullQuery.
	Fixed bug where the fake caret wasn't hidden when you moved selection to a cE=false element.
	Fixed bug where it wasn't possible to edit existing code sample blocks.
	Fixed bug where it wasn't possible to delete editor contents if the selection included an empty block.
	Fixed bug where the formatter wasn't expanding words on some international characters. Patch contributed by Martin Larochelle.
	Fixed bug where the open link feature wasn't working correctly on IE 11.
	Fixed bug where enter before/after a cE=false block wouldn't properly padd the paragraph with an br element.
	Fixed so font size and font family select boxes always displays a value by using the runtime style as a fallback.
	Fixed so missing plugins will be logged to console as warnings rather than halting the initialization of the editor.
	Fixed so splitbuttons become normal buttons in advlist plugin if styles are empty. Patch contributed by René Schleusner.
	Fixed so you can multi insert rows/cols by selecting table cells and using insert rows/columns.
Version 4.5.1 (2016-12-07)
	Fixed bug where the lists plugin wouldn't initialize without the advlist plugins if served from cdn.
	Fixed bug where selectors with "*" would cause the style format preview to throw an error.
	Fixed bug with toggling lists off on lists with empty list items would throw an error.
	Fixed bug where editing images would produce non existing blob uris.
	Fixed bug where the offscreen toc selection would be treated as the real toc element.
	Fixed bug where the aria level attribute for element path would have an incorrect start index.
	Fixed bug where the offscreen selection of cE=false that where very wide would be shown onscreen. Patch contributed by Steven Bufton.
	Fixed so the default_link_target gets applied to links created by the autolink plugin.
	Fixed so that the name attribute gets removed by the anchor plugin if editing anchors.
Version 4.5.0 (2016-11-23)
	Added new toc plugin allows you to insert table of contents based on editor headings.
	Added new auto complete menu to all url fields. Adds history, link to anchors etc.
	Added new sidebar api that allows you to add custom sidebar panels and buttons to toggle these.
	Added new insert menu button that allows you to have multiple insert functions under the same menu button.
	Added new open link feature to ctrl+click, alt+enter and context menu.
	Added new media_embed_handler option to allow the media plugin to be populated with custom embeds.
	Added new support for editing transparent images using the image tools dialog.
	Added new images_reuse_filename option to allow filenames of images to be retained for upload.
	Added new security feature where links with target="_blank" will by default get rel="noopener noreferrer".
	Added new allow_unsafe_link_target to allow you to opt-out of the target="_blank" security feature.
	Added new style_formats_autohide option to automatically hide styles based on context.
	Added new codesample_content_css option to specify where the code sample prism css is loaded from.
	Added new support for Japanese/Chinese word count following the unicode standards on this.
	Added new fragmented undo levels this dramatically reduces flicker on contents with iframes.
	Added new live previews for complex elements like table or lists.
	Fixed bug where it wasn't possible to properly tab between controls in a dialog with a disabled form item control.
	Fixed bug where firefox would generate a rectangle on elements produced after/before a cE=false elements.
	Fixed bug with advlist plugin not switching list element format properly in some edge cases.
	Fixed bug where col/rowspans wasn't correctly computed by the table plugin in some cases.
	Fixed bug where the table plugin would thrown an error if object_resizing was disabled.
	Fixed bug where some invalid markup would cause issues when running in XHTML mode. Patch contributed by Charles Bourasseau.
	Fixed bug where the fullscreen class wouldn't be removed properly when closing dialogs.
	Fixed bug where the PastePlainTextToggle event wasn't fired by the paste plugin when the state changed.
	Fixed bug where table the row type wasn't properly updated in table row dialog. Patch contributed by Matthias Balmer.
	Fixed bug where select all and cut wouldn't place caret focus back to the editor in WebKit. Patch contributed by Daniel Jalkut.
	Fixed bug where applying cell/row properties to multiple cells/rows would reset other unchanged properties.
	Fixed bug where some elements in the schema would have redundant/incorrect children.
	Fixed bug where selector and target options would cause issues if used together.
	Fixed bug where drag/drop of images from desktop on chrome would thrown an error.
	Fixed bug where cut on WebKit/Blink wouldn't add an undo level.
	Fixed bug where IE 11 would scroll to the cE=false elements when they where selected.
	Fixed bug where keys like F5 wouldn't work when a cE=false element was selected.
	Fixed bug where the undo manager wouldn't stop the typing state when commands where executed.
	Fixed bug where unlink on wrapped links wouldn't work properly.
	Fixed bug with drag/drop of images on WebKit where the image would be deleted form the source editor.
	Fixed bug where the visual characters mode would be disabled when contents was extracted from the editor.
	Fixed bug where some browsers would toggle of formats applied to the caret when clicking in the editor toolbar.
	Fixed bug where the custom theme function wasn't working correctly.
	Fixed bug where image option for custom buttons required you to have icon specified as well.
	Fixed bug where the context menu and contextual toolbars would be visible at the same time and sometimes overlapping.
	Fixed bug where the noneditable plugin would double wrap elements when using the noneditable_regexp option.
	Fixed bug where tables would get padding instead of margin when you used the indent button.
	Fixed bug where the charmap plugin wouldn't properly insert non breaking spaces.
	Fixed bug where the color previews in color input boxes wasn't properly updated.
	Fixed bug where the list items of previous lists wasn't merged in the right order.
	Fixed bug where it wasn't possible to drag/drop inline-block cE=false elements on IE 11.
	Fixed bug where some table cell merges would produce incorrect rowspan/colspan.
	Fixed so the font size of the editor defaults to 14px instead of 11px this can be overridden by custom css.
	Fixed so wordcount is debounced to reduce cpu hogging on larger texts.
	Fixed so tinymce global gets properly exported as a module when used with some module bundlers.
	Fixed so it's possible to specify what css properties you want to preview on specific formats.
	Fixed so anchors are contentEditable=false while within the editor.
	Fixed so selected contents gets wrapped in a inline code element by the codesample plugin.
	Fixed so conditional comments gets properly stripped independent of case. Patch contributed by Georgii Dolzhykov.
	Fixed so some escaped css sequences gets properly handled. Patch contributed by Georgii Dolzhykov.
	Fixed so notifications with the same message doesn't get displayed at the same time.
	Fixed so F10 can be used as an alternative key to focus to the toolbar.
	Fixed various api documentation issues and typos.
	Removed layer plugin since it wasn't really ported from 3.x and there doesn't seem to be much use for it.
	Removed moxieplayer.swf from the media plugin since it wasn't used by the media plugin.
	Removed format state from the advlist plugin to be more consistent with common word processors.
Version 4.4.3 (2016-09-01)
	Fixed bug where copy would produce an exception on Chrome.
	Fixed bug where deleting lists on IE 11 would merge in correct text nodes.
	Fixed bug where deleting partial lists with indentation wouldn't cause proper normalization.
Version 4.4.2 (2016-08-25)
	Added new importcss_exclusive option to disable unique selectors per group.
	Added new group specific selector_converter option to importcss plugin.
	Added new codesample_languages option to apply custom languages to codesample plugin.
	Added new codesample_dialog_width/codesample_dialog_height options.
	Fixed bug where fullscreen button had an incorrect keyboard shortcut.
	Fixed bug where backspace/delete wouldn't work correctly from a block to a cE=false element.
	Fixed bug where smartpaste wasn't detecting links with special characters in them like tilde.
	Fixed bug where the editor wouldn't get proper focus if you clicked on a cE=false element.
	Fixed bug where it wasn't possible to copy/paste table rows that had merged cells.
	Fixed bug where merging cells could some times produce invalid col/rowspan attibute values.
	Fixed bug where getBody would sometimes thrown an exception now it just returns null if the iframe is clobbered.
	Fixed bug where drag/drop of cE=false element wasn't properly constrained to viewport.
	Fixed bug where contextmenu on Mac would collapse any selection to a caret.
	Fixed bug where rtl mode wasn't rendered properly when loading a language pack with the rtl flag.
	Fixed bug where Kamer word bounderies would be stripped from contents.
	Fixed bug where lists would sometimes render two dots or numbers on the same line.
	Fixed bug where the skin_url wasn't used by the inlite theme.
	Fixed so data attributes are ignored when comparing formats in the formatter.
	Fixed so it's possible to disable inline toolbars in the inlite theme.
	Fixed so template dialog gets resized if it doesn't fit the window viewport.
Version 4.4.1 (2016-07-26)
	Added smart_paste option to paste plugin to allow disabling the paste behavior if needed.
	Fixed bug where png urls wasn't properly detected by the smart paste logic.
	Fixed bug where the element path wasn't working properly when multiple editor instances where used.
	Fixed bug with creating lists out of multiple paragraphs would just create one list item instead of multiple.
	Fixed bug where scroll position wasn't properly handled by the inlite theme to place the toolbar properly.
	Fixed bug where multiple instances of the editor using the inlite theme didn't render the toolbar properly.
	Fixed bug where the shortcut label for fullscreen mode didn't match the actual shortcut key.
	Fixed bug where it wasn't possible to select cE=false blocks using touch devices on for example iOS.
	Fixed bug where it was possible to select the child image within a cE=false on IE 11.
	Fixed so inserts of html containing lists doesn't merge with any existing lists unless it's a paste operation.
Version 4.4.0 (2016-06-30)
	Added new inlite theme this is a more lightweight inline UI.
	Added smarter paste logic that auto detects urls in the clipboard and inserts images/links based on that.
	Added a better image resize algorithm for better image quality in the imagetools plugin.
	Fixed bug where it wasn't possible to drag/dropping cE=false elements on FF.
	Fixed bug where backspace/delete before/after a cE=false block would produce a new paragraph.
	Fixed bug where list style type css property wasn't preserved when indenting lists.
	Fixed bug where merging of lists where done even if the list style type was different.
	Fixed bug where the image_dataimg_filter function wasn't used when pasting images.
	Fixed bug where nested editable within a non editable element would cause scroll on focus in Chrome.
	Fixed so invalid targets for inline mode is blocked on initialization. We only support elements that can have children.
Version 4.3.13 (2016-06-08)
	Added characters with a diacritical mark to charmap plugin. Patch contributed by Dominik Schilling.
	Added better error handling if the image proxy service would produce errors.
	Fixed issue with pasting list items into list items would produce nested list rather than a merged list.
	Fixed bug where table selection could get stuck in selection mode for inline editors.
	Fixed bug where it was possible to place the caret inside the resize grid elements.
	Fixed bug where it wasn't possible to place in elements horizontally adjacent cE=false blocks.
	Fixed bug where multiple notifications wouldn't be properly placed on screen.
	Fixed bug where multiple editor instance of the same id could be produces in some specific integrations.
Version 4.3.12 (2016-05-10)
	Fixed bug where focus calls couldn't be made inside the editors PostRender event handler.
	Fixed bug where some translations wouldn't work as expected due to a bug in editor.translate.
	Fixed bug where the node change event could fire with a node out side the root of the editor.
	Fixed bug where Chrome wouldn't properly present the keyboard paste clipboard details when paste was clicked.
	Fixed bug where merged cells in tables couldn't be selected from right to left.
	Fixed bug where insert row wouldn't properly update a merged cells rowspan property.
	Fixed bug where the color input boxes preview field wasn't properly set on initialization.
	Fixed bug where IME composition inside table cells wouldn't work as expected on IE 11.
	Fixed so all shadow dom support is under and experimental flag due to flaky browser support.
Version 4.3.11 (2016-04-25)
	Fixed bug where it wasn't possible to insert empty blocks though the API unless they where padded.
	Fixed bug where you couldn't type the Euro character on Windows.
	Fixed bug where backspace/delete from a cE=false element to a text block didn't work properly.
	Fixed bug where the text color default grid would render incorrectly.
	Fixed bug where the codesample plugin wouldn't load the css in the editor for multiple editors.
	Fixed so the codesample plugin textarea gets focused by default.
Version 4.3.10 (2016-04-12)
	Fixed bug where the key "y" on WebKit couldn't be entered due to conflict with keycode for F10 on keypress.
Version 4.3.9 (2016-04-12)
	Added support for focusing the contextual toolbars using keyboard.
	Added keyboard support for slider UI controls. You can no increase/decrease using arrow keys.
	Added url pattern matching for Dailymotion to media plugin. Patch contributed by Bertrand Darbon.
	Added body_class to template plugin preview. Patch contributed by Milen Petrinski.
	Added options to better override textcolor pickers with custom colors. Patch contributed by Xavier Boubert.
	Added visual arrows to inline contextual toolbars so that they point to the element being active.
	Fixed so toolbars for tables or other larger elements get better positioned below the scrollable viewport.
	Fixed bug where it was possible to click links inside cE=false blocks.
	Fixed bug where event targets wasn't properly handled in Safari Technical Preview.
	Fixed bug where drag/drop text in FF 45 would make the editor caret invisible.
	Fixed bug where the remove state wasn't properly set on editor instances when detected as clobbered.
	Fixed bug where offscreen selection of some cE=false elements would render onscreen. Patch contributed by Steven Bufton
	Fixed bug where enter would clone styles out side the root on editors inside a span. Patch contributed by ChristophKaser.
	Fixed bug where drag/drop of images into the editor didn't work correctly in FF.
	Fixed so the first item in panels for the imagetools dialog gets proper keyboard focus.
	Changed the Meta+Shift+F shortcut to Ctrl+Shift+F since Czech, Slovak, Polish languages used the first one for input.
Version 4.3.8 (2016-03-15)
	Fixed bug where inserting HR at the end of a block element would produce an extra empty block.
	Fixed bug where links would be clickable when readonly mode was enabled.
	Fixed bug where the formatter would normalize to the wrong node on very specific content.
	Fixed bug where some nested list items couldn't be indented properly.
	Fixed bug where links where clickable in the preview dialog.
	Fixed so the alt attribute doesn't get padded with an empty value by default.
	Fixed so nested alignment works more correctly. You will now alter the alignment to the closest block parent.
Version 4.3.7 (2016-03-02)
	Fixed bug where incorrect icons would be rendered for imagetools edit and color levels.
	Fixed bug where navigation using arrow keys inside a SelectBox didn't move up/down.
	Fixed bug where the visualblocks plugin would render borders round internal UI elements.
Version 4.3.6 (2016-03-01)
	Added new paste_remember_plaintext_info option to allow a global disable of the plain text mode notification.
	Added new PastePlainTextToggle event that fires when plain text mode toggles on/off.
	Fixed bug where it wasn't possible to select media elements since the drag logic would snap it to mouse cursor.
	Fixed bug where it was hard to place the caret inside nested cE=true elements when the outer cE=false element was focused.
	Fixed bug where editors wouldn't properly initialize if both selector and mode where used.
	Fixed bug where IME input inside table cells would switch the IME off.
	Fixed bug where selection inside the first table cell would cause the whole table cell to get selected.
	Fixed bug where error handling of images being uploaded wouldn't properly handle faulty statuses.
	Fixed bug where inserting contents before a HR would cause an exception to be thrown.
	Fixed bug where copy/paste of Excel data would be inserted as an image.
	Fixed caret position issues with copy/paste of inline block cE=false elements.
	Fixed issues with various menu item focus bugs in Chrome. Where the focused menu bar item wasn't properly blurred.
	Fixed so the notifications have a solid background since it would be hard to read if there where text under it.
	Fixed so notifications gets animated similar to the ones used by dialogs.
	Fixed so larger images that gets pasted is handled better.
	Fixed so the window close button is more uniform on various platform and also increased it's hit area.
Version 4.3.5 (2016-02-11)
	Npm version bump due to package not being fully updated.
Version 4.3.4 (2016-02-11)
	Added new OpenWindow/CloseWindow events that gets fired when windows open/close.
	Added new NewCell/NewRow events that gets fired when table cells/rows are created.
	Added new Promise return value to tinymce.init makes it easier to handle initialization.
	Removed the jQuery version the jQuery plugin is now moved into the main package.
	Removed jscs from build process since eslint can now handle code style checking.
	Fixed various bugs with drag/drop of contentEditable:false elements.
	Fixed bug where deleting of very specific nested list items would result in an odd list.
	Fixed bug where lists would get merged with adjacent lists outside the editable inline root.
	Fixed bug where MS Edge would crash when closing a dialog then clicking a menu item.
	Fixed bug where table cell selection would add undo levels.
	Fixed bug where table cell selection wasn't removed when inline editor where removed.
	Fixed bug where table cell selection wouldn't work properly on nested tables.
	Fixed bug where table merge menu would be available when merging between thead and tbody.
	Fixed bug where table row/column resize wouldn't get properly removed when the editor was removed.
	Fixed bug where Chrome would scroll to the editor if there where a empty hash value in document url.
	Fixed bug where the cache suffix wouldn't work correctly with the importcss plugin.
	Fixed bug where selection wouldn't work properly on MS Edge on Windows Phone 10.
	Fixed so adjacent pre blocks gets joined into one pre block since that seems like the user intent.
	Fixed so events gets properly dispatched in shadow dom. Patch provided by Nazar Mokrynskyi.
Version 4.3.3 (2016-01-14)
	Added new table_resize_bars configuration setting.  This setting allows you to disable the table resize bars.
	Added new beforeInitialize event to tinymce.util.XHR lets you modify XHR properties before open. Patch contributed by Brent Clintel.
	Added new autolink_pattern setting to autolink plugin. Enables you to override the default autolink formats. Patch contributed by Ben Tiedt.
	Added new charmap option that lets you override the default charmap of the charmap plugin.
	Added new charmap_append option that lets you add new characters to the default charmap of the charmap plugin.
	Added new insertCustomChar event that gets fired when a character is inserted by the charmap plugin.
	Fixed bug where table cells started with a superfluous &nbsp; in IE10+.
	Fixed bug where table plugin would retain all BR tags when cells were merged.
	Fixed bug where media plugin would strip underscores from youtube urls.
	Fixed bug where IME input would fail on IE 11 if you typed within a table.
	Fixed bug where double click selection of a word would remove the space before the word on insert contents.
	Fixed bug where table plugin would produce exceptions when hovering tables with invalid structure.
	Fixed bug where fullscreen wouldn't scroll back to it's original position when untoggled.
	Fixed so the template plugins templates setting can be a function that gets a callback that can provide templates.
Version 4.3.2 (2015-12-14)
	Fixed bug where the resize bars for table cells were not affected by the object_resizing property.
	Fixed bug where the contextual table toolbar would appear incorrectly if TinyMCE was initialized inline inside a table.
	Fixed bug where resizing table cells did not fire a node change event or add an undo level.
	Fixed bug where double click selection of text on IE 11 wouldn't work properly.
	Fixed bug where codesample plugin would incorrectly produce br elements inside code elements.
	Fixed bug where media plugin would strip dashes from youtube urls.
	Fixed bug where it was possible to move the caret into the table resize bars.
	Fixed bug where drag/drop into a cE=false element was possible on IE.
Version 4.3.1 (2015-11-30)
	Fixed so it's possible to disable the table inline toolbar by setting it to false or an empty string.
	Fixed bug where it wasn't possible to resize some tables using the drag handles.
	Fixed bug where unique id:s would clash for multiple editor instances and cE=false selections.
	Fixed bug where the same plugin could be initialized multiple times.
	Fixed bug where the table inline toolbars would be displayed at the same time as the image toolbars.
	Fixed bug where the table selection rect wouldn't be removed when selecting another control element.
Version 4.3.0 (2015-11-23)
	Added new table column/row resize support. Makes it a lot more easy to resize the columns/rows in a table.
	Added new table inline toolbar. Makes it easier to for example add new rows or columns to a table.
	Added new notification API. Lets you display floating notifications to the end user.
	Added new codesample plugin that lets you insert syntax highlighted pre elements into the editor.
	Added new image_caption to images. Lets you create images with captions using a HTML5 figure/figcaption elements.
	Added new live previews of embeded videos. Lets you play the video right inside the editor.
	Added new setDirty method and "dirty" event to the editor. Makes it easier to track the dirty state change.
	Added new setMode method to Editor instances that lets you dynamically switch between design/readonly.
	Added new core support for contentEditable=false elements within the editor overrides the browsers broken behavior.
	Rewrote the noneditable plugin to use the new contentEditable false core logic.
	Fixed so the dirty state doesn't set set to false automatically when the undo index is set to 0.
	Fixed the Selection.placeCaretAt so it works better on IE when the coordinate is between paragraphs.
	Fixed bug where data-mce-bogus="all" element contents where counted by the word count plugin.
	Fixed bug where contentEditable=false elements would be indented by the indent buttons.
	Fixed bug where images within contentEditable=false would be selected in WebKit on mouse click.
	Fixed bug in DOMUntils split method where the replacement parameter wouldn't work on specific cases.
	Fixed bug where the importcss plugin would import classes from the skin content css file.
	Fixed so all button variants have a wrapping span for it's text to make it easier to skin.
	Fixed so it's easier to exit pre block using the arrow keys.
	Fixed bug where listboxes with fix widths didn't render correctly.
Version 4.2.8 (2015-11-13)
	Fixed bug where it was possible to delete tables as the inline root element if all columns where selected.
	Fixed bug where the UI buttons active state wasn't properly updated due to recent refactoring of that logic.
Version 4.2.7 (2015-10-27)
	Fixed bug where backspace/delete would remove all formats on the last paragraph character in WebKit/Blink.
	Fixed bug where backspace within a inline format element with a bogus caret container would move the caret.
	Fixed bug where backspace/delete on selected table cells wouldn't add an undo level.
	Fixed bug where script tags embedded within the editor could sometimes get a mce- prefix prepended to them
	Fixed bug where validate: false option could produce an error to be thrown from the Serialization step.
	Fixed bug where inline editing of a table as the root element could let the user delete that table.
	Fixed bug where inline editing of a table as the root element wouldn't properly handle enter key.
	Fixed bug where inline editing of a table as the root element would normalize the selection incorrectly.
	Fixed bug where inline editing of a list as the root element could let the user delete that list.
	Fixed bug where inline editing of a list as the root element could let the user split that list.
	Fixed bug where resize handles would be rendered on editable root elements such as table.
Version 4.2.6 (2015-09-28)
	Added capability to set request headers when using XHRs.
	Added capability to upload local images automatically default delay is set to 30 seconds after editing images.
	Added commands ids mceEditImage, mceAchor and mceMedia to be avaiable from execCommand.
	Added Edge browser to saucelabs grunt task. Patch contributed by John-David Dalton.
	Fixed bug where blob uris not produced by tinymce would produce HTML invalid markup.
	Fixed bug where selection of contents of a nearly empty editor in Edge would sometimes fail.
	Fixed bug where color styles woudln't be retained on copy/paste in Blink/Webkit.
	Fixed bug where the table plugin would throw an error when inserting rows after a child table.
	Fixed bug where the template plugin wouldn't handle functions as variable replacements.
	Fixed bug where undo/redo sometimes wouldn't work properly when applying formatting collapsed ranges.
	Fixed bug where shift+delete wouldn't do a cut operation on Blink/WebKit.
	Fixed bug where cut action wouldn't properly store the before selection bookmark for the undo level.
	Fixed bug where backspace in side an empty list element on IE would loose editor focus.
	Fixed bug where the save plugin wouldn't enable the buttons when a change occurred.
	Fixed bug where Edge wouldn't initialize the editor if a document.domain was specified.
	Fixed bug where enter key before nested images would sometimes not properly expand the previous block.
	Fixed bug where the inline toolbars wouldn't get properly hidden when blurring the editor instance.
	Fixed bug where Edge would paste Chinese characters on some Windows 10 installations.
	Fixed bug where IME would loose focus on IE 11 due to the double trailing br bug fix.
	Fixed bug where the proxy url in imagetools was incorrect. Patch contributed by Wong Ho Wang.
Version 4.2.5 (2015-08-31)
	Added fullscreen capability to embedded youtube and vimeo videos.
	Fixed bug where the uploadImages call didn't work on IE 10.
	Fixed bug where image place holders would be uploaded by uploadImages call.
	Fixed bug where images marked with bogus would be uploaded by the uploadImages call.
	Fixed bug where multiple calls to uploadImages would result in decreased performance.
	Fixed bug where pagebreaks were editable to imagetools patch contributed by Rasmus Wallin.
	Fixed bug where the element path could cause too much recursion exception.
	Fixed bug for domains containing ".min". Patch contributed by Loïc Février.
	Fixed so validation of external links to accept a number after www. Patch contributed by Victor Carvalho.
	Fixed so the charmap is exposed though execCommand. Patch contributed by Matthew Will.
	Fixed so that the image uploads are concurrent for improved performance.
	Fixed various grammar problems in inline documentation. Patches provided by nikolas.
Version 4.2.4 (2015-08-17)
	Added picture as a valid element to the HTML 5 schema. Patch contributed by Adam Taylor.
	Fixed bug where contents would be duplicated on drag/drop within the same editor.
	Fixed bug where floating/alignment of images on Edge wouldn't work properly.
	Fixed bug where it wasn't possible to drag images on IE 11.
	Fixed bug where image selection on Edge would sometimes fail.
	Fixed bug where contextual toolbars icons wasn't rendered properly when using the toolbar_items_size.
	Fixed bug where searchreplace dialog doesn't get prefilled with the selected text.
	Fixed bug where fragmented matches wouldn't get properly replaced by the searchreplace plugin.
	Fixed bug where enter key wouldn't place the caret if was after a trailing space within an inline element.
	Fixed bug where the autolink plugin could produce multiple links for the same text on Gecko.
	Fixed bug where EditorUpload could sometimes throw an exception if the blob wasn't found.
	Fixed xss issues with media plugin not properly filtering out some script attributes.
Version 4.2.3 (2015-07-30)
	Fixed bug where image selection wasn't possible on Edge due to incompatible setBaseAndExtend API.
	Fixed bug where image blobs urls where not properly destroyed by the imagetools plugin.
	Fixed bug where keyboard shortcuts wasn't working correctly on IE 8.
	Fixed skin issue where the borders of panels where not visible on IE 8.
Version 4.2.2 (2015-07-22)
	Fixed bug where float panels were not being hidden on inline editor blur when fixed_toolbar_container config option was in use.
	Fixed bug where combobox states wasn't properly updated if contents where updated without keyboard.
	Fixed bug where pasting into textbox or combobox would move the caret to the end of text.
	Fixed bug where removal of bogus span elements before block elements would remove whitespace between nodes.
	Fixed bug where repositioning of inline toolbars where async and producing errors if the editor was removed from DOM to early. Patch by iseulde.
	Fixed bug where element path wasn't working correctly. Patch contributed by iseulde.
	Fixed bug where menus wasn't rendered correctly when custom images where added to a menu. Patch contributed by Naim Hammadi.
Version 4.2.1 (2015-06-29)
	Fixed bug where back/forward buttons in the browser would render blob images as broken images.
	Fixed bug where Firefox would throw regexp to big error when replacing huge base64 chunks.
	Fixed bug rendering issues with resize and context toolbars not being placed properly until next animation frame.
	Fixed bug where the rendering of the image while cropping would some times not be centered correctly.
	Fixed bug where listbox items with submenus would me selected as active.
	Fixed bug where context menu where throwing an error when rendering.
	Fixed bug where resize both option wasn't working due to resent addClass API change. Patch contributed by Jogai.
	Fixed bug where a hideAll call for container rendered inline toolbars would throw an error.
	Fixed bug where onclick event handler on combobox could cause issues if element.id was a function by some polluting libraries.
	Fixed bug where listboxes wouldn't get proper selected sub menu item when using link_list or image_list.
	Fixed so the UI controls are as wide as 4.1.x to avoid wrapping controls in toolbars.
	Fixed so the imagetools dialog is adaptive for smaller screen sizes.
Version 4.2.0 (2015-06-25)
	Added new flat default skin to make the UI more modern.
	Added new imagetools plugin, lets you crop/resize and apply filters to images.
	Added new contextual toolbars support to the API lets you add floating toolbars for specific CSS selectors.
	Added new promise feature fill as tinymce.util.Promise.
	Added new built in image upload feature lets you upload any base64 encoded image within the editor as files.
	Fixed bug where resize handles would appear in the right position in the wrong editor when switching between resizable content in different inline editors.
	Fixed bug where tables would not be inserted in inline mode due to previous float panel fix.
	Fixed bug where floating panels would remain open when focus was lost on inline editors.
	Fixed bug where cut command on Chrome would thrown a browser security exception.
	Fixed bug where IE 11 sometimes would report an incorrect size for images in the image dialog.
	Fixed bug where it wasn't possible to remove inline formatting at the end of block elements.
	Fixed bug where it wasn't possible to delete table cell contents when cell selection was vertical.
	Fixed bug where table cell wasn't emptied from block elements if delete/backspace where pressed in empty cell.
	Fixed bug where cmd+shift+arrow didn't work correctly on Firefox mac when selecting to start/end of line.
	Fixed bug where removal of bogus elements would sometimes remove whitespace between nodes.
	Fixed bug where the resize handles wasn't updated when the main window was resized.
	Fixed so script elements gets removed by default to prevent possible XSS issues in default config implementations.
	Fixed so the UI doesn't need manual reflows when using non native layout managers.
	Fixed so base64 encoded images doesn't slow down the editor on modern browsers while editing.
	Fixed so all UI elements uses touch events to improve mobile device support.
	Removed the touch click quirks patch for iOS since it did more harm than good.
	Removed the non proportional resize handles since. Unproportional resize can still be done by holding the shift key.
Version 4.1.10 (2015-05-05)
	Fixed bug where plugins loaded with compat3x would sometimes throw errors when loading using the jQuery version.
	Fixed bug where extra empty paragraphs would get deleted in WebKit/Blink due to recent Quriks fix.
	Fixed bug where the editor wouldn't work properly on IE 12 due to some required browser sniffing.
	Fixed bug where formatting shortcut keys where interfering with Mac OS X screenshot keys.
	Fixed bug where the caret wouldn't move to the next/previous line boundary on Cmd+Left/Right on Gecko.
	Fixed bug where it wasn't possible to remove formats from very specific nested contents.
	Fixed bug where undo levels wasn't produced when typing letters using the shift or alt+ctrl modifiers.
	Fixed bug where the dirty state wasn't properly updated when typing using the shift or alt+ctrl modifiers.
	Fixed bug where an error would be thrown if an autofocused editor was destroyed quickly after its initialization. Patch provided by thorn0.
	Fixed issue with dirty state not being properly updated on redo operation.
	Fixed issue with entity decoder not handling incorrectly written numeric entities.
	Fixed issue where some PI element values wouldn't be properly encoded.
Version 4.1.9 (2015-03-10)
	Fixed bug where indentation wouldn't work properly for non list elements.
	Fixed bug with image plugin not pulling the image dimensions out correctly if a custom document_base_url was used.
	Fixed bug where ctrl+alt+[1-9] would conflict with the AltGr+[1-9] on Windows. New shortcuts is ctrl+shift+[1-9].
	Fixed bug with removing formatting on nodes in inline mode would sometimes include nodes outside the editor body.
	Fixed bug where extra nbsp:s would be inserted when you replaced a word surrounded by spaces using insertContent.
	Fixed bug with pasting from Google Docs would produce extra strong elements and line feeds.
Version 4.1.8 (2015-03-05)
	Added new html5 sizes attribute to img elements used together with srcset.
	Added new elementpath option that makes it possible to disable the element path but keep the statusbar.
	Added new option table_style_by_css for the table plugin to set table styling with css rather than table attributes.
	Added new link_assume_external_targets option to prompt the user to prepend http:// prefix if the supplied link does not contain a protocol prefix.
	Added new image_prepend_url option to allow a custom base path/url to be added to images.
	Added new table_appearance_options option to make it possible to disable some options.
	Added new image_title option to make it possible to alter the title of the image, disabled by default.
	Fixed bug where selection starting from out side of the body wouldn't produce a proper selection range on IE 11.
	Fixed bug where pressing enter twice before a table moves the cursor in the table and causes a javascript error.
	Fixed bug where advanced image styles were not respected.
	Fixed bug where the less common Shift+Delete didn't produce a proper cut operation on WebKit browsers.
	Fixed bug where image/media size constrain logic would produce NaN when handling non number values.
	Fixed bug where internal classes where removed by the removeformat command.
	Fixed bug with creating links table cell contents with a specific selection would throw a exceptions on WebKit/Blink.
	Fixed bug where valid_classes option didn't work as expected according to docs. Patch provided by thorn0.
	Fixed bug where jQuery plugin would patch the internal methods multiple times. Patch provided by Drew Martin.
	Fixed bug where backspace key wouldn't delete the current selection of newly formatted content.
	Fixed bug where type over of inline formatting elements wouldn't properly keep the format on WebKit/Blink.
	Fixed bug where selection needed to be properly normalized on modern IE versions.
	Fixed bug where Command+Backspace didn't properly delete the whole line of text but the previous word.
	Fixed bug where UI active states wheren't properly updated on IE if you placed caret within the current range.
	Fixed bug where delete/backspace on WebKit/Blink would remove span elements created by the user.
	Fixed bug where delete/backspace would produce incorrect results when deleting between two text blocks with br elements.
	Fixed bug where captions where removed when pasting from MS Office.
	Fixed bug where lists plugin wouldn't properly remove fully selected nested lists.
	Fixed bug where the ttf font used for icons would throw an warning message on Gecko on Mac OS X.
	Fixed a bug where applying a color to text did not update the undo/redo history.
	Fixed so shy entities gets displayed when using the visualchars plugin.
	Fixed so removeformat removes ins/del by default since these might be used for strikethough.
	Fixed so multiple language packs can be loaded and added to the global I18n data structure.
	Fixed so transparent color selection gets treated as a normal color selection. Patch contributed by Alexander Hofbauer.
	Fixed so it's possible to disable autoresize_overflow_padding, autoresize_bottom_margin options by setting them to false.
	Fixed so the charmap plugin shows the description of the character in the dialog. Patch contributed by Jelle Hissink.
	Removed address from the default list of block formats since it tends to be missused.
	Fixed so the pre block format is called preformatted to make it more verbose.
	Fixed so it's possible to context scope translation strings this isn't needed most of the time.
	Fixed so the max length of the width/height input fields of the media dialog is 5 instead of 3.
	Fixed so drag/dropped contents gets properly processed by paste plugin since it's basically a paste. Patch contributed by Greg Fairbanks.
	Fixed so shortcut keys for headers is ctrl+alt+[1-9] instead of ctrl+[1-9] since these are for switching tabs in the browsers.
	Fixed so "u" doesn't get converted into a span element by the legacy input filter. Since this is now a valid HTML5 element.
	Fixed font families in order to provide appropriate web-safe fonts.
Version 4.1.7 (2014-11-27)
	Added HTML5 schema support for srcset, source and picture. Patch contributed by mattheu.
	Added new cache_suffix setting to enable cache busting by producing unique urls.
	Added new paste_convert_word_fake_lists option to enable users to disable the fake lists convert logic.
	Fixed so advlist style changes adds undo levels for each change.
	Fixed bug where WebKit would sometimes produce an exception when the autolink plugin where looking for URLs.
	Fixed bug where IE 7 wouldn't be rendered properly due to to aggressive css compression.
	Fixed bug where DomQuery wouldn't accept window as constructor element.
	Fixed bug where the color picker in 3.x dialogs wouldn't work properly. Patch contributed by Callidior.
	Fixed bug where the image plugin wouldn't respect the document_base_url.
	Fixed bug where the jQuery plugin would fail to append to elements named array prototype names.
Version 4.1.6 (2014-10-08)
	Fixed bug with clicking on the scrollbar of the iframe would cause a JS error to be thrown.
	Fixed bug where null would produce an exception if you passed it to selection.setRng.
	Fixed bug where Ctrl/Cmd+Tab would indent the current list item if you switched tabs in the browser.
	Fixed bug where pasting empty cells from Excel would result in a broken table.
	Fixed bug where it wasn't possible to switch back to default list style type.
	Fixed issue where the select all quirk fix would fire for other modifiers than Ctrl/Cmd combinations.
	Replaced jake with grunt since it is more mainstream and has better plugin support.
Version 4.1.5 (2014-09-09)
	Fixed bug where sometimes the resize rectangles wouldn't properly render on images on WebKit/Blink.
	Fixed bug in list plugin where delete/backspace would merge empty LI elements in lists incorrectly.
	Fixed bug where empty list elements would result in empty LI elements without it's parent container.
	Fixed bug where backspace in empty caret formatted element could produce an type error exception of Gecko.
	Fixed bug where lists pasted from word with a custom start index above 9 wouldn't be properly handled.
	Fixed bug where tabfocus plugin would tab out of the editor instance even if the default action was prevented.
	Fixed bug where tabfocus wouldn't tab properly to other adjacent editor instances.
	Fixed bug where the DOMUtils setStyles wouldn't properly removed or update the data-mce-style attribute.
	Fixed bug where dialog select boxes would be placed incorrectly if document.body wasn't statically positioned.
	Fixed bug where pasting would sometimes scroll to the top of page if the user was using the autoresize plugin.
	Fixed bug where caret wouldn't be properly rendered by Chrome when clicking on the iframes documentElement.
	Fixed so custom images for menubutton/splitbutton can be provided. Patch contributed by Naim Hammadi.
	Fixed so the default action of windows closing can be prevented by blocking the default action of the close event.
	Fixed so nodeChange and focus of the editor isn't automatically performed when opening sub dialogs.
Version 4.1.4 (2014-08-21)
	Added new media_filter_html option to media plugin that blocks any conditional comments, scripts etc within a video element.
	Added new content_security_policy option allows you to set custom policy for iframe contents. Patch contributed by Francois Chagnon.
	Fixed bug where activate/deactivate events wasn't firing properly when switching between editors.
	Fixed bug where placing the caret on iOS was difficult due to a WebKit bug with touch events.
	Fixed bug where the resize helper wouldn't render properly on older IE versions.
	Fixed bug where resizing images inside tables on older IE versions would sometimes fail depending mouse position.
	Fixed bug where editor.insertContent would produce an exception when inserting select/option elements.
	Fixed bug where extra empty paragraphs would be produced if block elements where inserted inside span elements.
	Fixed bug where the spellchecker menu item wouldn't be properly checked if spell checking was started before it was rendered.
	Fixed bug where the DomQuery filter function wouldn't remove non elements from collection.
	Fixed bug where document with custom document.domain wouldn't properly render the editor.
	Fixed bug where IE 8 would throw exception when trying to enter invalid color values into colorboxes.
	Fixed bug where undo manager could incorrectly add an extra undo level when custom resize handles was removed.
	Fixed bug where it wouldn't be possible to alter cell properties properly on table cells on IE 8.
	Fixed so the color picker button in table dialog isn't shown unless you include the colorpicker plugin or add your own custom color picker.
	Fixed so activate/deactivate events fire when windowManager opens a window since.
	Fixed so the table advtab options isn't separated by an underscore to normalize naming with image_advtab option.
	Fixed so the table cell dialog has proper padding when the advanced tab in disabled.
Version 4.1.3 (2014-07-29)
	Added event binding logic to tinymce.util.XHR making it possible to override headers and settings before any request is made.
	Fixed bug where drag events wasn't fireing properly on older IE versions since the event handlers where bound to document.
	Fixed bug where drag/dropping contents within the editor on IE would force the contents into plain text mode even if it was internal content.
	Fixed bug where IE 7 wouldn't open menus properly due to a resize bug in the browser auto closing them immediately.
	Fixed bug where the DOMUtils getPos logic wouldn't produce a valid coordinate inside the body if the body was positioned non static.
	Fixed bug where the element path and format state wasn't properly updated if you had the wordcount plugin enabled.
	Fixed bug where a comment at the beginning of source would produce an exception in the formatter logic.
	Fixed bug where setAttrib/getAttrib on null would throw exception together with any hooked attributes like style.
	Fixed bug where table sizes wasn't properly retained when copy/pasting on WebKit/Blink.
	Fixed bug where WebKit/Blink would produce colors in RGB format instead of the forced HEX format when deleting contents.
	Fixed bug where the width attribute wasn't updated on tables if you changed the size inside the table dialog.
	Fixed bug where control selection wasn't properly handled when the caret was placed directly after an image.
	Fixed bug where selecting the contents of table cells using the selection.select method wouldn't place the caret properly.
	Fixed bug where the selection state for images wasn't removed when placing the caret right after an image on WebKit/Blink.
	Fixed bug where all events wasn't properly unbound when and editor instance was removed or destroyed by some external innerHTML call.
	Fixed bug where it wasn't possible or very hard to select images on iOS when the onscreen keyboard was visible.
	Fixed so auto_focus can take a boolean argument this will auto focus the last initialized editor might be useful for single inits.
	Fixed so word auto detect lists logic works better for faked lists that doesn't have specific markup.
	Fixed so nodeChange gets fired on mouseup as it used to before 4.1.1 we optimized that event to fire less often.
	Removed the finish menu item from spellchecker menu since it's redundant you can stop spellchecking by toggling menu item or button.
Version 4.1.2 (2014-07-15)
	Added offset/grep to DomQuery class works basically the same as it's jQuery equivalent.
	Fixed bug where backspace/delete or setContent with an empty string would remove header data when using the fullpage plugin.
	Fixed bug where tinymce.remove with a selector not matching any editors would remove all editors.
	Fixed bug where resizing of the editor didn't work since the theme was calling setStyles instead of setStyle.
	Fixed bug where IE 7 would fail to append html fragments to iframe document when using DomQuery.
	Fixed bug where the getStyle DOMUtils method would produce an exception if it was called with null as it's element.
	Fixed bug where the paste plugin would remove the element if the none of the paste_webkit_styles rules matched the current style.
	Fixed bug where contextmenu table items wouldn't work properly on IE since it would some times fire an incorrect selection change.
	Fixed bug where the padding/border values wasn't used in the size calculation for the body size when using autoresize. Patch contributed by Matt Whelan.
	Fixed bug where conditional word comments wouldn't be properly removed when pasting plain text.
	Fixed bug where resizing would sometime fail on IE 11 when the mouseup occurred inside the resizable element.
	Fixed so the iframe gets initialized without any inline event handlers for better CSP support. Patch contributed by Matt Whelan.
	Fixed so the tinymce.dom.Sizzle is the latest version of sizzle this resolves the document context bug.
Version 4.1.1 (2014-07-08)
	Fixed bug where pasting plain text on some WebKit versions would result in an empty line.
	Fixed bug where resizing images inside tables on IE 11 wouldn't work properly.
	Fixed bug where IE 11 would sometimes throw "Invalid argument" exception when editor contents was set to an empty string.
	Fixed bug where document.activeElement would throw exceptions on IE 9 when that element was hidden or removed from dom.
	Fixed bug where WebKit/Blink sometimes produced br elements with the Apple-interchange-newline class.
	Fixed bug where table cell selection wasn't properly removed when copy/pasting table cells.
	Fixed bug where pasting nested list items from Word wouldn't produce proper semantic nested lists.
	Fixed bug where right clicking using the contextmenu plugin on WebKit/Blink on Mac OS X would select the target current word or line.
	Fixed bug where it wasn't possible to alter table cell properties on IE 8 using the context menu.
	Fixed bug where the resize helper wouldn't be correctly positioned on older IE versions.
	Fixed bug where fullpage plugin would produce an error if you didn't specify a doctype encoding.
	Fixed bug where anchor plugin would get the name/id of the current element even if it wasn't anchor element.
	Fixed bug where visual aids for tables wouldn't be properly disabled when changing the border size.
	Fixed bug where some control selection events wasn't properly fired on older IE versions.
	Fixed bug where table cell selection on older IE versions would prevent resizing of images.
	Fixed bug with paste_data_images paste option not working properly on modern IE versions.
	Fixed bug where custom elements with underscores in the name wasn't properly parsed/serialized.
	Fixed bug where applying inline formats to nested list elements would produce an incorrect formatting result.
	Fixed so it's possible to hide items from elements path by using preventDefault/stopPropagation.
	Fixed so inline mode toolbar gets rendered right aligned if the editable element positioned to the documents right edge.
	Fixed so empty inline elements inside empty block elements doesn't get removed if configured to be kept intact.
	Fixed so DomQuery parentsUntil/prevUntil/nextUntil supports selectors/elements/filters etc.
	Fixed so legacyoutput plugin overrides fontselect and fontsizeselect controls and handles font elements properly.
Version 4.1.0 (2014-06-18)
	Added new file_picker_callback option to replace the old file_browser_callback the latter will still work though.
	Added new custom colors to textcolor plugin will be displayed if a color picker is provided also shows the latest colors.
	Added new color_picker_callback option to enable you to add custom color pickers to the editor.
	Added new advanced tabs to table/cell/row dialogs to enable you to select colors for border/background.
	Added new colorpicker plugin that lets you select colors from a hsv color picker.
	Added new tinymce.util.Color class to handle color parsing and converting.
	Added new colorpicker UI widget element lets you add a hsv color picker to any form/window.
	Added new textpattern plugin that allows you to use markdown like text patterns to format contents.
	Added new resize helper element that shows the current width & height while resizing.
	Added new "once" method to Editor and EventDispatcher enables since callback execution events.
	Added new jQuery like class under tinymce.dom.DomQuery it's exposed on editor instances (editor.$) and globally under (tinymce.$).
	Fixed so the default resize method for images are proportional shift/ctrl can be used to make an unproportional size.
	Fixed bug where the image_dimensions option of the image plugin would cause exceptions when it tried to update the size.
	Fixed bug where table cell dialog class field wasn't properly updated when editing an a table cell with an existing class.
	Fixed bug where Safari on Mac would produce webkit-fake-url for pasted images so these are now removed.
	Fixed bug where the nodeChange event would get fired before the selection was changed when clicking inside the current selection range.
	Fixed bug where valid_classes option would cause exception when it removed internal prefixed classes like mce-item-.
	Fixed bug where backspace would cause navigation in IE 8 on an inline element and after a caret formatting was applied.
	Fixed so placeholder images produced by the media plugin gets selected when inserted/edited.
	Fixed so it's possible to drag in images when the paste_data_images option is enabled. Might be useful for mail clients.
	Fixed so images doesn't get a width/height applied if the image_dimensions option is set to false useful for responsive contents.
	Fixed so it's possible to pass in an optional arguments object for the nodeChanged function to be passed to all nodechange event listeners.
	Fixed bug where media plugin embed code didn't update correctly.
editors/tinymce/plugins/spellchecker/plugin.min.js000064400000023500152177723720016445 0ustar00!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o<e.length;++o){if(n=a[e[o]]||i(e[o]),!n)throw"module definition dependecy not found: "+e[o];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){a[e]=i.apply(null,arguments)})}function i(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function o(n){var r,i,o,s,l;for(r=0;r<n.length;r++){i=e,o=n[r],s=o.split(/[.\/]/);for(var c=0;c<s.length-1;++c)i[s[c]]===t&&(i[s[c]]={}),i=i[s[c]];i[s[s.length-1]]=a[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in a)l[o]=a[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var a={};r("tinymce/spellcheckerplugin/DomTextMatcher",[],function(){function e(e){return e&&1==e.nodeType&&"false"===e.contentEditable}return function(t,n){function r(e,t){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function i(t){var n;if(3===t.nodeType)return t.data;if(k[t.nodeName]&&!N[t.nodeName])return"";if(e(t))return"\n";if(n="",(N[t.nodeName]||S[t.nodeName])&&(n+="\n"),t=t.firstChild)do n+=i(t);while(t=t.nextSibling);return n}function o(t,n,r){var i,o,a,s,l,c=[],u=0,d=t,f=0;n=n.slice(0),n.sort(function(e,t){return e.start-t.start}),l=n.shift();e:for(;;){if((N[d.nodeName]||S[d.nodeName]||e(d))&&u++,3===d.nodeType&&(!o&&d.length+u>=l.end?(o=d,s=l.end-u):i&&c.push(d),!i&&d.length+u>l.start&&(i=d,a=l.start-u),u+=d.length),i&&o){if(d=r({startNode:i,startNodeIndex:a,endNode:o,endNodeIndex:s,innerNodes:c,match:l.text,matchIndex:f}),u-=o.length-s,i=null,o=null,c=[],l=n.shift(),f++,!l)break}else if(k[d.nodeName]&&!N[d.nodeName]||!d.firstChild){if(d.nextSibling){d=d.nextSibling;continue}}else if(!e(d)){d=d.firstChild;continue}for(;;){if(d.nextSibling){d=d.nextSibling;break}if(d.parentNode===t)break e;d=d.parentNode}}}function a(e){function t(t,n){var r=_[n];r.stencil||(r.stencil=e(r));var i=r.stencil.cloneNode(!1);return i.setAttribute("data-mce-index",n),t&&i.appendChild(E.doc.createTextNode(t)),i}return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex,l=E.doc;if(o===a){var c=o;i=c.parentNode,e.startNodeIndex>0&&(n=l.createTextNode(c.data.substring(0,e.startNodeIndex)),i.insertBefore(n,c));var u=t(e.match,s);return i.insertBefore(u,c),e.endNodeIndex<c.length&&(r=l.createTextNode(c.data.substring(e.endNodeIndex)),i.insertBefore(r,c)),c.parentNode.removeChild(c),u}n=l.createTextNode(o.data.substring(0,e.startNodeIndex)),r=l.createTextNode(a.data.substring(e.endNodeIndex));for(var d=t(o.data.substring(e.startNodeIndex),s),f=[],p=0,m=e.innerNodes.length;p<m;++p){var g=e.innerNodes[p],h=t(g.data,s);g.parentNode.replaceChild(h,g),f.push(h)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(d,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}function s(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function l(e){var n=t.getElementsByTagName("*"),r=[];e="number"==typeof e?""+e:null;for(var i=0;i<n.length;i++){var o=n[i],a=o.getAttribute("data-mce-index");null!==a&&a.length&&(a!==e&&null!==e||r.push(o))}return r}function c(e){for(var t=_.length;t--;)if(_[t]===e)return t;return-1}function u(e){var t=[];return d(function(n,r){e(n,r)&&t.push(n)}),_=t,this}function d(e){for(var t=0,n=_.length;t<n&&e(_[t],t)!==!1;t++);return this}function f(e){return _.length&&o(t,_,a(e)),this}function p(e,t){if(w&&e.global)for(;C=e.exec(w);)_.push(r(C,t));return this}function m(e){var t,n=l(e?c(e):null);for(t=n.length;t--;)s(n[t]);return this}function g(e){return _[e.getAttribute("data-mce-index")]}function h(e){return l(c(e))[0]}function v(e,t,n){return _.push({start:e,end:e+t,text:w.substr(e,t),data:n}),this}function b(e){var t=l(c(e)),r=n.dom.createRng();return r.setStartBefore(t[0]),r.setEndAfter(t[t.length-1]),r}function y(e,t){var r=b(e);return r.deleteContents(),t.length>0&&r.insertNode(n.dom.doc.createTextNode(t)),r}function x(){return _.splice(0,_.length),m(),this}var C,w,N,k,S,_=[],E=n.dom;return N=n.schema.getBlockElements(),k=n.schema.getWhiteSpaceElements(),S=n.schema.getShortEndedElements(),w=i(t),{text:w,matches:_,each:d,filter:u,reset:x,matchFromElement:g,elementFromMatch:h,find:p,add:v,wrap:f,unwrap:m,replace:y,rangeFromMatch:b,indexOf:c}}}),r("tinymce/spellcheckerplugin/Plugin",["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/PluginManager","tinymce/util/Tools","tinymce/ui/Menu","tinymce/dom/DOMUtils","tinymce/util/XHR","tinymce/util/URI","tinymce/util/JSON"],function(e,t,n,r,i,o,a,s){t.add("spellchecker",function(l,c){function u(){return B.textMatcher||(B.textMatcher=new e(l.getBody(),l)),B.textMatcher}function d(e,t){var r=[];return n.each(t,function(e){r.push({selectable:!0,text:e.name,data:e.value})}),r}function f(e){for(var t in e)return!1;return!0}function p(e,t){var o=[],a=E[e];n.each(a,function(e){o.push({text:e,onclick:function(){l.insertContent(l.dom.encode(e)),l.dom.remove(t),b()}})}),o.push({text:"-"}),A&&o.push({text:"Add to Dictionary",onclick:function(){y(e,t)}}),o.push.apply(o,[{text:"Ignore",onclick:function(){x(e,t)}},{text:"Ignore all",onclick:function(){x(e,t,!0)}}]),R=new r({items:o,context:"contextmenu",onautohide:function(e){e.target.className.indexOf("spellchecker")!=-1&&e.preventDefault()},onhide:function(){R.remove(),R=null}}),R.renderTo(document.body);var s=i.DOM.getPos(l.getContentAreaContainer()),c=l.dom.getPos(t[0]),u=l.dom.getRoot();"BODY"==u.nodeName?(c.x-=u.ownerDocument.documentElement.scrollLeft||u.scrollLeft,c.y-=u.ownerDocument.documentElement.scrollTop||u.scrollTop):(c.x-=u.scrollLeft,c.y-=u.scrollTop),s.x+=c.x,s.y+=c.y,R.moveTo(s.x,s.y+t[0].offsetHeight)}function m(){return l.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+',"g")}function g(e,t,r,i){var u={method:e,lang:P.spellchecker_language},d="";u["addToDictionary"==e?"word":"text"]=t,n.each(u,function(e,t){d&&(d+="&"),d+=t+"="+encodeURIComponent(e)}),o.send({url:new a(c).toAbsolute(P.spellchecker_rpc_url),type:"post",content_type:"application/x-www-form-urlencoded",data:d,success:function(e){if(e=s.parse(e))e.error?i(e.error):r(e);else{var t=l.translate("Server response wasn't proper JSON.");i(t)}},error:function(){var e=l.translate("The spelling service was not found: (")+P.spellchecker_rpc_url+l.translate(")");i(e)}})}function h(e,t,n,r){var i=P.spellchecker_callback||g;i.call(B,e,t,n,r)}function v(){function e(e){l.notificationManager.open({text:e,type:"error"}),l.setProgressState(!1),C()}C()||(l.setProgressState(!0),h("spellcheck",u().text,S,e),l.focus())}function b(){l.dom.select("span.mce-spellchecker-word").length||C()}function y(e,t){l.setProgressState(!0),h("addToDictionary",e,function(){l.setProgressState(!1),l.dom.remove(t,!0),b()},function(e){l.notificationManager.open({text:e,type:"error"}),l.setProgressState(!1)})}function x(e,t,r){l.selection.collapse(),r?n.each(l.dom.select("span.mce-spellchecker-word"),function(t){t.getAttribute("data-mce-word")==e&&l.dom.remove(t,!0)}):l.dom.remove(t,!0),b()}function C(){if(u().reset(),B.textMatcher=null,T)return T=!1,l.fire("SpellcheckEnd"),!0}function w(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function N(e){var t,r=[];if(t=n.toArray(l.getBody().getElementsByTagName("span")),t.length)for(var i=0;i<t.length;i++){var o=w(t[i]);null!==o&&o.length&&o===e.toString()&&r.push(t[i])}return r}function k(e){var t=P.spellchecker_language;e.control.items().each(function(e){e.active(e.settings.data===t)})}function S(e){var t;if(e.words?(A=!!e.dictionary,t=e.words):t=e,l.setProgressState(!1),f(t)){var n=l.translate("No misspellings found.");return l.notificationManager.open({text:n,type:"info"}),void(T=!1)}E=t,u().find(m()).filter(function(e){return!!t[e.text]}).wrap(function(e){return l.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1,"data-mce-word":e.text})}),T=!0,l.fire("SpellcheckStart")}var _,E,T,R,A,B=this,P=l.settings;if(/(^|[ ,])tinymcespellchecker([, ]|$)/.test(P.plugins)&&t.get("tinymcespellchecker"))return void("undefined"!=typeof console&&console.log&&console.log("Spell Checker Pro is incompatible with Spell Checker plugin! Remove 'spellchecker' from the 'plugins' option."));var D=P.spellchecker_languages||"English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv";_=d("Language",n.map(D.split(","),function(e){return e=e.split("="),{name:e[0],value:e[1]}})),l.on("click",function(e){var t=e.target;if("mce-spellchecker-word"==t.className){e.preventDefault();var n=N(w(t));if(n.length>0){var r=l.dom.createRng();r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),l.selection.setRng(r),p(t.getAttribute("data-mce-word"),n)}}}),l.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:v,selectable:!0,onPostRender:function(){var e=this;e.active(T),l.on("SpellcheckStart SpellcheckEnd",function(){e.active(T)})}});var M={tooltip:"Spellcheck",onclick:v,onPostRender:function(){var e=this;l.on("SpellcheckStart SpellcheckEnd",function(){e.active(T)})}};_.length>1&&(M.type="splitbutton",M.menu=_,M.onshow=k,M.onselect=function(e){P.spellchecker_language=e.control.settings.data}),l.addButton("spellchecker",M),l.addCommand("mceSpellCheck",v),l.on("remove",function(){R&&(R.remove(),R=null)}),l.on("change",b),this.getTextMatcher=u,this.getWordCharPattern=m,this.markErrors=S,this.getLanguage=function(){return P.spellchecker_language},P.spellchecker_language=P.spellchecker_language||P.language||"en"})}),o(["tinymce/spellcheckerplugin/DomTextMatcher"])}(window);editors/tinymce/plugins/imagetools/plugin.min.js000064400000074267152177723720016164 0ustar00!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l<a;++l)s[l]=r(i[l]);var c=o.apply(null,s);if(void 0===c)throw"module ["+t+"] returned undefined";n.instance=c},n=function(t,n,r){if("string"!=typeof t)throw"module id must be a string";if(void 0===n)throw"no dependencies for "+t;if(void 0===r)throw"no definition function for "+t;e[t]={deps:n,defn:r,instance:void 0}},r=function(n){var r=e[n];if(void 0===r)throw"module ["+n+"] was undefined";return void 0===r.instance&&t(n),r.instance},i=function(e,t){for(var n=e.length,i=new Array(n),o=0;o<n;++o)i[o]=r(e[o]);t.apply(null,i)},o={};o.bolt={module:{api:{define:n,require:i,demand:r}}};var a=n,s=function(e,t){a(e,[],function(){return t})};s("1",tinymce.PluginManager),s("2",tinymce.Env),s("3",tinymce.util.Promise),s("4",tinymce.util.URI),s("5",tinymce.util.Tools),s("6",tinymce.util.Delay),a("m",[],function(){function e(e,t){return r(document.createElement("canvas"),e,t)}function t(e){return e.getContext("2d")}function n(e){var t=null;try{t=e.getContext("webgl")||e.getContext("experimental-webgl")}catch(e){}return t||(t=null),t}function r(e,t,n){return e.width=t,e.height=n,e}return{create:e,resize:r,get2dContext:t,get3dContext:n}}),a("n",[],function(){function e(e){return e.naturalWidth||e.width}function t(e){return e.naturalHeight||e.height}return{getWidth:e,getHeight:t}}),a("o",[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(t){return void e.reject(t)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(e){i.call(this,e)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;e<t;e++)n.call(this,this._deferreds[e]);this._deferreds=null}function a(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function s(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(e){if(r)return;r=!0,n(e)}}if(window.Promise)return window.Promise;var l=t.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)},c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return t.prototype["catch"]=function(e){return this.then(null,e)},t.prototype.then=function(e,r){var i=this;return new t(function(t,o){n.call(i,new a(e,r,t,o))})},t.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&c(arguments[0])?arguments[0]:arguments);return new t(function(t,n){function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){r(o,e)},n)}e[o]=a,0===--i&&t(e)}catch(e){n(e)}}if(0===e.length)return t([]);for(var i=e.length,o=0;o<e.length;o++)r(o,e[o])})},t.resolve=function(e){return e&&"object"==typeof e&&e.constructor===t?e:new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.race=function(e){return new t(function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)})},t}),a("p",[],function(){function e(e){var t=document.createElement("a");return t.href=e,t.pathname}function t(t){var n=e(t).split("."),r=n[n.length-1],i={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png"};return r&&(r=r.toLowerCase()),i[r]}return{guessMimeType:t}}),a("e",["o","m","p","n"],function(e,t,n,r){function i(t){return new e(function(e){function n(){t.removeEventListener("load",n),e(t)}t.complete?e(t):t.addEventListener("load",n)})}function o(e){return i(e).then(function(e){var n,i;return i=t.create(r.getWidth(e),r.getHeight(e)),n=t.get2dContext(i),n.drawImage(e,0,0),i})}function a(e){return i(e).then(function(e){var t=e.src;return 0===t.indexOf("blob:")?l(t):0===t.indexOf("data:")?c(t):o(e).then(function(e){return c(e.toDataURL(n.guessMimeType(t)))})})}function s(t){return new e(function(e){function n(){r.removeEventListener("load",n),e(r)}var r=new Image;r.addEventListener("load",n),r.src=URL.createObjectURL(t),r.complete&&n()})}function l(t){return new e(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function c(t){return new e(function(e){var n,r,i,o,a,s;if(t=t.split(","),o=/data:([^;]+)/.exec(t[0]),o&&(a=o[1]),n=atob(t[1]),window.WebKitBlobBuilder){for(s=new WebKitBlobBuilder,r=new ArrayBuffer(n.length),i=0;i<r.length;i++)r[i]=n.charCodeAt(i);return s.append(r),void e(s.getBlob(a))}for(r=new Uint8Array(n.length),i=0;i<r.length;i++)r[i]=n.charCodeAt(i);e(new Blob([r],{type:a}))})}function u(e){return 0===e.indexOf("blob:")?l(e):0===e.indexOf("data:")?c(e):null}function d(e,t){return c(e.toDataURL(t))}function f(t){return new e(function(e){var n=new FileReader;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}function p(e){return f(e).then(function(e){return e.split(",")[1]})}function m(e){URL.revokeObjectURL(e.src)}return{blobToImage:s,imageToBlob:a,blobToDataUri:f,blobToBase64:p,imageToCanvas:o,canvasToBlob:d,revokeImageUrl:m,uriToBlob:u}}),a("q",[],function(){function e(e,t,n){return e=parseFloat(e),e>n?e=n:e<t&&(e=t),e}function t(){return[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}function n(e,t){var n,r,i,o,a=[],s=new Array(10);for(n=0;n<5;n++){for(r=0;r<5;r++)a[r]=t[r+5*n];for(r=0;r<5;r++){for(o=0,i=0;i<5;i++)o+=e[r+5*i]*a[i];s[r+5*n]=o}}return s}function r(t,n){return n=e(n,0,1),t.map(function(t,r){return r%6===0?t=1-(1-t)*n:t*=n,e(t,0,1)})}function i(t,r){var i;return r=e(r,-1,1),r*=100,r<0?i=127+r/100*127:(i=r%1,i=0===i?d[r]:d[Math.floor(r)]*(1-i)+d[Math.floor(r)+1]*i,i=127*i+127),n(t,[i/127,0,0,0,.5*(127-i),0,i/127,0,0,.5*(127-i),0,0,i/127,0,.5*(127-i),0,0,0,1,0,0,0,0,0,1])}function o(t,r){var i,o,a,s;return r=e(r,-1,1),i=1+(r>0?3*r:r),o=.3086,a=.6094,s=.082,n(t,[o*(1-i)+i,a*(1-i),s*(1-i),0,0,o*(1-i),a*(1-i)+i,s*(1-i),0,0,o*(1-i),a*(1-i),s*(1-i)+i,0,0,0,0,0,1,0,0,0,0,0,1])}function a(t,r){var i,o,a,s,l;return r=e(r,-180,180)/180*Math.PI,i=Math.cos(r),o=Math.sin(r),a=.213,s=.715,l=.072,n(t,[a+i*(1-a)+o*-a,s+i*-s+o*-s,l+i*-l+o*(1-l),0,0,a+i*-a+.143*o,s+i*(1-s)+.14*o,l+i*-l+o*-.283,0,0,a+i*-a+o*-(1-a),s+i*-s+o*s,l+i*(1-l)+o*l,0,0,0,0,0,1,0,0,0,0,0,1])}function s(t,r){return r=e(255*r,-255,255),n(t,[1,0,0,0,r,0,1,0,0,r,0,0,1,0,r,0,0,0,1,0,0,0,0,0,1])}function l(t,r,i,o){return r=e(r,0,2),i=e(i,0,2),o=e(o,0,2),n(t,[r,0,0,0,0,0,i,0,0,0,0,0,o,0,0,0,0,0,1,0,0,0,0,0,1])}function c(t,i){return i=e(i,0,1),n(t,r([.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0,0,0,0,0,1],i))}function u(t,i){return i=e(i,0,1),n(t,r([.33,.34,.33,0,0,.33,.34,.33,0,0,.33,.34,.33,0,0,0,0,0,1,0,0,0,0,0,1],i))}var d=[0,.01,.02,.04,.05,.06,.07,.08,.1,.11,.12,.14,.15,.16,.17,.18,.2,.21,.22,.24,.25,.27,.28,.3,.32,.34,.36,.38,.4,.42,.44,.46,.48,.5,.53,.56,.59,.62,.65,.68,.71,.74,.77,.8,.83,.86,.89,.92,.95,.98,1,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.54,1.6,1.66,1.72,1.78,1.84,1.9,1.96,2,2.12,2.25,2.37,2.5,2.62,2.75,2.87,3,3.2,3.4,3.6,3.8,4,4.3,4.7,4.9,5,5.5,6,6.5,6.8,7,7.3,7.5,7.8,8,8.4,8.7,9,9.4,9.6,9.8,10];return{identity:t,adjust:r,multiply:n,adjustContrast:i,adjustBrightness:s,adjustSaturation:o,adjustHue:a,adjustColors:l,adjustSepia:c,adjustGrayscale:u}}),a("c",["m","n","e","q"],function(e,t,n,r){function i(r,i){return n.blobToImage(r).then(function(r){function o(e,t){var n,r,i,o,a,s=e.data,l=t[0],c=t[1],u=t[2],d=t[3],f=t[4],p=t[5],m=t[6],g=t[7],h=t[8],v=t[9],b=t[10],y=t[11],x=t[12],C=t[13],w=t[14],N=t[15],k=t[16],S=t[17],_=t[18],E=t[19];for(a=0;a<s.length;a+=4)n=s[a],r=s[a+1],i=s[a+2],o=s[a+3],s[a]=n*l+r*c+i*u+o*d+f,s[a+1]=n*p+r*m+i*g+o*h+v,s[a+2]=n*b+r*y+i*x+o*C+w,s[a+3]=n*N+r*k+i*S+o*_+E;return e}var a,s=e.create(t.getWidth(r),t.getHeight(r)),l=e.get2dContext(s);return l.drawImage(r,0,0),u(r),a=o(l.getImageData(0,0,s.width,s.height),i),l.putImageData(a,0,0),n.canvasToBlob(s)})}function o(r,i){return n.blobToImage(r).then(function(r){function o(e,t,n){function r(e,t,n){return e>n?e=n:e<t&&(e=t),e}var i,o,a,s,l,c,u,d,f,p,m,g,h,v,b,y,x;for(a=Math.round(Math.sqrt(n.length)),s=Math.floor(a/2),i=e.data,o=t.data,y=e.width,x=e.height,c=0;c<x;c++)for(l=0;l<y;l++){for(u=d=f=0,m=0;m<a;m++)for(p=0;p<a;p++)g=r(l+p-s,0,y-1),h=r(c+m-s,0,x-1),v=4*(h*y+g),b=n[m*a+p],u+=i[v]*b,d+=i[v+1]*b,f+=i[v+2]*b;v=4*(c*y+l),o[v]=r(u,0,255),o[v+1]=r(d,0,255),o[v+2]=r(f,0,255)}return t}var a,s,l=e.create(t.getWidth(r),t.getHeight(r)),c=e.get2dContext(l);return c.drawImage(r,0,0),u(r),a=c.getImageData(0,0,l.width,l.height),s=c.getImageData(0,0,l.width,l.height),s=o(a,s,i),c.putImageData(s,0,0),n.canvasToBlob(l)})}function a(r){return function(i,o){return n.blobToImage(i).then(function(i){function a(e,t){var n,r=e.data;for(n=0;n<r.length;n+=4)r[n]=t[r[n]],r[n+1]=t[r[n+1]],r[n+2]=t[r[n+2]];return e}var s,l,c=e.create(t.getWidth(i),t.getHeight(i)),d=e.get2dContext(c),f=new Array(256);for(l=0;l<f.length;l++)f[l]=r(l,o);return d.drawImage(i,0,0),u(i),s=a(d.getImageData(0,0,c.width,c.height),f),d.putImageData(s,0,0),n.canvasToBlob(c)})}}function s(e){return function(t,n){return i(t,e(r.identity(),n))}}function l(e){return function(t){return i(t,e)}}function c(e){return function(t){return o(t,e)}}var u=n.revokeImageUrl;return{invert:l([-1,0,0,0,255,0,-1,0,0,255,0,0,-1,0,255,0,0,0,1,0]),brightness:s(r.adjustBrightness),hue:s(r.adjustHue),saturate:s(r.adjustSaturation),contrast:s(r.adjustContrast),grayscale:s(r.adjustGrayscale),sepia:s(r.adjustSepia),colorize:function(e,t,n,o){return i(e,r.adjustColors(r.identity(),t,n,o))},sharpen:c([0,-1,0,-1,5,-1,0,-1,0]),emboss:c([-2,-1,0,-1,1,1,0,1,2]),gamma:a(function(e,t){return 255*Math.pow(e/255,1-t)}),exposure:a(function(e,t){return 255*(1-Math.exp(-(e/255)*t))}),colorFilter:i,convoluteFilter:o}}),a("r",["o","e","m","n"],function(e,t,n,r){function i(e,t,n){var a=r.getWidth(e),s=r.getHeight(e),l=t/a,c=n/s,u=!1;(l<.5||l>2)&&(l=l<.5?.5:2,u=!0),(c<.5||c>2)&&(c=c<.5?.5:2,u=!0);var d=o(e,l,c);return u?d.then(function(e){return i(e,t,n)}):d}function o(t,i,o){return new e(function(e){var a=r.getWidth(t),s=r.getHeight(t),l=Math.floor(a*i),c=Math.floor(s*o),u=n.create(l,c),d=n.get2dContext(u);d.drawImage(t,0,0,a,s,0,0,l,c),e(u)})}return{scale:i}}),a("d",["e","m","n","r"],function(e,t,n,r){function i(r,i){return e.blobToImage(r).then(function(o){var a=t.create(n.getWidth(o),n.getHeight(o)),s=t.get2dContext(a),c=0,u=0;return i=i<0?360+i:i,90!=i&&270!=i||t.resize(a,a.height,a.width),90!=i&&180!=i||(c=a.width),270!=i&&180!=i||(u=a.height),s.translate(c,u),s.rotate(i*Math.PI/180),s.drawImage(o,0,0),l(o),e.canvasToBlob(a,r.type)})}function o(r,i){return e.blobToImage(r).then(function(r){var o=t.create(n.getWidth(r),n.getHeight(r)),a=t.get2dContext(o);return"v"==i?(a.scale(1,-1),a.drawImage(r,0,-o.height)):(a.scale(-1,1),a.drawImage(r,-o.width,0)),l(r),e.canvasToBlob(o)})}function a(n,r,i,o,a){return e.blobToImage(n).then(function(n){var s=t.create(o,a),c=t.get2dContext(s);return c.drawImage(n,-r,-i),l(n),e.canvasToBlob(s)})}function s(t,n,i){return e.blobToImage(t).then(function(o){var a;return a=r.scale(o,n,i).then(function(n){return e.canvasToBlob(n,t.type)}).then(c(o))["catch"](c(o))})}var l=e.revokeImageUrl,c=function(e){return function(t){return l(e),t}};return{rotate:i,flip:o,crop:a,resize:s}}),a("7",["c","d"],function(e,t){var n=function(t){return e.invert(t)},r=function(t){return e.sharpen(t)},i=function(t){return e.emboss(t)},o=function(t,n){return e.gamma(t,n)},a=function(t,n){return e.exposure(t,n)},s=function(t,n,r,i){return e.colorize(t,n,r,i)},l=function(t,n){return e.brightness(t,n)},c=function(t,n){return e.hue(t,n)},u=function(t,n){return e.saturate(t,n)},d=function(t,n){return e.contrast(t,n)},f=function(t,n){return e.grayscale(t,n)},p=function(t,n){return e.sepia(t,n)},m=function(e,n){return t.flip(e,n)},g=function(e,n,r,i,o){return t.crop(e,n,r,i,o)},h=function(e,n,r){return t.resize(e,n,r)},v=function(e,n){return t.rotate(e,n)};return{invert:n,sharpen:r,emboss:i,brightness:l,hue:c,saturate:u,contrast:d,grayscale:f,sepia:p,colorize:s,gamma:o,exposure:a,flip:m,crop:g,resize:h,rotate:v}}),a("8",["e"],function(e){var t=function(t){return e.blobToImage(t)},n=function(t){return e.imageToBlob(t)},r=function(t){return e.blobToDataUri(t)},i=function(t){return e.blobToBase64(t)};return{blobToImage:t,imageToBlob:n,blobToDataUri:r,blobToBase64:i}}),s("f",tinymce.dom.DOMUtils),s("g",tinymce.ui.Factory),s("h",tinymce.ui.Form),s("i",tinymce.ui.Container),s("s",tinymce.ui.Control),s("t",tinymce.ui.DragHelper),s("u",tinymce.geom.Rect),s("w",tinymce.dom.DomQuery),s("x",tinymce.util.Observable),s("y",tinymce.util.VK),a("v",["w","t","u","5","x","y"],function(e,t,n,r,i,o){var a=0;return function(s,l,c,u,d){function f(e,t){return{x:t.x+e.x,y:t.y+e.y,w:t.w,h:t.h}}function p(e,t){return{x:t.x-e.x,y:t.y-e.y,w:t.w,h:t.h}}function m(){return p(c,s)}function g(e,t,r,i){var o,a,l,u,d;o=t.x,a=t.y,l=t.w,u=t.h,o+=r*e.deltaX,a+=i*e.deltaY,l+=r*e.deltaW,u+=i*e.deltaH,l<20&&(l=20),u<20&&(u=20),d=s=n.clamp({x:o,y:a,w:l,h:u},c,"move"==e.name),d=p(c,d),k.fire("updateRect",{rect:d}),C(d)}function h(){function n(e){var n;return new t(R,{document:u.ownerDocument,handle:R+"-"+e.name,start:function(){n=s},drag:function(t){g(e,n,t.deltaX,t.deltaY)}})}e('<div id="'+R+'" class="'+T+'croprect-container" role="grid" aria-dropeffect="execute">').appendTo(u),r.each(E,function(t){e("#"+R,u).append('<div id="'+R+"-"+t+'"class="'+T+'croprect-block" style="display: none" data-mce-bogus="all">')}),r.each(S,function(t){e("#"+R,u).append('<div id="'+R+"-"+t.name+'" class="'+T+"croprect-handle "+T+"croprect-handle-"+t.name+'"style="display: none" data-mce-bogus="all" role="gridcell" tabindex="-1" aria-label="'+t.label+'" aria-grabbed="false">')}),_=r.map(S,n),b(s),e(u).on("focusin focusout",function(t){e(t.target).attr("aria-grabbed","focus"===t.type)}),e(u).on("keydown",function(e){function t(e,t,r,i,o){e.stopPropagation(),e.preventDefault(),g(n,r,i,o)}var n;switch(r.each(S,function(t){if(e.target.id==R+"-"+t.name)return n=t,!1}),e.keyCode){case o.LEFT:t(e,n,s,-10,0);break;case o.RIGHT:t(e,n,s,10,0);break;case o.UP:t(e,n,s,0,-10);break;case o.DOWN:t(e,n,s,0,10);break;case o.ENTER:case o.SPACEBAR:e.preventDefault(),d()}})}function v(t){var n;n=r.map(S,function(e){return"#"+R+"-"+e.name}).concat(r.map(E,function(e){return"#"+R+"-"+e})).join(","),t?e(n,u).show():e(n,u).hide()}function b(t){function n(t,n){n.h<0&&(n.h=0),n.w<0&&(n.w=0),e("#"+R+"-"+t,u).css({left:n.x,top:n.y,width:n.w,height:n.h})}r.each(S,function(n){e("#"+R+"-"+n.name,u).css({left:t.w*n.xMul+t.x,top:t.h*n.yMul+t.y})}),n("top",{x:l.x,y:l.y,w:l.w,h:t.y-l.y}),n("right",{x:t.x+t.w,y:t.y,w:l.w-t.x-t.w+l.x,h:t.h}),n("bottom",{x:l.x,y:t.y+t.h,w:l.w,h:l.h-t.y-t.h+l.y}),n("left",{x:l.x,y:t.y,w:t.x-l.x,h:t.h}),n("move",t)}function y(e){s=e,b(s)}function x(e){l=e,b(s)}function C(e){y(f(c,e))}function w(e){c=e,b(s)}function N(){r.each(_,function(e){e.destroy()}),_=[]}var k,S,_,E,T="mce-",R=T+"crid-"+a++;return S=[{name:"move",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:0,deltaH:0,label:"Crop Mask"},{name:"nw",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:-1,deltaH:-1,label:"Top Left Crop Handle"},{name:"ne",xMul:1,yMul:0,deltaX:0,deltaY:1,deltaW:1,deltaH:-1,label:"Top Right Crop Handle"},{name:"sw",xMul:0,yMul:1,deltaX:1,deltaY:0,deltaW:-1,deltaH:1,label:"Bottom Left Crop Handle"},{name:"se",xMul:1,yMul:1,deltaX:0,deltaY:0,deltaW:1,deltaH:1,label:"Bottom Right Crop Handle"}],E=["top","right","bottom","left"],h(u),k=r.extend({toggleVisibility:v,setClampRect:w,setRect:y,getInnerRect:m,setInnerRect:C,setViewPortRect:x,destroy:N},i)}}),a("j",["s","t","u","5","3","v"],function(e,t,n,r,i,o){function a(e){return new i(function(t){function n(){e.removeEventListener("load",n),t(e)}e.complete?t(e):e.addEventListener("load",n)})}return e.extend({Defaults:{classes:"imagepanel"},selection:function(e){return arguments.length?(this.state.set("rect",e),this):this.state.get("rect")},imageSize:function(){var e=this.state.get("viewRect");return{w:e.w,h:e.h}},toggleCropRect:function(e){this.state.set("cropEnabled",e)},imageSrc:function(e){var t=this,r=new Image;r.src=e,a(r).then(function(){var e,i,o=t.state.get("viewRect");if(i=t.$el.find("img"),i[0])i.replaceWith(r);else{var a=document.createElement("div");a.className="mce-imagepanel-bg",t.getEl().appendChild(a),t.getEl().appendChild(r)}e={x:0,y:0,w:r.naturalWidth,h:r.naturalHeight},t.state.set("viewRect",e),t.state.set("rect",n.inflate(e,-20,-20)),o&&o.w==e.w&&o.h==e.h||t.zoomFit(),t.repaintImage(),t.fire("load")})},zoom:function(e){return arguments.length?(this.state.set("zoom",e),this):this.state.get("zoom")},postRender:function(){return this.imageSrc(this.settings.imageSrc),this._super()},zoomFit:function(){var e,t,n,r,i,o,a,s=this;a=10,e=s.$el.find("img"),t=s.getEl().clientWidth,n=s.getEl().clientHeight,r=e[0].naturalWidth,i=e[0].naturalHeight,o=Math.min((t-a)/r,(n-a)/i),o>=1&&(o=1),s.zoom(o)},repaintImage:function(){var e,t,n,r,i,o,a,s,l,c,u;u=this.getEl(),l=this.zoom(),c=this.state.get("rect"),a=this.$el.find("img"),s=this.$el.find(".mce-imagepanel-bg"),i=u.offsetWidth,o=u.offsetHeight,n=a[0].naturalWidth*l,r=a[0].naturalHeight*l,e=Math.max(0,i/2-n/2),t=Math.max(0,o/2-r/2),a.css({left:e,top:t,width:n,height:r}),s.css({left:e,top:t,width:n,height:r}),this.cropRect&&(this.cropRect.setRect({x:c.x*l+e,y:c.y*l+t,w:c.w*l,h:c.h*l}),this.cropRect.setClampRect({x:e,y:t,w:n,h:r}),this.cropRect.setViewPortRect({x:0,y:0,w:i,h:o}))},bindStates:function(){function e(e){t.cropRect=new o(e,t.state.get("viewRect"),t.state.get("viewRect"),t.getEl(),function(){t.fire("crop")}),t.cropRect.on("updateRect",function(e){var n=e.rect,r=t.zoom();n={x:Math.round(n.x/r),y:Math.round(n.y/r),w:Math.round(n.w/r),h:Math.round(n.h/r)},t.state.set("rect",n)}),t.on("remove",t.cropRect.destroy)}var t=this;t.state.on("change:cropEnabled",function(e){t.cropRect.toggleVisibility(e.value),t.repaintImage()}),t.state.on("change:zoom",function(){t.repaintImage()}),t.state.on("change:rect",function(n){var r=n.value;t.cropRect||e(r),t.cropRect.setRect(r)})}})}),a("k",[],function(){return function(){function e(e){var t;return t=o.splice(++a),o.push(e),{state:e,removed:t}}function t(){if(r())return o[--a]}function n(){if(i())return o[++a]}function r(){return a>0}function i(){return a!=-1&&a<o.length-1}var o=[],a=-1;return{data:o,add:e,undo:t,redo:n,canUndo:r,canRedo:i}}}),a("9",["f","5","3","g","h","i","j","7","8","k"],function(e,t,n,r,i,o,a,s,l,c){function u(e){return{blob:e,url:URL.createObjectURL(e)}}function d(e){e&&URL.revokeObjectURL(e.url)}function f(e){t.each(e,d)}function p(n,l,p){function m(e){var t,n,r,i;t=O.find("#w")[0],n=O.find("#h")[0],r=parseInt(t.value(),10),i=parseInt(n.value(),10),O.find("#constrain")[0].checked()&&ae&&se&&r&&i&&("w"==e.control.settings.name?(i=Math.round(r*le),n.value(i)):(r=Math.round(i*ce),t.value(r))),ae=r,se=i}function g(e){return Math.round(100*e)+"%"}function h(){O.find("#undo").disabled(!ue.canUndo()),O.find("#redo").disabled(!ue.canRedo()),O.statusbar.find("#save").disabled(!ue.canUndo())}function v(){O.find("#undo").disabled(!0),O.find("#redo").disabled(!0)}function b(e){e&&$.imageSrc(e.url)}function y(e){return function(){var n=t.grep(oe,function(t){return t.settings.name!=e});t.each(n,function(e){e.hide()}),e.show(),e.focus()}}function x(e){z=u(e),b(z)}function C(e){n=u(e),b(n),f(ue.add(n).removed),h()}function w(){var e=$.selection();s.crop(n.blob,e.x,e.y,e.w,e.h).then(function(e){C(e),S()})}function N(e){var t=[].slice.call(arguments,1);return function(){var r=z||n;e.apply(this,[r.blob].concat(t)).then(x)}}function k(e){var t=[].slice.call(arguments,1);return function(){e.apply(this,[n.blob].concat(t)).then(C)}}function S(){b(n),d(z),y(H)(),h()}function _(){z&&(C(z.blob),S())}function E(){var e=$.zoom();e<2&&(e+=.1),$.zoom(e)}function T(){var e=$.zoom();e>.1&&(e-=.1),$.zoom(e)}function R(){n=ue.undo(),b(n),h()}function A(){n=ue.redo(),b(n),h()}function B(){l(n.blob),O.close()}function P(e){return new i({layout:"flex",direction:"row",labelGap:5,border:"0 0 1 0",align:"center",pack:"center",padding:"0 10 0 10",spacing:5,flex:0,minHeight:60,defaults:{classes:"imagetool",type:"button"},items:e})}function D(e,t){return P([{text:"Back",onclick:S},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:_}]).hide().on("show",function(){v(),t(n.blob).then(function(e){var t=u(e);b(t),d(z),z=t})})}function M(e,t,r,i,o){function a(e){t(n.blob,e).then(function(e){var t=u(e);b(t),d(z),z=t})}return P([{text:"Back",onclick:S},{type:"spacer",flex:1},{type:"slider",flex:1,ondragend:function(e){a(e.value)},minValue:i,maxValue:o,value:r,previewFilter:g},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:_}]).hide().on("show",function(){this.find("slider").value(r),v()})}function L(e,t){function r(){var e,r,i;e=O.find("#r")[0].value(),r=O.find("#g")[0].value(),i=O.find("#b")[0].value(),t(n.blob,e,r,i).then(function(e){var t=u(e);b(t),d(z),z=t})}return P([{text:"Back",onclick:S},{type:"spacer",flex:1},{type:"slider",label:"R",name:"r",minValue:0,value:1,maxValue:2,ondragend:r,previewFilter:g},{type:"slider",label:"G",name:"g",minValue:0,value:1,maxValue:2,ondragend:r,previewFilter:g},{type:"slider",label:"B",name:"b",minValue:0,value:1,maxValue:2,ondragend:r,previewFilter:g},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:_}]).hide().on("show",function(){O.find("#r,#g,#b").value(1),v()})}function I(e){e.control.value()===!0&&(le=se/ae,ce=ae/se)}var O,H,F,z,W,U,V,$,j,q,Y,X,K,G,J,Z,Q,ee,te,ne,re,ie,oe,ae,se,le,ce,ue=new c;W=P([{text:"Back",onclick:S},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:w}]).hide().on("show hide",function(e){$.toggleCropRect("show"==e.type)}).on("show",v),U=P([{text:"Back",onclick:S},{type:"spacer",flex:1},{type:"textbox",name:"w",label:"Width",size:4,onkeyup:m},{type:"textbox",name:"h",label:"Height",size:4,onkeyup:m},{type:"checkbox",name:"constrain",text:"Constrain proportions",checked:!0,onchange:I},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:"submit"}]).hide().on("submit",function(e){var t=parseInt(O.find("#w").value(),10),n=parseInt(O.find("#h").value(),10);e.preventDefault(),k(s.resize,t,n)(),S()}).on("show",v),V=P([{text:"Back",onclick:S},{type:"spacer",flex:1},{icon:"fliph",tooltip:"Flip horizontally",onclick:N(s.flip,"h")},{icon:"flipv",tooltip:"Flip vertically",onclick:N(s.flip,"v")},{icon:"rotateleft",tooltip:"Rotate counterclockwise",onclick:N(s.rotate,-90)},{icon:"rotateright",tooltip:"Rotate clockwise",onclick:N(s.rotate,90)},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:_}]).hide().on("show",v),Y=D("Invert",s.invert),te=D("Sharpen",s.sharpen),ne=D("Emboss",s.emboss),X=M("Brightness",s.brightness,0,-1,1),K=M("Hue",s.hue,180,0,360),G=M("Saturate",s.saturate,0,-1,1),J=M("Contrast",s.contrast,0,-1,1),Z=M("Grayscale",s.grayscale,0,0,1),Q=M("Sepia",s.sepia,0,0,1),ee=L("Colorize",s.colorize),re=M("Gamma",s.gamma,0,-1,1),ie=M("Exposure",s.exposure,1,0,2),F=P([{text:"Back",onclick:S},{type:"spacer",flex:1},{text:"hue",icon:"hue",onclick:y(K)},{text:"saturate",icon:"saturate",onclick:y(G)},{text:"sepia",icon:"sepia",onclick:y(Q)},{text:"emboss",icon:"emboss",onclick:y(ne)},{text:"exposure",icon:"exposure",onclick:y(ie)},{type:"spacer",flex:1}]).hide(),H=P([{tooltip:"Crop",icon:"crop",onclick:y(W)},{tooltip:"Resize",icon:"resize2",onclick:y(U)},{tooltip:"Orientation",icon:"orientation",onclick:y(V)},{tooltip:"Brightness",icon:"sun",onclick:y(X)},{tooltip:"Sharpen",icon:"sharpen",onclick:y(te)},{tooltip:"Contrast",icon:"contrast",onclick:y(J)},{tooltip:"Color levels",icon:"drop",onclick:y(ee)},{tooltip:"Gamma",icon:"gamma",onclick:y(re)},{tooltip:"Invert",icon:"invert",onclick:y(Y)}]),$=new a({flex:1,imageSrc:n.url}),j=new o({layout:"flex",direction:"column",border:"0 1 0 0",padding:5,spacing:5,items:[{type:"button",icon:"undo",tooltip:"Undo",name:"undo",onclick:R},{type:"button",icon:"redo",tooltip:"Redo",name:"redo",onclick:A},{type:"button",icon:"zoomin",tooltip:"Zoom in",onclick:E},{type:"button",icon:"zoomout",tooltip:"Zoom out",onclick:T}]}),q=new o({type:"container",layout:"flex",direction:"row",align:"stretch",flex:1,items:[j,$]}),oe=[H,W,U,V,F,Y,X,K,G,J,Z,Q,ee,te,ne,re,ie],O=r.create("window",{layout:"flex",direction:"column",align:"stretch",minWidth:Math.min(e.DOM.getViewPort().w,800),minHeight:Math.min(e.DOM.getViewPort().h,650),title:"Edit image",items:oe.concat([q]),buttons:[{text:"Save",name:"save",subtype:"primary",onclick:B},{text:"Cancel",onclick:"close"}]}),O.renderTo(document.body).reflow(),O.on("close",function(){p(),f(ue.data),ue=null,z=null}),ue.add(n),h(),$.on("load",function(){ae=$.imageSize().w,se=$.imageSize().h,le=se/ae,ce=ae/se,O.find("#w").value(ae),O.find("#h").value(se)}),$.on("crop",w)}function m(e){return new n(function(t,n){p(u(e),t,n)})}return{edit:m}}),a("a",[],function(){function e(e){function t(e){return/^[0-9\.]+px$/.test(e)}var n,r;return n=e.style.width,r=e.style.height,n||r?t(n)&&t(r)?{w:parseInt(n,10),h:parseInt(r,10)}:null:(n=e.width,r=e.height,n&&r?{w:parseInt(n,10),h:parseInt(r,10)}:null)}function t(e,t){var n,r;t&&(n=e.style.width,r=e.style.height,(n||r)&&(e.style.width=t.w+"px",e.style.height=t.h+"px",e.removeAttribute("data-mce-style")),n=e.width,r=e.height,(n||r)&&(e.setAttribute("width",t.w),e.setAttribute("height",t.h)))}function n(e){return{w:e.naturalWidth,h:e.naturalHeight}}return{getImageSize:e,setImageSize:t,getNaturalImageSize:n}}),a("l",["3","5"],function(e,t){var n=function(e){return null!==e&&void 0!==e},r=function(e,t){var r;return r=t.reduce(function(e,t){return n(e)?e[t]:void 0},e),n(r)?r:null},i=function(n,r){return new e(function(e){var i;i=new XMLHttpRequest,i.onreadystatechange=function(){4===i.readyState&&e({status:i.status,blob:this.response})},i.open("GET",n,!0),t.each(r,function(e,t){i.setRequestHeader(t,e)}),i.responseType="blob",i.send()})},o=function(t){return new e(function(e){var n=new FileReader;n.onload=function(t){var n=t.target;e(n.result)},n.readAsText(t)})},a=function(e){var t;try{t=JSON.parse(e)}catch(e){}return t};return{traverse:r,readBlob:o,requestUrlAsBlob:i,parseJson:a}}),a("b",["3","5","l"],function(e,t,n){function r(t){return n.requestUrlAsBlob(t,{}).then(function(t){return t.status>=400?o(t.status):e.resolve(t.blob)})}var i=function(e){return 400===e||403===e||500===e},o=function(t){return e.reject("ImageProxy HTTP error: "+t)},a=function(t){e.reject("ImageProxy Service error: "+t)},s=function(e,t){return n.readBlob(t).then(function(e){var t=n.parseJson(e),r=n.traverse(t,["error","type"]);return a(r?r:"Invalid JSON")})},l=function(e,t){return i(e)?s(e,t):o(e)},c=function(t,r){return n.requestUrlAsBlob(t,{"Content-Type":"application/json;charset=UTF-8","tiny-api-key":r}).then(function(t){return t.status>=400?l(t.status,t.blob):e.resolve(t.blob)})},u=function(e,t){return t?c(e,t):r(e)};return{getUrl:u}}),a("0",["1","2","3","4","5","6","7","8","9","a","b"],function(e,t,n,r,i,o,a,s,l,c,u){var d=function(e){function d(t){e.notificationManager.open({text:t,type:"error"})}function f(){return e.selection.getNode()}function p(t){var n=t.match(/\/([^\/\?]+)?\.(?:jpeg|jpg|png|gif)(?:\?|$)/i);return n?e.dom.encode(n[1]):null}function m(){return"imagetools"+D++}function g(t){var n=t.src;return 0===n.indexOf("data:")||0===n.indexOf("blob:")||new r(n).host===e.documentBaseURI.host}function h(t){return i.inArray(e.settings.imagetools_cors_hosts,new r(t.src).host)!==-1}function v(){return e.settings.api_key||e.settings.imagetools_api_key}function b(t){var n,r=t.src;return h(t)?u.getUrl(t.src,null):g(t)?s.imageToBlob(t):(r=e.settings.imagetools_proxy,r+=(r.indexOf("?")===-1?"?":"&")+"url="+encodeURIComponent(t.src),n=v(),u.getUrl(r,n))}function y(){var t;return t=e.editorUpload.blobCache.getByUri(f().src),t?t.blob():b(f())}function x(){B=o.setEditorTimeout(e,function(){e.editorUpload.uploadImagesAuto()},e.settings.images_upload_timeout||3e4)}function C(){clearTimeout(B)}function w(t,n){return s.blobToDataUri(t).then(function(i){var o,a,s,l,c,u;return u=f(),l=e.editorUpload.blobCache,c=l.getByUri(u.src),s=r.parseDataUri(i).data,o=m(),e.settings.images_reuse_filename&&(a=c?c.filename():p(u.src)),c=l.create(o,t,s,a),l.add(c),e.undoManager.transact(function(){function t(){e.$(u).off("load",t),e.nodeChanged(),n?e.editorUpload.uploadImagesAuto():(C(),x())}e.$(u).on("load",t),e.$(u).attr({src:c.blobUri()}).removeAttr("data-mce-src")}),c})}function N(t){return function(){return e._scanForImages().then(y).then(t).then(w,d)}}function k(e){return function(){return N(function(t){var n=c.getImageSize(f());return n&&c.setImageSize(f(),{w:n.h,h:n.w}),a.rotate(t,e)})()}}function S(e){return function(){return N(function(t){return a.flip(t,e)})()}}function _(){var e=f(),t=c.getNaturalImageSize(e),r=function(r){return new n(function(n){s.blobToImage(r).then(function(i){var o=c.getNaturalImageSize(i);t.w==o.w&&t.h==o.h||c.getImageSize(e)&&c.setImageSize(e,o),URL.revokeObjectURL(i.src),n(r)})})},i=function(e){return l.edit(e).then(r).then(function(e){w(e,!0)},function(){})};e&&b(e).then(i,d)}function E(){e.addButton("rotateleft",{title:"Rotate counterclockwise",cmd:"mceImageRotateLeft"}),e.addButton("rotateright",{title:"Rotate clockwise",cmd:"mceImageRotateRight"}),e.addButton("flipv",{title:"Flip vertically",cmd:"mceImageFlipVertical"}),e.addButton("fliph",{title:"Flip horizontally",cmd:"mceImageFlipHorizontal"}),e.addButton("editimage",{title:"Edit image",cmd:"mceEditImage"}),e.addButton("imageoptions",{title:"Image options",icon:"options",cmd:"mceImage"})}function T(){e.on("NodeChange",function(t){P&&P.src!=t.element.src&&(C(),e.editorUpload.uploadImagesAuto(),P=void 0),R(t.element)&&(P=t.element)})}function R(t){var n=e.dom.is(t,"img:not([data-mce-object],[data-mce-placeholder])");return n&&(g(t)||h(t)||e.settings.imagetools_proxy)}function A(){var t=e.settings.imagetools_toolbar;t||(t="rotateleft rotateright | flipv fliph | crop editimage imageoptions"),e.addContextToolbar(R,t)}var B,P,D=0;t.fileApi&&(i.each({mceImageRotateLeft:k(-90),mceImageRotateRight:k(90),mceImageFlipVertical:S("v"),mceImageFlipHorizontal:S("h"),mceEditImage:_},function(t,n){e.addCommand(n,t)}),E(),A(),T())};return e.add("imagetools",d),function(){}}),r("0")()}();editors/tinymce/plugins/contextmenu/plugin.min.js000064400000002153152177723720016353 0ustar00tinymce.PluginManager.add("contextmenu",function(e){var t,n,r=e.settings.contextmenu_never_use_native,i=function(e){return e.ctrlKey&&!r},o=function(){return tinymce.Env.mac&&tinymce.Env.webkit},a=function(){return n===!0};return e.on("mousedown",function(t){o()&&2===t.button&&!i(t)&&e.selection.isCollapsed()&&e.once("contextmenu",function(t){e.selection.placeCaretAt(t.clientX,t.clientY)})}),e.on("contextmenu",function(r){var o;if(!i(r)){if(r.preventDefault(),o=e.settings.contextmenu||"link openlink image inserttable | cell row column deletetable",t)t.show();else{var a=[];tinymce.each(o.split(/[ ,]/),function(t){var n=e.menuItems[t];"|"==t&&(n={text:t}),n&&(n.shortcut="",a.push(n))});for(var s=0;s<a.length;s++)"|"==a[s].text&&(0!==s&&s!=a.length-1||a.splice(s,1));t=new tinymce.ui.Menu({items:a,context:"contextmenu",classes:"contextmenu"}).renderTo(),t.on("hide",function(e){e.control===this&&(n=!1)}),e.on("remove",function(){t.remove(),t=null})}var l={x:r.pageX,y:r.pageY};e.inline||(l=tinymce.DOM.getPos(e.getContentAreaContainer()),l.x+=r.clientX,l.y+=r.clientY),t.moveTo(l.x,l.y),n=!0}}),{isContextMenuVisible:a}});editors/tinymce/plugins/emoticons/plugin.min.js000064400000001617152177723720016006 0ustar00tinymce.PluginManager.add("emoticons",function(e,t){function n(){var e;return e='<table role="list" class="mce-grid">',tinymce.each(r,function(n){e+="<tr>",tinymce.each(n,function(n){var r=t+"/img/smiley-"+n+".gif";e+='<td><a href="#" data-mce-url="'+r+'" data-mce-alt="'+n+'" tabindex="-1" role="option" aria-label="'+n+'"><img src="'+r+'" style="width: 18px; height: 18px" role="presentation" /></a></td>'}),e+="</tr>"}),e+="</table>"}var r=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];e.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:n,onclick:function(t){var n=e.dom.getParent(t.target,"a");n&&(e.insertContent('<img src="'+n.getAttribute("data-mce-url")+'" alt="'+n.getAttribute("data-mce-alt")+'" />'),this.hide())}},tooltip:"Emoticons"})});editors/tinymce/plugins/emoticons/img/smiley-money-mouth.gif000064400000000501152177723720020403 0ustar00GIF89a�)�����¨"¬Q��nX6��R��j��1���>^*��
��n��9��$J3�s� ��V���Mw9ZF>2B�噚�6Ѿ&�ӿrx$�~���!�,��'�Ti�cJn��0�Q*I0��4����1���n�~(
�D>t�s�h8",n0f��!�$lw2*��ۑW�]Hm��%�x����%��D%o���pu���%
Q��Y
4
��#�����B
���*���N!;editors/tinymce/plugins/emoticons/img/smiley-surprised.gif000064400000000522152177723720020145 0ustar00GIF89a�����Ɲ�(����#ʶj��N���R;	��Z�&��2����,kS§����غ��7��o����7ļ�����F>"����R��X(ĸD!�,@��'�Pi��xh��:�T�i�]��<���r�� �DШ�*
�Da0B,���x�a1�
��f2�,4���wgQ=<5^�9;
�

	

E)sr#?		A9�,���+	.x�.	8+-�ς��5^��IZ3�aT�*�G���!;editors/tinymce/plugins/emoticons/img/smiley-kiss.gif000064400000000522152177723720017076 0ustar00GIF89a�R=����44�s��Yʶj���
��2���!��N�*����)��"��m��q������غ��>�9)ښļ���9��ֽ�)����Y!�,��'�Ti�cJV�s�RQ*Y!Ir�T�3!x�C�p#ʂ!X�׫���Q*��y$���0�.9@��8�n�H��5q}M		a}
�����
����{�
/
��H

�

J	�%	S�
\���A	HJP)�DN�5�����!;editors/tinymce/plugins/emoticons/img/smiley-frown.gif000064400000000524152177723720017262 0ustar00GIF89a�A'��Ơ�����2ʶj��N�����Xν"��7hT��
��-��q��ZA
����غ��Gīļ�����7��Z��"������%x`��0!�,��'�Qi�cJJ�&�!E*Y0�8���ԡAA`&
���4��!�x<��đ0�"FU��$�Jc&%`..�cރ1�w~�bp
��������z
�r����r
x�%�	��]�
̘��
AKGP)�DN�5�����!;editors/tinymce/plugins/emoticons/img/smiley-cry.gif000064400000000511152177723720016720 0ustar00GIF89a�..����P��2��!�����O����#��r��簗!ϻ��8��rX
�ž���{�ֵ�ưR>
�v���ʶj��������Z��j!�,��'�Xi�cJR#�@a*�	��y!d��Q�®�~0��pA�ƀ��<�+��
fPer�>z��ြX���c��|�
�%�
����%��q	���	%
	

	
\�	�	{
A�9;=�#�݄��5���N!;editors/tinymce/plugins/emoticons/img/smiley-undecided.gif000064400000000521152177723720020050 0ustar00GIF89a�*��Ɗy��ʶj��%��N����YֺdN��2��
��-��G��q����غB/ê��9ļ�������YVC��7vb��ο$!�,��'�Qi�cJJF� �!E*I4LA	���AId��#��8���A&���@�HU�D�������h��[�0��N��T�}	`r

������y	��
����tw�
�%��“�[�	��	AKGP)�DN�5�����!;editors/tinymce/plugins/emoticons/img/smiley-wink.gif000064400000000536152177723720017102 0ustar00GIF89a���)��Ɲ	����2ʶj��N��Y���dzP:��,����,u\��G����q����غ��ļ���6־�����2��Y����(
��:!�,@��'�Ri���0��Z�
�fk2JXe4J�P�HRC"��8=�#�0%�qt�WC�I�����$h�o¢P�4V6�:<
1
F)ts#@MB:�,

���	..�+-1��59�6��1	�	�w�*���H`@0��T!;editors/tinymce/plugins/emoticons/img/smiley-yell.gif000064400000000520152177723720017070 0ustar00GIF89a�2���e����{��	��N��Y���ѿ(R4
��4�ʶj��+��3͎����nT<�غ��9�sJ��q��Hļ������ժ*lL§!�,��'�Ri�cJR�V�AI*�h�q]ǣ5���90�
��q FC�LZ1���&�h�	�51�̢����Ir:�Eo����(*Ku	p�����E�����	�����r%R��9Z�	=��AKGO)�DM�5�����!;editors/tinymce/plugins/emoticons/img/smiley-sealed.gif000064400000000503152177723720017361 0ustar00GIF89a����������	����ھ����R��I�����ͷ�����Jʶj��5�� ��(��\���lU
�����N���û?��:��o��"�ֶR=��/!�,@��'�Si���Z�RT"�B-�8]�"p��&��fy�2�f�0N��b��N~#�a�4�����ɫ3wIՕ$r�O8o���n$�*?A9o,.�NZr.t�O7[,����
�][_x
;���E*
Q
�G
��)!;editors/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif000064400000000526152177723720020636 0ustar00GIF89a�����Ɩ~��ʶj�� ��
���MR:	��Zѽ��1mT��+��H����غ��oļ���O��'ª����6��0:"��
��6&
��7!�,@��'�Pi��x�6M1�C��]�Xbr�� �����x���d�0B&��j���21��E"�d��P�w��Q=5�
	9;b
E)sr#?
c9�,O��~
.	x�.
�+-���58�
\�
|�b�T�*��G���B;editors/tinymce/plugins/emoticons/img/smiley-innocent.gif000064400000000520152177723720017740 0ustar00GIF89a�8*�˭���q˱���Z��U��쳏����� ��8wi٫��T���̵ �����q��N��*aK
�z����0��-��VھB��2�u"!�,��'�Ri��x��eH�dbK,R=�ɣ����!�Q<6�Ph�'0�*����d��i;�pg��P:���t|NR
��RUR}			
�
�m�	_���Q���	�w����
�	���%����Q�S*
�P
8)�<MV�)#����#!;editors/tinymce/plugins/emoticons/img/smiley-tongue-out.gif000064400000000510152177723720020230 0ustar00GIF89a�&
��Ɨ}���ʶj��#��N���Ҿ��XR=
���
��2��.�::nX��F��q����غ��Z�/'ļ���7�����1��"�RT!�,��'�Ti�cJV��4�QQ*Y4�2M
���aQ($H���@�(��D��h4U�$q�Q*��&���5���P\e
��ptE�9��*-aWW��

������xn���	�	�vE��
%�	
�
\����A-1N)��5�����!;editors/tinymce/plugins/emoticons/img/smiley-embarassed.gif000064400000000513152177723720020233 0ustar00GIF89a�*ļ�������L��TԿ(�� ����A��T«!����:��l��:v[�w���X8�����7�d$�|(��*��=�غ��$��W°b��Q!�,��'�Ri�cJj�&�I*�!��8ʃt��d��U��n�	~$�bcA

ǂ@�h��\��T��@�• �L2AN&zxMv		
%��	�	�C�����������uy
%
���
]�
�
��#J;s�BQ��*���N!;editors/tinymce/plugins/emoticons/img/smiley-laughing.gif000064400000000527152177723720017730 0ustar00GIF89a�¦2������������,��Nr^H��YҾë���jSļ�����G�غ�������q��7�uZ��Ӻ�.ʶj��2yc��1R=
��Z!�,@��'�Si��hHT��#O�I�8]�,��q��&�Ḛ��`�8A��(1.
�g�0�2N�BIp$���:�{���PW	���8s
		
E)sr#	��9�,
{�Q���
.�.	8+45����~�b��S�*���G\��J�;editors/tinymce/plugins/emoticons/img/smiley-cool.gif000064400000000542152177723720017063 0ustar00GIF89a�	�z��������\V��<�����N:8�����ѿ#[[W��Y#!��1��,//,������� &
ɿb��A��_z`
����
!�,��'�Ui�cJR�qGBU*�ѣiOt`�B��e��]G�UZC�q�n	P@���~=@pL��Ax;d�@�~}{r}hr=
�������	���	E�%	
�
�4
��
A	�F	M)	DK	f�P����(�J;editors/tinymce/plugins/emoticons/img/smiley-smile.gif000064400000000530152177723720017235 0ustar00GIF89a�y`��Ɩz��ʶj��2��N�����YнR=
����6hTī������غ��q��Gļ���.�����1��7��¦2��Z��&
��!�,@��'�Pi��x,�2��
go�1Beh��@�@RCB2�\�D�0!�&�x;���A9��B"A\�'Yظ�{�)X6�:<	0	F)sr#P:�,�
P�S��.
���+-0��59	6	~�	[bU�*���H��
;editors/tinymce/plugins/save/plugin.min.js000064400000002176152177723720014745 0ustar00tinymce.PluginManager.add("save",function(e){function t(){var t;if(t=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty())return tinymce.triggerSave(),e.getParam("save_onsavecallback")?(e.execCallback("save_onsavecallback",e),void e.nodeChanged()):void(t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():n(e.translate("Error: Form submit field collision."))),e.nodeChanged()):n(e.translate("Error: No form element found.")))}function n(t){e.notificationManager.open({text:t,type:"error"})}function r(){var t=tinymce.trim(e.startContent);return e.getParam("save_oncancelcallback")?void e.execCallback("save_oncancelcallback",e):(e.setContent(t),e.undoManager.clear(),void e.nodeChanged())}function i(){var t=this;e.on("nodeChange dirty",function(){t.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",t),e.addCommand("mceCancel",r),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:i}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:i}),e.addShortcut("Meta+S","","mceSave")});editors/tinymce/plugins/anchor/plugin.min.js000064400000002244152177723720015255 0ustar00tinymce.PluginManager.add("anchor",function(e){var t=function(e){return!e.attr("href")&&(e.attr("id")||e.attr("name"))&&!e.firstChild},n=function(e){return function(n){for(var r=0;r<n.length;r++)t(n[r])&&n[r].attr("contenteditable",e)}},r=function(e){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(e)},i=function(){var t=e.selection.getNode(),n="A"==t.tagName&&""===e.dom.getAttrib(t,"href"),i="";n&&(i=t.id||t.name||""),e.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:i},onsubmit:function(i){var o=i.data.id;return r(o)?void(n?(t.removeAttribute("name"),t.id=o):(e.selection.collapse(!0),e.execCommand("mceInsertContent",!1,e.dom.createHTML("a",{id:o})))):(i.preventDefault(),void e.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."))}})};tinymce.Env.ceFalse&&e.on("PreInit",function(){e.parser.addNodeFilter("a",n("false")),e.serializer.addNodeFilter("a",n(null))}),e.addCommand("mceAnchor",i),e.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:i,stateSelector:"a:not([href])"}),e.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:i})});editors/tinymce/plugins/noneditable/plugin.min.js000064400000002366152177723720016274 0ustar00tinymce.PluginManager.add("noneditable",function(e){function t(e){return function(t){return(" "+t.attr("class")+" ").indexOf(e)!==-1}}function n(t){function n(t){var n=arguments,r=n[n.length-2],i=r>0?a.charAt(r-1):"";if('"'===i)return t;if(">"===i){var o=a.lastIndexOf("<",r);if(o!==-1){var l=a.substring(o,r);if(l.indexOf('contenteditable="false"')!==-1)return t}}return'<span class="'+s+'" data-mce-content="'+e.dom.encode(n[0])+'">'+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"}var r=o.length,a=t.content,s=tinymce.trim(i);if("raw"!=t.format){for(;r--;)a=a.replace(o[r],n);t.content=a}}var r,i,o,a="contenteditable";r=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",i=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ";var s=t(r),l=t(i);o=e.getParam("noneditable_regexp"),o&&!o.length&&(o=[o]),e.on("PreInit",function(){o&&e.on("BeforeSetContent",n),e.parser.addAttributeFilter("class",function(e){for(var t,n=e.length;n--;)t=e[n],s(t)?t.attr(a,"true"):l(t)&&t.attr(a,"false")}),e.serializer.addAttributeFilter(a,function(e){for(var t,n=e.length;n--;)t=e[n],(s(t)||l(t))&&(o&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):t.attr(a,null))})})});editors/tinymce/plugins/preview/plugin.min.js000064400000003102152177723720015456 0ustar00tinymce.PluginManager.add("preview",function(e){var t=e.settings,n=!tinymce.Env.ie;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"'+(n?' sandbox="allow-scripts"':"")+"></iframe>",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var r,i="";i+='<base href="'+e.documentBaseURI.getURI()+'">',tinymce.each(e.contentCSS,function(t){i+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var o=t.body_id||"tinymce";o.indexOf("=")!=-1&&(o=e.getParam("body_id","","hash"),o=o[e.id]||o);var a=t.body_class||"";a.indexOf("=")!=-1&&(a=e.getParam("body_class","","hash"),a=a[e.id]||"");var s='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A") {e.preventDefault();}}}, false);</script> ',l=e.settings.directionality?' dir="'+e.settings.directionality+'"':"";if(r="<!DOCTYPE html><html><head>"+i+'</head><body id="'+o+'" class="mce-content-body '+a+'"'+l+">"+e.getContent()+s+"</body></html>",n)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(r);else{var c=this.getEl("body").firstChild.contentWindow.document;c.open(),c.write(r),c.close()}}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});editors/tinymce/plugins/directionality/plugin.min.js000064400000001326152177723720017026 0ustar00tinymce.PluginManager.add("directionality",function(e){function t(t){var n,r=e.dom,i=e.selection.getSelectedBlocks();i.length&&(n=r.getAttrib(i[0],"dir"),tinymce.each(i,function(e){r.getParent(e.parentNode,"*[dir='"+t+"']",r.getRoot())||(n!=t?r.setAttrib(e,"dir",t):r.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})});editors/tinymce/plugins/link/plugin.min.js000064400000015522152177723720014743 0ustar00tinymce.PluginManager.add("link",function(e){function t(e){return e&&"A"===e.nodeName&&e.href}function n(e){return tinymce.util.Tools.grep(e,t).length>0}function r(t){return e.dom.getParent(t,"a[href]")}function i(){return r(e.selection.getStart())}function o(e){var t=e.getAttribute("data-mce-href");return t?t:e.getAttribute("href")}function a(){var t=e.plugins.contextmenu;return!!t&&t.isContextMenuVisible()}function s(n){var r,i,o;return!!(e.settings.link_context_toolbar&&!a()&&t(n)&&(r=e.selection,i=r.getRng(),o=i.startContainer,3==o.nodeType&&r.isCollapsed()&&i.startOffset>0&&i.startOffset<o.data.length))}function l(e,t){document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)}function c(e){if(!tinymce.Env.ie||tinymce.Env.ie>10){var t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),l(t,n)}else{var r=window.open("","_blank");if(r){r.opener=null;var i=r.document;i.open(),i.write('<meta http-equiv="refresh" content="0; url='+tinymce.DOM.encode(e)+'">'),i.close()}}}function u(t){if(t){var n=o(t);if(/^#/.test(n)){var r=e.$(n);r.length&&e.selection.scrollIntoView(r[0],!0)}else c(t.href)}}function d(){u(i())}function f(){var t=this,r=function(e){n(e.parents)?t.show():t.hide()};n(e.dom.getParents(e.selection.getStart()))||t.hide(),e.on("nodechange",r),t.on("remove",function(){e.off("nodechange",r)})}function p(t){return function(){var n=e.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):"function"==typeof n?n(t):t(n)}}function m(e,t,n){function r(e,n){return n=n||[],tinymce.each(e,function(e){var i={text:e.text||e.title};e.menu?i.menu=r(e.menu):(i.value=e.value,t&&t(i)),n.push(i)}),n}return r(e,n||[])}function g(t){function n(e){var t=d.find("#text");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),d.find("#href").value(e.control.value())}function r(t){var r=[];if(tinymce.each(e.dom.select("a:not([href])"),function(e){var n=e.name||e.id;n&&r.push({text:n,value:"#"+n,selected:t.indexOf("#"+n)!=-1})}),r.length)return r.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:r,onselect:n}}function i(){!u&&0===w.text.length&&f&&this.parent().parent().find("#text")[0].value(this.value())}function o(t){var n=t.meta||{};g&&g.value(e.convertURL(this.value(),"href")),tinymce.each(t.meta,function(e,t){var n=d.find("#"+t);"text"===t?0===u.length&&(n.value(e),w.text=e):n.value(e)}),n.attach&&(h={href:this.value(),attach:n.attach}),n.text||i.call(this)}function a(e){var t=N.getContent();if(/</.test(t)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(t)||t.indexOf("href=")==-1))return!1;if(e){var n,r=e.childNodes;if(0===r.length)return!1;for(n=r.length-1;n>=0;n--)if(3!=r[n].nodeType)return!1}return!0}function s(e){e.meta=d.toJSON()}var l,c,u,d,f,p,g,v,b,y,x,C,w={},N=e.selection,k=e.dom;l=N.getNode(),c=k.getParent(l,"a[href]"),f=a(),w.text=u=c?c.innerText||c.textContent:N.getContent({format:"text"}),w.href=c?k.getAttrib(c,"href"):"",c?w.target=k.getAttrib(c,"target"):e.settings.default_link_target&&(w.target=e.settings.default_link_target),(C=k.getAttrib(c,"rel"))&&(w.rel=C),(C=k.getAttrib(c,"class"))&&(w["class"]=C),(C=k.getAttrib(c,"title"))&&(w.title=C),f&&(p={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){w.text=this.value()}}),t&&(g={type:"listbox",label:"Link list",values:m(t,function(t){t.value=e.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:n,value:e.convertURL(w.href,"href"),onPostRender:function(){g=this}}),e.settings.target_list!==!1&&(e.settings.target_list||(e.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),b={name:"target",type:"listbox",label:"Target",values:m(e.settings.target_list)}),e.settings.rel_list&&(v={name:"rel",type:"listbox",label:"Rel",values:m(e.settings.rel_list)}),e.settings.link_class_list&&(y={name:"class",type:"listbox",label:"Class",values:m(e.settings.link_class_list,function(t){t.value&&(t.textStyle=function(){return e.formatter.getCssText({inline:"a",classes:[t.value]})})})}),e.settings.link_title!==!1&&(x={name:"title",type:"textbox",label:"Title",value:w.title}),d=e.windowManager.open({title:"Insert link",data:w,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:o,onkeyup:i,onbeforecall:s},p,x,r(w.href),g,v,b,y],onSubmit:function(t){function n(t,n){var r=e.selection.getRng();tinymce.util.Delay.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(r),n(t)})})}function r(e,t){function n(e){return e=r(e),e?[e,i].join(" "):i}function r(e){var t=new RegExp("("+i.replace(" ","|")+")","g");return e&&(e=tinymce.trim(e.replace(t,""))),e?e:null}var i="noopener noreferrer";return t?n(e):r(e)}function i(){var t={href:a,target:w.target?w.target:null,rel:w.rel?w.rel:null,"class":w["class"]?w["class"]:null,title:w.title?w.title:null};e.settings.allow_unsafe_link_target||(t.rel=r(t.rel,"_blank"==t.target)),a===h.href&&(h.attach(),h={}),c?(e.focus(),f&&w.text!=u&&("innerText"in c?c.innerText=w.text:c.textContent=w.text),k.setAttribs(c,t),N.select(c),e.undoManager.add()):f?e.insertContent(k.createHTML("a",t,k.encode(w.text))):e.execCommand("mceInsertLink",!1,t)}function o(){e.undoManager.transact(i)}var a;return w=tinymce.extend(w,t.data),(a=w.href)?a.indexOf("@")>0&&a.indexOf("//")==-1&&a.indexOf("mailto:")==-1?void n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(e){e&&(a="mailto:"+a),o()}):e.settings.link_assume_external_targets&&!/^\w+:/i.test(a)||!e.settings.link_assume_external_targets&&/^\s*www[\.|\d\.]/i.test(a)?void n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(e){e&&(a="http://"+a),o()}):void o():void e.execCommand("unlink")}})}var h={},v=function(e){return e.altKey===!0&&e.shiftKey===!1&&e.ctrlKey===!1&&e.metaKey===!1};e.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:p(g),stateSelector:"a[href]"}),e.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),e.addContextToolbar&&(e.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:d}),e.addContextToolbar(s,"openlink | link unlink")),e.addShortcut("Meta+K","",p(g)),e.addCommand("mceLink",p(g)),e.on("click",function(e){var t=r(e.target);t&&tinymce.util.VK.metaKeyPressed(e)&&(e.preventDefault(),u(t))}),e.on("keydown",function(e){var t=i();t&&13===e.keyCode&&v(e)&&(e.preventDefault(),u(t))}),this.showDialog=g,e.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:d,onPostRender:f,prependToContext:!0}),e.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:p(g),stateSelector:"a[href]",context:"insert",prependToContext:!0})});editors/tinymce/plugins/searchreplace/plugin.min.js000064400000014535152177723720016612 0ustar00!function(){function e(e){return e&&1==e.nodeType&&"false"===e.contentEditable}function t(t,n,r,i,o){function a(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var r=e[t];if(!r)throw"Invalid capture group";n+=e[0].indexOf(r),e[0]=r}return[n,n+e[0].length,[e[0]]]}function s(t){var n;if(3===t.nodeType)return t.data;if(m[t.nodeName]&&!p[t.nodeName])return"";if(n="",e(t))return"\n";if((p[t.nodeName]||g[t.nodeName])&&(n+="\n"),t=t.firstChild)do n+=s(t);while(t=t.nextSibling);return n}function l(t,n,r){var i,o,a,s,l=[],c=0,u=t,d=n.shift(),f=0;e:for(;;){if((p[u.nodeName]||g[u.nodeName]||e(u))&&c++,3===u.nodeType&&(!o&&u.length+c>=d[1]?(o=u,s=d[1]-c):i&&l.push(u),!i&&u.length+c>d[0]&&(i=u,a=d[0]-c),c+=u.length),i&&o){if(u=r({startNode:i,startNodeIndex:a,endNode:o,endNodeIndex:s,innerNodes:l,match:d[2],matchIndex:f}),c-=o.length-s,i=null,o=null,l=[],d=n.shift(),f++,!d)break}else if(m[u.nodeName]&&!p[u.nodeName]||!u.firstChild){if(u.nextSibling){u=u.nextSibling;continue}}else if(!e(u)){u=u.firstChild;continue}for(;;){if(u.nextSibling){u=u.nextSibling;break}if(u.parentNode===t)break e;u=u.parentNode}}}function c(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(f.createTextNode(e)),r}}else t=e;return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex;if(o===a){var l=o;i=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),i.insertBefore(n,l));var c=t(e.match[0],s);return i.insertBefore(c,l),e.endNodeIndex<l.length&&(r=f.createTextNode(l.data.substring(e.endNodeIndex)),i.insertBefore(r,l)),l.parentNode.removeChild(l),c}n=f.createTextNode(o.data.substring(0,e.startNodeIndex)),r=f.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(o.data.substring(e.startNodeIndex),s),d=[],p=0,m=e.innerNodes.length;p<m;++p){var g=e.innerNodes[p],h=t(g.data,s);g.parentNode.replaceChild(h,g),d.push(h)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(u,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}var u,d,f,p,m,g,h=[],v=0;if(f=n.ownerDocument,p=o.getBlockElements(),m=o.getWhiteSpaceElements(),g=o.getShortEndedElements(),d=s(n)){if(t.global)for(;u=t.exec(d);)h.push(a(u,i));else u=d.match(t),h.push(a(u,i));return h.length&&(v=h.length,l(n,h,c(r))),v}}function n(e){function n(){function t(){o.statusbar.find("#next").disabled(!a(d+1).length),o.statusbar.find("#prev").disabled(!a(d-1).length)}function n(){e.windowManager.alert("Could not find the specified string.",function(){o.find("#find")[0].focus()})}var r,i={};r=tinymce.trim(e.selection.getContent({format:"text"}));var o=e.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){e.focus(),u.done()},onSubmit:function(e){var r,s,l,c;return e.preventDefault(),s=o.find("#case").checked(),c=o.find("#words").checked(),l=o.find("#find").value(),l.length?i.text==l&&i.caseState==s&&i.wholeWord==c?0===a(d+1).length?void n():(u.next(),void t()):(r=u.find(l,s,c),r||n(),o.statusbar.items().slice(1).disabled(0===r),t(),void(i={text:l,caseState:s,wholeWord:c})):(u.done(!1),void o.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){o.submit()}},{text:"Replace",disabled:!0,onclick:function(){u.replace(o.find("#replace").value())||(o.statusbar.items().slice(1).disabled(!0),d=-1,i={})}},{text:"Replace all",disabled:!0,onclick:function(){u.replace(o.find("#replace").value(),!0,!0),o.statusbar.items().slice(1).disabled(!0),i={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){u.prev(),t()}},{text:"Next",name:"next",disabled:!0,onclick:function(){u.next(),t()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:r},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})}function r(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function i(n){var r,i;return i=e.dom.create("span",{"data-mce-bogus":1}),i.className="mce-match-marker",r=e.getBody(),u.done(!1),t(n,r,i,!1,e.schema)}function o(e){var t=e.parentNode;e.firstChild&&t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function a(t){var n,i=[];if(n=tinymce.toArray(e.getBody().getElementsByTagName("span")),n.length)for(var o=0;o<n.length;o++){var a=r(n[o]);null!==a&&a.length&&a===t.toString()&&i.push(n[o])}return i}function s(t){var n=d,r=e.dom;t=t!==!1,t?n++:n--,r.removeClass(a(d),"mce-match-marker-selected");var i=a(n);return i.length?(r.addClass(a(n),"mce-match-marker-selected"),e.selection.scrollIntoView(i[0]),n):-1}function l(t){var n=e.dom,r=t.parentNode;n.remove(t),n.isEmpty(r)&&n.remove(r)}function c(e){var t=r(e);return null!==t&&t.length>0}var u=this,d=-1;u.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:n}),e.addCommand("SearchReplace",n),e.shortcuts.add("Meta+F","",n)},u.find=function(e,t,n){e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),e=n?"\\b"+e+"\\b":e;var r=i(new RegExp(e,t?"g":"gi"));return r&&(d=-1,d=s(!0)),r},u.next=function(){var e=s(!0);e!==-1&&(d=e)},u.prev=function(){var e=s(!1);e!==-1&&(d=e)},u.replace=function(t,n,i){var s,f,p,m,g,h,v=d;for(n=n!==!1,p=e.getBody(),f=tinymce.grep(tinymce.toArray(p.getElementsByTagName("span")),c),s=0;s<f.length;s++){var b=r(f[s]);if(m=g=parseInt(b,10),i||m===d){for(t.length?(f[s].firstChild.nodeValue=t,o(f[s])):l(f[s]);f[++s];){if(m=parseInt(r(f[s]),10),m!==g){s--;break}l(f[s])}n&&v--}else g>d&&f[s].setAttribute("data-mce-index",g-1)}return e.undoManager.add(),d=v,n?(h=a(v+1).length>0,u.next()):(h=a(v-1).length>0,u.prev()),!i&&h},u.done=function(t){var n,i,a,s;for(i=tinymce.toArray(e.getBody().getElementsByTagName("span")),n=0;n<i.length;n++){var l=r(i[n]);null!==l&&l.length&&(l===d.toString()&&(a||(a=i[n].firstChild),s=i[n].firstChild),o(i[n]))}if(a&&s){var c=e.dom.createRng();return c.setStart(a,0),c.setEnd(s,s.data.length),t!==!1&&e.selection.setRng(c),c}}}tinymce.PluginManager.add("searchreplace",n)}();editors/tinymce/plugins/autolink/plugin.min.js000064400000004014152177723720015626 0ustar00tinymce.PluginManager.add("autolink",function(e){function t(e){i(e,-1,"(",!0)}function n(e){i(e,0,"",!0)}function r(e){i(e,-1,"",!1)}function i(e,t,n){function r(e,t){if(t<0&&(t=0),3==e.nodeType){var n=e.data.length;t>n&&(t=n)}return t}function i(e,t){1!=e.nodeType||e.hasChildNodes()?s.setStart(e,r(e,t)):s.setStartBefore(e)}function o(e,t){1!=e.nodeType||e.hasChildNodes()?s.setEnd(e,r(e,t)):s.setEndAfter(e)}var s,l,c,u,d,f,p,m,g,h;if("A"!=e.selection.getNode().tagName){if(s=e.selection.getRng(!0).cloneRange(),s.startOffset<5){if(m=s.endContainer.previousSibling,!m){if(!s.endContainer.firstChild||!s.endContainer.firstChild.nextSibling)return;m=s.endContainer.firstChild.nextSibling}if(g=m.length,i(m,g),o(m,g),s.endOffset<5)return;l=s.endOffset,u=m}else{if(u=s.endContainer,3!=u.nodeType&&u.firstChild){for(;3!=u.nodeType&&u.firstChild;)u=u.firstChild;3==u.nodeType&&(i(u,0),o(u,u.nodeValue.length))}l=1==s.endOffset?2:s.endOffset-1-t}c=l;do i(u,l>=2?l-2:0),o(u,l>=1?l-1:0),l-=1,h=s.toString();while(" "!=h&&""!==h&&160!=h.charCodeAt(0)&&l-2>=0&&h!=n);s.toString()==n||160==s.toString().charCodeAt(0)?(i(u,l),o(u,c),l+=1):0===s.startOffset?(i(u,0),o(u,c)):(i(u,l),o(u,c)),f=s.toString(),"."==f.charAt(f.length-1)&&o(u,c-1),f=s.toString(),p=f.match(a),p&&("www."==p[1]?p[1]="http://www.":/@$/.test(p[1])&&!/^mailto:/.test(p[1])&&(p[1]="mailto:"+p[1]),d=e.selection.getBookmark(),e.selection.setRng(s),e.execCommand("createlink",!1,p[1]+p[2]),e.settings.default_link_target&&e.dom.setAttrib(e.selection.getNode(),"target",e.settings.default_link_target),e.selection.moveToBookmark(d),e.nodeChanged())}}var o,a=/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i;return e.settings.autolink_pattern&&(a=e.settings.autolink_pattern),e.on("keydown",function(t){if(13==t.keyCode)return r(e)}),tinymce.Env.ie?void e.on("focus",function(){if(!o){o=!0;try{e.execCommand("AutoUrlDetect",!1,!0)}catch(e){}}}):(e.on("keypress",function(n){if(41==n.keyCode)return t(e)}),void e.on("keyup",function(t){if(32==t.keyCode)return n(e)}))});editors/tinymce/plugins/textcolor/plugin.min.js000064400000010061152177723720016022 0ustar00tinymce.PluginManager.add("textcolor",function(e){function t(t){var n;return e.dom.getParents(e.selection.getStart(),function(e){var r;(r=e.style["forecolor"==t?"color":"background-color"])&&(n=r)}),n}function n(t){var n,r,i=[];for(r=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],r=e.settings.textcolor_map||r,r=e.settings[t+"_map"]||r,n=0;n<r.length;n+=2)i.push({text:r[n+1],color:"#"+r[n]});return i}function r(){function t(e,t){var n="transparent"==e;return'<td class="mce-grid-cell'+(n?" mce-colorbtn-trans":"")+'"><div id="'+m+"-"+g++ +'" data-mce-color="'+(e?e:"")+'" role="option" tabIndex="-1" style="'+(e?"background-color: "+e:"")+'" title="'+tinymce.translate(t)+'">'+(n?"&#215;":"")+"</div></td>"}var r,i,o,a,s,u,d,f,p=this,m=p._id,g=0;for(f=p.settings.origin,r=n(f),r.push({text:tinymce.translate("No color"),color:"transparent"}),o='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',a=r.length-1,u=0;u<c[f];u++){for(o+="<tr>",s=0;s<l[f];s++)d=u*l[f]+s,d>a?o+="<td></td>":(i=r[d],o+=t(i.color,i.text));o+="</tr>"}if(e.settings.color_picker_callback){for(o+='<tr><td colspan="'+l[f]+'" class="mce-custom-color-btn"><div id="'+m+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+m+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+tinymce.translate("Custom...")+"</button></div></td></tr>",o+="<tr>",s=0;s<l[f];s++)o+=t("","Custom color");o+="</tr>"}return o+="</tbody></table>"}function i(t,n){e.undoManager.transact(function(){e.focus(),e.formatter.apply(t,{value:n}),e.nodeChanged()})}function o(t){e.undoManager.transact(function(){e.focus(),e.formatter.remove(t,{value:null},null,!0),e.nodeChanged()})}function a(n){function r(e){d.hidePanel(),d.color(e),i(d.settings.format,e)}function a(){d.hidePanel(),d.resetColor(),o(d.settings.format)}function s(e,t){e.style.background=t,e.setAttribute("data-mce-color",t)}var c,u,d=this.parent();u=d.settings.origin,tinymce.DOM.getParent(n.target,".mce-custom-color-btn")&&(d.hidePanel(),e.settings.color_picker_callback.call(e,function(e){var t,n,i,o=d.panel.getEl().getElementsByTagName("table")[0];for(t=tinymce.map(o.rows[o.rows.length-1].childNodes,function(e){return e.firstChild}),i=0;i<t.length&&(n=t[i],n.getAttribute("data-mce-color"));i++);if(i==l[u])for(i=0;i<l[u]-1;i++)s(t[i],t[i+1].getAttribute("data-mce-color"));s(n,e),r(e)},t(d.settings.format))),c=n.target.getAttribute("data-mce-color"),c?(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),n.target.setAttribute("aria-selected",!0),this.lastId=n.target.id,"transparent"==c?a():r(c)):null!==c&&d.hidePanel()}function s(){var e=this;e._color?i(e.settings.format,e._color):o(e.settings.format)}var l,c;c={forecolor:e.settings.forecolor_rows||e.settings.textcolor_rows||5,backcolor:e.settings.backcolor_rows||e.settings.textcolor_rows||5},l={forecolor:e.settings.forecolor_cols||e.settings.textcolor_cols||8,backcolor:e.settings.backcolor_cols||e.settings.textcolor_cols||8},e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{origin:"forecolor",role:"application",ariaRemember:!0,html:r,onclick:a},onclick:s}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{origin:"backcolor",role:"application",ariaRemember:!0,html:r,onclick:a},onclick:s})});editors/tinymce/plugins/nonbreaking/plugin.min.js000064400000001217152177723720016277 0ustar00tinymce.PluginManager.add("nonbreaking",function(e){var t=e.getParam("nonbreaking_force_tab");if(e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?'<span class="mce-nbsp">&nbsp;</span>':"&nbsp;"),e.dom.setAttrib(e.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),e.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),t){var n=+t>1?+t:3;e.on("keydown",function(t){if(9==t.keyCode){if(t.shiftKey)return;t.preventDefault();for(var r=0;r<n;r++)e.execCommand("mceNonBreaking")}})}});editors/tinymce/plugins/textpattern/plugin.min.js000064400000005271152177723720016370 0ustar00tinymce.PluginManager.add("textpattern",function(e){function t(){return c&&(l.sort(function(e,t){return e.start.length>t.start.length?-1:e.start.length<t.start.length?1:0}),c=!1),l}function n(e){for(var n=t(),r=0;r<n.length;r++)if(0===e.indexOf(n[r].start)&&(!n[r].end||e.lastIndexOf(n[r].end)==e.length-n[r].end.length))return n[r]}function r(e,n,r){var i,o,a;for(i=t(),a=0;a<i.length;a++)if(o=i[a],o.end&&e.substr(n-o.end.length-r,o.end.length)==o.end)return o}function i(t){function i(){l=l.splitText(u),l.splitText(c-u-m),l.deleteData(0,p.start.length),l.deleteData(l.data.length-p.end.length,p.end.length)}var o,a,s,l,c,u,d,f,p,m,g;if(o=e.selection,a=e.dom,o.isCollapsed()&&(s=o.getRng(!0),l=s.startContainer,c=s.startOffset,d=l.data,m=t?1:0,3==l.nodeType&&(p=r(d,c,m),p&&(u=Math.max(0,c-m),u=d.lastIndexOf(p.start,u-p.end.length-1),u!==-1&&(f=a.createRng(),f.setStart(l,u),f.setEnd(l,c-m),p=n(f.toString()),p&&p.end&&!(l.data.length<=p.start.length+p.end.length))))))return g=e.formatter.get(p.format),g&&g[0].inline?(i(),e.formatter.apply(p.format,{},l),l):void 0}function o(){var t,r,i,o,a,s,l,c,u,d,f;if(t=e.selection,r=e.dom,t.isCollapsed()&&(l=r.getParent(t.getStart(),"p"))){for(u=new tinymce.dom.TreeWalker(l,l);a=u.next();)if(3==a.nodeType){o=a;break}if(o){if(c=n(o.data),!c)return;if(d=t.getRng(!0),i=d.startContainer,f=d.startOffset,o==i&&(f=Math.max(0,f-c.start.length)),tinymce.trim(o.data).length==c.start.length)return;c.format&&(s=e.formatter.get(c.format),s&&s[0].block&&(o.deleteData(0,c.start.length),e.formatter.apply(c.format,{},o),d.setStart(i,f),d.collapse(!0),t.setRng(d))),c.cmd&&e.undoManager.transact(function(){o.deleteData(0,c.start.length),e.execCommand(c.cmd)})}}}function a(){var t,n;n=i(),n&&(t=e.dom.createRng(),t.setStart(n,n.data.length),t.setEnd(n,n.data.length),e.selection.setRng(t)),o()}function s(){var t,n,r,o,a;t=i(!0),t&&(a=e.dom,n=t.data.slice(-1),/[\u00a0 ]/.test(n)&&(t.deleteData(t.data.length-1,1),r=a.doc.createTextNode(n),t.nextSibling?a.insertAfter(r,t.nextSibling):t.parentNode.appendChild(r),o=a.createRng(),o.setStart(r,1),o.setEnd(r,1),e.selection.setRng(o)))}var l,c=!0;l=e.settings.textpattern_patterns||[{start:"*",end:"*",format:"italic"},{start:"**",end:"**",format:"bold"},{start:"#",format:"h1"},{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:"1. ",cmd:"InsertOrderedList"},{start:"* ",cmd:"InsertUnorderedList"},{start:"- ",cmd:"InsertUnorderedList"}],e.on("keydown",function(e){13!=e.keyCode||tinymce.util.VK.modifierPressed(e)||a()},!0),e.on("keyup",function(e){32!=e.keyCode||tinymce.util.VK.modifierPressed(e)||s()}),this.getPatterns=t,this.setPatterns=function(e){l=e,c=!0}});editors/tinymce/plugins/advlist/plugin.min.js000064400000004053152177723720015451 0ustar00tinymce.PluginManager.add("advlist",function(e){function t(t){return e.$.contains(e.getBody(),t)}function n(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)&&t(e)}function r(e,t){var n=[];return t&&tinymce.each(t.split(/[ ,]/),function(e){n.push({text:e.replace(/\-/g," ").replace(/\b\w/g,function(e){return e.toUpperCase()}),data:"default"==e?"":e})}),n}function i(t,n){e.undoManager.transact(function(){var r,i=e.dom,o=e.selection;if(r=i.getParent(o.getNode(),"ol,ul"),!r||r.nodeName!=t||n===!1){var a={"list-style-type":n?n:""};e.execCommand("UL"==t?"InsertUnorderedList":"InsertOrderedList",!1,a)}r=i.getParent(o.getNode(),"ol,ul"),r&&tinymce.util.Tools.each(i.select("ol,ul",r).concat([r]),function(e){e.nodeName!==t&&n!==!1&&(e=i.rename(e,t)),i.setStyle(e,"listStyleType",n?n:null),e.removeAttribute("data-mce-style")}),e.focus()})}function o(t){var n=e.dom.getStyle(e.dom.getParent(e.selection.getNode(),"ol,ul"),"listStyleType")||"";t.control.items().each(function(e){e.active(e.settings.data===n)})}var a,s,l=function(e,t){var n=e.settings.plugins?e.settings.plugins:"";return tinymce.util.Tools.inArray(n.split(/[ ,]/),t)!==-1};a=r("OL",e.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),s=r("UL",e.getParam("advlist_bullet_styles","default,circle,disc,square"));var c=function(t){return function(){var r=this;e.on("NodeChange",function(e){var i=tinymce.util.Tools.grep(e.parents,n);r.active(i.length>0&&i[0].nodeName===t)})}};l(e,"lists")&&(e.addCommand("ApplyUnorderedListStyle",function(e,t){i("UL",t["list-style-type"])}),e.addCommand("ApplyOrderedListStyle",function(e,t){i("OL",t["list-style-type"])}),e.addButton("numlist",{type:a.length>0?"splitbutton":"button",tooltip:"Numbered list",menu:a,onPostRender:c("OL"),onshow:o,onselect:function(e){i("OL",e.control.settings.data)},onclick:function(){i("OL",!1)}}),e.addButton("bullist",{type:s.length>0?"splitbutton":"button",tooltip:"Bullet list",onPostRender:c("UL"),menu:s,onshow:o,onselect:function(e){i("UL",e.control.settings.data)},onclick:function(){i("UL",!1)}}))});editors/tinymce/plugins/code/plugin.min.js000064400000001321152177723720014710 0ustar00tinymce.PluginManager.add("code",function(e){function t(){var t=e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(t){e.focus(),e.undoManager.transact(function(){e.setContent(t.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}});t.find("#code").value(e.getContent({source_view:!0}))}e.addCommand("mceCodeEditor",t),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:t}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:t})});editors/tinymce/plugins/example/plugin.min.js000064400000001222152177723720015431 0ustar00tinymce.PluginManager.add("example",function(e,t){e.addButton("example",{text:"My button",icon:!1,onclick:function(){e.windowManager.open({title:"Example plugin",body:[{type:"textbox",name:"title",label:"Title"}],onsubmit:function(t){e.insertContent("Title: "+t.data.title)}})}}),e.addMenuItem("example",{text:"Example plugin",context:"tools",onclick:function(){e.windowManager.open({title:"TinyMCE site",url:t+"/dialog.html",width:600,height:400,buttons:[{text:"Insert",onclick:function(){var t=e.windowManager.getWindows()[0];e.insertContent(t.getContentWindow().document.getElementById("content").value),t.close()}},{text:"Close",onclick:"close"}]})}})});editors/tinymce/plugins/example/dialog.html000064400000000325152177723720015143 0ustar00<!DOCTYPE html>
<html>
<body>
	<h3>Custom dialog</h3>
	Input some text: <input id="content">
	<button onclick="top.tinymce.activeEditor.windowManager.getWindows()[0].close();">Close window</button>
</body>
</html>editors/tinymce/plugins/paste/plugin.min.js000064400000043450152177723720015123 0ustar00!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o<e.length;++o){if(n=a[e[o]]||i(e[o]),!n)throw"module definition dependecy not found: "+e[o];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){a[e]=i.apply(null,arguments)})}function i(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function o(n){var r,i,o,s,l;for(r=0;r<n.length;r++){i=e,o=n[r],s=o.split(/[.\/]/);for(var c=0;c<s.length-1;++c)i[s[c]]===t&&(i[s[c]]={}),i=i[s[c]];i[s[s.length-1]]=a[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in a)l[o]=a[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var a={};r("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(e,t,n){function r(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function i(i){function o(e){var t=e.name,n=e;if("br"===t)return void(l+="\n");if(c[t]&&(l+=" "),u[t])return void(l+=" ");if(3==e.type&&(l+=e.value),!e.shortEnded&&(e=e.firstChild))do o(e);while(e=e.next);d[t]&&n.next&&(l+="\n","p"==t&&(l+="\n"))}var a=new n,s=new t({},a),l="",c=a.getShortEndedElements(),u=e.makeMap("script noscript style textarea video audio iframe object"," "),d=a.getBlockElements();return i=r(i,[/<!\[[^\]]+\]>/g]),o(s.parse(i)),l}function o(e){function t(e,t,n){return t||n?"\xa0":" "}return e=r(s(e),[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,t],/<br class="Apple-interchange-newline">/g,/<br>$/i])}function a(e){var t=0;return function(){return e+t++}}var s=function(e){var t="<!--StartFragment-->",n="<!--EndFragment-->",r=e.indexOf(t);if(r!==-1){var i=e.substr(r+t.length),o=i.indexOf(n);if(o!==-1&&/^<\/(p|h[1-6]|li)>/i.test(i.substr(o+n.length,5)))return i.substr(0,o)}return e},l=function(){return navigator.userAgent.indexOf(" Edge/")!==-1};return{filter:r,innerText:i,trimHtml:o,createIdGenerator:a,isMsEdge:l}}),r("tinymce/pasteplugin/SmartPaste",["tinymce/util/Tools"],function(e){var t=function(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},n=function(e){return t(e)&&/.(gif|jpe?g|png)$/.test(e)},r=function(e,t,n){return e.undoManager.extra(function(){n(e,t)},function(){e.insertContent('<img src="'+t+'">')}),!0},i=function(e,t,n){return e.undoManager.extra(function(){n(e,t)},function(){e.execCommand("mceInsertLink",!1,t)}),!0},o=function(e,n,r){return!(e.selection.isCollapsed()!==!1||!t(n))&&i(e,n,r)},a=function(e,t,i){return!!n(t)&&r(e,t,i)},s=function(e,t){return e.insertContent(t,{merge:e.settings.paste_merge_formats!==!1,paste:!0}),!0},l=function(t,n){e.each([o,a,s],function(e){return e(t,n,s)!==!0})},c=function(e,t){e.settings.smart_paste===!1?s(e,t):l(e,t)};return{isImageUrl:n,isAbsoluteUrl:t,insertContent:c}}),r("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/dom/RangeUtils","tinymce/util/VK","tinymce/util/Tools","tinymce/pasteplugin/Utils","tinymce/pasteplugin/SmartPaste","tinymce/util/Delay"],function(e,t,n,r,i,o,a){return function(s){function l(e){var t,n=s.dom;if(t=s.fire("BeforePastePreProcess",{content:e}),t=s.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(s.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(s.getBody(),"div",{style:"display:none"},e);t=s.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||o.insertContent(s,e)}}function c(e){e=s.dom.encode(e).replace(/\r\n/g,"\n");var t,n=s.dom.getParent(s.selection.getStart(),s.dom.isBlock),r=s.settings.forced_root_block;r&&(t=s.dom.createHTML(r,s.settings.forced_root_block_attrs),t=t.substr(0,t.length-3)+">"),n&&/^(PRE|DIV)$/.test(n.nodeName)||!r?e=i.filter(e,[[/\n/g,"<br>"]]):(e=i.filter(e,[[/\n\n/g,"</p>"+t],[/^(.*<\/p>)(<p>)$/,t+"$1"],[/\n/g,"<br />"]]),e.indexOf("<p>")!=-1&&(e=t+e)),l(e)}function u(){function t(e){var t,n,i,o=e.startContainer;if(t=e.getClientRects(),t.length)return t[0];if(e.collapsed&&1==o.nodeType){for(i=o.childNodes[_.startOffset];i&&3==i.nodeType&&!i.data.length;)i=i.nextSibling;if(i)return"BR"==i.tagName&&(n=r.doc.createTextNode("\ufeff"),i.parentNode.insertBefore(n,i),e=r.createRng(),e.setStartBefore(n),e.setEndAfter(n),t=e.getClientRects(),r.remove(n)),t.length?t[0]:void 0}}var n,r=s.dom,i=s.getBody(),o=s.dom.getViewPort(s.getWin()),a=o.y,l=20;if(_=s.selection.getRng(),s.inline&&(n=s.selection.getScrollContainer(),n&&n.scrollTop>0&&(a=n.scrollTop)),_.getClientRects){var c=t(_);if(c)l=a+(c.top-r.getPos(i).y);else{l=a;var u=_.startContainer;u&&(3==u.nodeType&&u.parentNode!=i&&(u=u.parentNode),1==u.nodeType&&(l=r.getPos(u,n||i).y))}}S=r.add(s.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+l+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},B),(e.ie||e.gecko)&&r.setStyle(S,"left","rtl"==r.getStyle(i,"direction",!0)?65535:-65535),r.bind(S,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),S.focus(),s.selection.select(S,!0)}function d(){if(S){for(var e;e=s.dom.get("mcepastebin");)s.dom.remove(e),s.dom.unbind(e);_&&s.selection.setRng(_)}S=_=null}function f(){var e,t,n,r,i="";for(e=s.dom.select("div[id=mcepastebin]"),t=0;t<e.length;t++)n=e[t],n.firstChild&&"mcepastebin"==n.firstChild.id&&(n=n.firstChild),r=n.innerHTML,i!=B&&(i+=r);return i}function p(e){var t={};if(e){if(e.getData){var n=e.getData("Text");n&&n.length>0&&n.indexOf(P)==-1&&(t["text/plain"]=n)}if(e.types)for(var r=0;r<e.types.length;r++){var i=e.types[r];t[i]=e.getData(i)}}return t}function m(e){var t=p(e.clipboardData||s.getDoc().dataTransfer);return i.isMsEdge()?r.extend(t,{"text/html":""}):t}function g(e){return w(e,"text/html")||w(e,"text/plain")}function h(e){var t;return t=e.indexOf(","),t!==-1?e.substr(t+1):null}function v(e,t){return!e.images_dataimg_filter||e.images_dataimg_filter(t)}function b(e,t,n){e&&(s.selection.setRng(e),e=null);var r=t.result,i=h(r),o=new Image;if(o.src=r,v(s.settings,o)){var a,c,u=s.editorUpload.blobCache;c=u.findFirst(function(e){return e.base64()===i}),c?a=c:(a=u.create(D(),n,i),u.add(a)),l('<img src="'+a.blobUri()+'">')}else l('<img src="'+r+'">')}function y(e,t){function n(n){var r,i,o,a=!1;if(n)for(r=0;r<n.length;r++)if(i=n[r],/^image\/(jpeg|png|gif|bmp)$/.test(i.type)){var s=i.getAsFile?i.getAsFile():i;o=new FileReader,o.onload=b.bind(null,t,o,s),o.readAsDataURL(s),e.preventDefault(),a=!0}return a}var r=e.clipboardData||e.dataTransfer;if(s.settings.paste_data_images&&r)return n(r.items)||n(r.files)}function x(e){var t=e.clipboardData;return navigator.userAgent.indexOf("Android")!=-1&&t&&t.items&&0===t.items.length}function C(e){return t.getCaretRangeFromPoint(e.clientX,e.clientY,s.getDoc())}function w(e,t){return t in e&&e[t].length>0}function N(e){return n.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function k(){function t(e,t,n){var r;return w(e,"text/html")?r=e["text/html"]:(r=f(),r==B&&(n=!0)),r=i.trimHtml(r),S&&S.firstChild&&"mcepastebin"===S.firstChild.id&&(n=!0),d(),r.length||(n=!0),n&&(r=w(e,"text/plain")&&r.indexOf("</p>")==-1?e["text/plain"]:i.innerText(r)),r==B?void(t||s.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(n?c(r):l(r))}function n(e){var t=e["text/plain"];return!!t&&0===t.indexOf("file://")}s.on("keydown",function(t){function n(e){N(e)&&!e.isDefaultPrevented()&&d()}if(N(t)&&!t.isDefaultPrevented()){if(E=t.shiftKey&&86==t.keyCode,E&&e.webkit&&navigator.userAgent.indexOf("Version/")!=-1)return;if(t.stopImmediatePropagation(),R=(new Date).getTime(),e.ie&&E)return t.preventDefault(),void s.fire("paste",{ieFake:!0});d(),u(),s.once("keyup",n),s.once("paste",function(){s.off("keyup",n)})}});var r=function(){return _||s.selection.getRng()};s.on("paste",function(n){var i=(new Date).getTime(),o=m(n),l=(new Date).getTime()-i,c=(new Date).getTime()-R-l<1e3,p="text"==T.pasteFormat||E;return E=!1,n.isDefaultPrevented()||x(n)?void d():!g(o)&&y(n,r())?void d():(c||n.preventDefault(),!e.ie||c&&!n.ieFake||(u(),s.dom.bind(S,"paste",function(e){e.stopPropagation()}),s.getDoc().execCommand("Paste",!1,null),o["text/html"]=f()),void(w(o,"text/html")?(n.preventDefault(),t(o,c,p)):a.setEditorTimeout(s,function(){t(o,c,p)},0)))}),s.on("dragstart dragend",function(e){A="dragstart"==e.type}),s.on("drop",function(e){var t,r;if(r=C(e),!e.isDefaultPrevented()&&!A&&(t=p(e.dataTransfer),(g(t)&&!n(t)||!y(e,r))&&r&&s.settings.paste_filter_drop!==!1)){var o=t["mce-internal"]||t["text/html"]||t["text/plain"];o&&(e.preventDefault(),a.setEditorTimeout(s,function(){s.undoManager.transact(function(){t["mce-internal"]&&s.execCommand("Delete"),s.selection.setRng(r),o=i.trimHtml(o),t["text/html"]?l(o):c(o)})}))}}),s.on("dragover dragend",function(e){s.settings.paste_data_images&&e.preventDefault()})}var S,_,E,T=this,R=0,A=!1,B="%MCEPASTEBIN%",P="data:text/mce-internal,",D=i.createIdGenerator("mceclip");T.pasteHtml=l,T.pasteText=c,T.pasteImageData=y,s.on("preInit",function(){k(),s.parser.addNodeFilter("img",function(t,n,r){function i(e){return e.data&&e.data.paste===!0}function o(t){t.attr("data-mce-object")||u===e.transparentSrc||t.remove()}function a(e){return 0===e.indexOf("webkit-fake-url")}function l(e){return 0===e.indexOf("data:")}if(!s.settings.paste_data_images&&i(r))for(var c=t.length;c--;){var u=t[c].attributes.map.src;u&&(a(u)?o(t[c]):!s.settings.allow_html_data_urls&&l(u)&&o(t[c]))}})})}}),r("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(e,t,n,r,i,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(t){var n,r;return r=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],t=t.replace(/^[\u00a0 ]+/,""),e.each(r,function(e){if(e.test(t))return n=!0,!1}),n}function l(e){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(e)}function c(c){var u=c.settings;c.on("BeforePastePreProcess",function(d){function f(e){function t(e){var n="";if(3===e.type)return e.value;if(e=e.firstChild)do n+=t(e);while(e=e.next);return n}function n(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do if(!n(e,t))return!1;while(e=e.next);return!0}function r(e){if(e._listIgnore)return void e.remove();if(e=e.firstChild)do r(e);while(e=e.next)}function o(e,t,o){var s=e._listLevel||u;s!=u&&(s<u?a&&(a=a.parent.parent):(c=a,a=null)),a&&a.name==t?a.append(e):(c=c||a,a=new i(t,1),o>1&&a.attr("start",""+o),e.wrap(a)),e.name="li",s>u&&c&&c.lastChild.append(a),u=s,r(e),n(e,/^\u00a0+/),n(e,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),n(e,/^\u00a0+/)}for(var a,c,u=1,d=[],f=e.firstChild;"undefined"!=typeof f&&null!==f;)if(d.push(f),f=f.walk(),null!==f)for(;"undefined"!=typeof f&&f.parent!==e;)f=f.walk();for(var p=0;p<d.length;p++)if(e=d[p],"p"==e.name&&e.firstChild){var m=t(e);if(l(m)){o(e,"ul");continue}if(s(m)){var g=/([0-9]+)\./.exec(m),h=1;g&&(h=parseInt(g[1],10)),o(e,"ol",h);continue}if(e._listLevel){o(e,"ul",1);continue}a=null}else c=a,a=null}function p(t,n){var r,o={},a=c.dom.parseStyle(n);return e.each(a,function(e,i){switch(i){case"mso-list":r=/\w+ \w+([0-9]+)/i.exec(n),r&&(t._listLevel=parseInt(r[1],10)),/Ignore/i.test(e)&&t.firstChild&&(t._listIgnore=!0,t.firstChild._listIgnore=!0);break;case"horiz-align":i="text-align";break;case"vert-align":i="vertical-align";break;case"font-color":case"mso-foreground":i="color";break;case"mso-background":case"mso-highlight":i="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(o[i]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===i.indexOf("mso-comment")?void t.remove():void(0!==i.indexOf("mso-")&&("all"==m||g&&g[i])&&(o[i]=e))}),/(bold)/i.test(o["font-weight"])&&(delete o["font-weight"],t.wrap(new i("b",1))),/(italic)/i.test(o["font-style"])&&(delete o["font-style"],t.wrap(new i("i",1))),o=c.dom.serializeStyle(o,t.name),o?o:null}var m,g,h=d.content;if(h=h.replace(/<b[^>]+id="?docs-internal-[^>]*>/gi,""),h=h.replace(/<br class="?Apple-interchange-newline"?>/gi,""),m=u.paste_retain_style_properties,m&&(g=e.makeMap(m.split(/[, ]/))),u.paste_enable_default_filters!==!1&&a(d.content)){d.wordContent=!0,h=o.filter(h,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var v=u.paste_word_valid_elements;v||(v="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var b=new n({valid_elements:v,valid_children:"-li[p]"});e.each(b.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var y=new t({},b);y.addAttributeFilter("style",function(e){for(var t,n=e.length;n--;)t=e[n],t.attr("style",p(t,t.attr("style"))),"span"==t.name&&t.parent&&!t.attributes.length&&t.unwrap()}),y.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)t=e[r],n=t.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),y.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),y.addNodeFilter("a",function(e){for(var t,n,r,i=e.length;i--;)if(t=e[i],n=t.attr("href"),r=t.attr("name"),n&&n.indexOf("#_msocom_")!=-1)t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1],n&&(n="#"+n)),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var x=y.parse(h);u.paste_convert_word_fake_lists!==!1&&f(x),d.content=new r({validate:u.validate},b).serialize(x)}})}return c.isWordContent=a,c}),r("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){i.on("PastePostProcess",function(t){e(t.node)})}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){if(n.isWordContent(e))return e;var t=i.settings.paste_webkit_styles;if(i.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var r=i.dom,o=i.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,i,a){var s=r.parseStyle(i,"span"),l={};if("none"===t)return n+a;for(var c=0;c<t.length;c++){var u=s[t[c]],d=r.getStyle(o,t[c],!0);/color/.test(t[c])&&(u=r.toHex(u),d=r.toHex(d)),d!=u&&(l[t[c]]=u)}return l=r.serializeStyle(l,"span"),l?n+' style="'+l+'"'+a:n+a})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}function c(e){i.$("a",e).find("font,u").each(function(e,t){i.dom.remove(t,!0)})}e.webkit&&o(l),e.ie&&(o(s),a(c))}}),r("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(e,t,n,r){var i;e.add("paste",function(o){function a(){return i||o.settings.paste_plaintext_inform===!1}function s(){if("text"==c.pasteFormat)c.pasteFormat="html",o.fire("PastePlainTextToggle",{state:!1});else if(c.pasteFormat="text",o.fire("PastePlainTextToggle",{state:!0}),!a()){var e=o.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");o.notificationManager.open({text:e,type:"info"}),i=!0}o.focus()}function l(){var e=this;e.active("text"===c.pasteFormat),o.on("PastePlainTextToggle",function(t){e.active(t.state)})}var c,u=this,d=o.settings;return/(^|[ ,])powerpaste([, ]|$)/.test(d.plugins)&&e.get("powerpaste")?void("undefined"!=typeof console&&console.log&&console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.")):(u.clipboard=c=new t(o),u.quirks=new r(o),u.wordFilter=new n(o),o.settings.paste_as_text&&(u.clipboard.pasteFormat="text"),d.paste_preprocess&&o.on("PastePreProcess",function(e){d.paste_preprocess.call(u,u,e)}),d.paste_postprocess&&o.on("PastePostProcess",function(e){d.paste_postprocess.call(u,u,e)}),o.addCommand("mceInsertClipboardContent",function(e,t){t.content&&u.clipboard.pasteHtml(t.content),t.text&&u.clipboard.pasteText(t.text)}),o.settings.paste_block_drop&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),o.settings.paste_data_images||o.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),o.addCommand("mceTogglePlainTextPaste",s),o.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:s,onPostRender:l}),void o.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:c.pasteFormat,onclick:s,onPostRender:l}))})}),o(["tinymce/pasteplugin/Utils"])}(window);editors/tinymce/plugins/lists/plugin.min.js000064400000034450152177723720015145 0ustar00!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l<a;++l)s[l]=r(i[l]);var c=o.apply(null,s);if(void 0===c)throw"module ["+t+"] returned undefined";n.instance=c},n=function(t,n,r){if("string"!=typeof t)throw"module id must be a string";if(void 0===n)throw"no dependencies for "+t;if(void 0===r)throw"no definition function for "+t;e[t]={deps:n,defn:r,instance:void 0}},r=function(n){var r=e[n];if(void 0===r)throw"module ["+n+"] was undefined";return void 0===r.instance&&t(n),r.instance},i=function(e,t){for(var n=e.length,i=new Array(n),o=0;o<n;++o)i[o]=r(e[o]);t.apply(null,i)},o={};o.bolt={module:{api:{define:n,require:i,demand:r}}};var a=n,s=function(e,t){a(e,[],function(){return t})};s("1",tinymce.PluginManager),s("2",tinymce.util.Tools),s("3",tinymce.util.VK),a("4",[],function(){var e=function(e){return e&&3===e.nodeType},t=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},n=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},r=function(e){return e&&"BR"===e.nodeName},i=function(e){return e.parentNode.firstChild===e},o=function(e){return e.parentNode.lastChild===e},a=function(e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},s=function(e,t){return!!r(t)&&!(!e.isBlock(t.nextSibling)||r(t.previousSibling))},l=function(e,t,n){var r=e.isEmpty(t);return!(n&&e.select("span[data-mce-type=bookmark]",t).length>0)&&r},c=function(e,t){return e.isChildOf(t,e.getRoot())};return{isTextNode:e,isListNode:t,isListItemNode:n,isBr:r,isFirstChild:i,isLastChild:o,isTextBlock:a,isBogusBr:s,isEmpty:l,isChildOfBody:c}}),s("9",tinymce.dom.TreeWalker),s("a",tinymce.dom.RangeUtils),a("b",["2","4"],function(e,t){var n=function(n){return e.grep(n.selection.getSelectedBlocks(),function(e){return t.isListItemNode(e)})};return{getSelectedListItems:n}}),s("h",tinymce.dom.DOMUtils.DOM),a("d",["a","4"],function(e,t){var n=function(n,r){var i=e.getNode(n,r);if(t.isListItemNode(n)&&t.isTextNode(i)){var o=r>=n.childNodes.length?i.data.length:0;return{container:i,offset:o}}return{container:n,offset:r}},r=function(e){var t=e.cloneRange(),r=n(e.startContainer,e.startOffset);t.setStart(r.container,r.offset);var i=n(e.endContainer,e.endOffset);return t.setEnd(i.container,i.offset),t};return{getNormalizedEndPoint:n,normalizeRange:r}}),a("c",["h","4","d"],function(e,t,n){var r=function(t){var n={},r=function(r){var i,o,a;o=t[r?"startContainer":"endContainer"],a=t[r?"startOffset":"endOffset"],1===o.nodeType&&(i=e.create("span",{"data-mce-type":"bookmark"}),o.hasChildNodes()?(a=Math.min(a,o.childNodes.length-1),r?o.insertBefore(i,o.childNodes[a]):e.insertAfter(i,o.childNodes[a])):o.appendChild(i),o=i,a=0),n[r?"startContainer":"endContainer"]=o,n[r?"startOffset":"endOffset"]=a};return r(!0),t.collapsed||r(),n},i=function(t){function r(n){var r,i,o,a=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1};r=o=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],r&&(1===r.nodeType&&(i=a(r),r=r.parentNode,e.remove(o)),t[n?"startContainer":"endContainer"]=r,t[n?"startOffset":"endOffset"]=i)}r(!0),r();var i=e.createRng();return i.setStart(t.startContainer,t.startOffset),t.endContainer&&i.setEnd(t.endContainer,t.endOffset),n.normalizeRange(i)};return{createBookmark:r,resolveBookmark:i}}),a("e",["h","2","4"],function(e,t,n){var r=function(t,r){var i,o=r.parentNode;"LI"===o.nodeName&&o.firstChild===r&&(i=o.previousSibling,i&&"LI"===i.nodeName?(i.appendChild(r),n.isEmpty(t,o)&&e.remove(o)):e.setStyle(o,"listStyleType","none")),n.isListNode(o)&&(i=o.previousSibling,i&&"LI"===i.nodeName&&i.appendChild(r))},i=function(e,n){t.each(t.grep(e.select("ol,ul",n)),function(t){r(e,t)})};return{normalizeList:r,normalizeLists:i}}),s("f",tinymce.dom.BookmarkManager),s("j",tinymce.Env),a("i",["h","j"],function(e,t){var n=function(n,r,i){var o,a,s,l=e.createFragment(),c=n.schema.getBlockElements();if(n.settings.forced_root_block&&(i=i||n.settings.forced_root_block),i&&(a=e.create(i),a.tagName===n.settings.forced_root_block&&e.setAttribs(a,n.settings.forced_root_block_attrs),l.appendChild(a)),r)for(;o=r.firstChild;){var u=o.nodeName;s||"SPAN"===u&&"bookmark"===o.getAttribute("data-mce-type")||(s=!0),c[u]?(l.appendChild(o),a=null):i?(a||(a=e.create(i),l.appendChild(a)),a.appendChild(o)):l.appendChild(o)}return n.settings.forced_root_block?s||t.ie&&!(t.ie>10)||a.appendChild(e.create("br",{"data-mce-bogus":"1"})):l.appendChild(e.create("br")),l};return{createNewTextBlock:n}}),a("g",["h","2","i","4"],function(e,t,n,r){var i=function(i,o,a,s){var l,c,u,d,f=function(n){t.each(u,function(e){n.parentNode.insertBefore(e,a.parentNode)}),e.remove(n)};for(u=e.select('span[data-mce-type="bookmark"]',o),s=s||n.createNewTextBlock(i,a),l=e.createRng(),l.setStartAfter(a),l.setEndAfter(o),c=l.extractContents(),d=c.firstChild;d;d=d.firstChild)if("LI"===d.nodeName&&i.dom.isEmpty(d)){e.remove(d);break}i.dom.isEmpty(c)||e.insertAfter(c,o),e.insertAfter(s,o),r.isEmpty(i.dom,a.parentNode)&&f(a.parentNode),e.remove(a),r.isEmpty(i.dom,o)&&e.remove(o)};return{splitList:i}}),a("7",["h","4","c","b","g","e","i"],function(e,t,n,r,i,o,a){var s=function(n,r){t.isEmpty(n,r)&&e.remove(r)},l=function(n,r){var l,c=r.parentNode,u=c.parentNode;return c===n.getBody()||("DD"===r.nodeName?(e.rename(r,"DT"),!0):t.isFirstChild(r)&&t.isLastChild(r)?("LI"===u.nodeName?(e.insertAfter(r,u),s(n.dom,u),e.remove(c)):t.isListNode(u)?e.remove(c,!0):(u.insertBefore(a.createNewTextBlock(n,r),c),e.remove(c)),!0):t.isFirstChild(r)?("LI"===u.nodeName?(e.insertAfter(r,u),r.appendChild(c),s(n.dom,u)):t.isListNode(u)?u.insertBefore(r,c):(u.insertBefore(a.createNewTextBlock(n,r),c),e.remove(r)),!0):t.isLastChild(r)?("LI"===u.nodeName?e.insertAfter(r,u):t.isListNode(u)?e.insertAfter(r,c):(e.insertAfter(a.createNewTextBlock(n,r),c),e.remove(r)),!0):("LI"===u.nodeName?(c=u,l=a.createNewTextBlock(n,r,"LI")):l=t.isListNode(u)?a.createNewTextBlock(n,r,"LI"):a.createNewTextBlock(n,r),i.splitList(n,c,r,l),o.normalizeLists(n.dom,c.parentNode),!0))},c=function(e){var t=r.getSelectedListItems(e);if(t.length){var i,o,a=n.createBookmark(e.selection.getRng(!0)),s=e.getBody();for(i=t.length;i--;)for(var c=t[i].parentNode;c&&c!==s;){for(o=t.length;o--;)if(t[o]===c){t.splice(i,1);break}c=c.parentNode}for(i=0;i<t.length&&(l(e,t[i])||0!==i);i++);return e.selection.setRng(n.resolveBookmark(a)),e.nodeChanged(),!0}};return{outdent:l,outdentSelection:c}}),a("8",["2","f","b","4","c","g","e","7"],function(e,t,n,r,i,o,a,s){var l=function(e,t,n){var r=n["list-style-type"]?n["list-style-type"]:null;e.setStyle(t,"list-style-type",r)},c=function(t,n){e.each(n,function(e,n){t.setAttribute(n,e)})},u=function(t,n,r){c(n,r["list-attributes"]),e.each(t.select("li",n),function(e){c(e,r["list-item-attributes"])})},d=function(e,t,n){l(e,t,n),u(e,t,n)},f=function(e,t,n){var i,o,a=e.getBody();for(i=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1===i.nodeType&&(i=i.childNodes[Math.min(o,i.childNodes.length-1)]||i);i.parentNode!==a;){if(r.isTextBlock(e,i))return i;if(/^(TD|TH)$/.test(i.parentNode.nodeName))return i;i=i.parentNode}return i},p=function(n,i){for(var o,a=[],s=n.getBody(),l=n.dom,c=f(n,i,!0),u=f(n,i,!1),d=[],p=c;p&&(d.push(p),p!==u);p=p.nextSibling);return e.each(d,function(e){if(r.isTextBlock(n,e))return a.push(e),void(o=null);if(l.isBlock(e)||r.isBr(e))return r.isBr(e)&&l.remove(e),void(o=null);var i=e.nextSibling;return t.isBookmarkNode(e)&&(r.isTextBlock(n,i)||!i&&e.parentNode===s)?void(o=null):(o||(o=l.create("p"),e.parentNode.insertBefore(o,e),a.push(o)),void o.appendChild(e))}),a},m=function(t,n,o){var a,s=t.selection.getRng(!0),l="LI",c=t.dom;o=o?o:{},"false"!==c.getContentEditable(t.selection.getNode())&&(n=n.toUpperCase(),"DL"===n&&(l="DT"),a=i.createBookmark(s),e.each(p(t,s),function(e){var i,a,s=function(e){var t=c.getStyle(e,"list-style-type"),n=o?o["list-style-type"]:"";return n=null===n?"":n,t===n};a=e.previousSibling,a&&r.isListNode(a)&&a.nodeName===n&&s(a)?(i=a,e=c.rename(e,l),a.appendChild(e)):(i=c.create(n),e.parentNode.insertBefore(i,e),i.appendChild(e),e=c.rename(e,l)),d(c,i,o),x(t.dom,i)}),t.selection.setRng(i.resolveBookmark(a)))},g=function(t){var l=i.createBookmark(t.selection.getRng(!0)),c=t.getBody(),u=n.getSelectedListItems(t),d=e.grep(u,function(e){return t.dom.isEmpty(e)});u=e.grep(u,function(e){return!t.dom.isEmpty(e)}),e.each(d,function(e){if(r.isEmpty(t.dom,e))return void s.outdent(t,e)}),e.each(u,function(e){var n,i;if(e.parentNode!==t.getBody()){for(n=e;n&&n!==c;n=n.parentNode)r.isListNode(n)&&(i=n);o.splitList(t,i,e),a.normalizeLists(t.dom,i.parentNode)}}),t.selection.setRng(i.resolveBookmark(l))},h=function(e,t){return e&&t&&r.isListNode(e)&&e.nodeName===t.nodeName},v=function(e,t,n){var r=e.getStyle(t,"list-style-type",!0),i=e.getStyle(n,"list-style-type",!0);return r===i},b=function(e,t){return e.className===t.className},y=function(e,t,n){return h(t,n)&&v(e,t,n)&&b(t,n)},x=function(e,t){var n,r;if(n=t.nextSibling,y(e,t,n)){for(;r=n.firstChild;)t.appendChild(r);e.remove(n)}if(n=t.previousSibling,y(e,t,n)){for(;r=n.lastChild;)t.insertBefore(r,t.firstChild);e.remove(n)}},C=function(e,t,n){var r=e.dom.getParent(e.selection.getStart(),"OL,UL,DL");if(n=n?n:{},r!==e.getBody())if(r)if(r.nodeName===t)g(e,t);else{var o=i.createBookmark(e.selection.getRng(!0));d(e.dom,r,n),x(e.dom,e.dom.rename(r,t)),e.selection.setRng(i.resolveBookmark(o))}else m(e,t,n)};return{toggleList:C,removeList:g,mergeWithAdjacentLists:x}}),a("5",["9","a","3","b","4","c","d","e","8"],function(e,t,n,r,i,o,a,s,l){var c=function(n,r,o){var a,s,l=r.startContainer,c=r.startOffset;if(3===l.nodeType&&(o?c<l.data.length:c>0))return l;for(a=n.schema.getNonEmptyElements(),1===l.nodeType&&(l=t.getNode(l,c)),s=new e(l,n.getBody()),o&&i.isBogusBr(n.dom,l)&&s.next();l=s[o?"next":"prev2"]();){if("LI"===l.nodeName&&!l.hasChildNodes())return l;if(a[l.nodeName])return l;if(3===l.nodeType&&l.data.length>0)return l}},u=function(e,t,n){var r,o,a=t.parentNode;if(i.isChildOfBody(e,t)&&i.isChildOfBody(e,n)){if(i.isListNode(n.lastChild)&&(o=n.lastChild),a===n.lastChild&&i.isBr(a.previousSibling)&&e.remove(a.previousSibling),r=n.lastChild,r&&i.isBr(r)&&t.hasChildNodes()&&e.remove(r),i.isEmpty(e,n,!0)&&e.$(n).empty(),!i.isEmpty(e,t,!0))for(;r=t.firstChild;)n.appendChild(r);o&&n.appendChild(o),e.remove(t),i.isEmpty(e,a)&&a!==e.getRoot()&&e.remove(a)}},d=function(e,t){var n,r,s,d=e.dom,f=e.selection,p=d.getParent(f.getStart(),"LI");if(p){if(n=p.parentNode,n===e.getBody()&&i.isEmpty(d,n))return!0;if(r=a.normalizeRange(f.getRng(!0)),s=d.getParent(c(e,r,t),"LI"),s&&s!==p){var m=o.createBookmark(r);return t?u(d,s,p):u(d,p,s),e.selection.setRng(o.resolveBookmark(m)),!0}if(!s&&!t&&l.removeList(e,n.nodeName))return!0}return!1},f=function(e,t){var n=e.dom,r=n.getParent(e.selection.getStart(),n.isBlock);if(r&&n.isEmpty(r)){var i=a.normalizeRange(e.selection.getRng(!0)),o=n.getParent(c(e,i,t),"LI");if(o)return e.undoManager.transact(function(){n.remove(r),l.mergeWithAdjacentLists(n,o.parentNode),e.selection.select(o,!0),e.selection.collapse(t)}),!0}return!1},p=function(e,t){return d(e,t)||f(e,t)},m=function(e){var t=e.dom.getParent(e.selection.getStart(),"LI,DT,DD");return!!(t||r.getSelectedListItems(e).length>0)&&(e.undoManager.transact(function(){e.execCommand("Delete"),s.normalizeLists(e.dom,e.getBody())}),!0)},g=function(e,t){return e.selection.isCollapsed()?p(e,t):m(e)},h=function(e){e.on("keydown",function(t){t.keyCode===n.BACKSPACE?g(e,!1)&&t.preventDefault():t.keyCode===n.DELETE&&g(e,!0)&&t.preventDefault()})};return{setup:h,backspaceDelete:g}}),a("6",["h","4","c","b"],function(e,t,n,r){var i=function(n,r){var i;if(t.isListNode(n)){for(;i=n.firstChild;)r.appendChild(i);e.remove(n)}},o=function(n){var r,o,a;return"DT"===n.nodeName?(e.rename(n,"DD"),!0):(r=n.previousSibling,r&&t.isListNode(r)?(r.appendChild(n),!0):r&&"LI"===r.nodeName&&t.isListNode(r.lastChild)?(r.lastChild.appendChild(n),i(n.lastChild,r.lastChild),!0):(r=n.nextSibling,r&&t.isListNode(r)?(r.insertBefore(n,r.firstChild),!0):(r=n.previousSibling,!(!r||"LI"!==r.nodeName)&&(o=e.create(n.parentNode.nodeName),a=e.getStyle(n.parentNode,"listStyleType"),a&&e.setStyle(o,"listStyleType",a),r.appendChild(o),o.appendChild(n),i(n.lastChild,o),!0))))},a=function(e){var t=r.getSelectedListItems(e);if(t.length){for(var i=n.createBookmark(e.selection.getRng(!0)),a=0;a<t.length&&(o(t[a])||0!==a);a++);return e.selection.setRng(n.resolveBookmark(i)),e.nodeChanged(),!0}};return{indentSelection:a}}),a("0",["1","2","3","4","5","6","7","8"],function(e,t,n,r,i,o,a,s){var l=function(e,t){return function(){var n=e.dom.getParent(e.selection.getStart(),"UL,OL,DL");return n&&n.nodeName===t}},c=function(e){e.on("BeforeExecCommand",function(t){var n,r=t.command.toLowerCase();if("indent"===r?o.indentSelection(e)&&(n=!0):"outdent"===r&&a.outdentSelection(e)&&(n=!0),n)return e.fire("ExecCommand",{command:t.command}),t.preventDefault(),!0}),e.addCommand("InsertUnorderedList",function(t,n){s.toggleList(e,"UL",n)}),e.addCommand("InsertOrderedList",function(t,n){s.toggleList(e,"OL",n)}),e.addCommand("InsertDefinitionList",function(t,n){s.toggleList(e,"DL",n)})},u=function(e){e.addQueryStateHandler("InsertUnorderedList",l(e,"UL")),e.addQueryStateHandler("InsertOrderedList",l(e,"OL")),e.addQueryStateHandler("InsertDefinitionList",l(e,"DL"))},d=function(e){e.on("keydown",function(t){9!==t.keyCode||n.metaKeyPressed(t)||e.dom.getParent(e.selection.getStart(),"LI,DT,DD")&&(t.preventDefault(),t.shiftKey?a.outdentSelection(e):o.indentSelection(e))})},f=function(e){var n=function(n){return function(){var i=this;e.on("NodeChange",function(e){var o=t.grep(e.parents,r.isListNode);i.active(o.length>0&&o[0].nodeName===n)})}},i=function(e,n){var r=e.settings.plugins?e.settings.plugins:"";return t.inArray(r.split(/[ ,]/),n)!==-1};i(e,"advlist")||(e.addButton("numlist",{title:"Numbered list",cmd:"InsertOrderedList",onPostRender:n("OL")}),e.addButton("bullist",{title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:n("UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(t){var n=t.control;e.on("nodechange",function(){for(var t=e.selection.getSelectedBlocks(),i=!1,o=0,a=t.length;!i&&o<a;o++){var s=t[o].nodeName;i="LI"===s&&r.isFirstChild(t[o])||"UL"===s||"OL"===s||"DD"===s}n.disabled(i)})}})};return e.add("lists",function(e){return f(e),i.setup(e),e.on("init",function(){c(e),u(e),d(e)}),{backspaceDelete:function(t){i.backspaceDelete(e,t)}}}),function(){}}),r("0")()}();editors/tinymce/plugins/toc/plugin.min.js000064400000005323152177723720014571 0ustar00tinymce.PluginManager.add("toc",function(e){function t(t){return e.schema.isValidChild("div",t)}function n(t){return t&&e.dom.is(t,"."+d.className)&&e.getBody().contains(t)}function r(){var t=this;t.disabled(e.readonly||!o()),e.on("LoadContent SetContent change",function(){t.disabled(e.readonly||!o())})}function i(e){var t,n=[];for(t=1;t<=e;t++)n.push("h"+t);return n.join(",")}function o(){return!(!d||!a(d).length)}function a(t){var n=i(t.depth),r=f(n);return r.length&&/^h[1-9]$/i.test(t.headerTag)&&(r=r.filter(function(n,r){return!e.dom.hasClass(r.parentNode,t.className)})),tinymce.map(r,function(e){return e.id||(e.id=g()),{id:e.id,level:parseInt(e.nodeName.replace(/^H/i,""),10),title:f.text(e)}})}function s(e){var t,n=9;for(t=0;t<e.length;t++)if(e[t].level<n&&(n=e[t].level),1==n)return n;return n}function l(t,n){var r="<"+t+' contenteditable="true">',i="</"+t+">";return r+e.dom.encode(n)+i}function c(e){var t=u(e);return'<div class="'+e.className+'" contenteditable="false">'+t+"</div>"}function u(e){var t,n,r,i,o="",c=a(e),u=s(c)-1;if(!c.length)return"";for(o+=l(e.headerTag,tinymce.translate("Table of Contents")),t=0;t<c.length;t++){if(r=c[t],i=c[t+1]&&c[t+1].level,u===r.level)o+="<li>";else for(n=u;n<r.level;n++)o+="<ul><li>";if(o+='<a href="#'+r.id+'">'+r.title+"</a>",i!==r.level&&i)for(n=r.level;n>i;n--)o+="</li></ul><li>";else o+="</li>",i||(o+="</ul>");u=r.level}return o}var d,f=e.$,p={depth:3,headerTag:"h2",className:"mce-toc"},m=function(e){var t=0;return function(){var n=(new Date).getTime().toString(32);return e+n+(t++).toString(32)}},g=m("mcetoc_");e.on("PreInit",function(){var n=e.settings,r=parseInt(n.toc_depth,10)||0;d={depth:r>=1&&r<=9?r:p.depth,headerTag:t(n.toc_header)?n.toc_header:p.headerTag,className:n.toc_class?e.dom.encode(n.toc_class):p.className}}),e.on("PreProcess",function(e){var t=f("."+d.className,e.node);t.length&&(t.removeAttr("contentEditable"),t.find("[contenteditable]").removeAttr("contentEditable"))}),e.on("SetContent",function(){var e=f("."+d.className);e.length&&(e.attr("contentEditable",!1),e.children(":first-child").attr("contentEditable",!0))});var h=function(t){return!t.length||e.dom.getParents(t[0],".mce-offscreen-selection").length>0};e.addCommand("mceInsertToc",function(){var t=f("."+d.className);h(t)?e.insertContent(c(d)):e.execCommand("mceUpdateToc")}),e.addCommand("mceUpdateToc",function(){var t=f("."+d.className);t.length&&e.undoManager.transact(function(){t.html(u(d))})}),e.addButton("toc",{tooltip:"Table of Contents",cmd:"mceInsertToc",icon:"toc",onPostRender:r}),e.addButton("tocupdate",{tooltip:"Update",cmd:"mceUpdateToc",icon:"reload"}),e.addContextToolbar(n,"tocupdate"),e.addMenuItem("toc",{text:"Table of Contents",context:"insert",cmd:"mceInsertToc",onPostRender:r})});editors/tinymce/plugins/bbcode/plugin.min.js000064400000006100152177723720015214 0ustar00!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e){var t=this,n=e.getParam("bbcode_dialect","punbb").toLowerCase();e.on("beforeSetContent",function(e){e.content=t["_"+n+"_bbcode2html"](e.content)}),e.on("postProcess",function(e){e.set&&(e.content=t["_"+n+"_bbcode2html"](e.content)),e.get&&(e.content=t["_"+n+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Ephox Corp",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),t(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),t(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),t(/<font>(.*?)<\/font>/gi,"$1"),t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),t(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),t(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),t(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),t(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),t(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),t(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),t(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),t(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),t(/<\/(strong|b)>/gi,"[/b]"),t(/<(strong|b)>/gi,"[b]"),t(/<\/(em|i)>/gi,"[/i]"),t(/<(em|i)>/gi,"[i]"),t(/<\/u>/gi,"[/u]"),t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),t(/<u>/gi,"[u]"),t(/<blockquote[^>]*>/gi,"[quote]"),t(/<\/blockquote>/gi,"[/quote]"),t(/<br \/>/gi,"\n"),t(/<br\/>/gi,"\n"),t(/<br>/gi,"\n"),t(/<p>/gi,""),t(/<\/p>/gi,"\n"),t(/&nbsp;|\u00a0/gi," "),t(/&quot;/gi,'"'),t(/&lt;/gi,"<"),t(/&gt;/gi,">"),t(/&amp;/gi,"&"),e},_punbb_bbcode2html:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/\n/gi,"<br />"),t(/\[b\]/gi,"<strong>"),t(/\[\/b\]/gi,"</strong>"),t(/\[i\]/gi,"<em>"),t(/\[\/i\]/gi,"</em>"),t(/\[u\]/gi,"<u>"),t(/\[\/u\]/gi,"</u>"),t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),t(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),t(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span>&nbsp;'),t(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span>&nbsp;'),e}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}();editors/tinymce/plugins/layer/plugin.min.js000064400000005447152177723720015127 0ustar00tinymce.PluginManager.add("layer",function(a){function b(a){do if(a.className&&a.className.indexOf("mceItemLayer")!=-1)return a;while(a=a.parentNode)}function c(b){var c=a.dom;tinymce.each(c.select("div,p",b),function(a){/^(absolute|relative|fixed)$/i.test(a.style.position)&&(a.hasVisual?c.addClass(a,"mceItemVisualAid"):c.removeClass(a,"mceItemVisualAid"),c.addClass(a,"mceItemLayer"))})}function d(c){var d,e,f=[],g=b(a.selection.getNode()),h=-1,i=-1;for(e=[],tinymce.walk(a.getBody(),function(a){1==a.nodeType&&/^(absolute|relative|static)$/i.test(a.style.position)&&e.push(a)},"childNodes"),d=0;d<e.length;d++)f[d]=e[d].style.zIndex?parseInt(e[d].style.zIndex,10):0,h<0&&e[d]==g&&(h=d);if(c<0){for(d=0;d<f.length;d++)if(f[d]<f[h]){i=d;break}i>-1?(e[h].style.zIndex=f[i],e[i].style.zIndex=f[h]):f[h]>0&&(e[h].style.zIndex=f[h]-1)}else{for(d=0;d<f.length;d++)if(f[d]>f[h]){i=d;break}i>-1?(e[h].style.zIndex=f[i],e[i].style.zIndex=f[h]):e[h].style.zIndex=f[h]+1}a.execCommand("mceRepaint")}function e(){var b=a.dom,c=b.getPos(b.getParent(a.selection.getNode(),"*")),d=a.getBody();a.dom.add(d,"div",{style:{position:"absolute",left:c.x,top:c.y>20?c.y:20,width:100,height:100},class:"mceItemVisualAid mceItemLayer"},a.selection.getContent()||a.getLang("layer.content")),tinymce.Env.ie&&b.setHTML(d,d.innerHTML)}function f(){var c=b(a.selection.getNode());c||(c=a.dom.getParent(a.selection.getNode(),"DIV,P,IMG")),c&&("absolute"==c.style.position.toLowerCase()?(a.dom.setStyles(c,{position:"",left:"",top:"",width:"",height:""}),a.dom.removeClass(c,"mceItemVisualAid"),a.dom.removeClass(c,"mceItemLayer")):(c.style.left||(c.style.left="20px"),c.style.top||(c.style.top="20px"),c.style.width||(c.style.width=c.width?c.width+"px":"100px"),c.style.height||(c.style.height=c.height?c.height+"px":"100px"),c.style.position="absolute",a.dom.setAttrib(c,"data-mce-style",""),a.addVisual(a.getBody())),a.execCommand("mceRepaint"),a.nodeChanged())}a.addCommand("mceInsertLayer",e),a.addCommand("mceMoveForward",function(){d(1)}),a.addCommand("mceMoveBackward",function(){d(-1)}),a.addCommand("mceMakeAbsolute",function(){f()}),a.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),a.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),a.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),a.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),a.on("init",function(){tinymce.Env.ie&&a.getDoc().execCommand("2D-Position",!1,!0)}),a.on("mouseup",function(c){var d=b(c.target);d&&a.dom.setAttrib(d,"data-mce-style","")}),a.on("mousedown",function(c){var d,e=c.target,f=a.getDoc();tinymce.Env.gecko&&(b(e)?"on"!==f.designMode&&(f.designMode="on",e=f.body,d=e.parentNode,d.removeChild(e),d.appendChild(e)):"on"==f.designMode&&(f.designMode="off"))}),a.on("NodeChange",c)});editors/tinymce/plugins/fullscreen/plugin.min.js000064400000003213152177723720016142 0ustar00tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,r=document,i=r.body;return i.offsetWidth&&(e=i.offsetWidth,t=i.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){var e=tinymce.DOM.getViewPort();return{x:e.x,y:e.y}}function r(e){scrollTo(e.x,e.y)}function i(){function i(){f.setStyle(g,"height",t().h-(m.clientHeight-g.clientHeight))}var p,m,g,h,v=document.body,b=document.documentElement;d=!d,m=e.getContainer(),p=m.style,g=e.getContentAreaContainer().firstChild,h=g.style,d?(u=n(),o=h.width,a=h.height,h.width=h.height="100%",l=p.width,c=p.height,p.width=p.height="",f.addClass(v,"mce-fullscreen"),f.addClass(b,"mce-fullscreen"),f.addClass(m,"mce-fullscreen"),f.bind(window,"resize",i),i(),s=i):(h.width=o,h.height=a,l&&(p.width=l),c&&(p.height=c),f.removeClass(v,"mce-fullscreen"),f.removeClass(b,"mce-fullscreen"),f.removeClass(m,"mce-fullscreen"),f.unbind(window,"resize",s),r(u)),e.fire("FullscreenStateChanged",{state:d})}var o,a,s,l,c,u,d=!1,f=tinymce.DOM;if(!e.settings.inline)return e.on("init",function(){e.addShortcut("Ctrl+Shift+F","",i)}),e.on("remove",function(){s&&f.unbind(window,"resize",s)}),e.addCommand("mceFullScreen",i),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,onClick:function(){i(),e.focus()},onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Shift+F",onClick:i,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return d}}});editors/tinymce/plugins/insertdatetime/plugin.min.js000064400000003663152177723720017032 0ustar00tinymce.PluginManager.add("insertdatetime",function(e){function t(t,n){function r(e,t){if(e=""+e,e.length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",r(n.getMonth()+1,2)),t=t.replace("%d",r(n.getDate(),2)),t=t.replace("%H",""+r(n.getHours(),2)),t=t.replace("%M",""+r(n.getMinutes(),2)),t=t.replace("%S",""+r(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(n.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(l[n.getMonth()])),t=t.replace("%b",""+e.translate(s[n.getMonth()])),t=t.replace("%A",""+e.translate(a[n.getDay()])),t=t.replace("%a",""+e.translate(o[n.getDay()])),t=t.replace("%%","%")}function n(n){var r=t(n);if(e.settings.insertdatetime_element){var i;i=t(/%[HMSIp]/.test(n)?"%Y-%m-%dT%H:%M":"%Y-%m-%d"),r='<time datetime="'+i+'">'+r+"</time>";var o=e.dom.getParent(e.selection.getStart(),"time");if(o)return void e.dom.setOuterHTML(o,r)}e.insertContent(r)}var r,i,o="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),a="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" "),c=[];e.addCommand("mceInsertDate",function(){n(e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),e.addCommand("mceInsertTime",function(){n(e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S")))}),e.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){n(r||i)},menu:c}),tinymce.each(e.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(e){i||(i=e),c.push({text:t(e),onclick:function(){r=e,n(e)}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Date/time",menu:c,context:"insert"})});editors/tinymce/plugins/image/plugin.min.js000064400000020014152177723720015060 0ustar00tinymce.PluginManager.add("image",function(e){function t(e,t){function n(e,n){r.parentNode&&r.parentNode.removeChild(r),t({width:e,height:n})}var r=document.createElement("img");r.onload=function(){n(Math.max(r.width,r.clientWidth),Math.max(r.height,r.clientHeight))},r.onerror=function(){n()};var i=r.style;i.visibility="hidden",i.position="fixed",i.bottom=i.left=0,i.width=i.height="auto",document.body.appendChild(r),r.src=e}function n(e,t,n){function r(e,n){return n=n||[],tinymce.each(e,function(e){var i={text:e.text||e.title};e.menu?i.menu=r(e.menu):(i.value=e.value,t(i)),n.push(i)}),n}return r(e,n||[])}function r(t){return function(){var n=e.settings.image_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):"function"==typeof n?n(t):t(n)}}function i(r){function i(){var e,t,n,r;e=f.find("#width")[0],t=f.find("#height")[0],e&&t&&(n=e.value(),r=t.value(),f.find("#constrain")[0].checked()&&g&&h&&n&&r&&(g!=n?(r=Math.round(n/g*r),isNaN(r)||t.value(r)):(n=Math.round(r/h*n),isNaN(n)||e.value(n))),g=n,h=r)}function o(){function t(t){function n(){t.onload=t.onerror=null,e.selection&&(e.selection.select(t),e.nodeChanged())}t.onload=function(){y.width||y.height||!C||x.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),n()},t.onerror=n}var n,r;u(),i(),y=tinymce.extend(y,f.toJSON()),y.alt||(y.alt=""),y.title||(y.title=""),""===y.width&&(y.width=null),""===y.height&&(y.height=null),y.style||(y.style=null),y={src:y.src,alt:y.alt,title:y.title,width:y.width,height:y.height,style:y.style,caption:y.caption,"class":y["class"]},e.undoManager.transact(function(){function i(t){return e.schema.getTextBlockElements()[t.nodeName]}if(!y.src)return void(p&&(x.remove(p),e.focus(),e.nodeChanged()));if(""===y.title&&(y.title=null),p?x.setAttribs(p,y):(y.id="__mcenew",e.focus(),e.selection.setContent(x.createHTML("img",y)),p=x.get("__mcenew"),x.setAttrib(p,"id",null)),e.editorUpload.uploadImagesAuto(),y.caption===!1&&x.is(p.parentNode,"figure.image")&&(n=p.parentNode,x.insertAfter(p,n),x.remove(n)),y.caption!==!0)t(p);else if(!x.is(p.parentNode,"figure.image")){r=p,p=p.cloneNode(!0),n=x.create("figure",{"class":"image"}),n.appendChild(p),n.appendChild(x.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable=!1;var o=x.getParent(r,i);o?x.split(o,r,n):x.replace(n,r),e.selection.select(n)}})}function a(e){return e&&(e=e.replace(/px$/,"")),e}function s(n){var r,i,o,a=n.meta||{};v&&v.value(e.convertURL(this.value(),"src")),tinymce.each(a,function(e,t){f.find("#"+t).value(e)}),a.width||a.height||(r=e.convertURL(this.value(),"src"),i=e.settings.image_prepend_url,o=new RegExp("^(?:[a-z]+:)?//","i"),i&&!o.test(r)&&r.substring(0,i.length)!==i&&(r=i+r),this.value(r),t(e.documentBaseURI.toAbsolute(this.value()),function(e){e.width&&e.height&&C&&(g=e.width,h=e.height,f.find("#width").value(g),f.find("#height").value(h))}))}function l(e){e.meta=f.toJSON()}function c(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e}function u(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var n=f.toJSON(),r=x.parseStyle(n.style);r=c(r),n.vspace&&(r["margin-top"]=r["margin-bottom"]=t(n.vspace)),n.hspace&&(r["margin-left"]=r["margin-right"]=t(n.hspace)),n.border&&(r["border-width"]=t(n.border)),f.find("#style").value(x.serializeStyle(x.parseStyle(x.serializeStyle(r))))}}function d(){if(e.settings.image_advtab){var t=f.toJSON(),n=x.parseStyle(t.style);f.find("#vspace").value(""),f.find("#hspace").value(""),n=c(n),(n["margin-top"]&&n["margin-bottom"]||n["margin-right"]&&n["margin-left"])&&(n["margin-top"]===n["margin-bottom"]?f.find("#vspace").value(a(n["margin-top"])):f.find("#vspace").value(""),n["margin-right"]===n["margin-left"]?f.find("#hspace").value(a(n["margin-right"])):f.find("#hspace").value("")),n["border-width"]&&f.find("#border").value(a(n["border-width"])),f.find("#style").value(x.serializeStyle(x.parseStyle(x.serializeStyle(n))))}}var f,p,m,g,h,v,b,y={},x=e.dom,C=e.settings.image_dimensions!==!1;p=e.selection.getNode(),m=x.getParent(p,"figure.image"),m&&(p=x.select("img",m)[0]),p&&("IMG"!=p.nodeName||p.getAttribute("data-mce-object")||p.getAttribute("data-mce-placeholder"))&&(p=null),p&&(g=x.getAttrib(p,"width"),h=x.getAttrib(p,"height"),y={src:x.getAttrib(p,"src"),alt:x.getAttrib(p,"alt"),title:x.getAttrib(p,"title"),"class":x.getAttrib(p,"class"),width:g,height:h,caption:!!m}),r&&(v={type:"listbox",label:"Image list",values:n(r,function(t){t.value=e.convertURL(t.value||t.url,"src")},[{text:"None",value:""}]),value:y.src&&e.convertURL(y.src,"src"),onselect:function(e){var t=f.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),f.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){v=this}}),e.settings.image_class_list&&(b={name:"class",type:"listbox",label:"Class",values:n(e.settings.image_class_list,function(t){t.value&&(t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})})})});var w=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:s,onbeforecall:l},v];e.settings.image_description!==!1&&w.push({name:"alt",type:"textbox",label:"Image description"}),e.settings.image_title&&w.push({name:"title",type:"textbox",label:"Image Title"}),C&&w.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:i,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:i,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),w.push(b),e.settings.image_caption&&tinymce.Env.ceFalse&&w.push({name:"caption",type:"checkbox",label:"Caption"}),e.settings.image_advtab?(p&&(p.style.marginLeft&&p.style.marginRight&&p.style.marginLeft===p.style.marginRight&&(y.hspace=a(p.style.marginLeft)),p.style.marginTop&&p.style.marginBottom&&p.style.marginTop===p.style.marginBottom&&(y.vspace=a(p.style.marginTop)),p.style.borderWidth&&(y.border=a(p.style.borderWidth)),y.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(p,"style")))),f=e.windowManager.open({title:"Insert/edit image",data:y,bodyType:"tabpanel",body:[{title:"General",type:"form",items:w},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:d},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:u},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:o})):f=e.windowManager.open({title:"Insert/edit image",data:y,body:w,onSubmit:o})}e.on("preInit",function(){function t(e){var t=e.attr("class");return t&&/\bimage\b/.test(t)}function n(e){return function(n){function r(t){t.attr("contenteditable",e?"true":null)}for(var i,o=n.length;o--;)i=n[o],t(i)&&(i.attr("contenteditable",e?"false":null),tinymce.each(i.getAll("figcaption"),r))}}e.parser.addNodeFilter("figure",n(!0)),e.serializer.addNodeFilter("figure",n(!1))}),e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:r(i),stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:r(i),context:"insert",prependToContext:!0}),e.addCommand("mceImage",r(i))});editors/tinymce/plugins/visualchars/plugin.min.js000064400000002232152177723720016324 0ustar00tinymce.PluginManager.add("visualchars",function(e){function t(t){function n(e){return'<span data-mce-bogus="1" class="mce-'+p[e]+'">'+e+"</span>"}function o(){var e,t="";for(e in p)t+=e;return new RegExp("["+t+"]","g")}function a(){var e,t="";for(e in p)t&&(t+=","),t+="span.mce-"+p[e];return t}var s,l,c,u,d,f,p,m,g=e.getBody(),h=e.selection;if(p={"\xa0":"nbsp","\xad":"shy"},r=!r,i.state=r,e.fire("VisualChars",{state:r}),m=o(),t&&(f=h.getBookmark()),r)for(l=[],tinymce.walk(g,function(e){3==e.nodeType&&e.nodeValue&&m.test(e.nodeValue)&&l.push(e)},"childNodes"),c=0;c<l.length;c++){for(u=l[c].nodeValue,u=u.replace(m,n),d=e.dom.create("div",null,u);s=d.lastChild;)e.dom.insertAfter(s,l[c]);e.dom.remove(l[c])}else for(l=e.dom.select(a(),g),c=l.length-1;c>=0;c--)e.dom.remove(l[c],1);h.moveToBookmark(f)}function n(){var t=this;e.on("VisualChars",function(e){t.active(e.state)})}var r,i=this;e.addCommand("mceVisualChars",t),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n,selectable:!0,context:"view",prependToContext:!0})});editors/tinymce/plugins/example_dependency/plugin.min.js000064400000000111152177723720017623 0ustar00tinymce.PluginManager.add("example_dependency",function(){},["example"]);editors/tinymce/plugins/table/plugin.min.js000064400000134026152177723720015076 0ustar00!function(e,t){"use strict";function n(e,t){for(var n,r=[],a=0;a<e.length;++a){if(n=o[e[a]]||i(e[a]),!n)throw"module definition dependecy not found: "+e[a];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){o[e]=i.apply(null,arguments)})}function i(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}var o={};r("tinymce/tableplugin/Utils",["tinymce/Env"],function(e){function t(t){(!e.ie||e.ie>9)&&(t.hasChildNodes()||(t.innerHTML='<br data-mce-bogus="1" />'))}var n=function(e){return function(t,n){t&&(n=parseInt(n,10),1===n||0===n?t.removeAttribute(e,1):t.setAttribute(e,n,1))}},r=function(e){return function(t){return parseInt(t.getAttribute(e)||1,10)}};return{setColSpan:n("colSpan"),setRowSpan:n("rowspan"),getColSpan:r("colSpan"),getRowSpan:r("rowSpan"),setSpanVal:function(e,t,r){n(t)(e,r)},getSpanVal:function(e,t){return r(t)(e)},paddCell:t}}),r("tinymce/tableplugin/SplitCols",["tinymce/util/Tools","tinymce/tableplugin/Utils"],function(e,t){var n=function(e,t,n){return e[n]?e[n][t]:null},r=function(e,t,r){var i=n(e,t,r);return i?i.elm:null},i=function(e,t,i,o){var a,s,l=0,c=r(e,t,i);for(a=i;(o>0?a<e.length:a>=0)&&(s=n(e,t,a),c===s.elm);a+=o)l++;return l},o=function(e,t,n){for(var r,i=e[n],o=t;o<i.length;o++)if(r=i[o],r.real)return r.elm;return null},a=function(e,n){for(var r,o=[],a=e[n],s=0;s<a.length;s++)r=a[s],o.push({elm:r.elm,above:i(e,s,n,-1)-1,below:i(e,s,n,1)-1}),s+=t.getColSpan(r.elm)-1;return o},s=function(e,n){var r=e.elm.ownerDocument,i=r.createElement("td");return t.setColSpan(i,t.getColSpan(e.elm)),t.setRowSpan(i,n),t.paddCell(i),i},l=function(e,t,n,r){var i=o(e,n+1,r);i?i.parentNode.insertBefore(t,i):(i=o(e,0,r),i.parentNode.appendChild(t))},c=function(e,n,r,i){if(0!==n.above){t.setRowSpan(n.elm,n.above);var o=s(n,n.below+1);return l(e,o,r,i),o}return null},u=function(e,n,r,i){if(0!==n.below){t.setRowSpan(n.elm,n.above+1);var o=s(n,n.below);return l(e,o,r,i+1),o}return null},d=function(t,n,i,o){var s=a(t,i),l=r(t,n,i).parentNode,d=[];return e.each(s,function(e,n){var r=o?c(t,e,n,i):u(t,e,n,i);null!==r&&d.push(d)}),{cells:d,row:l}};return{splitAt:d}}),r("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env","tinymce/tableplugin/Utils","tinymce/tableplugin/SplitCols"],function(e,n,r,i){var o=e.each,a=r.getSpanVal,s=r.setSpanVal;return function(l,c,u){function d(){l.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected")}function f(e){return e===l.getBody()}function p(t,n){return t?(n=e.map(n.split(","),function(e){return e.toLowerCase()}),e.grep(t.childNodes,function(t){return e.inArray(n,t.nodeName.toLowerCase())!==-1})):[]}function m(){var e=0;Z=[],Q=0,o(["thead","tbody","tfoot"],function(t){var n=p(c,t)[0],r=p(n,"tr");o(r,function(n,r){r+=e,o(p(n,"td,th"),function(e,n){var i,o,s,l;if(Z[r])for(;Z[r][n];)n++;for(s=a(e,"rowspan"),l=a(e,"colspan"),o=r;o<r+s;o++)for(Z[o]||(Z[o]=[]),i=n;i<n+l;i++)Z[o][i]={part:t,real:o==r&&i==n,elm:e,rowspan:s,colspan:l};Q=Math.max(Q,n+1)})}),e+=r.length})}function g(e){return l.fire("newrow",{node:e}),e}function h(e){return l.fire("newcell",{node:e}),e}function v(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function b(e,t){var n;if(n=Z[t])return n[e]}function y(e,t){return e[t]?e[t]:null}function x(e,t){for(var n=[],r=0;r<e.length;r++)n.push(b(t,r));return n}function C(e){return e&&(!!re.getAttrib(e.elm,"data-mce-selected")||e==u)}function w(){var e=[];return o(c.rows,function(t){o(t.cells,function(n){if(re.getAttrib(n,"data-mce-selected")||u&&n==u.elm)return e.push(t),!1})}),e}function N(){var e=0;return o(Z,function(t){if(o(t,function(t){C(t)&&e++}),e)return!1}),e}function k(){var e=re.createRng();f(c)||(e.setStartAfter(c),e.setEndAfter(c),ne.setRng(e),re.remove(c))}function S(t){var i,a={};return l.settings.table_clone_elements!==!1&&(a=e.makeMap((l.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var r;if(3==e.nodeType)return o(re.getParents(e.parentNode,null,t).reverse(),function(e){a[e.nodeName]&&(e=v(e,!1),i?r&&r.appendChild(e):i=r=e,r=e)}),r&&(r.innerHTML=n.ie&&n.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'),!1},"childNodes"),t=v(t,!1),h(t),s(t,"rowSpan",1),s(t,"colSpan",1),i?t.appendChild(i):r.paddCell(t),t}function _(){var e,t=re.createRng();return o(re.select("tr",c),function(e){0===e.cells.length&&re.remove(e)}),0===re.select("tr",c).length?(t.setStartBefore(c),t.setEndBefore(c),ne.setRng(t),void re.remove(c)):(o(re.select("thead,tbody,tfoot",c),function(e){0===e.rows.length&&re.remove(e)}),m(),void(ee&&(e=Z[Math.min(Z.length-1,ee.y)],e&&(ne.select(e[Math.min(e.length-1,ee.x)].elm,!0),ne.collapse(!0)))))}function E(e,t,n,r){var i,o,a,s,l;for(i=Z[t][e].elm.parentNode,a=1;a<=n;a++)if(i=re.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=Z[t+a][o].elm,l.parentNode==i){for(s=1;s<=r;s++)re.insertAfter(S(l),l);break}if(o==-1)for(s=1;s<=r;s++)i.insertBefore(S(i.cells[0]),i.cells[0])}}function T(){o(Z,function(e,t){o(e,function(e,n){var r,i,o;if(C(e)&&(e=e.elm,r=a(e,"colspan"),i=a(e,"rowspan"),r>1||i>1)){for(s(e,"rowSpan",1),s(e,"colSpan",1),o=0;o<r-1;o++)re.insertAfter(S(e),e);E(n,t,i-1,r)}})})}function R(e,t,n){for(var r=[],i=0;i<e.length;i++)(i<t||i>n)&&r.push(e[i]);return r}function A(t){return e.grep(t,function(e){return e.real===!1})}function B(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].elm;t[t.length-1]!==r&&t.push(r)}return t}function P(t,n,i,o,a){var s=0;if(a-i<1)return 0;for(var l=i+1;l<=a;l++){var c=R(y(t,l),n,o),u=A(c);c.length===u.length&&(e.each(B(u),function(e){r.setRowSpan(e,r.getRowSpan(e)-1)}),s++)}return s}function D(t,n,i,o,a){var s=0;if(o-n<1)return 0;for(var l=n+1;l<=o;l++){var c=R(x(t,l),i,a),u=A(c);c.length===u.length&&(e.each(B(u),function(e){r.setColSpan(e,r.getColSpan(e)-1)}),s++)}return s}function M(t,n,r){var i,a,l,c,u,d,f,p,g,h,v,y,x;if(t?(i=q(t),a=i.x,l=i.y,c=a+(n-1),u=l+(r-1)):(ee=te=null,o(Z,function(e,t){o(e,function(e,n){C(e)&&(ee||(ee={x:n,y:t}),te={x:n,y:t})})}),ee&&(a=ee.x,l=ee.y,c=te.x,u=te.y)),p=b(a,l),g=b(c,u),p&&g&&p.part==g.part){T(),m(),y=P(Z,a,l,c,u),x=D(Z,a,l,c,u),p=b(a,l).elm;var w=c-a-x+1,N=u-l-y+1;for(w===Q&&N===Z.length&&(w=1,N=1),w===Q&&N>1&&(N=1),s(p,"colSpan",w),s(p,"rowSpan",N),f=l;f<=u;f++)for(d=a;d<=c;d++)Z[f]&&Z[f][d]&&(t=Z[f][d].elm,t!=p&&(h=e.grep(t.childNodes),o(h,function(e){p.appendChild(e)}),h.length&&(h=e.grep(p.childNodes),v=0,o(h,function(e){"BR"==e.nodeName&&v++<h.length-1&&p.removeChild(e)})),re.remove(t)));_()}}function L(e){var n,r,i,l,c,u,d,f,p,m;if(o(Z,function(r,i){if(o(r,function(t){if(C(t)&&(t=t.elm,c=t.parentNode,u=g(v(c,!1)),n=i,e))return!1}),e)return n===t}),n!==t){for(l=0,m=0;l<Z[0].length;l+=m)if(Z[n][l]&&(r=Z[n][l].elm,m=a(r,"colspan"),r!=i)){if(e){if(n>0&&Z[n-1][l]&&(f=Z[n-1][l].elm,p=a(f,"rowSpan"),p>1)){s(f,"rowSpan",p+1);continue}}else if(p=a(r,"rowspan"),p>1){s(r,"rowSpan",p+1);continue}d=S(r),s(d,"colSpan",r.colSpan),u.appendChild(d),i=r}u.hasChildNodes()&&(e?c.parentNode.insertBefore(u,c):re.insertAfter(u,c))}}function I(e,t){t=t||w().length||1;for(var n=0;n<t;n++)L(e)}function O(e){var n,r;o(Z,function(r){if(o(r,function(t,r){if(C(t)&&(n=r,e))return!1}),e)return n===t}),o(Z,function(t,i){var o,l,c;t[n]&&(o=t[n].elm,o!=r&&(c=a(o,"colspan"),l=a(o,"rowspan"),1==c?e?(o.parentNode.insertBefore(S(o),o),E(n,i,l-1,c)):(re.insertAfter(S(o),o),E(n,i,l-1,c)):s(o,"colSpan",o.colSpan+1),r=o))})}function H(e,t){t=t||N()||1;for(var n=0;n<t;n++)O(e)}function F(t){return e.grep(z(t),C)}function z(e){var t=[];return o(e,function(e){o(e,function(e){t.push(e)})}),t}function W(){var t=[];if(f(c)){if(1==Z[0].length)return;if(F(Z).length==z(Z).length)return}o(Z,function(n){o(n,function(n,r){C(n)&&e.inArray(t,r)===-1&&(o(Z,function(e){var t,n=e[r].elm;t=a(n,"colSpan"),t>1?s(n,"colSpan",t-1):re.remove(n)}),t.push(r))})}),_()}function U(){function e(e){var t,n;o(e.cells,function(e){var n=a(e,"rowSpan");n>1&&(s(e,"rowSpan",n-1),t=q(e),E(t.x,t.y,1,1))}),t=q(e.cells[0]),o(Z[t.y],function(e){var t;e=e.elm,e!=n&&(t=a(e,"rowSpan"),t<=1?re.remove(e):s(e,"rowSpan",t-1),n=e)})}var t;t=w(),f(c)&&t.length==c.rows.length||(o(t.reverse(),function(t){e(t)}),_())}function V(){var e=w();if(!f(c)||e.length!=c.rows.length)return re.remove(e),_(),e}function $(){var e=w();return o(e,function(t,n){e[n]=v(t,!0)}),e}function j(t,n){var r,a,l;t&&(r=i.splitAt(Z,ee.x,ee.y,n),a=r.row,e.each(r.cells,h),l=e.map(t,function(e){return e.cloneNode(!0)}),n||l.reverse(),o(l,function(e){var t,r,i=e.cells.length;for(g(e),t=0;t<i;t++)r=e.cells[t],h(r),s(r,"colSpan",1),s(r,"rowSpan",1);for(t=i;t<Q;t++)e.appendChild(h(S(e.cells[i-1])));for(t=Q;t<i;t++)re.remove(e.cells[t]);n?a.parentNode.insertBefore(e,a):re.insertAfter(e,a)}),d())}function q(e){var t;return o(Z,function(n,r){return o(n,function(n,i){if(n.elm==e)return t={x:i,y:r},!1}),!t}),t}function Y(e){ee=q(e)}function X(){var e,t;return e=t=0,o(Z,function(n,r){o(n,function(n,i){var o,a;C(n)&&(n=Z[r][i],i>e&&(e=i),r>t&&(t=r),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&i+o>e&&(e=i+o),a&&r+a>t&&(t=r+a)))})}),{x:e,y:t}}function K(e){var t,n,r,i,o,a,s,l,c,u;if(te=q(e),ee&&te){for(t=Math.min(ee.x,te.x),n=Math.min(ee.y,te.y),r=Math.max(ee.x,te.x),i=Math.max(ee.y,te.y),o=r,a=i,u=n;u<=i;u++)for(c=t;c<=r;c++)e=Z[u][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&u+l>a&&(a=u+l));for(d(),u=n;u<=a;u++)for(c=t;c<=o;c++)Z[u][c]&&re.setAttrib(Z[u][c].elm,"data-mce-selected","1")}}function G(e,t){var n,r,i;n=q(e),r=n.y*Q+n.x;do{if(r+=t,i=b(r%Q,Math.floor(r/Q)),!i)break;if(i.elm!=e)return ne.select(i.elm,!0),re.isEmpty(i.elm)&&ne.collapse(!0),!0}while(i.elm==e);return!1}function J(t){if(ee){var n=i.splitAt(Z,ee.x,ee.y,t);e.each(n.cells,h)}}var Z,Q,ee,te,ne=l.selection,re=ne.dom;c=c||re.getParent(ne.getStart(!0),"table"),m(),u=u||re.getParent(ne.getStart(!0),"th,td"),u&&(ee=q(u),te=X(),u=b(ee.x,ee.y)),e.extend(this,{deleteTable:k,split:T,merge:M,insertRow:L,insertRows:I,insertCol:O,insertCols:H,splitCols:J,deleteCols:W,deleteRows:U,cutRows:V,copyRows:$,pasteRows:j,getPos:q,setStartCell:Y,setEndCell:K,moveRelIdx:G,refresh:m})}}),r("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/util/Delay","tinymce/Env","tinymce/util/Tools","tinymce/tableplugin/Utils"],function(e,t,n,r,i){var o=r.each,a=i.getSpanVal;return function(s){function l(){function n(n){function r(e,t){var r=e?"previousSibling":"nextSibling",o=s.dom.getParent(t,"tr"),a=o[r];if(a)return v(s,t,a,e),n.preventDefault(),!0;var l=s.dom.getParent(o,"table"),d=o.parentNode,f=d.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=i(e,l,d,"tbody");if(null!==p)return c(e,p,t)}return u(e,o,r,l)}function i(e,t,n,r){var i=s.dom.select(">"+r,t),o=i.indexOf(n);if(e&&0===o||!e&&o===i.length-1)return l(e,t);if(o===-1){var a="thead"===n.tagName.toLowerCase()?0:i.length-1;return i[a]}return i[o+(e?-1:1)]}function l(e,t){var n=e?"thead":"tfoot",r=s.dom.select(">"+n,t);return 0!==r.length?r[0]:null}function c(e,t,r){var i=d(t,e);return i&&v(s,r,i,e),n.preventDefault(),!0}function u(e,t,i,o){var a=o[i];if(a)return f(a),!0;var l=s.dom.getParent(o,"td,th");if(l)return r(e,l,n);var c=d(t,!e);return f(c),n.preventDefault(),!1}function d(e,t){var n=e&&e[t?"lastChild":"firstChild"];return n&&"BR"===n.nodeName?s.dom.getParent(n,"td,th"):n}function f(e){s.selection.setCursorLocation(e,0)}function p(){return x==e.UP||x==e.DOWN}function m(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function g(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=a(n,"colspan");return t}function h(e,t){var n=0,r=0;return o(e.children,function(e,i){if(n+=a(e,"colspan"),r=i,n>t)return!1}),r}function v(e,t,n,r){var i=g(s.dom.getParent(t,"td,th")),o=h(n,i),a=n.childNodes[o],l=d(a,r);f(l||a)}function b(e){var t=s.selection.getNode(),n=s.dom.getParent(t,"td,th"),r=s.dom.getParent(e,"td,th");return n&&n!==r&&y(n,r)}function y(e,t){return s.dom.getParent(e,"TABLE")===s.dom.getParent(t,"TABLE")}var x=n.keyCode;if(p()&&m(s)){var C=s.selection.getNode();t.setEditorTimeout(s,function(){b(C)&&r(!n.shiftKey&&x===e.UP,C,n)},0)}}s.on("KeyDown",function(e){n(e)})}function c(){function e(e,t){var n,r=t.ownerDocument,i=r.createRange();return i.setStartBefore(t),i.setEnd(e.endContainer,e.endOffset),n=r.createElement("body"),n.appendChild(i.cloneContents()),0===n.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}s.on("KeyDown",function(t){var n,r,i=s.dom;37!=t.keyCode&&38!=t.keyCode||(n=s.selection.getRng(),r=i.getParent(n.startContainer,"table"),r&&s.getBody().firstChild==r&&e(n,r)&&(n=i.createRng(),n.setStartBefore(r),n.setEndBefore(r),s.selection.setRng(n),t.preventDefault()))})}function u(){s.on("KeyDown SetContent VisualAid",function(){var e;for(e=s.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&("BR"==e.tagName||!e.getAttribute("data-mce-bogus")))break;e&&"TABLE"==e.nodeName&&(s.settings.forced_root_block?s.dom.add(s.getBody(),s.settings.forced_root_block,s.settings.forced_root_block_attrs,n.ie&&n.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'):s.dom.add(s.getBody(),"br",{"data-mce-bogus":"1"}))}),s.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&s.dom.remove(t)})}function d(){function e(e,t,n,r){var i,o,a,s=3,l=e.dom.getParent(t.startContainer,"TABLE");return l&&(i=l.parentNode),o=t.startContainer.nodeType==s&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==i),a=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,o||a}function t(){var t=s.selection.getRng(),n=s.selection.getNode(),r=s.dom.getParent(t.startContainer,"TD,TH");if(e(s,t,n,r)){r||(r=n);for(var i=r.lastChild;i.lastChild;)i=i.lastChild;3==i.nodeType&&(t.setEnd(i,i.data.length),s.selection.setRng(t))}}s.on("KeyDown",function(){t()}),s.on("MouseDown",function(e){2!=e.button&&t()})}function f(){function t(e){s.selection.select(e,!0),s.selection.collapse(!0)}function n(e){s.$(e).empty(),i.paddCell(e)}s.on("keydown",function(i){if((i.keyCode==e.DELETE||i.keyCode==e.BACKSPACE)&&!i.isDefaultPrevented()){var o,a,l,c;if(o=s.dom.getParent(s.selection.getStart(),"table")){if(a=s.dom.select("td,th",o),l=r.grep(a,function(e){return!!s.dom.getAttrib(e,"data-mce-selected")}),0===l.length)return c=s.dom.getParent(s.selection.getStart(),"td,th"),void(s.selection.isCollapsed()&&c&&s.dom.isEmpty(c)&&(i.preventDefault(),n(c),t(c)));i.preventDefault(),s.undoManager.transact(function(){a.length==l.length?s.execCommand("mceTableDelete"):(r.each(l,n),t(l[0]))})}}})}function p(){var t=function(e){return e&&"CAPTION"==e.nodeName&&"TABLE"==e.parentNode.nodeName},r=function(e,t){var n=s.selection.getRng(),r=e.ownerDocument.createTextNode("\xa0");n.startOffset?e.insertBefore(r,e.firstChild):e.appendChild(r),t&&(s.selection.select(r,!0),s.selection.collapse(!0))},i=function(t){return(t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()},o=function(e){return e.firstChild===e.lastChild&&e.firstChild},a=function(e){return e&&3===e.nodeType},l=function(e){var t=o(e);return a(t)&&1===t.data.length?t.data:null},c=function(e){var t=o(e),n=l(e);return t&&!a(t)||n&&!d(n)},u=function(e){return s.dom.isEmpty(e)||d(l(e))},d=function(e){return"\xa0"===e};s.on("keydown",function(e){if(i(e)){var o=s.dom.getParent(s.selection.getStart(),"caption");t(o)&&(n.ie&&(s.selection.isCollapsed()?c(o)&&r(o):(s.undoManager.transact(function(){s.execCommand("Delete"),u(o)&&r(o,!0)}),e.preventDefault())),u(o)&&e.preventDefault())}})}f(),p(),n.webkit&&(l(),d()),n.gecko&&(c(),u()),n.ie>9&&(c(),u())}}),r("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(e,t,n){return function(r,i){function o(e){r.getBody().style.webkitUserSelect="",(e||g)&&(r.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),g=!1)}function a(e,t){return!(!e||!t)&&e===m.getParent(t,"table")}function s(t){var n,o,s=t.target;if(!f&&!p&&s!==d&&(d=s,u&&c)){if(o=m.getParent(s,"td,th"),a(u,o)||(o=m.getParent(u,"td,th")),c===o&&!g)return;if(i(!0),a(u,o)){t.preventDefault(),l||(l=new e(r,u,c),r.getBody().style.webkitUserSelect="none"),l.setEndCell(o),g=!0,n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(e){}}}}var l,c,u,d,f,p,m=r.dom,g=!0,h=function(){c=l=u=d=null,i(!1)};return r.on("SelectionChange",function(e){g&&e.stopImmediatePropagation()},!0),r.on("MouseDown",function(e){2==e.button||f||p||(o(),c=m.getParent(e.target,"td,th"),u=m.getParent(c,"table"))}),r.on("mouseover",s),r.on("remove",function(){m.unbind(r.getDoc(),"mouseover",s),o()}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(r?i.setStartBefore(e):i.setEndBefore(e))}while(e=r?o.next():o.prev())}var i,o,a,s,u,d=r.selection;if(c){if(l&&(r.getBody().style.webkitUserSelect=""),o=m.select("td[data-mce-selected],th[data-mce-selected]"),o.length>0){i=m.createRng(),s=o[0],i.setStartBefore(s),i.setEndAfter(s),e(s,1),a=new t(s,m.getParent(o[0],"table"));do if("TD"==s.nodeName||"TH"==s.nodeName){if(!m.getAttrib(s,"data-mce-selected"))break;u=s}while(s=a.next());e(u),d.setRng(i)}r.nodeChanged(),h()}}),r.on("KeyUp Drop SetContent",function(e){o("setcontent"==e.type),h(),f=!1}),r.on("ObjectResizeStart ObjectResized",function(e){f="objectresized"!=e.type}),r.on("dragstart",function(){p=!0}),r.on("drop dragend",function(){p=!1}),{clear:o}}}),r("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(e,t){var n=e.each;return function(r){function i(){var e=r.settings.color_picker_callback;if(e)return function(){var t=this;e.call(r,function(e){t.value(e).fire("change")},t.value())}}function o(e){return{title:"Advanced",type:"form",defaults:{onchange:function(){d(e,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:i()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:i()}]}]}}function a(e){return e?e.replace(/px$/,""):""}function s(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function l(e){n("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(e){n("top middle bottom".split(" "),function(t){r.formatter.remove("valign"+t,{},e)})}function u(t,n,r){function i(t,r){return r=r||[],e.each(t,function(e){var t={text:e.text||e.title};e.menu?t.menu=i(e.menu):(t.value=e.value,n&&n(t)),r.push(t)}),r}return i(t,r||[])}function d(e,t,n){var r=t.toJSON(),i=e.parseStyle(r.style);n?(t.find("#borderColor").value(i["border-color"]||"")[0].fire("change"),t.find("#backgroundColor").value(i["background-color"]||"")[0].fire("change")):(i["border-color"]=r.borderColor,i["background-color"]=r.backgroundColor),t.find("#style").value(e.serializeStyle(e.parseStyle(e.serializeStyle(i))))}function f(e,t,n){var r=e.parseStyle(e.getAttrib(n,"style"));r["border-color"]&&(t.borderColor=r["border-color"]),r["background-color"]&&(t.backgroundColor=r["background-color"]),t.style=e.serializeStyle(r)}function p(e,t,r){var i=e.parseStyle(e.getAttrib(t,"style"));n(r,function(e){i[e.name]=e.value}),e.setAttrib(t,"style",e.serializeStyle(e.parseStyle(e.serializeStyle(i))))}var m=this;m.tableProps=function(){m.table(!0)},m.table=function(i){function c(){function n(e,t,r){if("TD"===e.tagName||"TH"===e.tagName)C.setStyle(e,t,r);else if(e.children)for(var i=0;i<e.children.length;i++)n(e.children[i],t,r)}var i;d(C,this),w=e.extend(w,this.toJSON()),w["class"]===!1&&delete w["class"],r.undoManager.transact(function(){if(g||(g=r.plugins.table.insertTable(w.cols||1,w.rows||1)),r.dom.setAttribs(g,{style:w.style,"class":w["class"]}),r.settings.table_style_by_css){if(x=[],x.push({name:"border",value:w.border}),x.push({name:"border-spacing",value:s(w.cellspacing)}),p(C,g,x),C.setAttribs(g,{"data-mce-border-color":w.borderColor,"data-mce-cell-padding":w.cellpadding,"data-mce-border":w.border}),g.children)for(var e=0;e<g.children.length;e++)n(g.children[e],"border",w.border),n(g.children[e],"padding",s(w.cellpadding))}else r.dom.setAttribs(g,{border:w.border,cellpadding:w.cellpadding,cellspacing:w.cellspacing});C.getAttrib(g,"width")&&!r.settings.table_style_by_css?C.setAttrib(g,"width",a(w.width)):C.setStyle(g,"width",s(w.width)),C.setStyle(g,"height",s(w.height)),i=C.select("caption",g)[0],i&&!w.caption&&C.remove(i),!i&&w.caption&&(i=C.create("caption"),i.innerHTML=t.ie?"\xa0":'<br data-mce-bogus="1"/>',g.insertBefore(i,g.firstChild)),l(g),w.align&&r.formatter.apply("align"+w.align,{},g),r.focus(),r.addVisual()})}function m(e,t){function n(e,n){for(var r=0;r<n.length;r++){var i=C.getStyle(n[r],t);if("undefined"==typeof e&&(e=i),e!=i)return""}return e}var i,o=r.dom.select("td,th",e);return i=n(i,o)}var g,h,v,b,y,x,C=r.dom,w={};i===!0?(g=C.getParent(r.selection.getStart(),"table"),g&&(w={width:a(C.getStyle(g,"width")||C.getAttrib(g,"width")),height:a(C.getStyle(g,"height")||C.getAttrib(g,"height")),cellspacing:a(C.getStyle(g,"border-spacing")||C.getAttrib(g,"cellspacing")),cellpadding:C.getAttrib(g,"data-mce-cell-padding")||C.getAttrib(g,"cellpadding")||m(g,"padding"),border:C.getAttrib(g,"data-mce-border")||C.getAttrib(g,"border")||m(g,"border"),borderColor:C.getAttrib(g,"data-mce-border-color"),caption:!!C.select("caption",g)[0],"class":C.getAttrib(g,"class")},n("left center right".split(" "),function(e){r.formatter.matchNode(g,"align"+e)&&(w.align=e)}))):(h={label:"Cols",name:"cols"},v={label:"Rows",name:"rows"}),r.settings.table_class_list&&(w["class"]&&(w["class"]=w["class"].replace(/\s*mce\-item\-table\s*/g,"")),b={name:"class",type:"listbox",label:"Class",values:u(r.settings.table_class_list,function(e){e.value&&(e.textStyle=function(){return r.formatter.getCssText({block:"table",classes:[e.value]})})})}),y={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:r.settings.table_appearance_options!==!1?[h,v,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[h,v,{label:"Width",name:"width"},{label:"Height",name:"height"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},b]},r.settings.table_advtab!==!1?(f(C,w,g),r.windowManager.open({title:"Table properties",data:w,bodyType:"tabpanel",body:[{title:"General",type:"form",items:y},o(C)],onsubmit:c})):r.windowManager.open({title:"Table properties",data:w,body:y,onsubmit:c})},m.merge=function(e,t){r.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var n=this.toJSON();r.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})},m.cell=function(){function t(e,t,n){(1===b.length||n)&&v.setAttrib(e,t,n)}function i(e,t,n){(1===b.length||n)&&v.setStyle(e,t,n)}function p(){d(v,this),g=e.extend(g,this.toJSON()),r.undoManager.transact(function(){n(b,function(e){t(e,"scope",g.scope),t(e,"style",g.style),t(e,"class",g["class"]),i(e,"width",s(g.width)),i(e,"height",s(g.height)),g.type&&e.nodeName.toLowerCase()!==g.type&&(e=v.rename(e,g.type)),1===b.length&&(l(e),c(e)),g.align&&r.formatter.apply("align"+g.align,{},e),g.valign&&r.formatter.apply("valign"+g.valign,{},e)}),r.focus()})}var m,g,h,v=r.dom,b=[];if(b=r.dom.select("td[data-mce-selected],th[data-mce-selected]"),m=r.dom.getParent(r.selection.getStart(),"td,th"),!b.length&&m&&b.push(m),m=m||b[0]){b.length>1?g={width:"",height:"",scope:"","class":"",align:"",style:"",type:m.nodeName.toLowerCase()}:(g={width:a(v.getStyle(m,"width")||v.getAttrib(m,"width")),height:a(v.getStyle(m,"height")||v.getAttrib(m,"height")),scope:v.getAttrib(m,"scope"),"class":v.getAttrib(m,"class")},g.type=m.nodeName.toLowerCase(),n("left center right".split(" "),function(e){r.formatter.matchNode(m,"align"+e)&&(g.align=e)}),n("top middle bottom".split(" "),function(e){r.formatter.matchNode(m,"valign"+e)&&(g.valign=e)}),f(v,g,m)),r.settings.table_cell_class_list&&(h={name:"class",type:"listbox",label:"Class",values:u(r.settings.table_cell_class_list,function(e){e.value&&(e.textStyle=function(){return r.formatter.getCssText({block:"td",classes:[e.value]})})})});var y={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},h]};r.settings.table_cell_advtab!==!1?r.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:g,body:[{title:"General",type:"form",items:y},o(v)],onsubmit:p}):r.windowManager.open({title:"Cell properties",data:g,body:y,onsubmit:p})}},m.row=function(){function t(e,t,n){(1===x.length||n)&&y.setAttrib(e,t,n)}function i(e,t,n){(1===x.length||n)&&y.setStyle(e,t,n)}function c(){var o,a,c;d(y,this),v=e.extend(v,this.toJSON()),r.undoManager.transact(function(){var e=v.type;n(x,function(n){t(n,"scope",v.scope),t(n,"style",v.style),t(n,"class",v["class"]),i(n,"height",s(v.height)),e!==n.parentNode.nodeName.toLowerCase()&&(o=y.getParent(n,"table"),a=n.parentNode,c=y.select(e,o)[0],c||(c=y.create(e),o.firstChild?o.insertBefore(c,o.firstChild):o.appendChild(c)),c.appendChild(n),a.hasChildNodes()||y.remove(a)),1===x.length&&l(n),v.align&&r.formatter.apply("align"+v.align,{},n)}),r.focus()})}var p,m,g,h,v,b,y=r.dom,x=[];p=r.dom.getParent(r.selection.getStart(),"table"),m=r.dom.getParent(r.selection.getStart(),"td,th"),n(p.rows,function(e){n(e.cells,function(t){if(y.getAttrib(t,"data-mce-selected")||t==m)return x.push(e),!1})}),g=x[0],g&&(x.length>1?v={height:"",scope:"","class":"",align:"",type:g.parentNode.nodeName.toLowerCase()}:(v={height:a(y.getStyle(g,"height")||y.getAttrib(g,"height")),scope:y.getAttrib(g,"scope"),"class":y.getAttrib(g,"class")},v.type=g.parentNode.nodeName.toLowerCase(),n("left center right".split(" "),function(e){r.formatter.matchNode(g,"align"+e)&&(v.align=e)}),f(y,v,g)),r.settings.table_row_class_list&&(h={name:"class",type:"listbox",label:"Class",values:u(r.settings.table_row_class_list,function(e){e.value&&(e.textStyle=function(){return r.formatter.getCssText({block:"tr",classes:[e.value]})})})}),b={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},h]},r.settings.table_row_advtab!==!1?r.windowManager.open({title:"Row properties",data:v,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},o(y)],onsubmit:c}):r.windowManager.open({title:"Row properties",data:v,body:b,onsubmit:c}))}}}),r("tinymce/tableplugin/ResizeBars",["tinymce/util/Tools","tinymce/util/VK"],function(e,n){var r;return function(i){function o(e,t){return{index:e,y:i.dom.getPos(t).y}}function a(e,t){return{index:e,y:i.dom.getPos(t).y+t.offsetHeight}}function s(e,t){return{index:e,x:i.dom.getPos(t).x}}function l(e,t){return{index:e,x:i.dom.getPos(t).x+t.offsetWidth}}function c(){var e=i.getBody().dir;return"rtl"===e}function u(){return i.inline}function d(){return u?i.getBody().ownerDocument.body:i.getBody()}function f(e,t){return c()?l(e,t):s(e,t)}function p(e,t){return c()?s(e,t):l(e,t)}function m(e,t){return g(e,"width")/g(t,"width")*100}function g(e,t){var n=i.dom.getStyle(e,t,!0),r=parseInt(n,10);return r}function h(e){var t=g(e,"width"),n=g(e.parentElement,"width");return t/n*100}function v(e,t){var n=g(e,"width");return t/n*100}function b(e,t){var n=g(e.parentElement,"width");return t/n*100}function y(e,t,n){for(var r=[],i=1;i<n.length;i++){var o=n[i].element;r.push(e(i-1,o))}var a=n[n.length-1];return r.push(t(n.length-1,a.element)),r}function x(){var t=i.dom.select("."+fe,d());e.each(t,function(e){i.dom.remove(e)})}function C(e){x(),B(e)}function w(e,t,n,r,i,o,a,s){var l={"data-mce-bogus":"all","class":fe+" "+e,unselectable:"on","data-mce-resize":!1,style:"cursor: "+t+"; margin: 0; padding: 0; position: absolute; left: "+n+"px; top: "+r+"px; height: "+i+"px; width: "+o+"px; "};return l[a]=s,l}function N(t,n,r){e.each(t,function(e){var t=r.x,o=e.y-Ce/2,a=Ce,s=n;i.dom.add(d(),"div",w(pe,me,t,o,a,s,ge,e.index))})}function k(t,n,r){e.each(t,function(e){var t=e.x-Ce/2,o=r.y,a=n,s=Ce;i.dom.add(d(),"div",w(ve,be,t,o,a,s,ye,e.index))})}function S(t){return e.map(t.rows,function(t){var n=e.map(t.cells,function(e){var t=e.hasAttribute("rowspan")?parseInt(e.getAttribute("rowspan"),10):1,n=e.hasAttribute("colspan")?parseInt(e.getAttribute("colspan"),10):1;return{element:e,rowspan:t,colspan:n}});return{element:t,cells:n}})}function _(n){function r(e,t){return e+","+t}function i(e,t){return s[r(e,t)]}function o(){var t=[];return e.each(l,function(e){t=t.concat(e.cells)}),t}function a(){return l}var s={},l=[],c=0,u=0;return e.each(n,function(n,i){var o=[];e.each(n.cells,function(e){for(var n=0;s[r(i,n)]!==t;)n++;for(var a={element:e.element,colspan:e.colspan,rowspan:e.rowspan,rowIndex:i,colIndex:n},l=0;l<e.colspan;l++)for(var d=0;d<e.rowspan;d++){var f=i+d,p=n+l;s[r(f,p)]=a,c=Math.max(c,f+1),u=Math.max(u,p+1)}o.push(a)}),l.push({element:n.element,cells:o})}),{grid:{maxRows:c,maxCols:u},getAt:i,getAllCells:o,getAllRows:a}}function E(e,t){for(var n=[],r=e;r<t;r++)n.push(r);return n}function T(e,t,n){for(var r,i=e(),o=0;o<i.length;o++)t(i[o])&&(r=i[o]);return r?r:n()}function R(t){var n=E(0,t.grid.maxCols),r=E(0,t.grid.maxRows);return e.map(n,function(e){function n(){for(var n=[],i=0;i<r.length;i++){var o=t.getAt(i,e);o&&o.colIndex===e&&n.push(o)}return n}function i(e){return 1===e.colspan}function o(){for(var n,i=0;i<r.length;i++)if(n=t.getAt(i,e))return n;return null}return T(n,i,o)})}function A(t){var n=E(0,t.grid.maxCols),r=E(0,t.grid.maxRows);return e.map(r,function(e){function r(){for(var r=[],i=0;i<n.length;i++){var o=t.getAt(e,i);o&&o.rowIndex===e&&r.push(o)}return r}function i(e){return 1===e.rowspan}function o(){return t.getAt(e,0)}return T(r,i,o);
})}function B(e){var t=S(e),n=_(t),r=A(n),s=R(n),l=i.dom.getPos(e),c=r.length>0?y(o,a,r):[],u=s.length>0?y(f,p,s):[];N(c,e.offsetWidth,l),k(u,e.offsetHeight,l)}function P(e,t,n,r){if(t<0||t>=e.length-1)return"";var i=e[t];if(i)i={value:i,delta:0};else for(var o=e.slice(0,t).reverse(),a=0;a<o.length;a++)o[a]&&(i={value:o[a],delta:a+1});var s=e[t+1];if(s)s={value:s,delta:1};else for(var l=e.slice(t+1),c=0;c<l.length;c++)l[c]&&(s={value:l[c],delta:c+1});var u=s.delta-i.delta,d=Math.abs(s.value-i.value)/u;return n?d/g(r,"width")*100:d}function D(e,t){var n=i.dom.getStyle(e,t);return n||(n=i.dom.getAttrib(e,t)),n||(n=i.dom.getStyle(e,t,!0)),n}function M(e,t,n){var r=D(e,"width"),i=parseInt(r,10),o=t?m(e,n):g(e,"width");return(t&&!V(r)||!t&&!$(r))&&(i=0),!isNaN(i)&&i>0?i:o}function L(t,n,r){for(var i=R(t),o=e.map(i,function(e){return f(e.colIndex,e.element).x}),a=[],s=0;s<i.length;s++){var l=i[s].element.hasAttribute("colspan")?parseInt(i[s].element.getAttribute("colspan"),10):1,c=l>1?P(o,s):M(i[s].element,n,r);c=c?c:we,a.push(c)}return a}function I(e){var t=D(e,"height"),n=parseInt(t,10);return V(t)&&(n=0),!isNaN(n)&&n>0?n:g(e,"height")}function O(t){for(var n=A(t),r=e.map(n,function(e){return o(e.rowIndex,e.element).y}),i=[],a=0;a<n.length;a++){var s=n[a].element.hasAttribute("rowspan")?parseInt(n[a].element.getAttribute("rowspan"),10):1,l=s>1?P(r,a):I(n[a].element);l=l?l:Ne,i.push(l)}return i}function H(t,n,r,i,o){function a(t){return e.map(t,function(){return 0})}function s(){var e;if(o)e=[100-d[0]];else{var t=Math.max(i,d[0]+r);e=[t-d[0]]}return e}function l(e,t){var n,o=a(d.slice(0,e)),s=a(d.slice(t+1));if(r>=0){var l=Math.max(i,d[t]-r);n=o.concat([r,l-d[t]]).concat(s)}else{var c=Math.max(i,d[e]+r),u=d[e]-c;n=o.concat([c-d[e],u]).concat(s)}return n}function c(e,t){var n,o=a(d.slice(0,t));if(r>=0)n=o.concat([r]);else{var s=Math.max(i,d[t]+r);n=o.concat([s-d[t]])}return n}var u,d=t.slice(0);return u=0===t.length?[]:1===t.length?s():0===n?l(0,1):n>0&&n<t.length-1?l(n,n+1):n===t.length-1?c(n-1,n):[]}function F(e,t,n){for(var r=0,i=e;i<t;i++)r+=n[i];return r}function z(t,n){var r=t.getAllCells();return e.map(r,function(e){var t=F(e.colIndex,e.colIndex+e.colspan,n);return{element:e.element,width:t,colspan:e.colspan}})}function W(t,n){var r=t.getAllCells();return e.map(r,function(e){var t=F(e.rowIndex,e.rowIndex+e.rowspan,n);return{element:e.element,height:t,rowspan:e.rowspan}})}function U(t,n){var r=t.getAllRows();return e.map(r,function(e,t){return{element:e.element,height:n[t]}})}function V(e){return Se.test(e)}function $(e){return _e.test(e)}function j(t,n,r){function o(t,n){e.each(t,function(e){i.dom.setStyle(e.element,"width",e.width+n),i.dom.setAttrib(e.element,"width",null)})}function a(){return r<u.grid.maxCols-1?h(t):h(t)+b(t,n)}function s(){return r<u.grid.maxCols-1?g(t,"width"):g(t,"width")+n}function l(e,n,o){r!=u.grid.maxCols-1&&o||(i.dom.setStyle(t,"width",e+n),i.dom.setAttrib(t,"width",null))}for(var c=S(t),u=_(c),d=V(t.width)||V(t.style.width),f=L(u,d,t),p=d?v(t,n):n,m=H(f,r,p,we,d,t),y=[],x=0;x<m.length;x++)y.push(m[x]+f[x]);var C=z(u,y),w=d?"%":"px",N=d?a():s();i.undoManager.transact(function(){o(C,w),l(N,w,d)})}function q(t,n,r){for(var o=S(t),a=_(o),s=O(a),l=[],c=0,u=0;u<s.length;u++)l.push(u===r?n+s[u]:s[u]),c+=c[u];var d=W(a,l),f=U(a,l);i.undoManager.transact(function(){e.each(f,function(e){i.dom.setStyle(e.element,"height",e.height+"px"),i.dom.setAttrib(e.element,"height",null)}),e.each(d,function(e){i.dom.setStyle(e.element,"height",e.height+"px"),i.dom.setAttrib(e.element,"height",null)}),i.dom.setStyle(t,"height",c+"px"),i.dom.setAttrib(t,"height",null)})}function Y(){ae=setTimeout(function(){J()},200)}function X(){clearTimeout(ae)}function K(){var e=document.createElement("div");return e.setAttribute("style","margin: 0; padding: 0; position: fixed; left: 0px; top: 0px; height: 100%; width: 100%;"),e.setAttribute("data-mce-bogus","all"),e}function G(e,t){i.dom.bind(e,"mouseup",function(){J()}),i.dom.bind(e,"mousemove",function(e){X(),se&&t(e)}),i.dom.bind(e,"mouseout",function(){Y()})}function J(){if(i.dom.remove(le),se){i.dom.removeClass(ce,ke),se=!1;var e,t;if(Q(ce)){var n=parseInt(i.dom.getAttrib(ce,xe),10),o=i.dom.getPos(ce).x;e=parseInt(i.dom.getAttrib(ce,ye),10),t=c()?n-o:o-n,Math.abs(t)>=1&&j(r,t,e)}else if(ee(ce)){var a=parseInt(i.dom.getAttrib(ce,he),10),s=i.dom.getPos(ce).y;e=parseInt(i.dom.getAttrib(ce,ge),10),t=s-a,Math.abs(t)>=1&&q(r,t,e)}C(r),i.nodeChanged()}}function Z(e,t){le=le?le:K(),se=!0,i.dom.addClass(e,ke),ce=e,G(le,t),i.dom.add(d(),le)}function Q(e){return i.dom.hasClass(e,ve)}function ee(e){return i.dom.hasClass(e,pe)}function te(e){ue=ue!==t?ue:e.clientX;var n=e.clientX-ue;ue=e.clientX;var r=i.dom.getPos(ce).x;i.dom.setStyle(ce,"left",r+n+"px")}function ne(e){de=de!==t?de:e.clientY;var n=e.clientY-de;de=e.clientY;var r=i.dom.getPos(ce).y;i.dom.setStyle(ce,"top",r+n+"px")}function re(e){ue=t,Z(e,te)}function ie(e){de=t,Z(e,ne)}function oe(e){var t=e.target,n=i.getBody();if(i.$.contains(n,r)||r===n)if(Q(t)){e.preventDefault();var o=i.dom.getPos(t).x;i.dom.setAttrib(t,xe,o),re(t)}else if(ee(t)){e.preventDefault();var a=i.dom.getPos(t).y;i.dom.setAttrib(t,he,a),ie(t)}else x()}var ae,se,le,ce,ue,de,fe="mce-resize-bar",pe="mce-resize-bar-row",me="row-resize",ge="data-row",he="data-initial-top",ve="mce-resize-bar-col",be="col-resize",ye="data-col",xe="data-initial-left",Ce=4,we=10,Ne=10,ke="mce-resize-bar-dragging",Se=new RegExp(/(\d+(\.\d+)?%)/),_e=new RegExp(/px|em/);return i.on("init",function(){i.dom.bind(d(),"mousedown",oe)}),i.on("ObjectResized",function(t){var n=t.target;if("TABLE"===n.nodeName){var r=[];e.each(n.rows,function(t){e.each(t.cells,function(e){var t=i.dom.getStyle(e,"width",!0);r.push({cell:e,width:t})})}),e.each(r,function(e){i.dom.setStyle(e.cell,"width",e.width),i.dom.setAttrib(e.cell,"width",null)})}}),i.on("mouseover",function(e){if(!se){var t=i.dom.getParent(e.target,"table");("TABLE"===e.target.nodeName||t)&&(r=t,C(t))}}),i.on("keydown",function(e){switch(e.keyCode){case n.LEFT:case n.RIGHT:case n.UP:case n.DOWN:x()}}),i.on("remove",function(){x(),i.dom.unbind(d(),"mousedown",oe)}),{adjustWidth:j,adjustHeight:q,clearBars:x,drawBars:B,determineDeltas:H,getTableGrid:_,getTableDetails:S,getWidths:L,getPixelHeights:O,isPercentageBasedSize:V,isPixelBasedSize:$,recalculateWidths:z,recalculateCellHeights:W,recalculateRowHeights:U}}}),r("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/tableplugin/ResizeBars","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(e,t,n,r,i,o,a,s,l){function c(o){function a(e){return function(){o.execCommand(e)}}function l(e,t){var n,r,i,a;for(i='<table id="__mce"><tbody>',n=0;n<t;n++){for(i+="<tr>",r=0;r<e;r++)i+="<td>"+(s.ie&&s.ie<10?"&nbsp;":"<br>")+"</td>";i+="</tr>"}return i+="</tbody></table>",o.undoManager.transact(function(){o.insertContent(i),a=o.dom.get("__mce"),o.dom.setAttrib(a,"id",null),o.$("tr",a).each(function(e,t){o.fire("newrow",{node:t}),o.$("th,td",t).each(function(e,t){o.fire("newcell",{node:t})})}),o.dom.setAttribs(a,o.settings.table_default_attributes||{}),o.dom.setStyles(a,o.settings.table_default_styles||{})}),a}function c(e,t,n){function r(){var r,i,a,s={},l=0;i=o.dom.select("td[data-mce-selected],th[data-mce-selected]"),r=i[0],r||(r=o.selection.getStart()),n&&i.length>0?(u(i,function(e){return s[e.parentNode.parentNode.nodeName]=1}),u(s,function(e){l+=e}),a=1!==l):a=!o.dom.getParent(r,t),e.disabled(a),o.selection.selectorChanged(t,function(t){e.disabled(!t)})}o.initialized?r():o.on("init",r)}function d(){c(this,"table")}function f(){c(this,"td,th")}function p(){c(this,"td,th",!0)}function m(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){e+="<tr>";for(var n=0;n<10;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function g(e,t,n){var r,i,a,s,l,c=n.getEl().getElementsByTagName("table")[0],u=n.isRtl()||"tl-tr"==n.parent().rel;for(c.nextSibling.innerHTML=e+1+" x "+(t+1),u&&(e=9-e),i=0;i<10;i++)for(r=0;r<10;r++)s=c.rows[i].childNodes[r].firstChild,l=(u?r>=e:r<=e)&&i<=t,o.dom.toggleClass(s,"mce-active",l),l&&(a=s);return a.parentNode}function h(){o.addButton("tableprops",{title:"Table properties",onclick:k.tableProps,icon:"table"}),o.addButton("tabledelete",{title:"Delete table",onclick:a("mceTableDelete")}),o.addButton("tablecellprops",{title:"Cell properties",onclick:a("mceTableCellProps")}),o.addButton("tablemergecells",{title:"Merge cells",onclick:a("mceTableMergeCells")}),o.addButton("tablesplitcells",{title:"Split cell",onclick:a("mceTableSplitCells")}),o.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:a("mceTableInsertRowBefore")}),o.addButton("tableinsertrowafter",{title:"Insert row after",onclick:a("mceTableInsertRowAfter")}),o.addButton("tabledeleterow",{title:"Delete row",onclick:a("mceTableDeleteRow")}),o.addButton("tablerowprops",{title:"Row properties",onclick:a("mceTableRowProps")}),o.addButton("tablecutrow",{title:"Cut row",onclick:a("mceTableCutRow")}),o.addButton("tablecopyrow",{title:"Copy row",onclick:a("mceTableCopyRow")}),o.addButton("tablepasterowbefore",{title:"Paste row before",onclick:a("mceTablePasteRowBefore")}),o.addButton("tablepasterowafter",{title:"Paste row after",onclick:a("mceTablePasteRowAfter")}),o.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:a("mceTableInsertColBefore")}),o.addButton("tableinsertcolafter",{title:"Insert column after",onclick:a("mceTableInsertColAfter")}),o.addButton("tabledeletecol",{title:"Delete column",onclick:a("mceTableDeleteCol")})}function v(e){var t=o.dom.is(e,"table")&&o.getBody().contains(e);return t}function b(){var e=o.settings.table_toolbar;""!==e&&e!==!1&&(e||(e="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),o.addContextToolbar(v,e))}function y(){return C}function x(e){C=e}var C,w,N=this,k=new r(o);!o.settings.object_resizing||o.settings.table_resize_bars===!1||o.settings.object_resizing!==!0&&"table"!==o.settings.object_resizing||(w=i(o)),o.settings.table_grid===!1?o.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",onclick:k.table}):o.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),k.table())},onshow:function(){g(0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:m(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"==r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(g(t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){l(t.lastX+1,t.lastY+1)}),o.addVisual())}}]}),o.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:d,onclick:k.tableProps}),o.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:d,cmd:"mceTableDelete"}),o.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:a("mceTableCellProps"),onPostRender:f},{text:"Merge cells",onclick:a("mceTableMergeCells"),onPostRender:p},{text:"Split cell",onclick:a("mceTableSplitCells"),onPostRender:f}]}),o.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:a("mceTableInsertRowBefore"),onPostRender:f},{text:"Insert row after",onclick:a("mceTableInsertRowAfter"),onPostRender:f},{text:"Delete row",onclick:a("mceTableDeleteRow"),onPostRender:f},{text:"Row properties",onclick:a("mceTableRowProps"),onPostRender:f},{text:"-"},{text:"Cut row",onclick:a("mceTableCutRow"),onPostRender:f},{text:"Copy row",onclick:a("mceTableCopyRow"),onPostRender:f},{text:"Paste row before",onclick:a("mceTablePasteRowBefore"),onPostRender:f},{text:"Paste row after",onclick:a("mceTablePasteRowAfter"),onPostRender:f}]}),o.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:a("mceTableInsertColBefore"),onPostRender:f},{text:"Insert column after",onclick:a("mceTableInsertColAfter"),onPostRender:f},{text:"Delete column",onclick:a("mceTableDeleteCol"),onPostRender:f}]});var S=[];u("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"==e?S.push({text:"-"}):S.push(o.menuItems[e])}),o.addButton("table",{type:"menubutton",title:"Table",menu:S}),s.isIE||o.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(o.selection.select(e),o.nodeChanged())}),N.quirks=new t(o),o.on("Init",function(){N.cellSelection=new n(o,function(e){e&&w&&w.clearBars()}),N.resizeBars=w}),o.on("PreInit",function(){o.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})}),u({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t;t=o.dom.getParent(o.selection.getStart(),"th,td"),o.dom.select("td[data-mce-selected],th[data-mce-selected]").length?e.merge():k.merge(e,t)},mceTableInsertRowBefore:function(e){e.insertRows(!0)},mceTableInsertRowAfter:function(e){e.insertRows()},mceTableInsertColBefore:function(e){e.insertCols(!0)},mceTableInsertColAfter:function(e){e.insertCols()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){C=e.cutRows()},mceTableCopyRow:function(e){C=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(C,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(C)},mceSplitColsBefore:function(e){e.splitCols(!0)},mceSplitColsAfter:function(e){e.splitCols(!1)},mceTableDelete:function(e){w&&w.clearBars(),e.deleteTable()}},function(t,n){o.addCommand(n,function(){var n=new e(o);n&&(t(n),o.execCommand("mceRepaint"),N.cellSelection.clear())})}),u({mceInsertTable:k.table,mceTableProps:function(){k.table(!0)},mceTableRowProps:k.row,mceTableCellProps:k.cell},function(e,t){o.addCommand(t,function(t,n){e(n)})}),h(),b(),o.settings.table_tab_navigation!==!1&&o.on("keydown",function(t){var n,r,i;9==t.keyCode&&(n=o.dom.getParent(o.selection.getStart(),"th,td"),n&&(t.preventDefault(),r=new e(o),i=t.shiftKey?-1:1,o.undoManager.transact(function(){!r.moveRelIdx(n,i)&&i>0&&(r.insertRow(),r.refresh(),r.moveRelIdx(n,i))})))}),N.insertTable=l,N.setClipboardRows=x,N.getClipboardRows=y}var u=o.each;l.add("table",c)})}(window);editors/tinymce/plugins/print/plugin.min.js000064400000000445152177723720015140 0ustar00tinymce.PluginManager.add("print",function(e){e.addCommand("mcePrint",function(){e.getWin().print()}),e.addButton("print",{title:"Print",cmd:"mcePrint"}),e.addShortcut("Meta+P","","mcePrint"),e.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Meta+P",context:"file"})});editors/tinymce/plugins/autosave/plugin.min.js000064400000004213152177723720015630 0ustar00tinymce._beforeUnloadHandler=function(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e},tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(p.getItem(u+"time"),10)||0;return!((new Date).getTime()-e>f.autosave_retention)||(r(!1),!1)}function r(t){p.removeItem(u+"draft"),p.removeItem(u+"time"),t!==!1&&e.fire("RemoveDraft")}function i(){!c()&&e.isDirty()&&(p.setItem(u+"draft",e.getContent({format:"raw",no_events:!0})),p.setItem(u+"time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(p.getItem(u+"draft"),{format:"raw"}),e.fire("RestoreDraft"))}function a(){d||(setInterval(function(){e.removed||i()},f.autosave_interval),d=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft RemoveDraft",function(){t.disabled(!n())}),a()}function l(){e.undoManager.beforeChange(),o(),r(),e.undoManager.add()}function c(t){var n=e.settings.forced_root_block;return t=tinymce.trim("undefined"==typeof t?e.getBody().innerHTML:t),""===t||new RegExp("^<"+n+"[^>]*>((\xa0|&nbsp;|[ \t]|<br[^>]*>)+?|)</"+n+">|<br>$","i").test(t)}var u,d,f=e.settings,p=tinymce.util.LocalStorage;u=f.autosave_prefix||"tinymce-autosave-{path}{query}-{id}-",u=u.replace(/\{path\}/g,document.location.pathname),u=u.replace(/\{query\}/g,document.location.search),u=u.replace(/\{id\}/g,e.id),f.autosave_interval=t(f.autosave_interval,"30s"),f.autosave_retention=t(f.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:l,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:l,onPostRender:s,context:"file"}),e.settings.autosave_restore_when_empty!==!1&&(e.on("init",function(){n()&&c()&&o()}),e.on("saveContent",function(){r()})),window.onbeforeunload=tinymce._beforeUnloadHandler,this.hasDraft=n,this.storeDraft=i,this.restoreDraft=o,this.removeDraft=r,this.isEmpty=c});editors/tinymce/plugins/colorpicker/plugin.min.js000064400000002306152177723720016316 0ustar00tinymce.PluginManager.add("colorpicker",function(e){function t(t,n){function r(e){var t=new tinymce.util.Color(e),n=t.toRgb();o.fromJSON({r:n.r,g:n.g,b:n.b,hex:t.toHex().substr(1)}),i(t.toHex())}function i(e){o.find("#preview")[0].getEl().style.background=e}var o=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:n,onchange:function(){var e=this.rgb();o&&(o.find("#r").value(e.r),o.find("#g").value(e.g),o.find("#b").value(e.b),o.find("#hex").value(this.value().substr(1)),i(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,t,n=o.find("colorpicker")[0];return e=this.name(),t=this.value(),"hex"==e?(t="#"+t,r(t),void n.value(t)):(t={r:o.find("#r").value(),g:o.find("#g").value(),b:o.find("#b").value()},n.value(t),void r(t))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){t("#"+this.toJSON().hex)}});r(n)}e.settings.color_picker_callback||(e.settings.color_picker_callback=t)});editors/tinymce/plugins/wordcount/plugin.min.js000064400000027373152177723720016041 0ustar00!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l<a;++l)s[l]=r(i[l]);var c=o.apply(null,s);if(void 0===c)throw"module ["+t+"] returned undefined";n.instance=c},n=function(t,n,r){if("string"!=typeof t)throw"module id must be a string";if(void 0===n)throw"no dependencies for "+t;if(void 0===r)throw"no definition function for "+t;e[t]={deps:n,defn:r,instance:void 0}},r=function(n){var r=e[n];if(void 0===r)throw"module ["+n+"] was undefined";return void 0===r.instance&&t(n),r.instance},i=function(e,t){for(var n=e.length,i=new Array(n),o=0;o<n;++o)i[o]=r(e[o]);t.apply(null,i)},o={};o.bolt={module:{api:{define:n,require:i,demand:r}}};var a=n,s=function(e,t){a(e,[],function(){return t})};s("1",tinymce.PluginManager),s("2",tinymce.util.Delay),a("4",[],function(){var e={aletter:"[A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f3\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bc0-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u303b\u303c\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790\ua791\ua7a0-\ua7a9\ua7fa-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]",midnumlet:"['\\.\u2018\u2019\u2024\ufe52\uff07\uff0e]",midletter:"[:\xb7\xb7\u05f4\u2027\ufe13\ufe55\uff1a]",midnum:"[,;;\u0589\u060c\u060d\u066c\u07f8\u2044\ufe10\ufe14\ufe50\ufe54\uff0c\uff1b]",numeric:"[0-9\u0660-\u0669\u066b\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9]",cr:"\\r",lf:"\\n",newline:"[\x0B\f\x85\u2028\u2029]",extend:"[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8\u19c9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1baa\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]",format:"[\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]",katakana:"[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]",extendnumlet:"[_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f]",punctuation:"[!-#%-*,-\\/:;?@\\[-\\]_{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]"},t={ALETTER:0,MIDNUMLET:1,MIDLETTER:2,MIDNUM:3,NUMERIC:4,CR:5,LF:6,NEWLINE:7,EXTEND:8,FORMAT:9,KATAKANA:10,EXTENDNUMLET:11,AT:12,OTHER:13},n=[new RegExp(e.aletter),new RegExp(e.midnumlet),new RegExp(e.midletter),new RegExp(e.midnum),new RegExp(e.numeric),new RegExp(e.cr),new RegExp(e.lf),new RegExp(e.newline),new RegExp(e.extend),new RegExp(e.format),new RegExp(e.katakana),new RegExp(e.extendnumlet),new RegExp("@")],r="",i=new RegExp("^"+e.punctuation+"$"),o=/\s/;return{characterIndices:t,SETS:n,EMPTY_STRING:r,PUNCTUATION:i,WHITESPACE:o}}),a("7",[],function(){var e=function(e,t,n){var r,i;if(!e)return 0;if(n=n||e,void 0!==e.length){for(r=0,i=e.length;r<i;r++)if(t.call(n,e[r],r,e)===!1)return 0}else for(r in e)if(e.hasOwnProperty(r)&&t.call(n,e[r],r,e)===!1)return 0;return 1},t=function(t,n){var r=[];return e(t,function(e,i){r.push(n(e,i,t))}),r};return{each:e,map:t}}),a("5",["4","7"],function(e,t){var n=e.SETS,r=e.characterIndices.OTHER,i=function(e){var t,i,o=r,a=n.length;for(t=0;t<a;++t)if(i=n[t],i&&i.test(e)){o=t;break}return o},o=function(e){var t={};return function(n){if(t[n])return t[n];var r=e(n);return t[n]=r,r}},a=function(e){var n=o(i);return t.map(e.split(""),n)};return{classify:a}}),a("6",["4"],function(e){var t=e.characterIndices,n=function(e,n){var r,i,o=e[n],a=e[n+1];return!(n<0||n>e.length-1&&0!==n)&&((o!==t.ALETTER||a!==t.ALETTER)&&(i=e[n+2],(o!==t.ALETTER||a!==t.MIDLETTER&&a!==t.MIDNUMLET&&a!==t.AT||i!==t.ALETTER)&&(r=e[n-1],(o!==t.MIDLETTER&&o!==t.MIDNUMLET&&a!==t.AT||a!==t.ALETTER||r!==t.ALETTER)&&((o!==t.NUMERIC&&o!==t.ALETTER||a!==t.NUMERIC&&a!==t.ALETTER)&&((o!==t.MIDNUM&&o!==t.MIDNUMLET||a!==t.NUMERIC||r!==t.NUMERIC)&&((o!==t.NUMERIC||a!==t.MIDNUM&&a!==t.MIDNUMLET||i!==t.NUMERIC)&&(o!==t.EXTEND&&o!==t.FORMAT&&r!==t.EXTEND&&r!==t.FORMAT&&a!==t.EXTEND&&a!==t.FORMAT&&((o!==t.CR||a!==t.LF)&&(o===t.NEWLINE||o===t.CR||o===t.LF||(a===t.NEWLINE||a===t.CR||a===t.LF||(o!==t.KATAKANA||a!==t.KATAKANA)&&((a!==t.EXTENDNUMLET||o!==t.ALETTER&&o!==t.NUMERIC&&o!==t.KATAKANA&&o!==t.EXTENDNUMLET)&&((o!==t.EXTENDNUMLET||a!==t.ALETTER&&a!==t.NUMERIC&&a!==t.KATAKANA)&&o!==t.AT))))))))))))};return{isWordBoundary:n}}),a("3",["4","5","6"],function(e,t,n){var r=e.EMPTY_STRING,i=e.WHITESPACE,o=e.PUNCTUATION,a=function(e){return"http"===e||"https"===e},s=function(e,t){var n;for(n=t;n<e.length;++n){var r=e.charAt(n);if(i.test(r))break}return n},l=function(e,t,n){var r=s(t,n+1),i=t.substring(n+1,r);return"://"===i.substr(0,3)?{word:e+i,index:r}:{word:e,index:n}},c=function(e,s){var c,u,d,f=0,p=t.classify(e),m=p.length,g=[],h=[];for(s||(s={}),s.ignoreCase&&(e=e.toLowerCase()),u=s.includePunctuation,d=s.includeWhitespace;f<m;++f)if(c=e.charAt(f),g.push(c),n.isWordBoundary(p,f)){if(g=g.join(r),g&&(d||!i.test(g))&&(u||!o.test(g)))if(a(g)){var v=l(g,e,f);h.push(v.word),f=v.index}else h.push(g);g=[]}return h};return{getWords:c}}),a("0",["1","2","3"],function(e,t,n){return e.add("wordcount",function(e){var r=function(e){return e.removed?"":e.getBody().innerText},i=function(){return n.getWords(r(e)).length},o=function(){e.theme.panel.find("#wordcount").text(["Words: {0}",i()])};return e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0],r=t.debounce(o,300);n&&t.setEditorTimeout(e,function(){n.insert({type:"label",name:"wordcount",text:["Words: {0}",i()],classes:"wordcount",disabled:e.settings.readonly},0),e.on("setcontent beforeaddundo undo redo keyup",r)},0)}),{getCount:i}}),function(){}}),r("0")()}();editors/tinymce/plugins/tabfocus/plugin.min.js000064400000002360152177723720015610 0ustar00tinymce.PluginManager.add("tabfocus",function(e){function t(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function n(t){function n(n){function o(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&o(e.parentNode)}function l(e){return/INPUT|TEXTAREA|BUTTON/.test(e.tagName)&&tinymce.get(t.id)&&e.tabIndex!=-1&&o(e)}if(s=r.select(":input:enabled,*[tabindex]:not(iframe)"),i(s,function(t,n){if(t.id==e.id)return a=n,!1}),n>0){for(c=a+1;c<s.length;c++)if(l(s[c]))return s[c]}else for(c=a-1;c>=0;c--)if(l(s[c]))return s[c];return null}var a,s,l,c;if(!(9!==t.keyCode||t.ctrlKey||t.altKey||t.metaKey||t.isDefaultPrevented())&&(l=o(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==l.length&&(l[1]=l[0],l[0]=":prev"),s=t.shiftKey?":prev"==l[0]?n(-1):r.get(l[0]):":next"==l[1]?n(1):r.get(l[1]))){var u=tinymce.get(s.id||s.name);s.id&&u?u.focus():tinymce.util.Delay.setTimeout(function(){tinymce.Env.webkit||window.focus(),s.focus()},10),t.preventDefault()}}var r=tinymce.DOM,i=tinymce.each,o=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null),e.on("keyup",t),tinymce.Env.gecko?e.on("keypress keydown",n):e.on("keydown",n)})});editors/tinymce/plugins/template/plugin.min.js000064400000010650152177723720015616 0ustar00tinymce.PluginManager.add("template",function(e){function t(t){return function(){var n=e.settings.templates;return"function"==typeof n?void n(t):void("string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n))}}function n(t){function n(t){function n(t){if(t.indexOf("<html>")==-1){var n="";tinymce.each(e.contentCSS,function(t){n+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var i=e.settings.body_class||"";i.indexOf("=")!=-1&&(i=e.getParam("body_class","","hash"),i=i[e.id]||""),t="<!DOCTYPE html><html><head>"+n+'</head><body class="'+i+'">'+t+"</body></html>"}t=o(t,"template_preview_replace_values");var a=r.find("iframe")[0].getEl().contentWindow.document;a.open(),a.write(t),a.close()}var a=t.control.value();a.url?tinymce.util.XHR.send({url:a.url,success:function(e){i=e,n(i)}}):(i=a.content,n(i)),r.find("#description")[0].text(t.control.value().description)}var r,i,s=[];if(!t||0===t.length){var l=e.translate("No templates defined.");return void e.notificationManager.open({text:l,type:"info"})}tinymce.each(t,function(e){s.push({selected:!s.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),r=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:s,onselect:n}}]},{type:"label",name:"description",label:"Description",text:"\xa0"},{type:"iframe",flex:1,border:1}],onsubmit:function(){a(!1,i)},minWidth:Math.min(tinymce.DOM.getViewPort().w,e.getParam("template_popup_width",600)),minHeight:Math.min(tinymce.DOM.getViewPort().h,e.getParam("template_popup_height",500))}),r.find("listbox")[0].fire("select")}function r(t,n){function r(e,t){if(e=""+e,e.length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}var i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),a="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),s="January February March April May June July August September October November December".split(" ");return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",r(n.getMonth()+1,2)),t=t.replace("%d",r(n.getDate(),2)),t=t.replace("%H",""+r(n.getHours(),2)),t=t.replace("%M",""+r(n.getMinutes(),2)),t=t.replace("%S",""+r(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(n.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(s[n.getMonth()])),t=t.replace("%b",""+e.translate(a[n.getMonth()])),t=t.replace("%A",""+e.translate(o[n.getDay()])),t=t.replace("%a",""+e.translate(i[n.getDay()])),t=t.replace("%%","%")}function i(t){var n=e.dom,r=e.getParam("template_replace_values");s(n.select("*",t),function(e){s(r,function(t,i){n.hasClass(e,i)&&"function"==typeof r[i]&&r[i](e)})})}function o(t,n){return s(e.getParam(n),function(e,n){"function"==typeof e&&(e=e(n)),t=t.replace(new RegExp("\\{\\$"+n+"\\}","g"),e)}),t}function a(t,n){function a(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}var l,c,u=e.dom,d=e.selection.getContent();n=o(n,"template_replace_values"),l=u.create("div",null,n),c=u.select(".mceTmpl",l),c&&c.length>0&&(l=u.create("div",null),l.appendChild(c[0].cloneNode(!0))),s(u.select("*",l),function(t){a(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),a(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),a(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=d)}),i(l),e.execCommand("mceInsertContent",!1,l.innerHTML),e.addVisual()}var s=tinymce.each;e.addCommand("mceInsertTemplate",a),e.addButton("template",{title:"Insert template",onclick:t(n)}),e.addMenuItem("template",{text:"Template",onclick:t(n),context:"insert"}),e.on("PreProcess",function(t){var n=e.dom;s(n.select("div",t.node),function(t){n.hasClass(t,"mceTmpl")&&(s(n.select("*",t),function(t){n.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),i(t))})})});editors/tinymce/plugins/hr/plugin.min.js000064400000000502152177723720014407 0ustar00tinymce.PluginManager.add("hr",function(e){e.addCommand("InsertHorizontalRule",function(){e.execCommand("mceInsertContent",!1,"<hr />")}),e.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),e.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});editors/tinymce/plugins/importcss/plugin.min.js000064400000005273152177723720016033 0ustar00tinymce.PluginManager.add("importcss",function(e){function t(e){var t=tinymce.Env.cacheSuffix;return"string"==typeof e&&(e=e.replace("?"+t,"").replace("&"+t,"")),e}function n(t){var n=e.settings,r=n.skin!==!1&&(n.skin||"lightgray");if(r){var i=n.skin_url;return i=i?e.documentBaseURI.toAbsolute(i):tinymce.baseURL+"/skins/"+r,t===i+"/content"+(e.inline?".inline":"")+".min.css"}return!1}function r(e){return"string"==typeof e?function(t){return t.indexOf(e)!==-1}:e instanceof RegExp?function(t){return e.test(t)}:e}function i(r,i){function o(e,r){var s,l=e.href;if(l=t(l),l&&i(l,r)&&!n(l)){p(e.imports,function(e){o(e,!0)});try{s=e.cssRules||e.rules}catch(e){}p(s,function(e){e.styleSheet?o(e.styleSheet,!0):e.selectorText&&p(e.selectorText.split(","),function(e){a.push(tinymce.trim(e))})})}}var a=[],s={};p(e.contentCSS,function(e){s[e]=!0}),i||(i=function(e,t){return t||s[e]});try{p(r.styleSheets,function(e){o(e)})}finally{}return a}function o(t){var n,r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(r){var i=r[1],o=r[2].substr(1).split(".").join(" "),a=tinymce.makeMap("a,img");return r[1]?(n={title:t},e.schema.getTextBlockElements()[i]?n.block=i:e.schema.getBlockElements()[i]||a[i.toLowerCase()]?n.selector=i:n.inline=i):r[2]&&(n={inline:"span",title:t.substr(1),classes:o}),e.settings.importcss_merge_classes!==!1?n.classes=o:n.attributes={"class":o},n}}function a(e,t){return tinymce.util.Tools.grep(e,function(e){return!e.filter||e.filter(t)})}function s(e){return tinymce.util.Tools.map(e,function(e){return tinymce.util.Tools.extend({},e,{original:e,selectors:{},filter:r(e.filter),item:{text:e.title,menu:[]}})})}function l(e,t){return null===t||e.settings.importcss_exclusive!==!1}function c(t,n,r){return!(l(e,n)?t in r:t in n.selectors)}function u(t,n,r){l(e,n)?r[t]=!0:n.selectors[t]=!0}function d(t,n,r){var i,a=e.settings;return i=r&&r.selector_converter?r.selector_converter:a.importcss_selector_converter?a.importcss_selector_converter:o,i.call(t,n,r)}var f=this,p=tinymce.each;e.on("renderFormatsMenu",function(t){var n=e.settings,o={},l=r(n.importcss_selector_filter),m=t.control,g=s(n.importcss_groups),h=function(t,n){if(c(t,n,o)){u(t,n,o);var r=d(f,t,n);if(r){var i=r.name||tinymce.DOM.uniqueId();return e.formatter.register(i,r),tinymce.extend({},m.settings.itemDefaults,{text:r.title,format:i})}}return null};e.settings.importcss_append||m.items().remove(),p(i(t.doc||e.getDoc(),r(n.importcss_file_filter)),function(e){if(e.indexOf(".mce-")===-1&&(!l||l(e))){var t=a(g,e);if(t.length>0)tinymce.util.Tools.each(t,function(t){var n=h(e,t);n&&t.item.menu.push(n)});else{var n=h(e,null);n&&m.add(n)}}}),p(g,function(e){e.item.menu.length>0&&m.add(e.item)}),t.control.renderNew()}),f.convertSelectorToFormat=o});editors/tinymce/plugins/visualblocks/plugin.min.js000064400000002201152177723720016475 0ustar00tinymce.PluginManager.add("visualblocks",function(e,t){function n(){var t=this;t.active(o),e.on("VisualBlocks",function(){t.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var r,i,o;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var n,a=e.dom;r||(r=a.uniqueId(),n=a.create("link",{id:r,rel:"stylesheet",href:t+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(n)),e.on("PreviewFormats AfterPreviewFormats",function(t){o&&a.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==t.type)}),a.toggleClass(e.getBody(),"mce-visualblocks"),o=e.dom.hasClass(e.getBody(),"mce-visualblocks"),i&&i.active(a.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))});editors/tinymce/plugins/visualblocks/css/visualblocks.css000064400000011744152177723720020076 0ustar00.mce-visualblocks p {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
}

.mce-visualblocks h1 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
}

.mce-visualblocks h2 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
}

.mce-visualblocks h3 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
}

.mce-visualblocks h4 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
}

.mce-visualblocks h5 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
}

.mce-visualblocks h6 {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
}

.mce-visualblocks div:not([data-mce-bogus]) {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
}

.mce-visualblocks section {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
}

.mce-visualblocks article {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
}

.mce-visualblocks blockquote {
	padding-top: 10px;
	border: 1px dashed #BBB;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
}

.mce-visualblocks address {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
}

.mce-visualblocks pre {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin-left: 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
}

.mce-visualblocks figure {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
}

.mce-visualblocks hgroup {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
}

.mce-visualblocks aside {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
}

.mce-visualblocks figcaption {
	border: 1px dashed #BBB;
}

.mce-visualblocks ul {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)
}

.mce-visualblocks ol {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
}

.mce-visualblocks dl {
	padding-top: 10px;
	border: 1px dashed #BBB;
	margin: 0 0 1em 3px;
	background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
}
editors/tinymce/plugins/charmap/plugin.min.js000064400000020007152177723720015413 0ustar00tinymce.PluginManager.add("charmap",function(e){function t(){return[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]]}function n(e){return tinymce.util.Tools.grep(e,function(e){return l(e)&&2==e.length})}function r(e){return l(e)?[].concat(n(e)):"function"==typeof e?e():[]}function i(t){var n=e.settings;return n.charmap&&(t=r(n.charmap)),n.charmap_append?[].concat(t).concat(r(n.charmap_append)):t}function o(){return i(t())}function a(t){e.fire("insertCustomChar",{chr:t}).chr,e.execCommand("mceInsertContent",!1,t)}function s(){function t(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var n,r,i,s;n='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var l=o(),c=Math.min(l.length,25),u=Math.ceil(l.length/c);for(i=0;i<u;i++){for(n+="<tr>",r=0;r<c;r++){var d=i*c+r;if(d<l.length){var f=l[d],p=f?String.fromCharCode(parseInt(f[0],10)):"&nbsp;";n+='<td title="'+f[1]+'"><div tabindex="-1" title="'+f[1]+'" role="button" data-chr="'+p+'">'+p+"</div></td>"}else n+="<td />"}n+="</tr>"}n+="</tbody></table>";var m={type:"container",html:n,onclick:function(e){var n=e.target;/^(TD|DIV)$/.test(n.nodeName)&&t(n).firstChild&&(a(n.getAttribute("data-chr")),e.ctrlKey||s.close())},onmouseover:function(e){var n=t(e.target);n&&n.firstChild?(s.find("#preview").text(n.firstChild.firstChild.data),s.find("#previewTitle").text(n.title)):(s.find("#preview").text(" "),s.find("#previewTitle").text(" "))}};s=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[m,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"label",name:"previewTitle",text:" ",style:"text-align: center",border:1,minWidth:140,minHeight:80}]}],buttons:[{text:"Close",onclick:function(){s.close()}}]})}var l=tinymce.util.Tools.isArray;return e.addCommand("mceShowCharmap",s),e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"}),{getCharMap:o,insertChar:a}});editors/tinymce/plugins/codesample/plugin.min.js000064400000047554152177723720016134 0ustar00!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o<e.length;++o){if(n=a[e[o]]||i(e[o]),!n)throw"module definition dependecy not found: "+e[o];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){a[e]=i.apply(null,arguments)})}function i(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function o(n){var r,i,o,s,l;for(r=0;r<n.length;r++){i=e,o=n[r],s=o.split(/[.\/]/);for(var c=0;c<s.length-1;++c)i[s[c]]===t&&(i[s[c]]={}),i=i[s[c]];i[s[s.length-1]]=a[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in a)l[o]=a[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var a={};r("tinymce/codesampleplugin/Prism",[],function(){var e={},t="undefined"!=typeof e?e:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},n=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,n=t.Prism={util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var t=n.util.type(e);switch(t){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=n.util.clone(e[i]));return r;case"Array":return e.map&&e.map(function(e){return n.util.clone(e)})}return e}},languages:{extend:function(e,t){var r=n.util.clone(n.languages[e]);for(var i in t)r[i]=t[i];return r},insertBefore:function(e,t,r,i){i=i||n.languages;var o=i[e];if(2==arguments.length){r=arguments[1];for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);return o}var s={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var a in r)r.hasOwnProperty(a)&&(s[a]=r[a]);s[l]=o[l]}return n.languages.DFS(n.languages,function(t,n){n===i[e]&&t!=e&&(this[t]=s)}),i[e]=s},DFS:function(e,t,r){for(var i in e)e.hasOwnProperty(i)&&(t.call(e,i,e[i],r||i),"Object"===n.util.type(e[i])?n.languages.DFS(e[i],t):"Array"===n.util.type(e[i])&&n.languages.DFS(e[i],t,i))}},plugins:{},highlightAll:function(e,t){for(var r,i=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),o=0;r=i[o++];)n.highlightElement(r,e===!0,t)},highlightElement:function(r,i,o){for(var a,s,l=r;l&&!e.test(l.className);)l=l.parentNode;l&&(a=(l.className.match(e)||[,""])[1],s=n.languages[a]),r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+a,l=r.parentNode,/pre/i.test(l.nodeName)&&(l.className=l.className.replace(e,"").replace(/\s+/g," ")+" language-"+a);var c=r.textContent,u={element:r,language:a,grammar:s,code:c};if(!c||!s)return void n.hooks.run("complete",u);if(n.hooks.run("before-highlight",u),i&&t.Worker){var d=new Worker(n.filename);d.onmessage=function(e){u.highlightedCode=e.data,n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,o&&o.call(u.element),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},d.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=n.highlight(u.code,u.grammar,u.language),n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,o&&o.call(r),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},highlight:function(e,t,i){var o=n.tokenize(e,t);return r.stringify(n.util.encode(o),i)},tokenize:function(e,t,r){var i=n.Token,o=[e],a=t.rest;if(a){for(var s in a)t[s]=a[s];delete t.rest}e:for(var s in t)if(t.hasOwnProperty(s)&&t[s]){var l=t[s];l="Array"===n.util.type(l)?l:[l];for(var c=0;c<l.length;++c){var u=l[c],d=u.inside,f=!!u.lookbehind,p=0,m=u.alias;u=u.pattern||u;for(var g=0;g<o.length;g++){var h=o[g];if(o.length>e.length)break e;if(!(h instanceof i)){u.lastIndex=0;var v=u.exec(h);if(v){f&&(p=v[1].length);var b=v.index-1+p,v=v[0].slice(p),y=v.length,x=b+y,C=h.slice(0,b+1),w=h.slice(x+1),N=[g,1];C&&N.push(C);var k=new i(s,d?n.tokenize(v,d):v,m);N.push(k),w&&N.push(w),Array.prototype.splice.apply(o,N)}}}}}return o},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var i,o=0;i=r[o++];)i(t)}}},r=n.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(r.stringify=function(e,t,i){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join("");var o={type:e.type,content:r.stringify(e.content,t,i),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:i};if("comment"==o.type&&(o.attributes.spellcheck="true"),e.alias){var a="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(o.classes,a)}n.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=(s?" ":"")+l+'="'+(o.attributes[l]||"")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'" '+s+">"+o.content+"</"+o.tag+">"},!t.document)return t.addEventListener?(t.addEventListener("message",function(e){var r=JSON.parse(e.data),i=r.language,o=r.code,a=r.immediateClose;t.postMessage(n.highlight(o,n.languages[i],i)),a&&t.close()},!1),t.Prism):t.Prism}();return"undefined"!=typeof module&&module.exports&&(module.exports=n),"undefined"!=typeof global&&(global.Prism=n),n.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[^\s>\/=.]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},n.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))}),n.languages.xml=n.languages.markup,n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},n.languages.css.atrule.inside.rest=n.util.clone(n.languages.css),n.languages.markup&&(n.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/i,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/i,inside:n.languages.markup.tag.inside},rest:n.languages.css},alias:"language-css"}}),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},n.languages.markup.tag)),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),n.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),n.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}}}),n.languages.markup&&n.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/i,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/i,inside:n.languages.markup.tag.inside},rest:n.languages.javascript},alias:"language-javascript"}}),n.languages.js=n.languages.javascript,n.languages.c=n.languages.extend("clike",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/\-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*\/]/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i}),n.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,lookbehind:!0}}}}),delete n.languages.c["class-name"],delete n.languages.c["boolean"],n.languages.csharp=n.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+)\b/i}),n.languages.insertBefore("csharp","keyword",{preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0}}),n.languages.cpp=n.languages.extend("c",{keyword:/\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,"boolean":/\b(true|false)\b/,operator:/[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),n.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}),n.languages.java=n.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),n.languages.php=n.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0}}),n.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),n.languages.insertBefore("php","keyword",{delimiter:/\?>|<\?(?:php)?/i,variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),n.languages.markup&&(n.hooks.add("before-highlight",function(e){"php"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/gi,function(t){return e.tokenStack.push(t),"{{{PHP"+e.tokenStack.length+"}}}"}))}),n.hooks.add("before-insert",function(e){"php"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),n.hooks.add("after-highlight",function(e){if("php"===e.language){for(var t,r=0;t=e.tokenStack[r];r++)e.highlightedCode=e.highlightedCode.replace("{{{PHP"+(r+1)+"}}}",n.highlight(t,e.grammar,"php").replace(/\$/g,"$$$$"));e.element.innerHTML=e.highlightedCode}}),n.hooks.add("wrap",function(e){"php"===e.language&&"markup"===e.type&&(e.content=e.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'<span class="token php">$1</span>'))}),n.languages.insertBefore("php","comment",{markup:{pattern:/<[^?]\/?(.*?)>/,inside:n.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/})),n.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(?:\\?.)*?\1/,"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/},function(e){e.languages.ruby=e.languages.extend("clike",{comment:/#(?!\{[^\r\n]*?\}).*/,keyword:/\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.util.clone(e.languages.ruby)}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,inside:{interpolation:t}},{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}],variable:/[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,symbol:/:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.insertBefore("ruby","number",{builtin:/\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,inside:{interpolation:t}},{pattern:/("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,inside:{interpolation:t}}]}(n),n}),r("tinymce/codesampleplugin/Utils",[],function(){function e(e){return e&&"PRE"==e.nodeName&&e.className.indexOf("language-")!==-1}function t(e){return function(t,n){return e(n)}}return{isCodeSample:e,trimArg:t}}),r("tinymce/codesampleplugin/Dialog",["tinymce/dom/DOMUtils","tinymce/codesampleplugin/Utils","tinymce/codesampleplugin/Prism"],function(e,t,n){function r(e){var t=[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}],n=e.settings.codesample_languages;return n?n:t}function i(e,t,r){e.undoManager.transact(function(){var i=o(e);r=l.encode(r),i?(e.dom.setAttrib(i,"class","language-"+t),i.innerHTML=r,n.highlightElement(i),e.selection.select(i)):(e.insertContent('<pre id="__new" class="language-'+t+'">'+r+"</pre>"),e.selection.select(e.$("#__new").removeAttr("id")[0]))})}function o(e){var n=e.selection.getNode();return t.isCodeSample(n)?n:null}function a(e){var t=o(e);return t?t.textContent:""}function s(e){var t,n=o(e);return n?(t=n.className.match(/language-(\w+)/),t?t[1]:""):""}var l=e.DOM;return{open:function(e){e.windowManager.open({title:"Insert/Edit code sample",minWidth:Math.min(l.getViewPort().w,e.getParam("codesample_dialog_width",800)),minHeight:Math.min(l.getViewPort().h,e.getParam("codesample_dialog_height",650)),layout:"flex",direction:"column",align:"stretch",body:[{type:"listbox",name:"language",label:"Language",maxWidth:200,value:s(e),values:r(e)},{type:"textbox",name:"code",multiline:!0,spellcheck:!1,ariaLabel:"Code view",flex:1,style:"direction: ltr; text-align: left",classes:"monospace",value:a(e),autofocus:!0}],onSubmit:function(t){i(e,t.data.language,t.data.code)}})}}}),r("tinymce/codesampleplugin/Plugin",["tinymce/Env","tinymce/PluginManager","tinymce/codesampleplugin/Prism","tinymce/codesampleplugin/Dialog","tinymce/codesampleplugin/Utils"],function(e,t,n,r,i){var o,a=i.trimArg;t.add("codesample",function(t,s){function l(){var e,n=t.settings.codesample_content_css;t.inline&&o||!t.inline&&c||(t.inline?o=!0:c=!0,n!==!1&&(e=t.dom.create("link",{rel:"stylesheet",href:n?n:s+"/css/prism.css"}),t.getDoc().getElementsByTagName("head")[0].appendChild(e)))}var c,u=t.$;e.ceFalse&&(t.on("PreProcess",function(e){u("pre[contenteditable=false]",e.node).filter(a(i.isCodeSample)).each(function(e,t){var n=u(t),r=t.textContent;n.attr("class",u.trim(n.attr("class"))),n.removeAttr("contentEditable"),n.empty().append(u("<code></code>").each(function(){this.textContent=r}))})}),t.on("SetContent",function(){var e=u("pre").filter(a(i.isCodeSample)).filter(function(e,t){return"false"!==t.contentEditable});e.length&&t.undoManager.transact(function(){e.each(function(e,r){u(r).find("br").each(function(e,n){n.parentNode.replaceChild(t.getDoc().createTextNode("\n"),n)}),r.contentEditable=!1,r.innerHTML=t.dom.encode(r.textContent),n.highlightElement(r),r.className=u.trim(r.className)})})}),t.addCommand("codesample",function(){var e=t.selection.getNode();t.selection.isCollapsed()||i.isCodeSample(e)?r.open(t):t.formatter.toggle("code")}),t.addButton("codesample",{cmd:"codesample",title:"Insert/Edit code sample"}),t.on("init",l))})}),o(["tinymce/codesampleplugin/Prism","tinymce/codesampleplugin/Utils","tinymce/codesampleplugin/Dialog","tinymce/codesampleplugin/Plugin"])}(window);editors/tinymce/plugins/codesample/css/prism.css000064400000004361152177723720016137 0ustar00/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */
/**
 * prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */

code[class*="language-"],
pre[class*="language-"] {
	color: black;
	text-shadow: 0 1px white;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	direction: ltr;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	text-shadow: none;
	background: #b3d4fc;
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	text-shadow: none;
	background: #b3d4fc;
}

@media print {
	code[class*="language-"],
	pre[class*="language-"] {
		text-shadow: none;
	}
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #f5f2f0;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: slategray;
}

.token.punctuation {
	color: #999;
}

.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
	color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
	color: #a67f59;
	background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: #07a;
}

.token.function {
	color: #DD4A68;
}

.token.regex,
.token.important,
.token.variable {
	color: #e90;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

editors/tinymce/plugins/media/plugin.min.js000064400000040101152177723720015054 0ustar00!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l<a;++l)s[l]=r(i[l]);var c=o.apply(null,s);if(void 0===c)throw"module ["+t+"] returned undefined";n.instance=c},n=function(t,n,r){if("string"!=typeof t)throw"module id must be a string";if(void 0===n)throw"no dependencies for "+t;if(void 0===r)throw"no definition function for "+t;e[t]={deps:n,defn:r,instance:void 0}},r=function(n){var r=e[n];if(void 0===r)throw"module ["+n+"] was undefined";return void 0===r.instance&&t(n),r.instance},i=function(e,t){for(var n=e.length,i=new Array(n),o=0;o<n;++o)i[o]=r(e[o]);t.apply(null,i)},o={};o.bolt={module:{api:{define:n,require:i,demand:r}}};var a=n,s=function(e,t){a(e,[],function(){return t})};s("1",tinymce.PluginManager),s("6",tinymce.util.Delay),s("e",tinymce.util.Tools),s("9",tinymce.html.SaxParser),s("a",tinymce.html.Schema),s("b",tinymce.dom.DOMUtils.DOM),a("h",[],function(){var e=function(e,t){if(e)for(var n=0;n<e.length;n++)if(t.indexOf(e[n].filter)!==-1)return e[n]};return{getVideoScriptMatch:e}}),a("c",[],function(){var e=function(e){return e.replace(/px$/,"")},t=function(e){return/^[0-9.]+$/.test(e)?e+"px":e},n=function(t){return function(n){return n?e(n.style[t]):""}},r=function(e){return function(n,r){n&&(n.style[e]=t(r))}};return{getMaxWidth:n("maxWidth"),getMaxHeight:n("maxHeight"),setMaxWidth:r("maxWidth"),setMaxHeight:r("maxHeight")}}),a("7",["e","9","a","b","h","c"],function(e,t,n,r,i,o){var a=function(e){return r.getAttrib(e,"data-ephox-embed-iri")},s=function(e){var t=r.createFragment(e);return""!==a(t.firstChild)},l=function(n,r){var o={};return new t({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(t,r){if(o.source1||"param"!==t||(o.source1=r.map.movie),"iframe"!==t&&"object"!==t&&"embed"!==t&&"video"!==t&&"audio"!==t||(o.type||(o.type=t),o=e.extend(r.map,o)),"script"===t){var a=i.getVideoScriptMatch(n,r.map.src);if(!a)return;o={type:"script",source1:r.map.src,width:a.width,height:a.height}}"source"===t&&(o.source1?o.source2||(o.source2=r.map.src):o.source1=r.map.src),"img"!==t||o.poster||(o.poster=r.map.src)}}).parse(r),o.source1=o.source1||o.src||o.data,o.source2=o.source2||"",o.poster=o.poster||"",o},c=function(e){var t=r.createFragment(e),n=t.firstChild;return{type:"ephox-embed-iri",source1:a(n),source2:"",poster:"",width:o.getMaxWidth(n),height:o.getMaxHeight(n)}},u=function(e,t){return s(t)?c(t):l(e,t)};return{htmlToData:u}}),s("8",tinymce.html.Writer),a("4",["8","9","a","b","c"],function(e,t,n,r,i){var o=function(e,t){var n,r,i,o;for(n in t)if(i=""+t[n],e.map[n])for(r=e.length;r--;)o=e[r],o.name===n&&(i?(e.map[n]=i,o.value=i):(delete e.map[n],e.splice(r,1)));else i&&(e.push({name:n,value:i}),e.map[n]=i)},a=function(n){var r=new e,i=new t(r);return i.parse(n),r.getContent()},s=function(r,i,a){var s,l=new e,c=0;return new t({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){l.comment(e)},cdata:function(e){l.cdata(e)},text:function(e,t){l.text(e,t)},start:function(e,t,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":o(t,{width:i.width,height:i.height})}if(a)switch(e){case"video":o(t,{poster:i.poster,src:""}),i.source2&&o(t,{src:""});break;case"iframe":o(t,{src:i.source1});break;case"source":if(c++,c<=2&&(o(t,{src:i["source"+c],type:i["source"+c+"mime"]}),!i["source"+c]))return;break;case"img":if(!i.poster)return;s=!0}l.start(e,t,n)},end:function(e){if("video"===e&&a)for(var t=1;t<=2;t++)if(i["source"+t]){var n=[];n.map={},c<t&&(o(n,{src:i["source"+t],type:i["source"+t+"mime"]}),l.start("source",n,!0))}if(i.poster&&"object"===e&&a&&!s){var r=[];r.map={},o(r,{src:i.poster,width:i.width,height:i.height}),l.start("img",r,!0)}l.end(e)}},new n({})).parse(r),l.getContent()},l=function(e){var t=r.createFragment(e);return""!==r.getAttrib(t.firstChild,"data-ephox-embed-iri")},c=function(e,t){var n=r.createFragment(e),o=n.firstChild;return i.setMaxWidth(o,t.width),i.setMaxHeight(o,t.height),a(o.outerHTML)},u=function(e,t,n){return l(e)?c(e,t):s(e,t,n)};return{updateHtml:u}}),a("l",[],function(){var e=function(e){var t={mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"},n=e.toLowerCase().split(".").pop(),r=t[n];return r?r:""};return{guess:e}}),a("m",[],function(){var e=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\-_]+(?:\?.+)?)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowfullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&amp;byline=0",allowfullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0}];return{urlPatterns:e}}),a("j",["l","7","m","h","4","e"],function(e,t,n,r,i,o){var a=function(a,s){var l="",c=o.extend({},s);if(!c.source1&&(o.extend(c,t.htmlToData(a.settings.media_scripts,c.embed)),!c.source1))return"";if(c.source2||(c.source2=""),c.poster||(c.poster=""),c.source1=a.convertURL(c.source1,"source"),c.source2=a.convertURL(c.source2,"source"),c.source1mime=e.guess(c.source1),c.source2mime=e.guess(c.source2),c.poster=a.convertURL(c.poster,"poster"),o.each(n.urlPatterns,function(e){var t,n,r=e.regex.exec(c.source1);if(r){for(n=e.url,t=0;r[t];t++)n=n.replace("$"+t,function(){return r[t]});c.source1=n,c.type=e.type,c.allowFullscreen=e.allowFullscreen,c.width=c.width||e.w,c.height=c.height||e.h}}),c.embed)l=i.updateHtml(c.embed,c,!0);else{var u=r.getVideoScriptMatch(a.settings.media_scripts,c.source1);if(u&&(c.type="script",c.width=u.width,c.height=u.height),c.width=c.width||300,c.height=c.height||150,o.each(c,function(e,t){c[t]=a.dom.encode(e)}),"iframe"===c.type){var d=c.allowFullscreen?' allowFullscreen="1"':"";l+='<iframe src="'+c.source1+'" width="'+c.width+'" height="'+c.height+'"'+d+"></iframe>"}else"application/x-shockwave-flash"===c.source1mime?(l+='<object data="'+c.source1+'" width="'+c.width+'" height="'+c.height+'" type="application/x-shockwave-flash">',c.poster&&(l+='<img src="'+c.poster+'" width="'+c.width+'" height="'+c.height+'" />'),l+="</object>"):c.source1mime.indexOf("audio")!==-1?a.settings.audio_template_callback?l=a.settings.audio_template_callback(c):l+='<audio controls="controls" src="'+c.source1+'">'+(c.source2?'\n<source src="'+c.source2+'"'+(c.source2mime?' type="'+c.source2mime+'"':"")+" />\n":"")+"</audio>":"script"===c.type?l+='<script src="'+c.source1+'"></script>':l=a.settings.video_template_callback?a.settings.video_template_callback(c):'<video width="'+c.width+'" height="'+c.height+'"'+(c.poster?' poster="'+c.poster+'"':"")+' controls="controls">\n<source src="'+c.source1+'"'+(c.source1mime?' type="'+c.source1mime+'"':"")+" />\n"+(c.source2?'<source src="'+c.source2+'"'+(c.source2mime?' type="'+c.source2mime+'"':"")+" />\n":"")+"</video>"}return l};return{dataToHtml:a}}),s("k",tinymce.util.Promise),a("d",["j","k"],function(e,t){var n=function(e,n,r){var i={};return new t(function(t,o){var a=function(r){return r.html&&(i[e.source1]=r),t({url:e.source1,html:r.html?r.html:n(e)})};i[e.source1]?a(i[e.source1]):r({url:e.source1},a,o)})},r=function(e,n){return new t(function(t){t({html:n(e),url:e.source1})})},i=function(t){return function(n){return e.dataToHtml(t,n)}},o=function(e,t){var o=e.settings.media_url_resolver;return o?n(t,i(e),o):r(t,i(e))};return{getEmbedHtml:o}}),s("f",tinymce.Env),a("g",[],function(){var e=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},t=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],i=e.find("#constrain")[0];n&&r&&i&&t(n,r,i.checked())},n=function(t,n,r){var i=t.state.get("oldVal"),o=n.state.get("oldVal"),a=t.value(),s=n.value();r&&i&&o&&a&&s&&(a!==i?(s=Math.round(a/i*s),isNaN(s)||n.value(s)):(a=Math.round(s/o*a),isNaN(a)||t.value(a))),e(t,n)},r=function(n){t(n,e)},i=function(e){t(e,n)},o=function(e){var t=function(){e(function(e){i(e)})};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}};return{createUi:o,syncSize:r,updateSize:i}}),a("2",["6","7","4","d","c","e","f","g"],function(e,t,n,r,i,o,a,s){var l=a.ie&&a.ie<=8?"onChange":"onInput",c=function(e){return function(t){var n=t&&t.msg?"Media embed handler error: "+t.msg:"Media embed handler threw unknown error.";e.notificationManager.open({type:"error",text:n})}},u=function(e){var n=e.selection.getNode(),r=n.getAttribute("data-ephox-embed-iri");return r?{source1:r,"data-ephox-embed-iri":r,width:i.getMaxWidth(n),height:i.getMaxHeight(n)}:n.getAttribute("data-mce-object")?t.htmlToData(e.settings.media_scripts,e.serializer.serialize(n,{selection:!0})):{}},d=function(e){var t=e.selection.getNode();if(t.getAttribute("data-mce-object")||t.getAttribute("data-ephox-embed-iri"))return e.selection.getContent()},f=function(e,n){return function(r){var i=r.html,a=e.find("#embed")[0],l=o.extend(t.htmlToData(n.settings.media_scripts,i),{source1:r.url});e.fromJSON(l),a&&(a.value(i),s.updateSize(e))}},p=function(e,t){var n,r,i=e.dom.select("img[data-mce-object]");for(n=0;n<t.length;n++)for(r=i.length-1;r>=0;r--)t[n]===i[r]&&i.splice(r,1);e.selection.select(i[0])},m=function(e,t){var n=e.dom.select("img[data-mce-object]");e.insertContent(t),p(e,n),e.nodeChanged()},g=function(e,t){var i=e.toJSON();i.embed=n.updateHtml(i.embed,i),i.embed?m(t,i.embed):r.getEmbedHtml(t,i).then(function(e){m(t,e.html)})["catch"](c(t))},h=function(e,t){o.each(t,function(t,n){e.find("#"+n).value(t)})},v=function(e){var i,a,p=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onpaste:function(){setTimeout(function(){r.getEmbedHtml(e,i.toJSON()).then(f(i,e))["catch"](c(e))},1)},onchange:function(t){r.getEmbedHtml(e,i.toJSON()).then(f(i,e))["catch"](c(e)),h(i,t.meta)},onbeforecall:function(e){e.meta=i.toJSON()}}],m=[],v=function(e){e(i),a=i.toJSON(),i.find("#embed").value(n.updateHtml(a.embed,a))};if(e.settings.media_alt_source!==!1&&m.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&m.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1){var b=s.createUi(v);p.push(b)}a=u(e);var y={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:d(e),multiline:!0,rows:5,label:"Source"},x=function(){a=o.extend({},t.htmlToData(e.settings.media_scripts,this.value())),this.parent().parent().fromJSON(a)};y[l]=x,i=e.windowManager.open({title:"Insert/edit media",data:a,bodyType:"tabpanel",body:[{title:"General",type:"form",items:p},{title:"Embed",type:"container",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},y]},{title:"Advanced",type:"form",items:m}],onSubmit:function(){s.updateSize(i),g(i,e)}}),s.syncSize(i)};return{showDialog:v}}),a("3",["e","8","9","a"],function(e,t,n,r){var i=function(e,i){if(e.settings.media_filter_html===!1)return i;var o,a=new t;return new n({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(t,n,r){if(o=!0,"script"!==t&&"noscript"!==t){for(var i=0;i<n.length;i++){if(0===n[i].name.indexOf("on"))return;"style"===n[i].name&&(n[i].value=e.dom.serializeStyle(e.dom.parseStyle(n[i].value),t))}a.start(t,n,r),o=!1}},end:function(e){o||a.end(e)}},new r({})).parse(i),a.getContent()};return{sanitize:i}}),s("i",tinymce.html.Node),a("5",["3","h","i","f"],function(e,t,n,r){var i=function(e,t){var i,o=t.name;return i=new n("img",1),i.shortEnded=!0,a(e,t,i),i.attr({width:t.attr("width")||"300",height:t.attr("height")||("audio"===o?"30":"150"),style:t.attr("style"),src:r.transparentSrc,"data-mce-object":o,"class":"mce-object mce-object-"+o}),i},o=function(e,t){var r,i,o,s=t.name;return r=new n("span",1),r.attr({contentEditable:"false",style:t.attr("style"),"data-mce-object":s,"class":"mce-preview-object mce-object-"+s}),a(e,t,r),i=new n(s,1),i.attr({src:t.attr("src"),allowfullscreen:t.attr("allowfullscreen"),width:t.attr("width")||"300",height:t.attr("height")||("audio"===s?"30":"150"),frameborder:"0"}),o=new n("span",1),o.attr("class","mce-shim"),r.append(i),r.append(o),r},a=function(t,n,r){var i,o,a,s,l;for(a=n.attributes,s=a.length;s--;)i=a[s].name,o=a[s].value,"width"!==i&&"height"!==i&&"style"!==i&&("data"!==i&&"src"!==i||(o=t.convertURL(o,i)),r.attr("data-mce-p-"+i,o));l=n.firstChild&&n.firstChild.value,l&&(r.attr("data-mce-html",escape(e.sanitize(t,l))),r.firstChild=null)},s=function(e){for(;e=e.parent;)if(e.attr("data-ephox-embed-iri"))return!0;return!1},l=function(e){return function(n){for(var a,l,c=n.length;c--;)a=n[c],a.parent&&(a.parent.attr("data-mce-object")||("script"!==a.name||(l=t.getVideoScriptMatch(e.settings.media_scripts,a.attr("src"))))&&(l&&(l.width&&a.attr("width",l.width.toString()),l.height&&a.attr("height",l.height.toString())),"iframe"===a.name&&e.settings.media_live_embeds!==!1&&r.ceFalse?s(a)||a.replace(o(e,a)):s(a)||a.replace(i(e,a))))}};return{createPreviewIframeNode:o,createPlaceholderNode:i,placeHolderConverter:l}}),a("0",["1","2","3","4","5"],function(e,t,n,r,i){var o=function(e){e.on("ResolveName",function(e){var t;1===e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var r=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){r[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",i.placeHolderConverter(e)),e.serializer.addAttributeFilter("data-mce-object",function(t,r){for(var i,o,a,s,l,c,u,d,f=t.length;f--;)if(i=t[f],i.parent){for(u=i.attr(r),o=new tinymce.html.Node(u,1),"audio"!==u&&"script"!==u&&(d=i.attr("class"),d&&d.indexOf("mce-preview-object")!==-1?o.attr({width:i.firstChild.attr("width"),height:i.firstChild.attr("height")}):o.attr({width:i.attr("width"),height:i.attr("height")})),o.attr({style:i.attr("style")}),s=i.attributes,a=s.length;a--;){var p=s[a].name;0===p.indexOf("data-mce-p-")&&o.attr(p.substr(11),s[a].value)}"script"===u&&o.attr("type","text/javascript"),l=i.attr("data-mce-html"),l&&(c=new tinymce.html.Node("#text",3),c.raw=!0,c.value=n.sanitize(e,unescape(l)),o.append(c)),i.replace(o)}})}),e.on("click keyup",function(){var t=e.selection.getNode();t&&e.dom.hasClass(t,"mce-preview-object")&&e.dom.getAttrib(t,"data-mce-selected")&&t.setAttribute("data-mce-selected","2")}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");"audio"!==t&&"script"!==t||e.preventDefault()}),e.on("objectResized",function(e){var t,n=e.target;n.getAttribute("data-mce-object")&&(t=n.getAttribute("data-mce-html"),t&&(t=unescape(t),n.setAttribute("data-mce-html",escape(r.updateHtml(t,{width:e.width,height:e.height})))))}),this.showDialog=function(){t.showDialog(e)},e.addButton("media",{tooltip:"Insert/edit media",onclick:this.showDialog,stateSelector:["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"]}),e.addMenuItem("media",{icon:"media",text:"Media",onclick:this.showDialog,context:"insert",prependToContext:!0}),e.on("setContent",function(){e.$("span.mce-preview-object").each(function(t,n){var r=e.$(n);0===r.find("span.mce-shim",n).length&&r.append('<span class="mce-shim"></span>')})}),e.addCommand("mceMedia",this.showDialog)};return e.add("media",o),function(){}}),r("0")()}();editors/tinymce/plugins/autoresize/plugin.min.js000064400000003557152177723720016205 0ustar00tinymce.PluginManager.add("autoresize",function(e){function t(){return e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()}function n(r){var a,s,l,c,u,d,f,p,m,g,h,v,b=tinymce.DOM;if(s=e.getDoc()){if(l=s.body,c=s.documentElement,u=i.autoresize_min_height,!l||r&&"setcontent"===r.type&&r.initial||t())return void(l&&c&&(l.style.overflowY="auto",c.style.overflowY="auto"));f=e.dom.getStyle(l,"margin-top",!0),p=e.dom.getStyle(l,"margin-bottom",!0),m=e.dom.getStyle(l,"padding-top",!0),g=e.dom.getStyle(l,"padding-bottom",!0),h=e.dom.getStyle(l,"border-top-width",!0),v=e.dom.getStyle(l,"border-bottom-width",!0),d=l.offsetHeight+parseInt(f,10)+parseInt(p,10)+parseInt(m,10)+parseInt(g,10)+parseInt(h,10)+parseInt(v,10),(isNaN(d)||d<=0)&&(d=tinymce.Env.ie?l.scrollHeight:tinymce.Env.webkit&&0===l.clientHeight?0:l.offsetHeight),d>i.autoresize_min_height&&(u=d),i.autoresize_max_height&&d>i.autoresize_max_height?(u=i.autoresize_max_height,l.style.overflowY="auto",c.style.overflowY="auto"):(l.style.overflowY="hidden",c.style.overflowY="hidden",l.scrollTop=0),u!==o&&(a=u-o,b.setStyle(e.iframeElement,"height",u+"px"),o=u,tinymce.isWebKit&&a<0&&n(r))}}function r(t,i,o){tinymce.util.Delay.setEditorTimeout(e,function(){n({}),t--?r(t,i,o):o&&o()},i)}var i=e.settings,o=0;e.settings.inline||(i.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),i.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){var t,n;t=e.getParam("autoresize_overflow_padding",1),n=e.getParam("autoresize_bottom_margin",50),t!==!1&&e.dom.setStyles(e.getBody(),{paddingLeft:t,paddingRight:t}),n!==!1&&e.dom.setStyles(e.getBody(),{paddingBottom:n})}),e.on("nodechange setcontent keyup FullscreenStateChanged",n),e.getParam("autoresize_on_init",!0)&&e.on("init",function(){r(20,100,function(){r(5,1e3)})}),e.addCommand("mceAutoResize",n))});editors/tinymce/plugins/pagebreak/plugin.min.js000064400000002316152177723720015724 0ustar00tinymce.PluginManager.add("pagebreak",function(e){var t="mce-pagebreak",n=e.getParam("pagebreak_separator","<!-- pagebreak -->"),r=new RegExp(n.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),i='<img src="'+tinymce.Env.transparentSrc+'" class="'+t+'" data-mce-resize="false" data-mce-placeholder />';e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent("<p>"+i+"</p>"):e.insertContent(i)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(n){"IMG"==n.target.nodeName&&e.dom.hasClass(n.target,t)&&(n.name="pagebreak")}),e.on("click",function(n){n=n.target,"IMG"===n.nodeName&&e.dom.hasClass(n,t)&&e.selection.select(n)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(r,i)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(t){for(var r,i,o=t.length;o--;)if(r=t[o],i=r.attr("class"),i&&i.indexOf("mce-pagebreak")!==-1){var a=r.parent;if(e.schema.getBlockElements()[a.name]&&e.settings.pagebreak_split_block){a.type=3,a.value=n,a.raw=!0,r.remove();continue}r.type=3,r.value=n,r.raw=!0}})})});editors/tinymce/plugins/fullpage/plugin.min.js000064400000014244152177723720015605 0ustar00tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){r(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,r,o=i(),a={};return a.fontface=e.getParam("fullpage_default_fontface",""),a.fontsize=e.getParam("fullpage_default_fontsize",""),n=o.firstChild,7==n.type&&(a.xml_pi=!0,r=/encoding="([^"]+)"/.exec(n.value),r&&(a.docencoding=r[1])),n=o.getAll("#doctype")[0],n&&(a.doctype="<!DOCTYPE"+n.value+">"),n=o.getAll("title")[0],n&&n.firstChild&&(a.title=n.firstChild.value),u(o.getAll("meta"),function(e){var t,n=e.attr("name"),r=e.attr("http-equiv");n?a[n.toLowerCase()]=e.attr("content"):"Content-Type"==r&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(a.docencoding=t[1]))}),n=o.getAll("html")[0],n&&(a.langcode=t(n,"lang")||t(n,"xml:lang")),a.stylesheets=[],tinymce.each(o.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&a.stylesheets.push(e.attr("href"))}),n=o.getAll("body")[0],n&&(a.langdir=t(n,"dir"),a.style=t(n,"style"),a.visited_color=t(n,"vlink"),a.link_color=t(n,"link"),a.active_color=t(n,"alink")),a}function r(t){function n(e,t,n){e.attr(t,n?n:void 0)}function r(e){a.firstChild?a.insert(e,a.firstChild):a.append(e)}var o,a,s,c,f,p=e.dom;o=i(),a=o.getAll("head")[0],a||(c=o.getAll("html")[0],a=new d("head",1),c.firstChild?c.insert(a,c.firstChild,!0):c.append(a)),c=o.firstChild,t.xml_pi?(f='version="1.0"',t.docencoding&&(f+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new d("xml",7),o.insert(c,o.firstChild,!0)),c.value=f):c&&7==c.type&&c.remove(),c=o.getAll("#doctype")[0],t.doctype?(c||(c=new d("#doctype",10),t.xml_pi?o.insert(c,o.firstChild):r(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),c=null,u(o.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),t.docencoding?(c||(c=new d("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,r(c)),c.attr("content","text/html; charset="+t.docencoding)):c&&c.remove(),c=o.getAll("title")[0],t.title?(c?c.empty():(c=new d("title",1),r(c)),c.append(new d("#text",3)).value=t.title):c&&c.remove(),u("keywords,description,author,copyright,robots".split(","),function(e){var n,i,a=o.getAll("meta"),s=t[e];for(n=0;n<a.length;n++)if(i=a[n],i.attr("name")==e)return void(s?i.attr("content",s):i.remove());s&&(c=new d("meta",1),c.attr("name",e),c.attr("content",s),c.shortEnded=!0,r(c))});var m={};tinymce.each(o.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&(m[e.attr("href")]=e)}),tinymce.each(t.stylesheets,function(e){m[e]||(c=new d("link",1),c.attr({rel:"stylesheet",text:"text/css",href:e}),c.shortEnded=!0,r(c)),delete m[e]}),tinymce.each(m,function(e){e.remove()}),c=o.getAll("body")[0],c&&(n(c,"dir",t.langdir),n(c,"style",t.style),n(c,"vlink",t.visited_color),n(c,"link",t.link_color),n(c,"alink",t.active_color),p.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),c=o.getAll("html")[0],c&&(n(c,"lang",t.langcode),n(c,"xml:lang",t.langcode)),a.firstChild||a.remove(),s=new tinymce.html.Serializer({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(o),l=s.substring(0,s.indexOf("</body>"))}function i(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(l)}function o(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var r,o,s,d,f=t.content,p="",m=e.dom;if(!t.selection&&!("raw"==t.format&&l||t.source_view&&e.getParam("fullpage_hide_in_source_view"))){0!==f.length||t.source_view||(f=tinymce.trim(l)+"\n"+tinymce.trim(f)+"\n"+tinymce.trim(c)),f=f.replace(/<(\/?)BODY/gi,"<$1body"),r=f.indexOf("<body"),r!=-1?(r=f.indexOf(">",r),l=n(f.substring(0,r+1)),o=f.indexOf("</body",r),o==-1&&(o=f.length),t.content=f.substring(r+1,o),c=n(f.substring(o))):(l=a(),c="\n</body>\n</html>"),s=i(),u(s.getAll("style"),function(e){e.firstChild&&(p+=e.firstChild.value)}),d=s.getAll("body")[0],d&&m.setAttribs(e.getBody(),{style:d.attr("style")||"",dir:d.attr("dir")||"",vLink:d.attr("vlink")||"",link:d.attr("link")||"",aLink:d.attr("alink")||""}),m.remove("fullpage_styles");var g=e.getDoc().getElementsByTagName("head")[0];p&&(m.add(g,"style",{id:"fullpage_styles"},p),d=m.get("fullpage_styles"),d.styleSheet&&(d.styleSheet.cssText=p));var h={};tinymce.each(g.getElementsByTagName("link"),function(e){"stylesheet"==e.rel&&e.getAttribute("data-mce-fullpage")&&(h[e.href]=e)}),tinymce.each(s.getAll("link"),function(e){var t=e.attr("href");return!t||(h[t]||"stylesheet"!=e.attr("rel")||m.add(g,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),void delete h[t])}),tinymce.each(h,function(e){e.parentNode.removeChild(e)})}}function a(){var t,n="",r="";return e.getParam("fullpage_default_xml_pi")&&(n+='<?xml version="1.0" encoding="'+e.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'),n+=e.getParam("fullpage_default_doctype","<!DOCTYPE html>"),n+="\n<html>\n<head>\n",(t=e.getParam("fullpage_default_title"))&&(n+="<title>"+t+"</title>\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=e.getParam("fullpage_default_font_family"))&&(r+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(r+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(r+="color: "+t+";"),n+="</head>\n<body"+(r?' style="'+r+'"':"")+">\n"}function s(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(l)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var l,c,u=tinymce.each,d=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",o),e.on("GetContent",s)});editors/tinymce/plugins/legacyoutput/plugin.min.js000064400000006277152177723720016542 0ustar00!function(e){e.PluginManager.add("legacyoutput",function(t,n,r){t.settings.inline_styles=!1,t.on("init",function(){var n="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",r=e.explode(t.settings.font_size_style_values),i=t.schema;t.formatter.register({alignleft:{selector:n,attributes:{align:"left"}},aligncenter:{selector:n,attributes:{align:"center"}},alignright:{selector:n,attributes:{align:"right"}},alignjustify:{selector:n,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(r,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){i.addValidElements(e+"[*]")}),i.getElementRule("font")||i.addValidElements("font[face|size|color|style]"),e.each(n.split(","),function(e){var t=i.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})}),t.addButton("fontsizeselect",function(){var e=[],n="8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7",r=t.settings.fontsize_formats||n;return t.$.each(r.split(" "),function(t,n){var r=n,i=n,o=n.split("=");o.length>1&&(r=o[0],i=o[1]),e.push({text:r,value:i})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:e,fixedWidth:!0,onPostRender:function(){var e=this;t.on("NodeChange",function(){var n;n=t.dom.getParent(t.selection.getNode(),"font"),n?e.value(n.size):e.value("")})},onclick:function(e){e.control.settings.value&&t.execCommand("FontSize",!1,e.control.settings.value)}}}),t.addButton("fontselect",function(){function e(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}var n="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=e(t.settings.font_formats||n);return r.each(o,function(e,t){i.push({text:{raw:t[0]},value:t[1],textStyle:t[1].indexOf("dings")==-1?"font-family:"+t[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:function(){var e=this;t.on("NodeChange",function(){var n;n=t.dom.getParent(t.selection.getNode(),"font"),n?e.value(n.face):e.value("")})},onselect:function(e){e.control.settings.value&&t.execCommand("FontName",!1,e.control.settings.value)}}})})}(tinymce);editors/none/js/none.min.js000064400000001654152177723720011672 0ustar00!function(i,e,o){e.jInsertEditorText=function(e,t){i.editors.instances[t].replaceSelection(e)},o.addEventListener("DOMContentLoaded",function(){for(var e=o.querySelectorAll(".js-editor-none"),t=0,n=e.length;t<n;t++)i.editors.instances[e[t].childNodes[0].id]={id:e[t].childNodes[0].id,element:e[t].childNodes[0],getValue:function(){return this.element.value},setValue:function(e){return this.element.value=e},getSelection:function(){return e=this.element,o.selection?(e.focus(),o.selection.createRange()):e.selectionStart||0===e.selectionStart?e.value.substring(e.selectionStart,e.selectionEnd):e.value;var e},replaceSelection:function(e){return t=this.element,n=e,void(o.selection?(t.focus(),o.selection.createRange().text=n):t.selectionStart||0===t.selectionStart?t.value=t.value.substring(0,t.selectionStart)+n+t.value.substring(t.selectionEnd,t.value.length):t.value+=n);var t,n},onSave:function(){return""}}})}(Joomla,window,document);
editors/none/js/none.js000064400000003747152177723720011115 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Editor None
 */
;(function(Joomla, window, document){

	function insertAtCursor(myField, myValue) {
		if (document.selection) {
			// IE support
			myField.focus();
			var sel = document.selection.createRange();
			sel.text = myValue;
		} else if (myField.selectionStart || myField.selectionStart === 0) {
			// MOZILLA/NETSCAPE support
			myField.value = myField.value.substring(0, myField.selectionStart)
				+ myValue
				+ myField.value.substring(myField.selectionEnd, myField.value.length);
		} else {
			myField.value += myValue;
		}
	}

	function getSelection(myField) {
		if (document.selection) {
			// IE support
			myField.focus();
			return document.selection.createRange();
		} else if (myField.selectionStart || myField.selectionStart === 0) {
			// MOZILLA/NETSCAPE support
			return myField.value.substring(myField.selectionStart, myField.selectionEnd);
		} else {
			return myField.value;
		}
	}

	// @deprecated 4.0 Use directly Joomla.editors.instances[editor].replaceSelection(text);
	window.jInsertEditorText = function(text, editor) {
		Joomla.editors.instances[editor].replaceSelection(text);
	};

	document.addEventListener('DOMContentLoaded', function() {
		var editors = document.querySelectorAll('.js-editor-none');

		for(var i = 0, l = editors.length; i < l; i++) {
			/** Register Editor */
			Joomla.editors.instances[editors[i].childNodes[0].id] = {
				'id': editors[i].childNodes[0].id,
				'element':  editors[i].childNodes[0],
				'getValue': function () { return this.element.value; },
				'setValue': function (text) { return this.element.value = text; },
				'getSelection': function () { return getSelection(this.element); },
				'replaceSelection': function (text) { return insertAtCursor(this.element, text); },
				'onSave': function() { return ''; }
			};
		}
	});
}(Joomla, window, document));
com_rsfirewall/index.html000064400000000040152177723720011560 0ustar00<!DOCTYPE html><title></title>
com_rsfirewall/css/style.css000064400000046033152177723720012241 0ustar00/* label fix, only for top level items */
ul.config-option-list > li > label {
	width: 135px;
	word-wrap: break-word;
}

.adminform > .control-group > .control-label {
	width: 135px;
	word-wrap: break-word;
}

.com-rsfirewall-float-left {
	float: left;
}

.icon-48-rsfirewall {
	background-image: url(../images/icon-48-rsfirewall.png);
}

/* configuration checkboxes hack */
#jform_blocked_countries ul,
#jform_blocked_countries_checkall ul,
#jform_blocked_continents ul {
	list-style-type: none;
	margin: 0px;
}

#jform_blocked_countries ul li input,
#jform_blocked_countries_checkall ul li input,
#jform_blocked_continents ul li input {
	margin: 0 5px 5px 0;
}

#jform_blocked_countries ul li label,
#jform_blocked_countries_checkall ul li label,
#jform_blocked_continents ul li label {
	margin: 0;
}

.text label {
	font-size: 120%;
	font-weight: bold;
}

.com-rsfirewall-icon-16-loading {
	background: url(../images/icon-16-loading.gif) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
}

.com-rsfirewall-icon-16-grade {
	background: url(../images/icon-16-grade.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-firewall {
	background: url(../images/icon-16-rsfirewall.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-joomla {
	background: url(../images/icon-16-joomla.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-server {
	background: url(../images/icon-16-server.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-filescan {
	background: url(../images/icon-16-filescan.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-database {
	background: url(../images/icon-16-database.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: block;
	float: left;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-folder {
	background: url(../images/icon-16-folder.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: inline-block;
	margin-right: 4px;
}

.com-rsfirewall-icon-16-file {
	background: url(../images/icon-16-file.png) no-repeat left center;
	width: 16px;
	height: 16px;
	display: inline-block;
	margin-right: 4px;
}

.com-rsfirewall-current-item {
	background-image: url(../images/icon-16-rightarr.png);
	background-repeat: no-repeat;
	background-position: left center;
	padding-left: 20px;
}

.com-rsfirewall-hidden {
	display: none !important;
}

.com-rsfirewall-ok {
	background: url(../images/icon-16-ok.png) no-repeat left center;
	padding-left: 20px;
	color: #779E00;
}

.com-rsfirewall-not-ok {
	background: url(../images/icon-16-not-ok.png) no-repeat left center;
	padding-left: 20px;
	color: #FF6633;
	font-weight: bold;
}

.com-rsfirewall-notice {
	background: url(../images/icon-16-notice.png) no-repeat left center;
	padding: 1px 0 1px 20px;
	color: #DBA400;
	font-weight: bold;
}

.com-rsfirewall-error {
	background: #FFECE5;
	color: #FF6633;
	padding: 5px;
}

.com-rsfirewall-log-error {
	background: #FFECE5;
	color: #FF6633;
	padding: 10px;
}

.com-rsfirewall-log-warning {
	background: #fcf8e3;
	color: #c09853;
	padding: 10px;
}

.com-rsfirewall-log-message {
	display: none;
	margin: 10px 0;
}

.com-rsfirewall-log-message h3 {
	font-size: 18px;
	margin: 5px 0;
}

.com-rsfirewall-button {
	display: inline-block;
	background: #459300 url(../images/bg-button-green.gif) top left repeat-x !important;
	border: 1px solid #459300 !important;
	padding: 2px;
	color: #fff !important;
	cursor: pointer;
	margin: 0;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
}

.com-rsfirewall-button.btn-processing {
	background: #FFAA4F !important;
	background-image: none !important;
	border-color: #FFAA4F !important;
}

.com-rsfirewall-button.btn-success {
	background: #459300 url(../images/bg-button-green.gif) top left repeat-x !important;
	border-color: #459300 !important;
}

.com-rsfirewall-button.btn-failed {
	background: #E3425D !important;
	background-image: none !important;
	border-color: #E3425D !important;
}

.com-rsfirewall-button .expand {
	background: url(../images/icon-16-downarrow.png) no-repeat center;
	width: 16px;
	height: 16px;
	display: block;
}

.com-rsfirewall-button .shrink {
	background: url(../images/icon-16-uparrow.png) no-repeat center;
	width: 16px;
	height: 16px;
	display: block;
}

.com-rsfirewall-button .fix {
	background: url(../images/icon-18-fix.png) no-repeat center;
	width: 18px;
	height: 18px;
	display: block;
}

.com-rsfirewall-file-manager-box {
	float: left;
	width: 100%;
}

.com-rsfirewall-file-manager-box textarea {
	width: 98%;
}

.com-rsfirewall-loader-wrapper {
	display: inline-block;
}

table.com-rsfirewall-colored-table tr th {
	background: #F2F2F2;
}

table.com-rsfirewall-colored-table tr td, table.com-rsfirewall-colored-table tr th {
	font-family: Consolas, "Liberation Mono", Courier, monospace;
}

table.com-rsfirewall-colored-table tr.blue td {
	background: #F5F7FF;
	color: #333333;
}

table.com-rsfirewall-colored-table tr.yellow td {
	background: #FFFBEB;
	color: #333333;
}

table.com-rsfirewall-colored-table tr td.broken-word {
	word-break: break-all;
}

.com-rsfirewall-striped {
	width: 100%;
	margin-bottom: 20px;
}

.com-rsfirewall-striped td:first-child {
	width: 5%;
}

.com-rsfirewall-striped th,
.com-rsfirewall-striped td {
	padding: 8px;
	line-height: 20px;
	text-align: left;
	vertical-align: top;
	border-top: 1px solid #dddddd;
}

.com-rsfirewall-striped td label {
	display: inline;
}

.com-rsfirewall-striped th {
	font-weight: bold;
}

.com-rsfirewall-striped thead th {
	vertical-align: bottom;
}

.com-rsfirewall-striped caption + thead tr:first-child th,
.com-rsfirewall-striped caption + thead tr:first-child td,
.com-rsfirewall-striped colgroup + thead tr:first-child th,
.com-rsfirewall-striped colgroup + thead tr:first-child td,
.com-rsfirewall-striped thead:first-child tr:first-child th,
.com-rsfirewall-striped thead:first-child tr:first-child td {
	border-top: 0;
}

.com-rsfirewall-striped tbody + tbody {
	border-top: 2px solid #dddddd;
}

.com-rsfirewall-striped .com-rsfirewall-striped {
	background-color: #ffffff;
}

.com-rsfirewall-striped.table-striped tbody > tr:nth-child(odd) > td,
.com-rsfirewall-striped.table-striped tbody > tr:nth-child(odd) > th {
	background-color: #f9f9f9;
}

/* outer */
.com-rsfirewall-progress {
	height: 20px;
	margin-bottom: 20px;
	overflow: hidden;
	background-color: #f7f7f7;
	background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
	background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
	background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
	background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
	background-repeat: repeat-x;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
	-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* inner */
.com-rsfirewall-progress .com-rsfirewall-bar {
	line-height: 20px;
	padding-right: 10px;
	float: left;
	width: 0;
	height: 100%;
	font-size: 12px;
	color: #ffffff;
	text-align: right;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
	background-color: #0e90d2;
	background-image: -moz-linear-gradient(top, #149bdf, #0480be);
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
	background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
	background-image: -o-linear-gradient(top, #149bdf, #0480be);
	background-image: linear-gradient(to bottom, #149bdf, #0480be);
	background-repeat: repeat-x;
	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
	-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
	-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: width 0.6s ease;
	-moz-transition: width 0.6s ease;
	-o-transition: width 0.6s ease;
	transition: width 0.6s ease;
}

pre#com-rsfirewall-php-ini {
	background-color: #F7F7F9;
	border: 1px solid #E1E1E8;
	color: #48484C;
	padding: 8px;
}

#com-rsfirewall-scan-in-progress {
	font-size: 150%;
	background: url(../images/icon-50-loading.gif) no-repeat left center;
	height: 50px;
	line-height: 50px;
	padding-left: 55px;
}

.com-rsfirewall-clear {
	display: block;
	clear: both;
	margin-top: 5px;
	margin-bottom: 5px;
}

.com-rsfirewall-tooltip {
	border: solid 1px #F5C070;
	background-color: #FDF2E2;
	background-image: url(../images/info.png);
	background-repeat: no-repeat;
	background-position: 10px 5px;
	margin: 0 10px 10px;
	padding: 5px;
	padding-left: 74px;
	min-height: 48px;
}

#com-rsfirewall-explorer {
	padding: 4px;
}

#com-rsfirewall-explorer-header {
	text-align: left;
	background: #FFF9E5;
	padding: 5px;
}

#com-rsfirewall-explorer ul {
	list-style-type: none;
	margin: 0;
	padding: 3px;
}

#com-rsfirewall-explorer ul li {
	padding: 3px;
	clear: both;
}

#com-rsfirewall-explorer ul li label {
	display: inline;
}

.com-rsfirewall-level-low {
	color: green;
}

.com-rsfirewall-level-medium {
	color: orange;
}

.com-rsfirewall-level-high {
	color: red;
}

.com-rsfirewall-level-critical {
	color: black;
	font-weight: bold;
}

.com-rsfirewall-list-type-0 {
	color: black;
	font-weight: bold;
	border-left: 2px solid black !important;
}

.com-rsfirewall-list-type-1 {
	color: green;
	font-weight: bold;
	border-left: 2px solid green !important;
}

/* new style */
#com-rsfirewall-grade {
	padding: 10px;
	width: 370px;
	background: #F5F5F5;
	border: 1px solid #E3E3E3;
	overflow: hidden;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	margin-bottom: 10px;

	box-shadow: inset 0 1px 1px #ccc, 0 1px 2px #ccc, 0 0px 0px 1px #f3f3f2;
	-webkit-box-shadow: inset 0 1px 1px #ccc, 0 1px 2px #ccc, 0 0px 0px 1px #f3f3f2;
	-moz-box-shadow: inset 0 1px 1px #ccc, 0 1px 2px #ccc, 0 0px 0px 1px #f3f3f2;
}

#com-rsfirewall-grade p {
	display: inline;
	width: 265px;
	float: left;
	margin: 0;
	padding: 0 8px 0 0;
	font-size: 12px;
}

.com-rsfirewall-content-box {
	border: 1px solid #ccc;
	margin: 0 0 20px 0;
	background: #fff;
}

.com-rsfirewall-content-box-header {
	background: #e5e5e5 url(../images/bg-content-box.gif) top left repeat-x;
	margin-top: 1px;
	height: 40px;
}

.com-rsfirewall-content-box-header h3 {
	padding: 12px 15px 10px;
	margin: 0;
	float: left;
	font-size: 15px;
}

.com-rsfirewall-content-box-content {
	padding: 20px;
	font-size: 13px;
	border-top: 1px solid #ccc;
}

#com-rsfirewall-main-content table {
	width: 100%;
	border-collapse: collapse;
}

#com-rsfirewall-main-content table thead th {
	font-weight: bold;
	font-size: 15px;
	border-bottom: 1px solid #ddd;
}

#com-rsfirewall-main-content tbody {
	border-bottom: 1px solid #ddd;
}

#com-rsfirewall-main-content tbody tr {
	background: #fff;
}

#com-rsfirewall-main-content tbody tr.alt-row {
	background: #f3f3f3;
}

#com-rsfirewall-main-content table td,
#com-rsfirewall-main-content table th {
	padding: 10px;
	line-height: 1.3em;
}

.com-rsfirewall-break-word {
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	hyphens: auto;
}

/* dashboard about box */
#dashboard-left {
	float: left;
	width: 74%;
	padding-right: 1%;
	overflow: hidden;
}

#dashboard-right {
	float: left;
	width: 25%;
}

.dashboard-container {
	width: 100%;
	overflow: hidden;
}

.dashboard-container:before,
.dashboard-container:after {
	display: table;
	content: "";
}

.dashboard-container:after {
	clear: both;
}

.dashboard-info {
	font-size: 12px;
	color: #333;
	display: block;
	padding: 10px;
	background: rgb(255, 255, 255); /* Old browsers */
	background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)), color-stop(100%, rgba(237, 237, 237, 1))); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* IE10+ */
	background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=0); /* IE6-9 */
	border: #d8d8d8 1px solid;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	-moz-box-shadow: 0 0 4px rgba(000, 000, 000, 0.1) inset;
	-webkit-box-shadow: 0 0 4px rgba(000, 000, 000, 0.1) inset;
	box-shadow: 0 0 3px rgba(000, 000, 000, 0.1) inset;

	text-align: center;
}

.dashboard-info img {
	margin: 0 auto;
}

.dashboard-table {
	width: 100%;
	border-top: solid 1px #ddd;
	margin-top: 5px;
}

.dashboard-info td {
	padding: 2px;
}

.correct-code {
	background: green;
	color: white;
}

.incorrect-code {
	background: red;
	color: white;
}

.missing-code {
	background: orange;
}

.missing-code a {
	color: white !important;
}

/* Diff table styling */
table.diff {
	border-collapse: collapse;
	border-spacing: 0;
	margin: 0 auto 1.5em;
}

.diff th {
	color: #fff;
}

.diff th:last-child {
	background: #990000;
}

.diff th:first-child {
	background: #009900;
}

.diff td, .diff th {
	padding: 0 0.667em;
	vertical-align: top;
	white-space: pre;
	white-space: pre-wrap;
	font-family: Consolas, 'Courier New', Courier, monospace;
	font-size: 1em;
	line-height: 1.333;
}

.diff span {
	display: block;
	min-height: 1.333em;
	margin-top: -1px;
	padding: 0 3px;
}

* html .diff span {
	height: 1.333em;
}

.diff span:first-child {
	margin-top: 0;
}

.diffDeleted span {
	border: 1px solid rgb(255, 192, 192);
	background: rgb(255, 224, 224);
}

.diffInserted span {
	border: 1px solid rgb(192, 255, 192);
	background: rgb(224, 255, 224);
}

/* Portrait tablet to landscape and desktop */
@media (min-width: 768px) and (max-width: 979px) {
	#dashboard-left {
		float: none;
		width: 100%;
	}

	#dashboard-right {
		float: none;
		width: 100%;
	}
}

/* Landscape phone to portrait tablet */
@media (max-width: 767px) {
	#dashboard-left {
		float: none;
		width: 100%;
	}

	#dashboard-right {
		float: none;
		width: 100%;
	}
}

/* Landscape phones and down */
@media (max-width: 480px) {
	#dashboard-left {
		float: none;
		width: 100%;
	}

	#dashboard-right {
		float: none;
		width: 100%;
	}
}

/* JQVMAP */
.jqvmap-zoomout {
	top: 35px !important;
}

#com-rsfirewall-virtual-map {
	min-height: 400px;
	position: relative;
}

.tpl-overlay {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 12;
	background-color: rgba(0, 0, 0, 0.05);
}

.sk-folding-cube {
	margin: 20px auto;
	width: 40px;
	height: 40px;
	position: absolute;
	z-index: 13;
	left: 50%;
	top: 50%;
	-webkit-transform: rotateZ(45deg) translate(-50%, -50%);
	transform: rotateZ(45deg) translate(-50%, -50%);
}

.sk-folding-cube .sk-cube {
	float: left;
	width: 50%;
	height: 50%;
	position: relative;
	-webkit-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
}

.sk-folding-cube .sk-cube:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #E39C14;
	-webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;
	animation: sk-foldCubeAngle 2.4s infinite linear both;
	-webkit-transform-origin: 100% 100%;
	-ms-transform-origin: 100% 100%;
	transform-origin: 100% 100%;
}

.sk-folding-cube .sk-cube2 {
	-webkit-transform: scale(1.1) rotateZ(90deg);
	transform: scale(1.1) rotateZ(90deg);
}

.sk-folding-cube .sk-cube3 {
	-webkit-transform: scale(1.1) rotateZ(180deg);
	transform: scale(1.1) rotateZ(180deg);
}

.sk-folding-cube .sk-cube4 {
	-webkit-transform: scale(1.1) rotateZ(270deg);
	transform: scale(1.1) rotateZ(270deg);
}

.sk-folding-cube .sk-cube2:before {
	-webkit-animation-delay: 0.3s;
	animation-delay: 0.3s;
}

.sk-folding-cube .sk-cube3:before {
	-webkit-animation-delay: 0.6s;
	animation-delay: 0.6s;
}

.sk-folding-cube .sk-cube4:before {
	-webkit-animation-delay: 0.9s;
	animation-delay: 0.9s;
}

@-webkit-keyframes sk-foldCubeAngle {
	0%,
	10% {
		-webkit-transform: perspective(140px) rotateX(-180deg);
		transform: perspective(140px) rotateX(-180deg);
		opacity: 0;
	}
	25%,
	75% {
		-webkit-transform: perspective(140px) rotateX(0deg);
		transform: perspective(140px) rotateX(0deg);
		opacity: 1;
	}
	90%,
	100% {
		-webkit-transform: perspective(140px) rotateY(180deg);
		transform: perspective(140px) rotateY(180deg);
		opacity: 0;
	}
}

@keyframes sk-foldCubeAngle {
	0%,
	10% {
		-webkit-transform: perspective(140px) rotateX(-180deg);
		transform: perspective(140px) rotateX(-180deg);
		opacity: 0;
	}
	25%,
	75% {
		-webkit-transform: perspective(140px) rotateX(0deg);
		transform: perspective(140px) rotateX(0deg);
		opacity: 1;
	}
	90%,
	100% {
		-webkit-transform: perspective(140px) rotateY(180deg);
		transform: perspective(140px) rotateY(180deg);
		opacity: 0;
	}
}

#geoip-verification {
	display: block;
	background: #f5f5f5;
	border: 1px solid #e1e1e1;
	margin: 10px;
	padding: 10px;
}

#geoip-downloader {
	list-style-type: none;
	padding: 0;
	margin: 0;
}

#geoip-downloader > li {
	margin: 15px;
	position: relative;
}

#geoip-downloader > li.ok:before {
	display: inline-block;
	content: "\47";
	position: relative;
	margin-right: 10px;
	font-family: 'IcoMoon';
	color: #409740;
}

#geoip-downloader > li.not-ok:before {
	display: inline-block;
	content: "\4a";
	position: relative;
	margin-right: 10px;
	font-family: 'IcoMoon';
	color: #ad312b;
}
com_rsfirewall/css/jqvmap.css000064400000002077152177723720012377 0ustar00.jqvmap-label {
	position              : absolute;
	display               : none;
	-webkit-border-radius : 3px;
	-moz-border-radius    : 3px;
	border-radius         : 3px;
	background            : #292929;
	color                 : white;
	font-family           : sans-serif, Verdana;
	font-size             : smaller;
	padding               : 3px;
	pointer-events        : none;
}

.jqvmap-pin {
	pointer-events : none;
}

.jqvmap-zoomin, .jqvmap-zoomout {
	position              : absolute;
	left                  : 10px;
	-webkit-border-radius : 3px;
	-moz-border-radius    : 3px;
	border-radius         : 3px;
	background            : #000000;
	padding               : 3px;
	color                 : white;
	width                 : 15px;
	height                : 15px;
	cursor                : pointer;
	line-height           : 10px;
	text-align            : center;
}

.jqvmap-zoomin {
	top : 10px;
}

.jqvmap-zoomout {
	top : 30px;
}

.jqvmap-region {
	cursor : pointer;
}

.jqvmap-ajax_response {
	width  : 100%;
	height : 500px;
}
com_rsfirewall/js/rsfirewall.js000064400000132644152177723720012727 0ustar00var RSFirewall = {};

RSFirewall.$ = jQuery;

RSFirewall.parseJSON = function (data) {
	if (typeof data != 'object') {
		// parse invalid data:
		var match = data.match(/{.*}/);

		return RSFirewall.$.parseJSON(match[0]);
	}

	return RSFirewall.$.parseJSON(data);
};

RSFirewall.requestTimeOut = {};
RSFirewall.requestTimeOut.Seconds = 0;
RSFirewall.requestTimeOut.Milliseconds = function () {
	return parseFloat(RSFirewall.requestTimeOut.Seconds) * 1000;
};

/* loading helper */
RSFirewall.removeLoading = function () {
	RSFirewall.$('.com-rsfirewall-icon-16-loading').remove();
};
RSFirewall.addLoading = function (where, type) {
	if (typeof type == 'undefined') {
		RSFirewall.$(where).append('<span class="com-rsfirewall-icon-16-loading"></span>');
	} else {
		RSFirewall.$(where)[type]('<span class="com-rsfirewall-icon-16-loading"></span>');
	}
};
RSFirewall.removeArrow = function () {
	RSFirewall.$('.com-rsfirewall-current-item').removeClass('com-rsfirewall-current-item');
};
RSFirewall.addArrow = function (item) {
	RSFirewall.$(item).addClass('com-rsfirewall-current-item');
};

RSFirewall.$(document).ready(function () {
	RSFirewall.$('#jform_blocked_countries input, #jform_blocked_continents input, #jform_blocked_countries_checkall input').on('click', function (element) {
		if ((element.target.value == 'US' || element.target.value == 'checkall' || element.target.value == 'NA') && element.target.checked) {
			RSFirewall.$('#us-country-blocked').removeClass('com-rsfirewall-hidden')
		} else if ((element.target.value == 'US' || element.target.value == 'checkall' || element.target.value == 'NA') && !element.target.checked) {
			RSFirewall.$('#us-country-blocked').addClass('com-rsfirewall-hidden');
		}
	});
});

/* Database */
RSFirewall.Database = {};
RSFirewall.Database.Check = {
	unhide     : function (item) {
		return RSFirewall.$(item).removeClass('com-rsfirewall-hidden');
	},
	ignored    : false,
	tables     : [],
	tablesNum  : 0,
	table      : '',
	content    : '',
	prefix     : '',
	startCheck : function () {
		this.table = RSFirewall.$('#' + this.prefix + '-table');
		this.content = RSFirewall.$('#' + this.prefix);
		if (!this.tables.length) {
			return false;
		}

		this.unhide(this.content);
		this.content.hide().show('fast', function () {
			RSFirewall.Database.Check.stepCheck(0);
		});
	},
	stopCheck  : function () {

	},
	setProgress: function (index) {
		if (RSFirewall.$('#' + this.prefix + '-progress .com-rsfirewall-bar').length > 0) {
			var currentProgress = (100 / this.tablesNum) * index;
			RSFirewall.$('#' + this.prefix + '-progress .com-rsfirewall-bar').css('width', currentProgress + '%').text(parseInt(currentProgress) + '%');
		}
	},
	stepCheck  : function (index) {
		this.setProgress(index);
		if (!this.tables || !this.tables.length) {
			this.stopCheck();
			return false;
		}

		this.unhide(this.table.find('tr')[index + 1]);

		var table = this.tables.pop();
		RSFirewall.$.ajax({
			type      : 'POST',
			url       : 'index.php?option=com_rsfirewall',
			data      : {
				task : 'dbcheck.optimize',
				table: table,
				sid  : Math.random()
			},
			beforeSend: function () {
				RSFirewall.addLoading(RSFirewall.$('#result' + index));
			},
			success   : function (data) {
				RSFirewall.removeLoading();
				RSFirewall.$('#result' + index).html(data);
				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.Database.Check.stepCheck(index + 1)
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.Database.Check.stepCheck(index + 1);
				}
			}
		});
	}
};

/* System */
RSFirewall.System = {};
RSFirewall.Retries = 0;
RSFirewall.MaxRetries = 10;
RSFirewall.RetryTimeout = 10;
RSFirewall.System.Check = {
	unhide           : function (item) {
		return RSFirewall.$(item).removeClass('com-rsfirewall-hidden');
	},
	content          : null,
	table            : null,
	steps            : [],
	currentStep      : '',
	prefix           : '',
	fix              : function (step, currentButton) {
		var parent = RSFirewall.$(currentButton).parents('td');

		var data = {
			task: 'fix.' + step,
			sid : Math.random()
		};

		if (parent.find('.com-rsfirewall-loader-wrapper').length > 0) {
			var loaderWrapper = parent.find('.com-rsfirewall-loader-wrapper');
		} else {
			var loaderWrapper = RSFirewall.$('<span class="com-rsfirewall-loader-wrapper"></span>');
			loaderWrapper.insertAfter(currentButton);
		}

		loaderWrapper.removeClass('com-rsfirewall-ok com-rsfirewall-not-ok com-rsfirewall-error').empty();

		if (step == 'fixAdminUser') {
			data.username = RSFirewall.$('#com-rsfirewall-new-username').val();
		} else if (step == 'fixHashes') {
			data.files = [];
			RSFirewall.$('input[name="hashes[]"]:checked').each(function () {
				data.files.push(RSFirewall.$(this).val());
			});
			data.flags = [];
			RSFirewall.$('input[name="hash_flags[]"]').each(function () {
				data.flags.push(RSFirewall.$(this).val());
			});
		} else if (step == 'ignoreFiles') {
			data.files = [];
			RSFirewall.$('input[name="ignorefiles[]"]:checked').each(function () {
				data.files.push(RSFirewall.$(this).val());
			});
		} else if (step == 'fixFolderPermissions') {
			data.folders = [];
			// adjust the limit
			var limit = this.limit;
			if (RSFirewall.$('input[name="folders[]"]:checked').length < this.limit) {
				limit = RSFirewall.$('input[name="folders[]"]:checked').length;
			}
			// add the folders to the POST array
			for (var i = 0; i < limit; i++) {
				data.folders.push(RSFirewall.$(RSFirewall.$('input[name="folders[]"]:checked')[i]).val());
			}

			// how many items are left?
			loaderWrapper.text(Joomla.JText._('COM_RSFIREWALL_ITEMS_LEFT').replace('%d', RSFirewall.$('input[name="folders[]"]:checked').length));

			// stop if there are no folders to process
			if (data.folders.length == 0) {
				// show the message
				loaderWrapper.html(Joomla.JText._('COM_RSFIREWALL_FIX_FOLDER_PERMISSIONS_DONE'));
				loaderWrapper.addClass('com-rsfirewall-ok');
				RSFirewall.$(currentButton).remove();
				return;
			}
		} else if (step == 'fixFilePermissions') {
			data.files = [];
			// adjust the limit
			var limit = this.limit;
			if (RSFirewall.$('input[name="files[]"]:checked').length < this.limit) {
				limit = RSFirewall.$('input[name="files[]"]:checked').length;
			}
			// add the files to the POST array
			for (var i = 0; i < limit; i++) {
				data.files.push(RSFirewall.$(RSFirewall.$('input[name="files[]"]:checked')[i]).val());
			}

			// how many items are left?
			loaderWrapper.text(Joomla.JText._('COM_RSFIREWALL_ITEMS_LEFT').replace('%d', RSFirewall.$('input[name="files[]"]:checked').length));

			// stop if there are no files to process
			if (data.files.length == 0) {
				// show the message
				loaderWrapper.html(Joomla.JText._('COM_RSFIREWALL_FIX_FILE_PERMISSIONS_DONE'));
				loaderWrapper.addClass('com-rsfirewall-ok');
				RSFirewall.$(currentButton).remove();
				return;
			}
		}

		RSFirewall.$.ajax({
			converters: {
				"text json": RSFirewall.parseJSON
			},
			dataType  : 'json',
			type      : 'POST',
			url       : 'index.php?option=com_rsfirewall',
			data      : data,
			beforeSend: function () {
				RSFirewall.addLoading(loaderWrapper);
				RSFirewall.$(currentButton).hide();
			},
			error     : function (jqXHR, textStatus, errorThrown) {
				RSFirewall.removeLoading();
				RSFirewall.$(currentButton).show();

				loaderWrapper.addClass('com-rsfirewall-error');
				loaderWrapper.html(Joomla.JText._('COM_RSFIREWALL_ERROR_FIX') + jqXHR.status + ' ' + errorThrown);
			},
			success   : function (json) {
				RSFirewall.removeLoading();
				RSFirewall.$(currentButton).show();

				if (json.success == true) {
					if (RSFirewall.System.Check.parseFixDetails(step, json, loaderWrapper, currentButton)) {
						// returning true means that we need to skip what's below
						return;
					}

					if (typeof json.data.result != 'undefined') {
						if (json.data.result == true) {
							loaderWrapper.addClass('com-rsfirewall-ok');
							RSFirewall.$(currentButton).remove();
						} else {
							loaderWrapper.addClass('com-rsfirewall-not-ok');
						}
					}
					if (typeof json.data.message != 'undefined') {
						loaderWrapper.html(json.data.message);
					}

				} else {
					loaderWrapper.addClass('com-rsfirewall-error');
					if (typeof json.data.message != 'undefined') {
						loaderWrapper.html(json.data.message);
					}
				}
			}
		});
	},
	setProgress      : function (index) {
		if (RSFirewall.$('#' + this.prefix + '-progress .com-rsfirewall-bar').length > 0) {
			var currentProgress = (100 / this.steps.length) * index;
			RSFirewall.$('#' + this.prefix + '-progress .com-rsfirewall-bar').css('width', currentProgress + '%').text(parseInt(currentProgress) + '%');
		}
	},
	stopCheck        : function () {
		// overwritten
	},
	stepCheck        : function (index, more_data) {
		this.setProgress(index);
		if (typeof(this.steps[index]) == 'undefined') {
			if (typeof this.stopCheck == 'function') {
				this.stopCheck();
			}
			return;
		}

		trindex = index > 0 ? index * 2 : 0;

		var currentRow = RSFirewall.$(this.table.find('tbody tr.com-rsfirewall-table-row')[trindex]);
		var currentText = RSFirewall.$(currentRow.find('td span')[0]);
		var currentResult = RSFirewall.$(currentRow.find('td span')[1]);
		var currentDetailsRow = RSFirewall.$(this.table.find('tbody tr.com-rsfirewall-table-row')[trindex + 1]);
		var currentDetails = RSFirewall.$(currentDetailsRow.children('td')[0]);
		var currentDetailsButton = RSFirewall.$(this.table.find('.com-rsfirewall-details-button')[index]);
		var currentStep = this.steps[index];
		this.currentStep = currentStep;

		this.unhide(currentRow);

		default_data = {
			task: 'check.' + currentStep,
			sid : Math.random()
		};
		if (more_data) {
			for (var key in more_data)
				default_data[key] = more_data[key];
		}

		RSFirewall.$.ajax({
			converters: {
				"text json": RSFirewall.parseJSON
			},
			dataType  : 'json',
			type      : 'POST',
			url       : 'index.php?option=com_rsfirewall',
			data      : default_data,
			beforeSend: function () {
				RSFirewall.addArrow(currentText);
				RSFirewall.addLoading(currentResult);
			},
			error     : function (jqXHR, textStatus, errorThrown) {
				if (currentStep == 'checkSignatures')
				{
					// Retry after 10 seconds if the server firewall interfered
					// Max 10 retries
					if (RSFirewall.Retries < RSFirewall.MaxRetries)
					{
						RSFirewall.Retries++;
						currentResult.html(Joomla.JText._('COM_RSFIREWALL_ERROR_CHECK_RETRYING'));
						setTimeout(function () {
							if (typeof RSFirewall.next_file != 'undefined')
							{
								RSFirewall.System.Check.stepCheck(index, {'file': RSFirewall.next_file});
							}
							else
							{
								RSFirewall.System.Check.stepCheck(index);
							}
						}, parseFloat(RSFirewall.RetryTimeout * 1000));
						
						return;
					}
				}
				currentResult.addClass('com-rsfirewall-error');
				currentResult.html(Joomla.JText._('COM_RSFIREWALL_ERROR_CHECK') + jqXHR.status + ' ' + errorThrown);

				RSFirewall.removeArrow();
				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.System.Check.stepCheck(index + 1)
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.System.Check.stepCheck(index + 1);
				}
			},
			success   : function (json) {
				RSFirewall.removeArrow();
				if (json.success == true) {
					if (typeof json.data.message != 'undefined') {
						currentResult.html(json.data.message);
					}
					if (typeof json.data.result != 'undefined') {
						currentResult.addClass(json.data.result == true ? 'com-rsfirewall-ok' : 'com-rsfirewall-not-ok');
						// show the button if we need to provide details
						if (json.data.result == false) {
							RSFirewall.System.Check.unhide(currentDetailsButton);
						}
					}

					// a little hack to stop going to the next step
					// if this step requires extra ajax calls
					if (RSFirewall.System.Check.parseCheckDetails(currentStep, json, currentDetails, currentResult, currentDetailsButton)) {
						return;
					}
				} else {
					if (typeof json.data.message != 'undefined') {
						if (currentStep == 'checkCoreFilesIntegrity') {
							currentResult.addClass('com-rsfirewall-not-ok');
						} else {
							currentResult.addClass('com-rsfirewall-error');
						}
						currentResult.html(Joomla.JText._('COM_RSFIREWALL_ERROR_CHECK') + json.data.message);
					}
				}
				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.System.Check.stepCheck(index + 1)
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.System.Check.stepCheck(index + 1);
				}
			}
		});
	},
	startCheck       : function () {
		this.table = RSFirewall.$('#' + this.prefix + '-table');
		this.content = RSFirewall.$('#' + this.prefix);

		var currentTable = this.table;

		// make buttons clickable
		this.table.find('.com-rsfirewall-details-button').each(function (i, el) {
			RSFirewall.$(el).click(function () {
				var row = currentTable.find('tbody tr.com-rsfirewall-table-row')[i * 2 + 1];
				if (RSFirewall.$(row).hasClass('com-rsfirewall-hidden')) {
					RSFirewall.System.Check.unhide(row);
					RSFirewall.$(row).hide();
				}
				RSFirewall.$(row).toggle();
				RSFirewall.$(this).children('span').toggleClass(function (j, theClass) {
					RSFirewall.$(this).removeAttr('class');
					if (theClass == 'expand')
						return 'shrink';
					return 'expand';
				});
			});
		});

		this.unhide(this.content);
		this.content.hide().show('fast', function () {
			RSFirewall.System.Check.stepCheck(0);
		});
	},
	/* custom details parsing rules */
	parseFixDetails  : function (step, json, wrapper, button) {
		if (step == 'fixPHP') {
			if (json.data.contents) {
				RSFirewall.$('#com-rsfirewall-php-ini').text(json.data.contents);
				this.unhide('#com-rsfirewall-php-ini-wrapper');
				RSFirewall.$('#com-rsfirewall-php-ini-wrapper').hide().fadeIn('slow');
			}
		} else if (step == 'fixFolderPermissions') {
			if (json.data.results) {
				for (var i = 0; i < json.data.results.length; i++) {
					var result = RSFirewall.$('<span>', {'class': json.data.results[i] == 1 ? 'com-rsfirewall-ok' : 'com-rsfirewall-not-ok'});
					RSFirewall.$(RSFirewall.$('input[name="folders[]"]:checked')[0]).replaceWith(result);
				}
				RSFirewall.System.Check.fix(step, button);
				return true;
			}
		} else if (step == 'fixFilePermissions') {
			if (json.data.results) {
				for (var i = 0; i < json.data.results.length; i++) {
					var result = RSFirewall.$('<span>', {'class': json.data.results[i] == 1 ? 'com-rsfirewall-ok' : 'com-rsfirewall-not-ok'});
					RSFirewall.$(RSFirewall.$('input[name="files[]"]:checked')[0]).replaceWith(result);
				}
				RSFirewall.System.Check.fix(step, button);
				return true;
			}
		}
	},
	parseCheckDetails: function (step, json, details, result, detailsButton) {

		if (step == 'checkCoreFilesIntegrity') {
			if (RSFirewall.$('#com-rsfirewall-hashes').length == 0) {
				// let's create the table
				var table = RSFirewall.$('<table>', {
					'class': 'com-rsfirewall-colored-table',
					'id'   : 'com-rsfirewall-hashes'
				});
				details.append(table);
			}

			var table = RSFirewall.$('#com-rsfirewall-hashes');

			if (json.data.ignored) {
				this.ignored = true;
			}

			if (json.data.files && json.data.files.length > 0) {
				var j = table.find('tr').length;

				for (var i = 0; i < json.data.files.length; i++) {
					var file = json.data.files[i];

					var tr = RSFirewall.$('<tr>', {
						'class': j % 2 ? 'blue' : 'yellow',
						'id'   : 'hash' + j

					});
					var td_checkbox = RSFirewall.$('<td>', {
						width : '1%',
						nowrap: 'nowrap'
					});
					var checkbox = RSFirewall.$('<input />', {
						type   : 'checkbox',
						checked: true,
						name   : 'hashes[]',
						value  : file.path,
						id     : 'checkboxHash' + j
					});
					var hidden = RSFirewall.$('<input />', {
						type: 'hidden',
						name: 'hash_flags[]'
					});
					var label = RSFirewall.$('<label>', {'for': 'checkboxHash' + j}).text(file.path);
					var $hid = 'hash' + j;

					var downloadBtn = RSFirewall.$('<button type="button" style="margin-left:10px; margin-right:10px;" class="rsfirewall-download-original com-rsfirewall-button" onclick="RSFirewall.diffs.download(\'' + file.path + '\', \'' + $hid + '\' , window.document)"></button>')
						.text(Joomla.JText._('COM_RSFIREWALL_DOWNLOAD_ORIGINAL'));

					if (file.type == 'wrong') {
						if (typeof file.time == 'string')
						{
							var td_type = RSFirewall.$('<td>').text(Joomla.JText._('COM_RSFIREWALL_FILE_HAS_BEEN_MODIFIED_AGO').replace('%s', file.time));
						}
						else
						{
							var td_type = RSFirewall.$('<td>').text(Joomla.JText._('COM_RSFIREWALL_FILE_HAS_BEEN_MODIFIED'));
						}
						var btn = RSFirewall.$('<button type="button" id="diff' + $hid + '" class="com-rsfirewall-button"></button>')
							.attr('href', 'index.php?option=com_rsfirewall&view=diff&tmpl=component&hid=hash' + j + '&file=' + encodeURIComponent(file.path))
							.text(Joomla.JText._('COM_RSFIREWALL_VIEW_DIFF'))
							.click(function () {
								window.open(RSFirewall.$(this).attr('href'), 'diffWindow', 'width=800, height=600, left=50%, location=0, menubar=0, resizable=1, scrollbars=1, toolbar=0, titlebar=1');
							});

						td_type.append(btn);
						td_type.append(downloadBtn);

					} else if (file.type == 'missing') {
						hidden.val('M');
						var td_type = RSFirewall.$('<td>').text(Joomla.JText._('COM_RSFIREWALL_FILE_IS_MISSING'));
						td_type.append(downloadBtn);
					}

					var td_path = RSFirewall.$('<td>').append(label);

					table.append(tr.append(td_checkbox.append(checkbox, hidden), td_path, td_type));
					j++;
				}

			}

			// we haven't reached the end of the file so do another ajax call
			if (json.data.fstart) {
				var stepIndex = this.steps.indexOf(this.currentStep);

				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.System.Check.stepCheck(stepIndex, {'fstart': json.data.fstart})
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.System.Check.stepCheck(stepIndex, {'fstart': json.data.fstart});
				}
				// returning true means that this step hasn't finished and we don't need to go to the next step
				return true;
			} else {
				if (table.find('tr').length > 0) {
					var $html = Joomla.JText._('COM_RSFIREWALL_HASHES_INCORRECT').replace('%d', '<span id="hashCount">' + table.find('tr').length + '</span> ');
					result.html($html).addClass('com-rsfirewall-not-ok');
					RSFirewall.System.Check.unhide(detailsButton);
				} else {
					result.text(Joomla.JText._('COM_RSFIREWALL_HASHES_CORRECT')).addClass('com-rsfirewall-ok');
				}
				// returning false means that this step has finished and we need to go to the next step

				if (this.ignored) {
					RSFirewall.$('#com-rsfirewall-ignore-files-button').removeClass('com-rsfirewall-hidden');
				}
				return false;
			}

		} else if (step == 'checkConfigurationIntegrity') {
			// let's create the table
			var table = RSFirewall.$('<table>', {'class': 'com-rsfirewall-colored-table'});

			// and populate it
			if (json.data.details) {
				for (var i = 0; i < json.data.details.length; i++) {
					var detail = json.data.details[i];
					var tr = RSFirewall.$('<tr>', {'class': i % 2 ? 'blue' : 'yellow'});
					var td_line = RSFirewall.$('<td>').html(Joomla.JText._('COM_RSFIREWALL_CONFIGURATION_LINE').replace('%d', detail.line));
					var td_code = RSFirewall.$('<td>').text(detail.code);

					table.append(tr.append(td_line, td_code));
				}
			}

			details.append(table);
		} else if (step == 'checkAdminPasswords') {
			// let's create the table
			var table = RSFirewall.$('<table>', {'class': 'com-rsfirewall-colored-table'});

			var header = RSFirewall.$('<tr>');
			var td_user = RSFirewall.$('<th>').text(Joomla.JText._('COM_RSFIREWALL_USERNAME'));
			var td_pass = RSFirewall.$('<th>').text(Joomla.JText._('COM_RSFIREWALL_PASSWORD'));
			table.append(header.append(td_user, td_pass));

			// and populate it
			if (json.data.details) {
				for (var i = 0; i < json.data.details.length; i++) {
					var detail = json.data.details[i];
					var tr = RSFirewall.$('<tr>', {'class': i % 2 ? 'blue' : 'yellow'});
					var td_user = RSFirewall.$('<td>').html(detail.username);
					var td_pass = RSFirewall.$('<td>').text(detail.password);

					table.append(tr.append(td_user, td_pass));
				}
			}

			details.append(table);
		} else if (step == 'checkTemporaryFiles') {
			if (json.data.details) {
				var p = RSFirewall.$('<p>');
				details.append(p.append(json.data.details.message));

				// let's create the table
				var table = RSFirewall.$('<table>', {'class': 'com-rsfirewall-colored-table'});
				var j = 0;
				var limit = 10;

				json.data.details.folders = RSFirewall.$.map(json.data.details.folders, function (el) {
					return el
				});
				json.data.details.files = RSFirewall.$.map(json.data.details.files, function (el) {
					return el
				});

				for (var i = 0; i < json.data.details.folders.length; i++) {
					var folder = json.data.details.folders[i];
					var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
					var td = RSFirewall.$('<td>').text('[' + folder + ']');

					table.append(tr.append(td));
					j++;
					if (i >= limit) {
						var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
						var td = RSFirewall.$('<td>').append(RSFirewall.$('<em>').text(Joomla.JText._('COM_RSFIREWALL_MORE_FOLDERS').replace('%d', (json.data.details.folders.length - limit))));
						table.append(tr.append(td));
						j++;
						break;
					}
				}
				for (var i = 0; i < json.data.details.files.length; i++) {
					var file = json.data.details.files[i];
					var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
					var td = RSFirewall.$('<td>').text(file);

					table.append(tr.append(td));
					j++;
					if (i >= limit) {
						var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
						var td = RSFirewall.$('<td>').append(RSFirewall.$('<em>').text(Joomla.JText._('COM_RSFIREWALL_MORE_FILES').replace('%d', (json.data.details.files.length - limit))));
						table.append(tr.append(td));
						j++;
						break;
					}
				}

				details.append(table);
			}
		} else if (step == 'checkDisableFunctions') {
			if (json.data.details) {
				var p = RSFirewall.$('<p>');
				details.append(p.append(json.data.details));
			}
			if (this.table.find('.com-rsfirewall-not-ok').length > 0) {
				this.unhide(RSFirewall.$('#com-rsfirewall-server-configuration-fix'));
			}
		} else if (step == 'checkFolderPermissions') {
			if (RSFirewall.$('#com-rsfirewall-folders').length == 0) {
				// let's create the table
				var table = RSFirewall.$('<table>', {
					'class': 'com-rsfirewall-colored-table',
					'id'   : 'com-rsfirewall-folders'
				});
				details.append(table);
			}

			var table = RSFirewall.$('#com-rsfirewall-folders');

			if (json.data.stop) {
				// stop scanning
				if (table.find('tr').length > 0) {
					result.text(Joomla.JText._('COM_RSFIREWALL_FOLDER_PERMISSIONS_INCORRECT').replace('%d', table.find('tr').length)).addClass('com-rsfirewall-not-ok');
					RSFirewall.System.Check.unhide(detailsButton);
				} else {
					result.text(Joomla.JText._('COM_RSFIREWALL_FOLDER_PERMISSIONS_CORRECT')).addClass('com-rsfirewall-ok');
				}

				// finished
				return false;
			} else {
				if (json.data.folders && json.data.folders.length > 0) {
					var j = table.find('tr').length;
					for (var i = 0; i < json.data.folders.length; i++) {
						var folder = json.data.folders[i];

						var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
						var td_checkbox = RSFirewall.$('<td>', {
							width : '1%',
							nowrap: 'nowrap'
						});
						var checkbox = RSFirewall.$('<input />', {
							type   : 'checkbox',
							checked: true,
							name   : 'folders[]',
							value  : folder.path,
							id     : 'checkboxFolder' + j
						});
						var label = RSFirewall.$('<label>', {'for': 'checkboxFolder' + j}).text(folder.path);
						var td_path = RSFirewall.$('<td>').append(label);
						var td_perms = RSFirewall.$('<td>').text(folder.perms);

						table.append(tr.append(td_checkbox.append(checkbox), td_path, td_perms));
						j++;
					}
				}

				if (json.data.next_folder) {
					var stepIndex = this.steps.indexOf(this.currentStep);

					var next_folder = json.data.next_folder;
					var next_folder_stripped = json.data.next_folder_stripped;
					result.text(Joomla.JText._('COM_RSFIREWALL_PLEASE_WAIT_WHILE_BUILDING_DIRECTORY_STRUCTURE').replace('%s', next_folder_stripped));

					if (RSFirewall.requestTimeOut.Seconds != 0) {
						setTimeout(function () {
							RSFirewall.System.Check.stepCheck(stepIndex, {'folder': next_folder})
						}, RSFirewall.requestTimeOut.Milliseconds());
					}
					else {
						RSFirewall.System.Check.stepCheck(stepIndex, {'folder': next_folder});
					}

					// not finished
					return true;
				}
			}
		} else if (step == 'checkFilePermissions') {
			if (RSFirewall.$('#com-rsfirewall-files').length == 0) {
				// let's create the table
				var table = RSFirewall.$('<table>', {
					'class': 'com-rsfirewall-colored-table',
					'id'   : 'com-rsfirewall-files'
				});
				details.append(table);
			}

			var table = RSFirewall.$('#com-rsfirewall-files');

			if (json.data.files && json.data.files.length > 0) {
				var j = table.find('tr').length;
				for (var i = 0; i < json.data.files.length; i++) {
					var file = json.data.files[i];

					var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
					var td_checkbox = RSFirewall.$('<td>', {
						width : '1%',
						nowrap: 'nowrap'
					});
					var checkbox = RSFirewall.$('<input />', {
						type   : 'checkbox',
						checked: true,
						name   : 'files[]',
						value  : file.path,
						id     : 'checkboxFile' + j
					});
					var label = RSFirewall.$('<label>', {'for': 'checkboxFile' + j}).text(file.path);
					var td_path = RSFirewall.$('<td>').append(label);
					var td_perms = RSFirewall.$('<td>').text(file.perms);

					table.append(tr.append(td_checkbox.append(checkbox), td_path, td_perms));
					j++;
				}
			}

			if (json.data.next_file) {
				var stepIndex = this.steps.indexOf(this.currentStep);

				var next_file = json.data.next_file;
				var next_file_stripped = json.data.next_file_stripped;
				result.text(Joomla.JText._('COM_RSFIREWALL_PLEASE_WAIT_WHILE_BUILDING_FILE_STRUCTURE').replace('%s', next_file_stripped));

				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.System.Check.stepCheck(stepIndex, {'file': next_file})
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.System.Check.stepCheck(stepIndex, {'file': next_file});
				}

				// not finished
				return true;
			} else {
				if (json.data.stop) {
					// stop scanning
					if (table.find('tr').length > 0) {
						result.text(Joomla.JText._('COM_RSFIREWALL_FILE_PERMISSIONS_INCORRECT').replace('%d', table.find('tr').length)).addClass('com-rsfirewall-not-ok');
						RSFirewall.System.Check.unhide(detailsButton);
					} else {
						result.text(Joomla.JText._('COM_RSFIREWALL_FILE_PERMISSIONS_CORRECT')).addClass('com-rsfirewall-ok');
					}

					// finished
					return false;
				}
			}
		} else if (step == 'checkSignatures') {
			if (RSFirewall.$('#com-rsfirewall-signatures').length == 0) {
				// let's create the table
				var table = RSFirewall.$('<table>', {
					'class': 'com-rsfirewall-colored-table',
					'id'   : 'com-rsfirewall-signatures'
				});
				details.append(table);
			}

			var table = RSFirewall.$('#com-rsfirewall-signatures');

			if (json.data.files && json.data.files.length > 0) {
				var j = table.find('tr').length;
				for (var i = 0; i < json.data.files.length; i++) {
					var file = json.data.files[i];

					var tr = RSFirewall.$('<tr>', {'class': j % 2 ? 'blue' : 'yellow'});
					var td_checkbox = RSFirewall.$('<td>', {
						valign: 'top',
						width : '1%',
						nowrap: 'nowrap'
					});
					var checkbox = RSFirewall.$('<input />', {
						valign : 'top',
						width  : '19%',
						type   : 'checkbox',
						checked: true,
						name   : 'ignorefiles[]',
						value  : file.path,
						id     : 'checkboxFile' + j
					});
					var td_path = RSFirewall.$('<td valign="top" width="20%">').text(file.path);
					
					if (typeof file.time == 'string')
					{
						td_path.html(td_path.html() + '<br /><small>' + Joomla.JText._('COM_RSFIREWALL_FILE_HAS_BEEN_MODIFIED_AGO').replace('%s', file.time) + '</small>');
					}
					
					var td_reason = RSFirewall.$('<td valign="top" width="20%">', {'nowrap': 'nowrap'}).text(file.reason);
					var td_match = RSFirewall.$('<td valign="top" width="40%">').addClass('broken-word');
					if (file.match) {
						var td_match = td_match.text(file.match.substring(0, 355));
					}

					var btn = RSFirewall.$('<button type="button" class="com-rsfirewall-button pull-right"></button>')
						.attr('href', 'index.php?option=com_rsfirewall&view=file&tmpl=component&file=' + encodeURIComponent(file.path))
						.text(Joomla.JText._('COM_RSFIREWALL_VIEW_FILE'))
						.click(function () {
							window.open(RSFirewall.$(this).attr('href'), 'fileWindow', 'width=800, height=600, left=50%, location=0, menubar=0, resizable=1, scrollbars=1, toolbar=0, titlebar=1');
						});

					td_match.append(btn);

					table.append(tr.append(td_checkbox.append(checkbox), td_path, td_reason, td_match));
					j++;
				}
			}

			if (json.data.next_file) {
				var stepIndex = this.steps.indexOf(this.currentStep);

				var next_file = json.data.next_file;
				var next_file_stripped = json.data.next_file_stripped;
				result.text(Joomla.JText._('COM_RSFIREWALL_PLEASE_WAIT_WHILE_BUILDING_FILE_STRUCTURE').replace('%s', next_file_stripped));
				
				RSFirewall.next_file = next_file;

				if (RSFirewall.requestTimeOut.Seconds != 0) {
					setTimeout(function () {
						RSFirewall.System.Check.stepCheck(stepIndex, {'file': next_file})
					}, RSFirewall.requestTimeOut.Milliseconds());
				}
				else {
					RSFirewall.System.Check.stepCheck(stepIndex, {'file': next_file});
				}

				// not finished
				return true;
			} else {
				if (json.data.stop) {
					// stop scanning
					if (table.find('tr').length > 0) {
						result.text(Joomla.JText._('COM_RSFIREWALL_MALWARE_PLEASE_REVIEW_FILES').replace('%d', table.find('tr').length)).addClass('com-rsfirewall-not-ok');
						RSFirewall.System.Check.unhide(detailsButton);
					} else {
						result.text(Joomla.JText._('COM_RSFIREWALL_NO_MALWARE_FOUND')).addClass('com-rsfirewall-ok');
					}

					// finished
					return false;
				}
			}
		} else {
			if (json.data.details) {
				var p = RSFirewall.$('<p>');
				details.append(p.append(json.data.details));
			}
		}
	}
};

RSFirewall.Grade = {
	create: function () {
		// compute the grade value
		// each failed step removes 2 from the total grade
		var grade = 100 - RSFirewall.$('.com-rsfirewall-count span.com-rsfirewall-not-ok').length * 2;

		var hasErrors = RSFirewall.$('.com-rsfirewall-error').length > 0;

		// If errors occured, grade is 0 and change the text.
		if (hasErrors) {
			grade = 0;
			RSFirewall.$('#com-rsfirewall-grade p').html('<strong class="com-rsfirewall-error">' + Joomla.JText._('COM_RSFIREWALL_GRADE_NOT_FINISHED') + '</strong><br />' + Joomla.JText._('COM_RSFIREWALL_GRADE_NOT_FINISHED_DESC'));
		}

		RSFirewall.$('#com-rsfirewall-grade input').val(grade);

		// green
		RSFirewall.$("#com-rsfirewall-grade input").knob({
			'min'               : 0,
			'max'               : 100,
			'readOnly'          : true,
			'width'             : 90,
			'height'            : 90,
			'inputColor'        : '#000000',
			'dynamicDraw'       : true,
			'thickness'         : 0.3,
			'tickColorizeValues': true,
			'change'            : function (v) {
				var grade = v;
				if (grade <= 75) {
					color = '#ED7A53';
				} else if (grade <= 90) {
					color = '#88BBC8';
				} else if (grade <= 100) {
					color = '#9FC569';
				}
				this.fgColor = color;
			}
		});
		RSFirewall.$("#com-rsfirewall-grade").fadeIn('slow');

		// Save if no errors encountered.
		if (!hasErrors) {
			this.save();
		}
	},
	save  : function () {
		RSFirewall.$.ajax({
			type: 'POST',
			url : 'index.php?option=com_rsfirewall',
			data: {
				task : 'check.saveGrade',
				grade: RSFirewall.$('#com-rsfirewall-grade input').val(),
				sid  : Math.random()
			}
		});
	}
};

RSFirewall.Status = {
	errorContainer: '',

	Error: function (display, type, error) {
		this.errorContainer.empty();
		if (display && typeof error != 'undefined') {
			this.errorContainer.addClass('com-rsfirewall-log-' + type);
			var heading = RSFirewall.$('<h3>').append(Joomla.JText._('COM_RSFIREWALL_LOG_' + type.toUpperCase()));
			this.errorContainer.append(heading);
			this.errorContainer.append(error);
			this.errorContainer.show();
		} else {
			this.errorContainer.removeClass('com-rsfirewall-log-error', 'com-rsfirewall-log-warning');
			this.errorContainer.hide();
		}
	},

	Change: function (id, listId, type, element) {
		var data = {
			task: 'logs.' + type,
			id  : id
		};
		if (listId != null) {
			data.listId = listId;
		}

		RSFirewall.$.ajax({
			converters: {
				"text json": RSFirewall.parseJSON
			},
			dataType  : 'json',
			type      : 'POST',
			url       : 'index.php?option=com_rsfirewall&task',
			data      : data,
			beforeSend: function () {
				RSFirewall.addLoading(element, 'after');
				RSFirewall.$(element).hide();

				// remove previous errors
				RSFirewall.Status.Error(false);
			},
			error     : function (jqXHR, textStatus, errorThrown) {
				RSFirewall.removeLoading();
				RSFirewall.$(element).show();

				// set the error
				RSFirewall.Status.Error(true, 'error', jqXHR.status + ' ' + errorThrown);
			},
			success   : function (json) {
				RSFirewall.removeLoading();
				if (json.success) {
					if (json.data.result) {
						// all ok
						if (json.data.type) {
							// change the button from where we triggered the action
							RSFirewall.Status.MakeButton(element, id, null, 0);

							// change the buttons for all other rows that contains the same ip
							RSFirewall.Status.ChangeSameIp(id, null, 0);
						} else {
							// change the button from where we triggered the action
							RSFirewall.Status.MakeButton(element, id, json.data.listId, 1);

							// change the buttons for all other rows that contains the same ip
							RSFirewall.Status.ChangeSameIp(id, json.data.listId, 1);
						}
						RSFirewall.$(element).remove();
					} else {
						// errors
						RSFirewall.$(element).show();

						// set the warning
						RSFirewall.Status.Error(true, 'warning', json.data.error);
					}
				}
			}
		});
	},

	MakeButton: function (element, id, listId, type) {
		var button;
		if (type) {
			button = '<button type="button" onclick="RSFirewall.Status.Change(' + id + ', ' + listId + ', \'unblockajax\', this)" class="btn btn-small">' + Joomla.JText._('COM_RSFIREWALL_UNBLOCK') + '</button>';
		}
		else {
			button = '<button type="button" onclick="RSFirewall.Status.Change(' + id + ', null, \'blockajax\', this)" class="btn  btn-danger btn-small">' + Joomla.JText._('COM_RSFIREWALL_BLOCK') + '</button>';
		}
		RSFirewall.$(element).after(button);
	},

	ChangeSameIp: function (id, listId, type) {
		// get the ip address that we need to change the button
		var ip = RSFirewall.$('#rsf-log-' + id).find('.rsf-ip-address').html().trim();

		// parse the table to find the same ip entries
		RSFirewall.$('.adminlist .rsf-entry').each(function () {
			var ipFound;
			if (ipFound = RSFirewall.$(this).find('.rsf-ip-address').html().trim()) {
				if (ipFound == ip) {
					RSFirewall.$(this).find('.rsf-status').empty();

					if (type) {
						button = '<button type="button" onclick="RSFirewall.Status.Change(' + id + ', ' + listId + ', \'unblockajax\', this)" class="btn btn-small">' + Joomla.JText._('COM_RSFIREWALL_UNBLOCK') + '</button>'
					} else {
						button = '<button type="button" onclick="RSFirewall.Status.Change(' + id + ', null, \'blockajax\', this)" class="btn  btn-danger btn-small">' + Joomla.JText._('COM_RSFIREWALL_BLOCK') + '</button>';
					}
					RSFirewall.$(this).find('.rsf-status').append(button);
				}
			}
		});

	}
};

/**
 * Function to download the original file from the remote server
 * and overwrite the one stored locally.
 *
 * @type {{download: RSFirewall.diffs.download}}
 */
RSFirewall.diffs = {
	download: function ($local, $hid, $window) {

		if (!confirm(Joomla.JText._('COM_RSFIREWALL_CONFIRM_OVERWRITE_LOCAL_FILE'))) {
			return false;
		}

		RSFirewall.$.ajax({
			type      : 'POST',
			dataType  : 'JSON',
			url       : 'index.php?option=com_rsfirewall',
			data      : {
				task     : 'diff.download',
				localFile: $local
			},
			beforeSend: function () {
				var $buttons = [];
				var $counter = RSFirewall.$('#' + $hid, $window).find('td').last();
				var $button = $counter.find('.rsfirewall-download-original');
				var $optional = RSFirewall.$('#replace-original');

				$buttons.push($button);
				if ($optional.length) {
					$buttons.push($optional);
				}

				RSFirewall.$.each($buttons, function () {
					RSFirewall.$(this).attr('disabled', 'true').addClass('btn-processing');
					RSFirewall.$(this).html('<span class="icon-refresh"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_PROCESSING"));
				});
			},
			success   : function (result) {
				var $hashCount = RSFirewall.$('#hashCount', $window);
				var $parent = $hashCount.parents('.com-rsfirewall-table-row.alt-row');
				var $counter = RSFirewall.$('#' + $hid, $window).find('td').last();
				var $oldValue = parseInt(RSFirewall.$('#hashCount', $window).html());
				var $button = $counter.find('.rsfirewall-download-original');
				var $optional = RSFirewall.$('#replace-original');
				var $diffButton = RSFirewall.$('#diff' + $hid, $window);

				var $buttons = [];

				$buttons.push($button);
				if ($optional.length) {
					$buttons.push($optional);
				}

				if (result.status == true) {
					$diffButton.remove();
					RSFirewall.$.each($buttons, function () {
						RSFirewall.$(this).removeClass('btn-processing').addClass('btn-success');
						RSFirewall.$(this).html('<span class="icon-checkmark-2"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_SUCCESS"));
					});


					if ($oldValue == 1) {
						$parent.find('.com-rsfirewall-not-ok').removeClass('com-rsfirewall-not-ok').addClass('com-rsfirewall-ok');
						$parent.find('.com-rsfirewall-ok').empty().append('<span>' + Joomla.JText._('COM_RSFIREWALL_HASHES_CORRECT') + '</span>');
					} else {
						$hashCount.html($oldValue - 1);
					}

				} else {
					RSFirewall.$.each($buttons, function () {
						RSFirewall.$(this).removeClass('btn-processing').addClass('btn-failed');
						RSFirewall.$(this).html('<span class="icon-cancel-circle"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_FAILED"));
					});
				}

				if ($optional.length) {
					RSFirewall.$('.rsfirewall-replace-original').append('<div class="alert alert-info">' + result.message + '</div>');
				}

				if ($counter.find('#' + $hid + '-message', $window).length) {
					RSFirewall.$('#' + $hid + '-message', $window).remove();
				}

				$counter.append('<span id="' + $hid + '-message">' + result.message + '</span>');
			}
		});
	}
};

RSFirewall.ignore = {
	remove: function ($id) {
		if (!confirm(Joomla.JText._('COM_RSFIREWALL_CONFIRM_UNIGNORE'))) {
			return false;
		}
		RSFirewall.$.ajax({
			type      : 'POST',
			dataType  : 'JSON',
			url       : 'index.php?option=com_rsfirewall',
			data      : {
				task         : 'ignored.removeFromIgnored',
				ignoredFileId: $id
			},
			beforeSend: function () {
				$button = RSFirewall.$('#removeIgnored' + $id);
				$button.attr('disabled', 'true').addClass('btn-processing');
				$button.html('<span class="icon-refresh"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_PROCESSING"));
			},
			success   : function (result) {
				$button = RSFirewall.$('#removeIgnored' + $id);

				if (result.status == true) {
					$button.removeClass('btn-processing').addClass('btn-success');
					$button.html('<span class="icon-checkmark-2"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_SUCCESS"));
					$button.parents('tr').hide('fast');

				} else {
					$button.removeClass('btn-processing').addClass('btn-failed');
					$button.html('<span class="icon-cancel-circle"></span> ' + Joomla.JText._("COM_RSFIREWALL_BUTTON_FAILED"));
				}
			}
		})
	}
};

RSFirewall.vmap = {
	/**
	 * Holds the LOCATION:THREATS object
	 */
	data         : null,
	/**
	 * The map DOM selector
	 */
	selector     : null,
	/**
	 * Constructor
	 *
	 * @param $id
	 */
	init         : function ($id) {
		/**
		 * Set the DOM selector
		 */
		this.selector = $id;
		/**
		 * Load the data using AJAX
		 */
		this.loadData();
	},
	/**
	 * Helper function
	 *
	 * Call action here:
	 *  - rsfirewall\admin\controllers\logs.php
	 *     - rsfirewall\admin\models\logs.php
	 *
	 *     returns an object ( success: bool | data: object( country code : encounters ) )
	 */
	loadData     : function () {
		var self = this;
		RSFirewall.$.ajax({
			type      : 'POST',
			dataType  : 'JSON',
			url       : 'index.php?option=com_rsfirewall',
			data      : {
				task: 'logs.getStatistics'
			},
			beforeSend: self.loadPreloader(self.selector),
			success   : function (result) {
				if (result.success) {
					jQuery('#rsf-overlay-region, #rsf-overlay-cube').fadeOut('fast', function () {
						jQuery('#rsf-overlay-region, #rsf-overlay-cube').remove();
					});
					self.data = result.data;
					self.renderMap();
				}
			}
		})
	},
	/**
	 * Create a pre
	 */
	loadPreloader: function (selector) {
		jQuery(selector).prepend('<div class="tpl-overlay" id="rsf-overlay-region"></div>');
		jQuery(selector).append('<div class="sk-folding-cube" id="rsf-overlay-cube"><div class="sk-cube1 sk-cube"></div><div class="sk-cube2 sk-cube"></div><div class="sk-cube4 sk-cube"></div><div class="sk-cube3 sk-cube"></div></div>');
	},
	/**
	 * Render the jQuery Vector Map
	 *
	 * Triggered only if the AJAX request was successful
	 */
	renderMap    : function () {
		var self = this;
		jQuery(this.selector).remove('.tpl-overlay, sk-folding-cube');
		/**
		 * Draw the map
		 */
		jQuery(this.selector).vectorMap(
			{
				map              : 'world_en',
				backgroundColor  : null,
				color            : '#ffffff',
				hoverOpacity     : 0.7,
				selectedColor    : '#666666',
				enableZoom       : true,
				values           : self.data,
				showTooltip      : true,
				scaleColors      : ['#F8C3C4', '#e8363a'],
				normalizeFunction: 'polynomial'
			}
		);
		/**
		 * Initiate the tooltips
		 */
		jQuery(this.selector).bind('labelShow.jqvmap',
			function (event, label, code) {
				var text = label.text();
				if (typeof self.data[code] != 'undefined') {
					label.text(text + ' : ' + self.data[code]);
				}
			}
		);
	}
};

RSFirewall.GeoIPDownload = function (element) {
	RSFirewall.$(element).attr('disabled', 'disabled');
	
	var GeoIPDownloadErrorHandler = function(message, url) {
		var $parent = RSFirewall.$(element).parent();

		$parent.append('<p><strong>' + message + '</p></strong>').hide().fadeIn();

        if (typeof url === 'string')
        {
            $parent.append('<p><strong>' + Joomla.JText._('COM_RSFIREWALL_GEOIP_DB_TRY_TO_DOWNLOAD_MANUALLY').replace(/%s/g, url) + '</strong></p>');
        }

		$parent.append('<p>' + Joomla.JText._('COM_RSFIREWALL_GEOIP_DB_CANNOT_DOWNLOAD') + '</p><p><input type="file" name="jform[geoip_upload][]"></p><p>' + Joomla.JText._('COM_RSFIREWALL_GEOIP_DB_CANNOT_DOWNLOAD_CONTINUED') + '</p>').hide().fadeIn();
		
		RSFirewall.$(element).fadeOut();
	};
	
	RSFirewall.$.ajax({
		type    : 'POST',
		url     : 'index.php?option=com_rsfirewall',
		dataType: 'json',
		data    : {
			'task': 'configuration.downloadGeoIPDatabase'
		},
		success: function (data, textStatus, jqXHR) {
			if (!data.success) {
				GeoIPDownloadErrorHandler(data.message, data.url);
			} else {
				if (!RSFirewall.$('.rsfirewall-geoip-works').length) {
					RSFirewall.$('#country_block .com-rsfirewall-tooltip').after('<div class="alert alert-success rsfirewall-geoip-works"><p>' + data.message + '</p></div>');
				}
				RSFirewall.$(document.getElementsByName('jform[blocked_continents][]')).removeAttr('disabled');
				RSFirewall.$(document.getElementsByName('jform[blocked_countries][]')).removeAttr('disabled');
				RSFirewall.$(document.getElementsByName('jform[blocked_countries_checkall][]')).removeAttr('disabled');
				
				RSFirewall.$(element).parents('.alert').remove();
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {			
			GeoIPDownloadErrorHandler(Joomla.JText._('COM_RSFIREWALL_DOWNLOAD_GEOIP_SERVER_ERROR').replace('%s', errorThrown));
		}
	})
}com_rsfirewall/js/password.js000064400000005535152177723720012415 0ustar00var RSFirewallPassword = {
	userOptions: [],
	addEvent: function(el, ev, func) {
		// el - element
		// ev - event
		// func - function to trigger
		
		if (typeof jQuery != 'undefined') {
			// jQuery is available
			if (ev == 'load') {
				jQuery(document).ready(func);
			} else if (ev == 'keyup') {
				jQuery(el).keyup(func);
			}
		} else {
			// no library is available, try adding manually
			if (el.addEventListener) {
				el.addEventListener(ev, func, false);
			} else if (el.attachEvent) {
				el.attachEvent('on' + ev, func);
			} else {
				if (ev == 'load') {
					el.onload = func;
				} else if (ev == 'keyup') {
					el.onkeyup = func;
				}
			}
		}
	},
	getEl: function(el) {
		return document.getElementsByName('jform[' + el + ']')[0];
	}
};

RSFirewallPassword.addEvent(window, 'load', function() {
	var field = RSFirewallPassword.getEl('password');
	
	var parent = field.parentNode;
	var container = document.createElement('p');
	parent.appendChild(container);
	
	RSFirewallPassword.addEvent(field, 'keyup', function() {
        var minLength       = parseInt(RSFirewallPassword.userOptions.minLength);
        var minIntegers     = parseInt(RSFirewallPassword.userOptions.minIntegers);
        var minSymbols      = parseInt(RSFirewallPassword.userOptions.minSymbols);
        var minUppercase    = parseInt(RSFirewallPassword.userOptions.minUppercase);
        var minLowercase    = parseInt(RSFirewallPassword.userOptions.minLowercase);
        var password		= field.value;
        var match;

        container.innerHTML = '';

        var messages = [];

        // Minimum length
        if (minLength > 0 && password.length < minLength) {
            messages.push(Joomla.JText._('COM_RSFIREWALL_PASSWORD_MIN_LENGTH').replace('%d', minLength));
        }

        // Minimum integers
        match = password.match(/[0-9]/g) || [];
        if (minIntegers > 0 && match.length < minIntegers) {
            messages.push(Joomla.JText._('COM_RSFIREWALL_PASSWORD_MIN_INTEGERS').replace('%d', minIntegers));
        }

        // Minimum symbols
        match = password.match(/[^a-zA-Z0-9_]/g) || [];
        if (minSymbols > 0 && match.length < minSymbols) {
            messages.push(Joomla.JText._('COM_RSFIREWALL_PASSWORD_MIN_SYMBOLS').replace('%d', minSymbols));
        }

        // Minimum uppercase
        match = password.match(/[A-Z]/g) || [];
        if (minUppercase > 0 && match.length < minUppercase) {
            messages.push(Joomla.JText._('COM_RSFIREWALL_PASSWORD_MIN_UPPERCASE').replace('%d', minUppercase));
        }

		// Minimum lowercase
		match = password.match(/[a-z]/g) || [];
		if (minLowercase > 0 && match.length < minLowercase) {
			messages.push(Joomla.JText._('COM_RSFIREWALL_PASSWORD_MIN_LOWERCASE').replace('%d', minLowercase));
		}

        if (messages.length > 0) {
            container.innerHTML = messages.join('<br />');
        }
	});
});com_rsfirewall/js/jquery.vmap.world.js000064400000166271152177723720014167 0ustar00/** Add World Map Data Points */
jQuery.fn.vectorMap('addMap', 'world_en', {"width":950,"height":550,"paths":{"id":{"path":"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z","name":"Indonesia"},"pg":{"path":"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z","name":"Papua New Guinea"},"mx":{"path":"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z","name":"Mexico"},"ee":{"path":"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z","name":"Estonia"},"dz":{"path":"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z","name":"Algeria"},"ma":{"path":"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z","name":"Morocco"},"mr":{"path":"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z","name":"Mauritania"},"sn":{"path":"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z","name":"Senegal"},"gm":{"path":"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z","name":"Gambia"},"gw":{"path":"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z","name":"Guinea-Bissau"},"gn":{"path":"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z","name":"Guinea"},"sl":{"path":"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z","name":"Sierra Leone"},"lr":{"path":"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z","name":"Liberia"},"ci":{"path":"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z","name":"Cote d'Ivoire"},"ml":{"path":"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z","name":"Mali"},"bf":{"path":"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z","name":"Burkina Faso"},"ne":{"path":"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z","name":"Niger"},"gh":{"path":"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z","name":"Ghana"},"tg":{"path":"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z","name":"Togo"},"bj":{"path":"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z","name":"Benin"},"ng":{"path":"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z","name":"Nigeria"},"tn":{"path":"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z","name":"Tunisia"},"ly":{"path":"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z","name":"Libya"},"eg":{"path":"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z","name":"Egypt"},"td":{"path":"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z","name":"Chad"},"sd":{"path":"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z","name":"Sudan"},"cm":{"path":"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z","name":"Cameroon"},"er":{"path":"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z","name":"Eritrea"},"dj":{"path":"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z","name":"Djibouti"},"et":{"path":"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z","name":"Ethiopia"},"so":{"path":"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z","name":"Somalia"},"ye":{"path":"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z","name":"Yemen"},"cf":{"path":"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z","name":"Central African Republic"},"st":{"path":"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z","name":"Sao Tome and Principe"},"gq":{"path":"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z","name":"Equatorial Guinea"},"ga":{"path":"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z","name":"Gabon"},"cg":{"path":"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z","name":"Congo"},"ao":{"path":"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z","name":"Angola"},"cd":{"path":"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z","name":"Congo"},"rw":{"path":"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z","name":"Rwanda"},"bi":{"path":"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z","name":"Burundi"},"ug":{"path":"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z","name":"Uganda"},"ke":{"path":"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z","name":"Kenya"},"tz":{"path":"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z","name":"Tanzania"},"zm":{"path":"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z","name":"Zambia"},"mw":{"path":"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z","name":"Malawi"},"mz":{"path":"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z","name":"Mozambique"},"zw":{"path":"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z","name":"Zimbabwe"},"na":{"path":"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z","name":"Namibia"},"bw":{"path":"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z","name":"Botswana"},"sz":{"path":"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z","name":"Swaziland"},"ls":{"path":"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z","name":"Lesotho"},"za":{"path":"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z","name":"South Africa"},"gl":{"path":"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z","name":"Greenland"},"au":{"path":"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z","name":"Australia"},"nz":{"path":"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z","name":"New Zealand"},"nc":{"path":"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z","name":"New Caledonia"},"my":{"path":"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z","name":"Malaysia"},"bn":{"path":"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z","name":"Brunei Darussalam"},"tl":{"path":"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z","name":"Timor-Leste"},"sb":{"path":"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z","name":"Solomon Islands"},"vu":{"path":"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z","name":"Vanuatu"},"fj":{"path":"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z","name":"Fiji"},"ph":{"path":"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z","name":"Philippines"},"cn":{"path":"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z","name":"China"},"tw":{"path":"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z","name":"Taiwan"},"jp":{"path":"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z","name":"Japan"},"ru":{"path":"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z","name":"Russian Federation"},"us":{"path":"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z","name":"United States of America"},"mu":{"path":"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z","name":"Mauritius"},"re":{"path":"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z","name":"Reunion"},"mg":{"path":"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z","name":"Madagascar"},"km":{"path":"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z","name":"Comoros"},"sc":{"path":"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z","name":"Seychelles"},"mv":{"path":"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z","name":"Maldives"},"pt":{"path":"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z","name":"Portugal"},"es":{"path":"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z","name":"Spain"},"cv":{"path":"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z","name":"Cape Verde"},"pf":{"path":"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z","name":"French Polynesia"},"kn":{"path":"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z","name":"Saint Kitts and Nevis"},"ag":{"path":"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z","name":"Antigua and Barbuda"},"dm":{"path":"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z","name":"Dominica"},"lc":{"path":"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z","name":"Saint Lucia"},"bb":{"path":"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z","name":"Barbados"},"gd":{"path":"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z","name":"Grenada"},"tt":{"path":"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z","name":"Trinidad and Tobago"},"do":{"path":"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z","name":"Dominican Republic"},"ht":{"path":"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z","name":"Haiti"},"fk":{"path":"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z","name":"Falkland Islands"},"is":{"path":"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z","name":"Iceland"},"no":{"path":"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z","name":"Norway"},"lk":{"path":"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z","name":"Sri Lanka"},"cu":{"path":"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z","name":"Cuba"},"bs":{"path":"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z","name":"Bahamas"},"jm":{"path":"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z","name":"Jamaica"},"ec":{"path":"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z","name":"Ecuador"},"ca":{"path":"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z","name":"Canada"},"gt":{"path":"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z","name":"Guatemala"},"hn":{"path":"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z","name":"Honduras"},"sv":{"path":"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z","name":"El Salvador"},"ni":{"path":"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z","name":"Nicaragua"},"cr":{"path":"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z","name":"Costa Rica"},"pa":{"path":"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z","name":"Panama"},"co":{"path":"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z","name":"Colombia"},"ve":{"path":"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z","name":"Venezuela"},"gy":{"path":"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z","name":"Guyana"},"sr":{"path":"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z","name":"Suriname"},"gf":{"path":"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z","name":"French Guiana"},"pe":{"path":"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z","name":"Peru"},"bo":{"path":"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z","name":"Bolivia"},"py":{"path":"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z","name":"Paraguay"},"uy":{"path":"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z","name":"Uruguay"},"ar":{"path":"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z","name":"Argentina"},"cl":{"path":"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z","name":"Chile"},"br":{"path":"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z","name":"Brazil"},"bz":{"path":"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z","name":"Belize"},"mn":{"path":"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z","name":"Mongolia"},"kp":{"path":"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z","name":"North Korea"},"kr":{"path":"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z","name":"South Korea"},"kz":{"path":"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z","name":"Kazakhstan"},"tm":{"path":"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z","name":"Turkmenistan"},"uz":{"path":"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z","name":"Uzbekistan"},"tj":{"path":"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z","name":"Tajikistan"},"kg":{"path":"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z","name":"Kyrgyz Republic"},"af":{"path":"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z","name":"Afghanistan"},"pk":{"path":"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z","name":"Pakistan"},"in":{"path":"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z","name":"India"},"np":{"path":"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z","name":"Nepal"},"bt":{"path":"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z","name":"Bhutan"},"bd":{"path":"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z","name":"Bangladesh"},"mm":{"path":"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z","name":"Myanmar"},"th":{"path":"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z","name":"Thailand"},"kh":{"path":"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z","name":"Cambodia"},"la":{"path":"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z","name":"Lao People's Democratic Republic"},"vn":{"path":"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z","name":"Vietnam"},"ge":{"path":"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z","name":"Georgia"},"am":{"path":"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z","name":"Armenia"},"az":{"path":"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z","name":"Azerbaijan"},"ir":{"path":"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z","name":"Iran"},"tr":{"path":"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z","name":"Turkey"},"om":{"path":"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z","name":"Oman"},"ae":{"path":"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z","name":"United Arab Emirates"},"qa":{"path":"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z","name":"Qatar"},"kw":{"path":"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z","name":"Kuwait"},"sa":{"path":"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z","name":"Saudi Arabia"},"sy":{"path":"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z","name":"Syrian Arab Republic"},"iq":{"path":"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z","name":"Iraq"},"jo":{"path":"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z","name":"Jordan"},"lb":{"path":"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z","name":"Lebanon"},"il":{"path":"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z","name":"Israel"},"cy":{"path":"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z","name":"Cyprus"},"gb":{"path":"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z","name":"United Kingdom"},"ie":{"path":"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z","name":"Ireland"},"se":{"path":"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z","name":"Sweden"},"fi":{"path":"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z","name":"Finland"},"lv":{"path":"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z","name":"Latvia"},"lt":{"path":"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z","name":"Lithuania"},"by":{"path":"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z","name":"Belarus"},"pl":{"path":"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z","name":"Poland"},"it":{"path":"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z","name":"Italy"},"fr":{"path":"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z","name":"France"},"nl":{"path":"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z","name":"Netherlands"},"be":{"path":"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z","name":"Belgium"},"de":{"path":"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z","name":"Germany"},"dk":{"path":"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z","name":"Denmark"},"ch":{"path":"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z","name":"Switzerland"},"cz":{"path":"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z","name":"Czech Republic"},"sk":{"path":"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z","name":"Slovakia"},"at":{"path":"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z","name":"Austria"},"hu":{"path":"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z","name":"Hungary"},"si":{"path":"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z","name":"Slovenia"},"hr":{"path":"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z","name":"Croatia"},"ba":{"path":"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z","name":"Bosnia and Herzegovina"},"mt":{"path":"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z","name":"Malta"},"ua":{"path":"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z","name":"Ukraine"},"md":{"path":"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z","name":"Moldova"},"ro":{"path":"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z","name":"Romania"},"rs":{"path":"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z","name":"Serbia"},"bg":{"path":"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z","name":"Bulgaria"},"al":{"path":"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z","name":"Albania"},"mk":{"path":"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z","name":"Macedonia"},"gr":{"path":"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z","name":"Greece"}}});
com_rsfirewall/js/mail.js000064400000003122152177723720011463 0ustar00var RSFirewallBase64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=RSFirewallBase64._utf8_encode(r);C<r.length;)t=r.charCodeAt(C++),e=r.charCodeAt(C++),o=r.charCodeAt(C++),a=t>>2,h=(3&t)<<4|e>>4,n=(15&e)<<2|o>>6,c=63&o,isNaN(e)?n=c=64:isNaN(o)&&(c=64),d=d+this._keyStr.charAt(a)+this._keyStr.charAt(h)+this._keyStr.charAt(n)+this._keyStr.charAt(c);return d},decode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");C<r.length;)a=this._keyStr.indexOf(r.charAt(C++)),h=this._keyStr.indexOf(r.charAt(C++)),n=this._keyStr.indexOf(r.charAt(C++)),c=this._keyStr.indexOf(r.charAt(C++)),t=a<<2|h>>4,e=(15&h)<<4|n>>2,o=(3&n)<<6|c,d+=String.fromCharCode(t),64!=n&&(d+=String.fromCharCode(e)),64!=c&&(d+=String.fromCharCode(o));return d=RSFirewallBase64._utf8_decode(d)},_utf8_encode:function(r){r=r.replace(/\r\n/g,"\n");for(var t="",e=0;e<r.length;e++){var o=r.charCodeAt(e);128>o?t+=String.fromCharCode(o):o>127&&2048>o?(t+=String.fromCharCode(o>>6|192),t+=String.fromCharCode(63&o|128)):(t+=String.fromCharCode(o>>12|224),t+=String.fromCharCode(o>>6&63|128),t+=String.fromCharCode(63&o|128))}return t},_utf8_decode:function(r){for(var t="",e=0,o=c1=c2=0;e<r.length;)o=r.charCodeAt(e),128>o?(t+=String.fromCharCode(o),e++):o>191&&224>o?(c2=r.charCodeAt(e+1),t+=String.fromCharCode((31&o)<<6|63&c2),e+=2):(c2=r.charCodeAt(e+1),c3=r.charCodeAt(e+2),t+=String.fromCharCode((15&o)<<12|(63&c2)<<6|63&c3),e+=3);return t}};
var RSFirewallMail=function(id){document.location.href='mailto:'+RSFirewallBase64.decode(id)};com_rsfirewall/js/jquery.knob.js000064400000043520152177723720013016 0ustar00/**
 * Knob - jQuery Plugin
 * Downward compatible, touchable dial
 *
 * Version: 1.1.2 (22/05/2012)
 * Requires: jQuery v1.7+
 *
 * Copyright (c) 2011 Anthony Terrien
 * Under MIT and GPL licenses:
 *  http://www.opensource.org/licenses/mit-license.php
 *  http://www.gnu.org/licenses/gpl.html
 *
 * Thanks to vor, eskimoblood, spiffistan
 */
(function ($) {

    // Dial logic
    var Dial = function (c, opt) {

        var v = null
            ,ctx = c[0].getContext("2d")
            ,PI2 = 2 * Math.PI
            ,mx ,my ,x ,y
            ,self = this;

        this.onChange = function () {};
        this.onCancel = function () {};
        this.onRelease = function () {};

        this.val = function (nv) {
            if (null != nv) {
                opt.stopper && (nv = Math.max(Math.min(nv, opt.max), opt.min));
                v = nv;
                this.onChange(nv);
                if(opt.dynamicDraw) this.dynamicDraw(nv);
                else this.draw(nv);
            } else {
                var b, a;
                b = a = Math.atan2(mx - x, -(my - y - opt.width / 2)) - opt.angleOffset;
                (a < 0) && (b = a + PI2);
                nv = Math.round(b * (opt.max - opt.min) / PI2) + opt.min;
                return (nv > opt.max) ? opt.max : nv;
            }
        };

        this.change = function (nv) {
            opt.stopper && (nv = Math.max(Math.min(nv, opt.max), opt.min));
            this.onChange(nv);
            this.draw(nv);
        };

        this.angle = function (nv) {
            return (nv - opt.min) * PI2 / (opt.max - opt.min);
        };

        this.draw = function (nv) {

            var a = this.angle(nv)                      // Angle
                ,sa = 1.5 * Math.PI + opt.angleOffset   // Previous start angle
                ,sat = sa                               // Start angle
                ,ea = sa + this.angle(v)                // Previous end angle
                ,eat = sat + a                          // End angle
                ,r = opt.width / 2                      // Radius
                ,lw = r * opt.thickness                 // Line width
                ,cgcolor = Dial.getCgColor(opt.cgColor)
                ,tick
                ;

            ctx.clearRect(0, 0, opt.width, opt.width);
            ctx.lineWidth = lw;

            // Hook draw
            if (opt.draw(a, v, opt, ctx)) { return; }

            for (tick = 0; tick < opt.ticks; tick++) {

                ctx.beginPath();

                if (a > (((2 * Math.PI) / opt.ticks) * tick) && opt.tickColorizeValues) {
                    ctx.strokeStyle = opt.fgColor;
                } else {
                    ctx.strokeStyle = opt.tickColor;
                }

                var tick_sa = (((2 * Math.PI) / opt.ticks) * tick) - (0.5 * Math.PI);
                ctx.arc( r, r, r-lw-opt.tickLength, tick_sa, tick_sa+opt.tickWidth , false);
                ctx.stroke();
            }

            opt.cursor
                && (sa = ea - 0.3)
                && (ea = ea + 0.3)
                && (sat = eat - 0.3)
                && (eat = eat + 0.3);

            switch (opt.skin) {

                case 'default' :

                    ctx.beginPath();
                    ctx.strokeStyle = opt.bgColor;
                    ctx.arc(r, r, r - lw / 2, 0, PI2, true);
                    ctx.stroke();

                    if (opt.displayPrevious) {
                        ctx.beginPath();
                        ctx.strokeStyle = (v == nv) ? opt.fgColor : cgcolor;
                        ctx.arc(r, r, r - lw / 2, sa, ea, false);
                        ctx.stroke();
                    }

                    ctx.beginPath();
                    ctx.strokeStyle = opt.fgColor;
                    ctx.arc(r, r, r - lw / 2, sat, eat, false);
                    ctx.stroke();

                    break;

                case 'tron' :

                    if (opt.displayPrevious) {
                        ctx.beginPath();
                        ctx.strokeStyle = (v == nv) ? opt.fgColor : cgcolor;
                        ctx.arc( r, r, r - lw, sa, ea, false);
                        ctx.stroke();
                    }

                    ctx.beginPath();
                    ctx.strokeStyle = opt.fgColor;
                    ctx.arc( r, r, r - lw, sat, eat, false);
                    ctx.stroke();

                    ctx.lineWidth = 2;
                    ctx.beginPath();
                    ctx.strokeStyle = opt.fgColor;
                    ctx.arc( r, r, r - lw + 1 + lw * 2 / 3, 0, 2 * Math.PI, false);
                    ctx.stroke();

                    break;
            }
        };
        
        var dynamicDrawIndex;var dynamicDrawColor = 'black';
        var dynamicDrawInterval;
        this.dynamicDraw = function (nv) {
        	var instanceOfThis = this;
        	dynamicDrawIndex = opt.min;
        	dynamicDrawInterval = setInterval(function() {
        		instanceOfThis.animateDraw(nv);
            }, 20);
        };
        
        this.animateDraw = function () {
        	if(dynamicDrawIndex > v) {
        		clearInterval(dynamicDrawInterval);
        		v = dynamicDrawIndex;
        	} else {
        		this.draw(dynamicDrawIndex);
        		this.change(dynamicDrawIndex);
        		dynamicDrawIndex++;
        	}
        };

        this.capture = function (e) {
            switch (e.type) {
                case 'mousemove' :
                case 'mousedown' :
                    mx = e.pageX;
                    my = e.pageY;
                    break;
                case 'touchmove' :
                case 'touchstart' :
                    mx = e.originalEvent.touches[0].pageX;
                    my = e.originalEvent.touches[0].pageY;
                    break;
            }
            this.change( this.val() );
        };

        this.cancel = function () {
            self.val(v);
            self.onCancel();
        };

        this.startDrag = function (e) {

            var p = c.offset()
                ,$doc = $(document);

            x = p.left + (opt.width / 2);
            y = p.top;

            this.capture(e);

            // Listen mouse and touch events
            $doc.bind(
                    "mousemove.dial touchmove.dial"
                    ,function (e) {
                        self.capture(e);
                    }
                )
                .bind(
                    // Escape
                    "keyup.dial"
                    ,function (e) {
                        if(e.keyCode === 27) {
                            $doc.unbind("mouseup.dial mousemove.dial keyup.dial");
                            self.cancel();
                        }
                    }
                )
                .bind(
                    "mouseup.dial touchend.dial"
                    ,function (e) {
                        $doc.unbind('mousemove.dial touchmove.dial mouseup.dial touchend.dial keyup.dial');
                        self.val(self.val());
                        self.onRelease(v);
                    }
                );
        };
    };

    // Dial static func
    Dial.getCgColor = function (h) {
        h = h.substring(1,7);
        var rgb = [parseInt(h.substring(0,2),16)
                   ,parseInt(h.substring(2,4),16)
                   ,parseInt(h.substring(4,6),16)];
        return "rgba("+rgb[0]+","+rgb[1]+","+rgb[2]+",.5)";
    };

    // jQuery plugin
    $.fn.knob = $.fn.dial = function (gopt) {

        return this.each(

            function () {

                var $this = $(this), opt;

                if ($this.data('dialed')) { return $this; }
                $this.data('dialed', true);

                opt = $.extend(
                    {
                        // Config
                        'min' : $this.data('min') || 0
                        ,'max' : $this.data('max') || 100
                        ,'stopper' : true
                        ,'readOnly' : $this.data('readonly')

                        // UI
                        ,'cursor' : $this.data('cursor')
                        ,'thickness' : $this.data('thickness') || 0.35
                        ,'width' : $this.data('width') || 200
                        ,'displayInput' : $this.data('displayinput') == null || $this.data('displayinput')
                        ,'displayPrevious' : $this.data('displayprevious')
                        ,'fgColor' : $this.data('fgcolor') || '#87CEEB'
                        ,'cgColor' : $this.data('cgcolor') || $this.data('fgcolor') || '#87CEEB'
                        ,'bgColor' : $this.data('bgcolor') || '#EEEEEE'
                        ,'inputColor' : $this.data('fgcolor') || '#87CEEB'
                        ,'tickColor' : $this.data('tickColor') || $this.data('fgcolor') || '#DDDDDD'
                        ,'ticks' : $this.data('ticks') || 0
                        ,'tickLength' : $this.data('tickLength') || 0
                        ,'tickWidth' : $this.data('tickWidth') || 0.02
                        ,'tickColorizeValues' : $this.data('tickColorizeValues') || true
                        ,'skin' : $this.data('skin') || 'default'
                        ,'angleOffset': degreeToRadians($this.data('angleoffset'))
                        ,'dynamicDraw': $this.data('dynamicdraw') || false

                        // Hooks
                        ,'draw' :
                                /**
                                 * @param int a angle
                                 * @param int v current value
                                 * @param array opt plugin options
                                 * @param context ctx Canvas context 2d
                                 * @return bool true:bypass default draw methode
                                 */
                                function (a, v, opt, ctx) {}
                        ,'change' :
                                /**
                                 * @param int v Current value
                                 */
                                function (v) {}
                        ,'release' :
                                /**
                                 * @param int v Current value
                                 * @param jQuery ipt Input
                                 */
                                function (v, ipt) {}
                    }
                    ,gopt
                );

                var c = $('<canvas width="' + opt.width + '" height="' + opt.width + '"></canvas>')
                    ,wd = $('<div style=width:' + opt.width + 'px;display:inline;"></div>')
                    ,k
                    ,vl = $this.val()
                    ,initStyle = function () {
                        opt.displayInput
                        && $this.css({
                                    'width' : opt.width / 2 + 'px'
                                    ,'position' : 'absolute'
                                    ,'margin-top' : (opt.width * 5 / 14) + 'px'
                                    ,'margin-left' : '-' + (opt.width * 3 / 4) + 'px'
                                    ,'font-size' : (opt.width / 4) + 'px'
                                    ,'border' : 'none'
                                    ,'background' : 'none'
                                    ,'font-family' : 'Arial'
                                    ,'font-weight' : 'bold'
                                    ,'text-align' : 'center'
                                    ,'color' : opt.inputColor
                                    ,'padding' : '0px'
                                    ,'-webkit-appearance': 'none'
                                    })
                        || $this.css({
                                    'width' : '0px'
                                    ,'visibility' : 'hidden'
                                    });
                    };

                // Canvas insert
                $this.wrap(wd).before(c);

                initStyle();

                // Invoke dial logic
                k = new Dial(c, opt);
                vl || (vl = opt.min);
                $this.val(vl);
                k.val(vl);

                k.onRelease = function (v) {
                                            opt.release(v, $this);
                                        };
                k.onChange = function (v) {
                                            $this.val(v);
                                            opt.change(v);
                                         };

                // bind change on input
                $this.bind(
                        'change'
                        ,function (e) {
                            k.val($this.val());
                        }
                    );

                if (!opt.readOnly) {

                    // canvas
                    c.bind(
                                    "mousedown touchstart"
                                    ,function (e) {
                                        e.preventDefault();
                                        k.startDrag(e);
                                    }
                          )
                     .bind(
                                    "mousewheel DOMMouseScroll"
                                    ,mw = function (e) {
                                        e.preventDefault();
                                        var ori = e.originalEvent
                                            ,deltaX = ori.detail || ori.wheelDeltaX
                                            ,deltaY = ori.detail || ori.wheelDeltaY
                                            ,val = parseInt($this.val()) + (deltaX>0 || deltaY>0 ? 1 : deltaX<0 || deltaY<0 ? -1 : 0);
                                        k.val(val);
                                    }
                        );

                    // input
                    var kval, val, to, m = 1, kv = {37:-1, 38:1, 39:1, 40:-1};
                    $this
                        .bind(
                                    "configure"
                                    ,function (e, aconf) {
                                        var kconf;
                                        for (kconf in aconf) { opt[kconf] = aconf[kconf]; }
                                        initStyle();
                                        k.val($this.val());
                                    }
                            )
                        .bind(
                                    "keydown"
                                    ,function (e) {
                                        var kc = e.keyCode;
                                        if (kc >= 96 && kc <= 105) kc -= 48; //numpad
                                        kval = parseInt(String.fromCharCode(kc));

                                        if (isNaN(kval)) {

                                            (kc !== 13)      // enter
                                            && (kc !== 8)    // bs
                                            && (kc !== 9)    // tab
                                            && (kc !== 189)  // -
                                            && e.preventDefault();

                                            // arrows
                                            if ($.inArray(kc,[37,38,39,40]) > -1) {
                                                k.change(parseInt($this.val()) + kv[kc] * m);

                                                // long time keydown speed-up
                                                to = window.setTimeout(
                                                        function () { m < 20 && m++; }
                                                        ,50
                                                        );

                                                e.preventDefault();
                                            }
                                        }
                                    }
                                )
                          .bind(
                                    "keyup"
                                    ,function(e) {
                                        if (isNaN(kval)) {
                                            if (to) {
                                                window.clearTimeout(to);
                                                to = null;
                                                m = 1;
                                                k.val($this.val());
                                                k.onRelease($this.val(), $this);
                                            } else {
                                                // enter
                                                (e.keyCode === 13)
                                                && k.onRelease($this.val(), $this);
                                            }
                                        } else {
                                            // kval postcond
                                            ($this.val() > opt.max && $this.val(opt.max))
                                            || ($this.val() < opt.min && $this.val(opt.min));
                                        }

                                    }
                                )
                           .bind(
                                    "mousewheel DOMMouseScroll"
                                    ,mw
                                );
                } else {
                    $this.attr('readonly', 'readonly');
                }
            }
        ).parent();
    };

    function degreeToRadians (angle) {
         return $.isNumeric(angle) ? angle * Math.PI / 180 : 0;
    }
})(jQuery);com_rsfirewall/js/ordertable.js000064400000000560152177723720012667 0ustar00Joomla.orderTable = function(listOrder) {
	table = document.getElementById("sortTable");
	direction = document.getElementById("directionTable");
	order = table.options[table.selectedIndex].value;
	
	if (order != listOrder) {
		dirn = 'asc';
	} else {
		dirn = direction.options[direction.selectedIndex].value;
	}
	
	Joomla.tableOrdering(order, dirn, '');
}com_rsfirewall/js/jquery.vmap.min.js000064400000051120152177723720013605 0ustar00/*!
 * JQVMap: jQuery Vector Map Library
 * @author JQVMap <me@peterschmalfeldt.com>
 * @version 1.5.0
 * @link http://jqvmap.com
 * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE
 * @builddate 2016/03/15
 */

var VectorCanvas=function(a,b,c){if(this.mode=window.SVGAngle?"svg":"vml",this.params=c,"svg"===this.mode)this.createSvgNode=function(a){return document.createElementNS(this.svgns,a)};else{try{document.namespaces.rvml||document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),this.createVmlNode=function(a){return document.createElement("<rvml:"+a+' class="rvml">')}}catch(d){this.createVmlNode=function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)")}"svg"===this.mode?this.canvas=this.createSvgNode("svg"):(this.canvas=this.createVmlNode("group"),this.canvas.style.position="absolute"),this.setSize(a,b)};VectorCanvas.prototype={svgns:"http://www.w3.org/2000/svg",mode:"svg",width:0,height:0,canvas:null};var ColorScale=function(a,b,c,d){a&&this.setColors(a),b&&this.setNormalizeFunction(b),c&&this.setMin(c),c&&this.setMax(d)};ColorScale.prototype={colors:[]};var JQVMap=function(a){a=a||{};var b,c=this,d=JQVMap.maps[a.map];if(!d)throw new Error('Invalid "'+a.map+'" map parameter. Please make sure you have loaded this map file in your HTML.');this.selectedRegions=[],this.multiSelectRegion=a.multiSelectRegion,this.container=a.container,this.defaultWidth=d.width,this.defaultHeight=d.height,this.color=a.color,this.selectedColor=a.selectedColor,this.hoverColor=a.hoverColor,this.hoverColors=a.hoverColors,this.hoverOpacity=a.hoverOpacity,this.setBackgroundColor(a.backgroundColor),this.width=a.container.width(),this.height=a.container.height(),this.resize(),jQuery(window).resize(function(){var d=a.container.width(),e=a.container.height();if(d&&e){c.width=d,c.height=e,c.resize(),c.canvas.setSize(c.width,c.height),c.applyTransform();var f=jQuery.Event("resize.jqvmap");jQuery(a.container).trigger(f,[d,e]),b&&(jQuery(".jqvmap-pin").remove(),c.pinHandlers=!1,c.placePins(b.pins,b.mode))}}),this.canvas=new VectorCanvas(this.width,this.height,a),a.container.append(this.canvas.canvas),this.makeDraggable(),this.rootGroup=this.canvas.createGroup(!0),this.index=JQVMap.mapIndex,this.label=jQuery("<div/>").addClass("jqvmap-label").appendTo(jQuery("body")).hide(),a.enableZoom&&(jQuery("<div/>").addClass("jqvmap-zoomin").text("+").appendTo(a.container),jQuery("<div/>").addClass("jqvmap-zoomout").html("&#x2212;").appendTo(a.container)),c.countries=[];for(var e in d.paths){var f=this.canvas.createPath({path:d.paths[e].path});f.setFill(this.color),f.id=c.getCountryId(e),c.countries[e]=f,"svg"===this.canvas.mode?f.setAttribute("class","jqvmap-region"):jQuery(f).addClass("jqvmap-region"),jQuery(this.rootGroup).append(f)}if(jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","mouseover mouseout",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("labelShow.jqvmap"),h=jQuery.Event("regionMouseOver.jqvmap");f=f.toLowerCase(),"mouseover"===b.type?(jQuery(a.container).trigger(h,[f,d.paths[f].name]),h.isDefaultPrevented()||c.highlight(f,e),a.showTooltip&&(c.label.text(d.paths[f].name),jQuery(a.container).trigger(g,[c.label,f]),g.isDefaultPrevented()||(c.label.show(),c.labelWidth=c.label.width(),c.labelHeight=c.label.height()))):(c.unhighlight(f,e),c.label.hide(),jQuery(a.container).trigger("regionMouseOut.jqvmap",[f,d.paths[f].name]))}),jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","click",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("regionClick.jqvmap");if(f=f.toLowerCase(),jQuery(a.container).trigger(g,[f,d.paths[f].name]),!a.multiSelectRegion&&!g.isDefaultPrevented())for(var h in d.paths)c.countries[h].currentFillColor=c.countries[h].getOriginalFill(),c.countries[h].setFill(c.countries[h].getOriginalFill());g.isDefaultPrevented()||(c.isSelected(f)?c.deselect(f,e):c.select(f,e))}),a.showTooltip&&a.container.mousemove(function(a){if(c.label.is(":visible")){var b=a.pageX-15-c.labelWidth,d=a.pageY-15-c.labelHeight;0>b&&(b=a.pageX+15),0>d&&(d=a.pageY+15),c.label.css({left:b,top:d})}}),this.setColors(a.colors),this.canvas.canvas.appendChild(this.rootGroup),this.applyTransform(),this.colorScale=new ColorScale(a.scaleColors,a.normalizeFunction,a.valueMin,a.valueMax),a.values&&(this.values=a.values,this.setValues(a.values)),a.selectedRegions)if(a.selectedRegions instanceof Array)for(var g in a.selectedRegions)this.select(a.selectedRegions[g].toLowerCase());else this.select(a.selectedRegions.toLowerCase());if(this.bindZoomButtons(),a.pins&&(b={pins:a.pins,mode:a.pinMode},this.pinHandlers=!1,this.placePins(a.pins,a.pinMode)),a.showLabels){this.pinHandlers=!1;var h={};for(e in c.countries)"function"!=typeof c.countries[e]&&(a.pins&&a.pins[e]||(h[e]=e.toUpperCase()));b={pins:h,mode:"content"},this.placePins(h,"content")}JQVMap.mapIndex++};JQVMap.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,countries:{},countriesColors:{},countriesData:{},zoomStep:1.4,zoomMaxStep:4,zoomCurStep:1},JQVMap.xlink="http://www.w3.org/1999/xlink",JQVMap.mapIndex=1,JQVMap.maps={},function(){var a={colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,enableZoom:1,showTooltip:1,borderColor:1,borderWidth:1,borderOpacity:1,selectedRegions:1,multiSelectRegion:1},b={onLabelShow:"labelShow",onLoad:"loadJQV",onRegionOver:"regionMouseOver",onRegionOut:"regionMouseOut",onRegionClick:"regionClick",onRegionSelect:"regionSelect",onRegionDeselect:"regionDeselect",onResize:"resize"};jQuery.fn.vectorMap=function(c){var d={map:"world_en",backgroundColor:"#a5bfdd",color:"#f4f3f0",hoverColor:"#c9dfaf",hoverColors:{},selectedColor:"#c9dfaf",scaleColors:["#b6d6ff","#005ace"],normalizeFunction:"linear",enableZoom:!0,showTooltip:!0,borderColor:"#818181",borderWidth:1,borderOpacity:.25,selectedRegions:null,multiSelectRegion:!1},e=this.data("mapObject");if("addMap"===c)JQVMap.maps[arguments[1]]=arguments[2];else{if("set"!==c||!a[arguments[1]]){if("string"==typeof c&&"function"==typeof e[c])return e[c].apply(e,Array.prototype.slice.call(arguments,1));jQuery.extend(d,c),d.container=this,this.css({position:"relative",overflow:"hidden"}),e=new JQVMap(d),this.data("mapObject",e),this.unbind(".jqvmap");for(var f in b)d[f]&&this.bind(b[f]+".jqvmap",d[f]);var g=jQuery.Event("loadJQV.jqvmap");return jQuery(d.container).trigger(g,e),e}e["set"+arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1)].apply(e,Array.prototype.slice.call(arguments,2))}}}(jQuery),ColorScale.arrayToRgb=function(a){for(var b,c="#",d=0;d<a.length;d++)b=a[d].toString(16),c+=1===b.length?"0"+b:b;return c},ColorScale.prototype.getColor=function(a){"function"==typeof this.normalize&&(a=this.normalize(a));for(var b,c=[],d=0,e=0;e<this.colors.length-1;e++)b=this.vectorLength(this.vectorSubtract(this.colors[e+1],this.colors[e])),c.push(b),d+=b;var f=(this.maxValue-this.minValue)/d;for(e=0;e<c.length;e++)c[e]*=f;for(e=0,a-=this.minValue;a-c[e]>=0;)a-=c[e],e++;var g;for(g=e===this.colors.length-1?this.vectorToNum(this.colors[e]).toString(16):this.vectorToNum(this.vectorAdd(this.colors[e],this.vectorMult(this.vectorSubtract(this.colors[e+1],this.colors[e]),a/c[e]))).toString(16);g.length<6;)g="0"+g;return"#"+g},ColorScale.rgbToArray=function(a){return a=a.substr(1),[parseInt(a.substr(0,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(4,2),16)]},ColorScale.prototype.setColors=function(a){for(var b=0;b<a.length;b++)a[b]=ColorScale.rgbToArray(a[b]);this.colors=a},ColorScale.prototype.setMax=function(a){this.clearMaxValue=a,"function"==typeof this.normalize?this.maxValue=this.normalize(a):this.maxValue=a},ColorScale.prototype.setMin=function(a){this.clearMinValue=a,"function"==typeof this.normalize?this.minValue=this.normalize(a):this.minValue=a},ColorScale.prototype.setNormalizeFunction=function(a){"polynomial"===a?this.normalize=function(a){return Math.pow(a,.2)}:"linear"===a?delete this.normalize:this.normalize=a,this.setMin(this.clearMinValue),this.setMax(this.clearMaxValue)},ColorScale.prototype.vectorAdd=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]+b[d];return c},ColorScale.prototype.vectorLength=function(a){for(var b=0,c=0;c<a.length;c++)b+=a[c]*a[c];return Math.sqrt(b)},ColorScale.prototype.vectorMult=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]*b;return c},ColorScale.prototype.vectorSubtract=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]-b[d];return c},ColorScale.prototype.vectorToNum=function(a){for(var b=0,c=0;c<a.length;c++)b+=Math.round(a[c])*Math.pow(256,a.length-c-1);return b},JQVMap.prototype.applyTransform=function(){var a,b,c,d;this.defaultWidth*this.scale<=this.width?(a=(this.width-this.defaultWidth*this.scale)/(2*this.scale),c=(this.width-this.defaultWidth*this.scale)/(2*this.scale)):(a=0,c=(this.width-this.defaultWidth*this.scale)/this.scale),this.defaultHeight*this.scale<=this.height?(b=(this.height-this.defaultHeight*this.scale)/(2*this.scale),d=(this.height-this.defaultHeight*this.scale)/(2*this.scale)):(b=0,d=(this.height-this.defaultHeight*this.scale)/this.scale),this.transY>b?this.transY=b:this.transY<d&&(this.transY=d),this.transX>a?this.transX=a:this.transX<c&&(this.transX=c),this.canvas.applyTransformParams(this.scale,this.transX,this.transY)},JQVMap.prototype.bindZoomButtons=function(){var a=this;this.container.find(".jqvmap-zoomin").click(function(){a.zoomIn()}),this.container.find(".jqvmap-zoomout").click(function(){a.zoomOut()})},JQVMap.prototype.deselect=function(a,b){if(a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a))this.selectedRegions.splice(this.selectIndex(a),1),jQuery(this.container).trigger("regionDeselect.jqvmap",[a]),b.currentFillColor=b.getOriginalFill(),b.setFill(b.getOriginalFill());else for(var c in this.countries)this.selectedRegions.splice(this.selectedRegions.indexOf(c),1),this.countries[c].currentFillColor=this.color,this.countries[c].setFill(this.color)},JQVMap.prototype.getCountryId=function(a){return"jqvmap"+this.index+"_"+a},JQVMap.prototype.getPin=function(a){var b=jQuery("#"+this.getPinId(a));return b.html()},JQVMap.prototype.getPinId=function(a){return this.getCountryId(a)+"_pin"},JQVMap.prototype.getPins=function(){var a=this.container.find(".jqvmap-pin"),b={};return jQuery.each(a,function(a,c){c=jQuery(c);var d=c.attr("for").toLowerCase(),e=c.html();b[d]=e}),JSON.stringify(b)},JQVMap.prototype.highlight=function(a,b){b=b||jQuery("#"+this.getCountryId(a))[0],this.hoverOpacity?b.setOpacity(this.hoverOpacity):this.hoverColors&&a in this.hoverColors?(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColors[a])):this.hoverColor&&(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColor))},JQVMap.prototype.isSelected=function(a){return this.selectIndex(a)>=0},JQVMap.prototype.makeDraggable=function(){var a,b,c=!1,d=this;d.isMoving=!1,d.isMovingTimeout=!1;var e,f,g,h,i,j,k;this.container.mousemove(function(e){return c&&(d.transX-=(a-e.pageX)/d.scale,d.transY-=(b-e.pageY)/d.scale,d.applyTransform(),a=e.pageX,b=e.pageY,d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout),d.container.trigger("drag")),!1}).mousedown(function(d){return c=!0,a=d.pageX,b=d.pageY,!1}).mouseup(function(){return c=!1,clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){d.isMoving=!1},100),!1}).mouseout(function(){return c&&d.isMoving?(clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){c=!1,d.isMoving=!1},100),!1):void 0}),jQuery(this.container).bind("touchmove",function(a){var b,c,l,m,n=a.originalEvent.touches;if(1===n.length){if(1===e){if(j===n[0].pageX&&k===n[0].pageY)return;l=d.transX,m=d.transY,d.transX-=(j-n[0].pageX)/d.scale,d.transY-=(k-n[0].pageY)/d.scale,d.applyTransform(),(l!==d.transX||m!==d.transY)&&a.preventDefault(),d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout)}j=n[0].pageX,k=n[0].pageY}else 2===n.length&&(2===e?(c=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))/h,d.setScale(i*c,f,g),a.preventDefault()):(b=jQuery(d.container).offset(),f=n[0].pageX>n[1].pageX?n[1].pageX+(n[0].pageX-n[1].pageX)/2:n[0].pageX+(n[1].pageX-n[0].pageX)/2,g=n[0].pageY>n[1].pageY?n[1].pageY+(n[0].pageY-n[1].pageY)/2:n[0].pageY+(n[1].pageY-n[0].pageY)/2,f-=b.left,g-=b.top,i=d.scale,h=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))));e=n.length}),jQuery(this.container).bind("touchstart",function(){e=0}),jQuery(this.container).bind("touchend",function(){e=0})},JQVMap.prototype.placePins=function(a,b){var c=this;if((!b||"content"!==b&&"id"!==b)&&(b="content"),"content"===b?jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute">'+b+"</div>")}}):jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute"></div>'),e.append(jQuery("#"+b))}}),this.positionPins(),!this.pinHandlers){this.pinHandlers=!0;var d=function(){c.positionPins()};this.container.bind("zoomIn",d).bind("zoomOut",d).bind("drag",d)}},JQVMap.prototype.positionPins=function(){var a=this,b=this.container.find(".jqvmap-pin");jQuery.each(b,function(b,c){c=jQuery(c);var d=a.getCountryId(c.attr("for").toLowerCase()),e=jQuery("#"+d),f=document.getElementById(d).getBBox(),g=e.position(),h=a.scale,i=g.left+f.width/2*h-c.width()/2,j=g.top+f.height/2*h-c.height()/2;c.css("left",i).css("top",j)})},JQVMap.prototype.removePin=function(a){a=a.toLowerCase(),jQuery("#"+this.getPinId(a)).remove()},JQVMap.prototype.removePins=function(){this.container.find(".jqvmap-pin").remove()},JQVMap.prototype.reset=function(){for(var a in this.countries)this.countries[a].setFill(this.color);this.scale=this.baseScale,this.transX=this.baseTransX,this.transY=this.baseTransY,this.applyTransform()},JQVMap.prototype.resize=function(){var a=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/a,this.transX*=this.baseScale/a,this.transY*=this.baseScale/a},JQVMap.prototype.select=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a)||(this.multiSelectRegion?this.selectedRegions.push(a):this.selectedRegions=[a],jQuery(this.container).trigger("regionSelect.jqvmap",[a]),this.selectedColor&&b&&(b.currentFillColor=this.selectedColor,b.setFill(this.selectedColor)))},JQVMap.prototype.selectIndex=function(a){a=a.toLowerCase();for(var b=0;b<this.selectedRegions.length;b++)if(a===this.selectedRegions[b])return b;return-1},JQVMap.prototype.setBackgroundColor=function(a){this.container.css("background-color",a)},JQVMap.prototype.setColors=function(a,b){if("string"==typeof a)this.countries[a].setFill(b),this.countries[a].setAttribute("original",b);else{var c=a;for(var d in c)this.countries[d]&&(this.countries[d].setFill(c[d]),this.countries[d].setAttribute("original",c[d]))}},JQVMap.prototype.setNormalizeFunction=function(a){this.colorScale.setNormalizeFunction(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setScale=function(a){this.scale=a,this.applyTransform()},JQVMap.prototype.setScaleColors=function(a){this.colorScale.setColors(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setValues=function(a){var b,c=0,d=Number.MAX_VALUE;for(var e in a)e=e.toLowerCase(),b=parseFloat(a[e]),isNaN(b)||(b>c&&(c=a[e]),d>b&&(d=b));d===c&&c++,this.colorScale.setMin(d),this.colorScale.setMax(c);var f={};for(e in a)e=e.toLowerCase(),b=parseFloat(a[e]),f[e]=isNaN(b)?this.color:this.colorScale.getColor(b);this.setColors(f),this.values=a},JQVMap.prototype.unhighlight=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],b.setOpacity(1),b.currentFillColor&&b.setFill(b.currentFillColor)},JQVMap.prototype.zoomIn=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep<a.zoomMaxStep){a.transX-=(a.width/a.scale-a.width/(a.scale*a.zoomStep))/2,a.transY-=(a.height/a.scale-a.height/(a.scale*a.zoomStep))/2,a.setScale(a.scale*a.zoomStep),a.zoomCurStep++;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)-b),a.container.trigger("zoomIn")}},JQVMap.prototype.zoomOut=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep>1){a.transX+=(a.width/(a.scale/a.zoomStep)-a.width/a.scale)/2,a.transY+=(a.height/(a.scale/a.zoomStep)-a.height/a.scale)/2,a.setScale(a.scale/a.zoomStep),a.zoomCurStep--;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)+b),a.container.trigger("zoomOut")}},VectorCanvas.prototype.applyTransformParams=function(a,b,c){"svg"===this.mode?this.rootGroup.setAttribute("transform","scale("+a+") translate("+b+", "+c+")"):(this.rootGroup.coordorigin=this.width-b+","+(this.height-c),this.rootGroup.coordsize=this.width/a+","+this.height/a)},VectorCanvas.prototype.createGroup=function(a){var b;return"svg"===this.mode?b=this.createSvgNode("g"):(b=this.createVmlNode("group"),b.style.width=this.width+"px",b.style.height=this.height+"px",b.style.left="0px",b.style.top="0px",b.coordorigin="0 0",b.coordsize=this.width+" "+this.height),a&&(this.rootGroup=b),b},VectorCanvas.prototype.createPath=function(a){var b;if("svg"===this.mode)b=this.createSvgNode("path"),b.setAttribute("d",a.path),null!==this.params.borderColor&&b.setAttribute("stroke",this.params.borderColor),this.params.borderWidth>0&&(b.setAttribute("stroke-width",this.params.borderWidth),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")),this.params.borderOpacity>0&&b.setAttribute("stroke-opacity",this.params.borderOpacity),b.setFill=function(a){this.setAttribute("fill",a),null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getAttribute("fill")},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.setAttribute("fill-opacity",a)};else{b=this.createVmlNode("shape"),b.coordorigin="0 0",b.coordsize=this.width+" "+this.height,b.style.width=this.width+"px",b.style.height=this.height+"px",b.fillcolor=JQVMap.defaultFillColor,b.stroked=!1,b.path=VectorCanvas.pathSvgToVml(a.path);var c=this.createVmlNode("skew");c.on=!0,c.matrix="0.01,0,0,0.01,0,0",c.offset="0,0",b.appendChild(c);var d=this.createVmlNode("fill");b.appendChild(d),b.setFill=function(a){this.getElementsByTagName("fill")[0].color=a,null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getElementsByTagName("fill")[0].color},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.getElementsByTagName("fill")[0].opacity=parseInt(100*a,10)+"%"}}return b},VectorCanvas.prototype.pathSvgToVml=function(a){var b,c,d="",e=0,f=0;return a.replace(/([MmLlHhVvCcSs])((?:-?(?:\d+)?(?:\.\d+)?,?\s?)+)/g,function(a,g,h){h=h.replace(/(\d)-/g,"$1,-").replace(/\s+/g,",").split(","),h[0]||h.shift();for(var i=0,j=h.length;j>i;i++)h[i]=Math.round(100*h[i]);switch(g){case"m":e+=h[0],f+=h[1],d="t"+h.join(",");break;case"M":e=h[0],f=h[1],d="m"+h.join(",");break;case"l":e+=h[0],f+=h[1],d="r"+h.join(",");break;case"L":e=h[0],f=h[1],d="l"+h.join(",");break;case"h":e+=h[0],d="r"+h[0]+",0";break;case"H":e=h[0],d="l"+e+","+f;break;case"v":f+=h[0],d="r0,"+h[0];break;case"V":f=h[0],d="l"+e+","+f;break;case"c":b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"C":b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",");break;case"s":h.unshift(f-c),h.unshift(e-b),b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"S":h.unshift(f+f-c),h.unshift(e+e-b),b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",")}return d}).replace(/z/g,"")},VectorCanvas.prototype.setSize=function(a,b){if("svg"===this.mode)this.canvas.setAttribute("width",a),this.canvas.setAttribute("height",b);else if(this.canvas.style.width=a+"px",this.canvas.style.height=b+"px",this.canvas.coordsize=a+" "+b,this.canvas.coordorigin="0 0",this.rootGroup){for(var c=this.rootGroup.getElementsByTagName("shape"),d=0,e=c.length;e>d;d++)c[d].coordsize=a+" "+b,c[d].style.width=a+"px",c[d].style.height=b+"px";this.rootGroup.coordsize=a+" "+b,this.rootGroup.style.width=a+"px",this.rootGroup.style.height=b+"px"}this.width=a,this.height=b};com_rsfirewall/images/icon-16-grade.png000064400000001123152177723720013775 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<�IDATxڤ��KTQǿ��r��o��dD	�a�f�B"!4�IR(B�J��2�ZFE�"��PA.L�ݘ�.zh��t~�����{���}�8?]����{B��rr3?��?ˡ܆E@?^^�y2����mߐ��,'u�zI�/\���}�;᎗ĝgixS�[�F���U�����e4w��
UW�<9
0駕��(�8�c#��|���<|7��?C�k%.�n���
�SxI�bN&'a�1j�i5��`���l�y�nOS�E��8��	�^V��:P�/��k��./f���U��bRz���`��l��-��+33�i`�+p��v�`rom��lBoP��
�35(F�֊<����Yx�|҂j�B]XAC������V��a�R[H��&m�W����{���
�G�`4���LjA��������ҶbNˀ�h��}�pg�=@ܚ��t�G�0{���
8�t�g�����-I�n��?��p�i�IEND�B`�com_rsfirewall/images/info.png000064400000005753152177723720012511 0ustar00�PNG


IHDR00�`n�	pHYs��~��IDATx��Yis���OIɲ�[�uPi�l�!	�(Q$q��w���콋��x(��TV츞����7o�{zfV�#�_a���X�?�262��H�%殴�'\���4aL|CW¨-�.�0`:I�b:	��!k���f������r�i���p��Ͼn��/�[�ߵZ��̝B��2��Q�ݙ��
�ɬ��+��@��?�Ղ��Z���@,�m�'�}F|�P
���+~_^�-h�H��ݩ���9o0k�{��L���~S���+�t�t�2A9쨇]��4��Ӫ}�����ָ~rݧR��G]��:
��p�7�Ņdw�:B��F��x��JP��������,LX����`�ħv
���c��bs� Q��`�ڔ��g�-K�o��η��� vfn��~LbǏ]��ƺA�h��A��� q��8~1K6�`�-��q�n,z��'���J�L/�Xl��H��6�D4�hs^ǿf/�޴�[=i8�7llŏ����>��>Tm���U��pÕ >��N����'vH���m��]�!�Шb���V䰆Gӕ���G���<��r
z57\X�l2���LXł
�Wm�@q44X��C��Om�x���i��t&���C2.�{9t�U��F�rz�������[���]Yٟ�+�I�����5�1���b:�
��P�4�|�I�	�Z�b�%�LaN�"��ɰDZĂG*-�m\?������b�Gك�d�죮���x�V�ݯ�T�taS��V������䮆�m_! (����_���83�X�95�b
��n�Z�;B�F5��D8a��KB��	���2䈲e�m�q��P�uO��� �<�y�%K'�f��A��JBV[:i�
�:С=�*��ʍ���f��y��<j� �^�^�}yL�����k��k�'F�8j-8���ە+T>8�:��fx㡭j[҃wmb���¿.���pP�aE<,7�RS,7ţ�p��Z���QK��Mᰰ�Pj�%�E�.r��Am�w1,7�)�g�'}ujAP㎇�C���Ӑ�~jAb!=�����Ee��̏��AB�(l��)�qa3�QQ�F�0��&��Tg�X�&��n���kA5�d�u��%�0�t��d��R5�C�	UJ�P�B�/�L"��$�[���<�_�H���n�X�5��ù�c&|����S+�	٫J{f���Ԗ4֛۽�ٟ[��=T���#(��9��Uw�9c֛��Ԁ�`g:oPۅ�h.�������p(ۃ��[X�Xc��NG�̉�Iݸ؂ ���=_��y���_���{u|o���v��VQߪ�����{��'w��>'߬G��>��y�mW��V�o/��}��U�a�/��β��љ��'h.�-�Xv"ō)�P!�6�T�P�O�	G�)�GYQ�H���N�Q�PΥ�@k]MՋ7����y�L0d�Zr���H�F�;�`���0�7�Ye��1٤r��ٷv4�c��)�y�'�?���/��&j�<����
��6���������Oq�OM��օ���5ŋ[�.�|�,�i�̖�|�lmS�+�$�/����'�
?S�DP؈�w�Cp�`�+�I����ý�G��O�����O��O8J��f�������6=/���D��CA�h��w�q�G���P���*;i+N\MDj��rk�_�Rv�Q��R�=�^J'���`|ڝ�v�����Yozћ���]���H�v��?���sԒ�Yn��u�=#��$S�;�)���(��yF��`�O,�ȔŴ��aL�X�d��Q��W�٥<ӓ�E���,���_�RyRo���P��c����$Ε�jS��-�q�	
7¢���ft�#sH�k})���;t�m�Ӡ
�N$�C���I�]G:C�ۗݺd�,��!Ņ �/{<�����!��c�!����
 %��|~�� J��#"�a�RF�����0��C�lU�}L��!&���Z/��5$��p��;T]�W�I!�f*_� �q�g�ZMAP�i�da�F	��ս'�c�2�L?�N8�}.�*�H#5��1��J������+v	w��C���CQѝ��E���|sI�����F�/b8�S��AC���v�	�0���nOq���k7uHcqcbu�Q�WT1�Nwt2w�(^,�x�(�1�&��4I�,I�6��$��$�
N}\,��I:x&yh�7MlCYKB�s�6�b������:s�j�m�A�T�4B��Q��<2��l���I�W�'NR�_�eY��+��$�S\;�&��#��B�5��r�s�3s0��j�i��e�x��_�qG,B��A�K�ܨ���lO*���I��䛄\��X�Y���C[��
��R.+���d9��n�8�8}���އƒM6rw��ӷg���p��$���UoL
Nr����h#3]�l�0�*��A�W�-s�J�4=\�|~��� �<S�I9�y8�`�d{�|���3S�2G�(>��t9n�N�z�p�r���w�㯕�{տ<�E���s�������'�?��Qޮ�k~L��t��sG�W��iZz�2�,��oaB��8�!:A�@�h���sǜ-�O�Y�zҭo��>z��o#4��M����G��bdR�e���硳�]!2�O��Fr���|�]}1u�RcP͡#��d�6���,�1�`�z����"2�?�ca�#��N��Nj�?�B��N���osWl��X�Ha���[\����{?�:bSX����R
���Wkv{�M�%�|��"��9n�Éj�s��j8X�qb	�.�Ca�,����٣r��~�'����r�LYb�ƃ��Ý�B��I����Yy
��ҽYP_�=��ʊL�a�bI��
�|fR���IEND�B`�com_rsfirewall/images/icon-16-file.png000064400000000703152177723720013635 0ustar00�PNG


IHDR�asRGB���gAMA���a	pHYs���o�dtEXtSoftwarePaint.NET v3.5.100�r�2IDAT8O��Mj�@dzoO�kz��\ �貗����(�b�dPD�	A$���	MɤTt��,�{?�7�
?���;a؁�[���I��MӠ����x�+!����Е���q�{��|>c��@��V|�͵m[d��	}X,��p8 �cL��V<�͵,��e�>��sVP�`�&+����ɤ�<�\�0X�n�Ct]gy�_��\.�@c�h��
��-�(��#4����� �2t���t�YA���B����,�O��z�Y�V�W�H]�?��F�<?��f��(��/A�$�O��o���|��"IEND�B`�com_rsfirewall/images/icon-50-loading.gif000064400000014536152177723720014323 0ustar00GIF89a22����ߡ�Eߡ�ڣ�������{!�NETSCAPE2.0!�Created with ajaxload.info!�	
,22���0�I��8�%+[��B�(�����*��BW�1-�n2;�ߐW�B
8 ���f�V����پ���dL=uƴz����;SAy&s}
�`{K���
�^j��8T�M���1�&B��+����V���8��;���j�sK����˵����������ۚ���ᆟ���٢�����T���T������5��^�Z�#��‡#J�H��Ek	!�	
,22���0�I��8���a����B����"�
��L��� h�$3�@h|��ѱz�+ ;��K�S2Ʈ�s-I�@������u[Nx)p@E5��<)&1U��RG3�rg�$t ~�i]MBeO��u=dr�jI;�R�u�h ��j��h�G(�*h�G���ށS���h��^��������
�������� ̸�k�<q�L8�B���B�H��ŋ3j�ȱ�Ǐ �%!�	
,22���0�I��8���Y�i�@,���1V"P��.��og�T
pSZ�aT.b�q꒍guY-.���1pf�b�,8���2m���
V<<&BO'7%'xybc%*%7_�W|}6?x.Gb�
!Xe<JW�cZ���/L�db�qcsg���I����X%M�d���?��p����̖�4����������������0!���	��A*\Ȱ�Ç#J�H��ŋ3j��!�	
,22���0�I��8���a����b�X�@1|
��B�Y��
`8�v��68�b��CNg�^@`e��.c0�ȀO�ٓ<b 7^+�Z�M0��rp-Mw)+&l
}R�Yt$6{S!�V�W&yD����U�g}�*�ot������t/�
�Vw�!�nƜ����r� �����ڼ������9��H����������������
H����*\Ȱ�Ç#J�H��Ņ	!�	
,22���0�I��8���`c�r�q!�)�p,Ǭ��Bc	(�
P[��0,��p���àd�
��*ں.N�V��>�[�:	�+�RdhNh,x,E1,T>�-�`Mry?3#o����D^Ur,*r�r�t
xy:�LC*���G�>�.�d�sZMQh����hMj �� #�����^X��T�P��-1���J)��.�e��Jk��
H����*\Ȱ�Ç#J�H��ŋ3j��1a!�	
,22���0�I��8���`c�r�qp����*g���X҂9�E���=A���;��h�>R֩�
�!ɉ͜�_PX�I������W��v�M$@�5P0Q{`oI15*y
{}`ogWv�R_��s/�G?���K�Xvp0e�����������1�e �ʲ�
#����sTJqѯ�p�U *��2��i�p��C���멮���H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�ǃ	!�	
,22���0�I��8�E�Kq��D^�	t����!��q��i���`� �0
00�/��p+Ng��@�	�SR{3�A�&&&	���T8c��÷Y�-N!u xB;-/2*N@uv��Q$~*rY��Tjg�T.�J�6R�jJ�+�8z�� "�G�P�1���
�jX/]���CO�\Ѫ�r:��������P���������������������
H��A	!�	
,22���0�I��8�e�Kqx
A�F^�.P�+$�&w�Z����q|2�`�n/��W�֌�������A |	\����\ȋ��@d���.�=Fxa )cecV3y+gHoe\��NqpzKc#
o��6o�*��/4/����\Hi�i��d��0���t1��5�����(������t�e�
�ҝ�2iҜ��L������`���\���
H����*\Ȱ�Ç!�	
,22���0�I��8�U��)����E�$t�T��A�.C�q���s�����?�0��/b� ��~6a���F����$�Mߋ�l�D�y5��)]e�oQn
G�.pZ���|oT�3�A��x
=����]�@�S�>.�6�G�����������=�è����$���E���M��1\٫|=ͻ��>(��X5Ԕ�ܮ�����˴��5�"����*\Ȱ�Ç#�K!�	
,22���0�I��8�U���)h��hV�F�Z-���1P�>���bl
I8\H/��5Ϩ��CY��,i
�2u_q�+�p@v��^yn�<�#Og}\�nmc��
x</Q�I���z�-�x�[�����������a��`?p��3[��v���u��&�xm�
�}�e�1̥�ա��=ۜ�Q�*�J�²��͖�޼�F�H����*\H!!�	
,22���0�I��8��c�S|�V$0��a,+��i,{������
���~A�xt�;U�h|�S� X��fa�T|��@�����f���|M,�Hrr}�8[��c]��[{�\�
������@pw��y-��eT���[
�hQ:�������m����9���>���cр�)�#��%��
�������
�ـ�$��y����2���P0e
�4�H��ŋ�!�	
,22���0�I��8�ͻ��U�`1��y��ɸlk�O�a,�-�;E�'����ΐI�ru�:
�g�im�4�07�*&7gV|ч���z�	tH5�w��q\V��}�7ox79�a_��L1�s��,sB����,��#aQ�A�T�D���0��7�+�5Ś�!:�ʬ�m���]����I�䚜��ݛӽ|����f���|ᒽ�C�"7�:�����(	!�	
,22���0�I��8�ͻ�`(�d�V�i�����̴c6����2
BX�x��˅�	 ��'
i�b�YC�~ ��t���jc�6Z}��
W�`��z|#b�C�$W6b�"Q>�o{1x�(o�-��
�Z�%�s��%�6����$������1�
�;)�
�d���&��ܓ(Ѭ��>�Ԕ9�����-�h�1���0��7���L�-���':RI!�	
,22���0�I��8�ͻ�`(�di�h��l��+��ѵ��v��2�0��`�$Q�($���25��+���z�TL�`P9��@`r�a2����p{Vs!S�Mk'�z5�u&�9��h!�������"z����"S��s�o~��lj�~��$�ˣ���v�%���5ʙl$�Ɨ�
�)�
���(�9�h�jޛ���v
u�>l��F�Y
5�4)h��H�"a"J<�!�	
,22���0�I��8�ͻ�`(�di�h��l�p,��xm+y��=����dR�:*�̢� ������P�`e0�n��� !5�K�"�@8�d]~k4v#_:}�4d�|�x��Z\}���
�d�gL���b�tT�o$�<��\pZ��"�
Tbnb��\�q�
�T5���[ |զp�v5���ү�n�n�!Ӛw������������we�5m�*uP��΂v-�PC�H�ŋ!�	
,22���0�I��8�ͻ�`(�di�h��l�p,�tm�X�|��B� ����G ���a:�8�)��\��Q0X�p�@C�!�p?��y�p�;�lm|uf�s�
�B�c��
f�U�H
��uu�������}���G�G��O�
��XĿ����e�E�єB���t˒Ϝ���!�������NtQ���р�[�
��Y,
ЫWh��|��HqC!�	
,22���0�I��8�ͻ�`(�di�h��l�p,�tm�x��P܂��*�(�02:-��P`�8�Cp��`ƌAIΛ���)��G�q�Ÿ�
��oqwqzU�?AujK�o�
{R?RRK��U����ce����QLL�IUAl���l<���DZD}
�Y���¶̛Ş
�^��G��e�?�u�l���I{Ie!���e��"�����pkr��7J���G,�5QTd������
	!�	
,22���0�I��8�ͻ�`(�di�h��l�p,�tm�xDq���`�����P��Ieof @����xU|�f��!�Ka�)H�X�fk�H��R/7+
W_|v
q>{>@��Ii}~MLVE�H��r�S�E��~qM<ED����M�m��>G���i����a�e��
�d�h�js���z
�bYU����M��!<��ҭ�ؼ"<b����
�!a�8�V��@�n:"JԐ!�	
,22���0�I��8�ͻ�`(�di�h��l�p,�tm�xC�����C��p0l��I3�R³u ,
�ko�*D��!�*���㾘
�K�W�px
g|n[N���
ps~�kuVz����~�i`i^�Wl��_�`O��]�S��d��|����l��s��l�a[d��
��|zlz�!ʜZ��ӫ�"�y����(���m��yT1�J��	!�	
,22���0�I��8�ͻ�`(�di�h��l�p,�q�@AC_�Á�-!�'8~*ݲw @U���
;0�C�H���װq��q3�X
����VUAC>-mxA�9CM},f�[�(?CoY[ �6?;o;��
s�5YH�M�����HB�P�#�h�H�x�o�!�����;�����ϼ����P�ªخGgW�����i����`'s����Q����(���"!�	
,22���0�I��8�ͻ�`(�di�h���hmT�P�Q0���oQ����hh�X�ZP �jɓ�8�qZ*�b���Zl�a�⒇k����~^-}��x�yk{xao�1U���(d/�&3jq
�)7U���=��87�
`~�Z��
�H"�7M3=�d�#�_M/����e�őT�ȠIĽl`q�$�͵�����lU�tmY�T늫��S��?q���C���*��!�	
,22���0�I��8�ͻ�`(�d��&)&Bk��L�
3�38E�0�~� �P\!�;��58<���pD�
MC� n)>@�p�vIʅ�]��SqU�*��Q
l~2�Woc|��VOSm�|������m���k��W�<l|�)C���-G��6k>k�i?(lis��&=
s�s�bke�'�(�(=Gζ�Ӧ�w2��ʹr߫G��� �j�Bݼ]����r~k�#���t���_���$!�	
,22���0�I��8�ͻ�Pa� 1�7c���n�Z,:S‰��İ���^�wDBLG&��rj��TQ�e��l 0�H��0�|`@Ow��8�y=7�H+ha:W�y.PfL�)X�0���3=2�Hfq n����z�����C�������"�����������V"��q��жm�WɣB"�h��.̆y�h�N�"�٦����y���΋�����׸��n�k�:觰�Ç�!�	
,22���0�I��8kXH� DDh2�`,߹
�2�.f�ӵu��ߡ�I}
��P"rp�T�:��-X���*E��!0��+dxWd�i+
�@��ީ^2)pNd,z
�SgiG?|`[U��.?�2<�y{D��n�z��&71���5vX�gn�� ��Š�������o���į�УǼ��|�_��
�g��ow����J��=��p��� ��Wϝ<���Nap�1Yʼn3j�ȑZ;com_rsfirewall/images/icon-16-not-ok.png000064400000001374152177723720014132 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<�IDATx�tS[HQ�f�2DAwuCs)V�ń�-�,��|̠���6��а��f҄ z�!C�(��fAPT�Evq̜uWq�]g��9��8a���|����?s���
,_�M��s����Jk8Ϛ8�?Ց3N��q��j� ����s���VY�{r���y{M��QK�n�K����y۫�<�����d��6�
��M,�5Uޢz��9wWS��pʎ��8�=Ùf�wm�4�r�X����s�(,�W�x��_�l�ө.^_���l���ᅥG�O��
�&k�kUA��pR�i��7��Zv^��1��n�<���rӽ�.��	4���OG����^��*(�vp3Sa���DL�'�#A�I�Os_ފ��
��ХЗ�d0`m�HHQ⩦c�H���!�e��UH@q�k�e^gm%�E�c�ERQR�9e|��o�X��@�����-�*E��ɒ����~zś�H��>�ᩖ�f�Y3�oj����C2����`�D�)0�ʰdmۃW���/`�]8�ᷦ[|yٌ^HœA�*PQV:���f�M&gU�Ta_�)�����m�ER<1�B�P�h�sԟ	�P�Z�Sm�.4�m�f���i�Z�8����38��i:����u��Z�t�	�$��:�`Z�����˳IEND�B`�com_rsfirewall/images/bg-button-green.gif000064400000000144152177723720014523 0ustar00GIF87a�x�Q�Z�p�L�E�H�j�d�m���Ja�W�,P)@�#���G�$�(J���p;com_rsfirewall/images/bg-content-box.gif000064400000000176152177723720014357 0ustar00GIF89a(�������������������������������!�,(+�I%�8k=��]!�dYh��F뾰�t='x��|���P((��;com_rsfirewall/images/index.html000064400000000040152177723720013025 0ustar00<!DOCTYPE html><title></title>
com_rsfirewall/images/icon-18-fix.png000064400000001761152177723720013513 0ustar00�PNG


IHDRVΎW	pHYs�#�ugAMA��|�Q� cHRMz%������u0�`:�o�_�FgIDATx�b��Y� --���_���턦�����}��ųg�&~��}����222����LM���������/��2����˷o?�}���KSS����@��Dk2s/�V��F��������?~����z�Ν���c#--�.,,����`r��k@���������>}ebPV��� ���x9��ϟ�2\�z�����Μ�v�Ç�`rrR<<��?~�`���÷�?������P\@L22���+������_�jkkC^^n�w��'���O�_�3|�������AGG	� �bacc���j��/^�9��l��������W�,��}`x��s�?7?9��b�t�Wm��p����͇���m�^�~���"��G��?���^�~����?qOν:�L��c����#��YLL�����""߾�b���?0P�2<z���y�;J��}���������dm�YAA� ��YC������z��
h ˷o?^�z��I6N�7�$�Nd���A����7�/�^�<��ō��,���$T�. ���R�/_�5������������!1I�0�W��~�c*����������_�����_�ԕ��4F&VV���X���7��L���5���6%��B��\`����~�����w�*;�$X�E_�~'4KK��d���FF�b�q@�H6�رc�����	�$)46Cv��	f�����(�������#��G�⥑�yxx� �U�����ף8��k`� F��pAP��k۷og0�?�����VIEND�B`�com_rsfirewall/images/icon-48-updates.png000064400000005141152177723720014371 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<
IDATx��Z[l��fv�b�����cl�KB�4�%��IS�JUT��%��j�>��TԼ�U�4y�R)}i�\(�Z�Į�p�l0���^{�s�]���׆��t<3���|���g-���'y�o��N�q������!��9�N�����ޞs���^SS�;v 
=����Ƿwttl����R~��޽{�r��l������d��ݍ7n���6l���(i��cfX�?��rx&�u]G<��(`������|`��z���W�8��02��$6�M�͛7QYY�����/e�~�_�
�Y��G5��=;_��2�(hShMMM�۝��(//�ڵk�4>c�d�����Vn�/Zff�p�k�U���E|:0���-O��]O��;Z��N���=���Ϋ�Ըj��](0����q��������?��T?y�(܎����+?����d���� �q�t�A҉��������?��.��7gJf��r֢a��p�/o.�@�L�Sp����8i�"�9�<+�(�[E�h�/pf�&4:��TS����E48�b��Il�X�Ϟ.�lA���m�	����.�۸#�.��<x��
ō�L�/�,=���%E^̃��(3�&t�E��	���D!?+�py�x$3#f�Y�B��p �`!���b.�v+#��e'wJfV���#"�BΉ{m�;��
��Ki�'U�̡��=0a�!Ou�����Wu\�e<6n"��j�s��I�﹎O���)	��\�
TB�,X��<�i}u�>nYBx�yɹy�(SFQwE<tg/��+��>�3���Ȉ1T�&Q!�\�Ė��Y�W���.�C[�ܸm_��(�i��s_�ȓ�,��"�#��I���g��ځ��vx|���"T�nt̀A�Gc�5��~�
�X����<�7�wz^[�ZH�����E��8H)�䙇�'��|e�G��]W�bs���@e�%�ajb񈊩�$Tj��6ҩ$v7��u��X^_%�=��6N���D!���Q�zo#�l�%)��x?�%D���!h���6���E��w�b�gY���Na�V?ʝN��76��ڍ�X�jN��>�� ���)d�3�>�S�c�@!�:T0�S�ȁ�N�]?��_;HT� gT$�՗{�aA0����-��;鳤<�,$
��‰^N��,}:Xj���GdՓ�"ő�/�T�#���>\�>�}��`�?7�������Fp�V�VD#Q4!�Ym��j�{��o�\����ϸ/X �QȠbe}��֜�s�2�-?�yJ�꾓h\ׂ��sn�J����24
��h���56>6C�j%�F�h���(��?+<�j��v��T)��NL��^������}�L=���=�@ ZP�5��˄D<�ʋl:���Gb叀���e�-J�X�S��ѳө�����Bu��2�[�AϦa��7�����dz*�O�M!��P}u�z��_y�!$1+\��D#�h�)���6�8�`$c���
)ۏ��n��=� �l&���^L��)R�}���@.;����SS�QKԭZ���9k.���GjAT0����EC����~R�	x�����ccH%��>���<��g7�Si�F�_03���@5B���H�.s�)��{Gƨa��1�1�;�T���
�=݈Ŧ	��mx�6.�[q;��� 9�A}����#�5��E0��tf7���DS�����Otcc�0�G	G�¬�&\_����W�`th�n�Q����1vo��B�3G]}6W\B��Y��ρ(47���/��_g$�&��1���
�ƚ��!SU7'����r�����yQ]C��ԩ�(�g�KH�8�BQd�
���D� �5]c"na�N�Uc���Zn陕V��whab+�cY���Q1�	�~>�>j���”t�H%RhM���;�XJ+QDFY�g��	�,	uM��N�5�.Hޘ?r��Hŋ�F�	x��z��WW�SY����R6O�5L��`��_�F�F%��khV�{��о�$�R	HNע_�(�b�
�I7��w�>���+|�-Qby�����h�kb�h0)a9k4WEU�TȊ���޾0D���wI����4��yM(lq)KJ�h0�h��
K6Y����������W�+8�!��enϔZRw��;����ȧ�Kf�hUbE�S�D��$��.TN�
��c�(ZB.'-�4�n��f,a�k��Y�$ȁ(5_65C��p.Ŧ�M�h��I�y^ZJ�qL����-�C%���W��93��?��d�t6�g �JcgS=���2�y��|6iى�ij)h�ƕ�,��p1��cZ4���ktZ9���F$��O5r[���C~�B��
����e8�m=�TR�����I��{D��'���<֑B�b�C�������Ȱ���QhϞ=o�>}�r���C3?_>�[8�
^[��g�/X�?Y��C��IEND�B`�com_rsfirewall/images/icon-16-ok.png000064400000001203152177723720013323 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<%IDATx�b���?%��T
-������,���0������ �	$�H�j�s��L�2�f���-�������	wA�lo6\��r�,l܍������I7�����Lq�r~�h F1��gad��a���5��_^�_^a���'�+��¼�-!��~�r|���c�?x[%����gg��c��e�/��3�������o]��m˘�j�?�=����"Z߿�a�ul
Ï_�*y����������g��޾�p��#`��έ9u�Y�R�罧W]ع�^|�� sw�O_>�؛x1�}qho~m~�5Ý�~m^�p�<BJԻxx�J�����8�x�e��<;���G���fx����5=7����~9�]�<�����`C���_�=|
ּi��#�r(�#U�����TZI����,���W�߁5��zc$$�8�^.^�")e!�/0�|��yߢ�G���)�6��������� ���:�3����-C8
���<3R��F>-6��`IEND�B`�com_rsfirewall/images/icon-16-folder.png000064400000000751152177723720014174 0ustar00�PNG


IHDR�asRGB���gAMA���a	pHYs���o�dtEXtSoftwarePaint.NET v3.5.100�r�XIDAT8Oc`p�v�Z��7o��q����>|x9�*^��Ç��߿��O��?}���3gά†�;6s����`K��z���Bx�ѳ�����
ę��wZ��8wl�2áC�V�~��?>�����O�������g`�����U�<���՛�����V�����kl���%�V�b8p�������_e�y��x�U���[5w��YI�bճW1�ݻwU�̵�e�6��EJ��bسgϪ���K6.&�bؽ{����E��ʦ��2[W1�ܹsEP����$c��U˖-��A ��?��'��	���KY��
�CI� �,D�\
e�$���IEND�B`�com_rsfirewall/images/icon-48-dbcheck.png000064400000000760152177723720014311 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<�IDATx�왿j�PƏ�%.�B�.%Cp�[ߤS� d�ԇ�2�M�\%ĒĂC1��IϽ��tɍ�9�q�~�5�ߠ��n��%CË�.���Ѩ�m��Eu���ƨ�m۳C?�
1�7dY�-˂^��NG��4M�u]p6���x���iB�߇$I �c�@��*��(��$I+� ��^ŏ�}��/�k��`�0�Lؿ�����ł��ో�s�\BE�i�Tg��Z�dY&|H������o!+_�ß�@��ɘ\���S�O�d�!�>�`�y��/t�W�A��{��/�]c{D]�A
�+�!�B$&���Db"1��HL$&���Db"1��HL$&���D�@�K�}'�A���z��w�Z�>��X�)�0���1mIEND�B`�com_rsfirewall/images/flags/py.png000064400000000672152177723720013275 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F@IDATxڤ��JA���K8
�P$ �"h�;V�>��a#�V�k�;��1���v�n��K�`.�`Yf���ogva8@h�{�����o�d_�8_q�:YFm�[B����.�$I�A@�/���q
�j��$	�rR�Q�!v0�ND�B���l�a(���Xzw7�t{)&���0��h��}��$�=rvuM�<���^�
\�8�'T6�79��!K3�	~��t�NP��Q�Of���w�+:��Vp�&���t�(0�P�B�SS5�Z�3`D,A�y��h�	�%���T>H�d�0μ�5�+���X=�IEND�B`�com_rsfirewall/images/flags/sm.png000064400000001050152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MkA�3���K��A[��[�P�#��;x�W�W���
BNB�'� H���6D
5
�$���&m�����<��?0�c7��4[�"
�6c�5]�����Q5�}#�뼓���[����NT^:�fI�,��m0��jmq�~O�����`<<��36�����?�����Z
L�
�k��^��?���>|�<s���F�j�½]~֫�+�p×X������U�t��ژtt
�3�q|�%կM�ԝ/��!�p�.��yL�vQ��D�D>��H�໷x����>������^���ȓ�`���$9PJ�g9��U�pxEF�1Q^�|B�d��L��� ��ֿ5�|�k�\�czclK ��Yf�Y>�ש]��Z��W���5ѹ���(���w�;���%�J
IEND�B`�com_rsfirewall/images/flags/mu.png000064400000000640152177723720013261 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F&IDATxڤ��J�PE�#���%��u#u����n�F7��".ܴ�`��-)���d\4Ԉ�&�ݼ��;w�Q"�:P����*0������h����
�%M����������n�$	�����j)Z��o#I`�n�����`'���=�"�>����b(J���$��@��=L¸��f
G�����c���dZ2�o#�?��ZG �-'�7Z'�#�ߞ����I)5��kÙ@l.�3e)2�ؘ�#iƸ���g4
�6ЬH�������)`Ժ�3'5pZ5kpKIEND�B`�com_rsfirewall/images/flags/aq.png000064400000001112152177723720013234 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA���=�m|����dd�"�4P���44�=��(hy(hR
(�A"���r	1�0w�o�w76	2A���l1�?��ίD��H.�M�y��,>~�n�:N3�V�����Tr�=�Rd�Ъ��>����Pp������f���݃C�LX(��r�rѡ~�µf��ސ��۽��璦9�����Zq����c4W�}�E�U��j�e�A��)6��iJ���N�2����_B�a����c�V��>F+��U�i.yl��?��h�����ٱg��4�?�ݘ��	��0a�s�&���8�Cp����|�E�~�{��r�Z���W����ǀ$����D�N����kn��D	�N�W�*�"�o@��A�Ӊ3?z����܂�]p��E�,̙��Q����	ȀD�6ο���k�߳IEND�B`�com_rsfirewall/images/flags/ni.png000064400000000657152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F5IDATxڤ��NA���B"
;y�����;P�2�F�#XYYcb4F"�ۻ۱8�3��b6;����QU��5�9���S�O÷�D�>;�Z��y��~g��T�aа@�f�d�2�$+�eyDV�tZu�L��#t�C�V��-m{Qi�����u��6���$I~�r>�apy>�hK���b���C�r���X���A�K�d��aq�[!��-���|�8A=�8�|���"�&�U�Y�V�*.]:p>�|���0:��ڐ<����5���9�d�u���6��IEND�B`�com_rsfirewall/images/flags/io.png000064400000036652152177723720013263 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:15:39+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:15:39+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:1fd91f65-68b0-474c-90f4-6ffb9d607ca9</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:b65b9026-0da0-b046-8eab-b40c46efb8e0</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:b65b9026-0da0-b046-8eab-b40c46efb8e0</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:b65b9026-0da0-b046-8eab-b40c46efb8e0</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1fd91f65-68b0-474c-90f4-6ffb9d607ca9</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:15:39+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�$6� cHRMz%������u0�`:�o�_�F�IDATx����KSq���o�8u��]�V�K������]|���!�!�ר �!z��^*�� �0��ʐȨ��D���y���l�mG�s�_�}����WH)�����?�f-w]��w�b�Ҕ���
-�j2�}Ni��0ʕ�CD�i?�\��0&Z.<Xk?�(��e��;X[Cm���a�^ϐZ��l!\W���>�z���t�.��%b��YM�0����'����bI����ˌ�5�2c�5%���+�\�c�#�[-Q�uy#�UQ��1�7���jnd�=�6F���}8�x�e%��?����:�+q,�� �����/i���ӆo����U�?E�K�H8x�5@��R�s"��tj?5w����&�jI��j�zl�?�<�.'�@ח��2d�^�J$�Gř�ϴ|U��$����H�X���*0`©�Ҧ�+ZC�"QKT=�c���d.�UU0��Ș�mV��$�aR9z�D"E(x��A2���;8R2?��W�ͪ29��)u�v06��Ć���`���BR31:���0��[w�פ�h�V�'#h1���L,ę��r4T�b$���
-���:�*G��	q��q)��M�0�P5>���C��o#����/�UnB����J��N����G�����3m:�obP�Ѝ�
IEND�B`�com_rsfirewall/images/flags/an.png000064400000000735152177723720013243 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FcIDATxڤ��J1EO:��J�-n���¥B�~�Ņ��G��p-n��"
�g� *Sg�����E��L��B �}�&/�OXkYV�k���Ǥ��q��oo擅p]�[����M���J���N���&�#Z�oǪ��͓�x�Q㣟d��U^;��V���	��>���%�XƊV�N)���?v	#E�N+�h�H��|'<��|�

�� �+����`�fe�5g8�F��X`�����nf��1hc�J���}߷y����}�])���u�����L�W(k��I�����ngޢ(���Y+��P\�
$
������@
Ū�3y=̵a�hIEND�B`�com_rsfirewall/images/flags/sa.png000064400000001060152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MNA�������,l�D�6\�3�9k���A
�d<f̘�����
FQ�z��z�J�*��3@�6�@���刺?���:�i9�v��a�E���9�8�R����%@�d�6䫜l�q�;��<���w��I�!�ސֶ<�4m =�5�2#
"��1��RE_���5�px���E�@k
�PV%�Ղ��ݎ���#b�(aU��_st�y�?К���eUn�%�)���u�|9G����+��9EY�E��3�� "z��_9�8C
�[�/|<����)%�N�Ro(��)%�J�_��}��q3�3��p}wMk�n7��$I�BR��������@8g����@��Y��a�t@�Xg߹����#a��#@my��@��$�$0����&��=�e�IEND�B`�com_rsfirewall/images/flags/cr.png000064400000000554152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��J�@Fϝ�m7X��6���^[��ʷ���5�	l�dgqawe˜̵0k��dO3�w��^QUvA���cؤ@qqs�6d���A
du����?����+@&@��O��/rl���o3)����l2!�V�WD��[LQ�\v��9Fv�#����	�s�Ơ!���绵��Vc��*P����q�IN�n��Q����k��CJ�PG�^dx
��������e�v�e'�!��IEND�B`�com_rsfirewall/images/flags/generic.png000064400000001667152177723720014266 0ustar00�PNG


IHDR(�4�tEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:EA0C66FB4DFC11E487B4ACAE3669F2A1" xmpMM:DocumentID="xmp.did:EA0C66FC4DFC11E487B4ACAE3669F2A1"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:EA0C66F94DFC11E487B4ACAE3669F2A1" stRef:documentID="xmp.did:EA0C66FA4DFC11E487B4ACAE3669F2A1"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�/��PLTE���U��~tRNS@��fIDATx�b`0OmY�IEND�B`�com_rsfirewall/images/flags/er.png000064400000001205152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��NSA���3���ZQ@	�v��P�i *���q����wn|wDq�i�("��D��vf�qQ�Hÿ9��|����=g�B��p�#���<��5u%��	�v��:�p������.�h宲�-Xt��=!߳�8�����@Z��4j�f���膪Q��
�p)�ߑ+�ru1��8 @k���4��a%�S�ɿT�s���u0ߓ����H�1(1t����]����4+�x���I�ĖglV�)^�;�)Z�v���7l��*Z�ME��A:tU�����ec����<9�-h��=�8�u$G"̢�8&�4����o�4ƯD'��o���s�b�a>"prɠe_
#L����F-}�T��q|B��9x�F����攤�2�̭Q�7����I"�$u�L�q��u:��av�3㣬�8HfP��3� �Z��ރ9������Pf%W�O��@�-!N�@2mvaX�<,�lF������u�IEND�B`�com_rsfirewall/images/flags/ht.png000064400000000610152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��J�@���&�Қ
�>���'�5<�d���	<	>B��b���Mv<4�<l��������1��12����9`������C��>�_���m�����
o+�Y
X�v�7�wQ��Ձg��)��l
 �)*��$*��	"��n���f]5�b�7$�=;���|e� �sJ�p�KP�̓
!
ZO��>�4
&�D�o��94Ͷ����Ҹ@D�d�ɲ�]a���S�9d��p:�\K���H@8s�9���x��.�IEND�B`�com_rsfirewall/images/flags/aw.png000064400000000705152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FKIDATxڤ��JQ�����11+
)6�/���C�$V>�V� ����� � �!K�4���w�Zl����L5����5�Hy`aR���P9>i���|��CDJ���f�JJk�v���f���!@kx�J`�I���r��}
�D���w&k��a��p4�Z����^Ua�n�!�����㐎��d�L�~�g
�ҥ��0�ył����JI��GG�~B�W���~�m�Q��
`s8΀�/�ek��� ���S9���y�b�n��5;�>?9\M6���On|T�%���{t`N�df(���s��z��~͊IEND�B`�com_rsfirewall/images/flags/kn.png000064400000001226152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�MHTa��o���x�r�,u(j�ZD7�A.#hW��ֵ���FP�Y�!�Ŭ��$�q��c�8�����H4"��l�y8��Bk�~BдU�P6����n���a��'��:�s!�t��b�
9u��Á��9��|�`��#h2_b&`����V٨��(Ao��}i�I�m�
k�&�?l�z��|��t��ʍj�M�ʙ��؟�|Rb||�\.G��"c]3&&@͕*%Jnښ�-�d'�|�S����\?�3�W��
%��@J�%��5z;$gex��!��眖N����fJ�Qhs����Tk��:F��,.1�2J6'���ӂ�sM�i��"�!"��@ }��X!�f��W�<�JQ���K��6]�(�*��R�Ǖrg�+�Y&ʼ���կ044Ľ[�fԦ,*�FXb�CZk�����~ �&,��P��E��ů�ֈ�����m��^ԀC_���`�������]����G/8���-#{��'�k�����ȸ��IEND�B`�com_rsfirewall/images/flags/tl.png000064400000001071152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1hA��ٙ�wa�V���^a��V��!����,�X�Ղ]��F-,�(iB��zQ7�w�����Xܑ5B G~x����7��9N#���O#�V�����Oy�d�I��nsN��_5���ܪI؁�x�z���@E���ݳ!�k��A�	pn�F�$�gR����C�ݐ�����K����bX��<2m�G�8����4
�wc�W�l�!���������ϐ4�P���f��t:cX~(x�6Cp��+`��O\R��N��F)�D0��U�V�D�`�vP��e)I��$Ix���� ��y�j��#�ֲ�wd"��yV��!�zE��N��s��W����g-������׫�G���:~���hc���n��ۘԝ|#8�N�����IN	�#N�J���]�$IEND�B`�com_rsfirewall/images/flags/br.png000064400000001257152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F5IDATxڤ�KHTa�����s�q�F�il*$E�I���ܶiSd�ﲪ,�ePF;w����hW�����&�%�Ʋ��͹�˜���F�6��xx�x_!�d'#�Z�~}og,�������V%`:
 �(B�K����:�í�-$�#�(B�&�D��*���T!
���v֬2��"���X�̾<M�	��g��&��Nsh���vU0m�B�B�*�ے�tt���=���UIwW����j�$݌#UL�@(&�p��tE�H�b��X�J���O�;��1�w}�a� �[-�E�S4��U�?*2:��ti�z���G)Lu%Cg��9�-�I
�dA�r"��|#�udp�J�*_f~1�|���h�2s�1�YmӁi��5���j�+Wνez&��d�
'�~�d�S�&ڹ7݊��Zcu`^�K�*�lgd>č�1n]H��-��b$2!|5U|�M�0�8�,t$���k��r���F.u��qy0�B�V	�9���Ĵ6�hI�e%��#e`pF@Ws!1�g�(��fր��"��8�%vZ������>)�IEND�B`�com_rsfirewall/images/flags/ki.png000064400000001247152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F-IDATxڤ�;O�a����}-�BK#�$�����Р�����:9�/0Q�f\�����t��D0Єj��-�ίC���$w�\�s%�0�p��
��44л~�����_��b�%4Ƚ��W/�5�0aH,w��06���x6D%��#	?X�!���7����}�v��ZmC"0k/� ނ��H�m_*��>������D�z
�tD��c4а�u�󡔄�t"�ZCY6�.�^r��-��y!�i���n�r7H��V:J�s��eG1�~"k���9����w�,1p!Kff�he�Y"3�#y)��{��}�WZ:��]:�
"#x��0*�v�G�7E����ѝ�c�[�Ĕ���1%�:ه�K�>��L�D��7�3�3������b������ �����$�gR``y�&FR8�Oa�D��{�;�fdt�J�A[��~�Q���cH)(WRI��iV����h=���qZn��/E��]�x�q˒�N
����R�@/0$�مm`]�S$�O@x�u�7N���Ϲ��IEND�B`�com_rsfirewall/images/flags/gs.png000064400000036070152177723720013257 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:10:49+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:10:49+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:ff29f40d-4f3a-2645-ac5f-9015475a8276</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:2d2c2f9c-45a4-c940-ae0e-6edafc405c54</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:2d2c2f9c-45a4-c940-ae0e-6edafc405c54</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:2d2c2f9c-45a4-c940-ae0e-6edafc405c54</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:ff29f40d-4f3a-2645-ac5f-9015475a8276</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:10:49+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>+�dQ cHRMz%������u0�`:�o�_�F�IDATx�ē=hSa���}�ޤ?1i*���_�
�X,��[Gw�)�X�����:8tP�A�ԂC���)����$����~Zq�С/�p���y�c؊[�5;=S(��Cw_~g:�����<87@�.�=[�o����vQ�/�Yϗ���X5����Q���������W�;!(�����"��(�^���ti�R�D�#���0�!�I�=��{o]q��n�9�~ا(\�Tպd�[W��(�����'ye�pi���>M�Pv��'i���"6��A޼�g��
�">���(�ŌA�]06�D	k���?3�,A�usf�R@��k@�h���d���qB����\q�Wkc��*����F��8��}"B����#�c��g�0( �"��Z��ai�t+yj_^������	�Q+��\{�FB[8x�m�0�Ɗf�Þl�/l?��@�l=LLIEND�B`�com_rsfirewall/images/flags/tj.png000064400000000664152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F:IDATxڤ�=J�A���IDcPD�P����w��Sx[Ϡ�)R��I�������� ��f�yޙywF������]%<0�@�{y����ͻ�]�d4�r~�d�
DO5|@>���G�<�GeC���`p\�e���x$@B��E1F��'�{�é�,:HY 1PR���0�9���>����	=Lu�T���)c�����#��H%��#N�H��y�v-�{�6�x��u�P�\�_�<����n��ݗ�\�;������*	�L��(��z�YF��p�W�����̊�j�s��v��+���IEND�B`�com_rsfirewall/images/flags/cl.png000064400000000650152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F.IDATxڤ�MJA���!�N6*�FЅ+7�{w^���A�]@�A�$:==?�fH�R�j�z��Q����H( �27	L}�sx|2�Z=��?]�Uh幰���J���I�-Z�]V`�ez���q]�$.�j0b�8��2�s|[��17�W��97����~o`�"�j�=c����ٶ�1��!E񩱈���d�$�ۭH�P�o^�y�  �u��ZD��%AD���	kA@i��T��$Y:#p�1\DѼ�O_y�1N`h7��*@�F�
	r��E�1�vY�uIEND�B`�com_rsfirewall/images/flags/kz.png000064400000001131152177723720013260 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nQ��s��ٍm�@솋��
������(yZz:j$
�DAJ)�,%1$��ػ���=Ca�"���iF�4��%"\E
X�gu9`d�ꋷ��V{>�����E���_�?ڱ@$Rpk{�������B���YXY�/'�� 5t�ٍ�c{��<�}Nj���~��3����r`,��1Y6�7���Nx�����oL\��S�<��
�l���Ş �����#JƑ�	� ]�N�I?�h�!d�S7Dt��~�oS���(wx����\4oujQ���:��:ձ"�&s@��Y��s:u*A�YR���gh<�`"t�x��{K�.T(������;�q����oFY��'{�€���S��8GW

��C��j�[�\H.�Px�4M�5l�BV�����VI�Z��M�n�L��6���K]w��P�@y�,���,HfI@8u�8�E�ݕ�	IEND�B`�com_rsfirewall/images/flags/pr.png000064400000000762152177723720013266 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FxIDATxڤ��+�q�_Ϟo��ϕ�,�(�/�QrA;��y����P�/H	Q�\\q@X�B�Ŷ6�=�}�={�
�'����y}>�ߟ�f�6�������D
���4��4�s<�yg5 Ϟ��b�Pu�y~	����8��d#�t�y�4`Mw(�xξp�,�nr|��&�e �,"���X/GG	fg�Y6N5(�!%��G!��r�<�p?��}�|uD��u��=M�[pe��k�a\�'I$�0���8=
E(�oC��T�
�.[��_�Ngim��28�Ճ��-��(�O�����9�:��4QJY��h1\�a����x�"����'@����
�9�Ǩ4��^�ͯ�����;X����o�H�;��7IEND�B`�com_rsfirewall/images/flags/gt.png000064400000001045152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��KQ�?wf��CͅiR<3ii�J�E��e�G�D�6"h#.�$����ӧ3��̜�{���������{��p�P@���0a�������_��F_�y��Ç������x���_~�>Xnz�N�Y�'m0>�as���	���
��|�k�|@��r�'��.G��\��X��2����h	� ����#Nӌ�p�}�kk�R�q�X�O}��8Z����s�+��G]��8��ѦR`�+�z���/�#���f�	�)"���Q`���G?������Yy��w/ֻ���1�G�N���V��B�'""��G����~�{
�S7up߻�r�V�"�hF�|�f�]��^�4�Tق���
��C�B���I�V�v���W�=��vIEND�B`�com_rsfirewall/images/flags/bg.png000064400000000540152177723720013227 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�=N�0��I�,!@���A\��Y�9�@H�����CA�,]~^3r���o��X"rਫS��wTf�:���Y�&( ]H��dg����9��l}�a{/,�ν�U���f4���^�j=��I~H�mP����(�.����ۛ{.\Nl�Q��(x�Q.{@��eDF̌Vu���
Ĺq_㟧h0���}NT�
8�'���g钘�HdT�����3Y²ġ<IEND�B`�com_rsfirewall/images/flags/ne.png000064400000000672152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F@IDATxڤ�1JA��͌1�MH��l�	�XX����"x���	be�OA��hH��3���"k�&E��00��<�����@-ۋ�}
4z�{�En��<45�Q��L��3@�%.A�2��*���	�`
q	������o$����R��ڱt+�v�Z�դ����w�Q�V�����4�1�i����������M�7���8�q�3@e�l����;�G����f*�,���ܱ�WI>��8��q��P�-'k&X�PA(�e.��d,`e��m�/��4�
�^���y��IH�-;ο�\yߖ�]�IEND�B`�com_rsfirewall/images/flags/td.png000064400000000715152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FSIDATxڤ�KN�0�?�i)�"X $�KN�M�B�	6\�; [$�!@	�?���.�
o��h>�����0��}��y윞]�/{o/���|����z?6�Z89:H��qb��ǭd� ؇G��оn(�ϼ�#� �O��z��{���:�֓����=@�DA��}⴦�f!�2����(
�E)�/.B^Gpp�F���4���4ω?��΃������/.M���Ԟʅ`�A�m:�!�JP��z�a<���ݓj��z[D0.8�a4�Q@ژj8L�X�'�I���$��H�׸
Q;+`8�W��xQ�nI�h��;�?ۿ�	�5��IEND�B`�com_rsfirewall/images/flags/uz.png000064400000000716152177723720013302 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FTIDATxڤ��NA��ٝE`Y�l�������11>���`c�{�6&�&��X��h"?��3�쎅�$j��ifr3盹�{�1�U$�P��<�T����eN���<���a�U��}z<	��7%�QL�d�� J�m�q��0�?(~=Y�1p�<p%`k��g)���?��1�c��`	�0���U����%��ӥs9��j�㌐���M+�Ufc6�6��� 0y�Z�R*���=@E�s�h_��pг�l@���ˑ%F�xx��
�8]n*�a�@+�����RC�V�N������DA�4/�y�
�΂d�$���s����(IEND�B`�com_rsfirewall/images/flags/gh.png000064400000000705152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FKIDATxڤ�MJA���L�t�S!��<�+O��;�ݹU0x��� 1��Lw�L�����*����U��*%"�T���o�|�18��ڥz���j�&T��f-+��`z�5��ƸɄt�]�^�T!�5�x>@b,�h��7���p��KA�@V5���CkG�̧R.J�
4s�#�j?'��{��9��m�����A2�h��಄����Z��OA�`��:^�޷)7�D�)��\�X~�x8>(Xmq�|�֙����� ��OY�`��'��:~���,�Ud�����@^~Hޖ)`վ�7)&��3��IEND�B`�com_rsfirewall/images/flags/am.png000064400000000636152177723720013242 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F$IDATxڤ��NA���.�	`A��`��O`ac�Z�X��jlmH���L�v�ݱ�SCq��l3��73;���G�����G��@zs;;����~d���@r~�YP��е�Ѣ@Ӕ0_lGk�њ��-
c�s�劸Z5�0��r,�Ur�(XJN})"�kI�p�,��J�,�y��Y��A����!��5�ug�[��Y�k-<^�q:lC�!U���i����s�C���-�����ɜ�x�R.��b�S�u��L�|F/@�=�S`*����i/�=����ymh:�oIEND�B`�com_rsfirewall/images/flags/wf.png000064400000036022152177723720013257 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:21:24+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:21:24+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:2018aafd-a686-2441-9e28-15a34c881de4</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:e1fc6b5b-6810-fb40-bedf-50e0ca845138</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:e1fc6b5b-6810-fb40-bedf-50e0ca845138</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:e1fc6b5b-6810-fb40-bedf-50e0ca845138</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:2018aafd-a686-2441-9e28-15a34c881de4</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:21:24+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>f�T cHRMz%������u0�`:�o�_�F�IDATx�ē=kTA��33�n�^L!�����7H��X��`c#���lDӅ��h�l1V""!�? H�g�~ew��{,ֽfm����0��y�U����]S����=y6��C��*󯇿īϏ�_�����# [M��k���ZG6�¤]���X0(���s���%t��RF7~�sI�9�Bia�d�`����@�%�q�t�=���)X�O�&j�I=-G� �C��#����	����M�Sdk��Z�
�"Q�2��"�|sd���bG�b��Ž�ymݨls`{��;V�4���>�9�qƧ�6���ٛ��Γ�|K��.��c�W��^�,��_"H���P�c�J�#���E�{�
t�ȓ�@T!��N���oȾ=ȁ�yc��{ZR �E|y	_^Bh���<���?S߀���f�F��IEND�B`�com_rsfirewall/images/flags/ck.png000064400000001166152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kSq�?/߼��Ui�X�H���FC�".V�����V�)��t��"���]t*M�K�`4����&�I����}�\�i�
�.w:�r�=G��� �	�����"�4vM��<oƮ�g��;�Xz��H���p0>U$��ВI�M�Τx���-E6+O� `s����^��6�����e�Ѡ���c�z!4��q���߷p@�V�� 4��-�����@��<�f��fvv�^o�B��i:LO_�4-����/��γ �����9ţ����q��k��mt=D��F)�L&I�8XZ.⺂n��P��h����llTQ����d���M��q<|?8T����&�E)��,�xb�V�7�-����?ݲ\��mr�I&&N�N'�\9G���V1q���p�;;}�*�l
]c�.kk?h��C����a��b�Ng�R����r�tL<�
��G���e�<��1 D��h��A?<@i'����� �ZIEND�B`�com_rsfirewall/images/flags/sd.png000064400000000762152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FxIDATxڤ��J$A������?0P�`"31�'0�0�V

�705�@D040��IuAQ����LWm��3-6�Tt>�)�Q�9�#�|�M#T|�gm}�y�����0��=��Q����	f��Q����C�.��q����2�gi�Ho��	
l��%o���xiB�J���Q^l��h���ȇ�Zc3>��U*�L
��t��_:�DQ]]d"q��M��m��m����"��s"@DZDZ��v`�nbof��`0��n�i�A�Zi넉��Ds�q���ˣP��OЇW(��ڏ�1t��;��w�r���c�;�ȟ�/ѧ�V�(��S����f����0�u�7�ݸpԯ�IEND�B`�com_rsfirewall/images/flags/tn.png000064400000001102152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��NAE�쎱
���E"%BB)?@��������Kj>�����*���lAl�׶vgvv��
'E"9�f��9s����R�5�:U
�$��O��뛛���kڇ�vE��Z���j4+��1��Bq?�S���nU��l@]S>>���j�z�s���%�2|�!u���>;çSZ�޲	L?��\�	*k�1�4��f����1���E�� ��?����8cV��(p�n8�J����>O�����{{TI�q�EQ��(��� y�_,�}�=�./i��R�1�������s�=���k6ON�	�6��^]A��(��4��iF��m�$a|qA��3`|��:��JLc��e�t�ЌIi�8G~{"�NE��x�-�g@Y��u:�Gh˿v����L�����Y�pM@
���k�K�6�-p_IEND�B`�com_rsfirewall/images/flags/km.png000064400000001061152177723720013245 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��KQ�?o�M�jۂ��"ե�,�C�!e�.DP� ��DйK��[�E�%��P)��š-�ֺE���������n��wy��{�ߏ�0ư��>`�S�I ������#_I
7��$��J�+����0W{+J� h�&C��tI�v����ظH��g����e��Ԇ��AX�оύ��̮.��s��47G�v�4��X��'��L�f��6x�V�ΫGL}[����H�}C�W�Qެ�ә槪1������s	�6+�b�-���4���x�4�p$�
y�̕O�U��)�.ʄ-@��܉s�:u	w�7�f�9�Q�fz��C2���-��O&���1�����x�@���x�w��.�7��g��J�c�8V�BP���6��^0��beC 
���Y��`7�d��{��t��;��v�IEND�B`�com_rsfirewall/images/flags/co.png000064400000000603152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F	IDATxڤ��N�@���c���(hhi�x
:z$���ǠAԴP���.E�r�H��4������*a(`��8���؜?oR]�����t�i�pP@�x���>KF�P ����b��f"�`0�w�r�U�쮛��V'�x����A泊R9�v)��u�6�$k[�5��D�k;t5%���lŐ�6�~��xZ#vX��x���l���.�,n!-9���"�7/���)`���xT��I���S۞�bUn:묁%IEND�B`�com_rsfirewall/images/flags/lk.png000064400000001112152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jSQ�����9%I�b�R/u�8p⍂>�>�SA�CG���@�Y���b��h��4ɱM���>g�� !�4횬�����D���R�9鳔��6�u��,}8�
�����<#�mC�W��&NO�
U��;�3��	`DJv�.��L���$=�@�J+�Ԛ=�}��7K��ʓ9� $���qYS��5�ȿG���0��	� �;�#���\�Oi$���@�-d�
�
x_��+��n��e�����)Ԫ�����@�@�`���5��(�B	A"#����'�֢�����@vN�*�
[��ZG����ǁ����H�]�����Tk9�D�@��S���:��s�VW�ߎ]!F�u��/����2����k)Z���ѥR�+�|հ�P㽟�����a��|�]P@8��8?�
0�G23��Q��˷�c��IEND�B`�com_rsfirewall/images/flags/my.png000064400000000775152177723720013276 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�]+Q��NZ���ؼ���D�(��|�T|>_B)�Pn$�dC\#��I��^o���i�8.,����S����9�)%����Pa��p��ޡY�!fR�:\Z~�N��L��|�P��(W�`M�
���o��$B4���NGЦ�~�A�����RB���-@0>߁�?�Y��(�q?	�S^�l���mơ�|>@��F]���r�uAQP�1F�,WA�8��dW�A��:?��*�i�l�cv-r2��j-H�������,�4߫�9*� �w��}8�)��� n��*�0$WRͭ����~�|��@�����4��g]��rf{��BN�{,�)�
A�y4p���o����v,/IEND�B`�com_rsfirewall/images/flags/is.png000064400000000756152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FtIDATxڤ�M/Q���V�RB���� ��)������?��������/0��#��H�h�����kњV[��orss>r�{�{�e��X@�ܭ@�6н�u�Z9���ym���c�����pv��o� 0,��
&f���h�l�� e��||J�^!����~��:��$)!���,��%^^FI:���!bHY��1�M=2+�?��o�1�j1C:�Q�܌N6��X:MNĪ\�m�p=2�/�u��V��|��*\��$�w��qB�Vf �E�6X��rY�j�Gk�,��R$�!U����<�"��A)PFk���(�q�w�痿�8[@70t��y��De�D�B@Y�����/{�wIEND�B`�com_rsfirewall/images/flags/cy.png000064400000000710152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FNIDATxڤ�;KA����lX�؀�+�ݤM-v�!{���@+	�D�@�$��f��ca6�y�f`�s�9#�1��@��N
�,�5��g�.IJ2sL������DD~
x�]e�a�Rj�^�뷈T��DA+�E��B����8��G�x/��{��gL�ń���*��z ��t�B�oW�kdd:��{�� ǜ����@(��%���1��J��"]
�s䨀0��w��r��J�������X%$�������/�"N�_+9O���PZ�`{̫&=�AP.�g	����)��@U�hO��B@�y�����""�AKIEND�B`�com_rsfirewall/images/flags/sk.png000064400000000757152177723720013266 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FuIDATxڤ�?OAG��ޝc�	q���0E>}�T�*_(R
�� :z("��)��RdGBV"ct|��–��S`O����ͼUe� 6g�K��>���Õn�<`c�`��Z�1S����`6��=?_z�Z�pr��(�a?��̩�� �������L5���W*@��$c�IF8����v�7Ft��Ԍ���	N�
��l�7S.�k�(�p���9p�j�*�$+�4o���� ��)����;
5�x�DIg!�W�ӟL8�Z��9� Bԍ�nM7�%1�,T�,ϫyQ��:(�:�*�.8G6��U����a��@�(���%z~���p#-PȺ��V���t���IEND�B`�com_rsfirewall/images/flags/pe.png000064400000001030152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��n�0�?�Nh�J��!=QzB����\��"�"D�mAAH��.4�{8$M���Ŗ=���c
Ȁ�n]���k{w�hϤc…gO���{عDP	�?=o�B`��y4�/ݼ��}�`�Z�'��'�����&F���4֢��X��sBΌO��Cc-�W5i�O���D�w]���!��~�Xvw!Q��U]�N��S�‹�/ٝ�����,���c�B�_P=�bL!��SI��c�7—�wڻ ���nتF�)���m����g��:y��ض��gm��C:���F_��;J!Q�ݑ"Z�'!K��F���Hĺ!D�)��d��W}
$I���\�K�����
�^��;��Ħ[ѐ�IEND�B`�com_rsfirewall/images/flags/ws.png000064400000000754152177723720013277 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FrIDATxڤ�MK[A���Hj�F�غlk�T\�H[7���ۺ҅�Z�"P��j@��"�RP��7�ܙ;w^WL���nf1�<�s��D�iFu���9�x``����;h���~�o�OP����6�H����bo��fC!�7�v{��}~��(m�"jL��~�Z�8_}���"�������sD����QrO�Yx��9��!������1���R@LR�=��W�[���ԓ�������i)VA�%("Qi��|��z�^{w�1M+ů
RkXk���p��X	 y �Ȃf�Z
��*�2��y�[��� 
��y��<�z�@"Ώ,�B�v�{H��%`n��}��m�̄��j�:���8�cLMIEND�B`�com_rsfirewall/images/flags/il.png000064400000000724152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FZIDATxڤ��NA���<��\�
j����h�o����/�3�>�	���P�P�`c�CD/��X�8�����̟��Y��f ,��4���d��o3ub�RGw�nY�e��T����]����8m/R;�m������Rz�զ.V�sJ)
�)%�i�4���GT�C�}����Y+��R��ӳ��W���m��s�~t"�Q���v#�Z���y ��Z����Ұf���m;��׏�R]J����m�3�;�ƴ��`�s�c��B�y	%��Ǣ�$���G����7�x�\.?ϲ��|~C ��䷁��oSb�US ���;���ں����IEND�B`�com_rsfirewall/images/flags/so.png000064400000001002152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��NTA���Y�]��`�fLl�†����|
j���G��2��@j��ؠ��{gfg�X��	�.�9�9��˜r�`x\�Y���lm9��͍�'hŤ�xھӐ�MiP�g�2@b�p�A9��
�,�r��&Xڏ��r�(l�R��������}&�V��9�u�@�!*��/��3z�-z����q1R����
�(�o��&x��%������rD���������ɭ'H(�~_��	�RUT!&�Z;A�,�f"՞RU�.
��������bJXg�r�E�r�ԟ����P�0#�{T���YM�f�	�V�[�R���p3z:@h�'�"�3D��}��VϷ8rU�IEND�B`�com_rsfirewall/images/flags/cf.png000064400000001002152177723720013221 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��K�@�?g��K-�Bt�����������N�C�N�N�N.RD�"�
Rb�%�r�9����P���{�����	�5��,`�=��4������œ��K!��9�c�h�7���	8Jiv�v6k\\��x�`�VXw��0F�֚��W��PE��-o3��@�=P˯�j�	�!�����[*k�T�sO)���	 �Ķ�_]Ҟ����2�	�~r��
���U�u&��R�|�t���}�X�:N_'��|+B�GJd�Ɛ�E�i*�����HŇ���Ң
:H��&o[=��R}�Y�p�M� �ai3
+ә�}&� ����x�:��B�����@�Ͽ���&��>"��;
�Ÿ�\XIEND�B`�com_rsfirewall/images/flags/bo.png000064400000000715152177723720013243 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FSIDATxڤ��J1��t��VZ+���ե]�|Wn|�H�p/�v_�/��$��3vZl��I��Or���*@-���s��..�9�sw�򁪤)A�x=�
D�<��>�I�f3����?��J�k�!q��1��)n:]υ��о�
d��X��}	�S��0��3�h�`tDrHR�����D�9|��%@����.�(�
CK"�҄M����u\NoO(�׈�z�F�zG�+ҡ�́JVkD*������j]8�ֲ�P�>�W�R�
��v�.u|^�S�V�=_��p�)�����Vm����w�	�IEND�B`�com_rsfirewall/images/flags/ma.png000064400000000737152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FeIDATxڤ��NA�s�gd�E�@H)R'E�$M�� 
}��"�( a�Mr��w�Q�ʎ�H1L3�j淟�1I�&{%ox���󗻗�~vy���=;?��d	k���R"/��fq���6���1J	�y�.�ゼX���^4��L�Hn
1��B�Ķ���ɋG��v�~�G2�4��ɲ_K�г�M���f��e��t�o�o�f=�s�󉾨�h]�	د*�3Y�|���2xw� e���D��u
 ����W���A.K�:�0Ģ ��Q�T�0v��h�_C1�x��������CO�.��%�
8΀�-����W�m	�h�=��py�<k��IEND�B`�com_rsfirewall/images/flags/pl.png000064400000000474152177723720013260 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�;�0g��@@�h8�?5%
����K"��l�j�ϫg13��5���SF�w	���>�v��6^�q@�@P8��d��8U�,�1%��t�"�m�`�4�e��]�1e	,�a��w=RUX���!��NJD�$�W?J����PWyK��5�qy>��@�G`7~7�6�����,�Ο��T�a�9IEND�B`�com_rsfirewall/images/flags/tr.png000064400000001077152177723720013272 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nQE��vmb��E
.RB���J��A� (�"StnSD�RD���#��`�N�(�c������]� a�6S͝{g�(�>P@�˺,05�jgg ֢��8?2@�������9$�QƠ<�/���v:5h�2�Ʉ�p�����l�}�n�hP�7EH�h��=���M}w���|6C]_㮮����`�<\�`�$����=FLQ��V���;;c����,Iq�azt���A���xI���W�3��I��� �zA��1��(Eus�I���ߴ@�ѻ�y�8Gbm���0|^�~CPD�^���!M������
<�ch-���}� MAƭw�><}B���./Q�����秅�Z�ZE�!���y|����<'--��E8��i��j�+�
X�@��/|z�\dP�e0���;�Z�u��!EIEND�B`�com_rsfirewall/images/flags/nu.png000064400000036170152177723720013271 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:20:51+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:20:51+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:dd690df0-df43-6541-88eb-40b052ff88f8</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:6063f36a-c90f-f147-a213-00bf4797440c</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:6063f36a-c90f-f147-a213-00bf4797440c</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:6063f36a-c90f-f147-a213-00bf4797440c</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:dd690df0-df43-6541-88eb-40b052ff88f8</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:20:51+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>A� cHRMz%������u0�`:�o�_�F^IDATx�ē�+�q�_���s�ᐎ�.\1 ��xv�	F,�d�[LR&�$.Ir~t����{|�_�E���S���ӻ�[h��E9�ܞ^8Ix��Fw�7<�1
F��Ab�4O�5���/��g2��|�%����d(���1���\l�`��R��>�dO_ZV���V#
i[�^�a�$�ʦjlßEK��3WJ�tu�R�~Ɵ:E��Q��0uN�xe@$�j
g��-<=�3�i��|��f�,�K���W���ߘ8߹��%ᨤ�څKk���ܖF��<6R}M�6�f���QJ����ʝ��)?�-����)g�M��	��^�����~37�qIEND�B`�com_rsfirewall/images/flags/je.png000064400000001170152177723720013235 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MhQ��I �v*���Fq'��pQ� %7��BՀ��ѝ��
R�-���{��ڔF,n���A�@�Vm�33�u����ǀP�ۜw��^޹����ģi�7}���N	Ps\��~WuA�XX�}�D�4��u��]����l;��Ư�SX�ӈ�@ٲɎMP�d��	��^ߞ]t�p����u֗>Ay��g��$HkF���k�U��%|����뺲A��I�Ś����EY��Ŭ�z���������8R�=;/�ѓ�{�L��S1��g.V�q�Z@)%�b�Z�x[��۶�=���^)%��(�u_c�|�ׁ���t^�K��H��S�F7M�Ry�֨$��ܟ�h���b��z�^E3M�:�aR�$</�>�Z��oei�^I��R��0�#�	R�{)�t�"��ߐ��C�"�ryRGz)I4@ޱ���8��� x��g�\&s����2f�l�-�\�"���i�m�j��u��u�3�?{��)k�IEND�B`�com_rsfirewall/images/flags/gd.png000064400000001253152177723720013233 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F1IDATxڤ��KTa���w�8�_3�F7-%S��(&(��mZ��dB�"�M��ZE�	ZY�l#�A%�&�8�h�ј�����m1��K�l������b��ڊߌi�$�����Ց���!�����Ec�f)�����&	�B��t�_�V��rU�7ʮ��ɫB��HI�2�ϓd�����g�$&�����B���Z�Op�,	h��^����n,�m.���4�5���/A:�J��S���YV2�-n}p��7��O�"^�g�>���
<�hץ�Ν�IF�N�s��6.N�	A[��<qa�d#\�떧p]��1���;��Z�_ �uLÑ�x����/P�!2A�*@)E<�{i.y�?1J߁)0�3ľ��^��p'�~�x,D��(OCvw�G�F�n�CH��z��8�,����jp=����=��E�g�r8�)	6#�A��F��z[fXU��[�;wMW3,}E�<'q.�{���O�F&�,�j@�u���
0+�"$k�!��V�y��kV�NIEND�B`�com_rsfirewall/images/flags/gu.png000064400000001024152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�OkA��3;fe5&�x�xQ� �;䞛G?��ëgQ�?E<Erҕ�q��l�g�����]A�n���W�U�6��2aY2�<�|��y�42
����6р*�� K�D��x\rtT.�`������!MHR����	y~2+���j#�ߔ|����YK�kR�<�QIQ8T�.��΀�^�j��Ջ�;C&t����w��R0p��6�0��
��<8d(��]��;p�bDdꉂ�>�b���;ׂ�U\CZτq-PU�A$2��a�M}ϣ�{��9�I{/� Tռ��#�ӮI�8^'y�^^g�WcBkQ|3P�
�X����s}�\ �Hfy�i� ��=y�W��gĹ\XV����M�-[�x��@m��ο�R��,�IEND�B`�com_rsfirewall/images/flags/vc.png000064400000001142152177723720013246 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�?OQ�wfv�+b�@,��F
�1~5~[?��߀����/`�	1Q)L�P�(�"���.3��̽�&4�Ӽ�[�w�;爙q��i�n���z�����+�N*���=��y�RU�r�d=
��N@`�����;�P��_�v�l,�Z�	V�e�3�Xs�~U���}�ӂ��Ka#k1�r�b�L[\>3:�G ��(�<w�&9I�@���<[��f�Ƕ�tq����G��w�+�j�����N��z,m�rs,e$�,m%�ȶ�z�k�k����)(���R�Janb������c��2�Sm(5�Ԓ�88F�e�����Ù
��fMͮP?�W����
��i6.������eH3R(�w����jč$	@�;SY�ժ�!�0B1��x3%�[��r
*��'$1Y�/�����Sv!6E
OIP^�Z�;��8���IEND�B`�com_rsfirewall/images/flags/mx.png000064400000001016152177723720013262 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA��31��p�4.�D�UB�Ф�3�L��
����P"	Q�X$)�s��{�
��3$+��f��o�	D��Xԁ{��4f�a��v^��3���r�?y��B���h:q,�-��]������#@3T���8��?�����<P!��-���\M9kqzH=n㓤$N)F�h�9�)��=�4��no�����W��e�,`�.~j��ILV�|��;<��罷,�Z�U�
�Q����Ig�1��"���:�/c2���W��
Q3�WD����Vc����9��+��0c�VkB�KP!0n�Y�V$WFEm+$Zk�A���r�d����xL�z��N�z�	�?��Q��:��)w!���^$5%�lp�u�5:��C�>� IEND�B`�com_rsfirewall/images/flags/cx.png000064400000036140152177723720013256 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T13:47:47+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T13:47:47+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:85cf3627-53d3-694c-80c4-23667d00bf6c</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:80eb1eda-57da-a440-b1ee-c586e4dd0cc8</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:80eb1eda-57da-a440-b1ee-c586e4dd0cc8</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:80eb1eda-57da-a440-b1ee-c586e4dd0cc8</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:85cf3627-53d3-694c-80c4-23667d00bf6c</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:47:47+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>���Y cHRMz%������u0�`:�o�_�FIDATxڤ��NSQ���s[J[(JbED���#Ǿ��8�!��0r�N�DE��������{z��Jlb‸&k���k)���P����m4�>y8zo��ȿ�5�C;���ɳ	T�ZsL�lRLm��3�D�P�/�b=��Y�T
P��I}�nt;�
WO��pޠ�`u4Yt(��Y��灬�eL�r�~�܄k��U�`�m@�7"�C(< m{��z��)�&�0C�=ɣF�ݡ�H2ڮ��c-v�,�X���(Fk1��a���~Xc3�9��T���¤�ݎ�k�r7HP�G4�DXqRp������<N9��lcP)�-��sV	v�������Y �[�*˯:���v�jv_JED'��&�:�Ϗ�kB�W �Yz�DJje}X!Z|G���Le����J���:��Ah��ظC~\C?|CQ>�pY�q^������D��߅� �>�:~�,�p
hׁ�%��{�_~J~�S�;��Ρ�1@�_�IEND�B`�com_rsfirewall/images/flags/ml.png000064400000000717152177723720013255 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FUIDATxڤ�=N�@����IE���H��+pN�u��F!QD�M���w(l�^��������{�D�}���q��r,������޻���_�C��ߎc�_����Y�M`v�{5e� ��W�~D�d6g��&���UZ�����q ��s��T�Y|��E��Qm4��������W�_-p��4m�ʜ��-	Ӏ�{l���u�9��/�R��/�[�&�'�`�|ؕ�r�ي
TzD<�V�D�W5WD��6�����)u�p0U�l�i�h��,߾����U`���g��	0�q2�CQ�Hю%`վ�;
k�����IEND�B`�com_rsfirewall/images/flags/mq.png000064400000001134152177723720013254 0ustar00�PNG


IHDR�a	pHYs�� cHRMm�s���Yq\�1��]��k�IDATxڤ��kSQ�?�ޛ��6�R��PK!�Ж,*
n7�p;;wp�A\:� EpPP�:�th�?��K^�}/��됐X�В/���8�s�c�e	F���7�ip}�k뛧�}q_)��HAm���L�KsS��\'��H�py��	���.��骘0��P��!���Q7D%��M�&%�z���H4�aԥ݉��2C)?�Tɣ�7$1)&I��k��;��|���P�������Dq�q�ߎ�MJ�:4}����y# �ぉ�w�[��<&I�伒�v�s��ҤС&�g��Zt��#<z����,/TX�>�ӗ�h�!o��EI��ǯ��֦Y�6ϳW_h�I�WE6),��IƳ18`Ҕ„��yѲ\́m
DQ���wV�8�g�ZA�p@J�����\����Tgk+��	vv���w�������u܌s����m�J��9�@M�����Q�Ψ�o���R �IEND�B`�com_rsfirewall/images/flags/la.png000064400000001022152177723720013227 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nAE�xv�Y�h#��J(.��=e���	(U�����R*>�P� �&r��ٝݝy�,���m^3�ν�ݧD��@u`uZ�A����.����mz@C�%h�-(Y!��7��h)K$M����2gt����%����vd��M�Y�G����ך�g���kJȏp���ecC��4G*Gc5��Q��8�I����~���d�`B�g9ݟ	��ALE���V4���	�n/A��Z��
jY�SV�WS�~��]�f�ɘ�	N�sBiY��)0z��E��9��g������o>ӿJ!�D��5��f�}�)޾h=h �,�� ���˖`����%ȹI��BaE�:�%��" ֖lN�����(�}��A=�N��IEND�B`�com_rsfirewall/images/flags/pf.png000064400000000734152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FbIDATxڤ��KA��.����b,R��h,DA���B;�9;+;�F��X��@��(�`����И;?��i�x3�>f�������k���s�;J	j>Na��ȚB����@B�*E�5���o>�����@���qV��}��f�0
�㱱1�Ԡ��u#�
�ԏo�B����-H�(AtR�Z��tM�D17�����[��R���(�F��xS����e�.����,�����J������
���/��z�'fP�[7�����F7�p��[�c�__�&������f����$9o6�����#�d�MnUH �v��s~x��x$�IEND�B`�com_rsfirewall/images/flags/index.html000064400000000054152177723720014126 0ustar00<html><body bgcolor="#FFFFFF"></body></html>com_rsfirewall/images/flags/mv.png000064400000001031152177723720013255 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ���SA�?��%Qr1��)��BD8��m;km�	�[,�Z)�MN�p"�iT��%����훱Hr�+�M���|w�3�3�(!@X���DvS�����!uK�����Z
4�"�Ε+Y 
�w�H�,��G�z<�#"��ݩU�I
��d�ё����TZq�u���O����>�C��� ��_;��d�5cs���.��c����M�pe^yF��g�{�3���v�:��>��m����Î��u�����,ǜU�'Bw�57:�P3^��&u	�ްX2)m��	Ҩc�d����=�7.���@�CPEb���"g����u���7�[����^��`��cǩ�k�u�m��T���BeF���
A�6���L_HfFJ��� G��pe�M�-�IEND�B`�com_rsfirewall/images/flags/ag.png000064400000001156152177723720013232 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��ka����|� A-�U�A� �A�5��{�⩷�P��S�E���hU<T�Uk��&i�}��쾯�����Ёa.3�<�0�Xk9L���:JD@��O�No�
�#M����׎{@~&S�NT�3l�f�t<BO
��Y���_� ��1L%�?W8Z�\p�r���+��_�����2>X�z�JsMż�|&��Ãi��1��G���p��庎�(
�j�4��O�(�s�dB��
��E.צ\NH�>�Dp�MB=��֤V׸���Ny��Mf���%&����vQ���@+��c��T��c� ��t����
6��J�2�F�4����ͳ`�[�_���G�&��ʼnc�(�� �Xk@�g�|o�j��xq�ʷ�ς�t���ak�<�O�>��1�6��fc~��?)ka�J�k����G�,�c��c:�q�9��E�06�:��� �����X��W�sIEND�B`�com_rsfirewall/images/flags/va.png000064400000000743152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FiIDATxڤ��j1�Zie;M !PzvzʱP��<f^#/rHrȡ�PlJa�|v%�J��e�q���AH3�f�G��1X`#��X��Gǿ�	K��O_��Ԟ֡��|Y
���@�4H�Gb�(^2�E)3��
@l���f.����R �w4�
�9D�`2|�S��t;L%��'�#�ꚰ[al��=|]�+�g���f��I���/��ncm��{
�jD -q�g��'�a��f@�o8�;p�O&.iZ�@���JW[������@ֲ�$7�������? ��J�ܯ��&W�"-�U�=̮>�!���킐&�h��7嬀-����.�C�ܻ^��޻�OX���ywIEND�B`�com_rsfirewall/images/flags/bb.png000064400000001075152177723720013226 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jTQ��9�޻�Ѭ���
���R�v6>��`�/�kX�
ڈ����"b�fswM��8Kv�%����ߙ13�b���_��7z�_���������\��gO@L�>�y%�bTV��L���+s�{+�b�����7�R�"�aM�c^!�NZJJ��M`.]>G�gM�em���T�mT3:���s
�pyz�TU��	eYc!E�~�q������A=挪jf;?ǔG5��ȃ�����x��*�7�v
��ãj�
j,/��Ee}�J9ƭۙ��g]4�A4�����u2�S�h|6�S@��t�!"i�D�׮nN��M!A�h�@hEW)
�!S�3�E�O�@M	�t
�T�{�r2ƭ��`4�o� @�\X�F��~rH~A@�����
���K��IEND�B`�com_rsfirewall/images/flags/au.png000064400000001146152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kSQ�?�ݗGb�fhJ�
�.
���.֡ ԩX�P�Һ���?`��L��nAZE��l�h
n"�b���X�ɻ���
�!	=���3�Ϲ�s���AB��>{	�����揷n�r��m��d
�g�����z�Ba�
ğp�qe�L�=����3D�VE1:�LN�ec��1�b��9S��/|C�k��*��e~Ec�h��<����g��T@�+��s��)��U�G�	�lj9��/+�j厧[���6@jH�_���1��B�Ǚ:-���XZ�L:�n���H�����덮��f�17�0���H@�t���l6��uW�����D� h6����e��az�Z"�֦C���@�lz�����1��)��/`!�J���BkM&S �{���l��q�P�d����8����T8ģB\�00CJ�\��_6f��0�ߣv��d�H�G@P�v��p��ֳIEND�B`�com_rsfirewall/images/flags/gw.png000064400000000721152177723720013255 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FWIDATxڤ��JCA����I��&FARڪ������O ��/am�#��,B�ܘ�ww�������,;pvgv�"�"9�Կ�	|(��89m�D���?��ͦ�����IT���;��BI|��kE\<�Ec��"��
 5��A:�a	�9]���R�
`�&lE�ߚe�(@�s$�n��K>F&��?>p����j��|���éVs˄�ܒ����"���x�~R��1�PsgK%h��ڜ�`��$Z��5x� �~���x��Dc

�����>c��^����G���s��m`eN/t�F�}#�s8���{~�(�z�~IEND�B`�com_rsfirewall/images/flags/uy.png000064400000000737152177723720013304 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FeIDATxڤ�KJAE��mL�d��q�4�
�����[p	���
8� �P?���ĴmW�s����IM�WT���!П���3�4���ނC�fT��'"e���M�,�3�`����o%+p|�x��m�`�sPX����R�@M@��2;]�2�&���z�������/*R۶kR��;G��P�Ha���I�M�0X���x�U���'�R���B�4�_��(bl$�0��G�/�؎���T�|u,�,V��y��䂀���63@Ǩx�ߥRœ�qG���!��FW1��N�܎�j����Z�N0�]�7�KrY�r]�,������Y��
/IEND�B`�com_rsfirewall/images/flags/o1.png000064400000000170152177723720013155 0ustar00�PNG


IHDR�a?IDAT8�c`�(�� ^��3`��*����Ԁ�\D�x]4�@D�
� `���>�c��i؜IEND�B`�com_rsfirewall/images/flags/st.png000064400000001070152177723720013264 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��KTQ��~��3�(!���
B�P����U�Z���;wn��B�BD�pզEHE��Bi���Sܨ���5s�9w�9-f�@|7������qa��2%��l����:@�ų���D/n�����7w��8@�5���G�p#s�el�v:�M�[�E��ǻ�+���x�89��=��1��(��+GL���H�3��|�n⨈8Q�>:<"�2&H(:H�e���\�Ȥ-˚�
͍���U����P *�~��Ϲ_<>��y8�gu%f�Ն���T��A@ʲ�ƕ��lH�dH���4���Q�2jB�48���q�w��͵��V�)I��5�J�u�R�槯�0�Kg3l�]�?���DE�xg���Yܚ��?2'��!R��@���U�
w�Cꖲ����T�Y�x�A�[J\6�t-�Vǁ��IEND�B`�com_rsfirewall/images/flags/sc.png000064400000001245152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F+IDATxڤ��KTQ�g��f5�KÆ��PP�\H����\��2�rѮ? ĝ��*7JؾUS�e(��:9�4�܏s��sO��m�g���<����}�֚�H�@�R"�L����n��5�`�\��SeiD�Fh��k3�X��;Q� 
��q!�qAh����!u& h���3�\)�$���KY��
�
���=s�V�AT;--��`���/�؞��s�l���w"
��7� σ�VLWJ2��T�T�6`P��(���#�}�J��b��@���L�zd�Y]���س�ܤ����q�$�$FFH��b��Q(j	���T��Jo�m@nʂPZ.��fcc4ݹ���Q�����E�}���6��E��Fos�C"�SUc�.������ ����Ev"�ڬ���[$�O��.<���'�K�I/�Y��@��C����&'fcw
����$/V��f~���X�ZY�P���
�
�/4�<q��%�gq�kߗ)[�E7*���YM�q��P�����ԃH�8�9������
OIEND�B`�com_rsfirewall/images/flags/md.png000064400000001044152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA����;αc' G@j$$
O]�i��x��A���DJ�p��,b����v��;|��2���ٙ��p�P@
�N�M���y����'O�.��d��A���{1�^�}��YU�"J5H$�7;5L�؏��1�]�)���y���`�jDu�հ/�"U�c���0+�:���ɱF+�=��R38�YY[�(K�4/�/��Ք�6���X��qӝ�3�
(�z�/�:��ބマ���oT��Z��}���1�cB��A�/7CT�af��iXUZk�lBx�������Yh�P���k�5�,Tk��k���)�CP�*"��s�4i�[>K��%x+�$a]A�p"���茏?x�8q����Y`����X���8u�s�=3��"ߤ@OIEND�B`�com_rsfirewall/images/flags/lr.png000064400000000711152177723720013254 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FOIDATxڤ��KBa���ip-ф�\�~H�-������ؿ
A����!�r	����7��r�5dj�w9���p�y�R��H! :�~�=	��NF�N畨&8��_;�/�R���Ba�|~�r���ݽ)�ED��J���"ZHr�J{k>�#ė�@"��M
@��f�j�]��R�D����灔H��>�e�ã2���s�f6�1��+�q^Z�Q��m[��m�
�H���5�
T�7��cQ�k�X����1������Q���MJM�]�r�c�4}��9"p�4�fW��|w�GhC#i>x�+�k�
v���:IEND�B`�com_rsfirewall/images/flags/ro.png000064400000000715152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FSIDATxڤ�=N1F��� HHBp
'�T܉#@KE�
�AR��DZ��z(�b;�DXY�l?�(�?C�7�W������}y��"�o��_��뫝�6��`7]͎�v���@72�&3�gQ�~��u{{q ��u�'��D��_�A�Z���T�ᣨ(��ůH����&\�c@�㨡���ʧā{�>U����s|R>Mj���l0��
��|Ъv��$�0��{A�_���
!^�6J����:�,�ѥ�촃��`E<ӯa����L�k�,g�}`s�^�/
�捔�h�����$�l�RIEND�B`�com_rsfirewall/images/flags/ng.png000064400000000671152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F?IDATxڤ��J�@��MBն�� �W��_B�C��4z��Ї�w��UPlR��nw�Cb�V#�23�̷�̌�c
h��/cG@|xy���^���GWg?7'�Йz��ޟ��o�-+��p�rЉ��:K�O��$�����,�h�Xg��X�P��t��kA`� �r��3!��4Me���R�T��w�$z��à?���.���2"��F@]��b�iȵ&l��ģ��Sq��A�'(@�~q�
M)�8!��c+xZ�P~����SM�x�I���
z��\����b`X_�R����<�pI����9

򙤗ƻ�IEND�B`�com_rsfirewall/images/flags/bw.png000064400000000651152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F/IDATxڤ�=JA��ٝ�kX�Fa=��	�����z����Ө��MP&�5�����G���m�y���Ox�YF����#
|J ݿ��.�~{z�!��p���ved�?�	��8>F����I���b�~=i��%����H�ҕ(�`\ �w��k�p�E�<w�9�Y�=c��4%�":�Ύ���b����bb=�)���z���pv�J�*j[� �%E�;��R��w�3�S!��5�
�R��A%�<z���ޒ?=,��R`h�,΁��"�5�ˮ�E�s	��:{IEND�B`�com_rsfirewall/images/flags/ir.png000064400000000727152177723720013260 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F]IDATxڤ�OkQ��댙�i�
Zĝu#]��.w�����R��U�PuUU0jL23��s�b!�n��ι��{N�1:O���8׉�Sl=yq��?|p5E��Wn_���Q�� ���}�^���+�r�{>j���Bh�_n��uI���7�YOY�V�=���Q1�h����_���t�Շ?�޾#ra��p�b#?�NA
EQ4擉����PU3݇EQ�
����vu��T��j0����+g��/_��ަ����w���u�&���	N�>���E[+՗eN&��SZ��&���cdy}qIu�XbY��\�ʀ-\GM%��% Y)Y��F�k�?�h�WU���IEND�B`�com_rsfirewall/images/flags/pk.png000064400000001130152177723720013245 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�=kQ��;_�뺉Q���� Q;B���X���@���F�+A������F��v����7Y���uם��3�Z��2+�	y�{8����=Bk�n$؛՝H=��Z7F���.�V ��>�}�Z@9?�;z�!�U)0͜e�F�}Y([���o}�[X�V�����R)�
�q���4�4�^����-��-b[6�v���.��?��4����Y3Mʕ}�=~�O�?���QH?
iu��q��1�R	�o�5#܃UܙC��[l�k`:�yv%`jj?����AEcJ+�Pl4~R,��x�KQa�@��ZE9�l�?6�r��}n\�ά{��+ϩ�*�)y�C���1z�7ߢ֪su�2'�ͱ���/2�"�8��H�]��a�V,�z���'�D�18�R���$	���mt��1rIԙC!�x"���@e���j"K��w"���b��gK��ת՝�IEND�B`�com_rsfirewall/images/flags/sj.png000064400000035632152177723720013265 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:16:52+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:16:52+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:45cf9f8d-8893-2441-bfe4-e5c56c51d4c0</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:adb1490a-808c-1e4a-b9d5-f8789c041b2a</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:adb1490a-808c-1e4a-b9d5-f8789c041b2a</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:adb1490a-808c-1e4a-b9d5-f8789c041b2a</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:45cf9f8d-8893-2441-bfe4-e5c56c51d4c0</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:16:52+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>��J% cHRMz%������u0�`:�o�_�FEIDATx�ē=KA����|A
Zb�J���� ���� ��Dl,��T*�؅$�h0z$wc���R�,�����*a�Sl�v.�L�y�,�1���k�����d2���:����&G,��:@�7����<��i���Z[(K��B�0*���
���
�F��|���h����
�u ���gH&!�2��Ҕ�A�8�Y�N%9�x�Z�d�D��>m%"��EӁ��l�������gqch�k�A��0����]zS>��z7�����N4F���0����Ԁ����F��g;��gq���hSIEND�B`�com_rsfirewall/images/flags/gy.png000064400000001256152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F4IDATxڤ��KTq�?�{s�M��#���d$=$� ��\VW.]�����"r�IP-
"{6�Y�%��iF�G6�չ�Ν��
(�x6g��p�r��<��H��蛑�H�,�����Ȥ�d2C��*Bِ��v�J�~�N�z7�[a�gd�d:�*d�)���%�J%���%��G���*���	��Z��A>'�,���|1� ��w�0m�Ǥ9��u(�x�S��ԹQ{�k�N�e�8����F.��y�y	��6��4��D�+�ci:�?Q�s��`M�
�fx3W���yg��,��\���?}6��%�Q�x��h��#m,�p/\Nx= �(ດ�
�2&�+�\4w	| /2k^�Oɻh?���Z���Cj��4�n�;=�Ӻć�AO�	�~��.P��+�p�Fn�G�y{�\i�`*u�'c~^�b����,ۤ����HL�XL-f:w����ؕ��0G�I[	t)h�X�r�ȭ{��������xa,�<]J�`�u@�lr�����MVGlu����/e��[IEND�B`�com_rsfirewall/images/flags/id.png000064400000000515152177723720013235 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATx�̓=�0���CA���wa�,ܤ�,D�I�`~T6o�,�=?˶~���S��&���M�|�� �.ZV���2hi���'�^-�A;г)�4�D﹞+�U�����`�s�O�.�݊R�y�Yp���ZI��V���K���'�d�'��m[ʲ���&@��5pP�~<�N�@P���mǹ���!�QIEND�B`�com_rsfirewall/images/flags/ec.png000064400000001064152177723720013230 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jA���t*�d��]DHA����s�(�່k�Åq�ʍ�E@4���D�0��IwuwU��a&Y�9P�*�s��!p�07���h�Uw�Ot=��P�^?�(E ���v��@C�PA�o��K��:��
�%�•%}��s*�#�@����,4�"弞A2��G$gsp��P�2�’�v���Ő��%��
�v+���Ww0��>/�p��S*o�e�y��OV7y��M;$�Y�����@�iH�6"��s�J�>��l�.�o%<�|����,[��k�s�$���(�#G?Ky��&��'4���w9��Q�'��h����ߗ�4#'@���*��M�g?���?�[����M�щ1����A\BY��oU5�M
�^)�p	hN����-���R�v��
Yk�*��M�IEND�B`�com_rsfirewall/images/flags/hm.png000064400000036424152177723720013255 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:13:38+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:13:38+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:a562a9f1-b7b1-f04b-8feb-13e0173bd608</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:cc62dcd5-23d0-d044-ad76-b55acf48ad53</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:cc62dcd5-23d0-d044-ad76-b55acf48ad53</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:cc62dcd5-23d0-d044-ad76-b55acf48ad53</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:a562a9f1-b7b1-f04b-8feb-13e0173bd608</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:13:38+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�eOK cHRMz%������u0�`:�o�_�F�IDATx�ēOOQ����)���$�44�D1nԘ��S����c�2��bԝ�6�AA�%�RJ�����=
W,<ۛ��ɽ爵��HqL9O���VJ���6�v*?�|��}���:|�j�~%@cH&4�I�� ��1���S9���O�,���&)}��v�������B���eJ1�;ś����uL�ZhyySpV���䓭d{/��}�6���F������Ӄ��5��X��Du<G�Y`qq��dl�~�N��z�0�ܠ�c���i���6[��������R�ё��E�E1s�`�gњ�i�h�*]~�h���]�˻�
�mC��ӝ7�t9x��S<~t��7��nR.(k�B��I'�v��cL��VBy�ɳ�K����z"���<W�D�����j��eD�+�	��� d�KcA	G.�R������;1Ƣ���À- �R���
 �sJ���tl�����cm�IEND�B`�com_rsfirewall/images/flags/lc.png000064400000001167152177723720013243 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA���ٴ�ml[���h/�=�z�����=�WO^���3!A=x1PP�X��_%E�J�1�4������z	}`���o�y�W���|`(��v= {��ʯ�"�Q{�K��= c��X�Ml����{���<�Y��}�d<���PoET�a�����5�X�J���DF\@kM����������q6^�	u�
WY���OR8�B��h��u�N#B��(��jV?��h�0w���੨�V�
��T�4#"c9vd��^P���N��g�\�me�t�%{ �'A;
@��Z!2B�p�ʛe>�<*���'��	�8O���c-Ql���~���θL���l2�*S�<��k	�n@"L�8w"�+%Ξ��8U�P��\�X��m��t[a03��S�?��{���&��ˌ�`�����Dm㘿����Ln��v[�1V��jd�I`��Y�[
p�Ar�ĀV���K�nn>�IEND�B`�com_rsfirewall/images/flags/no.png000064400000000745152177723720013262 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FkIDATxڤ�A/Q��13�ҦaA� �!B;;K	����o����ʎ
{�`a-*�Du:2��t�Z��FKҸ�w߻'瞜w�!"�' �[g/��w(�7�_�W��OY�;��xws�W��$��..���3#d�纈��5����ľOTyK`w�U��=F��B���JaV=⪗��jub�֩����R�u:�[G�WA ��0�~H(<_����W,d�
�V�nG����
\�m+�]YE�6q����=q����d�9�&bԵBL+�v������Vm�5ҟ����2���tH��:!Б7^5�:~���8���wg(@��]�'0[�d�H��:����C.�IEND�B`�com_rsfirewall/images/flags/bd.png000064400000001101152177723720013216 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA����;lj�CB�@AT�"4.��x
�q@T DAE����.�"��s�a�nw(lt������J��i������D�@oV�&Ȯ=�{��u4w�&���h�+>x�k��5g��w[� (ʫ�7+����QN�jsL��;��ρn��^��y�Q�S����k��T�1�cWp{�s�R�P�
��“�14ID��VGeN���#w�K@�J`�5<=�2Z�iO(-;�O��-�wTL�Q��(����ጐ�I--��5�/K��NUPϹ����
/4Q��MkVY�4�s�W��#VIE��fVٺ ��M�U�NPي���x���n�k�;�;�p�p#3+CTv�\�HUI�\Ix��V9�
��L���u�iP�ݣc[V|������,@���P{ij �<��q�=����'�IEND�B`�com_rsfirewall/images/flags/lu.png000064400000000557152177723720013267 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��JC1��I-R��A
;����)\|_A�
�CK�4L����
�M�[�|_��Q"�)(�����a���~y�듧�k$%�7�����_^�#�4����}t}5Bb� yO����Bk�w?穵VJ��
0����
l5�s�ؠ��ۇg��1ۘ:��{�^�8��m��d��1���UG�oMkr�d��v�0�	pY(n���n�t�A�:u��ˬ�1jM�rIEND�B`�com_rsfirewall/images/flags/mw.png000064400000000745152177723720013271 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FkIDATxڤ��jAE��̮eٲ�%n1I��Թ��\�+�W��),pcHa�*�&k��y�3/EdI��d_x�b��}�r�����{���t:���‏.��,�4q��3�����1F&��Jҙ+�7��1dI9G��	PU��9�����4
UU�Z�f93��#�D���6��e��Xཧ�k��|0��`�!7��w(��Y��_�˥;d؁�}��G��R�l����p����Z���IM���zt�wv��k[F�i;�肬	�|�D^�h{����#T��@:�j�,c|iT�m��E��Cy	��ј�s��5U��`�����HvG��yk��
�[����B�IEND�B`�com_rsfirewall/images/flags/zw.png000064400000001117152177723720013300 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kQ���L��d�V��tZ�P���Ə�����ƍ+�.
v#�Jw�UP�i��X\�J
)�u�UkI�1�d2ׅ�C��.�w��=�%"l
Ёh�l�C̉�/c���]q�F���J_ާƙӃ���8h9�T��?ö�4
�D�`�r|]�����m���A�h~��T�ұPE?5J��(}�Y�GcJ5��}j˿-��3���_:�h������,<����D��㬸�ַⲔ�e�!��^	J�R��CCbFS%	I&�X@MW��n<'`�ُ۾��#�Me8�5)�
�W7V��.��-b�X�yv�G�'����f�K?}x� ��5����w�\��Y�a
��&�Paeq�mT�d�/�3s��'ט�4�o��3-�y4�{�z���wǙ|��-�#�=�@W��
�V@��P�u�Sۍ�X�r���@IEND�B`�com_rsfirewall/images/flags/yt.png000064400000036454152177723720013310 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:23:30+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:23:30+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:8c702ba3-37a3-fc4c-974e-978441609bf2</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:45593e5c-fe1f-a747-b5b9-1f2186b7a2b4</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:45593e5c-fe1f-a747-b5b9-1f2186b7a2b4</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:45593e5c-fe1f-a747-b5b9-1f2186b7a2b4</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:8c702ba3-37a3-fc4c-974e-978441609bf2</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:23:30+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�g�G cHRMz%������u0�`:�o�_�F�IDATx����KSa���󸳗s���v����V s%�7��-��7�o�.6�uQWх���I�� ��B�l�
#]G�/[{9k�9s������"B�cB]]]7FFF�E��Ǜ����n�,ƍ6��P�*�KKs���g���#��l<���y�_x��&���y���
I:ݷ���*�!����d4�dhh����ب����B>����m���yU,%���˲���:�|5����\�E��uV��2�px�����r�0M�9Y�e��Y�� �XM�2��9�t�ҹ:4h(�vbouee����!���W
��h4zB�>LfK�/�ܧʔmJk!0dH����ً�B�F$I��?ѐH$�v�'�Hd1ƴ�h���\ַ�ضZ�2p����U�h�>�[L��o�X�T*���!���N����4x�Τ���	3Zs*� ��u�=�[�;��_����w�JE��d~5����b�G�����rs+���:	k1��Шo�j���wCQ��}��Z�n���0>>�V-,,��Fc:�J�;����ש���ksg�SE��~g3����o�<�-B�as,�P===#ð��"�����.��U�a,�Z�T�ռV��
��ɲl��({�|^^\\|��z=�,ۤ��}>�d2�S(�l6�V8���4M9W$y^��S�d2)IA�}�c�
_=�QKJ�IEND�B`�com_rsfirewall/images/flags/vn.png000064400000001010152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�Mj1���z~�c{�@��w>���� >H69A�9�Ydi�
�C��ό#�[Re��̀!0�۔ҫ�WO��<���U��,����������u�H�������s�Y@�p{0+�}O^,HU���Ƨi��"ņ��}`��i�Mb ����ྔ�yP��1�(z�U�iA��ێ�7{��U^��ׂŧ1�AE��9���ܶ�����+(�sI�~�v�S��x�80r 7Bz���Q�m&=(�P!�ƈ�
A���<���F�r�0{�c_&4FJ�W
B@�b���)��@�q�L�}U�o����?C������5A�eɷ�v�aY��c'�8vL��)�`��.H@'�����rc�IEND�B`�com_rsfirewall/images/flags/gp.png000064400000000775152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMm�s���Yq\�1��]��k�IDATxڤ��J[A��;ƌ���M��nD
�"�E�]ׅ/���U��Ե��ō"(ZHђ$��r�襘{gz王$�h������o�s�~*E�%�9߫Y)��mħ
MiTf���`�:-�x�[�yh��B� �&�L�{����yNS<7o�/��kӯ�5�Z$�1�$!
��c%�(�_��~�ri$cL��F)��W\��$7�O�;��7zz����(j�*G�y0I9�g�aY��"�"'�.��_yj�7�\_���ѵ[��T�2�4ϬC��1��bKa�p- ՞gr�1B+����+>S�֮� �c��b������z0@��`D��CK����;&9�E+��^���,`D��l������eIEND�B`�com_rsfirewall/images/flags/pn.png000064400000036170152177723720013264 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:13:47+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:13:47+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:08cd2a02-62ea-3246-9abd-e811cb74388c</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:3284d11d-6d53-9a43-9f78-d4f4e0676b0b</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:3284d11d-6d53-9a43-9f78-d4f4e0676b0b</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:3284d11d-6d53-9a43-9f78-d4f4e0676b0b</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:08cd2a02-62ea-3246-9abd-e811cb74388c</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:13:47+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>���] cHRMz%������u0�`:�o�_�F#IDATx�ē;Oa��o��ٙ���.7��!+��Xhbcc��2�ja��1vj,HP+��B��T.
"�qwg`vf>��11��s��9B)�a�qH�����w��gK��P���ŵ�:W�
n��rc���:D5P�<�*�L<*��JΧ�x9C�X�p�� >�<�z�g7!b�Ū�*d/B��j����2ɮ,��7����a�ۙ�jpk5G��#���%=	��OIS��N{E��������z��&�`��c���B$�+L�x��Lo��p~��Ks�߁��8=���X�\��TG��r�G�1��/�U�SC��m�B�0��A'
��Z��OW}�:���|��Yf��2�'�L�?�N����(�c�
A�p�+
0$�^��N��Y+k�4rf�C��y�T�%�3Hi�Ȇ�!�*E	P
�
wׅ�N���^�%�]y�պ��Y ���P-#j2"@����/$���!���z� CM��J)���l7Ʊ,�I��4	l��אjͤ��?8S��P�}L�6�=w�ת��IEND�B`�com_rsfirewall/images/flags/sl.png000064400000000571152177723720013261 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1N�0�?;V*�VK6�V��Y�G`�*���01��J]Phj�v쟡I@Lq�<������g�JD�
(�E_s�������w�+̣Dn�M�i�~���R�v
�5IbY^ӥPG_c�$��7���ZɅ�V��p�e8p4@۶��l^(+���3>eͿ����!6�_�uH�5��N���N�с���ѓ�'���S�Ի�s>�W@��L��T@�R�)�.�r^��~�IEND�B`�com_rsfirewall/images/flags/mh.png000064400000001272152177723720013246 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F@IDATxڤ��KTq����3�f�9f��
MS�0݆҅�t�En�U�̢M��&
�E")"�M��!
/�0��Xc:6::s�sί��.B|7���.�GH)���	�m��	�4@?s������j$S�HU ��+)Xu���|ؾW�٬MsC1�:e?3sIf,#�D�S���T-N�7z����iQT��b�����t�']�L}_U P�R��_��r��~��@�\N��<ʋ�T��|���-[8Y����Z2���'[ywmx��'��T������<��s�����sg�g��ː������)$�Z��f�P�$c�_4��?�`v&��~ګ"4�Go��U�X1	u����@�_G�-�B�c��9<-�z=_�	�u}��w��d!Vs�adPT�͍�Oܽ��9����(�z"�|������:�r��sa�?$Ӝ���A[�C�3�j���iB=�Y�.���KC��m���䀛'�hk�/QK�8C�o��\��-a�m�i�3�������Hp�2�g�@)��fV����"��,�;���Fܶ���IEND�B`�com_rsfirewall/images/flags/tf.png000064400000035700152177723720013256 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:18:56+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:18:56+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:3231d1fe-b04d-274d-8992-c5598e06fd94</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:eda41076-18db-8e43-8bc6-c2f8e9d6a3f7</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:eda41076-18db-8e43-8bc6-c2f8e9d6a3f7</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:eda41076-18db-8e43-8bc6-c2f8e9d6a3f7</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:3231d1fe-b04d-274d-8992-c5598e06fd94</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:18:56+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�{�� cHRMz%������u0�`:�o�_�FkIDATx�ē�K�Q��z�,K��(C"(��6���!Z#'���9hikoiihm�C� l0�71S_��6�YHB9�l�y���\���Hڄ����|���8�<K`��9/3���~�-���(���/�_-�PoZ�B��|/�~a�-��SOC}�>ټ�ѱ���"g⎬q#��s�����'R
U��A�Aƴ�<T�>ϾOL����~gCl�H��ٿ$gVq>5�; ��H\��x/�r��i��J$�ߩ>-�΁�\\��X�de9�r4�e�T
��Z&��qp�$�)�Δ0�U0�%�o���Q�lNN�1��l9���W�܏Y����<S3!��'j/N���m��㟁�PF�IEND�B`�com_rsfirewall/images/flags/za.png000064400000001130152177723720013245 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�=hSQ��s�Isc�`�M�FD	-�����䨂��T�Bu����Ppm;� H�J����n
:u�j#ި`cn��qH�bc �]��=���W(�؍0D;o?r�_��9YA�#��
e��"@��$�{�4-��S>���X
83;��5
��dz�h�}0(=��&������
��!���<^Cඇ���J���0<9�/]��哪Rx8-rG�e%�Z�bQ�b���M�,��i.�o`�u�����nWJ�T�WX��d2���T�Un΅(G$K��ËG���d3+l���q]g��X,4z�����#�H�+3��B1� `lb���s]ᰤV��}.���|14W@(���)�'/q��{�5)�@�im;�kE��P��	�%/ro���L]]ح���W�^�ܟg�v�;K�x~��5l��w@b}v���w���	�G����#�S�IEND�B`�com_rsfirewall/images/flags/um.png000064400000000750152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FnIDATxڤ�?HBQ�/eXj68d8%AFQCYѠD�V��ڠ8�F�����`T�[j�M:$�̐�"�<�^����w���I�$�@_�zT�e��������{:�v��a��&���[�P(���"�{�0��_�Fd��L�����y���y�^7�X�o��ݶ�����2���4��+�$y��f۸sӼ^��A��NO�k��d�ޞ��e|�=���g��yw\���}_
�5�a'U*8�v���D2�l�P�R�r���<���Ð�e����+UU�J�s��&D��w���C���ځ�(�(��LP+O.��[j`�@���7�(�F�:
�@M�o�#�u�N��IEND�B`�com_rsfirewall/images/flags/hr.png000064400000001051152177723720013246 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA��{>|�C�AE��(h(H)H��
"!!�
�C��������
��"�PX����ql�o��
'��t&_�v��vf5�D��@!�:�Y�A�|�PףR,Lj�D�"�J1Q��8,��M�x•��[�͈��cԪ
2�y��p���~�
��x��v��I�]}L���8:�w;�\桅�g|`0W��cL����{=���4ȡ3 
C����`Z�1xk�V��4�2�8�ΣU���8�h�4`Iؒ��2�|����[�,�hNs4@v.���nr��W����Ӝ`���R��h\6�6yy����jc��{
����&g6˨�Uz��^��6�����-W�#̅�f*m����Ъb�+�HN?��*8���܌�}���"�
<��E��J7�;��IEND�B`�com_rsfirewall/images/flags/gm.png000064400000000616152177723720013246 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��N�0E���(%�蘹����bce�_+�b(HE
��h��y,��R��=�e�~~��k%"�z��f��5ϯo��>}|�h` �]�Z�����`��@��2|��}ZB�S�,��9']q�	�h������,�9�`אF'}�K4�z���ʊV>�ÈP�F�<GMU�N�[~��p.��'Ƙ�cj.�o9:S����(�yOk	����@�*P!�����X�~�F���Î�3`�6i������;S��c�yIEND�B`�com_rsfirewall/images/flags/mc.png000064400000000515152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATx�̓=�0���CA���wa�,ܤ�,D�I�`~T6o�,�=?˶~���S��&���M�|�� �.ZV���2hi���'�^-�A;г)�4�D﹞+�U�����`�s�O�.�݊R�y�Yp���ZI��V���K���'�d�'��m[ʲ���&@��5pP�~<�N�@P���mǹ���!�QIEND�B`�com_rsfirewall/images/flags/gq.png000064400000001030152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�?H[A�?���1JC(
A�Tq-]�N]K��ҡS�B��ܽ��	W�C�P,�Dy��4�g�߻w�;����s��7�����X ����+���.B�ڄ���n�@�$5&oU�sx�D��P��p�=&���w�ۀ=�?^�X�y cc-���q�!�	��]�Ka2@����TgԿ�y96��h46~|���*õ6D)� �/��zƩr�y`��&�j�ٙqNT�'Mܽ�+)�1DJ+���>p�K^�?���8Y�cS�Z^��h�;����Q����,�����k}��Z�h`�C��X�.�K�X�����Ch�hzx�l�t�����y�A�ǿ>��:;�����u�0
�{��	p$�*���+nZ�t��}����IEND�B`�com_rsfirewall/images/flags/ee.png000064400000000574152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�1N�0E��]�@��
m�-8Ǡ��(Ԝ�#����&�K��^'CA²E��˖��o�G��Hg�z\��������Ϗw�V� ��\͋�@���J�.u���eA�w����9� �p�cǶ�RDя@�/l�k-����.eYFUU{@۶�e��vV�4MI�d�a�Y�}��7�Y*c��hJ�T�'p�-L
�EQ��R��Xh����/�W����B�QIEND�B`�com_rsfirewall/images/flags/at.png000064400000000553152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��N1E��ބU@iR�F�4�
�Hÿ%%JCA`9~��$,���fd��z4�D�S��	p��5
�����c^_>=.0����\FV�~�@K��0�>7�o��#�K$Fm�����e)�&yw8���R+k���{_���p�U��v{�k'����t�1�\�iA�"����ཇ�նe�s>�!���9f����4�Zz�H����N]��
��Xa�IEND�B`�com_rsfirewall/images/flags/et.png000064400000001066152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA���ٵ�J�C(�� Aa��*UDAG�J�t<�
�A�DA�YF
NB��e;����\�5v�h��f����3�\%"\�W&�<偑���>�����U,R�~m�?�M��e��j,X�2��ft���b5
H�	3��j���hIH�>�1B���}[�(�v�Ovs��@��d!���|�s�A���Wx���V��D���/6>мwyj�$�I�/�t�Ld���v�h�h,wH�p���,4�	��ӑ@��H�U�v"h�?d(�^Ra���5����t5�3�Yhm�(�,)=6�wvx��b�i����.-�\�:Ǐ���~N�b$�$�<n�xh�9S�z�H|�d��0N�}bnR�����QeXb��ȡ���>�|�k��"a�
Xn�9���d�̜����g��T}
��IEND�B`�com_rsfirewall/images/flags/vg.png000064400000001152152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��ka���l����R���R=�i��H=X�/"xPړ')��ߡzTы=؋^��z�b�`cҔ�*��f����T����a���EJI'��!@-̽>�I*ۂ����,o0y�4�OV�I^X��i��n�f�zJ.��f��>n�ȳX���ި����T�5@�4
��PM��MW�B#�b����In�	{���,�R$����1�����Ʈ�_EO�$��1��4�m�{.�ύ�Vb��L<�@�Uy�|��v�R��m�in���M����Ѭa�B�0��@����:������[��
N�8�Tk�i�(���C�H���6?�#<�4O��2�7�ip� �[�p9�$�7���
��2-㮹����t&s�J���8>��܅/�3|ޠ���f+��Ȩ�i>>�x�G"��꾆��r7�r��:�bY{T��Ӭ���S�a y@��@�V>B�S:}�����!�IEND�B`�com_rsfirewall/images/flags/nz.png000064400000001157152177723720013273 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kTQ�s�{/���I�
��+���J! X��]D� (A�V�KAP���i��P�"���"���o�ew�Y6
���s83s���M�ݺ�0��\������m�������q�l2~� 7��&�P����O싀�W2���"�
��Ϝ=Z��c,�
##ٟ�����O����䯿��Y}�R�F�Pd����k'�<xӤ\.��8L�=������$�ϱcc͋�u��A��k�����`t��������!���*kp�������>���ĩA�,�{_84<<�j�&M[=��n�|�Y��0P.�第L���&�*�ǘ�q)��G�$� �����mo��!��q!�@��<N"tpX�q��u��i<(A� �T!VEܻ4�(�m����1��>O��Jor6%I4�y�1=�#Mk�ծ
�в-g�*�g�^���]#�8��n�k����msIEND�B`�com_rsfirewall/images/flags/ms.png000064400000001120152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MkQ���;glS��[K�lbm�q��� vUq-7�Q�-H���va�/t�$P]H�FlmH��L��d2�M�F�"�ݜ�y�s�<G(��G1��da�A��1(�]�;o�������������ռ�|M��y���QD:��x�s�G�x��J��	�{��`ee@�9�(࿨!�N���r��a�#��BtON��@jsNs��1��:��GSS��d�M˪2>}�7�_]�>�E��o��J���Ĺ���|f�A.g$��6	?@IRA
7���ອ?�7�IJ\Ё��ܶB��A��X��I[fw�뺀I�����+ƿW(8����f���^�C�F
��}��^?cz(O,;�Hi�b���
�h�0�1!P�%ܮ��H2Y������W�
Ҡi^������M\w!�DQ�e��e�=z[�H@��^m��;�����ߪ�GIEND�B`�com_rsfirewall/images/flags/qa.png000064400000000712152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FPIDATxڤ�MNA���i&A��h���ٍK��\`ta\�AD���q�(��$ėTzQ��^�I���@��,�u`�w�1���������I�?��O�Ш�J���4oV	�0��h(�*��?�>��"����&�f��ޓ.)������ƈ���$af��ZK�^_�7�$"���K���tA`�)�'�W���+R�:py��e%Z�r�{9�1xb��3�t�~���ׇ�!��#D���� ��!��A)&'RD��r��C���R�61��]��u��j��?�^�t�F�����u �暷0����׍\
X��9葠�.��IEND�B`�com_rsfirewall/images/flags/hu.png000064400000000561152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1N1E��fQ���hR��E����kqjN��R���w=���&��������i�1��12@	�m�	�������g/���t�9��MC6U%��T�*q�b��޿=�ǘ����D�������z�FQX���^s�W`^�i�=@۶����<=b/&�J�d��	C��B�1bW��Є�tB�JiO��*��6@4F�|F1����5�0����1ǎ������`|.�IEND�B`�com_rsfirewall/images/flags/tt.png000064400000001262152177723720013270 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F8IDATxڤ�1Hq����ZI�$��vq�C�`Qt��88Q������v�d[*R!�.�-����)Z� Y��Q��r���:$�.�?�������s	 ܬԫ�*:��ש�S)n77���*�@��w�ף ��ug�LLp�i(�KFJ
Rk�H5���	5�;<����GX�ɭd�g�o�i�locX/���uWUAQ��

��P�����4�:�X���M�in���12������"
�c��B���]Z�ߘ�P@_[�a��Ff�&��8�]N4NF"35���	Ư�<�X}c��-z{钒���P��,L�c9�]Tl��w]��i%�Lf�<��EJ�\<�׎"��H�w]l˺�h��)���q�H024:�c�L���ch�Ɩ��s���	�E|�!�(
���_^�Ck+��~�\�����������PSSE���h��%>��񰫋\&��
��4B��)�\vm�㠅B���x�H��dh��$�������@��_�΁����`�^EP�}��u!uG�IEND�B`�com_rsfirewall/images/flags/fj.png000064400000001077152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MkQ��;w2��)5�A7�H��Ku��7ntU�ݺ�ᲂ��Jiu��.�q#�؅�&�Fb�t:s�L�u��K����9�s��y���ݔ< ��^J�.0P��]��T���w��-��{���G����H��}����|
�~��(P/k\<Q���Q櫚R��f��9��2��r�IX���R��1F��#\ޗˢS ]����qn��G���q�<ɫ�U���������_C%	.��!���<��������p���W�����/5��u���)�	�SOI
Y	�pf���E�U����B�����$1@�bRc1v�N�b��';�Fj,��7�Q��
�/O���q38̣p��:��R
߂b���,7r��4�w�5���x��O/h�EohkSڕ/�-���(nU�n�d����n�{ �ʾ��q�IEND�B`�com_rsfirewall/images/flags/fm.png000064400000001065152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�͊SA���7���Pĕά����,|W��.}ŭ�Ε�u��+&!����}�\�h"B��4t�:�)�U�"%@�[��T	�	�����M�Xc�ex���A�FU�_��U��m!�,��T�s6�M[��E��UUn^��Z^� ��Jo'��#�MB]���Eh	�:b����(|E�Jb[)b�P�ؖ T,����I�p���t�ɦ視+�.����RD��'��&9�C��e4)�6-P����0��d��j�]�� �g��/Nɦ���x�x��x�����A�;-8T���3�.�ma~�O�3�5�@�JB�Um/
$֠�ܿ}��{G���H�WU�_�P�U�\ Q�����"��v�7Ac�h���}��'�}���0s`(�]�nH��\4ο�U�W�/�uIEND�B`�com_rsfirewall/images/flags/tv.png000064400000001131152177723720013265 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��KTQ�?��7of�)
b6A1Qi[�4!�ڴH��
"!Z$.ڇnZA)E���&r�V�072=��b�|����
�L�����{ι_��f'&�U��Xl�@fy���N�b�冓�YG7��79s�k^b[«�}&������,�����G�\8w��p���D!@kX��nr��L��+�RƱK��l���x�=����mIB��	0����@��[	��<��iK��dS񂦧�����@�~���_@k�.�qw�&�GRvC�nȭSK���	�>w�6���{�עD���W�3�i����C��z�J�f��ߴ�f��ݟr|�#�1����L
�S�y"ss�p=�G+0��@��ՙ^@���[@pe�$Z����O�ƒIi`�Ë��`l���40�I�&|L �cEe}��Q�+�/��.`u��,��v���_�-Y�l��@�Tοe��Ls��IEND�B`�com_rsfirewall/images/flags/lt.png000064400000000613152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�1N�0�?�NK��	q8;�c�pF�	B���q�����i�Ų�{����F�^��~P���&����r�`�H�G��Z�A�����+�%�"�h�z�IJ�2N"$��`.��8,���1��d՟�*�8��{�/Umy�7fn%p0�E[YT��$$D|������PUQ�$�xi+@�bRP*
 "�έ
������4�²��V���k���P'����9��
�h������k^�E�yIEND�B`�com_rsfirewall/images/flags/ad.png000064400000001034152177723720013222 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��n�@���׮H(��_����������p����8q�	R$p��!JR�qT�n�;��6���e��O3��Q"�EB)p�y7	,50z���	�US#���=����k�^�����G��NYp�'��mR��?5�U�X:f�e�Q�Z��&-,����5�5+�a���!����b��k�D�����iV�������x���&j���{�E�����2��1�]]A$̧g\ώA}��[��������,�"M�=��\[�r� �PU_�k,:�Go�u���`o�
��Q0��u%q"���tj���~�'Q<��x���pIH�x���Ҥ�[�.�'Ͼ�Q$��E��ۤf�0n��B�T@��o�S=�=����aRIEND�B`�com_rsfirewall/images/flags/bi.png000064400000001344152177723720013234 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FjIDATxڤ�Ihq���$��Q�օ�J�z� ��TDу��̓��
�`q9���AE�(���Z�`\�BBc[�[+�$����ypA�K�|���x���"��د;y@.�E�s��߯]�P���L�h�x�����ٍ
��@���KVl�Bx�|2�� v�@��O�i *lQ�����Et������*m�Ǩ��{�J����'�n
F,Z3a��ŋhK=�x�U3 R�F���^Ӹ|�����Гnt.K��Pp15g:/��6���
�uq����hl?�2@)L+��� \�^�W{x�@�ฤ�Ȱ���@�>#�^�Ϟ�a~����9�g>�!;�.iL�Ǧ�k���p�=ҧO��Oc�H߉f;OĊ`k�k
��g���M)/dìe���K�6ȗ�����;�#j1<����c�9��%��= 1��z��⮈�{���U�~�v�\o�LK���#�k������"��H\i�)""��N�[�D�Sj$5m�$+�$YY-�i3$YY%�+�y�TDD�Z��P@UOO�@��._�]_�B����E�����H������jā�@�(Y��`�����Xq�1��$茈BIEND�B`�com_rsfirewall/images/flags/kp.png000064400000000740152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FfIDATxڤ�=K�`�O��`jA�A���9��C���.��mt� ~��Ywg�6�,.�� ��61�s�(���?w�ޕ��(��ttD��������^�_��j�1FX��[�J!"��=8
ȉ�}O�+5���<��$N��=;�)��OO1���Z##|T*_6@�8�}�K4���[\��ؠ�
��-�V�-
��$h� ��g�y=(�~�������$���]A6K��i�0�o�X[�׈�.1�JkH�.i�	�觅�0���ÔKd�61�o�"V��
�X-�Kl��ث�\ו�p]W���[9"3<�j����"��F���)D
Ɓ���
�Qv�����s;х4�5�IEND�B`�com_rsfirewall/images/flags/mn.png000064400000001042152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��n1����.��Ҥ��CBB��)R�<y	�I(x
D���" ����;�k���.Ju�4�4��|�?��\�(���`i���ѳ3t�^�����J^�<�B8|��M�ѣ�Nɾ!ܝ�1�������+�?�L,`tA��	�,?V�
j���]fs�6#��){��)v�C�j�b���6�ȋE?8cH�`��%���g���_P���P H"�/���z�|����#;K䆒����(7Y|��i_L��M1�+rT�%T+(J�MBEs����B������R���[J�#�'�YV`�X�!6���5�c48d���(���*�0��)w��v���hK.q����BH����S�ٗO�V�,��7r`8v�܅
�	`�E2[��o�~����$IEND�B`�com_rsfirewall/images/flags/si.png000064400000000724152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FZIDATxڤ��JA��Iv�1ƍ$A�B��Vk�l;�A��`a!؋���XXYى"��h $^Vc������ r��a�o��F�"�dcD�1KD�CݮT�b����M��`�c̦⨐�ň@�������_�+�~����D/@8�>d3Iv���f�H��lz��c�3��Or[�,-L�p
+��H�����q�%�
�95����o���
痏\���at��x���Tk&
���9@��W��՝6�xļi8N_�U��x��\1P�/��Ps�\��hL�?@�j�h_�[�&�Z0�4���j$1ҙ�>�Z���I�u����IEND�B`�com_rsfirewall/images/flags/dz.png000064400000001024152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��K[A�?���"�>i/"F�J��@�GA��x���K��^=�c�mZT
��=45R��G}�%w�ew{h�M!:0�af?��|G8縏	�H7�nLg.n�w�z��ֹ�C�2��4��.��O����D�v�1��Q��A��<^�6���D�s�->[(��c	/7��"��m?�1xRI"Y#�u*��o���챴�#����"�պ���׀�(LJ�+���G<y�K)>�K�S�gob
W�J�V@��i`��:ˇ���?�PY���_?�m)eKR�X�u�o�3������Bsr�k4:��8gMe!`}n���9��Ox��� �PZcq�'}�|6£�e������Ahg,��oUJ�X����@�*���w	0��=����+�x�IEND�B`�com_rsfirewall/images/flags/fi.png000064400000000625152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�AJ�@��!c$�]X]v[е��x���ޤ���t(�EjZa�t���6�IKR�`����y���p�qL��6�!�?�s�2r���o���ѓ@�
��m��H��V�����$���+t�ndZk���gz�ċ��V�\߽���a�t6/�Nyψ��#W�a7�D�
�Dk�X��x�a�����2PJ�r�^=�g_(�0�� I��m�cˑi��}�k�r$�c��(��y^�ﲳB�t�K�Sl���rd���L�����[=�oIEND�B`�com_rsfirewall/images/flags/as.png000064400000001225152177723720013243 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��K�q�_���M��fK��I1Q�؆.�

*����2��A:v��n]:խst�Pt�"ab���=������	BJ|_>������~�%!'�4��y8@]���{�4hc����U��+�!�y�>�d�D��	c�8���N(Շ�ʲO��V-��Q\����6��d�J-ՏmV�*|�ßPT�v0�]c�^�L�5�&���@w7������!V�A0��t:�
`��ȥ�%&�B�ZG�����w�ֱ�?A���8����3/V��B�{+��'v���	���x9�[kD�b �����.->e.����S�dG�Ic߫��>G��!���%�D�b�x��X ���(혦E�$�1�����S��
f�	���/���]g�I4핀��-nhZ�r��ܢ�2�V���F�O#6�h15H�P ����
���9P���`6`�Z���L]�{%�$�_]��&��25��	]@�1�P�K�rP$��H'���T��~�GIEND�B`�com_rsfirewall/images/flags/a1.png000064400000001420152177723720013136 0ustar00�PNG


IHDR�asBIT|d�	pHYs���IDAT8�}�_h�u�?��:Y���6�my1[�mI����yQ��¨�ҋ�����!��A+���� �	�b�o�A�k�ORVb
����B��wN��$|�΁�<��9q6W{\��2@�y¾�dC��~yb)_�Ŗ-;����E�ҦF$x.ܧel8���{�<����M�_˕���#�1��u�w0�0f3}`��⮱,�V�'�дp��z�£�ǒ�����"��F^6�iM��龹hy m�� }��H�
���ab�E{W��e����^"K�7#k}���z���ʘ���{�&e��oP��W��p�">Dz�g��6#���G�v:^7����|�B#�^$��đ���k�^�ٛ�b��.�&��s�yz��k�6�P�5�#��{,�K�]�$��nE���3oG�Ò��Lg��*�O9]��Km�
��{pޕ��-�N���~
h��&���:�_�""��/y���e�`��M���7���T�lV�a<���=�7ЛU�=Y���J�{�5b}�.�o_'/�(�z�~ҊҔ��Z>����VL��M��P�e����WF��;��)�k��{�=S�e����+?��#�"�U��Yt�}|�y~�occ���H������5`�	���>=>1zj)�p�8w-϶�IEND�B`�com_rsfirewall/images/flags/iq.png000064400000000733152177723720013254 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FaIDATxڤ�?OA��=],"
�7��B���._�
�t)#!�R��,*��Љ?��w��(�tgx�h��7�f�$����s\�$��p�K��?� S|��l)� ��d	`�4�,	w��Wk����5�46�Gc�x�N��7��ݺ�%I�I���Y
��g���#E�6O5U!I��Z@��s�AU�h���K�N������>�O��F�8;�jr÷_���ܫ�<�%I�w��i|PPT�F���Ӄ���$i8��$�y.���z=��TU�jY�B y���t0ƴ"�1�-$�{�4%M���9��DY�o9Fo�U`��ds	
`��.Io�Ώi>���IEND�B`�com_rsfirewall/images/flags/cg.png000064400000001242152177723720013230 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F(IDATxڤ�OHTQ�w�8�9o��k�U���hQD�-ŠrQH`�K*��)j�e٢���,hUAH�cF��$Ƙ9Z��8w�s�m�.���ٜ�;�	�5��|@�X"�x�PS�o�_��+?�#C앭�n�����JkV�m���y�ڎ(�QA�bC�
��v#;d?+���ڥ����0"�j�ݪ��X/;G�c]��ĘII���MY���8�K"UÖ����n��2	2�[Y���s/i���s;r���H���x�Α&4����j�߁�_�&,|�T�CW�n:��3�50��IO	c�"Kr�f��%��ڏBP�6���>G�*��wr����,�n�]�=ia�9Ϩc�7s��*��<�vcXay2�Gλ ^���3��f����5iz�l�>M��
�Ȃ�AiM^�9@Ã�XOM�e�@yq!�Ս�x1X��%�1]�ܬ���Ѷq�bI�������L	y�7�V����o�ˇ�(���i_�EBh�ag��* ��,LI� G,6οp�ؚH�`+IEND�B`�com_rsfirewall/images/flags/mk.png000064400000001262152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F8IDATxڤ�;kQ��{���Y�1I��D�S�6�?��6�� F�
BD�4��P�)L��lR�����„Ͳ����ܹ3��`��iN����	��h�|�G��
[O�wR��F.�>H ���h����K����zM���D(ϥ��c��p�"p�s>�Ō�%z�����mH�Ęo-*7S�iI��P�R��+5ai=Ҹt|�)��m�F{d�����j�#�u�@M
�#�֒&���"m'(�`�����Oր޲�r�P�nɭ#z��ȑj�៶0���x�C6ɣ�#ny��92̐ԄO��3�x��V�v=xx��Ȱ]E�Kc�lWP�O�g-.��`���V���O+��=�P�� �<���nB�٣q��8�2��y��{xUA�=�HT�s�Q[�'�I�|��uƲ���{���=�pΑ��0�
�S��R���j	Y��zJ!�����v��`�0l�L�a��.?W|:/5��cq���~�(8�'��i(/v|
���	�rD"����#2��������X�&rIEND�B`�com_rsfirewall/images/flags/ar.png000064400000000667152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F=IDATxڤ�;N1�?�&ʒ�BDBT(HpJ�@��%--'��)Q"��P Y��x�,�6�&�d�<��y��@M�S�:p����M�H����y�ݍv�໷�m=r��t�G:)9T��r���
#���"8/L�]`�-2������A�U��2V����@�eDQTʒ�{�^�	∺��dϲ��i噺�Cg��2Tk�b��1'׷�nn�z�s;*�cq~�2
���`8N�Xp��M�*zP�{��q2#��i���>�|J��{�E��) �����#�I�X$]� �Zv��qy�7\^EIEND�B`�com_rsfirewall/images/flags/eu.png000064400000001202152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��Oa�������q��h��ŏ�Ę�X�Xheal��2����1ZQhL�
>�y�(���{���+	�L13��<3��*�1B`��bh���/�
�2�SP'��<7�����R�f��Ƶ�^�P,ƨ��D�*l�"��B|E�~�
0������� 
���bU���*�8�Z�dqk3?H���ס^3<����I� ��R`fz��7�x�p�k�8a{�M�3�P��Ҭ�AQP��&l���m���I?�aeu��R��s[�|s��Aλ���\�a�o��P�����+�l�CrQBb�ޏ�02lYX<E�E]2c�/`bC7u$�w�W�=_�Y���R��4����*���v&�H�s�g�~Ex�p�|>�4��ɣe�(���Y$�8�$�9\��)��>8X�LR�,2wi�B>�ӗ3����8Ul�Xuͽ�_ͦ�6*���O9�{gƁ��#j�	l�� �W�٬����IEND�B`�com_rsfirewall/images/flags/nr.png000064400000000721152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FWIDATxڤ��JBA��9�J����"!"[A��]H��+���Z�@t^C!�N�5�����9g�g���X�c`3��~�;�0ưJ	 ��2����b��@)�D"�P._lJ 5�
��$0*�@J� �����_{���d�)�@��H���u��H*,�B)�p]�Ng��x̦"�`qJ�&)�ߪ�'{=�h'����g��yO�J�[�
�ֿ�t:	��ը���?�����k��
���a8は<th���e��
��(�ə��)@)E������ח2��?��z.�u��4y�o.;
J6�2K>����)�$ �Xu��`���v��IEND�B`�com_rsfirewall/images/flags/eh.png000064400000001030152177723720013226 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA��;^p��Ob�Q�.E4!`%��B�*Eʐ"�mH! "V���I�R�B�:4*�A6�of.3�I�а�5����|*��eJ�::˔r
Է��o����v�=���y���|���RJB������x`
����Q�_�Rc�F��� ����}�01�qn�������c��gGyμs<��=�V1�q��^X�EA�$D"��vq�.�^����\]���
=}�lmm0�@DH�C��@�>^���@�Y��3�77����!"g#�r��ز�/�5�[9�>m�^��	ܯ�����~�&�O�.x�<ƜS�›�)^>��+����u����$��	��oľT6��p��O>z
�GA�KN�.��5�"M%�IEND�B`�com_rsfirewall/images/flags/tc.png000064400000001134152177723720013245 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��ka�_�ɘ�I��b�,hŅ�,��(BA�Fw-�;	�B��	v[(U4b�P��4P]ߏ�1Q��L���d��`��"���9�r�Zk�AmB2;q��D)���gd��e~�ѓ{HM��'y~��a�wc��==�J�:�Ǚ�C,�
9h
KK+���J��W�]�)��,X�Z$	H�v#�F�Db3�H`b�1Ο�VƼwx˔�.��/�/�ل͒[�2�b@r���E^;�hͭ�����~I��Nd�����1���H]���VLc�L5Fzg�"f�%�q��Pj�yF������R����<�co@�{�jM���!A��FB��I^}���y�����>\�m���kX��!��Kh���Y��p��G�Sx�A�u�W�b�u���j)��j	���@�vΰl�@�En
X��FoP���H�ޱ�&��IEND�B`�com_rsfirewall/images/flags/kr.png000064400000001222152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��Ka����즠l��܋��F�`m��t�ء��n��-���nuH��0]d/%�`n��Zd/�L�Etut���퐻(E >�^��y_^~�!"�F`��$j��)"�QaJ�:�ֈ�i��ngo~X\\�T*��_�0YYY�X,-�-�X[[c~~۶���G���F�Z�S)�|�����$�I���L�9����F���(Ɏj����X���|�L.����*Q��H��/""��/"��_���l޾)߲�R���)�%"���Z|� �� ���x����c�{�{�A&��<���E��8���(���<��DS玚�~|���]���
@�.G=��B�@>����,��">���ߎ�����9?̲��|>���\+�jX�E,���YF�^��˻���ׯ\`�^cz���H$�A@&��\.���FWW��ё�֦��ij��\������K��z��I���X,���p�tp愷P<�D�I�	
��{�m���^IEND�B`�com_rsfirewall/images/flags/sv.png000064400000000702152177723720013267 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FHIDATxڤ�;N�@E�x[vE|B��H�D*ha���*�K`�уDAA����g�=q>N�|^3ś{�{�	k-˔\����z
����~.���ɦJi�qX_�Y�^�J
�I�щ?]]�<�G�"�Z�#I3��Nh�&�{�L*�p�&*��a��}��Pҡ�8<��wW�(����+�L<���~$���=���
}���:qO�lloa=EWJ�;����ήQ�
B��˧s���+�o���׈���!��&�K'�=���g-�rfJ!�c��,����g4�5�2'��@�$�$H#�]���x~_FIEND�B`�com_rsfirewall/images/flags/ly.png000064400000000577152177723720013275 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�=N�@F�z7\D���9A��98SN���)@�,ۉ�;��P#Q�ɷ�4;o>͏33�
���H�ST��-�7��(SJ�^W-;c��(s�� ��c{��ٰk�X˧%2���D�SM}�'�Ȳ�(� ��=М�Sq��ߔ#�0��n��97�Teł�/�=Vj:	0��$i�=�{Tg� �}DUq���QE��
�ŴeTSD�
S���nYFq@��3�;`�9$?�q��������[)IEND�B`�com_rsfirewall/images/flags/bj.png000064400000000646152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F,IDATxڤ�=N�@F��k@2D��� q�����@B�(	�
�M���w(e�Q��b�y��̎�	���s�p���7W�?o�/�$�G�C
�Mh8���j�ƴ@}�k ���tcSF]��
�I�H�����353
3�"��{	M�:��ƶ�p�xUd��Ao"`n,#y�p�R�|��k 9ti�T$�.AB� ��
j�܅N	Ɛ���������E�3-�j�����u�9��v(m~���B��8'M`�y�|��;+`��B	�( ],R�!���v����5.IEND�B`�com_rsfirewall/images/flags/gg.png000064400000000765152177723720013245 0ustar00�PNG


IHDR�a	pHYs��gAMA��|�Q� cHRMz%������u0�`:�o�_�FkIDATxڤ��NA���A�C�$X贱���5�'ІgЇ�
,,|{K

$�B#�r�}�Zpr��&�I6�13��dGh�Y���d����@Y)�*���������ۅ�J����9�i�lS8�𯬿^Q��E�z<�V=�[yP�`�x�=�P�Du��W�!�o��;���*��� y��>q��9�R@ @k�)��l\�p����?�������SU.��V0��s��=	v.�0���A(#�(H��5�Z͸���(ź�`���6�멄i�"-���$�	��E^�6d��a�,S)?9�(��l��绱�����P6�Ҝ�0�`%�d�	��@,���cŒ�zXPIEND�B`�com_rsfirewall/images/flags/hn.png000064400000000660152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F6IDATxڤ�KNAEO�H��D���n@6a�w����аF�H����JwuW?|��$
�I�Kսu�M=%"����r�5м������őj.�O[�,+���'@M^����5�s�W�M4*$��4@�L„I�r��M׵o��M��Iw�7�+c�� r�Y���H8��p,!�@E9��:�m�E�o��~���(�?���!&NeP�h���3
`��
*����l�X$1ʺTH �&�V2��q��h�N�Ɩ��o9Hޖ�j�q��/�0��z#IEND�B`�com_rsfirewall/images/flags/gn.png000064400000000705152177723720013246 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FKIDATxڤ�KN�0�?7IyS�Bb{N�:��#p��+�!!�G�vj�Dq�Tx�����23JD��Q@�l��|����=������/����~
l�s�����TG�d�(ҏ�C��H������'�W�V��ﴡ��-*?HRg~���<�+�1�A'�0UU�Z��'5���W�k=� 
���˒��(v��hvܾo��I�@Y�l�z��).x	���c�	�5*�w�WyO�K�I3P����ĵ!���*�2���5�cm�N���$J�x��8��9�
��֒�P�
H�EJ�8������Ԛ�J��IEND�B`�com_rsfirewall/images/flags/pa.png000064400000001002152177723720013231 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��KA�?�;��yF�� �
$ؤ�ZA�66�����Z,���!��K������g����8���|�w�>%"<
H��y\�����x����!�=*�ݽ:=�k�{w0+�>_���%�����������f"�!@W1��8�?~%~'�
�w_P^^�%�)�{=�,b
�g)����X�����0� ���G�(��Z:�+�	Go�Y��^��To>PJ�,/�&��gq��1�zD��w=#d�Z����G�h���?`�
L+�[UK��������1��A��0����Z���~#6��$AHZ5�(:�Z��:��Z��'�����y�i����
Xց�B|Ss'&w�\���|;�f��@ uIEND�B`�com_rsfirewall/images/flags/ba.png000064400000001163152177723720013223 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�?hSA�?������E�Quq�@NJ����h��
�$n��RT��l���I�Ʀ�Rҗ>��w�w��	H��|�-w�p���2���ͽ����8�u����π���^�i��
o�p��7��8���-r�ZS�=<{��s�M�e�/�A)
���Xm����%�N�����	X��.�*��oV@�H�b�/%�\��N��%L��^�u�v"TD %������0�ē��Q���r/#ww�v"Dt#B��]�S,�P\tx��+�_L14pG�s&��#�,&�Äe<�o	|�g=�hm�BP]p{8I����IN_̀������)P&B����X����$��38�T������!D�m6��*�Mҙ�XpO18�=�1A�@�!�l;�m[��a��e�L�q�J��,gG���i��mT7�u?V5�o���I�|���_���� ��.�@M�f�b�(@�����D.9"QIEND�B`�com_rsfirewall/images/flags/rs.png000064400000001036152177723720013264 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA��3��d� �B��,"x� UT�z*=y�ҿ��^�?�x�M�Es�f1�%��&�~Lwv<d�
�bfx^~��
k-������D8V����F7��pƺ-��۽�f�1�ܻ�����@��k	[f �>%�0�z�T�ޖ`�����4"y�h@*�$�Q=��1�5�AX�>Tȣ���$�P�76)�l�=�h�R�Wx�^1�H_�jѥ[����0��kW�gk�F8�����T���\�� '������3�ol�4�$��4��$XL�?��[�v��R���#�'���+��]c�ӡZ�֜!At���S�-�p�Xީ���3�������[/���(IA'IB���U���0�y���INX�Z\v���u��c	��IEND�B`�com_rsfirewall/images/flags/kg.png000064400000001015152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nT1���e/�)ВG@y
ލW���@�"5(�H���e�}|�8G�Rn2�-��Ͽ�3���%�~�'`���7o����8`�93<y��itǧ�n�_�&���Z�g�N� ������ڠk���Д��1R��� �}T�&ܳ�B�6�<��b-9F@~6�,��_G�Q��0 �=P�'���!���&�- �5��sʢ�0�B�a!�x����`k������j��b(�2Q4)��P6
��6Q7e�!"�w��ϖ�ӌ��@�[�|���Jj�]�'4uD�A{a�ލ�/2��2�^
�Jhv�c���Sx�?��o@��=R���dU���4c#�!p��3y\
`�A�{2��]����ĵ�MB�IEND�B`�com_rsfirewall/images/flags/ae.png000064400000000676152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FDIDATxڤ�;N1�?g�d�"�D%5�� �(�9H�e� H�DP� �,ȏ]�^XRlB��,���3�g�@
�4�&a����]�.Q��뫣�����~�XK��}IS��:4�G�<"_U���~�BN���"���b�����l
���D�W�C� ��_��{���
1@%��X��c�����/�d�MH%I���p���Z�@I��j�.���R�-"I�?�ΑeYgq��Xk[�2�aDͨ���ܯ���|6�4	IL��+ƴS0�{�ş)ʲ��w�8F�B	< j)�`#�]���*�h(]�IEND�B`�com_rsfirewall/images/flags/pg.png000064400000001165152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�?kQ�o����&���Q���XX��)�ii��`!i��"~�T�]>���"X�"6���d���;;of޼ga�DH��{����{8�Z�iJp氏S)0�������'p�I�,8�%�<Z��ޞ�@��pHq~�{A���#1�@N�[��}��� C��P��k��K��h���(c1�ſ��_�)^�x�n�a�e�PJ�!�0�%p��x�)��.&�K+-����Qd�:Ip�8��n��vy����>�����p=����|p��c�2�F.\�V��V�E����>�iʫ�S�̋|���.tk�^&��i�`����
Ƙ�VW��5�^�>�ܡE�[L��T|��R�4��DQ�݅��?N.k$��^�q��� I�1!B�^��F)��]���2��?1MS�1x���:�睈�RQS���#usRJ+��oHDZOK%�	`��cf���{$wL�H�i�{
���K�IEND�B`�com_rsfirewall/images/flags/tg.png000064400000000756152177723720013262 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FtIDATxڤ�=JCA��ɛ��1II��E,���
�;w �+��,,�
�X��`,1?>��^����_�E�mf�9����c�����A*^$��moױ6���LJ�ط㭽��C�T!H��ѵ{����|���P�W��R�  97���*)Q���W=���^#��&1�ٵu��"��sv�C?ǘ�0&@t�]��/''�jM���j�l���s�4��p�!�yR$۷��2χ?��D�@��ݗ��8� n��i��T��ԙ�J��X���o6����盳@o���]��Rߚ�q�Ff�0���u�	DZ[����D!@�2��^^/Hހ�İq~�]�oU��IEND�B`�com_rsfirewall/images/flags/bz.png000064400000001147152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kSQ��ݛW���$V�5Q�ZEA�A��"tsqs��qrtpq��B'[� ��*�m�i�����w߻�6CC��,��|p~���8��v� 
��rk�k}W\ϙ>�T�?-���O�>Y���8��](�g$ T
��2ĉ#)n^
(�w����	>T4*§02�� 1�VK�n�D��~���˫L���;w9�-���9K@Bl4>��!���׾&�c��٭6�&݂���(�9;&���M��!@)��l�5�c�l��3�hW�(fk\�}Lc����Q�4�u�L��
R��oJ��
"��7�_�0wf��4���l�z�)|V�)�Js��G��2�4?�*��i��(���5�� b8��Ǝg�-s��13��<�VK�*w��1))��(�F�%�a�¢aa��F��?t%�ب��_��~�$]�����K�&����6�n��0����;n��;ߌ?���IEND�B`�com_rsfirewall/images/flags/ge.png000064400000000775152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��.Q��3gvCv�n�g7D%Q	�R�-�;й�{�蹀I��*�,��1�|�f&K��&'�x�y�*�?R@('� 
�7�q�E6��ʪ�lm�_�]��o'��7�A;�q�e���5p��h1����D�l]�Tj?1g}�`�A���������ϯ�tR-Eu7��М[�4QǾ�@�+Ja���ZX�Uϩ���ݦ���G�������'��T��
)�~vN�^��Skt��n��k��09zjx���CƎ��T�ɥ���^/� �"D)@ 2�P*X�� a�I4�~~B��V���4+
k㓑�̸@E�����
����H��8+�
L#�B�V�$�'r T�]�� ��ȰÇIEND�B`�com_rsfirewall/images/flags/om.png000064400000000676152177723720013264 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FDIDATxڤ�MjA����Q���@1��Y{��<��d!�	"B��۞�,���M��իW�UJD��J�{,�
�ʸ�ԵxZ�f3�;��Օ��@��1�F����c��uQ�@��^c��
�@U���)q�KX���3�s�f8D;��ϱ�>JkF�&(i�X��3�
�dr�C����Q�(>��c��G6�A�K:�A��/.�$� �5E��{�s�����<�t��v���I��z�ح9r`-R(@�I���� X����u�8!}��W��*�P�����tvH�FX��s��T��P��IEND�B`�com_rsfirewall/images/flags/ru.png000064400000000536152177723720013272 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�9NAE_��e@���q
R��-81W�
�DY����0�Hll!�Y*���~��1%���}
|@cf�Q�EVPO��΀| �b���Mps��겡�R�φ���E]�yo���w������7˒��	�s0��R?O�o#����=�eI�v��r�k�N=� �`�p�xUl������W�h4�������-�&{'V#���3�wX�o]��IEND�B`�com_rsfirewall/images/flags/dj.png000064400000001002152177723720013226 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�;K�A����|��CЅ-҄XئJ�o�1!] a��
Z�ۤ0Q���ֈ17Ê�	^v��Y]/����0͜�w�y�x�y�H��݋,p��Bm�~����&��y>��싑"��9ju�u�Zn�,���o�������ħ�w���Z�/���8��
8�(>�0��)Ł>�

�h�ٵs�tD�
`��5�o,���{5�����{H�o8��Z� �"8���"BPz��B�ܵ�0��:c��.|����2J®�c�I���G���2�h��; �1��,��P٘@!J��>!j�\�`��4խIҺ%��y��8�K;�vg	U�@LOq���|��p��vS��A���u�7p����wIEND�B`�com_rsfirewall/images/flags/ve.png000064400000000720152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FVIDATxڤ�KJAEO��Րh��I\���Sw�܏�p�@DE��/F;V~]v�sb#i����;u�{����)`(��<�@/"1{/z}��%HA7r�pg����ހΏ˒)�j������
�x4������]�`;^Ô�����@TA)L���hH��IR�����d�D��Z���A��eV�%N��`�P%߀Q���fm#��iv!Ԁ���0������;�׸4��}�z�Cx�%xfЅ�"����L��(5U�#���X��a&� ���	�:.��_>�U@Ԁ����W�/��	p�U�]����V��|IEND�B`�com_rsfirewall/images/flags/ai.png000064400000001141152177723720013226 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MkSA����Ln>�B�GHW�SĕkE(nTtWq�����#�,X�E+�EWf��R�"4�%�hSh���͝�1.�����=0��}�9�=��^$�(�/[�{�����5<��y����F��sG��h
����J��AȾYw�~�����E.]<�r]S*9��?�cX]��Z��n�T~ [M�z�L�F�N3I����|K%I)��v�R�u -��g�q�����"��i%y��N�Y����&��33O�}
�0Y�<{��7�}c(/U�F�k�%;;�-��HL���<��.��7�%,Z-��$����Ft���h}�Z�"��n��1�8꛵kZ�{U�W	��؍aE�0@#�M�fb��]�˧!mAy�lEC_�}��E�W�,~�T�����Zk�2(e�{�:A�(E�����p��TA`(�Fv��d�HrD@h��:�����o^�IEND�B`�com_rsfirewall/images/flags/sb.png000064400000001211152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�MHTa���3��)B�fѢ\H�"0� ����M�*��\QPӢ ��r��-Lp����]�AP
�88Ν���~_��Q((��p8��s^���Z��0XU��		�m���X��i�����͡�	���\?Xk�(�<��ƭGK����v�R�1KѾ�+�-!�G7$l��AD���l�����F�!�	E�u59N}G�Zrs����4�e0��IGD�L:�)QBߡq�w�u�f([ͳ�
���@��_p�sy����'���Υ���*ڛ�r��7~T�3Q��r䤋/~������yW�~n:�ͽ��In��mL�!��`Ω�z	@���-�nS��+�|��7*�
;@-p�B�/_R��|�֦/v��Wə�
h�q̈HkT1��b�/��-R��i=2��z�O�R�у�
�����җ�#Q���#;I{q֔��?�Fʠ �.�Ƶ�۳�3��������$�z�^p�i��F��	�X��
f���7j}IEND�B`�com_rsfirewall/images/flags/sr.png000064400000000726152177723720013271 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F\IDATxڤ��NA��Yvq	,
bb!�;{[M�4�&��o`�o��5������r�Y��.�p9�df���sFc�&R�u���
d�.�ʓ�_��l ��f=�8�h�]� )����Ǔs���m��c[X��͚7�l����RIC,���R �%N����`�+ɭ�04���J?�$^,��~Bz�f�P�����T��t���E�IFG4��;1��EdM�S�F-)��Q����B⏛�>�۴�0hܞᯮ`�J�X-��F
����88?&�ύ5D�R�� �JQ-�O2��2�<���
:���r�P@ ����_��IEND�B`�com_rsfirewall/images/flags/us.png000064400000000750152177723720013271 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FnIDATxڤ�?HBQ�/eXj68d8%AFQCYѠD�V��ڠ8�F�����`T�[j�M:$�̐�"�<�^����w���I�$�@_�zT�e��������{:�v��a��&���[�P(���"�{�0��_�Fd��L�����y���y�^7�X�o��ݶ�����2���4��+�$y��f۸sӼ^��A��NO�k��d�ޞ��e|�=���g��yw\���}_
�5�a'U*8�v���D2�l�P�R�r���<���Ð�e����+UU�J�s��&D��w���C���ځ�(�(��LP+O.��[j`�@���7�(�F�:
�@M�o�#�u�N��IEND�B`�com_rsfirewall/images/flags/cc.png000064400000035714152177723720013237 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T13:58:14+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T13:58:14+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:d838dbb9-3b45-dd43-8090-7c9c6d956002</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:646baaf4-b6b2-f546-b52f-edb29fcdbb73</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:646baaf4-b6b2-f546-b52f-edb29fcdbb73</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:646baaf4-b6b2-f546-b52f-edb29fcdbb73</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:d838dbb9-3b45-dd43-8090-7c9c6d956002</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:58:14+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�� cHRMz%������u0�`:�o�_�FwIDATx���=kQ�gfg�_���d���� [El,S���,����?��EH�B���(.kd!�Φ؏����.[x�r��y��snT�y,6�Ei�]:ŷ��ޣ?h���J7Vy�˽M:�_�
��D%���T��2�^���+��(�q4�j�G�����J�FʝW�R[���^e��D�nj���,	����� ��V�xp�������:h�0݃�N��}��y���l�ʅ<y�0��OR���h3�D��<|�$}>d�\b���l�Âj̠�.H\&�c���A�ڹ���J7�`�{��䬚'	�Q�/8��1�^2�ѣq\6���N5�ݐ�?,��3�Ne'F��3�
�s�Rp��ءIEND�B`�com_rsfirewall/images/flags/ls.png000064400000001177152177723720013264 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��KTa��s�s3��@�j��e��VA�j��Z��YD�ti�PD��>��QPƩ�!��I��^f�}���"M�H��Y=?��<���� 28�=�#���VRj%����JJ��b!���2&�K9��:�*_�N�O�{[�m��z(�b8.��o�a�c�/o2<����r,�^����,��<��)f� �~��Ǧ��~��/k!��B�(`T���^�G�H�-�o>$,�P���x0��ZSD�N�5C�Y���
r��Aq��)�ָ:�b�6��9V���S7fh��("s�<��ֲm^N��T�1�ۆu��ӷ����GE�V�q�v:����w��!���Y�}y��e�� 1iڊf�̔G�q#���ɯxN�p@�l�s�8�Ek���]@�̖6�6<E�\��o��A�ë�lC[���h����2�/&M��E��vz�Ɗm�g����}v!֌�$�;�܇$ ����,z��K�SIEND�B`�com_rsfirewall/images/flags/ke.png000064400000001167152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kQ�/����$�ؘh�4.���A0�.��ĵ�R���?��֍ ]u\�p��Vh�b~�|�����Mf����՞����r�k-g�����	j�Z�����8�Y]]=^,,,0�L�C��,9ץ��"��ZK��p%�c�}�^�@E�^[#�q�H��.��doo�R��1�@u����"f`Ӓ�~��ѐ�R���]]�I��j��C�=�&��x͹r�`!�-�UW����6��P,�*x�:$��"��0�lN��̸�b��6we�n��<#)N��<[��z\�&!C$��=�-�������˓
��%��l��4�?�x���_Y��-R�#%�;=x�T�������Dt=���E�xR�\6��h�	���]8��JJ*���,?��<3�@��pP�I�`Bs����t�c#681�_����P���)�?�̃䜒 �8k���7�jC��IEND�B`�com_rsfirewall/images/flags/bs.png000064400000000756152177723720013254 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FtIDATxڤ�;KAF�d6�JR(6>���BĀX�����,���#�����FQ���13c�$A�kf�ù�
k-��\ ��%
xv����=c���5ao>��)}��P�ƶT����@��R���CJW�0V+A>�����T@:qS.�)�><��0�r����&�Ðb�Hأ&�3��{i����92��Eҵ�	���KH{�l��4)"M�o�(���b�`f2��Rg�І�ŕz���
a{j������t��U��y�\�A'��h
0H����,��Bu�xI�A��/����<
��9X�xsj��{�����o�	�Te]ZJ7����9�/ɜ�
�+IEND�B`�com_rsfirewall/images/flags/kh.png000064400000001027152177723720013242 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jQ���3�=�1�D�,T��O`ĕ�n|��t#��ٸu!�}��"
	��H���n�ou�-���f���EU��S?FU��z�v�y`f����a�ɂ�uc��zy���AU�2�z�Ig��8��t��ܥRG���Iҫ��T�4�۫�$!|��	�>��?X,@*�ј�'�������
B���@y�Q����EAko�����L��#Z�k��;f_�$�y���{dw7?O��Y���hUc{]L��Y_C�
Tqw@*l�����($�'0EN�9H=s϶�6B 6#���-��?�e�i�ɀ��+/���%�PO��4�G�(����D�vT�-7A����H��
����3��?e����ܔ
 ��w���PX�a�IEND�B`�com_rsfirewall/images/flags/vi.png000064400000001144152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�OKTa��}�Lw�g��h�p,�ȄD
!IF�6A�&��P�ȍ��]�� ڶ����!�dv�4�?tf(�I�\�}O��
����<�s�?�Q"�^��#
�"�W�R��E�h7���_�q�&Z#��e���A�݇�;��	��@O"f�(\ l�#�3�s@ۿz�K��>��x���,�LQ[YĄUrN��}�(xOh��[Xv��R��6�,	k�Lx�|f���3�|QQ�_��s"5���Aq�a�P�d2m�T��
F7x�4�͉!����r�`�b�z��k<(��ӥ��V������iƏ�)���W�t�C��:�q����(��'�I���`h�3v���#g��#�'q&�A:���gL�Q��P��P�Tv.��<O��C��47�Ҭ^�V���)�˅��nm��x�'@
 庮��lk�)���s]W��
�R��Ӭm@Q���VN9�٥�}�4������;�;��*�OOIEND�B`�com_rsfirewall/images/flags/fr.png000064400000000676152177723720013260 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FDIDATxڤ�;N�@����(@��h((�(hr�t�sp�hr�PE<D�9��޵�C�ĉ	F�2�jg4�og��Q"�>��8Z�>��t�g��Jܿ��"\==��@�(���5n��5+a����mm�x�2Nk���S$��`�%�fDѼ�F��/<Mn� I���8�S�)�(.}lb6	�^F'����K_�NH}o
H��ιz7r�e����>Ĺ���@@��[����@)U���[�<NH�]W`�%� ��T�1v-�)�L>+��0�įq�
h��0�����w�U�����—��]dIEND�B`�com_rsfirewall/images/flags/mm.png000064400000000703152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIIDATxڤ��JA���K�D�&VڈZ��0>��o���؈������`�(j�ffvw�E�Yd���4�|sn��r��E�@io��-+���OB����	�kevח���ȱ�Q�B�]
�~;�V��lThw4���č�I�)��e$���ؘ��qn4С��,�����
@�����g��o^p�.dmI�j�M�EQ����!�S#��XD��ptu���!���2�∡u����;�(�D6Ղ�H�RSDmSc�Pa8�
:7�l"�}��+X��*�4crh*�ɟ�V�k���7�y�¶IEND�B`�com_rsfirewall/images/flags/ua.png000064400000000617152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�AN�0E_�4�H��q$��+�a��&N��H�)�vƒ�,l��o[�������K���&�w7WG(|\�L�QV#<�M

䮉,�c�m��N�]���&�@D�-�y-�XdJ!�b5@m�ϥPGw(+��i_[�ew6{�x9(=�j��J����\SC	��0ƭ[0�B�;bO�^����H�nR���%W!��X����k�S�O�&�(�$�1�?2y�+ o)Y�Dm{�?�ttf�tIEND�B`�com_rsfirewall/images/flags/nc.png000064400000001140152177723720013234 0ustar00�PNG


IHDR�a	pHYs��gAMA��|�Q� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA����l>6M*�%�"�1�O��x�A�o��{-)�4((؃����B�@L�f���;3^��=I��ܞ�=���N2p��f$0r�ڍ?��7�kM��\>_��+�+�ELZ'�F`ln�<�ej3X4J���zϏ�ߜnY}w��ˈ����j��"�v�8$�>�^�|���y5ǹ���}<�`8�IaY�X�8�����Ɛ��W�%�l:��R��j� �����$�G� p��G	�*�]��ZG�R&�4�{O�8�����I8��\��*��h
���Dat��|��̱�[�TU��ͺ�Ô����Q�<����1 �b
�V�i�m�zC��f�^B4=@g��(>N ��5	�h�nn�<��_�ͩ�i �<H�j��߲5KB��YgԀP���>�U�x��)
���g����{�IEND�B`�com_rsfirewall/images/flags/mp.png000064400000036332152177723720013263 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:17:36+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:17:36+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:186a755e-cee3-254a-8b4f-d3c0c7f07d5c</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:7ab244a3-1c92-d34a-98fc-67d0da19d301</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:7ab244a3-1c92-d34a-98fc-67d0da19d301</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:7ab244a3-1c92-d34a-98fc-67d0da19d301</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:186a755e-cee3-254a-8b4f-d3c0c7f07d5c</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:17:36+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>��V^ cHRMz%������u0�`:�o�_�F�IDATx�ēKka��o�$FR�K���$޵^Q�������"�W�ԕRT\(���AԒj[����$�d&��B�LBWYx���y�����2��sy�?�����2B
��>W�`�;��v�?-ep>�b6��`(��R�{��ܲ�2�v�$�!�4�I-��:ŻQ5�zDp'�B���b-C�&����z��K��F��$��I��1���-B�[jp��W^��q�]<���%���<Z�s(�tG
>�����4}Ύ��x���dž�_:��QHr��d��ϧ5���o�-�D�׽���b=�ps��
O?��%GSǸq|'��1( �v(�I��ՙ>Y��֨T]fN�X�l�tU�)�$X���VL/�`���!�g4�d��Լ��4�yK�N[7���>.��Ե䵽��˂�������r�=ch�}IEND�B`�com_rsfirewall/images/flags/it.png000064400000000670152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F>IDATxڤ�=N�@���m@
$�"MJ:��U4��C�$�Fğ(Bbg��Xqv�(#�vF�}�f�61l�Ž�Y�'�gwW_�7�������B�������W~�u|TPV��h�@�|FbSF:iȆ/?8�G�B�=%��F�eむ�hBm4#���~*~<)�M	0ӆ'�$�i#�<\��N��RZ�6^|#��2�3����&jG�U�ZP.�8;g�zD<�P����ZA[[20ֲ�͇R/�(��1�l���3~��<��u�]+gt�>���.$���b��5r��M�w�ܓ�hL�IEND�B`�com_rsfirewall/images/flags/dm.png000064400000001234152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F"IDATxڤ��K�Q�g��s�֠��i��4�A����U��m�� �B�6�
,hբM�J�����>�i��s9��Ӣijh%>gq��{��}�1��H6��;�lY@t��t�U}\=�%�r��:�ȹ1�=�	M���x/fAO{$z�%�>ڣ��.�n"v���M��@���n�/I�r��?W���M!��d�5���-�Dq�mi(O�Qy2*��|��L�P L[�������U��(O�M��V���`X�"��x>v�R�057K����[�[)��c�}�Ĕ�ӛd�y"�p#�I�TE�ts+Q$�|�|Ӝ:"p,A{X!}Vݲ��8�_-L�5K��y33����î=f11���q��^Y�m~�n��t/2P�X
R����~fz5Aۏ�)��3��Pe��Q;O;��V>����'r�:�zU�k�Q��&Zn��6[6��
����&�9ę����u�������ц�ڏ�-�<�%��@�������u@��;�BX��I�b�q�5n���v+�IEND�B`�com_rsfirewall/images/flags/bv.png000064400000035623152177723720013260 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T13:56:20+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T13:56:20+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:13728076-04f7-b645-a6ae-cce7b6aa0452</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:74d3e791-b9d1-7f4d-8748-db7dc9a506ba</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:74d3e791-b9d1-7f4d-8748-db7dc9a506ba</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:74d3e791-b9d1-7f4d-8748-db7dc9a506ba</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:13728076-04f7-b645-a6ae-cce7b6aa0452</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:56:20+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�Âw cHRMz%������u0�`:�o�_�F>IDATxڤ��Ja�3��`"LQ�ѢE���j�)��	�@��C�&�	I��@j��f�͌���B������;��������X�9�c��:�l�R�Q�M뱲iDdH����#�Mѽ7�v;|�v��ƚ=Z-�'�����F����	��*$�d��DTG���7�:=��3hf$�|{	x^0h[���/����L8�`��G�lP����ரP�G�D'���.����3ʵ��w���84���Bx�td� �c0��o�}����>�0Ss��8Љ�����lR\LJIEND�B`�com_rsfirewall/images/flags/pw.png000064400000001142152177723720013264 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1kSQ��ݗ��QC��U'�qt��G'�AW��������Q��[��(�TE�����w�}��V��g8���9%"$P����c������&DJ��Žk��!p�d�o������E�t�w$+��^��yad���|�����V��
���`y�2~�R�͙�@��Y��es,\8����O�VRg�.νei�.�'(�(RXg�2c�-[�c��B5�I�����T��n�d�3�`l�� ��"bd,��;p!L�Yfk���n"�jL��)YN�-�i�q�I��&�-!��l
`�/� �ǝ��YI
:�$e�Vx�Y � 0&��`rC�C��x��<���g��sN׿�>l�s�N�,��E�&3�����#ʺ�Mo�;��$%��	J����#��`�`C����(P��=�Yu�px�^]�]#�}<`�A�{ep��(=�IEND�B`�com_rsfirewall/images/flags/gf.png000064400000035640152177723720013244 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:08:36+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:08:36+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:54b4c20c-b4c9-4348-99f9-e99d49cd41ff</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:2d588295-b9e4-0943-8cd7-90158a37522f</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:2d588295-b9e4-0943-8cd7-90158a37522f</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:2d588295-b9e4-0943-8cd7-90158a37522f</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:54b4c20c-b4c9-4348-99f9-e99d49cd41ff</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:08:36+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>?Q� cHRMz%������u0�`:�o�_�FKIDATxڤӽJA�����$ !F
����� V6*�Xk�J�밲��,,��AL\!&��ٱ���`�g8|爵�a�?��߹͎�@L���ݻ�@u�%3��ɭ�
OwB!Qh�M��Uj�<�mW�0��0�a.ݖ���w��@+?�2��4���b�ղk�̀�W�v$`�"5b�p�I.�이ȹ�B�S�����O#��}�����w�vYQ���ݾ)���7�' ����J1���U�>��$
���?������Wz��J]6J.��"�Gx�Z���Q�"��L%�
��Cfh�ca���^Ŧ"IEND�B`�com_rsfirewall/images/flags/pm.png000064400000036524152177723720013266 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:23:21+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:23:21+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:a31494b0-ce84-d647-a52b-81ad5fe473b3</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:8198d6e0-f4a1-f144-9f57-37aa5ba5f877</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:8198d6e0-f4a1-f144-9f57-37aa5ba5f877</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:8198d6e0-f4a1-f144-9f57-37aa5ba5f877</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:a31494b0-ce84-d647-a52b-81ad5fe473b3</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:23:21+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>ќ� cHRMz%������u0�`:�o�_�F:IDATx����ja��7�e2�6M�{RH�A,]�E\�Ѝ���Bp�B�o�F�җp�J\
ޠR��Pc�������\��5��]�]x���J)�CF\�6��nfr�i4�~gklB�lb���"�P3$�����x8y{`��H2U��n����u�9hĈ�6��
����2�v�8J3��Kk�� c��.˛y�@
Ũ���r^�J�\�X�̎v�-����VL��J�����@C����[�g������jt[��4i�1�i�����a:P��Ԡ'�!�6���f'�D-AgP�k%�v!
1�#�ʎ��ur�������.�JE�$v=���C�x��m��@�s��BK��~��}{\:�J��������"7`�L�PB���˧JX]T�ٙƑ�F��YbE�f2�<q�S��i8m�|��f�A���i�g���1����΍(v�#��e)Ts�H�C�"�"	T��M"���p����,�n�B|Î
�����r=��qmO����R�J͢1�
������I
G*6��,5�2���g:4�o���g)��sIEND�B`�com_rsfirewall/images/flags/ga.png000064400000000620152177723720013225 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�MN�0�?�iJ!R%�a��+pX�e*q�8�aSD%��� �!��#Y�l�7��xT�]B1p��]��_N��m��^�G��Rs6:�~�>���,)܂�)6��QJm��2�,t`��ݔ�M�*�������d���<��K*�Z�����HO
A��bM���ت��[Z�1�����+�`HY�V�4�S�pC�K�A$��-��5f]�s�Xq_��@$�&pA���y�����@�\/
�� �5�Ԯ�9Un��ռIEND�B`�com_rsfirewall/images/flags/al.png000064400000001027152177723720013234 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA����;�8;)(��i �
��*

oH�3��DA	��"+gǾ�۝��LG���V����o��x����X��pxq��>�/>}|��Jar����'��_@dw��gm�
�Z�WK���Q
��ϼg�Sw�r����:Ԍ��N���9�TyQ�|hf�xO������j	�5E��_s�"_�`f,|`�&�XP�v�ۀ~��>?Ǻ��?7��]�1�5s.��i�T���޻��a�L���J�5P�u�<u��@M�<�'��U��2��^��x��Dh�HfȐ��!����"D��dJ@8�b��zBz3D3�O{C�)B� u���%�U������ȇ��3����ry�����Ѽ.d$��'�?U�$]��f��FV):YIEND�B`�com_rsfirewall/images/flags/np.png000064400000001172152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�]H�a��>\E�E&٧�JtQ��FIe7�P E7�a8\h�I�bQ�B���]E�$ɡQI�����p���|���.����t��9Ϗ��("������گoC;e�o��
E��t�M���g�[n;V�W}M'�L��5���b����x�����u!��h)
r9*���q��:��h��We�~�|����u��w���m- B2pm�����Vrl����o�<��g��3���A{:��{��Ҫl�jSp���Ћm{;U�:�[��!���~b*9�)r),"b1^LM$�$�E�{���w^���: @��{"�"�ł�U���2NC�]kM]�Y �_	 ���$���#��-2��|+��{��ة�@A׊��w2���OOPK��gaᆪ]�B���~�đ㠘�F?�ɻ��޼�m8�U���eoޓ�]pWzԥ��эew>���("��(�/4���@RDrF���E
Ё���!��_G��IEND�B`�com_rsfirewall/images/flags/ch.png000064400000000662152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F8IDATxڤ�=N�@�����
 �	@���������B-@p��	$��zwmE�!L^�ڧ��fF3JDX
���[x������ܷ/�7�A����[�h���4@��d�)���yv
���I���k��:H�E��d��\�|�Fb-�71�ːl2�7ץ������OΛ�0�!�g��GѬ�V�B 6�&5H3����~��	�w��51*�,�o��W��Ά�W�,�P�m��2/��/C��!�+P��	"�-�T����?����@�b�(@燤+
��S���B%�q�ZIEND�B`�com_rsfirewall/images/flags/ky.png000064400000001130152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�=hSa���ڦ�h+�:�A�� "�(�P�u�讃cAq��Eԡ"�M�%�)V1�hI��4M���4Bb_8��<��{^��b'�$:�I`�FV��k-�r��V�-OF3K�̞=ȍ�ſ�{
`��s�bl��wΧS�Le�"�d��,J)
����U��z�N�Rc�\f���$�>'B�g\���٫$��H���	������l�pj
�B��i�u�i���-��%�dR���
Z&�J�hy�/$�:��8m��2�#�ZP�N#��ۀ�w����C4�=�n��``��焢�T�4C4�s	Ð8�{��ÂO��b[c-�\F�yn7�'c�X���i��#1��A�Ҹ|)��N�}�mQ/]���]�y�P�j�])%���,㟯��2�<o���.H�"���DA
`H�}7���N��> �N�kX �h��g�IEND�B`�com_rsfirewall/images/flags/rw.png000064400000000665152177723720013277 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F;IDATxڤ�OKQ����D����-jѮE�Q��Z�G��M+׵i���p�y�Z̤�G=p�<��w��
c�@`9��@}�_\?|%ei��AJ�ΏJ6���p���H�r>9\{�Y��%�؀�tH�p�����Y���+�0�FX6�T]/��`��+(�籵�TQ�
��٤R6_�l��ލ�>շ2�Y��a�^��S+�I8�<���X��m��b�0�@���Q��5����	��
�V��V��p	H�X��2!)����֘���&�����E<�L�������&h� �-8�IEND�B`�com_rsfirewall/images/flags/cz.png000064400000000754152177723720013262 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FrIDATxڤ��J\A���sw%�j@�*+R�Xi|��
�6!m
������]��ŮJ�1)�EDV$FCP\���ܝ9)v��e/��4�|�s���)��;o9���~eOM+yTb�T�>D+���&���LQ��4�'W��P���-
��u��ɸL,�k�XX���Os`�����E�p���h���y��Η��t��
0�x��(
�7�y�t�GOs4:J�=|��HDb��c�������q��1�;��)�a��TB�r��T�o����'R��wҔ�b�IƧd��!���/"��7�̤u>�*e��.������l�����J��(���x���B�V��I�x�����q��P�"IEND�B`�com_rsfirewall/images/flags/in.png000064400000000657152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F5IDATxڤ��J�@��lդ�*A+�QГţg�I<�0^���*��k[��&���Z�*�,���|��̎����}X`��Z��}�׷��w5P����5+!�4*�ĥ��Ϣ�L%:�R�����Yj(�_H�_H�S%��L���(j��_p�S۠��p�\��qL'��,A�C���˅��	���1# I�_2��{�ߢ�y?1���rX%���I?��^'�F��Aġ�E��D6�J�X�ByԔ�]@0�N��^�u��hP���E�x��%	r�����ثy�qDIEND�B`�com_rsfirewall/images/flags/by.png000064400000000671152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F?IDATxڤ��J�@��ɌMJj���j��K�|�A�gp�+�bwn��B-�6�:�$3n�
R��gs7��{ϽG8��E��u�"���x�&T����߄���B!%��jS;?+Y�p$O��������m��
�$;m\�H�Gc�/��q\n���@���v�(t
�v%F'���PI������	�(BK��<�(B��8kK6K�6vX
����	��{�_J��.����A~�E��|���$�`b�xA:T��X�1���+�/�x�8����h=`�b��Hr$Y�F��y�t̚�)�IEND�B`�com_rsfirewall/images/flags/cv.png000064400000000754152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FrIDATxڤ��JQ���݈ф���X��������N�I|�D��/ ��E	1�nv7{��
�`�o���3�QU�#F�B�F	8@ikk��/��M9�x�VW�gYU���`��$�x{k��4w�#"=���I��@'��!��{��t�#]X��	@ż��4����V�����(���VS� bm鑓�I��be�ӫ�>@��'��"��﫪j�q��eL�W��}\�vsSE��ٛ4�
���󐶾x�7Ё��G��)�
�Z�n�P�%������X���Gg�?�s� ����}�±�J9�#M�C�zX����In5��"�C2 �����C�e�9��IEND�B`�com_rsfirewall/images/flags/ye.png000064400000000552152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��N�0�?ǖ��
�dB}&���A����;u��		)n��d���'�Α,�8�%����ǏS��>?���3�����
�����'n�s�(ut������`#z�c���5QU�c�����*� ����hs5z*�����4M�֚�mg��s�1F�F����az�H)a��Z;�R�ID�ޟ����pYh����a�t! I�����8�wK	×IEND�B`�com_rsfirewall/images/flags/lb.png000064400000000753152177723720013242 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FqIDATxڤ��JCA���s�(�6-l�/`#ho#��/`-��m;kAE�A"�@D
1��{כ���h=�3g���Y%"�
�c�8P�����_^O�e'#@���/d�
�`�viV �w~��ߧ�^
w��A���5�HA �0�)['Y�<ܕ����A @�0���?z����G�����Gx�-��~(YlT�9�㬐���1��w��6'�y^��Waq:Cɯ����#Cn�����\b������E62+�l��Q@� 9�K�Ɛ�Q~u��k�Y�?����X+]�S8J�pЎ"�+��M���Z�`��rm��l�P�( $���\��h�U�	���5q���IEND�B`�com_rsfirewall/images/flags/gi.png000064400000001004152177723720013232 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��oQ��yo�e�!1�)��1z�7���C5z(�i4�a���e�M�.A��a�of��o�oDU�%;�VU�̈́ҫE��z['�H�fb��h�|4F�c��1�����a���������
t�ЬoS`��,�v�ɧS~}���j�"x�K��/x��a��}@��9Q-�MN�ޏ�8�CU�Q`�`F�y^�s�|�$\����zx޼�ҵ�Z�\Ȳ�ҟLI�GZ�l�� �H�'M�����g���+k��h��kFG�P��Ow=���h�%f���J����P��y�0(P��!bQ<�=ٺ��1.-�@	�}h\�
�f%����E1��Ov�O�r���� Y91���G�r������;{�PIEND�B`�com_rsfirewall/images/flags/kw.png000064400000000734152177723720013265 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FbIDATxڤ�?KA�{{�\��q A#�Bl��&�
��bm�g��K�`�G�`#-�6J��mr;I$v���o��S"�BS�t��$����ӣW�T@iI��ׇg��_7U�W��(o
i'#)P~{�]@c�?��t�@fw
���z�(52���J��qL�^�V��~����>���PZ9�m�èP,+A�!������7�M2�̪�+*�
a�-`��Q!"X;��(�Zc��W��
C������{t��,�).gؼ��H?$E���`�a��r>�w4_�ҕ@,q��K�9��F����<�;+ ��^�^��F�$�Q����Y�C��$IEND�B`�com_rsfirewall/images/flags/sg.png000064400000000631152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATx�̓�JQ��s�M�)d�Z�Rŧp�֗�%|�V���R�@/c�Ν;s[d!$��os8���p~~	!pT���,��P{�_��E�锐��5�ԯ����J��I�G�$�1�8�X.)V�=7�@:�D�x����TZ-���T�M��B��㘐e�d��8�vq7��z�l>'_,c~^�>M0�GQ"d�w�ւ҈@�'����$����Pkm
`�ٔ�K�O��Gː�����T�	P�����W�I�-�.i�N��������&3IEND�B`�com_rsfirewall/images/flags/mo.png000064400000001207152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F
IDATxڤ�=ka��;3�;���D��������� ��i;�C:k������beaAMa̺I̚���f��wf�k�+	v!��p�{8�#��I @�����y��x��V��CU�A�׎��ݗ��(��|�*nLl�%��th���h�%��GUQ6���.'�$YIV�Ҥ^�M�r��#��(������q3_뱙��Yx��Ňx�Q����;�<���e�����O��4��
z�6�x�
��
�`��^��Fd��Q04�_�N�q�GW�������!NK.��`��rgy�y��`τ���j>JY�fآ���=<	�uf	�n�����q#��i��X�fa�a0�F���\k�c7mӎ�Hl8�1G20Q�7]�T�&���?iOUG��@���Z�@Uy����l��s7�8{����
��|�A_�g,`]�l�E8������oi���g]���_���3�0u�.$@G\$��%`�u�;�C�7##�'IEND�B`�com_rsfirewall/images/flags/bf.png000064400000000675152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FCIDATxڤ��N�0�?�IS�BC���&^��B���X�:��#c��҄��i|�6
B*m�dY�=���k%"l4�V��|�@�?�֩޹�n�@$EAx|�o���'����9���Q����j�zo�s����	.I�.�[�����,#�pɸJ�q�@���-*���	�.�)BEb�F���t�Nxk���Ncmb��M	��/� �IU�3��"@��py��	6[xB��(�-��z����s�%�7�@ġJߖ-W��XK!�6e)��vN`�p����3�V1��WLN��t���`զ�g|}�%p�iIEND�B`�com_rsfirewall/images/flags/lv.png000064400000000557152177723720013270 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�An�0E�c+EJ+�"�aɆ='�7��	8@�
�D���OZ*UJ�o,[�o��gf�#��y"�0~[���DY��(�my^.{������O�4�=��]_�������dBR��A�-�~Yd��e;�1�P�
�g��W�'��z0����ł���^�Pl� "0�T�_�ty�	���9Yޯ-%��@�f�W�-ͨ3�i��>�σ�Z@ݽ�=���1]�IEND�B`�com_rsfirewall/images/flags/bh.png000064400000001021152177723720013223 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jSA��sgr˥&�����#��"�\�w�w.�FpS���_�MՍPD�ml��7P���Q�ԙ�w�qqc�6-��0pf���9GT��@�83<O��-�Tկ��������
"eX�|r��L�0w����C�G$��?��[���,{}��Oq;����h�0�4���1b��,��~�
RK�?{%��0��wX�Y�Q���}u
�n#�B"�ǡ�x�ɲ�t��{w���1�#$��Fg�1�s����g��Ya��-"R��AY�
U>�$�/��z���[��+�c!y�wn�����9�z9��YPU\c�W��F���4�_C��Y�V�
�rTc�P�N�sܻm/�p?���D ����	w�|��$�����@�Ӯ��j���C�]IEND�B`�com_rsfirewall/images/flags/me.png000064400000001053152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA���ٵ�7����i��	���Z��GB�!(t@g	Z:�@DJ"��ƞ�ٙ�k� *���f�s4߈�r	�v6sy�W�_<>��ۇ��\π����?T61/�U�5(2�h�P�$Lf����%J�Ԇ�u�lp	��b��ق4_�@��"�4���ܽ������w�Έ�S���ܛ�M��6��vW�W�р0�Pu幁����q�D��0>!�i���m�*��/4����0��.�=7(]IQ�%�*�U��#�l�I=��b�G�b"ZU�8k��6�	�B<j>��M��L{�<��g�J� )"FH��8�&�7"��=@
R�P�z�,��Hk�ģ��|ف��3lQ�u���GM<���5\^�>0�[��e�]s3�Q�\�;�Z�D�iIEND�B`�com_rsfirewall/images/flags/tm.png000064400000001051152177723720013255 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nAEOO��ď�����H�"eŎ�a	_K���[��V,3~�tOw5[�<��r7��GuUuU���HU�����s��_��|y6e$�N�ys�RU�2x!&�	�_���$p��Xc_YN�ߢ�W�OUF�1�J��"�ȇo�
h�K��O�ɘL�A�0Ȅ�����C·? 8Ы��f��%�6�9�XL�^�
�s�u�g���F���H,I�`��䶠�Nf�:,�m�bAo4@E����=�=@Qpq���b���׻�B�U�u�m��M*�
��st`���#�je��\ˇ���-�-���s��ܖPD������K����&�w&A����$F��������F�t1f/&`̕H��\�E����,<��!{t��$W��Y)p�v���P�^I��S׭����1���IEND�B`�com_rsfirewall/images/flags/mr.png000064400000001067152177723720013262 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA��3�;��1�B�p`k��!���Mm%Z�G��+v��BV�O�A�ٻ�ٛy��A8�)�{?�{�NR
H���;Ky���S����x,����!V[W?���a�i]�@������׾�|�rIU%d�>O�6��9�.�(���}�#@��T@��
��β�227�օ��PJx��� @����҈���H�s�X���k��Wvx�}�P�<Z��y$,53����1�\
�Lyѹ���}q�7�k+C�����$�i�� ��QĈV�^^cc�M��y���.�I��6���V�"Fl0�Z�4P@C��
|hs�^�vm
���� ��
����JS0��}Np&�<,&"8��/!���(x,�����]�
���N�_��Ȱ�UM�IEND�B`�com_rsfirewall/images/flags/se.png000064400000000730152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F^IDATxڤ��J�P���z#J�7��[�}ׅ�\���Q|��m#b���K��4�EIZ+�t6s��f��Zk����ћ�&pO�����g�ο��'M	T�$��{�V�l��.�,@kxxT%`G�f�G�a�|�p��!n��X�@)��T1�*�7̂G3��t�(�2g^��\n�z��S;��G��t$����uf�	>�ɚ��(hw�ص&�0F��)܋>KRq$�\b�-��,�I���M�NҜ��8ZS���1_��V�DkT��d>g��?�d��Y�ҷ�7��1�)���!�Pb�s�sτ�8�IEND�B`�com_rsfirewall/images/flags/hk.png000064400000001143152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��jTA��:}�L2���A�хD}�P��{��(�_CT����D%c�J�G�[f�t��nH���M7T�WE�K���%��w%,��[����Y� rhjz��T
�E�)_�xH
i
�hY�D��*�X
��q0�w�"�T
�d���WH�!J�N։���C�����*��V�5���NR����NISD)��Hl��u��v����b��1�(Z-N�=�$�u���D����ZS�����Q�lr���J�*�=@�j��f�=��B�E��%W		�֚P8"��y�.�gϩ^�F��e�33�y��A!��>��9�
�'==E��
J3�_6P�uJ��A ����rk�i"�RD�h�=�.-c�7p�71+�$�Q!�Hn�>�#�H�A�z=v^�#���VC/���\�!��=��1���+$g���].g&�i`��^[�=#�#<`�v�;����IEND�B`�com_rsfirewall/images/flags/a2.png000064400000000345152177723720013144 0ustar00�PNG


IHDR�a�IDAT8�c`��% ώO���q5��X�d�l��q��s��ȆH�. �"�n ��f�R ~	đ�b#� |��X��,��k@�S,��c�s >
�&@��TC��������#_ES����6�' ��3��ŦFRB/f�b@:�agZ��E��GIEND�B`�com_rsfirewall/images/flags/nf.png000064400000036122152177723720013247 0ustar00�PNG


IHDR�a	pHYs��:�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T14:19:26+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T14:19:26+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:5AD8E4119D5711E0B564E184CDF6FCDE</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
         <xmpMM:InstanceID>xmp.iid:697259a1-b1a1-7345-921a-acf4577831b7</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:4de25e64-4197-eb48-a957-230ba6b690f8</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:4de25e64-4197-eb48-a957-230ba6b690f8</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:4de25e64-4197-eb48-a957-230ba6b690f8</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:697259a1-b1a1-7345-921a-acf4577831b7</stEvt:instanceID>
                  <stEvt:when>2014-10-06T14:19:26+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�2� cHRMz%������u0�`:�o�_�F8IDATx�ē�JBQ��s<7���� �IQ���5i�C�
Ѽ'�z�^�Q5
�
��D�������4��5��ޛ��k�-��ɐ쬺�8�caf��>�T?�5,�mr�xN�\U@���W�j�����t�	t�u������.�pa$�h���X�LD)�F�z����9�b)��	���3��"�F�˒;��15BDDH�'���_Ľ��@A[��N�{}"������z�
[_��,&�L�&XO�`�$VNw`bN�ݍ-.
9���Zj	k-�5=9P@�;�Z��M�hk�neU��3
M�12v���EIEND�B`�com_rsfirewall/images/flags/ao.png000064400000001027152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kA�?��;Y<â`�#V��"6)�X����m��4�F�m-l���Gc!��$�
w�m�����,��#xg��+��{�f�FU9�����p��ѝ{?����6K4|�d#�k׮.�����>r�j�hӐƓEc�쌲~7о���-f��ϡ1� y��Sd:]���܎�~c(�:��#d���$��B�R�'ȴ�w�C~@��Hǂ��>��X��9����3u]ϯ���~9��Kem���7a�m��*��XڶEU�~Q��
4ۉ�s�
�w"�x]בR:	����ͭ���������MOd9�{OY��?��=�X)A���KEa�:��%��s���qԃ��!�9 �*M���*`��X�G�3#�	�v�3#��=L���IEND�B`�com_rsfirewall/images/flags/jp.png000064400000000727152177723720013257 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F]IDATxڤ�?KA�{w9c���"
b#�_@,[�����X�X�je@�D�H8�_�hec�Nrw��Z�\b"H�i����7�Zk��l`�~v��, ��~멻c��c����ZJ*�WTn���yW�vǔ� ��4�>�G|��@�&�ddo7�H)0�0�
����	���{eQ�r��w�� ��O�DP|�h�F�R->107KC��c�°ѵjK<
0��'"^Cc��3�on!��R.JyH�Z� ���a���у}bS�xg ɵ�;ۿ8����8�[8������Z�B���"�H ե�^E=j����E��{G	�>�GIEND�B`�com_rsfirewall/images/flags/ie.png000064400000000660152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F6IDATxڤ��J�@��MҠ��C����U�	�m�x�=/>�>A�@�^lj�i�?��zhI�J��a�o���{�@o��#�E@��������a�<�l�/gе�r5�ؙ�3�\�,�{�����%�j�d��l�^����#m�E�T�Zn1�u.�0�@jI:��Ԍ��4x
-k�xMGd��;~[Î����(%�'�w�]t5_Y���4�Q�P�����@+��!D��B��Ե&��{G�����F5ژ
`�u��F@�$
{�o]g�s�t�[ȁ���!�{,`ġ�7R��,քIEND�B`�com_rsfirewall/images/flags/zm.png000064400000001017152177723720013265 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA���[_��H ������6<	�q�h�&��RE��ID������ow�v��,;RX�-F��fv�13b����ob	�y`��?��m��:�`tc���O=0�4��޴
�,��Ƅ=͜\�F(��R�97�꯷�Nx�mC�)_���e0(<@j�Ps�{?|��9v�@n#�����*θ��9a�)G�W�	�?�bލ�]B�<_Q��ZT(��]��<�{�dD�ܝ��GM����*فjn�ct�!P�M���������Ф����l8�/齉�,�"`Ja�AJ�-��e�)KpF��f5%��$U����C^�ۯ)Y���̧��e;���7����XR�! I:�Z�}HeIEND�B`�com_rsfirewall/images/flags/dk.png000064400000000640152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F&IDATxڤ�1O�0�?�N!*����J�	��Y�0�O��I`!T(C[���1Ц)HQ���ޓ}~�D�e��:�6Y���h�N���O��/�����O���Ֆ+G�������w{�0��,C�������?����@�@���Lj|4*	�I9��&8[��i�JU�i*@���}SN
�Z[Y`�1�'بN>��},
�v�J�Z���1(��j圈`���sVcT��r�y�� ��p�~�Sį��vV@h���=�� ��j�q�(��Fs�4�IEND�B`�com_rsfirewall/images/flags/pt.png000064400000001117152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�MkSA���s�kr�FI�*ADE� �t#�nąȟaq��n\�r!�t#�� *�U�QSo�&͝;�.M
fz`8��"��~Je`a|�S�@������:!�!p�뙝�y��!V��i�@����	�D!�����~�
�ƀ4�2�9]5��@+��
_z���=��^kdPXMV�m��n�Zw���N%,���B�gl���B�c4���;���&\����'�u�=M%`����	@����NV�@{=A^���Uh��%?�d#�mO"�*��ʔ5B�*S!_�s��#l9%>�E��$�cQy>��j��[MN�n���q��Ý�I�@8�S{0�B�
�����
7���&E9���uJP &'��Rj�@k��8ˆ����ҳO����?�u��`��l$�}�U�7ۉ�!�Zu������&9���-��?c��}�
;IEND�B`�com_rsfirewall/images/flags/bt.png000064400000001137152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��ka�w���fwCPP�E������ ��vVvV����@J;��J�>d�[�Ƀ��<vݗ3�cf�E�� ��Ӝ�s�{DU9
H��.��[��y�2�UP�`&����w'c�9�ĵ�XPl8��*QL��b���1`��-z��%-���-��	*|��:a�3�{�CL-�{k��z�\�0M�f�l�R�<��*�p�:�;��=(�P���/���<�ma���Lr�
�!d1�u�d�!�#��l�S�(B^��EL�
Қ�)��{�Zh(����q|����s/P�o<a��*��n,�����	֦��Ҥ=�W��F$3w��S�N]$y����<�9��of�o�î_�a�?·_a"!w����6�uQQ2�h�����fIF[P�R;}/ qDA�>�8�����\{���}(Ž�w`hS����.��Lv�0(/G�����f�G�IEND�B`�com_rsfirewall/images/flags/jm.png000064400000001307152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FMIDATxڤ�MHT��7o�96�o����&$!m�	ʅEB�#j!Q��?����k��0
$M�٤��@A
� �D����{���cFQ��..�p��EDX@�/����.��?&f4���u�+���nqaG��Be�`�	xn�'i9[��Z����a2ԿHl����q��}��Ծ�%���G�i�t�=���'/B�E�+]��r�o��x�P��a0�n�ѱiΟ�8V3K���͑|l�sU3�.O0�ʦ����LcN�d2I<gnn�S-Bs�FS�,��8�@E0EW�ŝ.|��dr�h$�p8,�g�:�"VH�I��?f�pX"��Q'@*�BD�d�Ƶ��h>�0�Y��ƺ%��]\���mY�m�V���~	��q�OD���DW��w�J�ߔ��_��Rr���]��:~�XV�04�ˁ�..�9�_D"���TN��i�
Q{Pc�Y.[�(+&*@tOM�D�|L�FSo!/�x�Ϥ,k�T�޴������&��y��جƆ=���9\* 6��?�0��4Wwũlߙب:PxW�����ARWI`���8�����U�IEND�B`�com_rsfirewall/images/flags/mt.png000064400000000632152177723720013261 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F IDATxڤ��J1EO��PZ�**��Ŀ��_��?�U[�*�Z�$�d|�Z�ݪ����\2JDؤ���w��"2+&S�������J�����vB�
0��D������.�zЂ�b$�@,}e �o>�Vzw)Km�<G��H12��8�_�iMt�'��L�s�)�[�st��F@9���ZY�խ%�Z�2iI��*����?
U�"�J�]�`��f�r��nt�9cB`45&�ӯ�Y`l�ys`��8$�& ^mz���ɀz��bIEND�B`�com_rsfirewall/images/flags/li.png000064400000000716152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FTIDATxڤ�=/Q��3wf��bC��F���k��?F�O��	�MD"*!�D�e��;3�*v����mNu�������!P��~d�W���{�AX����pwk��Y�X[��4�R�mrz5�u]{�zvpr~P��f9���+�$�b~���2��P�����f9���6���^Љ�/��F�9D���	��
>@��F�֙���9��e�x.�y%+o�}LTk��_E�Ŷۅ��Em�tv��u�T<gm!��Rbc?G�I�aa��:������H!�s��|h��4�A�������9���D�0LC}6���^�T��0��8��ݎr�)�.IEND�B`�com_rsfirewall/images/flags/to.png000064400000000653152177723720013266 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F1IDATxڤ��N�0�?�n!*mE*�3o�#K��1�]���`F�U0�� %��%IU*���O��)a�P@ؘ�e�_h�������B����ˏ�:W��ym�т�h@�>��������/��Bw6��H��5�A���	�w7yq6��kk0�9�0�i�F��<|���CZIJ6�T�?h���.q�$�4��{Wl�j5$�P���8U�,�͜�dB�J&Z��jɰ���KEx���
Nm`h.�	���$��Y1R��U�{�u���IEND�B`�com_rsfirewall/images/flags/jo.png000064400000001011152177723720013241 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��K[Q������hx5ATJšk�{�T�PpA�#�E:�u7�%S�蒭K�P��t�Ji��^�7ɻ*UL-�r���;�;���r�@���Y�������CtF5�fsZ�d���O��b:6�[�Xki�Zp#c��+6�������!n@*�
�W�&��#8�ص�¡�m�S��8h��F)�Q�1	�	/l������QJQ,/�G.�Y�򙓙9L�@�U����o�qnn(���ߖ�HIAiJ�۔j���I�\h���0�b�?]���Oh���Ǡ�$���K���T�B�a��)&��������z��e��(Ţ/lD�h����t���`(e�B��{$7#`q�8�_Ş��ERIEND�B`�com_rsfirewall/images/flags/cm.png000064400000000766152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F|IDATxڤ�;NA����V^29th$��e $��D>�.�BH�eK��م�3]f<�Vt�%u��u�%��{�����,<`c���-@_��׫A���K��X���ٖ&U���<d�2|��F��H��L��X���v�旿~������M���}fn�[@�ϑ��'�͙֔�t�0�,nA��)$�r�/�_&��?�^��ސ��U�a皵������J�u�5}@�(]!jl�yB�=��T�����B�kI')�g*1�����[�
h���u��o\�G�6�t�#b����Q��)u^���l�Tq�Sൊ�~��b�8�7-�8�l���%ga� i)YP^�;�{���{@��IEND�B`�com_rsfirewall/images/flags/sy.png000064400000000646152177723720013301 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F,IDATxڤ��N�0E�k+T
����,�?����0�'H��TB���6��
�j籴Q��Դw�|�w}��D�M��؞�M�ot�'��un?���7@��l5-اg��Zʒ*��_��E�
���E�@�k��	�x�Z�V�k�mR�,4�����2�y�^���E!@��Kn�A���z�~���.�\��iZ;���\�=H:��1di*@b��.Zk�<_�q��,��mԟn�����'�QE��ι��Y����:�!�Ӱ8
��A�

<�Ԧ�;\N�Ѐc��IEND�B`�com_rsfirewall/images/flags/bn.png000064400000001216152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��kQ��7�2�L�i���P�h�Pmɀ���BŽ���[ŵۮ\
.D*.u�`�"U%1C*��&3ɤI��s���pa����9B)�~����^�m	d�ƹ }X���.�I�� �R[�:@4�#4��p�����n
�*t ��p��z�����A8��A� �"t]�C$r�
@ku�n����h�5�L�-������8�5����&F(#A�—��76�7��^#{	�X��}��]L
�� p]�+#���Ƶ,r�Y(ڤ��9�y��m�ׯ�l6�f�����8!
/�M�c���V��W1�=!?�b�WL�>�e%9S�1Ms�S嵉�\F�[�M�y,�l'��H��@����U@��LcYi*��@��(I27�`�Vt/��C���tȎK�.�h}��W
׋�����Y�?a�X�@�����B��3�\U<}�r�VgZ�o����\V�4ئ� ��B�2@�����!�^0���������Ϊ��3IEND�B`�com_rsfirewall/images/flags/ug.png000064400000001030152177723720013245 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��OSQ�?��{EZxS�b�H4L��t �h�]�ܘ�trwč?�M,LH���1@HHkki_/��8P�\
�����9�=G���B��{���*�J�.��8��@~��b��8@�¯�/�1y���T��򼇮�k�/�C��X���W�f.� |��d�Aa����֏�1�s|�p��v�4�ܺ2���^X��d���h�l�	�%����τt��F�@��7u�f���̮
Y�:`(F��oh��v�]�(O��[����IO*��_�э�s߿�g�
pӖR�s�4�BkE.4d;W��$e~�H�	0ܷHD� ���rk!�'iw���۔�������P����R���wYF���F��8U�����8u�s�;�Y�=�e�8IEND�B`�com_rsfirewall/images/flags/gr.png000064400000000661152177723720013253 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F7IDATxڤ��JA@߲�(�&�"��,,D$������a�/��(�6V�
j%	h~��Db��#��^��α��"A��5˲3Û�%"��H{��| �tTx��S�\`��b���+n�d
�-&�:��*�Y��T�E�
�D��W�JM� �Zw���L�$�<��:{kf�T��䗹�3��]�_��+�eZ��N�G���r;�(�m��aZa��8�D�q�� p�Ɍ�z��7'�2�������m�'�wLU������x��
�*�|Oi`��\^�ۃ�#O
:�?����A��IEND�B`�com_rsfirewall/images/flags/mg.png000064400000000574152177723720013251 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�1N1E�e�� @�&7@��KP�i8
��:H�D��=� ������|=�g�(a)�V�6��"�Y}����0���`�+V�g����F�9cxzY����	Ҷ��Ѻ�I�EypZ��x����R�ے�����.�&���}�;���%�Z�3%IE@H��APX����5��ԟ�����*!8�>�@�4�|���8+`L��-o�xQ�$V�D(^�z��
�l�a;�.IEND�B`�com_rsfirewall/images/flags/fo.png000064400000000716152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FTIDATxڤ�?O�P����+`��1�`L�Xpwwq'������7�V4U�1�$P�>��"	g�ɽ9'7��+�R,@|T�t�j
�bY��_�|����ցشtv/�!���mӁ�t������֞'�<�t��_Jdw�st��;�6M�����ecwN���1��O9q!S?�=���/�ί�&2���U�u���KXI��\y�%wr3S ��~j2�e�IJ�i'���R���e) ��z��t	bXC0�h�~?04t
�b�Z������T���P6�[_�f#Пgl�������(�ƬD΁8b�w��9���%�IEND�B`�com_rsfirewall/images/flags/af.png000064400000001026152177723720013225 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ���A�����ݽ�	�}aA0�W0���.��70R0#�A�Dvfg����2���VM�+(:�����U�6!�N���&��|��o�5��2����!�}��n
L��c6��9�xt﬷,(ʧ�/�H����kV�Ut����
�~����n���9ʲ�,�X�p�8�kK�L�v$G8�;��a�\RU�ҝMI�)EMFi�P�ƹ}�b����X4~�9=E7[�k��z�"?!�ɵk-m�B������zK��
-�i�Z�$!�o�\\�>y���	/F�
���9G��H,J��y��ca�B���x�1�`��1���@PL�
U�n�WU����l8F��/�;��}`z�.��I�HɁ��r�u�=ڸΞ����IEND�B`�com_rsfirewall/images/flags/mz.png000064400000001033152177723720013263 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��Oa���w�M�G��C���I'GBH�pusp1q��A���ј0GC�(�Wb-�����^@ �jó���}�'�D��H%`�hN"��@���ݽu��%"‹�s��;ظq	�=
�@�_,+�}�
PՀ/YCn?���E)���8��Bf�5\Q�
hv�7?N]n��o�IF��3�ό��Ck��֤t�=�k�����Σd���R�N��a��
gB�Q
��F$a̻�6��x�'�y�ы����?��aHg��������YJ�|�T���ʸS7�We�t[�i�)��_�t:4��h�̿> g	���o�dwtr���Ra�e�?�A�b!���7�慰����� ���B`�M؅����H��Xu�:�7,�8<{cIEND�B`�com_rsfirewall/images/flags/na.png000064400000001315152177723720013236 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FSIDATxڤ�KHTq��{�stb�	uH,��!$F�Ea�	|@B�`�"��\�	�@R"j�YHM��@J)��,$��R�m�q���{�m�)�@�6gs����D�8��rd
�:P�B@�T�%�$�k3�I
5�6S��'�}+'���(@j�-�Q�}����M�
�����L
�^1Bِ���/UdU���\��:��y�%�
r7eQ_�
����#�6�����@�Y�4�G�ܔ�L����켎�
���q:'�����TG�j�UUtx�x�@74��g���@R�c�827@��m�*��yDN5К���	@̈2:n1=f�l�5ld���=�������g�i��c|�YN7�n&��"�&(ڳ��e�x;�z��p�>~�������0G��N�214-�Dtj�Jhq�"�[	}���Dn���|�[wp�dن),b�IL�p�v�T?��N�ʚ�|oi���p�4Ł�$�~�]����B�  ����'�9?��`�+��"h!0�����A~�l8++i/��惫X��]�1K��q��
�-�`R�"����!���b��IEND�B`�com_rsfirewall/images/flags/re.png000064400000000750152177723720013250 0ustar00�PNG


IHDR�a	pHYs�� cHRMm�s���Yq\�1��]��knIDATxڤ��.Q��3���Ӫ����Y�X�k7`���N�6�HT&"$Z!Q�ҟ������j+B�w��<ON���PJ1H4�BJ)�_��D�@DB�}-���7�?
i�����ޒOK5��+�3:���0>�������7ؽXa�Dzx���>���uݮ�����E��a�ûKn^AW��!=v֗q]�'�/W9(����޸�4x�5R�&2S
�a���&wR"�Ẍ́{��m�6ǘi��4n����c�ū��9�f�v&fd�<>>��f���^9C�V%*��H�R�q�tp6(�9cz2M���]Wܲ,�S� �2�,Kq��<��l)`�l��N#id'> Š�>��G�HIEND�B`�com_rsfirewall/images/flags/cn.png000064400000000725152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F[IDATxڤ��JA���ۋ	&��)�����#ZX�>�
��M,�h����;E!�,��7;?f���)���{9�M�����d@����M��wv���u����b7�3�\��a0�ػ���%���X�@.�GoM�M�'�XUO�t�E���x�k�`-�vN�,�q����=�+
�k*ω��|0��)�r�*4�
=���$|�A��LYҹ$�f|���&�����&�@Y���TE��-HK)xJ��5UHJ-�����L�[p��Zj�D�Z&Zk��C�r3�R�S\���/���	����X�vu�{E�������w�]�IEND�B`�com_rsfirewall/images/flags/de.png000064400000000607152177723720013233 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F
IDATxڤ�MN�0��q�
)�UbS�  ��S�e�v�ADQ�?�mM(ݹ�l,[~o>�o$��9%���c��9P�u�qJ��z}������ҐE�1��l�Ȝs�}O�4�������r�s ����mK۶IJ)���ZQ|jB����"r����G+�&�5�WBק�W�Y�'0ư�CH2�À����Ѱ��AH��o[��#p�1W)a���� �a��fg�xz�N	��V��H��.@6Rv����;ο��v�3��IEND�B`�com_rsfirewall/images/flags/nl.png000064400000000557152177723720013260 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1N1E�cg�hA)hR�J�8
7�4�q�4H���34��T��/Y�%�?�#�QUN�*��K��O,��w��T_=>\:�֜�]_�D6(J|z�`��ж%����C������1"
�4�(�%�p8���Z*��	@����{� �P��8���=v���e��Sr��QL���)%*Q��E ���IEh�^����`��[`k��-�@2����w͙�:�IEND�B`�com_rsfirewall/images/flags/ps.png000064400000001004152177723720013255 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�1KA������yǢ'�A�����J�P"��R�w��*mjmba%X�Wi�+��b%��筻73;�;�ѠX��i�{x�e^��5#�!�v���} �]_��Jz%mZ��[Y���&{Zs��W��v`�db-�I—��T��4�!!�?�F�Aڿ#}��z�.A��+0m-?�x���yc����Ya�c9�Y[X���	�����j�PJ��QDQ?^!�=9��w�-�g�@+��2(
(
*q����e����ֈ @f9C6g���?�a�ۋ�o�a�U���0�<_�cu���	*��s�<1���tn��O��߇�L���@@�#M�_@z0?��876��'�[�; ��z�.����E�%9����nΧ�>�4_IEND�B`�com_rsfirewall/images/flags/bm.png000064400000001136152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kSq�?7��zc2$i��>�Jm��K"jA�A�:����:�@����:h���H��T�b->�#Mk����sh5Eҡ滜�9��9GBЎ�)	�g�yo
�²�5�
c��U:����Ȧ�ݙ1E��
���A���~R�T_�3]t80p�����
 �3������B��"�O=_���
$Uee�!���W1_g��pW�@:�{����
��N3��׫x�(+X}5I�g?Ƴm�D���i� ׅ��'���~�\���3s�s�:�1���Q��i5ݷo��*Uj�������M�R~q����Z�d�M�i��E�h�L�A$K佋��D���R��6,�9��dz̧�Г����I<ۆe�
�Fh�ڊZ(5��~�ͳsI&��,�F�8�!$5����j��\k�?O�k��r���P�P��V����;����a�IEND�B`�com_rsfirewall/images/flags/sz.png000064400000001122152177723720013270 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�Kha���Ic:�1U۔)�1����N�J%��Z��u'��\u[�t#��h�_�P��
��h[H�1iڼ:���E_��ƞ́˽�>8W���N � ����:`�_{d�O��;v0\ϧ7��#�@&[0t@�>~���è��/�Oe�Ђf����׫���|�&��C\�8��|��T�
�OP���.Pk��*Q�Ԃ`�:����ɐ���y��(jb;A�C�mW���ְ���e˅��3̿�˸Lrah��3���د�Fo�j����J&�0�6ɩ�sA�|�F��I����J��4��|H-s���S>�u��S�`6���RW��U���
���o���=ZFS&'q�mK�N�����?���.�[���l�6Y� �\��Ë	�l�
�xS&*�\E�\V�>����L�v7��U`Qr�d�������Q�Y/IEND�B`�com_rsfirewall/images/flags/ax.png000064400000035744152177723720013265 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T13:54:14+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T13:54:14+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:7c6fcb1e-cdcf-4b41-8778-572fa59eaa6a</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:3d32e5d2-16fb-9543-b449-0374f9b5891b</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:3d32e5d2-16fb-9543-b449-0374f9b5891b</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:3d32e5d2-16fb-9543-b449-0374f9b5891b</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:7c6fcb1e-cdcf-4b41-8778-572fa59eaa6a</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:54:14+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>y�� cHRMz%������u0�`:�o�_�F�IDATx�ē�Ja��3?�8�M�EӮ�Eڕ�+�](�+����"���qS�{�]ZW�1�23'��b5�n�E_�6�s�{>QUz�A��dj�P�ek!�R]c~�__�Y�9���%��}�uc�b���¿O�в�B��&���_;�t�j=� ����%��E��&�C�Dq�Y���!r��y��DU��q�T�Q�3����̤Gذ0���6���$�J�Z>�dȅ���
)d$&�\���?)Y�B��'ƭ�覒y�W\5,D�]̧L�Zz�A����^s0Vd5���|�A'�s
��'M���7w���x�Y�k��*��3K�N9' c�AS�\6�O^'���o��_�zBԁ$���z�&Ӑ���fIEND�B`�com_rsfirewall/images/flags/ph.png000064400000001004152177723720013242 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�?K[a��}�\H�` ���F�(tm?��:
.�B!_��~�m)�Zh6�b��8����A�͟{��{n�!�b�Y�t~�9JDx���ќE�`N��r�G��{h�=ءݮ�
��
k�P*���������9@�P�|Q�X,��W2����+�r8�h�Zu��gK�Z��V?�����a����	Y�2�
++ev����Q�2	E�D�a��.@#�1�ߧ}��nQ��bql��P����3ʵ����N$z9=�o�o�H���eS��r�'
R ��}���t9�I�6-I��$����\כ�^!��%	��l��k�J�����묀9`(���J��?��(�z�;�wȔQ��IEND�B`�com_rsfirewall/images/flags/sn.png000064400000001000152177723720013247 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�ϊA���?	!�����Gq}��{޽z���!/�51xVf�@�͎�d��g�<d�����tTU��*%"�0��<d`�ˏ�W�>�����W�ށ����,Ƶs��>��g�G
@���+�8B[W����p)~H{���[��S�Z�0Е!�[��3�*%���TZ��.Y��xY����).���e�`���&�%�ٵ6��͟�W1��I- X�PD���C���$��/�c]�tT��� ���ƓPh�q�銈��˴y�N��,z_D�K����o�,(�nqBi�"c!�a�e�_c�N�8��$�j�-{���K�{�+��/�kgL�'��g!~* l�
ԀQǎ���9������IEND�B`�com_rsfirewall/images/flags/es.png000064400000000755152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FsIDATxڤ�MK[A����&i��`��?Ђ��J�u��	� \�х+A�(�E%~��ܙ�wf�ȍ����9s^�y8Gb��'��E.�h�=���7�T)�����V�9��_��Y F��1��Tt!�G���s>"�jm��2��;��-�;�]bz'4�9Z�+.*��A4��R��ir�m_�p���ho'4j2C��`���5)�ڀ���p���i��}�_����?��TP0&2*�E������ a��G���p`�����J�ج�mӒ�Θ�j,��s�cL�$0�1H}�hN�zL�j��>c�2b5@�m�C�:�(�|��G�L��8�z@�d��@��J
x��{��J�=�3#�IEND�B`�com_rsfirewall/images/flags/gb.png000064400000001303152177723720013225 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIIDATxڤ�]H�Q�g{�95ׇ1��b$�0$�f}�IE�fA]D�E`^�
J���ԋR"�rQ����1?&�ͯ����]�݉��s����BJ�j$+��<W�80������-��y4l����c1^<�g��e�Tr��pc7	��ʓ(�kIufg+@Z�����rbo)E�j�{��͂}�v�tL6e{\��Qٕgcֽ���Wi
`��=Ľ�E�L��ԕ���=�����'4��"ef*v����`@�Lp��fCj��!��\U'�˻�8�����7mU~m$5Á�¿�H	fHI����ƣ����q��b�'"h�)D��#�`�*�	�����K�����de%+�pW"	
_��|Axrܥ�J<���ZHy����Y�H��%0o%坏OMx�)��0��N���������}�'	��:�w�Qq�Cg�8Ņk�ޫ����e��:�Ш�U�6��8y�&�?���Zvhу���KgX��@dq�A��;]HM#��w$@Ӆ��j�������@.�f�Y��`NɼB���j�w���kXp7IEND�B`�com_rsfirewall/images/flags/tz.png000064400000001217152177723720013276 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ�OHTQ���{��fd*�PIB)���0�F�hAVn\�BS��#[F�g״�0��L��(��L]YB:3�q�}o޻-�0�P����Ź�;�s8G(�؊`������O�^_��/�;-U:Cs��'�����D�]ϣyO����h�JRkfݏ�&�D��u@s���e�2Ɏ'��`j��'
��cM
��].!�
M�9��̐�,W�*l�]3Ǜ�˼�]��BGg%#�v`����$%3d\�#�R�,��Q�drF�}��46}p��y����$s�~J���"���tH�V���v�����d;�����	�E@rMR�7��|>��;
'��`�j9�㝼��풜P��UT�R6,Z 6V�ltt`��	>}�	A�j.��JY�a�����B����>(�n�g�fZCe�y
i������0*+��&���Ht#���m���^W�Ic=\8���ώ2�6��������@�&o����7c����b��k���?I��IEND�B`�com_rsfirewall/images/flags/do.png000064400000000660152177723720013244 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F6IDATxڤ�=N�@F�f�(AH �t�:�h��
J�}8
7�)�.U@�)`bc�럡 ��8��iV#ͼ}��	�@k��	Dh��_�VU�^�x9=�$tn����2�po{�W�����
A�wM�4��,���=>�r����)�6֦�%m%����iMn�iލ�X�F�t?����1��c6
$�,�4.`�.���ʢ?�M��#EQ�AQ6[�S
@�b<Pj��m2����*��}��9�sn
p����\�[�@8.���@X���xV����	���=��������IEND�B`�com_rsfirewall/images/flags/be.png000064400000000704152177723720013227 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FJIDATxڤ�MN�0�?�iT�+X���=�c�pb�,�
I�;��EC�U���3z���73JD��Q@
L��c��X����S�~3��������:&�9V�U�&�(MoF�d� ��g�Ihk-EQ���C��i�z�A���k�cȲ�,���H�/�`��8S�v�y��uE���c9�����<�����/��{0�S�A ��
�{�+q��0����	��'>�JSu���
~M�ޣ��9	BD��
���iJ���Q���H�1�D+"�e<<�;���Bo������](�7�v�����3P��x�IEND�B`�com_rsfirewall/images/flags/fk.png000064400000036053152177723720013247 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-06T13:49:56+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-06T13:49:56+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:873a5b60-6101-6b4a-a479-a27ba31b747c</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:dedd00c6-7964-d44c-ad4a-2c4ed51ba3a4</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:dedd00c6-7964-d44c-ad4a-2c4ed51ba3a4</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:dedd00c6-7964-d44c-ad4a-2c4ed51ba3a4</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:873a5b60-6101-6b4a-a479-a27ba31b747c</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:49:56+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�i� cHRMz%������u0�`:�o�_�F�IDATx�ԓMkQFϽ�L�M�4�����j�Uj�
�q%�+��K��ޕEp).�q�Q�F	ń�$Xl>���̽3s�%uӕ�8���y�1��Dr�`T^�i5֧���ܵwy�]"����)�>
�G
)��]�}��N��ދ9��+ײ��ŽEb>ˇ:���!e�!:��[;nѵc����WT�$�4�0�!�&����YZ�$�H�g����(<O������&��y���7����3�W\�e��eؼ|�B���H�%�>�U�i+���&o{Y�S��Q;g}-K�W���,�d���7�����X�ܯ����N�Xt��
8���"��E�Q����^ϐt|"c�AL�1�}���J�M�P�z~��n�R���	@�D�V
@O^V)VW���F�;@
1x~(�H�Z��W��/vH�S�Di#ƀ��=��4�{�aHb���?����9��IEND�B`�com_rsfirewall/images/flags/th.png000064400000000544152177723720013256 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��NQ����� \)�\Kc,�|*Χ��E���
,�q]�ݽaֵ��.��Lq��3�p
��c
"���>{�t�~��<u�Uw�	M��`$@ff�N�\�T5��p����'/j�^ED��J�!���(˒�Jɋ���~<�Db+PU��=����~�,�`�!���R�p����'	,��%F5�-��b�(���q"����O���w��������IEND�B`�com_rsfirewall/images/flags/ca.png000064400000001072152177723720013223 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��nA���_��XE
�p%&���@E<	��FD����!�P� ]��ǎP(��]���3�s)�����r���3�9W��)D�bu�S�̓�[�x
�՝�'�z�L�?~X���ڍ�z6n_��_�c(G#�`�)��t��[����>��s�1~`uA���4������mV޼FE��4E�>�(t���t�=�����u��T����'To�qI:˦y�}���!�ۥ��9r�<<�Ç����Yz����k�%|�1��8Ǚ;�Yy��u�$�	��X~������+c�gyQ�ϣv}�/��?�����e�֥��RX33��HN�Xܺ��~!\o�DO!ΑzF�6P����8�G8�0Sm���0 ��;1H߫�q��V�Ɯ�0z
�E��$(�N���f‹Ԯ~�IEND�B`�com_rsfirewall/images/flags/im.png000064400000001037152177723720013246 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<�IDATxڤS�nA=3�k[^����P$#!DACK�������'�JIE

�(�Q @�����&��kn�l��prWgvg�s3���1Ũ1Z�{�g�����&ѻ�wWD BY"|��?s椹���"0����h�kB逢�$�?���k���#\@�f�&��6
�uc���`���z��V��U��~!�Y�h��b2�S7�M�!�E���w����2��*L=��pH|�#�3��)j_�@, ���3�C��u\<���>�_���p��݆
Կw:w�'g0�x�����_�C�m!�q©��?l^�-!��7
�<T`���CN��	����N����s��Y
rW]�@��A��7A��l̓}�3+!͸�
��]���$0��
(�έ�����Jv:or3ьk���dٲc0�E2s
�>��^�K?��P=;�IEND�B`�com_rsfirewall/images/flags/vu.png000064400000001072152177723720013272 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��Kq�?ߙ�;��Ϊd�b��0�v�D"*����'�?t��x��^O�uQ<I-��VXJ��;�ٙo��j ��sz�y�Gh�9`n����?��1�9C�-����N��^�I�)�X����I���?��G��K���[�+�ιl�h�
����ǰђ� 0%��}��~'���W��[h漕#�8C��	p�l�+��d��L�W�zMP����C\J6��f]���y3�ı�m���<{��s�`䑌�_&<��ܪ	��+1v� ���!�n���q'V���DJ�A��y˧�%�[bx��I�ʝp"&�W�N�&�ڥ�x�䞉Ǐ\�5���J�P;�CB5��D��_ܭ{0z3�9���z'�t�� �`��'Dh����f:|���-�/?`��P� �`v�o��6Y5n!��A�k�B[��RIEND�B`�com_rsfirewall/images/flags/eg.png000064400000000630152177723720013232 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FIDATxڤ��NA���ݬ��\�	
%���װ�,|�ŨTƎ�!����ݱ"z��3�?���(�(�'�07@1���ا{��g�\b���e� ��'��:�%q<!N���ek�-�n�T���,�!�v޽'e?��EJAj7��
%ź�w�	0�V����~g�r��?��Ċc��e��؂���O�q���p0(��Uk�b�h�y�cd6�����N��R��@J�!��Xk[��� �UU�A�Nw$W�Hz}HzG�u�9dZ�t>^IEND�B`�com_rsfirewall/images/flags/gl.png000064400000001011152177723720013233 0ustar00�PNG


IHDR�a	pHYs�� cHRMm�s���Yq\�1��]��k�IDATxڤ�?KQ�o�0���]B��F���V�����w���K�Z��4A�PQ��W� d¸��ƙ}�fn�ݘ�FP�4���=�r�=O��@0Љρ�.0$"���+Uq�b]@�{c��L�
��(����׏	h�Yk�Zk��ڇe$�P�Fr��v����x#�.f�e��;�cȓ��7l �[�4SnOOV�NИ�-���j�T�hx��f�����aR.��]���E�x�I�U9�́8
g����J-�f�_V�+����F
��ɐ�%��Hl�$	�m���.r�u���+����J; Bܙ�`R��ħ�\.}�8;Caj����hc�����;Qis:���q���ZkB���vV�0
�z����8ѻ��' ��;�r��9���IEND�B`�com_rsfirewall/images/flags/cu.png000064400000001001152177723720013237 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ�=K�Q����o�#"�T��Z��UDE�
E���cCw�E	�R(\�@%D�h��h����ETP�/�����}����9�{$�P�*;��.~7���CG?&[=�m�뱬XA.��e!pα�}P'�tqtl�K$pZ�e/�x���
�[��{y�������1@�*~����8�K_ѳ,��d�^�RSc��ٿG�����œ�����|t��O�O=�>��#@V��dqW(`K%d[���?	���-�ȇ{�Oo�;q���;��T~��R>�w@:P��7G8���*~��f�R�'!�)Ds3�u??'�J��*����1~�N6��N��,��4��p(��}��P�u�?<��/�IEND�B`�com_rsfirewall/images/flags/cd.png000064400000001155152177723720013230 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F�IDATxڤ��kQ����w���6FM!Q,�	��bi,Ab!��FHeZ��_���4�.DT���dw�7o���!�9��=�#��A$@���[1й�r��^�0Lt2\Z�S�h)HS鿩о�j<ZA�L��*�Ɓ�����R0Mpˆd�3@+"����á�(w/t�o|���Ր,C3��;6m��(\0�9�ej��0\��&l<����� �9�yJ����[�=���Fp"P��j�<�q���@�[���H\���ߙ9�D��D��l�t��U4o�Gf7`@T��8�գk<���hIP��`�Y��E�i����d������5δS�N�;�a�%[�+��U0�
(�/��`ҁ�P��|z�#EcF {[a�~D ������nW���<�����>�k"
�=a�^����,�v�n��2��»����ֱ��P�~g:�I`t�[H���!E���A�g��@AaJIEND�B`�com_rsfirewall/images/flags/sh.png000064400000036107152177723720013261 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:15:31+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:15:31+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:c49d59a5-42bb-524c-97d8-0e278a2859f9</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:f141476f-c466-c844-82d3-cd50c3e2b1f8</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:f141476f-c466-c844-82d3-cd50c3e2b1f8</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:f141476f-c466-c844-82d3-cd50c3e2b1f8</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:c49d59a5-42bb-524c-97d8-0e278a2859f9</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:15:31+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>Tท cHRMz%������u0�`:�o�_�F�IDATxڤ�KHTQ���sn:9����� sU�A�&zl*"\U���e��&0���\F-�6͢(�%MV�M���ƙ;�ۙ{�9-$�@�o������j��_�=
u4��e�#�6p6��N����um�l����Z�~R^1�?�\9L�~�`.��
l����l	,�/J�:~.嘠eeXQ��NP,�صW��$K��D�|<	P8�4�eDs�х"V�h�\	l�l:7e8sb��4����M�4����=�>{�PmX
K	9Ȳ7����%$�bӽ=Mo�KrY���j&޵��`]�*�{��n���g4:�޾{�����bQ�=��&�0<r��_#�f��]@�v�O�Ղ�4,Y0+_
@J�Z�q�Z;t��r�_u�[w&�%AٮL��[��~yk��$�y�-��U��t6A�G���:�`�XU�T�%���&3��v��r�B��+s�.@��3j�$JI x�9���uL5�f��&l��UX�IEND�B`�com_rsfirewall/images/flags/az.png000064400000000730152177723720013252 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F^IDATxڤ��JC1��	Z[[���n�>�
�/��$���O �� 8����(�������7���7�M��Z=2$�9'��{�}�`s��J`hi���/կ���$���3?7�}�n�^���S�j>KQ�]��$12<@l�BhS
5�PwՄ)���g�2r��H�������T��V|g�[@)E��CC���m*7��ɯ,S��j?-�C	�PQ���k���=�����ˎ3o-*�Z��L���� 5k����@F��!�[��
�&�	J�Kvm8��J�M��!�=})�U
�{bcZ�YG���/���0�z$��S�� ��	�;�_�R��A�IEND�B`�com_rsfirewall/images/flags/tw.png000064400000000715152177723720013275 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�FSIDATxڤ��NBA����@!�H����X�&��>�VV�hb��X��D"
�KĜ���k
4��m��柙��3K0��i���o���S���K(��B '����%<P�}�UL���+v�t-��G_��!X�X-���.!"���(ױ��^�2�9XZD��{ci�"�I���4��j���Jk
@E�����%���ܽEI�3%f#5�UT����x�Q��O�,��w:���eM�#�87*�yb���PF���H��t�<�4Q��ɤ'x�6�L�=���ԫ`�+�”�?�g��"S�Ȭ�=%
��X�QIEND�B`�com_rsfirewall/images/flags/ci.png000064400000000654152177723720013240 0ustar00�PNG


IHDR�a	pHYs�� cHRMz%������u0�`:�o�_�F2IDATxڤ�KNA��fD1ƸЍ�2Ɲ;o�q��x=	,����d�1T���CgH���R��U]Ue���m�E�&7����c)�~��Gx��;���">�o|�zY����ND*�d�U�>��I�K� ���h$S4��f�;�G4p!gi.'���S�����9�&���p
��p��p�: r��M j�J-@
�TR�u�
��LMR0\!�B�s�Qc�
��@�\�����R�BNP����"���8~y)Oa�Qig����.́wD�E���ov]����8�!zIEND�B`�com_rsfirewall/images/flags/tk.png000064400000036100152177723720013256 0ustar00�PNG


IHDR�a	pHYs��9�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2014-10-06T13:07:04+03:00</xmp:CreateDate>
         <xmp:ModifyDate>2014-10-07T10:19:53+03:00</xmp:ModifyDate>
         <xmp:MetadataDate>2014-10-07T10:19:53+03:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <xmpMM:InstanceID>xmp.iid:27357712-012e-3d42-8fb9-e6652a600dad</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:353e57db-2757-1e40-8fee-2d171b9c5d0a</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:353e57db-2757-1e40-8fee-2d171b9c5d0a</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:353e57db-2757-1e40-8fee-2d171b9c5d0a</stEvt:instanceID>
                  <stEvt:when>2014-10-06T13:07:04+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:27357712-012e-3d42-8fb9-e6652a600dad</stEvt:instanceID>
                  <stEvt:when>2014-10-07T10:19:53+03:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>16</exif:PixelXDimension>
         <exif:PixelYDimension>16</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�g� cHRMz%������u0�`:�o�_�F�IDATx�ē�kSa��}�M�45hC?��i��J��.
NFtrT���tQ(���?!�NN.N�8)buQ�ZA��&���Z��_��FS����}��񼢪tc�.M(__K�4V��gG�ߥX��CK+p@�!�w��п3����1�v����X�}My�w�Гˠ�4�7�f,}�h�0��^���q��n]|D>�.H`�pVb ��
~"ˡ�/\;[�Y&ƿ�n�DuV�d�v�si�"������؄���ܬ=�zd`�r-����|#�T!�������ܧ:�������3Z�Y��/O���;��h|�$% ��8����:��*
��+�f�q�ξ�M�U$�v>Z^g��s����� 6�.R��3}���< �Kj��\=��7����߃�@)-o���"/?��"FE�+�>�'����M�p`���(q$�v�1�i{+�5	�(�I����s������5��4���H��IEND�B`�com_rsfirewall/images/icon-16-downarrow.png000064400000002541152177723720014742 0ustar00�PNG


IHDR�asBIT|d�	pHYs��~�tEXtSoftwareAdobe Fireworks CS3��FtEXtCreation Time2/17/08 ��XtEXtXML:com.adobe.xmp<?xpacket begin="   " id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xap="http://ns.adobe.com/xap/1.0/">
         <xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
         <xap:CreateDate>2008-02-17T02:36:45Z</xap:CreateDate>
         <xap:ModifyDate>2008-03-24T19:00:42Z</xap:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/png</dc:format>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                           5Rd�IDAT8��ұ
�@��ߧ4�@G$6�G��त�n	���RDH$!$
Rܹx�e�RJaO�]�N�&�p�����W��~3c| �3��Ҷ-�4��}Ӕ�*����4M�8�TUE�3��Yf��k�a���k`F����:���n�RB��G�dIEND�B`�com_rsfirewall/images/icon-48-exceptions.png000064400000003733152177723720015112 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<}IDATx��Zl�U��n�llnc���'V�L� L�6���1�LC��P�Fa8PA|u8E6�x�qlˀnP
lk�G������l�v���������s�=�q*�r�
�mmm����L&k�T�[��d�#N�Z]�t:���jwIHH��phe۶mI~KRR��������pI�.�n�\����U�d{NNf̘��Q]]������xIAA���#l�@��/���&��j#z~�ܹ3f��sZ������l����z_�y�[Ww��?BU�J�����+Z��>�E������dTTTl�|�R�DD7l.D~�5����Łi]�T���5h&��5��ĉ���E�/�@����_RZZ*�����m�j��5��v�(4���@��h8u���f�;w�?4��Ǿ�]��(+�\��wX���=C�Mc�#�1/q�ς����b4[��7�`��gp�Kk!89���B��ؐ�0�a4���G�#�7����jo����Ԣu�q�%_��՛�?��ŗGO��j�y_>&ik�Ft�x8��-f�]��y�i�_m-o���#�)(^8kx|Y{
c�^�$l'8I�����^�s���:
pZ�P$�p�+7A��Y�_�����`Ūm�]7"`S��-Z�/\����tX�P�"@�J��Z&p�[�w�$B)�R	��%�I3�-&�p|s4S
��~��X0!Q�^NDV���Qx�~���~�LO��f�p�}g ����9�	|�G�a��͈�,�()f*-�g.�����X�6ڣ���	k��o:#9���[q#�p`��H�.F�.=�Ŧ#����Ƣt�ڟzV8
���(Ėn�i�~𬬞��h���*�z�/��7������ʅ>�A�:u�HՓ��mH�����AJ�$(��$�zO�v<��*,�"��$�q��ˁ�?��W�F7nd���i^�֜oã�����L�yJ�e#*��,~߫9׊�]�`�ڼ�w�p���mF,�tf�w��/aE���ج~���'@���6���*�E<��+j>"�S�8��ln3`��k��PuV������5τ�l��}�C�L���B�S���Q���>w�,��d�=6XCת�nCFr�O� �N����`�y7������W����!��=Y��Q��X�juw�.�c���e�j8��@�
ExrM�˝�O���`�ᮮ.�դL��
�NS��,�b���97c��s�m6��h0��F��'oW�[�zIp��h��݉��3��3��z1���\EgggUw���/�+gM�����Bм�nj����y^�X,Q����v>���x�l���v�[�A~J[�@�Y����llx���������#e:�Np�T�R�\�����p�P����@eC3dt=�H��i8�:�ݸ|��#���N�CSS����u1��^�S4n�8���M¢��(����}?��d$җ�ca��ewC}�Lq���}[[[q��i��Np��mϤ������=^�i�Y~���A��R	���4v4��7����>~���q~}}=#<��_.�매�M�:
��o~�����,��qN���iX���fuO.����2WF�&�� D6���b�J%���`��1��G�d2�رc�f.�6�?;T<Ae)��R��Ə��Y#>>>(,[��� �]�h�5P,!�Y�H1���Evv6F�5$ly�@���1o��	|K0B�	6���&N����,�8�I��
�8�u����כB�?l��={��官/NHH���L٤t�ҥ��	IY~~~�"S���;v��"ÄYh7ɷ�����gɵ�w��c���h�IEND�B`�com_rsfirewall/images/icon-48-logs.png000064400000003523152177723720013672 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<�IDATx��ZMLTW�޼�c``��O
*�j�66bt�ƍ�˜�g�t�C�4�\4]��6%���E��;cjkLP��$B������̛y�~��s����ї�d�{�=瞿���4M�\�z���u���^���Fr���f�KALB1�ٳ�+����{��y8��hnn߾����U#
5�Y�Zmmm�����w�2���2�X�$!�N�1���)��|yI�������;99ICW
U�Xz�,����E8Ʊc�p��	�� ����㣣������kY�A�@��Cs��Y)?55�w��ŋ�{<������x��܌��v

�---�d��]���B,�s
�8ܪ�ͧ��i7��#�3U��G�bxx�PMMM��g)pnn���[
���������rs��d��^C_=�ۿ��S]]\.׶�w���)_[[�*Q�7���c�+%u�rv�ؘϠ�-�zW���Fy��*�0#�%)F��YR:�"�P�Qpeee�����R���fs��<�mc�۲zCc<{8�E~�'154-�vؑݒ_e�5��&�V��g��PR���D����°��<�k�!��y%z$���X*H�F��x-�ѧX,dvuu��u�S�׃O�	�5�Me�|�삤�\yjrk���q�V���B/��a2 �6�؎i��R	]�����γQ�W�BI������Ē��5_'Nf��V���s`.&�a�[�߽{�
"L6����1`�;���ɠ��r��#e�Y.�hn)g� GP���}�,�hEE�R��d��"�[
 (M��4�DP__��|�VЮ���ӧO#e�ߝ��Ktt��qO�(x��<p��Q2��� �4[���0
����4>����7����&s%�ဈs��9�����ؿ�F�cuB+m�-..rd��*������qǡL%�,�9���'�8ՠ��>��͡Q��u4�J�x�9s8�ׂ
�0S\b�BU��a	m~N��Fy�Fdm3@�4�绘����'�iAZ��K��!%o���(Z��I�>�y躀�
��J��}XIB�vX�Z*-&_�.*�����H�F� S���m偾�>��uV���&\��Я�.�C�V9088��J�l6����<b�M�
��񸜣Q
�<Il�V0�����v&g�HU��м��~i@Z�v��ТB��`n6%��}x�-��q�rG�In=��?��uG����9�f_v㇇իu�v�ο��r[*���Y�Vz38M�TVV�L���H$8<(Nz�������:��8�0p�j4���`x���p��W�4L��ib%��d��wvv"��[�נ��)
r&��8��Մ�/b觙U8M�p�v�UJ�F	˙4N}�G�A"�8fH.�9�璈���vV��i9�C��X�Q����MR����uc	V�������҉�]�=��n4v�f�€��Ӄ����n�5]D�7������"�LۓXe�_��d���6[��gp�<�[����Q���6��3�E�_FW0�B8�@CaH��s;m�Ԥ(��'x�)�X��@ட�*P8D���i͠,�yT��Lx9�&'2{������u��G��ʺ)���e������6�k�u�yB�xz׏���\�!����xz�j*��˲���Q�%�f�!��'�8s^'����=v��	;�,/���)�O���;u;qa�IEND�B`�com_rsfirewall/images/icon-48-rsfirewall.png000064400000012310152177723720015072 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<!iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CC (Windows)" xmpMM:InstanceID="xmp.iid:8A6119339F1811E5B1C7894498CE1AB4" xmpMM:DocumentID="xmp.did:8A6119349F1811E5B1C7894498CE1AB4"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8A6119319F1811E5B1C7894498CE1AB4" stRef:documentID="xmp.did:8A6119329F1811E5B1C7894498CE1AB4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>`�f�=IDATxڴZi�]Gu>}����4��%K�B�HA���#��*P`c�R6$1!+p���
E���BRر�&	c�� �.��eY�����2�̛�����=Ɏ	�W�.���|�;��8�ӵ�r��L뗚��\��ތs�2L��y�=ܯ��<��p=��D� �H��uG�H"$M��{t����w�)�{����c��<�k1އ�B�[� =�B���N��
8};��oP����"�����o�ƺ�j����,H��J��@��8���{>T�%1��a�쯵��:����M�M��.��!�غ~R�u]�,K���T�Vp���*�<��j(�%�O��?����.]��	��X}�,N�d�'��T9�Z�ng%d �/�XPm�Ǩ���N�H��3�̉eE<��}&����|�$y-@ �a��A�kT���*�ae�J���Xp�=<WF)(.YU\�S��)�UT��bC���k�n�b�{5
�a�]X�-|!`�X�c�Su�BA�f$��'<2�{!|��T~�O�s�C�"�$�m�@�H^R>'{]�Cԕ�5��^��~�q<��}9R�����xy�L������)aE�
&��{����D+e�ÆДL��6�qxxH|-]�BY���l�_L�x׶�{.���X�Fx,��P�\�0OYN�8���<a�BPc������0a6�)�*�] ��(�Z�X�&�[��g��:51����	�Snx��Z�M�C�kCذ�|����|���cA��'X!m��=\cx<_X�P9�\��qka�!��b�X��Rq��C�����	*b�*��]��xם!�'��|�*ce��!|�aY�	�{�Z� ��_#�'���u��;�e�X�m�7cx�Xbc�0��y�
���rZM��vKOs���X�X7��*X����X�!l��0�le#2�(O劔X���?Lj�0��	E�'���[=��\<���(/�C�4��yM|��>rV�m��Ai1��ׇ
\g�o��Y�<Z"�)��E��D(�,�x�$�gLf�R��?����rǨ��6������-�@���3�$��Oc��$�ϔk�.�hxB��zO�D�*1��f�b�Z�:���6Q��l
���
ݬj��[�K�s�i�vᥑQW�?��_u3��k��f�NN>A��N��O��N!�`�J�k��ƹ��-8{kC�|�Y=�ӟ�[��W�}iq��@��`<�:�@��K��0�0�g@m=��+>D��_G�P���A�(�j�Q:��N�?B[�ލ�
�F�)T
�j`4;>BS���������T\~@	�X)K�eL_	/<����&<\o�7��C&Ú:'�y�]��#8 <X.��x9(N���S�n�9�m��0��䎏�ľ�PφR륛)ջ���i�pR42C��[�/h����
s��8�wfV�%޺+V�WM��206��}�����qC�$����l�@!e*����4�W�F�����yR�<j��8�b�$e��qx�^�b���H�)JvP����5W��"�RIj��hh��Q4�N4��"�6�=��ai(�岐�7��sǮ�clT��&������M��)L�e�S
cs�Ai�懟BL`�,dY�غ\��D"�,��Mq("+%��N��(g��}'<����$��Q��F��+i���ź	x���^��۲P��BU�=�I��\�ɠ�G�!%�B�Z� y�=M��$��§l9�T)L�e'�T%2ݔ�-�Q��2�!´xl\�ium)�z��Yf�9T�˺�5o}luG�$C�����\�C	/zPG�դ��qb��\ר�o��Ta�%xs`�Wd+P>w��L���8rLU�sPbtFSkRGeF�n5;E

^�`3�Zf�#���Z��f��W5��V&������ D�Hg
3V@5ZgsMʸ�TP��u�29����G�SP�
J�'�}��s�+J�P�h��mRUU6`y���wJ�
�L���֌uf���U�I�ag�C���j���'H�'ND�	a�H��	�k����Y^���}��>h�$�yy�*���Ӷ��B=�k
�p��Zl	S/�PP)��!����Q�锁�0�Hi;�-I�a����h�	$2�v$4]X�2�T��9��D�b(O�2]��(��;'c�����[���.ML(WS�W�A�\�Nؘh�۞���G.�&R:;�-���9&@��Ӥ���D�Z
j��i�'�|�[�Z1ϵ��KS��d�݉�^dO��db���@��	��B(�RFV��H�MT�X�Ht�Oۦy�*CJ��窋,R�r�c�N��Sf`��i�S���cMA�#��I,��4:�	O�L�&�Ԅ���=Ό�a�6��=�^������[��lu���K�������w��32H��;��
�.�He�d<��b��&Z(��G�Q?�ߒ���pBi�2:�+8�J�Id�NZ����4�`��ӿ�:b��V=PKi�@�^��>mV9���<��T[�1�EZ����!q��`v��Y҇���P�C��#�PR�z�YN��4��t�����~�)�}��i�m�P��JdeY�1��ox�:_B�D�����m���0A#�>G��Ţ�rk���	��e�Ϣ�,����'��͞f�M�VHC�!s��(��6������fڪ�漏��)r�l�&�b�z�D�sUZ��rh���V�L�P�=�JC5�۔�"t^��9���W�C(�
<	sѦ=[%(%���\5[�A��L�*���z4+�"-��/���o��P���Q}�
*���ڛ?M�[o3�?|�}|7 
�Q��u[�!����v>t^=���Z��8�yI�Vv��tG�7��9�=�L;(�H��ג,�����#�Zw�O�ia�D�I	��C�������/�Ѓw������i+u(�lX۬M
���h�||X�u٪j����C
b�tA�rL�lz7��r
*[+Ieg7Q�4�gզ��D�7m�)�_y�)����^�I+��/ү�sz����ZQ��3u�y[7��T_�G�Oߛ)���:��oHL<�l|Cq�
7�=P�l�4mR��)�u���"�f���wRۊ�\�3D����;����֝htH%iԃ��!A�#
;��G�Gz��}�r%j�'�e/b�@�Oh���.�C�#L2a�Rr��II5O����߼���(�}�Fz�wRj1E�&���	��Q���T��btj?	v9��-x�
Y�j
쑅A���)��#ۛM��h��Me&$��ec*��N���{:��kil�j]�F�C����B���&A��Vb[���;~\���褩�]����7�Ӏá�H�2� Q��-A�Sf*?st��d���y����0������3�`!4I�-�Ԓ*J���|��Co��r�ș�~U�����?��Y�o������OFͥs^�)�ȫ3#p�f����#���v����EYz�*$��ʗ�M�2<_^�y#��(���|y���3�k�b����W�e��| ��}4��SP�v��YxIS���l��R���V@j�k�B�:��ㄖW�z�w$J0�JX��I}��>X��V���v/������Ԁ��)����j��'��'P�\��P6��,p�q��
-�]��50	��Y�������%�)ѩ��]{��y�eཛྷ�����?��R�s�v����G0S�b!c�I[�3F��A��-��%�[�Ħ%��ڬ�	X��Q�Â6o�P6�_~����ד��+��zfN���O�7N��ܪA��5M՚�\�u���
�K�r�"7%,
զF�y�\#�#q�b�A��ի'
z�Q��}��?����v��T����ѥ�<�m��H��,ȭh`�l��"pP��bfpJ#�m\j�9_��c�99��ԙ��<Q���>0W2��"�������/�i���|Aѣ���nf����c�jny��fE�בA�=_TH2:�(�h�BX���NNHYT�m���0�rj[J�ӧ��8��㒿L�:Q�_�wb"�4���S���M�?_�#��8�A^�Z�z$P���Ef#Cٯ0�{��~A+�|zrDW~B~��#��qJ��mq���a�zM>t��ì�@���7"����Ki�z��Ļ{Z��Em4��C$��2ܠ��ʋ<�u(:��3�?&�9xN�p�A�ؑ1u�-��(r��J��[�8��sF��=j��k[.��J�lO�2�ΡNN��g*U=69=��'��PC��,����Q�}A��(z�c�A��[S"��z�ظz��[��[�^��
0��E�~�IEND�B`�com_rsfirewall/images/icon-48-feeds.png000064400000003471152177723720014016 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<�IDATx��ZklU�ffg��-��@탶R��W�%h"�D��!�h⏆D��X"Fi���Ě?L�J�BH����RD@(���R(]�n���ٹ�ٶ�����Ji�/�Μ{�{��w�E�H�x��k�`��b9�s�����=�:6N���i��}�615�|²YH�˄��4��K]�잛wW�>�Zr{+�֖��\h��s�J9���!�?���}2�@x��X>���qcO-z]�%�j�(_R�[A���'Yf�j�0@}������V0�t룶%��w8���*> ��M�:B|{������	&+�N�n�c$�� @�i�8�:bq%�3������<�`g�F ��@:�F��H��Bk�-�݈�kF&B `�����^��(t)nX�[�Q�I��Tc�%��|Qs_����N?�B�������;��<���J�%��K���=XD5�1
T?ih����]�����wĄhBX�gw���~�<�Sn���J��g���"B�].��?��g���Jx �Uݍ�	��>c�Qs3�{#}&��_B��=(=
ǀ�١�8��kP�!k)������HȂ��*H7R��� 
?}�����K\�t[�����f�!�@|
�L-H�^�O�s]���3>'�d�/��p!��b���:u�B����
��ڍ�3���Z���m��l��M�����۴��^G�����`+xS/�>5X��VC�ܬ�r����\�|�.U�u�A|�}�h�AZ1�'6��'��>�~��^��y�c��8u+����X?G�}��hZ����]I�l��X��v��`�C�m�\j!��;a�S���\�|��g�u\�l&�8b
����ݚ���(�<fB�~/��H΅�pm|��t������Rr�x�{*\S�s��1��}�m�;ZC�,��܆��7�ٝ�B9A�Ҋ���
!{	5iYr}*�y_�W��2RHS�<�;`���t�����ȮA�,�B��]� �u�٭�=8��V�κU7���i%x�|r�!j���{�p
i�K���t��_@�rU�����M�TiA���X�e	҅J�O�iR6gS�-HCDZ�Z����i5o� 
��¢@��ҙ�,vj	�&ˌc�5Ϛ�4~�4��D��5���=���nȷ��+U���iz
6�h�5�YHm��P�V��� �.}���zO}f���Z�d�!o�NVK��汓9+v*ס�',��ZNK"�D��=SeBǰ�&Z���JMx���j^g���l��|5k2�T�x0���Ue�k�8��F!�1����ńdTY}�9e����s�P�����1��r��9�)��A��m�⦏�v�s���@q�ROt�^(]�tc��N�<!L�b���36H�\�]�+�h��=r�EMp詪p'�C7z�:ǎz�S	z�ʘ�_�j�����uz����=�*w.€�3z�ӆ�=��Ƭ��S��2f����aBT��l���u����W�ר8�Fg#�����1��R�n��,�r���ԥ�d��Q�;�Dj��2��~��>���:��=b7:��72�j?�ɘ��(�ل!��}�H�L�����?t׺;҆��+�+�m�#�I��,��U���G�N�n}�[-
��3T��0tK�#a��������[���L���jZ}J���q�̜֐�5��H�����}�+�9�io���IEND�B`�com_rsfirewall/images/rsfirewall.png000064400000023567152177723720013733 0ustar00�PNG


IHDR&D,��?tEXtSoftwareAdobe ImageReadyq�e<'IDATx��}	�U���Uo�5�%��l$��2Bƨ��2 ����D�QG�w�a��DT@�m2�,��D0��������N:���{眪[uoU��~���Pn��[뫪��w�{�l�cB�&�U�j��B|��?C~����qYJ�[�^ގ�;��X�?/Ʋ
��.��v/�w!���&hidp����/{ ��b��E�5���,G����B(`�̩�p�,Yy�6�&���{�<߶�b��i(6˷�|�d��).�q��g�@Q�j�ZΰFh8Fۊ�3�s����۰�˺��۞g���`,�`!fs^������``�
H��o�t>QBH*�g*e,��74�na	���	V@��>�m�-��1�ք��X�
�e&J��D@1�E��s�%�"��#,\`�Pq���\�t�E����M�����m
.��Q�oil�����KX��2A%�	�53�����
�����L�B�t����@J8 %ʸ�-?ˣ0(b]u��4�����}	��O�m�-��%0�k9�5�%F�d8��l��22$�aE�:�|��s�!M�s�����dK��t\�s�#�#XYy��Ğ��$��:��
/�%������c�#�!
�\!��р�?;�����%B�ԧ�G�$���!�Hj�£Mkµ���5��\:dc�t��\�b'@��8A���Y�VXp"��;�[[l{60���8��8���%��d"���bJۑ%����1'C�MFL�{�2�hL��p	�'��T�3��)`9��¶�]6�(R-��s��a�]��osl��t$��3��WaHPI$��P��"�B����z�<���i:�2�Q$&|������@�
>p=@��H��!�bP�@���3�''���koŷ:��,`:��y/��b+&2"��/t���t؋�jI!�B�J�%���,$cbB�b2�a	/���`�y3Ȉ`Q�����N�eb
�R�a..����b6X�D���@)�2��mȽ��� �6��x#b/x0���JR�br�ꄪ}�\נX'������&�< 4S�H�:ה�=����d�Ʒ;���0	��D����4����$R&X=�7�rC�=�`(<`q���䀇�����aSL��󙹟=@����`��+ �/S�Ʋ� `�86u��u�ķ;���<c7 S:tW�|�����s0Ȇ�u��mp4��1+��$:l�cR"Ȕ�ؑT�|��M��������u�taU;��쟘�)5Wķ<���.0��L�%�j��FqIŎ�H�d����i�)7L1%g�`*�ɐ�"l\��3܏ϔ|@r�m��~A>&�ۛl��	�󎚝8:���6ځIȨEU�Xn
2%&�������D7�ys#���:��N?嬋������Lt��ii@'�	Q`L��!�i�n?��nDbv�2@O��+�R{G2�����bL���<`7������L�31%�3"�m�hM u"C�!#�|��ѵ�L3�}#�u3�	X����>
�<��ؓ/��$8^ԁǔd��"��.��-?<.sQ|�c�m�[����X�jt�	��Rؔs{�H�f"J�6E��rǠ��/G ���>�b`5S�c�f(��c(���R�ԧ]��7����n�\��6wb���+�3��Ɖw�hH3�M18�g�36u��#[l�����hտ_��@��E�Ry{���C�����hS����{������y�[�#Uə'Bf�� 5�<`�F���H�8	S��o�M�=� r9dky5,%��27�%S�dzY+餸�Ք�bL�YAo�	�"��?��c����fLS�Bt{�Ld��.�F�g�8"�i�f�@�IG��0Y�ۮ�e$�j�����`N:
X�'`�ՁD�@��y�M��Z<�	x9����M�,�v����̌bM�q�%I�$���:dLI��;�}����(�U���Kw�(Ƕ'����(�����-�0��n/NIה�g����S!�ϙU�덛a�#��e��c/��y_U��8��߬���������![t��*����5�M=yM3��O�u�#�������l�H��pGД�Ͷ��sX
�8֧�M5s8�Y�>�-������;�~���Z�e&��,q�m'�^�?aQwB{���I�����}�;��f�R���Ȩ�K؃����
�+�[�\�o����{�շ
�,�ZYM�O�Ǡ���@��l�p��`@�<.��x�{�#лB�7m���vp�̼�iL���`� ,��6�X��r���
`�c�
�Q���2_��b�����wF�mL���Q��*1��U��/|�)��Le`z7���
9,Qp�ʽ�Ѕ*���ⶕз�EȮr���1j���8)C�;/!h����a���z$dZ��d�D\/
��ɐ�mq�_S[$k�l����ق6XX�s��]���+���l��G?��=��r���fJh�uYn`�#�����,���o��\a��z��!��){�q�Ǣ��2�~���=�s!p���o��X�^��c��dW��z�{�����>�cѳ1.TG���yg�5�}Y���oCB^�Ϲ��p@�H�Ȗl90��$=��i���t�5��;_�ݴ�!ݔ^,/��f�	�����*�4'��5;߭l'l��"�xy27�oʀ�V3O�>�}ܥ�[�������L�[�WP���s�:8�^B���7'���1zo�
��mC%�N����]x�F�K�VG�_C����b�D��
,4��V�} ��ts�k��+?_N�8|����.�Bϖb�`�u���,l��<�g�\���CV�?#�]�(��~���g3�m���j��4}�q?�� s-��
�r��}"K�nT���h9h+�g/yn"����P�%Y߀�rp����m���J�,nE;���D�ˆ�_�^b��6?��v��n� �+*��ux>���
���\oW1�f��R[A���o����={�I,#iC���T�OZ�Z�+�#i�3C�y�["V��к�d�PXN�w��<�T��8bF;;/�To6�Y�ˉ�4&L�P^n`M�Foh熈�H�2~N%��DN����ڻR(�r{�Mtٰ���Ȍ�G� e���w��S��"\���P^���9�M4��l�Y���6B��a��Z&Fq���Gl�����&y8-b�3#�z�a�ˣ!�Ov��� �L
ba��e�6�rzB�)J෇q=��]"�A���A�}B2��Z�qX~8��f��{-���}:��
�~�B=I����C�����ə!W����ܢa(.��0(1����&g1�BAa���˫��f�
��Z�w����"�Ѳ4�w�.ߌ\l"��z�M�OFV�V�je��)#
L�k�QOS[-� � �������\r>��P=����䜷�;�h�o�kw�.�w����l�dq�r?%_.aW|������
�[�~/	��i�8��������J��ZO��0��1'��E�J\���:W%�)y���^p��12
1���4�k��]@�uu)�g�eR��Uf�M�.�k3����jY�݈:z;�
�OQt~ [*��/X�Y�um�����.;��M�|����j�ћ���S��]|*�t>6���7��{*�� �l���������iFn�V��h��4��k�L�傭:j.̔˜��9o�]�%�d�ts�zFB�Ӷ
n�%34��u�
X�f�
���0�so!�3�3:���aV�����]|ͩ��=$mRO�o�a�O
�=�}�|	H����X^	5�	�~n�}�D�s(F��J�Jw�~[�EtbD}���F��c#��p.��n�"��'$+~wO&j�S��ҍs&�,sg�?q���I@p�Zd))�H�X���k�=�����&��H�pG�D9��R��}`y;��	��8 ���3�M9�؀���x KC�خw��UA��{Y����G�l���E�}�Jqvg����:J��qr�[�IE��.�F]�τ�N��X���X&Ѣ�l�L����h�ljoV##��7��P�))}I
�u�=	N\����ȬQ�v��F�(�%��I�D�� ���krϹ��ε���1��4R��wOD�R�Pa�6)�Rw:	�gI�ag,7J��(��P�v|�}w�q|<w.�_>qzu��{������7GH�U�\�j�™%��A�&���c
!�(���D���B���
��7�QJS�'����@Ki�lp|݈�	�9�����fs�c�[t��be�aTu��Z��b|���H��2��UpEs������v�,��B=p���0�p���c�5J[ɾG��t�u��i�����1!����M/������|�]5��١�wi@���|�8c�$
u��]�^�ZT�
���pp�WqpɆ)���[E
���l*���F��pa�)���S0uor��=L�#�}�Jn��e������o'#A
��T=x��1�TʞyY���$k����Q���P��l�9�:���V�`�2�������� �O
dk��Hcz"��\��X��`��!���$�
���?��*M���CBZ�L~k�;n\������(��V�����MM7탬�]�� � hh�oAPR}6R�dm=Դ����u�D�Bs����$p�ҭ;?��1�)r�7�sGDc�A�?�OAt�g��Do��!,������lX#i]��<���,�c�P��b�$p�� �P�;wlhbqk4�'�OG�I��o�K�H-laћ\�B �;�峷jO&����	���X3�k���P���8t�zV�=s��H��V�t ?�[��J��":`�d�
%�ZPغJ���X��t2%
�u���s��+�ɧ3)�pO�=���BtM����i']����k�.��>�q��\)�^�
-l�!7�l[��[�ɐQO�߅��Y���ɨ�T��b��
�ey�m�&��4y��˜�W��C
�5Ѐ�o�O�+� ��`��޳��W3�0	�8� (I�u��MU�1����\���2A(K@Ph��LI�G�4�v����dK�+Z�[�|��;�D?�bji��>,(���B���.����;��4H���_5z"i/E��RȻ4#o�bl�d�a��QTu8T�:,��վ
�wxՈ2�.�%�	�.��?�6PD�J�����8n��%�)+�I�~!\���(��t��~{�y
;�A�"���<J2��"Ҝ:���v��wF0�f�I+Qb�;�XY�mO�.OTx�>ZCȞ���ܾ�Q
�����e���U�Œ�{C�{�U�L�1�wN������p"�?@t��/B�&½�Fm.�s9���6����ǡF��y�\�[s���Xg��$�?Kӧ�~�t�m^�f\��L�. ��S�d~[4L�ͳU۶�I�B��MSҔq/,��]p��B@)6A`��Nك��i��$2���U0ғ�W��ց�D��/�)�nQ|���cw���
7�a��0Q��Â�cLzg�	��8��>�.�?S�;=B׊�;%�~X��x	��hhӵc��7P���I����h:���k_�	�a5��>"�Yj7&L�ĥP�Q�ܒɫiM�f�
���)�{b�O_�����K��e�C�o��-"xN>��0�R?��\Wa�xy_�0|+I���ߏX�4-�����K�{@��B�9.5��#��Wǜw�Q���R�>(B<���iC��HN�E`�BWS���)Z�	F�ї@�8�(`�bB��#R���'"^*AuA��ź�z�V>O�RŐ���HB�B� ��I
��
P��Gm�s*L:��n��ّ>1BЀ�oC�,8&��
�{�gȢh��W��*�SXS(�ɟ@���e�m+4_~g-�QPj������9P����jܨ��yw��Y���y�n>ǰ;79�QZ^؝�$�Ϊ�F0�������sL��zɐ����dپ6]���{`�-G�`
�P~�j��T�Ĭ��
�{M�\�v���m8<�s�F���6����ɵ/���jZ�x,��#�)�<��!�J��%��$�_O^�w��e�ػ�D%0?������@+E�_ѡύ�3��]��Dm��=ؕ���#2[ۇ����A��Dȿ5��h�0�k�ݮ��-]�My6�i4���i�$��d3/~җat܋Ťl��&jq�>jOsڙ�z8����K�@�kd��AXV0��2
�m��m��iu}_��NZ�D�lK�!�P�V<�䠆��AIs�h�����=b��@��]<"]�p>&�Y92TG�����H�K�ŴX��9!B�%�h�a���9�u=<�N7�q����Բ*��I���C
�R�=�j߮�跞��~�`E&��?C�!��+��7C�3�\%��Jv���0���k8Q��x[�B'��ɟ-����4�MySqk	�8s�|��!l\3�+���B�u�s�L�l�{����W��m�n� ��jJ�-���'��M�+n?�/��9��II~@���<wM��tf湦�)�9iey�wuf����
2rR���_�	�#�L����Z%]�V��]X�`g�x�A���� ���Ԣ
��6B�"P�D�R/Wq�4��G�����*�i(����N¾^Ҁ�C����
�W��G�$�샓.ts復eZ�WOy���Z�(�z������y�9�\'�a�RG���!�?�{��n�S��������4������J��t0OC�r��N�3!�xe=H��J#$~d��pcD�uu˥�9\��U4��l�x�s��v~�2T`=�u�
�͓=a�=U�qY�<��c�mD:����z[����s�5��dH·�u�s�_sҁ�������'(,S�q��<ρY[��݈G��w�}�����G�޴��Xv�?Amk�|Bw2K�z��)��s�Y�bJB(._�`���M���
;]"ʏ�1�6QY��;���=O����
��Ui�o�F5s'4:��f��<�0̰���Pݴ�<��U�Six�SlCO�cU�ݯCu�3DMD�
�3մ��H�����{���8&�_�뱱�o�`I��g	�����y���8$��/{��
2�h(C���;�&������Gz�ͧ`�;k\�j��w΃PӪ�ێ�7��_/�^#S�$]?�WHPԐ|wN���i��L>�T������{A�pƁ��@�:�6e�EɆ�5��Gˤ�{�Ԙ��h���+�Wq�3|�Kw�A#���`D
�]7�c0�3��?to�`�*u
�LTz5����-���\���Kf��΍g#�B��a���k�ņ�Nv�N\�7C���ki��])�Ӓ@�������YO3��6��� �f����7-8H��d�t�{ʜ?�h�=&��v��8�c�;G�N�,��_G9ir=�I$D
H7>�kX��s ��D}#���� rOd{�������뵓��	�"\Xo-�ו���m#.]V�2N��k`�C[b�m�ZBSU68���f-��v�0���O
]���`jf��H�ܰl�&H�n(��\����G���.2Q�}�����a���3�\P�S��@	4PmȌ\NY]fb���/֍J�5�7��1t��k6��Ƅ�5���,��D�]�R�q���)	��M\H�GEt#���nN���Ű��A޲"]�7�9޼A�5���s'7��4%����{�U���w�f_,)t	Fo��b{��T������C���I�F��H�����v� ^6j�vr4��V_1��W=���K���XuS2�5�m��Li�~L�KKf"�L<���S¸����վ��W����1�-�Q�W����$�#ɺ�>^۷�&�i4c�)��z�
�4%J�����d��!S�z��0P3�P�B�X�c��Sou��~��/Ai�u��݀I/'�6>�{=qB��7-�!�5(Q��mY�<��̒���M���b�-�!iL������D���zJ�؂Ӡ4%m&KO��c�I�>Ѥd/L�U����6��vÒ���i�C7kr���׏�Ң�uM��4%'[���Z�7��7
�mL3����#(��F���b�m4�rz�5�\ޚn6VDI�9�Ơ��Dj������z�����6�L#�o
L����YV��@µA�>��6��}����퍿�����tH]����[l���Q��$��h`�RM�%��f��/$$@	�����q�4�&:�필�Z�L���T\�Ӌ���t�|�$Y��_f63��~���ʔb�b(�c[|�c�m�S$e�)�l�x�-�7Ӯ.��p�m���{�@��
�����Lk�$�h@�Ճf���>�P�Q��o24`�8�=b��T��F1KV|�c�m�Se��d����L4�V��ЀH��抉H���)��͈;g�Ns�%�!�W���?t �)S��ȠdA�{��>�-�R~@2�l|�c�m��t����S��P�)`K��Y�2��w��ӂ�e�}���Z�̩�@I�rW�@�cJ��r�SZ�a��pz���p�Ŷs��g���5�,7��i�;���K�h���Eqp�|p7���1�^ɜ��n<�-¸-S!M�;/����x��N9mh�*�Q�oyl���䌓�?�4�|��?��V̝������!MɖL����s�w������Ys5͊k|P��$����j����w�,��K,�L��v@[l{0I����kk��'_��w�K�;gO7���A�V,��Hq!2�kj=��ǜ�s�C�o<<ق�ߴ��~ݺ��w?��O��4}QN��owl��a�D@1�̀�
�Ӯ�~���r�F��;�p&��$�(�rz�4MIקD���gOT� LҊ���'��1�X�x�}�������O����wp��%J��Rl��䁓gW=Q���ξ��Mӛ
8`�A����D`c�Doݍs��qo���ٶґ(�$��$�diI�k,z;��K�]iS6A
�� ����-�-��g�_�Xb�9��=��/.S�?�9�s���_|�~|\��r�4�)��%W+������M78�������N��d�L��輞Ym�x����[j�P��M({$%I�qTwl��YK��N_n=G�'���W?9;q��Ilb�f���N�՗�brv_�y��)�A1,$hפ���O+����o��}���[Wv������V��g�-���=��z��^��Ϗ��8��%>y�4���MlzC��r���J�KRjr(�<P��9ߘ�5s���.��e�����?��~��Wl�n�tI�(�;�}��[[lc���'��d�.�1�ߑ�Z�ٔ�{Ϟd�޷�ط���3��Mh�@�"J;��U�c�ue���;DǦ⭷����6�eK7�=?0����K��ܵ,��vl�Ōi(��'6>�ʦ�2S	h�O�qLȣ�s ϭ�$)ߝ���Αfe�"�5�8�~l��Ӑ�g�,�n�D/(I��?G��4�`����Q�<�6����D����>��IEND�B`�com_rsfirewall/images/icon-48-lists.png000064400000003104152177723720014057 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<�IDATx��Z{lSU���ګ]7
�9�`؀,&T�fn<B��0��5$����?����<	D�#��� ���[�j�����ܛ�kK�mwە/�rO�9=��{��{/����Y&~�����M�:�1ʿF��Э��)}R<'k�k�K�_��i���T;|��mQ��X���P���^LX���e���ls�E�����T	�F;�n�ܭ'�4��b�@:���Eٺ��K��\&�ri���ˆ��p�4��>td��=<lU��
�Ϝn�%m �>"���Q�˚UE��k��nq��oAW�n?o�����=��?�$�����:��2���.JTiX��r?u[��{�z7R6�en�V́�0
+�*�sp��.��AD�BcN7�t���f�����܌bRb<G������~�D݊�|8nXl���J�>�"ExRfo"^��\<�=L��HWfCS�
���ucC�0��������s���|<��s1"�g�%��V�(]Ey�v8��I8��XY���ɒ��'�@���ᡛGa�s��qd*��+�4�҅�.
4~	����U8�NX,��lFE�j�2,��y��V�
w��P��/,OP��-�v{��t�����`����d%kpD�����SF2��L"KF�D�#*<�	��.�+��
-���#Jx�)���h�9�v�2Ȫ^y��!/��閝�if�g�~���'��U�[�r�>؜Ff��� C��4�ߘ�'ON
�@ @mmmH�
!��}��O0���T��������]VW�g�~���Eq�jxb_����Y!V=0OUÄP��e36���
����>����#��l
�̬��TR\BȟZ�a��4��d��IL�>R���<R��v��-φ4m����(Tjp�F=�Lcc�����j��Kb����^�9�[�8K�Yq��bT��B���]���m�:���A�:��_]]��A��b�[��\_~E�Ր	��[xٲ��~�9�b.\�8"T�~V������l�B4�RJ��{��G��'��F<�0I=a-t�dEj��IV�	�k��(Ph ��FS���5XO��۾��a@�|%�?�?��Fi�1.\��N\UU�s��9�f�/L{�̭(�|)��i��v��(����0WYC6�,��F�,g��
,���o��|���W��GJ�S\WS�m�46B�e��'�&�4F9�?��(y��hJ����p�\�>���Rq�:��B)t0r��
����(�M�n���Z��g�h�a�;i�6�\��҉��K�a�l�z�:��!L���1:�Q�}��-��V��~S�
4��re��4��b8�DG?���4�~4Z]{��$y0�L� ��k�e�Ў��1ވͥS�EH� �sfu�����~x&E[~G���~+A��J`�Я�_�<�[����iC�c�IEND�B`�com_rsfirewall/images/icon-16-filescan.png000064400000001370152177723720014503 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDATx�b���?% �X`��������� a������6o�<���i{����777#ccc�������߿�n�29�<\ �����nӧ��^�x���^qI���2022��7�>��p����E~�fex�����77vvv�?�0 @L0��O�1\��῔5��������c å��;�oc`aa[�l@�
9�ٓg����p�2����=�e����o�`x��X�Ă��_�a`��gx�����w��b�ϸ^<T d����A��/��&��P5<����d`bf�����"��9��|x� ����j'�+_3����AJ^����@�� ����ZN^����o=`Ûg/.�`("����!�/f�4@p��������Ȑ��s���e���'���D�α6�����7�
 ��8a1qqww�@�?�g��``������n���6��2*��� ��f�:p��uMP<��.@��XX���f��>��ܤ+=��Z�#�>�B�0������zq�.6X
�@��fg����PcIEND�B`�com_rsfirewall/images/icon-16-rightarr.png000064400000001061152177723720014536 0ustar00�PNG


IHDR�asBIT|d�tEXtSoftwarewww.inkscape.org��<�IDAT8��SMkQ=o�h��]$�;��*�!�

���{���?p��@x�Zq!TA��k�S�TkZ����L>�q�vc'/�w��s��^�D�Y�=~4+N�$��v\_��C��9
c���,S*.>B<�������ʙ���/m�]������0�e-ܻS��u�1�Xo6I^�J�����j޲ ����Ǩ���5^���Vr���!Z[=�������˙K�l��+�qkZ��� `7�a���[:�p��$Ο;]��5�َk'Q4@�03��T��N�O�v��J�J�#�����~����	�>�i�h%�O�`���x:c6c�Ջ�\na���A��J�%�}_J<a����&��{�g�
��$f�(���ұv{g�5���O���6��;?@V�����Fy
��4�^���\����{-���WIEND�B`�com_rsfirewall/images/icon-48-configuration.png000064400000003566152177723720015604 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<IDATx�ԙKhI�kb|��'�$� �(����\��AV؜��^ֽ�d/��]����\�a�,��)�L"*!	
�4�������+�ǚN�tOg�~�tW����5���)�-C��ơ�r�\5i�
z��y����`���E��@KKK񹫫+=gΜ���fUWWW��޽{^ww�����n�S����\����Q������s�<�Y�F544�5Uw��@ 	�]�j�z���K_�J�ԢE���j&�JN #��÷5̚5���.\�>}�4�;
,[�L�1k]��j+prŊ�۷o?*��#�l�?Ν;W�9s�m���k׮U�?�F��Ǐj���J�dX��u��<���8#��ɍ7f=��GGGU>��5��C��J��gϞ9	qO�<Q}}}�5Y��o����������0�*���(
�_�|���`���"̕���zkX���ڒu7n���(��ݻwz
k�)'�z�٦�&�����_ߵk�~�w���m`�ӧOu��
���x�B+o᛽��YSG*�BG�r�
%E�r��GQ�K����ׯ��Y�ԁ�;w�,�'�t��X��}�w��s�.�8tr�;<z�H�X�3i�|����r�K�1���Aj& � ϼ�kX�J��x!I�L���	2��B,=44����"��ֲ��at�	��/v%�b�� ���"{|%���U��nڴI3�-�ܺuK�}MMM"d/4�e��)j�f�@ۆ
������f���C599Y��
hٴ)f��u�֡E[%
�M�{Z�_�ɩm۶-n�1"IJS�	��3�߼�r큖?<�o�Ν�S�bdj52:�����~�tB�bf���<�]3h�?G���7�zM�������3�E�ܧ%nZ�����"$�q�5TQ��;���oL5��^�z���tIŵ�$%z.QB]�x1T�^4������>p!FR��R�O�.^ 
Ξ=۞J\�~����]��p�(p)�Ka4��e��2�ahK�>3hB;���(�1n��Q���n��`wM?�&��$0�Z\?�T!y}o���\C��c}#�˅:�\�r���%K���
��6|oReX&:j�Lx�Y��~dd������¼�'Ys+�Y�|y�BT��g�r0L!L��d��^#|���A�P�����`�>`�����ܼy�}˖-�R�?�?vƣI���1�\ik��G��x�^���Ĵ�ō�9�����>�`+ϻw��	G��:1>>>�_�x�.Ľ�6r����j#<�Mb_-���ݱ���4�P%��%Ɣk�&#�S���FàY?�y�fg�z"Y	E�(�����a��Sжn݊����$
dw�ء-B���8	�2��իu3HJ�kϼ�ڑ5�e{]49MN�淆D.�I;�o�ʕ�YT��+�_�r폆����ׂ��AZ�D�B� ��H%��`H���8��(�By���hn�Ib:��	�2�#`�6���Z���J�a%s�����q�m��۷�LMQ�n����U��;1��t����<�^���U��Lj�4xd!�$�={�����c��WQ��d�P��%���ًA��]��#e��()|�B�W�����h� ��(����4��S0�v@�P�@�#p�Po������|�"�g�A�^�u��_��z��
��`5�X;�4a�p0�N\D[9�gFP[Mk455M���ח7��)S��_��z�Wʤ��my��W%�R~���:'E���IEND�B`�com_rsfirewall/images/icon-16-server.png000064400000000710152177723720014222 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<jIDATxڴ��j�P���J&��
�PZǂ7��A}��HS��S\]"NB\�8����FI�p��Q)�79��͹�(�`�+�g�k���G�\���L	4�H�4躎T*uR�Z�0�Nyl�[�`�Je���(��#(��\.UUO@������c�XX5&�^�a�d2�t:���c���$I�f�(�JT÷��c��컐���80N�� D�H�變�z(
g����s@�x�A��g���_�����������}�X�,�79<�I�V��ӧ�8X.���%��s�ae�PD�4ٜ��Z-L&>���t:GY�e��f�����;\���vk?f7�y~���IEND�B`�com_rsfirewall/images/icon-16-joomla.png000064400000006743152177723720014211 0ustar00�PNG


IHDR�a	pHYs.#.#x�?v
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*!	J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ	�b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(��	A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8,	�c˱"����V����cϱw�E�	6wB aAHXLXN�H� $4�	7	�Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S�	Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN	�(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#�׹���=TR��+�G�����w-
6
U����#pDy��	�
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�򗓿m|�����������x31^�V��w�w��O�| (�h���SЧ�������c3-� cHRMz%������u0�`:�o�_�FIDATx�|�_h�u�?��}�i�Ά��9�n�rZÐ��/Jrt!�$�
a�0SW	�Yf�"0�A+�"� H�ᤂX+0nlSGvΜ�ϩ��=�>]O�.z.�����#]í�>���=MC��?�:\��e ���n��XlPx�X��O��r �����.�BDTP%+{�[UDPU0���Bٚ�^�_!�~"!uD�pdy�QLZ�0�	y�7%�Q+�;�
/���j)�릧ih��^OY�R7�鄵39s����Z��%�-=^��#a�d�����e
�%."��BSo���sM�m�䃡U��'�.�bU�Ս-�[�I�uQ�g(P�	A�D�|�x��$C���"�\�凜�ŧ^1	�oRT��3-�F�k*c�.�kN\>r��{�k�	�[5������c��e��X��Lꖙ[K�|eE�V�~�X���7���Kd�⟉ܑ�i�X��}?�n��q�D]��q�I4�}C*p�|�kw�X(ܻ-���ݧ{���=��ed�hؾϔ;)�{mӧ��^n����w�ӽ����ؚ�5_�j�EwA� ������9����8�̏�ٕ��E�lOO
�^���\f
.�:���"�� �?���Ӗem)������#��6��k�$�J�@vI�;���gQ�b,bA��ã�.�W�0u1�k�-��@^�(��!Ti1�ѱ�D%0w����:E¨>���U�D8�*�@������+F��,4���+���N�Pk**��IEND�B`�com_rsfirewall/images/icon-16-uparrow.png000064400000000410152177723720014410 0ustar00�PNG


IHDR�asRGB���gAMA���a	pHYsd_�tEXtSoftwarePaint.NET v3.5.100�r�wIDAT8O�S�	@!s�)��+8�מ�w7�{)�'=<o
�O��&UM'8"����2�H?ޅ=e0�A,�"��̬�V�.����QD�5��Q��{��L�b��9�.n{H~�q��ڠ��}�IEND�B`�com_rsfirewall/images/icon-16-rsfirewall.png000064400000007047152177723720015100 0ustar00�PNG


IHDR�agAMA��|�Q� cHRM���R�@}y�<��s<�w
9iCCPPhotoshop ICC profileHǝ�wTT��Ͻwz��0R�޻��{�^Ea�`(34�!�ED�"HPĀ�P$VD�T�$(1ET,oF֋�������o�����Z��/��K���<���Qt��`�)LVF�_�{��ͅ�!r_�zX�p��3�N���Y�|����9,�8%K�.�ϊ��,f%f�(Aˉ9a�
>�,���٩<���9��S�b��L!GĈ��3��,��F�0�+�7��T3IlpX�"61��"���H	_q�W,�dėrIK��st�.��ښA��d�p�&+��g�]�Rә��Y2���EE�4���4432��P�u�oJ��Ez��g�����`̉j��-�
��-��b�8���o׿�M</�A���qVV���2��O�����g$>���]9�La��.�+-%Mȧg�3Y�ះ��uA�x��E�����K����
�i<:���������Pc���u*@~�(
 ��]��o��0 ~y�*��s��7�g���%���9�%(���3����H*��@�C`��-pn���	VH���@�
A1�	��jPA3h�A'8΃K��n��`L�g`�a!2D��!H҇� d�A�P	�B	By�f�*���z��:	���@��]h��~��L������	��C�Up�΅�p%��;���5�6<
?�����"��G��x���G��
�iE��>�&2�� oQEG�lQ��P��U��FFu�zQ7Qc�Y�G4���G۠���t�]�nB��/�o�'Я1
����xb"1I����>L�f3���b��X}����
���*�Q�Y�v�Gĩ��p�(�������
�&qx)�&��g�s�F|7�:~�@�&h�!�$�&B%��p���H$����D.q#��x�x�8F|K�!�\H�$!i���.�%�L�";����r3����E�H�K�-�A�F�CbH�$^RS�Ir�d�d��	��3Rx)-))��z���R#Rs�iSi�T��#�W��d�2Z2n2l���2d�)E��BaQ6S))TU��EM�S��Pgeed�Ɇ�f��Ȟ��!4-�-�VJ;N��[���i	g�%�K����-�s���ɵ�ݖ{'O�w�O��%�)�P�������_���R�Rۥ��EK�/��+�))�U<�د8���䡔�T�tAiF��쨜�\�|FyZ��b��U)W9��.Kw���+��YUEUOU�j��ꂚ�Z�Z�Z��Cu�:C=^�\�G}VCE�O#O�E�&^�����W�Os^K[+\k�V�֔����v�v��������[�]�n��>�z���^�^��u}X�R���O�m`m�3h01$:f��ь|��:��kG�2�3�hba�b�hr�T���4ߴ��w3=3�Y��-s�����.���q��_vǂb�g�բ�⃥�%߲�r�J�*֪�j�Ae0J�������OY����������6����r��������v�v��t�X����L��ǎ�l�&�I']�$��NϝM������.6.�\ι"��E�n2n�n�n�����[�g=,<�z��D{�x���R�by5{�z[y���!��T�<����v��~�~����\�[�����w�?�X�c &0 �&�I�iP^P_0%8&�H���Ґ��:��О0ɰ��p�����u�""��]Qب������n+������.�^��*{Օ�
�SV����aƜ�Edž��}��g60���j�fY.���glGv9{�c�)�L��ŗ�O%�%�N�NtH�H��p��/�<����%J	OiKťƦ����y�i�i�i����kl��Y3��7e@�2�T��T�PG�E8�i�Y��&+,�D�t6/�?G/g{�d�{�kQkYk{�T�6卭sZW�Z��g����
=6�Dؔ��|����W��7w(l,�ⱥ�P��_8��vk�6�6��۫�,b]-6)�(~_�*����7��|��c�Բt�N�N���]��I�喍���QN//*�'fϕ�eu{	{�{G+}+��4�vV��N��]�\�V�X��v~{��~��uJu�u�pܩ���h�j�8�9�y�IcXc߷�o�����>�=t��٪������E�2}4���\��j5l�o��DŽǞ~���q��=''Z�����^�u�t�v&v�vEv
��>��m���я�N���9-{���L��Ogs�ΝK?7s>�xOL�n��\�x����}N}g/�]>u���ɫ����,�u�[�d�S���@�u��]7�ot.<3�0t����K��n]����p����;�;SwS�yo���E�V<R|����m�����\�?�?��K�/�'
���TL�L6O�M��v���t�Ӊg��f
�������~s��6bv��ŧ�K^ʿ<�j٫����G�S_/���s�-�m߻�w�Y��+?�~�����O�������	pHYsd_�tEXtSoftwarePaint.NET v3.5.100�r�2IDAT8O}�WLQ�G|�D}���k�QѨ1Aņ1�h�&��ZXX@���(( bY�`��(��1��`����ٙ����=3j��8ɟ{�{�w���a��_s적ʹ�R��9c�<�?����W6~H?6.�R���}�Ṽ�E�_vUp�D�G����
c��"@1	������v+Z�n�׶C)\-I�\BƔE��a}�p��Ɛ@��fġ�I���T�ꕭ��#�zE�r6	G�ڸ$ko���Ko�zu��$|�yѭs�pW���_��h���`�%�N/A.q���k�_K�4Դ�R���n�����	:+�Z�����ZeA��bfh7�h�71�OCv�@/KFgW��	Pί�R�r�Rs�ZU/��u 
;��3Hdi
<E�޲����䳿-K��!f��S�m����'�M^����I��A��ʥ�P��<-��	

��yO�6lC��j]������Rn<�H��s���r�/J�׿6Ò�" ���t� �9!T]wh8G����1����k#�3���,�s�i�Ϝ	��
��6�n�L1�1�t��s����N(���|�x��@�)���:�(�f3\B`�x�S4k��:�L��8���8��e�p:��-�GỘfG`AL�9+%8�BH�>u,����*���)'c\��L�K�ژ�|b���E�dd�K�#(�U8N���i�_s b@���,��-/�B?
g"=±�N
�ǧM������2NlJ��.�Z_o��g}��T��䉠wV��IEND�B`�com_rsfirewall/images/rsfirewall-box.png000064400000024553152177723720014515 0ustar00�PNG


IHDR�`���xtEXtSoftwareAdobe ImageReadyq�e<!iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CC (Windows)" xmpMM:InstanceID="xmp.iid:848481899DCC11E790C7C4E53DC19054" xmpMM:DocumentID="xmp.did:8484818A9DCC11E790C7C4E53DC19054"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:848481879DCC11E790C7C4E53DC19054" stRef:documentID="xmp.did:848481889DCC11E790C7C4E53DC19054"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��8%�IDATx��}	�E����ߛ7w�Ifr�#�N]V\����.Ǣⱬ�*����*���(� ��Qt��r-G �r3�L2���������7���eW>�y����_w}���}�WULIJR�F>��[P^ڲh^��y]	^��@���9��34�&�\��*Ծy,����?���+��b̫�<��q
���.Զp����x������䅜�k?H6�a>�)��Z�!8t�">��V���)��Oc��E��M��ט�b�2�O# �):��u<1���T�_-�@��
�t�8?S��:,�-�[0oLn��OVr�h:
�=��a�4�E0�l�v���� U��ݢ��r8�ª��)1��X<�J{��`6��;XL ��C�۟0ׁ��a�����X������MA�f9�+��@�
����&�hhJ���fUX����_�c/.�H]G>y$	��t�1Oԁ屔�f�������{]�9�y�E*�<T`d�B�4Q�]]�Y��Ȉ�j���me��h=��`�7?�<�\�q�a�X/a>��ʒ�ݞ"8�Ed*W���(��!0��|R~��@d-A��ǹ'Pr��E��&C��2H�[3R5��ha���3J���������T
ȟ�>�s{��w�_"&Y�a>I)�S�����
�ӗd/܋y�����<DV�623�覵qd�[߰k���BS�#yd	���t<6�E����b�oE>��r�M
������<Ef)���B�QQ��ј��LI����&8��2����	�ç�:�p���fT4�'WN�߲*��a��G��k_N'b[��X
�4�(+��a�0Ae����i~U �T�D�{��L��<a߳&���ȏ@lU��Zd�|F���b6�>��&y�	���t���h$�62I�֬4m�"��[Ib��IKS��B1a3}:�w1P^0�HDG�"��<е���T�\��[6'�rdR��52�	��q�JUX��.�n���@*c�M�Q�ȉE$��^_��˘��2���M�kQ_���&�m���l1�#%$�Z��,��^jgU'�3�M���,RC]�cY�Ğ����t ��W�}�>S���<FK����wi>JVc!@�g�}�A�؉���C0����scޕ0{���'����k_�ݝ�X�G���ӶTsͽd%4)�B�Fc��&��h�P��3��2cK)�*h�&��K+�/V7s����Iם]uc�\p��t2օ�xa)S����-Y	*꯲�d����_h҅�%���Y
��}��;c�z�
@�1��~U/h�e������?�Yy�sS�Ǜ�k7s�Q�`#��^r,-(FЋ�}#�x�:}�L���zT��º�8,��4�*I����n�0��#��oH��:����ߥS�N|���~��&0������\s�HM �b:3����@�M�b�"4@�͂h�v�x�^��>�n�2���ӃuZ�|��,#¿>0�W�}�RY��tɛ�8̝f5|��k��<�Ē�o��O�տ��!|CyĔs�z=U��&"����'�QK0�д�b'��^�l��a@��UM�����Px�j(����M�V ��=r�q�a?���˜���e��re��<FFr� {u���^׌m�|S�ē6SVJ����n�N�̢��®���"�����1����mF��K��R��d�ԃ=�lHϽ�Ɠ��F�d�<�HϹ
�~
�G�w��
����� ��f~v���Ryt=����J�
�^��50�rA�������#O�kO0�T:Z�j�[^��ܪ�A+�g����+��b҉`��Bvz�3ج��
���`����S��9���R��'F]���l{
x�[�{�/� �%XX�lp:6��8ve�^���d+�X"d>Wm�A�J�������bc�\	s�v��,Ϭ��i�H�0����	�Y�@�!�}¶w��O\������B�v���/�<v�˷A��E0����=����u��|:���fY�/}�O��<�D�U��|Q0�Q�d
��^XS����D�D��&�O�dw��7o��w�k~w8=���w���/�����-���(�4�IoG'G&��=�/�f4�C��:8|���X�I�\���@d�W�t FPg1�}?����
rO�N�D̽b�64�
���Z�[�z6=�������I
���UE�Z�2��z*�u3N�ک'B�9��i�2PQ?��
����@7V5�2����AON�ڂ(�З$��v	8v:�u����u��	�F#I���r:$P�����`\+�Vz���B6\���
h�]�q��@��dW�P9�A�ވco��c����f;^]-�,���*,���0��o��3��L�Td�S^���0a��Z��\ ,����K��j���y��$�J�5��t}�&j�NW��t�%uib)c<������a�,/�J?�!:R5U�jR����3����}NU��TF
/�.p����=!� .�^��Gkte3��Ƞ��I��}�^�pg{���ʹ?�܉��$>�H�ñ�M�gi�>-�sd4��6��l�<�^��������4�W��R�Бp��'�{H�H��P@�`��W	��l
\6+lO�\�"�ͽ��h~"�D|жݽk���1ޚ�4�\�`�L��{�渠�܉����*H`���<��@���?�?��C�1v<��N�q�B_��e�Vl���)���_�bTA�jR��OI���kt�5?��Mh�M!?-�F�g0���Q`�p�c`
j�
�o�\ǿPd2#�:�O�%d_��fd0	0�$����j(Y�<��:4i	�F\�����s4�t�	Q"��3���7�6��A0K������L�N`���
�t���̊TH&"]��f�;A1XT1X���
lF�p��X8E�*�PN�Y�R�&�%l<_aof'ᄂ���������&Կ����P���~)np�"U�a��Eͯh� P	Y�nE�F���J�L���t
.WD%v���6f����ڃj�ʱ��gL�&������)�6wM�jI�ؐ�r�5,pB�O1E�/'��S�`/�lg6����IcH�5������E��.�	>����,�RU���X^|_P�'4�K_��hu&�T�i�*���Pw��?E"Dz��N�t黉EW2[M&�	�F<e��i8<�f
����+��qO���A��)^亓���JK�`�[�
H�O	�վ
twK@_��K�wZ�iM�d�bY!����k4/\��fy�tu`��д�=��̸C�����
"X�)��N�յP�F���7��@�fZF�5
�j��o"֤Y��2I	�FXy����^�~���ҹ1��N:�Rh(v�
�Tud��'�#~Q0����:uN]�w�*��&�p �s�
�1��yΛ/�3�`�SGsEx�{������\#MZ]A�Qb1���<\'5d�x�F�������G`�fo�cE�eB9-!k���ۺ������QF�J��Oh|W��>��䃥�/�)@oށl�p�4��t���j��s`<B�o�e��2A;^�s���A��q�/rq�d�4b����\��:�@aaFq�1�kTgI��Ʊ��_+�u��Nt5�����k�ߦ��*���5z�:8B�p哹[����:��eε�e9��XxĹ�=P7}��{VPﮕ*2d���FK��r�<�`;���� f=�$%��Y�*�L(�C����}��b�,_U	�GA�nW��
S?t={i$A[�+<�?��@��<p��o3?z��'��Z`�[��?gk/��5��M�ɱz�+y��r�QIK�V�V��X��)9�x@��ޝ��T>~�90�3�g[w�����}Z�Q@��^�r�0���6>�=��Y����f�Xf�h
"��-
X�U�L�A�Ѡ���OM>B3u����ߠ����Y]5��|�;�f�^�=h2��aY+S¤7n�B0v�I�sο?2��†�~	U�rͮ��Rӧ	My4��"ߕY�Fwf߲�/#�%i	�F:���Y"����PL$�H%t`�bD�Z�{���vE-q�"�P]�͛YW�'�z[~W�mA�v<��+�;�o�iYw*SD8��<U�>��LH��pc�xk{�XA.b�p���AM�Iٰ��,:��Є���e,%h��5f<�+!�t8-`儹0��g�1�0L!���E`�p�c��T5�ìV�w�^��'ր��p|�+�~�6�R�u����
5�_�����\��h`����Y�D.]��)n��s���_��_C�g���A8��d��mm0VK�<���=�3�.8n�?�u�5�i��Pu�����3!/a
c�0g��6����a�	�F[�wS�d��}��L9?���t0RV��VB��oCn����g/@�vu
tmmVq�ڂ�`e���`�!�o~�װ�oC��ٗބ�"T�/^pm��X"|	නUV�����sь���1$�
p�Uw5XZ̈́�oD�:���
��,�L�kX�]V�
Ň��ew�6�$�P;u6tnꀎ
�Ps�x�կ#c} دe����.��:Z�A�B��_�<,�Q�*0
��間/	�q5�_�܍�	T��Dh�����L�>�8
�&�Y�wk�v��\k�+:��/��U�1-��UMzw�Ӎ��i�ꏿ<�X�N�C����v}�m�?���\�Z�Tm=���C��\_��^\S5�rN<Mg-������#Z�R�3i3�d���\.g�@D|ʮfP��/��	:�ƪ���
lBpPCS��� h�4��G���m0a�x��j�����=�]Xyߵ@�-�X0Š�9,ЀZx��N#jf�����oX�q�ḼICH���NW�9�Bp�i���_�ex"������p!d&7U�����6���:N�r�έg��{X�cѪ(���2@��c�
��0ؿVl5h�g����:e��ћ<�\�����G�bW24�\��寅�uӋ��_���UՓk�n�a�GÎMoWѳ})��a���fJ%��
���Q�$���EW�*C���B�D�x�>�TdÅo�7�v����ĝIH|���l2�*�4kC��{Cl�ə�l/�6���c�%T��
���Gk�q�'
;ʵt��N�ιWN+��m�A�Á�ɵ^��?�K�g�B(4�]7���"`�t׻z���{�
�\�����v�6��\��r�(.H�XH��Ph�V�����f���-�b,2
�'�T,�O2��#��¼�vx��ɡu5h�M���}kZ ��cq�ǒkoi�\���JР@��y��E��4�y;$��Y8������T�73ޒ�D����h>V0l�7]��Z��nF��Jټ���9�
�L�@ޮ��0p-P8�SWy_S��n���r�b�W�7�[�+�p�A���X^����q���C�+8r
���+�5`��t�,M@���aB��Ӝ��P������]�`�X�=i5�Y�Eb����_�b�i��]��O���+�=��1���[Iܐq�<���"\
�B�0��|�����;�x�&1�u�Be�a_�N@�C����Jv�2�As���G
Q?��N�ɜ	��"���ʰ��j�eK
���I���:i�>"�F��!pi��yM�$��~�0�>�0��` �>1��z�_�S჻zeg�z����k�[��=�:����#B�2�vW5���D��"��Ͼo�-z,x$lB
2X>�>Z9��Wn��32b�U*��y�X����ܝ��	����<��Z넪z��T#�d)W�X�>��и.t��)�Q���`]����@����U�Ŕ��jϊW,̿oe_���/v0��H��/���3x�G���Y9����L�@t0|,W1�/�1�d�n"V{˰�
!�"�`q�ZR���`���ڥ��]�&�*Ƣ��Hd�\�b��f֒
��O��s�}/�;݆	��n�F.�Ft��<e�{�p?N��`�!���*ȍ�4%��e����_�?���b+�~xr{$3�&��W5�ٍ�?\8���^v{�W��wϟfɉ5�d�����k"jʹ�g_(��f�P�,41�E�i<����<l������/*��V��Eˮ4'�J��_�O?:����{׋�������&�f��E�q!C7	�J��
�`��~��s�0��$v�Vc�,\��x�}���\�.��x��v&Om�S���|˅��^x狩_]vJ����-��e@G�[��_XA_G9J��?dE�sP�G�Х��Nڜ�`�X��<���?Y���Ľ��Hj�Q�J��'��Ӣ��?8'u�g�O}��sSg͝Ě�.����89����f��ӑ�N���/�D��
&��C&�y��鷯��/Z�޻��/Q��H���$�=ׁ����y��Ac�5��K�~�a�;�:q�86���Ʌ���Y7�-X�RF�פiNA&G?w 07���-�Ͽ�.��U�3�]b�2��+j7x��n�p�i[��뗊�Sn�eS�d5w�5��F���ZvȌqlb]%4 ;ѐ��Z守�cw[�ع�C�`k���+�m�˖n�K;sA��x��UO"X$�Lm�b볫]ʏ�"�"��6!�|&�Y�E$�l{V��	�e<KZy�2�T-�o���c{��4ы�x5�jߗoԦ&�闞Up�g�#� �.���;M��5�^�T����l���~��.�t��A�^y��	R�h��/��u�|��w��z�|�-�s���#	�Մ�M�ݓ���$"�kKP��g�����g��TN��yQ�uS����w��9.���$�@�׾i]C�l�K1Q�{��D��zyY������S%���
��5���{�1ϕ�̱R�n.)u�Q��_��oi׬��bċ�Q|k�j�i��M�X����{碶a.1�1g�ꞏD]�������j�e�ϕ8i�2'�Zo)О2B�5W��Z��E-7���1��˾	�8�ԛm�tg������/����'����Yb����c�2^Tz:?�w2��lL]s�X9�Y�mm���* ����E���U��Y�z�S��V�s�Wv���K�
e��$������b���RWfݥr�V��J�з��}$�y�q���`-b����Qe�a�w�C����qDU��Do���(�%$�s�w0_�}��ܘ�.�|�Q� �1?i�
�~��@�b�^��[SO���`�r��\~�m��K���19����;�/���_�3������v�S~�5Tf��ľ_��܋k���~�`Rq���
�i.�]FC6��f4�8�m��sL�D2�8�@,�f��1��w���%��0�Q��1�L��<f���g����f�\�e>�b�=t��s1u�'��漴�b2�pl�L��
ڣ���1����W�i2�t�z1�l�Wb��i��<��������~�waL�'���I��ӟJ�{��6�tՁ(!��\�eL����{ *ǴT����}���2���߯���1�rdV�0@��1u&Q�G���t��%^�gŔ�i:��b��S�@�k�z��Y��?��-��*hdZ�$�����qU��1����������t���%l�iA	��S%,�R�ǂm�]��7��1�2ʮ8Иk��|��Hv�z��Kߨ��J<�����}uV�wK(��(���9�Ƀ�oVƴ�ӌ�� ^%���=��5��Ke���Y���1�V�M1�o@��dNP_����4�I	"e��B�g������oJ�9���|��=�G�*�6�E��w�a�@��K�"b~��s�:��2�50��q��8�	.�y?4ʘ2g�8��ת�������
e.P��70o�o!�;���֎�v��?cʖ�Q��_�/m�G%��i�?��! �m0ƣ�d���l�7��SNY f���Z������c�������L�Quy�u{�Z���Dh\Y���H��v>���(6��Y��_N�ڗc����ycۧ53����kǼil�s?���ߺSм���-�?��|	�(��/��P���~��Wg��Lƌ��&�&�3����R�A��̊��%�B��ƶW��w�2[�,(Q_���v�~����{�o����
߼�Z9ȃ���q��Vo�L�r;�����W��}=x�H�rBR���1~3Ę�dUl)�C����#d=s^S���_ƈPf��`�J�>mf�����}���x�j�q�χ�0�<��f���Z�,�L��:�g
����۾eԽE���k�c����B/{��K�����6SO����Y8	J9)�2�o�Fe/Wo�s�x�UjS��![���51��-��<�^|A�W�����<c�C�����
}�6��0�&�̙�������}x*��1ϐL�砯ܞ��>ů޶TN�@z_ak)�/���J�q�%�9݊�-c�qe\��1�E��^d.�Y�5�ӛy� ��n+�o,��q�q7@�A�F�̘�^�����s��Ӱ�M1�Ïc�u��#}�+�f
�qߛ�|_s�����h������.�1�
v�c��w�w�7��_e��
_�)#i��(%�-n��i���
�.�X{a���3�f�샚JW��1��*G8"_�y�u~u����ˉdY3��h��kP/�f-�>�]1^���Ȥ1G����1���2��y	�>�i�/;-�;!��r_O_S���?QOd��4��=�|�R�5e
ƅ�Qc(C>�W�$��c|�������EB��O����0�˝9�:������AXI�|��]�9Xxz)���T:�����b�pm��Ի��\g����}P��5��2Wܱ?��%�Y_²1��(�f��w������L��V׈u"�/>�L��p�?C�/����D�c �?H�T��i���c(�fw	F�$��1���CO�!>�x��k�p�}��];c�����)��,EYP��s��p��8���|m�B�`ŝ�FYS	��a�T�볡��l�0����}�.Q�l?�P4�Se��������
�Ɣݩ��qüGz[;̺�gN�9r`ZJ٠�zc��;�~(���gNG�L9�g*:=!�15�F�ߊ�8��5/�͢(���>.�w� �M/��C�×��FǓ�3��r�bW�O���W`�p�Bt��@��<�_V�C�{��*���aܣ�FN]K
F�I]����co����R���|X�ZQI:��
0S�"�f�>IEND�B`�com_rsfirewall/images/icon-48-check.png000064400000003402152177723720013777 0ustar00�PNG


IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<�IDATx��Y}LSW?�{m_m���L3����0�řls���3�D�,Y⢱1!!qqsٖmٜ�6�Q�������D��Ji�G�^w�+ł��|΄���������s�=�V��Y.Zx���9�,,�|�ެ8����QnG�{���}��~br�-�?����
�ղۻ�����Ͼ�`��)c��}@Q�Y��-���~�"��+P��X���E$�ǁfK�����6��X��NA���3���6��g��̊�5���S�� �AdYV��YVEonS��0�-	O@Vf\��~�������[�Pۤy��=̈́��`Ö��q\
��5�>@A����	��0zp4?���'��%��`��-��qG�Q�?���N؍hůKf3  xߘ}|>�J�Ck��N�;����a��k&�F����~,5����
�4�A�+�ay����K:��^o
V;U2���N�"�կn\:��
�`�._��]���Bf@�u��.r��
�6�Od�#��ΔrF�:�0t,i>v�7�^��B6��a+T�|�V�m{9wY�]>�p��rĺsgJ��zm��!��|Q���x�)��mB���ں��dn~.<���)I�Xw�X���L~a����i�����׬Y�F��A1&�K��7�pe~|�: ��4��me�䪵��jI��G��í�Hw��U4��h��
u�%z����тĻD��#�5��t}L�O���X_�M�hO�X�,+�t��'"xr��`L��X�K	��Xf��w�ܼ�!�c2����M�j�d.�JC�?����-f�W
|��-�X�&�H�\n��d�O�3��™:����m�����fr��H�P|p��q;�_��F�)�h�W]`�B���ZV�^�����X�(Cm��;	<�gVm��'����DQ0�-��+W���~�,g)pƸ�tK�5F��J�,,��"�7�\�Sr���du�ѬUK��K�I�h��wK9nT��E6hd����9���@���p��ÿ_�� �CK��ã�H1E�$���{ IR��C	|��ӓ��14�"|�H,�΄{-�-z1C�y�+F�hbm�����\���--9�J��ӣ�M$|^�#	�K65E�c����mmt����5i����z�.��%���b��X.EYfG{;]'~*6��*�y���J:]��wvtL
|�dnaF��e\IK�SR������4�1s��/��h����Ҥy�SJBF��]]x�+�;�;�'&�^��ܞΎG���]���4%$�;��{�Z��;dy�����tu�+���ڭ		�"A`����q\�"O�&j�Yr꼲ޮ��볛��	� ��~'m]�q<�T���'&'���>��~�=�l��e�.�]�q�T����xŚh-s�91Cu�M�Hx�˭��e��l�C���\�r�d��g�H���=�:�c?G�ߘ
-q�q��A���*8�KBM)0����;��؆
���RP������W��s�$��M�E<�s�:���'0���P)�,	�>:h"^�*x|��+�`��.z���K���e���c�����C�ӳU�{�7���>9���h��#0G`������
�~��IEND�B`�com_rsfirewall/images/icon-16-notice.png000064400000001137152177723720014201 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<IDATx�lS�K#A�6����)�S0�)\s�b�^8�ډ���n������)�+ќW������&"��x�*?w�7��e7�c3;�o�y���
��+�2�-N擱XU,4�U������:$�Մ�:����G0I	T��d�?����.X��vy?�?�L3�H�y��94	è���V���p�r�j!�@P�*'1Ϧ�@��&���&��u�1t��&�?+gP+"��D(P������$�1˙�ݹV$��Ё�Ȭt���s�[���e�L+e!��I��$0����M�b
��Y��� �m\��k-	x9{N�Z��������W��X~�qք�o)��;=���������p�����lJS�+�/���zGgPcUR�h��F�Pρ��N&�>�}�f�2����%�gd�H�+y�mlW�m�n�7d�;?`j���Vs��H>�D+����O�1��c���46Ou�x���&��s�]�h�s��IEND�B`�com_rsfirewall/images/icon-16-loading.gif000064400000001323152177723720014313 0ustar00GIF89a�������������...���```���"""JJJ���ddd���&&&NNN���������888�����򶶶���������!�NETSCAPE2.0!�Created with ajaxload.info!�	,-  �di���
���@�8�5p�{�۸�����@�.s��
E��B!�	,$`a`��i�����©�ҧ����X/(��;�!�	,6  ��a,�$	"c�b�(�ϴ��2�����[��K���ӸN��U*�N�!�	,5  ��ET��4b$I��<��uy�;�
�Ȅ>b�G��̑s9y�֋�*�R!!�	,2  �di�ֲX�DQ��H�bRUEɴ]�:^��f�_Q�#����c�J��!�	,7  �di�$q]���b�iمa�h㢶m�] ��a�.�M$��4_-66ˠ��R!�	,/  �di��DQ����r%R�
�5���p���Ěq��^-4CY��!�	,/  �di��DQ����r%R�
�5���p���Ěq��^-4CY��;com_rsfirewall/images/icon-16-database.png000064400000001066152177723720014465 0ustar00�PNG


IHDR�atEXtSoftwareAdobe ImageReadyq�e<�IDATx��S;�Za�~>������Z-�]�n���?H�*�͖����hgP���A�k���eC*���|Μ�3s�r�\�Z��=�-�gz�0�'�ͪ�/���r�4�l���h4ZL$��$�n����{�^gv�]�r���Fw���ݒ���b��#��K�C��N'�b�Xh�ߓ@�~��kfP.��f�I���@�,6:	���(��S��"0��E��0��q��\.�P($���t��H���f�:��n�T��N'�C��G�Q��Q�ӑ ��&|?�U'������N�)��R�^��x,\����K����g�X,�WI�T�?�կ�rP��n�+�Y�V1?tx�D"T(�R��@���d2�p�l0D�c�Z�9@��1+]#f�tp8�6�'T�
!�M@6�

�Cy��j5�Q��3o�;�#�_�<\_İu�!8�o���p�5�����IEND�B`�media/css/skipback.png000064400000010225152177723720010725 0ustar00�PNG


IHDR�A�
AiCCPICC ProfileH
��wTS��Ͻ7��" %�z	 �;HQ�I�P��&vDF)VdT�G�"cE��b�	�P�QDE�݌k	�5�ޚ��Y�����g�}׺P���tX�4�X��\��X��ffG�D��=���HƳ��.�d��,�P&s��"7C$
E�6<~&��S��2���)2�12�	��"�įl���+�ɘ�&�Y��4���Pޚ%ᣌ�\�%�g�|e�TI��(���L0�_��&�l�2E����9�r��9h�x�g��Ib�טi���f��S�b1+��M�xL���0��o�E%Ym�h����Y��h����~S�=�z�U�&�ϞA��Y�l�/��$Z����U�m@��O� ��ޜ��l^���'���ls�k.+�7���oʿ�9����V;�?�#I3eE妧�KD����d����9i���,�����UQ�	��h��<�X�.d
���6'~�khu_}�9P�I�o=C#$n?z}�[1
Ⱦ�h���s�2z��\�n�LA"S��dr%�,�߄l��t�
4�.0,`
�3p� ��H�.Hi@�A>�
A1�v�jpԁz�N�6p\W�
p�G@
��K0ށi���A����B�ZyCAP8�C���@��&�*���CP=�#t�]���� 4�}���a
���ٰ;G���Dx����J�>����,�_“@��FX�DB�X$!k�"��E�����H�q���a���Y��bVa�bJ0՘c�VL�6f3����bձ�X'�?v	6��-�V`�`[����a�;��p~�\2n5��׌����
�&�x�*���s�b|!�
ߏƿ'�	Zk�!� $l$T����4Q��Ot"�y�\b)���A�I&N�I�$R$)���TIj"]&=&�!��:dGrY@^O�$� _%�?P�(&OJEB�N9J�@y@yC�R
�n�X����ZO�D}J}/G�3���ɭ���k��{%O�חw�_.�'_!J����Q�@�S���V�F��=�IE���b�b�b�b��5�Q%�����O�@��%�!BӥyҸ�M�:�e�0G7��ӓ�����	e%e[�(����R�0`�3R��������4�����6�i^��)��*n*|�"�f����LUo�՝�m�O�0j&jaj�j��.��ϧ�w�ϝ_4��갺�z��j���=���U�4�5�n�ɚ��4ǴhZ�Z�Z�^0����Tf%��9����-�>�ݫ=�c��Xg�N��]�.[7A�\�SwBOK/X/_�Q�>Q�����G�[�� �`�A�������a�a��c#����*�Z�;�8c�q��>�[&���I�I��MS���T`�ϴ�k�h&4�5�Ǣ��YY�F֠9�<�|�y��+=�X���_,�,S-�,Y)YXm����Ěk]c}džj�c�Φ�浭�-�v��};�]���N���"�&�1=�x����tv(��}�������'{'��I�ߝY�)�
Σ��-r�q�r�.d.�_xp��Uە�Z��M׍�v�m���=���+K�G�ǔ����^���W�W����b�j�>:>�>�>�v��}/�a��v�������O8�	�
�FV>2	u����/�_$\�B�Cv�<	5]�s.,4�&�y�Ux~xw-bEDCĻH����G��KwF�G�E�GME{E�EK�X,Y��F�Z� �={$vr����K����
��.3\����r���Ϯ�_�Yq*���©�L��_�w�ד������+��]�e�������D��]�cI�II�OA��u�_�䩔���)3�ѩ�i�����B%a��+]3='�/�4�0C��i��U�@ёL(sYf����L�H�$�%�Y�j��gGe��Q�����n����~5f5wug�v����5�k��֮\۹Nw]����m mH���Fˍe�n���Q�Q��`h����B�BQ�-�[l�ll��f��jۗ"^�b���O%ܒ��Y}W��������w�vw����X�bY^�Ю�]�����W�Va[q`i�d��2���J�jGէ������{�����׿�m���>��Pk�Am�a�����꺿g_D�H��G�G��u�;��7�7�6�Ʊ�q�o��C{��P3���8!9����<�y�}��'�����Z�Z���։��6i{L{��ӝ�-?��|����gKϑ���9�w~�Bƅ��:Wt>���ҝ����ˁ��^�r�۽��U��g�9];}�}�������_�~i��m��p���㭎�}�]�/��}�����.�{�^�=�}���^?�z8�h�c��'
O*��?����f�����`ϳ�g���C/����O�ϩ�+F�F�G�Gό���z����ˌ��ㅿ)����ѫ�~w��gb���k��?Jި�9��m�d���wi獵�ޫ�?�����c�Ǒ��O�O���?w|	��x&mf����2:Y~	pHYs��"iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
         <tiff:ResolutionUnit>1</tiff:ResolutionUnit>
         <tiff:Compression>5</tiff:Compression>
         <tiff:XResolution>72</tiff:XResolution>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:YResolution>72</tiff:YResolution>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:ColorSpace>1</exif:ColorSpace>
         <exif:PixelYDimension>22</exif:PixelYDimension>
         <dc:subject>
            <rdf:Bag/>
         </dc:subject>
         <xmp:ModifyDate>2014-07-31T14:07:73</xmp:ModifyDate>
         <xmp:CreatorTool>Pixelmator 3.2</xmp:CreatorTool>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
��ſ�IDAT8���JCA�=����1�B�ؘ��,$`��|�`�����^��N;�T�Q�/��f	G���_f/3�n��nW����4lj�%�����-y
����s��3�̐��e�=�?]	e�Cw�����'�� �Rh�"`����7��v��F��Tk����t��p�y�����E%OPJ��"�0㖦=n!�4��"{�[(E�2�iod��	��xꠊ����G$W +���4$��W"��b9�#�xu��ճy� �ň��x�:��$xm
���;dW��æQ��u��AkGq�,aOg���;�O�EI��ˆ�^�YR���t.lT6�>2]��h��*�bq����c���*�H@�V�Ƽ�C�o�Wc�LDp
7֏�@�Z�����;D3�3�#�3�ڡ�GE��2Z�$AV��.���/|Ⱦ�U���ʊIEND�B`�media/css/medialist-details_rtl.css000064400000000730152177723720013421 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.manager table td,
.manager table th {
	border-left: 1px dashed #E7E7E7;
	border-right: 1px solid #fff;
}

.manager table td.filesize {
	text-align: left;
}

.manager table td.description {
	text-align: right;
}

.manager table th {
	border-right: 0 solid #E7E7E7;
	border-left: 1px solid #E7E7E7;
}
media/css/jumpforward.png000064400000003033152177723720011475 0ustar00�PNG


IHDR�A�sRGB���	pHYs���iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
         <tiff:ResolutionUnit>1</tiff:ResolutionUnit>
         <tiff:Compression>5</tiff:Compression>
         <tiff:XResolution>72</tiff:XResolution>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:YResolution>72</tiff:YResolution>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:ColorSpace>1</exif:ColorSpace>
         <exif:PixelYDimension>22</exif:PixelYDimension>
         <dc:subject>
            <rdf:Bag/>
         </dc:subject>
         <xmp:CreatorTool>Pixelmator 3.2</xmp:CreatorTool>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
����IDAT8���JQ����6�����1V�X�%���X� �ZX؛FD+��NL*�(�P��9��M�Y�2s�\vs��F"R���`��ށ����n��Ar	8�o؀�C�g�Q�&\���W�@_�lǂ�a^�y#h�eQy�k���;jZb?6�O�':{6��*�a�읢'Ag�p�K�o��i���e�'�u�	�i�1ЙIʐT���}<$�6usU(x��QkHn`4|wF/�E�u�~p��W���&𡳲7��� _C�;P�?��CB�T���P�2HFxB�a��U�~�QR�C��L;�"8c�:��
�+���L�T0tc�c�&�]�4��;z�i���Q1��Dc�rų�/�m�
�>c�^��l�'�b$���׼�6�aPB�íYk��0n��5�q��گ(��V_�Y�[����I�zK���HԳE8����?��M>����IEND�B`�media/css/popup-imagemanager.css000064400000002370152177723720012722 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

@media only screen and (min-width: 768px) {
	#imageForm .control-group,
	#uploadform .control-group {
	    margin-bottom: 0;
	}
}

#uploadform.well {
    margin-bottom: -26px;
}

img {
	border: 0 none;
}

form {
	padding: 0px;
	margin: 0 auto;
	width: 100%;
}
button {
	padding: 3px;
	border: 1px solid #CCCCCC;
	font-weight: bold;
	color: #0B55C4;
	background-color: white;
}
button:hover {
	border: 1px solid #0B55C4;
}

iframe {
	width: 100%;
	border: 0 none;
	margin: 0 0 0.5em 0;
	padding: 0;
}

iframe#imageframe {
	height: 350px;
}

a:hover {
	border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
}

.buttons {
	width: 70px;
	text-align: center;
}

#messages {
	position: relative;
	left: 175px;
	top: 115px;
	background-color: white;
	width: 200px;
	float: left;
	margin-top: -52px;
	border: 1px solid #ccc;
	text-align: center;
	padding: 15px;
}

#message {
	font-size: 15px;
	font-weight: bold;
	color: #69c;
}

#uploads .upload {
	padding: 4px;
}

/* added Angie */

#upload-noflash {
		border:0
}
.hide {
	display:none
}

label.hidelabeltxt {
	text-indent: -9999em;
}
media/css/medialist-thumbs.css000064400000002663152177723720012424 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

div.imgOutline {
	float: left;
	border: 1px;

	border-right: 1px solid #f0f0f0;
	border-bottom: 1px solid #ccc;
	width:90px; }

div.imgTotal { }

div.imgBorder {
	height: 72px;
	vertical-align: middle;
	width: 88px;
	overflow: hidden;
}

div.imgBorder a {
	height: 72px;
	width: 88px;
	display: block;
}

div.imgBorder a:hover {
	height: 72px;
	width: 88px;
	background-color: #f0f0f0;
	color : #FF6600;
}

.imgBorderHover {
	background: #FFFFCC;
	cursor: pointer;
}

div.controls {
	text-align: center;
	height: 20px;
	line-height: 20px;
	background: #f9fcf9;
	border-top: 1px solid #ddd;
}

div.controls input {
	vertical-align: middle;
}

div.controls img {
	vertical-align: middle;
}

div.controls:hover {
	display: block;
}

div.imginfoBorder {
	background: #f9f9f9;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	width: 88px;
	height: 15px;
	vertical-align: middle;
	text-align: center;
	overflow: hidden;
}

div.imgBorder a {
	cursor: pointer;
}

.buttonHover {
	border: 1px solid;
	border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
	cursor: pointer;
	background: #FFFFCC;
}

.buttonOut {
	border: 0px;
}

.imgCaption {
	font-size: 9pt;
	text-align: center;
}

.dirField {
	font-size: 9pt;
	width:110px;
}

div.image {
	padding-top: 10px;
}
media/css/popup-imagelist_rtl.css000064400000000305152177723720013140 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.item {
	float: right;
}
media/css/popup-imagelist.css000064400000011236152177723720012264 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.contentpane {
	padding: 0 !important;
	overflow-x: hidden;
}

.item {
	float: left;
	border: 1px solid #ccc !important;
	margin: 3px;
	position: relative;
	padding: 0 !important;
}

.item a {
	display: table-cell !important;
	display: block;
	width: 80px;
	height: 90px;
	overflow: hidden;
	vertical-align: middle;
	text-align: center;
	text-decoration: none;
	color: black;
	line-height: 90px;
	background: #fff !important;
}

.item img {
	display: inline;
	margin-top: expression(( 80 - this.height ) / 2);
	border: 0;
}

html>body .item img {
	margin: auto;
}

.item span {
	line-height: 100%;
	clear: both;
	display: block;
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 2px 0;
	background-color: #eee;
	overflow: hidden;
	font-family: Tahoma, Verdana, sans-serif !important;
	font-size: 11px;
}

.item  a:link span,
.item a:visited span {
	background-color: #eee;
	color: #333;
}

.item  a:hover span,
.item a:active span,
.item a:active focus {
	background-color: #eee;
	color: #095197;
}

.thumbnails.thumbnails-media {
	margin: 0 -8px;
}
.thumbnails-media .thumbnail {
	background-color: #f4f4f4;
	border-radius: 3px;
	border: 0;
	box-shadow: 0 0 0 1px rgba(0,0,0,0.05) inset;
	padding: 0px;
	height: 100px;
	width: 100px;
	margin: 8px;
	position: relative;
	text-align: center;
	overflow: hidden;
}
.thumbnails-media .thumbnail .close {
	background-color: #ccc;
	border-left: 1px solid rgba(0,0,0,0.1);
	height: 22px;
	line-height: 22px;
	opacity: 0.3;
	text-align: center;
	width: 22px;
	top: 0;
	right: 0;
}
.thumbnails-media .thumbnail .close:hover {
	background-color: #bbb;
}
.thumbnails-media .thumbnail *,
.thumbnails-media .thumbnail *:before {
	-webkit-transition: all 0.2s ease;
	transition: all 0.2s ease;
	-webkit-background-clip: padding-box;
	background-clip: padding-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.thumbnails-media .thumbnail input[type="radio"],
.thumbnails-media .thumbnail input[type="checkbox"] {
	margin: 0;
	opacity: 0.55;
	position: absolute;
	top: 5px;
	left: 5px;
}
.thumbnails-media .thumbnail .controls,
.thumbnails-media .thumbnail .imginfoBorder {
	display: none;
}
.thumbnails-media .imgThumb {
	position: relative;
	z-index: 1;
	width: 100%;
	display: inline-block;
}
.thumbnails-media .imgThumb input {
	display: none;
}
.thumbnails-media .imgThumb label,
.thumbnails-media .imgThumb .imgThumbInside {
	display: block;
	line-height: 100px;
	position: relative;
	width: 100%;
	border-radius: 3px;
	overflow: hidden;
}
.thumbnails-media .imgThumb label:before,
.thumbnails-media .imgThumb .imgThumbInside:before {
	font-family: "IcoMoon";
	font-style: normal;
	content: 'G';
	position: absolute;
	top: 0;
	right: 0;
	background-color: #46a546;
	color: #fff;
	line-height: 26px;
	width: 26px;
	-webkit-transform: scale(0.5);
	transform: scale(0.5);
	opacity: 0;
	border-color: rgba(0,0,0,0.2);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	border-radius: 0 3px;
}
.thumbnails-media .imgThumb img {
	width: auto;
}
.thumbnails-media .selected :checked + label,
.thumbnails-media .selected .imgThumbInside,
.thumbnails-media .imgInput :checked + label,
.thumbnails-media .imgInput .imgThumbInside {
	background-color: #ddd;
}
.thumbnails-media .selected :checked + label:before,
.thumbnails-media .selected .imgThumbInside:before,
.thumbnails-media .imgInput :checked + label:before,
.thumbnails-media .imgInput .imgThumbInside:before {
	-webkit-transform: scale(1);
	transform: scale(1);
	opacity: 1;
}
.thumbnails-media .selected :checked + label:after,
.thumbnails-media .selected .imgThumbInside:after,
.thumbnails-media .imgInput :checked + label:after,
.thumbnails-media .imgInput .imgThumbInside:after {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	content: '';
	border: 3px solid #46a546;
	border-radius: 5px;
}
.thumbnails-media .imgPreview a {
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 1;
	height: 26px;
	width: 26px;
}
.thumbnails-media .imgPreview a,
.thumbnails-media .imgDetails {
	position: absolute;
	left: 0;
	background-color: #fff;
	border-color: rgba(0,0,0,0.2);
	bottom: 0;
	line-height: 26px;
	border: 1px solid rgba(0,0,0,0.1);
	border-width: 1px 1px 0 0;
	border-radius: 0 3px 0 0;
	z-index: 1;
}
.thumbnails-media .imgPreview a:hover,
.thumbnails-media .imgDetails:hover {
	background-color: #eee;
}
.thumbnails-media .imgDetails {
	padding: 0 5px;
	line-height: 20px;
	color: #555;
}
.thumbnails-media .imgFolder span {
	line-height: 90px;
	font-size: 38px;
	margin: 0;
	width: auto;
}
.thumbnails-media .imgFolder + .imgDetails {
	color: inherit;
}
media/css/controls-wmp-bg.png000064400000003650152177723720012174 0ustar00�PNG


IHDR�0g���PLTE��������þ����������̶��������������������������������̎�������̯���������������̩��xxx��̸����̪�������̿����������̾�������̥����̸����������µ����̿���������������������´�������̿����̾����������ì�������̳�������̺����¢�������������̵�������̣�������Ĺ�������̭�������������������������������̾�������̨�������������������������������������������̸���������������������̶�����������xxx�����̮��������{{{jjj���������������sss�����������̌�������������̺����������̲����������������������������©�������́�����yyy���wwwkkk������iii���������ttt��������ª����̆����������������̝�����uuummmggg������ooo���������ppp���vvv���nnn�����̵��~~~www������lllqqq���������nnn������hhhooo���������rrr|||���zzz������jjj��̙����̖��fff���tRNSW&�_��0�tĖa�����2ˁ�W��R)��8���B��-=PZC����>��#7�I[��:�*M�����O�1XB��]�
5u�G|[ ������(,�7O�9�ǐ���Ι�������V�JT��G���k��A�v���Ǚ/�.����˔TW.Y�a!�������l}���"������a��������;�ę�����������������������˙�����������������L�I����!�IDATh�cse	�3�m��ضm�m۶۶m=��o�0Ae&ՕλU9�K��aC`��Wy�^��[����cG��9�kr�̙n�����
���z�#�¸<�DzxKL��0��$���/������0���W~�,��]VvIL!0Ck��,�e��3��<���_����r�>,��ٱ3�T�A����Y�Ρ�|�����
�9�s�
lKo�{۪L��^�c �:~u[9(g̫Ta	�w��%��ؤ@��L�a��*)
Lڀ�n�pQKaM��_SI-��@7A��w�T��gp
Tc�;]�u�uTS��._%�ԍ��o��vaq����k����e?
)���o���꧞�_riH�0�q�t��S��4�bu>��r*ڽ����\;!�	��RL��l����jY�5��Ѡ8/5�|�|�IM�N�襦��el:5MXL��>jZw��KM�i��KM����Njz�C��Դ�,��ej�^H��m���J�3*����n*�'��⡢k�4�bվ�
�Tti~
��Q�� 8�6*��GC��AE��^�QQC��D�Ϧ������Oy���w

�uROɮ��u���gP����pA���TS�ɠƷTRM�iϣ���KG�PMʔ9����fɨ��M��7ҝԲ�����&m��Ҭ����W��S7{,T1wfAaM��K�1�x2z	�|�Ͷ'�n�(�]�n�a5��((p�|u�EW�����5�q��u<�i���j�q��#���H�Z�����6fkL!0�꫒J,<T��0��,��M�)�g��,�tL�(��6�S��o��n�_����j�I�U>���U�G,��Æ`���kd��עIEND�B`�media/css/medialist-details.css000064400000001364152177723720012544 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

.outline {
  border: 1px solid #cccccc;
  background: #ffffff;
  padding: 2px;
}

.manager table td,
.manager table th {
	font-family: Arial, helvetica, sans-serif;
	font-size: 11px;
	border-right: 1px dashed #E7E7E7;
	border-bottom: 1px solid #E7E7E7;
	border-left: 1px solid #fff;
	text-align: center;
}

.manager table td.filesize {
	text-align: right;
}

.manager table td.description {
	text-align: left;
}

.manager table th {
	border-top: 1px solid #E7E7E7;
	border-right: 1px solid #E7E7E7;
	border-bottom: 1px solid #999;
	background: #F0F0F0;
	padding: 4px;
	color: #666;
}
media/css/mediaelementplayer.min.css000064400000050100152177723720013566 0ustar00.mejs-offscreen{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:polygon(0px 0,0 0,0 0,0 0);position:absolute!important;height:1px;width:1px;overflow:hidden}.mejs-container{position:relative;background:#000;font-family:Helvetica,Arial,serif;text-align:left;vertical-align:top;text-indent:0}.mejs-fill-container,.mejs-fill-container .mejs-container{width:100%;height:100%}.mejs-fill-container{overflow:hidden}.mejs-container:focus{outline:0}.me-plugin{position:absolute}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden}.mejs-fullscreen{overflow:hidden!important}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%}.mejs-clear{clear:both}.mejs-background{position:absolute;top:0;left:0}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%}.mejs-poster{position:absolute;top:0;left:0;background-size:contain;background-position:50% 50%;background-repeat:no-repeat}:root .mejs-poster img{display:none}.mejs-poster img{border:0;padding:0}.mejs-overlay{position:absolute;top:0;left:0}.mejs-overlay-play{cursor:pointer}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat}.no-svg .mejs-overlay-button{background-image:url(bigplay.png)}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,.9);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(50,50,50,.9)),to(rgba(0,0,0,.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,.9),rgba(0,0,0,.9));background:-moz-linear-gradient(top,rgba(50,50,50,.9),rgba(0,0,0,.9));background:-o-linear-gradient(top,rgba(50,50,50,.9),rgba(0,0,0,.9));background:-ms-linear-gradient(top,rgba(50,50,50,.9),rgba(0,0,0,.9));background:linear-gradient(rgba(50,50,50,.9),rgba(0,0,0,.9))}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat}.mejs-container .mejs-controls{position:absolute;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,.7);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(50,50,50,.7)),to(rgba(0,0,0,.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-moz-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-o-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-ms-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:linear-gradient(rgba(50,50,50,.7),rgba(0,0,0,.7));height:30px;width:100%}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;font-family:Helvetica,Arial,serif;border:0}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png)}.mejs-controls .mejs-button button:focus{outline:dotted 1px #999}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:10px 3px 0;overflow:hidden;text-align:center;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.mejs-container .mejs-controls .mejs-time a{color:#fff;font-size:11px;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto}.mejs-controls .mejs-play button{background-position:0 0}.mejs-controls .mejs-pause button{background-position:0 -16px}.mejs-controls .mejs-stop button{background-position:-112px 0}.mejs-controls div.mejs-time-rail{direction:ltr;width:200px;padding-top:5px}.mejs-controls .mejs-time-rail span,.mejs-controls .mejs-time-rail a{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,.8);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(30,30,30,.8)),to(rgba(60,60,60,.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-moz-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-o-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-ms-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:linear-gradient(rgba(30,30,30,.8),rgba(60,60,60,.8))}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite}@-webkit-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-moz-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-ms-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-o-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,.8);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(44,124,145,.8)),to(rgba(78,183,212,.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,.8),rgba(78,183,212,.8));background:-moz-linear-gradient(top,rgba(44,124,145,.8),rgba(78,183,212,.8));background:-o-linear-gradient(top,rgba(44,124,145,.8),rgba(78,183,212,.8));background:-ms-linear-gradient(top,rgba(44,124,145,.8),rgba(78,183,212,.8));background:linear-gradient(rgba(44,124,145,.8),rgba(78,183,212,.8));width:0}.mejs-controls .mejs-time-rail .mejs-time-current{background:#fff;background:rgba(255,255,255,.8);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.9)),to(rgba(200,200,200,.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-moz-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-o-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-ms-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:linear-gradient(rgba(255,255,255,.9),rgba(200,200,200,.8));width:0}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float{width:48px}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current{width:44px}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner{left:18px}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px}.mejs-controls .mejs-volume-button{}.mejs-controls .mejs-mute button{background-position:-16px -16px}.mejs-controls .mejs-unmute button{background-position:-16px 0}.mejs-controls .mejs-volume-button{position:relative}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,.5);margin:0}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,.9);margin:0}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0}.mejs-controls a.mejs-horizontal-volume-slider{height:26px;width:56px;position:relative;display:block;float:left;vertical-align:middle}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,.8);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(30,30,30,.8)),to(rgba(60,60,60,.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-moz-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-o-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:-ms-linear-gradient(top,rgba(30,30,30,.8),rgba(60,60,60,.8));background:linear-gradient(rgba(30,30,30,.8),rgba(60,60,60,.8))}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,.8);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.9)),to(rgba(200,200,200,.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-moz-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-o-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:-ms-linear-gradient(top,rgba(255,255,255,.9),rgba(200,200,200,.8));background:linear-gradient(rgba(255,255,255,.9),rgba(200,200,200,.8))}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none}.mejs-controls .mejs-captions-button{position:relative}.mejs-controls .mejs-captions-button button{background-position:-48px 0}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-51px;width:85px;height:100px;background:url(background.png);background:rgba(50,50,50,.7);border:solid 1px transparent;padding:10px 10px 0;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mejs-controls .mejs-captions-button:hover .mejs-captions-selector{visibility:visible}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:55px;float:left;padding:4px 0 0;line-height:15px;font-family:Helvetica,Arial,serif;font-size:10px}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px}.mejs-chapters{position:absolute;top:0;left:0;border-right:solid 1px #fff;width:10000px;z-index:1}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,.7);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(50,50,50,.7)),to(rgba(0,0,0,.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-moz-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-o-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:-ms-linear-gradient(top,rgba(50,50,50,.7),rgba(0,0,0,.7));background:linear-gradient(rgba(50,50,50,.7),rgba(0,0,0,.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232, endColorstr=#000000);overflow:hidden;border:0}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:0}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,.7);background:-webkit-gradient(linear,0 0,0 100%,from(rgba(102,102,102,.7)),to(rgba(50,50,50,.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,.7),rgba(50,50,50,.6));background:-moz-linear-gradient(top,rgba(102,102,102,.7),rgba(50,50,50,.6));background:-o-linear-gradient(top,rgba(102,102,102,.7),rgba(50,50,50,.6));background:-ms-linear-gradient(top,rgba(102,102,102,.7),rgba(50,50,50,.6));background:linear-gradient(rgba(102,102,102,.7),rgba(50,50,50,.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666, endColorstr=#323232)}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:700;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px;line-height:12px}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px;display:block;white-space:nowrap;text-overflow:ellipsis}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:20px;font-size:16px;color:#fff}.mejs-captions-layer a{color:#fff;text-decoration:underline}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:400}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0}.mejs-captions-position-hover{bottom:35px}.mejs-captions-text{padding:0;background:url(background.png);background:rgba(20,20,20,.5);white-space:pre-wrap;-webkit-box-shadow:5px 0 0 rgba(20,20,20,.5),-5px 0 0 rgba(20,20,20,.5);box-shadow:5px 0 0 rgba(20,20,20,.5),-5px 0 0 rgba(20,20,20,.5)}.me-cannotplay{}.me-cannotplay a{color:#fff;font-weight:700}.me-cannotplay span{padding:15px;display:block}.mejs-controls .mejs-loop-off button{background-position:-64px -16px}.mejs-controls .mejs-loop-on button{background-position:-64px 0}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px}.mejs-controls .mejs-backlight-on button{background-position:-80px 0}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial,serif;font-size:12px;padding:4px 6px;cursor:pointer;color:#333}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2C7C91;color:#fff}.mejs-controls .mejs-sourcechooser-button{position:relative}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0;line-height:15px;font-family:Helvetica,Arial,serif;font-size:10px}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,.7);z-index:1000;overflow:hidden}.mejs-postroll-layer-content{width:100%;height:100%}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,.7);color:#fff;padding:4px;z-index:100;cursor:pointer}div.mejs-speed-button{width:46px!important;position:relative}.mejs-controls .mejs-button.mejs-speed-button button{background:transparent;width:36px;font-size:11px;line-height:normal;color:#fff}.mejs-controls .mejs-speed-button .mejs-speed-selector{display:none;position:absolute;top:-100px;left:-10px;width:60px;height:100px;background:url(background.png);background:rgba(50,50,50,.7);border:solid 1px transparent;padding:0;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mejs-controls .mejs-speed-button:hover>.mejs-speed-selector{display:block}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label.mejs-speed-selected{color:rgba(33,248,248,1)}.mejs-controls .mejs-speed-button .mejs-speed-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li{margin:0 0 6px;padding:0 10px;list-style-type:none!important;display:block;color:#fff;overflow:hidden}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;display:none}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label{width:60px;float:left;padding:4px 0 0;line-height:15px;font-family:Helvetica,Arial,serif;font-size:11px;color:#fff;margin-left:5px;cursor:pointer}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li:hover{background-color:#c8c8c8!important;background-color:rgba(255,255,255,.4)!important}.mejs-controls .mejs-button.mejs-jump-forward-button{background:transparent url(jumpforward.png) no-repeat 3px 3px}.mejs-controls .mejs-button.mejs-jump-forward-button button{background:transparent;font-size:9px;line-height:normal;color:#fff}.mejs-controls .mejs-button.mejs-skip-back-button{background:transparent url(skipback.png) no-repeat 3px 3px}.mejs-controls .mejs-button.mejs-skip-back-button button{background:transparent;font-size:9px;line-height:normal;color:#fff}media/css/loading.gif000064400000014120152177723720010532 0ustar00GIF89a00���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~~~}}}|||{{{zzzxxxwwwvvvuuutttrrrqqqlllkkkjjjiiihhhfffeeedddccc___^^^]]]\\\[[[YYYXXXWWWVVVUUUSSSRRRQQQOOOMMMLLLKKKJJJIIIGGGFFFEEEDDDCCCBBB@@@???>>>===<<<:::888777666444333222111000...---,,,+++)))'''%%%$$$###!!!





���!�NETSCAPE2.0!�	
�,+-�[	H� �U���ʠÇ
"�Q!A�
;E�ȱ�B�|���ɂ�\	����'M�`�r�)����F�KBS��'�k�)`
P��nTp�@B
9��X2���D4Kւ<�(�g +T�8��A�n�2���I`)F}�HR�P�u�`Q�S����y󆎤�i��)�V�`����9���}XF3��<Y�9�#Gv�szrT�Hp݀��U����EQÁ��>�(�'�-:��;�Jm��c�(�O���)}�Uk:P[���0#u�c���m��{��`G��aX �܁EbCTX�B��'���(=T(�"��@��1����#����F8~�Q1��B''J�8��
�=n�c�Ci�I�x��D�a�1�x�@)�آ@Rh!�[
�a�%�`��	рn�)'A�dR�xs:�2�P m�$J$��ґ%<���	-��_OD��'���	)dzBxv$JJ��>���fzi��	J0���Z��*O�����TI���E�ɡB��N��'
�F*h̪��F$��b�C$9�:<�A���EǑ(r8��T�8ԋ��GJ��B�@�a/AT�'A�1��<|:ԫ���Y�TP1��r�S!�	
�,+,�[	H� AR�̐��ɠÇ
2�Q��	)�D�ȱ�"
B��Ц�ɂ�l�\���ɗ�
Ud�A���*
TI��U�
�a@S���vTH��C;�1��!���-�@G+6����lt����z"pm@���x4��p��5��ӪS
�L�ț�E)�>�T�83YB9t�1^P
����V��p�ڠ�Pj<�����lM�ĥ�)�Le�=V�~$�"��*�fP�CQ'������B���p�3�:B!�JDNj����c�����Q�e����X(P�i0��
"Y���g*�TBJ��I3�` fX+�4'P%<���	-�%bA�0�����
(��Ž'q��r�o�AG$�����;�(C%@
�Io�A�����<�^���Q%�}�G
L�8��@�H�U*"(R��#�D9�'�Q�!�JMA%ztJ'����c�F*餔V*�';5�!*���G�8�CO4�`&q�a� &BT�8ě���DJ]�E!U��81�K���k�p8�&D{�&�{�����9��@�@B	��q���T�Q+A�t�DhxbP&p���I��KP(](�/p|:*��"���@�L(��(�T��+�ź��bF�J8�G�y�F]��*Ȫ��c�!�	
�,-+�[	H��Q„�#ʠÇF��a�> E��q`'Cn����ɇk:���a�ɗUY򈪁���IS�LU�
��A�b�U�V�Q!��8���2�^)��5�+bGQST�8���F��H�,��U�c�6��3��)R���J�*3"D�8����c+���	��gd��'A��l��Xh"�Br9�Y	���)�U9L�u@f���O�Q���l��c��L��;�'���ȀQ�Ҏ��<��kA��T�,7�	����o8Д?���Cf
����	 ���G�'y�D(al��&�� �F �@p�@��a�X4��@�,��p�:�`#�����/Jh�%�Pa��:�b=~�!�L1$:�"IJ�d+r�0��m�E���
)&q�#+���`��݅��*ET�@]i>ԉ��@�yB�I@�]�]r����褭�BI$�8�'���	Q@��[/yv B�I�����v���I���ƭr02�F�d��>�K��!DZo�G�p��QP��'v����r��2�Ʋ�I$
	U���1�I��хp|bP&m���T
#}�!ɮ&�B
+�Gw!��g��'c$��]Rj�(fHlF�Ċ _ �� w\0"�"R���0}!�	
�,,+�[	H�`AU�*\Ȱ!(8M���԰�E����8q"HC2��
�R�\)PU�&M����%�SF`�<!�AQ}���#J�*M�Fsr�R!�A� -�RC$�F+��ȱş��jT]��'�qp���SAHRd�0�'�@5�V�����)sq�d0եJP�"x�U
'^U��U�`nwn]�V@k��U��`E"Qل��G��Te&[hF��j,���;��)N�T6�ު�1i
��R�4��pCAT� }�NPM���X$Г(P�d��C��7���L(a`�q���W!�d�:�{=4�f��ńF1	w�ܠ�x�ъM��v�Iqb��
*}p����J ��B��"�������Y ����{(~���1���]`IPO`@@ ��b���)'
�q)�DRTwC��'�5�	`���%!!���s��p�G�v!�)e���P��'cT��vY�æs*��B��!��\�t*�q��+�|A��@**�x��@��
@�
�b�p�iA�BG�(Պ��:�B�k�)�!��`�J��J]'t���}<ۉ����'u���϶�	���l�X����A�ر�!0�W�"}���m.��t�!�	
�,+-�[	H�`AS�*\Ȑ!)9S��)հ�Ł���CǚUC.�d�#G#�D�$X)�IB*)L�je)R ���˨��� q"G�ET~�d��ɠ�':t@iTҎ'N��b��'J�0A�ʠ�A�:L%%k
�*�T,�E,%Q(��$��۷'��t�Ů(�DZ���%���s7�P"Ki�5���Dy���?-�f�!��)J�0�\��H�SL��-�T�LeyN�����/�Bt凑5j��)x�V�̐����ĭP	�23&N�����~C����t�߆TrTAڳ��G՛��q���{a�`&W�܅�J|��q��w �7yr\�^���CW���IB�rF	�yp�n�)�
sA�'5�H�*�(*�H��](�@�8QAP:�G��I'����@�e��P)��A���ȓ_z�B�1"�sbv�d�C[(��m~)����s��@�����i���|�P* ��M����i��pi�i4$	oЖ�H*U!���
����YHC�D�G����%�k|�*U��)��A����G*�"���m��ɑ�8P��F�B*�y�h-o�/ "�)+��¾5����
���@l<�k���@��`�
X��!�h	!�X�H!�	
�,+,�[	H�`�R�T\Ȱ!CT~�dy�ɡŋ�4Q���TC2,ť#%P(�\Ip��(!�d�j�'�U�9ɱ˧��L�D%��8�zB�I�Iř2%)���t����I�~�T��,5
�z�u+�H+51���&�����v%� t������Q+Ga��e�ES�̌�sif�'9r<iRU�NBg��4hP'ѨS�^ͺ5�Si	����끕�i�R���S�5�(N�H!�w�Er�D�su*)�Q$O��>ң�����ڵ�h��ԟ�o�_])��'�؎D�tDթF��mG�@�D�G�8��-(��Tl���2� T�5D
%�ض�*�d�Y �a�u2���C��*�\�6	�qtf�=�y
Q!��O`��$h`%5�X&<$���dj�b�Q��6`�l�D�d~��Bc�f����)�HqC\��	t���Bk�gk��
T�h�rh�V���!�	�<�@��6PAw��),�T
��`J����i}��hh�Gl6���������	dzp�����|B�F+;$���b�A��ƒ
(`������ӋjURZ%�u���@�{C)ԆɊ�H�ɑ�8P�
�@L�'{�a!�!�	
�,-+�[	H��A��R\Ȱ�AT�޼AdʡŋY
�ҥ˗A�0�\8�LǎfD�\I�Ә�]�xb�0UE����� �Q�V���Ϣ�3��M&���h����EIt$�1�� )I��<���%O�`L��9o�|Y)�&f��m���۷t8�����,�.�bW�S#Eu9{�*��١h��H]�DA3W��O�z���j��E�:�f�K�W�Yq@@�����
ȓ�!�8CD�K�HH�*i��j���9�wt%ȑ5�+U�.=@➞�CN�A	�K�A�����QQ
~�%�_n����W uZ�'}���]��W�k�"t�Uwv�l2�@�}'@�9��n���ùȐ)��Ax�Sҕ���AH6`���&�9$�I&��]��E�0��X�I
UVYA ��	l��C%�!A�UJqQ)E��žz��PtV�É�p�I�U��{�pB����"�B|�A�1d&20ʧ�-TH�:�E+��!��n� �ץ"�|��C��Pi���H	��Z"Eƒ�'�0�J1"��!�{A�����Z��
�6 �
r\�
��
Đ�R*F��F|�����jĉD�F�v`m�ubC�6t��A���������a���J!�	
�,-+�[	H��A��P\Ȱ�AT���YTʡE���c��Ht޼�SH�E�~X ��*���3RΛ:1O2d��ϟ\th�OM9t��<hЧCL�bdS�SMZT�#�S�
	��@��2�!�
+Y��4�@T�8�%�jЗ.]�b�p��@y\e0�2�
F�S��Ncw�s�\�>�Z4%G3���zE��%7`���d�)�:EE�D�$O�/�.�re�����SL!�h���64�^�	(�K�X��N�'X�T5��@O)ʗ�H=AOp�p�w���Ia�@����J4�@dh�v7h��$Q(�ā\Td���0`+�8a�Y�FH��Ň�t���o�4�
)rɇ�@�P���@��`j�(�'�P�Z+�܀b���F.TJ!i���pU�t
'���%C��,�G*c���ĩAfPy�(�hb'C�� ��$�T#Xa��YtşZ�S'O� )�9�J���Ò
�ä8Dg���9��R�%��)��:����rP�@��aD2Hq#A��Z�C�ܐi
��G'4{��DhD z$=��<��
)F��¸�a�z.%�`xч(Q"���p�b�)&4�Kn{�y�͒�°�	)4���%\P%d$G�tJ�;media/css/mejs-skins.css000064400000014071152177723720011230 0ustar00/* TED player */
.mejs-container.mejs-ted {

}
.mejs-ted .mejs-controls {
	background: #eee;
	height: 65px;
}

.mejs-ted .mejs-button,
.mejs-ted .mejs-time {
	position: absolute;
	background: #ddd;
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-total {
	background-color: none;
	background: url(controls-ted.png) repeat-x 0 -52px;
	height: 6px;
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-buffering {
	height: 6px;
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-loaded {
	background-color: none;
	background: url(controls-ted.png) repeat-x 0 -52px;
	width: 0;
	height: 6px;
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-current {
	width: 0;
	height: 6px;
	background-color: none;
	background: url(controls-ted.png) repeat-x 0 -59px;
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-handle  {
	display: block;
	margin: 0;
	width: 14px;
	height: 21px;
	top: -7px;
	border: 0;
	background: url(controls-ted.png) no-repeat 0 0;	
}
.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-float {	
	display: none;
}
.mejs-ted .mejs-controls .mejs-playpause-button  {
	top: 29px;
	left: 9px;
	width: 49px;
	height: 28px;
}
.mejs-ted .mejs-controls .mejs-playpause-button  button {
	width: 49px;
	height: 28px;
	background: url(controls-ted.png) no-repeat -50px -23px;
	margin: 0;
	padding: 0;
}
.mejs-ted .mejs-controls .mejs-pause button  {
	background-position: 0 -23px;
}

.mejs-ted .mejs-controls .mejs-fullscreen-button  {
	top: 34px;
	right: 9px;
	width: 17px;
	height: 15px;
	background : none;
}
.mejs-ted .mejs-controls .mejs-fullscreen-button  button {
	width: 19px;
	height: 17px;
	background: transparent url(controls-ted.png) no-repeat 0 -66px;
	margin: 0;
	padding: 0;
}
.mejs-ted .mejs-controls .mejs-unfullscreen  button {
	background: transparent url(controls-ted.png) no-repeat -21px -66px;
	margin: 0;
	padding: 0;
}
.mejs-ted .mejs-controls .mejs-volume-button  {
	top: 30px;
	right: 35px;
	width: 24px;
	height: 22px;
}
.mejs-ted .mejs-controls .mejs-mute button {
	background: url(controls-ted.png) no-repeat -15px 0;
	width: 24px;
	height: 22px;
	margin: 0;
	padding: 0;
}
.mejs-ted .mejs-controls .mejs-unmute button {
	background: url(controls-ted.png) no-repeat -40px 0;
	width: 24px;
	height: 22px;
	margin: 0;
	padding: 0;	
}
.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-slider {
	background: #fff;
	border: solid 1px #aaa;
	border-width: 1px 1px 0 1px;
	width: 22px;
	height: 65px;
	top: -65px;
}
.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-total {
	background: url(controls-ted.png) repeat-y -41px -66px;
	left: 8px;
	width: 6px;
	height: 50px;
}
.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-current {
	left: 8px;
	width: 6px;	
	background: url(controls-ted.png) repeat-y -48px -66px;
	height: 50px;
}

.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-handle {
	display: none;
}

.mejs-ted .mejs-controls .mejs-time span {
	color: #333;
}
.mejs-ted .mejs-controls .mejs-currenttime-container  {
	position: absolute;
	top: 32px;
	right: 100px;
	border: solid 1px #999;
	background: #fff;
	color: #333;
	padding-top: 2px;
	border-radius: 3px;
	color: #333;
}
.mejs-ted .mejs-controls .mejs-duration-container  {

	position: absolute;
	top: 32px;
	right: 65px;
	border: solid 1px #999;
	background: #fff;
	color: #333;
	padding-top: 2px;
	border-radius: 3px;
	color: #333;
}

.mejs-ted .mejs-controls .mejs-time  button{
	color: #333;
}
.mejs-ted .mejs-controls .mejs-captions-button {
	display: none;
}
/* END: TED player */


/* WMP player */
.mejs-container.mejs-wmp {

}
.mejs-wmp .mejs-controls {
	background: transparent url(controls-wmp-bg.png) center 16px no-repeat;
	height: 65px;
}

.mejs-wmp .mejs-button,
.mejs-wmp .mejs-time {
	position: absolute;
	background: transparent;
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-total {
	background-color: transparent;
	border: solid 1px #ccc;
	height: 3px;
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-buffering {
	height: 3px;
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-loaded {
	background-color: rgba(255,255,255,0.3);
	width: 0;
	height: 3px;
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-current {
	width: 0;
	height: 1px;
	background-color: #014CB6;
	border: solid 1px #7FC9FA;
	border-width: 1px 0;
	border-color: #7FC9FA #fff #619FF2 #fff;
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-handle  {
	display: block;
	margin: 0;
	width: 16px;
	height: 9px;
	top: -3px;
	border: 0;
	background: url(controls-wmp.png) no-repeat 0 -80px;	
}
.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-float {	
	display: none;
}
.mejs-wmp .mejs-controls .mejs-playpause-button  {
	top: 10px;
	left: 50%;
	margin: 10px 0 0 -20px;	
	width: 40px;
	height: 40px;
	
}
.mejs-wmp .mejs-controls .mejs-playpause-button  button {
	width: 40px;
	height: 40px;
	background: url(controls-wmp.png) no-repeat 0 0;	
	margin: 0;
	padding: 0;
}
.mejs-wmp .mejs-controls .mejs-pause button  {
	background-position: 0 -40px;
}

.mejs-wmp .mejs-controls .mejs-currenttime-container  {
	position: absolute;
	top: 25px;
	left: 50%;
	margin-left: -93px;
}
.mejs-wmp .mejs-controls .mejs-duration-container  {
	position: absolute;
	top: 25px;
	left: 50%;
	margin-left: -58px;
}


.mejs-wmp .mejs-controls .mejs-volume-button  {
	top: 32px;
	right: 50%;
	margin-right: -55px;
	width: 20px;
	height: 15px;
}
.mejs-wmp .mejs-controls .mejs-volume-button button {
	margin: 0;
	padding: 0;
	background: url(controls-wmp.png) no-repeat -42px -17px;
	width: 20px;
	height: 15px;
}
.mejs-wmp .mejs-controls .mejs-unmute button {
	margin: 0;
	padding: 0;
	background: url(controls-wmp.png) no-repeat -42px 0;
	width: 20px;
	height: 15px;
}
.mejs-wmp .mejs-controls .mejs-volume-button .mejs-volume-slider {
	background: rgba(102,102,102,0.6);
}

.mejs-wmp .mejs-controls .mejs-fullscreen-button  {
	top: 32px;
	right: 50%;
	margin-right: -82px;
	width: 15px;
	height: 14px;
}
.mejs-wmp .mejs-controls .mejs-fullscreen-button  button {
	margin: 0;
	padding: 0;
	background: url(controls-wmp.png) no-repeat -63px 0;
	width: 15px;
	height: 14px;
}
.mejs-wmp .mejs-controls .mejs-captions-button {
	display: none;
}
/* END: WMP player */



media/css/controls.fw.png000064400000235561152177723720011430 0ustar00�PNG


IHDR� ����sBIT|d�	pHYs��~�tEXtCreation Time11/13/12��:ytEXtSoftwareAdobe Fireworks CS6輲�wprVWx����Q�0���%�
KС[�s����^�@
!	7�wg‘˓@�����O9�������몪�,�R��$��s�����������������������?�ׅ뵡���|���V�GB��^L�_5�׮^j(�)_����'��Uն���Y?n*�˴����Q:7�Th�T[TM��a�5�#�,Q���6� �c�*[�i4�?����CMa���X��"��k�ǻWnXw�W�.$��[l��o�j������@j�Dx�6�����s�OE^_C)ڌ��H�f����rh/%.M(n�Yc����	7	��{>>>>>>>>>>>>>>>>>>>>�m�$I�$yK)����~�/�*'y�Gy����o�ҹ�k�r}HmkBF���)�3���mkTSx��}is#7� g��v��y1��~�����{���(i��CJv��8x������׌W����	T��P%�R��i���B�Ld&2��w�w��O�W׳��ӫk�M�����gpY9��|��d}�l�����5��������t}�uzy��bM�6㓓w׃1��߻x}��7�-z?��Y�u覆����Gp��?���z����	<}�[m&��9�;#�{�gwm��ko38�ί�BCL���0�Qip".��e�L8QyrA�TM�r&nN���b3�/�h�T���=������vgx���ܥ�nr�pqq�͗9�Lz/{o�޲��-o�!��c(�)�e�{s�ak�5��b��.�dع!��8j�Aw��GG{��W���}�z&q���U��*�`����=��O�i�q4��\���s�q�!O`��6�񏂪�)|Y��ƹ�tzN7���3�������u|Z��Ѫ�b�J>_4@�"�����L�!���}`�����~�=�&�@a�_����Jd29k�k-���O[�b���$���zf=syd�K7��.[6�]���u�B`n�%�©R�����CY[�����!�����୵D�#p�������EQ�JS�1�- *�[�Dm;A'�tN�E%��x�|�]�z;|������b'4X�0:��2����9~�ぐ��AN����������M��7Q�f%�%�_b���9Ky�@�L��]zֺ�����?�DU��c�o��ar�Yh�u�9ў�Dd*�$"�&�>}��A�&̒�bV�%ɗIc�/.���tF�r�ع1~W�2�ʈ�8�6�'�W�Z	��J�gm�b��Jy�����<��@������Z4�������C
���6k3}iFK������#i�Т�[./�V �lb*�_�kc*���5��'��2��G	,��d�)Xtn�EO`Q�X!���#����H7@,��Ĥd�@r^�!S�Q�	Fg3����,�G�Ylŕv�s1[�dFE=ߺ�#Cs8A�D�4B�Գ�&�3���Jyb=����]�Z��ʱ�U!���؛�	^=��+����t�
�'�+�ܭ��A���`��١c�J����"M�G���qj��5_����4g]�;���T	#_`��o$��h���f�z_#K��	M�@�/�4h�	4�
m�.7)�r�����^����w*��z�lL�&��W6��p��x�Ҝ��"a��XC�c�wG�`z&M�HZ�C��ܖ�"j:�!+�M9C�p2/�z�g��;{T%3�$EQ9����EьD�u�����-�I��g�]�y��R%OR�j��O43��vc,C5�`���B<��X"�CE��9�V�n���fm�p5S�&�XZ&K���F�[X2w�%K"�Gb�C+�=Z���X�xx%wb-�Vp�#L����:�VY���:�,P������b&��%R��-��H(�&��@k$�	�."�؅D�"2��e�|�&�x�~IL�\�N&��s�w��"q�����
���.�~eܵ�W�I����pOW���i��BL�G�O�ۢ�a��7�S�d��6�O�N�-�le�_��7$�.YQ�N)S�����	��:��y���K�Y�c��߰���RSҵ��9��\�^��M�i�	_��|�����t!�P���D�fYFD�u�HNV8c@���gW��^�kcIz�����j���5j�8�c�?�0l�w�@����:�k����v�-�,Q�����U�,Z�в��Ĝ5w,400�U��h������<��T\�P����4��
��/���F�f��)��L r&�uiz��fBU~.�Y4+�$4v�#o/]W�9p0�ؐS��L��%1��̳@�*�/�sEm;B�Lj�c�����T8����$f�&q_���kJ�(fD3�l�7Cc�E�ZZ�k�z\�,�h�ܼ���EyŪ\]��63C2��ia��b�KTA/zkL�Bu]�C�{����Y�|XhԈ�o�&�B]`rɆtu�*fo ��=��A���[4i�4�b���[�$o�{�A�t�b�Q���W|�u���5~'8�&K�I"#����I^��0E�{��:�&��J}M8,JF(^�I��E8]D��Xz�b���SD˒$F>Ȗ)I���#1[M�7�qFe5{�mm�E���[�,,X�'��#q?E%i�P*�Pph�Rb�#�4l6ٟ>��������ؒ�3�Pc%]�]�e2z�dEZ1���T� E����,�H"��
[���6�hl�4�n��V)pEع�xT�>:�	�fx�u�!�9���X����z�����ܢP��U�0d;E٣ԂyFI��vX�R�M�mc�>
��UܠyR`b֭���(o:ס��T�>�]M��›��+q�Y�5�0��'��ą̗X4�4X�7`l'�9�C���ۘ����a\�4��TÜ���Mxs��Wx�<�ˤt�0��`׺Pk���E�,�M7N�V����
}���f�y�r~IK�g�x�E��g��W����-r�Q0ΛD`ʸV�7�"��_(�9q���1�1�`�k�G�~)�:>�ke%DN�EX��NI>t#���_�Ҙ�!���b]���:*�UR�{�x-(��5P���q&`����ʖ����؆5E���,id���G�J�:\I�H�m,��93�ZJ�,�#eh�oF'�w�#���5�eJ�+%�tM�8���/D���'�#����
#���q�h2�W&��H\��e3RWq�C��\�]R�\�>i�%.��ôG_Ci<b)���y����@շ��H�~�?������`�#V��Q��<�=�g��ᰖ �GP&�m4�}&I�O�	,`?/ �D"1�Q�v�s�܎|-��$���A��g��_��*z���v��	��:¶ ��t^b�
u��V�ɳˊg��	zo03!ސm�*A�13�߹�x�F"����-(��_3J��"�e �Yr��|A5�#�
�6&ss��8��~��e�vD�Žh7 ڈ�Lђ'�Yr��"A��#Z�}.�v Ϣ����j�|.�T��e��H��I[��I��b_��uz īt�wۑk!ȵ��Ղ\�E!����\�gO�|��閂tˎt7�x?P��*��%��m%���v���8��������>��x֎�kA��ֱG)7�z�ސ(�B{I?��e��v�d�{��!S;r��j%O+]�S��V+nm��O��yC�Y�/��{\��d�[D��Ĕ�;�T�Q)e�u<)���8w��/%�&����$��%¨��-��A��g]�K{_45o��;��׊|���Rn���a���e��٬
���c�f%����c��TR�=9��qwύ���y�=��,ԟz
?��nPU5�����|���|��L�q5<���:�(A\}h��Sp6�@�)��~��-�lIw�����y�+��+KY4���j�:���a6���!��M4���P*�m0[-V6���#+Ƹ�ݿ'��hla)z�L_���Az2S��)�.6
)x[�����^R���޹<���������1,D�
�ܓ�ߔ~����k$T��#eS��)��s��Y��eS|��O!."?��^w���ᡶr�[�%k��nIYb5_��ܓ��O~%{O�/^!Å^�����z���΋ҧ���XP8��z9_,󨽛.��U~�������	��9#6��A`�aA��u� 
��������ߢ�`4|w}0R�+�c�VG{��QA	7��~�c����7��������`����#�|+�뽒~�s����[O�����ă���AoM;�q�w	}q�����X��Fi�K
�1p�Ȭ��gJH��ȕV�3��)�_w��:�ٻ��4�1�8=��/�~�{K:D(�{!<q��ӛ!�e�K���H#��ܓ-���ho>T��6���=��{�����v���J��N��:�8:���`Õ2AJ��9��3Q9�y�T�uZ��j<�c<_��o��:���(�(�ӿ5L\e��*���@o���Y����yJ��o�I�W���Z̨%��is*����'��	�_K��G���O���Y�������.�hVCX+�gṜ�E�Wj5���uI�(���<7�ů���L�ќ�{�#���J�{�%f�����	�sa@T{C�gJ���t~~�l{�o�*�X�惴�9��M�
d�'RF��V�N:w��Φ��s'��t~���;	�I�XB����$�{(���5y�D'�;	�KhS�v����@ߑ����$�+��NBw�=�ЉzB��;G'�?d��wҹ���t�s��!ߧ,Ş���Nfw2�Õټ�ٝ̾w2����E�]֯߇�f���2�˼�d�$��*�Νt�2�:��I�*�|��w���$t�y�I�NB�H�ȼ�$t'��̻NBw�FB�E�]'�;	�e�u���6>�]g�uҹ��]�]'�;�\%��W�]'�;��e�u2���?�Wą
V�3o���~��'�]I뤇���w'�g ���%���"�����!;j����w���t�٠�[�sa�H�2���y/Y�I�����x-0<?�㵨1��5�o�m_HnS��i�~*�
-R��;�GY��sJ?`k�5x��5m���5�q׶h��>ڢ̘��-�DBO��+�n$��Y����FF��f'�;���߳��K
��	�����`J���gj�>~v$��z����l@kꁘ)?A[�h���'�ߤ�C���Җ>"���jP?�͌�GX��s����r��<��/&��k�9�3x�fX�F�H
$W�3��A�$~|;��d��ߴ�G������ߝF���^��F=�ǃ����mNX��%"`M�B�~3��_ ��_���=�h�<�
���;���O�H�/��8��󜍽�Vo��;`m��2-|;:�38�p�t�����J�}�F<w�sz�����p	�7!ƴnA	�.1�2Q*�PB�l\�h_�9�S����X_����޷&���Ni�'���5"�//�ٗ_G,�6��W\�:R{NrH��x�i�/�C��#�
y�'j�+`�H��;刢�u]��(���"?I�����K)��y&�F��o4+M9�$�zc������<�爃_�	�Y�~U�)�}V�~��-����s�*|}�_����^�;�e��2�5���E�Z��6�}�a#ߎ��(�ȼ'~e��w&����y6�[���-=�0a���tF{Ѓ�k��b
à�~�&�[��_��跎�[�"oI���P��RZ��D��3z�F���ô��y>�[���sz7�6|R쭺��2�
�-��D�w������u�"�I�ٻ"��pC;_��~r�����T\6�=��.~��`b�c�0er}�p?K��V���^����*w�ߒ��j��,������,���,�n���n�~�݁�B?ߙ��mk��g�<��@_~��*�췔�J�m�eE��6��KҮ���;�Q�Elx�Q[ϴ\�kSf�*G��+f�R�+�Lv�<��q��+F:vD�~܇�����63Z,��QS��>E3*2dj��B����]�G�m��)��!�	�k�g�L����o/��F���,CO	k��+j�~��5�q/��$녶���{V�
������-��!�{Kޚ+�I>Nyn�^��~��w��ԷK���3�qy�Fv�X铜(����e礖��U�Am'޽��xun�_�5�y83���Pņ���u�s��fJ�@Ɉl�����2^�$X�
�(�ʧ�*���u[Do�
�<'L�lA�]qBUn���Jl_��{�G��Nɿ��o��zϵ�q�6�	�	\�>ږS�qF�}���k�%YDI�5I�E-'<���=�������#�nJ��kn��ܑ��>H=��lܭ7'�R"����֊�V���0)���X{EY�/R�kwwn떷�2�|�5��D�PL�	sz9�a���Ŕ0���f����qpE�9�b}'����w�
��%���O�ق��!����S�/$��D��״�u�"��R���X��i�������'��%Rw�����Ɏ�nY��~��[?A;�[v�Kaͷ�j�/�o���ӡ,�9y�Di���B���O����fԺ+��h����w�g�'g^���|�]�*Գ��Q��S���5����4�݌�u;E\��Y���,���5Q,����H��e��g'��!����}I��Y���Nx��~����c�sZK,a�$��؎�_������ڛ�ʷ���}X�,�3���i��8��h��q��������*��w��2�^COV��q�����U�ZS�>�����;��)*�I��B��c%�K�w�*���)}�LY$��$vK��=�c�=H��S��:;�zϷ|xi�hGr?�vJ�5�h@�F.E�(�uI�L�D�|i�m/�8��I�{�a��/8�	�T��j���%��z�!�(Nt�F��P��UOı���+�
mj��T*}�e��6�v���@����!���o@��OZѤ�g���U�d'���dG�!�|�g��j��3�ϻ�?��I���^](�bs-m�U(_A���$+Z��C����Hh8#K%�9����kbx��n���t
D���^�3Zs�˼��4*��Hď���5[/��յ��A�����Z�ی��8����F�*���=���o&^־1�ϡ+���ht0�����C���M���d"�ѳ���=��'�Vڨ��ש� O־���E�����wף�}���qw��p_A��%�~6��)>sn�U�p�_!���	y�����ݵ@�GI@`���]�0lF��H^/�?���1��xxu���Zm�f<}��v��ߞ�a�����`n?vC(�����L����{��P�wA��F�!\���r~F��S�+�H�aLo�_n�G�s�g�����g� ��/��h���<����a�o�dͣ�>�`����`�>ߜO����wsxzq�G��=�y�Ǯ�x�W�\ϧ������������}�$�����J�4l�VKË=��s&õ�z�-y
x�&�Ki����B�QcY���؃[)�J�!`�����$�O���(���:�gċ��J�ZZ�ZI{����l��J����\k}i%������1̴�f�4�J�Vҡh=�5(�%�zʹ���P/i�Z{�6�@�hc�z��_��/���]_��Ԓ�����FMO닫�����jP\�uWk�k��v�6��δ�3
����i}aLm@:_�
���<4YEs��FF�~$���?�|UJ3�ؙ�'����g+�x6�O:Ӕ��=��L+A{Ji���c��WJK�4����ZPJ�|�G��@-��j�Y����<�.�R�%O�0U(�Z��u�	e���Z)TK~����4�`�Z���}��4RJ�VZi%hA)����O�L)A�Jɟi%_+1����VZI�ǗZI�K�w�ŏ�j%��ܕVZ�%�%h%��Z�@�k��aj�QK�V��*%�=�i�?ikJi�%�B�I�)%���0���x������R+ʹ����V�K�������O"����Ks�$#RK+�o�𓶠�fZ�k%��'-��:�QK���O����RZ�Hn���QZ�'}S)��g���?)��'}S)��g��f���R�g.~�gJ	`r��o*��|���H-ʹR`<#�H�$!b����`Q��Vڳ�V�i%�̢Y4O1���g+���Js��f�V����\�č���O�`Y0>9�^,�:׋3\�O�q]�7>�)�j�����7�.�W���B��m�w�\�x�o�sq#��ѱp�;3�H��t@Kѓ1-E�Лw8%����/Cq9��kz������={:ϨttAN�����3����+�y2��P�O��ґ�_�z���-}N{�ԇ�g�?��x��]Rf2�{���g2�����l�E�-zi�)Op�gZK��.�����-��'�|�cN�ɓ�ٯ'�D�	�0Mޓ!�qFOh��z�ޯ=���р��٩�/{����@��S݂�٩����.kqa�����0ӆ.�Mh�W&�\^]��*N����مm��������=�;$�����������|,�L������B��9=�
	�f|xF�c@���g�z4-��'₯�/
�@�}
"}���
1����3�mE��}��X!�7`.@�7�'b
=��t�����Cr�Mhj�H�Х9�
f�[6''���)�w�O`��S,ퟠk��$�������c���&מ#�#t�Pk�-�m���q�9%��/��M�y�J^�+��}�ݹ��i�s��ι�'�_\(�������b�F�HO�`b���h3�!]�����O.py� �3�wF�tb<C��������0�=x��ǜH�v]��t_���#υ��� d~�7�����3������	�x3��H"e��#1��J,���<�V������x�}��\;�Y;�1F���F���h�����&�M::�Ǣhi���H����ZH��c����}����EF��3�C�;a�G��L?f�Q=4��`���Ʈԃ�M0sB?H�0F��@��YmE^�����X<�i7\L�)���`b�<6%��[uR�Ve%hQ;�ȍB+$W�������*��~q�-���MfqmE�d�,kߍu�#�WMg{�m'W6��%2`���c����*�;<8쬉Y\Z�nMpiM�Ԛ�Қ`�5��5��YrN����4k"ؒ5!��ք�k�	���5mɚ������5�ݾ5����5�i�'hkMx�0�Z�&����D�g-�	_ST��pM0�ڴG�g�Q��=��
x�ؚ�;��&t�Dm�	�HQ[k"��-�	�e��N {���lO"���JgM�KkB�&�B�7=�tL�V~	��˸fK0g��	X%��7�����l��qO0��4ح8(Y[�P���(��|�[qR4�H���b*�
U짰�G̨�x*�V\�f�
��[qV4�H���b*�
U�h*gn���5�yN&�Xn��J��<�'���u�p�_j���#�n�1p�*3>{gWt�b�N��I@��b�pp
�g�X�%���#�(�3|G��3	@�1�	Y��6��np&nNǘ.��gp!�_LE#���`&;h앳�3�\�s3<w�2bh0
G\\\��w����F�;F܆�m��aF̆����YF\Q�q����̝�D`��AQu�N�g��t�z
b?��vNn�)������5?9�V��K�fTՌ����n2�x�j1?��ۘ��.}�g�����n~����ԟ���g��Y�$���V0�O�d#��b�[�Ӧ��n$�7����i��!�y����wji�J
�BRtn�&nP��u�S�/r�~�BTyBRQ�@�GIy$ʶ>�dq,��z�%��bq�ȸ\M�,+2��d�mF��NU�e~D_�l���&/c��E�6����rԠ~�Ӧ�����ڎ7O/���>u̠:u�����qa"������N9#�cO7�}�d8��+:"U��D�P�	3�
5s����ɵϤ\�y�R��+��?V@E�7�^;	�
	�ރ-��77>~B���	�}?v�Wk��r�KM��Q$f[$f[,���dç8��z��(l5
���}�F> 5����q�DY��N�D�(��uc��1�Y?
Č�o�H�kI{���䰌6X��$����4�l`F+�E+e*�����Z�R�HT �Y�y��4&����T�(��8	ƒ�㻵������Y�{�@-��ܰH�+1h��n�����ׅ1J�A�|� Ŋۏ|7fu��iP`���@qc���5 A�ǐN�a�:Pf�t���+2M"�S簦�Т'1L9�n�������&��k1��^QS6	t��9�ϛr��k1��ű�t�D��S��Oc��2�Y[��5:�0l�	^���s��Qe}�}�
.�h����
�e ��,�TL8�T�P��S#�q䱺<��l��^m��ņ.�t�U�X{��
q߀@n��i�.^�l��~�J��FA�u`?�u�kc��Bļ��u�;��a��M��O�74G	�h���_��O��Џ���~<���x��V�ȳ�_���u��ƓgS�ʓ�l�U�<+��7!l۝gJ�9�^�~��RrH'J��Ϣ��GB���P�Qrt+�N0q��4V�n
���V|�J����
�2]
�LJT�F�A���a�=aaQ
 i��)���2��)�AN�p�q態2��E�QSm�"�֮��Mݱԅ�c�T{8���n��Z������dw
�z��ʭ�^�`��p���L�l.���8Nv�;}��2���J�Q��0��+��㑜�^?t�ث
a�;�������`V�F�������s#iW��9���arNB��Lx�C/�N��~9n��yo�X�#l�5F�E�,���f7B#�	�Q���F}�Or"�N�8Cn:�"�L5c��z�-*���}�'<�p#@��hBX$K�1׍º0B"TS�A�\Ǐe����B�6΢(H������:)��(@'L��E��Qج��K�y1�thZ+�(j�1�,
|�0c1���qB~�0�(���uת"*��:��E�N����,�n���t(����X�}��AP�0���x
&��Y�q
0s�_x�{�S�(�3��p7N�G�{���|/�	��F ��L�`t�]S�u�qk��P�ܞ_�;n�NQ������"�.`L:��Jk,[�3X8�(=Q'�b]��l=EM(�fF����"#1UFs\�\P&J�(��5��T�5�Q��}2�x��x����,�-n<��h3�TuCJy:���&=ɒm<�޸�c!O��<���0�1��(O�7�A��b�vz{QlBѭ���(j�k��T)�J>� w؏��QC9��GAvĔ�R�s�KX�PC�9rG�	�5ԗ�A��y7U޾N�b{�Z�$�۬5p�\-d��&�Ic@��֢'4��HB79�R6�k��
��ˌ�t@�ԃ�0��E
���q-���`LA�\��Z(3��sef�v`�Ie^䏩�\(��,N��P��F���’(�.誨'QNv:�:N�
@	�98�	���ud�y=��L����:�ġ��\fn�J���q�37��0DL�0u�Ÿ�e��D-����@Z��!��a7b�*�C�H�
��'ҌD�Ni0ɑC�Dk��uJl�����d4�L�A�I�+T۩G+
Ld+ap_�0`;x�����s3��0�c@CC�;3�����e��� 3��U��)��Af�i<����qf����A3==3��w��@_J�x��[�$��E�n7�slO8߿a��o`��T:������0j����#�~,x���/?�|�֡�G�o u.�X#i�`���M*����)Dh+r5YF�k�3���/ru)���_�m5��T����18`���P�3d�,���.��QR@���3Jt����[u	�LxD�C`�;����n�׉�V1J��2���XLn7HY(-���Ы+ǹY��I�q(~���Z:Oސ&�sQ4#�����Z��4"K����I��:i�ՠ�m4�$t̒V�бA�[���n��魤$�l�L�j���Tc���Bͤ/��df�E���c���e0��n�Z0f0H]��~a�r�M�2��]�va�r̨��v7J-�\���`Fn���&�T,��p��.�V�
�^�ϝj�_�n�X�(��S��Q���dmP��gmP��OimP���k��jm$<����wtJ��>���_(&�l�3`̨B?1�ن���Q�6>tܟ�ʕOz�ޕo)�|fP�@���Y���,���r�V�V%3ا�����c���d��}��>uj�fV$a��0K�(�e��Gz�z%#��,6�##��IB�
�##��	��##˅�셦摑r�(��5����x����<ҳ�\�eba��&�F�Q%FR��(�Fj�e�H-S�L�]j�i"�L�2M���Q���25��D�M�*��ڥF��R�Ԩ���.5*g)�J��J�R�r�R�Ԩ���*5*g'5L�*3���X
���d`�R
�%�N�:!g-Lc��rƒ�����4��d��sƒ>�m-�Rc��]S��P��)h<#ʻ�A�ޠnoP�7��T��T
��T
��T
��T��T
��T
��T��T
��T��T��T��T��T��dB���voP�e ���稔_�\��{ܛ�~����I�|���\8�y�_�x �c�����x�E����7�=�E���������yd�����(<��)9ː�G2��(C�$C�ϩ�A�Y�v��i��cX��9�Тz�!�u���F�������彈��!_�0������_��HɊX�W��?Q��D�6㼌��C���G��t���z%�]ok�]^�uE��0���F��el��]��"��Нi�]�]^�5Hr{a]o[Q]O��k��A]_��kW��1]_8�-�T�tἯ
�T�tI��qUD7a
��yU@�6*bύ�΍��EɌ�ZJWGs��� .�o�Ӫh.cQ������/!�,0\�%U��@�uG���h��Z�:�k�1Ձ\k����Υ�8���Z�]-���Ү:�k+y�c��Z�:�k���C��ڱ2�k����VvC}��o-|�n#z�m%x�w�EԵ*v�׽ň*b��jy�2p�x��¸m�D�
��"�c��ڢ��B��[�ڢ��B��l#j�ܭDm�K-��Q�z�l���Fu��)�Q[kUGm��:jk;�Q[��T����%A�Z�b��q�![;Q[������Z[�S��Յ��ZK�\��2�b��}7?�Q��?���21��3�����g���������~�8�E�
:����~���|�o��(۝���owf��owf������(ʪ�0-�W��Yg���i�z�9�������[?Ӌ��!�]���r߿EM5��8w���z�h��b�sD����$�yK��2�[?E�]��Ɯ��C�x�A��g��f���dž�.V�N
�}:���(ʪCC�V�u�rd���C=ᥳ�KՁ��V�
����X���Bk�Y�j��>,���T}X�����Pk�\�a�����B�ݕՇ�Z;OKNª?���P�n�j����BmITsX�-��j˾5���N���B-gv�Y��LYj)�jN
���5�Z��sB-�P�1��:��PK�\sH���Pv�U#�ecg������m\q�����A=��aazT
�,��8�N��q0�/΀����
�q,h��SA��B�r�����>�:	��HPی��#A�ӳ���N�>�:u���ϡ�;
Զ#5��ڢ��4P["՜j�15��ڲo�i��s��0P�i]sh[sH능��9	�R��j�j��SG5ǀZjƚS@-�t�!��C�1��p���]���4܋�t'�v��muݶ�n[]��n��V�@��B�Օ�����ՕA��B���ՕC���t��r`�mu�`�mu`�mu�P�mu
�n[�V�����ǣw��OE�d���w��������D������N���	�beg������4�Q�g�q�s�������p�;ڎ�a��pG������xy�z�K'-��Z�5�'�q˚�K�2�F��*U��V�<~�V�՜O�)0�\��E����|O
Jj�9)[��[���2����.m�#vl1m��#�h9�;�`�3���Y�Qڙ1�f�?�t��'�,q��5xz;{���i%���"��^�HM��5�"�,�VQ�Z =��"�AīE�"�^3扼w,k����j���i�9w+[��e�K{$�TW�[U�V�ǂ��3$���1B��@�(<nYT^���G,��+|QSqU^����̭�b��[%��@�1jm#���ۜ����N��'�x��J���w��w[���<��:<;ɣ���h�ó�;�t��W�����k�Urr���*9�����{ּ�fɇ�n��b����8b��sovG�$:%q���p.�D,O�p�[^��EK4t
*Z��SP�M�����}�`�����˴��I^�%��%Z���+�D-o���<�ɍ�Մ	5hz�=���D������=R�#�n����c�sv���1���A��?��IG@j�����K��q
zr
z�qo��½%hѥ��J�K->�;���d�*���4�NA���2�]k���\ü���)*t�(ib0��.�g��R��@\]�3qs�+��f l��Ł�L邦���=������vhx���ܥˈ������x���p/�G+�_
��jM-��k�m�$��єW���ܫ�#���d7����[�����h!�Vn�L�b�m���?u������$;����\�݋#앺�7ׅp��Ԇ�Sp��Q=�i��7� bn�+�w}�6��P����e����%�m�%)�;�~\�RP\�td) ��Bђ���3/͍�Q���-�%�/�l<��e����y~��D���lO�P�0fI��wc?,�Df_��t[G0Y�^l@��0I��b�6��� @���[�b@td�ܹ�.��A�5M�qY�> �0��w�l���ܳ�Kc�Q�(�>����2'����1��1������Ht5Q��6�Nr�0%�L	���Fă�'76��|�%�akI����k�L4B��|p��u�Τ��|p����н�52t�3����6���o�|`[1�V���m�|`[1�6���o�|��1���6�Eе5�i>\<�"4��e&#��d�G�ًs�2�\�"���b$5�����6�>}*#S�_����Ik2H�(�h��)��.�x�s5=/ܞ���"_�zW�z�9��}�X�?��t��'.`	-�
���vXT�f���<:?�����#$�'ٝ�i�:?�s�Ss|A��3��<��nr���|G������)*t*F�9R�6%T������"�q��Zt�M'�[���/��tS���ǧY������T\4'��!Y	�9G,�F�u������(��,X�4^8�W�
W��(�š�����S]\��*Sy�@�dy$�#Y�ru{�v���w�K�"oC�ږ'�#OG���j�����;2|ނ!���T���=	)1M��{Rr�p�p�p�p��ǖb�O(��X��w�$uOSQ�q|:�'���s����H{8�V��\E�&��9Ha��\��#.���u�}0���W��:�1�K�w�,�C��XX�C<�G]Ǎx����l�Ү��
��
L�@�8.`���R�H4-��GS�`%���2t�eON�Bh�	k7�4L�|7�!���/P�ō|'Uu�8̭�`�:^z����3�g����%>s�u��`t>����U@(��L��xpK�QP�Dq�n��Xx���u�&c��-󽔱�Ճ��#�	���8�Z(���N�{n6�" U-�f��hF����>N߭%wt��w��o):������:5�{a�G0W+2�ѕ���D�2�	�)�<��i\��6�*�
��]�;Q�6�)lNK݉&ȸ�&�+�S�4=�o��r2=���|�.TNmF}��������?SmƠR"��2X�g�qj��̩͸�a���B��'�rj3�^�n
Lhћ�E��f�
�'��Mh��� p��0Qm�
�he��30��/{$ڛ�1���e��+�cV�6�@iNj�3���r�W{�V����e�%&I���j
9+ �9	�)���'b�
���.�����"���4�p��(�p��jO0Ѧ@P�ua��#��ot�E�M�L��q�X��X�E<qKD�,�n��0re�+>��P�d�&y��@����䬻ĨrQ;۹����Q�ƙc!x��`��%;,����5�m�VpRcFdh+���"��ׯ~����vj��z���I�N��8^��J��@n;`�����#�$�19f$߲���%��V�\��'�lk�iMf�f�۬�Sզ��U0P,
�.��_(w3l��/��
Nj���v�/�`S%h؇��qC����!L���!�'��"tȓ�*V:��F�7����ܝBÝ�v{��;��$�$֙��j筍�$9�����m��n��^�ĩ1�k�75&{����P�I�N򾿒7o�;%�kB��B
��K�5����5�kk�+5�f��	�[ݢz��^3�1�m�W��F_i�[������ښ�~{��0���-|��oA�n�_��:�twꉭ]�J=�t�.}�����n?��	#
�	�I]�R�RM���%�锚�+����
��Y6��j�<]�A���T����E�JAGm�B]���/�U��_��Zr������Ƞ��Y�VГΩ��^wD������9=s.� ���*#/�-5F�Zam�E^��\]4�����n�,�����HU�{��hț�� \]?[U���C��ji�-#�ohe�V&ݳe�9�d
ָ��Tj�	�.=�C���qv�j��& Z��$����g�<�����<;a���2�辶r~tՂ��].G�4�r)^W{^x����ٜ�c��~�닛;~ֽ��y�5ȓW y@�t��V�����>{�~�=�C�q'��|^��R�p��$�n�{���	"}e���N��2E�%����\�����~?�ȯ�v������pjR�YadWTm�"q����~�	����8=�-m�0�Q�r��mt����N�xt]<������1�
�X2�^�f3ɘ4�:ۓ��pZIFeP�$�2�V��]�;��I�߉d�
���$#��G���\@��2ҽ����kz{�vkf���,��eҳo�R@6�' ;�;�Żt�V���7_Y7��"��]Y�|��ʺ�xT�ne���k�ʺ��x�ģ��h��2%Z��`X(�.��
��jG�[ �xN�f�	�����9NȜ���8��T�l%��T�f�hb�����u�o�X˫7�~';����FF������1sM:FI༅|�m�#��t�/���hQ�J6�����:߉�N4�ND�Sd4��OT'.G],��B1q�57��Fc���Fe4��k{�|�`̆�J0��~';�����!
�Q�(��-��4��V<�5���h4fc��pli4f��l��Fcُ�}�ܹ��P,�:��k�HLf/�Db.S�@	xM��k�y؀�N�㹦o6�u.Մ
j¯.l`���cFؠ��w��'�<%��1�XTΉ�b�H����LM��f���E_��`Q�J�����H��zfjT�Z�j���z�n���n�t�6W�m�9�����
��-s9��H�6��w��U��x�z��\��M�I��>�%`�.m�+�
�F�t�sc���Oҭ��m��aw�;����sM�~��f�1�ww�{P��vˍ���N��Ƹɑq���N�)K<W�7�ʲ�̶.��u*�Z����̊��t'n_�p����Z��;�
�wj����s�
�_.;ډ��O
�@�I���N"���3��A����P�ۊ�
��oE�:ߊ���P_���?��hj�-�ý��	�MF}���"�Ar[N�G�
���yq�^��f��ՙ�����g>�n,~o��^���)��'��m���~tz��OO��C���Ë~�&�X�\���s�~�a򣼡�O:�=�;��t��I��>ϓ��{,0{���GA?|7��ؘ��GY��ȏ������'�x=��C���#��\a �)L����ѐL�3�G�?/�+�$�RC�쑣���@�M���Q��v��w�$��lV�I�
�؉�N���@p����Ru�:L�S�h�6������`����s;�~�=@�<���B�c�(}���u�<N3=J�k(���֝a�\�A@�OgnX�妖U�����Qٻ ��C�t��FN���O.Ց������G�J�)
��̉��c��@�N���c.��\�[8��\�&|�!.�Kgތ��g,a�H'l�(+g����g`.�Y�r��:���
ί'��꬈���gՐ�t��9+��SZl���KeZ�z�@ʳ�`۠�0�Y٤ۀR�v7?@�L0�^�����`@%�N����Ww������~�	�(ønm`BL��P��a��d�'�Z���%��40t&����&�5'�>6����/$���o��|���*�I͢Z0��q�!q��1Ob,��"܄�g��+�����F��S�j9O1��z`J�	�9w�ªy���{�`
��q}?�-��W��iD8
�+�N��v�_d�W��~��	�r'fH>�����M�&����Bs��	��u�a
׀A3�L�1\
��bh��p
44���U,1�k���\ԷK����}��5��B�G\f׀C�Ă��\��
^ˬ�8h�)3�k��u\�����q�c�����qQ�J,�hh�w.g�x��2��\j��@C�؂�-��{ys8��>~�C�G;�fɑW�v�<N�Ɛ�̇��G��#|�]��]�tt���'��#��|�1�"���<��C�|�G	��>`2���m���
��r���.+���o��$��������C��)��'�K�>Ȝ��1z�j~Ɯ�ʃެ��w�[H�#��>�#�i/{�w����=賻�������S�
.4���^��hU$�4�q��.�g��&��?����Lܜ����f ���b*9���x{y��r6�s���s3<w�2b�l����x�X���n&����po�[e�+m1��%܃=�ޛ�p[{����;�v�'��
���Q�c=�8��`�lq��3��O%�2Va���'�~�y-~�)������rC��1.0��<�!O`��L�?
�N1���Ís1���n4��g��]�~{KG}W�h�F�F$�%*�|���H����2yl��/$2���S:������[�G0c�_����Jd29k�א,�>��I�u*���L�<@L�g�3�[\�b�p�ec�UO�p)P-�V[2(�*u�[
;;��E��a�^�[�0��bs���E��Ѣj�"[��	DO(MO�T���<o������9M��l�����v������G?�.xS���`1�訲˰��~��B�O9��Y��gd�/�cs7��D�������b|Q�1C��,�e3�3w�Y����L UMsL�I��l>o�ɵg�9׉�D{���l��$�d�xD�Mk��0K�/�Ya�$_&�Q����h�^���	b��]I�+#��`��^�j%pf*�j��1���"�+
�o>�S���u�v�c+kј2_k�{��5�o�K۬��-Z�>l&2���B�Kl��[��V ���, ~�����:fr�����ʬ��I$�,���`ѹ)=�E�b�h�g����#��������y�W�LqGA&�͘�R^�4��V\ig=�%MfT���?R04�DNTM#tO={i2?#�����'֓�Ћp�U����K_biH��9�������O0��`y����:��xov���c��k�H�*��qj�G�ƱD��,$�1��G����/U�������#Z���Y�����hlB�/��4��fM�B���M
�\��)`�W`~=��o���kb:0elp
���\�� ��H�*ƿ�5�;F�qwD�g��􌤕�;��m�+ ����bݔ3d'#�G|v���GU2#OR�3��[�H�Z���l��™tk|���'	-U�$E���D3�_l7�n�2T��i�,ģ���%��1d Q�0]��m��:�j�69W3uhr��e�J\m�й�%�pg�]��$�x$�>��٣1_����Wr'���k�/i�%n�6V�)�s�]D�(EOVEhf1H��n�ז�G$w�
XW�5�x�b�@�B"v��u�2I�h\<J�$��D�Iq��pqN��"R$N����]Z��pѥد����J<i�y�` ���ҕ0-�X�iR�`b�`|[�>L��|*�����I��I���,�kc�����%+��)eʕ#7�!7A[�>B ��)�!�t;����VjJ���3#G@�ӛk��+�	:M9��u�/rpՓ.�j":�H�,ˈh�.��
gL{���z��+@ym,I����>W���:�Fmy�Gf�
�贀+��G����X�	rlg۵����D�gg)����Y���eK��9k�Xh``ګ+D�<E���-hyⓩ�ڡ4Qׇi�8��V҇�fz�l3���o&9��r��4=�l3
�*?���,��M
;�����8blȍ��C&Ӎ’��Lc�Y��|ɗɹ���M&�DZ]ЈGE|*@[�p3r���o���5�[3��]6����ɢ|-�ǵn=�gH�Yn��T̢��bU����`��!��ˉ����%ty�*�Eo�IY���p��E�j��p��A!5"��ƪI�P�\�!]]�����k����D��z��MZ#M�X�8��5��<��^}�<]�As��/��_�}��}�_�	���o��H���i�8�%LF瞶�N����R_�����nNQ�%�޵X&uā�Ѳ$���eJ37���H�V�
h��AY͞~[ۧ�Fk>�� և��G�H�OQI�:��:����H,
�M����j�kh���&����ya0�XIj�2�DY����)Y�V�%{A.U/HQ�%<1�?�Ht{��m��>�%���8:�U
\vn3�����n�����'b��g5�
��֣e����
����!�)���3J�F��*�zo�-hs`�Q�t��͓C�n�w���Gyӹu_�:�9�hf(�ޜ�(�\�3�
��l<��&.d�Ģ�����c;��W�ސën��6&�o�5p�+�$=�0��4}��-)�z�<�ˤt�0��`׺Pk���E�,�M7N�V����
}���f�y�r�����j��^B\���
�ȡD�8o�)�Za�L�:~�`�_��yL���8$�`�ͮ)���t���-�9!aAB:%�Ѝ�K~Kc�(��uiF��WI��)ⵠ���|x.,~�	���Dl��e�Bi�3�aM��-/KY����ҵW�%�<�~K�h�L��*��H�����ݵů���H�3�i�B��,}r�_]�:N;iX}rY��=;>��W�����Ͷ���x�yWk���\�o	
&�&�y�R��#�+��v�kA�/$�&���(?D�"%U�;��#�Lv��a��h਋��<H�]V<kG@O��x��)�l�W	ڌ�Y�Υ�;7��u�mA���Q�M�q-��˒������n@�1���ĩ��$�/K�#Z(�vD��F��e���8�˒��	�E�Z�sI�yͯ$�T��sI��7.k�hG�X�4�Hڂ��H�(�:�Ю�!^�sмێ\A�EG��z�.
q�m��z>{b��'�H��[v������?W9��ݿ,�ߎh+A�UG����Y�,]<L�H��eųv\���=J�i՛��D�g�Kb�	���/k���$��c����ѐk%W+yZ�B���Zqk+<=�xڧ����|���:L%�x�~��F��Q�[7��ҹ�I�s�x�R�iBn)O�P"�:���1���M������hj�V#w���X�=��,Ji��t?����Y	��5<6~�լY��-7t��"��/AO��y\��s#�Wsy�=��,ԟz
?��nPU5�����|���|��L�q5<���:�(A\}h�L�Ud>�@�)��~��-�lIw�����y�+��+KY4���j�:���a6���!��M4���P*�m0[-V6���#+Ƹ�ݿ'��hla)z�L_���Az2S��)�.6
)x[�����^R���޹<���������1,D�
�ܓ�ߔ~����k$T��#eS��)��s��Y��eS|��O!."?��^w���ᡶr�[�%k��nIYb5_��ܓ��O~%{O�/^!Å^�����z���΋ҧ���XP8��z9_,󨽛.��U~�������	��9#6��A`�aA��u� 
��������ߢ�`4|w}0R�+�c�VG{��QAI�r�n����l��w����<��`��V�#�y+�轒�s����[O������}���AoM{�q�w	q���
�z�X��Fi�K
�1�ȩ���IH�+ȕV�3��)�\w��:�ٻ��4�1�8=��/�~�{K:>(�{!<q��ӛ!�e�K���H#��ē-���ho>T������=��{�����v��J�޴N��:,8:��v_Õr@J��9��3Q9�a�T�uZ��j<�<_��o���9�'��(�(�ӿ5L\e��*���@o���Y�P�K��S��}#��"]��bF-��N�M����>�O��Zr���t\�?����2W��w���[�<�YX
a�|L���r.�_�mԜ��%������ܜ�\2eFs�n�y��/�(1����G�[�#��I�Q�
͟)qޛR�:��,�|Uʱf�iMs^ӛ(�H�R:�H3�Gh��NBw���n'�;	�I�y	�㝌�d�,��NFw2�=�щ�cBW:����t�;��I�H:'>�	�逜�I�NB�:�$t'��#	�g)�����t6�>���osv2��������d�{$��Z�ٝ��$�,�MY�I�NB߽�.�;μ�z�ά��@:w�w�t~���]f�u���]�]'�;	]%��6�ѝ��2�:��hǮ3�:��I�.�Νt��q�E�]'�;	�e�u���U�~e�u2���]�]'�;�mcU�E�]'�;	�e�u���?�Wą
V�3o���~��'�]I뤇���w'�g ���%���"�����a�=�j��Y���W3���A}���Š��e���^���㵝�Z`x��kQc^Ck�ߘ۾�ܦJ��T��@z��e-�)=���Q��rk�\վ���9���E�<��e��Pl�&z�^Ѩv#�?�Z�-72ڴ7;���NF���_jx|L�ůP=W�m�]�ɳ�H��w'�9��_�
V-��(�9|�TF�=|��pKDR}M+>�ԛ��40dJ��3�cmeD��z�8����W���;N�
�&�6B�oωM=V~�|=Vv��%͸����{}���z������5�@Ȁ���W$в�'�ߤ�C�iK?=ƿԏz3���9�������<��LyT?C�j-�/��+��=�����7�k���m��8�����G�MK���W�+�$�U�=��/��I*i_�̻Yܺ>�^�s�od�$e�OP��7/�L�:Ϥ��7����TK�Lo,[�\y߾�����5�3�ѯJW"U��jُ�����W�b�^��������K~g��,ÀY��_`���/1a��g6�혫�b��{�W�{g�1�^���`���/
qQ��C
flZ�^J���5y6�1������3�w��Y���K��X_��xi;��5����f}�g缠�O��E���ϲ�ݦ�]�TGj�ɒ�n��4���|qH�#����Y�fw��C�K�?��z��m�r*���>���J^��o^��'�aYᵺ�uΒ��}��u��<����A>�i^Q�0Q�u՘��J�w4�v)�Z�e:Y74�^��h���ah��w�ON��7���&��}_��/�L�|o�L�n�g��*�!�V�DsoU�}�;"~+G�:�%��ѡ.�%���D��g���Z
m�<L��_�ʺ�6}5�ӻ�j��b_��e�}�V��cu�Ǝ�Lo�>�~I��G~�Xڽ�Ӡ��M|7�{�^��|˝W��Jt^��+q߽<�J�7�J|��-�Ry��\�'{K����W���H:��>P5���Up�ȏ�Rŧ(WE�L
Uv_�\ ���+~q��k�<r�k��%Y��!��z�~N�)��	�g���;k�~��5�o/��&+ör���}<%L�*Ӯ��w~Kx��w���z�b��S|����'}���h�Wd��(�6�=�3`�Or�����Z�I���U�Am'����xun�_��$�d���"�
;��K�g4����H���j�#I�&�3���20Wm��ޘ��^�<'L�lA/�]qBUn���Jl_�ӿ�G��Nɿ��o��zϵ��q�6�	�	\���S�qƚ|���k�%YDI�5I�E-'<����������#�nJ��kn��ܑ��>H=��lܭ7'�R"�xԜ�"T�|���0)����zEY�/ҽ����P�l�>��iV\G`n�XU��UEh�����H��s뷼��@	Fypk���tL�!�YCIFi{J|	�yA;@ē�i>�n�(�{q�T�I��?�W�5��߆e]�H��kE�7��x����-��>j��}d��#i�8{�c�[־�g��O�N���RX󭼚��-�"zbF;��y�����'s���¸��b�j��n��L.���O�~�_�H�ޮ"�j���kZ�zR�/��+�w"?��V�Gk�.�Q�93�9�{��T���֚���}��]b�HӢdy|T���}�%ٹ!�]1�B@k�X�9�zc��5���s^�3����7~���1��HQw]�H�ܥ6����+���2��?�Z�E[\��_Q�����H= {��#�q�B���&K�w�|ix/�8��Z�ս�0h��?��d��q
����p���b��>�b�;�O���"!�!$�_H^@��f��B2)��~E9�hO'Y��N�1��ސ|�o���H�?��+��Y�T��왅�1}�v�����h����s��G/Ŋj$4����rd��6nOл��R��I���g�Y\��*�Ow��}���|�b��g��fԨ;����v��v��$�d�)$��SH�}�Ų89-�����6��9l�FU'�;)��I��Z
�I<���Ż���Z�ی��8��(b�̀d��J}k�=Z�f�_־1�ϯ���bp���]��W�JW�l3���D<;�g�'t9L{�5�Oh�$��"	��}��x�����rڑ
����]���c�~8Ɲ���}1�~{�/yc�g��<�W���cU��W)yʄO�w�d��Z��#�7���t�ݻ�ƀ�������G �8�_����[K@���<C�O/p��'D��	��Vx��3���J%G-�\��=[�ZI{�Xi%
�B{s��>�������J�fZ{��V�k%_+�P����X�i��fZI�u����B��@C����Z=_닯A�ZIî���gj��F�ZI�������jcp5(�ֺ���5�s
�\�Zg�ؙ��ZI�´�0
�6 ��ԂOGW����9�Z
#��
?W�z��t�*��V���BQKڳ�c<��'�iJ�מZi���=����t�1~R�+��V�EZI{-(�h���#�k���M��C��z�Z
�j)Ԓ���*�P-��:�����Js��%?VKЂR�i0]�^��>~R)�@+������|��'}���u��ϴ����V��y+����K���%�;��G��SK�J+-�w�����k-h �5�O�0��%_+�P�Ӟi�4�@���5�4�L!�����J�V�Jie<[ѿdtji��fZ��J\+�%~�zJ	ZX�'zj	��9~����V�7g�I[PJ3�ĵԋ��H��%x��'��O�L)��g$�SC�(-𓾩�Vڳ�|s���^
񓾩�Vڳ�|3�O
E)�3?�3�09~�7�R`>c�Ih��fZ)0�K�J��L�TK�(PJ+��R+ʹsf�,����Jڳ�VZj�9WK�@+io�Z��J�V�F�\�'J�,��A/p����.�'�td���LqU���O��!]��tX��CtH	o��߱wp�����e�G�x��ߙ��@/�ߦZ���i)z+�����L/�2��)�����X�`�ٳ�S�JG���B���Cw�?�J�s7OFS���^:�1�U����iO���"��'E��ܷ�K�|E�<&c�x�[�,zo�)NՁ{?�*�[�'�]����o�-�o�-��޵�'��_ON��B?`�d�G�=�e��{���ȇ�����'έx
d�9�-hО�z���H�&.�q���3m����ԁ�zpe���ե�����b��b�^� ��������x�Gw�{T���>]����\��ŗɱ�38�_6�O��7�gнӳ!�܌�^c���3��M�������	Q�<�@zL��Xx�н�9�d2L�ʔ�y�����xs�&����w׃���ˉ�S�Q�#�8ܜ�6N�l;ݧI?<��e��@d�;||p�`7��axߋ�6��>5I_њS���(��ı��t��G�n?Jv�2w����n3�^z~�1v{|!z~����
�L�-n��~�[�O���D���2����)������Azg$��;��x0��OIg�'�P�a�y�89I�9�8I̅ZO����<�\�=��A��o�'�#�g�1L�!T�ǡ��f�#48���`�GbP��X�W�y2��=/��'S��ǹvx�v�c�&�?�&��
k7?M�{9�ttF;�E;��>g�$Q�ᵐl���l�?@��7�K��������2���G��<<��K0��nP�7��	� �X�`L�g�y!R�c��pM0��D�G�g��9�XؔD:n�IQ[���E��w"7
��\���N6ks�D�Q��cb7�ŵ��	���}7r`�	d�^5��Idඝ\�l�g�<��A��blpx�B��T��!Y�ǧ��1��|D'\����!˅�u���t;��6�V`���#3�K3�������&In#�[jt��q_�:������.�����5��[VU��Yq$#Eڌ�꿏� 2�Y͉n#����?�SpS��)��)������.�bWL�_VU���·�)H$�LQ�?F���������H��V��")+Za
�d�h�)�:k�)<Ҁ�ݠ)��>�g
KɌ�A�%�+�J��Q�0%f�j�)�$�V����F�/�nLȌ7P=S��v�����mreS�6�S�,L���5��ԖBRS
i��`�:&H�h[c
��>�5e4"�a��T0��-*v���T�Y��T��&F�s�U��&f�Y���`̢ae�D�-+uk�ƴ;j�
��ĸtγ����ļ��#����Y4������e��y���/>�bc}c�˻���u�W�+��D,�\�w���2��?=|n�f�`���7_ۗkR�..�����k㽼x
Ae��?��.��o���z�..~g_^��@�xo��ŕEMWvR.޸�ߙ���.>8���C^;z���禗oL����[܅b�\����
�	��"�����uQ�Q���yN<X8�_�s�s�pЪ��d;s���eؑk��@�Нw3�Y�ܦ�y}���ȇ�BBB�d�2wnm��`8�M>�`�7�����S���:u]��떍O��%�԰��ͷ�e�����Ư��H��~����c*|y޾��!���h<Ҿ��}}���.����!�����������:���u���	.{�̿ۜ�g����ƈ~�3>S������ט��	N'Q<g�~ƥ��̉T���{�_���v�`����st^.��񤥷/�ʆ�-q�3մ)Zz�헏D�e�kY3�຾y�8:bF�}N���s������_[�������2p�5�fY�Fľ`�^���~���9�	�1=}x�F���Ɔ�K�"É��>,3��ՇY%Y��	_�\��^��y���z�?�o���-��M�Q'������oZK�謬	�IP�iX�ww'�5͢k��nSn�i�6�r��|k�]��w��>)0��y�xG�� ����^W�IAA��w�.tn>�:L��}m�|wJb&yY�ͣ��=>X?���i �a9tݎdX�T�9�E���a���������f��>JkBqI1�P���p�!N�N����|D�tXs�
����LD�J���h�`��\O@EFTLԬ�B;ũ�%PQ��D�@�j��.��q�ӁF����*LjJ�ߊ�r�D�:5.8����KÖ#LR���R�
�1�����&Zk�t�i)��e"b��)�8Y�b���M��h��Q	�eϕ�m��A`��h�	�!��Y��Eg�d�E3cd��\T�/[X%�C9g3��,9�R\��daV��x+o�V��
'�m�{ņ��F,�Vt/��z��q�b���Y�\ؼ\�v��J��Fb���xɵ@�
���3m�.?fc�L�%����؊����q�>����E�3���x����|��I��Z��J$��6�Q��l��Š�d��i�d�$%�U�Bִ_�B����j��i�4�6EN�O���3k���[��[Ņ�8��^��pT��D9iMIVZ㜶[{#�����T�iN����6IA��r]��Km^��BLZz�-;��e�ф��ң�0	��p���T��Ul���1��h[�������}k� �<���+�z�n��lP��4 ���߼�q'�y�0U��AY!"I,B�O�f�p�D�X�9�w1�#.�:���� ������
�TL�>3��^g��T�������'�1_Ƥ.Q��=DtkADd�gTyPh�R�R&�eP�`��,P���
Q8rFc��z���2��������fV��N���h�l��`~B��x�����2�˜4��ߎe����&�ɚQJ��H��0�J��7AD�<��Qĵ�	,��Z�L)�o0�ż��(�%�0֯��sO�J�{�J��wލ�Z�R�8�5�$��wn{�l�0����(]1�s
�ޏ5\V^,+;+-2��D��l�,�xtb1`�B \�ѥ#\Q:����aEz2��*�Є��t��D:�*���Jd���D��^��sF+���L�@�vT�P*a #R2��.�7�:3ݦ@=3݌��̓���t�fI��
Ȥ��^㪑��}��X���Ъ/�%�ے	��yz��VA&�'x�xN�DcI�̨^��i�`��ɤJ���(���,@"+{Ò�F����
���`�AU��)O8�A l�g�ˆ��m�X��
�^�,�o �)�a�rG�x�
R��L�fJ�Tb4UhoDm�dG�R��|<�n�i)Q+�0O�8��PA�R)��t3X%X��P|2�
8��J}ɓ��!Z�U�<��<�-�0h63�S�Z�c�jv�������i�=2�,	#�4TӁ������L����
 �?e2*!�8S#2]\�2ٛ�$�W1���"�cBq2ڙ�p1����=ea�9C��~�J�n��0	G�A�S�U��5�����ֽZ*����DxJnΑ��eD��S���q�@FKn�r��M�+�N��u���
2����- {˜6'[\�J���-Uϰ'��n����	*bv��Lщ��a���"�4@r�BBG����L�x�W._�̴�X��t2��L
�O��[[�SDF�Js��,�L��^ur�L4li
lX)s��<g�_�N��i6:M��:etL���4"4[���4����NO�Y�T
�-%+�3��!w���`Oa��{�{�:oNT��(o��(veK�>�"�#�\?nI�������A=v���@o\�	�U��̡��@Mƈ;�[Ȳ-gj�t�Y�e��)�ϙ�F�)��ZF�Ɵ��X�t� �
�H�1�B2�
���7��P�>p�Fi<���U)Z�h
�5D����;�oJ��d��!v��Ҟ�����I������qz���y��'~(G��PCw�S��%o�!k�O�h��	��1��VM��c�����nvz�k2;����1OI\��$=��8��m��8~J?e�O�S�Q��h'��	e5S|Ȍ	V��	����1�x3J�L��a3J�`sB�a�l�3��6'�z�c0
f�"����`l�(��r #��ęQ�Ǭ��A���l)���}2Ӎ����L7Y*�'3�d7�Of�ъs��t�M�>��F�=����6+<3����Q<Ӎ�G�s6��� �
,�@&�*�؉��Vk �zZl�&1�ɔo�`ٔ_)�8Nf:aJ���x2��U*�'3=^0�*	Ȥξ��U����7�L��c�z��[�<�cN¬�0���Dzm�(�0VI�/��%�(��W�$�����(�r�.za-<JBn�
��aM�4� ;V£8��(�
�&S*�B�f@R[hT��C�R���b��Ш"5�F��14*�H��Q3�64j)��F�H�14j���B�&H�)4j��B�&@�-4j��B�&8ieh�\�;S)�&h)�L����d�*u�-%��NAM�R��+�e
��T��'`)�ݵHb,���H�ims	H��
�Q�~�Ok��3ҍ޽g&s�:ڳ����=�h�:*۳�f��YG�d���Y2{��<�=�h�̞u4Kf�:���g-�ٳ�f��YG2{��<�=�(Cf�:�'�g�T���	���uT_z�q��
�ƅw���_�6���Ɵ>?\��e�v�ʛ��~�� �@ڮ��������w���=����g\s��߇�/��i�f��S�&[��x$i}GL����>Gk}uǡa[qGٷ߬�c�_(�X�|��cI�
;���u$岎�7�7(븋�]?	���Y���j��)������f3Nj����ߗ%���em�Ƥ#�9=�e6�M�#��5�f<�l3�4��KS�$g�����Ni�7uJc�1��a�q�曻�ɬG:���sH�����Y��G�ew4w��y�͝���ʒ3Z8�Cѱ���R��%_�t�
g��+��ϩ�D�M�z?����}q����@f?4�۷
��cǨ�\/���uTf�*8��C[U����#�.�j�,���'i�]�b�]���w�]��=е�z�]�1��?�J�e�s��]�>�j�e�s�FZv>�j�E�s��^v=Wᆲ�l�x�[���&ng����%�3wN��-x��q����Y:OL��ǹ(���9�*��K�f#o7�7�s��f�a7�7�-�͘n�o2��[��7�s������j�,����h��\�`�����w��\����͵;{��\/5��Z��l��˞�Z���i��?ˎ�Z]��g�T�n�*�P�e^m�8����_�D������8|����t��ad�?�0����PQ$^s�Q\h��u��wφ��mB��mBE߾�>��˃>�(ϹT���Ru�)�x�Rm�u�
s�AK+���2�$
��^���􊬦jf+?wNՐG����+v\[up:⭵U�G�j��]���+��5U{����O�f�h�dr�3�^J�xX���J:[��<�R!U�IU�IU�IU�t}Y*��7��*�����X��j�]U�ZK�r�j��r�j#�r�j��r�j�r�js�r�j��Lu�r������(P�eJ��j�
��.�B���[(�Z��
T+w�\�Ԋ�[�S+e\�zj��-O����ک�z�P:�R'*�V��B��J�0W
l`y�A����8ކ�*gĖ�2�Q=�ʥ2eRQ�t�Z*ߢX*wu�*��R�T�E�T�I��V,�C�\'�6�g�Lju�r��ڈ��2���Y�eR��ŖˤV����r]]��ڎ*�ֲ�P!�v�
R+WL�Bj��-TH��K�R+�u�>j+��R)�
�Q+�n�8j�(�F�SG�Ҩ���P�RK
�V"�90��lR����z��������0vƓ���T������=aoO���^�	{#*{�^�ʞ�7KfO�˒����	{Y*{�^�Ȟ�7OeO؛��&d���y2{�^�̞�7KeO�Q����5aoRvZ&����+{{�uebQ�L,j(��<���<�(c��F��8��s|nr�q��>¿���˽���h�қ�1�l�Y�W>4tw�->u�8�x��,s2ȌV7�YF�(���F,)��Y-�FҬ��u9��a�+%�!����0��|�&���I`��$,�[+�� �7H-�ߟ�7�qҎw_j��@��Ӱ!$	i�2�&��ܨ歭<�8�Z���!/Y�#�O▚y�*[���Hj�L�n���ŧV�_����	�5p�V�M빐j�	�Y��B(hÜ��#��
���b{åi�Ѻ(�7��o�j��`�&�gh=��h5�s���4���!��u�S�ሉc����^���i�J����Cѐ�:|��Z��B�t���k�FH����R��f��T���*!M�����fˑ��ҡOHw裾�>z^�]I�J�	)	̸��JB��T?�I/9䌴�J��HK�5
���Z��HK<�QpNKTb�9-Q�g�D��`FK4�~AK�f��оN��j�+�&�MNO�'�DO4en��{��m6oC�Y���Ю���r��q��np�
���q78�ǵ$/-��ÍՑ ���}�5�ύF�=yz���{����h�;��=������|m_�A������vӽ~m0���k�wq�>��}y}e�5
^.l0�����ˋ7��Cﭒ���p/�]o܇��}�p�0�Ň���ھ(a蹗/���1�B�o����[b�\����
�{yE�5/OV}f��V'����Y�y�y�5�3�(Rd,|���>)�u�P����F��1�;�lP�Ky���8������f��)
� ��<	��;@:�'�V!tO+f�]���.�;\�6<7����n����Baڧ?q�y1���TT��xH�'����H�,�%̤
D(��ThB��<�
L�	�+R��
��4f}��RW��'T���!��W
sEB�1.Y_�Fc�a�@E&T��8d��j.D���p���-0QkO'T���
�4+��cB&E�>�L�Uso��KU���6����mBF
Bِ�é&�b�%��*�F��&�X�Ȝ�MM�s�P�0/��*�������Cd-�C�џ���M"kh�%�������
��2��ٰ��`�fA��$�]K`X"i�����t�
��a	r��ga	t�qa��6X�6�%tXB6�%dX�7�%xX�7�%xX�7�%xX�7�%dXB��%tX¶�%#A�
K�:Xl)��uS�n�	LK>�z�\48��ޓ�^]=���o��s�䋷��Õ�l�M�ť�4T����\[��ׇ���Խ:o������!��6�	r��tɦ��
�W�;A� o�[ܴI��ʢ�ϟ�@X�� 3���,��^�u��N���7v��a�_�	xqe&���'�ׇ�kg�ks���`_~����omE��߽cz�w�������el������-+�}�ƍ�½��x���]�Z:Q��x!��M�\�Α�"G&��N���>9`�o�ء����[물˜3�߬>g��S:�~B������v{�KnG#�x0��\��_��/��+��ʿ�s�����Ӷbu��9����/8c1�&7��rrgSp���>��95�⾺~�'�+�7�9���[�Ƹ��'�cÑ���>	rj95���AN� �f�0����U�'!F2�2�C��:Af7cbL:�M=|�2��*��*�r�EG�=����>8�c_\I8�� A�����>� ÈxSA����F\JStɿ��*�#c>q���(Ul�$�KĜ���c���l�I�)��%���T�C�(V$�H3�0��r	@-&#�����#��Ra�B*Tq��R�	�i��dhBF"֗�#�"�X�Ȱ��&���ф(Y������a��Y]��2��<ޙ�9�"\@-e���������;K62 �����_�TBe2,Y}Z1$��!�b�
O�0��a�)���>�CnG�����l��h���/P�ϐl�t��I��jW��U�#��"���*UֲcR������XKS�p
:��	����t�i2%�GӠ��ɔ��0��F�l�ͻ#�Ա�佩ޢ)�+�DY.B�" �9�K�&�Xu�PF2sQ��>֠�	��;��X�t��uǹ��& 7"$/ޯ6�Ǻ�LPN{2FsɊވ��R�8�"C��72!��H� Ȩ�/�D>��iCƵ$�50`�1[�.�)��ޚ`JPk�KV�	���FL�2��QŠ��&�B�:�-�:S4�h"��{vS���c�۽^���D��mX�-�22����5�.|2�!#�h���	�C9ܩ�S��E4گj�S~�4��)�B��la�-)��-B�-qQ�l��5ړ B��Ѻ����ǎ�֨Q�uV��4�%�S�D�"��t����u�i�ē�;�0+�y%|�,�o_���o��	w�D���	m���`�ٜ7�}ퟒhק��D;�f|J
�N��O�\f�Yo����jE|���&jE<���Xն�}K\�̾�CK����>�@�1)��Է�
��9�>�I�}N���?�mX�#m_W�h���q��V�u�b_��;7-	1lx��vΛ���)�T<��lOꮥv-�� ({� ��#�Ǐ!C����i>{����Əy��@�KG����p�(Z�
'����N�Xp����]��%��܁f�4�s�M�܊��r��3o=r`�z�����Qb�GE�G�WW8pԴ_:p���y�r}��X(}��a�>H�W��Z����:�{�7
�YJ��BDw5���O
�{ʗ� ��޵�>;W�z�Jg9�✃Qo�rOzuX
������'�Д��V�ʇ�I��S#F<()�S�#N��t��Y����gub�sJ�q�>�%@�'J���+m�"�dY+�c����P�;-��nF��E,��X�2�r�Rc�f�!Z��Tќ�.VH�l&�y�B��+V����h{FS�\��� h�D�z���|�H��a�Ϯ�v%�c`؝"qB7N2�b;��$~���F�q@>f;��p�Q�NՐ;��	c����rw�k"�:Mu�ox3TD^z�ac@>ݲ��Þ��%���(�����=oo/\�wV,���O��-��~p>��or���bT��,���{�߁�$ȸ-�c���0�p��5��_z���Z��}�{���w��4��-Ew>�K��B,>�E�>��e0�T�g�_��Z�p��w���-�^��B�"1y4Zzt�B
��
���Ѡ��s�`4�b�l����?<����v��:�\h�&���]�,�'tw��r�ӕ�(+w���.�ᝡ�"��4\-r)��\'rã)�N䎆�$rG�j��15�ܶ�?����,r���q���tE���ả\";�lM��%/Y-y��V��&��N��g$��4r�I^V��Eɻ���*y����佹�׻��%�+y�psF�P��|#�j�۟�I���L�vF�F�;T������E#Ï/wGC)��[�Ղ�zք�s/�N��x��e�OT��=����Z��$��%��J"�1���W�0<iIB�/$1��_�Ѻo���\%߇�,�G;̌|�헌ȥ�Bv����u�q�;#�y{Ɲ�;��%�'/q��D�B�̥}`H$uU�i���U�3���^�@iA�V4_��������*rI�Ƚ�l7!�"��(r����X���¶���T�	rã7���4�[Z{QɌ���$pۺ�����{#�ow��K�O^�D�& �}���
 �w3���V��!��r��m�ÀΒ�?>�zR�'�X��g�ո2�8��,���Ŝ?}��'?Ջ8�C	T|�VN&���RN$Y�ȕ�ָ�K�zWn��%�G��ʪ�\Y�kwK����e�L\Y��C�oV��qI�.21oG7����ǵ�`ָS�GofY{�)�T�_�5;��۾S��NUY��W��(����`�X�����5(���^�� �=�,��2:dߨ?�J=�j��c�zu���a�X�I��K㷆��I�؟�qe��s���ys�_�}��{͇'/`O��H�>�>`��Ҙ�g��E(����W��PeF{a�P8�L���M��׶�Ӷh�mU����2<:[��Էϖvq�H [�� �-Y�ā\ɺի��ZD�S��a��1_�Δj�E\��zDs��� O�����~��P{��G�P�\oh�&�j��J}�R�������e���Z�}�]ǰ�J���c_י+B���a�;,�q�C�juFyG(=��0'�jwE0��#�as��;�-�g�!�����[�w�hN������2��������N1)���u��Ɏ�2�c4tHuD"�|���i�ȸGD{$:)8
7�k�?��I��둶��C���=��$��xT,��b�I��F�|�43M�f|�l�X�u��$m%O{���k>̭0c���¨)W�E�e��%�F�T���K��v���"�)/4`�����#uLN�K�N�v�x�%g8��#��%r�؝�B�{�B�/b�`K�1�w�r��*���}��I‚��X<�N�!�JF����b�1�}&����F���b�����5��cc�
���*I�B/��[t\��hXg�¦�C7떝�y�V�Ć�rB��R����RJ�u��ݍ��"9�=JǻB��):�\v1�����qP:쪳�KsZv��`�g�V��67��nKy�HPc)��^� �c2��A�1�p�9+U��F?%d�Z�@FI)u�lddJ&�d�U�a�
�*P�pQ
ұ���eƙ�A_��[?a�ؼ�/�B��0�X0�j;}���bi��H&{��ך��pLTl��13�uԫ���� ���G�1^�j����d0!������{E2Y�PC��p
�ꨔ�x{����urG���OU�!Kc�߰�	3r�ff�j��-�s��T�oY8������ A�2&��̀�5���ԲX�@̀�\�(\�f0r�o3H�@�@�M�p��A�e�
8�@Π��Y�ap����km@�:��́�9������@΀�ay�l���.P3�x�s\�@d\�\��0�����tQ%0�?�������e���s�ڭ��[�����ps�����8�ڮ��]�e��y����������0���ξ�Ɐ���`��f_�������?^B��ᵵmm����⷇����;+<���ÿ�w_�;����K����o�6����2a?3�#�����~�-����δ�^\� �[S<~�fw��zx{m
�o���H���=ڣ���mkBSx�]N��0������Qʫa�johl�U�&f��n�Ãs����fd�,>�Op��3]E�1�T	�яj�V��2ڃ��-����p�
�uy��Gp�odl`�d/�e>�v
9��]����A��ݩ�6�����ٞG�ÃT{1�H	�Q�l�H':�iу����ŏp�a'D�:�_�_�C��EmkBT���~gx���!�0@�u��`0D0��.���V�����dv�23���sݥy�祕(��K��(��C�I+Q��[n�M+Q��S��gѿ?�,�7�D��<�J�o9MӻV���!�q����^�0Q~v���Qe�r�͟�mkBT���~	nx���1
 A����{((~6�9W}FU��)��u��==�~��?�9+�m^[S�mkBT���~�Hx��ѱ	!DA���7h`b`�i �5��̓���o1$~��֖N�a��)�4�`�/�ĐVlb��9�wl�peECs���mkBT���~��x��ѱ	@�쿴��)�CЁz���%ᐾt����]}0MN�/�mkBT���~�	x���ǍA�)�?zr�,��@E�U��?���O�ϖ~���������-�$����������I�������z��#���7x��z�F����o�$���|������I������������>����_u��F����o�$��z�������I����H�����r���������<����_u:�F����o�$��x<������I��p������#���7x����F����o�$��ݎ��Wm6������<��_��#���7x��Z�F����o�$��\���W-������O�ϖ~����~�����b��ymkBT���8�x�횉m�0]HI!)$����FR�?6�c<lHٱd��t���C"��+��RJ)��RJ�������kJ�߃��L��_SU��n7���s����s~�u�U�-U�yy9�c����/Ju�z?��i���>>>~�sm��+�v�u�Ց�νY�u�8����uN�?�WP>�1Js��WiV���_uK�E��ϸ�/r���ˆ_�gK�W]ױ���EY�cl��,[��T�YH�T�����������}x���L#}A� ���G��V�7���^�}>�iҞ��-���i��;}�LJ���X�&�T�P�3�T�#��ߨg���J�l e�'�=��?�͘o��n��a����|7��>��?ǐ�U�%�;�������/�m���N/��I���f�Qփ�z{��<�d��6�d�n�;�����Q��m�{{�5�$���iѦx��g<�$�"�^�%=��RJ)��S����t�e/�֔� ��a};k���_��y�?�9Ԛ�l�z��}m#��G�Kk!����k(�9�G��1�����z��,�Q�&�l�iV濊���#_�<��3�Ξm$�^9g
�{9&�w�&��:˙�u��f֚��R��:ֽL+mW���W^���z%�I���2���lo���Z�f?�k4�W���-�#��	?V/�c^��!�!{u̵ʴU���ٷ�A����Ge>G}�?����v✽��3��X~j����{�zT��A�O^��ʰ�>��?s�y��|����G)�P�</1�1~2�ў׆�R/�7��Ӿsm�sr��"�(����2��c�Ϲ;�~�u-��)}����<�U�1�g��:�a�p�b�5{��3�(���k�!m'mʞ���2��.�~[�)}G�κb��XE�L������p–�aԃ���7���7��Fy�0�@ߋL?󞕹��Khi�@=��RJ)��RJ)��RJ]M;�;����j7�]&SmkBT���U�x����i�`�Qqqqq�����!��	�C�O��Ml�S�$I�$I�$I�$I�$I�$I�q��O�9˵w���O�o]�s�s������,�Խu˲<^�0��t�c�}�av��=��7����_��{V9��z�}��ٿ�^��s��_���y~�?��}e�z���۶����������@��w��E՟�k�$I�$I�$I���@?
���=T�� mkBT���x�x����	�0PG���:��8BGp��ҍ�'���#!9I�?�KpNN)��o������Us�l����{��o��g��p��19S�<��N���ߘ�9������{��<���l���ߘ�|��1�e�o�ٹ���������5�&��mkBT����#x���	� DQ��b+���lHF����c���T2����SY������b*Olb����wl�uB;=f>��'mkBT����'x���!
��ѽ����b�,�˄=�Ȁ��^���g��/��u}2��i�����y���O���?�#�?~l��������`;��mK����)迮k��4�NA�eY��v
����?
�S���t��i�����8���O����ቷw�@�$!�'5�mkBT����xx�흍�)��q ĉ8�D�^��>׻gI@��X�jjg�iЃ����`0��`0���?������ϟ|�:����s��e����Q��3|����ӧO|�:�2|�����.�}��;�7e�GF�����O��6���_�Q�v�������]T��]�^�ˮg�{>pj�z���k�u��o{�y���ye����?��{�-����x���/D:��3D��&򈼹e�^H�y�i#/OG�z��Ϫ��߯_��~�
:�sMe��#M��3Y�#=�2��Q�����Й���[\s=E��8�}E>�Gȩ�T�ڲ��T�g-��}�����Vf�������o�SVw�zV}�.�/�>�~�<Vrv�@>�!?�U���������1���<�#�����}��=�F[ ��~���QڋB�N�.�.+푹^ed��Lo+[\�-��k���
d�W���(}���6�q�$�#�?z�6��Bө�i���?�L���7�!�3�O_Q}Пu���o����[�=��tk�ȋ��M�����!'}/�Ƈd��r2��_�C���ﲨ�:������`0:8�����o�=��+8-�4}�۞�c�ĥX�dq�{bU�����q��©ή��m�!�ƶ�g*Ϊ�U\z��[��GA��=^�+ru�{��LV���	�U�?)�V>�ғ��)��x��|�Y�ҁ��gi��\�yi�^c�U���o��*=�����!����T���Y��?rf�g�����W��s�ʽV�n��*�V��X�#�=��F���ϫ��+[���F�~�yH�\L�~��[���O҇��h�5�ݵ����T����o��w�|Sf���ӟ�+���)���;���F���;:x
������)/�OS�y��U���o��2��e�)Ve3'w���gGg��=�J��^��`0��
ľ����u k�U,�Ks���ؑ5�nY�,��bXw{���w�&����3�Qה��N��Qev�	�]��Ʒ���gcH��˞��i����{���A�3���I�8��h��w��d��u�w���UI��W�q���8�����I�>�+���@��p��Qş���Gc�Z�����\ƪ����U���ߝ�]��/�:����3d�;ɫ:gB9�R�����|GW~����w�2��;�fz<AǏ�ߊg��_��l����y��������=����U��y3=� ��[�6_��3]U�_�����k�]���]�ײ�2��;��j���->��t|�+�i5���n����Οg�Z�Y|<�1NyŬ|E7�k�������?���z/k���>�<��=�Α}N����΅���>�u�Wy�d�ʬ���dz��`0*��\?W8�G������Y����:����Dg��c�g<��2+�������'�W��6��qn؟{�r�u�"w�<�Tk��.��\�r���n�O���>U쏘~c�#T?��+��y��{�Q��,�,^�qF/X�v8�.֩g��3}�ȸ�OP��~n%�hU�G4��(_��sn|W}Tg&x^c��,F�����ѭ���+�<��#+}/�Uw8B�Rh_�����|�33!m�r\7U9�m��({�ѝp���ve��w��[���x��G������]�߱?g;�,�n�ҽ�ow8�]���ו����b�����?��OV�=��Z�_�����#�ve�?��v��N_W�������r�YL���o;�����1�g�9pV^�G�~>�[_��v�NO�S��3��`0������Q����[����	veO\k^8֔��v<�Zbz����\��O�p���b�n$~�}���o�z�3�ј
mK���vU��]^�i�N���WA��#��x�딫���j��t��q��:���E=�
z%օ�q�)Cc��Y�E���q����yRG�-�+u(K\�h�P�'��*^ء��^���q�=m=y|K��vūe���\��rȊ�4���=���{W��1���;=ݷ��x��p�;o@>���Ș�T\Ԏ�+C��=*�ɫ|��G�JO�C��W]��x�1.��ﵠ9_E�б��
��V�q����)v�(��ʑ}��[G��w����Ǻ���{-�o��Sdו_˞��׃��2��;iT&�w*��w�����:�����g׭��S�O��s���j����%Z�[~_˯d�֮���+������w]�7��`0����]��k��I�u��+e�L]���ւ�oA^���;=GR��?��v쯱�;<��y�� o�$N�1紈=:ߥP�V��u��<�� <&����3K�yC��/�4��r�)i=��*/|Ύ^�]�Q�NН1q�G���w>ù{��<F�����V��r�2�n��lo�؍ا�|�m�o��'�qb��Ӌ��r�`e��ef����6
0�lz��sA�_������x7��췣*�U}��R�%�+���C�����_�	�ڟ~I\�Q��~�k�y��#_��jo~DyU���^���`5���p����k��o�?:��ˮ��C����w�������>?�Kv��:A���}E:���_�n+{�u��=����r����q͓�̳]>>��d�}+�����|L�����0���1��`0�l���e���g:��׺񶊝�`W�,3�O�?���]��\9�P����~�[��kO��W�i�Gc~�)��-<�w��.��3q�}��'v�u�w$V���n��v��(�r�����5��2���S;W���k�_�K�ϔ�8B/��h��E�ՠ�'�9�w?K;�x:�x�<��|@��c��Ͻ����V��y���c��@ۖ�Sw�8B��q���]��=��2�l�B�e6V}e��������R�(�������	V��e�ZT��4��ad��e2ޒ�+n�Y����B�����Tq��S����ߔ�<����[&�=�f��[|�����s�z�P�)G�����}{Zׅ�3���n7�j�p�W��wf�t��E�w��[ǽ�;�����`l?��`0��`0��`��{���~��������i`oL�y�>uo���i\q��K�|}����7��Svu9�G���쯿c¾#���>�,�jo��w{�Ն���ݲ�L��=�mW����2u_�����8د���jo�?���k��D���߱��m����w�>���#��}�����E:��OۡO;<���s��y����}�ڛ�k�}~����|�M���'8CT����o+�[W��������U����Q���r'����\��'�t�TY��w��z.D�=��W|��~q=_��y��M�����������Ǐk�t��bS=2�|�ұ�y�N�_}O��e��摽ۏ���tL�S6�q`C���jf��3�#��ܰ�?z�1���H�]�����\"�W���]����O;�2'@���@~tG�:�����{��u���7m1��Q]�PW�V�2�S���z]ϥz��s������3��]v�����xwҞ��:ڗ>�y��`���$j�?tU�@mkBT�����x���!NQPdC��� �e����X,��c(<��t�`z'�zK8?9�﹛�/&���.��b<�Ϳq���3�ÉMg;��z*��2b��C���|fߴ�P������Z���_�y��������Z�����y���5���g��_f��e;���2��Y��?~�Ǽ��J�7������3����i%��mkBT����tx��ػJ�A���$(�XZ��,҈`�؉�L��K�,�o��[���=�|/�"E� �xf�)�9�n����u���^��������pxQҟ�s��zk�\� �>U������8�_�F��r3��g����o���Q��W�g��*���n2�ܗ�_��>��Ѯ��*���������l6{*�3�|�Yw ��ث���L��]��̟���b�H�q�SϺ�����tu��ϝ�s�쫼L�q�SϺS�7F��#���x���o�j[���?|��Q�g�YV-��+���^�����]��iS��mmkBT�����x��ч����˙��MؠY��߯�?�L�{�d��m3`�d��V}>�66HV���66HV�^�66H�l��l3`�d���h3`�d��V��66HV�n�66HV]��66H�l��ri3`�d��V���66HV�N�66HV��66H�l��ph3`�d�~�o3`�d�n�k3`�d��Vm��66HVm6�66HV���66H�l�j�j3`�d�r�l3`�d�b�h3`�d���~���	�R���mkBT�����x��ұ
�0��E���C�q��C/��Rw�Xk��UU�����z�����"���>��>0�l���
�<�y�fK�mkBT����%x����iAPK��-�,��$Kȷ�"��L�$�IK~f!g��~\x,�"���z�o�_ϏY�4��~��0��ݏu�z�z����v����[(��ᄒ�5�1�Ag���k۰����J�d{���t�\rX����u͔lᄡ���s1���Ag�t:��Ag�I��1�M���fJ�w_�SJ9l�2����Yɔlᄡ5�r؆Mx~��]����ݗ���}
yB����E`�i��r��n7�r��2��Π30+�4�S��.p�mkBT����x��ױ��@`1��G��XH�������"������%�[�����v'�I6�߫M)m^�b�zkx<]6�c?����������t��J���n������g�7Ŋ{j��B��^�L�5�����gf������FM6՛Y=z���g�?��i�d�g��>/��ߝN�4�gͨ/�Eo��YL{<�,�)z��s����p8���J���Ѝ���W�X�n���wa��s�y�h��v�}Y�=/�o|4Ӱ�K��mkBT����ax��ѡ� DQ�����R.$p"og��3[�{u�U"��ؿ�s�-����1F<қ8���&��cjk->���w(%2����mkBT����8x���1
�0�@��x�N�x6W���	\=N��ĥ�-��G�fy�'�6�H�R�c��z��m���$�S��%�ao�y����X��V��Hm2>����u��}����c솽��c���wq�s�_����C�����
�mkBT����~x�흍��8FSHI!)$����FRHn��w��H�Y��x3��ꇤ����s�a�a�a�axI�����Ǐ��'U�{������o��_����ھg�W9�����������o'�GW
{>~����J��l�����o߾�����������)*/���N�\��ϱ�o��v�[iZ_ձa�JΝ�/:�����6�O�-���92b?�T����l�k�%?������_2����1�B��s��Y��5�>�:�>�c=1�����O�w��y�^�- �ڶ,��X��z��u��sM�#גU]�>H_���y�Y��v�!ۉ���_m�i�Ru�s�]�X�m�_g�)YY�)�m�]�y,���m� z�1��a�a�axE�ߓG�ק��o/�Y��\�k�6��x����j��gH���������|�y��u��.�������\��a�æ�M&�w����k�#�ϐ�$?�]�M�o��\��Ⱦ,�/��ڥ���Q�@��~6s?)}��,� l�����gX #�v�Q���g���B�����ٙ^��u�の�uh��m?�}{]��.~�}�v_��J;�x�o�gJ���Y]�޳�@��.�)��oqC����?}�>@�X���ߘ�'-����(�W�?���������������	�źv�Ɣ����O�ʙ�R����v�[K?[A}�?-�w����m�Ց�}<G�c�K���1}���u��x�LzަU��0�0�Pc[�<>�g\=��c��}�M�����ggg����	�DŽ���-B^��k_g?��F?���� ����v0||؎��=ǧH�P���g�s��/�hؑ�I
�t��~�{���n^�}���Z��yD������5���X���Wv��O)�"��c0��vY�����Z��|~�_%/�,��p\��ɹyΰ�Z�/���;/x����s��_��9?��P�ܯ5ݻ\�[��y|����č8�����g��ʱL{�?�0�0�_�k3���>��������z���_������\S��|<�)�b|�����7��a�a�axn.��t�a?l�^C��vk��ؽ#���~e���)��3<3^�����k�dl�c�&�jK+���o"e�<.�ʞ`���^(3z����u
���l�+6���v��<���ï�
�k7]�/l�c[`�O���n}���򚄫��G��뎱���zt��^v��2)?;Wm�r�5��o�c����Iz�?�����O�zx��{�&��!��e�z.����������"ѯ���
��1�����Gg��{+ҏ���l�w<�=}Gݽ��Fƨ�^�)�����zIp�G�����K��֜�{�{���e����G��12��ۭ��q���iumf��>�.���}�����~�a�?�0�0��[u���+�7�Svq�����֭�y΅�
�?ނ��}���X��w�Ŷ��v�?��ߩ�D��Zۓ�-q/�?߳�=��<��~����#������>���Fk���"q��z�r��Q�o	9��r�,��n�Y[;�o�:)@�-`ק-�7��({��߯�S����@�µ���K��9��֠�ɸ�>:�n�3��
_[�_*�mt�cm��C>�q��S���L���<�?�<n��ѯn!��>=���<�6�;��ǫ�s����a�a�a�{�xˌ�\�ފ��px�?0׋�#�5���z��я��c�]����x^��l�򼠕��(�f���:~����٣^l�i�n�59����W��~�\;�?v�n����6e�r�����UbS~v����^��UO7O(�|;+�S��G�4|?�f�����*?�r���W~�2�o�N��ٟ���S�9��~d�a�����և���mH�6��m�X�[��J����~�s.��y���m�4ٶO���|B��d���/�����b5��ɿ�y���U�?�0�0�0�0�0�0�0�.�P�~�*��1@G\⟿��K����rKX���s2�(ߥ�纎J���8���'>�X@▼�Q��Q�b���q��wx��b�)����_�K|���v� ��1��M�6ke�e-2Ǜ�5��9��?K^�E��~�9�ϱQﱮY��F�8��N?�~;:=J<�����-�t�ĒyNA���g��C��	\�N��X�K�s)'�^K�g\~��2}�6�}Գ����)��n]O��r�^��j�~�"��{p��29w�6��/�.�z-v�:�+����M{�W����JY��Z���굢`%��
�Ҥl9����ힶ�կ�#O�Uz+�U�?;��s���d�~v��N���D��7*.Y�+v:�ye;�8�}�~��|���+ÑޅN�9���}�{Bƞ#t���x��խs�Xɿk��S�V�/��uJ=o�G���<�ջL'����L��:�D]�6�j�f���gL��z�/�+ؽ[{����r��C�M�Y�q�~��[�{�y������y	c�zA������;��w���9��z�szW���H�����V�ax3���� �ף�OmkBT�����x���
�@PJ�J�K�D�v`�`	t�n̬"N�@�m�.�I>;�6)��/����ެ����R=�K�w̆�g`�ڥ���7e�l�׻���w�=S��>�va��QKe>�g�){���Nf��RW�lײ�|����3�2���g�7�O�����=fs��d�駱�OZ���bu1��Y���Lh�~��y��{�����mkBT����Jx���!
�0����`ę��k����,�_�m�����9g��w��c�|�w���Ky'J��轗w��
'�9OԄ�D�mkBT�����x��ӱ
 1��2��_�H��\��X|�n�3R��l��P��;�}mkBT�����x��ױ	B1P+kGp]��.`#�"6.a%�����u�σCny�I���9����O��!���0�<��cu�K�Vw�l���Ku��I�Wwa�)����0�.Nm~���?|�+5�O�S�mkBT�����x��ѡ
�0��_�7d`b`�R>)�s��6�Z�w��9r�E�3��E��d�e�~��Z������@l>��٤
!mkBT����x��ѱ��@EQJ�\�Kؒ\�B2				$$��r2�o��I'���~J)����ݯ�ګR���q�gid������!��m�Z�=���k+���eie���<ϭ��������C��8����C���a��T�=����[��*��xJ�Rq/q���mkBT�����x��ѱ
�0D��?E&t�ƕI�	�w��tc��U5���̬����ϵV��{8jFD}t��.J�@k7��mkBT�����x��ӡ
BA�@PB�����ڰ�AR�r����;��&yY;��Ҳ��n�0/�)����4��,���na��Y���o��%����2��݉��?d^���nax/`�7~<�$&·�mkBT���ǘx��ѡ
�0��?�W4	qP��^:�쥏�z�9�1j��3�Z��y*3?�n��{�x@��7,*mkBT�����x��}+��(��H,��"�H$��"#�X$������,�Q����ԈZs�>U{�	�.�.T��}6�ڳ�-��F`���p]�k߅~��b�
�
О$�wݓٱ����|s��Co���A+�q3��lO�x�@�(�0�a��+?�	��T,�_��7��s\���Ϙ^Bl1)�C��+�k�(�FyN"8��dPC�_9��>O0&l�4��Im+���n�w��G�rŰ����<Q��q	�	+����H�}����e��q���~~�[).�5c��6,�����m�uO���9p\��<//?����N�:��M›p)� �Ĝ-�2p�'�uKq`���_�����/���6�4<~��77S����N��BQ�����맨�uM�{���5�%.B�NɊk:	k�N��m�9���*�u�U�|2���%;������]F�aג)��RE%HWc0Mg�>��)/tih�f���	ѸX�>����E����)��<,�6�s4���5�z�b�?��J��\<OM%O#(7�6�:�=	���ӋYA��ƒH
���L�s6��M�X��BcX�&ǘJ�te�.����	3.je(��?�<?�-1�$p�O=�x���	]<Jt¡�Vg��`|I,<丕}�F�Qj]�o%[Pa��6�XY��<��?�Yoh�F��067ၭ6JF�G[�wv)��7?,�@w�
�nM�Ǧ�m��k>?���L�j��=���%w�Z�izFTx��$��kP�8�E��m�	jAO����ހ��>~������؆���B9���	�֤8U��KC�v�jb�L���C��y����;�mjP.� ����Dk���w��U�E�€3�ܨ�����8x�U��J��s����\���ɟ�+;}s�F�Q(KI��Xݛ�ƨ
�1��+K����dX�];Jģ��c�x$��D�׷���X`i� ���@l̏�rn�m$���^�9΄�zBGϞ�Q=�nf�k�D�e;
<���a�>,�⢞�j��k�0B�[p(��$���Ǡ���p�4n��q`�XƓ�	�vϵ���.x�Hn���or�J���5���H�u����뇗�f����a����[Z:><�M@J�9����$�q]�}=H�k�3����鲺t�Q�=�,	7���߻����s
�>��3�����6[��g���RL�؍����?�(�&w�.7C#~B{�]��
��U�W�7��1jk~�e�cG��r����D�.=��K�����@�W�DZM�0倐����0�\��x��v�q�NZ�>#�
����BE�	��)���&y�A}t�?B��Y�m(�WIp�ɱ���|�2�+��\2�� ��)�l�8��tl�@Z.B�����e񅋍�RS��ƃm>d�I��l���'N
a�dĢG3�%���#�)?��$s�	_5=��Y�BR#-k"qGP-�e�"�f����%֩-ϓ37�����8�M9��ϊ�,���_*n;H����EBƱ��cl�~����
˝[��/sa�g�IE2�,z�1�t�:�kL�������ș壋G)��{7�o���nd������{@r�P�>�k�w�k׽��#�kXfy��E���A��B�9�uM���4P=�_�l���gW��؇�N��#�_n��G�pp,Z��Uu�6ȓ��V��Ӱ��0EK�7*|��]�{��75F\�Զ��zQ��z!��	uH�>��up����T٣�o3P)���[�^�6�����` -�d&�*=�%��fY�<�^��ط`_6����|h���3ء>��2 P��q��7ώ����,Ns�j�F�=B���`�큳�C��i�U�)R鐏@L��Ү�����ǧmb<2FH�Rq��ùF���X�i�䎲�Om�GA�����}:�*��u�f�:@ʫRH�.��6���6�j���c�GOpO-
��6H����K��J��U���:�Jǃ�����v<gz���� �1F*qm�-;�
I�7
?��O�(Yr
�de�
��F�
�	�ѥ��r��H��a���ۡ�>�,����3��D�Z��E��Ʈ�qq���7p�?��Ȍ�K����%ȧ$�;�?�Q�r�6�pP7`�a����^=����R�_����)m���>�D3#£�_'
�I��ɭu͋C��-R�ne㯄����ss���L��<ȭ/��R)|Lt_1���<u�}E
D�zl��$H�+�N_2�scۯ-�rH�V.��������֏'���(}�o	��:]謧�6�Fhlw���@��z�{6�P_�?�
E����h���߹���v��K�/�B�"M��h;�����б�o��)gRm �$�5�, �E�x�(?�:�g�U뵅F�4��� 	���߹�E4��!��q?l���A����Yv��s:mR�(G��Z�y�Gq�+w0)Nz����u�Y�-�&����"�Y	='I����8��{��m�L/~�����!����.�B�����A=���缱Y��|z��:f�#¬oh�2Xj��ǼI|1��i3A(|��vf1���
NK���L�ͫ�.����?�r�]�qBS�^#o�.l�%z�⁋
��Y��~i�䔃P��q�u&7(��U;B��l zF�x׎����M����,|PfV�֠�k��'�N��b̔/�$EN���
HA�i�Q=�u-/T�QAD9����g��W���%YZ�\���aԥ��5�O�jr����u"9��B�zp�̬�vl��l=��ɸY���y�ܾ5t�����mE��z�+���M���>�L�k�=�rr4����/g��E�r��~P��nB�[��\g[{����g��Y�vR�W'��
{Fe�m1���{�w�L��;�7�&$��x�c���0����n����&��u�@5sC�Cձm��8H��ef���t��<PJZ��@��������4�K|��#`}a�kRN�'�~IU!�k�W��L��Z�D�NK����̡U�������;��g��L~a(]��!Bjv�(�f������\��B�}�AuH�R�����g��M��<7�O��:���[�m6u�v����;3��=��w�w�n��������3pK��M�������{�.t�"��nt�?��di�b�C6��=��E	�����,��ѮO�
���0�h�v��G��;=��MV%����ʪ�r�����4�H
8r���K썀�x��A�:�2
�e�.���ݟ0N<g����'�����6��%��G�1�ַm}�^j�n�ҽ�S�0Cz���LX�3���U���M;^�^~Xc����a�vGHu"��
1��kN�K�T�?,���r�=�܎�X}6CBW6ۻ�F��\�3�m{4!]9�ử��J4n��5J�s�w��^�D��h����z������8���P�]�z���1�x��~��J8#c�%�Ͼ��cF{d�����o��@w�0�QsP���_́� ?3yB2Đ{|��5����}�>x{q(a���тa�?���Q�%��l���4�ςxmWI׆�G�C����1���k�Q��3iJh�,����K��R���������O`���ʲ���<!�[��Nw��a����Z���x�\Rtv��^ZJ��a\(��Z�PE���� 1��ޣ�h���y0�S�L!�y�QP̞�#R@ӱ&4�a�9'2��ċ�I�E�8X�Ir��
4��*y��b��˼�/#�
x����;�2R~������O7��h�՘U��^�k�
����(侠,���2���)�C�:(ِ;�Q3>��4�)�%���b6�B8�\��p�����e<��S������+�js��p����%<&t{3?���|N)p7b�����?�a�i�D�Wl����X���Z�>;u��)�ko)#W���S�n�cR�x�{[�sXv1��95�_��0K�����ՙ7�>�Tp�5���ٴ�l3�S�"؝�LX��睫[�5m�����Q="u}���pϘ*x�b�Չ����#iM+��@�Z!�	��Ϯ~j��Y�ݬ����$?5���mt�u�] �%�@��݅:4h8ۃ����tu�3�;�
ΑO�1A/r����
��R*5�����i�&j#Y2:�$Z(a�d�@�>'z
���L�����뇶��6Z��8|`�6�"�X1�_�z'
�F-���я�?��X^�A:?1�;��h/K�VB'��vOn�FS���Ƥ����Q{=kh7��M�wXQ�p�\v�͓�O/��.���
�N3��HKR��l�K�"�q��^W��h��1wt��h@���3�e6�N|������I;y��?8t[�[�!����$,ήL��e�"�z��%IކA�k��R�l!3u�8�ځy��?_�W��)�AbC��O�!rz��a��5S��n֗���#�<�43y��6"���R����߃C��Q�&>�[��#
BH�ǽ�{v�e��kO��T�lq(�UH�͵h��ݔ8�,@t�����ՂL�{p����/�*�L"�d_y��k,4�G̖��bD>,��.ok"�D;�|7�[.�D�C�A���#�i���l����ϟ�I֬�����D�q�]+�eE	��_�--����ڰc�����^���L��q�1~�C��C�����C�9��gN�����H�8Bkh��J��#Z�-`�V�o��M�a 9r$�պZ-�h�kh�
?C�$�	�^��tď��9d(�8P݅]ڶ���w[�wl��;��d��n�׆�o�K��d�H�ބ(D������In�I� M��_(��������5)6H/���Y�1�� �QR�k,n��XH��ʉ�����?>��df��&6����^EJ�m���t��{�C�����C�c`���0ʅv5��x<��\9Y��c����}1�06"״!֏��9�dl:'��1H"�<HN�&]�5��6�9�!I�1;"����YxA��K-�y�m|h�d
�"]�����U�.ak�gbbw24�������j-� Q���Od�-��:N�	dG��˥M�����I	V�G=�W�!r6�w�H3����p"��ۋ����#g6*x�9��k{H��<W�����BQߍO�MV��{Kh��^<�F�W
<�L���:w$|�oY��-Q]<ʫ��!�!垹��F�q@}3f�R�%���oĿM���r�D���+�N|�Y�Y���6�j�r1�1k4��i'X��f�\:�e�޼� �~�P9���1�ߍ��
��&7�8Q�ape�����5 9os�M�y�	�K-��u��u9��Bdx7H�V����&�_���!C�lgL �04���yS��}|�qٳ�k�����b�s:f�'/���㼳@!�]%���z#�=�J�s�`3�W ez<�PIG�C����0�@�4������5�5g��x�c��T�G��U�#�R�CC�?tdx��L`�Ɓ8����dgsT�?M6},_��� �\�k٬��lt΄l�s��:m"2��5�be\]\�˛��{xa�Lo��Q�lPwK7���?M^a,�_�lb(�1�?�����3��݌^7��:���ރ��^�us�ϚqB�8*���h�Gx��Y�C�m5�M~�{Sg�9n�RX�C}[����hO�tC��1#W3�*��:;�&_�G�ۂ�&�H|�����5�L���<4Ƀ��\b������D?]fM{V6*�S�<����e��0,�!��
A��ؾ����K��m��m���ߍ�r���O�oC������2�
���#��p'$�F�˿@!�{0�V��YW���oe�,��'��H'���`�r�1�����#�ͿMRS��Y����ZB�h�|�x��H�@
6�YziWl�wQ��}�yqs��!`��~y#�-O�Ց����I�X���m������y����|�*0o@��]ۓ�^(`P�q�ƒv��ef���v�'�OA=B����݂p��C�J#
��֞����q��5�
R������wV&�)ԩ��n@po��]��{3�v�:������Y���f*aW��_�&'
Jk0n����D�x��\/H����D�u�qZ�\ڌG+啵X�Z�T>z'7�Q��q������Ɍ�#K�R.�/C��V��g�Q�Ȭ�����\��`��?d��1y���uM�6Ƶ8ZX]8�^p��wQ�E��
&�1frR��Ki����$G�����ݜ����Е���h3'��������{���;;�~F��K�37�k���u<p��dʎ��+C�����R���Mz�Ə�7)nҀ���� lEGy�l��:̑�I���o�B�<A\���\6�d��F��q�ϡɅQ�[�1<k���N�>��S%|��Е�sTu�le���b�A}A�����ʹ�1�0�A{�K��ʘӺ�tj����dLI=r�	�PRg���_Lb�R���
Ş�l?�␔�)!��[��F��o��wi&k^�CV(t@p�W2���{h�x�H�GRn�͉�eCb�xԉ����6G�������Q��d27\�ثd�S��=\�F�f*�0�ۣ�OP���5(r�ZߙxQ�Z>�~G�AeN-��jY��7�Ҿn;�n?ӹ"P��x�}���/�N��W:݊&��׾��:x"ꭥу;��R�펔���c䛅љ�������ElmG§a=�h�¨BG_�u���YnZ쫭FYs �U�"zM&�:��Gn��u�.�DX���5Xn�����;�}�ԫ%XO?�~2&����Frjj���8��yA���*�W	������I�����9/��u�b)��Z�l:�s�� 8�5��J��>~�i�������I<�k��¶
�٤�^�S�x�[����s��GD����(�+��"E���HnֆA_��\F�Z���%������?�4`���w��_{�7��"��0�Y��@�f}������PEj�m��v:�Q������rN��[w��z�*���5�c?�j������f�7���?K_�P��', sZ(oT
|��Ó\-%�蔒�h���y������\	cK/	˧YGԻڐ����z&c"*�(,����y�E�q(�y�[���q`�a�7Xļ��~�����R���/��{h�h���"�g��=w���ݠ�՗���?���̶�uNh{�g�?tq���m�,�u�[�Y���ot��+�!�hf��.2]�ݹ?�&��wA�R���F�ľ붾Ue���%��d��l�i����q��Ms&�6�X�w-&�Y�3(���G9��{cׁ�֬ǿM��;����v��n�"���b��)�<�׾���e_�1���p���}��11��F#��YX��p�q]��s��,[�%*&��@�D�f��ҹA�ٙfs���,���>��3Y�ԕ;�:#hEL�ם[ROd��^G�A�˩f�~Y!����E���n��0�~��/�A��
�K�m���>^��WY�q�"���<цF����*c��:x�w�|�͞w��%�ehRg������d�9�̕���v�3�v
Dg��h�>>?��3�h�YDk�gC�(ʹƒ�ԕ���S����Ԝ|�
2Q��94�(�?OG�Q34�
f�cc��PopT�Ya��W(�>�@�t�X4�`�LG�ٞp��Ʉ�a��Űl\�[9�c�26��UM6f,����'����C���4�i<D�n��#�x��г
Hz5�[�
�_�����Qt��m�vN�C_��`��x���~
Mb
s�PEx���؇;�cW��*n\��?���׿v�:O��3@f����R�&�e�����m�[mٜC���5f(�M����Ni��YX�xШ���=�4
y�HO�<�0|���3���[��B	:d1�"Z�O$+Kx�i̒=�s��J����g���~�i[Rz'����G�#�v��}�>�?W~p�sϠ?��k��A��K�rŵ���k@�I�|>^x�s�?�\��`,D��̒�����5��W���^���w�D��M���Xf_8<%|8_왉pP�1����W��lm߃���f?4����:��́�_�Ԕv ���M�;k�:p�����_��sj؎qw]$F��}���y�
��,b'��N��=�o�����0,
������~��M���
Y�R���4�6+!��}@~u�j�ct�C��P.�Y(�x�׎����z�?70�WXFܣ�o�����3z����0���c8�R��G��g�0��T�U��򄽻��w�"/4��֏�����C�Q`[{O���c�n�]��+�{�{�����N!�3��<���V��yx�,!C
�b�.��lf���'��\ ן�����gu,μ���w-/��3ۥ����N���X(�c
����o�MD�s��a�#�#0{c
���%�uDWCB�Z�A��Z6�,؏�x�(Z%�����w���HbhTb2��<$��*c���nk���_�א����#{D+B<�!��S/�g�Ï`�9��.^]��ß��C��+>��3�+��5��]�q����p�j'
r�9��FDȬ)~:�����9Gm��x2���-?s�raG"yvU��pa;R���ă� �A�\&���
�?�#��n	��0�ee����d~o�q嶭�!!DzP^H)>�o��ȑ.�ļ�Զ=Hy�7�S�-M�
�?��8y�c���ߧq�|�#�5"�2Б�l�m#��U�����e�Τ�V���bM���͘�jA�c7�Z
�]>4�gb�
���s	2WRsKg�6���
's8qz�TT[�R�[w��)I��9�5x���Wj��
#�!nN+zP��ڔ�	�Kg��TE�,�����?��{�^R�Dݥ=�R�u^zîc������&D��'i74�S�J�ߔ��&H��U�G�[���cr�ͦ��<����׿~��4}څ��h���;���lpAZ�%�X�Z;t�Q?������y��k1+Ƴu6�[������D��c4�Ɯ����*d��B#!}�e>�samh����G3c^��8u9󼵕⸈߂�U�y��B;f"Y�i=�D�=����4��&�����|�C���3���g]�~���WgjhSIXU��"1A5Fr4�{����A��lj�w�T����t6<�/N�� �\����R�t��a|�i���>�T.�Wo>>�x��ϯ�Y���{緷m,J�{gg}�v~)�]��s!?w��X�����G�F��l!7��U��|Cn�fﳅ:.@mq%��臔���Ru?.��:��aB�ֺ��E#G�g'yX�D�u�SW��NJD)��21�ѵ�V��agW��P���q����Ȓ��s�?¶�@�g")���s\�T���{��f3g��o��^w:^�"��{��d#�!φt�}�,n�yWFKv�„X�4��|<��B+���8�i=�-;��X	5l=/xl��w���n�]� 
�+S�Ӽ,{՞�/Д�V���+<<
�����o �����ԇeNp�^O�����OvqR� �wHF3�݁�=o��;�`~k�R�wC���u¦�k�jE�|��qϩ���KV,���*?��xk��}Q�x�U���/M�����=��հp����=犐�^x�Bˏ���Kx���@�[���I���YB]T��➐����Kq�.ὀP��w����AG\�W�ϋ���9���2S���A\�Y\��y=Ǩ�Gj�����բ�M�@�tԂ��vD���z�+���Bĺ\������լ����6��k�6L��ʦ�R�_r�n�l|UAϯ<
���|��!��;��8�_1�g�sލ��C����� >�VB�~�,����˘_�&f���jp�/W�ԍ�wa�O ���H3����I`���u����1�ͤ������+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W����ݚ�w)��2iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
         <xmp:CreatorTool>Adobe Fireworks CS6 (Macintosh)</xmp:CreatorTool>
         <xmp:CreateDate>2012-11-13T14:35:45Z</xmp:CreateDate>
         <xmp:ModifyDate>2012-12-31T15:05:33Z</xmp:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/png</dc:format>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�Э	�IDATx��Ml��O�G%�"#)�k$S�$4���Qsӡ�r)�C��&��=�D��}h�Y�R=D���R��ٕ#���JNE�i*ؖ@RiqW�vWz\-���$v�HΛ�7o߼y;T"B��:�9�
�ೇR��FMǹ8��PX�(&�bjuf@}�l�r�@��(��ؗc�?Xa(����h4n�����}��h�
����@F)e1��*�+�����8���i�>X��+���>}&��h�N˲���7�$"X�%������h�N����.\X����J�rA)�TJ}I)��R�g�6D�?"�&"���b�n�R� �m���F��$�*{{{��������S�<�M�
� ���k�YѪϵZ��������j�����V���]g�V����c9P�V]�m�I`y?�h4�tZ���Pf�����}�J%������bWW׈R*(��E��"Rj4"��X,�0��>x�&��I��	�w����@=�X,܁�ժ_��4�z�~9�n�`

��J�"@6�G��:X.�M ��T*�ǽ�
1�Կ4;�h"B�R]��
O�<Y������K�8�4����5�����J��X,��v�D)����7E�X,Vn�\�����H488�4�r�n�M�����٭S-��3��J��I$f�6���~D;a�vvdd�h��Ǎ��M�,"b�DD��_��T?-�w�F�1�~};��777�z}___�V��
�g)ӑE��7o�����REd���E���$5Z o��EB"�0?~<��E
@����8FFFL�v�ax�ѣG ��ϛar'q���a�Ճ	���E��!�u�Ԇ��h�6�H``` �����j�
Ggj�R�/�{MPJ��K��~h��?�u�z�O����Qccc�(s������K�^�t���:��1�O>�ĸr��l+9o�i��&���Rj@)���4p2 Ej+���1L��]�h���g��ғF�v�az��@���ؘ&w*���/�lx�[�����d2y�kYJ��E�_D��oA����@�R��

-�X�T�ݾ��.u�8a��D�MFUz����nڶ�/a���ul��h�t�X�{�Q�����0�*�,�J���r��5#�ouuմ,+���i��?oA�y'|gJ�R>�H��R��h4����"rE)ŝ;wB���k"��Ӣ��|
��G��ښa۶_7��������������@frr�3`||��	ܻwϤyC�^YYajj��YYY��]�����M�KXgs<
䷶�2���[[[�n�4N���CCC�������}����%��%�԰R�"�X"�-"["�oy/�m�l:����F��W��h�����err��1��=2�����	055e
�<�8jm���6ʅB��<a���.�'�<��{��1�Q����h�?�/^����]�ј���20!"e�h]D
�F�����n���O'�6��.��w�@�ƍ�i����6����i~%�����{�.�������yt٥���3��ݻ��������D�y����le^xᅢ_Ns&��[��Vׯ_?���,�,x��}^�%΁�t�	V�������۷�0�.���N:���I���T�n�rfx�"�R���~6�w }T�1=��	�r N��0�ʌ�"�c�oA2�����J)C�	3����M|��TjN�x���\�L~�Ѵ�Y�uP��B�^��,kٲ�ip^#(�~������ޞY�׏��,�J�o���Ԝ��U��`˹���y��4�Ɂl�>(~��Q�Voٶ��m�q��uI�)�$�~hggǴ,+�n�i7'�̑�-&������؜ww�E�j�*z�,�-�¹����T�7t[[[f�^O��UM_��	:kdp��J�p���.��&Z��ѳ�
4�¢KX]�t�-x^D~	��p6�x����{%)�8�J����b��Rs�\n�U>���"������I�낊�/8���8@*5�w?
?�WG�̽g��B��w�2�G3���3>�4�'��z�=9=���b�;��3�e~�9��8u�$"��J8�?/�u���5���իM��>���o?���FK�N��|�\n1�J�5��r�	7ρ	gQ�%��1~||\�Ŷ������=�����׮]3t9?������0N�����D�i���A$r��i��A���6�
��E��ԔaY�w,�*��(�~��*�~����!�@���I#bߎ��>ˡ���-J.�(8��9�l�6��r�N>�m۳�m<���x�~��a�v�O�,+��+��?!R��e�}Z��}N٥͸<����9�\��RJ���2��@'��S�\�*��
IEND�B`�media/css/mediamanager_rtl.css000064400000000253152177723720012435 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */
media/css/mediamanager.css000064400000002346152177723720011561 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

#treeview {
	padding: 10px;
	width: 190px;
	overflow: auto;
	/*height: 390px;*/
	border: 0;
}

#folderview {
}

#folderview .path {
	margin-bottom: 10px;
}

#folderview .view {
	display: block;
	margin: 0;
	padding: 0;
	height: 360px;
}

#folderview input#folderpath {
	width: 65%;
	background-color: #f5f5f5;
}

#folderview input#foldername {
	width: 20%;
}

#folderview iframe#folderframe {
	height: 100%;
}

#uploads .upload {
	padding: 4px;
}

div#media-noimages {
	width: 100%;
	text-align:center;
	font-size:14px;
	font-weight:bold;
	color:#CCCCCC;
}

.overall-title, .current-title {
	font-size:12px;
}

.spinner {
	position: absolute;
	left: 50%;
	opacity: 0.9;
	filter: alpha(opacity=90);
	-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90);
	z-index: 999;
	background: #fff;
}
.spinner-msg {
	text-align: center;
	font-weight: bold;
}

.spinner-img {
	background: url(../../jui/images/ajax-loader.gif) center no-repeat;
	width: 66px;
	height: 66px;
	margin: 0 auto;
}

p.nowarning {
	float: left;
	margin-right: 15px;
}

div#update-progress {
	clear: both;
}
media/css/controls-ted.png000064400000003027152177723720011555 0ustar00�PNG


IHDRdtD�g��PLTE�����������������������أ�������������˴����ީ��������������rv���������̌�������WWW���������}}}�������36��ܮ����������iii������������___���������������֕����������������似���������������ѫ����ϵ�������㝝�������������www�����ٸ���������������І�������������������׻�������������������р��������vvv������������333���������������������������������������������fff�������������������/�tRNS@��f6IDATx�행S�Fŷ�}7m�&i!$�!	�}lN�>d��T�.���xw��R/��j�	��~�[����� B|�)BȬTv*5!�/hH�J�T͏
Ș6��
�0m"��q�~e�ʙ`A�z��ݖ|>�r�A�^@+/��
�!���u�vݻ�KB��$�����O����j��7�e�9���&M!}�>�����t�ţ�(}�!u|�!k�jukkk�ѣQ�Z�~NY��ZcO��_M
(U,UU��.��b2��&�V��>%'Ch��0u�H�a,WG&�~�,�omݼM�&K�RI+��(�(���a���|��܉�� �d�4M5a��0�����e�Ǜ|�vv�D�i2ﺮ:��p��u���|�v�ϺD�i�iY�:a�ɰb�[���
^o6�t�����D�yN�t]��r{�zN׷A���xk����z�u"��ty]^H�m��lvc}}#gۻ_�v�o�V#P:C~��\i!!=�ϋ�s92o
����ѷpo��뽅���/�P��	+|A���9g�^�,��y[����hf���L� �97������fhγ�<s
�C8۫� ���C�j�);a�!!8�H:�K,'	�H8P�_��Y	Z�ڙ85X�p�A�_�cà��@-�0H8x��1t
�̽���"�9�|�\����������q�Cb�����b�28�!%b�����Q�+]�1Y��t2�4f����\L'�AYL��B#�!��N�Ï�8�!:1���X\й�!6����w,v��!�9�<�b��R��MB&�#����8S�p��}$�6<�p��dY�$����7!�e	B��
e#ޏ�ҡ!��?E���ʡi���7D!�k�[��(�}
�<9;��}��C�4�~;�h��!�W0{�M�?4��L6�!������PN�g�i"r�'wS��|H�D"���N.���w]�[���#�D��I�$j5��DM�&Q��I�$j5������>�W�IEND�B`�media/css/mediaelementplayer.css000064400000060730152177723720013016 0ustar00.mejs-offscreen{
/* Accessibility: hide screen reader texts (and prefer "top" for RTL languages).  Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-how/ */
	clip: rect(1px 1px 1px 1px); /* IE6, IE7 - no likey commas */
	clip: rect(1px, 1px, 1px, 1px); /* IE8-IE11 - we likey commas, no support for clip-path */
	clip-path: polygon(0px 0px, 0px 0px,0px 0px, 0px 0px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.mejs-container {
	position: relative;
	background: #000;
	font-family: "Helvetica", Arial, serif;
	text-align: left;
	vertical-align: top;
	text-indent: 0;
}

.mejs-fill-container,.mejs-fill-container .mejs-container{
    	width: 100%;
    	height: 100%;
}

.mejs-fill-container{
    	overflow: hidden;
}

.mejs-container:focus {
	outline: none;
}

.me-plugin {
	position: absolute;
}

.mejs-embed, .mejs-embed body {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: #000;
	overflow: hidden;
}

.mejs-fullscreen {
	/* set it to not show scroll bars so 100% will work */
	overflow: hidden !important;
}

.mejs-container-fullscreen {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	z-index: 1000;
}
.mejs-container-fullscreen .mejs-mediaelement,
.mejs-container-fullscreen video {
	width: 100%;
	height: 100%;
}

.mejs-clear {
	clear: both;
}

/* Start: LAYERS */
.mejs-background {
	position: absolute;
	top: 0;
	left: 0;
}

.mejs-mediaelement {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.mejs-poster {
	position: absolute;
	top: 0;
	left: 0;
	background-size: contain ;
	background-position: 50% 50% ;
	background-repeat: no-repeat ;
}
:root .mejs-poster img {
	display: none ;
}

.mejs-poster img {
	border: 0;
	padding: 0;
}

.mejs-overlay {
	position: absolute;
	top: 0;
	left: 0;
}

.mejs-overlay-play {
	cursor: pointer;
}

.mejs-overlay-button {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100px;
	height: 100px;
	margin: -50px 0 0 -50px;
	background: url("bigplay.svg") no-repeat;
}

.no-svg .mejs-overlay-button {
	background-image: url("bigplay.png");
}

.mejs-overlay:hover .mejs-overlay-button {
	background-position: 0 -100px ;
}

.mejs-overlay-loading {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 80px;
	height: 80px;
	margin: -40px 0 0 -40px;
	background: #333;
	background: url("background.png");
	background: rgba(0, 0, 0, 0.9);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.9)), to(rgba(0,0,0,0.9)));
	background: -webkit-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
	background: -moz-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
	background: -o-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
	background: -ms-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
	background: linear-gradient(rgba(50,50,50,0.9), rgba(0,0,0,0.9));
}

.mejs-overlay-loading span {
	display: block;
	width: 80px;
	height: 80px;
	background: transparent url("loading.gif") 50% 50% no-repeat;
}

/* End: LAYERS */

/* Start: CONTROL BAR */
.mejs-container .mejs-controls {
	position: absolute;
	list-style-type: none;
	margin: 0;
	padding: 0;
	bottom: 0;
	left: 0;
	background: url("background.png");
	background: rgba(0, 0, 0, 0.7);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
	background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	height: 30px;
	width: 100%;
}
.mejs-container .mejs-controls  div {
	list-style-type: none;
	background-image: none;
	display: block;
	float: left;
	margin: 0;
	padding: 0;
	width: 26px;
	height: 26px;
	font-size: 11px;
	line-height: 11px;
	font-family: "Helvetica", Arial, serif;
	border: 0;
}

.mejs-controls .mejs-button button {
	cursor: pointer;
	display: block;
	font-size: 0;
	line-height: 0;
	text-decoration: none;
	margin: 7px 5px;
	padding: 0;
	position: absolute;
	height: 16px;
	width: 16px;
	border: 0;
	background: transparent url("controls.svg") no-repeat;
}

.no-svg .mejs-controls .mejs-button button {
	background-image: url("controls.png");
}

	/* :focus for accessibility */
.mejs-controls .mejs-button button:focus {
	outline: dotted 1px #999;
}

/* End: CONTROL BAR */

/* Start: Time (Current / Duration) */
.mejs-container .mejs-controls .mejs-time {
	color: #fff;
	display: block;
	height: 17px;
	width: auto;
	padding: 10px 3px 0 3px ;
	overflow: hidden;
	text-align: center;
	-moz-box-sizing: content-box;
	-webkit-box-sizing: content-box;
	box-sizing: content-box;
}

.mejs-container .mejs-controls .mejs-time a {
	color: #fff;
	font-size: 11px;
	line-height: 12px;
	display: block;
	float: left;
	margin: 1px 2px 0 0;
	width: auto;
}
/* End: Time (Current / Duration) */

/* Start: Play/Pause/Stop */
.mejs-controls .mejs-play button {
	background-position: 0 0;
}

.mejs-controls .mejs-pause button {
	background-position: 0 -16px;
}

.mejs-controls .mejs-stop button {
	background-position: -112px 0;
}
/* Start: Play/Pause/Stop */

/* Start: Progress Bar */
.mejs-controls div.mejs-time-rail {
	direction: ltr;
	width: 200px;
	padding-top: 5px;
}

.mejs-controls .mejs-time-rail span, .mejs-controls .mejs-time-rail a {
	display: block;
	position: absolute;
	width: 180px;
	height: 10px;
	-webkit-border-radius: 2px;
	-moz-border-radius: 2px;
	border-radius: 2px;
	cursor: pointer;
}

.mejs-controls .mejs-time-rail .mejs-time-total {
	margin: 5px;
	background: #333;
	background: rgba(50,50,50,0.8);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
	background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
}

.mejs-controls .mejs-time-rail .mejs-time-buffering {
	width: 100%;
	background-image: -o-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-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
	background-image: -webkit-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-image: -moz-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-image: -ms-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-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);
	-webkit-background-size: 15px 15px;
	-moz-background-size: 15px 15px;
	-o-background-size: 15px 15px;
	background-size: 15px 15px;
	-webkit-animation: buffering-stripes 2s linear infinite;
	-moz-animation: buffering-stripes 2s linear infinite;
	-ms-animation: buffering-stripes 2s linear infinite;
	-o-animation: buffering-stripes 2s linear infinite;
	animation: buffering-stripes 2s linear infinite;
}

@-webkit-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-moz-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-ms-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-o-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }

.mejs-controls .mejs-time-rail .mejs-time-loaded {
	background: #3caac8;
	background: rgba(60,170,200,0.8);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(44,124,145,0.8)), to(rgba(78,183,212,0.8)));
	background: -webkit-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
	background: -moz-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
	background: -o-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
	background: -ms-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
	background: linear-gradient(rgba(44,124,145,0.8), rgba(78,183,212,0.8));
	width: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-current {
	background: #fff;
	background: rgba(255,255,255,0.8);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
	background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	width: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-handle {
	display: none;
	position: absolute;
	margin: 0;
	width: 10px;
	background: #fff;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	cursor: pointer;
	border: solid 2px #333;
	top: -2px;
	text-align: center;
}

.mejs-controls .mejs-time-rail .mejs-time-float {
	position: absolute;
	display: none;
	background: #eee;
	width: 36px;
	height: 17px;
	border: solid 1px #333;
	top: -26px;
	margin-left: -18px;
	text-align: center;
	color: #111;
}

.mejs-controls .mejs-time-rail .mejs-time-float-current {
	margin: 2px;
	width: 30px;
	display: block;
	text-align: center;
	left: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-float-corner {
	position: absolute;
	display: block;
	width: 0;
	height: 0;
	line-height: 0;
	border: solid 5px #eee;
	border-color: #eee transparent transparent transparent;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	top: 15px;
	left: 13px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float {
	width: 48px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current {
	width: 44px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner {
	left: 18px;
}

/*
.mejs-controls .mejs-time-rail:hover .mejs-time-handle {
	visibility:visible;
}
*/
/* End: Progress Bar */

/* Start: Fullscreen */
.mejs-controls .mejs-fullscreen-button button {
	background-position: -32px 0;
}

.mejs-controls .mejs-unfullscreen button {
	background-position: -32px -16px;
}
/* End: Fullscreen */


/* Start: Mute/Volume */
.mejs-controls .mejs-volume-button {
}

.mejs-controls .mejs-mute button {
	background-position: -16px -16px;
}

.mejs-controls .mejs-unmute button {
	background-position: -16px 0;
}

.mejs-controls .mejs-volume-button {
	position: relative;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider {
	display: none;
	height: 115px;
	width: 25px;
	background: url("background.png");
	background: rgba(50, 50, 50, 0.7);
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	top: -115px;
	left: 0;
	z-index: 1;
	position: absolute;
	margin: 0;
}

.mejs-controls .mejs-volume-button:hover {
	-webkit-border-radius: 0 0 4px 4px;
	-moz-border-radius: 0 0 4px 4px;
	border-radius: 0 0 4px 4px;
}

/*
.mejs-controls .mejs-volume-button:hover .mejs-volume-slider {
	display: block;
}
*/

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total {
	position: absolute;
	left: 11px;
	top: 8px;
	width: 2px;
	height: 100px;
	background: #ddd;
	background: rgba(255, 255, 255, 0.5);
	margin: 0;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current {
	position: absolute;
	left: 11px;
	top: 8px;
	width: 2px;
	height: 100px;
	background: #ddd;
	background: rgba(255, 255, 255, 0.9);
	margin: 0;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle {
	position: absolute;
	left: 4px;
	top: -3px;
	width: 16px;
	height: 6px;
	background: #ddd;
	background: rgba(255, 255, 255, 0.9);
	cursor: N-resize;
	-webkit-border-radius: 1px;
	-moz-border-radius: 1px;
	border-radius: 1px;
	margin: 0;
}

/* horizontal version */
.mejs-controls a.mejs-horizontal-volume-slider {
	height: 26px;
	width: 56px;
	position: relative;
    display: block;
    float: left;
    vertical-align: middle;
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total {
	position: absolute;
	left: 0;
	top: 11px;
	width: 50px;
	height: 8px;
	margin: 0;
	padding: 0;
	font-size: 1px;
	-webkit-border-radius: 2px;
	-moz-border-radius: 2px;
	border-radius: 2px;
	background: #333;
	background: rgba(50,50,50,0.8);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
	background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
	background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current {
	position: absolute;
	left: 0;
	top: 11px;
	width: 50px;
	height: 8px;
	margin: 0;
	padding: 0;
	font-size: 1px;
	-webkit-border-radius: 2px;
	-moz-border-radius: 2px;
	border-radius: 2px;
	background: #fff;
	background: rgba(255,255,255,0.8);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
	background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
	background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle {
	display: none;
}

/* End: Mute/Volume */

/* Start: Track (Captions and Chapters) */
.mejs-controls .mejs-captions-button {
	position: relative;
}

.mejs-controls .mejs-captions-button button {
	background-position: -48px 0;
}
.mejs-controls .mejs-captions-button .mejs-captions-selector {
	visibility: hidden;
	position: absolute;
	bottom: 26px;
	right: -51px;
	width: 85px;
	height: 100px;
	background: url("background.png");
	background: rgba(50,50,50,0.7);
	border: solid 1px transparent;
	padding: 10px 10px 0 10px;
	overflow: hidden;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}

.mejs-controls .mejs-captions-button:hover  .mejs-captions-selector {
	visibility: visible;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul {
	margin: 0;
	padding: 0;
	display: block;
	list-style-type: none !important;
	overflow: hidden;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li {
	margin: 0 0 6px 0;
	padding: 0;
	list-style-type: none !important;
	display: block;
	color: #fff;
	overflow: hidden;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input {
	clear: both;
	float: left;
	margin: 3px 3px 0 5px;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label {
	width: 55px;
	float: left;
	padding: 4px 0 0 0;
	line-height: 15px;
	font-family: "Helvetica", Arial, serif;
	font-size: 10px;
}

.mejs-controls .mejs-captions-button .mejs-captions-translations {
	font-size: 10px;
	margin: 0 0 5px 0;
}

.mejs-chapters {
	position: absolute;
	top: 0;
	left: 0;
	border-right: solid 1px #fff;
	width: 10000px;
	z-index: 1;
}

.mejs-chapters .mejs-chapter {
	position: absolute;
	float: left;
	background: #222;
	background: rgba(0, 0, 0, 0.7);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
	background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
	filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232,endColorstr=#000000);
	overflow: hidden;
	border: 0;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block {
	font-size: 11px;
	color: #fff;
	padding: 5px;
	display: block;
	border-right: solid 1px #333;
	border-bottom: solid 1px #333;
	cursor: pointer;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block-last {
	border-right: none;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block:hover {
	background: #666;
	background: rgba(102,102,102, 0.7);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(102,102,102,0.7)), to(rgba(50,50,50,0.6)));
	background: -webkit-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
	background: -moz-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
	background: -o-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
	background: -ms-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
	background: linear-gradient(rgba(102,102,102,0.7), rgba(50,50,50,0.6));
	filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666,endColorstr=#323232);
}

.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title {
	font-size: 12px;
	font-weight: bold;
	display: block;
	white-space: nowrap;
	text-overflow: ellipsis;
	margin: 0 0 3px 0;
	line-height: 12px;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan {
	font-size: 12px;
	line-height: 12px;
	margin: 3px 0 4px 0;
	display: block;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.mejs-captions-layer {
	position: absolute;
	bottom: 0;
	left: 0;
	text-align:center;
	line-height: 20px;
	font-size: 16px;
	color: #fff;
}

.mejs-captions-layer  a {
	color: #fff;
	text-decoration: underline;
}

.mejs-captions-layer[lang=ar] {
	font-size: 20px;
	font-weight: normal;
}

.mejs-captions-position {
	position: absolute;
	width: 100%;
	bottom: 15px;
	left: 0;
}

.mejs-captions-position-hover {
	bottom: 35px;
}

.mejs-captions-text {
	padding: 0;
	background: url("background.png");
	background: rgba(20, 20, 20, 0.5);
	white-space: pre-wrap;
	-webkit-box-shadow: 5px 0 0 rgba(20, 20, 20, 0.5), -5px 0 0 rgba(20, 20, 20, 0.5);
	box-shadow: 5px 0 0 rgba(20, 20, 20, 0.5), -5px 0 0 rgba(20, 20, 20, 0.5);
}
/* End: Track (Captions and Chapters) */

/* Start: Error */
.me-cannotplay {
}

.me-cannotplay a {
	color: #fff;
	font-weight: bold;
}

.me-cannotplay span {
	padding: 15px;
	display: block;
}
/* End: Error */


/* Start: Loop */
.mejs-controls .mejs-loop-off button {
	background-position: -64px -16px;
}

.mejs-controls .mejs-loop-on button {
	background-position: -64px 0;
}

/* End: Loop */

/* Start: backlight */
.mejs-controls .mejs-backlight-off button {
	background-position: -80px -16px;
}

.mejs-controls .mejs-backlight-on button {
	background-position: -80px 0;
}
/* End: backlight */

/* Start: Picture Controls */
.mejs-controls .mejs-picturecontrols-button {
	background-position: -96px 0;
}
/* End: Picture Controls */


/* context menu */
.mejs-contextmenu {
	position: absolute;
	width: 150px;
	padding: 10px;
	border-radius: 4px;
	top: 0;
	left: 0;
	background: #fff;
	border: solid 1px #999;
	z-index: 1001; /* make sure it shows on fullscreen */
}
.mejs-contextmenu .mejs-contextmenu-separator {
	height: 1px;
	font-size: 0;
	margin: 5px 6px;
	background: #333;
}

.mejs-contextmenu .mejs-contextmenu-item {
	font-family: "Helvetica", Arial, serif;
	font-size: 12px;
	padding: 4px 6px;
	cursor: pointer;
	color: #333;
}
.mejs-contextmenu .mejs-contextmenu-item:hover {
	background: #2C7C91;
	color: #fff;
}

/* Start: Source Chooser */
.mejs-controls .mejs-sourcechooser-button {
	position: relative;
}

.mejs-controls .mejs-sourcechooser-button button {
	background-position: -128px 0;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector {
	visibility: hidden;
	position: absolute;
	bottom: 26px;
	right: -10px;
	width: 130px;
	height: 100px;
	background: url("background.png");
	background: rgba(50,50,50,0.7);
	border: solid 1px transparent;
	padding: 10px;
	overflow: hidden;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul {
	margin: 0;
	padding: 0;
	display: block;
	list-style-type: none !important;
	overflow: hidden;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li {
	margin: 0 0 6px 0;
	padding: 0;
	list-style-type: none !important;
	display: block;
	color: #fff;
	overflow: hidden;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input {
	clear: both;
	float: left;
	margin: 3px 3px 0 5px;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label {
	width: 100px;
	float: left;
	padding: 4px 0 0 0;
	line-height: 15px;
	font-family: "Helvetica", Arial, serif;
	font-size: 10px;
}
/* End: Source Chooser */

/* Start: Postroll */
.mejs-postroll-layer {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url("background.png");
	background: rgba(50,50,50,0.7);
	z-index: 1000;
	overflow: hidden;
}
.mejs-postroll-layer-content {
	width: 100%;
	height: 100%;
}
.mejs-postroll-close {
	position: absolute;
	right: 0;
	top: 0;
	background: url("background.png");
	background: rgba(50,50,50,0.7);
	color: #fff;
	padding: 4px;
	z-index: 100;
	cursor: pointer;
}
/* End: Postroll */


/* Start: Speed */
div.mejs-speed-button {
	width: 46px !important;
	position: relative;
}

.mejs-controls .mejs-button.mejs-speed-button button {
	background: transparent;
	width: 36px;
	font-size: 11px;
	line-height: normal;
	color: #ffffff;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector {
	display: none;
	position: absolute;
	top: -100px;
	left: -10px;
	width: 60px;
	height: 100px;
	background: url("background.png");
	background: rgba(50, 50, 50, 0.7);
	border: solid 1px transparent;
	padding: 0;
	overflow: hidden;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}


.mejs-controls .mejs-speed-button:hover > .mejs-speed-selector {
	display: block;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label.mejs-speed-selected {
	color: rgba(33, 248, 248, 1);
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul {
	margin: 0;
	padding: 0;
	display: block;
	list-style-type: none !important;
	overflow: hidden;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul li {
	margin: 0 0 6px 0;
	padding: 0 10px;
	list-style-type: none !important;
	display: block;
	color: #fff;
	overflow: hidden;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul li input {
	clear: both;
	float: left;
	margin: 3px 3px 0 5px;
	display: none;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label {
	width: 60px;
	float: left;
	padding: 4px 0 0 0;
	line-height: 15px;
	font-family: "Helvetica", Arial, serif;
	font-size: 11px;
	color: white;
	margin-left: 5px;
	cursor: pointer;
}

.mejs-controls .mejs-speed-button .mejs-speed-selector ul li:hover {
	background-color: rgb(200, 200, 200) !important;
	background-color: rgba(255,255,255,.4) !important;
}
/* End: Speed */

/* Start: Jump Forward */

.mejs-controls .mejs-button.mejs-jump-forward-button {
	background: transparent url("jumpforward.png") no-repeat 3px 3px;
}
.mejs-controls .mejs-button.mejs-jump-forward-button button {
	background: transparent;
	font-size: 9px;
	line-height: normal;
	color: #ffffff;
}

/* End: Jump Forward */

/* Start: Skip Back */

.mejs-controls .mejs-button.mejs-skip-back-button {
	background: transparent url("skipback.png") no-repeat 3px 3px;
}
.mejs-controls .mejs-button.mejs-skip-back-button button {
	background: transparent;
	font-size: 9px;
	line-height: normal;
	color: #ffffff;
}

/* End: Skip Back */

media/css/medialist-thumbs_rtl.css000064400000000417152177723720013300 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

div.imgOutline {
	float: right;
	border-left: 0 solid #f0f0f0;
	border-right: 1px solid #f0f0f0;
}
media/css/popup-imagemanager_rtl.css000064400000001301152177723720013574 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

#messages {
	right: 175px;
	float: right;
}

/* added Angie */

#imageForm fieldset,
#uploadform,
#upload-noflash {
	text-align: right;
}

.fltrt {
	float: left;
}

.fltlft {
	float: right;
}

fieldset input,
fieldset textarea,
fieldset select,
fieldset img,
fieldset button {
	float: right;
    margin: 5px 0 5px 5px;
}

label.hidelabeltxt {
	text-indent: -9999em;
}
#imageForm fieldset label,
#uploadform fieldset label {
    float: right;
    clear: none;
    clear: right;
}
.swiff-uploader-box {
        right:auto!important;
}
media/css/controls-wmp.png000064400000012607152177723720011610 0ustar00�PNG


IHDRddp�TNIDATx��\Dd�NC+c*�)�C�a*���"b�(J�1T���4$�d����n�DC"""�$"�Ȋ�׾�����vw���v?<ν��sN}��9�f��z��8Z4�Ã�W>�4���U����mX][_�������j5�V-�	�j�ͩ�Za���c�����*���<�y�1D�7��������h����v�?`m�3�m���Q�FC��]�yd�^���bB��u��l!J�"!$«5��	�t�����>bs���X\;B|�P��V֏���/q||���3����%1���P�?V�t|��KY�͖�s:z��ʽ������G��#���ʈдɩM����;��
	����Adv;5b7���`fa��#쐜֏���:�Y�]#o���	?~L������~ HB��XDz�����z���Ab�X93�(&��	��
�bw�����g&�s�^5�|���Y���VQ�^��3��k����᯿�Jbgg��*h��I��a|��`2O��F
ɼ���E�;����דQס����ͨX����n��t��`f�M!��-n�Y&ϨgG� I$5�~���n����7�D��S�Ç��T᪻�������I���!��;B���b2:5mt[�]=TN!ıa:X���i��Xpj�t��-�'`��Yb�[rؖ���>6�.��V�����N	!$��p(;�xp�r��+�;I�i{���ա��f�a��}����~G�"B�_:L��W�ɷwz�a:�g*�	q�"��$�Y'��{�'`���9�V��I�Ek;猔MN��x���������[����!I��+�E�d*�$J�#ee�>$��E����ΤL�_6��|���9���8A�i3[I"��X::��5���Kz��YK>�=lK�R��BRVw�ЖPY�F����w�����(R��U�ǒ�UT��`ii������}��f���X���G�@�U�+�zH[\?�b�chB�����Kg�(��>:�7�B0�ku�k���'9�G"	E��JWc�ƥ�p���ڛ�T��)!�ԕW�*;[9}��7YvK�@�7Z,E_ڤ� �`0d���	�]��a��I2}j�p��lh��**f���["� ��Dx��p&��������R]#�
�D����-12ܱm�-��>�78��r��!�*$E ��oY__�Ye��&��H9�괼<���oVY�~�gppp@�WWWQZZZ��W,?~rB�/xK��.��I[q�8||ӻ��nF@�o�W����	�t��Eb�Ë
��Et
H
�z�B����Q�D7����gy�y�֎F�k�}���WNn6�����b_�!%%�H��a"mH�]�Q�f4s��)�y��pi~mstƀA�E���#��k�"����s���뇳h�h�M��?O(o�-�C�oR�Cb��Rm�%��G/��W/�f'���\ҁ�v��g���*t�|���S��/+G�$H*��vꇇ�x��X��Ez���F��+��12�Q���'�[Gҩ��\:yM�G
[�G���?��<<Z���Yb�-iS�f	�~CJ�
3B��CT;�P�p:�(F�Q$��gY$��孤��qppb���N�McZ��b�$�dDnɘ2V�AzI���O�#!òQJ	Y�/�l2ZF���-�(R�#��%�H
��.!e�C�D�D�����6�j{���io����W��G�Zg�?���ad�Dl����[#V	E�U$f�N}'#����0[FS�(Z9�xe~a�-���X�}��(�H���;/K`��L�ӛ[g�3���5��.:�;"i�N�q4�`��d뉢�A��'NO{�p"��h��F�̢�mz�I��M�s�����A[�;�ٺ���c��7�:����M�xFh�{�j��^O��aE�
�ȯ#ja�x��"#�W�`qP`
�e��W}8{�$~�}o��y��B�;�R>��T?��ں��Y��Y��4�c��8\�58|q�4G�g�hՐG�m�mA�QT7Hb�_��SƸ��mbfK;LҾ�6��������/��Cym?��e',I1~ɗՖ�ONF����BܟC��G�ڧ�[1�\˰‹���v�!F���K� 
���ģQ�2�"�\{ӗ������G��lS�d?�~@54�/��|@%d�p���A�DGk[��� �
�!��>��a�i$d�
�TF~=	��!���5^\\\d�ӳs��QX���	g_����r
���널A��\j�߾���n�h���E�%�~(���*"�B|���FFHN�F��8�d'��w�Q@6��W�p��o�]rF�}������P�mj�m3!}�Ւ�j��!�(����C����$���*"\n��
F��oooOE��斚�ZZZH�o>�T:ڵ*[�����S�u��s���8��;GP�Fa�
���H[���Bbs�v�k��QCA�ٞ�y�G^�(������R�����w�]�I���\���W���E0Te�h������?tY.�bC�%Bg���1�Q��k���WCa�(
_��0��C������
��&M�)�i��v�؏sF�rm#*B̕��L��ѡ�C�>�mjn�kuJ�aM���+y-/GuMM��?lY5�Yc0T#�v���0�J�%
an� �(h���f:��lJ!��Z?��I"YW�eV�"�MT����Q?
%51T�������Ppyy)Ó\KĤ���ߟ��Z?����m�Ë&:�eF��M<�0���m�(h�B�k
�W�8�����:��\�����&��ۑ�b�6�p�����H����1�r[?�<$y�t6�5�M�DX�%r�׌�?$B�^�j���I伦��0�ky�y��`��"�Caj
���I�nl�9����I7|�n�K֑�잕������y�5������VP�<�R~�;B�"�����WC���I У�FFF�4X]O���ߚ�V���Ok�o���½��-���V����}���e�[;���C��<�oB��(
��S"�K������}�x�\�-��x��r7������\%&�U�� ���]"C�F�{�^
�ͯ_'WY����y���94� �d���e�v���Aa�K01�[G�C��Qp��E��6w�y�o�m��ޚ��>V`���vg�
��^}@��'9gMMM%�!LU$����f}���~�Ԏ]��ڭ���a;��a����߄q`FI�6�׻�`�Ik*�gz�K�ԻN�N���m�
z6���0�]Beh.�[Zۋt�J��ח��:�� �t�e	�&�7--�GQ����O�
��u�]�z��:�;�
�!/���.̡����6����g&B��*���܅!����:>��%BB�i�q||KKK)ϲ��rF�AEƟj%6�V��Q��'TϞ#[ۇq���x9y�����`��E1�rtO�����/�g=b�u�F��!L�00*ʣ�K\�ѽ��V!G0��w�+D���ƭ�z��m_�y�
��1���c��ܠB0}t��B��B�>Y>#8��	��Ǫͺ��|��%�x���C�[��M`l�=G�a]�@I�e���,��j�Ւ���
��SI���g(����st����k4��t2ҵR�[�h�����O��3�Q����!I��sԭܠV����{!DZ�Q��%��׈~�c['�r�V\�����
�;���9D�O1�����k�7>���B
a��<y�m���g��dv���K(����шn��a%��g٤J���#&�Ƈ�p�!b��3fH@��0�sB"�(k�Cq�G'���ъl]�i
���!8����b�0t��;E�����/��=��n�����rd��Vq;�(](�$J�>����*�
�
~�W��z/�͖�,�t�OZAA���
Kn
���:u�:u�:u��t�:u�:uuM��F��v�N�m�t��M����H�ze�n?M�^N�z�OЩ;�S�d�h�[u��'Щ�R�^�U�g����[3�*M��h���QQ�5Z�o�
�Ϛ�őm�4d�Щ[~�N�����o�ߦG�
�E��Nݚ�[J���_ԩ�wx�o�S/��-�S/�N���;��p�F����'�vm��N]�U~���)t�����_e�t�&�ԑ�N�+��T��A���<�3�Q�T�U>M���^�:u}�N�$]�z���5Ѭ�������y֛�D������e�@�N�� �5��E��TF�2ѩW<S:2ש7w�Ԩ;�!����,o��D�n�td�So���W�$D����T����ȠN�E�:����?`w��?�TKYΟ��u�O�S�pR:�����T��u�,�l�62ѩ;t�z:uj�S��!��(���r�jC�y��ѩ?'B�S7W��р��Tئ.7[�(d��cf{i�ԟ!!���E�.R� ��4H��<���mճ�t��iy�N=��]4}?���y5�ԛ���X?I���O:��HH�:uj�S�%����IG3MUnf��F�EDA�Pz:��c�שS��Rx����0�;R�3�K�g�S>�x�:5�ė��FћI�)�e�S�F����N�d����#�"�3MY�z��ԟ�Q��e�S7��K��f�����.75�g�S�6�q<��{����MM�)4@�U��=�Lt�UY�٨S/JW�nz�����{��&]�{ʇ�֩[m�gMu�yԩk����丣F�,���&ޛ�O��J��-��1�y��t��Y�)�z!u�ZZ:�.�9nNʮI��;�ѩ�:翖{�v��֩3:r�t��ĝ����t�F��G���/�Թ�k�e
)t�&�Ե_�Sת_�C�C:�<�Ե_�S�H�9K��t�F�Ե'ԩkԩk_UU������v�\�Е�#^׋'Щkԩkԩ�C�c����M���:�⟠S7Q������3�ԋ�S��N��:��ԩ�t{:�N=�:�Bjҋ�S/�F]�:u�G�z!u�?��z��nf��s���}����p��݆��|�d��Ϙ�]�/�<��t/bu�
ٳO�9�z�>ay�����V���X=��x��Ub�~��|q�#HJ��W'�g[k���A[�@��9�b��Ej��3��r�}H��N�϶��X��0v![�;F��$%XF� ��U�Tx6tB~���K��<$v�=x��A�I�.�?���	��fiB��%�a[�F��è%7>�:������o�Z�S��K
)�gԳ�6=:��rJ:PҶ[������`��39�:�馛n�馛n�馛n�馛n��j��/[���P�IEND�B`�media/css/bigplay.svg000064400000002005152177723720010575 0ustar00<?xml version="1.0" standalone="no"?>
<svg id="bigplay" viewBox="0 0 100 200" style="background-color:#ffffff00" version="1.1"
	xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
	x="0px" y="0px" width="100px" height="200px"
>
	<g id="dark">
		<path id="Polygon"  d="M 72.5 49.5 L 38.75 68.9856 L 38.75 30.0144 L 72.5 49.5 Z" fill="#ffffff" opacity="0.75" />
		<path id="Ellipse" d="M 13 50.5 C 13 29.7891 29.7891 13 50.5 13 C 71.2109 13 88 29.7891 88 50.5 C 88 71.2109 71.2109 88 50.5 88 C 29.7891 88 13 71.2109 13 50.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="0.75"/>
	</g>
	<g id="light">
		<path id="Polygon2"  d="M 72.5 149.5 L 38.75 168.9856 L 38.75 130.0144 L 72.5 149.5 Z" fill="#ffffff" opacity="1.0" />
		<path id="Ellipse2" d="M 13 150.5 C 13 129.7891 29.7891 113 50.5 113 C 71.2109 113 88 129.7891 88 150.5 C 88 171.211 71.2109 188 50.5 188 C 29.7891 188 13 171.211 13 150.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="1.0"/>
	</g>
</svg>media/css/controls.svg000064400000024150152177723720011016 0ustar00<?xml version="1.0" standalone="no"?>
<!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="controls.fw-Page%201" viewBox="0 0 144 32" style="background-color:#ffffff00" version="1.1"
	xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
	x="0px" y="0px" width="144px" height="32px"
>
	<defs>
		<radialGradient id="gradient1" cx="50%" cy="50%" r="50%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#f2f2f2" stop-opacity="0.2" offset="100%"/>
		</radialGradient>
		<linearGradient id="gradient2" x1="50%" y1="-7.8652%" x2="50%" y2="249.6629%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient3" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient4" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient5" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient6" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient7" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient8" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient9" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient10" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient11" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient12" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient13" x1="40%" y1="-140%" x2="40%" y2="98.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient14" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient15" x1="60%" y1="-140%" x2="60%" y2="98.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient16" x1="50%" y1="0%" x2="50%" y2="298.4375%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient17" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient18" x1="50%" y1="-200%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient19" x1="50%" y1="-200%" x2="50%" y2="110.9375%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient20" x1="55%" y1="0%" x2="55%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient21" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="99.4444%"/>
		</linearGradient>
	</defs>
	<g id="BG">
	</g>
	<g id="controls">
		<path id="Line" d="M 98.5 7.5 L 109.5 7.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Line2" d="M 98.5 3.5 L 109.5 3.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Line3" d="M 98.5 11.5 L 109.5 11.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Ellipse" d="M 108 11.5 C 108 10.6716 108.4477 10 109 10 C 109.5523 10 110 10.6716 110 11.5 C 110 12.3284 109.5523 13 109 13 C 108.4477 13 108 12.3284 108 11.5 Z" fill="#ffffff"/>
		<path id="Ellipse2" d="M 104 7.5 C 104 6.6716 104.4477 6 105 6 C 105.5523 6 106 6.6716 106 7.5 C 106 8.3284 105.5523 9 105 9 C 104.4477 9 104 8.3284 104 7.5 Z" fill="#ffffff"/>
		<path id="Ellipse3" d="M 108 3.5 C 108 2.6716 108.4477 2 109 2 C 109.5523 2 110 2.6716 110 3.5 C 110 4.3284 109.5523 5 109 5 C 108.4477 5 108 4.3284 108 3.5 Z" fill="#ffffff"/>
	</g>
	<g id="backlight">
		<g id="off">
			<rect x="83" y="21" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
		</g>
		<g id="on">
			<path id="Ellipse4" d="M 81 8 C 81 5.2385 84.134 3 88 3 C 91.866 3 95 5.2385 95 8 C 95 10.7615 91.866 13 88 13 C 84.134 13 81 10.7615 81 8 Z" fill="url(#gradient1)"/>
			<rect x="83" y="5" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
		</g>
	</g>
	<g id="loop">
		<g id="on2">
			<path d="M 73.795 4.205 C 75.2155 4.8785 76.2 6.3234 76.2 8 C 76.2 10.3196 74.3196 12.2 72 12.2 C 69.6804 12.2 67.8 10.3196 67.8 8 C 67.8 6.3234 68.7845 4.8785 70.205 4.205 L 68.875 2.875 C 67.1501 3.9289 66 5.8306 66 8 C 66 11.3138 68.6862 14 72 14 C 75.3138 14 78 11.3138 78 8 C 78 5.8306 76.8499 3.9289 75.125 2.875 L 73.795 4.205 Z" fill="url(#gradient2)"/>
			<path d="M 71 2 L 66 2 L 71 7 L 71 2 Z" fill="url(#gradient3)"/>
		</g>
		<g id="off2">
			<path d="M 73.795 20.205 C 75.2155 20.8785 76.2 22.3234 76.2 24 C 76.2 26.3196 74.3196 28.2 72 28.2 C 69.6804 28.2 67.8 26.3196 67.8 24 C 67.8 22.3234 68.7845 20.8785 70.205 20.205 L 68.875 18.875 C 67.1501 19.9289 66 21.8306 66 24 C 66 27.3138 68.6862 30 72 30 C 75.3138 30 78 27.3138 78 24 C 78 21.8306 76.8499 19.9289 75.125 18.875 L 73.795 20.205 Z" fill="#a8a8b7"/>
			<path d="M 71 18 L 66 18 L 71 23 L 71 18 Z" fill="#a8a8b7"/>
		</g>
	</g>
	<g id="cc">
		<rect visibility="hidden" x="49" y="2" width="14" height="12" stroke="#b0b0b0" stroke-width="1" fill="none"/>
		<text visibility="hidden" x="49" y="17" width="14" fill="#ffffff" style="font-size: 10px; color: #ffffff; font-family: Arial; text-align: center; "><tspan><![CDATA[cc]]></tspan></text>
		<path d="M 55 7 C 50.2813 3.7813 50.063 12.9405 55 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path d="M 60 7 C 55.2813 3.7813 55.063 12.9405 60 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path d="M 50 3 L 62 3 L 62 13 L 50 13 L 50 3 ZM 49 2 L 49 14 L 63 14 L 63 2 L 49 2 Z" fill="url(#gradient4)"/>
		<rect x="49" y="2" width="14" height="12" fill="none"/>
	</g>
	<g id="volume">
		<g id="no%20sound">
			<rect x="17" y="5" width="5" height="6" fill="url(#gradient5)"/>
			<path d="M 21 5 L 25 2 L 25 14 L 21 11.0625 L 21 5 Z" fill="url(#gradient6)"/>
		</g>
		<g id="sound%20bars">
			<rect x="17" y="21" width="5" height="6" fill="url(#gradient7)"/>
			<path d="M 21 21 L 25 18 L 25 30 L 21 27.0625 L 21 21 Z" fill="url(#gradient8)"/>
			<path d="M 27 18 C 27 18 30.0625 17.375 30 24 C 29.9375 30.625 27 30 27 30 " stroke="#ffffff" stroke-width="1" fill="none"/>
			<path d="M 26 21.0079 C 26 21.0079 28.041 20.6962 27.9994 24 C 27.9577 27.3038 26 26.9921 26 26.9921 " stroke="#ffffff" stroke-width="1" fill="none"/>
		</g>
	</g>
	<g id="play/pause">
		<g id="play">
			<path id="Polygon" d="M 14 8.5 L 3 14 L 3 3 L 14 8.5 Z" fill="url(#gradient9)"/>
		</g>
		<g id="pause">
			<rect x="3" y="18" width="3" height="12" fill="url(#gradient10)"/>
			<rect x="10" y="18" width="3" height="12" fill="url(#gradient11)"/>
		</g>
	</g>
	<g id="fullscreen">
		<g id="enter%201">
			<path d="M 34 2 L 39 2 L 34 7 L 34 2 Z" fill="url(#gradient12)"/>
			<path d="M 34 14 L 39 14 L 34 9 L 34 14 Z" fill="url(#gradient13)"/>
			<path d="M 46 2 L 41 2 L 46 7 L 46 2 Z" fill="url(#gradient14)"/>
			<path d="M 46 14 L 41 14 L 46 9 L 46 14 Z" fill="url(#gradient15)"/>
		</g>
		<g id="exit">
			<path d="M 42 22 L 46 22 L 42 18 L 42 22 Z" fill="url(#gradient16)"/>
			<path d="M 38 22 L 38 18 L 34 22 L 38 22 Z" fill="url(#gradient17)"/>
			<path d="M 38 26 L 34 26 L 38 30 L 38 26 Z" fill="url(#gradient18)"/>
			<path d="M 42 26 L 42 30 L 46 26 L 42 26 Z" fill="url(#gradient19)"/>
		</g>
	</g>
	<g id="stop">
		<rect x="115" y="3" width="10" height="10" fill="url(#gradient20)"/>
	</g>
	<g id="chooser">
		<path d="M 135.2346 6.1522 C 136.2551 5.7295 137.4251 6.2141 137.8478 7.2346 C 138.2704 8.2551 137.7859 9.425 136.7654 9.8478 C 135.7449 10.2705 134.5749 9.7859 134.1522 8.7654 C 133.7295 7.7449 134.2141 6.5749 135.2346 6.1522 ZM 133.2735 1.4176 L 136 4.0054 L 138.7265 1.4176 L 138.8246 5.1754 L 142.5824 5.2735 L 139.9946 8 L 142.5824 10.7265 L 138.8246 10.8246 L 138.7265 14.5824 L 136 11.9946 L 133.2735 14.5824 L 133.1754 10.8246 L 129.4176 10.7265 L 132.0054 8 L 129.4176 5.2735 L 133.1754 5.1754 L 133.2735 1.4176 Z" fill="url(#gradient21)"/>
	</g>
</svg>media/css/bigplay.fw.png000064400000233102152177723720011201 0ustar00�PNG


IHDRd�<D�sBIT|d�	pHYs
�
���
ZtEXtSoftwareAdobe Fireworks CS6輲�tEXtCreation Time11/19/10-s�1�prVWx���m�0DIO��IW�G�߬�e:@�]�Aݴ�Dʢ����ؐ,�E�_�r��<��4��(�B�����,to&̀�P�k������N��N���)V�qZ�1����7p�]���Uh����z�z���l�|���"
��K��i;���5���@�zө�N�t0Y�DS4�_�ۓ~*�m�_�aG�{�h�%Տ�/΋�v���;i��l_<%�R�Ήߥ?L_w�w�������SϐĦv��U�����?g��!��j��=�E��{!֫��Z�/��6I؋������@S�}Z��-�T�}�'D/&�[J_�~S{�6Z�u�w/�@'V#��>���/W}��T�B!�B9~hB!�B!�B!��"�r�7y�糭��A��u�HmkBF���)�3�O�mkTSx��}�sG�7v�[���ه}aķߓ����/_Ar��2�N�kY���2��Y�G�U�V�m5���eV^��}�S��ճ^��j0{�;��b�No�������p8��Ý�3�૟��+�8�����?z���UĚI�I4��.��45��Y����U���l���j�m�ƋF�1i��_��׳��#8r���#���^6�g����'Clr��Zކ'�&��>��mA������tR�C���j���O��9
�vh�wJ'uZ�������w/��p�:�Oy�}~�#�_l�S�S9��	���a�b3��V�����+W3#d����Vc�~��'��5���pd�I�؊�����l��p���
�}hL�������H���`3�96�k��9<π�sxbO<�w��]��~_��'�Z0����	wo�����Z�t�3�`BÄ�����p�M����a�@���>_!�F@ڢ�x�	@@�a�;�����.���q�hI7����y,���Ma�n5z��#�WJ�R���_�L���]/F9���њ5��sу9.Zz���c3�n�R��&t^o�T8"��Cɽ�����oKQj�X�*�s�m��];N�Jq����i:N
8BG(Xi���z�����jL�ES�ap��rKs��LoAhؠ�ך�#I��ph�áq84��YI�����*��%e���6�h���qQ|�S��_�H�Ӣ��+�/�%&w�s���[�+5�\�ˡ�9T>���s�î��;l��F�if `}Sf�}�+��&�1��p0zM!��Y��"�zpt���	�h̡�G"@��I;���֨��h�Q�k�ij$���#Ći˗�X�h���%b�N��x�uE���"��q�o��Y`�3���)�)zA���z���`(��Zi\�|����[}�T��<c'�9����in��j�����A�h��
�rs�ݘ@���|���`.�lc��H
�.歑k�[��'掌�'�K�/�;��.�]���?2lܰ���tH�Ya[�w�f�ٌH���ԄC5�m��,��	1a��r��^Ү��1�5�!�wEX��Ww2ᘩ�Ռ-wh$���{�*[b�J��[4�ξ������0�l��ҹ�!�*�3�2�`�/~k�L8�d�Ƶ����s�8�aobaݑ_���\�j���:�_a(0��@�c�?�SeF	���>iz30�ɔNk���0$9�Ur��\.�$��k�Ď$S {E��EhQE�T#j���]�IK��O@=��P�`�E��)�8��C�8�r�)%�yH��+:~D�~��7�Fc\���k�%$���pn�8�s����،'x���}���W�t��C��$J�I9'JK�o��>��Z�4��kI0�Ya��YO.�)��J��0㫶��G�m#�X01��mx���`�|�������>�b�B�ՠԊ6Q�.R5��v�
�
,0e|a�/o���Gkҷ���sbz'�n�'��z��^��.��^��q~]�����N�EӤ�	=�NL��#�4g%2���,�`E7����!��>��M+1��<� �f�FK�j$��=(a.1����_j(&i�{F��4M+f�`-ωpC�G�L����m�M����ɂdMb�{���96��:G"�
���&j�>e�.�)��� �l�ى��[��w����6��F�*��+���`���T�V��UG"ms$$�(Vmq���ra��� �kbp$���݇�?��O�2�SP�O3�l�㐖�TFҏ+�.KSg�0\�
��������l�d��cl�q�@�f�N�M/
��\^��Ni��k�`�1��B�Ne�;��ZX�*gQ�An�eC�Pgs҈GOh���_[��4�8k��e����2��R>t� �a�e��S.�3�]����h�Go(��9h)�]���g8y��N�`��;jX���XQ��H�/
`�a`����T
���[K^��S���R�s�H]��7��|J����x��C㉰C�G7e�~�&�R�M~3L�y���e�}�`J��'��G°,�^n~
L�2LGq����=��$�~1`�l��|�4f�ܘ��8 �IϞ����
��F��b^$@){����3(�؉��qM!%��fY���Gr�T3���{l��QZYf�v�ؗ�A��fs�IeZ7.w�i�2c}~�WA� �ܯh:c{���2�p�P	3��e6���X�PUy�~j2�ϛ�U�U@��"!#��O��T�¶-J?����x)_�^S��cO#Y=�e>y�z¤�D�-�I9�I�"�v�h�|�J,GPd�V����sS��t�X�LK
���27*�D�VS�7����Ũ�$�(�Xh'HR��A���#����R�l
�X6�F�VY*�e�q}�0�箔
d3��-ٰ��WE��������E\���p�M�op�	��;O�Lw�?�ح*�[��i��jO*�kW��5�ܣ���E[�f:Jɲ�n��}��_��N��֧h�(*IO�9<ڑ�H�QW���E-��j\��
wrY�D.gdë�<,UF`�/mh�u�9l��+p��V�r��R�)�tL/���;[xD���=��wx:��\�^�N��}�:�լSt���_t�G*9[xd�Gr�#�j/{���yF�(�¼�Px��L���LZ=��/0���Ut����;������W�t�+V����x�
��c���%�H�6A7�Hw_�n�
�F0�^���'@������q�y5�� �#A�4�Nch�B�G���938g9�8a5a� �l\��E#nZ�<H��i�-G@�Я	����@��w)l��,?���D.c5e��ln~
�`y�T���g�/G��S-���Ѻdn�
��SK��-ؿ�"N��&�
D�0���8�����#Z̉�D[�h�vE�o$��CA��3�*�X��	'iR�t	�~-Hڢ��Y>�4��y��Au�r�qr�jr-A���S�#���F���#�?�Y�tcN�qM�4�ϔ�9��x�����#ڄmRm_��O�fN��̎,;�[��SN���`2n�4��6Q��ꦹ)����*�/��LD�q�f`;mW��-_�:�أ�xͭFܺNwN}z+�'�{�OX�P��8��PNӍӣ���|�ң�`�
�|4L��'��K�\J��\���{��{�zT�Ԣ������^�X��]��b��-/xM(y����!�|�e���Q ����ȝ���?��x8�C{3�p�T�� �c�^P�O��i�>�`�"���0&����s]7�a��g��71��o4��Jc�
Dn� �BI����ԃa~�W��b♁Q�.n��0/�VfW�V�����L4�I;7��cI��Q�;�;�]K�F���\$=}��z]7�a��S4@A�W!�̟eCv���x
�僉z��5����]ʏ�D.*=�8�J+��7����d�$b�E�8��S_�YrC|09�����
3���í~��G+yH��^����R`NjU��Z5D��+���K#ͥL}"#��ՏKt!�������n��՞��8� Y`E�Cw�vn�/^xW'����c9�a�a�\�8(Uk��|xa4]�|�Ƌ�����[��k�+�vڟ�v;���	q��F�6m����i�aB���L�x��l��t����~�ѵۘR�9zf�5��R|T����Jxm�٬p�}��#z_�A�-����U#��a���4���=�=�����y1��CK@gF�/�#�5��z7�g���Jq�k8ҙ�
g�LE��Ĺ�'��~X8;ͩz��QvM��kv�U�B�*O�5�,x���y��$��"����gWx��_��,<_�C����x�ЀRUR�����b�_�=a�|O�]x��Ϛ�QA~�Dž3�(s�L�%E�ҫ�r�D��:�x⪯��
Α{���)�&	����Na�S�}�S�-L���}j��v˞�p�re�*I�ԋ�+O�`�+ޝ\��=o����'^�'Pb�>�ŵw�i�B{?'ZD�4~��y�����6q滅�^y7�R������CT�P�ᝠ�	��5�.-ׯ��oiĿ�}E�v��^q����U��$�-$��BBwxee-�k�|��Y��t��s-�u�s�uŵ��%�KhU����е�.����Khq>e%5�W+k�]����n-�k�]�l����p������-��ZB�����^cn��ZF�2��e�_��ZF�2�b��r��y�tހtj�\K�Z:gҹ�����;VK�[ ��̻ZB��%tΝ�H�/+�ηA:יw�t�������d���6H�:�е�6��u�]-�o�̮3�j�]�l���ɼ�%�m��u�]-�k	m"���̻ZF�]g��2���63�_F�]-�o�t�3�j�\K�\:��,�=�,F�����Y��aC{�Z���kU�o��tuU^u�\���\�Ċ,(�[�c�\M_楢Wᶔ��$��ǂ��/Ƽ��Ҹo��{}��[s߿5��1�=�W�;�%�Mf��?z4W�Ŷ�z���U�qӖh��V[�lK�a.O�m��+�ȟ����^-�k]��%d4S�v-����<�J��
��W�{3�^�=��/=�Y9��7Ob�p�3�Lvaq29����M�31I�)y|�A3k�*r�Zک3E�rb�h�.�7���|�>&�_S/$����e���i�H����{Bz�'Y�������e�{dz���c8���^|������Sz�u/�^��P���?dχ���;ݡ�o�R�wE�	�.��oc��8��Q4����\�)��lD�$#X|8yYeg
Jteg�בe�"��x�1��o[�9���ս�$�@u�k	y�5c���3�"W!?���
��H"���$w���+�]�M�x�j󥵄(#�C�|�&�=�F2C+iG�i�6A;$d�bXr�j�- �&���=��Һ�U7�+w��L�Ks�f�O��lg�`P2Z��e��e�{��;�^K�l�lR\�����'����c��wzX8�.w�8b�+����{?Y�>�ʼ��ﴨ�����/�/�����H�3��#^��ze��=*A�ꎏK�0��}	�����rD�
�}��Sq̟P�������ۣR,��tOBB�����>}c�)Xb��HR�f=�{��o���o���4}E�h\��m�\�-�������5���z
����n�6�!t>Q��m��ۼ[�me����t'a��qI6��^��~�:?��t^��,��ߋ?fsm��:�|����{?��km����>�H1ﭢM����2�׿u��>�pm�pm�>�^��ri�zÑ�1Y!>EBG4�6�L�D�\�U3��!hf��*'�|��pV�l��k���ь0j��M�3�f��/���*��L�;�>��cR�r��	�9�s3���S�Hq��;j�)�N�sib���j��ob�ͣ������`��6���,A	�h����g9��O�E�(�����Du�7A���9%N�|{�Q��ؔt��٣��u��Ѽ�7���t�>�g�υ�E۽�h���&p������&�4/��=�zf ���n�{_|����V<;��ޑ-?���Y��У&i��Kx#TDtK�l�S<�Ť+B@$$]?3�>��)Yj�2Z�l��V��c:c0g�]�=�&ZH�ٯ���g>�%Q�Ŀ,�vqf���2�	=���\��G	�Q���.�'�t@��#|J�0&��'i0��?�'�z~���}&1�2'���?B2/�����z�x-y'B9[�	���_���`C	f1e��0V�
I��ɗ�,��w����&�`q�����s��m��]镦��Z�����7Yݭ�מ�#����a.,��xU¼�ݨ�W��	\��y�J�/�L�)E�x�VB�0���Ҭ���q�o���9�P�	?���Q/+eoĿ��HU߯_�@/�	}O��밬u�I�@���\�AW���{�i�g���MZo+?�4�M�s��R�mD<��	�
�)�O@];!��6�f��^�q@g����g�Q��+?���ݽ����P�
O��yL("wm:���JC9S{�o&R+cLj
�rEU�!�Wv�7�u�a:wV�~�5ᛨ��jAuW�,N�A�O�����rX��6�a��j)\K�?�����&�mI�?ʯɪ�L�֊���4��##yL
���~��y���rO��׾ϑ�o����О�&��$O?k��~�ڀ���r\ޑ��Ѷ�"��e�H3&D��f��C�J$��S:w33Q&��#���e�Y��I�߾�f��f>�aIV�
sR1i�	�l��i���)�ţ�H��o�zL�6�0��MD$lhR��p΄k˛�M����m��ce�����w��1l�m��o�V?P��e��m����h���M�ux��*��G4C����+��6A���n�"�	�	e��fæU�]��?Ш~���D����b���h�bۿ��8c4!�fJ�=��M芔��d#i�x�+����,�Lۯ��tճ���� �G} ��9���>�t��9����߬��ƭnF�oh��E�fA�;�=gs{z��3뜶.q�ۡU���ʅ���+6���tJ�Ǐ���9�f��OW���y]�����]8'vf�b}��9�����}yM���N�;�ih�{�t�9:�.��Cwa�0�t@�5��tˡ�U��C\��d\�-����mNp)�C0�%�b��[��l��ny	.���[n�K��p)��$ĥ�9�.ٖ�K�qɶ�ϤGZ���_���n�#\�-�����a�n
Ƹd[v��L#\�� s�(�%�����m�NnS�N�Y������:
���J��?���CX�����!H76���U��mm�i��0�3�((�PP8��u�~y��7O�����up��>�3��.�<���o��<쒔<F��?�}��3\���ORu������Q�_�q�O[��G��)W�m2	P����T20;�йGm8i_X�Ə���5x�ΛL��7��}h�)h��do�[i���66�{JQ��ɿ�U���zI��)��x�_z�S8�Ξ�y><���u~D�>���4����D��9<s�-���o�y���my࿜����˫pF�)_1�r��;x>��`F+0َ������k�?���w�}H��W��l��:�svZ��vZ۴��M[�OW�����f�']��w ��Nď��9������Mmκ{���6d�n5��ht�
O�/0�v�G;G�	l3���	�܀k��C�:t�.������`���s�}��O{��Gc�PDI~�G�5�|1;<$���t��5�>��s�f�.6����=�{�f����I���q?�!��JxI\��c�Κ�ٸ���݅�8��=��v�����-Ȼ�C�H�cs����pg�������6��K�˽�����|0w~��au���/i"̛ijV����ut�c�u��V�N�Ӏi��	���j�D��c��_[=2\[�_��h�}��I8kq��u�[?�����1>����	+�i�x��043���<\�F������vO�IrJ�R�W���r�O,��(�g�W�V�joˌ����˚^4�Y�W�Ͻ������x�I3½c�^�F�v�/�9=��^=Y��A����ަ��A�–8�+��{;�ގ��1�muA���i��F����n+}Oc�59~<���:����G�^���9Q3��ۡ��b�s�=�
�&cQ���s�c�9�����d�����λR��}��m\��āܛ�6�۰�z�;�A;ׂ��n���C#M��Ẅl�^�g�v��M���Y?9�N�����8�76�$HB��5_i�%�q}ь�tY���J3�z,͸M�3�[�4pA\�c^T�L$5�6Y�Ǿ˛�bh�s�V���J3a�)6^�L���*�I�f���,}���F� <PZI�(tBь��(v�[J��M&�VX3	bخnf$54�0}An�r{~l@���L��`�7nC;&�H�DM�ʼn��fp�E�S��Tj&��q2B�A3]�T��H�$Mߏ&��*�7�ؗƷ�4C�p��f<��%^5���aMcI�J�Uو'5���B�ae3���	s!���I���v!�be3���FЅ<�*[�DM>�/��^ي$ir�r!��f$I���!+��DM.v/d�\ٌ$kr%�6#TDe3���URڌPX��H�&W�i3B}V6#ɚ�T)]���'�g$�,ÓFd4k$�lA���5C4{\[��?�!�q[C�����	�зe_Y�I�q�(m���C���Mu��Ȗ��6}�e������€y�"O�`�q�2�����#�� �Ձ��#��9��n��4�8fal�'e��� `NZkmI�G�W�%bnBHB"B:�L��4��x�OE��y%k�ԁ�Ķƞ��c��Sc����w�Tb����V���c��&���5=�Q���� kh*[wE�1(J?v���y��?4D^�9�Ʈ�����؉�(m�ر��?4�,N�1wse�_+T�V����ȴ����\��i�D���
��Z�N�+�kq;��\��ieh�Z�N�+r&S�v�_�y��c�A+�΍;��0j"C��_VN�Ma��%M��`�h�vn�Xjو��f�NGc�䛖�_���>ک����f���3gF;�/��S��Q�v;�������ÒB;���O�X���3�+	;�����ʲ�eG7W������N��-�������AsPd���D�I$�%@c�0��W�E��+�%xe>�d��D�̇���尞���տc4z��W"��"X6����B�
9l��d����u������[���A{;B���S�F���'4�M,�P�W�
>�P&{��O�Pf��MaY�˳`�f����)9s'A�����"�e��܁���2yj���_��5w.e��N,����_n~{6;iS��.�=Q�朴O�?]�vO(�b{�kyM�d]rSg�مuva�]Xg�>�#6����'niz�%��R��0��+��EX\�v��'�,l8io�0&�x�>�<�4��s&h䉶FS&�����Mn�F����5y�E�x~1�&�[o� ��^W��ph[�\��1����-�.��� ���7��,1��;��C�u�L]$S���[������l���ڌ�EE28M��H����"�k[$�Һ���0�:f\'�Z�L�}�䏼GJ�3��1�ъ�2�*�ak��ak*�ab^��Ι)!_�N�&�(h&f]��d]�S�&��Jf��4�'���017����*SLL:�ҕ�0��hRb���ab��:yF�gb"��5�GW9��|劕3L佚�e�Jg���4�%���0���0h�g��4��ԗϬ�~&���$�Z@#�2�͢U*h�f�E��Ј�oR(�-�Ie��<�ZE���jYXQFC�:r�����a���B����W��jЯ�4몥1~��bc`*�i�	UQNc�8�zsF�Ԙ,}E��@��Ԙ�}Q���W՘�e}Y͚�j,Ԗ���B�jKkl��������ט�<��L[]ca��k,,Tm}��Ŭ�����%6�������X8\�*P[fc�j�l,��B#Oݠ҆��Ԇ	%�*�R%o�j�m�P�m�@ed��M�ѕ�0��Mj�t�6L(����V<B�'�Ҕ�0���XsÄ�`�]�
)��<�������e#�7w��n��]LJ�t�7lM�7lM�7lM�7L�/4P��&��D,k�ol�c9P-�5�߰5�5U�TX�Z�(�Gh�<�&���jpتE8lMU8�-�1�E[�cA&m��hq,�X[�c1���8�\W�c!u��8BP[�c!���8JBW�c���9:T[�c��u%966��&�����X�`ڪ�P[�ca�j�r,,f]e���-ͱp(��9��8����V�X8����T[�c� ��XΩ�:ujc��X�6֩�uj���8_���6>Q��(��O3�+t��DǼ���b�0mK-��,��*^��\��*t�ZJt
�^�F����t���Z��l��t�Ǔs���a��>�2.��/ڑ�6�k�A�צ����O�C{�}�lV���OV�I�>k4�w�=�zy�;��Na�;ֹ�w5
���pH����?h#��g�\����S�6�7�f�����d�eˇ�
��i�x�z�x��x�%�x��4j���D�f�f��
�)i�������H���`3�96�k��l�g��pxbO��g�.82���k���`��a�w��xA��+�Y&4�@��M��th*�6X��$ð�~�ŏ��7�����H�@�Ov�X|��u񤅌�FKʸ��x]��c�M�gm5z�w�*%Z)Bl�W�Y`Į��V�h͚���-=�T��c7�?�Ho:��7d*�Pԡ���Q�֎ҷ�(�i�����'w�8=*�IH'{�n\��8)��`��������jL�ES�ap��rKs��Lo)��9��5-G�����8�C�ph���,:�8�o�[Y�-)������@��hnpQ|>�)��#wZ�y� �� �D��u��x˺~�&�ˡr9T>���P���cn"�~��[`�
��0��d���o�c�l�o��xE3�C"F>�PH��O'
7|V�[����,"�9��Hh�5iG�p[�ucm1Jy��8Y G��#ĆiKy��1�xm:0A�X��S(t^}@�y�5xl��-���?�rX�����Ã�J�7�c��8Wk�q٢�%�o��S���:����f�p�HO#pS]Tk=L��x-�
�D��W��������W��(�B�;�� ����yk���Vf��r'掌�'�K�/�;��.�]��Q=�#��
۪!9M�$���eZ@p�h�͈D��OM8TܖKH�ҏ��-G�l�%�Z�?CY�;"��qW���
ppu'���^��r�F2*�箲%v�D�*�E#���ُ��Ko�_c�I+�)Ά��2>��+s^��R����H6Ya\;�:�>G�s�&��u��e�|����{���	�0��P��1�é2��VLo�4���dJ�5G�_l���*9if.��I�ȎõcbG��)�����"�����5�vG��.ᤥx����[h(xS��"���S�١D�h9ŀ�����(����;�o2*�Ƹc1�8KH�5����|qx�b�%�O,�L��콽sh�s�d��w$Q�M�9QZj}��7�Y�
�9T_K���z�D
�~�zraL9��Wjv�_���\<J(h�ǂ�I�o�ô���c؝�$�)�>�z��V���Ot��ѠԵ�lhm�`�)�S��xy#�=Z��%
<��;hv{<9�;�x�?os��{/S��D.r��v�آiRń�b'�vM�Z����ӌ{i�C��s`I�ns�_q���Ȧ��P~3T�%Q5�����0��P�/5��4�=��c���l���D���#{���	��6ͦ�@��d/W�4��&R3
 �s$l0Yu�D@(+�M�D}�],	RdM%A:��4�	?���
��-[lmF�b�@��̑�ֱ��@H�h�KYu$�6GB�b�'���(��G
B�&G��P��}(H�3��^�"�Bfy
�ifa�M3c�Ґ��@�q��ei�l�˽!�����;��Ps��x7.���Z#©����r��+��)mvQb��6�THߩ,}��5Y��B�,�!��l��lN��	
���b��K,�B�{Y�!|�a(c8��0,�C�B�Xf�?�B9C�lHk��|�b����2�9Jz�����D
�I=�����YJ�U�p�t���F��z��yN���L/����<e��)E�1G���<|C�:�����Q?~���p;4�;tS�nR/U1��7�4��_��З�t��x�Z~$������+�t�[K����LB�'�a�VnΧaKc�̍��^Q�e�`�Im��}���i1/��=qG����d�D�։8�����s�,���{C��#�C�����*����QZYf�v�ؗ�A��fs�IeZ7.w�i�2c}~�WA� �ܯxi4�W�ye*�Სf��lt/���H
����dܟ7�������kcD9�禍���
��kB*f�K�����W{��,�ȓo�&�'RlaM�IL���+D���(�Pb9�� ˴J<d�_�x���,����r`Zjh�����Q9%ʴ�Z��G�,.F��$�F7�B;A�j=���
ک�R�l
�X6�F�VY*�e�q}�0�箔
d3��-ٰ��WE��������E\���p�M�op�	��;O�L�_2�ڠ@oL�G��K�=�t�]q;��r�
,�/�mQHĚ�(%ˢ�!ϯ�ٗ~M:�Z����$=���hG�#UG]�by<�೪q�**��e����
���T�;�Y���Y�����pwa?�tL/���;[xd��u�� Q�.��H�#g�,�H.$X�eO�<�({�X��
�Sx�锑�	yM/���w�����3�x�7~����*�ŊC��!��_�cx�Y��d�!�&�f����P!҈�S6O��q���G�#������[�|��z�]z��L�G���938g9�8a5a� �l\��E#nZ�<H��i�-G@�Я	���L_���L�22��938g%��XM�%(��_zX��<a�t�ق��Q-�Tj��@�.���B��T���g�/G��-����:���,)q�g�/G��-����
���E���/���8�<c9�&��IM�%H�� i�&g�g�Ӭj�]6սˑk��5�ɵ��fN!���՟Ϗ��|~d9ҍ9��5�V�x?S��dN����_�hN�IM�|�n>m�9�2;�x�Lsl9N9�҃=ȸi��+�?�k���Ѓ�{��gǗ{H&�Ǹn����+myҖ/m�r�QP��V#n]
���>���=�',{��K�Dz(����Q��E>���a0�L>�C��F٥�	.�X�.�d��=�
s�=�
=*hjQBY�x�w/��q���x1k疌����o�x�K.�C6����:=ǣ@>gGÑ;aai&��p4���fᆩ�mA��
����=�r���+}D�`E���aL�9%��nr�8�ϴ�ob	�h�k�Ƙ����Aԅ��͟��� ��0nQ�.�3�Z]��g�a^H-�̮�m�j����Ùh�vn�ǒNݣ�w<w^��
�2�f�Hz�2S��nr�(�h���B��?���`����J-�k��-ѹ��O�\Tz�qx�Vpo4'Y3ȆIĆ�q6�b��`2r+=7��f�)�[��7��
V�8��A���:��z3�j2�V�ѹ�F�K��DF|q����B,yK55'��/�=M7qA��.�J��
��_��N8Vii�� r��0��qP��T����h�����
�۷���W��?]>n�����J��>��&�
���dρ'^��?x�\���%>x�ޥ���[�?w���?w�m�s��ҏ�֟;��ܱ#/��;�����*�]��k!�;����εt��}���εt�}J��~�Cۢ���е��v	���ZB����e��y	-Χ���je-�k�}�2ۭev-�k�maU�5���ZB���%tXK�ZB��@B�k���}S��ZF_���k]��ZF[�bY�:������A-�k�\K�L:�p��y�j	}$t�yWK�?��ιs	�ee���6H�:�εt�����̻ZB�	]g�����&�μ�e���u�]-�k�mcU9�w���
�μ�%t-�M$�yW��� ��̻ZF�2�f���ȼ���m��u�]-�k�K�6���_��"���ްt�<K>,ch/^�t�s��s��mߓ��ʫ.��߼�K�X��s�y5���˼T��`#ܖrЖ�C��Xp[�Ř�Y_�
z���|k�F�;�G���zG�D��,�!�G�檼��U��Z�j?n��s�jK�m�>��i�MP�{����=�ثet-�k���f�خe�b� ��Z	�X����o�u���'U���6+�]��I|f�b��.,N&�q���Iy&&�>%�9hf-QCE�TK;u��TN,-�Å����o��DŽ�k��6����b5?
	 =�QOH�$�S~�rӔ��{�x6���p��6�bUߋO����cJO�����q����pt�ov�;�-�Wj�Nc�h�?A��q�Mcl�G�:�F�\�@ⷛ�3�R�����d��//�l�LA����L�:��[d�{�8��#�m��=�?����Dc���z-!o�fܠz qF]�*�1��Va�I$����������OUm����eDwH㓏��g�H��ch�!M�:"
��&hc��l_K�|A����d�м�4RZ7��x�.x����~i�@����)���JF�{�������~O�zG��a)��헍�B��׼|#_��$�T�yL����N���.G~���a�'c#���W��~��^��������/�wFyċP�,{�G%(T��q)&w�/�15�S�Ȱ���Y�t*���ו=��4�w{T�E���IH��`�B:�اo?Kc2I��}PìG�3���:�m�����|���v�M�+�%���2xW��s3_O�����;��'��z�m�q�w븭��2w��$��6.��{?���{��OW�;������� �{��l�M�1Zg�r���v�Rr���w߇�)�U�	W�~Yf����]����-���-��g���Q.
_o8r=&+ħH�����(�k�jR6�,S^�D��w�*��v}
2�7�F
�9��|F��¬7ڣ�\s]�[e�i~��7L
T�5�3gxn�2�xJ)PqG�;�٩|��!M��YM\��M��y����,[�B؆���%(�
\9�,G��i��h4�c�At=���&��U6��i�o/3
����3{4��n�=���&0��n��G���жh������6��>R���E��'[����`ޭ�Bu����ъg���;���a�1˴�z�$
�x	o�ꏈni�mu�@��tE����b�ا8%K�QFK@�-�ӊ�~Lg欲롸���D�;��p�"��g�$������.�lQ�T�9�'�����(�=ʑ�إ�c����p�O��d��$
�4�G�]ϯ���$�_�5z�'@H�^�X�%��O(g+8�A�y���� l(�,����!��!�rC�S��\����,�s��p��-��+�Ҕ�_�\�w�Q�&�����S}D�}<̅��J�����j_7���Q �]�e�	:����JhFsvW��wS�/��Q�1<��>�G��<�e���������H��O�"��{����2�(����?�*��x�1���r:��I�m�G��	q�C�C�����<Һ#���#��	�k'���&��_�kY?�p��,3j�Pz�G�V��7=�u�Wʹ��=�	E�M��7]i(gj���Dje�I�!S���5D�ʮ�f�ޠ�7L���z�/�&|�_-��*���;��	���^Q���9��]-�k)�Ǔ±��D��")�g@�5Y�c�i�Zq�2���x�c$"�I!���: 5o�~V����9��{C8BR�Sޤq���g�U�OX�;�Y��;�8ڶV�����iƄ���B"Q}H�O�Du�J�nf&ʤ�D^���l>���:�����l���'>",ɪZaN*&�=�����1�T��!�x4���m\�i�f�����
M�ΙpmyS�I66^u��m4z��r�R�77�����B�M���X�l�>��R�B�m�"��ɳ��>P%����f��ߐte@��&�3��MP�>a?��]���lشJ�K6�կ�ݞ��}��V�ѼUb
Xl�W�g�&��Lɳ�y�	]��v@�lD#�oap�ݛ����i�Y����z����}�骵sxy5��Y'��[݌���\ۋ�m4��w
{����'�+g�9m]�j�C����[��Wl���^���s\�N�[����	a�fv�����]8'vf�b}��9�����}yM���N�;�ih�{�t�9:�.��Cwa�0�t@�5��tˡ�U��C\��d\�-����mNp)�C0�%�b��[��l��ny	.���[n�K��p)��$ĥ�9�.ٖ�K�qɶ�ϤGZ���_���n�#\�-�����a�n
Ƹd[v��L#\�� s�(�%�����m�NnS�N�Y������:
���J��?���CX�����!H76���U��mm�i��0�3�((�PP8��u�~y��7O�����up��>�3��.�<���o��<쒔<�3������|u�'���?��vw�(j�/��uا���#ld����6��N�Ik*��w�܃�6��/,�I���SZ��V�M�s��t�>4�4�{�1�M4��_	��=�H�|�_ɒ�@g�$����	�/=�)���fO��6����:?"z��~@W��m"F����E���m�w���_Ύ��OW���U8�Ք�_9�
�<Tl0��i�}��u�gb튵ǟ�x�;�>����sd6�i��9;-Rr;�m��ަ��ѧ������i�ӓ.��;{Z'��l�Xvvt�wtܦ6gݽc
]u2W��d4��|���e-�����yB%7��ӟ�H�B�O����{p�c�2w�O<;��!s�}V�O{x��=�<���*xI�D�����9���h�V�K;�h!�b�;?��C��l������4�-��Wd`�k�Rv���,�K�t?ۡrs�\+7��R����.3S�?�N͡�Ӆ���61�%��׀Pj�=�;?���0�Z�Ǘ�Y�M�Y�}bt�::B�n���ߥ��Ĺ-�a�"PZ��h�s,�d�Gd���+���1�����7=[����>��o��h\�SaOX��r����G�C{��q����m�N[�.>o����'��-�`�8
g@�]p��ɀ�z:v��Xu��L�z�=����EӉ�tl�t�ܫYo�t�yR���`�4�;1�%l�XK�֘ӓ�����;T?�>�m�nD.l�����]��#�툽-��VTI�|�V�o���җ�0��Q�dz�.�ø�{~~�E_]5�0p�nzϰz�(���ߞ^q��(
�Y�9ܱ��l��s2|��`��v�]���tW�6��m�@�M~��m�r��۝ˠ�kAsLn7�A⡑&�GT�p]B�n�۳g�H�&s�Y�����T'�Ԍt}��cț	�N$�Wݚ�4�渾h�o�,L\�f��
=�fܦ���-T������>��1/�n&��q�,�c���x1��9p��fb��0�/l&I�~��$R3^��>L�t��	(�$N:�h�kI�խ�V�&i+��1lW73��	�~�� ���=?6��Xj&lz0��7��rO�f�����OD3���lf*5��8�ܠ�.K�y�w�f����	\���@�K��u�!c8�x3\���m��Ͱ&��$m%ݪlē�p!���I�䄹��Vٌ$krn��y��I�d#�B^��H�&��X�lE�4�h��Oe3���]ڌ���H�&��P�lF�5�H�*��I��*)mF(��f$Y�+ȴ�>+��dM���.n���3�q���I#2��5E����?�!�=�-�d��¸��!���?�`�I�۲������8n���I��ӌ@�:�xd��?t����V���?�Na�<[�'k�r�8b��X�k^���@���V7��?
�^�0�Փ���f0'��������17!$!!�X�T�
Y�G	<��"�ܼ���vb[cO�1�1mly��?vA��^*���`Y�C+Q�DZgk���?���(E��A��?4����"k���Ib�<���	"/�qcWN��L��I�6c�X���I�ؘ����/�*�+Q��cdZ�XJ���B�\��i�ar-n���͵���WS���2�s-n��9��q;�/˼�c�1Ϡ��F�ƀ��W�A5��k�/+�ܦ������D�O4j;�L,��lDDn3��	
D���h�MK�/�Wy�Կb��t�S���3����
�|x٩�(����W\�\����a����Wܧ\,��ř˕���W\�\eYz����+PK�?�Wi��ߖ�~����f� �9(��WB"�$����1gY�+�"s�����2L��W"i�C[�rX�\���_�1�=Y�+Os,J��\!��6�N��W��R���ar�-�堽�!��)s�F����&�l(�+��l(�=��l(3OƦ����Y0s�\�ʔ��� �e���e���2]i�@�_�<5w�d��L�;���W'��]]Y�/7�=����)�e��(osNڧ۟�f�'�\��G�G{Y��I�>��W\��hʌr�Ϲ�5���r��s��]��\̺��N[����:m�N[�}�-Fl0�i�O�Ҽ�'J��%W�a��WH���|���೰�T�Ӂ'�D���=p5��y^'ض�'�M��Vhޖ7�����S����X��o�)D���0J{]�¡m)�sEK�|K�+7�4�?��_2[��mt]n�n��AYf���͍<�;��˩uaO]�S[ȵ�\[����l�-��B�E�=8����������k[���Z���0��f\۳ZqO�}҄��GJy3��1�ъ>�*�ak��ak*�ab.����)aj�Nf�&�(Qs&f3]��j]�ә&���|���4����01����*�-LLh:�ҕ�0�qiR���abj�:�G�c"�5�GW�����>L�ꚤ���}���5����0����]h
~��4�W՗����'���ğZ�#�2��U�~�f�������oRܢ-�Ie��ܟZ����jYXQ�C�:r����a��������W��jЯ�?�1~�� c`**��	UQd�8� sF��,}��@����}!���W��e})Кj�,Ԗ��B�jˁl���������<ڂ L[da�J�,,TmM��Ŭ�
���eA��.���Y8\�� P[d�jk�,��� #Oݠ:���<�	%�*�R%o�j�
��P�m�@ed��M�ѕ1��M�t5BL(���DX<B�'�Ҕ	1���X'Ą�`��]�i��<�J!��R!�s|#����j���]Lʱt�BlM�BlM�BlM�BL�/4P��!&��D,k*�l�c9P-�5��5
�5U
�TX�Z�(�Gh�<��!&����ت�ClM�C�-2�E[:dA&m��h��,�X[=d1���C�\W?d!u�DBP[Ad!��%DJBWCd���ED:T[Ed��ueD66�������Y�`�J"�P[Jda�jk�,,f]5���-'�p(��D�������VY8�ڒ"�T[Sd� �YΩ����9fuEw�uEu�d�5YgM�Y�u��9kr��HI�|�$L>QR%�&I��1]a�y-%6aږZX�Y�%�l����¢5�����jeQ��+�Yw�j��aq�0��l���(.�r?�8�����r�(����k��7�����y��W�9�-��֏�Oi�8�)�K>�����֏?�����֏�SZ��):�u�:�zҧ/S�?�/�xʀ>�mkBSx�]N��0������Qʫa�johl�U�&f��n�Ãs����fd�,>�Op��3]E�1�T	�яj�V��2ڃ��-����p�
�uy��Gp�odl`�d/�e>�v
9��]����A��ݩ�6�����ٞG�ÃT{1�H	�Q�l�H':�iу����ŏp�a'D�:�_�_�C��EymkBT���8�x�횉m�0]HI!)$����FR�?6�c<lHٱd��t���C"��+��RJ)��RJ�������kJ�߃��L��_SU��n7���s����s~�u�U�-U�yy9�c����/Ju�z?��i���>>>~�sm��+�v�u�Ց�νY�u�8����uN�?�WP>�1Js��WiV���_uK�E��ϸ�/r���ˆ_�gK�W]ױ���EY�cl��,[��T�YH�T�����������}x���L#}A� ���G��V�7���^�}>�iҞ��-���i��;}�LJ���X�&�T�P�3�T�#��ߨg���J�l e�'�=��?�͘o��n��a����|7��>��?ǐ�U�%�;�������/�m���N/��I���f�Qփ�z{��<�d��6�d�n�;�����Q��m�{{�5�$���iѦx��g<�$�"�^�%=��RJ)��S����t�e/�֔� ��a};k���_��y�?�9Ԛ�l�z��}m#��G�Kk!����k(�9�G��1�����z��,�Q�&�l�iV濊���#_�<��3�Ξm$�^9g
�{9&�w�&��:˙�u��f֚��R��:ֽL+mW���W^���z%�I���2���lo���Z�f?�k4�W���-�#��	?V/�c^��!�!{u̵ʴU���ٷ�A����Ge>G}�?����v✽��3��X~j����{�zT��A�O^��ʰ�>��?s�y��|����G)�P�</1�1~2�ў׆�R/�7��Ӿsm�sr��"�(����2��c�Ϲ;�~�u-��)}����<�U�1�g��:�a�p�b�5{��3�(���k�!m'mʞ���2��.�~[�)}G�κb��XE�L������p–�aԃ���7���7��Fy�0�@ߋL?󞕹��Khi�@=��RJ)��RJ)��RJ]M;�;����j7�]&SmkBT���U�x����i�`�Qqqqq�����!��	�C�O��Ml�S�$I�$I�$I�$I�$I�$I�q��O�9˵w���O�o]�s�s������,�Խu˲<^�0��t�c�}�av��=��7����_��{V9��z�}��ٿ�^��s��_���y~�?��}e�z���۶����������@��w��E՟�k�$I�$I�$I���@?
���=T���mkBT���`�x��ݻN�A��QA�x�E���W�K�XR��n�,��5�'�$VT��„��l��:'s&�X��|O��&$&��9����X����:��,���bY���`$8�����a�`��/o$f��K�bp5�f���3�	��`��M-Uw���<�-c�{<�����up:8.�\�e/��_�h�G%��5�{���y��'�Gׁ�	�%�CRÙ�A�<9$�{��e�2x���i[���+��L�ld�3OCKG�1˶a�����������l���MI�K�'nH
�A=�D�~=�oZ���׼?�Z������w�F#��<�x&ܕ�g�z找f��%�S=����tZi/HgBZ������ij�r}�#�T���
��Ae�A=�d��������L�A=��S}[ZZ�t6Ƞg��6-�
����W2d�3O�"�T����v:�LȠg��e��~���lg6��LȠg��G�Zz&|]\\��l���A�<ٯ�S�b�٠���z��~�J���}_/f�3O��?ծ�KΠg�T��V�
�{��a/Ƞg�ԑ*�
>���m5\^��\�j�ϙ�L��8�p��^�%�s���@�簝u�͋����9���%~?m�fº��En��J�3���<�y@�����?������͂u�͋\��_f������_f�\���?�Տ�����e�����߲����߲�q���q���q���q���q���	��-�p��Yq��Bm*������*\Y�|�mkBT����xx�흍�)��q ĉ8�D�^��>׻gI@��X�jjg�iЃ����`0��`0���?������ϟ|�:����s��e����Q��3|����ӧO|�:�2|�����.�}��;�7e�GF�����O��6���_�Q�v�������]T��]�^�ˮg�{>pj�z���k�u��o{�y���ye����?��{�-����x���/D:��3D��&򈼹e�^H�y�i#/OG�z��Ϫ��߯_��~�
:�sMe��#M��3Y�#=�2��Q�����Й���[\s=E��8�}E>�Gȩ�T�ڲ��T�g-��}�����Vf�������o�SVw�zV}�.�/�>�~�<Vrv�@>�!?�U���������1���<�#�����}��=�F[ ��~���QڋB�N�.�.+푹^ed��Lo+[\�-��k���
d�W���(}���6�q�$�#�?z�6��Bө�i���?�L���7�!�3�O_Q}Пu���o����[�=��tk�ȋ��M�����!'}/�Ƈd��r2��_�C���ﲨ�:������`0:8�����o�=��+8-�4}�۞�c�ĥX�dq�{bU�����q��©ή��m�!�ƶ�g*Ϊ�U\z��[��GA��=^�+ru�{��LV���	�U�?)�V>�ғ��)��x��|�Y�ҁ��gi��\�yi�^c�U���o��*=�����!����T���Y��?rf�g�����W��s�ʽV�n��*�V��X�#�=��F���ϫ��+[���F�~�yH�\L�~��[���O҇��h�5�ݵ����T����o��w�|Sf���ӟ�+���)���;���F���;:x
������)/�OS�y��U���o��2��e�)Ve3'w���gGg��=�J��^��`0��
ľ����u k�U,�Ks���ؑ5�nY�,��bXw{���w�&����3�Qה��N��Qev�	�]��Ʒ���gcH��˞��i����{���A�3���I�8��h��w��d��u�w���UI��W�q���8�����I�>�+���@��p��Qş���Gc�Z�����\ƪ����U���ߝ�]��/�:����3d�;ɫ:gB9�R�����|GW~����w�2��;�fz<AǏ�ߊg��_��l����y��������=����U��y3=� ��[�6_��3]U�_�����k�]���]�ײ�2��;��j���->��t|�+�i5���n����Οg�Z�Y|<�1NyŬ|E7�k�������?���z/k���>�<��=�Α}N����΅���>�u�Wy�d�ʬ���dz��`0*��\?W8�G������Y����:����Dg��c�g<��2+�������'�W��6��qn؟{�r�u�"w�<�Tk��.��\�r���n�O���>U쏘~c�#T?��+��y��{�Q��,�,^�qF/X�v8�.֩g��3}�ȸ�OP��~n%�hU�G4��(_��sn|W}Tg&x^c��,F�����ѭ���+�<��#+}/�Uw8B�Rh_�����|�33!m�r\7U9�m��({�ѝp���ve��w��[���x��G������]�߱?g;�,�n�ҽ�ow8�]���ו����b�����?��OV�=��Z�_�����#�ve�?��v��N_W�������r�YL���o;�����1�g�9pV^�G�~>�[_��v�NO�S��3��`0������Q����[����	veO\k^8֔��v<�Zbz����\��O�p���b�n$~�}���o�z�3�ј
mK���vU��]^�i�N���WA��#��x�딫���j��t��q��:���E=�
z%օ�q�)Cc��Y�E���q����yRG�-�+u(K\�h�P�'��*^ء��^���q�=m=y|K��vūe���\��rȊ�4���=���{W��1���;=ݷ��x��p�;o@>���Ș�T\Ԏ�+C��=*�ɫ|��G�JO�C��W]��x�1.��ﵠ9_E�б��
��V�q����)v�(��ʑ}��[G��w����Ǻ���{-�o��Sdו_˞��׃��2��;iT&�w*��w�����:�����g׭��S�O��s���j����%Z�[~_˯d�֮���+������w]�7��`0����]��k��I�u��+e�L]���ւ�oA^���;=GR��?��v쯱�;<��y�� o�$N�1紈=:ߥP�V��u��<�� <&����3K�yC��/�4��r�)i=��*/|Ύ^�]�Q�NН1q�G���w>ù{��<F�����V��r�2�n��lo�؍ا�|�m�o��'�qb��Ӌ��r�`e��ef����6
0�lz��sA�_������x7��췣*�U}��R�%�+���C�����_�	�ڟ~I\�Q��~�k�y��#_��jo~DyU���^���`5���p����k��o�?:��ˮ��C����w�������>?�Kv��:A���}E:���_�n+{�u��=����r����q͓�̳]>>��d�}+�����|L�����0���1��`0�l���e���g:��׺񶊝�`W�,3�O�?���]��\9�P����~�[��kO��W�i�Gc~�)��-<�w��.��3q�}��'v�u�w$V���n��v��(�r�����5��2���S;W���k�_�K�ϔ�8B/��h��E�ՠ�'�9�w?K;�x:�x�<��|@��c��Ͻ����V��y���c��@ۖ�Sw�8B��q���]��=��2�l�B�e6V}e��������R�(�������	V��e�ZT��4��ad��e2ޒ�+n�Y����B�����Tq��S����ߔ�<����[&�=�f��[|�����s�z�P�)G�����}{Zׅ�3���n7�j�p�W��wf�t��E�w��[ǽ�;�����`l?��`0��`0��`��{���~��������i`oL�y�>uo���i\q��K�|}����7��Svu9�G���쯿c¾#���>�,�jo��w{�Ն���ݲ�L��=�mW����2u_�����8د���jo�?���k��D���߱��m����w�>���#��}�����E:��OۡO;<���s��y����}�ڛ�k�}~����|�M���'8CT����o+�[W��������U����Q���r'����\��'�t�TY��w��z.D�=��W|��~q=_��y��M�����������Ǐk�t��bS=2�|�ұ�y�N�_}O��e��摽ۏ���tL�S6�q`C���jf��3�#��ܰ�?z�1���H�]�����\"�W���]����O;�2'@���@~tG�:�����{��u���7m1��Q]�PW�V�2�S���z]ϥz��s������3��]v�����xwҞ��:ڗ>�y��`���$j�?tU��mkBT����x���U�u�w�-I�HH��ZP^> ��DEK����F����R�-��� �������h�V!��Љ�0�fD@&L��#3P�ܽ�5{�9s�̝9w.{�x�;�����2&��EKGY:�ұ�����u��ujϗ�[,hJi	�_�t��n��[�K=,����>�|���1?|�]��[i�[`��A���L���~�R_K�X:��i-�S��ޖ�j2<�π��3��]y!m|��s69�_3�������[:��Y-�3����N7
��g�|�mځ��7E��[��?�͓M��s,}��pK#,}�4�}��j2<1��>��;���i>H��ɜw��=��:g�s
>�L�s-�g�|G#[@�������|/�w'��|p�{�����mg��?�;��	&���u�Y���]�t{�UWM_�x�>������|���[��ٳs߾}����A5���Pumm�555�ܹ�m۶�l����>��sW�?>��3�
�d��'�g�V̫,H�vğ}c�8O��%&�;{w�G������~z�'�|�}�]��﯃8�������Сw���쳟�7>�<��?��v�ݣ��y����v��3"��M_1y�i���ky��2��&�{�Y�8cƌ�[�l�<�p+�\Ix~�n���7n�x�}��wQ�=|>�X�}��Et1y��mc�}y�m��G�#�9�wx��>������3
_���Ǟ�ϑ�J�����ɋ�B��C��UWW���'�D��؋�$�d�9v�i%��o����n�����r�ݷo�/���F���"κ�Ϳ��f��߰�`ުU��\�hя��1_|���.�ڵ��ƍ�4gΜ�{���{��W��|��]�G�!��~��'�e��%K.�֭��"�[�/�_6��	�Ʒ
��Fދ��8k֬�;v�ܣ0����+�6m����_2`��$��\��+`C~���/�ۅ���)|Y#2>x�����[n�E�����n��	��7��"��3�|����YQQ�����z���E��BQ��(��t����X_��%{vYq�ʕ+�ٽ{w���ܻ�6��	��7����rľ���W]����1D��dm�q�]w]�&8c��1=�K��+<�4�(~�aڴi�m޼�A�K�����^}����ܻ��&H�<�;���I&Z��i}w|�F���Z��o�1
s��r��~L��ɜ�>�i�����3�K���9��:uj�źN���/z�$� 'H�<��D���8�4�����[o�k����Y����~��\�g���?���t������M_��w�}���.��#6�o��zb�k��g���tA���~���c��Y
�������8^��<d*~�%V���v��:?#�[d������~յǹ�/|��a$��π_�8>�<;f���~�	y��ڵk�m�ȁ��=������^n/�8{t�~���!>:�U�����ao�����d�ױ_p�_אh~�g�q�N�'*&���˗�d��~�y9/�W'������o+���	ه<�.:������r�=���0}�t_�J�
�{8|�*'/��w�����$&}�il�����=ۅwC���ܹ��1�r�{db�-�6���_�{�WdgX����R{�1�o��8Zb��mx�=�0�0�9)ާ�i���6�~'�������'��n&�H���=pC杣�i�ҥK�<쉽}o̘1��yϱe��r��d�5>`Ş={�a�7F�!/�l���m�"����e��w�w܁��;z�
7���J�V���&��i�]�l�Oŏ����%&cg|�D�u��0�t{��&�޷���C�F�Hx�I�&�؋���z,�]�lb�<@�a��_�_S�c����@�`'�����>�?���{�W�^��z��)�<�H�yɡ��߆g�Y�u߾���_~�Q�ȮW�\�m>C<���H���c���r����s�^�<�i�8��c�c/�9�ߏ<��w�S�L��y�t${�;7�i��b���� ����k�.��e�9rd�M,2�����\|��aÆUYݯc�TUU��nV��o�[�샟�}�>���K/ի8)2Q��9�����w�̛7O�;���E��;��c;���o��Yw����a�����I\�__߼y��}t��CL�@WT�C�+***�|�{�n���L�?����ȗ��o���WW���pr&#�{S��m �k����E������7Y��t�ߋ��Wd���L�8�s�;8���g�F���ޱ���3�6�Y�͂�F~��A�	�S�-|O��?��'�O?� ��R3�����������צM����I� {�ޱ��!;0m|��_�}�=��S�K.L�>�/�����y��/�=�<�e���z?������L�f�O�����N
G"�Ɋ������3%ځic���l�]���q�8j�(j�t��z�D}W$+�LPO��^��Gځic��"�����w�9��_�>u<�jj����[$+I'~�b���?���|�#ځ���|�ܓ�/���SS+>��~��j�'�$���^<�Y��&��ML)dp�{FyG�u�y�ˁJ=��<��c���o�b����|�|��׵l�G���F���B�Ǹg;Gd�p�
"&�(��	�عź����@:7HL�;J�?���x�d�8Ǒ�Nq�,��ئ�ob�t��)���t%�Gj���"1b��/>t>
�(:�=�/�oذ�>�;��a�ݑ��e��i��� ޅ�c/VWVV�}�Y��HӠ��
�6�q$��4�`��܏�u܏�^�Z�M�����׋="��Ѣ���z�G˶l�R,���еow/^�8ο)��G?�6`�Ԍ�ř)���x�̙3cm�"_q{�zJ��p��X���j��廗]vّf�Ɋ�#j��@
l��_��[��Ѷ91��)f�OV���}���>3ł?:��[�>�?\�R�+n�F�|��df��_�|?�����r��@�����O~�۽{����]~���ר�&;���݁��q�;vl����O�:U�ۋ��RSS#�?5o�E�6�|��Ѵ�j�ˋ�+s�{���j�������o���?�*��ϛR�B����R��z���?)��hݺu�*�OM|����%�,w��#-����[�m�6����)��}7u?������j��z1��<�@���k�m����s$��Wy��	>W���۟�^�k�F/��`G����j#��{�q76Q>�Q��=#���,�ǥ}�Q����<j�e%�~z��W�zD%�F�Q�T��\�:���H��RD+��9O/}�}������9�L�]�׸�"�l�����y.��t����6�X�eC��h�_�O���W�.ﺦ���W�{繃/�~�;�k����}Xfu���?������ԹJ�mrN����BK?�>ᮻ���݇��������,�7��6:��{�Z��+�pt��w�9/���h�������|en@�����O��F]{��w�8��'~�l/����_���o�U��>e�uȻ�
y���nu�K�9��,�%�����s}h������?_�݇m�*m|s�?�$�)��d�ßZ_��}�l�=�����W�>��*�d�怿1� s��u}�P#.��;r��z����k�+��֭[�_5��6�9�Β|��?�G�W�G>�����5S�}_��MP遢g�H�f�_��o�����(1M��q�M�|�ٯ��jTPx�P�>G�lz�g�M��}�_�lY����7G�Y��P����n�-���hE�/����S��;fR�}?%�'m|[���/JV�~��JT�>��iiꃸ��������q���J��/���@�?�����ၨ�ii�`���y���R���='͝;7�����m!��4�[�^��D���ɓ�f�E��;�9-���4��G3g��.�_��G��+��Ң9`i��
��i~�lذ����=(��J��(}�U����̯|-pG�ÿ�f�F��4=����kzT~��׮]7ߠ�9�i��J��f��񀖗�y��7��9`Ȃ>���?��ךp��q�;����z >���̂|͚5�T-��x���j�A���[�#G���;�<(xbeEE�w���
������wS�5�9�g@�t߉�:�=o�P���
��Z�bE�皤�o�ϖ��6���>I�X���������Mì_���'fA��S�w�A�p�9��=��3������{��dɒ%y�i�6�y�?[�4g�=CQ�Mޫ��&N7������3��%�-3�1M�|B�/�WUU��.�W�y�y�V�3J�<�oLv< 2�γ	ď�v�Y�w>?�4��-��Y'GO��U����	�*�����7��`S�3l�����d��#���r�i8��r%�9�~��qwq�Ν;w�Å�����}�x�U�������SG�O��!�|��������V�~�^�E���-%jS��ӫ�����}0�p��y�q1�V�1K�6�ߘ�<��T�ޝj}kjH�A`�Ef��_}����;����ȉ�v�zqIIɕ�Ǐ����s�-[��u��{�1>�i��9��s�J�Vs1��*�Ʒ
�7�1�_%&~�6y�[�x�2k"����/�OPo_�_}B����v��}�C�3M��I�Q�:g�6�m��1Ms*z�6�v��	�9f��X^^�͝��r%�)��w���Ծg_��ri������k�W%���KL
%����C_sN�i�H��Md�%�����}j��o��༃;g߱ĴQ�2m|�	Y�|m�2�R�	q�ۍ�?�7oޓ�.��*ԚQ��Lnty�O��Q���O�����9�0��'wt2�8��9�mV��6�팿,���:��X���>��O���;��9�l����6�I��oJ���t���`����#�0C>��0��GOD��w'���s�' g ��6�II��%:���rG^ v>�d���|�%�w���`�?�|B�i���{�.����Ʒ�k18{`/��#~ �0C>��?�}F�$�H����M;ן��oᯗ�6���-�ܲ�i��>WO�J�a�(����
�lr�Q�׏����7P�@�
(P�@�
(P�@�
(P�@�
(P�@�
(P�@�
(P�@�
(P�@�
(P�@�
(P�@C�_I��Q��
�mkBT����~x�흍��8FSHI!)$����FRHn��w��H�Y��x3��ꇤ����s�a�a�a�axI�����Ǐ��'U�{������o��_����ھg�W9�����������o'�GW
{>~����J��l�����o߾�����������)*/���N�\��ϱ�o��v�[iZ_ձa�JΝ�/:�����6�O�-���92b?�T����l�k�%?������_2����1�B��s��Y��5�>�:�>�c=1�����O�w��y�^�- �ڶ,��X��z��u��sM�#גU]�>H_���y�Y��v�!ۉ���_m�i�Ru�s�]�X�m�_g�)YY�)�m�]�y,���m� z�1��a�a�axE�ߓG�ק��o/�Y��\�k�6��x����j��gH���������|�y��u��.�������\��a�æ�M&�w����k�#�ϐ�$?�]�M�o��\��Ⱦ,�/��ڥ���Q�@��~6s?)}��,� l�����gX #�v�Q���g���B�����ٙ^��u�の�uh��m?�}{]��.~�}�v_��J;�x�o�gJ���Y]�޳�@��.�)��oqC����?}�>@�X���ߘ�'-����(�W�?���������������	�źv�Ɣ����O�ʙ�R����v�[K?[A}�?-�w����m�Ց�}<G�c�K���1}���u��x�LzަU��0�0�Pc[�<>�g\=��c��}�M�����ggg����	�DŽ���-B^��k_g?��F?���� ����v0||؎��=ǧH�P���g�s��/�hؑ�I
�t��~�{���n^�}���Z��yD������5���X���Wv��O)�"��c0��vY�����Z��|~�_%/�,��p\��ɹyΰ�Z�/���;/x����s��_��9?��P�ܯ5ݻ\�[��y|����č8�����g��ʱL{�?�0�0�_�k3���>��������z���_������\S��|<�)�b|�����7��a�a�axn.��t�a?l�^C��vk��ؽ#���~e���)��3<3^�����k�dl�c�&�jK+���o"e�<.�ʞ`���^(3z����u
���l�+6���v��<���ï�
�k7]�/l�c[`�O���n}���򚄫��G��뎱���zt��^v��2)?;Wm�r�5��o�c����Iz�?�����O�zx��{�&��!��e�z.����������"ѯ���
��1�����Gg��{+ҏ���l�w<�=}Gݽ��Fƨ�^�)�����zIp�G�����K��֜�{�{���e����G��12��ۭ��q���iumf��>�.���}�����~�a�?�0�0��[u���+�7�Svq�����֭�y΅�
�?ނ��}���X��w�Ŷ��v�?��ߩ�D��Zۓ�-q/�?߳�=��<��~����#������>���Fk���"q��z�r��Q�o	9��r�,��n�Y[;�o�:)@�-`ק-�7��({��߯�S����@�µ���K��9��֠�ɸ�>:�n�3��
_[�_*�mt�cm��C>�q��S���L���<�?�<n��ѯn!��>=���<�6�;��ǫ�s����a�a�a�{�xˌ�\�ފ��px�?0׋�#�5���z��я��c�]����x^��l�򼠕��(�f���:~����٣^l�i�n�59����W��~�\;�?v�n����6e�r�����UbS~v����^��UO7O(�|;+�S��G�4|?�f�����*?�r���W~�2�o�N��ٟ���S�9��~d�a�����և���mH�6��m�X�[��J����~�s.��y���m�4ٶO���|B��d���/�����b5��ɿ�y���U�?�0�0�0�0�0�0�0�.�P�~�*��1@G\⟿��K����rKX���s2�(ߥ�纎J���8���'>�X@▼�Q��Q�b���q��wx��b�)����_�K|���v� ��1��M�6ke�e-2Ǜ�5��9��?K^�E��~�9�ϱQﱮY��F�8��N?�~;:=J<�����-�t�ĒyNA���g��C��	\�N��X�K�s)'�^K�g\~��2}�6�}Գ����)��n]O��r�^��j�~�"��{p��29w�6��/�.�z-v�:�+����M{�W����JY��Z���굢`%��
�Ҥl9����ힶ�կ�#O�Uz+�U�?;��s���d�~v��N���D��7*.Y�+v:�ye;�8�}�~��|���+ÑޅN�9���}�{Bƞ#t���x��խs�Xɿk��S�V�/��uJ=o�G���<�ջL'����L��:�D]�6�j�f���gL��z�/�+ؽ[{����r��C�M�Y�q�~��[�{�y������y	c�zA������;��w���9��z�szW���H�����V�ax3���� �ף��mkBT�����x���[NSQ��bDD�F/��7�b�P/��8�p�8'��}��	��Mi�kŵ���R�ޮ�_�/�<5����u��c���U��qq���[�^J�z�F�j�r>&��8e�e����A�~yc�k�Ӗ���,���1+N�:�u2k��7R���}K,��z[\�upZ�}!ʹ v���'����'�xa��⡭='��}a*ƞ�@�<9l�����K�J��׊�]��
qi`O(l$�3O&$�1o�>��?�����t:VVV��ߖ�|����b�	�̓I�ӯ[�z�kޟ$��Տ���w�Z-��\���;E�	��=fψ�v�_�"�?_��f8T�Aa�A=�Ds:k{���v��C-�:нap6$�3O��(�
����g�z�ɰ����n��
�'��_Kg�/�F��� ��y2��C��v�{�
��'$�3OF���r����`�=!��yr�k���jm7�'$�3O*�P���C_/&�3O:�Pz��?}��@�<)*�P��,9��yRt�Za6���sA=�$F��t6������lp��\0�p����g�=a��c�5�2�P[}���i��}�Ӷ��)�5�=������O���0v߼H-�P�{f]zO�c��N����C鹠b�M���,�o^��?������?���s��g�|��������y��q�_޸�7o��7~��7~��7~��7~��7���7���7���7���7������Z��g͊�gj���?�?�>5���X*mkBT�����x��}+��(��H,��"�H$��"#�X$������,�Q����ԈZs�>U{�	�.�.T��}6�ڳ�-��F`���p]�k߅~��b�
�
О$�wݓٱ����|s��Co���A+�q3��lO�x�@�(�0�a��+?�	��T,�_��7��s\���Ϙ^Bl1)�C��+�k�(�FyN"8��dPC�_9��>O0&l�4��Im+���n�w��G�rŰ����<Q��q	�	+����H�}����e��q���~~�[).�5c��6,�����m�uO���9p\��<//?����N�:��M›p)� �Ĝ-�2p�'�uKq`���_�����/���6�4<~��77S����N��BQ�����맨�uM�{���5�%.B�NɊk:	k�N��m�9���*�u�U�|2���%;������]F�aג)��RE%HWc0Mg�>��)/tih�f���	ѸX�>����E����)��<,�6�s4���5�z�b�?��J��\<OM%O#(7�6�:�=	���ӋYA��ƒH
���L�s6��M�X��BcX�&ǘJ�te�.����	3.je(��?�<?�-1�$p�O=�x���	]<Jt¡�Vg��`|I,<丕}�F�Qj]�o%[Pa��6�XY��<��?�Yoh�F��067ၭ6JF�G[�wv)��7?,�@w�
�nM�Ǧ�m��k>?���L�j��=���%w�Z�izFTx��$��kP�8�E��m�	jAO����ހ��>~������؆���B9���	�֤8U��KC�v�jb�L���C��y����;�mjP.� ����Dk���w��U�E�€3�ܨ�����8x�U��J��s����\���ɟ�+;}s�F�Q(KI��Xݛ�ƨ
�1��+K����dX�];Jģ��c�x$��D�׷���X`i� ���@l̏�rn�m$���^�9΄�zBGϞ�Q=�nf�k�D�e;
<���a�>,�⢞�j��k�0B�[p(��$���Ǡ���p�4n��q`�XƓ�	�vϵ���.x�Hn���or�J���5���H�u����뇗�f����a����[Z:><�M@J�9����$�q]�}=H�k�3����鲺t�Q�=�,	7���߻����s
�>��3�����6[��g���RL�؍����?�(�&w�.7C#~B{�]��
��U�W�7��1jk~�e�cG��r����D�.=��K�����@�W�DZM�0倐����0�\��x��v�q�NZ�>#�
����BE�	��)���&y�A}t�?B��Y�m(�WIp�ɱ���|�2�+��\2�� ��)�l�8��tl�@Z.B�����e񅋍�RS��ƃm>d�I��l���'N
a�dĢG3�%���#�)?��$s�	_5=��Y�BR#-k"qGP-�e�"�f����%֩-ϓ37�����8�M9��ϊ�,���_*n;H����EBƱ��cl�~����
˝[��/sa�g�IE2�,z�1�t�:�kL�������ș壋G)��{7�o���nd������{@r�P�>�k�w�k׽��#�kXfy��E���A��B�9�uM���4P=�_�l���gW��؇�N��#�_n��G�pp,Z��Uu�6ȓ��V��Ӱ��0EK�7*|��]�{��75F\�Զ��zQ��z!��	uH�>��up����T٣�o3P)���[�^�6�����` -�d&�*=�%��fY�<�^��ط`_6����|h���3ء>��2 P��q��7ώ����,Ns�j�F�=B���`�큳�C��i�U�)R鐏@L��Ү�����ǧmb<2FH�Rq��ùF���X�i�䎲�Om�GA�����}:�*��u�f�:@ʫRH�.��6���6�j���c�GOpO-
��6H����K��J��U���:�Jǃ�����v<gz���� �1F*qm�-;�
I�7
?��O�(Yr
�de�
��F�
�	�ѥ��r��H��a���ۡ�>�,����3��D�Z��E��Ʈ�qq���7p�?��Ȍ�K����%ȧ$�;�?�Q�r�6�pP7`�a����^=����R�_����)m���>�D3#£�_'
�I��ɭu͋C��-R�ne㯄����ss���L��<ȭ/��R)|Lt_1���<u�}E
D�zl��$H�+�N_2�scۯ-�rH�V.��������֏'���(}�o	��:]謧�6�Fhlw���@��z�{6�P_�?�
E����h���߹���v��K�/�B�"M��h;�����б�o��)gRm �$�5�, �E�x�(?�:�g�U뵅F�4��� 	���߹�E4��!��q?l���A����Yv��s:mR�(G��Z�y�Gq�+w0)Nz����u�Y�-�&����"�Y	='I����8��{��m�L/~�����!����.�B�����A=���缱Y��|z��:f�#¬oh�2Xj��ǼI|1��i3A(|��vf1���
NK���L�ͫ�.����?�r�]�qBS�^#o�.l�%z�⁋
��Y��~i�䔃P��q�u&7(��U;B��l zF�x׎����M����,|PfV�֠�k��'�N��b̔/�$EN���
HA�i�Q=�u-/T�QAD9����g��W���%YZ�\���aԥ��5�O�jr����u"9��B�zp�̬�vl��l=��ɸY���y�ܾ5t�����mE��z�+���M���>�L�k�=�rr4����/g��E�r��~P��nB�[��\g[{����g��Y�vR�W'��
{Fe�m1���{�w�L��;�7�&$��x�c���0����n����&��u�@5sC�Cձm��8H��ef���t��<PJZ��@��������4�K|��#`}a�kRN�'�~IU!�k�W��L��Z�D�NK����̡U�������;��g��L~a(]��!Bjv�(�f������\��B�}�AuH�R�����g��M��<7�O��:���[�m6u�v����;3��=��w�w�n��������3pK��M�������{�.t�"��nt�?��di�b�C6��=��E	�����,��ѮO�
���0�h�v��G��;=��MV%����ʪ�r�����4�H
8r���K썀�x��A�:�2
�e�.���ݟ0N<g����'�����6��%��G�1�ַm}�^j�n�ҽ�S�0Cz���LX�3���U���M;^�^~Xc����a�vGHu"��
1��kN�K�T�?,���r�=�܎�X}6CBW6ۻ�F��\�3�m{4!]9�ử��J4n��5J�s�w��^�D��h����z������8���P�]�z���1�x��~��J8#c�%�Ͼ��cF{d�����o��@w�0�QsP���_́� ?3yB2Đ{|��5����}�>x{q(a���тa�?���Q�%��l���4�ςxmWI׆�G�C����1���k�Q��3iJh�,����K��R���������O`���ʲ���<!�[��Nw��a����Z���x�\Rtv��^ZJ��a\(��Z�PE���� 1��ޣ�h���y0�S�L!�y�QP̞�#R@ӱ&4�a�9'2��ċ�I�E�8X�Ir��
4��*y��b��˼�/#�
x����;�2R~������O7��h�՘U��^�k�
����(侠,���2���)�C�:(ِ;�Q3>��4�)�%���b6�B8�\��p�����e<��S������+�js��p����%<&t{3?���|N)p7b�����?�a�i�D�Wl����X���Z�>;u��)�ko)#W���S�n�cR�x�{[�sXv1��95�_��0K�����ՙ7�>�Tp�5���ٴ�l3�S�"؝�LX��睫[�5m�����Q="u}���pϘ*x�b�Չ����#iM+��@�Z!�	��Ϯ~j��Y�ݬ����$?5���mt�u�] �%�@��݅:4h8ۃ����tu�3�;�
ΑO�1A/r����
��R*5�����i�&j#Y2:�$Z(a�d�@�>'z
���L�����뇶��6Z��8|`�6�"�X1�_�z'
�F-���я�?��X^�A:?1�;��h/K�VB'��vOn�FS���Ƥ����Q{=kh7��M�wXQ�p�\v�͓�O/��.���
�N3��HKR��l�K�"�q��^W��h��1wt��h@���3�e6�N|������I;y��?8t[�[�!����$,ήL��e�"�z��%IކA�k��R�l!3u�8�ځy��?_�W��)�AbC��O�!rz��a��5S��n֗���#�<�43y��6"���R����߃C��Q�&>�[��#
BH�ǽ�{v�e��kO��T�lq(�UH�͵h��ݔ8�,@t�����ՂL�{p����/�*�L"�d_y��k,4�G̖��bD>,��.ok"�D;�|7�[.�D�C�A���#�i���l����ϟ�I֬�����D�q�]+�eE	��_�--����ڰc�����^���L��q�1~�C��C�����C�9��gN�����H�8Bkh��J��#Z�-`�V�o��M�a 9r$�պZ-�h�kh�
?C�$�	�^��tď��9d(�8P݅]ڶ���w[�wl��;��d��n�׆�o�K��d�H�ބ(D������In�I� M��_(��������5)6H/���Y�1�� �QR�k,n��XH��ʉ�����?>��df��&6����^EJ�m���t��{�C�����C�c`���0ʅv5��x<��\9Y��c����}1�06"״!֏��9�dl:'��1H"�<HN�&]�5��6�9�!I�1;"����YxA��K-�y�m|h�d
�"]�����U�.ak�gbbw24�������j-� Q���Od�-��:N�	dG��˥M�����I	V�G=�W�!r6�w�H3����p"��ۋ����#g6*x�9��k{H��<W�����BQߍO�MV��{Kh��^<�F�W
<�L���:w$|�oY��-Q]<ʫ��!�!垹��F�q@}3f�R�%���oĿM���r�D���+�N|�Y�Y���6�j�r1�1k4��i'X��f�\:�e�޼� �~�P9���1�ߍ��
��&7�8Q�ape�����5 9os�M�y�	�K-��u��u9��Bdx7H�V����&�_���!C�lgL �04���yS��}|�qٳ�k�����b�s:f�'/���㼳@!�]%���z#�=�J�s�`3�W ez<�PIG�C����0�@�4������5�5g��x�c��T�G��U�#�R�CC�?tdx��L`�Ɓ8����dgsT�?M6},_��� �\�k٬��lt΄l�s��:m"2��5�be\]\�˛��{xa�Lo��Q�lPwK7���?M^a,�_�lb(�1�?�����3��݌^7��:���ރ��^�us�ϚqB�8*���h�Gx��Y�C�m5�M~�{Sg�9n�RX�C}[����hO�tC��1#W3�*��:;�&_�G�ۂ�&�H|�����5�L���<4Ƀ��\b������D?]fM{V6*�S�<����e��0,�!��
A��ؾ����K��m��m���ߍ�r���O�oC������2�
���#��p'$�F�˿@!�{0�V��YW���oe�,��'��H'���`�r�1�����#�ͿMRS��Y����ZB�h�|�x��H�@
6�YziWl�wQ��}�yqs��!`��~y#�-O�Ց����I�X���m������y����|�*0o@��]ۓ�^(`P�q�ƒv��ef���v�'�OA=B����݂p��C�J#
��֞����q��5�
R������wV&�)ԩ��n@po��]��{3�v�:������Y���f*aW��_�&'
Jk0n����D�x��\/H����D�u�qZ�\ڌG+啵X�Z�T>z'7�Q��q������Ɍ�#K�R.�/C��V��g�Q�Ȭ�����\��`��?d��1y���uM�6Ƶ8ZX]8�^p��wQ�E��
&�1frR��Ki����$G�����ݜ����Е���h3'��������{���;;�~F��K�37�k���u<p��dʎ��+C�����R���Mz�Ə�7)nҀ���� lEGy�l��:̑�I���o�B�<A\���\6�d��F��q�ϡɅQ�[�1<k���N�>��S%|��Е�sTu�le���b�A}A�����ʹ�1�0�A{�K��ʘӺ�tj����dLI=r�	�PRg���_Lb�R���
Ş�l?�␔�)!��[��F��o��wi&k^�CV(t@p�W2���{h�x�H�GRn�͉�eCb�xԉ����6G�������Q��d27\�ثd�S��=\�F�f*�0�ۣ�OP���5(r�ZߙxQ�Z>�~G�AeN-��jY��7�Ҿn;�n?ӹ"P��x�}���/�N��W:݊&��׾��:x"ꭥу;��R�펔���c䛅љ�������ElmG§a=�h�¨BG_�u���YnZ쫭FYs �U�"zM&�:��Gn��u�.�DX���5Xn�����;�}�ԫ%XO?�~2&����Frjj���8��yA���*�W	������I�����9/��u�b)��Z�l:�s�� 8�5��J��>~�i�������I<�k��¶
�٤�^�S�x�[����s��GD����(�+��"E���HnֆA_��\F�Z���%������?�4`���w��_{�7��"��0�Y��@�f}������PEj�m��v:�Q������rN��[w��z�*���5�c?�j������f�7���?K_�P��', sZ(oT
|��Ó\-%�蔒�h���y������\	cK/	˧YGԻڐ����z&c"*�(,����y�E�q(�y�[���q`�a�7Xļ��~�����R���/��{h�h���"�g��=w���ݠ�՗���?���̶�uNh{�g�?tq���m�,�u�[�Y���ot��+�!�hf��.2]�ݹ?�&��wA�R���F�ľ붾Ue���%��d��l�i����q��Ms&�6�X�w-&�Y�3(���G9��{cׁ�֬ǿM��;����v��n�"���b��)�<�׾���e_�1���p���}��11��F#��YX��p�q]��s��,[�%*&��@�D�f��ҹA�ٙfs���,���>��3Y�ԕ;�:#hEL�ם[ROd��^G�A�˩f�~Y!����E���n��0�~��/�A��
�K�m���>^��WY�q�"���<цF����*c��:x�w�|�͞w��%�ehRg������d�9�̕���v�3�v
Dg��h�>>?��3�h�YDk�gC�(ʹƒ�ԕ���S����Ԝ|�
2Q��94�(�?OG�Q34�
f�cc��PopT�Ya��W(�>�@�t�X4�`�LG�ٞp��Ʉ�a��Űl\�[9�c�26��UM6f,����'����C���4�i<D�n��#�x��г
Hz5�[�
�_�����Qt��m�vN�C_��`��x���~
Mb
s�PEx���؇;�cW��*n\��?���׿v�:O��3@f����R�&�e�����m�[mٜC���5f(�M����Ni��YX�xШ���=�4
y�HO�<�0|���3���[��B	:d1�"Z�O$+Kx�i̒=�s��J����g���~�i[Rz'����G�#�v��}�>�?W~p�sϠ?��k��A��K�rŵ���k@�I�|>^x�s�?�\��`,D��̒�����5��W���^���w�D��M���Xf_8<%|8_왉pP�1����W��lm߃���f?4����:��́�_�Ԕv ���M�;k�:p�����_��sj؎qw]$F��}���y�
��,b'��N��=�o�����0,
������~��M���
Y�R���4�6+!��}@~u�j�ct�C��P.�Y(�x�׎����z�?70�WXFܣ�o�����3z����0���c8�R��G��g�0��T�U��򄽻��w�"/4��֏�����C�Q`[{O���c�n�]��+�{�{�����N!�3��<���V��yx�,!C
�b�.��lf���'��\ ן�����gu,μ���w-/��3ۥ����N���X(�c
����o�MD�s��a�#�#0{c
���%�uDWCB�Z�A��Z6�,؏�x�(Z%�����w���HbhTb2��<$��*c���nk���_�א����#{D+B<�!��S/�g�Ï`�9��.^]��ß��C��+>��3�+��5��]�q����p�j'
r�9��FDȬ)~:�����9Gm��x2���-?s�raG"yvU��pa;R���ă� �A�\&���
�?�#��n	��0�ee����d~o�q嶭�!!DzP^H)>�o��ȑ.�ļ�Զ=Hy�7�S�-M�
�?��8y�c���ߧq�|�#�5"�2Б�l�m#��U�����e�Τ�V���bM���͘�jA�c7�Z
�]>4�gb�
���s	2WRsKg�6���
's8qz�TT[�R�[w��)I��9�5x���Wj��
#�!nN+zP��ڔ�	�Kg��TE�,�����?��{�^R�Dݥ=�R�u^zîc������&D��'i74�S�J�ߔ��&H��U�G�[���cr�ͦ��<����׿~��4}څ��h���;���lpAZ�%�X�Z;t�Q?������y��k1+Ƴu6�[������D��c4�Ɯ����*d��B#!}�e>�samh����G3c^��8u9󼵕⸈߂�U�y��B;f"Y�i=�D�=����4��&�����|�C���3���g]�~���WgjhSIXU��"1A5Fr4�{����A��lj�w�T����t6<�/N�� �\����R�t��a|�i���>�T.�Wo>>�x��ϯ�Y���{緷m,J�{gg}�v~)�]��s!?w��X�����G�F��l!7��U��|Cn�fﳅ:.@mq%��臔���Ru?.��:��aB�ֺ��E#G�g'yX�D�u�SW��NJD)��21�ѵ�V��agW��P���q����Ȓ��s�?¶�@�g")���s\�T���{��f3g��o��^w:^�"��{��d#�!φt�}�,n�yWFKv�„X�4��|<��B+���8�i=�-;��X	5l=/xl��w���n�]� 
�+S�Ӽ,{՞�/Д�V���+<<
�����o �����ԇeNp�^O�����OvqR� �wHF3�݁�=o��;�`~k�R�wC���u¦�k�jE�|��qϩ���KV,���*?��xk��}Q�x�U���/M�����=��հp����=犐�^x�Bˏ���Kx���@�[���I���YB]T��➐����Kq�.ὀP��w����AG\�W�ϋ���9���2S���A\�Y\��y=Ǩ�Gj�����բ�M�@�tԂ��vD���z�+���Bĺ\������լ����6��k�6L��ʦ�R�_r�n�l|UAϯ<
���|��!��;��8�_1�g�sލ��C����� >�VB�~�,����˘_�&f���jp�/W�ԍ�wa�O ���H3����I`���u����1�ͤ������+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W����ݚ�w)���mkBT�����x��]	p�U.�7�BiI��o�閖���T�DGqEY\pTĕőQ��qT�eap�uE��M�4i�fiӼ&M�gϙw���%�ܗ���|�4}��w��
�
w΍"�%�'L(�s�y#��6������	��	�	S	��	g����)�Ӎ<�!���0����esUE�M�KX@XDX<,��s�	3X&��|MdyTY��o�ou}
��,�
�-#�$�"�!����9�	K�<�f9��r�=r�_���1��ݜ��d�j	�6���:~?>g=��j��e,gsYM(����������1������l`�. l&\��2�{7��mR�P�r���n^��O+���w�����#�:��x^��o2�_�cǎ7�߿����������q����'N�h#at0Z
���5��>D�ѣG��ψ��:�7�]
a������ǖ���w���}B<~.�^�E�/۳g����Ǐ7�)z�nF��q"�=��.B���w�g����A��&��u�lK�6�7�Qj[��A�_�{��Lwҿ�ǼG�ͭ����|<���䡙e�mmm��ڵ���qa�;'�-S
��o�����ڝ��+���)�_C��Y�G��.�y_�NC.�:���l����R�.�޾�r��lˋ�ݷ9rvG�ψxq���l�&�=+J|�[F�����㷚m�����H~y'����r����	$}�ޱc� /7���j߾}:�C�?�������N��E��#�{�,w�.޹s��b�c�����bc����|�x��(ޣ�@�;��Ç_Nz�-���e� W766~�t�	�)����ōo;x��l�pߊ�	|�[b�����N�>G�b��_h�?��޾�}��ݢrzAT� J.� y�,����e{����J�R��sl���w�pߪ]1�o~Kȿp?ɥ�({���D:o�1~�w?Nz�fzMT~&<�s�kz�/����3r%�>t�Г�ݝJt����O��
ܷ�b���ؿ�<�\����n3z&��.�[Υ>S�c�mM����`)�o%s�VɃ�9�Ar�ڂ������狊	
�����?������e��R��՗i�&ӏјڼKs���~������*~}���%,5���.�\Dqb��
?���θ�2��/��o	�?��㥬�=rj��l�61b:�O��Ȕp��gd��F��N?����"ә#��E,��Y��^E�"r
��
?��r"2��ev�l��Q	�_���:����|��<~Z���_E���x��v~vD>���q��\C���1��}���I�G�_�����k-�,K������憾�-���`�{��u�뽌~‡�@y��y]c�f���7'/�0�e�L�x���:��|�|T���l���:��R��.G,��"����|�}������u��677���Zj�X�c��H�I�g;ds��sΪ�b���}�'3�v���� �:ޛ�6�V�b�n�=joW755	�q9t����hQs��l5F���32��u��^lpy����b�a�g����{[ZZ:� �Fn���,t%����ɚ�	.]�\a�З6���G��!�%׾���XO�xlV�t������eU��@�#�i��\��z��]Lq�����:��?���	��I,[_����r,v���{�:��]���%Qܗd�LMr���]���K����N�mJt,���c��/��o���f9��r���)�ȏ�O��q�t���o��������<g�G���l����-�����<רq��+��c]�ֈ�Xl~%s/-W}늽{�4r�|OO�s����H��J�7���젬ӑ����Ή+���w��t������� q�LÑC�p6������.�}�Sd����p��*�E�;t,��t^����l$��c8v���&p�a�װ^�ߘ��1��\�5�>����7䬉Wh��w2��b�����Q��
����x'���7O�G�φ�^ζO��)�G����$�Y��~I�Lzlxv�?���~@�?��XPl�6��屫�=D��q�|���c���������=ӵ��6��@U�-����%�ǃp�u��Ȉ}s���lq�v#�XÑU���b!�{���s,��8�c�ޡ��B������kW�a��`�^V���M'��P�{a�dqd�����G�9�F��=f��x��I�y�Ż	i�|�%�a��c�\z�����!�ی���.���G�<Tc�l-[L,~
u�GT�CL<�Ǧ�}�(~F�ĺ���'9��~n�O�l��l9�Wy^@t9��jN@|�����3J�#6s�
��Z��V���8�7W�j:�p�@zn5�Q��Y��zظ
�_��3�ᅨk>�?�/�G�wB[.�(��o�5�:�.�Q\Ga<?��o�"���?M��T���P�D���u�0Ϩ<��=�[�\��1�o�� �m�K�~�ó�o���c��˜��c�D߯ƨ*b�d�1��H�ߡj��?�s]Q��o~�����>����}$t&)���q�Z[[cc����1��tB������߮��_���ظٝZ����1� �`
lR��P�wp�$�Ü��LIx�'-n���Q�Ԝ ������)�e�w���'��n���?���m''��֓��\뵎����+4��	��l�5MMM!���w:tH�I�{Tmk�$���m&�ō�i�]��U�}Ĺ��}Kx���}3�J��s	�����"k\��P��oU����vuuWc�T�꿿�֗^�M��T��g�����#�bI����Pv�o;����G`
X����׀%a����߯T{����O����o� z
������sط;���=q-��H��gݽ��>V�Q�ψ��X���8>F>_����5�I]�/-��ߦ�<�=��DE������m��f
��7��E�uIP�[�;��	��8���\Y<�bX�^�{�P>����{�в����@��4VC����<m���r91v��or��<���o���!��_��v��)�\��V�����f��y0�����t�=��G�G��3lt��zŜ��9��q��ɡ��:��of�'j�ro�����϶�
��%�{�7��/vy��9Z���ޏ�O�!��W�/}����؀��
�,�
o��h?�s�_2c�_��f?l�3�|�[��rA�u�{���r��n��bWX�g�-3>Pο�!�W��@�����rA����`���C��\gb/d��3F��aϿ�8�7���%�r���?��j��G,(2����*��W��9t�:�Qg�Ğ�����6@�y���a���A�+Ş:�Uι�Q-�3��L}�1��z*���+��?Z�s��9��^O��fW���Ԣ�/�:y���e��=�Sj�g��w��s�a�9��{w�Ow��g���>b���c^g���w��8e;�����ϽJ��N�}��r�W�;@�{``nioo����4���\g�>�ֿi;�T��Qf��4���W�����Y��R �t�o~��-�@�6�?�Z�9#?��`.Nw�w~���1,��\�0ԩ��jqG�Qc�ѷ���[���7�E�uX�h{	��uO���`����W�p�Xf��f��{׸L{���D[֝����7��o�����9J~L�dL���e����f.���.��\�w@V�g�f-�獺φ��1��$�Eq����H�}9rn$Β�Z��z�y��������g�{�"�L�fֲ��)�e}�Sד�����-��������r����Чz{{��r�p"w~�e���e��/�h���������=��5�z^��|�[B������p�7A���������킽>_�;୮c�gwc�F�����q�@���T83�]��~6k�p� �SnQ���Ph��]�������˔G�1��9��]V��-��d��T��=�l�����?�VA��}� �fP���'滻�e�Y}��o~���ؚ����Qn�5$Q>��0�Eܽ
�~Ay%�آ��
;�37^]__-q��x���k�S������c,W�;���c�����U�p��7�e�����и��1o��{�S̹���q�	�7�\�|�sK��gY���z7�Y��(�����o���s*�\�~m�_�O�Ρ�[��&�O�-��
+?�/ػ$1��:�5��s�������Ƽ��\A��P�a���~��7-q6����;9�9j�a�~��&~�Z�:���VY�(}�;H�K��kW�/�W���y��B���5�U����L��350��#��)�=��L�|Bx_�6i�K�g������A�_����>a�ˬ�J}f����
����	X� K��W���äR�{�|���(���b��,�f~�v���C���ˬI=q��<�~<�	0g s�e[��_��K�`�bg�,,`~��<�b�PH�o-�g�K׏e>�\�d~�1��\7�V���Z���ds~3\z�fۇBj���=z�H��T6~�`�.�7�Ŀn"c�=w;�y�g�Oc:�7n=��u����P�ma�!�9�(�#���߀������������������������������������������������������������������������������w#�֨:2iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
         <xmp:CreatorTool>Adobe Fireworks CS6 (Macintosh)</xmp:CreatorTool>
         <xmp:CreateDate>2012-11-13T18:40:53Z</xmp:CreateDate>
         <xmp:ModifyDate>2012-11-15T21:38:58Z</xmp:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/png</dc:format>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>&
�� IDATx��}y�չ��T�6=3ݳ5�̰8�&,�J"(��j��1Ƙ�+��q��
��j�1.�c""oܽ���$�G�&7n�P��H��mf_����:�}N�[��gzz��>O=��S]}N��]λ�9�Q=��%;d����a��qP����fP��$��\��12$Ap!�@
���<,��#
���nq���r	��Iޫ�G8G����C"9d��P��7?)^'�kyQ`F
�M�A�!�R��0x��G��OH���sD�	@�x`�yP�QuG��ȿ;�H0�#�х���,����C~F���/�^�~���W-X�`�ԩSO�㊊��\.�_�"Ƙ.���4̈́aQ�0"�X�����q׮]��o��
# �[$(�4$ܒ��5��h��P$�z�[6n�:uj�ʕ+g�~��gVVVNq��%t1.MӴ�8�[���S�L&�]���;�l���=�ܳ��w����L0��3hn9R�P�E
yx�`=�Z�j�%�\�����]�}H�|y�A�eY眛�at755}��Ͽx�]w�lnnN���R��`g�r$QE�Br��M�>ݿr����<�̋JJJ&2�\"b�Soq�Mι����Y�8_c�i�3]\O^�eq�y���{ϫ����m�ݶeǎQd�a1��G���4 ���>d�V__�[�nݙs�Ν_\\\�̍K�4�iYV2��uvv�mll�t�޽w�����oz��:�k�ַB��~�����q��ՅB�c���8��[�i��1&E��w8�foo��_}�e�]�?]]]R4QE
�1镑$��V�^=mѢE��IH��a�C�m���5k�l߾}{/��Kg�h�y�^�_��_�,X0yΜ9_���>��vn�`������m�ݶz͚5{��	J/2��WF��E�|pմi�.t�\^9> %>,�J���|��s�=s�w�hllL�s��WMXI�L���ޟt�I�˗/?��_��w***�j��Q�3�L��{ァ�;�ߵ��%��PN�ǀ��p"�P��&�������s�=���L�,���=x��_o�����F9n�W��p���qh����>�o��������&	��,���}�ҥK�|ꩧ�ߒz%���p"ET�8�PD�/��s�9g���)�?���i677o]�r�>�`#�o6u�@�/Q�1���n���˗_WQQq��i:�`"��z�'n_�h���+����DCFq��Cr��mڴ��/}�K�����b-�<��/����p�ƪ�&�SA��W?u���X߸q�7�8�+=O%�/�a$�~��g�q���W"�",�].@2bJ�!�C������/Y|��ǟ�i�,⯹o߾׿�������y�_��3�
Nb�I\Q���|�Ȥ�e;��s+x��kjjN��P�4�����/̚5k}$�G)�F�d�7�H0(w��ܵ���M�6�G]]�<���`F��_^��o�5d�ԏD��%��#�*�td���'�eo����̙s���^���e��>�앓N:��R�+���h5 T���'&�544��c�9�����x��w߽⦛n�	��
R"����ٔK�%�k�����9,�����-˲v���i��5C�M)���X���+��s�>�!7RQ
`��N0�ܭ[�>j���9O�����k���s�y��`2�zc�#�\�������uq�RU��|���͒sZ�l��h4z���4��M�~�r��*�5[|���bYO7�׹�|ѐQUH��i�,��+��2M3A�������?��Ȁq*�b��ŵJ�� �@��o@|��Ðۏ�
�1� Ƙ~�.������m�s3#���O�`�� �t���F�u�?:T�H�Q`RO�L��{�-�,J$a:�h4�|�W.����G�)*G�F{�*�&"�D��ސ�i~1ɡtIKwO�S����-Z� �w�9�b��E��9~��1�"(Q>��C�H�x1ROtZoL�0���G�:N��H&��?��O�v�ڽ�[#�D�� �M�������a�Q���0�\W��s�wL]�|��\.������i(�wE�H�C�	 ?ҟ��P�4�
g�=��%������|��'o��������|VJ�k�0�b̂ݳ+�8����o��/���e�i���|�͋\.��䤱 ��7�w2�H����n����'�t�i�[��={��v�W�U�\�J0芖�-�85C�'�)P亇> C'�c�"c���~��/�߿�
�M�ة��z��e��Y��E6�&Bo5
��ӧ/Y�d���� c�6_}����F��7ɷtM���u�Niii�鍊n:A���)e/�@���/���5	��D"�������[��ryV�X��z/�gR7�}z� @�l�z��3JJJ&��eYƆ
�~��7��q-��Rms��FzQ�9gUUU3~�_<��g��l֬Y��c�4;�H,�pd�{��y��'�|r�]���'�^�z2\"A�2$�Pq�Fz���9s�\(��,��|gѢE���\>'/�������oo|뭷��9q�p�U�����W_�����[Dh���>���&L� �rɀ�V�AS��߳r���~�p�q�4{W�^�0r�!c
*����nw�ܹs��n\�n��pcá_�GA��	����x����i+..w��
;��{��8r��:��<묳.�eY|�޽o�[�n�c�2h***�^�x�---k/���~����x��_�~_cc�&���s�](^S�k@��	Uw��~�V����K�,+y�m�=	��P*o�,�D�����?��o?����~�J�:@�Y�O<��F�y).Aii�1w�q��-�4 ��~�?@$:v饗^"ԘeYhii�PD�h��f�
[:��ɓ/x��7���K�`x���|��׬Y������<��碋.:v�?u����p��g��3�D��s��{��">��v���9�]]]��_"�h�0�%mmmƫ���Q(w@]]�i�`�z���sB:�t��9���I$�Ɏ;�s���F<�?LZ�x��#O�2P1�rI:hv�׾k��̌a���u�]'#�r�Ol���kZ��ӧ�?˲��ظ����f�����T������C=�u��+��/��1
��&���e477�L|��y�g��9Y��r��$�����M�97�y睿"Ru*�9"�v��O9�����_
1���`׮]�[�e"�ܵ����^�W�;
�|���D��ϟ?�D�97֯_�]���UZWqī������9�---k��/1�դl	��6I�#�|�1_��W���$�U
���ev�L��H%�umٲE&*P5�a����f,^���!r���������0�n��i���/<N|�_��\�ؾ<}���5�,���L�t��8��/�n��[�^���d�[h�-񢻻{�\$2ƴ�3gNG��JN�d��0����v����#^z�I���ۻqÆ
�з�L�T��S6%�����HVUU5��1�@�z��2
�sn8p� �9RT\�*��DEEE�_|�m---ko���[�М3	
��}8|�p#�\>����+U�ɇ���r��`���Md`*�|nH���q�H���®���UԬ@�4x�ފBƔ bA ~뭷���!�&��:�n7?-œi����{������..d,yB,,0_z�v|��Gԇ��F4s��Gu��X��6���5MZ�1��q�\�t�nQ3����!J�3�<��~�œ^ˏ��I�y�h4z����_:o޼�Ȗ9u� �/�C�
���x<e`�ft������Ԝ3�{4S2��lڴ��y����	&r��Y�f�P����!�eI'"�͞=� ��h��;w>;w��	WHW;-���BG�={v2`q�J��i��Ƙ��/}i��׀���Z[[��|��WM�2�͛7� u�e�Vf��4�>c<3f̨���dw�s���DV2���7�M�<y��[`�P4=��/�w�%����xN>M��9a„qRoX��x<�U���$�v�������jN�`$�����7s��G��˧������"D�f4-��DVWWW�<cZuuu=��*����cHhϞ=�;w�3g�|٥�4A���p���T@����r�x�9oiiً�%A�K��9^��?�XZ
���`0��Z���5j���u��߿��c���=эa��U3�1^�@ 0��%Z[�l�&^;�r�$'@���q���Ԍ�z�U��� mL6*�F��_~��U�P�%K�|{�,�nؕ����g��Ο?����s�eY���~z7
p/��~����k�"�8�Y�d�)�����~�װQ2����o{�_��_���7��2��Sv�ȧ�I�|��~��'1��8�����[2`5�x�
�ړ��?�D�1�Ϝ9�Tr
5),��k$���\}��WΜ9��>ē�'d�A��S�N�%�eYVSS�Lzp��je��
�Σ�����N�0�L �G���d�c�F�oawww����]�dɇ�m��t�BZ��ԨtzԼy��P�D�?8��شi�f�|�^*'����i.��/��eY�gn���W���S��7XJ&���_~yU0��=�K<
$��)�S�����Y���W���1
�7p�i�Yz�7o777�-�EMc�]v�U^���ւR�!���CO8����'J�>��n�ܹ�#������-[z`�wN��}� jRX�K�zꩧe�VVV����G� ;�hظ���u��_>�wG�fl>�6H'��z�_�h�O<���{NҦ Q�_�\r�
7�D"�䉺���,Yr1��Z��X@_I�x(��'�h�И������k��J�=�eY���ܹ~��ϐ��?�!Љ�&�i.ٸq�)�����{���"�%2&-Þ49�R^��d2y�������-��Y�r�����fPe��K/����Mr}��N>�H�\֫��zKoo�Y��r�<��~���[[��:�>�w+�n��N�����Q[[�Y�l�r�z
��ӳ��o|vy��/�3���_|�&�;v��~���t��\�(Q�0�e�q�"wG!Dy��z�G�NJ�`�����>(ZR�Gހ���Avp���E<cƌ�|��'�TVVN�_�F�͡Ph�h]�O�����"��fc_뉡���g���}�M�|:�����޲I�Q�G��Njk�$���9q뭷�6MSƑyQQQhǎ7�5�L�qʗ��!#s4���%�SOP�`Є9Y�����Υn�;
F"���~/r��a�z��Ͳ֮]�w���2�?~���?����� ��/K�=�Vy��n=AI��3h�(��?���555�e�eY�ᄏA���ׁBۣ��'��POOϞ��4�5o޼k~���>����dteq�c8�$٪�r3����C��׾�X�@�����W\qŋ��V����pS����ŋ&•w��o���E�R��H&2��H����G_��� ��Ն�60�,Y2q�…���z��H2�/]���={�Đ
F_��}S�
̘`9R��l=�6l�p�aq��܁��R����T絙H���{�,i�H��$)�"�t�^�+��\,k�
�b�֭�� �~Yi񧡏�r|��i&E<���?��eHu^���_F�A��Y·�nI���]R�$1��H=8_0����a4m!s2M�L��O�����&��@������L?ɟ~���wܹ�#i"�oܸ�+�����KU~��R�ء��@��6�F�:�裏κ��Koq�\E�eq���ڹs�ӦM��P���;\mb�Τ6yK@�c�i&�l��ؼy��HK���"T]�YKy��z�)4yZ݈L�:u�Æ
�N�6�B]��ѻ��>���p7R�֓
�m۶�`ڴij���c�eY������_|�
�8�������sM�a�Nqu�1[���Ϋz��o�����i�N�شiӃ_��W�A�`���p�����֙g��D�(R	d�D���_�ꫯ~U��œ���CTEŖ����g���y睷��v��uLӌ���Kw�&��/ @��]������Вj �����t͚5kn���]�gg8՜R.��,z��~�ӟ�bŊ����'�Жe�h4���f�O~�0H0���"���)�hjjڼ~�����ZHJ�@
d
�����Jײeˎ��k�����!6x��3U��b�F P�N�����O�>�{�'��%:::>}�7~�}�m%)4��l9�S�L�Z�j޼y�WRRr��N;�a��x�g�u��
�`0���
�͔\�dɄ�o�y�����~P�a��裏����?��s�=wX}
��/��f�…_�2e��UUUSt]/V���4�C�m��։M\�%X�~!*�$ @6(��H�Vy�>���.���~�)�b#�Lvuuu����8���ּo߾|�A�-[ڶn��B�9s�}�_(;���kjjB�PhlEE����c�nwPl�&�I ����O�y�GV�\��ls4�uTi@;(�f������}��~��o|��zƘ;�Ƒt�<��$]4�1&7�d4�"
�@ۮ'��·~��+V�C�_��=�T:��h�i�UVYY���O�?�y�������2�8T�KJ��~��7=����	CBͿ��!u��&�e�n�*]�tAF��Y���I'�T�lٲO;��cƌ�\\\\�i��'?�K�Tz��Ro-3�jll��+���jժOv��� Z#B��v�I@$ь?��퍞s���N;���|ꩧ�RQQQ�zK�^o��rk���m�9OZ�7#��ñX�������޶�����Zm4gJ�nImz9��V)�@$i�pE�F��Z&7�9��j����:����P���~�@�&đ
RN��=�-*��S}��Ԥ�3�M3�4RBI-𡩧��)�tlD9��5	Pz����-0�D�Q�S텓~9�
�#�P��=�Q%Z*�����>_Rŕ_q��yD%'=R���v+0 G��Ө�)����2��( ���2��( ���2��( ���2��( ��l���:ihhP�Z���u2iҤϗ��HB@P���:�<���&M:�\�$�p*���B�$��]m�d`����8p�S���$l0��*���l
�p3�@8E
��l
�08���w��J!��Q��ݻ�hGo>�>���
��\Ij���f�$$9��q�7�I�
�CM�˕mb��1�������x���9QӴq��2ƘLQ�e�C$�q�#��v˲��������p�0�R��6H��C�-G!�$jZ�c>���)*//��z��u}
c��OuI����W�s��e��x<�NWW��X,֭��o3��#�"�db�<�����bjII�]�Oa���Y��"���w���A$y���s�i�jc�v���`@q@D�"�����񗗗�VTTt��i�Y�J�A�v@�0�"J��L��Ȥ��B�k�kqI˲��>��ٹ%�HDa�{�Ũ��w�y�PPF%�vd.���r�|UUUg�|�����![��Bܴ����4�O
�8�L&����h4�Aƭ��^�X��]�r��4M;V�JƘlz�U��,�`,����?b��\�!�N��$O��***���4M�{�e
B�4ͭ�h�O]]]��D/�9U1����ӊ���KJJ&�|���~2c,;7��4�O;;;Wwuu�s��� �2�DD�7�*��}�xZrsE��H䙎����<��|Մ��+��������\TT�MӦ�}���<�ǟ:|���~Q;���E�W��4/IDAT���6UZZZ[YYy��iǑ���x�4Ϳvtt<����(�
�*�|��Sb+�T�gVVVv\ �T���!�d��������p8|�TT�W�����fC�)t`���_���Kcr�K)"L�4�����+�Po�Z�A�������c��i������u�����
�+���Ҳ���ʰ"��҈n�����.�z��#ӬL�%����e3������f���H�����zj�L����FQQѕ��Jy;R��X,�����p�+�'���aD�*)�h)/]�uOmm�b��-;��ə�a�~�С{����&<'�\����PŖ���\�&o�����~EUU�.��4e�F"�x���yj�Z�.�F�'M��s��!���� R�uO]]��\�yȬ
�9�F��5�z
ٶ�Z�A�"-�8�V>rZ��r���MK�ǶX�������F�?mP$��W8�K��E��{�r��C
��ċɑn0~������q�;���V����]SI�y����A�l�%N���U¡PhNII�
�1�������W,P����'C
��ijze���]�z�FS[[�
����l��rc)�� �<�'����T`�b0<����n�XŒ��666n�H}BEW�I��H^I$�'E]�icǎ����˲�577�����\�O1�P�Ɲ�g-�khh�1�&M�drΩK�6e��I�������Ҳ�s~Q�z���B�y�3�}�:P�tǝ�P�BD�Tⲉ��^^^�Ų��{�[\rFkkk�u===aC�[�ݔ����>����Ų,���	�I�B�4�����UUU= V�iQ���z-���]�)%���!��4}�+p���
��cEd�����?qC>��'đ�(�v:ҝB5M�!�X�&M�M�Ӝ���s���k�<�)��`ee�ωA�R_=�>'F� �\?�幺��ᗒ��÷_P��F1!2@�-����|F�I��!c�"�T.�����b��A#k�������d+d�}�:�Nι]CEE�d�dzD	'��הU-��@]�R��SE�Pʕ���!�/�w��1��~�С��x�|�y����@=2ky�h�Fޔs"
wغvz<��@ �\�)��[ZZ�0��E�{��	҃���:e�ĉ������LPS����ғ��w��5���6����䜛�^�9�@Fty���~�r���_��f@\�׉�£
c�A%���p��X,օ�k�6)�\m��^i�>�����	&���¾Q�\���T��1��*�&X�x�'�B� ���+++� �%�o��׉T\�ms���z�"s�aﴴ��;w��%'/�}.�7jkk7�����s�!�/�2��ϦOZZZ���)E3�]�r�<���-�A+�l6Oyy�i���ݢ9缷���a�#�ca�r��+��|K���7VUU�g16�s���Oo��wtt< �.�i�6���B��u��G��T'�)(**�d��0�̱�����Qb�U�{'N������ì_�>�k ���	�www�3Ms��������r��a����UTTL�4m�8�sΓ���O��0��52��f��P(�����h����ڮ)݊���g#H�&Mӎ�����ŕ��>��N��H0t����d��e}HL4�&�ܢjH��v_P[[�q�ر�`�����,�d�i���2�����aw�S7A�8Z	EEE�"�}�D��՜����1Ɗ�~��c�9���@�����4M#�n	��~�h�Y�r�
�hX0�#\$8�;��d6b�4M��0a�yꗁ�1�K�A����w9�23�1Ɗ***NF�ޟز�S��
�{x<�Y 1g�0�*Y4�wD*�\.ל���G����C�X�)b˶��eY�i�r�n��!��d����V����1K�x<�W�Md�b�{������>҇~)�Lι�c2�|�0���d�YU��:'����2C"g������[���5ҥbN�����+&N�������,�D��ӻ5���MԼg���|A�S��Sq�2+..������b��LT�r�z�"]�g�2n�#�����4!��H�wII��C��#A) �/{<� +i�4�-&F��ꋤ����J�o&�ܒs�˲���Ӽ^�t�鍠�H֡i�d³�i�tk	��>F%I�R__�q̘1�з����A�4��ݻ�[j�$���"#�=0嵜g�����a��!�|T�,'b�U����VTT����{mGG�ndg;Ң"���ݻiα��ht�ݦ8_#ٚ��V�"^.Y�J&�Md`*�|nH���q�H��g�eY���c����u!��s�b�&ds���?O$�0n~�I"�d)���?c���������ێϙ��p�ӈfN@�D'2��Wy�|E�[��xM�+�皤��p��9�H�aD��<�'�C�F�X���}^&��8�{zz�hmm�� ��4C�-/��{� ��c�L���\.�a1d?A:R���q�#"ET��N�9�-��[�|T��ΗC�ٚ��
����������͏���8��h�# >��
voFA�|��`1��D����F��I�!j��ZS���.�F�����w;���+�zHޯ��x�؁�Fq�G"������Fv<�Ϧ


�s��8Fn缫���H'2�3]�Z��F=��H"����E�.g[
��M�EYAӴ2"�V@,�j�u=]>��z=��Ml544h��}b�>|��'��v�k<�T@*��&"cs�4�"{I���@���D�c��}�8�)Y�N�֨�4�m�H�������.�U��/�4M�8i�R<�&^;�r�$'@������~S�H�X����b�N�C�r�G����F��:t���4�*��e��������E*�"~�'����B�̣�h;���:�1����b��� Ӂ�ݻw����ʗ��hmm�]��4}�ھ�
���O��G�y�h5�x�
�ړ�����].�X�����
@ă�W�-&:�d�;k{zz��¹�S!
�r���n�b��������
Z�����w].י�<�r�d�c�^CCð6��
ڲ���Z�'�O-��1�tz����|5Y�h�b��rhP�
�=��>�
�I�&Y


���蝝����̦`��WVVNokkۆ�Yz�
�<�F�s��O*)鵶�����Y�������1
�7p2{�d�w�x<l���\.�q+))����}���,��x?lً9�5c��ݻw3�w�K3����21�]2&5K����NV��ҹ��p�i��\�/�c��$�֐�R2Ms[KK�����5���XR˜���e��J/0Y�)K3�Hj,9�<��[�W�5���n����noo�aY�>r�;^L���sy�6h����^�w���D�
mC�[t#S�E��E��Rj��/�X �
�y�����ݟ!�;f��pQ���$�<����sKKKk���U��1��J^�X�y$��۳gυ"F���
��]O�4i�-^s�������L������ߚ�)9�>�y'�;�W.kKK�˲ ��򔗗_��E˨s%�5㏍��666nDvg7�� h��,��u����˲������ls;oq��͙���� �Mt�\�+++��G��e#L��>�&�m!j�涎������w�H�	�E�%�ƌs��iǂ�:G"�EkB���۪�/����mmm�M��INw���I씵���.��������{������=��҂�6�t�JJJ�}>��$r�4�:�R�.ok�?+���i��������^;4~��(Rt�I��c4_Vr�\=�6Mj\b8�D�j�0a)͹�w����;�Pt@k���7��,���ko"���g����رce'9iqI@l��b�"�M[�cX����Mi�&�+�����|��r�&_3��Q�7$E�}B�;
g��8�eY{�W\>������a�'r���rƘGtfS��8C�'$�޽��^`�����
�f-�g�inonn~����p�k�7�zm�c���3���_VVv�pIK}�=�YE.��<(W���DZO�
=m`��%%%����V"ᶶ�;E��
F_��}R���zm�%��p�P$�[���T�B�{PTN)PDz���G�o
�xR��D�	���u���TVV����$zzzn�`Ps\�‚�^��OSO�6nܸE��"��|��������O8�5�I���aKGU:T�E�jM���S���/D�Xy��h4�����`w�!�J�_�����_�v��E�$�<�D�jiiyG�(T����~PC��]��95���P(4����ڜ
��H$�=p�p��g���j�v&��[�����b�555=�3�M��Y�P]�&
oK�'����Fd����3�R��s!2M�R�{���~;\w#e�l��7�bB.2!�4��---w����!��6�6��r��BƕC�4��c����
�B7�>D�"tz����0L���RSS�-�ϷD(��p�[���---�
W�S�3��|kPh�+QTl�
[��������$z�xoo�ݢ	t�`���?�A��'(���'�[hI� Ӳ�O����ttt��N5'�f�;�*��Χ
�ǖ��]��ddt���5vww�jkk��f@��@!b��> (a������;;;i!)�5�5��w��]�]�@�@ p�p���q���C0�����x��Ph����?��0M��X,�{��'��;T��{<EE�<��=MӎA&�-��<&vCpZ���v�, @����	���K�S�n�b�s�{,�ڙH$�o$�0�A�������������tMӦ��?�.�0cS{{�:����/D�pEmI��ݡPhvqq�)G
@�eY{-�:h�f�a��xc<o���a]��>����v����j���4m����5M;V�/�����i��F"�G:::��m�ԵҠwjQ@�,P��$m��\._EE�,����i��t풞��kA�E�Q�v@5Q�!h�z	�4w���<��޾���/o �2q@��ۭ�&ɶ��������	����\�SD�\��#_�6cSOO�sP�o�zH�lл}@���ȑ��
x<��`0x���-Z�p���.y��4m>s�M�!�4�����������tD���q��pn1@$94Ԕ��tot8,��p|>_iii�d��{��i���R�XP(f�g"�s圇9�]�i�3�o����)�B�V
OSOm�7$ۭR:�H"�����v��:@-����f5�V�K�6��߷}7�<�UW�E�BQ����d�q����^%"�hL�M^�)��V�R��:BM���amk�R@$)�"��'�2r�jG��*���F5 �8T\���BE�jI�ߏtq����6w��a���k0�(y�48:
�(����2:
�(����2:
�(��*��nMb�IEND�B`�media/css/controls.png000064400000003544152177723720011007 0ustar00�PNG


IHDR� �R�sBIT��O��PLTE�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������yyyxxxwwwuu�rrrpppnnnmmwiisiiigggdddccc```___^^^]]]\\\ZZZXXXVVVUUUSSSRRRQQQOOONNNMMMLLLKKKJJJIIIGGGFFFDDDCCCBBB@@@???>>>;;;999777666555559333222111000,,,+++*****.)))((('''!!!     "�-(�tRNS�������������������������������������������������������������������������������������������������������������������������������������������������������������������������o{	pHYs��~�tEXtCreation Time11/13/12��:ytEXtSoftwareAdobe Fireworks CS6輲�IDATX��V	[W
&����D#�H�V��[TH��(�*H
Z�&(FqAYTԀn��T��g��{w�L��+��z�/���ޝ;'o�c�)�d�h㡠���8�	TTc$�����|\1������Utγsn��k0ֈ��N��j!�zJ�o�[S�]/�?d�o���8����v:W�oN���ӹG%{��X�d�=F���#87�)u,ј8���Wn[�!;C[�)��~\����6�k��'���[�'�5�+q��g+"خ�f2��/,f,l��	��r��
�� '�mk�m����3�_����q�V�#BQ�n�� �0$�s�ݕׯW�P�vh!|�yL��� s�`�~ue��G��&�ЏuX��s��SJ��Vb%����Q��+�_ԩJu��P	C�^�M��^�A����2[,����t1d;����dV�Z힅g4����T�PM��6�n�䗨���1/��ˎh��,��m��p��x����.���-��N�QB�����#��ks���`�I0x�g�����*Ľ�S�����R-��]��������B�M@B�X�lٺky�zmU9����	�	� 5�I��-Q��f/�{��ü����B(��D�P�Ʈ�#^��t�@3@3F�:dŻ���ލo3AT`�
4���a�2�$�/��� �zP~(ӼE{l�y0A2"�ɨU������-�ťUQ��'��dt�"Ad~�P��!�J�W}���a4*��D-�#D懂�2�;����r�z�Y�d��4��׆HR��O�w
"�CA�CU�=5����J^D�rB��~� 2?t?�r��h��hC���1�������sR������M���L�E42���.�
��W�/@���Z���+F�nj2?�~�IO���0��-�c� �h����^�-H(?tr�b	�j*�c_D����h�F���5�̃)F�BR4i٧�����S�~|��"D��IEND�B`�media/css/background.png000064400000000246152177723720011257 0ustar00�PNG


IHDR22?��tEXtSoftwareAdobe ImageReadyq�e<HIDATx���1 ��nj��AN5-p[BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD�'�D���y�IEND�B`�media/css/bigplay.png000064400000005671152177723720010576 0ustar00�PNG


IHDRd�)��sBIT��O��PLTE������������������������ZZZQQQJJJAAA999333)))!!!������|||ssskkkfffZZZQQQ�����晙����������|||�����浵���������������������ž����������������������������������������������������������?�PFtRNS""33DDDDDDUUUUUUUUUUUffffffffwwwwwww�����������������������������E+:	pHYs��~�tEXtSoftwareAdobe Fireworks CS4�ӠtEXtCreation Time11/19/10-s�1	�IDATx��{[��mE��2GA���]����ʊ�Pg��N.o�73I&���c�ji&����M>��p�Ϲ�B��^-7*� B
ĩ�]_'���̨#A�� [�{7[o:�$ٮg_��S�#~�m�43��Jǔ��r<�f0���cJ��K,�U��gy�1���I�[���^0C�/�}$:�u&����T��\4u�j]̷ R�L��r+�z����\�`��4��h����
9�o�	���hPcɿ��5-��9��,�)�q������t������3F�W.I�!9dB��g_P�Mθ�&(}�d0]1�̇B?T��4F>�J��0G��b��@��3s�>r��)�1��(O�BQ��&L���ƴ�Yn�Qn�> 1� �*���('�d2'DB�����J��Z��v��R^D�3e���{v��Nn��l�I�li�9|�i�
Z4*��K�zVҒ�ˬ4�F�fFP�����DVw�� $o\[1���mo�iq{."�s)��F���9�]��u��=I�i	��Bm�tm� �$���s��.���K7�h�X�Ι�����Y�gF�m��{C驍� �4&wQNb2�ʬ/�B��F1k����q�x0�V�"m�!d'ywFs_��B��;چB5c��WT�/&}����E{��&��-���o&}�L�m��2
����Uw�ɚ�&sƳ"�~!{V����j��x��i8�+��7�!:���(���h��BL���Z��H��ݖ�~���C<$i�$��������B��ͮ.��B��v�`��	[0�KZ�����I��J�4�o���zr�t�z^��sy`Ѣs/S�Q���Kk�����$ZV�H�|�+�"v$b�H�=�t���_�>J�j��;|J��F�S8��5q��ā�m��~�VW�,�z�ՁN<�{�ٴ%E����.At+��KsA*
�a���9�����\=�b�+M�� Y�/K�؏Jծ{�j\�7X'�3���CK�.��m�|�d���oF�Y܋�'FQ���u�8c��U�ɶD��)JQS���^�Aa��Ld����s�
c<��rB�(g�C�<�лB-P�N޵�vj!�:�y���l�����R�Ny�Iq�:����_�1����g�V�t�z�.z��0�.��)�kH�˛̓�����g��z �<��ξ��Q�H;���+/�R���������_�%~�i�`��M�
CW��s�y�R-}(�e�n_sOsB��n۞���ant=_�8�zr�B5!���v����f&������(��1u��i�a�\�#T�P�QU t��%f��}q�:��S5�c|���1���Sn�P5��w�r�
ĩ�]_'���̨#A�� [0MW���4�7��0���q>���w��tLi1�*���|s �q�cJ���&U����c)D���Ι!�sb��4�
b�a��e|�u-b'�S�A5�{�hn+�<��&6�4��16�E���&ţ�b,��
p�e1�Y�S$#Z�O#-��!1�U Egp1�$%���#&�*?F�1��/Y�*�(�C��
��9�Jd�+�1�„ ��9ԡ)�1&b�i�(�1�1li�
\NR��`�PEќ���!�R�Y�nM�Be$ϰ��V�GbsH�^�@#v2R_�  �Z@�"m�M#�:e�DA�g�*x���TC�0��68u��ե� o`�`�$����a�!�~���SFgb7�i�X� 2�����VA��� 9H����1�}D79��
,'�@�C ��0x?��@ܡ&�BLcrg�9���H[/(f��1�3��f}�j��;��$�΅��юS�B5c�������#�<m��y(}gh�2�
���2
2��Y��xuCȎ4Ө���@�&F!�4�*-�B�o��3
�= Q ���UQp/7Ds.?1A(���	��
	�b7����%I�MJ��=�g��.��=�%��[����lp�o�z^����t.��=�/�Q�A�hi��H_aG"��sǑ��>��w���V�:rS�P}����[�,���tu��uBg�� �����s�Q�uN3�BϬ��_^��S�E9�=NӢ+��,8o��રY�IM��đ�z�=����(�8��Gq/
���2����WǷehx5l��4�x�n�����[���#���&$PƲ_�lt���9�Q�-��h��-�"���&;x�Z���A��^��d	��}����^ �/�
���8�?;5��F��f�6��zڐ	ڛ�Q:�񂾡,��A5��Nj�H�(�П�&e�M����Z�P>�0�F��9 �F��/��K��ƻ=Ja����
͌7�E%��:���Ž:�1sp	(�8P%C�GmT��9�{����ɏ�6NՄ��1�_���I���JIEND�B`�media/js/mediafield.min.js000064400000010750152177723720011462 0ustar00function jInsertFieldValue(t,e){var i=jQuery.noConflict();if(i("#"+e).val()!=t){var o=i("#"+e);o.val(t),o.trigger("change"),"function"==typeof o.get(0).onchange&&o.get(0).onchange(),jMediaRefreshPreview(e)}}function jMediaRefreshPreview(t){var e=jQuery.noConflict(),i=e("#"+t).val(),o=e("#"+t+"_preview"),n=e("#"+t).data("basepath");o.length&&(i?(o.attr("src",n+i),e("#"+t+"_preview_empty").hide(),e("#"+t+"_preview_img").show()):(o.attr("src",""),e("#"+t+"_preview_empty").show(),e("#"+t+"_preview_img").hide()))}function jMediaRefreshPreviewTip(t){var o=jQuery.noConflict(),n=o(t);n.find("img.media-preview").each((function(t,e){n.find("div.tip").css("max-width","none");var i=o(this).attr("id");jMediaRefreshPreview(i=i.substring(0,i.length-"_preview".length)),n.show(this)}))}function jMediaRefreshImgpathTip(t,e){var i=jQuery.noConflict(),o=i(t);o.css("max-width","none");var n=i(e).val();i("#TipImgpath").html(n),n.length?o.show():o.hide()}!(function(a){"use strict";Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function e(){}function i(){return n.apply(this instanceof e&&t?this:t,o.concat(Array.prototype.slice.call(arguments)))}var o=Array.prototype.slice.call(arguments,1),n=this;return e.prototype=this.prototype,i.prototype=new e,i}),a.fieldMedia=function(t,e){this.options=a.extend({},a.fieldMedia.defaults,e),this.$container=a(t),this.$modal=this.$container.find(this.options.modal),this.$modalBody=this.$modal.children(".modal-body"),this.$input=this.$container.find(this.options.input),this.$containerPreview=this.$container.find(this.options.previewContainer),this.$buttonSelect=this.$container.find(this.options.buttonSelect),this.$buttonClear=this.$container.find(this.options.buttonClear),this.$buttonSelect.on("click",this.modalOpen.bind(this)),this.$buttonClear.on("click",this.clearValue.bind(this)),this.$modal.on("hide",this.removeIframe.bind(this)),this.updatePreview()},a.fieldMedia.prototype.modalOpen=function(){var t=a("<iframe>",{name:"field-media-modal",src:this.options.url.replace("{field-media-id}",this.$input.attr("id")),width:this.options.modalWidth,height:this.options.modalHeight});this.$modalBody.append(t),this.$modal.modal("show"),a("body").addClass("modal-open");var i=this;t.load((function(){var e=a(this).contents();e.on("click",i.options.buttonSaveSelected,(function(){var t=e.find("#f_url").val();t&&i.setValue(t),i.modalClose.call(i)})),e.on("click",".button-cancel",(function(){a("body").removeClass("modal-open"),i.modalClose.bind(i)}))}))},a.fieldMedia.prototype.modalClose=function(){this.$modal.modal("hide"),a("body").removeClass("modal-open"),this.$modalBody.empty()},a.fieldMedia.prototype.removeIframe=function(){this.$modalBody.empty(),a("body").removeClass("modal-open")},a.fieldMedia.prototype.setValue=function(t){this.$input.val(t).trigger("change"),this.updatePreview()},a.fieldMedia.prototype.clearValue=function(){this.setValue("")},a.fieldMedia.prototype.updatePreview=function(){if(this.options.preview)if(this.options.preview&&!this.options.previewAsTooltip){if(t=this.$input.val())(e=new Image).src=this.options.basepath+t,e.width>e.height?this.$containerPreview.html(a("<img>",{src:e.src,style:"width: "+this.options.previewWidth+"px"})):this.$containerPreview.html(a("<img>",{src:e.src,style:"height: "+this.options.previewHeight+"px"}));else this.$containerPreview.append("")}else{try{this.$containerPreview.popover("destroy"),this.$input.tooltip("destroy")}catch(t){}var t,e;if(t=this.$input.val())(e=new Image(this.options.previewWidth,this.options.previewHeight)).src=this.options.basepath+t,this.$containerPreview.popover({content:e}),this.$input.tooltip({placement:"top",title:t,html:!1});else this.$containerPreview.popover()}},a.fieldMedia.defaults={basepath:"",buttonClear:".button-clear",buttonSelect:".button-select",buttonSaveSelected:".button-save-selected",input:".field-media-input",preview:!0,previewAsTooltip:!0,previewContainer:".field-media-preview",previewWidth:200,previewHeight:200,url:"index.php?option=com_media&tmpl=component",modal:".modal",modalWidth:"100%",modalHeight:"300px"},a.fn.fieldMedia=function(t){return this.each((function(){var t=a(this),e=t.data("fieldMedia");if(!e){var i=i||{},o=t.data();for(var n in o)o.hasOwnProperty(n)&&(i[n]=o[n]);e=new a.fieldMedia(this,i),t.data("fieldMedia",e)}}))},a((function(i){function t(t,e){i(e||document).find(".field-media-wrapper").fieldMedia()}t(),i(document).on("subform-row-add",t)}))})(jQuery);

media/js/popup-imagemanager.min.js000064400000006671152177723720013164 0ustar00!(function(s,a){"use strict";window.ImageManager={initialize:function(){var e=this.getUriObject(window.self.location.href),t=this.getQueryObject(e.query),i=Joomla.getOptions("mediamanager");this.author=i.author,this.base=i.base,this.asset=i.asset,this.editor=t.e_name,this.fields={url:a.getElementById("f_url"),alt:a.getElementById("f_alt"),align:a.getElementById("f_align"),title:a.getElementById("f_title"),caption:a.getElementById("f_caption"),c_class:a.getElementById("f_caption_class")},this.folderlist=a.getElementById("folderlist"),this.frame=window.frames.imageframe,this.frameurl=this.frame.location.href,s("#imageframe").on("load",(function(){ImageManager.onloadimageview()})),s("#upbutton").off("click").on("click",(function(){ImageManager.upFolder()}))},onloadimageview:function(){var e,t,i=this.getImageFolder(),a=s("#uploadForm"),r="";this.frameurl=this.frame.location.href,this.setFolder(i),e=this.getUriObject(a.prop("action")),(t=this.getQueryObject(e.query)).folder=i,e.query=s.param(t),void 0!==e.port&&80!=e.port&&(r=":"+e.port),a.prop("action",e.scheme+"://"+e.domain+r+e.path+"?"+e.query)},getImageFolder:function(){return this.getQueryObject(this.frame.location.search.substring(1)).folder},onok:function(){var e="",t=[],i="",a="",r=this.fields.url.value,s=this.fields.alt.value,o=this.fields.align.value,n=this.fields.title.value,l=this.fields.caption.value,c=this.fields.c_class.value;return r&&(t.push('alt="'+s+'"'),o&&!l&&t.push('class="pull-'+o+'"'),n&&t.push('title="'+n+'"'),e='<img src="'+r+'" '+t.join(" ")+"/>",l&&(o&&(i=' class="pull-'+o+'"'),c&&(a=' class="'+c+'"'),e="<figure"+i+">"+e+"<figcaption"+a+">"+l+"</figcaption></figure>")),window.Joomla&&Joomla.editors.instances.hasOwnProperty(this.editor)?Joomla.editors.instances[editor].replaceSelection(e):window.parent.jInsertEditorText(e,this.editor),!0},setFolder:function(e,t,i){for(var a=0,r=this.folderlist.length;a<r;a++)if(e==this.folderlist.options[a].value){this.folderlist.selectedIndex=a,s(this.folderlist).trigger("liszt:updated").trigger("chosen:updated");break}(t||i)&&this.setFrameUrl(e,t,i)},upFolder:function(){var e,t=this.folderlist.value.split("/");t.pop(),e=t.join("/"),this.setFolder(e),this.setFrameUrl(e,this.asset,this.author)},populateFields:function(i){s.each(s("a.img-preview",s("#imageframe").contents()),(function(e,t){t.href=="javascript:ImageManager.populateFields('"+i+"')"?s(t,s("#imageframe").contents()).addClass("selected"):s(t,s("#imageframe").contents()).removeClass("selected")})),s("#f_url").val(this.base+i)},showMessage:function(e){var t=s("#message");t.find(">:first-child").remove(),t.append(e),s("#messages").css("display","block")},refreshFrame:function(){this.frame.location.href=this.frameurl},setFrameUrl:function(e,t,i){var a={option:"com_media",view:"imagesList",tmpl:"component",asset:t,author:i,folder:e};this.frameurl="index.php?"+s.param(a),this.frame.location.href=this.frameurl},getQueryObject:function(e){var a={};return s.each((e||"").split(/[&;]/),(function(e,t){var i=t.split("=");a[decodeURIComponent(i[0])]=2==i.length?decodeURIComponent(i[1]):null})),a},getUriObject:function(e){var i={},a=e.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/);return s.each(["uri","scheme","authority","domain","port","path","directory","file","query","fragment"],(function(e,t){i[t]=a&&a[e]?a[e]:""})),i}},s((function(){window.ImageManager.initialize()}))})(jQuery,document);

media/js/flashmediaelement.swf000064400000376145152177723720012464 0ustar00CWSS�x�|wX�G���]�ҋ�7E�wP�.  �RTX�.�eAL���EE�bנ�A�wE#���F��X5jV���wf�5�<�{}�z��9��3g��ݭD���A��pCK���Ƨ0B��y���Le���,��
���@7��cǺ��r-Q�y��{�yz���Kٸb��ҥ���au.+�Q�*K��P�]R�rp�x���rZZ��S��9n2��HV�,s�p�G�9�y%�"�r���T^�#%��*]�
JrF��V�\��Ҳ��n�
Ie�R.�[�-c"�Jƛ	y��Z�&�8�}�>����v�))r+U���@Ly�f�0qQZ�-/,+�)��..[L��k�M�B&U�|lѩ#�riq~�4_6 "���z�1J�P��|��ߙ�t��e� �n�u?hm�:p��[�qIIJJ���
��?�.����8�.�j�Vg�t�K�1qNI:N�[(�`�1��?�2nP����gbL3��>�m���;�W����O�8h2�
QJ�(�G�A�M����7�w���/����Ŀ�͟�uHk��H;Z�]{���Vg��S�n�A���Ho��n}�A����
�0xi`(�w7t3�e�o�d�d\me2������+L�1�6�2�6�¬ьk>�|��5sK��io-m�B�~���� Fo�VuX�ޕ�Mϯ8�o���u[���Щ3��u+�W��7��qEf#��(p�&���
W*��Φ�l�V�۩̨s��]��J�ϕQ��qEä��MO�� �tݞq�]�JGo�8�|�;����#'���lV����Y��=nƸ
S~�x2*�I�y?��i�nQV�V��LH�V���RF߆��deY��nFE߲e����5
�';*�:�\tK��΄�ЅߊΆ�v����Ō�������#�ˉ��;�\~��1'%'��_�}�����vO��׫�ƶ��,�-G���|j�����M����������	i��u�7���}^�6}��N������~YP�zԣ͕v�_����MRm𮹷��N��i��_
�r��&N��k;B2w�6dU��mY��sc��.�]D<�<������.Ol\�
�]���'��Xj쟾W>�ߦ]1;Q�����"��P�R�J{�t��t��&돌t�F�ʱi��e���$�bA�
'nA�X�g���P�GwU�ܗɳg�T89iEIM��M�Zh�4�ڦ�btBh�a�}0ʺ��YӴ�:�G݋A��`��d�+�軓*�r��c����f�ҧ%�-虬�Y�J��E>�e��G���뜿��iD	G6�Zm��;�� }��M�a瑠�u7��sr]���=H��<ô���-�v ��m�I)_T�Ƕ�+� ��?|F���N���;z
�:$��ޱ+��쬝N��=���|r=��t�<�Ѕ|�8���gk'���L�P�7�2�E����xQ���h���I�׶����/g�v��.�Ɖ��n}d�����*�OvuTn�=|�����
�<M�p[��	1�u��q�����$��<��4V�ԕyk�����	�_U��:'W�=l1q9��Â�˜�U��:���d�ZE�x�7g9O��4�Up��}��/��[ֶ�A.M��/�~�:ڟo�D�����ݪ����%d�J�\�#��3�Mps��&2�Gج��ꁤ�ӿ�A��!m�k��2�s���>�_F�VL}��c_���w��ﵢ)-Z~"K��	�~l��i�)���ē(��$_���B@�]/�����ŗ�0>��:W�֤ ~dɽ~��g�H��>�
�\�4��ny�=g娦�kO9���ۮ�wgY����J�ZcC�������������\�]c���S?}�ʧ�b��Xk���;�/���-z�7.�,���q}���˹s�kF=���
D�?2(z�"�_V9����֍�gD'���Tz~�X��C��I�g��<�>�Q���؉[3\{�Hr'��w�w=���'�h��x��Ch��׮?���V9���3=�.�Ͽc�;Q2iX�q���g�w���� �P�n�
}��1}2�!�k��%�k6����GV�� ��]H��6���_���vu���Ԋn�\ktpuTL�%$����b���<�pOQ+�~&�hԺ
ۛa���C�c��o>�Ѝ:��=tl���KK�-u�wP~��{�b.����m�\��]s7jN�;�P�
�~�2�^���~ɘ��X�;�w���s]p�`��N�Ҭ"o9yϜ�ty��mp���ugOy”ބ��9���N���ŵ)in��;�7�7��ֽ@�3���˾
F�$*�k�j�kc���w���HJk�.�D��7>��w�XV�O3�p��J��U���f�|_�9
�B~�5��l	F}�ԡ-�~>#�:�g]%rl
�L֭^97pY"�X?q]����8��"q���Q�gfl,EN?d��󛇊�Θ�^7��Z�D���t}��dB�
?x|̾��K��W&*A�j��_85d���*�������r�\���������A�a�PZ��,s���d�n{��?'�TT/�����C�o_4X�������?_Qju�W�c9�yWY�
�g��TA��s/\�7��\J��ə���\GNCaY�un��	����V|Ԗ�6Mr��Ye)e3���ʺ�����.P���aC���+V�Z��dC��S��hB&+c�CbUhb�
?^cT�O��9����9'�u��\��Q����MҠ\m;��:�ޮf����z��,�B}7_o�;c�o���1Z�v����P�aӝ�0�Yh�A����RaR������ɿ]��1���a�����Y���M�ޢ�O�-
F�Z�[���i�Nn_ț�8k"^J����O&�i�fL���D�ݰf�dQ^��jӾ�����@���DD�F8s�q�K~����+�Vj�)���h�
�q��=�<��;p�Ⱦ�C��c��z濤xF��?<�>�0���Q�A�nD۳9bخEm�-L�p����vO!�1����֧�.1LyR�F�	��o�^�{�[�MH�F�ۨ�Ѷ��'��#�<Nyb^��Y~�Y_Ԛ޸�8���y�I<rk��B�@��e����x����������b7�q�:�Y�SU� �a���Ê���VlDF��Q�i*���Ks�up>��27y��c�ket�p����t� �>	�*R*)����pJ�K���p	��%�<��Z5Hx	*[�����&{�Ɔ�mG%e��Y0���[f��d���y�1l#�\'�y�4��Ȱ���5J�V����#��lB:�S�N����>�҂�#ɖV4�(?1����y{v�s2�LC��~������(��ɫ�y����5����0���<핒鄄O����O^C���;5(f��3��:!~��]i�9�ž�Sq�N4͚d�8�U�Y�����A��(��F�.=�\ə�T��1��
J�$H�����ҔĂ��{5����
�~�4+�z7�@��q����mߕw�#^�MuNQ�f��9z��l�gÅ��:��i��Y��Cg]�
��<�Z�p����ԴU�j��y[��n¯���<nZ":���Mz��Z�}�q�m���`y�?����$��8��� ����Z�fYt��-y�w�Z<?w�3r�a:���˓��J�����`�ݑ�)_�M��v1�蓘Ͼ�)/~U��GH�ކ8*��͠�����cmMx6݌�ʝ�{-�����V�����Y?��9l�������=�}Qv�__�v#.�NEF7�$/�x��ܔ�#�Q�`Y�l)����R��a��*<8��x��(P��8~O��?��uK�\�F�%M����
?�.]t~uo?(�֤!�}$��Y�)��۶�^�~��;8�DxZv�ԩmJƠ俢�!�+��ՙ}!��/�Um�e��\>��
Q��Øb3��ɥFz�Bm�e�S�"�H�䇅0[˃Q��]""o�9�<œ�N�������A��`՟���:����'.��p9B_�3�v���C���,4|
ǰvd��	�:%%���V1&(�]~�����!���z��6�9F"�;zTR޺A�[�KG���o��	�6��b�f��>r�	q�4{�;����~k��U�"���2X7����.SnV���+U�0�\�Å������y�!T�?��l�&�ǮAۨ����B�ׂ�%s+"�e楗����+흒��17<f�q+*�N^ͭ�v*��
q��#b�#��L�ζ�ܼ]������7L�����%�n��f���8Mg���e�ts͎�ĥ	
>[͚�����r�bbcbUո�>uN	�T����~;�O��t#[~u���ʑ���k����_z�Z{�^��KŇ���T1z����_��]z1�D���ǣ���]C����=�	y�ff��ٟ�?����z��o� �ps���H�����.f=䋻�U�U��>�1vy�y"��p�k��2V�\�G�tn&9%ޮj�d���o����#6�o$%�5����������M��Vq���⎰Rnvy����e��Ocu�/�;8��/ʆ#�Rmd�S��<㼘?{�vO�4r���^��'�Zqrlp=�o葀�_�!�.��;��i��i�p����7�*5��0: 1(C�t{���'7�\m�ⴔ!n�ը���Y�z6#~���ꪓ'VO�E�m�5iZ�8swu�(�lkʵ���YIɠ�5�x�5$z�F��T�j�S�`y���l7���5��n�BM'�U�պ
^�I�qT�'���4�g�g{�֩����O��9�D�o�"�B�:���4����ݚ���M�W��6��9����ζ'o�0���&ǽK./B�
��K{Gө�������W
�$)�@d�:���–��2�:2ݵʹvlCCL�P�y�������;M�S�M�G�W� �5?%����Fg���:�/��}�M�rJjE~�x�J�y���	i���7�t7�
�y�I��X�Q�R�����6��rg��5�!V�~H�^��go8���5��-Ȣq[RU�s��+�#N`e���VU,��¾~�����b�TUW=�9ũP�j��,�8"�/��r��ﰣ�����Ջ�|]��Y���KhHL0?�1eշ��ϝZZNް�����s����t�i�c�����A{�ĵx�	T�t�����ڢ?�2�Q��/�|�yc���M��]s�<�֭Jp1��ykCbK�7��K��fN
�{��>����a9�8�
�NL�K��o�e����*�uv�I}�/��$S��'���+6�
8��Bx!�DI)J7�ub����]�*l
�5HR�0kƬ}��Ãa(t�Jܼ���B�E��V���=�2{��́�	��Z�K�(Y�{��SyH��VS�d$ه<O4kh}�*�!6:;*q�o����?�_D[�{ٮ:N�j����M�*�q�����Cgw�\Gxm�f�4׽L��� �O���R�?Tu�kE����_�ʅkV������nSR���魒;��tH�vy�Þ�_o���I��*�3&7�7�Ϗ=�Zg����
���ɴ��M[`���-ϼ^���6�f�ݿ���?��^�ko�?ĵ��}��*I�=0kA���w�)2�_���G����@1�[��NFvc��J�-��-�Z�t}���O���9�̗4"���1��<m�֛�G���7,�v;�d_0*��P�U�at}G8Sb���
���	����Hz����-"��U2���^��o�څD��(q�U�E����乶}���0<U%���t�Zي�;[�F�b����qr���Q����_�3�����#�.�0̃g%����%�Eʹ��+��VØ%eo��<����j�����Y�W�
=|��¨����u��@��Y�f�~�ґȤ��͉N{�"�w9�>�[���_a��*�r��O�+��iHvl���u~�U�e��O��\u�Qm����k�VD5U�����Rw˶�9������Ս��8�wռh늼ߋM���Z��?s�V}ur�סO�Ο�VnX�hD&o������KV�7n�ɞpB�©~b6
r�
�Fo�&xM�lO��
˚���U��;z6���}��<���~��!�Ǣ�	`}sK��u4#G|;��(��+kr�x�D���\�����K����l}E�{�~}��_�7���|������B��o���y��RED��"Ŵ�}�E��g��3���`P�o#V��3�dJ:s��b�Su��Q�KV��
ۜlo,���0��O�w�~��`Rj�#v�`͹��̱��-�\��upK'f��i�s�k�p�Wѥ�C,�la��{uζ�U�&W�Y���U��_xn�&-=�:w"�&�a���!�A�Aw�#��C7�?��M�5�Q �\3|VO��2ü�߈�zY��-X0��kS��׏�{�Ζw���_yG^���������f����`?�T�[�ʄ�c�dž��,�x����iU2�u��1@"]t{%��T!\c]<�=��G�<Mn��/Z��UH�4���7��L��'g7"��\�y���'��fN���F��5�>a�:-V�>�9���eN�nV -}��?dP�ٙ9w"-�c`�7_�C�Ir��1E���l��/�/��(B�Zީg���i��K���Ost?�G)�c�j�_������z-s����$�ס��ynлIU#��\�ƂH�9�yp���!�+�>�ƺ�oFϬ�}ya��_�b����2�����{��;��}�mp��ݒc]Ȧ�	r�nEu9����8_Ñ[��ߧd��q��;��K�

�~dc������U�/�=��h�--�]cC葉�<nt@w�}�����Kn�O9�$���C�DMZ5�ٱ�P����`����=}�P��6)ŀ��䪠���O��~'���ɻ��.	�?�;>Z�r�Ġ�w�~�7�����/��b�|5rR^G!��R�G�Ff雐  �1����Թg���go��S��l
[�U��U��L?����Ȗ/����^R��I'?~:>�e�;p�ik��w�ĉ�q�/N��e���Hu�q�kK߀����H�<=��~o��ݯ�<����,��*eР����
��4h��V��nuz������SG6����nd��=�z#�9"'����"7�<�'�B���"?�P �� 4
D�(
B#P:�@#Q&�B9H��� *C��K4}�&�:t��+ǘ1a,KƊ�f�3=��al�ތ;�2�[�%��"q�Y�Y���	ζ��}"
��l{�r
4��"i$���~�+�?��w�5��DhV�k�s��3���!��ʻ����b=�[MpF	G
�Ry��̱F	(�}B	������Y�c���΂&�_h�8�^ϧ���J���(6S�d��H�u��	���I���"p��aT��r���X*���<�3r~���z*7P��sF��1��^R�Z<��z�E��T��H�5T/�18�u
�T@R/��������I�u��9d�+���T�$��8*���h]i�Dn��g\�+�� 2��x�$�}(Մ�h	�P���+	�I �g* �9ʭ��R����w���
}$EX���)TN�~;L�>$�����ѤP
�D�BmR!o,J��T�w����H��F.M*ȤD"K`F[<���&��A����^2h�<�G��}
*9�G���*@r��\%4W	��J��04d	�$/�T@I�dʨ\NS	��jB�-o!���TK-�Ryȱh�K�!r*`�;.�-{eL�p�;�5��/���J���- �iAo�ը���M�zM���$�	�ï��d,M�^��%�L��"�����[íךX�U�&h��L��Km�rů�q�r_,���ŕ�b(�`�5��o��̠�4�|�w>�;��ύ�X�%�z�
�)N�.��j���s�<��@�ۥT����X���"��Ҳ�Ҳ�Ҳ�Ҳ��}=����r��e}G�"�|�YH�"�z@R�i�Ƞz�L�փϹ�&�^Je5��H��m����d:��_ͧ���R�;*�����k�
�Iy	 ��kh$D�LS��k��o�I�Dn�ȠfC3�8�k*�N�ʡvD���P\�t,�㾁Z��������e��P}`k���o[�w�x�j��!W5wxn��Lq�d�Ӎ0>(6S��n�꾬�n��}������X�i�)Ԉ�;IĦ�İ�ư��@��L�n���R��}����ʭ���
<4�zm�x�PM �
|$ވ\���,��\{(�H꾃�K��TswB����Dn��p2��.Z�.ni����졚j�n�a`
�#�(6S�H�mmO��T�8�c������G)���F��j�^�^!���f*wm1�� �z������[@&��Խ�����~�׃LV�i$�E�����M ɻ���~�n�Q�jn+��>hvֿk�P<J��6�g(����ˆ�d�#�g�Ǩ��{��y��y��I4��'qy ��ش�8Qo��7�Ǩf5�0��0hv�L�$��G)���F��z�.�P��(��(��(��hAO�!�@�i������<F5S��h��y��m��o�S<J��6�g(�s�C�/����d��%Mȭ��d^<Hz�$�<w`)�q'�q�{��L���St��ڵ�ڵ��M#��֎�;@&�#6-�����1����৅ ̗34�34�34Ѵ��Dx�FH���o{0^����!O���0L{k��U�a�lCe[���vTcO5�]�^�3�5r��;��"3T���- �`�+xcOeg�w��+�7F<3�Ճ"(~g�F΀io]�t�zw�y�jH��DnzS�fToE��*�R���^��ƅ��׍׆���+_�S�E�jl�������):�C�D�
X�Ƙg�c����
Eg@y@C@�;#@y(ˌ�ͩފ"C56m�$C�{Q�M��]��ļ�m��7�oC��@^3����)ZQd(�L{��
mKl�<[:*l!���^���9 �S��$u��ȝ�>w�r����7
Wv`i�Ff�m�P�Ίjz�m�O;�/�كlHjAd@�s��ۍ�����d��Eѐ�r����
C��DN4.���kD�h�@6��	`�[s@�k@�T�$��3`�KW���!�	�����0�ыy.����
�vT�0��hyn�F�d�4������R��h��	�����ܡ�I$D��������-`��ހmؑj<�O@�;/@�@�6J5a#(v�y�O;@o��{��T�G�@�6ܟ�aTN���<O����Չl����
ތy�t=��ȭ/a�BB���o�l@O@-�}�;�(��t���
�N�q�)�|�h��u�d5bǿ�$Q�T@�;O�^���	T�P*�Q��I1�b���|�5�ɚ�@ⓠ�C�O_X]èO�&<?��V�v��$�Od/�>T�G�@@5�O��)FP��Gј�O�Ÿ��?��/��RM hy��c���=�lH,�A���zt�z���L��w�`�[?@�n� �T�6��a�)�Q��h��OK�O��O����P�+E@��2�b<Ec^�$������K�Қ� ��t��^4Փ� �qb�F�(�P��0�7T��M1P�lyi�i���x��	�3��xB�}M
�c��=i� ��h�8!r����<���B��Sٓ����'6��)F��������x�b^�
�O"���QmF5��:C���u/@�G�6�HF,�xR�_@5�r ��S@5�C�&���T��!� i�~�(FP4�E��E[@��D@k{�����(~L1�b<E;^$X���5 Y�	�zwxP�' Ys��/ ����g��C��©A1p٫x*��-/�FM#�?�<�ހ���m؏�Ƽ�t�{c^,�cA�����`��A�qP�7�R�F�Ƽx�7��O�;�yC 6��C�Ǝj\IϞT��L1�b8�8�\�	CO��p�s #~WCex�LކY2�m�%3�u�x�|���%z!ϒi})\�JX�ډ��To�X�����rȗJ�5�8?��Z(�s�p�<�*H#���w�:Sc t��cS?�̺�u�ؙ���0���ˎ�R4�˹�/�by5�H�\6�ϕ��+5c���\޻�\(�.��v܏�[�U��^���uE�U��[��?QWk���]��;���@��#� tIo�g����R{
$�nW���L��]��:c��Kbc)��!i��g��}=��K��8� �KSג�|y0�WR\�W*c�J�%
�}8W&D.g��eL��L���庢g.��7����AQ5�{�n:����]��
���~�isZ���DOW���S�M�D�������y�c�!&�Шn����� ;m>*E�*��Z1�%_kS�6��ǧF��Dw#�Nh)Z�d��F|����!�(S�t�0�����φp��O/3�8���!�,0u��nϳK��Ny�Ll�ν�Ń�G����7�@�@�!P�����5��[��#��'Me�Ç;}�k{�G�L��Uu$���G+��¾�J��6���-�ݴ�L1�}e�A�[�*���,�
�*�j��6>5n̓[E3��-���衡i�u��<�`�uhS;�␚qz9���T����{7� �ޠ���~���q=���-�Μ����+�W������Զ�lL������Nݣn��D�u[�*Uio�>Ȭ�7�����PK1�)���d\]�݊_���'�C��y]Hm̍��[y<}�U�I��f�P�oj��)��Uk�o���i��Yݬ���yϜ�>'J�o4�n���lى_�rdf\j�5��h���^A�&�.�߷f]���W\�S{�3�ȒE��������QP�
��p�l8:�}�
��P�B����Qj�Z���s ��X�G^g�������&.E���]�ϱE��h�c����52_�se����w>�|{��Q?�Vѱ��gb�4�����s�lB=�M�
�R?I߯mjSR5�1�␃mۯ��Am�2/%�̚�zhǁ	L-
��Q�RF*/�/�U�%�v@���b%�'͑��Ė)+�<�m��y�"��.���e�2�R�H*���ٺ����h���>z�pwtw��F|�7KK�a������
>��B������	s~��-i�e�Y��o�t�COC���X���D�'�o/�r����ÿw�>�柇t&u��B����_���Րj��"��H�{��H|�X��_6�;����$V4�;��ѭ���P߅Z�9�i֣�%2���H���T҆x'̅[��)Q���L��]�,F�zcX.9(�^Q"/����,�A�zsa�3��K���o�zk!2�e�J��q�٠[��[���{�$��m/*W�r��%Z��`.�@w��~r�n{yqW�
�ކ0�:|�f��vGU^�\_�Ɋ�!RS�֛��T���D��X��$����r�
h��ZB�9� �85�
Ow���4g4	���i�,��탴q4[�T��i�v��mت�
FS�@�B��|��=���:�f���ִ49Gt������tY49��~�ՠ�y��<C��oyh�`�v���oB���FG�M�$d~�OM�\���B�%�ɿ{�np+���(�w^X��v��*��݊ȗ�5_�w+S���+��}��UZ�-S*��%IJ�c��Y�{��h����!I^n���n��rea�-�5���.�$� ���ahPBV.�)E���U*5�e�ʔ�"sV�qWRQ(���|�O�:+e�+5�;${�,G�AZX,S��(�Lti���B�v�8�#'�l[��R�.U�w��e������eN�z6G�پG俿��E���EZlcbe�.�@{D�2��$Y�I&mJ͗�;��e�r�,_*Z.S@K���顈.�+�)JJ�"9�.����HMQ��6�Vf�,�<�Gv^v�<WHc)��s����J�\Y��\�|���_�)�eJ�M���\e,A����
G��2a�(�C�h�-Q�*��Z� ��pEIiR����0�d
ͨʣe
7�..T~udh3����x$AEaYa�\�-��
+(��� �LX^�C��B��rmi����F�RQ.fv>

�*
se%�<��L��YX�B�JX���ɴ���d0�D�T�:aY�o�#ΔK!��Ni���D^^$#�^&��nP�fR}
�J2�7��h�L͓v�zn�)����+K*(K�5Y�u;���2��Χ$�H�VQv�C��Q�1�����t��v����g�_ki����l���N�G��v��R+1���*���+,$,�ߐ5��+4�5(-���ؔI����4M�@�0)X��f����R({f�	]�IDK�{��`a��Bh_�P� #@�ϤXX/�A�|Y9
iK�$d�FDJ��d�OS�r�rY\I�L;~HfRXHl���Seׇ,�eǓa������40ݵȫܿO�@W'ǁ�P�L�V`���a�(��u�L�i̧cN+�ztĉ3��2�Q�(��3&f9��#�B�C��5[�?��\���B��uh�B�<ԝ�H��\i�|\Q	���K&Z��*��$�
�P9�ꃟ;����T./^Rk�Q8qG�hJե�w>�ɔ�0�`�ϑ�ÿz�S�cڽ�!幅%Ozd����2ҡ���.?NVV�Z��Q�d��y�f�2:]�)���;��/�>�Hˆ�-N��J�P��Q	KU�TNwr�v�V@C�U �1�$U?����X�\�.c�OL]K�V�hw��b8f�S&)r�_����ǚ���Vɒ��F�	AS0q��hN��(�	*$����!+'tj6,B2���=oRQX�&��!���'8!<��6Hq��BdױP���4	���ߧ��+�%�&d���IF+��܈,�̨2&���q�� [3�����@Ǔ3�8����
�O���c�K�1���@��1�P�.K|��*��H˔�Ѓjn #(bG���3T���GڌG��O�Z�I��#�2��FI�s��A#���B8�!EW�y���F�
֥cN>9�e��9��њ��D&���ҔoF
����A����.�*�b�G��Ϻ��p��!-���J�n����s��'�BV��Ρe�O������X?�}C�����TXT*���k��ޖՐ0�`��qJ��t�gp	v�u:�3��"a��re	��+�32}>	��q༊��\,���Gk��;l	�R�������;b�Yz�/�s��Xt�Eem���u������'��NG\�`*�MH�50��J"��V��v�A������J��I�I]�1�v��M7�=��I*z���蓋i���$?_.�Lj2�I��d��;a��Rv'�U�~x�fv>�i����B�uev�z]�:�O gPQܐ䤈̸!)d���F
A�D��I��D6�����4$Y�vʐr����I�0*"1��`㋕�O�~�"e�j�^!�͕O@����ѶL�=�h;�%�qE!L~�G�GK�Cb��!��q���,��f��`ke;��e����<�?�6����̯����K,"�JV�K�Tw�/acYFo�:e��ݧ��f�spv��T-�88ZZ�=�?�\F���s���@aYy6���'�>0=��=�˔����\i?w���@��b>�I��NˆAϔEv
|}x�+�O8�w�?Vc���.��.�Wd��� _�#[��27C�YU���9&��e�a�H����t���v�4��i�_Xa
�dЍ�e�2��`��/�t͏�ɆT�?W���9c�#-N�x%%���/[XT�����ɩ�9�i]xŰO|����ŮY���>�&k`�V|yQ6���s��*�ٗH���u����5�leI2�E�����CB$���
%3
/I����A����0��)��:/wfJ�+,r�$*D¤��q���S��?������
�3M��A?
��FWl�d����ޑ+th���GsB0���H��t�!�K8$�8��e��h�dB�	}�]i�7@���"��m�TR]E��TӼ�Y)�c{�	�
��_^��0v�,s�4��I��8��$ƅ�������+Y�����]7����V���@��_���ˊ�1�H��b;�2�iޏ
�i߷�tf}fx_�0z���E�I��}��~���H��Ze5'�n��u��LZ���3;=I��Knp�	d>}��&}�u������J�с������Ra�/���W�O��ϕ�y���3��"�,a]f�KV�6�G�U���u�k��af1,2����чv҆�o�����h^���d��J�f"a��ܚ���G���zZ��]͌;72�+���c��
xּ��T�j��o�}Ya�[a*�u: J
d]8�5�6	�]X\F�y�m&�^�93�e�0:�wWp��/K���2�����]H'���P)E*/����Z!		���ɔRXn�p�ȑAo��hui��P��)c�œ�	���@XRȈ�.�����8}8����L��?^���
��4���+A�G��5�{�,W@����39*���8d�F�t:�^h��#9��ȇx�>�W�%v�d��9��,�k��B�@`�e�d�MG��@/N
o��#��k�(�;�/��'���/�ӷ��"�.$��V����ܠO/Gp�*.#�̇��*�!��v�P!���CE�*+feQ6t6+�+_y?
��� ��+��ٳ���ﺻ�����{�_.,2���/�T��KvxM������������
�{p������>�w/=��Ǿ��x��σ����m�ᥛ,7A^G
���x{��Gl=��� y����ǝ��E$/?o�X��_����S�WG��s�w�b؆a�Ē�'�g�3�m@��9�$E�{CY��^<�O�|�y�w"���
��|@��Ń���/��;�����To��^||< ��ӏ[X��y�yzO~P���<�{�['�p}�.++��<<|��Ze}I��O���*����fr�
��������{��/_w@__�C-A���>>`���t���&2�П��� ��Q���������K?���/A�q@o����=��|���C�����D���PC@o�{y@k�<��^��>�>��`H���,�O�.f����g����鍛�i@��әL'�1��Ӹu�hρ�����yyx{q�<|����e�1�ḧ̴́f"33]3=l�����V�VFV�f�fc�c���L��-��s�<��@[(����7�|N�9���f�sj��)-1W�!�&B3@K����pwa,쉅�`�-$�	�����X者}�����/:c��b��c�zb�G胅~X菅���BK,쏅�0ñ0aa4�`a�¡X���)X8ӱp$J�0eX����XX���X8
Gc��ca	�r�
,,�B%�ca$V`�X,��_r���+,����`,�4s�S���<
h:�x�>h�"�.�h�뀯Z���h
�@�@+��55�Z�h#�f
�h�"�n,l�{��A�@��Z�:t��Q�c@ǁN@~�I�SX�#<��:����I�`��^�2����,�߀n���.�=��@����	�S��^�z��HŁ��4	h2���@Ӏ����h	g�
T
4(�[T���a7q��@^�h#�&��@[����`�l�p7<���-��y-T�ȇ���aȧ�������e�_��c�< ���79�� ���*���{@���{����w��Çn�'rI��S�|a�3����w@u\��2�]��q�A�	h3�l���m\�nx��t���
�|G�£�;t��K+�@�����
p(�ql/���h��$��A����,`�W�z&W���>�����v���i���}����PN����Z	t�w��@o�:�����������0N�wO�gqU�&��@[�f�~&�l�*h�y`;2���<
h�
h��o��	�L�`� �!�@�A����u���Q�z�5@��jZ���h�F�q
�_?��z�ym�`O��h�nLD�+��+��,T���6�A��%���l�Q]�]��sHj-��¼��ڃ����xG�L���5�a�C#�������]�.�F:��qTG��=�g:�E=��tI�E|U#¿	"��=���Ӏ��ǜ��<O�*�F���k�y^R|���
GUO*��>��*���8:�'q;c��UM�r��4��U��qYy��f��p5<�咀ç7��xk��r�qI�m'"��?pU;�=�i��|���F�\���Υ�,�α�'��g��]d�%��²+,��eWYv�e���:�n��&�n��6���w��eٟ,{ȲG,��ej�=f���Ͳ�,{ƲX��e/X��e�X��eoX��e,{�2���7,�Ȳ�,�²�,�Ʋ�,�b�,�U�l�jX6�e߲l�泬�eX��e�X��eKX��e�X��e+X���X��e�X��e�,k`��}ϲF��eY˚Y��e�Y��eY��e�Y��e[Y��e�y{x������C�V���r`�O'�����0�	||�3�UpgS�H�y՚$�j`2i��4��$i���S��jlt�$ƺi�z��a����N����vJ��`��2Z� B&+AX��j`�c�����߳
�F���VkAj�n��z�F�^#�ؠzn��&�`���Hv[5��6MR����M��N��g�Fp�
D괇�}[X��>p���Apm�h��@*�~�
ж�:%�Ý��N�b����1`�{�6�;L��O�S�tp`0]��40=�0}�#0<��<��f�C~f�C�3�a���🁙ላ��q�%`x�/�,q�e`V8�
�n8�W`�x�U`�q�5`=p�o�z��<�0�p�-z�N�
�'��K~�'����������s�����@���bh@���y�􌑮0�"n�� ��)�#=�[�/�C�\���F|���g��G�g#1���q�MC�3'�ˡ��(=G��1�j^���N����0��q�^�Z1Z�@��H��	8�-B�;H]$��<Q�N����Zў�o�ҕ�hc���r�s�bu�zK
�c�3�b�P����=Ϙh�&�q �`���2����̥�/;,�V����[�M����	����_���ٻr�?��!H�Ҟ�q|Ht��2�o�!Jm�q�-<D�bG�d�`�<��<{c�vAF�NMd/<EUv�L)譞�1
Ҙ§�5��S��b��*
�S5��]Ơ!�!&ZĔd��>�i�la�l&�͑�{Q�#�\G�^�py��z��:�@�qD}�34�QcRSg�4�θ���
����4��5�zQCxf�#vJ��z��*���A�q�n�Y�Jg�4`��������O�����+
<��c�'~A��7yJ��z��4�S�t��M)�R�hL�b
�.�S
��s5��D���Q�Vc���_�t�͚R૞�1��4]�00���5������C�W/�y�gA�SY*���*�����E���s	�h�s��FB�.��0�`���dNf���W�>��
�T���`:�VҔv*o��z�E�ȹ8����Y����=#�8��Bi�y.1���0��',#4/tZ^xA�z'8��Zvu=��`7}�̋�֞�W:H��N�Z�^<2�XM���F���h"�h�4J�����n�X��c�h�^����>FK@j��sedTm#4�!Lh���_hTF�P�CP��w0��a����Oˋ��oa�QS�8��U��xq(�$-����k�U�΂���S8cH��82ֺ��Џ�J�8Æ14o(�YZ&y�
���*�B�<&~�=�/&Q���:M�Kd��"xxߗ���H_�B���eZ����_y���)ͯh|#�As�}��- ��Z�G�Ť���푩�Q�nw�Ik�y��,\G�jY���B"�,y���{��G�쨬�>h`��s��	X�ti�&|^�.�C�������h��(�kq�0ܕ���y��Ft)��r)�Lg���iz:�O$���r<�
�)�ۙc�Q��0x�̀���c�X�/?�_�����o�yFB�t���&�U�����%7��YX��&!�
d'�" A�&�Kr��&I���^q�wZ�Z�{�����57Q������օqi��V�~��s�M"j��>9�̙}yf�g��NgP���0Laڥ���+?N-�/�,�_*7!��aDw���
qD�cj)�@Z|]��Biq,���E��NX���iq,��K��]�� ,.�w�b���\Z��ׄŕ��X�&,����b���FZ��faq���[��w��,d�~�߼�]u ��$�dz.�!�ſ�1AR7���2P��<Y);XVY�����У�[����"�d��oU�3�,鳟|�p���TP`hy�t$u;̋�{�tw�T��Naק�����na����O��'�߯Rh�a����޼�������
�ط��#��L�L�Y��1ig6��F�a���?P������v:�w���և� �P4M�w3p���Ik��U����� �K�|c��3�|v��
����|�j���	��^_�^/f���z	���%��%��g�U�j��j�����%,�ak���T�w�a�*S�R�ӿ��PӨU�W��A�����t���û��U��V�~�*�o0v�_Pȟ�Bb,���0��]��O���i�+YI�N���L�
�YT�=���y2�Ռ����Wd	�>��a|�qxc�õ�'�?�r�䃎����c|�qxk�C����]NJ#�?�����7������
}w�5��U��ص��N�o˸*����!��U�kœ���J{�	�ި�72�ǁ�r���?"�N�����'���9�?;�|8*�[�K�H��I@s|�}��[��jI߆�=aY��v�},����?GX�a�}�_���'{����Ч#��c�C���Q:	}��� 돀��.lA���O`�Nf����e��g�����-i̿S�+mK���S�V6a�N�N4��#����~(�{����@��90�Kh��k�.ӆ�?G��g��g6��Ӄ2̹¾�!��\T|�H�B
�<rQ��J�s�Ep��;�_�MTC�x�4�j��e�+U���+�
&����0_�
4?LI^�a��T��
z؍5=�����&-�^�E�1���V�q�>�)��y�Ӏ���Ճ�$�{5��e��M�iK�Md�降��gw��v��n2&B�E��u��i�D�@Q�Tv�������I]�"y~�L�f1yڧ�nQ���[I��W��J�Vb�S��*r��@H5 /{P; {H��A��CZ�����,t�
^�� Dg�B�M�6c#�9�C]��?`L�H~����J �h�ǻ��x�����Ɓ�hW�*���Ǚ�8�����t����|=��'F���<�#� �l}Z+@��“lH�W�@�0�jAe��h��~��Ǡ4�|�*ʫ"�' ��Y>��C���]��5,�e�U���o��6��FD��4?GI�N�gP�t"�7�ѿ��?��!�7S�ى�-
C���~�_��uD2��;��O�=�g���C:3�<$j�=��W�6��i=�2:xL��k	�GH�Zf��G,Ϗ��W|�����K8�,�ݓ,@˂�D�	�bШ��8<�!�eC�M|c�wF�=4�.��`36�#��_T�L6��4Ya�j��#Fጞ�‘��uD����ݡ�st~�N)��C��y‘�B����.wQ]^���b]Tݥx=����R�K��r����_d
�D��@���dN;H�`�!~�>�u�U�Ȣ���Xq
e%�z����Y�N�!�ͯ�J���7�~�O�&}�XXܬ�[a�oA��A>�쟳�����>8�)�Ć8�7:̏�MI��T��.��i��<<|`x&~+�'@�e)��Gd�Ǫ�G�{��x��}ȿ�o�I���$O�S�!쩭�rL��=Nj�#BI�/��~��OU�^?S�u����hU��.F�_��J��������@�?��	 �'��y�)�_��i�I
[U��z{��j34J�S�L�2z�~Z��	���aE���>+�v,��x�����H8����<�~�	�A��r����(�0�	Z��U�7��G��(�N���C����Ч~��ADV��I�U����]��
��٥��d�����X"�\���A��%a��k�_�B���z3�#�!����3Db ��5����qI�p��:�$�钠��j,e�DY���@6Qo(�gD]�k5m���1��N��C9�(�b<50��x�͠�7�
9T���z��Q~��>����5l�a
N�},�
�ꓤe�7̒������O�ا)q8�2�1�F2�dS�@QSꈚ��υ�=��Ru�S}��#��%���,����	)"���L���|H"�2���ũ�A�薺.D�Gy��-e��]��K:H�蘮��ȨfEx�]5����*���E1���#�3�t�D�t5b�"���I�B�%A~
_���r�0'��z���8�8����7h���z��h�N#n.dd�&c tP���(o�`y4�V"X2X����/1�/��oԄ}Ҝ��p{)\>C���-�6��n4��x�q����.��uU���w#P� ���*�8S�x�����th����5�&�
�	c�o���oG~���i=$�椇S�~�5Cy��?f��|��P~�Ӫb1��8�ß�댢|*�3�r�n!8zV�Ns��G�#�k��{�w��";�� ��m��`t��f(.��*/�E��]�$�)����c�8�H��-?�/�
oP�%�r��A���ұ!��)��t򗜯 #I�!��I&2���
W�-��d��c,aU�O�9�W
4y�����-A�_K6�k=U�0�������P�o$+叆44�ڑ��MD�9�¡��
q�%�_�WނB����0ZD�˓��Y?8R�!��y��j�8�����2��������7RE1o��ȁ\l�M�Lφ��w�����X�">���7�ؓ�p
���&�s �d^j�H���ߔ��+�ߕ��w��Gɫ��T�7
�]K�����H��?!/�y,�>]����ae��M~��KM�%��"!�7Q�iɨo��o�ׇd_�Q��(ly�NQ�B�Dԟ��>����X'��v�`h�G�fP���S�y���B���t��e����7��-�P� ����D�s5���C��F��_���i)��	R\�7��X�X�@j�3�C"�
�!�0��2�È�BU�"�0U�GgSa-<C�6��1����?LR��0!>�H °����"����Ȟ�LkXf<O#�3"�2�d��.��gL�,b����U���9(A^^@�.`	Z�`d����2��4,�f�1���F~~&�а�+a�#���6�2�T��I���FB��,-T^�r�8H�)!�����e�g�7��*���%�3u��}\����/�3c�̘q�u)���`����7L�:B7�x��og�'���)ͩ�[��FZ��Z�Zȷ��a��*����C�j�����c��AZ�A�i��=}pG`-��:M�r�[�a�Dnh)���҄XQ��f	2��I+?HQ�;�d�N�C5�~�����;�3@O��M�n�ň�c��$'�O#��fBx�_��P󻘏�w"����}}1�
l�!e||،Q=�
^��!�A���f�Dh~6����"��7�5�ˊ�QC�=��R�!E�2e~.��5�9-d��{�牰@���H��k,."ڣU��,E�S��G�Z�s]f��Ju��%�Е͞�0�ݠ�WZb��f�����FM��:̠�y�ů��&�0%�1����3w�a�:k t����|1�S��[4�q\`f��oa���E�w�����Mғ؁��na#��~�;�Ђw�5о�^Jy��2{
H�[�"�h�h�������}�F�{r���](6�hQ1Ta�Ě���L�w$ֹ�r/)�y��h��}��`�����e^��~H�������Œ}�R�$R� �x
���
� ��H�!u�X��I��ԫ����>����nӄ��"����v�?�=�~0�!�|�����Z���VoV{�g��rt�C��J1j�h ���v��^D�37#�[��h�_�.�K��ǐP�%��!�~�[��A���"܈3|U���!�n�APŰC��y�r7ǣ t,��нr,T�lX<�αЄ��Ff�BO�z!�1\Z����	���gx��⯉,8��#�k�s���G:�}���#^�C`3��G�_h1�����	K��з����|�z�7���!|DK�A:��!X��X�-j��a�(������$���K���p�>�n�6Se��FǶi9�S�ir��~�=�)`,yTc���݂�C뼃�#����'K4��J����������C��PГ��~��<b�COhd�?|�p��2��=�%d b�v9���d���\��̦�I��o�ѧ5���!�k��YM���4�3�j��[���bb-���Sv���.Қq�&>�b��|"ͳ]CQ=��3"q��g����c���>�Q�y.�5���a/���a/v�������s��sU9O嗹ho߿D3���>_��w1�E��|WPs,� �4
������o�įt%�ԡȅ*�ʅ٣����Z�NjOm�پ�ê}X�l�R��ċ�6��}�~�T���V��P�?TOT&˿
�R� ڧs�$^����go�C���6��ތs��f7o���!�^�]�(�[5�T�8_t�U@��UV����5G�k�‘�ӷ�m�C�Z}}��4S�yHcio�y�98�� 
}8�54���F��#�;	B��SoWwl��m���Gc��<I��;�w�v�c�#�{��lM~N8�[�4vn��q���>7�s�)�b���ɺX��\��,Y[�P[�Dm���9.��tn����R�n�vvQ��s֎������V��z|���]�i�E�EV�fn
�U��jW2q�S�����8�[�j�Z ���^?��g�{#;6ƺg��4����~c�D�E���� e=�> 0l�D5<�Ʈ2����!߁1�bo�au��t�tx��ek��څ��9[�@1Y&�2�=�p_�hy�S@8�3s4C���j���b���.'?=��\����T]ݛ���n|�&�<
�Z}[_�C�-�!ǒf��9A��ʭ�N�d�gJ��W�n�C���d_��J�|5B�����9������L�pD��-�X��|˲X��r,�g�q�:�b�l���Vh��s@Z��B����*,6�2�-�`��;Jo;�b��!�k�Cn�"q��Y�q[j�e8��M,�S���r`�[�a��j�#�"����VvN޸��3�k@Ǚ^<.<^<�x�x�>O>��x&ᙂg:�b<3��	�]Ɍ*6~p��l��#�&^L_���j.P,(��ė�/�#��^�fe,P|
se
7w�xy�Qd�>���,#���FEe���A��	���y�g�8���`���ì�v��j�V�O���O�����⧤e��x�������� ?k�I�|Ah^�d68�m�4,�uiXd��a�ͤ�	N�-�ͶG��r�4.��P��8M[�=�~,g��3VA0�ӛ'3?8L�����9��ہ��77�N��^L����0��6<O��J1�,5y����>�*��҅�x��1��g:�6�O1Y������ڠ2�ܕjC|]k�2�O���¶�ʅ�;��&�Sd��S��e�D��*���o�*M��qH"1�;E��U
CD�d�G�JB$;�cHv�w!YMEP�|ChyX����^����/�
��&��+p�R�O���,j�?n��5����'��8~&{�Cr�e�@��E I��6��
E�!^q
D
>+�
DM>;��Z�2���xU�;u��H�@��k"�Q/��d
D3x]$О��[��yďY��Ua0�v5s��[	O(���a<l��=���<f�Ƥ�hK�l�����F�J=��;G_�xy��̷_:q�44X��7�<,�vN���p|�����َu�µ��M���
���K�'�F�bܘ�!���VSU�a��+G�^U!�H��P��<0g�!)�,�LakF�G3kx#J���fL5�2��x�`
��020u�T;����@%�zt#�d#�r��܏�<B#���-mkW/o�%�b	���J?gx-]��N�t�(>B��7"��NIڝh��V��9��
��� :��6&HU���m9�6oO�^~ 
��ENl�ਬ�$@�6�@�;	����^9��1�ϑ�$�O����\ �du�)�s(6��8)��u�S�ڷ��@YY�h�@̨!�7�&���G]M&�l=�IP^���M)x��n�Q̩ʦ���Z�p�lo���Q��G������=P�M��Z3���ܺ�艀�Y�?V3'w���!�K�D�����`�n� �#y,�"����78�
Z<�ܯb���K��s�/#�J��Uu���H��$d��1%�m��sx7�h����"`L�(����{�T��L8?�({z�f'�I��� ��.,Ё����@��<���2p�h���94_	X���U����v5aԝ�pq��;K��"Ǣ���	�1���Ɏ��r�nކ��db��}{W�ojpms�̅��͎�SW��Yb��Ք��V��H�/�%���,`EId�����'��VPC�r^����SU�)�����M_��xC=9)Z����/��A�&4x��
ce��r$���o5_����W�5S�� �����ډ�O�>����D`h�13����R���jZ��|�*�r�O���X���7�'���=�`���Q`��-u��N���Zd�%�*t#d`�+-pMf�e�Y�і�XKm�ԅ��l�K-��RWXz�e��Ե���r�`�Km�<QK�ݖ��R7Xz����R� �}��c�w@���h���߂s�+����~���hӡ2Xt��j��xQ�2��C������|u����mk��Т�^	���ɊR����m3o�;&x2�L�3O!��x�x����S���l<Ux�40�\V8
w�e�gu�ܧfʧ`{UŝU�����������F�iyQEgz~D�и��#
�O"8*��Ia`�(�ItJ�3�	{������X���K����@130�[��J������L��m�=�w�A�2�a���Vu�A�r1��%<�/����a#1țZ�HP�(��7��-�v��WXx�J;VYe8V���ؙ#��5�#;K�6E����EN�&U	{�C���񔢋�"���.��;[��-	Om-Q�ר���=��B��3���~,y���	��M��L�8Q������h�jJإ��p�5�h/�[C�Z�Xk9#�~�@b�Db[=#jU�ww��#$����2�6*��������)�x���JGfy$s�#��U��!΂�A�ŧvd�G2P���(W�
�.�:M���0�;gPmLsj�%j���h�����[fS~�y��<Ds��RƯc��d��%��(ꭴRI�?f�P+�J��vZ"t����a*1�Q3��Õ8N�ը��9ʒ���Q���ޘ���]Μ��H�;�cU��,���C1��1x�-�Y��6�/3�XT@��Z=/f�=�f��"1�w!�H
��X@����ֳ���,R��d~�Y�1��`i�����T�<�of�ˈ�KÕ������^9<<�>���B_+)	{�嬖9jo��6ڧ�X�e	��^I�\�O],�*tٶ��3�N��0٠p��<�ڀDa��[�d��	x@㓄�^��C���h�<T��+���\�^�ᵡPX���.�d��,2�#��p�?�9j X��"G�fÖϵ�j=���'�q�_�?���j��#ԗ�%���|��:�2<�2<M���'o(���s�C ��aF���`v�E�_b
��D޹V��$ך��[׬Y�T2f	׉aި_q�nؾ��wS7]?�q�3.��;!�԰���(�|�<���D�#����-���)8Zk�]�%X,@�c���;v�:�1�[�R����5%�4�.��ۺ{���D���kU�ֳu���n���7�:&�.&�6IV[rA9gn�W��5�
'���r:���
&��m!��X���^�ލ�=��IJ���t�:��[!	k��ܞ�,���"6ˑ�A$HU�8l/<�
D�H>\���@U2�^�ڏ�{&��z����!�����v}��Bh�j�]�t
=q׽�I��	g������sS���$��I�#Q!Z���`t�"�D�$D��k��6a����jM>R�@��=p����)���	���$�nq�tO�Ht�
��;�z�����sj;c#�!K��N��ނ��T��D^H%le�#�|4x�"nX���)�Ů���Du��qS���c�O�h���7C� Nk	>شۥA�t�3�F��*Xa��s-ܰ`�IR=�2lJx�e�Yj���ٖZe���
���,u��γԣ,�і:�=��e�>�R�x���Z�*Kc�f�k��ux�7	3da��
�&���w"����ºI�U���ɣ��x
��q�Yn��Dl`},�-V0�n���G}�Cw�f�	8E��<@t9L1]*1�dGB�\b���Y��f�n����q��҅�y�O���2��Ь�DP������x��N�P홼�9S�Ͳ�Z�|V�n���X�C쪆M�ۙ�!T�|.�_x9ʞJ�'0mO
��&�|�Q��������
O�M�t�R��a�G̰ɛEd3;_��(�:Q̠(�.+�9E��b�� �j�yk�d�V�e�G���d��D�҆=_:vp�K��?#6cDl�`�]�cNl�%�G��6J�Q���F�f��k2s�ė-$�l�e��21gMĜ5�`w	�y���Ms63f�$��>\�|+�jQ��R��.�����K��	����&PNiػ+���^޳�'A{��{a�y_�_��7����v �P_̊���o�Qkof?�T{�vhEX�g�����ϲ+�V�3{Vϡ!�A�2:�T
�U��eB͋>(�;�dH��!i>�E�/`�㣮T�8�T ��c��"Z�/rE�V���ֶ1�f��FM5:||7L>4�E�t��ot-pc���(��<�4^�l|^�4"�z��kh� �RA� 7��	�TF��w�IIk.�}:�rG_Ɯ?r�Zl��^Lz)Kg�;O&�a��y��/cT����L �o�w&%:Z
d�#���ڪZ_D\X��mB������$���6u������yNdC��Ũb�Ut�pN2e�K�����*�'�d\��r�Pʹ4�%r,=����<�Ţ�F6�����3��!�<FݍNj� lř��XkĂXQi�cm���B�^5c!�:�����H�P�,�v]<�%��l Mɧs/�	7�y��Z��ԋ`��%�S�>���!z�[��v��EOZ�4刭�
-��U���kZC�t�P��\���U�m1]+�&�U�jE��5����-����A$)�K6��s��^�Y,vgߖӶ�-��L��&�-�+�#���-^���6����%���nY��1�46.ʔ�w��,�2hG���_���22+�
�LV҇�B�KI�e�=ݛ@��f�ε@�9)
a��i�}���b\:�(8. �P��=P�TvS|�s�{}ۗu�>����XX�5��? �}�WF6�W���|?�n�aX��
�0��c��9�c�lN�,d�M;�����}�({w�3f�us�+����W�U��9s�G�~��an���ϩ��΂w%��5m�l\��eZ�k�"ܰE�#d�f��	z>iոxM��Z��i��1�q�"|���q��K.,dH�9�5Ӊ�mSݽn��n�4�X�N��#�Jc���D���L��/�jk++��/�Ub����.VSbH$�<ۘ�s���li�6I��u��"B��WX�΄���Y����xrv42����N�)?�h�?p���Kݤ[b�#D��8e���[v+݌���!�Ŏ��ٻs[���vo'"ѣ��u
�2�b1����k�Nl�uu���{�5D*��/֋�7����]�%}m[w.L�Q"��`�fL�˲-�~�ݐ܃��;���ކ��=\)���T4mNe��1�D>\��t!�HE"�ӣ�{��Ccݩ�\)�(W
�G�I[^�
͢->�:qӊ�,g�1m!�ũ�0�l�ƾ��C��FZ
x0�;���Q�q�f�LF
R<"
a��by}FF2Tj�{��g[�T��`�Rj۶���9�`i�:f�n��W��TLtG�E6Ȯ�����q�Z��Ep�3mk�k[m��(yٳs�sfߖn\1��[nlW���3��
�]���������%�u���m�QB���X#�"Q	x�pS�6w��8-����b�\�$���h�O���ʃr�Ľu�Šv�wk�V7�NR_���j�^�"l�i�6vE9Ğ��.qnjL�=;��
���o�)\P(w&g���l\�'n�@�ض�����l��r�j�?	E4�puH�4
��l��7�Km�Nb���4.[,[\x;5BkM�lPL!�W��)��h	6��=X�[$��ܔ�HAN�2w4�A !�p���&3e#���-� &���2�+"D�M�4n��9�|��[���7��e����J��A�)@�u[*��LRj��g,)3 �Q;h��a/M+�tRu�G�e@�m:4�,�nE+:o3��[i�1��	�76�b�^���j��X��bu���9B�p��c����p�p�?�g��,��2WXV�eo�'Y�ɖz���j���i�–����ũ؋�!�pm�ԭ�W��e�qT��xv�9Ϲ��:��`����%x�ͮ"�ˁ
�����w
�N����ڍ�V<�pރ�^<�*d�e�]�`���~��,�&���A#����1���x�7�P��xw������|W1��9U��u��p��O|[Y0'�NY9WQVb+̋s�c�[b4�clela��le���ULY�X�EYĚ���UoA����l��mAK|t����	�r2���󮈿��t�7���GZ;(./���i�3��x��Y�gu�X�.blqN�Ajj7�K/m)b��~���-E���P�G����+����AU�[:E�v���~���t���(��"���~J����J)��x��j�JŅ-T�2�~*�J����z����S�b=U�[~F=�Qs��j`
�Q<8��=�)G3Ň���L�:��X'52%���O���_�Ub*�����5���k8,�b��]�<,������=�֑X��d���D��!z����z���{I0lԽ�K�ރ�Dr���*2�Oj^���6����-�f���S��?�->�i?o'y�p�=�,^*>"�A��O��yw'��
�	���
ۑ�ix fsAp0.\�6�P�P���#g��wy�
tW�*�#o�iRydR�謡�pCk����j�q���̮H`��^�����X�
ڋ�4���:��
e:����l�v�#Al�v�G��KW�1�<2��<R�ͺŽ��H1v�
;��#e�x~��v^y$�}���*x�!�J�ؐ0t���~&EjȎA+��d����P�Ɂ�!ڍ�2G�?�v�r�-�R0�D���&�Q�op�0�Hұ����B�o	-Cj���W�M�vʘ�U"�𤞃~�G��	h�2��xAY̰���6���2�S���{�U�(�?��D���$Ts?t\
�z�I�ZT�@�D�?�d�z�ju�c�Uш�[�^��Z
J����njmS�� N���$s�_D$H���
�f3J5�=Q���چ��9=��'���-`)����wo�}���=�9���6�'F@�.�C�p)�MQƞ���ń���g�@2-D۸(#?p�sۨ�O�j�N����u$��%�d	%w�z��w�u�1�Iz����7}��V&~���Ϸ	�6��'�Z�7{�JH����(��
њ�˜�	�{f�i^�`����f��
\�Ѝ�HN��)������
|�\�"��%���U���� ��S��=��7��\�w\���N�Zw�Ƽ�
*�1�F�`T��>��!���XFH�21#�㪽�^͸��a���9���>`��[�z����Ȣ>�_���D&�_B��D}ASxk=YKp��Yc7E�Hn��*�4�O���5j�g�v��Y�"ƿ���
��Եj�=�n�Π��;�_�2^��������2��	B�}ܪA�5*�Ȣ�ۣ�)w&�~�����>!Rk�hQ?�Mm�*�<�nW16�ۻ5h|�;�JF���h3����RH��U��XN叩]�FV*ƛ�b���>��O��,^pH�z�;X��c��^f���*��{�?������/B��j�8�ht!�A����0r��,26!#y�'�<�82O?M�	�~�
�����v�+8���u2)�_��V1`��d�\%\�_����(�����kQ;�L��QF�K�*�gd(�y߮��P�,�R[b,�
�_�b,�;P:Y>h��3ho�|+�B�\����x�>oh����50�֣"QN�����?Az����� �w2{E���T��4�j�A���j�G3~�&'����p�Sk%@(�����~���D�v4.�y�t���!1g]�Y"�p�"�ENƋ�wa!j�?j��_����F�
�m��x]��jK����v�-A���	[�3���R$T�hn�	��`p�^m��R��, Mg���d�@'y�Y�
�N�##=�8~HH/t�5�
�¡��dQP������72�oku���hH�P�ّ��[��F]���C�1WãO�%fM��VܑS�	;-R����
�j(�?Ӝ��.�`k�����f�A�a�J`p��Y� ƒ����LDxcW�vG#���%a��j%�+�x@��!M_+Cӡ�i	���xq�9^ùE�=�E]����'�a��AP��ziy��B��ܬƷ�t���x��GQ��_4��[cb��LE���k/���F=��}�ͧ����l��i�3�x	� ��A�������F�(#�YH�Pt̡�c��/0����^�ܿ���``��׏�^�.N�H��������("�x]d�1�n9E�I�,Z\T����t������F�.Ӄ@��:��;��5���S=� �B=�<9���|E��t��!���Dx� Bܒ�l\(��j�|#�x�`��Lj7��P��F�0{�{ �FL��
HtZ̋��
"E[fW�*�e�`c�gT��ߌ���$��q(���XE�w�%�.	`{7\�෌-2ة�%�{'�=M-�;0.���Ss8��:-�c��[Fu���x���̉걀�jD��̈����ȳ�����I�u���S�nz8|I�eb�|&^6�Q�N~�1�x�F���d���p��u;������3Sv�rb垎���11
QL�{���@�~{��^&3F
|/SҾ4~Ho���;��z���MbX0gC�����Ch��]p�
Ȫ�g��G��rׂ?������V�����:���1/r���+8����AN��^�oR���3��R0s�F@!uBR�(D�]��؊e]�Ƨ�$���r�J�5��e�/�`$8a���F������b:��^4�r���I�@�sG3�Ӥ�>>��,�[+J���?�<n����?�h��H�2��1���hf�4�L�(��Ti�"�R(Ae��ʭ��O�[aM�Ӻ�� 
�f�K�%Ձ��c��p�0;���Q�۫��o� ��ƬlX��c�eQ_�1��$��(�� �� ���9Xr���1�D}r����1$���34zHzH��8,Ȣ��<�����:6�_���gW�Xdp&�gdC��Do7�L��3R�.��;�
����6�݅F����d-�'����x��ő����ʽ���E���x>�F�f�Z�e#�
{� ��8�f󇌖8c�8�N��F+:��̚����O��#6�K�� e��F�~��=�?K�4ZZ6 Ta�����Y��s�|6��=��{%0UρX�l���G���s'1?#���%�J�=�y�A{9�.|�i���7���A	FF}��B��U�di�f@��{=�w@�K(��)ΏEIJ�L�a�3ן���7c	Z�]j�x���z�j���fP��
�Z�si�#�ܭ�j�k�4H��Ƙ�����!�G�|L!:����h!4�?m��g�X���&-�t���AeH�2IԀ�5�d���
�&K�좄/���c���,�$�&̟�	��k#�1��A�cx�8���KMTspIN��2H�2�{�c��f���Ǜ4m�
8B;��z3��h��a,��,́��Ƃ�L\M����C�b�	��4.�l.��`�5��>C[p��A�{�Q@+����������c�>v
H,��w�V������	C̽�E�*��}io��'�y����	�i���
AA� ~1F�E����B�P�����%�4c>f��Q��i�y�Ə3nHh^0I��,
���C��7�DŽ��H��e�#U���M`i]}�*�Z��~��]�5����"�k��̒�!L::�}��r���Mq^a^�X��X�
r����_��Q4��cҘD�:�Ƃ-<#
�҂��iP*� ��",2�Et��}>b*�E>�b1��>�!�s,��|�%VB�֜g�RTSuS��=���]p��}>���-Z]b�Y]iѺ��2x�U��s�:���A����f��Jib��$��*j��ɠ�2��_@�e�-R3ex�n|�ecu"D���*
�޽N$�Q�l�f|<���z&���p8����{�g��\��㝅�b�T�XAr:�{-P6�_�|��]�4eM����T(��o8���Z먛'���iQ����?��c��	����A����B����O�7a$���e"(�X�ו~�ϱw��%@
�Fր���
9����r�
���%���,��b����	��b�-��W{�*�s�?$�{%�s`�M����A;�4Iph籘���TQ_]�?���f������=D}+]п�}��7�Js�:�o[C0����gX1�a�O�
�#zX�����s?Q�y��
�����"$'�-�2bC�W›�`A.B�g�d?~�H7��'V�~\8��O�v�q�p���?����k�K�$��]�
���8)\�rR���Q� 0sML%� �څj�jwv�+h�&��{�k��ψ���dR�=����9�dt��pvx2����,~.���u�	�\���'��6�}gP�����H��������~W��������'�p9�@�`
�� I�'��u��h��_�� H�
A���'1G�)f�?�����O�[|�����l_�9�����2�D�d������|gyd�PG!�Fy�0�wL��,�L�B�t����t~f��-�r~Vp��#�_&D/eBB#{[�5́BkI�XXJ�	��J�p�k,�%�v��Gʣf�,��X���K:f�!��*k�InJ[7�%��2�H�ٰ^����#k#6Җ|3� 8�s�\��"�+�VU:�AZMmuV���IZ#�{7@a�N�s@]t����B�)y`�zN×jV����'�U�rC�J�B��{l�C���B�_�|�Ps�����a�ۍU���@!�$�����T�б�E����K5ċv���J��4�a�����^bge#"�1p6|@����Y��@���3�ԬmL'��K*
K=�0:���B�X	Х4@��z��VI�ǟ~��SU����捌��&vJ��ԑ��a�	��ؑ\�$�>^䃒�N6ˠ2��#oL �q�F�<v�׻qSG�J�+�t�tw�SX8�5�
u�3�i#�Fz��‘.�\���Kt�ie��h�v�b��J�gv�:�#��ڀ4"��e����ꏈΤ�5+"�)T_]_5R:�&��7������zw�������Q'�`H-��-�
U,��Qk���V��@Wɪ�{Q.�jN]C��CJ��SWe9u����U:eʨj��a��[gl�@�f�^:�����5�u��
a�0?��E��F"�����6�#I&�V�P�S��
���le������s��$2�Q]]�0�����g]eC�Hbp�Z2
W�W�~��hM}U��rL��>�GcXSc�aR�s+�L�Y���&:H���r�VF�F�#�3|	[�m�B���2:
�N��ye4"��2'�鍀=H���:q�V��
�j�U��e(h���g����8��yRh���[&2CF`�m��}
.�0/�f?��&Tz����۾J�Ӈ<@�o�.hHv�Uܳ��;��Y��t�PIcOӖ����;�	�y�F��ښ��rQ�ڂm��ٲ��fkO���
��5B�_���<& �p�J�2W�Kʂn��;�J��O:�>%K@#n���CT`pX��uT�|��#�h��,4=?P�u�/>X �nQ��{��-���T��
��̨�
%L��S�=8>Jm%�E�5S�{��O��"�!��I�7/�fш9k�8u�S��äVjZ,uA�pB������~	��6�PHv{/�Rp{���M%N��*�IR��.�_v�'�\���I�<�LX��I��/C�E�u�̥'*�z��95t�R���h��E���9���5V7K�%p��W���Į���<��Z�����g�_�������d��Ntz3t_����˜N�kj��\�.>C�4%a�2�N�vb�@;1,s�eN#�L3h�Ŗ9�2��)42�Y�Yi�@;���z�l��y�y�eη��	,�Ŗ��2�Y�q���(4)�6X���y����ʆ��6�<�2�[���u��e~�2�m�gY�9Pc�Ƣ	�J*�&+s�TiB�Q�&�y-+P�<(R���s�^+�F�;b[׼�I�:��oM^�;�yx��~O�e>��*MhQ�Т4�Ei=��O2�ذ�����d�|s|��sם���5����5�dO��;�T�pԴx/kX<#�-?�w�L�5���Oa
�P�.�W^J6�+�T+JC�a]}�S�9���ʞ�g�g/�O\_�����6,S���<.�{�=J,�2~�<O!��x���)�S�g6�*<5x���3�Qx��s,�F<��4�iƳO���l�*V17j!1U�"A�J%�Z�}�yZ��G�@�/�]�H3�T0�I3+7��F%_�G
�Fu<S�	��M$�H�`!0^�I�����!��ɩQ �X���⚶/����̈(Y����nFQX��`�%Q%�e�\��2iD�c�e1��(�*�v��,7ԨL`y�4�@����&�,�p]OK���մ6i���5�-��v_���V'���I�{2mŞB;���B��C$��$ł0��F,
�vl�#�ǀg»�)����o?���2���ѬhF4���+[�X4��*8p;
q\��N�&�>۫���v%�!sjҠ��R�ǫ!��cki��1��S��e�]���zX{-�	mi��6�
l�!2Jy��y[jU����T�Jt�$Q�5����,��C����[���T(MǶ{��K��>���B�ʚ�AK��՝����ӆ�½z��7�¿E�Τ6�6U�Y�2�PL���a
ڡ��}�������0]��;bN�^�Bq��nݨkX�l�=3,*of����Af�AT����aAx�	�-Ť7$�����$ɥ�S���\��'��z��J(�^_y,�"?
Z�-G)+`Z��D��FE��:���`�e	]@���X9��8E@� ��Y�B�����R��As6;�T��M��P�X�+�&C��m�ב+t*s���!�َ�^�PX���G��y���x	�dh[�X�*������^d��6�a��P���;��#p��K�a?(IA:�+�(�K�B;��K��D�ZxI8f���H�5��@K�6^�1���8�
?��6���#ʹBɮ�S(���%Z�=
�@{��P%��3���ioқ��.���!��+�6�,G�~�p�{��^b,�<o	�c�����SV�r:p[?c��4�Fj�~w"���ԭfėAj}�j��\T�n�]/�&��_m>���J?��13 1�!!�=��+���-��Xx���߲B�����5t+s���j�;�<�r/.�—���p�vh+)	�`�:�ؾVmY�9N�a�v��%ꚮ
ǯ�A����[�8�R�/z��@�<��@+1���m��������ݩ.�\8/�e8/��p�\�TC�Y8=�xI�9�����@�f�u���6��j�s�7���!�g�q2� ۤbÔ�؂{K�k��x��Ew}�����:[=�^*4K��rUv
h^��(���	��j�E��O����e�u�D/��9~��t�]�$|���ѐ)"C��q�&�RΦ:^N!��)#��E'���Iw��(��{���e'�j����kv�>S�"���ay�f�vt.y�.켸i��/��=�Aei{�^U?�̣��5y�f���T?�Q�L�QH�
��v�_�.�v��s�G��'�\���f�?�aX���8=B���?0>J'��R�'<��zp�Cؑz�ϋZ��#�u��*�O����0���h�9.��e�$�=�7q#[I�/#�r���2!�N
�	�WH�Qe�4�-\ʋ7
�
�5��*��Wt�Z�F��kZk9��z��Ƿ��bV���ɔۉ�!��S���}T�j��X�+��C�)��)���*�0~<�P
�I[�LdNh��Z[ݢ�
XC��k�_�<�}۵d"t�v_�pޥv`�B�N��;Um��'�dI�6���*絶�0��Η�SB���z/��e(�\)!��ube��2<+	�Uo�	�c��H�cZ�;���(�\�^����C�&dAZm}-��5�Ʈj�~n�<;��:%r��Z@`�(�
��򒃹�Ձ�C�͎u�\��a���j��I7`�ؙ���
���pJ�����������s��I��o�*���-]?�. ��q�
S�.Gfp�
$�Q�c�*D]��*�~�5�u�K�ޑZ�ٰ(Rr�nX8��'8�t��	��M�X!�(���X��O-�3D��DYJ��5Q��s����g�<��L�3
�<%3�Q
0?�|d�_�b
7�Z����ŗ�/�+^��r��˓)^�,���/J�/{!N�eb$b%�,5ˏU>r00��gF�3���=�0f�4^�^FV�d�4��w��"w[�Fh0�hS���Zɑ[+�wa?��Q��ǙU紳��������?V�yL}�a-��_��g��6���o�����Y��sT�WN@ '��^<u��Hc^:
�b�n\��&e����t������7�u�jZ�ټ�qE���uu�x�!Nͧ%�#��H�_$}Ih����:SbР�֍����&s�PTͩ�`Q�P]�I���>>r?2��P[�}�������d:g��B><�@�����!|q湗�^��3��`��q��o��a{�K>Sr@
r��r�M"A)7o?Z>�� �O��
4����N��H���MlQ�����ؐ'"�"=��&r�y��1�6�;{��b+�����.�f{��-�kO
HK�G
l���Ӈ˓�ϳR��%}�i�L!���Oϯ˟#��3�M7�q��o��8��ƭWj`���>-��W���3�rZ��n����Itu��N��$��>�P�q͊
�r�Y�2'C�e�
�>��.��ԣ!���ru��6
��E�_����5�[��w���Vz���@�؉�s�g\�T��#�X/���ĩ8`�q�K�i춗b����������'���0o��x&♄g
�B<E��[��w{�2�$���AH�A���$��$ySq;�ƴ\z�!���+}�b=���c6���(+m��:^���%�Yff�b�2�0r�v��⑺a(�Nk�@3���|�
�q�.aYV��IOϢՆaa��=��H�� {�ݧ$�$	PI�I�Vc��)^�I�٩:VSaΛթ�05��xaLow���gOmv��i/��(��:�;<"�v0j&Ϲ$�}_d�K	�}��A�%-���dBxK�Lh�����ɦ���C-h���3[�4�N:5�S�
Te}��C�i	�!����_���$���̼n,�'��q�X�$wyh		�KZ*x��~e�`#+�e�� m�lyCy�߅�5�l��n]�2�	]���0	�K��dcB�깒�y�s�N�4@��S{�&�Q�b|
v'Ѳ�48����[��HM[�[ga���Np�PpOd*�ũp��̞
�ة	�ɮ2��N�M�{�]�f?�A�޿I�`�
��C+)g��3�H�Ƞ��`�[W���?̎'��j�ƶy�&�$��)%=*w:?KT�4�1ʶ�Ib!�Z�(�V@v�c����D���¢�3YP�֩�����T���ZRh���Yg��k�A�.��
��3���Ƌ�!q�3Ƞ쁀�(���E]{��}Qt��3�pxTE���S��ڞ��}z�=D�m�Y�t�@������:� �Am\���Q
(��D�27�=�D��IA.D�T�'Q�,�����Zp��a���:Xj��e�(T���'�����[/��_�U�E�e�4�37h��A�,*�
�¬�*\�
O��"��W�Y�U�*�F��_��3N�}:�E��G�Ci�E�Ά5�i|@�0��pє�����X(�����r��/�Y�[�ӳrIgۚ�U��ǰ�2�y�������I���>Vv�Zݺ��m��v'4.[CI,oZ״�s���aG�۸|y��	I�`_��hZ	d��Φի[W�&]�k:)e���\�J��_��7�a��A�����/XΓ�jk��J��Jec,s:qI�FlH'DC�n�qr�@��#�D�i�4	��˸
��Np+���l�#]�����HOYl�lsֶ�=~W���	Fj�ƞ�I^G��ޞ�-�M;���jY�P�i��7rH��\�A�P�y�d�M�
�$�=�d��Z�+��D�*v��W�^
e���n���$/�B\*$>)D��}����AV��(���t�;�O�u�Uf�K$(Wm�ޱ׈�n8�mAh�ER�׹	9BX���)��'����*��U7�]H��i�3f!U_Y_��Sِ�3���?�s���i<�����% ��@�OH�/]�f��j�E4��j6u;�ˌU!�WI��hN�6��N^)w��w|�i��$�v��z"$�h�ۘp0�fNCn����6�z����;i�25�:�(�M}���:J��"�뤍���W~j���ww9���d�]A�M�H
��˺Y�NDDF,���t\��t��D�� ��Q8҇н��R�b:de:����1�ItF�#ʷ}�(U"�˪�i��
�zmmm�	���N&6f����f�\h�p��J9Ik1�J;B9^Sv��/E�5E޺�VD�2���P�a�R��"O�itI�pg	����OZ�Oj�f8�^���=ЦLC����(Nɑ�p�K�s=2S��6'��+�n-$W�Ф"��Qz���c�PSK�YDKB�9	���)m��a�M��(����ٙ��յZ��l˗$�}�@����s#yW�[2�llH�0w �B��\!�3�Γp$!�XR�s��Nw����A�[=���l���+�wfzzz�{�����~��6٥[�����v��k�Z`.�cҕ�"��jD)��A3����	[5g9L!v��8��J#�}D>�T`ؗ���}�Vg�lK���<����Q���ӕ�n�y*y��cd"�>��h繌���I�[�4Aˤ q�2ە���(�I)�īY��2�.��w<-�9i�F�V&@�+ʆ�z��}oYqYuY���j�$���E���!���jqVr��K�]��u�e�����̍����i�{�&�094@-�V����ˍ�z�Ƨ�o�>ʩ¼4H[Ɍc�H��E,��Z�ij~s��4w�"�;�[`Q���Y�Y�&�Kq_V&�M3x�+���.�cE�m����pX�	�MqL��5��16����\�z��I�1
�җ�X;}��Tz��8o����}��Fe7��Ӥ����z�YR�c��t���.S�}[��
y2�����)ڱ6�f���|Z8J������Ȯ���؇���
}�^Q�*9j���e�e=C��ý�ے�e�A�-�����]a��s�[��h��
�j�����j��KS���<�dW��Qֽc�l]GY���V�I)K�m�f�^�-Y΂�?M[_jph�3�Vᶸ����S\t��@D�R����q97s��@�i�4�Y!Mю�ËP�f��-�aoR��&뒢�1xA��s�p2�L1ÖŦ���C�^����L/���>ocj�ȯ�"�H��!�zy�<��ˇ�z�g5�u�7�:�:���(��< c'	#�O1z���Sg�D�՜e���E����7�3��}�|��aV�;;{�r��3k�`
~�R7�ha�eu�cN��.ر���ryNg6��䛦4�)p,s��o�RMq�n�]�O�%,��X`�qk�v��z�&�1���10|ij$�>>G�L�'w�J|z�8��i���OG
��do?�s΃SʗǪ��Q��|�L7��tC��ۘy��.7]+ӡ�/��
$�2�� O�k�]��x���m�&���8M�^Ѽ�K�H���4E�օ�3S�:��V��燬x�L&#��S����KKg��-=�tY�I���m�[�W�-���7�[��U�ݪ���
י��B77^d��A6B��L��u�]��9�
?��ٜ�_��9�-z�,��{י�Z���mֳ�Pt�[�8�T�ٔ��#��V�Q����fW����U+\u���=?�U��
���viآY�Z��W6f6����9�:�U]u���w����U��@�K\��.WmvU�E�Wu���U���sU�U[\u���]�v7�2�r��n�7�F{h���0��`�
*�
��l	(���z/A��A�t�44�9G���v�v�~j�i���C�?��BTܭ�	O�A�4Gt�-tܭ���(�[(��6��`��-�}�`K�_&�B�2�+����ܒ�+>�]\�Q�M��" ��	�&$`/����G��r��v�<�a�)/�ׯ~A@)�%�W�_~C�-�wX�Bi�����0G��sB������A�΢�	7n"�Lx7�V�{�%�A��p/���$�oQA*y���5���a�#�G	�>Bx����$�)�ӄ/P�g,��YΟ#|��<�c��>A�$�ӄ�^ �Hx��k��EoZ�^
���u��g�^�6-:s��Jmj� &��q��nQ��m��Q�6ݦ6�����u�������q�9\}��
*��M�M.�%�U���gUG�Zdm�}Waܐ���7'G���&�@�w�5��T��'���*5z�E�P[F��M�V�V���"��U��x�������e��~�z���eK�>]�n'�%�'�E� l"lP�������&�� ;ia`���^11(��gIf�h�3���`:��Ka4Z,���M!"KK�e��(��բ:�����H��	��%��V�VC��
�
�F�A��
4c�h�m�
��Q'�6���}�l�O��Tdg�4�TW�@�
�U�?������v`�ր����u+1hpփ��Sљ*P|�
�lP���q�
�<Gf��E�F��Kչ�<p,��|�E*P�
i��=�h+dǶ���z�
�8����Ƨ�ۼM�EF�h=;9�;��+:��Y�wU]�xK��nGwW
'�N��I��^U�#q.���G��*�M�����T&�@ϴ[�#�+�(�ʹ�ݶ�%k�\�M`�)�N��t�[T�s-�hf��a+�+��\��3pLW�V�U�g�ٽz���K�����Q%{��x���ei|���k�
l١e��N4��6|�zeΥ�F�pTB�k��[t�δ4��{���l�f����Ǻ��Y�J��Dcj�8_+��"���Ds*���H���T�`7"E/~=�F_�b6b#��I���Ns�a�ڜ�K�b7ܨ�8��d~����j��1Ffs���'h�8!�t���P_���vz+�(��-�K�ԋꏱ�țAB��b�e-9N'���Ͷ�R��I�@U���n��f�z��;�S�F_T���%)9%�����TR�BQ��=9ɭ�9�m�h�&Uw�D��cP%ry�yCw�}��C\�("��D�{�>��tgCO��Y��`J���
4[�>�]���+��l����&��S�U<��}W��%���7m�!�^E�����oi)�%	a;D�D�vL^��R;�����%�c�@70BR�_��������<P6�.e���
�]��v���61�w�A�en&���=[�E#��CU���B�_�~�w;&Tt%F��L��K��#qeꪧ�!�ZG��:�n�QS�.S�k,!�<WL��3�6�֚�&tj~ݴ⚾��L��hM6Իɥ�t���V�t3-�+��LC��i��Z���,z����k�
|�z}�վ�o���|�G-��(��n��%�R�%�~�N,/`H��"��Xa�Q�<:l3�4s��L�O�T�ʤB�ü�Sd��y��=��#��?�0���D�ڶ �x�'ߴ�K[��$AE�	L�@e9@b=��C��5�+q�<ALme�V[R�U&��A�,��0�W��w�y�6��b̡4��?�����߮�'4�?K���w��~�XW��e�祿�_���sP�'��F�]�2s>�Y������Z�����J��<H��%}]^&ͤ�G�h��j�gk�Ձѫ%fPG��@Ǩ
&��	j�FM$�8����)K�O6DpĪ����]%�4�#�%�:�:�WJ�͊����	�
J�	�;��Z7��7� ��WM��p|��<��������3*1;���U�U{�<vc�ck��������F&��;�k5i)�L��w����d�l�}b"�i�O���#�L�*���а�J���)��L5��.wAA�w��+��`��}��Q��s�rr�`0��Q��!����@,8�b��^�^RcSk�`v���8�	:s��W�R��0�C��(j����iܪ/fg)C���3�Q�Y�H���v�&|��U_J�<FT���j"�^j�|P�'�� n����'���tP�t2Ф�N�u� |�l�>f�I��s�"g����������iQ�b0u�4='���x�R0y�g��Q�����%(i�ձ������*��vw��*
#¤�<�T�qR�&�R`O�&S��ݪ��,��`�=*�6h����*�^��Ff�J��@�9�~h/���T�U��T{Mt �D�F��XP��8���l:��D0U����
��n�F�Z�A�?�"r�"^<�7���C>M�*��&�iŒ�Y_�v���,�����~����v����I{�+��j��`��JM�=�z@��$C�B�"�!B�N���$���'�7���2�g�
��t˘V�ƞJfO2�D��dv�=�̮�}2��ΐ�
�t2�IR�dvZp�PƂ����d�k
�^;=W���&R���^۰�;@�N��la'�-�~{j��kղ��I�g<����Hy/�ͼ�����I�Mo�N�vC��Bʏ���$)?A�!�VK���$��
�ť?f�`8n��Y��}7��Ox�au���F�);�3�!A����ڃ/��0,���lY��R�d/h�v�^>H3l�s���}2j�h3�ཱྀc�+�_2�R�3����#J�DR�S��Ě��+'���1���_��8�_�S���g8��Z|��mF�D�ς�_��!e����L�m\�m�8�ک]{'*���v�1S�q[PI'�D�w Ո��:׌�ݱFԅ�4ѓ�@��iMD�i థ�X��qtb�FLu��v|DY�g�o����mF��eZi�%�'�飯Y��N�rm��	�G)(�b=�5WO�<��X��nw���TA�B��/�
拂���1���d��6��g��w;�$ܻ�^d��)ʓ|a ��(i�F}�N��;Rİ5.xש]�z�5N��J��.��3�`����9�g�Aa���w:���l�78e�
0�5��ouʊO1�ݖ��v?��:Uc�9�pLs���0qQbc��yK۟Wo��X4v�I˺�cJ>[LZ M�b�yX�W�����& �eV�����4���N��phڸ|L!��菳V�rRrL=����<�e���i.74��14xpB?��z��S���h�=j����V2�̔0]ϧ�_O$Kc�Y
.ߏ
?g*L;~�v�2�s��UZu��]/S�=J��@�K朄�8�PB$�l��XGݑut���âC���LHr�OK�hI�n��"�o�Y�'N��b�|��l��l�3wg����&�b@�;>	�h���l#HӦ�q��#��?��fbc�'�����L=(W�t̷y���O���i;��c�O+�[�y����9U�`�g�^<��)w���J����W%��V�E���߱RH�X�%�+�ቬ7�y/x��������o�Ȅ����e��Mđy0�_=����%j�_��_a��c����,�Y_�
S������X���0%3��nK�?z}(�7�J�6�7�{<�29��c@jY<���Z,��H@=�O�iryC���*�3G��FIDbe	ك��au���U)[&^���P50��b�y�̄�]-��9p�q�o2�@H��}�T���,�R��~6�?$��W���?*?R<&�>JO	�eF��
�"H�B����H���%=���~�������]u#1χ����C塵�S�rk-�?�r�ͻ?o�z�w���/����Ȣ�%e��q��S��j�T��%%3�[�ˑP
�~��e)���J��|��Z���z�:��	���2i<���6�0F����L��|0]�^��"dm��#A���q(�#���<�V6~j��|r1wx-Tf��k�'�����d$jw��U�&������:�j��Zf������L��0l�[2���7
c��o}�4��C�/��+���W�!�Fh�
k7vͬL�$�?BU�gv|YY\�3Tu��ՑP��Vb�oԭ��J��_]�V��J�˕��yήL�fU~�+y�aR��׹�g��z��i��L.o5W�M�R�2������>Jvg���-���2�8�e��ڜ�,g�qS�ɯ00@�����jԷc�ވ�/7Ճ��+�U�-w�2
*ZF���T߂b�i��,���%*����]3��'��T`��T`l�P`L�s�et}X�)2���rG<�H�wr�8o���uo�Y���_�}fou�����2��z?�/�%�N�N����:�Rz�I?�

�'Ë�#������t�!��'��-yUf��:�x՟�z�E��9��\��e �l�_va�q��)���o��w�zƒߐ���n�w�A�����[Jx�|a�o�n��7/>����A���Ư��q�;�\rL�M���䄼�[~�a��E㵒�0Z����0�*{U��Hp�k^�tb#��zc��C�(<C5W0����B�����ԫ��'�Ɏ���:4)�i���S��$�����b`�S��M��w�9����S���ة瞧;���^s�?Is�L��L�Fg���p=�6N�A�X�m���Й�nV88���P��G7�,;ճ��r�׷p�/��
�?4>Af��'�|�4P������S#F������ô
�b8l��@�6ށ©﫥�+a���H8���C�?����ٌ#~��wޥʱ�J�XJ�c�t�]ʖT�*�$�}�]<z8��|<Dҟ��O��g��d�\�\��	��υ�cle���ۛ�s�|8��J�y��Ǥ$L��I?����ޭ�'������[�v(�,'�~�(�et�3j���XBo���2Ab�f�y�h?�f�BXf�/� lC�/�S��_�@����@��t�d�@����6��p��,:�~%�FU>�Y�~-�^��Kdf��}�5b��1L��*	����h�8]��]�"W��=�wB���_�~%��_g�H�Q��Ct�_��/�a2��p�K�6�`?���?d翀Q��}x��ր#񅩰������_)�I�7�=�S�����=��#a����
�Wң��/�4�hD��#}�I�V~�"�0���7�����H�-ȪۛH��uC-�2���G2�����Q���$�#uGH]~&I����~k$��")����Bf��3��)�{"�ʐ�{j��o�Ѽ��H6}��(b��G�1(��Ө�x�$٭;��IefV�U�d}U���'.1���p�[�����VL��'7*2m�<h�c�/>��Ȩ��a=z<d��AĆ�v��L�{�t�/�n��뀥��K+��	��������o�����pG�jv�e^���v�w>`��9�\�ˋ�Y`u�U&�(�v��=}yz�{��Dzxr�{a� cR�9�\Ϝ�mľP�fA$�r�)N�7�����>�䁊&dZ�iv�޳S�ʽg}c�@ts��c?��L���l�i9
�4�ZS�+yaǂ����:�y\Q]}�W�����;�gp[5��M�I�:�3Կ}��@�Woܵ@�ƺT��y�ִ�`�7�RW��&0��&��ڝ��lhn=�ML,�M��I̛~0�b|�mc�b��N�?��KO2��+L�˦Z�d�?{�_[�������m�UCQ�0/����iݎ+�
����ԅp~iI��X6;8��Y^hEQ��
'���rD�/s�q�.v�Rך':n�v'w�k-g��X�ѹ�����������]����(@���(�G6[���!D	�ӆ�o��0�ᙳTx6����J��MP~�U�tc�g�(݄� 
�$j7v8�ڍ�@@EN'yȍ(���1j�9,��(2 8�(A�s@�HɌ4d[Mv�HI	+
�b>'�K��E&�ٻ�X�Kd�����1��\�y��ڈ�/�V��r+1�?�tR��řJ/ɤ���)�C3�c����e����d�K�c�:��d�u������㺉\C�
�2u�~b�<�9l#C� �s5�As�8G���	�aii����rX58���(0oޥ��duO��G�%�-Æ��{�]�7-6h�	xM������¼䎑��F;�@�t�˾Zk@ �n�mϓ���ٵM�-b!b"W����:m�RW����b`���7t�G�뚛�K�����5���
���fy�@���h�2ɮol��n׷4�l���O�-��}C���bpn7��4�Nm>�����������!�ॱꛚ��~������R��*��go���F0�f
o���*��ۭ�������4Nǀi?c�`7��5�ńK��njnm	c�n0����͵�
obCd7c{{L+�����x�26uj<�U������M��ֺ��B#)��W	����T�0������iƍ�Tz�����8m�.��i���ֆ9Ǻ������f^:Źi+(�*1�V8����?J��ږi���Ģ��o��P���8��[�U�-�E������7C�w����q�Y7��
�<,'���׽���Fl��K�VԷ֛�b��P��ZIlH����l˼��s�4��!�5�y��Q/ϸ�a,@�<�UӐ�f��菫\��h�/v�2W�0N'��SopA(��!�z8��(��t�*W�v�Tp��Y���p���Y&����v��ya:F�l����	�%��J‰�jB-���Hh!� ��p*�4B�tB;a-�F�L��لs	��� ��*W�1�����*q���*F����'��G+����
�p����=-��g�p>�PPE
$}HEc^~9�^��q�WD�K��/&=����
�X�w]8�k�I�3��E���U�l/��9��F��t��~�|�'x׳��A5{�w���;�]��{��_�OX��[��;.X��/\�1lU0�� g�8eFz����59��&�T�B�ɏ=b����E�W��f�}C�-��&�eǛXnoNn�:�TYI�V������p�	�|"o3�)�
S�Ę[�Ӎƴ�3�
�#�6I��@H,^��9f������뗐��2
�	V�^�T�����[�|�Ϝ�7�O�G���-QI`>��P�\�e�l7�56aH_�b��i��Z�xb������.���nhmi��u�k[m����F~Z[['
����l#h�ښ�`�&ra�m��M�l�K[3��vsM+�
��[��
�,���֖���4��͍uuS}$1S*2�#}vsKS�}�݂�����얺����Vc�l3�i�m��f�=C�õu����L+
ۭ�A�O�c�F\]}����Dح�2,7{ƪvksK��#��,��ښ��F׺�f���x�Uhm
@�6�7F�0,܈纹��޼�;�b�XkC�qW�vmks��sY	�\k�=m�捩=[��b��V�M�
����*=-����DO7�5ٚe鱌싆��
�웒}��Q~o<
�W��p�����i�-&�+�t-��Ln�їe瘗&]C3��ݓ�[l�U�<�C�f�J#B��j]�<��Q���d�A?�����`Xܶe�FJ�K�Jg�n)�/�Y:�J���U�-*��2s�e1�aV�%o�
�9�yN�+Fs���ږȲk����u���u�y2�q�l�;K\g��T�Ή�S-ȅN�봸�ɮs���uV��*�Y�:k\g���:g�N���:���s��lr�.�I�N���𥮳�u.w�C�3�:#nd��\�:��7���y�<�s���n�5�u�%`�{�"z��s��t����`ۖ�][.vm���9ض9��*�]��W�P���`t p�B���	K�Ԓ%�#���\��Pr"�Zb+q�rjɉ淚'7p�=����2������v\��JX���*�j���~Xs)ל5z�
��@)�.��I֝�qy]$y]4z�R�m�(�DD~��m��t�ir�vN�����T"%5	T�W'���$��p��PK�#�	̈́V�
�[�N#�N'����$l �M8���p>�B��.!t6�nB�����	[US�
T42�1�c�q1�����D{'$�E"�)	��3�"q���|��[�[le�3�9����s��ym�G���<�-U�y�����
_.�V��%��
_.��*oa�\����`Q�\b�m�r)\,�\�K�xw��6|���e�*Y�F!J+���2��-0[ͬZ��f����f����朴*0_ͭn���մ��ڶ�>Ī�BUV�*�H-�k������բ���Uް*�T-nh,SKW����LU�Hk��*#A7���QZ���,v����-�N��MU��*���u�V�Pk��h�a]@g=|v�-f�e^�vD�] ���J(}~�,] G_(W_$������g��\�Me]؇(}I�����2���*3�zs�v׉2ϵE�������S[d`9R8ް%5��W騭�9Dّ�_��#T�ӗ+/x���;SsI����W���(��F�GUj>q,\<��6�K��[������^2�U
�be�4����d"����,�6Q�
F	sΔ��2��x�2wy�� aOf}�$��|s	^�D)�_P��(��+ŀ���d\�R�+�\qJ+���k��Ur!��'S+��J-"u�d\DJ�ʉ+Ύ��J-&�$;�*1�+���s)!���m�7Tjq3�Ӎ��Hge�a UA���8���$�l�/�j�d��-wC��3�����
�Ij8Wr٩��b�7ӿ���'	�����4�h6�0YG��JUS���8,0p�A܂�86�T����Y_�V���Y�Z�]��Jl�7����t���mU�G�?Eu̐
�O7�o��v�d�Sx?��x8��K&S��H�Y�H]�$u��M�.�Kj$��4�"�u�~�J��Gd�t��s֟byū*�D;⺃���M/C+۶�b;��v��L���:d�t��!�R�:�t�0f�s�H8���Ѡ�Ml��F�>�y�ƥ3�bZן=m�e��ܱt����
?9��bxչ�F9]\X�h���M$y��q�+$�.6ȇ�YH.���K�x�`CC]6
����<#jjm�oNΏ*,Suo53̮Zψ)���{!j+s�jy�I#۶׳��in7D���5�d�ǿ-P&;j@q�� Rd{ѕ+W�v��{���1)�{6_Z��r����F!&Q���Ύ3g�l/��i0K��Ă�X&�Lq�߂�=�@n��`A}�w�2qѠd�ȖYT� '_{��Qv�
KJsEU�Cxe#���a�D���J����b`F�2@@}H�@�f��/�U���-0���U��f��@G��9�aU"ڗ��9�$��czV�R;{r�1�6�Q���)~㽮;���;��8*<����^��
����46�uE*�S�u:�Da}�z�Y�M'�NE�$��B_�t_��L��{�Dg�n6�sE|jaZ�0��2������X���'��B�]������lR�%{#�Q����]���q;nSCm%/�\�P(��Þ����45�L�EJ`$�Q��+.T��l�t��yxc��2�Ɓq�����O�A�ט�j�7Y��-xq��`��K�4d]h�Z�\�K�_�(�_Ɂ��DH����(��j#�	�;3�.*/8��B�DreX�9C� ^K�t�"s	�x�"����Y�rH��H*��U(����I7�qD���9I�s���N�y����'�h�����{H�%�h�.H�!=y[f,�ݒx�����%��cP�ǚ�^��Ԏ�gV;?Ad{x�4mU�'��$�q���K�HC,��
6���ۑ7 O
���ǧ�`SC}�wd8�\W/�Dro6�O���nh7��}3�	1L=VP� a:���rm<�8*��PwƿI��V�b�-�������L�/������-}��u;�(�+P'�L!���C:C� �T�SFۙY:;���0���̖�t	78õ�-�r@H-5�A��2�K�d�b�E�@Gq�k D	��B!��PJ�;�ūb(
X�Ɏ–?�4f�%�m��ND�(l�pa-�ضg-��d�a�W���M'Ve�3H�Y(�cQ�~{�����������yy{��WA�
���L�%ղ�x`��ˇ9�u����*Q.t�h����?ʤX�n��?��D�PB�%����� 3�b���ۺ�Z�h�g6T[�v��.������Cc��<�֏d��_g�%�[�/,�S�Jv��i&�D���_�p{��
U&C��	�ʿF+0�֥
�)�W��3�e�y�X�$"�83U��<��LC��?ͅp����2
����
�u&�zNG��.��a�O�/����W��65��|�k�Ʋ-�TY����4󗆜�	*�O�Ö����[��Z�a���m<���+���v~{;�6��x��i�+Ɗ�b��'0묕;�7����'A��O��3d�ʌ�)͓������S��==�C�W�����P���+7�o�|�ξ����LΞ��]����}��ADPÓr���R�Lߐk�	›a�/=�d<�I�Oͩ�\.;&F�-l;�`;K��
Nw�vF\�{i2�R�D��	&Q
�e��o!�Ic�M�����n\S8ﻥ�6n�oK_�N�z��)�j7-��MEzwŦ��w%��
+;M&7Z��a1|Z�H�I��s=7z}��Ӣ�[��Ǡ��q$��>Q��]=Л�y�p_���lN��*ΎH�Z�Y��V�������ܺc�/�R���M�·]D�&���y�־޸���A�޽����G�1'p�~�4'2�,�+33��/�������v�P�����N��J+���;g����Ǜ�7YSk��e3�3���
�Yh��µ6gF|�����y�~�SWW�\s�
G��77F'?$
--񣛔�-
L���X-1luFM�J�5/�H�E�Z�ߏƺv�p���Ic��R����(����:��2��M3�M��T���WO�˩knh�-4hZ|cs�4n��l1���)[�Ν�0v�ZZk�:���RѦK=���OgQ�%�J.�F���I�\�f�^��e�;����I�/��)f��x+��̳vl�G� ��h�m�U��?ϓ�i�c�L�ȕ�J��1+
W�4�L?6]O3��!��ݐ\���7�=���xOvG��.��>�O���E8����Zߜ�E�;�D��!Κ���m�ir��\5�d�EKDs=`�f(ڽ���ҧ�rU�:	6*�M���n��
\�����w+�fVNSSMC�(K�+������͉�7˨�n>�džS?ֶ�q�K�����=�l�zz3�;�*t�氞��h@kb��~[M�[���>�֡>����ސܐWL"ϛ�KA�.��J��eU���>[�!K�!4<�c��O4�F��8��=\�K�<^�^Y�4+����-^pn�V�.�w�s�C���ҭ��̀�O�d;$�y+��� ���=�Y��~n�B�T�p7�^}��Қ"�	Iކ��#�ǹFf�������mN?��b"Ǽ�ݲ$��.�lf3|}OX��Crk�c�8�ӌ"�~PO�Q�Yrg�ZR�(H��#o�@�F5���F&���p$���X�Lp{7�u��r�(9e\@dk9N���Q���7b��4ugf򆌰j��SɴR{��T��c){�!STY†�†r���{�ڈ������ɮe��6g��MR�h49 Z�qX�"p�y�+_�$�)	�%���`���E�{wխ�:8�'�
��.� �L9߻�f�^���m,IN�Ǚ�O�O���@����"��(E[9�rժ���@����ɝ=!s�̜R;/6WR��z8���^����N{c@�q��١|�@5�GE��S��}lO�'l���;ݙC�Y�����ڗ���bo�'D�V��4Xr�id"y���#�~2\Oj��a{s��7�������Qz/����:�ӝ����Ҝ�Xi�SR���Ze�P�S3�U�'T铪�T�U��Qќ�H�k�u���Vݠ+�!��\W�i�]��y��Մ�[슗��Q4@��#�m�G̎�S"�C�%F���)���FŸֵ� �( 5�8�
��6Q?�o��ֵ����ٮu��z�kD}��6�@�SQ����s�-���Z��j�U�����]5�aW��j��v��
W�r�nW]骫\�W��U�rFUH�Eu#{���A�o�f��S�FXjTw,�v�{E�!£�n�#j]��3��-��%���>Jx��i�i���"�_Rn>@�_�\�����ε�J�tҵ�#w��}UE~����Q�#��ST�@��m�%:�9t�&���:����z��狿��Yn>���[�{%��,7Vs�cV���Dd�s-Ȍ��
ᝳf�ZaY��3�0�Kݣ^R�W�U��n@�t6��@�
�*�v^D�8�*���i����ʪ�5�Qy�Dw�����ͣ %���7�@U�L�ɰ��G�B�g�2�3���z������_(k�
k��K��Xyy���jQ����٨z@
�>�0,�x�Z��j��-$�;G�[�
^��֔�����;y��]<+ǫ���O���`�yR=�,z���(�BA�u2m&��kí��{�L�I���U��:����s	�.$���I�%���N�J�F�A�s���[~n�������s���)?w�����s����~e���ߋ;��l� �� �MM���?q�a��-(~P�* �,��8=�i����c��N[�2�\ ?�g�ĕ��b�`��,��eĩ ZoV�B~ZV	q�}VME��2(�U���(O4�O���ț��\x�\�g��fO�+e��4c)�r%?�6�ܲW����颹Z-�[n�hn�׬D9'(u�:��ׯDk+
(u��@UJ�'ka���-�Z9爮V���Qt���]���V��;�������~��Z�	��KT��StY��������������+���
,�S��)�׶�@��>_Md�i����i;�:��s(<�P���a���0s�f
��쑶@5b��1O�B��e�­������D�u&ԻE�չF�:���R��Jl��aq~i�^���;��7�睿��!�Hy�U=���9��oX�m`�&.����85��Az{����˺D(��ʺ����pYW�fd�ƘA�@��Mva����M�Ht(���#�
"8��\:u�ש�૔�z��"n[jw.H�
�!qE��ѫ%���o߹R	�Є��sCv���!�ƃ�8L�S��<���g�=܌�W�ݶ<0�3��Ԩzh_�5�2X���r;q�(h�$z�}�/�<ѥ?����d�'���2N/���R�F`sgT&gTt���U�UR�,1x�;�:ֶ�.�[�5��R���%����q������[lNS���@*r/x�Kz�\^Kz�RW��W�z���l�&�g$;�,��+2B9?����1�џ ��2��6�-��(�S���fGJ��[�֭���J�>�DW�J�ާDe�?T.��A����Pt8��$��/(QmxQ��{�0���˶�à���ަ�PnV��@a�ߓ���pYO��'�;����?��$�=�K{
�jiO�����S��(\ty�f�����;���
$���@����;�e��]>������ǁbp�<������;E��T�h�V@�S���x��.�����qt��}�t�bw����[�K|��g��)�IY�N��T��7�:hywX�z��o�ײ/�K�~�R]�������n�5��Z�+d��7Lp<~�<�b�&��8Y�nZ��c�n�G)/��7R�)�دg
��c��~�n�2��1��x�L�܀p�蚭GQ(��	~��ZF������h�r���m�A��NӦ��u�e��|P\N�7Yާ��0!|�O�R�;��H�.�r>�m �Д'�8;��횧?��<J:<�; �Ǭ�73�u�A��|�2��%�W��^��~?�b]e�kW&�&��'9YйD?e��P�%��%~u��s^u�KWg�~^@ż�,�:�c����tu��'�:�H�:��y!�v���pVNu��r�0�D����+TG�R�
����eR�]�]�h��8������{F���;��t�cݹ������h�(dw�]��aZ�KT�o��x��,�,��	��f���m-�)0��D~�DƘ,$b\~߻d�(��G�#?�<H'PWT\xޑ#����3A�f^���ow��-$��^lae����_V�U�UULO�
i�gC���P;Z�I�gI��1�#����Z��F"�D��־U�7Q�o��;���[�������{�k���}�>w���U���?8��U���~�ȑ�3G��X�)���V�o�e��U�o���~1�NԷK��/�e���&**����q�.V��o���r�1�z�G���6m$�y�q�GM��w-B�,?Ra]T|�&��Js+�s+�@�]4���.�8��:��L�$:�ȥ��{�+��􇻇89�2y�~ؤ*��~1�5���?G����o*��T�I��Ry�yx�9����V��x����=�>O�X��6�^������h0�{,�{߾�^�k1�(�_u�Wf�#
�T�>Lm����9���=���H�C����}����\�_
P���c�xYn�|��#NN��P��dZ��x��c�r�U��|�B���]��4{�Z��d/���`ś�`<��Ψ�ꍥ�33��2��C��~�Z�������� �GA�}2����[;�*Ms;P��K��E����}k;�ӯ�~��<�����ͫ��d	Ƀ�r���	1S��r�ڄ�>̧]���R��4k0
E��^'�f:�� ���~kbO�=?}��@�[$�bQ}gV�	<�"}�ݾ��N�;�D��ѿS"�y��%m}�-���`�a�x;����D���r3S\Il�w�q*����󠮯N��8G�i�tqm�l}����{m8����m
����^^36���g�k�f��|[xM���#^����� �a�m|���o-��d��������'��~�_�!5�o3ܿO��!>e��33m7�>'�?2������|X}Gɼ컆V�g�n�g~'�i<|����k>�kr�B�K@|��K�g�N1����p=^��cb��a�"�azs,A��D��vjxGO����D"ue7P��ڙz���x���o��ng_��DQ��,<��q��߲M3�iw�̝8wƽ;�M�r���N!wzwC
�C���C̎�klz�>}߀~�����e��JIR�K����̒z�߈G�0����x��}TP�~o?e�e�N��(݅�}��g�����b������|�����s3�~�̵a�W�L��D��Wf��k3A���20��=��6�g[�j�ep<wGO����E�^u#H{�X%�S�D���:�h(z_�
�g�Ԡ߰���6��w��|�e�A�8���#R`�
N׵�|xn.�&�&g^�8�����"���|Pu��ٹ:Q��ʭ@YR�T�z�'�����;�դo�i��E��I5��I�`/5�;�j�JP��H.���)2Æ�ɢi���A�\�{�F��PZ&��z���s�\����f�y?��G����G��NƠ�=���:/�vy��N�E�h@��q��4��g�Y ��)G&�+zr�\��.s&��t�u�/-�S�~�/0��9�>��̘�sNj،��2){�Im��Z]^~��n��e"m�H�Jw.��|D���z�@>U�|�D�$o��9NQ@��^�!�����!�����!�7̒�{��a��>���y�,G-Y���e9x�Y^kɺ�:+&���dO�0@	9D	�V~a@�9�����p�,[X��p^�%�k��K�4W�����+ƚ��&%w���f��m�-!��>�u�pO>!Z1|��C�!�XHm]�����8�fi�t)2�b��\����w�3<�VB�[_X��fN�T#��.Ї���=�	
�2��ӓ��������o������i��O�7����^47������_9=���"	�uc2�-�.0oǟ���zD��R�$�w*����8!�	��yj\�����|Y���67+[�D�@Vu����7//W0�x��!��4x9B�vG���<��#���/�Y�@W��;�b��-#1u�6��B��rF���L�&����ɓ…�{C83{��8"9:ɝ���Zu�J��+W�j,,cuEO<y��'y�-i���R:]��̣��(�Mu��{4W�/�.����̣��p�
��HL�G�Wc�1��<��Gb�!���8��wq>A�G��C����+s6!tC"ˁ6�dB?�c���#�
�£@?�jǖ�/Z�$b�D���d�Ox��/����%�	��C�`sEftO��܀��au�B��a$7Lqo��)&w=F�nK�J�X"Wbˀ�F��H^2��#W��Y��H���V�[�z
	�R�^"�#,Fx
�DJAYO^YOn�b�6�cr	�P�Y�L���c(�O���.U�b��w���o��J�Í\��Pjd�i�[M��~�'�!��B���0<g����IaN�I�MꟄ���
����s4�(�7�̼���PO4}���g1����B�\мy�#F*���X�O������h1��ZGƊ3�P#����d�>:�����@���]�C�)��7�opy^�L�N˰R�c���$����1`��%H����t��.�w	�����޵����G�G�s'��xML0�I�}��������|���O囘B�@&�Pb ��	+�5=�
��/�����j{[��U@zV��aW�E�~�e
Iq�4+�OX?��D�KW9�#r�8&/Qrv945H�N:>5D�d3q̫�IW
$��a>LH?�ҷ���9S�4���}ލ��6(m�-f�q���2K���0�b)w�d�>�(ӧM�b�!����ua
��nCA/IAyF�i��)�Ԅd/�L��I��/���y6�Q����N��_7��.�*�6��5�*�1���������9�{�2��˒�j=FUmcfq��-ѡ��ƻ0��$b���HwNw��^9���ȅ�#O�#��e�DA���fz\��[��#G����"?���k�^��'��M�ܕ1��5�f��t8bк;�I��t�S\��?�ݡw���M�����٤hѧ�Ȕ��%���5��迸�r�]��ӹ��'s��I�9*�B��M.���n��\d�B��R�w�,0�i���<�B7��}�Hm�q�;���sXP|����L�����:L�/,�axN{�4�*��	k$�����0��?|�g@��_5���tf��Aav|)/yL^r���f�x8���%O0���0��j"�$Do?-+�I'�ۤ��ϙ��&���	�I�	����%ן2	�e�%��� ͍�ϱI_#�BΝ��_�}��^>���!w_�qX=`	��z8�ήe��e�>!��%~7a����� �H��n"���+��=���L7��0��	���ؘ��j/��< �|���˂X�-��<h���K2��a���)�l��V�#�E������q\��%f���Z<1C0�a��7��
�vjP�Z���%iK�Ez"2�_���$�MV�\�;IYdrI��\��V�d���t��Ԥ-0A{i]����Lk���ϯ�'Я��9��C�y�����7F�������?�BrB�-����\=>�����r|JV�k�Y1!��n�Ӓ	G�$�,0�&7�~��)(��1� 9��g��!�\�rMdm�k��Ly�{˔�KP���;P��#k35�1�L��
�1"�O����x	��bk6�֋/ҷD�wH�5	.b��bZ�����	~ؐ��o6�3<a�E ǗX��ө'�T��2M+��c��<��d'qB��m}wd��t>&�*���	�!N��.��C��ȎWa�{#��ao�`\��y�_I����=3�A�qcef�Xt|F��ݶ�.P��#�0�!���#��X��y���H�ݮ�G��O��-8����B�$V��G���N��Y�Vй��
׋�KC.�f����>񅓟�M���H$�g#�.^�ג�E�r��<�hʃ_J?�J��_�xR̈́��y��`�HMzF�O�=�X�:x�m<��	��YC��<l�L�Ë�z��y��YO�d釿+/�R�����t�{���~�{�O)r�~M\�P�"?%E�M�ڕ"�V���9�;�5��0���N�XvT�M�deQa��fe�G�b�p����_��m�~���!�*7��v$�yw�<��K��V�M��~P��5���׷�Lv�Iv�����~�Ӧ�=c�ݳ��X&�"�::ݱ��m�]��}tF���G,����&�:s�%����XF	�]�NO}W�Ƞ�<u�b����]$���B�w��4R��nO%��{R�*�:H�V��k�����Tہ�^v����E��*��M\�R�c0�������(��(_�&�﫱t#�j�]�3<�6#�ˈ�d�z���G�{�B��&�a=�p4ن��#��؏?M��c�&������ń��hr���#��0����h�2�sN&��5OFM��׌駢����k�ľ��*���4�T%�V8�I���T[+�[i��t{(�Yj���{V�����wi)_(~=xL�Rϸ{�5�[�u�H
�����,z���z♧�m�no���@x3����z�a���m��1���}Ɂ��������6������.����7�5E2%���>�h���������s�Mەi�*�
C}�^-0:O�	
t��Xt_�74�vy���$�1��ni��kb���$�=����B7X���=('a�B,Or0��BȄB~V�(�.r13'�qB1����*7Ag�.1��A',Z|���_�����R���f
���y�v�J��yt�9�<p�8��[���VR�� ��f��D���EU�b`�9��3SA�.A@�AE�7[�^Hޝ���N�PD�:�v�Veҝ���!��<�^���^��q��\=�����W'�c%�8rd\ �-���{����W�����花;(���K	E�?r��+�#j�
��r5��^��2��뼼�tF1����:=��dJ�8'�ckus��1N�ɐ0��ޓ|/î�f�K�<�ʥM�����*�<& �0%��$�zd�?T�ߘ��@+HxF���z�V�=Aٴ��9��z�t�q��j�[�6���o��ŶJvc�

$����X�	�iS���,aM���L�b��d��C}��#C�[�`,l�XV��u�u50,��X�y�yY؀�6g�a8a�N�ǯ��ɪ�t�bZB@;�JL���ܣ�<����
�O��M��|��x���;
W���N�DRɞ���1���n�Hr'͘���gK>y�n���&<�vL�֝�y��nX��y�#`��S�Ae����}�ΤQ�==������FFQ�ӷІ_z_�7���y��<��xUXL��*w]��p���ŎvhhpH�쬏H#�׬H��6��[�����@G��vX���o��5GGh*��ҧir)�����뷯hx�)�龉Wߐo�9��k��C�;A;ްqEVQ���`N��7�U�C��1ۚi��)�W���~��W�n�1�Y^k�(;��8�yV>�%�#ݠ�Ž�|o0a��k�v�k�t��nh�k-r�%�%�V\�ҵNt��\�ڵj�p�k5��&�jqín�-��R\��s�v7��)�(f�.�7v��l�S<Z�u�hs@tr�-�ފ�4I`�3�Y�1K�)K	��ӄA^	��%\���6� �',?U���I�H��$��+���E���)*<-`��
Uu�*_�27������0S��uu��w-�1�ܻS.#,:Q�SqY)&
�Ö��"��_S��, �ɩ�>ـvE��H��;"���6DEq��#A8⭈�t��t�b#�[Sf���k-y�IXgD������R3n"�qt�����R��a@>gې�x�9�ڼ�{9�5C��aL��Bm,����U+�.M�&J��s�G2���d/Sr��o���Y�d,ɸ��1�J�`��e��}�?.����;�.��ֻ�4:m]��x�,�z�ܫ�g�h\��zqU[B�E�T��s�R?�pO�eɲ��i��%�.�@��u,��"MXW��N��R
j�R.d���/I��k�jf8ťL>�^(n�t�%�b�6�w�Wc�V�-��#M�1�^�y�!q��X
�_�����+Ou��k���&oJ�ӱ��Ȁ3�6
�W.~����{������ʆ���/��j=r$es��̡��q8�Z�t�8ڹAț�8��F��h;o���mh�ս�L7��r���W�V�y��Q��+�?�n�%
8�8p�@�w�����Hrh(�{���;�x�bh��[
0}>0e����|�/�y���wv�b�^��*"��
�^[w䋙�D�5��a�+F�Q9��
,/��<�������2X���z����@�o�����:�I����eL��Lݳ���ah0��q�l��ڿ�[A��2���tx��C��-QQ���0F�癩��w{F��o��_{_VlY=�1e_m�v:�,�Jq'�So
ǧD�iqa�
����+��w�\1D1e��cs����ų�������2�j�G�Q��ӣp�X�2
��?g�E��n/���rP���`��t�en��
ָ�&7x�\I�<���U�{�@��*.�=��j�Ē�Q�@�.����ѓ���d�a,�����8@+��gtk�,+A����{�QR�����†��;~?��b�-E�T�g���L�T@r}X͖M�9��7W���2�|�8A�K�d4] E�dWO�Cؙ�a�ǽsRё��!=�kր�������8e6�6P�����+��xbG��T��0yz��6��,�Od�c����\���\�˄,�M�&��|]#���ּ������bϚ�-��ck�z�S�`����zE*����+z���H�C6oY�:G�L���\��mo�u�yv���h�A�I6@l�)Qx��H�"H���@7	h4(Q���l�N_�'�Aʒmɒb;�I&�ȑ;�f70"7�&�I�U���$�	�W�K�yAVWիW������0�iEi�`�\J_���"��#'"�P�����k�(!�ؘHŎ7�	+�rP������	��v��N&�t�晸%�4�H�vV}�~Q���,<���tx��6]K��z����I+��� �H�fu���/��,�H�^t?b�?�@*Oԇ���D���1�.��P� ���Q��k�7�X��׫~���%���ߏ\�I��V�km�v�k�^W%��C2������#��;^Tu�
�m��ѝ>iHNB��
5�!��b:@~R%��3�\N��,i�دJ�A����W{�}���Z���s�-����{���[$��-�U���!�~θ��W���Ј���Ơ�BWs	��rS�Ǎ��i�?a�Aݟ�	��Ĩ�uD#��t`�+�j���T$�|1:B����<͑C���^���H`!�"�����}֐�yz�X�����K1�[�Vҿ�%�
��#X���~ZDGB�,'q_����_�vT���I*GL����S��I��+݊��
���x`juY��z�L�S!My�竕ԔG��������S�c�O]��i>��e�:����|>�]�w�U��"3�X�}��m`!��/�1�~�,��~/�:E��V�20P�Q���Y < ��SxO�\�!�x��U�S8A�}jc�����G�;~⾓�N������x�S��L����c�O]����>�+�>�䵧�߂#��ή�޽��jA:nP֤\xyy��
��S�N95t��ѓGN=wl�0(Q�@�IQ�X/!��-�6�^'	����2	�7���=D�Wg�﮻x/�Q,�/�A�b(.)���WT���M:B��-[�Ŷ��ohܵ{O��ľ��R~�ܯxE��>���s�3OjV�C��Pu��X�B;�,�����j�-U��ؓ�40P`ؗV;�2��V?��y9�h��	#�7��oQ����el5�Lp�	bV3�%��ۖV��#Y�ܭd �d�y��#�!_>�4�O��Q_\*2����7���-�f:��-��>���ϡp�+a.���]��~S�f���OEi�U��9��oN00�~>�0pP��jB~Yt&��{�X��;,�я�Y�ssMc��x�tȻ>����Qt���3]�|1~�:��(�7Qu#��\��N#ᑤw-�~3J�|��f��9V
玣��DŠbNG����If4�J�V8X{؁�Ⱦ�#Ʉ�2a})n?�2�ϐ�Nv!Y+\�l����l�~���~y����W�1Q�D�ϖ��h>
"�eO���p����4/��?ӴJ����m6n��n��·��Nl���ouݰ�W����}��>�3~���az�����J;�2N'zb��/����/.M�����4���8�_��3H��E"��E"�J�8PR28�o�9��}r���\DW}.Y��+P&����JϬM�B�hL 6�F�P�(/�6���\ߣfڠr�U��*�6ⷡ5��x�>%��v�G��A�����]d�Yݨ�	¾����Z?̼��a^���C.��4Td����NJ�7�n�����)6�k��ݒ��v<!\�W+��'��:Δ殬�jP�N��o[�|���֟�.���_��8������3ߕ��C�=0t��ub ͇YIU��…�m+��~�����C��O.?k��й���{��R�cΤ.��'�c�3s1��s1�O��؄�ph�w1'��)�������.�T�����ڭ���YUˢ%����k,{�(_y|œJ�
*H$V�U�F�ȫF�Ǎ8�@l�m--�1��M�@�v�E��ڳ
�f��RB�@��FXo�*�w�O<g�Wl���
Xɞ��N�Jg����-��OEx�Gp��90�B[�H�2��"�i,8��,��O߸|Ř��
	'����Ql��[���?�."ܲ�`�OxԼ�U��W'���%��v-ol�lM�</�����VГ�[�2����Ǝ+,E���SY8`d;�KF�TY}+�:�=8��tf*��u�H��9�u{QiZ�3Ʌ��_�`	z��x�47|���̓��옄駺,9�eJ�s�������q�Wp-�-�&��{!z��,߫����r�?}uj
���y�5<|�:y�5|�XS������q���T��_���P�.� �9��4M��p��I~S���X�&�o�3ǂ�W�eV�-�	�[�1w�\�1)Y�c#%Sxmf��Gܻ%ޛ9���"�Fe;"R2�9����I�<嘧��!b"]��c�����#�yq���Z���dk�ŷ5�N1�mqT�ql���8�b���e�Ğ<w<2�:��o����|&;9q)\]�����c�v��
�8���F�f�(�}Q17�
���(�R�T
�`Y��5�k�k��}������w%�7~���kY�pX�� ��O��>4Lh�vA�#���hCZ4��A�Ftl��;V	7i�	4L��,F)ch���JqD<�5�-1��@���f�C<���J�=b��w�
���3�H�pr:���%�
�=�⁻�L�d,�ݽW1!w���p��Α8WOč|5ֺ$�tgwF�|�͑�$��Hv� ̇��`��sۓ��a�J�'+�ݣ�Ȁ��=vtd�{�v��'���o,�ӹ��`v�P�3'���E[pO�7ͽ�m�����>�u�7��|�Zh7�Tٟm~v~�h���Dž�إ�ѽ��sˡ�!�B�b^s��V��|T~ޣ��Q�8�G?n��sX���\q�dk�5G���#�lsGUݵ�Zis�	��56�h�~iz|I� ����\�vd�(��qn'�<Gn��xږ�r����8�.�~���>FڵG�uX�x�la�a�(J�ߗ�9ws$��~@5�%>��,�[�0����.�1�|� �[���4t�8�Pv��~4�?jHa�~�H�t?a4��FSv��I�\DŽ�qó�\Ȃs=>�R��ݾ�+��W>cH�Df�3��(S�5��?$����}��%,�Gd���>J�(|�ML�V�����l��������Ɋ#��S�e�eʴr
hA����K�i؎+U�_��T���$����`�>�r$"�[k�����'��2r�)3�v��+�{Nގ��V�yz��ʣ/����o���C�-f�/L	2��U_~��P��.,�V�yV�sB�����/n��~f����q���V�iob6�M#)��)��#�?,�� %sBZ8��Û�XH@�Zx������)�|Ø_:�7=M`?�ծyܬ�� 
����~��s���U�T�#������r��l��;+���ʂ���/*�W��#���
y�8�h�����7��p�9,�ܛ���>�%���;ױ|��������ye��I��%���ԨX�,���忥�YM�(�+��HY��=��I�x{���YWV��ϽQ�@e��oa"�e\ߧ�DFj;+��ʄ�Ϥ���J��]/��s��,a�s��}��}�-��*�'��*�*B�B'$I�v�_`��/�/Ԑ����b4��ѐ�`ß�4|�B�7�i����(7N��_�x,�xb*q91���@_a�!EV�SJ�`��P��j�gغm�{+��E�@뙉�V+PZ�N�P��N<2|�'�xw�Y�=��G.99*�^��8};p���CVgGw��ف����>�#u���-�,�ùT��L��JB��$DE�g�J���d�M�?ު?QJX��P�)Vn@����_)(P����T)(��`���Q�	p�}���`p-u���u�HS�Z�)jw�FYv����;�}�U�it�����}Α�g�ξ�Fik�Qh�ѓC�WO=tvhx��ǫt���v��^�v|HO����O���D􋝭m;�����kD�[�����hm�ݭ-[�;���m����V�:�N���U��M�������с3g��V��c�vv�GE�e#B�EQ��=����K�G/�.��>�� w8�k����8���f��@`o�v��(�t٥��}�/�j�z��_�`י��_^ۿ�-�ʷ[��L�)͞
V����=>���2�D@�t�r	"�D��1q㾌:�L��k�c49j�1ԕ�=��9}x�,-ݝ��	W�m�d��_%ϫ9j9�8�s��h��ű7a��Uբ;%k����7̸R_�A�E��D*2KW��yI��ݎr�юB�?�ٱ�@�3��0琅bgT�B�E�f.�bV0�V���3D��j\<C+}&uw��R�Q�͂�=��+nS�9Y<�h�O����</�E'�Y�{�֨�7Y�T�ֲAY�X�nڛ*Y�)1@mQ��t=A�Z'���T���N�5LI��7�
��O��,b[vQ�B�ǎ>�.&���G�x�����»0�:�r+
VVWg�s�L�����Z|����玟>��CVO{[�ԑs��
X���%2��=t�ȨZe֫u��>�����>2T�����Ϝ�Vg�[���K�^A�X\�xzOX�+I�Dz��.ff7��Ż�QY�\˨љa��n[�Y����>��=�sG{HXBs����D&����-��e�w�tjn�݁W�"�X�J�<bt�v���Rԩ�i���xo�|{��7Y������ժYL\�v�=���lo��<����^5�V:%s���
/)���+�%����{�
�l��TX=��p�V8wp�ޙWDO�힃z�1\D�q�-�B���i�{��#��2�[D'cWF��E�
1�V�VVo�o�NT�<���m�^ܦ�UΉ�1��J2lm�RΤlou�1�C��`c��t����fO�ct:F�c�:�]��߯�s��q�1N;�'H��O��T�wox}S���O�6����3vo���cɓ�=���(�n�٘U�ޕ��G�a��̌�c�ވ+L�2��s��(L�{���������������q/��A�C�
�s����]��*`�����Pe?r#\�NE5�B�Ej�vq��+�,�Di���-�([�_T�M�E�1�UT�d�ToU��[U
�T��O/+YV���"~��):;�k��.�JMm��� ��*0��P��O'Nl��7a��/^�jXp��C�8�o��T��un�����s�/��wwܧ�d���F��}�	�����[ f�>a�-�^V�4��梫>���G��ė�!���$��S�3.O{�򞞉ת��Y�#�����ٽ@a-Y!$s`h��jdWY8r��6R�N�y���6E�~�(�����M�Δ]VwEU�͑-��H"-����9z+��V
u����7�$��[,���l��œٝ��{�6�.�]��S����h��c��߯���!�F�ƾ��7��o|���
����0�d�d�P1�
Tɚ���c�]#P���P�F����[�2�!���'�y+Y"���'^3ȻAn⻸���5�)7+Y��姆�� ��R��0b��[����"���%��+�	����rx�R�Փ^��2�z�hm�� ?_�.�&?�c�ŀX ����~�T�F��[*�����T�Z۷���^c�4�l��|��Կ�F$�#u��-}W�ʎt��(���p�f>q���'�S���ɺ��B�ŀ�_�!������y=[�z���l��,}>F�6U��3��h*� �u���I'8��N�a)��4��X>�7��VaV���L�j�G0�X���(������`,�P|���Q���-�	�(��BM�q�-��V���5Rq,���H5��8+��
x����	�XW��� ��
HG%]jV�/%}R$���k�:5z�ȩ���]l/��99������ذ��&mn�`hu�����VGg�����d�p&���_�h�:�Z�y�g����Ѭ�ޮe*��m�Z%J[ٷ���/6{�U̹�"!zJW�5v�p_,;'��ņ���X8��$F��b�$��&��v��]�B̝˛:!,ԦΨ�e���7���<�Phs>T��68�U\��9J9�/�l�
��-[
�6�X������i���5������)P�/��)��/�\ϮJUx1ReF�XM	n�X*�nJlO�;�|b�|ҙO���D�|2,co>c@�iDe1c}�(��Ǵ�GC�����X��N�+1�X�<T�,�Ъ��6��y�E�
F��.q��!5x?����~��)A��f>�n��yp�m�6ۨC�
*9������+e���$�Wr"�rWr6���6ަ����noۢC�Dx���@�nvuk�ꈉz�Z�fwwH�h�jmi�w�&/M�ED���z��YJ�j�L�m%d��PS�f͖�Xz��g��/���U���E�1>ʷ�ϒ�I6t�ACА_
#�&n�
�
Y��i#~��ߗ�4����ݹ�q��!ǂ��m��Cݺ�?-<��bl�bb����D]tc\X���b�!�v�Pawwz/-��gK�6��`��b_�B%�m�рԨ�,�ʼn���D}bKbkb�y��	�݊/��ᕩ[�#����jЊ!O��W��ͻ��[z���j�(lp��;�֘�ܽ�Lh��<?w�٧(�͎�:?�a�R\L�%>$�k7p��RŌf�$^��8xS2�����2&SQ��j��Y�d0�2�~u\T��$�Zc�T0���Q�tX~�,o�+N�n%)������^M�)�����ki��\�^��c�l���f��f�!�{€��j�qVU�>"{{b�_b�iy��#�
��>/�Ξ��O!�b��o�=9��������Ϥ�^�z:[в�
K��.����0r:�J�.LGwh���K�f.Ydq}�Ry/���#Gv���3�69���v�Y����u��*VF���R|��6y���G�o�i���x��ƅxf?)آ�����R�c���7�)Uz&=��cFm�-�C�c)���ە��N��� �+~��b&0�fͥ7E}��V~��\�V���V3j���][%���!$8�8*8�8j8��H��E��~J�LC���52mcY��	FܨŇEo�.2D'Da�������2n&ܲl�[&&��'�W��L/2��D�Ζ��^Ě�S�h�%�f��7{�W"�o��V�1/�D���BY��l���ElL"Ĥ�Kf�L[
��ߛ�v�*=�*7�ػ�8?Tc�5Y;�N~�<�
���M��5�F�X�_e'���|����)����-XE�ϽW����pe��<�~��;�ݢ�,�~�!���^�(z��Ƹ�k���Jh����#�L�犵���i�!�l��:��g�j?�I�ZW��_��'3��X�;�'HT+�k^�a������܄=��%�H�A�m�B:�t�s�r^<�}g�f(w5�g�by����/n�紾���[��̕)&c��g����I͙-�m��C˛���i�ѿ�'�h����d.&u���f.U����������_~Z�C$D}"67�A�W�{�t$~&�R��՞�b��$15�ǞL�b�[�|�1�$7�1������:���	�q�}u}uA�]f�pLd"DaL�j>���U-�W���*0د�_�k�c�\�ñ{Cmw��oDʍ<Vw�OluX��rEt�����LVx�7��>��Ŀ��/o`�eSS"��R���M�s��P�nG��`�(ư��c>+�A���o4�:A��,X�e�l)�gk?�*`��q��K��7w����=揍U��*���X���J�[��(Рr���
��Ϡ!��[XZـ
,F&�hē�`��e�! ��r�\]E��������%����VWG�����pK�9��_?��%�$�0,�~�bw{b�z�"�+;��f�ݸF��Xg�i�J��tU"��|u�"]��rU�NW���ϡ��E�b��.Iuwo��%��Tdvm�6J~���7��%
����V"ꊪt�T���+�vu�#+6Yl?ҕ�]I�#��_Ş��-u;c�d�c�?Q_QfZ��Dk��@���%W��%���i��
q������^4��e����`��9]��3n�������g�D0�d��������v�D���Qb)u�Mt�(5,7me_��i���e�e�=��Z�Ot�?ӄ��DO2:X曟��R���%��1��_���_]�i�vKci
W�W+{e�c,��Ҭ֗q�]�֔����é#��G�]�q�o\v�׭��e'ޚԟ{'5���.��(l;��[l03���4P�^B�K�k��0���������LBR!B�H�F���p��էYX'Q@Ы?���Xgν]��G�R��vw��;��C��0&�ͭ�.���v����y6���mu@TJ�auw��*,�q�.4�7�[=m��_\�X(��բ)*PVoOK	�,����U0;	ĠON����������C�7���d�"��(~l�
�]X�1L9>^���߯j�O�Z-�K��)���ZO��H�{Z#JY~4�y����v+�a�A�ﻻ:J�@�=~���"p���4�f�=�m�)�ن�����\�kki�(U�3�K�19�Τ�K��������+W�tK��V֕�n��j�CӻI[Шr̰�g
��uuo��p�}��4�uF�cR�e��A��xK�s�vGOK{��U��!�����j�粳3�u�vwGK[9�R�J�|}p����C^�h�sO���$䥕�vOgw��}��#�vv�y6H�SC(�x����n�Ӻ	ˁ��"<��QΒ�����m��ٽ�}�����S�q��j�C+W���T˼3-�Q�����WLh��en��yX����B6�+u)��>�B_jd�T�50���6e�(4��vb���F5�hj 78�:]�����.�'ȌG'ǯ������X�l%�QMz�G%3j�K_�s��ę��S�ԥѹ(f�(�b�E���z
MC*S��g�˩k�DU��V�R^Fdc!1"��1����ڝu;���4�
>\�}H��h��1�(�e]y�m������A=�_��s�c��7 �58(��e$]�f!�����nǸ�1�<8��kб�:_>�X� �r�Az�1�w�a�8�݊�c�8F�A_�s�L(c�Z	�:�%ǘp��P�]!�c<�s�	#4�����c4�N\(*Dz}F{�7��Q]ww>iD���g̺�H~�1_�A\n��O�Ƞ�=�̨�S�'��ԝ䷽�T>��P>g�G"g�W���@���	�\X��A_�����48�H0��|�ZhRý�Gl��±�C4�D�a/�~��6���*wq���
q��#�9��8�q������b�*��W����r��p�^��&T�Na�eQ�C�kAɂ�(Yp*�ԏ�X�t�:E�թl���o�ƍ�m��W-���!x4�ۅGS�C�0jw�Ʀ��a�5������w���{������[���w�WjlM�(�1e�p��V"�����^��Gb�� ^*��kU�"b�����{o��i�^eu������򀰬�� I%[88���\��+8�m�u����4�R�)�‘�V�������;��Iy\UX|P]~��s"] �����v>Tn%+���e[1P��~���*��%�|9�5b\��c\<�m��t��A�@�r�}��.�=p۵�G��
�:�~~��3�K���k����b�/aQS���ٸ�*/����^n�%������G-�U�I]��V�K�o��0e�%���᭥�g��ФJ6�#���%}�{c�wRlG��xɝM��	U�ؗ���j�rg�J��Q0ٷ�^�v���.��l7	.f�o̫���i�?�w���*|��WI_,b��W,bh�V)͸�'e�����q�n��v{J�ۗe�=-�3Ǝ��p@�l)��7��~�*�ȮE�����n��ke�=���J��Z��d�0�p?����Ѵ�~x�	�F�}�-[H|�і�?���P�������ǹb�}Ơ�K�N�x�P5�I����۳$�$�G���C8=�
]e�WS��}*Q��h��"�9�YLԂ �Ǘn����"}����!u��~|�ϋ-�77��8��#���l�����,Z��zσ�ًF�M�c	��Wȣ��ܗ��D��A17i�	�gT�(�q����Y��z�)�e%}��SK{���nݴ�����R�eA)b��e�D��/�'�AL�.\g��D��ҫ^54�0>��6�0�~�LߊRkj�}��g��=	L�e0���N�;:鈔�C'�R�r���A�r-��n�.����Y�Vj��G��ݦ\��s��?(����w���n�H�>��;)��P$:���[��?+d⿐Ћ��.��\r��!�\���]^���P�6�Հ�A�D�)gbq���ٶ�ו��M���ψ!�>�Ǹ���2�fe�ʠ˩Q揉�S��G��"��ZG��T�X z�L�4H�)=�3�`��8��F�*`�W��H�Uъ���w�����R�#��m��kR\��d�_����s����'LI0�/��M
���M����@���iU�2��.�&�����g��,��@T�>k�9�Z!�6U�a�|�t�E���pkd����f��F�=�~d�ˌ7��?o���z�V8i�R��������g��P���^''�{C�6�Mmfi�Z4��:�K#=����	�nJ-�_4e�w_$)H�¤����N�|ɔ�$�E�e�f����f�����~���L��Y�M8pb��k�3�M��H�/U��U+Cd|�7�_����t�'%�פ�=e�̟�\pMW���R����L��̖�'�1=��<��8W�)5�}����;��O!ηTi���A�l~��c��Q/5C��U���:�z6U/�V�<�zR��B2�y��M�A�v��*�BS����ʫ��	���q=�O���qo���������ܸ�˚vQִ	5��–�,�p�+C�m�Ҕ�VV���.�]�|/R&V1��t�ݿ1S���[�P� W����A��Y(�]:H��� �b���������݈�P��C��o�x��R�
hn�&�eh�X�;2Pݼ����X,<��Z�G�L�B�����J�b��Y�u]�(q���&� ��'k�m��V�5��D���ֳ�:|��T:X��n�|ջ�r���Pn�ŧ˃�����n�Sb/(t�z�|��5��J��6�i���F(�+��G�;eK�
�%�jo���]�-g�w��l�S��e�����\�]U�)0��Y1���{�=�.=̇���f)O�.G���h�i�F)�F�1O����u�A�����(n�]���G��~j��P��+�0Y���e�1o����t���j��ɾDv�B����2Q�4��擖���_Gk�y�5�x��U��Li���&��J�c	E�V�D����)���e����L���K�S���Dž)�{G3ю��5�"�}	+�U�(����0@�l�v�.��tT�	���P�X����F����'�{��h�bu�t�W���>I�Q�Q�9���M�f	�.��(jow7j�<d�w��w���	o׻LR��r�L�	�Z��\��)oEwI����� �ы�u?����0b4�zf�|��@A*��ƣ	3;0��>���~o�R(�QP�o���55��/(,)mD��1Sp��U����6OO�j?|\K��41K�V��+�����}5e�؆3��g�Y�XQǮp,��l�*N��fǏ@X950z��1�r��v�cu��Ԍcn����o�����6�o�y$��od�)��ѿIi���k�HrV&�,�ņ�j"2��~��6�ue�"`��L"���?&��v�v�S��d	�"Qn��t� ��$a�}�x�H�mY9±1��N�Z��ۃ%�3�:4X��[p�F}�[@�����x�h�����YѬy$n��ق;2X�1��b�rZ��P��g� ��D��o��T�1��'+�~wl��Pϣ��J�>�H��C�2�(�?H����aC���?�;MI`!�A���y��mʖ�HQ�)��,��b�u���
A6����p���HG��E�a��NJ�r�����P R�9C|T���"�=|��F#����'j|�^1y���Z+����7��ك��0n1�#'�v>y�	�#C�
!�q�p ]��K�v;j�ƩlY<8�X
b �iE|����~i����J����M�����Hg����i�	.� D�,����d_nQ��r��O}܇���	%)�M�Z�nSܒ�D��DՋn]��tS��-���JS�K
�c[��Ypc�k�۽k�`��T�p%�̓��<7�$��Ɩ-΃/:�g�^#�L9{h� ƶ�N)�,wԧe�.��qK@;h�6����{�Q�@�.��UQ��ZH]���[�~vI��T8jd~����m.�kt��@N˪�^��e��gn���Sw։B��\a沊�h���"��4�J����u����m9�,oFJKj��̵���%�/�\�����.T��y=�x	(�%��Rп�YZ�֫<�Q����'B<q���6��1�M疉Y��@����CA���u�uᚐ�V�AX��4��
�:$j7�rm�"$�k�.��v���C#;�=Dњ,	tol��J�+s4-ۀ��B(D��4e�f�A��p �>)�oQ;�["#�b�c�^`ƫJ�'*�(��gķX�	Ǘw5����ZfѸ!���M�ϼ���V[�H���g��qa�BM<:`��쎛&��$��7��Y�1YQ l���M�S"ى�R*�vC��΄��.q�@"
�E�n��%�l6-��,�G��������?skQ8qj+��i2�L����3��~��w�Yկ
��^��L�*��lM�Z�~�V�
��
ƞ^BA*��a�(o�řI���l�o���D�;��)z#�q��Z:W��R����0
2>pd���pH[ݝ-+�FO��VC�L�軋������֡�)��Vb=!N:�TZ[�c�:���%-��vi��Ѭ�A)���HE,�&�
�iJTE�NN�;�q��)�Nˉ�r%k�7ԑX�D�^*d~UETXD,U_Ӻ
*�:`u~%�F�m�_�.oX��&����S�ii��4�"=-��UD�S� #
�A�}��ܝ6:�]�u��w���Q��_�K�ڣ4ѪX� ��
n�9��nFW/���&�-��m���dvN�v���5���Y�I]�A�l��������V$!��]mݽ+�����YY����Zrnwu��JS�we�SG"���׏5t[Gם���Oi�=��
o�,Xx@D��B�"�WP�Rs�Q�`X���N�WC��_hk������wuKu[���/��G��(��,L08"b�'���/���4��e��o�t�����{[AL�	�Fz�K=���N!>]���P�����8����9��'�7�;<&��e8�,R|'xPǺ����\%�G��O �W������x1he^��8�q���Y�s̾0���ƎFvG"Z{D���X
#�[9b"��s4r�@'G7G/���q��(GA�~��!��9�9�s<���hkG���=�����E�䏨SQ:��tN�Ru
!I�.\�/\��ru�T�S1l�00�T�lް���ׇ�W��ی�}�b3�nS�hL�Y��߷�jqy�A~�g���2��9�&1���+��Չ�"|�wP�����[��/l�#�m4��ek14���K<�!�P&�=z�V��m����rs1ّ,2 �9�e�:�ۣ�n��N�ٹ�'��^S[ӻdz}����b\����?��=�x�2�=��	H�������{S�E�L��b��T#)�ֿ�ϒ���	�Zt�p�����HϨ�A�T14:��l�X���P�E�v6-��]�/6�M5,"Zᄌkoj�V/"3W���=j��X
���,�u���	(E��c�)=���l�nq�nCP~�۴Q�y!�M�'��Sj�%����]M*S�"ؿ^�@��i6�.J�T��T�6]�o^�r�W��&%n��.�����>/E��Ф����I!2\����|$k����s��RJnR�5X��q?�Ke�����9%*Cj,�y<.=m��c"�C
�?�#�ty�����ޣ;�$�
o��"�N��_s�
��H6z���{pq3��;l���|�/�v@*L�+��9��J`���q]"(s�B>����/�XH"���+��E���1(�+�u�8_�q�:�/�hUD���h���I4�JyT��ݻS����SE���4��u�EV��u�x��Q�2 ��w�5����W+�	v�Wo�� ,��<��]�#O,��������zp=p��d�������C��O_PI���GOp�e�m��۶���ѳ�B�Q�����8@�Kϙ>+�f.�x��̓�"	�@�t*�ۘ'(S�6ȣff�s��O�ڕ��8
�5�nwR=��i�,�9$�����ǝqܰ�o����Je�'NTe-'�w�:��m��*}}�B���z�k�Ƹ1g�!�4����:�!����R&R�R�~�mO�5ڒf�=4�w��U�f/߯�i3�Z�\�9�jK�3s��\��#���r�2�y=S{�mU�s���m5[�����f{�

��-0��ޕ�x��wL��֓
3�._�S�l�Gp�e��ظN�&���Զ:��G��Aƒ�W�`���u�Y��g��˗��s�W�z�۶%Ȯ1j7q�sĶ�;X�>�^��#[��l� X4L�LS�M_�
�·*���Z��]����H��F�G�L�aSl����S#��i���?S�N8���o�%�Qv��d��[6�{�S�$�½�)L(N��a+v!,�7���V�6��
y� �m�̼�:Ŀ֭��S���^H\�w�i�!��i�!�����4���!R��ⰱ�d�M9Yq[Nv<('<*�@<&''�/�`C^��o��p�+��bx/��t&�����[pa�F�Y	`��㵗�}�^B�q�u��]�o���R�^s܄ g�U�s�Cx#�S�n�J�$�B=���"nf����~�`�������*��c/�I�����KmJ�H��]�MK���n‡\c���0�ܸi�E�X섰�y!l�����$�K ń9�O%�@�/~�T�8��H/Mv<���*hP���Z$P�{4��O��q���'n4�ݤ��†]ZZ��S/d7�?>X\ZZtO뻛T2u��Q$�� Q�G�_�wIoD�U��)64]����2�ذ�,9h�JE��V�_���2�y��(#�ҥd�$������A �.�𙲛�ސx�}�����/�FZ|nA�4�F��.���
n(�T;��p��`��T�뇼��K����}_V/�0�F�~E�����{�����{	�CW�g>D9�ĽFQ^HmF�l|)YRu��n��W1Q4}7���b���ܭE`������*��!e�����T��"R�����,�헹�@HxA��J�<�I�  ZI�e7'��B�e7��J@��$ D��5�Ƚ�~p��?�zl.ߏ�K�4�.�������s����0XWqӻ�@8�*�y�
%�Y
�Q?(�CU�8I%�.I�7�Si)��&w*�E��w*-(,�
�ܷ�;J�:d"�/��N��E��#se�̚}"S�K�iw�8�̟����b��4�XF�4�qi7_��V���QNq�H�æ��y�+!�RL�[dW���RB�@�8�~qp���D�P���k���^�m���zͤ���z����z�,Qǂ��E�R��/]��
ߏ,b�p����5��y�x�K�n[���W�Ƥ�x���E�u1��L���ұRl��BԔ�*����5��K2=VՖ��T�rU��O��/��3y����Z�8/�����o]R���+��Z�C/��j��jr]R%$帿�:����Z�Q/)�R�%��J�M����-Q��NM�������5(DF۹o�b���+l@���S�L�$c쐰n�YZ`�^��U\&�����}�kܾ�6�j�x��0"�z� |��Ͼ��Q�'Y�C�2�����>51=���T�����P��9@�QF$ӠFl*�0�*��Z��!��ʿ���`?��E���'{0I���m<M�����dn�~�Yk�x�jE߻���Sku���o_T҅�K{o��/h��G��j`�R��"�R����T�c�7�ֵq��0S�[�	�Snu���#!�G�]N+V�6�TRR��S�paE��!ƖJ9�"��]N�Fg���RaU:llv�
�ZW<�t��ɱQv����1^�n�)�?[�QI���\k���2�9/�6�͊�ZK���4Ǟ��`}0	�x�<�2�x�ʨxe/|��,n�P�]������g��^6����)�1�a�:>f��U�*����z����b_��ݥ���[T��'2���"��3�Ljz㭙_m�"խ��]�]fȱ��$
,S�8>���͎�bˀ�z-h�+���wK���W�3�sN���4�}"��	#&a����"^���c�#�I�	�l�&�	��w�Y�k��0��`c���N�p�EA7�;�7Lx���#�-�%73�*�pgL�K`]2��~P��z͡
����E�V��xY6\�f�d�^eI2�JOGH��ۅ��!��N!'�BN4%�(��.!"��h���r���t��g�O�C4v�}��e+Q3i�)F����"�v�GP�)?A��, �fѡ�e.����R��@Y�W.�ϥ#*6�
�5^,��ܠ�
�b�(��K��~��4��VI�vc���6��B���5ƭ
j2T���	:�d��1lw��r?쁗�&�3b�{�Ѵ=d(�n����kaw=EU���:�;U6�K��v	�K�=<�g?B:Pw�
������{��_%�Md���d����U����Q�x!��=q5s���pu2nF��O����Pᅳ��a�i������*������u%[��U	k�ò@Fo��׼q=�ߋ�*�����t��7�_=/Q��)�����+� ��Zy�+����L��YY�5��׼H�m�J�}j��@��۷�,H��q�����Y�$�����WҶp��k+4�êwl��~�����ȋ4>��tPt5���,%��OO��jF۟�h48:�V�d}�i�pF�x��*p0C~{A�� K���!����5��ə����
*�^ɭ��x�����z�ɕZ*�3��m�l�^6pV�dƏ�-Z��:�X	g��kb�Q���l��_e�����V�Lu�{Kk]����F�}����ݽ-vO���oFH^(�)�����ҫ-�U��Ƿt��N���U�pf���^mU^����KpW{g
�O��>|({h
����P|/vOwOK��^�����sghB�Zz}���Jc�N�QՌ�#O@�Z�L�8�"��1���)�G�M�<�����x!���#�3`NL�=5�F�
�'f&��h�O�L�Mͤ�Oi3�� �v=
��+8�P�0�Q** }�@�� (W~X�G�-�r8D�:�d���m�j�K?ŸS�QD?,L%Pr�z�I��1	K����8�[�*�����L_�*�z�k�+P:���R:'��R&�~r05673"cZ}�L�"��幡b�	%"��I�2S��*�k�T�Za~1�P����1�7��`��Е�-}���.�\�t�b�co�QoYv{�NŏFp:�J:X�NSt������UH����Y�k@�8�'"�����ə�Ii4���b���~ib�A����\�.��$��2��+9����VW=q�md�`�	�J1Z�������Q�;�O�'���l��k<�o�Ö�荒�&T%�z�]�St���^z4r�����j�*��f$�'� �U%��$�,ޫ���e�_*���1�W��#����١T��Nu�MՇ�/�ΚM����'�`�j�(b㠡#�[��KZ6��)܇�b��?B豼Ѫ*����'P��`NlU
+1�V:+v\��p�*:+(��a���mN��N�F?唃�sȱ�8��culܡw��}�c�rlP&�"���;��~��t�{Ա�{ܱ��=�M:œ�=��sN�U�~ұ�9�S���胎����8~����a��1�D����[��nS����U����G|���uOqi$�)l����c��]�3)�;�Ᏹ�i��Iȣ����v?�
��<��J�+�ّ�Q!�|��F��
�{8�r��h�h�h���6�{��F�W^��&4�ώD ��#�D�G"���l�	��) �Rq�Z����Դ��}5��B<enB�T�vk��8��%�E4H�-�� ��"g¹(�@>Ǽ];�Jg�A>�	�C����U@1
�MU�q���z�������i�
��K�%7
�2��{W��d���;q Y�/$�Q���l��t
�������7a�z(�7nU�	��;Մ�-�Hu���2��_`BY6�G����K���e[�p�ivO%N&w�h6��L�����-�|Z6uC��;#�:�}Ӹߖ�@�g�����f�{��d��vh��?��{��yQ	��ɀ
y@B�,����%DDe@@�� ���?�0����-�Ԓ��+S�$�%�Ie;�]���l7�ƥD՟!�B�B��F�"Pv6�N��v^קgS���E����s�Ǽz�T0�M� c�
�I]�P�"���������D���+�/�%R_~����m�|y	���*�����IH���T*곒J7Rs��W�T��S�1ΧE?��+go���X�~po�����[@S>,
����VQ�*�|�;0�����V4Y�Ҽ)I�.e�d/=��O�����HJ|ǖ���ן+gF#1��#����{�� ��v����O �8��Q����U�S��-ߏ�ݤʟt��d<�È�>�y�d[Z>�g!{@@����O;���K\�\
�"i�|��x����aᱼ�� O�$H�ǔ���@KF�L�g�3����hyӸ��;���{��c�~�ȶ'�Щ1�}ƽZ�&,o���TJOF�n���@��$�4N�*�퍳ǥI�������R�i�+�Bg���>��
%'U�%�&,'���*�W
5��~�F\OV�O��X`E��d,�lG���u#{����t����'p��f�����5#_���F�!�q�E���F���u�aygA�����v
������������7q�*�9m�Ѷ(d7$G����ר,�7�GY/��/�lQڑ&$����HD�n1jr����艏��?�����r����7\� ��������<RY^��]��_�B��7��~�xy9��`� �K�^���$��#^T�Oo���0���g`�������4�1���_g;�{
�J���!��?$
��48<1c�fh�ߧA�~��!-�1V����A�O���x�u�(�(��l��~�3Tٍ�b	ޝ��.��IH�1Ne���g@$���41,�㴇��B�$��4E�
x��(bR��4wD�a2������T�����6��C�_z���>����>{���H��
��?���Й,�G>�D�	d^M�?��(��2ݦ.�F	+��׹�3H�0�|�_e억��e)����u��J��4��%fH����m�z#ZG~����ɞ�#�O��faa1�Q��4���D�E�#�L��ٿN��X"#�R	���^�CJL�K1Q3~�k�B6�4>bwd�����X�gL㕀#�X�#S)$��1X2�+������Vnj������)A�����ɖ�InT�����7���V2�
�Ag����^��NJ�7��,)K���?�2_���wo	�Q�O&)�O��1��$�	�	�/ڨ�����W�y���+�T��uJpc�4=
��YT\�B�x�[�~�^�&�2���Md�x�����*m,�j_���)����H�������0?g�u���Ƃ�+�u}pHЍw�1+BוEʺI��	��k�"�kbA�S��2i�_�2�9�LAɐ��M��ȉt�ϫ<ܢ��V�P8TU`�7��ɭ�x��d�j��/�7���,�€2���"���0lH�E~UC�̻ox����U�����=o-��2��/I���1�Y�=��~��E�M��4R�g��F�@mu�>k�M�[�zV��6E���vE��5��B���6jnj�_�l@*HߠlhOe�'SG�2�8ȶO�����WS��1Z��I��=gœE�4�v+:5��d���䕷��"��|����9h>����Ggr�#L{4+ex�B��l�*�^��ʍ�f2ӣ�����eL�^E��ۗ�6��V���RX��df#*����{�0�ۢ������R��p��)��
_����-�����֨.����l�"�U�lgKԱ�P������u���`�!�W����j�o����s�F�>�yM��IO�#G@�вȦ�E��k��1Bw���@6�2�d���`6�2ʆZF��p�HQ��e�̚��A�����+�^����*0Ǜ��^�:�̞�Yv���0�2��>������J��9�
���&ld4u�88��S:���'u�#	�f:3���/v��H
|����wz��R9�+Il%rUI��A��]0� �؀�.L{Ͱ�O� 8��eLI*Ψ.&��٧$Q>����@Ų��{�g%�
,MM����9G�|<W<��6X@}7��wǫ͸xT!�{,��7d����	Ln���������ۻ�l�:������T�`��t�Rց�@I���e��

ˡ*��%:�P��*��]��P�u�[�c
+&��z@7F�H>�?�ㄹsH���Ү�٪u�!�>�]�X)v�0nWk�{5���\y�+بAA���ڈ���jؙ�9"���a�X�E�R�iz�46`g+��5wmN90�\��C��陹��(v��|O_L!���N^��5�j���ˍ�P09K�	>6���̌�E��\�dV���\=�N��������G�qʐ*ң_���߼�{�S��B��!Cy��x]��̋���h�[
:[�<�cU��BvT-��%V՚+|>�д�*²�bs���KY<	�Z�Dx�~���e��j	�.�!fҜ̬��Y��W7��L͒��ώ�3��H�c��v�(�T��WA����.�yJ�IX-�@6+'���
������e�!\^R��1���2�/]�r�
�ř�e�P��LL2��q��M��T�rK޵.�\S�<�D��/Y����#F�+@�5���$tFa:�e�Y!P���v �VA�[��mk�~%��6>wm��y�s�܂{����U�Ϧ�sʮ4* 	҆��zK6��vm��;�T.��{p��GN퓔��
��e�֋p����}���Ǟ��Y�ru�gp��L$�쬥
�Q��|e�����^bd�JŴ��bBC�ک��s��ig3��1y�n�
���I�
�����m�qV�.S���t�JARF$�š�W�~]�Ԭ7�Հ32"����G�jfy{�I�E�'�M@zeD�®�ڮ�I�I]u�����)!ʽ5��/G�D�KB��@�շ���G)vJnPr�@�c�&�q���[�z'���'@A�R�8Qv8��N�n�T���>'��}ە�o�2��Vv���	dޡN�^'p�	���8��9�<�.8������N�'�(��)�=_`�	d�`�	L8�I'���v3N�S�>'0�sN`�	\u �g��N�CN��N O2Os|�YKYKYKYK�8>���.��Nُq�	�?��q�,��9��5�s���"h_�<�����kN�Epÿ��K�S�2�W-�io6|pO���.7�O�:��߆��|��yn�O����ȟ�����'��=�Ӯ���v���{�{�7���'WwI�����0�.�9��h��͑��������?`�:h��"��ND-��9>�w�6�}�u"bT"�@aHy�֔���R��#�0L�1.��rp�1���Շ<�<��i[;���)v�&r��a5`!i#(
�BA���=X>�x��8�6�ۥ���4���6-"�����Q�ȇF��'�����r��'�����̤��d0٨/O'�&c�r(qL]�gbJ��n�l�xr�<5��ĉd�K�8�͎��{�M㤰N	��4�Cَ�gۼ���t����`� 1n��&����'qt��rG��TN=�Ivg{`h�d���}K�v��T��M��9�}nz<�7Y=`*cQ&l|<ٴ��1�%�f����S�Ժ�ګ���O��vw21��8��r;�,����pa�IZ�2�������U��_x�;�`��A.{OPПK�G���}"; ,Eea��D1<�
����t��?��DnĮY�-{��$E�/1�s����>��~(��J�~Ψ*�����}y�#F�@O��I�e{h�g�u?�������5i�F4���,;q�:b`Br�4>ix���-�1�X����c�ˢ�G�.&�s�8q���f����YC'Hth��%j��D��,�uH�6�B���q����cM	��2��&=�Y��>�:�c����	���A_2�q�Y��U?!=�K����ˆ���Cu�&��+��}�إ�FC�a�=*���H�0��u�aT�>��<��׌�z�%ۧl�1b�)G�#M25���-����p�"�b��]r�����:IԐD�Y���TOO#�X��h��.��2�=teh��?�~��g����c�||R���`�K�8��1{`�I<$J�D�"�I��-[/�: ��$�"	��J�EI�!Y��ȑ圎�8����s+���m�&���i����hs7i�F��G������ DѮ]J��ݝ������;�G��}��g^l^�cj`�&��<D�B�l@녫w�b7�#�Zk��U�y����o���KKu�l�)
GQ�}�W#����P^� �
�N�C����`p0{����e�d�Y�ƚpQ�ju?e�s��?'�Zƀ���[#�%zx/�N��[���a$��>�F�?`����Y�A�߂:{��[��c�z&�����hUW�Ǵ��>^�?�!�Y��tr ��/�9	�!�p�	�^�
�dԋ�8l.�_�B�-d�Ԓ�2��=�]g�|�5!#Au.���f�ݪ�9�RW0�?ev�,1y�۾C�ގ&���w��q�.�K��pl�<{��FcQ�J�He5�CR@H��ò�20i�f��)�Ap����J�zD�b=1􈋈`�.���y�I��F:�H�NG�	�
���M�/�@T��QwdU�(T�
��$(�Û�nHg`CV٬�ÁLI0�>)Ml�x��K�P����'$�T��� �EI{ԬV���Q�SRO’�˄��N��ܥ:|Ƭ�q^4J��g����X��R�~Q��%17a�6��]�oJ�;�I{�����)icý�2�^̻f��!�I-�akΜu8�ߣ"��8���d��E�M�:6R^+�^�H�(���3��[��z����������6ǹD��[{�k�M-s�G��w���E�����wR��,��f��@��i"�@���ԋ��"�#�}���9D�U�
}{q�F���C��ny,�9�����=9NP���X�O�D�����<?wiAC�b��ֿ�m�m4�M���qu��Q����!Z(X����IA�8��a��iN���-�/������lJ"܎N�ZW���;�im��Fi(3��o�3�W�κ�1_2E̽���yj�_�&�G��<�>������r����Oͧi0��O�t�t�#r��F�G���f~L�>ây��T #�ߴ�mlIW:�f�%�5��- Q���BٓZ'���(�����O�rQ.�gb0B΁]��zpI���wulE2G�`�<4m��[�P-ĕ�dr����*¡��S{)�~��aȓwڟ"="�B��\��e�l��#ZF
.���[�}!Mx.�>R�b��l�z{�-�ĉ�A���!�r�ݼ.�������=�{_Nk�����ù�;�ս���P�r�{�@_d/p�Z[r-��uM�ƕƦ�8�{o�A8�k�9�ky�݃����G�nM�k2?T�	d0���.g��9�}�ޡ=��[pm�{ogwG�`xo�`��� ��N��jGNW��Q����g��b��3x��i�Jɖ���o�N.���}{�K����-t}����2˺�h�{��h�����|�j�BG��?r;x7AB�mE�y��1�cN�$�K�'f��".傽8y�(t"/MVi��e�D����}9�
����
��g�'A��Z�G�����x?�|5�� }v0���R��g�J��wu#����+��۳��x����`w��_��̴���R�)4[-1u���`�A����4.�ljhh��i��`c֨���	���ĝd~��7�����t��0�%�Z�ISB����N��Gc��˒�O'V_b�Xw/)�K	wZ�^�Q�=�SS$7��ͭ�Y�=#�*��=l[a�@�����O����ѯ.˓J��m
�)�-��K�<؍63�U��559�)aA��fEl�U�W��0�D��*�X���5e�DSW	&<`�b:���LKS���nI�X��〰���Ѵ�%T)�;O&�f�X�$b'RJ�-����0�ZX���R��*H�U��o��J�OR7��'&1�M-	OR�GM��e�?b��j{߬�\lr�KJ��Rs�g�+N��1�d�b"��/t-��dl
���Z�̒(�'z��G�˧ĸ
��WS�+�
fr.[����+8���i�����dB<����腀�۞�5��{pg�k�2��o��w`��<-G��	n+HE-Z``۶�U�>4%
� j���j�V�c	�x]�#k��`R�:���g"�/L�X2=1(&)���I�l>��	\�����~��Y������k[9��@������{�x-��;�&����N.��׳H�8����x�3lc
�Z��>�2\욀�����ԙ,!�1��hKq+�<>1	^��Z*d�d�qx�2�w��v���i�0y�wDv�2��\fJ��tuw(�Sc�i��M;��ɦ�֦���T�y�ٳǾjZ�
�,�Aq^���@wז��>��@��ge/�w�B`�a��L�S�3:yP�0�^ ��r�
��`����}[��\�A
�{�=�A�fww�|s����	�t��MM��43eH���!Cʩ@��('�}�N�Y��љ����.:N#�n��Y�>l#�|x���WK�7�GO���WG&&�Z�����&����-����0�Ǚ�"++)R?�$�������Y�;;A����K�\�q�Z.��R�K�Tɥ*.m&��T�d��`��� ����\Ij�R�ڹ�%!W�kXi;����I�iRyƐvr��+�����K7qi?W8J9��"%�sNp�Φ8��l��Y�Ns�?�]����s�C�{ W�0ς0j�;��K�Y���|��G�>�>IG��'`���S
}᳈��#�	��(蛸�m���!<��(�T��?µ�C�)��~�������@�}~��/�G���0W������n�;�.A��t���f�Թ;9�y���-���ֵs_2�p�I���C�@ػ%y/�N�I�6mM�(`�%��^���DZ36L����f%)d]e!��}�uJ�'�_�
�$i{�飴m��v�M�Q�<�RR�P�ЈЄ`����t�\/t�M�j�f�G�ا:�O���T*kk��lȕd@})��y��^�yJ>�^�d'��p��q��)��IVIn��a���,��g������F���M0�rH��;�0��wa ��	F�	=�����8,�ܥa�Ạ-���k�+���u�U�UeHղ*�U�{Y:y6BZ�mx���9����`�&-�W�������'�V�K8L��a⎏�|�8�Q�l��0�p�\#���X���fr1�9��T{��_+zS��|�y�c�{ ��>ob�V7i�цH���PM�֛�����A
�7�ƹ��	�"�
u�v�pk����1whT����i�!��9o��q�o^0��n��4O�9k�Y6�ъ���z�w��דƸ�T�7��_@��G{�5�}e����Ձ��ǶA�v�q�x�7F���/���Y$,x��"gZ�fӑ�c�j�������`0m0�>��~�k�^�?��EOx-=����&=%����h?u7�w����PmdP�(��b髢�͐i��C*X�\���>�����W04!>œ�=�ioa�.#��g��7���!�ʭr�ER�7���&��.��!��������<��!F!�b��0#��w3�y#|��—��>�]a���>�
�;C��_a�S�+�̏�9V�����R�<���8[������0+��G�:�~��a�X�poA�?���"�f����[G#�}@�%^�<�h�<�z���X�i�
�{��Z��pȁk��up@87V��@rpl=+9��,E��U��B/��;��^��9�
7�37D�U��V)^�l�>?5�,���c�Ak�\{�QOw\�ߤ����L�j��(Ey�y���_��y��1/ Zq|�8.�	.�{ �	�Z��H��L�i}�t�K�t%�9��L�6Ӎ��q.���s�%o�+&�ޞJvGa�|fXI�Űc�d�=]1/|oI�
LU�qy�Ena^M<�Y�m2�yB���:��3ύeÀI|�o1�!����$�Jh�l���E�Y��ݥ3���Ԭ4L���p$o�dc�5���~�>�߸��W�3�sX�ǧ}!��3/|)u�Tq�����GB�xV�G���Ƴ������,��X������S��+bC�
���":ܦx�X��,��&��
���ez�i�C���Ə��W���)�h�x^�A��0fF� ����y��=΍���w,�0�E!��c�F��^��Q�o��U/�Ӟa�H��OL{���#�Xiɦ�k,^Q�M�i_�8 ��W��������Q����X�F	��;�K���"<�_�9/���@O��3�h�	[$�g;���}����Q������'�=ӾK��"��L�K��`�_Q�+x6��ܔ�%��Q���<����7�6�ݯ=xW�(iEMz�+�,f��R��:��n�>��&I[of%=�sҳ%"�="ID$9�)3�A1�S���x3Dl�%���q��0#���}%���_�'��Y��oAMJ�c�5��(�m�Y6M'>�w������RؒU��F��p,Z�,^O�����:$[o�[��[�z=�̀����$�։���]�hl����}�g�x\�;�u���K�9�rx,S�����Q_�Cnx��tm|(�I���=��b䛘\�t�q!-�L�k|
��"L�C')��_/H1��9��5��y2+s�^�"7׶E�m�����Xܰ�Z&K���/\x�X�.��o��A��}_,p���g.>0q²CX�Yp�����c����f|,o8a|I�O8�	L�Xz�,�KO.�Wc?
���ۀM<�3�D��[,.N�1�����9���"�\r��jL�M\��#9D0,�4��B�i/�����o�䑍Y绒(?�r�ߊ�Ⓢ�Ňp�l�c��DS�!k���7�#�-i?63�����tQ�<$�0��~b͸�8���}elZbG��Bы��s��;Q��x^�~aW�y�3`��T����e�oC��Kگ����bvi��s~�����q3r�P�~c=�,�G�y�;��9�j�d��L��/�h�X{�>q�Mz���?���fd����!���VF�O�'�|Ō��f�kbu�F�o�7��^5�#�^�	ɳ�Ǖ�=�HC�6�$�6UN"<*���Z���H���ߠ�����?��
b0>���ؐWC1t᷸�Q7��+��q�qN�ߨKc����=Eu��b<.� E�9\���iҍ��
X �ݱi�'�}<9���?�n	T�s�DP���o�x����~I<��`�X��\��C�>1��/���a�M�?�anaUa�|�Ԍq�,���e��es�r�d���|0cjcH��[+5��$������K��+�2V(��M�ν`<$��n�!���Y~η�gp�ݲ�G\��48���a�V~H�vW^���g���=��9�QF;�y�2�(K���s��*?	�X�.C�����O4�Y�6����z-���!G2t	���0��#c�����؋��7>���͹�}�`HS�I���;������2̉�M�h|Vƴrj
�s2�T/ٮ��[�9��ǔ�&�""��z	A\_F�SB���^���E��ʘ�.�ʄQ� J�&dž��[���Y_��m�#�m��_��#��|�_�N�n�K%<*.ҳ|�s���`=����s��k|F���})0��/Ȁ�u���.yFT��t��r<��AtA�T}A����y�
'�R�O[0~J6�4&�R��y��e
0X��D�t4�_�J���rȽ�=�I�npNt1T���b��& ��o���W`̊o�_2�U�_��~���dk��3)�E��qŢbf/��2��=��W�T����*t0�j��{`�ck�+�Ũ77wƋ2�����YE�"�J���¨� ��7K�n���W���[�m�V�}�x��s�8�X܄\��^�]W��\��_��"�[��(%�O$z,ա�:��NE[����~��ٙ�Wh�Z�7 o���N��BQp�V*��ϡN����i��p�4j�ʁ�p��y�l�I����W\�^{�}���h���M�߾VXw���|��I{Pd���(��������2�.@�a:XA�U�!�����ıq2vM�WD�&��PZ !����%� �˃;��͌[��N7���͂v'�;����w-sa��yy`��;q:�4@�5�-��bb�H�X���|�k�#�j:-�����ޤ�J�����fMW��3�}%s��pf�Zf��M�-�3/1l�͞0�##;Ӏ���$V/7��f�_Z�!�H��eJ�p�63[GP��W���h���;�?��Y0p+���e��'�w��}�&W���;*a��e��YhV���e��p��'�vL��p#C����.Wpy#�+ɅL5����:��qy��r���
\n�r��r�Y�`�V��Ο�܀���
�AJ�zXV6B.��_̲Jp	�l�t����$�;\����k�����;�,ò������ѤG�X)���kp�ɑ
hk�3Z���(&2ذ�Z���ۤsB]�D�}T5�v��f�c&�/\���[�d[���7ʍz�(G�tWO> 9�F݅,
���%T
dZ<Z�(�u�^dba�#��
�2��
�0�4�E%r\�'K���M�o-$7�eP���<����������zߡ�����}�G/V�}�W/_���
�d-�C�1,
F�|04W�h�u�re��Dt�h�ud�B�.��@����D���2�f��P?@x��o���XI����Pq8�Xݡt(�,�9��C�	1��j�y��<­��g̣�P�4����y�4���8�NW-��Tr�۝zc�iU|$qbriN;-P#�
�Ie,1q��S���3�!�@#��{b$�c(��� 
��3L�RH�v
�:E�Kfy�ml�I��g��Ʉ���0
8��H����y��<W��@/�&�*�H�\�@<w��}�%ǰb��G�6H�ŕ#����K�F�SFv���j�D��yln�cp����},�"6�y�ix��:�|ܥ;�u��f�M��0q*�.�v��/`x�xES���˾���rWV�;�}e�F6;7���}���h��
�s�ê������� �X߱g~�:��\�����ZC�u������%B�vC��J(�M�S����jvJ sZ�is��v�K�>&�������2��C	2�Ku1�Y�0a�/�OB��(�g��������m�]X����Jkȇ" �гk����'�ž����?�mx�kj���|��l��4"c�{b'+3hW�E:�-ϗ��������3��U��̖P^F����s;�*	A��/�G)�S;�e��hsDgBh*e��xB�b��!g �ˇ���@1�xח&�8� �y�؉#�B�sz6M;�Q�>q�ԣ&�^���ŒfA��4�,����$l��B$�"u4�����.�Z��P�t��Y��u����r���RW�����0c�QfJ���)⪟�%�_kr�#R�=�G8��&�ɠ�"�p���긬a�X�ʓ�K��d%dE��\��A�1:
���%��+a:������9 �Ũ��N>M�3
Z|��)��00u�Y�M򤊛=�,�)��`va�t�Ŀ1��6��
��bl���02y�D�ylp�+�\�<���@ZO��ܥ([bޠ��F���U�C�ˬX��T�
�"m�*V:P1,x�
�^z"Y�EPK�բ{�L��ڴ*�VHB�o<��Y���d�e��c�0��F31 LLCn�4N�#F�d�eX2|��C8ęl�Dd�5f�)��4�i�+�v�4߈-�|�B�CnO7U�֫���j{V9��ni��M
�D�Xʘc�d����BM)�P{��e<�H���������e��rss[�sy���a�oy�%Ԗ�Z^nimM���BSUnml˂�y�
7Brks3�
��s�&��&�B�������)o��O��p��t���sF�1��sf�
v4�2�$�i,@4���t�ԕ�����r���K!G!~*������L>m��k/G��ԍ̋�ʲ�vA���q���p�d�F�Lq�3�#�9�āg�{���0�g�<q���QS���&�}�LSC%���5�ѐbG��si,bf��$�Ө,%��.�y�����>�
^0�b�s��?�<��YS�qV��A$P
� �b���^_�`���e?�h屜� �Z�� Kri�+�$�h
z����WJ�ڪ�a��M9�%	�°d0�ٝ�i���ae�fw�:�b:���@�hK��T�[���>V�J�)���P�tH��������!����ۗ0L��+��|�I�]��xio[}�4�7����~f=U/��"���& ��:"�͸f/�/��3�Ғ�Wr���W`ơ�L�_'�Ce��cQ
{S�:\�*Oyy�,�����b�O/�K�\�`]�[��%�0�Ky��z�'��Xy���F���{oB.���y�Xs���M��`hЈ�R쐝2�$�
�@�8�0Vhnhp=� Q��+Ph�AD#�L"F��`�Q؉��w��ʉh��Q�r%SaZr1F%�[0���{a��\�b����»"��{8;G�2x���|���E�xk1�q��*���"��a�ށ4��A�Ƒ
1o�C%�Ba�T���H���(�Lp T�g�D09a!ĐM�s ��@~
^IVރ-YX��!{b�`�BkUR�`�B]��6ږ0�koT�4C	��[_ʈ�cRS�A&���FD_��=���$˖��������'��Ld�s2'1y�b��`�!"�^�K�3k����&���Ͳ���Č�xgN��Ng�����n�`��4��O>����O���;�-�
�W���lsYnq�Z㯓\
�9�Xa1�'^��I�R4�%���}Y
�`�k��ȍ6�����N��|\r&�1\��ܓ��S-&	�э���'h'F5�D
�D&ZØhiAI+�;���^��4.����m�k _+�
J�Uij��?Cħ�J�5�����D����/)֊J�E�D+Y(�""�Z�B)�c���J?��:��	"��h������z	�����v+�����6���6���0������=��|�����&#ѢZJ|ۖ��YB�h%Ű,�ݎ`,��n"���D9l����GaZ|�%sh�Ы{�o�^�/}^L7P�Y����=��.�O���\�w�$���ׅ9�pD����(	K��m�	�*���f��[����%	���0�0���F��4;S+{:�EH��fp�2w��y�V�i�aBv���ҕ���s�!�Y*0��P%��O��7r�N��i��xyҲ��&s!j
fESP	ۚ���¬>���kI�,��eҳ��ٓX�KoϑŠ�<���L�������c`�¶��)mm-���B�>�ː�5��JAaik��Jj�WԯTK�)Y��Ѯ-i[	�Op<��)?Wj���ݮ&��r�GS���ܘ.��-@�"�zl�،T"6�7���p�w�/�1���-!߆咽���L��Ӫ�fTע�]G�N̞���$�������N��fZt����(!e��0�̳r؟1Q��i�c4ߺ!���DZ	;q�O��.�kq�h�Ŧ���fc1߸R#����Z��;s�T64��٩�D����*k�%?L���~M!����u�!�3�0�9���z�0��RW���.�P����Vqu3�u\��������5�}=��������a���j'���j7W{����&���j�g�x��j�Ym\=�Ճ\���Z�!��{
����?ΊK���-���e�F�
Ve�ِ�q:�&H�Ѕ�����|E��؛�od�>���n(�`*����)0�5��I�D��w��@F5�QZ8v���0)؆��mTg�����[%�wUڦhn�HB�Z���!�%N��FI�|���Za���F]!Q�R�{��آm�/f�b�!���X6�pF}���I!+q�縍VZli�4/���hI%
��|L=����a��)4��C��S�a/*۩�F�l8����L��5������>�L_C�f��>4߰w�؅���9X"� �	Q�&"4��E�H4Pq'Z�1і�1P���Z�	�=\G�&}�^��#���U�?}�ق^iN��T	���ǝzy2@�σzE\�Ց�8�o��j�W��UO]^v��a��\�Ū~�
�g���,��^�*��-V=�!c��Uz��Gm�UA�-�HB<}==�4'uԳz���W��3� !�L�L�/C��nLRS���u����X�tW��002��]�b������a�T���D��p
N����2B�����zJhzQ�t�x�TS����]/��ݳ��z��^D�ލ]!2�w!;�71�{S����(ed��Q�|�y�-d�0�Պra�T�t��K~��/��(����^�, �Y\���*Tٵh<@�K�fhZzO����X<i��@��{������/2V�X~�҃��[fz�Xx���G��&�^�y��Q��j�T���Hl��<���0�9��>���y"�Sv� '���
���ŀE��2C'$oN5Q7�+�mɲ�!��c�x�?qS��:�~R��������c�d��K��;X{�aX��iX�t�9`cS�P7)E����laI����fzUT��ی��m�(�w��E
p"{1T�q+�V6ԁ�Zt+1�ak#2D��?��.���[E7�.^�^�@h#2cB�N�<C�Ƅ�}�N&���U����D]Q7�n ���3��#�L�z	�ph�8�R#Еd��d��a��Y� �1�ub�П��$�(
�
��֥9:���39�������c�Ȑ*��K>�\Ov.��wy�������/����;�1��/rʭMm�?I?8�+</���g3��O���%�(�}k��Ɖ"���e8Q r��0
��+��
Mi�Rj MJB�u�ӹsh�с�[�K2�c&���PFp��;.�J���G���ĩ�F� B�`)?�R/��*ؼ+��'/y��0rGO���4Gd$�&��tX�(i.B@d:X�jd�S':x@�3���@�����V�a9䄓���1%��DELhB��J�u�=~{�}�sG�:{�$<4���8D���<���6��hJ��4�6��f�)��Qw�SmFt
1�#Zx@V��w�'Wѵ�.�L+�2�\6[��M��|��n�L��e16�	�s	>e:|*6q�dl�qȬ�� �&x6��v�Т�����������!u����R��W4IZy�B��S�<;�oW����i;�rB�����%�x5��Ob?4��8�f�&�c'��^�V	V}6�	\�܄��g[�;Ob���[=Ú�~+��b�����)�����=�r-i{�����[�Ej��p�4w"rV��S�ډX�$��X2<������0�V*����b.�r�������l�7!o��&�$ &$@L4ʄ�Ν���yWy5���#%��^.
����!�4�ձ�ņ�8�T�lu�o��!Gژ߀���]�
U`]��x<����
v%/ck�"�C lB�F��ck4�a�Y��P��,;ڀH���؀�x\9���VM	�&��PX���Y$��@��j�P!�p�������I�
�'YknP����c-�r�m�
�Ŏغh��q]d=p
�|���6�1Z	H�y�z�<4 +�LA����|��S%�1��
EM/]�o�ȹ��;
�Ov�l!�� �%�}���ӗ�}n _��S�8uy���4qo�B������$�@�;�� �
���T{�V�ʸ�`���}զ��S���{��
���Z=7cz�\,w�y����)���p�l���1/�i��D<����2�!n��r��.5�$�U��:˘A�k���8��$���ް���n$�~;Q�aj�D�w��}�:
/�Vv�$��Y�h]�<�U֟� �s4y�$:8� �%W�@�c�����ɽC�N�ITJ����͓(�@A�G�`�|l��F�OD4����;��P
ι}� 
¹K�+�_���x��E�g]Z�0Χ�	g���ڸ:{?^�-�J��EM§#���ց~~�6F\��Q�좦�M�)P�w�\��w�����@&v;�P�[�<?O�I+�J�k��d�~#�
7>���2>�j���c��b䡈}s�Ms�s�9*,��>�-ǃ�� ���H'1:@~_d���(pK�]�j>H5/��>D���A���a쀪�&ԔI@��_4jzj�9�Z�R[.u�=�"�t��:��
��0�V��W�Q��� YFF�;r�b�F�<�Ώ����*R��$����>��W��R��e.>l
�*ť{Yr�=��.�
5��g��=�� �T��#�el? 3Nnj-�[�7��<f�M�[W���斦C����r��6*\ք�MG +`�9;<@mC�㠒:`�	�eG��(]%V*8�v�eѩ�*��vi"��*56Epo��*�X�%�8�1Q�O*�F�3Nɗ�X�؀m6�;��*3����P�P\°Xy����l;V7�;��j��%�nZ�������3�Z���v�pk��9m�\��i�sQyN[7U�sQNFY��y� �ˮ�
�
��M�5��4�a�/1.����-/�(��%�(��c��|q爋��.�
�Y�.3�:1t޺qšs��+��ÖӷeF7��=���?f*ڛ������vG�]}{{�Jٷ��K��F�Ew�\��!e�%������^һ�^�Z��0P�(��;:���^Ӟ޽����Nl����EF�����w�R���o_���N�lna[��>�$!�0_��VA�
�ŒG@/m�q�0;i��Q8wꚘ&���~g�$N�k�R�^*]^����͟����!�Q=S�3��lj ҃�T�U�$�tTeӰ(۬�y���L�O/@��BЬI�w�Ĩ�p��KI��	�S�1D�����J0�2��<�h��|���eτ��|1!��%�J��81��+[\�f������Y��k�8V�4����-Y�ER�㖨1g�c��5�@����56���w�V�R����}fSZw�'9�������l�e��R�~U��ԭ}�]%.�Ȩ�����zfdZv/#�2
?�j0jn���8)�(��7]�z��T�ү�:�q~���ť������>3_
�ۜ^V�x�u��+sC���w��,S�e���w���e4��/s���2�ҶՕX�Ps�y�U.��î1�c�0�S+�7�Ô�	'�ӄ��X������I��d����II�Y"�4�TҔ�OALI^Ԭ��t�X[��h7A���4�O\�
~_���(gb���F%vJ�k��U���+D���4���Yb�'6.XQ6o��"�8�
Q��\z��ى��5
F�L�NOǎ$�{�\cC¢j�����-����K\�Ɩ����r�`��[�`D��Y��bB�C�����A��Y}�����Ks�gfjt��5+]��)O�7p��ɰ&��S��
jK>ͧ��r���>4�d��4?9VwH��8y��"���4�����\���z��eb�%V��:���9�,#�Ԝ��Gm��\S�Ů�U@�
}�q�3غ'-���S�k�M�1IWz����]g�g	Bdg�@�ՓS'≵ԡ I:,z�k5e��ږ�g@n�����SH9�L�W�?��,���غtw���k{��g�����ޡj��G:�|�6�gw�UˤD�`	��nG�K)�����wrr()�
��s<qںA<�9�$%�<RH�� �t&9]5�=a�DīI�NWWv����!4_L��1[�1AX��!��y&����u�:‰�����@htt�Ę�\ss�4LH=%M7M��S8AíHֱq�F*�p�4=1��7����T|����	}�ٳ�N2z�~���cx�3T���x��l�n�4��N�/,r�(�-�M�+�	Mmپ$��M�kT�z���F�&�*/�ܪ�y��V:N��՗���ޱD�F�_�a��/�N���Pp�}���A5���\O2�"�-��`����x�R>`�S6i�_�Y�˦qȁ���
z��(��U!�Y��r��a��s#g��m�g՜m&pfV�Ywi��.��8k�,��&>�p�I���8`���m�,���:9��[�3�䬏�~�v	p�=���,�	2�&'��.�¥[�4̥�ǹ4���\ֹt�KG�tWo繓\:ɥi��pi�K��t�Kwr�5\y-�^�ݯ�yo��]\���9���=��En��f	.A��#�-��8	.A�w=�#\�J#�=���p*=��(܄J@�T���!<���܆Jp*��Gq�܆Jp*�g�d���3��%�C"y!�%�\|U��p��_A������-�o#0Z���yV�(��:��8C��K��7�G���x9�!�E��*-��'?E���~!r��P�ү7-����?!�3�Z鯷l�=��ìw�#�`�����FW�n�ߣ7&���v�ӕ���;�@|��v����(희�n�#�ʓ�w'��Xo���q8�7���$�pe?��%_��'�M���ѻ�!�f�H���@ߩ���!\�Ћ0t��d���*k��EVJ��C�/�)��@�L8A��*N��\j�?�{����;y�����
��~��/G�ٱR]�k��Tkīrl�k+x[�dT� ����3�1�D�� 	j��T�E�Z�4�
NS�À��:�6�:��^�����R���÷��>���ŝ�Q���k`�JB2_��LL"Ev�W�9~�2A]c�.Ҋ�&��������
�#�v��5��Z=���XM]�ƈ
�lb0���3���ҕC�$�&��RkR�C5���L9�$�(�`z�>�_�5R	�i<��n��e�#������[�7��}��l��	u3����`·Ө��7���<���
�1-6^_}�x=i�o�w�lc�
�z�ϣz���G_����{���3|`�ϲ���H@�M���,r{��@��M��a��j�nFU8�[�!���'�6n_�o��Y�FFjIVqa��#"U ��c"��S��L<�	�K=�I�����N�PW�q��K�kԎ�����P��^�g�n�F*� �2�W�)��Q]��xB��b��W��.V����)]�}<|OD�D%|��1�c�ԥ�#!*pqJ����.�+�(�)1t����Q/$s��]��"���y��p�������
����h�"t����aI���u-��!\Sb��&���D7���5����C��f�a$^R�3
�Ua(<< �J�2EG�h����$�	Ӓl�,��0���ҍ���7�h�>4��X�R�֦������(T$�yȞ��@���#��b���8����vwQ��Wp\hIA�\]�>9�.�@s�U6�~�_D�)�Y[[/��޹>C�1�	������z�H�]���]��U�Ļpx�K�1�%bJ����O�'�*��x𳢂�*������h��H�.�`<,�PAꚢ����P�
QA�������~{�E
�K#�6�c�;S^C7��J��E���7����G~(���A��Y�9b.J�	�.��#U�'%�SR�9D��t4�Y-���@�=�%?+�u��e�/�3��ƺ�F��(�k��1��c�"E'���ߜ<��H�-�$#1>��0>b�,�������f�~�Yj���~C���7��z4$���9�8<�v����Ҙ��O��hk��F��&��E@�b����sQ?�$"���l��b��{RA�� ���z)���9���9�XG��,駩.�%�DZ4���3�݆��8ꌴ24G���2Q�X-��H��w�y�w2~a7�/EѴY���du�P����^��h��Ekɟ��������.�\�'\T?�:�'\�D�r��p`M#m4�f{P��Z�4}�;���Dv^�Ҍ%j�����(��;|(ST�L�l�x��ߒ<p	���YR^�JD�{d�N��@X���4��y'>՛Xh�*�E��1�h�M9�a�� �"-�x��l�䀯E��P��wY�=,�=���Z;��Ѯ�v���᪞{�[�f���Nj�d�x����v�����z'��S�+�{o����2��Ŭ?�Zl6.���hY?MԀh��xC�|X��O_�E�\F�C�'��8":٧e��`$�4��,C��~"E���h�X�b����@�����	o���
�b_B��r8d|���FBxķQ�[��Ƚ���E��K9�V��@U#ډ4�
w�r���Y,�=�\.ʠ��e�rB�<��b��&~������C�,�f���Fs�������?2�%�O����t[�|�����VqK ���o'E�_QcM��A��4�������<�����E����Y��b̙�B0��}n;��Y�/{qy8H��_`�s�ٜ�	R��WP>�Zb\��ߑ*>`��G��G��	��?8�V�X~�����.�I��X��G�$�h.���!`�ң7�=:D�.�5k2�M^
�R�r`�=�3���d�Y�Nu�o\0ޮ��@B>\(���֗23?-��jW�3Lv@'p�x�$�E������֨GբEL�"�,ԛ߯��2>�T:w�Kt'tI�Y�3 �G�r6�0>�T�;��Љ���������7>M���)�Ch���ŇS/�g�%�`���6ɖ��eQqA�}o��#�xZ	�.��~U��Ţ��ɇ�e�eq�#�s^h� ݳ
����m|M��}�u��f��7`�G�̓o*鏶���]i����(�:J�k|Gg���(�Ѽ�]QB���k%`���3�S*��:6R�6�U*�yE7�������`^�ҷ��t��yx�y^��y�E��:�^��\R�R��M*m�q��W�@�Gs��?����[�w�)��@[�_*ڙ�t�CLI��?Q��/2��_+�*�dP���,���ҿJ�@D�TA�C�to��0~�`��W�M��~J�7����b�U�������B���;o�zIz?:w	�A���4D#�hʟTiպ���jd�V��U���]O�oR�ǰ��<��1��.���]��uA��P�a�P�U�,Zf�Ucy���2,�E����.>���O��"m���]����'�l[�ि���&��h��1�Wiݹ,���<d���.U���іtA�=\�	�9b<�V:ifƼ�[^_��*>Ƽ�����A�:�SLU�I��|u��Y��k,�Wq-�Yf|t�q��D�����@�Lk�'Vn�'Wk�O�m��WІ�Z��]c�����04�ϛu�}����@��Z���?-/�|A�}�}��j�łR��J�����6K��Y_FkP�:���_Ik�r��Ϩ��d��#?*�ߗ��Mf�5Ĥ�;t��`�1��b���2�@]�>�V�� �'�n��C�Y���f�Yq��ցW)�xM��n��}u А$��#A�HB|�[��a������������RfkS"C��Ԓ��
��τr[k�U�$�N�/%�gCQ���=tUZSd�c��X��\;��%�)!)�YE�ҍ�wD��
Nc��u�J��q��2{)�nn�d�l�8�7عN�������ͲR��[[ڗW���8�)�)���[�7�R�j�^�v]��64S���81�~Y���=�𬽷��Ts�
��vs����� 6���e���v�o����[گ��>ḥ�R��#�-x46\����'�%¡���p箁Q�K>ڹ�|i+���ƕ����Z�!���ʒ��L��YE��C
��k/����V�KYP�PCk�5%�Y��^T�컡`�yYJ��0����e߄��{�U����Ti(h���J�MGUU��@��i���#�����r��n
���$�'b$��Mnz�VB�
-^��O��9�����n;ASC�-	�^$n��w�����Ѯ�.��5Sc�c�ĸi0��z���4�ZR�K5؁�
/��^t�'���ץ4�[Q�QJ]��@pς\p)mKs5�Y�]=�F��G�)M��A��B����B`gx�>�Mm�-4Ԭdb��l�֦��DwZ9������&�2L�81sTd7�
����K��f4���%n$��K�A�9�Ԝ���I�$J�JsS(d*��"����О�Yz~�����o��Hu}881o
�J)�L���(͍ͭ�`���4f!
*���:�og]�@���V�$�X�g��}�4��5���LBiihi�t���������4�`r|vR�P�dL�`5%��V��WZ���JM���0T�ܐ�B��%B��<��AK��	��)���N?���SBn
/�Ja	" �C2
@@2�s�Aa,D�O>!��h�9k�y!�hB�^!˄���pv3y^e���l�����F�f�$g�9;Y^!�t��9;ŕӜ	y%|�*o���Q���!@R	?�@J�BJ	�2(�}���{�l�=_��� ϩ�Y��W�\'�u���[B-��#܈��a'�.��7!"D�a!�0��#L C8�0�p�uw!�b��&���~���;आ��d��|���񎬢r;dhlC�vG��mܼ�Q�nm�c��mںv���a������!��$��4�Cm��^�*�4���@�*RƑY_�	,ҕB�܍�Z���seḁ1w6������gsq�0D�[�����Xn>�M����ʘ���7�p����q;c�~;��t����⸛��2#����q?c�kqb���Cfe8����8�0V�1�غ
�[��#���m�-J[��0�݌
�~�~@��Ċ"���¼60�{.����j�O!�ą-��Rh������ƙ�#d�s3Qm�n��ٌ��"�$,"�]V��"�B4K��#��X������JS]��{�*�.o���y!)�	�����O��#ʒ �;?�Zk%)�4*�L[�ut��;9�\k��ũ���4WJ��R[�Xb'�N�J�CێXb3ZbE��j�F씶	1�Ӛ����;�V�~��k5b�����~��Y�� �"�9��!���=Lۍ(C��L�"�}�
�od{+�J�=�p���@��LkB�Lj��i�"���1m��"�ӆ�G�A��!�-D!�<��_!�^�mFt�G�A��8���y������>�!El��E�C.x�!�v4D��~��h��0}
�27L�H9sɂ!��H���p�P��P2����`�������h�~���>�lSiD��C�l��L�s��C�<�ĎO�	Sgġ�ޑe��ӊK�ѱc�:�
�6|f����[tB�y���|_��z����BU�R�.$��iP�~�b�k�D{����L��*�iV�����%�J�iͻ����bk�R�Zm��ïry�v��R���B�U�!�R>L�:�+�".ӗ��5	����V�"��|���/��
Ѿ�^f��z�#ou�t���f�VbR�-��n���)�m��g��u���C�q*�S�couhFE��}�	�g�Q`��f�)A�D.���s&!,,H�U�+VV]O�/�����h��y�Uv��Q�A���e8�X���b�h������U�'����
ESg�2I[�<#��Ԟmi �r�(y�Y��r�U����/�I�ʤ�1��d�π�޻[b��p�رDl��j�b9KX{2	[ѿQ�eԟ���-���{�2cEq@��	��P_Ts�d/g�	GW]�td��˰2��
s��~��q��&H���Ȁ7'H�TM�N8<j�� �Q���y3�[����v��q�F����>.��klw��=\�@�г�˝��(ry���|�ˇ8��˷p�V.��0�G�+��8WƸ��e�&&H=Q���Q.Op~���x�˓\>	�)�����4�EY�(�ʒ;z;{k��\S�6�ű��b�[��>y���~V\��a#+�d%��wAe
�16!�I�Np�6��c�x Y�#L�#?�A�)�붏9�"��g���c����@
��r�M�~�9�wD�ѢU�ȿLB�U�-B����A�M(#iA��4������5n��q�u����Z� %$O���uF������D��%4 /�>q���
�{<��-�I��:��"���@	��G�^c��:	L1�F_���R�l��:̇
oZ$����&���p��n�+�UR��(Y�U�[H���	��5l`rO��Ed���C/�Kﺓ;*���s���A����P3�����oG�f�PO���Sр��[tT�l�i>	�Ar8@N��NL�����1w�1�/���\'�Q��ib�f��{ZX>Z9����r�F�\o}l.��ą�viz̅�;�������{nܦwĮ���c�DS�F�0&#���$���mf����t8c�7�f��!°otJ��h����f�_�2N�g9D9Q�w�SG�pb�|��HO>���RAU �
�]��1j�M��A��x�]v+�<?��J�;�2��q���d�2=\[��!Oc��YR�MJ=¶�<0��q/�޲뀟����t�Ez���ֈ��=Uì&Z�&�]�Z-�$�-B�ڄmG�Y�NX9<�߁���(�̛�0���l'%5[���ds���;��Ҏ�<?�0�0�����󃐁0��gx�1Tw�PmCu7
U�)�]�t{�)�(��}� �h��3��`=OF|�}�I�m���m��S�@;��mL��ӧ�g��V$�z�*��®[V�������_�V�܂�[V��"lv:�
�M+�+�J��D
]�W[�AL�Y�5��ضW^ ��l"����O���S'���:p���d���f�W'ga�r�+���n��^a16	~e��w�h�W�d��{brb��U�6pۼJ)ˆnٵ*4t�e�-�6����ޢ�8�!���rcS+L��ˍ�ANQ�\,�\��;_��ōKf7�C���T��C�!�ts��/7[��\njnC)V�ɐu�Yw�� ��`v���,k�)���k��� S�R
�/@�lR9��j��qi��@��.�L��}��Ӽ�U��4G��5�.R��I�'���<�$�r!�*EI�C��S���ЂDYy�X�z�
����j�� �#4"��Z��g����U�DK:��,d o���
�]:.@��	`�焁���
;<pRvd1�7��fY�IsXv�2�n^��ߣ��2Qd^<@"�(�P�}�C���-fO���m�Z�l�F�zj�D�p���M�b��{_Ѣ�Q
�5n-�.2���aH�M��X6��V�쥮Q+}��EU�7.�e/����uw��2�1�uz&Q��"�-�Z&a'l�k���[Y���J�	�,������=!���|���ns�-fDC��󻋌%�ET�a�bs�9*�v�0�yt���>��R��L&����bQo
��bw]e�m��s�2�)���V)i��Q��E�nf����ۖ��W��ee'.�p�����i�N��;�4/63�=�^L�"��Z']�t�.��Xl�h�{ѳ��80c��	�s$�݈죙�	�f~҅Q����1u}@��FwW�U�Ɏ��#(�4���F�W\:��eրx[��/�[өe2?5ɯ,��
�N�k�y�t#��f��ƻ��K�a$�kj7����*��K] k������ĸX(_f�m���#��ަ���:��15��e��&�B0P-Sg\�|�5��q��.��CZ&�O6��� ��▗�Qă�F��@r��2���{�POO�~��S�@��E
�P+qk��+�C{
{:�+�j45��Ě�^�5�*[�x�����ev-��W����[ԃY}X�df���u/]��t��	�̠��0,��2W�z�X&m�a�t4����M�ň���[�x1��x��*�2�z{3$軍�V
��_�K�!�����
)��zK��t�kMq�>�>�=���ԝZ��0����Rt��9Y�R7�ԛ�
����l,'�3f��4w���h����>���W����[,��g�)�b��vU;�4̷��0�:<V6���hi����$��:\����q�$%:��
؆lM���hLG�fO_;��#7uN�OG��4Kv�'��غ��W�������ۍ6@6�M�
Xo���]nF���An	�ɭ8��Z<D�m"C�Jnkh�ۚ��&�=��Җ=�z\C{�yE�8.4�᧭��D�=yr��Ikɷ�@rc*���rkCd��#�����v�4�O{��G5h'6���aK#4[CJ�N�B-�ͪhC蛵5(MMM��A֌����ښ��`���є�0ԫ�B��
*S�`��
�PM
Ptjo[ڵA7��5�m�:Rc����i�Z�K6��j�����u{K^ư�@�6)fKę'Ș%Rv� p9xw�U�����W��RmS��f�
/�PS�*�re��2V�S�[�W�-���e�r�����+��a��[AA,?[~���Ի���
d
y�X�s�\�����E����K��Tv�w�ZŽ���3w��+�{sod�J����U�]�ܛ����k����5ɽ����+r�d� �C�iw�0w+s�1w;sw��ֽܻ��o`�0�Cv0w'<,2w7s�0����;�8ηwvﴷ�v:	�.a�@p�ި���bl�	��a� *\��n�m�{�-��1���q�q;Z�v�ĉ�����ӭDs~��|?v���ٙ�ٽ��<��3�1S��1[�c�0�
c�0c�0�
�a,Ƒ˜/��8JGc�0B`�	c�0V	#, qj4
�I�0���Bc�0���Q?F�0ڄ�.�M��"���q�0N�������v����c�LB�ؘÒ�p�g���c�Zš��ar��7���mr{� �6y�A��0��(d�3D��ԃ�ؔ��jֵ]ۢk}�:���=
"D�)�m�l�uu���O��ksȆ��b~�9�?�'ƒ��U�y?p���(��#����V"��i=��8]�i$Z����,���h=6�HAb��x�d
>!�Y-��?1:-(��O�����
%�L�LE����Y؁���.%�Qr�!�cOUʷq�A�-����VNo��vN���NN���nN���>N���N��!N��1N��IN���N���9N���N_��%N_��N_��uN���MN���mN��4��.N�黜������_s�!�q�[�'����R�u�rz&W��p�2�$��A^x���MMjc�2K+ZS�bB8��b})R��SD�Z�CL?�^��9NZc,$U�˶R�e[i�~�FV5�����"O�J��&��]��$m���fX���n�6�Z^�{"-/�;�����L�KN�奁���Ҡ(:�|�!�O��3-1
9&MvL�z6L�(�
�)���E��d���ň�a�E�09b�0}Ĩ�`rE�b�<1���b̥0�D	V��c�	5--z��Y`!ay
1b
���+�F�%\ʨ.�HRT$�������+�ktlWD�� �rD�Jb�#.�4r�v+��,��̔ P��X�3ۣD�2f!��5ScfZ0]-���%13�K��%����%5�����xIN���%u�ܘ��%cQb�
�����~"����pD��d~�J\�D��Je�5)V)���&�B����C�[S��0ޙ�s5:wΝ.ϝnc&��G(�bԟ�*�W+�̒UfY�e+�����w�{M�\Yg�5/�i��m�����'��DJ����H���,��pefE��Z,ۯ�ȝ*�Y3�M#7!\�R3�7Zh����I�Q���0��mx��!-�tt��/�]b��|�5�
��֬���B��q6pn舌�V��'p���D�	�`'A5e��sM�,)T��
3��}�Moܵi$��Żq��pū]��x�[Mx��,O`�u&M��d<Rkqp�0�Ϫ����Eg���D�� �`X}��j��&�7��������!�f���(<�:A�r����9I��䝓}�S�r�Q�M�&d
�0�n��[s��]�|�㲚1�=ֆ�,R���+���Q8�.:\	��*V͑E*����E3e��+@�S�h�,r��d=�؃��>�Xs{�[��u�-�����w�{��Ν�G~-x30�[�/�31c���O����xU˺S�%tKP���4�.��+QZ����m��j��3�,�̩r�w�S�O�,9��M~���V>��b�������HC�`x��Qu���4�g����!�I��iXe�}վ���N��,�{	V)}��b�:1�N��	�G-�����)���=H7��zH�
|6f;��P\m=j�p��5
"���F�@�P`P�P����1��;#�y�4�g�$=��8�9>i�����9���3<j7��
�B�'dQ/�p9�t�����p%��U��k�؎䱽N}�};�G��ߠ&��&��&��-� Z�f�#bx�$��8|f�_�|���v��v;��l�_���n4u����L(�*3�t����P�
��+�?�~%��Ӊ���~�AD�/�>�,��x� S���}pi�>�W�>���?���X��F���x)�cX](�Ҽx�_��k�n_�x��<NH*|' eS�����P
���.B!33ǣhGa�`�@��E'Z���
��޼?p#��n)8Q5p)|DT���LX��<��ʎ��:�v�v�֙�]��&��(;�#p��ΦlAG�jam�,���9�]�����	�\���'tC�\/��J�:�C�AX����;7
�ʖtnB|<ʖuT�"�4�����]�w*�.!�?~�y��L
]!B�w�(
m�6��X率��y5�5¼�ra^��y׊#�A�/rMݼgsR�M�_�N/�iu�e.�LmhN��R�4�u��W�W�'�O�[6k���SM�>j��O]�r��%��{���Ժ����9o���sf-9j�+i�w���8i�Lw�z���q�z�:r�tGk�KS�D�d�J��e�^N�����;S�N����P�ޗC@��7������ں��9V�����ü��~,u:U�+%ڼ��5�X��CP�/)����_K�m^�&������^�39p�N�{[�c�>r������}7��\��lj�uS�j��p[ı (�hz��Yܝ!-A���s�|#IZy�w��@�)���!���"�\�roV���V���^�kϢǁ��[z���X���.@���$����%��6��^z�7b�%�Ǜ���)���k'��I�2��A��A!��"jkI��_-mN�iSݻ蠐��j�m��2�ȉ)�υn�b\�$3۲aݴ��m}C�"��oI�м�?a��R�N��{�K���3���d�jЏ��׭m�"���|��E��Ng���{�`SK��H��L����ʇp��������ާl�՘���)��[�s�Ryr~�Y<y�&�ߋSiA�M�{s�M�>����v:*��8���<�+K���S�k_��
~"o�X������Mل�ѳ�(��c~G�$&m���$:LW�uGn�?�^j���5xf�;�-m�)��{ڛ�%��ILr�yfm���(���Hj�|�hm_-�1be��nz���Ϭ�KF����K[�zV���TI������_R��ٵ�A�'eD�w��	T͠��ǃV�� dg�NXs�sՃ��p2�_ MM�-�p�oaz�u���H(��=�_'6��
T�z�'����͔�fBwuu�7�|П�ƈ{��N'��@�ݐ�6�Zv�����?�:2�AkJ��V�#�YVW�ݺ�j'f�A�@���Ѫkj���J�]ak�J���
��[5�� ��.L��U��X�����"� �hY�^Q��*ː��Z^Z��V��	d���4�]�ke�w���"���҄'�j{#��UU�X���"0���ߺ�J�5j!�����U��&ً:�e�!4R��ZG�i;#�jʪ��������7\5R�	��TVV�j�US]Q�
���hj��j��?�)u�	���0ՊR�M��~`����ܬ�,�?7�Q՜�}������j0w��	�fd:������Y:%�_	�f��
:p 㕑j�L�g0	����Z�@M�2^j��T�6@
`c�0&��NF=��I ��𨋰Q���>Å�����6��!Q࡫�����F�x�Za+����ݐ���20j`�I�P<`x�a�(��'�S�3���T׶~�P�<la���q%���]��Fl�v`��Nl�b�
�]��V�/�(.�,���xB2I}c�.�E�4ֱ��I�c��:]@���:�Sd��Y$ё�H�����]��vC��o���=a���
ա\IzSt��<����ċq�kl3u�0�l����[�z��:C�3�T�3�]?���mU�3U} ��U<��R�L�wX4�@�Hlle�*w��Q�w~�ӚZ�a�������i;��S:���f\@���ĺ��������)�Ă��^/�ע��&���7S��E�jf�)�Uӕ�Oq-i6�H�4�I�4/H�4/K�4�J�4�K�4oJ�4oK�4?�&&M�4����4�J�G�����4�K�Ki~%��|(�G�|,�'�|*�g�Q�ϥ��4_H�4��KK�����4�H�4�I�wi���_� �^iNSy�OW�QqΕ{�Q�:ax��ܬW�$x;
���=�oG*��EЄ�-�T��`7�����@oG�z�j�	�}@o�z�[�~��d�������^�&��%��v�"�ڞ��'-
x���d9��L:J��J�-A��ٺ$f떘m��l�@���0[t�������2n땸m��m�$n�.q���fJ��'q�,��E�eh>[�^�#ʮ��#ʯ���`�D�U0}E��0�D�50��:�@@�A
���"-��䨮��&Qs�^@خ�`�ץ���5
�hm�@b@+�)��4�z�KT7�����@ʰ�;�ۓ��z��"j�0��
@"Z��j �qu�T��w�qw�4����Bw$k�а1�i_el-�j�X���MG�U+2L�����Z2������U3� K����a�9M���\ �鄥F2����h]3}h�/;e@A�P�/[���c�e���D�
([	�Pɀ���*�c�^��3��/l،.���'�Pf�~�@a��$ۺD�@R�"�ѐԺ�pp�b�c�}�M��~@"����;2P$f6H$L��q��Jd�ur�d�`c�?xVۣ��2���*̘](��z�	D����"2@_��3G�ig�.�.���y	�؂Q�˘�b�\��ċ^��.D���`	v/��`)NH������ H��r.��.R�����J.���J8��
�!���
`<D�n4�3>�1w�=�f�ɴ���jp0H��ú��ҳ�q�F��݄�j����PRF��׵G�0z�.�7C"�t�������>����ґ��u7MW$4�38V�ィ1�{iD���J�ﻒ�b@�E�	�L$�04ɜd�A�n��<N'FHu���L�:@�������=Jg<+�x��H� י�u^�˨�@.�Υ�
�I(���_�Ǽ�f(h%������c"4Ü!K�����i���C\�%A�n�N`�.ƞA�p�޽.�޽��{��=}�^�S�
��.�p!��M{��1���c�y|��2zڊ�@1盕�@x9���/�T�V"}e���D�zW��(�<F'n�g��t���%���w=F� y����k9K����]��o���'0�D�g�KH�>��~/B:��Y�y��%�Et�{���>�Q�����#�KD��.�����˚p��3GdG�=��o�,��F�� ��!1Y"4LAvF����k�.��4A����h��m�� �Y�B9�+��Z�ر#���K�'����#K<���wq��j�TG��G	xc��s1�����K��/����	�ǕT-�^�T�*�vu��5\�(T���1nK�n�j7&�ݔ�v3U�����j;P�_o��Bt|c����*��{f8*�ƕ�3�6պ�+N{4�ݡb�#������A����{��
j�������v�ܯZ����=�UCpc��~��pA��x6��J%��z\�OZ���'�?	����F�)|��)�s*�k�\��7����p@���=�4ɮ��'�)���_X/QvUG����N�@�D�@vBG�ϯR�G�aa�F�#:�~TX��nv��7(ۧ#�ޤ��h�#��Y$`o�MY_��w�aX}�EM�:�ta�W=�,;t�5�����y_��)
�(���I�7�\'��`:��э_K�B��9s��N,��i�Q`
U�k���OzO�s,�8jO�/�(Հ�&�:��N�IrM^�%��=C�F��U�ham͏�j�D���J�H�Us.t:��^�d���K��$��\h�WKqX���/ƕ���D[�ū�о?`��1�����y�3#�т�� ��-�8ʜkݎ�J�9(�� �I�/���M�p�`&���nt�v�%eUB7mX���q���|T��a��)rX��^��}}
0R��I�F7t�[�<���!N��ǹ���%%�4�&���}^���|O���;�p��u	v�3׽���I�qRq�3��b�/���z����}�Y��j�>��ɅMIW}�FK�Q2LC�X~
�ߎY|�F�YR[njnj���l�K�N��M�I���>�lF���|It�8:���ۛ���L���.\!^����Y�j���x��yP��?w���K���k�%�ٸ�cK��.�F���K\��i�ۄ,U�A
�M�A�8c0���ӧ9�G�N؈�X����m	2{o��c�S=x���8~:@�U��	Y��U7>v�/�8u��_ޝC����RN��}��	��	���*+A���N�Ϧ�F$B�M�.���� �Հ�WS��1'`OL�+����@�JJ~�D�=$�eHqJb�oB1D�@PYemy/B\x����NTW]�*��**� PE-@�ك�W[ਸ਼���
��j{"?`V�!�?��DE���%S������q! P���R\SMYUuZ���*W
fdE]E�[� �%�r8yx��'��$2F<�M�R��8�jH��!\�0|�Ȋ3�f�	c�0��~Ӓ�o.潹�{cQ���u!��@�[��VAݥ��4g,��z�9��Q��3d�y6�M��f����[��Mv��%��\=�nFD����'A|�XܷS��og��3�����v�#
�x=5LѡS��>[OE�a�N
3P�`�d�[X�(�X�u��v��I�9R[��z�n&�t9u��>C9�� �t��D���Pܨ��Z]���d<��QѠ�����
9Ą&�na�&gT�|Q�4��)`�)*�RT,{�9X���?8GE��"��h�cfPZ���?����G�)�8���lm�@w��͊z2��~�ݳD�4,�M;}�ѭ���_+�̆��\/���7r��͜n�t��p���[9����9���;9��ӻ9���{9���9}��9}��G8}���9}�ӧ8}�ӟr���r�<�/p�"�/q�2��p��op�&�oq��1N;9�%~�yx��{D���v�^S�`�]ib�����1��c���)$����
��/��@}	�A�@d
@T���l* �i�8Ȧ� ����g��?�} �Q{Y�:h�B=�A�l`')"P��zT��ȓPG���D��aRD���a'z�G$����������*��$�Z���;��!DPK�A-C%�Z�($��O#�Z�("��_'�Z�A�QL@G1���\1���<�Q���,1zL?Vs٬5����I+;.e$��FZ��r]�4����ND����"f�P����z�(�	�M7HX��5}E�sk).w;j@*�K�Q�v�\�$OE�WC��5�r?+D�5+�^k�ܧ�\�;�NY
����'c5:�if�>����25��r��lɱ��B}f�Q"��t\��܅�|&u^n�l0���bw8�,}l��uu�ۥ�C��Kb��{
����IK���P�Y@���m�@2N=�:kf!�&�&ZG�2�&Y+v�E�z+��d�a�9"0�Z��,L�V�2G�Y�]樥�`���]$���xY�< o�7FC���E���%f�c��4`��p��c��5�h@�S��`G�#
�;�X�qw��k��,C廂�˖�XGۀ׬���3�M� .�(]	9��̀�SѮ���Z�%��I %X���i�	_�.w?\
 ��3A��+�M�*��TY��@�",�"Ff�M��d귎�qj8B��v��S�n���˹�e��!�P�%�cxd�TK�T�~����2�jl@�!F��1�1t�/zF8��ƛ��
�
� ��.²_p�?�K

՛���x���E1s
��IE����[�+�|�ߕZ�B@b�i��)���~$wA������.�����"ĭ.�sq�=Q3x�Ǩ��L.|Į2��@�*��&��<�"�K��pBI�s0ৡ~ۼ�T<����r�AO�s4uĕ���l�����JłA��&��Q���{��xc�q�^��̜�
�C0����y1s>O���"��7��hĩ�Bط�6"��=C_�����Nj� �d$J�f�%<�=4�E]�#�����j&=�K�*ЋRB-̌�lZl�u��e�b��[�9y{?� ��*7������񀶠qp��ج|*�?$��>�>��຀h�{��~&���e|ڗ�M8W<Y���E��L����E�H�H���H��+PL�+P��!YĔ��ۘ�w�m���+�O���Gq� _��r�c�#7�"�A��;�i*HX��T` x:�G�o��,�NŜ�o���
��p�R�cJ��-_@��:\nb�]D0��B̂Cr��	I�5"z��݊Z۸� ۦ�$�F2zCěO��3	�	��H��k��K:��<]O��1���$ФP	��Icf3WҮ���,�̥��N�j�o@$�*��*���>�<�Ƀ��;L@k�>�������08���H؀�@&�Aʆ��euW��,P(p��l*s��,�nۀF����Ln{��)Ln{��a�=ɸ�����@P�Oi�p���<���;��g��E����ٜ��d�B��о�}uS2���,�J�X|rV�/a��k�?
�p^J�,�בº��P8���d��y�"�́
)̹�գOZ��9xa�5�'��n��[2'�I���y��9]�{�G�����Б��8jz�F��I��1�$��e���-��-�݃W����btS�$)��
;���U O��A�	�E��
ǯ����M�Š�֮��os���8��A�,7lK�k�0'��y����¼+qo�k瀜0�j�~zt�~��\��|�&�0~E��Zs�!�guO2��Vz(�9��H<It/}�$w�8b?�� �.���D`s���uH�H>Or�$��(;Xe�X+�f�H�öV1Al��ԺC���~��m���-�S�.�����F���������f_/�҃�L���GE0�b'գ2U���*����kN��2o퀭��G��v��|o���Oң�Ӌ�v��z��Xw��c���MA<d��!$���fs��C�@���`����CR[l����:R鬫�qB�`�U��thb
TF%�X��Bm���L6l��aL6	J,+���d�D1�YN|7`� ���>�A���IV)D�s聖֖;�k`�9�kU�	"�U��"�gsD`@�r��_+ER	��cA� ��a@��5�D]�&,��:(�VCr�̼8~YC�&��N���V�$6Lf�$��VT�#᪭,O�2k������(u��T�uc��� ��A�4�y�g�l�u�[^q0>۴ܙ�q>�m@��g�-*iT����6��I���8�)m�AP�?]$�	>�����R��m)Sڀ}.��l�>�X%�=��v��F:�Gi�� �/��ݔ6]?و�<��z��&��@l#2��6X"�݀�&l;���v;6���`�͸�����lj�v��6ܶaZO�]�2}�q!X4BF��v?v�n���@_#v�0]�ҳ�:^�D$j�S�T�k��Gd6�{j�%6,�~#f[=#�	~�Ẹ
mH{&��[��l�骮���������v��x�u�� �]���R�/�v�j\����
�����qXt� %���#���V��Lq����17
�kU�H�\]����&N[9m�t�I�Mb�(`���\"�d�GN=EI��K�7R�A	q��3n!n��q+��!��a�.����ލ�̣^ч��2�
�W�פy]�7�yS���yG��I��S�]����Ҽ+�iޓ�Ҽ/�/���4H�4���#i~+���N�O���4�J�4�K�4�ƒ�+i�"���|#ͷ�U���4���|/�?��A��Ҝ��!�Y�l��\iΓ�|i.��"�
w�J��M�f��TBq��$�0�{#:�8Ȱ0�T ������G^���70�S�,�d���f��9�3��&�+�< ��[=��E��R���m
�@����ܙ��,���`���`x�y��o79� `CA��A��A��A���
<8⺁G\7���q���<��`���<�`���f���	f��cV�(��Ċ,O�8�.b�Ѵ+.�f�e0+n� ��c�
Nf�Uw��j̊��͊��͊��͊��͊��%��X���	pAB *�.1H�XՖ��r}�k�fM%���\�c�Z%�n>�\�U�銗-F����/;e o1).N�[�2е�6�!�m���`y�V1qQeo�8�)f�e��&O���r��KT$�*�*
I��g!X#Ɲ.�.���	F�6�np/�'|0(.L)r�=@�{"�^�V���|H��`����ykG��>{�`��Ӂ� ��a"R���1 � 瓀�EPq-��F����ᮅ�V��P �8R`�̣�G�`�.�gKp2�]*
�VX��Q�
�G�#�0�
�1Ġ��K`���.�G�?��E�*B���\���2%����7@Đ��� &�U���pV_����&<���F�8(_V�$5�I��&@�8��{H� �8�����n��`aL����	sl0�1F�qJ$K���Or��p��fh�9ќ�G���7��QH/�y̮3����3���6�
ҙt�3�[��]g*�y֦���3�q�KI�{D|�{�K���ӓ�o'�$��$B���=�D�Ӻ�WL{�&2=N����B�5�nh��c�y|��fۈ�oos�M�ۂ�8�*��Y������3�A��[��)*\.Q��	���O��`��f�!�tW���L� 5�5@f��sv�S���������แ��1��>��4�^�o~�	�������w���Q�����<7��އ��5�+�.^�B}~�}~�t�P��9G@�K�+\#��7�Ƿ��%"��= Ż���8uTN��H�s����G��@��. Չh�nT�Ю������.�$:�%t�/�#?�����R��ڽ�e��~��*��4��]���: �b+R�<ݪ���T�&9��Ub.+�B��K�{�
<�.�bn�OO���{�j]��I����f�9��t���
�Ģ�J‰��ע�^�xa�Մ�v�ߘ�b��hWjuP'�	��1�<\?v�S���n:?A껗ο�ϡ�N��<o��Z��0U#�\���=��V���T-��b���$U)ή�@o��=C՘�7՞C�.�$S��{���,
��.z�j���2Q�ej�5�`6�+�_��:��ᯫ���Ʌ���5�I���7�iS�	|�Z��w��	�����.��ms�U�6'�=�[�+x��s=�F�4Z���}����+�o`��7��>�����o�\�jƗ���IĽߡe������c���{��2Y�S�6v@Q�eA|ZX�QB�?�)ۯ#�>��Q�g��Cs�O�������9���%e͎���3eA|IX]��$N���_0�<`�_Ӆ
6ossB�E(bFJC*��?��"�[��)̝07�f�[�yk7'����	����t~�G�փ��*�w���]
b�Q4��Kp����@^Z�o߈zM6%��H��]y!'L�%YH$/D���`Ie�^�7���g��qs!G��4)�ܞc�8��uSgj��X+q挾&��k��1��\H�6����K�̑��2���l_�N��ʮ�ç5m��y�qM[7��͐|��E�g̝>o	��"�Uf<T�}�c�����9�\9KJ��v���NR�-t�jX���!�U����Z�U�VhX�ӪJ�`U
���2��Z5UeZmy
��Z(e�UXW�b�M|�q���5eXoo�8��$ܸ��d'/�(��Vu�����6���:�Z_វ�y��.�����UUW���o�j����j��f�j�����<]�84�`]M��:RW�?^�%
����cӔ�Q"0�l%�J��a+�V��[�jl5�j��a�m���&`��m���O���+[ԋ�1���j4�V��x�I�w�x��w�@�ݕR���!�vT���'��ޓ�NJ�Qo������{=�>5�doZ}ZN!R���s
��Q�A��g�g������PV}V�Px;��9Ä�ʮ��og��>�.����q��ċ�m�0~"�E
�hK	㥉�n��0�����
x�,[b4�iaȖ���
)��0~sd��6�_X� ���=]"ۓ�`r����h�r�^�{3R}épN�7���ӺĀ���p:��K�Ӑ��dt��}2���.Q�9���u��|��C�Y]�0kH�?0,��E�†��p6^��q��+�_N_����D%�<87���&%�k斆��<�l����<�u-z%F�B�0�����-�����H;��{��&�aѠ��[	$��EMf�&�J����_{%_.��!)�2��ӃHF�t�z=�!!�O�G�/hmjo� ï�e��r��`:�7:y�=���H<��m1kra{S����=��q�ɋ=H�|.7k����R��7�2!	}'�e4_�ϔ��޻�}{L9)���ڇ��v����WB�u�Sj?��}Q����r���wKr4='x��f�����?֝J^SSK"����
{P;l�WNG�`p蛛�yCs�68͉Rφ�)˦mhnJY�n-^)m8��.���yӗ�$����}������^���M�BhA��ӟ3O��t�O_�h�����v;��p�?�C[�����0y��iѴ_��J����Ը@���f%��ћ�S�������Ԧu�%
�%������e$&�E�f�5i�����28�}7�[j,�ܥ��*h���5��-�I.}��ՍW���,��/t��1���A�1Sx<c8e�^�A�����o����}�ȳ�Q9�14�cd~ކ� ���:���I�,�O�1���ܒ4�����{��a�S�}�����C���'vl�^��;�����@�uK���OI��D�S��H�M
-��/$�g�!t��y.�������n5�����|U45&+!�,j:f�捹
-m�7�h=���ښ�'���dE�{=��q�%s8e�,��XxCk���"}�mZ��L�i���$�{z�u����;Z����ִ�g�T~��ǡ�IO�\|�����<�;;7�9u���M����^7-��|z�Kz�uw5��gq�e���Č��;x���#�q���sgO��<�DD.w�+}�٣�<�BΞ�c�F���T���v����z{E�KO��CPp\z��N複G�w�u�O��ſ/�E'�������?v		��#ƌ,^Q2b��n�I�7Vb�(�2�
i�(9�aEIhT!T}[��i���Xpؘ������!}���
0��Ƒh@L��w�"1�>8�O��j�k$��X�� ��2x��`1��X)�DM���=�x��醷?ǽ���@"u��e��ܲ�*{����gV9�E�ע�t٪�d��D
���UUN	��W�?�#Hs��TVSY��C~g�~��'
�*��.�3�a5�M������%VQZ���P����VE2�Ո(]�u#�C��*���$B��qo/W��A�1�
�j�Z�q�u�5enhiT�v�S`�H�L�-���&��nEY)Ҫ�JwYyyuR���%?��`G��r�@��)�WVj�uφ�y
�E�y�Ǔ� ͈���?��F�����ɽS�O;�����@>]ˢ�~
�kԿ�����z��
���E=BB[ܼ�%0�IesĒ���)�O�_�g�����$�ݕ��Jwc�Fw�v�b$ϡ����+H#�C,)������i�>S�O��@C�\ I�"g�\��>�a���Bl$�Ab�6g\��
�A�\5�bW��lP׀7��C^�B�E��۱݂m'�[�݁�l�NF�daDA�dƃ؞��Sli��S���.l���ۯ���,�y��j�ku1Y�M"��(�ag38�e^�=�@��ǩ�z
�?���՚bU���_`�Vo�Hς'�7���H& �.���g_R� ��ˣ�<���L;Y��M����|]IER�:� t�*�߂|��m��i�6��N��p� �v����"���Bwݡ�T�rM��{�݋�>ոKՇ`aZf�eu�Oԟ�;�/�'��A�J���Plð
�6�YUUIQF���.<��֠ͮ�=:�H��o���:�J�H�v���B��8+��a�P�A	�/E���;����(<��x�};�Ҏ�>���ԷD�)�C�D��+>�P������o��H��J�4���i~/ͧ�A�Ϥ��4�K�'i���Ki�,M�4�4_I�4�H�4��;i�&�ߥ��4�K�Oi�%����4�/�iΒf�4�Js�4Js�4�Hs�4�Is�4WHs�4ۤ�Z�k��V�뤹^���Q�in�f�4;��U�ۤ�]�_�{@�=����w��E��3��(�B9>j���HȠ�d��#X�p�wb�7���!p��E��R�t����p�›�by/��"R/����.��M����nƕv	ȓ|Wٙ����N��v&�:�P��)w���Lލ�܄���@���w32t����%vؙ��ؙA;�"2�V� �6dR�	Qp;�΄r�*�FC�q�»�M���IE��S�>��������'�ɍz&C@����F?�c��%���E��0٢�	�Q�$LQ�L��|&OT����~���y���}f��{f��� 1�E��b�K0�b���r��8i�*A� ��Y&ť�e5a�چ��P�P�~e"�A�MWg�
uӵ+�bM8���������)S!���
�Ԧc3��eTQ:!�2��U-y
No���I�`�,����Qf��i��g���M�׳���;� �7
�k{��
��-k5���, �&���L����p|����Ip|�c�&��c���\�M��!�3� �k$fz�2��"�mnJ�Q�TEx�n�p*�)M�xӾ#.:D㗍\����&ѹ^4�]��&�{��O��.��n�)�QU(m�#}�*җ�&}��ZwBd�I�p��CF����!_�͔��n��2)�G�k��wY'�an���pJ,4x�`%�O*��)��KE���$?4�bF���4.f3��Վ�H�~�w�!"�o��T4F�QR�O�@�g���EKUJ���*n])SRR��}�;���ER�n�9��<�E�
v������k1��.TmVK�w�Y1�!F��N��Cu��(�p�bw����)�
hˇ�VvB_eBp|/[�b��	����$�h��Z=��C�\*��*Hc��{�p�#}�;�S�:��{��1�!J��M��>�{Sy�~��Iu��E��D1t�}�"7�kn8�]��[�
A�����bN��G�
A��s��� ��,�P�IWMm�'5:���(|T
rU|�>8��&d��7���h�-�6�\ب6�׸)Y.l�D�F8�q���N�)>���1�߂=���M"�I��O�;.R��-����/��Vx�}�7�mp0��.^u�v�y{���ϩ�&���)�A�?�.r_����k��|����;���'�����~��^������1����$7#y�~����y[��E��=���/+Ь��Z�������^�U��e]2�z�|G:s^$�x�̏, a�N�
)�O(�����v!� (����8��[|�E�Eo�{�=BӠB/o��|t�{>���FŎi�0�oxPg�A
���n��&��.��Y�؛���x�/!����$�w[�<Bl#��,\$�T�AE��f���b��=<RiI�z5�LsB�-Q�]jq�
�fǯ��[|,AO�-��;��N��]3�[��!���DkY柪(�0�\�"�5��ҩ�K��Mn���x�/��2K��<3��\DrV_!����%Y~�C|'n$�r��:���r�@\�f�H? p�5���
"�#���J�i�^)"�H����V��$`o�
Ex5i� ��אD��s��I��GB�&\�M~ߧ���}�BWv?]D$��-��.�B�Y��>t���.��dp��𾅆���#�=��P	���%�z����s1�"L�Kd�/f��DK$����C�݋��Y�C��i�ފ��q6NID9X����A�<n�7�"�]�`3���w�,�*�ۃ\�r�7�]���9p�pϣ��W8�n�ɿFN��G/��{)ߠp��;�oP�2��1NX�ǟk��N%��g�j��<:�O	�}�O�@N��3/��e���T­���8�^f~u8��¾�%���]�n��q3����O���R��O{��M�/j7�ڝ�v�R�Q-��i�������t�?Dgi<gk����V
M��oԗ�Sz.���r.p�o�X���n�|�|1vi�;�:�jp�b��_�Y��n���B��u�q�$r!�$�+���`+�2g]C��N<�<��jx��H"�FG{7%N��#;I�I����N��+��p-��Z�;P�߻�^��lk�A�	E�ןT躛�8߭Y�P?��D{/_�)?��Q���>HC�g=���G�R��#�06�?J�@?e���q�8�������L�i�����s<����Y�S�N~F^����u�%��&4f��c�3�������=�[�ثT�xڵ^��[oРэ��6���P�ƍ~Z�]?�s�6ry���P�!���~�u���c�.��v2�C���d�e�������N��S��/뗔]�x����K�v+:�5e�;��ʞ�xCXR6�#��3��l:�H}�u��c��\Uk�wte�]�뾃��|e���=��k��\ �?@*M��ﰷ�wX�=p �>�
H�Z�R5��g}��!X��v�*���3eUd��
ǃ�[��3����)**���s�F��o�o5|1�\�6�w��ͣ�ψ�ݸ��䴿���`�X��^����-�e������_ڮ�{"���½��(x_`V��_��N̊�t�NsQEG�u��\��W�����Ы"��Zi�5a���ׅ�:��|�Ma�	�0_�yK�ou���9��(�V�A���F�65�
�k��"�qx|�zR�Q���Xmedia/js/silverlightmediaelement.xap000064400000030253152177723720013677 0ustar00PKq�H���Q��AppManifest.xaml���J1�����Ɍ�*�S(�e�Xq3�΅��[�<��Wp�v�u�q>�9�o�7)<����V�̱�:���ʡM!�+���cT_Tե�U9�M��~A�+y��q$��s6=/s�HC+�Hϐ�z^C�fE0u����2F)������r�*5��JUrq~&��s�1��'�ג��5N�چ}�'�t4��S����.>PKq�H�\r8�.�SilverlightMediaElement.dll�}t[�u�}$@�IP�>eA�eQ"	�_I�dQ&-J�$۱C��	ă@I4�DZo>N'n6i��'�ӟ�u��n�l��4m��:i��s�:��m��6٤�l�6U��;���;M[�ļ�;w�ܹs�Νy�&�y78��?��'@|���?��۹�7:���_�	e��m3٢�`��FjїN��z�7�����/��<6�[�3Z��q�"iL�P����i��ˠn�P:�D���>�~���W��+��p�8`�[���W�">H�t-u�2���Ϗ�u||�i��[:P�.��:�l�c`�m#q�(i��Q۝�}w%�վ�����xfZ�;P�f�q=�EZ�oB��E�����َ��ʸ��p�U��Dv��L��%�ZG�^�B����~'7x�	P[�*�п�2w��j�M���[Q	ԕ���R�ݰy��]�.���j�D(.��C�f,��mh\\t��G���`�ߌ�s��u�9B|mŤ{�:��K��l������}�c �۩!�P)�V�֝���L��V�[)�'=�voð��J����Q�+�6t�>y
Z���6�:�u�+H�e�U�E�&u�%�ƻ�����1�2��A'�[y�x�����R����K���ťC\��e��͗<��N[�;���%�t���..���ZqY'.�Ⲟ.��B]����בy��"�l$�����h��ւ�+�^��w[�h���1��+�n?Qo#x��{~չ����	�>V���p�
v�(�EgyU	�
A�P+ZFG-J����(�&��M2A��N���^�P6��P�m\&d/�V�v.3Z��FU���������2С��Ħwb(���1=��`��׍�Y��+�Տ�9�=�2E�,UV�AB�>�"�c��J
�2b�
�]5�O���?^�x���V_��Z�$|ue�q�C��
$�C$�����#�Ip��P�u���)�qws%��dP]�DY�Dfnǚ���۶c�."⢮t4+�!��a�qQWnb\R�!dže=��rb���/��VWH�����ԕV�d|�����;m�h�4T?f����)���ٌ%q��>���P��*V���2��LS	�ZC����l�g(z��S��W�۬9}-���`�
�6��X��ֆ�6��֭gZ[؆�����.�p�O��۹��C4߯��8�`}0�E�_O�X�Ҥ����v���p�b`O�DY�^�Wp��7��vU`��k���s���G�#�`�[��ȸS����-d�S�S�a����Ί���9���T(��7I��A���#fD֗ݷ��!^��m��Pxz1F���~�p�D��b9�b���8^A����S4���>�*�	� {�>Jn�S��Z�C��L��
S6ΖY4���i+hM�<?oa��ȣ(�_���"�P�k��R�MW�[�BU��t����)�L��?gX�-�p����<^����X �bW�F��G����#ЁۆM�-�`�T�o`_*X@?�
>���E�g�.}�o ��w���&�ok��K�ֶ��"<ն��T�&��M�lp�O��EZ�3���G�{�m�q��n�5vmkO+��^����Y.�g �����a��F��Qqg���c<!�:Ջk�It�*2�%��j���F�z��V@f�5�%2֩;�����3֫����|���E�
�ɘf8O8��t?��)��Wy���U|��S��>�-��xCK�8�:4����s��z�� &�>Q7����	����Pb�����eE��Y��&��BԘ�ݴ�:e�ת��hK���%a�=e#��^�X�iV��{���^�F�k�@2�o<E�^}�K�J�j׷�QK�u�皷�H��
�.��|=�ү0�Z��:T��vA�l}�c�DżWA�'�-�o�dzu�r�UӾw��'Z�-*�Br ��w|H���r=����eM�+��?�+��ק�L�=��:r;��Ct
�Q�[~���!;���ns<�
G5y'��s�~�}���VX��[�<���1���e�q�K��fA;��/�}��k�h��^�P���צ�BM��$'�7�yh��e��c)'\�	sI�e���/&h�
��T��vZ�
Rx�f���QVC��qO���uW�?Y}n�kP�"ڎ��P��|3�������u�g�����V��奦�g^�.QQc�;oA'���v�8������h����ߎW������ ���y��߰�Eu��@!�m��z[�w�t��&a��@QW|�~�:0n37�m�ͦ���rz�p������\�3Yo홬������2^����9�19���C���ĞF�.�vM�*k[�-C���
�D~C���%$f�dO9�J�w!��\�0U��i�:ȭ���枕1�����E��{0�8���?I���[_��4��c�o'��غ���b��6n�S�`U�[�AK�GM�W����wE�Ɗ�u0�U�����)V?���I���<�i��m2U5>��~���["���T,��oX��n�V�	]KЛt��w��&]��	�}tA��Jܛ�m���[�c��%��~�w��~��6��v�UP�.�;�*Zqi����\$}��ϓ�����bI[�Њ���֊V섖�hƠo��֍\vn�wJ3�Y=?	�o�7��+-�h^[*�ܠoji.�Mߡ-��g���\<�����P2т���ʖ��f���j�g�����#d{�y[�W���ld

����E�q�M���B3R0��S9{�m7��o��_( ��6�wa1�/��J�ž��bzA[L�ٴ��3�@Z_>�͟�0<Ɔ/�s�C+j��}���s��}UD���RE�j:�;����J�Z&�:����6����8ioYYʷY�i�VE�m�m	ri��,jƘ�/zN��&w��l~*5��f�2�1�ڊf�QT�@�����|��$��vQz1]S\/hy�<���&���Ŕqv�0��
�\6�--37vF�G��1�O-j�B*����t6���_����rˣ�pAd1�g|>�)�rԟ���Lia����#�Ȩ?��Z���Z�.-�4�X��~C_�gf���ͤ�y�4�\��B���-i�o�@�%$1�-r��V�hC�J喴�lF���T��@E�C�\�P�|�H�,�~X~�4��M��k��#~��l.�H�����4\�T��
7n��g��0K�6w�^��e������u9�(}���`C�D�����w �>;Ϫ���<*��#�	�R=�mX��q)�4&Nh-U:�T*�&�K���.����A�J�}�(�l~�?ҟ���鹥EW��)����}�O��Q��D*�]*�=���8�Je�N�^��'�3���I�$���WA�{��G�+����>���r�!��6	��d�Y�v����r�\����F:�>�ݫ�FRp�Bq�J_�+�}d@�P���Z��RE�^�V��C�Nj3)���¨�p*W�	C���e�����M�F��Ҫ�T�f3�7P��~�>N�As�[2���rI�38����Fe��y��:٫⏽����ƁiUB(�:�Ď��3�U�@E����X�Ցz�Ou	��*ޏt�g!���{�H�cFI��4b֖�g�1tHsZC\+ۿ���R�s��3��h�ѫS��"�k��Wm�4�nt�0A� ���_w���ēk���p�xS��r��Q�H��Q�Rm����/�1q=��^\��9�-.�r�4�d*�]l_t;*4�<��3���a=�Tdx��s]E��8��k�8cyNO�k��j0�W�s��̟�^ևh�jи/n���z.��;i!��l{Sv؊;�t��c�HS���oV�����".�ʍ~F>�/����"oĝ,f��h�q�;���l&K��{���%�q˰@0
�����Y��|���Fۿ<��8��^a�協������B*�--�Z�v����5!ESn>��ώ��j�ҴW�}�j
Mп�n
�������?�vf5Z�d�����ڹ��:�dល�~��`X�6Y.��n˦+2�0D���]��-S��\����##
��T��`�Dl;Q�٠�ҘA�:۾a��ڵ��R
˄|��P4J&�##�hdd�7�����`(H$'({$���d"����㫧^�Vt5����e�4�I���PE���6��xwx3���3�捱��u~H�d��Ӕ�Uy
���V����Y{_s�<�T�~�Es�er�.�k���ͯ-�_[4��h�q]^���g�e�k��T�%��taw}˸�PW�W�麬I]��~��,lK��p ��R+����2�0��"D�$:�e@"�	G��@$>�˹p0
Gb��X,:����pXI&�h �'k��Z�5h���e_��R2�H�}'��DjY_*� ��кM��Bk�t���J���;��2s�`��̬4
�C�fs}㾗��Q4s�dș��p2��B	-��XQߘ�Ey2��F�#�xh$1�H,Ibӣ�H�p���p5#��B�`܇P4���2�H$��6e�j�k;!i�x�i� ��V�
�c����Z3���"(�p���&MD�v��; ȟ��f:��.K�Xgh$��'$`�r	$�1��h4�}�Ń�(J>������`��H"���B⯰l�}+w#�o�u#��j�T�:�!��$Z'��5���8�82S��Q�'’�p�x%����^$	�nV0��&C����H4�G��chx�⨟�ho��Wi���
��a�*Ƭ)q�^3���[E���rw�
S������)����ˌ؟)���s�5w��K�`O��u���*0��#�Щ�Q�1�f,U"���΢M�Uǜ���+�U�6��v,�M�%�m�f诔:c���f��R���^q��|�-h?Wo~����7���a&dz�\kF�������N�����H"��^4�P4�x(:��Dt���*�0���*��O��r	�1�#�c�r&n��i��nS$H�#eQE�Px$Q%�p$���u�b��H<c��N�yj���B<���Hh0
�b�8����AI��G�p84Q]�N��l0�vC"t���.����>��Q�O/FJI ��S�t�M�@ʰk5�1�k�zh2I�]8�
׎^iDG�v��o�YZ��K�\1mhZ��u�;�c�b�9ī����~+�ꈫ9h*���J�\�	D7JҢ��h�ouŇˊ�U'b���:3�jN�7?�����=x}��Ϗ(1���N���Wy�}ﶡ!��y��+.����e�>�
���|8蛢{~MKƒ64Tʼn��R�V�w�)�����i]���J��/�m^kn�%ի֪��]�5���/kߐn�-��g/�D����hZ$t�4`���Vc��i$���Z��^2���8+�b� @�=�3�Y��*�0v���b6��;3�ʧ���>�	1P5r�O$N�B��okF��l�Ӝ���xv@��j6�4"N��NKU���jd,���*�����	��s4���]\Zl�`��1�K5�.Q�bO	�J���Y{f����L�*u�V���2����zJ�@Y���j��<SW]ܫy�e���[;0K:=��lXֈ�U��Ҙlz*eC2�hM�d*��ԪHZ]�h�h�8����3#�,7��'g�ԛ�ϲo7��ך��Q�hiĿ�Mưy$�}]�-Xն���5Ԫ�8Vi���˥0\+��M���oS�x_c�~:�L�:ż�N2�w�\猑��׌Q�uSK�ҥZ9W�kgp=2]����hY�	�e#�Ao_�L׮eܫW��k�]�:�$�Mm�>��8��d�tB�cw������;0	'��x2N�c�A��d4����`�ɪ}2��0K˾��H �DBa�E&F"F!\N'�H(�-�h�o"�ţ�D�0��`,��-�P41G`B"�D8e�
�M��X,��FM�b\ LX��p ��b|g"�$V}�@,F�	��`9���h{=9�6$G�S�%��2�4%N�ze��N2Ir��V���t0�D���g�%���0O$�Ѹha�;3ۏ�D±p�3�Q2�X#�`4��4�5"A�άdP6'���ݛ	��A�=$0��$������-)��,�Q��Wq˲�n��cP��{��d�N�m�،W��v`��E����y�^�CI�W��{����o��oƑ�lE~�V�#m;9
v���~���x};��ނit(��W(�{նvz�?��[`������ko?~ߋ�-�-�]���j~�5S��{��g0|7�����<�_fxQ�Gq�O�U'����*����Z�ԭ��V'����V��V�p�I�)K>�᧜��gwß�>�r����1��������'8�?��ھ��O;���	�0�~��]p�����okw��0t��ډ�V��nvoSn�\d�uG�?rS����U7�zcan��;������ut¯`�:����_"���q`���;a��:�0�������-�.�z����=7|�sQ�y���<��g'�=����j?�I�v����:���Eឮ.�)v���-����"��&�&n�R�G���i/Q��3^G+X���_7�
�Q[��L������tC�ˈ¼��Ç�A��r�����8�~��_���0�/q�~[�ax��5*��T��8R�T��}���1t�)�1�;��0|�s~�����;	�/s��g0��|C���>���p}H��	���t��0E��o�1���+�$�X�O���˿$S.�%�w�HݪlG�}�So�èIm�m&�$�.�T�1���2�
Lu�K2�u��Ej���� S���f�Jr�1�s�ԯ�Լ�j��2��4�_��;0��v���aj#�d�0u��L}i���-�k�o�H��˩���P�)7���L�k�Sm�"us�����N��
���X�q����(bn��dꎖy�C_P��jY�[ |>�r��L���v����1o�/S���!�
��X�0<#S�R� |S���2��yD�^���2�o�QX�_n};��L��ڋ}�N=���'�u������p�Lu;��m�V����}�n���t�|)R֥�M?������[Q`�E�ǔ�Y\�'\�ŷ�ﻡR�����9<��9|��w3��8�����ެ��
�1��q�e�j0?���������/q�U����p�=�@Q(�Ρ��M�:���R��ہ�$�?�������蝈�n�K�	�����{�߁��lJ���8.>��U�CyPi�hW�0�e%�х�p�c��r_�N�>���c÷v�8�+O*�u�2|LyZ�l�Q�cL�9�R��o;�W^`��s�e��T�krʗ��G`v��<9|?��b�D�o����/"䫌\��5�*�Pb��(Ǖc���}��0|��+�I��q�dzS���	�'�v�s���7�?P6a��J�yX������/���醐z��>��0�;�Z���'�J�q��y~
s�P��>�l�Ǒ��;�~խ���ϝNu���k�:�n�z�����D�&���k�z��ҵ�c��pW@M���+�>͵܂��S��/vVC�.7<޵S�[�f�腻�Կti�2�tk��a�;�nR�����J�����+?���YV�~�zE%	<?���s(�#��	��>��!il�t��������(��o#d\�#�<��%�O�?tF�Z���p����8�-�K�#j�W�~ַ��z�Q�q�>��'ԬWS�+����S1�'��NǓ�Oz�9�V�{<�>��O���7�;����0|Byɻ�q<������`�o	�ÐŰ�1��s�
��x��Zx����0����,��0�_*��>�a��i�a8��a��;0�����B��8����~��Os�2��$:�cʂңnU��7�Y�G���O�_T_V�N��8Ž�S�?�����T[.�+K|vKo��=2�}�*���먅=_�m�o���{���(�(�wR�,�۠��33��/�vM�|9$���Y�0o�m��tI7�_�T8tI�7�+���L0_+�B}�C�%;�d~!���̡i�@���j��F���n���M�lZ܍��S-�t�(��>�ѫ��<ɥ��3����28�-R��ڈ6`�$.�"Q#��/aa�<??��`���N9�-�o��20�PZ�e�Z*�F�hsKX�<��a>�,�
N�J��-�9�Z�rI+���	̊�D�f3�~Z��I([���S�g�d��X*�Lf�h�<�kw-S��؂�[��~��"��3%Dg��4�mܮ�5#���Y����G�E9�/,���֝�r?���x�~���ЗJ���(<V@n2�қ�F	��F�n��F��d�[ӄ��Tu���1q琏��F2�w�w�~/Q++����չ�Z>S���yY�""V�ɘV���]�E��4)9m��R>�Ũ���"�@�>;��𠠧���x^�–^��eP��:�SÀUnG�86�G��+�����]�6��qb{�Y�O���*�bּ��&U�|>Dv�U��4��lx����Y��K���ѫ(�Ȍ.�����	��y�h��m�+v��O�oP>m	s�*HM�8��,�G�jj���T��a�m>�wK*o#C��A(߭�}����O�
���]j��mz��,٢NfO���y�6��喆�:a��=���?��Á�il��5�����;ѹ�Y
���qg#;�d+���v��<�dKX��h�j�]�
[m&�ƙ�|<�^�"*�rm�yf)]�W��lP�k�pg4z�u�R��ﵭ���;2zaZ3�e�8���SR�V�ۗ��Z�R���ѐ�d�jfS�y�Xʦ�z��0���J����Y��Y7��"�E|B˥.p�X&'��_�m���Ta�ƀT&c�S5�:١h|^�5"K3^Vy�6�f��g�`�m��Yi�}�#pl��?̉�Ζ�E���
�mnv6(%��r�$:1�SԬ�ͯV����aɩ��4J��eYu�c<[r�e:������9���r�R�<�&q.&��(��Y���K�����ch�Tt���9�~���LOF�C��b����#�:cӶ�F��w >��Y�RMMc�
�M��y̓�ҳ6]�#�F9_6���ؕ���B���ʫ���4YI�UYi�U;�v�V��fj����|��Ж��
�G�;�e���Z����!A3��~��
�Ld�¡<N�j}/�q4��q�Q
����s�Q�
ߞ��h="4V�Fr��x=�2�)�ED�?�N�I��$|��0�s<�� �;i	@z�z�9�>���G���̅���D[�n9b>� �(����8=3�rh��7��L���Ft�k�l���#h�Y�΍02N�k���E�s2�
���Ԕw�P©ܩ�
�@>J��缾���'��0˫#�H���Gq���$a��;��9-%�T@�N�д��܌Ԍa�N�n�0�·�/w���:H�Y��i[ٮ���3��;s�"	-�j)ګ��bRh�QK���i)�
9�z�}�c�<�"t#Ud(�l)�r���+�èct(E���?�g1���"����Y2����r�,� �;��B��WĎ�`DWLf�K��g!ʎX��&�F;=��|�
��CwF[�<�r	�΃�_!�`�N"|Rf ��
�
���s�o�5�X����9I#�^u��v��N7(;�ue��!�w��c�4�XD�:sL�aY��Gz�4*��,�A��Y�`	�t�5E���^Bn�(�#�����
@+�b����y�x���S|�v�*t����
�ZK�V��d��m�RHgmb�6�".dPN:ֿ��NT��<��`����=�Y�,����H˾8�2[Ar����b	e�1���X�xO%�֚�ʜB�%�.3F�����&-!��'�{�zg�x��s�[`]�g��z�[w�YK�:{�ܦ����dR��v��i'ֺ���g��0F����Q^K���I��`���0FY�9o�ȳ�����UC��Ӱ�:�w8���Ә����XN���>VE��5d�^N[��۪���1\��vmZ��8��fO`�&�<�> �,�-1�4�K2o��%7W�4e髩��
�.>«R�Q�c1vT�hUc�G�&;$-� ��l�W�ܣ\z��X]]c�04�r�x�4�m�k��v�t=�dy�p��d˩ǖY�wJ�y�����>c��%Ɏ$�������-E�	��m��+D���w	�+�R�ze��������_Y��	�1�O0�8�;-��y�k5u�c��>Y]
i���5�Z~�IVE��`��+�l/q��)a.
�K�95XK�2m5u~���
�U�]�mʌ�����f��-�eX����-'mhB����
n*����3RӍ��<���Ow���~�����
�]��[���_\~́��S����xť�է(=��Su8{6��N�٦:=���٢vv
�mⲣ����
�V��9}1���	���D���ۓT<��tzG����=��q�N�8~O�wȉ��'�mD�o#Az.���<����Ȳ�Y�h�Lf	�i$ӆ�^��
�s��>?Ն�]��˟is90��V�
���|'V��pP�q*��Np`����t������B�:����j��`V��>���$���L�9�n�h��o����VYHA�nEU{{�(��p3z(v�w�[W��@��������i���C��%o�lE�zZ��W�q���r�[:=��^���R0�ַ!2�F`��Qg��J�:VA�X8�r��Q�!a��91ue���=�q%�E��UŶt"o��Q��sK_�˅|o�ۂ��A$!���c��B@_!V<(�6�z�g�f�
q�"�
]kkw�`�Tu`���ʦ�!;�{e��z��q��6y<����&��x<=Chq�����D�:�Au~__�K��2<��F�W?h�2�h ��L�:k�.w�h�ⱕ�E����/�ٱ��f�p��?B�;�����?`��3���D�������2h��Wk��7}��]
�2�<�Ń��P&<3	G�C����P(�%�P8���Q���	І	�#m|��f:9���m�������m�1n���Y]���_|����>8���]��L�g�������.��;�-ݻ�=P*��q�=��=p/o���h�U����O�3�m���Zx�c�q0��c�ƽ����`���>�F?
w�F���p`�:p���]�x�Q�y�A�$O�'1��!�զa������0���o_���7����������u�כ���w�}[��o�R3�ߖ�����ٖ}�1�^��k)�1N����^�����jz��PA���;�x���AY`�����0��=X��C~)��LGn#|
zLz�Ծe��X���(�,��Pֈ}�=�X�;���4��P!����I�ltOq���^9Z_⣏Neri�ͳ�Z����T��nB����g�c��Y���:0�byb����g~��2Yɯ������#h'!�������pTҫ��>Ip����B��&���U�Ͽ�χ��SS{_���PKq�H���Q��AppManifest.xamlPKq�H�\r8�.�SilverlightMediaElement.dllPK�0media/js/mediafield-mootools.min.js000064400000001667152177723720013342 0ustar00function jInsertFieldValue(e,i){var t=jQuery.noConflict(),n=t("#"+i).val();if(n!=e){var r=t("#"+i);r.val(e),r.trigger("change"),"function"==typeof r.get(0).onchange&&r.get(0).onchange(),jMediaRefreshPreview(i)}}function jMediaRefreshPreview(e){var i=jQuery.noConflict(),t=i("#"+e).val(),n=i("#"+e+"_preview"),r=i("#"+e).data("basepath");n.length&&(t?(n.attr("src",r+t),i("#"+e+"_preview_empty").hide(),i("#"+e+"_preview_img").show()):(n.attr("src",""),i("#"+e+"_preview_empty").show(),i("#"+e+"_preview_img").hide()))}function jMediaRefreshPreviewTip(e){var i=jQuery.noConflict(),t=i(e),n=t.find("img.media-preview");n.each(function(){t.find("div.tip").css("max-width","none");var e=i(this).attr("id");e=e.substring(0,e.length-"_preview".length),jMediaRefreshPreview(e),t.show(this)})}function jMediaRefreshImgpathTip(e,i){var t=jQuery.noConflict(),n=t(e);n.css("max-width","none");var r=t(i).val();t("#TipImgpath").html(r),r.length?n.show():n.hide()}media/js/flashmediaelement-cdn.swf000064400000376167152177723720013232 0ustar00CWS��x�|w\��������a8@�&��DHB�04C@l�M�q�֢�EP�^hŭh)Z�Vk�l�Z�V�߹�	����}������y�=��s��I*�&B���(��!���Un�$92��,R�I�)�O�Z]*��?~��x_�U��wpp�������;X��M(V�+݋˜��"e9��RuaI1CʳK��!}����t9--W)���O�RQ�(V�yz{x���I^��H�(/-U�ȉ;�J��������
�<���`��[C�G]�V*��d+�h����c���֬	1�}�w�)'�=rJ�<KU%��9S�����B\��g+�
����c�K�S��Zb��R��%�[t�H�R^�_.�W�J����i�r5ԧ<��rc|���0�v�'i�wZ[�����嶉Cݓ�RR҆&G�v��E��r�(G���z@<��#X�?~�[�
c�(�4t�"�P�b�1��k�̤#�����L����-�+�^3�7fC}⠩X/LU(W�X�-AG�34sT��d�)�1������=�6�%��Q��3�X�v�e������O���"����U&U&_�3���Sq������\Sc�3W�*����XN�\c������U��'V
V\���{����I��a���.��W��nb�6�UEdX�����o�o���i�_=�a�5�oA�K^_�����l��_�����jRc���r����{�����+
Mk�:����rh���& �4Ӱg�|�ұ_g�s��������=Z����g?m2:~��1a˴��n��{n��fuz�g���ߪ=�'%G.�k��ѯ�G�.�R;ͪ�WV�n��(squ��.�a}�/y�z��Τ����"5{�[��fV�7�K�
���ɸ�-�����<.+���Vi��kw�t��K�4��jtplh��q��4��|+c��eS����m��<vE�����[;�8t�wI�ڡO�QgNN��PT�*$T;��J'�O�K��h��U�[��$m�4�φ�x��
��V/p)]0m'��	E�~عJ6�H��z�oQ9�?[��MV��
�sՠ����׻u���A�(����W�K6����ak4�T��>ӽf��.���G��$}��8���uE�}��Y���#|�����h�Ë��.g�?�y�s�,�Gz1r��FSC�:0���q���m����kp��.A1��H��R��{�}٪�z9n��oChԌ��%=eƇ�&��v�_�?@1�{���(��T�
�O��-/�[5G��D5��8�YcP�$�h@����n*8{?5!���SJ�/�1qgZJ*�S3�#�
�H�
��{$fvJޤ�G�����:����ɫ�I��=́/�s����z!�x�b�g|������>IMBFIH��ތ���V�[�L&�<Q�{u���hs
�+��ݤ����Bq�C����,Ch�L��2���N~#�9�^�ڲ��r�%/[)�WY+��0�jB�l��Y%��g�����+(m�ͅ'!��:4�M6{�1�ɫ����X�V��4�"�A���Ui+�_��<��t������~ܫ߼�eH5ro�~��g݉|$����}���TG^'=/%��P�v5��R��W�M�s����ҺҒ��-�����,���e�?�7��ϱU��}&X3�i�w���3��^z��Вa姳�i[�˱G����vi��7\D<�jq������3��gǙ_�O~zb�
���-�oC*�G���o���vA2���2d��jלl/w���}}��]9k�4v8��״���~uS�Z�-�4�17:no(��Mn*�m�4�l����W�d���qu37�}r+����ͷ�k�V~�Ŀ�n7��q����j�>c�4�t?�{��?>�*rQ�L��4��W4�l���k�6Qk�u[����U{���YT?p�_����Q�ON���#ã׍/�fW~�3o@���������	o����n���@΍����D��$5��wz'K��9�pr"�M��ww,�ح���L�!Sa:�p��V7���'��V���U������S“��>\[Ѝ�͎���˽�D���Q܅~v��)j���F�ٴeW�M��o�^��GC�Q��Г�'7���s�J׃G�g���(n���M���M�ݕqwc�y�	u��!������nj�
u��{�]}6�f
���z9�.���ߜ�Ȑ׀<������q�L�ȷ���w�o���<-���	�n�&��i@����͹&v��PtY�ѻ���F"��gx���Q)�!�����An�Q3�/�6 s�C��s���ދ\�f�@�����~�k��?��v���T�\ZB9S
��.��Jf��&!�+��r� �ɍH<{[ژ]s2�.E��d�ዛ��R�,�o�X���~��T��À,$]�ФH�!��w0y��v�FP�Y�N��<y�P^�}WTm�m�A�i������GW#ˈ�(]vX�eͿ����g"��~GTU˫�.�}�O�/�����m��������x�η�Ӵ�������O5P��܋�N�=����:����u,��n
7����P�/�֝�}�C#�\�r�ي�8Lo^ݴcB�9�K��~��2��wӚ5gV�h��{bZ#�A�bm|�KX�Mn��G�o�i���A7-ն �仮[�j��:���Q�������ULS�O4��1�߶�M�f혶p�!���g.��
�3|����	�B� ��u{�E-���_�\�bsC�m�1_��n�B��mE~���roY(�\ׂ<�l��Ӻk)o&�l8�x�x=�2��q9V��Qw��1�eyu۪,���Ղ�%�ȉ�.���s���	�?:�b����m��Q��M�����!>��]<�~t�a�]�+�<
ZQ<�o�7��Suw�E7����5|ﲥ����ٸ����'���Y��j�o�0M}\�F�	�A���_tz�K��H�Eha���Xǭȇ���w�>�.���b��@��Oj,o�G�)2�6���1Wf�4����,S�?E�P��.�L�bX�|��r����c-
�q��]Y/�a����q�-،��M��c��5N�d��7��bd�em��Ӌ�º��؂���w�D�}��]�\Zh;Y�$����(�_s�2�LOBy�u��z�Hx*[����V{?Ň+Ǥd���Y2��ZP��hk��~�!�kyL��G|��ۣ#j��
3�Hf���5�F�ߊN�"�z����}���\G��-h�	~r��i�ۮ�l�,di��,��x+B���?c����'W#��f�2�f&8�y�+5�	�=�j���3�4%!��!q�m�"<��+��J�-@�����z�q�gę��Ͳ�눐=B�Ǡf�W�w�W�Aμϡ�7Nz�oP�e E��KS��);������3+����}��x%<xrf�΃W�HF�<2�-U����5�׊�W�����OׁK�JG�y��y���6�33�e/�G��4`�}�v����e��-���Q��M��է�w<�%#B��tP��s/S���$4�����N��{4)bZ��%��`js�‚�n��������啎hG��P��񵩟[͘�y)����O?��,~Q���C$j?�8��zˠ��Pn�ɳ�[�4ތ��;����9�U��|^9h����5l�����8�wIq-�X�~#!�OGf7_ɖv{t�zA�ѡ(mW(�.��J����T�txK��C��&�2��3��'���x�n�+�����v�Qza��ŠKnOc�⇤�X�g ���=���959y�܋Fݾ���{���;m���qH�g��b{e���.&��<��ɿb���#�#T�%Fzm8Sl��~SVjf4<�A�П��GK��Q��<e��{1*�V�����MҌL��`�&�~���lsL�����#�}z�C����U�w
� F�ʳЈ
Ӛ�&��ꔒ��u�B��q!)��
<��e�W���x�w��(����%ေcR�6
�m_,ii\�34cW$���نM�*��VĹk�X�z�L����-�c�1֠K0^�1�d���"/d�O�!X:;p�Q�z��Ժ�uDX��w<�g�H���ee�2�z}�^Rfp�Y��l�[Q��s.��K��^��,t���=o��[19w�o�t��n�3M��Yfiu�����^oڼeʴݜU�YNK�6��_�ilC����mջ�W&��jR[�"�+���
ɳgO���[뚴N3�m쏰[�亭7��׶\i�-���?���h���5�l�\|,D�einO
ct*?�����"O��}*���
d.������a/7�i?�]��v-�Y/?�\���5��<��ϻ?�e6C���?뷮����Ưn�N�oZ?��>c͜
��)��S���
[B,6���L�`�,*�k���IIw���CF67��[�]u��b��i�qGک�~e������wCUӏλ9u3/)F �J}d�k��<��{�wO�2z��^�ǃ[�,6����HB��ґx�o�iތ�p�4C8g쮨y[�Jb��!n�=}�S�2��p��7�n���+Y�z6!~���٭��O�G��.5o��8�v|'��h�u���9i���
�x��H�4m��7��`������q����:Dۘ�[���Ŧ-�nH�q�@Fa����Y�z�֙=�l.H�.�7z��^�!�R
�6���2����ߒ��E�g>����\�����jiFӵ�.V\Y�D[���3�� ��G#֯�KSɁ<�v}b����!�(u�ud�w�e�^؆�Zf�P�Y����5{,d���ɜ�嵾�n��OV}��\_̺�YT�>��ɠ�yw_�� ה����d�6"��SJ㦞^f;`<�=i��v�W�A���Y���Y�����%�N��F���Y�[Z���w��~���4�L�=�YP�Ŋ��GR�4�m�u���x����%�7�;5ή�Z�\4�W�a�[�S]��'�Ƹ����`}��D��e>/x�4˥��2ʗ���[�E���u���la��K�H�DƗG��O����Mވ��F�)7{+N��)��.��p}9���7�'�~'nz��] 9�4��pv��e��o�[ꓛg�-	�Wܾ��3�H����3�M���i�/4�@U�l���W��4���5(���Vc�O��K��{���z���W�?*��N���Q�sO�66��V���?�Hg�ϝ5�b�e�|j�
�|��m��Lh���+���~�Gc��79���u���w�5������ml��!�A��Y�U}ˋi�ٹ1�#��X,�.�8z��0pm�"�M֭�����~�3�s?׃��b��kO{�^e��?�L�~Gh�
�MS;j�HT[/���+Z�p���6�
�:mM�
�aT��ΙG7��F�^��GO��wN�T䀹ˮL��
�A����A�G79lzu�B�mݚ�U䟠9+I�z����sQ6�!�ʧ��e��:�5J{����f��㸯�
_�wI��d�ĩF竑*�x����h�X� ��Q��pI�dd7�h��߾�p���U�������!�q�����0�f_����{��Ȓ��Q�ۖ�?ߎ�8���|WTli[�Α���D�$~Ph�e����b���H/�N���uλ�"QrJ�|~�bQ�1f�l�c��c�%�Hӈ�p(]~�F����?£�[Zv���^(V��k�/���l��k�C1L�й)�f��*`��rn��5��^��K���=���	�f�����S�O�M��?�ܬwkrզ�� K�,�0�8y�,�hd�aYS���C�E.i��6<6�X�}��G������+kqT:R��f�p�/�f�
���`TГ�{֝|X��+��Q�� ���t���rlpip�;�xyU�'N
X�(6Ⱦ"��b�;�e%G�'�
ʜ�CE_����7d�w+�,Q5 ���ϒ��k]�`�z��qً�O�W��M�F!^����
�)���ѯ~U#�x�.�+���y�n�.���=��er�7�lԂ$�����:��#N>9F�����>�0j�;�(�|��i��_��r���򧪭��_}<���\�[�P�@�;�>���BG�f��.Z�>�&�<�9�*~���᭵(����j�kU��51_I׶�Dl�9���i�-!��A��_�7<���b���<Xs��n;yE�]�k��	n��lp7��O�n��-��r������������KS+����[͏<Ok�枟�?�Q�G�W�!���w/ �W���
n�#~��4���A�8Fp��_?�Z�,�^!~�ud���`�,�2oLEܫ�?����ߴdd|�
y�2�v�lDPח���΃Cd0l҈o�+�X�3>��ṣ��v�Jk�u2��n�{�T��Zx�A�ھ<:t\z/2.�qx"k�q0V�e�W��t�Zw���e�
Ⱥ%W?n����I���|1�����5��\W��9mhEF�2�[7+��1��7��$vnNΝh۪8X��͗��\�=2qIB!��z<1����&�P��_Z��'�@=��4x���.^�b�`�(E}m^����u�Z���/.�5��D�Z��I�-{� �f�9K��X�>��&/���Z�r݇Uۗ����ݪO/�q�3Y�dY��9�t��<;8�,�����u�e�\b[Pm�����p�ֻ=o�W��p�tٮᎴo�|%\A�Տ�z��B�����9)[���������6O�06�;YN����V�N�v�q&ǫ�����nN�K����J���o{z���A��5)�&�+�����j�t�;!�,�Mݗ�zE(�)���Z������ȫ��q�\�т�k���:
��G�"u@�b?d5j+�7�.ۙ�J[p.�Zd�6�x�٣�Ca��Fڼn�dz��Q���sw�K�;��g"�EƄ��\w�5��!�8=/�����?�4^�-0��h�|��oQ�'g���r������ϵ��W��[�<��5�a�\���n����>��~%���mmsz����rF�Po��E.��Cp}E�y!o�|��G(�`$A����A(E��h$�2�h���PR %*F%H��P9�MD��I����1g,Ɩ�c��L�aG�7��3f��b�
S$�XI���'�Mrs<�?ڤή�α�^�U�I#)��O�{=�In�~��$���^����P�In'LIV�kw�b���n�J:aJ�����$7�=JBI�J�G����A��}��v4�BCp8�p��r1ŕ�N�XO���-C<DC��<K�TJ�T���i�s_�z�+�/�Sy�qݐ۳��Ǟ�Q���\��9E����`�S_����'�FS��z)���/S)��z�C<�\wt�y4�O���ȩ �h=h�D��r ���'Py׃F�A�%r=h�=��<h��I�ij ���é&�DK���a��_Hav�H$Оi�$f	�[Ǖ�R���$ȯÉb5E��>�"����T*��������_�SL�iR��`2J�6i�7�QM�;��SK�Ɉh�HN#��&
dR"��0�m�IaV�z) �4@R/�vʣy�>����#�Ha �Jh���r
G��y8��	��` ��r�2eT.���`5!喃�0TA�
*����<�x4쥀d�9
0�
�ׄV�0��8��j����f�J���# �iF�"����)��%���%�'qIT���^�q'q�X��%�<�Kz�`5EM}��[���@�0]PO������,�_,�.�6<_8��K�k�P
�z�^7Q�A�i��4�b�w1ͻ�ӱ�K�u�)6Q��]�U��/Py1����+�\8����eE��e��e��e��e\�%�:���(N�~I���E��T���E4u��,b�D�Au��έ�(.Lz��������:�[�U���t,�XLqկ��T�@q# �7@V� �
@2g7�H����Vq7r�^����D�AM4�&(q>�T(�ȋ).TB��K*o����X���}��#��ɫ݀�^�f���o�_�^�8F�$��q7C�*��\O���n��Ч_����D����k�Ow������mt�M�O�FD�
Hb 6̀$�m4�m4�'�f:w���b��?��nP�ܺW+�;�C ��N�g?�4�;��1@��u�]�
�nȵ��7���i�ORMwԺ��N�&���B�����v����~����VC?��b�݀���$�D�݀S;vr���^��(�x��i�g)�Q������j�s�#X�ܗ�I[}CkM�d�>�@ݫ��h}�d�!�@�_D�
H���4���h���F�$լ�@k@�f7`�+��0�OS<K���~����o@&=r�z&x�j��Gi�Gi�Gi�D�z'�w�8�M3 ��(�v�z#x�j�s��8��f7�$N"�x��i�g)�Q���2�4B?�����M�I<D�
H�!6̀S!�4�4�'�f:�$�5�u �}����!�'(��x�b�:�)�����̂ӴD�i�����k�'I��r/p���J��V�1^��q��Y|���,��YZ;�i��#�n�I�M3 i��$�:�৙ ̗6a����"�fГ�h�O�����Ӄ14�y~f���W��A5�����ډj��ƍ�Ջy���_�9 �@d��Tv$,x����F��T���ʌg�zPd�o��
0��;�@�1�RM)��ȭAoIъ��(2T�@eG�NTӋ�ոS���b3@�s�ʗ�T�A����׎��l@dg�n��!�x�2���h{��@�
�D��P���D�ʲ�zk����P�EG�8��^{S�E@�1�'E��
�;P���
d�k�v���_��A�1ϑ�
G�e�V�Zd
H���I�!r7�'�<�܃!y�<'�MS@ƕXZj��Yl
(~cG5=�O��ħ��A6$� ��_�5��F��Fe{�EG@2���h����'��X��H"'w�H�5"�y}h��lr�+���ր~���7=��H�%z7��<��C�<W@3@ҳ�Pk�H�wD/�C.S@26:QM/�H��1�y��BКjz�#�Hщ�3`�kW@қ��^�F��7$�ٞ"��ځʎ��z��.T�
�t����uH��p���E��|:���7�S��@*K��T���H*GQ4�@l���Nd'�/m?�f����g@n��
 � ��X�
��$��Я#��@���LG8`����T�@1��9ϟ�vXg�A�"p�+G@I����HJ!	��S9�b�h���ȁ��Hִ�x��)�H|��A�D�����	�����7 i"�R�@*K�h�R�E1�bEs^� �AВN�`�ӑ'�	hLy��s�ʗ=��H,�C�8�z�zo�>�L�/�_�?`��@@�n�!��T
�:��#)&PL�h�@K@�@���S�Eo@��2�b"Es^�r$��@����K�Ҟ� ��t��^4Շ�/ �qb/Ԣ��(�S}૎(*GS����E��A4�A4�PZ�N�P�D��X��h<a�>���ѱG�>4��DB4@2N�A1�b4E1F=�����^T���O5@��&�b$�(@�x���&���zS@��怤%#`T[QM7@��t�|�Я��,�$#�h|(�SM�RYB�RM(�p���r,�żH��
HZ�` ��Q�xQ��A���3Q��ހ��:�߄RL��Hщ
�f��`iHVl�^�~�T�H�bHb r@�`(�0@�H*GQ�\�"��N���ȋ�������_G�YHes�:~���9/��� �y	`cHV0X� �(׏j$�(FP�9/��M��&�{s�P��$+�P�q�w@҃C���})�R��I1�"�g�Г! ��Ȉ�TS��(��a�yf��}�8��sp�^ȳeZ��z!�|�Je7��el���f�8�K%����o��s8�s�p�Zr
��Tgқ���q:ҟر��KV]^B�rL�t�e����|�e�z)�����x���H$R.���]ڕ�1��},�]Z���K��o;�{����r���j����K׭K�֟��5X�.�N��6��Ps�-H]�k���D
��^��d��[;�.;aW���Θ��X��gH���}[���� +28���ԑ��+_ތ�@�$���'�*��Ui��~΃	S*���u��(S�*��)����M%���p�@T�Ao޼ىN!��D�n-����lݖ�~ 7��C|���S*�\3.�=���!}Dy�a��g�4����4�I��J��!�Ll�W��jx[�'�3cآ;Cz#4�=p2CO#>x	� �0@��E��%$$p��gC�}�߮2��h�!�,�t��i��ˇ�M{�L��˽�Ƀ̇G���77�@�D�!P�����5��[��A����Lg&‡;}�?�h�~[������HD	u��"��6Fg�B���h��i���cL*<C�!Cc�l��P�PFѯ�٘	�*���.d	|��
K_lx�z��Y&S�C�:!
�Ԍ������Zt�oL܈ߺ�/���7�|��M��S�
�B���«�?D_���d~�&d���~�iCF���Dl�~��t$*�ݎ�iJ{��EV����B5
�Z�IM�8�&���V<�ޯ�<�"}��B*h�nD�������O��4�!��"|S
K���VW}K_OSD��f��t�m��'�=]�}�~l}�L�U�N�����s�b�F����k����7�|�q�=(��2�,E�DN0��9����`�G`ʆ�s߆���I�+�A�����ulԈj;�Q�
z��{n��K���`�^t�����]���#��~�ܟ���W�m>�zϳ+��\��'�Z
�z&nE�V��?���H#�o�U��A�!}+P[��	���l�~.�j+�yY�3k��'L`2`hQ���2rea~q���,����<y�"đ� �LY�'������(KT!�Ny�#�T��
UJ�<��8?������*T����q�����k�'�	�,-��;�Zd�
P7�T���o�$��Wb��m�V�d�&�
$Ӊo
=
�zja���_�%��U8�:��
&U�o���ߏL�sc�>��"���cO=G�� ծ�E�!���j��.�B��l/��I��i�7BW��[g}m��K�zs fˬ��J**ia�"S]��
�F�5��3�Ryy�"3�\]���ư\rP4��DY����Y�����Bg6��Fg
��z�!2��J��	�٠[��[�4����d{
ۋ�Պ\�b�^o#�K���Pd,�5l//�J[������n����+W*��
Eq,DB�b	�~k��&��݁hU����Z~mN�J-�UKH�F6$�Ƴ#ē�]y�T%�KB�� )�D���%Eu{'m�.W�Uz�!�f'�+D���є�аPw�X�wOh~���y���u-M�ݡ��m0,]6MǏ��m5hvtF7���o[�,���;��Б�e���!���d~�M�<��fB��ɿ{�a���>Q|P���Y!W�/�{�/_� �Y�ʁ��W���� ����[�V�KR�*����p��w�}��W��R|=}��<�����b#Z�G.[AC�IQA��o�>Р��\�P�XI��T��&��E֬^�H�PRQ��P�Z��O�:���+u�;4{�"G�A^X�P�|�(�Lty���B�v{?�='�l[I�I��s�;�zɊ���R��Qe��z6G�ٹG���Eh�"=���?�r�I�=���|����"�6�����²X�R�/W+W��%Iw�(`��'`W�RY2>���Ĝʱ�e$U��Dt&�b��Jx���HIf}��F%/R@���-�����.��͂�]��Ұ�\A&�xCi��4W�'/W���GH�:�l*�25�|��bZa���?��U�(�ޤW@��\*��Ǘ�r�T�R�l*q���4��h�
�n�ч2��[���
?��`h�zxx�x$AEaYa�R�/�͍((T�� �BX^�C��B��e*���\]B&.O�*W3;�e���~�\Y���,,K%�B5,�*X���te
q�L�K���ڷ�g*��@J����J]Q�,/R�V/SDC7�
3�>���*�^q	�J��I�s�7ϔ+��'����'3�l����	J�qf�S
y�U+��M��aP�ИеRM_z����"�g�]�i���l���N�G��v�S+1���*���7",""Ȕ5���9�5)-S��0Vȋ���tM�D�0X��f����R�{f�	]�)DKgF��`a�+TBh_�P�"#@�ϤXX�(OA�|E95�K�&e�GEK��eLSRr�JEBI�B?qhfJDX|���S�ԗ��e�&�a�2J2�s����QE��A}G
�pu����n&1�)	�f�a��H�[�ˌޛ�|:��2١GG�8��Q*�e����Q`b��?T"(�1^94O��<���Kʥ��[S��X�v)��C݉��1ɕ*'���W!?z���	v� ʿ,�"I��CW�!���L�N����<����?T��=iV�[X��dD6���a/(#}'ap%,f�	��2x�#�!aD�SX�uS$�t�0]s��,a�s�
�W��w��eC�'���P�'t���U�X���
9c{�+�!Ȅ�0���=��%�K�el���G	��b#%�~��+���%u�*���ؑľ;�ĥ%e� �w6�}rĂ9�Gn:,6D��E!4�Y$a�Ȇ�@H�0ղ�P*
�`���1D�\'�Gv��)��,�@��:,�n��vb�����r���؂,R�V�3��S����S�����%�hי��xrr��3x���A�2�uLq	�6&S�+1��9�T*ذ`5/Qم1�i��z|͕0�"vt�yX1C�w,x��x�9�����;"�H� �h��8W	�42M�/��]D	%pʧ*~D|l�C:��<�3V�kB�#����A�,>V�䨨D+j�� �~5Z~�bBv�\��?$jxf�дD�-�E�O�ѵv'gO#N�F<?ЈU�"��t-g/c��0��F@N��00�F>!V[Ô¢R���^�̷�����-�S�Ϡs낫���dhйs� �
SL�˨K6\c�MP�� �S���*J
s��O/M&�)�^����M�FK;O0�,��|�Tx���)z�1`�����6���Zb�Z�h;Ep݃�@�#d�D++Q�ȏ^M�;�;mNna&�+y6'��t]�h�W:�L��A'���U�X���CuI~�R���dL��5�$�w®��!lD*�6|�(��|2����-�0����b&����$r�4~�@��������̄��d3��F
�6�D��K��d6�����4T&e;eh�ڀU�G��F���Fn
p��W�����"e�j�^,�}�O@�����)�L�=�h;���	E!L~��&�Jc��ԡ�(	��$ȤQ���,�
&�VF�#:RQ�.����{���C�y�BC��UV�Tx�~�EdP)�sI�
��C�%��XV�:�f�
r#��G���q�ý�Y���b�ayo�`�8rE��JυtÃ�e��p�c�`�A�r�9��L���EW�ˎ �B��iLz�w�Y6z�,�k��]Xi�y�����+��s�t�!�"��
������Ȫ�U��1]�kD�n�֧c��%����wN#=8��
k
׺���2i	R�V��R���dC*��F���1͑�@�Ғ�pa�W��/,*T;����4��.�b�'>r�~w�c׬��k�Z�5�L/��(���9p���K$�1��:IO��Ϻ�D�C!��_t��0il�`>�-)�"�&J��ƧH�<���H>{�n�6��\�nL	���eC)�ƄI��������`ʼwz�琓4q1�����=0�������#���±
�;r�>���N&�C	=���0��5�&	g�dx+���
��LH6����+M�^(_QRd��SJʡ���)�j�� �br�aO=1a�����KsA���e.F�9��^��䄰��rPPT�sr%���Z8{旐��J��(aL�U������d��)�ӏ��H�Wp�+���Ȁ�3�#[��B����g�.�pOz����%T�6�#-�k�՝8�}\ץ�#i]W��� �$A�/�I�EG�|��̓M���
O
#ܕc%�N���Uo�/���W������y���3��"�,a]f�Kv6�G�U���u�k��if1,
����ٻv҇�/�$����;Mto�Šsò�a�s3ѰN}l���pң�fq�?��Ǯf���z��5w�?G�^��?5A5=���j��Ā�0�#:�?0IX}�F��Ʌ.,.#�<�37�Wo�ܘ�2R�Ի���_��%�_K�A�Z��%���\U��*W�+ʌa����L���E�I��j9,7r�p�(��r%"Z]�aTd{ʜ���bg,8�K1�%��������c�oN7���a�[���/u�^�TA���e��ܣ��ˇ=B�+ sRE��)K�
D�'%���έ���Ho3�!޲w�Ul�]�%�4G���s�}?B�,�L��A����(�%��E��t$v��’���p������Ţ�����T)�&�?B��ܺ�������0�j~��� T)r���P1��*�YY�
�͊&�ʗ@^EC.87(��!l��7���k�.�������33�K2�%�>^9ӭ=�@�,�{��ys��A^�� _?nP�?7���H��/���
��y{y�Y��_xǯ�MR�Ñ�}�)~~A�[o_�<�wH>^����y��7��; >�����1z�����]��a�&��	�Y��#A��{�NAf(I�A~PVP�/�;��� ������} 2�y���W�A���E����|�| �j�o�`H
�	��y>�>>�S ���
�A~���	F8\�b���<�`�x��VF_�|�3��
�C+x󡙼|��|�����|���A^�&�7�0 �PK���}��?��}�|���u�"�Q&��FTHl|}|����|�2j�@~���,�t��@�A��A^P�O�����s0����К|__�@/���_�?`���	=�1���􃿖Y�7���?���㦤E��w��t&�I7`�`n�9�s��=�y��~��@�;>��Yq�9�+}+���������a;c;;�������U�U��J��[��X���1����	�"C#c������tSZ~Li��?�����sEo���k!����	�w��žX者�X脅�X�{�Ma_,솅.X芅���
ݱ�=�����}����09�`,쏅�0C�AXh���X���X���X8�0�aa
ʰ0
G`afaa6*�0�p��B%aa1�`a)v��2,Ts�X8+�p�a�'X�)~���s���_M����@3A�4h<�>h�
�����뀯����P�F�F�Z�&�M@���}
�h�m�h/�'r3������@G��:t�$�)��@�@g ?|XV����y��.]�t��qG�����U��t�.�}�߁=���_@O��z��P��m
4h
�T�i@Ӂf��4h�\���
�|�j�@�XXl%���F���#���@[��m��h7������/<��� 7Au��|��j��@���<������3�w������6G�+ȿ-���~�w -�#��=���|'H<|�v�p*�t=_8���y�
���h�	��
xk��m���lvr��n���:΅X�s�'H��\�)Нj:C8�r�Y�o���s8T�#x���h��]m��@���D��lVp���<��k/�nQ?��΃�
��=H��+>�(E�e�&������Zt�.P=P���s�@��=�h�gp�����x\��̅Lہ����y@��BCԀ�|��C�gC�,�@�����&O�d*��:ttZH�[�O��@��65m�jj���k��@��u�#���
������{y�}@���y0�䳯�dz�O�0��W0��U���	w	�_�!�K�|��h�qP3n��Ux'G��d;����x�N�‡���.�p�t�K:����i���׌/qf›�3lLWtA]ƿ�c�� ���y�
��ř����"Ouү�]�4�K��ؚup4HE�CnP~���h�T���iW3��!�mx>W���e�f�����7p5<,⒀V��:����Ws�O�=Dļ6����%~ļ︚��a��縸�s�K�,����,��e�X�#ˮ��*ˮ��g��²�,����,�Ų�,�ò_Y����>�`ٟ,Ӳ����/�=a�S��Ͳg,{βX��e/Y��e�Y��7,��h�|���,�²�,�β,�ɲY,�Ͳ�,�bY5��l!��l1�jX��eKY��e�Y��e+Y��e�Y��e_���ekY��e�YVDzz�m`�W,k`�F�5���e�X��e[X�5˶�l˶�l�v�l�v�l��}�;ă���*��CNG�[9�
��x.�f�h:g��VQ�H�y�uI�j�d�[B���n`�%n �h���`)I�`l���!l��h6^�S���,.��L�h5�e�4_�`^�Z,ց��:�A��8��
8��M���Hخ$��uۤ�7��[tB��uBϭ:�٦��@�p���i�NpޥK�['�ޣK�W'�ݧ\����6������
�u?B�u�# �Jy�����N��x��{�����$0=�
����[�	q�`"|��|��of�|���3���A灙�����q�E`8�`�8�0+u�5���
|�-��
������~�Xw��8�:��8�0�	�'�戇�愓�s�)�녥��ew��������i�����߁������#��G"ؽ�q14�;��H�$騌�0�"n��`��)�#�<�j[�O�C-\�a�%f|��G��b�ǹ�1���q�,ñ'�ˡֺ��=G�50{f^��^i����+0��q���zqz�@��H��
E�-B�;X[�!��1�"���
@.R��<�<�hC�g�a��=��l3�SC�Y����X�q6��k+��[n�ߞag�
����yVD+��N��m����a�g�g'���^�];z�{h?���v�>rF�91rp������q�� �����&�;i� �(w�N���!��d*n�����}��2�vj���ibh
7δ�4�i��>߯3
���7U�a��SQઝ�3����2
1���#�$Co����e��f��h8�qE�q��<���\^஝���� "м��v��8^gLj�I]�&����+���֙ՙ!D
�m��i��9:��J���h�ꌥ�ζ3h����}��t����;~{W�i�t���M����
���u�#?0M��i�j���LA�e�9� P�@g*� Zм-�� �B�q�~A��7wZA�v��4�S�t���h�L>4��_��A�%�d	qi��0�O�k��>М+pƀ�<���Lڕ����5��Ɍ������A�/��мм0y�����E�����Sy'�B�qn�pNt$v~c�nw�(��ڞ�
���y�E������茨��y�b�{�AL�b��뉬��Sl^�<y�v?��1��x�:`�u-�v��N��d�;���!ڃxt<����4�[Njb�=e�3[	RH.n��j_C���T�Fuq��S�%C}�B}߯o"��1���y�3�B}O����t���*{�0qO(���;�-�XW��N�Y�|�U{�K��G�q$�8��8���8��B�cW��W�8�����1�=��y��=p��4%/���K��mg^�z"��#}zۙWhi$k{�V�o��e���Mpt*h~~;�6�M-����He���t�
��ͣ�5Ϯ֭
�Һ��Fgw!�<��<�D�s�����
��<�.�I�ׯK�407�<�4��4�]���YB�p[��G஄G��g���7�K���Yec]N�3 }2�ܾē��@!.ns�ڧ G�c�h��sx����x\�6|��-*�Uq��l�$KZ��M�lkm�2�mZV�"]�-�d�4SCpB�mE�P)����h�`�@	�$�$���3swW�~=�{�N/gfΜ9�NI~�9f�7�k��`�TO��C�DJ4�Ga�	�^U��.H�\�.�I.�/���
K�(�;_�
~q�C�j�@Z��aq��������������b���%�b[�ť��NX|VX\&-����riq7,�
�+��=��&,����b���JZ�����B2�m6ډ
��:|�i��
>Аϋ�_ׇ� �T�jE�NV��T����t�>5��Q�2�W���R�M�o�㓥|���O�y�

�͟��n�9�G��
S���ۄ�n��7_w{��|0�Δ~�J |�}�
�lO�h�����/�྾,��v_��b��J0a���<��ߋ��D<�.W��^��v����]*�����p�P4M�1��SS��/��=��@E�]b��_����/d�Q�Bf���+�uLz=$�^������K��K�Od�6�
OR�>?�n�R�3��}���^��#��T���j8��F���U0��O�%��I��1xx�<���;����"./�c
�QH&`W�ft����0��������U�I[�5��)��:�?O���_|L���/a�����U�9�p5�I���q>�ؿ6�~�#����b�9do+�~��C���|���������Ȑ�(?_��ؐ�$?����ۡ�k�b��P�(̩J�Ω��;A����3����q70�
⹞��щ珰Ř�4I�U'�����&�_�w�O�b�:	��/���`���=��m8����(�'�?e�B������X`�-�i���MYpt����d�λ�D_��z0�����[&h�}�1�Q�nA�Kv�fl1~�*-����Y�vi��-�������b��O4��%���R��-m�ֆJ���|�{��0��6�Am���s�!�>�6��?��a�����^su@ɮB�j�葋���\�
��A�~L7P
����׫��
�T��	��
���ka�R
=DI^�a��T��z؇�>�����z-�b�Q�1���&�q�>(��y�Ҁz��$�CGd�4~����O�7k���d�k�dh'���2��p�����(�whx>�O��+�v�������oP�7�KT$��	�$fO;P���$�PJh'�{)�n�߆�[�;nV���Aq��Ђ*�_;�9���&Ƀ�0ު��?�҆�9��d\�C�0��ݮ.a�v����l��V��GS=�A�2`@B8r4�F���I%��|��߇��^��������i_?`�����{�	2G��Z���G�n��/���͏a�Ն���1���},��ǰ4�U�WE�OF���|H�)�~���_kX�=�"5��ߐ
��m*�ߍ��Ei�!%�{�>���ѿ���e��"�_����U'��4!���6@��s*���$�1�����u��	��7���Cs��S�G��M�#��#*㠃�4�b/��1R������y�)�g�h�-mر�#���0�=��.xWĜ�B����?��lh1��o�=6q��ȷ�ƽ��f64�V4$K����訰����
�@�5
g��4 ��#��T��
���suJyB���ԶR>u����T��.��IU�L�ؐ����L��(�S�@@:	��NA�D���v��#~ZH\����Cؐ��WRV�_@Y�:���u"�}�<t<^���@u��2aq��k���
1b��9��e����o��S�n�B\l�mƯs,��r?��$H+U]j�c�^�at���Q��M�?u���~�����~�cCC<Q�A�_��7�$�sⒿ%쩂o��V�S|�����E���P���Te��s�}�gU�~�?�`�:ZV=��Q�b���!�������
�}D��d���u�$S�Iu�F��`�U��@����C��P�OЏ	[9A?�U��Nb�'�9��G0 �Ml�Zףј��/���&F�Iڅ"���Ppa��(��K����{��:} g?��R�C���]†Y�>&�Wa3B�6t��7��.%L&�x�#�'3.H.c�0#p9�u�_	�_�:be�׊�a��E]�y����X�_�&�d��[���!��E�$;��x`\�e�̘(��H�&
��
���L�fL����TP?�Y��-���)�0D�}���/*{Ρ����!��D�Q�{W�J��;�W�aP�?�)0��4*���Sf��?0KJ0�F�?�`���ь˄�H��RM
EM�cj��?���J�AT<@�}>�N���BfI$�HH��^�Ef����C)�)�/.J�
xƷ�%p!G8ʓ�j)C��R��\�A�����5����骙�eLT�$����S���3&���#��#<�L�(�D�W"�%`�(+W	sj<�����SY�����M�ѯ1�u��4�@HƯ7���V�7�+ZQ�H�
i��F��T���7���1��X�wj�>q�
`�E���!\1�ݜ
w��o1�B���-�2ɀ1��.���*w���UH��4�/�n��L	�5��^`z�7�9~�A6��o�Gÿc6�ϊ��}���As҃�l��BPo���%e���dZU,C��������|4�㈲v��=!b���)�#��5Eӽ��if��\yU��ʞ6zXr;�ML�i�?��QI���\�>�2?�#�Er/��|���K|�BU�4|��k��I<vX��F�0$=2!��r��$!���G�����7o�R��Jp�K�1���u���b��	��S5͓��1�x/���z���Q�/�U�r�R^1|����ԎDtB�9� *�8;�Sq���#��t�G�""^���-H�����-jA�ӈP{�{���3�����>����C�M-���b�����L���
e�3E�/��">���7��ӉpJ��E&�bs(��e^b�H�K�ߌ������������$�N�f��Y��*�w5��N��'�	y�7�c	��Jx��0(J]c�k�5)���Q���h_O!f������	^�}m@D�Q�~�8��������r��7�����o����[j�jF��D(0����v�:gL�;d(�b�l%C���N
���#��"���r���A�Ƅ�W��j��)�Be����K)H�e�򀈥Fy�<���&Q]$�
^�
�K��$��#K���1����MQ�` B�>"!)�
���SD�1=٣��2
ˌ�hx\��2�<�l@��^�k��&1]�d+����#/O#[�$-d0��D|a��ΎI�W2��Tz#??�~h��0������,U��p���1��$K�_	g9~�”��AY~���煳�yAzUh��-y����t�}	~����ƍ#l��{����������~����������$���k��FZ��x��o�/b��*��F��4I�o �P�d��b
H�����д W�����M�ZJ`�")V��Y���e���o�Y�a뢂, V��@Ո�o��h�'?��~����k41��c�!���
9q���t�4���(��#�71�nC����#��:�.�7C�4��3bzN
�$,
C.�X���ٰ^1"!�U���G��VL�"�9�� (��)�s),�9��i!C���<<O��'v�D�N^��dA���*���t
pј�Kv�K-�P�nx}� �ܢ��0��5�rK̞=lx�z�ݠ)�[Gt8/���p�����@�o_�ۿ�pW[C�Y���"b$�¯�h!��z��cl�b|_���D0���>�����v��X�ߩ��������0��Wрt��+��v��ڸ.Y�oY��j4��ơ�.�ߎbߌ�
KCA��|eB�#�Ν�{IQ�m��F�^�>Kh�H��!Kn�}�f���w�5Ԓ���0c�����U��4�%y���@�.,.ք�AP݋9�|�
�ū'�9x�F~��҄�S"����Vm x�6?nx�CK	Ml-g��7�}o3�p9��.��t����5��3�ԈQ�Sc� ͹ې?���Ԟ��/P�wI�|ǑP�W(�MB�Lb�廙ܞn�� ܈��廐d7���b�a��<i�8���Pwk|ر`>H���h|ıP}`��c�	YϽ�=#�1���pi�_5N�������Qd��5�&/ݏ�4��c~?��%8���(���X�������	�Xy��{i��ޱq|cL��G����v�`�/0cQ
���K�� �f��7���@�����ߡݧa3U6�?��Pz�"y�M�o�Տ��5�m�%�h������ F�:��
���b�п���=�8�`�[0��	xr1֏���G�z�Q���!��2n���[�Ǵ�D��^'�`�����Z�+���t����}BS��� �~����}h���b��k�k��a�!��X�2�H�q�w>��ٮ��P���*�+>>��������+>4|����\�+)�c�^86�Wdž����&F���!������K]���[	���a_�b�J���2�K~�+�9G]�w@ty���GGa◻����H�*�…�c���C�h�>��}��:�U����+T�
��R��z[�����~�A���]�~W=E�.�6�I�_�h+�ǒ�;vmZ�
��[l�ڻ`N�n]�݄#�}�TQpk
�Dq�9>�p��i���s�����\����޿���j����e�M
�%��8½�i�p(x; �qTknn��IG��ۺ2B�TowO|מ�}]�g<)�-��K��C�cq}�Pm]QN8��G�5v�G�q̶�� �S�i�:q���Y��X����|Y[�Q[�Em���&0f���܈3�;vy������5wO'w_+u}}t��66eî�-@*�&+D�0����h�+�������|�AM��mX�`��{l��ݏ�}��[�=��yN�.ش�osL�΢�	��i0��x?��u��kKw��Ъ�ȷB��[w[�}�]8;�#A�Z��wt�`{���@RL�IbPx�$�XybZ�����L��q���G:`��笷��O��3W.�C�&6Uw϶�ϫ[�u{+r0Lc����w�!���;�cI�t.���
���i'*�%s%I/*���C싼��T_Y�*�"�hJѬ�Ң��eJ���D�Y8<���X,�b�˵X���-Vh�I�:�b�8�j���Vb�9�@X��B�����Yl�e4Z��b-v�Ŏ��q;�b'�Cp-[b�K-�*�-��
q:��7�O����wo�����m��Y,�m��N*�}$l��8�DžNj'���)�3�4<3���S�g.�J<A<��Q�&OV��-�Sa�&^L_��j.V,���ė�/�#��^�fe-V���n�\����1@�YVa�賋Z��L����g/�Aޗg�|� R�V-Vд���#�^�O������X��h�?�mS�����l~|[���>4�O��f�0_\�>�
��%
Kl]��niXf3ihE\3�Is�H�rX�0�H�JgIc��g�8�O���}�*&{vh:���~L�@E@��C|��>xsc�d�9��$_�j
3�/������C��Ւ7+暓(���1����(]�N���:{�c�}���{zttd�o(��]�6�7�W*#�dL)l��\轣^q@a*?]Vie�JV�!T�gD�>��a��$���$�C�KT)Q�0DeM&9��"�aG�ü�j*Z���囃�"�@p�@����x�U8:��8v���:~
-��R��)v�ǭ�g�?y~&��3݃��T���2
I
���!TV0���yQ�P����P���ū������D�C17��f
�<�.�3��h�P,�7D��<�ؖ�t���>��D�
����9C�=JdJe5��͓a�X�Y��	6&M�@�`t]�B^�MM���e�Zg��ĉ����Z���T�ei�M5����-��9�]K6�B����|��K`+d��Ť	�C*�����Q� �S0 ��42�42Bn����(5y`��CC��Y.ԙ�B�G3kx#J���fL5�2��xg�tcad`�کv�S=h���@��
��J�(� P�ulX�����%X|"�+*���Y�bÚ�Y�b�*��z?8%Xx�a�c��;@WH$�/��!5����U�߼+5{��(�l�:�����������"D�::{�&J<�lx�v������U�%�KN��C���IYd�ۗ�&��]@�˦M�}�F��pIO7�A�r�g�mIA���XKQ�������&��6�h����O�F�d��^��na3 �v�"@0V�l���zs�v`+lDfUf�X]S�X;04HV>Hs���m�7��8
0@=�Az�4�DEP�;Mnp*?x䅟�57v��l�G�_V��\A���0��8�ؔ\�!���,�AxC��%��9Ia�fG�(ߗ��4�2�S���;�Ny�u���wɁ�����p�H��j^'猧L
B�����Y+�E��, [�0��	)�zre;/u,������zJ��.a�/w߶�+@H&��paA@�weP7?�v�N�\"�ڼ؞�1�4uw�/K;L�/�`����f���DQ\b�$)	�,�5P��1�
jT/���q��8��3�w���AQo~�����o�+�)! ��7h��;B�ż�0���Sբ��jQ}Qc��vW�ȞT?�sSwM�5�0`h�,����,\�a���	�ۨ�+W}Ę�~�X:x�"b���)�jŖ:�RgZ�,K�c���Zn��A7�����d�YV��k�N��K]b�!K]a�m���r��ԓ,k��n�ԍ��dK�Zj��Yj����M���ro��3���������^˽�-LE����1�->�x�=��/}�sm6TK/TUMՖ-mUf��{�"q"�]Y�8^�m��D�ze6�(gWí�6q��ԩ�v;�̛�Ǝ	�<���S�g6��2<s�T♇g�<M�̳���½b���Yݸ�wp���V����+�@`k��Ǐ�~�Wb�˜�3�(�vhRLj��Q˧)Q"vM��1�y�4:?�NLJ�3��pX�,QLĥ���U�X��Y�୥X%�D_B��@�m�=\t�A�2�i��UQ�Vu��r1��+Jd_
E��9#9�[�KIP�(��7��m�v��WXx��VYe9V�BE
�̱vC����q"{�Lw)���a���$�G�i�)E1.�ElY~T]$�w���+\��^�"�1;�c~J8�ǃ+#s���>,y�К)��M��L�DQ�m����h;�jJ�����=�
W���m��������Pr�Tb[=cjU�w�u���$���i2�*�z����m^��S����h�pg.?�*��5B�
J[�ڙU�B��f�\�T�����h*?�I�9�jc�S.Q3T�Px�Oi[@�EV��#�!����J~5�*�/9�GQo��"H��;�Z�3�X���]�D��P�[x������Ɓ����0NR��]����ō�G(�H�|6p7��*��]_��Y�!4#9� ���ʸՙ�oF�r"���E�k���f��oev]�|;b��X���,��Yă� ���ۘ���.C�-6X��]X�*Ӈ�
l_%sE�y�^�]ykFG��M�^�lyyă,�5��a�����f�3��� {�=˚*>�bETY�˶�����>�����[��j3�M.�ogyP�'�!LNBx�
�������`Yt�v�j�:��#�@g^U4�7��_�E��xS�qo����[��>��X��?_$��?���kUQ�K���V^z�XyW9�:2K��ӧo.���
6A ��eFx��&`Ahm�R��/��@"�i+[|�k��u��ׯj-����İh\����6���׷��.'����7��]�CjXq匏o_>V��r"בb�qS�D�tw���5����,�ı���?c#ċ��-b��@Қx�M͸��ž��>�2�B�"-c�Zձ��ؾ�)�[&���WS�����-��lZX�)�r]u�i�#��Iv|{�Ir�[H���FwFc� �oKO�k�,x��3�;�>�����tnO�b���U����} 
���h����q$.Yr�`B�*�}/h�G�ǽS흽Y�&�-w�vmϮ-;�?�sv!�`5'�yz���뾞���;͊K��U�5�p��K�cQ!Z���`tţ;E����k��6{ł]߂���l�ʞ�͸K˃�B�������e;�;�>��F�
:؉
*ʄk=E^gC;u��w��cp�cpo�z]*�D"o��2�QV>��7���Ee����Tu��I3�yE���0
o�jA��|�i�K�<�k�P�1�`�U��SX*�a���z�e>ؔ�\˪�� �,��R�-p��5[�BK]d��X��Z����!�[)8�-u�`�W	\q����T0�����و��0C�*��tJ�	�S鷰8���4LïbLO�B5DN�S2�M��

��e�$b�c�
��u�?�M?����	�E��<�Gt�L1]*1�dGB��b�w������n�)��I���%,4�%�B�Y��Rp�@2�Bmig?�;�
)�d
��e�mEh�Yu$�}�
cc�6��1og��`]$_X�~��{&�t�=3h�;�N�F�:Ff�	���[��`�,�Ӭ����Dds;_��(V8Q̡(�.+,��"	�r_u�T5ܼ�L�lk��y��^�T��X.liÞ��0<�W���WGG�1&��`�y�.�q'��r�#r{\l[$�(b�Zcc3u��L�*����%ė-%���Y&欕��	v���w���47�gs��\b�����w�v5�Ӯ�+�^pj.��|�R�eD<e0�r*"޽��@�����q�#ټ&�����bn�/��j7�
�ǭ�����=/f���
��WGt{~[�ھ���,���h����PsK�Y�j^�AA��M��x�C�I�,
G��s����\��hS�]WV�ha���z�2��Vʐ��N/a4i����`�F�YDO'�F�7�������N����eN#���J���R�t
r�y��kAet�Dqw��� ��
n%w�e�c���Vނe���气I��e�Ax^�x�$FE����^�{OJ���A�K3�؜���ώ���>�S"����l�1�k&�MCu��4q����{t1��h�6�SL��R�r��E
�	!���3Ts,
r�|K/�@�:rq��@�(��
�l@���L�Bȭ�Qw���"[q��+��Z� VT��F�f���W�X��n����*�e�Ѯ����S�ͤ)�X��s�4��X�;�z����L�=ၷ�.z�k��qꚥKN]�:㨭�-�➵-KOl]O�t�P��Z���U�c]k螭�+�j�>�5��o�/��&M�hJ��j
O��m}��H���gl�E\H!Dx�&���+�;���1��������m��oe��1�,͑�7�ԭ�6hG��(����22+�
�NV҇J/LK�e��=[A���s#�?㜒��J���ؾ�����2�D�qi�2%n�j�����c�S/�c�ߵ�����(��‚n�����0�ߵ&�u��L0l��w�
݌��Ux|�2`�}ѭB�鑅l߾u�S������e��v��������zcmC�q@olZ�8�����w����6�5`��w,�qm"�i��Kq�����]�V�dK��e�;P��국�E�	�-���G���֨\ra!CB��9N�k����s�Ot��i�zw��uT�(=':O�g��?yYU__]}�����tv��C"��ٖ��[��&li�6I��u�G�"B���WX�΄���Y����xrv4�b���N�)?�X�pO��Kݤ;�=cD��Ve���dvݛ���#�Ԏ��շgg����""�c��e�2��q����k�l�u�����5D*��?އ��lDO}y��K�>�Ξ^\��O�D>���͘����|b�!�wz�!�
��{�pyթhZSu��	�Dٸ<'*��f䱊DR�GC����z�>�R�Q�:ܞ�������E۳i\��=,bL���Ǵ���bd�`D4�m'��N^�n��i5D�X��zF��e+CtՌ�xD¬�e��r��T&��j�&w��^�e�D��v��u�r��҂t��xK�:
���K�l�]#k?�eM˪
1"��Bg��Z6,�:�vP:��g���=��tg��خY�Ki�lߍ�v�KU	e7u�K|Ǯ]�;1B��>�a�	:F����v�+8m�q�qZ��9���(��Un?i�h-�uw�-�T�{�vx�@�zߎ�nȝ���H�Ӣ}�E6�F�vn�>�r�=���1����e{�l��P��MS��D�L.@ۗ��DOܡ����sX���:8��h�h0�b��*@��BioE��*�Č�;�i\�L���>qj�����z�^[W]5�l�R{���HM�ik����e�hփ@B�	�jyMLN�FL���=O
�AL0�hM�ZWT�
Θ�u�c[���8	�Ro�����.S*q��Eb赩�WsH�Mn���̀����M���4���I�
Ŗu���x�Th��Z�L��jo����v&����a{��2j-Vg�z�5^�R����K=�R��'�~�Gu�*�*�\mY�y���j��Y��K
[j��X*6���b/ΆPõ�Rw�^�z��&Pg�ً�<�2+�<�/��ͺ��ϥx�e@����u��]	��-�j���	����
�v� C��̛a��
�v�~� �~�|��Tܭ`>��#x���{��ޏ�e��x?��Ife_�,�o(�T}	��6��{�=��lMqSb��f����V���'`��hI�ٚ���Wؚ���+��f��V�������WToq��S��+ɶ�-����'&~ʄaLe�yW'^fd�=�@ҧl��,+O3�Ex��s<��x�u���l�RƖ��@��w�$��Җ"6�[�^�R4hK��@�@pd((k�2ʏ
�T��3l��PJ�g�Vm�2GQ�!1�D�J���9��
���T�w�ڕy�P���������멺ZOՋ�T�l��G51�����xp��{S��eJ6vs�gJ�	D-�:��)�l}��L��&S14�į�Y�54�X�aQ�+5�bbɧ0�X�~k����"'��$�D%�h$ѓ|���w8J���@�Q�V�}��)��[�Ud��Z������t�-�f���� �@�Z|�� �<J�užw��Q�^���O��Å���&G�
����
۝�id
@fK
�Bp0)R��D�R���#g��NwU�
|W��UE���iU�i�*�;#��mjdJ���'��J{^�}����<x������(MC�}�R�^X�L�F ߘ�M�����
�PZ-�.]I�ܪ�\~��h96�J:˪�eة+鬬�V"ۓ�-2ۅU�B$�-�ޮ�}���Z)cC���CƒL�Ԑ�V֓����0H��,��A
��e�u�?��[���Y��������v?¶�t쳆���r�D�[BːZ�"	�Uj�ȼ���+��U"�ȴ�C>�Gݑ)h��2��DqeܰW��6�ؽ��{�w��(1��>�m�^$А���K�X�2)P��{��h�ǐLLo_�wN�*�d+��G��X���P����������I*7�D��H��i��j̴[�ǐSv{��'���b���ҏ1�V��]y���b��3�Y�a_�:1+ua%+�o�2�%?�����ʴm�2���m��P��Iu�9��]$��j�HB�>J��Pr7���Iz��'�=�w��,�|1?_�ϗs������ɡ�C��^<�r�bf�1J��%hMwI܇��$���C�"{�X�l/����+䴑�r��į������L.9�u6�į��\���N�o��6�_�2ry�q���,03f���4���]�
,�U@�w���F�}�$�Fe��F�'T{��<�u/L�#Y�sT�ٳ
po-�=0�~
�ec�"��T2�b2%�e� �0���Ӵ$���l�y��~�Um����W���0�Iڧ/d��2�
5�q�_�nP�;<��3iw⿼m����!C7�2d�����I
^��#�2>�,
��j �rgB�J�>8D"�������)��c��[��ǀ�m/gD;�v0�*�n��*�ԅ�;���_˙�a�;R��*�x�*�Io7��jd���B�;|�`1�O.p���O� �{�?������/B��	5tM��t4������t�y�rCY[��B��L�����f�PϦC��F<��Eܑy����.@&����*��BA�/T"%�
\���J�MN�
���P�s�9�t޻��"C��{��?�r�a��g�8T�_�V<��2�@�0hdհ�i���y?���"s~��J�ax�0��1"30�c"QN�����Gz������O*D��tF?1���A���j��2~�&'��\?�H�Sk�@(�W�����r�U
�]� /�h\�	��
��/E$bκ��D��E�K����o�B�&�\)�F5���k5��+�TmIT[RV�^��!��6a����r�	�"�[dB��v��KC�wki�����3g�W>(�I�eg.t�����X������x
�����X�
ѡ�ɨG]�h8�=g���р|=X+��f4$c���H���M��IC�ᒸ�$����&J+�̯��Gʜ)�?F���E5�i��厔S����J=���Qm���~�E�'��d�$�ҝ����f�!myp�Zy�D<�~tC�g���t8rF("��V5QǹE	�b.A#���0� ��ed��*ZA!��ܦ&��u���x�f�G1��5��;�b��LŬ҄����<�΃�ϱ޸�l�UЈg���A��
Q��j<b�3�2�ߤ�<i!=�B�1�^����?���f�����T������D��K�*��HY��}L���G�g��D1��"����H��2
�hqQ����-�C���'��T���\���\��*O����k���a`��Q=�(RԻH���oC��"�Cᅂq��t'#�x��͈5��op/��a�1��͈=�z##&�>$:+���r��-s�+����J�Q���W�3���oVdW�|�rz����W&���ɻ͒�J�����)O�'��-�r����ߞ�����6�בֿ���l��˱
��!��������SV����W_�\����uD���I�W�}�ȳ����A�:ژ��Qd73>�����J�}>�?%�⏨u@'��DL4����0�jd1\bd�Ňt��8����}�L�����X�C~������F(&�=OXs {���VEϑ��W�)	������p��kd�V��_�,4x�/�ZFdv7~�jb��"��Qꮂ
�O���z�c����9i��{�F��Ը�z�ɕߘ\��̠'W1/Ƌ?Q��(߫��Y�W����D!ڿ��o�ml
z���@Vη���Q*�!ߡW<�w �	��t7���
�t���?��Q��>�[�"�;����<���<d%�[Q�A��<h���+��$?�hob�G����Vk,g@�&��Uk�4�Qh)��2}��V
��g�$�&�Y�"�`�����Z~ަF1�]n8k���3���1��+��WhΎTƬlX���q��Xv�8u�1����� ����2�9Xr���0�IJ帙˿aHn1hgh&�B�߉X��
b�N�O�7���~qK���������9��8:��HӺ�*nC6�nr��Hu
Q��ZDOF��E��x���6ʢg�n�{92ԇ��χ�| �$�����C��jAR������c��N��vt� ������?@�!FlzW�,A�he��A��=�?A�4ZF�/Ta�ϧ���Y�k
��pt9{�s��r`��1���9|�P�O	�s1?#���%�J�;�y�a{�.�|�m��}7���A	FF}�?O�|��|E�fv�H���	�3R�,�(k �8R���e����I�\�iv�/�r���R��CI�&�b��
�Ρ|�,��$��G4!�[��$֔i��ߍ	K!�CƏVy�Bt����i!4�?m�͇�X���&-�t���eD�2IԀ�5�d�����&K��>#&˟
��gb���,��~.&�g%�F�=b�C���2,q�P�����N*���@e��pc�ef����&M�$�����s�`�|��a,��,ɇ��Ƃ���/X�n��
$1Ҹp��0c�WRzMm�ŷ�oaFMe��n���[M,�KGO���5 ����B�!rX}[@G b"&1w!9k)k�P�}q�ߛJ�~d6f$1�l8f"*y����i�~�
�
B���6�c������0��ǐ����bʍgܐ�<m��	�Y�.�0D��Ǥj!�����*R��&��ʄ�>M-�s�A�.e��Yޙ
�"ߋ����L::�}�9�*�����8��(,Vn&���\7|��z]XCS��L�HT��X�E�$A�TZ�"
J�}��M��Ef���R��GL����ȏ��FEL$�,�"���K�$<�k���5�Y��T����i?~�"r/���%&�"��C[�C�[���Ơ�^k��äN��H@d�X��7Q�X"��-**	#჊@ov2�1�}P|��A�T��L����yX�A���.�*"��	�qT&�%��G�v1ϔ�?���&�yx��p4R�� ޹x/�Hu� �s`��e�y̧{ ��Q��-'lh�cB�}{��մ��H�<�Ο�L�zU�0��%(��OOL�ۭ�g�����Z�?Aބ��V ;�A�g����~N�M.�P �ad�[9
�ΐ�Ͱ�Q:/Gp0-%8���@sH4�Ȇ�a���L�{��`�_{��ds`��|̷	0#Q20h�2�&	�<7����.�����LQ��.*�y��}����e
�zƇ{xC�4���Wkƾ�>��"�9����x�A�m+�;�_:�3����Hx:�p�����s�!�����P��!"�
T>�!��� ��N��²��)B�<���f�;�|�#镧�C�"�\�� ����
�E8hT0�A3I9̿�B5xE5��;��0P#�߰
����]�e2�[��^��u��du.��pAd:���-,q.��p�	�\��X�f�x�˾��3(�WYguU�Z`���
�Ƴ���\�Ų��s���v9��@�`
�� I�'����"�� ˿�
�A��˂_��G1G�I̎������?'� �.'�^g���پ�w$A��͋3e�����U��Ý3����̑����hIL�ſX����KU�\���r����Y����T~��T
	��m	l�q4
��ba)e&�?�7�?��XJ[P��V������*:�/�w.@C@�U�,���"�n4�JB�:�T�ټ^+x���k#�Ж|�T��9J��QH��Dk�� ���6��Q�$��M}��0� �9�.�4F�c↿�sJX�mj�D�*R4]��D�*SnhVi@]�Q�c�m|(�c�^h����jN����vc��'�,�CH0)�_A/@5 tl1vA�"��t�R
�>�E��**�
z�A����YAوd��l l�`j��\�l�S��LjV�6��ZF�%���������!d��R��\{
�=�U���e�T��	��2�Ecc8���]R�+}d$sl��&v4�	Ie�eC�j'�d�,�q�Q8!��8^#R���۲���c��Εy�z{z�),�sֆ���ߺt�c�TX�H�D�Z��%:̴�[�g����(��t��s�Ɲґ���m@�G����NH�X�GEg�����j�m��)Y�u�=�����Fw������q'�`H-��-�
U/,j���Pk}��V��@W���P.�����v�!%�55�XN�kam�N�2j����F�Z��6;������i?�fa]}�8uCX6�Gg�d����Ȩ��i�/x�X�I��6��Tlx��)[٨�i�k��†��a��V77��c~]�l�n�K�tKf�*��OS�k�i��?�i���hkj<>!L*bu�B�	5kR��J�<:B�ݚۂ�c�q�/�c����Өw�s���a�I59��FtT��1�1��z�o�B���
[៮�*�\?	͙�>�L�$�'�0O
->�v�b�Af�,�][��O�����Gbp ԄJ��ݿm�)f#P�۰����\(��%v��(�z0T��Ӻ�ۿu���nA�q�Gs������\�:h腶`a��G������"���cl���T�P񗠿��	|%���R���G��r��>6���G�r��Eɒ��$)��VDwu�	��e_f��3���8MO�To�����[�%<.�ٴe;���*��f(3�	b�Tp/��R[	zy����v8��q�>uR�-Lw��4b�_#N��&�0��Z�I]У����E?r�5�g�_���
4��Շ�ܞ��
҉S;�K|��n��=�H!�F�bҤN=V%aa�˒c�l:s�ɩq|D
�ԛ�>ڳk������Kp⚨���%p|�8}E��Nf|j�ԞI�vm*�lѶ�3�.c��E�`E�1�K':�Yzv�����Xɨkj��\�.>C�4%��2�N�vb�A;1�-s�e�"�L3`�e�9�2��)42��Ym�@;���F�l��E�y�eo��-X��,s�e���-:�1hR�n�|[,�+o��]ǝ��9��e�w[��-���E��e�e��@��&t+M�<�P�̇R�	uF���U�X�
�Hi~ϵx�����m]�Fx&�J�Pfi�z��*������o����V�	-JZ�&�(��#�Vl�Pn����k���n��.>w���>���+�>E�K���Ɠ?Ú����c���$��`�G�@�=Wa����Y�'����5/%
�y�xj���\ּ�1q7S�������;�b�[��OY�X�����6�T��N�<1�{�}�X^e�46}�<���)�S��
�<5x��4�i³�1x��s�<K��	�Y��
Ϛv6}-�77j�"1U�"A�J%�Z�}�yZ��G�@�/�]rI3�T0�H3+7��F�H�G
�Fu2S�)��M%�H�x	0^�i-����!��ə1 �X%K��⚵/��Q��̉*�����nViX�e1��r�cJ>˝�D)`���R��*���_S&1��+�YA�E��
�ii2��M��r��u
-�O:���ڤ��bד8h�J4I�N���Si/�4ڊ=�vh?C�0	�:IF�E�ڝ�Z$���dg�τwoT���#�>:K�e�c���X�dW�װXN�p�v��?����s1|�k��mv5�!sjʠ��V�'j!��aki��1�P�[e�]W��zX������Ň��@��Q^|m
޶z�" ;U��yF	@�T��}����od ��})�;����v����H��ϔ�BHXYh��D\�3��k8m�oܫG	}�*�K���&_�j>KW����ɗ�:�A;�>��P��1���q��1���q'v�΂	��nݨ+Y�lV=3,*o`����Mf�AT�o�2��‚6��[�HoHJU�
7H�+�3�������B%4���9w��жc�5��-P?�z�"K{�"�|'����	�E��/ �P@����8C@� �Y�%\��h{��`�G����ݝR��G��P�Z�+��C��m��Y t*��܋�l�g/u$��K��7"cn��� ^B=ږ2�J8?͂3�G�0�}�ΰ��,@�D��n�`�'���b�%)A�rhM)��%��N��QdNĸ�	�=Ӊ�^���u�A$&В��z����&���Onp�
f?E��Ȃr�&�d���
�@o-��b���Xi����ƙ_i�[�V�6�K���ȥ��
��Ck�д�3�	�ˍ�=��-�u��8}��J��n������HM���N�]>���՜�JH��Q�Q���Uܸ���&��ߧ�N$����~�����V}��䐐w�"��j�<%#v[�z6Yc�����ewzH���N�^�r睇^����T�J�1��o������n��6�mku"��!�B4�\]߽��u ����Fq��T�E�R�h�'�|h%&;ݸ�zق��V�w��;ݥ=	�V����p�jp�E2C��t�s)=��|�$�hY�	kj�ߩvI$������!8Qf�Nd�Tl�2[p��v]@�oR�H�o�6T�0YQ���B��z)We�����Na��܍���tQx|?��GYZIQW	M�P��gkN�ݫI§K��
ɐ"2T�i��!�<�p��e;�2¯���d�S:�Nv�v:ٕ��d�tma��p�.�g�W�Uv,o�lڎ. ����7
���"�o�3PV���2���g!�u�q���5�4~�F�2��C!AW(��!_��ۍ�z�)]�",���ҷ>0C�A
���g���zx�a����ߥ2Oy��Q��)`G�q|>%j��
��(�V�,b��@��-z2\&eʞCZ{�o<�F��
ğCLU
.�
(�B������x��k4�[��o�y�9j�Aѯ�j�T�����Z{yI��"��OU1�A{�4��T�~ʩч�~G�j#�|�Pr%�p�<��8}���UQ�O�J�<i+V�̉-���um:���5Ȼ@��ȣܷ�@&B����@7��.��8�w���g�p.?�-W����`q��=��xZpf�HOΊLF�|�ʨDa��Jq��S�#]Ց�)��y�P0��:Q��D;��#�H����U�tI>$lB��7��]S�m���ʳ�M��i	�#�ԚK�E!Uح��,����b�hv��R�7K\\PS_LN���Ǯ��VP�0�S&LMc��2R�c�6�R�߀UvǢۻ~>]@P����ݎ���I�3�'�U��N�U,����6��������aQ�Lܰp�O$p:�!:�,�a�:QH�	˰T��Z�g6�J
$�����lk�4���)�3	�<�x�㙉g�9x��2�`~��e�?~�n��k%@ы/�#^�W�\Y���/O�xys�+˷(�yKp
,#+1f��>��𑏁�`>sJ?�@$7��c�J�5��d���N�QOx[.r�ef�#�6�+���|����q/�s���}�YuN;�����Q-�~��j�=������j���ěF�f��V�ew��ġ��Pn�|�������͜��!�X�IC"��ZַvHY�{��]�;��e��U�]k[�u�ֵ�n�/�@ ����6ĩ���q,��/@�k���/MQSW�`J�ֆ�0��d�������5͵՞L�M��c�#ӈ���������lLfr�~.��c��09%YN�g����u�<��}/��:�H�y��G!~��3-� w��+ '�$��r���������i��@��H>���JZ;��X�]}��
y"���9�K[j"��h���e���w-.F�b[P�}=^�hv��;�ݰ����+�q��6�z=s�<u�<7}�\���F�rO_�좆�&!��3i�q�����1l7n�R�,
��&ο�v6P�!��3В�t3�^'O���,u���P��Y��kVT��U��2H�9�/Km��0Ͷt�^��%����-�E�-%����Vv+���΀���jB�S7�;1zN�LJT(Sq��b�X�:�=�D�:˃�
���E� U<��S\���3�T<���S����y�YX��noJ�B�#X;)�H���ĘB��$o*n՘V@@O:$r�Wve�C�G�P8`���VV��a��0\bCNj=3�3��#�B,Wf�@���m�����)4���(����`�R#.�%,+�03���0,L�/�:�̣�d�Gpe=~�ITCR�Z�ՙ8�@�WFdtv��ՌØ󚠠:3\Ss[	K���+���"{fȥ&f=�[_�4J�L���Hہ��:璄�}�]��.��1�ǷH8f��M��	�-ɗ�s�U:��/��M1�Z�R����Wj��rj%����"���p�n�r��#x�h2��I��I�칅=X�O�9�E��H��r*����3��5��-�������t��B�׍����nc�r���-��0	�K��dcB�깚�y%�s�N�4@7�3��K�|��O1>�Si�|�p	
dh��R����X%�\8���p*�﮴gB-vf�o�kpw�e3c�@�]y߃�0��_$Z��,��ҡ�5��v�H�AdPMd���k�
��a'��vIc;<B�Q�a�����;��%*w�e��$��f-d�v+ ;��L�=�x��CaQ΋�,��S�Tҋ��l��KX��#�2V�i��
P��h��q��������8�`��@@Y�p\c�1�:k�9#8�*��y���#m�@��s��~�>�6[1�iEx�&<�.��/`@��**�:��oד��MmO24}J��6��T��	��$p��*`��#�����a�<�>���H��9�|��KE�����饉��֙�5t���B�y�<s�5�5�=�3�;/k^���y��|e��Ө�L��cT|&I>���<�1�(|(����ٰ�5����_..��t1��E�R�Y�{�5wU;pz�,��X߾vm�6T&�h|��T�R!鲝��ǚ���ڗ��cZ��䖕�)�U�umX�<�t[V�j]6%����խk�l��պn]����ˉ���-�R�Kۉ�]ߺ��p�}��4l7:hӹ@6��˅Rm=1]�B�l�e~.��b�
i��h��2NVhZ:xd�5͒ƣ��"�W����ne�܂�
t�KT|]���"�mѝ��6��W��t�H-��G=�����۲=�u����X-+R�9cm�F�U 2H*���J�ĭ0@�L��K&�����LT�b~x5Q�uP��C|���",ĥB�Bt��w���d���"Wx��!�3�dw��I����]=�����
��-��T*�ewmE��2����yD�&���"�;��
d
��R
M�MR�Ս��9�
ّ:SP�jh�Q;�v��F�L����5)�)��|J�~��keU;.��6CT��ǹ^f��
�VJ|Dsʶ�u��J��H���Nk('��Ä<��!�Ԅ@��&����uM�͸A
zR;E��J,��]���X[��6�
"�(yŠ`�S6�&R_E��
���ğ/�qv�;4a](��/�bl%;Mu���B�q�5�E~M�<�G�XB�"J��x���D~Ԋv�&Tt�Վ(߮�
�T��/�������������G!�Ll�d��������Z��
���S�b�v�r.���2-'����k��u���e��z���z���E��������5	��:ޔ�b�r����-�{�M��hOcU<��#ᆗ��koGq�o���쮮���md[�$����e,��+ɻ:�(ؒ�dcC������
��!w��#	9�Ēb��$w��'O���]�d�<�O^ٽ3�����S]�]]��a�PS�6�N�+L��Z��^��I%:�S�D}��B����YBKF�}��(�uF[�<�m�K�]�-����T��\�Ǥ+oE��ՈR�Ӄf4("�;�j�r�B��q<3�F<���|���/G1r��u��փ+ؖ���eyʯ%�̣Tg�+��2��T�2�!��D�[}����sUo����i��IA�$�e�+c�%�Q
�R?�W�,e�S]F�xZxs� ���L� W�
���Q�޲��4��6HD��#�x�C������.3�N���9�;�w/[�+�IU����
�M~arh�Z"��O7�
���O���}�S�yi*����J����X���N��:��¿i�E w������	��E�4�L6��⾬L��
f�0Wg:]�9NJ��4*;���$B���kJ+2�clB{�)�r���Nc( ��/˱v��|��T�q�XM
3�J�;��n�ͧI�����&�����t�=���W�9]��k��n��d�1/-S�cm��L���p�L/��]#Fq5��	���6��rUr�x���+�z���{�%�ʒ=��[��7��׻��	�J���t�Nն�-+����dg�����y�ɮ����{�Hٺ��>Qϭ*�>4R�.��� �x[��;N�����Фg­�mq��#�ͧ���-�����w���rn��с�+�TiҳB��?��`�"hCZ��ޤ2�M�%EG�;oc���J�d&�=�b�-�Mo&
�>ֽ }=?�^���}��2�r�_�E,���!Cr���yl�������*j4,�Ho,u�u���Q:�y@�NFƟb�ґ<<ʧθ�d�9�@�����odgܙ�:��f�ì�vv����g����7��nv��24��6ǜ�]>�c[A�0���l��7Mi�;R�X���00���� ��+��KX™)������(N����M�sc���c`���H�}|���3�<O�ʕ��vq:�)�f�7����E��~<=���/�U�y�\����n����\ͷ1�]n�V�CI_��GH�e��@��u?ֆ����#m��+Lƙ�q�>��ym���&0��i�h��g��uD�)�t�Y�$�LF���)����.�[zB�ғJkK�J���0[.KoR3�:7��U�7T��3�b�nn��*�=��l�ߙ*��⻶ǁs�4~4m�9��
�s[�Y>�<�3�E��=�۬gf��+��
px����)�F���v�`�N�UͮjqU��V��dW�{~��Nu ���9�ҰE�Ƶ�	�l�lp�s\u��6��<W��\u��.r��V����U]��쪄���vU��z]�窔����RW����n�e�5�Z;ݼ5nN���0W�a4�-��T�7*�:P�[	*�*��^�賃�#�ih�s�V����j����Ӱ���8X����[��b��i��[�[��vQr�Pr�:8l�%��(�[��p����Lx��e�W_%|M�%_W|���x����E8@#��M8H�^>���%|��}��Z?"x�î�S^�3�_#���R��K¯�&���[��@�Ҭ?���3�a���#���9���_9��p�Esn �D���n­���K��p'�^��>H�ߢ�T,��j���ÄG�'|��a?�I�S��	_��Xn�?G�(�y��'|��I§	�'�@x��2��"#�޴
�D݅�j�;��RmZt�臕�԰AL6����'9ܢ�1��Թ��m�Mm���-�|s�qu�9��Bs����T`�6�.&\�K>�:ͭϪ.���������!1z�5oN���+�M����k����Or�?Uj�~�&;���>hY��
�¥������n�?�^����)� o�e�_�^��d}ْ:�OW��	k	�	g:����A���*��4��&=�NZXba��WLJ@h�@�Y(���&k!���R��@m,bS��Ł����@`��:/
�}�(�N��3?l<.l�E��l	�����P���@C�Q~P��͘eZe�5�B4u�ɲ�j��l�"���Se3���=�=Օ*iøa��`����ء5�?��y�J���?��Tt�
��%T��Cf��3�Q�Y�b��Q��Ru�*0���=�p�
�-ĄB�ez7�
����l�:�m��8�p�Ư�)�6o�w��,Z�N��u���p��]U�'��q�����UÉ���+�F�x�WU�H�˩~G�����d�~��9��9�3-�����5�`3-f�-u�Z6�d�l
�S�;����\�.��&v�
�JD28W��ӕ�x��Y�Cv��)�����e?pT�^�5�cdY/$��x[vh��w�M�
��^�s)�� ��P��Z0���3���~E{��jb'۠�������bh֣�<јڼ'��J$�`�5ќJ�+�h�* ս؍@ы_�ї������zR�ïv��\~X�6��R���
7*4��@.����j�Z,h���ٜ��I�1N�0�(�)�������J"�aAjK�R0���cl9�f�����{DنEK�Ӊg�w����"|�"P����[��ٹ �T���U�D�~IJAN��D���9����C�foEONrkwNr["�9�	B�]*Ѽ~��T�\��E��m�ny��'���2��^�y����S�k�7��62���V�b��Ae����i�-[��*�ǧ�o��q�7q�U�aIA�%�M�p���A����*5��[Z�bIB��?Q��W���N���«�E��+P�
���ת�,?���߂a1�
�KD�/s����k���(�ML��~z@Y���!�ejϖk�(��PU�<+����W���ݎ	]�B�*�1;��1�H\���xȴ�����[k�T��T�K9,�S:�L�M����	��_7������8�l7Z�
�nr)���쵆�8�L����j1�P 9�_꽖i����l�{�)�j_�^�k�o��:)<��Q���
b�[?fI���{	�_0��R:;�ȧ�$V�l�+��L*͜81��&է2�P�0�1���|޼�a��:�����>̶66��-H(��7-�R����:IPQ�ES�1PYPDžXO,����i�J�>OS[���ߖ�u��:}Ђ'�"8��U��F�C޾�{�s�M{�����'���	
<����y�]���5�U�A�y�/���2=*��	��j�Qf�����GV��58����$f�R�*�Rd�?FI_��I3�2��Z��Zu`��C��ԑ�<�1���9|B���Q�>N�i�zʒ{�
��>�`r�B	�-���D�A��N�����b��'­g�s��{��y4���Mj�
*���U�/6����9O��;y�`9C���J�N�ko�g��)�ݘ����9�qu���	�����ZMZ
-�`�ݪ��2Y!E�v��dZ�S�=�wS�J��(4,�vp�z��8SMp��CP���A!���$�p�+q�-휸��>L�n��xHx�8<����W�����=�]#lD#x`�Μ)�U��#�=���``�Zd�D�<d���Y�и?(C��Cf�z�+�w���	_�`՗�-�U0u��H��?��	lF*��qG�v��	�d`�>B2�4i��y�7_����cR���ك�9t�F�ea��zZT�L�!Mω7�0^�L���Ei�"�����E�J�u��dx��r0�>�
}��:�ݝꩊˆ0i9/<������Ӣ�T1z��A�"}#�~�
t�
Z�7��A���l��ǽR79P}κ���$�>��A68�^�4Q���=f3��0��:=L�A/��|�h� �����i��O��������(��O�Jw���l�0�m�W����?��i��!��{D��`��&��2D�^�J��Z�)���B��_��?���G��i����t8��2If���,2�G���iC}$�2�U�����ӆ��|4�]gO!��m�̮�3dv�=��n�T>�݂�7��࠹n��5����N�U����ԃ(���6����-�>[��d˾ߞڲ��G��#iR~��O#��,R�l3��"�}Rm���ӽݐ�ö��#�`����=I�OmHy��Ҥ��=��aùGq��¥��y.v��c�
f�^.���ا6�O٩��	����|��a1�}�f`c�
�2${Aõ;��A�a۟�vN�Q�E���
��^��������|�!O�l�Q2$�2�p�zT%�$֮X9��T��߄��]������H�>�I�P�r�۾n3$*~�j�
)��կ&fbl3��n{ǁ�N��;Q)e�S��R�ۂJ:�'$b��FNֹf��5�.�������Ok"*��L�-
�����;5b�ӿ��#��?K+�s0�m�3��H�0(�r�5M�-�<�GU͊�v��k#�N�?JA���	��x��9�Ī�u�c�L�
���~�o0_�����t�'ì�Q��/=뤿۩'����"S�7LQ��y�GI{6�#v��ܑ"��q��N�"�{�q:�Vj\`�w��Q�f���I=�
�L}�Ӂ�eg���)�hW�Y�a�}�SV|���Ln�����9���3�y�c��ą��$�[���x��Ţ�L*X�S��b�i�����2-�L\t4a-��8fVw�i�t��C���c
�>�E�������c�!�o�aG(�G?�xMs���������I�֣M�R4Մ@S�Qc�ʹ���g���z>}�z"Y��Rp�~T�9Sa���#�񝫀��Ҫc�z���Q��_2�$|��"1f�'�(�:�뎬���7�?_`B�����}Z:DK�v3=i>0x�Ϫ=q:
��'f�wg8��;[��.6�:��I�Ec��gA�6-�s���7���v0�?1�<�f�A���c�����|�?eM�Q�K|Z��:��U�Ω��?���q�N�{H,�;W�L]��*Q���/����BBł.q�_q�
Od���{���u'�0�UK�@&��/|-s?o"�̃��:��	.Q���,�
C�_�u�&�e����o��dp��Ģ��x-�)����u[���C�����Pj�ᐾ����R��� ��bylG�Q��O��JDWWI�9�D�5
H"+K8����k-7��
H�2�b�w����M��ke&<�jAn΁K�3�Y�B<����w���g�x0����q�!9o��R�E/��P���1I��PzJ8.3B�U�A"��Ez�d�.y�P��{(�><���y>$��?*�՟
�[kI�ސ�o�y�׋��%�~9T,F��()��D��/W{'�2�/)�� �J\��
h����/Ka\�U��K��BU�X�c�!/�OP�%�I㡥ŷa��0��̌e"]��"�|� kS�	"8et'�C�/���b���P�哋��k�2S�_�'m�;)��$#Q��P��C��6)��X�t �y�P�x�2w6�fj��a�ޒ�v��is��x���J}I%^Q7����7Bm8X��kfer&��z��8�����꟡��&�������{�n�=V�t����V�]����sver6��k]���r��Ε<�Wכ\N���`ry����o�ږ�ļ��Hn�Q�;[�.�oQ]͕Iĉ,s����f9{���O~����6W��XW����F�|���]]ɯ2o�ÕiP�2�eΘ~�\��#NK�fy?��/Q����1}?d�{]�cS�cz��-����rL�	<�;��1D�����yk�ϭ{����~�0�2�3{��'��ה�����xX�,Iwzv�g����z�M�9WP�=^���'}���9w=��lɫ2;�����ū�|�#/��̑G�z�0��@�K.Ygۘ����s%M���~�o�;�3���ܝ'wK���]����R���}�ws7�y�a���l��77~�M���I�c�{nr\�h��&'�'�`����.���܄Ѳ��yW٫"�G��_���eի�k�BE�B����}P8T�^V�f�^��>yOv��ԡ�H��H�_wE��'�ſDe����hb����a^�X��$���N}W��g�������I�Kf�wej6:�U��뱷q��zǒn;�=��0v��q���>�Q=`٩�=�Ɨ�[���K�_o���	2�5<�绥������0�1�
���0_��PX#�a�d��N}_--^	۵�G©P��"��
<?�f�%��.U��T��R�����R���S�%����Y�é����!��D~~*??'#���"�xx�H0�x.,c+{6��\���é�T���?&%a��O2��pէ��n�?�%��$��2�Cie9�ېG�,��ϘQ�����z;Ę^v�	C7����F��5���2~��aJ|9��<�*�p�@�F��'��g��v��/��>g��+�5����*�k��*W]"3����a�TI84���GӾ��J����
�����e��Z8�+���:#Gj��
�c�"�����߆�^ʴ�����H�!C8���l����g�tو/L���w��DU�J�M򿁸�Iݘ��=,���G	�x��W���EL|�����G#�g�3N��I�1�F�D����G�F��hAV��D����j��I��>�!uG� ��"uG�$��;B��3I�~w�'�[#Y���I!uGH�2�ԝ��NY��T���S�}��8M߷G���FC�wD<��AY�F}W�c%�n}O$��O*3���zo$��D<q��܇��z����G�b�~?�Q�ic�AC(D+�|�9�|oDF-����!3f."64���
�d:�+��}�t��0�X,UT_Z��N�����xW�~�g��T_�08�V��-��f�������y�=X^����2YFy���p���ӛ�C^'�Ó��0����z�o#���_0"�t�O�p
����5�I$TD0!��J�M�S�U�=����������d
T��`KM�Q�֚�\�;�nGv׉����+���d�`w�I=�۪�n�N��ឡ��#���z�����4�������%�Ɉ���c��O7��5yl��l̎`Cs�qmb�`Yl�7Mb��a�Cl�{ԅp����H_z�Q�^a
^6�
$������W���0mn ����y�`�ޟO�v\1�n�4�F��.��KKJg���%΂�B+�����P8����#j~����v�딺�<�q[$�;��\k9�0(<�
��E�$`�������\ ﺥ��F:�GY<���_�!J�6|C���� Ϝ�³��E�P�n��c���(�8+E�&�Q �&Q���I�n�*r:�CnD�,T�Q{�ax��@����F	��zFJf�� �j��FJJxXQ�Ds�9�\��-2�����2�\"�̥��'����28�[�^��FD}A��b,�[������20%X�,ΤPzI&ń^N)���]�(^��$�tX��թ\`'�����=���M��VX��[�+�	�a��]��A���9:��OK;H�f؜�ê��o�E�y�.�V�$�{�Mgu�8:�(yo6�-��k��i)�A{Op�k��4|���%w�n4�ɨ�Ҥ{\���X�v�n{�<��Ϯm�m�
�o���i������H����վ��>"�]��T_:
���̮��o�n�d�׵6�kB��D{�Iv}cS�t�p�����`[_oRlA�����s����ivj������}�g
�Q/��P��<�X�3�'솖��Z�Vh?{�df7��5kx���ȥFW٘Eg�n��/�l�O�q:L�����9,&\ҎvSskK;u��4�|�n�mlx"���cZ��ͭ�5�3���S��lU��nd�ֵ�rI���J���֦����o?�h�H0nĤʨ�ۭ-�
�i�w��N[�8`��6�9�-߶�M�5��)�M[AI.P�1��QEMm�QJ�D7ԶLS�'�
��}���UŹU�R���o�,��ĵ�׽Z��T]��Ⱥ�� W`�a9����X<�7�6b��]ⶢ���$�.��5�JbC\ַ�f[��O���!�p
!�i�,�zy�5
c�����6�UF\��Fs|����
�qr8�U��x���BI
q���
G1|��V�j��ָ�����rU�h�[�����2���������1�f7�0�PFXH(',!,'TN$Tj	��FBa�-�S	����	k	�5:g6�&�K�@UT�T�:�aܖ �hT��'W1
�nH?a�hG8ZA�pU(��Tn�i�<<��9��*R �C*���)��ύ{Ǽ"�_�T~1�y����nP�J���\�L��/�E|$��g{���9-07T���3�{��<���U&����㜅�q�"�8���w�b�x�/߲��q�2/~�r︈a���_�9��)3ҳn�����y�79����GH~�ˌT��,x�ʝ43��O�m���6i,;��r�xsr+�!���JZ���$�7��H ���y�1O�xW��&�܂�n4���1U �I�א�Bb��1Cu�7G?4X�����Q0O`��b�Zo>���Z�x�ľi~>®��o�H�1솚�,�e����	C���>�O�T�:�{#lm
�/vyv>vCkK뤭��X���h[�`767����:iPn7�6�dA3���ek7�#mC�oJf�_ښ1W��kZ�T0hm��/V�ga�h7׵�eE�i�nn����#���Rɐ��鳛[�2���M�od����x��@��[e�)L�o�n�4s�b��㧵5g�Xi�n�R~�'�7���k<_>&�ne��a��3V�[�[�m!�dY���Դ�0��54K�V�S�Bkk�෱�1�a�F<��MM���5��k}�Zj����k[�W���Jx��*0XC�i6oL��:8�c%�Zn�UX�u4W�i�w@.&z�ɯ��,K�ed_4Էmpgߔ�3�{c�Q0'��t�c/�ǟN�so1y�dXɤk)ggr뎾,;Ǽ4���1��$�b+����0V��V�r�Q��"���%E���T_-.���({P�0R�_ZT:�tKi���QU�G�ިJoQf����8.�Q��,y�n����s
\1�+tԶD��X˅��Äg��̓	���e[�Y�:�]��uNt�jA.t�\��uNv�S\筮��uV��j�Y�:�\��9�u:\��9�u.p��\g��t�N�uz]7�/u��s�r�a�q#;\�
��-�Y�w��;�a��F�vs�Q�s-K����ݜ��x����۶\��r�k��|��͹GU��J��b��:����S��^NXP��,	�,�M��	�[���SKN4�դ8��;�间�ݖ�wV�����V�J��WVsΈ����3H����U`mJ�pYx��M*��@���"���[�:�h��@�&"�Fo�<�KN���s�N�)�I�b�:���������� �U��5�ZB���Hh&�V�B8�p��p:������p&a�l¹����	�F��p	����� tz}��_�Nت��U���y��ˍ������|&:�;!	.�LI������L�Dޢ��b+�-�9�Y��Şk���k<24�-h�	m��
�[�/��U�r���
_.9em�r�]�(Py��咿p�O����+o×K�b��_�ƻ����˥�.3T��6
QZц/��m��jf��5�Ķ�\5����<5�U��jnu[�5��-P��׶�!V���U�EjA][�\-�_X�շ���U��jqC[`�ZҸ2�\-�d*���GZ˖W	����vX
����Te�`��&G��h	t��dm���U��G�;0�z�Z��@C��8��So1;��(�r�� ��	��VB��;f���98�B9��"9��u�&>.�Jo*��>D�KʌtFw����ttW�pכ���N�y�-�e���n/��"ˑ��-�ٔ׸�HGmM�!�Ȏ�����Xy��&ߙ�K��dT��*5���D	8�6
>�R�c��	߶�_z��r���ׄ����R+���e ,V]U$�\��~fA��
U0J�s�<w�y�ƻ�ٸ˓�	{2�$	O狘K�J�%Jq��
E)�,\)\��&��b��ZH\��SZ�]^�<���4>�Z��Uj��&�"�S*UN\qv��Tj1q%�qXW�!\�d\��K	Ye<l�(��Rˈ���nL�D�8+;�
�fO�)�h%qf��W�%��l�:%��)�\�?W�NRù���N���˼ɘ�����?I�0\�f�d��E���8�T���M�a��[�LƱ��R��-�����8���J֒� �\�Ub��1�o� %~���n��=j�)�c�T�|��q}�E��%[���y8O���y�^2�:O@R/�J��@�� �H�l2u�~XR#�妹�[����V�=� +���E�����+^�8P�'�q���mzBXٶe�iе�-e��}@�!30<�3t@ׯ�
F�>�և1kǝCg�@¡�7��
0obȰM7�Λo4.�qӺ����h�(�8Gu��라>7h���ëε��0����šD�/n"�ŏ#_!�ta�A>��BrI�w-� ]�[��Q`�OwM�QSk��sr~Ta��{��av�zF<H�4���+Q[�so�P�;pLٶ��e,Ns3�!�P�կAЈ$�=�m��0��Q�'��"�؋�\�ʴ[�P�{伍�Hq�س�Һ��s䔼�3
1�R��uv�9{f{)��H�Y:�\�$��2�e����r�f�Cp�k���%�E�̢"9����/_��STXR�+����+A���$�/�V�D�3�/��C�`�X6c��=��x9��e�@l�Q
<�
E7#.�8�?,�q�Ѿ,uϙ�&��ӳڕ�ٓ��y�9��`7GN��u�q�8ީ�Q��t']�E��nhmw���1�+R���f��I'
��;���h:Iu*�%A7P�B�����$g���ޓ&:+u�I�+Z�S�*�ѧ��~�%^56���=A�t���b/��լe��,٣a�"�]gg�2�/��q�j3(y��B�Ol���}�@����dJ,R#9�*5�Xq���fs��l������G�5�3��� L}2���d�T{޿�B�nAx����,�E�\��!�B����g ��\R��F���H�E'B:��VG9�%�W�!N0ޙivQy�i��� �c(�r�!2�ZB���CH(��H��Ο���C�WD:P��B�w��O�a�#���I*���e�pB�K��W5?�@k�$��C�,�@+vA2���2c����U�7/�m�2=�|�ꍞ�v�?��	"��+���k�2< ��l�w\�E�`��P����ݎ�yR��� �=>��ꃽ#��z� �� x�9~r��wC����9M�a걂z	����̐k���Q�ֆ�3�Mjʹ�Ȥ�n�/n����5e�}d���o��]�k��Fq\�:�d
��	�����2������d �؄���?d���K����m	��Bj��ZΖ�_%3 k�(R:��^!J�%
	ńR��y,^CQ�
Ov��٥	p0;,o�%��tZ JGa[�Ck9Ŷ=k	�&�
�����odl:�*���@��B���������e�<�Ǽ-v���}�
*U�����`�,�����__>���A�+��^W�p��Ds�<�?�Q&�J�p�<��'���,��//xt�y;D���u�*�E+=���ڷ�waM��P�4�-�A�~$��:C,��B~a1�:U�;4�O3�%�ȯ���ۋUW�2JM�U�5Z�a^�.U0N񼺮O�I,3�3��$!ř��}塽fjT�q�h.�{Ȕ\ԕip>8h�h��3��s:rEu!x��}2������0����m�^�7�m!7����4즙�4�OPy��t�w��|ܚuֺ
�7�>o�y�^y�����qg�q�ūNc^1Vd�g<�Yg���ؙ�@���=	2���!;Wf$N��h���4-�m�����Qb^��̞�r6o^��~��v����g^t`r�T���zG7����<�"�����͗�e���XSL�ӎx�4 �IN�~jN=�r�11ma�9�Y�6n�p�3�3�j��K���%r��H0�j8/��1��HC�h�]�
=$�t��y�-�q�|�X���wz(��nOy�W�i)x��n*һ+6�-��(Y�VX�i2�ъ������z�@2N������-���Z<=m��#��zF�����;���eegs�~WqvD:ՂͲ/�z�v謯we����#}�&��->n�t>�"�6�w��[����M�e�F��
o�L>j�9�[���9��f��\����x�~���m�������vVv�tEPZ�g�9��Ϙ��<���ɚZ��.������olh�B�e��93�;u�

�������cm8r���1:�!�hhi�ݤ�hli`rέ�j�a�3jbVʮy�Gz,�ך�~4ֵS׀;���N;͗rdE
D�4pEԑ䖡�eh��o�F��(4���x
\N]sCcm��@�����q��f�	�LM��v�䆱S���X�ԡ��P�Z�6]�����:�/A�Tr�7�>�OJ�
6����-�ޙGuNOR|�u�H13���[y�Ѐe��c�H?���E�m�v�Z��y�M��se�D�\T��X�Yi�ʤ�g�X��z��$
�_���������v��{�;bn�pql�a:
U��(�	�����|/"��%��&�p����osM��X媡&,Z"���5C���}D��>�������I�Q�njww[6nࢵ7��[�4�r��j�DY�_��75��oN��YFuv�86�������]z�u��fs��Ә��T��4���EZ���jR��׏�y���q_N��䆌�by�,_
�tAtWz}/��L,���ZY���C=}��04�/�H�!O��B]2��
��2�Y���@o_o��s��"uA�ß3xrd8�d�n�|o�~�&�� ��[��A����I�����s{�ڤꇻq��3p\���YOH��6d��C?�52�-�we6`���ms�)�9�u ��%�u���d3����{�R��[7�9�f!�{���͒8�Ԓ"�EA(�y�6�I762��#�N�"d�ۻ��;E�;E�)�"[�q��nƏ����;3�7d�US�J�������K������6�6��}�����F\,�n.Ov-�Ǵ9�m�:D���2��������c\��&�NI -);f��/�߻�n���>�V �0�w9���`�ޭ4+��O?ocIr�<�L�|jTe��td���E�(��ᕫV�/�cJ��oN�����d��y��2��x-���L��4\�wڃꏛ��e�3�)<*
G��|�#`{�>aӇ������ҧ흼ԾT~��{?!�B�æ��[M#�������zR+8�ۛ�ؼ���%�T��{9�7�7�A��|������J���ҕ��*c�r��q�
?�J�T���J��J�������F�\+�c_0䠵�]�h红L��:X���G�&w�bW�D�0�������h=bv$���,1�E��O�/�6*Ƶ����E�X�)��n�4W���1~C��������v�s���\ �]�ɵ���Bm��V�kmq�~׺�U�t�vW]�!W
�j�U;\��UW�j��v��JW]�w�Ꝯz�0�Bb(�كT-
R}#�7��6��R��c��c�C(�%|� p�P��<m�5,�~��Q����O[O[>�t�9��r���2�4
ȴ�u�WZp�����K>�*��?䮏"�蟢JJt�h��(�1͹�C�7�O��A����[�=_��`-��r�A|οߊ�+�?g�q�����f'"��kAf�֏n�5k�
˚e�	��]��������M��`pb��	�U(U�@��"�Ł`U���M��DWVլY����&�+ml�)Y���Y��d�M�=�>�B?���Q�Y��~��`��@�|X
��BY+VX�G_4��˳.��V�����F�jx��ay�#�x�RU;F?h!��9��
XW�]��,�t-�H�w��+P��Y9^�G�r��Γ�)`ѳ@_?�F
⯓i3�+�^n��ޫ�g�O��_����� �E� �C�H8�p!�m�NB/!E���v�V�6�
�������s���G~n��;��N��[~�/?����U�+���^�p�	�dC�]�mh��<����|�hA�"Tq!d�T��Y`N�==O~0�v�
����Y(?�$�\~KK�g��,#N�z��вJ0����j*
��A��
4��Fy�I~��E�f�[��8+5{2o]);��K��+�	��施�M,�Nͭ�j��r�Es+�f%�9@�s�T�~%Z[Q@����P�>Y;�@�l���9Gt�r�]��������j��
m���V_h���V_h������M�V_�e�*���
,�l%h�$m�m��X���V`Y�
,O���E*/���j"�N��>O�i�Q�C��i4�*�n3.7��C�0k�f�����Pv(�y���.3�n5�8}�_$�s� ��0!��-z��5:ձ&�����UbK���K������y?���>��U�D�;���a��Tα>�x��*l�6q�D��@ǩ�DXr��ˌp\_^�%Bq=T�V���˺��5#�6���Je�n��](�n�G��C��h�a��Y��NU_��׫�	p�R�s!@"n��+RW�^u(����~�ΕJ`�&�͜��
a4d�abO��:.�wU=����f�~����	�	N�F�C�گQ���͔ۉ�EA�< ���{�{��.�A���&�<�4�qz	~l�z �4�;�29���=�����d����I�!���v�������D(���uݯ0E��bs��ME`R��x��\����Z���2u��c��g�0�=#��g|6X��Q^'|��)���
���ٮh�L�@�R7�0;RP����n5��V���%�
�U��>%*��r��
>�>���a�&ل}A�jË*��{�ȇ�d_���U~_��6
�r�*d
{���e=��zbe=9�a��y�� i���_�S�_PK{�h����u} �j�E��5{v�D��f߉�T Q���Tdܡ/0$X�����?�x��q}E�_g�)���
Ek�ڝ�-�ݰ��[�w�$�8E�������p��- xW&߂_�S�8;�O��L�Bt*~����@˻�r�T|���}�_����j�L�v^�hMt�ȯ�$��]!{d��`����a�5����wӪ-`Kt�?Jy��Ȑ�MY�~=S���SU��v�����|ƻf����D�l=�B��N���b0JW&wG��T��n����p�6�-���r����>ewx_���x����ieE2vє�Qm鄦<A���	�n�<�A��P�����?f�5�����W
zl�c��',A��>�>����*]�2Y6ѵ@?�ɂ�%�)+���,�L.�S����\�:��*�Ug�)�ˮ�@l��SGu>!�IGz�Y�?�y��\��r��P����%��Lu^�:��Bo���(�(�����E�'��!�88�|�n'�3b����Xw������ߴ��G�Dq �S��gxӺ\�}Kt��'g�fq\xOX7�4�mkIO���%�;&2�d!���%3�D!�?��1��A:�������.0�O�	�6�"e�|��Ll!���b+����R�����bzlH[>r�}�υ��b<H�?Kb~_��hI,�o��ڷ6�$*�
���
�轉�};&��v��J%^@Ԯv� �\67����#G@֮�����߭����G�Ğ9r�ƂM]d�j}cp-���}�De�Iu��]��~�h,U�5QQџ<��t��~��ܕ&���׻608r�޵i#��ϻ��<j���k���`��
�����5��fP�[��[ѵB�2�i�`pY��ֱ�e�C&�1G.��ܓ^a�p�?�=�ɉ����&�P����)�Ю鏌�9R��#~S�2Oz������C�)�O�%��g��C�V�I��xb���)��vΨH�H�G���c���%g�\�IF�����0KhX��R��`j� �ϑ'���>��G���%怬�#��'���J�R���t����r����qr�dg��-%�@�b\Ż63��z��cr�5�Z>.��K��${��+޴��vF5OUo,5���9���
��l�s�0�bmG�L
��a�?
��1�c/f��1�Si�ہ
�_��4(J}�of��[�y֘~����T�Y$渏w�h^��'KH�C����xM����&,@�a>�Z�� ���� P��Y�i(Z��:��0�ɿ�N����X{����G���"���;��M�A�k�Mw��܉%J�!��.i�[l�,��cp���ہ�Mt'��&�����Hb��ÎS�D�~�u}u���9�N[��kg��\�kÑ�d�hkx�ج�0����Y��>^36�����kJ���2��gW��l�S�����}k��&C4�%m��%�=$�S����~��}j-�)�v��i��9��9�gL�����;J�e�5��=3w�>�;�N��Ӆ7L^�	^��*_�3N_b?�v��������Nsd�
KI
Ӄ�c	���%�7_�S�;zB�&��+�����Δ�C���Ȕ~�v;�:�?&���g᱔�{���m���O3�3f�Ĺ3��1l��;�6w
�sлcjH�e>bv�]�`������L���5/;TTJ��]R|�,f�tг�F<�ŀἽ��s��㠂�{�)s-3w:��@�.,�#D=;� ���g��u�6_����|���y�kf����e��K%Jſ2�_�	�KL͗�Y�.��M��?�2o�W�-��;z�\�E.��A�C�*q�'�we`���D@�T@�?�Ϡ��m�%��
��P��-
zǡ�HE��Wp��u��ssyw4�49�jƙ�@u'���U�U烪D�(��Չ���Pn�������c-�8��x48��Ѯ&}#gM�]-�&NZ��-N�{�AH��T;`�U�
Gr�.��Ny�6�NM�]r�R�6Bwh���"0�^�3� ���z��&6�}��<��<�̝\<�w2����1�V�yQ��3v�/�F�jՏ;̥���8K�ь�O929]ѓK���v�3��;�;�h���3�0x�	���95d�tΟsR�f$�I��Nj������?�t+4h^(i[�G�U�s�5�#���C��Z��$�%��x�X��q����R�
�Ő�_
�͐��
ɽa�t�3�Cm��MF�#f98j�r0
,����ZK�}�Y1a,L'{r��J�!J�'��2�Y���`L��f���o\0��:/�_s��_���

��4_!0�]7)Y��̴�7ӭm�o	a��P�+�{�	ъ�CB!�Bh��`E�|�y5K�K�1����
V� \����9�*B�Z ���6s¤�Ww�>���<�iNP���w��������o� }�Pm���O�7���3�'7�������_�o����I���hnyw�y;��Dv��#j'�ŗ%��Sq�6��p�	IOX`�S���������B�/^��Y�'�����'//��yy����c���
Ɍ����;�l�����ׅx��28�Z���yt���m!����,��3��.wd�5����N�.��™�3����I�k$�ЪSWrL]��Wca�+z���Uw<�kmI���ҩ��fu���G��o��#��ޣ��~yt��5W?`�e�s��-W@��Gbz�<���}����=������y%�C��	�=���8���O�^��	�Y�1'�iC�%���xV� ���T;��|9в%�%uG'S}�K�}ɏ��/�N����b�+2�{Ҍ�4_�
�_#��`�{cN1��1�w["W���[���0��F����m�Ȓ�Fr-�䰺�B�8�SH�����ia1�S�$�P
�z��z�p�χ����K(����d"d�tCI~b���w��:�;-���s~�WZn���R#�Os��j��C=1	~�e��9#L��8\H
sBOZlR�$D?��T ��4���Fp�qg��_�z�1���=��(��������1R��(���b0~��w����G���:2V�9���F�p�#$k�1й���� ��5�Z��H���!}���R�`�tZ���SUw %��5%���,AR��Ć�Cnw��K�5�G�����=r=b�;ч>�k��`��L:������&@�LL�����~*���21�IO Xa��	Vp�(}i//��&P���?�ҳ�`��.��#.kH����Y|�1&"^�����+�1y�
�����A�v��!°'��c^�O�R ���aB�Y��}�O]ϙ�0נy��4��n����@im1c`���OL�Y
֟��K��'��C�>m�����%$�S��t
zI
��3��HӽLQ�&${�d��N:Gх=̳��b�e�w������wVq�a�Vq�a�D���\~?���a�{D�Gv^�$W�1��h3�3Do��m7ޅ)-� cą�E�s�s���ч�F.�y�)e��(�&
��6�㺜��/9���now��H��]�Ÿ�=Q&�m�箌��w���0#t8������8�O���hǝ��N����T$�njw��6����&E�>�G�t^.1���ɥD��M����*ݝ�%��<�,Oz�Q��mr)�tS��";�H&�Bp�3e��N�E�p�"��-�3Gj��3��!���Â�<�WNeگ�w���a�}a�X�s���8T�_NX#��0쎆���C>�/���G�XP���0��
��Ky�c�;�%6����6x�G(yr�!��O��UVq$� z�iY��gH:!��&�~�$7	?�N8N�O�p�m/��IH/�,QE�in\�M�x��Br�����c����װ���ҍ��K���éwv-�L.�	A8.�	;��L�F½t��&�[����g8�e�1���nO������XT{l�)������X�j�o���A���g^����=�>H�dcG�z�/������u�����(1#_6����
���I�mp�S�2�b�e5�+I[�/��Q�ڤ=$I'�o�R���I�"��Hr~���\��'s-����&m!�	�K뚴���dZX�(�~~�=�~=\��)\¬�C���%}wh�1�O\=޶HĤ�����o�DT���4ݎ��#�S�^�Ί	�vpv�ߘ�L8z&�d��7�ye��5NA�Տ�HɁ&>�]��R�k"k�^smd���[�<_*��</܁�]Y��񍙧e��U����q|꽿D��Kx^x[���^|��%��p@:�HpA��ҨG
�?fH�Æ7$x�!�����	3�-9���N=���|�iZ�~_D��}';�#�]�h�#d��1aU!�@�L�q�`$u���/���Fv�
����{[�z_�3�J��G�!��
��H��(3��"��3B,ﶍt�Z>���1��7�jγ��/@��vE>"�"�o�1^ww
'���}>����p:.�Ȳ��΅��V�^D\r�H7k
�`���/��LDh��D"�?�u�Z��|.����ES�R��W��rēj&�W̓ߐ�Ej*�3"G|���"���h��L�F��L�a�eB^|�Ç�øG�zxr$K?�]yxɔ"�0]���ܓ��?��ܣJ�{�k��R�"���))�o"ծ���V��ȉ�I��f�	�w�Ų��8l�@$+���
ӌ7+�?J˅�ί�P�l���+���iU��w�#ϻ[�Q^]b�x�Jn�W��ݬ�͖���d��O�����;�6]����e�2�����鎍O�o[��F�32v@_�>b�6�?Й�/)��>�2J ��uz�#��E�婣x�=}�"Q�OR������]t{*)\Pܓ�V��A��گ^;%՟��������].���W�xGoⲕ���IlM\�?��G��/F�5A|_���V#�z��1���]F�%;h���^o>�܋�x|_4�
���6���&�~��hrP��4I,�?M^.&�G�C��&���Dt�D��9��s2���y2j
-�fL?eUdd]�&�u]V��L����(��‘L�秤�Z��J{զ��@��:P�H�ݳ"�OռKH�B��c�z�����:���GR�8��%�f�[�?��3�<ulSv{sw��X0›ц7��;��]o[�H�9n�K�(�ְ��p���%$�w��՜o伡�)�)�tU�)F�u--��P6�ן�oڮLkW�W��j��y�$L`h�����`��⾡A���4&��OvKK}\�4�&A��
�_��
��"�6��A�8	��byZ���x�`�,B&B��JF?p���9!F��	����V�y:�t�)hm:a��D�ZT��������6S@���V�}ϣ��1H�偃��ő�@�J��<���rנ�.6�\%��>.2�r����Π��
�v	�*
���@��t�<vBP�":��A�{�-��*��@��W�B����e���E���N���:q�ܘ+�ő#�Z�l�O=�ˍΈ��
�edpP/��`DW��A�\�\J(���#�L]�Q#l�U���G�2$��q�^���d�3�A|40|Pב�q]'SB�9�[��ˏ�q�O������{v�4�_J�U.mBז��V��1q�)9&�t�#�z��ФZA�3�7���?�ӷJ�	ʦ�~�qD֓���e�{��U�ݺ��.�~�g�-�Ub���oh �u>ĊNM�"��f	kB��g��\�'����o�߲ `aIJb�Ϯ����a��mĪ�����䶹8;�	�v
>~}}NVE�����Ub5�M��1�����PPG}B�Ln�}�+x�?��g�Q��o�ub%�J���0���t�G�;i�d��>[��Kvc���6��cJ��tw�3��v�ʆ��Ԝ�
*CH����t&
�
��1̀l\�L52�Ҟ��6��R�	]�C���f���b�&�T��:̇[-�.v�CC�C�xgg}D��fEr`p`���Gݪ���:ʥ���]=}�Ŭy8:BS���>M�K�ז�H�Ȑ�\�}�@�+L�N�M���|��Y�[����	��+����Ms����2:�@Ǝ��L�tN�ҥ���O��zv��9Κ�Z+G�H4��ͳ�.�!�
8,�U|�{�	k�]�صK]{���vCs]k��.q-q��Z��u�k��ZծU��\��
5�V�nu�oq���e�k���L�`F1;gt!���`�؜��*�KG����mq�VdاI��q�"�Y�NYJ8Ǟ&�J�.�2�_���g� ?a�a���M2E
�$��\����(z��gHQ��i[� �U��sT�2���%<X4L���t�+�k=�kٌ�ޝrq`щBݘ��J1Qh�4u	�6����d)NN���+�]E�0U��D�O=�!*�Ӷ	�oEL��E���!ޚ2�tL^k�k�H�:#z]U��5���pᎈs�s�^_հ~�꘍�9�؆����潀�˱��<c��jc�7蜧/�Z�ti�4Q�~�C>��U'{���~��� cIƝ0M�IP:�O/�ȕ����qAg�^ޑ'�u�%��%����i��v�g)���^u>��]@�֋��j�.��j�������{ZX/K�H�O-Y�gp���c��iº�\u*]�R�(Ps�r!��Hm|I2�^X�XT�(0�).e�I�Bq���,��a���˴jlYe�h��i�rϻ���j�2.ַ4�-_�x��-^���5yS���=�.@���Q@�r�@���0ݛ��
<W6tW>�|��T��@�#�(�#�O�`=���j����
B�d�1m7B�<F�y��
@m�+�@[X��%f�1����;�^w��������R�\y��v#.i�1�����𼳽o��
G�CC�ݫ������{�@S4��R���)ˌ���3�YEț�T�� c��.pU��(V��ں#_�\�'j�1��]1��ʉ'P`y�d����Հ��z4���{t���|�%��!LJ���.c�.f��
C���p߈cf��m�
�학���C=�l��b�=�1:=�Lu?ؾ�3J.H�^���b����)�j��Qf�U��81��zk8>%�L�3oHg��G�^�x�t�[�!�)������.�m͎�(t���Y`U�v8������ƒ�Q8�/��9.�u{ɼ�ˀ\�+�h�,s�Un��
6�����J:��g�YE��2ܳ��Vqq��I'V;%�����v��叞\��&�c������Z�8=�[�eY	����&�ێb�b�tev6� l����l)���g8C�fʦ���j�l�͑=����7O��.�	b\R&���(Z�'�zb��t�=8���D��\��7G��7W����(���r�-��X�����;*X��GЅ��K�簹dY|"�����"���\&d)��m��7�����4Ե�
fD�/�H{��m��[�Փ��[MOůf���+R��'<^���h{�8��γ���Fh� �M��`��O�@<DARAt7�M@�A�A�rd�-[�LJ����2HY�,YRlg2�$�rl���FF���d3I�8V���$�	���%�Ҏ� ���իW�~���g�
�zIf_-,�<�2I�C!�ه�N�KZ��b2�:_N��?:2��E��%XKG1���FD*v�NX�p���Ue����+W�Rо��
8�d�⛧��\��"�^�}�y�[����r��U_G�t-Q��	��
�3 ��~���"��q�}���^i�z��F�8�!
�~�yRyJ�><�]$"D��5��"aD�k�^G��.�bT�^��w�,b&Ɨ�^�Z�;_n���$�oV�v�ue��Z$#�>Ɉ/�.<�kP��U��`Ҕ������$�h@�P}���/$}�'Q�<C�e���Ȓ��dt�v�~�|�S��%��劐�:�>����^0O2&�[䫦�i�C�~F;�ɖ������3Z��@Ws��rS�s��$����� �������heߣ�h�_���X������b�/��H�ߞ�92�P�����'��Gգ5����jr3G��<��:�|	��sK�J����X��|��`�ϋB��HH¡��C���0}�+Ҏj>I�n��=
T:��}�]�AuU
L�.�jlC�is}�#�P�Z��#�D}rbzzt��'.�N�&2��Ex�������f�o�����g�������{|s�9/%��릸�I�%�ܕ�0B�2uxZ#��S&�]��Ѩ�я��'֧o�{z>�w������?5p��3�gϝ���J$GFS�Kc�<:195}�1�+�\}���k�[Kk[{G��|� �;�'kR&��<e*��@��#�g>y��ѳǖ��0��!ňurI�k�Y��$�Z�!��Z���;@ԃN���ٷ�}��b�^�
C~Aa����T��np"Tm�޴yKd��њ�;w����[/�WϽ�'�w����:8;63���*rH�-��;���:��
�) ��lG�s8��8M���営�ً�vV=(�|L+@�
{����`�:[�"�i���to����!�Uf��|�;{+�K[i)�P�D��
ԍxcA���Ũ�E�
�ݳ��N��վ�4��g3Q�9�=̥QS��QϷ�j:�ޤA�FY5N>�q~{�����P���:<Wc�ˢ3��eY���?�f�gf�F���sɀ{��˹�/��-�Rk2/�R���Qy��97au#��\�%��H�;D��D�Ey��b�UC������Q1����.1�+{�����V�v�	���H2��L/D��T&�h�A����"k�K��z�\����Q)��*�^Uc�Lt�tA_��
g�P!R_�?��gxq��L�Bш�3M�t�i�z�Ff��� -|k����i`s^��QQw��1W���c�F�/�>H��cP@IKZ�jEOl��|k���M��=ށR=�/��ݥ�>��Q$�Q$��ދ%%�������~I��%w��9�At�璡�(;�>e�#�߫-��Rє�e��b�jd�]���n��#j�u*�]e.���i#zZK�w�S2,�|�x�T����9�E柕�#�G�=�[k��{�4���^�%�3
�I�c���
�� b�˅	��n4n6�M��	���_���r��3�pW�]5(R'��w��c�����f����zq|�����us���S��8sx�1�ÇYNU��z����M˗�^��t���g���<2X�~�𩁳�}�Nv�]���:�JLFF�G#Sӳ�3���E�Ș�p8�9�&bN��U�A=����m--m2�8�����o�Og�-���Gǽƒ���Ǘ]�Ċ��DbY^5�aIJ�j���g�-�����7"2�	����@�H�;V�����
������\��n�������wU+�q�G��Z�,��e����hn�>ƘBh��)P����g�*��7&/k㦼�@��ko�r~{�%��8~�9�#��, ���.5�xU����w��\�[�FS�A��R��:�VГk[n��Ƅ�w#G�"�m��40��%�`����~
���t*5���i�Oތ�:���4-��Ba�/s��q2%�.͎�_/=1��523"ay�S�,�eB�s�����9��q�WpG�;�MxOwC��R�t�F��K��ԕ�	���S��C��������`��7bE������
߭�b�����HC���B؃s
uh����*�!�u�?h�:�As�aX���/�L�o�t�"��
�2�^k�H��,)��kӛ�=���xoz�e�rE,��H���f�{B$g'-���OY��D�T�9K��~iӇ,��F��G�������:ň��DQ=Ʊᖂ�l�^P�e��k
���p�ǻ9,;���إ pua�b�R�-[9�s�p����
�jU5�:��r�����(,wX��€J�S�Âe��Ь���R<�����.�ޕ��eGǯax}�aY�/��>�.z�0�E���
N��8��0�ok
б���H)ܤ!Xx'�0��gV<���M�f*��Vo7D�CK̗���pf
+����|��T���GZ���*ܥ6a'���ܝ�ô�G�[탊	�m�$�=�L�E��=ղQ�X����>���ҳ57���l"�#�}0
�_��M��mW�$�!+�/���B=�.��ѡ��	N��rԞ�jf��9O�^B��]u�Μ�
m���o�}�+�����u�7����Zh7�Tٛ�v������E���ۡ��>��sˡ��!��|^����F�}��"��Gʣx~z���:�aa>�r������$>��U6�F$�d��k��8�d�c�;ꩭ=��%:����TA�iNJr)ݒޥ��KG�K����#�IS���GG{D��C�s��΃�i�i�Aa�5�%�A�(�Xz��͡��j4�K| �Z|
���Aa��G]�1���y�A�r��'i4�:q���ͽh�X��N����nL���'���+�Il�DŽ�Q͵�O�s=:�r�/ݹ�+��W>�I�Df���(S�5��?(��C�}��#,ȇe���3|��Q�����.WY���l�������xɊ%��R�%�eʴ|
hA�y���$�4l��*�.W�W����_��E���O9�z�-�5�4��Ó�zga��ƔF;m����='oG����:o?���KZ_������Pr���S�'e�W��=?7Х�����U�P� iE����c�_�Y�.��;+B�}��}ҝ����ť�[��;����U$dNH
Ǘv����1�䌠��+L�_k���`�֌x��}Cs�	�g���1��P�ᾭ�w�>g��[Q��r�[R��ӊ?.�+�ъ�0�ο�\{�{���k����bzE�;T�ɨ�������1XQ���a�g���y���}>j]��e�ּ�{G���&a��r��FŢg���.���*�E�]��Aʚ�O�O���cԓϺ�"G���*���9(�^gL����2.I��I���]�������"{0�E,x�`��4/��W1����~|w���"�*�vB��+�x���X{�{5��j��Z͍�h5���P�3�k�q��W;���8�%~U�أ���dl*6}އ�˜E��:�~�F�C]E�k��b���-'��G�Ld��b�e����s�xߑ��Qƻ۞�h�h
�<r���aa�-(�9�='�"?>`�����9���Y'R[ss�R�R<�K���;�$4�JBXTzV�$8~�t����[�'J	+r>Ŋ5�5QP�*�S`�*�t/�&*?>�⼏6��4���A�vb��(�T��~��]�Q�\�)�1��^Ohg�켁��p�s�̙�3�Q����p����SG��t��*���;NK/E;>�|O���KOO���D�[��-5�ۧ�׈�DsR�;��Չ�76l��‚��w{{S��N�-�*tuj�%g{���>}䔪'vgk�wX�.��0"T[t�U[��h��sx2sɔw�ɇ��Á^�A4��7;�N{����C!��.}��K}!�V���|��2��N�����n�"W��R�z
POiv�P�\�V���
��!%
��&�K$⍖��%�i�`��Wk;-��RcO�����0�Q��ea��l$J�o3$sn�Jy^�Q�Qű�c;G
���1ͻG++�(Y�
.�a�z�z�/���+��2K旊�y�/�ݎr�юB����24_�3�� 瀁bgT�!�y�d.(cVбV����D��j\<C+}&' lo#��%��V��{��W�X}<.�0/P��9^�Nz�<w��Q��Y�%(߮d��p��ް;Q��Sb����9����b�(w��25%�"�YgJ־Up?�t}�e�۲��>v���w1�4tX�L�Foz��ޅY��[Q�2�Z;����*^{Kc��デN�=~����M��#g{���1:;dP�}��a�ʬU�"�]N��#�?~��@��{���?}VXx�:�����\x�2�����{���XIb&���u15���/�=��r�jF��&�����?�H�����`�hKhV�Y����ޔ�!5�E����V��d��U%O1���)��m�˳u�tڧR&�[ߞ��NV^��fvt�5:,&.;[͎N�B67��}knml}�l˝�9��n��v����%���Ž��
t�l��PX=��p��9wp�ޙ�GO�윅z�b\Dtq�-�������v�k�O9e5�N�.;���+��[ZYZ�Ż�<V���.��̽�M��,��3b���d�ش��I��ly#�ؙ������C���K�=-��ji��iY�X.��rp�Ҏ[�IK;ei�-?�`>�oC��ܹ�
�{w�=��sdg�G۹�%{��'���yb(�n���ޓ}��h�0�w�G���	�1e�G��{��9�q�]\���h�h�h�����8�����q��=�o�0 ��Y4�v�(�FB���)��[�P���ίRwe�(��U"��e����8"����m���Ҩz��F�ʃ���e�'�J�߀��oЀ9E`�~
?[eQ��,a��W��Y�nՉ�t��Ov�{����y�>�7P�S���Iun��W�樦�Q�:w����x��u�/���]}V$�W��'d��2�mm� @��k�a�ͣ^��85�悭>�h������!�ݫ{%��~���܇\�OOG+U|�ّ����l������5�904G�s5���49�F����=�<BQL����[�~)������IUq�U��ڴ`?F�p1��v��[�:�j�kmϖ�	&�l�`Ypn��k�-.Oo�OG��e4f�����re��`�߉��@=&�^/��
:���m$j�;���p���`�į@�h�	-�W�э��ê@����	�76�U.| a	�+D�
����	-�-�\����RK��x�}���&����N^�r���>�Yz��OKB�9��#�m�x-n�-�n��\R�A̻��K� ��)�')%]=��u�\z�\�j5���j������v���~�{�'ݓJ��uk��bة��P���}W;Qb�ֆ�@�KW-�%�H�{�iD�>TE���we�lI��&�™�
�+�bg��\��8;?����/$�_����?HB[߰���o�K�H���.p��o��HW&*1z�wN���*Q5�7����w�yHJ����)А�{�=aof��O�T��~��8	�$,^,��c����gc�-ؼh�� OHF�����jJ�k���au`��}-��Z���e�Y6t���9��V1a�+�b�V�g{�騤K�J�O����{<���3�Ç��{���b;a��ɞO<ˆ�7i�9�@���Y5ZZ;\/d�8��3�S�^�rD���Ԁ�3�P<[78>����h�l[���Φ����}�;��b��^Ŝk+��p�Z#�wE���R]�@dP�a�#n�!K"�+"L�
��w�nc_��Z��siS'����iզ�������l�
Ba�fǼ���u>G!��e�
[n��i��݂!K�ev��r6�2,�f��n��hޠ:���Y�������U���/�A�̨�)��KE�
��q�\l�\ܜ�m��[s��\�?���e��
ã�H��ZX3���Z���8�ug4�}�.NX��ǩ{)F@�˔�
ՁeZ��rLy\C��Bn���K�?tH�ޏ,�,�ݵ�J�u��G�pW\{S��6��ZF�J�hihx�t�r��|I��ō�匉�����)��
��ݶ8!J"�Dx�#h����5��DD=v�O��=�D4k4648w��/���ED���|��YJ�{-L�M%d��С���M!��T�Ϻכ��
j��`r�ih�x`X(�*C:&-���	�5AC~I(��m��z��ӆ�v�	�'�%&h_>Q��ˣ,C��SYs�	��j�<��:������<7u��p�cy�-  �����۞��B���hC�-������?�n�}A�t�IFP�J�l�ǪbcձM�ͱ-��Ǥw+��z�W���j�,�ֺ�Aˆ<�_�stl�Ŝ���l-����i�Em����+̄���K�s��}���ly��3,��+��������9�V���l�ċUoJƾS:\�d*��5MM�C�4�Q�OݫN����:���R;�:%Lj2�a�y��O���q�	�٭ a0�2��+�	1����W}G�`9
.�c��V1R�ip�f���$�C�u��O�
T�ᬪ�]Dv������s����;�S�]n"���9啟\ź���.s|*=}�i����;�J^�dt�6�e�U��m�㉙)a�x��\�����Y<�NL_2��ھ���[-
���G��R��g,m2�[]�v�`u�Yd�8�U�?7��4��u.��J)��C���ǃ�.�S{I����G��)��<K~��R�g��Q`	Yz�r,��t��E=�[,}�RZٮ�VjDuūTW�ެ��'���oX���R�[�ݬ�u�2�c�Ĕ?_>�GG	GGG��{���¯B	�i�����G�m,�`��7�8�����荘y��(��PP#[�7aA�̈́]�.������w��@�.�E�ު���"�܍X�r��D܈��F7b�rD�-#�;�F��RT �>]�.�k܈���\D����9��!�fM`�w����J��̎�v�/�
T�"D�W����3�j%dmsf�d�a,�o�}�>f������i��
XE��>�s��k��pe�I��|��پ��ݢ��ϥ~�!���^�(ΐ�}�q+<�b1������#�L�f����)�!gL��X��k�j>�J�W��O:���S3�X�[�'HT#�kn�A���wrzjv���W���|�A�ۄ�0���Z�y�@��ٚ�̕$�E��j���%�u�m?����I]�`��vk]�ޠj����Ĭްה�0Ν=���
���[y��Ԝ�D�N"�ө��̥���3�����{��M	~���ODf�R(�J�"E`�OG*���ʳ<T�y�$�����LWD{��O5f��F:f�j^}.�]�`Ж[�m�������G�{}�n�L�(�)Q͇�V����j�Z�ZE�U���{m����Xfg�	�`��Z�X�bu����@΢�NMS���
/��c|����A��
L�lj
dSS(�" ?�f?���v�,�
��b��>�2T
��AîT����]]�Ϧb~6��TvZ�5��p����Α��#%;G�����H��k�H��`�T��c�>#C�i4���BuKk>�S���Äc5}xr�r��/��7Yl��0W%ru�ڪ�.S�����h�T�k�n��G���%Җخ������oo��V��$xe���l�u��+�w2S7R&�s�,s�|e�$Y�,�kU�N�����!��A�|��S�0�8��z�M>F��������u��W�KnE�ۍDt*��nR�S�,���U�����d��H�v9���byJ*��n�����!x�D}U�i������h`\�����'%:+č�f��;��[H�ZӃ�|�d�ݵG�����o�%�n�9����'BZ6���~��b�/�E�m��>k=Q�v(�Ⱦ��!O�HE]��I�>k�����=]���XG<�W䙛{��B����E��1�K�_y��[^�i�vKc8�,试v�z�X\��Y�/#8�j;��)�G��#��G�]�q4�so��\v�׍���%'�-�|��`�:�d_n���b��a���J��\�\W��E�,���,@��Wmoe�
ZG�#�+w�3��֩>��ug�����:����2�!ͫ�=9��]�����(/��ws���ͽ���l�56� ��`m���J)]p!����B��5�م���FGS+��)��Z4E���h(�e<���
f'����QV��F6c)X�Hx�ƠP��lXĽ-�����K3�)�G�VS�{U�u�Z�iR��������D��1���3�Ǧ�L����Y�ook)�2���*�ߩ+�I��;Z�
(�
�=+��ÿt����R��g���lcr��IG�Rij�l(^S�̩$�&���)����D��s�cA��՛b�O��/Rkk����c���uZ�c��B� ۴��%��A����9�U��JN����Z��s��I'm������G
�e9\��7���R�!/H���'�sϜ$��fGk{��}��#t��U��I�UCȵx���lo�rt�W�Ep�yF9V��6��4�:����;��45�w����\���R-�δ�K���W_1��Ɨ��J�A`e�G�N���X�K!e�A��A�I$|Q#�^jSf�\��l'�K@PlT���r�S�S�\��1�Ail>Aj4<>zmX�Ȇ'S�#���Ć�;8,�Q�7��@P��3���M��I�:$.
�NC1;��*/�������2�_ʚL\&�J�赢��p3"����x���Vn��^u�������C�El�D`5��o[!%��V_t�Q�B� `�[,Ct��٭�B��/-fi�2��5/+h�,퀥�y�ki�-��2�Z_>a� �[� =mi�Y栥��nE{�҆,-a�/��XZ*�����-풥�Y�t �.r���������>K{2�
�_��
�N����^�ʫ�e�Z��@6�WU���S�x�zq�]u8;��B}�h��*tL���7Tu���l�߁lFo�Ng�\3��⩺�c"�0ƒY��A�iQi�q�9�`xE�t�Ф�{Q��ȱ�c+�h����n��
M-+U ��~?GN��G8�s��q��ǹ�~��A��ލ����:�Je�#���G�qM�P����ED]�J��GɂS��n<�j��)\�NE���x35��l]�҈ha�E��)�*<��m��Q�]�06DE���ܷ���'����=|�z��t�T�O��=�BmsL�)�ۃ�G�21�l����2%?��"P�^�CP�t]f��馧��$lw�Y�B�򀰤��I%S88}��\��+8�n�u����%���Rx?J��x��SJ�[�@��Y�<�*,>�.���9�.��E��9vTn�K���1Piu����KU@���b�k�8/Ǹx ݔ�i?�{�^�@�t�~8�.�]p�6�G��r�Nh����g��.�����BٯaQS���Y��*����nnG%������
�U�Im��V���ox�0��w$�����⧥�иJ6�!���E���ܫ��؎؏�=!���<��'Ӎ�r�r��J�iǣ`�k���nǹ�=��v\HWߘS!/���4h��	���2|��WH_,b��_,bh�F)ͨ��e�����Q�n�v{B�ۓ�ݞ��a��F�'N6���}��l�O���H|hǂ�d��
�����ZgW|�h�������~��䍺��}u�7B�n�Bⳍ�d
��w�(~7�Ϩ��h�j�+��5��(��ď��5UC�I<<�]��I�{4��<t��cRs�,�wkꓸO�!
��m�W�4G4K���D����W�^%�+|�5�SK���S~Nl1P����̡��@���A>�jG�hE�s�=Pg/i�&qH�% w_!���v�_�v9���ܤqƄ�Q����y�뢿d>���W�y���O-��m�2T۝���x�2�,�K㕯p',|�?�:`�r�:#�$�Ǖ^�����������w��0��F��|�g^���Q@���;���t��$�r�8I�T�\;�Ƣ�_�\�+��ڋ�a1vD���v��}�nW��y��r�q��?ͽ[ ң:��ޝ+[��-��_�2�_H�%��8.��Rr�`��&�\?������+��h�j�� Q�l��31�����tS�JLy[�@����bE�>&���wQFތ��at5ʼ�y���Q���R�Z��j�ϓ���8��~�j�l9��W��@,���I��� Z1��.���G��(���.�[-\��n��#u��*�A����(�M�>'�,o|L��޹���D�}TW��!��1T�t���Q�)�����I��^�I�k�;ɲZ
Du�Ӻ3R+Ă�Ӻ��?��N���{�n
�]�?���Ւ�t����/3�^S��Ij��vX�]�K�s�/h���_ПUC�+�}���G�
�ڸ;���)l�H_z�d/����F�'�)U4oI�i�~��h �J���;��e]*N�4�W���Wu8jt����v~ă�5nr39^g�7�����W�D;��X�
T�q����L~E��U�T�K~�I{��'�7^:o��S�R��I]�ߣo�2e��3S���;bz��<��|��ℚ��EPR�&��G��Gڣ��6�����rËE��]#�N��MTK�(�=����PH4��<h��A%�k�Dw�Ty�OV<!?�7�'�i�bY�>ꎱ����R����AY�.ʚ6��5Yز�En"\`ec(��_�2��*�}�K~_/ލ��U��S����`
��+J�r���n�����A��Ц�$���b-$ZI�t��h���؍�
�><�G�V�G`�x0+e��v�Fh��Q�v�KE�'���_������x���,�[�j�i�-��]!v쏁�EXە��'�m��OJ�Q�&߶?n��V�-I$n��t5K�ŧ~�O%�e����W����մ�r;.>]E$E�]�{A�[�
��[=�_+�n=������9ve��wǣlh5A��8_���´˱����u�@�$�1���|��nWUfṙ�wV�h=�y+K�t|�^�S^�ޥ�Ӵ���]�ai�+�v��u�A�����(n�]���G��e~jΒP��K�0Y���wy�1�y��G����j�{�GȾDv�B���
�4V��b����_��hs=*���$@A���+�2�(z,(E�E=����� ����ӟ�?MZw�Ong���_+�������D[�W��,�%�W��8�H̄���e}��u1����JNHG�O�b�Z%�5�x,�,�>���tW�����j|,�I:d��
K�� >��xh,1cIuFQs���Q���"�8}7|�a���J��v�k�$��'�p�ę�_�����U\��Vt������0z���y>��F�ò^�Ybƅ��k~#P���������}g~�vV�_��\��Q)��(�ɷ�t�5��g��WXR�u2�L�I���F�۬~�\=5���qGJ
��Y����[�o,o/�(�D֝16�<���[f�e8ȍ��v��!
�����S�ò:-�����Z�Q�L�8����얨�(�n��F�Gr��F�b���̪�&�$gy��@\���&$S���]lc�P��W�j!6	�$�_Y�#B	lJ`��E�L��N �Z�(�A�M�v[G�w�ؔ��#A<l�?�	�ũ��W�=-��}�h�y�t_ؓ���9��V��ƈ�]�͊f��QS�����b��k�Ӛy{���=���'�Do]�k'굹�7^��#}��z�WVj�D�|B_��D�A��]84$"��,���%���PA���y{�.]"EQ�j�4W�x|��4׾z],�l�qQ��|-֒��!�fÆ#���喋'��sP R�YB|���� �]|��Z-��
��'*<�^>y��ށJ#�����4�ك��0n>�#'�f6y�	�#5!�q��?Y���6U�?]��-��Ȅ�!��(�1��[��G:�j�^�X\��I�8,��t��_�ވ4���H���_��-�X[�n�{��5a�$��]I�m�R_�HS+{ɮ*~�i���6�fi����:�䮭y;��fO�սF
�Le�'Q��h�ss�o�nl����Cx��5"O��.���F�cl�'���bQK}Z6�r�5��Vj�.p]a�����a�^F����z���.I�J=G�ԯ�Q߼e�%w���U䴬�k%ώ�ѱԵ�Vc�N�֓x��:Q�֐+LO���&Z
YK���s�_S[�{]ޖr��%I�1���;���#5�ņkO^�<٥_�̩��z����Kj�;K=@����ڵ^婋���>�{��c���a�Tf��պrJ��?��[]U]�x79�?Kp�&�#�@~Q�D��P�mP�D:bl���6~��|hd��0Z�>��l�@�cB)�`e�F�ajP�X@��ѕ����9(�j���e�-j�2bdĢ]��b����xe��XI��2�OZ|����<Y�Q�����d�j���0?��H��M����tUT6&�(�D�=z���`2�
�,}S<�U��)7O[$;����!�2�l�Ԍao��O�%$R#_�1�.�f�a�g^4ܗ��E�M}u��[‰S[�L�!f�E=����?h�]#��~S�w��%W�o���`:��Z�aL�3��%����r�Z��T?(���s�xu��NwG`��Ȭ����֕.��>���)�F����48��F{kò�ѕ��б�;��|!7E:�D�(54�8A�sAm˱���&�Ɔ�X���f�gI��m��pZ|���֑�"�p�V��4!�"bǧ�X��@�C�eD`������H�l�/�2�"�"��"�

��9�
*�N��J��v#�Y�a��@S�[dWI���)䤙S�hi&� �Q���C�K}d��A���0q�sJ�N򫂖c�X{�&Z+��Q�
=�w��h��ܕ̘�2�)�OϪ��F�܆1[[s7�k&ȟ
���6[;��$$����s9�w�Z:[Ks1��#97����Ի��Ʌ�Z��kG��������Vz�4w�}�܆�N��< �{Q!X��+�����rT#��{�Sy���Q�ϵ�������wgyCyS���<�#XrGC&!1����ϡ��4E�e���m����a��,SAL�1�Dz�wS5����!>m���P���c�,� �}����5���,	N@;���T�2.Zڰ��W�G��[$�c��oEۿ�7�׳�o���'9Nq��8�q��F?[����HD�b�(�2�+�cY`3G�C��Q�ZAh�h���Q�!��ȉ��ฏc��ǃiއ��f��;ގ�#�@�����Nސ:��h!I��/T��t�E��%�+V�P�:��c�O����
z*Y~=���=Uݞ��7+6S�u
GԛE[�=���7j�V~v��N!3J�#|�����Y��^����{}��zE����	j��=Zͤoڜ
��L�0d�d�K��
w��S��n.�[�y@�[���D�{{4�.��q4;�D��ש;���t�}<���W{<�����A���k/A�ۧj]�@�=^{�btw"�`�N�_�ݝ�%e���YR�;e��ѕ�:B��b�5D@���*� ��������w����Ά�!>��Ś݉�D��w�N����d�*1q�G@ł=�$V�17�E'FF�"Twb)=���t�ja`�&(��nڨ���[���M���k���=��NeJU�׋%���Z�E�C�*x��غ��͋RN�r�^��M������ukj?��'ԩ���~R��K�����x��ܖ��w��*C�
*��#7��;TfIIQkX�S�"��"����S�1lp>"�A/�����N�|�.���S�'2�N�[�M�iM���(�k��)�@�}7����;�����<h��Թ��_r>S
��1�5�Ke����N�2�KD��a�3��_�e��v�D(�W�`ܭ���N�2���VA�_W��$�h�\Ʈ�og"�g"�
�@-L^� ���o��3��z�������M<~��'�`�!x��[�彩'�k~詏�?�5��<�c��ށ��;���7ס�,����S�U�չ���7��m\}۴���;|T� Jr���a�YSg���͜�~<�'�#ch�N�ps�2�n�<�zf4#*X�]NL�!G_��v7�c(������CB��NL�<j��U|w����+c-q�*k�8i�+��lnj}�P�k�D�֡_�F�Y=s
	�~�I�ֲY|��2�Z�����9���P�-�g��n{7.]58���8M�l��i�gM�sz�Q�m�37��ANZb>�ej���
��6����b�w�/�l�~!,��tн�&6㖮�غ�!`&��;���{�o�[&�ӷ�w�z ��^�@����Xr���Ue�J��q���,U�"��:�{�X�=[6e�Z��j��V�r���c��4=$b
�	�d���A�����)A�_!�yP%��C��K���I��Ԩ{ȗ ?l�u<c�|*du�
|�A�<�e*�Pv�5����n��w�F�p
�S�[8�1�)� �a�.�%�&�f܈�����&������
��xwúu�lwB|�>7$�w�
�qB�o�R�v'NH4�W��‡Hl���Ɩ���dDM9�Q���Ѱ�|ш��h���5Y�F �Qn�ѶĆ���xs2�[}.�߂�C4��Jv��l���"�P����Ć��}�5?�����e�9[/�m��-��٭�8��T���$���p3Ï!?�s/�����P�^���o$.�*^�+�!�#!�$6,r:�ހ���7ra@�q�,��!��	`��b�_�!9��7H�@�	s�Jp��_�2��qNё(^��hX�UP�x=2��*H�
L�hb�>�9���'���ޤ��m†]\\�����-,..ا���T2u��Q$�a!Q�G�_�wHoD�U��)64]���2�Ƞ/����zx+�/�kb�M�l��l�b�hkcbc� 
�1�L鍳oJ�G��9��������";�j���Fj��.��->��ޟ��/��C^��%ՙg��/��_�}3|��u2QJ��]�"XPŝ��+�3��?d_�(�/&6�k6�/(��ow��yҭ�0����/P1B�~�z����Q�JSI�|H�
	3��݇y�jh)D�|��,F�W��@HxA��J�<����  ZI��7�-��\��7��K@��$ @�Skܑ{�~��H)�\���K��4�.��������|�p�~������}��(�Jl*C	�G��|���@:+�#�8�%�!��w*-�Q�N���y��N���5A��|G�[�L��2C���)Sb�H�:d��Y�Kdj��8m����y@�4��&�8b���A��
qƶrN�H�r��E�X~6y�̑]	ᇐ|B�"����:�Q�C���Ũɤ �������_[@D���f8]j��L*\j�ܖ�R/2��#�_}7��P�����޷V�����N�>�ܹ�U��~��-`����1)��_�~��}]�EC(�"/,@�t�[�_��5%�
�n�y�GM���%�}+jKf�+L������/��3y��+�Z�87��s�r�oMR!���+�Z�C7��jt�rkrMR$eٿ�2���t�Z�Q7)�R�$��F�M���-R�ߤ�&�����dX��	"����wx1QmW��6���L�	w&��1vHX7�,ͳo���Ϫ
.�o��a?��5j�P`�J<�d��}�
x�
��<�gOb�}A�I�@���m�o�GML⡲��Yb�x��eH2
j��<	����i�t�c��V���_���m��Ӄ����tR�ogwSO�`!�/2���^�|v4\�WEϻ���t
Sk�ܷ�n_Tҹ�Ksg�]�/h�4�G��j`뒇�"�R����T�a�7�tj�$��=���$$����'J#�G"�"�L*V��TRR��	l�����cK��S�V�&���驉'TX�623}k��.W����0;����/_�B�㟭갤�`�J��|E��B
�؅��`�%ygu�#O�L��>�_�Y92�x��xe�}"�4n�P�\����,�g#�h?��	�1�a�::b��U�"������ݪ�b_��ݥ���[T�OdH��#yJggt���[3�ښ���:v]�v��p\$9�2U���#���^o�
���Z���Na^v���L\!x9�?g���1�t��#�AS�0bf��P)�5�<�82�� �6i� �0~��O�e���#�&�/~��8�>;)!at��#xÄ'�`��Y���]�SsP�r|w�D��%c?�����0��v����PT�n{�Wd�En6JF�U�$#+�t�Ĉa�U�mBNlr"*�D�P�BI�"��a�&xua!'�9
w�z�h�9DcG܇q![�5����A�^P�)��Ci'����:��n�Yf�9*z/�Q��pj��}\Z�b�_�i��9�
Z_>)�BH����'a�KS	n�M;✶傣�\�� t9k\m�(�&�~J�mL��3�I�]ôw[i ���{ٮ0C��;N����vO�[ݾ�w�ѓW�Me���|�Ue�'[���+v�������q�3 $}UU�=�|�w�=蜺Uq�D�غK��/��Q�ߪ/u�ϥrB�'�f�UW!�NF����6}?�on�
�^8��tbՍ��vN% v@��`߯�d����*`�H��
���7�'��{[��P_���<���깹;!�p2��r }Ί'Hc��C��Ί'Ƴ3�8y�W�bM��;�H��
���=j��@��;wn��?���c�]k������
!���
g���rٷ��?GCՓ�F�~|�/��K�a��k����r���4��J�H�>��4v0����*�/E~�A����Z]����N;5��ə����
*N_�,�6������Z���Zʱ3��mjmj-_2pV�dF��-Z��:p�N��[�W���
1(����_e�l���f�Lu��Kk�Zc卢)�:�e7��;̎P!����P"c��M��ӱW�b���X8�Q_WA��YB�[:��\�֦N�ۚ[+�|U���Cp}�2��;�;
�r}�����C����q�=RNˍ�v8AF�3F�\���_�L%38���RO��JMєk�:M�����8��\�G&S`NL�<ѓD�
���㣖k4�U�f�&����}�	�{��U�d �K(%�>#��	���+?,�#�u��K��N2^�˶�j��K?��SՑG?�MPr���m�4]+�r�7�V6[�	ޙ��U��	$���@�H�J��K)������L��9�#E2I=.�
%�L(!���X��H<Q�T��k��E��g�5m��@�{��k
CW�6t%�����������E��޺�6ڰ����
�T�q��?7ܭ�1��;�!ݙ-�nM�(�ީ�����������P'k�I�As��ˇ�͌�&�d�_J��y��y�$��!gb�Qƺr9��R��*�'���t�1�U�GKF��1
���~���ɤg'�~�G|�[k�e�F�x*�u�ɮ�)�t��,=r�#O	�7��G�9�HO�~J�.
FS�q0Y�W
�1�K=�|)_.�>�dbT}�`����j8�f�BE�[�T�7�V�P[+6x�g˯��7T_^������n�/i؄#L�>h�(��s�oy��@�卣�R�|
!Q��|��	��f���L��bFl
������
����d�[k�L�SPN鵬C�y�2�,�e�������{-��2A�8���<g��-�~�|�2��a���Q�L[昕7n�[�e�ZW,�q˼f�OX�V�-�i��Op�$��9>�����l"��	����~���H��(�ok���!Oh�n�/�0���0�}�S�C|&�vf?��8uρ�<ڛ�qn����k���P�r�-ٟ��ڨUo���Q�Q˱�c7��z��f��v��C���<�ռ�C�y�PR�_8ҁP1z(��,��|"`*��ةy
uʮ�S�#�*�S�DOUl�6
���^|�D�D�t
c3r&�k���p�[���퐧@����!�v ���"-PŨ��6-�W��ͣu�/�βc��;��ohvW�+�a`���{b��U���x�s�?v@]B���s�ɩ���'�+[�9���Q�&��Tc�3��#�=�RJ_zo�	e�hy'lZ�'�`ߛnT�m���o;Q�4	���?Z�u�[��l�dSwZ6u�{[�ϔ�@�g�����z�}�^gi�K�8<+o<(�{�|m�~Q	��q�
�_B�,4⹐$DDe@@�q�ABM=�(al9�3����|]�Z��&(�M"ݚnK��n��$.%������7����H�)H��e���sz6�o_�HXZ�:�+7I��x2�`!l����qj_�A�7ҭ7P�Q�˽��}���e�D�ˏ9��ͪ//"�2��`s�_�,	)�ڬJE}VRiGʢ/ސ�*�곳*6����b����y��w'�hJ��A� ���!i���=pAZqH5�����B���dK��$�{�	7���0�>F�/��v�")�[$��.\V���8����Y
�����CX�nM�7���CZq�[>�`�#���$9t[��$�q�?�~	�x҃}�� ��|l�|z����0�v+㗹��9D
���|y�/Ru�aᱼ��~ O�$H�ǔ���@KF�tݣ�3����l��]�x�-����y��_�����tj�n�v�Ѽ	���;�ғ�V�4�#�]�U���'hx�q�٣�$R�I)��yZ�겴�i�<&��dģ��d�ф%bE�u�p���MM��v��oQ��%��c4X]�|&��;ݒ�E)���{늙Ow->U|gm��:�@J^ײ�H\����"�o7{X$����G���;����ߴ�T�U~���6��744�o\���U��9�(!����(?����M�R�Ko�$����	��:٘$"�O���?��1z�c��@�(�)���">�-�&e<��r�N�1�B*�M��+�A.m!���"���+Ki�R[Y�_��bٿ'i�{_2�����1.?�D�D=�_��i��F�;��q�S�T��E
���i����4;@��>b�m�Ú��GX�vJ��3<���ց��|���+���PE7��%x{<��:] ^�8�Q�IL���T�>�cX�i�%��t+H6��E�
x��(bR�<wD��3�����ZW���s%VmN	\�j1�~��N<���*^&-��/n�db��Bk�\��"�&�y5^�쫢G�W�dx���%,e��_�b�-?	��T~��]��ץ����:�O���;*�i��K�<�����M��$�f��� 1�r�>�G(� {]#�B���Oi��#.���G��:1���_&�@Fz��%��z��&)1�/�DM���sٸ�}�>n��2����B�_0��� c�Ot��Ȫ�`
�`.u��[3j<b������#��7�Or�����Z�(+P��~��=�-����NiYR7��e�����>"���tR�t�c�N�?Էv_�VE�ɉ��"=���W�����F�)z>1������H���6�2���6�d<��p���>�6⋌xY��/Z���A
~�P$�eZ@|a�T\��j��۱�?c�ۮ�
���5Bt]Y�����5n��#�(��%D?'-�V�7�Ϩ�`
J��oڿDN�c}A��e�3ҧ�¡��;a��o�Ƴ�'{7UC�L}��9
�`�`(�	�7X�x�aC�/���}ӭ�_�/�Z�W��5�yk~���7M2_,���8�S��7?^��ZMC�xf;Q���!Pw�1Θ�QѨg�\mR4��lV4���-��Znj��M���k�5H���
mjt<qd"%��l�do��=�o���Կ�q �Y$N#��ҁ���C�ߎwh�hj㡮�28мpu����T�Q�i�R���zs[A���Dfd&��N�N��'1Ib�/�M.7�P�G��«ḮT"{�w�%�w+a )�EE��g'\��)'�|�s���S&5��<3>��|^
�?o�V^��z'��,#����Zްe[��c�g !b�$p9#�����-P��W���u���l��=�I��0��lG��h�e�M���pA��'�C���a�J[
C���a(�4����t^Ð�����M����x�{�P�����?{��x={�z�����K��̯8��W�'�ya.��p�3��Cә	'���3'��1Ff�Tjv�7fO�ީAa��N�aE��a�r�U��R䪒�iF����`&8,Ac޻0���|�?�]�,cJR���|R��yB�î�]��XV�y����T��É	xޣ��g鐏f�{V�s�����x���+D|�Eu��x����21��mu�b��\�:�f{s{�)Ug��67"���L^��n�N�!PR'R�)7�ā�P�k�',W�*��]���Q�u�[%N�TLZ7u���"�X�$�f�"��S�K��f���$��wg6�J����q��ޫ���M�+��
6�_Pe�����j��Ƨ��GqxtpA!VwaF��i���x �u�ي�n�^�U��{�����lDr�o>��Q�!Ń+�W�cմ{�{hd2�(�OE#‚�����S�]��*�*��.nJW���55:\:�H5NRy��Wz즰�7���;��<Wzq��Pް?ީ�w�ůi�V4�M���
tI�*Q~.;�K�r�+|>��*’�bc�KY\	�j�Dp�~���%��j�S�C̤�Y��S3^u������%�%�N�.��2�$�U��=P4+�/�#���;;'�)t'a�٬<�к"��Ɋ����_I�pyNH�Ǽ�r��t.ʹ���F�dC�S�ɠ�c�MH�;���#�-y�8?p�tU��@5O?d-B���q.�W�"�����L,T�df�@�&��@ہ�Z�n��6���+�����k��#�e��ܻ���Z]&M�Qv�aI�6�5�[���hW[��KŒޞ��=s������(U�(�-3�n��#���t�?���{�̍�ja�T���562�����V�UFAj���K�[s����$��8dd��
Y�k�\L7ϥn��I!���Y��%6��f��7�s��fPn���3N�"e�,MGء$eH�˭Y^����J̸s�W
8-%r(`��>yD����F����Ztx|���WJ�)���r���T�G���)P	QV�^�#B	�
þ�+o#B�b��o���ħ�&�K��M|���u��Ֆs_W����ڲ�l���-��
���=��1�mV����]��W�%�E@x�[������򝶂�Y���~��|�[yX��,�Ö���}	�=�o��,��Y�q��囲|Ӗﲕ��囱��7k��X�'���|����˒�S�@��C��C��C��)�Or|�����*�,��y���9���E�y��<Ǘ@�x���2�9�Y���
�
�/kV�+�_��Ms
��}�����`q�.{���DŽ���l��Y�1;�5�7gO�ے=e6�ś[��O\{��m��=�(%5w�pg����K���}ٯ��g�.�9�U�����������ݣ����l%�#��X�w�6=�uBbT �@AHy�����T��C� L�
1.��bp�1���ك<�<D�i��X�.v�:r�f��`!i"(��@A��]X>�x�1?�6�ۅ{������6
"�����ȇ���'�x�r�l�'c��;���/^�\���G�ˁ�1ui��(A��3����T�c'�1.���&;�?����Ia����b�閹�[�5o�����`� �n�b�����qto���^WL=튷�;`86�J�����`؉t��(�sĻ��h|w��GW:Ƣ&L��h�n),~b�K0�x�����2����ҕW���O��V{<6��0�հ9/���N���
wōx�Ckh��k�}x�3u��l�(�by�I�
��Dw�q���a)*������m�%,��N���r#v�*�k��>w����؈��'�ƻ(�����-��A8��HvF�2��i�=�Q�:��ў�����=%Ȯqm�0��إxщ��
����q�,-l��y��Ҷ��ʏ/�V:���)��Q#{�%R��5'A�Cc]/	P��)��,vB
#`,�rq�IG陿)�):ք0�&&7��jE�J�1�H��h��M�z=q�G��ja�z�	��/h����/k����5��O茎�h�em�b�_`�!flH�0�PF�"��8b��<�Q�{�s�qez_ӖZ�빖8l���ƈ!���a�0P�N��Ѷ;���(�
Mx��p��H�7%��I�$jNJ�<��zz
��҇ES���(3�����/l�����$A�(�E��J$޶lQ�D�,��l�$+�%���\F��rN�G��NB�Is(���m�&N��j��$m�9��M��Ѧ�6�{��Q�k��`gwgfgg�x��א�ӣ�9�=�,�1� ��ij�3�=�ҧ|
q���Q1��n��.@�(���^�z,�>9q<r��&�\5�gz�9��ؾ����N8���㦘��'�}܄�z�XtXt�0�t���s�`�-�&̲5�d���T��	K��x�I�2������/��Ht"E��=V��0#�W�1�5�����z2�����0�<�3�֖��%�����[�]������'�����z1�I�!��%H0x��T�%#^����]��{o� [�����1�5�!�:'�S��	�s�D�7[�v�]�1H�����i��f�ɓ���v4y�|�[�Џ�@t�x@B5G���كt6���}H�D*�y�B���E��	k
0�M���l�W
գ��0덢G\B��p��G�kO!^pZ�i|@p:N�V@�pl|�������2D�Eh�<.�@�ټqC:���f��dJ���QHi��;|L�އ�wW>.i��R�G|I.I�cf�rϊn����z㖔_&l�v���.���fH��Pj�Ϧ?k����}�*��*�R�.��Ak���yv���C�.��oK��/�v��KI體1�b�5��Mj�Xs���Y��'X�m&Yg,�mֱ��h����G"GQ���I�߂m��}O��=B7�/
e�w8ο �@��;R�`j�?����v�/�G�D����d�M4���JQ��
��/�>��/��1�����!:������؋S�0B�5Bt�c�͑V�<t��q��ͥ��z 0$2$�d��]�KG�[���O��7	cdǵIoDe�]2�H�`��'�� r��?�9�h�~�l�XT-fS�vtֺ�M�Lk+�5JC٘ l;���tօ���)b�c%���3��5!/�8�E ��g�����Gd,gxj>5H�9�
���;�� 6�g<�%-O4��i�Kv�������hcK��E6���(A��n�D����:�G�$Fi4�(�lƗ�r�?�r���փKJ�D��c+�9rC��i�=�
0�j!��(&��l?�V5����H���dC���d���^�ҏ,[dӵ�2
hp�W���i��p�G+���6���ݢM�(�O��I����^�貎��K.xP��ӳw��&��kJr9�;{:�{��q�J�B�����\kK�Ş����ո���ھg������?8�y
!;�u-�s�P���C=c��x���u��`�2��v�u�
���y��e����-�6ܳ���#w�s_�P���!���j�Վ��A���4�?t��*j��eg�<y˺������o�N.���C�{zJ����-t}����2˺�h�{ǭh�ν}=���䅎l�0�v�2n���ۊ6���c`ǜ��ۗ&N��E\�{q��Q�D^��8�Ң�8�JKKk�rNt������O��{�2�JxasS�~|�~j�!��`�u�,	Ϻ�n��=܃��֯t{��>t@J��[��C=��~i�iW�P�Sh�Z|�8�M��փB���i\L5����x-�׃�Ƭ1������3d~��7��̜��'u��0�%�Z�ISB����N��Gc��˒�O'V_|�Xw/)�K
wZ�_�Q�=��S$7��ͭ�Y�='�*��=l[a�@�����O����ѯ.˓J��m
�)�-��K�<��63�U��559�IaA��fEl�U�W��0�D��*�X���ue�DS�&<`�b:���LKS��^�nI�X��c�����Ѵ�%T)�;OƧg�Z�$b�	RJ�-����0�YX�c�����*H�U��o��J�OR7��'�0�M��
�'�ңfL�2��I_����7+����񒒆����芓�abL8Y��a�]s��[�0��(�$���^f���+��)>a�d���J����˖�d�����5�|�m�v{�d9��l{�3z!��'z�����ަ���&���!O��{:��$�-0��m��*r�i5@pi�~�̱�p<�.ԑ5{b0��]x��3�&�,������bf�$yI�O6���n�RSSf?��,����ĵ-���q������x�N�d�����|��d�~'�u��Y$��uu�zD�b�Y�1	q-Cd�o.vOB�~�xt�l��Θ]K�����B����Ft-�w2�8<����{��w�m�<�{û�ieg��9���=]�J��xc��fӎ�=u�)���ak0kN9{��wCM)�Ϫ �2�u��to���Gu����n��Y�2�p�|Jv6C"*��k$c�\�����շ?<�oK�k7(��ξO��j���kH��g�w��v�r��NO��7eH���!Cʩ@��('�}�ǂ������Ɏ�zg�o���,zM�a]><SǎH����ܣ�gj�̫#�S�~I-�w��\S�S����a�{��c�����
��d�K��S�^و�,��� s���ǥb.�8-��q)��
\��R�6�PI�M��3��4p)H�`%!W�Z��ƥv.upIȕ�V��%'+uj��K�1��\��ʀ�++���-\���AΆ��a9�H	�\���i�f8��|���\F��r�����������ȕ�̳`��Z�r�`�y6�C9g�a���O�Q�I��s�4DC�B����s��
��}ǿ����"J��0�q��~��S�_ �=�? �#�?#�{��"���_q<���" "�G�ηK�=ݽC���$u�N�En9<z��{��u�ܗH0ni�0�nI܇��o��M[�>�	Ij�jh8�֌�?f�Ƥ9I
YWYH�!q?c]ҍ�C�r�(Iڞ�W�m��_��u�v!���!�#4"4!خjm<�?�]{@�B��ڱ�G-���:��;�tB*�����lȕd@})��y��^�yJ>�^�d'��p��q��)��IVIn��a���,��g������F���M0�rH��;�0��wa ��	F�	=�����8,�ܥ�@�uA[x
���W���+������ʐ�eU��Z��t�l���� ��s����EZ����cy+��o#N��d�p���#�%��q�#�ٌ�a����Gk��u�ڥ���bvsL�4��V�H�D����@8Q}��ĭ2n�&"
�)R���7����!��C�o�q��.E&/�v펑ցVGo�c�<Шj!G;��.�C&�s�j�c�y޼`&�V;i��s��l�q}�����8�'�1��~o���p#3���h��46ZW�Z5�n���&��\o�T�l_4���p��q���iě̈́�:��k�WJN~O/�/����l��3�e�� � �=��>0N��ߚ�{N�?�G#x�=L�u�w7C��Au�h������6C�5��`e�������Yo&�Ͼ��	�)��qL{#�p��=�E�&}�w�Tn��-���Y�U�6��v��a�p�0p�8�>��=��!F� 3y#��GA���F�{ჼ�$�����*{��1V��Y��<�*��j_ed~�γb�^d%�����qV��'��~����Y9~�����G�֌�@�D�#y��x!bk6��mP�u$��^��A��,��w?K��6 �����������_�����0h
$��ד��c����P�]�x��!�R����q?��p�9�pC�_�n{l�bE����S��"	h0V�&Ƶ��tǥ�M*�O>�4�y�6��R�g��X�U��c����GL��㲾r�NX�9��i��i"�/��Oq)���;/�}�i�f�	!��E"�T{�ĭ���$��S�.�(�@���+	U�vL�L��+慯�-�BL���?F!_e�ۘW�|�i��g������dza�$>�7���lx�6�W��%�i6��"��N�.q�?1+
S��b�[E?�s�o𾟬6�6nD9>������i�ϼ��_L^ U̧��u��=���.�*���,򵻇&,D��F�8@��>���|�TA����pp���/���)�5^�	�D�2���Bf�}��c�<���}��H��#�}����&c��	Z>��{P�=��>�w�S|�yt��ㅱ|��x?LmQa�x��q�v0n�k�}��
絯2Q$]�'�=K��^��dS�5�(��p~ɴ?�8 ��W�:�������Q�c���oY�F	��;�K���"<�_�9/���@o��;�h�	[$�g;��s�}����Q������'�ӾC�� ��L�K��`�_Q��x6��ܔ�E��Q���<ɨ��7�6�ݯ=xW�(iEMz#+�f�sR�:���>��&I[of%=��ҳ%"ɽ"IX$��)3�A1�S���x3Dl�%���q��NF6k�Jl
]��O�����5)��`��W�طId�4�����;�C�6�JaKV�{dc�/��h��X9<.=�߂�l��nq�nI�02�#�{�r��['��y�B�wQ���yG���b�%�	)�|�[+�����L�a���F}�I��Kӵ�ud��'a��<��9�obr��DŽ�3u��q4W�0�~����� Ex�ńJ�`�C����Ȭ̥z��\ۖ ��ʞ��bq�2j�,]t�p�b��"�����=���O,p������	�aif�\�J�V�z�C*���񼑸�Ei �H�1b�d.=��\�Q��jh�o6�_�'�g�b�pp�9�$fD��4����-�voU���8l���q ��`�yEJN{�pL5�~�&�l�:ߑD�9���Vt��B�`->��f��$�ZY�xT��	9�kI���!w@|�殮�H х���ck���y�؜��G�+��`�r=��^���YE�A�.�yI��]��%R̀�RUt�:�W�	�'i����9إ���=;��N/����I���,����1�<n�@����us3=�~��-#�b��!:�="2�X�~���'�f<.�㧒fX�?%���3FO<�����!���Dz�{��('$ϺS>�" ��D���T98��|3�k�#�3~�n�+���(.*���P�9��^
�Ѕ��>L�L�7��3�-H�O�8
��.���K������<�0���f�p�z:�I7�6`�8sGg�����<�.j�h�%P�k��cA�H�㍲�/�E$�p��=jmx�]�r1��C���P��c�'�9T71�/��9�U1���Q�R�ƽ��sWh�^�͑ʅ�f�Q��s�M�!Rn�Ԝs�[�o�{,"���X�DB7�h8���,�^�q�T[�g�at8�ܞťw��p)���\��y�[�a��%\yю�f�	�j�������F�8L桏�h�,�Rϑ.��ca�Y;�2�>�~Ѱ�$�>*Z�1�T�
����e�>�üf� ���26S c/��s��^_�7�_�c�!M����SP�0��$��O�0'�O4ݒ���%�5���@"P�d���2l��Q2�S�/�ڛ�K8��_��$qi|	mO	�Ɨ�z�?+c��d<+Fݢ0(��6�ܪ����o#�-�$����4���#�J�wZu�n2�Q�p��嫰��<=��9���\1�=]��r%��K��m|^<���t�We@�Jw � �#�D�J��߂�I���@�p2+5����E�'�a�Ic�*�{[0�^�#��)DIG�����	+!����K�$��E7C�~1j�/�0`����qƬ����e�^5���*�ט�M�v(>�bY2�W,*f�2-c�P����|�Lu��*��B��Ƚ&�0���>�zssg�(C��H( ���k�S4)|��`�,�JrH{��(��{����������7);���M�E�Y4�C�Eq��Õ�[q�U{+2�U)�P��E���R�l���p���T��%��D(����B��҂� y;<��wҸ|��;طRY(h~auz�(�N�t����QV,�G�{�3�f�_�'FG��ڍ�;�kuGĵm���º���T�7iJ�C [|uGɼl��u5��u�=
�
�+6��O5tl��'�M��k�"�6	��P��	��t�-aA^|��mv�-tZ��0��<n�;~���d����5�0���Ȩ��=�؉��:��-�>h��-#��`�^�����h�鴄^�ox[{��*eΩPݚ��g��J�������dI� [ng^b�t�=a�GFv��%J�I�^nlw���:C����˔(
�mf�
�����h��<Xq�w&F��`�VB3}�p�OX���M�*
�wT�:s�xٳ �8�ș�ˀ7���OX�N��6F�e=�\���F.W��j����u<K��.o�r=�����V��B�^�����??���+&��@���l�\/���e���٦;�)�#��Iw�2%E1�@��=�,w�Y�e�e
m/�I�V�R(߭��9�#!��F<f�B+QLd�a7�K���I焺��&��jT�ĵ�:�L
_�V'
�3��ɶ%Go���Q����|@r���YZM	K�ȴx����>���’GU�eP
|a6e&�%�J�A/N��k�b�.ZHn�ˠܫ�y�q�9O���Ҏ7�E|��6����^�X��>�<u��Ż�cX���`h�R�r���Dˉ��r�Ȭ�]����6�G	���,�+�B��~��
��V[y���9}?@��p,��C�P(�I�9��C�	1��*�<�m��T�3��t(@L�Fe��<3C��<+��U>2�\�v'��cZ���J�i�j�Q<���'��x�p�u�4�hdr�bO�ds��6�D!9~��P
��N�Q�(9�c�,/���?�r��:�S0�I�$�1�)�my�(>�U�1�K����!R?��?O��3u�|�1��ő�
�C0D1e��"m~������](��$7r_�[�(��25r���Md�u޴�N#w��B���e�>C���K�]����Gє�hG��/f������`_�����M}��/(5.�����*z�t�?�;H;�w쫏|�:v�\�����ZC�u������%B�vC�J(�M�S����jvJ sZ�is��v�K�>&�������2��C	2�Kv1�Y�0a-,�OB��(�gW�������m�]\����Jkȇ" �гk"����^'�ž�>���?�x��j���|��l��4"�S{�'+3hW�E:�-ϗ��������Y3��U��̖P^F����s;�*	A��/�GI�S;�e��hsDgRh*e��X\�b��!g �ˇ���@1�xח&�8� �y�؉#�B�sf.M;�Q�>q�ԣ&�^���EJ�� �o��j�	R@�i��C!t�:��^�qVd	M�AU�Z:M�,��:�_�9��j��Lr�VPf���(3%K�q���w��5���)�u�#�A�e�dPp�k�\�]u\�0H�?@�I�%Ng��"Lx.�� �w���X̕N:������9 �Ũ��N>M�3
Z|��+��00qu����I�zY�S���¼馉cm�F=2'�ؤ���ad�D���VWʽ��yT�5 ���<��4�D�A'��pG!�.�t�Y�
�)�:hE�HU�t�b*X��Խ�D�����(�E�v2!�jӪ�Z!	�#�����"E�%����K�-���5��abr��q�.�1"%˨.#��� �d�$,���0�L�'��M�\�s��Fl)��c",r{��2�^�W۳ʡ�vKCTnjh, B�R�'$��jJ����<,��@��
l$77�.S����ҝ��-

�|��-��4��rKkkR�T��rkc[��C�T��[��	o(�3g4�.6�
�Vw����x�UNy+}�x�8������%<�3���<�3sOU(��A��$�POc�`$E(� ����u@ؔ��_XT\
9
��0PȮ�v(�Pf��h;_�x9B��nd^�T�Ŷ�F����nw��'��0�g�[��qϙ%<[�s�l��>s牃�(%F��RV66ap�f�*�؅F ���;��7�Kc3�&���Fe))|@w	�c<��xn��m�Q��[2�Q�9�����("�R�YX�<����m4�98D+��<1ԺhY��K_�&�FS�3���<��j��V%P{lmʁ-I�K��]�ݙ���lV6kvw�(�����kir�JrKS
�c�Q��B
�1*�H��ۚ
lK��Hzl�}	���b��g�tٵM������Ks{�W9^�g�S��B+�<�M/h›�#�܌k��ҋ:�,-y{%��8@�'�qf:��u�8T�9=հ�1U����',��Z`�.F-���T��\�uIiPB�󾔗(���y�+��G�Ol��
��f!�"���Ǐ5ؤ��
��,��)CN"�PtH����jA�M
��$*�CP|
M4�h$�IĨX��0�;q��NP9���!JX�d*LK.F�è�t�F5���/,�+_,�8ޓz]xW�B/g�R/_���5Z�(�b-F<.VP%P ��Dd�y,�;�F0?��8Ҡ!��X(̚J�r|�T�%�	�j�L�&',��i�cd�ȯ�� ��{����=��'g&-�V%��
�+d�˾`�m�F�L3�`�����8�1&5���d٩7"�z�(h�q��,��� yX�����G>&�,��f"���9�������_z�Y�L�969�o���<'g��;sj4w:�jg��N�X�V�i�e�>|�u���~��iv�[V,�9�
us������_'��5r����bP	N�8�v�h�K��
��tז�m�/���ѝ0����L�c,��˹')���ZL��!!O�N�j�I��x'2�В�DKJZ�(�ؙA��b=�q�L��n��X�Z�V�X
�J�P+\,�)">ͷX���Q�-�."�����H�V�X�,"%Z�b�)�JKA�oW�X�qD֑�N����G�}��u4v�K�� u
(�[	ֶ�(o���4°�?����$=Ϡ�!<�+F�L��5���P*�m[��/2Hd	
��òPv;��Lr�ɴjl�jT�IvpxR��^�iE�%�ȡ=B��~x��b�{1�@�giD���J,����[Z,Bs�ޝ2��^��1�v�N0�$,���k[��;$<��ꆚ�`nq�3��$�w�ð��&I�iv%%V�tt��lm���2w��y�V�i�aBv������;��
̤��TIfA��Sv������	�p8^�������D���Y�T����,��0��y��z�2bs��tl�$��x���9RXђ�$��r�T��0?-l�,!������K��X/C��о*���-�*I�T��_��X��2��]_Ҷv��xH�S2<~�.Ԃw3�]M��小�.��ܘ.���
 V��q=:wlօ*���Y�
��3��<&R݄%�۰\��R��–i��aZ�܌�z���􉹓pY��Dz��Y�����L���s3�%�̀Uf�yV�Ӂ#&J9mx��[7�`���86i'�%�I2ޅ}-n�Zl���l6e��+5zP�Ϭ��ܙc��A�9gN�M�Ǔ����X��0��5!��W;\7�o����ä愒�.��-��DD�
�Ky\-$�W�(Cp�:��Z��͜�qu+W��j#W��0�����so��v�vruW�xN7W{����>�6qu/W�<+�s�yV+�j�����&��ɥ�S��ux�g��qV\���o)�n.K4:�k�Z(kυ$��9�5AZ��.dd^�_��C(B(F(G��<#+�0>�uC�S�`/�HM��'���.�&���3g62r�y��B�±�wt�q��m8܎�fAu�(i�UB|W�m�䆋$D���H�X℟�m��Wi	�uv\l��|/ ŻG��-ږ�b�(��ml�f�
gԇKh���x��h�ŖN�˸��T�����c��?n6�3��"�Qv�Sr
4�Ee��Ұ�����|�	�����0���Pނѯ��khÌ�ԇ��.��Y8k�C��<!��D�F3�(�j!�D+1&ڒ>��uT�>�����hܢ�]��u�>����?W�+
����*A����S/O��yP��)�:b��
UP-�=b����ҩ+�#N�8�WB�˹T5�T����%���UE�@�E��9d�1�jQ��^u���*����������椎zV/R��B�q�$D�q��Q�h�qa5ʍ)j�|�پ."�?�^��*���UF�U��Zl75�r4�*ؽW��N�	�q�^F��^#>"y2^O	M/J��o@�j
е��R�{V5^�Ջ��{�+D�.dg�&&r`o������,��!"��`��̺���Z.���Np|�O�%���֒Ӌ�E$=��`�V�*���	{��M+@��uP�Z$#�!�' ���(�t�e�:�1;�E�j��SzP�x�L��OP:���Dԫ����"�0^풙���=t��vY@�<��s&="'���R9�'r>m�r��؀��>�_Xt�/1tB��Tq�"ږ,k�=��G1u�[��'�Xx��^ԫI=�M�k�ܾ���F�����EI��66ՋuSRD���^��Pp΀i�-�WE4��Ũ��ަ��zw ��'�C�"[aeC8�E�ұ��6"Cd�#[�[�)�Ut���E�
�6*�0 ����3�jLXߣ�a�d��^�Ax~M�q��29�#� �1������v���!5]I�|Ly���.��BC_['&Y��^L���pؐh]��39>��Q���z�>֍�2ȿ$���dW�����sw�������rP�����#�0��"����f������2I �z6S��	�N�D��D���[�?'�ss��D�pȽ��(,'�'��+4��J��h4)i�!O��ύ��o�)�؎�,$��C���V츴+~6s%�˓��!��-��$J
�DX��`����8����;M�?�������o�a�c����<`����NQ��@��Έnl�AbR?kWX���N.��ǔ`kc1�9yz:y�ut�Y���]������lj��B�����&�)��������`�F�O��I�t�h�Y��9xkP<��_C�Z��3���hr�l	�6E`r��B��6��!���&ě�%����S��c� c� O@f=3
�4�{�I4����ˇUtb������l~��g�7D6�
�?��I���b��2�ٝ�vu
nl����#@-'�x[�
PҏWH��C�訁z`�h<;v^!��Uo�`�o#���+�M\}.�5?s�u�����,���و�w;�d��&O��m�kI��%��=b/RS�=�k���������N�R�$�ǒ�4��<��IG�Rg~�s��K�$`�dd-�	y3�7Q�%1!b��P&�v���6λ˫� ��	(	����riD&�
9����
�,6��٦�D�#�9��D�M�_����P�UaN�dz91t`��`W�2�f-�:��&�j��:�F�V�E�0!�J�"�#�
�DX��
��Ǖ��aՔ0kl
��_'1;���`vC��*$�2�"��T4I�!�$k�
J���F��[��� �����]�^0n�΢���ҽ�ئ5F��i$�V�[�dż)�#y;�o1z�8&�P��饋��97�vG!���-D�’D���<��N��ec��׷�8N]Y�c+�!�[�X�y2�GB�@��?E4�� �fC�q+�޸]�2n/��7a_�)�q���^c�@��$�V��ͨ^5�)E�l��{K%x<)[0��e�Kb�z'�"�1�������A�#�K�1eU����2fQ������ �A�9���*�Po�^e7e��(�Nj�D�w��}�:/�Vv���Y�h]�2�U6�� �s4y�$:8� �%W�@�c������}C%O�ITJ����͓�@�@���`�|l��Fԏ�5���;��Q
ι}�
¹K�+�_���x��E�Qg]Z�0Χ�	g���ژ:�^�-�J�EM§#��Fׁ~~�6F\��1�좦�M�)P�w�\��w�����B&v;�P�[���@�I+�J�k�d�~3�
7>���2>�j������+��C��[���TXL�{F[($�^tS�Nbt����5�Q� T�h�|�j^N}�:�z��2ѵ#�U(L�)��/�d���8Ds.���\2�(J{�%h� J;?t�-�bSal�c3���P��?@�����w��Es� "yZ]-0BuQ24��5�r�I*���g|�ïD�%���\|�rU�K���`{P9]d9j�;��{�!�A��.9GV��~$@$f���J�[�7��<f�M�[W���斦C����r��6*\ք�MG +`�9;<@mC�㠒:`�	�eG��]%V*8�v�eѩ�*��vi"��*56Epo��*�X�%�8�1Q�O*�F�3Nɗ�X�؀m6�;��*3����P�P\°Xy����l;V7�;��Z��%�nZ�������3�Z���v�pk"�ym�|��k��y^[7Q��NFY��y� �ˮ�
�
��M�5��4�a�/1.�"���-/�*��%�(��c��|1程��.�
�Y�.3�:1t޺qšs��+��;-�oˌnL�{��~(�,T�751֩g����wv���*ix߾�n-ceݱr�B��m�@�j
�'{I�xm�k�k;��G	�ܱ�}���ݻ{�K��6��Xx�g���~�}(uɋ��Ů0��T��V���ӰO�
��o$�\�<zi����Ӆ��Ik\��S���uL�;{&q�]ô*�R��"��io�,�<��
��Ꝝ��5E>N0��ħ3���&���*��E�f�͓Lgtf�|z*_��fM\���%Fu�Ӭ\J�r&(N)� ����.+�l��"�D�T�y���eτ��|1!��%웎��<1�rݕ-.w�MC�}�t���,��Š�w�n�Cmm�,U�"���	KԘ3���;�j��GU����v�;z+}�}}���>�)�;���EX�rfg��Ke�f�&I�־�S72�F��6������ȧ������=�x'N
/�>��D��^�(Y��"�N}��u�|q�8�C�+�g��̗��8�6��U*�`������zvE�!$˔}�/i�]��{
�_y��jǨ�Lî�mu%V%�l{�˾����X�L��J�
��0�i�ə4�2�Feb���y� ��(�g�jO��4�4���ƓES�5k�a<;����:�C��I6
��Wv���k�;��098I�Q��R�A
�(�
��v1�f2{R�@�D'+��
Y$'U� Jz�K�:;����Ƣ��;�i��ԙ��r/�klHXT-@�xر��\_�>Ņil	��L '>	&���#-�Z0�?���g\�������@
tX�k>{0S���Y�UNy���;'Ov�`��9������T��|�('}��^�C�I�xM�cu�䞌�W�|.��qP)I�JI���UJp����\6 �Qb���3�;�c�2�M�I�x̶�5�_�J_4��w\�:��[p�r�K:ռ�t�tE�g��?.�u&�z� DvƏ�X=9}"_�A
��âW�VS&_�0�m	Nz��z��
=���d���Iϲ+���Kw�n����X�6�:x����65s�#��iCzqv7\�LJT
����vġ��d��\�|wA!'���� j<�㧭�c��N�P��#U���]�8��Mg��U��fID����tueW�IO�B�Ť�������OBi�gh.Xpj^W�#������m=w�knnJÄ�S�t���1�4܊�d��h�aGN���xS��H�����g���� ����N�Y8��<C��̌G�d�u{X�q�}vz|y`��F�n�0<h�\Mhj�E �W�i�
X�*�C�7J4���xA�V��#ܷҹxp�&����|���O~��)��:9�[�M�!�
��NJ�Ԉ+�s=�K��Lʂ-~N����J��Nڤ�~-g�.��!r@:{�6�E&�0BVa�4f����Is���ύ�Ur��ןUs����Y-guܥq 3���o଑� w�����'�2o�e�k���N�vp��Y7g=�y'g��
p�K�3��l/gaN�ɷp8��r�6.�Υ.��=ƥq��Υ#\:ʥ;�z'ϝ��I.�pu�Ks\:ť�\:å�p�\zw��罁Kws����\@6K�"\@���p�%��ގ�� �$��d�0�p
*=���܃�=��(�cp*}xS��8>��܆Jp*�m�t�K��p*�m�����3T���Bd�]����r�U�?��8~�k��u�o"|���w--�����������u]ƽ�A�������/��Pi�G?F�	�O~��s��^����~��i������	��J}�`k�iOf}��8��ߐ8��6�2~��9q7~���x']y����~t��i_J�E؉����\1� �w�<�zw�+��U�I|	��{o`}��pb�W�l_�\~�ݒ��}�R_֚��o���ZXk}�X�A�]��([d%�)9$O�B�i
˄T?��
Υ��S���|�����Ќ�:���H�r$��)��jG
]�u�Z#^�c\[�۪'��
�A�A'��IP3��B,��
��mp���	h�nSo`�p��
�]!5(��9|�I����Q��%��Q���$�!���+��$Rd'~U���)�50F��"�����Z!�O��H�1n'�^cڭp��+����Ek���&�>S��0�!]�1�JBn�-5�&%<T��ʔN���G���]��@����&���Y:b(+.�:9��}cM�m��f�P7s8.9�&|�1�jz�o���Si��3�b�՗�ד6�ȶH�qw�6&�@�w���<��Q��|�H��/�W?I
1#7����J���$���!�gd�������fT�#���	}"k��u�f:��of��d�)R��HH���H��d*x=�y�iǒ�yJ<���h$�:C�*;�~r���uu�u��������m�hEdB_B�
�E�4���Ahq]��
�~V�E��y�J~J�}���-�!	��k�X*u��I��
�E��ib��.�ʷ�FdJ#0��c���w�nW齄c��qq�jD5�.*+�:rzC��=p%���!�9�eXl&x�CK��~ה��m��~ȴ����{$|�H��a$�����Yx�����LCaU
��H�R�L�1=20*'F/��~̴[4K*'G$��t#�!�,���k������d�>6�a�1��$>�S��bh�zlt}]t=�>�����nj6�J N-)�k"��''��łh�ߢ�� �o���>��k�k�%�;�g(5f$�r��0R�x�I���Z���J�xO{�?��A���BBi\���K�d��P��'?+*�N�R�+��I�T̏ꢁ�
�#����)*�nI�����}=~/p�wV]¡�4�iS?��3�5t�>�ԏ_"�X=�3��f<�C���5��@�:�sI�NHu�l�2>!a@����!���)�j�OKf�i-�)�;��/�|�AG7�E7�x8D�Zc�4�!�):�$���	��Y�o��������m	8��\�l�.0��RD����~���.ԣ!��7�͙��Y��7%}�Ɣ~H�x�OEZ#m�j�4�.26=�`|�K�ɧ��Lg�8�ߕ
�ѧV��ˑ�Ex�dȱ�W��R����\��i��/��2/tFZ�3���Y2�C�D��.b�Lk ����gi����D�MD�f%^X�S���J@�>�O�D3�^�]"�'���W��I:.�o�8{�pQ=�@��pq��A�&#m�5
����AMc
�����Pmɉ��M0�"!���Q�!�w�P���9�>�ْ�&Y�-q�2R���s����������HX��{4��y��M,4t�"��P4�&���2�HJ�f�S�6�r��"J{8Yڻ���_�\`h���Hwd;�I�Ϊ��[�f���Nj�d�x����v�����z�^�i��7_��E��A�f��b֟G-6�Vn���&j@���D���q>,�t�g.Ρ�?&��!ۓVs��S��d0��4�p��uvT�
��]�Ջ�X,��^�b �L���7��h�/��v92�I^F�!<�[��mƷ�%�yҢSb��~+HN���D��F:�9�As֢,��^Z.�dP��E9!K�o���C?�VL�\|Կ��z�t�q�=�U#���\�����ͻ%"q��c9�6�� �4��E��5�/��A��(���I�����X��uP%/
�C�r�Y�E?�/j-�@y3~+��s�L�~?���V�+^\	b��Yd���6/�o��O���f�w%������A.hB�OξU:���*���b��"��1�.�˴xtX���i�ѣ�F͚�Gc����\Xh��%�/oV��Sݑ���+D��П�J��������ψv�
��U�U&;���l�[Ɖ�O�]Y	��Bkԣ
�j�"�`{���W�cT*�;�ǁ%��$x����#�� 9�qS*坑J��|B�}HTt�xR	\�i���܋�g�a4����#ɗ�S��7_�G�KdK������־�7	\ёm<�|EE����b�G؅�#��Uei�#�sAh� ݳ
�#7�m|M��}��
 �#�杯+��4�'�P�i���M�8�45�-Q�
�.��(�:�QB�y�;��:����J��_g<�T*ul�nm0�T��n��]0�5����oI��
�|��7��~ku����`�$C�Tڮ�D��x��^0~���J߂��9���P���t'���$;�xA_d���R*Udɠ:�AI��}�ҿJ��@D�TA�C�to��0~�`�	-W�M��~J�7�,��b�U\������B����`�zI�:w	�Aإ�4D#�hʟPiպ���jx�V�{T�"���H�oR�DZ��>��1��.���]��uQ�#F�z��L�$�U��Y��x�*��.��EdX�?��Q���y\|%���%�<1�ǻ����O�ٶ4�Ic��LR��Yc<�Һ�0X06Ti�y�z�]��I�!�-�{�`s�xD�t���y1�� ��U|�k3A��*u��� ,>��S0���i����*X�?��Z�3�8*"��E���~��K�@�Hk�'WnçVk�O�m��WІ�Z��]c����g14�ϙu�~����c@��Z���?-/�|^�}�}��j�łR��J��jj���۬/�5����l�/��q9Vɯ���d��#?&�ߗ��-f�5Ĥ�[t��a�1�뢞��2�@]�>�V�� �'�n��C�Y���V�Yq[�Y�kr��BN��3�:hH�i�'q$!>	Ꮽ���������c����Rfk�"C��Ԓ��%�׹�	��k�I��H%�gCQ���=tMZSd�c��X��\;��%�I!)�YE�ҍu��'��PK뚕�wƄ3��T6J��\ɲ�J5x��k'�h75,Oe1�e%}m���/�j��	�Sx�
Eɷjo%�Ֆ���,5*lh
&+=q|b���c={z�Y{o׭��+��H����#@l<k�K���vw�
U)Xշ�_S�}ИG�R��'�-x46\����'�%¡���ή]�c�|�k'��V�-͍+����C��=x�%y��0�YE��C
��k/����V٩,����������>T�컡`�yYJ��N�dkc˾	
�Ы���R���ʳ+}0:}UU���
Ҧ�rw���>F���~�5�og�����h;�>�4��[	�7�x��>aF�$��{{z�M
��l$�z�����ӹg�|��u�w�_�)�ؘc�`�`�''L���m�8�)�Ґl^���Vx)��[�>�-
�n�	݊ڎ��P�@؇��D䂩�-�-�H�f�v����ާ4��=���pz�oX
�]����'hjko��f%�e3�6�epO8<���iu��� 5��qp�ĉ٣"�9U�v��g^� �p�4�!W�.q#I_\�)͡��,�Or$�PR�P��B!S��!���������Ŷ6(��D�����yk�T�H�d�$�eFinmn\Ӏu��1iPi�}�I|;�B*���ǒ�>�,������tf�JKCK��$����$��9�`�㳓��$�`R�g�)9Զ:Խ���ض�UjJ-_���T��P-*%���<
Z��N(/O�g�g��BN	�)� +�$,����( �\�!���?!����Nx�m欍3䅀�M5��,RL�/9;�٭�y��	/�qΎrv9�eS���dy-���]\���WNs&��1��(G�+oD��A8�I%p��)�
)%|0ʠH��u8���|5>L���<��f�J^UKp�@�!T T"T#�"lAh@!� �#܈p3������"܂0�p�6���8��0�p���Y��!܍p�����^���~�B?�����v�Q�7n�;���퐡�
U���q�vG
T���-�i�v�����F�nw�ls��W�,�-"{]�8Ӥ
�I�HG2d}I'�HW
�r7�k�c<8�g̕�����8nb̓��f8��ű�y8ne,Njc#c��861�W�c+c�B;����q����q�b�W�#Н�Jp�g�_��nƊ�p3V������q���r1���x;ck��8�Xy�(c�*p�`l��0@���(m�*��v3
(��F�AAb+��~�N��-���E��:~A�?�t��FH�y���[��g/��-����D���Avat3��K����$w[Iދ$��,�.��A/���O��+Mu�&�)�d��	�G���;f&���O�?�w�(K���hk]��������0mi������hs]�ٻ��bX��xL)]��)m=b��Ժ+A�.m;by��j�!6�m@,�S�&�d�Nk~���h�����j���i9���sL�ETE��L�G4�{��Q�蛙�E�#��"���V��"�;D��u-����ۙք�}�nG�D�g�(��A�A�
#���CL�C�BbyѿB�Lی���1-���q���"�?�`��2vC��!�B�\�\C��h����R��6�a�$>.�en���rfʂ!�Lj���p�P��P2�%���`�������h�~���>�lSiD��C�l��M�s��C�<�D�O�qSgġ�ޑe��ӊK��c�:��
�6|v�,���[tB�y���|_��z����BU�R�.$��P�~�b�k������a&md�4+KVX��m%��]Y�ZE��l|)l��P��W��_��`����^I!����АN*&u~M��t��Kk隄{B�m�j�B>��l�t�h_z/��`=����M�����]�R+1)�\[����$��|˳\�:M�Rա�8��i�1	�7�:4���ؾu����(0Ug�Ӕ W"�]��9�$�*�+���u��[O�l4���*�3���pKe�2�y`,��y�Sq4P��SL��S�`�h����3J
��-k���`rϖȻi�� J�ba�}mU,4A���hҪ�2iW�-��3�����%�=~,�����X��֞�L�V�o�o���z��F�n�^��XQP��n�i?���<�™q��US��L�~V�9\a.�~a�O�>.ô�鶵���	��	b�	�G���0ꗛ8o�r+�۸��]7p�6.�̝۹���r�m��]ܳ��a�z�s��T�!.s��r��r�6.����\��(wE���8�����8�'��\>��I���24�qy��'!:�ߚ"��7�&�(k�}SYbG_W�c
ؐk��&�8֔Sl]b���'NP�ϊK6ldŕ��.��a1�&@ 8	�I�n��Zzl$�y�	�v�w:@�AgJ*ĺ�c�zf~虁����`%D2P�$��2pӈ�h�f�hU0�/�m�6G�%b�(Ư��`�HZPG"<�,&�8��"Ąk��>c�$@�n��i���.H	��Bd�����Wk"�@

�K�O�*h����虈�"����
��@�]���{��E£��S�B���^����U)]1vk��F6-��ށMrb�jl��k7Ŕ�*)\M��ª�-$���t��5l`rO��Md=��K/�Gﺓ;*��8�s���!����P�����#oG�f�Po���Wр��[tT�h�i>	Ar8@N�cNLG���qw�1�/���\'�Q��mb�f��z[X>Z9�����p�Fb\o}|>�����vif܅�;�������{nܡwDo�;���DS���0�����$���f�D��t8c�/�f��!°otJ��h���f�_�2Nd9D9�w8�wF
#pb�|ڮp7O>����AU �
����Qj�M��A��x��v+�<?���J�;�2��yѬ�d�1����B���s���z�m�(`x�>�e�?�#���6�9@m���	{"�v��H�Tv��jU�����}j�UfA;d`���~B_(���2o�Ô^��T��l�pp�ͭ3�L���K;.p��h��\��G
h#�B��z���P�MC�Q��4Ti�'�v)W�������}�0�ُ�N��<���&Q�yjK8�9z�ONO��X�1��O���%+[=�pꅫ���aYa �:��v,�[�[Dr
nY��ѹ��+|6���0+V5t�_m��U88=n�k�t�c�^y�0>�}��cf�+.���?�ΓO�8v�+.�csS�W����_���	�M��{(���{���$`�+���#E���� ��ݓS��=������UJY6tˮ�P��{=�l����04���ƙ��0M��ZaH�_nl
r����`��"���--n\2��jlt';�j�pO|\p���\|�)ؚ���rSsJ��O��#Ϻk7�F��_4gYHM!��\k�и���*P�~Be{�����T�%�K[m*�O�p	d�
����m��LE�9�p��p�2N�8��M�� ��qW)J�2��d�*ȥp��$��[���#T lD؄P�P�P����!�ЌЊЎp#+�U^��I����"�-�"��*�:�Ϯ ��0�s:�����txदӑ�<�NG6�M�òȖ!u�
|\�E\��"���EI�2�r-4h1{Ʒos�je5��+P&*��7lm���L����R��qkt���x�@��n�O�Dz�%��f/u�Y鋮-���qY/{��O��[-���A�ӳ����lA�2!�`{(\c�_��t����T�L�f��e��5�	I�L��s��,v��n0#b씘�]d,I-�
��C��1��������&Vd�AD�d\d2	D��z������oS���ۖ�M��Z��Ɇ����ٺ�!^�nK�--��7 ���N\��r	9���30@���w�i^tv{���Ejm�.N�*�]~�����+��g�q`2�\c���O��G35X �������y|B��=�ͫV�"$;2�����L8�c�_^q�LӗY�m���`o�$�	w��$��̮*|�:M����%Ӎl>��f�Fg,���x��ݰ�g��<W�ν���h��5��O���e��f	�=2�6ݧm�q��,(��4%��j��:c��{Θy�OP�v�(?҂01}�i�%������"�6BL�{̔����;�{{{�C?��������l,j(�Z�[�%]y�k�8�3�\yT��!�'֔W���d�bv�3RW�f��ٵPt�k^�ꋋoQd�a)����׽t���QZ'�2�b�ڵe�l�ԱL�j���hP�������)�z�b&��
�%Tej�,�fH�wW���ʗLC!:1'5R0!n��D��#�&��}�} �{xO��;��7�a V�Փ%�Pss��R7�ԛ�
����l,'�3f��4w��&i�$���>���W����[,��g�)�bg�vU;�4̷��0�:<V6���hi������:\��L�q�$%:��
؆lM���hLG�fO_;��#7yN�OG���%;r�s�ul]�sثUr�[N�_oo��F �&x������.7#��� ���V[C-��6��F%�54�m�Mr[{��Bhi�K=���=˼"^����ւtb"�:9{�ܤ��[W �1��&p��!2���a]GG�hc;~�駽M	£��[�����!%�'k���fU�!�������F� k�O[�]m�JsC�I�R�hJC�Um!{���`0c�e��(:���vm�MjoMn۠����!�tZ/���`jæ��A���ZZB��no����&�l�8��"e�	��w�_C0����I:{U�H(�6��om���"
5���,Wv	+ce9e�eye޲|��_�/�����d�&�8�����y�O��O!�!�@�����2��������}�]$������Ke7|��U��{=s����70�F�d�M�]���̽��k�����[��[�{+�"7�HFr9�vws�2ws�3w��Ƚk�ۘ�&�����(����;��NB�K!�7�hG1�s�i}� �
�sŽw[��{�{o9A��$v�qǎֱ'qb��}g�t+ќ_��?�Ǐ�wvvvfvvo�4�<�1Y��)˜��˜.��0fc�0f	c�0�a��"a,�a,��X&�#�1_�q�0��
a��^�Ja�FX@��hF�0Lai�>�:a4c�0~"�a�	�]���E'�a��ӱ���lbǸ��6 �1�%��66@�(������5/���.��o�9v=�
��(��@�!m�$�L�a,�QȞg�
�m�)]Bլk-��E� ��ubۍ
zD4�<hSt
��ؠ� �t$��F� �
1?��s�.�O�Q���~���%Q<�G
�D:��zN�q���H�R�'�Xl�)J�zlX�.��r��p�|Bt�Z��btZP�=	�"J�����mѳ�w%�\JΣ�":6�CD/ƞ��o���[8��魜�����靜���ݜ���}�����>��C�>��c�>�铜>��3�>��s�>������K����+����뜾�雜���ۜ��i��]����w9}��9�%����CN?���O��/8�������L���ze �IV�+���r[��*��ze0�V��zńp�1��R�^�����؃��~l��(�s���:XH���m�6˶�6��8�j"�'r?�E��k�6�MZ�<��Iڜ�ey�ͰX���"m�	���DZ^�w-/�?����B�KO��AQ t1�4C��gZbr&L�8�,�t1�l�Q�&S;�'�΅��σ���d��`r��a��Q���0yb�%0}ŘKa���@��\jZZ���B��b����W���K��Q]�-���Ht
��5
g)V ���خ�j�A<�f��vG\Vi,��V")VYH��)A8�Z��g�G�Ve�4B^�k��̴`�ZlU�K2bf&�T�K|13�Kj�%����%�񒜘هK��%�13�KƢ���3��D��5��2��[�q��0����tŕ�DkR�(R`�#bM��33��+��ȝa�3�jt��;]�;�
�L���P�Ũ?U�VV�%�̲f�Vr���Q��<���\k^��	f�(3m�O썉�X{��2k!�Yn-�5��̊p��X�_��/�;U��4f��FnB�l�8fVo"��:"6<Rm-��R�[GaH)���>MC:Z��.1_���u5"�hk�E�Yk�8G�l��8>�o���O��Wɝ����N�0�j��#�皘YR��K�#:fB��M� >޸k�Ho�w� ��W�6��η��Y&���L<��y��x���"�ax�Uq�ɋ8�Z�N�L�A���6�(T���7�Mo�ݧё�15C��H�-hQx�u���z'ʝ�s�ܙ�;'���.N嶣��8M��a:�ޓ���'���e5c�{�
�Y�*��?V·)��p�'\t�,��U�.�#�T�۵��f�"�W�Z�p�\Y��a�z8���}X������[&<?�?g��#��E�;1��Z�f`��_`3fb&�/=�J/@iJ�u/��K薠4UEi-\N�W��|�&0A��gY��S�803�Yr�]�����|L�+�C�ٳ�����
H�������h��-k/�C��j�Ӱ�P�6�}/�֝��Y��R�t-.��=tb�8'܏(Z��%h��S�K�{�nz����*�l<�v,k���z�����1jDz�;�>�F���<!��.Cc`mwFB�&i$��I>zƋq�s|�4�98@�s�7Igx�n��.��
NȢ^��r~�')/��J�ӫ�����c{��4�v��տAM��}5M��M��[A�0B�zG��Id9dq��P�N������vRS�t����h
�81s9=�P�)TfB�m��ɡP�W�!~t�J@���������_n},:Y��w�A���'ɝ���`}�C
��e}Fc�t?���	
�F߹�R�ǰ�P:�y�ҿP��vݾ4���_y��T�N@ʦPi
6h��-d�]�Bf(f�Gю����ߋN��ύ��y�F�+��Rp
�j�R���8�#p��NW;x~͕�+�u��\)�3)��#�MXgQvHG�*a�Mق�����JY��_#�s(��#p-D�ֹj�
N&���^X�%��+u|�<r��Χ��wn��-�܄�x�-���E*i*@W	_����Tl]B0X�������B��JQ�&�m0W	��KCW�j�k�y
��¼1�G*��_�2�(�y��@����^ ��h�\���М��@i��$9����;Nz���lִ鋧.�>}�&L��d��Kf�—��uMKSSs�¥���Zr��%�W�:��E+qҒ���N����u��4֔��b�r��3�˼�>�f� 1�+w�.�>M��o�|�/��>^�oj�ϣ��u?�s�.�y#r�y���X�t.�8WJ�y�y�k*����=^RhA��%���]ۼ�M.������gr�6N/�����r}2�\=�߹��nHɹr���릎վ�ᶈcAP.��
�ų�;CZ���Q�>F����B���S*'C�c��E
��ެfs���g��%מE���Byӱ�?5�]�I:���!�KȣmL#����Ko�tKZ�7'55Sķ��N(+Z�heB�$��BģE�֒Ʃ=.�Zڜx�>��w�A![�պۀ�7e4�/�S@�ݞ���If�eúiM�"���EP5ߒ��y�x����(��1�&����g$��ɲՠ/l�[۶E�����
��^��N��?��f/�������s3��5"�b��B��˽O�2�1mM{Sb�	������x�<<M���4�N����4�t}X;�uc�tT�qd��'yW�ts�J׾~��D�ȱNW�6��{-��	�g�Qy��2F5HL��7I t��<��>��$
��Z��k��Lw<*L[�ZS8-��7�7Jxc������67�Q%�>����ھZ2c���C���'4�Y���(N������������~�}Q9q�����u%�k��Oʈb'��A/���N5A������>��m��d��@���[�������vYM�Pb7${�Nl̷�:�9�X3N,`�)�̈́��6�o���?
p5��[�N��^�!�m��P?3	�ux+td*�֔"��(G����u5�N�V���V]Q�U��h5e�^���V�j��Z]9�jlu5@V�]�:-�ꉱVU6--ERA*pѲ
꽢'U�!W	d���<���jYUi��@��j�&z5�E��	O$��F8˫�*�(E�E`CA�uՕnk�Bf@mu��M�u�cːCh�8ZP���*vFrՔUWKWMyU-;n�j ��ĭ���r� �����������ԕ�{�S$��n�a��������T}��YyYn6��9�����׿/0�`�l���t©�=�}=��$tJ��ͼ�t�@�+#��B�`08;յ"N��2e��(F�0�m����xaLP	 �$�z�I�@R��Qa�F�} �um��	lt9C��CW�7Vc���е�8V�	�C�3$�!	me`�Z�0R�x���	�8Q'N��gbI��m%���y�.�M�JlWa�ۍ�:��v���n�v����K��5^!P\�Y���d���(]܋"i�c��.�h�u���=iu��Y�H�#�2Y�4�!��{�0�F��"�{�D�?`�C���<��b9x4I�������f��_a�����
�Z�(�F�u��g��g�)�~�gc۪g��@
׫x�����^�h~�������ʰU(�̑�^�(>�5���G#59=��vN��t�)��"���U��u-X3I$s%WS���^D�E�M"zT�o��Q��(���S"z��+c��Z�l���Yi���yi^��%i^��i^��5i^��
iޔ�-iޖ�i~&ML�NivK�siޕf�4�I�iޗ��J���P����X�O��T�Ϥ��4�K�'i���Ki�,M�4�4_I�i���[i�����|/Ϳ��A��Ҝ��̟����>�+�Σ�u�� ly�Y��!H�v0]�-�{ߎT�9���	/�[��@o�nLzK�Ӂގ"����6�-��R�,��d�@o�f���9@o�nM�zK6��fE��=��OZ�ZY���rLN�t�0[�0[�t�uI��-1�����0[a��"/[�j+�e��+q�T�ۦI�6]��͔��O�Y������|�(�&G�]�G�_	�+*���ʫ`����a���k`�#"u
0���TqEZP��Q]AM������])��K�;�k��ں�Ā0V�R*U
h&��h��nP�aϩ��aQw@�'%��.uE�.a���D�.��&4@�5�����
�B5��i�I
)��H
�n�acxӾ��Z
��Ա��aÛ�2 �V0d�
5
k�(d,5_��%
�fjA6�r�Ñ�2s�*᡹@�	K�dXБ+��"4�8f�Ц;^vʀ�f�,%^�eG�L?�t
��P�t��UUkU(�$%���+fZ�^ذ]��3O�� |�^��6	I�u�*��ZER�!�u���,�jǸ�Z�p
��D_�(rwd�H�l:�H������ ��9��7�>Ƣ�0��G;e��9(T�1�P��8�H1gEd8���9<0'f���Φ]].應����>�1��ʹX���48-]��}��1��^D��R��JG,K�!@�
0��\p�]4��.�0ŕ\p9
 �p>��C<���6x���hDg|0b�{?̠=�i��`�N��u��	�g��ȍ��9�	9x%�kE1��� rA�k��Ia�0
\&o�D�!
�6�Mw�1}N�ң�#w	�n��Hhlgp�0�Gc�҈R�㕈�w%�ŀ�"2�H�ah�9ɬ�����y�N ���<iי�u��Sy�i�{��xV��5>�`A�3�� |�Q��\:�K_��P�;3p���y��P�JY�M���Dh�9C����#4Ӵ�gՇ�2�K�P�8���]�=��=��{]��{{�6��{�޽ا�Y]��B��<�)�9b7�����e�u�2b�7+1�0�r��1^����D��H�É�����Q"y�6N����/�����K4C��4z�A�L��CP�>r�8]�������
	��O`N�<�%�ڗ"�n}"��^�t�����8K��Sc7|>��s��8G��B�\J'})vΗ5��g�Ȏ�{Nc�,Y4W�ķ�A|+�Cb�.Dh����a���\&"5�?i��ѧ�+���6�A����rzW�ǵ��cG����.�O�7��F�xD'���,}լ��0����'�bB��������9^t{9�</�+�Z����UT��D�k��Q�vUcܖ��@�nLT�)Q�f�ei�;�v�Z�ޔ���<��.�l'Uʣ��pT��+�g�m�u;W"��hԻC�,�G�
T�K���wS�p�+��
�G�������B�_�P;�{�����@��5�S�l�Jd���*��0?iOP6�1z
>ō��S���S��TD���=�o��Ձ������{Bi�]��OX/R6�#p��^�쪎��5��؁(���섎�_�l�����z��Gt&���^���(�[oP�OG�qa�I��ЮG�
d�H��z���<��0ð�⋚<u:����z\Yv�zj4KC7� ��S�Q�7"�0o��N��t������gs�=�?�X0��$�����^C�^����X�qԞ_��Q��MtuPߝ$�䚼�	J�{6�؍�������ښ��:�4�͕đ:��\�t�_ӽ�4���IpϹи����:�_�+i)�c��0�(�W�y�}�\�c2'4s����gF$�-_Ab+[Vq�9׺��sPD
A��(^�3,ћP�\�L�%������ Kʪ�nڰPze�`7���
m��cS�,��;�nu��`�N���n�P�4yZ74C�F	�smgKJ:i`M:�=��t�1��&&Aq%v*�|�M��B;f�{m+��d����Igvi�~_ �9�49����}e����:��'��p�d�����6�	��H7�h������Ԓ���ؗ���'ě4��v��}�ٌLw����qt0}%�75B9n��,�O9.3]�B��;x���x58c��\=�9ӗL��׌K�;�qm#0Ɩ6�]������7������y�	Y�ƒ"����Fq�`
1�Os�-�֝���8��=*�d��=&�F�z�
p86�t�:= ����$q�n|�_~q,�O��;�V�_A��N/�����>��UV��WS�ƟM��H(���V]V]�@����xcN����W
�	 Ri)�N���(�H{H��*�0�Īބb�j;������^��20�;"+�����UUT�A��Z�6������Qm-(}�u�D~���C쫉�XM�K��UWWWu�B@�j]5��������?U��Ȋ��t��UA�KP�8p���5O�Id�xΛȥ&riq�Ր"�u�C�a���g��~� aV���%Q�\�{s��Ƣ.���BN�8��RO���K7�
h�X���Bst��${g:�n�lj����z�
L�J���6SK⻹z�݌�0$����
O��d��o�v����gb;�;�\G��zj��C�B'}������
f�.�ɘ��0�Q��42�~	��9��s����Lr�*(r�,]}�(r��AL�L3���ϡ�Qk)
��DW��xȯ�&�AC+]}r�	M���MΨN��biTUS�rST���X�Ts����p����E���!�̠�z!�E!4~[�-�.S�q��'�ڰ��&����d�a��g��iX.>�v��'�[��C3N�VD�
)�^��7Jo䴃ӛ9���No�t'��rz��sz�wrz�wsz��rz��s��r���p�(��s�$�Oq�4�?��N���yN_��EN_��eN_��5N���MN���Nc�vr�K���.�����AY���^�����|5�#�c ǂk�RH�����G_@)�8�0���=�8��8���T@d�q�M�A6����X�@P����uо��z���<NRD����4��3ԑ'����>p�~�ä��DO��N�4�HP�!=�+=-U�IԵ�s�wP�C���.#�Z�J�LQH5�F�,QD5�N�l1�j9����>b$�by�苉%Xb�~��Ykȹ��	>�Vv\�H"���X���i844`�8�,+GYE�t�������QVr�n�&��k�����R\�vԀTb�裌��I�������k,b�~V�k<V��Z�O�lw$
���g���O�jt(��4}Dq�c%dj,�����"�cM�����Dr����u��L�܈�`2���p�X�&�@k��>�K?���J���D�ߣ��XKc����,d!�X�d�z�u$��B�
L�
L���eL�V�2��Vh���V�.sD`��r�Y�j��e�L�»�QK=�Z�ûHƇ��y@ޚ!
6n
���#�ы4*�!4�K��i�,�`���ʙj�рl��?��Gzw�����,
�Y��w��-����3�Y�/�-f�c�d)@\:Q�rB��E��]9H�P
J��3�@8J�
t���v]�~�@(|-g�haW8�*xU<M5��T)�&EXlE��`-�8+��o���p�4���������s�˔�B�K����8@����.��)e�؀�C�D�c�c�&?^�p
�7Ǜ��AP�]�e��$<D��7����Zۻ�b������Sq!�
V���+�@=���B�fOS"C	�H���Q�=\4ܕ��E0�[\���~{�f�D182�Q���\��]e�TU�M�y8E>�(�ᄒ�`�OC��y�x����>����h�+5n��RE�����8�%L$ѣ2�s��*�C��㺽P��9�9ȇ`L�%<s�b�|��םEt�op;��S���o�mD�U�{��T)�vg��BA6��	�H���0Kx@{h����Gj1O�/��Lz��U���Z�ٴ��D��ra��r�~�A�
T*n|)7�	5�s�mA��P��Y�TXH���}�|��uш��L��i��/�9�,p�x�xm7��ݙ�/tY_�Б�x9�p�W���W�\�C��)W��1��v���W$����S̃���A���ǨG6>n�E�P�w��T��pu��@�,t���
�Y���9%�89�`U�+.Ɣl��[��V�t��Ă��`"K����x�>��kD�L����q��A�M*�I�d�7	�dqg��ˑ^	ר3��t��y��ƓcYI�I�\����$f��]k;]Yh	�K�K/��4�[�X>ހH�Ut;Uȣ��}�y����w����}*�#��)^��#ap�	!�%���Lփ�
1��!�.��d=LY�P�=B�T�=JY�ݶ���1�ՙ�8eS��e��C{�q��ѫ܁��Ҹ�-�yh`�vn��@1�\ID��9O��(��}I��dL!�Yv�:����_�*��&�ἔ$FYN�#�u�?�p,��ɜ���>D&�:R�s�G��*�1r�œkD=NfW�n	�dN��6���s���8)�0%�C��#	p�6�����@�cI�����[$�[��&��7���視IRlvBE�@�j��J�Z#�_ٵ�8,�׭]������qޕ�"Ynؖ��׸aN������C�yW�����9a�������3��`5�.M�a����?���C`��d��$��Ps���x$��^�ZI��p�~f5A ]@Q%���(S됆�|��I��Qv��V�VR�D�,D�m�b��déu�r��$F�?��!==[���]"1M'g�"=%f'��+uSI;^���:(��6�`��N,�Ge���_;`Uz�'qל�'=�e��[�Ï6g����ӟ�G�	��� ��b��>���h;�8�x��CH����#�q�z�����d+X]����^m
Xeu��YW]�"�d��
�"����JT�B���hmm9�lت�!��l*�XVVً�V�b곜�n�Ab+G}`��	��R����-�-wR�6sP�*�*"Dd��E����h� ���V��0e-Ƃ�AX+À�7�k����VMX$r�uP���h
�yq����MLC�$�b��Il��*Ib����G�U[Y�e�V�5W[]Qꪭ����.kkA����i�������H=���`|�i�3��|�ۀ���6�[TҨH4�g�)m@C�4?�q*S�z��+~�H�|�9 W�c����	>�R���\n��t}��J�{2��эt��|7Af;^��)m�~��y:6�$�M����Fd6�e	�m�Dj��M�v`ۉ�vl�)5�2�q���=��l����m"�mô"�48n5�(e���(B�h����~����#ȁ�F�a���gA-t���H� ����P���l����Kl$<X���F̶zF\���uq�$��LT�� �ٴ�U]mM�M;��8t'��4뮋Al�D5.&�ۥ�_��rոDա#`D75=#��AJFViG`��[��N/9*#cntתj�^�2�i#�M��r�N鼓��ĨQ�TO��D�+Ȥ��z��~=��o���ⶥg�B�6%�V޹CDo��]�3�A���G�,�Q}e�+��
6�I�4oH�4oI�4?�&&M�4���-�ϥyW�=Ҽ'�/�y_�_J�+i>��Ci~#�G�V�����4�H�{i>��3i>��i�,�%�W�E����F�o���4�I�7i�.�?��^�J�4{�9M�i=C����*͹Ҝ'��\(�E�*�ʕro�*:��ā[�<�0�IP/ `�Ftpp�a/`��@�3��L�����8�o&`���Y����L�sg���L6W"�y@�O�z�́����O#�F5��IA�#<�3��Y0�������-<�nrA��("<8����#<8����#<8����#<8����#�xp�u��n��
<8⺁w-xp��w=xp7��w#�Q{�@QǬ�Q@��X�Xq4]Ċ�i%V\�͊�`V� �A��ǎ�̊��f���7��7��7��Wߛ7K�S��
@��@T�]b�Z3��-	p3��&�� �J1��X�ƵJ��|��b�h�/[��%p�G�;^v$�@�bR\��e�k�m\C(�l
����> ��b���qFS��E�"��M��-t	�JK��H*U$U�jW�B�F�;\�]�����l���^O�`*P\�4R�0{�@�D���6�����2�)1�0֎�;0440}�P�����A����D���c@�A$�'�5���Z,0�8�m+�]�����@`q0����G]���.�]�ϖ�d`�T����%�0�FGT9*`>c�
�G����;��]f����"U��)��
'eJ���%�o��!���A<L����o�ᬾLc9Mx�56���qP��&>Ijړ1M��q��-��n@�q -A��>r;�˜.3T����`c<�փ�H����G4��4��%��Ds�9)X����o|���^��]g2���gL�'l��3�Hg����T��M��gN�җ��o������M7�'��N"�I��SI�8I{>��uK����
Mdz��x����k`��<�����&�� ����溛��iq�UL�LS=K�c	fʃ
�1ST�\�ș$�
9��9<������7B����C�Sי$Aj�k���)�����49C�;��s��c"�}��i�7�<����7�#�m�9P)�.Bs���=��yn>U7���ktW]�&�������V�~s���A�8W��F��o��oe�KDt�{@�w
s)q�����R��/�.q�p�]@��fݨv�]-���)��-
\$(�-Ht�GK��_�G~(��ץhi�{��<���3FU&�i.ûc6�Su6@�S�V��y*�UE;�<Mr���
\
V�*X��
p��x$]��ܮ���5h:n�rպBœr%q��̸3r1�0��h�EW��fs��E9�(��0�	E툿1�'�4;�Ѯ��N��c<ny�~0��k����w��t~��w/��Cw�a#x4ޚR���a�F�*?U{���@�ǩZ.}���I�R�]��� U{��1�o0�=�j]�I��/�5�Y�]�"��K�e�����+j��l�WV�8'�u>?�_WAy���	\�k|�f�ohҦ����3�*�8 �	��M�-�]��������mN�{��W�>��zp�i�~	���5���W��'�n|���a!>V��й�Ռ/����{�Cˠ偷�	���0Y��e�ާ�m쀢��ʂ���>�,�^*�?R�_G�a}N٣:�����h|��es:/�Kʚ���gʂ����(�I�@����`Xy���q;��l��愶�PČ��Tx��	�E�� �S�;an��0�
��nN`G7'0>�SI����<�c)UF�ZI��p� h$u��%%����D߾��lJ/�"*i��BN<
�NK� �H^�\��ʐ��ojSϒ��� B� OiRl
�=�4q+^���P+�V��}M��ׄ�c�Ź$�&m:��Ι#Eoe,)�پn�T��]�O?j�e��㚶4n8��;�!�p+�&Ϙ;}�V�Ep��x�:���ơ����s�7�r��8w�8��[���[*�X+԰F��C*��Wn�N�,�аN�U�b��[eZ5$�j�ʴ��P��:P
�J����,����14kʰ�޶qlII�q�
�N^\Q�����k׵�mV˫u����=9O�LQ]�I髫���٣���T]M��L]���l]�y��OWph����u����JK~��/Ʀ)9�D`4�1�J��b+�V��[%�*l��j��b��6�8l�M�6�$lSE�\C�V��9�cBQ��(h�^���U���b�]�΁>�+�>%'C`�^���O`O�'Ǐ%������[�͡�zj}j^�޴����B��ק�"-�>��IϬ���"�W��	�������v��s�	��]��3��B}�]d#�9���_��?�\a�Dp��і�K3ݠ<a,9����Y��hp�-Iw{Ra���LIm����>@Z�'�{�D�'���������
䆽��f6���S�$��oH��u�i�
遁�t��ާ!����3�6d�Ù]� s@�/0$����7d����Da֐`X��%���
ف��l�.1�.�7V����a
G�J�MypnaiMJ(��-
�y������y�Z�J�$��+a�3٥�%[*�!�ɑvT��8��M�âA!۷H"ȅ���&�5M��
kk���(J�\b�'&BR�eP[������z6C.B6����^���޸A�_��:o�Fg�t
nt�j{6ۣ�x�=�b�����-@����{��㸓{�>�\n�~�;��go"eB�N�i�h��)'Y�w���rR0{��)' �8%�-���8+겧�~(���;��1�����hzN�t_�,��
K�;�����D�hk��v؎������77!���nlp���
�S�M��ܔ�f�Z�R28�p��]җ��/YI
�K��)1�ֽ��0�Ђf��?g,�>u�"����h�E9��5�v��;�f��vo7(��a�|;�Ӣi���� k���q�����J��7�l7E?�שM�K�K�/<IW!�{�HL����\k64��#>vS�ep�nʷ�>X�K�-UжNk��[
>�\���6�YR��_��8�b�姃>hc��x�p�>����%<�ݏ�;;fq��5�g��r�ch����
mAR��u�͓�Y���cPy��%iL�!ng�ja�F�&�>�Os��<w_O�؂�|�wz_':��9�p��5�����ɉ� ���'�Z��_H�ϦC�vC�\�5
E��j?H#A}��hjLVBHY�t���sZ��o�zR�IM'�5OZ1vEɊ�z
���EK�.p:�8�Y�!���&5E�~۴6љ�Ӱ��)�5H
��*���w�Lϥ�i����^3�C1��$=��^����yzwvnxs���G͛*_kY�nZV���v����j�����"M͉O�w�T) G,�����q���Ξ&�yb��\�V��Gy:��=�nj��>@q�9k���?�9��~�:�/��>Q�"��"�&���I�(��
�,�г�_���N�';���
}G�Y��d�sݦ��o��VQ<e��XQrtÊ�ШB���4�Q[�$}!��1'��/
�C���-0
�`l�!�#р�w�Eb�!|p�6���~�H*���RAl�e�ܩ�b4�K�R��2xkA{��
o-~�{kUa�Dꎓ�V
�e�U�B14�!>ϬrR�(�E}�UE9�x����㫪�R1��TF������4]����8��O8�U�
�]�g\�j*ܛ�OWyye��K�����%F��!���9��d̫Q��F�� �UG�I�t+��^�(��Hc���µ�U��jk���Ҩ,�֧�>$-�™�[�ߍ�M
8�݊�R�U������
�p'KK~������匁�S6��Ԡ�
e�D���t�'A�/��?�E��-ȭϝ�{���v�-7|�|��E��*Zר]�/���!���z����yK`����%-��5R6�����.�7�/twI��+uw����_�����H(�Cc9��W�(F��XRh[��'���t}���d����A��E0�".����}�8ۅ�H��mθ�B��j�ŮF�5ؠ�%nC�� ؅,��~3��c��Nl�b��=�ȝ�\����\Ɍ�=���(�;�։�]�vc��_���Yp�����b��D��+P���fpF˼{�9�S9F�ZE�9�5Ū^�����_��*���O2(o�ÑL@],թϾ��A��G�y(�7�v����L��������u(A��U(��&]ێ�Ӱmе�07��A��TC��E.Dś��C�w���v7�`��}�q����$$��(B��z��?w�_4O�����40��؆a�m46(������T]O]x:9�A�]{tt�P�
	u�	��=�R�t]�!�qVt/�*����_�z;%wbIU��Qx����#"� v��I}���o��SX�L�CM�T�W|������H�4���ci~'�'�^�O���4�I�Gi>��O�|!͗�Y�.i,i���ki���[i�*�w�M��K�i����K���+�i*_�Ҝ%�ViΕ�|i.��"i.��Ri.��ri���Ji�Is�4�Hs�4�Is�47Hs�4��,�ivJs�4�Is�z��;���{P/�=�l����g��Q^�r&2|��Y�%��A	��4RCG�t�"�0�JnrKC��`��/���鞋��ኅ72���^JE�^K�]N4�~A݌+��'���3YW��5v��k�L�u��>�S�^�7ؙ���	��ہ���fd�2�o�K�3o�3�v"Dd�vA�mȤ���v��	1�Uv'�&����wÛ�-���"���}8�#�1D�0^�Or��L��0+�ɍ~�'�<
�%J����a�E�09��I�>��)�\Q�4L���)L_Q�L?Q�,LQ��Q�<�@1��Ab܋0���`�����7q�\U"�8A�9�M�L�K�j(��
O��8ơ���D�%��m��ΰ�(�kW8Śp�#kS3S	��S�B�3�a1�M�fб���tBje�s�Z���J-ș���(Yf{����M� �^o��g{��w�A^o��z�dC[�je�Y@�MD#��R�='��9����%�(MVǀ5Q� �"WC�g�A��H��!db�E4�����(����z�h�T\S���}G\t��/�FG��)mM�s�h�֫Mb�z�	�*�]H���HS���P��YG��U�/_M��5.$���|�X'�f�)��
O��)C�v�)���neR <�p�,5�N

�����Xh��J$�$T�S�S��p�I~h�9�<�$%(��i\4�f���
���=BD��.u�h�䣤>�2J���hE5�1����(.])UܺR���"�3&��w.{��6=�ps>x|�"�lW�-v
��b��]�ڬ��盧b�C�����[LJ��Q��h��.�w-�R�Ж��섾ʄ�8�^�
� 9\'U�I��v��znm��TT�U��z[�X�:G��w8p��uR�@c2<C ���
�}�����·��>HC�ljb���En���p8��]�<��IgC1Ŝ�͏�/��L�f�M�{Aރ7�Y��������&O:jt&Q�
�
*��}p|M�(�or#���[Tm��Qm��qS�6\�̉<�p`�r9���S|L}�c�7�{��D�O�f�� �w\�~=�[ D#�U_���6���o.���`(�]>�����ۇ�S�M̗�S|��<�]�����a�{�����_{��w�{O�a�E?���@U�݋cp�Ã�InF$�\�+�=t��n�{Tˇ_V:�Y�۵�����}!�$>�#��˺d*9��t�H&�Y@�.��RT�P&!%�`O�B�APn1��+q.�����p� �B��z��A�^�
���8|�����6aP����7����ݪ%�M��]�ȳ��7��Z_B"�1sIh)<)"x��FnkY�(H��P��,#���5{x�Ғ�-�jx��$[
�ڻ,���t̎_�X���[�9w	�,&�f��Cz��,ֲ�?UQ�aP�DExk-��So��
0��/S�^=d�@+>yf~��<�䬾B���K�,����N�H�P9��w�=u����B����*�&~@�j@�D�GR-���Ӛ�RDV�f	��
�I�����j�jAN�!���|W������M�n��6�O
3����~��Hx-�[P�3\`=�4�|�c1|�؛�	\
u����}
7ҵ�G{Q�\�K��Z1;���b�E���,�/^�<���]��H��U5\���5��'�ԇ>Fg�,���o�l���r���]���y�6n	nzEh��f4�Z9��Y�U���*�"��)o�J��es6�R�G�ïp�܈���|)�!�^��R�A��w�ߠ�eh�c��̏?���Jz���'�p�ytp=���X�R��8*�g^��?�>����[��=�q
�$���pj+�}�K�+v黎�n��f�5��ş�贈*���_�n�;��v�Z��Ӵ��-��1������x.���������Kߨ/ѧ�\�u�/�\8��t�f����h�b�҈w�up;��.žǿ�r��p7|�ֹ���~I�BzI>2WR{��V�e.κ�vc�xy*������Dҍ��nJ�fmGv���aב/��t1�W4���ZnǵXw�.޿w�/�P��������?=�$�u7_5�p�[��~
�ɉ�^4��S~z�b��}����zH�#ҏ�ڭG�al�K��1�~�җ��4�'pz;+J=	�������!�!�O��x��-V���ʝ����Q��O�K�!�Lh�<����g����㭗5z ���W���k�N�m�ޠA
��I7�m��)������ ~F�$nm��.ݍ��C�Ya�\눙���]d�'*�d�������=�V���/(;��Lߧ,\U_�/)��#�
\U_ŗ&�Vt�S�kʖw^��=�#�>�lFG1g~C�t���H��������������}]����=�{\��>��@��T����ao���I{�@n}������jT{�B�%C�|���U(̓��gʪ����+m�l�gh)�STT�Ji�T�
�.�j�b���m.��+:v�G˟�i�q���i-�0>s��H�@�f}��[��'�Ǐ�?ֿ�]��Dˇ�{3��P�x;����ȝ梊�r�L���f�`C��WEH3���k�|
>���u�7��̛�|�a��0����/s�aQ��*���n��mj\�֦�E������:�ԣ�\ޮTmedia/js/mediaelement-and-player.js000064400000511274152177723720013307 0ustar00/*!
 *
 * MediaElement.js
 * HTML5 <video> and <audio> shim and player
 * http://mediaelementjs.com/
 *
 * Creates a JavaScript object that mimics HTML5 MediaElement API
 * for browsers that don't understand HTML5 or can't play the provided codec
 * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
 *
 * Copyright 2010-2014, John Dyer (http://j.hn)
 * License: MIT
 *
 */
// Namespace
var mejs = mejs || {};

// version number
mejs.version = '2.23.0';


// player number (for missing, same id attr)
mejs.meIndex = 0;

// media types accepted by plugins
mejs.plugins = {
	silverlight: [
		{version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
	],
	flash: [
		{version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/dailymotion', 'video/x-dailymotion', 'application/x-mpegURL']}
		// 'video/youtube', 'video/x-youtube', 
		// ,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
	],
	youtube: [
		{version: null, types: ['video/youtube', 'video/x-youtube', 'audio/youtube', 'audio/x-youtube']}
	],
	vimeo: [
		{version: null, types: ['video/vimeo', 'video/x-vimeo']}
	]
};

/*
Utility methods
*/
mejs.Utility = {
	encodeUrl: function(url) {
		return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
	},
	escapeHTML: function(s) {
		return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
	},
	absolutizeUrl: function(url) {
		var el = document.createElement('div');
		el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
		return el.firstChild.href;
	},
	getScriptPath: function(scriptNames) {
		var
			i = 0,
			j,
			codePath = '',
			testname = '',
			slashPos,
			filenamePos,
			scriptUrl,
			scriptPath,			
			scriptFilename,
			scripts = document.getElementsByTagName('script'),
			il = scripts.length,
			jl = scriptNames.length;
			
		// go through all <script> tags
		for (; i < il; i++) {
			scriptUrl = scripts[i].src;
			slashPos = scriptUrl.lastIndexOf('/');
			if (slashPos > -1) {
				scriptFilename = scriptUrl.substring(slashPos + 1);
				scriptPath = scriptUrl.substring(0, slashPos + 1);
			} else {
				scriptFilename = scriptUrl;
				scriptPath = '';			
			}
			
			// see if any <script> tags have a file name that matches the 
			for (j = 0; j < jl; j++) {
				testname = scriptNames[j];
				filenamePos = scriptFilename.indexOf(testname);
				if (filenamePos > -1) {
					codePath = scriptPath;
					break;
				}
			}
			
			// if we found a path, then break and return it
			if (codePath !== '') {
				break;
			}
		}
		
		// send the best path back
		return codePath;
	},
	/*
	 * Calculate the time format to use. We have a default format set in the
	 * options but it can be imcomplete. We ajust it according to the media
	 * duration.
	 *
	 * We support format like 'hh:mm:ss:ff'.
	 */
	calculateTimeFormat: function(time, options, fps) {
		if (time < 0) {
			time = 0;
		}

		if(typeof fps == 'undefined') {
		    fps = 25;
		}

		var format = options.timeFormat,
			firstChar = format[0],
			firstTwoPlaces = (format[1] == format[0]),
			separatorIndex = firstTwoPlaces? 2: 1,
			separator = ':',
			hours = Math.floor(time / 3600) % 24,
			minutes = Math.floor(time / 60) % 60,
			seconds = Math.floor(time % 60),
			frames = Math.floor(((time % 1)*fps).toFixed(3)),
			lis = [
				[frames, 'f'],
				[seconds, 's'],
				[minutes, 'm'],
				[hours, 'h']
			];

		// Try to get the separator from the format
		if (format.length < separatorIndex) {
			separator = format[separatorIndex];
		}

		var required = false;

		for (var i=0, len=lis.length; i < len; i++) {
			if (format.indexOf(lis[i][1]) !== -1) {
				required=true;
			}
			else if (required) {
				var hasNextValue = false;
				for (var j=i; j < len; j++) {
					if (lis[j][0] > 0) {
						hasNextValue = true;
						break;
					}
				}

				if (! hasNextValue) {
					break;
				}

				if (!firstTwoPlaces) {
					format = firstChar + format;
				}
				format = lis[i][1] + separator + format;
				if (firstTwoPlaces) {
					format = lis[i][1] + format;
				}
				firstChar = lis[i][1];
			}
		}
		options.currentTimeFormat = format;
	},
	/*
	 * Prefix the given number by zero if it is lower than 10.
	 */
	twoDigitsString: function(n) {
		if (n < 10) {
			return '0' + n;
		}
		return String(n);
	},
	secondsToTimeCode: function(time, options) {
		if (time < 0) {
			time = 0;
		}

		// Maintain backward compatibility with method signature before v2.18.
		if (typeof options !== 'object') {
			var format = 'm:ss';
			format = arguments[1] ? 'hh:mm:ss' : format; // forceHours
			format = arguments[2] ? format + ':ff' : format; // showFrameCount

			options = {
				currentTimeFormat: format,
				framesPerSecond: arguments[3] || 25
			};
		}

		var fps = options.framesPerSecond;
		if(typeof fps === 'undefined') {
			fps = 25;
		}

		var format = options.currentTimeFormat,
			hours = Math.floor(time / 3600) % 24,
			minutes = Math.floor(time / 60) % 60,
			seconds = Math.floor(time % 60),
			frames = Math.floor(((time % 1)*fps).toFixed(3));
			lis = [
				[frames, 'f'],
				[seconds, 's'],
				[minutes, 'm'],
				[hours, 'h']
			];

		var res = format;
		for (i=0,len=lis.length; i < len; i++) {
			res = res.replace(lis[i][1]+lis[i][1], this.twoDigitsString(lis[i][0]));
			res = res.replace(lis[i][1], lis[i][0]);
		}
		return res;
	},
	
	timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
		if (typeof showFrameCount == 'undefined') {
		    showFrameCount=false;
		} else if(typeof fps == 'undefined') {
		    fps = 25;
		}
	
		var tc_array = hh_mm_ss_ff.split(":"),
			tc_hh = parseInt(tc_array[0], 10),
			tc_mm = parseInt(tc_array[1], 10),
			tc_ss = parseInt(tc_array[2], 10),
			tc_ff = 0,
			tc_in_seconds = 0;
		
		if (showFrameCount) {
		    tc_ff = parseInt(tc_array[3])/fps;
		}
		
		tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
		
		return tc_in_seconds;
	},
	

	convertSMPTEtoSeconds: function (SMPTE) {
		if (typeof SMPTE != 'string') 
			return false;

		SMPTE = SMPTE.replace(',', '.');
		
		var secs = 0,
			decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
			multiplier = 1;
		
		SMPTE = SMPTE.split(':').reverse();
		
		for (var i = 0; i < SMPTE.length; i++) {
			multiplier = 1;
			if (i > 0) {
				multiplier = Math.pow(60, i); 
			}
			secs += Number(SMPTE[i]) * multiplier;
		}
		return Number(secs.toFixed(decimalLen));
	},	
	
	/* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
	removeSwf: function(id) {
		var obj = document.getElementById(id);
		if (obj && /object|embed/i.test(obj.nodeName)) {
			if (mejs.MediaFeatures.isIE) {
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						mejs.Utility.removeObjectInIE(id);
					} else {
						setTimeout(arguments.callee, 10);
					}
				})();
			} else {
				obj.parentNode.removeChild(obj);
			}
		}
	},
	removeObjectInIE: function(id) {
		var obj = document.getElementById(id);
		if (obj) {
			for (var i in obj) {
				if (typeof obj[i] == "function") {
					obj[i] = null;
				}
			}
			obj.parentNode.removeChild(obj);
		}		
	},
    determineScheme: function(url) {
        if (url && url.indexOf("://") != -1) {
            return url.substr(0, url.indexOf("://")+3);
        }
        return "//"; // let user agent figure this out
    }
};


// Core detector, plugins are added below
mejs.PluginDetector = {

	// main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
	hasPluginVersion: function(plugin, v) {
		var pv = this.plugins[plugin];
		v[1] = v[1] || 0;
		v[2] = v[2] || 0;
		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
	},

	// cached values
	nav: window.navigator,
	ua: window.navigator.userAgent.toLowerCase(),

	// stored version numbers
	plugins: [],

	// runs detectPlugin() and stores the version number
	addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
		this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
	},

	// get the version number from the mimetype (all but IE) or ActiveX (IE)
	detectPlugin: function(pluginName, mimeType, activeX, axDetect) {

		var version = [0,0,0],
			description,
			i,
			ax;

		// Firefox, Webkit, Opera
		if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
			description = this.nav.plugins[pluginName].description;
			if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
				version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
				for (i=0; i<version.length; i++) {
					version[i] = parseInt(version[i].match(/\d+/), 10);
				}
			}
		// Internet Explorer / ActiveX
		} else if (typeof(window.ActiveXObject) != 'undefined') {
			try {
				ax = new ActiveXObject(activeX);
				if (ax) {
					version = axDetect(ax);
				}
			}
			catch (e) { }
		}
		return version;
	}
};

// Add Flash detection
mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
	// adapted from SWFObject
	var version = [],
		d = ax.GetVariable("$version");
	if (d) {
		d = d.split(" ")[1].split(",");
		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
	}
	return version;
});

// Add Silverlight detection
mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
	// Silverlight cannot report its version number to IE
	// but it does have a isVersionSupported function, so we have to loop through it to get a version number.
	// adapted from http://www.silverlightversion.com/
	var v = [0,0,0,0],
		loopMatch = function(ax, v, i, n) {
			while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
				v[i]+=n;
			}
			v[i] -= n;
		};
	loopMatch(ax, v, 0, 1);
	loopMatch(ax, v, 1, 1);
	loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
	loopMatch(ax, v, 2, 1000);
	loopMatch(ax, v, 2, 100);
	loopMatch(ax, v, 2, 10);
	loopMatch(ax, v, 2, 1);
	loopMatch(ax, v, 3, 1);

	return v;
});
// add adobe acrobat
/*
PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
	var version = [],
		d = ax.GetVersions().split(',')[0].split('=')[1].split('.');

	if (d) {
		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
	}
	return version;
});
*/
// necessary detection (fixes for <IE9)
mejs.MediaFeatures = {
	init: function() {
		var
			t = this,
			d = document,
			nav = mejs.PluginDetector.nav,
			ua = mejs.PluginDetector.ua.toLowerCase(),
			i,
			v,
			html5Elements = ['source','track','audio','video'];

		// detect browsers (only the ones that have some kind of quirk we need to work around)
		t.isiPad = (ua.match(/ipad/i) !== null);
		t.isiPhone = (ua.match(/iphone/i) !== null);
		t.isiOS = t.isiPhone || t.isiPad;
		t.isAndroid = (ua.match(/android/i) !== null);
		t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
		t.isBustedNativeHTTPS = (location.protocol === 'https:' && (ua.match(/android [12]\./) !== null || ua.match(/macintosh.* version.* safari/) !== null));
		t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null);
		t.isChrome = (ua.match(/chrome/gi) !== null);
		t.isChromium = (ua.match(/chromium/gi) !== null);
		t.isFirefox = (ua.match(/firefox/gi) !== null);
		t.isWebkit = (ua.match(/webkit/gi) !== null);
		t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit && !t.isIE;
		t.isOpera = (ua.match(/opera/gi) !== null);
		t.hasTouch = ('ontouchstart' in window); //  && window.ontouchstart != null); // this breaks iOS 7

		// Borrowed from `Modernizr.svgasimg`, sources:
		// - https://github.com/Modernizr/Modernizr/issues/687
		// - https://github.com/Modernizr/Modernizr/pull/1209/files
		t.svgAsImg = !!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1');

		// create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
		for (i=0; i<html5Elements.length; i++) {
			v = document.createElement(html5Elements[i]);
		}

		t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);

		// Fix for IE9 on Windows 7N / Windows 7KN (Media Player not installer)
		try{
			v.canPlayType("video/mp4");
		}catch(e){
			t.supportsMediaTag = false;
		}

		t.supportsPointerEvents = (function() {
			// TAKEN FROM MODERNIZR
			var element = document.createElement('x'),
				documentElement = document.documentElement,
				getComputedStyle = window.getComputedStyle,
				supports;
			if(!('pointerEvents' in element.style)){
				return false;
			}
			element.style.pointerEvents = 'auto';
			element.style.pointerEvents = 'x';
			documentElement.appendChild(element);
			supports = getComputedStyle &&
				getComputedStyle(element, '').pointerEvents === 'auto';
			documentElement.removeChild(element);
			return !!supports;
		})();


		 // Older versions of Firefox can't move plugins around without it resetting,
		t.hasFirefoxPluginMovingProblem = false;

		// detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)

		// iOS
		t.hasiOSFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');

		// W3C
		t.hasNativeFullscreen = (typeof v.requestFullscreen !== 'undefined');

		// webkit/firefox/IE11+
		t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
		t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
		t.hasMsNativeFullScreen = (typeof v.msRequestFullscreen !== 'undefined');

		t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen || t.hasMsNativeFullScreen);
		t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;

		// Enabled?
		if (t.hasMozNativeFullScreen) {
			t.nativeFullScreenEnabled = document.mozFullScreenEnabled;
		} else if (t.hasMsNativeFullScreen) {
			t.nativeFullScreenEnabled = document.msFullscreenEnabled;
		}

		if (t.isChrome) {
			t.hasiOSFullScreen = false;
		}

		if (t.hasTrueNativeFullScreen) {

			t.fullScreenEventName = '';
			if (t.hasWebkitNativeFullScreen) {
				t.fullScreenEventName = 'webkitfullscreenchange';

			} else if (t.hasMozNativeFullScreen) {
				t.fullScreenEventName = 'mozfullscreenchange';

			} else if (t.hasMsNativeFullScreen) {
				t.fullScreenEventName = 'MSFullscreenChange';
			}

			t.isFullScreen = function() {
				if (t.hasMozNativeFullScreen) {
					return d.mozFullScreen;

				} else if (t.hasWebkitNativeFullScreen) {
					return d.webkitIsFullScreen;

				} else if (t.hasMsNativeFullScreen) {
					return d.msFullscreenElement !== null;
				}
			}

			t.requestFullScreen = function(el) {

				if (t.hasWebkitNativeFullScreen) {
					el.webkitRequestFullScreen();

				} else if (t.hasMozNativeFullScreen) {
					el.mozRequestFullScreen();

				} else if (t.hasMsNativeFullScreen) {
					el.msRequestFullscreen();

				}
			}

			t.cancelFullScreen = function() {
				if (t.hasWebkitNativeFullScreen) {
					document.webkitCancelFullScreen();

				} else if (t.hasMozNativeFullScreen) {
					document.mozCancelFullScreen();

				} else if (t.hasMsNativeFullScreen) {
					document.msExitFullscreen();

				}
			}

		}


		// OS X 10.5 can't do this even if it says it can :(
		if (t.hasiOSFullScreen && ua.match(/mac os x 10_5/i)) {
			t.hasNativeFullScreen = false;
			t.hasiOSFullScreen = false;
		}

	}
};
mejs.MediaFeatures.init();

/*
extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
*/
mejs.HtmlMediaElement = {
	pluginType: 'native',
	isFullScreen: false,

	setCurrentTime: function (time) {
		this.currentTime = time;
	},

	setMuted: function (muted) {
		this.muted = muted;
	},

	setVolume: function (volume) {
		this.volume = volume;
	},

	// for parity with the plugin versions
	stop: function () {
		this.pause();
	},

	// This can be a url string
	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
	setSrc: function (url) {
		
		// Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
		var 
			existingSources = this.getElementsByTagName('source');
		while (existingSources.length > 0){
			this.removeChild(existingSources[0]);
		}
	
		if (typeof url == 'string') {
			this.src = url;
		} else {
			var i, media;

			for (i=0; i<url.length; i++) {
				media = url[i];
				if (this.canPlayType(media.type)) {
					this.src = media.src;
					break;
				}
			}
		}
	},

	setVideoSize: function (width, height) {
		this.width = width;
		this.height = height;
	}
};

/*
Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
*/
mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
	this.id = pluginid;
	this.pluginType = pluginType;
	this.src = mediaUrl;
	this.events = {};
	this.attributes = {};
};

// JavaScript values and ExternalInterface methods that match HTML5 video properties methods
// http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
mejs.PluginMediaElement.prototype = {

	// special
	pluginElement: null,
	pluginType: '',
	isFullScreen: false,

	// not implemented :(
	playbackRate: -1,
	defaultPlaybackRate: -1,
	seekable: [],
	played: [],

	// HTML5 read-only properties
	paused: true,
	ended: false,
	seeking: false,
	duration: 0,
	error: null,
	tagName: '',

	// HTML5 get/set properties, but only set (updated by event handlers)
	muted: false,
	volume: 1,
	currentTime: 0,

	// HTML5 methods
	play: function () {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
				this.pluginApi.playVideo();
			} else {
				this.pluginApi.playMedia();
			}
			this.paused = false;
		}
	},
	load: function () {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
			} else {
				this.pluginApi.loadMedia();
			}
			
			this.paused = false;
		}
	},
	pause: function () {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
		        if( this.pluginApi.getPlayerState() == 1 ) {
				    this.pluginApi.pauseVideo();
                }
			} else {
				this.pluginApi.pauseMedia();
			}			
			
			
			this.paused = true;
		}
	},
	stop: function () {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
				this.pluginApi.stopVideo();
			} else {
				this.pluginApi.stopMedia();
			}	
			this.paused = true;
		}
	},
	canPlayType: function(type) {
		var i,
			j,
			pluginInfo,
			pluginVersions = mejs.plugins[this.pluginType];

		for (i=0; i<pluginVersions.length; i++) {
			pluginInfo = pluginVersions[i];

			// test if user has the correct plugin version
			if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {

				// test for plugin playback types
				for (j=0; j<pluginInfo.types.length; j++) {
					// find plugin that can play the type
					if (type == pluginInfo.types[j]) {
						return 'probably';
					}
				}
			}
		}

		return '';
	},
	
	positionFullscreenButton: function(x,y,visibleAndAbove) {
		if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
			this.pluginApi.positionFullscreenButton(Math.floor(x),Math.floor(y),visibleAndAbove);
		}
	},
	
	hideFullscreenButton: function() {
		if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
			this.pluginApi.hideFullscreenButton();
		}		
	},	
	

	// custom methods since not all JavaScript implementations support get/set

	// This can be a url string
	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
	setSrc: function (url) {
		if (typeof url == 'string') {
			this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
			this.src = mejs.Utility.absolutizeUrl(url);
		} else {
			var i, media;

			for (i=0; i<url.length; i++) {
				media = url[i];
				if (this.canPlayType(media.type)) {
					this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
					this.src = mejs.Utility.absolutizeUrl(media.src);
					break;
				}
			}
		}

	},
	setCurrentTime: function (time) {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
				this.pluginApi.seekTo(time);
			} else {
				this.pluginApi.setCurrentTime(time);
			}				
			
			
			
			this.currentTime = time;
		}
	},
	setVolume: function (volume) {
		if (this.pluginApi != null) {
			// same on YouTube and MEjs
			if (this.pluginType == 'youtube') {
				this.pluginApi.setVolume(volume * 100);
			} else {
				this.pluginApi.setVolume(volume);
			}
			this.volume = volume;
		}
	},
	setMuted: function (muted) {
		if (this.pluginApi != null) {
			if (this.pluginType == 'youtube') {
				if (muted) {
					this.pluginApi.mute();
				} else {
					this.pluginApi.unMute();
				}
				this.muted = muted;
				this.dispatchEvent({type:'volumechange'});
			} else {
				this.pluginApi.setMuted(muted);
			}
			this.muted = muted;
		}
	},

	// additional non-HTML5 methods
	setVideoSize: function (width, height) {
		
		//if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
			if (this.pluginElement && this.pluginElement.style) {
				this.pluginElement.style.width = width + 'px';
				this.pluginElement.style.height = height + 'px';
			}
			if (this.pluginApi != null && this.pluginApi.setVideoSize) {
				this.pluginApi.setVideoSize(width, height);
			}
		//}
	},

	setFullscreen: function (fullscreen) {
		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
			this.pluginApi.setFullscreen(fullscreen);
		}
	},
	
	enterFullScreen: function() {
		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
			this.setFullscreen(true);
		}		
		
	},
	
	exitFullScreen: function() {
		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
			this.setFullscreen(false);
		}
	},	

	// start: fake events
	addEventListener: function (eventName, callback, bubble) {
		this.events[eventName] = this.events[eventName] || [];
		this.events[eventName].push(callback);
	},
	removeEventListener: function (eventName, callback) {
		if (!eventName) { this.events = {}; return true; }
		var callbacks = this.events[eventName];
		if (!callbacks) return true;
		if (!callback) { this.events[eventName] = []; return true; }
		for (var i = 0; i < callbacks.length; i++) {
			if (callbacks[i] === callback) {
				this.events[eventName].splice(i, 1);
				return true;
			}
		}
		return false;
	},	
	dispatchEvent: function (event) {
		var i,
			args,
			callbacks = this.events[event.type];

		if (callbacks) {
			for (i = 0; i < callbacks.length; i++) {
				callbacks[i].apply(this, [event]);
			}
		}
	},
	// end: fake events
	
	// fake DOM attribute methods
	hasAttribute: function(name){
		return (name in this.attributes);  
	},
	removeAttribute: function(name){
		delete this.attributes[name];
	},
	getAttribute: function(name){
		if (this.hasAttribute(name)) {
			return this.attributes[name];
		}
		return null;
	},
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},

	remove: function() {
		mejs.Utility.removeSwf(this.pluginElement.id);
	}
};

/*
Default options
*/
mejs.MediaElementDefaults = {
	// allows testing on HTML5, flash, silverlight
	// auto: attempts to detect what the browser can do
	// auto_plugin: prefer plugins and then attempt native HTML5
	// native: forces HTML5 playback
	// shim: disallows HTML5, will attempt either Flash or Silverlight
	// none: forces fallback view
	mode: 'auto',
	// remove or reorder to change plugin priority and availability
	plugins: ['flash','silverlight','youtube','vimeo'],
	// shows debug errors on screen
	enablePluginDebug: false,
	// use plugin for browsers that have trouble with Basic Authentication on HTTPS sites
	httpsBasicAuthSite: false,
	// overrides the type specified, useful for dynamic instantiation
	type: '',
	// path to Flash and Silverlight plugins
	pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
	// name of flash file
	flashName: 'flashmediaelement.swf',
	// streamer for RTMP streaming
	flashStreamer: '',
	// set to 'always' for CDN version
	flashScriptAccess: 'sameDomain',	
	// turns on the smoothing filter in Flash
	enablePluginSmoothing: false,
	// enabled pseudo-streaming (seek) on .mp4 files
	enablePseudoStreaming: false,
	// start query parameter sent to server for pseudo-streaming
	pseudoStreamingStartQueryParam: 'start',
	// name of silverlight file
	silverlightName: 'silverlightmediaelement.xap',
	// default if the <video width> is not specified
	defaultVideoWidth: 480,
	// default if the <video height> is not specified
	defaultVideoHeight: 270,
	// overrides <video width>
	pluginWidth: -1,
	// overrides <video height>
	pluginHeight: -1,
	// additional plugin variables in 'key=value' form
	pluginVars: [],	
	// rate in milliseconds for Flash and Silverlight to fire the timeupdate event
	// larger number is less accurate, but less strain on plugin->JavaScript bridge
	timerRate: 250,
	// initial volume for player
	startVolume: 0.8,
	// custom error message in case media cannot be played; otherwise, Download File
	// link will be displayed
	customError: "",
	success: function () { },
	error: function () { }
};

/*
Determines if a browser supports the <video> or <audio> element
and returns either the native element or a Flash/Silverlight version that
mimics HTML5 MediaElement
*/
mejs.MediaElement = function (el, o) {
	return mejs.HtmlMediaElementShim.create(el,o);
};

mejs.HtmlMediaElementShim = {

	create: function(el, o) {
		var
			options = {},
			htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
			tagName = htmlMediaElement.tagName.toLowerCase(),
			isMediaTag = (tagName === 'audio' || tagName === 'video'),
			src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
			poster = htmlMediaElement.getAttribute('poster'),
			autoplay =  htmlMediaElement.getAttribute('autoplay'),
			preload =  htmlMediaElement.getAttribute('preload'),
			controls =  htmlMediaElement.getAttribute('controls'),
			playback,
			prop;

		// extend options
		for (prop in mejs.MediaElementDefaults) {
			options[prop] = mejs.MediaElementDefaults[prop];
		}
		for (prop in o) {
			options[prop] = o[prop];
		}		
		

		// clean up attributes
		src = 		(typeof src == 'undefined' 	|| src === null || src == '') ? null : src;		
		poster =	(typeof poster == 'undefined' 	|| poster === null) ? '' : poster;
		preload = 	(typeof preload == 'undefined' 	|| preload === null || preload === 'false') ? 'none' : preload;
		autoplay = 	!(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
		controls = 	!(typeof controls == 'undefined' || controls === null || controls === 'false');

		// test for HTML5 and plugin capabilities
		playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
		playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
        playback.scheme = mejs.Utility.determineScheme(playback.url);

		if (playback.method == 'native') {
			// second fix for android
			if (mejs.MediaFeatures.isBustedAndroid) {
				htmlMediaElement.src = playback.url;
				htmlMediaElement.addEventListener('click', function() {
					htmlMediaElement.play();
				}, false);
			}
		
			// add methods to native HTMLMediaElement
			return this.updateNative(playback, options, autoplay, preload);
		} else if (playback.method !== '') {
			// create plugin to mimic HTMLMediaElement
			
			return this.createPlugin( playback,  options, poster, autoplay, preload, controls);
		} else {
			// boo, no HTML5, no Flash, no Silverlight.
			this.createErrorMessage( playback, options, poster );
			
			return this;
		}
	},
	
	determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
		var
			mediaFiles = [],
			i,
			j,
			k,
			l,
			n,
			type,
			result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio'), scheme: ''},
			pluginName,
			pluginVersions,
			pluginInfo,
			dummy,
			media;
			
		// STEP 1: Get URL and type from <video src> or <source src>

		// supplied type overrides <video type> and <source type>
		if (typeof options.type != 'undefined' && options.type !== '') {
			
			// accept either string or array of types
			if (typeof options.type == 'string') {
				mediaFiles.push({type:options.type, url:src});
			} else {
				
				for (i=0; i<options.type.length; i++) {
					mediaFiles.push({type:options.type[i], url:src});
				}
			}

		// test for src attribute first
		} else if (src !== null) {
			type = this.formatType(src, htmlMediaElement.getAttribute('type'));
			mediaFiles.push({type:type, url:src});

		// then test for <source> elements
		} else {
			// test <source> types to see if they are usable
			for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
				n = htmlMediaElement.childNodes[i];
				if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
					src = n.getAttribute('src');
					type = this.formatType(src, n.getAttribute('type'));
					media = n.getAttribute('media');

					if (!media || !window.matchMedia || (window.matchMedia && window.matchMedia(media).matches)) {
						mediaFiles.push({type:type, url:src});
					}
				}
			}
		}
		
		// in the case of dynamicly created players
		// check for audio types
		if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
			result.isVideo = false;
		}
		

		// STEP 2: Test for playback method
		
		// special case for Android which sadly doesn't implement the canPlayType function (always returns '')
		if (mejs.MediaFeatures.isBustedAndroid) {
			htmlMediaElement.canPlayType = function(type) {
				return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
			};
		}		
		
		// special case for Chromium to specify natively supported video codecs (i.e. WebM and Theora) 
		if (mejs.MediaFeatures.isChromium) { 
			htmlMediaElement.canPlayType = function(type) { 
				return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : ''; 
			}; 
		}

		// test for native playback first
		if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')  && !(mejs.MediaFeatures.isBustedNativeHTTPS && options.httpsBasicAuthSite === true)) {
						
			if (!isMediaTag) {

				// create a real HTML5 Media Element 
				dummy = document.createElement( result.isVideo ? 'video' : 'audio');			
				htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
				htmlMediaElement.style.display = 'none';
				
				// use this one from now on
				result.htmlMediaElement = htmlMediaElement = dummy;
			}
				
			for (i=0; i<mediaFiles.length; i++) {
				// normal check
				if (mediaFiles[i].type == "video/m3u8" || htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
					// special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== ''
					// special case for m4a supported by detecting mp4 support
					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/m4a/,'mp4')).replace(/no/, '') !== '') {
					result.method = 'native';
					result.url = mediaFiles[i].url;
					break;
				}
			}			
			
			if (result.method === 'native') {
				if (result.url !== null) {
					htmlMediaElement.src = result.url;
				}
			
				// if `auto_plugin` mode, then cache the native result but try plugins.
				if (options.mode !== 'auto_plugin') {
					return result;
				}
			}
		}

		// if native playback didn't work, then test plugins
		if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
			for (i=0; i<mediaFiles.length; i++) {
				type = mediaFiles[i].type;

				// test all plugins in order of preference [silverlight, flash]
				for (j=0; j<options.plugins.length; j++) {

					pluginName = options.plugins[j];
			
					// test version of plugin (for future features)
					pluginVersions = mejs.plugins[pluginName];				
					
					for (k=0; k<pluginVersions.length; k++) {
						pluginInfo = pluginVersions[k];
					
						// test if user has the correct plugin version
						
						// for youtube/vimeo
						if (pluginInfo.version == null || 
							
							mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {

							// test for plugin playback types
							for (l=0; l<pluginInfo.types.length; l++) {
								// find plugin that can play the type
								if (type.toLowerCase() == pluginInfo.types[l].toLowerCase()) {
									result.method = pluginName;
									result.url = mediaFiles[i].url;
									return result;
								}
							}
						}
					}
				}
			}
		}
		
		// at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
		// if we have native support then return that.
		if (options.mode === 'auto_plugin' && result.method === 'native') {
			return result;
		}

		// what if there's nothing to play? just grab the first available
		if (result.method === '' && mediaFiles.length > 0) {
			result.url = mediaFiles[0].url;
		}

		return result;
	},

	formatType: function(url, type) {
		// if no type is supplied, fake it with the extension
		if (url && !type) {		
			return this.getTypeFromFile(url);
		} else {
			// only return the mime part of the type in case the attribute contains the codec
			// see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
			// `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
			
			if (type && ~type.indexOf(';')) {
				return type.substr(0, type.indexOf(';')); 
			} else {
				return type;
			}
		}
	},
	
	getTypeFromFile: function(url) {
		url = url.split('?')[0];
		var
			ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase(),
			av = /(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video/' : 'audio/';
		return this.getTypeFromExtension(ext, av);
	},
	
	getTypeFromExtension: function(ext, av) {
		av = av || '';
		
		switch (ext) {
			case 'mp4':
			case 'm4v':
			case 'm4a':
			case 'f4v':
			case 'f4a':
				return av + 'mp4';
			case 'flv':
				return av + 'x-flv';
			case 'webm':
			case 'webma':
			case 'webmv':	
				return av + 'webm';
			case 'ogg':
			case 'oga':
			case 'ogv':	
				return av + 'ogg';
			case 'm3u8':
				return 'application/x-mpegurl';
			case 'ts':
				return av + 'mp2t';
			default:
				return av + ext;
		}
	},

	createErrorMessage: function(playback, options, poster) {
		var 
			htmlMediaElement = playback.htmlMediaElement,
			errorContainer = document.createElement('div'),
			errorContent = options.customError;
			
		errorContainer.className = 'me-cannotplay';

		try {
			errorContainer.style.width = htmlMediaElement.width + 'px';
			errorContainer.style.height = htmlMediaElement.height + 'px';
		} catch (e) {}

		if (!errorContent) {
			errorContent = '<a href="' + playback.url + '">';

			if (poster !== '') {
				errorContent += '<img src="' + poster + '" width="100%" height="100%" alt="" />';
			}

			errorContent += '<span>' + mejs.i18n.t('Download File') + '</span></a>';
		}

		errorContainer.innerHTML = errorContent;

		htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
		htmlMediaElement.style.display = 'none';

		options.error(htmlMediaElement);
	},

	createPlugin:function(playback, options, poster, autoplay, preload, controls) {
		var 
			htmlMediaElement = playback.htmlMediaElement,
			width = 1,
			height = 1,
			pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
			pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
			container = document.createElement('div'),
			specialIEContainer,
			node,
			initVars;

		// copy tagName from html media element
		pluginMediaElement.tagName = htmlMediaElement.tagName;

		// copy attributes from html media element to plugin media element
		for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
			var attribute = htmlMediaElement.attributes[i];
			if (attribute.specified) {
				pluginMediaElement.setAttribute(attribute.name, attribute.value);
			}
		}

		// check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
		node = htmlMediaElement.parentNode;

		while (node !== null && node.tagName != null && node.tagName.toLowerCase() !== 'body' && 
				node.parentNode != null && node.parentNode.tagName != null && node.parentNode.constructor != null && node.parentNode.constructor.name === "ShadowRoot") {
			if (node.parentNode.tagName.toLowerCase() === 'p') {
				node.parentNode.parentNode.insertBefore(node, node.parentNode);
				break;
			}
			node = node.parentNode;
		}

		if (playback.isVideo) {
			width = (options.pluginWidth > 0) ? options.pluginWidth : (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
			height = (options.pluginHeight > 0) ? options.pluginHeight : (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
		
			// in case of '%' make sure it's encoded
			width = mejs.Utility.encodeUrl(width);
			height = mejs.Utility.encodeUrl(height);
		
		} else {
			if (options.enablePluginDebug) {
				width = 320;
				height = 240;
			}
		}

		// register plugin
		pluginMediaElement.success = options.success;
		
		// add container (must be added to DOM before inserting HTML for IE)
		container.className = 'me-plugin';
		container.id = pluginid + '_container';
		
		if (playback.isVideo) {
				htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
		} else {
				document.body.insertBefore(container, document.body.childNodes[0]);
		}
		
		if (playback.method === 'flash' || playback.method === 'silverlight') {

			// flash/silverlight vars
			initVars = [
				'id=' + pluginid,
				'isvideo=' + ((playback.isVideo) ? "true" : "false"),
				'autoplay=' + ((autoplay) ? "true" : "false"),
				'preload=' + preload,
				'width=' + width,
				'startvolume=' + options.startVolume,
				'timerrate=' + options.timerRate,
				'flashstreamer=' + options.flashStreamer,
				'height=' + height,
				'pseudostreamstart=' + options.pseudoStreamingStartQueryParam];
	
			if (playback.url !== null) {
				if (playback.method == 'flash') {
					initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
				} else {
					initVars.push('file=' + playback.url);
				}
			}
			if (options.enablePluginDebug) {
				initVars.push('debug=true');
			}
			if (options.enablePluginSmoothing) {
				initVars.push('smoothing=true');
			}
			if (options.enablePseudoStreaming) {
				initVars.push('pseudostreaming=true');
			}
			if (controls) {
				initVars.push('controls=true'); // shows controls in the plugin if desired
			}
			if (options.pluginVars) {
				initVars = initVars.concat(options.pluginVars);
			}		
			
			// call from plugin
			window[pluginid + '_init'] = function() {
				switch (pluginMediaElement.pluginType) {
					case 'flash':
						pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(pluginid);
						break;
					case 'silverlight':
						pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
						pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
						break;
				}
	
				if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
					pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
				}
			}
			
			// event call from plugin
			window[pluginid + '_event'] = function(eventName, values) {
		
				var
					e,
					i,
					bufferedTime;
		        
				// fake event object to mimic real HTML media event.
				e = {
					type: eventName,
					target: pluginMediaElement
				};
		
				// attach all values to element and event object
				for (i in values) {
					pluginMediaElement[i] = values[i];
					e[i] = values[i];
				}
		
				// fake the newer W3C buffered TimeRange (loaded and total have been removed)
				bufferedTime = values.bufferedTime || 0;
		
				e.target.buffered = e.buffered = {
					start: function(index) {
						return 0;
					},
					end: function (index) {
						return bufferedTime;
					},
					length: 1
				};
		
				pluginMediaElement.dispatchEvent(e);
			}			
			
			
		}

		switch (playback.method) {
			case 'silverlight':
				container.innerHTML =
'<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
'<param name="initParams" value="' + initVars.join(',') + '" />' +
'<param name="windowless" value="true" />' +
'<param name="background" value="black" />' +
'<param name="minRuntimeVersion" value="3.0.0.0" />' +
'<param name="autoUpgrade" value="true" />' +
'<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
'</object>';
					break;

			case 'flash':

				if (mejs.MediaFeatures.isIE) {
					specialIEContainer = document.createElement('div');
					container.appendChild(specialIEContainer);
					specialIEContainer.outerHTML =
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
'id="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
'<param name="movie" value="' + options.pluginPath + options.flashName + '?' + (new Date().getTime()) + '" />' +
'<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
'<param name="quality" value="high" />' +
'<param name="bgcolor" value="#000000" />' +
'<param name="wmode" value="transparent" />' +
'<param name="allowScriptAccess" value="' + options.flashScriptAccess + '" />' +
'<param name="allowFullScreen" value="true" />' +
'<param name="scale" value="default" />' + 
'</object>';

				} else {

					container.innerHTML =
'<embed id="' + pluginid + '" name="' + pluginid + '" ' +
'play="true" ' +
'loop="false" ' +
'quality="high" ' +
'bgcolor="#000000" ' +
'wmode="transparent" ' +
'allowScriptAccess="' + options.flashScriptAccess + '" ' +
'allowFullScreen="true" ' +
'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
'src="' + options.pluginPath + options.flashName + '" ' +
'flashvars="' + initVars.join('&') + '" ' +
'width="' + width + '" ' +
'height="' + height + '" ' +
'scale="default"' + 
'class="mejs-shim"></embed>';
				}
				break;
			
			case 'youtube':
			
				
				var videoId;
				// youtu.be url from share button
				if (playback.url.lastIndexOf("youtu.be") != -1) {
					videoId = playback.url.substr(playback.url.lastIndexOf('/')+1);
					if (videoId.indexOf('?') != -1) {
						videoId = videoId.substr(0, videoId.indexOf('?'));
					}
				}
				else {
					// https://www.youtube.com/watch?v=
					var videoIdMatch = playback.url.match( /[?&]v=([^&#]+)|&|#|$/ );
					if ( videoIdMatch ) {
						videoId = videoIdMatch[1];
					}
				}
				youtubeSettings = {
						container: container,
						containerId: container.id,
						pluginMediaElement: pluginMediaElement,
						pluginId: pluginid,
						videoId: videoId,
						height: height,
						width: width,
                        scheme: playback.scheme
					};				
				
				// favor iframe version of YouTube
				if (window.postMessage) {
					mejs.YouTubeApi.enqueueIframe(youtubeSettings);		
				} else if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
					mejs.YouTubeApi.createFlash(youtubeSettings, options);
				}
				break;
			
			// DEMO Code. Does NOT work.
			case 'vimeo':
				var player_id = pluginid + "_player";
				pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
				
				container.innerHTML ='<iframe src="' + playback.scheme + 'player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?api=1&portrait=0&byline=0&title=0&player_id=' + player_id + '" width="' + width +'" height="' + height +'" frameborder="0" class="mejs-shim" id="' + player_id + '" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
				if (typeof($f) == 'function') { // froogaloop available
					var player = $f(container.childNodes[0]),
						playerState = -1;
					
					player.addEvent('ready', function() {
		
						player.playVideo = function() {
							player.api( 'play' );
						};
						player.stopVideo = function() {
							player.api( 'unload' );
						};
						player.pauseVideo = function() {
							player.api( 'pause' );
						};
						player.seekTo = function( seconds ) {
							player.api( 'seekTo', seconds );
						};
						player.setVolume = function( volume ) {
							player.api( 'setVolume', volume );
						};
						player.setMuted = function( muted ) {
							if( muted ) {
								player.lastVolume = player.api( 'getVolume' );
								player.api( 'setVolume', 0 );
							} else {
								player.api( 'setVolume', player.lastVolume );
								delete player.lastVolume;
							}
						};
						// parity with YT player
						player.getPlayerState = function() {
							return playerState;
						};

						function createEvent(player, pluginMediaElement, eventName, e) {
							var event = {
								type: eventName,
								target: pluginMediaElement
							};
							if (eventName == 'timeupdate') {
								pluginMediaElement.currentTime = event.currentTime = e.seconds;
								pluginMediaElement.duration = event.duration = e.duration;
							}
							pluginMediaElement.dispatchEvent(event);
						}

						player.addEvent('play', function() {
							playerState = 1;
							createEvent(player, pluginMediaElement, 'play');
							createEvent(player, pluginMediaElement, 'playing');
						});

						player.addEvent('pause', function() {
							playerState = 2;							
							createEvent(player, pluginMediaElement, 'pause');
						});

						player.addEvent('finish', function() {
							playerState = 0;							
							createEvent(player, pluginMediaElement, 'ended');
						});

						player.addEvent('playProgress', function(e) {
							createEvent(player, pluginMediaElement, 'timeupdate', e);
						});
						
						player.addEvent('seek', function(e) {
							playerState = 3;
							createEvent(player, pluginMediaElement, 'seeked', e);
						});	
						
						player.addEvent('loadProgress', function(e) {
							playerState = 3;
							createEvent(player, pluginMediaElement, 'progress', e);
						});												

						pluginMediaElement.pluginElement = container;
						pluginMediaElement.pluginApi = player;

						pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);						
					});
				}
				else {
					console.warn("You need to include froogaloop for vimeo to work");
				}
				break;			
		}
		// hide original element
		htmlMediaElement.style.display = 'none';
		// prevent browser from autoplaying when using a plugin
		htmlMediaElement.removeAttribute('autoplay');
		
		return pluginMediaElement;
	},

	updateNative: function(playback, options, autoplay, preload) {
		
		var htmlMediaElement = playback.htmlMediaElement,
			m;
		
		
		// add methods to video object to bring it into parity with Flash Object
		for (m in mejs.HtmlMediaElement) {
			htmlMediaElement[m] = mejs.HtmlMediaElement[m];
		}

		/*
		Chrome now supports preload="none"
		if (mejs.MediaFeatures.isChrome) {
		
			// special case to enforce preload attribute (Chrome doesn't respect this)
			if (preload === 'none' && !autoplay) {
			
				// forces the browser to stop loading (note: fails in IE9)
				htmlMediaElement.src = '';
				htmlMediaElement.load();
				htmlMediaElement.canceledPreload = true;

				htmlMediaElement.addEventListener('play',function() {
					if (htmlMediaElement.canceledPreload) {
						htmlMediaElement.src = playback.url;
						htmlMediaElement.load();
						htmlMediaElement.play();
						htmlMediaElement.canceledPreload = false;
					}
				}, false);
			// for some reason Chrome forgets how to autoplay sometimes.
			} else if (autoplay) {
				htmlMediaElement.load();
				htmlMediaElement.play();
			}
		}
		*/

		// fire success code
		options.success(htmlMediaElement, htmlMediaElement);
		
		return htmlMediaElement;
	}
};

/*
 - test on IE (object vs. embed)
 - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
 - fullscreen?
*/

// YouTube Flash and Iframe API
mejs.YouTubeApi = {
	isIframeStarted: false,
	isIframeLoaded: false,
	loadIframeApi: function(yt) {
		if (!this.isIframeStarted) {
			var tag = document.createElement('script');
			tag.src = yt.scheme + "www.youtube.com/player_api";
			var firstScriptTag = document.getElementsByTagName('script')[0];
			firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
			this.isIframeStarted = true;
		}
	},
	iframeQueue: [],
	enqueueIframe: function(yt) {
		
		if (this.isLoaded) {
			this.createIframe(yt);
		} else {
			this.loadIframeApi(yt);
			this.iframeQueue.push(yt);
		}
	},
	createIframe: function(settings) {
		
		var
		pluginMediaElement = settings.pluginMediaElement,	
		player = new YT.Player(settings.containerId, {
			height: settings.height,
			width: settings.width,
			videoId: settings.videoId,
			playerVars: {controls:0, wmode:'transparent'},
			events: {
				'onReady': function(e) {
					
					// wrapper to match
					player.setVideoSize = function(width, height) {
						player.setSize(width, height);
					};
					
					// hook up iframe object to MEjs
					settings.pluginMediaElement.pluginApi = player;
					settings.pluginMediaElement.pluginElement = document.getElementById(settings.containerId);
					
					// init mejs
					pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);

					mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
					
					// create timer
					setInterval(function() {
						mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
					}, 250);

					if (typeof pluginMediaElement.attributes.autoplay !== 'undefined') {
						player.playVideo();
					}
				},
				'onStateChange': function(e) {
					
					mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
					
				}
			}
		});
	},
	
	createEvent: function (player, pluginMediaElement, eventName) {
		var event = {
			type: eventName,
			target: pluginMediaElement
		};

		if (player && player.getDuration) {
			
			// time 
			pluginMediaElement.currentTime = event.currentTime = player.getCurrentTime();
			pluginMediaElement.duration = event.duration = player.getDuration();
			
			// state
			event.paused = pluginMediaElement.paused;
			event.ended = pluginMediaElement.ended;			
			
			// sound
			event.muted = player.isMuted();
			event.volume = player.getVolume() / 100;
			
			// progress
			event.bytesTotal = player.getVideoBytesTotal();
			event.bufferedBytes = player.getVideoBytesLoaded();
			
			// fake the W3C buffered TimeRange
			var bufferedTime = event.bufferedBytes / event.bytesTotal * event.duration;
			
			event.target.buffered = event.buffered = {
				start: function(index) {
					return 0;
				},
				end: function (index) {
					return bufferedTime;
				},
				length: 1
			};

		}
		
		// send event up the chain
		pluginMediaElement.dispatchEvent(event);
	},	
	
	iFrameReady: function() {
		
		this.isLoaded = true;
		this.isIframeLoaded = true;
		
		while (this.iframeQueue.length > 0) {
			var settings = this.iframeQueue.pop();
			this.createIframe(settings);
		}	
	},
	
	// FLASH!
	flashPlayers: {},
	createFlash: function(settings) {
		
		this.flashPlayers[settings.pluginId] = settings;
		
		/*
		settings.container.innerHTML =
			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + settings.scheme + 'www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
				'<param name="allowScriptAccess" value="sameDomain">' +
				'<param name="wmode" value="transparent">' +
			'</object>';
		*/

		var specialIEContainer,
			youtubeUrl = settings.scheme + 'www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
			
		if (mejs.MediaFeatures.isIE) {
			
			specialIEContainer = document.createElement('div');
			settings.container.appendChild(specialIEContainer);
			specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + settings.scheme + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '" class="mejs-shim">' +
	'<param name="movie" value="' + youtubeUrl + '" />' +
	'<param name="wmode" value="transparent" />' +
	'<param name="allowScriptAccess" value="' + options.flashScriptAccess + '" />' +
	'<param name="allowFullScreen" value="true" />' +
'</object>';
		} else {
		settings.container.innerHTML =
			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
				'<param name="allowScriptAccess" value="' + options.flashScriptAccess + '">' +
				'<param name="wmode" value="transparent">' +
			'</object>';
		}		
		
	},
	
	flashReady: function(id) {
		var
			settings = this.flashPlayers[id],
			player = document.getElementById(id),
			pluginMediaElement = settings.pluginMediaElement;
		
		// hook up and return to MediaELementPlayer.success	
		pluginMediaElement.pluginApi = 
		pluginMediaElement.pluginElement = player;
		
		settings.success(pluginMediaElement, pluginMediaElement.pluginElement);
		
		// load the youtube video
		player.cueVideoById(settings.videoId);
		
		var callbackName = settings.containerId + '_callback';
		
		window[callbackName] = function(e) {
			mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
		}
		
		player.addEventListener('onStateChange', callbackName);
		
		setInterval(function() {
			mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
		}, 250);
		
		mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
	},
	
	handleStateChange: function(youTubeState, player, pluginMediaElement) {
		switch (youTubeState) {
			case -1: // not started
				pluginMediaElement.paused = true;
				pluginMediaElement.ended = true;
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
				//createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
				break;
			case 0:
				pluginMediaElement.paused = false;
				pluginMediaElement.ended = true;
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
				break;
			case 1:
				pluginMediaElement.paused = false;
				pluginMediaElement.ended = false;				
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
				break;
			case 2:
				pluginMediaElement.paused = true;
				pluginMediaElement.ended = false;				
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
				break;
			case 3: // buffering
				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
				break;
			case 5:
				// cued?
				break;						
			
		}			
		
	}
}
// IFRAME
window.onYouTubePlayerAPIReady = function() {
	mejs.YouTubeApi.iFrameReady();
};
// FLASH
window.onYouTubePlayerReady = function(id) {
	mejs.YouTubeApi.flashReady(id);
};

window.mejs = mejs;
window.MediaElement = mejs.MediaElement;

/*
 * Adds Internationalization and localization to mediaelement.
 *
 * This file does not contain translations, you have to add them manually.
 * The schema is always the same: me-i18n-locale-[IETF-language-tag].js
 *
 * Examples are provided both for german and chinese translation.
 *
 *
 * What is the concept beyond i18n?
 *   http://en.wikipedia.org/wiki/Internationalization_and_localization
 *
 * What langcode should i use?
 *   http://en.wikipedia.org/wiki/IETF_language_tag
 *   https://tools.ietf.org/html/rfc5646
 *
 *
 * License?
 *
 *   The i18n file uses methods from the Drupal project (drupal.js):
 *     - i18n.methods.t() (modified)
 *     - i18n.methods.checkPlain() (full copy)
 *
 *   The Drupal project is (like mediaelementjs) licensed under GPLv2.
 *    - http://drupal.org/licensing/faq/#q1
 *    - https://github.com/johndyer/mediaelement
 *    - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 *
 *
 * @author
 *   Tim Latz (latz.tim@gmail.com)
 *
 *
 * @params
 *  - context - document, iframe ..
 *  - exports - CommonJS, window ..
 *
 */
;(function(context, exports, undefined) {
    "use strict";

    var i18n = {
        "locale": {
            // Ensure previous values aren't overwritten.
            "language" : (exports.i18n && exports.i18n.locale.language) || '',
            "strings" : (exports.i18n && exports.i18n.locale.strings) || {}
        },
        "ietf_lang_regex" : /^(x\-)?[a-z]{2,}(\-\w{2,})?(\-\w{2,})?$/,
        "methods" : {}
    };
// start i18n


    /**
     * Get language, fallback to browser's language if empty
     *
     * IETF: RFC 5646, https://tools.ietf.org/html/rfc5646
     * Examples: en, zh-CN, cmn-Hans-CN, sr-Latn-RS, es-419, x-private
     */
    i18n.getLanguage = function () {
        var language = i18n.locale.language || window.navigator.userLanguage || window.navigator.language;
        return i18n.ietf_lang_regex.exec(language) ? language : null;

        //(WAS: convert to iso 639-1 (2-letters, lower case))
        //return language.substr(0, 2).toLowerCase();
    };

    // i18n fixes for compatibility with WordPress
    if ( typeof mejsL10n != 'undefined' ) {
        i18n.locale.language = mejsL10n.language;
    }



    /**
     * Encode special characters in a plain-text string for display as HTML.
     */
    i18n.methods.checkPlain = function (str) {
        var character, regex,
        replace = {
            '&': '&amp;',
            '"': '&quot;',
            '<': '&lt;',
            '>': '&gt;'
        };
        str = String(str);
        for (character in replace) {
            if (replace.hasOwnProperty(character)) {
                regex = new RegExp(character, 'g');
                str = str.replace(regex, replace[character]);
            }
        }
        return str;
    };

    /**
     * Translate strings to the page language or a given language.
     *
     *
     * @param str
     *   A string containing the English string to translate.
     *
     * @param options
     *   - 'context' (defaults to the default context): The context the source string
     *     belongs to.
     *
     * @return
     *   The translated string, escaped via i18n.methods.checkPlain()
     */
    i18n.methods.t = function (str, options) {

        // Fetch the localized version of the string.
        if (i18n.locale.strings && i18n.locale.strings[options.context] && i18n.locale.strings[options.context][str]) {
            str = i18n.locale.strings[options.context][str];
        }

        return i18n.methods.checkPlain(str);
    };


    /**
     * Wrapper for i18n.methods.t()
     *
     * @see i18n.methods.t()
     * @throws InvalidArgumentException
     */
    i18n.t = function(str, options) {

        if (typeof str === 'string' && str.length > 0) {

            // check every time due language can change for
            // different reasons (translation, lang switcher ..)
            var language = i18n.getLanguage();

            options = options || {
                "context" : language
            };

            return i18n.methods.t(str, options);
        }
        else {
            throw {
                "name" : 'InvalidArgumentException',
                "message" : 'First argument is either not a string or empty.'
            };
        }
    };

// end i18n
    exports.i18n = i18n;
}(document, mejs));

// i18n fixes for compatibility with WordPress
;(function(exports, undefined) {

    "use strict";

    if ( typeof mejsL10n != 'undefined' ) {
        exports[mejsL10n.language] = mejsL10n.strings;
    }

}(mejs.i18n.locale.strings));

/*!
 *
 * MediaElementPlayer
 * http://mediaelementjs.com/
 *
 * Creates a controller bar for HTML5 <video> add <audio> tags
 * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
 *
 * Copyright 2010-2013, John Dyer (http://j.hn/)
 * License: MIT
 *
 */
if (typeof jQuery != 'undefined') {
	mejs.$ = jQuery;
} else if (typeof Zepto != 'undefined') {
	mejs.$ = Zepto;

	// define `outerWidth` method which has not been realized in Zepto
	Zepto.fn.outerWidth = function(includeMargin) {
		var width = $(this).width();
		if (includeMargin) {
			width += parseInt($(this).css('margin-right'), 10);
			width += parseInt($(this).css('margin-left'), 10);
		}
		return width
	}

} else if (typeof ender != 'undefined') {
	mejs.$ = ender;
}
(function ($) {

	// default player values
	mejs.MepDefaults = {
		// url to poster (to fix iOS 3.x)
		poster: '',
		// When the video is ended, we can show the poster.
		showPosterWhenEnded: false,
		// default if the <video width> is not specified
		defaultVideoWidth: 480,
		// default if the <video height> is not specified
		defaultVideoHeight: 270,
		// if set, overrides <video width>
		videoWidth: -1,
		// if set, overrides <video height>
		videoHeight: -1,
		// default if the user doesn't specify
		defaultAudioWidth: 400,
		// default if the user doesn't specify
		defaultAudioHeight: 30,

		// default amount to move back when back key is pressed
		defaultSeekBackwardInterval: function(media) {
			return (media.duration * 0.05);
		},
		// default amount to move forward when forward key is pressed
		defaultSeekForwardInterval: function(media) {
			return (media.duration * 0.05);
		},

		// set dimensions via JS instead of CSS
		setDimensions: true,

		// width of audio player
		audioWidth: -1,
		// height of audio player
		audioHeight: -1,
		// initial volume when the player starts (overrided by user cookie)
		startVolume: 0.8,
		// useful for <audio> player loops
		loop: false,
		// rewind to beginning when media ends
		autoRewind: true,
		// resize to media dimensions
		enableAutosize: true,

		/*
		 * Time format to use. Default: 'mm:ss'
		 * Supported units:
		 *   h: hour
		 *   m: minute
		 *   s: second
		 *   f: frame count
		 * When using 'hh', 'mm', 'ss' or 'ff' we always display 2 digits.
		 * If you use 'h', 'm', 's' or 'f' we display 1 digit if possible.
		 *
		 * Example to display 75 seconds:
		 * Format 'mm:ss': 01:15
		 * Format 'm:ss': 1:15
		 * Format 'm:s': 1:15
		 */
		timeFormat: '',
		// forces the hour marker (##:00:00)
		alwaysShowHours: false,
		// show framecount in timecode (##:00:00:00)
		showTimecodeFrameCount: false,
		// used when showTimecodeFrameCount is set to true
		framesPerSecond: 25,

		// automatically calculate the width of the progress bar based on the sizes of other elements
		autosizeProgress : true,
		// Hide controls when playing and mouse is not over the video
		alwaysShowControls: false,
		// Display the video control
		hideVideoControlsOnLoad: false,
		// Enable click video element to toggle play/pause
		clickToPlayPause: true,
		// Time in ms to hide controls
		controlsTimeoutDefault: 1500,
		// Time in ms to trigger the timer when mouse moves
		controlsTimeoutMouseEnter: 2500,
		// Time in ms to trigger the timer when mouse leaves
		controlsTimeoutMouseLeave: 1000,
		// force iPad's native controls
		iPadUseNativeControls: false,
		// force iPhone's native controls
		iPhoneUseNativeControls: false,
		// force Android's native controls
		AndroidUseNativeControls: false,
		// features to show
		features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
		// only for dynamic
		isVideo: true,
 
		// stretching modes (auto, fill, responsive, none)
		stretching: 'auto',

		// turns keyboard support on and off for this instance
		enableKeyboard: true,

		// whenthis player starts, it will pause other players
		pauseOtherPlayers: true,

		// array of keyboard actions such as play pause
		keyActions: [
				{
						keys: [
								32, // SPACE
								179 // GOOGLE play/pause button
								 ],
						action: function(player, media) {
								if (media.paused || media.ended) {
										media.play();
								} else {
										media.pause();
								}
						}
				},
				{
						keys: [38], // UP
						action: function(player, media) {
								player.container.find('.mejs-volume-slider').css('display','block');
								if (player.isVideo) {
										player.showControls();
										player.startControlsTimer();
								}

								var newVolume = Math.min(media.volume + 0.1, 1);
								media.setVolume(newVolume);
						}
				},
				{
						keys: [40], // DOWN
						action: function(player, media) {
								player.container.find('.mejs-volume-slider').css('display','block');
								if (player.isVideo) {
										player.showControls();
										player.startControlsTimer();
								}

								var newVolume = Math.max(media.volume - 0.1, 0);
								media.setVolume(newVolume);
						}
				},
				{
						keys: [
								37, // LEFT
								227 // Google TV rewind
						],
						action: function(player, media) {
								if (!isNaN(media.duration) && media.duration > 0) {
										if (player.isVideo) {
												player.showControls();
												player.startControlsTimer();
										}

										// 5%
										var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0);
										media.setCurrentTime(newTime);
								}
						}
				},
				{
						keys: [
								39, // RIGHT
								228 // Google TV forward
						],
						action: function(player, media) {
								if (!isNaN(media.duration) && media.duration > 0) {
										if (player.isVideo) {
												player.showControls();
												player.startControlsTimer();
										}

										// 5%
										var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);
										media.setCurrentTime(newTime);
								}
						}
				},
				{
						keys: [70], // F
						action: function(player, media) {
								if (typeof player.enterFullScreen != 'undefined') {
										if (player.isFullScreen) {
												player.exitFullScreen();
										} else {
												player.enterFullScreen();
										}
								}
						}
				},
				{
						keys: [77], // M
						action: function(player, media) {
								player.container.find('.mejs-volume-slider').css('display','block');
								if (player.isVideo) {
										player.showControls();
										player.startControlsTimer();
								}
								if (player.media.muted) {
										player.setMuted(false);
								} else {
										player.setMuted(true);
								}
						}
				}
		]
	};

	mejs.mepIndex = 0;

	mejs.players = {};

	// wraps a MediaElement object in player controls
	mejs.MediaElementPlayer = function(node, o) {
		// enforce object, even without "new" (via John Resig)
		if ( !(this instanceof mejs.MediaElementPlayer) ) {
			return new mejs.MediaElementPlayer(node, o);
		}

		var t = this;

		// these will be reset after the MediaElement.success fires
		t.$media = t.$node = $(node);
		t.node = t.media = t.$media[0];

		if(!t.node) {
			return
		}

		// check for existing player
		if (typeof t.node.player != 'undefined') {
			return t.node.player;
		}


		// try to get options from data-mejsoptions
		if (typeof o == 'undefined') {
			o = t.$node.data('mejsoptions');
		}

		// extend default options
		t.options = $.extend({},mejs.MepDefaults,o);

		if (!t.options.timeFormat) {
			// Generate the time format according to options
			t.options.timeFormat = 'mm:ss';
			if (t.options.alwaysShowHours) {
				t.options.timeFormat = 'hh:mm:ss';
			}
			if (t.options.showTimecodeFrameCount) {
				t.options.timeFormat += ':ff';
			}
		}

		mejs.Utility.calculateTimeFormat(0, t.options, t.options.framesPerSecond || 25);

		// unique ID
		t.id = 'mep_' + mejs.mepIndex++;

		// add to player array (for focus events)
		mejs.players[t.id] = t;

		// start up
		t.init();

		return t;
	};

	// actual player
	mejs.MediaElementPlayer.prototype = {

		hasFocus: false,

		controlsAreVisible: true,

		init: function() {

			var
				t = this,
				mf = mejs.MediaFeatures,
				// options for MediaElement (shim)
				meOptions = $.extend(true, {}, t.options, {
					success: function(media, domNode) { t.meReady(media, domNode); },
					error: function(e) { t.handleError(e);}
				}),
				tagName = t.media.tagName.toLowerCase();

			t.isDynamic = (tagName !== 'audio' && tagName !== 'video');

			if (t.isDynamic) {
				// get video from src or href?
				t.isVideo = t.options.isVideo;
			} else {
				t.isVideo = (tagName !== 'audio' && t.options.isVideo);
			}

			// use native controls in iPad, iPhone, and Android
			if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) {

				// add controls and stop
				t.$media.attr('controls', 'controls');

				// attempt to fix iOS 3 bug
				//t.$media.removeAttr('poster');
								// no Issue found on iOS3 -ttroxell

				// override Apple's autoplay override for iPads
				if (mf.isiPad && t.media.getAttribute('autoplay') !== null) {
					t.play();
				}

			} else if (mf.isAndroid && t.options.AndroidUseNativeControls) {

				// leave default player

			} else {

				// DESKTOP: use MediaElementPlayer controls

				// remove native controls
				t.$media.removeAttr('controls');
				var videoPlayerTitle = t.isVideo ?
					mejs.i18n.t('Video Player') : mejs.i18n.t('Audio Player');
				// insert description for screen readers
				$('<span class="mejs-offscreen">' + videoPlayerTitle + '</span>').insertBefore(t.$media);
				// build container
				t.container =
					$('<div id="' + t.id + '" class="mejs-container ' + (mejs.MediaFeatures.svgAsImg ? 'svg' : 'no-svg') +
					  '" tabindex="0" role="application" aria-label="' + videoPlayerTitle + '">'+
						'<div class="mejs-inner">'+
							'<div class="mejs-mediaelement"></div>'+
							'<div class="mejs-layers"></div>'+
							'<div class="mejs-controls"></div>'+
							'<div class="mejs-clear"></div>'+
						'</div>' +
					'</div>')
					.addClass(t.$media[0].className)
					.insertBefore(t.$media)
					.focus(function ( e ) {
						if( !t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) {
							t.showControls(true);
							// In versions older than IE11, the focus causes the playbar to be displayed
							// if user clicks on the Play/Pause button in the control bar once it attempts
							// to hide it
							if (!t.hasMsNativeFullScreen) {
								var playButton = t.container.find('.mejs-playpause-button > button');
								playButton.focus();
							}
						}
					});
 
				if (t.options.stretching === 'fill' && !t.container.parent('mejs-fill-container').length) {
					// outer container
					t.outerContainer = t.$media.parent();
					t.container.wrap('<div class="mejs-fill-container"/>');
				}

				// add classes for user and content
				t.container.addClass(
					(mf.isAndroid ? 'mejs-android ' : '') +
					(mf.isiOS ? 'mejs-ios ' : '') +
					(mf.isiPad ? 'mejs-ipad ' : '') +
					(mf.isiPhone ? 'mejs-iphone ' : '') +
					(t.isVideo ? 'mejs-video ' : 'mejs-audio ')
				);


				// move the <video/video> tag into the right spot
				t.container.find('.mejs-mediaelement').append(t.$media);

				// needs to be assigned here, after iOS remap
				t.node.player = t;

				// find parts
				t.controls = t.container.find('.mejs-controls');
				t.layers = t.container.find('.mejs-layers');

				// determine the size

				/* size priority:
					(1) videoWidth (forced),
					(2) style="width;height;"
					(3) width attribute,
					(4) defaultVideoWidth (for unspecified cases)
				*/

				var tagType = (t.isVideo ? 'video' : 'audio'),
					capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1);



				if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
					t.width = t.options[tagType + 'Width'];
				} else if (t.media.style.width !== '' && t.media.style.width !== null) {
					t.width = t.media.style.width;
				} else if (t.media.getAttribute('width') !== null) {
					t.width = t.$media.attr('width');
				} else {
					t.width = t.options['default' + capsTagName + 'Width'];
				}

				if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
					t.height = t.options[tagType + 'Height'];
				} else if (t.media.style.height !== '' && t.media.style.height !== null) {
					t.height = t.media.style.height;
				} else if (t.$media[0].getAttribute('height') !== null) {
					t.height = t.$media.attr('height');
				} else {
					t.height = t.options['default' + capsTagName + 'Height'];
				}

				// set the size, while we wait for the plugins to load below
				t.setPlayerSize(t.width, t.height);

				// create MediaElementShim
				meOptions.pluginWidth = t.width;
				meOptions.pluginHeight = t.height;
			}

			// create MediaElement shim
			mejs.MediaElement(t.$media[0], meOptions);

			if (typeof(t.container) != 'undefined' && t.controlsAreVisible){
				// controls are shown when loaded
				t.container.trigger('controlsshown');
			}
		},

		showControls: function(doAnimation) {
			var t = this;

			doAnimation = typeof doAnimation == 'undefined' || doAnimation;

			if (t.controlsAreVisible)
				return;

			if (doAnimation) {
				t.controls
					.removeClass('mejs-offscreen')
					.stop(true, true).fadeIn(200, function() {
						t.controlsAreVisible = true;
						t.container.trigger('controlsshown');
					});

				// any additional controls people might add and want to hide
				t.container.find('.mejs-control')
					.removeClass('mejs-offscreen')
					.stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});

			} else {
				t.controls
					.removeClass('mejs-offscreen')
					.css('display','block');

				// any additional controls people might add and want to hide
				t.container.find('.mejs-control')
					.removeClass('mejs-offscreen')
					.css('display','block');

				t.controlsAreVisible = true;
				t.container.trigger('controlsshown');
			}

			t.setControlsSize();

		},

		hideControls: function(doAnimation) {
			var t = this;

			doAnimation = typeof doAnimation == 'undefined' || doAnimation;

			if (!t.controlsAreVisible || t.options.alwaysShowControls || t.keyboardAction || t.media.paused || t.media.ended)
				return;

			if (doAnimation) {
				// fade out main controls
				t.controls.stop(true, true).fadeOut(200, function() {
					$(this)
						.addClass('mejs-offscreen')
						.css('display','block');

					t.controlsAreVisible = false;
					t.container.trigger('controlshidden');
				});

				// any additional controls people might add and want to hide
				t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() {
					$(this)
						.addClass('mejs-offscreen')
						.css('display','block');
				});
			} else {

				// hide main controls
				t.controls
					.addClass('mejs-offscreen')
					.css('display','block');

				// hide others
				t.container.find('.mejs-control')
					.addClass('mejs-offscreen')
					.css('display','block');

				t.controlsAreVisible = false;
				t.container.trigger('controlshidden');
			}
		},

		controlsTimer: null,

		startControlsTimer: function(timeout) {

			var t = this;

			timeout = typeof timeout != 'undefined' ? timeout : t.options.controlsTimeoutDefault;

			t.killControlsTimer('start');

			t.controlsTimer = setTimeout(function() {
				//
				t.hideControls();
				t.killControlsTimer('hide');
			}, timeout);
		},

		killControlsTimer: function(src) {

			var t = this;

			if (t.controlsTimer !== null) {
				clearTimeout(t.controlsTimer);
				delete t.controlsTimer;
				t.controlsTimer = null;
			}
		},

		controlsEnabled: true,

		disableControls: function() {
			var t= this;

			t.killControlsTimer();
			t.hideControls(false);
			this.controlsEnabled = false;
		},

		enableControls: function() {
			var t= this;

			t.showControls(false);

			t.controlsEnabled = true;
		},

		// Sets up all controls and events
		meReady: function(media, domNode) {


			var t = this,
				mf = mejs.MediaFeatures,
				autoplayAttr = domNode.getAttribute('autoplay'),
				autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
				featureIndex,
				feature;

			// make sure it can't create itself again if a plugin reloads
			if (t.created) {
				return;
			} else {
				t.created = true;
			}

			t.media = media;
			t.domNode = domNode;

			if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {

				// two built in features
				t.buildposter(t, t.controls, t.layers, t.media);
				t.buildkeyboard(t, t.controls, t.layers, t.media);
				t.buildoverlays(t, t.controls, t.layers, t.media);

				// grab for use by features
				t.findTracks();

				// add user-defined features/controls
				for (featureIndex in t.options.features) {
					feature = t.options.features[featureIndex];
					if (t['build' + feature]) {
						try {
							t['build' + feature](t, t.controls, t.layers, t.media);
						} catch (e) {
							// TODO: report control error
							//throw e;
							
							
						}
					}
				}

				t.container.trigger('controlsready');

				// reset all layers and controls
				t.setPlayerSize(t.width, t.height);
				t.setControlsSize();


				// controls fade
				if (t.isVideo) {

					if (mejs.MediaFeatures.hasTouch && !t.options.alwaysShowControls) {

						// for touch devices (iOS, Android)
						// show/hide without animation on touch

						t.$media.bind('touchstart', function() {

							// toggle controls
							if (t.controlsAreVisible) {
								t.hideControls(false);
							} else {
								if (t.controlsEnabled) {
									t.showControls(false);
								}
							}
						});

					} else {

						// create callback here since it needs access to current
						// MediaElement object
						t.clickToPlayPauseCallback = function() {
							//

							if (t.options.clickToPlayPause) {
								if (t.media.paused) {
									t.play();
								} else {
									t.pause();
								}

								var button = t.$media.closest('.mejs-container').find('.mejs-overlay-button'),
									pressed = button.attr('aria-pressed');
								button.attr('aria-pressed', !pressed);
							}
						};

						// click to play/pause
						t.media.addEventListener('click', t.clickToPlayPauseCallback, false);

						// show/hide controls
						t.container
							.bind('mouseenter', function () {
								if (t.controlsEnabled) {
									if (!t.options.alwaysShowControls ) {
										t.killControlsTimer('enter');
										t.showControls();
										t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
									}
								}
							})
							.bind('mousemove', function() {
								if (t.controlsEnabled) {
									if (!t.controlsAreVisible) {
										t.showControls();
									}
									if (!t.options.alwaysShowControls) {
										t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
									}
								}
							})
							.bind('mouseleave', function () {
								if (t.controlsEnabled) {
									if (!t.media.paused && !t.options.alwaysShowControls) {
										t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
									}
								}
							});
					}

					if(t.options.hideVideoControlsOnLoad) {
						t.hideControls(false);
					}

					// check for autoplay
					if (autoplay && !t.options.alwaysShowControls) {
						t.hideControls();
					}

					// resizer
					if (t.options.enableAutosize) {
						t.media.addEventListener('loadedmetadata', function(e) {
							// if the <video height> was not set and the options.videoHeight was not set
							// then resize to the real dimensions
							if (t.options.videoHeight <= 0 && t.domNode.getAttribute('height') === null && !isNaN(e.target.videoHeight)) {
								t.setPlayerSize(e.target.videoWidth, e.target.videoHeight);
								t.setControlsSize();
								t.media.setVideoSize(e.target.videoWidth, e.target.videoHeight);
							}
						}, false);
					}
				}

				// EVENTS

				// FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them)
				t.media.addEventListener('play', function() {
					var playerIndex;

					// go through all other players
					for (playerIndex in mejs.players) {
						var p = mejs.players[playerIndex];
						if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
							p.pause();
						}
						p.hasFocus = false;
					}

					t.hasFocus = true;
				},false);


				// ended for all
				t.media.addEventListener('ended', function (e) {
					if(t.options.autoRewind) {
						try{
							t.media.setCurrentTime(0);
							// Fixing an Android stock browser bug, where "seeked" isn't fired correctly after ending the video and jumping to the beginning
							window.setTimeout(function(){
								$(t.container).find('.mejs-overlay-loading').parent().hide();
							}, 20);
						} catch (exp) {

						}
					}
					t.media.pause();

					if (t.setProgressRail) {
						t.setProgressRail();
					}
					if (t.setCurrentRail) {
						t.setCurrentRail();
					}

					if (t.options.loop) {
						t.play();
					} else if (!t.options.alwaysShowControls && t.controlsEnabled) {
						t.showControls();
					}
				}, false);

				// resize on the first play
				t.media.addEventListener('loadedmetadata', function() {

					mejs.Utility.calculateTimeFormat(t.duration, t.options, t.options.framesPerSecond || 25);

					if (t.updateDuration) {
						t.updateDuration();
					}
					if (t.updateCurrent) {
						t.updateCurrent();
					}

					if (!t.isFullScreen) {
						t.setPlayerSize(t.width, t.height);
						t.setControlsSize();
					}
				}, false);

				// Only change the time format when necessary
				var duration = null;
				t.media.addEventListener('timeupdate',function() {
					if (duration !== this.duration) {
						duration = this.duration;
						mejs.Utility.calculateTimeFormat(duration, t.options, t.options.framesPerSecond || 25);
						
						// make sure to fill in and resize the controls (e.g., 00:00 => 01:13:15
						if (t.updateDuration) {
							t.updateDuration();
						}
						if (t.updateCurrent) {
							t.updateCurrent();
						}
						t.setControlsSize();
						
					}
				}, false);

				t.container.focusout(function (e) {
					if( e.relatedTarget ) { //FF is working on supporting focusout https://bugzilla.mozilla.org/show_bug.cgi?id=687787
						var $target = $(e.relatedTarget);
						if (t.keyboardAction && $target.parents('.mejs-container').length === 0) {
							t.keyboardAction = false;
							if (t.isVideo && !t.options.alwaysShowControls) {
								t.hideControls(true);
							}

						}
					}
				});

				// webkit has trouble doing this without a delay
				setTimeout(function () {
					t.setPlayerSize(t.width, t.height);
					t.setControlsSize();
				}, 50);

				// adjust controls whenever window sizes (used to be in fullscreen only)
				t.globalBind('resize', function() {

					// don't resize for fullscreen mode
					if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) {
						t.setPlayerSize(t.width, t.height);
					}

					// always adjust controls
					t.setControlsSize();
				});

				// This is a work-around for a bug in the YouTube iFrame player, which means
				//	we can't use the play() API for the initial playback on iOS or Android;
				//	user has to start playback directly by tapping on the iFrame.
				if (t.media.pluginType == 'youtube' && ( mf.isiOS || mf.isAndroid ) ) {
					t.container.find('.mejs-overlay-play').hide();
					t.container.find('.mejs-poster').hide();
				}
			}

			// force autoplay for HTML5
			if (autoplay && media.pluginType == 'native') {
				t.play();
			}


			if (t.options.success) {

				if (typeof t.options.success == 'string') {
					window[t.options.success](t.media, t.domNode, t);
				} else {
					t.options.success(t.media, t.domNode, t);
				}
			}
		},

		handleError: function(e) {
			var t = this;

			if (t.controls) {
				t.controls.hide();
			}

			// Tell user that the file cannot be played
			if (t.options.error) {
				t.options.error(e);
			}
		},

		setPlayerSize: function(width,height) {
			var t = this;

			if( !t.options.setDimensions ) {
				return false;
			}

			if (typeof width != 'undefined') {
				t.width = width;
			}

			if (typeof height != 'undefined') {
				t.height = height;
			}
 
			// check stretching modes
			switch (t.options.stretching) {
				case 'fill':
					// The 'fill' effect only makes sense on video; for audio we will set the dimensions
					if (t.isVideo) {
						this.setFillMode();
					} else {
						this.setDimensions(t.width, t.height);
					}
					break;
				case 'responsive':
					this.setResponsiveMode();
					break;
				case 'none':
					this.setDimensions(t.width, t.height);
					break;
				// This is the 'auto' mode
				default:
					if (this.hasFluidMode() === true) {
						this.setResponsiveMode();
					} else {
						this.setDimensions(t.width, t.height);
					}
					break;
			}
		},
 
		hasFluidMode: function() {
			var t = this;
	 
			// detect 100% mode - use currentStyle for IE since css() doesn't return percentages
			return (t.height.toString().indexOf('%') > 0 || (t.$node.css('max-width') !== 'none' && t.$node.css('max-width') !== 't.width') || (t.$node[0].currentStyle && t.$node[0].currentStyle.maxWidth === '100%'));
		},
 
		setResponsiveMode: function() {
			var t = this;
		
			// do we have the native dimensions yet?
			var nativeWidth = (function() {
				if (t.isVideo) {
					if (t.media.videoWidth && t.media.videoWidth > 0) {
						return t.media.videoWidth;
					} else if (t.media.getAttribute('width') !== null) {
						return t.media.getAttribute('width');
					} else {
						return t.options.defaultVideoWidth;
					}
				} else {
					return t.options.defaultAudioWidth;
				}
			})();
		
			var nativeHeight = (function() {
				if (t.isVideo) {
					if (t.media.videoHeight && t.media.videoHeight > 0) {
						return t.media.videoHeight;
					} else if (t.media.getAttribute('height') !== null) {
						return t.media.getAttribute('height');
					} else {
						return t.options.defaultVideoHeight;
					}
				} else {
					return t.options.defaultAudioHeight;
				}
			})();
		
			var parentWidth = t.container.parent().closest(':visible').width(),
			parentHeight = t.container.parent().closest(':visible').height(),
			newHeight = t.isVideo || !t.options.autosizeProgress ? parseInt(parentWidth * nativeHeight/nativeWidth, 10) : nativeHeight;
			
			// When we use percent, the newHeight can't be calculated so we get the container height
			if (isNaN(newHeight) || ( parentHeight !== 0 && newHeight > parentHeight && parentHeight > nativeHeight)) {
				newHeight = parentHeight;
			}
		
			if (t.container.parent().length > 0 && t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) {
				parentWidth = $(window).width();
				newHeight = $(window).height();
			}
		
			if ( newHeight && parentWidth ) {
			
				// set outer container size
				t.container
					.width(parentWidth)
					.height(newHeight);
				
				// set native <video> or <audio> and shims
				t.$media.add(t.container.find('.mejs-shim'))
					.width('100%')
					.height('100%');
				
				// if shim is ready, send the size to the embeded plugin
				if (t.isVideo) {
					if (t.media.setVideoSize) {
						t.media.setVideoSize(parentWidth, newHeight);
					}
				}
		
				// set the layers
				t.layers.children('.mejs-layer')
					.width('100%')
					.height('100%');
			}
		},
 
		setFillMode: function() {
			var t = this,
				parent = t.outerContainer;
 
			if (!parent.width()) {
				parent.height(t.$media.width());
			}
 
			if (!parent.height()) {
				parent.height(t.$media.height());
			}
 
			var parentWidth = parent.width(),
				parentHeight = parent.height();
			
			t.setDimensions('100%', '100%');
			
			// This prevents an issue when displaying poster
			t.container.find('.mejs-poster img').css('display', 'block');
			
			targetElement = t.container.find('object, embed, iframe, video');
			
			// calculate new width and height
			var initHeight = t.height,
				initWidth = t.width,
				// scale to the target width
				scaleX1 = parentWidth,
				scaleY1 = (initHeight * parentWidth) / initWidth,
				// scale to the target height
				scaleX2 = (initWidth * parentHeight) / initHeight,
				scaleY2 = parentHeight,
				// now figure out which one we should use
				bScaleOnWidth = !(scaleX2 > parentWidth),
				finalWidth = bScaleOnWidth ? Math.floor(scaleX1) : Math.floor(scaleX2),
				finalHeight = bScaleOnWidth ? Math.floor(scaleY1) : Math.floor(scaleY2);
			
			if (bScaleOnWidth) {
				targetElement.height(finalHeight).width(parentWidth);
				if (t.media.setVideoSize) {
					t.media.setVideoSize(parentWidth, finalHeight);
				}
			} else {
				targetElement.height(parentHeight).width(finalWidth);
				if (t.media.setVideoSize) {
					t.media.setVideoSize(finalWidth, parentHeight);
				}
			}
			
			targetElement.css({
				'margin-left': Math.floor((parentWidth - finalWidth) / 2),
				'margin-top': 0
			});
		},
	 
		setDimensions: function(width, height) {
			var t = this;
			
			t.container
				.width(width)
				.height(height);
			
			t.layers.children('.mejs-layer')
				.width(width)
				.height(height);
		},

		setControlsSize: function() {
			var t = this,
				usedWidth = 0,
				railWidth = 0,
				rail = t.controls.find('.mejs-time-rail'),
				total = t.controls.find('.mejs-time-total'),
				others = rail.siblings(),
				lastControl = others.last(),
				lastControlPosition = null;

			// skip calculation if hidden
			if (!t.container.is(':visible') || !rail.length || !rail.is(':visible')) {
				return;
			}

			// allow the size to come from custom CSS
			if (t.options && !t.options.autosizeProgress) {
				// Also, frontends devs can be more flexible
				// due the opportunity of absolute positioning.
				railWidth = parseInt(rail.css('width'), 10);
			}

			// attempt to autosize
			if (railWidth === 0 || !railWidth) {

				// find the size of all the other controls besides the rail
				others.each(function() {
					var $this = $(this);
					if ($this.css('position') != 'absolute' && $this.is(':visible')) {
						usedWidth += $(this).outerWidth(true);
					}
				});

				// fit the rail into the remaining space
				railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width());
			}

			// resize the rail,
			// but then check if the last control (say, the fullscreen button) got pushed down
			// this often happens when zoomed
			do {
				// outer area
				rail.width(railWidth);
				// dark space
				total.width(railWidth - (total.outerWidth(true) - total.width()));

				if (lastControl.css('position') != 'absolute') {
					lastControlPosition = lastControl.length ? lastControl.position() : null;
					railWidth--;
				}
			} while (lastControlPosition !== null && lastControlPosition.top.toFixed(2) > 0 && railWidth > 0);

			t.container.trigger('controlsresize');
		},


		buildposter: function(player, controls, layers, media) {
			var t = this,
				poster =
				$('<div class="mejs-poster mejs-layer">' +
				'</div>')
					.appendTo(layers),
				posterUrl = player.$media.attr('poster');

			// prioriy goes to option (this is useful if you need to support iOS 3.x (iOS completely fails with poster)
			if (player.options.poster !== '') {
				posterUrl = player.options.poster;
			}

			// second, try the real poster
			if ( posterUrl ) {
				t.setPoster(posterUrl);
			} else {
				poster.hide();
			}

			media.addEventListener('play',function() {
				poster.hide();
			}, false);

			if(player.options.showPosterWhenEnded && player.options.autoRewind){
				media.addEventListener('ended',function() {
					poster.show();
				}, false);
			}
		},

		setPoster: function(url) {
			var t = this,
				posterDiv = t.container.find('.mejs-poster'),
				posterImg = posterDiv.find('img');

			if (posterImg.length === 0) {
				posterImg = $('<img width="100%" height="100%" alt="" />').appendTo(posterDiv);
			}

			posterImg.attr('src', url);
			posterDiv.css({'background-image' : 'url(' + url + ')'});
		},

		buildoverlays: function(player, controls, layers, media) {
			var t = this;
			if (!player.isVideo)
				return;

			var
			loading =
				$('<div class="mejs-overlay mejs-layer">'+
					'<div class="mejs-overlay-loading"><span></span></div>'+
				'</div>')
				.hide() // start out hidden
				.appendTo(layers),
			error =
				$('<div class="mejs-overlay mejs-layer">'+
					'<div class="mejs-overlay-error"></div>'+
				'</div>')
				.hide() // start out hidden
				.appendTo(layers),
			// this needs to come last so it's on top
			bigPlay =
				$('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+
					'<div class="mejs-overlay-button" role="button" aria-label="' + mejs.i18n.t('Play') + '" aria-pressed="false"></div>'+
				'</div>')
				.appendTo(layers)
				.bind('click', function() {	 // Removed 'touchstart' due issues on Samsung Android devices where a tap on bigPlay started and immediately stopped the video
					if (t.options.clickToPlayPause) {
						if (media.paused) {
							media.play();
						}

						var button = $(this).find('.mejs-overlay-button'),
							pressed = button.attr('aria-pressed');
						button.attr('aria-pressed', !!pressed);
					}
				});

			/*
			if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) {
				bigPlay.remove();
				loading.remove();
			}
			*/


			// show/hide big play button
			media.addEventListener('play',function() {
				bigPlay.hide();
				loading.hide();
				controls.find('.mejs-time-buffering').hide();
				error.hide();
			}, false);

			media.addEventListener('playing', function() {
				bigPlay.hide();
				loading.hide();
				controls.find('.mejs-time-buffering').hide();
				error.hide();
			}, false);

			media.addEventListener('seeking', function() {
				loading.show();
				controls.find('.mejs-time-buffering').show();
			}, false);

			media.addEventListener('seeked', function() {
				loading.hide();
				controls.find('.mejs-time-buffering').hide();
			}, false);

			media.addEventListener('pause',function() {
				if (!mejs.MediaFeatures.isiPhone) {
					bigPlay.show();
				}
			}, false);

			media.addEventListener('waiting', function() {
				loading.show();
				controls.find('.mejs-time-buffering').show();
			}, false);


			// show/hide loading
			media.addEventListener('loadeddata',function() {
				// for some reason Chrome is firing this event
				//if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none')
				//	return;

				loading.show();
				controls.find('.mejs-time-buffering').show();
				// Firing the 'canplay' event after a timeout which isn't getting fired on some Android 4.1 devices (https://github.com/johndyer/mediaelement/issues/1305)
				if (mejs.MediaFeatures.isAndroid) {
					media.canplayTimeout = window.setTimeout(
						function() {
							if (document.createEvent) {
								var evt = document.createEvent('HTMLEvents');
								evt.initEvent('canplay', true, true);
								return media.dispatchEvent(evt);
							}
						}, 300
					);
				}
			}, false);
			media.addEventListener('canplay',function() {
				loading.hide();
				controls.find('.mejs-time-buffering').hide();
				clearTimeout(media.canplayTimeout); // Clear timeout inside 'loadeddata' to prevent 'canplay' to fire twice
			}, false);

			// error handling
			media.addEventListener('error',function(e) {
				t.handleError(e);
				loading.hide();
				bigPlay.hide();
				error.show();
				error.find('.mejs-overlay-error').html("Error loading this resource");
			}, false);

			media.addEventListener('keydown', function(e) {
				t.onkeydown(player, media, e);
			}, false);
		},

		buildkeyboard: function(player, controls, layers, media) {

				var t = this;

				t.container.keydown(function () {
					t.keyboardAction = true;
				});

				// listen for key presses
				t.globalBind('keydown', function(event) {
					player.hasFocus = $(event.target).closest('.mejs-container').length !== 0
						&& $(event.target).closest('.mejs-container').attr('id') === player.$media.closest('.mejs-container').attr('id');
					return t.onkeydown(player, media, event);
				});


				// check if someone clicked outside a player region, then kill its focus
				t.globalBind('click', function(event) {
					player.hasFocus = $(event.target).closest('.mejs-container').length !== 0;
				});

		},
		onkeydown: function(player, media, e) {
			if (player.hasFocus && player.options.enableKeyboard) {
				// find a matching key
				for (var i = 0, il = player.options.keyActions.length; i < il; i++) {
					var keyAction = player.options.keyActions[i];

					for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
						if (e.keyCode == keyAction.keys[j]) {
							if (typeof(e.preventDefault) == "function") e.preventDefault();
							keyAction.action(player, media, e.keyCode, e);
							return false;
						}
					}
				}
			}

			return true;
		},

		findTracks: function() {
			var t = this,
				tracktags = t.$media.find('track');

			// store for use by plugins
			t.tracks = [];
			tracktags.each(function(index, track) {

				track = $(track);

				t.tracks.push({
					srclang: (track.attr('srclang')) ? track.attr('srclang').toLowerCase() : '',
					src: track.attr('src'),
					kind: track.attr('kind'),
					label: track.attr('label') || '',
					entries: [],
					isLoaded: false
				});
			});
		},
		changeSkin: function(className) {
			this.container[0].className = 'mejs-container ' + className;
			this.setPlayerSize(this.width, this.height);
			this.setControlsSize();
		},
		play: function() {
			this.load();
			this.media.play();
		},
		pause: function() {
			try {
				this.media.pause();
			} catch (e) {}
		},
		load: function() {
			if (!this.isLoaded) {
				this.media.load();
			}

			this.isLoaded = true;
		},
		setMuted: function(muted) {
			this.media.setMuted(muted);
		},
		setCurrentTime: function(time) {
			this.media.setCurrentTime(time);
		},
		getCurrentTime: function() {
			return this.media.currentTime;
		},
		setVolume: function(volume) {
			this.media.setVolume(volume);
		},
		getVolume: function() {
			return this.media.volume;
		},
		setSrc: function(src) {
			var
				t = this;

			// If using YouTube, its API is different to load a specific source
			if (t.media.pluginType === 'youtube') {
				var videoId;

				if (typeof src !== 'string') {
					var i, media;

					for (i=0; i<src.length; i++) {
						media = src[i];
						if (this.canPlayType(media.type)) {
							src = media.src;
							break;
						}
					}
				}

				// youtu.be url from share button
				if (src.lastIndexOf('youtu.be') !== -1) {
					videoId = src.substr(src.lastIndexOf('/') + 1);

					if (videoId.indexOf('?') !== -1) {
						videoId = videoId.substr(0, videoId.indexOf('?'));
					}

				} else {
					// https://www.youtube.com/watch?v=
					var videoIdMatch = src.match(/[?&]v=([^&#]+)|&|#|$/);

					if (videoIdMatch) {
						videoId = videoIdMatch[1];
					}
				}

				if (t.media.getAttribute('autoplay') !== null) {
					t.media.pluginApi.loadVideoById(videoId);
				} else {
					t.media.pluginApi.cueVideoById(videoId);
				}

			}
			else {
				t.media.setSrc(src);
			}
		},
		remove: function() {
			var t = this, featureIndex, feature;

			t.container.prev('.mejs-offscreen').remove();

			// invoke features cleanup
			for (featureIndex in t.options.features) {
				feature = t.options.features[featureIndex];
				if (t['clean' + feature]) {
					try {
						t['clean' + feature](t);
					} catch (e) {
						// TODO: report control error
						//throw e;
						//
						//
					}
				}
			}

			// grab video and put it back in place
			if (!t.isDynamic) {
				t.$media.prop('controls', true);
				// detach events from the video
				// TODO: detach event listeners better than this;
				//		 also detach ONLY the events attached by this plugin!
				t.$node.clone().insertBefore(t.container).show();
				t.$node.remove();
			} else {
				t.$node.insertBefore(t.container);
			}

			if (t.media.pluginType !== 'native') {
				t.media.remove();
			}

			// Remove the player from the mejs.players object so that pauseOtherPlayers doesn't blow up when trying to pause a non existance flash api.
			delete mejs.players[t.id];

			if (typeof t.container == 'object') {
				t.container.remove();
			}
			t.globalUnbind();
			delete t.node.player;
		},
		rebuildtracks: function(){
			var t = this;
			t.findTracks();
			t.buildtracks(t, t.controls, t.layers, t.media);
		},
		resetSize: function(){
			var t = this;
			// webkit has trouble doing this without a delay
			setTimeout(function () {
				//
				t.setPlayerSize(t.width, t.height);
				t.setControlsSize();
			}, 50);
		}
	};

	(function(){
		var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;

		function splitEvents(events, id) {
			// add player ID as an event namespace so it's easier to unbind them all later
			var ret = {d: [], w: []};
			$.each((events || '').split(' '), function(k, v){
				var eventname = v + '.' + id;
				if (eventname.indexOf('.') === 0) {
					ret.d.push(eventname);
					ret.w.push(eventname);
				}
				else {
					ret[rwindow.test(v) ? 'w' : 'd'].push(eventname);
				}
			});
			ret.d = ret.d.join(' ');
			ret.w = ret.w.join(' ');
			return ret;
		}

		mejs.MediaElementPlayer.prototype.globalBind = function(events, data, callback) {
			var t = this;
			var doc = t.node ? t.node.ownerDocument : document;

			events = splitEvents(events, t.id);
			if (events.d) $(doc).bind(events.d, data, callback);
			if (events.w) $(window).bind(events.w, data, callback);
		};

		mejs.MediaElementPlayer.prototype.globalUnbind = function(events, callback) {
			var t = this;
			var doc = t.node ? t.node.ownerDocument : document;

			events = splitEvents(events, t.id);
			if (events.d) $(doc).unbind(events.d, callback);
			if (events.w) $(window).unbind(events.w, callback);
		};
	})();

	// turn into jQuery plugin
	if (typeof $ != 'undefined') {
		$.fn.mediaelementplayer = function (options) {
			if (options === false) {
				this.each(function () {
					var player = $(this).data('mediaelementplayer');
					if (player) {
						player.remove();
					}
					$(this).removeData('mediaelementplayer');
				});
			}
			else {
				this.each(function () {
					$(this).data('mediaelementplayer', new mejs.MediaElementPlayer(this, options));
				});
			}
			return this;
		};


		$(document).ready(function() {
			// auto enable using JSON attribute
			$('.mejs-player').mediaelementplayer();
		});
	}

	// push out to window
	window.MediaElementPlayer = mejs.MediaElementPlayer;

})(mejs.$);

(function($) {

	$.extend(mejs.MepDefaults, {
		playText: mejs.i18n.t('Play'),
		pauseText: mejs.i18n.t('Pause')
	});

	// PLAY/pause BUTTON
	$.extend(MediaElementPlayer.prototype, {
		buildplaypause: function(player, controls, layers, media) {
			var 
				t = this,
				op = t.options,
				play = 
				$('<div class="mejs-button mejs-playpause-button mejs-play" >' +
					'<button type="button" aria-controls="' + t.id + '" title="' + op.playText + '" aria-label="' + op.playText + '"></button>' +
				'</div>')
				.appendTo(controls)
				.click(function(e) {
					e.preventDefault();
				
					if (media.paused) {
						media.play();
					} else {
						media.pause();
					}
					
					return false;
				}),
				play_btn = play.find('button');


			function togglePlayPause(which) {
				if ('play' === which) {
					play.removeClass('mejs-play').addClass('mejs-pause');
					play_btn.attr({
						'title': op.pauseText,
						'aria-label': op.pauseText
					});
				} else {
					play.removeClass('mejs-pause').addClass('mejs-play');
					play_btn.attr({
						'title': op.playText,
						'aria-label': op.playText
					});
				}
			};
			togglePlayPause('pse');


			media.addEventListener('play',function() {
				togglePlayPause('play');
			}, false);
			media.addEventListener('playing',function() {
				togglePlayPause('play');
			}, false);


			media.addEventListener('pause',function() {
				togglePlayPause('pse');
			}, false);
			media.addEventListener('paused',function() {
				togglePlayPause('pse');
			}, false);
		}
	});
	
})(mejs.$);

(function($) {

	$.extend(mejs.MepDefaults, {
		stopText: 'Stop'
	});

	// STOP BUTTON
	$.extend(MediaElementPlayer.prototype, {
		buildstop: function(player, controls, layers, media) {
			var t = this;

			$('<div class="mejs-button mejs-stop-button mejs-stop">' +
					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '" aria-label="' + t.options.stopText + '"></button>' +
				'</div>')
				.appendTo(controls)
				.click(function() {
					if (!media.paused) {
						media.pause();
					}
					if (media.currentTime > 0) {
						media.setCurrentTime(0);
                        media.pause();
						controls.find('.mejs-time-current').width('0px');
						controls.find('.mejs-time-handle').css('left', '0px');
						controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0, player.options));
						controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0, player.options));
						layers.find('.mejs-poster').show();
					}
				});
		}
	});
	
})(mejs.$);

(function($) {

	$.extend(mejs.MepDefaults, {
		// Enable tooltip that shows time in progress bar
		enableProgressTooltip: true,
		progressHelpText: mejs.i18n.t(
		'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.')
	});

	// progress/loaded bar
	$.extend(MediaElementPlayer.prototype, {
		buildprogress: function(player, controls, layers, media) {

			var
				t = this,
				mouseIsDown = false,
				mouseIsOver = false,
				lastKeyPressTime = 0,
				startedPaused = false,
				autoRewindInitial = player.options.autoRewind,
				tooltip = player.options.enableProgressTooltip ? '<span class="mejs-time-float">' +
					'<span class="mejs-time-float-current">00:00</span>' +
					'<span class="mejs-time-float-corner"></span>' +
				'</span>' : "";

			$('<div class="mejs-time-rail">' +
				'<span  class="mejs-time-total mejs-time-slider">' +
				//'<span class="mejs-offscreen">' + this.options.progressHelpText + '</span>' +
					'<span class="mejs-time-buffering"></span>' +
					'<span class="mejs-time-loaded"></span>' +
					'<span class="mejs-time-current"></span>' +
					'<span class="mejs-time-handle"></span>' +
					 tooltip +
				'</span>' +
			'</div>')
				.appendTo(controls);
			controls.find('.mejs-time-buffering').hide();

			t.total = controls.find('.mejs-time-total');
			t.loaded  = controls.find('.mejs-time-loaded');
			t.current  = controls.find('.mejs-time-current');
			t.handle  = controls.find('.mejs-time-handle');
			t.timefloat  = controls.find('.mejs-time-float');
			t.timefloatcurrent  = controls.find('.mejs-time-float-current');
			t.slider = controls.find('.mejs-time-slider');

			var handleMouseMove = function (e) {

					var offset = t.total.offset(),
						width = t.total.width(),
						percentage = 0,
						newTime = 0,
						pos = 0,
						x;

					// mouse or touch position relative to the object
					if (e.originalEvent && e.originalEvent.changedTouches) {
						x = e.originalEvent.changedTouches[0].pageX;
					} else if (e.changedTouches) { // for Zepto
						x = e.changedTouches[0].pageX;
					} else {
						x = e.pageX;
					}

					if (media.duration) {
						if (x < offset.left) {
							x = offset.left;
						} else if (x > width + offset.left) {
							x = width + offset.left;
						}

						pos = x - offset.left;
						percentage = (pos / width);
						newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;

						// seek to where the mouse is
						if (mouseIsDown && newTime !== media.currentTime) {
							media.setCurrentTime(newTime);
						}

						// position floating time box
						if (!mejs.MediaFeatures.hasTouch) {
							t.timefloat.css('left', pos);
							t.timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime, player.options) );
							t.timefloat.show();
						}
					}
				},
				// Accessibility for slider
				updateSlider = function (e) {

					var seconds = media.currentTime,
						timeSliderText = mejs.i18n.t('Time Slider'),
						time = mejs.Utility.secondsToTimeCode(seconds, player.options),
						duration = media.duration;

					t.slider.attr({
						'aria-label': timeSliderText,
						'aria-valuemin': 0,
						'aria-valuemax': duration,
						'aria-valuenow': seconds,
						'aria-valuetext': time,
						'role': 'slider',
						'tabindex': 0
					});

				},
				restartPlayer = function () {
					var now = new Date();
					if (now - lastKeyPressTime >= 1000) {
						media.play();
					}
				};

			t.slider.bind('focus', function (e) {
				player.options.autoRewind = false;
			});

			t.slider.bind('blur', function (e) {
				player.options.autoRewind = autoRewindInitial;
			});

			t.slider.bind('keydown', function (e) {

				if ((new Date() - lastKeyPressTime) >= 1000) {
					startedPaused = media.paused;
				}

				var keyCode = e.keyCode,
					duration = media.duration,
					seekTime = media.currentTime,
					seekForward  = player.options.defaultSeekForwardInterval(media),
					seekBackward = player.options.defaultSeekBackwardInterval(media);

				switch (keyCode) {
					case 37: // left
					case 40: // Down
						seekTime -= seekBackward;
						break;
					case 39: // Right
					case 38: // Up
						seekTime += seekForward;
						break;
					case 36: // Home
						seekTime = 0;
						break;
					case 35: // end
						seekTime = duration;
						break;
					case 32: // space
					case 13: // enter
						media.paused ? media.play() : media.pause();
						return;
					default:
						return;
				}

				seekTime = seekTime < 0 ? 0 : (seekTime >= duration ? duration : Math.floor(seekTime));
				lastKeyPressTime = new Date();
				if (!startedPaused) {
					media.pause();
				}

				if (seekTime < media.duration && !startedPaused) {
					setTimeout(restartPlayer, 1100);
				}

				media.setCurrentTime(seekTime);

				e.preventDefault();
				e.stopPropagation();
				return false;
			});


			// handle clicks
			//controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
			t.total
				.bind('mousedown touchstart', function (e) {
					// only handle left clicks or touch
					if (e.which === 1 || e.which === 0) {
						mouseIsDown = true;
						handleMouseMove(e);
						t.globalBind('mousemove.dur touchmove.dur', function(e) {
							handleMouseMove(e);
						});
						t.globalBind('mouseup.dur touchend.dur', function (e) {
							mouseIsDown = false;
							if (typeof t.timefloat !== 'undefined') {
								t.timefloat.hide();
							}
							t.globalUnbind('.dur');
						});
					}
				})
				.bind('mouseenter', function(e) {
					mouseIsOver = true;
					t.globalBind('mousemove.dur', function(e) {
						handleMouseMove(e);
					});
					if (typeof t.timefloat !== 'undefined' && !mejs.MediaFeatures.hasTouch) {
						t.timefloat.show();
					}
				})
				.bind('mouseleave',function(e) {
					mouseIsOver = false;
					if (!mouseIsDown) {
						t.globalUnbind('.dur');
						if (typeof t.timefloat !== 'undefined') {
							t.timefloat.hide();
						}
					}
				});

			// loading
			media.addEventListener('progress', function (e) {
				player.setProgressRail(e);
				player.setCurrentRail(e);
			}, false);

			// current time
			media.addEventListener('timeupdate', function(e) {
				player.setProgressRail(e);
				player.setCurrentRail(e);
				updateSlider(e);
			}, false);

			t.container.on('controlsresize', function(e) {
				player.setProgressRail(e);
				player.setCurrentRail(e);
			});
		},
		setProgressRail: function(e) {

			var
				t = this,
				target = (e !== undefined) ? e.target : t.media,
				percent = null;

			// newest HTML5 spec has buffered array (FF4, Webkit)
			if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) {
				// account for a real array with multiple values - always read the end of the last buffer
				percent = target.buffered.end(target.buffered.length - 1) / target.duration;
			} 
			// Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end()
			// to be anything other than 0. If the byte count is available we use this instead.
			// Browsers that support the else if do not seem to have the bufferedBytes value and
			// should skip to there. Tested in Safari 5, Webkit head, FF3.6, Chrome 6, IE 7/8.
			else if (target && target.bytesTotal !== undefined && target.bytesTotal > 0 && target.bufferedBytes !== undefined) {
				percent = target.bufferedBytes / target.bytesTotal;
			}
			// Firefox 3 with an Ogg file seems to go this way
			else if (e && e.lengthComputable && e.total !== 0) {
				percent = e.loaded / e.total;
			}

			// finally update the progress bar
			if (percent !== null) {
				percent = Math.min(1, Math.max(0, percent));
				// update loaded bar
				if (t.loaded && t.total) {
					t.loaded.width(t.total.width() * percent);
				}
			}
		},
		setCurrentRail: function() {

			var t = this;
		
			if (t.media.currentTime !== undefined && t.media.duration) {

				// update bar and handle
				if (t.total && t.handle) {
					var 
						newWidth = Math.round(t.total.width() * t.media.currentTime / t.media.duration),
						handlePos = newWidth - Math.round(t.handle.outerWidth(true) / 2);

					t.current.width(newWidth);
					t.handle.css('left', handlePos);
				}
			}

		}
	});
})(mejs.$);

(function($) {
	
	// options
	$.extend(mejs.MepDefaults, {
		duration: -1,
		timeAndDurationSeparator: '<span> | </span>'
	});


	// current and duration 00:00 / 00:00
	$.extend(MediaElementPlayer.prototype, {
		buildcurrent: function(player, controls, layers, media) {
			var t = this;
			
			$('<div class="mejs-time" role="timer" aria-live="off">' +
					'<span class="mejs-currenttime">' + 
						mejs.Utility.secondsToTimeCode(0, player.options) +
                    '</span>'+
				'</div>')
			.appendTo(controls);
			
			t.currenttime = t.controls.find('.mejs-currenttime');

			media.addEventListener('timeupdate',function() {
				if (t.controlsAreVisible) {
					player.updateCurrent();
				}

			}, false);
		},


		buildduration: function(player, controls, layers, media) {
			var t = this;
			
			if (controls.children().last().find('.mejs-currenttime').length > 0) {
				$(t.options.timeAndDurationSeparator +
					'<span class="mejs-duration">' + 
						mejs.Utility.secondsToTimeCode(t.options.duration, t.options) +
					'</span>')
					.appendTo(controls.find('.mejs-time'));
			} else {

				// add class to current time
				controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
				
				$('<div class="mejs-time mejs-duration-container">'+
					'<span class="mejs-duration">' + 
						mejs.Utility.secondsToTimeCode(t.options.duration, t.options) +
					'</span>' +
				'</div>')
				.appendTo(controls);
			}
			
			t.durationD = t.controls.find('.mejs-duration');

			media.addEventListener('timeupdate',function() {
				if (t.controlsAreVisible) {
					player.updateDuration();
				}
			}, false);
		},
		
		updateCurrent:  function() {
			var t = this;
			
			var currentTime = t.media.currentTime;
			
			if (isNaN(currentTime)) {
				currentTime = 0;
			}

			if (t.currenttime) {
				t.currenttime.html(mejs.Utility.secondsToTimeCode(currentTime, t.options));
			}
		},
		
		updateDuration: function() {
			var t = this;
			
			var duration = t.media.duration;
			if (t.options.duration > 0) {
				duration = t.options.duration;
			}
			
			if (isNaN(duration)) {
				duration = 0;
			}

			//Toggle the long video class if the video is longer than an hour.
			t.container.toggleClass("mejs-long-video", duration > 3600);
			
			if (t.durationD && duration > 0) {
				t.durationD.html(mejs.Utility.secondsToTimeCode(duration, t.options));
			}		
		}
	});

})(mejs.$);

(function($) {

	$.extend(mejs.MepDefaults, {
		muteText: mejs.i18n.t('Mute Toggle'),
        allyVolumeControlText: mejs.i18n.t('Use Up/Down Arrow keys to increase or decrease volume.'),
		hideVolumeOnTouchDevices: true,
		
		audioVolume: 'horizontal',
		videoVolume: 'vertical'
	});

	$.extend(MediaElementPlayer.prototype, {
		buildvolume: function(player, controls, layers, media) {
				
			// Android and iOS don't support volume controls
			if ((mejs.MediaFeatures.isAndroid || mejs.MediaFeatures.isiOS) && this.options.hideVolumeOnTouchDevices)
				return;
			
			var t = this,
				mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
				mute = (mode == 'horizontal') ?
				
				// horizontal version
				$('<div class="mejs-button mejs-volume-button mejs-mute">' +
					'<button type="button" aria-controls="' + t.id + 
						'" title="' + t.options.muteText + 
						'" aria-label="' + t.options.muteText +
					'"></button>'+
				'</div>' +
                  '<a href="javascript:void(0);" class="mejs-horizontal-volume-slider">' + // outer background
					'<span class="mejs-offscreen">' + t.options.allyVolumeControlText + '</span>' +
					'<div class="mejs-horizontal-volume-total"></div>'+ // line background
					'<div class="mejs-horizontal-volume-current"></div>'+ // current volume
					'<div class="mejs-horizontal-volume-handle"></div>'+ // handle
				'</a>'
				)
					.appendTo(controls) :
				
				// vertical version
				$('<div class="mejs-button mejs-volume-button mejs-mute">'+
					'<button type="button" aria-controls="' + t.id + 
						'" title="' + t.options.muteText + 
						'" aria-label="' + t.options.muteText + 
					'"></button>'+
					'<a href="javascript:void(0);" class="mejs-volume-slider">'+ // outer background
						'<span class="mejs-offscreen">' + t.options.allyVolumeControlText + '</span>' +                  
						'<div class="mejs-volume-total"></div>'+ // line background
						'<div class="mejs-volume-current"></div>'+ // current volume
						'<div class="mejs-volume-handle"></div>'+ // handle
					'</a>'+
				'</div>')
					.appendTo(controls),
			volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
			volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
			volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
			volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),

			positionVolumeHandle = function(volume, secondTry) {

				if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
					volumeSlider.show();
					positionVolumeHandle(volume, true);
					volumeSlider.hide();
					return;
				}

				// correct to 0-1
				volume = Math.max(0,volume);
				volume = Math.min(volume,1);

				// ajust mute button style
				if (volume === 0) {
					mute.removeClass('mejs-mute').addClass('mejs-unmute');
					mute.children('button').attr('title', mejs.i18n.t('Unmute')).attr('aria-label', mejs.i18n.t('Unmute'));
				} else {
					mute.removeClass('mejs-unmute').addClass('mejs-mute');
					mute.children('button').attr('title', mejs.i18n.t('Mute')).attr('aria-label', mejs.i18n.t('Mute'));
				}

                // top/left of full size volume slider background
                var totalPosition = volumeTotal.position();
				// position slider 
				if (mode == 'vertical') {
					var
                    // height of the full size volume slider background
						totalHeight = volumeTotal.height(),

                        // the new top position based on the current volume
						// 70% volume on 100px height == top:30px
						newTop = totalHeight - (totalHeight * volume);
	
					// handle
					volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
	
					// show the current visibility
					volumeCurrent.height(totalHeight - newTop );
					volumeCurrent.css('top', totalPosition.top + newTop);
				} else {
                    var
						// height of the full size volume slider background
						totalWidth = volumeTotal.width(),
						
						// the new left position based on the current volume
						newLeft = totalWidth * volume;
	
					// handle
					volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
	
					// rezize the current part of the volume bar
					volumeCurrent.width( Math.round(newLeft) );
				}
			},
			handleVolumeMove = function(e) {
				
				var volume = null,
					totalOffset = volumeTotal.offset();
				
				// calculate the new volume based on the moust position
				if (mode === 'vertical') {
				
					var
						railHeight = volumeTotal.height(),
						newY = e.pageY - totalOffset.top;
						
					volume = (railHeight - newY) / railHeight;
						
					// the controls just hide themselves (usually when mouse moves too far up)
					if (totalOffset.top === 0 || totalOffset.left === 0) {
						return;
                    }
					
				} else {
					var
						railWidth = volumeTotal.width(),
						newX = e.pageX - totalOffset.left;
						
					volume = newX / railWidth;
				}
				
				// ensure the volume isn't outside 0-1
				volume = Math.max(0,volume);
				volume = Math.min(volume,1);
				
				// position the slider and handle
				positionVolumeHandle(volume);
				
				// set the media object (this will trigger the volumechanged event)
				if (volume === 0) {
					media.setMuted(true);
				} else {
					media.setMuted(false);
				}
				media.setVolume(volume);
			},
			mouseIsDown = false,
			mouseIsOver = false;

			// SLIDER
			
			mute
				.hover(function() {
					volumeSlider.show();
					mouseIsOver = true;
				}, function() {
					mouseIsOver = false;
						
					if (!mouseIsDown && mode == 'vertical')	{
						volumeSlider.hide();
					}
				});
            
            var updateVolumeSlider = function (e) {

                var volume = Math.floor(media.volume*100);

				volumeSlider.attr({
					'aria-label': mejs.i18n.t('Volume Slider'),
					'aria-valuemin': 0,
					'aria-valuemax': 100,
					'aria-valuenow': volume,
					'aria-valuetext': volume+'%',
					'role': 'slider',
					'tabindex': 0
				});

			};
			
			volumeSlider
				.bind('mouseover', function() {
					mouseIsOver = true;	
				})
				.bind('mousedown', function (e) {
					handleVolumeMove(e);
					t.globalBind('mousemove.vol', function(e) {
						handleVolumeMove(e);
					});
					t.globalBind('mouseup.vol', function () {
						mouseIsDown = false;
						t.globalUnbind('.vol');

						if (!mouseIsOver && mode == 'vertical') {
							volumeSlider.hide();
						}
					});
					mouseIsDown = true;
						
					return false;
				})
				.bind('keydown', function (e) {
					var keyCode = e.keyCode;
					var volume = media.volume;
					switch (keyCode) {
                        case 38: // Up
                            volume = Math.min(volume + 0.1, 1);
                            break;
                        case 40: // Down
                            volume = Math.max(0, volume - 0.1);
                            break;
                        default:
                            return true;
                    }

					mouseIsDown = false;
					positionVolumeHandle(volume);
					media.setVolume(volume);
					return false;
				});

			// MUTE button
			mute.find('button').click(function() {
				media.setMuted( !media.muted );
			});
            
            //Keyboard input
            mute.find('button').bind('focus', function () {
				volumeSlider.show();
			});

			// listen for volume change events from other sources
			media.addEventListener('volumechange', function(e) {
				if (!mouseIsDown) {
					if (media.muted) {
						positionVolumeHandle(0);
						mute.removeClass('mejs-mute').addClass('mejs-unmute');
					} else {
						positionVolumeHandle(media.volume);
						mute.removeClass('mejs-unmute').addClass('mejs-mute');
					}
				}
				updateVolumeSlider(e);
			}, false);
			
			// mutes the media and sets the volume icon muted if the initial volume is set to 0
			if (player.options.startVolume === 0) {
				media.setMuted(true);
			}
			
			// shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements
			if (media.pluginType === 'native') {
				media.setVolume(player.options.startVolume);
			}
			
			t.container.on('controlsresize', function() {
				if (media.muted) {
					positionVolumeHandle(0);
					mute.removeClass('mejs-mute').addClass('mejs-unmute');
				} else {
					positionVolumeHandle(media.volume);
					mute.removeClass('mejs-unmute').addClass('mejs-mute');
				}
			});
		}
	});
	
})(mejs.$);

(function($) {

	$.extend(mejs.MepDefaults, {
		usePluginFullScreen: true,
		newWindowCallback: function() { return '';},
		fullscreenText: mejs.i18n.t('Fullscreen')
	});

	$.extend(MediaElementPlayer.prototype, {

		isFullScreen: false,

		isNativeFullScreen: false,

		isInIframe: false,
							
		// Possible modes
		// (1) 'native-native' 	HTML5 video  + browser fullscreen (IE10+, etc.)
		// (2) 'plugin-native' 	plugin video + browser fullscreen (fails in some versions of Firefox)
		// (3) 'fullwindow' 	Full window (retains all UI)
		// usePluginFullScreen = true
		// (4) 'plugin-click' 	Flash 1 - click through with pointer events
		// (5) 'plugin-hover' 	Flash 2 - hover popup in flash (IE6-8)		
		fullscreenMode: '',

		buildfullscreen: function(player, controls, layers, media) {

			if (!player.isVideo)
				return;
				
			player.isInIframe = (window.location != window.parent.location);	
		
			// detect on start
			media.addEventListener('loadstart', function() { player.detectFullscreenMode(); });
				
			// build button
			var t = this,
				hideTimeout = null,
				fullscreenBtn =
					$('<div class="mejs-button mejs-fullscreen-button">' +
						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.fullscreenText + '" aria-label="' + t.options.fullscreenText + '"></button>' +
					'</div>')
					.appendTo(controls)
					.on('click', function() {
						
						// toggle fullscreen
						var isFullScreen = (mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || player.isFullScreen;
	
						if (isFullScreen) {
							player.exitFullScreen();
						} else {
							player.enterFullScreen();
						}
					})										
					.on('mouseover', function() {
						
						// very old browsers with a plugin
						if (t.fullscreenMode == 'plugin-hover') {						
							if (hideTimeout !== null) {
								clearTimeout(hideTimeout);
								delete hideTimeout;
							}
	
							var buttonPos = fullscreenBtn.offset(),
								containerPos = player.container.offset();
	
							media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, true);
						}

					})
					.on('mouseout', function() {

						if (t.fullscreenMode == 'plugin-hover') {						
							if (hideTimeout !== null) {
								clearTimeout(hideTimeout);
								delete hideTimeout;
							}
	
							hideTimeout = setTimeout(function() {
								media.hideFullscreenButton();
							}, 1500);
						}

					});

					

			player.fullscreenBtn = fullscreenBtn;

			t.globalBind('keydown',function (e) {
				if (e.keyCode == 27 && ((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen)) {
					player.exitFullScreen();
				}
			});
			
			t.normalHeight = 0;
			t.normalWidth = 0;					
					
			// setup native fullscreen event
			if (mejs.MediaFeatures.hasTrueNativeFullScreen) {

				// chrome doesn't alays fire this in an iframe
				var fullscreenChanged = function(e) {
					if (player.isFullScreen) {
						if (mejs.MediaFeatures.isFullScreen()) {
							player.isNativeFullScreen = true;
							// reset the controls once we are fully in full screen
							player.setControlsSize();
						} else {
							player.isNativeFullScreen = false;
							// when a user presses ESC
							// make sure to put the player back into place
							player.exitFullScreen();
						}
					}
				};

				player.globalBind(mejs.MediaFeatures.fullScreenEventName, fullscreenChanged);
			}

		},
		
		detectFullscreenMode: function() {
			
			var t = this,
				mode = '',
				features = mejs.MediaFeatures;
			
			if (features.hasTrueNativeFullScreen && t.media.pluginType === 'native') {
				mode = 'native-native';
			} else if (features.hasTrueNativeFullScreen && t.media.pluginType !== 'native' && !features.hasFirefoxPluginMovingProblem) {
				mode = 'plugin-native';					
			} else if (t.usePluginFullScreen) { 
				if (mejs.MediaFeatures.supportsPointerEvents) {
					mode = 'plugin-click';
					// this needs some special setup
					t.createPluginClickThrough();				
				} else { 
					mode = 'plugin-hover';
				}
				
			} else {
				mode = 'fullwindow';
			}
			
			
			t.fullscreenMode = mode;		
			return mode;
		},
		
		isPluginClickThroughCreated: false,
		
		createPluginClickThrough: function() {
				
			var t = this;
			
			// don't build twice
			if (t.isPluginClickThroughCreated) {
				return;
			}	

			// allows clicking through the fullscreen button and controls down directly to Flash

			/*
			 When a user puts his mouse over the fullscreen button, we disable the controls so that mouse events can go down to flash (pointer-events)
			 We then put a divs over the video and on either side of the fullscreen button
			 to capture mouse movement and restore the controls once the mouse moves outside of the fullscreen button
			*/

			var fullscreenIsDisabled = false,
				restoreControls = function() {
					if (fullscreenIsDisabled) {
						// hide the hovers
						for (var i in hoverDivs) {
							hoverDivs[i].hide();
						}

						// restore the control bar
						t.fullscreenBtn.css('pointer-events', '');
						t.controls.css('pointer-events', '');

						// prevent clicks from pausing video
						t.media.removeEventListener('click', t.clickToPlayPauseCallback);

						// store for later
						fullscreenIsDisabled = false;
					}
				},
				hoverDivs = {},
				hoverDivNames = ['top', 'left', 'right', 'bottom'],
				i, len,
				positionHoverDivs = function() {
					var fullScreenBtnOffsetLeft = fullscreenBtn.offset().left - t.container.offset().left,
						fullScreenBtnOffsetTop = fullscreenBtn.offset().top - t.container.offset().top,
						fullScreenBtnWidth = fullscreenBtn.outerWidth(true),
						fullScreenBtnHeight = fullscreenBtn.outerHeight(true),
						containerWidth = t.container.width(),
						containerHeight = t.container.height();

					for (i in hoverDivs) {
						hoverDivs[i].css({position: 'absolute', top: 0, left: 0}); //, backgroundColor: '#f00'});
					}

					// over video, but not controls
					hoverDivs['top']
						.width( containerWidth )
						.height( fullScreenBtnOffsetTop );

					// over controls, but not the fullscreen button
					hoverDivs['left']
						.width( fullScreenBtnOffsetLeft )
						.height( fullScreenBtnHeight )
						.css({top: fullScreenBtnOffsetTop});

					// after the fullscreen button
					hoverDivs['right']
						.width( containerWidth - fullScreenBtnOffsetLeft - fullScreenBtnWidth )
						.height( fullScreenBtnHeight )
						.css({top: fullScreenBtnOffsetTop,
							 left: fullScreenBtnOffsetLeft + fullScreenBtnWidth});

					// under the fullscreen button
					hoverDivs['bottom']
						.width( containerWidth )
						.height( containerHeight - fullScreenBtnHeight - fullScreenBtnOffsetTop )
						.css({top: fullScreenBtnOffsetTop + fullScreenBtnHeight});
				};

			t.globalBind('resize', function() {
				positionHoverDivs();
			});

			for (i = 0, len = hoverDivNames.length; i < len; i++) {
				hoverDivs[hoverDivNames[i]] = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls).hide();
			}

			// on hover, kill the fullscreen button's HTML handling, allowing clicks down to Flash
			fullscreenBtn.on('mouseover',function() {

				if (!t.isFullScreen) {

					var buttonPos = fullscreenBtn.offset(),
						containerPos = player.container.offset();

					// move the button in Flash into place
					media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, false);

					// allows click through
					t.fullscreenBtn.css('pointer-events', 'none');
					t.controls.css('pointer-events', 'none');

					// restore click-to-play
					t.media.addEventListener('click', t.clickToPlayPauseCallback);

					// show the divs that will restore things
					for (i in hoverDivs) {
						hoverDivs[i].show();
					}

					positionHoverDivs();

					fullscreenIsDisabled = true;
				}

			});

			// restore controls anytime the user enters or leaves fullscreen
			media.addEventListener('fullscreenchange', function(e) {
				t.isFullScreen = !t.isFullScreen;
				// don't allow plugin click to pause video - messes with
				// plugin's controls
				if (t.isFullScreen) {
					t.media.removeEventListener('click', t.clickToPlayPauseCallback);
				} else {
					t.media.addEventListener('click', t.clickToPlayPauseCallback);
				}
				restoreControls();
			});


			// the mouseout event doesn't work on the fullscren button, because we already killed the pointer-events
			// so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button

			t.globalBind('mousemove', function(e) {

				// if the mouse is anywhere but the fullsceen button, then restore it all
				if (fullscreenIsDisabled) {

					var fullscreenBtnPos = fullscreenBtn.offset();


					if (e.pageY < fullscreenBtnPos.top || e.pageY > fullscreenBtnPos.top + fullscreenBtn.outerHeight(true) ||
						e.pageX < fullscreenBtnPos.left || e.pageX > fullscreenBtnPos.left + fullscreenBtn.outerWidth(true)
						) {

						fullscreenBtn.css('pointer-events', '');
						t.controls.css('pointer-events', '');

						fullscreenIsDisabled = false;
					}
				}
			});


			t.isPluginClickThroughCreated = true;
		},		

		cleanfullscreen: function(player) {
			player.exitFullScreen();
		},

        containerSizeTimeout: null,

		enterFullScreen: function() {

			var t = this;

			if (mejs.MediaFeatures.isiOS && mejs.MediaFeatures.hasiOSFullScreen && typeof t.media.webkitEnterFullscreen === 'function') {
			    t.media.webkitEnterFullscreen();
				return;
			}

			// set it to not show scroll bars so 100% will work
            $(document.documentElement).addClass('mejs-fullscreen');

			// store sizing
			t.normalHeight = t.container.height();
			t.normalWidth = t.container.width();



			// attempt to do true fullscreen
			if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') {

				mejs.MediaFeatures.requestFullScreen(t.container[0]);
				//return;

				if (t.isInIframe) {
					// sometimes exiting from fullscreen doesn't work
					// notably in Chrome <iframe>. Fixed in version 17
					setTimeout(function checkFullscreen() {

						if (t.isNativeFullScreen) {
							var percentErrorMargin = 0.002, // 0.2%
								windowWidth = $(window).width(),
								screenWidth = screen.width,
								absDiff = Math.abs(screenWidth - windowWidth),
								marginError = screenWidth * percentErrorMargin;

							// check if the video is suddenly not really fullscreen
							if (absDiff > marginError) {
								// manually exit
								t.exitFullScreen();
							} else {
								// test again
								setTimeout(checkFullscreen, 500);
							}
						}
						
					}, 1000);
				}
				
			} else if (t.fullscreeMode == 'fullwindow') {				
				// move into position
				
			}			
			
			// make full size
			t.container
				.addClass('mejs-container-fullscreen')
				.width('100%')
				.height('100%');
				//.css({position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, overflow: 'hidden', width: '100%', height: '100%', 'z-index': 1000});

			// Only needed for safari 5.1 native full screen, can cause display issues elsewhere
			// Actually, it seems to be needed for IE8, too
			//if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
				t.containerSizeTimeout = setTimeout(function() {
					t.container.css({width: '100%', height: '100%'});
					t.setControlsSize();
				}, 500);
			//}

			if (t.media.pluginType === 'native') {
				t.$media
					.width('100%')
					.height('100%');
			} else {
				t.container.find('.mejs-shim')
					.width('100%')
					.height('100%');	
				
				setTimeout(function() {
					var win = $(window),
						winW = win.width(),
						winH = win.height();
							
					t.media.setVideoSize(winW,winH);			
				}, 500);
			}

			t.layers.children('div')
				.width('100%')
				.height('100%');

			if (t.fullscreenBtn) {
				t.fullscreenBtn
					.removeClass('mejs-fullscreen')
					.addClass('mejs-unfullscreen');
			}

			t.setControlsSize();
			t.isFullScreen = true;

			t.container.find('.mejs-captions-text').css('font-size', screen.width / t.width * 1.00 * 100 + '%');
			t.container.find('.mejs-captions-position').css('bottom', '45px');

			t.container.trigger('enteredfullscreen');
		},

		exitFullScreen: function() {

			var t = this;

            // Prevent container from attempting to stretch a second time
            clearTimeout(t.containerSizeTimeout);

			// firefox can't adjust plugins
			/*
			if (t.media.pluginType !== 'native' && mejs.MediaFeatures.isFirefox) {
				t.media.setFullscreen(false);
				//player.isFullScreen = false;
				return;
			}
			*/

			// come out of native fullscreen
			if (mejs.MediaFeatures.hasTrueNativeFullScreen && (mejs.MediaFeatures.isFullScreen() || t.isFullScreen)) {
				mejs.MediaFeatures.cancelFullScreen();
			}

			// restore scroll bars to document
            $(document.documentElement).removeClass('mejs-fullscreen');

			t.container
				.removeClass('mejs-container-fullscreen')
				.width(t.normalWidth)
				.height(t.normalHeight);

			if (t.media.pluginType === 'native') {
				t.$media
					.width(t.normalWidth)
					.height(t.normalHeight);
			} else {
				t.container.find('.mejs-shim')
					.width(t.normalWidth)
					.height(t.normalHeight);

				t.media.setVideoSize(t.normalWidth, t.normalHeight);
			}

			t.layers.children('div')
				.width(t.normalWidth)
				.height(t.normalHeight);

			t.fullscreenBtn
				.removeClass('mejs-unfullscreen')
				.addClass('mejs-fullscreen');

			t.setControlsSize();
			t.isFullScreen = false;

			t.container.find('.mejs-captions-text').css('font-size','');
			t.container.find('.mejs-captions-position').css('bottom', '');

			t.container.trigger('exitedfullscreen');
		}
	});

})(mejs.$);

(function($) {

	// Speed
	$.extend(mejs.MepDefaults, {

		// We also support to pass object like this:
		// [{name: 'Slow', value: '0.75'}, {name: 'Normal', value: '1.00'}, ...]
		speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],

		defaultSpeed: '1.00',
		
		speedChar: 'x'

	});

	$.extend(MediaElementPlayer.prototype, {

		buildspeed: function(player, controls, layers, media) {
			var t = this;

			if (t.media.pluginType == 'native') {
				var 
					speedButton = null,
					speedSelector = null,
					playbackSpeed = null,
					inputId = null;

				var speeds = [];
				var defaultInArray = false;
				for (var i=0, len=t.options.speeds.length; i < len; i++) {
					var s = t.options.speeds[i];
					if (typeof(s) === 'string'){
						speeds.push({
							name: s + t.options.speedChar,
							value: s
						});
						if(s === t.options.defaultSpeed) {
							defaultInArray = true;
						}
					}
					else {
						speeds.push(s);
						if(s.value === t.options.defaultSpeed) {
							defaultInArray = true;
						}
					}
				}

				if (!defaultInArray) {
					speeds.push({
						name: t.options.defaultSpeed + t.options.speedChar,
						value: t.options.defaultSpeed
					});
				}

				speeds.sort(function(a, b) {
					return parseFloat(b.value) - parseFloat(a.value);
				});

				var getSpeedNameFromValue = function(value) {
					for(i=0,len=speeds.length; i <len; i++) {
						if (speeds[i].value === value) {
							return speeds[i].name;
						}
					}
				};

				var html = '<div class="mejs-button mejs-speed-button">' +
							'<button type="button">' + getSpeedNameFromValue(t.options.defaultSpeed) + '</button>' +
							'<div class="mejs-speed-selector">' +
							'<ul>';

				for (i = 0, il = speeds.length; i<il; i++) {
					inputId = t.id + '-speed-' + speeds[i].value;
					html += '<li>' + 
								'<input type="radio" name="speed" ' + 
											'value="' + speeds[i].value + '" ' +
											'id="' + inputId + '" ' +
											(speeds[i].value === t.options.defaultSpeed ? ' checked' : '') +
											' />' +
								'<label for="' + inputId + '" ' +
											(speeds[i].value === t.options.defaultSpeed ? ' class="mejs-speed-selected"' : '') +
											'>' + speeds[i].name + '</label>' +
							'</li>';
				}
				html += '</ul></div></div>';

				speedButton = $(html).appendTo(controls);
				speedSelector = speedButton.find('.mejs-speed-selector');

				playbackSpeed = t.options.defaultSpeed;

				media.addEventListener('loadedmetadata', function(e) {
					if (playbackSpeed) {
						media.playbackRate = parseFloat(playbackSpeed);
					}
				}, true);

				speedSelector
					.on('click', 'input[type="radio"]', function() {
						var newSpeed = $(this).attr('value');
						playbackSpeed = newSpeed;
						media.playbackRate = parseFloat(newSpeed);
						speedButton.find('button').html(getSpeedNameFromValue(newSpeed));
						speedButton.find('.mejs-speed-selected').removeClass('mejs-speed-selected');
						speedButton.find('input[type="radio"]:checked').next().addClass('mejs-speed-selected');
					});
				speedButton
					.one( 'mouseenter focusin', function() {
						speedSelector
							.height(
								speedButton.find('.mejs-speed-selector ul').outerHeight(true) +
								speedButton.find('.mejs-speed-translations').outerHeight(true))
							.css('top', (-1 * speedSelector.height()) + 'px');
					});
			}
		}
	});

})(mejs.$);

(function($) {

	// add extra default options
	$.extend(mejs.MepDefaults, {
		// this will automatically turn on a <track>
		startLanguage: '',

		tracksText: mejs.i18n.t('Captions/Subtitles'),

		// By default, no WAI-ARIA live region - don't make a
		// screen reader speak captions over an audio track.
		tracksAriaLive: false,

		// option to remove the [cc] button when no <track kind="subtitles"> are present
		hideCaptionsButtonWhenEmpty: true,

		// If true and we only have one track, change captions to popup
		toggleCaptionsButtonWhenOnlyOne: false,

		// #id or .class
		slidesSelector: ''
	});

	$.extend(MediaElementPlayer.prototype, {

		hasChapters: false,

		cleartracks: function(player, controls, layers, media){
			if(player) {
				if(player.captions) player.captions.remove();
				if(player.chapters) player.chapters.remove();
				if(player.captionsText) player.captionsText.remove();
				if(player.captionsButton) player.captionsButton.remove();
			}
		},
		buildtracks: function(player, controls, layers, media) {
			if (player.tracks.length === 0)
				return;

			var t = this,
				attr = t.options.tracksAriaLive ?
					'role="log" aria-live="assertive" aria-atomic="false"' : '',
				i,
				kind;

			if (t.domNode.textTracks) { // if browser will do native captions, prefer mejs captions, loop through tracks and hide
				for (i = t.domNode.textTracks.length - 1; i >= 0; i--) {
					t.domNode.textTracks[i].mode = "hidden";
				}
			}
			t.cleartracks(player, controls, layers, media);
			player.chapters =
					$('<div class="mejs-chapters mejs-layer"></div>')
						.prependTo(layers).hide();
			player.captions =
					$('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover" ' +
					attr + '><span class="mejs-captions-text"></span></div></div>')
						.prependTo(layers).hide();
			player.captionsText = player.captions.find('.mejs-captions-text');
			player.captionsButton =
					$('<div class="mejs-button mejs-captions-button">'+
						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.tracksText + '" aria-label="' + t.options.tracksText + '"></button>'+
						'<div class="mejs-captions-selector">'+
							'<ul>'+
								'<li>'+
									'<input type="radio" name="' + player.id + '_captions" id="' + player.id + '_captions_none" value="none" checked="checked" />' +
									'<label for="' + player.id + '_captions_none">' + mejs.i18n.t('None') +'</label>'+
								'</li>'	+
							'</ul>'+
						'</div>'+
					'</div>')
						.appendTo(controls);


			var subtitleCount = 0;
			for (i=0; i<player.tracks.length; i++) {
				kind = player.tracks[i].kind;
				if (kind === 'subtitles' || kind === 'captions') {
					subtitleCount++;
				}
			}

			// if only one language then just make the button a toggle
			if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount == 1){
				// click
				player.captionsButton.on('click',function() {
					if (player.selectedTrack === null) {
						lang = player.tracks[0].srclang;
					} else {
						lang = 'none';
					}
					player.setTrack(lang);
				});
			} else {
				// hover or keyboard focus
				player.captionsButton.on( 'mouseenter focusin', function() {
					$(this).find('.mejs-captions-selector').removeClass('mejs-offscreen');
				})

				// handle clicks to the language radio buttons
				.on('click','input[type=radio]',function() {
					lang = this.value;
					player.setTrack(lang);
				});

				player.captionsButton.on( 'mouseleave focusout', function() {
					$(this).find(".mejs-captions-selector").addClass("mejs-offscreen");
				});

			}

			if (!player.options.alwaysShowControls) {
				// move with controls
				player.container
					.bind('controlsshown', function () {
						// push captions above controls
						player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');

					})
					.bind('controlshidden', function () {
						if (!media.paused) {
							// move back to normal place
							player.container.find('.mejs-captions-position').removeClass('mejs-captions-position-hover');
						}
					});
			} else {
				player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
			}

			player.trackToLoad = -1;
			player.selectedTrack = null;
			player.isLoadingTrack = false;

			// add to list
			for (i=0; i<player.tracks.length; i++) {
				kind = player.tracks[i].kind;
				if (kind === 'subtitles' || kind === 'captions') {
					player.addTrackButton(player.tracks[i].srclang, player.tracks[i].label);
				}
			}

			// start loading tracks
			player.loadNextTrack();

			media.addEventListener('timeupdate',function() {
				player.displayCaptions();
			}, false);

			if (player.options.slidesSelector !== '') {
				player.slidesContainer = $(player.options.slidesSelector);

				media.addEventListener('timeupdate',function() {
					player.displaySlides();
				}, false);

			}

			media.addEventListener('loadedmetadata', function() {
				player.displayChapters();
			}, false);

			player.container.hover(
				function () {
					// chapters
					if (player.hasChapters) {
						player.chapters.removeClass('mejs-offscreen');
						player.chapters.fadeIn(200).height(player.chapters.find('.mejs-chapter').outerHeight());
					}
				},
				function () {
					if (player.hasChapters && !media.paused) {
						player.chapters.fadeOut(200, function() {
							$(this).addClass('mejs-offscreen');
							$(this).css('display','block');
						});
					}
				});

			t.container.on('controlsresize', function() {
				t.adjustLanguageBox();
			});

			// check for autoplay
			if (player.node.getAttribute('autoplay') !== null) {
				player.chapters.addClass('mejs-offscreen');
			}
		},

		setTrack: function(lang){

			var t = this,
				i;

			if (lang == 'none') {
				t.selectedTrack = null;
				t.captionsButton.removeClass('mejs-captions-enabled');
			} else {
				for (i=0; i<t.tracks.length; i++) {
					if (t.tracks[i].srclang == lang) {
						if (t.selectedTrack === null)
							t.captionsButton.addClass('mejs-captions-enabled');
						t.selectedTrack = t.tracks[i];
						t.captions.attr('lang', t.selectedTrack.srclang);
						t.displayCaptions();
						break;
					}
				}
			}
		},

		loadNextTrack: function() {
			var t = this;

			t.trackToLoad++;
			if (t.trackToLoad < t.tracks.length) {
				t.isLoadingTrack = true;
				t.loadTrack(t.trackToLoad);
			} else {
				// add done?
				t.isLoadingTrack = false;

				t.checkForTracks();
			}
		},

		loadTrack: function(index){
			var
				t = this,
				track = t.tracks[index],
				after = function() {

					track.isLoaded = true;

					t.enableTrackButton(track.srclang, track.label);

					t.loadNextTrack();

				};


			$.ajax({
				url: track.src,
				dataType: "text",
				success: function(d) {

					// parse the loaded file
					if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) {
						track.entries = mejs.TrackFormatParser.dfxp.parse(d);
					} else {
						track.entries = mejs.TrackFormatParser.webvtt.parse(d);
					}

					after();

					if (track.kind == 'chapters') {
						t.media.addEventListener('play', function() {
							if (t.media.duration > 0) {
								t.displayChapters(track);
							}
						}, false);
					}

					if (track.kind == 'slides') {
						t.setupSlides(track);
					}
				},
				error: function() {
					t.removeTrackButton(track.srclang);
					t.loadNextTrack();
				}
			});
		},

		enableTrackButton: function(lang, label) {
			var t = this;

			if (label === '') {
				label = mejs.language.codes[lang] || lang;
			}

			t.captionsButton
				.find('input[value=' + lang + ']')
					.prop('disabled',false)
				.siblings('label')
					.html( label );

			// auto select
			if (t.options.startLanguage == lang) {
				$('#' + t.id + '_captions_' + lang).prop('checked', true).trigger('click');
			}

			t.adjustLanguageBox();
		},

		removeTrackButton: function(lang) {
			var t = this;

			t.captionsButton.find('input[value=' + lang + ']').closest('li').remove();

			t.adjustLanguageBox();
		},

		addTrackButton: function(lang, label) {
			var t = this;
			if (label === '') {
				label = mejs.language.codes[lang] || lang;
			}

			t.captionsButton.find('ul').append(
				$('<li>'+
					'<input type="radio" name="' + t.id + '_captions" id="' + t.id + '_captions_' + lang + '" value="' + lang + '" disabled="disabled" />' +
					'<label for="' + t.id + '_captions_' + lang + '">' + label + ' (loading)' + '</label>'+
				'</li>')
			);

			t.adjustLanguageBox();

			// remove this from the dropdownlist (if it exists)
			t.container.find('.mejs-captions-translations option[value=' + lang + ']').remove();
		},

		adjustLanguageBox:function() {
			var t = this;
			// adjust the size of the outer box
			t.captionsButton.find('.mejs-captions-selector').height(
				t.captionsButton.find('.mejs-captions-selector ul').outerHeight(true) +
				t.captionsButton.find('.mejs-captions-translations').outerHeight(true)
			);
		},

		checkForTracks: function() {
			var
				t = this,
				hasSubtitles = false;

			// check if any subtitles
			if (t.options.hideCaptionsButtonWhenEmpty) {
				for (var i=0; i<t.tracks.length; i++) {
					var kind = t.tracks[i].kind;
					if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) {
						hasSubtitles = true;
						break;
					}
				}

				if (!hasSubtitles) {
					t.captionsButton.hide();
					t.setControlsSize();
				}
			}
		},

		displayCaptions: function() {

			if (typeof this.tracks == 'undefined')
				return;

			var
				t = this,
				i,
				track = t.selectedTrack;

			if (track !== null && track.isLoaded) {
				for (i=0; i<track.entries.times.length; i++) {
					if (t.media.currentTime >= track.entries.times[i].start && t.media.currentTime <= track.entries.times[i].stop) {
						// Set the line before the timecode as a class so the cue can be targeted if needed
						t.captionsText.html(track.entries.text[i]).attr('class', 'mejs-captions-text ' + (track.entries.times[i].identifier || ''));
						t.captions.show().height(0);
						return; // exit out if one is visible;
					}
				}
				t.captions.hide();
			} else {
				t.captions.hide();
			}
		},

		setupSlides: function(track) {
			var t = this;

			t.slides = track;
			t.slides.entries.imgs = [t.slides.entries.text.length];
			t.showSlide(0);

		},

		showSlide: function(index) {
			if (typeof this.tracks == 'undefined' || typeof this.slidesContainer == 'undefined') {
				return;
			}

			var t = this,
				url = t.slides.entries.text[index],
				img = t.slides.entries.imgs[index];

			if (typeof img == 'undefined' || typeof img.fadeIn == 'undefined') {

				t.slides.entries.imgs[index] = img = $('<img src="' + url + '">')
						.on('load', function() {
							img.appendTo(t.slidesContainer)
								.hide()
								.fadeIn()
								.siblings(':visible')
									.fadeOut();

						});

			} else {

				if (!img.is(':visible') && !img.is(':animated')) {

					//

					img.fadeIn()
						.siblings(':visible')
							.fadeOut();
				}
			}

		},

		displaySlides: function() {

			if (typeof this.slides == 'undefined')
				return;

			var
				t = this,
				slides = t.slides,
				i;

			for (i=0; i<slides.entries.times.length; i++) {
				if (t.media.currentTime >= slides.entries.times[i].start && t.media.currentTime <= slides.entries.times[i].stop){

					t.showSlide(i);

					return; // exit out if one is visible;
				}
			}
		},

		displayChapters: function() {
			var
				t = this,
				i;

			for (i=0; i<t.tracks.length; i++) {
				if (t.tracks[i].kind == 'chapters' && t.tracks[i].isLoaded) {
					t.drawChapters(t.tracks[i]);
					t.hasChapters = true;
					break;
				}
			}
		},

		drawChapters: function(chapters) {
			var
				t = this,
				i,
				dur,
				//width,
				//left,
				percent = 0,
				usedPercent = 0;

			t.chapters.empty();

			for (i=0; i<chapters.entries.times.length; i++) {
				dur = chapters.entries.times[i].stop - chapters.entries.times[i].start;
				percent = Math.floor(dur / t.media.duration * 100);
				if (percent + usedPercent > 100 || // too large
					i == chapters.entries.times.length-1 && percent + usedPercent < 100) // not going to fill it in
					{
					percent = 100 - usedPercent;
				}
				//width = Math.floor(t.width * dur / t.media.duration);
				//left = Math.floor(t.width * chapters.entries.times[i].start / t.media.duration);
				//if (left + width > t.width) {
				//	width = t.width - left;
				//}

				t.chapters.append( $(
					'<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +
						'<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +
							'<span class="ch-title">' + chapters.entries.text[i] + '</span>' +
							'<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start, t.options) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop, t.options) + '</span>' +
						'</div>' +
					'</div>'));
				usedPercent += percent;
			}

			t.chapters.find('div.mejs-chapter').click(function() {
				t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) );
				if (t.media.paused) {
					t.media.play();
				}
			});

			t.chapters.show();
		}
	});



	mejs.language = {
		codes:  {
			af:'Afrikaans',
			sq:'Albanian',
			ar:'Arabic',
			be:'Belarusian',
			bg:'Bulgarian',
			ca:'Catalan',
			zh:'Chinese',
			'zh-cn':'Chinese Simplified',
			'zh-tw':'Chinese Traditional',
			hr:'Croatian',
			cs:'Czech',
			da:'Danish',
			nl:'Dutch',
			en:'English',
			et:'Estonian',
			fl:'Filipino',
			fi:'Finnish',
			fr:'French',
			gl:'Galician',
			de:'German',
			el:'Greek',
			ht:'Haitian Creole',
			iw:'Hebrew',
			hi:'Hindi',
			hu:'Hungarian',
			is:'Icelandic',
			id:'Indonesian',
			ga:'Irish',
			it:'Italian',
			ja:'Japanese',
			ko:'Korean',
			lv:'Latvian',
			lt:'Lithuanian',
			mk:'Macedonian',
			ms:'Malay',
			mt:'Maltese',
			no:'Norwegian',
			fa:'Persian',
			pl:'Polish',
			pt:'Portuguese',
			// 'pt-pt':'Portuguese (Portugal)',
			ro:'Romanian',
			ru:'Russian',
			sr:'Serbian',
			sk:'Slovak',
			sl:'Slovenian',
			es:'Spanish',
			sw:'Swahili',
			sv:'Swedish',
			tl:'Tagalog',
			th:'Thai',
			tr:'Turkish',
			uk:'Ukrainian',
			vi:'Vietnamese',
			cy:'Welsh',
			yi:'Yiddish'
		}
	};

	/*
	Parses WebVTT format which should be formatted as
	================================
	WEBVTT

	1
	00:00:01,1 --> 00:00:05,000
	A line of text

	2
	00:01:15,1 --> 00:02:05,000
	A second line of text

	===============================

	Adapted from: http://www.delphiki.com/html5/playr
	*/
	mejs.TrackFormatParser = {
		webvtt: {
			pattern_timecode: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,

			parse: function(trackText) {
				var
					i = 0,
					lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/),
					entries = {text:[], times:[]},
					timecode,
					text,
					identifier;
				for(; i<lines.length; i++) {
					timecode = this.pattern_timecode.exec(lines[i]);

					if (timecode && i<lines.length) {
						if ((i - 1) >= 0 && lines[i - 1] !== '') {
							identifier = lines[i - 1];
						}
						i++;
						// grab all the (possibly multi-line) text that follows
						text = lines[i];
						i++;
						while(lines[i] !== '' && i<lines.length){
							text = text + '\n' + lines[i];
							i++;
						}
						text = $.trim(text).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
						// Text is in a different array so I can use .join
						entries.text.push(text);
						entries.times.push(
						{
							identifier: identifier,
							start: (mejs.Utility.convertSMPTEtoSeconds(timecode[1]) === 0) ? 0.200 : mejs.Utility.convertSMPTEtoSeconds(timecode[1]),
							stop: mejs.Utility.convertSMPTEtoSeconds(timecode[3]),
							settings: timecode[5]
						});
					}
					identifier = '';
				}
				return entries;
			}
		},
		// Thanks to Justin Capella: https://github.com/johndyer/mediaelement/pull/420
		dfxp: {
			parse: function(trackText) {
				trackText = $(trackText).filter("tt");
				var
					i = 0,
					container = trackText.children("div").eq(0),
					lines = container.find("p"),
					styleNode = trackText.find("#" + container.attr("style")),
					styles,
					text,
					entries = {text:[], times:[]};


				if (styleNode.length) {
					var attributes = styleNode.removeAttr("id").get(0).attributes;
					if (attributes.length) {
						styles = {};
						for (i = 0; i < attributes.length; i++) {
							styles[attributes[i].name.split(":")[1]] = attributes[i].value;
						}
					}
				}

				for(i = 0; i<lines.length; i++) {
					var style;
					var _temp_times = {
						start: null,
						stop: null,
						style: null
					};
					if (lines.eq(i).attr("begin")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("begin"));
					if (!_temp_times.start && lines.eq(i-1).attr("end")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i-1).attr("end"));
					if (lines.eq(i).attr("end")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("end"));
					if (!_temp_times.stop && lines.eq(i+1).attr("begin")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i+1).attr("begin"));
					if (styles) {
						style = "";
						for (var _style in styles) {
							style += _style + ":" + styles[_style] + ";";
						}
					}
					if (style) _temp_times.style = style;
					if (_temp_times.start === 0) _temp_times.start = 0.200;
					entries.times.push(_temp_times);
					text = $.trim(lines.eq(i).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
					entries.text.push(text);
				}
				return entries;
			}
		},
		split2: function (text, regex) {
			// normal version for compliant browsers
			// see below for IE fix
			return text.split(regex);
		}
	};

	// test for browsers with bad String.split method.
	if ('x\n\ny'.split(/\n/gi).length != 3) {
		// add super slow IE8 and below version
		mejs.TrackFormatParser.split2 = function(text, regex) {
			var
				parts = [],
				chunk = '',
				i;

			for (i=0; i<text.length; i++) {
				chunk += text.substring(i,i+1);
				if (regex.test(chunk)) {
					parts.push(chunk.replace(regex, ''));
					chunk = '';
				}
			}
			parts.push(chunk);
			return parts;
		};
	}

})(mejs.$);

/*
* ContextMenu Plugin
* 
*
*/

(function($) {

$.extend(mejs.MepDefaults,
	{ 'contextMenuItems': [
		// demo of a fullscreen option
		{ 
			render: function(player) {
				
				// check for fullscreen plugin
				if (typeof player.enterFullScreen == 'undefined')
					return null;
			
				if (player.isFullScreen) {
					return mejs.i18n.t('Turn off Fullscreen');
				} else {
					return mejs.i18n.t('Go Fullscreen');
				}
			},
			click: function(player) {
				if (player.isFullScreen) {
					player.exitFullScreen();
				} else {
					player.enterFullScreen();
				}
			}
		}
		,
		// demo of a mute/unmute button
		{ 
			render: function(player) {
				if (player.media.muted) {
					return mejs.i18n.t('Unmute');
				} else {
					return mejs.i18n.t('Mute');
				}
			},
			click: function(player) {
				if (player.media.muted) {
					player.setMuted(false);
				} else {
					player.setMuted(true);
				}
			}
		},
		// separator
		{
			isSeparator: true
		}
		,
		// demo of simple download video
		{ 
			render: function(player) {
				return mejs.i18n.t('Download Video');
			},
			click: function(player) {
				window.location.href = player.media.currentSrc;
			}
		}	
	]}
);


	$.extend(MediaElementPlayer.prototype, {
		buildcontextmenu: function(player, controls, layers, media) {
			
			// create context menu
			player.contextMenu = $('<div class="mejs-contextmenu"></div>')
								.appendTo($('body'))
								.hide();
			
			// create events for showing context menu
			player.container.bind('contextmenu', function(e) {
				if (player.isContextMenuEnabled) {
					e.preventDefault();
					player.renderContextMenu(e.clientX-1, e.clientY-1);
					return false;
				}
			});
			player.container.bind('click', function() {
				player.contextMenu.hide();
			});	
			player.contextMenu.bind('mouseleave', function() {

				//
				player.startContextMenuTimer();
				
			});		
		},

		cleancontextmenu: function(player) {
			player.contextMenu.remove();
		},
		
		isContextMenuEnabled: true,
		enableContextMenu: function() {
			this.isContextMenuEnabled = true;
		},
		disableContextMenu: function() {
			this.isContextMenuEnabled = false;
		},
		
		contextMenuTimeout: null,
		startContextMenuTimer: function() {
			//
			
			var t = this;
			
			t.killContextMenuTimer();
			
			t.contextMenuTimer = setTimeout(function() {
				t.hideContextMenu();
				t.killContextMenuTimer();
			}, 750);
		},
		killContextMenuTimer: function() {
			var timer = this.contextMenuTimer;
			
			//
			
			if (timer != null) {				
				clearTimeout(timer);
				delete timer;
				timer = null;
			}
		},		
		
		hideContextMenu: function() {
			this.contextMenu.hide();
		},
		
		renderContextMenu: function(x,y) {
			
			// alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly
			var t = this,
				html = '',
				items = t.options.contextMenuItems;
			
			for (var i=0, il=items.length; i<il; i++) {
				
				if (items[i].isSeparator) {
					html += '<div class="mejs-contextmenu-separator"></div>';
				} else {
				
					var rendered = items[i].render(t);
				
					// render can return null if the item doesn't need to be used at the moment
					if (rendered != null) {
						html += '<div class="mejs-contextmenu-item" data-itemindex="' + i + '" id="element-' + (Math.random()*1000000) + '">' + rendered + '</div>';
					}
				}
			}
			
			// position and show the context menu
			t.contextMenu
				.empty()
				.append($(html))
				.css({top:y, left:x})
				.show();
				
			// bind events
			t.contextMenu.find('.mejs-contextmenu-item').each(function() {
							
				// which one is this?
				var $dom = $(this),
					itemIndex = parseInt( $dom.data('itemindex'), 10 ),
					item = t.options.contextMenuItems[itemIndex];
				
				// bind extra functionality?
				if (typeof item.show != 'undefined')
					item.show( $dom , t);
				
				// bind click action
				$dom.click(function() {			
					// perform click action
					if (typeof item.click != 'undefined')
						item.click(t);
					
					// close
					t.contextMenu.hide();				
				});				
			});	
			
			// stop the controls from hiding
			setTimeout(function() {
				t.killControlsTimer('rev3');	
			}, 100);
						
		}
	});
	
})(mejs.$);
(function($) {
	// skip back button

	$.extend(mejs.MepDefaults, {
		skipBackInterval: 30,
		// %1 will be replaced with skipBackInterval in this string
		skipBackText: mejs.i18n.t('Skip back %1 seconds')
	});

	$.extend(MediaElementPlayer.prototype, {
		buildskipback: function(player, controls, layers, media) {
			var
				t = this,
				// Replace %1 with skip back interval
				backText = t.options.skipBackText.replace('%1', t.options.skipBackInterval),
				// create the loop button
				loop =
				$('<div class="mejs-button mejs-skip-back-button">' +
					'<button type="button" aria-controls="' + t.id + '" title="' + backText + '" aria-label="' + backText + '">' + t.options.skipBackInterval + '</button>' +
				'</div>')
				// append it to the toolbar
				.appendTo(controls)
				// add a click toggle event
				.click(function() {
					media.setCurrentTime(Math.max(media.currentTime - t.options.skipBackInterval, 0));
					$(this).find('button').blur();
				});
		}
	});

})(mejs.$);

/**
 * Postroll plugin
 */
(function($) {

	$.extend(mejs.MepDefaults, {
		postrollCloseText: mejs.i18n.t('Close')
	});

	// Postroll
	$.extend(MediaElementPlayer.prototype, {
		buildpostroll: function(player, controls, layers, media) {
			var
				t = this,
				postrollLink = t.container.find('link[rel="postroll"]').attr('href');

			if (typeof postrollLink !== 'undefined') {
				player.postroll =
					$('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">' + t.options.postrollCloseText + '</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(layers).hide();

				t.media.addEventListener('ended', function (e) {
					$.ajax({
						dataType: 'html',
						url: postrollLink,
						success: function (data, textStatus) {
							layers.find('.mejs-postroll-layer-content').html(data);
						}
					});
					player.postroll.show();
				}, false);
			}
		}
	});

})(mejs.$);media/js/mediafield-mootools.js000064400000002677152177723720012562 0ustar00function jInsertFieldValue(value, id) {
	var $ = jQuery.noConflict();
	var old_value = $("#" + id).val();
	if (old_value != value) {
		var $elem = $("#" + id);
		$elem.val(value);
		$elem.trigger("change");
		if (typeof($elem.get(0).onchange) === "function") {
			$elem.get(0).onchange();
		}
		jMediaRefreshPreview(id);
	}
}

function jMediaRefreshPreview(id) {
	var $ = jQuery.noConflict();
	var value = $("#" + id).val();
	var $img = $("#" + id + "_preview");
	var basepath = $("#" + id).data("basepath");

	if ($img.length) {
		if (value) {
			$img.attr("src", basepath + value);
			$("#" + id + "_preview_empty").hide();
			$("#" + id + "_preview_img").show()
		} else {
			$img.attr("src", "");
			$("#" + id + "_preview_empty").show();
			$("#" + id + "_preview_img").hide();
		}
	}
}

function jMediaRefreshPreviewTip(tip)
{
	var $ = jQuery.noConflict();
	var $tip = $(tip);
	var $img = $tip.find("img.media-preview");

	$img.each(function(index, value) {
		$tip.find("div.tip").css("max-width", "none");
		var id = $(this).attr("id");
		id = id.substring(0, id.length - "_preview".length);
		jMediaRefreshPreview(id);
		$tip.show(this);
	});
}

// JQuery for tooltip for INPUT showing whole image path
function jMediaRefreshImgpathTip(tip, els)
{
	var $ = jQuery.noConflict();
	var $tip = $(tip);
	$tip.css("max-width", "none");
	var $imgpath = $(els).val();
	$("#TipImgpath").html($imgpath);

	if ($imgpath.length) {
		$tip.show();
	} else {
		$tip.hide();
	}
}media/js/mediamanager.js000064400000010675152177723720011235 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JMediaManager behavior for media component
 *
 * @package		Joomla.Extensions
 * @subpackage  Media
 * @since		1.5
 */
;(function( $, scope ) {
	"use strict";

	var MediaManager = scope.MediaManager = {

		/**
		 * Basic setup
		 *
		 * @return  void
		 */
		initialize: function() {
			this.folderpath = $( '#folderpath' );

			this.updatepaths = $( 'input.update-folder' );

			this.frame = window.frames.folderframe;

			var self = this;

			$(this.frame).one('load', function (e) {
				self.frameurl = self.frame.location.href;
			});
		},

		/**
		 * Called from outside. Only ever called with task 'folder.delete'
		 *
		 * @param   string  task  [description]
		 *
		 * @return  void
		 */
		submit: function( task ) {
			var form = this.frame.document.getElementById( 'mediamanager-form' );
			form.task.value = task;

			if ( $( '#username' ).length ) {
				form.username.value = $( '#username' ).val();
				form.password.value = $( '#password' ).val();
			}

			form.submit();
		},

		/**
		 * [onloadframe description]
		 *
		 * @return  {[type]}
		 */
		onloadframe: function() {
			// Update the frame url
			this.frameurl = this.frame.location.href;

			var folder = this.getFolder() || '',
				query = [],
				a = getUriObject( $( '#uploadForm' ).prop( 'action' ) ),
				q = getQueryObject( a.query ),
				k, v;

			this.updatepaths.each( function( path, el ) {
				el.value = folder;
			} );

			this.folderpath.value = scope.basepath + (folder ? '/' + folder : '');

			q.folder = folder;

			for ( k in q ) {
				if (!q.hasOwnProperty( k )) { continue; }

				v = q[ k ];
				query.push(encodeURIComponent(k) + (v === null ? '' : '=' + encodeURIComponent(v)));
			}

			a.query = query.join( '&' );
			a.fragment = null;

			$( '#uploadForm' ).prop( 'action', buildUri(a) );
			$( '#' + scope.viewstyle ).addClass( 'active' );
		},

		/**
		 * Switch the view type
		 *
		 * @param  string  type  'thumbs' || 'details'
		 */
		setViewType: function( type ) {
			$( '#' + type ).addClass( 'active' );
			$( '#' + scope.viewstyle ).removeClass( 'active' );
			scope.viewstyle = type;
			var folder = this.getFolder();

			folder = encodeURIComponent(folder);
			type = encodeURIComponent(type);

			this.setFrameUrl( 'index.php?option=com_media&view=mediaList&tmpl=component&folder=' + folder + '&layout=' + type );
		},

		refreshFrame: function() {
			this.setFrameUrl();
		},

		getFolder: function() {
			var args = getQueryObject( this.frame.location.search.substring( 1 ) );

			args.folder = args.folder === undefined ? '' : args.folder;

			return args.folder;
		},

		setFrameUrl: function( url ) {
			if ( url !== null ) {
				this.frameurl = url;
			}

			this.frame.location.href = this.frameurl;
		},
	};

	/**
	 * Convert a query string to an object
	 *
	 * @param   string  q  A query string (no leading ?)
	 *
	 * @return  object
	 */
	function getQueryObject( q ) {
		var rs = {};

		q = q || '';

		$.each( q.split( /[&;]/ ),
			function( key, val ) {
				var keys = val.split( '=' );

				rs[ decodeURIComponent(keys[ 0 ]) ] = keys.length == 2 ? decodeURIComponent(keys[ 1 ]) : null;
			});

		return rs;
	}

	/**
	 * Break a url into its component parts
	 *
	 * @param   string  u  URL
	 *
	 * @return  object
	 */
	function getUriObject( u ) {
		var bitsAssociate = {},
			bits = u.match( /^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/ );

		$.each([ 'uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment' ],
			function( key, index ) {
				bitsAssociate[ index ] = ( !!bits && !!bits[ key ] ) ? bits[ key ] : '';
			});

		return bitsAssociate;
	}

	/**
	 * Build a url from component parts
	 *
	 * @param   object  o  Such as the return value of `getUriObject()`
	 *
	 * @return  string
	 */
	function buildUri ( o ) {
		return o.scheme + '://' + o.domain +
			(o.port ? ':' + o.port : '') +
			(o.path ? o.path : '/') +
			(o.query ? '?' + o.query : '') +
			(o.fragment ? '#' + o.fragment : '');
	}

	$(function() {
		// Added to populate data on iframe load
		MediaManager.initialize();

		document.updateUploader = function() {
			$(MediaManager.frame).one('load', function() {
				MediaManager.onloadframe();
			});
		};

		document.updateUploader();
	});

}( jQuery, window ));

media/js/mediafield.js000064400000016775152177723720010715 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license	    GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * Field media
 */
;(function($){
	'use strict';

	if (!Function.prototype.bind) {
		Function.prototype.bind = function(oThis) {
			if (typeof this !== 'function') {
				// closest thing possible to the ECMAScript 5
				// internal IsCallable function
				throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
			}

			var aArgs   = Array.prototype.slice.call(arguments, 1),
			    fToBind = this,
			    fNOP    = function() {},
			    fBound  = function() {
				    return fToBind.apply(this instanceof fNOP && oThis
						    ? this
						    : oThis,
					    aArgs.concat(Array.prototype.slice.call(arguments)));
			    };

			fNOP.prototype = this.prototype;
			fBound.prototype = new fNOP();

			return fBound;
		};
	}

	$.fieldMedia = function(container, options){
		// Merge options with defaults
		this.options = $.extend({}, $.fieldMedia.defaults, options);

		// Set up elements
		this.$container = $(container);
		this.$modal = this.$container.find(this.options.modal);
		this.$modalBody = this.$modal.children('.modal-body');
		this.$input = this.$container.find(this.options.input);
		this.$containerPreview = this.$container.find(this.options.previewContainer);
		this.$buttonSelect = this.$container.find(this.options.buttonSelect);
		this.$buttonClear  = this.$container.find(this.options.buttonClear);

		// Bind events
		this.$buttonSelect.on('click', this.modalOpen.bind(this));
		this.$buttonClear.on('click', this.clearValue.bind(this));
		this.$modal.on('hide', this.removeIframe.bind(this));

		// Update preview for existing value
		this.updatePreview();
	};

	// display modal for select the file
	$.fieldMedia.prototype.modalOpen = function() {
		var $iframe = $('<iframe>', {
			name: 'field-media-modal',
			src: this.options.url.replace('{field-media-id}', this.$input.attr('id')),
			width: this.options.modalWidth,
			height: this.options.modalHeight
		});
		this.$modalBody.append($iframe);
		this.$modal.modal('show');
		$('body').addClass('modal-open');

		var self = this; // save context
		$iframe.load(function(){
			var content = $(this).contents();

			// bind insert
			content.on('click', self.options.buttonSaveSelected, function(){
				var value = content.find('#f_url').val();
				if (value) {
					self.setValue(value);
				}
				self.modalClose.call(self);
			});

			// bind cancel
			content.on('click', '.button-cancel', function(){
				$('body').removeClass('modal-open');
				self.modalClose.bind(self);
			});
		});
	};

	// close modal
	$.fieldMedia.prototype.modalClose = function() {
		this.$modal.modal('hide');
		$('body').removeClass('modal-open');
		this.$modalBody.empty();
	};

	// Clear the iframe
	$.fieldMedia.prototype.removeIframe = function() {
		this.$modalBody.empty();
		$('body').removeClass('modal-open');
	};

	// set the value
	$.fieldMedia.prototype.setValue = function(value) {
		this.$input.val(value).trigger('change');
		this.updatePreview();
	};

	// clear the value
	$.fieldMedia.prototype.clearValue = function() {
		this.setValue('');
	};

	// update preview
	$.fieldMedia.prototype.updatePreview = function() {
		if (!this.options.preview) {
			return;
		}

		if (this.options.preview && !this.options.previewAsTooltip) {
			var value = this.$input.val();

			if (!value) {
				this.$containerPreview.append('');
			} else {
				var imgPreview = new Image();
				imgPreview.src = this.options.basepath + value;
				if (imgPreview.width > imgPreview.height) {
					this.$containerPreview.html($('<img>',{src: imgPreview.src, style: 'width: ' + this.options.previewWidth + 'px'}));
				} else {
					this.$containerPreview.html($('<img>',{src: imgPreview.src, style: 'height: ' + this.options.previewHeight + 'px'}));
				}
			}
		} else {
			// Reset tooltip and preview
			try {
				this.$containerPreview.popover('destroy');
				this.$input.tooltip('destroy');
			} catch(err) {
				// Doing this so that jQueryUI tooltips and popover can exist alongside Bootstrap.
			}

			var value = this.$input.val();

			if (!value) {
				this.$containerPreview.popover();
			} else {
				var imgPreview = new Image(this.options.previewWidth, this.options.previewHeight);
				imgPreview.src = this.options.basepath + value;

				this.$containerPreview.popover({content: imgPreview});
				this.$input.tooltip({placement: 'top', title: value, html: false});
			}
		}
	};

	// default options
	$.fieldMedia.defaults = {
		basepath: '', // base path to file
		buttonClear: '.button-clear', // selector for button to clear the value
		buttonSelect: '.button-select', // selector for button to change the value
		buttonSaveSelected: '.button-save-selected', // selector for button to save the selected value
		input: '.field-media-input', // selector for the input
		preview: true, // whether use the preview
		previewAsTooltip: true, // whether use the preview
		previewContainer: '.field-media-preview', // selector for the preview container
		previewWidth: 200, // preview width
		previewHeight: 200, // preview height
		url: 'index.php?option=com_media&tmpl=component', // url for load the iframe
		modal: '.modal', // modal selector
		modalWidth: '100%', // modal width
		modalHeight: '300px', // modal height
	};

	$.fn.fieldMedia = function(options){
		return this.each(function(){
			var $el = $(this), instance = $el.data('fieldMedia');
			if(!instance){
				var options = options || {},
					data = $el.data();

				// Check options in the element
				for (var p in data) {
					if (data.hasOwnProperty(p)) {
						options[p] = data[p];
					}
				}

				instance = new $.fieldMedia(this, options);
				$el.data('fieldMedia', instance);
			}
		});
	};

	// Initialise all defaults on load and again when subform rows are added
	$(function($) {
		initMediaField();
		$(document).on('subform-row-add', initMediaField);

		function initMediaField (event, container)
		{
			$(container || document).find('.field-media-wrapper').fieldMedia();
		}
	});

})(jQuery);

// Compatibility with mootools modal layout
function jInsertFieldValue(value, id) {
	var $ = jQuery.noConflict();
	var old_value = $("#" + id).val();
	if (old_value != value) {
		var $elem = $("#" + id);
		$elem.val(value);
		$elem.trigger("change");
		if (typeof($elem.get(0).onchange) === "function") {
			$elem.get(0).onchange();
		}
		jMediaRefreshPreview(id);
	}
}

function jMediaRefreshPreview(id) {
	var $ = jQuery.noConflict();
	var value = $("#" + id).val();
	var $img = $("#" + id + "_preview");
	var basepath = $("#" + id).data("basepath");

	if ($img.length) {
		if (value) {
			$img.attr("src", basepath + value);
			$("#" + id + "_preview_empty").hide();
			$("#" + id + "_preview_img").show()
		} else {
			$img.attr("src", "");
			$("#" + id + "_preview_empty").show();
			$("#" + id + "_preview_img").hide();
		}
	}
}

function jMediaRefreshPreviewTip(tip)
{
	var $ = jQuery.noConflict();
	var $tip = $(tip);
	var $img = $tip.find("img.media-preview");

	$img.each(function(index, value) {
		$tip.find("div.tip").css("max-width", "none");
		var id = $(this).attr("id");
		id = id.substring(0, id.length - "_preview".length);
		jMediaRefreshPreview(id);
		$tip.show(this);
	});
}

// JQuery for tooltip for INPUT showing whole image path
function jMediaRefreshImgpathTip(tip, els)
{
	var $ = jQuery.noConflict();
	var $tip = $(tip);
	$tip.css("max-width", "none");
	var $imgpath = $(els).val();
	$("#TipImgpath").html($imgpath);

	if ($imgpath.length) {
		$tip.show();
	} else {
		$tip.hide();
	}
}
media/js/mediaelement-and-player.min.js000064400000245011152177723720014062 0ustar00/*!
 *
 * MediaElement.js
 * HTML5 <video> and <audio> shim and player
 * http://mediaelementjs.com/
 *
 * Creates a JavaScript object that mimics HTML5 MediaElement API
 * for browsers that don't understand HTML5 or can't play the provided codec
 * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
 *
 * Copyright 2010-2014, John Dyer (http://j.hn)
 * License: MIT
 *
 */
var mejs=mejs||{};mejs.version="2.23.0",mejs.meIndex=0,mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/dailymotion","video/x-dailymotion","application/x-mpegURL"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo","video/x-vimeo"]}]},mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");return b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>',b.firstChild.href},getScriptPath:function(a){for(var b,c,d,e,f,g,h=0,i="",j="",k=document.getElementsByTagName("script"),l=k.length,m=a.length;l>h;h++){for(e=k[h].src,c=e.lastIndexOf("/"),c>-1?(g=e.substring(c+1),f=e.substring(0,c+1)):(g=e,f=""),b=0;m>b;b++)if(j=a[b],d=g.indexOf(j),d>-1){i=f;break}if(""!==i)break}return i},calculateTimeFormat:function(a,b,c){0>a&&(a=0),"undefined"==typeof c&&(c=25);var d=b.timeFormat,e=d[0],f=d[1]==d[0],g=f?2:1,h=":",i=Math.floor(a/3600)%24,j=Math.floor(a/60)%60,k=Math.floor(a%60),l=Math.floor((a%1*c).toFixed(3)),m=[[l,"f"],[k,"s"],[j,"m"],[i,"h"]];d.length<g&&(h=d[g]);for(var n=!1,o=0,p=m.length;p>o;o++)if(-1!==d.indexOf(m[o][1]))n=!0;else if(n){for(var q=!1,r=o;p>r;r++)if(m[r][0]>0){q=!0;break}if(!q)break;f||(d=e+d),d=m[o][1]+h+d,f&&(d=m[o][1]+d),e=m[o][1]}b.currentTimeFormat=d},twoDigitsString:function(a){return 10>a?"0"+a:String(a)},secondsToTimeCode:function(a,b){if(0>a&&(a=0),"object"!=typeof b){var c="m:ss";c=arguments[1]?"hh:mm:ss":c,c=arguments[2]?c+":ff":c,b={currentTimeFormat:c,framesPerSecond:arguments[3]||25}}var d=b.framesPerSecond;"undefined"==typeof d&&(d=25);var c=b.currentTimeFormat,e=Math.floor(a/3600)%24,f=Math.floor(a/60)%60,g=Math.floor(a%60),h=Math.floor((a%1*d).toFixed(3));lis=[[h,"f"],[g,"s"],[f,"m"],[e,"h"]];var j=c;for(i=0,len=lis.length;i<len;i++)j=j.replace(lis[i][1]+lis[i][1],this.twoDigitsString(lis[i][0])),j=j.replace(lis[i][1],lis[i][0]);return j},timeCodeToSeconds:function(a,b,c,d){"undefined"==typeof c?c=!1:"undefined"==typeof d&&(d=25);var e=a.split(":"),f=parseInt(e[0],10),g=parseInt(e[1],10),h=parseInt(e[2],10),i=0,j=0;return c&&(i=parseInt(e[3])/d),j=3600*f+60*g+h+i},convertSMPTEtoSeconds:function(a){if("string"!=typeof a)return!1;a=a.replace(",",".");var b=0,c=-1!=a.indexOf(".")?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++)d=1,e>0&&(d=Math.pow(60,e)),b+=Number(a[e])*d;return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);b&&/object|embed/i.test(b.nodeName)&&(mejs.MediaFeatures.isIE?(b.style.display="none",function(){4==b.readyState?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))},removeObjectInIE:function(a){var b=document.getElementById(a);if(b){for(var c in b)"function"==typeof b[c]&&(b[c]=null);b.parentNode.removeChild(b)}},determineScheme:function(a){return a&&-1!=a.indexOf("://")?a.substr(0,a.indexOf("://")+3):"//"}},mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];return b[1]=b[1]||0,b[2]=b[2]||0,c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?!0:!1},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e,f,g,h=[0,0,0];if("undefined"!=typeof this.nav.plugins&&"object"==typeof this.nav.plugins[a]){if(e=this.nav.plugins[a].description,e&&("undefined"==typeof this.nav.mimeTypes||!this.nav.mimeTypes[b]||this.nav.mimeTypes[b].enabledPlugin))for(h=e.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split("."),f=0;f<h.length;f++)h[f]=parseInt(h[f].match(/\d+/),10)}else if("undefined"!=typeof window.ActiveXObject)try{g=new ActiveXObject(c),g&&(h=d(g))}catch(i){}return h}},mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[],c=a.GetVariable("$version");return c&&(c=c.split(" ")[1].split(","),b=[parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10)]),b}),mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(a,b,c,d){for(;a.isVersionSupported(b[0]+"."+b[1]+"."+b[2]+"."+b[3]);)b[c]+=d;b[c]-=d};return c(a,b,0,1),c(a,b,1,1),c(a,b,2,1e4),c(a,b,2,1e3),c(a,b,2,100),c(a,b,2,10),c(a,b,2,1),c(a,b,3,1),b}),mejs.MediaFeatures={init:function(){var a,b,c=this,d=document,e=mejs.PluginDetector.nav,f=mejs.PluginDetector.ua.toLowerCase(),g=["source","track","audio","video"];c.isiPad=null!==f.match(/ipad/i),c.isiPhone=null!==f.match(/iphone/i),c.isiOS=c.isiPhone||c.isiPad,c.isAndroid=null!==f.match(/android/i),c.isBustedAndroid=null!==f.match(/android 2\.[12]/),c.isBustedNativeHTTPS="https:"===location.protocol&&(null!==f.match(/android [12]\./)||null!==f.match(/macintosh.* version.* safari/)),c.isIE=-1!=e.appName.toLowerCase().indexOf("microsoft")||null!==e.appName.toLowerCase().match(/trident/gi),c.isChrome=null!==f.match(/chrome/gi),c.isChromium=null!==f.match(/chromium/gi),c.isFirefox=null!==f.match(/firefox/gi),c.isWebkit=null!==f.match(/webkit/gi),c.isGecko=null!==f.match(/gecko/gi)&&!c.isWebkit&&!c.isIE,c.isOpera=null!==f.match(/opera/gi),c.hasTouch="ontouchstart"in window,c.svgAsImg=!!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1");for(a=0;a<g.length;a++)b=document.createElement(g[a]);c.supportsMediaTag="undefined"!=typeof b.canPlayType||c.isBustedAndroid;try{b.canPlayType("video/mp4")}catch(h){c.supportsMediaTag=!1}c.supportsPointerEvents=function(){var a,b=document.createElement("x"),c=document.documentElement,d=window.getComputedStyle;return"pointerEvents"in b.style?(b.style.pointerEvents="auto",b.style.pointerEvents="x",c.appendChild(b),a=d&&"auto"===d(b,"").pointerEvents,c.removeChild(b),!!a):!1}(),c.hasFirefoxPluginMovingProblem=!1,c.hasiOSFullScreen="undefined"!=typeof b.webkitEnterFullscreen,c.hasNativeFullscreen="undefined"!=typeof b.requestFullscreen,c.hasWebkitNativeFullScreen="undefined"!=typeof b.webkitRequestFullScreen,c.hasMozNativeFullScreen="undefined"!=typeof b.mozRequestFullScreen,c.hasMsNativeFullScreen="undefined"!=typeof b.msRequestFullscreen,c.hasTrueNativeFullScreen=c.hasWebkitNativeFullScreen||c.hasMozNativeFullScreen||c.hasMsNativeFullScreen,c.nativeFullScreenEnabled=c.hasTrueNativeFullScreen,c.hasMozNativeFullScreen?c.nativeFullScreenEnabled=document.mozFullScreenEnabled:c.hasMsNativeFullScreen&&(c.nativeFullScreenEnabled=document.msFullscreenEnabled),c.isChrome&&(c.hasiOSFullScreen=!1),c.hasTrueNativeFullScreen&&(c.fullScreenEventName="",c.hasWebkitNativeFullScreen?c.fullScreenEventName="webkitfullscreenchange":c.hasMozNativeFullScreen?c.fullScreenEventName="mozfullscreenchange":c.hasMsNativeFullScreen&&(c.fullScreenEventName="MSFullscreenChange"),c.isFullScreen=function(){return c.hasMozNativeFullScreen?d.mozFullScreen:c.hasWebkitNativeFullScreen?d.webkitIsFullScreen:c.hasMsNativeFullScreen?null!==d.msFullscreenElement:void 0},c.requestFullScreen=function(a){c.hasWebkitNativeFullScreen?a.webkitRequestFullScreen():c.hasMozNativeFullScreen?a.mozRequestFullScreen():c.hasMsNativeFullScreen&&a.msRequestFullscreen()},c.cancelFullScreen=function(){c.hasWebkitNativeFullScreen?document.webkitCancelFullScreen():c.hasMozNativeFullScreen?document.mozCancelFullScreen():c.hasMsNativeFullScreen&&document.msExitFullscreen()}),c.hasiOSFullScreen&&f.match(/mac os x 10_5/i)&&(c.hasNativeFullScreen=!1,c.hasiOSFullScreen=!1)}},mejs.MediaFeatures.init(),mejs.HtmlMediaElement={pluginType:"native",isFullScreen:!1,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if("string"==typeof a)this.src=a;else{var c,d;for(c=0;c<a.length;c++)if(d=a[c],this.canPlayType(d.type)){this.src=d.src;break}}},setVideoSize:function(a,b){this.width=a,this.height=b}},mejs.PluginMediaElement=function(a,b,c){this.id=a,this.pluginType=b,this.src=c,this.events={},this.attributes={}},mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:!1,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:!0,ended:!1,seeking:!1,duration:0,error:null,tagName:"",muted:!1,volume:1,currentTime:0,play:function(){null!=this.pluginApi&&("youtube"==this.pluginType||"vimeo"==this.pluginType?this.pluginApi.playVideo():this.pluginApi.playMedia(),this.paused=!1)},load:function(){null!=this.pluginApi&&("youtube"==this.pluginType||"vimeo"==this.pluginType||this.pluginApi.loadMedia(),this.paused=!1)},pause:function(){null!=this.pluginApi&&("youtube"==this.pluginType||"vimeo"==this.pluginType?1==this.pluginApi.getPlayerState()&&this.pluginApi.pauseVideo():this.pluginApi.pauseMedia(),this.paused=!0)},stop:function(){null!=this.pluginApi&&("youtube"==this.pluginType||"vimeo"==this.pluginType?this.pluginApi.stopVideo():this.pluginApi.stopMedia(),this.paused=!0)},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++)if(d=e[b],mejs.PluginDetector.hasPluginVersion(this.pluginType,d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably";return""},positionFullscreenButton:function(a,b,c){null!=this.pluginApi&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){null!=this.pluginApi&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if("string"==typeof a)this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a)),this.src=mejs.Utility.absolutizeUrl(a);else{var b,c;for(b=0;b<a.length;b++)if(c=a[b],this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src)),this.src=mejs.Utility.absolutizeUrl(c.src);break}}},setCurrentTime:function(a){null!=this.pluginApi&&("youtube"==this.pluginType||"vimeo"==this.pluginType?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a),this.currentTime=a)},setVolume:function(a){null!=this.pluginApi&&("youtube"==this.pluginType?this.pluginApi.setVolume(100*a):this.pluginApi.setVolume(a),this.volume=a)},setMuted:function(a){null!=this.pluginApi&&("youtube"==this.pluginType?(a?this.pluginApi.mute():this.pluginApi.unMute(),this.muted=a,this.dispatchEvent({type:"volumechange"})):this.pluginApi.setMuted(a),this.muted=a)},setVideoSize:function(a,b){this.pluginElement&&this.pluginElement.style&&(this.pluginElement.style.width=a+"px",this.pluginElement.style.height=b+"px"),null!=this.pluginApi&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){null!=this.pluginApi&&this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){null!=this.pluginApi&&this.pluginApi.setFullscreen&&this.setFullscreen(!0)},exitFullScreen:function(){null!=this.pluginApi&&this.pluginApi.setFullscreen&&this.setFullscreen(!1)},addEventListener:function(a,b,c){this.events[a]=this.events[a]||[],this.events[a].push(b)},removeEventListener:function(a,b){if(!a)return this.events={},!0;var c=this.events[a];if(!c)return!0;if(!b)return this.events[a]=[],!0;for(var d=0;d<c.length;d++)if(c[d]===b)return this.events[a].splice(d,1),!0;return!1},dispatchEvent:function(a){var b,c=this.events[a.type];if(c)for(b=0;b<c.length;b++)c[b].apply(this,[a])},hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){return this.hasAttribute(a)?this.attributes[a]:null},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id)}},mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:!1,httpsBasicAuthSite:!1,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",flashScriptAccess:"sameDomain",enablePluginSmoothing:!1,enablePseudoStreaming:!1,pseudoStreamingStartQueryParam:"start",silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:.8,customError:"",success:function(){},error:function(){}},mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)},mejs.HtmlMediaElementShim={create:function(a,b){var c,d,e={},f="string"==typeof a?document.getElementById(a):a,g=f.tagName.toLowerCase(),h="audio"===g||"video"===g,i=h?f.getAttribute("src"):f.getAttribute("href"),j=f.getAttribute("poster"),k=f.getAttribute("autoplay"),l=f.getAttribute("preload"),m=f.getAttribute("controls");for(d in mejs.MediaElementDefaults)e[d]=mejs.MediaElementDefaults[d];for(d in b)e[d]=b[d];return i="undefined"==typeof i||null===i||""==i?null:i,j="undefined"==typeof j||null===j?"":j,l="undefined"==typeof l||null===l||"false"===l?"none":l,k=!("undefined"==typeof k||null===k||"false"===k),m=!("undefined"==typeof m||null===m||"false"===m),c=this.determinePlayback(f,e,mejs.MediaFeatures.supportsMediaTag,h,i),c.url=null!==c.url?mejs.Utility.absolutizeUrl(c.url):"",c.scheme=mejs.Utility.determineScheme(c.url),"native"==c.method?(mejs.MediaFeatures.isBustedAndroid&&(f.src=c.url,f.addEventListener("click",function(){f.play()},!1)),this.updateNative(c,e,k,l)):""!==c.method?this.createPlugin(c,e,j,k,l,m):(this.createErrorMessage(c,e,j),this)},determinePlayback:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=[],r={method:"",url:"",htmlMediaElement:a,isVideo:"audio"!=a.tagName.toLowerCase(),scheme:""};if("undefined"!=typeof b.type&&""!==b.type)if("string"==typeof b.type)q.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)q.push({type:b.type[f],url:e});else if(null!==e)k=this.formatType(e,a.getAttribute("type")),q.push({type:k,url:e});else for(f=0;f<a.childNodes.length;f++)j=a.childNodes[f],1==j.nodeType&&"source"==j.tagName.toLowerCase()&&(e=j.getAttribute("src"),k=this.formatType(e,j.getAttribute("type")),p=j.getAttribute("media"),(!p||!window.matchMedia||window.matchMedia&&window.matchMedia(p).matches)&&q.push({type:k,url:e}));if(!d&&q.length>0&&null!==q[0].url&&this.getTypeFromFile(q[0].url).indexOf("audio")>-1&&(r.isVideo=!1),mejs.MediaFeatures.isBustedAndroid&&(a.canPlayType=function(a){return null!==a.match(/video\/(mp4|m4v)/gi)?"maybe":""}),mejs.MediaFeatures.isChromium&&(a.canPlayType=function(a){return null!==a.match(/video\/(webm|ogv|ogg)/gi)?"maybe":""}),c&&("auto"===b.mode||"auto_plugin"===b.mode||"native"===b.mode)&&(!mejs.MediaFeatures.isBustedNativeHTTPS||b.httpsBasicAuthSite!==!0)){for(d||(o=document.createElement(r.isVideo?"video":"audio"),a.parentNode.insertBefore(o,a),a.style.display="none",r.htmlMediaElement=a=o),f=0;f<q.length;f++)if("video/m3u8"==q[f].type||""!==a.canPlayType(q[f].type).replace(/no/,"")||""!==a.canPlayType(q[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")||""!==a.canPlayType(q[f].type.replace(/m4a/,"mp4")).replace(/no/,"")){r.method="native",r.url=q[f].url;break}if("native"===r.method&&(null!==r.url&&(a.src=r.url),"auto_plugin"!==b.mode))return r}if("auto"===b.mode||"auto_plugin"===b.mode||"shim"===b.mode)for(f=0;f<q.length;f++)for(k=q[f].type,g=0;g<b.plugins.length;g++)for(l=b.plugins[g],m=mejs.plugins[l],h=0;h<m.length;h++)if(n=m[h],null==n.version||mejs.PluginDetector.hasPluginVersion(l,n.version))for(i=0;i<n.types.length;i++)if(k.toLowerCase()==n.types[i].toLowerCase())return r.method=l,r.url=q[f].url,r;return"auto_plugin"===b.mode&&"native"===r.method?r:(""===r.method&&q.length>0&&(r.url=q[0].url),r)},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];var b=a.substring(a.lastIndexOf(".")+1).toLowerCase(),c=/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(b)?"video/":"audio/";return this.getTypeFromExtension(b,c)},getTypeFromExtension:function(a,b){switch(b=b||"",a){case"mp4":case"m4v":case"m4a":case"f4v":case"f4a":return b+"mp4";case"flv":return b+"x-flv";case"webm":case"webma":case"webmv":return b+"webm";case"ogg":case"oga":case"ogv":return b+"ogg";case"m3u8":return"application/x-mpegurl";case"ts":return b+"mp2t";default:return b+a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div"),f=b.customError;e.className="me-cannotplay";try{e.style.width=d.width+"px",e.style.height=d.height+"px"}catch(g){}f||(f='<a href="'+a.url+'">',""!==c&&(f+='<img src="'+c+'" width="100%" height="100%" alt="" />'),f+="<span>"+mejs.i18n.t("Download File")+"</span></a>"),e.innerHTML=f,d.parentNode.insertBefore(e,d),d.style.display="none",b.error(d)},createPlugin:function(a,b,c,d,e,f){var g,h,i,j=a.htmlMediaElement,k=1,l=1,m="me_"+a.method+"_"+mejs.meIndex++,n=new mejs.PluginMediaElement(m,a.method,a.url),o=document.createElement("div");n.tagName=j.tagName;for(var p=0;p<j.attributes.length;p++){var q=j.attributes[p];q.specified&&n.setAttribute(q.name,q.value)}for(h=j.parentNode;null!==h&&null!=h.tagName&&"body"!==h.tagName.toLowerCase()&&null!=h.parentNode&&null!=h.parentNode.tagName&&null!=h.parentNode.constructor&&"ShadowRoot"===h.parentNode.constructor.name;){if("p"===h.parentNode.tagName.toLowerCase()){h.parentNode.parentNode.insertBefore(h,h.parentNode);break}h=h.parentNode}switch(a.isVideo?(k=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:null!==j.getAttribute("width")?j.getAttribute("width"):b.defaultVideoWidth,l=b.pluginHeight>0?b.pluginHeight:b.videoHeight>0?b.videoHeight:null!==j.getAttribute("height")?j.getAttribute("height"):b.defaultVideoHeight,k=mejs.Utility.encodeUrl(k),l=mejs.Utility.encodeUrl(l)):b.enablePluginDebug&&(k=320,l=240),n.success=b.success,o.className="me-plugin",o.id=m+"_container",a.isVideo?j.parentNode.insertBefore(o,j):document.body.insertBefore(o,document.body.childNodes[0]),("flash"===a.method||"silverlight"===a.method)&&(i=["id="+m,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+k,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+l,"pseudostreamstart="+b.pseudoStreamingStartQueryParam],null!==a.url&&("flash"==a.method?i.push("file="+mejs.Utility.encodeUrl(a.url)):i.push("file="+a.url)),b.enablePluginDebug&&i.push("debug=true"),b.enablePluginSmoothing&&i.push("smoothing=true"),b.enablePseudoStreaming&&i.push("pseudostreaming=true"),f&&i.push("controls=true"),b.pluginVars&&(i=i.concat(b.pluginVars)),window[m+"_init"]=function(){switch(n.pluginType){case"flash":n.pluginElement=n.pluginApi=document.getElementById(m);break;case"silverlight":n.pluginElement=document.getElementById(n.id),n.pluginApi=n.pluginElement.Content.MediaElementJS}null!=n.pluginApi&&n.success&&n.success(n,j)},window[m+"_event"]=function(a,b){var c,d,e;c={type:a,target:n};for(d in b)n[d]=b[d],c[d]=b[d];e=b.bufferedTime||0,c.target.buffered=c.buffered={start:function(a){return 0},end:function(a){return e},length:1},n.dispatchEvent(c)}),a.method){case"silverlight":o.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+m+'" name="'+m+'" width="'+k+'" height="'+l+'" class="mejs-shim"><param name="initParams" value="'+i.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+b.pluginPath+b.silverlightName+'" /></object>';break;case"flash":mejs.MediaFeatures.isIE?(g=document.createElement("div"),o.appendChild(g),g.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+m+'" width="'+k+'" height="'+l+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?"+(new Date).getTime()+'" /><param name="flashvars" value="'+i.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="'+b.flashScriptAccess+'" /><param name="allowFullScreen" value="true" /><param name="scale" value="default" /></object>'):o.innerHTML='<embed id="'+m+'" name="'+m+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="'+b.flashScriptAccess+'" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+i.join("&")+'" width="'+k+'" height="'+l+'" scale="default"class="mejs-shim"></embed>';break;case"youtube":var r;if(-1!=a.url.lastIndexOf("youtu.be"))r=a.url.substr(a.url.lastIndexOf("/")+1),-1!=r.indexOf("?")&&(r=r.substr(0,r.indexOf("?")));else{var s=a.url.match(/[?&]v=([^&#]+)|&|#|$/);s&&(r=s[1])}youtubeSettings={container:o,containerId:o.id,pluginMediaElement:n,pluginId:m,videoId:r,height:l,width:k,scheme:a.scheme},window.postMessage?mejs.YouTubeApi.enqueueIframe(youtubeSettings):mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])&&mejs.YouTubeApi.createFlash(youtubeSettings,b);break;case"vimeo":var t=m+"_player";if(n.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1),o.innerHTML='<iframe src="'+a.scheme+"player.vimeo.com/video/"+n.vimeoid+"?api=1&portrait=0&byline=0&title=0&player_id="+t+'" width="'+k+'" height="'+l+'" frameborder="0" class="mejs-shim" id="'+t+'" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>',"function"==typeof $f){var u=$f(o.childNodes[0]),v=-1;u.addEvent("ready",function(){function a(a,b,c,d){var e={type:c,target:b};"timeupdate"==c&&(b.currentTime=e.currentTime=d.seconds,b.duration=e.duration=d.duration),b.dispatchEvent(e)}u.playVideo=function(){u.api("play")},u.stopVideo=function(){u.api("unload")},u.pauseVideo=function(){u.api("pause")},u.seekTo=function(a){u.api("seekTo",a)},u.setVolume=function(a){u.api("setVolume",a)},u.setMuted=function(a){a?(u.lastVolume=u.api("getVolume"),u.api("setVolume",0)):(u.api("setVolume",u.lastVolume),delete u.lastVolume)},u.getPlayerState=function(){return v},u.addEvent("play",function(){v=1,a(u,n,"play"),a(u,n,"playing")}),u.addEvent("pause",function(){v=2,a(u,n,"pause")}),u.addEvent("finish",function(){v=0,a(u,n,"ended")}),u.addEvent("playProgress",function(b){a(u,n,"timeupdate",b)}),u.addEvent("seek",function(b){v=3,a(u,n,"seeked",b)}),u.addEvent("loadProgress",function(b){v=3,a(u,n,"progress",b)}),n.pluginElement=o,n.pluginApi=u,n.success(n,n.pluginElement)})}else console.warn("You need to include froogaloop for vimeo to work")}return j.style.display="none",j.removeAttribute("autoplay"),n},updateNative:function(a,b,c,d){var e,f=a.htmlMediaElement;for(e in mejs.HtmlMediaElement)f[e]=mejs.HtmlMediaElement[e];return b.success(f,f),f}},mejs.YouTubeApi={isIframeStarted:!1,isIframeLoaded:!1,loadIframeApi:function(a){if(!this.isIframeStarted){var b=document.createElement("script");b.src=a.scheme+"www.youtube.com/player_api";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c),this.isIframeStarted=!0}},iframeQueue:[],enqueueIframe:function(a){this.isLoaded?this.createIframe(a):(this.loadIframeApi(a),this.iframeQueue.push(a))},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,{height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0,wmode:"transparent"},events:{onReady:function(d){c.setVideoSize=function(a,b){c.setSize(a,b)},a.pluginMediaElement.pluginApi=c,a.pluginMediaElement.pluginElement=document.getElementById(a.containerId),b.success(b,b.pluginElement),mejs.YouTubeApi.createEvent(c,b,"canplay"),setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250),"undefined"!=typeof b.attributes.autoplay&&c.playVideo()},onStateChange:function(a){mejs.YouTubeApi.handleStateChange(a.data,c,b)}}})},createEvent:function(a,b,c){var d={type:c,target:b};if(a&&a.getDuration){b.currentTime=d.currentTime=a.getCurrentTime(),b.duration=d.duration=a.getDuration(),d.paused=b.paused,d.ended=b.ended,d.muted=a.isMuted(),d.volume=a.getVolume()/100,d.bytesTotal=a.getVideoBytesTotal(),d.bufferedBytes=a.getVideoBytesLoaded();var e=d.bufferedBytes/d.bytesTotal*d.duration;d.target.buffered=d.buffered={start:function(a){return 0},end:function(a){return e},length:1}}b.dispatchEvent(d)},iFrameReady:function(){for(this.isLoaded=!0,this.isIframeLoaded=!0;this.iframeQueue.length>0;){var a=this.iframeQueue.pop();this.createIframe(a)}},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=a;var b,c=a.scheme+"www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";mejs.MediaFeatures.isIE?(b=document.createElement("div"),a.container.appendChild(b),b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+a.scheme+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="'+options.flashScriptAccess+'" /><param name="allowFullScreen" value="true" /></object>'):a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="'+options.flashScriptAccess+'"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c,b.success(d,d.pluginElement),c.cueVideoById(b.videoId);var e=b.containerId+"_callback";window[e]=function(a){mejs.YouTubeApi.handleStateChange(a,c,d)},c.addEventListener("onStateChange",e),setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250),mejs.YouTubeApi.createEvent(c,d,"canplay")},handleStateChange:function(a,b,c){switch(a){case-1:c.paused=!0,c.ended=!0,mejs.YouTubeApi.createEvent(b,c,"loadedmetadata");break;case 0:c.paused=!1,c.ended=!0,mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=!1,c.ended=!1,mejs.YouTubeApi.createEvent(b,c,"play"),mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=!0,c.ended=!1,mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress");break;case 5:}}},window.onYouTubePlayerAPIReady=function(){mejs.YouTubeApi.iFrameReady()},window.onYouTubePlayerReady=function(a){mejs.YouTubeApi.flashReady(a)},window.mejs=mejs,window.MediaElement=mejs.MediaElement,function(a,b,c){"use strict";var d={locale:{language:b.i18n&&b.i18n.locale.language||"",strings:b.i18n&&b.i18n.locale.strings||{}},ietf_lang_regex:/^(x\-)?[a-z]{2,}(\-\w{2,})?(\-\w{2,})?$/,methods:{}};d.getLanguage=function(){var a=d.locale.language||window.navigator.userLanguage||window.navigator.language;return d.ietf_lang_regex.exec(a)?a:null},"undefined"!=typeof mejsL10n&&(d.locale.language=mejsL10n.language),d.methods.checkPlain=function(a){var b,c,d={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};a=String(a);for(b in d)d.hasOwnProperty(b)&&(c=new RegExp(b,"g"),a=a.replace(c,d[b]));return a},d.methods.t=function(a,b){return d.locale.strings&&d.locale.strings[b.context]&&d.locale.strings[b.context][a]&&(a=d.locale.strings[b.context][a]),d.methods.checkPlain(a)},d.t=function(a,b){if("string"==typeof a&&a.length>0){var c=d.getLanguage();return b=b||{context:c},d.methods.t(a,b)}throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."}},b.i18n=d}(document,mejs),function(a,b){"use strict";"undefined"!=typeof mejsL10n&&(a[mejsL10n.language]=mejsL10n.strings)}(mejs.i18n.locale.strings),/*!
 *
 * MediaElementPlayer
 * http://mediaelementjs.com/
 *
 * Creates a controller bar for HTML5 <video> add <audio> tags
 * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
 *
 * Copyright 2010-2013, John Dyer (http://j.hn/)
 * License: MIT
 *
 */
"undefined"!=typeof jQuery?mejs.$=jQuery:"undefined"!=typeof Zepto?(mejs.$=Zepto,Zepto.fn.outerWidth=function(a){var b=$(this).width();return a&&(b+=parseInt($(this).css("margin-right"),10),b+=parseInt($(this).css("margin-left"),10)),b}):"undefined"!=typeof ender&&(mejs.$=ender),function(a){mejs.MepDefaults={poster:"",showPosterWhenEnded:!1,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return.05*a.duration},defaultSeekForwardInterval:function(a){return.05*a.duration},setDimensions:!0,audioWidth:-1,audioHeight:-1,startVolume:.8,loop:!1,autoRewind:!0,enableAutosize:!0,timeFormat:"",alwaysShowHours:!1,showTimecodeFrameCount:!1,framesPerSecond:25,autosizeProgress:!0,alwaysShowControls:!1,hideVideoControlsOnLoad:!1,clickToPlayPause:!0,controlsTimeoutDefault:1500,controlsTimeoutMouseEnter:2500,controlsTimeoutMouseLeave:1e3,iPadUseNativeControls:!1,iPhoneUseNativeControls:!1,AndroidUseNativeControls:!1,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:!0,stretching:"auto",enableKeyboard:!0,pauseOtherPlayers:!0,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?b.play():b.pause()}},{keys:[38],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block"),a.isVideo&&(a.showControls(),a.startControlsTimer());var c=Math.min(b.volume+.1,1);b.setVolume(c)}},{keys:[40],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block"),a.isVideo&&(a.showControls(),a.startControlsTimer());var c=Math.max(b.volume-.1,0);b.setVolume(c)}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){a.isVideo&&(a.showControls(),a.startControlsTimer());var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){a.isVideo&&(a.showControls(),a.startControlsTimer());var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a,b){"undefined"!=typeof a.enterFullScreen&&(a.isFullScreen?a.exitFullScreen():a.enterFullScreen())}},{keys:[77],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block"),a.isVideo&&(a.showControls(),a.startControlsTimer()),a.media.muted?a.setMuted(!1):a.setMuted(!0)}}]},mejs.mepIndex=0,mejs.players={},mejs.MediaElementPlayer=function(b,c){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(b,c);var d=this;return d.$media=d.$node=a(b),d.node=d.media=d.$media[0],d.node?"undefined"!=typeof d.node.player?d.node.player:("undefined"==typeof c&&(c=d.$node.data("mejsoptions")),d.options=a.extend({},mejs.MepDefaults,c),d.options.timeFormat||(d.options.timeFormat="mm:ss",d.options.alwaysShowHours&&(d.options.timeFormat="hh:mm:ss"),d.options.showTimecodeFrameCount&&(d.options.timeFormat+=":ff")),mejs.Utility.calculateTimeFormat(0,d.options,d.options.framesPerSecond||25),d.id="mep_"+mejs.mepIndex++,mejs.players[d.id]=d,d.init(),d):void 0},mejs.MediaElementPlayer.prototype={hasFocus:!1,controlsAreVisible:!0,init:function(){var b=this,c=mejs.MediaFeatures,d=a.extend(!0,{},b.options,{success:function(a,c){b.meReady(a,c)},error:function(a){b.handleError(a)}}),e=b.media.tagName.toLowerCase();if(b.isDynamic="audio"!==e&&"video"!==e,b.isDynamic?b.isVideo=b.options.isVideo:b.isVideo="audio"!==e&&b.options.isVideo,c.isiPad&&b.options.iPadUseNativeControls||c.isiPhone&&b.options.iPhoneUseNativeControls)b.$media.attr("controls","controls"),c.isiPad&&null!==b.media.getAttribute("autoplay")&&b.play();else if(c.isAndroid&&b.options.AndroidUseNativeControls);else{b.$media.removeAttr("controls");var f=b.isVideo?mejs.i18n.t("Video Player"):mejs.i18n.t("Audio Player");a('<span class="mejs-offscreen">'+f+"</span>").insertBefore(b.$media),b.container=a('<div id="'+b.id+'" class="mejs-container '+(mejs.MediaFeatures.svgAsImg?"svg":"no-svg")+'" tabindex="0" role="application" aria-label="'+f+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(b.$media[0].className).insertBefore(b.$media).focus(function(a){if(!b.controlsAreVisible&&!b.hasFocus&&b.controlsEnabled&&(b.showControls(!0),!b.hasMsNativeFullScreen)){var c=b.container.find(".mejs-playpause-button > button");c.focus()}}),"fill"!==b.options.stretching||b.container.parent("mejs-fill-container").length||(b.outerContainer=b.$media.parent(),b.container.wrap('<div class="mejs-fill-container"/>')),b.container.addClass((c.isAndroid?"mejs-android ":"")+(c.isiOS?"mejs-ios ":"")+(c.isiPad?"mejs-ipad ":"")+(c.isiPhone?"mejs-iphone ":"")+(b.isVideo?"mejs-video ":"mejs-audio ")),b.container.find(".mejs-mediaelement").append(b.$media),b.node.player=b,b.controls=b.container.find(".mejs-controls"),b.layers=b.container.find(".mejs-layers");var g=b.isVideo?"video":"audio",h=g.substring(0,1).toUpperCase()+g.substring(1);b.options[g+"Width"]>0||b.options[g+"Width"].toString().indexOf("%")>-1?b.width=b.options[g+"Width"]:""!==b.media.style.width&&null!==b.media.style.width?b.width=b.media.style.width:null!==b.media.getAttribute("width")?b.width=b.$media.attr("width"):b.width=b.options["default"+h+"Width"],b.options[g+"Height"]>0||b.options[g+"Height"].toString().indexOf("%")>-1?b.height=b.options[g+"Height"]:""!==b.media.style.height&&null!==b.media.style.height?b.height=b.media.style.height:null!==b.$media[0].getAttribute("height")?b.height=b.$media.attr("height"):b.height=b.options["default"+h+"Height"],b.setPlayerSize(b.width,b.height),d.pluginWidth=b.width,d.pluginHeight=b.height}mejs.MediaElement(b.$media[0],d),"undefined"!=typeof b.container&&b.controlsAreVisible&&b.container.trigger("controlsshown")},showControls:function(a){var b=this;a="undefined"==typeof a||a,b.controlsAreVisible||(a?(b.controls.removeClass("mejs-offscreen").stop(!0,!0).fadeIn(200,function(){b.controlsAreVisible=!0,b.container.trigger("controlsshown")}),b.container.find(".mejs-control").removeClass("mejs-offscreen").stop(!0,!0).fadeIn(200,function(){b.controlsAreVisible=!0})):(b.controls.removeClass("mejs-offscreen").css("display","block"),b.container.find(".mejs-control").removeClass("mejs-offscreen").css("display","block"),b.controlsAreVisible=!0,b.container.trigger("controlsshown")),b.setControlsSize())},hideControls:function(b){var c=this;b="undefined"==typeof b||b,!c.controlsAreVisible||c.options.alwaysShowControls||c.keyboardAction||c.media.paused||c.media.ended||(b?(c.controls.stop(!0,!0).fadeOut(200,function(){a(this).addClass("mejs-offscreen").css("display","block"),c.controlsAreVisible=!1,c.container.trigger("controlshidden")}),c.container.find(".mejs-control").stop(!0,!0).fadeOut(200,function(){a(this).addClass("mejs-offscreen").css("display","block")})):(c.controls.addClass("mejs-offscreen").css("display","block"),c.container.find(".mejs-control").addClass("mejs-offscreen").css("display","block"),c.controlsAreVisible=!1,c.container.trigger("controlshidden")))},controlsTimer:null,startControlsTimer:function(a){var b=this;a="undefined"!=typeof a?a:b.options.controlsTimeoutDefault,b.killControlsTimer("start"),b.controlsTimer=setTimeout(function(){b.hideControls(),b.killControlsTimer("hide")},a)},killControlsTimer:function(a){var b=this;null!==b.controlsTimer&&(clearTimeout(b.controlsTimer),delete b.controlsTimer,b.controlsTimer=null)},controlsEnabled:!0,disableControls:function(){var a=this;a.killControlsTimer(),a.hideControls(!1),this.controlsEnabled=!1},enableControls:function(){var a=this;a.showControls(!1),a.controlsEnabled=!0},meReady:function(b,c){var d,e,f=this,g=mejs.MediaFeatures,h=c.getAttribute("autoplay"),i=!("undefined"==typeof h||null===h||"false"===h);if(!f.created){if(f.created=!0,f.media=b,f.domNode=c,!(g.isAndroid&&f.options.AndroidUseNativeControls||g.isiPad&&f.options.iPadUseNativeControls||g.isiPhone&&f.options.iPhoneUseNativeControls)){f.buildposter(f,f.controls,f.layers,f.media),f.buildkeyboard(f,f.controls,f.layers,f.media),f.buildoverlays(f,f.controls,f.layers,f.media),f.findTracks();for(d in f.options.features)if(e=f.options.features[d],f["build"+e])try{f["build"+e](f,f.controls,f.layers,f.media)}catch(j){}f.container.trigger("controlsready"),f.setPlayerSize(f.width,f.height),f.setControlsSize(),f.isVideo&&(mejs.MediaFeatures.hasTouch&&!f.options.alwaysShowControls?f.$media.bind("touchstart",function(){f.controlsAreVisible?f.hideControls(!1):f.controlsEnabled&&f.showControls(!1)}):(f.clickToPlayPauseCallback=function(){if(f.options.clickToPlayPause){f.media.paused?f.play():f.pause();var a=f.$media.closest(".mejs-container").find(".mejs-overlay-button"),b=a.attr("aria-pressed");a.attr("aria-pressed",!b)}},f.media.addEventListener("click",f.clickToPlayPauseCallback,!1),f.container.bind("mouseenter",function(){f.controlsEnabled&&(f.options.alwaysShowControls||(f.killControlsTimer("enter"),f.showControls(),f.startControlsTimer(f.options.controlsTimeoutMouseEnter)))}).bind("mousemove",function(){f.controlsEnabled&&(f.controlsAreVisible||f.showControls(),f.options.alwaysShowControls||f.startControlsTimer(f.options.controlsTimeoutMouseEnter))}).bind("mouseleave",function(){f.controlsEnabled&&(f.media.paused||f.options.alwaysShowControls||f.startControlsTimer(f.options.controlsTimeoutMouseLeave))})),f.options.hideVideoControlsOnLoad&&f.hideControls(!1),i&&!f.options.alwaysShowControls&&f.hideControls(),f.options.enableAutosize&&f.media.addEventListener("loadedmetadata",function(a){f.options.videoHeight<=0&&null===f.domNode.getAttribute("height")&&!isNaN(a.target.videoHeight)&&(f.setPlayerSize(a.target.videoWidth,a.target.videoHeight),f.setControlsSize(),f.media.setVideoSize(a.target.videoWidth,a.target.videoHeight))},!1)),f.media.addEventListener("play",function(){var a;for(a in mejs.players){var b=mejs.players[a];b.id==f.id||!f.options.pauseOtherPlayers||b.paused||b.ended||b.pause(),b.hasFocus=!1}f.hasFocus=!0},!1),f.media.addEventListener("ended",function(b){if(f.options.autoRewind)try{f.media.setCurrentTime(0),window.setTimeout(function(){a(f.container).find(".mejs-overlay-loading").parent().hide()},20)}catch(c){}f.media.pause(),f.setProgressRail&&f.setProgressRail(),f.setCurrentRail&&f.setCurrentRail(),f.options.loop?f.play():!f.options.alwaysShowControls&&f.controlsEnabled&&f.showControls()},!1),f.media.addEventListener("loadedmetadata",function(){mejs.Utility.calculateTimeFormat(f.duration,f.options,f.options.framesPerSecond||25),f.updateDuration&&f.updateDuration(),f.updateCurrent&&f.updateCurrent(),f.isFullScreen||(f.setPlayerSize(f.width,f.height),f.setControlsSize())},!1);var k=null;f.media.addEventListener("timeupdate",function(){k!==this.duration&&(k=this.duration,mejs.Utility.calculateTimeFormat(k,f.options,f.options.framesPerSecond||25),f.updateDuration&&f.updateDuration(),f.updateCurrent&&f.updateCurrent(),f.setControlsSize())},!1),f.container.focusout(function(b){if(b.relatedTarget){var c=a(b.relatedTarget);f.keyboardAction&&0===c.parents(".mejs-container").length&&(f.keyboardAction=!1,f.isVideo&&!f.options.alwaysShowControls&&f.hideControls(!0))}}),setTimeout(function(){f.setPlayerSize(f.width,f.height),f.setControlsSize()},50),f.globalBind("resize",function(){f.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||f.setPlayerSize(f.width,f.height),f.setControlsSize()}),"youtube"==f.media.pluginType&&(g.isiOS||g.isAndroid)&&(f.container.find(".mejs-overlay-play").hide(),f.container.find(".mejs-poster").hide())}i&&"native"==b.pluginType&&f.play(),f.options.success&&("string"==typeof f.options.success?window[f.options.success](f.media,f.domNode,f):f.options.success(f.media,f.domNode,f))}},handleError:function(a){var b=this;b.controls&&b.controls.hide(),b.options.error&&b.options.error(a)},setPlayerSize:function(a,b){var c=this;if(!c.options.setDimensions)return!1;switch("undefined"!=typeof a&&(c.width=a),"undefined"!=typeof b&&(c.height=b),c.options.stretching){case"fill":c.isVideo?this.setFillMode():this.setDimensions(c.width,c.height);break;case"responsive":this.setResponsiveMode();break;case"none":this.setDimensions(c.width,c.height);break;default:this.hasFluidMode()===!0?this.setResponsiveMode():this.setDimensions(c.width,c.height)}},hasFluidMode:function(){var a=this;return a.height.toString().indexOf("%")>0||"none"!==a.$node.css("max-width")&&"t.width"!==a.$node.css("max-width")||a.$node[0].currentStyle&&"100%"===a.$node[0].currentStyle.maxWidth},setResponsiveMode:function(){var b=this,c=function(){return b.isVideo?b.media.videoWidth&&b.media.videoWidth>0?b.media.videoWidth:null!==b.media.getAttribute("width")?b.media.getAttribute("width"):b.options.defaultVideoWidth:b.options.defaultAudioWidth}(),d=function(){return b.isVideo?b.media.videoHeight&&b.media.videoHeight>0?b.media.videoHeight:null!==b.media.getAttribute("height")?b.media.getAttribute("height"):b.options.defaultVideoHeight:b.options.defaultAudioHeight}(),e=b.container.parent().closest(":visible").width(),f=b.container.parent().closest(":visible").height(),g=b.isVideo||!b.options.autosizeProgress?parseInt(e*d/c,10):d;(isNaN(g)||0!==f&&g>f&&f>d)&&(g=f),b.container.parent().length>0&&"body"===b.container.parent()[0].tagName.toLowerCase()&&(e=a(window).width(),g=a(window).height()),g&&e&&(b.container.width(e).height(g),b.$media.add(b.container.find(".mejs-shim")).width("100%").height("100%"),b.isVideo&&b.media.setVideoSize&&b.media.setVideoSize(e,g),b.layers.children(".mejs-layer").width("100%").height("100%"))},setFillMode:function(){var a=this,b=a.outerContainer;b.width()||b.height(a.$media.width()),b.height()||b.height(a.$media.height());var c=b.width(),d=b.height();a.setDimensions("100%","100%"),a.container.find(".mejs-poster img").css("display","block"),targetElement=a.container.find("object, embed, iframe, video");var e=a.height,f=a.width,g=c,h=e*c/f,i=f*d/e,j=d,k=!(i>c),l=k?Math.floor(g):Math.floor(i),m=k?Math.floor(h):Math.floor(j);k?(targetElement.height(m).width(c),a.media.setVideoSize&&a.media.setVideoSize(c,m)):(targetElement.height(d).width(l),a.media.setVideoSize&&a.media.setVideoSize(l,d)),targetElement.css({"margin-left":Math.floor((c-l)/2),"margin-top":0})},setDimensions:function(a,b){var c=this;c.container.width(a).height(b),c.layers.children(".mejs-layer").width(a).height(b)},setControlsSize:function(){var b=this,c=0,d=0,e=b.controls.find(".mejs-time-rail"),f=b.controls.find(".mejs-time-total"),g=e.siblings(),h=g.last(),i=null;if(b.container.is(":visible")&&e.length&&e.is(":visible")){b.options&&!b.options.autosizeProgress&&(d=parseInt(e.css("width"),10)),0!==d&&d||(g.each(function(){var b=a(this);"absolute"!=b.css("position")&&b.is(":visible")&&(c+=a(this).outerWidth(!0))}),d=b.controls.width()-c-(e.outerWidth(!0)-e.width()));do e.width(d),f.width(d-(f.outerWidth(!0)-f.width())),"absolute"!=h.css("position")&&(i=h.length?h.position():null,d--);while(null!==i&&i.top.toFixed(2)>0&&d>0);b.container.trigger("controlsresize")}},buildposter:function(b,c,d,e){var f=this,g=a('<div class="mejs-poster mejs-layer"></div>').appendTo(d),h=b.$media.attr("poster");""!==b.options.poster&&(h=b.options.poster),h?f.setPoster(h):g.hide(),e.addEventListener("play",function(){g.hide()},!1),b.options.showPosterWhenEnded&&b.options.autoRewind&&e.addEventListener("ended",function(){g.show()},!1)},setPoster:function(b){var c=this,d=c.container.find(".mejs-poster"),e=d.find("img");0===e.length&&(e=a('<img width="100%" height="100%" alt="" />').appendTo(d)),e.attr("src",b),d.css({"background-image":"url("+b+")"})},buildoverlays:function(b,c,d,e){var f=this;if(b.isVideo){var g=a('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(d),h=a('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(d),i=a('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button" role="button" aria-label="'+mejs.i18n.t("Play")+'" aria-pressed="false"></div></div>').appendTo(d).bind("click",function(){if(f.options.clickToPlayPause){e.paused&&e.play();var b=a(this).find(".mejs-overlay-button"),c=b.attr("aria-pressed");b.attr("aria-pressed",!!c)}});e.addEventListener("play",function(){i.hide(),g.hide(),c.find(".mejs-time-buffering").hide(),h.hide()},!1),e.addEventListener("playing",function(){i.hide(),g.hide(),c.find(".mejs-time-buffering").hide(),h.hide()},!1),e.addEventListener("seeking",function(){g.show(),c.find(".mejs-time-buffering").show()},!1),e.addEventListener("seeked",function(){g.hide(),c.find(".mejs-time-buffering").hide()},!1),e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||i.show()},!1),e.addEventListener("waiting",function(){g.show(),c.find(".mejs-time-buffering").show()},!1),e.addEventListener("loadeddata",function(){g.show(),c.find(".mejs-time-buffering").show(),mejs.MediaFeatures.isAndroid&&(e.canplayTimeout=window.setTimeout(function(){if(document.createEvent){var a=document.createEvent("HTMLEvents");return a.initEvent("canplay",!0,!0),e.dispatchEvent(a)}},300))},!1),e.addEventListener("canplay",function(){g.hide(),c.find(".mejs-time-buffering").hide(),clearTimeout(e.canplayTimeout)},!1),e.addEventListener("error",function(a){f.handleError(a),g.hide(),i.hide(),h.show(),h.find(".mejs-overlay-error").html("Error loading this resource")},!1),e.addEventListener("keydown",function(a){f.onkeydown(b,e,a)},!1)}},buildkeyboard:function(b,c,d,e){var f=this;f.container.keydown(function(){f.keyboardAction=!0}),f.globalBind("keydown",function(c){return b.hasFocus=0!==a(c.target).closest(".mejs-container").length&&a(c.target).closest(".mejs-container").attr("id")===b.$media.closest(".mejs-container").attr("id"),f.onkeydown(b,e,c)}),f.globalBind("click",function(c){b.hasFocus=0!==a(c.target).closest(".mejs-container").length})},onkeydown:function(a,b,c){if(a.hasFocus&&a.options.enableKeyboard)for(var d=0,e=a.options.keyActions.length;e>d;d++)for(var f=a.options.keyActions[d],g=0,h=f.keys.length;h>g;g++)if(c.keyCode==f.keys[g])return"function"==typeof c.preventDefault&&c.preventDefault(),f.action(a,b,c.keyCode,c),!1;return!0},findTracks:function(){var b=this,c=b.$media.find("track");b.tracks=[],c.each(function(c,d){d=a(d),b.tracks.push({srclang:d.attr("srclang")?d.attr("srclang").toLowerCase():"",src:d.attr("src"),kind:d.attr("kind"),label:d.attr("label")||"",entries:[],isLoaded:!1})})},changeSkin:function(a){this.container[0].className="mejs-container "+a,this.setPlayerSize(this.width,this.height),this.setControlsSize()},play:function(){this.load(),this.media.play()},pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.isLoaded||this.media.load(),this.isLoaded=!0},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},setSrc:function(a){var b=this;if("youtube"===b.media.pluginType){var c;if("string"!=typeof a){var d,e;for(d=0;d<a.length;d++)if(e=a[d],this.canPlayType(e.type)){a=e.src;break}}if(-1!==a.lastIndexOf("youtu.be"))c=a.substr(a.lastIndexOf("/")+1),-1!==c.indexOf("?")&&(c=c.substr(0,c.indexOf("?")));else{var f=a.match(/[?&]v=([^&#]+)|&|#|$/);f&&(c=f[1])}null!==b.media.getAttribute("autoplay")?b.media.pluginApi.loadVideoById(c):b.media.pluginApi.cueVideoById(c)}else b.media.setSrc(a)},remove:function(){var a,b,c=this;c.container.prev(".mejs-offscreen").remove();for(a in c.options.features)if(b=c.options.features[a],c["clean"+b])try{c["clean"+b](c)}catch(d){}c.isDynamic?c.$node.insertBefore(c.container):(c.$media.prop("controls",!0),c.$node.clone().insertBefore(c.container).show(),c.$node.remove()),"native"!==c.media.pluginType&&c.media.remove(),delete mejs.players[c.id],"object"==typeof c.container&&c.container.remove(),c.globalUnbind(),delete c.node.player},rebuildtracks:function(){var a=this;a.findTracks(),a.buildtracks(a,a.controls,a.layers,a.media)},resetSize:function(){var a=this;setTimeout(function(){a.setPlayerSize(a.width,a.height),a.setControlsSize()},50)}},function(){function b(b,d){var e={d:[],w:[]};return a.each((b||"").split(" "),function(a,b){var f=b+"."+d;0===f.indexOf(".")?(e.d.push(f),e.w.push(f)):e[c.test(b)?"w":"d"].push(f)}),e.d=e.d.join(" "),e.w=e.w.join(" "),e}var c=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,d,e){var f=this,g=f.node?f.node.ownerDocument:document;c=b(c,f.id),c.d&&a(g).bind(c.d,d,e),c.w&&a(window).bind(c.w,d,e)},mejs.MediaElementPlayer.prototype.globalUnbind=function(c,d){var e=this,f=e.node?e.node.ownerDocument:document;c=b(c,e.id),c.d&&a(f).unbind(c.d,d),c.w&&a(window).unbind(c.w,d)}}(),"undefined"!=typeof a&&(a.fn.mediaelementplayer=function(b){return b===!1?this.each(function(){var b=a(this).data("mediaelementplayer");b&&b.remove(),a(this).removeData("mediaelementplayer")}):this.each(function(){a(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,b))}),this},a(document).ready(function(){a(".mejs-player").mediaelementplayer()})),window.MediaElementPlayer=mejs.MediaElementPlayer}(mejs.$),function(a){a.extend(mejs.MepDefaults,{playText:mejs.i18n.t("Play"),pauseText:mejs.i18n.t("Pause")}),a.extend(MediaElementPlayer.prototype,{buildplaypause:function(b,c,d,e){function f(a){"play"===a?(i.removeClass("mejs-play").addClass("mejs-pause"),j.attr({title:h.pauseText,"aria-label":h.pauseText})):(i.removeClass("mejs-pause").addClass("mejs-play"),j.attr({title:h.playText,"aria-label":h.playText}))}var g=this,h=g.options,i=a('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+g.id+'" title="'+h.playText+'" aria-label="'+h.playText+'"></button></div>').appendTo(c).click(function(a){return a.preventDefault(),e.paused?e.play():e.pause(),!1}),j=i.find("button");f("pse"),e.addEventListener("play",function(){f("play")},!1),e.addEventListener("playing",function(){f("play")},!1),e.addEventListener("pause",function(){f("pse")},!1),e.addEventListener("paused",function(){f("pse")},!1)}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{stopText:"Stop"}),a.extend(MediaElementPlayer.prototype,{buildstop:function(b,c,d,e){var f=this;a('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+f.id+'" title="'+f.options.stopText+'" aria-label="'+f.options.stopText+'"></button></div>').appendTo(c).click(function(){e.paused||e.pause(),e.currentTime>0&&(e.setCurrentTime(0),e.pause(),c.find(".mejs-time-current").width("0px"),c.find(".mejs-time-handle").css("left","0px"),c.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0,b.options)),c.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0,b.options)),d.find(".mejs-poster").show())})}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{enableProgressTooltip:!0,progressHelpText:mejs.i18n.t("Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.")}),a.extend(MediaElementPlayer.prototype,{buildprogress:function(b,c,d,e){var f=this,g=!1,h=!1,i=0,j=!1,k=b.options.autoRewind,l=b.options.enableProgressTooltip?'<span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span>':"";a('<div class="mejs-time-rail"><span  class="mejs-time-total mejs-time-slider"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span>'+l+"</span></div>").appendTo(c),c.find(".mejs-time-buffering").hide(),f.total=c.find(".mejs-time-total"),f.loaded=c.find(".mejs-time-loaded"),f.current=c.find(".mejs-time-current"),f.handle=c.find(".mejs-time-handle"),f.timefloat=c.find(".mejs-time-float"),f.timefloatcurrent=c.find(".mejs-time-float-current"),f.slider=c.find(".mejs-time-slider");var m=function(a){var c,d=f.total.offset(),h=f.total.width(),i=0,j=0,k=0;c=a.originalEvent&&a.originalEvent.changedTouches?a.originalEvent.changedTouches[0].pageX:a.changedTouches?a.changedTouches[0].pageX:a.pageX,e.duration&&(c<d.left?c=d.left:c>h+d.left&&(c=h+d.left),k=c-d.left,i=k/h,j=.02>=i?0:i*e.duration,g&&j!==e.currentTime&&e.setCurrentTime(j),mejs.MediaFeatures.hasTouch||(f.timefloat.css("left",k),f.timefloatcurrent.html(mejs.Utility.secondsToTimeCode(j,b.options)),f.timefloat.show()))},n=function(a){var c=e.currentTime,d=mejs.i18n.t("Time Slider"),g=mejs.Utility.secondsToTimeCode(c,b.options),h=e.duration;f.slider.attr({"aria-label":d,"aria-valuemin":0,"aria-valuemax":h,"aria-valuenow":c,"aria-valuetext":g,role:"slider",tabindex:0})},o=function(){var a=new Date;a-i>=1e3&&e.play()};f.slider.bind("focus",function(a){b.options.autoRewind=!1}),f.slider.bind("blur",function(a){b.options.autoRewind=k}),f.slider.bind("keydown",function(a){new Date-i>=1e3&&(j=e.paused);var c=a.keyCode,d=e.duration,f=e.currentTime,g=b.options.defaultSeekForwardInterval(e),h=b.options.defaultSeekBackwardInterval(e);switch(c){case 37:case 40:f-=h;break;case 39:case 38:f+=g;break;case 36:f=0;break;case 35:f=d;break;case 32:case 13:return void(e.paused?e.play():e.pause());default:return}return f=0>f?0:f>=d?d:Math.floor(f),i=new Date,j||e.pause(),f<e.duration&&!j&&setTimeout(o,1100),e.setCurrentTime(f),a.preventDefault(),a.stopPropagation(),!1}),f.total.bind("mousedown touchstart",function(a){(1===a.which||0===a.which)&&(g=!0,m(a),f.globalBind("mousemove.dur touchmove.dur",function(a){m(a)}),f.globalBind("mouseup.dur touchend.dur",function(a){g=!1,"undefined"!=typeof f.timefloat&&f.timefloat.hide(),f.globalUnbind(".dur")}))}).bind("mouseenter",function(a){h=!0,f.globalBind("mousemove.dur",function(a){m(a)}),"undefined"==typeof f.timefloat||mejs.MediaFeatures.hasTouch||f.timefloat.show()}).bind("mouseleave",function(a){h=!1,g||(f.globalUnbind(".dur"),"undefined"!=typeof f.timefloat&&f.timefloat.hide())}),e.addEventListener("progress",function(a){b.setProgressRail(a),b.setCurrentRail(a)},!1),e.addEventListener("timeupdate",function(a){b.setProgressRail(a),b.setCurrentRail(a),n(a)},!1),f.container.on("controlsresize",function(a){b.setProgressRail(a),b.setCurrentRail(a)})},setProgressRail:function(a){var b=this,c=void 0!==a?a.target:b.media,d=null;c&&c.buffered&&c.buffered.length>0&&c.buffered.end&&c.duration?d=c.buffered.end(c.buffered.length-1)/c.duration:c&&void 0!==c.bytesTotal&&c.bytesTotal>0&&void 0!==c.bufferedBytes?d=c.bufferedBytes/c.bytesTotal:a&&a.lengthComputable&&0!==a.total&&(d=a.loaded/a.total),null!==d&&(d=Math.min(1,Math.max(0,d)),b.loaded&&b.total&&b.loaded.width(b.total.width()*d))},setCurrentRail:function(){var a=this;if(void 0!==a.media.currentTime&&a.media.duration&&a.total&&a.handle){var b=Math.round(a.total.width()*a.media.currentTime/a.media.duration),c=b-Math.round(a.handle.outerWidth(!0)/2);a.current.width(b),a.handle.css("left",c)}}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:"<span> | </span>"}),a.extend(MediaElementPlayer.prototype,{buildcurrent:function(b,c,d,e){var f=this;a('<div class="mejs-time" role="timer" aria-live="off"><span class="mejs-currenttime">'+mejs.Utility.secondsToTimeCode(0,b.options)+"</span></div>").appendTo(c),f.currenttime=f.controls.find(".mejs-currenttime"),e.addEventListener("timeupdate",function(){f.controlsAreVisible&&b.updateCurrent()},!1)},buildduration:function(b,c,d,e){var f=this;c.children().last().find(".mejs-currenttime").length>0?a(f.options.timeAndDurationSeparator+'<span class="mejs-duration">'+mejs.Utility.secondsToTimeCode(f.options.duration,f.options)+"</span>").appendTo(c.find(".mejs-time")):(c.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container"),a('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+mejs.Utility.secondsToTimeCode(f.options.duration,f.options)+"</span></div>").appendTo(c)),f.durationD=f.controls.find(".mejs-duration"),e.addEventListener("timeupdate",function(){f.controlsAreVisible&&b.updateDuration()},!1)},updateCurrent:function(){var a=this,b=a.media.currentTime;isNaN(b)&&(b=0),a.currenttime&&a.currenttime.html(mejs.Utility.secondsToTimeCode(b,a.options))},updateDuration:function(){var a=this,b=a.media.duration;a.options.duration>0&&(b=a.options.duration),isNaN(b)&&(b=0),a.container.toggleClass("mejs-long-video",b>3600),a.durationD&&b>0&&a.durationD.html(mejs.Utility.secondsToTimeCode(b,a.options))}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{muteText:mejs.i18n.t("Mute Toggle"),allyVolumeControlText:mejs.i18n.t("Use Up/Down Arrow keys to increase or decrease volume."),hideVolumeOnTouchDevices:!0,audioVolume:"horizontal",videoVolume:"vertical"}),a.extend(MediaElementPlayer.prototype,{buildvolume:function(b,c,d,e){if(!mejs.MediaFeatures.isAndroid&&!mejs.MediaFeatures.isiOS||!this.options.hideVolumeOnTouchDevices){var f=this,g=f.isVideo?f.options.videoVolume:f.options.audioVolume,h="horizontal"==g?a('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+f.id+'" title="'+f.options.muteText+'" aria-label="'+f.options.muteText+'"></button></div><a href="javascript:void(0);" class="mejs-horizontal-volume-slider"><span class="mejs-offscreen">'+f.options.allyVolumeControlText+'</span><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></a>').appendTo(c):a('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+f.id+'" title="'+f.options.muteText+'" aria-label="'+f.options.muteText+'"></button><a href="javascript:void(0);" class="mejs-volume-slider"><span class="mejs-offscreen">'+f.options.allyVolumeControlText+'</span><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></a></div>').appendTo(c),i=f.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),j=f.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),k=f.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),l=f.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),m=function(a,b){if(!i.is(":visible")&&"undefined"==typeof b)return i.show(),m(a,!0),void i.hide();a=Math.max(0,a),a=Math.min(a,1),0===a?(h.removeClass("mejs-mute").addClass("mejs-unmute"),h.children("button").attr("title",mejs.i18n.t("Unmute")).attr("aria-label",mejs.i18n.t("Unmute"))):(h.removeClass("mejs-unmute").addClass("mejs-mute"),h.children("button").attr("title",mejs.i18n.t("Mute")).attr("aria-label",mejs.i18n.t("Mute")));var c=j.position();if("vertical"==g){var d=j.height(),e=d-d*a;l.css("top",Math.round(c.top+e-l.height()/2)),k.height(d-e),k.css("top",c.top+e)}else{var f=j.width(),n=f*a;l.css("left",Math.round(c.left+n-l.width()/2)),k.width(Math.round(n))}},n=function(a){var b=null,c=j.offset();if("vertical"===g){var d=j.height(),f=a.pageY-c.top;if(b=(d-f)/d,0===c.top||0===c.left)return}else{var h=j.width(),i=a.pageX-c.left;b=i/h}b=Math.max(0,b),b=Math.min(b,1),m(b),0===b?e.setMuted(!0):e.setMuted(!1),e.setVolume(b)},o=!1,p=!1;h.hover(function(){i.show(),p=!0},function(){p=!1,o||"vertical"!=g||i.hide()});var q=function(a){var b=Math.floor(100*e.volume);i.attr({"aria-label":mejs.i18n.t("Volume Slider"),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":b,"aria-valuetext":b+"%",role:"slider",tabindex:0})};i.bind("mouseover",function(){p=!0}).bind("mousedown",function(a){return n(a),f.globalBind("mousemove.vol",function(a){n(a)}),f.globalBind("mouseup.vol",function(){o=!1,f.globalUnbind(".vol"),p||"vertical"!=g||i.hide()}),o=!0,!1}).bind("keydown",function(a){var b=a.keyCode,c=e.volume;switch(b){case 38:c=Math.min(c+.1,1);break;case 40:c=Math.max(0,c-.1);
break;default:return!0}return o=!1,m(c),e.setVolume(c),!1}),h.find("button").click(function(){e.setMuted(!e.muted)}),h.find("button").bind("focus",function(){i.show()}),e.addEventListener("volumechange",function(a){o||(e.muted?(m(0),h.removeClass("mejs-mute").addClass("mejs-unmute")):(m(e.volume),h.removeClass("mejs-unmute").addClass("mejs-mute"))),q(a)},!1),0===b.options.startVolume&&e.setMuted(!0),"native"===e.pluginType&&e.setVolume(b.options.startVolume),f.container.on("controlsresize",function(){e.muted?(m(0),h.removeClass("mejs-mute").addClass("mejs-unmute")):(m(e.volume),h.removeClass("mejs-unmute").addClass("mejs-mute"))})}}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{usePluginFullScreen:!0,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")}),a.extend(MediaElementPlayer.prototype,{isFullScreen:!1,isNativeFullScreen:!1,isInIframe:!1,fullscreenMode:"",buildfullscreen:function(b,c,d,e){if(b.isVideo){b.isInIframe=window.location!=window.parent.location,e.addEventListener("loadstart",function(){b.detectFullscreenMode()});var f=this,g=null,h=a('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+f.id+'" title="'+f.options.fullscreenText+'" aria-label="'+f.options.fullscreenText+'"></button></div>').appendTo(c).on("click",function(){var a=mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||b.isFullScreen;a?b.exitFullScreen():b.enterFullScreen()}).on("mouseover",function(){if("plugin-hover"==f.fullscreenMode){null!==g&&(clearTimeout(g),delete g);var a=h.offset(),c=b.container.offset();e.positionFullscreenButton(a.left-c.left,a.top-c.top,!0)}}).on("mouseout",function(){"plugin-hover"==f.fullscreenMode&&(null!==g&&(clearTimeout(g),delete g),g=setTimeout(function(){e.hideFullscreenButton()},1500))});if(b.fullscreenBtn=h,f.globalBind("keydown",function(a){27==a.keyCode&&(mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||f.isFullScreen)&&b.exitFullScreen()}),f.normalHeight=0,f.normalWidth=0,mejs.MediaFeatures.hasTrueNativeFullScreen){var i=function(a){b.isFullScreen&&(mejs.MediaFeatures.isFullScreen()?(b.isNativeFullScreen=!0,b.setControlsSize()):(b.isNativeFullScreen=!1,b.exitFullScreen()))};b.globalBind(mejs.MediaFeatures.fullScreenEventName,i)}}},detectFullscreenMode:function(){var a=this,b="",c=mejs.MediaFeatures;return c.hasTrueNativeFullScreen&&"native"===a.media.pluginType?b="native-native":c.hasTrueNativeFullScreen&&"native"!==a.media.pluginType&&!c.hasFirefoxPluginMovingProblem?b="plugin-native":a.usePluginFullScreen?mejs.MediaFeatures.supportsPointerEvents?(b="plugin-click",a.createPluginClickThrough()):b="plugin-hover":b="fullwindow",a.fullscreenMode=b,b},isPluginClickThroughCreated:!1,createPluginClickThrough:function(){var b=this;if(!b.isPluginClickThroughCreated){var c,d,e=!1,f=function(){if(e){for(var a in g)g[a].hide();b.fullscreenBtn.css("pointer-events",""),b.controls.css("pointer-events",""),b.media.removeEventListener("click",b.clickToPlayPauseCallback),e=!1}},g={},h=["top","left","right","bottom"],i=function(){var a=fullscreenBtn.offset().left-b.container.offset().left,d=fullscreenBtn.offset().top-b.container.offset().top,e=fullscreenBtn.outerWidth(!0),f=fullscreenBtn.outerHeight(!0),h=b.container.width(),i=b.container.height();for(c in g)g[c].css({position:"absolute",top:0,left:0});g.top.width(h).height(d),g.left.width(a).height(f).css({top:d}),g.right.width(h-a-e).height(f).css({top:d,left:a+e}),g.bottom.width(h).height(i-f-d).css({top:d+f})};for(b.globalBind("resize",function(){i()}),c=0,d=h.length;d>c;c++)g[h[c]]=a('<div class="mejs-fullscreen-hover" />').appendTo(b.container).mouseover(f).hide();fullscreenBtn.on("mouseover",function(){if(!b.isFullScreen){var a=fullscreenBtn.offset(),d=player.container.offset();media.positionFullscreenButton(a.left-d.left,a.top-d.top,!1),b.fullscreenBtn.css("pointer-events","none"),b.controls.css("pointer-events","none"),b.media.addEventListener("click",b.clickToPlayPauseCallback);for(c in g)g[c].show();i(),e=!0}}),media.addEventListener("fullscreenchange",function(a){b.isFullScreen=!b.isFullScreen,b.isFullScreen?b.media.removeEventListener("click",b.clickToPlayPauseCallback):b.media.addEventListener("click",b.clickToPlayPauseCallback),f()}),b.globalBind("mousemove",function(a){if(e){var c=fullscreenBtn.offset();(a.pageY<c.top||a.pageY>c.top+fullscreenBtn.outerHeight(!0)||a.pageX<c.left||a.pageX>c.left+fullscreenBtn.outerWidth(!0))&&(fullscreenBtn.css("pointer-events",""),b.controls.css("pointer-events",""),e=!1)}}),b.isPluginClickThroughCreated=!0}},cleanfullscreen:function(a){a.exitFullScreen()},containerSizeTimeout:null,enterFullScreen:function(){var b=this;return mejs.MediaFeatures.isiOS&&mejs.MediaFeatures.hasiOSFullScreen&&"function"==typeof b.media.webkitEnterFullscreen?void b.media.webkitEnterFullscreen():(a(document.documentElement).addClass("mejs-fullscreen"),b.normalHeight=b.container.height(),b.normalWidth=b.container.width(),"native-native"===b.fullscreenMode||"plugin-native"===b.fullscreenMode?(mejs.MediaFeatures.requestFullScreen(b.container[0]),b.isInIframe&&setTimeout(function c(){if(b.isNativeFullScreen){var d=.002,e=a(window).width(),f=screen.width,g=Math.abs(f-e),h=f*d;g>h?b.exitFullScreen():setTimeout(c,500)}},1e3)):"fullwindow"==b.fullscreeMode,b.container.addClass("mejs-container-fullscreen").width("100%").height("100%"),b.containerSizeTimeout=setTimeout(function(){b.container.css({width:"100%",height:"100%"}),b.setControlsSize()},500),"native"===b.media.pluginType?b.$media.width("100%").height("100%"):(b.container.find(".mejs-shim").width("100%").height("100%"),setTimeout(function(){var c=a(window),d=c.width(),e=c.height();b.media.setVideoSize(d,e)},500)),b.layers.children("div").width("100%").height("100%"),b.fullscreenBtn&&b.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen"),b.setControlsSize(),b.isFullScreen=!0,b.container.find(".mejs-captions-text").css("font-size",screen.width/b.width*1*100+"%"),b.container.find(".mejs-captions-position").css("bottom","45px"),void b.container.trigger("enteredfullscreen"))},exitFullScreen:function(){var b=this;clearTimeout(b.containerSizeTimeout),mejs.MediaFeatures.hasTrueNativeFullScreen&&(mejs.MediaFeatures.isFullScreen()||b.isFullScreen)&&mejs.MediaFeatures.cancelFullScreen(),a(document.documentElement).removeClass("mejs-fullscreen"),b.container.removeClass("mejs-container-fullscreen").width(b.normalWidth).height(b.normalHeight),"native"===b.media.pluginType?b.$media.width(b.normalWidth).height(b.normalHeight):(b.container.find(".mejs-shim").width(b.normalWidth).height(b.normalHeight),b.media.setVideoSize(b.normalWidth,b.normalHeight)),b.layers.children("div").width(b.normalWidth).height(b.normalHeight),b.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen"),b.setControlsSize(),b.isFullScreen=!1,b.container.find(".mejs-captions-text").css("font-size",""),b.container.find(".mejs-captions-position").css("bottom",""),b.container.trigger("exitedfullscreen")}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{speeds:["2.00","1.50","1.25","1.00","0.75"],defaultSpeed:"1.00",speedChar:"x"}),a.extend(MediaElementPlayer.prototype,{buildspeed:function(b,c,d,e){var f=this;if("native"==f.media.pluginType){for(var g=null,h=null,i=null,j=null,k=[],l=!1,m=0,n=f.options.speeds.length;n>m;m++){var o=f.options.speeds[m];"string"==typeof o?(k.push({name:o+f.options.speedChar,value:o}),o===f.options.defaultSpeed&&(l=!0)):(k.push(o),o.value===f.options.defaultSpeed&&(l=!0))}l||k.push({name:f.options.defaultSpeed+f.options.speedChar,value:f.options.defaultSpeed}),k.sort(function(a,b){return parseFloat(b.value)-parseFloat(a.value)});var p=function(a){for(m=0,n=k.length;n>m;m++)if(k[m].value===a)return k[m].name},q='<div class="mejs-button mejs-speed-button"><button type="button">'+p(f.options.defaultSpeed)+'</button><div class="mejs-speed-selector"><ul>';for(m=0,il=k.length;m<il;m++)j=f.id+"-speed-"+k[m].value,q+='<li><input type="radio" name="speed" value="'+k[m].value+'" id="'+j+'" '+(k[m].value===f.options.defaultSpeed?" checked":"")+' /><label for="'+j+'" '+(k[m].value===f.options.defaultSpeed?' class="mejs-speed-selected"':"")+">"+k[m].name+"</label></li>";q+="</ul></div></div>",g=a(q).appendTo(c),h=g.find(".mejs-speed-selector"),i=f.options.defaultSpeed,e.addEventListener("loadedmetadata",function(a){i&&(e.playbackRate=parseFloat(i))},!0),h.on("click",'input[type="radio"]',function(){var b=a(this).attr("value");i=b,e.playbackRate=parseFloat(b),g.find("button").html(p(b)),g.find(".mejs-speed-selected").removeClass("mejs-speed-selected"),g.find('input[type="radio"]:checked').next().addClass("mejs-speed-selected")}),g.one("mouseenter focusin",function(){h.height(g.find(".mejs-speed-selector ul").outerHeight(!0)+g.find(".mejs-speed-translations").outerHeight(!0)).css("top",-1*h.height()+"px")})}}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),tracksAriaLive:!1,hideCaptionsButtonWhenEmpty:!0,toggleCaptionsButtonWhenOnlyOne:!1,slidesSelector:""}),a.extend(MediaElementPlayer.prototype,{hasChapters:!1,cleartracks:function(a,b,c,d){a&&(a.captions&&a.captions.remove(),a.chapters&&a.chapters.remove(),a.captionsText&&a.captionsText.remove(),a.captionsButton&&a.captionsButton.remove())},buildtracks:function(b,c,d,e){if(0!==b.tracks.length){var f,g,h=this,i=h.options.tracksAriaLive?'role="log" aria-live="assertive" aria-atomic="false"':"";if(h.domNode.textTracks)for(f=h.domNode.textTracks.length-1;f>=0;f--)h.domNode.textTracks[f].mode="hidden";h.cleartracks(b,c,d,e),b.chapters=a('<div class="mejs-chapters mejs-layer"></div>').prependTo(d).hide(),b.captions=a('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover" '+i+'><span class="mejs-captions-text"></span></div></div>').prependTo(d).hide(),b.captionsText=b.captions.find(".mejs-captions-text"),b.captionsButton=a('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+h.id+'" title="'+h.options.tracksText+'" aria-label="'+h.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+b.id+'_captions" id="'+b.id+'_captions_none" value="none" checked="checked" /><label for="'+b.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(c);var j=0;for(f=0;f<b.tracks.length;f++)g=b.tracks[f].kind,("subtitles"===g||"captions"===g)&&j++;for(h.options.toggleCaptionsButtonWhenOnlyOne&&1==j?b.captionsButton.on("click",function(){null===b.selectedTrack?lang=b.tracks[0].srclang:lang="none",b.setTrack(lang)}):(b.captionsButton.on("mouseenter focusin",function(){a(this).find(".mejs-captions-selector").removeClass("mejs-offscreen")}).on("click","input[type=radio]",function(){lang=this.value,b.setTrack(lang)}),b.captionsButton.on("mouseleave focusout",function(){a(this).find(".mejs-captions-selector").addClass("mejs-offscreen")})),b.options.alwaysShowControls?b.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):b.container.bind("controlsshown",function(){b.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||b.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")}),b.trackToLoad=-1,b.selectedTrack=null,b.isLoadingTrack=!1,f=0;f<b.tracks.length;f++)g=b.tracks[f].kind,("subtitles"===g||"captions"===g)&&b.addTrackButton(b.tracks[f].srclang,b.tracks[f].label);b.loadNextTrack(),e.addEventListener("timeupdate",function(){b.displayCaptions()},!1),""!==b.options.slidesSelector&&(b.slidesContainer=a(b.options.slidesSelector),e.addEventListener("timeupdate",function(){b.displaySlides()},!1)),e.addEventListener("loadedmetadata",function(){b.displayChapters()},!1),b.container.hover(function(){b.hasChapters&&(b.chapters.removeClass("mejs-offscreen"),b.chapters.fadeIn(200).height(b.chapters.find(".mejs-chapter").outerHeight()))},function(){b.hasChapters&&!e.paused&&b.chapters.fadeOut(200,function(){a(this).addClass("mejs-offscreen"),a(this).css("display","block")})}),h.container.on("controlsresize",function(){h.adjustLanguageBox()}),null!==b.node.getAttribute("autoplay")&&b.chapters.addClass("mejs-offscreen")}},setTrack:function(a){var b,c=this;if("none"==a)c.selectedTrack=null,c.captionsButton.removeClass("mejs-captions-enabled");else for(b=0;b<c.tracks.length;b++)if(c.tracks[b].srclang==a){null===c.selectedTrack&&c.captionsButton.addClass("mejs-captions-enabled"),c.selectedTrack=c.tracks[b],c.captions.attr("lang",c.selectedTrack.srclang),c.displayCaptions();break}},loadNextTrack:function(){var a=this;a.trackToLoad++,a.trackToLoad<a.tracks.length?(a.isLoadingTrack=!0,a.loadTrack(a.trackToLoad)):(a.isLoadingTrack=!1,a.checkForTracks())},loadTrack:function(b){var c=this,d=c.tracks[b],e=function(){d.isLoaded=!0,c.enableTrackButton(d.srclang,d.label),c.loadNextTrack()};a.ajax({url:d.src,dataType:"text",success:function(a){"string"==typeof a&&/<tt\s+xml/gi.exec(a)?d.entries=mejs.TrackFormatParser.dfxp.parse(a):d.entries=mejs.TrackFormatParser.webvtt.parse(a),e(),"chapters"==d.kind&&c.media.addEventListener("play",function(){c.media.duration>0&&c.displayChapters(d)},!1),"slides"==d.kind&&c.setupSlides(d)},error:function(){c.removeTrackButton(d.srclang),c.loadNextTrack()}})},enableTrackButton:function(b,c){var d=this;""===c&&(c=mejs.language.codes[b]||b),d.captionsButton.find("input[value="+b+"]").prop("disabled",!1).siblings("label").html(c),d.options.startLanguage==b&&a("#"+d.id+"_captions_"+b).prop("checked",!0).trigger("click"),d.adjustLanguageBox()},removeTrackButton:function(a){var b=this;b.captionsButton.find("input[value="+a+"]").closest("li").remove(),b.adjustLanguageBox()},addTrackButton:function(b,c){var d=this;""===c&&(c=mejs.language.codes[b]||b),d.captionsButton.find("ul").append(a('<li><input type="radio" name="'+d.id+'_captions" id="'+d.id+"_captions_"+b+'" value="'+b+'" disabled="disabled" /><label for="'+d.id+"_captions_"+b+'">'+c+" (loading)</label></li>")),d.adjustLanguageBox(),d.container.find(".mejs-captions-translations option[value="+b+"]").remove()},adjustLanguageBox:function(){var a=this;a.captionsButton.find(".mejs-captions-selector").height(a.captionsButton.find(".mejs-captions-selector ul").outerHeight(!0)+a.captionsButton.find(".mejs-captions-translations").outerHeight(!0))},checkForTracks:function(){var a=this,b=!1;if(a.options.hideCaptionsButtonWhenEmpty){for(var c=0;c<a.tracks.length;c++){var d=a.tracks[c].kind;if(("subtitles"===d||"captions"===d)&&a.tracks[c].isLoaded){b=!0;break}}b||(a.captionsButton.hide(),a.setControlsSize())}},displayCaptions:function(){if("undefined"!=typeof this.tracks){var a,b=this,c=b.selectedTrack;if(null!==c&&c.isLoaded){for(a=0;a<c.entries.times.length;a++)if(b.media.currentTime>=c.entries.times[a].start&&b.media.currentTime<=c.entries.times[a].stop)return b.captionsText.html(c.entries.text[a]).attr("class","mejs-captions-text "+(c.entries.times[a].identifier||"")),void b.captions.show().height(0);b.captions.hide()}else b.captions.hide()}},setupSlides:function(a){var b=this;b.slides=a,b.slides.entries.imgs=[b.slides.entries.text.length],b.showSlide(0)},showSlide:function(b){if("undefined"!=typeof this.tracks&&"undefined"!=typeof this.slidesContainer){var c=this,d=c.slides.entries.text[b],e=c.slides.entries.imgs[b];"undefined"==typeof e||"undefined"==typeof e.fadeIn?c.slides.entries.imgs[b]=e=a('<img src="'+d+'">').on("load",function(){e.appendTo(c.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()}):e.is(":visible")||e.is(":animated")||e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if("undefined"!=typeof this.slides){var a,b=this,c=b.slides;for(a=0;a<c.entries.times.length;a++)if(b.media.currentTime>=c.entries.times[a].start&&b.media.currentTime<=c.entries.times[a].stop)return void b.showSlide(a)}},displayChapters:function(){var a,b=this;for(a=0;a<b.tracks.length;a++)if("chapters"==b.tracks[a].kind&&b.tracks[a].isLoaded){b.drawChapters(b.tracks[a]),b.hasChapters=!0;break}},drawChapters:function(b){var c,d,e=this,f=0,g=0;for(e.chapters.empty(),c=0;c<b.entries.times.length;c++)d=b.entries.times[c].stop-b.entries.times[c].start,f=Math.floor(d/e.media.duration*100),(f+g>100||c==b.entries.times.length-1&&100>f+g)&&(f=100-g),e.chapters.append(a('<div class="mejs-chapter" rel="'+b.entries.times[c].start+'" style="left: '+g.toString()+"%;width: "+f.toString()+'%;"><div class="mejs-chapter-block'+(c==b.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+b.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(b.entries.times[c].start,e.options)+"&ndash;"+mejs.Utility.secondsToTimeCode(b.entries.times[c].stop,e.options)+"</span></div></div>")),g+=f;e.chapters.find("div.mejs-chapter").click(function(){e.media.setCurrentTime(parseFloat(a(this).attr("rel"))),e.media.paused&&e.media.play()}),e.chapters.show()}}),mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",fl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}},mejs.TrackFormatParser={webvtt:{pattern_timecode:/^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,parse:function(b){for(var c,d,e,f=0,g=mejs.TrackFormatParser.split2(b,/\r?\n/),h={text:[],times:[]};f<g.length;f++){if(c=this.pattern_timecode.exec(g[f]),c&&f<g.length){for(f-1>=0&&""!==g[f-1]&&(e=g[f-1]),f++,d=g[f],f++;""!==g[f]&&f<g.length;)d=d+"\n"+g[f],f++;d=a.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,"<a href='$1' target='_blank'>$1</a>"),h.text.push(d),h.times.push({identifier:e,start:0===mejs.Utility.convertSMPTEtoSeconds(c[1])?.2:mejs.Utility.convertSMPTEtoSeconds(c[1]),stop:mejs.Utility.convertSMPTEtoSeconds(c[3]),settings:c[5]})}e=""}return h}},dfxp:{parse:function(b){b=a(b).filter("tt");var c,d,e=0,f=b.children("div").eq(0),g=f.find("p"),h=b.find("#"+f.attr("style")),i={text:[],times:[]};if(h.length){var j=h.removeAttr("id").get(0).attributes;if(j.length)for(c={},e=0;e<j.length;e++)c[j[e].name.split(":")[1]]=j[e].value}for(e=0;e<g.length;e++){var k,l={start:null,stop:null,style:null};if(g.eq(e).attr("begin")&&(l.start=mejs.Utility.convertSMPTEtoSeconds(g.eq(e).attr("begin"))),!l.start&&g.eq(e-1).attr("end")&&(l.start=mejs.Utility.convertSMPTEtoSeconds(g.eq(e-1).attr("end"))),g.eq(e).attr("end")&&(l.stop=mejs.Utility.convertSMPTEtoSeconds(g.eq(e).attr("end"))),!l.stop&&g.eq(e+1).attr("begin")&&(l.stop=mejs.Utility.convertSMPTEtoSeconds(g.eq(e+1).attr("begin"))),c){k="";for(var m in c)k+=m+":"+c[m]+";"}k&&(l.style=k),0===l.start&&(l.start=.2),i.times.push(l),d=a.trim(g.eq(e).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,"<a href='$1' target='_blank'>$1</a>"),i.text.push(d)}return i}},split2:function(a,b){return a.split(b)}},3!="x\n\ny".split(/\n/gi).length&&(mejs.TrackFormatParser.split2=function(a,b){var c,d=[],e="";for(c=0;c<a.length;c++)e+=a.substring(c,c+1),b.test(e)&&(d.push(e.replace(b,"")),e="");return d.push(e),d})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){return"undefined"==typeof a.enterFullScreen?null:a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(!1):a.setMuted(!0)}},{isSeparator:!0},{render:function(a){return mejs.i18n.t("Download Video")},click:function(a){window.location.href=a.media.currentSrc}}]}),a.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(b,c,d,e){b.contextMenu=a('<div class="mejs-contextmenu"></div>').appendTo(a("body")).hide(),b.container.bind("contextmenu",function(a){return b.isContextMenuEnabled?(a.preventDefault(),b.renderContextMenu(a.clientX-1,a.clientY-1),!1):void 0}),b.container.bind("click",function(){b.contextMenu.hide()}),b.contextMenu.bind("mouseleave",function(){b.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},isContextMenuEnabled:!0,enableContextMenu:function(){this.isContextMenuEnabled=!0},disableContextMenu:function(){this.isContextMenuEnabled=!1},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer(),a.contextMenuTimer=setTimeout(function(){a.hideContextMenu(),a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;null!=a&&(clearTimeout(a),delete a,a=null)},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(b,c){for(var d=this,e="",f=d.options.contextMenuItems,g=0,h=f.length;h>g;g++)if(f[g].isSeparator)e+='<div class="mejs-contextmenu-separator"></div>';else{var i=f[g].render(d);null!=i&&(e+='<div class="mejs-contextmenu-item" data-itemindex="'+g+'" id="element-'+1e6*Math.random()+'">'+i+"</div>")}d.contextMenu.empty().append(a(e)).css({top:c,left:b}).show(),d.contextMenu.find(".mejs-contextmenu-item").each(function(){var b=a(this),c=parseInt(b.data("itemindex"),10),e=d.options.contextMenuItems[c];"undefined"!=typeof e.show&&e.show(b,d),b.click(function(){"undefined"!=typeof e.click&&e.click(d),d.contextMenu.hide()})}),setTimeout(function(){d.killControlsTimer("rev3")},100)}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{skipBackInterval:30,skipBackText:mejs.i18n.t("Skip back %1 seconds")}),a.extend(MediaElementPlayer.prototype,{buildskipback:function(b,c,d,e){var f=this,g=f.options.skipBackText.replace("%1",f.options.skipBackInterval);a('<div class="mejs-button mejs-skip-back-button"><button type="button" aria-controls="'+f.id+'" title="'+g+'" aria-label="'+g+'">'+f.options.skipBackInterval+"</button></div>").appendTo(c).click(function(){e.setCurrentTime(Math.max(e.currentTime-f.options.skipBackInterval,0)),a(this).find("button").blur()})}})}(mejs.$),function(a){a.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")}),a.extend(MediaElementPlayer.prototype,{buildpostroll:function(b,c,d,e){var f=this,g=f.container.find('link[rel="postroll"]').attr("href");"undefined"!=typeof g&&(b.postroll=a('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+f.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(d).hide(),f.media.addEventListener("ended",function(c){a.ajax({dataType:"html",url:g,success:function(a,b){d.find(".mejs-postroll-layer-content").html(a)}}),b.postroll.show()},!1))}})}(mejs.$);media/js/popup-imagemanager.js000064400000017135152177723720012377 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * JImageManager behavior for media component
 *
 * @package		Joomla.Extensions
 * @subpackage	Media
 * @since		1.5
 */

(function ($, doc)
{
	'use strict';

	window.ImageManager = {

		/**
		 * Initialization
		 *
		 * @return  void
		 */
		initialize: function ()
		{
			var o = this.getUriObject(window.self.location.href),
				q = this.getQueryObject(o.query);

			var options = Joomla.getOptions('mediamanager');

			this.author = options.author;
			this.base   = options.base;
			this.asset  = options.asset;
			this.editor = q.e_name;

			// Setup image manager fields object
			this.fields = {
				'url': doc.getElementById("f_url"),
				'alt': doc.getElementById("f_alt"),
				'align': doc.getElementById("f_align"),
				'title': doc.getElementById("f_title"),
				'caption': doc.getElementById("f_caption"),
				'c_class': doc.getElementById("f_caption_class")
			};

			// Setup image listing objects
			this.folderlist = doc.getElementById('folderlist');
			this.frame = window.frames.imageframe;
			this.frameurl = this.frame.location.href;

			// Setup image listing frame
			$('#imageframe').on('load', function ()
			{
				ImageManager.onloadimageview();
			});

			// Setup folder up button
			$('#upbutton').off('click').on('click', function ()
			{
				ImageManager.upFolder();
			});
		},

		/**
		 * Called when the iframe is reloaded.
		 * Updates the form action with the correct folder.
		 * This should really be a hidden input rather than part of the action, no?
		 *
		 * @return  void
		 */
		onloadimageview: function ()
		{
			var folder = this.getImageFolder(),
				$form = $('#uploadForm'),
				portString = '', a, q;

			// Update the frame url
			this.frameurl = this.frame.location.href;
			this.setFolder(folder);

			a = this.getUriObject($form.prop('action'));
			q = this.getQueryObject(a.query);
			q.folder = folder;
			a.query = $.param(q);

			if (typeof (a.port) !== 'undefined' && a.port != 80)
			{
				portString = ':' + a.port;
			}

			$form.prop('action', a.scheme + '://' + a.domain + portString + a.path + '?' + a.query);
		},

		/**
		 * Get the current directory based on the query string of the iframe
		 *
		 * @return  string
		 */
		getImageFolder: function ()
		{
			return this.getQueryObject(this.frame.location.search.substring(1)).folder;
		},

		/**
		 * Called from outside when the 'OK' button (maybe 'insert' or 'submit', whatever) is clicked.
		 *
		 * @return  boolean  Always true
		 */
		onok: function ()
		{
			var tag = '',
				attr = [],
				figclass = '',
				captionclass = '',
			// Get the image tag field information
				url = this.fields.url.value,
				alt = this.fields.alt.value,
				align = this.fields.align.value,
				title = this.fields.title.value,
				caption = this.fields.caption.value,
				c_class = this.fields.c_class.value;

			if (url)
			{
				// Set alt attribute
				attr.push('alt="' + alt + '"');

				// Set align attribute
				if (align && !caption)
				{
					attr.push('class="pull-' + align + '"');
				}

				// Set title attribute
				if (title)
				{
					attr.push('title="' + title + '"');
				}

				tag = '<img src="' + url + '" ' + attr.join(' ') + '/>';

				// Process caption
				if (caption)
				{
					if (align)
					{
						figclass = ' class="pull-' + align + '"';
					}

					if (c_class)
					{
						captionclass = ' class="' + c_class + '"';
					}

					tag = '<figure' + figclass + '>' + tag + '<figcaption' + captionclass + '>' + caption + '</figcaption></figure>';
				}
			}

			/** Use the API, if editor supports it **/
			if (window.Joomla && Joomla.editors.instances.hasOwnProperty(this.editor)) {
				Joomla.editors.instances[editor].replaceSelection(tag)
			} else {
				window.parent.jInsertEditorText(tag, this.editor);
			}

			return true;
		},

		/**
		 * Called from outside when the directory selector is used.
		 *
		 * @param   string  folder  The folder to switch to
		 * @param   mixed   asset   Probably an integer or undefined, optional
		 * @param   mixed   author  Probably an integer or undefined, optional
		 *
		 * @return  void
		 */
		setFolder: function (folder, asset, author)
		{
			for (var i = 0, l = this.folderlist.length; i < l; i++)
			{
				if (folder == this.folderlist.options[i].value)
				{
					this.folderlist.selectedIndex = i;
					$(this.folderlist)
						.trigger('liszt:updated') // Mootools
						.trigger('chosen:updated'); // jQuery

					break;
				}
			}

			if (!!asset || !!author)
			{
				this.setFrameUrl(folder, asset, author);
			}
		},

		/**
		 * Move up one directory
		 *
		 * @return  void
		 */
		upFolder: function ()
		{
			var path = this.folderlist.value.split('/'),
				search;

			path.pop();
			search = path.join('/');

			this.setFolder(search);
			this.setFrameUrl(search, this.asset, this.author);
		},

		/**
		 * Called from outside when a file is selected
		 *
		 * @param   string  file  Relative path to the file.
		 *
		 * @return  void
		 */
		populateFields: function (file)
		{
		    $.each($('a.img-preview', $('#imageframe').contents()), function(i, v) {
			if (v.href == "javascript:ImageManager.populateFields('" + file + "')") {
			    $(v, $('#imageframe').contents()).addClass('selected');
			} else {
			    $(v, $('#imageframe').contents()).removeClass('selected');
			}
		    });

		    $("#f_url").val(this.base + file);
		},

		/**
		 * Not used.
		 * Should display messages. There are none.
		 *
		 * @param   string  text  The message text
		 *
		 * @return  void
		 */
		showMessage: function (text)
		{
			var $message = $('#message');

			$message.find('>:first-child').remove();
			$message.append(text);
			$('#messages').css('display', 'block');
		},

		/**
		 * Not used.
		 * Refreshes the iframe
		 *
		 * @return  void
		 */
		refreshFrame: function ()
		{
			this.frame.location.href = this.frameurl;
		},

		/**
		 * Sets the iframe url, loading a new page. Usually for changing directory.
		 *
		 * @param  string  folder  Relative path to directory
		 * @param  mixed   asset   Probably an integer or undefined, optional
		 * @param  mixed   author  Probably an integer or undefined, optional
		 */
		setFrameUrl: function (folder, asset, author)
		{
			var qs = {
				option: 'com_media',
				view: 'imagesList',
				tmpl: 'component',
				asset: asset,
				author: author,
				folder: folder
			};

			// Don't run folder through params because / will end up double encoded.
			this.frameurl = 'index.php?' + $.param(qs);
			this.frame.location.href = this.frameurl;
		},

		/**
		 * Convert a query string to an object
		 *
		 * @param   string  q  A query string (no leading ?)
		 *
		 * @return  object
		 */
		getQueryObject: function (q)
		{
			var rs = {};

			$.each((q || '').split(/[&;]/), function (key, val)
			{
				var keys = val.split('=');

				rs[ decodeURIComponent(keys[0]) ] = keys.length == 2 ? decodeURIComponent(keys[1]) : null;
			});

			return rs;
		},

		/**
		 * Break a url into its component parts
		 *
		 * @param   string  u  URL
		 *
		 * @return  object
		 */
		getUriObject: function (u)
		{
			var bitsAssociate = {},
				bits = u.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/);

			$.each(['uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment'], function (key, index)
			{
				bitsAssociate[index] = (!!bits && !!bits[key]) ? bits[key] : '';
			});

			return bitsAssociate;
		}
	};

	$(function ()
	{
		window.ImageManager.initialize();
	});

}(jQuery, document));
media/js/mediamanager.min.js000064400000004375152177723720012017 0ustar00!(function(i,l){"use strict";var e=l.MediaManager={initialize:function(){this.folderpath=i("#folderpath"),this.updatepaths=i("input.update-folder"),this.frame=window.frames.folderframe;var t=this;i(this.frame).one("load",(function(e){t.frameurl=t.frame.location.href}))},submit:function(e){var t=this.frame.document.getElementById("mediamanager-form");t.task.value=e,i("#username").length&&(t.username.value=i("#username").val(),t.password.value=i("#password").val()),t.submit()},onloadframe:function(){this.frameurl=this.frame.location.href;var e,t,a=this.getFolder()||"",o=[],r=(function(e){var a={},o=e.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/);return i.each(["uri","scheme","authority","domain","port","path","directory","file","query","fragment"],(function(e,t){a[t]=o&&o[e]?o[e]:""})),a})(i("#uploadForm").prop("action")),n=u(r.query);for(e in this.updatepaths.each((function(e,t){t.value=a})),this.folderpath.value=l.basepath+(a?"/"+a:""),n.folder=a,n)n.hasOwnProperty(e)&&(t=n[e],o.push(encodeURIComponent(e)+(null===t?"":"="+encodeURIComponent(t))));r.query=o.join("&"),r.fragment=null,i("#uploadForm").prop("action",(function(e){return e.scheme+"://"+e.domain+(e.port?":"+e.port:"")+(e.path?e.path:"/")+(e.query?"?"+e.query:"")+(e.fragment?"#"+e.fragment:"")})(r)),i("#"+l.viewstyle).addClass("active")},setViewType:function(e){i("#"+e).addClass("active"),i("#"+l.viewstyle).removeClass("active"),l.viewstyle=e;var t=this.getFolder();t=encodeURIComponent(t),e=encodeURIComponent(e),this.setFrameUrl("index.php?option=com_media&view=mediaList&tmpl=component&folder="+t+"&layout="+e)},refreshFrame:function(){this.setFrameUrl()},getFolder:function(){var e=u(this.frame.location.search.substring(1));return e.folder=void 0===e.folder?"":e.folder,e.folder},setFrameUrl:function(e){null!==e&&(this.frameurl=e),this.frame.location.href=this.frameurl}};function u(e){var o={};return e=e||"",i.each(e.split(/[&;]/),(function(e,t){var a=t.split("=");o[decodeURIComponent(a[0])]=2==a.length?decodeURIComponent(a[1]):null})),o}i((function(){e.initialize(),document.updateUploader=function(){i(e.frame).one("load",(function(){e.onloadframe()}))},document.updateUploader()}))})(jQuery,window);

media/images/con_info.png000064400000001150152177723720011402 0ustar00�PNG


IHDR�a/IDATx}�pQFol۵m۶նm۶mnR�Im��Q�ӷ/�6�7�9�����S�ץ����Ky;�Ƨ�E�ڝŻ�><k�ܫn	��P���`��[~����w�8����2r�3�Ź��[��V�цCu�+r�9/{/~�$H̀�ߒ���	����h�.�m�,�S�ߪ8����/PLNGe���j�Q7���{+'��7��Q��~�7d��`Ė��ٺ8p,��i��@ϋR���y
g��Y-ɚg�$�y
����dI��z��;�>�����:�"�A���dL,�!��_��&��S롇�8t?��4r��P���2X�uY*���!�N�~�c:=
�9d;;�ᨘ4߄��։I1��h�d=�b:�K�7\f0mb�Ix�����$sи&ώk�ƞ���@��Vy�-�8
,G︋q��q�]���G�Iu����%rp)�!�S�5r��H�n�z�Їe�yDn���c�o�-�J�(7�M7'�jz�lJ�T��g��
k���h�:C2�����l=�(!EI�s.~��I�lwELIEND�B`�media/images/folderup_32.png000064400000003206152177723720011740 0ustar00�PNG


IHDR  szz�MIDATx��}T�wǯ������J��HN�P�P7&-���Bn3��a�3�k��CQ�v�-)�T�􄊃��<�&JR!��2����l8W���?�s�>�u�|�������_�)���(�Wi�z�$"�R�7�Bv��3��ͼ��_�r��&�g��6L��0&�A��;��"X��	Ao4C���V�C/�z�,�^�M�`���{� �t"
�&k�&		��cf�`�,�����.��W��FY"��S�K~)����'�h�<^+|f�L1i?��-ROlB޹�6�9�ܒ�����X�c��<���g��
�z��林Ǝc_C}&D�E%�Uš��
�
��xf*"O�`�
t��Zr˕�d�D����	�E�/�S�.���qo���aH=���H��bM�_4FaS�$�߫�UM+D�O)���H|wr6��h��I�z�M�WsX��RN�Fn�Zj�k��|2��)��^?��%�m��E��՘��
�$o��p�>�R��~����O�	W(�/��:�K:�˦��/�ȫ[ձ0�'y�0��B�\��'�W-C�&\���8ts;tI]�m�s��k��<ɛ2t̓��K�`É��L�ԺPd׬�>}{�3쪚�|�2-"O��)Cg��Y�,�4)3�����O�l����hm}}z��D�FƍZ�k?��1(Cg�	��� �%�4,dKa r4��6�����{���7=��8yM���Y��,P���;���=Vȿ3�)k��`C<N4��x�n4>��.�n�Ł�i(>���J�t���A�j��0�
����O���/�C�f2�C@��r�&���y+Gn�@���mGd�b�9#��q�.������}G�IjP������ŭ	7#�y2
Zfi������77\��iX����I��R�E����Ͻ��쉌�P��c�Ef�h�h�������ۆ� o�>��,��e���Ⱦ;J��&�v�h�����s����J�W��fi�
��C��g��G�-��0�f�Xy�ȓ�y/#�ub��mb����P���ܻc�أ�t���_vy�'�U4l�H�[���"�e,�<
�{�(�34��7���� /ޫ�c�{�0k�.	f��`}�=rZ�@U�
�e9��rĔ˱��
ѥn�t�
�#����#�'3�.y��u4w����2��Q+�{�Y�����꾈�sFR��7ȑP炈|r�4C��C��{SɗpC\�
���"Ɣ"�ˤ)׆��fh�v^;P�T��6m����;�_�~�^�zu��*0G<�e�0�u���:�C�h1:����w�u���
���nnn���@����7�x�bGGGA�Ν�fff2�T�^"�t�D�B������-��@ ����1���Ŭ��̆��΃�ݻ��6k���v�3�.b�������������Rbggg�P(��j���
�w�.l߾�T&���p
'2b�v�w�Õ�nhh�����pvʐ332َ=�����>)Ahmm-���|��JNNn`�����ٳ��D:t��2&S2`t`;2:1,	:Si��:�}}�����������F���$�5LLLl�7�Og��l��fIEND�B`�media/images/mime-icon-16/odc.png000064400000001001152177723720012451 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxuR��@�?T���F�=�9�m۶ݗgƶm;/<ɍqf�{�ً	�r�l��I%���2A�P{�Aы>	���?#�T�L���D"P���xX߫����h���*C������A�ȕσw��1��}��u���hO�
�L��ÿ�y�8e��8Qh�LL�2|�˹r�ߏ�C�p���U�@�~�1��=��U�ы_{8~��*Kh P������P��C�(�}	k��������?8�H@��b�Ǔ3��\��ͺ�ϖ�t
d�
!���on�n���u�6m}�v�Ӆ?�ߑo8�LH��0&8>[wp:��W��������߀��K\Q��Z��I쓋N�֟d���~���
�4��)Dt�>��iמ�:�U|}�%��|CXiC0hU�����fp�7�kl�J'H?�����'xYa3�����IEND�B`�media/images/mime-icon-16/zip.png000064400000000772152177723720012524 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx�����p��;۶m۶m�q��wǶ�6�*�W_&���7l�?ϟ���w����L�����^]BYe�ၵ�=����We��֞*�6�����W�|jBsss�ד��-���e��o�8+�|)=����'W�!�7������JV]��/�
��h�Y"Ө�0]�WZ��-O������UZ��kȻ��:[u	�ܘ(���-�ύ�xa����d�{���ڢ�+���3������T��\����N5��� ���,���p��}�6c(%0���uX,l���7�~�_)�8�ⷛ�j@���4�_BN���Ո@��&��\B�G�v�yF�/b6��A&�X�����֯�/v}��i��@�B�
1��'�<����x�x|{s�_�S LJP���Ą!A�g���IEND�B`�media/images/mime-icon-16/odt.png000064400000000633152177723720012504 0ustar00�PNG


IHDR��h6tRNS���7X}PIDATxuRRA�Q<�w�Q�S�����N<�w�;��];7aϻz}|6���ů�W"	&Vu������������Bsh�ޟ���Q�5��������8Y7�����8�vV�,ik�N6P�$��;R6,��A_�PzA�N��P(���p2��1*ڊ�$�ǩ�|YM��'x{{K�?=>X��-�����j�(��=�E�N!������'�D�pvr���=$\!"
E��LpQ��J�*�
�~�CM�ٮ0<X�ݔ�H��IC�V�4�?ъ�l������(
<�O.U.//,U���
�g��9C2�$��9�C�!��,�3�&�IEND�B`�media/images/mime-icon-16/mp3.png000064400000001211152177723720012406 0ustar00�PNG


IHDR�aPIDATx���A�����ڶm3f�*N�:�CT�
�8���m��������f���$;>��
�5��(u����>k֬��FT�B��
<��X4*��x�*k�hM 0jԨI�{�^P0}��zf���Sڣ��.M����7Y��C˦d~~H)��y��%�^}���Da�C���߿���}H �Db4�u�GR&���{"$��s���
 d��=�ѲZ�n���h�߿���Z�H�X,J@�g��<�W��������ƺ�-�2$�'�EJJJx��-�.\d��- #���D̗�
s&K)I$?~���cN�>Mqq����*D�u{+J2��ĉ,Z��Çs��1�N�Z�� dU�����_�z�ϟ?i߾=׮]�]�v���ZkiIֽ�/�|�r���Y�r%C��СC�B͝;���nW��y��=;w��ݻw=z����3z�hl6�F��8Ji��pփ���l����ׯ���3y�d:t������<a<��NL(��߿?�ƍc۶m�b�ҥ8�\.g�FD����T*�l���ɓ''u&��d<��N���t`���ݻw7��\=� 5�;IEND�B`�media/images/mime-icon-16/odd.png000064400000001032152177723720012456 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx}R�[A���QGŨ�m{\�}�mێ��؛=���}��s>��Ź����<E"��b0X�R�1��:��2��gy'h˩���I��%w�kV:�� 6a��#&n7p�VXx_����Ci绢V��)U*�1�j1���7�Q�U�5��;��;.2�%��-,.x$2��v��ڪ��@(�aB ʊ����.mn��<�#'+��"P�G&���f�ap�v�iP2�����mb	�%��ZZg3~�Iy��Ʈ�[
��X�V�jj4J��Ί�W�@7��7�У߿�~���Ο=�i�[Y<v�O@�nUJ
�l�������I�#�eu���HҊ���ѻ��ֵm��'�9Y���(�G� !��_�pu��x�cn!��P�-L���^<}r��q���x�]F=�	DTa.X�M�68�����h�[_��.xgIEND�B`�media/images/mime-icon-16/ppt.png000064400000000664152177723720012525 0ustar00�PNG


IHDR��h6tRNS���7X}iIDATx���ϜA�o6�۰am�A�϶m�g۶mߓ�3'����J�"�\n@ˤ�fP�T�P��*�L��m��c=��Y�Fc*�
5��d�f���A;Q��l�*S�ǢD��u����x<y�a�����c�W�M�ΞB���)�7l>X�f������^lp��s#���|�4;��!��M;睝1b�4�u`4Jh�1D���I�7J�`7�`Z`�f�3��էc����6w�pK��%Ou���w��_��{7����?zHQT�i�a��glC �o0��Ν;����iV0��1�]�A��u�\NX�*B���4�t
)U���
��M�5�P4�D�2d���L�p�IEND�B`�media/images/mime-icon-16/rar.png000064400000000756152177723720012510 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx��w$A����moֶm#�ms<������x���u���߫z�6�s�I��Z�i�[N��#t�
U�2��,}*�1���^�"��P��+��"�Q����^DYCX�`lMwtex�Rm�`�)����X[>�u|�������H9��s�l�:�9���V�#�We�F=y�e6Ҍ�4����e��^�I���:l����Bw2ڝ���}(�֚w�F����~Y�qA���uF0�Lt�Gg��4�|y�q,�.�2�C�RIJ�!��Y[��ڔK�>h+��ߘ0Ci�[D	���E]����|ऄ�ң{�i�]aS���{$��SW
?֪�Ѐ��	^�fV���{�r�L�%���%Օă�����{����}�H
dO"� 1i�ɤ7@IEND�B`�media/images/mime-icon-16/ogg.png000064400000001210152177723720012462 0ustar00�PNG


IHDR�aOIDATx�S5p1}ґ��n����Ϥ��­�
s҅�0�a�.�`f���$Ek��q�7#޷,�����0*++�mܸq��R+e8�����<�BBJ�4����z�22G
.\�rҤI�=-(�yFk����������
��u���koZ)�0�#%�1�h�­�]H1!%ɢ��]���#�aXrW��.j~U"�q�~+p?E
L
�c@�'�`B	򓀂�B)t,tvvu)%�F$˲LDD
�v]��GEe%�O�?�֙$��{�W������j<}�'O��1T
C���A�L�r����������<z������	�*#��3)EOO�߿��;w�֭[�{�.֬Y3,���G�iii����F{{;JKK��[����`D�(�8�Ƚ/^`߾}���0g�ܼyT�-[�P��v%p۶Q[[�.���w���kװh�"PFF|?��)�8�Aww7%K�hnnFzz:V�Z���2A��!%�����;�B`���ҥKq��Yпسgf̘���"j%B����M�4�~��@Š3�tƣ�&���~�;p��ҥK��^=Qq"a�IEND�B`�media/images/mime-icon-16/doc.png000064400000000600152177723720012455 0ustar00�PNG


IHDR(-S�PLTE������������������������������������������ۅ����Н���������礹ǣ�}�����Ʀ�Զ���������ﺄD���������{4��߫����ﳽ����Ѭ�u��}�w��ʵ����د������숱�>cQ�tRNS@��f�IDATx�E�UC1D��?�23�7א�y��0Ʋ+�#����<!ض��������|\m�K�A!J)�i]���"mf��)�8�rӥ"h��@!@	N���	P��p�,�Sa��g7r�4Q��!$�7ƄK�9z@���f�]�	1���IEND�B`�media/images/mime-icon-16/rtf.png000064400000000566152177723720012516 0ustar00�PNG


IHDR(-S�PLTE����������������������������������Ļ�����������}���{4����壛}���v����������������P~������D��������߽�������Ѭ���֐��}�w���د������b4�tRNS@��f�IDATxE��� @a~�!I}ݭv������(����T��־+1�d���G� ���e��<W��Zk|�1��`�D�?�
�QϊH���㚩�� "@����K ����K�ç=� B!�`y�@KK�V�W`7�&u~�	m� IEND�B`�media/images/mime-icon-16/wmv.png000064400000001000152177723720012514 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx���AF'�m۶m۶m�;)Ķm���m��z�n�z��ym�?\NgBȟ~!33S��J"����3��/�K%���	�_��V�Ut��A�����׽͖]��Je�B��d"�*J�/G�~[/=%�9u�#�E��#5��w2�럩h���cI�2Â�f�x`5�F��~���k�P��EjF�a��=)���ǎ�:e��Y�*h2��p>��+�7O�1u�e��K�X�nZ�N�ׯۼ�8��zw�2���/�1z���G�lI��= ��dq�j5F�|b�)�,ӡK���*Waݹ_��Ko=�Y�a͐wk߰b�:�
�I�W��LQ�*!�)Q�\��(J���p�8%^f�㽻��Z|~�&�5�ܵ�<��4�Z�7�	�-P���1$��aQo���
� y�>5�Wn7f�IEND�B`�media/images/mime-icon-16/xls.png000064400000000730152177723720012522 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx�����Q��
�6N��P�
j�
j۶m�s׶m�X�}͝u���	��(��E�*�V�].��jCn4�P�^���~K1r�/�e��˰ T^�y/DR���"�#�M�?�S�G�=�A(Ԙ�f�
�G�\�@Ϟ��1+t��?�.���\��fXî��K���p�cb�Lg�-����7��G�	u��G+����3/�}��u�;�4K$n���?�p��鳟.�wo��_��To@ ��aY3�뉩+_,Y�bޒs�*)�a@���n�d�)'�^����7�X?@=�I�f����	��������t O8!y|����_��x\Fq����T*XuZ
ܘ��^hu�z��<P�)CN‚
��CQ�:���xS��?�r���IEND�B`�media/images/mime-icon-16/avi.png000064400000000764152177723720012502 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxc�~�&� *��^�����g�`��v����MY�
�����߿��"�O��z��z˥g@�;�>}�Q���k ����_:og����=q�g/05 ��k�v����e:~��@��v	ܿ{�Ƀ{@�˧��~MD�p�ȑ=`���\��]ñs禴��TE4����>w>�����ب��l*�J�-.��0��lُ���hX���`a�V��P��ﯧр� �23CYZ���,'�"��0-�����ZB����P
�6���j;xkIk51%Em��N�VP(���,�	A������Ow���/�`�C��+����g�ʊ���D+�k�	���կ>~&�"���"`<"49phih��ׯ�1I��sVϳB�hIEND�B`�media/images/mime-icon-16/mov.png000064400000000773152177723720012524 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxc�~�&� *��^�����g�`�+�]\t�Ҫ#׀���A5<yp������|q�������^w����>}�Q���k j��p�n���z����������kۏ]�s�2�?]tP�U$p��m�ȵ_>���h"��#G��[�o�x�
ć���;7���&(�*2�!>�� ���s��A�$�WTD�FeegCPAVjnqq����e�~���E��d˔���Ԑ�؀�x_�~==�t?ɕ��Ҳ~�f9a�n�i������wV��j��A���U�[HZ���))jsp5`wҶ�B	e1NR�efg�f`x�c�?Q4�J�^��T� ?cVV��Ԉ� ZQ_O8
 �~���g/����l���
�H� �4����W���pS�X5�$IEND�B`�media/images/mime-icon-16/wma.png000064400000000616152177723720012503 0ustar00�PNG


IHDR(-S�PLTE����������������[[[������|�����{{{������������)))i���������넵�333���qqq999���


������FFF��꘹����c�������푽�bbbnnnUUU���BBB����w��������XVU%%%��Ћ�ttRNS@��f�IDATxm�vAE�_��N������oiɻ����#��������1��e��Q��k�cK.���I�|4-&�'�t�則y#��N�3c�C��� �E�!
�@��ty:>E���Y��R��绲cD)k��<1A�o	��X��IEND�B`�media/images/mime-icon-16/mp4.png000064400000000764152177723720012423 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxc�~�&� *��^�����g�`��v����MY�
�����߿��"�O��z��z˥g@�;�>}�Q���k ����_:og����=q�g/05 ��k�v����e:~��@��v	ܿ{�Ƀ{@�˧��~MD�p�ȑ=`���\��]ñs禴��TE4����>w>�����ب��l*�J�-.��0��lُ���hX���`a�V��P��ﯧр� �23CYZ���,'�"��0-�����ZB����P
�6���j;xkIk51%Em��N�VP(���,�	A������Ow���/�`�C��+����g�ʊ���D+�k�	���կ>~&�"���"`<"49phih��ׯ�1I��sVϳB�hIEND�B`�media/images/mime-icon-16/tar.png000064400000000764152177723720012511 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx���[A���j�K�m۶m�q�l+�m�E��o���|g��W�Я�~kW~jS�m�;�G9Bw�T3Xtݟ�.�u�s�����;
h��D���c�5`n89�}������|�-�;�~5�|�t��MG����l��r_�U����/���P��ַlʎwU����9���k��=[O#z�&�Kq �=�@pe
�o'|�<�0n0��pz�ˆ�7���k_������GK	$���r9F�X,�=ݟw ���+��YD��	ס�h<���t�ߊ�>�e������Π��:T@��h$�8)a��7���O<=W��Wuu'�L\Z�r,=����xw��0�koç���2�$����/$_�?��������S�����	j!{�/B��Yh�C=U�IEND�B`�media/images/mime-icon-16/pdf.png000064400000000703152177723720012465 0ustar00�PNG


IHDR��h6tRNS���7X}xIDATx����$@��.�h��,�=;��m���;�m۶j�Ǭ����߽���R�86g�j��h��!��9�Q�`�I�BW~X��r���l6���-v���mcx]뗻oi���R��!$��`�K}�|���?�o�3��`py�4��WeX`�ZI��9p��x��|&�T�g��m�e�d��h�l��H��tO�A|d�w%8W�S���\�:
 ����b���� ��V���}48�,�ٽ}`���_<��b��'�n\�~x+��/����q@�u��!��q��0��pu�p$�"��+g�#�!̒�\4���������$��l��tH���ѵ�8-�C����'U���ѤIEND�B`�media/images/mime-icon-16/svg.png000064400000000720152177723720012512 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx��o-@���}�m[5��v{m۶m�t�9��,�v/�ϭP��xVj�:{=~W��v�[1��L�HS��L&_�:�N��Lg�/�g�Ȧ�w���i�Fd25�x���}>`6���3�vyߗ����߫���Ew��$�
�6]@8a���gLc�s4B,��T�D4���t2���wXϮq��c͍5�y�7���$�ȟ]�^gX�l�2���q�:e
����ߧ�v�rSH7[���-�Ҹ�'�q���>^U���,���&[z�[�⹥Udj]7��Ov�.��q*�����{���gn/	��Z�ңIz%x�P�`|�;T_V?�2V��⑊Q'��Co�17����}
���
��PA~IEND�B`�media/images/mime-icon-16/tgz.png000064400000000765152177723720012530 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx����#q��;�.�m۶m��Yol��f;�W�d���7j�?ϟ�|�z;�;m�w������`1��-
඼��=uAl�&{U��w{<׹�=a6�Z�����i/���h�5�{_Z����5��i6!���AD<e>Yh:�(�(�r(��ѳL���u=��\���S/H���B�V�y哕\�V3|���������SI�^�����1�Of 7��)��PË����NMuv���B������lB0D�W���~K����K?^�Ĕ��l��t:e���t��FLL�8�㛍c5����a%rZ��#�B�%@���%�{xu�@�A�z!�t�-?
g����������ឯ����g(�_"��4J�B�D�����M�5�|�wL�0*�t�y���3�	#h��v<>IEND�B`�media/images/mime-icon-16/sxd.png000064400000001024152177723720012507 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx���@���ʃڶ��m۶�f��il۶�;g��4 �ϑ�R�V�ը�ES a�|�=}>�/
�+�=[fx]�f��N�85vH_�(���Y�I�w�
O�:�v������JE��S���v�r��w�Ͻ���b@h�n�}������eZ�V�i1�7X�=��h�޶={E�)�`Š:s]B�?��<|ն���{^@�.��X	!��nC���lJ�^�!?������U�0�D�%�"�ԽY�y���g-[�U�TࡖH?�G��p���S��_0�A���ӧ�{�7/�[?�k��2x��)�*X������>^��~<��~�9ons��$L��
j@2}7��:��\v�� �f��d��#�i+v�qb��ٳ�ߺ?���6�c��fA
hY
@��޽�}>��m�'D������)�i���IEND�B`�media/images/remove.png000064400000000654152177723720011115 0ustar00�PNG


IHDR(-S�PLTE������������99�**���������{{�ff����HH�������

���䒒�mm�%%���oo�LL�tt���も�33�

夤붶�::��CC�##�))����((������{{�88�����;;�cc�MM�))�rr�22�RR�\\�66�??�uitRNS@��f�IDAT��1����m[g��a����6���{��R��y*�N1�T.���К�r��b9�Z��{�x�N�z�3��*�F�ɦ_�
^�/�L��q��(��,]' ����v�V�����ժ;>W�b��-P�?/�f�}y�KB���ml�#IEND�B`�media/images/failed.png000064400000002420152177723720011035 0ustar00�PNG


IHDR  szz��IDATx^�}hSW���{���6�i㬫-i��Cl�Um���	���h�0-��X�6�t�i�TU�A���h-����ic��1,5
Z�m�xx�Dž�y��s�������ƿ����DۡWr�$ڡ�7�����f�~S������3���]Q���+V��x�uu��=?�}�
�@�7,�RU%z�<ѳgq��(ف�7�F�Qp���}IM��}�8"7$��N1)�	E�y<#f�Oh[Q1Z��O��ز�Ν�::0�����<"~�Ѫal,X�w�8�:mzm-�pm�L�g�P\Qa���!(v������n�Ƌwvbl܈"�M�����S�C!E�w�j�MFv�����L��>�>o���(���b[���ŋ��p8���a3 ໢�j����(Ɔ
Ia` :eE��ݻ�������0�1f�����luuh�'�H$���&�`�&ja!�U�xu�*�������6�����Z+&ϼeY8֭�S�A0LR���p67c�*�7𗗣A�ʐ
�Ce��_��23�

�������"9N�	�WS��o���#l>ߤv�bH,P$~��x1�d�)YYk֤�y��T?8W�F���~��P(yE�8�y�O/�2M�{���kπ���@U�$
�8�����B���Bq��{k?�@+hBU���â���dٍ�����Ηb��y:���>q"��
��R]��_ ��
�j߬Y��ϟ+}��c�z�a������Hf�F��mğ=����l~/?�K5�o����|dЦL�����L�@ƞ#�>g1���&L�)�����<e�����QB^(�.�w�!2�;���^
ώtUWc�Wt^ @WG�7���V�����M���.�yt��>wn�xj���H}}}�~��3p-YB߽{��Ϸ	èo���Pa���*ͼv�DON��H�A��:B�t����[����c�w�h%-{���_�РF��C��aT[۠�g�_{!���l�fq��M3�ӳ�.��*�*�?ߊ_���a,]
��X���R{�~��l���1>$���z�ѱ(O7 ,��k�s��ȇe��x�OA��B�`H�R���Y�K�>]�R]��J$�4�Q$-9O��q�^暌��<{�ز�E+(�=�j��!8(��„�aM�
o�FO�OT0L�&x
(	�݅�@��o�
�Û8q��oZ�W�2����H�IEND�B`�media/images/delete.png000064400000001162152177723720011055 0ustar00�PNG


IHDR�a9IDATx����\[F��ضm�m̴c眎m۶m�n��|c�4?�{��<�z}c�FKX4*�Y!��PH���B�9��$�4�v��t�F�q
2� ���/!q����^D��R�u�v�&;}�ߐ�q���۽���Ÿ�7�3��c/8#�J:]�B�?zM��۱��FD��Ff��
$2��#s�\9���z�6*�dp!�?�^Ϙ�H"�bR�tU:>K���Cx7�0����&ߔ<{���Y5?ŌZ;6C�Ě�g����\`R+R��g��hDd�D��X�4"Dwo����R�rq*}r?2K&"�@U� �'@t�ܢt�|�	L�U�^O">EX<���Gd�8�LÍ��*��I�!M��H�<����P��匁�GC��^<�t��Q�*��譔�qi�H��_|`A�䎃�5��)H؃/F�<�e�*o�5o,�%wd® yd?�KH�|��\�H�ۃ�B*��j�(�k��8��O����h}�=
�
k��=s��\{���!���^�z�mj�����Ƶ3]Ӛ�<�y����?Ӧ�-ւIEND�B`�media/images/folder.png000064400000003363152177723720011073 0ustar00�PNG


IHDRPP���mPLTE����Ä��J�Вťd�̎�ՙ��T _���غ{�Ɔ�����Q�tO���ݿ��ܝ�᥵�K|iCҰnвrݽ}��R̪e�ԕ����qJua:�ݣ��Z��׌|W�ȋս�nZ1���ͭl�؜�欙�����Ŧl׸zβ}�������������}��J�×Ȫm�˝ϼ��������Ϸ�������Կ�ʹ�Ų�����Ō�ԶŴ�yd<���μ�ì{���yyyմs�͍��ֻ������ت�oIzf@�Ǜtsl���Ӹ���_����Ɠ̯u��z����ﭭ����׻�����������梋[�Ûsb>�֤�֬q]7��z����ӥɫr�p=�yT�����̲���Ϫ�����d�̔���ΚŢ]mlg�ִħq�ͤ��g����Ǧ��ϵ�p�Т�Ƶ�ۻ�|L����ؾ����챬����R�ʹ�����Ӫ���ڹ������pBhT,��l����ݾŸ[��Zxwr���~qRƺ���a���ĵ�����̽����˯�ޥ��¯����ʧb��R��}�vH��n��y��a��fs_5Ͱx��]�qA����蓌}�ֽ�����­zkM�~N�{D��k��Û�U��઒c��`�����{{s��l�ε��W�ޭ�ʳJ�
{tRNS@��f4IDATx����H��۶m�m�6>۶��m�6ӾI&3�ejv���c�u��FZ�/_��%�Ȍ�_C###w�۷T���M�~wpz�R�ٳ=��
M'�]��KEE��9(v���H�֟�u��q#���#���n�d0���s���G�<z�(=1����x���Tk`e5�j4V��#��c)A�������Yt0J�+��7���@X�Ʃ7^�O�8��O�8ȱ�k�<%�D9�2��|���~~C�º�D	J��tP�*xkc�:p/T���.p|z=�����Nd0H	A�RZ���`M0��b�34�*t��R��FÃDKY����G���o4�܄�.�Ad���l�'��B�1���]V�	-�0��o].�
7NY,�Q�ۧ0�b
ܴ
F0bF��b�M�F"��.%�!�&�D�6v�e',�o�i��)cA%LH��NY-��2�L.�)&$����l^_�Av��82�S��D̫� 7�]&+F�r��^OE}688�5�iBi�	�ƂZ�2��h7�4�C�~
I��*'�h�p�O��8��n���v�r5{�	e^[�J�V���i����$i_�J�=PJÄJ�i1���:::
v�KHA��[��h��6[zF�	�>������fߖ	�[Z8Ё�������ނ�;Ɨ��|P&��nB5^��2�jƛ��g['�2a�lw�ݛ	vB��8
���7;p�wL���)��8.�i�K$n/o�-�
{w;TL)X��h�}��|�DB.�z���ĶX`?4F�q^���&��x�	`�&e�=H��p��8P�oqq'�m\��'
�U�\����rnq��
�o�\ˀ�2��M�l�I��w:~`@\-H���P�]���eRO"���.@�}X���-[>}�M�	�_d%tvv�|��E8��L���z���"�Z������y�)u��m�.�$��d��!Uٛ8q_a�h�K��צgr+�&v�)H2=-A.�p�=�N�kXV�{��j����7��/�Gm�IJ�?,��4#ɗ/_�|�����;��	^{IEND�B`�media/images/bar.gif000064400000000243152177723720010337 0ustar00GIF89a��bebsy{������!�,�hH�0�I��8�ͻ�٠@i�h��l�p,�tm߸d��pH,�Ƥr�l:[ȧtJ�ZOѫv��βްxl���tЬn��,6|NO��^����������"	;media/images/progress.gif000064400000002125152177723720011440 0ustar00GIF89a �8e����`��s��(Y�Dn�������������p��a��?k�k��2`�*Y�v��c��g��-]�bbd!�, @�� J�"�����Ifz��[�s=�8]�<���	u�"N�T��$cj�ru�i3���(o�m�:������9����v&;������������������������������������������������������������������Ŵ��Ƽȿ��ͣ�Л���ٶ�����������	��������������������
��D,


8�#aA�D.�XE�D�
bTHхE�|L�H����ؐ�J%O|���K�*q���1�M�/	J��ѣH�*]�T:H���ԧwt�ѣ+�[��E2��X�d�FE��m�2Q��u�n�o��]��.;LL���È�l��k��sֈ����".�D�&g�utF�x4��?�.�5fȭEǞ��k�3e��<[�B��N�����lMP�l9�VΝ)ל��s��K��ݗv`ջ������̓W_��xP䓻��=�����/`����(�h�&��6��F(�Vh��_�E|!Y@%Lju����'jX&nb
0f�!���B�_�8��:��#�C��g��L6餒���mn��bf�I�%�U򦐖r�&m_r��zy%lc��%�e��&n=�٦�iډÓ|��矀>"Y��A��
���&��b�ʔ��nVE�5Q�(��:�)���v駞�*)E�r*ih���j������J(�(�뮼���*|CJ��+�(�2�L����	��8K���Bm�2�\kͳ�"ۭ&�:���N[��k��Ök.��K���k������,�l�'���7�p{����8[�l��W�y�Zq�o���!c[��<���|�����4�l��8���<����@-��Dm��H'���L#]�|��w2~��wcm��Uo��x_��}^�"��ZO=6�g�
v�j�w��t�m��x��|�;media/images/folderup_16.png000064400000000747152177723720011751 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATx�R��Q^�Ŷf�m�m��1�m�x}�_m��g}I���|�����`�~o����`���J�ʇ�4��-(G��F
0�A༾���u7�4ߋ���77�*ՠ��׼��*�|]�3]yg��R�� H2+�|�j�0p
����?h�x�?F@A7�����'�����!~���?3��@1�C
'k����o�\�4�G4�KA��Y��L�0��6�f
�=���n�ՆɏC� �,b�����|K��,D&z_�#ߨ��(�*�@?4��37�=3%����I����X�I�-i7�59I��Ӿ����%s���a(�U����k���*Nn�����( �M���4


�e( 
�e�V�
�M�0���z�6��IEND�B`�media/images/uploading.png000064400000002146152177723720011600 0ustar00�PNG


IHDR  szz�-IDATx���I�c��fl-���Dg۶m�k38۷�
�Zۻ=�m�K�%��62�}��UM}�����=B��t��k���?aaa���2<<��А���z��tx�w?a
�뮻0QPP����#�!�FFFP�{�Ϗ>�h+���p�J�X�)))*B���{}W���T�����qbOV���*tќ��R��o���p,H��/���w�hJ,���X���F@�V�dv��P�@S|�}��ݵg/�vl������n�98�L�3�$'+�{j����[Z[���O���➻n'=-MZ�!��ں:��~9<|�}$����\�������K���3O��Dŝw����/����ҳOq��A�ΜǢ�s�tx*N�D�ي�O���W^|!��Q��b���:�7_{�i3g�)4S`���y�w�&�3i�D��4����d'y�ylش	3�Z_���;�n��UW\�M�;�I�v�5W�c�.������0V
��Ť��a�:u�+��eedq舛��]���Ʌ�����.�$˖-C�.Z��""""���N�Y���8į�z���{"!ݰafj���������LZS���j�x����F{+f��tt��r�rn����w�
����̌�
�X5p��j�z���Yg�ŷ�~�c�=����r�	���ކf
H�23�ٳg/ť%xÙg�陳��C�ؾ}�.�K�o=�a�x��{x���v�����{����_���n!%%���H�@`���h��������L�1��Opr�M7Jd<Q�S]S˧_~Ů��y�{p9��H��?�����'��e��������q��dgeq��'s������F(0ZGS�E��M7\Ogg���!#66V��.<E�)�!����HRR���
���r�<�h+�G�.�cBjj���K��E����k�:����v�"������4P�+mٱ|��t��5s)���7xB���@����Y۶m[�5��) H��x 
cl��]@3Ptjlq���1�00 a�ϴP�E����J-IEND�B`�media/images/upload.png000064400000001251152177723720011076 0ustar00�PNG


IHDR�apIDATx���^K@��Ͽ�m۪m#���e��bՈS+��g������|�I&�3T����95���6��Ģ���uƈg�D��	C:�qC2�TJE�7|ք�9���]P�.�H$ՎY|���sӏ�by�82��|�H�<B��X8��S���ϋ�)���IĿ ��k�&�{�-|�i-M��q�?p�JZ~"˒����'0#eZZ��S\����(���!��TCM��*D�%�)D�������@�\�C;�6�┋u��o%�@�?<E]�6���&�t5r-��ZL�:�����
|�%����� v#���!�z��g�����;�{�m�ۯ�E�_��V؁|���u�-�?��}I��tu�]� ��E���G6�Z��N-̔�"��?V�'r��J�>6+�R�C�6�O�ޙRP��'�O.������W�j�7A[������Іt����J)�x?;��&c*����eP�C%-��nj��l���\[w3�~u�����)0�S����ډz%����O|,=��Zw�us������9�|r�Rԥ�].�*��R�����jN|x�ѻ%���-�w�*[��:{���3:hrQvl�
pIEND�B`�media/images/folder_sm.png000064400000000753152177723720011572 0ustar00�PNG


IHDR��h6tRNS���7���IDATxm��\F���j�vP�n׶m�m�k�F�~/w<��y>�����j,+++k#˳�s���a�t�b����2�W�h�v��qܞ��^@�ng��K�B��`Ν�W�ƭt�1krn ���?��6!aX�
7�h�{{��_^����B���&|���	�n1�h��)�|$���<;�p�_l,xy�	C���B��P����̰c���PW=zj@Sq;$Цz{{������܁�+}A
�[b|�z�z=�]��F$BTp���
 �8�#P��*��T���H}���͝�7��OJKKr! RO�l���5�pH@����Iq�]�JD
��j/l�I[�0��'��}˯KD$^�ٺ����tfč���FGG�h��{̕tM��QV�O�IEND�B`�media/images/mime-icon-32/odc.png000064400000002130152177723720012453 0ustar00�PNG


IHDR  ��tRNS���7X}
IDATx���4I�/�}��lۊ>۶m{m�;\���^���g�_^�]e���U�۩�~��������?����n��������Ϟ=+�3\�޼#�Z��9u:��=���(��jw�]����ݻ����K�Dݺv/oVx��=WӫOۺ��7 L�[��0_�jǻC�:�.���XgW����Ro��k�X�w�����}*���W -��"С4�4bl--�h�.o=�jo$�����$}pR�e�X�WU�U��%����m���������3�/

��mj]�3yj��H!m�Ε)2�l��޾NB#R�v��li끚;{Y�W�M?��Y�k=M�)��������[XҔQ���ǂ\��h���v�����Yv,"6�lu���E!>yL�]C��� L ��9c�)�6�c��:4޴+Ȱ/܆T����\���(e���R��# J�[h(�Y抰Dӯ�3^�t��UA
Ur��6�:E�(�K�+���l��8E&��ހ(vl�W/^%?�CB|CD��F��ّ�:�(ϐO�҂�D���VƼ��sD�O��p�b���X��	Wf�特���Ϟ=W�tq�"KR���HX�#��w:�B[׿qj˻��?�i֬ܩ[���0���J�3����V��̰�8R�� ���*���ul{�PP��9��H΢��$_?�Ђ�˃��<V�w�"����-���k�V)B+;�
VD�֩���t�g���s��:E�p��R�����P��'�AӎO�J�N��C��23�I�w�.�]�H܊.�u�_����p��,f��,a�t��vuB�ܥ��/�)������<d���h�H��?�m����z|:��)�؝h��\����@��֦X��R����$Q��:���:ܗ`)�E?�'��M��p��2Mvt:���P4�$�wh��o���h4�<�l6c�����Hc��R�`!п�5,Z`�w�IEND�B`�media/images/mime-icon-32/zip.png000064400000002047152177723720012517 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx͖�Y@�׭�ضm���5j�خ�m��r��٪��N������p�/�?�m��v <sGp��=(�g��{p�SL���o�D��6$��.��io{�k���>�=�K:'�e4ν�:::P�P��N���^���S��Y�+nF\��h���k�{t2]/lt�u�]#�
�c��J.�q2���'��t�ͺ�������zZaԢ���o��U4_+hZy�_�ԯ��!(����[v1aځ�v��n/Kި�qm�k̺佒VN�l����2�o�~>��l,��!k��@{�c'�jӶh���kNߚv(L ��-"N2Қs�-�PW�;z�O��w�4��[�)j�]�r��b�6�$
�_P�V]6����d����5NC^w�?k
������N�2��]�Qm�a����[vF0��4�����2׍�����U�ՙ�s_H>������q_�ޯ�b�خޛ�!��O6�����h�,��GUEqY��sA4�����\a�w���[z�{/77%!'|!�I9�
D���ܠ4�P����sN�A���f5�̻�ń����UY�+J+�
��8�BBO�����Y/SF��@ّ�@I�F๳��Ȕxrw���f��h~qq1Ji�?�T��L 5�شs�*�d�Yd�E@��j*Htl���{�yOox�g�:J�
O&����T�7@{��E���f�+�0�)Qj2����J4y�Ю,%z颂Nؕk�1w䡇�W��� ��̉D��V;��*;�0S�=H�w��.�B�^K9�y��棆�N�̽D@�����'h�5Da8Ѻڛ��5��{�$�e���!�q�HO�.��.�Q�r%wQ.�n~�A���
yö�%!���'#_�R+G߇����I�����Ԑ���x���&�	Y����MIEND�B`�media/images/mime-icon-32/odt.png000064400000001743152177723720012505 0ustar00�PNG


IHDR  D����PLTE�����������������������������������������������S������������[����������ߛ�ί��������������z�����m��������������據��ķ��쌽ܳ�������잩���оv(Wj��������˿g�w���Ӭx��y�c��i���������ς���;b���u4��������������̧~r��_l���ا��w��ν������^h��Ul���і����v��������Ϳ�x���NjI��~�g����������Χ��t��|����������Շ�����г�=M����y�����]q�ft���e���/G����~�����t�����k����Պ���z3���P^�p�����u����c�tRNS@��fIDATx���#A��T�{[뽵϶m۶�ï;�����;���DQE�IJ)�d\UIe��֤ye�߃V�@��XG5�::��Ow��G�׆;�A�x���|ejnt��u1��&�?U*CC�s�}��м�x���Js�������G{4��+�l�r�d��&�y�D}���3`��
6>6ƙ����ҏ&����f�h'���׭cۑ����-����.���FD�Q���˿K�Ͻ�����ѫA U����-V�|-p��
P�]e
�m�ڟ��@�	zW��<�+�H)D�+�N`z�|�
�����ƫ��gf.}�!�@��S`~��϶n>�.�xĽ�g��n#��Bz'����ݧ~lY�&DiC�I>�xG:���kw���	 �YAi�t�v�*�� P!
��L�j*fe䶂���Ӛ��L<ЬJD��3���O�"�3Qf�j�PJ(�����C�B�[���?�W<��6IEND�B`�media/images/mime-icon-32/mp3.png000064400000003113152177723720012407 0ustar00�PNG


IHDR  szz�IDATx^�W}HUg��s�5�J��4���� Y,h4�(`���P0����F�AP�D@c�b#��,r�L[���0g��W�zS�~����y��˽���^��9�{�s��|��j�L���:;w�\���O=�d�<�{�m�:�Ց�v��Y����G��-[�ki�����s�gΜٱw�ޟ���Zr/�\��2q,�h�=�hNS��~��7q���5��jE��;�t:hʡ�I��է�Gg�6�OSA��B�X2����f��-<�}�㟗(��������?u��9c.��׫����m[���C��rK
�+����M�˱ry>>ZS�5boK])���B%y>�=��1	�^s������H�Uo�idEy~����<x��B��0
��X�ŘJ<p\��i:�t�z�&P,��}��$�?�'���Vb$<�t2	3��&`ɔ���L��F�OCQPC��ȃ����0m^���S��4M^c:2�����7)�FêJ��I�G�k�B$䐬Qޘ���*�vsC�����Բ�Jx�^|��]�Hi U��м~t��q�ߨ�Hy�X�χ��i9r��ڵk��'Ȗ��fF/\�2T��)���>x����åK�r��{�p#�*�Uu�c�o�fϯ]����j�*Y^x��A���fTD������(fff`.\��X,F���w' ��
�z�������������mmm"�A�W0�	(YI�yOq}��!?~���Fl۶
���8�<"���
�֍�\�˯䌨�	�4M�����ɓ'���VT�0�n
�B =W	��������ojjBEE�~?��>٨
�+�#�$��w�"�L2�u�ֱ��Z��"�Zv��v�/׻��eY��ՅD"�
6p�]�r��¤����V��* ��\��J�044�;w��ѣG�199����}oo/ZZZ066���rlڴ��(2�-����DZ<~�8�;�S�NA�q��Q\�x���X�z5���q��IJ>N���V�����鵒`/s�@�?
��'N�@qq1jkk���c��gϞq�777����ׯ�C�a���l+G:��E�C�r�|�^�J�&2[��<�Q^P�sH8@�2�=�����$f�ױ�Q��)IJ	�RG�Q_\\$p�oII	������RE�5l6����5���ʠSSS���"@͇g:�VK��7��d���m�����&P��c&�g�RH)7�I�g`X��~�.Pr��s�9��p��Ia׮]�Ү5
:���[�` @oG"�rS���TVV��g�b���D�^�߷o����#5��,�M��4�L:
	p?cܼy3���	UUU�ӧO��hoo�ft��9�s
�3�_�H�����}>�c�h�]�@:��_SS��l�\~�JrK�D�����9�;;;����W�����)'�T�	�=6LF�@2�@2�^;�X�a��4w�֭�о>x��(����?t�%�V��IEND�B`�media/images/mime-icon-32/odd.png000064400000002344152177723720012463 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx���s�Y��X۶m{wl�mc�=�Aw�t:�ͱ�_��}����jo�J}��\�۹��l�ܸ~���8<1243����5��<xм��{��8u��7��K�u-�'�Y\��bue�y�K�.��=v|*Ν:�������a�dH鐢z����#��]���V�]�������ѣ���
�Hn�8�Ei�$(h�6���}�X@F���4�$�����n�{�C<�k�o8�3���Kʟ�%��5lQ��@M��cXch���4vpM���=�����~sSX�UD��&3s�3�x���$絻wt
�HpkfL/_�.̆_���P�O,/��76��ewƦ6�PH�(�P�"@�����xe��C�⵾a�I�ŕЙ��3/�S�@��u�cCC����Ff�ǖ���k�w8乆�P��Im�h~^�X�i���R�|,�)������^|`I�%�����
�C�|</���WlP�tPȆ���ј[�/�f�A�����O�t:K%�b'���d��逋��|ow{���C0MLXL
-��KlME[2�KR���$���護ޠ=|0M�O��9����غ��a���)T�O�YHa.z���5'��wټn����`7���9��_�.cM�J���DcE}�*d����6QtQ�>���>:�O�
{�T���I����uӢ?ܶq����+��g'̒�,���aJH�hW��xFM֭\�񻯿��K���SZ4�}��(�Kv2�U��й�e�VM����ފ0*��#��7}���Ȁ�L(��^9y�"�9���xaO�0N�J� ��h@�B!Z���
�:�{�[�޸�Vs�HbW{��x�.;����2�݃A�j���U�X�t�=��94q�jVmg# Opl:K�d�Q��g��m�_'h���/������~�r뻞a�ӧ.ˀD찣a))����={�^�?���<���̭[?�s�>����%b�8D��be�ޛ�<��م�����?���֮�8��8rM���@�'���3���IE�w*L���d	��PJ�ܤ�0��/��Ta�q��u��hd4f
��J���1:`�׍f��1&viF6�<uIEND�B`�media/images/mime-icon-32/ppt.png000064400000001734152177723720012522 0ustar00�PNG


IHDR  D����PLTE�����������������������������������������������������]��������Z����������������������������������]u����rrr:::���r�����mmm���������睝�l��Ĝ���暤�Cx������毯���������卶н����ع�����}�����PPPaaao��}����Č���y���㒙���츛��rw������Pt����>s�s��X�����ʾʬ�ϋ�ڥ��w����遧����w��U����ާ��b�������т�����HHH{�����WWV������a��SVh333������|��û˅n�}���AAA��ꩤ�]��Jz����ʛ���Ѩ�ֳ�Ǭ����æ�᠄���̼�ȵ��p���9��tRNS@��f�IDATx���#1����^��ٶm�ݟ�L�N���xc��<�ES��T9萉\WJ�$y�������wg_g��۲۲��7X304�����XG�����ˁ*~����P!:OEu�6Ͱ�����髑�H�����n�_"�X��RX�]�&��3V���4�fC��@m�<V7������xk*U�	�0��IU8��S�����A"�r�X9���\���t��h��x�˱�޳t�P0�]>C���}������eKP�;~�𖾾���DM����^=�71q`��-���]�&OL~<��~��j]%w��n�t�k�T��|�O�~�:p�i	��21�v�s@)i,A�б8SC|�%�b�v,<�ۮ��;Դ�q���c�P"�� ��!�Q��7d�\�
�3���X@��t!?� ��g��RQ�B8�1A@hW�<�Ǵ8�RR���G,�fd�IEND�B`�media/images/mime-icon-32/rar.png000064400000002043152177723720012475 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx͕��$I@��ֶm�6ڶݝ��mۥa��{&f�kSkĹ'KQ����s�n�K��ӧk}��x�
ׇ�n	�|Q��M�ީ��8vXp���M��_>]W/�'OT�$>w�-8�8�~��h�_�|�ģ���`y:b�,��֏�+vq��^�Կ\X[�L��'7������$��G-�KqU�B^��v�T@8����||}L�g66�nzr��[ƒZ�/Fw;x�t�orj#)x:��J�`�Mt�#���-X�}A�s�6<��5d]���p�k�����������h�@ݿ5��	�\iX�}
{��z5��oj��Rp��e�����EfB6��6#�F���Y�R�qo�d.�+��=��m�<�uh2W���9�X,8�V���R&�J�g ����6j���|�b%`��{���M��u��lˠ��J�v�=؛��!�$1�f+}������j/zĖ}��4t�|�{�]A��ߘ"����!p�k���_>�G��_�����P� 4���;���I���
v��Wg�������&A��C�OwB�g7i􀆿�
���y�EƕWph`U[3�-,&�p���(��6B@����R��la�YJpЍmj�h8��Q�$()�|�O���K��@��.b����(����OՋB�6���sBPi��X��X�,��B@��jJZ�ツ#.�y�lx��DI�T@C��y����t���l���EB�x�,M�L�����PD��䑊��4�۠�@,�2KIX�k�1��=�P���@8D�ɍ��FV+�uF@e'	=��o�P��B�C~C�Y������W
����D@���z�|����6j$�-��j,଱<þ�>o}�U�׀����Y"���鑿�3⬢\���+���^m�(P��sΟS_�tVS��6�I6�lܤ�>�6�v��5�W���Pp��IEND�B`�media/images/mime-icon-32/ogg.png000064400000003110152177723720012461 0ustar00�PNG


IHDR  szz�IDATx^�WmH�g��|��Q6u�R鰂���b��Qm	l��߀�
BA�A�F��m���E�Z�d1KE]������|�_{�zy8�e�ڣ7�<�>���x��X���sy��={��8p`���!b
�\Ƌ^�e�&�^�i´��"��7-�EEE����:;~�>$0�
��ٳ������(
 �K�UU�a�x49�XR���8]�<��?m����Ǖ5���tRy� KF��ާ�&��Y���zg-�10���`x�� ���2J?�0^Z���=�`L8����|n��
W�@�{��
�
�\W��?�_�Z6T㝒�CH/�PV�ý����E�#���ʹ8��bb<�X$�j�fa*���
$�L��(R4�_,�Y�f0��ܗ;(�
-����,U��ٺJ��7��ߋ�5ocqi�=��^�L!��C�aR錚��(��F�OA8� �"�������pp^��~T��n�~n~;�l����h&�VV#�Lےǡ�IP@����td��6���r)����m%��x��d�Z�H� T�P�~t��y��;���p�	�X>��3s8z�(�9�5k� �L�/�c�����]@�2�� �56!��Ǐq��}\�|9_
��^ndEr* ������k����EcW&����������011�h4
M�p��E$	���;1d09�*,,Doo/4�����/a��r� ?2���:88���Qlڴ	�v�BII	.\����yg���w�_����144]����@8�O��Ν;�
�f�M5_
D�2���q��[�nEUU�~?��9��
�+���$��y__��4X�~=+!���ȁIR�m�H{g�r��\��`===H�Rؼy3�ޕ+W(-L����|��H�W�Lccc�{�.���y����`ffKKK��{��
������Ķmۘ�$�R�@Z��'N���8}�4�{#�;�K�.ann������éS��������Q^^N7��J��̟Y�P(�ў<y���X�z5��$E����3���fTWWc�ƍ|v��a�޽�}Ų@�#C>���&t��U�5��� �}��%�Q]P�sJ<H��2=�r�)f�DZ�ѯ)IJ�R�b1����-++��#���R�(����!���4^tvvSSS�]@h��e�Y����+�nKLƍ��96���Y�'O��(��1�ٷo)$����4Cc��4�\�RM0@SS�?NQ8�7��7)���P�ҸV����Lۂ�=�t�M�c0PEEΝ;��{�=z�|����M�
�����&IN�g�t0����q��͈�����Z�9s�ތ��NF�ϟ�>��8+�u�l��=��~���	��G�] ŗ:_�j1������B�fBU���������S/$n99���|N���вҙҩ�
�5	��i��Foݺ�k��:4A���I����[�IEND�B`�media/images/mime-icon-32/doc.png000064400000001537152177723720012465 0ustar00�PNG


IHDR  D���;PLTE�������������������������������������\���������������������������������ՙ����̜����m��z������U���v(����������Τ�����s������Ǻh����j�µ�b��ߦ��ĸ���ˮ�HlD��������Ո�ڵ���˿}�î�ۊ��u����z��u��題b���c�b���Y�����q�������隧������y��f�fԭ|��М��������u3������ȋL��������ɳ����c��k�{2������d�����̧}ð��tRNS@��f�IDATx�у��@�ᩪӈ�9�c�m۶��O���z�8��Qu�af=�"`�d���V��>rv�tn�44 ���>���&�����8�6�&�P�����p8�3vo�����z{��>��ҁ�—<`��!75�x��]\�^/L���Y�����@�������(�N�R��z��uh�$�R�q[���&R�!��R�
���P8U)�3Dn��I�
/����[��A�ӡL��Y)?i��UJ��!2�o�aV�Z���d �[H���^�!_��P]A�|�x�Ωwϧ��1�I[���3W��{�02�C����̅��=X�"(v�����?�;��q��[bf�=$Il���×�6"Cl\�V��5V��0����U`�8�4�"p����Z  �����AhmX��A3C�U�k� �l+YcQJ^p���0D�W�u��~�.x�ƺIEND�B`�media/images/mime-icon-32/rtf.png000064400000001555152177723720012513 0ustar00�PNG


IHDR  D���GPLTE��������������������������������������������������ۥ�����������������������؍��b����Ɯ�Ι���v(Y���Ǻy�ŕ�Ԣ�����^�����������������c�����̧}������HlD��c�u3g�Ƙ����ѵ���bˮ�������v����Տ����¾��k���jU����u��z�ĸn��c�b�����������Η��w�������y����fԭ|������˿ȋL��題b_�������f���µ���������ɓ�k�������{2������m��r�����C��5tRNS@��f�IDATx��c�$1@���4Ƴ���l�ٶm���Wi��uԩ��H��fT
�8i5X-�N-O->��hd,b�t����~g4�lltV�\��B�XQ��h|�͇��׃O{� C<�}u`bkki��rb�W�2�s��V'w����N߹4��rA��1��ȯ�*n�B�8��n���x��xe��	U��dKI�`uA��{Dˠ����L-D��)�麞i
�w�\�F��C9��W�졹~E� %2����ʆ��@<LˡqAb T>����ݺ��Z|���D�z�����[�?�<�$��-T-������ۇ0�q-l�]x�o��M��9T	��{?��`���V��ޣ]�asV:,�J �s�b
B��ƈZJ��"b!(��h�@�P�
��!�
��1w��&kx~��R(�#<C���/Mm"Jp]^3~�20M�P��IEND�B`�media/images/mime-icon-32/wmv.png000064400000002260152177723720012523 0ustar00�PNG


IHDR  ��tRNS���7X}eIDATx�SCs�Q̏�)לs�m۶m�v����Ӧ+�����W��}5/řd�����J��Ȍ�`��o�$�j6��d�xB�g��ھ�Z}�]�G��k�����s�͇N�Tz��ZO��WB8�7�'Y�s�M�~��r�kX�Pj
�������/��H�)7�p5�V�5[�7�7�x2�Kgl��K�������-O�1�2�'�w,)xq��O�K+,`��"�;��}��;oY��ޭ�>Jo���=��X‰맖Hj_�@$�� Ed�O�3Fk������r]@`M�=��:[ CCx,;B��M�Sr�UE3V�@������^XX���$����'&pR~�� u=����(�!v�tC@
�>%��:-�Ȣ(׶��]۶��m۶m۶n�1�1�����������9�ռ3$�[�n=*�����!"`�A���+QbhϞ=���<D�M���w��IbU�c��Φ���
��tɢd	�+3��C�S���]7%.
%ָzݺ�Ӧ�@U��U]SSQZ�J��\����"]���m�Y�2)s��륥�,�;
�-^�|Ȑ!�mm~�}/�����RS��t�đ��Z�[�+��6��6��phC%
gg�pv2��@YeΧ�"{d]�đň�:4�.��<��	i)��|��0���$.�PsQ<"B㛲����D���YY1�F��UV��VA*IU)RA�`H)
�:��I�P�D Fh�u�����+B˒�P�:L-`4<(P_RDw@��-70��')3�yRH��`��p9���P[Z��8!� ڟUH$�s�AWwOȓ�ḻ�<q��`w�U&&�^޶^^6���a����O_�F�A��/^\�ϫ�5�l>���1�6O�:Z?�2�=}lB�0�w�ع��זϿ�xƙ��O�x�(hǸ!��	�O�xy�Z���������ٻ�7<<{����g�݇�@[��#���s�n޾�_S����c��Xca����4��]@�v�<J���DA=��$�&C���n�e�M��:�*�\�|�P:|ܟ��f� (=��#�e�t�]��C�IEND�B`�media/images/mime-icon-32/xls.png000064400000002105152177723720012516 0ustar00�PNG


IHDR  D����PLTE����������������������������������������������謭�������������{�ޫ����߽�������ʿ�������y/����u!u�������������w�����{�����y��������}����Չ�ܵ�ޚ��]�\b��x�����q�ũ�悍��������x+��榨�[��t�������j�al�����z��d�]�����������Hġ�ȃH���n������{1T��u1��������^�hÂ9ɰ�v�¨��������×qd�ew��Ƿ��������p"n�qy�Z����������v)ͺ��������x5�����ˢ�ŝ��������Hp�o�~;Ğ{�O�t'c�b���_�����}�����������Y����?������t��S�����x����͚�������`�����_�_��������
��tRNS@��f1IDATx����@Fs�qjw��m�>۶m�6��٩�t���F�a���	�ja�)�{K;�_�n�'f:m�X������ꁞ���f%��s����y�q���P��ܗY%P�ZT�JQLX9��-���:�� ��69���`v1�u.��d{�'00�A�]x�x4?߭)�Iq�ѻ����d:4E؁�E�!F�s=DJ� p:7��%q�(xXa@\۶��2�Hƒ:1Z��zx=�%U��S1��n>5����p�J��W,۱a�d����J�a$bi�o5l;�l|{l/WxE���������W�m�c�רy#
u/�ܦPQ�Od�p�Ή���o�P��e�
=�>ֻ�����x<ڧ{���J
+��gf6�đ�.!���?��u'nt���5vc@E�� ����F������K	~��\�}��WOS�Y@D)B�NB��J���H�k��C��0uV"�Q<��P	��EA��t%�t@�Pp��Z4-"	L+F�ah�Z(�N��,�2M��1V��'W��HIEND�B`�media/images/mime-icon-32/avi.png000064400000002301152177723720012465 0ustar00�PNG


IHDR  ��tRNS���7X}vIDATx��C{aE�#�)����m۶m3�mg��jb'�s����1ə�������r~x�f1����g�\�_��N��bs��Sh��k���;��d�|�t��#����Sk4����=�v�^u�������%��/��~�k���=��!D:5��y�,?ai���3���"�M\�?�w���w�H�!p��B�;3�ws<�ڂ3ry��l��%Ҙ���9�?�w�_`�Y�`*�nǎFd���\4���2�'�*��k��s�hLđ*GS���|ȗҮYd����2�dp����'���e��w�\K�8�ZZ����4�=��i9�Haxm{�ּ1׶m�l۶m۶m�]�c�����o��ʟN���Ƽ��O��h�?�%���f��O�>s���<�ڡÇQR��۷�&��쇩?�A�Pt��C'�&X;�ԉ�b.I�D�֭[�
�m�y�zпb�J�ڳg*�&Ohz�(�];u҂8��X�p���0v���2C�(E��ʬ���T�:�t1E�
@��B�5�^�n�i�%�PueEw���V����2��V�����N~E��r��dR��KK�Y2w
Z�l��!C���~�������R3�t�đ-�Z+����5��>��hhc
����pv2��	@yU5Χ�2gd}�đ%��:4�>��"����~��h�rnN2���PKq"B�s�sb�D����ٱQ�F��UZ+�P+�$��)�� T0����
�]�
��$@�D"#5�,�Ob��)B(E��
0�/ɶ; �Ζ�h���YE��|)$OI�f�|�	������^�tԖ�.<N��/��g�g�\q�����p8��,@�c�p��@ebb��m��e�>�\V9;�����at�
��/���5ؚq6�n��uW������ϧL��AtlB��?dԯw�ع��זϿ�xƙ��O�x�(hǸ!��	�O�xy�Z�dž�%�(G�	�ݳw�o<xx��ç�B�����GB��ݼ}�1^S����1�J7#�)s}�i��&��.����&
b�i�&)4�`�ȻC�Q\65~�U(����t��?{����AP�ـ�Q/��[��u�TIEND�B`�media/images/mime-icon-32/mov.png000064400000002250152177723720012512 0ustar00�PNG


IHDR  ��tRNS���7X}]IDATx���dA��7��֎�ڶ�m�m��|�;���oΫ��JoK�ʑ�X,�AS@�,-)�'&��Ec�@0�B��ț�0�U��ͺ�D=j����4�.|����FSNg��nǏy˗1ˣn݈�w�u�y�IB����ŗ�FV�ܼ�����>�l���B"`ck6�O��~BC˓ځ5�%	��k%)5O����r��F�)�>4�s��z�
Lʞͽ?�r�T��n��R���w������⋽W^��E*?��3�Y���L�V��Ҧ5%��)֩���� ?��N���J剽��C"���h���w}}�$}���'JiomkSU�����,hw֎0U��\e�rty�S��{�	�v��E��B��7(�z��5ɱӧh
���]�`�0��]����v����m۶m۶6��w�庵^~����S'-�I���0�am�̞��Y)�]T��JqVO{jb,8�t1�n�B�q��u�M���͍
����6��!�̌Ua�R���SD��;��D"����ܹ�TX�pΒ�Ӱh`��C�oo���[�2B��X4�M�3�����ix_�q�c:��v6QQMI�W��"�75c}�KF�WMY�~��K�DX%TA���r_b���ҒB6�AOuz�K�K��D�IvF������2���O'j��C��"(JIψ����!C��cc��x驼v1�����"(J�H��BidH������&54�:I\�$*�	yaE���0�  $$��R�{�_ ��ڍ�
K�Fe�	��21����7�f�X��r=�
�w�*����}|�}|�<u�����ǧ/hF�NY᷋Wr:�͆�Z���Y��{[T�l�|�dZrzf�i��z�΋�[�_qm���g��?����g�;�
�'�:<m��k�dž�%=�#�c�����z���`��#`�}��<w���ۏ�ks=K$7�y�/ʆ�@c��#W�U` 6�P�dp�,����Ϩ_�k�ʌ���\i}4�;|��^)��б!h*�M�b=3�IEND�B`�media/images/mime-icon-32/wma.png000064400000001352152177723720012477 0ustar00�PNG


IHDR  D���PLTE������������!!!������RRR������)))���333���;;;������JJJrrr���fffYYY��������ߧ��~�շ�ޓ��������{�̎����lll�����ض��[��s��zzz�����BBB��å�����j�����������˧�����������ꎎ�d�����v������룴���ԅ��e��������p����ⓨ����Gu�{����Z����֧�į��i��y��>6%�tRNS@��f�IDATx�Ӄ��@��b�汱����y�iߩ��>���V���L_(k��f��e����0VM��ɤ?���O�>?���z��ޏ����l��{������lr||��wu�d��__ޝ�W��/:�����M�tyvi�/����cCP�
��D8�� ��m���
`�$���piġj
�"LNm/����`@�#ۗm��2.NP��]�.�&�k�3�wM���Z�.@��t܋��{d�@N,"?�cW��E��65D�G�ԧVn�`�@ęp)���!k��,�)Ŕ ����S�S+B��G��x���%�^d�]�*�3@Q�زR��A���@$'U���5��Q��z���[��jf�S�S�~t�$�.!A|�IEND�B`�media/images/mime-icon-32/mp4.png000064400000002301152177723720012406 0ustar00�PNG


IHDR  ��tRNS���7X}vIDATx��C{aE�#�)����m۶m3�mg��jb'�s����1ə�������r~x�f1����g�\�_��N��bs��Sh��k���;��d�|�t��#����Sk4����=�v�^u�������%��/��~�k���=��!D:5��y�,?ai���3���"�M\�?�w���w�H�!p��B�;3�ws<�ڂ3ry��l��%Ҙ���9�?�w�_`�Y�`*�nǎFd���\4���2�'�*��k��s�hLđ*GS���|ȗҮYd����2�dp����'���e��w�\K�8�ZZ����4�=��i9�Haxm{�ּ1׶m�l۶m۶m�]�c�����o��ʟN���Ƽ��O��h�?�%���f��O�>s���<�ڡÇQR��۷�&��쇩?�A�Pt��C'�&X;�ԉ�b.I�D�֭[�
�m�y�zпb�J�ڳg*�&Ohz�(�];u҂8��X�p���0v���2C�(E��ʬ���T�:�t1E�
@��B�5�^�n�i�%�PueEw���V����2��V�����N~E��r��dR��KK�Y2w
Z�l��!C���~�������R3�t�đ-�Z+����5��>��hhc
����pv2��	@yU5Χ�2gd}�đ%��:4�>��"����~��h�rnN2���PKq"B�s�sb�D����ٱQ�F��UZ+�P+�$��)�� T0����
�]�
��$@�D"#5�,�Ob��)B(E��
0�/ɶ; �Ζ�h���YE��|)$OI�f�|�	������^�tԖ�.<N��/��g�g�\q�����p8��,@�c�p��@ebb��m��e�>�\V9;�����at�
��/���5ؚq6�n��uW������ϧL��AtlB��?dԯw�ع��זϿ�xƙ��O�x�(hǸ!��	�O�xy�Z�dž�%�(G�	�ݳw�o<xx��ç�B�����GB��ݼ}�1^S����1�J7#�)s}�i��&��.����&
b�i�&)4�`�ȻC�Q\65~�U(����t��?{����AP�ـ�Q/��[��u�TIEND�B`�media/images/mime-icon-32/tar.png000064400000002035152177723720012500 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx͕��dI@��ֶm�n۶{��(WM׶mk��['����<��q"#�*�=ɛ�\���Rp�̙r��%��=�E��65�_j;�~Cp�p�$�Ԩr��}K�맗�η-�����D-?B��s���=K��H�����S��+��#�_�V�����g+�B��������q�a�+�މ����j) ��fbbbu�_�ele��S�
�$�]5�ᛚ_��`��u
�[\��G~(�0�	Ǘ�
+ƛ?����-�>��u(Vk�f�Yt6>�m�
ͽW��2�m.4~M�I�:f��O�a�%<Q&0X�ɰ"��g镖�̂,��/#B��Y��1�;�IT���	�Ƅc��3�c:�_�3����4rz*G87_��cy,��=@�@��*�/��	��i횝�c>�I	�T/
��	V�v�
��`m�MO��_
�n�y/����pW[��nN�GGC�:j�n3Ғ�`@���%��W�#6�8��j1&�3����AG䑒�A4����ݩ0���
�&��k����с�|�^�2�I(���b��o���e�|b)XXX�n�ho���J����P��}�`s����Jj�!������9bR�T���|Pp�I;��(I��E/��.={��槈��! �.~$�*��o�F#���<kBPe�s𰹀Ub�E@�#k*Z��K��6����&��-^����֛@6�
0^f�x�hd~:���X
����M!�����~��Fө}Z���B�f)0	����k�Z�"NMf��%� �S�"1~с�N �����$�L��{w�W�ġ�v�qu�a�<`|jx��8K�K;��*���F�4V\\,U�^���e�c�ۼ�힊6g�����y��\��p��/=��bҥDS���Ր%E�9�G~�t��T	{�t&UȲ����q�3�*g~w�	r�ţ�{�AKIEND�B`�media/images/mime-icon-32/pdf.png000064400000001675152177723720012474 0ustar00�PNG


IHDR  D����PLTE������������������������������������������xk�i\���ݼ�������孥���ܢ�Ӏx������������������ޝ����؊����qn���ޓ��la�ÿ��֫11�[Y�f[����ؠ����Z������pd������浯ۯ��L@�D;�1(�xnU��a�����g���pg�0#Є~������^W���ю��,&�������t�����ϹD>؍��
�gf޿�������TP���k���OD��̧�p昋��؊�Ó�ԝ�޿��ᙎ�]T����?3d�����᫥ڦ���儬ƻ��徹V�����w���!��ε���xp�vf����K<�������¼��Н��ۄ��ⶰ�h`�]P�f\����O�tRNS@��f�IDATx^��c�$A��>����K�X۶m��[�55�of6�;�Oϕ�J��<憳,��Wc������d�g�wu�ʆ����<�>�2���;�o� ��k����Z��Sܸ�#~�91��n4f��ܚ�uƻ6��7<:�`m���%��b9z��n����KY�F��UV{�
`�B�#HU�������:჋�P=~]�+���X�j�
R�X��(���ۼ�;T�@�o��#�.��h6��^�.���2�y^�����	sy��e]'d�>f
>t�H���(�!@}�`^$�V�����(G(t�����˻�Ϗ�����6^]��}�,Y�8���	n�<���ܶ1�曓c{���0���O�[6B�=�g��?����B��Ta��B;�65���v*B8�D���O����u��,�}���Z�d%0P5���E@�L�dIEND�B`�media/images/mime-icon-32/svg.png000064400000001636152177723720012517 0ustar00�PNG


IHDR  D���zPLTE�������������������������������������������ւ����쵾������䖷���Ԃ��y΀�ß���r�xy�u����ך��������}����أ��w�ˬ�Ϟ��t����򖤲r�|��芮�t����Λ�ֶ����έ�����������ʦ��}��tǀ���|��c����������r��������o�w���������t��o�y�����ާ�任�xł~��w�ǁ��v��o��m�t���s��������[�����������������۪��������Y��������������ãx��������m�~|�����������앲�^�����~����°���Ơ��_�����qt�tRNS@��f�IDATx^��c�$1��
[c[�mcm۶���d�w��^_�>�ɉ�?d��D�7A�b@hN.�{�]?5f�'X��?�����ޙ��&��nl,�].���c-�0���-ec��Dž�O�ͮ}[�m�/���}��87���L�]j8`���_k��OX�L����y1�S���ZPd��`�����Fʗ67Ky2t��9QQ&��P!��:�*R�+E��%�c�)��U-��݁7�X=�xg�O0������\�:����儐^�S��_^ٺ\��^�Y��)奷����d;�Q�'#^�G/��V�
�-hj��H$@��E��h��U����Y��#��(S'fD>
xP�(g�A�,���~62��;�,�f}�T���`�Zw]W0�$1���&@.�!e� H)�,�0�����{3`������}F���VC�\�IEND�B`�media/images/mime-icon-32/tgz.png000064400000002040152177723720012512 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx͕�d9��׭m۶ݶmTW
^���׶m�1�3���>���R���Knn�������ٳuᡯ���K]�1���>z�cs��o~�?#8�#���*�Z�?s�'N�䉳틻�]����[ٿ�AUxgg�T0;���:��P�
<i��7T�%u�7ͅgO+�3���sm�dxF?�����/=��,�n�
Ǡ���������Io��%(��x�f�ex�o�$�F��;�f����6��Hl����Nz>j�P2�@0�NqE�Sy!�*�S�e5�6utL�o�&����o�4�Xl��XS��5������w�˘��o�$���qN��CfA�:R�ո��6�S4̴%�4L�9jK�ޙ��ئ�M��s$;c�z~�.�_(�fo����Ǚ��uۅ��?��-e�C���Y룎��?���n_���l�}�5�qC�Ib8�Y�������*|ҙu�����54�ܢǕ{D���%⸆J_�CK?	�T�gic#�C��cUς�H��[s�D��i�6l^o����Nԃۋ L��{��|~}�Fh���`qq��C
#T�ġ��z$��bB�Gϑ�Tg����Ji�!�	�!5)���If)��0�m��#�!��Svd���P#V�@td�n�%#{õƻ���#��.F���J���	�F�lJγ�	A����Qc��
USB�ʤ�G\���l��d��n*�!Tĭ�4���l����E @�|�̌3��^/'�"JM&�h��o��R>��Ub�)JHª\s��e��i�`�?S�p�����V�J��$�g:��{�J��Zcu�W�.;��g��ri%��ړ��pu�1��R�Ds����8k<��`SG���
��!�R�k,8��ꑿ2R�TR.Eݼ!���s��7�@�&�9�F|)0x'���j3Иd��n�4~���d`���f��r���<
IEND�B`�media/images/mime-icon-32/sxd.png000064400000002357152177723720012517 0ustar00�PNG


IHDR  ��tRNS���7X}�IDATx�Vs�Iݟ�ŵm۶۶m�� ��E3�x&�(��l�lW}/.�Nuu��>��;s����X��Z5���8?����S�>��!0;;�gZ��^��44��aPu,�l&�-���8s�p��0Ν��']���O�O��o�H�b;������3N) �p�v����NV�l��z�,ƕó���kG�
ӹ��tPS�}lD
��:	����ݻ�{nc?�q�Tw��+�@
��{Fg
9"�2����%�����#F0���Z\ʊ�uZ�0��Ct�sJ#�]ЂyL�畩�^�'u�)4�>�V��h�i�.�Z��L�c|��,�X�G�1p��%B��l��hr-1������c��e%���F��/"�ǀ�?���+u�-�1�4##�E����k`7IgW�W�#K��k؏�śN+�D�q��|<�.���<b�0n���Y������*� �O.��܏-�$�w�XT�`!
 R��)Op���TgkWW�@2AA�2�����B8�N���	����B���c��Rb>���?��z�t�b��L6	�3�!�����ן���s��XF��3ذ9,�ҫg��c�}���~��S��|�w��lig��]���s���㧞|���X����(0�jA�����6V0숝��v����������h(�G���j��O~�����?
g�q|#� +(��р�����<h�!|�@�����o<�ңa��L���4/��E���
X��\�jA����Sxy�u����9ڒ�����]�U�ľ���Ͽ�"ʴn��Z�6����B4$�����B�CL,��������y��;����k���J��4\=#9��L5�O���R	���G�/zG�M�S%����N� �DVI��R��������_�Y~wq��ƅ����+C�a��@cV����HJ��B���������q�{�_�t��aP��
jB���H��TP���'@
\�����/8IMm�����X�R�-�]E��{��
m�+���`��Aퟤ�ph���"��������"�u:�I�
�yQ9d��Y	{�>�0)���_�`��M �~9b:y��%7IEND�B`�media/images/success.png000064400000003357152177723720011273 0ustar00�PNG


IHDR  szz��IDATxŖs�$Y���F��G�m�L���m۶m�ضg��6z��/�/�"�>7�����E�54~�=��v��t����'l/�Ѿ��a�����e��M3�yl��C��9���Izb|�����-V�「�t�0�1��?�@ƠG��	�2|���e��¶Mj&i���3
�tt]C� ��������O)�m��@�����c��ߴy>�LV��&��up(-���zի��>��b�5��a��>F$0��S��BvJaY��|�*��4.K��8z@���(e.	˶I��b�����[F�a9�A��5b�⊹��5
9�`0����;�w��+l�8U�|�ݢ�g�:�QWh�D���΍���g��l@��c�UN2�J��m���hv�=��l����N��v��hy����q_6���u3C'gC�l�OvZ*!+�v8[\AVZ�cZ7���v���v
��+--��������N���m��m����;����uu��ťt�߻��-�v(*�nH@7cy��e]��|�ɘ�s���m�ȑ(,:ӢJۚ���N�:��G%�\�������sUnO��?���hU�
O�;/�u��
��s�m�m����ίVB��^�z}~��s��I�-�ͻ��ѱ11�~]�4t���u�\H�o\
CӐ!��ذ�#G��ҍ�HMI楗^b��ͽ�9D�5j�.�ׯ��Ÿ��o�
N�2y�f��oH��2�8���zJ+,~X�i[֩�,'�^^��vآ���޽{�iӦ+�jT�\y��V;r�n"&x��%l���-��p!�%H-()!� ���L��hf,���u�z�x	B����~��ӧOg�P
�+�~�e�"��4M�
H䕷���7�l�N���b��B*Ba�R�'�Y�m�-���Sg�=={��O�0�b�I��o�R�J��y�4�_6��YL^"iw�K�q�h�D&+�%蒈���<��7Уy5r{�E��EBι�{�4nܸ�|h>� ����!]�v�p�e�!�***�,�\L ����ddT#�j
k� ����I�?̝�����bDGG#�&%%I��]�I<v�,|���_�(r�Fa,$�Uu@æu�T��������d�y�!���q��5�r�b�@�T��f͚�{�W���A&�KKMM헙�)+߈111�)%���y��ٰ��kv��F����ah�(�.�������ԬY������x��
6�E����v3�`0(�E�&66Ve�rq1&���r�V�;�	��ϑ�ʥ�^ZQOL �%�UP�۷o?�޳@a�믿�H
�3g�PTT�^��92-U���4$d��"�$$$���e�G}t'P[;v��V���Ç+��V~U�od�2���֫�SRR���e�Q"�i��Hm���4��;�=zT�QD\�x��;���
���P�#��ªU�$Wٱc��������_d\��9u��E�NZ�䒕�%�����{��I*��K��_r��$�����R�^����9/�w�^V��A��-A)uAI.�Ȯ���xl�c$��r�-9�?@���LH��;�=O�}���[~����d�[r�q�,�B��w/]�t���@
��~��ߋ `�@!p\L�?�	!Y��KL�B�Edt�n�|>IEND�B`�media/images/dots.gif000064400000000227152177723720010546 0ustar00GIF89a���挵�f����!�NETSCAPE2.0!�,@������l����>Օ[�!�,	
���a�j�!�,	
L�#�`�j�;media/images/folder.gif000064400000002415152177723720011051 0ustar00GIF89aPP��m4����aqqq٪������fcY������̙߿S�ו�����h�����ؿr��ߪ�xlE�ҍ�����tѫ9��f�߹Ч+����yI����ՂٳA�����篯��ݷ��ܼ]��
��͝��o���恡�b�y$ٱ:������ѲSlfR�����K��{��u֬1����̉��棣������Ô�����}�ߨ��p��]�ӣ�����9|||�������Tٳ+޵R�ݞ�s'�������������������rҡ�����Ş�9��#ҥ���ܶG�������DpgJϝ������ֹd�Z��~��]�0٫)��T��v���fff��l�����~�s1����H���ӭ;��x���!�~,PP��~�����������������������������������������������������������?<q'
_\	��'_!'l?�^5�Ƀ*#BB==,,uLBP.�?G|a

3@׭�[I��IM#V%J�Á�6D~#G� �&|��d�E9``�ym�9i�ԩ�	]8ȣ���-VA���:Id`���x!�����������"�!<}���M�[]���� �t�U�M��M�[������5�ز��l[�������`��2\�#��c���#���˘1ks!����@z�<O(P�r�p�c����%�Ue ���O0X����&ȓ+_΄�
"��f��̉�Zf�����k�SD���B0��{����˟_C�w�O%a=�U(�H�}0T@X��04��Vh�j��
4 �X)q��i�ebS0Q�5���F%�(c>@�Yn���E��؏@��c�&�*%�XD�B6٤E�+%�Ò�e��\r��R�G�o�aC�h�I�O��H��
H�i�x�'�
™Jr����j衆j����Q��¤�Vj饖*:G
��C����*j7��Y�
葂���꫰�z�����*��뮼�jjf�0ő�)`B�&���¡�jA�pG,�J*��9hp�_(���0���B\��	Y�+�Y��Z(@�0�P��@4�a*��
7�������j�A�����{�F��{�>A~��/����.�'�
g�k1�Th�16�4@�(#`��
�K�!
D�r�OWm��Xg���\w��`�-��d�m��h��v ;plg_system_highlight/highlight.css000064400000000121152177723720013451 0ustar00span.highlight {
	background-color:#FFFFCC;
	font-weight:bold;
	padding:1px 0;
}
com_joomlaupdate/js/json2.min.js000064400000005562152177723720012702 0ustar00"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return 10>t?"0"+t:t}function quote(t){return escapable.lastIndex=0,escapable.test(t)?'"'+t.replace(escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var n,r,o,f,u,p=gap,a=e[t];switch(a&&"object"==typeof a&&"function"==typeof a.toJSON&&(a=a.toJSON(t)),"function"==typeof rep&&(a=rep.call(e,t,a)),typeof a){case"string":return quote(a);case"number":return isFinite(a)?String(a):"null";case"boolean":case"null":return String(a);case"object":if(!a)return"null";if(gap+=indent,u=[],"[object Array]"===Object.prototype.toString.apply(a)){for(f=a.length,n=0;f>n;n+=1)u[n]=str(n,a)||"null";return o=0===u.length?"[]":gap?"[\n"+gap+u.join(",\n"+gap)+"\n"+p+"]":"["+u.join(",")+"]",gap=p,o}if(rep&&"object"==typeof rep)for(f=rep.length,n=0;f>n;n+=1)"string"==typeof rep[n]&&(r=rep[n],o=str(r,a),o&&u.push(quote(r)+(gap?": ":":")+o));else for(r in a)Object.prototype.hasOwnProperty.call(a,r)&&(o=str(r,a),o&&u.push(quote(r)+(gap?": ":":")+o));return o=0===u.length?"{}":gap?"{\n"+gap+u.join(",\n"+gap)+"\n"+p+"}":"{"+u.join(",")+"}",gap=p,o}}"function"!=typeof Date.prototype.toJSON&&(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},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var e,escapable,gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b","	":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(t,e,n){var r;if(gap="",indent="","number"==typeof n)for(r=0;n>r;r+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return str("",{"":t})}),"function"!=typeof JSON.parse&&(e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(c,d){function walk(t,e){var n,r,o=t[e];if(o&&"object"==typeof o)for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r=walk(o,n),void 0!==r?o[n]=r:delete o[n]);return d.call(t,e,o)}var j;if(c=String(c),e.lastIndex=0,e.test(c)&&(c=c.replace(e,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+c+")"),"function"==typeof d?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}();
com_joomlaupdate/js/encryption.min.js000064400000013464152177723720014041 0ustar00var Aes={};Aes.Cipher=function(r,e){for(var o=4,n=e.length/o-1,a=[[],[],[],[]],t=0;4*o>t;t++)a[t%4][Math.floor(t/4)]=r[t];a=Aes.AddRoundKey(a,e,0,o);for(var f=1;n>f;f++)a=Aes.SubBytes(a,o),a=Aes.ShiftRows(a,o),a=Aes.MixColumns(a,o),a=Aes.AddRoundKey(a,e,f,o);a=Aes.SubBytes(a,o),a=Aes.ShiftRows(a,o),a=Aes.AddRoundKey(a,e,n,o);for(var c=new Array(4*o),t=0;4*o>t;t++)c[t]=a[t%4][Math.floor(t/4)];return c},Aes.KeyExpansion=function(r){for(var e=4,o=r.length/4,n=o+6,a=new Array(e*(n+1)),t=new Array(4),f=0;o>f;f++){var c=[r[4*f],r[4*f+1],r[4*f+2],r[4*f+3]];a[f]=c}for(var f=o;e*(n+1)>f;f++){a[f]=new Array(4);for(var A=0;4>A;A++)t[A]=a[f-1][A];if(f%o==0){t=Aes.SubWord(Aes.RotWord(t));for(var A=0;4>A;A++)t[A]^=Aes.Rcon[f/o][A]}else o>6&&f%o==4&&(t=Aes.SubWord(t));for(var A=0;4>A;A++)a[f][A]=a[f-o][A]^t[A]}return a},Aes.SubBytes=function(r,e){for(var o=0;4>o;o++)for(var n=0;e>n;n++)r[o][n]=Aes.Sbox[r[o][n]];return r},Aes.ShiftRows=function(r,e){for(var o=new Array(4),n=1;4>n;n++){for(var a=0;4>a;a++)o[a]=r[n][(a+n)%e];for(var a=0;4>a;a++)r[n][a]=o[a]}return r},Aes.MixColumns=function(r,e){for(var o=0;4>o;o++){for(var n=new Array(4),a=new Array(4),t=0;4>t;t++)n[t]=r[t][o],a[t]=128&r[t][o]?r[t][o]<<1^283:r[t][o]<<1;r[0][o]=a[0]^n[1]^a[1]^n[2]^n[3],r[1][o]=n[0]^a[1]^n[2]^a[2]^n[3],r[2][o]=n[0]^n[1]^a[2]^n[3]^a[3],r[3][o]=n[0]^a[0]^n[1]^n[2]^a[3]}return r},Aes.AddRoundKey=function(r,e,o,n){for(var a=0;4>a;a++)for(var t=0;n>t;t++)r[a][t]^=e[4*o+t][a];return r},Aes.SubWord=function(r){for(var e=0;4>e;e++)r[e]=Aes.Sbox[r[e]];return r},Aes.RotWord=function(r){for(var e=r[0],o=0;3>o;o++)r[o]=r[o+1];return r[3]=e,r},Aes.Sbox=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Aes.Rcon=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]];var AesCtr={};AesCtr.encrypt=function(r,e,o){var n=16;if(128!=o&&192!=o&&256!=o)return"";r=Utf8.encode(r),e=Utf8.encode(e);for(var a=o/8,t=new Array(a),f=0;a>f;f++)t[f]=isNaN(e.charCodeAt(f))?0:e.charCodeAt(f);var c=Aes.Cipher(t,Aes.KeyExpansion(t));c=c.concat(c.slice(0,a-16));for(var A=new Array(n),d=(new Date).getTime(),i=Math.floor(d/1e3),u=d%1e3,f=0;4>f;f++)A[f]=i>>>8*f&255;for(var f=0;4>f;f++)A[f+4]=255&u;for(var s="",f=0;8>f;f++)s+=String.fromCharCode(A[f]);for(var h=Aes.KeyExpansion(c),v=Math.ceil(r.length/n),C=new Array(v),y=0;v>y;y++){for(var l=0;4>l;l++)A[15-l]=y>>>8*l&255;for(var l=0;4>l;l++)A[15-l-4]=y/4294967296>>>8*l;for(var g=Aes.Cipher(A,h),S=v-1>y?n:(r.length-1)%n+1,w=new Array(S),f=0;S>f;f++)w[f]=g[f]^r.charCodeAt(y*n+f),w[f]=String.fromCharCode(w[f]);C[y]=w.join("")}var p=s+C.join("");return p=Base64.encode(p)},AesCtr.decrypt=function(r,e,o){var n=16;if(128!=o&&192!=o&&256!=o)return"";r=Base64.decode(r),e=Utf8.encode(e);for(var a=o/8,t=new Array(a),f=0;a>f;f++)t[f]=isNaN(e.charCodeAt(f))?0:e.charCodeAt(f);var c=Aes.Cipher(t,Aes.KeyExpansion(t));c=c.concat(c.slice(0,a-16));var A=new Array(8);ctrTxt=r.slice(0,8);for(var f=0;8>f;f++)A[f]=ctrTxt.charCodeAt(f);for(var d=Aes.KeyExpansion(c),i=Math.ceil((r.length-8)/n),u=new Array(i),s=0;i>s;s++)u[s]=r.slice(8+s*n,8+s*n+n);r=u;for(var h=new Array(r.length),s=0;i>s;s++){for(var v=0;4>v;v++)A[15-v]=s>>>8*v&255;for(var v=0;4>v;v++)A[15-v-4]=(s+1)/4294967296-1>>>8*v&255;for(var C=Aes.Cipher(A,d),y=new Array(r[s].length),f=0;f<r[s].length;f++)y[f]=C[f]^r[s].charCodeAt(f),y[f]=String.fromCharCode(y[f]);h[s]=y.join("")}var l=h.join("");return l=Utf8.decode(l)};var Base64={};Base64.code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Base64.encode=function(r,e){e="undefined"==typeof e?!1:e;var o,n,a,t,f,c,A,d,i,u,s,h=[],v="",C=Base64.code;if(u=e?r.encodeUTF8():r,i=u.length%3,i>0)for(;i++<3;)v+="=",u+="\x00";for(i=0;i<u.length;i+=3)o=u.charCodeAt(i),n=u.charCodeAt(i+1),a=u.charCodeAt(i+2),t=o<<16|n<<8|a,f=t>>18&63,c=t>>12&63,A=t>>6&63,d=63&t,h[i/3]=C.charAt(f)+C.charAt(c)+C.charAt(A)+C.charAt(d);return s=h.join(""),s=s.slice(0,s.length-v.length)+v},Base64.decode=function(r,e){e="undefined"==typeof e?!1:e;var o,n,a,t,f,c,A,d,i,u,s=[],h=Base64.code;u=e?r.decodeUTF8():r;for(var v=0;v<u.length;v+=4)t=h.indexOf(u.charAt(v)),f=h.indexOf(u.charAt(v+1)),c=h.indexOf(u.charAt(v+2)),A=h.indexOf(u.charAt(v+3)),d=t<<18|f<<12|c<<6|A,o=d>>>16&255,n=d>>>8&255,a=255&d,s[v/4]=String.fromCharCode(o,n,a),64==A&&(s[v/4]=String.fromCharCode(o,n)),64==c&&(s[v/4]=String.fromCharCode(o));return i=s.join(""),e?i.decodeUTF8():i};var Utf8={};Utf8.encode=function(r){var e=r.replace(/[\u0080-\u07ff]/g,function(r){var e=r.charCodeAt(0);return String.fromCharCode(192|e>>6,128|63&e)});return e=e.replace(/[\u0800-\uffff]/g,function(r){var e=r.charCodeAt(0);return String.fromCharCode(224|e>>12,128|e>>6&63,128|63&e)})},Utf8.decode=function(r){var e=r.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(r){var e=(31&r.charCodeAt(0))<<6|63&r.charCodeAt(1);return String.fromCharCode(e)});return e=e.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(r){var e=(15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2);return String.fromCharCode(e)})};
com_joomlaupdate/js/encryption.js000064400000046064152177723720013261 0ustar00/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
/*  AES implementation in JavaScript (c) Chris Veness 2005-2010                                   */
/*   - see http://csrc.nist.gov/publications/PubsFIPS.html#197                                    */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */

var Aes = {};  // Aes namespace

/**
 * AES Cipher function: encrypt 'input' state with Rijndael algorithm
 *   applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
 *
 * @param {Number[]} input 16-byte (128-bit) input state array
 * @param {Number[][]} w   Key schedule as 2D byte-array (Nr+1 x Nb bytes)
 * @returns {Number[]}     Encrypted output state array
 */
Aes.Cipher = function(input, w) {    // main Cipher function [§5.1]
  var Nb = 4;               // block size (in words): no of columns in state (fixed at 4 for AES)
  var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys

  var state = [[],[],[],[]];  // initialise 4xNb byte-array 'state' with input [§3.4]
  for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];

  state = Aes.AddRoundKey(state, w, 0, Nb);

  for (var round=1; round<Nr; round++) {
    state = Aes.SubBytes(state, Nb);
    state = Aes.ShiftRows(state, Nb);
    state = Aes.MixColumns(state, Nb);
    state = Aes.AddRoundKey(state, w, round, Nb);
  }

  state = Aes.SubBytes(state, Nb);
  state = Aes.ShiftRows(state, Nb);
  state = Aes.AddRoundKey(state, w, Nr, Nb);

  var output = new Array(4*Nb);  // convert state to 1-d array before returning [§3.4]
  for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
  return output;
}

/**
 * Perform Key Expansion to generate a Key Schedule
 *
 * @param {Number[]} key Key as 16/24/32-byte array
 * @returns {Number[][]} Expanded key schedule as 2D byte-array (Nr+1 x Nb bytes)
 */
Aes.KeyExpansion = function(key) {  // generate Key Schedule (byte-array Nr+1 x Nb) from Key [§5.2]
  var Nb = 4;            // block size (in words): no of columns in state (fixed at 4 for AES)
  var Nk = key.length/4  // key length (in words): 4/6/8 for 128/192/256-bit keys
  var Nr = Nk + 6;       // no of rounds: 10/12/14 for 128/192/256-bit keys

  var w = new Array(Nb*(Nr+1));
  var temp = new Array(4);

  for (var i=0; i<Nk; i++) {
    var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
    w[i] = r;
  }

  for (var i=Nk; i<(Nb*(Nr+1)); i++) {
    w[i] = new Array(4);
    for (var t=0; t<4; t++) temp[t] = w[i-1][t];
    if (i % Nk == 0) {
      temp = Aes.SubWord(Aes.RotWord(temp));
      for (var t=0; t<4; t++) temp[t] ^= Aes.Rcon[i/Nk][t];
    } else if (Nk > 6 && i%Nk == 4) {
      temp = Aes.SubWord(temp);
    }
    for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
  }

  return w;
}

/*
 * ---- remaining routines are private, not called externally ----
 */
 
Aes.SubBytes = function(s, Nb) {    // apply SBox to state S [§5.1.1]
  for (var r=0; r<4; r++) {
    for (var c=0; c<Nb; c++) s[r][c] = Aes.Sbox[s[r][c]];
  }
  return s;
}

Aes.ShiftRows = function(s, Nb) {    // shift row r of state S left by r bytes [§5.1.2]
  var t = new Array(4);
  for (var r=1; r<4; r++) {
    for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb];  // shift into temp copy
    for (var c=0; c<4; c++) s[r][c] = t[c];         // and copy back
  }          // note that this will work for Nb=4,5,6, but not 7,8 (always 4 for AES):
  return s;  // see asmaes.sourceforge.net/rijndael/rijndaelImplementation.pdf
}

Aes.MixColumns = function(s, Nb) {   // combine bytes of each col of state S [§5.1.3]
  for (var c=0; c<4; c++) {
    var a = new Array(4);  // 'a' is a copy of the current column from 's'
    var b = new Array(4);  // 'b' is a•{02} in GF(2^8)
    for (var i=0; i<4; i++) {
      a[i] = s[i][c];
      b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b : s[i][c]<<1;
    }
    // a[n] ^ b[n] is a•{03} in GF(2^8)
    s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
    s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
    s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
    s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
  }
  return s;
}

Aes.AddRoundKey = function(state, w, rnd, Nb) {  // xor Round Key into state S [§5.1.4]
  for (var r=0; r<4; r++) {
    for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
  }
  return state;
}

Aes.SubWord = function(w) {    // apply SBox to 4-byte word w
  for (var i=0; i<4; i++) w[i] = Aes.Sbox[w[i]];
  return w;
}

Aes.RotWord = function(w) {    // rotate 4-byte word w left by one byte
  var tmp = w[0];
  for (var i=0; i<3; i++) w[i] = w[i+1];
  w[3] = tmp;
  return w;
}

// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes and KeyExpansion [§5.1.1]
Aes.Sbox =  [0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
             0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
             0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
             0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
             0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
             0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
             0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
             0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
             0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
             0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
             0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
             0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
             0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
             0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
             0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
             0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];

// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in GF(2^8)] [§5.2]
Aes.Rcon = [ [0x00, 0x00, 0x00, 0x00],
             [0x01, 0x00, 0x00, 0x00],
             [0x02, 0x00, 0x00, 0x00],
             [0x04, 0x00, 0x00, 0x00],
             [0x08, 0x00, 0x00, 0x00],
             [0x10, 0x00, 0x00, 0x00],
             [0x20, 0x00, 0x00, 0x00],
             [0x40, 0x00, 0x00, 0x00],
             [0x80, 0x00, 0x00, 0x00],
             [0x1b, 0x00, 0x00, 0x00],
             [0x36, 0x00, 0x00, 0x00] ]; 


/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
/*  AES Counter-mode implementation in JavaScript (c) Chris Veness 2005-2010                      */
/*   - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf                       */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */

var AesCtr = {};  // AesCtr namespace

/** 
 * Encrypt a text using AES encryption in Counter mode of operation
 *
 * Unicode multi-byte character safe
 *
 * @param {String} plaintext Source text to be encrypted
 * @param {String} password  The password to use to generate a key
 * @param {Number} nBits     Number of bits to be used in the key (128, 192, or 256)
 * @returns {string}         Encrypted text
 */
AesCtr.encrypt = function(plaintext, password, nBits) {
  var blockSize = 16;  // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
  if (!(nBits==128 || nBits==192 || nBits==256)) return '';  // standard allows 128/192/256 bit keys
  plaintext = Utf8.encode(plaintext);
  password = Utf8.encode(password);
  //var t = new Date();  // timer
        
  // use AES itself to encrypt password to get cipher key (using plain password as source for key 
  // expansion) - gives us well encrypted key
  var nBytes = nBits/8;  // no bytes in key
  var pwBytes = new Array(nBytes);
  for (var i=0; i<nBytes; i++) {
    pwBytes[i] = isNaN(password.charCodeAt(i)) ? 0 : password.charCodeAt(i);
  }
  var key = Aes.Cipher(pwBytes, Aes.KeyExpansion(pwBytes));  // gives us 16-byte key
  key = key.concat(key.slice(0, nBytes-16));  // expand key to 16/24/32 bytes long

  // initialise counter block (NIST SP800-38A §B.2): millisecond time-stamp for nonce in 1st 8 bytes,
  // block counter in 2nd 8 bytes
  var counterBlock = new Array(blockSize);
  var nonce = (new Date()).getTime();  // timestamp: milliseconds since 1-Jan-1970
  var nonceSec = Math.floor(nonce/1000);
  var nonceMs = nonce%1000;
  // encode nonce with seconds in 1st 4 bytes, and (repeated) ms part filling 2nd 4 bytes
  for (var i=0; i<4; i++) counterBlock[i] = (nonceSec >>> i*8) & 0xff;
  for (var i=0; i<4; i++) counterBlock[i+4] = nonceMs & 0xff; 
  // and convert it to a string to go on the front of the ciphertext
  var ctrTxt = '';
  for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]);

  // generate key schedule - an expansion of the key into distinct Key Rounds for each round
  var keySchedule = Aes.KeyExpansion(key);
  
  var blockCount = Math.ceil(plaintext.length/blockSize);
  var ciphertxt = new Array(blockCount);  // ciphertext as array of strings
  
  for (var b=0; b<blockCount; b++) {
    // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
    // done in two stages for 32-bit ops: using two words allows us to go past 2^32 blocks (68GB)
    for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8) & 0xff;
    for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8)

    var cipherCntr = Aes.Cipher(counterBlock, keySchedule);  // -- encrypt counter block --
    
    // block size is reduced on final block
    var blockLength = b<blockCount-1 ? blockSize : (plaintext.length-1)%blockSize+1;
    var cipherChar = new Array(blockLength);
    
    for (var i=0; i<blockLength; i++) {  // -- xor plaintext with ciphered counter char-by-char --
      cipherChar[i] = cipherCntr[i] ^ plaintext.charCodeAt(b*blockSize+i);
      cipherChar[i] = String.fromCharCode(cipherChar[i]);
    }
    ciphertxt[b] = cipherChar.join(''); 
  }

  // Array.join is more efficient than repeated string concatenation in IE
  var ciphertext = ctrTxt + ciphertxt.join('');
  ciphertext = Base64.encode(ciphertext);  // encode in base64
  
  //alert((new Date()) - t);
  return ciphertext;
}

/** 
 * Decrypt a text encrypted by AES in counter mode of operation
 *
 * @param {String} ciphertext Source text to be encrypted
 * @param {String} password   The password to use to generate a key
 * @param {Number} nBits      Number of bits to be used in the key (128, 192, or 256)
 * @returns {String}          Decrypted text
 */
AesCtr.decrypt = function(ciphertext, password, nBits) {
  var blockSize = 16;  // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
  if (!(nBits==128 || nBits==192 || nBits==256)) return '';  // standard allows 128/192/256 bit keys
  ciphertext = Base64.decode(ciphertext);
  password = Utf8.encode(password);
  //var t = new Date();  // timer
  
  // use AES to encrypt password (mirroring encrypt routine)
  var nBytes = nBits/8;  // no bytes in key
  var pwBytes = new Array(nBytes);
  for (var i=0; i<nBytes; i++) {
    pwBytes[i] = isNaN(password.charCodeAt(i)) ? 0 : password.charCodeAt(i);
  }
  var key = Aes.Cipher(pwBytes, Aes.KeyExpansion(pwBytes));
  key = key.concat(key.slice(0, nBytes-16));  // expand key to 16/24/32 bytes long

  // recover nonce from 1st 8 bytes of ciphertext
  var counterBlock = new Array(8);
  ctrTxt = ciphertext.slice(0, 8);
  for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
  
  // generate key schedule
  var keySchedule = Aes.KeyExpansion(key);

  // separate ciphertext into blocks (skipping past initial 8 bytes)
  var nBlocks = Math.ceil((ciphertext.length-8) / blockSize);
  var ct = new Array(nBlocks);
  for (var b=0; b<nBlocks; b++) ct[b] = ciphertext.slice(8+b*blockSize, 8+b*blockSize+blockSize);
  ciphertext = ct;  // ciphertext is now array of block-length strings

  // plaintext will get generated block-by-block into array of block-length strings
  var plaintxt = new Array(ciphertext.length);

  for (var b=0; b<nBlocks; b++) {
    // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
    for (var c=0; c<4; c++) counterBlock[15-c] = ((b) >>> c*8) & 0xff;
    for (var c=0; c<4; c++) counterBlock[15-c-4] = (((b+1)/0x100000000-1) >>> c*8) & 0xff;

    var cipherCntr = Aes.Cipher(counterBlock, keySchedule);  // encrypt counter block

    var plaintxtByte = new Array(ciphertext[b].length);
    for (var i=0; i<ciphertext[b].length; i++) {
      // -- xor plaintxt with ciphered counter byte-by-byte --
      plaintxtByte[i] = cipherCntr[i] ^ ciphertext[b].charCodeAt(i);
      plaintxtByte[i] = String.fromCharCode(plaintxtByte[i]);
    }
    plaintxt[b] = plaintxtByte.join('');
  }

  // join array of blocks into single plaintext string
  var plaintext = plaintxt.join('');
  plaintext = Utf8.decode(plaintext);  // decode from UTF8 back to Unicode multi-byte chars
  
  //alert((new Date()) - t);
  return plaintext;
}


/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
/*  Base64 class: Base 64 encoding / decoding (c) Chris Veness 2002-2010                          */
/*    note: depends on Utf8 class                                                                 */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */

var Base64 = {};  // Base64 namespace

Base64.code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

/**
 * Encode string into Base64, as defined by RFC 4648 [http://tools.ietf.org/html/rfc4648]
 * (instance method extending String object). As per RFC 4648, no newlines are added.
 *
 * @param {String} str The string to be encoded as base-64
 * @param {Boolean} [utf8encode=false] Flag to indicate whether str is Unicode string to be encoded 
 *   to UTF8 before conversion to base64; otherwise string is assumed to be 8-bit characters
 * @returns {String} Base64-encoded string
 */ 
Base64.encode = function(str, utf8encode) {  // http://tools.ietf.org/html/rfc4648
  utf8encode =  (typeof utf8encode == 'undefined') ? false : utf8encode;
  var o1, o2, o3, bits, h1, h2, h3, h4, e=[], pad = '', c, plain, coded;
  var b64 = Base64.code;
   
  plain = utf8encode ? str.encodeUTF8() : str;
  
  c = plain.length % 3;  // pad string to length of multiple of 3
  if (c > 0) { while (c++ < 3) { pad += '='; plain += '\0'; } }
  // note: doing padding here saves us doing special-case packing for trailing 1 or 2 chars
   
  for (c=0; c<plain.length; c+=3) {  // pack three octets into four hexets
    o1 = plain.charCodeAt(c);
    o2 = plain.charCodeAt(c+1);
    o3 = plain.charCodeAt(c+2);
      
    bits = o1<<16 | o2<<8 | o3;
      
    h1 = bits>>18 & 0x3f;
    h2 = bits>>12 & 0x3f;
    h3 = bits>>6 & 0x3f;
    h4 = bits & 0x3f;

    // use hextets to index into code string
    e[c/3] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
  }
  coded = e.join('');  // join() is far faster than repeated string concatenation in IE
  
  // replace 'A's from padded nulls with '='s
  coded = coded.slice(0, coded.length-pad.length) + pad;
   
  return coded;
}

/**
 * Decode string from Base64, as defined by RFC 4648 [http://tools.ietf.org/html/rfc4648]
 * (instance method extending String object). As per RFC 4648, newlines are not catered for.
 *
 * @param {String} str The string to be decoded from base-64
 * @param {Boolean} [utf8decode=false] Flag to indicate whether str is Unicode string to be decoded 
 *   from UTF8 after conversion from base64
 * @returns {String} decoded string
 */ 
Base64.decode = function(str, utf8decode) {
  utf8decode =  (typeof utf8decode == 'undefined') ? false : utf8decode;
  var o1, o2, o3, h1, h2, h3, h4, bits, d=[], plain, coded;
  var b64 = Base64.code;

  coded = utf8decode ? str.decodeUTF8() : str;
  
  
  for (var c=0; c<coded.length; c+=4) {  // unpack four hexets into three octets
    h1 = b64.indexOf(coded.charAt(c));
    h2 = b64.indexOf(coded.charAt(c+1));
    h3 = b64.indexOf(coded.charAt(c+2));
    h4 = b64.indexOf(coded.charAt(c+3));
      
    bits = h1<<18 | h2<<12 | h3<<6 | h4;
      
    o1 = bits>>>16 & 0xff;
    o2 = bits>>>8 & 0xff;
    o3 = bits & 0xff;
    
    d[c/4] = String.fromCharCode(o1, o2, o3);
    // check for padding
    if (h4 == 0x40) d[c/4] = String.fromCharCode(o1, o2);
    if (h3 == 0x40) d[c/4] = String.fromCharCode(o1);
  }
  plain = d.join('');  // join() is far faster than repeated string concatenation in IE
   
  return utf8decode ? plain.decodeUTF8() : plain; 
}


/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */
/*  Utf8 class: encode / decode between multi-byte Unicode characters and UTF-8 multiple          */
/*              single-byte character encoding (c) Chris Veness 2002-2010                         */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */

var Utf8 = {};  // Utf8 namespace

/**
 * Encode multi-byte Unicode string into utf-8 multiple single-byte characters 
 * (BMP / basic multilingual plane only)
 *
 * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
 *
 * @param {String} strUni Unicode string to be encoded as UTF-8
 * @returns {String} encoded string
 */
Utf8.encode = function(strUni) {
  // use regular expressions & String.replace callback function for better efficiency 
  // than procedural approaches
  var strUtf = strUni.replace(
      /[\u0080-\u07ff]/g,  // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
      function(c) { 
        var cc = c.charCodeAt(0);
        return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
    );
  strUtf = strUtf.replace(
      /[\u0800-\uffff]/g,  // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
      function(c) { 
        var cc = c.charCodeAt(0); 
        return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
    );
  return strUtf;
}

/**
 * Decode utf-8 encoded string back into multi-byte Unicode characters
 *
 * @param {String} strUtf UTF-8 string to be decoded back to Unicode
 * @returns {String} decoded string
 */
Utf8.decode = function(strUtf) {
  var strUni = strUtf.replace(
      /[\u00c0-\u00df][\u0080-\u00bf]/g,                 // 2-byte chars
      function(c) {  // (note parentheses for precence)
        var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
        return String.fromCharCode(cc); }
    );
  strUni = strUni.replace(
      /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,  // 3-byte chars
      function(c) {  // (note parentheses for precence)
        var cc = ((c.charCodeAt(0)&0x0f)<<12) | ((c.charCodeAt(1)&0x3f)<<6) | ( c.charCodeAt(2)&0x3f); 
        return String.fromCharCode(cc); }
    );
  return strUni;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  */com_joomlaupdate/js/update.min.js000064400000005765152177723720013136 0ustar00var stat_total=0,stat_files=0,stat_inbytes=0,stat_outbytes=0;function error_callback(t){alert("ERROR:\n"+t)}function empty(t){var r;if(""===t||0===t||"0"===t||null===t||!1===t||void 0===t)return!0;if("object"==typeof t){for(r in t)return!1;return!0}return!1}function is_array(t){var r,e,s="";if(!t)return!1;if(this.php_js=this.php_js||{},this.php_js.ini=this.php_js.ini||{},"object"==typeof t){if(this.php_js.ini["phpjs.objectsAsArrays"]&&(this.php_js.ini["phpjs.objectsAsArrays"].local_value.toLowerCase&&"off"===this.php_js.ini["phpjs.objectsAsArrays"].local_value.toLowerCase()||0===parseInt(this.php_js.ini["phpjs.objectsAsArrays"].local_value,10)))return t.hasOwnProperty("length")&&!t.propertyIsEnumerable("length")&&"String"!==(r=t.constructor,(e=/\W*function\s+([\w\$]+)\s*\(/.exec(r))?e[1]:"(Anonymous)");if(t.hasOwnProperty)for(s in t)if(!1===t.hasOwnProperty(s))return!1;return!0}return!1}doEncryptedAjax=function(t,r,e){var s=JSON.stringify(t);joomlaupdate_password.length>0&&(s=AesCtr.encrypt(s,joomlaupdate_password,128));var a={type:"POST",url:joomlaupdate_ajax_url,cache:!1,data:{json:s},timeout:6e5,success:function(t,s){var a="";if(-1==(n=t.indexOf("###")))return t="Invalid AJAX data:\n"+t,void(null==e?null!=error_callback&&error_callback(t):e(t));0!=n?(t.substr(0,n),a=t.substr(n)):a=t;var n=(a=a.substr(3)).lastIndexOf("###");a=a.substr(0,n);var o=null;if(joomlaupdate_password.length>0)try{o=JSON.parse(a)}catch(t){a=AesCtr.decrypt(a,joomlaupdate_password,128)}try{empty(o)&&(o=JSON.parse(a))}catch(r){t=r.message+"\n<br/>\n<pre>\n"+a+"\n</pre>";return void(null==e?null!=error_callback&&error_callback(t):e(t))}r(o)},error:function(t){var r="AJAX Loading Error: "+t.statusText;null==e?null!=error_callback&&error_callback(r):e(r)}};jQuery.ajax(a)},pingExtract=function(){this.stat_files=0,this.stat_inbytes=0,this.stat_outbytes=0;this.doEncryptedAjax({task:"ping"},function(t){startExtract(t)})},startExtract=function(){this.stat_files=0,this.stat_inbytes=0,this.stat_outbytes=0;this.doEncryptedAjax({task:"startRestore"},function(t){stepExtract(t)})},stepExtract=function(t){0!=t.status?(empty(t.Warnings),empty(t.factory)||(extract_factory=t.factory),t.done?finalizeUpdate():(stat_inbytes+=t.bytesIn,stat_percent=100*stat_inbytes/joomlaupdate_totalsize,stat_outbytes+=t.bytesOut,stat_files+=t.files,stat_percent<100?jQuery("#progress-bar").css("width",stat_percent+"%").attr("aria-valuenow",stat_percent):stat_percent>100?(stat_percent=100,jQuery("#progress-bar").css("width",stat_percent+"%").attr("aria-valuenow",stat_percent)):jQuery("#progress-bar").removeClass("bar-success"),jQuery("#extpercent").text(stat_percent.toFixed(1)+"%"),jQuery("#extbytesin").text(stat_inbytes),jQuery("#extbytesout").text(stat_outbytes),jQuery("#extfiles").text(stat_files),post={task:"stepRestore",factory:t.factory},doEncryptedAjax(post,function(t){stepExtract(t)}))):error_callback(t.message)},finalizeUpdate=function(){var t={task:"finalizeRestore",factory:window.factory};doEncryptedAjax(t,function(t){window.location=joomlaupdate_return_url})};
com_joomlaupdate/js/default.min.js000064400000000701152177723720013261 0ustar00function extractionMethodHandler(e,t){jQuery(function(l){$em=l(e),displayStyle="direct"===$em.val()?"none":"table-row",document.getElementById(t+"_hostname").style.display=displayStyle,document.getElementById(t+"_port").style.display=displayStyle,document.getElementById(t+"_username").style.display=displayStyle,document.getElementById(t+"_password").style.display=displayStyle,document.getElementById(t+"_directory").style.display=displayStyle})}
com_joomlaupdate/js/update.js000064400000020234152177723720012340 0ustar00/**
 *  @package    AkeebaCMSUpdate
 *  @copyright  Copyright (c)2010-2014 Nicholas K. Dionysopoulos
 *  @license    GNU General Public License version 3, or later
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

var stat_total = 0;
var stat_files = 0;
var stat_inbytes = 0;
var stat_outbytes = 0;

/**
 * An extremely simple error handler, dumping error messages to screen
 *
 * @param error The error message string
 */
function error_callback(error)
{
	alert("ERROR:\n"+error);
}

/**
 * Performs an encrypted AJAX request and returns the parsed JSON output.
 * The window.ajax_url is used as the AJAX proxy URL.
 * If there is no errorCallback, the window.error_callback is used.
 *
 * @param   object    data             An object with the query data, e.g. a serialized form
 * @param   function  successCallback  A function accepting a single object parameter, called on success
 * @param   function  errorCallback    A function accepting a single string parameter, called on failure
 */
doEncryptedAjax = function(data, successCallback, errorCallback)
{
	var json = JSON.stringify(data);
	if( joomlaupdate_password.length > 0 )
	{
		json = AesCtr.encrypt( json, joomlaupdate_password, 128 );
	}
	var post_data = {
		'json':     json
	};

	var structure =
	{
		type: "POST",
		url: joomlaupdate_ajax_url,
		cache: false,
		data: post_data,
		timeout: 600000,

		success: function(msg, responseXML)
		{
			// Initialize
			var junk = null;
			var message = "";

			// Get rid of junk before the data
			var valid_pos = msg.indexOf('###');

			if( valid_pos == -1 )
			{
				// Valid data not found in the response
				msg = 'Invalid AJAX data:\n' + msg;

				if (errorCallback == null)
				{
					if(error_callback != null)
					{
						error_callback(msg);
					}
				}
				else
				{
					errorCallback(msg);
				}

				return;
			}
			else if( valid_pos != 0 )
			{
				// Data is prefixed with junk
				junk = msg.substr(0, valid_pos);
				message = msg.substr(valid_pos);
			}
			else
			{
				message = msg;
			}

			message = message.substr(3); // Remove triple hash in the beginning

			// Get of rid of junk after the data
			var valid_pos = message.lastIndexOf('###');

			message = message.substr(0, valid_pos); // Remove triple hash in the end

			// Decrypt if required
			var data = null;
			if( joomlaupdate_password.length > 0 )
			{
				try
				{
					var data = JSON.parse(message);
				}
				catch(err)
				{
					message = AesCtr.decrypt(message, joomlaupdate_password, 128);
				}
			}

			try
			{
				if (empty(data))
				{
					data = JSON.parse(message);
				}
			}
			catch(err)
			{
				var msg = err.message + "\n<br/>\n<pre>\n" + message + "\n</pre>";

				if (errorCallback == null)
				{
					if (error_callback != null)
					{
						error_callback(msg);
					}
				}
				else
				{
					errorCallback(msg);
				}

				return;
			}

			// Call the callback function
			successCallback(data);
		},

		error: function(req)
		{
			var message = 'AJAX Loading Error: ' + req.statusText;

			if(errorCallback == null)
			{
				if (error_callback != null)
				{
					error_callback(message);
				}
			}
			else
			{
				errorCallback(message);
			}
		}
	};

	jQuery.ajax( structure );
};

/**
 * Pings the update script (making sure its executable)
 */
pingExtract = function()
{
	// Reset variables
	this.stat_files = 0;
	this.stat_inbytes = 0;
	this.stat_outbytes = 0;

	// Do AJAX post
	var post = {task : 'ping'};

	this.doEncryptedAjax(post,
		function(data) {
			startExtract(data);
		});
};

startExtract = function()
{
	// Reset variables
	this.stat_files = 0;
	this.stat_inbytes = 0;
	this.stat_outbytes = 0;

	var post = { task : 'startRestore' };

	this.doEncryptedAjax(post, function(data){
		stepExtract(data);
	});
};

stepExtract = function(data)
{
	if(data.status == false)
	{
		// handle failure
		error_callback(data.message);

		return;
	}

	if( !empty(data.Warnings) )
	{
		// @todo Handle warnings
		/**
		 $.each(data.Warnings, function(i, item){
            $('#warnings').append(
                $(document.createElement('div'))
                    .html(item)
            );
            $('#warningsBox').show('fast');
        });
		 /**/
	}

	if (!empty(data.factory))
	{
		extract_factory = data.factory;
	}

	if(data.done)
	{
		finalizeUpdate();
	}
	else
	{
		// Add data to variables
		stat_inbytes += data.bytesIn;
		stat_percent = (stat_inbytes * 100) / joomlaupdate_totalsize;

		// Update GUI
		stat_outbytes += data.bytesOut;
		stat_files += data.files;

		if (stat_percent < 100)
		{
			jQuery('#progress-bar').css('width', stat_percent + '%').attr('aria-valuenow', stat_percent);
		}
		else if (stat_percent > 100)
		{
			stat_percent = 100;
			jQuery('#progress-bar').css('width', stat_percent + '%').attr('aria-valuenow', stat_percent);
		}
		else
		{
			jQuery('#progress-bar').removeClass('bar-success');
		}

		jQuery('#extpercent').text(stat_percent.toFixed(1) + '%');
		jQuery('#extbytesin').text(stat_inbytes);
		jQuery('#extbytesout').text(stat_outbytes);
		jQuery('#extfiles').text(stat_files);

		// Do AJAX post
		post = {
			task: 'stepRestore',
			factory: data.factory
		};
		doEncryptedAjax(post, function(data){
			stepExtract(data);
		});
	}
};

finalizeUpdate = function ()
{
	// Do AJAX post
	var post = { task : 'finalizeRestore', factory: window.factory };
	doEncryptedAjax(post, function(data){
		window.location = joomlaupdate_return_url;
	});
};


/**
 * Is a variable empty?
 *
 * Part of php.js
 *
 * @see  http://phpjs.org/
 *
 * @param   mixed  mixed_var  The variable
 *
 * @returns  boolean  True if empty
 */
function empty (mixed_var)
{
	var key;

	if (mixed_var === "" ||
		mixed_var === 0 ||
		mixed_var === "0" ||
		mixed_var === null ||
		mixed_var === false ||
		typeof mixed_var === 'undefined'
	){
		return true;
	}

	if (typeof mixed_var == 'object')
	{
		for (key in mixed_var)
		{
			return false;
		}

		return true;
	}

	return false;
}

/**
 * Is the variable an array?
 *
 * Part of php.js
 *
 * @see  http://phpjs.org/
 *
 * @param   mixed  mixed_var  The variable
 *
 * @returns  boolean  True if it is an array or an object
 */
function is_array (mixed_var)
{
	var key = '';
	var getFuncName = function (fn) {
		var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);

		if (!name) {
			return '(Anonymous)';
		}

		return name[1];
	};

	if (!mixed_var)
	{
		return false;
	}

	// BEGIN REDUNDANT
	this.php_js = this.php_js || {};
	this.php_js.ini = this.php_js.ini || {};
	// END REDUNDANT

	if (typeof mixed_var === 'object')
	{
		if (this.php_js.ini['phpjs.objectsAsArrays'] &&  // Strict checking for being a JavaScript array (only check this way if call ini_set('phpjs.objectsAsArrays', 0) to disallow objects as arrays)
			(
			(this.php_js.ini['phpjs.objectsAsArrays'].local_value.toLowerCase &&
			this.php_js.ini['phpjs.objectsAsArrays'].local_value.toLowerCase() === 'off') ||
			parseInt(this.php_js.ini['phpjs.objectsAsArrays'].local_value, 10) === 0)
		) {
			return mixed_var.hasOwnProperty('length') && // Not non-enumerable because of being on parent class
			!mixed_var.propertyIsEnumerable('length') && // Since is own property, if not enumerable, it must be a built-in function
			getFuncName(mixed_var.constructor) !== 'String'; // exclude String()
		}

		if (mixed_var.hasOwnProperty)
		{
			for (key in mixed_var) {
				// Checks whether the object has the specified property
				// if not, we figure it's not an object in the sense of a php-associative-array.
				if (false === mixed_var.hasOwnProperty(key)) {
					return false;
				}
			}
		}

		// Read discussion at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_is_array/
		return true;
	}

	return false;
}
com_joomlaupdate/js/default.js000064400000001052152177723720012477 0ustar00function extractionMethodHandler(target, prefix)
{
	jQuery(function ($) {
		$em = $(target);
		displayStyle = ($em.val() === 'direct') ? 'none' : 'table-row';

		document.getElementById(prefix + '_hostname').style.display = displayStyle;
		document.getElementById(prefix + '_port').style.display = displayStyle;
		document.getElementById(prefix + '_username').style.display = displayStyle;
		document.getElementById(prefix + '_password').style.display = displayStyle;
		document.getElementById(prefix + '_directory').style.display = displayStyle;
	});
}
com_joomlaupdate/js/json2.js000064400000006465152177723720012123 0ustar00/*
 *  json2.js
 *  2014-02-04
 *  Public Domain.
 *  NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
 *  See http://www.JSON.org/js.html
 */
if(typeof JSON!=='object'){JSON={}}(function(){'use strict';function f(n){return n<10?'0'+n:n}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};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}}var e,escapable,gap,indent,meta,rep;function quote(b){escapable.lastIndex=0;return escapable.test(b)?'"'+b.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+b+'"'}function str(a,b){var i,k,v,length,mind=gap,partial,value=b[a];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(a)}if(typeof rep==='function'){value=rep.call(b,a,value)}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v}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{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v}}if(typeof JSON.stringify!=='function'){escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};JSON.stringify=function(a,b,c){var i;gap='';indent='';if(typeof c==='number'){for(i=0;i<c;i+=1){indent+=' '}}else if(typeof c==='string'){indent=c}rep=b;if(b&&typeof b!=='function'&&(typeof b!=='object'||typeof b.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':a})}}if(typeof JSON.parse!=='function'){e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;JSON.parse=function(c,d){var j;function walk(a,b){var k,v,value=a[b];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 d.call(a,b,value)}c=String(c);e.lastIndex=0;if(e.test(c)){c=c.replace(e,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+c+')');return typeof d==='function'?walk({'':j},''):j}throw new SyntaxError('JSON.parse');}}}());
com_associations/css/sidebyside.css000064400000002366152177723720013553 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

.sidebyside .outer-panel {
	float: left;
	width: 50%;
}

.sidebyside #left-panel .inner-panel {
	padding: 0 10px 0 0;
}

.sidebyside #right-panel .inner-panel {
	padding: 0 0 0 10px;
}

.sidebyside .full-width {
	float: none !important;
	width: 100% !important;
}

.sidebyside .full-width .inner-panel {
	padding: 0 !important;
}

#reference-association, #target-association {
	width: 100%;
	height: 1500px;
	overflow-y: auto;
	border: 0 !important;
}

.target-text {
	float: left;
	width: 30%;
}

/* RTL overrides */
html[dir=rtl] .sidebyside .outer-panel {
	float: right;
}

html[dir=rtl] .sidebyside #left-panel .inner-panel {
	padding: 0 0 0 10px;
}

html[dir=rtl] .sidebyside #right-panel .inner-panel {
	padding: 0 10px 0 0;
}

html[dir=rtl] .sidebyside .full-width .inner-panel {
	padding: 0 !important;
}

html[dir=rtl] .target-text {
	float: right;
}

/* Responsive layout */
@media (max-width: 767px) {
	.sidebyside .outer-panel {
		float: none;
		width: 100%;
	}

	.sidebyside #left-panel .inner-panel {
		padding: 0;
	}

	.sidebyside #right-panel .inner-panel {
		padding: 0;
	}
}
com_associations/js/sidebyside.js000064400000016234152177723720013222 0ustar00jQuery(document).ready(function(t){t("#toolbar-target").hide(),t("#toolbar-copy").hide(),Joomla.submitbutton=function(e){if("association.cancel"===e)Joomla.submitform(e);else if("copy"===e){Joomla.loadingLayer("show");var a=document.getElementById("target-association").getAttribute("data-language"),i=window.frames["reference-association"].document.getElementById("jform_language");i.removeAttribute("disabled"),i.value=a,window.frames["reference-association"].Joomla.submitbutton(document.getElementById("adminForm").getAttribute("data-associatedview")+".save2copy")}else if("undo-association"===e){var o=document.getElementById("reference-association"),n=document.getElementById("target-association"),s=(o.getAttribute("data-id"),o.getAttribute("data-language").replace(/-/,"_"));n.getAttribute("data-id"),a=n.getAttribute("data-language").replace(/-/,"_");o=t(o).contents(),n=t(n).contents(),o.find("#jform_associations_"+a+"_id").val(""),o.find("#jform_associations_"+a+"_name").val(""),o.find("#jform_associations_"+a+"_chzn").remove(),o.find("#jform_associations_"+a).val("").change().chosen();var d="";t("#jform_itemlanguage option").each(function(){void 0!==(d=t(this).val().split("|")[0])&&(d=d.replace(/-/,"_"),n.find("#jform_associations_"+d+"_id").val(""),n.find("#jform_associations_"+d+"_chzn").remove(),n.find("#jform_associations_"+d).val("").change().chosen())}),n.find("#jform_associations_"+s+"_id").val(""),n.find("#jform_associations_"+s+"_name").val(""),n.find("#jform_associations_"+s+"_chzn").remove(),n.find("#jform_associations_"+s).val("").change().chosen();var r=t("#jform_itemlanguage").val(),c=a.replace(/_/,"-");t('#jform_itemlanguage option[value="'+r+'"]').val(c+":0:add"),t("#jform_itemlanguage").val("").change(),t("#jform_itemlanguage").trigger("liszt:updated"),Joomla.submitbutton("reference")}else t("#"+e+"-association").contents().find("#jform_language").attr("disabled",!1),window.frames[e+"-association"].Joomla.submitbutton(document.getElementById("adminForm").getAttribute("data-associatedview")+".apply");return!1},Joomla.loadingLayer("load"),t(document).on("click","#toogle-left-panel",function(){var e=this.getAttribute("data-hide-reference"),a=this.getAttribute("data-show-reference");t(this).text()===e?t(this).text(a):t(this).text(e),t("#left-panel").toggle(),t("#right-panel").toggleClass("full-width")}),t(document).on("change","#jform_itemlanguage",function(){var e=document.getElementById("target-association"),a=t(this).val();""!==a&&void 0!==a?(e.setAttribute("data-action",a.split(":")[2]),e.setAttribute("data-id",a.split(":")[1]),e.setAttribute("data-language",a.split(":")[0]),Joomla.loadingLayer("show"),e.src=e.getAttribute("data-editurl")+"&task="+e.getAttribute("data-item")+"."+e.getAttribute("data-action")+"&id="+e.getAttribute("data-id")):(t("#toolbar-target").hide(),t("#toolbar-copy").hide(),t("#select-change").addClass("hidden"),t("#remove-assoc").addClass("hidden"),e.setAttribute("data-action",""),e.setAttribute("data-id","0"),e.setAttribute("data-language",""),e.src="")}),t("#reference-association").on("load",function(){var e=Joomla.getOptions("targetSrc",!1);if(e)return e=e.split("&amp;").join("&"),document.getElementById("target-association").setAttribute("src",e),void Joomla.loadOptions({targetSrc:!1});if(document.getElementById("target-association").setAttribute("src",document.getElementById("target-association").getAttribute("src")),t(this).contents().find("#jform_id").val()!==this.getAttribute("data-id")){var a=document.getElementById("target-association");a.src=a.getAttribute("data-editurl")+"&task="+a.getAttribute("data-item")+".edit&id="+t(this).contents().find("#jform_id").val(),this.src=this.getAttribute("data-editurl")+"&task="+this.getAttribute("data-item")+".edit&id="+this.getAttribute("data-id")}var i=t(this).contents();i.find("#jform_language_chzn").remove(),i.find("#jform_language").attr("disabled",!0).chosen(),i.find("#associations").find(".btn").remove();var o="";t("#jform_itemlanguage option").each(function(){void 0!==(o=t(this).val().split(":"))[0]&&(langAssociation=o[0].replace(/-/,"_"),""==i.find("#jform_associations_"+langAssociation+"_id").val()&&i.find("#jform_associations_"+langAssociation+"_name").val(document.getElementById("reference-association").getAttribute("data-no-assoc")))}),Joomla.loadingLayer("hide")}),t("#target-association").on("load",function(){if(""!=this.getAttribute("src")){t("#toolbar-target").show(),t("#toolbar-copy").show(),t("#select-change").removeClass("hidden");var e=this.getAttribute("data-language"),a=this.getAttribute("data-id"),i=t(this).contents().find("#jform_id").val()||"0";if(t(this).contents().find('a[href="#associations"]').parent().find(".btn").remove(),t(this).contents().find("#associations").find(".btn").remove(),t(this).contents().find("#associations").hasClass("active")&&(t(this).contents().find('a[href="#associations"]').parent().removeClass("active"),t(this).contents().find("#associations").removeClass("active"),t(this).contents().find(".nav-tabs").find("li").first().addClass("active"),t(this).contents().find(".tab-content").find(".tab-pane").first().addClass("active")),t(this).contents().find("#jform_language_chzn").remove(),t(this).contents().find("#jform_language").val(e).change().attr("disabled",!0).chosen(),"0"==i)document.getElementById("select-change-text").innerHTML=document.getElementById("select-change").getAttribute("data-select");else{document.getElementById("select-change-text").innerHTML=document.getElementById("select-change").getAttribute("data-change"),t("#remove-assoc").removeClass("hidden"),t("#toolbar-copy").hide();var o=document.getElementById("target-id").value,n=""==o?i:o+","+i;document.getElementById("target-id").value=n,i!=a&&(t('#jform_itemlanguage option[value^="'+e+":"+a+':add"]').val(e+":"+i+":edit"),this.setAttribute("data-id",i),this.setAttribute("data-action","edit"));var s=document.getElementById("reference-association"),d=e.replace(/-/,"_"),r=s.getAttribute("data-title"),c=t(this).contents().find("#jform_"+r).val();t(s).contents().find("#jform_associations_"+d+"_id").val(i),t(s).contents().find("#jform_associations_"+d+"_name").val(c),t(s).contents().find("#jform_associations_"+d+"_chzn").remove(),t(s).contents().find("#jform_associations_"+d).append('<option value="'+i+'">'+c+"</option>"),t(s).contents().find("#jform_associations_"+d).val(i).change().chosen()}var l,m=(s=document.getElementById("reference-association")).getAttribute("data-id"),g=(d=s.getAttribute("data-language").replace(/-/,"_"),(l=document.getElementById("target-association")).getAttribute("data-title"));c=t(this).contents().find("#jform_"+g).val();(l=t(this).contents()).find("#jform_associations_"+d+"_id").val(m),l.find("#jform_associations_"+d+"_name").val(c),l.find("#jform_associations_"+d+"_chzn").remove();var f,u,_=l.find("#jform_associations_"+d);_.append('<option value="'+m+'">'+c+"</option>"),_.val(m).change().chosen(),t("#jform_itemlanguage option").each(function(){void 0!==(f=t(this).val().split(":"))[1]&&"0"!==f[1]&&(u=f[0].replace(/-/,"_"),l.find("#jform_associations_"+u+"_id").val(f[1]),l.find("#jform_associations_"+u+"_chzn").remove(),(_=l.find("#jform_associations_"+u)).append('<option value="'+f[1]+'"></option>'),_.val(f[1]).change().chosen())}),Joomla.loadingLayer("hide")}})});com_associations/js/sidebyside-uncompressed.js000064400000032117152177723720015725 0ustar00/**
 * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

jQuery(document).ready(function($) {
	$('#toolbar-target').hide();
	$('#toolbar-copy').hide();

	// Save button actions, replacing the default Joomla.submitbutton() with custom function.
	Joomla.submitbutton = function(task)
	{
		// Using close button, normal joomla submit.
		if (task === 'association.cancel')
		{
			Joomla.submitform(task);
		}
		else if(task === 'copy')
		{
			Joomla.loadingLayer('show');

			var targetLang     = document.getElementById('target-association').getAttribute('data-language'),
				referlangInput = window.frames['reference-association'].document.getElementById('jform_language');

			// Set target language, to get correct content language in the copy
			referlangInput.removeAttribute('disabled');
			referlangInput.value = targetLang;

			window.frames['reference-association'].Joomla.submitbutton(document.getElementById('adminForm').getAttribute('data-associatedview') + '.save2copy');
		}
		// Undo association
		else if (task === 'undo-association')
		{
			var reference     = document.getElementById('reference-association');
			var target        = document.getElementById('target-association');
			var referenceId   = reference.getAttribute('data-id');
			var referenceLang = reference.getAttribute('data-language').replace(/-/,'_');
			var targetId      = target.getAttribute('data-id');
			var targetLang    = target.getAttribute('data-language').replace(/-/,'_');
			reference         = $(reference).contents();
			target            = $(target).contents();

			// Remove it on the reference
			// - For modal association selectors.
			reference.find('#jform_associations_' + targetLang + '_id').val('');
			reference.find('#jform_associations_' + targetLang + '_name').val('');

			// - For chosen association selectors (menus).
			reference.find('#jform_associations_' + targetLang + '_chzn').remove();
			reference.find('#jform_associations_' + targetLang).val('').change().chosen();

			var lang = '';

			// Remove it on the target
			$('#jform_itemlanguage option').each(function()
			{
				lang = $(this).val().split('|')[0];
				if (typeof lang !== 'undefined')
				{
					lang = lang.replace(/-/,'_');
					// - For modal association selectors.
					target.find('#jform_associations_' + lang + '_id').val('');
					// - For chosen association selectors (menus).
					target.find('#jform_associations_' + lang + '_chzn').remove();
					target.find('#jform_associations_' + lang).val('').change().chosen();
				}
			});

			// Same as above but reference language is not in the selector
			// - For modal association selectors.
			target.find('#jform_associations_' + referenceLang + '_id').val('');
			target.find('#jform_associations_' + referenceLang + '_name').val('');

			// - For chosen association selectors (menus).
			target.find('#jform_associations_' + referenceLang + '_chzn').remove();
			target.find('#jform_associations_' + referenceLang).val('').change().chosen();

			// Reset switcher after removing association
			var currentSwitcher = $('#jform_itemlanguage').val();
			var currentLang = targetLang.replace(/_/,'-');
			$('#jform_itemlanguage option[value=\"' + currentSwitcher + '\"]').val(currentLang + ':0:add');
			$('#jform_itemlanguage').val('').change();
			$('#jform_itemlanguage').trigger('liszt:updated');

			// Save one of the items to confirm action
			Joomla.submitbutton('reference');
		}
		// Saving target or reference, send the save action to the target/reference iframe.
		else
		{
			// We need to re-enable the language field to save.

			$('#' + task + '-association').contents().find('#jform_language').attr('disabled', false);
			window.frames[task + '-association'].Joomla.submitbutton(document.getElementById('adminForm').getAttribute('data-associatedview') + '.apply');
		}

		return false;
	};

	// Preload Joomla loading layer.
	Joomla.loadingLayer('load');

	// Attach behaviour to toggle button.
	$(document).on('click', '#toogle-left-panel', function()
	{
		var referenceHide = this.getAttribute('data-hide-reference');
		var referenceShow = this.getAttribute('data-show-reference');

		if ($(this).text() === referenceHide)
		{
			$(this).text(referenceShow);
		}
		else
		{
			$(this).text(referenceHide);
		}

		$('#left-panel').toggle();
		$('#right-panel').toggleClass('full-width');
	});

	// Attach behaviour to language selector change event.
	$(document).on('change', '#jform_itemlanguage', function() {
		var target   = document.getElementById('target-association');
		var selected = $(this).val();

		// Populate the data attributes and load the the edit page in target frame.
		if (selected !== '' && typeof selected !== 'undefined')
		{
			target.setAttribute('data-action', selected.split(':')[2]);
			target.setAttribute('data-id', selected.split(':')[1]);
			target.setAttribute('data-language', selected.split(':')[0]);

			// Iframe load start, show Joomla loading layer.
			Joomla.loadingLayer('show');

			// Load the target frame.
			target.src = target.getAttribute('data-editurl') + '&task=' + target.getAttribute('data-item') + '.' + target.getAttribute('data-action') + '&id=' + target.getAttribute('data-id');
		}
		// Reset the data attributes and no item to load.
		else
		{
			$('#toolbar-target').hide();
			$('#toolbar-copy').hide();
			$('#select-change').addClass("hidden");
			$('#remove-assoc').addClass("hidden");

			target.setAttribute('data-action', '');
			target.setAttribute('data-id', '0');
			target.setAttribute('data-language', '');
			target.src = '';
		}
	});

	// Attach behaviour to reference frame load event.
	$('#reference-association').on('load', function() {
		// Waiting until the reference has loaded before loading the target to avoid race conditions
		var targetURL = Joomla.getOptions('targetSrc', false);

		if (targetURL)
		{
			targetURL = targetURL.split('&amp;').join('&');
			document.getElementById('target-association').setAttribute('src', targetURL);
			Joomla.loadOptions({'targetSrc': false});
			return;
		}

		// Load Target Pane AFTER reference pane has loaded to prevent session conflict with checkout
		document.getElementById('target-association').setAttribute('src', document.getElementById('target-association').getAttribute('src'));

		// If copy button used
		if ($(this).contents().find('#jform_id').val() !== this.getAttribute('data-id'))
		{
			var target = document.getElementById('target-association');
			target.src = target.getAttribute('data-editurl') + '&task=' + target.getAttribute('data-item') + '.edit' + '&id=' + $(this).contents().find('#jform_id').val();
			this.src   = this.getAttribute('data-editurl') + '&task=' + this.getAttribute('data-item') + '.edit' + '&id=' + this.getAttribute('data-id');
		}

		var reference = $(this).contents();

		// Disable language field.
		reference.find('#jform_language_chzn').remove();
		reference.find('#jform_language').attr('disabled', true).chosen();

		// Remove modal buttons on the reference
		reference.find('#associations').find('.btn').remove();

		var parse = '';

		$('#jform_itemlanguage option').each(function()
		{
			parse = $(this).val().split(':');

			if (typeof parse[0] !== 'undefined')
			{
				// - For modal association selectors.
				langAssociation = parse[0].replace(/-/,'_');
				if (reference.find('#jform_associations_' + langAssociation + '_id').val() == '')
				{
					reference.find('#jform_associations_' + langAssociation + '_name')
						.val(document.getElementById('reference-association').getAttribute('data-no-assoc'));
				}
			}
		});

		// Iframe load finished, hide Joomla loading layer.
		Joomla.loadingLayer('hide');
	});

	// Attach behaviour to target frame load event.
	$('#target-association').on('load', function() {
		// We need to check if we are not loading a blank iframe.
		if (this.getAttribute('src') != '')
		{
			$('#toolbar-target').show();
			$('#toolbar-copy').show();
			$('#select-change').removeClass("hidden");

			var targetLanguage       = this.getAttribute('data-language');
			var targetId             = this.getAttribute('data-id');
			var targetLoadedId       = $(this).contents().find('#jform_id').val() || '0';

			// Remove modal buttons on the target
			$(this).contents().find('a[href=\"#associations\"]').parent().find('.btn').remove();
			$(this).contents().find('#associations').find('.btn').remove();

			// Always show General tab first if associations tab is selected on the reference
			if ($(this).contents().find('#associations').hasClass('active'))
			{
				$(this).contents().find('a[href=\"#associations\"]').parent().removeClass('active');
				$(this).contents().find('#associations').removeClass('active');

				$(this).contents().find('.nav-tabs').find('li').first().addClass('active');
				$(this).contents().find('.tab-content').find('.tab-pane').first().addClass('active');
			}

			// Update language field with the selected language and them disable it.
			$(this).contents().find('#jform_language_chzn').remove();
			$(this).contents().find('#jform_language').val(targetLanguage).change().attr('disabled', true).chosen();

			// If we are creating a new association (before save) we need to add the new association.
			if (targetLoadedId == '0')
			{
				document.getElementById('select-change-text').innerHTML =  document.getElementById('select-change').getAttribute('data-select');
			}
			// If we are editing an association.
			else
			{
				// Show change language button
				document.getElementById('select-change-text').innerHTML =  document.getElementById('select-change').getAttribute('data-change');
				$('#remove-assoc').removeClass("hidden");
				$('#toolbar-copy').hide();

				// Add the id to list of items to check in on close.
				var currentIdList = document.getElementById('target-id').value;
				var updatedList   = currentIdList == '' ? targetLoadedId : currentIdList + ',' + targetLoadedId;
				document.getElementById('target-id').value = updatedList;

				// If we created a new association (after save).
				if (targetLoadedId != targetId)
				{
					// Refresh the language selector with the new id (used after save).
					$('#jform_itemlanguage option[value^=\"' + targetLanguage + ':' + targetId + ':add\"]').val(targetLanguage + ':' + targetLoadedId + ':edit');

					// Update main frame data-id attribute (used after save).
					this.setAttribute('data-id', targetLoadedId);
					this.setAttribute('data-action', 'edit');
				}

				// Update the reference item associations tab.
				var reference      = document.getElementById('reference-association');
				var languageCode   = targetLanguage.replace(/-/, '_');
				var referenceTitle = reference.getAttribute('data-title');
				var title          = $(this).contents().find('#jform_' + referenceTitle).val();

				// - For modal association selectors.
				$(reference).contents().find('#jform_associations_' + languageCode + '_id').val(targetLoadedId);
				$(reference).contents().find('#jform_associations_' + languageCode + '_name').val(title);

				// - For chosen association selectors (menus).
				$(reference).contents().find('#jform_associations_' + languageCode + '_chzn').remove();
				$(reference).contents().find('#jform_associations_' + languageCode).append('<option value=\"'+ targetLoadedId + '\">' + title + '</option>');
				$(reference).contents().find('#jform_associations_' + languageCode).val(targetLoadedId).change().chosen();
			}

			// Update the target item associations tab.
			var reference    = document.getElementById('reference-association');
			var referenceId  = reference.getAttribute('data-id');
			var languageCode = reference.getAttribute('data-language').replace(/-/, '_');
			var target       = document.getElementById('target-association');
			var targetTitle  = target.getAttribute('data-title');
			var title        = $(this).contents().find('#jform_' + targetTitle).val();
			var target       = $(this).contents();

			// - For modal association selectors.
			target.find('#jform_associations_' + languageCode + '_id').val(referenceId);
			target.find('#jform_associations_' + languageCode + '_name').val(title);

			// - For chosen association selectors (menus).
			target.find('#jform_associations_' + languageCode + '_chzn').remove();
			var chznField = target.find('#jform_associations_' + languageCode);
			chznField.append('<option value=\"'+ referenceId + '\">' + title + '</option>');
			chznField.val(referenceId).change().chosen();

			var parse, langAssociation;

			$('#jform_itemlanguage option').each(function()
			{
				parse = $(this).val().split(':');

				if (typeof parse[1] !== 'undefined' && parse[1] !== '0')
				{
					// - For modal association selectors.
					langAssociation = parse[0].replace(/-/,'_');
					target.find('#jform_associations_' + langAssociation + '_id').val(parse[1]);

					// - For chosen association selectors (menus).
					target.find('#jform_associations_' + langAssociation + '_chzn').remove();
					chznField = target.find('#jform_associations_' + langAssociation);
					chznField.append('<option value=\"'+ parse[1] + '\"></option>');
					chznField.val(parse[1]).change().chosen();
				}
			});

			// Iframe load finished, hide Joomla loading layer.
			Joomla.loadingLayer('hide');
		}
	});
});
plg_quickicon_privacycheck/js/privacycheck.js000064400000003733152177723720015576 0ustar00/**
 * @copyright	Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

jQuery(document).ready(function() {
	var variables  = Joomla.getOptions('js-privacy-check'),
	    plg_quickicon_privacycheck_ajax_url = variables.plg_quickicon_privacycheck_ajax_url,
	    plg_quickicon_privacycheck_url = variables.plg_quickicon_privacycheck_url,
	    plg_quickicon_privacycheck_text = variables.plg_quickicon_privacycheck_text;
	var ajax_structure = {
		success: function(data, textStatus, jqXHR) {
			var link = jQuery('#plg_quickicon_privacycheck').find('span.j-links-link');

			try {
				var requestList = jQuery.parseJSON(data);
			} catch (e) {
				// An error occurred
				link.html(plg_quickicon_privacycheck_text.ERROR);
			}

			if (requestList.data.number_urgent_requests == 0) {
				// No requests
				link.html(plg_quickicon_privacycheck_text.NOREQUEST);
			} else {
				// Requests
				var msgString = '<span class="label label-important">'
					+ requestList.data.number_urgent_requests + '</span>&nbsp;'
					+ plg_quickicon_privacycheck_text.REQUESTFOUND_MESSAGE;

				jQuery('#system-message-container').prepend(
					'<div class="alert alert-error alert-joomlaupdate">'
					+ msgString
					+ ' <button class="btn btn-primary" onclick="document.location=\'' + plg_quickicon_privacycheck_url + '\'">'
					+ plg_quickicon_privacycheck_text.REQUESTFOUND_BUTTON + '</button>'
					+ '</div>'
				);

				var msgString = plg_quickicon_privacycheck_text.REQUESTFOUND
					+ '&nbsp;<span class="label label-important">'
					+ requestList.data.number_urgent_requests + '</span>'

				link.html(msgString);
			}
		},
		error: function(jqXHR, textStatus, errorThrown) {
			// An error occurred
			jQuery('#plg_quickicon_privacycheck').find('span.j-links-link').html(plg_quickicon_privacycheck_text.ERROR);
		},
		url: plg_quickicon_privacycheck_ajax_url
	};
	ajax_object = new jQuery.ajax(ajax_structure);
});
cachecleaner/less/style.less000064400000002525152177723720012160 0ustar00/**
 * @package         Cache Cleaner
 * @version         7.1.0
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

div.btn-group.cachecleaner {
	margin-left:  12px;
	margin-right: 6px;
}

/* message */
#cachecleaner_msg,
#cachecleaner_msg.visible {
	display: none;
}

body > #cachecleaner_msg {
	position:         fixed;
	top:              0;
	right:            0;
	padding:          7px 20px;
	width:            100%;
	min-height:       16px;
	text-align:       center;
	font-weight:      bold;
	color:            #ffffff;
	background-color: #666666;
	z-index:          2000;
}

body > #cachecleaner_msg a {
	color: #cccccc;
}

body > #cachecleaner_msg.visible {
	display: inline;
}

body > #cachecleaner_msg.btn-success {
	background-color: #46a546;
}

body > #cachecleaner_msg.btn-warning {
	background-color: #f89406;
}

body > #cachecleaner_msg.btn-danger {
	background-color: #9d261d;
}

body > #cachecleaner_msg img {
	vertical-align: sub;
}

/* Make status position show on mobile */
@media (max-width: 767px) {
	#status.hidden-phone {
		display:    block !important;
		text-align: center;
		.pull-right {
			float:   none;
			display: block;
		}
	}
}
cachecleaner/css/style.min.css000064400000001354152177723720012405 0ustar00div.btn-group.cachecleaner{margin-left:12px;margin-right:6px}#cachecleaner_msg,#cachecleaner_msg.visible{display:none}body>#cachecleaner_msg{position:fixed;top:0;right:0;padding:7px 20px;width:100%;min-height:16px;text-align:center;font-weight:700;color:#fff;background-color:#666;z-index:2000}body>#cachecleaner_msg a{color:#ccc}body>#cachecleaner_msg.visible{display:inline}body>#cachecleaner_msg.btn-success{background-color:#46a546}body>#cachecleaner_msg.btn-warning{background-color:#f89406}body>#cachecleaner_msg.btn-danger{background-color:#9d261d}body>#cachecleaner_msg img{vertical-align:sub}@media (max-width:767px){#status.hidden-phone{display:block!important;text-align:center}#status.hidden-phone .pull-right{float:none;display:block}}cachecleaner/css/style.css000064400000002435152177723720011624 0ustar00/**
 * @package         Cache Cleaner
 * @version         7.1.0
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
div.btn-group.cachecleaner {
  margin-left: 12px;
  margin-right: 6px;
}
/* message */
#cachecleaner_msg,
#cachecleaner_msg.visible {
  display: none;
}
body > #cachecleaner_msg {
  position: fixed;
  top: 0;
  right: 0;
  padding: 7px 20px;
  width: 100%;
  min-height: 16px;
  text-align: center;
  font-weight: bold;
  color: #ffffff;
  background-color: #666666;
  z-index: 2000;
}
body > #cachecleaner_msg a {
  color: #cccccc;
}
body > #cachecleaner_msg.visible {
  display: inline;
}
body > #cachecleaner_msg.btn-success {
  background-color: #46a546;
}
body > #cachecleaner_msg.btn-warning {
  background-color: #f89406;
}
body > #cachecleaner_msg.btn-danger {
  background-color: #9d261d;
}
body > #cachecleaner_msg img {
  vertical-align: sub;
}
/* Make status position show on mobile */
@media (max-width: 767px) {
  #status.hidden-phone {
    display: block !important;
    text-align: center;
  }
  #status.hidden-phone .pull-right {
    float: none;
    display: block;
  }
}
cachecleaner/js/script.js000064400000004374152177723720011444 0ustar00/**
 * @package         Cache Cleaner
 * @version         7.1.0
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2019 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

var cachecleaner_delay = false;
var cleanCache         = null;

(function($) {
	"use strict";

	$(document).ready(function() {
		$('a.cachecleaner_link').each(function(i, el) {
			$(el).click(function() {
				cachecleaner_load();
				return false;
			});
		});

		$('<span/>', {
			id   : 'cachecleaner_msg',
			css  : {'opacity': 0},
			click: function() {
				cachecleaner_show_end()
			}
		}).appendTo('body');

		cachecleaner_delay = false;
	});

	cleanCache = function() {
		cachecleaner_load();
	};

	var cachecleaner_load = function() {
		var d       = new Date();
		var url     = cachecleaner_base + '/index.php?cleancache=1&break=1&src=button&time=' + d.toISOString();
		var timeout = 10;

		cachecleaner_show_start();
		$.ajax({
			type   : 'get',
			url    : url,
			success: function(data) {
				if (data.charAt(0) == '+') {
					timeout = 2;
					data    = data.substring(1, data.length);
					$('#cachecleaner_msg').addClass('btn-success');
				} else {
					if (data.indexOf('<html') > -1) {
						data = cachecleaner_msg_inactive;
					}
					$('#cachecleaner_msg').addClass('btn-danger');
				}
				$('#cachecleaner_msg').html(data);
				cachecleaner_show_end(timeout);
			},
			error  : function(data) {
				$('#cachecleaner_msg').addClass('btn-danger').html(cachecleaner_msg_failure);
				cachecleaner_show_end(timeout);
			}
		});
	};

	var cachecleaner_show_start = function() {
		$('#cachecleaner_msg')
			.html('<img src="' + cachecleaner_root + '/media/cachecleaner/images/loading.gif" /> ' + cachecleaner_msg_clean)
			.removeClass('btn-success').removeClass('btn-warning').removeClass('btn-danger').addClass('visible');

		clearInterval(cachecleaner_delay);
		$('#cachecleaner_msg').fadeTo('fast', 0.8);
	};

	var cachecleaner_show_end = function(delay) {
		if (delay) {
			setTimeout(function() {
				cachecleaner_show_end();
			}, delay * 1000);
		} else {
			clearInterval(cachecleaner_delay);
			$('#cachecleaner_msg').fadeOut();
		}
	};
})(jQuery);
cachecleaner/js/script.min.js000064400000003244152177723720012221 0ustar00/*
 * Copyright © 2018 Regular Labs - All Rights Reserved
 * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */
var cachecleaner_delay=false;var cleanCache=null;
(function($){$(document).ready(function(){$("a.cachecleaner_link").each(function(i,el){$(el).click(function(){cachecleaner_load();return false})});$("<span/>",{id:"cachecleaner_msg",css:{"opacity":0},click:function(){cachecleaner_show_end()}}).appendTo("body");cachecleaner_delay=false});cleanCache=function(){cachecleaner_load()};var cachecleaner_load=function(){var d=new Date;var url=cachecleaner_base+"/index.php?cleancache=1&break=1&src=button&time="+d.toISOString();var timeout=10;cachecleaner_show_start();
$.ajax({type:"get",url:url,success:function(data){if(data.charAt(0)=="+"){timeout=2;data=data.substring(1,data.length);$("#cachecleaner_msg").addClass("btn-success")}else{if(data.indexOf("<html")>-1)data=cachecleaner_msg_inactive;$("#cachecleaner_msg").addClass("btn-danger")}$("#cachecleaner_msg").html(data);cachecleaner_show_end(timeout)},error:function(data){$("#cachecleaner_msg").addClass("btn-danger").html(cachecleaner_msg_failure);cachecleaner_show_end(timeout)}})};var cachecleaner_show_start=
function(){$("#cachecleaner_msg").html('<img src="'+cachecleaner_root+'/media/cachecleaner/images/loading.gif" /> '+cachecleaner_msg_clean).removeClass("btn-success").removeClass("btn-warning").removeClass("btn-danger").addClass("visible");clearInterval(cachecleaner_delay);$("#cachecleaner_msg").fadeTo("fast",.8)};var cachecleaner_show_end=function(delay){if(delay)setTimeout(function(){cachecleaner_show_end()},delay*1E3);else{clearInterval(cachecleaner_delay);$("#cachecleaner_msg").fadeOut()}}})(jQuery);cachecleaner/images/loading.gif000064400000003076152177723720012535 0ustar00GIF89a�dfd������|z|���trt������lnl��̴�����ljl��Ĝ��|~|���tvt���!�NETSCAPE2.0!�	,T 1��(���8�I�,��G	D0d�0"��j	xH�G�!��u8,�J�r�JXě$��.�p]�Q�@���"!!�	,�dfd������tvt���lnl���|~|��̌��ljl������|z|���trt���V �(t4Р��$�q���Pa>�L�(*� �R�Bf���@���'�$���u%n(�w���p�����o
{*"!!�	,�dfd������|z|���trt������lnl������ljl���|~|���tvt�����̴��V �,��ʳ�2P���
bH�$��A\( Cl�Xf�ڨ�(d
q�`H�5@S,!DB��@H��b`(X8�@�W�mt|*"!!�	,�dfd������|z|���trt��̄��lnl���������ljl���|~|���tvt��Ԍ�����T �0��
�"3���
b�#�$��Ad($�Cl�Xf�ڨ�(d
q�.M��jWǁѨvL2�Q�h�
08�
	+!!�	,�dfd������|z|trt��섆�lnl��̤�����ljl|~|tvt��������Ԭ��V �,��J��2����a��$��A\(
Cl�Xf�ڨ� d
q��.M���jWǁ����_�(���e[$ d+!!�	,�dfd������|z|���trt��̄��lnl��Ĥ�����ljl���|~|���tvt��Ԍ�����V �0���"3���b�#�$��Ad,$�Cl�Xf�ڨ�(������	��:(�U'0����f�$ϲ�26!!�	,�dfd������tvt�����̜��|~|lnl��Č�����ljl������|z|��섂�U �0Ct<�"�(�q�3&�� �0<�`[Ǡ	V+��!��!��F�C�B��y$U$��F�
��y�cz*"!!�	,�dfd������|z|���tvt���lnl������ljl��̜��|~|������P<��%2�B"����*��HO�:�4�ҷ�oRS<X„��<$0�^o� �fKN�P>�p��[�#;contacts/images/con_info.png000064400000000720152177723720012143 0ustar00�PNG


IHDR�a�IDATx}�+̬0�+��Xd%��r%v%Y[�Db����J�J�ʕ����f�'����L_
��[��o}��]@�{_qS��zIBܱ�P��~>Xw��	����+��Y�$F"n�
����'@��
��Ѝ�b�;�� <)�$>J=c����A9��>�����z3-1o��ܔ�jfFP��Z�b�|Å� �?Ն�{���1�G�۶s)
a?���PO����T~�f�v��D��
�E�(ړ�$�		խ����J�#cDB��x�Gx�lP��'?��K]��8T���
T�OL		}�>���(�-�{���
b�/���A�ݨk򕷄6�ebf�$��j`
I
�o7�63�c��'�B!�M���ϝE,}��	U�Tڡ2�Q.,���+��Qѱ�IEND�B`�contacts/images/con_mobile.png000064400000001040152177723720012453 0ustar00�PNG


IHDR�a�IDATx���k��`ѻ�ޮj�֫m�5b5Fm�qmm_m۶ט��o��;_t�#E��F�z�+�F�sUǜ���4]{��p�>�H��ȣ�}���|/��޽M����;b\!J�<�P�V�̅m��G���Y�M��3�Ӕ�����7QT�U
àW�q�)J������pp�z����ˡi���Rᷤe��h9��(��n���ݞ!��*&L)_�F�8�ȁ�`� ���f�=TΧ�ӘGN���H%��1u�ѯHG3�V�+"xbNCI�(�)	����G������
�<��^�.g2,�b��x�!tE�e�0�^�MS%#�
�c4Ԯ_�@��"cˠj�vPTB<-g@d���V�:����h�0��|t
Ȃ
�2�i�����i�^⧜G���	S���4��*�`Ҩ�Okuj{�f�<���7\n�Q�6u�Μ=����'����<�?M����Ѻ'_�nIEND�B`�contacts/images/emailButton.png000064400000000400152177723720012627 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxc�O"�����???�4c������߷_�<y��Ϋ�����������÷?/>����קD�.�X4�,|ڴ����ן�<|��ڳ@����5`ṷ� ���u�/�l�0�y�����e�����N����O@��s�C���y�O��|�]�q����T˦��IEND�B`�contacts/images/con_fax.png000064400000000630152177723720011766 0ustar00�PNG


IHDR�a_IDATx��)�� ��GF�E"�X$�E"�����^�J��ك��8���$}�CԲ,ڶM뺞P��T���:���D�
r)
1�9G��ak�ƈ���0�����X�O@�Z�RR�YƘݠ�*
u�M�����¨cIrթ3N�5�QH��Es��	^3��&�e�Ȃbp;�m�aպ,�"�v�~�L�/D���*[<�a�ք7ꛘw�=D@P�SJ/�.��?
�k�FؽWwN�$���C��y�5�3���`_��6b�`��3��!F�p�� �(�^/c�K�DŽu^���xeJ�lx@~&L����
X@�X��o�g�Dit��tIEND�B`�contacts/images/con_address.png000064400000000700152177723720012633 0ustar00�PNG


IHDR��h6tRNS���7X}uIDATxu�)� ��F��h4R�F��H4R�D"�H4R�D���o�w��x�|��?,@�n�^�߇o17�K0��*n({_��L�#
l�xf��\��?���~��t`��_�ޙ����o��oy��c�X����IY*�P: ���{����&�f���^1]?�DVC������H(����L���wP|<��q# u��9��T��-ҐN_�Z��;@O�ր5�O'�̟�a�(�����"��.����8�a�G�(H�ց36irG�^�
:�0�Q�%�+����"M#�{`o��M�xq
S�Wo���R�e>��H/�k�wZ������U����l�����]�M2����������IEND�B`�contacts/images/con_tel.png000064400000000776152177723720012007 0ustar00�PNG


IHDR��h6tRNS���7X}�IDATxu�� �����`��p��a��a��a8<������v_��w���g�3���tq��B�9n o���}'�(�Ƙ�?��í�&Z��y������
!k�K�
(�A��/�ۄ��)��ޭ!�)ƏR1��@�
/��q��j
���-8)E�4)s�?s����V�L��a�ۘn��6�v�RΣ�q]���yb�4!�ޘ_�Q�۟�u�[k�#��45����T�j��a�<��Ċ纖yF=�֥7��@�.k��j�P���.K��x��}x��}?�q�q�v9��c�`��|;�w+`�Dwc�I�sL	N`�:����oT�!9�_X���r�Ǐ�y�ֱ��$YMN����k�낐~�������72;y
�=Z�5�k=~r.�Z��S�۵��E��t_�'�{��J�IEND�B`�modulesanywhere/images/jump.gif000064400000115715152177723720012715 0ustar00GIF89ad����&&�����ì/j����II߹����������kjo�����Ϋ������w���44��Ӓ�����l/(�۪�굗����ͺL78C�DZ���⽨���

����ĺ"S���������TU\�oq���/Bq 9v޳�CCK����rj���Վv��{���'C�����up:T�2	������AZ�IIQ������ؙ�22:���XY`�Ͻ�TK�����Ȩ���˶ӻ�Tg��HLoSL����������������ɺ���{{�uA8������((0���˨�ڻ����1K��ֿ�|�����ʹ�緸�Ӿ���ݢ�ە�Vm�����dZƪ����T2*����˴���׃�ڢ����""+&gz�������䨨X��Փ*5���Ě�8R��c%��������<<��������˝�ƕ����Ņ�����϶����J�%'���vaX��ϡ>H���nj�٫��D@����78����ǭ������V`r�!<����Žʪ�&J�&4���RIE�Z^�å��ǒ)���+Q�����dzWQM���������c׎�������,'$�ˮ�n^:c��Z\����$.?���y(�ɢ��ˮQQX9E_���40.\,,4D���������������������������MMT������;X�������..�����é�������__c��Ϧ1P�����,-�.*���=<D������$����������!�NETSCAPE2.0!�XMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:296c63df-1d62-4ab6-bf2b-c9ce56e47871" xmpMM:DocumentID="xmp.did:3BF785B1E37111E88AF1907F5A67F62A" xmpMM:InstanceID="xmp.iid:3BF785B0E37111E88AF1907F5A67F62A" xmp:CreatorTool="Adobe Photoshop CC 2019 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:39147313-d358-463f-9da4-71d07ee280d3" stRef:documentID="adobe:docid:photoshop:cab6316c-0b88-5e44-9564-a96558ab2ec6"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

	!�	d�,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�ϟ$ݐ
��BU�f�v�`�*���B��1���J��Ԉ18����i�|���-���y�V����F�r�s��?6���M� )g~,`qcvk!,�T)4
ˡ����D��Bf-T�P�Pdȏs��
��=�qV
4h�,�6��B�8��V��Oig:J�-4Zwnʏ=��s�_�9 6�ݸ�~*�f���S?՜9�fz�q�g�2�os�*r��::`]�m�r��r�7U��+X�aa5f�Co�`��'ӐV�We��2o��@��
m`a�8�q�q0��#��`�|���t�!�HnpR�1F,	���RGX�qiH}U�>���������	1
�j1�!R�W���
d"��i�&�����5U:�������j�����RU�ã����q|��o|q�F�0�_)�&�0�Do�1�#���&�<Qư^�򈩭NC�WO4*�#d.�
8��k~�L�
*h�ޘ��`J=��x�F�d�lC|���Fc��!�6�d��	OYP�ƤR�:aH�$xb�4��R��mQ�g�F�
���/Y�1��aM�_-����PC p��o0���p�'�3A�\�N�����$��!�|bO/�s&�`�����0Z��
��A��4��S0�	xF?�0bM),\���N�7�D��|��!��!�Ǐ�O�1�( 8q������@���p�6�`���AG)�x�L@�L�_���`��,��(�l�y��&& }�%��r�W|��1Cpq�x�<d��5q�p��QF�$�K(�
Pp(BC��B��/P�
R��j@�7��V.�.t…"�@	�$�P$@
S�C���!GJ��%>0�/|�JU(�Pa �`N����
�p�"n�ET���x�:�`�!�I@�����@
�� Ĝ�` <�$T�$`F��
.p!�`���
H��EHS�%��t�Ljl�� �3�i����!RGa���Q�Oq�WvRD� �J8��Q��ePH%,����$(%�Iy;)N�Q�`�E���Xl�J��T��4MJ���Ԙ2!
H@,�4�8\kE8�7Gk�qtJ��Y�,#
.�0���3�i8���
d(<8%=��3�i�hD1`�
ġ�T7���a&2T��(6 ����ԟ$���<b����P']���T�
|��S�G�$��n TH��L����s�H��T��T�J�L	�
(T��W
�UY�c�ө�*X�
�#��+�H�Y�Ԙr�x��]��.�\�]��M���
_�j�I}��
�,^J�S�#Y��4�-0"
�8	&K��z����
�@B���J"P���� #�@+X��5%�@�m��XB' a	H�J�D ���H�+T�	U�b	��:��:����zA�(֐�t�A_����ȯ)�qe�׿�2�!�D�׽@P�����0uE
GX04�z��>�9T(��ԅG�3���F���� �;|�\`�*Vq�,`�����u��kl��>���'La!9��U��%�����|_�Z��民�L�./��H0O p�S��.Fs�����8p��w�4��)>�����-�9��s"
��1_��@�n���_5Ù�h�s�����p�<�b���in4�gM`#K�:�C�L�;+֝n��1kC��9��2xM�*���{������#�҆��u}�khG[؆��sq�8���v����i57z���M��k[��)A�ь�vs��3N�L�m�;�φu����'��5���]�f�y���±���D�vu��D+:��W��9L`S���&9�}��}_Z�D�0��=�W����O>d��\���ib�I��M��[rg���G�Q�N��11�6�K�(Xb���ձa�#
��6��l���{����S����7ё�����M��
>�C�����v�����)l�(��|HMF�O�v�
��� u��~�h�+р*t�g��L�hD�`�f�\<!���^�&8�g�
 ��F4BU�%�H��H��[b
i� �$X�� @ �	A�����/�q��m�b�	p�q02�
C�X��%P	�PL�	�p�`
�
y� �y�
h
?��9p
����J8�T�
x~��P��,�k�@
�`?�ܰ
�P��p	�9��p
`�9��C3�
�\ M9��	%�%PІ��p
B�P�z��0V�-``��[(�#_ MPF-q
x(Cp�	��l؆-p
6p���
�������ȉ���ZH4���&��Pq��o����-�@��=��`�
�ȉ�臀H1���#����.�Ji@��؆��-�`0��,Љ�H�Ƹ��80OP��N�T��h��؇L&`���ȏ0
!�m��x�WXr�5A�M��������h��(i�p��A�b ����6`�������p|���4�`��X�*�{��Y�2��o��x�6�	
I�[a�;
:y�,��
-p}��=Г=��I��Z�����a	�P�'Y����Е_	��@Apy�}8�Q�m�9�z� ����6���H�IkY��
��I�B�?����}��p�	�� ?����
�Sp
�Ȗ=p?������
Й�?1�Y��!`�`���?�ɘй;��	�=���,p�}�q��ᨅ=������Y�S�`ى�Ϡ�=���6��
`P�䐞��Z�����
��%������>A,�>�/��h� �6�����������.�Dp�pBЇ���p��>�� 
B 9qD�.JD�>p� �[P
�	�p�
�>�J��p�hP�p)�Y��^�`*�@
B$�B 
/��JʥD�ᠡ`��@W�y��{ʤl�nJ
x�P��P���xz�}��B�r�%x
0P�͐��kʩB�x�! Y���pzj��z���p
r����
�?�
(��/��|���Ц԰�Z;P���[P�%����~J��
������*�z
�J�؀
Y�7�ʭ�ڧ��Bব�)�
0��W��B����������԰��:���8�0�P�� (p'p��j��ʰ��&����;��z�ʺ��J
�(б�
�{�����ʱ{�P�!�+�$�l����x���Z���
�B�&����x�ժ�;��K��A���I{Պ!퐯2��Q��યWk�M�{X�#���z���V{w�h�:�j[�m[�]q��
�K�v{�@�p��J�S��K�V{�Wp2p�˪1[��z�$K���7��{�(����m+]��?p���;`��Z��P��������y P�[�VK�_K��ʻd��W�! ��{�ۮEK�����ʼ�wS`ph��̊�4[��{�W@
����x:��Z�<�D�p&���������C{�ꪱ;�u��P�����0���hZD�Ip�I :��2pÄK�Z��[�в�����[���媹�۹�k�;о)<S��-\�0�[�3<�0�d<�Dl�G��)ܾg�<[�lK�	!�R,����;����Y-��E��/����]|ȁ��i���k쾔;���@�
A�E˼͋�'|�)��|��,��~�¢�Y��I�‘��h��k;�PD��٠
�۱w��u;�����k����ʭ��p�n��j��칟����� ;��\�h��k�˱L銱E�
���l��������
䌹�k�C�"�����[�B���C�!�	(�,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�ϟ@�
J��ѣH��dWC�E�8��˴CSҘ30�BHdeȦ
��X�0��?s}[N5p=Y�'
��z@��X:�X0R��^��p����
c������]ǎ9L�[,���qV��g�A[�6���Ӟ��h�tSb~8�.T�qm��{���7RT��WKL�q�B~�`�3M-dDG��av�i��i�}}�BX�cA�D�3�:��
[}5�~�'[�L�Em�UT
p�g:D��hV�y�d8M.�����3xq@����-� �@�$���aMQ�WM�qF���_�PF<2�R00w2ZD]S�>t8��`*!��QdE$��(E��`�Q��eo�9�E��f��f�o��`Dm"4�9�|�褔>"�ɤ&�:p����矀��0D�Z��4����>�}
i,R���h��q����H��5�vҁ�QP�ˬ�@C���j-F�#wxrhD1[�#���A��b�������#8�J�PxzG�z҆�p��_c�]�#�(�e���+
t�p
�@��aH�/ˀ�@��##<� aXSHnC]�18AB;8#�@� ��P���+�22�����l��U�%�|2���N�<�4�0�1k���RCG��E,�BG8P��#�D�0�!(���qGx��\��&���@E�<��-��s��1O-s��AZX��H�<z��
ְ��y�"�CP���B0���(<P�+t��B�P@�U$1G�,��##1��� �0WN��q��" �G0q
�р	0��@�nVc��
��ń�
�B'�(��4u�8�%(m"	.Ŕ��	��Xo`��Q6H��@ໜD0T��-l�
�0<K����"�$�A�Ў���e��j�%|a'q؀r8Q��OH�"���*HBE�.�`�0ȁgO��"6�5�)Xq��N��E.z@�aR �p�e��$X��׿7H�"ӵ��9�� ���>A�O�+Cх`�*A����
�a>1��I)A��tG͝�Oq����!�LE0P���Z�oiF5I*C�����Z<_Px�Lm��A�<���i.HC\@M^��(C�3�8��
���0Pj���c��P�pZ��h�(�
�bv$��)����,'�<�T�Ԣ(i+7�Qv���C5�'���8
���R���#��t:щ�t	 
z���S�A��T��P��0u�Cg:ՠҨ}UJ�*P}nՏ_�(sV�p!�hVe�Ե�.�AQ�ȓ�M��CC�Ϧ”���P��4`�8��զZ6��d'�A�(������@�	��,��Z+P"
;�-P�C��ad�-!N0	5���~��C"(m�W��h���VX���D'�^���8G"�8@
=)���\xW�0�|/� ���2�{H`� Fy�q�b��eo{`��"W��/@��W�6���K_���U0���
3$f04V�h�㿉o�!\a3���U�O�`�2����}�+����04la$�����zS���x����[�#{�*A��ǘt�Q�o����A�rx��e/��3����Aiֱ�A�`��z�����D@��pxU�>$�9&�@�Q�7cY�ZV�-�>�Y��pKtcL���D��c
g9���9�,W@���q
Y"�K������C�����u}^	�
o���Е�A����@���B��Ў�����:��/zURp�e�@i{ag#:�Ҿp�@i�p�]ְ^SR{��IE�͝b ��붯�b�]�W�GI�ɛ�s�������o�^�ⷶp�5>�k��p�QbbhX�*@!!;��Ft��-�Dd��B��a ;%�/:�
n��C'���~��x�%�c��؆�q�<%gV��as� 
�
X>q����5���yH ��ܗ��D,|%��4��M�M {�!�it+>����>l�pW��Y�C�r�cCAߣ����.1�m-e�!�4J�mO���"-����3{��-���o��ih_��΀�z�%�X�zX�>�ٷ�^�ᏮT?xb�����0��~��r�7W�b��K���"& 
Xn��rf��� �Q�L0���CPE�t����^��`�PZAp �<�g/��~UD2l�0�*8�ʅb��
C#E�;JC0���N	0C0�5&�O�8�
�� �f^�@��
H���
�V0l��&�e���_@q)�L0�d@	�@�Hd�w|0��P���[d����+����0��G�_�*�7���P	%�@

 �
?`@���[��`
� S�z�p
���IF����l�E�����-L�	�������P��`�`9�� �PR�J2���a�
-P�X�Iڨ��y	���z���@�`Ў���S�'N1QE0c �Џ@-P��P�&iŨ�	��h6 ���Z�R@>O��@"9�%	�`�����p���/��`03��<q	<ɏ>Y��19=�90	�(��Y)�]I�?aU�$���kP0�t9�z�W�#��1y�k�=�ky�-`P�z����=�ܰ��%��%�`!А$	�NIPI7��=��6
�dy�f���SP��y�k0�p
��M��?�{P�my
6��ٚ1��]Y�7�ĉ��)�������n��	���x�	��9�7���	�j��2	���8a
�x�-�����9��ٔ�ؠ@�mi�А��扖:�
6Џl�����0>����������m�L��@�6�
9C�<��>���$i������p�>�,P�
�Lڤ�/pBp��4P��p��\���
p7P�7qD��)�8*
� [P
�p��iʥD��8��	6�g�L����/�B@
[���HD ��DP�D����P��#P@W�ڥ�ʧQ��p��
�ت�	� C�`�{z�����rxh
�`
I�������ک��y	������`�Ú�l��B �p
�����ڪ?�
��7�͐k��Qکp*5[���:�>P��ʩR
��
?Ъ���װ��
ؐ+�c��{�/Юٚ�y
0��`�B�+�銮�[�
�
?��*�����+�'pD �K�EZ�x�0��� �{������'�:���಻�Kk���9��'`����3�۶���R��xpP�S��ʶAK����R3�ճ(��۲�݊a{�+k�' [!&��+�D�9��G��D�p���az�;�D���z��h��۬�+��+��K��˳����
��+��������y�x�O�D���!;��Z�l���+���;���K�[��1��j�d묅�;�����"��ʻ��*5�{�P�[�G�{k�횣�J
��0��{��˪0��`뫭��;���p���{���*��ĺ�C,�����:�$L�骮��`��+�|�㫸��4k�䊳�+�»�P���R\�&P�0��Z�2��2��Ia�W\�v+�����S����>���
��D\����<˾��;M��P,�
`�Pňl�&����g��j��l��<��r|�\+�_�El�8��{ܾ},�m�N,�i�ƄL�:�ʫ�ʑ,ɥL�p,�᫵�\���	��ܳ���~Lʥ��ƼƂ����\�����=L��̲A�ɛ�ak�ڀ�:���������\�
,��W+Ǵ˲.K����x�F|�+[��=������:��,���ܵ�k��
٠
�z�ݼ�Ͳ֬�-��Mlj+�	}��L��:�$]�&��H����!�	
�,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗簃I3�74_�2mIN�$|
<��?M���J����8��M�kI?b�Eh,�8L�S��?��d��k�?vΪY��~r��/F!#U�^4���~,Xh��n��Xh��RE�Epΰ�)w�^�,�U<ǿC,KT�,�g+.T-�h�{�b��"�sh-;�\?~��V���}�Q
1m�ȅ'��<9�Ј�3���v5g���E^�}!����R&�s��=AO�?�h���41�Bnp@1��F�8��!XF\(̈8�Ƀ�Μ����R00�4����1�#cx#����"A�T�NH13(��E�@�R�qF	ѥ�^L_eG��K��Q*!�UV9��\֙@,E��S�հϊ�H��q�b�\��U!l�)	���QnpƎC�Yg_���<p����:�O�1�3�DJ�@gq�҅e��#_���4�9�ے4<r
�!VD�	��EXN�5������!�4Dzb���A�#4LC"F�م:b��l,���x�4��&�	t�0���c�:�`*t`�G4���(R�$�QDr�8@eT��$�2F�a��8qO&���4`BN�!G<�I
�2�P��XPM$|^#�$R�qD-G�=�C5�,�N���6L�N��AA�_<xS�'0��,����7�SWxÈ(�QI��x��#<ȃrt���0#��r+W�b�;�]�G�R��A�1��@
��C��U���FIđ�5TBG3�D	c0�
�P��1����5C�pC`�_��0���P@;q��WP�I�F$q�P0A`�1��B60āw��B��I�B;��~db@P�/0��@��#�EE@	����7\(�����������F�Ex� �@Fa�*<AIH����qH�
��)�p}r�	ƸI�aE���h��U\b��H��F^�!��'/����H�Ƃ__�T��
��a�5��p�)ݭC��2� �e!�	�Cc��+*av��5P�H�	 ��f��
���c*RQ�e��nH@*�3%�R˸B��P�1�"	�D
jp�4�7{@���
|�|�A$%��aP@�N�
���	B��)$�x���NX����A� �X���5���|@�䔔��2�s��8LЎ	lb
!0
�a@a���R1�
`%��a$�Q� ��B$�@R4Dbh�pA��J�T<p�?#)�*4�$E�TG���sn���`�/�x2]�(��Q((��!�'P�A	ZeWE�u�T�@���
���
&�Tuu�Wc��y@�.(C�$;9v�닃����-v�_���Ib��_��*��4xxh�8�$�/���<0�5�Z��5�a�ma	�@�L���,�P�����],l����� DjU� �����T� $�@zY��Q<s( ��@,Ax�*p�����>�(X�
��Dv	!_2�K��
���s$���
 �ÿ0�)
�(&Ƅ'��
>�$p\�T@����a�8�"��<�A������|�>��౎@�K���24��D\��L6�5P�e�x�0���fel���l�/�p2~��`9�Un3�_|�BK��3�+|<Hl����f#+��/������9:5ʜ�gЕ^3�3]hDsZ��@���g˓���M�M'9щ���! �g�ǩ�kV��՜&t"T��oH��>3���k^k��xƳ��l3�#ҷ�3�S�jo���V���5���ŵ���K���p~���_���N�����v��沅���Q�� ��u�p�;�ǖ��a$\��ȸ�w��;Ӽf3�-�b�q���j�[��g��
���߹�{�r�[:�^s�s���[�>ֶ�{��6���R�3�B�xc\�J75˹�t��9�/��ւ�"��*W8��4_:4O
T y�=����u��J�\�� ��B�m`���,�u�+{�i^�^��N�A�����`BX��N���.zJ�C��.~ Cd��Ѐ!�0�d�>�Z���Yn��dЀܒ�"|@�^���'\�ƻ�)�P4|h���b.�l���Y��C4{��
��*	��
��n��0W9�I]i0��@f��P`_����	b	��	�`����f�u+�4�s��EG��<J��P	�P
�'�
�G	��
��`���g
?�{�`p
�	����0>(+��P	jHk�@
(�
	�?|r�P'
��=�-9�X�d8f/a
<0d*�� �%0��@�-�z�	�@
ZЉ�H
�`{���-`���xJ��=0�d؈q����X����h�@9�``�P��x
6���Hb@�q@����T +�X����-p����90��x
�H�����i�F��<��/��+�������-�����H��x
-��~��9@10���$L?A�i��8���-P
�0=P
=�!�'��	���@9�X	�_4�A��Hp�*��z wp
נw�By��	����
Yi��79�0�.�ɏ�x
�+��ߘ���XT`< [ٓ���q	p�Ȑ�p� Ɛ4����x��ؒ� i`��
� ��h����v9��H�(��ُ,P�����9��G�<9�6�a����= �B;ɑ=i����������(�ɏ���ٍ@�kp$��py
�����I�С�	�6P���ɐ=�?�"k ��I
1�pД�X��"L������H,@�=�(��ُ6���)��X��"������x��	(bz�ZP�6 �NY�*��j�'П�X�����ɕ9!6����X	%�ީ�` ����0���Z0��P����6
A���^�=@��W�p�����+�퉐U�/�
t�
�&PQk��J)����[�4
Al��p��Dp/����k1f
�}*���k*
�@
��#�pgz�D ����*o����Z�)�ᠦ ԰x���B �)��Ȋ����BP?�
�Ȫ�D���:��:���`�>�p��z��z���9Q/��*��Z������x0�ڭ����j���˺��z�/����p�ʺ���xp[Э���Ѫ���.Q�*��z��*��:��>`W�BP�{����ت�.����!���ʫ�y�*K�����Z��[�/�@�+�"��%�x �x��+k�����j�,q�Z��z�:�B��>�7@!`�C���j�
+��@��`,�/Эޚ��
��ʰ=ۢ�*��Z�亶$˰y�+a�+�O���J�U��
�4�@�\k�5����x�*a
�0Op7P�{p�������K2
 Y@��
�7@�뻼���[��(��qPB9�?�
?�
���Y��{Su;`�;�KR�N'`��K�������{
��;�t��$��+RU��о�[UiEO
0�\O\��V̾�[�R%����?�ByP�P���+� ���\�SP�Pp�4��9<��:��7S �S����<��t��k\���0�;0�d�P����
��`�b<�d�8��>�7\�E|VվL��O�k�(|Q����1|�i5�Z��a,�&P�0pȇ����0��lc�]L3k��i���K\�v����Nz��0�NXl�;T
@�&�ȊES4EB4�SEI�ȇ\�b��h��D<���<�u|��¢<�
\�~�C��=Tclȋ,E2@����+��L���ˑ��8eɿ|V�L�r,�l�����ˌ�͜�8�_�ʮ˴��������P�Ȑ�Q7���\���拿t\��,y�
���\U��4��ɭ��@`˱˶�ѹ,��\ɾ�����Т��w|�
%�����L�ЌƪL���Ӻ,�g��A����-M�%l���L�5M�7��9����hl���\�˽l�D��G,������%<�Ż����9��Z�[�j��k<֘�������L��1Q,�ڠ�/L�q}��h���e����!<�M���P�K���{��p]��}ڨ��!��ͽ�
��M���
٠
ډ��
�"Otܿ�-�M�Բ��9�P,�����'���m*�P�*!�	
�,d���	H����*\Ȱ�Ç#J�H�bEv�,j��q`�6;���$S��� 
,ӌ��)S������5����
��B�e��C�Fr�k���U��:qV��'9p�����,H���
����œ��~
M���Q,ڲ}P�ag~N���!�Q��7Y�Э�v�vwqcw�B�C1�������;�w�N��Sr��ם��j�p�L9L;�[$"��8T�u��jՊ���81��؀�k�1��t�YOG�{��ž�A��l������}m�  &N`�mf��4��_���F�L�����ƆR�r�e��	!�c<��XÄ����1�(�Ag�q��GDQ���0�H����g䨄��hdEI$�	���X�99��!IVbi�(]~)'�ot�/fJ�@��0���Yn�CI���g��G~^�r����<b��LS*�B�I�҈r�Rl��#_�e<��Cmƒ7]��)	�>�U{J��2���_$�$�|Ӹa�}�TѫC����8����_�G��zI����,�k�6�
��P%� A1
�<0�#�ad������0:��B�`�nl�;�2�a0 ���!	&1K
�(R	C�B5�	0��P>�|R���
e0�=�QK�,EI��=�lc���;$00F��2�
�p0y쓇+00��t01�8����z5<…�q������#dQK:7�R��B��1�ܐ,,r��P@&a�C�R����ƌb�'�!��dDc�Q�|rL/�A�Ȍ�;R��TH��B�L
�R#ð��'Q�`�!aH1�h0�̢���P �J0��/W0�8z 	���B�h�P�/(���zыt0�
<(@���"�E���%�x�@�/�c�H�\ �8����
�9�O(@��+�|��6��(^��R�6("��xP�7�A*d�6 8�h�J��z�#~0a��ΐ�x�֨�x n Lo2���9�}�Oe� �n�9�KE�i0�!�
0�8�Q	ʺ�*�����JE�٢�g�z��Q��X
xx�/�o��>)�0��
Q�B
q�
db�H&�B��^�`^�$pK\ēFd�b@h���8�\,���x`M��Όo�"�< 	)��bp��j�'�#����k���P����G=�C5�p�+
��E��p`�!�hB4Aґb�)�,�#�6�	�B<p�O�R�'d��@�����_H�LN�|@�A�9S�Ԉ C܀�F�"��j#�ЈT���K^L�J.`��\��D"�kM���
��P8A/ �l��C�;cL�ou�K!�
Oo�)Bd��M#����'���2���� 4%L��$&��l����(hJׄ���4b5B��h�=�ن�!
��+gzT3ZW���� u�I�\#�Aj!�!
���Umz]3��x���sT��&���"�…VyjuH
����u�,�X�`/���`G>���6�	A��`_���lpM=��/�B?�A�8G�d��	H�+DA���H�{ J2 �m����A a8��T��эq|��lp4z���5
�ۑ']����A����b�	Z@��@�:��G6�9&щ:��8���(�t�x7J�*�kU.ǁ
Wb�A�j��atu-�B� x��i�)��s��*H����	@�H�@h�a!��� �W�F�d`���W�1K̘�Ґ�8x����kz�������,jQ����G4�qe�������^$D?H�����8@�y��Rx�<
�����g/:v0G/Pp_8���v�.��lk�w4�M�sH`��&=��J��u��70h�߰0A*�]#\C�_�:�/
387:a^�y��#��_��OW�ơ�R�;X�:�g}P�	vP��
�ୟ� k�<Lz�
5?q�8�!�	��dM{x��b���<�� �K�vӝusW������uYK�<�1�tSC��I�>
+�7��=�W�K4�V�a�^��$��e<���o��'���W�ԑ�<嵞��7��d0/R.�ӻ}	U��\_o���b��w$U�`��A��
ȿ��p��?|���O��+���? ��/i�rc�a+��9�gl�S֐\�$#�	�/=7:�f[�6��
*��yU'�Wq�|��x�yʗnW�x.�n��`v�`[o�Zq`v�F��\ �q
T�asev�w?�/3� [�u�
��i"�q)�x�ׂ3��3�u��
��g�gp���Z0�6_����UpG�w{��	�`�g�hXg��m(h�ǂ^�q���qb8��fd�/A`[#fo�aq�I���flC��UU��i�/J6��&��f���q�Dž�y�k�؊� *@	^�({�C0T0��o2�#wS\�@�J��3�	\�f�Šj��P��f�����ķ�����qP��jP��f���`^��AA�.�V�w�hT�.�	�
֗
���`��X�������G��ki {å��lqMp�'X·�YuR5PW�PCp�S�a.ђy�i𷂯v|��
�
�5<��Am
y��f�1)���fTy�j.�i���[X|\���jhv��V�[����m��pY�X���X�ŀQ�`�dY����N7q�t�VP�md�riq~��Gqu�Q�P��)�fY����YP��{陞vq��qNVP�`�p)�Diq§���y�F�Y��ym�	��	�
V@
@�1�?%�ٛ�q�@��
n��p�7u6gQ�
���K�
������
����
|��wFG�Q{�,�ؠd`�pdܰ
GVgG�
Jj
��``k�QP�С,�+
�p�o?�
�$Z
���@���'PPL@%�����0�z�	� �Z0��
��	z�/��6�09��PP,��%@X���Xz
6�`
`�����-`h*�`���N;��9��-�^*���90b��6p
~��6 �P���N�W*�s������`{z
s:�u
���ִ������L��*�=���7��,���z�N�Щfz���
��p�i:�����j�6p��`��=���V��fz
,������Qj�R��ZZ��6`!�[��`����7@��
����躦�*5�0�s��q	�J����� ���V��fj������;�77��j+�(��^ʨ�j�R3��6�1�*��:�/c
-p�Ẩ!º��z�m��2
஖:{��{��/��/{
���ʬ�2J��:�
ѰXZ�Q��0�K1/z�({�*{-,�rz
ؐ�d���ڶ�2�*�
 7J�eK�S�R[�6P�\ꪃ�T�(���z
=0�������������[�I
p
��vJ���*�0�p^[����!c���,��l*&p������	{������p���{1;!�p)�W�›/ 
��0(0������K��
�+7���D����D����+-�� ���P�����+� D��D@�;��˿�+
ҰW(@
�p��,�|B��=�Yp/͐#��/��B@
[p!)���2�|��K
,p�>�B��&,�G�x�A��/��B��)`���:��l�	�����5�R��:��!@
Y��\����S�mQ���[�M,�F��9L�x�QԐ�`�j�z,�T���B�ǀ�7������
�[��g��i�Ƅ�ȟ�V���ł̿�,�G��yP��[˧���)�T��@Y�ˎ�)���P����ʹ�
q�lʀ��	\����IL� Kˏ������x�����,��x��R,����P���C�,�9�����x��<ϧ���[�W@�0"�7��̀�����h����̼WP2��0�
h0��7@P`���p2��0��pmy�H��J��L��N��t
R=�p
p�X��Z}�S=��'�D�W�d�
ـ
h�j��Y m��n�l��h�
gm�d��^��NR��?p�ذք%(p�'��'`;�؎�ؐ���p;�؇����h�
?��l�~m��i�ք�؉��h�h�
۲�S��=۲
ۯ��ؖ��nM�v��R�Ta

ogM؆�ڬ�ڰ-�S0�PP�p��}��۝��]�P0�}�
��h�ۉ
�k=�\}
ƭ�=ڥ}ڋ�ڮM��
�=������>������]��}����'p��ٝ]��]�؃m�(��Ѝ�֭��&0�0P�%(��0&#n���
�༽���Y0������c��N�'��-����
 �&p�(�42�2�T�L�)^�#�}�4>ޱ��
�t���-s�-�?0߈m����=K��+��Q.C8��:]y.CV��/��~�5��]���<^��M@~�l��n~���t^�P.C7�眮���.n�2N�`^����m����i��l���mە.�/��)W.�R~廮�0.�3^討�������N�N٬}ߔ�n���/�ھ�n����۩��;n�޳�����M����}�~�K^�]��	>��}�M�e�����٥�֨���=�G����pN��������኎����k�܁�
�}��.��]޹�ۻ�����^-��a-��}��܆}ي��@��:��"��4_�D��=�ِ
fm�h-�]�;��u��vm��>����Q��]]�f_��MUO=��Va?!�	�,d���	H�����sH�Ç#J�x���3j��B?K8��qΏ���X�А�˗
��2Г�ij���K'~�|�e�4p�h4B§ӌ<�q�f��8�q�߃�O�Fl��g~����G�J,�����S�݃��9�E�BW-T〕pִ1~��_���8s8�a�7�a��F��b��S��3ȕ��&]H�,F��-�g�����Ȥ{��j����&w���i���vU�T$P�Y�
nt����C�jm͓�0�4#4��<T�#F�8��9����	~��T��Dx�x��!�etAC�1�qH��܁�x�]�#M�NH�Jq�8�R0K	ѣ?.hU�(��nt`�J4���E�RD�	TY��	�ҐEr��>����J@9��XZ��m�P]n�
�t<�b�en0��|���0:$�T���ϊv6�g�i�8�7����0Mb�b��1��D4~��|~��vA�#c<��4�d��:���#�e��U��m��F��'n�Q$qht�3��À�7� �����z҆J��0�yBe��"Qq��a���q�U�#�+F҆.C��~�H��a���'_��C�]��jt� 0@FW� �F�P3����9���a�z�Q�S�x�
�a�� 0��J`|@���Jt0�!G|R��\qKa����0O-k|�&\�Μ(�5<�A}��@CݳA�T@4A#H�y\�qF�0�Hz��4�H��=��s�6���"Yl�&y�q�#4B<T��$`�?����5��}M�`�NJ�AQ�D��A�E<��6ͼ@:�H����S�"�JdD2A:��Q�1<t>�0����\��E��+�ͺq�]�� �.P���0
.�B�P�Q<bk B�@-�c���
0�#"���0t��8@x:.���@7��)����R����<�@� .�tA������(�2�!�`�>�}S��%�P�0bC�
��� ~�ƻ\/*�-Z�ú��k��qPB:�Q�ع�'#��\0�\cgG�$P�v�A�XA��GA�����9h�ȇ.b�v�g�@4FG����!
A���.`<bB�*� �5*DvD�  6@�83��@H�
���d�(A+@�9F0��	��X�����%�6��|����C�>ϕ��0��y�
$�i�@��� �(������7��������ú�0�0�A�IP�n��00`M��Y���A��FZƁ
鋃
Y�%����B]����<b?�:Q�UTa`�HP�t��5��
P1�\%A��#��[C��?zV�!��hI�
�������h
 |̴]@ ��o }QE��$9l@E�Q�
��V��#+Mi���c���6��0)�Lu�ź������A�恃�p�΄ь$!���g8��f�#4�V�i�F1�4`@c�xN�JPa��e10�4�4v�����X�
@L.�\��s��/t1�q���8D*6��')�rea�84��-�
�My�DŽpa�T{�Xx��4�B�г�*!���>� ;�q���=@
~�BZx>%t�8j{P�k� <zdݘ�^���<[q���'�`��Ì�6�C��z	r؞1	����a��+Z)�3g����X6fBXlU���	�����G8x�EX�@D\O�0mGu�A{�؄�B�iBʔ?�����P�]{Z�7 �:8�sN����!�P�,��wxw�&]B��������̌}׏z�A&T�[��� ��	M���D5��)4�I�N"�>��.m`/�']��{�S��^th !<@��Z̀6AC��D�
Y�Bmxîw�"�!�Q`�wÇ��L���1�ڎa��0D/$�ÉU��ah�fN�!R�ًvn���|���M�k��P#n�8�O	/h��`9�'pN�ȈD Z���"�@��(�C�!M$�$f tQa���F6��e���iH�1	$DzuyO[���.C�p�#0��]�Z�=�AT`�ml��`{�Ӑ̑�O�e@,�S�"���]n>��h�̀<r�	�����*0�5�a/	0�BȠv^CPF"r��Sݷ����i/4�� *��La�:��d��8��
;#���t� ��H��O��w�ogٳQ��p�}p�'��#��`�p�|�uP`	b��`Q��p$@^`uɵ����G'�� ��8Đ|�h�`��~`�� �� M ��

�Q`�P�UH|ķ
dp��	�P�p��I(u�6T�}� �Hu�*@�~���"��yJ�p�`��*	�p�u	`(� ��g緄y�f�}ʐ�m�r=�r��}��y��p�Jhz�h
�Њѐ|�X�c؆dX���8(:H��f ��@�p��XM������x�
Р�(�;؆G(�x�hj`u��~�x��P{h���}�
��(�c��
ɘ�����������Ǩ�����~簐� �����א
�k(�a��
�(��G�S��x�	����
��=�*���Ȇ� #p~�D�8���ؘ�jx�(�*	����`i3�"�Pj�����H���'ɐ)��	�aj��#+Q�،%i�駐)�B�b)�P��x��P�i��وBٍo��@��x��h�W���}�T ��8�ti�wi�����P�eI��Y�@��H�������)#�0i��y���	aJ�����������aeX�ͨ�U9��9���w�i���9�y��G��I��I�Ї�y��Y��i��pt�)*Ї��Ɍ�؜>9����i��9��9�詎�p}�
�I�׉�晎���u�M������H���5����	Z�����ْ����׉��阦�P�ߩ	�𠤹��8�y(�`	:�ր0��HH���0��Pp��@�@	V�@
K����	3�8�8����P�T�Z�
�,&�(��@	ħ۠p���gyXhy(@
��6`��{P�P	%0]C
'`
������`�����;
���6�=�A�P���@���
��谪��
��	z00�����=���
�%�0��:�{��=�6p
-��J���`0���+��%@�-��:�`��:�{���z
�Ԫ��:�L���ڭ�
��ϐ�9@����*����o���*��ڭ�,@��0���J�Ê��*�=��I
�:��j,0{"+�46cS�7���*�
���+���L� �6@��6��=�8������ �?�>�	[�����0��Z��0Yp
���j�Y����I۱@:2�������'�
���0K��б@�S��
@�W{
K( �+���Jaۗ2+��6p��[�����G;���q	xK�{�}髛[��z�q����j�}��rk�f�襁?�=жLK(=p�e۹�k�=�
 �'��H[�6P�A
����ۧ�
��,0�A�����*�z�W�N{���S�)��J�!�ú����]���6�#�
��{ۮq���{�6�$��K���C�%�*��{��K�0�`��=���1PP<pH����?<��
�>���	�5)��W�����60�#���/pD@�8,p�p�?�D��@F��j�$�\{pD,��p��Bp��p�Q�|��D�S|Bp�P
0Q�p���~��o�Â,�`Oq/`�͐D���>���Ґ�uL>��?Ū<�7��rL
[�>��p6��ʀLŮ,[@
W��@
��)�ɺ�Ƚ��/��l�6���S�˵,��>�7@
B�ɸ|���`ͯ�xP�$!V���o�ɗ���x`$��|��L͙L��LϾ�/��$���εl˟,��,�[��@/�͵��\έL���L�@
�ї\�-�ٌx�#!����,��|á�|�*��@��<���-а��y�#	x��]��L�(�x��/	���\����xp#x��ql��LT\�ؼ��O!I���������y��#1*�������7�ύ�
p�P��|�*��0��/
�[M�
�E2p��w��y�!@�׿��������@��*��.��@J���	� ����}�ȝ�ʽ��������0�ԭ��؝�ڍ��Mݑ���Ƒ��
�?P�ڐ
ؐ�Y������������؀��]��=݈z�:����
�-�~
~����n'���(`�����
?�݉��}��������h�h�c!�2>�2~�'K�3�0��~���Y�����}q^��]�����/�3>R>�3V�U>��Vn�#�cR��!�<��?���D�:��&N�����7V�S�cW>�z����~��{�x��U.�R~�7�6�'��.�h�����-�n��L.�P^�W��}n���@0�@�`��~��NcP��6�-N�@�
%������(����tn�Y��
��& ꣞I ̾RήQ2��I@꠮����갞�=��}��}
�%��}�K��.��<f�x^��n����E�^�^�N���^�n}��3f�.���n������m�	.�������+5���^�&��.��^�=��}�/�
�����p��/��$;�|���N�@ ����Ү� �ꂮ�/�~�e���k��H^�1��?c�^�~���Xo�#?�n�9��I��h��	A�O_�	^�b>�
p�5O���z~�]�U���6f������^�u�m�����PN�u>�=&���{���d>�d?��醟
�`�)���0��9��o��?^�.�i��M�H��������������@��e�1�G~�����O���An�~������)ݒ������
�
�ݏ��0!�	
�,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗0cʜ��]6�-˴��S�z��� 
,~����\X
qp�Ϛ@D�n���Ѓ\�����6���j�@'�
Y@D(1r���o��\l)��p����� Տ��1�t�2.��\�<���1c��H�;mr��-;�[H��j�-�u<y4���v�iߴB~tTk-׏3�r��⩐��
���#n�j�E�G�h�XB�~p����u(wơZ���s��7�6�����>tH���]:pP`�]��8�4N:��Fb�*� �!#J6
t��t`��0�!�glP
p�0>2�#@�gAY)��F�t"�L*�Ag�!��K	$PĖE<B�zXpQ$����a4���O��Yƙe,��4��@�p��ʥ��f�F]Y�K��
kڦ��b�e�_0�o��C�X@*閅�@���I��(�-pJ���@i<�P�8���_x�Eg��Pdon��"�f |�@�
3��N�F*wRE�N��8(�`g_���wz��8x⇴w���-t<�Z�!�G	2F#��	a��H�5��PT��8�HN�QC?�Dr�(R�������	01K
�(R	qx�U�5�	0��P��|R�&��
e@��3O�,EI��-pdA��;00��Q�'
�p0y�G8@0��t0��/���y���q���#dQ�7�R�	?�ot���
7�A��S��xF��6�tq&W3�6�t�GW�EPYd|RB>�q���;R��T&�`340JQ�
D1����{��
LD0K:�rg(�_��V�����Q�!	�V��(xc2pAx�����E>F��7�U����$��60�JBH	�0�G�"	Op�(�0
x�+@@$�Џ<�H��<��Z�����$��b�(B��xP�7C0����)h�IC��#�&:�rC���0$`^�5jp���H@�60�3aY,�D&�� �UAl 48@���Ö���!.0 ��Q��C���04�I�E
��/Ph��n���24���P��� C@�!2�����D��h��T�(�
X��L�5B��`��\�"�)B'�!t��-bP�)���X5�-Q	C(��YB�ZP� Uc��<#T�z���ΠC2��&h�&T�7Ȓ�]I7�N����Y�@�O�6<�OH��RӃ��"��`�t�z�d(ꨊ'4"�k.���0�LjM�J.`@���nLd�;N�%�bP؁z!�03�����ֈ��.��CF B�I�!E��^��J,���#0�J�.v��6���\����;0�Y��z����^i��[p""T��:*A��eH�@ۼږ�Od���J�@"
u�)#r�8,Q����/0�40׹��)uqz��9ބ�bq�b�r
]�mH
0��)���m��l�Q���h�Ub�"D7��1�� >�����T�	hb�hX�& #��5�	��
Bf���@�B
P�C��l@���Ft13����z�'�Ѓ
��@�	8����(��p2��It�0@"�ah����c����͂3���b��� �$t��0�M!H�� �
FM�<'BP�9aPC��F^M^.3�I� Xtѫ���KC* ]K�Bp���,
�cٙ.�)��iyD#�P�A	����/�
�".0�%�[AA�_�sA�P�ӭ#>��t�����mi��~��h\�>ǧ��jbЃ�D/P1���{�u��1�LYT�h�(S�n%��*�@f�mt��0�F31�e_���2.�h�v"��t�@��0�b�}�x��b�z�T$tA�o�qiL���Z�@�Ş��1���H�
�Ї���:ѵ��s^�Jgz�%p؁�)����P��=��'�	�i�b�z����.pҽ�0���=�C�ߟ�p��?�v�x��ʀ��`��W��v�����W��<P�;��@嶄���6�
çz��p@���]{�>��O��_xO�ADt����$�b�u1Sk|#��
 �z0wo���7	۠�pj�wHw�git�tgx��m�Gx�m�ۀ�G[\�Jq@��F���]�p
ƀe�qj�[�zA`��g��x
�l�g{�7x痁鷁�{��`
H`|��n����^0�T0�2D��^v`�z�}�g��tBHp�g�B�{xxw�N�m�f;%�z5b0}E)Džl\�_�6�PR��b���j{h�@fG�'xH��Jh�����j���������
_�v��%'�`T03��@��r��4��|��Pj��P�0�>W��g~IHGXͨ�X}�s��@^�%\��jEocw�A���0h�`
Ae6��x���u�t���Z@߀�i�������
M��pH{�I��H@�hN6�x\�a.�*�cv��F����t��FְZ`�K��Ѹ�p��x{0	{�6��l&Qd&��s��s(�C!���J�p�甞~`RI�+y�Lٔ/��Š �^Y�Y{F8�0n[3fTɓ,�l�{FX�as��_	�vɖ���}�I�lj�ipJF�p�~��˶�?G��6y�1� ���=	m}i
�
���`����	� ���T�p�@��
iV�p��7�of4��	�K�
������	K0	���n�
�
����LpP��
pu<�۰
C�fC���I�)z6��%P	��k���'�N�
?�ܐN���	L`p
�@=p�%��%����=��`�@
Zp��@
��	z��@��6��9��@6���-�=��6@6
6�1ڣ�p
6NZ�=p	б��=��Lڤ6�9Nj`��bʤOz��
P�z�?�,����\�Fz
m��M
Pʝ��jZA���Lp�k���t�Z
z�W
�e���	�ʦL

�-p-��|z�Ϡ��*�>��
�`���
�=0��V��,����7��j����>
�;�z�{��gjp�>��``�	���
[꧁�����@�غ��J�=��Vڦ6�A
�J�
�Z���+�(�d�t*��1�ʮ��Ko
����l�
º�䪧!�*��������X:#����ګܺ�ʣ��
��%{����z�z�
�=�rz�Zq���S����+��k�6���J�N��=�B1˦؊����C�`�zZ�a�;��8K�`� :�z�ʰt:�B��z
-:��N:�����B�{���B;'��
N��;RJ�p��N��p�L����Jp>p��
�W�0	W�����/ ��0��p���D�>� 7���D����D��� 
B�[� ���{��؛��м�+D�&��@Ջ��˼/ �� 
�p�� 
p�[�ً��pB )�"�����)@�������԰�I@
B �l�)��,���>0�)��ڋ�	��[��D@
�-L����{��'1��<����Aܾ(\��!���=�����K�)p����-��H<���x���@�B��<<��0�&ܾhl�����aL�M�4��x	�n|�q���˾v\�P�;<�H\�3��O�y�7�Ͱ��<<���[�y�0Y� |�|�g\Ú�7Pn�˼�˻|���G��s�����y�"�
2�/�a|ɘL
� ȚLY���ܼ�ޜB����<�%��N\�x�!qN�p
�<�ù�𼘌�l˩l�;�����L��͢���{��\�O��,�Pn؀
��( (0
P�����D�(��S�+��,���!���[(��ٜ�
��ϻ�ـ
=-}'��h�!
2@p\}7�`��c�a��`�2&0��S�����ٌ
@��C�}������(p��S��S��PfM����0ٔ]ّ=���`�؋��(�s};m�?���0�Ue
F��J؃��; �T��S��b-�`�m0�۽
�
�0�
&pܔ}�e��-�h�tm�>��B���G��K=��-ۈ�]�b��
0���M52��2p���2@5Iܽ��ٙ���!���=�w��B}��������۳�،����P���}7@��i��`����}ܺ]�
��P��p-��}��Yn=�����	.��m����=�@��~��?���m�&�$^�}����+��x��>}�ڭ�԰m㈍㘍�;�=����T��=�$���䟭����˧=��}����Nm�^�
��N�".�F�"��]�k�~�)�ߡ]�m�SNSFm筍�yՇM�|n֙-ޑ=ޠ�釮�K��-��N�ߏ�ב�ד�ѕN�y����ض�眍�m��
�����P�{=}m��0�ڰ
ղ=Շ]뵮��.��>�L-�Q�֍�4�v�ԕ�;�N�����ӣ��=������#Q��^nِ
ڐ���J�>
���x���@�>�D
�t���?�/���ER���!�	
�,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗0cʜI��͛�Ù2�7<O�2mIP�$|
<��G=���J����8��M�kQ/b�Ei,�8L�S��?�ʄ��k�?vΪY��~r��/F!#]�>4���~,Xh#�o��Xh��RE�Cpΰ�)�w�`�,���ǿC<+T�,�g.K.T-�j���b1*�"�.s��;�^?~.������}�Q
2o�ЕG��
=:�Ԉ���w5g���^�~!����R&�u��<ҡÁ"�6��:�7MJ���ЁE1��&N8�Ew��
�"�eb�?F�@�3g<��o�!��
eđ�c������d.b�M5���0�(QD)Eg$�@cr��4�u�":D�\��l��(d��g��P�հ���H!'�v���b�1V!l�G�>�v����!�u��E��b>#��U1(���cJt��y�G*]�Q�	<��1N�v�EI�#g�pdE���^���fqX�k�=�*rL��'F���>B�4+�`�]8�C!na�F��0�'0��qښ@ Hq�H�0�X�C�A&�A	��"eH�GE�!��QF�<A�(c1��-��`�|�A&�Dr����$�@-�|�@\q��DR�5B��AaH"G�r�@�0tP���DQ�0�lS���
��#1б�7Elp#�\���
;x#
0U�q�7�X�B�D�*P�<R�\<(!G1��L
C0��/��r)��@��qD(�����
��L<\~Tp@a�D�XA%t4�I� 0�	%z�J)�\3�7T�.(��G�p���Q�q!ܑD;a�@��LP�b���
q�N���y�}�(C��~�����g�����r�@PF�!�`�
�0%��}g�"�n ��=A^86�Q��
O�A� �"�a�E�@�ã�!K?l�<F�2n@q@tѻ/Ă3���%&�*�A�'9ىLE8;�1�$�ꄱ�W�:�!|#*q��
'%�!Ky+���)bC�b����)�J�r�\p�q�$�Zvl `���TTa����ʰ�C	��2���*Ԡ���D2Q��
hG��1m`_�Fqx0IJ��{�б�dA��6p�(`
I(�q�S�?<C.d4��H�B�q
l� ��.�%%�S6�,�-@�c��B́s�CP�D6�@�TTt`�n8�`��h��	4�
����\h��XR\�I��

�IQ@Ւ����ܜ��"��.M�'
/|

�g�	�T�rPW��U�P�|b�$�/��5Hi�腹��	P�]]֙�}�ʰ>�@��c��c`�|�mjAp/�����`���
�!
��[�8�Q2���+�s���x��X˙[Y�v��/p1�)���,c+������!��A8�E(fa�(�5H	6�^�n`ќ
�@B� KP�b�
\ �(»�D!
V�%(�]BЗ����b$��0/���@�pLa
�� ���Q�
����Sl	$7*P��A�x|X#1��!�h�H��$��&���)�2|�cX��T�1<�
e�8ΰ�
p
�$B?���|e�Y�]=0�: �8��3�Z��������г�l��CsQ��-�+����t�e��%3�·Nčo…3��[�۬�MZўf�9��Y��r�-M�B��K^�g-bDE�r���A��կ���
����Hv�Ӭf+��לF���Lm>���t�m�U���v����:E
�4�u��A�:ӭ6����l=�'�v��lo����������ڤ������o^?��t�).�b�	���6�����״�ݬdHߤ��@�E��@��ᘎ9��Lqp�&	��{�㟫�z��������9��
���Aw3���Pa��9�Q�r�?�l^s�%`� ��+W;��u�}͙���i�H@z_:�=�p^{��+'�9����a�D#p ��o������Wp�|��6j�C<��H���^鮓���)�K��5�!4`�(L ��=�C�|�cyĸ804 ������1�Wt>����n�8
@Z�/|�&��>��.�c�����M��'b�
��*	��
��n��PW2J_i0��@	f��P�_����	b	��	�`����f�u+�4�s��G��<J��P	�P
�'�
�G	��
��`�0��g
?�{�`p
�	���$0@H+��P	lHk�@
(�
�?0|t�P'
��=�-9�Z�fXf/a
<0f�H*� �%P��`�-�z�	�@
Z�H
�`}���-`�8���J��=0�f��q��0��X�Ћ�h�@9�``�p��x
6���Hb`�q@����T@+�X����-�����90⸌�x
�h��8���i�F��<Ѓ/���+�������-�����h��x
-���؎9@10���DL3A�%i��X���-P
�0=P
=�#�)ًɌ�@9�X	�_1�A��H��,ِz wp
נw�Dy��	���8�Yi�9Y�0�.��x
�+��Ḋ� �ZT�< ]����q	p�萴p� pƐ4��8��ߘ��� i`a�
�@�i����xY��H������,p���ə9�1�>Y�6������=@�sA=�?i������������鏕����`�k�Ѝry
����i�G��)�6p�����=�?�k@��I
1�p�x��L������H,`�=����6��I��x�����
���x��	�a��Zp�6@�Py�
��!j�'�x�� �Q���
9!6 ��s��X	%���`@����P��ZP��p����6
a���`
�=`�GW����-�祖W�/�
v�
�&pQ6���J)����[�4
An��͐���Dp/����61h*�J���m*
�@
��#�pi��D@����*qC���z�)�� ԰x���B �)Ъʪ��ڦBP3�
��ʪD���Z��Z��Ԁ�>͐���������2Q/��J��z��ି�x0���Ю⊬���ګ���/�ʯ͐��ڬ�
�xp[����ʰ�:�.Q�J���K��Z���>`W0�Bp������ʭ.���
�#˦���y�4�����!��犮[�(�
�p�K�$۳'�x@�]�x��-�� ���ګ��	E	E�C����⚱<+�Bд@k��|�`�F˯Ȋ����`��C{
�m[�v��Ip�
�s�;�k�y`��/`�����j�uk������
?�@�k+�?�
ؐ�+�p��۲S;��j�Y�����6sZ+��z�g����@U]˻���D��y���뵿{� @&pоW�W��+����[H�������;��K����@�	�t�˽�+��[�1������'p|{U�tOP�̼09ſ&`0P�%(��0&#��9�:ռ6Sp�
�Vh���뺑��ٶ�����N��7�,�;�'��SDEUDDX\ER�)\�#��2<�6��k����뽳˸q�E\����;pUL<dl3�Q,�)l�7p0��۾�L�\E\���0�4L�8��<\�>���K�o�PC+�Te�u��M�{�� �+S$�,ȇ�ʫ��*���:U�6<f�Ɣ���+��<��|��l�L��O�/L�)�ʩ�Ŋ<E���&��2����5��ܛ
����v��GL��Vw��<T����L����|�4<�e��|�˼�ƿ�p\���l�;���6����a������
ɑ,���k���-��K�ܷ��w�d��N��)m÷��i����>�������1��
r컝<�$]�k�V9�VGm�E-ӺL�5����9�
�E�
�|Ľ�UU�^��`��U��?�>
�Rݸ'�V�X�
�+�>��t�+Ox�p
���9��2�P�K��]؆}ش�׀�"��P�*!��,d���	H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�ϟ@�
J��ѣH��dWC�E�8��˴CSҘ30�BHdeȦ
��X�0��?s}[N5p=Y�'
��z@��X:�X0R��^��p����
c������]ǎ9L�[,���qV��g�A[�6���Ӟ��h�tSb~8�.T�qm��{���7RT��WKL�q�B~�`�3M-dDG��av�i��i�}}�BX�cA�D�3�:��
[}5�~�'[�L�Em�UT
p�g:D��hV�y�d8M.�����3xq@����-� �@�$���aMQ�WM�qF���_�PF<2�R00w2ZD]S�>t8��`*!��QdE$��(E��`�Q��eo�9�E��f��f�o��`Dm"4�9�|�褔>"�ɤ&�:p����矀��0D�Z��4����>�}
i,R���h��q����H��5�vҁ�QP�ˬ�@C���j-F�#wxrhD1[�#���A��b�������#8�J�PxzG�z҆�p��_c�]�#�(�e���+
t�p
�@��aH�/ˀ�@��##<� aXSHnC]�18AB;8#�@� ��P���+�22�����l��U�%�|2���N�<�4�0�1k���RCG��E,�BG8P��#�D�0�!(���qGx��\��&���@E�<��-��s��1O-s��AZX��H�<z��
ְ��y�"�CP���B0���(<P�+t��B�P@�U$1G�,��##1��� �0WN��q��" �G0q
�р	0��@�nVc��
��ń�
�B'�(��4u�8�%(m"	.Ŕ��	��Xo`��Q6H��@ໜD0T��-l�
�0<K����"�$�A�Ў���e��j�%|a'q؀r8Q��OH�"���*HBE�.�`�0ȁgO��"6�5�)Xq��N��E.z@�aR �p�e��$X��׿7H�"ӵ��9�� ���>A�O�+Cх`�*A����
�a>1��I)A��tG͝�Oq����!�LE0P���Z�oiF5I*C�����Z<_Px�Lm��A�<���i.HC\@M^��(C�3�8��
���0Pj���c��P�pZ��h�(�
�bv$��)����,'�<�T�Ԣ(i+7�Qv���C5�'���8
���R���#��t:щ�t	 
z���S�A��T��P��0u�Cg:ՠҨ}UJ�*P}nՏ_�(sV�p!�hVe�Ե�.�AQ�ȓ�M��CC�Ϧ”���P��4`�8��զZ6��d'�A�(������@�	��,��Z+P"
;�-P�C��ad�-!N0	5���~��C"(m�W��h���VX���D'�^���8G"�8@
=)���\xW�0�|/� ���2�{H`� Fy�q�b��eo{`��"W��/@��W�6���K_���U0���
3$f04V�h�㿉o�!\a3���U�O�`�2����}�+����04la$�����zS���x����[�#{�*A��ǘt�Q�o����A�rx��e/��3����Aiֱ�A�`��z�����D@��pxU�>$�9&�@�Q�7cY�ZV�-�>�Y��pKtcL���D��c
g9���9�,W@���q
Y"�K������C�����u}^	�
o���Е�A����@���B��Ў�����:��/zURp�e�@i{ag#:�Ҿp�@i�p�]ְ^SR{��IE�͝b ��붯�b�]�W�GI�ɛ�s�������o�^�ⷶp�5>�k��p�QbbhX�*@!!;��Ft��-�Dd��B��a ;%�/:�
n��C'���~��x�%�c��؆�q�<%gV��as� 
�
X>q����5���yH ��ܗ��D,|%��4��M�M {�!�it+>����>l�pW��Y�C�r�cCAߣ����.1�m-e�!�4J�mO���"-����3{��-���o��ih_��΀�z�%�X�zX�>�ٷ�^�ᏮT?xb�����0��~��r�7W�b��K���"& 
Xn��rf��� �Q�L0���CPE�t����^��`�PZAp �<�g/��~UD2l�0�*8�ʅb��
C#E�;JC0���N	0C0�5&�O�8�
�� �f^�@��
H���
�V0l��&�e���_@q)�L0�d@	�@�Hd�w|0��P���[d����+����0��G�_�*�7���P	%�@

 �
?`@���[��`
� S�z�p
���IF����l�E�����-L�	�������P��`�`9�� �PR�J2���a�
-P�X�Iڨ��y	���z���@�`Ў���S�'N1QE0c �Џ@-P��P�&iŨ�	��h6 ���Z�R@>O��@"9�%	�`�����p���/��`03��<q	<ɏ>Y��19=�90	�(��Y)�]I�?aU�$���kP0�t9�z�W�#��1y�k�=�ky�-`P�z����=�ܰ��%��%�`!А$	�NIPI7��=��6
�dy�f���SP��y�k0�p
��M��?�{P�my
6��ٚ1��]Y�7�ĉ��)�������n��	���x�	��9�7���	�j��2	���8a
�x�-�����9��ٔ�ؠ@�mi�А��扖:�
6Џl�����0>����������m�L��@�6�
9C�<��>���$i������p�>�,P�
�Lڤ�/pBp��4P��p��\���
p7P�7qD��)�8*
� [P
�p��iʥD��8��	6�g�L����/�B@
[���HD ��DP�D����P��#P@W�ڥ�ʧQ��p��
�ت�	� C�`�{z�����rxh
�`
I�������ک��y	������`�Ú�l��B �p
�����ڪ?�
��7�͐k��Qکp*5[���:�>P��ʩR
��
?Ъ���װ��
ؐ+�c��{�/Юٚ�y
0��`�B�+�銮�[�
�
?��*�����+�'pD �K�EZ�x�0��� �{������'�:���಻�Kk���9��'`����3�۶���R��xpP�S��ʶAK����R3�ճ(��۲�݊a{�+k�' [!&��+�D�9��G��D�p���az�;�D���z��h��۬�+��+��K��˳����
��+��������y�x�O�D���!;��Z�l���+���;���K�[��1��j�d묅�;�����"��ʻ��*5�{�P�[�G�{k�횣�J
��0��{��˪0��`뫭��;���p���{���*��ĺ�C,�����:�$L�骮��`��+�|�㫸��4k�䊳�+�»�P���R\�&P�0��Z�2��2��Ia�W\�v+�����S����>���
��D\����<˾��;M��P,�
`�Pňl�&����g��j��l��<��r|�\+�_�El�8��{ܾ},�m�N,�i�ƄL�:�ʫ�ʑ,ɥL�p,�᫵�\���	��ܳ���~Lʥ��ƼƂ����\�����=L��̲A�ɛ�ak�ڀ�:���������\�
,��W+Ǵ˲.K����x�F|�+[��=������:��,���ܵ�k��
٠
�z�ݼ�Ͳ֬�-��Mlj+�	}��L��:�$]�&��H����;